diff --git a/example/.gitignore b/example/.gitignore new file mode 100644 index 0000000..24476c5 --- /dev/null +++ b/example/.gitignore @@ -0,0 +1,44 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/example/.metadata b/example/.metadata new file mode 100644 index 0000000..acfc1cf --- /dev/null +++ b/example/.metadata @@ -0,0 +1,45 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + - platform: android + create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + - platform: ios + create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + - platform: linux + create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + - platform: macos + create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + - platform: web + create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + - platform: windows + create_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + base_revision: 6c4930c4ac86fb286f30e31d0ec8bffbcbb9953e + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/example/README.md b/example/README.md new file mode 100644 index 0000000..2b3fce4 --- /dev/null +++ b/example/README.md @@ -0,0 +1,16 @@ +# example + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/example/analysis_options.yaml b/example/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/example/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/example/android/.gitignore b/example/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/example/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle new file mode 100644 index 0000000..118ee1d --- /dev/null +++ b/example/android/app/build.gradle @@ -0,0 +1,67 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +android { + namespace "com.example.example" + compileSdkVersion flutter.compileSdkVersion + ndkVersion flutter.ndkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.example" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies {} diff --git a/example/android/app/src/debug/AndroidManifest.xml b/example/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/example/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..19b862e --- /dev/null +++ b/example/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt b/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt new file mode 100644 index 0000000..e793a00 --- /dev/null +++ b/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.example + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/example/android/app/src/main/res/drawable-v21/launch_background.xml b/example/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/example/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/example/android/app/src/main/res/drawable/launch_background.xml b/example/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/example/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..db77bb4 Binary files /dev/null and b/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..17987b7 Binary files /dev/null and b/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..09d4391 Binary files /dev/null and b/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..d5f1c8d Binary files /dev/null and b/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..4d6372e Binary files /dev/null and b/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/example/android/app/src/main/res/values-night/styles.xml b/example/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/example/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/example/android/app/src/main/res/values/styles.xml b/example/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/example/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/example/android/app/src/profile/AndroidManifest.xml b/example/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/example/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/example/android/build.gradle b/example/android/build.gradle new file mode 100644 index 0000000..f7eb7f6 --- /dev/null +++ b/example/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.7.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.3.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/example/android/gradle.properties b/example/android/gradle.properties new file mode 100644 index 0000000..94adc3a --- /dev/null +++ b/example/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..3c472b9 --- /dev/null +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip diff --git a/example/android/settings.gradle b/example/android/settings.gradle new file mode 100644 index 0000000..55c4ca8 --- /dev/null +++ b/example/android/settings.gradle @@ -0,0 +1,20 @@ +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + } + settings.ext.flutterSdkPath = flutterSdkPath() + + includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") + + plugins { + id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false + } +} + +include ":app" + +apply from: "${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/example/ios/.gitignore b/example/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/example/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..9625e10 --- /dev/null +++ b/example/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 11.0 + + diff --git a/example/ios/Flutter/Debug.xcconfig b/example/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/example/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/example/ios/Flutter/Release.xcconfig b/example/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/example/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..75c0e50 --- /dev/null +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,614 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807E294A63A400263BE5 /* Frameworks */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.example; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AE0B7B92F70575B8D7E0D07E /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89B67EB44CE7B6631473024E /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 640959BDD8F10B91D80A66BE /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.example; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.example; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..87131a0 --- /dev/null +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/example/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/example/ios/Runner/AppDelegate.swift b/example/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..70693e4 --- /dev/null +++ b/example/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000..dc9ada4 Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000..7353c41 Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000..797d452 Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000..6ed2d93 Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000..4cd7b00 Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000..fe73094 Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000..321773c Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000..797d452 Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000..502f463 Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000..0ec3034 Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000..0ec3034 Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000..e9f5fea Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000..84ac32a Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000..8953cba Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000..0467bf1 Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/example/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/example/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/ios/Runner/Base.lproj/Main.storyboard b/example/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/example/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist new file mode 100644 index 0000000..5458fc4 --- /dev/null +++ b/example/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Example + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + example + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/example/ios/Runner/Runner-Bridging-Header.h b/example/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/example/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/example/ios/RunnerTests/RunnerTests.swift b/example/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/example/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/example/lib/main.dart b/example/lib/main.dart new file mode 100644 index 0000000..0d8f9eb --- /dev/null +++ b/example/lib/main.dart @@ -0,0 +1,223 @@ +// ignore_for_file: avoid_print + +import 'package:example/test/address/ada_shelly/ada_shelly_test.dart'; +import 'package:example/test/address/algo/algo_test.dart'; +import 'package:example/test/address/aptos/aptos_test.dart'; +import 'package:example/test/address/atom/atom_test.dart'; +import 'package:example/test/address/avax/avax_test.dart'; +import 'package:example/test/address/bch_p2pkh/bch_p2pkh_test.dart'; +import 'package:example/test/address/bch_p2sh/bch_p2sh_test.dart'; +import 'package:example/test/address/egld/egld_test.dart'; +import 'package:example/test/address/eos/eos_test.dart'; +import 'package:example/test/address/ergo/ergo_test.dart'; +import 'package:example/test/address/eth/eth_test.dart'; +import 'package:example/test/address/fil/fil_test.dart'; +import 'package:example/test/address/icx/icx_test.dart'; +import 'package:example/test/address/inj/inj_test.dart'; +import 'package:example/test/address/nano/nano_test.dart'; +import 'package:example/test/address/neo/neo_test.dart'; +import 'package:example/test/address/okex/okex_test.dart'; +import 'package:example/test/address/one/one_test.dart'; +import 'package:example/test/address/p2pkh/p2pkh_test.dart'; +import 'package:example/test/address/p2sh/p2sh_test.dart'; +import 'package:example/test/address/p2tr/p2tr_test.dart'; +import 'package:example/test/address/p2wpkh/p2wpkh_test.dart'; +import 'package:example/test/address/sol/sol_test.dart'; +import 'package:example/test/address/substrate/substrate_test.dart'; +import 'package:example/test/address/trx/trx_test.dart'; +import 'package:example/test/address/xlm/xml_test.dart'; +import 'package:example/test/address/xmr/xmr_test.dart'; +import 'package:example/test/address/xrp/xrp_test.dart'; +import 'package:example/test/address/xtz/xtz_test.dart'; +import 'package:example/test/address/zil/zil_test.dart'; +import 'package:example/test/algorand/mnemonic_test.dart'; +import 'package:example/test/base58/base58_test.dart'; +import 'package:example/test/base58/base58_xmr_test.dart'; +import 'package:example/test/bech32/bch_bech32_test.dart'; +import 'package:example/test/bech32/bech32_test.dart'; +import 'package:example/test/bech32/segwit_bech32_test.dart'; +import 'package:example/test/bip/bip32/ed25519/ed25519_test.dart'; +import 'package:example/test/bip/bip32/ed25519_blake2b/ed25519_blake2b_test.dart'; +import 'package:example/test/bip/bip32/ed25519_khalow/ed25519_khalow_test.dart'; +import 'package:example/test/bip/bip32/nist256p1/nist256p1_test.dart'; +import 'package:example/test/bip/bip32/secp256k1/secp256k1_test.dart'; +import 'package:example/test/bip/bip38/bip38_addr_test.dart'; +import 'package:example/test/bip/bip38/bip38_ec_test.dart'; +import 'package:example/test/bip/bip38/bip38_no_ec_test.dart'; +import 'package:example/test/bip/bip39/bip39_test.dart'; +import 'package:example/test/bip/bip44/bip44_test.dart'; +import 'package:example/test/bip/bip49/bip49_test.dart'; +import 'package:example/test/bip/bip84/bip84_test.dart'; +import 'package:example/test/bip/bip86/bip86_test.dart'; +import 'package:example/test/cardano/bip32/icarus_test.dart'; +import 'package:example/test/cardano/bip32/legacy_test.dart'; +import 'package:example/test/cardano/byron/byron_lagacy_test.dart'; +import 'package:example/test/cardano/cip1852/cip1852_test.dart'; +import 'package:example/test/cardano/mnemonic/mnemonic_test.dart'; +import 'package:example/test/cardano/shelly/shelly_test.dart'; +import 'package:example/test/cbor_test.dart'; +import 'package:example/test/crypto/aes/aes_ctr_test.dart'; +import 'package:example/test/crypto/blake2b/blake2b_test.dart'; +import 'package:example/test/crypto/chacha20_poly1305/chacha20_poly1305_test.dart'; +import 'package:example/test/crypto/crc32/crc32_test.dart'; +import 'package:example/test/crypto/hmac/hmac_test.dart'; +import 'package:example/test/crypto/keccack/keccack_test.dart'; +import 'package:example/test/crypto/md4/md4_test.dart'; +import 'package:example/test/crypto/md5/md5_test.dart'; +import 'package:example/test/crypto/pbkdf2/pbkdf2_test.dart'; +import 'package:example/test/crypto/ripemd/ripemd_test.dart'; +import 'package:example/test/crypto/scrypt/scrypt_test.dart'; +import 'package:example/test/crypto/sha1/sha1_test.dart'; +import 'package:example/test/crypto/sha256/sha256_test.dart'; +import 'package:example/test/crypto/sha3/sha3_test.dart'; +import 'package:example/test/crypto/sha512/sha512_test.dart'; +import 'package:example/test/crypto/sha512_256/sha512_256_test.dart'; +import 'package:example/test/crypto/shake/shake_test.dart'; +import 'package:example/test/crypto/x_modem_crc/x_modem_crc_test.dart'; +import 'package:example/test/ecdsa/ed_test.dart'; +import 'package:example/test/ecdsa/projective_test.dart'; +import 'package:example/test/elctrum/mnemonic/mnemonic_test.dart'; +import 'package:example/test/elctrum/v1/v1_test.dart'; +import 'package:example/test/elctrum/v2/v2_test.dart'; +import 'package:example/test/monero/mnemonic/monero_mnemonic_test.dart'; +import 'package:example/test/monero/monero_test.dart'; +import 'package:example/test/schnorrkel/derive_test.dart'; +import 'package:example/test/schnorrkel/schnorrkel_key_test.dart'; +import 'package:example/test/schnorrkel/sign_test.dart'; +import 'package:example/test/schnorrkel/vrf_test.dart'; +import 'package:example/test/secure_storage_test.dart'; +import 'package:example/test/ss58/ss58_test.dart'; +import 'package:example/test/substrate/scale_test.dart'; +import 'package:example/test/substrate/substrate_test.dart'; +import 'package:example/test/uuid_test.dart'; +import 'package:example/test/wif/wif_test.dart'; +import 'package:flutter/foundation.dart'; + +import 'test/address/near/near_test.dart'; + +typedef TestMethod = void Function(); + +/// for test in different ENV +/// The package is created in Pure Dart and this test contains thousands of tests, +/// it may take a long time (5-10) minutes. +void main() { + _testAll(); +} + +/// its very slow in web debugging +/// if you want to test this method on the web should remove the condition +void _web() { + if (kIsWeb) return; + _test("bip38 No Ecdsa", bip38NoEcdsaTest); + _test("bip38 ECDSA", bip38ECDSATest); + _test("scrypt", testScrypt); + _test("pbkdf2", pbkdf2Test); + _test("secure storage", testSecureStorage); +} + +void _test(String name, TestMethod process) { + try { + process(); + print("test pass $name"); + } catch (e) { + print("test error $name $e"); + } +} + +void _testAll() async { + _encodeDecodeAddrTest(); + + _test("UUID", testUUID); + _test("bech32", bech32Test); + _test("wif", wifTest); + _test("substrate scale", substrateScaleTest); + _test("ss58", ss58Test); + _test("bip38 ", bip38Test); + _test("segwit Bech32 ", segwitBech32Test); + _test("bch bech32", bchBech32Test); + _test("base58 xmr", testBase58XMR); + _test("base58", testBase58); + _test("bip49", bip49Test); + _test("bip44", bip44Test); + _test("algorandMnemonic and derive address", algorandMnemonicAndAddressTest); + _test("substrate derive", substrateDeriveTest); + _test("monero mnemonic", moneroMnemonucTest); + _test("monero", moneroTest); + _test("electrum v2", electrumV2Test); + _test("electrum v1", electrumV1Test); + _test("electrum mnemonic", electrumMnemonicTest); + _test("cardano shelly", cardanoShellyTest); + _test("cardano mnemonic", cardanoMnemonicTest); + _test("cardano cip1852", cip1852Test); + _test("byron legacy", byronLegacyTest); + _test("cardano icarus", cardanoIcarusTest); + _test("cardano legacy", cardanoLegacyTest); + _test("bip86", bip86Test); + _test("bip84", bip84Test); + _test("bip39", testBip39); + _test("secp256k1", secpTest); + _test("nist", nistTest); + _test("ed25519-blake2b", edBlake2bTest); + _test("ed25519-khalow", edKhalowTest); + _test("ed25519", edTest); + _test("schnorr", schnoorTestDerive); + _test("vrf sigh", vrfSignTest); + _test("schnorrkel keys", schnoorKeyTest); + _test("schnorrkel-sign", testSchnoor); + _test("ecdsa", testECDSA); + _test("eddsa", testEDDSa); + _test("sha1", testSha1); + _test("ripemd", testRipemd); + _test("md5", md5Test); + _test("md4", md4Test); + _test("keccack", testKecc); + _test("hmac", testHmac); + _test("crc", crcTest); + _test("chacha-poly1305", chachaTest); + _test("aes", testAes); + _test("blake2b", blake2bTest); + _test("sha256", testSha256); + _test("sha512", testSha512); + _test("sha3", testSha3); + _test("sha512/256", testSha512256); + _test("modemCrc", testModemCrc); + _test("shake digest", testShakeDigest); + _test("cbor test", cborTest); + + _web(); + print("test done"); +} + +void _encodeDecodeAddrTest() { + _test("zil Address", zilAddressTest); + _test("xtz Address", xtzAddressTest); + _test("xrp Address", xrpAddressTest); + _test("xmr Address", xmrAddressTest); + _test("xlm Address", xlmAddressTest); + _test("trx Address", trxAddressTest); + _test("substrate Address", substrateAddressTest); + _test("sol Address", solAddressTest); + _test("p2wpkh Address", p2wpkhAddressTest); + _test("p2tr Address", p2trAddressTest); + _test("p2sh Address", p2shAddressTest); + _test("p2pkh Address", p2pkhAddressTest); + _test("one Address", oneAddressTest); + _test("okex Address", okexAddressTest); + _test("neo Address", neoAddressTest); + _test("near Address", nearAddressTest); + _test("nano Address", nanoAddressTest); + _test("injAddressTest", injAddressTest); + _test("icx Address", icxAddressTest); + _test("fil Address", filAddressTest); + _test("ethereum Address", ethereumAddressTest); + _test("ergo Address", ergoAddressTest); + _test("eos Address", eosAddrTest); + _test("egld Address", egldAddrTest); + _test("bchP2sh Address", bchP2shAddressTest); + _test("bchP2pkh Address", bchP2pkhTest); + _test("avax Address", avaxAddrTest); + _test("atom Address", atomAddressTest); + _test("aptos Address", aptosAddressTest); + _test("algo Address", algoAddressTest); + _test("ada Shelly Address", adaShellyAddrTest); +} diff --git a/example/lib/test/address/ada_byron/byron_test.dart b/example/lib/test/address/ada_byron/byron_test.dart new file mode 100644 index 0000000..8e0af38 --- /dev/null +++ b/example/lib/test/address/ada_byron/byron_test.dart @@ -0,0 +1,28 @@ +import 'package:blockchain_utils/bip/address/ada_byron_addr.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'byron_test_vector.dart' as byron; +import 'lagacy_test_vector.dart' as lagacy; + +void adaByronAddrTest() { + for (final i in lagacy.testVector) { + final params = Map.from(i["params"]); + params["chain_code"] = BytesUtils.fromHexString(params["chain_code"]); + params["hd_path_key"] = BytesUtils.fromHexString(params["hd_path_key"]); + final l = AdaByronLegacyAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(l == i["address"]); + final decode = AdaByronAddrDecoder().decodeAddr(l); + assert(bytesEqual(decode, BytesUtils.fromHexString(i["decode"]))); + } + + for (final i in byron.testVector) { + final params = Map.from(i["params"]); + params["chain_code"] = BytesUtils.fromHexString(params["chain_code"]); + final l = AdaByronIcarusAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(l == i["address"]); + final decode = AdaByronAddrDecoder().decodeAddr(l); + assert(bytesEqual(decode, BytesUtils.fromHexString(i["decode"]))); + } +} diff --git a/example/lib/test/address/ada_byron/byron_test_vector.dart b/example/lib/test/address/ada_byron/byron_test_vector.dart new file mode 100644 index 0000000..6fd55a0 --- /dev/null +++ b/example/lib/test/address/ada_byron/byron_test_vector.dart @@ -0,0 +1,502 @@ +final List> testVector = [ + { + "public": + "d9f1d038b4f9116c156a03eee15f70b073f8e81ffa85122cc8e993e906e2b537", + "address": "Ae2tdPwUPEZDMm8GdfnY8ibhFPd5GBjyRARL7A5DbatemFheedMwB4WTj7z", + "decode": "a5e1c8d86ae0c7006afea4369c55675bb80853937e0080e17a8117d2", + "params": { + "chain_code": + "f44255b6455b665173b66f7eb3627cfc19f46837c23d6a3948f2462d14a14d36" + } + }, + { + "public": + "f9bb180839657a14a0d683d6fe77905b40c9b971d1d326b6ae5d52460507f055", + "address": "Ae2tdPwUPEZNBMfHAjDRpFo22YzJFhSsHBvxotw2JAHBdJhW2CY9RZzbuqf", + "decode": "fe485adeb74b460a4f1029c9bc42052fa6b02140eedaee76ae33f222", + "params": { + "chain_code": + "aea9ef014e505667182eabadd39f4c00a430f0f4a881624f296e1b12247cadaf" + } + }, + { + "public": + "fbb45558dc3dbf0a65a15b6b202793d0bf4438fb11c994f95ef3be2e6c9eab30", + "address": "Ae2tdPwUPEZMstSiAyzM8hEnz1LrGCn6jdMRSab1wRESkgV2abz8aUUQDRX", + "decode": "fb4398f6f75150c38dedd7e3978bdd5df32917a5b6b95b17aa331196", + "params": { + "chain_code": + "2dac405d28bc78e55597ade8488eaaf285016c24c334322a90c4a123ec197e06" + } + }, + { + "public": + "3ad19d3ed86fb5479cbf24be155532c9f9a90a3d87cc10a5a70a4f8b87e16731", + "address": "Ae2tdPwUPEZEy21nr3SfLXVEPCKJfy9mTebq7NuAcATYb9F4fyadfcm2xm4", + "decode": "b5ff056d52c7c897a41a8827c5eff5588ea23cf3bae863625728a559", + "params": { + "chain_code": + "7c63c5811e5a78e1359e0875b4159eda2afdb97f74ebe3674aeb0f8546664db3" + } + }, + { + "public": + "999fef6f4591f078fe40f407afdd0ac53678542c2d6fc386aa864e88c5dd2cdb", + "address": "Ae2tdPwUPEZ18m6Qzgn2fiQtUCNYapD7m4fNXk6qKKepvEUjmoGoj3p6JY2", + "decode": "2b5ef11478b6566ba54e76c175b1107b741a2e326aafc4ac0a0873eb", + "params": { + "chain_code": + "5efa58051ee1644d60e30ca02f70eb1a1120684b992ebbd6a61952764fa387c2" + } + }, + { + "public": + "9d5173500e5fb25dbb455a1605b922c4a0a2456b4e4ccd1fdc38ee95e1a5c684", + "address": "Ae2tdPwUPEYzLLRy4BJFhhASo2v42qjEsznEvtdERu75ggqSVPcXdbLE7Gk", + "decode": "23594f06c7bf1964ac625f0510232f13596141d846a0c71f0e654f8d", + "params": { + "chain_code": + "04450e54c01669a38babba4790ffa6f49fe66e93560790ffde14e795fe641859" + } + }, + { + "public": + "987938291918aeffb4292a17073fdc7611ed4d26d114b9486552eb9ca5f53c39", + "address": "Ae2tdPwUPEZ7Qag9gGr9uC9UnKSHz3XWwWLe7rqzQ395UhtmetNZ1KxpxEX", + "decode": "6a3ca3ec2e9938c8c1fe81713e4f860761da3606a4c1eddb1a90d2f1", + "params": { + "chain_code": + "e85ae831725605306f0d1f187428219f787099be20bb3116a866746227184d29" + } + }, + { + "public": + "eaea1c9d72045905083d05a020bafc3bfecc9e004d741924ff18f748fc26f6a5", + "address": "Ae2tdPwUPEZHEWc77DL6E1jhdLEk7VbRU9ATVNGpczx9iD5DYG18jFq4yfv", + "decode": "ccb7a66511e07521cb447060114e594ddc8ce998bb9694d3dda55f09", + "params": { + "chain_code": + "d68f292e97f91193a92560898ca1145e074ac9852da01d77776293485e40d632" + } + }, + { + "public": + "b115b76f94825eca7f8df3ddf3d1975c28080406a8a66250d05b6a8e95a09138", + "address": "Ae2tdPwUPEYxELAmuvzgc4gDD7hpfQWihtE6YcURj4X5dd5f9JVoy1gdRX3", + "decode": "0e4467676ea92a4c142c9fdfb7ea0a8366257f14f7a4f268c9029c23", + "params": { + "chain_code": + "f54114cc74b656e85c18c09e8fdf9dfc7478cde48c6b2c65091cdced40721dfd" + } + }, + { + "public": + "11f6472701d5c2d5fe17034e2ca945cddf4718523d0bef7b6d7478ae84b32e5d", + "address": "Ae2tdPwUPEZCpuddeJxeerdT61gyKSsngxmnLq3yW7UNBZnNGiUQz9YR28t", + "decode": "a08cfa69eb80189a7eaf6105d98552ee4fb9c8defd994380888bf579", + "params": { + "chain_code": + "32631c8778cbb39c274e01cf43dc4760c191fb563f424366839eb9cc6d41ea58" + } + }, + { + "public": + "7c743513555e64331d03a4b55691acb68993eaef85b31099e0b5ef65519fc93e", + "address": "Ae2tdPwUPEZ24XBS3WFWSkWRWWc56NoJx1igE2qbhSGxT4Dyk7BVRHTq5us", + "decode": "34a90924a3fc5e7d37b29afd064fbb60bad367913bfe0277182b87c2", + "params": { + "chain_code": + "92ffca86d076fa4c41f9d7d23f75fee3a32b91870681734aa6cad7cc4aadfb8e" + } + }, + { + "public": + "61521acfb9a17a589debeb77057ea7101082e1d5200596e736881292eb7229d7", + "address": "Ae2tdPwUPEZ9KcG4c3zwvVNTLQe922aeCbMzcMAgu2YYeQfz9i8Js3jdHgr", + "decode": "7d6bf73db5847da29803769c1de80a9264db8fb661edf3b176237c70", + "params": { + "chain_code": + "fbb90416911b4d7c2d7585f388fe66c8e90e241dfbb8a4120d79216a6d075446" + } + }, + { + "public": + "c4cdc8685570a32fed671388024c858b5fb32d807af69456424982df0d127620", + "address": "Ae2tdPwUPEZ8rn5Viqa9aogt1n8WmXZ8jmF2fAHNnGSFnGUDqQcPARiBG8M", + "decode": "78c919d202232cacff321cf405e91ff34cdfd1f814e4b3ea29d5f5c4", + "params": { + "chain_code": + "663c9cb0fa1095132584c14b56e322685e8473a0c78985a104a0d1ebc6cbf197" + } + }, + { + "public": + "6dddf0b2c73e4bd52391af63b9575706fe705daf938d135cc50fab7d3c1e27e4", + "address": "Ae2tdPwUPEYvt1bUdEduFA7ViMJNEdmkG7BuHhELkByJWVKyVgF1jvEh37b", + "decode": "00bbe2afa6b50094bb1f34abe87c1ec65373b8c6937f5543e0804c5c", + "params": { + "chain_code": + "0849a59f1caed2d9370bf7c3c492b090da09154e0052379b83eb1f0b2e82e416" + } + }, + { + "public": + "42ee6559b972100ce125fd8533d88f77f476bac3066eb4f951bb45e44ca2f0db", + "address": "Ae2tdPwUPEZ7YzLdbDLexjgSvpjdFmWNvZCvAw93XM6UvCjFW5a1S5XAXm8", + "decode": "6bb091f955688a50d71cc55ef6330e063d23006d782b79e5d64faba3", + "params": { + "chain_code": + "81459090d4b9fc14268f7369c4e6f2c01f3da7ea7be9b711656a2dbad64e7655" + } + }, + { + "public": + "35397f737868358ddebec3d11461636012234e7900c4fb433edac28be6696fc8", + "address": "Ae2tdPwUPEYx79kLwZ78RaJc8Q84JEHT8sh8Rux35j3SaBcq85YxDBNvRP9", + "decode": "0d06cf13437965231f01c7e4ce9ce3c3feaef5eaac5f6d4c65def5e8", + "params": { + "chain_code": + "617526c47985b120aa562d9c56d02f2fdaaff42145a1738f2fd91a5599853b96" + } + }, + { + "public": + "1fe62e298255b107896f96f09f7ed8411a987b02172e81cb173666afd708f928", + "address": "Ae2tdPwUPEZ8BECmLsupFCQLuW8oyXBjnNB5sj5Do2wjxnqvXhbzfLvHs1F", + "decode": "71f39d55603c375ea713ab04b5bf606504def2409b05815c9bbb274e", + "params": { + "chain_code": + "e17cba140b299aba41de30b6c5a112f3051338148439145087f8bd1a012dd1d9" + } + }, + { + "public": + "76c9ed9002bb38c2717c43d27a90a0c4e2b5cc1d49c69736b719508c88a5fccb", + "address": "Ae2tdPwUPEYxpgp9t7ypGdLHVDZMY8PkXoymPiGJyhRUU2S4s5Q9Mk4okU9", + "decode": "14342613e31cf5ded745f7827bb83b8598ade49e4379fa0b80971df7", + "params": { + "chain_code": + "a5bdecaeb3b71c9c1bad854b3bc578fe8ff7e96ba7cd86e5bec951ac1cb6b3ec" + } + }, + { + "public": + "a98b2d1211bffdb339990ef63f7bf26e46e4a8b0a38f1dac42336b36f9c2b6e1", + "address": "Ae2tdPwUPEZETuFE3uFQZtDkPWZYbzHupdHCJ3XtfP3tsK6yuPRZnGrnUga", + "decode": "b0f70929f133112bdd20dcdc791fe62a8f679cb7076f4be2d06c27a6", + "params": { + "chain_code": + "30c5c2705a32b148805010cbff0b0ee4e635fd4e1950cc6e48e8bd107ab07bf4" + } + }, + { + "public": + "9a5f8febbe02a7588c86b1bc6950e880c279288b885607364ed22ba3cc8e5f4c", + "address": "Ae2tdPwUPEZEoZAcm6gPEiBVhsnfSJK84QVLWmZG9SdiND2njebKds7tWam", + "decode": "b45c6d6951ece491bc4f73daf2752c7be86fc6a74c0ba4afdb1e4105", + "params": { + "chain_code": + "e89a3878e81da329ca421b1b3842490376ea0ffeba86b67cf805b5bcfd0d1a83" + } + }, + { + "public": + "a136d45d73fcd0643c5ce83b8daf31571d5077c00c4a2d6d38386cfe43e2be50", + "address": "Ae2tdPwUPEZ4XFwGNnGRbj9TLSmsWJGsREx82ghJMPJCnHTdNawh6uNhKU5", + "decode": "4d530e28125252a0be8c16a2e97a8b9effe938745589ef4cd4234ec3", + "params": { + "chain_code": + "fcee610777a3140e7af4be4e44de504c43b32743f5856be6514adb3973179698" + } + }, + { + "public": + "49c3f95ef814a374edff1d43947dac0cf7057896983fefb0531eca4d232540c3", + "address": "Ae2tdPwUPEYyfLdBw4gtcaEuLgHWg3fFvuLVqphECuDdgTNboEobiGK8RyW", + "decode": "1c9c47b2d1fdfb5034d3c74fb8cfe76d0288f3fed70afba695969d0e", + "params": { + "chain_code": + "e440e0e8187f23d5f21ec46f7f137ff09a2b88b41226cf417254ac3c8505dc10" + } + }, + { + "public": + "48563142938263a448df2ac1f61a3441fb9ad4ab014cd44e9e3b51a9779efa35", + "address": "Ae2tdPwUPEZAdCh9wPfhcq3BqHK5pdWUjqB1UDBqS6aeswXSKKrQRy2n1vw", + "decode": "8a7bdf8f923e3258bc3c4efde901fe0b93cce7a3eb559eba9292b6fd", + "params": { + "chain_code": + "07ad324a19ed757ad2a44f8c0490020e747b46e1e827bfb796c99a57ed11dff3" + } + }, + { + "public": + "da19610d698e265c896565ec3a70e97d8bb2c9103dbef159e38228708d29948d", + "address": "Ae2tdPwUPEYySjBhFiTX9akED3K5H7qgXRM3Y7bS5euXEpG7fPY91Lp6zky", + "decode": "1a6e6d7c66961d6f6f899586e2386f91e87c173433287c4f04e1670d", + "params": { + "chain_code": + "df1e0f93492ad5f9d4a83dd9421e3f779bce275603b4d32191cd90abacf6ee15" + } + }, + { + "public": + "5058a85e17761ae5ad64ff760f4deb37456090cd32652c6d87da2ffb3455c928", + "address": "Ae2tdPwUPEZMRgPaaaSTUCF9F75PsDzyHdrRYhgvh7LNzEgrhKpAdKEAuPY", + "decode": "f6bc496914d459b474529b9b3370cfb7c97d28d173e2ab947c61e087", + "params": { + "chain_code": + "dcad2715489aca3eb3cc9cf53f84bf7075f3b7858e2c579f86030b2aea6d2bd7" + } + }, + { + "public": + "b0f6344cafe61c83ad7846bf46d4e1829c93ce692979980bc8501adf411747f0", + "address": "Ae2tdPwUPEZCGxHwqm4XqP9UYGULEdh7FWfVZwxoFwPYaL3RBo9BG53m5kM", + "decode": "9b077a68de029e44af51e05943d7cdab031bc82522c452d57d3eea12", + "params": { + "chain_code": + "17ad9119ae9dd1dc349d4c3733e2276781b1c2911b4e2229851f0f0c62bb9c98" + } + }, + { + "public": + "9d9d118b06ed7f01faca867585d506d44ebfc17051a6b9452c565f04d50822f9", + "address": "Ae2tdPwUPEZ1gJXSdRY5MqWqVoKsmKDU1HjtZomCK2DqMmBfuCtNSg2ctWY", + "decode": "30d2352d45ef9687393146e823fedec9f2900d7bab1c415b8f618bf1", + "params": { + "chain_code": + "1144a25433bfaf16f01896d98bde94fd81dc3829c20f4016e5efe76fdfeee98e" + } + }, + { + "public": + "3e2b721263961834c764ef34834793e1a70ad637e0a915f7ccfb95438f41b255", + "address": "Ae2tdPwUPEZ1E2v7YQjQHd2Tau3Citntq7jQpmxtpHR6zTbC2WNEaq6s4Sb", + "decode": "2c482f7f6b5eba0a27d00fa950a658f36b472207f79c6d5caca2caec", + "params": { + "chain_code": + "afbb062e0950a5e89ed57726ec0c01b8240013e5cd066693dd199ba8ddf3f259" + } + }, + { + "public": + "081722cef15a57142e0f10405dafbdea6588d694a965e75b9b0145cf102faf4f", + "address": "Ae2tdPwUPEZ44YwYA5dFiSs55AG3HkZmuZ73keEgCyS1EvVC3h65yucqMe8", + "decode": "48b5abf0ebd2d76a245424ffa55ab4ee752783783abbcf986fb32076", + "params": { + "chain_code": + "58cc19b99bebde4801e1ce8c0fa9121e6a62e95d9df05ac0000d241a8876f067" + } + }, + { + "public": + "eecd293f366f545fa65fa7924c3bb8550c490d01ffbba895ef922358883c600c", + "address": "Ae2tdPwUPEZD3MbssGNT6ddaPagS8QBN7cknh6sL2F4UMzNPYXF9EQLSqWr", + "decode": "a2b39bb04946bed62a0740a157563d90b02eb5a3d5896cbf56cca1fb", + "params": { + "chain_code": + "a7c7c9db2c1ce6b60bd751f53f9c4bbf9648aa28bb9da90ccee553094602509b" + } + }, + { + "public": + "78b463c1733668736fdba7c4994a6d3f3b1e7d60af100ccb94bbc8791f94b15f", + "address": "Ae2tdPwUPEZKG2p5NDgP75FUjTTjbk8HFRbCBtXAjucTTnstkJyG7NihCSw", + "decode": "e106375d8f87ff991aecc304667bbe5cd277a784e430ee95fa1bffaf", + "params": { + "chain_code": + "25ec09884170e345c32ab01891cad4932ca116997ecd03e29c54bb0670f5a485" + } + }, + { + "public": + "3dce09b2a83fadf7eb16cba73708b39bcbb8c69641a20a182199b1e6953470f7", + "address": "Ae2tdPwUPEZ1EcEFSWJ5Wrh4rWtz5CP8Pvnt1YA7QbXN3FSyrxm6r8XBXGE", + "decode": "2c6197a5dbe3f57784d7438a09a52822e5914e626c5e0479daf38041", + "params": { + "chain_code": + "fde934078c1490d9fce681c468eb34f890d736f76723f239d2dfa7b675a9e5e5" + } + }, + { + "public": + "4597bc5cdfe476a1de3881545c49bb51ecf53269723964a60e013bbeee32c914", + "address": "Ae2tdPwUPEZ2ygyfkRY94Pjriwwt3Ww14DCbrSnAG2oSSouuKDY2eeD17qA", + "decode": "3dd8fa5ebaf2b843e64273bb8e42a2a8f0442579d394f6b5f931ab33", + "params": { + "chain_code": + "9eceaa42b53eb12d55bbb1c5b0456fbbf8828944cee028ffbdba41aad9142587" + } + }, + { + "public": + "6b1b72edab027b7be42f904b81e3e9c3b271a97205fa0a0ee6e0342a80c109b9", + "address": "Ae2tdPwUPEZ5ZsYZni9yKLgP3kZBFU9brT7tbVkvHCM6EEHukU2hbsPBH2d", + "decode": "57cc54957fed5f0fa391d1148287d32b5502b995e8854cde5cf5ad3c", + "params": { + "chain_code": + "aefd5251d265275ae2dcab8e96de2acedcac234448d00d029189288d5a7fb927" + } + }, + { + "public": + "9d6bc90f717f79008fbb75ae189a841dd3d427983f8312cc1c2029425565f3ea", + "address": "Ae2tdPwUPEZ4vuDSb8hTXYg7zZu3kAFqdJo3T5BkvBiWnA7tyTtEUsF7NT1", + "decode": "5168e60f394ace4d0b4a3417509ecac0c4bde674fdeb044e2eb1a120", + "params": { + "chain_code": + "2edc77f433f6004ae70d030fd4c60056021019bfe720ede1ef20843c4a9abcc1" + } + }, + { + "public": + "6247741e3ebba01bf1e5bce77aef23897438296830f1da9a6b9fac07658cede2", + "address": "Ae2tdPwUPEZChnPchbu4pwMAcELMV4s2zGkxGPoSsYKBwMVamyBpa1m217v", + "decode": "9f51cee0f92929455b46b8e2ffce625603e7669235b4c9b957fd5623", + "params": { + "chain_code": + "d8e32804de13b33c354ffd3c4b8647908994556c11df38b4252d66ef55a59b84" + } + }, + { + "public": + "0e4e00332dc5f560c51a4ff4b7825b8fa3aff88ec78450002c258a8652b66943", + "address": "Ae2tdPwUPEZHMcUksdYFgQkDRNaon7RE7hLPTN3p1ifYHBxERYwsFySBuzM", + "decode": "cdf1c6c34e6e7c7e92e4cde1ae0ea12618c8b7eea63c7648a702b8bb", + "params": { + "chain_code": + "bc8cc5d368abe58143a8fab279920ce394e710d1ce5e87ce8bd10b9ff554943a" + } + }, + { + "public": + "863f844051f9dd168a74e6c215bb678e73111b5a47ee78ab9ad8ef680cba52d1", + "address": "Ae2tdPwUPEZJVHg7vFin6CBtZMfhmQqzh57kAz7Ldv8c2B18aeecwvaAKV5", + "decode": "d94af6c24684a2bc92c56b2d0052f4dbef083e8716966898278fbb44", + "params": { + "chain_code": + "777239c39034ebcb3a5f8192128ee787757b0e2287af00c36350fbe3adac632a" + } + }, + { + "public": + "288d44e5bd03f02274c07f4827be33469e1f8be3c10972363e8c1ea53a1ed332", + "address": "Ae2tdPwUPEZBt1QZugs6J3nPHTcpivvwBGKedv8D9U15LoDbRPBhYReHTNK", + "decode": "971071114d9d8ac5382053197ca6de175e33eee64fd6c572bc7580b7", + "params": { + "chain_code": + "c2dfa6e90a5ffca1665f614f011da51379e544c476cbe55699b83260e2680a84" + } + }, + { + "public": + "edffb2ed0786191fa622bb4a0d522a9af2299a749bcd123156409c79784808ff", + "address": "Ae2tdPwUPEYy7QqNaYsQPMwLukvBy39716gSHSqvacyxkFM7eRMxVaugshU", + "decode": "1717f6392036ffa290dc63802691e7c6706b92bc279a9167eee79898", + "params": { + "chain_code": + "86e57804471b4511bdffde283c17148578cdf86e480cb3644ab16d549c906108" + } + }, + { + "public": + "968f6813498affe678ab6175767a95162c376eb69b87668389631ee28de8d614", + "address": "Ae2tdPwUPEZFaCF7SYBDMP4wgEruomiqRJX3uzwrYqqt13Hh97pJT88ZuQa", + "decode": "bc130ee4a0a2108f821f4214c50b11da83048f6e92ed9153222ac4f5", + "params": { + "chain_code": + "e18f264c2e540ec0eb2684c801186f5215e2b35d862e5dac5b44caeb2e8cabb0" + } + }, + { + "public": + "44e249ca82551f1e2b68d75de38aef8341cff0c9065d13fc88616f4581e8748a", + "address": "Ae2tdPwUPEZ1FghJ2X8yZkdnSUVnKZNFpLsHboHrKfdTr4MVXTPwJLnk3N5", + "decode": "2c913be7368c15a69265bc74ef2750cbf0d50ec3e4023deb3c8d065d", + "params": { + "chain_code": + "6a94fe6d1628c06796dd59cb3e17411ef53f236133517cbd252f80bcd5036870" + } + }, + { + "public": + "9e73b450556832f6f97e76d89caaa90b6bbb6c11e37e975158a1980392c90611", + "address": "Ae2tdPwUPEZFCA4bik6LMjABZDC3aHTuFkfBFELr3XFoGY9Ea2hJxVH4Zai", + "decode": "b84437e0da18750022ce7de10720bdb73d02114c7f87dcb46f4751f9", + "params": { + "chain_code": + "9cf855d308bf3fdfaca29f5ce4384d2aa7657c521ffdfcbf264c2c1e69f278aa" + } + }, + { + "public": + "a4f6f63d4a9db8aa241c5e023a80f0b86d730038f78b8c7c0e629ea9ef438ba3", + "address": "Ae2tdPwUPEYwcBnuMaKzdfZaoTJNBe7G1Kk3aMS6ftSLNeVAV81GeHbreNG", + "decode": "08058b68ea70f6286731b8e071b8c6a53c202d817987a1d697e6b355", + "params": { + "chain_code": + "28e07a691fbbebf131f03f66b55cc351c912edf3f1516a5d66357ff5f9d5761d" + } + }, + { + "public": + "5ae55612857ccf7d04f1aa45ac203808b0f6a142594f3645419aa3bf9b13980e", + "address": "Ae2tdPwUPEYyFbbmKJJXiTM7Q4h55C8zSwmveyGgWTvEBC9ewvKrWfKAk7j", + "decode": "18820dfb4eaa61b1a74d7002b4be269d41ed7229c31b9093a2c7f35c", + "params": { + "chain_code": + "1d7763a33baf7cec31af28aad2b5146f1460b08da2ec1daad9332a56ba5b5822" + } + }, + { + "public": + "0aca18a1dbd8bcaffc719d2abb7ae854692227401d9d44c8f6d7d2b0865a2fc6", + "address": "Ae2tdPwUPEYygFRgCVnBbDS7tLpJf5xHDFvqPzAHhKAAhzrwdGwj8kyEKiX", + "decode": "1cc48cf32cae72abe76295cef41125890b76d794cda89833ec836862", + "params": { + "chain_code": + "6d53fb827d7c2bbcb9d9b4805bbb0db082a3ec3cd53400558812248b10cee156" + } + }, + { + "public": + "167c26738bac568a8913940f56d2fe3577109207570fe028fae3db7f52793a5f", + "address": "Ae2tdPwUPEZDaszGss1SVVYz8iqsFt79UXkwbZiQ1JTXuiocWNTWTixZQbV", + "decode": "a82613ae912cb2a2fc51bb3202e583dee29f3c9d836a7dc92b3b9038", + "params": { + "chain_code": + "ba89bd2919af4c98353f20efcc68a13c7380948c857348df95be87bb3f7d9775" + } + }, + { + "public": + "94bdcd79f3fa5009ca125e3c40d28c90518950b98d19cc07d00ff8477865a035", + "address": "Ae2tdPwUPEZFdJxV41t3VF7AxTvsXNbnQ8Qy2ZZNfmmMgXyvr6yz6L1ojKp", + "decode": "bc9ce256a7de18bdf2bd4bb15d260220160b7ed9b85c35dcb5b6115b", + "params": { + "chain_code": + "74ccc9189e7c64da265c6675c5ea3cde7b355a9b1a44f91b38d954d62d87e333" + } + }, + { + "public": + "45b45b7305cce695cae0c833ea565689f26b7cce2d7af06efaa5ca396b1ff189", + "address": "Ae2tdPwUPEZHPJugkoh6iF9mDNUJR3XRhx6Kp5MaW7YXUxJrwPQxYH7nReC", + "decode": "ce3cd8bb26867d069901901456acc631198ce390fe04158cf84e5cec", + "params": { + "chain_code": + "b0b5c8047fb7b1b2d2bcebe350995a0aedfc42a3747fd045b1de28efad418d52" + } + }, + { + "public": + "7e37479e5528a08dff3b34c541ffa5bac83282c61d4e6fbbb9ba96c4b5b28728", + "address": "Ae2tdPwUPEZ9DDv8t1qErwrZ7ikBTrxacq3B9HJgoTwmTmdwvzQWLoJ4FAg", + "decode": "7c51835d12c7db098351719d6d1d2bed590dbc70495842ad6d29bba0", + "params": { + "chain_code": + "fd69ea829e70ff7a14590e024f1a4ddccf1a8f7359b3735bced3d191e6bda466" + } + } +]; diff --git a/example/lib/test/address/ada_byron/lagacy_test_vector.dart b/example/lib/test/address/ada_byron/lagacy_test_vector.dart new file mode 100644 index 0000000..920e2d9 --- /dev/null +++ b/example/lib/test/address/ada_byron/lagacy_test_vector.dart @@ -0,0 +1,752 @@ +final List> testVector = [ + { + "public": + "6896f2724fc2f6c89a84f164f9e03a0e17eca230b81716a68f813f135623ce0e", + "address": + "DdzFFzCqrht4ybJ28wRbUNyjGGYESYGJDdB1i1NYbdxGazyhLYvqURa7GNQ1w5k7sx6tuuoGxYt8SQmZdmjrRyKFXCcbkmHaBZTtf3pD", + "decode": + "c09682fbb719e83cf941effa2b0d404eabdd7d24d0fbb832c28da9f1680474276b5a180ad52369740096dc377fc1de25fad3a10b62c6067f", + "params": { + "chain_code": + "48c932406609d757c276c427cecf00a7db1705171d9deab7e89129d0964be097", + "hd_path": "m/0'/11'", + "hd_path_key": + "756aedcc43e5e6dacdf24b1c6ea89f38ce6cdbe03010d1f62546dd856752c66e" + } + }, + { + "public": + "3a8ee4df2a5e22f0794c5f93dcc4ff9bbe24a5c8826091939b37c5e59a181baa", + "address": + "DdzFFzCqrhst6Kx5uWZcUiq5X2FtW6bAcmiXoMDoQJzP7DJn1bd97divPeKfFwbfmDokhyuPg5kKTgSKuPYkXFZxbdTjh21CddYMVaWR", + "decode": + "6d6561714fe7a7daf422fa7e5ede8176022a3cfb0a2f2e7ad149c98fa76550a251feb83ef8f583de06c8de7ba2e3dc9e4b42427a85a66752", + "params": { + "chain_code": + "f0a94212a4bcdaade91793b6f23e2efd2b538e27d74ffc3e469eca77d4bab08e", + "hd_path": "m/0'/11'", + "hd_path_key": + "bba4447d0853882504f682664ff481a93796801b4f0d6efa2670a37bce574630" + } + }, + { + "public": + "8c73fe96968b12da0e3fa75f9bb6e39313547d11c5cdc0c053e47ee77f5de42c", + "address": + "DdzFFzCqrhsqaLLpF6W5mqDTn2BqyALGY6fPdSCekie14uT7fjm8zue96RiuLmkfH53MjfqRmUASVYR8ykP2ofvvSEA6xNaCfydd1Hw8", + "decode": + "5a27f845e653ed875eb8100e7242beeb6588fec03c943d2c9aa0241372a842c700d2c51e32eb3f70bae6c845701d2d316b047b27e6ef80ab", + "params": { + "chain_code": + "5e55f08486a473154820f6274a033af81368ff2eb5551aaa28b4a8f1d41ca4c2", + "hd_path": "m/1'/1'", + "hd_path_key": + "0e63602bc7e85d52a254cf4bd1c90b1a220ff356bb4ab6259a5a976010ca1bfd" + } + }, + { + "public": + "5cb95e384a9c2c35cebaafb4864007ee0acfab27e01bb33acc9eda9024b752d8", + "address": + "DdzFFzCqrhtCX8ontAJdyGRSLgrzZCfutGA2KVZuc4kik21SBAnxJnPqK5v6qGCbePruw2eZGi5SvYbWQTd9XynKN1iwQhsogSE1wfM4", + "decode": + "fa400572c47f4d29bbe11b6d58ea8f93f119669c72c155b3f20b18ed20a0efbe05bd711a789a7163031b96e0050ba5897217baee1bc528ce", + "params": { + "chain_code": + "d0affc3a9bbc4b148e82d3d347c30befc669390be833ef4deaa75650b462c97f", + "hd_path": "m/1'/1'", + "hd_path_key": + "73bffcb793bcb7a1b1db56e28b9ce005371468851085a971566c1c6812280de9" + } + }, + { + "public": + "c709831619f26880e1e04383b004db1517c967197ee42c1d4ff7ebd72cae92a8", + "address": + "DdzFFzCqrhshcQdjAD2GQHrUxFwS2RUATWiH6HBdQaQ1tZFBCGKR7kwPeKofbESRrbbVqVUFzeU8tUhuxANzKcsnYteW6HbASvb6ckPo", + "decode": + "1d47db13623b80750523cb975923f1e27d27b74fa39f3483b537b91cdc2c5289dd9c1134ac15fd71dce3ddac302d2bf0de8008ba36e9edc0", + "params": { + "chain_code": + "e4fb2dc087ac8424b838dc4f945913843193fc043998b6c4faf85d2773b8e0a8", + "hd_path": "m/0'/11'", + "hd_path_key": + "3b0adfa8f3b31417f983a68a01b0f8260f175e0375e3bca7a9ae2d755963b8c4" + } + }, + { + "public": + "d39afdfd30d8e2187a3bb6a0d59c81600acfc9c65ffb55f7af64ccf92ee65b9d", + "address": + "DdzFFzCqrhsmM5ij3s5BfJVdxXxNXcs3iWP16kFfwKssSAquiCsmebfdT2hPk8XngqRaqj24qjyi1F3ihb99GZnFWKH1Rb1EunguhQiM", + "decode": + "39d5d672ec42fae037cadd158dd8f50206b542c833ac260387698ab4f74cd79a561e10b66ff376598552b525ea908152e46af0ecc674ac92", + "params": { + "chain_code": + "7a4304a087bffb979b128e7e5db91d9df138f2b6f60a461d9634efce9a5a97df", + "hd_path": "m/0'/1'", + "hd_path_key": + "c0ef8cb8b1a34ba31616c6a30a1193561b48ec63a1b064a59635c108eb3a6c22" + } + }, + { + "public": + "1a871940fc381289b452a65184477656130b7f94858c005c656ee66989516046", + "address": + "DdzFFzCqrhskua5XWydcemVaCsu588HHJHRXNkhyXzAHfkzxCuz6ZyM49vkj9FJrpksnUDX7EW6n76s3AbDTDy7qx9WKUNtnyDBFdrnB", + "decode": + "36792a2a0e31d579d058c810824ee0298adafb9d1a82e1dd1aeb2cdb0ac98cb1e645745499071a10e8c33fa0789a9252922b445bf9cb2d73", + "params": { + "chain_code": + "9f160ec221b39e1715a5a045a3ebf7e4827f5cc030d1b0b53eaf005234be380a", + "hd_path": "m/0'/2'", + "hd_path_key": + "d06a976ab36a1ad387b1954a4a012b042491b63f691f0b3fa8b3b7b575c11e46" + } + }, + { + "public": + "e45b2935714aab0ea06f9b1f95d280b268b08143b83453231d727dbc84f6083c", + "address": + "DdzFFzCqrhshw8DbJCatYG5dT3YYgrn8xHtvnJT9fZrK41Y8DeBDdHHi1mEgfiwXNEvzaZVFsvEiqx7DT15rGATVamNba1W7X81ypY1j", + "decode": + "1fbf508e24fbe42510c91f1e11466ba14544b4c92ae9873e72b6ab332755a6cab50f26a393f7133c9e515f0377fecd71aa3ea7098caff636", + "params": { + "chain_code": + "e30c5bbfa136f3daba55829e6deb9e3d83619d6362d40f539402d85e44410c73", + "hd_path": "m/2'/1'", + "hd_path_key": + "d3538db1fb02cb9d9cb5888ab6bcd38d3b2a8477abb13c4f0d30fc7232e898e8" + } + }, + { + "public": + "98ed4cf702b0e4381fd8cf439d8974155fd722fb22c6e38f56b88c06f88e07b0", + "address": + "DdzFFzCqrht78X5UN41QszG7aRxnKAnvnobhAXeUC9saThj27ecZfu5ZUdMAzRef2394tGqk2yP78t7FXyGP2w7V73eNL6L1rz5Hdy2M", + "decode": + "d10d3730fa89062efde04d54e2bcc8fb2fa6aab2a04a6c285c1d1fb4079f73095463f0ea234bc158ff0950734c44a762f28086f8cec3d806", + "params": { + "chain_code": + "61125511f0b3e33395dcf5d4633485d04283bb592562756ac8e7905362b056ff", + "hd_path": "m/0'/11'", + "hd_path_key": + "a7dca4cf0c90614e47485372ddcbc0aabd272c619ee2211bbe697952d4bcdbd8" + } + }, + { + "public": + "da5c2604d910e1bec1df0f6048e936b5a26868d4dbabc2119524526726410bc2", + "address": + "DdzFFzCqrhsxVdcHMA4XjXbHdUNbp9mZwDjdeQif1W23Y2vtidNBVv7DUBkT1Pv4Xbmdveqws82Y82z3qAW1W4sFeofynzn4bK388pnz", + "decode": + "8f0aa6c54e6c25c281b08c7332e7f9ce55bc0c26d4bf970dde3141a2330b9b96b181b53ebdd757ea6154fc2f89f81b6e0c7289ed2848338b", + "params": { + "chain_code": + "2700d7880121e9ff795955eb0dc07ec22904cfe18e0b1e087c691ad17461dd70", + "hd_path": "m/0'/11'", + "hd_path_key": + "ca041e347f126d982f8d52e4054d530697dd11e2a351e8af2ad60161dadebb7f" + } + }, + { + "public": + "cd241edd5d2b7d5dd8e171fd307dcbe8b6a41f3ed3262bed668f53449932fd02", + "address": + "DdzFFzCqrht9frBtQfdiW3iBWVQnre8gq6MRf6jjyd5V83WLKBbHvYhfvbnrd2L2yDDWhZELeVgGyRn778pmHXxHXUXS8UfNrZiRGYLd", + "decode": + "e477b532e5f75fe79605e98d4fd87c82da7add8642921b646e3fd785339c88ea99fca1846fd67f765f90f8df11ddeeab7e5eb23e6b1c2648", + "params": { + "chain_code": + "f769bd1d8cb065899c180dc5f86fac158c5a7944032e7f73c5bba3f463cc3bb1", + "hd_path": "m/0'/11'", + "hd_path_key": + "003c03f2326b91d90b8a88ba239b977037d832424753fe49442c927478d7af8a" + } + }, + { + "public": + "d85dd932cb456e4f62504c204c80e7bacba12b633810da2ffe6d6cafa64cb590", + "address": + "DdzFFzCqrhtC5wLdPpbczXuqJugVdLdzp37MkaACtX6i7uCnoPZbumWC14RMym92TnV3oTKBsiBvUC7a49Bx5DnteXG3aEWqPvA3uiEF", + "decode": + "f6edeb4b6e391f1549e88533d21214c49daa4756c5671c0c2fee60b05031e7822b7fb0cea6bb202e1f2f32e207870e9b2cba6c0c961e3517", + "params": { + "chain_code": + "e2a6fae39b74d13f111e1de9c4fd72971a046fe9317849fb0fb0963ea85d9c4e", + "hd_path": "m/1'/1'", + "hd_path_key": + "aac05c6446a615be806f17b88ef661e83d41cead5177268c69de478be7adb439" + } + }, + { + "public": + "3f12947851f907985b41a3f9cb96d34a8f1d88acdab5a1e4932c62472320015e", + "address": + "DdzFFzCqrhsuGfUTNVyphoAFPnD8nZA7fjhAK8vGCyL67cJo2QF77n8DBLf7PHaXPSZMuQyVL39U9kUSXVApH1gsz55goWU3JzJHtJ2Q", + "decode": + "7666dec57ad144f8975509f4b9856f9fb71df4c1dea0e17ad0ac02c1142da037067b62b00a4f4923ea77702d956e1a1bd2f6c8b8a6ef0268", + "params": { + "chain_code": + "f86368c224f8149adbc190cc4abe032af27bd6fd185a3fe98f547426237573ca", + "hd_path": "m/0'/1'", + "hd_path_key": + "bd1cc400fb5aab07b02717259b284d93e44e1f5f6a36ffb123103eefe5dd9839" + } + }, + { + "public": + "083c03082f655ed58eab586de01eb7dd4fe5cd1a23938d30dd13f6ce301e5a0c", + "address": + "DdzFFzCqrhsiTdN6ufizgNjtofxacJbGx2pQAZ8i44Ti26DhEUkgYQ4xNNg5KxWhBdz22Kn2M6ARAyY5fM45pes5m7yMR31vpZkW9bSy", + "decode": + "23c462de325637db9628049b20c31f67c10b24aea109ee2834d2b59934dc8ebac60b2c05d21f4bbe609260a77aaff03d769e7f0e743bcdf3", + "params": { + "chain_code": + "9e1395f492ba5acac8689429ccc964aa089d398a72c749cdd8e51da8707deb0d", + "hd_path": "m/0'/2'", + "hd_path_key": + "b3a39781fca5b49411a2abba29221928bd4d9ff7312503ed456aaa94d2198cb8" + } + }, + { + "public": + "b0a52d38e20adbc961c2dcb9a3ea6b66c0f766340bd0e8eb689645cc7eb913ab", + "address": + "DdzFFzCqrhseYT1HYSR9PECvFCZhxHz3FQ3c1nFa3FkGo1ReK8RZejG9yYx9TjFAkHkgi5Ub1NF4xgYbo17DkRGQMw7RPhVdjBcrU9Wx", + "decode": + "05d401262e9c96def09157a28d8393b705ff7c7f3fb72e0997c6a550c697bd80bdf77d6d4158be364c44a98176f17de2bc39fedd2d6bab61", + "params": { + "chain_code": + "73b9a8ca07cad75f334c51d28e335c4396284a1eda2f1e79b871262ef2aaaca8", + "hd_path": "m/0'/0'", + "hd_path_key": + "e0a1658f52f50aced2ae0769d6646c62c039fd2048d4908817386e34fb11a5cf" + } + }, + { + "public": + "85235cc4841536f5ce658e620bf02cb0f03ed1f68b305c4a466442832355a9aa", + "address": + "DdzFFzCqrhsik2W5tsK4xbH9Qdn7RN7ZUM7Zh4aBXMxQ9LPVaVpuBwwWZHQgSErAKLtaVkJYn4Xkc2Qbmr1CAf4QABwHZ8jpqMZVxyng", + "decode": + "25eda40f0a951631f8ce78d99b3e4b656a5ce9266b95c084ca99b37859b80364f03e9bca8040a1298848aa2a15d2d0acf6f52d7d5969a660", + "params": { + "chain_code": + "4e6cef80fa2dbfb38325b9ed89add322f928096b34a7660c8022a5909ab65af2", + "hd_path": "m/1'/1'", + "hd_path_key": + "4d1617b4020d13649216becbe7408e5acd172e3a37ad3e5eae4f019b239b7f54" + } + }, + { + "public": + "bf11ce66866a720003177061705f558772da30396b5b88cbbe5104b4e8df4b54", + "address": + "DdzFFzCqrht5aA78WJFCZNvwjbyZMpCqunJkKGuQMszi4Awcn4YbZCUputKjysY5VB4cbEfSQKRx1HbtVTiv1m7ab6HH4BdDdmL72W7j", + "decode": + "c524aa11c48a7f42548787a0a988556bd2e39d8356409207c7ceec317c9fbe5711c5185a4004c314aa12377cb068c2ae8b3f0627a15c053b", + "params": { + "chain_code": + "e837d9e0a416424235959f17b517e5f6a38ef037f31b1dc1aef154f11fdb9cfd", + "hd_path": "m/0'/2'", + "hd_path_key": + "1a28686c3fe0ee17f57d27d5aac96af5fd68cf381a9288daf5efe85745f493de" + } + }, + { + "public": + "a732e08fff354b561943811d775ffdd83b5a01dbd57324a4605997721e653c2b", + "address": + "DdzFFzCqrht68CrjXRCFP2rEm2T6bWw4WQP7L8tZuUQKPYm35CMNKtCMQtaTHtpqM3xPKEkmn8r8uDHRcpFXe988EVifQfSvUeGbHLH1", + "decode": + "c95ddb675b9925b6007b03c4c2f057f1d388c4debce5f2275053e2441f2d18b643db15a6e276709c9df1a32b0ec9f0df27522f662491e68a", + "params": { + "chain_code": + "c21fa8bb17b9e04124c56dc297e4f3473eb4cf36fc75ce69a0bae3c2eda08b6a", + "hd_path": "m/0'/1'", + "hd_path_key": + "44575d4f180ca7e3a4c4d711033fc50af3cbea77c412415b8e4e31bf0a49764c" + } + }, + { + "public": + "b6798689bae2d9cc943a4e921f02e05b83f2d8e2ebc95c5f6c485812f30ddfe7", + "address": + "DdzFFzCqrhsz1GCVbYhnhkQQKY69uoFVhQ8D11AEk8xWLkFoMEhpBXZufMurgjAiDhdH17Qfd8twRfHWfdabRiXUscDTLnGRvJMWUpJS", + "decode": + "9a97136959afa55fedb22af60369ea89c81afd876c7fba4fffb6ce79738ffce1cbff5aaa8e99665e570a42a711c359594dc51835c6643c30", + "params": { + "chain_code": + "4e54f9e5e4cb25b3e079dbf4dc1b17746ae31885f7cbc1cf14d4f8e52615f62a", + "hd_path": "m/0'/2'", + "hd_path_key": + "3ad45fddc19285a5f9b3fe96d6707bd1bf26bde24e40a187357db8979aac7d82" + } + }, + { + "public": + "856443e17a1166bfab244b6be6091ae76b578281d65509acfe0e517386493f89", + "address": + "DdzFFzCqrhtCh8msfr9PBNLiFWNyfcUZYTvifonQ24XCiorvwhuavXWsnK4ftXn3HpqVmpJe95waKMiQnGCh2SoKYuZHL5nhvdhNggK2", + "decode": + "fb915fe3e89ba638338fb67c0a84d6efbed7470ff6421fcbce1a8cadd9f833892c171761333fd63b34633c7f23fe8901ab10b204eba3ac9f", + "params": { + "chain_code": + "fd3541ae2f3f46286623a86a95097941decfef1d06c63b9c31a00c4299487d99", + "hd_path": "m/0'/2'", + "hd_path_key": + "fd03a4eb6a29a73e9ed285e2c78acfb4db79a9d2225133b3bf731251ddea58ef" + } + }, + { + "public": + "8c732f85046ffb4eb2903b6579560e1a47a62cb81abaacaddfca987f3f617c6f", + "address": + "DdzFFzCqrhspQgiSZD5dLsZVzXdZ64bDYe6uDUBm8eoDmsBGiwbSQeGf54FiKWJ1FA6Qd1HqzzpB9Y8VB2xPWp3hJ4gh1tkNp9X6smyP", + "decode": + "513dafe666d0a49f8f70f8364f3e7222b084d6a7a22ae12b40614c9c3e96e9c886eb4be1e33a8dd912c3e13cc7c43110dbd8270599a3c9ba", + "params": { + "chain_code": + "a287b81a94f1b6e979d84a69dcef736ee14e8777fd9945b441e76ac155911f25", + "hd_path": "m/0'/0'", + "hd_path_key": + "fbccfe5be23ae5446a8143aad3b582e1e24af26336b6a5f580b8f101ebcef5f3" + } + }, + { + "public": + "014dceb89ccdcd181bac5d01a4d59d03f8c757aecca7baec3ab9aba52ea2bc1a", + "address": + "DdzFFzCqrhtCZZ8GFQBxohxHTsfRBhBaNGVmnYNhr6EJQctBPoJmRpm6UHwNjEPydeF4crSgDuoqu2En3EkuZwV9Sig35mArkKuU614r", + "decode": + "fa91a42af924a02742085dec42042a17b69bdc347d0dffd0cc437f04b49abbac7ff491a21f814a738c938f3ecc232124618bd38eb3605ffb", + "params": { + "chain_code": + "e865387bbf1d784e93a9aa435435e3445daa5e09b149f03d3d51fd8e6926deea", + "hd_path": "m/1'/1'", + "hd_path_key": + "fbfaf79dfb36162e058deb7671a42ceb17bdd00bdb5e2f336d76c42763d480a6" + } + }, + { + "public": + "d7fb78eed78070f4bdfdb902d20d56370d3541aca19d312e86e0256caaa24413", + "address": + "DdzFFzCqrht5zxsvnABrxFzrxA4Kqrm5d81raB6HVHVDVy8kdWArrFv3SYgfn49g3GteFgPic8JU4xiHHHKyJYng58TDHE4kfiwVqd3v", + "decode": + "c86990959db618c21a53f10a6d19cc37958cb75e7fdad587f8a047d6ee85a5ba960fcf147e476e0cc20caa4fd35cbcf6653e5571deaacc7c", + "params": { + "chain_code": + "8f8ecfc4cedafd008da7bc0ae3c9193241bb3468d2fb58113e6057d91cd01ccc", + "hd_path": "m/0'/11'", + "hd_path_key": + "725e013caee6b9862311deaeb6a15a87b4e848276836674fbce85da9a2fd7474" + } + }, + { + "public": + "ac50d8602355af69db79f49b75a1c4aee347f9138c4d7b59b5406d336c848b3f", + "address": + "DdzFFzCqrhswK9Xky8uYspPC15sSrx1gg2XYmHb67uemT64qpf6mgQZmFvRxKLP4tkQSdamEeHTu6CNRHnEFSfx2eErb483ZXjVZvyKg", + "decode": + "86042f9dd4ac1eb88e10d04cf9ccd8172e459c31fb7250b228cc5f090182f479ac2943b4da564516379cb21626a6b59525de3ddc059e40a3", + "params": { + "chain_code": + "effc7d3780e9297eefa45f1d6fc21b40bda601dc10d3703981b2ba5cb379265d", + "hd_path": "m/2'/1'", + "hd_path_key": + "3cd28ed664d0b51c7296f32ff52d4806092e824950f621aa07a6aa37c0d720a4" + } + }, + { + "public": + "b9b19b69914cb9e4cfb8b720e188ae3f6c6d4038723aa29fe71ab94d910de686", + "address": + "DdzFFzCqrht7CAevG8BDoBp4WuUDSxPHHGBrVmqJw1stAQJMvti4qo6nVczS2bzp8GRMd2PRYmrz7bZ26NZgjgchTaEX9Bkk9fUN99R9", + "decode": + "d18848e9e2e3b29a1ccb18416118eaf48cfcca5711e362fe0574afb1a1e431fad75b7adb3a05606fed7a3a67574cf3ca14f385a6787638a3", + "params": { + "chain_code": + "b2a74ffe406a969fbdbb4809edab0268b9bd6794f94fb40dcab65fee0fc43030", + "hd_path": "m/0'/0'", + "hd_path_key": + "5acd08199a61e2310a4a2e74c14d363a034d0f010d6e70acfdfd2e419b85b51b" + } + }, + { + "public": + "17806b7ad06419f7a08401a5dda1830b75c50fd3cd35640a9199d1b932162250", + "address": + "DdzFFzCqrhsrByhrW1NaVSfKE5Q9rGLD5r3B4met99KCL6MaB4M5BqQbwFcSzBQXMvWwJwfJGfkswrhmByHpB49bkLfbktYRBfj9XmzR", + "decode": + "5eda81b51fae62ebb5d496f64e514dcf411ec158c29d0659bfd3da907265c85849af3366c8cd1cef369e754c7165ddcd61698c174bce16cf", + "params": { + "chain_code": + "5b42af9e271cbb33e183b36b69e3d6ec8ebaf6247a3942ad1fb5a6296b7226b3", + "hd_path": "m/0'/11'", + "hd_path_key": + "0ff1f5877a7d87edbb673a81a74d4d29f31ddf31be700b61fd43b9533deca3da" + } + }, + { + "public": + "992737b831f3b2fafd6fbb4767ebe641b4eec35f4389306f8efcde433e8703bf", + "address": + "DdzFFzCqrhsi4pTYTUSSgHYaW2eReBU8dSncXCs89WFLdt2RH34qyNWUZMk6Zga2DYN7MMf5quVc2FcdvaYUXHCweFBckGSN2sxon7e7", + "decode": + "20c2e1e604f0ae62f1168a982e574c9b6c1de7809c7f1ac09f0507c1b354daec8b4e3629f5275da14ab18f5bb3ddf44d286368b77a35c80b", + "params": { + "chain_code": + "a91f9e98fb9ceee04871070452ff43ffab5f753386ff8cbf79df8c9a7d9bf64a", + "hd_path": "m/0'/2'", + "hd_path_key": + "6ee6a823c9e377bddd0206eeccdf3c15f802588a45ec3f02ff6b0a81269c2c8c" + } + }, + { + "public": + "73c603617cb8933f5333f37be1bc40b1d91ef09c17d1b737790bcc8d69fdcd67", + "address": + "DdzFFzCqrht9V9LtNY62M5yZYuPR7U73RBTK1tmn3HatuU9MUZYRMu4TkdaWhGHk6deyACt5yHQmkVQzuRQrFj3DTKNnDH2YpxHYAy46", + "decode": + "e30e93a8e485e418dc2867d063b6e92125fbf9d52ffc63eecbb081904ae81b7e9e5c5c60decf2a2c4860340966a37d5f401e570453cb399c", + "params": { + "chain_code": + "287dc109aea44788c0d01776f032293c29b3f9fc8a1a4664e2642f8448376ccf", + "hd_path": "m/2'/1'", + "hd_path_key": + "542a0b81000d938e1ee535af0d47af0c053cd6aa2dadefdda9f15039bef83086" + } + }, + { + "public": + "bcba74792d5e3838fc6ababdab74666cd09fed62491aa8c1144b29e0339e2fa7", + "address": + "DdzFFzCqrht8TnXe31C4HtsRsqJFo2fGDrCXfNgb2rLxmZocXx7yjiM4Y3v8nVuS84RetYCEFMX5nH1LUbWWzqJzCMbrhYqCCLX5H9n1", + "decode": + "db3bf8b844143de053559b2f9730b9bff3884945ccb39c730dad024be5b9045cc69cb12c9d21841d8ada94d0beaa2f8849d3f53f506b8690", + "params": { + "chain_code": + "085f5a4c479db27b006bd117fc866f257f54f7e6755944bd32444ff4d2ac2b6a", + "hd_path": "m/2'/1'", + "hd_path_key": + "f5dd9ecd8d9a5b2b8e7c3d642f8ee462175f052b1522aa2210f3eda7eca249c1" + } + }, + { + "public": + "43e3b670cfc4beec48c7ef98e3ed78b3214cdfe7a4b8ec5c996b8bbbddfa95ad", + "address": + "DdzFFzCqrhsuZ6Z13paBwWHPt4KKfB4NXK395SRYxTEkxctJVsrF618zVScno2UNZX2YrmzpkNUSQr4QJjr4mG13S64F4vzNqSptM2nt", + "decode": + "789140f54dc7a65598cd1f877af2e63f571ce5f36e2e439d4528834e5f262e9713020a3159dd094040c4208c9e5dd4a314aa3085ba453fe7", + "params": { + "chain_code": + "66e3e07d1510f1d39478304c6b2349b839c39c37a20da4d32cc976840a300d2f", + "hd_path": "m/0'/2'", + "hd_path_key": + "e67f36e40497e2eba2c64136a0e31ee31bacadc158ee1f79138c07455736a522" + } + }, + { + "public": + "d08b6cebf89dc520729897f1f4ae98367f563bef112013a505dffd83d4899fa5", + "address": + "DdzFFzCqrhssdqWMBbLmXH6pFhZxeCZrVNrM8ZTE1wAgmD6UrE9M9upiH2dByidwYeXet5gh8eSnUhEMLb1JPZcTmWZRBSGiBnJSsgQZ", + "decode": + "69e7aac24830d029c43e9b9cc81b89108a27a19f2339acb4ce9b9cb452512bd69a30a3e20b4105b8f9f3bfc7d72de179c814a577fdf4ab9d", + "params": { + "chain_code": + "e2555f39f0cbd63badb39a3f1316cea271a94663bac04977646bcb7a6c5b8178", + "hd_path": "m/0'/11'", + "hd_path_key": + "142e186bade936bc033a115abefebefa48c63ee1ce80c3d858d804df6e599047" + } + }, + { + "public": + "cacf1b257981d687bcb15c39880e37697678f2b389932aa059550b34afec7775", + "address": + "DdzFFzCqrht2bQWeymXZWqUQJkK3MFjyiA2HBM4NvuP31G2HJAVzys6PfsaSe2tokArjrjbSSaCCgho41jGSRSv7vxBJQk2oZPhx6nCK", + "decode": + "ae607fc95924c2eb609b25bbcc42b58a71875cf555d9c8587644e0b0ea3801fff04f48517bb9404d70b3267dfb6b88f12fb1e743b1a2c3d7", + "params": { + "chain_code": + "c23bcc5a2364d3ae243ecfc64d8423e7c9a351a27b9a6fd9ad21f02daca54dd1", + "hd_path": "m/0'/0'", + "hd_path_key": + "b65d81c8ab2a20a56e2f4a7b5b656a9bcb2d6d241a99b591b2f9c7c30a0f6842" + } + }, + { + "public": + "35ca3cd1e155a90b6447a908ce8d28aa7f4413428877b09c096ee98df0ba043f", + "address": + "DdzFFzCqrhsftXGydfTakrZTJhdH9rDeoQaCDfo3hGbf8t8NCrnR8PcyeMPtahcaHXhUaDLh5sfizXjiS2DNBeei91JqbGd8KVC6JDv3", + "decode": + "101dfe84767967458df99543068e494de85642e88290234bc354fb924dd171b44ef872fd94e439d1db7a1d998bfa1d0f6dde54e2bd656011", + "params": { + "chain_code": + "b82a8872ea4643078b7a81b77783117c20b7e63acdea12aee7f9c238a2fc6f30", + "hd_path": "m/1'/1'", + "hd_path_key": + "32c087d483969a53731ea2db8d1b76e03685fc48fd929c53485a607ada023e45" + } + }, + { + "public": + "0fa670d75fb89a271cbcd88e38022fd8ddcaef5de455ea62ee5798bbd25bad9a", + "address": + "DdzFFzCqrhsfv9iW4yanyo9SwKquVAXAGwVXweZLk4BkYXiN4hyHKghL42pETQNdsdGvVKbQ2XKGk5Uhzhvg5Dqwmg6td19r4CAKVYhU", + "decode": + "1054ed84eb0090eef577a286653edd598eb9a82457b5b7f37ae49388c3b5083d2254b71353957080ceb061d596bd3bea993d554e6cbe41ec", + "params": { + "chain_code": + "c85e1e031cc1c8ef98d789a7d92a53d5c95a6082602fbd193b248e6ec2b60dd6", + "hd_path": "m/2'/1'", + "hd_path_key": + "5ef711903585b1533aa35e37147a640997368df5176a5632a5a56b6d00f6275f" + } + }, + { + "public": + "c4ff2c11beb20542e8961f6dbddae5f7690d1c96873a385c45e43be4e56bb560", + "address": + "DdzFFzCqrht1S9mGauMgxhMtNjJjq5uWJjHR8EXMDqH7sytBWHXMoMPeec4ZLRPuBsicYrXfMqQtPWhqgMkEvQ5WFYMbavNbsnQ5ajQC", + "decode": + "a5838652b94616ec137f266ef341b4c74235a81897855d1daa230d9fecfd748f57e86af8ae328253b657a7a6295528947da41c6abf666fb6", + "params": { + "chain_code": + "a180d8eddb6699bca2b67b9f84a6977e890fb2683288d1e0cfd99bba5d75a2eb", + "hd_path": "m/0'/0'", + "hd_path_key": + "facd03873fe91bcfb44c74ef224d84e19e37057e997f5a421fefb8ec831b1536" + } + }, + { + "public": + "9a83e487c28ed98dbe8958625d5d72204151d1b55a185f03b123b9c5886a41ce", + "address": + "DdzFFzCqrhsr6FcPU9dbRWuWPAEsNkJ4xivjZeDqFPVZ921341Rdm44pdkGkdVMsF5e92dNuQk3frKjZLnPVB8Qh7b2rGbCJBSAHaQJV", + "decode": + "5e1955cd92cf1d0ff2f4ac4e421be901c0f12d51d65a0d7bed50294a9d6eb365c080eb6f30961ae9782ba5db23a48919f8ff3397841f4fc0", + "params": { + "chain_code": + "f76673e7554170c120d2bc20d17afd0b95b7400ff3319f49fc5fdb7b0069b5e3", + "hd_path": "m/1'/1'", + "hd_path_key": + "f529ec53382e48fe724ad0d7b7a69e6a7698a7838cc5569e36e57af2b2715876" + } + }, + { + "public": + "7b2af195cb3543c4821d0e79a2a56832806621e7ee47054f9113f8e4d458ad57", + "address": + "DdzFFzCqrhsjGjF31SiPvFfQr2WEyFhd1U1jCYYXqBJNuRST4tzcswjF14PUXxPGPe64mm9E9qDLW5pj4qd51Ryh6JvJV9kcebQDE6YC", + "decode": + "29f974cb2f2890e600a22ab1cd40ad58d5b0bb468553125f06d31f5c29273ab0f428d8ad7b8c43a94177ad3d4180952c3b66c948759042e0", + "params": { + "chain_code": + "394fd785484205a0bcd35b8450dbe1088bcf57df3a360353b98bf7a535a770d5", + "hd_path": "m/0'/2'", + "hd_path_key": + "ba6ae1af5a7ed0e4d151cd9c976ac5d6998f41917ee9457ed170208166e9a05d" + } + }, + { + "public": + "a062401c6334b5e3e6c00bd527d6d0bdab0dda09b514af8241ee1c863cecef7b", + "address": + "DdzFFzCqrht3xFTLAbBpbbZKNtaXp6jsJ8VKQuxCWcXdqj6XB2YR6MeYcYR4bGaufs2VU9D7q77YfVUzvEWC6XKSByrAiJcF8rDqe7LL", + "decode": + "b8c479401bfa6c8c7c7cc7b5eebe698b586233f8be889f8055e73a8e7369035baadef2b90a60a268fcb765028ed9139d9d5a6c4e08768ea1", + "params": { + "chain_code": + "5640f11c330c653fa8baa939c852f939fcf16046dfe4704e0a0833681950d74e", + "hd_path": "m/0'/0'", + "hd_path_key": + "f9d3e43d1cb2f1a646077735630df9be4267303d0792cb148fa245a1ca8ba64b" + } + }, + { + "public": + "5f92bd00f315f60c933a68dd61e4920ca1763773574413c970e30ab81ec577a7", + "address": + "DdzFFzCqrht75wJaUuEkWFhsrHZGHzFi2AYxAVNtaGtsdA49LfyJ6hdJ3ejn8Spsi8kzvAdAosxa2RqFmmWJUJe1M2C4L7Tj9JNBgsE8", + "decode": + "d0b618736e15918394d5bd6b93e5c2c51c5440bbf09ec47505bf102b152eaa8df9ad73031eb61bc52a1c7efd139d9022e2077b21b8a6a9bd", + "params": { + "chain_code": + "148dca6fbe7bf7b0c06a6afe442b035dd5c21abe649396e6d52d2e1873df4972", + "hd_path": "m/2'/1'", + "hd_path_key": + "2b9b8768a4e6ac2a9c92ffb58d36cb44ef2a384e0914c3eaae14d2fb55d4759e" + } + }, + { + "public": + "e559cd6d8054c27eeb5c0a8596f64ad382d5ed37d794a1681490d06bf417eabf", + "address": + "DdzFFzCqrhtAmntNxXA3TbHBLVMtLZEfRrYmDS4PWuLbCpo5RQxsmsdhgMLYgR28do4u8vrFf22BECt2c4u25G9CkWkNgSHhsoDEoqTb", + "decode": + "ece4f8a810c7ae22961a92f130c1e6aa9bc0d9bd72bd5623937def309e9021cebca6bb2467eab9ed92aa9410b5fef3efce749b28d78fb4ed", + "params": { + "chain_code": + "f5e060265258224ae5ffff7ad784b110e52462427d2a36474938fc0fa74938ae", + "hd_path": "m/0'/0'", + "hd_path_key": + "4797ead8a9f13e5650a06bf2380fc74dacf99d83054522780876c01d4636994e" + } + }, + { + "public": + "2a8368d8fdb1ba4d635846f27127d3f96ded22d8dffc754372587a727e5054ca", + "address": + "DdzFFzCqrhspotFAxPFNs2xMyWDibGe7oMw3rtepi5GfwbcWjxfJxfZJ3sX8RK7qC7141njwuPhKi6g9WfmtUvWGNgNfUGMpgHDtAi8i", + "decode": + "544c59bd5e941a8d2aafa37c32b55f010ad6556714fe4bd81316414c906c897e3b8ce29aefac6033479ee876c9ec0024940bc0299594a6c2", + "params": { + "chain_code": + "0c8702598aa0f42c784afb8d15d4a38d7d7982374df254fcd2b582a1c6a41885", + "hd_path": "m/2'/1'", + "hd_path_key": + "ded88a94cb42d1a73366494c4372782cfc08f20a8ce118e96e0fe6ee672daba3" + } + }, + { + "public": + "e0a5894ea14cddbbedbff5e49a0567f8f5bb3a024ecb9641a5c5c566427b5f9a", + "address": + "DdzFFzCqrht4HJuU2LBAFNyUzQydrYRJPgt7Hx5JqywdcsRZvakU4aDJtJVtU86m1dzTttmkkUF6YL1gQFipqZZP7sAXwEC8swnneiF6", + "decode": + "bb477d1253fa01b3b82d98c501ac0238eac2b9c040264b9fef941852bba394220d959f2d79ace248c55f7d45e354c914ebf14f6f2edabda9", + "params": { + "chain_code": + "660e501bfba8749e9e0dd0e45765ccc8d8bad1d0eb749669dfcdf7b77ca57740", + "hd_path": "m/0'/1'", + "hd_path_key": + "7c09517376d1c04c8b8f37c8643f38671212ed1c9e92622db719775f631c7ef0" + } + }, + { + "public": + "eb9298062649c87d3ce7593caa57fcf05d819c7583ce8daccea2ac5c071bbb3f", + "address": + "DdzFFzCqrhtBzkviHZ7v1Rs2XqnvAa75FeKct33mhhkS9tnGcDwDAXY7jtFT4JWz7ykvYh5k5GJB99ebjBjT22AdarYzResDevSEga4k", + "decode": + "f63f2d1e60baed2fb4982d702e5afb5813a069d9e99bd26c5d3470be20ff51845b091a36f40e250e993d08b27723a298980e4b637afe1cf8", + "params": { + "chain_code": + "6d94be740793d2c602e1338351b105201a84abb8c6a5604c40cc60d77ffafb55", + "hd_path": "m/0'/2'", + "hd_path_key": + "f6ddcd9f40ebff1ab1feb2652b2ab56f1b19ab67eb34b78c3c56d221828e8e8b" + } + }, + { + "public": + "3c87fb0fd1d3cb89012116500b20765a01d66f6b649e4253a8f08e4a3110c57c", + "address": + "DdzFFzCqrht5ReRKcXLqXsEYrNwrTztpnGEjNCR5Tvy3pm7XFJfHfzJEJpDT1gJs7poLD3mkQZYydPYFxogUWDxjSw6NJLhxf4BGaT5k", + "decode": + "c4057f9add47f707f8d410faefc4cdfcc81d353367705028949f72e1a6ef5bdec98e8dc009d5debacd95730f0e7f57fc412bfd257e9e6880", + "params": { + "chain_code": + "01b972d87722adf9ca36ac4a90fd671f030ca2ac5e486c979212c66f548f1ce3", + "hd_path": "m/2'/1'", + "hd_path_key": + "5b3bd35cd1e691affe5a286e561bf0a3f1d69b389074795c4fb9f7673a8ed80a" + } + }, + { + "public": + "40f4fa089112ea3b9bfe41bfcf4bf5ee163235b32296ce890ae06cb03dd6c27b", + "address": + "DdzFFzCqrhsfWgMPbxEKrAgPeXaUU3m5kbKZomJNJN15VwoYEGYuniFNGKnpskdfMbeBhNWVFxfhrobsaKZeitDCzVCGwMRLDWont471", + "decode": + "0d3d0dd4277d75cf4368dbce1cb527a02de696cc9689969bb6b59e6989c88f2cb93bdb26e5f206765fa629bb06e4fd3b57313ab85e5f4b7c", + "params": { + "chain_code": + "c91a7c7756e8040ad5ab38792ca74e6e324b2ba377638671d9d8103b6f61e02b", + "hd_path": "m/2'/1'", + "hd_path_key": + "0bb24a0d91f5ecd7d43dee3ece03457510c99159348c29bcb634388e3a664e3b" + } + }, + { + "public": + "c033cea1a425d746dc4968a95be9a1edffca0d25bd43daa705498de69341fbc0", + "address": + "DdzFFzCqrht5JUeqv1cTg2KCazJWZS9LLZktxmgV3aBcuh1jNHH8uedQzEh7MRYEdRe1n8dTgpjiWjVC7nqjFZuzgiRzdKVdiPTvVnvd", + "decode": + "c313a81318067bc69c1c3157f912b2bf9fc0b387ee242977095917c6bbcf014cae2ab37f01cc0f8bebfe4b7ee02c1899d0d0eb200b0b5e2e", + "params": { + "chain_code": + "d6462f5e3f0b0e544df3941a8cf6a003d9e3c4db6cb0b57b4b187fd2f477f414", + "hd_path": "m/1'/1'", + "hd_path_key": + "1f15f33d1cce9d09675d65ca7e9cd86730a345620b1c8df3d4cb2141ff853fa5" + } + }, + { + "public": + "58006f25f4d55958e90b6f596cf3a58db1a8491eccd805c2668947ead08afb24", + "address": + "DdzFFzCqrht9vUUAeQHciz9VhDh1TwqCiu2SFCnqj6JVZvv68r4TrRtXdT7ZULBME5f2gDxZnsyGodvjMjZmQiaGFJ7qL9JG3NQQnyQR", + "decode": + "e665220a2ad4c379ed1f5d19fd2dc7ef962e54050cf5003212f8ec8c2af9acbdba2afbd84cd34cccd2a7211735f96683cc995654f87bbdcc", + "params": { + "chain_code": + "e05145876af5252202950e50c3ff37fe87d0041d016ca8e26816c42a57772bd7", + "hd_path": "m/0'/0'", + "hd_path_key": + "87341ca500e8600bf13973e3275a370eb946584569f7f837943b543d0ce6b728" + } + }, + { + "public": + "70ef1ae48bb0a16624da9677ed2907912d253aa0341e6547a38cca622a8ad615", + "address": + "DdzFFzCqrht75wEKUbkkw57yVosL2zx3mN7YZntgLXNQC6Cu1hhng6mjAdAamp5HE33e6H5Gu2iZFNXPazNuwFWcjVjQDx5ZQLQnkzxB", + "decode": + "d0b60d845f7d3253204ab6b07e899b4900662c58b120310692688bdd2b2357aee4d4f7d7ea23bf1dadc15810f2ac5657b39255fce78171d1", + "params": { + "chain_code": + "6cfcb154da2766155b5c2c1b0c729ea58b8492b4d8adfcb59d144d61f3a2fb81", + "hd_path": "m/1'/1'", + "hd_path_key": + "020e957ad0c105f15796052a0c0ef098845a66d8fd2f26541993614cd62ad6d0" + } + }, + { + "public": + "4155584b0d3a9fcd40c0a7e828a448c735e43dce718c62611a65bf299fe9e3ec", + "address": + "DdzFFzCqrhszKbAzfr4qUjqmWTH7HZe2KLmA2XPbwwGUWJeddLmaSap8zNZntT3raW38CmZAUACWrcfeqxKRYeMqdVLeQBBsPyeaNGYg", + "decode": + "9d0162189cad20acbc01a4dba5915d7a9a70e8256fa294da83b7765a8745ef7ead252100b52bd0527905868960098a153a1bc14901679fc0", + "params": { + "chain_code": + "ce74178ce4ea6f4732f27c6f6cfe4d44be7302a7d89baf4545e58d396a2c97de", + "hd_path": "m/2'/1'", + "hd_path_key": + "e5ad6e06ba6518a0a4f72a16296bb029fd798595a23dd25a3852f9bc6a2101f3" + } + }, + { + "public": + "f4287790abc78c303668ae3324b05dd3d559861fd8c7d09d700140fee81df16b", + "address": + "DdzFFzCqrhsofPoukNkX8BGB9LYSTkrPc7VySyc12dbzTtatkYuPzPYqh5RVLGVC1JmwcceHC5Kai57gSL47jcTnJWMsMuCEkVyRgWuV", + "decode": + "4b8926d08fcd55c37ae35c52e5b02be53ab848ab2625e42a0e3f321cd918790c61558307d845d978193fe47f0ee164ef0275038f25266135", + "params": { + "chain_code": + "d35fa122057869ed6ba208e2136b23ea6a31ed8d59d9ddb84f43d3799865d9e7", + "hd_path": "m/1'/1'", + "hd_path_key": + "e4f32cdde26bff830942e7b55cd86f8c722ec5c0af43f3bb5d5f8977b3fd3b6b" + } + } +]; diff --git a/example/lib/test/address/ada_shelly/ada_shelly_test.dart b/example/lib/test/address/ada_shelly/ada_shelly_test.dart new file mode 100644 index 0000000..1a62bfb --- /dev/null +++ b/example/lib/test/address/ada_shelly/ada_shelly_test.dart @@ -0,0 +1,30 @@ +import 'package:blockchain_utils/bip/address/ada_shelley_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'test_vector.dart'; +import 'stacking_test_vector.dart' as t; + +void adaShellyAddrTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + params["pub_skey"] = BytesUtils.fromHexString(params["pub_skey"]); + final z = AdaShelleyAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = AdaShelleyAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } + for (final i in t.testVector) { + final params = Map.from(i["params"]); + final netTag = AdaShelleyAddrNetworkTags.values.firstWhere((element) => + element.name.toLowerCase() == + (params["net_tag"] as String).toLowerCase()); + + params["net_tag"] = netTag; + final z = AdaShelleyStakingAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = AdaShelleyStakingAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/ada_shelly/stacking_test_vector.dart b/example/lib/test/address/ada_shelly/stacking_test_vector.dart new file mode 100644 index 0000000..54013b1 --- /dev/null +++ b/example/lib/test/address/ada_shelly/stacking_test_vector.dart @@ -0,0 +1,376 @@ +final List> testVector = [ + { + "public": + "18f2282a3ab33651115651ae2bc3ce5d48bb9eebe2c49938451dd3309e6b580c", + "address": + "stake_test1uqdtnhxhkxhchyhvx2zn5v0dep3fwwejmuz78j92zn926aqyacsm3", + "decode": "1ab9dcd7b1af8b92ec32853a31edc862973b32df05e3c8aa14caad74", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "1ee801e7654c577641d53de7e6207cc4347101cd7c7dd8ee7812f1394fcf7cf7", + "address": "stake1u8gewvp4tf0jzte2dy2sm8r4u65vrm0queuk60mtqs055wgwv96gu", + "decode": "d19730355a5f212f2a69150d9c75e6a8c1ede0e6796d3f6b041f4a39", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "1a7d81414598f99fb5204f21c13ee88decf0fcec035f4ea805de8a84bebadcb5", + "address": + "stake_test1upzq76wys42z5r566lg85vquslcm9q35j7u2nprqpcj33ys82wdza", + "decode": "440f69c485542a0e9ad7d07a301c87f1b2823497b8a984600e251892", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "e9635d28823f9b6719df5c6e8d7db0a5242af0319dcfceb3d0992d378119bab8", + "address": "stake1ux7dz3vl6fzs77ldgscwjhrztp3naqcv482lsprctu9665gq5xqzy", + "decode": "bcd1459fd2450f7bed4430e95c6258633e830ca9d5f804785f0bad51", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "87e9c2d1d3c26a0f065b3ea5ae879781c4ebb0e678f8017c575ef349acae95a8", + "address": "stake1u8j7kevyq85nuvwsmujzt7e0pjwawmnn2kek0ldypwx2pdq4x7qmw", + "decode": "e5eb658401e93e31d0df2425fb2f0c9dd76e7355b367fda40b8ca0b4", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "a2a168527a083a19f60d73afb1af340ae4dfe5efc6d108286db9b0c40e1c0cc2", + "address": + "stake_test1urhqj6v0u59at0wknm38jqqpwqt57h4v26cwhdnw9mkrlpggpregu", + "decode": "ee09698fe50bd5bdd69ee279000170174f5eac56b0ebb66e2eec3f85", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "a86787aa7f3606d9b361b2017739455eafd3e3d0cbfe6675a25ceddd952bedcd", + "address": + "stake_test1upv65gezp52lc7pvg92yjqmj8lsfmh0qru8fagtpu4076wq7rhcea", + "decode": "59aa23220d15fc782c41544903723fe09ddde01f0e9ea161e55fed38", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "ed8b3483d404ace4f819d2d196036f2ca3dd1be93f3ef14ff6c3c12fa629006b", + "address": + "stake_test1upz68679g473ey9r3xfuyad7sr4vrygs5l7vgdhclrrezqq6zfld9", + "decode": "45a3ebc5457d1c90a38993c275be80eac19110a7fcc436f8f8c79100", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "c0e60d4a4656fb61388889f71c683b60e69dddc6f83cb5c878543f57f7a79891", + "address": "stake1ux0pndrng94tny44nk6t4pcu2wnnxw52ch0xtjs2fac4k6q86dw4j", + "decode": "9e19b473416ab992b59db4ba871c53a7333a8ac5de65ca0a4f715b68", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "231231c1dfb0c5bc9086009944c4e434789f197c8f944d4a2c39c8ff89cf1169", + "address": + "stake_test1ur7a6p59zdp03999cxwp4e7nm42aucf5kchh8nfwsg4zvccx379xa", + "decode": "fddd06851342f894a5c19c1ae7d3dd55de6134b62f73cd2e822a2663", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "c0df57e0c18d73dc7122d225bd6eedde251b9ef6ed67ac7d0ad790b57eab77e1", + "address": "stake1ux587g57dv8js3h6wsque4zvd3glz52t6n5zvkw4pkc97lqw4nga3", + "decode": "a87f229e6b0f2846fa7401ccd44c6c51f1514bd4e82659d50db05f7c", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "6708a851209064febfd47c9e9f7849f1574f70531f05f7c84fb0ace6290e635b", + "address": "stake1u8uy93p7cvmcjqew864z54jgjvsqv9ugn67lxuathxjudgg0ttazt", + "decode": "f842c43ec33789032e3eaa2a564893200617889ebdf373abb9a5c6a1", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "24213dc3f9ea12ce9b468be059cd3a5ff01dc95cf92073e1cfecde47c67905a4", + "address": + "stake_test1up3qu8tv46l4sck7wds8a5vxf6tnh7eaj2ggsje4uqldrageyzu7p", + "decode": "620e1d6caebf5862de73607ed1864e973bfb3d9290884b35e03ed1f5", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "6af7d3459a5a13340f095f28cf4beeb6c0393d4991e1541148b082b26e5da800", + "address": + "stake_test1uru0z2k47fxauhmg9t89gk9hp6j5ap329tshgzfe44ukvmsypq0cv", + "decode": "f8f12ad5f24dde5f682ace5458b70ea54e862a2ae1740939ad79666e", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "557ac71b0820beabf5be7be17ebeb7069c56d0df956a8f916cf7228fa2263a69", + "address": "stake1uxrseh4wup5zezdrhd93x0sncqvltyn8r5xrqw5kd8vg85cpuj4ry", + "decode": "870cdeaee0682c89a3bb4b133e13c019f592671d0c303a9669d883d3", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "6cf3a1fd0c019bda49488edebcb80e9bbf9b0bab34588a3edf6c7270777245c8", + "address": + "stake_test1uq7wfweajh2nck9r4eagcgu2c46uftl3zj7kvd6jpzqvlzqmr84at", + "decode": "3ce4bb3d95d53c58a3ae7a8c238ac575c4aff114bd6637520880cf88", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "cd53c88f6a640ce25be09845adcf648edc6033a0f2beba4ac1d4814abe2789f3", + "address": "stake1uyw8hkecc76an9gny38gdfsr723p9pr2tvh5zv50py4nrsgquc0t2", + "decode": "1c7bdb38c7b5d99513244e86a603f2a212846a5b2f41328f092b31c1", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "b7c6a51a616df6d1e0bbad73a5d74798ccd9c9d8221d864870a64fae186bc756", + "address": "stake1ux5d5telcr7s8trde5rw64zcl2l6ntee973acp8sn5qhvpcexrxhr", + "decode": "a8da2f3fc0fd03ac6dcd06ed5458fabfa9af392fa3dc04f09d017607", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "921207fd93c5f8a86c4c176ef03e0b201b11cd4f774a9021e4a13e4aebbb83b8", + "address": "stake1uyue5h9lc4u26jznq7p6geqvxdsftsj2w4zecvzp8x55phqqarrmq", + "decode": "399a5cbfc578ad48530783a4640c336095c24a75459c304139a940dc", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "feee9e6c4f26a98a779d0519acc71bd4e955d1c8008c94a621456f76fd32f211", + "address": "stake1ux65tfjgzpsarl5sf36n6x7lp945h6ghlpmqdrnssrzwgkqxjxuj3", + "decode": "b545a6481061d1fe904c753d1bdf096b4be917f876068e7080c4e458", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "8780b8d9a34e8c511525fde22440fdc13f411c670d7509361762f6a413790331", + "address": + "stake_test1ur23qmnj9394qtyyeawsmup4efweehukpnyn3gcsfdan7zgdsr52e", + "decode": "d5106e722c4b502c84cf5d0df035ca5d9cdf960cc938a3104b7b3f09", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "102cea59a163b2942ab176ad1b8be2ed5772becb4d608c276ec909927b5b8d79", + "address": + "stake_test1updc29ypk5wt56rf47yulnhafkv9jqt2wwrg63f6rce6m3g3geeyc", + "decode": "5b851481b51cba6869af89cfcefd4d9859016a73868d453a1e33adc5", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "e96b9f26c383fdc9b462c2f3fe0525291a0338ebfddfe4236cbd787ac8fdefcf", + "address": "stake1u86tad0407777ju8m8h6vx2wxrrt8k8jgned386pkfjtxycgqud6c", + "decode": "f4beb5f57fbdef4b87d9efa6194e30c6b3d8f244f2d89f41b264b313", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "cb27ad39a189d1df909995eda407433de5a956a3bc8e4c7b17451cbdd99bdbb7", + "address": "stake1uxlnj7j4yce4w6pf05ys78ra80a7yr77t35mpr9zq4l6qtqljkuf4", + "decode": "bf397a5526335768297d090f1c7d3bfbe20fde5c69b08ca2057fa02c", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "eed8ed4b51500dc200a163ffe0d7c8f19ce5e95f9a35045ddfdc97c2bfe9e1bb", + "address": + "stake_test1urrjdm7nv885l4avj9weegzsahv084cw28cknu5jnzvgggcf6dqag", + "decode": "c726efd361cf4fd7ac915d9ca050edd8f3d70e51f169f29298988423", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "ae27d2d0ce06e48c481a9d3f0a642036d4e772c487dd7d7530d60bb08d8ab5c6", + "address": + "stake_test1ure4u4syru2nah64fh5law52d6jh9zsd8l3weq9x96ppfac84srgn", + "decode": "f35e56041f153edf554de9feba8a6ea5728a0d3fe2ec80a62e8214f7", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "2e75ac99a2ba7de0bc2c4da337832186c4be2d6f519385180a2ac66be6eca315", + "address": + "stake_test1uzcwk63338yzyz965fpqh2zftqjnae4v3nha5wteychpz5sjvyn6c", + "decode": "b0eb6a3189c82208baa2420ba84958253ee6ac8cefda3979262e1152", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "318c616137d3ca26b7fa88072a1c50c47d6adcb82cd060826932d84495a9fc3d", + "address": "stake1uxz42sc0cr0hef2y2qjpj5cwj0mesvu4w5tj3ll77cx64dq5dl3yg", + "decode": "8555430fc0df7ca544502419530e93f7983395751728fffef60daab4", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "29e46ff03a1927b68f8b27ab5facfb6f853966cb232962037db906e696de109a", + "address": + "stake_test1uqxk6yhv8awk00z4kvusf0ay7ufj0g7eal07xmyczlve3rchpx6u3", + "decode": "0d6d12ec3f5d67bc55b33904bfa4f71327a3d9efdfe36c9817d9988f", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "b28f8bc68a02dc6c10b69d5aa32435b00dad12c67b99d6e17150c5cc05e6aa4b", + "address": + "stake_test1up94aw0wmf666k02xcanjycac5weppppp3la3v0076hd4eqtka0ld", + "decode": "4b5eb9eeda75ad59ea363b39131dc51d9084210c7fd8b1eff6aedae4", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "be375c76cc16ee6b2033e9164c33cd54e8aca003c98a2da564ded671be6ef8c0", + "address": "stake1u9d68zfmkd58ngl3ned3u37twnjsal7eeutss8ypm87l4dgtkel3r", + "decode": "5ba3893bb36879a3f19e5b1e47cb74e50effd9cf17081c81d9fdfab5", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "3bf951d5eee2e8cff0ae4af6d4d67ac3b3e8854675478f67a855d9ced495151d", + "address": + "stake_test1uqkchzmarptc5whj29xd3vrpgae5xcchypw85ry6z7pv7gstju7rs", + "decode": "2d8b8b7d18578a3af2514cd8b0614773436317205c7a0c9a1782cf22", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "d2c8e57650d2c38fc47bfbb11dd6e88c68e8826cbaf42aa4b174a11cadb63421", + "address": + "stake_test1urgrca69wua9dptd3vd948k248xygcacywt080qha994dngrktrlt", + "decode": "d03c7745773a56856d8b1a5a9ecaa9cc4463b82396f3bc17e94b56cd", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "212c5a56f728993954e59bd3911c926c356315f78d91bc29fee5bb02f8518a62", + "address": "stake1u9kj3km8yzgn9zc589guyvlh8vxmdflxs8j23ewzsem0enc4pqq4x", + "decode": "6d28db672091328b143951c233f73b0db6a7e681e4a8e5c28676fccf", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "d1dce7e04569cebed0e5f7a98590726f53238e643f87f1ef47f84188fbb7f214", + "address": "stake1u83w5z8m0mcllp49hsh5s47cdug7wqal79yhj3ls4cflggcxzjd75", + "decode": "e2ea08fb7ef1ff86a5bc2f4857d86f11e703bff1497947f0ae13f423", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "f27c45cb67a1488e0cfaec6f3ba2da404d05ad18e4ed55e44a91b15947fef74a", + "address": "stake1u9ptu7pzzmk5se7nrtxka3a9480p4wks0zsx5grentlpq3sdmsj8q", + "decode": "42be782216ed4867d31acd6ec7a5a9de1abad078a06a20799afe1046", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "b4f5dce79a22f20adf025b80debc5b6a48fce01dcde3ec96b9adaf0caf6a296c", + "address": + "stake_test1up49gpj89k3mwjkzla972990qk8y48krv777paylggz84lc9acxq5", + "decode": "6a5406472da3b74ac2ff4be514af058e4a9ec367bde0f49f42047aff", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "bec1b55a0d6910fc96be6e9a036c7de194a6e26e8773be19330ace4bc5671020", + "address": "stake1uxr8qajkqklypgrj5msxjy4xyg7tvg9r0uaamly4nwrmp3geh56rh", + "decode": "8670765605be40a072a6e06912a6223cb620a37f3bddfc959b87b0c5", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "166c071261833209403325aeb321a5e43bee9b333c7c9a89d32eab24c4075fb6", + "address": "stake1ux5edj5vaxqchw7fcgcnu4fkpmksgs5l6z69qa3n8f8u6zqtyu557", + "decode": "a996ca8ce9818bbbc9c2313e55360eed04429fd0b45076333a4fcd08", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "c22e1d61b2bb0d9327e1b38dd78e5fa681b32a6200860a1cac15a9a50e6cd1e2", + "address": "stake1ux4x5mvu2dt20yez0wr9jeuqzemlasndn2gtstjqu3v30pqk8z5vl", + "decode": "aa6a6d9c5356a793227b865967801677fec26d9a90b82e40e4591784", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "2a8c8aa4804fb8a85c82fe1914c167c25b6351ac55621fe774907f3a857a775e", + "address": "stake1uxxt464getljjsw8t8a8kk5exkqhy9dadte7dgpm4zy2tlcxehcaa", + "decode": "8cbaeaa8caff2941c759fa7b5a9935817215bd6af3e6a03ba888a5ff", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "897b35ff0e818dee6b9b502f18a6065494f061c0ffefe02f8b77a0280a34fc85", + "address": + "stake_test1urf40da0kvmjv0jasa730neru6pdvqpltkycpecrrv4m0qc86vw0y", + "decode": "d357b7afb337263e5d877d17cf23e682d6003f5d8980e7031b2bb783", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "8e5d3a50ed51658851041be9fefc98147919f3707f6b28ecc6d98a693d09f754", + "address": + "stake_test1urf6thhznzny2wytmp9w5fgf7xk9sx44yyvhxhrwcapyzmgypn4zx", + "decode": "d3a5dee298a645388bd84aea2509f1ac581ab52119735c6ec742416d", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "f091351691f0b685fba000c0ad08978194a990761190c7bebd7b145605041693", + "address": "stake1uynq2j4a0naweztw3j3rphmkgk0yjd8z4jfn4ek3ga3hjkq8hs4cr", + "decode": "26054abd7cfaec896e8ca230df76459e4934e2ac933ae6d147637958", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "7d31b12963a86b2c9d8c814fed4f87cc33e44612eacca606f019199a01bc69e2", + "address": + "stake_test1uz6ujcj9ma2xytgcuc8wlpcvchnalt3fs6aemf2tumpaezcqfauj9", + "decode": "b5c96245df54622d18e60eef870cc5e7dfae2986bb9da54be6c3dc8b", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "9e351fcdcf91e8229c1a6603d97e7774ee639f65e6f72b57855dec903f4f5d80", + "address": + "stake_test1urqpq93853er7s48zd4qcn3zvy4zk2x56su4z4zwsgz6k7qll8y8m", + "decode": "c0101627a4723f42a7136a0c4e22612a2b28d4d43951544e8205ab78", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "3fb8d107482a3773ca4f9f3ca43c770485c3cf276a08f03a11185a9a595959b0", + "address": "stake1uxdr38q9ct8u5rn58vkkzp496ey7cjuzff2l397k9utuewgfp0rcr", + "decode": "9a389c05c2cfca0e743b2d6106a5d649ec4b824a55f897d62f17ccb9", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "4c312ab998f4f0b17470eb4fa6a1076d6f2e7fddcf664da6e44bc6688c21465e", + "address": "stake1uy6auhr037cgaejlhs0a9qfx4ef50d582wg3ac0nvvxc6vg93ultl", + "decode": "35de5c6f8fb08ee65fbc1fd28126ae5347b68753911ee1f3630d8d31", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "87ebf0ad140e39ee74002d273c1dc01922f10efd52327a9f154f7f7f351877a1", + "address": "stake1uy5ga2ua09uwggnjdrqscsjzehyfxg3zdsmrksd9hcfsu0sqjcqcy", + "decode": "288eab9d7978e4227268c10c4242cdc89322226c363b41a5be130e3e", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "3def8c8fc18ed55af54337b50acddeef3de5299a17fd22b753f0d4b10935c913", + "address": + "stake_test1uzkcudtzms2fnx5fwdejy7jd63y2k6c7pat6xhhmnzwchaqhz699s", + "decode": "ad8e3562dc14999a897373227a4dd448ab6b1e0f57a35efb989d8bf4", + "params": {"net_tag": "TESTNET"} + } +]; diff --git a/example/lib/test/address/ada_shelly/test_vector.dart b/example/lib/test/address/ada_shelly/test_vector.dart new file mode 100644 index 0000000..3020aa1 --- /dev/null +++ b/example/lib/test/address/ada_shelly/test_vector.dart @@ -0,0 +1,602 @@ +final List> testVector = [ + { + "public": + "f7469f7093f4f905c350ab69b8c3bd6a6b213fd985476027b699e8c060fa81c2", + "address": + "addr1qyde5c27cv89usps9npzf2yd73gy4ygzfqasjd7ptry7rmc9rx7lxa5azuahsxtcuq99f69rg5t2z7fajv5zkeufp08qpmlakv", + "decode": + "1b9a615ec30e5e40302cc224a88df4504a9102483b0937c158c9e1ef0519bdf3769d173b781978e00a54e8a34516a1793d93282b67890bce", + "params": { + "pub_skey": + "dcd7603a96eed0d3a030fed42246081f1aae27a3d678aae492935060467601ab" + } + }, + { + "public": + "7a165ae05b9cb31cc14cc243e7bbf4d24b1b51c99d2eea3062abfc2dd669ccc3", + "address": + "addr1qxqy3628gfqsma9znxqpnc97fshxd7te9c8rjkqq2naddsnnqnw2gqe4qn7xh7uwskvdgh44mj6eykdvukh658v8s8wq28vntg", + "decode": + "8048e94742410df4a2998019e0be4c2e66f9792e0e39580054fad6c27304dca4033504fc6bfb8e8598d45eb5dcb59259ace5afaa1d8781dc", + "params": { + "pub_skey": + "7fab18bd346af316d3dbd2e32389f51b01468d93f2635d0d1685769b074dda2d" + } + }, + { + "public": + "f1721ff5d9a5f4d6e254aae86531b4243c65c848a42f53784a5d029b2db80511", + "address": + "addr1q8zygp3mvludzzw2vac4q7329qz4f840d7z7tlve296x895syss2kdnn7dlqakdt63aqjssvdqeyu6scsqnnawyd630qvuevlw", + "decode": + "c444063b67f8d109ca6771507a2a2805549eaf6f85e5fd9951746396902420ab3673f37e0ed9abd47a09420c68324e6a1880273eb88dd45e", + "params": { + "pub_skey": + "f2c69474f8b082500b87e85903cab66d64f4d1dd42bf620a2bf02b180b26dbbb" + } + }, + { + "public": + "d497f6c43601ab54b3145cf46e352695bb8bca5efa81e324be85838d3e386b06", + "address": + "addr1qxs5wmv6swsk50n3rj4fwat6jypr4v65n2z3clgffxcunhfmn7743krl8rma2ddx56hvt3kxuwdta5xvkeksgmjfledqlyd94a", + "decode": + "a1476d9a83a16a3e711caa97757a91023ab3549a851c7d0949b1c9dd3b9fbd58d87f38f7d535a6a6aec5c6c6e39abed0ccb66d046e49fe5a", + "params": { + "pub_skey": + "e1723141fabd0a4c0583dfa8aa9b5cb6bb194777ad0b2e4b8219af328fe47e12" + } + }, + { + "public": + "3bc03a4b72eab18ff34c0d2117759247917473ef429aeb038bc625b727d6fe5e", + "address": + "addr1qytpar57ser7j2wpwfzmqn0xkanzv4u3s5padvj7seyhvm5m3s6nsu8vmwdfdyxtq83h70xypxkfx229rx8xtgm6xhcs3984jy", + "decode": + "161e8e9e8647e929c17245b04de6b7662657918503d6b25e8649766e9b8c353870ecdb9a9690cb01e37f3cc409ac932945198e65a37a35f1", + "params": { + "pub_skey": + "e120e84a019844cec58f39ce31bbc1b03a3a4edcd38cf6a9e4122bfbb7badbb9" + } + }, + { + "public": + "1e1d97fe7ae52e16dea75b1d75a3901c3ca21e9f2509c686d906a9534dd35146", + "address": + "addr1qxsdwkex8w8ujjprff6mn6pzhxyhc50ga780cyatf9hgrymylhm4q3le38qw3w29ecl9c40nwwlf06ruvhpfhdc8mqdqm4804d", + "decode": + "a0d75b263b8fc948234a75b9e822b9897c51e8ef8efc13ab496e819364fdf75047f989c0e8b945ce3e5c55f373be97e87c65c29bb707d81a", + "params": { + "pub_skey": + "ccb27fe0dcccf7734d539c882c55a36bd0d8de579a267121f46abf4a627053a6" + } + }, + { + "public": + "d2ad13f847200d8dce24447ca4ae06727f4d56ef95654481bfbf9e07d4f45a2a", + "address": + "addr1q93q9kstth3l4nvtymgghspt27xc8yaneu7v7nvynxua99nrapveqqwhrlussvce5nc65s9psaxxj8zjj9xsvudgvkps5fu97m", + "decode": + "6202da0b5de3facd8b26d08bc02b578d8393b3cf3ccf4d8499b9d29663e8599001d71ff9083319a4f1aa40a1874c691c52914d0671a86583", + "params": { + "pub_skey": + "50b5a299632a078b3e3347da7c6b0059554301534fee18cbc41862b7da787023" + } + }, + { + "public": + "02b05d9719ed11a3663b51be7e54ad5292e7c3fe82daba0bc6eaf0acebc5940a", + "address": + "addr1qyx0f05fzx8z0vsz3wysgv7npnxshjegauw9z0j73sp0nrr9v4hgr32sxs3y0lcjqap032g6f4qp757xqnc3cauw6y9smh86qa", + "decode": + "0cf4be89118e27b2028b890433d30ccd0bcb28ef1c513e5e8c02f98c65656e81c550342247ff120742f8a91a4d401f53c604f11c778ed10b", + "params": { + "pub_skey": + "2c122b1866d449817daf0f9e441e94dfa41e17f822449f3884a926c9b61926e2" + } + }, + { + "public": + "652d746f6db536942b6712cdc131b17d9bd47916dc9ff1be01fe629964795391", + "address": + "addr1qxe9yx9qmuup7p3wkn647pa389wunl4mc034q6h3hyce8fj6pq76fw7ljlmpfkkgj3zsl7xtqus8mcy9n22p3v0exx6sz0pd24", + "decode": + "b25218a0df381f062eb4f55f07b1395dc9febbc3e3506af1b93193a65a083da4bbdf97f614dac894450ff8cb07207de0859a9418b1f931b5", + "params": { + "pub_skey": + "6ee64587aa384231f2c160cd7171ce0292b24347d20aeb0013c3bdfcb64218c5" + } + }, + { + "public": + "42dc390b01ffa81dc618f39c997b0d8569ced191877206eabf1733c79878ecb7", + "address": + "addr1q8zh5e9mhu6sw6ffc9eh48skwr68msgpfvzyk6gzr75wcua4wavvxjxxwmngje0vl2r266mx3c9mw3t5s796pmxzy8xqa0jlmn", + "decode": + "c57a64bbbf35076929c1737a9e1670f47dc1014b044b69021fa8ec73b57758c348c676e68965ecfa86ad6b668e0bb74574878ba0ecc221cc", + "params": { + "pub_skey": + "7ca58ecc4e71640ee7b0359b59f61261cd1baaa3be424f4f5d5e49404b45e341" + } + }, + { + "public": + "903bf7d876db2f8aa39fe5ac3fa1c3b98b4af132a6ca2787fb0472cf562f1388", + "address": + "addr1qxvzwv2n3s7jhvkwdrvmm9ngyazvk08z35700hnhje34gwkenjeg99r2hkqlpcfgxvxy2aaq2xx3frn3dyx3w7q5c2hslqmy06", + "decode": + "982731538c3d2bb2ce68d9bd96682744cb3ce28d3cf7de779663543ad99cb282946abd81f0e128330c4577a0518d148e71690d177814c2af", + "params": { + "pub_skey": + "85c67a13e9ce021408ca491b4d60e332f3c65b92f74263573e3bd0a9be6cff6c" + } + }, + { + "public": + "aef4faf884ff4a117555d9577dc3acc5356d565cd7aef26c516a1e970c4ea4e2", + "address": + "addr1qx76t2xcq7mz8ge0zxqdfkllkazsv3d46z6gcqrmuxcmhugvj7h3mecntaaxg788dkc97dama74uks4y53hz457zewrszy95vm", + "decode": + "bda5a8d807b623a32f1180d4dbffb7450645b5d0b48c007be1b1bbf10c97af1de7135f7a6478e76db05f37bbefabcb42a4a46e2ad3c2cb87", + "params": { + "pub_skey": + "1c9fd5270c201798d855a7448705eb72da7b8b125b04a48c51eff2670de215cd" + } + }, + { + "public": + "1a88e001f5a36afeac3d4b15239bfc0a6d4182a2ba87d040930c69d76e7b2deb", + "address": + "addr1qyfs4jpzjhn3euqzmwdcmfjsl0la0drv0z4vx5sm8lrha6mrru4s6yq9p5uvshujudjdlc82c9s0tp6djgkts0dx9scqvctjms", + "decode": + "130ac82295e71cf002db9b8da650fbffd7b46c78aac3521b3fc77eeb631f2b0d10050d38c85f92e364dfe0eac160f5874d922cb83da62c30", + "params": { + "pub_skey": + "c78446007e76048e2b7aaea77884cfcf8378dcc0b9615dd9470bbdf0a0e26c61" + } + }, + { + "public": + "35ab4de9ad8cdc31670bba6e3098b090b9edea3f5b27079d1e5390dd04545eec", + "address": + "addr1q94yg4a7tru80d37uz9y584d3ncwfdmgz330lw7ejmsuf3v0wzvuze2wjahl2wqn0vk898hsk6fcsv7acgnad93uzktsw27jz5", + "decode": + "6a4457be58f877b63ee08a4a1ead8cf0e4b7681462ffbbd996e1c4c58f7099c1654e976ff538137b2c729ef0b6938833ddc227d6963c1597", + "params": { + "pub_skey": + "f3be073481b6857f5cffa83fddf5c178266898b44449c2f26af764d6260190fa" + } + }, + { + "public": + "dfe8407920e70af6dba8f50f51ad87df820e0d66e92cd33d529b321a2aba71f6", + "address": + "addr1qxtfnk9mhrhc04d3t05k653d2ll5ryxgxez9pprzfsmldtpanrnmhnt6c7y48lq2acq6hvf63k3jsklvzf0smn025syqmrfuup", + "decode": + "9699d8bbb8ef87d5b15be96d522d57ff4190c836445084624c37f6ac3d98e7bbcd7ac78953fc0aee01abb13a8da3285bec125f0dcdeaa408", + "params": { + "pub_skey": + "a5b14e8dc6362679c989f89a12bd9c022ab5590e59269445333b759755af8b73" + } + }, + { + "public": + "054d5fe658d5e27852b65a920c1f425c9e46676fec5d868a70b5f2d4964afe08", + "address": + "addr1qy4du08tjwnt28zs9xh5tnt93jzffmyvjnygynzkw239vyfn4jm0ju5vcgpt4xtt3msrcmlqadcpvxjc0snaj8yvd8wsrms6al", + "decode": + "2ade3ceb93a6b51c5029af45cd658c8494ec8c94c8824c5672a2561133acb6f9728cc202ba996b8ee03c6fe0eb70161a587c27d91c8c69dd", + "params": { + "pub_skey": + "3dfc0ae1cc7c3e146698d1aba163d9383ab6a570b1237ca4302b744f4efb2da1" + } + }, + { + "public": + "8240599af8f08644282bae9162cc8819a79fd1576ff81948c70293f87285c859", + "address": + "addr1q9kayuywjwzqcvgsaexhxxq2z3c7u6nvsp2k74dtskdsk3dr5dfpr2ttd46wutzvxpvamjjcqvcfaf0x3pamsfye253s37n35p", + "decode": + "6dd2708e93840c3110ee4d73180a1471ee6a6c80556f55ab859b0b45a3a35211a96b6d74ee2c4c3059ddca5803309ea5e6887bb824995523", + "params": { + "pub_skey": + "399e6fad68977617943801a812f36ae8e4814e206eb91c781f85a58f61ade913" + } + }, + { + "public": + "2cb004542f805bf50d8e7c298baec8e393515ff54557e9fdb01633b8e2d31e5d", + "address": + "addr1q96r7wjk97gz4005s47pvvl0zk820rh2ah3ppl8gpkwsjuvkrm2zvvejz6vfdfkt04khfmv2qx8ydytkc30n4xjl86gs8uc68d", + "decode": + "743f3a562f902abdf4857c1633ef158ea78eeaede210fce80d9d0971961ed4263332169896a6cb7d6d74ed8a018e469176c45f3a9a5f3e91", + "params": { + "pub_skey": + "656a260aa99f4b8e42e34b16c7c5ee01ea4cf808bd637cd8841e437d1f40a2d0" + } + }, + { + "public": + "acd71bc172133fc22f0374ad8879b640ce48736838c31179f4ad8cfb9dfb45d7", + "address": + "addr1qy30vchtvh58azfn2t6md66m7fkyjkjm4n2audx8ug4fp6lucmpgktgvyqt08kx80tyqs7m9nkjhy0p2y088axnt2mysjdu4yc", + "decode": + "22f662eb65e87e893352f5b6eb5bf26c495a5bacd5de34c7e22a90ebfcc6c28b2d0c2016f3d8c77ac8087b659da5723c2a23ce7e9a6b56c9", + "params": { + "pub_skey": + "f4a624462c99a23e645f13a0296db7403f6314f759e895c83cb5dabb01eab47b" + } + }, + { + "public": + "6d614253c8f163ef96780f53ed0a83825dba6eae59d596f72bdab3e800aa15a6", + "address": + "addr1qytrv2n7xm9cx5xf3cty9anzfr0ehsfy4g7502dzch3z7slf040eqjflmgf3vxpavkha0lx4tn9y8yphglyk46njke7s8lmm36", + "decode": + "16362a7e36cb8350c98e1642f66248df9bc124aa3d47a9a2c5e22f43e97d5f90493fda1316183d65afd7fcd55cca43903747c96aea72b67d", + "params": { + "pub_skey": + "87f46a45e5ca99f40f15a76b00951c7b795e2531725e1072f936a7ab5cb5558c" + } + }, + { + "public": + "1e39b327c32ba1b42f3db72f141151704b5d57be775d0d0712df42584ec491c0", + "address": + "addr1q87q3sqa4h3hpym0sywe0xk7ery4zmg30pzcmg0uqdaw740zxq4dve6e2akm40x4ad85y958ma2u803vs5huqh30w04se5a9c3", + "decode": + "fc08c01dade370936f811d979adec8c9516d1178458da1fc037aef55e2302ad66759576dbabcd5eb4f421687df55c3be2c852fc05e2f73eb", + "params": { + "pub_skey": + "0f52e1e12c4681eef4486044f06d4d1dd6660059e6dfc9f8a73e7c97bee398c8" + } + }, + { + "public": + "e3d14ff3ef62a3ca2a8f3714803fc4cf5692164f166b195cdc395ce6b6ed620d", + "address": + "addr1q9eexdwdlhv9kalhfw0365n0v3x5n6kghqu8e332m7whxg2600l9cayd0cmz0xauje55aqmjjdffl9njzqahn8prt5kqq3k4tn", + "decode": + "739335cdfdd85b77f74b9f1d526f644d49eac8b8387cc62adf9d73215a7bfe5c748d7e36279bbc96694e837293529f9672103b799c235d2c", + "params": { + "pub_skey": + "5fba78323d1986fc1bc4d44b699de4853b85d24d0aad50679a23c6274f378aa2" + } + }, + { + "public": + "b09ef913894f2e69f4af35e333291265d4a86a709bcd2f31a03b2d8113ca3502", + "address": + "addr1q9mqjt2zfefa0ks7n6zkyr33tzdc0z3p247hl00fqntlpgn94yes0hhtylfte8aahehrr3jrqcdqjjwv8u8jplllg2lqu39tlm", + "decode": + "76092d424e53d7da1e9e85620e31589b878a21557d7fbde904d7f0a265a93307deeb27d2bc9fbdbe6e31c643061a0949cc3f0f20ffff42be", + "params": { + "pub_skey": + "2eceecdf062e8c139951aacf58c15866a794480bee007e5c7789e5d136f01f0c" + } + }, + { + "public": + "13363bb747aeb58c86577fcffcd8fc0fb05c7b257b4edaafb8b4d4c90f90d152", + "address": + "addr1qym3h6gn2efnx8zrddpyl6973fmu8el7f2k9mfc6r9sucp4kn5xkp5wtjjk8ghj0ltr0q7asx4pg4x252h97e59hlwxss0ghg8", + "decode": + "371be9135653331c436b424fe8be8a77c3e7fe4aac5da71a1961cc06b69d0d60d1cb94ac745e4ffac6f07bb035428a995455cbecd0b7fb8d", + "params": { + "pub_skey": + "9e2c3a39f5afa67fecc822068674cf3cbe871580c69ce52402182bec5e47fd4d" + } + }, + { + "public": + "0f68ac5064b3184f9cd753918a73d4b6d5f04808369f85f7c3eb6a222d7ba007", + "address": + "addr1q8a9tgfcvj2ekr7djydl6g4fnjcm4msy0akqt0s3mr9a0u4qrw3j3v4nhxa3rkdhnn20gys2vu98v97fsqzt9nuvegkqtl09s9", + "decode": + "fa55a13864959b0fcd911bfd22a99cb1baee047f6c05be11d8cbd7f2a01ba328b2b3b9bb11d9b79cd4f4120a670a7617c98004b2cf8cca2c", + "params": { + "pub_skey": + "a2452b1d5ce858c35258bf2564cadae8a8c57ffccfe5469e0ef32a816669ac7a" + } + }, + { + "public": + "cdec90c01f6be766505ee6cb91c1aa621cd3af8c4eb5136256f2ddebf4f05ee2", + "address": + "addr1q9d897cuaewy4dswjzphprgd648gu69a3j5guzur3ng7vdsk9rtn285ggk684adm0ymf80sxj6vtmqeqjh5fpzhd8zlstj6myh", + "decode": + "5a72fb1cee5c4ab60e9083708d0dd54e8e68bd8ca88e0b838cd1e6361628d7351e8845b47af5bb793693be069698bd832095e8908aed38bf", + "params": { + "pub_skey": + "eee4cad30465a764b7de4206edda9fadeb6383e8003c73e657465a1a3eb0db25" + } + }, + { + "public": + "115542b2c7e81d465366cb0844ad5a20bfc1e2ccf2435c2fb6e10e0b27a33fd2", + "address": + "addr1qypkpcsggv02zh3cnugk8l89hkpe4ladeakresmtyznedvcl3jarh8jk4yfy0u944ma2kxk4kgew8v3j6xkn54emhjcqkdpqdh", + "decode": + "0360e208431ea15e389f1163fce5bd839affadcf6c3cc36b20a796b31f8cba3b9e56a91247f0b5aefaab1ad5b232e3b232d1ad3a573bbcb0", + "params": { + "pub_skey": + "4589800b569c23c5ee4c4a5650d06b96fe3529cc30d9a10d5b0fb2e150059d78" + } + }, + { + "public": + "a0398765ac4cb8b351ae10086a9b3595b8e06b35bef36a21db1b5aff2f244e78", + "address": + "addr1qxqjs32za29c3xn94hr5v70euls76l5m08xuade4vdz8fh62rs003efwmc0n3mhuzqk7crgck5ghmh80h57cuyjz0dssxevjf4", + "decode": + "81284542ea8b889a65adc74679f9e7e1ed7e9b79cdceb735634474df4a1c1ef8e52ede1f38eefc102dec0d18b5117ddcefbd3d8e12427b61", + "params": { + "pub_skey": + "2a448aacd1a484270f37a233288b9b0317da3899c8766fea6e0f26cbf6839aa6" + } + }, + { + "public": + "1eab4d8a6641dcd433b08ff3ecfc88c7fddbae30aae396514973a0406c9940cc", + "address": + "addr1qxcrturckhfuxxn0qf2gs6q3wsg46hrhmhayrug2pq7h6lmfrk8396kfnx788t0f7su8nm383a3rcv70gvm2vzk0hgmq7kyp0d", + "decode": + "b035f078b5d3c31a6f025488681174115d5c77ddfa41f10a083d7d7f691d8f12eac999bc73ade9f43879ee278f623c33cf4336a60acfba36", + "params": { + "pub_skey": + "64664906f85e780f6fe55b094dad03ec55b23dcf99083ad39a107c49e71e90d5" + } + }, + { + "public": + "e391cad5bd7c848ce886411a5cdb0a8fbbd90be60d2e5d45b0d7db13e672cbeb", + "address": + "addr1qxqudun05uwheye88whrz6nwdaalq5mzp2taa3w4vceud9j6n8mx3nx7sdpqtd3fgkm0atdt4jyhwju4uejwwrj4y6dqrdv6aa", + "decode": + "81c6f26fa71d7c93273bae316a6e6f7bf053620a97dec5d56633c6965a99f668ccde834205b62945b6feadabac89774b95e664e70e55269a", + "params": { + "pub_skey": + "e9943b9c7d57954f229c55c3c2ebce1eed71b9206269102f0e827347884dbe7e" + } + }, + { + "public": + "90f2e6952af0d7eaac419ca746d473115a4d49aae50558da8b7acd7fc8c10a37", + "address": + "addr1qysalmnyglg0f2wpepud54df6yvuws3adl7epznp95xr5tqeuj49lmvp4fvhwup4v83c0rpz63aaf0w3d9akdzsx5evspj6jaw", + "decode": + "21dfee6447d0f4a9c1c878da55a9d119c7423d6ffd908a612d0c3a2c19e4aa5fed81aa5977703561e3878c22d47bd4bdd1697b668a06a659", + "params": { + "pub_skey": + "1e894119be800af11296edc885f99ef80caa55d4a0f28b72e37eb27a58ffcf49" + } + }, + { + "public": + "81d8aa37da4dc3f3eac71a2ef081ac50198c524ec7cc3a49aa8544cd81a0c4f9", + "address": + "addr1qxym9akjdsskl08qfa4waqeeg3tagyjnhfsemtqgrgf2vwkeqv4zw2dqmt9t8a2me5mzjq2q93zyryx7hejv6jy62qcsn7s9ey", + "decode": + "89b2f6d26c216fbce04f6aee83394457d41253ba619dac081a12a63ad9032a2729a0dacab3f55bcd362901402c444190debe64cd489a5031", + "params": { + "pub_skey": + "a9da443ebfe8665619687e31a2c27e3f65bfc903f3b160c2dd1f51a323c07240" + } + }, + { + "public": + "90a313d2a25465912da784d6b59740aec571b14c0fd53724e4d5657aaa0d647a", + "address": + "addr1qx3clk2732vjww9pn3g0e2xhqw2mmkrurtj6sezc5dexf8l06zqlhp02j9d2dx7wdutwhcyvavzjajfghdtrk32s3v7q6e994g", + "decode": + "a38fd95e8a992738a19c50fca8d70395bdd87c1ae5a86458a372649fefd081fb85ea915aa69bce6f16ebe08ceb052ec928bb563b45508b3c", + "params": { + "pub_skey": + "5f337dabe10cbbb5a79b35da8c890f3e6a00e1a01622e2785fdc9c9a6a4cee8b" + } + }, + { + "public": + "51ebb0c406fd719f62b556af657cef110cae2e8509d34abb739ff0382ce2ba44", + "address": + "addr1qx46rfsvansxnyua7jjjn5sgllvac2627kc0mnppfae6w6cdw8zu0qet4qgkmeyjxj0e56vhtwn90a4utqyp7qhctfrsq7a2p6", + "decode": + "aba1a60cece069939df4a529d208ffd9dc2b4af5b0fdcc214f73a76b0d71c5c7832ba8116de492349f9a69975ba657f6bc58081f02f85a47", + "params": { + "pub_skey": + "bdf1f3b954995f20f83ee28600f5a87f3340936e4c4972aa3a0d42339442304a" + } + }, + { + "public": + "376e98f7576fabebb26d5f322e17d2b425c35d33b0958883ec013173f630b6b8", + "address": + "addr1qymw5dqmfcusd2runguv0vyz8nmwzf6hfvca6fwyj2jsch669tmhvhhn6caggyek46mw7g5jzpudmm53zkejejl38gyqtd6hvf", + "decode": + "36ea341b4e3906a87c9a38c7b0823cf6e127574b31dd25c492a50c5f5a2af7765ef3d63a841336aeb6ef22921078ddee9115b32ccbf13a08", + "params": { + "pub_skey": + "6bc1cc68ba111887d314defc23e88121deaa0cbae7c3f99ec72ede2c720de7fb" + } + }, + { + "public": + "61d1dc9b06c339110d485cfe2eabb61ecf835f84713971e03e7768c8330f2b69", + "address": + "addr1q84aknctfnrrp95wrj3x04q5zznmuhfdejtvw59v08kp5mrd4twnk30zpq4q0af0vljllzamardnwmy0qr9j9hq7xglqdpyeej", + "decode": + "ebdb4f0b4cc630968e1ca267d41410a7be5d2dcc96c750ac79ec1a6c6daadd3b45e2082a07f52f67e5ff8bbbe8db376c8f00cb22dc1e323e", + "params": { + "pub_skey": + "97c233617c4b2305ebe50afb08c491d3a4e29e0869dc970ad8f46433198dab65" + } + }, + { + "public": + "35e47f14734a9e430c67af2658dcb780d87504dbefcdc9e02330850ea9edb1f8", + "address": + "addr1qxrlvku5r0c56pfzqrl5s96xsp0q3kx65xnfea52ncl0wcvrectnlzmzuwxpgen38pd4avj6t3zfdsyq2wqjdqwaa3fqxrryfn", + "decode": + "87f65b941bf14d052200ff481746805e08d8daa1a69cf68a9e3ef76183ce173f8b62e38c146671385b5eb25a5c4496c08053812681ddec52", + "params": { + "pub_skey": + "c205f68266fffef99bcf7cf5e39c425ffc6724cfec6107df04057ed4e3bb8638" + } + }, + { + "public": + "6de0fe97c5fd772cf39f41fb1420de47301c89c215dd9d6676ba1eb14decf392", + "address": + "addr1q9xmeh8mdfvwr9rj9wtjdmq4murjyflrd6kagyvssx9n2gf0syplju0nvrx4lmej6hvh5wtsd6qnqsynk3409ssz2pgqqdpcmt", + "decode": + "4dbcdcfb6a58e194722b9726ec15df072227e36eadd41190818b35212f8103f971f360cd5fef32d5d97a39706e81304093b46af2c2025050", + "params": { + "pub_skey": + "f4a126b4256c5c77437a5ac36bffc304c6d2f1365dbc257644dce0a53e3e170b" + } + }, + { + "public": + "dbf10dccd770c065258662d4b777197376cb53a85f27ce5ac221ab7fcddce415", + "address": + "addr1qyg25td0s5dljlkny75u5ls98znvz7h7e95qdz8gyqucwmz89x6lhangcjacex0qc4dlz0wmt0z0ecu8l9pq9fj6xe5s33tztg", + "decode": + "10aa2daf851bf97ed327a9ca7e0538a6c17afec9680688e82039876c4729b5fbf668c4bb8c99e0c55bf13ddb5bc4fce387f94202a65a3669", + "params": { + "pub_skey": + "3f8a9b7500c70399d2ab59fa39bf0d020cc3bf7ed66a3f0a7ca519db0f626105" + } + }, + { + "public": + "04bb6d652a9fc69b84a3d85ddbf8ed65573a76e52e68e763c6facc8f5a08c73c", + "address": + "addr1qy462lpqskqmwr6n6y3hfnekf38kh7cl3022238dgapfd8ajy8wa90vygqt5kcx9x7dts723e0z7ruwk7g7gw2wdv66syc36ar", + "decode": + "2ba57c208581b70f53d12374cf364c4f6bfb1f8bd4a544ed4742969fb221ddd2bd8440174b60c5379ab87951cbc5e1f1d6f23c8729cd66b5", + "params": { + "pub_skey": + "f81b87f9b8f81e79c9949aa1b07c409b03a1bc7f0f87f9df571d22fc18bd1bd1" + } + }, + { + "public": + "b33498f60bc74a9e74b534e094750d573ee878e738c9b8d0d0ec8d73c9b7a60b", + "address": + "addr1q8uwcarmwke0m34ganqstf05hx0fzermzn865qylgjw53ruuqc5f59um6xs4c24xg0pd03eu55ta568203353uy3tjvqaz0wax", + "decode": + "f8ec747b75b2fdc6a8ecc105a5f4b99e91647b14cfaa009f449d488f9c06289a179bd1a15c2aa643c2d7c73ca517da68ea7c6348f0915c98", + "params": { + "pub_skey": + "342dcf7517ee6e1f9145297cd152bc1c54c69aca46f62764fcf68138ac5660a8" + } + }, + { + "public": + "287916320fa7fef15da1bd93e0066a931dee86abc51d166556a16cb0f20c36f8", + "address": + "addr1q9w7a2nhjsr99st946pm4rqt9z5e6yzuxkfwukf4znjmpe0l3vqkqy05r7gucy95gnk05t9hsvjphtgj7wzqm0yyztesn78m84", + "decode": + "5deeaa77940652c165ae83ba8c0b28a99d105c3592ee593514e5b0e5ff8b016011f41f91cc10b444ecfa2cb783241bad12f3840dbc8412f3", + "params": { + "pub_skey": + "5115c879916570865b75157e3dfc34439f2f1160f62df161ec97eb34d9ec3401" + } + }, + { + "public": + "38a1af48910975fa40c3b5f76570c64ac2d223403f452a2a762c288e6606958c", + "address": + "addr1q8th7fy7ahx3k7ha5rlxxf9afagw4p8n0x9svygdv72u64qf2mh0rwp389kehcuudyvh30xhh6ts2z0kak7qyyjq42ks9ngx83", + "decode": + "d77f249eedcd1b7afda0fe6324bd4f50ea84f3798b06110d6795cd540956eef1b831396d9be39c691978bcd7be970509f6edbc021240aaad", + "params": { + "pub_skey": + "632bf9309f10673964c4ec8707bf61df107b4b10554eed7ce2ff94fc1db12eec" + } + }, + { + "public": + "d23f90a005bbf43bdbdec53713575287918ba08cf024481628aac131cf0e44ef", + "address": + "addr1q8d6sxt84yr2dg8g8etkpmjqm7t7jgdcle8ft4nfczrqth9yn0gknjm25wmunhwppakluq4ke8a95nrp6drgdh5f5yqqmtsf0l", + "decode": + "dba81967a906a6a0e83e5760ee40df97e921b8fe4e95d669c08605dca49bd169cb6aa3b7c9ddc10f6dfe02b6c9fa5a4c61d34686de89a100", + "params": { + "pub_skey": + "bf3ebd048ec9a1084e5ee044984b5e33532aa0df141a595bdc8f49b67869c356" + } + }, + { + "public": + "f33e5adf7dbf5369f580d22ba1aa982d1fc0c495284f72f8e8a6665697b700a7", + "address": + "addr1q9zls9yx5flvxeamd703prhkel3qxdls05fm67cqn7a4n3gm5azrxmw56nckf9fcr63fnp4nn2retcet9qwsu4stwe2skzaetr", + "decode": + "45f81486a27ec367bb6f9f108ef6cfe20337f07d13bd7b009fbb59c51ba744336dd4d4f16495381ea29986b39a8795e32b281d0e560b7655", + "params": { + "pub_skey": + "a710036c3a85d08669990deaef13081358c8319bbe6f40463e779ef90363f767" + } + }, + { + "public": + "a5ecc6a0d6e00c76a8a1855a0802520880ab7ace365958526b17c6d21845280f", + "address": + "addr1qyya27wtyrdkejgwzqd5ylw9vvwn7396cucwccxrf6jxuj8690z3cuqtgswyajcwn700yatx8mml6z9trj43upxnh5pqsu75ry", + "decode": + "09d579cb20db6cc90e101b427dc5631d3f44bac730ec60c34ea46e48fa2bc51c700b441c4ecb0e9f9ef275663ef7fd08ab1cab1e04d3bd02", + "params": { + "pub_skey": + "1004f438252048b2b9415c37848e178b8eecc46cb411251b69fb7f9b04d9fcd2" + } + }, + { + "public": + "dd697f23664454eca751503c193c1da047255a36f79e8424703363e0679e28fb", + "address": + "addr1q8m438ryc8fjf2pmly9xye3auq95st6pmcmulkt8faaaeww2wy7h6ux865g6jtzh4judftg5kkj9qjp9frtjtu0wsjeqfv9hqe", + "decode": + "f7589c64c1d324a83bf90a62663de00b482f41de37cfd9674f7bdcb9ca713d7d70c7d511a92c57acb8d4ad14b5a450482548d725f1ee84b2", + "params": { + "pub_skey": + "8cbc8322cb36c80a0e1a738180e277616b7fa901d479c0d872ce391bedfac121" + } + }, + { + "public": + "16ebc9df00d4e5cda1406b1d34c890dd5ba0dd70af794a47f2fa09fa1535b72c", + "address": + "addr1q803afm6e2ptxs8t3huhekr3mv3gd927gyerlp9hngr79r54yu5upcut3fwuss8935su3nqnnh6fc4r5jpkjjmsvg2ystw8czy", + "decode": + "df1ea77aca82b340eb8df97cd871db2286955e41323f84b79a07e28e952729c0e38b8a5dc840e58d21c8cc139df49c5474906d296e0c4289", + "params": { + "pub_skey": + "cbbbfc1bddd06268b10e5d8a26f64ba86ae33bb59342f5c370dc2689f07762c4" + } + }, + { + "public": + "81855a0a7ee0595f7fb853e74e49dc735dfe79ec7092f9ac5616193a93587f3e", + "address": + "addr1qxml0dpcax87g0hgnt7rjjlys8f25jucqflk369t0jy83rak4e4zs6tuecwfkmj4lxg3durh6cxen99umffa44n502rq4t5ar4", + "decode": + "b7f7b438e98fe43ee89afc394be481d2aa4b98027f68e8ab7c88788fb6ae6a28697cce1c9b6e55f99116f077d60d9994bcda53dad6747a86", + "params": { + "pub_skey": + "d0f5df4969dfb0fbf0d51e93c4f3075211a71281f1121a1b361e2ac933c619e2" + } + }, + { + "public": + "e8fcda1d9359a9547384ecccb833bd6c3b427f4cf1f1bdd701eca78278a7ef8b", + "address": + "addr1q8x2thcyggffy3360dx6nzrjz9cqmnms55c2x072z8c9768638g57228c46s3fv9km8pd4cvhf8q57ujd06gz5rz37nsf7nwzh", + "decode": + "cca5df04421292463a7b4da9887211700dcf70a530a33fca11f05f68fa89d14f2947c57508a585b6ce16d70cba4e0a7b926bf48150628fa7", + "params": { + "pub_skey": + "8c6964abd96775e8269c4e5b90db129697d500519d262168150fa68c72c25e16" + } + } +]; diff --git a/example/lib/test/address/algo/algo_test.dart b/example/lib/test/address/algo/algo_test.dart new file mode 100644 index 0000000..026a512 --- /dev/null +++ b/example/lib/test/address/algo/algo_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/address/algo_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'test_vector.dart'; + +void algoAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = AlgoAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = AlgoAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/algo/test_vector.dart b/example/lib/test/address/algo/test_vector.dart new file mode 100644 index 0000000..409b18f --- /dev/null +++ b/example/lib/test/address/algo/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "ac07e9862bf04fe680c879286f273413d35b87667cce4a76d355fa319a51d82e", + "address": "VQD6TBRL6BH6NAGIPEUG6JZUCPJVXB3GPTHEU5WTKX5DDGSR3AXNKBN5FQ", + "decode": + "ac07e9862bf04fe680c879286f273413d35b87667cce4a76d355fa319a51d82e", + "params": {} + }, + { + "public": + "a647141e1a870958ab16e0dfab9356d18a541d98d3bd5ac2d7cfd72e1d0b52ef", + "address": "UZDRIHQ2Q4EVRKYW4DP2XE2W2GFFIHMY2O6VVQWXZ7LS4HILKLX45W3WGA", + "decode": + "a647141e1a870958ab16e0dfab9356d18a541d98d3bd5ac2d7cfd72e1d0b52ef", + "params": {} + }, + { + "public": + "40effadd7e8cb7950aa69f15078e952eead7456c1b0b4a2ec5e6b76d35d167b7", + "address": "IDX7VXL6RS3ZKCVGT4KQPDUVF3VNORLMDMFUULWF423W2NORM63ZCZMIOQ", + "decode": + "40effadd7e8cb7950aa69f15078e952eead7456c1b0b4a2ec5e6b76d35d167b7", + "params": {} + }, + { + "public": + "d1a7ad6749ac80fec8ac6f2b46058243244343fd01057f71ce62cf80f5711b09", + "address": "2GT22Z2JVSAP5SFMN4VUMBMCIMSEGQ75AECX64OOMLHYB5LRDME7YB2RNA", + "decode": + "d1a7ad6749ac80fec8ac6f2b46058243244343fd01057f71ce62cf80f5711b09", + "params": {} + }, + { + "public": + "9b5cfce4077d32f1a52f618b138d14e6013098d90798c139ce3424425aa975ce", + "address": "TNOPZZAHPUZPDJJPMGFRHDIU4YATBGGZA6MMCOOOGQSEEWVJOXHKB5R6XQ", + "decode": + "9b5cfce4077d32f1a52f618b138d14e6013098d90798c139ce3424425aa975ce", + "params": {} + }, + { + "public": + "898f8a06f400334867c2153258e38045ddd85ce6d28732ef30816498f965023b", + "address": "RGHYUBXUAAZUQZ6CCUZFRY4AIXO5QXHG2KDTF3ZQQFSJR6LFAI5YXWXHZQ", + "decode": + "898f8a06f400334867c2153258e38045ddd85ce6d28732ef30816498f965023b", + "params": {} + }, + { + "public": + "b979142865bac003b5b67958638e86914142e3e7692db028966db25be8056c62", + "address": "XF4RIKDFXLAAHNNWPFMGHDUGSFAUFY7HNEW3AKEWNWZFX2AFNRROBRSQTQ", + "decode": + "b979142865bac003b5b67958638e86914142e3e7692db028966db25be8056c62", + "params": {} + }, + { + "public": + "b7e2a390d7c6f641a92059469d69f60fcea49643d6568b9b5d5b20777fe43551", + "address": "W7RKHEGXY33EDKJALFDJ22PWB7HKJFSD2ZLIXG25LMQHO77EGVIQPZNZEI", + "decode": + "b7e2a390d7c6f641a92059469d69f60fcea49643d6568b9b5d5b20777fe43551", + "params": {} + }, + { + "public": + "5703776f57533028b1a540e7b69407009e58afcb1ea9d8e360b3be53311035c5", + "address": "K4BXO32XKMYCRMNFIDT3NFAHACPFRL6LD2U5RY3AWO7FGMIQGXCSOPCK7E", + "decode": + "5703776f57533028b1a540e7b69407009e58afcb1ea9d8e360b3be53311035c5", + "params": {} + }, + { + "public": + "dffd6cee29db0bee16bab350f5dd4e30df3a93b7c6400522ec1e9e4b1449230a", + "address": "376WZ3RJ3MF64FV2WNIPLXKOGDPTVE5XYZAAKIXMD2PEWFCJEMFIPGF7SQ", + "decode": + "dffd6cee29db0bee16bab350f5dd4e30df3a93b7c6400522ec1e9e4b1449230a", + "params": {} + }, + { + "public": + "cfe1453c19bdbb82c1c8c331005a79d12fc3ebe0e549d12df828813f7550cb2a", + "address": "Z7QUKPAZXW5YFQOIYMYQAWTZ2EX4H27A4VE5CLPYFCAT65KQZMVEYQZCVM", + "decode": + "cfe1453c19bdbb82c1c8c331005a79d12fc3ebe0e549d12df828813f7550cb2a", + "params": {} + }, + { + "public": + "252fcb9c7d0470d7db150ab078c9884b2cf1385a9ad116c572d124e3eb340297", + "address": "EUX4XHD5ARYNPWYVBKYHRSMIJMWPCOC2TLIRNRLS2ESOH2ZUAKLXGZR3VA", + "decode": + "252fcb9c7d0470d7db150ab078c9884b2cf1385a9ad116c572d124e3eb340297", + "params": {} + }, + { + "public": + "e287d09e9f2dc6c1962c88b2f2f1e772e7e0bd81470754ec792763cb9096ff5a", + "address": "4KD5BHU7FXDMDFRMRCZPF4PHOLT6BPMBI4DVJ3DZE5R4XEEW75NFYMBYVA", + "decode": + "e287d09e9f2dc6c1962c88b2f2f1e772e7e0bd81470754ec792763cb9096ff5a", + "params": {} + }, + { + "public": + "8e562644dd53eafbcbf3fab355669135f4c82ab4f2013b95a8c34038e0562ee3", + "address": "RZLCMRG5KPVPXS7T7KZVKZURGX2MQKVU6IATXFNIYNADRYCWF3R56WCQIA", + "decode": + "8e562644dd53eafbcbf3fab355669135f4c82ab4f2013b95a8c34038e0562ee3", + "params": {} + }, + { + "public": + "8caa49e1ccc4325923314c207480a5ea3453be6143421483d2fed1510e47b4f3", + "address": "RSVETYOMYQZFSIZRJQQHJAFF5I2FHPTBINBBJA6S73IVCDSHWTZ4NJBVQI", + "decode": + "8caa49e1ccc4325923314c207480a5ea3453be6143421483d2fed1510e47b4f3", + "params": {} + }, + { + "public": + "bb390c7ff3c8d30f7551877948418053100f60730bc19252bf5232dbfb781cb0", + "address": "XM4QY77TZDJQ65KRQ54UQQMAKMIA6YDTBPAZEUV7KIZNX63YDSYNMWPF6A", + "decode": + "bb390c7ff3c8d30f7551877948418053100f60730bc19252bf5232dbfb781cb0", + "params": {} + }, + { + "public": + "95b6ee3e033941783c2ea5e78709a8b76c7389ff08db00f02511e522df169620", + "address": "SW3O4PQDHFAXQPBOUXTYOCNIW5WHHCP7BDNQB4BFCHSSFXYWSYQOZ26J7A", + "decode": + "95b6ee3e033941783c2ea5e78709a8b76c7389ff08db00f02511e522df169620", + "params": {} + }, + { + "public": + "92913f3b0e1930f084283b7a22c4c1a6100d0813edb5a4a61f0c14dcb4eccd6a", + "address": "SKIT6OYODEYPBBBIHN5CFRGBUYIA2CAT5W22JJQ7BQKNZNHMZVVC4EKVY4", + "decode": + "92913f3b0e1930f084283b7a22c4c1a6100d0813edb5a4a61f0c14dcb4eccd6a", + "params": {} + }, + { + "public": + "5fdf99abe3a82bce43f26933a1053208b6452b2e2431a0331447da8a9c610ab2", + "address": "L7PZTK7DVAV44Q7SNEZ2CBJSBC3EKKZOEQY2AMYUI7NIVHDBBKZLYHZHTI", + "decode": + "5fdf99abe3a82bce43f26933a1053208b6452b2e2431a0331447da8a9c610ab2", + "params": {} + }, + { + "public": + "36e5e10be697e7bda0583bf5667d076660f81e252e5fc721792bc6eb5e0baa6d", + "address": "G3S6CC7GS7T33ICYHP2WM7IHMZQPQHRFFZP4OILZFPDOWXQLVJWXVNZNFY", + "decode": + "36e5e10be697e7bda0583bf5667d076660f81e252e5fc721792bc6eb5e0baa6d", + "params": {} + }, + { + "public": + "e51612b59232a1c249cf680438caf2fed5afdb6183ecd962109a6d17bc312d9e", + "address": "4ULBFNMSGKQ4ESOPNACDRSXS73K27W3BQPWNSYQQTJWRPPBRFWPDLRQF6E", + "decode": + "e51612b59232a1c249cf680438caf2fed5afdb6183ecd962109a6d17bc312d9e", + "params": {} + }, + { + "public": + "ad9e47101ff0ae2b30936314b4f490a2c9e23e63877d35efe4518a3f4de1defc", + "address": "VWPEOEA76CXCWMETMMKLJ5EQULE6EPTDQ56TL37EKGFD6TPB336MLU2W7U", + "decode": + "ad9e47101ff0ae2b30936314b4f490a2c9e23e63877d35efe4518a3f4de1defc", + "params": {} + }, + { + "public": + "9b4aed9338c5a2285421bbe537b8c9df661ab1a54cf3bdfb2f69dbbbde701537", + "address": "TNFO3EZYYWRCQVBBXPSTPOGJ35TBVMNFJTZ336ZPNHN3XXTQCU3WEZZ2AE", + "decode": + "9b4aed9338c5a2285421bbe537b8c9df661ab1a54cf3bdfb2f69dbbbde701537", + "params": {} + }, + { + "public": + "20ec9294d1f81ea7575248ac2f27a042d0f55132b89c9f261521011d70cc148a", + "address": "EDWJFFGR7APKOV2SJCWC6J5AILIPKUJSXCOJ6JQVEEAR24GMCSFJDOC7XM", + "decode": + "20ec9294d1f81ea7575248ac2f27a042d0f55132b89c9f261521011d70cc148a", + "params": {} + }, + { + "public": + "cfca1715d023980176f987ff5b896aad48f8df0169068191d281a54aceb12174", + "address": "Z7FBOFOQEOMAC5XZQ77VXCLKVVEPRXYBNEDIDEOSQGSUVTVREF2F4PXFME", + "decode": + "cfca1715d023980176f987ff5b896aad48f8df0169068191d281a54aceb12174", + "params": {} + }, + { + "public": + "3c70fe81d4b3b3cbbb80af94704bcbf5bd688639240520dda69e8c923104c9c5", + "address": "HRYP5AOUWOZ4XO4AV6KHAS6L6W6WRBRZEQCSBXNGT2GJEMIEZHCQPZELWY", + "decode": + "3c70fe81d4b3b3cbbb80af94704bcbf5bd688639240520dda69e8c923104c9c5", + "params": {} + }, + { + "public": + "bffcf091ef7f5c81d171b7333e924fa858f49e99dfe872f0aa43e2943876c56a", + "address": "X76PBEPPP5OIDULRW4ZT5ESPVBMPJHUZ37UHF4FKIPRJIODWYVVAOJU7KA", + "decode": + "bffcf091ef7f5c81d171b7333e924fa858f49e99dfe872f0aa43e2943876c56a", + "params": {} + }, + { + "public": + "873087a8e6706255997d63b808cf9fbee884ff59229385a3f8433512c000f740", + "address": "Q4YIPKHGOBRFLGL5MO4ART47X3UIJ72ZEKJYLI7YIM2RFQAA65AD2PCH5I", + "decode": + "873087a8e6706255997d63b808cf9fbee884ff59229385a3f8433512c000f740", + "params": {} + }, + { + "public": + "e8daec3b4116826d491aabb6fad8ca90baa8329c3e1e23faf8588714c19f30be", + "address": "5DNOYO2BC2BG2SI2VO3PVWGKSC5KQMU4HYPCH6XYLCDRJQM7GC7M5LCPO4", + "decode": + "e8daec3b4116826d491aabb6fad8ca90baa8329c3e1e23faf8588714c19f30be", + "params": {} + }, + { + "public": + "1e1d0ce86ce5fd5ffe20ab9fb4af8afc03e6d78998c68d9ccaf9550cb04c168c", + "address": "DYOQZ2DM4X6V77RAVOP3JL4K7QB6NV4JTDDI3HGK7FKQZMCMC2GF75DKVI", + "decode": + "1e1d0ce86ce5fd5ffe20ab9fb4af8afc03e6d78998c68d9ccaf9550cb04c168c", + "params": {} + }, + { + "public": + "3ad4daa1f5b2a8d2e7698ba9e69314c7ca35aaf69518abedd2a70f2ab9eafc1a", + "address": "HLKNVIPVWKUNFZ3JROU6NEYUY7FDLKXWSUMKX3OSU4HSVOPK7QNI4VRYTA", + "decode": + "3ad4daa1f5b2a8d2e7698ba9e69314c7ca35aaf69518abedd2a70f2ab9eafc1a", + "params": {} + }, + { + "public": + "0c14edf90cb28dae3d2dfbdb1930f6cab08c5efc4f2d62310ac7eedb94aa81f7", + "address": "BQKO36IMWKG24PJN7PNRSMHWZKYIYXX4J4WWEMIKY7XNXFFKQH3TSEE3CU", + "decode": + "0c14edf90cb28dae3d2dfbdb1930f6cab08c5efc4f2d62310ac7eedb94aa81f7", + "params": {} + }, + { + "public": + "40c9f71f7ffd161c52a650fe882b57b2a9c32f4052b5f75bcf7fb442c4325bea", + "address": "IDE7OH377ULBYUVGKD7IQK2XWKU4GL2AKK27OW6PP62EFRBSLPVPMY4XGE", + "decode": + "40c9f71f7ffd161c52a650fe882b57b2a9c32f4052b5f75bcf7fb442c4325bea", + "params": {} + }, + { + "public": + "20682c97a13fb23d2dad247097a36d182f9c6e7c590969eeb029c11b540ff7ab", + "address": "EBUCZF5BH6ZD2LNNERYJPI3NDAXZY3T4LEEWT3VQFHARWVAP66VUNJTH7Y", + "decode": + "20682c97a13fb23d2dad247097a36d182f9c6e7c590969eeb029c11b540ff7ab", + "params": {} + }, + { + "public": + "4de6721f8af916dc5a7e3dfd510104432e09e7730aee709f2952dee2743347c8", + "address": "JXTHEH4K7ELNYWT6HX6VCAIEIMXATZ3TBLXHBHZJKLPOE5BTI7ENOYIE6Q", + "decode": + "4de6721f8af916dc5a7e3dfd510104432e09e7730aee709f2952dee2743347c8", + "params": {} + }, + { + "public": + "5342b0c287231fd38dc7356c05e47c8d614bdfa566325cc1e6a2d9f50590da43", + "address": "KNBLBQUHEMP5HDOHGVWALZD4RVQUXX5FMYZFZQPGULM7KBMQ3JBRXKLN3M", + "decode": + "5342b0c287231fd38dc7356c05e47c8d614bdfa566325cc1e6a2d9f50590da43", + "params": {} + }, + { + "public": + "bb0d45386bae94c1c03681d0af1d2117e3eaac39be64d715e816cca11a29845f", + "address": "XMGUKODLV2KMDQBWQHIK6HJBC7R6VLBZXZSNOFPIC3GKCGRJQRP3XLHMAE", + "decode": + "bb0d45386bae94c1c03681d0af1d2117e3eaac39be64d715e816cca11a29845f", + "params": {} + }, + { + "public": + "7f30293b474bd21066baae9a07cd3dba4f0364e7e10298815dbf3735438e1476", + "address": "P4YCSO2HJPJBAZV2V2NAPTJ5XJHQGZHH4EBJRAK5X43TKQ4OCR3M4TSOBA", + "decode": + "7f30293b474bd21066baae9a07cd3dba4f0364e7e10298815dbf3735438e1476", + "params": {} + }, + { + "public": + "88b92936b0841979b4e5c3588685c72a88625d807ebba5d38564dc138b8686b4", + "address": "RC4SSNVQQQMXTNHFYNMINBOHFKEGEXMAP252LU4FMTOBHC4GQ22PPPX2ME", + "decode": + "88b92936b0841979b4e5c3588685c72a88625d807ebba5d38564dc138b8686b4", + "params": {} + }, + { + "public": + "fd509568f3d5529b9fe430973316a71f0b907367f39f1b89b612b8ebf08391d9", + "address": "7VIJK2HT2VJJXH7EGCLTGFVHD4FZA43H6OPRXCNWCK4OX4EDSHMTRUGQCY", + "decode": + "fd509568f3d5529b9fe430973316a71f0b907367f39f1b89b612b8ebf08391d9", + "params": {} + }, + { + "public": + "8379f80f0d751c2be8d467f414674de4abcaec33a98ea13be2d5fe9011f41ad4", + "address": "QN47QDYNOUOCX2GUM72BIZ2N4SV4V3BTVGHKCO7C2X7JAEPUDLKOODV3BU", + "decode": + "8379f80f0d751c2be8d467f414674de4abcaec33a98ea13be2d5fe9011f41ad4", + "params": {} + }, + { + "public": + "4d5872414ea2faff9a43cb35e3050a3979c8913b963fb1aa97b605605967f0d6", + "address": "JVMHEQKOUL5P7GSDZM26GBIKHF44REJ3SY73DKUXWYCWAWLH6DLJNORDDQ", + "decode": + "4d5872414ea2faff9a43cb35e3050a3979c8913b963fb1aa97b605605967f0d6", + "params": {} + }, + { + "public": + "52474b92fc3b7cbabc6bb9269a9151bbe70a07311cfff4c4cd273cd70cf6615b", + "address": "KJDUXEX4HN6LVPDLXETJVEKRXPTQUBZRDT77JRGNE46NODHWMFNTO7MVEA", + "decode": + "52474b92fc3b7cbabc6bb9269a9151bbe70a07311cfff4c4cd273cd70cf6615b", + "params": {} + }, + { + "public": + "a9401fa071f2af30318999319ea2159d4ca8e3d12fbc7a2cf0b004f5c765a948", + "address": "VFAB7IDR6KXTAMMJTEYZ5IQVTVGKRY6RF66HULHQWACPLR3FVFENDDVRXM", + "decode": + "a9401fa071f2af30318999319ea2159d4ca8e3d12fbc7a2cf0b004f5c765a948", + "params": {} + }, + { + "public": + "91ff0b0fb3124642f86b3e08405383e58dcf175f42b3d8eff5fb8c81580fb61e", + "address": "SH7QWD5TCJDEF6DLHYEEAU4D4WG46F27IKZ5R37V7OGICWAPWYPORL6F5A", + "decode": + "91ff0b0fb3124642f86b3e08405383e58dcf175f42b3d8eff5fb8c81580fb61e", + "params": {} + }, + { + "public": + "9610f571af751ddfc58f73c076c708531a9cd20c0f1972b956751a5df03b9e58", + "address": "SYIPK4NPOUO57RMPOPAHNRYIKMNJZUQMB4MXFOKWOUNF34B3TZMMCWSWZQ", + "decode": + "9610f571af751ddfc58f73c076c708531a9cd20c0f1972b956751a5df03b9e58", + "params": {} + }, + { + "public": + "0761e56dccd65290356471ad159ba5f5ffa89483c1c80d337b6773fca9349273", + "address": "A5Q6K3OM2ZJJANLEOGWRLG5F6X72RFEDYHEA2M33M5Z7ZKJUSJZ2OBI6UY", + "decode": + "0761e56dccd65290356471ad159ba5f5ffa89483c1c80d337b6773fca9349273", + "params": {} + }, + { + "public": + "a5278b06fd016abb9aa3fb782c629dfa92a33b172a975bf465f4ae3d0a3b27dc", + "address": "UUTYWBX5AFVLXGVD7N4CYYU57KJKGOYXFKLVX5DF6SXD2CR3E7ODZD6PKA", + "decode": + "a5278b06fd016abb9aa3fb782c629dfa92a33b172a975bf465f4ae3d0a3b27dc", + "params": {} + }, + { + "public": + "6d73e7ba12134869bd90e43c16be932027249affb7db3d4b0ad88ee7ea1c04da", + "address": "NVZ6POQSCNEGTPMQ4Q6BNPUTEATSJGX7W7NT2SYK3CHOP2Q4ATNPEO6WQA", + "decode": + "6d73e7ba12134869bd90e43c16be932027249affb7db3d4b0ad88ee7ea1c04da", + "params": {} + }, + { + "public": + "3981bb75b190067fa7cc5842d89172b4b0508fd407df6f16ba939ea928a5647b", + "address": "HGA3W5NRSADH7J6MLBBNRELSWSYFBD6UA7PW6FV2SOPKSKFFMR53X5NMPM", + "decode": + "3981bb75b190067fa7cc5842d89172b4b0508fd407df6f16ba939ea928a5647b", + "params": {} + } +]; diff --git a/example/lib/test/address/aptos/aptos_test.dart b/example/lib/test/address/aptos/aptos_test.dart new file mode 100644 index 0000000..421a492 --- /dev/null +++ b/example/lib/test/address/aptos/aptos_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/address/aptos_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'test_vector.dart'; + +void aptosAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = AptosAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = AptosAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/aptos/test_vector.dart b/example/lib/test/address/aptos/test_vector.dart new file mode 100644 index 0000000..748672c --- /dev/null +++ b/example/lib/test/address/aptos/test_vector.dart @@ -0,0 +1,452 @@ +final List> testVector = [ + { + "public": + "e67841fd8e598fab26975610360943e3b6526167d16f9544571d9ce61f40c1cb", + "address": + "0xf39c7ccfdc836e0ba4ef24cd9c1d30887aabe35710d8c5384464f3985f8387c3", + "decode": + "f39c7ccfdc836e0ba4ef24cd9c1d30887aabe35710d8c5384464f3985f8387c3", + "params": {} + }, + { + "public": + "5b9ce4031d097d2ee8aabd1f80d6c18e1674547a3fa5f7e26d68286ad85df5af", + "address": + "0x98ee38d6d1f85c8896d02776767b815944f1f6d96d6cca798048f5d91e01d0b8", + "decode": + "98ee38d6d1f85c8896d02776767b815944f1f6d96d6cca798048f5d91e01d0b8", + "params": {} + }, + { + "public": + "9eeb30e77347a0d9c49fe62dc23331cc07ba676faac7c7a658febbc53ff79aa3", + "address": + "0x1910f6ee98c26187f1b13fde6485d5db24c1b5efe85c864b1b8b72cca854c32e", + "decode": + "1910f6ee98c26187f1b13fde6485d5db24c1b5efe85c864b1b8b72cca854c32e", + "params": {} + }, + { + "public": + "4f9262f9ad9c7ce699d3ff5c463db13cca79d37eeb1b2074b4a80c702b167ccc", + "address": + "0x2274299cf6bd650007094e982d2575eb31b10e56cf5d76353334d600eb20a6d5", + "decode": + "2274299cf6bd650007094e982d2575eb31b10e56cf5d76353334d600eb20a6d5", + "params": {} + }, + { + "public": + "38752a8c0a8c3b717c1dca8b9065f9986f8e9a53460c6c1c44fc3ed73c1c4123", + "address": + "0xa923c0b56623e687d1b0dd7bb701c700b1bc084eceb021f8368d557f8240ba9", + "decode": + "0a923c0b56623e687d1b0dd7bb701c700b1bc084eceb021f8368d557f8240ba9", + "params": {} + }, + { + "public": + "8644d03ba2639475b88c9bb9598d56e63601178c55ca23e86e30599298b6a08d", + "address": + "0x1012560fc50723abcf4e1d940fb0f41a33191331d57499d9b684d39b756a4720", + "decode": + "1012560fc50723abcf4e1d940fb0f41a33191331d57499d9b684d39b756a4720", + "params": {} + }, + { + "public": + "2d24c0cc3683ad48348797eeb5281befa42a6333e8f170a757d39e5f50d29532", + "address": + "0xbf642bc1f8961d3ed20db39c7b36b2bb624100716d32487f6244c4e2b853dc27", + "decode": + "bf642bc1f8961d3ed20db39c7b36b2bb624100716d32487f6244c4e2b853dc27", + "params": {} + }, + { + "public": + "88c5e7f64849fccab3c58407ef712305733a683a955083f6e73daa125a10ca14", + "address": + "0xdc252daf66db6c05442fd575a7e5207c103c2cfbcc0c106dfe35d8fee5221313", + "decode": + "dc252daf66db6c05442fd575a7e5207c103c2cfbcc0c106dfe35d8fee5221313", + "params": {} + }, + { + "public": + "41c5276e6ce3e8c6badf713c693c9e4f78de9e515d14ac1143b9602631c11429", + "address": + "0x9bfe44d5d53a267dbf5d162cbe56f7a1a31352b6960480a2d174907fe40ddd95", + "decode": + "9bfe44d5d53a267dbf5d162cbe56f7a1a31352b6960480a2d174907fe40ddd95", + "params": {} + }, + { + "public": + "3c0f44698560df1cb37250fee715bc9cd62e230a4bf84ac13dfa4190c11be847", + "address": + "0x6753016be1d064735025334a19506b3415bab3ea5e659f3df28bf5994b254ef8", + "decode": + "6753016be1d064735025334a19506b3415bab3ea5e659f3df28bf5994b254ef8", + "params": {} + }, + { + "public": + "71af63034d2f877b0a1cb69c8d0ebc10ca2b19606fe6125aefb5f7d5a3106985", + "address": + "0x116e4cdd327f38ddee4089e7291c58a2ac4b330b0ef730d115d60ac7ff476c37", + "decode": + "116e4cdd327f38ddee4089e7291c58a2ac4b330b0ef730d115d60ac7ff476c37", + "params": {} + }, + { + "public": + "557195a7c17ca46e5311d1de92c20d3ac7d0d9ad90851ab954084047463dea55", + "address": + "0xf8e13f8efce20024371dd660b81a98cb27309eb4e176c397546ef8327536c7f8", + "decode": + "f8e13f8efce20024371dd660b81a98cb27309eb4e176c397546ef8327536c7f8", + "params": {} + }, + { + "public": + "120840a6c622dbeda5cdf1c6b5ccd53b616e09d7662bf7ff1f91a7464211612b", + "address": + "0xf9e88b9495306b3f345289320b2ca2e9f4956b2b76fc025fd516fe08d84c9663", + "decode": + "f9e88b9495306b3f345289320b2ca2e9f4956b2b76fc025fd516fe08d84c9663", + "params": {} + }, + { + "public": + "fa139e91e77dd80a38d409250e8fba8ad6b4688bffaaf3bf8b2399aa220e8e7f", + "address": + "0xcbbfab3681739b3cf263f745d33f637f6b4465de0c90c88d0ae8fea9e7122059", + "decode": + "cbbfab3681739b3cf263f745d33f637f6b4465de0c90c88d0ae8fea9e7122059", + "params": {} + }, + { + "public": + "116f85f8c624e5ed8cc7a4369ed7756d694f02ba7069df368ae107985f4fb566", + "address": + "0xf83c19123beaf91286b96c0e3259bfbaef15f50a46a2fc6bdc2555d87c61076f", + "decode": + "f83c19123beaf91286b96c0e3259bfbaef15f50a46a2fc6bdc2555d87c61076f", + "params": {} + }, + { + "public": + "9e96098d352bc8eaa62b542e8588514eecd653cbc49fe4aab3324eac4cc5d73d", + "address": + "0x6f44def0c81db8319246c16a29b348b3506d429c2d1dd871b4c63deb16008ab1", + "decode": + "6f44def0c81db8319246c16a29b348b3506d429c2d1dd871b4c63deb16008ab1", + "params": {} + }, + { + "public": + "cda197513567ef77f21cc0bd7b5a35604bc67614627f85c448eea60cacbcfeb4", + "address": + "0x68fa887ecb6a689dea71dff43cc6a2153a081704eaf3563aa6a2eb851ece36af", + "decode": + "68fa887ecb6a689dea71dff43cc6a2153a081704eaf3563aa6a2eb851ece36af", + "params": {} + }, + { + "public": + "9fc5ab70b856d9005bc3ab15dd6c1adc848798350b6a7733ac97802ced1e529d", + "address": + "0x1e27e46d96dd5b0ebf42d7e11f08079971cd02750e67abb8d3492ab1aaf092f2", + "decode": + "1e27e46d96dd5b0ebf42d7e11f08079971cd02750e67abb8d3492ab1aaf092f2", + "params": {} + }, + { + "public": + "6848e083bd803dca8c24f4c67256757455c3764500f4ee9b53fb78f16178087c", + "address": + "0x7157876ab507a961add80c50a475a54f832749281ddfafdc0c8e9f11542586b8", + "decode": + "7157876ab507a961add80c50a475a54f832749281ddfafdc0c8e9f11542586b8", + "params": {} + }, + { + "public": + "3db90648932db68accfd07d4a3988d9966a62905e9490b2bd3c68d74d8c6321e", + "address": + "0x915759ae52add12a97b81472cbe3b5a2221eb36f5073bc6effb763c31339b70e", + "decode": + "915759ae52add12a97b81472cbe3b5a2221eb36f5073bc6effb763c31339b70e", + "params": {} + }, + { + "public": + "7d44013390ef402a07e4a35e6ed07a9b014d12d963c255b3fc46988642746c17", + "address": + "0x3517b7672a5bfb18d666cb896d983941742cf0cb51c9bd0039baf3fedcd948ce", + "decode": + "3517b7672a5bfb18d666cb896d983941742cf0cb51c9bd0039baf3fedcd948ce", + "params": {} + }, + { + "public": + "79b46ceae90bc5c0e8318625fae58ef813c63c587b38c4542960809063d74936", + "address": + "0xea45a2b7c9f87eac49be463c43457b3f35df1a1f513b12c54aa59e3af6ccc26c", + "decode": + "ea45a2b7c9f87eac49be463c43457b3f35df1a1f513b12c54aa59e3af6ccc26c", + "params": {} + }, + { + "public": + "4dab74c69a5a264a84e149f50c22427d8f2e82d78d3f614c272e62c2c5f0dbe4", + "address": + "0x46e6d91c3be17cd004f45ffc640aed9a4a294d440be8504f736c93a44f96373c", + "decode": + "46e6d91c3be17cd004f45ffc640aed9a4a294d440be8504f736c93a44f96373c", + "params": {} + }, + { + "public": + "35ee8df971a2b7b457810169d0a7a5a97346c7d0282eff27a31d99092e9188c2", + "address": + "0x53be4d72818da00ee3da708abe3dfea628c594b3087361a2a972251137fae26f", + "decode": + "53be4d72818da00ee3da708abe3dfea628c594b3087361a2a972251137fae26f", + "params": {} + }, + { + "public": + "ef80ac03e72554fe1b6d2f28b38bbbb446e2cfcbec9e595d7e77c4faed1c4366", + "address": + "0x41328650be16e9c75716e8668e1057a7dbb54cfdc4db369c298cb3a3cb444077", + "decode": + "41328650be16e9c75716e8668e1057a7dbb54cfdc4db369c298cb3a3cb444077", + "params": {} + }, + { + "public": + "6ba1ac39bc3b9bb2e19d28522477a3ada7795494477ee2f5e61461c68a15b9eb", + "address": + "0x4872713fd2cb17a5e41f7c6272c180b01ecc25b2415f682e41f812ca3768c8fd", + "decode": + "4872713fd2cb17a5e41f7c6272c180b01ecc25b2415f682e41f812ca3768c8fd", + "params": {} + }, + { + "public": + "7bb8a4cc00d8d8109630068401a49bad1bc0f5476180a7f6783d45dc3d5b232b", + "address": + "0x9fa67a3ed77b0b19e1ddfb70a8a9c46b3f95a27974033c87844c7337cf40dcb", + "decode": + "09fa67a3ed77b0b19e1ddfb70a8a9c46b3f95a27974033c87844c7337cf40dcb", + "params": {} + }, + { + "public": + "a8c845bcdbfac62df3db573929b99964eba8d84a353fd475b16042f0a294ac45", + "address": + "0xdb5cccc4557104389f3ca48fd673f22e5136fa7cc347696d5e32a00352c304f1", + "decode": + "db5cccc4557104389f3ca48fd673f22e5136fa7cc347696d5e32a00352c304f1", + "params": {} + }, + { + "public": + "8a24ed4cc937fbe89e7dc60a89d7714a8b585a3757859a528ff632f63c4aed08", + "address": + "0x5b6be634717e70e1fba3e5db43bf9c40677728f0f384214e65c827df6591d7cf", + "decode": + "5b6be634717e70e1fba3e5db43bf9c40677728f0f384214e65c827df6591d7cf", + "params": {} + }, + { + "public": + "32bae6e66838177b7e8371fca25531a442675f408fb8aa66a6be60eff6f99958", + "address": + "0x483c1e10a3ea5a6e2eefe5db21b29b603f6cee1c8deefe1c57a8d8c0c198127d", + "decode": + "483c1e10a3ea5a6e2eefe5db21b29b603f6cee1c8deefe1c57a8d8c0c198127d", + "params": {} + }, + { + "public": + "3d8ed99c19994d2d56d8dbf31704ffbc2ae5b63ce9281452a54d85a7d57ede2d", + "address": + "0x5f8be6c2924d35cbf3a0be5a0ac5c25dd23d9323e8bfa127c68d46fbdb062227", + "decode": + "5f8be6c2924d35cbf3a0be5a0ac5c25dd23d9323e8bfa127c68d46fbdb062227", + "params": {} + }, + { + "public": + "0a26b3b33ffb6433f67f5a425495395f1e8c691c950c25ab8b6e7fdb151c0f78", + "address": + "0xf01abe9910ae8109969ced1a82d4d7d8d646270ee3e3044418ec5b33daaad06f", + "decode": + "f01abe9910ae8109969ced1a82d4d7d8d646270ee3e3044418ec5b33daaad06f", + "params": {} + }, + { + "public": + "344fa0bf572750712f3db3f530d23117bc689cb8dc708784e6f41693d911efec", + "address": + "0x7c62620ec2abe12923a0ad3a7ea3f5f583c2598181cad626e92b6ea7a58e3d0b", + "decode": + "7c62620ec2abe12923a0ad3a7ea3f5f583c2598181cad626e92b6ea7a58e3d0b", + "params": {} + }, + { + "public": + "cf77b09e0e16944e76a0ba34f284501af2811d35d4f1231c40e0b994130f0ef6", + "address": + "0x1dd66b3990f8c31d75dc126ba1ecb71a005775ca2a5c4c706919aa9da7294392", + "decode": + "1dd66b3990f8c31d75dc126ba1ecb71a005775ca2a5c4c706919aa9da7294392", + "params": {} + }, + { + "public": + "74a10cadce3cc3e73ab7a01b14424c33c0cfde30cdaba3d38b269bc8ed0f9d99", + "address": + "0xe52076f80c89768adf04bbeff980c8580704795bb03d556ba16569220bb77789", + "decode": + "e52076f80c89768adf04bbeff980c8580704795bb03d556ba16569220bb77789", + "params": {} + }, + { + "public": + "afad36f58efcaae56b58999399c2bd305f9ed8096e1bcc283e92c7a48ef174f2", + "address": + "0x4eaf1f44d08af221fe6fbc61a7bf03930dde262e345990c7073004280f40c4e9", + "decode": + "4eaf1f44d08af221fe6fbc61a7bf03930dde262e345990c7073004280f40c4e9", + "params": {} + }, + { + "public": + "d6f16ecf465f585e7d9837efe1dafcfcb8e68ddc386aed21568fa2d41c13b6a8", + "address": + "0x3f6870ba5b9cab84eff9014b7bbba3f3722dd6b0b6a7ec9851592d5b9c3fa6cf", + "decode": + "3f6870ba5b9cab84eff9014b7bbba3f3722dd6b0b6a7ec9851592d5b9c3fa6cf", + "params": {} + }, + { + "public": + "abbaf9a9894dba919865e052a7e1eaebf615a10559c981d48b5b53412cb2faa1", + "address": + "0x5b18c8a82b5ed99bc7ee10ceb37ad711520aa699492dbdca65a0de3625e65af7", + "decode": + "5b18c8a82b5ed99bc7ee10ceb37ad711520aa699492dbdca65a0de3625e65af7", + "params": {} + }, + { + "public": + "6bef3ea9514538df126ef144cccbc4cd1c517b294e2362919ba59157f6f3c8b7", + "address": + "0xe697b59d18a5bb620a25e215b172d0a271d64dc2f5900d33fde9a39c83ca3644", + "decode": + "e697b59d18a5bb620a25e215b172d0a271d64dc2f5900d33fde9a39c83ca3644", + "params": {} + }, + { + "public": + "7805d62a5a234b617ec3830e309162e28bd6775de7a7d9441c7ce7f48b58de8a", + "address": + "0xeda8ff565ec8ff73ea8a9fe270acf7f69b188b425f631c81f5638dab785281fc", + "decode": + "eda8ff565ec8ff73ea8a9fe270acf7f69b188b425f631c81f5638dab785281fc", + "params": {} + }, + { + "public": + "95ddaa7acb5e6fa8e68b86337cc72ee2591b194dba56e96a6f161eb6df81c31e", + "address": + "0xf53845b5fad157d538b400a349c12304d9af56eb3c455e256a66d8ced38189fb", + "decode": + "f53845b5fad157d538b400a349c12304d9af56eb3c455e256a66d8ced38189fb", + "params": {} + }, + { + "public": + "a22c89a2b2e6e2bc853d841464fc328f65099ce6c108dfbe7a9e025f9f305da6", + "address": + "0x96fed221a80f4d2d2da943da0be03761e9d7bc12822fd332f848310954f6acf9", + "decode": + "96fed221a80f4d2d2da943da0be03761e9d7bc12822fd332f848310954f6acf9", + "params": {} + }, + { + "public": + "b094bc2b2c6ba977f3b26fd9db377b85c01f758b0e07786c74b968b8b8365792", + "address": + "0xfb6ab725919733b2c66f2032293bfa65bf3dec956e578d4a3a5e5e5075aeba46", + "decode": + "fb6ab725919733b2c66f2032293bfa65bf3dec956e578d4a3a5e5e5075aeba46", + "params": {} + }, + { + "public": + "e93c9702642ac49dba5bbc4a42b728c15c091f3a5c18ccda1bdf870dc9acacc1", + "address": + "0x54d4da0d6aed744c1cb1808fd1769deb27b878240456e2a776a0a6565a2ba196", + "decode": + "54d4da0d6aed744c1cb1808fd1769deb27b878240456e2a776a0a6565a2ba196", + "params": {} + }, + { + "public": + "0136e0495a98bdaecc3429650273089f14a259404ee807d479d0fb6c988f7e51", + "address": + "0x676a73d2a779e53e67885cf7c69433c509ed1d9fd96537dd8d9d381afb3d657", + "decode": + "0676a73d2a779e53e67885cf7c69433c509ed1d9fd96537dd8d9d381afb3d657", + "params": {} + }, + { + "public": + "8d5b116da13aafae5b938c1c123d3faf265e598674418f3b2e5a3d7c71c6434f", + "address": + "0xcb4f45beb798260e2a6c90a65c681c1e359a709b1a4f29ac9b1e75987f6f5aef", + "decode": + "cb4f45beb798260e2a6c90a65c681c1e359a709b1a4f29ac9b1e75987f6f5aef", + "params": {} + }, + { + "public": + "332047591796545a280ba18261838d887f6b899ecc43e60626b3bd13137da5ab", + "address": + "0x6172597e923a51f09bd060a2c58e24e71177cd3e1010f2ad67fe4d14017bd653", + "decode": + "6172597e923a51f09bd060a2c58e24e71177cd3e1010f2ad67fe4d14017bd653", + "params": {} + }, + { + "public": + "6c2eedf159fe915259ae502b427206323e94b698dfbed7b9a8ed55372e2938dd", + "address": + "0xd967e0b4e298358cc34f9b356c04bf7fa93f111ac15cd9e1bf790f12ccbfa1f5", + "decode": + "d967e0b4e298358cc34f9b356c04bf7fa93f111ac15cd9e1bf790f12ccbfa1f5", + "params": {} + }, + { + "public": + "26631a3347e731c0c05a8c082a1f42f9641cbdf853b32ca666899479b62fcc6b", + "address": + "0xa47561ee3065b4ee9c273b17309b50a4d7c3cee55759d44b92c59ec033eabe33", + "decode": + "a47561ee3065b4ee9c273b17309b50a4d7c3cee55759d44b92c59ec033eabe33", + "params": {} + }, + { + "public": + "e007c4a308f44e420ebb8ea9a0a919de4fde93c897488c1fa6a7c7fab22feebf", + "address": + "0x7d439eba2cd32a21e0d7b62d95b3d366429872c34ae32e81212e4afcce78f50", + "decode": + "07d439eba2cd32a21e0d7b62d95b3d366429872c34ae32e81212e4afcce78f50", + "params": {} + } +]; diff --git a/example/lib/test/address/atom/atom_test.dart b/example/lib/test/address/atom/atom_test.dart new file mode 100644 index 0000000..b542eb7 --- /dev/null +++ b/example/lib/test/address/atom/atom_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/address/atom_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'test_vector.dart'; + +void atomAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = AtomAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = AtomAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/atom/test_vector.dart b/example/lib/test/address/atom/test_vector.dart new file mode 100644 index 0000000..4f659a8 --- /dev/null +++ b/example/lib/test/address/atom/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "03c749da3b0e419662625f6438d631e126ec86fee785e853fc695ba50c1e54a750", + "address": "band1tpedaeatr9qsv5sg38dmhnuwpvhjmuesql2rn9", + "decode": "5872dee7ab194106520889dbbbcf8e0b2f2df330", + "params": {"hrp": "band"} + }, + { + "public": + "037e0d8ced96c90b516a7cfb221a4f4bd23544d5abd956abaf9da9744fbafd97a1", + "address": "band13w324sqm8dpfwfvq4yns907uus0f0f2ngxruq2", + "decode": "8ba2aac01b3b42972580a92702bfdce41e97a553", + "params": {"hrp": "band"} + }, + { + "public": + "030cf11aa206ad2275f4164f3e1a1ed4d3190be4b148e1d93a64ea0b2a9a51882c", + "address": "bnb1vhvnd7v8900adfytj2yl9sldapa6p9ghcnaqtz", + "decode": "65d936f9872bdfd6a48b9289f2c3ede87ba09517", + "params": {"hrp": "bnb"} + }, + { + "public": + "022a8752ce8480844725834ddc8b62ab42b05ff4f220336ea41c15a8ad0d155a0a", + "address": "terra1dz5atdvdmfugpgum0mj0flq3asruycfyzh2waa", + "decode": "68a9d5b58dda7880a39b7ee4f4fc11ec07c26124", + "params": {"hrp": "terra"} + }, + { + "public": + "03f673cd0859c23f6d9ddf7355ce9c6090a06d447dcbf5d6664a7ece8c6f932d8b", + "address": "bnb1kme4srd0p3lgeq5hanas7gwaf363umy2fy5gkx", + "decode": "b6f3580daf0c7e8c8297ecfb0f21dd4c751e6c8a", + "params": {"hrp": "bnb"} + }, + { + "public": + "03d342f242345809c7058658d43b78cc505c68faed387a09291072e3ea26f1bfc7", + "address": "band1jw4glhhctpyjttdnn494rfpg6t5uqy6q4q2md9", + "decode": "93aa8fdef8584925adb39d4b51a428d2e9c01340", + "params": {"hrp": "band"} + }, + { + "public": + "021bfef173aad1e49fd8b5d5567cb525273082817c3f0360bf8b660605b2f59c5d", + "address": "bnb1gsp2dzj8jrkvgghlfmnk72hwx87e2farfk6t6j", + "decode": "4402a68a4790ecc422ff4ee76f2aee31fd9527a3", + "params": {"hrp": "bnb"} + }, + { + "public": + "03fe66781921f06b1b36dbbf6119fa05d4535f91220b51ec5fe582a498e1e0b6b3", + "address": "iaa184ka4frf3sn29tt2446h7y3cz6wkr43y07h6wx", + "decode": "3d6ddaa4698c26a2ad6aad757f1238169d61d624", + "params": {"hrp": "iaa"} + }, + { + "public": + "03d98b2d702dbbea3b70bbbb3b7a7cc564383ed8b1c28ac5ca627c0c41c04636e8", + "address": "band1jam4x5tpn8mnwez6q84nqljxul4fv9fldxwajw", + "decode": "977753516199f737645a01eb307e46e7ea96153f", + "params": {"hrp": "band"} + }, + { + "public": + "039941cbf4a0ace1d5b6b41bbace0d707cec9191a5174683df2e20ac1c3ffe2e84", + "address": "bnb18thwf5nkrjf5vtklsjt7e0m4uzumhm4atpvmcu", + "decode": "3aeee4d2761c93462edf8497ecbf75e0b9bbeebd", + "params": {"hrp": "bnb"} + }, + { + "public": + "034e8ac2baf954de18d19a0329eb8fe0097ada6e645477e5b73cb45395ac9f639a", + "address": "band1jcfzktsg859j5qww2862za5935esucggtvwt3k", + "decode": "96122b2e083d0b2a01ce51f4a176858d330e6108", + "params": {"hrp": "band"} + }, + { + "public": + "03b3fbe325c4c467908d2395d8e08157822f4f3fae3953d53412d94fc5de64293e", + "address": "cosmos1qckcmp3uw7qa5407qy3dlw8fzzc9c67yvrf7c6", + "decode": "062d8d863c7781da55fe0122dfb8e910b05c6bc4", + "params": {"hrp": "cosmos"} + }, + { + "public": + "02f24146c2ff6451356bccc13437f9faae7aaf56b4ac14a40b2386be45f3ab4d36", + "address": "cosmos1c3ewg38x59jg882y4hz3ngf3wwpumrs8308xla", + "decode": "c472e444e6a164839d44adc519a1317383cd8e07", + "params": {"hrp": "cosmos"} + }, + { + "public": + "02452e273852ab09d05bb9c86bf4f78e90ff58a0687ac0afeb1fff3ac4dd066b43", + "address": "bnb1mmlqhg872ph909zsfdtg32ctrwhc8swy2vkzfn", + "decode": "defe0ba0fe506e5794504b5688ab0b1baf83c1c4", + "params": {"hrp": "bnb"} + }, + { + "public": + "0355a5127653257f836a5f07b7eba95975377133ca5268898a07a29060bcd9bfb6", + "address": "kava1q4ulv0y83zfrf9yzgc8gt7fvkqf0xd97wks2x0", + "decode": "0579f63c878892349482460e85f92cb012f334be", + "params": {"hrp": "kava"} + }, + { + "public": + "0294b60018ee2dae40988820e0c24863a8c08b523d632fb4178660012261ce7429", + "address": "iaa19wkfavccprtqk23q0w7hnusf2jppvfakpee4gp", + "decode": "2bac9eb31808d60b2a207bbd79f20954821627b6", + "params": {"hrp": "iaa"} + }, + { + "public": + "02b733515be85ead1d501d62c3961e1c1c5d9dccd398fa13499c1baf88a32173e3", + "address": "iaa1ajehdmaa0fat46g8mp05wavv7jkg235fa6e3zy", + "decode": "ecb376efbd7a7abae907d85f47758cf4ac854689", + "params": {"hrp": "iaa"} + }, + { + "public": + "02e4a0de19b0d341a5af6218f17d29b6bb7d613d702196add5bf757ddb6503aa18", + "address": "cosmos1lxcd7dp7tfh06xymksknfcfwrtsht5lrp5qank", + "decode": "f9b0df343e5a6efd189bb42d34e12e1ae175d3e3", + "params": {"hrp": "cosmos"} + }, + { + "public": + "036c2c95de71c5b19e3b17dce875d6bb6e9383f738b1fb135019fc30f5576db3b2", + "address": "kava1kvzj2ql6a66xt355rdptfehxse00hpu56xdf4x", + "decode": "b3052503faeeb465c6941b42b4e6e6865efb8794", + "params": {"hrp": "kava"} + }, + { + "public": + "030928baae4024a4017d2820d293bbf6ab2b2ad548f91bcef4c5175f507d9cc538", + "address": "terra1967ugs57k9r8dq8mjnejhsy8ycey0rnz4lhrtw", + "decode": "2ebdc4429eb1467680fb94f32bc0872632478e62", + "params": {"hrp": "terra"} + }, + { + "public": + "024884bd320b10b97565be25dfcd1d9f81d961021406bacffb1326efd54333b076", + "address": "cosmos1ras9j25mh73qu5azxa9wuj7jg84meacfngkqrx", + "decode": "1f60592a9bbfa20e53a2374aee4bd241ebbcf709", + "params": {"hrp": "cosmos"} + }, + { + "public": + "020a587fcc7b48f53622180bf2e1cbdcbe2a8e7669af1522edfd504356f746c314", + "address": "cosmos1gts9wck04rffppp2jgjf7cjyej4jyfz9s0xqcu", + "decode": "42e05762cfa8d290842a92249f6244ccab222445", + "params": {"hrp": "cosmos"} + }, + { + "public": + "03e338e025f2e7e38e473a6f2ef54d76851778ecc10ac745c1973a35321a8e546a", + "address": "bnb1lpfapvngqxtfprqqselj3a7p3jejavlcjvk2qg", + "decode": "f853d0b2680196908c00867f28f7c18cb32eb3f8", + "params": {"hrp": "bnb"} + }, + { + "public": + "03256f2332f9564a62de0bcdf30a10610c6f91f218b482f8a70f31a58fa2a547b5", + "address": "bnb1ca97yfn67csrddwgrztyurvpkhye6e0fv8shy4", + "decode": "c74be2267af62036b5c818964e0d81b5c99d65e9", + "params": {"hrp": "bnb"} + }, + { + "public": + "02aa4a7b2a06dc8561a0867471f22525695b45053f97ac8c638e6a4c0f5923fb9a", + "address": "bnb1fr75x4449n46ekzxlyadf0q59xjs8l8y4gf357", + "decode": "48fd4356b52cebacd846f93ad4bc1429a503fce4", + "params": {"hrp": "bnb"} + }, + { + "public": + "026f382ffc9562ac9d40d7bc868c63857795c348ced5f6aa181d57685cc118a8df", + "address": "band14jdez6vcyl50gpzs2tfv287m6khw7te2s92yl0", + "decode": "ac9b91699827e8f4045052d2c51fdbd5aeef2f2a", + "params": {"hrp": "band"} + }, + { + "public": + "032a223634e8ab12d4bf381f2ad55aaaa701f9dea9db7864a03b271498d5a12a87", + "address": "terra1eyqqs4e734xg6rtxap2058ngq7xhkk5yfz05sx", + "decode": "c90008573e8d4c8d0d66e854fa1e68078d7b5a84", + "params": {"hrp": "terra"} + }, + { + "public": + "029ecd4d4547a51ec31ce3a924ffafb84a7e6061d31774cf46a149989fa05c886f", + "address": "cosmos1cn5vtyxuq6854u8ayflgrkv4g2a08udjywke7g", + "decode": "c4e8c590dc068f4af0fd227e81d99542baf3f1b2", + "params": {"hrp": "cosmos"} + }, + { + "public": + "026c56c349124cb47b31e127c55c9a74e9e6b8cbba4cfabd9873c7d0994595cd75", + "address": "iaa1r960r6z4mt6qwfzy5e5txccp6jx6ys8xu7cxgk", + "decode": "1974f1e855daf4072444a668b36301d48da240e6", + "params": {"hrp": "iaa"} + }, + { + "public": + "03f17eeef9d13459c17cd06c4130498c28190937c538cba4825c8c01d88e6c64aa", + "address": "cosmos1xkd5t0wt23mcp7yc8dv4d39saypgmfwre5vrps", + "decode": "359b45bdcb547780f8983b5956c4b0e9028da5c3", + "params": {"hrp": "cosmos"} + }, + { + "public": + "0206053ce98dd5c619632614b5a8c0c8fb9e60758e029054175dd22e3dfc4a32c6", + "address": "band17rw67juv9mufu28wnqcjmgyhjnp6ujjm6da42u", + "decode": "f0ddaf4b8c2ef89e28ee98312da09794c3ae4a5b", + "params": {"hrp": "band"} + }, + { + "public": + "036d93bbc1be5424800c3e11be0c85ff6aed370f605f2286b2e589957729599566", + "address": "bnb1x0xgakg25wejpu6swr7swkmd75snfn0mp4q855", + "decode": "33cc8ed90aa3b320f35070fd075b6df52134cdfb", + "params": {"hrp": "bnb"} + }, + { + "public": + "02e7ce20d8e622ec53335dd6f62e9246db8ec94dca1b63e74a14ec1266418a8801", + "address": "kava1puzp6mvs5ggawq9zf0hgddmyp95ldc95mhwcmm", + "decode": "0f041d6d90a211d700a24bee86b7640969f6e0b4", + "params": {"hrp": "kava"} + }, + { + "public": + "031679ee4be650d8a15a3cd4410c86e6a4c6ef6f0e5a886df384a38e5815401bef", + "address": "kava13sg433veafecl0zfsuemdjpp30u30rzsq7tdes", + "decode": "8c1158c599ea738fbc498733b6c8218bf9178c50", + "params": {"hrp": "kava"} + }, + { + "public": + "03ff9249cf11cab15ed179c564b889ad0015e0615e9a6595e26bf3228f58c6198e", + "address": "terra1qdz4urx4tm3mrts3cvhucnyfcksfjts3j8p6d0", + "decode": "03455e0cd55ee3b1ae11c32fcc4c89c5a0992e11", + "params": {"hrp": "terra"} + }, + { + "public": + "02bb6aa3296fe7b5a7855e0dcbd2385cac5954a18a30ec1c7943b0b9d4865e1e55", + "address": "iaa1ekvm4cqmy2mv0jlhtjnxefw3yvkrd9pz85mdu8", + "decode": "cd99bae01b22b6c7cbf75ca66ca5d1232c369422", + "params": {"hrp": "iaa"} + }, + { + "public": + "03625ad1c2f55b4fac8f15d6b289550e1083bfc6f15b967c05c846b4db5ea5946f", + "address": "band1yzjaxz06506sp0pgqgnqffj4qnnlf0090asgrg", + "decode": "20a5d309faa3f500bc28022604a65504e7f4bde5", + "params": {"hrp": "band"} + }, + { + "public": + "02688ccc09bb380b64c84617b558b4b095277486896dadc5839bb59dc8dd00a565", + "address": "bnb1kce28xme76hkrd57k3p37xspgy8ll9z8f095nr", + "decode": "b632a39b79f6af61b69eb4431f1a01410fff9447", + "params": {"hrp": "bnb"} + }, + { + "public": + "032c9d27142f0e9d200f3621b2d50931bc0a7a61253d953eb07a2a371038fec698", + "address": "iaa133q2uylzk5un2r8wkhpsfshn9t6xkt96ua8vva", + "decode": "8c40ae13e2b539350ceeb5c304c2f32af46b2cba", + "params": {"hrp": "iaa"} + }, + { + "public": + "03182689e4dd496071286ce3833ddbf900f96610c3bcc4de7ce3b783d74d7a6e4f", + "address": "terra1awltqcc7ev5glgljdg3nhn3ak96f6v82q9g3g2", + "decode": "ebbeb0631ecb288fa3f26a233bce3db1749d30ea", + "params": {"hrp": "terra"} + }, + { + "public": + "032965b1b6b36977d3b5ac5a14588ce805a8351747fa2ccaec6a2f347837eb8ce9", + "address": "band1djyj3ewk4tzjee0sz2ygrusum7henrtlxmtkep", + "decode": "6c8928e5d6aac52ce5f0128881f21cdfaf998d7f", + "params": {"hrp": "band"} + }, + { + "public": + "03744e304ecb795a978bde470aa7f98b36920747a792155b334e34792ea49679fb", + "address": "iaa19tan6n6hr7lj8spq25untwwd2gv5cx269czsrm", + "decode": "2afb3d4f571fbf23c020553935b9cd52194c195a", + "params": {"hrp": "iaa"} + }, + { + "public": + "024ad353c3a5708386e73fd390cb969abaf7ebac7cfba64e3db907a0b4c8540376", + "address": "terra153g4n6plre5emaffg38m2jw8uuwgzh2cau0j0q", + "decode": "a45159e83f1e699df529444fb549c7e71c815d58", + "params": {"hrp": "terra"} + }, + { + "public": + "03ef224ef0aaebace2a187f0019a1fbd3c9b8c98b31940db046aa47469d77e9875", + "address": "terra1h2fygsdezt65whzf5smwj4ryw2cd3quyrjgfh8", + "decode": "ba924441b912f5475c49a436e9546472b0d88384", + "params": {"hrp": "terra"} + }, + { + "public": + "0381efd2bd38a6feeb0bd8dbc26c245c54aff4c9ebe44dcec515a365a4815e7b16", + "address": "terra1vrljt6gltv4nd76qzd8fpq9v53894h7gz72zrx", + "decode": "60ff25e91f5b2b36fb40134e9080aca44e5adfc8", + "params": {"hrp": "terra"} + }, + { + "public": + "036e48f95e4418c78e0e09bafbd58c12d4d54781194cbe39e47cdc000719a8af45", + "address": "iaa1c0n739t9k3xtgqc0sj7e7mf0pjeklxte795n93", + "decode": "c3e7e89565b44cb4030f84bd9f6d2f0cb36f9979", + "params": {"hrp": "iaa"} + }, + { + "public": + "024cf3e95511a3504a5ddd48fdddfe2849c69cc70025b8971475746e9e51c1dec8", + "address": "bnb1nyuve3jfmu224dnqhnmg8e4njn5avh0scfx8tu", + "decode": "9938ccc649df14aab660bcf683e6b394e9d65df0", + "params": {"hrp": "bnb"} + }, + { + "public": + "03f9f1c4459c531ee720646f53a22dc6292e4e33cc98c8533315555399e8bfd2af", + "address": "kava1e7me359n44gda60r2a2sev06t50pce0tutrphr", + "decode": "cfb798d0b3ad50dee9e357550cb1fa5d1e1c65eb", + "params": {"hrp": "kava"} + }, + { + "public": + "03cd6c7c79f12b48ffd595e93e17bc7df1bc7ffd62c8c7c09a2bd18db363c496c6", + "address": "band135ych6sr0h4ah63z73v9wg3nzh406ea7kcnhak", + "decode": "8d098bea037debdbea22f45857223315eafd67be", + "params": {"hrp": "band"} + }, + { + "public": + "020bcdf3a0fd3dfa34e3d62feecda219c48da02335e09e0625408ec5721c9c0445", + "address": "band15mg5wcrsa4pg4yuvxrntrccmaz2qf7tpkuxl0d", + "decode": "a6d1476070ed428a938c30e6b1e31be89404f961", + "params": {"hrp": "band"} + } +]; diff --git a/example/lib/test/address/avax/avax_test.dart b/example/lib/test/address/avax/avax_test.dart new file mode 100644 index 0000000..b2d1abc --- /dev/null +++ b/example/lib/test/address/avax/avax_test.dart @@ -0,0 +1,27 @@ +import 'package:blockchain_utils/bip/address/avax_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_p_vector.dart' as p; +import 'test_x_vector.dart' as x; + +void avaxAddrTest() { + for (final i in p.testVector) { + final params = Map.from(i["params"]); + + final z = AvaxPChainAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = AvaxPChainAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } + for (final i in x.testVector) { + final params = Map.from(i["params"]); + + final z = AvaxXChainAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = AvaxXChainAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/avax/test_p_vector.dart b/example/lib/test/address/avax/test_p_vector.dart new file mode 100644 index 0000000..455ca3f --- /dev/null +++ b/example/lib/test/address/avax/test_p_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "03d477959fdf9e3dd62fad8127e9589be6572145b992f6825eab60a87891f855ff", + "address": "P-avax1crd8dgf44zajru3975vwe3xzqy70n0afu3kk9m", + "decode": "c0da76a135a8bb21f225f518ecc4c2013cf9bfa9", + "params": {} + }, + { + "public": + "03543de007adc67822cc961e6e6e3582d25ccc551268e88eefef2c23b7f97ae32b", + "address": "P-avax15aeuzqj7pst2r2npmewarfme62rw8y4w2yz4n3", + "decode": "a773c1025e0c16a1aa61de5dd1a779d286e392ae", + "params": {} + }, + { + "public": + "02a1c9ca6b18383f52bee9a6f2350584d8b593e9222085c11b90c36da4f6844808", + "address": "P-avax105mehs44pvp3j8kn95aqgzqs80uuyjj5cww5mh", + "decode": "7d379bc2b50b03191ed32d3a0408103bf9c24a54", + "params": {} + }, + { + "public": + "03fe78857c74f950c62793df27409dd3530617b2a47c94330a45e2b0db584dd8b7", + "address": "P-avax1z6arfthw9rwlkaqmnkt64jmf2ns2gwcl0pg489", + "decode": "16ba34aeee28ddfb741b9d97aacb6954e0a43b1f", + "params": {} + }, + { + "public": + "036082aed990fbfc5a5036601960a7cc25a63cad72ede5ad028a61536b83c9ae05", + "address": "P-avax1vlvu7sldjmf05r5xhsm5mmgqayh4pf2ezr0y6t", + "decode": "67d9cf43ed96d2fa0e86bc374ded00e92f50a559", + "params": {} + }, + { + "public": + "021aa7212eefd599b0dc053f632fed2b48822070a20bbed8cad5fa80e616a1b7db", + "address": "P-avax1jkr05a524rnk47aukwgnhkgk979dwhwn2zhqqw", + "decode": "9586fa768aa8e76afbbcb3913bd9162f8ad75dd3", + "params": {} + }, + { + "public": + "039c9b513626974a85626b14a043172ad2b73fa17aaec281828331a5a9dbb0db4b", + "address": "P-avax1qrnwnhmychyqmqx5xe0s786fvhtd675q9cr557", + "decode": "00e6e9df64c5c80d80d4365f0f1f4965d6dd7a80", + "params": {} + }, + { + "public": + "023553760aa055a713b6540af75e7d19c41070a7f08166d6248cbfe49d6ed869eb", + "address": "P-avax178rh343jhcggxn60ee75qs4f0xnhh9nplw6d2w", + "decode": "f1c778d632be10834f4fce7d4042a979a77b9661", + "params": {} + }, + { + "public": + "02f3d0c8751f308abec684eb03eb2fd4fa2ed3b8fe22cfdf48c5ec000a3a61a2d5", + "address": "P-avax17q0qsfgsccml28gzv62ff8p7kd7rs3jsk9hlyf", + "decode": "f01e082510c637f51d026694949c3eb37c384650", + "params": {} + }, + { + "public": + "02cc53371dd68ea486cf654e84296209bd931b598c823219b9625528e112798d73", + "address": "P-avax1fuqse3nhmg5sqkm290cfsg8xc9vwzsryy9ert9", + "decode": "4f010cc677da29005b6a2bf09820e6c158e14064", + "params": {} + }, + { + "public": + "035133069ee60d5a604f9187a4c7f45f7536ced14ed4d8a0c4f6e91746cce0b9b7", + "address": "P-avax1kv9rkwqk74ucwmx5cur28u959tq4daf7wc0qns", + "decode": "b30a3b3816f579876cd4c706a3f0b42ac156f53e", + "params": {} + }, + { + "public": + "025d3238fb481af4f671b29c7a890d508ff3ab3b567ce51d48178acf1d554154bb", + "address": "P-avax1xst5rsm2sr4gw4dd945nppu69qll20muc47rm6", + "decode": "341741c36a80ea8755ad2d6930879a283ff53f7c", + "params": {} + }, + { + "public": + "026a35defa8ac86c66dccb175fd5b794eafc9e762420a80e4e23bc14121ab85b0a", + "address": "P-avax17xf2dddft2e7nmw36c7uajqrr86zmkh9xq93jr", + "decode": "f192a6b5a95ab3e9edd1d63dcec80319f42ddae5", + "params": {} + }, + { + "public": + "0387475e2885f799c9794581d9f0d57172334bd8e414d1a4beefbd3b6829609c98", + "address": "P-avax1ydem70lcwc69z62fwshw3xk0u7xyf9yg66l96v", + "decode": "2373bf3ff87634516949742ee89acfe78c449488", + "params": {} + }, + { + "public": + "03ba5405a4adf6f68f3f2aa6a286f3624e1ddc1174cc9740e0e65236c2a611286c", + "address": "P-avax1qt6fhqtmrj3sddljnjtmyjxnu0chgp0kp5hsuj", + "decode": "02f49b817b1ca306b7f29c97b248d3e3f17405f6", + "params": {} + }, + { + "public": + "02e0bd0bd7d12c9cac72c1b93a3bcf621ad154e1a12f7a241be4f0543b325d08a3", + "address": "P-avax1r3k5mwlg9cw2z4yd28qxt2zelx9rftyxsqs43q", + "decode": "1c6d4dbbe82e1ca1548d51c065a859f98a34ac86", + "params": {} + }, + { + "public": + "024cf58ee042bb2037f8659125f0a1b0093967d04921d055a81f88f7245fc9dfde", + "address": "P-avax16nr6chcszukfv84ef5qku65gccz79g0qgk7zv9", + "decode": "d4c7ac5f10172c961eb94d016e6a88c605e2a1e0", + "params": {} + }, + { + "public": + "03f5226fd3d855f97999774d2feca51ad4a9f234fcce7894dadc6eabed80a3613a", + "address": "P-avax1mfyw6eq2hkmuhga3hdtxeqg2gd3zar4ezl3nlj", + "decode": "da48ed640abdb7cba3b1bb566c810a43622e8eb9", + "params": {} + }, + { + "public": + "0281aca6d7e500f3692655eb83c67e7ac660c371110ac6b8d7aeb75fd56273724f", + "address": "P-avax1msrrg4qnxg473tlcps5dpw3wrf9rm2yjvelnw3", + "decode": "dc06345413322be8aff80c28d0ba2e1a4a3da892", + "params": {} + }, + { + "public": + "0313204e28e1ae9eda56be7d3a2e0791a288210c1ee43f5ae944e36ebc04afb40e", + "address": "P-avax1yqlj2k5vf2u4qfgnsl78qp0s7z9r6wll6eug2n", + "decode": "203f255a8c4ab950251387fc7005f0f08a3d3bff", + "params": {} + }, + { + "public": + "031d6ce80e5f2b497d18501f4f5502b43c91ced6ef83d0e4f8620b47b13de38cd7", + "address": "P-avax1wsc7qh6x95fyrh3uc7xur59y7qqvxmjv3u4te3", + "decode": "7431e05f462d1241de3cc78dc1d0a4f000c36e4c", + "params": {} + }, + { + "public": + "021c08ab87368d07ac6cba3928627c3163a10f4d8ac85fa945e5d354e36af249fe", + "address": "P-avax18rnxnutd4yms0drxwhpryjf59zdmj2p4nl945p", + "decode": "38e669f16da93707b46675c2324934289bb92835", + "params": {} + }, + { + "public": + "037f916b87f9f4a7a5c16089e1998361f60a7a6d6745930ce5dfe6932019df3b03", + "address": "P-avax1zg4xuds4d9hdx5z8fm6x664uyg3e05t6nf95zs", + "decode": "122a6e3615696ed350474ef46d6abc222397d17a", + "params": {} + }, + { + "public": + "026ca8f5a6201889d05c1f7f9137d47592645931c197196d45010badcdd240f75f", + "address": "P-avax13z06rmzuead4pvl3t3fnfqqve8vjhnwa6p7fjs", + "decode": "889fa1ec5ccf5b50b3f15c5334800cc9d92bcddd", + "params": {} + }, + { + "public": + "0204392816abf9e1df62e05df4b9211002970cd60b0536166a0fcb59d120ee5c1a", + "address": "P-avax1t82m0jvud7anmwu8hkh398gj06728rnh7g52ld", + "decode": "59d5b7c99c6fbb3dbb87bdaf129d127ebca38e77", + "params": {} + }, + { + "public": + "024e4a00b36d8a204fbbab7c157952ef1a2f5d72d5bba637408776b811239bf665", + "address": "P-avax1rxrqrzfh8gt8h6v9truz5am4a3rknldl64uvdk", + "decode": "19860189373a167be98558f82a7775ec4769fdbf", + "params": {} + }, + { + "public": + "039f8925426fbf7bd9678b62f0388f0bd971c9b7dff43dd59f50d014777229c4e7", + "address": "P-avax1uy0fd8r64z55h507jeyzz4jwmm4da7ek9m3xgk", + "decode": "e11e969c7aa8a94bd1fe964821564edeeadefb36", + "params": {} + }, + { + "public": + "02835ddd3c8b0513763c3f3805217ae9b1e47d1deff5f686bcd1473e1a3fee05d1", + "address": "P-avax1j4nxg7zkdfnpt28ytcwt97ea0mzyvjwp4306uc", + "decode": "95666478566a6615a8e45e1cb2fb3d7ec44649c1", + "params": {} + }, + { + "public": + "03ffa21e0b8ae1574b63831acb22785f5d396f7c2ce176aa47e256768563aff0b6", + "address": "P-avax1kctuggqdsv7w87e532pfwdghx322lchmqrr7cc", + "decode": "b617c4200d833ce3fb348a829735173454afe2fb", + "params": {} + }, + { + "public": + "028778b1da934572ee59fabeace95358bf68c9d6b2746fae6e07e22f31d587ac7c", + "address": "P-avax1je9sf53aydtu7sdd8dsqa5gksc8g5nygaulwep", + "decode": "964b04d23d2357cf41ad3b600ed116860e8a4c88", + "params": {} + }, + { + "public": + "02bf85a2b5a7dfe482dd99f9577d0906157f95b370e6873d5d097fea90462be4a3", + "address": "P-avax1hjp3up24vrexpc7kktjg2nj0g6dsq2pg2dlemj", + "decode": "bc831e055560f260e3d6b2e4854e4f469b002828", + "params": {} + }, + { + "public": + "03e190dec5058758d89c0b2232f64d02bafa8a91104d4f5ac77c8b2676ff22d6db", + "address": "P-avax128relrckw2eznw0qpvmmwfj5e58mcf2zauxtfl", + "decode": "51c79f8f1672b229b9e00b37b72654cd0fbc2542", + "params": {} + }, + { + "public": + "0252dee22c13b6604169e1cb209c34b6ccb5df8db7fd65f0cdd1132b08ef3a5e68", + "address": "P-avax1f0p669f5yx787qsuytasc4emc8vlyrfq9p0jr0", + "decode": "4bc3ad153421bc7f021c22fb0c573bc1d9f20d20", + "params": {} + }, + { + "public": + "0211f2928ad4c5dc7ee59533dc893e388d131d0de7e0870a7e36760c9413634296", + "address": "P-avax1zjnwy33n4zl6xkyhjc48464tc70nvz2r4h2ru7", + "decode": "14a6e24633a8bfa35897962a7aeaabc79f360943", + "params": {} + }, + { + "public": + "036cfb0e31ac0b13bfc611f0fdd9d9b13427fca4264a51c4624ecad00194c247fd", + "address": "P-avax1m4kudjah7wsdnz4pfga6z6te4l67tthup5pa9x", + "decode": "dd6dc6cbb7f3a0d98aa14a3ba16979aff5e5aefc", + "params": {} + }, + { + "public": + "026279e42c6644e001e2f8f480551876fecdfb299a9f173ea8d2b349cda9c38b82", + "address": "P-avax1vp5w6l39mmhxh654pfl205j49hg2qcs9dz9cjm", + "decode": "6068ed7e25deee6bea950a7ea7d2552dd0a06205", + "params": {} + }, + { + "public": + "02a757fb3aeb9c1b23b18d75b70c4ecba84e46e0977287de72ce02c134e4dca9df", + "address": "P-avax1vqhxnwh6964ezjjz4cwp8n7rkyw4fpw4d3suep", + "decode": "602e69bafa2eab914a42ae1c13cfc3b11d5485d5", + "params": {} + }, + { + "public": + "02fb53a890664aa137100975ab92b3bf449bd220782d1e27c01fecdbcf93405b7a", + "address": "P-avax1zxpwgl743ajy4dzdtj2kapz34jhp05hweu7ajd", + "decode": "1182e47fd58f644ab44d5c956e8451acae17d2ee", + "params": {} + }, + { + "public": + "02e6bad24ac4ba6a7e05316652e94d26957cae9ed52d203be4ef572cf52f6aaf2d", + "address": "P-avax1hpsdlrkyzwjcd3rue0mxd7d2l9c4enudfrdqhd", + "decode": "b860df8ec413a586c47ccbf666f9aaf9715ccf8d", + "params": {} + }, + { + "public": + "021370937c6f62993fefe00a60ec3b25fe26d7a5374ca800135380346d2ef2c7b6", + "address": "P-avax1caza48gy6jt58phhq2e6aljy8ue0wvv2tvm28z", + "decode": "c745da9d04d4974386f702b3aefe443f32f7318a", + "params": {} + }, + { + "public": + "021f91522ae7020181d69d5c021716b27ce148b19acb76b01a5e7da191545600b2", + "address": "P-avax16n4srm2nqety3fpw7khdp32e24xtdwsax0hgq5", + "decode": "d4eb01ed53065648a42ef5aed0c559554cb6ba1d", + "params": {} + }, + { + "public": + "02a9bc0e2e771a1bdd60eec8765ed27e366f049b527ed2e24b86677fc918cc2734", + "address": "P-avax1l5e27ccgkf9f0elusyx4ev8jsgptqu393pk0ss", + "decode": "fd32af6308b24a97e7fc810d5cb0f28202b07225", + "params": {} + }, + { + "public": + "0200bac563b13ce359f9e6d9475f3d1b05ae2b40152d1417e72826b2c6cd5b4dec", + "address": "P-avax1x2qc05my4939ckvheha23scax8sgkuu0l0hrty", + "decode": "328187d364a9625c5997cdfaa8c31d31e08b738f", + "params": {} + }, + { + "public": + "033c8d4a7c1d9370915014c2b3d7f29aac562bb6f45fdf5a9635172eb362cb1a59", + "address": "P-avax1l59dryljhwlsrl4f6jqlak8pdh8yulfpjzr8qf", + "decode": "fd0ad193f2bbbf01fea9d481fed8e16dce4e7d21", + "params": {} + }, + { + "public": + "020e6e13e282ca0e03ba436427d963ea55fcf2a28af2e3987008c68ad7336644f7", + "address": "P-avax1z22q054l2jq8u2zl0uzyjcxsa9yz6d3e6zs7ah", + "decode": "129407d2bf54807e285f7f044960d0e9482d3639", + "params": {} + }, + { + "public": + "02b5409b57d9c61dce7622a26f175a94e7d4fdbbfbd8297207d892722edda1242d", + "address": "P-avax16kx6lepcmtduufucjd9l93t428mvnvacx4nf6w", + "decode": "d58dafe438dadbce2798934bf2c57551f6c9b3b8", + "params": {} + }, + { + "public": + "02b356a1d108fa15809d480686e8c4a4c413ecf85c06e9539faadc314a08d724b1", + "address": "P-avax16yjc44kgau24wemwadd2dwwfethgy6mu82tqgy", + "decode": "d1258ad6c8ef1557676eeb5aa6b9c9caee826b7c", + "params": {} + }, + { + "public": + "023bbb5010846ae4fa5ac8495b1d3ce53c18f5085e3ce4680df4d5f1fc65f30615", + "address": "P-avax1nr2x0pgemfzgzhkmuv606lh3x3s9xa22d59nw9", + "decode": "98d4678519da44815edbe334fd7ef1346053754a", + "params": {} + }, + { + "public": + "039c77f2c1edfe0a29a18b965d5ab5579937a890da0918018f71b32ae6050781f9", + "address": "P-avax1pucwzkajs968kssu4t2y6wxa3x7y56f9e878we", + "decode": "0f30e15bb281747b421caad44d38dd89bc4a6925", + "params": {} + }, + { + "public": + "02c51f5717bd0e0c619f3a562df0efa771d8992b0b8e74e74127c0f13b0ab0b6ef", + "address": "P-avax1usfmram00qnrq33vd28suv42zpcv0dv2d3yraw", + "decode": "e413b1f76f782630462c6a8f0e32aa1070c7b58a", + "params": {} + } +]; diff --git a/example/lib/test/address/avax/test_x_vector.dart b/example/lib/test/address/avax/test_x_vector.dart new file mode 100644 index 0000000..a0d5fe0 --- /dev/null +++ b/example/lib/test/address/avax/test_x_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "027d80103e31c010ea0f3e6779a6dccb90b4d47e3a6ff19d9db496164fc3c44047", + "address": "X-avax1yqd9uxve4h4myx0ageuz6afh0sszl2elgdfqr5", + "decode": "201a5e1999adebb219fd46782d75377c202fab3f", + "params": {} + }, + { + "public": + "0202d9ca232cff17d485b88fb13d9d127b22450bca7758a68df5c49b3835bdee49", + "address": "X-avax1vax0zz3h0yey4wh5ylu9n6t9gqyfuav06gauwu", + "decode": "674cf10a3779324abaf427f859e96540089e758f", + "params": {} + }, + { + "public": + "02081aa885fa5e3041356f6cc48e3eddd09469806ab29800c72b89b71c5838ab3a", + "address": "X-avax1qm6p2n7q9dr596cwppdwp56jrqtf837jeh57m9", + "decode": "06f4154fc02b4742eb0e085ae0d352181693c7d2", + "params": {} + }, + { + "public": + "02cfa04f12ee5b3108bd1e1d61c06cc4aaedf3901c1200c6482c536e01a640b37b", + "address": "X-avax1mq76vw6dpny3t2cufqm3rr8fp8z0fkh5f53dkn", + "decode": "d83da63b4d0cc915ab1c4837118ce909c4f4daf4", + "params": {} + }, + { + "public": + "0258720104997d800aac8b66f1df99688fbad1327db3531061753f8124dfa454b5", + "address": "X-avax1g70raacw3hpqjvda7dq9p3a2y8lvh8kulx25d9", + "decode": "479e3ef70e8dc20931bdf34050c7aa21fecb9edc", + "params": {} + }, + { + "public": + "0269416b0db6980fb1ed4ad492baaaf244f39054067c27e41a9ae0906df698ac18", + "address": "X-avax1dw58aelxj9t382sltpt02qnxq8taeea4ndnle2", + "decode": "6ba87ee7e6915713aa1f5856f5026601d7dce7b5", + "params": {} + }, + { + "public": + "030c51ff7353318087e628f9951748458bfa836e097fc3b85436652965b3c5d3cc", + "address": "X-avax1nmwu3m5j72lxp6j5vhukayqvm6hd8ex60ns4hy", + "decode": "9eddc8ee92f2be60ea5465f96e900cdeaed3e4da", + "params": {} + }, + { + "public": + "0334be013c13a0616cd66dcd1dfe281087484e70b93ab9c7411512aad3642fbfc1", + "address": "X-avax1ng0vukytklh0qnmw2akz6nhtqf0apcgxe5gkjr", + "decode": "9a1ece588bb7eef04f6e576c2d4eeb025fd0e106", + "params": {} + }, + { + "public": + "03ac66bfeaa099560a4f7db970f8b4f71827377bcc257416cc0e02bc70e61b215e", + "address": "X-avax13dz4q6hv2ajllmrl8sfjvk85wpnmcjt2tq8d59", + "decode": "8b45506aec5765ffec7f3c132658f47067bc496a", + "params": {} + }, + { + "public": + "021f545dcd5f9d6f37ca996d7b0e9220c46c8a5fecd4d8a8609505598b40589201", + "address": "X-avax1ysvh95tczszdf5jws9umc3tu9vqw24xl8s52q8", + "decode": "241972d1781404d4d24e8179bc457c2b00e554df", + "params": {} + }, + { + "public": + "0320b54c40884c0faa59e6ee096eb1ead6e261e83ef1b3c8ce206957b4bdb3a96c", + "address": "X-avax1duu6y9h9fypagvp9hckkcw6w3m0urrjv83sjzm", + "decode": "6f39a216e54903d43025be2d6c3b4e8edfc18e4c", + "params": {} + }, + { + "public": + "03dbb35b43444f5f2616cf31eb03cf4c712bd64dc58b574b8df6ad5f8b3f761d3e", + "address": "X-avax185fh56e3a2prtluh39fcr7q43zhmyehu0vw6j2", + "decode": "3d137a6b31ea8235ff97895381f81588afb266fc", + "params": {} + }, + { + "public": + "03576fc5ad142c6a1a84f277236fde4049025e1bbfc4a8ad12de588b4f620056e1", + "address": "X-avax16e6fmgux8sy4tj04jvwh8xvx48aec7uwqlvyje", + "decode": "d6749da3863c0955c9f5931d739986a9fb9c7b8e", + "params": {} + }, + { + "public": + "02bb374ac82c8cf73af0bec8c2fb6f9bf9ded099f65cf7ba00c26e0cade902f656", + "address": "X-avax1m47qwtr5ldgrctz2f37wppcaycwm20rmptvj8k", + "decode": "dd7c072c74fb503c2c4a4c7ce0871d261db53c7b", + "params": {} + }, + { + "public": + "02c52b8dcd4103904b023ff129ecb1c03763e93f721339c546c828940d5d060f2e", + "address": "X-avax1p45ejsvv8fzemegv86gw0qzuynqw8a2lqe07qv", + "decode": "0d6999418c3a459de50c3e90e7805c24c0e3f55f", + "params": {} + }, + { + "public": + "022f1fadebdaf887aaaa26ce0d24f46a1c027bfefbe65c40e5cd518b3e0f8598f0", + "address": "X-avax1gs2exzdcrwvg4aptldwhg6m77m9xlh2dxl2jaq", + "decode": "44159309b81b988af42bfb5d746b7ef6ca6fdd4d", + "params": {} + }, + { + "public": + "028e8161eea25c5db3335a5b792af5617ea4dbc7c189488d81fda219ca22d16532", + "address": "X-avax1tt47s9s5948ks59t2x6pamzprnr5ncdcudmegv", + "decode": "5aebe816142d4f6850ab51b41eec411cc749e1b8", + "params": {} + }, + { + "public": + "034ae015aa71e18edae30652c77bf926e9f463b2d2ca9d90046465fa555af38c12", + "address": "X-avax1cl2xkvyym769c9vyxtpwmg0skza74prn663k5a", + "decode": "c7d46b3084dfb45c158432c2eda1f0b0bbea8473", + "params": {} + }, + { + "public": + "0237a94c25eb04c8e811bfabedba718ecf184dc121c9403ed55f98ee56e1d0b51c", + "address": "X-avax1j0ykkezxhjljg0rjflsuxdg9g2n2zenrr7vfpf", + "decode": "93c96b6446bcbf243c724fe1c3350542a6a16663", + "params": {} + }, + { + "public": + "02626358dab161b7f3901307579268314678945649c47c1f51d5b054cade421fde", + "address": "X-avax168wwq7jufq0qrk95xk6mj8ez2tz43z773uel89", + "decode": "d1dce07a5c481e01d8b435b5b91f2252c5588bde", + "params": {} + }, + { + "public": + "03d2f0d055559f2e27db1e05e7688f739928c74fd39261b342085474f87a4cf9fb", + "address": "X-avax1rl3ge3dmtkkfd0ad4rz89jqjunxwa9y0d7p52r", + "decode": "1fe28cc5bb5dac96bfada8c472c812e4ccee948f", + "params": {} + }, + { + "public": + "027422afe7630de6394f7b48f0908aac9f4cd8f87d89172a379e3f3f709d7973a8", + "address": "X-avax1tqr909rz2ayu8rp6lhlnt479cs2rd47c7ymdyu", + "decode": "58065794625749c38c3afdff35d7c5c41436d7d8", + "params": {} + }, + { + "public": + "0321fcda33dfe5546e8a01f904bffc30203b94c949310d75251d2a4ebe98e4a6df", + "address": "X-avax14ctvrp2wr0h4fajcp9yv9qk6u7pqmx6ppvcwz6", + "decode": "ae16c1854e1bef54f6580948c282dae7820d9b41", + "params": {} + }, + { + "public": + "0335a9fd2ab4b529cb96870ce66ad98f6965635f4f0df8f16b2c605643db397987", + "address": "X-avax1tgj5mkym2k36pzx9chztc3jhj9484wjvmm9ax7", + "decode": "5a254dd89b55a3a088c5c5c4bc4657916a7aba4c", + "params": {} + }, + { + "public": + "02408e74f6552345d93a62de7287411b3d7c4964ad881cab57f73be4f84deab673", + "address": "X-avax1sty2k339yus6jakp5nghm5aart8ksz0pq9464n", + "decode": "82c8ab46252721a976c1a4d17dd3bd1acf6809e1", + "params": {} + }, + { + "public": + "025452aecdad4f0c361de5f0ec1ce45841433b0804a7847fd5661750fbc9b909a7", + "address": "X-avax1thagh3evnysjkn6f9y8zwy5x25syu50afn6yeg", + "decode": "5dfa8bc72c99212b4f49290e27128655204e51fd", + "params": {} + }, + { + "public": + "03b38b26081f1c9e12645eadecee10b6a4661e227498932cf04535341dbfd55f3b", + "address": "X-avax1h97cg4j2sy6r32cmt8xhvgnclzvkxwwuklk8nv", + "decode": "b97d84564a813438ab1b59cd762278f8996339dc", + "params": {} + }, + { + "public": + "03c6af3c0e9591ce6cbb8725ad7fc8ae3dee08205d02591340a6d50f110eec32e6", + "address": "X-avax1y9tjwstz6a6wrgkvr889v5jqk3z6ekl4mxlv34", + "decode": "2157274162d774e1a2cc19ce565240b445acdbf5", + "params": {} + }, + { + "public": + "024b9c0f9bace4c0da4cf3dad2d59a1f525f38e2c9a11a201e4c57b5fedeeb38f0", + "address": "X-avax1ucrvqhq4mc8kg66xu560hlmp9wz9y4zxna6g2n", + "decode": "e606c05c15de0f646b46e534fbff612b84525446", + "params": {} + }, + { + "public": + "02e1097ea220b913a7302c96710a6e82b4714b3d8f1d4ab763a88ecd25e5149f10", + "address": "X-avax1zlmscefauyu5gmq92g9m4zpx90wazejsg7wgsh", + "decode": "17f70c653de139446c05520bba88262bddd16650", + "params": {} + }, + { + "public": + "0393e8928fe6fcf588e5b8eeb6f8a2b5875c13fc2bdd66d1bf94fe7dee0562805e", + "address": "X-avax13yqffe30jj8rh37rnpqrcfgwx7t9en4pk0u22q", + "decode": "890094e62f948e3bc7c398403c250e37965ccea1", + "params": {} + }, + { + "public": + "0227545239e112a6e6a829193e3b4ba8f17adc5b0846bbe45620dc87c691516a62", + "address": "X-avax1u934nn2prauktxd946c6sum08t5faykpxxl336", + "decode": "e16359cd411f796599a5aeb1a8736f3ae89e92c1", + "params": {} + }, + { + "public": + "03944395f383d8a3cf62c15bb923563eddc3e42d97c1df30dece48e258405ed40e", + "address": "X-avax1atd944mhe4n5q64qazz97rshpn5t6stfj8pez7", + "decode": "eada5ad777cd67406aa0e8845f0e170ce8bd4169", + "params": {} + }, + { + "public": + "03ceb268faa727d2f7fa661f078df4e0bf650b95e4eb49cc4b1abdfe6d568b99c2", + "address": "X-avax189tjv90sykfhltk6d24matzdklg6qpp9hve837", + "decode": "39572615f025937faeda6aabbeac4db7d1a00425", + "params": {} + }, + { + "public": + "02e854d331a9213a0cb03b1a5ff924f07c8c605d00b732ca3ac16ef7260950cd6a", + "address": "X-avax1rs66wh0cxx93l8d3m35dwww3yd3vqkzuqg4ajy", + "decode": "1c35a75df8318b1f9db1dc68d739d12362c0585c", + "params": {} + }, + { + "public": + "02aeb6c56ce1d09354534236343921b199773acd11daf2669ede06d6e251ee53cc", + "address": "X-avax1a6uqjd45dzze6qqaa73jan6uz50annw46p649y", + "decode": "eeb80936b468859d001defa32ecf5c151fd9cdd5", + "params": {} + }, + { + "public": + "02b3952f097b18637a6d0c05affafa4e46117e74a627eccd61a199fe83b622aef9", + "address": "X-avax15fxskvdgy7zhnhcqal3nzcf95xfr39jahuwdkc", + "decode": "a24d0b31a8278579df00efe3316125a19238965d", + "params": {} + }, + { + "public": + "03743302f2cab55bee7f724ef5df65561c9b0e8d18b8db559d6155bc17f8e337a2", + "address": "X-avax1l6ku3lz44nz7grmqexa2d2w0gr60c74c0tuqp8", + "decode": "feadc8fc55acc5e40f60c9baa6a9cf40f4fc7ab8", + "params": {} + }, + { + "public": + "0355b2642c92d691f1c8a7ef478a3c7229e59f2dac2ea957d7a80f772f8290f54b", + "address": "X-avax1srzn9u08h5tqd4345mklqaytncpykmhe4lp0uj", + "decode": "80c532f1e7bd1606d635a6edf0748b9e024b6ef9", + "params": {} + }, + { + "public": + "0232633f2efe8fb0853a422a04f9352491f8d5ab6bfdab3f18e52499cfb4c93419", + "address": "X-avax14lhtlvge2zpr7t6squjw3sqqvr36hnsaszmch3", + "decode": "afeebfb11950823f2f500724e8c00060e3abce1d", + "params": {} + }, + { + "public": + "024fd1284b0eda1b1994d026a164d36a5e6bce877d95874d1d85571c47556edb1f", + "address": "X-avax1fppzl6szs5h90v8h7gplspr9nwuj06rgsdd9zv", + "decode": "48422fea02852e57b0f7f203f804659bb927e868", + "params": {} + }, + { + "public": + "02920b40aa280081243e4b322f872b5ed15a901afc5d0f4115e85894b1ac959419", + "address": "X-avax1gv03d2ju3u47x5zsu92yf4udgw2cgneuv7w3kn", + "decode": "431f16aa5c8f2be35050e15444d78d4395844f3c", + "params": {} + }, + { + "public": + "028ac160f428ef8ec295390f9738a5dc6a3c253d64d1b2b662f3a754ced29e6719", + "address": "X-avax1akvdjwcx9kdapfhxr895jv2r0kcvdln8hg7wd0", + "decode": "ed98d93b062d9bd0a6e619cb4931437db0c6fe67", + "params": {} + }, + { + "public": + "029ebbff9d95dda341c3d83b56dbaf2ad105ed8176890947840208cc3c330c2e48", + "address": "X-avax1wdk3mkskdsjatuadnrf490xxfzgqh4h6jysfm0", + "decode": "736d1dda166c25d5f3ad98d352bcc648900bd6fa", + "params": {} + }, + { + "public": + "034f5b8cb566ff2c436d077a3c338d02042edcf6b4be94dda30e10878e3a033c0d", + "address": "X-avax1dsuxt8v884s2temyn33ujju5ecj8ce38d92dpv", + "decode": "6c38659d873d60a5e7649c63c94b94ce247c6627", + "params": {} + }, + { + "public": + "03c29844989750aff3a18838e4384df6e376c38a546d4e5b7b58755c96824ce340", + "address": "X-avax1s3x60y5vgumsup5pc29auqxu8udvf9dk66gc0x", + "decode": "844da7928c47370e0681c28bde00dc3f1ac495b6", + "params": {} + }, + { + "public": + "03bdb3f45382faf573ebd01195fed5b53cb21c265df6ed19b6c30c08182999ee95", + "address": "X-avax1hj0x2k8vk7eyrhmrqyj2pkr2lgsdnstqzrkgfv", + "decode": "bc9e6558ecb7b241df630124a0d86afa20d9c160", + "params": {} + }, + { + "public": + "0227447104bd27dea8b3cfbfd14b4c54c373b04165f31c26e3012aa98c1e19dbd1", + "address": "X-avax19cuz6p4u6qshkmfjgk5948h3gw9anef6eemyfu", + "decode": "2e382d06bcd0217b6d3245a85a9ef1438bd9e53a", + "params": {} + }, + { + "public": + "025b68b3bdd3cbf8960cd06dad50972930356137662128537d3a65301693cddbe0", + "address": "X-avax1psrd2m72kj567vvt25vfe2q27elh57yfm3c4as", + "decode": "0c06d56fcab4a9af318b55189ca80af67f7a7889", + "params": {} + }, + { + "public": + "0224c884d5966664893be1b828929686d1353a2abfe82e05d3535cee1d8eeeb9f5", + "address": "X-avax163dgqgs27e3t762g29g58l8akm5vg3p4ld6g8f", + "decode": "d45a80220af662bf6948515143fcfdb6e8c44435", + "params": {} + } +]; diff --git a/example/lib/test/address/bch_p2pkh/bch_p2pkh_test.dart b/example/lib/test/address/bch_p2pkh/bch_p2pkh_test.dart new file mode 100644 index 0000000..f257ba6 --- /dev/null +++ b/example/lib/test/address/bch_p2pkh/bch_p2pkh_test.dart @@ -0,0 +1,18 @@ +import 'package:blockchain_utils/bip/address/p2pkh_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void bchP2pkhTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + params["net_ver"] = BytesUtils.fromHexString(params["net_ver"]); + + final z = BchP2PKHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = BchP2PKHAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/bch_p2pkh/test_vector.dart b/example/lib/test/address/bch_p2pkh/test_vector.dart new file mode 100644 index 0000000..3d9da7f --- /dev/null +++ b/example/lib/test/address/bch_p2pkh/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "03109285de2c13e86379c3626b3b8935b3d1033bc88e294a094dfd61086501525a", + "address": "bchtest:qpf29h80q4kzprl84jmwhf9du3jsu2tvw509nqz5cy", + "decode": "52a2dcef056c208fe7acb6eba4ade4650e296c75", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03b387fdcd526c72aaa0631d2ebdc0d584da6c0d6ff7b471f2605ce65d8964482d", + "address": "bitcoincash:qp7ps3x5k2dslw25rmgk89zfpywxj4yjkvyz09t2qm", + "decode": "7c1844d4b29b0fb9541ed1639449091c695492b3", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "026fb23b09069ce156ee077df425ccecb60bd50bfc4a3be517413d2e2f9fecc54a", + "address": "bchtest:qrss79kdht7thacfzdzqsjvwnx5cx7y8wqgjasp5xe", + "decode": "e10f16cdbafcbbf709134408498e99a983788770", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03660663e4d472c22bda8e8cdf666b839d3c4bfcda1536bf011c7f35078d08e638", + "address": "bitcoincash:qqcxlm6zehp0x2uufutgle9hc6vn4y33xg5gnmdv38", + "decode": "306fef42cdc2f32b9c4f168fe4b7c6993a923132", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02509d659578ac43bca0c7b57b86b951a67ea2a1fc3f3f96fff2b9769db51cf7f0", + "address": "bchtest:qztfs92shgk45u2yjh4yjyvay3fj43l93uh9lgk8ay", + "decode": "96981550ba2d5a714495ea49119d24532ac7e58f", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "0395d1651d48838823f89e7d1195cfce8ae1b4d1f7ec5cede506ef06d42c1b032a", + "address": "bitcoincash:qpqvcm2amtjuy5z2cr7wk3vwefzhmv4c5c7zn58227", + "decode": "40cc6d5ddae5c2504ac0fceb458eca457db2b8a6", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "021d539f92ecbfed623511ebba42012edb1105d9833af03282d95b5399c76700ef", + "address": "bitcoincash:qr2n8hq8mjv36vujv6axv7rt4e0xl8quwcemxy4xla", + "decode": "d533dc07dc991d339266ba66786bae5e6f9c1c76", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "027df4e181b0c361a1681e4935a543a87c7f894b0f31a1ca5053469f5b48c07491", + "address": "bchtest:qzrwdz64xx28w038s2dcxf4shsqrzlv9hvklehtgxg", + "decode": "86e68b553194773e27829b8326b0bc00317d85bb", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "021eb6980a142391d05782deaaac06512afddf8f10f7e43beb7cbf767d2e84321e", + "address": "bchtest:qr0sdp77y9rxavhnlh4ejehxv2yt3c3s8s865smgxz", + "decode": "df0687de21466eb2f3fdeb9966e66288b8e2303c", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "0368a2de2340f78caa2cc69e01a475a2e50ded4a9d68c566b46d05e3b28006b0e1", + "address": "bitcoincash:qpgkytzkp8vhydzxmr7sdvdqz9y4ddafnchjq5w45q", + "decode": "51622c5609d9723446d8fd06b1a0114956b7a99e", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "03f82304c959359a92dc5c10522792f09fe7aeb4b6e7372d94731c6f289619f995", + "address": "bchtest:qqa8d4tqnqe4fszu9zng7c3q69vr033sryfcu8tjhu", + "decode": "3a76d560983354c05c28a68f6220d15837c63019", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03e134c7e2fdabafda2dd60885b4a124303a0cf95d4794f672e30a30632256a311", + "address": "bitcoincash:qq7g75u40phtcu0vt2xquhr9de4z2p8ctukeqfgxrx", + "decode": "3c8f5395786ebc71ec5a8c0e5c656e6a2504f85f", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "039943e825caf52429ece9abfb1c5b16bafc18a913d663ee1c60a565ed073329e2", + "address": "bitcoincash:qr5atmnyy62nd089srd8zxy2t0ehmy32ycmywc0e84", + "decode": "e9d5ee64269536bce580da71188a5bf37d922a26", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02f2d99f97f4ecb6f2d21c067d03d2d29f262a60cb719618a2667c57283644401f", + "address": "bitcoincash:qzf4dre3wlfthltxvlusufannz0k95t7xydvcs4gmy", + "decode": "93568f3177d2bbfd6667f90e27b3989f62d17e31", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "031c7aaa93102a6780d1a3a5ebf03b5d06412d4b2341b1741c4b865f9964ba7296", + "address": "bitcoincash:qqmyvnvkwmrt0h69s8w8mj6jupkdla634cnrysflxx", + "decode": "36464d9676c6b7df4581dc7dcb52e06cdff751ae", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02f66ee42b5d4464d2d619e388c2c5e3b5aa450cf670ecb4674b5cb76b1e3939dc", + "address": "bchtest:qpygv3gr8meph5w7rv5cd09lmdgw9flzns4n6mwmdv", + "decode": "488645033ef21bd1de1b2986bcbfdb50e2a7e29c", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "023c1893ddce2856fb5d92ae0d5481dc9ae30f1c34cd178103bdfe65c4aed6c7d9", + "address": "bchtest:qz92m2nqp37rwk74gezhshc90cfxfn769q8hsgjjsa", + "decode": "8aadaa600c7c375bd54645785f057e1264cfda28", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "027ad748912c9d92f8945d273875c165c2b2d8a4097ef126d34f55806104fff77b", + "address": "bchtest:qq6u5xa4k0e3kxju97luflgfpa5uqaz4du9xwcda2a", + "decode": "35ca1bb5b3f31b1a5c2fbfc4fd090f69c074556f", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "0373617fc796a481c40713d14c9d09900419d2fa00d11abb87867e3477575f2d23", + "address": "bitcoincash:qpdg3r48jdgygghyup60afjx0j7ymaxt9ygdqkm9k9", + "decode": "5a888ea793504422e4e074fea6467cbc4df4cb29", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02c57cf6e5bca5f80b5da715a50ca00816b31ccb5923b58db32958dcc80469dfca", + "address": "bitcoincash:qpg9mycp4av50hxtf7guwgdyp00a0f3rgsyqyjcwu4", + "decode": "505d9301af5947dccb4f91c721a40bdfd7a62344", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "03a048f0282291a0f722416c5212cda766e071befdd0dbe821e990d54d703cdcbe", + "address": "bitcoincash:qz2c7z3u76hvzjpc6ua0nn7n8guwpm4mecsuwfn3kt", + "decode": "958f0a3cf6aec14838d73af9cfd33a38e0eebbce", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "028a2ac0c6169730f730d274f6e3b31a8d0b7ad9388cce7898f17e33f6485c5159", + "address": "bitcoincash:qpuha3g2ll0tn0eh2v42ruz2p8v655hk85cdluerfr", + "decode": "797ec50affdeb9bf37532aa1f04a09d9aa52f63d", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02addf94dc46ac1ddcc307d0bda589b11cdb31a0e7d6c69db13df96c508e35d4ca", + "address": "bchtest:qqxqz8uc7df499anf7z7glrcq6rp09v8acgafkvjpx", + "decode": "0c011f98f3535297b34f85e47c780686179587ee", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03cdbda4f98d51b81fdf306f2830062aad759c5f330b0f8ea6036d5489142fc182", + "address": "bchtest:qp0yxyqcxar84kt306vh3jvsdad3c4eq7yl2tnfsav", + "decode": "5e43101837467ad9717e9978c9906f5b1c5720f1", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "033e4fbe9a0caeb553f80c3cb19404cd94ed843b2839b1cb284d012e94b3d1b9bb", + "address": "bchtest:qq0dzzc8uft37ssjmu0d0ykzx6rp43f08cq9f22w4a", + "decode": "1ed10b07e2571f4212df1ed792c236861ac52f3e", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03631ed6d3d8e56c58d58da09fdb515718ce18b4ac3049355a2eb85a4028762671", + "address": "bchtest:qr5cfxx6qc69jzx8fm2r4uzyx9ypfku4yuuavzu67w", + "decode": "e98498da06345908c74ed43af044314814db9527", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03af460b75705a46f5c485462089b4b48de599662906ce1efe3093dda8c965393b", + "address": "bchtest:qqn557svcy2xmr8lsg8a7chzxcj09jhf8gk66pn5uz", + "decode": "274a7a0cc1146d8cff820fdf62e23624f2cae93a", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03e0d95923b40d0d9cfd0a8ceab70fc41384d9411c982aac888fd9cd28d05444f1", + "address": "bchtest:qrhv0cw6cyl4z30j2fwq7t2nfpnn9qt56ud3755snt", + "decode": "eec7e1dac13f5145f2525c0f2d534867328174d7", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "0316b8bd5072361f8dee90f690e6e1d52e7290307c25cbfe0a135c5d4398b855d9", + "address": "bitcoincash:qrr523daz0sngjvfny5zs4ddw79e3meeauwuzkhz3v", + "decode": "c74545bd13e134498999282855ad778b98ef39ef", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02b6532f2186c40b4c7e4861ce36089a8d19261a22e9c580df2b5b117edcdae2c7", + "address": "bchtest:qzd30t50tcdg6acngcxq0qfyplg3xwkwrvrpj84r5l", + "decode": "9b17ae8f5e1a8d7713460c0781240fd1133ace1b", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03d3356e5c6aecdb4fd9896a119c656da6849bc79e282d2a20294d1f3924a07a89", + "address": "bitcoincash:qp80fvjyx86r7r9fyewsk3xtxh2sp3mlhqs6c30t2e", + "decode": "4ef4b24431f43f0ca9265d0b44cb35d500c77fb8", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "03763f99284faf3686771144e214e571e0920bcd1a1da3aea180be48aad507f1c6", + "address": "bitcoincash:qq094h6md3g5vzuzjh9wrg53esh0mc29f5frlszkxs", + "decode": "1e5adf5b6c51460b8295cae1a291cc2efde1454d", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02213e732b379a466b80f64aea2c6ad90ac6275b94adde182c20eaa6d21083799c", + "address": "bitcoincash:qqazw4e4xhzkywkdrfnerpwl7hqgg5atgy3ffv62z8", + "decode": "3a27573535c5623acd1a679185dff5c08453ab41", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "024703ff52171ca6799f4f9d0ed3119394a0567cbfc9e2029597a55b3b9816e066", + "address": "bitcoincash:qzqejrlzch7dpw4k6tf8dr53ktuqptw3uvw8tfaf8e", + "decode": "81990fe2c5fcd0bab6d2d2768e91b2f800add1e3", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "028e56650d22fda15275daa19ae3b55eb39265d9e4e4f8cdd49b29e97306cad8f2", + "address": "bchtest:qpmhjedrc2kqey2nueyvnhehxwe989vznctsynswhy", + "decode": "777965a3c2ac0c9153e648c9df3733b25395829e", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "0206a1c86f630b34760e3c90130d3aeb8b859df36f094755aae0784837a4e835c9", + "address": "bitcoincash:qrxqzwqlzqm2eygyle05ps88lz99x2gnxv539vl5pj", + "decode": "cc01381f1036ac9104fe5f40c0e7f88a53291333", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "03ec9b60926f4463453c886026af77dabfd5db3dc955fa793d32d8a525c6f6d05f", + "address": "bchtest:qqkr4r2j0vcnh0hgklfzwk8f8tnycar7ugv2v3dqdm", + "decode": "2c3a8d527b313bbee8b7d22758e93ae64c747ee2", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "030d91049b8ffd27933a23336fd89b2dbccedab9672b0ce2c499660139b2321056", + "address": "bchtest:qrjwyfrs7xn4lza05kquepk5jpm87xd7g5cfnh60r4", + "decode": "e4e22470f1a75f8bafa581cc86d490767f19be45", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03cd8f9c38c413581986f53691e02505cc5a05c7a4f33bf345b08945b4f35c6150", + "address": "bchtest:qzeyg8ve260ewag2j7yysyn0u8ac40rr0qcvacg34q", + "decode": "b2441d99569f97750a978848126fe1fb8abc6378", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "033a3e0766d38096659902f549e1e3ddbcbcbb6ef5681f9612bb6873566316d539", + "address": "bchtest:qrzrtsy43c0lc2quucz4xa3p5xwe54d8gggc9acyy6", + "decode": "c435c0958e1ffc281ce605537621a19d9a55a742", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03c76411d6212d7a1d8d9396a072b1cd6d19155850579cc8f7d1956929ec2d6d39", + "address": "bchtest:qrycx2revjjw6ley966kkflwh7hpvpyrvyst8qlryd", + "decode": "c983287964a4ed7f242eb56b27eebfae16048361", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03b7c1fa9d3764ad4590168140b5aadbc8beea42eacfb09360cf35e8a1698a6b25", + "address": "bchtest:qzqmpg5pfc9v7a69wda76jf6pxryhtxvgsluhgdfku", + "decode": "81b0a2814e0acf7745737bed493a09864baccc44", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "037e82ba351548f0d58b3b47ad35bf1472dba73181437f965d1308e4ba3ea162c1", + "address": "bchtest:qrtca0xdd570n9fjqca3rshyv9q9825ysuuw7g9n6u", + "decode": "d78ebccd6d3cf99532063b11c2e4614053aa8487", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "02b89b386a2e179ef6373250f31bfe225584393c2bfc4cb30632b24a27702c57d6", + "address": "bitcoincash:qp46pqpcxrk8sv75mewjmryuaudph2s32vnq7h2rn4", + "decode": "6ba0803830ec7833d4de5d2d8c9cef1a1baa1153", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "03197c5651d12e35a2e630659b7d9f4038e58de288c37a4f6654bb9270ecbbe46f", + "address": "bitcoincash:qptkmdaxavulkf3x72fa0v0fu2zz24c43ye0gf42f7", + "decode": "576db7a6eb39fb2626f293d7b1e9e28425571589", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "032b5bcb9d5cc8d97dae44eba9fe32d5a4aa93132f230eb1fbc8f46018ee9b4218", + "address": "bitcoincash:qr6hachh00zymnhdu37qwnzkl9sk8d8lgqfw9de85a", + "decode": "f57ee2f77bc44dceede47c074c56f96163b4ff40", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02815d3070abc131737a3f027f62d5a13934370602be3d657d91e956a3337c338a", + "address": "bchtest:qpqn6jfu4s4vxf0qhw8lzxdmxfqu2rhd6sfdudkuwn", + "decode": "413d493cac2ac325e0bb8ff119bb3241c50eedd4", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "035487d97ddc944e941c13002371182ac9cbaa1f3e226e54d45e8475d81b7ad776", + "address": "bchtest:qrz7dqj65e74v0h4g50tq3wugnswx8dh3s247447zv", + "decode": "c5e6825aa67d563ef5451eb045dc44e0e31db78c", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "02e51c555aa26e623a398b947479d3aa665d7b245c0e762a28b810577ed2ef7405", + "address": "bchtest:qzzkjn6n7jwwqzv8f0tmmpntwg687hxukyfcsn4tal", + "decode": "85694f53f49ce009874bd7bd866b72347f5cdcb1", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "033f7a5fd0a9137048c7ad9ecd68b2e8c5c626e18b14d8b66911423492f365c863", + "address": "bchtest:qpr7enh0r0kfgu3y3j8a64dvfuwcqvv2dgzngfn62d", + "decode": "47ecceef1bec9472248c8fdd55ac4f1d80318a6a", + "params": {"hrp": "bchtest", "net_ver": "00"} + } +]; diff --git a/example/lib/test/address/bch_p2sh/bch_p2sh_test.dart b/example/lib/test/address/bch_p2sh/bch_p2sh_test.dart new file mode 100644 index 0000000..2e61b34 --- /dev/null +++ b/example/lib/test/address/bch_p2sh/bch_p2sh_test.dart @@ -0,0 +1,18 @@ +import 'package:blockchain_utils/bip/address/p2sh_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void bchP2shAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + params["net_ver"] = BytesUtils.fromHexString(params["net_ver"]); + + final z = BchP2SHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = BchP2SHAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/bch_p2sh/test_vector.dart b/example/lib/test/address/bch_p2sh/test_vector.dart new file mode 100644 index 0000000..a37f5b1 --- /dev/null +++ b/example/lib/test/address/bch_p2sh/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "037ace6824c6476b420d6375f344c04e0964e2e97d7273d12b9f19ab141eaa85a8", + "address": "bitcoincash:ppn87szlp75e3f5akyjlkkwp7qn93w5yx5mvzwlu3y", + "decode": "667f405f0fa998a69db125fb59c1f02658ba8435", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0277844c5d1cdab2a286addaa740b07e3c47f06ce9dc7f1aea627620ebe69ce7a8", + "address": "bchtest:pzq56ujqs245j5fclyyj94veuxfmy8dl8u4qqvjvpx", + "decode": "814d724082ab495138f90922d599e193b21dbf3f", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03a8cb1267d5c8af3f6ac1bfc3374b78cea8f58485a96a71fb236a52ba3837631b", + "address": "bchtest:ppr7jtgg2lsqhanzlrhjpl69wk5hlp342s7fne8cv0", + "decode": "47e92d0857e00bf662f8ef20ff4575a97f863554", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "027301674f1622008abc09e3c77de3e4430f4453903a446d5cff22626eaf02b3b1", + "address": "bitcoincash:pr429p7glnngm9y7upy30ne83ns8xgqh0q7umrqgkq", + "decode": "eaa287c8fce68d949ee04917cf278ce073201778", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "022c862216cf069c6b5a1d5e11604d83e76554aafc4582cb886e9fe5036c8b7ea6", + "address": "bitcoincash:pqrmmyt739kg52sar2vhkn2g0y2x5yxm3vj6f8ht0z", + "decode": "07bd917e896c8a2a1d1a997b4d4879146a10db8b", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "022f9e7344d01acde9fe7d0d22e0ccf4ba1a7c667f719371d9ebfd420084fad85b", + "address": "bchtest:prgku3ns5cdsca23dknjsvfq7gketpcurqsu8w9rqs", + "decode": "d16e4670a61b0c75516da7283120f22d95871c18", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03a8857149b6fd550962aa77611555fc3eb12bbcdb5a790307608eebc23c6eb2cc", + "address": "bchtest:prpv6xsadcaywys6kya708qxf9d3zmdqyquy2gzemk", + "decode": "c2cd1a1d6e3a47121ab13be79c06495b116da020", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "024e3b13325e05d94056adae5febdcf3a3ac119c79d5007c13a7483232077bfd15", + "address": "bchtest:ppjrjp2gt3gccasjgrna5ew3h0jd86e525x77xeehk", + "decode": "643905485c518c761240e7da65d1bbe4d3eb3455", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02dc59742000de4d55d4fedda0290228a6c3340e9427c4afbaa02d736d7fad3272", + "address": "bchtest:ppwwpm7dj0l5f653mshadnm4un0st9h78scrsm3hl5", + "decode": "5ce0efcd93ff44ea91dc2fd6cf75e4df0596fe3c", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "027745d3ce9677b2da51cca69a64caea8f684ddd11190418f0622fc968e2494133", + "address": "bchtest:ppg326d3wmqf8aawdj0yw7ucpw6sa8rl4qv2h5dmf6", + "decode": "511569b176c093f7ae6c9e477b980bb50e9c7fa8", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "025148ba98da6da6133128e15144e3acd4f2e76cfcf19f1c62c2912f2a52417b62", + "address": "bitcoincash:ppngxlg7xj4wjgccv02ara7afhwq2slqls4zanh4fm", + "decode": "66837d1e34aae9231863d5d1f7dd4ddc0543e0fc", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0241acdbf99a0ec15094c9dfa37bd9be4ebfb6ed691d6e9f00d06a710a8c43f68e", + "address": "bitcoincash:pqqjcuhmdgmpr82z34vpjqt0ghapf3qc5sw4cquwzf", + "decode": "012c72fb6a36119d428d5819016f45fa14c418a4", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "022e7654f45e0b803fb56d191107a097068320fb828d4f3b39c1be3747f0f4376f", + "address": "bitcoincash:pqkwh9dr5yqavjhet92ywqe0rntdstk73qapl3tw9a", + "decode": "2ceb95a3a101d64af9595447032f1cd6d82ede88", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0207061f0745b8c761fafec55ccbcf3a3afd9c5769b0459959b3148ecafe207449", + "address": "bitcoincash:pr996v0xsu5n383lwcke73ryqdr5v6yafvgdtx00v0", + "decode": "ca5d31e68729389e3f762d9f4464034746689d4b", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "03e9fa60f77be6f0581ae748dad995b9e04f095d51ff352e439d9d7323a5baa423", + "address": "bitcoincash:ppt73gz4a7kprxzh8fqu6tnt5wen5zy9wgx4ay38xd", + "decode": "57e8a055efac1198573a41cd2e6ba3b33a088572", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "025fc0257a2fe3e48c9898ce4fa1d46ac8711e1643e59893816788c08456f03795", + "address": "bchtest:ppyd497un25l27y3nnqahnmfhy9wscld5yqvzwf8df", + "decode": "48da97dc9aa9f578919cc1dbcf69b90ae863eda1", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02d7f13b7a6b9f7324baf59b344ea224690b7d2cd4157aa5659484379cdf801782", + "address": "bchtest:ppujnylr4mkmrpghc3xwxd50cg07ruv8judmmcxh79", + "decode": "792993e3aeedb18517c44ce3368fc21fe1f18797", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03cff703b7b7ad87661e68ece245e704a7c9d4a4728a2bf323521a52040c72f898", + "address": "bchtest:ppkqca5ucuswud2t4mt88v65c86ws969ggkfa6ynkx", + "decode": "6c0c769cc720ee354baed673b354c1f4e8174542", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "0271125b2594124f56bd7f31e19130f05175744b0658f6b84c6d38adc93b2129b6", + "address": "bitcoincash:prv4lwhzw7dm5h8q9wulpxg3argz5yp48u45jru9ge", + "decode": "d95fbae2779bba5ce02bb9f09911e8d02a10353f", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "03dedd0ac09e48a5dfeef0d4e5d489d265e623dac5a8514d51aff880ac6ca50245", + "address": "bchtest:pqtdpu6xzptawh5s8ml6cdzxjfwg9nwptyun67nr8c", + "decode": "16d0f3461057d75e903effac3446925c82cdc159", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02ddb29898fe1fde6c91a33d7a86b0353d0227ebf39199c672e061028b4c30a3d1", + "address": "bchtest:pqmemldll9jysj5h6vmjvxxq63unwfl925axxgpym3", + "decode": "379dfdbff964484a97d3372618c0d4793727e555", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03ba76b42de668fb5eca3d2552ea4f87c253e0e60a6965954c9b2b05f79ffba126", + "address": "bchtest:pzs4jmhh8d2nxzvv9ma2qgq5e2z7tmdhyqztftxf6f", + "decode": "a1596ef73b5533098c2efaa02014ca85e5edb720", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "0251bcb37d146e311fcab90753aab00961d2068648e44b932351f16cfe476b92fb", + "address": "bitcoincash:pr86jy09uq4crter7rw8nslw695klt38ese0d42yqw", + "decode": "cfa911e5e02b81af23f0dc79c3eed1696fae27cc", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0289205261946570c46884375aef80a7b460b79b4dbde4cf862833b753909601e9", + "address": "bitcoincash:pzssap4rz0skmw2cx4ldfefftyx2akyapu5tvw3m9t", + "decode": "a10e86a313e16db958357ed4e529590caed89d0f", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "03ca28fe954bc0026418295d7660e2b2b5a48d74c0aa20cba6a818faa085e6ba17", + "address": "bitcoincash:ppxnmjawmg88chu9k49uezpfh9zmtj6n9qnc5tqm27", + "decode": "4d3dcbaeda0e7c5f85b54bcc8829b945b5cb5328", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "02f30444d1fa463adaa2f56bf3300bfe6e5b47350c10263ab3b8c111f9806a21e4", + "address": "bchtest:pqk4e6k8609k7h8wsl7rtelje6qrwkrtmc5gj9krse", + "decode": "2d5ceac7d3cb6f5cee87fc35e7f2ce8037586bde", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "0306ace5858994dba4ea033a5e58184378fc74479e15b033b72a1aa07411ee0acc", + "address": "bchtest:pq5ke933tmlcue7nlrurfhqpgxfde4lz5unane5ve2", + "decode": "296c96315eff8e67d3f8f834dc014192dcd7e2a7", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02967b6d02ba003b17974997c833e7cfddf01d8108dfefa5dd305237deda305a03", + "address": "bitcoincash:pppc0eqwywc3rgaxf0vvq9y7ed276xhgxsvvfmxkxz", + "decode": "4387e40e23b111a3a64bd8c0149ecb55ed1ae834", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "02fde5e4269fc335bfc486f5067b68ee5e00ed682b54ac7fe91d4d08ba17c0f17f", + "address": "bchtest:pzlnnvh0gfzn3sday5l0zxnlv7q469lqcy624x3z6h", + "decode": "bf39b2ef424538c1bd253ef11a7f67815d17e0c1", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "039997b8a83e0e3a42c783c801f9b9fbcac345b6149a0e28ba0df5e3941a026b64", + "address": "bchtest:pqw8e0xyvp8gnpt0swu2z9v87z7lwz7fyvs6jppw52", + "decode": "1c7cbcc4604e89856f83b8a11587f0bdf70bc923", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02b2015dbdfabca3aa427f0228ae8e45daadbb90233d14f8de41a7182c8e91faed", + "address": "bchtest:pqxdmm8u2qrdh73cxt7t97pf5dqvcgpqkgetk7l3kg", + "decode": "0cddecfc5006dbfa3832fcb2f829a340cc2020b2", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02aac8c244db86747aea25a41c446ba822d51b494a71be39602366c12d84d52b14", + "address": "bchtest:pqar3cujmjn05kcdu2qv3dvm3g9m5tqz2qkmlqmeu4", + "decode": "3a38e392dca6fa5b0de280c8b59b8a0bba2c0250", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "0315549ca7ac094fc7b844c55aae2db7cdb061671db6133adaf0a23b107945aacb", + "address": "bitcoincash:ppz50cwxyu5xfwl9ez2jferu8gc45fe6nqj2a5et20", + "decode": "4547e1c6272864bbe5c89524e47c3a315a273a98", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "037404bea9f9699352290d469618e879bc098fdc3dcb3ccf98fb990d6a517350e6", + "address": "bitcoincash:pp6wdsvyxj4c5cnzetgsqvpdhy4lnnl6eumhr08jlr", + "decode": "74e6c18434ab8a6262cad100302db92bf9cffacf", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "02e13718715961c0b9c555a0d6142ecd006b85da2533e9becbd2d241ff4a0b1d1f", + "address": "bchtest:pr2zp774p9yef47kxh6v0qp965rhnwyrcyaur3ayu8", + "decode": "d420fbd5094994d7d635f4c78025d50779b883c1", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02a04d0f95465e223040f59c243e64e523ccafb09eabd706d296c04bce2824c6d0", + "address": "bchtest:pqj44l8xw7r7vw8y8zaxc37yrtupzx4fn5ps734y5l", + "decode": "255afce67787e638e438ba6c47c41af8111aa99d", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02acf3427afd6fb9cbc12bd325dac0be314f19a73772c9b9d9b4af195be33bc053", + "address": "bchtest:pptg2nu88z2pspdp4frdan6aphk9mkxs3c2nvugh4a", + "decode": "56854f8738941805a1aa46decf5d0dec5dd8d08e", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02c658bef0afaf19c2be3934419379301375d711ee5b7546ce3b0636408b6b7b25", + "address": "bitcoincash:przw7z09kehe0222ue7gnwstvqv4mtv8rvt5r444lv", + "decode": "c4ef09e5b66f97a94ae67c89ba0b60195dad871b", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0343436614ac7e1eea9e43186657b1f6db6ad6f48c6a1242fca7764bfa68d7825d", + "address": "bitcoincash:pzcmzvkc9xlwksw48dcqwk3nkqn8ggz9fsksp30cdj", + "decode": "b1b132d829beeb41d53b70075a33b0267420454c", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "027ea39c8bdd5d652a99e520d064babc68b949ea620808426b36dc2dfee15ec707", + "address": "bchtest:pr0yrtglrr0wva05et9t4qv6cjat6l5hryunzrrg3h", + "decode": "de41ad1f18dee675f4cacaba819ac4babd7e9719", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03be0ad04cef314d4d965fa2f42f16fd343b1de368e0e4caea97aabce8dfcac470", + "address": "bitcoincash:pzeu2zd04745e3kn2jq4g40nfsp6yh4knqc5ypt23v", + "decode": "b3c509afafab4cc6d354815455f34c03a25eb698", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0204db99c3054f53fb4cca8dbb6e149f423a8492f57f0ca8727047bc568c76a4ff", + "address": "bchtest:pq5e3ncgenl5kmy934mr83smnn3e72lr4vls594chg", + "decode": "2998cf08ccff4b6c858d7633c61b9ce39f2be3ab", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03f4fa03a62131a06c2f3df80e9b272c2d627c79d4c0b77da7ccaa63deea3a4d8c", + "address": "bitcoincash:pzssekcjvs8967qn3ggvp4qmwdjh6uzp8gz78w3m24", + "decode": "a10cdb12640e5d78138a10c0d41b73657d70413a", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "03f91a884715c1b3b76eaae97bdc58a84a00df02405d2c92fbac041a076c1ddb77", + "address": "bitcoincash:prdthutdzche4qp7klxky463rdn287kdsswte8zdy4", + "decode": "dabbf16d162f9a803eb7cd6257511b66a3facd84", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0291dfdf32791e8e21f55ecab0672d2f21b34d3a1c56c8e4f107acced3341c9c9a", + "address": "bchtest:pq2d63n2rvjwwsmfj6gavt3vjzpd3g46xgcu4tyyz5", + "decode": "14dd466a1b24e743699691d62e2c9082d8a2ba32", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03e916703fb1f0f4f9112816d687f164fb9c78eb2f9df0da803719eec3bcf50347", + "address": "bchtest:pzydhdyn0nggf90mwdqlq7l655gx3pq9agej8xyy3u", + "decode": "88dbb4937cd08495fb7341f07bfaa510688405ea", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "030f5fafdb0a6261c97c6bf83ebcedf312022652dda2873cd01119b776ad98d675", + "address": "bchtest:ppa8y54kpt4m35eyhx8esfx604cjnvjtxqrk4cdutj", + "decode": "7a7252b60aebb8d324b98f9824da7d7129b24b30", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "038ccc6ee0c086b4feca6dcfacf4af9739fce8feca7b37a153c2df42297f81f9ef", + "address": "bchtest:pqhcyucg27y3l3rq6wuzfv8s0qzk0chp9swqgsmr2x", + "decode": "2f82730857891fc460d3b824b0f0780567e2e12c", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03b2f928d447e091491f884175970403fb0e3968d31b0dba7d87ad5e385401ba3d", + "address": "bchtest:pzhlq9mqytt8cpw0sf60q4zv63e4avx8puquxlp5vp", + "decode": "aff0176022d67c05cf8274f0544cd4735eb0c70f", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "035198c765569a279c01327e50eec64db06c08094963431368adee464039f33910", + "address": "bitcoincash:pq6ylczkdxfe7lkaa53lkfs8pfm8ms8nqurzmzc22p", + "decode": "344fe05669939f7edded23fb26070a767dc0f307", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + } +]; diff --git a/example/lib/test/address/egld/egld_test.dart b/example/lib/test/address/egld/egld_test.dart new file mode 100644 index 0000000..73b15f4 --- /dev/null +++ b/example/lib/test/address/egld/egld_test.dart @@ -0,0 +1,17 @@ +import 'package:blockchain_utils/bip/address/egld_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void egldAddrTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = EgldAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = EgldAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/egld/test_vector.dart b/example/lib/test/address/egld/test_vector.dart new file mode 100644 index 0000000..9bcfeac --- /dev/null +++ b/example/lib/test/address/egld/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "cd4f76c78ecfc32b44046e4c79c38f492234431d051ad13d60013ed5839223a8", + "address": "erd1e48hd3uwelpjk3qydex8nsu0fy3rgscaq5ddz0tqqyldtqujyw5q8qr682", + "decode": + "cd4f76c78ecfc32b44046e4c79c38f492234431d051ad13d60013ed5839223a8", + "params": {} + }, + { + "public": + "23928fe823d4359ff4d002fe188fa0f58ff860114a4fe456a810ea3f9590cd0c", + "address": "erd1ywfgl6pr6s6elaxsqtlp3raq7k8lscq3ff87g44gzr4rl9vse5xq3hzawe", + "decode": + "23928fe823d4359ff4d002fe188fa0f58ff860114a4fe456a810ea3f9590cd0c", + "params": {} + }, + { + "public": + "4abcca53fd9d236600181407e5deeb72dcfe4d8eed420d12194014433dd2483a", + "address": "erd1f27v55lan53kvqqczsr7thhtwtw0unvwa4pq6ysegq2yx0wjfqaqplwr3x", + "decode": + "4abcca53fd9d236600181407e5deeb72dcfe4d8eed420d12194014433dd2483a", + "params": {} + }, + { + "public": + "966406f8cd61300367112d795195b1ed77e90c90a2df12435cbf182696b9d133", + "address": "erd1jejqd7xdvycqxec394u4r9d3a4m7jrys5t03ys6uhuvzd94e6yes7tkp0q", + "decode": + "966406f8cd61300367112d795195b1ed77e90c90a2df12435cbf182696b9d133", + "params": {} + }, + { + "public": + "9d6123d778b159d23e376120a8f9482c4be56bd0cf84e168bfd0879c5ffffc75", + "address": "erd1n4sj84mck9vay03hvys2372g9397267se7zwz69l6zrechlll36srxt4dk", + "decode": + "9d6123d778b159d23e376120a8f9482c4be56bd0cf84e168bfd0879c5ffffc75", + "params": {} + }, + { + "public": + "632d7fbf334e837e54b1d7a6a3811b5ccd55c73d4af4cfbf2da2b5cc5acc8ace", + "address": "erd1vvkhl0enf6phu49367n28qgmtnx4t3eaft6vl0ed526uckkv3t8qcz0fus", + "decode": + "632d7fbf334e837e54b1d7a6a3811b5ccd55c73d4af4cfbf2da2b5cc5acc8ace", + "params": {} + }, + { + "public": + "2fc436b956838c63722159f2d6aa1b80616b2d70af5541752fa3b6615efdba58", + "address": "erd19lzrdw2kswxxxu3pt8edd2smspskktts4a25zaf05wmxzhhahfvqk56u2c", + "decode": + "2fc436b956838c63722159f2d6aa1b80616b2d70af5541752fa3b6615efdba58", + "params": {} + }, + { + "public": + "441b8ba30913a8c34f16df2bff51b79f39ac4338030ffee8fd0e0a187dece314", + "address": "erd1gsdchgcfzw5vxnckmu4l75dhnuu6csecqv8la68apc9psl0vuv2q8vvcu0", + "decode": + "441b8ba30913a8c34f16df2bff51b79f39ac4338030ffee8fd0e0a187dece314", + "params": {} + }, + { + "public": + "e0625f9c520487863eb73d1a424bacdd5ef5d874129f9f088091713034a9e3c3", + "address": "erd1up39l8zjqjrcv04h85dyyjavm400tkr5z20e7zyqj9cnqd9fu0ps4ltx2a", + "decode": + "e0625f9c520487863eb73d1a424bacdd5ef5d874129f9f088091713034a9e3c3", + "params": {} + }, + { + "public": + "acbd5b8741c16882d6217f0e7b4da96266dd578bd1e92e49c03a493d7d150027", + "address": "erd14j74hp6pc95g943p0u88kndfvfnd64ut685jujwq8fyn6lg4qqns0nz33s", + "decode": + "acbd5b8741c16882d6217f0e7b4da96266dd578bd1e92e49c03a493d7d150027", + "params": {} + }, + { + "public": + "e6e466ab5994386b94a7b5dc0f563117835b27845137d8066174c209cc5f8a46", + "address": "erd1umjxd26ejsuxh998khwq7433z7p4kfuy2ymaspnpwnpqnnzl3frq8phgmj", + "decode": + "e6e466ab5994386b94a7b5dc0f563117835b27845137d8066174c209cc5f8a46", + "params": {} + }, + { + "public": + "f65b8df6b8babc872be002de77cba4163604a21a08f5cc399be341b993a509d1", + "address": "erd17edcma4ch27gw2lqqt080jayzcmqfgs6pr6ucwvmudqmnya9p8gs7lls2m", + "decode": + "f65b8df6b8babc872be002de77cba4163604a21a08f5cc399be341b993a509d1", + "params": {} + }, + { + "public": + "3b30fd57cc1e7384bbf4b0cf854c8399961d56bc5642c7a2c0bdc4e3bd39f6b6", + "address": "erd18vc0647vreecfwl5kr8c2nyrnxtp644u2epv0gkqhhzw80fe76mq5k6gd9", + "decode": + "3b30fd57cc1e7384bbf4b0cf854c8399961d56bc5642c7a2c0bdc4e3bd39f6b6", + "params": {} + }, + { + "public": + "cd82054a83ad6cfa03f8b768d461204f94f91d4597947b7b43b1f0ba672a6aa3", + "address": "erd1ekpq2j5r44k05qlcka5dgcfqf720j829j728k76rk8ct5ee2d23skpqfr5", + "decode": + "cd82054a83ad6cfa03f8b768d461204f94f91d4597947b7b43b1f0ba672a6aa3", + "params": {} + }, + { + "public": + "e8124fd13836ddea7742e26579940ae51760c760758fca546ddeabf208e41001", + "address": "erd1aqfyl5fcxmw75a6zufjhn9q2u5tkp3mqwk8u54rdm64lyz8yzqqsgezdau", + "decode": + "e8124fd13836ddea7742e26579940ae51760c760758fca546ddeabf208e41001", + "params": {} + }, + { + "public": + "cd75e5e6ce2d87f40741e31ad10998ad6c31415b51f7c11e08287c2296a857b4", + "address": "erd1e467tekw9krlgp6puvddzzvc44krzs2m28muz8sg9p7z994g276qfd93wz", + "decode": + "cd75e5e6ce2d87f40741e31ad10998ad6c31415b51f7c11e08287c2296a857b4", + "params": {} + }, + { + "public": + "b7bc4165208e368251e93f7c3cc743a2c77a9da2cbcc0a3afeec9596ae2da269", + "address": "erd1k77yzefq3cmgy50f8a7re36r5trh48dze0xq5wh7aj2edt3d5f5sprj0jj", + "decode": + "b7bc4165208e368251e93f7c3cc743a2c77a9da2cbcc0a3afeec9596ae2da269", + "params": {} + }, + { + "public": + "00ef1c9a1e38cbe2739475e2696639983bec7e09a2746ecce47df31019d5822a", + "address": "erd1qrh3exs78r97yuu5wh3xje3enqa7clsf5f6xan8y0he3qxw4sg4q6ftpxd", + "decode": + "00ef1c9a1e38cbe2739475e2696639983bec7e09a2746ecce47df31019d5822a", + "params": {} + }, + { + "public": + "5b8e78fc648cc22d7b77d0af9d3ff362bd51fc1c41c02e9de732741e25c76e8d", + "address": "erd1tw883lry3npz67mh6zhe60lnv274rlqug8qza808xf6pufw8d6xs6347qd", + "decode": + "5b8e78fc648cc22d7b77d0af9d3ff362bd51fc1c41c02e9de732741e25c76e8d", + "params": {} + }, + { + "public": + "ce08ebd63b44869e1c46267f8a2ca4419833ac97e2f9edc444279ca689939421", + "address": "erd1ecywh43mgjrfu8zxyelc5t9ygxvr8tyhutu7m3zyy7w2dzvnjsss3zstgv", + "decode": + "ce08ebd63b44869e1c46267f8a2ca4419833ac97e2f9edc444279ca689939421", + "params": {} + }, + { + "public": + "457220f987488b87d41fbf4ec6cb3b1a9d1ef0d519910ed21d3eacb81aee4d4d", + "address": "erd1g4ezp7v8fz9c04qlha8vdjemr2w3aux4rxgsa5sa86ktsxhwf4xskmf427", + "decode": + "457220f987488b87d41fbf4ec6cb3b1a9d1ef0d519910ed21d3eacb81aee4d4d", + "params": {} + }, + { + "public": + "ea5c9e97c9481a68945a0cdfacc3b401aca71748183f8f4e40b248cd75c139c2", + "address": "erd1afwfa97ffqdx39z6pn06esa5qxk2w96grqlc7njqkfyv6awp88pq2z9w5k", + "decode": + "ea5c9e97c9481a68945a0cdfacc3b401aca71748183f8f4e40b248cd75c139c2", + "params": {} + }, + { + "public": + "6c027a476adda4c2fa65f35a3af89323380a4d747a5feb7627f784cb74a27822", + "address": "erd1dsp853m2mkjv97n97ddr47ynyvuq5nt50f07ka3877zvka9z0q3qgeg9ry", + "decode": + "6c027a476adda4c2fa65f35a3af89323380a4d747a5feb7627f784cb74a27822", + "params": {} + }, + { + "public": + "26b032f9c40dfdcd9aab8201ea6d11ff693066f2ed98d82789d430f99be9cc48", + "address": "erd1y6cr97wyph7umx4tsgq75mg3la5nqehjakvdsfuf6sc0nxlfe3yqj0e44r", + "decode": + "26b032f9c40dfdcd9aab8201ea6d11ff693066f2ed98d82789d430f99be9cc48", + "params": {} + }, + { + "public": + "e3e2406a1d33e50c72d6bbfc2022d3e361a0607a56bf9b677ab243f1360e30d8", + "address": "erd1u03yq6sax0jscukkh07zqgknuds6qcr626lekem6kfplzdswxrvqcx3g20", + "decode": + "e3e2406a1d33e50c72d6bbfc2022d3e361a0607a56bf9b677ab243f1360e30d8", + "params": {} + }, + { + "public": + "65b3aaba230f0e3c6c8e17ba8935b96e587c2f2a8c45f1127d271838566b9e49", + "address": "erd1vke64w3rpu8rcmywz7agjddedev8cte233zlzynayuvrs4ntneysk5wge2", + "decode": + "65b3aaba230f0e3c6c8e17ba8935b96e587c2f2a8c45f1127d271838566b9e49", + "params": {} + }, + { + "public": + "473ee5fa072d43c6a798c4a9714e6d2fc8a4a0f18220aaca09807e27484adc87", + "address": "erd1gulwt7s894pudfuccj5hznnd9ly2fg83sgs24jsfsplzwjz2mjrs8xj5v6", + "decode": + "473ee5fa072d43c6a798c4a9714e6d2fc8a4a0f18220aaca09807e27484adc87", + "params": {} + }, + { + "public": + "fd31daa0559701149dea2d7b49dd4aac4355e640cddf316def624d047c04a3a2", + "address": "erd1l5ca4gz4juq3f80294a5nh2243p4tejqeh0nzm00vfxsglqy5w3qrk9ava", + "decode": + "fd31daa0559701149dea2d7b49dd4aac4355e640cddf316def624d047c04a3a2", + "params": {} + }, + { + "public": + "50d13d3dfaccac8555dda2f1257c4c2a6731663ab2dae4b104691f11b3381bad", + "address": "erd12rgn6006ejkg24wa5tcj2lzv9fnnze36ktdwfvgydy03rvecrwkstf55h3", + "decode": + "50d13d3dfaccac8555dda2f1257c4c2a6731663ab2dae4b104691f11b3381bad", + "params": {} + }, + { + "public": + "6517ba1e33422b1d9c9ffbc3fb31c52ca7c5d95eb26395adb157c60fb5403ef8", + "address": "erd1v5tm583ngg43m8yll0plkvw99jnutk27kf3ettd32lrqld2q8muqcf7r8u", + "decode": + "6517ba1e33422b1d9c9ffbc3fb31c52ca7c5d95eb26395adb157c60fb5403ef8", + "params": {} + }, + { + "public": + "b8eb01078c4f85436e27e4aad579b7e22d6bb3e150a0e2ec0f70fca8aad17ed1", + "address": "erd1hr4szpuvf7z5xm38uj4d27dhugkkhvlp2zsw9mq0wr7232k30mgsdp48q8", + "decode": + "b8eb01078c4f85436e27e4aad579b7e22d6bb3e150a0e2ec0f70fca8aad17ed1", + "params": {} + }, + { + "public": + "0ea9b593737f3f032eceebdc137624f41ba6d4d419e5cb6512516743b3a7b8de", + "address": "erd1p65mtymn0ulsxtkwa0wpxa3y7sd6d4x5r8jukegj29n58va8hr0qy7n2ms", + "decode": + "0ea9b593737f3f032eceebdc137624f41ba6d4d419e5cb6512516743b3a7b8de", + "params": {} + }, + { + "public": + "a29ba3a4a0416d92b68fe83d72170d96f295a8c443fcbc4cf8591accdbe6f837", + "address": "erd152d68f9qg9ke9d50aq7hy9cdjmeft2xyg07tcn8ctydveklxlqmspa85wz", + "decode": + "a29ba3a4a0416d92b68fe83d72170d96f295a8c443fcbc4cf8591accdbe6f837", + "params": {} + }, + { + "public": + "b603aa568a50d7e90ebefe0024e5df600beee868c8f43ac7f896e72275cefb34", + "address": "erd1kcp654522rt7jr47lcqzfewlvq97a6rger6r43lcjmnjyawwlv6q3z3x74", + "decode": + "b603aa568a50d7e90ebefe0024e5df600beee868c8f43ac7f896e72275cefb34", + "params": {} + }, + { + "public": + "945d5e5e47a5e3e7f06393aec5fd053c44fd80d42ad89d9c024937b1a6a11bc6", + "address": "erd1j3w4uhj85h370urrjwhvtlg983z0mqx59tvfm8qzfymmrf4pr0rqwnfxhq", + "decode": + "945d5e5e47a5e3e7f06393aec5fd053c44fd80d42ad89d9c024937b1a6a11bc6", + "params": {} + }, + { + "public": + "b5dab4c3e7bcd1455d32703c4eed92d3f43ca8baf01a676f69a6b3c28ce19d58", + "address": "erd1khdtfsl8hng52hfjwq7yamvj606re2967qdxwmmf56eu9r8pn4vq0tl2wf", + "decode": + "b5dab4c3e7bcd1455d32703c4eed92d3f43ca8baf01a676f69a6b3c28ce19d58", + "params": {} + }, + { + "public": + "fc18d39001db178561ecd42680924fc8017a96343ce53618b105022e4c6028f6", + "address": "erd1lsvd8yqpmvtc2c0v6sngpyj0eqqh49358njnvx93q5pzunrq9rmqa3mhdf", + "decode": + "fc18d39001db178561ecd42680924fc8017a96343ce53618b105022e4c6028f6", + "params": {} + }, + { + "public": + "4184aa80a66f836a03b2a519c468edf583dd21b1e08d7e95bee3c84f2192195c", + "address": "erd1gxz24q9xd7pk5qaj55vug68d7kpa6gd3uzxha9d7u0yy7gvjr9wqsmcxzl", + "decode": + "4184aa80a66f836a03b2a519c468edf583dd21b1e08d7e95bee3c84f2192195c", + "params": {} + }, + { + "public": + "4fe363204fabf7d479811b6f08f3e4bbd6769e1038e9ad2073e53ad3380cce28", + "address": "erd1fl3kxgz040mag7vprdhs3ulyh0t8d8ss8r566grnu5adxwqvec5qn3d78v", + "decode": + "4fe363204fabf7d479811b6f08f3e4bbd6769e1038e9ad2073e53ad3380cce28", + "params": {} + }, + { + "public": + "9415f020073dccefed105ae88e5c584c1abb1a4cab9e34ce8a51f5b422886676", + "address": "erd1js2lqgq88hxwlmgstt5guhzcfsdtkxjv4w0rfn52286mgg5gvemqgwxjw2", + "decode": + "9415f020073dccefed105ae88e5c584c1abb1a4cab9e34ce8a51f5b422886676", + "params": {} + }, + { + "public": + "1757a3c9f8084ec6ce48403fb8ec81f3c60914060c6d4b634740d69eea9a0706", + "address": "erd1zat68j0cpp8vdnjggqlm3myp70rqj9qxp3k5kc68grtfa656qurqkpa6nm", + "decode": + "1757a3c9f8084ec6ce48403fb8ec81f3c60914060c6d4b634740d69eea9a0706", + "params": {} + }, + { + "public": + "aeb5fa35581b6e75047910e9653cc14f59d915a4415ef1bb8d80b11954caa6a8", + "address": "erd1466l5d2crdh82prezr5k20xpfavaj9dyg900rwudszc3j4x2565q49uesu", + "decode": + "aeb5fa35581b6e75047910e9653cc14f59d915a4415ef1bb8d80b11954caa6a8", + "params": {} + }, + { + "public": + "6f5e7d823921857a3fefe07a75b5a1f49d4bdac919dbc15f2fe497b32fccf3d3", + "address": "erd1da08mq3eyxzh50l0upa8tddp7jw5hkkfr8duzhe0ujtmxt7v70fsyadtnc", + "decode": + "6f5e7d823921857a3fefe07a75b5a1f49d4bdac919dbc15f2fe497b32fccf3d3", + "params": {} + }, + { + "public": + "5e8f63f52b90ea16977b591a30e50aeaedba45b2891486bf11b1ab1cfb1a9cf6", + "address": "erd1t68k8aftjr4pd9mmtydrpeg2atkm53dj3y2gd0c3kx43e7c6nnmq87fsvf", + "decode": + "5e8f63f52b90ea16977b591a30e50aeaedba45b2891486bf11b1ab1cfb1a9cf6", + "params": {} + }, + { + "public": + "15d3c8e08b61023b6ad1371c6ac9d59f98839668a0a42574aaa4470db77bfc91", + "address": "erd1zhfu3cytvyprk6k3xuwx4jw4n7vg89ng5zjz2a9253rsmdmmljgsgjdx5h", + "decode": + "15d3c8e08b61023b6ad1371c6ac9d59f98839668a0a42574aaa4470db77bfc91", + "params": {} + }, + { + "public": + "b1592d958263a8c2487f9cd1baeae42d886981bbf828692703136e28b244bbd5", + "address": "erd1k9vjm9vzvw5vyjrlnngm46hy9kyxnqdmlq5xjfcrzdhz3vjyh02sm3zy50", + "decode": + "b1592d958263a8c2487f9cd1baeae42d886981bbf828692703136e28b244bbd5", + "params": {} + }, + { + "public": + "43f93ea654a2b174860be6d966ba884dbbe5a81d7fc34988582b4c5e1832d759", + "address": "erd1g0unafj552chfpstumvkdw5gfka7t2qa0lp5nzzc9dx9uxpj6avsdvldqa", + "decode": + "43f93ea654a2b174860be6d966ba884dbbe5a81d7fc34988582b4c5e1832d759", + "params": {} + }, + { + "public": + "4a3a13496c420b6fc92e4748a4ffa85b28e4c3a1d00ba7372718ae9c7d5493fa", + "address": "erd1fgapxjtvgg9kljfwgay2flagtv5wfsap6q96wde8rzhfcl25j0aqzmwhgg", + "decode": + "4a3a13496c420b6fc92e4748a4ffa85b28e4c3a1d00ba7372718ae9c7d5493fa", + "params": {} + }, + { + "public": + "aa5ca6c08bff4355836b9cf0c4381bb75605dfe0de5319b92467831c5a775ed5", + "address": "erd14fw2dsytlap4tqmtnncvgwqmkatqthlqmef3nwfyv7p3cknhtm2srv3es0", + "decode": + "aa5ca6c08bff4355836b9cf0c4381bb75605dfe0de5319b92467831c5a775ed5", + "params": {} + }, + { + "public": + "d4295fd901367db10bdf20e2d2ae5abf50b7b09affe5b410cdec58eb4dae3dff", + "address": "erd16s54lkgpxe7mzz7lyr3d9tj6hagt0vy6lljmgyxda3vwkndw8hlsjqy223", + "decode": + "d4295fd901367db10bdf20e2d2ae5abf50b7b09affe5b410cdec58eb4dae3dff", + "params": {} + } +]; diff --git a/example/lib/test/address/eos/eos_test.dart b/example/lib/test/address/eos/eos_test.dart new file mode 100644 index 0000000..385bfb3 --- /dev/null +++ b/example/lib/test/address/eos/eos_test.dart @@ -0,0 +1,17 @@ +import 'package:blockchain_utils/bip/address/eos_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void eosAddrTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = EosAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = EosAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/eos/test_vector.dart b/example/lib/test/address/eos/test_vector.dart new file mode 100644 index 0000000..380abe1 --- /dev/null +++ b/example/lib/test/address/eos/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "03d3ed3f3a267b1b73f7bbe4f7b6ce6f2f5660f5f3887175d5d5834a2dd0a7de68", + "address": "EOS8SZuz6wVaz2f6TtpWpd7HbK9s9XTwXu4C1NCwUvVyH1PyeHRwd", + "decode": + "03d3ed3f3a267b1b73f7bbe4f7b6ce6f2f5660f5f3887175d5d5834a2dd0a7de68", + "params": {} + }, + { + "public": + "0259b1047c07e50fc37294eda4596e2a16c6ab036accf8a52446d87d8077d61179", + "address": "EOS5ZzQGXAH9e9ZSGtjQtvBU6fJwHx5gyFTaAJtKMkvhrbCw4rxqs", + "decode": + "0259b1047c07e50fc37294eda4596e2a16c6ab036accf8a52446d87d8077d61179", + "params": {} + }, + { + "public": + "03524a0a7ee08de55870d0593b02b35a1465459399925f87721383ffbe1d8213d9", + "address": "EOS7TUVprVpShZ1np3pckNtbsouwwqMbA45d2oQ4mxjsBFn2K1h2C", + "decode": + "03524a0a7ee08de55870d0593b02b35a1465459399925f87721383ffbe1d8213d9", + "params": {} + }, + { + "public": + "033da66782519366f84a70ad3c9344bee817dbec3262e46f657eb96bf5b892c516", + "address": "EOS7JPJBL9BUF5Sq22XKVh3PBwb94YyjeUdh3rrEDSj6s4R4mbGnh", + "decode": + "033da66782519366f84a70ad3c9344bee817dbec3262e46f657eb96bf5b892c516", + "params": {} + }, + { + "public": + "03f9477067547ea51d2c49d04510d9b6e2dffe5cb1d85b14afb0e5ff0a03623a8d", + "address": "EOS8j22dxLQmsqAzoEeHTbkaLPmQen3AMDr9KXeMWJfN8QCjpq7PL", + "decode": + "03f9477067547ea51d2c49d04510d9b6e2dffe5cb1d85b14afb0e5ff0a03623a8d", + "params": {} + }, + { + "public": + "038f2d6c17e1e52d0fcead511fadc5eabb3b6380ca651e428e1021c9a81ac4244b", + "address": "EOS7vHofTbCdkJg3ceZ9ghfGH8697WK43zX3NBs6gMPFQHUAMdqLC", + "decode": + "038f2d6c17e1e52d0fcead511fadc5eabb3b6380ca651e428e1021c9a81ac4244b", + "params": {} + }, + { + "public": + "03053615dc54b3b0dc3e5c7144c9b6a6cc9ad6b8697791fa4012ea7aa055b14168", + "address": "EOS6sXeMxNYe4dbpxFXKwXjd5ZLgxprTLMds8p8JRofLfLPNesnwp", + "decode": + "03053615dc54b3b0dc3e5c7144c9b6a6cc9ad6b8697791fa4012ea7aa055b14168", + "params": {} + }, + { + "public": + "03fd7e2f3cf9bbe89f2baac05c39a08dc3ac18ea70977445e8c7f850b09c43fc41", + "address": "EOS8ksfbFYbvBytwxGCmbBWufL16aZmoQiDFk3gqqZJ4SALmSLULz", + "decode": + "03fd7e2f3cf9bbe89f2baac05c39a08dc3ac18ea70977445e8c7f850b09c43fc41", + "params": {} + }, + { + "public": + "021bac95c8115d8979885c66edd4a18bacef083d373fe3a74304598123ed8b8236", + "address": "EOS56gFd6jc3SRv6cQyRCJKxywiEbfMSVfb1Rfke2sriNB9L1JLGL", + "decode": + "021bac95c8115d8979885c66edd4a18bacef083d373fe3a74304598123ed8b8236", + "params": {} + }, + { + "public": + "0272684e398ed57abbcaf7ea4232b3f17ab737f44fe28e34c13455a41be8592a64", + "address": "EOS5ksjmgPUZ8XmJ58vZGeuZvghpb9AjrxNeGZeiB9wUuPwHGPB8W", + "decode": + "0272684e398ed57abbcaf7ea4232b3f17ab737f44fe28e34c13455a41be8592a64", + "params": {} + }, + { + "public": + "02ea2a8d404e379c7225c4cc5d0ddac2e299b30cff578fe5bd9eac734159f0c060", + "address": "EOS6fcpFE2K87fHjbaiGLnYGvQDxRhMQbFrAWBUBBAQkYn3j1FAsM", + "decode": + "02ea2a8d404e379c7225c4cc5d0ddac2e299b30cff578fe5bd9eac734159f0c060", + "params": {} + }, + { + "public": + "03f64308980a76e5088b21250119583a330259e94d17edcd7ec1eb594e07500e70", + "address": "EOS8hgxYcGwaBzgwworVZebh8DcPeyZPgPsHRdXGdWxRA9crCY9Yv", + "decode": + "03f64308980a76e5088b21250119583a330259e94d17edcd7ec1eb594e07500e70", + "params": {} + }, + { + "public": + "02795257c448f1971e8e223d50656fd36c2aa876df0a9e312e6380deb038aa3408", + "address": "EOS5ovMPjYgrX6vksJ6A8x37Btkxo3Fn7wBM6sgLgw1fy2xL2ogug", + "decode": + "02795257c448f1971e8e223d50656fd36c2aa876df0a9e312e6380deb038aa3408", + "params": {} + }, + { + "public": + "02c87719daa0ee38d1222173e79fd3a52f52579ac4ae3cd799501c0148f203daab", + "address": "EOS6QmyAJNH4mm4xQeij3gUq8CQao3xeq1r9ZZGyJkcf8iGBgYxss", + "decode": + "02c87719daa0ee38d1222173e79fd3a52f52579ac4ae3cd799501c0148f203daab", + "params": {} + }, + { + "public": + "020c801cd90b59a28c209315009da3a8c3f3c1e964829d133007c88abe9bea298d", + "address": "EOS4yzfGY2kqMtbPSLUQ36at3q7TGgx5izNh8xGM9HjBLFTwtwq3B", + "decode": + "020c801cd90b59a28c209315009da3a8c3f3c1e964829d133007c88abe9bea298d", + "params": {} + }, + { + "public": + "025e11e4ab97be59320d43548d58e70057f35c031e883c6e9827fc74e3e0610f2a", + "address": "EOS5bvF3FX1pKR4AWZaKhTuPva6gbXKDjBAtjtpiGMfHUka3trs7F", + "decode": + "025e11e4ab97be59320d43548d58e70057f35c031e883c6e9827fc74e3e0610f2a", + "params": {} + }, + { + "public": + "0378f6686580ee5cefce063541c4fd6f69654b2b13c4da1b50a110500c149b95ef", + "address": "EOS7kWMaJTSMqdTRjSBghuvqQC5CNyKg5Hz7qqUaBLevaKk6v3Tew", + "decode": + "0378f6686580ee5cefce063541c4fd6f69654b2b13c4da1b50a110500c149b95ef", + "params": {} + }, + { + "public": + "03354192ab13ef546d21b8e43e998b1cc9a1918d83b7592239e8863aee071df438", + "address": "EOS7EgtPNprutpTZcaqWj42LM7aQnoQXtkSdyzGcFYbUSzxVi1mMb", + "decode": + "03354192ab13ef546d21b8e43e998b1cc9a1918d83b7592239e8863aee071df438", + "params": {} + }, + { + "public": + "02cc15a69fe16323a465df6ff689f73cd075976f32cc63a85c369da44f47f7b77b", + "address": "EOS6SNRKh2MDte83zKZZ4sUqMD3CKjb1bQvHTQRCm2DoAxmaBpM5L", + "decode": + "02cc15a69fe16323a465df6ff689f73cd075976f32cc63a85c369da44f47f7b77b", + "params": {} + }, + { + "public": + "03e435b79950722d6e7161021ae1875900f46c26a097206a6d4c07481e24bf5d0f", + "address": "EOS8ZjquGKTHXJNHshdjcgMnUDokPiBTUADgsfUtZgoxaYB3ETTP6", + "decode": + "03e435b79950722d6e7161021ae1875900f46c26a097206a6d4c07481e24bf5d0f", + "params": {} + }, + { + "public": + "03654767a3d2a929ee476e9e146fb5f78a3ff31e7d48593fa4b4b993562f41a3c5", + "address": "EOS7bqZgSREfZ7eGqwD914VnggV9GUEqYcBHQFjzFAZVRCjYARJWw", + "decode": + "03654767a3d2a929ee476e9e146fb5f78a3ff31e7d48593fa4b4b993562f41a3c5", + "params": {} + }, + { + "public": + "027b1f6c6e4a22b0381fa515437a8057f69458f6072501276d79faf3224d25a314", + "address": "EOS5piMmvAhdqAv2mHLfaLrABCnC3KAYweAf2a4zT31XpRSip8dzH", + "decode": + "027b1f6c6e4a22b0381fa515437a8057f69458f6072501276d79faf3224d25a314", + "params": {} + }, + { + "public": + "028949acf820b1320db2952a4019ae303055e2bfddd8dba54587e3c005cfd41d82", + "address": "EOS5vxBkMSgCAQaBhhsUUVrr6yZvNr9pQt2wLLBDkENwqBqCUR5kf", + "decode": + "028949acf820b1320db2952a4019ae303055e2bfddd8dba54587e3c005cfd41d82", + "params": {} + }, + { + "public": + "02823ebcfaa1cec626718801255b42b9b6c47b2b0d9068300e1ca0216f08c8a6f7", + "address": "EOS5srHj2uWypBdvsox4uAWJeXRmaM5ue93MDAiHZygJ86SEM7iTa", + "decode": + "02823ebcfaa1cec626718801255b42b9b6c47b2b0d9068300e1ca0216f08c8a6f7", + "params": {} + }, + { + "public": + "039dce5f05fabe35036a29136081b31187ad957dfc223667b5447519c27f7d84e1", + "address": "EOS82jUZdg2WG2EUb3yQp9FJYfCF8nDYVCU1aYRZEFhWQBRiJyQ9C", + "decode": + "039dce5f05fabe35036a29136081b31187ad957dfc223667b5447519c27f7d84e1", + "params": {} + }, + { + "public": + "0349e088721b65291fac8035bdf591c85af347d48d975a4440295c7774e280629a", + "address": "EOS7Pmcy9xmNQRa38tfjuVCtPBbAaMGpu6SuMp9wd5KsbfYqaZ92k", + "decode": + "0349e088721b65291fac8035bdf591c85af347d48d975a4440295c7774e280629a", + "params": {} + }, + { + "public": + "03f4a2c32fe5722e50a135d51937bd6acc7602734a6d6841ab3d9dfcb99b64982e", + "address": "EOS8gyRVCWE5v6VGJnVzupCgHHuZBZ7zEndLjJ8kmChU9QMEJgK9a", + "decode": + "03f4a2c32fe5722e50a135d51937bd6acc7602734a6d6841ab3d9dfcb99b64982e", + "params": {} + }, + { + "public": + "031420f5b4cf4c6c46a979e87d78b92c6c0f0fa7b8fb30f777bca602694171a412", + "address": "EOS6z6h5vFYacgh6hiyQBJNeetyAUe6pjHSGsVKu7y8v1YCNdKKNB", + "decode": + "031420f5b4cf4c6c46a979e87d78b92c6c0f0fa7b8fb30f777bca602694171a412", + "params": {} + }, + { + "public": + "02622296eaa35857b413e8e6d8d98a13b9002f6f8c430239b0b5eee640667c59d6", + "address": "EOS5di5nybQ8NnsH1B14WgwErSPQf4PZdfAYGSjNhnMrTadinhAT9", + "decode": + "02622296eaa35857b413e8e6d8d98a13b9002f6f8c430239b0b5eee640667c59d6", + "params": {} + }, + { + "public": + "02a5b37b88c6f299fb20c1944c87dfab97436ec95242103a312fdc29bddfd18e5f", + "address": "EOS69TxygEYykRaDLvmijcHRPbBUUUZE4eGBRimroGMVPVAvZSkXs", + "decode": + "02a5b37b88c6f299fb20c1944c87dfab97436ec95242103a312fdc29bddfd18e5f", + "params": {} + }, + { + "public": + "035bb9c9da82735dcf810709cb02019feb52239d90493c01039a46c1f0d0dfb13d", + "address": "EOS7XdYKm6ysrjC4pGwGuEM6RnWHAKxhxjP3dJKMhaXmcB2e8B4yb", + "decode": + "035bb9c9da82735dcf810709cb02019feb52239d90493c01039a46c1f0d0dfb13d", + "params": {} + }, + { + "public": + "029c6d5ee0a6c6f0f4ebfd72487a83923f93b04e37dd54c3e10e09dd3f9ffd34a7", + "address": "EOS65P5S9JpU2UveQSnHZ1Gm2ATmT4gcmXHEqaw41LXdEwrdVfQbz", + "decode": + "029c6d5ee0a6c6f0f4ebfd72487a83923f93b04e37dd54c3e10e09dd3f9ffd34a7", + "params": {} + }, + { + "public": + "0288521fc00321211c149167958c2f0ac2c531f2c1601322066627edec30ce6b98", + "address": "EOS5vXV7GBBTSQwknU675FKqDujwivGzgdFkmxsTTQbfaKAznkNpA", + "decode": + "0288521fc00321211c149167958c2f0ac2c531f2c1601322066627edec30ce6b98", + "params": {} + }, + { + "public": + "03c3735669cde2fcfcaaeeccdd17386ae069b029f721e7bb07ac47cd537bbef2ae", + "address": "EOS8KK3xBun81RCGUWbuvCaC1ELtRPwKbYyRG7e7wRa9HqHjMZku1", + "decode": + "03c3735669cde2fcfcaaeeccdd17386ae069b029f721e7bb07ac47cd537bbef2ae", + "params": {} + }, + { + "public": + "026b4fe7dfc5a3b9aac4d49b81674e81065c404bc48a58ab5891e6bfd1d4c976c1", + "address": "EOS5hkVqbRaADPNqSCtB5mMKHipqZgV62db48LLLn1LS6aNzq4X66", + "decode": + "026b4fe7dfc5a3b9aac4d49b81674e81065c404bc48a58ab5891e6bfd1d4c976c1", + "params": {} + }, + { + "public": + "034644538c865b495c62162d8d326811a9f8c6c5b49bcbf063c963421aab4808dd", + "address": "EOS7NBQNJS3PjHkuZ7FKHQvq7SVRdnQdLX6LNAxbabpKqjNpNeWUa", + "decode": + "034644538c865b495c62162d8d326811a9f8c6c5b49bcbf063c963421aab4808dd", + "params": {} + }, + { + "public": + "0240d3da2b2cff8cd88964c12c71b4378f66342535dd43b082cabc966461e5343a", + "address": "EOS5P3HZVsrZvWzWwYSg25oYdLtRTfrpTy1YsPGsiAg1p5zbGDTQa", + "decode": + "0240d3da2b2cff8cd88964c12c71b4378f66342535dd43b082cabc966461e5343a", + "params": {} + }, + { + "public": + "02c228b23ceb2a4c9481435843274fd9149c350559f80459e603fb407638b7d0a7", + "address": "EOS6MztDoPhG6ZpqG2MVPCHP6EtnYYMPLLj32WytHumjWKvbxrZdB", + "decode": + "02c228b23ceb2a4c9481435843274fd9149c350559f80459e603fb407638b7d0a7", + "params": {} + }, + { + "public": + "02843838871b3615c74cf0b07d421da660819985d10c5ef8cc08c5cffac37cbeca", + "address": "EOS5tij594T1Jj54caC8rqG5dqXT5SKkYG7QqCcckqncGf7ro8Ge8", + "decode": + "02843838871b3615c74cf0b07d421da660819985d10c5ef8cc08c5cffac37cbeca", + "params": {} + }, + { + "public": + "03d533cb3d442b52070c60e1c266f3dd302ca4f606cd684fc4bee53a282cdaf2ce", + "address": "EOS8T8VniqRiU1Hqsr8ez3rwAJZWuDFAQWQBoBwXMdFDYRW2GsgW5", + "decode": + "03d533cb3d442b52070c60e1c266f3dd302ca4f606cd684fc4bee53a282cdaf2ce", + "params": {} + }, + { + "public": + "021213cbd44d0323b626ca685817ae8f80f55a8f1e740f222a05b2d78946f8eb53", + "address": "EOS52T7cFrmvLZopF13wQuhxbmfRe8GBSppBU4ivuWGBmMjNgTGCX", + "decode": + "021213cbd44d0323b626ca685817ae8f80f55a8f1e740f222a05b2d78946f8eb53", + "params": {} + }, + { + "public": + "02abb70d7c6d798563d9ca1fb59661c97be37d699374f1ff68a2fcbb690b0ff0d5", + "address": "EOS6C7aqDN6TySkWsCs88wCw4z8AmJVWYc8dxtGrUn9kMwSiQqZbN", + "decode": + "02abb70d7c6d798563d9ca1fb59661c97be37d699374f1ff68a2fcbb690b0ff0d5", + "params": {} + }, + { + "public": + "02428be60faab2a2f6761fd71619ed7fe362ad480c37a55c30f1797abee678346d", + "address": "EOS5PoCDL1jcrfwnJsywMSpGXPTUZRkv9ZA7jZXXFFWN5kqmVGx9D", + "decode": + "02428be60faab2a2f6761fd71619ed7fe362ad480c37a55c30f1797abee678346d", + "params": {} + }, + { + "public": + "0255a862f91e2273f76dd7026a53cd475916617aee053db545a65ba5138bed1dfc", + "address": "EOS5YDNC1oiAWtjFveXkRyhq5SBMJ7QK4BRM9VxxEYTLB3tGQC69C", + "decode": + "0255a862f91e2273f76dd7026a53cd475916617aee053db545a65ba5138bed1dfc", + "params": {} + }, + { + "public": + "033cea8592ef63a078ca4f3dbf0d6137775d790ad08224c28559e72291db0b2416", + "address": "EOS7J4YrjvHJxHPm4nReQDXqWZTQQvcipENEj2VfNL9y1Fm43xWwC", + "decode": + "033cea8592ef63a078ca4f3dbf0d6137775d790ad08224c28559e72291db0b2416", + "params": {} + }, + { + "public": + "022994c7898875726a2f0d31e517ac43481210a7ffe7021b74a1ab4fb87cc66aa8", + "address": "EOS5CoVJcksh6AB3AwoPns7cYF4DUM9sWx5GQH6NWAbYwppQ2Ttos", + "decode": + "022994c7898875726a2f0d31e517ac43481210a7ffe7021b74a1ab4fb87cc66aa8", + "params": {} + }, + { + "public": + "02dce38ece727ec2f3ca3553306ee5662d5b55d66c25fd812b0eb5d2dfd22ff506", + "address": "EOS6ZmfUBi1TprWgiiT2mTaxpA513JoDkKbwMQ7H3sVmRxYtK6QuA", + "decode": + "02dce38ece727ec2f3ca3553306ee5662d5b55d66c25fd812b0eb5d2dfd22ff506", + "params": {} + }, + { + "public": + "0329d66a387e4c2b1c021b4643bbda96029d475f4628c15a935dcd8b3a5ddce0ef", + "address": "EOS79fDPFKdhtMzyrSnFF1va4BMBrnrWMBoMVpKadChjARVK7PQNn", + "decode": + "0329d66a387e4c2b1c021b4643bbda96029d475f4628c15a935dcd8b3a5ddce0ef", + "params": {} + }, + { + "public": + "03d91d744ab734afde32002051f4cf93ec86c5100722c5f248b6b080034da54bfe", + "address": "EOS8UrSdffc5qTC1pjFdKyNkqiK6ZzZ2kjovqt16B8tb3bQJNmemK", + "decode": + "03d91d744ab734afde32002051f4cf93ec86c5100722c5f248b6b080034da54bfe", + "params": {} + }, + { + "public": + "026c25080356fe90925524b3708fbba0dba2c7f97ca59b9d95397891050567437d", + "address": "EOS5i7mFEaafhBpyiaUWeQyiK3Ry3QrXufxCZpUzL9CgUu5puowg9", + "decode": + "026c25080356fe90925524b3708fbba0dba2c7f97ca59b9d95397891050567437d", + "params": {} + } +]; diff --git a/example/lib/test/address/ergo/ergo_test.dart b/example/lib/test/address/ergo/ergo_test.dart new file mode 100644 index 0000000..cddfa9a --- /dev/null +++ b/example/lib/test/address/ergo/ergo_test.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/address/ergo.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void ergoAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + params["net_type"] = ErgoNetworkTypes.values.firstWhere((element) => + element.name.toLowerCase() == + (params["net_type"] as String).toLowerCase()); + final z = ErgoP2PKHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = ErgoP2PKHAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/ergo/test_vector.dart b/example/lib/test/address/ergo/test_vector.dart new file mode 100644 index 0000000..8ee3f4e --- /dev/null +++ b/example/lib/test/address/ergo/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "021a6043ed0124584cc3e7dd440a6ffbccf4719d4ca45a1375fc6ed752f2152386", + "address": "3WvopqY4wWMLA248gTt9f3knuRDqDJJMB5NewqgRCaohrPcRygfw", + "decode": + "021a6043ed0124584cc3e7dd440a6ffbccf4719d4ca45a1375fc6ed752f2152386", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "02f4bbc30c682adca755cea7f0730cc77fb8f6bf381bc4df9173b3a52990f7d338", + "address": "3WxTzV4MNKeeX2MHFVPXsugKUNrMrto5DeCMctSEW8e2UATdZ99G", + "decode": + "02f4bbc30c682adca755cea7f0730cc77fb8f6bf381bc4df9173b3a52990f7d338", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "0364ed484e5254d376d01d91020d8f9dbd7b8f9db8a422a770d5e3f6e8ddf5c9f0", + "address": "3WyKQKFHFK32uBYt7w2Zf3SbDGk7XGUQq17mKPHwwUxVe6FwnCM5", + "decode": + "0364ed484e5254d376d01d91020d8f9dbd7b8f9db8a422a770d5e3f6e8ddf5c9f0", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "02605204b4d653219eb9f3a7351ac475702ba4fbbac885ac4e7bbdb12b10b411d3", + "address": "3WwLdULVfE6Fy4LQZc9QwRsDmtJzuBMAYL4xKHVE5Qm5ceBV4jhr", + "decode": + "02605204b4d653219eb9f3a7351ac475702ba4fbbac885ac4e7bbdb12b10b411d3", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "0282ef477dd7883c37a436fcc600711f835cbdf67bb494956ea75105cbf874c318", + "address": "9fWj4meAF1bnGA5FiGfh2ZXyaXXjEUZ4hTaX7vzrGo4BZdqpLFX", + "decode": + "0282ef477dd7883c37a436fcc600711f835cbdf67bb494956ea75105cbf874c318", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03cbafc588a235464dadce5800a1e4d26193932cdd31c6a1add30049ab9bc1d3ee", + "address": "3Wz6fB5gFBhJYaDNXwiQELs8cMzQtVihoDweToBm7fGfnYt7WgXC", + "decode": + "03cbafc588a235464dadce5800a1e4d26193932cdd31c6a1add30049ab9bc1d3ee", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03a218339aa4de3123a116c4eec488e24b3699ea69cae1743d27d040192e4cb5a8", + "address": "3WynLm6GXBqzdYAKJG8hUX1AWisbafWyqQqW8wMo7qbFNvhh4U5d", + "decode": + "03a218339aa4de3123a116c4eec488e24b3699ea69cae1743d27d040192e4cb5a8", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03331cec8a4e7b3f462ebbc910fc1d23d6d0f5d6df1c2b849fc3b44d6e0c755590", + "address": "9grKJayfgF6A1YHKaL19MF3S8Pe4MzFMosZ1GdazX7NwuZhggsB", + "decode": + "03331cec8a4e7b3f462ebbc910fc1d23d6d0f5d6df1c2b849fc3b44d6e0c755590", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "025563e2461f498f336f2d927af36e0327b01f6007b43058b19effb4e9ed69aba8", + "address": "9fAfh7K6tJBpXe1RcyabhKkYWWWaUszWnBCmXyAKhPZLRFX8k3o", + "decode": + "025563e2461f498f336f2d927af36e0327b01f6007b43058b19effb4e9ed69aba8", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "0339c316fc3d207d9781e41038480c545f580f63b88adb081a6b3e4b491673cd66", + "address": "3WxzPjBiGLKXv1vLwzeiuYnLNiLnkfA2H6nJ3D69wjLa5Zp9yh69", + "decode": + "0339c316fc3d207d9781e41038480c545f580f63b88adb081a6b3e4b491673cd66", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03dcca284919b7e30fc49a84d0c7ef76b6d948023a19e2e83af9d642eda629d781", + "address": "9i93U4cxR1hFDw9ZWD4nGkDY9eTyhxbYQqAbCkdXgTWbtCPLDpT", + "decode": + "03dcca284919b7e30fc49a84d0c7ef76b6d948023a19e2e83af9d642eda629d781", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03f51a864b263d69815b249d65d0b841f81e1e916b4a7b0f3ac936437a40450fa4", + "address": "3WzQu7hog2ymFyKUiEBtLikG8PKUfBC8G2XigT2J2wjB8E5xMMie", + "decode": + "03f51a864b263d69815b249d65d0b841f81e1e916b4a7b0f3ac936437a40450fa4", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "020999f5ae57edcf6222d451bc7e1e546c1e04ba14098247100463a57a815439d4", + "address": "9ebHmcdrk36YwBFt9m62bnBAQGaMb3YckhwvpdveVBA1ShSR4d7", + "decode": + "020999f5ae57edcf6222d451bc7e1e546c1e04ba14098247100463a57a815439d4", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "021fa62981999d6ceb6c82dd8658f2d18658fbb42ebf22f5370eb84a86ce4509e7", + "address": "9ekzwwXwdRZBc7VivZoBUP5mrxb4pnP6YcYb7WUjyk5wETWv9P6", + "decode": + "021fa62981999d6ceb6c82dd8658f2d18658fbb42ebf22f5370eb84a86ce4509e7", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03a6a1becd49aebc5e35ec3e7647c1dff4c3f7d768da4aa758989bbdd581f66b7e", + "address": "9hjC5TDXAh6t5pKRCULYYDXCJSq62SHnJe82pkQTN8UNKEMUx4K", + "decode": + "03a6a1becd49aebc5e35ec3e7647c1dff4c3f7d768da4aa758989bbdd581f66b7e", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "02b21509c3c2fe44fb66348332e3c3b13889fd477ffe8ae2d9da455beccc5b3353", + "address": "3Wwxdy4pfmZLn3fM5buwf895GGU8vnE4pHxKqoyu8dQT3V8Gf4DM", + "decode": + "02b21509c3c2fe44fb66348332e3c3b13889fd477ffe8ae2d9da455beccc5b3353", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "035daa3a68e0aa99267e8aa695ae4952a9b2b6296efeb4fb1dcc59d975ac62a558", + "address": "9hB4EhR9DXPKxoXJ4CJ1b1ZzEHxBg6R4yckB82A1tCeWSxXiMHm", + "decode": + "035daa3a68e0aa99267e8aa695ae4952a9b2b6296efeb4fb1dcc59d975ac62a558", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "02b9d9fa693af356a2741680e8ad579b0abe36cbcf02699b98c383a50c37f7cd17", + "address": "3Wx24RXhBZeasvd5k8vjNQ2gUcaSaYUCWwh6UsCSQrhBREX4DQ2u", + "decode": + "02b9d9fa693af356a2741680e8ad579b0abe36cbcf02699b98c383a50c37f7cd17", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "0320979ec1ed82638a90b0ccfb7ca8b4dd2d38aac3737c25f69fa3f006818a30ba", + "address": "9giADYgyrwUC2hiNs69jQa1284W24asno85DpytW8z97LCCPEyP", + "decode": + "0320979ec1ed82638a90b0ccfb7ca8b4dd2d38aac3737c25f69fa3f006818a30ba", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "034cc4dfb26fd492076e1bb328af29f708bb8c36079b87c1e2abcc00289af632de", + "address": "3Wy8mEcyVXoCByTn3WCxff6TdKaEuyiRbhMpqgcxxcXWsEGPg4DC", + "decode": + "034cc4dfb26fd492076e1bb328af29f708bb8c36079b87c1e2abcc00289af632de", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "0377a2a1443b8f8c407622b6e53c4431852e018cc7a2c6f69a1136f5fc040aa11d", + "address": "9hNVcZVbLjsE4Jdd3Dop9imp96JSbDipsqTSHWoBiZXn9L3gTLn", + "decode": + "0377a2a1443b8f8c407622b6e53c4431852e018cc7a2c6f69a1136f5fc040aa11d", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "031bbfdd55a9ca633d9b9dee5027c43f7c911885e895aad573d8d67a132580f071", + "address": "3WxmB6ZC7jy89J3hUg4HnyvkY9QpP2kBYa6CKQHpS6BKBRPfEszK", + "decode": + "031bbfdd55a9ca633d9b9dee5027c43f7c911885e895aad573d8d67a132580f071", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "02d1478b45b696ad1882dc41e89b1db2829a2f9b9f7579594ec3882e8616209f0f", + "address": "9g7EH62uTQB5TuRVNtahrtHvwAa3oMTpNBten3prf3MjbLDRgHi", + "decode": + "02d1478b45b696ad1882dc41e89b1db2829a2f9b9f7579594ec3882e8616209f0f", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "032444889080fe0923f7e4c3fb07a0556263d90bbf963a575fd49c410707235e94", + "address": "3WxpvgbhHE7SgPQcZFu9WnquGkPSyCSaMhpzmwfnBRnhgMGdzNN2", + "decode": + "032444889080fe0923f7e4c3fb07a0556263d90bbf963a575fd49c410707235e94", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "027d12eab3a7f39310f71e71e1668fc9916a1c9c08bfdd27ad341111f9051129f9", + "address": "3WwZHwavmU4XMpeVxQNDeDfLHea8gVJmfetPQ4K5B9bkSxfvcTwG", + "decode": + "027d12eab3a7f39310f71e71e1668fc9916a1c9c08bfdd27ad341111f9051129f9", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "033c55882501ec9c04371c8f0e622a69be7e40bd4a363b88ceca435dc3d305977c", + "address": "3Wy1XRk7sPyaR1wT1RmDApP7ffAaP71LLRQgYhABjCkySn2XtDQ2", + "decode": + "033c55882501ec9c04371c8f0e622a69be7e40bd4a363b88ceca435dc3d305977c", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03a244a249b7b460e2cc8f27370c6564e9a3bcdbd17ed7ee1bebff5293d42301d1", + "address": "9hhGcU2NLE1iqShmnmuvMXNCETM1rqnT8nDCdzetuFVC4PtJrr2", + "decode": + "03a244a249b7b460e2cc8f27370c6564e9a3bcdbd17ed7ee1bebff5293d42301d1", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03b57fc07d5d91e44e8a063740b4ffce25d3254f1bf551a98e791177dbd738b62c", + "address": "3WyvtRUNU4WZ1VjGt1P8VpSVZHZP8bwR7Nwn4upjyAdda6we1i3K", + "decode": + "03b57fc07d5d91e44e8a063740b4ffce25d3254f1bf551a98e791177dbd738b62c", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03d73b4c6cbb1d0146f8e8783b66a270b6fa64075503ec1561b973e429d3d07f8d", + "address": "9i6bVeMSYgi9WcWg5tuhBi3LBLULx7y5PiznpdnkCUECDH4C6vM", + "decode": + "03d73b4c6cbb1d0146f8e8783b66a270b6fa64075503ec1561b973e429d3d07f8d", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03d59cdd12076226e4076b02ef7ccf7a2d951ad6b6a6469e603337552158592792", + "address": "9i5t9DGAn6UPRnBjquujqpeqhpLrMBoAAgcYeZjduiUTuXZkqQY", + "decode": + "03d59cdd12076226e4076b02ef7ccf7a2d951ad6b6a6469e603337552158592792", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03193ee4f17e6cc205d9265c68cd709e2cba6c07365623e6df96e971050ae965b8", + "address": "9gevZLxFgy8XLpvRDMYR2BZKjw1NDpaRsF4a8grVsFgQCKDaB4E", + "decode": + "03193ee4f17e6cc205d9265c68cd709e2cba6c07365623e6df96e971050ae965b8", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03ebf5db00eb5d6e6c492c3bbf3108a3021287c09cec511a62cee3c76cbbfd18e0", + "address": "3WzLsZhgafNbtf4EeJt88nZTCN3Nk8dLvT6DJERBZznLEfYrys7L", + "decode": + "03ebf5db00eb5d6e6c492c3bbf3108a3021287c09cec511a62cee3c76cbbfd18e0", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03cd051a5de068e57880cf5c287487e299451c5aedf81ad8f4b13391b89dba6889", + "address": "3Wz7FESqksfd5DD51EJktK57w3tWDBC4cgrjQEMfazdft1PVa8PF", + "decode": + "03cd051a5de068e57880cf5c287487e299451c5aedf81ad8f4b13391b89dba6889", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "0380ec5b1b54ae05a4930e04f115d2f1e43f9b90fb29d708106571be95358f6a02", + "address": "9hSas26mQSwQB45ght6tetgkj27yMN3UXr7MGNU6nSVFWLjYEN6", + "decode": + "0380ec5b1b54ae05a4930e04f115d2f1e43f9b90fb29d708106571be95358f6a02", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "02e5e9471ad1f7ea4e4baf53f7a59c19a3a33cac4a7f36533e1de28bccc18f90d3", + "address": "3WxMTsVD2GTA6w4qoGRjvn5mG1KfGZY4pz41n4T5sSaeJK3AXsFc", + "decode": + "02e5e9471ad1f7ea4e4baf53f7a59c19a3a33cac4a7f36533e1de28bccc18f90d3", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03105f9802d59aa66e625cdff6bce7604780b38bccfab92b58b85670ba0cdf67ba", + "address": "9gb1vo4hZb5EZCfkU35pwsULBw4aZzx9QSgPhAjTaEstC4vX5Yy", + "decode": + "03105f9802d59aa66e625cdff6bce7604780b38bccfab92b58b85670ba0cdf67ba", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "039fd1d0f4a1d8a37636feb4c9a5397e53fef6faf103bffed3415170b5cf778ab0", + "address": "9hgC4vdGqTCWJDChKdNLAsMtWRFDk87JLm1sMMpEyJnxYCi91TR", + "decode": + "039fd1d0f4a1d8a37636feb4c9a5397e53fef6faf103bffed3415170b5cf778ab0", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "020cd5d4c6bd7bfab63ed085bde0754f0b2dc3f46a3c3a9390a5363ca73ccde957", + "address": "9eciNhfYtbgP3tjuf7y5qv8C2bgKY9s5FrgJYkdjKnQHBRpjK5S", + "decode": + "020cd5d4c6bd7bfab63ed085bde0754f0b2dc3f46a3c3a9390a5363ca73ccde957", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "02eaff1c0315cb52f118b82cfe181c2bed1ef68da9136e32cbced88ba430295d5f", + "address": "9gJZBj9f9HRheQKgyBCwHjziAtisMmEhxH3nTrjzrinntB3X73b", + "decode": + "02eaff1c0315cb52f118b82cfe181c2bed1ef68da9136e32cbced88ba430295d5f", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "0314c2d6640445e0e8a9bc52aa02cfe8e83a7b29eec7e7b898f111002e50717dc2", + "address": "9gcx1GcpHjaB6KS4zjjYwimdKmd9ttsHsQXKKUwDm6gx8wBjr5x", + "decode": + "0314c2d6640445e0e8a9bc52aa02cfe8e83a7b29eec7e7b898f111002e50717dc2", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "0201fb16c1379ef6b438d18ba00dfdfbb4fb6045bdf37b4d2118edaef2d7be7bc2", + "address": "3Wvd5hETYU31qid1QkRrQbnNizq2iYZiFDu6YG5VTEtqKneDQQwp", + "decode": + "0201fb16c1379ef6b438d18ba00dfdfbb4fb6045bdf37b4d2118edaef2d7be7bc2", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "0306bb0518a0ee78a987672c18861affd0d9934b45ff61b24914f0fda5838fc9f7", + "address": "9gWmcaUCKKH3NgR3gfZK6DmGW9HjXD1EBciRXdmcPDzEPgBcPyP", + "decode": + "0306bb0518a0ee78a987672c18861affd0d9934b45ff61b24914f0fda5838fc9f7", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03557f0161a63620d33fed197b6e076d4dd0764b77ae9180bcb4dea828a6b7577c", + "address": "3WyCcA4kaMr74g7rifSe8XVGagQ8mVryEodUBSBqahNjJKbGgSEH", + "decode": + "03557f0161a63620d33fed197b6e076d4dd0764b77ae9180bcb4dea828a6b7577c", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "027324b2ab3708da3f618b96d8431edee249ead374fd5cb12dd77ffb2f1d37a8d2", + "address": "9fPmhQHi93vTHVVBZPurs4XvBTRrt2hW28rpYeETSGb1K9KEmGU", + "decode": + "027324b2ab3708da3f618b96d8431edee249ead374fd5cb12dd77ffb2f1d37a8d2", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "027f18325549fc4d4c97917feeb736e152525b2247bbfb52c31af66a05bd644f89", + "address": "9fV2ySV1yoicH22vZw3Gr8PcaGaU5faSTFvEGtMggJvq6D6vMUb", + "decode": + "027f18325549fc4d4c97917feeb736e152525b2247bbfb52c31af66a05bd644f89", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "02e61314192c78452968f0d5501ef13b612b86f1bbd21b529fd23d7274570fbaab", + "address": "9gGPTde9TtTQe8mLxxx9vxNay3V6ZJsLNH1rWVK4Rii3kq2WLjJ", + "decode": + "02e61314192c78452968f0d5501ef13b612b86f1bbd21b529fd23d7274570fbaab", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03b7ec356e027c4d43ed3f5af2588135eee2c72c56c2b9572aeacdcf9ea94ce14e", + "address": "9hrokSGy55auFwuRUfYvcmUVAAJwTc5e9EHfGmrzDU6yCke6wQK", + "decode": + "03b7ec356e027c4d43ed3f5af2588135eee2c72c56c2b9572aeacdcf9ea94ce14e", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "0281723e9ecf4b0cf310f24c14537d8472b9d318061902deec3b5092372b2403b4", + "address": "3WwbDdQ5qjv83XV963q9R5yMZRWW7LbqsbjqG6QfbELKa8bEQwUD", + "decode": + "0281723e9ecf4b0cf310f24c14537d8472b9d318061902deec3b5092372b2403b4", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "024745c2eb624d2cb059224439a968cbdfd5e393a0b7b1b26ed0ce1c740dac0f0f", + "address": "9f4T5LJVyibM41bU7Vfrz6FmYbg1jeahHFzkzTbhvsHHRZQFhKX", + "decode": + "024745c2eb624d2cb059224439a968cbdfd5e393a0b7b1b26ed0ce1c740dac0f0f", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03e4e5ace045f01cbc533cfa6162c472e1f70a7bc397ac6c2827a69e969f2013db", + "address": "3WzHm9LbLihLn3Q9Vdx3WMSyuhXEWJaLah9ZzRN5zmfKES1pBVvm", + "decode": + "03e4e5ace045f01cbc533cfa6162c472e1f70a7bc397ac6c2827a69e969f2013db", + "params": {"net_type": "TESTNET"} + } +]; diff --git a/example/lib/test/address/eth/eth_test.dart b/example/lib/test/address/eth/eth_test.dart new file mode 100644 index 0000000..3175af9 --- /dev/null +++ b/example/lib/test/address/eth/eth_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/address/eth_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void ethereumAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = EthAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = EthAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/eth/test_vector.dart b/example/lib/test/address/eth/test_vector.dart new file mode 100644 index 0000000..144d6c8 --- /dev/null +++ b/example/lib/test/address/eth/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "0205e780acb0ae40c49deb690683cd3d1a619f998ada63aaf3330d7d59700a5156", + "address": "0xe720947F2A6Faf66d639E11D4466B61D637587af", + "decode": "e720947f2a6faf66d639e11d4466b61d637587af", + "params": {} + }, + { + "public": + "03f90a8fc2b2430b93e06ee9d19366102c142001b729d497b952de066e45871efa", + "address": "0xde42e41b5825944cDE383643C1771D592759C348", + "decode": "de42e41b5825944cde383643c1771d592759c348", + "params": {} + }, + { + "public": + "03cebb1df4566c826863518282ee01b80c6e9ca674d83b2e7ec68d3a5e8047d405", + "address": "0x0f3Ef3e74a93Ff31B6B2d281C3E3c4671486058a", + "decode": "0f3ef3e74a93ff31b6b2d281c3e3c4671486058a", + "params": {} + }, + { + "public": + "02ae2fd676fd13b148026243f91cea5026da8114879a00d628aee560f21d87c5d0", + "address": "0x77c004043696b09E4F01bA48a78D12a9472cCB7C", + "decode": "77c004043696b09e4f01ba48a78d12a9472ccb7c", + "params": {} + }, + { + "public": + "031c5e7207ea7697395cd004710e26e2032e6ae8fcb86513b3ef87de62fe1f3bd1", + "address": "0x30Ee2e87D6adBFcc4d3918b4C7e49BcaFb9E6D47", + "decode": "30ee2e87d6adbfcc4d3918b4c7e49bcafb9e6d47", + "params": {} + }, + { + "public": + "0220e0d55c8fd6c684d21855bf4339cac942063cf544f9ef4184a310d7fce5d9cd", + "address": "0x613c8B79f137112f60EC15cC1077B9b1460d6bAB", + "decode": "613c8b79f137112f60ec15cc1077b9b1460d6bab", + "params": {} + }, + { + "public": + "02fc06c1632074c4c56c2f87a623fe74dce6697a9b4bad6c5145a46c145b34283d", + "address": "0x64199038F6c9fb36c108dc30c3DdB916f188EBD1", + "decode": "64199038f6c9fb36c108dc30c3ddb916f188ebd1", + "params": {} + }, + { + "public": + "0215e88ec21c6444300088b8b184f7a7daf3633ff41f26aba7fe3b01a8323afbe2", + "address": "0x2f5Da8C538630Aae8DDcc316f5b07E9b5Cb3b8BA", + "decode": "2f5da8c538630aae8ddcc316f5b07e9b5cb3b8ba", + "params": {} + }, + { + "public": + "03868fb2f349cad0e6f1bdbaa14da0a019facd1bcbbd6596e429f830c8cf957d7f", + "address": "0xA8CF55157F862b4f2F8F6C9C8D7a87E6fe582DE5", + "decode": "a8cf55157f862b4f2f8f6c9c8d7a87e6fe582de5", + "params": {} + }, + { + "public": + "0221b47c711708e48d475eb2031c328e0d0ae0517ce92148a41630b6f55825083e", + "address": "0xB1fb358B357cA0C99A12C19aF8183d56F2E9125f", + "decode": "b1fb358b357ca0c99a12c19af8183d56f2e9125f", + "params": {} + }, + { + "public": + "039ce2c88f082e5b2a85cc31386cb2f7a4ca122f2d907eaa850d8d16979642a079", + "address": "0xD11110E35B29C82cf7E4aaA16579503a1F8B0d97", + "decode": "d11110e35b29c82cf7e4aaa16579503a1f8b0d97", + "params": {} + }, + { + "public": + "024eb0fb1e6936d9cf3012c00089e2fde2a203922fb94932cadfd7b61bd2c1ed88", + "address": "0x74Ae5C4A8a3788eD850741a5A9B316a283030C4C", + "decode": "74ae5c4a8a3788ed850741a5a9b316a283030c4c", + "params": {} + }, + { + "public": + "02148d2509660d051935ea819925cd232e78d10586cd9003e589838d4df07ac44d", + "address": "0xC34a2F5Cd2b4139936f8A693bE46948EcBa7cc16", + "decode": "c34a2f5cd2b4139936f8a693be46948ecba7cc16", + "params": {} + }, + { + "public": + "02b78419391343067ca0e01a58ee76c0baaa8c31a145a8e5d6b275f7b557eff6f0", + "address": "0xA7128F92D1439D4B32bfAee1Bf8bD6Ca74f658eC", + "decode": "a7128f92d1439d4b32bfaee1bf8bd6ca74f658ec", + "params": {} + }, + { + "public": + "037ba8399bd554121b9f059b94de04fb3473bb0b2c68abbddbbf3758596df7fb00", + "address": "0xad5494f7492cda30aAD2f62baa5DbFae04Ee3d43", + "decode": "ad5494f7492cda30aad2f62baa5dbfae04ee3d43", + "params": {} + }, + { + "public": + "031d297bc012e20d6e2a1a1fd8fcaf51d008fef40d1e084834a73c682633845be6", + "address": "0x0fC47f1fF8d17197B3c30D199EB547657271614c", + "decode": "0fc47f1ff8d17197b3c30d199eb547657271614c", + "params": {} + }, + { + "public": + "028053e7dd4b0888f603d8f7f0b72ac1b85f7df6530b239c7c81c64755ee9e4fa4", + "address": "0x4C99dFea70c82b235c00756BE806E4d8102C76aB", + "decode": "4c99dfea70c82b235c00756be806e4d8102c76ab", + "params": {} + }, + { + "public": + "0236714c7bf23fe6782b4867e2eece1efd86ba497ee3e30d2928c106e186e80f0f", + "address": "0xC5010Fa6E34284Ac8E57aCC7220c46283aa75c5A", + "decode": "c5010fa6e34284ac8e57acc7220c46283aa75c5a", + "params": {} + }, + { + "public": + "025b4a9c7d38c2599cb7526cf4d993824e638a5e4b0018f3833a058f8d1fcd8e24", + "address": "0xA1150a32b4C8207F40A7704CB4430A6ABF14Ef98", + "decode": "a1150a32b4c8207f40a7704cb4430a6abf14ef98", + "params": {} + }, + { + "public": + "03064746bd56d9459c70ea9251fe2a2911a39f81e6604502754089675daf1a76d3", + "address": "0x74C050b2518A0450660cc45c54CC589a496f3B79", + "decode": "74c050b2518a0450660cc45c54cc589a496f3b79", + "params": {} + }, + { + "public": + "02bb57467d8aa3d3dfd161dff73fa441e46159bc6dea8dc3bc9edfc4f35120730f", + "address": "0x4c933109B4Dc48d9e231C66EA893c6b926B4D7b1", + "decode": "4c933109b4dc48d9e231c66ea893c6b926b4d7b1", + "params": {} + }, + { + "public": + "03d58a23c68065f273bbd397531c7c6cddd82c7f7492ce3b2fb39d52f6c2c2365a", + "address": "0x6b128570f36065541D9b34c40Ca886A08210d1c7", + "decode": "6b128570f36065541d9b34c40ca886a08210d1c7", + "params": {} + }, + { + "public": + "03fa8d1a6d458f142123d08d00e000e1a64546f9b829f864a0e529290ac48c55e9", + "address": "0xC74A762c02800653c1757F0698bc54f84EC7D100", + "decode": "c74a762c02800653c1757f0698bc54f84ec7d100", + "params": {} + }, + { + "public": + "0305fb3eca8b3265fbf1d91f9561c48b5c8fa2b5f0121eb6a8ed8cf291144a67a0", + "address": "0xF7e80774877A2fC1FE382812EF4Faa9c926c441c", + "decode": "f7e80774877a2fc1fe382812ef4faa9c926c441c", + "params": {} + }, + { + "public": + "020c925010e9577ec76b34bf11182a635f757ef3297951a6e7b5591d22c1856f53", + "address": "0xD7CE2041c83204bB18df5A0E79e775dBCAfeef31", + "decode": "d7ce2041c83204bb18df5a0e79e775dbcafeef31", + "params": {} + }, + { + "public": + "02c8aba885eefb47786c94a9f044c78969052f71e5bd900d29254f7fe350989102", + "address": "0x32211Eda9E8d538cAff4E619d0674f30DFb72bB5", + "decode": "32211eda9e8d538caff4e619d0674f30dfb72bb5", + "params": {} + }, + { + "public": + "030a5e5d26901f2c67354f297cef39f5c312d1ef57b63178311e26cddb4529c895", + "address": "0x12a63935DDBAbfa5A06Ff23649B3409F6a589B39", + "decode": "12a63935ddbabfa5a06ff23649b3409f6a589b39", + "params": {} + }, + { + "public": + "025ebde8f9974a6c937a945c1d179294b5ed1fffe28cae40756fffba228e797ccc", + "address": "0xF0A69b31f41e95f97A664F94Ae53a5a747B21898", + "decode": "f0a69b31f41e95f97a664f94ae53a5a747b21898", + "params": {} + }, + { + "public": + "02439f97f507de86b14854072389d3774ebcd4cb5cb64ae230563173be731436ea", + "address": "0x0a49e30C7b906bEc5B451D70C6A4a7117b66E6aB", + "decode": "0a49e30c7b906bec5b451d70c6a4a7117b66e6ab", + "params": {} + }, + { + "public": + "02c2efe213ac98a760ad8ee0f339cdc7145f487451992716a1bc5cedda1d9187cd", + "address": "0xC12D81Fc49D06396cdEF51d16C4395656f6B7ccB", + "decode": "c12d81fc49d06396cdef51d16c4395656f6b7ccb", + "params": {} + }, + { + "public": + "02adf9888899b3d66bd28c6f396354e76f29c4e04d1ab0e8363b6dbd5983502ae4", + "address": "0x0dEf39cA275f0D5192aF9A860A66a74C4dEf7fc5", + "decode": "0def39ca275f0d5192af9a860a66a74c4def7fc5", + "params": {} + }, + { + "public": + "02a8aa9cd1b6b897bec39fd9a67f5b91e503f1779e090b64b0984906d7d368b3a2", + "address": "0x2bCD792d526A1A2Fe900340D5da6579B468A5Eba", + "decode": "2bcd792d526a1a2fe900340d5da6579b468a5eba", + "params": {} + }, + { + "public": + "0314090ef2c8743ae8c7b360112d35b2a861e7fbd8077499dc3e6b217cbe2575cf", + "address": "0x649706D8541D330577c660a7b733B744a489b7eE", + "decode": "649706d8541d330577c660a7b733b744a489b7ee", + "params": {} + }, + { + "public": + "024007f509fb73203056e05794e244327d054a59ef53c96775cd5f6cd6376474e1", + "address": "0x7A4C9EBC8F440245aF0Ab49AE972A38397b2aa3E", + "decode": "7a4c9ebc8f440245af0ab49ae972a38397b2aa3e", + "params": {} + }, + { + "public": + "03ffed2b5a1caabac0cfc3737c99faa3960a7c395cb9f4f39688b26696256f2183", + "address": "0x1082c55981C2bDb1450ed6E9846BbdE02aEF90b4", + "decode": "1082c55981c2bdb1450ed6e9846bbde02aef90b4", + "params": {} + }, + { + "public": + "024096150e403ec9fe9deaaf3b97260d791d38855afcaf50e0f39a83e2e310e74a", + "address": "0xb62B3B1B5f897968cE8355d64EBd9881eE0c7A7F", + "decode": "b62b3b1b5f897968ce8355d64ebd9881ee0c7a7f", + "params": {} + }, + { + "public": + "02002bddba64b1212a7f30f20b2a9c640dd104bd41894c9bb3fb85edd7d8003891", + "address": "0x7fE6F0FC035FC21B3287D306Da8d7BE3b2D092eb", + "decode": "7fe6f0fc035fc21b3287d306da8d7be3b2d092eb", + "params": {} + }, + { + "public": + "033775875ca0fd011274dfc6f2f898d63d7a091be6c12b61a2d02d9afdc7dfbb97", + "address": "0xb0847D84684667Fa1f716c9a955A5448B054eA05", + "decode": "b0847d84684667fa1f716c9a955a5448b054ea05", + "params": {} + }, + { + "public": + "03f26ef51d10a3c82e75233a78a512c41ba20e4135fb0a885168d93b3a9d862e7b", + "address": "0x86E69340bAF3A19028a7F139d2784478a9Ea1026", + "decode": "86e69340baf3a19028a7f139d2784478a9ea1026", + "params": {} + }, + { + "public": + "020dec644d80a11fe926d9e1dae363874af66bb18124c288b742cdec46538a1e63", + "address": "0x62692564B39614563f0d4472FEd420980A0751AC", + "decode": "62692564b39614563f0d4472fed420980a0751ac", + "params": {} + }, + { + "public": + "03179d01d227365cbe97cd9bb37470d4366e8ce1dd35a9b486932603c4d82c663f", + "address": "0x1eA95b2115B536EAE27E677A933C2620B83959aB", + "decode": "1ea95b2115b536eae27e677a933c2620b83959ab", + "params": {} + }, + { + "public": + "02c2ff7b312e03816a93a931e9c491716c369440639ae94d72ece58aa7af587a37", + "address": "0x9fe941Bc9429d5199D203A9ed9b95E45c73B03D4", + "decode": "9fe941bc9429d5199d203a9ed9b95e45c73b03d4", + "params": {} + }, + { + "public": + "023e2e841b83b095157a28284301049b13c038a6504ca2bdba4eaa526429c2025f", + "address": "0x4F7676aF83C62679365fCd4831b1d051b94A6d7d", + "decode": "4f7676af83c62679365fcd4831b1d051b94a6d7d", + "params": {} + }, + { + "public": + "039d081ce2ed7cddba38a977b61047e38906f243c12e111eca7bc56dc3f3a35863", + "address": "0x7eeDa30AF56Ba0d6D5C8d8c85b35EdDCc0BDf024", + "decode": "7eeda30af56ba0d6d5c8d8c85b35eddcc0bdf024", + "params": {} + }, + { + "public": + "03092e7e1c0eb868a33d92dd6bf4866536e30f3858a65395536db4b41e7fe44134", + "address": "0x091473B00d099768D5F6e985483234f6eA878565", + "decode": "091473b00d099768d5f6e985483234f6ea878565", + "params": {} + }, + { + "public": + "02be7dafed193df0680605ae729d340c7cff660797d954bbfa4871f1bc386977da", + "address": "0xE33891474F57CdA0F8f19ff7Cee05f2e5EDA94c1", + "decode": "e33891474f57cda0f8f19ff7cee05f2e5eda94c1", + "params": {} + }, + { + "public": + "031d2fe011e33ca742a3344ecd14816c6c41ffaace854a4ae59c4e5ec6a70ab35d", + "address": "0xbFcc87543DECeE5DC0EAd1B92741109865eAb611", + "decode": "bfcc87543decee5dc0ead1b92741109865eab611", + "params": {} + }, + { + "public": + "03b318160a3f114a2a30223323cedfcb6ceab2f31b5e536d271b49963636aa02e4", + "address": "0x0135c6fe4ED8CE7557145C6427B7a829bF6A2A89", + "decode": "0135c6fe4ed8ce7557145c6427b7a829bf6a2a89", + "params": {} + }, + { + "public": + "02c309d34d08097bcb934976d2c9885ee0be7bc4aba7f322bf247d2c98d917bfcc", + "address": "0xcB564091C19Bf5A7DF20B6d1B00Dbbb60C28Ca51", + "decode": "cb564091c19bf5a7df20b6d1b00dbbb60c28ca51", + "params": {} + }, + { + "public": + "02242aae46687498de91837b0251dc809d965158db5ad78ae261a41a433cc60c69", + "address": "0x60bcD0f99653F0134277f1164e5D5D446b9CfcDC", + "decode": "60bcd0f99653f0134277f1164e5d5d446b9cfcdc", + "params": {} + } +]; diff --git a/example/lib/test/address/fil/fil_test.dart b/example/lib/test/address/fil/fil_test.dart new file mode 100644 index 0000000..c2ef425 --- /dev/null +++ b/example/lib/test/address/fil/fil_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/address/fil_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void filAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = FilSecp256k1AddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = FilSecp256k1AddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/fil/test_vector.dart b/example/lib/test/address/fil/test_vector.dart new file mode 100644 index 0000000..e5fa4b7 --- /dev/null +++ b/example/lib/test/address/fil/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "025443142c2df234552323b4dd99322f89254a41c418dc85add626ac17fcf50519", + "address": "f1g5xuyyekh7lfnect34c7kwh655mcqd66qwhn4ki", + "decode": "376f4c608a3fd6569053df05f558feef58280fde", + "params": {} + }, + { + "public": + "0309d33aeeb92228f69e769b17493c25393c24d3f227e43ba1c64c803e4ec4d707", + "address": "f1zzu6fr3wbenehaumm4m4gmetvkrmbnbofbjhwoi", + "decode": "ce69e2c776091a43828c6719c33093aaa2c0b42e", + "params": {} + }, + { + "public": + "0295fcd67cdd596a34c5ff5a0b744c0454f9aaaff0aeeb420cf1f5821af079c2fa", + "address": "f1vrtguzm3hloryv636qq45iizcbshe43ij6lghla", + "decode": "ac666a659b3add1c57dbf421cea1191064727368", + "params": {} + }, + { + "public": + "02d7014e077637149256b9f1b31b2e267e00c7fc762d045724ae94a5f57947063b", + "address": "f14bgqzov6aqhdcmts56z5m4ktvqdgrj55v6brrgq", + "decode": "e04d0cbabe040e313272efb3d67153ac0668a7bd", + "params": {} + }, + { + "public": + "0337abf8980d818c4efd1030dca5116fd075535a216f7bb67f16aae37473c73e09", + "address": "f1a6qy2kjtgy5hqeqay7qdgm5hs2bftkeuxhgwfxi", + "decode": "07a18d2933363a781200c7e03333a7968259a894", + "params": {} + }, + { + "public": + "02fce6b5a89548e824adb9236c3e051477470225b5f5f97566622493007323d09a", + "address": "f1xszhqtrzgv5pvubppi25pheyjq3tcr4m4g6pd7a", + "decode": "bcb2784e39357afad02f7a35d79c984c3731478c", + "params": {} + }, + { + "public": + "03eb8343ea623539e843728c0151241a31e55eba872b6c8df8143567429653063a", + "address": "f1ks6sv7dprwdiuh45tc7k2n2eryxiwlxchhdmp6q", + "decode": "54bd2afc6f8d868a1f9d98bead37448e2e8b2ee2", + "params": {} + }, + { + "public": + "02ca9b7c28ce89678af8dc73d2c566e8920af5a03135bffa0df540bcdb7c8705ab", + "address": "f1ck3sgwrxciyohmd5epx2udf4l2vnfos4ds7uc4q", + "decode": "12b7235a371230e3b07d23efaa0cbc5eaad2ba5c", + "params": {} + }, + { + "public": + "03f7f83851dd96242964d8a5b36ab8412d7648883bb275fda5a33702e9edae014d", + "address": "f1g3fjsqxcxzzs4xng4f45ngh4x767wd23manrzfi", + "decode": "36ca9942e2be732e5da6e179d698fcbffdfb0f5b", + "params": {} + }, + { + "public": + "02dfaaae3fa5d235df03357034cb5a2f17ca2b24644a87bd1efc1321d800019c9e", + "address": "f1rv4zfwbernmbjwj4sx4ngr44fi2muoozyhprtla", + "decode": "8d7992d8248b5814d93c95f8d3479c2a34ca39d9", + "params": {} + }, + { + "public": + "03c2e1b10d4c2cae9b827d342b1234f3581bcac1f7f4c7cecb24e74ad473932478", + "address": "f17k6e3c22mquyqz7mkquz7r4k2kd4fntkonobfrq", + "decode": "fabc4d8b5a64298867ec54299fc78ad287c2b66a", + "params": {} + }, + { + "public": + "0391856cfbb6b9fb962bd00493b51ab16a9a91e4595db489443ad25d02e2194c07", + "address": "f1z52xippkyrkocswn3zdqrwszgo4bijut4yp67ca", + "decode": "cf75743deac454e14acdde4708da5933b8142693", + "params": {} + }, + { + "public": + "0228189fc506973c0ef8d35fa78f35f8573a0d27913c936bf6936c0823adeef846", + "address": "f1vprcpgpvxhky7cbj4rwapemoezf2lapzt4ei7pa", + "decode": "abe22799f5b9d58f8829e46c07918e264ba581f9", + "params": {} + }, + { + "public": + "02f9bc5344aa23f142eb94d3c21013eac3a66d78cbf2fc5f37566f25b1be53ff2d", + "address": "f1yat55tsokkmal6g5c3qsrbrgm6vvguz3l7nsvfi", + "decode": "c027dece4e529805f8dd16e128862667ab53533b", + "params": {} + }, + { + "public": + "03391718bac23f8459584a4ccd459efffce4ecd62164eac7d57915843b9b8dfac0", + "address": "f1ggjtlxersu7l2h7jzop5ualcfhgsdfvwado4ota", + "decode": "319335dc91953ebd1fe9cb9fda016229cd2196b6", + "params": {} + }, + { + "public": + "03f4e9f9e6828a70833b67a15b817650325e7223ef045a223037187711de05395d", + "address": "f1cv2bh6bxijvtkpwtgnumcmtbdo3wcrkuemgmmcy", + "decode": "157413f837426b353ed33368c132611bb7614554", + "params": {} + }, + { + "public": + "02142c0ea1befd530e276780d30a5e32be9fd4fac4f848dce4e39fc2d002b0b764", + "address": "f1mqgsxo2okwqjrid7zixcyu2klklk57sxg6hnnoa", + "decode": "640d2bbb4e55a098a07fca2e2c534a5a96aefe57", + "params": {} + }, + { + "public": + "0264b275547e83ee6c8b5ba4cd581c9dce01295fa002ab818b27ea3d69c4daab87", + "address": "f1if6b46anmc2b7b75cktn27g5xdniyduniicm4oy", + "decode": "417c1e780d60b41f87fd12a6dd7cddb8da8c0e8d", + "params": {} + }, + { + "public": + "02ab05c347466a25af4eefbdc2b146da51228dafd436a90a95644ced5c33925809", + "address": "f1me6zkosdvu3tpj3o2rzaov3ktqlanc3f5bsusvy", + "decode": "613d953a43ad3737a76ed47207576a9c16068b65", + "params": {} + }, + { + "public": + "0293a97eadaf89e42b85b4e1f80ed232760aa36f3052fe976c11e7d226506029cb", + "address": "f122z2qasianxjr6ehnonfh32yqy2rczr6reofcoy", + "decode": "d6b3a80248036e98f8876b9a53ef58863511663e", + "params": {} + }, + { + "public": + "02ce6298be7bd642bc4300cd3b4cd25f53751e9ba8522c83ad06b397aefe537526", + "address": "f12sla54hi543kcvtzzstae4wtxlrgtvynx2wbelq", + "decode": "d4960ef0e8ef36a15679cca60272d3bae269d70d", + "params": {} + }, + { + "public": + "0360fecbceb38daa1b36b0a015bdf2e8c9dba2a3760eaf7df3afc1791f86cecefc", + "address": "f1kpfkleohhl7pmot365pac35573uf2hvfeuvnuai", + "decode": "53caa591c73afef63a7bf75e016fbdfee85d1ea5", + "params": {} + }, + { + "public": + "02ad6402f2d4cc8cc9d70401087724c3973129d506ea2e93614bad9d3fe5b18615", + "address": "f1x7ggtx2c6sszsvyzirprljlqp4shvx5ff655kdy", + "decode": "bfcc69df42f4a5995719445f15a5707f247adfa5", + "params": {} + }, + { + "public": + "03a39e0f8a9be7f57ecfc3046a15c9379f8fc42aaf52bbcdce6317182f530de022", + "address": "f14czwhr3zlkrzsrsnznfn2rcwtxw4npgndicfy6y", + "decode": "e0b363c7795aa399464dcb4add44569dedc6bccd", + "params": {} + }, + { + "public": + "02d46bea4630becaa676465283276e1407f0f258e00e64ef4e6f6d7cf3456c9f47", + "address": "f1ankl5gq3shlypmcrsbp65puy3khhxthcdrb42fi", + "decode": "0354be9a1b91d787b051905feebe98da8e7bcce2", + "params": {} + }, + { + "public": + "025ce2ae12d746099d4ccd58de7384f87cfd4de5bf30c692762cd7b69ed38d98ba", + "address": "f1vpk5m77guddyfv6rhot2j2btqhnc2yuzcqlzq7q", + "decode": "abd5d67fe6a0c782d7d13ba7a4e83381da2d6299", + "params": {} + }, + { + "public": + "028c1fbcfdf64082143759ed5b8fed08cd1d909e69db8406929cb33d231a859ee7", + "address": "f1mqnqiosm6dt7a5pjph7ghnmuegga3fowzgrwlvq", + "decode": "641b043a4cf0e7f075e979fe63b594218c0d95d6", + "params": {} + }, + { + "public": + "02fe259c9fd421832697a0af33f6fb8a4e2192961dbb05358b29da920d4a7ebea8", + "address": "f1urtigmtcpoczctpkuqw72yaj5mmyvvyrps4wnzi", + "decode": "a4668332627b85914deaa42dfd6009eb198ad711", + "params": {} + }, + { + "public": + "03ed56dc4e50bfa6c6d147d8a61024249b1d6b345c9b4e618bf1dda88c0881e02f", + "address": "f1rmezm2wqfzlwibkxqz2pczanhipfvvgein7jm3a", + "decode": "8b09966ad02e576405578674f1640d3a1e5ad4c4", + "params": {} + }, + { + "public": + "0335db0cb8e276b3703ce576cc48174013740575828e5a520fd9ff4be9f1946fb8", + "address": "f1nq3fcfqgj2edz57k42fn4xm3ondp6mllkcacbni", + "decode": "6c365116064e883cf7eae68ade5d9b7346ff316b", + "params": {} + }, + { + "public": + "03d8c4989fa8afa348701a040b79af9c27599324b77896544c60ebee3d4e877f3a", + "address": "f1nswigmayixzgkev2ncojzncowcv4wh6hehkahpq", + "decode": "6cac83301845f26512ba689c9cb44eb0abcb1fc7", + "params": {} + }, + { + "public": + "031b38636b0d2bf26803d26ebc0d925d56a2dc8fa26a3dbdb8496d7f394195657e", + "address": "f1b53afwfiludghvj2raonnw4az3pynvf3d46jgyq", + "decode": "0f7602d8a85d0663d53a881cd6db80cedf86d4bb", + "params": {} + }, + { + "public": + "03b4f0a9df5c42204edcb464cf2e20176c4448ef9c19d920f64eca4048fb5b3c55", + "address": "f13ndee3t6mk7abebwoh4jm2tkhrxrp6t2alnkwua", + "decode": "db46426e7e62be00903671f8966a6a3c6f17fa7a", + "params": {} + }, + { + "public": + "03cc50e91bac15c4434a68f681a408f22707f193d5829e3e8c5ac1e7f35d6acb2c", + "address": "f13un4atkzsjz5g6eb5nh37r4i7wnzgtewb6gvbwi", + "decode": "dd1bc04d599273d37881eb4fbfc788fd9b934c96", + "params": {} + }, + { + "public": + "03a38f04d3f1af5d7b8f49f620618b995f2858df202e3652a65b8d79b79e9da2d2", + "address": "f1ywk6i54om6kbn7bjese4vapsod4tevmc2yq5g3a", + "decode": "c595e4778e679416fc292489ca81f270f9325582", + "params": {} + }, + { + "public": + "02eb2f929daecf39246262bff73828ad7a5246032ca7fbc23449ca65b54376e524", + "address": "f1lljm7dz3kkqtrs57kb2ihoyavf5e5kytkceesfa", + "decode": "5ad2cf8f3b52a138cbbf507483bb00a97a4eab13", + "params": {} + }, + { + "public": + "030163c336e93fd2acbcf94fb48c3e4d8ea4796b2c884f598e20c2016d55f00356", + "address": "f1isvk6rviqwk6mxcbkz2s5zloj5qo3hfbzj37k5y", + "decode": "44aaaf46a88595e65c4156752ee56e4f60ed9ca1", + "params": {} + }, + { + "public": + "031a31cfd0ab4df8a267b9590fb0528bcb0728020683eff976f817bc49137c3f57", + "address": "f176ly46wvefqrodhj4yljegkkukyoohjqqktgfhi", + "decode": "ff978e7ad52161170ce9e61692194aa2b0e71d30", + "params": {} + }, + { + "public": + "03832af7d2c99098b68a8e70b5b79bd80df4b7d61c3ffa0b30a66d3e90c4129990", + "address": "f1hngprocmphqcfcdgkhbahhdjs66u5fhomibzzca", + "decode": "3b4cf8b84c79e022886651c2039c6997bd4e94ee", + "params": {} + }, + { + "public": + "02b79beb26e67662d2705a0d925fd2939a57e2ed8aaaa7c4fbb70a73a7a757ad70", + "address": "f1bnloit2rto7nhziwkmlzz54ocxxtpicctkbmpvq", + "decode": "0b56e44f519bbed3e51653179cf78e15ef37a042", + "params": {} + }, + { + "public": + "03fd3f6eada40ddfd58655cff445be40314849be37a532f431b83b996a31faf409", + "address": "f1glym6zlxvgcqzuhisv7dhq3vofp7jernxz7733a", + "decode": "32f0cf6577a9850cd0e8957e33c375715ff4922d", + "params": {} + }, + { + "public": + "02cb199afc17b501c18ce40c8e4429cd54c995c842a7cb9af2255c50acd4ccced6", + "address": "f1s4npyoj56phvksdmpc2s3snhqi4ohljg7nj347a", + "decode": "971afc393df3cf55486c78b52dc9a78238e3ad26", + "params": {} + }, + { + "public": + "02f2ea206d348e9f836a85ccd4c557bbcd38717d1140caec598de2c0f7529fc699", + "address": "f17qig5th23rlugsip6drjxtxtkrd4xc27xgttxky", + "decode": "fc106eccfadc5743490ff0e29bcef35447cb8b5f", + "params": {} + }, + { + "public": + "030ed0396ef05287fdc31cf8dc9b164ba21683c29c47d2f223306d97fbceaf1e54", + "address": "f1lnhewqe4bmcgddrl4fvrfuxelk6plpi7c56xv4y", + "decode": "5b4e4b409c0b04618e2be16b12d2e45abcf5bd1f", + "params": {} + }, + { + "public": + "039bba0880443633548a3632517ba30a7ea59556b9ca079d99aef57dc8a5588aef", + "address": "f1iz5bpt6z57yzwq564f3mipmnr27opb65447szyy", + "decode": "467a17cfd9eff19b43bee176c43d8d8ebee787dd", + "params": {} + }, + { + "public": + "02d262f40bcdd4e970d88f366f9273dced5ba9215d1c043ddf2b7476e8f6860298", + "address": "f1bcfbwwrpplgts3be6gzbf7gibultwvtcffdsm4y", + "decode": "088a1b5a2f7acd396c24f1b212fcc80d173b5662", + "params": {} + }, + { + "public": + "026ca65da3aeb99de12119119f783d75cbf0f66f44ebddcb9f7a4c8bfb90fb6556", + "address": "f1ar3zgs5mq64q2jbjtxgtnwj2lvt7ydwddoor5fa", + "decode": "0477934bac87b90d24299dcd36d93a5d67fc0ec3", + "params": {} + }, + { + "public": + "028369666997b563e56e537651a9fde1aba703cd0e00f99cdd0e3dc94bdcf846cd", + "address": "f1a3tylyt7t6z5slrd7uqyoejkwjww4yocrov3mzy", + "decode": "06e785e27f9fb3d92e23fd2187112ab26d6e61c2", + "params": {} + }, + { + "public": + "030fe5c13ab4d36f21f70e400ea7cf6acf62ab17824e9c489af3a7ef3979c6e482", + "address": "f16ug3tolqcb63vt6mcanqn3xrzqoiajtswad3eha", + "decode": "f50db9b970107dbacfcc101b06eef1cc1c802672", + "params": {} + }, + { + "public": + "0281d89c5cc92cd3f6abd28eddef58b093bc350d53e1e80dbbeeb434b015c9b4da", + "address": "f13zouqcctgxe5eyulqqy7ryixrw4rjululkspzxy", + "decode": "de5d48085335c9d2628b8431f8e1178db914d174", + "params": {} + } +]; diff --git a/example/lib/test/address/icx/icx_test.dart b/example/lib/test/address/icx/icx_test.dart new file mode 100644 index 0000000..297510e --- /dev/null +++ b/example/lib/test/address/icx/icx_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/address/icx_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVecotr; + +void icxAddressTest() { + for (final i in testVecotr) { + final params = Map.from(i["params"]); + final z = IcxAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = IcxAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/icx/test_vector.dart b/example/lib/test/address/icx/test_vector.dart new file mode 100644 index 0000000..09a4c97 --- /dev/null +++ b/example/lib/test/address/icx/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVecotr = [ + { + "public": + "023a51f1e74620da7e73b958835d98c2348bff89c6105746f0fdbc94185205e116", + "address": "hx618cbff1d4cb828b4b043bd02a75f7a12fb4e33c", + "decode": "618cbff1d4cb828b4b043bd02a75f7a12fb4e33c", + "params": {} + }, + { + "public": + "03aa3cb38b9f578912ad2e2dad5dcdf6a83df09c6096f0493d9586d455571eae04", + "address": "hx177e75c5c4ec18836c1f03b93e4c2f08f4be4b96", + "decode": "177e75c5c4ec18836c1f03b93e4c2f08f4be4b96", + "params": {} + }, + { + "public": + "028d1ebddcbdbab47774625ad08d1435e09cd9c235d558ac8d525e8b3aa700329e", + "address": "hx5590e49f8156478dfd976fc20f9d933992bb3787", + "decode": "5590e49f8156478dfd976fc20f9d933992bb3787", + "params": {} + }, + { + "public": + "034d9578006242fa0a39a2d7877d4c98ce82d974750c6b667420631520f6df87a5", + "address": "hx7026f25879cd3129722c8ad48f1d5306c0ab29a5", + "decode": "7026f25879cd3129722c8ad48f1d5306c0ab29a5", + "params": {} + }, + { + "public": + "02159626b7adb4198d74fda9f8a67a4eb62c07367208dfb49e66954953bef549cf", + "address": "hxa06a7b199ab49a2395bb9025b4c23100ff5c267f", + "decode": "a06a7b199ab49a2395bb9025b4c23100ff5c267f", + "params": {} + }, + { + "public": + "0329a6081e5dfedfafc1f5fe5f7dc6e2d6e0e720cde51a4e5b9de105b56ea13084", + "address": "hxb7d7f4cdd0b107c8c833b3854a62dafe3e268a8a", + "decode": "b7d7f4cdd0b107c8c833b3854a62dafe3e268a8a", + "params": {} + }, + { + "public": + "0227f5a195763ee93b2b120a6a3772afb911bb8bfa7714c5f73d18b562d4d6b2a4", + "address": "hx5a829f5158ab8a80b469079aae7fcdc5dadce9a8", + "decode": "5a829f5158ab8a80b469079aae7fcdc5dadce9a8", + "params": {} + }, + { + "public": + "02d40a6821e8414e48bfdc0f0195099c9944564dd4eefb92ddba24758ab96e2893", + "address": "hx943cdebff39db7b35cc23ada42e1e2265dad79ec", + "decode": "943cdebff39db7b35cc23ada42e1e2265dad79ec", + "params": {} + }, + { + "public": + "0238c3875c8999d7d36581fa3baee377d0ba20fe2affd0997fb493b751af004533", + "address": "hxb20dca53942ab0e2e9555204eac391c5212added", + "decode": "b20dca53942ab0e2e9555204eac391c5212added", + "params": {} + }, + { + "public": + "03023a38b4f900d173bf36556c06cfe8893393e3d4561b60a85f5bc537bcb2f182", + "address": "hx2509a4abeb626f8327a0bc91bbe1a062760321db", + "decode": "2509a4abeb626f8327a0bc91bbe1a062760321db", + "params": {} + }, + { + "public": + "02f627c6ddf14d29a626fbb328e566f8d63b7abce60ed2718120600db4dbeb67da", + "address": "hxce8276fb975a99b9a74e7e7a431cfccf317b5ed7", + "decode": "ce8276fb975a99b9a74e7e7a431cfccf317b5ed7", + "params": {} + }, + { + "public": + "038d28cfe77dadaba05a3548432c28732678798df1c12d2141af9c9eeb4d75cf3a", + "address": "hxabadfcb916096a07c0817a55557ae25b40829914", + "decode": "abadfcb916096a07c0817a55557ae25b40829914", + "params": {} + }, + { + "public": + "03f6e3e2331252dd5675d5e62014fbe1df7405cde9208772585a6b8bf46605e1d5", + "address": "hx73048fc30000e5bbc734c9d621373adf404558ba", + "decode": "73048fc30000e5bbc734c9d621373adf404558ba", + "params": {} + }, + { + "public": + "03b291286add6b897e8fd24a78b3edc58c26fdaf6defdf4ec5616897fa52006f26", + "address": "hxb4f7cd3c35e49f2a4557e42ccc021f71fc0bd7f2", + "decode": "b4f7cd3c35e49f2a4557e42ccc021f71fc0bd7f2", + "params": {} + }, + { + "public": + "0230c3ae2f8a89126d291102abf7f755e9c46208ed7b3d746781044d1680b6e7e6", + "address": "hxa9854668cd934dc374ddd8fd87b1d62ba873243b", + "decode": "a9854668cd934dc374ddd8fd87b1d62ba873243b", + "params": {} + }, + { + "public": + "0241a5684239f9b5082f21b0d52bc58497196a4978949968b468953337d81b9377", + "address": "hx10267a6b2caf95eef0a9cde06270ebc871054233", + "decode": "10267a6b2caf95eef0a9cde06270ebc871054233", + "params": {} + }, + { + "public": + "032af54d3fd3730ff9668f3be7a7d322b25c0e332c3a2497fdc9d0eb7524b7ad44", + "address": "hx0794e5fc0731f55751124738d765fd3879da5e7c", + "decode": "0794e5fc0731f55751124738d765fd3879da5e7c", + "params": {} + }, + { + "public": + "025958a3082f0ae94e7928616380c379beab4cf01f46132bb784301cdc29cd0110", + "address": "hx27596e89384e0d99c67613aa673fe906695cbf76", + "decode": "27596e89384e0d99c67613aa673fe906695cbf76", + "params": {} + }, + { + "public": + "0355b1440e14c7a1d0ceb43551f87c0c90a5ee34a2447e45d99c1379180c82a5c7", + "address": "hx9b4b32b4967ae55bfd5e51289da72b6326120229", + "decode": "9b4b32b4967ae55bfd5e51289da72b6326120229", + "params": {} + }, + { + "public": + "0307e39449e76e6d05645389a172e103e4e8f505a90ab9247d7f74700b9a2f4b18", + "address": "hxc38d3a88a57417f764d43456855d935d8b6b28d4", + "decode": "c38d3a88a57417f764d43456855d935d8b6b28d4", + "params": {} + }, + { + "public": + "022dfcc750c75528b756dbfaee3faa80f6f8f80b51b35d253dd23c687b6c7c5eb2", + "address": "hxd9910b43070dd8bb121c4e399642ab87dc6b2bb1", + "decode": "d9910b43070dd8bb121c4e399642ab87dc6b2bb1", + "params": {} + }, + { + "public": + "02ad3c53a07532d23e1ea383040bc058ab0116033c79c209b4050247d45caa9fb1", + "address": "hxfb14e9a762ae7d072bd316816d083840960b8074", + "decode": "fb14e9a762ae7d072bd316816d083840960b8074", + "params": {} + }, + { + "public": + "02092fc336fcff8a9047c39faa3118a7211d63724501cb1761175fb08334e96d24", + "address": "hx247a94eaef48b8a87adca43e9d298d8b409e7ba0", + "decode": "247a94eaef48b8a87adca43e9d298d8b409e7ba0", + "params": {} + }, + { + "public": + "03d1626245b49482222cc3edfcd0887aba1db254d848e184cc18e8f4f304994fbb", + "address": "hx8f75b553dc909347d6722cb795a4b76990c8cd50", + "decode": "8f75b553dc909347d6722cb795a4b76990c8cd50", + "params": {} + }, + { + "public": + "03763eede8af4e9ad0a05e2c3ae9fac92e88981cb58802e32f8490795d0d593784", + "address": "hxefd20a32148fc8446b07ba0c65df86718f6d81a9", + "decode": "efd20a32148fc8446b07ba0c65df86718f6d81a9", + "params": {} + }, + { + "public": + "03219b83ce661a5cc894f30ee1542bc977aba85d8de690c9aa0691304ff68913d2", + "address": "hx2cc69d5540999e1aedc5afeda362dddb9475e07c", + "decode": "2cc69d5540999e1aedc5afeda362dddb9475e07c", + "params": {} + }, + { + "public": + "02f19319bc79c81cd39238ee8afb1b70ac1cfc143291247bc0c07587ceba06ed3b", + "address": "hx7908887c9533097d2ff2a5279f44b7b95a42e595", + "decode": "7908887c9533097d2ff2a5279f44b7b95a42e595", + "params": {} + }, + { + "public": + "024c072ee31347b399f0822930aa76ab83c30dd9a8a26b99dd0b03612ffd6dea55", + "address": "hx9defa27e60a532c7edcd3a6728f03ceb06e8e270", + "decode": "9defa27e60a532c7edcd3a6728f03ceb06e8e270", + "params": {} + }, + { + "public": + "02646289015d06c7560570a51117ef481ccd7144a835765263175a5b7d1030092e", + "address": "hx642815daa94d5dd9ee2b5fd451fd91e3f85e67ff", + "decode": "642815daa94d5dd9ee2b5fd451fd91e3f85e67ff", + "params": {} + }, + { + "public": + "03646bddb350f11f16b7623424b30167bbe0aba1039d4125b8943648053ceed655", + "address": "hx2210a9e78d8e5747adef8d775577d70218daa418", + "decode": "2210a9e78d8e5747adef8d775577d70218daa418", + "params": {} + }, + { + "public": + "03344e6a58d5d23414ff2757a5044b0492d27812438a0540ea2113ea0b09936a91", + "address": "hxb806361099f7afd42293d0406ca36299ab2af4d2", + "decode": "b806361099f7afd42293d0406ca36299ab2af4d2", + "params": {} + }, + { + "public": + "02b2798e956b17fd5328f3866f19bfc6bba007cf81b8054465a7ee31febdc82584", + "address": "hx24a8bda757c90a9f8d704b3c199e1149fa404897", + "decode": "24a8bda757c90a9f8d704b3c199e1149fa404897", + "params": {} + }, + { + "public": + "036698263e395fdea719a4cd88567ecfb292223e22a788c57b4774847581bba890", + "address": "hx4fc2ff63306a7d335e216aeae9090568e336761d", + "decode": "4fc2ff63306a7d335e216aeae9090568e336761d", + "params": {} + }, + { + "public": + "020ad80bc0195519a07f1b80c7589abbf4f7c8afa191c4e5eaab8d410df1507d97", + "address": "hxffcab0021ccecd6d5139d6f49e4e63d618eb399a", + "decode": "ffcab0021ccecd6d5139d6f49e4e63d618eb399a", + "params": {} + }, + { + "public": + "036ac32dcd313fbdfcf4276c1caf5890caa39f53ba2382c2740a2cfa68374e2ee7", + "address": "hxb80185d2f37417a76c27d530ff427f659079f3be", + "decode": "b80185d2f37417a76c27d530ff427f659079f3be", + "params": {} + }, + { + "public": + "02eadd7d846b9633b0dc16c04d1b3d4f840617e3f13a24849709354c105e6d8e78", + "address": "hx98b83feda5442b8e4872062b827eda1f8c872531", + "decode": "98b83feda5442b8e4872062b827eda1f8c872531", + "params": {} + }, + { + "public": + "02c262ac3344bcdb946751601b241607ea315f59aacb5d05bf22647d53c7d068ab", + "address": "hx9f3e511e1978be92e2a69d7d5c6a23f666eebb41", + "decode": "9f3e511e1978be92e2a69d7d5c6a23f666eebb41", + "params": {} + }, + { + "public": + "03fd21e191b4d725a4f5cf1125d7756432f90a41e74076103dda362d8439d7d2c2", + "address": "hx6554e4c775fce44c662a392fe72ddf2bcc3ed481", + "decode": "6554e4c775fce44c662a392fe72ddf2bcc3ed481", + "params": {} + }, + { + "public": + "02d527032c9896bedf7677803c689e33048884b17ae71165f892f0ebe6d793d5fe", + "address": "hx7aa3043f3a326d82b3191a8988de13104562cb4f", + "decode": "7aa3043f3a326d82b3191a8988de13104562cb4f", + "params": {} + }, + { + "public": + "02efcda087ad31650d424c819e5c6f796ca589d6d9a0aa24f5af325de820dadcea", + "address": "hxe57d2a582167539242819d993a1698082ffb3a91", + "decode": "e57d2a582167539242819d993a1698082ffb3a91", + "params": {} + }, + { + "public": + "03e9285976e67b23e68cb42757aa44bf66b5e97b5f30be4f6536e76b508e0c6cbd", + "address": "hx0ae6043f2963fecc0fff535b3354bea85af67723", + "decode": "0ae6043f2963fecc0fff535b3354bea85af67723", + "params": {} + }, + { + "public": + "023fee76319d71770f1c59305584d3d142ba2808dd308eaca58918e2c2d250eefe", + "address": "hxb525f95c577553b423d2e979eefb2e94d81766aa", + "decode": "b525f95c577553b423d2e979eefb2e94d81766aa", + "params": {} + }, + { + "public": + "0251b2a1ab635cfe8a1edf5e159f871c571d665325d7e0c155db77e53f2a3b69c9", + "address": "hxe033ac7ff731ab803071b5323ce4380b286cc14d", + "decode": "e033ac7ff731ab803071b5323ce4380b286cc14d", + "params": {} + }, + { + "public": + "021015f7c2d6af27a1bbbfbbced85d8e38da94823441295057a3878c6fc5343cce", + "address": "hx72bc309114a50a194f79f7392b17c3a0e4fc4102", + "decode": "72bc309114a50a194f79f7392b17c3a0e4fc4102", + "params": {} + }, + { + "public": + "027ac4c04a0fb4a32c867ac5dd495deaa97105413bbb36371bbc7d83933b014a54", + "address": "hxbda7d46043096d81fd91465bdaeaf80270847b6d", + "decode": "bda7d46043096d81fd91465bdaeaf80270847b6d", + "params": {} + }, + { + "public": + "02cf16694f452d2e2b1a679b1b02b327a8a79b17acf74d1d0cec0f2e5db79cf006", + "address": "hx1070c3e710c2fbb3b8ff9a2f3dc9412dd751d8ff", + "decode": "1070c3e710c2fbb3b8ff9a2f3dc9412dd751d8ff", + "params": {} + }, + { + "public": + "0227d56c207392ce9e28ca3e9b6d28a671f594ee129cb5554826317bbdc3d9bb6d", + "address": "hx03c9d9d667b02db9e8a57c14da97579ad6e19939", + "decode": "03c9d9d667b02db9e8a57c14da97579ad6e19939", + "params": {} + }, + { + "public": + "02c54aa95a365f203ee4e0a14b85402b85a71cf6ccb8e3f00983828d2ef40cc7c5", + "address": "hx248da6f4924302f33cc875689ae205db21d4330e", + "decode": "248da6f4924302f33cc875689ae205db21d4330e", + "params": {} + }, + { + "public": + "03f8c50b5a3e1e2982e4145b42f1de520d872d27f039165ae7291c958e68e76b68", + "address": "hx0840e08ae3ffebcc54ccf33dff623ff6e04496cf", + "decode": "0840e08ae3ffebcc54ccf33dff623ff6e04496cf", + "params": {} + }, + { + "public": + "02556b576abfffb582916c86c2c20094ff2f0aab0f830dc00fb227a3d5daee3813", + "address": "hx27da67e03fc76e5c890e20a61ff4c13b8e59d74d", + "decode": "27da67e03fc76e5c890e20a61ff4c13b8e59d74d", + "params": {} + } +]; diff --git a/example/lib/test/address/inj/inj_test.dart b/example/lib/test/address/inj/inj_test.dart new file mode 100644 index 0000000..c7e8fb7 --- /dev/null +++ b/example/lib/test/address/inj/inj_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/address/inj_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void injAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = InjAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = InjAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/inj/test_vector.dart b/example/lib/test/address/inj/test_vector.dart new file mode 100644 index 0000000..2402028 --- /dev/null +++ b/example/lib/test/address/inj/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "028774cc5f11996a24f89b2ab8e8cc72070fa903bbdf6f1aafc7b2ff6bdad160f8", + "address": "inj1mpu4l7dk2huhssfdrv3etchpxd62udeduyltcg", + "decode": "d8795ff9b655f978412d1b2395e2e13374ae372d", + "params": {} + }, + { + "public": + "02202dac31a5d5ce4fcddc46cc5df5dc4fa44aa051a253ae0a49aff3d9bc38f70d", + "address": "inj14t9p8qgmxrsmyzgxwlkpdt786md26mahcr3ead", + "decode": "aaca13811b30e1b2090677ec16afc7d6daad6fb7", + "params": {} + }, + { + "public": + "0209ca06a08de7d67fe0a4bcd3f3a1c2fd260be51ecc9e77af1a9f1c47c0f4026c", + "address": "inj1t0mtl277wy80u8fnndpxphr3qm74szm654j7nz", + "decode": "5bf6bfabde710efe1d339b4260dc7106fd580b7a", + "params": {} + }, + { + "public": + "027ff286058558b41a6cb325e20d701c99f53006fcd9a4dd4db8a755b530760329", + "address": "inj1vd4rzp8e028v6fj3adqf3lj25duurkgdav6zc4", + "decode": "636a3104f97a8ecd2651eb4098fe4aa379c1d90d", + "params": {} + }, + { + "public": + "030b1491a7015db773f0e9c4a82fb74a20420fddd684ea9ba8ddb4f9af0508294f", + "address": "inj1njz5304rwcksw60hurur98hxachj7lemv32ejh", + "decode": "9c8548bea3762d0769f7e0f8329ee6ee2f2f7f3b", + "params": {} + }, + { + "public": + "03ef104b4fea3f73c6fe414c630036eb46d91e3afdede325b8ca9fb425aec5aa0d", + "address": "inj1cmqul3c04tlhtal34ujc4xmdryhdj35t4rdfrp", + "decode": "c6c1cfc70faaff75f7f1af258a9b6d192ed9468b", + "params": {} + }, + { + "public": + "03a805669a7dfc31efb6c17e82f614a7bf1a99435d3edbb13c5478af8fb1097113", + "address": "inj10ldj0xeguxaztz5eukrkewweue6r9jhkw87lxx", + "decode": "7fdb279b28e1ba258a99e5876cb9d9e67432caf6", + "params": {} + }, + { + "public": + "02a9a4e32a99540f162887a1ba12c705b5c53d3eaea96c0a821870095f1081b4af", + "address": "inj1dkqglrnvg685ulzn6d6xnxnalzacgeke3huc4r", + "decode": "6d808f8e6c468f4e7c53d374699a7df8bb8466d9", + "params": {} + }, + { + "public": + "032a3455ed7fc28d4553931328c5b436e1e1d79a2c21c775282954a35b23cbd81a", + "address": "inj1g7crg48uwdzu5jk08765ruz5agrkqnxauuf2yf", + "decode": "47b03454fc7345ca4acf3fb541f054ea07604cdd", + "params": {} + }, + { + "public": + "025c8825044a081e20b941331fd75627425ac60f43d149f67a694b06b1a75d040d", + "address": "inj1u9qvg0fyf4je5up4yqeulv7grxg7ynx59gsc66", + "decode": "e140c43d244d659a70352033cfb3c81991e24cd4", + "params": {} + }, + { + "public": + "028cececf369e7e0f4cc2160a1a3fe88bb5b1983889db16405d17730b61d8ebe1f", + "address": "inj1w5qxwh46vrk787c9jjz0gnzy2p52w97d4vsx6n", + "decode": "7500675eba60ede3fb059484f44c445068a717cd", + "params": {} + }, + { + "public": + "0290f1596f36d76c6686394fa31d3e50b601dcee85edba8c69d38d716d2c43642f", + "address": "inj1q4hglwse39c9xzp2rrpxvmr0cp33efwrrrzvzg", + "decode": "056e8fba19897053082a18c2666c6fc0631ca5c3", + "params": {} + }, + { + "public": + "020cb3ec97a9d22081cf9a54bc4ea7d7dcd262c8a0428fbbb583f7159c0b21c1f9", + "address": "inj1wseh8pru3d06sn4rge4e7e03g292wfwqtcslac", + "decode": "743373847c8b5fa84ea3466b9f65f1428aa725c0", + "params": {} + }, + { + "public": + "031233b729a5d70452ac9d782be1dfafb74ee2edf9d87d87a890e37d716123fe5e", + "address": "inj1z52sc5ftt9vkd4n3vxqgusqejr23q55t9l4hqa", + "decode": "15150c512b595966d67161808e401990d510528b", + "params": {} + }, + { + "public": + "020d2e8675eab2f5b9b0acb9e5dfd1d224ee0cf5624bf23a4d48a45b9196181235", + "address": "inj160vwepf5ay2lput33q97m85x2ue3j3rs6vxt8w", + "decode": "d3d8ec8534e915f0f171880bed9e865733194470", + "params": {} + }, + { + "public": + "02e47aafa16cd56393905f7a6d8ae1ec1730864671466683346bc7a253189f5c9f", + "address": "inj1ya9s5ztma3e85pdl8td09ms4jk364fg85alh54", + "decode": "274b0a097bec727a05bf3adaf2ee1595a3aaa507", + "params": {} + }, + { + "public": + "023c9860c49e81dde2a89e23f219937108d4cda99e8a1c02c19b19761030103bab", + "address": "inj1sq04l3kufq00xyr2t5kst68yhsnn89vka2hv69", + "decode": "801f5fc6dc481ef3106a5d2d05e8e4bc27339596", + "params": {} + }, + { + "public": + "02f4f575fe363bb651eaf5be3aca335677d32d3d9dd420f26f3180835da75fae07", + "address": "inj172xsrkc5x68guhqvav8cpmxaqnyma8763448au", + "decode": "f28d01db14368e8e5c0ceb0f80ecdd04c9be9fda", + "params": {} + }, + { + "public": + "0235cc003f5460993019a4b2c9d48d949c3b3e5bffd9619e20036d3c2061c3146c", + "address": "inj149k2qayzq90gfgfyd9476u63msfz9ea5h4fkhh", + "decode": "a96ca07482015e84a124696bed7351dc1222e7b4", + "params": {} + }, + { + "public": + "0347a0e2ab24f013c4f3950eff2b6bc660e7cf8d7c9b2a6335a5629cae9da1eb96", + "address": "inj1kx3hxajkrnkgf9h3eqnhfh309ugqqnmel05mgh", + "decode": "b1a37376561cec8496f1c82774de2f2f10004f79", + "params": {} + }, + { + "public": + "02f64f8b331101855d7458a8077774c76da5c8391980fc5fa62b15d593dce100ca", + "address": "inj1md77eagzc9qvhk57pvyvx5h8arpwyt9egj5m2f", + "decode": "db7decf502c140cbda9e0b08c352e7e8c2e22cb9", + "params": {} + }, + { + "public": + "020c8d64e6b345f226cda32f23369cb998cfb31ad487f29c5d80abb3ac1dd5039c", + "address": "inj1p3sekk7n49yvq46tgls5hkakmp678egzktdsjd", + "decode": "0c619b5bd3a948c0574b47e14bdbb6d875e3e502", + "params": {} + }, + { + "public": + "0340b9c727e98b8f933389c6463e0b7a15127431c7a2920b6ca5a81f0b62d69679", + "address": "inj1d6z0dhljl6ygmy24aql8ehgd6tvncxjfdlr0xu", + "decode": "6e84f6dff2fe888d9155e83e7cdd0dd2d93c1a49", + "params": {} + }, + { + "public": + "0389573bc8d1916edb2e58d5b1baa3dde47211ed7dc15dda9506277a383635ad74", + "address": "inj1sxxhkv0zech2quzcpnxz8umqj4t8e0znvgwcse", + "decode": "818d7b31e2ce2ea070580ccc23f36095567cbc53", + "params": {} + }, + { + "public": + "02efaae9c2a3a0646cba02c812824f443c522a900b6a7c1e75aa1804558f0da84a", + "address": "inj1p4qwraz3hmgtp2djgsap04792fxgf6hupstw07", + "decode": "0d40e1f451bed0b0a9b2443a17d7c5524c84eafc", + "params": {} + }, + { + "public": + "025e590f052c1d1e7d614e470bac01057515e1eeb12d596b3de714ba4a8a0a27c2", + "address": "inj1kwg855c9r7w56nekyze4963s345kgun8fr2ga6", + "decode": "b3907a53051f9d4d4f3620b352ea308d69647267", + "params": {} + }, + { + "public": + "023e34dd60f48b8abb7b619d6ab5fd452edad10d7abc0e0430926f8656a589da27", + "address": "inj1zp2jlcdn7z0a2l057xydl57xgu5nlm3mh2cjk0", + "decode": "10552fe1b3f09fd57df4f188dfd3c647293fee3b", + "params": {} + }, + { + "public": + "02d8cb3dfbd9019256c5e6c5147f608a2f3b593d27cfe4e346d7045a906d6aa43f", + "address": "inj1fyxpv9tdjm35hfwzlc5egpxucr6hfnrv27ncxw", + "decode": "490c16156d96e34ba5c2fe299404dcc0f574cc6c", + "params": {} + }, + { + "public": + "031ec18142d31907e8d77ec9054973de812e13ae9f1f1d1526a96d50fe983df99d", + "address": "inj1cneqc4zy5spphgn2ffn8tqfm5sgks4f227h90s", + "decode": "c4f20c5444a4021ba26a4a6675813ba41168552a", + "params": {} + }, + { + "public": + "02a46f12dc219199a24e80eebd7b74316c3b3051b96e7f3cdd81a67f45218235ab", + "address": "inj1mc7f8hycx4ltnm7zncauaur0qf454wssl5an9t", + "decode": "de3c93dc98357eb9efc29e3bcef06f026b4aba10", + "params": {} + }, + { + "public": + "021c21e88fc4da3b2806dd2e22fc1eca978a2c25f984ebd8e61daf0336befe4f34", + "address": "inj1hqs62e68vj690c5r0y57ywfv7hg4vjkah5779l", + "decode": "b821a5674764b457e2837929e2392cf5d1564add", + "params": {} + }, + { + "public": + "02376c5030d263d1f83aca8e05bc12d111c6d6fa0d2c51390bd7a51ff93a4490fc", + "address": "inj16cchpz9sm2f9l3jnmjesuxgwq0euzqtnctun34", + "decode": "d6317088b0da925fc653dcb30e190e03f3c10173", + "params": {} + }, + { + "public": + "02b54f1089d2a7e9c9a1b082e4fb5e9663031f7369d00ff5bfef63493a534f289d", + "address": "inj1l9laefd8pydptndrlutacylcpn9gp6m24ugcce", + "decode": "f97fdca5a7091a15cda3ff17dc13f80cca80eb6a", + "params": {} + }, + { + "public": + "033cf5906febd9dd9941d9664857b4d11e86c06341edfa339bfa7a1678f627e9d3", + "address": "inj14jfeapjd4ll4q8gesrd0vl0dwadh5y4lu9kk33", + "decode": "ac939e864dafff501d1980daf67ded775b7a12bf", + "params": {} + }, + { + "public": + "025c67c83ecdefaa4d2cab7ed15df7ffdf1194ab8fced9298f665b709d476e338c", + "address": "inj1fvk4n0ujjg82t2974v5yj3c80hred37shx75nn", + "decode": "4b2d59bf92920ea5a8beab284947077dc796c7d0", + "params": {} + }, + { + "public": + "024fa40126861223b9f85125a9e7a87771ef4730f4d2e773d3e911ccf9a7a31ef1", + "address": "inj1zugaudlg63hkk32kxd6gqgzqq6nhu0avzjkc5u", + "decode": "1711de37e8d46f6b4556337480204006a77e3fac", + "params": {} + }, + { + "public": + "039ba491e836745a0e29775c5c717f5a747e7bc6d18bd7e7e133747276249b7e71", + "address": "inj1hnln9rmsl4w22z0h99qvhncydphkcltc66tsa7", + "decode": "bcff328f70fd5ca509f72940cbcf04686f6c7d78", + "params": {} + }, + { + "public": + "02eb127248855ccf8e6d6c33393bda1003f5a02d0effb21db3f672dfe2ef6e4406", + "address": "inj1r6p4xmpgfre090a5nvj9ps3vmghj7kvlfgz392", + "decode": "1e83536c2848f2f2bfb49b2450c22cda2f2f599f", + "params": {} + }, + { + "public": + "03fce4439955d6d82c11b49ea010ab4422acb72fed9bb51ba30a17af58354b9097", + "address": "inj199m42ll0ty78t46k6kxs6uqkh3y4nn4862wacd", + "decode": "2977557fef593c75d756d58d0d7016bc4959cea7", + "params": {} + }, + { + "public": + "03f46877cad8f954973b7e539948cecd62270d5791478109bb7d491063fd15a41d", + "address": "inj1zg200gp6jju8z7jz22tkyhgyu20dmkjvdhu3uc", + "decode": "1214f7a03a94b8717a425297625d04e29eddda4c", + "params": {} + }, + { + "public": + "0360202fb3af4063098639acc562f7ae3740b3ef11a0b8b6dcbbbe7d28c43f0c81", + "address": "inj1ngmcf0vaghnuu0g4460tdngsxhr2e53gz750v3", + "decode": "9a3784bd9d45e7ce3d15ae9eb6cd1035c6acd228", + "params": {} + }, + { + "public": + "02c365a40b9bf1513c2caa9e3d6cdcebc6662cf6a8a487658f56e753be4db5dd0e", + "address": "inj1gztwfevkm78vqjslal5je72p4q0qqjppasz4ca", + "decode": "4096e4e596df8ec04a1fefe92cf941a81e004821", + "params": {} + }, + { + "public": + "030a698ce8a49e4c6bd02071d5c78bd45b7e8fd6009eb2a9d1d7239656c3421e75", + "address": "inj1y07hjn3q00yqfekd8ej6u7gj6d4ym3dv5f0g5l", + "decode": "23fd794e207bc804e6cd3e65ae7912d36a4dc5ac", + "params": {} + }, + { + "public": + "035f2c0cdcaeb88f929b5607248b27cc19dc5002a53909e8ffbad3502b3c742f58", + "address": "inj17r94a350v8tt2kxy0kl634q3yfkxttndex7r07", + "decode": "f0cb5ec68f61d6b558c47dbfa8d411226c65ae6d", + "params": {} + }, + { + "public": + "02056e9ae45bf3d33a59a71f4fabbb122289f5028e2b39b459a83d61bb0349ec09", + "address": "inj1jqamqumyn30cpl3e5ur6s52pw8ek7qzt69x9vn", + "decode": "903bb073649c5f80fe39a707a8514171f36f004b", + "params": {} + }, + { + "public": + "029c02afd3cfa47ae808aedfcfac45ceef3823c7ccc60956c5eab96e80cf970e9c", + "address": "inj1hvp5dzl36f73ku9vsfwwkavtxyju0eewhargft", + "decode": "bb03468bf1d27d1b70ac825ceb758b3125c7e72e", + "params": {} + }, + { + "public": + "03b37d3ba04cc5239485b4122c5b242c22422abe65c7df5a1d20f88c20a3aed1db", + "address": "inj10r4e9t4laz46yxgqgjfy6ngkylakr6jdkfshxq", + "decode": "78eb92aebfe8aba2190044924d4d1627fb61ea4d", + "params": {} + }, + { + "public": + "02c2251955b8c08f60f48e23522b4ffc5668d64724e910f9c347600344563ce04b", + "address": "inj1cptw85w2hxhvk5hgh23jtf4vuh9r2al672wczl", + "decode": "c056e3d1cab9aecb52e8baa325a6ace5ca3577fa", + "params": {} + }, + { + "public": + "02c74b667fe53869c78249b108329758698f8037bb62f085b861e1f26781db79e7", + "address": "inj1rr7vjq89kvykqalt2cz87usw6na2hfuu38qzf3", + "decode": "18fcc900e5b3096077eb56047f720ed4faaba79c", + "params": {} + }, + { + "public": + "027ea82601a2448af77c89ae0c6fce4f5beb8d86a7fc7c088cb7e3a3c53f8995b3", + "address": "inj13rx5cw6ccj3p42hy3nywecepc9f0gnkwny7dkm", + "decode": "88cd4c3b58c4a21aaae48cc8ece321c152f44ece", + "params": {} + } +]; diff --git a/example/lib/test/address/nano/nano_test.dart b/example/lib/test/address/nano/nano_test.dart new file mode 100644 index 0000000..a4088ee --- /dev/null +++ b/example/lib/test/address/nano/nano_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/address/nano_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void nanoAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = NanoAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = NanoAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/nano/test_vector.dart b/example/lib/test/address/nano/test_vector.dart new file mode 100644 index 0000000..b4d2ba6 --- /dev/null +++ b/example/lib/test/address/nano/test_vector.dart @@ -0,0 +1,452 @@ +final List> testVector = [ + { + "public": + "2e9386294287e55fea33edc1f0fd549cf28e835fb15e847a1da11d1e3ea14422", + "address": + "nano_1dnmirnn73z7dzo59ug3y5yob99kjt3ozecyijx3uaax5rzc4j346jbhnrxj", + "decode": + "2e9386294287e55fea33edc1f0fd549cf28e835fb15e847a1da11d1e3ea14422", + "params": {} + }, + { + "public": + "1870b986883bb889f3a85ba2cf49f643b3ff48eeaf65bc1a2f97a7ed6494757d", + "address": + "nano_185iq85aigxrj9stipx4sx6zeixmzx6gxdu7qif4z7x9xokbaxdxo3os5cq7", + "decode": + "1870b986883bb889f3a85ba2cf49f643b3ff48eeaf65bc1a2f97a7ed6494757d", + "params": {} + }, + { + "public": + "566006eb2d1b0332ec6c4c739ea4ccb514ddc1df2832fc90e8c36183a79754ab", + "address": + "nano_1om11uokt8r58dp8rm5mmtkesfanuq1xyc3kzkagjiu3igmsgo7d594pgysh", + "decode": + "566006eb2d1b0332ec6c4c739ea4ccb514ddc1df2832fc90e8c36183a79754ab", + "params": {} + }, + { + "public": + "976d0b3f4db4a4e151d2992e042bf33487d5da96c5294dc439cd2302a4191923", + "address": + "nano_37uf3eznuf76w7ax78bg1ioz8f69tqfbfjbbbq45mmb51ck3k8b5n4ftxp5a", + "decode": + "976d0b3f4db4a4e151d2992e042bf33487d5da96c5294dc439cd2302a4191923", + "params": {} + }, + { + "public": + "6b7a9ae70ba18edd5017524dd36569a573cd799ab111fb8010243323407795e0", + "address": + "nano_1tutmdmiqaeguoa3gnkftfkpmbdmsowsoeajzg131b3m6f19h7h1x4osj6hh", + "decode": + "6b7a9ae70ba18edd5017524dd36569a573cd799ab111fb8010243323407795e0", + "params": {} + }, + { + "public": + "357af4ddbe703992a6cf3d13872d27410962d6916a0ca329cc6486d6f45ec21c", + "address": + "nano_1fdtymguww3skcmeyhamiwpkgiabeddb4tienenwrs68tut7xiiwutxcc4hy", + "decode": + "357af4ddbe703992a6cf3d13872d27410962d6916a0ca329cc6486d6f45ec21c", + "params": {} + }, + { + "public": + "5cb316ce896e0b57c9cf5a57ff0fafb440f2d3537707fa0657923b139abdd4ec", + "address": + "nano_1q7m4u9akuidcz6wypkqzw9tzf41ydbo8xr9za57h6ju4gfduo9eapc5rmo8", + "decode": + "5cb316ce896e0b57c9cf5a57ff0fafb440f2d3537707fa0657923b139abdd4ec", + "params": {} + }, + { + "public": + "0b630f804db02c0d127a98c143cc81948911d593d17dcfeb754127bc180b91ee", + "address": + "nano_14u53y16ue3e3nb9o883ah8a576b49cs9ndxszoqcib9qie1q6hguekxbaza", + "decode": + "0b630f804db02c0d127a98c143cc81948911d593d17dcfeb754127bc180b91ee", + "params": {} + }, + { + "public": + "26b2d54b4ca1cc8896aca6578a6411321787435efed2fff74028b77a057a1e47", + "address": + "nano_1bokto7nsagej4dcsbkqjbk34eiqix3oxzpkzzun1c7qha4qn9k98dhixk9h", + "decode": + "26b2d54b4ca1cc8896aca6578a6411321787435efed2fff74028b77a057a1e47", + "params": {} + }, + { + "public": + "b0dc40fcd5cf21b21e2076817cb4b6ce1a1cf00ed036ce18757446229f3fd166", + "address": + "nano_3e8wa5yfdms3pah41xn3hktdfmit5mr1xn3psre9cx486chmznd8fhwsr9sc", + "decode": + "b0dc40fcd5cf21b21e2076817cb4b6ce1a1cf00ed036ce18757446229f3fd166", + "params": {} + }, + { + "public": + "5c7024849358bdba4c23a61bdbad9fc62bab1bc9c4f0b2f7e8a774e29e386919", + "address": + "nano_1q5i6k4b8p7xqb849biuugpszjjdoefwmj9ipduyjbunwch5itaszyrce5un", + "decode": + "5c7024849358bdba4c23a61bdbad9fc62bab1bc9c4f0b2f7e8a774e29e386919", + "params": {} + }, + { + "public": + "f7f1c73c7e36aeec079e87bacb177501a0a60668442e4ed9b5b92faed8a8c23c", + "address": + "nano_3xzjrwy9wfogxi5sx3xtsedqc1f1nr58ij3gbueudgbhouecjijwczxy4xa7", + "decode": + "f7f1c73c7e36aeec079e87bacb177501a0a60668442e4ed9b5b92faed8a8c23c", + "params": {} + }, + { + "public": + "129f69b1ccd1861d59768875edc512a2d4bf71846d9da046c8f946d47883aba2", + "address": + "nano_16nzf8rwsne85oeqf45oxq4j7apnqxrrauexn35ejyc8tjwa9cx4enazxsk7", + "decode": + "129f69b1ccd1861d59768875edc512a2d4bf71846d9da046c8f946d47883aba2", + "params": {} + }, + { + "public": + "879d015d50068d5f60e456889eead0bc4624b3c24bc283a45ad129a44236df43", + "address": + "nano_33wx17go13nfdxigaonamuof3h486ksw6ky4igk7onbbnj35fqt5rhmaxehp", + "decode": + "879d015d50068d5f60e456889eead0bc4624b3c24bc283a45ad129a44236df43", + "params": {} + }, + { + "public": + "dcd29f4055bb3ca6a4b1de47105aba18e8952c777f95456ab33b4ae6aa93df6c", + "address": + "nano_3q8kmx17dgswntkd5qk943fdn89aknp9gzwoaood8gtcwtob9querjwkc3gy", + "decode": + "dcd29f4055bb3ca6a4b1de47105aba18e8952c777f95456ab33b4ae6aa93df6c", + "params": {} + }, + { + "public": + "cc124f7e1b20b65e1f746bb3ab48c5bf031eee0555376eba0f06d6253142ed59", + "address": + "nano_3m1kbxz3pa7pdrhqatxmof6edhr55uq1cobqftx1y3pp6nrn7ucsekcbwfbz", + "decode": + "cc124f7e1b20b65e1f746bb3ab48c5bf031eee0555376eba0f06d6253142ed59", + "params": {} + }, + { + "public": + "a728ae93ca520016c5ef221c0a5c56a003fb8e7d1a48ded2d0a8d16599f33240", + "address": + "nano_3bsaotbwnni14u4yyaiw3bg7fa15zg99t8kauubf3c8jepez8ek1i69dkaj5", + "decode": + "a728ae93ca520016c5ef221c0a5c56a003fb8e7d1a48ded2d0a8d16599f33240", + "params": {} + }, + { + "public": + "0ae79bd0d4ad7aa47689f3b94fe074c344ea7d5be21b01c0703732a956abc4a1", + "address": + "nano_14q9mhafbddtnjuamwxsbzi9bit6xbyoqriu19191fsko7dcqj73ps9nz3om", + "decode": + "0ae79bd0d4ad7aa47689f3b94fe074c344ea7d5be21b01c0703732a956abc4a1", + "params": {} + }, + { + "public": + "64725cc2adeee18b7c00580bdb618c11afb765f240f8fd3914c1cb7aa7d139c0", + "address": + "nano_1s5kdm3cuuq3jfy11p1dufirr6fhpxkz6i9rznwjbigdhcmx4gg1ekypetyt", + "decode": + "64725cc2adeee18b7c00580bdb618c11afb765f240f8fd3914c1cb7aa7d139c0", + "params": {} + }, + { + "public": + "befd101af706dcd803fd7fa056e16ccd672a2201a3ee07500231ae0d494b0575", + "address": + "nano_3hqx41fhg3pwu13ztzx1cuipsmd97aj15azg1xa16efg3o6np3dog144g3ch", + "decode": + "befd101af706dcd803fd7fa056e16ccd672a2201a3ee07500231ae0d494b0575", + "params": {} + }, + { + "public": + "745c696be8067c47791024a9f36e3ac06699772d165e67884e397dba7c8b9808", + "address": + "nano_1x4wf7oyi3mwaxwj1b7byfq5oi58m7ukt7kyey66wgdxqbyaq81a3q4xhba3", + "decode": + "745c696be8067c47791024a9f36e3ac06699772d165e67884e397dba7c8b9808", + "params": {} + }, + { + "public": + "ec6a991ed5dc148083355ff7223cd92981b3d8842b9e6a2da9869e881639abc0", + "address": + "nano_3u5cm6hfdq1ni43mcqzq6ayfkce3pheaacwyfaptm3nyj1d5mcy1bq37j8hj", + "decode": + "ec6a991ed5dc148083355ff7223cd92981b3d8842b9e6a2da9869e881639abc0", + "params": {} + }, + { + "public": + "0f42fed49982d6740610b25181f8d8dfebdf7709944e0d9fd1b9a2962f9c37d5", + "address": + "nano_15t4zucbm1ppgi533ekji9wfjqzduxuim74g3phx5gf4krqsrfyonb3esed8", + "decode": + "0f42fed49982d6740610b25181f8d8dfebdf7709944e0d9fd1b9a2962f9c37d5", + "params": {} + }, + { + "public": + "89834b064e3026f3537d3e7a7d1281a30b0cded142ac2d49791d56d6e018ec39", + "address": + "nano_34e5be56we38yfbqthmthnba5ard3mhf4ioe7o6qk9cptui3ju3s1zhun5k7", + "decode": + "89834b064e3026f3537d3e7a7d1281a30b0cded142ac2d49791d56d6e018ec39", + "params": {} + }, + { + "public": + "cb9954a67bfcf8734500c8562f9eb23be761a7a78d00b2dd9e2275ac50ed05f1", + "address": + "nano_3kwsckm9qz9rgf4i3k4p7yhd6gz9e8mth5a1pdgswamoojagt3hj5p7oj4b5", + "decode": + "cb9954a67bfcf8734500c8562f9eb23be761a7a78d00b2dd9e2275ac50ed05f1", + "params": {} + }, + { + "public": + "3bc8b52d1fe2bec87d17f9544f3792770defa3612bf18c9cca29dd55de009c96", + "address": + "nano_1gyapnpjzroys3yjhycnbwus6xrfxyjp4czjjkgencgxcqh1396peqdt61x9", + "decode": + "3bc8b52d1fe2bec87d17f9544f3792770defa3612bf18c9cca29dd55de009c96", + "params": {} + }, + { + "public": + "802c3e5c9f1980a307a4143d255ba343075e666f2637d4361d260b0e5e60b4df", + "address": + "nano_313e9sgby8e1ne5ta73x6oft8ir9dsm8ybjqtiu3tbid3sh83f8zzumrtrw8", + "decode": + "802c3e5c9f1980a307a4143d255ba343075e666f2637d4361d260b0e5e60b4df", + "params": {} + }, + { + "public": + "52263c85de8f5596b16e98221bb4920f1aa968471cbb8b29dc52dbffe24814eb", + "address": + "nano_1nj89k4xx5toktrpx8345gtb65rto7n6g97ujenxrnpuzzj6i79dzb19uf18", + "decode": + "52263c85de8f5596b16e98221bb4920f1aa968471cbb8b29dc52dbffe24814eb", + "params": {} + }, + { + "public": + "9fd04917706c9484b1312f74b5ec2b2c65810809da9319b4ec3b26d152fb10af", + "address": + "nano_39yib6dq1u6nikrm4dunpqp4pd57i661mpnm58tgrgs8t7bhp67hi6eknfbi", + "decode": + "9fd04917706c9484b1312f74b5ec2b2c65810809da9319b4ec3b26d152fb10af", + "params": {} + }, + { + "public": + "bbf6c7c61c5828d3679659ac4c41404a2387abc51a5c0c3f0e3fcb5d210df1a5", + "address": + "nano_3gzprz53rp3atfmsepfebj1n1kj5iyowc8kw3iziwhyddniiuwf7zinns4oj", + "decode": + "bbf6c7c61c5828d3679659ac4c41404a2387abc51a5c0c3f0e3fcb5d210df1a5", + "params": {} + }, + { + "public": + "83a060edfb0a780126db1c475693bb9ff65d6af7811b69d5e80e25c0f32c9865", + "address": + "nano_31x1e5pzp4mr16mfp949ctbuq9zpdoohh1auf9cyi5j7r5sks857zsy9ud7s", + "decode": + "83a060edfb0a780126db1c475693bb9ff65d6af7811b69d5e80e25c0f32c9865", + "params": {} + }, + { + "public": + "46d579cfa7027af52c55eb8ecd05792a2e92ca8b24640aec88144ab219800bb9", + "address": + "nano_1jpoh99tg1mtynp7dtwgsn4qkcjgkd7apb563dpai74cpaer14xsszu8x1ao", + "decode": + "46d579cfa7027af52c55eb8ecd05792a2e92ca8b24640aec88144ab219800bb9", + "params": {} + }, + { + "public": + "2cac3566515306e690ba0348a87e172c16c46d2f8fa8a865ec73726086698910", + "address": + "nano_1d7e8om74nr8wtadn1tao3z3gd1prjpkz5xao3kyrwuke458m4ai7eh3xm65", + "decode": + "2cac3566515306e690ba0348a87e172c16c46d2f8fa8a865ec73726086698910", + "params": {} + }, + { + "public": + "0a0075bd5f398317c7c48ea7770cd2f5bb2864241aa0affb66c65260a65fc532", + "address": + "nano_14i1gpyoyge54z5wb5o9gw8f7xfu73k4a8o1ozxpfjkke4m7zjbkdspbf7iu", + "decode": + "0a0075bd5f398317c7c48ea7770cd2f5bb2864241aa0affb66c65260a65fc532", + "params": {} + }, + { + "public": + "61d7273c960f34e564f919224f9b29161e34f571432259949b865ec266e87ab2", + "address": + "nano_1rgq6wybe5snwokhk8b4byfkk7iy8mtq4is4d8cbq3kyrbmgiyokmbdfbnd9", + "decode": + "61d7273c960f34e564f919224f9b29161e34f571432259949b865ec266e87ab2", + "params": {} + }, + { + "public": + "1d9069a9bf1c9bc1a3ced7fe0b9ceae28663ecee13154c67107555e6755a65d8", + "address": + "nano_19eif8nuy96ur8jwxozy3gggorn8ehpgw6robjmj1xcowstonsgrw7ymq11d", + "decode": + "1d9069a9bf1c9bc1a3ced7fe0b9ceae28663ecee13154c67107555e6755a65d8", + "params": {} + }, + { + "public": + "5098dc3efd6ae6567412ec6aae3b4efb0e18eecb719a01ec0875b161ff35d46c", + "address": + "nano_1n6ruizhttq8cst37u5corxnxyrg55qepwet19p1ixfje9zmdo5edajzxsfn", + "decode": + "5098dc3efd6ae6567412ec6aae3b4efb0e18eecb719a01ec0875b161ff35d46c", + "params": {} + }, + { + "public": + "49c2e9b03896eddc3df200597c60d361d69c4fcc99cbcfc5546b1c8b806fed91", + "address": + "nano_1kg4x8r5j7qfuiyz614shjif8rgpmj9ws8gdsz4oatrwjg18zuejfy6sj5ic", + "decode": + "49c2e9b03896eddc3df200597c60d361d69c4fcc99cbcfc5546b1c8b806fed91", + "params": {} + }, + { + "public": + "7eb528bd1ac42d09ac2d0c1b237e8d87025663ca35e7993685d31a3dd642353e", + "address": + "nano_1zoo74yjoj3f38p4t51u6fzau3r4csjwnfh9m6uadnrt9qd66fbyuqprkcke", + "decode": + "7eb528bd1ac42d09ac2d0c1b237e8d87025663ca35e7993685d31a3dd642353e", + "params": {} + }, + { + "public": + "1e384b7fa57677e1407cdbb679e86be7d42d5591a155e088ff62944216e8a7f1", + "address": + "nano_19jrbfztcxmqw719spxph9n8qsyn7ocs5acow46hyrnnaadgjbzjgafnte77", + "decode": + "1e384b7fa57677e1407cdbb679e86be7d42d5591a155e088ff62944216e8a7f1", + "params": {} + }, + { + "public": + "0cc952c9abe963a0d96f1af8ba3cb8097f7ae06cfc510b0fbc27b304c66360a7", + "address": + "nano_158bcd6tqtd5n5epy8qrqaydi4dzhdi8sz4j3e9urbxm1m588r796um4d7md", + "decode": + "0cc952c9abe963a0d96f1af8ba3cb8097f7ae06cfc510b0fbc27b304c66360a7", + "params": {} + }, + { + "public": + "5de93828f8368f8353c6394dbb61ebbebe9e3c1bcde907db130015a9101bc21a", + "address": + "nano_1qhb91nhifnhifbwegcfqfiyqhoymry3qmhb1zfj811oo6a3qiit3ri84hi6", + "decode": + "5de93828f8368f8353c6394dbb61ebbebe9e3c1bcde907db130015a9101bc21a", + "params": {} + }, + { + "public": + "c3087267c4da6422da34d6eee16d4198eb0dccf4c33d512445a99d5731d7af93", + "address": + "nano_3iragbmwbpm66df5boqgw7pn589d3q8hbisxc6k6dcexcwrxhdwm3hkkqhrq", + "decode": + "c3087267c4da6422da34d6eee16d4198eb0dccf4c33d512445a99d5731d7af93", + "params": {} + }, + { + "public": + "13c49f96880102d79b18d3849280a3f6ba930254a70824a2c8e24f01b7fdb1fb", + "address": + "nano_16y6mydai1a4tyfjjnw6kc1c9xotke37bbra6kjejrkh18uzuehuhs65141i", + "decode": + "13c49f96880102d79b18d3849280a3f6ba930254a70824a2c8e24f01b7fdb1fb", + "params": {} + }, + { + "public": + "7a7bb28247f6e9a4dbb2275aee747e60eac44987fe54d24fd9e6321a19352546", + "address": + "nano_1ymupc36hxqbnmfu6bttxst9wr9crj6rhzkntb9xmsjk5aemcbc84umc7mf4", + "decode": + "7a7bb28247f6e9a4dbb2275aee747e60eac44987fe54d24fd9e6321a19352546", + "params": {} + }, + { + "public": + "119597dffe8029d4485ba1658d9a78a5948f1b3d36d2775784ec366b150301c5", + "address": + "nano_16eokzhzx13btj67qad7jpf9jbenjwfmtfpkgxdrbu3pfeci81g76a33ftii", + "decode": + "119597dffe8029d4485ba1658d9a78a5948f1b3d36d2775784ec366b150301c5", + "params": {} + }, + { + "public": + "1ff2d8134d37a46f541ffd69db8f14946690d85b33ab4fc32200f30fff8b3094", + "address": + "nano_19zku1bntfx6fxc3zzdbug9jb758k5e7pexdbz3k619m3zzrpe6n4xwbrzmr", + "decode": + "1ff2d8134d37a46f541ffd69db8f14946690d85b33ab4fc32200f30fff8b3094", + "params": {} + }, + { + "public": + "98e9a19f587b272512dfb289a9687366a7850bec40b6d8249386b5a6bf975454", + "address": + "nano_389bn8hoiys96nbfzenbo7n98so9in7yri7pu1kb93oontzsgo4nw34rkdpd", + "decode": + "98e9a19f587b272512dfb289a9687366a7850bec40b6d8249386b5a6bf975454", + "params": {} + }, + { + "public": + "5e3df48a82936104c031fc2ea023bcb8cebe6bfec779ea5a158c4798a8016372", + "address": + "nano_1qjxyk7a76u31m155z3gn1jusg8gqsozxjusxbf3d549m4n14rukqtdttp8j", + "decode": + "5e3df48a82936104c031fc2ea023bcb8cebe6bfec779ea5a158c4798a8016372", + "params": {} + }, + { + "public": + "e60544a35edd3ba9e503bb98e8bde31bd24caad3f2c57b37685599211acacfb9", + "address": + "nano_3si7akjoxqbuo9ki9gwrx4yy88ykbkof9wp7heupioes66feomxs6iga7zo3", + "decode": + "e60544a35edd3ba9e503bb98e8bde31bd24caad3f2c57b37685599211acacfb9", + "params": {} + } +]; diff --git a/example/lib/test/address/near/near_test.dart b/example/lib/test/address/near/near_test.dart new file mode 100644 index 0000000..342b0af --- /dev/null +++ b/example/lib/test/address/near/near_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/address/near_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void nearAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = NearAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = NearAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/near/test_vector.dart b/example/lib/test/address/near/test_vector.dart new file mode 100644 index 0000000..d98ff2e --- /dev/null +++ b/example/lib/test/address/near/test_vector.dart @@ -0,0 +1,452 @@ +final List> testVector = [ + { + "public": + "eb6c9bf48528ec10dc3d3989b58776bd75a6520e156260b3ef09aca8b18ae972", + "address": + "eb6c9bf48528ec10dc3d3989b58776bd75a6520e156260b3ef09aca8b18ae972", + "decode": + "eb6c9bf48528ec10dc3d3989b58776bd75a6520e156260b3ef09aca8b18ae972", + "params": {} + }, + { + "public": + "21b1fcf19915a73d9b9ad09875ce3b1d74161c0a55d4392bd95df0d1cb6d582d", + "address": + "21b1fcf19915a73d9b9ad09875ce3b1d74161c0a55d4392bd95df0d1cb6d582d", + "decode": + "21b1fcf19915a73d9b9ad09875ce3b1d74161c0a55d4392bd95df0d1cb6d582d", + "params": {} + }, + { + "public": + "7f24d3bb179e4d870db4273e574c0c4432ff43fa6eda6d07bfca7dd761c2afdc", + "address": + "7f24d3bb179e4d870db4273e574c0c4432ff43fa6eda6d07bfca7dd761c2afdc", + "decode": + "7f24d3bb179e4d870db4273e574c0c4432ff43fa6eda6d07bfca7dd761c2afdc", + "params": {} + }, + { + "public": + "a15d22efb3e536e2634928960266461a145f8c65c433a857abb99d0a3189437c", + "address": + "a15d22efb3e536e2634928960266461a145f8c65c433a857abb99d0a3189437c", + "decode": + "a15d22efb3e536e2634928960266461a145f8c65c433a857abb99d0a3189437c", + "params": {} + }, + { + "public": + "9d97758fd7e3fed4321886c9b86f7558ed89ba42006e13e7b751053af76571f0", + "address": + "9d97758fd7e3fed4321886c9b86f7558ed89ba42006e13e7b751053af76571f0", + "decode": + "9d97758fd7e3fed4321886c9b86f7558ed89ba42006e13e7b751053af76571f0", + "params": {} + }, + { + "public": + "6140ee2abfd1873f181bfb71fcc31091abb8c1925c00d7575570f0b9b279e54a", + "address": + "6140ee2abfd1873f181bfb71fcc31091abb8c1925c00d7575570f0b9b279e54a", + "decode": + "6140ee2abfd1873f181bfb71fcc31091abb8c1925c00d7575570f0b9b279e54a", + "params": {} + }, + { + "public": + "7dbbdb506b1b8e4b97a91dfa8475b51b44cdfece88c44f86491795ff9780d0eb", + "address": + "7dbbdb506b1b8e4b97a91dfa8475b51b44cdfece88c44f86491795ff9780d0eb", + "decode": + "7dbbdb506b1b8e4b97a91dfa8475b51b44cdfece88c44f86491795ff9780d0eb", + "params": {} + }, + { + "public": + "bf05e261c1a34bd7da453a97cd0da15707efe5824aacce643b97b669d84ec188", + "address": + "bf05e261c1a34bd7da453a97cd0da15707efe5824aacce643b97b669d84ec188", + "decode": + "bf05e261c1a34bd7da453a97cd0da15707efe5824aacce643b97b669d84ec188", + "params": {} + }, + { + "public": + "73affe3adc34ef2162e9f0b21d1b7b7451efa8a2d58bec4b016b85814bf3f941", + "address": + "73affe3adc34ef2162e9f0b21d1b7b7451efa8a2d58bec4b016b85814bf3f941", + "decode": + "73affe3adc34ef2162e9f0b21d1b7b7451efa8a2d58bec4b016b85814bf3f941", + "params": {} + }, + { + "public": + "5132ca44b82102119d043359b23a695d63b64cc95cf24888cdcf04f80ab1be1b", + "address": + "5132ca44b82102119d043359b23a695d63b64cc95cf24888cdcf04f80ab1be1b", + "decode": + "5132ca44b82102119d043359b23a695d63b64cc95cf24888cdcf04f80ab1be1b", + "params": {} + }, + { + "public": + "a17d0f125ce46fddbec157c2b2d48c6246b8f3518ab6d1c58814d72f06124026", + "address": + "a17d0f125ce46fddbec157c2b2d48c6246b8f3518ab6d1c58814d72f06124026", + "decode": + "a17d0f125ce46fddbec157c2b2d48c6246b8f3518ab6d1c58814d72f06124026", + "params": {} + }, + { + "public": + "6227302a8ea0b32474a744428e413ff18a069762db39e6908820ebde8064ca4b", + "address": + "6227302a8ea0b32474a744428e413ff18a069762db39e6908820ebde8064ca4b", + "decode": + "6227302a8ea0b32474a744428e413ff18a069762db39e6908820ebde8064ca4b", + "params": {} + }, + { + "public": + "cc2a3d58e92b0c90a69e43376565d04b64964f12952833f9545324b8e64c4d69", + "address": + "cc2a3d58e92b0c90a69e43376565d04b64964f12952833f9545324b8e64c4d69", + "decode": + "cc2a3d58e92b0c90a69e43376565d04b64964f12952833f9545324b8e64c4d69", + "params": {} + }, + { + "public": + "b859b9f55f616c6440ae8e46a00fd3f723f871e92de6f0c64034e19e29f7e061", + "address": + "b859b9f55f616c6440ae8e46a00fd3f723f871e92de6f0c64034e19e29f7e061", + "decode": + "b859b9f55f616c6440ae8e46a00fd3f723f871e92de6f0c64034e19e29f7e061", + "params": {} + }, + { + "public": + "632a8b994520c0c75d74b62332b771db46694b15df63f339c13ae5c439f30ce8", + "address": + "632a8b994520c0c75d74b62332b771db46694b15df63f339c13ae5c439f30ce8", + "decode": + "632a8b994520c0c75d74b62332b771db46694b15df63f339c13ae5c439f30ce8", + "params": {} + }, + { + "public": + "27e5817a972c25bdda2613ed6628a10fc463be697734cc44f3b67013dba65915", + "address": + "27e5817a972c25bdda2613ed6628a10fc463be697734cc44f3b67013dba65915", + "decode": + "27e5817a972c25bdda2613ed6628a10fc463be697734cc44f3b67013dba65915", + "params": {} + }, + { + "public": + "fa5056466204cd2adae6793aa9c8c7e2b0102982a42c6e9ce6070fae089f6db9", + "address": + "fa5056466204cd2adae6793aa9c8c7e2b0102982a42c6e9ce6070fae089f6db9", + "decode": + "fa5056466204cd2adae6793aa9c8c7e2b0102982a42c6e9ce6070fae089f6db9", + "params": {} + }, + { + "public": + "81f8e69f745c9ee6038f2f831035378ac7db30bc75ee3da0a40dc3298516119f", + "address": + "81f8e69f745c9ee6038f2f831035378ac7db30bc75ee3da0a40dc3298516119f", + "decode": + "81f8e69f745c9ee6038f2f831035378ac7db30bc75ee3da0a40dc3298516119f", + "params": {} + }, + { + "public": + "380613e059899759b52bef92655815b20a65098cd7a69e011183b58f9949fc19", + "address": + "380613e059899759b52bef92655815b20a65098cd7a69e011183b58f9949fc19", + "decode": + "380613e059899759b52bef92655815b20a65098cd7a69e011183b58f9949fc19", + "params": {} + }, + { + "public": + "2a4cfd082890fc6e06f2620577a0aee7479389ed56855021e76e9d2b01990c85", + "address": + "2a4cfd082890fc6e06f2620577a0aee7479389ed56855021e76e9d2b01990c85", + "decode": + "2a4cfd082890fc6e06f2620577a0aee7479389ed56855021e76e9d2b01990c85", + "params": {} + }, + { + "public": + "c34c78180a566849137cca149789bfd12fee15706f142ffcff8dd65f6ef8b959", + "address": + "c34c78180a566849137cca149789bfd12fee15706f142ffcff8dd65f6ef8b959", + "decode": + "c34c78180a566849137cca149789bfd12fee15706f142ffcff8dd65f6ef8b959", + "params": {} + }, + { + "public": + "e3e023e388e27c53e0b3f7bf3bff6a49432ea49e731e3cc5d01327ecc4f434d3", + "address": + "e3e023e388e27c53e0b3f7bf3bff6a49432ea49e731e3cc5d01327ecc4f434d3", + "decode": + "e3e023e388e27c53e0b3f7bf3bff6a49432ea49e731e3cc5d01327ecc4f434d3", + "params": {} + }, + { + "public": + "d9358c69ad57250211c11964137d0a64c1ce53c0d869e41822ea561b0725cd83", + "address": + "d9358c69ad57250211c11964137d0a64c1ce53c0d869e41822ea561b0725cd83", + "decode": + "d9358c69ad57250211c11964137d0a64c1ce53c0d869e41822ea561b0725cd83", + "params": {} + }, + { + "public": + "e4d25cb6879fbb19acc333e6967c33c88b14571e151ae68f38794c95f0d2e82e", + "address": + "e4d25cb6879fbb19acc333e6967c33c88b14571e151ae68f38794c95f0d2e82e", + "decode": + "e4d25cb6879fbb19acc333e6967c33c88b14571e151ae68f38794c95f0d2e82e", + "params": {} + }, + { + "public": + "796152b956d621c53a60c8d4ed51549ef7a3edf3e59243ba52b4cde3982a3476", + "address": + "796152b956d621c53a60c8d4ed51549ef7a3edf3e59243ba52b4cde3982a3476", + "decode": + "796152b956d621c53a60c8d4ed51549ef7a3edf3e59243ba52b4cde3982a3476", + "params": {} + }, + { + "public": + "e0361f3807da1a5100eb2fb7766bae5b1e6c704d93d414b2be8811b8ad54afaf", + "address": + "e0361f3807da1a5100eb2fb7766bae5b1e6c704d93d414b2be8811b8ad54afaf", + "decode": + "e0361f3807da1a5100eb2fb7766bae5b1e6c704d93d414b2be8811b8ad54afaf", + "params": {} + }, + { + "public": + "85055a14bd7c36f62195e56b695c0a8c4d5a18fcc51100ebefe4521748d66ec1", + "address": + "85055a14bd7c36f62195e56b695c0a8c4d5a18fcc51100ebefe4521748d66ec1", + "decode": + "85055a14bd7c36f62195e56b695c0a8c4d5a18fcc51100ebefe4521748d66ec1", + "params": {} + }, + { + "public": + "dc5dd65762c90ce994558c02dd33a4233eaae22cc4818b061b4daf5ac2f866d1", + "address": + "dc5dd65762c90ce994558c02dd33a4233eaae22cc4818b061b4daf5ac2f866d1", + "decode": + "dc5dd65762c90ce994558c02dd33a4233eaae22cc4818b061b4daf5ac2f866d1", + "params": {} + }, + { + "public": + "7f84d4b1dcedddffcad8fd2a44c27464e832a18d3d56cbff06de31c6eee631b8", + "address": + "7f84d4b1dcedddffcad8fd2a44c27464e832a18d3d56cbff06de31c6eee631b8", + "decode": + "7f84d4b1dcedddffcad8fd2a44c27464e832a18d3d56cbff06de31c6eee631b8", + "params": {} + }, + { + "public": + "70cc6840f2a6521ac0917a95bdc6a7c4f3ba3183babebe5aa6b1fd4872c42315", + "address": + "70cc6840f2a6521ac0917a95bdc6a7c4f3ba3183babebe5aa6b1fd4872c42315", + "decode": + "70cc6840f2a6521ac0917a95bdc6a7c4f3ba3183babebe5aa6b1fd4872c42315", + "params": {} + }, + { + "public": + "d9cf2685d564e0d620705aa869fb9b116b7bab74464932c10e1125c5325621c3", + "address": + "d9cf2685d564e0d620705aa869fb9b116b7bab74464932c10e1125c5325621c3", + "decode": + "d9cf2685d564e0d620705aa869fb9b116b7bab74464932c10e1125c5325621c3", + "params": {} + }, + { + "public": + "3173c4e3b42ee99ef17c6e8861a8942730bcbcfbaa9ad68099120e3efe396f4f", + "address": + "3173c4e3b42ee99ef17c6e8861a8942730bcbcfbaa9ad68099120e3efe396f4f", + "decode": + "3173c4e3b42ee99ef17c6e8861a8942730bcbcfbaa9ad68099120e3efe396f4f", + "params": {} + }, + { + "public": + "be851533c35bd03f1506b4bc333930a57b396015e5aeb578a9f3817ecab92719", + "address": + "be851533c35bd03f1506b4bc333930a57b396015e5aeb578a9f3817ecab92719", + "decode": + "be851533c35bd03f1506b4bc333930a57b396015e5aeb578a9f3817ecab92719", + "params": {} + }, + { + "public": + "c017014db6c7fda8007efb73941a28424df43b6424ac1a077a76503496fd09de", + "address": + "c017014db6c7fda8007efb73941a28424df43b6424ac1a077a76503496fd09de", + "decode": + "c017014db6c7fda8007efb73941a28424df43b6424ac1a077a76503496fd09de", + "params": {} + }, + { + "public": + "35b23f1661253e1b31813e25a09e39e1728960f17ad6673b6eaa128a303ac7f4", + "address": + "35b23f1661253e1b31813e25a09e39e1728960f17ad6673b6eaa128a303ac7f4", + "decode": + "35b23f1661253e1b31813e25a09e39e1728960f17ad6673b6eaa128a303ac7f4", + "params": {} + }, + { + "public": + "f2644ee3f4906251c697d2194647496f9febe8073321042c714955b3b29cf08d", + "address": + "f2644ee3f4906251c697d2194647496f9febe8073321042c714955b3b29cf08d", + "decode": + "f2644ee3f4906251c697d2194647496f9febe8073321042c714955b3b29cf08d", + "params": {} + }, + { + "public": + "b510fd180491dc9939f21ba363d1e51a6a4888583fd09d2f23b880d777874708", + "address": + "b510fd180491dc9939f21ba363d1e51a6a4888583fd09d2f23b880d777874708", + "decode": + "b510fd180491dc9939f21ba363d1e51a6a4888583fd09d2f23b880d777874708", + "params": {} + }, + { + "public": + "40dadcb14f56219c6ee159f38d6425ecfde869f4f79847c83600ab3b9258ff52", + "address": + "40dadcb14f56219c6ee159f38d6425ecfde869f4f79847c83600ab3b9258ff52", + "decode": + "40dadcb14f56219c6ee159f38d6425ecfde869f4f79847c83600ab3b9258ff52", + "params": {} + }, + { + "public": + "9bb78132d3530410a138f541d5bd21b0098ec5700b90f8d667b43afb09973dc3", + "address": + "9bb78132d3530410a138f541d5bd21b0098ec5700b90f8d667b43afb09973dc3", + "decode": + "9bb78132d3530410a138f541d5bd21b0098ec5700b90f8d667b43afb09973dc3", + "params": {} + }, + { + "public": + "30697e5cae5200c6bcc1e951a48c8d9f9cb6bf7d7162899718e63a8baedc5548", + "address": + "30697e5cae5200c6bcc1e951a48c8d9f9cb6bf7d7162899718e63a8baedc5548", + "decode": + "30697e5cae5200c6bcc1e951a48c8d9f9cb6bf7d7162899718e63a8baedc5548", + "params": {} + }, + { + "public": + "0b104cb400f48326d3955b11c7a98549083c5fa75f7f42fe369fe9c763a8a79b", + "address": + "0b104cb400f48326d3955b11c7a98549083c5fa75f7f42fe369fe9c763a8a79b", + "decode": + "0b104cb400f48326d3955b11c7a98549083c5fa75f7f42fe369fe9c763a8a79b", + "params": {} + }, + { + "public": + "16ac41fa07bf6e4d36cc0d6257329cbd02af301f22ddeb04cffbaa51a9764213", + "address": + "16ac41fa07bf6e4d36cc0d6257329cbd02af301f22ddeb04cffbaa51a9764213", + "decode": + "16ac41fa07bf6e4d36cc0d6257329cbd02af301f22ddeb04cffbaa51a9764213", + "params": {} + }, + { + "public": + "050050c584f9099ba663578d3cef6771068f55202028ab0e477b855a0b1410f5", + "address": + "050050c584f9099ba663578d3cef6771068f55202028ab0e477b855a0b1410f5", + "decode": + "050050c584f9099ba663578d3cef6771068f55202028ab0e477b855a0b1410f5", + "params": {} + }, + { + "public": + "f093e4c60542dde6ac5194c3a3fce8fcd177d61934eeefe04c1facb8d0f563bd", + "address": + "f093e4c60542dde6ac5194c3a3fce8fcd177d61934eeefe04c1facb8d0f563bd", + "decode": + "f093e4c60542dde6ac5194c3a3fce8fcd177d61934eeefe04c1facb8d0f563bd", + "params": {} + }, + { + "public": + "a1a509ce0fb5d7bc17c22143680b996c08929da2c1ce012798994a0c7a502e41", + "address": + "a1a509ce0fb5d7bc17c22143680b996c08929da2c1ce012798994a0c7a502e41", + "decode": + "a1a509ce0fb5d7bc17c22143680b996c08929da2c1ce012798994a0c7a502e41", + "params": {} + }, + { + "public": + "110dd72a0ade56313214adaf6dd1de3785e9243b0a8030024a2d7b6a57ebae6f", + "address": + "110dd72a0ade56313214adaf6dd1de3785e9243b0a8030024a2d7b6a57ebae6f", + "decode": + "110dd72a0ade56313214adaf6dd1de3785e9243b0a8030024a2d7b6a57ebae6f", + "params": {} + }, + { + "public": + "a2d2ebc65100902af449e64fdca8bf0e4f12e15502dfa56a24d7a4e1e736fb75", + "address": + "a2d2ebc65100902af449e64fdca8bf0e4f12e15502dfa56a24d7a4e1e736fb75", + "decode": + "a2d2ebc65100902af449e64fdca8bf0e4f12e15502dfa56a24d7a4e1e736fb75", + "params": {} + }, + { + "public": + "969f0a9750432fad383048a6ec4ef0148b4a42b1d48d4d0c301357b1e3b54f47", + "address": + "969f0a9750432fad383048a6ec4ef0148b4a42b1d48d4d0c301357b1e3b54f47", + "decode": + "969f0a9750432fad383048a6ec4ef0148b4a42b1d48d4d0c301357b1e3b54f47", + "params": {} + }, + { + "public": + "4605ac9af5bff29286ceb8211c59eeacf66bba64dff96c959158e9963b00fd8b", + "address": + "4605ac9af5bff29286ceb8211c59eeacf66bba64dff96c959158e9963b00fd8b", + "decode": + "4605ac9af5bff29286ceb8211c59eeacf66bba64dff96c959158e9963b00fd8b", + "params": {} + }, + { + "public": + "9ffb5ccb5b5c964784f96318539d685ef5aae05dcfa1591fe319d2e8751fcf16", + "address": + "9ffb5ccb5b5c964784f96318539d685ef5aae05dcfa1591fe319d2e8751fcf16", + "decode": + "9ffb5ccb5b5c964784f96318539d685ef5aae05dcfa1591fe319d2e8751fcf16", + "params": {} + } +]; diff --git a/example/lib/test/address/neo/neo_test.dart b/example/lib/test/address/neo/neo_test.dart new file mode 100644 index 0000000..f0bbc8c --- /dev/null +++ b/example/lib/test/address/neo/neo_test.dart @@ -0,0 +1,17 @@ +import 'package:blockchain_utils/bip/address/neo_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVecotr; + +void neoAddressTest() { + for (final i in testVecotr) { + final params = Map.from(i["params"]); + params["ver"] = BytesUtils.fromHexString(params["ver"]); + final z = NeoAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = NeoAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/neo/test_vector.dart b/example/lib/test/address/neo/test_vector.dart new file mode 100644 index 0000000..4933358 --- /dev/null +++ b/example/lib/test/address/neo/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVecotr = [ + { + "public": + "02bf923ce2e5b42f4a048fc6a7c9401e42b45c49c08bceda0fd04890759fc041cd", + "address": "APuBj1UXKoFaZv3Up2eZh2MAubzt9nTBBd", + "decode": "592302315694fa8d25a5b97340779693d3ea1a10", + "params": {"ver": "17"} + }, + { + "public": + "02a9c3a14fdce99b9a91fe95e5029b346883a9fab98cbf028257c35121b5d2928b", + "address": "Acr83VBQMyLjFb6Wm64Xtow7et3DKCWSWC", + "decode": "e72852a15f611df1c74d6acbf46c2ec3862eef9f", + "params": {"ver": "17"} + }, + { + "public": + "02327024176425ff1d253975d095f7bc0eb20339bb40ac653a498b960ec6d7a251", + "address": "AM3Ltc12TAT8iS1SMrP39W8Dzk9942yhUo", + "decode": "39c59c1dbd78916ef81052463c8a0bb0890c7921", + "params": {"ver": "17"} + }, + { + "public": + "0252d8ad6a99832a32047ffb0054a22630682c009be145aadd1258d28e53c7eeb6", + "address": "AR6euctGTgDsQtRmPycV4WgtBXLUi6FMZi", + "decode": "664666aec3c68b07032ae28b46accbf342fed598", + "params": {"ver": "17"} + }, + { + "public": + "03496dcdf1e890db15c3d8b664052530995246e5d19b6e22279d596592a14ac72b", + "address": "ATzKG6vdGU2aBfEaerEDshNsx7h3nea1j9", + "decode": "85fbe1e07641d882a33b0cab9e830503af318381", + "params": {"ver": "17"} + }, + { + "public": + "0257e4a6f5bf831fa70a4f8edbf8cc8d62a1bff718fa97c5de410fff3cd72198bf", + "address": "ALT1qpPLnJCZE6XiCnLehMkE1goYBpPEQE", + "decode": "3347910e30725baa1439bdcbb491db4f5f95029b", + "params": {"ver": "17"} + }, + { + "public": + "020af20770dff8e88cab0c639022e91ccf27dfc7aad49d61753a67390f8ee90067", + "address": "Ab1Ydak2RdWXcfa2rmSMTo8M5AFLuBPzkx", + "decode": "d30056fb896dda24d1da81a084eb904471ed0bdc", + "params": {"ver": "17"} + }, + { + "public": + "03465119b8c7a823a374adc847b2079282fce6634deb3abe2d93693d320190ca87", + "address": "ANjHn2igQJz313P5beMepT4VaQCo84Vogg", + "decode": "4c4bc673545d9524d0eacdfc76b559075ec38e18", + "params": {"ver": "17"} + }, + { + "public": + "02b9a839a0583ec31d2005b71f2853cd1a1ca90c9016393c4495176596514912e7", + "address": "ARTyD5imBQC3EvemgZsg657byaezSpw2N4", + "decode": "6a4e69cc5fe81fdc290ac995a34dbefa68af11b5", + "params": {"ver": "17"} + }, + { + "public": + "029739be53e626ff78f0644b12d9343e57b319242efb609c776267f5559b591031", + "address": "ALm13oT9vbpZcdCUHd8iEUZ1HmbpscKaZJ", + "decode": "36ae64436b04707d73c777bb0f5681ee02c54cdd", + "params": {"ver": "17"} + }, + { + "public": + "0246e817612ea98743c5c7a522e2f4be5ae632ee3bc7cb3b47e2098ba261b7ae8b", + "address": "APGTXkLhSuVefqeFCLP3XPEUXSGLA3wxRe", + "decode": "5230cfe181d5cba0f2a30fc38ab519f88d98405c", + "params": {"ver": "17"} + }, + { + "public": + "02fa307f547c48bc3e469ee70978780ee972ad4262c7548a2d748e7ecdfcf5da62", + "address": "AWPa1ZqzjHcQ5X8qtEQVzoh9uxSBJ5bHZt", + "decode": "a052036003bb230dcc38573c6ec6e1eb72ac11e0", + "params": {"ver": "17"} + }, + { + "public": + "03372c59de8abe2f812c249529da3362cc526a96a1d5c70d51bada7e7833af7aed", + "address": "AcR2rK87YRHNDoE8VgLP97AyzDJa5QoES4", + "decode": "e26996d1222a975237627caf71cc0c754104fd24", + "params": {"ver": "17"} + }, + { + "public": + "030089d92159390165c857ee876a19e71bf4a29ca36cd6161c50f022ae4b61ee4f", + "address": "AV9muDRwJcpLJGT9aWRM2orEtjhLLqsRMa", + "decode": "92bdfd571c0f2a9101bbc005bb11c0d3398f14c4", + "params": {"ver": "17"} + }, + { + "public": + "0249fe94be3a3c4a2cb4618e1c85dd60e09010dac9c8e8f4ded4c4aec6648c8986", + "address": "AYr98XFBNptQXy5vUw1zGDg3GZ7gXuqVkM", + "decode": "bb48ba144934eb5865ad87978b775b11ac922899", + "params": {"ver": "17"} + }, + { + "public": + "025c58dbe3398f2e74beca67f417b999028a125f5a49b5a31748783c74689eca8e", + "address": "Aekf1BZ3CiNEM7sBbrnvaHFCuNsagL1Uu5", + "decode": "fc0fec43cf4698fe53f2956cc536b40f86cc11c4", + "params": {"ver": "17"} + }, + { + "public": + "024e9f19021db2484591280aadb40a3da66b85116f4dfe7e69db6b02fac9625207", + "address": "APWqbMMe58G3h3PZ23agt8SHwzDsvD8Nk5", + "decode": "54e90d529198b982d08b81c432bc6e553f862da2", + "params": {"ver": "17"} + }, + { + "public": + "03d5cd31b50e806cdf9e81814c231b1e63685771364d49b4c6d8e854ac3caafc18", + "address": "AKrjJobCgxUd2q3xvaYRm6PJicBR6QUkht", + "decode": "2ccb9f16425084525476165579a6ce948596f5b8", + "params": {"ver": "17"} + }, + { + "public": + "03f660d19cefe4462b42e69066374affd44d0dc2edd499a5afc88e501a687465fe", + "address": "AdZUCf9s8tE6SYSnZC8NG4uiTjdipvUGfG", + "decode": "eefa3451d60578a8907eee93b8c77fefbb0d27f9", + "params": {"ver": "17"} + }, + { + "public": + "0314c34b72d4b71a1cf004110cfc81ad38d7d155754a8ccd9bb04f15959c7d671a", + "address": "AbdoT8m35d83bkJFuQfCnU7hE4zFkNE1Dm", + "decode": "d9dbaf7642e1e937a002594b6e2c8ef5a109dbd5", + "params": {"ver": "17"} + }, + { + "public": + "02e92d9920ad419a435ee642ec64083e1a2afbf6e122eccfec6a52f000be83f542", + "address": "ASBCsWDLAeomagniBARxa2XARoVP9ckksS", + "decode": "721adf5f6ae7b13fedae3d3550898ec094bc5f3c", + "params": {"ver": "17"} + }, + { + "public": + "0351d1c90cceed77443d82e97cb8afc705010925a84eeec10cddc1e5105ae02eb6", + "address": "APBb2xmchLSiWywGxCZmh4dJWSG6Lq5AkY", + "decode": "5144fef984547d86d50b16785ef16dbe332cc1ea", + "params": {"ver": "17"} + }, + { + "public": + "02ead1ff57893d44849a80d1f38146d692cb30ffbaceebd05ba2e33048b2dcfb00", + "address": "AYi9tbHYYaXfKcqRDxH1YkESLTxWZRdZ1V", + "decode": "b9c6088fdb5caea48e842afab825887afdab69fb", + "params": {"ver": "17"} + }, + { + "public": + "03694f613900443c1aec1480f8ccee1a63fa4c834a32e770dc576a0fddfd2deb1d", + "address": "AWEu5bxK78EXmd1PMaUSx8kWPgJwW2rgiM", + "decode": "9eae302232a5edbccce51e81cbb84919fba5a15b", + "params": {"ver": "17"} + }, + { + "public": + "039897508554b744a4d0f85c24b9458df356ecd0fd527177f7d6106dc714f57837", + "address": "AbD4yZD6aFjU5chtPZ9FDcxhEKKXQWboSY", + "decode": "d52e3edd1ad4c74de216d60598a1eebb80ce85e5", + "params": {"ver": "17"} + }, + { + "public": + "029da7a631189b219c413eb3d80df2c5611b9c716212ff875d3ecd7d4ca0652744", + "address": "AQsFHzdDGTo1pQVfkAg7AGUKGNCzfah9MT", + "decode": "63bd480c40819ee67eb83936864a63acf620a987", + "params": {"ver": "17"} + }, + { + "public": + "0394be69812406fc9da65305d0964f016fa4ab20b25429538ef0b03a94ca46f676", + "address": "ANHCyRmdBFvxrAwdzLTEAo8yEQDvnPiXTK", + "decode": "475cf34fd7941aca62b46d0026db8818685d5725", + "params": {"ver": "17"} + }, + { + "public": + "03faf24da36059918dd6efee3ff37ace5c523ce7caf49b638a4b8cb39efc4ff574", + "address": "AP5WyUmT3GNojUwbr1rEjguQfGBQS53B8w", + "decode": "501f1c6ed8239381237bd6adf1fa69b4d1b0e845", + "params": {"ver": "17"} + }, + { + "public": + "02532973440c262a695e899c36f0d7c38bbe683caab614dfbab8a616604f9587aa", + "address": "AZnoaGEaWL7mmLpihibbg6ra5exxnCQA9q", + "decode": "c59f47b3de328bbe13a54d61a8b04c2b62571916", + "params": {"ver": "17"} + }, + { + "public": + "0236bdcfe528e7eb17cb49aa026c216bf82211762276c92bdc8c6f3c9b0d71da5d", + "address": "AduXQJKyLsJunkmjRM3usrcTa3njwFuMUb", + "decode": "f2c53207510726b65a01d43bc468433f5a079e34", + "params": {"ver": "17"} + }, + { + "public": + "03debfcf18174c09db941da69cec6a78c3623461b558a4c78bca1562624d1d3a66", + "address": "AR1msp7UjjKWVQF9Kf2ppdakHZTmwGeCg3", + "decode": "655a237b716a987e8405cdeac35955c85d0babab", + "params": {"ver": "17"} + }, + { + "public": + "02dc627ea6d1405ec5aa6a818c4de954a1e1d625f019756f503387c9fc92d32810", + "address": "AHytRz83ZbwRfbTxNSDnFDCAwSPMGTd7TE", + "decode": "1835e5d4ea369c2a38978f62075b92bbd39195ce", + "params": {"ver": "17"} + }, + { + "public": + "0356bf29dfd06bbb9341d7598cd99b52169ff203421fc8c01d13a3599e4e99ff6f", + "address": "ALfJjBP1BnCSbLtsEmZ3ThhSnEpHLivrEe", + "decode": "359aa74c98bbd0e6df6e56ed875a15caaaf4dd42", + "params": {"ver": "17"} + }, + { + "public": + "02e42bf6f1229f8b5f35e5286306e551bd0803716346f1fcb04ebcbad0df4d461c", + "address": "ASV53dLRNGsAV9qCNpgAxAHGZSmQJX8Mdu", + "decode": "757bd3d6578a01d9f791614ecfa879901e42d331", + "params": {"ver": "17"} + }, + { + "public": + "02af1d809ba2aa9d07b72d9f15d1b816b004dfb386ff3251cb9950a68c8ffa2150", + "address": "ASfdLswdY82MYmp4SXpKkjRwEZTpxaKemW", + "decode": "777af299a83733a2bba1ad01b069ebcfd94f2bb4", + "params": {"ver": "17"} + }, + { + "public": + "039bda8d8d292c5b8ca407d2209a93299b00454b069d2196ff959a8192bfe815cc", + "address": "AQSAkBsQMBfnaLjLGWDibwifqLZwxK3jQs", + "decode": "5eff15e986618ce6388cd2bbc1699bdecbf5b907", + "params": {"ver": "17"} + }, + { + "public": + "0343f65e06cda7e992364a4fa8899e035fe18ee629973aecd57c9d968cd9140843", + "address": "ANwfiP1UQwfScR4FwdLDuM64povXbY9XuL", + "decode": "4ea314316c70af91538148a9bc5731aba42d2a62", + "params": {"ver": "17"} + }, + { + "public": + "03dded18d8b206e12936a05e7a394a4f0f9b95481eb2a1a5318f3044a59695a8e1", + "address": "AGCmq1zqd5CpfNVBo2Yza1s1xeRdo3g447", + "decode": "04b58ab9f8f1f9d71833ca1fb9d49f1672732a87", + "params": {"ver": "17"} + }, + { + "public": + "0306dc08ca9384fa8dbabe8683fa39880722e31c31213b4d4de78540b52f031567", + "address": "APwRPHCC9zJabK4B6UcsQHYo8zXqbazymT", + "decode": "598f3e3f4ab651ef75bd5182a2806a00d97fb854", + "params": {"ver": "17"} + }, + { + "public": + "03da935017f66b4b13563ac24adadb81fddc7d2043afee4a5e03aadcd406bb08eb", + "address": "AcJNYiWtynTvimTtevAkpyhyf22Q6P3HNv", + "decode": "e1271e8a44e12476687cd333d95ad6d4546c4341", + "params": {"ver": "17"} + }, + { + "public": + "03cf366bfba8fd22cb5c84edf91c1c9cf18d9e62d98933baa18fc901f10c542d90", + "address": "AG8u5XFDSYzPFBu2tnxM4d2KwpjmEHWjKM", + "decode": "03f9ee1baccdd879f1e4ccc1793c827b480860c3", + "params": {"ver": "17"} + }, + { + "public": + "03d0ffe60a89993df22a832d17ef53ea7e132d40288bb9d4694b9d36bb7db7231c", + "address": "ALkGsL9VY3j1hFjomzX1dmg31oB1xbqfdx", + "decode": "368b2e5de27fd29ff1630a04b40347c709f25eec", + "params": {"ver": "17"} + }, + { + "public": + "03daedf6f92df2ab063b8158675d962d6b5eae242d7bde61124168afde9e510cf6", + "address": "Ad6uv46TwTr87Kj6rc7uCTsLzsS5qwUypL", + "decode": "e9f470299972c9cc59703bcfa09e85c2ddd35edc", + "params": {"ver": "17"} + }, + { + "public": + "035d4837f7d1571fbbb7be5066b50e793d573eec40244c0b54f4aecab4260c00a5", + "address": "AXPQZXeV89PzaawywD2N8FFBiKBphsf6kk", + "decode": "ab42405ba7e53547fac32655299a842df919276a", + "params": {"ver": "17"} + }, + { + "public": + "025087a1edcae6eac6d12bfb5ee6f3e6c9a50a91e6fb0ad4c220986850f39b0493", + "address": "AV1GbznDhQ83ky8kD1acumKGuroKaPk1Hh", + "decode": "912234c4a7374b66da9dc0bf570ed4e7bbf0da6b", + "params": {"ver": "17"} + }, + { + "public": + "02d39af7eb3c16c78926cf303b1727f8e28516048c8069f1e8a484a111a49c9af3", + "address": "AbtpSLJH3MARLDizn8Xv3SHxx59ZroEAMM", + "decode": "dcb2bf807697c82a4d3fe4697f667ecab1428665", + "params": {"ver": "17"} + }, + { + "public": + "031073a929b2a4a745dd473778b98540443f65f7d5ececc2f64d2cff7e46b14cc8", + "address": "AeX6uhp2fopzARKmbKzcgaRbU28Lx9AjQN", + "decode": "f97fb96c1bb454ca278ab78d9453301baa28ae52", + "params": {"ver": "17"} + }, + { + "public": + "0273923a49e92cef302aad1de0521916d014a12b08096c08c3de6defab62347405", + "address": "AYaQeM6y8u1HvUeThNXHdqH2mEkBxgWUPu", + "decode": "b84f05a8d86420af7077e2792cce4071e9d68396", + "params": {"ver": "17"} + }, + { + "public": + "03b750fe85bc80b174fc1909685227d7754c7c363135291510e61637bf0bd93807", + "address": "AQtAT6ea1mYiJMzRVdpQLDGvwGrgh6kQZc", + "decode": "63e9a796290608b140ceb484b1197081275b4ca8", + "params": {"ver": "17"} + }, + { + "public": + "02a5d23f32ba3da45b1027dc43fbdadb5c429b64d53f95e65e24ac88c0989cb377", + "address": "AGafuGtMfHorD4CewoDtk87eugVFG5fp7K", + "decode": "08d9beeb28f0d258915a73fde00bf0b3a5302ce7", + "params": {"ver": "17"} + } +]; diff --git a/example/lib/test/address/okex/okex_test.dart b/example/lib/test/address/okex/okex_test.dart new file mode 100644 index 0000000..1c4c17a --- /dev/null +++ b/example/lib/test/address/okex/okex_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/address/okex_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void okexAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = OkexAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = OkexAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/okex/test_vector.dart b/example/lib/test/address/okex/test_vector.dart new file mode 100644 index 0000000..6ea1940 --- /dev/null +++ b/example/lib/test/address/okex/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "0342b72b4ae5829ecec2d1196a1f0a5ac2bfbebf1e54c11d042a5af93fd1bb84cc", + "address": "ex1hyp84n3a3cqjhewpvvxc20s77frhjwuhrxscyq", + "decode": "b9027ace3d8e012be5c1630d853e1ef247793b97", + "params": {} + }, + { + "public": + "022ec8581699d764bbc88cbc376d8baa91255937eb709dd18a95e19c9d551e8af7", + "address": "ex1xptl4lncw4qyvy4gunavpz04agqw6c7azgp8wu", + "decode": "3057fafe7875404612a8e4fac089f5ea00ed63dd", + "params": {} + }, + { + "public": + "037fe0d6534f8b5ff099eedc688f0fdd737ea183317a2b7c1611d23815bbe205f8", + "address": "ex1qj4h0p732j2fcha60ezur0wgk8nz58508m6dxz", + "decode": "04ab7787d154949c5fba7e45c1bdc8b1e62a1e8f", + "params": {} + }, + { + "public": + "02d6192c0ec8165908fb9246fdc283a4ab4850189462c2691635fc726ee1390554", + "address": "ex1sjvrfdnctk5jr49jur9k2p6atc325dfn7epyna", + "decode": "849834b6785da921d4b2e0cb65075d5e22aa3533", + "params": {} + }, + { + "public": + "021e161b4fc349c2e476f11b104bb758c676bb08dffc07b91ad04d616fab83dbcc", + "address": "ex1xlwmyzstnr7hajzwldxdlmz7xmcxc5207znmq9", + "decode": "37ddb20a0b98fd7ec84efb4cdfec5e36f06c514f", + "params": {} + }, + { + "public": + "02e3edd127a233b23b13349feeeb3db2c3f560b07838ae9e19dc5b7df1de653d3e", + "address": "ex1f6t8fj0m3qfve0hmj4g8yptt9wk8het480w78w", + "decode": "4e9674c9fb8812ccbefb955072056b2bac7be575", + "params": {} + }, + { + "public": + "03da1cb5f5afdd07ecb0c41ec265b7a799438f99b157cc5562aa04ec678bec5316", + "address": "ex1yrp055rcwxfplhhn5m65wqyf2jus6jnkhdy5uq", + "decode": "20c2fa507871921fdef3a6f547008954b90d4a76", + "params": {} + }, + { + "public": + "029fdab2b779227db583a3302c4548067c8c6cc684aeb549e317481bdd6f459f8f", + "address": "ex1k0kg0lk98hxwskc9fk5xng6guzhj3yp7lc7djp", + "decode": "b3ec87fec53dcce85b054da869a348e0af28903e", + "params": {} + }, + { + "public": + "0209d3cb126ecda17db8a7f7060263a1a29825fc947aaaeaf09f08ce22239ffb2f", + "address": "ex1l9ur3en767plfyenrecqlysz24465qsdzhedld", + "decode": "f97838e67ed783f493331e700f9202556baa020d", + "params": {} + }, + { + "public": + "0341cc76fde5f25e41c2d8be01447156db0a6ea081b9201ca2d20402927a03a60f", + "address": "ex1m8xzhejgss2g004gh4mhpf6jy2anjx23ydqnv0", + "decode": "d9cc2be648841487bea8bd7770a75222bb391951", + "params": {} + }, + { + "public": + "032ae166924f28c84627c66d45617faaf445092ce0a51d66b65af51cfdf09acc3c", + "address": "ex1a6lwldlfpa0spqqes6d33ywdvgwns0vyf75g70", + "decode": "eebeefb7e90f5f008019869b1891cd621d383d84", + "params": {} + }, + { + "public": + "030b107177fe56eeb85bbdfdb0f61fc230fbe3dd396698dc88b6e75b5ca9d28a2a", + "address": "ex1w8tgfkej4u00rv94p8v0qzxzvw5fn99l2ntxc3", + "decode": "71d684db32af1ef1b0b509d8f008c263a89994bf", + "params": {} + }, + { + "public": + "026eba3b4f5fc7656c5d4be5e618f2bbba90b2d5abc32b1c2f203451fbf152896a", + "address": "ex1jk2vsh5qlx3n5r2n0nf3ardgsyqpnuf87qhfk5", + "decode": "9594c85e80f9a33a0d537cd31e8da8810019f127", + "params": {} + }, + { + "public": + "033d2530e4d25cd960ad21e4795c7af179efa9a710f2fc9db242d3635eabcd7d84", + "address": "ex1fqzpywcx0hs3qkzwhpcsn9k4mevkvay7v8tcyx", + "decode": "4804123b067de110584eb8710996d5de5966749e", + "params": {} + }, + { + "public": + "03f8adcdacc931093b1e94ddd075daba9074436246388199da2bdddc265d5e74c1", + "address": "ex1j0n6azghmp8t6nr0j0z3grvux39gjvncpeduda", + "decode": "93e7ae8917d84ebd4c6f93c5140d9c344a893278", + "params": {} + }, + { + "public": + "030f19509347652b3d888de74e3f41c72e8cfc88c55f6e4645f8ff56dfdede9e7d", + "address": "ex1ed4z68zhfzl0wec7thkdm5g9j05a6rgn8lvgep", + "decode": "cb6a2d1c5748bef7671e5decddd10593e9dd0d13", + "params": {} + }, + { + "public": + "03e2c7f9bc12ca67cb135703ac975eaec55f0fbf56369154672d01c7cd9a64cecf", + "address": "ex1czw88gyru2fyxa574lnl2y4qyqz4dsj544zfyw", + "decode": "c09c73a083e29243769eafe7f512a0200556c254", + "params": {} + }, + { + "public": + "02fddd34f9e0b5891bbbf75aa964ec4171e0c3c3194c28156df227f75f4c54e29c", + "address": "ex1j2gct5ag54pmuzpmu2kgmf6uua00y8l82arctr", + "decode": "929185d3a8a543be083be2ac8da75ce75ef21fe7", + "params": {} + }, + { + "public": + "03d4abc33215f475d463a8314b7b46e0a14bad2bbfcfe2335ccc18224476eceac3", + "address": "ex1ueu98gukk2pen4vtx68ftqep0hjrmm4hgwxzq4", + "decode": "e67853a396b28399d58b368e9583217de43deeb7", + "params": {} + }, + { + "public": + "02b60f16ebdd558567865041e6d8c167c069740808dae04536957f49985950d915", + "address": "ex1r5jt8d5zn6ykpnajdlmx0shz5cwfug2778ahfr", + "decode": "1d24b3b6829e8960cfb26ff667c2e2a61c9e215e", + "params": {} + }, + { + "public": + "02a4902ff5da9360ef92c05ecbb7a569cd6e1dde59efbb02ce07465b8b4e00ff8e", + "address": "ex17ldhrcutny5zssudda9gm7wwkq7ljwq083v97l", + "decode": "f7db71e38b992828438d6f4a8df9ceb03df9380f", + "params": {} + }, + { + "public": + "02e05291983359818d0a7a0a4a1e92a59a89526a8794246d668d9ba82ac6ee8231", + "address": "ex1w5m9s2q99kmcn232mnpkxkv2shkn3xe9yk7u4c", + "decode": "75365828052db789aa2adcc363598a85ed389b25", + "params": {} + }, + { + "public": + "0272316ee900232cc38a10ae7eb005c46b853d7646129a15e0bce7fd4f24578d16", + "address": "ex1l989tkt2vfkaqqvl9cpyqz3aa57qypjuxx5k5l", + "decode": "f94e55d96a626dd0019f2e02400a3ded3c02065c", + "params": {} + }, + { + "public": + "0262acb56b1e8a2ac6051de0f430e408b936a03afbaf20de8cefd47a79d8d17d8c", + "address": "ex1257jd9m0vvdx29whek4j4ffrn5629z8hnp6a3l", + "decode": "553d26976f631a6515d7cdab2aa5239d34a288f7", + "params": {} + }, + { + "public": + "03544953c006512cc85c5780e6b0770118b6ad88c0ee702527b86a4bf5902c65a6", + "address": "ex1wqaj9hm6u6mlhs398tx2puexz7vamlzhfcqw8y", + "decode": "703b22df7ae6b7fbc2253acca0f3261799ddfc57", + "params": {} + }, + { + "public": + "033893fb1feaaf308cba89574c64e55468b7ffb454de285b9fa59f72f45e758922", + "address": "ex1jsack4vl9rqwwy3lvfm4fftqxpnqwarhwf73ka", + "decode": "943b8b559f28c0e7123f627754a5603066077477", + "params": {} + }, + { + "public": + "0309e8dd87dfd209a972cb42bd2671d15a1bb75c72b7e13c08eb740b8e02850453", + "address": "ex1g5jyhrtg5ww8tkraus7rkqh6walcn40h4gfcgv", + "decode": "45244b8d68a39c75d87de43c3b02fa777f89d5f7", + "params": {} + }, + { + "public": + "02c0210e6d27a12658a71ef53c76585a4a0851399b2c344041dde28598e54fb25e", + "address": "ex1ajfk6e0vjquat5r9gc5pt0uzn9gfxlnrx9v7kv", + "decode": "ec936d65ec9039d5d065462815bf829950937e63", + "params": {} + }, + { + "public": + "0256f5e29c2754abc3c4abb8e2f2f91dc98b236b43a9b7fac0945f6df1ee4d08be", + "address": "ex19vfjpek89z9k6kwv8j8muph7j6n08cp2fgvdkj", + "decode": "2b1320e6c7288b6d59cc3c8fbe06fe96a6f3e02a", + "params": {} + }, + { + "public": + "03302cf82fa93e774cb8d56d62b60e7de8c8e221bc49f04d8641636b2f2e443109", + "address": "ex16pdx9f07pkt9dmqztxf05sphmlhx6zr6vqe8l7", + "decode": "d05a62a5fe0d9656ec025992fa4037dfee6d087a", + "params": {} + }, + { + "public": + "022c477c27f9f5a7201a6961ddc5a28d0801f3caeb29a2bb78e7c41c27b74641f0", + "address": "ex1c9xhgpx60kmpf65r56kkk6ruyntm4sxsfnskpt", + "decode": "c14d7404da7db614ea83a6ad6b687c24d7bac0d0", + "params": {} + }, + { + "public": + "03eb5256a89177ea9c4e5c050cf139e2f5ffd1308631924c364a556598ab8cd726", + "address": "ex13ajle2za5znmlc3q4tnwj8uhegkx0qte3jmza8", + "decode": "8f65fca85da0a7bfe220aae6e91f97ca2c678179", + "params": {} + }, + { + "public": + "027e2333ff2d8eb86852fe794b4c180a20aae2e9dc46f1be36fb768a8fd7a0715a", + "address": "ex1s4s3uf5mc98wtvcs2hnmzvvgstm0ajmwsj6tk0", + "decode": "85611e269bc14ee5b31055e7b1318882f6fecb6e", + "params": {} + }, + { + "public": + "03c02b43ff967a2e8039f8b5e92f88dee24ed66790e208bac44964eb3f1239d771", + "address": "ex14wjfhl4hj0t074cueke9mrk56nl4nk807eywvr", + "decode": "aba49bfeb793d6ff571ccdb25d8ed4d4ff59d8ef", + "params": {} + }, + { + "public": + "03aabcb9e4d0cbc783978c32690519e502cfa6491698cc843f27450c1eba456adf", + "address": "ex1azmdsea30r9kq9xemgq5ua7vj0kap44fj70tlz", + "decode": "e8b6d867b178cb6014d9da014e77cc93edd0d6a9", + "params": {} + }, + { + "public": + "0281ab3f1babd1cb915add7fc1e956f4aa8ffd6d7a88a0241665c677eab34fa3d4", + "address": "ex14h4lp7hd3vv8lzv2qz798tuq762g8nyn5vdg8s", + "decode": "adebf0faed8b187f898a00bc53af80f69483cc93", + "params": {} + }, + { + "public": + "03a74e6d54eb7301c45f4f61fb4a538a1cd6d86e06daa1b7b387c31d466194cf63", + "address": "ex1kf7864y3lr72gh9r8tsz4ptaz3spkz6xh9lrvf", + "decode": "b27c7d5491f8fca45ca33ae02a857d14601b0b46", + "params": {} + }, + { + "public": + "0341fe436825250f2ef4bc2f697f5b9bb437b4ae722e8dbc05b8b0d037348f10ae", + "address": "ex1xklvrwdmjw2gum0c7d5y2ajhhlr6c8ngsh54al", + "decode": "35bec1b9bb93948e6df8f368457657bfc7ac1e68", + "params": {} + }, + { + "public": + "03e09ae388f708938b57e6c1bf3733c81036609a75c13f93b153fb71b83586c9d1", + "address": "ex1g7ycs2q3h2rx4zmykae7df06xem5vkv420trw0", + "decode": "4789882811ba866a8b64b773e6a5fa3677465995", + "params": {} + }, + { + "public": + "02147ca6cc7f58f20729e2a4b2382820374315d40ae11c51efe0308fc9d7b9e2e0", + "address": "ex10uskhjcxkkngpjf8sehvke03l582mvmchcf5e4", + "decode": "7f216bcb06b5a680c927866ecb65f1fd0eadb378", + "params": {} + }, + { + "public": + "03c0ccdcf7f1f40d02c44571e311d2762f11cf02fb409bd0f9a80490d040a921d0", + "address": "ex1glh427qdgelnranzkep3cm49068pg2cj5t3qu6", + "decode": "47ef55780d467f31f662b6431c6ea57e8e142b12", + "params": {} + }, + { + "public": + "0245d1f16ecef9731548b2d677c798d49cb0a8fe77c046494d853dd4607ec0b13b", + "address": "ex1af4lhmtnmvkgspwc6rhmzx044ff0j4pywfvtdt", + "decode": "ea6bfbed73db2c8805d8d0efb119f5aa52f95424", + "params": {} + }, + { + "public": + "020a535b609789bbfb4d52461cd1bcfc726527bf3b79a3aab085ec78bb202cb72a", + "address": "ex1m3dqt02pgyz37df0xkn3ddr2tkqv3emfth033v", + "decode": "dc5a05bd4141051f352f35a716b46a5d80c8e769", + "params": {} + }, + { + "public": + "0343e5108f35283a4ffe723da48b323cc6376b74ad18ff52e014d461f253800022", + "address": "ex1774n2w79sycglqrc0h9lv9mk4dvqdzap97mdp7", + "decode": "f7ab353bc581308f80787dcbf61776ab58068ba1", + "params": {} + }, + { + "public": + "03e1a22c444f103660f5fcec07f44cf1f7cda4a60c95980962b2171a36425103de", + "address": "ex18x5ep6svvma05s62yrrkqksn6mpdrj6mcc3unw", + "decode": "39a990ea0c66fafa434a20c7605a13d6c2d1cb5b", + "params": {} + }, + { + "public": + "02f6f0dd9be4efe7d3aa46c4accd03864608cb5dbc05a04d536c4a088f99381c1e", + "address": "ex1hlnwupd8e2xza7vzngrcszak4smxpd8xz46g99", + "decode": "bfe6ee05a7ca8c2ef9829a07880bb6ac3660b4e6", + "params": {} + }, + { + "public": + "024f27dc811246716199a0da84fdf62f26b07dfce550b88ffcd2b695dab9599cb5", + "address": "ex1c6vtqk8gpxya7wd699jcpd5jr53mzw5atmeuxj", + "decode": "c698b058e80989df39ba296580b6921d23b13a9d", + "params": {} + }, + { + "public": + "02bd9c967bf60b066b0841f4c5bae45f5b91136a49f8c994ef8c710dd1517cb0a5", + "address": "ex1ehd0y7s3e3cc76uwvtw7qw9as2ug4myys3ueaf", + "decode": "cddaf27a11cc718f6b8e62dde038bd82b88aec84", + "params": {} + }, + { + "public": + "02786e112bd8105d43ab1e0d1f489b398c58ae5400036104443d418d97e2ef6384", + "address": "ex1ranqeyhwhkg8wucajqe3c3c2na9hjun89d56p3", + "decode": "1f660c92eebd9077731d90331c470a9f4b797267", + "params": {} + }, + { + "public": + "0321721939243398e9726d710c58d73dc9d1cef70b7246e62deca69280922f1ff9", + "address": "ex15x57u3ze2vgt0m94q5mnvc5yqr94hlw4kunrsy", + "decode": "a1a9ee44595310b7ecb5053736628400cb5bfdd5", + "params": {} + } +]; diff --git a/example/lib/test/address/one/one_test.dart b/example/lib/test/address/one/one_test.dart new file mode 100644 index 0000000..1321c34 --- /dev/null +++ b/example/lib/test/address/one/one_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/address/one_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void oneAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = OneAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = OneAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/one/test_vector.dart b/example/lib/test/address/one/test_vector.dart new file mode 100644 index 0000000..24d191d --- /dev/null +++ b/example/lib/test/address/one/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "0310317b6146aeb0bb9ede84aaa9207cda5ec39f9b99458e293c1477d38420b36f", + "address": "one19hwuxvg6e9fgl9fem6gxspff0uyc0s3wwzjdx2", + "decode": "2dddc3311ac9528f9539de906805297f0987c22e", + "params": {} + }, + { + "public": + "026128c9236b4c2871ef6f6c055a84a7c7698047efbffeadbebeceab2ff6502b75", + "address": "one1umtfxs80t2a4dr9cx8avjw4003qv9ywegk3pjz", + "decode": "e6d69340ef5abb568cb831fac93aaf7c40c291d9", + "params": {} + }, + { + "public": + "03f5e4cbb34282e6434587d4d2d2a8392a3b01f1f045a951a588049e1ca53572bd", + "address": "one1a0hcq5utvkpuvd32ny33d2uzfvgjyptxza4zya", + "decode": "ebef80538b6583c6362a992316ab824b11220566", + "params": {} + }, + { + "public": + "03db51611a1351705781d39024e44946fd56fdc74c94731b1b4d44e40131cb13b3", + "address": "one13s4zpavdhjaef72ha4pykjprvrvycx4lf8u2cm", + "decode": "8c2a20f58dbcbb94f957ed424b482360d84c1abf", + "params": {} + }, + { + "public": + "02b186095654a4c80d37ea535a47aae25913d073eb079a580b1a2dada160ba0553", + "address": "one1ghykwrw9xg0u974ua2sxla6mxtpg0rj9xzlmxx", + "decode": "45c9670dc5321fc2fabceaa06ff75b32c2878e45", + "params": {} + }, + { + "public": + "03aef98539ea17deb59350127c2d5dfa31104173ba3a2458510d96e59c4afdeeff", + "address": "one1vr7zxr8umanpr5jg6pru54hzsg5nsc3u2xf6a2", + "decode": "60fc230cfcdf6611d248d047ca56e2822938623c", + "params": {} + }, + { + "public": + "036bcb9f1db975e99744ee16cb5c9488f1bb1b506cf08d5f0076ecbdf78d17fe17", + "address": "one1p8nd6d6j4w960qn4ytasz4l5rq0n7t3duyc52x", + "decode": "09e6dd3752ab8ba7827522fb0157f4181f3f2e2d", + "params": {} + }, + { + "public": + "03380333bb82ca8193333a4e2d3ffd04658ce1f1e4cd7adb94e2917d67ea852eeb", + "address": "one1cvpucx8xpuy05jjy0lk6aph5y79ylkqj56teqg", + "decode": "c303cc18e60f08fa4a447fedae86f4278a4fd812", + "params": {} + }, + { + "public": + "0258a3cadce01f6c1dbfe55811a2120fed50ccd084d148bb376fb4aaae06c025a8", + "address": "one1qkwkqkxu7ux5kgtysu0mu2d275jy7k59tdmc8x", + "decode": "059d6058dcf70d4b2164871fbe29aaf5244f5a85", + "params": {} + }, + { + "public": + "026e19fa29205cc6b27ecadd439a014ad44f8e8956328197882d42cd40307038fb", + "address": "one1dfahaw9x4m4pe3refxun7hdz8pf3ruumqwc4kg", + "decode": "6a7b7eb8a6aeea1cc47949b93f5da2385311f39b", + "params": {} + }, + { + "public": + "032649a6e6cfc642eb0465db2375e90057998a725564330b28a410e7f4b23f6849", + "address": "one1zk8mnjcfvgd7cu5uvt8068rhrnzyapcas356fg", + "decode": "158fb9cb09621bec729c62cefd1c771cc44e871d", + "params": {} + }, + { + "public": + "0234ab85858d13233478b914c0c1d731bb6bf30e3bebcb15a9a20bab7f54153854", + "address": "one1qvh7x2q2mejdqppn64hkhuqujg6n29sy0tvfmc", + "decode": "032fe3280ade64d00433d56f6bf01c9235351604", + "params": {} + }, + { + "public": + "02a7df7015ad405e3dbacfcf00568d82c3ff490b83aeec320f9f315b770aec0b71", + "address": "one1p8vkf8xt88w6jcflcwl6aa54r3wj9pucmmrfpm", + "decode": "09d9649ccb39dda9613fc3bfaef6951c5d228798", + "params": {} + }, + { + "public": + "032cf2404f853b525d22e24d2dcad57a7cf6ddf6668bbc1a4be9f71bcbb522d5fc", + "address": "one1spvvvlmknm08vtx9j0utxla9jkcrp9svm33z20", + "decode": "8058c67f769ede762cc593f8b37fa595b030960c", + "params": {} + }, + { + "public": + "026762c2f0f2ba38c2396347958a17bb83b9bb60d46e19b37f8cab1044bd68bb15", + "address": "one1z4h6dkgfrdhgv3lqk97ph9sel2ra6cc53mk7nl", + "decode": "156fa6d9091b6e8647e0b17c1b9619fa87dd6314", + "params": {} + }, + { + "public": + "032aa137c6556a4f9e6385454764c314ce04d36e5fb8b1e32be8c344525168b701", + "address": "one1muzzjd5qlkfv85seny83259wv22nnskp33y5kk", + "decode": "df04293680fd92c3d219990f1550ae629539c2c1", + "params": {} + }, + { + "public": + "0222d6257f494beeb19624eafaf774d5f66bed9425e404ff8b1f94e5dd6b6adcdb", + "address": "one1mfn3udjfcvhld2lzsctuv4cwdcgsnjt4a4glaf", + "decode": "da671e3649c32ff6abe28617c6570e6e1109c975", + "params": {} + }, + { + "public": + "033d01aa5e0e663ed73c4bc14b67606dd6f97bdf26b01772682c9f8672df073a14", + "address": "one1mgsmtuase7z9x9mrk285whrv53wkh26pdhhstj", + "decode": "da21b5f3b0cf84531763b28f475c6ca45d6bab41", + "params": {} + }, + { + "public": + "02e9544673e0f78acb403dc5681ae2036e4e86e9a878b604225301093e1977b8c3", + "address": "one12gc7lvvh646eefe6jf9cuzgtdc3rc6t4rhfhtr", + "decode": "5231efb197d5759ca73a924b8e090b6e223c6975", + "params": {} + }, + { + "public": + "03f5bcbe52a0b2cb8942f340dd1021d83c7017a907e1ade045f351c2dada625243", + "address": "one1w4m8423rfmn092qrw037j8pdhxcqjqsfmytknh", + "decode": "75767aaa234ee6f2a80373e3e91c2db9b0090209", + "params": {} + }, + { + "public": + "028d1c55e9e641e626b2c03034188336f1518612ea4511f51c0ff105328b211873", + "address": "one14dtpz32frrp5xdaxctknnrxxv74w64hsvflpsx", + "decode": "ab5611454918c34337a6c2ed398cc667aaed56f0", + "params": {} + }, + { + "public": + "02968250c6fc669f8f1beb2375e27d123c4dde3fe376d1fa28a14ceb105efb76fc", + "address": "one1ga7p5e7j53a29wqjvnnaery4mjzh4npkvzr6rc", + "decode": "477c1a67d2a47aa2b81264e7dc8c95dc857acc36", + "params": {} + }, + { + "public": + "039e533f71b013a9207c64000a847d1e0a9459c7e0f683daceaa95200f1b0a934c", + "address": "one1lu6zjqd35e8js280wfmgyj6t6hjrmp9wnmavv3", + "decode": "ff342901b1a64f2828ef7276824b4bd5e43d84ae", + "params": {} + }, + { + "public": + "02bf1dbb281062138c3abd0208272a5e86266c803122b9c1e7aefa282b278dec83", + "address": "one1748ul4glwzs7aqcgq4yhru9593za35hhhk6j5y", + "decode": "f54fcfd51f70a1ee8308054971f0b42c45d8d2f7", + "params": {} + }, + { + "public": + "033f49d6e70ae809d581dc6c5cad532f4866accddb136b1af347532b54c0d6b267", + "address": "one19kvv4ncpjv6jlxcrug5upexl6dnl6g96mmr8sx", + "decode": "2d98cacf0193352f9b03e229c0e4dfd367fd20ba", + "params": {} + }, + { + "public": + "025f8186cf21cd5b17a90633e0974fe0dc9f424d96c13756a8077349b8062f3bee", + "address": "one1tyjnwzrehtvr00s8ctl5t63wj9quqcc5l79cmj", + "decode": "5925370879bad837be07c2ff45ea2e9141c06314", + "params": {} + }, + { + "public": + "02930f873fe93b341c5b128e695acafeb8a65ae65f12e3681b6e15d3f7b163d3bb", + "address": "one1jc6v97fzrk804w9v7459wmxkcytxu003fzkgl8", + "decode": "9634c2f9221d8efab8acf568576cd6c1166e3df1", + "params": {} + }, + { + "public": + "02139e5aa80970872db59e6646fe0d63f4239ef3db64761f5e77b6af1ca55a460e", + "address": "one1fr2qczddtxf4ekep2gtmdysjp4na04kzxfl836", + "decode": "48d40c09ad59935cdb215217b692120d67d7d6c2", + "params": {} + }, + { + "public": + "0331c415275ad2145f46b8c5f52bbb1293b115ad3d814deb09949c13e6b20d5548", + "address": "one1znn2mx6nvwyjzf2w346wplcnvaran5tqvcnge0", + "decode": "14e6ad9b53638921254e8d74e0ff136747d9d160", + "params": {} + }, + { + "public": + "02e6c50621b2d212d9d7415637ea3490a10d3d7f7e7748f02071cc2cf5aba62c9f", + "address": "one17akgszz62dt55mdj49t94w707c6jh5nuckza0a", + "decode": "f76c88085a53574a6db2a9565abbcff6352bd27c", + "params": {} + }, + { + "public": + "02a8c2a22b28a8f2e75abb6c3a662cf8f792b4df4cd201d91af93d637d90b00651", + "address": "one1fnms3xnp2k33kk0ecf7kh9d5dlsjrnv6amf3n6", + "decode": "4cf7089a6155a31b59f9c27d6b95b46fe121cd9a", + "params": {} + }, + { + "public": + "03010aef51394de967afcc36c952e385d92d24c233903262fee720a1a10b955c69", + "address": "one1k86wkgcz9wlp74cr6s3l3cag9e4sjqt8whwak0", + "decode": "b1f4eb23022bbe1f5703d423f8e3a82e6b090167", + "params": {} + }, + { + "public": + "02057b4b35a5540f9fa0de9b83abd375d9dce68a1476769892931f8c32d336548f", + "address": "one1uwef7an4r23w6grrv3v9vanttzgyjmq9q8td0h", + "decode": "e3b29f76751aa2ed2063645856766b5890496c05", + "params": {} + }, + { + "public": + "02a82630f09feeae5ba271da2e08a9bcf2509c923796386a7ff216247b62b5a39b", + "address": "one1hq3hyjhhnttchz99suhcpldswhvgrhrxldnekh", + "decode": "b823724af79ad78b88a5872f80fdb075d881dc66", + "params": {} + }, + { + "public": + "029bdc5417024f8929961cc93838067eeb7b44e88d608a18d4685e2eee94daacdc", + "address": "one1v90ecw38slqzn97lhwzf63wfy7enymmstkm890", + "decode": "615f9c3a2787c02997dfbb849d45c927b3326f70", + "params": {} + }, + { + "public": + "03ae0b45bbf9f036f39433d82710b9d3da59cbce4df09d3ea1cbc916e795e4d585", + "address": "one1vmq4rxjkvll29vcat9aakfxnskvawc8g6z6u73", + "decode": "66c1519a5667fea2b31d597bdb24d38599d760e8", + "params": {} + }, + { + "public": + "023a2d3198153ba7829b0da5130f843fd363b5c4320211700b37d3b081e44ee554", + "address": "one1nsc6w8hzpgtsm8n48nrxssf28ug77mf9f360u3", + "decode": "9c31a71ee20a170d9e753cc668412a3f11ef6d25", + "params": {} + }, + { + "public": + "024fa62c1ef9b470a4fd109aa3e2ffd662620592c9982c432cdeae5420f39adbd4", + "address": "one1mvh8dmza30u2l3dtld24rm5l67qcmtcfu8c27u", + "decode": "db2e76ec5d8bf8afc5abfb5551ee9fd7818daf09", + "params": {} + }, + { + "public": + "0397bde944273b9a9fc429a536b0b07f5119c6a050bceebeb0b323116e250a3c32", + "address": "one1fv8tzynqvhkgjzpmwuke4kwy0lr6n3qsx5ztx8", + "decode": "4b0eb1126065ec89083b772d9ad9c47fc7a9c410", + "params": {} + }, + { + "public": + "027cc6e5fae1b444cf962af5f16fbbe9ed4b793f1ee1b8949d854b8d430e2b7764", + "address": "one1rpglkf6ruxl6x4psw539d8j9tuckmr9naexewc", + "decode": "1851fb2743e1bfa354307522569e455f316d8cb3", + "params": {} + }, + { + "public": + "0335fb38ff3e1e66295eeed242646bbbf48a1192f4b2d5f915b89b8e70d160bfdb", + "address": "one1urr7rgqxl4lv59du5jtjaanrw2twnkwjfql8as", + "decode": "e0c7e1a006fd7eca15bca4972ef6637296e9d9d2", + "params": {} + }, + { + "public": + "02d6fef4e338276c354fadc6b13c502692993ef2a78a9a7e9b317bef9ec881ef0b", + "address": "one15jrszvvd2j7xn7h8jfjwemj8hl68a5gkfs6pl2", + "decode": "a48701318d54bc69fae79264ecee47bff47ed116", + "params": {} + }, + { + "public": + "0364d4ebe206238556e6c74d0ae56458417564bfc6ee71e423e73e711de8d70197", + "address": "one1l05hvlpdz4zyk8zwfc0fze7sq237d57juk7kh8", + "decode": "fbe9767c2d15444b1c4e4e1e9167d002a3e6d3d2", + "params": {} + }, + { + "public": + "031ed09f31cf9362c5395b411dac61486ce30d670b33494356110f6fa1a5cd92a5", + "address": "one1s8mutlnggvx5yvjcsd77hvg8s0nrcdpe36m3f7", + "decode": "81f7c5fe68430d423258837debb10783e63c3439", + "params": {} + }, + { + "public": + "0333dfb6a6525474afcb43a85c9917c167d7cb2ea31d576a8df552fdaebe245965", + "address": "one1cjfekxlpwq2r54esecqfqu3nyqw3hj0m7kmt5s", + "decode": "c4939b1be170143a5730ce00907233201d1bc9fb", + "params": {} + }, + { + "public": + "025b43d4ca2917fe796d18d162049cbcb5833dd6abb6d038b7fe611f11bc430ca0", + "address": "one16xyayg5jqmdgstt3xftkdtqgkky4277znjg2kx", + "decode": "d189d2229206da882d71325766ac08b589557bc2", + "params": {} + }, + { + "public": + "03bbb19f8defd0666b7cf52f52537dc17f1137b434be5e40f0b7ae8e5995d42251", + "address": "one1f2y44tpwqns09cf090gdn4elvjxcpuanu40cll", + "decode": "4a895aac2e04e0f2e12f2bd0d9d73f648d80f3b3", + "params": {} + }, + { + "public": + "03521e97f1c9a70293de8c95efb1f5b4d1db50909e60278ee77de01ad9661b66d5", + "address": "one18lwgzcmnfd9f8xk3e5f2xt2ujn4pz2gs4ycxuu", + "decode": "3fdc8163734b4a939ad1cd12a32d5c94ea112910", + "params": {} + }, + { + "public": + "03b463e4423e7a3d84fb0e5b86e34dfbb7f4b95397c31f4d428aeaebde1f42e201", + "address": "one1lrsnnn4degtyffv8dat9ugtu8rm4vkl47fz8qn", + "decode": "f8e139ceadca1644a5876f565e217c38f7565bf5", + "params": {} + }, + { + "public": + "024d47a38a60f96f1330a3042855bf26517d862303aa3a3d02596698f3a2fdac99", + "address": "one1u4cygrw5c057d5986t6jvtnncgzttnwysug7j3", + "decode": "e570440dd4c3e9e6d0a7d2f5262e73c204b5cdc4", + "params": {} + } +]; diff --git a/example/lib/test/address/p2pkh/comperesed_test_vector.dart b/example/lib/test/address/p2pkh/comperesed_test_vector.dart new file mode 100644 index 0000000..8d58743 --- /dev/null +++ b/example/lib/test/address/p2pkh/comperesed_test_vector.dart @@ -0,0 +1,352 @@ +final List> compresedTestVector = [ + { + "public": + "0357acbdc4c68d1128be4ed9f0eaf6b9419ee79055899777fb8bb32963a894eb18", + "address": "mx6uP6SkwNgbVqwEaTqd7oRNuAJgit3ER6", + "decode": "b5edb9383e884742a4e979424818e5135a523cbf", + "params": {"net_ver": "6f"} + }, + { + "public": + "03a802079ebc9894ef7be16e05f87749147301d5421d36ba8576fe513c2e50aaf8", + "address": "XnXBaoFQb6VwHUypKtSf66f1AX1L9pbPPS", + "decode": "81cdd63f26eee01dcb4ea28706e686e0ba023775", + "params": {"net_ver": "4c"} + }, + { + "public": + "0339e96876afb67763a77c0d0b7f7d8b3659a17fd56a56e09c71cae6fc5ac8883e", + "address": "DRq8DVXBXNHTPyBctM1Wdx39wUxU47Fwyt", + "decode": "e2f48db73c94b96b19aed20115133a8448be1eb2", + "params": {"net_ver": "1e"} + }, + { + "public": + "02fb1e9298039bdbe45b7598b4474fddeed4b351398435157b8ad09bc5b6e4baf4", + "address": "n2yL1XPqEwtyh7avPp5cNXt3Xpsdmh9jTk", + "decode": "eb57954faa730cb8f99f6e760e9d6eb5d44f205c", + "params": {"net_ver": "6f"} + }, + { + "public": + "02393aea8482bda16d62dda0df7f0e71bde0dd03cc568006c32bd308c0c66d6bec", + "address": "t1bQVBWqSRNUgfxRDGJLdSJBRZ25RnZafwq", + "decode": "c051561a95b7cc17d4c76e5d64885eae9f9a882c", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "03717a3d0543a730f2c054dc3beeb3c62c732a7fa0d5e35bbce584a1ba8d09b572", + "address": "mnB8NoJVZXMX57CjCHqq1jEu81JuCA14wX", + "decode": "4908fa24c4a763deeef68ce0b964a3715894b751", + "params": {"net_ver": "6f"} + }, + { + "public": + "03de14f79791c3de9a1739911c43f67a59f3f3173798ebc64387382729a40e3946", + "address": "mjoLqaxHRhNA3NN1dMatM25aHzjvcXpSqF", + "decode": "2ef9fa1e204e61abff4cca29bee16430e63b5614", + "params": {"net_ver": "6f"} + }, + { + "public": + "03b196ccf54634ad4e87a4cfce8075b07a36b4f321b2a4ac0eab59fdaeff64e599", + "address": "yRqbG81v9EHrKKmzf9bDXB3DeiGjkxCrF8", + "decode": "3c8c214d28234534e09b089b0ee8f217e69437bb", + "params": {"net_ver": "8c"} + }, + { + "public": + "03462f5f976de0fd8b89de10a5dfeeae441b64240e3e745c326b65e11297936885", + "address": "tmKupsDfg18XXwMXPxDipw5ab1E4RSXosGB", + "decode": "6fdcd1985f5140cc167357d88eae94bc64e1dc59", + "params": {"net_ver": "1d25"} + }, + { + "public": + "035903aaf5988df09ad1fc018a841eaccfa835960cd71ee6307fc0c81536df366e", + "address": "nWQvRZTkyPzDmB5MnnwvRxDYdbpxXaHRgk", + "decode": "185a1b2cf050856ba2d6350ebf662541a686b554", + "params": {"net_ver": "71"} + }, + { + "public": + "033d1d9d5bc38c506480ebebd53a768c980029902bf82010702f54507104d40bb0", + "address": "1HWTXYq89RczCD7ywiQLbo57kh2womH5L9", + "decode": "b5143803def48ae6e4941e453797cb88ae784b75", + "params": {"net_ver": "00"} + }, + { + "public": + "036cdae6c6aec8d0a4a340754aa9fa1315cb6adc11d329c7c88d0ee6c818472a08", + "address": "mtyeHbh1zZ7yneNXvDUAuzCYavqWqcUcfT", + "decode": "93a5d57eabfb0932e7f77252d682a527767ea13a", + "params": {"net_ver": "6f"} + }, + { + "public": + "034d91dc3abac85d33eb99d42e028ebfa7651568922e543258a4c093e371843a54", + "address": "t1f3Ccx473nPJBzWvJP81wJNN7zsrHeLtJH", + "decode": "e82b478adc76f9798621fa00ea59453ff5fc37f4", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "0374a0bfc34965833084a139b334a54f927d3eb76035f1f69bf283906f720700d0", + "address": "14h3JXGHwoRKv8qfYeQJAt8qwCjqY8pzdo", + "decode": "287af0013f2958929f08b08f64e730085a6d194e", + "params": {"net_ver": "00"} + }, + { + "public": + "038cbd9bb6a2785a41e38ee5e375231af664310ac1a5bf48bbb4bb32b746cd5d8b", + "address": "t1QhDwj571FMtQUYZhvZQeDraTcqnvEAgUL", + "decode": "4ad24de30838147aef770814cbba6fc7b2b032f8", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "02f35e1f05f0359f3e9bd1dd297d163b241601c478f0ec8b419d69154a085668a3", + "address": "tmSsKaAhFgCgJsDKUvKRv1pQzDc4eh2wRAa", + "decode": "bc2c69f5afc1c9f5c175a87306581eed8613c180", + "params": {"net_ver": "1d25"} + }, + { + "public": + "02f386a8c508472f9b407185bc1447dc43357b9dc00cebb98858d187f9d38dc32a", + "address": "1N8Bn52kNusuM8w3v49PxcVnZGeAatKhzD", + "decode": "e7b68ca759c794dbd900665c405335f3dfa8a3d2", + "params": {"net_ver": "00"} + }, + { + "public": + "0266b95cb7073c74b2c5f6f79d74205e0be066c58f0e47dd69451ba9920faae802", + "address": "msM5c2QRGiQgvWXmfLgf4t5xeE4tDP4vyU", + "decode": "81c373a523da3d1fcddb5c1f1881bf32f5c32ad2", + "params": {"net_ver": "6f"} + }, + { + "public": + "0209593e958644b6d177472faa1402b150507e64a3a034d0966c75684af6a50394", + "address": "mzsjA85yw91fQSLqSYG8XCLc8tn4LG8gmm", + "decode": "d45828ba15453c2350907fb0910dee3229ab8d59", + "params": {"net_ver": "6f"} + }, + { + "public": + "02d12d2f6ffa0aaafe6da9c6995e281b8b264531edbbc040ee6e62077456925dfb", + "address": "ycp4EeWABsVCj3auzCpHe2dmM9Kkn6w4bv", + "decode": "b4eb32f36da7c8f50d2ad6aff1f6aefdebd81332", + "params": {"net_ver": "8c"} + }, + { + "public": + "03ffaf2246eb295252975442880c2fac35bcc2e6b57e7f495245566de33b75a429", + "address": "t1SWp6z6etqmmxVDWnJAt3aAfQE7hVkk8cF", + "decode": "5eca7ec9a399073f4f0816aa05e4a51400c8ff8e", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "0319b8498377a852dd912910e5b01f2ccb0f47caa4e8cc083b1ba700a977752164", + "address": "miYfmKGvkfqkewutS2v5fHeJrDpd8LFdaE", + "decode": "213b6927183789e84a7fb730a50a48998a5fb8b2", + "params": {"net_ver": "6f"} + }, + { + "public": + "03fee3b5d179109d29994f224d19000a1455da9c2fa93bafd5085bc821ddf83eb4", + "address": "ygmML7E5NB5zaFtsKWBwi82ZGzfuMpXXah", + "decode": "e048b94801fa6769bc1eaca253d00a89bb33ceee", + "params": {"net_ver": "8c"} + }, + { + "public": + "02028e045d589a2a917f883e7560200268e00beb7fa47ad0a8356afc9c6929021e", + "address": "XvvyZTcnkBeCNezVuvFVa7UmTjxqfMEWYH", + "decode": "de0eca368e4fd7471ae84c2841920a6e4ca0e5fa", + "params": {"net_ver": "4c"} + }, + { + "public": + "02c5426f260d1966637675e7494605eda90874405631aaf38dfc20b4565f3189fb", + "address": "1H4TwKiCTcFheGtBmhvEZMaKisZN1Ld9Vg", + "decode": "b029bef7813c5bf378e56d0aef3a75b33bcb14c0", + "params": {"net_ver": "00"} + }, + { + "public": + "030a6965e76aecc7d8f87e62632b7e65752f727fbc07f63031fa5ea6bd4ac3498d", + "address": "t1JGNAmbyg4UhsuXXgKihryuwJjT5jMRCvy", + "decode": "044e042ba701618cc3d9255783fe054cbffe9f77", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "037da941e8c850b6119ebc5efb948b798355385d5bc3d4cb93d3edaf35d3495f32", + "address": "t1gD4TrvvbJkgMdPuNz5QLJwQh2hJPBqZZb", + "decode": "f500c18911316ce99ba209deb6e94fb488dd7bf7", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "02ce43889af64bfd96d3800b11212faccab6b4ef71bf45a250a59ac3e948ee6e42", + "address": "DNZp4h1dMXjif7L8GQa5KwYnnkv9DnLC8Y", + "decode": "bf26c8d364d24e329ca92f11619bda8f97a6faa6", + "params": {"net_ver": "1e"} + }, + { + "public": + "032a076f453f422b317adb0efc5e9f6b5d996d696bfcabc4eda99833d95d3cb3a9", + "address": "t1eh7H7QuvVmBQMXgLdWZ4FG8LtLEgSyiFG", + "decode": "e45e803bc0cdff703222e25b12087be2d64037d0", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "028e69493d3b1c716da8141016f6851642835253d28b16e404c121a1dc83963826", + "address": "yLSUwfRymmgpfrDze8APdmcMaoENTEocs7", + "decode": "0154a8eb02e7e672370516b85425f043e8da20f7", + "params": {"net_ver": "8c"} + }, + { + "public": + "0250520b4a9648dc84472c33c34d7591fc6d00e8ed2d639033f3e898c7959f27d1", + "address": "tmStXFFESwoB2gc7TWgweFvYe2qbcHKj63u", + "decode": "bc66931b2b130b0bb4f6452ab5f046a73258ee80", + "params": {"net_ver": "1d25"} + }, + { + "public": + "035ca8cd12372f68788a510a5f0e6cd43d57f7db318dea7653e46adc8f4ff608c4", + "address": "nbD3dEvDuaCGViR9RrVwhBAFPL2AraNJVz", + "decode": "4cf3c1440d3001c0e26bc3799c1e511a64bea38b", + "params": {"net_ver": "71"} + }, + { + "public": + "03dbd05384681a18268badcbfffd22e13d49d087b79d7e55546595dc3ee192a324", + "address": "1DcPWvcRaBWANXd6hppFDpMzjQW5SmQCaS", + "decode": "8a52dd0970ead2dba82cc676efee6bc3d4b6b445", + "params": {"net_ver": "00"} + }, + { + "public": + "03ba15217b95a9502a93eb701d2bbac64e8cdcb6ed05336024a1d8776cb7c09fc7", + "address": "ydoyFcArbuZaNvNfvmj2U6mEPXhMkiYFRc", + "decode": "bfdf2a32963a6898a19bd26099bb759fc2b69e40", + "params": {"net_ver": "8c"} + }, + { + "public": + "0227271ed29eee6b146980d51e4cecd89a775b63aa3d08a5419a7177ad5986bfc6", + "address": "tmDCYjnyiFkPvtEFD5hS1KUBukw7cXZwam5", + "decode": "263d8beda27350b356e0170fdf2f9b97cc390a4b", + "params": {"net_ver": "1d25"} + }, + { + "public": + "02ebad0a30e7af5f3e8f2f2f75e7409dfbb9c226e0d24a308656b4cfaa14f067b6", + "address": "yee3cUayqfzX7jG38FwB1eWySTPErU9js6", + "decode": "c8f6c53849b9c360d936f1c8e6f7e4013b3ba975", + "params": {"net_ver": "8c"} + }, + { + "public": + "02979259f3c6a4e907abe9a847b57ad6cef26a83bbc1e3fad9dffdaed828c0ff66", + "address": "XimXpyUWMehbqGwJa72PPBUcKU2emgVFa8", + "decode": "58a40e719cd50c7f2c09a717fa8e9dd24616abec", + "params": {"net_ver": "4c"} + }, + { + "public": + "03a256146c83c2f76f05d6a984234099c44fa16ffa58eb7f270cec3fa09bd28f50", + "address": "mmoS66C2UpEmhsAMgJgmasofB156JwAKDd", + "decode": "44ee9c72dfc17655a1c0b5eb67e3b5502cc3521b", + "params": {"net_ver": "6f"} + }, + { + "public": + "0376a8e1d16844a3d0188ea455ca50d015cefd4545280204147761db159842a602", + "address": "tmJdAEkaAxf8S7mYbe8HJy6WfyXyPQEwrr2", + "decode": "61bdcaba6ee1785f68c2dd1580eadf4c33f520fd", + "params": {"net_ver": "1d25"} + }, + { + "public": + "02f70fa8798d28cb5909a6cc99f9d07c44a5661c23d9d8a15b6d3272f305398561", + "address": "yegDe9M8SgnumN3z4nLnQiZr9EyptSZpbf", + "decode": "c95ff951c72f41887de979fbd7306f6c0c8d39a6", + "params": {"net_ver": "8c"} + }, + { + "public": + "033fa475f91eb9c6adf4596dc304f9a96fd1118d996d706776804523a25ef8e176", + "address": "yY1FCXy3cyBoCVSUpKL7du8b1h6CMNjv7c", + "decode": "80304c30bad90b27940ceeb7cc172c2d9c2eb3e7", + "params": {"net_ver": "8c"} + }, + { + "public": + "02f17750605ff45711a06449c67b7a60297a2a506fef5428f56aede3fe2ebe8c8a", + "address": "niPeWWxsevRWBPRCDNyUQgoR4AhraDAw48", + "decode": "9bbdea31293853940c92a30b71b4035e308dcf6c", + "params": {"net_ver": "71"} + }, + { + "public": + "03f19460b7a40887c95454ac9fb5f23980a7045aaaa56a72b34155dbceebe8851a", + "address": "my6oXTf6vRaqLoGeqZceoi8r17q3a8mdFb", + "decode": "c0e0f60e256935ec1c8fbab3816f3d08aeffe99b", + "params": {"net_ver": "6f"} + }, + { + "public": + "02a72c06050bb98d7746d2a7498ef7b67e8c32c6890ee413fce10fef42482802aa", + "address": "1CTWgQeuTmjh6GAtHgcRhXGjHm7mB2ig7h", + "decode": "7dacf949ba013ad131e5f98a12e99424bb21b675", + "params": {"net_ver": "00"} + }, + { + "public": + "02dd89785fdacee5a77b83cddd9c2d273b725f8803e86f6351c8cdeb2d4dd35667", + "address": "XsmSX141ARjsBmsR1uJ5x4STurj5BbYsFu", + "decode": "bb58c18a20d386d4b160eee80dda3a1031a9e2dd", + "params": {"net_ver": "4c"} + }, + { + "public": + "03363be2a7ebdf178f7a61d056c571953e2014a31ffe04aeae3d4aa0d022f50caf", + "address": "1CX2r3Mn1hTRe1TkeJkJRFUvtuQmiCq6BZ", + "decode": "7e57672df3bf9c3d6e83abe85fc7abace7829919", + "params": {"net_ver": "00"} + }, + { + "public": + "03d959448dea44162543d713a0f0968bc9d4f6ac2e8989a1c0d5611b7f6e34a1a4", + "address": "1Bw7XnLQNd5mnPjuWRpsZMDdKdq22f8Y1p", + "decode": "77ed2bdd2335ea8ff5725c30374ffb105c19324c", + "params": {"net_ver": "00"} + }, + { + "public": + "025907dde5d6d66b68d2b95e799089edc3409a10db2446677a0d05e17d7dcc6e2a", + "address": "mmg5DGm98dWEbrT7q77o9rZRaPiue7ggi6", + "decode": "438a45d95bea9d3544d16fd2deee8086ff398162", + "params": {"net_ver": "6f"} + }, + { + "public": + "024981a796bdd9bd42a84632405a04f2f901f9ffddb6a09b3d4da2f3a54193332a", + "address": "n4ArdQEN48epw8BvxHSBYLpgZKakPG6Yic", + "decode": "f87dd7fc8b802e9a5c8cc8cd0f211f48d8aa4583", + "params": {"net_ver": "6f"} + }, + { + "public": + "03bd05fbc5fc6a484d3eecf00ee31e19081f59fc18531b0e49303655ebf387453b", + "address": "t1KCueY6PVrrfxEjvEsJ7xMF1mRS27NkxWw", + "decode": "0e9ec15f2f444ef0a433333d575baab969e7aebc", + "params": {"net_ver": "1cb8"} + } +]; diff --git a/example/lib/test/address/p2pkh/p2pkh_test.dart b/example/lib/test/address/p2pkh/p2pkh_test.dart new file mode 100644 index 0000000..2916701 --- /dev/null +++ b/example/lib/test/address/p2pkh/p2pkh_test.dart @@ -0,0 +1,29 @@ +import 'package:blockchain_utils/bip/address/p2pkh_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'comperesed_test_vector.dart' show compresedTestVector; +import 'uncompresed_test_vector.dart' show uncompressedTestVector; + +void p2pkhAddressTest() { + for (final i in compresedTestVector) { + final params = Map.from(i["params"]); + params["pub_key_mode"] = P2PKHPubKeyModes.compressed; + params["net_ver"] = BytesUtils.fromHexString(params["net_ver"]); + final z = P2PKHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = P2PKHAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } + for (final i in uncompressedTestVector) { + final params = Map.from(i["params"]); + params["pub_key_mode"] = P2PKHPubKeyModes.uncompressed; + params["net_ver"] = BytesUtils.fromHexString(params["net_ver"]); + final z = P2PKHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = P2PKHAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/p2pkh/uncompresed_test_vector.dart b/example/lib/test/address/p2pkh/uncompresed_test_vector.dart new file mode 100644 index 0000000..df8937a --- /dev/null +++ b/example/lib/test/address/p2pkh/uncompresed_test_vector.dart @@ -0,0 +1,352 @@ +final List> uncompressedTestVector = [ + { + "public": + "03ec7436a15f325c3885e5760f5845f2180ee76d29df480f6a1ef09d540705dd2f", + "address": "mprm2RLyQysz2QWxArXAY2pUJTAXA5VpBR", + "decode": "66780b40434f0c50e68fc36934c9770019efc301", + "params": {"net_ver": "6f"} + }, + { + "public": + "0279d743c3764353b8e96d7d58c3bad4d9c1114f58798e02f4e1a33738e872848b", + "address": "1EpEabvo1pKbjo96hTbFpUMzK9R9hLQ8ir", + "decode": "978885573ab2855e71bf9113f3ee1ff08b465048", + "params": {"net_ver": "00"} + }, + { + "public": + "022931fa9ea47c1d5a59fd1240b25588b52e51eff3127e9c58942cc30d1697f0a4", + "address": "1CKwBBJLyLChkeH1WeCbrFsf65oZ3R5kWK", + "decode": "7c3e1826df3740614f0bd743aac05b570d25042f", + "params": {"net_ver": "00"} + }, + { + "public": + "027f259faffb135ae7ae30243c924dccd6f5a620de03a831ca424f2bd691f00e79", + "address": "DEcv1vHTzKxxmSuVZpszTiqNNpCxojHDu8", + "decode": "67fbfea8441efbf9ea365c83ee78619cfbd70173", + "params": {"net_ver": "1e"} + }, + { + "public": + "02b00c48b9d50e585a0ca288831f2777ce0418d8e0e0aae231f6d5fb2679b4652c", + "address": "Xxbx7Yrqiri5oqbKoKVoQZ6BP7g96cGz8p", + "decode": "f065ee372f394b550b7e391580655c3fb4b20db1", + "params": {"net_ver": "4c"} + }, + { + "public": + "03d2dd32f7a80810a1fa5ae02151701c9fff138484e7f85ed747bcd8c36e395a8d", + "address": "nVGr9WPCdA5RumWeik1FEEipYEsGZ8nm5t", + "decode": "0bdb1525707c251108ece9e7f7dc05405b46108b", + "params": {"net_ver": "71"} + }, + { + "public": + "02040e47fd1a77f8740704466e22825110466cb224a6dc6593b44b18a3802f537b", + "address": "mgRZCVq3mc25eZbHEp18hGqGG8Los21JaG", + "decode": "09f2c43e47889c950337b46e36ee0096424d3ede", + "params": {"net_ver": "6f"} + }, + { + "public": + "0206aa3cfd9bb92fada7940c0a7920e84209360527e3c50d10e37d37390e6afac0", + "address": "nhZzH5grkboNXEhPt6DCiCkWcPcEnWF3LT", + "decode": "92ba734f92a9d4fe4e6f2dde992e7517375318b2", + "params": {"net_ver": "71"} + }, + { + "public": + "03d1300e5fc7994109d71a020167b41085819bbe7abf8f16f9bc083d38288db5b5", + "address": "n1ET3wPd2UKjc35xMjjcT6ZDkDHRBnZZj5", + "decode": "d84372fb929a062b4fd6713ebcf466c793986c7c", + "params": {"net_ver": "6f"} + }, + { + "public": + "026680f1a5cdfcf8c493b2c60377701513e2203785fe6f080456d3749ecd52f2be", + "address": "tmYgZqFUL4WKj9EaeD988b86v4vc7qaUezv", + "decode": "fbf47f286e794bc6fb34a7763b696bbf59e99f7a", + "params": {"net_ver": "1d25"} + }, + { + "public": + "0284c6ce068943f75c0aaf1af17bd3c8435e7354b67623d5ccd58dde22f3b3b126", + "address": "t1Yt5LztGpEF3tzE1HZxKzfV7p5WHDR6XtC", + "decode": "a4a0b54e10668c5b9d260cd0b26753c9c2c6c697", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "039436a25bef889c82c766b68d9313c60d19bed7100cd010a6b7f685bfdbb98cea", + "address": "tmUSgv8aPyFfVAbP9ZR34aDBhBGmCcgE7Sk", + "decode": "cd74156b35016514903b1533fa5fdab23fe0604a", + "params": {"net_ver": "1d25"} + }, + { + "public": + "02857e47e53b502e5a7dc4d6b1b9b67ca995dfb9cb2608341c65f61e537a0b8dd2", + "address": "D8wyF6ApXaDV62ABucqF3xDQks98JWsCZm", + "decode": "29c5d64fbc9d24d2d08c4f9464a8cf2eca886d75", + "params": {"net_ver": "1e"} + }, + { + "public": + "02a6c0d8a94689460176f9a88b36c4aa96e76a48bc2b52acaf1c6071a13f4098a8", + "address": "yQ2n5BFFGM9jMS7W76DKUWX8T4mtmz1gu8", + "decode": "28b97a9a685ca0c908ac7843e7c9f816937138c4", + "params": {"net_ver": "8c"} + }, + { + "public": + "025a2d40033c3333b40d4d4943358ab89a6c8a9902188bb04eea736e4f42f0cccf", + "address": "LbLGpa71Q5VGeMHvPaBnKzsuXcEyDh9zhJ", + "decode": "b0b3ffea7159919e2a315a2ebb4823ac5b1b79e6", + "params": {"net_ver": "30"} + }, + { + "public": + "03eb9ff49ff60b189362a1d180027e29038dd1553c52ca992bdc4028618f34e2fa", + "address": "t1Sa6a5aaQStMZeuShEaXHFJi3LbB9nh1pr", + "decode": "5f697d3e4572d4ce19dc6bec3e31f02b81223733", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "025b14aa143eecb479c94626ad9aa9088f390e4e5416c759e11200ef9ede7c4a61", + "address": "tmJzSKeQMwk7fyAoV6pB7ENLYGDhSZuswzz", + "decode": "65c3f4234688d5c496aed3c144d2135ee99abe28", + "params": {"net_ver": "1d25"} + }, + { + "public": + "0350b8aaa8b4ea1e89e7ae8cf82540859ec48e5f562c74e6a16d6877fa0a72e4f6", + "address": "mi9bTPArZ6oRmU2drohSMYYGB1HTRbtWu3", + "decode": "1cde3f1adb99861bb6a1a47968aff3f295e7c90e", + "params": {"net_ver": "6f"} + }, + { + "public": + "03af98c71f5ec11de826aa82e9a3f9b45a56e63710429d01c23029d8fa3c7dc26d", + "address": "LUQJV6i3HmX6VFT8zf25PgkYwEboTyN3vY", + "decode": "64ae2c1b7b68110c6a3fb4170c5f259d9f427d81", + "params": {"net_ver": "30"} + }, + { + "public": + "0250bd546df092b026beb36d3290c3b888b9dde636d4e8c8feb4401fcdb55ce8eb", + "address": "LWmoHutX9BmJKCJTr32AQBHqKxibYfMvtc", + "decode": "7eaf34bf0060ab1dfa6923bdfe729342f189dfd9", + "params": {"net_ver": "30"} + }, + { + "public": + "0331ea7939e1a7fcf222d115297f106d06cc2ea150cd1f6eb5096ada65b5803738", + "address": "XiUE9rP8X3EXjoTojpsj7ASthcSyLdiPRx", + "decode": "555e3b2ad8c7508c7e1150bfa941cf7de2b944a8", + "params": {"net_ver": "4c"} + }, + { + "public": + "0278f75b5486f9149ec8198083f4c7af4d32603e9db0d4a0d1fc5e16651c2d03f1", + "address": "yYtS3uXzP1TrB37ufJ9JP1HYZMeFpEyRPx", + "decode": "89de91e03ed8b4b8695f8f25642a8646c0d321d5", + "params": {"net_ver": "8c"} + }, + { + "public": + "037f4a6e00dd23d119909c9cdd0aa162971bafdcb9c1c4c260c686f39b6df82c38", + "address": "LXYG8EWuC5XTzmrFrqdus7XBFNYeo2snrp", + "decode": "8717e85356171f05661ea9dd9c73b516ce03076b", + "params": {"net_ver": "30"} + }, + { + "public": + "03614536bd5bfdbc9aad580662f8b33e1c6f17f041e0f450bc77bb05f29e4e981d", + "address": "LeDp6cipHvbCAtpbFK9j5MeHyePKPfZ515", + "decode": "d06392deefb1918478a55178f5396b3825eb3ac2", + "params": {"net_ver": "30"} + }, + { + "public": + "023e24d032da696bf0dea3fff819758cbf1d2d0da79f656db6ddc29bd29829e608", + "address": "mrCz3wZCsCaE7jZi9gQq4y1teVAt97pHUQ", + "decode": "75435cdaa81f3ee8b68defd88d4ab9498bf3dedf", + "params": {"net_ver": "6f"} + }, + { + "public": + "02bb460cb5b59fe08e69d96841fdea0bee7aeb90d143a56b446d0e855910eb8c72", + "address": "19CcE4BLs3xHUQ6TpgJnT2XT5yUvU7w3aF", + "decode": "59f2fc7c122dfbdc0f0b7faa21355da0ccfb07bc", + "params": {"net_ver": "00"} + }, + { + "public": + "0277afb90c933aaaad6da09d8411205b3646a7d165a61a6f1ac1a5ee93517d02e5", + "address": "t1MuMsbeUzeE9qgWeakj14RSjqGb49ZFuzL", + "decode": "2c35897e9042059e3635316e82a1c2fd0a33af72", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "03175f7c9acb0d383d3cf2e41ae49b1c5a6da91e01ceb2e002551ba5378313e5fa", + "address": "t1PM1SugoiVd1vXsY9wj2o5HkDP2r3hB5fM", + "decode": "3c076d69245525ced91e0e7a5c82e77ae354d02d", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "0282a8b42f38504e36d0c637eb6afbe62c83c93cbde29a904533be7493bdd828e2", + "address": "ns423XcAxf758tMhFMJFFvnypk8rTob6GD", + "decode": "fac0b430e9e9b719098abd80872b4d55ee6c293a", + "params": {"net_ver": "71"} + }, + { + "public": + "0244c974487dc8b7a4e4ef813431d0b08d3c069a0180b68d472e44c4fc461c8c5d", + "address": "1JVqdfzGyViDdwjV9cyYFsd7grc3RvR7f3", + "decode": "bfee61a5d52646a412d76c716556ffb62b04672c", + "params": {"net_ver": "00"} + }, + { + "public": + "020b8e1631b57212e0dbee4d6b02c942d5000250157ca0bc93d423e63de12f2d84", + "address": "tmDsqp3sc3Wty4jakaUyHmNJ7SgZnG4nbVn", + "decode": "2dac0570ff51b3b414f058a7401c5fbbeb136152", + "params": {"net_ver": "1d25"} + }, + { + "public": + "03d97a311c6ba2fc63cba5c41023611f35a65e88057abccc4395f5393a7419f466", + "address": "t1gxpfUyUTxDW856uxFJbNLxHdAijd4EkkE", + "decode": "fd4789f9a0a62fbbe3ae8a7aaf72a620bf118d17", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "02fc52bda300a22cda5b8fafa5553a5340f5fd369284f344e2db9adca9e2b14958", + "address": "182Ehq4tDd7DJq75hdm7LsDV8eyGKQFYhv", + "decode": "4d04bc658b20d994cd5293732748a755f4f8e683", + "params": {"net_ver": "00"} + }, + { + "public": + "0392535f617bf6b842debcc8a310732e0e321bc72402b21a019b0b260546a4a89b", + "address": "muAE8ngKC7DgVTTaQLkacjkCFZBweSZBjr", + "decode": "95a63fa0d5692f4f1592634ef359899cb15b2b85", + "params": {"net_ver": "6f"} + }, + { + "public": + "02253e03924198a9b8fcd94db996dbfe962a318b7fab3935196f696b6d825fabac", + "address": "noC2h2AmmKQ4tErXyx5CGTzg9wnLSyKGmd", + "decode": "d064116ad04dc8573843dda003231336d27a83ba", + "params": {"net_ver": "71"} + }, + { + "public": + "022188cb83e3363e4b07d3d82277c60b79775a93e29f90a015ad67a5f7270c173d", + "address": "t1cyaDNdnZPGCHVdiLkDLfJDjYKWKijZ9d3", + "decode": "d18b63b014b9b88a6ca60a09c02eb6d5871cb504", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "03716b054e70c06ea1d51274e43151eee2c8adbfd8bf49a99903afe0077184611b", + "address": "XhWvBPS5Y5Miz8bRPkPLd1u6r23adsiRLT", + "decode": "4ae85984842cd726f06ecc9879dfc5c3fe84d2fd", + "params": {"net_ver": "4c"} + }, + { + "public": + "03d869731fa67ec63ab578cfc4ba0811b9bd19b3a1b13b5a5f9aed4c5057ef0cab", + "address": "XwP1pxkV3tJsRaWjnGL2gfR3AtYbjcWdoy", + "decode": "e2fb7f5e450f96965de824d0dd08b8f9d9368999", + "params": {"net_ver": "4c"} + }, + { + "public": + "025f0504a4bfdd6bfc83edff839f7f16fd3a908676a912be6d5900086c36df7701", + "address": "njYCrJY4fuKjPrpJiU8BupoA7TgJ3FWtZp", + "decode": "a8545d84e767e45e5afdeebaa6fe5094dea2673f", + "params": {"net_ver": "71"} + }, + { + "public": + "0270d82d6146a84dd09a1f8c840e3d67ddfd131138e45fa1b54afd551b27b579b8", + "address": "mu9HW5kh6sHgbTYWUPpvJ6DHLg2sFutLUe", + "decode": "9578a4b1bda7ccbc8708cc8b8d0862b931df9d85", + "params": {"net_ver": "6f"} + }, + { + "public": + "0302b81b5b699fa1190e127a3f7dc00658f1b2d68dd65cd092b03471748f7d032f", + "address": "DNTXkLkZxpRgeUGdnfpdyByqzJC3k92RQx", + "decode": "bdf6ab21fccb4d44e2f4a168d891b2fb16248b7b", + "params": {"net_ver": "1e"} + }, + { + "public": + "02423d3d566559a3cd96c8c62a513fef543c8b4f901d57294a33e3ffd4c8224ce2", + "address": "tmUnuNEt8h92w4CvCd8CmoqVD4Rx6tXsWqP", + "decode": "d146cbb741acbc19602bb6294078102d926b02a5", + "params": {"net_ver": "1d25"} + }, + { + "public": + "02b7b11fb892c628de434a810b8bf7e804b14ce333e9325414ec604e98f084091b", + "address": "mvho7nHrnRRhassRSKNDHYSu2PmgGJ16KF", + "decode": "a696cd3a567608b0e7245f5faf0ab124de0513b9", + "params": {"net_ver": "6f"} + }, + { + "public": + "033005720649875e74a458e7fdbc8b498d13c5b35cae223f1ab50cbc142972107c", + "address": "18WdmZkYNMMthxMLtSqk6fdgkHYYHirsvA", + "decode": "5263a2d499bb74dede2444f59c621776ed4186a0", + "params": {"net_ver": "00"} + }, + { + "public": + "02c0ca7b04cdfc6941463f02517d40511b983ce594916bd2c5b66822799e015234", + "address": "tmZ2KNeREn2zHENPssxvGiX1ij7hL1VexgY", + "decode": "ffb0bf165b33bdca91fbd35b0dac5e654b05fd71", + "params": {"net_ver": "1d25"} + }, + { + "public": + "038ce8e084f9221f9c6da7af9fa34ac912818226c84e8c160612f4fad4bfad24a3", + "address": "XufAjF9PtnQztnuQMt3o7854Au3qQJ6UBC", + "decode": "d01954f6ad2ae07e5daa42e1e8e9532d51f170ad", + "params": {"net_ver": "4c"} + }, + { + "public": + "02554a34d7b160d0fdb87d1087c9edc7911e1f2b181524b19b0f3ae941e5857845", + "address": "XnK8qDUakaoXKw2rEwk2WTuyJc5e2jUT83", + "decode": "7f868c7074171c3618108b02654ec16466ef1af2", + "params": {"net_ver": "4c"} + }, + { + "public": + "03a75aaa5a13bd41e582fa25f300ffe296fc325d5c6cafe642f2fda73eeaa154bb", + "address": "mfYTNfiHujaJFymx1tUPGx7z3yf6WbWBqW", + "decode": "0048b0baf2dc0e140de04e0e9e53716c9d9917b1", + "params": {"net_ver": "6f"} + }, + { + "public": + "02abf1cda0b4f04f3081d37a77ec3f13d5a9620880b5c9f5020fccf5190f1beac8", + "address": "mj5FJS8qgzXz8taiM7Hg521wE7ufPFQVLZ", + "decode": "2703e26da1dc200813e4ace9ca89d6a44de38ce1", + "params": {"net_ver": "6f"} + }, + { + "public": + "0376268da362d6ecc8a0d364aa2363b5cc4ebcec284497f82fce7b01bcfeb335e2", + "address": "mpZ3nfJ1BP6AbbRDZkv3k4aFk4mxZ1dmD8", + "decode": "631e8cab68931729dce1bb31f04936ad4920a160", + "params": {"net_ver": "6f"} + } +]; diff --git a/example/lib/test/address/p2sh/p2sh_test.dart b/example/lib/test/address/p2sh/p2sh_test.dart new file mode 100644 index 0000000..e8cbb2d --- /dev/null +++ b/example/lib/test/address/p2sh/p2sh_test.dart @@ -0,0 +1,17 @@ +import 'package:blockchain_utils/bip/address/p2sh_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void p2shAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + params["net_ver"] = BytesUtils.fromHexString(params["net_ver"]); + final z = P2SHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = P2SHAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/p2sh/test_vector.dart b/example/lib/test/address/p2sh/test_vector.dart new file mode 100644 index 0000000..61a3eda --- /dev/null +++ b/example/lib/test/address/p2sh/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "02ccdc1d593a12fc65e91cc302ab1ac57838bc3c4262ab6b720d3b45da6cf3cf62", + "address": "37xLrhtoYnTJ3womrCBAvjaD8mMCh6vhUf", + "decode": "44b6cc9e90c2c92039d1e4be34f62f21e6a5637e", + "params": {"net_ver": "05"} + }, + { + "public": + "03e779f46adeb1008619fb3e5c0b9ff9a30f89205fb915a09a9790503f6a0b7003", + "address": "3EnqecARRLK1e2DRfWYpauSRRXgn9jUacm", + "decode": "8fb38dd3d20714f4f7c61add905bb860546924c4", + "params": {"net_ver": "05"} + }, + { + "public": + "03e76f0e474e34ac1a2c93fd7e665eb95c58b6c3e4847014e8c76cfd2c91b19685", + "address": "t3UTk6K3icSd7Bwaxe6zt6ioCrYbYB8TJZj", + "decode": "6c94bdbb85c467959cf573bb377698089ec01b6b", + "params": {"net_ver": "1cbd"} + }, + { + "public": + "026383cf3d5374c64e7c2f715207b71cab4947afa29880cf6b7382b6f76529dc50", + "address": "MN9Lj8PUwww1VXCa1H5kDzwHgS3cCe37BX", + "decode": "9c4058553359f83d190ee0dd7d49b00885e1070d", + "params": {"net_ver": "32"} + }, + { + "public": + "03df4ad622016ca624a1cc91b75107a1f0cf6fe8a9c744d5b44d25d4e7a65585c9", + "address": "QNQPGRSHMXGoQ5kQGRoJB89mpfpabBbjzV", + "decode": "13be973c54455b5cd9338df0ce0c9df2dbfbfb7d", + "params": {"net_ver": "3a"} + }, + { + "public": + "02dac8e0b9ecee9f35b3305d8bae9ea53447018d2bc43b82144ddb7cffe651619d", + "address": "QRcSebQxEbeahEYSZcfWNsRdoVwYbjWwTU", + "decode": "36eec8753fb8319258c2acef62a2e304ec6bb6ed", + "params": {"net_ver": "3a"} + }, + { + "public": + "028f49c2881d12c5493e9215b234f34b860db152b2f466eb33919d780878733550", + "address": "QXYDzzDotW1o7u5VBvc3xd9JePS9vM34Xx", + "decode": "77f350c7c5f672c8336bb57269ab5b0b2f2aa3a0", + "params": {"net_ver": "3a"} + }, + { + "public": + "02f5248e217c6e8b455ccd4a33fb069c0af3058fa4765337e24e58b66049eee73d", + "address": "2NCefBbdbkb9sxfEHW3UbU3VQPVwWBa25YB", + "decode": "d4d8fd21c6d1e4ed13efb47a1a8180f633a570bb", + "params": {"net_ver": "c4"} + }, + { + "public": + "03c4da1c1744b4da7bb386887c427cf605cd4e70e041b809b0b326a60b7384dce2", + "address": "MErgWxwmUKjTg5UxZmK4ZzV4sa1qVpoGty", + "decode": "4c50e9cf6084fcdc8f26749919abb99c9bf10c7b", + "params": {"net_ver": "32"} + }, + { + "public": + "0393207cf9edc03b54cf776b0545565032bfd9172481f925208f1e8115003a7064", + "address": "3C1pJkSRoZxGyAfpRCSmgXRkYcGtZfiB7c", + "decode": "713f76af5e35a48e94a78554797bbad8cafc4d30", + "params": {"net_ver": "05"} + }, + { + "public": + "02bdd089b15c922b1bfff4fe754ac9417112fd81ac29548cabc98eba4f318007cd", + "address": "3QK5TVrLPmYQg8F784jMmb8JR4zDsCe1Fu", + "decode": "f824b10ffb2cd0076a362089f5ccbd7668a149cd", + "params": {"net_ver": "05"} + }, + { + "public": + "029e02d5ce1869a2699caf3d94ea47d7d9f9846beffe427fe69807f7bc671c8d07", + "address": "36MNKtrnPWCMcz476g119cKJkTzjZ6UkMJ", + "decode": "332157469d67e16e04db76de842cfb663405c5ab", + "params": {"net_ver": "05"} + }, + { + "public": + "0368769bb4514a267df4459c1bf30f9daf0e4590687155fb548cb80a5378ff84a5", + "address": "39kdVX8nWqrwCHpcbkEs98avS2BZonwFCP", + "decode": "586ff1feef1606118026e99872927bb330c745a1", + "params": {"net_ver": "05"} + }, + { + "public": + "03f60d87ce5906e9e1093dafb99d6ce17cc039aa8c93f4c5f2082f3c848611f798", + "address": "MWSqSixMJT1vqCjNHX4QbA3ub1aAZ72ZS4", + "decode": "f7506501cc519a7cc70ca9da9a9e00634afe48c4", + "params": {"net_ver": "32"} + }, + { + "public": + "029b9ce546e1f9fe4d1d1559e54573f27f47d21bf408ca4bbc1d450e5502109bd7", + "address": "QdJPLdz3QgWReZzPhTjACQXF9T2xn1Xsae", + "decode": "b7260adce992e56117149dd52d844b770419278b", + "params": {"net_ver": "3a"} + }, + { + "public": + "0207775b7e89d67010819e226998846743ae2f8323a125e39a071bdcdd3c406718", + "address": "3FhF7ByvxYrjGCCu9G83ctUebawHasEJv1", + "decode": "999cc41c138fc36b44bfbde2f58aeaca5cbb67a4", + "params": {"net_ver": "05"} + }, + { + "public": + "030be94d2a66669051f19c16893b6b16a6e682f685f68bd1b4cf2b41b7033eaf1a", + "address": "3EhcMSqu5XhdcfKvd31y3o3CUvufqA1cKy", + "decode": "8eb660181cf3801d6976f0f7e57e0558339761ea", + "params": {"net_ver": "05"} + }, + { + "public": + "03f6dbcd73570cf2129ca02e53b476eae096b730970528acf992c50b48e3ee0d6b", + "address": "MPatqPy9rdRwpUzzMScy1dBxYMziQ1Dcck", + "decode": "ac0dac1f61a2bf7a06aa66395506d44a3e6360b5", + "params": {"net_ver": "32"} + }, + { + "public": + "02c801e9bee8213d477f192b00a157bd5ee4499b6fa61585e3337971c3d047b770", + "address": "91s6PeYcBLnuVsXAUo7wUqwm3TYr4ocmra", + "decode": "eb33a95820f2b5857176632f765e4893784073a9", + "params": {"net_ver": "13"} + }, + { + "public": + "032d8f5f66bb0b6e52706c1b9c0cf3b64e89f281ceaf0de86bf5e0898abaad189c", + "address": "t2JD1GDRk468LuYK9PMeWo8X4mAzpPCVVVi", + "decode": "7fe29cc0d695b5791facb652a5409ddee7a30101", + "params": {"net_ver": "1cba"} + }, + { + "public": + "028da77e770ac70f3526445780b8e9d24bf24b894c88a2cf2dc2cc09e18abd4834", + "address": "t3S8MBpCHMbgfVQYD9hXANLn5cd9Cyf4aTn", + "decode": "52f9774fe207bcfda14342028e743a35c3b5cb4b", + "params": {"net_ver": "1cbd"} + }, + { + "public": + "02bc9e06022e6cf32c964c072ec0a088329323a9568ce289690af83e438d7249be", + "address": "2NEt3yDjuz63csWzZiMRePYRjaEaJxHEAiu", + "decode": "ed51ab4e0fb976f5f780f01516b5fc7648c7b136", + "params": {"net_ver": "c4"} + }, + { + "public": + "02e057611dddd6330a67753c132215081f39ff09de3ce93da038b694ff4447df81", + "address": "2Mw6CMmyUK5G8SisWkdodLPAyryPE851QSp", + "decode": "2a2b6637bcfe1f266790921a3eee004ca07368d7", + "params": {"net_ver": "c4"} + }, + { + "public": + "02f0f8f1b5b40bd5448c2cb01c3c9ae2f12219e80bcf998fda47a2b9730a104402", + "address": "MNrhQGCmqc7ZpNNboUiUPTDANhAci51Xu2", + "decode": "a412a86b22c4ac689705306d39db4bd11cdc97be", + "params": {"net_ver": "32"} + }, + { + "public": + "027cc7876a8c36861a1fbe53e4a404df2bb4e0d6efd78bb99534344c79fe44964e", + "address": "2MwWApRp452PzkvVeo8MSeNYop39HYnTbKE", + "decode": "2eb418b0b058ddbfbc154c7a85b0e00a11e960d6", + "params": {"net_ver": "c4"} + }, + { + "public": + "0340f5bdf883464ce5da3fe4eea5cff6600078144d3510950db13210bf87451a5b", + "address": "t3aPztbwSP7Vp1tW8yEV8SbcWK7Z3bNzzt1", + "decode": "adb02f525e6a3395d1dfeef38b11d65908992ceb", + "params": {"net_ver": "1cbd"} + }, + { + "public": + "03faffbcaf9668a9bf09444f0feca91c0c464fe482d30517021ff101f8e218fad2", + "address": "QZCmVGVLmWKvCPBVQn6SxMVcXMLVtVFX6T", + "decode": "8a35884b620d3c369d30fbd715369839e0cf979e", + "params": {"net_ver": "3a"} + }, + { + "public": + "024483ab3a0ac71f028cc9371b2228eb48c747e2913121b9366d0a441d0e7d74b4", + "address": "35MkZoJviDLn2XrvwJ3BXkfnajCnXArsa7", + "decode": "283bc7a96be63696f4ce387f79b4d9d523f1e3d6", + "params": {"net_ver": "05"} + }, + { + "public": + "025f6ed0892340caa82757d07bbad629809ddc9876985170bbdc378c937ad9c185", + "address": "QQ43vgZisvvkw1S2u2Q4GG5BZS7gJYcoJv", + "decode": "25d660ec026fabd8b0d7c64759894b364c911c56", + "params": {"net_ver": "3a"} + }, + { + "public": + "02ef00917950ead56f390d3663713eace9d09217f36f53f273571fa46ac5128d29", + "address": "2NDUmLNB8vowiC6crUCEJoG1XpvUEPv9gae", + "decode": "ddf216f6c0145d8a743b73cb4d81a3fc6b086210", + "params": {"net_ver": "c4"} + }, + { + "public": + "03410593aa02b4e9a40877ffd607840d9f2ead053eff167a690ae3fe8bfe246a0e", + "address": "t2UduyygNCPYd3JDdDVUnGEL1gpXXz9zgVH", + "decode": "f249dc99b99e157e81c82806be2b7a266ae30caf", + "params": {"net_ver": "1cba"} + }, + { + "public": + "02de42c4ba4d83681671b9a87fd5c0ed98f049436c9328f4da90bee38d526c14aa", + "address": "8n2XBXc84Q9njiM5YMCbpiSd15xYWaxpjE", + "decode": "536a56b538f30bee757bdfd7e7444e498b932252", + "params": {"net_ver": "13"} + }, + { + "public": + "02d0006a2cd68eeb612d5c233cb549b45b61226a8a9f3ae4c332949514bca17a6e", + "address": "8miJhmeVvpRDbMCX8Fdmr459UkYpzSdPih", + "decode": "4ff86f4e90f5cd15e5fe5ac03babf9565112bb1e", + "params": {"net_ver": "13"} + }, + { + "public": + "039c724d440527a2ad24569fd834bb5f48e67a7753d787fb06d445aa754dde135f", + "address": "33T53jizvmj6oLPDLqfRjGPb6EBLyuyvSn", + "decode": "134d0931708623ee771c90ab433e81b0fcf05c18", + "params": {"net_ver": "05"} + }, + { + "public": + "030131cf76cbf890f56f8f8423daddda3cebab612388e05f752a9c6f8be04edc07", + "address": "34DhswesCBSVGtUHjUsrKwA6J7tp2LWYPi", + "decode": "1bbe1553d186b041e8ab05955ab048c601e4eba4", + "params": {"net_ver": "05"} + }, + { + "public": + "0326bfc6fe2449e0b2a249f8e99dafbb1b76ff59166606c69905543c204dca9a38", + "address": "2NFwAi4vUF1PWcF2uvjDytHWDQTikvDubch", + "decode": "f8e0ab060a99355a8f9733fd52b374389c45b451", + "params": {"net_ver": "c4"} + }, + { + "public": + "039f979dd74d53528168aeca46bd880c922786569bbbca90fc92df2ebf1f0f2d7a", + "address": "t26u34rZtbkASdKmfQGkNgUAcXbMvoR43fT", + "decode": "03d33f5615b2f962e7bb5e03e0dc3c4d71266101", + "params": {"net_ver": "1cba"} + }, + { + "public": + "02f4b6728ce1ed36cb0d3a3aa4c39345ee70008d110be1ed699ec6b8a248776ad7", + "address": "8ynAXX6wPYbUPmJ1BanGQqu7838xGvH33Z", + "decode": "d454c84e8c0406c7fdea5af96e75cfa8f1bac1b3", + "params": {"net_ver": "13"} + }, + { + "public": + "02c7b0861189ff8895dc261e168abcd0c120aa257b19ad1e3e63004f119b88b6d9", + "address": "2MxtBeMX5WNhyDCJLW6poiB2sw94L8abvhA", + "decode": "3dd6102b22472194da84c3746cd8fa6d5255f20d", + "params": {"net_ver": "c4"} + }, + { + "public": + "03a9a97494cfc1982257473f67ec9cb6af395bc99d6aaffbf4261f721241e1d0b9", + "address": "8h79GoXND143B7WTfWX4zeoJi1eoPgnBT2", + "decode": "1d7180365c824c6e1857f1ee9a247d034c722a4e", + "params": {"net_ver": "13"} + }, + { + "public": + "0387e1a2f2c70b5b134e51c077508c41bafda3139749a784ee0d5facc6c0ea7f57", + "address": "t2RPQoTtTqLGjZhJ27kvMNA1ZGHqikhV4tP", + "decode": "cea34d361e11a2a77676990261b6477bf62e1899", + "params": {"net_ver": "1cba"} + }, + { + "public": + "02df92646a7849009059a926b48194db72802ee4569fe94d5d9e4f3743da332a97", + "address": "t2MZPe9g4hVeXcqep5LBuuZkSpdBr9Yxvst", + "decode": "a4a5fd41815e50bc4cbedc7f44aa3f8c899ea16b", + "params": {"net_ver": "1cba"} + }, + { + "public": + "03057bb586c5d12cf2e574a2f85257cbb950fe847b962668395c7f3807e41dfb0e", + "address": "2NBnTQbKMJd35BGi91qDghEF3kRbQH9v33L", + "decode": "cb5a5c528a958fe1157ddcf43bdc3e7a3af76143", + "params": {"net_ver": "c4"} + }, + { + "public": + "02ea78437b2c1cfc720a1e4be7f5ca4c958db2534e1cd41d95471629dd71719803", + "address": "2N2ueyEYzSDSEDAWJKtJYxoGZdyUj3wSgFf", + "decode": "69fdcaddc48bd00f613e423287ff3407a1416f08", + "params": {"net_ver": "c4"} + }, + { + "public": + "032adaf28fabdd082999e10ca543b0aacc5123668773016cff70b3990b70b42549", + "address": "2MsFNgs71nTRTxk9XeNZCji4JnqA8LY3wdh", + "decode": "0007431a161db479d3d1c1a46df43a1bd808e4ac", + "params": {"net_ver": "c4"} + }, + { + "public": + "03bac7936f1bfa326864082144f772f02b415c6a655ec16a1a47757cd55e73711f", + "address": "t3d2Ja6AcUq7vrM9AUq6mdfRoPSS5a7PDBr", + "decode": "ca7e2b9486f5f6b4d5561ff3fb0bef8eafad719e", + "params": {"net_ver": "1cbd"} + }, + { + "public": + "03185ba9437480273a8956018ecd2a19954bd28e1e768478204549b061493ae6e4", + "address": "8ykmyk7XYXycP1N3DvZMyyW9GYZfydemNL", + "decode": "d4118b634b57ddb1a01f89e30fde1e3eb56488d4", + "params": {"net_ver": "13"} + }, + { + "public": + "03535c75518b60524cd18e326ea0a82a656b23d5ad239f3730f23c654a9a067a3f", + "address": "39KmMmVzHKLWAyARaYpF22oi67k2Ff37Tt", + "decode": "53bc1cdc967b41f93b962b0a6d7ea2c9e7d66e38", + "params": {"net_ver": "05"} + }, + { + "public": + "03ff8a80b959a857db35649244e6e956e86aa3d1728976c6ca2ed6192bfb709178", + "address": "38dNiP2ae1kWCzhy7La3RheASibEb9mD3b", + "decode": "4c18924dce4bb10e4cd46581c2d81e7df905f3da", + "params": {"net_ver": "05"} + }, + { + "public": + "0294d4157a6d75cc5b43639765ec8fdc78f30c5b0e811d7dd28d181b168389636f", + "address": "t2Nk4VzrfYBjxw95oTqLoCptTAxqkpznCDq", + "decode": "b1a2b681a98e62bd081315bd6600e7b3ce30f8c2", + "params": {"net_ver": "1cba"} + } +]; diff --git a/example/lib/test/address/p2tr/p2tr_test.dart b/example/lib/test/address/p2tr/p2tr_test.dart new file mode 100644 index 0000000..7299943 --- /dev/null +++ b/example/lib/test/address/p2tr/p2tr_test.dart @@ -0,0 +1,17 @@ +import 'package:blockchain_utils/bip/address/p2tr_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void p2trAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = P2TRAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = P2TRAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/p2tr/test_vector.dart b/example/lib/test/address/p2tr/test_vector.dart new file mode 100644 index 0000000..64f5a53 --- /dev/null +++ b/example/lib/test/address/p2tr/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "0335fbc4a5f614084b632eb3cdfff8aadfc84b1cd3421fe5cbbddcf92aea6b5a0e", + "address": "tb1pnn5zg97ugxlwejly6u67x0cctfgvvzvpa3nn9yzq9udqw78avl7s48vrqh", + "decode": + "9ce82417dc41beeccbe4d735e33f185a50c60981ec673290402f1a0778fd67fd", + "params": {"hrp": "tb"} + }, + { + "public": + "028d0609564086d0e2366b26984a655543fdfd2d25ec89c26e928023f3840a52af", + "address": "bc1ph4lmxwklchcvvh2wchzassw86yvahdt902mpe0velxzuz2c70sps70mzj4", + "decode": + "bd7fb33adfc5f0c65d4ec5c5d841c7d119dbb5657ab61cbd99f985c12b1e7c03", + "params": {"hrp": "bc"} + }, + { + "public": + "022287351728e9b36f06d6a404e85d0845dfc26fd12a5ff5d955bc3cad2bc0e99d", + "address": "bc1p72fn7dd7u9gey7y2lc7dar59a9ejprzjmdfz0szamcp269ajtu6segrcgj", + "decode": + "f2933f35bee15192788afe3cde8e85e973208c52db5227c05dde02ad17b25f35", + "params": {"hrp": "bc"} + }, + { + "public": + "039de79538f3a7a4fb6987c540a752d0e51fe97f4fce89f0fb5b3b8e6fc09ce7f7", + "address": "bc1p92kklw7ddg5v4a6az4a0dpddj6lnh5qct4ewm8a7agu3ysn59rzqzd0uny", + "decode": + "2aad6fbbcd6a28caf75d157af685ad96bf3bd0185d72ed9fbeea3912427428c4", + "params": {"hrp": "bc"} + }, + { + "public": + "026fc73ba29751d60a0568871b35a3bfd88ce780b3caf76c1ed2476a08076e9e17", + "address": "tb1px3dw3ac8242a0f5xh0z5aj7duf7ldgqsm8elprsx4tqkzcv00pjs3x5rxw", + "decode": + "345ae8f7075555d7a686bbc54ecbcde27df6a010d9f3f08e06aac161618f7865", + "params": {"hrp": "tb"} + }, + { + "public": + "02c0903a58a2c38c4f4150faefcca341bdb82e7ff1fec47955c8723e7aa017ba64", + "address": "tb1pzmlg38npwl9l8g4jvsmdhz0ktd5g9j8udp7dcg9fqqamdh57g6cq4nafdx", + "decode": + "16fe889e6177cbf3a2b26436db89f65b6882c8fc687cdc20a9003bb6de9e46b0", + "params": {"hrp": "tb"} + }, + { + "public": + "02aa3f42b3504caab6c5d1b26278972214e90b1eeccdd0ed5d6e2b7ef50aa3ccf7", + "address": "tb1ps5fthu46utt2lzjrdp4sxa395fmt275f3jdr3lfy340ehgu23prsn6jftc", + "decode": + "8512bbf2bae2d6af8a43686b037625a276b57a898c9a38fd248d5f9ba38a8847", + "params": {"hrp": "tb"} + }, + { + "public": + "029cd54874be43a0d4e3efa58b6a86a14099aee00a9ec69f4299a4a249e788ff66", + "address": "tb1pkzq87z39lh079cgrdkycs9nzmxlrkjd6u84dkadz0mlvdcsrx4ds873wpa", + "decode": + "b0807f0a25fddfe2e1036d89881662d9be3b49bae1eadb75a27efec6e203355b", + "params": {"hrp": "tb"} + }, + { + "public": + "03ed2800b32bfd2a988517ee4a2f2342388262dca513c2515293f831306653bd50", + "address": "bc1pjt9f3fc2mvzktty5450xfn70xlne2wspf0rngxljd75fywffsygsnavcyg", + "decode": + "92ca98a70adb0565ac94ad1e64cfcf37e7953a014bc7341bf26fa89239298111", + "params": {"hrp": "bc"} + }, + { + "public": + "03f68d2c6d4b3fbe2017b59ff59b143ccdf0969a95371d17c8a10b5604752e430e", + "address": "bc1ppakvqszxfusvly2rav7jw7x3pm9u6r3ghsr8dgk8tag5qe6g8mssy8zwkt", + "decode": + "0f6cc040464f20cf9143eb3d2778d10ecbcd0e28bc0676a2c75f514067483ee1", + "params": {"hrp": "bc"} + }, + { + "public": + "03a4fc578f89d80d1b767a169e6fdc06aa66c9e602470faf791088dbfcc81d2446", + "address": "tb1psetachce3vm36nv38etzyutt5677n2dfg7zqn5xtx2sa3l8a8hmsyrwad9", + "decode": + "8657dc5f198b371d4d913e5622716ba6bde9a9a9478409d0cb32a1d8fcfd3df7", + "params": {"hrp": "tb"} + }, + { + "public": + "0277aba064f4075b05d71b0a7bd85b88b6b3561bf0c6b2c1c2d2a41d435bf4a4d3", + "address": "bc1p9ksmx0dezdxamm6gx3je9frnumv96zhfatgvuv7rudnxkrrpeztsv3ata2", + "decode": + "2da1b33db9134dddef48346592a473e6d85d0ae9ead0ce33c3e3666b0c61c897", + "params": {"hrp": "bc"} + }, + { + "public": + "020973d357e8a93d06ac8eb1d140bd1898f5b49651845710be12f1544b08912d10", + "address": "bc1pk3lm4fxd8nx46mv0fcv95zwwp8qsd5dlz46u0kgqfndv6u5mmhhqclt8x2", + "decode": + "b47fbaa4cd3ccd5d6d8f4e185a09ce09c106d1bf1575c7d9004cdacd729bddee", + "params": {"hrp": "bc"} + }, + { + "public": + "03279ad9c382483f91879eabfab7e6949dd0447fa2c7cdd611a5f955e44b96e83a", + "address": "bc1pcqrl7jmx6nspvj9ej2y78220u2ywa5hfgvhmg0280vspf0zy5z4shvxuml", + "decode": + "c007ff4b66d4e01648b99289e3a94fe288eed2e9432fb43d477b2014bc44a0ab", + "params": {"hrp": "bc"} + }, + { + "public": + "03a6f9826c66156ffc2bd8bda7f9d36754d2690a4ce6150feb8d0605d5aea75d99", + "address": "tb1ppmra0kmluady5weq46rms53s400825tvlml9uxdsecg787f7jf4shpsjrn", + "decode": + "0ec7d7db7fe75a4a3b20ae87b85230abde75516cfefe5e19b0ce11e3f93e926b", + "params": {"hrp": "tb"} + }, + { + "public": + "02f44902803377a8b573a167fee62d10c7100e67547d376504ad305a9ff07c1f0b", + "address": "tb1pye2cytztjm7qzx8tc8ztlxgl3zxt7z6a3xvaj43xhqpl4lcnr05qsgjht7", + "decode": + "2655822c4b96fc0118ebc1c4bf991f888cbf0b5d8999d95626b803faff131be8", + "params": {"hrp": "tb"} + }, + { + "public": + "03819a5e9e539e55ad47ebc76c0533d3829abd7e7b635163cb1647036a8a2d1620", + "address": "bc1pdlpq0xqnm9ynnksatx64hsdj7y0hemt7504pqw6vaa6rny2n0gmse5zx8g", + "decode": + "6fc2079813d94939da1d59b55bc1b2f11f7ced7ea3ea103b4cef743991537a37", + "params": {"hrp": "bc"} + }, + { + "public": + "02ddbe628fb71820b718ff133c979260d61c82c42deb29b30b2f716f80abf3b677", + "address": "bc1pscqnau0mznpkvwtx52zecsm9ztaa8m4u07lxm3tk4nnnjuund4xqpnq34h", + "decode": + "86013ef1fb14c3663966a2859c436512fbd3eebc7fbe6dc576ace73973936d4c", + "params": {"hrp": "bc"} + }, + { + "public": + "03d05eb23083b9283848cd973000a36dd523e80def6a238fb4dafc9502830bda41", + "address": "bc1p4yuht6arl4rdgwmdazy3tgzw5uqya7ku8wvfdsrfjm260t5cfwqqz04lwf", + "decode": + "a93975eba3fd46d43b6de88915a04ea7004efadc3b9896c06996d5a7ae984b80", + "params": {"hrp": "bc"} + }, + { + "public": + "024bc99ff716eff749801bf1321a8875cb51ea8416de4d6d9e58f1d43ca63d6ab7", + "address": "tb1pmex4mm4gee5rhx4xzjxvqryayczteulyjj4cwp4lnpkkmnmyphmqw52hcw", + "decode": + "de4d5deea8ce683b9aa6148cc00c9d2604bcf3e494ab8706bf986d6dcf640df6", + "params": {"hrp": "tb"} + }, + { + "public": + "0363f43c45241e78c9a174204929c75610354e27d468c73d83660246d4554d22b4", + "address": "bc1p5z7wyrg9pvnyw5lqjptpa8vu6pkh98r2aukhahnfqcaasx4ql0xqvs44n8", + "decode": + "a0bce20d050b264753e090561e9d9cd06d729c6aef2d7ede69063bd81aa0fbcc", + "params": {"hrp": "bc"} + }, + { + "public": + "0393b9f90c6fc7dbd91d1a6fe2b22df698e77fa5ccee4071b73e94690838352ef6", + "address": "bc1p9lcpkledwra8aqnf4ltjck9qmu2k3053lgzxcjt4gk7t7xnmszcs34j0z7", + "decode": + "2ff01b7f2d70fa7e8269afd72c58a0df1568be91fa046c497545bcbf1a7b80b1", + "params": {"hrp": "bc"} + }, + { + "public": + "032f74d1b20a024f29c4a7d478ffc22232c7fb714d1244d2da4d7739cf82b00094", + "address": "tb1p8jfdkqy09zudh2lkte9d6uwdtgej9535h337rg9yfu5zy0tmq42q7axyv3", + "decode": + "3c92db008f28b8dbabf65e4add71cd5a3322d234bc63e1a0a44f28223d7b0554", + "params": {"hrp": "tb"} + }, + { + "public": + "032307fa49aa0755685aee527f538b5ca83f9b83f9cf6e3db86948efd5192b4b8f", + "address": "bc1p0z8j28nwk0kp9yc5ckf9h409r6x3dtqmh45q78hq57hx5s0jcufssvnhvw", + "decode": + "788f251e6eb3ec129314c5925bd5e51e8d16ac1bbd680f1ee0a7ae6a41f2c713", + "params": {"hrp": "bc"} + }, + { + "public": + "03702a65456ccbfe22e9a308087a230ba122baf0be147726caa90c135d5d94d0f3", + "address": "tb1p8f83j74m7l22gl4xhaj59at2zc8hr0gw4257zpn0nfxs7av4kcgqs9t9tr", + "decode": + "3a4f197abbf7d4a47ea6bf6542f56a160f71bd0eaaa9e1066f9a4d0f7595b610", + "params": {"hrp": "tb"} + }, + { + "public": + "029a2ffbdb50be2d518b03abe3ef4c15e5647295616beb6bcba5d6a6c3d16d9a76", + "address": "tb1ppqpsxn5rjy7vu48d8hltvavt0e4qdpl8s9y4g32hqragyhwf3a6q5w5sy5", + "decode": + "0803034e83913cce54ed3dfeb6758b7e6a0687e7814954455700fa825dc98f74", + "params": {"hrp": "tb"} + }, + { + "public": + "037ecdbf3439737cbd17d00248eff60f83c1e60ca956546086f8deb5a258ce3a7a", + "address": "bc1pva50d72cgdx79u5ff36mpxfmk7drrmnm33nlk8elyktyr6n67cask8f9kf", + "decode": + "6768f6f958434de2f2894c75b0993bb79a31ee7b8c67fb1f3f259641ea7af63b", + "params": {"hrp": "bc"} + }, + { + "public": + "038e44c08de04290314775b418092ffce292c68a6d81055f8cf9d7e40a4cac514f", + "address": "bc1pzj62q9wvqq275adjfsyhfd973pku28dujzkuj42hfwkt5e9302aqca5me7", + "decode": + "14b4a015cc0015ea75b24c0974b4be886dc51dbc90adc955574bacba64b17aba", + "params": {"hrp": "bc"} + }, + { + "public": + "03e04969ff20660d081433f241a93001c953f4626b7e93665c10362a78c5d8a53f", + "address": "tb1p3f0tc232m3emsy2funddpezw799rjp5v7dpz904t9gv96g3hhseqmzmum6", + "decode": + "8a5ebc2a2adc73b81149e4dad0e44ef14a39068cf34222beab2a185d2237bc32", + "params": {"hrp": "tb"} + }, + { + "public": + "03b2a721215d5efa90a5624fa61fb6e01d61950e91b56b93079fcf5f59259ab61e", + "address": "bc1p3ce3uz68tde3xsqx48lhnvs3q3mcacqafhcs9wtj6k9hyus2v3xscws49c", + "decode": + "8e331e0b475b73134006a9ff79b21104778ee01d4df102b972d58b72720a644d", + "params": {"hrp": "bc"} + }, + { + "public": + "03b3b87a3d8b5871850d2b793b5a922d4e8e1c79f175ee55c28cc3782472bc9cee", + "address": "tb1pxyxeh5r2ldhny7sw5zszeywwuu2vtarvxh64lajy7cu2vaef5u8qc2l5af", + "decode": + "310d9bd06afb6f327a0ea0a02c91cee714c5f46c35f55ff644f638a67729a70e", + "params": {"hrp": "tb"} + }, + { + "public": + "02fdca089e548fe9308ed0d532fd7c64976780e3636a4ab0de0dd77a3b9a7eabf8", + "address": "tb1pl75cv3eyqhgj6v3fqjgntpnle7mjcfsthh4n65k7tr7smlx5esasq7356y", + "decode": + "ffa986472405d12d3229049135867fcfb72c260bbdeb3d52de58fd0dfcd4cc3b", + "params": {"hrp": "tb"} + }, + { + "public": + "02b671540e1f9fc30b8350be25f08a9cbcf680d5c3f2ecab9a2131e72ab2786d1a", + "address": "bc1ph7vc0gm04u2nppw5cxq48ccg8xtsvlt4rcecjzdda54q8ulryfpqtrd3m8", + "decode": + "bf9987a36faf153085d4c18153e3083997067d751e338909aded2a03f3e32242", + "params": {"hrp": "bc"} + }, + { + "public": + "036e48195680b36ee85b79f4d7599afb23f754278f5f899fdbf412ebaeae4d436b", + "address": "tb1puvm4vsxrm6cqu00rcryfsgl5749jtpez09yhqt2u8af8n7w5zgxs02fx9h", + "decode": + "e3375640c3deb00e3de3c0c89823f4f54b2587227949702d5c3f5279f9d4120d", + "params": {"hrp": "tb"} + }, + { + "public": + "03a1f9cd67c76390cb44a47125c82f781f68be17b4c4b534b9cd5993ac66a97abd", + "address": "bc1phd6p0h22u9eprpdauzl0ll043209y80eczukr56yzyf67psr0hys4efe48", + "decode": + "bb7417dd4ae1721185bde0befffdf58a9e521df9c0b961d3441113af06037dc9", + "params": {"hrp": "bc"} + }, + { + "public": + "03994336f9c8c1e12cb957a46c59af8dfe5041d5bff73c47f2f59859907af79dae", + "address": "tb1p9gs6l6agjdmsrfj6vqwl8uay6mf2790yvzku3dja86cuplryuldqkhmfda", + "decode": + "2a21afeba8937701a65a601df3f3a4d6d2af15e460adc8b65d3eb1c0fc64e7da", + "params": {"hrp": "tb"} + }, + { + "public": + "0273ef562f0fc4f2b6226bec2670191059c67068cbdfb228b93bfda2f28a531e8e", + "address": "tb1pxxrkqz73yuz6esjngg2sqgmun4aj4cq8l7lr04vnepgh3xdjw33scumlph", + "decode": + "3187600bd12705acc253421500237c9d7b2ae007ffbe37d593c8517899b27463", + "params": {"hrp": "tb"} + }, + { + "public": + "02ef3169c65252e65cfe6ce4c66c03399784a6d5f4bf96d174c26174d1ac75afba", + "address": "tb1pukdmvylpwlhn3zhc0dl2wmp5uhrq0spq8cp4taf0chdjpfflyrzs2z57ac", + "decode": + "e59bb613e177ef388af87b7ea76c34e5c607c0203e0355f52fc5db20a53f20c5", + "params": {"hrp": "tb"} + }, + { + "public": + "02ee389b2b23290d22d87351629a7e4b89c205072646b246d391421bf586a193e5", + "address": "bc1pzue0z4j0xga4963swwduwfa3qwhmx4ugn5944t9yq4pnclz9xa7sdxr9vl", + "decode": + "1732f1564f323b52ea30739bc727b103afb357889d0b5aaca405433c7c45377d", + "params": {"hrp": "bc"} + }, + { + "public": + "024fcf8ba24267f76e0ce122fc67aac70e51f776a96974e0847a31f80d19eeaa5d", + "address": "tb1pdn0jt950yy75rzle5uszgm99yf3d4mzf0q62kpn7rvl0th322eqqwx6w0r", + "decode": + "6cdf25968f213d418bf9a720246ca52262daec497834ab067e1b3ef5de2a5640", + "params": {"hrp": "tb"} + }, + { + "public": + "034a770b18dfa387767450108b01dcaa573c7e82e61845aad1a2a1397348f9cffc", + "address": "tb1pp5xldv8r3uj0uwwvyp2ghfxkwh4dmmfqehr4takqnjke4dve0kxslgn52w", + "decode": + "0d0df6b0e38f24fe39cc20548ba4d675eadded20cdc755f6c09cad9ab5997d8d", + "params": {"hrp": "tb"} + }, + { + "public": + "03b61aa5b552c48e42bbfccda66f658dad3eeafa36bd112f30defdbacd00c69e86", + "address": "bc1pkx663cw5fdp29fh995vj99lsxfal5hxgvp2a0d427ha03xujfqjs0jrpfk", + "decode": + "b1b5a8e1d44b42a2a6e52d192297f0327bfa5cc86055d7b6aaf5faf89b924825", + "params": {"hrp": "bc"} + }, + { + "public": + "036f2255a9023e91d50682cf03470755943462d33b8e802db8742d411bad15b302", + "address": "tb1pppja0y96g4j9x8h2sner77xyyr4rurfe2gqtnkwlej6tfsy5g3qs7kcw5j", + "decode": + "0865d790ba4564531eea84f23f78c420ea3e0d395200b9d9dfccb4b4c0944441", + "params": {"hrp": "tb"} + }, + { + "public": + "0251550d1f46d76e36017fee35851c6a0c16d3e8a30e7b685defa461bad73163c9", + "address": "bc1p3u08zuheux079q8kx2e946a8haks3m9rtde7xvc80twf0y5fz3uslv7ujf", + "decode": + "8f1e7172f9e19fe280f632b25aeba7bf6d08eca35b73e333077adc9792891479", + "params": {"hrp": "bc"} + }, + { + "public": + "02cb2128050b6cd1b6bd84f62c2767664885fc2f20a89f8211ef36950bbecb7497", + "address": "bc1pvnp8nyapgq6mg9hyrmk20kurucwz7zh5gappv3x6h90rq8rvwpkqkgcf6f", + "decode": + "64c27993a14035b416e41eeca7db83e61c2f0af447421644dab95e301c6c706c", + "params": {"hrp": "bc"} + }, + { + "public": + "03bfdada3de0c4532f6480e4a2abb3befef9379a55d9c4ca8d0e0b599e53950e9a", + "address": "bc1pt952kv3u8fl2vg52d2q7s9jkxw97l5hey04fps6sjjrev8f7krus47wkch", + "decode": + "5968ab323c3a7ea6228a6a81e81656338befd2f923ea90c3509487961d3eb0f9", + "params": {"hrp": "bc"} + }, + { + "public": + "036da11ee5134e64492d7cca25734482b69d6604ef03aa6776554d279fd01369a3", + "address": "tb1pr0q52n8mtv5xshm6qk0y4ujendvdfgqt9s4nevvxqmfyvut9kw3spu9z0r", + "decode": + "1bc1454cfb5b28685f7a059e4af2599b58d4a00b2c2b3cb18606d2467165b3a3", + "params": {"hrp": "tb"} + }, + { + "public": + "03c74a8da8331063c403ffbdb01edee1c4cc60c7726c6f36cd32bb1243749369f3", + "address": "bc1p3vqvnq5dvklwxa6ng0vuhe0yvctg2529t6eqcca76u66x93ft6xsqz5740", + "decode": + "8b00c9828d65bee3775343d9cbe5e466168551455eb20c63bed735a316295e8d", + "params": {"hrp": "bc"} + }, + { + "public": + "0218668de04643f8e91b4fae19d1c5dd445cba6be6762a1ef2368fd6a866b77d37", + "address": "bc1p35e2un233pqdm47vr27dwmplgqa048e7t9dwvnvpw3yktgr4xh2stm85k8", + "decode": + "8d32ae4d518840ddd7cc1abcd76c3f403afa9f3e595ae64d81744965a07535d5", + "params": {"hrp": "bc"} + }, + { + "public": + "03c6d93112b6d6f07a2efac0c7e00dd3c2468faf22ca6bd8e478bfa0a851c1213c", + "address": "bc1pfdtdkw34xm45xacdauzce6w9vlj0wa2a72plrnz6rv9xjxvrx6esdfc8t7", + "decode": + "4b56db3a3536eb43770def058ce9c567e4f7755df283f1cc5a1b0a69198336b3", + "params": {"hrp": "bc"} + } +]; diff --git a/example/lib/test/address/p2wpkh/p2wpkh_test.dart b/example/lib/test/address/p2wpkh/p2wpkh_test.dart new file mode 100644 index 0000000..be65797 --- /dev/null +++ b/example/lib/test/address/p2wpkh/p2wpkh_test.dart @@ -0,0 +1,17 @@ +import 'package:blockchain_utils/bip/address/p2wpkh_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void p2wpkhAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = P2WPKHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = P2WPKHAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/p2wpkh/test_vector.dart b/example/lib/test/address/p2wpkh/test_vector.dart new file mode 100644 index 0000000..178747d --- /dev/null +++ b/example/lib/test/address/p2wpkh/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "028efec1adeed24fb240c439c48f11c9018b75132f476401548d39a82ea6cd8ed0", + "address": "bc1qkh36n40ywuyaeqxgc9ax2xayyjjvsyxwpx4g5q", + "decode": "b5e3a9d5e47709dc80c8c17a651ba424a4c810ce", + "params": {"hrp": "bc"} + }, + { + "public": + "0249554d1011db5c812eb0cfe299034f8130103d87eedc4b4733baae391cc5fab8", + "address": "bc1qef20f8sqx7pva87kwzywfh3pysfufwtfcex4ef", + "decode": "ca54f49e003782ce9fd67088e4de212413c4b969", + "params": {"hrp": "bc"} + }, + { + "public": + "03bd504f903a999015e1721281e983141b02af6e86675b94020d790cbea7a95d6d", + "address": "bc1qu9dj3xyq5yp4snfpgn2qj43we4zxl8cyrn4kun", + "decode": "e15b289880a103584d2144d409562ecd446f9f04", + "params": {"hrp": "bc"} + }, + { + "public": + "027b57aded3e1c7c218cd5680ac720d6e46e202216d2343e1a223d8e25cb10d356", + "address": "bc1qkzu9fwgsgh7zv4r4s034gcugp38h9dgktv68s7", + "decode": "b0b854b91045fc26547583e35463880c4f72b516", + "params": {"hrp": "bc"} + }, + { + "public": + "026759a817d8674f69b8c50c74bf225a7c4ae7f3e14afa40a9f241c2b8c2a04b52", + "address": "ltc1qx88q7zjd74lxwgkjmmwlqv5pd3vujuehexfttt", + "decode": "31ce0f0a4df57e6722d2deddf032816c59c97337", + "params": {"hrp": "ltc"} + }, + { + "public": + "023d1f7513a8383d521301d12d77d398fb862b304fe970dcb44d7d52d24ca78015", + "address": "bc1q0asdwxud4qcxqwmfa76maswczsp79suydg2heq", + "decode": "7f60d71b8da830603b69efb5bec1d81403e2c384", + "params": {"hrp": "bc"} + }, + { + "public": + "03a33cbfd1b90cfb4f2a45b17c2fdcd1db0d7dd22de861f84c34625e5bcfdb1088", + "address": "ltc1qudhthew8h03vzc7x99m3qg0z8wjq2f759hp4ej", + "decode": "e36ebbe5c7bbe2c163c629771021e23ba40527d4", + "params": {"hrp": "ltc"} + }, + { + "public": + "02f7e6ab3c731cd65a13349670db2cd7a98958a33403116ffc176b00c989bca78e", + "address": "bc1qzzl2swkm9xd7x02aga02xzuxd7slu93cw5czg7", + "decode": "10bea83adb299be33d5d475ea30b866fa1fe1638", + "params": {"hrp": "bc"} + }, + { + "public": + "020228d8cadc5b64ef29b974a9a4213d715e9621046e0956b09e5bc4bfd332e81e", + "address": "ltc1qyytdmyapc4ffsk0nj3q4zmnd5w6cleevwptw88", + "decode": "2116dd93a1c5529859f39441516e6da3b58fe72c", + "params": {"hrp": "ltc"} + }, + { + "public": + "0263d7015232e5a3b44de9c875262acd6f7de8509ec358937b55b7c3a0422afb24", + "address": "ltc1q5cdcer2sktddd9v4uvsrqlkxeflmxh9840ttz6", + "decode": "a61b8c8d50b2dad69595e320307ec6ca7fb35ca7", + "params": {"hrp": "ltc"} + }, + { + "public": + "03ef91c1165161d8c172e4758245db02d1907a9debe89688cb575c9efa434de9e7", + "address": "tb1q6yzgr3x23fswfcdldlemhfmx8kv5hyfy4hfl78", + "decode": "d10481c4ca8a60e4e1bf6ff3bba7663d994b9124", + "params": {"hrp": "tb"} + }, + { + "public": + "02c196e34c556fcbaced7e8754bd04e964381f291f3b5b43b9123833f91b10dffd", + "address": "tltc1q0fe74v45kj7uwckn97vt9srn2356p085j486rq", + "decode": "7a73eab2b4b4bdc762d32f98b2c0735469a0bcf4", + "params": {"hrp": "tltc"} + }, + { + "public": + "0203018254b4c0282371323bf774d8e0c8940f51275d652bd7c44e68e593e2299d", + "address": "tltc1qwgwzjpxpdedqcsa6qv4apjmxwteat35n2wccj2", + "decode": "721c2904c16e5a0c43ba032bd0cb6672f3d5c693", + "params": {"hrp": "tltc"} + }, + { + "public": + "037863b917404e7012ed9f944dbcd087ce52a17ffc1f9aed7b708a2ba3ce06949b", + "address": "tb1q9k3e9ffauahajlft5pc0z0h2dm7eq8jzz59qs8", + "decode": "2da392a53de76fd97d2ba070f13eea6efd901e42", + "params": {"hrp": "tb"} + }, + { + "public": + "024c09eb9fc65bdd5bdd528621a670dbf6d2f4ca88b22c5ffbaa10c0a1e94a5745", + "address": "bc1q3zq2w6gg38d66jm9e7syg79sxwlq9r4tt0qx3c", + "decode": "8880a7690889dbad4b65cfa04478b033be028eab", + "params": {"hrp": "bc"} + }, + { + "public": + "029d910fa3e98cc721a1103e16f636ce2039dd66e23e1346c331a2ba3970af7cff", + "address": "tb1q8ld3y37dtkt4j7zdcnsfc69mhm3zgffnz66ly7", + "decode": "3fdb1247cd5d9759784dc4e09c68bbbee2242533", + "params": {"hrp": "tb"} + }, + { + "public": + "03ef804de2ebadf94822f038f033a6c57c09f580227b7d241eac55205af56dedac", + "address": "ltc1qj7t3v6z2gk7tc3mfm3fepyjtf5408gwuf65zsx", + "decode": "979716684a45bcbc4769dc5390924b4d2af3a1dc", + "params": {"hrp": "ltc"} + }, + { + "public": + "020095a4bcb039e1500d1f3674d2a6d6bdd7b215d904ff76901c9ad3e508a7de89", + "address": "bc1q54aeaw0vtaleca2quw28hh3yh4g0taml5ejvp4", + "decode": "a57b9eb9ec5f7f9c7540e3947bde24bd50f5f77f", + "params": {"hrp": "bc"} + }, + { + "public": + "0336fa578b42af27b3b2e6ad818f84d91a4e5e70d360c0f483448d8cf1aa5be518", + "address": "ltc1qvcslk7yqy2ehr3zftt4plt883kzy7vjezhef4h", + "decode": "6621fb788022b371c4495aea1face78d844f3259", + "params": {"hrp": "ltc"} + }, + { + "public": + "03ba59b8888d6eeb91483f15e5930204cd6101c1dc4b7c17e5d0e0444ee96559d8", + "address": "tb1qlhaexk6w67zn4h6h04yydaxgzcgpuwdg378sqe", + "decode": "fdfb935b4ed7853adf577d4846f4c816101e39a8", + "params": {"hrp": "tb"} + }, + { + "public": + "029cd1d17c9dea6cbac2e1e0ebf13e1e6b885332e395e37de274ab38414764be9e", + "address": "ltc1qwyeugkrs82eslc4m79436lclzucum9ypf8z8s7", + "decode": "7133c458703ab30fe2bbf16b1d7f1f1731cd9481", + "params": {"hrp": "ltc"} + }, + { + "public": + "02ff7f29be70cc3cd0f8a7946a41a296ffaa8763bb799d0413e5a612e9cb0825e3", + "address": "bc1qhkxh4rzmv43a55c2gw4ktrpzfy4tl7hencjhhl", + "decode": "bd8d7a8c5b6563da530a43ab658c22492abffaf9", + "params": {"hrp": "bc"} + }, + { + "public": + "0256a7c62310d921a3c467d8bfbc18b1338ed4fa70efbeb2158372f39a3cab9c75", + "address": "bc1qkw3yqmysdt6prsrpzz2sdl0kn9mhcte5rt6lle", + "decode": "b3a2406c906af411c061109506fdf699777c2f34", + "params": {"hrp": "bc"} + }, + { + "public": + "036413367ddf0858f7a4d7f22059575d50453a8a039de7e95267f38fb0c987d6a5", + "address": "bc1qewwp2f63u3p3mt5n9avg44hs7raclhv4g943qw", + "decode": "cb9c152751e4431dae932f588ad6f0f0fb8fdd95", + "params": {"hrp": "bc"} + }, + { + "public": + "02e93a572d5738cf73072582d2e0c810a843703bfec3a70b63005bdec953d26801", + "address": "tb1qhympd6w4wehggamalpz029allsnu8c58cwn66y", + "decode": "b93616e9d5766e84777df844f517bffc27c3e287", + "params": {"hrp": "tb"} + }, + { + "public": + "02fc2f282a18675a2f229c7e9b4e2ac04949980f759df68759d5b5a6dbda49fa85", + "address": "tltc1quux6h8ek7lp0tndnp6gwfe4cy6zm7z34ltxlmd", + "decode": "e70dab9f36f7c2f5cdb30e90e4e6b82685bf0a35", + "params": {"hrp": "tltc"} + }, + { + "public": + "037e42ede83d3632d09049261868ae2042c89d138a2454aec5925e0e95938b56eb", + "address": "tltc1qt5m68ax3zscw9yyluu3a2ez7c84l2wxg72mp90", + "decode": "5d37a3f4d11430e2909fe723d5645ec1ebf538c8", + "params": {"hrp": "tltc"} + }, + { + "public": + "0380ff1292e8d9a171f66adc27172cfb22f1dbf8ce61a6cf9ae0f1d8c0108b6bd6", + "address": "bc1q4ccajukr2ymmem0dxccsee4nv6lzj2ehnckqgm", + "decode": "ae31d972c35137bceded36310ce6b366be292b37", + "params": {"hrp": "bc"} + }, + { + "public": + "02f07114bb0d3a4261cd306ea447d4de90e4d977c1b5d8f1429a25632c6db31870", + "address": "bc1qu82lzq6kmss52q5vkkcnaspcp8gjgm0rdtz0ep", + "decode": "e1d5f10356dc2145028cb5b13ec03809d1246de3", + "params": {"hrp": "bc"} + }, + { + "public": + "03504f8a3ef299e5e06d8cefb8ff79d80349013076ceb8c8f61f742ffc5bb26b87", + "address": "tb1qhj4nxhp2t66t3gacsnv9uz6evy53eec9u9fvqd", + "decode": "bcab335c2a5eb4b8a3b884d85e0b5961291ce705", + "params": {"hrp": "tb"} + }, + { + "public": + "0290568953609d8cd7e42722cdfce12ad1ab5fd5c53107ae835e8d8d6ca9d11c38", + "address": "ltc1q0ymzzw0kv56cyudc9hl9plc00w6skm55rmhqur", + "decode": "79362139f665358271b82dfe50ff0f7bb50b6e94", + "params": {"hrp": "ltc"} + }, + { + "public": + "03e7735e7e610c0781f3c2b2d936d33fda446f4938bb4832ed71ea1f657d1490c7", + "address": "tltc1qhrkmhs0nsr232gn9kmpn9g2rprlrs4p6x52uxy", + "decode": "b8edbbc1f380d5152265b6c332a14308fe38543a", + "params": {"hrp": "tltc"} + }, + { + "public": + "02457e3144f8c8c7dba8cd8a65119c74deec0e3002869130dc107bfa9be767343b", + "address": "tb1qk4n0lputv7r8c0c8d848ny2ahhpw20ypuwhcgt", + "decode": "b566ff878b67867c3f0769ea79915dbdc2e53c81", + "params": {"hrp": "tb"} + }, + { + "public": + "0305e4bfa64725e4ee25f1ca0c9326ecb7ff34e9ee1ff95b884ce41e9a73a4cc35", + "address": "bc1qp3khm8wcqrx58yy33yhz6mk5jqlxn8ljfkwuf0", + "decode": "0c6d7d9dd800cd439091892e2d6ed4903e699ff2", + "params": {"hrp": "bc"} + }, + { + "public": + "0351db15bc19b0bf05b7f2b829a50ad54d71474b6372d99cddde55b21491ad92b6", + "address": "tb1q53raf83njz0aspsdtw344m6k080g2n02veng58", + "decode": "a447d49e33909fd8060d5ba35aef5679de854dea", + "params": {"hrp": "tb"} + }, + { + "public": + "0339c5b6a90f0009167835908074b85a07113c9ad792fda8e3cdf552652ef12a0b", + "address": "bc1qvzu45n9pzkjvntd0wu6vqzlyxpczqxenrm38wy", + "decode": "60b95a4ca115a4c9adaf7734c00be43070201b33", + "params": {"hrp": "bc"} + }, + { + "public": + "0235d0c18f04e3f91fcfbbf97cb7473b37348a56956891257b1bc6a69a34cd3906", + "address": "tb1qumn22lmedl5wk4j3lqe0emj6rtedpeequn7wg7", + "decode": "e6e6a57f796fe8eb5651f832fcee5a1af2d0e720", + "params": {"hrp": "tb"} + }, + { + "public": + "02a6be130e9970a279a4a4b33253fe6a6d38fc5e25d6d4a0b0ab1855539f3fce31", + "address": "ltc1qn5qcfta92xx5yu3l4ggnqvh7mmfu7sqgvv4v39", + "decode": "9d0184afa5518d42723faa113032feded3cf4008", + "params": {"hrp": "ltc"} + }, + { + "public": + "037199cf697320bd6fe17a9563a972873ae7fee1153647d8cf00fbcef1f616d271", + "address": "tltc1qv6k55xkj0p4hhjuf3yzkarlrc4dl3v8vwvpete", + "decode": "66ad4a1ad2786b7bcb8989056e8fe3c55bf8b0ec", + "params": {"hrp": "tltc"} + }, + { + "public": + "03546c5ba43d5ca0064be0ac7c3f39398a006c2e19d9168028c9866a780d67fe95", + "address": "tb1qdat80n8gv20uas8s9fsf228n9q8k8e072su9na", + "decode": "6f5677cce8629fcec0f02a609528f3280f63e5fe", + "params": {"hrp": "tb"} + }, + { + "public": + "032acb8ff0ce4026f79bf1477f618606f449505a16ae9cf97ea14a92384c82e624", + "address": "ltc1q44yws9cu993wk542ddq3uy2gka5emdmzy2tjs9", + "decode": "ad48e8171c2962eb52aa6b411e1148b7699db762", + "params": {"hrp": "ltc"} + }, + { + "public": + "034563d9e27601c38fa6cf66d5a1bdd00657099ec93340e0af229e4ddadac3618c", + "address": "bc1qjqtkgkssqeh3vszduyt6sp34rv3jsulx9gyejp", + "decode": "9017645a10066f16404de117a806351b232873e6", + "params": {"hrp": "bc"} + }, + { + "public": + "0276c376839b910f5faa7c8ff2733673f2135ffb45ce0e3ad04ea09c19cb2ed941", + "address": "bc1qfzsamdd0e22k47wxxgw30zgstph542fse8andf", + "decode": "48a1ddb5afca956af9c6321d178910586f4aa930", + "params": {"hrp": "bc"} + }, + { + "public": + "0257d7a54660413ee1340b4647abca42a47c3242b18f6b3d7e3a88a11a25f317bd", + "address": "ltc1qrey2uash2maht77ducs5unu779sxl2jzjxc00e", + "decode": "1e48ae761756fb75fbcde6214e4f9ef1606faa42", + "params": {"hrp": "ltc"} + }, + { + "public": + "021d3797c3c592772c9709ed6c7b1b291a6eb7873926183c4a414c6e980e101589", + "address": "ltc1qjpy9lrcws9gld563zw9qcac2e7qd6l59qpzpts", + "decode": "90485f8f0e8151f6d351138a0c770acf80dd7e85", + "params": {"hrp": "ltc"} + }, + { + "public": + "03164135caf6e3da39a983a75db9b2faebede9cada1da22f753920e3fc54106a30", + "address": "tb1qngyt450xgmywl4qz0867tu9zur5p8uwtrp5mly", + "decode": "9a08bad1e646c8efd40279f5e5f0a2e0e813f1cb", + "params": {"hrp": "tb"} + }, + { + "public": + "0332f46f6116935dcca1d7301d78a08a9b987bf80afd4c90a43c7bb668d6c89b8a", + "address": "ltc1qjjlvkwzeghe3kl0etxqp9mz68jter9un5d9zgr", + "decode": "94becb385945f31b7df9598012ec5a3c97919793", + "params": {"hrp": "ltc"} + }, + { + "public": + "020466b4cdd799b8a55a0e3947036e82b21f45d462f8703466bdf462e940785032", + "address": "bc1q7y9tczuljlurjzjytd60ss4t6swt30h4c0jn29", + "decode": "f10abc0b9f97f8390a445b74f842abd41cb8bef5", + "params": {"hrp": "bc"} + }, + { + "public": + "03489154cba41b15fa942526f080b3cf4525272125abadd483504dc4f80dccdbfb", + "address": "ltc1qyln79za4p20x8eapsle2wk9lqu5uzcs452v8w2", + "decode": "27e7e28bb50a9e63e7a187f2a758bf0729c16215", + "params": {"hrp": "ltc"} + }, + { + "public": + "035ee63852ba6fd18b542e7c2257c5a7b40be1c435128564b0cdf0f8557a3fa24e", + "address": "bc1q9u7n4qh0zgpx5da2ecekx3wpx7zwpzza8mn8kz", + "decode": "2f3d3a82ef12026a37aace336345c13784e0885d", + "params": {"hrp": "bc"} + } +]; diff --git a/example/lib/test/address/sol/sol_test.dart b/example/lib/test/address/sol/sol_test.dart new file mode 100644 index 0000000..4154d5f --- /dev/null +++ b/example/lib/test/address/sol/sol_test.dart @@ -0,0 +1,17 @@ +import 'package:blockchain_utils/bip/address/sol_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void solAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = SolAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = SolAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/sol/test_vector.dart b/example/lib/test/address/sol/test_vector.dart new file mode 100644 index 0000000..035aa76 --- /dev/null +++ b/example/lib/test/address/sol/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "f98bc0832e705e2ba354fb4df4e521e622480fa08663280d3992e57df21001db", + "address": "Ho87cuS3aSRgUMCeMrV7uNCCWx6Fj2ytnufYQ1W7KCLr", + "decode": + "f98bc0832e705e2ba354fb4df4e521e622480fa08663280d3992e57df21001db", + "params": {} + }, + { + "public": + "a9ed356dbef8a0b4375b60269a60c257effd3131f2b96cf389761fce35f79a23", + "address": "CSKgzVRhq6PKFUtiEFtWdTYhQTd12ohN3fc6yjxYnwHL", + "decode": + "a9ed356dbef8a0b4375b60269a60c257effd3131f2b96cf389761fce35f79a23", + "params": {} + }, + { + "public": + "310558c12e34393a685337e38bed17240ea106415d2965ae9128ac4854ab160a", + "address": "4JMhwSEujEZEfMp4X8ZrqYcDNaYy7UFaCXvoSzWQJLQq", + "decode": + "310558c12e34393a685337e38bed17240ea106415d2965ae9128ac4854ab160a", + "params": {} + }, + { + "public": + "7a52687d6600b8ce6fe392886d0931b51d9624a07da915dbb6839e4083943bfc", + "address": "9EVd38qiDV6UAmGjkSrdYJRiZNQt2WKVETqLRpGuuHhm", + "decode": + "7a52687d6600b8ce6fe392886d0931b51d9624a07da915dbb6839e4083943bfc", + "params": {} + }, + { + "public": + "442104865a3be3fb13d4da041b1aceb730b7e78e9e7733232367d1601b0ac9e3", + "address": "5awvcqhNEe6YA9keaifwmqDiGujJbHnNj9owfMs6jCUS", + "decode": + "442104865a3be3fb13d4da041b1aceb730b7e78e9e7733232367d1601b0ac9e3", + "params": {} + }, + { + "public": + "4f539d31b1dffd89364a4a6a6a3384a4d361e2566bf34cd4291f718eac8107e9", + "address": "6LfA6VG1F2g17FUASkchdvEH9ct9HLbo524Ra7giAGoA", + "decode": + "4f539d31b1dffd89364a4a6a6a3384a4d361e2566bf34cd4291f718eac8107e9", + "params": {} + }, + { + "public": + "687dadaa4625e062e93d8a303cfebc84273b3d5ca7bca5d15bc2218a5bf0c1f0", + "address": "82tYy7XPrAetkZbHJKoB1XsqxZ2xpjF1iizRF71GsxgX", + "decode": + "687dadaa4625e062e93d8a303cfebc84273b3d5ca7bca5d15bc2218a5bf0c1f0", + "params": {} + }, + { + "public": + "2733d65c4347962c76e3c235c172ea3536de6adf05a4a2e611106eb8a0104a29", + "address": "3e2kEc711izrXJm7nKbVW5gA9MaFZcdgL49PRejKBwnp", + "decode": + "2733d65c4347962c76e3c235c172ea3536de6adf05a4a2e611106eb8a0104a29", + "params": {} + }, + { + "public": + "47b57fc55102729aa08aa9cae78cfc82c834a2be5005d8b967a7becc66952655", + "address": "5pvTzAc9XRhdzaHemPBz6p8pmTdqyatKjT4Z9ao8Z5Ux", + "decode": + "47b57fc55102729aa08aa9cae78cfc82c834a2be5005d8b967a7becc66952655", + "params": {} + }, + { + "public": + "52c6da6b720fd2cdeb071ef6005779356828a2e8560a8252d5ed4ae7f78a69a9", + "address": "6a8JHTfD2EyJqYEjYFzH8oeLqKV9frtMMdwktm4e9Mua", + "decode": + "52c6da6b720fd2cdeb071ef6005779356828a2e8560a8252d5ed4ae7f78a69a9", + "params": {} + }, + { + "public": + "e9b7609bf8f04f01df7d973201e023f43f8ee5bd372aad9be8c21492d2213e7d", + "address": "GjLB4XgBHsL9YCdKcEsscGyPiwK6QvRmG3wzuQ4ZuU9a", + "decode": + "e9b7609bf8f04f01df7d973201e023f43f8ee5bd372aad9be8c21492d2213e7d", + "params": {} + }, + { + "public": + "9108e28b6e66257d22cc0db0afece159de97ee5e70af8be1c42ed616b822ca3a", + "address": "Am9yVk4z2VGvts4a64rYThAraKsJDBqmEEenQA3g7zDX", + "decode": + "9108e28b6e66257d22cc0db0afece159de97ee5e70af8be1c42ed616b822ca3a", + "params": {} + }, + { + "public": + "2c0ceafba69fa0404d963a497226846158c8fc9d1f7ae8c17622d4fbfe73c227", + "address": "3xxN5LsKFcwUY9wfNGTR29GWDWejAyQ4D7V963RhA39g", + "decode": + "2c0ceafba69fa0404d963a497226846158c8fc9d1f7ae8c17622d4fbfe73c227", + "params": {} + }, + { + "public": + "8b272d1496e0f543166f4883c7050e508effd7676e99821c4a67029c1c959d4a", + "address": "ANCKRAAygamGgfSCeh26duBMGYhP17Wzuii61HohgPuK", + "decode": + "8b272d1496e0f543166f4883c7050e508effd7676e99821c4a67029c1c959d4a", + "params": {} + }, + { + "public": + "68bf531dacac930ec02fbdff2546eda27de03429135cd8a4dc6a3d2686234e97", + "address": "83tcKw9ioAvbRFziqwZYEGxSipXniMNiXuxs8biuo1aE", + "decode": + "68bf531dacac930ec02fbdff2546eda27de03429135cd8a4dc6a3d2686234e97", + "params": {} + }, + { + "public": + "ee4ac61666ca36b5813dabdb8ec81ff30cf916fe239799178ade36fb9cacea6f", + "address": "H3CAREdshTJ35HNroBFDj96HXoNNxrBn62WVuLrvSkyU", + "decode": + "ee4ac61666ca36b5813dabdb8ec81ff30cf916fe239799178ade36fb9cacea6f", + "params": {} + }, + { + "public": + "d6fe5f2f9c4ea9b5954b75597a4af887820638d16b74edd7a56a4a5bc8cb9e5a", + "address": "FUFDURVPNToo7vduxVB9UEcH7uhSt6eAkH2t3wMbgzzu", + "decode": + "d6fe5f2f9c4ea9b5954b75597a4af887820638d16b74edd7a56a4a5bc8cb9e5a", + "params": {} + }, + { + "public": + "ceb65b33c5d56704fbd8b18e8b5bac11f0c5eb9c1e4d964e9f829345c37ed5c0", + "address": "EuvGEBQfCJD7fmvGaa3xFSqCgP5brYgie1iEnrYfisu9", + "decode": + "ceb65b33c5d56704fbd8b18e8b5bac11f0c5eb9c1e4d964e9f829345c37ed5c0", + "params": {} + }, + { + "public": + "f532e46cac1777811611417b6e56027d0f52e97cde1342b873fe69cc1e6dbdeb", + "address": "HW9tvwWTwQJYeWpDxKDvo5BdBuFbSnHGQbnLML6ZSgH8", + "decode": + "f532e46cac1777811611417b6e56027d0f52e97cde1342b873fe69cc1e6dbdeb", + "params": {} + }, + { + "public": + "b70af8d35a0ffec7e57382bb5491bd160b731619832eb8ddc5e3be88821ef69b", + "address": "DKXK7nJRoczxqnsoBEf7N5nikNWjayVDCNiNGjovoYTU", + "decode": + "b70af8d35a0ffec7e57382bb5491bd160b731619832eb8ddc5e3be88821ef69b", + "params": {} + }, + { + "public": + "1c29ad55384cc9c62a348b900a98579da31010e5b96933025c73cbecdeb97bfa", + "address": "2twGwxun5FWqgdtoMTMRj7spSxyocmow5s6iySFn8Gky", + "decode": + "1c29ad55384cc9c62a348b900a98579da31010e5b96933025c73cbecdeb97bfa", + "params": {} + }, + { + "public": + "1e2f8893166e7988ba440db203f7a1608cf83fa4d74887dcde42103ed36e35c0", + "address": "32qGebUyatMSntkK67zww7cRVkp6dT7aoevPC1a8PV91", + "decode": + "1e2f8893166e7988ba440db203f7a1608cf83fa4d74887dcde42103ed36e35c0", + "params": {} + }, + { + "public": + "679139ef2c139f0a08c4da8d0cb359ced06e935f4990183ee3d42708194c280f", + "address": "7yHS3Qgh7pQJoVPFnPWCqM4i4V7ERF2JxKdJTzHj6rLv", + "decode": + "679139ef2c139f0a08c4da8d0cb359ced06e935f4990183ee3d42708194c280f", + "params": {} + }, + { + "public": + "9f1b602232f12e2fd8c36ea8e9954a710b2759e6398743e2c110773fae5bbaa7", + "address": "Bi632ipA1VzcU2Ev9hLaoR8WkmmsRSmapiVJuQyFbwEn", + "decode": + "9f1b602232f12e2fd8c36ea8e9954a710b2759e6398743e2c110773fae5bbaa7", + "params": {} + }, + { + "public": + "ad78e328e24098370e16fd53eb5d70da922f7ac1c3c651b511090a5f5ba94fd0", + "address": "CgASpHexjuYuvaSYVrNuEc6KZj7zFUMncCNoHnJyMVLK", + "decode": + "ad78e328e24098370e16fd53eb5d70da922f7ac1c3c651b511090a5f5ba94fd0", + "params": {} + }, + { + "public": + "dac7b71bc101e9dcb8edd4f28639ae45688576c5be4f97f379ecb5b91d1cec77", + "address": "Fj2WRadcfM1QeTFLBMfMZy3EnybyKc4TBzFhYu9TZx86", + "decode": + "dac7b71bc101e9dcb8edd4f28639ae45688576c5be4f97f379ecb5b91d1cec77", + "params": {} + }, + { + "public": + "86213fbbfb7fd83fd8389566858a22cda7508f1c93bb6b4234b8afa7fcfa3b80", + "address": "A2b39e2mC2PRBtdv4RVDqKDnAqfjoM7ogKnt53J4P93m", + "decode": + "86213fbbfb7fd83fd8389566858a22cda7508f1c93bb6b4234b8afa7fcfa3b80", + "params": {} + }, + { + "public": + "c207f9a6c3253ee01b7bcbc83e7ef762de7bd178f6e89f2806ac83398233a457", + "address": "E4R9WQojaALo26JDK8vZ8i2FmaHTf3PBBJ4EoDm2ekTG", + "decode": + "c207f9a6c3253ee01b7bcbc83e7ef762de7bd178f6e89f2806ac83398233a457", + "params": {} + }, + { + "public": + "ab86e7d6b3cec93ad7a63d6f996a07f67ceac1c23796c11a02c4c3107276152b", + "address": "CYa2bcgLbM7p7otjrgNabR8kXAXZW3zBgg1sRUWauNKL", + "decode": + "ab86e7d6b3cec93ad7a63d6f996a07f67ceac1c23796c11a02c4c3107276152b", + "params": {} + }, + { + "public": + "5e0460b9523995338799b1037b184ed86387751cb78ab6cc14077c1fe40bac3e", + "address": "7L1CLCbVTJsb6JPJtuL2quRTNi7nvHvxEqVs81A3hMXb", + "decode": + "5e0460b9523995338799b1037b184ed86387751cb78ab6cc14077c1fe40bac3e", + "params": {} + }, + { + "public": + "5fd79163fca72899ff4c3be71bc6acc2720e7bee06a1790f5ee7f8d5da0db5eb", + "address": "7T8P5YAKuvA98qooRa578zRbz8pMwiHRbBaUcQjLVwFQ", + "decode": + "5fd79163fca72899ff4c3be71bc6acc2720e7bee06a1790f5ee7f8d5da0db5eb", + "params": {} + }, + { + "public": + "49a8fb343936f83a9edbab557c8bcd1eaff8bf4276bf3e6f0bda8af57da809fa", + "address": "5xYDArHGPPoW7CBqpqrheAMUX6eKX9ALtntdJxjLDXhb", + "decode": + "49a8fb343936f83a9edbab557c8bcd1eaff8bf4276bf3e6f0bda8af57da809fa", + "params": {} + }, + { + "public": + "8a87027778a62f9e45f2ab9f8ebbe7439b6125aee8ceca0865529fb07a50ae8f", + "address": "AKkfbjUBZefu4wcpe6Ge6nMWj2xGoCRxB1nwYDMy436n", + "decode": + "8a87027778a62f9e45f2ab9f8ebbe7439b6125aee8ceca0865529fb07a50ae8f", + "params": {} + }, + { + "public": + "f0dc8df36a6e2bd8c2bdac99b7179b181dcc60cd858851eb9cd228d26dbb0050", + "address": "HDDuc51oBE29uqjXeveEYTsro6Bv63pzENBTuYd99Usq", + "decode": + "f0dc8df36a6e2bd8c2bdac99b7179b181dcc60cd858851eb9cd228d26dbb0050", + "params": {} + }, + { + "public": + "c802c2fb1487832b90b31a3281bc723160e3e5f30f6c375dd1cc553c7929164b", + "address": "ETkyxKwmgvBNUbyWMzKbaKSdonGqX6iU1G9sUmRLaL8r", + "decode": + "c802c2fb1487832b90b31a3281bc723160e3e5f30f6c375dd1cc553c7929164b", + "params": {} + }, + { + "public": + "7e6899f0d17a327229349f305c1e7895004c56086026954ed3f52c6a3b1d11d8", + "address": "9WSt2sFoFPApuhZJ8JtvEDYqz472hm8vfRNPEoxNhyJo", + "decode": + "7e6899f0d17a327229349f305c1e7895004c56086026954ed3f52c6a3b1d11d8", + "params": {} + }, + { + "public": + "e829fa43a9bc9cf6d79696ee81891224cfd5ab9e2fefbe9d7bf667b0bfd69010", + "address": "GdGiF4vkDPEoXwKrU6h74ACBc8VRWdXg4dRbFtPScHwD", + "decode": + "e829fa43a9bc9cf6d79696ee81891224cfd5ab9e2fefbe9d7bf667b0bfd69010", + "params": {} + }, + { + "public": + "43c398d9bca176d141c882ffb15923e238ab038061a8813c513903f32e9eb457", + "address": "5ZXJZbRsoFskJcgXyuKUHqcsRu9DXmCPAUSaLTfT8PkA", + "decode": + "43c398d9bca176d141c882ffb15923e238ab038061a8813c513903f32e9eb457", + "params": {} + }, + { + "public": + "ec320564f8d74bb3b21326bbdc2963070f170a996b95ad61c5e50e6393ea010c", + "address": "Gu1TRWUKa9yUJBqRL3nxTGA1r5y2ooZAAw5PFRT35CLs", + "decode": + "ec320564f8d74bb3b21326bbdc2963070f170a996b95ad61c5e50e6393ea010c", + "params": {} + }, + { + "public": + "dddf0f1a46deaf67f3dbd0631c0b6ba2c57c3add229b91664f938a020ab54fd0", + "address": "Fw6Nnti9GUzj8XSppxVWpdF9GAdFAj21HkktrLy85Qw9", + "decode": + "dddf0f1a46deaf67f3dbd0631c0b6ba2c57c3add229b91664f938a020ab54fd0", + "params": {} + }, + { + "public": + "7091a8c523a2b5a5c0ddc7bc2f1eb04a6a11ae6261a3e0f4aa3e4d18868295ac", + "address": "8aRV4xdVfKqJCG4uMXFaJC9W5jVST83sLrujuXkVsfsH", + "decode": + "7091a8c523a2b5a5c0ddc7bc2f1eb04a6a11ae6261a3e0f4aa3e4d18868295ac", + "params": {} + }, + { + "public": + "1161d520bb6d8a316c7685b308b103e9e801480a2c4227d884a6478e31637ec2", + "address": "2ArTMmGV5ZorDoyYRKkjziBHq4vpngFD8yi9PjzZkuMK", + "decode": + "1161d520bb6d8a316c7685b308b103e9e801480a2c4227d884a6478e31637ec2", + "params": {} + }, + { + "public": + "a0c8563fcb4d68298a71d13744d40787f664ca0d656963e6b992a365a099b312", + "address": "BpdQpLATfeSgQfATHF5KTHRNXr27F34NeyU77mxo9aJM", + "decode": + "a0c8563fcb4d68298a71d13744d40787f664ca0d656963e6b992a365a099b312", + "params": {} + }, + { + "public": + "36dab4a36bdeab350706b5a7a73cb6eef5959dce205e1fd5dbacb9b23544a080", + "address": "4h8SXHUvxSWVu3wDtaE5cD267myLWDt1HZwApegQGteB", + "decode": + "36dab4a36bdeab350706b5a7a73cb6eef5959dce205e1fd5dbacb9b23544a080", + "params": {} + }, + { + "public": + "30a423af39e252a3e37a648aab188d658b69684582e5992df2b2561254571443", + "address": "4GsjeDzg25waHcXiMtQELkh7VesmqM4foRaxvaQp6RES", + "decode": + "30a423af39e252a3e37a648aab188d658b69684582e5992df2b2561254571443", + "params": {} + }, + { + "public": + "5b571fdffe009537d56a6a4bf2441b14919a3dfb6eef3465deb47dbcb91405d8", + "address": "79Z9va9odQ9fWSnEqVq4kgfADFmnfRt8mbwzML9WmMCT", + "decode": + "5b571fdffe009537d56a6a4bf2441b14919a3dfb6eef3465deb47dbcb91405d8", + "params": {} + }, + { + "public": + "3fcfde72c4efb66d78e9a508b2a9a6e18052c2249a8a9ea68dc3cf6956664e9f", + "address": "5J6XU7keXhJKWdDkQ2BpxhdDhzqRcpqUVuRcqB7yRQSz", + "decode": + "3fcfde72c4efb66d78e9a508b2a9a6e18052c2249a8a9ea68dc3cf6956664e9f", + "params": {} + }, + { + "public": + "e06d37a5c7fb0564b0c229a3d443e8b6de4de5b5ae1f758d736901f002998315", + "address": "G74vAmd7QkXJSx9L2U5pJsfcnowkNKN1GM3R7iRW7C3N", + "decode": + "e06d37a5c7fb0564b0c229a3d443e8b6de4de5b5ae1f758d736901f002998315", + "params": {} + }, + { + "public": + "866bc4be4e3d6a5e8065c349c89deebc619039512e09bd9fc253b0e7d7a5782b", + "address": "A3iwfgYVghajWRpVjfsW5F6PuW5WCvm76ihctDCvAgev", + "decode": + "866bc4be4e3d6a5e8065c349c89deebc619039512e09bd9fc253b0e7d7a5782b", + "params": {} + }, + { + "public": + "735f4884aeee982fe1a04fdca5e63353c6cd61f3950868c10e60b70e2ecbd2ad", + "address": "8mN9wujRQpXhFJ9rZ4nrgDCjjJfqdHvPGWb7uKQh475N", + "decode": + "735f4884aeee982fe1a04fdca5e63353c6cd61f3950868c10e60b70e2ecbd2ad", + "params": {} + } +]; diff --git a/example/lib/test/address/substrate/substrate_test.dart b/example/lib/test/address/substrate/substrate_test.dart new file mode 100644 index 0000000..2779a01 --- /dev/null +++ b/example/lib/test/address/substrate/substrate_test.dart @@ -0,0 +1,26 @@ +import 'package:blockchain_utils/bip/address/substrate_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void substrateAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = SubstrateEd25519AddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = SubstrateEd25519AddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = SubstrateSr25519AddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = SubstrateSr25519AddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/substrate/test_vector.dart b/example/lib/test/address/substrate/test_vector.dart new file mode 100644 index 0000000..1bff485 --- /dev/null +++ b/example/lib/test/address/substrate/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "79d1b9f483f005398e8a9ffa6378990a6d302b882848220dfa68a50b6f2090f2", + "address": "23dKgUghw8q96xGPCybiSRDkbNJMxNK7riGoEvo4GyxFdSAe", + "decode": + "79d1b9f483f005398e8a9ffa6378990a6d302b882848220dfa68a50b6f2090f2", + "params": {"ss58_format": 10} + }, + { + "public": + "4ac158b2e3460471eb04d92950f11337b267088fd91d48052275baf7d0b0b20d", + "address": "28MGpiZD5TT4sg7LRPgL9aSsUUgd8EjhnGTUUyFLSiorkxoe", + "decode": + "4ac158b2e3460471eb04d92950f11337b267088fd91d48052275baf7d0b0b20d", + "params": {"ss58_format": 11} + }, + { + "public": + "67ea0d6b7afce2a7328ab537decba8c6eaa998fc61c07908e74fca438b658195", + "address": "68VteHnLQhPF2qFiB1EbuHSSUjqVV1cU8rskmAuwXirJHARU", + "decode": + "67ea0d6b7afce2a7328ab537decba8c6eaa998fc61c07908e74fca438b658195", + "params": {"ss58_format": 51} + }, + { + "public": + "c0922153608d966efc4fedb67825a8bb79ed689689dda2592f446e4d997842a7", + "address": "6xoQrYS9PWW2vQqBHbVaxaEDf82enqsatyNpa2xspJaCFqYS", + "decode": + "c0922153608d966efc4fedb67825a8bb79ed689689dda2592f446e4d997842a7", + "params": {"ss58_format": 59} + }, + { + "public": + "51e5a6beae03719e2e9335a3994f8da03be34d6c71fac792c375b81e6faf3330", + "address": "ERhckLKG8dSw7uSH3pixNMkE3LvRRh6wB47BxRteGgcbzjb", + "decode": + "51e5a6beae03719e2e9335a3994f8da03be34d6c71fac792c375b81e6faf3330", + "params": {"ss58_format": 2} + }, + { + "public": + "446b851030cdfe955cacdb564f089419da17ce24de78b9027d7d0eb60d12ec9c", + "address": "42AVx9HAkErLQ7HEwPycg5ffboteYe3DtZzQs5kAY11eWTf3", + "decode": + "446b851030cdfe955cacdb564f089419da17ce24de78b9027d7d0eb60d12ec9c", + "params": {"ss58_format": 30} + }, + { + "public": + "4714f02d7bb16dfc3fa8f9ed6174e7cc03597dd0949b6211f4b603dc57d074bd", + "address": "6v47sUonfCtkMaAer7PtkQnJvLK7z9itxRCEmKrANigYRBzq", + "decode": + "4714f02d7bb16dfc3fa8f9ed6174e7cc03597dd0949b6211f4b603dc57d074bd", + "params": {"ss58_format": 59} + }, + { + "public": + "5c4d80a7ef3fafc1de96c36b9057e945166058de330747f3b54b1cd0de93bfbb", + "address": "4q16FYva7AMRpi8hdFfBVCc1ADZBTe2aNkpwERNX6UibBjmf", + "decode": + "5c4d80a7ef3fafc1de96c36b9057e945166058de330747f3b54b1cd0de93bfbb", + "params": {"ss58_format": 38} + }, + { + "public": + "7d0b6986c749600240592292d959922dbac407a85b4021256117703775fa9c41", + "address": "dLQEKZp2GLJrzVNxsTCaDMvsc7vkdDas7ykYMkWcxtkNEVoxQ", + "decode": + "7d0b6986c749600240592292d959922dbac407a85b4021256117703775fa9c41", + "params": {"ss58_format": 74} + }, + { + "public": + "d3b0d53b00d8c6aad6a9c543c4038988b48e32f496f78b55445618850f420b0b", + "address": "45QMPY78X8NjnD31Aa2MsYXLcp7T3JKLfBX1zUfhtukXLDDd", + "decode": + "d3b0d53b00d8c6aad6a9c543c4038988b48e32f496f78b55445618850f420b0b", + "params": {"ss58_format": 30} + }, + { + "public": + "b7e2de21cca3810b604ceb43e021b9302b7ef01ee37972f02f55e2bd922229f7", + "address": "54eVVmkRFSj5DoXvj9SXu6skwqhtw3HBE1kFj1oDJu9jdVFx", + "decode": + "b7e2de21cca3810b604ceb43e021b9302b7ef01ee37972f02f55e2bd922229f7", + "params": {"ss58_format": 40} + }, + { + "public": + "b71b74b78761d0d2029ccb3f5cd90597ccf1a322a9f0c3859783371c12f8380a", + "address": "dmy5KHJG5PREmFLUqwho7rP2LqkRtPhWciK7GsNdg7H4NeJHf", + "decode": + "b71b74b78761d0d2029ccb3f5cd90597ccf1a322a9f0c3859783371c12f8380a", + "params": {"ss58_format": 78} + }, + { + "public": + "7c6a30de786130f5b39edd624968946c3fbd29faf7366490244387aac720e63c", + "address": "3weFynUUw1LdbNUjHRQj9BamG1aSW5fdjc1eEyY7wmgai4hd", + "decode": + "7c6a30de786130f5b39edd624968946c3fbd29faf7366490244387aac720e63c", + "params": {"ss58_format": 29} + }, + { + "public": + "af97eb1036b912f0bc149337b7c7a166cceb5b2d2314460a398c113e8e0d904a", + "address": "4fJypEdiHRcEKhEHwqgsrg28pPm8NbUAhUTc4558bDuZ99hB", + "decode": + "af97eb1036b912f0bc149337b7c7a166cceb5b2d2314460a398c113e8e0d904a", + "params": {"ss58_format": 36} + }, + { + "public": + "69674d0887057d0e3e51b1129d8a3daf0d2f4997923e1f1bdbffd92fe7812bee", + "address": "cZh7471h4FZXckXD6nbDVLXn8YTEoBxHQuAoj4923v91a64vi", + "decode": + "69674d0887057d0e3e51b1129d8a3daf0d2f4997923e1f1bdbffd92fe7812bee", + "params": {"ss58_format": 67} + }, + { + "public": + "06a2f8561943afdcbf999c71cece77705735879da9f57964725086216bf5273d", + "address": "QJLjYPC9x4pepgzVkq15CFHku6HUkK2JxRT4RKEoU142qA8", + "decode": + "06a2f8561943afdcbf999c71cece77705735879da9f57964725086216bf5273d", + "params": {"ss58_format": 4} + }, + { + "public": + "70dad652a56bca7a48b2cef29a1a0e3683775c5b8a97506d263f053706ca4a13", + "address": "fRjESswa8rNv4GtHeaqC67SYr6U98BCKD5tk8yRahAjEyTVg1", + "decode": + "70dad652a56bca7a48b2cef29a1a0e3683775c5b8a97506d263f053706ca4a13", + "params": {"ss58_format": 93} + }, + { + "public": + "ea01f56a8c3b3ef3f7c677208051b6f7cc8b8bec843a5bea79b4a32cb1da40bb", + "address": "6sx5nBQuV4YHr7MvHNZjrMXfVR61P4mYHupYPLMjgZda6qtt", + "decode": + "ea01f56a8c3b3ef3f7c677208051b6f7cc8b8bec843a5bea79b4a32cb1da40bb", + "params": {"ss58_format": 58} + }, + { + "public": + "41279082602c93de0d9172850a729723e3d7c624ca9a2ca09a36c8d2bfe4a1a6", + "address": "4ibqRuxcmauheUzLf98hDxUXuPw8ZGfv2YTiX5Vmke9L6S8r", + "decode": + "41279082602c93de0d9172850a729723e3d7c624ca9a2ca09a36c8d2bfe4a1a6", + "params": {"ss58_format": 37} + }, + { + "public": + "27c3b8e574362206ff0bd7bc53adb3cd45533364d472f1101af53b92f9a49ec6", + "address": "iQkpUbP2uuPzQoqeDBuhyBQKCNeZrLwCXpm9t9kajjhceWf", + "decode": + "27c3b8e574362206ff0bd7bc53adb3cd45533364d472f1101af53b92f9a49ec6", + "params": {"ss58_format": 7} + }, + { + "public": + "1ea79c751d94a7a1d3d78d2647456e13bf22eaabaf2395b5017795ba359e57d0", + "address": "7JHkWhGtVUxobP3irBnLuppRWt8VafryoK61GDcKrazq6fG3", + "decode": + "1ea79c751d94a7a1d3d78d2647456e13bf22eaabaf2395b5017795ba359e57d0", + "params": {"ss58_format": 63} + }, + { + "public": + "92338af9aa5f9f3495b6c956d83602afd21adf832ace1590c5ec3d4cc93baa92", + "address": "fyfuFXRfvTjKrWrAEqxMKj2Uxov6Dd9iFgMaPjwzHdNY9cmKj", + "decode": + "92338af9aa5f9f3495b6c956d83602afd21adf832ace1590c5ec3d4cc93baa92", + "params": {"ss58_format": 98} + }, + { + "public": + "031a6a0de3b41b0cfbc1ce682934179364b4bc0a2e905ba7f1a6f0396ed82f40", + "address": "bo2YPjCQfFKU2og9wKW7GdfckcnnCWynV1aHJ4uKPBDdAc8", + "decode": + "031a6a0de3b41b0cfbc1ce682934179364b4bc0a2e905ba7f1a6f0396ed82f40", + "params": {"ss58_format": 6} + }, + { + "public": + "7ce744746a899ff7f8b1eedb8bd810dcb3e2afcf713d2a4b8a8b10e4c89a345f", + "address": "d7dThk4bzSxKajTDokuyKMooEXqHY6yLmJQSPgnQPntFja42v", + "decode": + "7ce744746a899ff7f8b1eedb8bd810dcb3e2afcf713d2a4b8a8b10e4c89a345f", + "params": {"ss58_format": 72} + }, + { + "public": + "fd4d51e45357608572ad8bdcc1c6c78dab803b6018ac569b397b786613786f9d", + "address": "emU7JLHupaFcMSKL7a8MaupKLakcjhSwQCsJWs8TuqZQRCmWd", + "decode": + "fd4d51e45357608572ad8bdcc1c6c78dab803b6018ac569b397b786613786f9d", + "params": {"ss58_format": 87} + }, + { + "public": + "fda9518b15bc4675cb3d9cb7679829153cbe190f3b989793a391ee18f3e0aa6f", + "address": "cnXDstVxXrMmScBeGF4tDnBYxLHXR1Dz7Yqp2rSgDRuN8u37W", + "decode": + "fda9518b15bc4675cb3d9cb7679829153cbe190f3b989793a391ee18f3e0aa6f", + "params": {"ss58_format": 69} + }, + { + "public": + "99ea0cc100034bccf0910fa79814a35007f57612081885b708f24a6565433547", + "address": "3A1fHM9VQAChiZG2RBrAJrPXKWCNQR3GWsBSvSZMYKWFzUgD", + "decode": + "99ea0cc100034bccf0910fa79814a35007f57612081885b708f24a6565433547", + "params": {"ss58_format": 21} + }, + { + "public": + "f78cbc2782cfa95a57c003cb3a1a3459d01094c60b791cba5423e3f2c7216642", + "address": "dLSzwpph5WifaRtcyWEGDfK2nTdQWYXEGM9sqwyLCKkFjTk7h", + "decode": + "f78cbc2782cfa95a57c003cb3a1a3459d01094c60b791cba5423e3f2c7216642", + "params": {"ss58_format": 74} + }, + { + "public": + "22e9ae4870d4405e84918c5b1c1098a1d5698c05e8a13b662298786111d64de6", + "address": "f6YKbvaWGrjaFniRbKAGCBf2nYX5KdZ461zRwigj5AarmMTQK", + "decode": + "22e9ae4870d4405e84918c5b1c1098a1d5698c05e8a13b662298786111d64de6", + "params": {"ss58_format": 90} + }, + { + "public": + "9cc28100bbdc84bc31acb50b58a0d24287d9a9a8f9f90e9a804dbb473aca6380", + "address": "d7eBUMWw1i3ipxCYhBn9oKjBe16M1CixphArVFc83L155LBhW", + "decode": + "9cc28100bbdc84bc31acb50b58a0d24287d9a9a8f9f90e9a804dbb473aca6380", + "params": {"ss58_format": 72} + }, + { + "public": + "a06fa03a1865d4c346f540c6df7bd81c1f0afa58f49b9f16bb92718af6e0df9b", + "address": "fKMvcnYuD9R4FmSRa8CkcXBpgu86MK8oH6MDYVzXobtNLhHbd", + "decode": + "a06fa03a1865d4c346f540c6df7bd81c1f0afa58f49b9f16bb92718af6e0df9b", + "params": {"ss58_format": 92} + }, + { + "public": + "664dff069b1af9828a6ed0dda6d78c0aa7bcd57b0a4f9ff0df85808f2fb6be28", + "address": "6pyQ3ftY94PTzf6QoJGzepfoH6neHfRe9RUo4CqpNd9MXDvv", + "decode": + "664dff069b1af9828a6ed0dda6d78c0aa7bcd57b0a4f9ff0df85808f2fb6be28", + "params": {"ss58_format": 58} + }, + { + "public": + "8281018cb8edbdfe8558fd1267214f7bd14424b87cfa862f6e8507f1366dbfb9", + "address": "7Em1aHR8kuBYZ9zaZg1PH97rnxq4v7PSAHU5Yg52KPkByzTC", + "decode": + "8281018cb8edbdfe8558fd1267214f7bd14424b87cfa862f6e8507f1366dbfb9", + "params": {"ss58_format": 62} + }, + { + "public": + "7ea05d97892b0c102e6252ccfa46db114f9971804e27b49dbd9d72af041d91a5", + "address": "4jzSEgf6RMrgiebBUeAAf3HxGTYQrhLfri8VZasDHZZevB4X", + "decode": + "7ea05d97892b0c102e6252ccfa46db114f9971804e27b49dbd9d72af041d91a5", + "params": {"ss58_format": 37} + }, + { + "public": + "4060b22e41cd6fe51fd9f6adb3393490662097fbec2ae862cf1f6355d822d11a", + "address": "ezAc28DCan48isb1F2bsPmxSUdqJ9yrW3kpSRHWQBYmXBR1rc", + "decode": + "4060b22e41cd6fe51fd9f6adb3393490662097fbec2ae862cf1f6355d822d11a", + "params": {"ss58_format": 89} + }, + { + "public": + "9311bb662ce2386b3baa24f672b586d2efa86993e6deff8bc79c46b5deb2bab1", + "address": "fyfvPXf1jkLZXC3LG8QDNd1ikaG1EZLHNpYPydb9Z4R24Dqm1", + "decode": + "9311bb662ce2386b3baa24f672b586d2efa86993e6deff8bc79c46b5deb2bab1", + "params": {"ss58_format": 98} + }, + { + "public": + "a146f2b45dcd0ca7b92e8b05651b38c8a6a4faacb81dbd6466a2c527d73ad297", + "address": "dfaCUc4BQspER1B2Gu2jjL7AjGCAWbz1oBkMmC7RuZQFjJTEQ", + "decode": + "a146f2b45dcd0ca7b92e8b05651b38c8a6a4faacb81dbd6466a2c527d73ad297", + "params": {"ss58_format": 77} + }, + { + "public": + "a44401332b58adce5bbbd687c889e2f30958db240efc959fc0be9cf250c5ba83", + "address": "6TE11kG33cNWFr2VnBxyNz1ZFZhFM9jbWW8QDDwk6NQt44md", + "decode": + "a44401332b58adce5bbbd687c889e2f30958db240efc959fc0be9cf250c5ba83", + "params": {"ss58_format": 54} + }, + { + "public": + "a5049d07d93b9958ad54acd01bb518a9acdf6129ccfc3098ef1e38d15bc70e51", + "address": "4A8pHVvDCNup1u2rRyaeCbdUGttGSZRg3U57wjfU5AQC4xtn", + "decode": + "a5049d07d93b9958ad54acd01bb518a9acdf6129ccfc3098ef1e38d15bc70e51", + "params": {"ss58_format": 31} + }, + { + "public": + "1eb867a3b182e1a8e9059c5a48c40837f154181f3e78778b09fb372836baefe2", + "address": "6Cdaf8XLg1utqys8o2cigsaFEUnL3tVMpbiQXwMKEpHmSf51", + "decode": + "1eb867a3b182e1a8e9059c5a48c40837f154181f3e78778b09fb372836baefe2", + "params": {"ss58_format": 52} + }, + { + "public": + "ffe1a34dd5fe983933448402e9eb2cd184e806a951553512db6edb86f685fea2", + "address": "7625kPgQ4fao3pGMewDmBxnm49dFnELaPWunGCfE9iuQcK3y", + "decode": + "ffe1a34dd5fe983933448402e9eb2cd184e806a951553512db6edb86f685fea2", + "params": {"ss58_format": 60} + }, + { + "public": + "0ea5cf25d025f0a8006974815f8e748d2b59104e21052026211d8b1df4c1123f", + "address": "2W96obBN5LP3m6Uj8SVc8xfLKBcfAykbpmJuaagNUhbcEu7m", + "decode": + "0ea5cf25d025f0a8006974815f8e748d2b59104e21052026211d8b1df4c1123f", + "params": {"ss58_format": 15} + }, + { + "public": + "e6a0357aa705fb10b04dae1f4b55d0178d420d70d1d3569e43fd4dd0178e7392", + "address": "zJKw3fXGy2vSMVmbK5zPAarhcGRUQ6uECNsz4396RiJC9hC", + "decode": + "e6a0357aa705fb10b04dae1f4b55d0178d420d70d1d3569e43fd4dd0178e7392", + "params": {"ss58_format": 9} + }, + { + "public": + "698200198233d9f83711c969828132063191662a6a59086037a12a5f15b795df", + "address": "eKsEeiwMYV14LaoyxkADWBBH6adpCZHxJSKWKYkWN3XrPLZTt", + "decode": + "698200198233d9f83711c969828132063191662a6a59086037a12a5f15b795df", + "params": {"ss58_format": 83} + }, + { + "public": + "a7edaa2c84bb2f0058de1aca05e6474600ca1bc48843ab857208add82993698a", + "address": "dmxjQxg6tqiYgJGkhZPco8cx5B1XxM6BEUXXWJqgzc4LK6rDA", + "decode": + "a7edaa2c84bb2f0058de1aca05e6474600ca1bc48843ab857208add82993698a", + "params": {"ss58_format": 78} + }, + { + "public": + "c4a971758d5b893f69c72b81c9d40c22933199b60b73413ca94c289cbb7100d8", + "address": "5GWZaTfBHVqf2pCGYnpZSVnU92QRmgaTeTnkw7NoXyn4BHCU", + "decode": + "c4a971758d5b893f69c72b81c9d40c22933199b60b73413ca94c289cbb7100d8", + "params": {"ss58_format": 42} + }, + { + "public": + "37ae8e89a33f0cc00f6c1b7c25ab4ae0856d8f6e853459c041798d050a3181f6", + "address": "fRhwUzhcvQrrYHTSMu7oirUb3jp5V4bPnhSU527oboeF1yyBS", + "decode": + "37ae8e89a33f0cc00f6c1b7c25ab4ae0856d8f6e853459c041798d050a3181f6", + "params": {"ss58_format": 93} + }, + { + "public": + "ae59b25f0c068154553c60afafa4a1aaad75a8614f89cad401f25bcc0f25d12e", + "address": "cZifTNFeKLxHf2CC3Th7Wc1zaBxyVtmL1Z3cC1braX4zqZoT7", + "decode": + "ae59b25f0c068154553c60afafa4a1aaad75a8614f89cad401f25bcc0f25d12e", + "params": {"ss58_format": 67} + }, + { + "public": + "969f9fe1a21bf68affb258b09479900e96752f1f4ca1dab252f38b17175d6a52", + "address": "ctsGzcuaHTLdu5trKYtZxbSkLeX6QhZjxDMunR7RbsxydvpLc", + "decode": + "969f9fe1a21bf68affb258b09479900e96752f1f4ca1dab252f38b17175d6a52", + "params": {"ss58_format": 70} + }, + { + "public": + "ff330a0aaadeb5c0da776de030a7798729b9e322f22c0ddcca5e093c01db4289", + "address": "6PVa5BWJf8XXMcQvCGDuyt9hyiJu16b9G2oXGue6EZwSM7pa", + "decode": + "ff330a0aaadeb5c0da776de030a7798729b9e322f22c0ddcca5e093c01db4289", + "params": {"ss58_format": 53} + } +]; diff --git a/example/lib/test/address/trx/test_vector.dart b/example/lib/test/address/trx/test_vector.dart new file mode 100644 index 0000000..651d6c2 --- /dev/null +++ b/example/lib/test/address/trx/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVecotr = [ + { + "public": + "0311106644fa69df8dc8aab0d476ec34d9083436ed396a3c6e1cfd792bce08d344", + "address": "TDCEx9fU3UVuMPPXpGeX6BXjwsVo4vGuNh", + "decode": "235f6999f99545ea37965e68031050af8a0cbd6a", + "params": {} + }, + { + "public": + "03b0ed109cf36bf261906a3dbbf3be8d27e0676d97e0c1b2d39c1b3fb390c3b75d", + "address": "TToBpczGoKTbom3DtQR4BhZxvs8hmBi96y", + "decode": "c38d1e981ee3126804e7db1efeedb0cc00548e3f", + "params": {} + }, + { + "public": + "02710dc0308710ddfe6bab2caeafcf9b71e579bb874264d5eb11cf3ff40814ad77", + "address": "TTj497PF6M4eCQXRirihoAiwsZcC2fshQ7", + "decode": "c2c50b306122f1419625311c9de0d842213cce76", + "params": {} + }, + { + "public": + "03c13fb7ca977c4a9365f24b0a9c7bd865f6fe4ea2970c62c75fbc5bc956892b9c", + "address": "TFkyDS2Lv9sYbmemHSLhj3ZCiWVEKCe2DG", + "decode": "3f80412f7295e3002a82a61e0432aa5dbef9228c", + "params": {} + }, + { + "public": + "0259890d36b28489d7fe21ae86f3a0fcd661c4ec9cbe81fde7f662805c2d1b4cbe", + "address": "TQdakaPoAGSHLNUYuAG9gcGwXM6LzNpySn", + "decode": "a0d3b948499417a38042661f74bd99504ddfa880", + "params": {} + }, + { + "public": + "0310b330b29d625b82da6329ce3df142f440f4e54e7a80375dd976ec8866c4b893", + "address": "TQYk4S413skufWdZv94GbBwjnK2UWmFu9J", + "decode": "9fe969ec7fecae4ff4071c1041c8190fb43f06c6", + "params": {} + }, + { + "public": + "03f86e65345d35641fb0623b96ee763ce33fa89a55fd0486af3b90001a6410825d", + "address": "TKv6EENv2hPC8xSRJ53SctaZDrCNycMm7s", + "decode": "6d1a5b31e10d110b3cb8f90367428fffad3ecef0", + "params": {} + }, + { + "public": + "0362ae8d03cac3d50365d4ba9fa5cbd23404f101a0403f2078ed89fa9efb287409", + "address": "TRN3T1rascS98QZtJiPYCQmYQQPzhkugnU", + "decode": "a8db7ad913104874fcfc187a8f1f752d3dd4b541", + "params": {} + }, + { + "public": + "027e5310c3e4726300f39c28e57aeb20000c2997c8b2e6a550a161afc65b0d43b0", + "address": "TBxzCFh2qkdpfQiCzoye1beNG4XRMPNaa4", + "decode": "15e58f931648c932de8720070d2a5b7182e9fa5b", + "params": {} + }, + { + "public": + "026d2c1798b96566f8d29566edc32d733d44364d7937eca1f91767cdded6a0561f", + "address": "TDf9vkbYP9BLmhePBuY6Xov2PkKfu8YPW6", + "decode": "28767316dede3537b87e61de9ddf4c43b519622e", + "params": {} + }, + { + "public": + "03dd45c179760c8a2bc9a9cf724661b8736cc7ed8f4f8a1dc9b05170d97d5044c1", + "address": "TNSmmai2ox5aAeB8ZTnSyt9f82oM4jctNL", + "decode": "88d817ea5fa666d44d23d2dcbed8feef8a6801fa", + "params": {} + }, + { + "public": + "0232425e5dac928999bdc9cc474e6eb4f89558c84aa85eec8e936f937cfb13b1dc", + "address": "TTkhJLgszJvA5dhC59wjxBZpRsGnDK9kh9", + "decode": "c3147a81fef3aaf489ec767ec547b1ad9af7fb0a", + "params": {} + }, + { + "public": + "029f69a7291ea4eec531f7058924493a4431227405c69909b894029a9b116388a0", + "address": "TDFnsj3rgu6R5V2JWWgDD1vBf4R55eBufW", + "decode": "240b4f188fe2d151176a612140f1d63daf5983d7", + "params": {} + }, + { + "public": + "02bd99d5ddd43c43feaa560df77234e2ef554ded81705d61f2e332bd9f67e861ef", + "address": "TBRMF3bjC1X4pbbp7kb8AF4hqetpYwUVb8", + "decode": "0fe9d1f5a9c2d29c35b41dd1e59689ace60670a0", + "params": {} + }, + { + "public": + "02147cb6d6f6493b6311b4503c2bfa0a26225a538d81c6effb7cb160a185dd37a6", + "address": "TMTmDXRPSdaMHmiFp5vSHcnGCdMGeF8yt6", + "decode": "7e0fec170526890dfe2b5df5ff31d0c6a0f92dfb", + "params": {} + }, + { + "public": + "03fb74f7b0202be574d7f74d38423b811f38edced99e8e0f36cd4dab28f8a2246c", + "address": "TQWCsPrGr513yFtzSjvp3h8A3VefZnjzS2", + "decode": "9f6e8ba4b40c170910d81b08bc827d1959b23428", + "params": {} + }, + { + "public": + "0269e81a9250d45d59ffd1c199450c439f1d9fae687f95c7c880642f1165a27e13", + "address": "TX7t2cw1jpibN1UBwxuTx9KNTmPR6wRLzi", + "decode": "e7fe8c1455ccda33f93f205b8ddf3ccd6f94b6cc", + "params": {} + }, + { + "public": + "0221df5327a803d6b09fdea867b9fcf7715d65b55d4cd2d77fd8606686432adce2", + "address": "TMDXRbVLgfFrPWdQPpTZYx7uMM6radjgaf", + "decode": "7b5e95fb6e33d4fafbc7c8d83058f2f1446d62d5", + "params": {} + }, + { + "public": + "0319071f5e95e4d05edaed5010972e73eca1764c23fbd50bd9446d6ccb74654324", + "address": "TXm26aJTTE22rDAGxoDEyWUcrkLzB5U8US", + "decode": "ef04ac3979cef1f1b4c06a7ff94255f7e28af506", + "params": {} + }, + { + "public": + "0237ce721037e2cf7da03ea81052e416abe7ca57ab99b789b513402be63c6e97b4", + "address": "TRN6cPbnhbXQbNhWy9hvftzrv8hvM2Cu2Y", + "decode": "a8de1e7bc323ca398fe65100fa10c1733ba79971", + "params": {} + }, + { + "public": + "03776f914f3d2c8569e8c2f58d9a0643e94e3f34fa570008c039edc726b530586c", + "address": "TA9ULfRLKR8hszmtpfm6Je6GBtQ7YdjvbV", + "decode": "01f0f690426188393dadc8fb102a198bcf16115b", + "params": {} + }, + { + "public": + "02b743ac8c367d16b4f91ce0f357af42e131c8027345740b54a707090f4c0f148f", + "address": "TXUaWzMdTchXp1wqrYKATUgcRXUVnBg8s7", + "decode": "ebe8aa4039b445fbfba0bbdb62ce45dc8e4964d2", + "params": {} + }, + { + "public": + "033f9ba5693c714c1b746050d5999b215947cec29a6e8765f6e08acd9f0ee98228", + "address": "TVDi8E36VxpJmBdxktQ42qVQMZgZHBpVqP", + "decode": "d328864470d125a29a2b2727f6fce7ad4345660a", + "params": {} + }, + { + "public": + "02f1e9640d18de5fc7cb0dadb62769a2e801de884b4b44dc65bf53adc9742f5852", + "address": "TPy9LjjjWdsVDJEvu6NH7w8mHV3RmfAPKe", + "decode": "998eb4859c5f50980aabd49546c5cf99001f7ad3", + "params": {} + }, + { + "public": + "02f7d99292969ec54dab5d126673167dcfd7b9e158559220368f2ae22a3688b845", + "address": "TAbDeDC2kD2z9tjpifq8WZmJw18PQKXTmD", + "decode": "06cf826372c0f2a5b5d724ba310c3981d17ed7f2", + "params": {} + }, + { + "public": + "039ec6daaef7e05dd828f9da1d48a19d04ca65b6fa510f41d00009b66b2010dc9d", + "address": "THMY3HZEsfLc9R8vbiGTKyCkkggxueHhv2", + "decode": "5101ec91fe827613b88760eb846e88e2ad32bcbe", + "params": {} + }, + { + "public": + "0226bd6a110dc99af29cfa4fb6cf626784197859336c6f9174dfe6e08a0b374fab", + "address": "TTPkvm4ZUHifwD4SdPVrgxhCt8Mkct6N6M", + "decode": "bf1ec594705a014e07e9090545d298052d4e8e5c", + "params": {} + }, + { + "public": + "02f24c3906e7b78beadef7cd16bcd597b52a7b05cbdd40a08b0307f026fdb82f7e", + "address": "TJuzjGX6TjAVbbWMDLhjeCxXED8cHJWgCF", + "decode": "621da3ca7e7175fef1649cc2002eaa6b5ad56ddb", + "params": {} + }, + { + "public": + "0383b6a6ab70c2153e9c351ad849927a96cf7a6169afd4d647a72cd42cbb4d82b2", + "address": "TL4RmmTiy65TXKZQ57zvMSf4LSDggmEBiw", + "decode": "6eadff8a2e5f9373835a1c701e677f7a78fdee8d", + "params": {} + }, + { + "public": + "03bd5cb8bf42d82a4ba83a1d228339794449f44ed30381f89e87de9996f5fb6b18", + "address": "TFYoawKt5moTWGERoqQe5dVfyMU4nLBvMT", + "decode": "3d33399aee980c38c7a8538f67c82503b839f8c7", + "params": {} + }, + { + "public": + "03f05d765972ed87b49c6b5d95719ac97087bda56ffef144fdc6659690083e3e2b", + "address": "TTbLJ5aDgb3HdnzLYrHZmEaKaaLM7ArWWk", + "decode": "c14f33834ae10b8bed492d9f688fcfc55607bbe1", + "params": {} + }, + { + "public": + "0229b0883dae8b6a39f96ae68bd739da9f3e095f1115fbeb20d9e105cc21e375cb", + "address": "TCsHTME2CfnBeW6XG8XWcBTT7o8bRwn81W", + "decode": "1fc99957c4daf51c947b9c524d3a492bf6a85b39", + "params": {} + }, + { + "public": + "02c14d1aebf817f569704c8697ee3ef915bfd4c67d865dbba4d2b14d3ff9613c72", + "address": "TVtkjDaP2qdFUFiXcBMpu5bPdkPdtZEjK4", + "decode": "da8aeb8d68c5bfb5124506f7fbf7c5175d105bbd", + "params": {} + }, + { + "public": + "03715d431589a48695c45b7fba50c7ab3272e07834fd40f05324432ee57bf190c6", + "address": "TPwQ2Y29GzWsL1Dje9ps6WcvJL9dEqqpf9", + "decode": "993a21f4a54a1f4c65f55132971b591bba80e71e", + "params": {} + }, + { + "public": + "038069f94a08c8a3e925869ed7cbdb3fde87f1078a2272a90392b5abae9c4ca076", + "address": "TDm2Zqdta6ha8RD55isr28A2CnyyTqpfRX", + "decode": "2992cd113099e87a84f827cbbeeeba3bc0577083", + "params": {} + }, + { + "public": + "03715cfd009ae31314184417aa0d65a8341fef4164869a3a156cd7b1f99963e6d9", + "address": "TJfCRtxhxdr8foWGD2S8tziPXEkjrRpJLj", + "decode": "5f512ade7a146f6d437b47ed635abd08f5201c42", + "params": {} + }, + { + "public": + "033fc169d968ea6a3bcb226acc6817e8604451d8eb81ca609dfad59c753be74824", + "address": "TWiYk7G44LAimR2XgCF1dPZnzSjy97zpep", + "decode": "e394e1cc3068e70725cc935f0a7e08576c33befb", + "params": {} + }, + { + "public": + "02fbb6dbbaabef8a2ed85d74692c2974e7999f4f7b9022d36d3a70d1537a263bc2", + "address": "TKo81mbUjZVY3f2GdpBHvf3b3piBxpgGv2", + "decode": "6bc8ef45c86a09c7940ce237f4f88e9ef158da20", + "params": {} + }, + { + "public": + "03809ea2cc0b6617a42cc35e3a974f7f1cf7fede6f1d610e80d09f5b9f03b28b07", + "address": "TV17H8xf6TszEc7YxWBT77z4RjdtEntA9s", + "decode": "d0c671d6c52b5aca4bcfb9f203dd079fe0a4c1a5", + "params": {} + }, + { + "public": + "031c4ca154cba0b945ae99c41ae3c5c8c7489d8e2dccfc5d29f5e08296581f8e51", + "address": "TGC9KxiznmWLTpXBFnpVN4fyDxVzME78VL", + "decode": "44431860ce14032928f11ae283c458d6ff3d2ef8", + "params": {} + }, + { + "public": + "032e6c07a2f98944c5c68bcebeeaee21e7603d523d91e5d6401c493f435d25dbfa", + "address": "TDSZG3WTzVxgErEL6Ep42FCHMn9WqmFuUq", + "decode": "261484e6fbb6959ad8ceb0686206b248bde6a54f", + "params": {} + }, + { + "public": + "02ab5d35e41ccc44aa95bbd745b861b5b0fafb2546461fac2d23ba5184354e3481", + "address": "THvBsbHPndRnxR5QntsjtvPpuifZzGm6Tr", + "decode": "572ed0efb301724abb5fc23740601b29582e60ef", + "params": {} + }, + { + "public": + "02ef6ddd8f00ff7257bea4b6de006d1807dd225222d3fc0827c7c084188a2271f3", + "address": "TGm1wFYrtHX7bQtWAJwMWcsxAqHC9kVWsp", + "decode": "4a7aa6dd12ea556e5c5b4cde6d38272a6571d799", + "params": {} + }, + { + "public": + "03215735ca74ff0932f78516060a9044faca8f7b815ae88eee33259b32bd32a027", + "address": "TXwu9UKrAyjCxxDQohYQs8PsUa7JYVVY9r", + "decode": "f113725c4102ed69bbb31d5e620f78b4ea35053a", + "params": {} + }, + { + "public": + "02d71eeee94f2f7aae2449c1431539afe0d968315db47aa4f757b0a353ee6c739b", + "address": "TM2m8tpVq1w2vYYJ6CAWVZVXuoALFjGFGs", + "decode": "795574df1eb81ced137e42c7935d28bfae985576", + "params": {} + }, + { + "public": + "02635c905fd480df0e20ff283aad09f72fff57f921b55db8d44e071767b94b3397", + "address": "TGKMWVUS8zpN3sFosD1pvUuoACttiJXg1K", + "decode": "45a02cf4b8b46882e15083df0912b3562310a504", + "params": {} + }, + { + "public": + "033c76a8acada7a150e84dea1a55d490d5c01d9196d6203f38b119888d3215bc4e", + "address": "TKhEyg2uHEufhEwHyr48X7dS2MzWkVmAUU", + "decode": "6aac4084f3dad27f256cc0d42acbafe77390c9ca", + "params": {} + }, + { + "public": + "039c2d0c7188271d8f7f7601fd5712e1b4256e9daaec62824d832831a9a6f1f3aa", + "address": "TC34q8yzoVTevDB5tdFP6RaSm6WFfqctqJ", + "decode": "16ab1835c926d5936c94e7bf05b349ba7fa4edcb", + "params": {} + }, + { + "public": + "0281b8b540e11794dc62e3692cf7bfff102816584932e62c5c7f2d0b2eb551db8f", + "address": "TYxufGo79fSH75LRXNyGXgZeXgpg4hqqps", + "decode": "fc3c6ad92740af0d8e9bfbe4f2c005efdc7a9ca5", + "params": {} + }, + { + "public": + "03c190fd0a61b7710c8f49d4954707b0a4b6e8a5b04470aa6b15b55360315bb160", + "address": "TYc1FGBQ67LTbhebDxjykCHXnjpZKpGLPt", + "decode": "f848585c2a61359e10bf54d21bba116afb2da6f4", + "params": {} + } +]; diff --git a/example/lib/test/address/trx/trx_test.dart b/example/lib/test/address/trx/trx_test.dart new file mode 100644 index 0000000..fafad74 --- /dev/null +++ b/example/lib/test/address/trx/trx_test.dart @@ -0,0 +1,17 @@ +import 'package:blockchain_utils/bip/address/trx_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVecotr; + +void trxAddressTest() { + for (final i in testVecotr) { + final params = Map.from(i["params"]); + + final z = TrxAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = TrxAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/xlm/test_vector.dart b/example/lib/test/address/xlm/test_vector.dart new file mode 100644 index 0000000..6c2e30c --- /dev/null +++ b/example/lib/test/address/xlm/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "7b07983499c93f4eb256d7f6a42acf13ef098b20022e904f6c82f13805166c9f", + "address": "GB5QPGBUTHET6TVSK3L7NJBKZ4J66CMLEABC5ECPNSBPCOAFCZWJ6KSN", + "decode": + "7b07983499c93f4eb256d7f6a42acf13ef098b20022e904f6c82f13805166c9f", + "params": {"addr_type": 48} + }, + { + "public": + "40de01bb8215216a18f08ea068a1c2adaf41d11b7c5558de355c8c3a7f6841ed", + "address": "GBAN4AN3QIKSC2QY6CHKA2FBYKW26QORDN6FKWG6GVOIYOT7NBA633GO", + "decode": + "40de01bb8215216a18f08ea068a1c2adaf41d11b7c5558de355c8c3a7f6841ed", + "params": {"addr_type": 48} + }, + { + "public": + "3248f7acd7b13fdfc8271e4af486300cdabfa8d0d406eb1485a9b93858f73836", + "address": "GAZER55M26YT7X6IE4PEV5EGGAGNVP5I2DKAN2YUQWU3SOCY644DM6NS", + "decode": + "3248f7acd7b13fdfc8271e4af486300cdabfa8d0d406eb1485a9b93858f73836", + "params": {"addr_type": 48} + }, + { + "public": + "faa34f613bfce260627acd14cd173e58cd3af0fb081375000602abcf7b065397", + "address": "GD5KGT3BHP6OEYDCPLGRJTIXHZMM2OXQ7MEBG5IAAYBKXT33AZJZOOKJ", + "decode": + "faa34f613bfce260627acd14cd173e58cd3af0fb081375000602abcf7b065397", + "params": {"addr_type": 48} + }, + { + "public": + "37cce7abd3c2a2d20894479d4d39f1ec758b447451425f786ab65240efd8dcdb", + "address": "GA34ZZ5L2PBKFUQISRDZ2TJZ6HWHLC2EORIUEX3YNK3FEQHP3DONXU77", + "decode": + "37cce7abd3c2a2d20894479d4d39f1ec758b447451425f786ab65240efd8dcdb", + "params": {"addr_type": 48} + }, + { + "public": + "cb73637019a80f9d59d4dec589b6632a38e62ce7a0bb93e2fbcfa28f590c8533", + "address": "GDFXGY3QDGUA7HKZ2TPMLCNWMMVDRZRM46QLXE7C7PH2FD2ZBSCTGB4P", + "decode": + "cb73637019a80f9d59d4dec589b6632a38e62ce7a0bb93e2fbcfa28f590c8533", + "params": {"addr_type": 48} + }, + { + "public": + "f795e66cfe7cc82ab8e79fa0169d68865c3e77d8bdb75b13aec3c5c55a746435", + "address": "GD3ZLZTM7Z6MQKVY46P2AFU5NCDFYPTX3C63OWYTV3B4LRK2ORSDKW22", + "decode": + "f795e66cfe7cc82ab8e79fa0169d68865c3e77d8bdb75b13aec3c5c55a746435", + "params": {"addr_type": 48} + }, + { + "public": + "c2b22e349c2df74b6196773aa140ad7223d05d38791c2a18107d41a6e63cdb06", + "address": "GDBLELRUTQW7OS3BSZ3TVIKAVVZCHUC5HB4RYKQYCB6UDJXGHTNQMSNC", + "decode": + "c2b22e349c2df74b6196773aa140ad7223d05d38791c2a18107d41a6e63cdb06", + "params": {"addr_type": 48} + }, + { + "public": + "7d6672f2b9d362f756d707c096ce728cb6217c11f88d4ba2d135cd30cdce3cc5", + "address": "GB6WM4XSXHJWF52W24D4BFWOOKGLMIL4CH4I2S5C2E242MGNZY6MLFAG", + "decode": + "7d6672f2b9d362f756d707c096ce728cb6217c11f88d4ba2d135cd30cdce3cc5", + "params": {"addr_type": 48} + }, + { + "public": + "8ddad2c7cb52da6e7b9c6422f1bf4d822a5e4500d0ad83e2c8e3b0002bde5251", + "address": "GCG5VUWHZNJNU3T3TRSCF4N7JWBCUXSFADIK3A7CZDR3AABL3ZJFCSYU", + "decode": + "8ddad2c7cb52da6e7b9c6422f1bf4d822a5e4500d0ad83e2c8e3b0002bde5251", + "params": {"addr_type": 48} + }, + { + "public": + "e5a25f5195b1155806ad036f8133340b8f3338b56118031a3994ffdad10d6222", + "address": "GDS2EX2RSWYRKWAGVUBW7AJTGQFY6MZYWVQRQAY2HGKP7WWRBVRCFUG6", + "decode": + "e5a25f5195b1155806ad036f8133340b8f3338b56118031a3994ffdad10d6222", + "params": {"addr_type": 48} + }, + { + "public": + "afe1a328dc5cdaee0036eeb310b04873e0dd328d4492f17d0bc6fe980c145cc6", + "address": "GCX6DIZI3RONV3QAG3XLGEFQJBZ6BXJSRVCJF4L5BPDP5GAMCROMNYHH", + "decode": + "afe1a328dc5cdaee0036eeb310b04873e0dd328d4492f17d0bc6fe980c145cc6", + "params": {"addr_type": 48} + }, + { + "public": + "b97a2be5c987082aeed3cccdd54396e80b40c333f936e199033c2361ee943da6", + "address": "GC4XUK7FZGDQQKXO2PGM3VKDS3UAWQGDGP4TNYMZAM6CGYPOSQ62NCLF", + "decode": + "b97a2be5c987082aeed3cccdd54396e80b40c333f936e199033c2361ee943da6", + "params": {"addr_type": 48} + }, + { + "public": + "fb14d733cb207bd87f48cba5c42697cc2b3a68d6b7b93e5687868b4d234bdff4", + "address": "GD5RJVZTZMQHXWD7JDF2LRBGS7GCWOTI2233SPSWQ6DIWTJDJPP7JFI6", + "decode": + "fb14d733cb207bd87f48cba5c42697cc2b3a68d6b7b93e5687868b4d234bdff4", + "params": {"addr_type": 48} + }, + { + "public": + "4ab38df1428beff0e2d099b638f51a6ffda510d938d3a4d4aaa538fa85d8ae96", + "address": "GBFLHDPRIKF674HC2CM3MOHVDJX73JIQ3E4NHJGUVKSTR6UF3CXJMP3I", + "decode": + "4ab38df1428beff0e2d099b638f51a6ffda510d938d3a4d4aaa538fa85d8ae96", + "params": {"addr_type": 48} + }, + { + "public": + "9615e6c1ba1a1db25bc63b71d47a902a70653ad3f958f49bcd4eaca9f4a0d638", + "address": "GCLBLZWBXINB3MS3YY5XDVD2SAVHAZJ22P4VR5E3ZVHKZKPUUDLDRPD7", + "decode": + "9615e6c1ba1a1db25bc63b71d47a902a70653ad3f958f49bcd4eaca9f4a0d638", + "params": {"addr_type": 48} + }, + { + "public": + "d3478ca7ffeb8fac5b1d210f6bdf2eb990cd57f6bde4f0c8a0e9f0d355216c42", + "address": "GDJUPDFH77VY7LC3DUQQ6267F24ZBTKX6266J4GIUDU7BU2VEFWEFHZA", + "decode": + "d3478ca7ffeb8fac5b1d210f6bdf2eb990cd57f6bde4f0c8a0e9f0d355216c42", + "params": {"addr_type": 48} + }, + { + "public": + "c61b1734e48e5cd977a55aee4c38a0b59f523c1a11b864ab56022804bb23c2e7", + "address": "GDDBWFZU4SHFZWLXUVNO4TBYUC2Z6UR4DII3QZFLKYBCQBF3EPBOOEOL", + "decode": + "c61b1734e48e5cd977a55aee4c38a0b59f523c1a11b864ab56022804bb23c2e7", + "params": {"addr_type": 48} + }, + { + "public": + "4f4852eee9bbadea1c7f99d23db84a340e867e6f4fb1bbc734252f72b9daf291", + "address": "GBHUQUXO5G5232Q4P6M5EPNYJI2A5BT6N5H3DO6HGQSS64VZ3LZJD7H6", + "decode": + "4f4852eee9bbadea1c7f99d23db84a340e867e6f4fb1bbc734252f72b9daf291", + "params": {"addr_type": 48} + }, + { + "public": + "daaa18cd912e322fdda21ad4152a422fce3f0c74f7fe01d91a35792679d787c8", + "address": "GDNKUGGNSEXDEL65UINNIFJKIIX44PYMOT374AOZDI2XSJTZ26D4R6QF", + "decode": + "daaa18cd912e322fdda21ad4152a422fce3f0c74f7fe01d91a35792679d787c8", + "params": {"addr_type": 48} + }, + { + "public": + "f0a1bee9422119af8ccdbc365ab6e581fef4e17909e22eebad8fdfad5254dc87", + "address": "GDYKDPXJIIQRTL4MZW6DMWVW4WA755HBPEE6ELXLVWH57LKSKTOIOTNX", + "decode": + "f0a1bee9422119af8ccdbc365ab6e581fef4e17909e22eebad8fdfad5254dc87", + "params": {"addr_type": 48} + }, + { + "public": + "027996479ec25f1705393b17badb24afbd45601aad6d926348d42a7ff29093c3", + "address": "GABHTFSHT3BF6FYFHE5RPOW3ESX32RLADKWW3ETDJDKCU77SSCJ4HQ74", + "decode": + "027996479ec25f1705393b17badb24afbd45601aad6d926348d42a7ff29093c3", + "params": {"addr_type": 48} + }, + { + "public": + "10448d9f63362844568aa15e91d3aea4411fa712c5ab5ca6b3262fc34b55175a", + "address": "GAIEJDM7MM3CQRCWRKQV5EOTV2SECH5HCLC2WXFGWMTC7Q2LKULVVMDE", + "decode": + "10448d9f63362844568aa15e91d3aea4411fa712c5ab5ca6b3262fc34b55175a", + "params": {"addr_type": 48} + }, + { + "public": + "e0abb05e1424468139dc53712f2cb8a2c9700ded474b69e31b7ab3542f1da8e2", + "address": "GDQKXMC6CQSENAJZ3RJXCLZMXCRMS4AN5VDUW2PDDN5LGVBPDWUOF5LB", + "decode": + "e0abb05e1424468139dc53712f2cb8a2c9700ded474b69e31b7ab3542f1da8e2", + "params": {"addr_type": 48} + }, + { + "public": + "3b24061ac7ef39a710700b91a54bef95d1489f9c16305cb05b7f6448093667fc", + "address": "GA5SIBQ2Y7XTTJYQOAFZDJKL56K5CSE7TQLDAXFQLN7WISAJGZT7YBXL", + "decode": + "3b24061ac7ef39a710700b91a54bef95d1489f9c16305cb05b7f6448093667fc", + "params": {"addr_type": 48} + }, + { + "public": + "ee8a3ed5b90eeb8717a9ee0a81d8decd4240cd836bd1086e6ea7f505d6b4652c", + "address": "GDXIUPWVXEHOXBYXVHXAVAOY33GUEQGNQNV5CCDON2T7KBOWWRSSZ4Q4", + "decode": + "ee8a3ed5b90eeb8717a9ee0a81d8decd4240cd836bd1086e6ea7f505d6b4652c", + "params": {"addr_type": 48} + }, + { + "public": + "6105ac585064f885dfdd76927ac05510017d82945862914c8184f10b47902062", + "address": "GBQQLLCYKBSPRBO73V3JE6WAKUIAC7MCSRMGFEKMQGCPCC2HSAQGFR4K", + "decode": + "6105ac585064f885dfdd76927ac05510017d82945862914c8184f10b47902062", + "params": {"addr_type": 48} + }, + { + "public": + "4d7aafca55cb79346c282db5b88157fc9aedd62ea4d867481fdfc9c3e7b9c1cc", + "address": "GBGXVL6KKXFXSNDMFAW3LOEBK76JV3OWF2SNQZ2ID7P4TQ7HXHA4YBFF", + "decode": + "4d7aafca55cb79346c282db5b88157fc9aedd62ea4d867481fdfc9c3e7b9c1cc", + "params": {"addr_type": 48} + }, + { + "public": + "ebc8fa83db3f806fe38f4f6d5a3434836ce07011bd5530f73d30bfac8e3484e9", + "address": "GDV4R6UD3M7YA37DR5HW2WRUGSBWZYDQCG6VKMHXHUYL7LEOGSCOSO2V", + "decode": + "ebc8fa83db3f806fe38f4f6d5a3434836ce07011bd5530f73d30bfac8e3484e9", + "params": {"addr_type": 48} + }, + { + "public": + "6ca26aa13d3e6f583bfe863f4187ab9140ce30a3c5255720eb2d14c3b0a1f8a5", + "address": "GBWKE2VBHU7G6WB372DD6QMHVOIUBTRQUPCSKVZA5MWRJQ5QUH4KKQ6V", + "decode": + "6ca26aa13d3e6f583bfe863f4187ab9140ce30a3c5255720eb2d14c3b0a1f8a5", + "params": {"addr_type": 48} + }, + { + "public": + "995ce6fd8a001234d3febaae1467563d409e55f49cc750dc2f02685a955b1902", + "address": "GCMVZZX5RIABENGT725K4FDHKY6UBHSV6SOMOUG4F4BGQWUVLMMQFWFQ", + "decode": + "995ce6fd8a001234d3febaae1467563d409e55f49cc750dc2f02685a955b1902", + "params": {"addr_type": 48} + }, + { + "public": + "1dc0da54380eca4672369f77a2d6921ea5b00a09b3c54b49ceeb836af4303513", + "address": "GAO4BWSUHAHMURTSG2PXPIWWSIPKLMAKBGZ4KS2JZ3VYG2XUGA2RG2SY", + "decode": + "1dc0da54380eca4672369f77a2d6921ea5b00a09b3c54b49ceeb836af4303513", + "params": {"addr_type": 48} + }, + { + "public": + "1bac2d83f80bfe942bf77c023e9937024c5c3ae0f72cda12282c8698a1466e95", + "address": "GAN2YLMD7AF75FBL656AEPUZG4BEYXB24D3SZWQSFAWINGFBIZXJKDNH", + "decode": + "1bac2d83f80bfe942bf77c023e9937024c5c3ae0f72cda12282c8698a1466e95", + "params": {"addr_type": 48} + }, + { + "public": + "e79c8dcccb4623af0cd1aea5454bf000d534bd5ab30bf25fbf9cd7b72f193293", + "address": "GDTZZDOMZNDCHLYM2GXKKRKL6AANKNF5LKZQX4S7X6ONPNZPDEZJGTOX", + "decode": + "e79c8dcccb4623af0cd1aea5454bf000d534bd5ab30bf25fbf9cd7b72f193293", + "params": {"addr_type": 48} + }, + { + "public": + "12718dc88cfafc4fd2322b5c96d2f9bea7b7a803ca278ce2ca4c42c8f28f2991", + "address": "GAJHDDOIRT5PYT6SGIVVZFWS7G7KPN5IAPFCPDHCZJGEFSHSR4UZDJRF", + "decode": + "12718dc88cfafc4fd2322b5c96d2f9bea7b7a803ca278ce2ca4c42c8f28f2991", + "params": {"addr_type": 48} + }, + { + "public": + "345bd4b677907b2ddde6c8fa1bc3733c79b9fcf6c142a6f94e797d1b8891ec3e", + "address": "GA2FXVFWO6IHWLO543EPUG6DOM6HTOP463AUFJXZJZ4X2G4ISHWD5KSX", + "decode": + "345bd4b677907b2ddde6c8fa1bc3733c79b9fcf6c142a6f94e797d1b8891ec3e", + "params": {"addr_type": 48} + }, + { + "public": + "c687478dae1993adc05316a0b5c71a28f98a1486abfa5386589e86d03b064349", + "address": "GDDIOR4NVYMZHLOAKMLKBNOHDIUPTCQUQ2V7UU4GLCPINUB3AZBUTYXL", + "decode": + "c687478dae1993adc05316a0b5c71a28f98a1486abfa5386589e86d03b064349", + "params": {"addr_type": 48} + }, + { + "public": + "54602c78446cf3aa28e43e6afdabae5caa0db0b4b3cd071e410aa754b815f921", + "address": "GBKGALDYIRWPHKRI4Q7GV7NLVZOKUDNQWSZ42BY6IEFKOVFYCX4SCB64", + "decode": + "54602c78446cf3aa28e43e6afdabae5caa0db0b4b3cd071e410aa754b815f921", + "params": {"addr_type": 48} + }, + { + "public": + "10ed4a885eee9a219522c9cb0ba657a07a2ca16199bfa8d6eb6770e426a74315", + "address": "GAIO2SUIL3XJUIMVELE4WC5GK6QHULFBMGM37KGW5NTXBZBGU5BRKHSG", + "decode": + "10ed4a885eee9a219522c9cb0ba657a07a2ca16199bfa8d6eb6770e426a74315", + "params": {"addr_type": 48} + }, + { + "public": + "cd65593849c76c4e8fb292a88227cbdd01b4bb61c4f251919d1440e0227e4d83", + "address": "GDGWKWJYJHDWYTUPWKJKRARHZPOQDNF3MHCPEUMRTUKEBYBCPZGYHCFA", + "decode": + "cd65593849c76c4e8fb292a88227cbdd01b4bb61c4f251919d1440e0227e4d83", + "params": {"addr_type": 48} + }, + { + "public": + "665656d93affb7687aceb94f96677596977efdc126f42c4fe26fe570e604e9ed", + "address": "GBTFMVWZHL73O2D2Z24U7FTHOWLJO7X5YETPILCP4JX6K4HGATU6226H", + "decode": + "665656d93affb7687aceb94f96677596977efdc126f42c4fe26fe570e604e9ed", + "params": {"addr_type": 48} + }, + { + "public": + "f47316458549c73c55008a0d1d953faa449d16f6038a1d3a856055119730fb14", + "address": "GD2HGFSFQVE4OPCVACFA2HMVH6VEJHIW6YBYUHJ2QVQFKEMXGD5RIGQM", + "decode": + "f47316458549c73c55008a0d1d953faa449d16f6038a1d3a856055119730fb14", + "params": {"addr_type": 48} + }, + { + "public": + "9dbac8f7736c0a0c5629befcb955718b2752d0f08e074b0ed8889daccaaf42a1", + "address": "GCO3VSHXONWAUDCWFG7PZOKVOGFSOUWQ6CHAOSYO3CEJ3LGKV5BKDIKN", + "decode": + "9dbac8f7736c0a0c5629befcb955718b2752d0f08e074b0ed8889daccaaf42a1", + "params": {"addr_type": 48} + }, + { + "public": + "ab216891c5685182d24c3161924c3e54afa25f31a5c56041271e92be03a1786a", + "address": "GCVSC2ERYVUFDAWSJQYWDESMHZKK7IS7GGS4KYCBE4PJFPQDUF4GVYFZ", + "decode": + "ab216891c5685182d24c3161924c3e54afa25f31a5c56041271e92be03a1786a", + "params": {"addr_type": 48} + }, + { + "public": + "98f6ea7c8ce1dd16b0948de91693c01b5b8bd0de59536dc52a9c4faf2cad0668", + "address": "GCMPN2T4RTQ52FVQSSG6SFUTYANVXC6Q3ZMVG3OFFKOE7LZMVUDGRFQZ", + "decode": + "98f6ea7c8ce1dd16b0948de91693c01b5b8bd0de59536dc52a9c4faf2cad0668", + "params": {"addr_type": 48} + }, + { + "public": + "73318105c0e72d015455a97c48c9021d27e85bd5b62c369a942c29a1db0dad0a", + "address": "GBZTDAIFYDTS2AKUKWUXYSGJAIOSP2C32W3CYNU2SQWCTIO3BWWQVP6W", + "decode": + "73318105c0e72d015455a97c48c9021d27e85bd5b62c369a942c29a1db0dad0a", + "params": {"addr_type": 48} + }, + { + "public": + "f7dcff7ee6cadab65703c22ed3bf132ba40c3ba656ceda84d4afeb6374c32455", + "address": "GD35Z73643FNVNSXAPBC5U57CMV2IDB3UZLM5WUE2SX6WY3UYMSFKYIZ", + "decode": + "f7dcff7ee6cadab65703c22ed3bf132ba40c3ba656ceda84d4afeb6374c32455", + "params": {"addr_type": 48} + }, + { + "public": + "ad03baae1e9df37d77b7393ee9f8c76db2b160427029301afdf43ce15a20c6be", + "address": "GCWQHOVOD2O7G7LXW44T52PYY5W3FMLAIJYCSMA27X2DZYK2EDDL4REJ", + "decode": + "ad03baae1e9df37d77b7393ee9f8c76db2b160427029301afdf43ce15a20c6be", + "params": {"addr_type": 48} + }, + { + "public": + "2daffde117c97775659cbc5f818ec9f36c98ef6de3adf721fdb22a0560afd201", + "address": "GAW277PBC7EXO5LFTS6F7AMOZHZWZGHPNXR235ZB7WZCUBLAV7JACVX2", + "decode": + "2daffde117c97775659cbc5f818ec9f36c98ef6de3adf721fdb22a0560afd201", + "params": {"addr_type": 48} + }, + { + "public": + "a9cc3d3b3d6165349077b21f7d56e0efbc5ece6c87db686938c0b6573d6a65e3", + "address": "GCU4YPJ3HVQWKNEQO6ZB67KW4DX3YXWONSD5W2DJHDALMVZ5NJS6G5IG", + "decode": + "a9cc3d3b3d6165349077b21f7d56e0efbc5ece6c87db686938c0b6573d6a65e3", + "params": {"addr_type": 48} + } +]; diff --git a/example/lib/test/address/xlm/xml_test.dart b/example/lib/test/address/xlm/xml_test.dart new file mode 100644 index 0000000..ac10107 --- /dev/null +++ b/example/lib/test/address/xlm/xml_test.dart @@ -0,0 +1,18 @@ +import 'package:blockchain_utils/bip/address/xlm_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void xlmAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + params["addr_type"] = XlmAddrTypes.values + .firstWhere((element) => element.value == params["addr_type"]); + final z = XlmAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = XlmAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/xmr/test_vector.dart b/example/lib/test/address/xmr/test_vector.dart new file mode 100644 index 0000000..2efacef --- /dev/null +++ b/example/lib/test/address/xmr/test_vector.dart @@ -0,0 +1,654 @@ +import 'dart:typed_data'; + +final List> testVector = [ + { + "public": + "23e98445b5dfe3240a15ca5dfd00f62334d2eef0e4a94d3c0c4c32e08323cb32", + "address": + "42z3MVZMRgE72dPA89MtCD6tYeWke8cV2B3YPYg1pe5x9X7VVqee6MWhjPrjCMiUFwejWkh8KL6MpN8cwX7B5WuZAxw2YbQ", + "decode": + "23e98445b5dfe3240a15ca5dfd00f62334d2eef0e4a94d3c0c4c32e08323cb32eecbb34bdf8671f383ab7d6feeacb6e1973c3f4c890c637e5612f5377bb57c58", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "eecbb34bdf8671f383ab7d6feeacb6e1973c3f4c890c637e5612f5377bb57c58" + } + }, + { + "public": + "8e19cf96ffb31025a1bfb74ecf18bc0982d5c1ab03d0a1c76dcb5ba38f5ead34", + "address": + "471SLbc2E2j7J5QMCEAV6K2bGd3C3TjrGaMiBQxAnR7z9ozebfZdbjJWbGWq7fuBWWj6nfj2PK8xJVCT6eVu9b7oKxCaZrA", + "decode": + "8e19cf96ffb31025a1bfb74ecf18bc0982d5c1ab03d0a1c76dcb5ba38f5ead34ac48be40f72bbdb0e9754ffdfbffd7fbb2ba26d66540d3a894d13b24bcfa12a7", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "ac48be40f72bbdb0e9754ffdfbffd7fbb2ba26d66540d3a894d13b24bcfa12a7" + } + }, + { + "public": + "6d51ad1391438723e12ae80210090bc7ceefa5e5131aeb2c12c569e5a2913624", + "address": + "45mPJPfAqJe715SyK5n57QaRPh6WsAtHx8NZrZwr657s773aSMqd76qeQAxDxM9EHyTwRVxNFVSSSTJxJiJn9ft1Lm6rSJU", + "decode": + "6d51ad1391438723e12ae80210090bc7ceefa5e5131aeb2c12c569e5a29136247ea573b8b9ce0adf98d90a8ffa4a0ca10dbdb43a05e1679d4b63610bd19756af", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "7ea573b8b9ce0adf98d90a8ffa4a0ca10dbdb43a05e1679d4b63610bd19756af" + } + }, + { + "public": + "811a20969a67c1e837897b59b5ae14df9f4d3602ad4147e62590fa4a02520b54", + "address": + "46WsFRPkXDzfqo87wKrssqeQR8xRgzBFUfViHB9umxxzF81gT9EJJYYBo7mBe7YTM7LpNPpZbbaiRYwg5PbxXSgwH7qbwC7", + "decode": + "811a20969a67c1e837897b59b5ae14df9f4d3602ad4147e62590fa4a02520b546c5d25f8be2401408a2e25fa115a0e7679f10c147f1836bef8fe2ecd9802708e", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "6c5d25f8be2401408a2e25fa115a0e7679f10c147f1836bef8fe2ecd9802708e" + } + }, + { + "public": + "5381e6ee5b4957c8de2f38565ada954ee0f4f1d8a72809eb927b0a2ebc6dd4b0", + "address": + "44nepe755wkabfsyV6V7aLECDuhVHjEmngQM2hSUfDVDWYTJL6kZbyo6dHy8kkGV32bt1nzWAPbsMMz14moFuWXAA64Xe63", + "decode": + "5381e6ee5b4957c8de2f38565ada954ee0f4f1d8a72809eb927b0a2ebc6dd4b09f33292efb0bb621a251fdf9d6f00dd087fb78f38705107d72a52d2a11fa2950", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "9f33292efb0bb621a251fdf9d6f00dd087fb78f38705107d72a52d2a11fa2950" + } + }, + { + "public": + "b99863e7814e01f097b74b2bd1ddb89f748da8baf5e5ddd690ee484dc75bcbfa", + "address": + "48f32veKzithF3uB6f8YKqTfv8VkTf5dvctZVqDoXvnNiw2btyjPxEJ3rHMfY5yt7HXhkpkVGDEQ4VKh2rCLydhoAzq2zmF", + "decode": + "b99863e7814e01f097b74b2bd1ddb89f748da8baf5e5ddd690ee484dc75bcbfab12eeb34de598f110984beb4bb3c78b78f312cf951789da953e022921e69de58", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "b12eeb34de598f110984beb4bb3c78b78f312cf951789da953e022921e69de58" + } + }, + { + "public": + "1c13a9d806b7ff5cc1c2fa452d190093535c93df2357fee9bade5fd598d590c5", + "address": + "42gpVpsap22GWrm7eKJ3L3ReF72ko9pzyg6UTMehwt6sZyYMWUFC2qXRV3ZwYqKzCrDWHx5MCmPQ929dnBEp417U4CqXQad", + "decode": + "1c13a9d806b7ff5cc1c2fa452d190093535c93df2357fee9bade5fd598d590c524c7bee28d4cda92609e32daabd3634ac342f5368491e606de5d36495ffdff1c", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "24c7bee28d4cda92609e32daabd3634ac342f5368491e606de5d36495ffdff1c" + } + }, + { + "public": + "330b05541129753e1f23256734867b4414c6ec977de481b79c3e765f1280bf75", + "address": + "43ZJFDz9yB2BPf9G8UaQQJCPUQcgrSNc8XiFWcZ3cihLLiuD19FSnN8YHQ5V2q7STT221mc8Lq3nj3ijDE3PBDrJ1RFMLJT", + "decode": + "330b05541129753e1f23256734867b4414c6ec977de481b79c3e765f1280bf75e9a17ad1b94de5bb06f4fd49e2a012061543227e4f027410422cc1c578e44b03", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "e9a17ad1b94de5bb06f4fd49e2a012061543227e4f027410422cc1c578e44b03" + } + }, + { + "public": + "3c19152be2de5b8f9c8b639b245ce7e912d33745bd039a4f8bda1323df3cb3a9", + "address": + "43uCaCQcL66R2DGN5soknSfz7759mmF5TEJhXVFVxy8eVQc7vEjPnyZ8g2yfZP3uHxXhvjPaF5onET1sg6KsWhnA9MZ28e9", + "decode": + "3c19152be2de5b8f9c8b639b245ce7e912d33745bd039a4f8bda1323df3cb3a9d59508994ccc942ddfb6811effe357b793b32344108f579b88addf5e46d3834a", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "d59508994ccc942ddfb6811effe357b793b32344108f579b88addf5e46d3834a" + } + }, + { + "public": + "c0812a2df78774503bcf60d02caa3961996a353151822577651b6c632b76763e", + "address": + "48vDqDGxoJTERNGjVHteCGHKqSkzKk6fWLyHGr1qfDchBUMBBD6vXWrH6oAB8uS4qRe76DmJaxY6DGhr2MgQMSEkKhjYTYX", + "decode": + "c0812a2df78774503bcf60d02caa3961996a353151822577651b6c632b76763e9ae7909d9f41936041538c64dd4becddd617cf106b7bd25de3b2b12e97b311a5", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "9ae7909d9f41936041538c64dd4becddd617cf106b7bd25de3b2b12e97b311a5" + } + }, + { + "public": + "3faaa18b36f802d6ec839ca39467364ceeac5c23f8ec79628d35799476d7b024", + "address": + "4433Vab4gFbcx2nvQD79wBDsLiFeEfU4YHV5HkJgMQ3H75hdsEWxNU41HaLodGgZsrh1WvjhA4upnjWe8wET2UyuNwZShee", + "decode": + "3faaa18b36f802d6ec839ca39467364ceeac5c23f8ec79628d35799476d7b0245b2f77b0ce871d01b5620745b5628def32935d83918b2bfe282a87da547098c2", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "5b2f77b0ce871d01b5620745b5628def32935d83918b2bfe282a87da547098c2" + } + }, + { + "public": + "fd20edfb56c7da849554de67d9dd029b0bca34ef9587bc36f0022c3718ae79a3", + "address": + "4BDUDowyJh7PBE1hSWgJYHSw9B8th27f1ABxrAE38tvtUGjfsups7uB53vUfbGx1Xh6c3xKtLRsYD419c1pSgaMMQuQC4Xf", + "decode": + "fd20edfb56c7da849554de67d9dd029b0bca34ef9587bc36f0022c3718ae79a30b630c8314846a1837340428258abc21818e55d8ca08ea11f37c86b1e0d4c8d3", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "0b630c8314846a1837340428258abc21818e55d8ca08ea11f37c86b1e0d4c8d3" + } + }, + { + "public": + "56f2a92004887a31ac1ab5c83da038b26d49b1372dc8077624d06522e09c119e", + "address": + "44vDQyjyCDP9JtEdhgMfyZWqxwYxNPeXgLm9HiWqSueQTUQgJPpMevPBC68RuXKfsW24zwsSoD8zqYtzJYURS6NU57wwH9a", + "decode": + "56f2a92004887a31ac1ab5c83da038b26d49b1372dc8077624d06522e09c119e44e1c454be5fdc3cedd84c6f29cc7906640d85d10dd2f6beb21edb06b28d1924", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "44e1c454be5fdc3cedd84c6f29cc7906640d85d10dd2f6beb21edb06b28d1924" + } + }, + { + "public": + "016879c5e2dd6c9ec0c446f4361f3eb8624bcbb84d0537c20070ebb6fa2c9ea3", + "address": + "41gCku8TDLoTZ6yCaqzhL9XqkpPynfg9kZT4Tw1kYte9UPmhSQUUdo7UHxv6b8oPuzf8sfWTXHj2iGFc9qknwKo9LWqq5yP", + "decode": + "016879c5e2dd6c9ec0c446f4361f3eb8624bcbb84d0537c20070ebb6fa2c9ea3c5070a960f2c0aa32bcd29c87889b9e3ffae5681d2492b5b2f4a47ce3bf41cac", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "c5070a960f2c0aa32bcd29c87889b9e3ffae5681d2492b5b2f4a47ce3bf41cac" + } + }, + { + "public": + "936786e498fd3c3dfa4749b0f13e2477ce12a1ee7c6976487a42ff86d9c9ff1b", + "address": + "47D6SZrS7asBNG8UnSFZxFM3FyvW2RUiqD889zN2tCqk5ZQHvZFeAXf16BugtzS47RLS4RYLgJHYp5KNd9Shiw5YB687S9E", + "decode": + "936786e498fd3c3dfa4749b0f13e2477ce12a1ee7c6976487a42ff86d9c9ff1b411ec083b1aa1e0088e79d09efeff8742d38d5da1a652d19ceec9472d7a32759", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "411ec083b1aa1e0088e79d09efeff8742d38d5da1a652d19ceec9472d7a32759" + } + }, + { + "public": + "a299d28d19f5a6d7f52e280b65390d52bd72b6bd576d7a63cb1d0169d586b9ff", + "address": + "47nVhGpNwsbd84WhtdAxB6EqgZ5tQsEaDHh82NLkDkVejpLCXpFCDRK3aGYGsrSqDcHJwetdeSJYmSgqpA24vzKt4fAvgNE", + "decode": + "a299d28d19f5a6d7f52e280b65390d52bd72b6bd576d7a63cb1d0169d586b9fffafebca2bec22a0f62eeeac31dd5136181d9fd788e758e9992743608e0682320", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "fafebca2bec22a0f62eeeac31dd5136181d9fd788e758e9992743608e0682320" + } + }, + { + "public": + "2ccba4c6598b6f29b2537ebc1297b9881e7d9113c040eae4e1266483bc6f3a61", + "address": + "43KZoXMBsQa7yWXgYhWPGLPmXVqYouNRffHREQjykCkyHN7sZDF74FAhQCbDYAAjiD5GmnFQPbMZi4vgmXGfX58JQWVMCQx", + "decode": + "2ccba4c6598b6f29b2537ebc1297b9881e7d9113c040eae4e1266483bc6f3a61d5aa6640041ef1f1892a3b6a3c8196198a4b7b951c6a4917783f55c7a3da27d0", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "d5aa6640041ef1f1892a3b6a3c8196198a4b7b951c6a4917783f55c7a3da27d0" + } + }, + { + "public": + "683ea8053725734bd27bb390c9a4002bfd1532e07441e0bdd0e567bb3568a784", + "address": + "45aERhsdfDcDga5Z6Yp5cT8MkBjBAC7XuYkTGpM86JFYPF2raGh4AXcQd4UGEUNgDh3iYysmbx32Y6mW4Revehat3fhhkpu", + "decode": + "683ea8053725734bd27bb390c9a4002bfd1532e07441e0bdd0e567bb3568a784f9cf033c71904b8d399c74b00b82b4103d8538de512259227aed9ed653d00517", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "f9cf033c71904b8d399c74b00b82b4103d8538de512259227aed9ed653d00517" + } + }, + { + "public": + "88f031c1841dc965a1a4e3c678a4e9b8419de1325b8fbbaf4da97c089ebe31ee", + "address": + "46p6DGGmHbeHzxDt3vS7ptXpWzR2jsa3LWKfQqPEiFMzgq3EC9WtMUfNGAMbcYNzR2Ccq7F4WRy5FUtdqMbYshJ5RgTAAXQ", + "decode": + "88f031c1841dc965a1a4e3c678a4e9b8419de1325b8fbbaf4da97c089ebe31ee1e170589c8961c7f1d15e07d846b0d45753e5ffc9090c6a6beb63af6f1347eda", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "1e170589c8961c7f1d15e07d846b0d45753e5ffc9090c6a6beb63af6f1347eda" + } + }, + { + "public": + "aa59bad4e8699eaa03127c62236b3fc5185fb9b84ee6a3b0ab06e1901c44d071", + "address": + "485Xd6KjLvZVSL71kh8amkZy55wgcwHuUWYuJ3eCo9tbL4id486bBg8gPdHW3bLwwreFG87oXMdL7dydeknsadNNMFomyWo", + "decode": + "aa59bad4e8699eaa03127c62236b3fc5185fb9b84ee6a3b0ab06e1901c44d071fa0ec2b8e46e05eb7f7cea1290e39ddeadb486dbbbb124dd1149517697cc8fb3", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "fa0ec2b8e46e05eb7f7cea1290e39ddeadb486dbbbb124dd1149517697cc8fb3" + } + }, + { + "public": + "313b220a47b1abec2ef412f7cc75d4f6f163f986bf8e63fb600f3ce3e992e1f3", + "address": + "43VKF5FF3rzgWGwvxqFEPuiJf31q5EW9xj3eyDGe4RiGhefkwG1as47Y9RtauPmBcd3ZQpAcW9QeYdr4uctVXkm8EyrfGct", + "decode": + "313b220a47b1abec2ef412f7cc75d4f6f163f986bf8e63fb600f3ce3e992e1f306f6572b7cd244ba34acb7e199f7fa0f4c4f32213a9c6ddc49aba76e6a561b7b", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "06f6572b7cd244ba34acb7e199f7fa0f4c4f32213a9c6ddc49aba76e6a561b7b" + } + }, + { + "public": + "7ec5485f28c7b961c07885d75867845516822488233937e1bcfb5ead9cac4dd4", + "address": + "46Rk3AzabexHMKHdPCiPaTFETeZao8pRLekwiePb64x4cWcRS4x9Stz7Kxt9TeHAR79SLfzF7D2dSirDLNatWxCt41CjMX6", + "decode": + "7ec5485f28c7b961c07885d75867845516822488233937e1bcfb5ead9cac4dd44db7b556baee1b25d38f0fc81ac04a3270d9d439af9ca5fa321fdccb6784851a", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "4db7b556baee1b25d38f0fc81ac04a3270d9d439af9ca5fa321fdccb6784851a" + } + }, + { + "public": + "09d2d91b8cce1845f010d878c51a6db39c258fdd513160e2067ba90ba41fd139", + "address": + "41zha9DmZjuChV4g7wQnEpX3ScA9FAEoReojGcFV3gwAAbo49aB27BVY2eoPEwJTfn9Y2kicLP7bPA1YSd1jK5NdMi9oEyg", + "decode": + "09d2d91b8cce1845f010d878c51a6db39c258fdd513160e2067ba90ba41fd13964df82eeb90f20b981d4813e62bd19330707514cca4de235dd0565b1127f66b7", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "64df82eeb90f20b981d4813e62bd19330707514cca4de235dd0565b1127f66b7" + } + }, + { + "public": + "3dc6e7bdfd047632324b7d5567f1c0d8fbbac5bd57064878c4557e72c713e265", + "address": + "43xtcTr4d739PyBKC6qjRydJ1adEYjGETMCbFRiVqSVfHzBsWcQRFA7jF7VpJ7XEjyCFJ5nf13KsRbSmSCzscyso1Rj1eo2", + "decode": + "3dc6e7bdfd047632324b7d5567f1c0d8fbbac5bd57064878c4557e72c713e2658d772f95af6558fc8e669066d7a900433cf90eaf2bae44cdedbdb59f1785da03", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "8d772f95af6558fc8e669066d7a900433cf90eaf2bae44cdedbdb59f1785da03" + } + }, + { + "public": + "7a50b48a158d452cb85c38ba413ae1f45c6730db36ca793f75b87d847b6213b6", + "address": + "46Fx4fZG3Cg8UqoxEVjikphscDzRXqskLBce7yC2qbg6XTLNPSBigJPFwajXV1zyFB3qcBmbiMTW9Pd3EXww8tAiFh1LxXa", + "decode": + "7a50b48a158d452cb85c38ba413ae1f45c6730db36ca793f75b87d847b6213b612a10ff9ffe9145953a77c983a5cfe10f7b27032a52532873e8644fa1cee9782", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "12a10ff9ffe9145953a77c983a5cfe10f7b27032a52532873e8644fa1cee9782" + } + }, + { + "public": + "b29a2ee93cb399a775901b5c0d4688399b48a428576ee4c22f0682bc6c1491ea", + "address": + "48PfZcs6WD6V1ZjJmw1L4FAdreSxjj83dZUprXYwRsPEgE6xEDVJzQFVPXthAgjDvk4V9k48FJkK4aPFXPNK4oK2A3YT57B", + "decode": + "b29a2ee93cb399a775901b5c0d4688399b48a428576ee4c22f0682bc6c1491ea843148bf68e5f0a9b9452b06f82ffd14d66c53a8bd264bc7967189323192c550", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "843148bf68e5f0a9b9452b06f82ffd14d66c53a8bd264bc7967189323192c550" + } + }, + { + "public": + "8e01629147c5bd16941f91b73c8ccd4072eb4bbfd0400ca48d8c0c167c44a1f2", + "address": + "471EB82kEDA4n3N9MvFgpkBnEdqmcBpF5UXNRmzMwEGQhZ6kMu826cMaWznNXdsjKAEiy87Z5bYH6hWsJ8LpoAh8G5X35Xo", + "decode": + "8e01629147c5bd16941f91b73c8ccd4072eb4bbfd0400ca48d8c0c167c44a1f27400815528894ec862d7de6dae9195520c44b08ff3e191f2391ad8aaff759b85", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "7400815528894ec862d7de6dae9195520c44b08ff3e191f2391ad8aaff759b85" + } + }, + { + "public": + "2e8cb23659354b7be1979bb54e06dbc17aec3cdf4410d72a2fd5c8938bb38b6c", + "address": + "43PRRCHv1KGMioaKuoRtM8ZMzzx4uA9Nn84GPdNT6VTpK7YNdQgH5GsSXp1HQGH69aAajV2aF2F4oa89RwnVw8jNMATZkLm", + "decode": + "2e8cb23659354b7be1979bb54e06dbc17aec3cdf4410d72a2fd5c8938bb38b6c4a092b465d49f898a422dd50bf1e753948dc2a740ec7bcc607d88778bd1465b2", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "4a092b465d49f898a422dd50bf1e753948dc2a740ec7bcc607d88778bd1465b2" + } + }, + { + "public": + "1fd2d4e42145ae74563356c5e23273ac39e18ceadfe536a294978f28ab7c8773", + "address": + "42q48pBey8qLTcVWGvJMcWVoov6sPz1JMUCEZqxgBDGJLKtQPFoY9AdgqMYomRUgj3T5bwgzqjsWm1y1JiV33aNj4CXPism", + "decode": + "1fd2d4e42145ae74563356c5e23273ac39e18ceadfe536a294978f28ab7c87738a5549c28b2bc6ee266ce8faecd23a9beb134c15c4c2b605c5e2e2cf3505401c", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "8a5549c28b2bc6ee266ce8faecd23a9beb134c15c4c2b605c5e2e2cf3505401c" + } + }, + { + "public": + "765ccc031de7461051cc8020f80ab55640203e2c52c1d90b5f27746783932121", + "address": + "467GARKYg1K3jKYyrqXTw2FRjo1NXSQCx2uKYT7548xx6cC7rW7hqyvD5PcKhE8HFyKe3EPp35hWq1iEYFpC7cZN2xV48NQ", + "decode": + "765ccc031de7461051cc8020f80ab55640203e2c52c1d90b5f2774678393212185454013afd9a5483220b8905c458c6f6ed0d44d568d82044014fa47626c4111", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "85454013afd9a5483220b8905c458c6f6ed0d44d568d82044014fa47626c4111" + } + }, + { + "public": + "7ff1abe262aa047321bd9e81ab9d35535a4f387b9979953d5d38a090959cc29b", + "address": + "46UKd6Hz9kXLFvWtC3rKpYEwdKrQURKJcBGJvjhyf9F7T3q3yAZ6BmGXwUX1jj9hD53JRYSQdrSkp3RQgjw175qc6HLaCxj", + "decode": + "7ff1abe262aa047321bd9e81ab9d35535a4f387b9979953d5d38a090959cc29bbc4337e69d73d7b8f935d256fafc7c0dc0d0d7487637790e7924f43de2db432e", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "bc4337e69d73d7b8f935d256fafc7c0dc0d0d7487637790e7924f43de2db432e" + } + }, + { + "public": + "1c23f92b42d5d402b2b71ab0d9fc3044953ec1f0dabd5422bbe2b5e519632872", + "address": + "42gxctjDRHu1TB9k1VDyTDCULmoA276Ls6oxqE85d93MLATB1YGaVCRZwbrhGcwRJGfsXrHKi3KLn3DHuenKKqCREcGJJjM", + "decode": + "1c23f92b42d5d402b2b71ab0d9fc3044953ec1f0dabd5422bbe2b5e519632872915bddd325ccfec4f198f102e40bc9e8655d6b252872a30d396693de71e1a678", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "915bddd325ccfec4f198f102e40bc9e8655d6b252872a30d396693de71e1a678" + } + }, + { + "public": + "e4a5348225b0f86aae9aab63ccb7eb454f82bd8ce9361a6971566e2cd8b44a33", + "address": + "4AHf5UPcGEsJqx57DYp8tSCbQB2YLjmxMJdvjoR5mFfP9Y97FTeKCgPXSXWLdpD45nJCtKmj7ixXPGR3UqWeX8ds5LDXXyS", + "decode": + "e4a5348225b0f86aae9aab63ccb7eb454f82bd8ce9361a6971566e2cd8b44a3309eb628731aa58b5fd4ed065635a1166dc87d2fb4f89a65c284efd9d8c40f626", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "09eb628731aa58b5fd4ed065635a1166dc87d2fb4f89a65c284efd9d8c40f626" + } + }, + { + "public": + "6b428b4ce2658f6e3701460010a9823d4a5d071e9c70efa133434da4f3333112", + "address": + "45groc5FwtSKSDtbSh5UzDBFbUjWCXdwcTxqyGE2DAPa4ANXk75z6Mye3tosfAouGbSayxCyari7NezwRfQdwdL8Ph2kP4K", + "decode": + "6b428b4ce2658f6e3701460010a9823d4a5d071e9c70efa133434da4f3333112e6dcd74a0ac21cdd81bc6283eb83d898f7d3a99fa0442de32e4918257a46f5c9", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "e6dcd74a0ac21cdd81bc6283eb83d898f7d3a99fa0442de32e4918257a46f5c9" + } + }, + { + "public": + "9b1553ede0100e5ceeeb7e97ce90b8444d72551787f2d68ad761f0fb48fd317c", + "address": + "47VyMRxLYQMGYa1v2jEjwDCRcxt6F3vHsQDwE1HuKH2gMsnKHWtpyFPgAeD1sDpSjXcgoDpVVWhEDAGffFgNkcESNRfHzXF", + "decode": + "9b1553ede0100e5ceeeb7e97ce90b8444d72551787f2d68ad761f0fb48fd317cce83ad4307afcaea28dbf79fed5e7ed55a83bfcf5d2626376c215144a867dfbd", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "ce83ad4307afcaea28dbf79fed5e7ed55a83bfcf5d2626376c215144a867dfbd" + } + }, + { + "public": + "34f96da7dfd1bec84c904288783f9aaafefc871539c98eea5d4006710a53c92f", + "address": + "43dYSrVwfDXaW9p99czaZXVbsoAsnSJTFgCdMq2Vz3Yt8tyWje5XXnEFBta2gSDFGwP3gUNLCCVkfjA6U7ioTVaE3GQPBGB", + "decode": + "34f96da7dfd1bec84c904288783f9aaafefc871539c98eea5d4006710a53c92f352f6b4786f28754d2ae9bd368772483ce436318ad55dcfc09fd98d8bec70714", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "352f6b4786f28754d2ae9bd368772483ce436318ad55dcfc09fd98d8bec70714" + } + }, + { + "public": + "83fb0b11d4338899f2193b321dba5a7acb5b5f0b0231dbf70246468b8bd65a7b", + "address": + "46dCDFdpeoHSkU2ys5zSufMYG2kB2kSEWiKJ9PqzzokmMeissXZxWSXUrrRDQpwdeRLZipswdwPejM3j1EzzkSYoSiBPDyu", + "decode": + "83fb0b11d4338899f2193b321dba5a7acb5b5f0b0231dbf70246468b8bd65a7b75e6d01a7a2cb4a68fa910573c7b4a74f76993ea528f1477da5e0b40a2ece0e3", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "75e6d01a7a2cb4a68fa910573c7b4a74f76993ea528f1477da5e0b40a2ece0e3" + } + }, + { + "public": + "e84f76f9aa4ef8242a335ec035cd6ebabda1137119647094dc047293dfd307ab", + "address": + "4ARiJaJXUzb73qyGJWLBg9YEcuctB8PzPRu88zQBtZbUVfk4P9DufrzKVAuXy4JkgS3p9X6dvJDFdULtfo5FGfxCADsADLb", + "decode": + "e84f76f9aa4ef8242a335ec035cd6ebabda1137119647094dc047293dfd307ab6504f54890f88b6e84cffdf074435310d12d12c1600cb8a37908ccfb7e911151", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "6504f54890f88b6e84cffdf074435310d12d12c1600cb8a37908ccfb7e911151" + } + }, + { + "public": + "abe9647de0bf228dc323429d10f788e238f18f50a777ccabdd07285b1051680d", + "address": + "488xeGqyCy7QiGkDvzJCKHeqeBLybzEmyVkHq97LjWbZ3GtxfNRYwpmPhv8tbzGvJhN9w1bjshjedYcFTfC6SbX3SCdK6wY", + "decode": + "abe9647de0bf228dc323429d10f788e238f18f50a777ccabdd07285b1051680d98836a60818ae287bf3cb54d97d1de7e78af135d992e8ebcf86a2ce424392edf", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "98836a60818ae287bf3cb54d97d1de7e78af135d992e8ebcf86a2ce424392edf" + } + }, + { + "public": + "e7a39f63d025092c14c34716b9b3928e7dc2fdaf7155be0609d9da71b2a316d9", + "address": + "4AQEjNsqUsi8NeETzgm2sjQqLw9CyvDwj21agtnMeBdXdLfEvTGXJKscowwjUzPJWxfYhfTjjjNLL87jv9e3TvfxJE6q6pJ", + "decode": + "e7a39f63d025092c14c34716b9b3928e7dc2fdaf7155be0609d9da71b2a316d941a4002322624ad617339d13d9218de6747381dc8ccb452a8b86166a77841798", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "41a4002322624ad617339d13d9218de6747381dc8ccb452a8b86166a77841798" + } + }, + { + "public": + "eaba117c6f22c506047326daa048868805bf2f45e786ac516aa52fe3bf8be03b", + "address": + "4AX2MGk7nNp21NpMB4VZMoPkb7VzHd9ddEcqtKdDw6LoAzyBC5pyAxtYGsfgasXyxqT9o8fjq15R248MZwJx93mVLyZ6ayk", + "decode": + "eaba117c6f22c506047326daa048868805bf2f45e786ac516aa52fe3bf8be03bc868f4e4954bddbaf91f0351ac8ab69c59b8353ecd364112b1a5f0a257eb2cb1", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "c868f4e4954bddbaf91f0351ac8ab69c59b8353ecd364112b1a5f0a257eb2cb1" + } + }, + { + "public": + "4e5f35bde9b01d80d077a7c22e2c7e60a02793cee5976948accb87d34622a7ba", + "address": + "44bN9JLQJNGNYfJKH2qi1jHAPavqMRmeQDA3E1FYKFtaY96mcghx2zJCvFw5UMayFjgBNNcJWrCk9CjybUkaTvpUM3JDXbL", + "decode": + "4e5f35bde9b01d80d077a7c22e2c7e60a02793cee5976948accb87d34622a7ba2bf9bde13e6857474123dafbc7fb7eea3c0b1609a7d2aa4631d2c5ca0071f5b1", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "2bf9bde13e6857474123dafbc7fb7eea3c0b1609a7d2aa4631d2c5ca0071f5b1" + } + }, + { + "public": + "d4f369a67ad6e534fe74f92df47afe3efef92d694247161f320c3ea11467b2e4", + "address": + "49hALN1U7VW9s7G2W8xhBsBY97zw3gGDB6DdrZCHHu3FfF3CvCQhNmChrmpQo1SzNtDGmPmkWJmJD55iHwsNEhseESBQSEX", + "decode": + "d4f369a67ad6e534fe74f92df47afe3efef92d694247161f320c3ea11467b2e4a25a2a144e9347f446612652aa65e1495e4f7ed37e3b6e18666fa67f02733177", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "a25a2a144e9347f446612652aa65e1495e4f7ed37e3b6e18666fa67f02733177" + } + }, + { + "public": + "5e4801276a24d33ccbde270e8837585f7f2e149db7aa6392c2f4c6123d52d2bd", + "address": + "45CLGzu5WEEBAoT1PfmfcKGySSJ8co8NeRYmi9L8UJe5YcvWRRuwtZNPSRiQShdn7SJ61CAM9JQr4J1bAUCUWB92UQCdJK7", + "decode": + "5e4801276a24d33ccbde270e8837585f7f2e149db7aa6392c2f4c6123d52d2bd0a2e288d675db186267b0ee1689dc96626efefe81060c165b273877557b791f2", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "0a2e288d675db186267b0ee1689dc96626efefe81060c165b273877557b791f2" + } + }, + { + "public": + "1aebb3bc0ca26aec4c4a7b66ff615313d94a7fc9598bc110c3b97b6f4575504f", + "address": + "42eH7nAVrXjgXPRts51ANE4KZNduiPphN3odxHnWfUrBENHffHPm14H6FaqRaBzVxu6gHprFYw9JPDbE9jtPHwK8NW5qULp", + "decode": + "1aebb3bc0ca26aec4c4a7b66ff615313d94a7fc9598bc110c3b97b6f4575504fea8ccec86b9b7e1f65736315670ac221f16b9ab3b28ef04b45799287caa5f3be", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "ea8ccec86b9b7e1f65736315670ac221f16b9ab3b28ef04b45799287caa5f3be" + } + }, + { + "public": + "48e2a09335f235fdb04fd2f0ce02d57676e1818b9db4b07b8a176af5add426d9", + "address": + "44PJhiJACPNjS6hquewXQgLpFfe62ftPhMfVFgkq2uqodTHfgGMytLM8vG5CZ8tuEiULxPTg7LsgM8tDhj5kyjHUAR944C3", + "decode": + "48e2a09335f235fdb04fd2f0ce02d57676e1818b9db4b07b8a176af5add426d9f08b3a4839abae2f571b97534a6f93a37ab9e3b22edf2a2f2140b0dc950d1353", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "f08b3a4839abae2f571b97534a6f93a37ab9e3b22edf2a2f2140b0dc950d1353" + } + }, + { + "public": + "0d45bb8969aa7759d59eb40c34f9fd76380f5186d6d46eacff245822fd1e5468", + "address": + "428HDt95p4nG2WPcwgt62gLmsbBRabBcyVwHV2VAwdRMJU3Xp3YXUpDfVATBR9JfWZhqk3u7aufFFaZLZH99vfLVJ9EmP41", + "decode": + "0d45bb8969aa7759d59eb40c34f9fd76380f5186d6d46eacff245822fd1e54686c8b802083231ee61715f12b412eb2f42b2fdfe130fc82c8a09ddce09be28a97", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "6c8b802083231ee61715f12b412eb2f42b2fdfe130fc82c8a09ddce09be28a97" + } + }, + { + "public": + "0617474a78be5a777968f0539072f5a919595ed4fb6aa6bb172c37894c025346", + "address": + "41rVj67mL8yLz3u4FBB72tVHUPsQPdJBXYJ1ig4DRv26Cs9TWWSxRV8Ryqdqaiajz2BRxN62tn424edpg4KyY49eHJhbkjD", + "decode": + "0617474a78be5a777968f0539072f5a919595ed4fb6aa6bb172c37894c025346ef0768b83f88479558736c94717b2b3e5bbfc55554fb41e1010ef39157ec3990", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "ef0768b83f88479558736c94717b2b3e5bbfc55554fb41e1010ef39157ec3990" + } + }, + { + "public": + "c5bc45b6bc113520c52f023aac95ef0efae6d823b4c4ae780e20ca9edb745c80", + "address": + "497ifj6n9GQ6UuvX1UE2Tp3WKtHCi1KrVM5gmj9R7xpBNZyTUeP9R7h5R35xPYHzt2TqYeQhuN5utQKz4gGxyS5L3h8rf88", + "decode": + "c5bc45b6bc113520c52f023aac95ef0efae6d823b4c4ae780e20ca9edb745c80f31dfa4facf3641a645d75fe9a4f83a072a97e0cf369538b77012012e5514f17", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "f31dfa4facf3641a645d75fe9a4f83a072a97e0cf369538b77012012e5514f17" + } + }, + { + "public": + "3dfcbc65fe13a63dd93151e42a8fc7be3a281f2b5c94963dfb1e3b47a60a0df4", + "address": + "43yMRDbvwKKBM1QgaSUmTCYpSdVfKVezyBNHyWrVMjnthvUJfJfKRckYejGm4wHh7dUrRi2htha4hJ95k9Rc58yqUU8h76b", + "decode": + "3dfcbc65fe13a63dd93151e42a8fc7be3a281f2b5c94963dfb1e3b47a60a0df4a7f70972b9f749bd39d85b6e894c60a6846b03ac99d6aa66782c4e392b0f2cf3", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "a7f70972b9f749bd39d85b6e894c60a6846b03ac99d6aa66782c4e392b0f2cf3" + } + } +]; diff --git a/example/lib/test/address/xmr/test_vector_integrate.dart b/example/lib/test/address/xmr/test_vector_integrate.dart new file mode 100644 index 0000000..6793ab7 --- /dev/null +++ b/example/lib/test/address/xmr/test_vector_integrate.dart @@ -0,0 +1,704 @@ +import 'dart:typed_data'; + +final List> integrateTestVecotr = [ + { + "public": + "041e74983374c95f1ae1be43916e3374c1d5efc1e049b143d69cc3d4856c189c", + "address": + "4BUqMSeJfNQGudzEJNvzQ2LXh4tbUdW4YCM7mq55edxBT7t1297vwCMZSnJwGvEKEKbH8hGmhZZAGhdHbp2te6AA38ZMi4knaCKLprMPni", + "decode": + "041e74983374c95f1ae1be43916e3374c1d5efc1e049b143d69cc3d4856c189c2728614da40b12c1f9174b1969b744ccef87b9e92dde59f2e27e3390249e1f0c", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "2728614da40b12c1f9174b1969b744ccef87b9e92dde59f2e27e3390249e1f0c", + "payment_id": "bc7ce989aa900caf" + } + }, + { + "public": + "3ee333eae72465e73882f06d86ca6f08978e8f2dc57c0c5e195c62086b8d7d02", + "address": + "4Di1CSUY6fnfg8bL2tDrvS2SMVfKaZZfZGjsyKsSih641LUNchchhAr3fP9zQy8oVM7MjWhK7TrbCZ8AY2VPmxNrjkTTVvgctWPJPxL5vz", + "decode": + "3ee333eae72465e73882f06d86ca6f08978e8f2dc57c0c5e195c62086b8d7d0201d5143f3e708b0fe9e28ed4a5f91c260240ac3718dbd3c00dd311ec0cde2fff", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "01d5143f3e708b0fe9e28ed4a5f91c260240ac3718dbd3c00dd311ec0cde2fff", + "payment_id": "94be6ffede8fdc9a" + } + }, + { + "public": + "80cc00277cff37205335e299bbee394475683cc2d844446d1372eb4359a5946f", + "address": + "4GCsMkRThYa6QbRAQ2WQpYCT8o5LV1mVVKFB4sef478oKfAynpiuUzFaUPuZW3j5Kj9R8NpPFWygmhK1gpeSp6hUE5fwrhak8AVEWXEz4V", + "decode": + "80cc00277cff37205335e299bbee394475683cc2d844446d1372eb4359a5946f8cbab39dcc2214c81e32edd165f29e3250de42af074b4af1004335195912274e", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "8cbab39dcc2214c81e32edd165f29e3250de42af074b4af1004335195912274e", + "payment_id": "3415a7f77d7e2a77" + } + }, + { + "public": + "3ba11ee03b36a4ccf16a3f938a3be5b426e942dd8e38dea473ee5359daecf822", + "address": + "4DaqrDsxq7HbHCqZ879wwJX8hbvVemhQRUWQ8DsEfW796jzhNQwLedoV9BYdsFdm9QRx2vBceuv6LPGxr293XWrTBP2Q9bMwRXDLkDbZAZ", + "decode": + "3ba11ee03b36a4ccf16a3f938a3be5b426e942dd8e38dea473ee5359daecf822532e36727caa82a83e939beff972579528ce9d817be3f9852cc2d786687dd83e", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "532e36727caa82a83e939beff972579528ce9d817be3f9852cc2d786687dd83e", + "payment_id": "0e6b8d66e6b3a8af" + } + }, + { + "public": + "e4e8e96a0f35db6580b2458052a826f266df55567006270f3bd01dbbb772cf1b", + "address": + "4KzuoodnoykHyhogpqGiqBhYbtbWGERta3YnZCLHxsaN5eshfdrdvKT6EZE32AxdjG9xmf5aVaK4C587uC5TYCCMNS41Q15ew1MGCaymmM", + "decode": + "e4e8e96a0f35db6580b2458052a826f266df55567006270f3bd01dbbb772cf1bd188466d368a521f4a546e9824676b3593de4f9e60edc918a5f421cfb73ad680", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "d188466d368a521f4a546e9824676b3593de4f9e60edc918a5f421cfb73ad680", + "payment_id": "2214a37021527486" + } + }, + { + "public": + "f163b9059acc39a6d70e3338b9b6e4bce95a4b8532c91241678184b421289bd8", + "address": + "4LULjK6nbptUuZLhFgnsrBYbgMYUYXn7bBwWDtuRMqqUdBsF86W5BFJXNRNjNLagBALFP5EweDTCwGgPwq1xhNNH6fbvkLfDzBFNe8a8XB", + "decode": + "f163b9059acc39a6d70e3338b9b6e4bce95a4b8532c91241678184b421289bd8599b545b4bbaf5b590f708e1ef154173136f78e443ae8c5dbd71e43c87887621", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "599b545b4bbaf5b590f708e1ef154173136f78e443ae8c5dbd71e43c87887621", + "payment_id": "df448a6e02bfb6bf" + } + }, + { + "public": + "94e43d6ac7703921e9b08abd9dfc3b001c2f9cf1f902bcf776bc645228d996bd", + "address": + "4Gy33F52e726fzqLNFsSEv124xAYbRvQKiPi7xGzqWdjYmrLiqwcxpJ5Km9dKY3NdLR2S6J94EiBsjnxSzs5g97mJW8gkyR7FdH5oVvgiQ", + "decode": + "94e43d6ac7703921e9b08abd9dfc3b001c2f9cf1f902bcf776bc645228d996bdf5c78916c50d0b19d92c3056af4faf8fa26150e691f732ffd6b5f8d099d00068", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "f5c78916c50d0b19d92c3056af4faf8fa26150e691f732ffd6b5f8d099d00068", + "payment_id": "a3aaa9dcab14e02a" + } + }, + { + "public": + "eb4f2715b0569c6904158ae9ecbbb23f4a2a46dc92bb3ff56c209ab7dddb6e7f", + "address": + "4LEybynX7fhJZnc7SYt25XBazPVK5gSvai3uTYTQzmgHNPdpzvcroV1KPkWw3Fkr6SRRqeMfY6UQ1aGfE5ttVTpCj8bS8jALF4wB8GW2Cy", + "decode": + "eb4f2715b0569c6904158ae9ecbbb23f4a2a46dc92bb3ff56c209ab7dddb6e7fe24d94aa916d886df5c62d6566dcf7920c0725230bd6fac6e8823922435749fb", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "e24d94aa916d886df5c62d6566dcf7920c0725230bd6fac6e8823922435749fb", + "payment_id": "e2647dbea37de459" + } + }, + { + "public": + "34ae525d83f216160a023526a1d7db77c2c3d5532574a850ab7da4892d7aae54", + "address": + "4DKa4Qi32Ld4gooDDxiQhxM2q8Q2KZR2FEVbjrFvxYe9FBgxHmWvNbSDaZrNrFvPsqShhwUNGaQpZaRgzikXu1fvd3yjGPBKfe4LziWVx9", + "decode": + "34ae525d83f216160a023526a1d7db77c2c3d5532574a850ab7da4892d7aae54cd65a356c900d94b340cbe3b63012499a94289c1f63dfac7d6cf13b4a55471d7", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "cd65a356c900d94b340cbe3b63012499a94289c1f63dfac7d6cf13b4a55471d7", + "payment_id": "897359c4e063adb1" + } + }, + { + "public": + "15b4f3c77857a58f745ddb59bd80bc157670264ed3e649fcc6d6c6a7bec0023b", + "address": + "4C9VTw7YzYcQzgxUCG2LHy4bDSqnwakPSjHFYbyTPJCHB2tAXX4KPK5NgUzSGb4Qas5qWxnwyTDao4aSqxGk4SmCPbtnfxSPZXVF7sV1uX", + "decode": + "15b4f3c77857a58f745ddb59bd80bc157670264ed3e649fcc6d6c6a7bec0023bfae81726c67af0819ee25a9ad6fca01cea5e4d8c6040681562254a493605cf87", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "fae81726c67af0819ee25a9ad6fca01cea5e4d8c6040681562254a493605cf87", + "payment_id": "204b2312da9bc87d" + } + }, + { + "public": + "1014cc00fd08aa581cc0ba55e64a806a92a8a62f59a1a3d518991b584660a018", + "address": + "4Bw8Jve3NhfFjoPeqAdJ8PJpteccVMCYJceJLjuSxjA755wGnM9vZoYePuqPTwZhQoDm2JoW21ST3N19vooXVUm9G36ttUBUk2aQuLiabe", + "decode": + "1014cc00fd08aa581cc0ba55e64a806a92a8a62f59a1a3d518991b584660a0186c577525ba3713df91f8391b2a71244c47f842e100899a7d9110d9e4f85bcc59", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "6c577525ba3713df91f8391b2a71244c47f842e100899a7d9110d9e4f85bcc59", + "payment_id": "e5518c7f484d5fd3" + } + }, + { + "public": + "45a0f53a30327b5173b1a4936240bed1f01c7fd2b88b9a7bb75c2d1b318a56a6", + "address": + "4DxpaE9GKQ6EdBmrDBM1hoc7fLRiaSc3bMhCkYpfDQhjUsGGE15G28WFgHWSMPcUJj1dhXHkhbtYuEtkwktQrdoJb9QSrzifzPjSnjdkQv", + "decode": + "45a0f53a30327b5173b1a4936240bed1f01c7fd2b88b9a7bb75c2d1b318a56a69a825b07e6e92f57bffdec584554e803c86ab7d2b99a16530e9c620d9c1145cc", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "9a825b07e6e92f57bffdec584554e803c86ab7d2b99a16530e9c620d9c1145cc", + "payment_id": "23970599a4c40ae4" + } + }, + { + "public": + "581e7417b969de630d75372a918cf27999b531d6b3082ebfc9dfee8e04c60eb0", + "address": + "4EfTiVfEEboHZwAzgcygVFMLgESA4SyXBZ5bBknbbRdwWa5VCG87aZRNBty8gVEsEYeifzQJKfQnzBGuyma7bbwqj5BeTXnLmwD5reAtae", + "decode": + "581e7417b969de630d75372a918cf27999b531d6b3082ebfc9dfee8e04c60eb0ca0d6992c6927c7eac880278550401e1810c9de11a9f973d6d2b42b0c11d84fb", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "ca0d6992c6927c7eac880278550401e1810c9de11a9f973d6d2b42b0c11d84fb", + "payment_id": "8867a5853735002b" + } + }, + { + "public": + "6774a20689bacfb8d7216387a47f8b7629e4e52b446390e92795b837097746ee", + "address": + "4FFAqcNFf82XvBcVzqeuUvLmLTKxWbzM5fztjYGq5w9Xgy5K9jZY9kjT9BD2kxXZeXUbrytYAJk8pAFbGBNFrsbGG1LtoNuEk2L9XxkQMa", + "decode": + "6774a20689bacfb8d7216387a47f8b7629e4e52b446390e92795b837097746eef225411f918b209c495ff38c211440a504176f6d28a329374fbdac7449a57359", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "f225411f918b209c495ff38c211440a504176f6d28a329374fbdac7449a57359", + "payment_id": "b6e92860e8dcc14b" + } + }, + { + "public": + "8f5604aa3b4b5016be6f1b71bb43cb54d826a93bcd2807cf9a4509d0943f925b", + "address": + "4GkppCdg33V4oeMwA3P1YNFC6bDRRKBBCbj1KG7bgdSZGJo59BMFLxSEGpfYS8yQbBas38vK78cFkRpwRhSFVkcyfzuzn1qufEQ43dqiJY", + "decode": + "8f5604aa3b4b5016be6f1b71bb43cb54d826a93bcd2807cf9a4509d0943f925b836c4a9c1bd1eb4f5a52b9fc3ee08aca73ae6732c448bb946d9722500cff12e9", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "836c4a9c1bd1eb4f5a52b9fc3ee08aca73ae6732c448bb946d9722500cff12e9", + "payment_id": "2828ca51ee1f411a" + } + }, + { + "public": + "8b8ef2f7f4bad9aa72ac0ef319816b48ac647d2a008480fdcc009b2454090659", + "address": + "4GcXF1pSoEQVWZPptcCd94DA2LhAt51CKjT9ZrHEaENyG3G2Xn6vp61HRTwK5uic2nKn594jKLQSSDLKVinzXvu3GEqJFMHSaWuENfzaEk", + "decode": + "8b8ef2f7f4bad9aa72ac0ef319816b48ac647d2a008480fdcc009b2454090659e97926e1442876622df5a546808bfb7042ca67484a011749bc14d12421e0de5b", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "e97926e1442876622df5a546808bfb7042ca67484a011749bc14d12421e0de5b", + "payment_id": "1ae1e430df8fd276" + } + }, + { + "public": + "870d3cb30491144eca2412009219cc7242caecef90af7b9c726529dd1def69d4", + "address": + "4GScj9nCndHEBMm7ZqZGhZL7UVMRY1gzeTAjNKyvZMrpcZKcj6DpXUtXYuP3f5rmXJZnT9K1X2fCxUX9p9Ni9gxQdVY8Xsp8Y73PVG2URi", + "decode": + "870d3cb30491144eca2412009219cc7242caecef90af7b9c726529dd1def69d4953c99b1853ac1b6a59710e9187a35c400234effc38895a487ced269531b79da", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "953c99b1853ac1b6a59710e9187a35c400234effc38895a487ced269531b79da", + "payment_id": "2be69b86d1bb02c7" + } + }, + { + "public": + "d5988006432e226c2f10c82f86fc86478a55d372938176a65ad229e99c563cb7", + "address": + "4KRFZGuSFjXK6X6Sni7P5fCy2p3Gkdiv1UprHDLrdNHRXhytYcidh8QG6WfE6iEbCNGr4b9dw59ok1M8pyFFQCBvNYz1iri4Da7PfQ5ffo", + "decode": + "d5988006432e226c2f10c82f86fc86478a55d372938176a65ad229e99c563cb79522f13905629d5a3f4bb53522b4535ebc858bee3e1837021353f6f7e70cbd80", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "9522f13905629d5a3f4bb53522b4535ebc858bee3e1837021353f6f7e70cbd80", + "payment_id": "d8fb507bc7c218c8" + } + }, + { + "public": + "23b1990d4a7c8cd2f2345cb83107f5c4cb82acbf3169ed5fa3251133e40f952c", + "address": + "4CgEXEd2YWPcHScHUpWbwSZvA9M5sLAEYGzoV78zMRja8PKb1qwnGDnZ2Li84L42kh5ruYWMbe91EEpTmnXoNnU6D2daucJvPG9UxSWAr2", + "decode": + "23b1990d4a7c8cd2f2345cb83107f5c4cb82acbf3169ed5fa3251133e40f952c26aafa7e8f3f69bf741f92d7d8c5d21d0f07d231c35655529d3ea85718579f47", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "26aafa7e8f3f69bf741f92d7d8c5d21d0f07d231c35655529d3ea85718579f47", + "payment_id": "e9523f71074f3ef7" + } + }, + { + "public": + "3a40dd48e63ed7ed639366fbc0255261c59acfb43f2398ebbacd81565e8e3a3b", + "address": + "4DXpSFWo58rghyHGnzXEnmHMWa74qn4nKgRsez3d4xN5Au2ndzkgznYWPBgELMYj43Any9TWeX4zwF5kHH7nvQCqYzTHsC47VZPS2fYLJZ", + "decode": + "3a40dd48e63ed7ed639366fbc0255261c59acfb43f2398ebbacd81565e8e3a3b2bb90f3b329c3dafaa98d4bd1538503a8bbc7aaf26402c543094b0da6b9fc2bf", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "2bb90f3b329c3dafaa98d4bd1538503a8bbc7aaf26402c543094b0da6b9fc2bf", + "payment_id": "425756ef6729c6dd" + } + }, + { + "public": + "469df2fab4046fbe668e775a3069ad65dcf152302775b119765992e5d12a9f15", + "address": + "4DzzZCPgAiAYr8DbuBwmwrJ3CZHuwDHy25G1weyo2j2v4Y4gPetQDg4P4kDvaw3vdhbbWJxChxRVPatHYe75NdS58YPqtifozBDJiBbJ1y", + "decode": + "469df2fab4046fbe668e775a3069ad65dcf152302775b119765992e5d12a9f152348db0ce9327183ea5bb04a8b9a54ced45acbcff91c06ca94a012514908c62d", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "2348db0ce9327183ea5bb04a8b9a54ced45acbcff91c06ca94a012514908c62d", + "payment_id": "16197dc24cd8449c" + } + }, + { + "public": + "862d3ff9b5372163e6f88c45f3f71bfe2b774836998426087aad07c61caddedc", + "address": + "4GQhBtJFZuzHiBFfjQBFwgjWmPbbqF3c12RG1uA1ZkhbdxYF3DViM2wd8rVfKoq5qdCv9ZphoknimJ9gGYbrP5Vj2gEvcdst7fKRm1hcv2", + "decode": + "862d3ff9b5372163e6f88c45f3f71bfe2b774836998426087aad07c61caddedcf46fe95b2ced68d80a19cdaa0f8fb4473e3e5636a283226687e16c92d8d4120a", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "f46fe95b2ced68d80a19cdaa0f8fb4473e3e5636a283226687e16c92d8d4120a", + "payment_id": "060130636c735edb" + } + }, + { + "public": + "efe357a3a9f2b12fd384966c8f4c8037e30cb052eb538ae4b65466f8274f7460", + "address": + "4LR3KX9HWnk8zyX51yQB9qAMB3ASq5VcmfFo7fBQSYXuH7L8vqtjZtCGvnPEaFiYNf6mNQEqeQngnKp1KcYBysWQbVhNAXU2dHY56sQHN3", + "decode": + "efe357a3a9f2b12fd384966c8f4c8037e30cb052eb538ae4b65466f8274f74604f6bb2eb8ce6995f39172351dfd06c227771a0a03786ff7075d4872bc6b731ce", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "4f6bb2eb8ce6995f39172351dfd06c227771a0a03786ff7075d4872bc6b731ce", + "payment_id": "3b0df30462fd2724" + } + }, + { + "public": + "684b0e9ebdb6d091f7a6e241ee7d436ccd638e758e095371edc4f15798311442", + "address": + "4FH1cg9t95qRR4rp1dK52iKCX5b2C4MvzL4FcXeYgPuDC3mjUPkcaxVHrWMY8sHA9DLH1sPePJcLCeDiedAQSvvvcYrr9FVJGFwB9JKwvD", + "decode": + "684b0e9ebdb6d091f7a6e241ee7d436ccd638e758e095371edc4f157983114420ce48092ac4cde64c2c4a52d0e29e0733e9094ea6b6eedde84ff3ece87dc23d4", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "0ce48092ac4cde64c2c4a52d0e29e0733e9094ea6b6eedde84ff3ece87dc23d4", + "payment_id": "890ec7b1dc192659" + } + }, + { + "public": + "1e235c4b196a08e486b251e554ee9f08d98ca238c8fa5afb2c11acf6efc0b66e", + "address": + "4CU2Hjy7EXyfDzRMxozvEJ2UrYR9WMsboj1ghSRQzZWDKRovPREcFWsF3WoszFLW1n83EyCYDSdosUJBimALHWw7KSVzphi1XpQ9XrBVu3", + "decode": + "1e235c4b196a08e486b251e554ee9f08d98ca238c8fa5afb2c11acf6efc0b66e2c19875a973f0453f5acb13fccba392a14ccd6d4e97a76a331a08bc30578266e", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "2c19875a973f0453f5acb13fccba392a14ccd6d4e97a76a331a08bc30578266e", + "payment_id": "3e55583207b7c54b" + } + }, + { + "public": + "647575369bae567150014ef09d4019991e617b15d4dbb94256c455e5d0a2d91f", + "address": + "4F8aopsCV1oKxGrfde67HAScSh65xWa2cC6a71kSg9Yk6CbkEM133LZNtKwm94kLwKb79XHRsP6423rCto8VR7kaDZrZ5YSf19ZC7tz2Fw", + "decode": + "647575369bae567150014ef09d4019991e617b15d4dbb94256c455e5d0a2d91f16b32e7383ac4682d76db94c5f5ce2cbe805fa3ceaa0f311077ce5a32d95974b", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "16b32e7383ac4682d76db94c5f5ce2cbe805fa3ceaa0f311077ce5a32d95974b", + "payment_id": "21429ff60b32d062" + } + }, + { + "public": + "0b0dbfa8573302717aff92c080b85246e0e94e7cbaf7561d5d4b30cdbdd14304", + "address": + "4Bk5Q1EZn1XKyuMTwfGzBKCrcRnts1TZo5usZY2kUpBU1pBobgKWWXMgRhFzH4C5HnczbQdWFYEcqHFJSyA62iMzPKHWobfXADNTfYsdn7", + "decode": + "0b0dbfa8573302717aff92c080b85246e0e94e7cbaf7561d5d4b30cdbdd14304dd2ade0125987cebb612994e60c485d73021476efc324a6121c24f7c0bff1d85", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "dd2ade0125987cebb612994e60c485d73021476efc324a6121c24f7c0bff1d85", + "payment_id": "6a08110a958561ec" + } + }, + { + "public": + "e376616c1c82700891cef397a577e5fea2c17967c1d2888378ada26a307c4692", + "address": + "4KwjJ1TtNtP2S8rqttgUwvjbHaj1gD6xFNzSMx9ghAMBRSUkvx5fsdPNYrz6iCa48qBx4k83aJKzGb4P9qQ6zkMc51hmKcWbwPZFVexVnL", + "decode": + "e376616c1c82700891cef397a577e5fea2c17967c1d2888378ada26a307c46921ce9d60a9bc89680d5c8bef0ca2f6a41764d58143e80b9cb9f0f462484ab4f17", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "1ce9d60a9bc89680d5c8bef0ca2f6a41764d58143e80b9cb9f0f462484ab4f17", + "payment_id": "fca47c4927aa3480" + } + }, + { + "public": + "1ae5147f11a2f3c8be00b6f5b74ab35e68258a5630dbf373044b6844167c56dc", + "address": + "4CLtqKwbyCeaaT9ST9eLUaGns8yeXHZR4LEoo5FQ4X33duyasgMYinMgLVWB8Rx3eG3a6VDzs8F5RgGSwWCJGTPq1KerTCE4wdnCsZ1ZJx", + "decode": + "1ae5147f11a2f3c8be00b6f5b74ab35e68258a5630dbf373044b6844167c56dcb0cd5019c9a382eb2cc855c0ec07310f5e5c10e2eee5d0eac2101d9f21f65c01", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "b0cd5019c9a382eb2cc855c0ec07310f5e5c10e2eee5d0eac2101d9f21f65c01", + "payment_id": "ec3649ef32321569" + } + }, + { + "public": + "a23c90ab530080446064c8cc055a7bf7125c9966190883f69e6468c24808bc73", + "address": + "4HUNGbNPpMVCSLcGL4No2riKuWCXfX5gEiFWcM97vgh9LPeaQaGsRZi5YybYz47LSqctxiB777iJc1dUsvDkuJVeJbyK9azy3nsCNY5rNN", + "decode": + "a23c90ab530080446064c8cc055a7bf7125c9966190883f69e6468c24808bc73ed98766f3283691b35e2559e0da906d69b7df0cfec69d103c2a9ffa59aa67169", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "ed98766f3283691b35e2559e0da906d69b7df0cfec69d103c2a9ffa59aa67169", + "payment_id": "3dbb82b38dce9c64" + } + }, + { + "public": + "7f88a387cd7e474bf936c2f903a99e233b63dae1bc8e743775a0762a0389abec", + "address": + "4GA6LKCoUzrDi3Cxu6BXyP6to5ZeTDYZyAH2XtjCByj8gVJnjJSJZvBC3BeKm29a7H9pK6oGjAE45AxwYnSbCuzwGRNjRepXVtKQtpPt3w", + "decode": + "7f88a387cd7e474bf936c2f903a99e233b63dae1bc8e743775a0762a0389abec1567204734076441fd621749b207e034b4addd8c410bee3b92e48a1740ffa85c", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "1567204734076441fd621749b207e034b4addd8c410bee3b92e48a1740ffa85c", + "payment_id": "3111449ea62250d3" + } + }, + { + "public": + "4360770780e1b9dccc677d94f73ae6d1a5fbc2ea1052795bd87d8a5d253c8765", + "address": + "4DssVnGY9pCdw2FdBgKMW5c4rQZmMyNLxGN23aMGTfo4J3EZTMNT9v3bmcNYfMjpF8AhbWwmeqSbC1Rg3cDnfAv9BL29KUMgJRrLg9sK7h", + "decode": + "4360770780e1b9dccc677d94f73ae6d1a5fbc2ea1052795bd87d8a5d253c8765ddda97ddda7784cfdeff03373c539f39fdf425ee330a93028b15a94bcd1a4e3d", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "ddda97ddda7784cfdeff03373c539f39fdf425ee330a93028b15a94bcd1a4e3d", + "payment_id": "bf2385f9d549bdae" + } + }, + { + "public": + "ff5e64b415a04bac103bcc8df0ac091f9ad10b3aaabe00e93a75cb5a677ae721", + "address": + "4M14oaCTX8WVnENruJVh8c6Hc8Xj4XYVmg1cDmjcqXHY6aRzec83h8a6YwMwzhJGrHSAKvgxjvAZbaJsL9crfX9Wb2dv1eeS4sgJbf1weq", + "decode": + "ff5e64b415a04bac103bcc8df0ac091f9ad10b3aaabe00e93a75cb5a677ae72156ce91088f97b7212f64372131bb8e966d34a99108f22ec722cae7e759ac85cb", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "56ce91088f97b7212f64372131bb8e966d34a99108f22ec722cae7e759ac85cb", + "payment_id": "70ffc5ce9c96bf9b" + } + }, + { + "public": + "195281b2979b4bc0b22f10b0612683bf0d4c69b5ea24e9996ee265a917a2c14a", + "address": + "4CHSN5VibK8ZEPneFzPj1UYxShxUaLzhnSfVdj7ZDgcxDRXd7M7eUBdeDetr7C1YFG5m2Dm6xwwwK1JfjpiS6WeFS79QCxGuPrD8feT7qY", + "decode": + "195281b2979b4bc0b22f10b0612683bf0d4c69b5ea24e9996ee265a917a2c14a458a68988ea95cde8349eab64946c71c73bcfcf2918ae601d23a088679e43c96", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "458a68988ea95cde8349eab64946c71c73bcfcf2918ae601d23a088679e43c96", + "payment_id": "194078ee7483ee43" + } + }, + { + "public": + "fb40db0d8597dc153918d9577ca7eb38c392de6b1f69cc09a42d76370e5cda06", + "address": + "4Lr2AyW9Ytb4Ytd4FvMj1LAVgXcqCr4nP2cXua3RkzU1283qDSSPTnv9ZTF7opMJx19RCkGgDWak9D7peQpZiALSfHu2rWfPWLSP1iEWZV", + "decode": + "fb40db0d8597dc153918d9577ca7eb38c392de6b1f69cc09a42d76370e5cda06b487d3273201af332c8f1c2252d22a3252db3b94ebb65248724b908cbf34b3e4", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "b487d3273201af332c8f1c2252d22a3252db3b94ebb65248724b908cbf34b3e4", + "payment_id": "edcc6c2b1e6d2bc3" + } + }, + { + "public": + "86eb38396f39e24b237e3a91c71e63891a1183b29b70cd862f931dbf85e8a770", + "address": + "4GSKnebC5cmDZwTinMctEnPw4T85PoEhSPSmhi8UfYPGKkGfxVsC2H9c2yGYiwiAE6NShqaMvhrkZb2rsqjJzYHEezwW8WGvY9i1Um6kXo", + "decode": + "86eb38396f39e24b237e3a91c71e63891a1183b29b70cd862f931dbf85e8a7701342ceb32d76e4d1745422ed925ee380334ae0c40a1512cb76e58ed69b2441e3", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "1342ceb32d76e4d1745422ed925ee380334ae0c40a1512cb76e58ed69b2441e3", + "payment_id": "2e5210ab64caed04" + } + }, + { + "public": + "296ea68d916cb61e4a9f1eaf8eb839b278bfea2e9541ae14ff0aa1cab067c00d", + "address": + "4Ctr4sCt7y764sCDNVTwKWWrQ8i4vAwyF4Wh27AAPAJ33C9RmaDbvGrV9GtYsUMF5KfW1WJmYMDMYiixYHKaCqM7gMrRgJgnb4F1q3Hmdx", + "decode": + "296ea68d916cb61e4a9f1eaf8eb839b278bfea2e9541ae14ff0aa1cab067c00d1b276300d618bba84101f66de8c642e62d6762114e5ea7f972acc611f7bdd6eb", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "1b276300d618bba84101f66de8c642e62d6762114e5ea7f972acc611f7bdd6eb", + "payment_id": "50b0a5b3b8ca5c07" + } + }, + { + "public": + "7f8244f784fc542e5becbf22254ba4cf3566e8a3ff545ccc1e0e5ef8973a71b6", + "address": + "4GA3AMNTwGw8kjzG83J6GbbfBcbTyEvcsb9CHQrL1B36Xb7g3LPmZtrhNyQnjb3kp3CLEitHxYMqq5cDxJrMVs89DpyZ4BM1bBt36XfsQb", + "decode": + "7f8244f784fc542e5becbf22254ba4cf3566e8a3ff545ccc1e0e5ef8973a71b6dff5b2c514015ff168c7bb0458e12443bf62bea1f619681b8b94e1ff28ada64c", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "dff5b2c514015ff168c7bb0458e12443bf62bea1f619681b8b94e1ff28ada64c", + "payment_id": "b045216b686f7f12" + } + }, + { + "public": + "636ef51ca8547b1c09d01812711516de4e27b32c24e5590cb37e6c55cf21e7f7", + "address": + "4F6L6D6PwXQ5h1QLfuTGCmeBe7LiRZ5gL38Db8sWBUpNiNxtpX2dSdQf98sFUZbxjVVpGidUkRZ86CdU6bHQVfrNSXZfAfyzRV4Q4Ns8XJ", + "decode": + "636ef51ca8547b1c09d01812711516de4e27b32c24e5590cb37e6c55cf21e7f76311b103c84e73e4069901e534530cac461346741147eb4586128e80c0d95798", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "6311b103c84e73e4069901e534530cac461346741147eb4586128e80c0d95798", + "payment_id": "9d9bd9cf0cdd23cc" + } + }, + { + "public": + "a2cba949364df17d06d62bab00e8fc837b68a0a87a8a39e8539022d437a4f891", + "address": + "4HVbXYJJUjAMuv7GsAZeQ3NzYN2ge7RGLfrritVirFTdRNUmeoRzVb68hdY8AfXSENEDDuHXbJVo6ewEsDsRbWZMEtmNUKrm5Xi9HoNGih", + "decode": + "a2cba949364df17d06d62bab00e8fc837b68a0a87a8a39e8539022d437a4f891b35d9eba7039112e09d32ca050107b4efb578809bcf9e9e2ccaacaf029257853", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "b35d9eba7039112e09d32ca050107b4efb578809bcf9e9e2ccaacaf029257853", + "payment_id": "0ece036bb972f549" + } + }, + { + "public": + "185d81c08907bfc075df390f2d2e2f04672c8199ce24dfa1da01efb695291a8e", + "address": + "4CFLMvHR1wcZC7E41URxbG1jiTiKQ4tdcU5ATxdCKQKBQpeubMrENH3Sphw9iaxwxF7BjL8bjJg1cBsu8NHFVVmWECAceqeD1SNCKC5QpH", + "decode": + "185d81c08907bfc075df390f2d2e2f04672c8199ce24dfa1da01efb695291a8e6b8cf8ee3039ae9a61f9ce6948316424fa494bbddeda6741085f9fcd0464054e", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "6b8cf8ee3039ae9a61f9ce6948316424fa494bbddeda6741085f9fcd0464054e", + "payment_id": "df754bde4de2af64" + } + }, + { + "public": + "fb3dc8b9804ddb804b3fcc0f9e25956aed70c2af292fb8b9a111a832be23459f", + "address": + "4LqzeG3nQ2WNTcVbD3ZpHzJtLBWcuZSDVY3qTjSK76QkTixMkrdUzzKYwi4XsTmc6bSnTvTGWB6LWXxFoVU7q9qmEiLLBSVXL5qHCjRmj9", + "decode": + "fb3dc8b9804ddb804b3fcc0f9e25956aed70c2af292fb8b9a111a832be23459fc4bb7b76e57dd8bef9e5680397b4f09a26d2f49dbdc9dfb90dd02ef45d1fec51", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "c4bb7b76e57dd8bef9e5680397b4f09a26d2f49dbdc9dfb90dd02ef45d1fec51", + "payment_id": "fb876eaf906cd48f" + } + }, + { + "public": + "4cb4889cef10aea7f7c7e0de66a6504787b546bd118fdc909183d32228119376", + "address": + "4EENgiF3zW9V6VwYjHdSvjCxw38VF5aePRBVhKqpm4DYLkAWj8MyiFwSXYFUD5jkAdEGb4vWYxiKsYLFv8NECuE22gtvPjeMXhMMdFKjvb", + "decode": + "4cb4889cef10aea7f7c7e0de66a6504787b546bd118fdc909183d322281193760afb9421ffbd86989cf7ca28baa44a4f54230f821fac72bb5268aaf564ae2b0a", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "0afb9421ffbd86989cf7ca28baa44a4f54230f821fac72bb5268aaf564ae2b0a", + "payment_id": "174ab469e7d10cb6" + } + }, + { + "public": + "76f4a98d9e89f1a367b80a4345c4617552132a1f89fac55b4c46ad20b675f163", + "address": + "4FqEoT4YVSGULEcQj1nv2kLdA6aL61ThWGGhryu2YuHSHhMGMNfiPycPLVAEBbLkoacYu2NfJefiRV8MGoMComACCKM71Wq9XP18sEN5Qg", + "decode": + "76f4a98d9e89f1a367b80a4345c4617552132a1f89fac55b4c46ad20b675f163d1233b2df733538589b7d5d1e296b1d48a0c4571a24c12a8289d1e21958ea543", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "d1233b2df733538589b7d5d1e296b1d48a0c4571a24c12a8289d1e21958ea543", + "payment_id": "a7e69809cc199445" + } + }, + { + "public": + "2ee17ed09781403d7ce18616451579aa1c3c2a29a6431640fcda9d8a85444285", + "address": + "4D6pfCZ2H5HBHWWjoxCZJxVTHQnHxhk3fBsTor75TTQMPHmnzDoePhTHCTMGChZw7xPePdp5LPgLRadffSUVjdZuXc58Zu6ntbP2AQX5zi", + "decode": + "2ee17ed09781403d7ce18616451579aa1c3c2a29a6431640fcda9d8a85444285421ef7b96ccf2a60d6a4db702dcc4b876231e2abf1c2c2c912dce191c0bdf4b6", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "421ef7b96ccf2a60d6a4db702dcc4b876231e2abf1c2c2c912dce191c0bdf4b6", + "payment_id": "f930f774e4c04e0a" + } + }, + { + "public": + "844d8fd0a73ab7285f8b4e9243fd87d695d51d94f6ebca33e43afe86fc6e9069", + "address": + "4GLaKPLjgtn7kfuaUdHXVQctkGhhJQcpH9gQweVm9T1hJah5nMqJmomTb8Nc2zHh2NaPgMES8CDDMGVjbqyg4T7YXgAgsjjDvdN9X3z3FK", + "decode": + "844d8fd0a73ab7285f8b4e9243fd87d695d51d94f6ebca33e43afe86fc6e90691bf5b0b5e7b6309ef62e94f00de8dfc7a1bcf662f4c2845ca41da300348d0bb7", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "1bf5b0b5e7b6309ef62e94f00de8dfc7a1bcf662f4c2845ca41da300348d0bb7", + "payment_id": "6545dfa45694714b" + } + }, + { + "public": + "ad60ff0f9ab04177c861d812be0a5981bd5bdc5877b39577f10f78a572e9bdf4", + "address": + "4HtrhPGQkVNM33UV6A3FuSNhdyMmyv8i8M4atAf92m2khx9kz7W6ffrg73uDgBe4EDCZRptEGwJvki8SHw55dVAUHeV4bXy5XywG5fD56w", + "decode": + "ad60ff0f9ab04177c861d812be0a5981bd5bdc5877b39577f10f78a572e9bdf4d44dc05767c13de9ca15e8b810c732451b7c670af4dd51f5e3b59fddb936f563", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "d44dc05767c13de9ca15e8b810c732451b7c670af4dd51f5e3b59fddb936f563", + "payment_id": "858528095035fe85" + } + }, + { + "public": + "157c8aac2cf5723745502b1e1588d24d0a192da3ac1f3c97ce9c2ba9521b6b5c", + "address": + "4C91NfbwJoKAFCLquBnaedDtNzR4qkRtwSPigrkHdWh8GQqZpKACARb6n7h3XmHL2eXZMtCt9bbY3ebMW2ehfw3MBPr7pF5inrC397WU7m", + "decode": + "157c8aac2cf5723745502b1e1588d24d0a192da3ac1f3c97ce9c2ba9521b6b5c22e3514fa72e1e228b23b3480d008bb6b1a5e96ff2bec0e0bfeb3771f6a5703e", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "22e3514fa72e1e228b23b3480d008bb6b1a5e96ff2bec0e0bfeb3771f6a5703e", + "payment_id": "242170fb20c7a112" + } + }, + { + "public": + "82413032baebf59412cf9800cbef5c760c2554d6499fa77df099e1de99109293", + "address": + "4GG5CGcXforRmVu5vSsyJbLkD4zuxKkYNN4muhG6Pde1RbcXW3Jgcz5Bmm67Pnd5B67QW2hH4qwoNLCeaAx7xPmpDPJKXXvbTyw2mMvteL", + "decode": + "82413032baebf59412cf9800cbef5c760c2554d6499fa77df099e1de991092930df1654aedc582406662d0345db209264b488c0d96c84972cb5269774a7f574a", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "0df1654aedc582406662d0345db209264b488c0d96c84972cb5269774a7f574a", + "payment_id": "0ab61f29520e6e0f" + } + }, + { + "public": + "ec51428806233390a327fa2c2490e9c15c162526ee680569c0cb526c684cabd7", + "address": + "4LHC8iDMqMkRCAUEjw3NZ6ZLqDvU7HoszJgwNyGiSQmYd56Ni2WDUN4fPt1cW8FjCV6i4M6hHk3zGBgnnwCFTDjaNJcMGquVYnCRMCw8yh", + "decode": + "ec51428806233390a327fa2c2490e9c15c162526ee680569c0cb526c684cabd7a6dccae1b42ba1e58ba9f44aa7c902222010904f6d10393fe3382f87ee29257f", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "a6dccae1b42ba1e58ba9f44aa7c902222010904f6d10393fe3382f87ee29257f", + "payment_id": "5db059823c53f9d7" + } + } +]; diff --git a/example/lib/test/address/xmr/xmr_test.dart b/example/lib/test/address/xmr/xmr_test.dart new file mode 100644 index 0000000..43b0298 --- /dev/null +++ b/example/lib/test/address/xmr/xmr_test.dart @@ -0,0 +1,34 @@ +import 'package:blockchain_utils/bip/address/xmr_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; +import 'test_vector_integrate.dart' show integrateTestVecotr; + +void xmrAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + if (params.containsKey("pub_vkey")) { + params["pub_vkey"] = BytesUtils.fromHexString(params["pub_vkey"]); + } + final z = XmrAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = XmrAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } + for (final i in integrateTestVecotr) { + final params = Map.from(i["params"]); + if (params.containsKey("pub_vkey")) { + params["pub_vkey"] = BytesUtils.fromHexString(params["pub_vkey"]); + } + if (params.containsKey("payment_id")) { + params["payment_id"] = BytesUtils.fromHexString(params["payment_id"]); + } + final z = XmrIntegratedAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = XmrIntegratedAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/xrp/test_vector.dart b/example/lib/test/address/xrp/test_vector.dart new file mode 100644 index 0000000..50624ed --- /dev/null +++ b/example/lib/test/address/xrp/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "02e0025c284743e385087e4615a840b2f6424497bfe6779e8ed4296417b0aab124", + "address": "rP3DVaCaoGegwdz4XgFCwVWPUmLafNNra9", + "decode": "f2b019b7d85d7e53b954a4d52ba4ceafaeca062c", + "params": {} + }, + { + "public": + "03d873236359f10765099ecb1923e1c475ede63e71f1170dacab03ef98e2400799", + "address": "rPzDeP3bV6129kgoGjVAE3PxhUSREkPEdU", + "decode": "fc25083c50678edaf11f1f5462922eb043a071f3", + "params": {} + }, + { + "public": + "0397d5c00fda5578061a4c7e71aa93540fab9076b549fded164da02b0a29bd24c3", + "address": "rDhi61ih71Mps6WnnuS2X51LQy4JPk7TL5", + "decode": "845c3fada0a9524119e22f451312440895007445", + "params": {} + }, + { + "public": + "02b455cf07f42fb94d4b98ea381dd86b3fea586c044ce2d0d26ae32d929e41342f", + "address": "rHZj4RxZTkMt12URQhmzB8mHCY8phFXSj3", + "decode": "b5b2b10bba9f816a87363cdfb8233ce462fafb44", + "params": {} + }, + { + "public": + "0360ca0bde5dfe66945e32c3848d863ea13080cebb83d88cd943025bb908af023a", + "address": "rUV63ytDkN2wRwoCCBw4VU9WDZJWJehaKZ", + "decode": "7e168925bb919a84e9d51c3f04394ca5ca8a1045", + "params": {} + }, + { + "public": + "0228dfeadb412520a70095a4c40ec7dd3d83b219b0e11b95377d55323eaa94fabd", + "address": "rp5aiSmGeoHSKyJVPDXH7xWsXqYQxneQmR", + "decode": "12be10cce6361d8a9360cac311dc5f8a381a8cdc", + "params": {} + }, + { + "public": + "03cc91b7dce0ccf478daeaf548aae2a2a1cbcaa93df8744f518dfd2539349bf1fa", + "address": "rssVmXjwpyF8bqmXNY31sv7Q7cnNLrEdee", + "decode": "166918fc89a170e62a8feb24a5a0246f20e19c49", + "params": {} + }, + { + "public": + "033b5f3faaa2074074ac50dff3d3e7b5c0c9709df037ff8fb5f077c0a4a9396393", + "address": "rf9caCqedZj5wMtsGxT56o4wcijVH2A5b5", + "decode": "4371616a18e41c8ed33430a571c3e030fb2e1f10", + "params": {} + }, + { + "public": + "03916db62133fec2d5e449095025f950acaf1f69aa9bd57efe1ae1b0662b715025", + "address": "rB1r94c6LiW2Rk8FFvaiY8oCjDgKk1EgN2", + "decode": "77262d2a8490ffc16b7fe2288a9be6b7fffd3b08", + "params": {} + }, + { + "public": + "036e5694a82b2819f857bc072ee6b6be9d161a0ad9b2c6bada2f5673913b1dae79", + "address": "rHEm84gL4hZmHACDhLs9yiZvxeyxNy9xJq", + "decode": "b24d37e88ca31471cf8aeecf1cdf838ee725a072", + "params": {} + }, + { + "public": + "033920155b58601d857cc0ab24e0369b6fd11f9dcbb323cedb2646bbd9f47d6b42", + "address": "rKTzqeJVCa6qvowLFHziVHmajMx6qQpbS2", + "decode": "ca8d5c43bece23746fe27f2c8ec52b72503f7a1d", + "params": {} + }, + { + "public": + "02d3d8344bce074e2c6e606a02e8619635675ae9b426e52599ab4b52d0d947b03a", + "address": "rHMP6uaGQyXBz2FQPwADrNkYnxMKsYAh6Y", + "decode": "b35d48fa842cb0808f871055a8ded14db4a44707", + "params": {} + }, + { + "public": + "0207dcd7c989f940df60a4e1573c3b7242fc3318d73c38171861b40abaf1f351fb", + "address": "ra8XS6cgfnEtX4E9cEqPuEqbnu88Uooatc", + "decode": "3f74c283f72953148be515edb7c1b728a36dddfd", + "params": {} + }, + { + "public": + "022e8eb895ca511e234c266b0e6283766eafee2bcb694771f55a8e9ce849c9494c", + "address": "rwTz3rfE4obxbRHYJ5QyjmVKEnRCTgsFai", + "decode": "67d3a1089dd60fa4fe02ad99b58e8b77fc92763d", + "params": {} + }, + { + "public": + "03602fff4e0c256a98685f5efc668f2fdeaf009b413fc7f46e7c7939d332f1746a", + "address": "r9GMrd7W72YFFnAwUNrt1ndPHxwi3oqwE7", + "decode": "5aa7f32d1e12a52b8e1850577519bedafd7415c8", + "params": {} + }, + { + "public": + "02c2ea92d72895387f384409fe67d832b73a33acdc7efd6cbc89c31a64f6327481", + "address": "rwNRiT4qWPfTDfR8kmNucZMYRtusqjxLiT", + "decode": "65434917d80428db0bcb0d09dae8caf229e3cc4a", + "params": {} + }, + { + "public": + "03024ba4a8065c80c6a136c28247c24920a9319b57420193e65b70f4729d696780", + "address": "rB1v3P5mmK6sq2t2kMfeTAvW3gYPbbneRu", + "decode": "7752678c3f746832dff56f066312c02614e82453", + "params": {} + }, + { + "public": + "0272074967a7ba35a32a3d3f4b906273aaae32bb03ec0e0d09f881a25a6ac2fb24", + "address": "rnzQcC1S67bVHSzAzHs5hW34jJRk5Xey59", + "decode": "36bbecff2ebfee7ab5eaa32df2e120443b6ca2c9", + "params": {} + }, + { + "public": + "03fe594867a5bb368e2d5aeea7a750fbf29681c53b0556eb50621bf1405b2f1603", + "address": "rU4YF5tNwzN6zHWZtnHgyPTuLCvFhT8NGK", + "decode": "7cbcaee2f91a6e90b7f2d581fa63b1fae1b2f2b8", + "params": {} + }, + { + "public": + "0386d57c37a56912bea505b7bff2ebb5e073362746df79838c5cd052e947330044", + "address": "rfkn7XfrN5jtR2u7aUaY7CWpr2uLWEmkGb", + "decode": "49f6604bbd600759b040b0a681f9e417a3d0c5ed", + "params": {} + }, + { + "public": + "029a9c63cf703ea43a0e058b0a6246d8601be195efdd55fc228e3c62def5d819b1", + "address": "r46gZbiqKLvugwGLijvhk9fFcfp6WKg2xe", + "decode": "ee0c4e00aa391f32ef6250b86b693a1ab144f71b", + "params": {} + }, + { + "public": + "03a8b0e2b0bcfd620a2671347c5942249986d46863cd1ec5cdb39acd8be9837790", + "address": "rpLdXd65yqNyzDa1f9p3pK9s2CEGYroixK", + "decode": "0eae856ee21570277e2036b0b6158f642117d461", + "params": {} + }, + { + "public": + "03f771502e74904a814858421bbf72bf8cf6af37a34979bed6cc57bdf301c704d4", + "address": "r9TgTDQNsWwE2WPa4T8GfEPqzNY4WF8yBy", + "decode": "5cccc10dc2587ce83bad114b4f182ba32003087a", + "params": {} + }, + { + "public": + "03d968f30ccb52dd4624517939ae58c5bf4d2b2bb340d31f81d062162b567ad581", + "address": "r3Yug4iu2o757rokCZtV4Duvz6u2636YPD", + "decode": "52d1bfdb833f8b56c211a863e94be120dfefcdff", + "params": {} + }, + { + "public": + "03d81bb6831b0cbfe8bb05d4fb381dca14fc7f217ffe0437d3e25b6120bdecfe4f", + "address": "rLCqWtqMHiKAgViQK6gJc36NZnUXPcMGRQ", + "decode": "d7c2b1efa87dce39fe6791ef7a3dd22bc65cb53d", + "params": {} + }, + { + "public": + "035f604be993a4d78d481ce7fe38ffca6bcb3a095ce1f2ae107fddc215a7ac2745", + "address": "rNGVX2mJaNoMLFX56HSCWY6tqg2vmexWhF", + "decode": "9187b02003ef4b125a38ebb7e23b398bd76ed4d9", + "params": {} + }, + { + "public": + "03c2e9ac10748bebb80b8600b631854226b8faba79a118350ee4acc4aa2076c96c", + "address": "rDhwtyh7zUMaz51Kpfmfm2J7EQjT4yUPJL", + "decode": "843b049deb54a671383e2caa876f159026620a1f", + "params": {} + }, + { + "public": + "02b5e65c4ee6378b12d2dbc2c55305965563e22d6bc81fddcd6aa40af941074376", + "address": "rGnL1EgXfuBHpyRCxjYBJtShX63SGc75Cq", + "decode": "a55c225f54a315310aef0ccb8e5a47bc332eec81", + "params": {} + }, + { + "public": + "038fdd7fe88778c818cc11a7a57fe8c7ec02f3a2e51dc3cdca6b7b73dda5fb85d9", + "address": "rPmypiikpzwcC9zPauK4wU7c5iA7zfqkE9", + "decode": "f9d3d7bfe768fe7452c1ed284ccbc9e7738e4a0b", + "params": {} + }, + { + "public": + "03fe720253010949114da5fd866c6508ef72766ec8859d6050cff1ebf4e3916144", + "address": "rN7iqbC8nmY3TeymHVyXrhTKbsM8ejJ3ay", + "decode": "93de77fefca6317c6c0982685b2e9a26992acd2d", + "params": {} + }, + { + "public": + "03a9f3daa31587f6fd75fbee189a572524fd46c70818079915bfb6f359a5fcb8cc", + "address": "r47ckhKC2o2Y1c6Y4DNWLSMN1GW5dWMptU", + "decode": "eb93b56a46678815a41d08c051d81255f4a6475e", + "params": {} + }, + { + "public": + "02da6ab112cfafcd6d718bebc58ba7b282f6d25ef6e5dba0a6d0f72f18039170a3", + "address": "rBXXux5TAALno1Yarv4vUQgspg9q6dVJw2", + "decode": "73778aaa2fd9ac7e0e04ba6f7316c89aed386279", + "params": {} + }, + { + "public": + "03929b02093a4b79252aa2487fee7823067afbd364117e46cb0a3d391d796d8844", + "address": "rNXrprWRRqo1kMg1vxLFUaRirx4RmmniSm", + "decode": "944620e9605624c452a9d76016d1fefde57c366e", + "params": {} + }, + { + "public": + "027686d0b123039fc9320b694b0f8b6c55a3127559a51cf24530673504995e25a5", + "address": "rUpCLf1rzSdyv8vvr1Mf7BgdLnVvdGCe7U", + "decode": "78f9cba8c4a0de4357362861fee945b031bbb986", + "params": {} + }, + { + "public": + "038dd0970aef9cc56d6e3ec2b4facffef31fbadcd0789d30aeeb91eadf9b2dcc64", + "address": "rJRypKpiNFMDjJUPTRCsxhtduJke9dw13T", + "decode": "bf32e300139364da225bd6114acbd1fd73fa8479", + "params": {} + }, + { + "public": + "02328a534fd57cca306ec5099035f546acddaa52bcdbba190f52e7188037f583bc", + "address": "rwwnm3HsWQF9KVV3x8QmPDiwrxxtRtMFdJ", + "decode": "6470d98d4bd8b71b712debec26088b1fa86796ba", + "params": {} + }, + { + "public": + "039e586ff2ce1c255f7300d8600a37955a4e40058887f775fc62a0a6f4a374f8b0", + "address": "rn8L8JzFaRbgMyMdRv3YgXYTRhwzdJEDTC", + "decode": "3473bbe3798643b0e41e6c26ca1855acb19e6cf2", + "params": {} + }, + { + "public": + "02ce1934576d850d75366890fab8b9600f8c6228532df2b161fe036dedeb38a84c", + "address": "rDCjrCrk1ZEy2FFdTctg7wUmVyEzSL7zAy", + "decode": "8af4629dceabc05f2be35fa65f5a5c361e8967fa", + "params": {} + }, + { + "public": + "0257624cc8914d5b1d9192170c5e1c74b0b756877fe638e293b5c4e7042fb519e2", + "address": "rrU1kJ4hBmUvKifZHtU1JhYrTCyjCcF5i", + "decode": "0009e9a6c5fe0bc8dae3c92ff4f13ae8042859ad", + "params": {} + }, + { + "public": + "0356701cf83cf8c765ec71d642b598aef6cd5c07edb118108e753214e0f3e1fd5e", + "address": "raLVWkSJse3hyjRt2hfPRTBAexrcRkTSdP", + "decode": "3a8855650e0fce33005e64936fc80639d9808edd", + "params": {} + }, + { + "public": + "020a6073310bd9e8b4841a44014940dcf98c42be7f3f8150cbea0ab73ef051f5e1", + "address": "rPHa48ediGZ82X6RroBodCHRYNjD3Uj8en", + "decode": "f45de8f50a4310cf22b266a1597f8bf3b4fbf5a0", + "params": {} + }, + { + "public": + "02d50908a66426dd433c0c4ba49554199438dfca460e6027ca49c97305b1fea040", + "address": "rB9gA3Qk1jCVJa4y6BJybsDZb5BwjWLaB", + "decode": "01eb699415e9c8a47005bce7f73ab645f5fbd911", + "params": {} + }, + { + "public": + "034a30db39d95f089acc8760952dc10fa8313cb63b724f92a9549bd115246e908a", + "address": "rLH9icSG2xV53Dnsw2waPKZvfDA9qj4bv4", + "decode": "d3786ff7133933bed9f55967e1d0f3bd3ceea080", + "params": {} + }, + { + "public": + "028d0e332a6579369e3236e57889fafa86c46367eda97eebfdb743c840291e3998", + "address": "r48jweguvCxHxwj96Kwqht53BGAQogtXtF", + "decode": "ef008ef71672b1b9523335b341255d81842ce998", + "params": {} + }, + { + "public": + "03064a5bb036afc18f3b432d14bc28e2a21c1276bb5d15235b4188ab70521c64e8", + "address": "rLymqNNQcroiNJbXNXR4fC59LaSgfHHC8b", + "decode": "db271b72c03aed903830227976e1bee020c37b8a", + "params": {} + }, + { + "public": + "03b6e7fad86b5c04465fe10ed888d1f92a5cb0417ee9dce06622e4625ecdf39e1c", + "address": "rJByYXHvHzAuyoTnG415N3FK8hGoJ6qNHG", + "decode": "bc8d7f8169b588bb7fc45dd7910b0b467b305a22", + "params": {} + }, + { + "public": + "03af9838c348ff39b6fbdb2d9102aa82d7e7faf0d9eb8b11e364752b52f20d838b", + "address": "rL9VME3M2nTYU1oKHbAjsEcrZHrRkxtFSA", + "decode": "d20561d55fd03946f14fe4c909b0c547ea3f8710", + "params": {} + }, + { + "public": + "037afb8f26b1c01986d9f6b47118a91d86b9a274dd8e1e2e8c8d417faadda79896", + "address": "rwDTEk63EjuJkqqm6ABEKUuq5d5ju5jXcr", + "decode": "65140a25b1993f6a0f97cf6a6f3672330adcbc89", + "params": {} + }, + { + "public": + "032b7a96eeb01fa4717402b731256c53d257284ee314716f21c1fd66d4f4cba4e2", + "address": "r4e7NrMN9Sw8WGyBGu8mizjtDCoWsLWhd5", + "decode": "ed70c1f87e6382d25dc2876b88597de760041f68", + "params": {} + }, + { + "public": + "022a67f5e38d835a895983771724265f700bbf207899204281b5b611a034df8b19", + "address": "rDcm1vwWRYGxArdZj3zbLbWoDa6McM9bdB", + "decode": "8a6587bd1f93ef830808e9f1369826986e27e9ce", + "params": {} + } +]; diff --git a/example/lib/test/address/xrp/xrp_test.dart b/example/lib/test/address/xrp/xrp_test.dart new file mode 100644 index 0000000..0112226 --- /dev/null +++ b/example/lib/test/address/xrp/xrp_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/address/xrp_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void xrpAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = XrpAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = XrpAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/xtz/test_vector.dart b/example/lib/test/address/xtz/test_vector.dart new file mode 100644 index 0000000..ca56381 --- /dev/null +++ b/example/lib/test/address/xtz/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "248503f098cb4a2b9a3ea179b48075d927d357b2f9dfec7bce764baa3d547d0e", + "address": "tz1L3tHJsTq9qj1shvYQsryfUjwNqRqtbZmx", + "decode": "0482f65b712f82ca5ffaed567a4ee48cdd89e93b", + "params": {"prefix": "TZ1"} + }, + { + "public": + "bbcedea4fb56ca2bc7dc80fcd76034e490a237a4f2162c602430462b66760494", + "address": "tz1YzR9HTAJbu1H9MaBVSGj9N9wxNxncWKCm", + "decode": "9274b2181caa77b8d480efb8bc17809f7b414eca", + "params": {"prefix": "TZ1"} + }, + { + "public": + "63f8c103108f9a91de2ca1f280c73668c55331805e5b822f8ff3d6b96a93648b", + "address": "tz1cFUC9RhZ8AaRL8zM3D61vTPapJsz2y8cE", + "decode": "b635dba0870ccdcdad43e0911a92ce11dbd352f3", + "params": {"prefix": "TZ1"} + }, + { + "public": + "6a87b69f98f01f49d1201ee021324082328824e898f4d38fc94d680292152caa", + "address": "tz1Y9Y6PGDtLK9yL7ADDMJUq65zSpk9V8zJe", + "decode": "89361d78ba5816c64c5b81b151409f731c63542a", + "params": {"prefix": "TZ1"} + }, + { + "public": + "9eff89f786a9525e967b8a63cddc70e10b0b568c0fdeb675ad2febd54dbcee2b", + "address": "tz1f4monATLFToiHJnEpJhfNts6TU7xiZq45", + "decode": "d5185d0964b76d2a57f194e1fc773baae255d5a9", + "params": {"prefix": "TZ1"} + }, + { + "public": + "c15ef001fe5f318ce39b9e8d212efda413965515496abee5b5eac5147147051c", + "address": "tz1U9EL5iejcmM6rmeUBfsuTSg7UaKCpbvt2", + "decode": "5d46c892750607cab8c2de809ddeec053fa80399", + "params": {"prefix": "TZ1"} + }, + { + "public": + "5aa0b2bad70a91810803c20348cf86a729bdd3556b3a67012a628303ef14e387", + "address": "tz1eaA5mZq1y123EXSabTMrPqZwfZcJedy5i", + "decode": "cfaee534db2b8994dd2a7b1815f1012c84c034ca", + "params": {"prefix": "TZ1"} + }, + { + "public": + "798a47963c7d9822b3ae37a28c787b45d7e215783f57d00501ee97cc0e10f27e", + "address": "tz1S5JqJDFQjdFEL9cmndvwu3SfVxN7Wxhgg", + "decode": "4698a0a92551501ea30145b53dcbfb1830242c0c", + "params": {"prefix": "TZ1"} + }, + { + "public": + "83d2d5f6b4a18db4c450260490b65903d19961550b362972eb683b660cac4aaa", + "address": "tz1P28FdpV1oBfuo1h4qqs3mcwmqoaGQ5tvC", + "decode": "25162b9813a3c1be1d5a20e490835082ac758342", + "params": {"prefix": "TZ1"} + }, + { + "public": + "0ce298284c36cf909eafcba0442b773df41edda0a6737e919fcf253597fd4e5d", + "address": "tz1RzQV4xGURVDuX4FNN1hEaYfopthfVoy2Z", + "decode": "45ab43e2fbaa4574c18661208471d5f026afb16c", + "params": {"prefix": "TZ1"} + }, + { + "public": + "67495c48dc924d5557b2dce6c75f13f5e9042cbff0929a98f62ec89fe043fb7c", + "address": "tz1aYrkwPmJ1T4L1MdYKhS8ucj6985XJ8haN", + "decode": "a38f83abb3a603c935b8ff8c5b976531c1a4a000", + "params": {"prefix": "TZ1"} + }, + { + "public": + "3a06bc3121e016d402a9ccabd1cde6903c21cbc6e299423c24693c85d83dc228", + "address": "tz1YnfCGxoV5JbkNUix5ASwCkLp6bpGt88Ba", + "decode": "903b6f0decac2fb8e4f02a3b549160a47b44e635", + "params": {"prefix": "TZ1"} + }, + { + "public": + "5dcfc5dcf5584359c6869362681cb870e8f7400468a8f32cd5caee5a9d527331", + "address": "tz1iMEvCXCKHDkGqKMw4M2F2SqASMzWoEfHR", + "decode": "f91e06eb4e713d23555704dc5254e2dbb8a5fa25", + "params": {"prefix": "TZ1"} + }, + { + "public": + "260b0b04ba32adedd408347e838074e320955650b6d5cd372912d2c1f7f9e626", + "address": "tz1bt5s5ZAkxStq8VQU1Rx41hMMMgZio3f6E", + "decode": "b22a7bcf27259aa160d242b9255ad26b5fe9de4d", + "params": {"prefix": "TZ1"} + }, + { + "public": + "93e026493578b212f4fa927eaee53ae559df6ad241633335cd9bd1ba24855457", + "address": "tz1dR2o39XaGA5efynZ726gVJandiqXwZe6y", + "decode": "c2fcf11905c444ab37470f369e405fe70eb34f23", + "params": {"prefix": "TZ1"} + }, + { + "public": + "eda658b350027fd80d7644e5fb72fe7c3c4a11b04b34352687ed3470ed453a79", + "address": "tz1UtXzHk7Sj3qDsMAwqEQUGoxmx5eLNVuJh", + "decode": "6577691e7c411e1acda8d54992103bff5190312b", + "params": {"prefix": "TZ1"} + }, + { + "public": + "ec346796fa3e10440d0818ceaba4548b845df49eb9d6c227cd206d2d8a210dc6", + "address": "tz1M5bBhGUKcEpfo7gg3T1gkb1PQfarPCHUS", + "decode": "0fcda5facca413b680a1dc0af30a4e84d05b4fdf", + "params": {"prefix": "TZ1"} + }, + { + "public": + "34e0f7bc3b890c4fe0aef066875a2ffb27a453a244395badf654ebcf72f2d903", + "address": "tz1dhFPHdyrdarKnn9njnRRi2fE8hwUcPbPp", + "decode": "c60e1b720a42eda547da82cfb16cd903b08ad7f2", + "params": {"prefix": "TZ1"} + }, + { + "public": + "d9504466db6262bf468ae7c520ce0dddb69a5c5f58c0ef2be3f6f75c94479cbe", + "address": "tz1KtMhjYXwuVWyKj3xbBMar6AJ4bdP3gw16", + "decode": "02b5b1561229cbe323ebdd5b2ba336c4b0f4aee5", + "params": {"prefix": "TZ1"} + }, + { + "public": + "d693b00d33925809c5e63d66bfb2204586e0a4b134233a64db23d43a2c823d98", + "address": "tz1gMjkFrjGKT9nMswkwvF7wFdt2eBRGqWgH", + "decode": "e345d720e2c99e503de19f73f5b9ed4a70fe710c", + "params": {"prefix": "TZ1"} + }, + { + "public": + "8238c239ec33bc30402ea961e98278474e1984cd9f26787cbbad9446cb2c00fd", + "address": "tz1XRnBnLEwDUJQsL9eBBhMxSoKPrpAmYQNg", + "decode": "815068b5efd2c376e89556b62d2f18e0c489fd1e", + "params": {"prefix": "TZ1"} + }, + { + "public": + "d4ec23f9a51a3afbb5d5e0609cc6f2172c9c3d24d948adb694830bff698a9411", + "address": "tz1bzPPTsiyCEatT9NYhq8i66NRh7d5B9FDR", + "decode": "b35b9b8b63b3cee4e9e409af038c765b8d502112", + "params": {"prefix": "TZ1"} + }, + { + "public": + "721bbf62093412db0894790148ce76f44f8e75b14c30d532c6d4cf9fd536cf70", + "address": "tz1Lf6DZ1HKqmaLekvgpPmnt8hyc1hZVgxwv", + "decode": "0b2b7be951ca59f693d53bf5e3cb5aff7b60116e", + "params": {"prefix": "TZ1"} + }, + { + "public": + "385f451b62217ed7996e922028fc9cdee01dd9e86bfd360a955a8c8fd33d15c4", + "address": "tz1ap26NGPtFq2ZSYoPBmH4pyMWibgSG2iTz", + "decode": "a66d8bd4b6658e724fccf2f186b858acad4c6569", + "params": {"prefix": "TZ1"} + }, + { + "public": + "19aaf406d4dfb7eaf32c3f0ba25473ca1ad9682f888d8aedf1c90c9372f05466", + "address": "tz1X7JwWviARyrYpF3j7yMgunYjXRSPrFDDQ", + "decode": "7dd22d8d0150a6019960605c2a1e905a6ab3c6c9", + "params": {"prefix": "TZ1"} + }, + { + "public": + "24bafd1b8a673ad0b3720d35e91b05eb715ab1346e06f0eb7979b3f291082202", + "address": "tz1fTHr68AmCGD1uVC9EAtZsBnxvUtYSyVxd", + "decode": "d95a972f3a2fecf69bf63eabfe39b2e81566b95f", + "params": {"prefix": "TZ1"} + }, + { + "public": + "15d0d30af88a77c7ca3758cb3f808b75d11a60cde44f78cff7228e83a4d6cc35", + "address": "tz1VkVbFp59YcktsxDNZ7c7Xovssy8AZ9js6", + "decode": "6eea352b3b2f362811d1e2830d32ba7014986dc7", + "params": {"prefix": "TZ1"} + }, + { + "public": + "94b0bf03f55939c27018e44e1aee06458e810d7705a8afec7bb4fd805f3f9e45", + "address": "tz1gi1KZ1PMNNPF8TTfsBusVpzFkfqvVkUaM", + "decode": "e71b28ffe6d63aa070cea079588689ccefdaf862", + "params": {"prefix": "TZ1"} + }, + { + "public": + "6bdb3235efd6246b3bf73f94dc7bdf04be43d8eb51838a5fb79b06d92d49d38e", + "address": "tz1MmxUb1W7C4szD1iauWbUsHFzSZM1Mogzh", + "decode": "17700f5346ac56d553fcd2b5247cc6cdad486237", + "params": {"prefix": "TZ1"} + }, + { + "public": + "bdad0028a40bfbb93f53db9daf61468d053a886c880db0e4c197a38e9e65f5d0", + "address": "tz1ckRsFv5ryHXa5S75FSwNaX9ADmPYxXG8M", + "decode": "bbaffabd302d0cfff720ead5576085baa98e531c", + "params": {"prefix": "TZ1"} + }, + { + "public": + "db28f4a83b66e3668bf790ea67037fca74523393c82b5a08e7623d175ffe9eab", + "address": "tz1Qe1BXSknTyFVsEszP9i7hRxVxysNJk7Pg", + "decode": "36d75e4500465e3ab4cb23cdfbc483fbbceb6e27", + "params": {"prefix": "TZ1"} + }, + { + "public": + "3b6448347fa64617f801eefe87606741aeaed49d2adbe622844d0f08b3c4fced", + "address": "tz1MP3ha7nPuGjbjNr9Ua1LXrXwi7BLFHzcA", + "decode": "131ada794201cfed06274f7b30987fe751e666f0", + "params": {"prefix": "TZ1"} + }, + { + "public": + "7e7b34bd3674f8f030f55a30808d7ed1d66a6ef87879de0b600ee229626a8c12", + "address": "tz1cH571JB1j87hDLasCa48ScmWb38Sp2uQv", + "decode": "b6836a9b1e2c66dbe86f5cf959c1f2650aa4e51d", + "params": {"prefix": "TZ1"} + }, + { + "public": + "832b9cc21a2df1c105631dc0487d8c9c2d80e2c8d8d91535f80867135bfe4b71", + "address": "tz1dwULej4H3JkeVaJejw8PMjgvuSfiaarwD", + "decode": "c8bebe9cfe619cf69e9d58251546ec005f34fc6f", + "params": {"prefix": "TZ1"} + }, + { + "public": + "9cfffe37206e78021ef0f5b2bade1ad288ce730204521054e938e6ebd402257f", + "address": "tz1a5oiMBQ2n1sEn3X9meft983hCojiwEXEh", + "decode": "9e71bde80ae02614ecf99d59b807fdd1884904a1", + "params": {"prefix": "TZ1"} + }, + { + "public": + "b2224cbc32ac8f0084bc217ffe0401802e68e8da6ffe1fc1e6ac5963417a68ea", + "address": "tz1ZbWmMTxYykRPumDLEpa7snuJVA7Xeuk1s", + "decode": "9917f27f44ebbf06d3ef748febcd82690b173646", + "params": {"prefix": "TZ1"} + }, + { + "public": + "f0f398702228858184d7aff3cd3234e52b34cec17045d1e889d9554acfc7e687", + "address": "tz1LZsZiqvuqjGR72WsrJzSJSt9yDStTCAru", + "decode": "0a2ed7b844fb1c0cdafb1327c4f38dcd241f6f3b", + "params": {"prefix": "TZ1"} + }, + { + "public": + "e424913af66c4d9079e8947d1bb1baebe38f81aeb2924c71c3a5b7b4ce82c2f7", + "address": "tz1hqtkhzdNbahDkKKFpcAuTAYgD2AJPDfWF", + "decode": "f39121e2c78fc1fca7fde3d7a513817ac94bd002", + "params": {"prefix": "TZ1"} + }, + { + "public": + "db4da9e4e239cfe9cd37fc08c74d5db1ec20682462f3e7c93d4307497ae72944", + "address": "tz1YuE2RvbofjGsowVusVPeLNwcTJPtPPfpQ", + "decode": "917955bb5669da6e15e6fd5b9ae55dd21fe2baa8", + "params": {"prefix": "TZ1"} + }, + { + "public": + "36a13786ac771f8ddda09c20875c4ff76f9ffea4a575a14f5f25855742571b00", + "address": "tz1YjXo6h5qfmQ4Z36x3hWZGthMkKNPd4uHu", + "decode": "8fa402508ee052357162b39351bc1be97922fd96", + "params": {"prefix": "TZ1"} + }, + { + "public": + "f3641b3d39394a7bf33c1470de0be8c1be470c964eda0fab42c552d65ba68de9", + "address": "tz1WGCYAtEfEuJeQFUWBQrizuJggNYaNmyEc", + "decode": "74887385b8e068e55c9a6727281d4ef7235a39d9", + "params": {"prefix": "TZ1"} + }, + { + "public": + "cdf3b42b1c5d6aad3e7b232bf89668776059977b1c5efe39949b33dd6b019f03", + "address": "tz1LbomsytznhWd8WyzdCK2W591Q8hJJLH6d", + "decode": "0a8c82b1a4fb475af076db30cb4fe595ccc4c4ce", + "params": {"prefix": "TZ1"} + }, + { + "public": + "d4575dadd21bc6180269ee1617a60c9a4c03daec8380bc56e2130b12db5b0fe5", + "address": "tz1Urab5Z8XChnpdpq9jjVex5zNPzQcCX1LM", + "decode": "6518bfb95f3a2d3e8db57e4aa0c70679c0bf08f0", + "params": {"prefix": "TZ1"} + }, + { + "public": + "9fe53a2576837af478b41358046aa0d5577c4c1d086e570076b8b60e43cc63e1", + "address": "tz1SX8pPwuGxR1B73fYb3Q4ZkJ7dSpDaEUeD", + "decode": "4b7b15007cd0296137be2429bab04737b26a4fb2", + "params": {"prefix": "TZ1"} + }, + { + "public": + "6721ebf01801cb9d252a3fcb269089fdf19e7ca122f3032e8be9f18b45d15402", + "address": "tz1g89XFcJ2eA29MeB8rmEVSZqgdxNsCkv37", + "decode": "e0b3dd292246971183c7c5701d9b0bdae815f14e", + "params": {"prefix": "TZ1"} + }, + { + "public": + "50356a761dd22ad372c0a0ee0a0c2bce9993e024c9061df62e534a441667c05f", + "address": "tz1e8n8rxLwa1WC4ZdJcw1kkuCQyZkVb2Joi", + "decode": "cae22d16fdba91a06e4c5f7c5338c1060e1fb90e", + "params": {"prefix": "TZ1"} + }, + { + "public": + "523db295cffbfdd65102df87c7f3de4ae739a77c2dc47a0e75714be19ebe4b3e", + "address": "tz1gFzr3kC339pWF27fy33kSg6JRPqDXNAj5", + "decode": "e22ff304da74dc6d96ff727826252813afa14f03", + "params": {"prefix": "TZ1"} + }, + { + "public": + "22b57287e05afdd0855732a0768c1c759984ad10028b17e28cec1c657ff1df3c", + "address": "tz1Lwd7w3XugsHRAw8bjYn1DpmYMp6re6s1B", + "decode": "0e4bef9f972d435ce3f3145dec840b1cbcc16dad", + "params": {"prefix": "TZ1"} + }, + { + "public": + "568c0fae6813ef0af775af04e3a4866c6eb6d92f42aa0a82ead13eb51a17261e", + "address": "tz1c6UfAKUcDUWoU7wGe5VnCtqhTgDdxMhtb", + "decode": "b48280c9b5ad5a1e3367cffad4a48b71624e9390", + "params": {"prefix": "TZ1"} + }, + { + "public": + "14607b36da666b3fbbd4107ff8443d3a9a9b7a705f834231982953f5654249c7", + "address": "tz1Z8bbaSJBSGJG1Vz12S2fvAtr7xL2TQdHn", + "decode": "9400bfd6c664947492f459866f1ef89a7018f266", + "params": {"prefix": "TZ1"} + } +]; diff --git a/example/lib/test/address/xtz/xtz_test.dart b/example/lib/test/address/xtz/xtz_test.dart new file mode 100644 index 0000000..395062b --- /dev/null +++ b/example/lib/test/address/xtz/xtz_test.dart @@ -0,0 +1,17 @@ +import 'package:blockchain_utils/bip/address/xtz_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void xtzAddressTest() { + for (final i in testVector) { + final params = Map.from({"prefix": XtzAddrPrefixes.tz1}); + final z = XtzAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + + assert(z == i["address"]); + final decode = XtzAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/address/zil/test_vector.dart b/example/lib/test/address/zil/test_vector.dart new file mode 100644 index 0000000..94d78c6 --- /dev/null +++ b/example/lib/test/address/zil/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "032e5c8ffd63d76eb9f3c3e8b3cce025362daa478b42266e113c709752de52a797", + "address": "zil1fjhduvl5fhg2qas70p0fgxex34deh474qntc6x", + "decode": "4caede33f44dd0a0761e785e941b268d5b9bd7d5", + "params": {} + }, + { + "public": + "0358755d3d35aacf5ff657fc42988765526ea931383d7d3ee23eb3cd9469d696a6", + "address": "zil1dk8e0l96ym96qzzce3nuz46tqq6nwcajppxgs8", + "decode": "6d8f97fcba26cba00858cc67c1574b00353763b2", + "params": {} + }, + { + "public": + "02a365224cd84ba7603a589a1e45f6540f379063fd2cba15981f91c1b948b589d0", + "address": "zil122pvcm272s0y6ery4lhj2pfrmyfter8c8vzvxd", + "decode": "5282cc6d5e541e4d6464afef250523d912bc8cf8", + "params": {} + }, + { + "public": + "03a9da9830661c50fd865bdf50651343b51ed09f9420d04c85e2ecd15dea02e8d0", + "address": "zil1ysufc0jj4fc60ldu6ethlmgu94hyymuckf58hn", + "decode": "24389c3e52aa71a7fdbcd6577fed1c2d6e426f98", + "params": {} + }, + { + "public": + "023ac94c7d265e5116f4c61588534e0fef6d8497d2c262db481c595c8eeeef4275", + "address": "zil1alk0ypy3z6dwe3npcuvtj64h8fty4f56t5t9e2", + "decode": "efecf20491169aecc661c718b96ab73a564aa69a", + "params": {} + }, + { + "public": + "027a34bb3b36d9bc4cd34d8204503dae00cea920bea1450f0d692f53ad35a88f46", + "address": "zil1xsd9a6eh45jmu4y3al58fcp5yu889xz2pjw0nd", + "decode": "341a5eeb37ad25be5491efe874e034270e72984a", + "params": {} + }, + { + "public": + "02ed38306c8d106bf1062ed4bc8c12c0a323533f90cb3ff791d6a49e42b7805007", + "address": "zil1xl690cwet2upy6px9neyrmqcwpec6xhvqs2grs", + "decode": "37f457e1d95ab81268262cf241ec1870738d1aec", + "params": {} + }, + { + "public": + "02abe07329cd57eb5f4aa4a86231775a135a99bd31109015f9370c030efec84edb", + "address": "zil13r8qkqflcqrlt69cg3mp7mf6qjuhtdj7klrdsz", + "decode": "88ce0b013fc007f5e8b844761f6d3a04b975b65e", + "params": {} + }, + { + "public": + "0215414ebf08233cd41973298337a0ba85da26dfc38b482c40625b80e3ab512cd0", + "address": "zil1z0tuqd5n8dunl9046fyavh034z48ldvnte5mw2", + "decode": "13d7c036933b793f95f5d249d65df1a8aa7fb593", + "params": {} + }, + { + "public": + "02e7ae0b407f38eab68e0a236596ce0c31f685c539ca5a50c26f470b7f18eea917", + "address": "zil19q05nv790gske52zldlwnfcfq74mmrs2e296hz", + "decode": "281f49b3c57a216cd142fb7ee9a70907abbd8e0a", + "params": {} + }, + { + "public": + "02a29290a2e97e6c0d749f6d1a597e9f5a82246d80768f7c9ff1d4bd419f53318c", + "address": "zil19thl6znj992nj5dl0j8fzaanjyuegpw45kfh3j", + "decode": "2aeffd0a7229553951bf7c8e9177b391399405d5", + "params": {} + }, + { + "public": + "02daea1f46d525b4a56fa94364573dc7e3155cb3647804b75062328191c3794c0b", + "address": "zil1xhx9yudztlk94pqxmv6kguhgkgfn2f6m8nmwsz", + "decode": "35cc5271a25fec5a8406db356472e8b21335275b", + "params": {} + }, + { + "public": + "0366fe207b646e2259b06a940e5532ce47f1c83c5f0152ef2065da9e6ee7d600f0", + "address": "zil1c3zj4kpenqckm2t6h5mfp8zzr9gvfaldtmnn96", + "decode": "c4452ad83998316da97abd36909c421950c4f7ed", + "params": {} + }, + { + "public": + "02bdfaa35d701c1baf21db2a0028caeb386212e8728206a61da380b526524215a9", + "address": "zil1swwuffelmnv546d8prr9z8mr4ex5z2u9yxp52f", + "decode": "839dc4a73fdcd94ae9a708c6511f63ae4d412b85", + "params": {} + }, + { + "public": + "0232b2d9e7631da9eb5cbf6360ae4e026144d406d935c1893b0a89d7e64e2e677e", + "address": "zil1pmesf3mr0zz6cslwu3lwr2c9vk6d0pwpj89k6v", + "decode": "0ef304c7637885ac43eee47ee1ab0565b4d785c1", + "params": {} + }, + { + "public": + "03e35f85547ab43f10496f35680f3131cd1d5b96561271a3fc3733a8b7d3abbe5b", + "address": "zil19xypw2j24dwe80f3vcf0wnw7z3n7hzhun52kyj", + "decode": "2988172a4aab5d93bd316612f74dde1467eb8afc", + "params": {} + }, + { + "public": + "0274ec53c75825c1c89360759dc2dfd6317935158e2be25aed26d8cadacb575349", + "address": "zil1e4q59gnd2m7nnhxrqrg45ctncqn7e2qr0mcfw9", + "decode": "cd4142a26d56fd39dcc300d15a6173c027eca803", + "params": {} + }, + { + "public": + "03f65e668ad9d23e198f87537e4d9a164495ebbd91d65838dc6d4ac63a2f99d0ea", + "address": "zil19dd7aadfd6fxtzk9eh4uu49wr60e777wkwtwln", + "decode": "2b5beef5a96e92658ac5cdebce54ae1e9f9f7bce", + "params": {} + }, + { + "public": + "0321a1491baa123f3735f41d3fcd87079ae0824938e7e14f0e92185e52880eb88e", + "address": "zil1c5qr0de0s85jqpwf4w00fvgkgfknm9enwkhl5p", + "decode": "c50037b72f81e92005c9ab9ef4b116426d3d9733", + "params": {} + }, + { + "public": + "0399a382ca0d380b709be13357f388914d1c410a6428a57a974dae837790adca62", + "address": "zil14m2dl5k6x8t4msyxqtuj8tqszef8yzaerkfsey", + "decode": "aed4dfd2da31d75dc08602f923ac101652720bb9", + "params": {} + }, + { + "public": + "03cb703ac208ea45ccdf669e6efae72a7814a7bdf9919ecc00e36224f71d2df456", + "address": "zil1zetpayqtlnag3aazv2z5y80qntjvm3t780pdz9", + "decode": "16561e900bfcfa88f7a26285421de09ae4cdc57e", + "params": {} + }, + { + "public": + "03b31c7980536ef753e491c0a1bcb37e568badf5976a950b00cbdb4783aa94c1cf", + "address": "zil1mf5gypvef48ll90wevntd5z3lzr4jklla4wuhf", + "decode": "da688205994d4fff95eecb26b6d051f887595bff", + "params": {} + }, + { + "public": + "0313b964befbfee5c960708bf2bfac777ab285d48c0c36be44819f788d8b0c4241", + "address": "zil1g9w2k6h9epk2hrxfxrs23f9dmwgettv3uzq773", + "decode": "415cab6ae5c86cab8cc930e0a8a4addb9195ad91", + "params": {} + }, + { + "public": + "032f0888c0fe535f87e744fd7cc8e72dff8150148c080e90564fd68c0cdeba8a8f", + "address": "zil1rjnzearg89jdjgxzey4wcdwy9s55xskqecm7z3", + "decode": "1ca62cf4683964d920c2c92aec35c42c294342c0", + "params": {} + }, + { + "public": + "03e50a093da2a6ae86bee419a954a9ef0fea409fca67eed952a2a0f7d9fde5390b", + "address": "zil1gelzdtu268nsw54g5p7pgqu2muztlsu74htz5l", + "decode": "467e26af8ad1e70752a8a07c14038adf04bfc39e", + "params": {} + }, + { + "public": + "038c0a8d6ca1078dc2c90e146948db761eb2672e3275623cc4a2f55f90a317a319", + "address": "zil1rh4h328eytz65eufpptw9c0sqmzggncgjvw8hp", + "decode": "1deb78a8f922c5aa67890856e2e1f006c4844f08", + "params": {} + }, + { + "public": + "03b8a1941eabacbb82a1e6b364924b3aab563150a42e8c8473fbc476e724139f3d", + "address": "zil13jd33m4nllply283rfudldmhzmt7qtg5j9uyp0", + "decode": "8c9b18eeb3ffc3f228f11a78dfb77716d7e02d14", + "params": {} + }, + { + "public": + "030a1969d1a9a2213bff27850b8880f76c6f6ad106f4d1542f033249ea7988a434", + "address": "zil1z4yfv4jn6k62zz44xv9exq50vp5sktyl5ud35y", + "decode": "1548965653d5b4a10ab5330b93028f60690b2c9f", + "params": {} + }, + { + "public": + "03bd773fd07106b9b940324c515c772b6e70aaabc7c34a08682ad8d4103e80edd5", + "address": "zil13hcr2qfsxal7aks3kjzqmv4cnl3z98nhu0y9wq", + "decode": "8df0350130377feeda11b4840db2b89fe2229e77", + "params": {} + }, + { + "public": + "0224160a03fe6875071f8165033614934400828bfc03018724a93682f07f02f91c", + "address": "zil134msau9w5ms49c2k22y40yzqhcmp87ag08dkuj", + "decode": "8d770ef0aea6e152e1565289579040be3613fba8", + "params": {} + }, + { + "public": + "02be0d5bee6c9e5a8e76da1169b59dd904ae2dc08fa10d343956d7806c655cf996", + "address": "zil1em68a3twyr2rfskp2ls6rwf5fnsgvmkkrplr85", + "decode": "cef47ec56e20d434c2c157e1a1b9344ce0866ed6", + "params": {} + }, + { + "public": + "02d0ac1a8ad6bc50190766305c897f1aec7063a595f82ce6feeea733131edf4518", + "address": "zil1r85wqnpplt772yl46ul7p45r77p0h8q6p2n2ga", + "decode": "19e8e04c21fafde513f5d73fe0d683f782fb9c1a", + "params": {} + }, + { + "public": + "03e81ae4bcd7002174359138883f159476f5e4a2b488640023898a3766f2f9ff0b", + "address": "zil1q450cnq40xpx0wxzjwyew0k7rg2qcpw4v0twq6", + "decode": "0568fc4c15798267b8c29389973ede1a140c05d5", + "params": {} + }, + { + "public": + "02e9bdf38ed451d28fdbdafd83e24d64075e5eb552150b33928cea72992d432e54", + "address": "zil1rpwf2upwlf50wct95xne2xnz05eetfcq3hnd6g", + "decode": "185c95702efa68f76165a1a7951a627d3395a700", + "params": {} + }, + { + "public": + "02813b32b80f46c87787c6fa72798e69e4abbe48832213d451a5385df3778ba824", + "address": "zil1vyucndr2uncy2r3cxdddx0945qplad77wmtcv9", + "decode": "613989b46ae4f0450e38335ad33cb5a003feb7de", + "params": {} + }, + { + "public": + "03933d16d4b26ca025d698a52146add44f68c4a4302431bd9f50895cf219eebe76", + "address": "zil1rm9z2zscswc4y4pll9fzary8vqn2kt09j3auar", + "decode": "1eca250a1883b152543ff9522e8c876026ab2de5", + "params": {} + }, + { + "public": + "03984f39e7825867094daa0ea4834e75669944034b59fdb3bfdd76b1d47b01e06f", + "address": "zil1xw5800pc45c32jhrf0ddca4qj8xpdcsgl8e7en", + "decode": "33a877bc38ad31154ae34bdadc76a091cc16e208", + "params": {} + }, + { + "public": + "02d130b849c0a62788a83e1313435db3417d40464ea05a5ef0d76ab81d10c86210", + "address": "zil1ymnr9gxjzqr6u8pdm7tvqkxlg5h09fdhjzfnej", + "decode": "26e632a0d21007ae1c2ddf96c058df452ef2a5b7", + "params": {} + }, + { + "public": + "03c401c97a4ea344a178b61236ae3e8ba7e32cc0540777ec2389278c49c07354ba", + "address": "zil194s8knsapnkmchrmamrt53jevx4z9mwtvqfg3p", + "decode": "2d607b4e1d0cedbc5c7beec6ba465961aa22edcb", + "params": {} + }, + { + "public": + "020f61bb9142d001ae86d17bc92f53399cc1f317fe112664a3d78799abb1ee90dc", + "address": "zil1ce0rpvdsf5px7j7066v6cm2fgfp5hl36gnmkkh", + "decode": "c65e30b1b04d026f4bcfd699ac6d4942434bfe3a", + "params": {} + }, + { + "public": + "020c41c98dda63ef56714badb671cff041e2e301540c40338361471dba6a3a2849", + "address": "zil1k44zaycctajlgshnc333zvtdn9kv0qxfra0q8m", + "decode": "b56a2e93185f65f442f3c46311316d996cc780c9", + "params": {} + }, + { + "public": + "03d2ebcda6be3bce847418d339cf01f31fb6518ca58e8ddd679d9c588ca314eca1", + "address": "zil12ve6yeq48wqqy89ypj83jduspwmk4qrlykpcvc", + "decode": "5333a264153b80021ca40c8f1937900bb76a807f", + "params": {} + }, + { + "public": + "03fa1f55652b1a510e3914baa24f06e1418ee19acb84200f4cbae3f56d049605a1", + "address": "zil1qf56u6nt7zukwel2rqvhf2yp72sgvx2hwcu7gk", + "decode": "0269ae6a6bf0b96767ea181974a881f2a0861957", + "params": {} + }, + { + "public": + "03ec193861a2d58234276f091a004fbd0ff9843fc6070be615da791102a839d967", + "address": "zil16lu4z2kaqq0d6t8uqf0zeshd8wn9qs4cvrlf8y", + "decode": "d7f9512add001edd2cfc025e2cc2ed3ba65042b8", + "params": {} + }, + { + "public": + "029e00a3e803744bacd4a12e9ad524c68a8d6dbb513f19dbe9b96ec495a1eda966", + "address": "zil12z30plt93adrwea4mdgxu9yxgxqjsxyu6n2ffm", + "decode": "50a2f0fd658f5a3767b5db506e1486418128189c", + "params": {} + }, + { + "public": + "035c105390d4b7bacc4429cfa22ab8849f40f0bf2aa6191a568777423a06b02e39", + "address": "zil1m3jp78dxq9yyuan78f9hqnyxlnvcg9rtyuucs8", + "decode": "dc641f1da601484e767e3a4b704c86fcd984146b", + "params": {} + }, + { + "public": + "03c96ca2d1213419894273a1dda300667d45d24a133955ee8b05b9afce1e0d3b37", + "address": "zil1elgkz3ha376c0agn4w6nhmqdtwn8zhckr36esu", + "decode": "cfd16146fd8fb587f513abb53bec0d5ba6715f16", + "params": {} + }, + { + "public": + "02659f2f385f8e4cc4da827690ec67af9908306d3896cc3bcd360f276ff090c69d", + "address": "zil1739dtz6z6280rlz3wjrtvr7u2tr0mrz5dcl8qa", + "decode": "f44ad58b42d28ef1fc517486b60fdc52c6fd8c54", + "params": {} + }, + { + "public": + "0242e3bc4023ccdc37106850484f5e2749535a718444acaf7b6f4246399c301d81", + "address": "zil1yne79m3daexfu48dkf679rj25v6y80ggjc5ap2", + "decode": "24f3e2ee2dee4c9e54edb275e28e4aa33443bd08", + "params": {} + }, + { + "public": + "02866b88d53851547082450c95695091881ee50a3e5fed96151a2f9e62d213ab07", + "address": "zil1047fjvzevls8ply93w5qt9q36q96x79swa4z3t", + "decode": "7d7c99305967e070fc858ba8059411d00ba378b0", + "params": {} + } +]; diff --git a/example/lib/test/address/zil/zil_test.dart b/example/lib/test/address/zil/zil_test.dart new file mode 100644 index 0000000..6154cea --- /dev/null +++ b/example/lib/test/address/zil/zil_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/address/zil_addr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart' show testVector; + +void zilAddressTest() { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = ZilAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + assert(z == i["address"]); + final decode = ZilAddrDecoder().decodeAddr(z, params); + assert(decode.toHex() == i["decode"]); + } +} diff --git a/example/lib/test/algorand/mnemonic_test.dart b/example/lib/test/algorand/mnemonic_test.dart new file mode 100644 index 0000000..9cf8ca5 --- /dev/null +++ b/example/lib/test/algorand/mnemonic_test.dart @@ -0,0 +1,25 @@ +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic_generator.dart'; +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic_validator.dart'; +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_seed_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip44/bip44.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip44/bip44_coins.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'test_vector.dart'; + +void algorandMnemonicAndAddressTest() { + for (final i in testVector) { + final mn = AlgorandMnemonicGenerator() + .fromEntropy(BytesUtils.fromHexString(i["entropy"])); + final valid = AlgorandMnemonicValidator().isValid(mn.toStr()); + assert(valid); + final entropy = AlgorandMnemonicDecoder().decode(mn.toStr()); + assert(entropy.toHex() == i["entropy"]); + final seed = AlgorandSeedGenerator(mn).generate(); + assert(seed.toHex() == i["entropy"]); + final bip44 = Bip44.fromPrivateKey(seed, Bip44Coins.algorand); + final address = bip44.publicKey.toAddress; + assert(address == i["address"]); + } +} diff --git a/example/lib/test/algorand/test_vector.dart b/example/lib/test/algorand/test_vector.dart new file mode 100644 index 0000000..11ea732 --- /dev/null +++ b/example/lib/test/algorand/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "mnemonic": + "canal cause father input health sort hand promote crime erupt snap bronze trick happy solution because farm escape address can law uniform crucial absent tube", + "entropy": + "082149a74a17353e1b2dac9c39939acb31f4a3d9d9139942d3060ef2beb58fa6", + "seed": "082149a74a17353e1b2dac9c39939acb31f4a3d9d9139942d3060ef2beb58fa6", + "address": "LT74JRUCTFB35LZT4NJV23ZHVWNIOGDMTUJ4ASCXDXDDP5ZQFURIZAHIXA" + }, + { + "mnemonic": + "hat wife olympic claw endorse push where pool unveil law because dolphin cram use same toe eyebrow despair label mandate casual head among above wisdom", + "entropy": + "4cbbbe34a1e2a4ba4a1fa8737f9f270c1499bedf97e38a024ff870d811a8fd80", + "seed": "4cbbbe34a1e2a4ba4a1fa8737f9f270c1499bedf97e38a024ff870d811a8fd80", + "address": "4RQA7QQCWRW3NYWXPJBTD55GIATY7YYFVMUHG6ECRGPAL4EDINHJOVBUPU" + }, + { + "mnemonic": + "food loud valve eager acid coffee wash tomorrow birth diagram anchor pact next iron leave flame neck catalog ahead winner entry they attitude above panic", + "entropy": + "d60a21e24ff480b4ec3ee4b538cf10eaa94ad9dd4f589dfc480abedf2582d781", + "seed": "d60a21e24ff480b4ec3ee4b538cf10eaa94ad9dd4f589dfc480abedf2582d781", + "address": "5GGUFBFT3KZ3JO7MFM6Z7B5QQOL7XAL2B5VAL5JJ6P6CDQRPIOAAEPCZTM" + }, + { + "mnemonic": + "silent frost also beef replace hurt village seven soft skin trip symptom simple pulse custom slight tackle remove front prevent wash urge myself above loop", + "entropy": + "435e970e40615bbf81bec472a6b2d1c98d64b6d2a6cbe87eadbaa4bafbbd4b92", + "seed": "435e970e40615bbf81bec472a6b2d1c98d64b6d2a6cbe87eadbaa4bafbbd4b92", + "address": "I5TURDC5ZOPNSPY2EJMETPLZ3XGNGQJVHOVSTSSOFTY2C5Q3JF7CLAVYEA" + }, + { + "mnemonic": + "coyote before equip cross truck attitude cool regular coast blind city spirit venue bonus opinion poverty hamster visa budget total elegant scheme attitude absorb enjoy", + "entropy": + "8d0945984093f43af8c5b466f1c552203df9656c13a9452b3d3b5ccea302d7c1", + "seed": "8d0945984093f43af8c5b466f1c552203df9656c13a9452b3d3b5ccea302d7c1", + "address": "IZHKX6QJU7UGRPKXWXA5K4LUDU6R47QBRYKOTRWQXF6KTKAKDJK6AON2DQ" + }, + { + "mnemonic": + "response wrestle tuition balance salad bomb civil defy enact lazy race physical sting fossil rich belt explain insane limit siren scatter vintage update abandon empty", + "entropy": + "bd957fd41b21df6430a5394b9adf603ffaea6f29f714843add03973ce0d0d31d", + "seed": "bd957fd41b21df6430a5394b9adf603ffaea6f29f714843add03973ce0d0d31d", + "address": "2IYVLRHPRJZZJ4GEMK6YUAWARL32GC3JS4DZDYKHIBLVZ4FZ5UVQ756J3Y" + }, + { + "mnemonic": + "moon ginger job toward bread snake discover attract seven few maximum monkey file wash taste hire price treat hedgehog error fever return hospital ability craft", + "entropy": + "7c8418f060be8d34dfc70e2566d512f318abddc71b6c53f539d5ccb4aae0be2d", + "seed": "7c8418f060be8d34dfc70e2566d512f318abddc71b6c53f539d5ccb4aae0be2d", + "address": "7AJOJTZV6WK7BHI4PXONZHNY4DPSZL6NOBJSCOZS463YCMWTAHOH76UMTM" + }, + { + "mnemonic": + "unlock maple accident labor aim fit grass motor energy morning rule narrow scissors own destroy earn broken final tourist favorite tonight label spin above that", + "entropy": + "70e7e102c4a7025fbd6c9050fa637a31896078864745e4a0d5cb4145f2f03d9a", + "seed": "70e7e102c4a7025fbd6c9050fa637a31896078864745e4a0d5cb4145f2f03d9a", + "address": "XE4ZH775COKRUIJTUAC3PS6TTPMRBK4G7UXLILIKGCIM2JW37C3H6NZQGM" + }, + { + "mnemonic": + "upon alley mutual age toddler remember light plug open broken resource unhappy wedding morning hope pole pizza speed course drama talk stuff please abstract mouse", + "entropy": + "77a741244db0f1d632d0a6d924076fd57efc3fae8da72d45b46222c46e5ecff4", + "seed": "77a741244db0f1d632d0a6d924076fd57efc3fae8da72d45b46222c46e5ecff4", + "address": "XGZINQRCNXL5D53NKNBDEUQDSGXNSWTF7GCC3AORABSVHOQ62DDEQ3U27E" + }, + { + "mnemonic": + "major toilet spend bird brown debris olive honey image inject vicious annual gaze happy build skate book object flight tonight wrist blouse craft able black", + "entropy": + "33f4b8a269818ee144336d8a031de79750b0a3b903cacc00e6b1483eff604046", + "seed": "33f4b8a269818ee144336d8a031de79750b0a3b903cacc00e6b1483eff604046", + "address": "VXYJDRGMRR244GBZHZC7OUOVBGLYKBE3EN4BG4YGFIGEU7NGCBEBJRO5S4" + }, + { + "mnemonic": + "message great essence replace nation witness obscure camera bachelor choose tenant write credit one enjoy inner follow network more remain system ten talent absent sketch", + "entropy": + "5f8c999a6cabc9f20bb32089100abee98f996a566974d532a51f596bee7bafbb", + "seed": "5f8c999a6cabc9f20bb32089100abee98f996a566974d532a51f596bee7bafbb", + "address": "NM2KS3EPB5S4JA4SJRDYCNXFPFRQLMMAHMVR4MUTIJU6KRRFOATB6NNVMQ" + }, + { + "mnemonic": + "detail destroy above wash swing embrace joy regret view world knife gauge wine lawsuit swarm pen nothing pyramid exhibit draw accident horse spin above general", + "entropy": + "e2090f01760f6e2211afb49f6f7ff708c6fdf86d7ba2b6c42b9f26b400b73d9a", + "seed": "e2090f01760f6e2211afb49f6f7ff708c6fdf86d7ba2b6c42b9f26b400b73d9a", + "address": "6FZXW46QBVPR6J3NVMEUCII7PXNYU42XLQWBMWOP4YLKWSDMJG5K6FE77I" + }, + { + "mnemonic": + "ill kiss empower candy object bag gift rifle awful bless income nest arrive drift okay main smile flower cat anxiety soft decide short able early", + "entropy": + "87b31e9214024c4638acb985e805e54849060b3d538665669647a02067e3d858", + "seed": "87b31e9214024c4638acb985e805e54849060b3d538665669647a02067e3d858", + "address": "SISS4GO5LM3WMPV32IIS7NQBJTCFZNO57WTPRCRJODBZSO5FKNJDEHDRYM" + }, + { + "mnemonic": + "child purse angry always attack zero battle silly frog law pretty vibrant axis category obscure candy measure dirt bring october need cat fabric ability eternal", + "entropy": + "3fa1eb11783087fe6ba2c8e97a5f54377f88900853214fac4f3890e9498f2c2a", + "seed": "3fa1eb11783087fe6ba2c8e97a5f54377f88900853214fac4f3890e9498f2c2a", + "address": "KTRZUA7LGB2GQVAEF7RTE6Q4S3KPLGJ2OBDPRFJ76RCCX2NXC7DE5APAKI" + }, + { + "mnemonic": + "train action quality noodle patient delay resource venture zero april mountain scrap bonus trend disagree arm labor pencil length accuse vessel path polar ability erosion", + "entropy": + "38a7405e6189d0e7f056f2fdbf022117bc0ca0dba70be2ab28001b80f983ee34", + "seed": "38a7405e6189d0e7f056f2fdbf022117bc0ca0dba70be2ab28001b80f983ee34", + "address": "6MVVGQBVHPOEO6BU7ZFSBILTPS4RU6G76CU4RTL7J2TEU5ZJQZC6ZVETDM" + }, + { + "mnemonic": + "manual miss practice vital bridge accuse can junior zero dress input puppy negative stone crew rice pool case unusual army garbage dilemma square about usual", + "entropy": + "3b74e35251ef8d061c2479fdaf50e9e0fa49596b26b940cd88dcc1c0aff86c7a", + "seed": "3b74e35251ef8d061c2479fdaf50e9e0fa49596b26b940cd88dcc1c0aff86c7a", + "address": "D542VSQM37ZRR3KKG5I4LCBMC2GJD7I3NMIOF6KE6XTVO3OQO7HA6WWDFQ" + }, + { + "mnemonic": + "happy mad forget circle pony roof symbol argue diesel gaze citizen friend head canal spawn camp six market secret toy left void frost absorb put", + "entropy": + "476ba1b692f2d3ee8e9b0bec299852ce05358414da204e0e2285679e3fd6afcb", + "seed": "476ba1b692f2d3ee8e9b0bec299852ce05358414da204e0e2285679e3fd6afcb", + "address": "WDQES2PFO2YEGWUQ4FJ2OXV2S3V3JXUFP5TOR6SGJY2KWTOQ4J2YHX5MIY" + }, + { + "mnemonic": + "hockey robot lamp brown female fringe system outdoor kite robust rebuild letter jeans music ready wall phrase stomach laundry inflict wire over hen absent fire", + "entropy": + "63cbaef9d0712a74993b9dd9d3ae6609d8bb475ab6f61e8d75fb3617fe7766ad", + "seed": "63cbaef9d0712a74993b9dd9d3ae6609d8bb475ab6f61e8d75fb3617fe7766ad", + "address": "ROCX26GFATDJS4KWLBZQ7PUQ7KNEGH62EID35WPZMPUULM3BCE2UVB7R6U" + }, + { + "mnemonic": + "region cheap team obscure aware ordinary tube hollow sustain attract high uncle engine wrong mammal divide glare humble purpose eight resource brass airport absorb luxury", + "entropy": + "a4bd49bd8529087142fd6cd7b603d7c83ea5fad7f03f16bbdb5c6fc4db6cb0c0", + "seed": "a4bd49bd8529087142fd6cd7b603d7c83ea5fad7f03f16bbdb5c6fc4db6cb0c0", + "address": "DR7R2MTGDFZU6TCLFSPXXEABXBC4GGWVIJNMPON57QGE5ZXUK3MJMZX4DQ" + }, + { + "mnemonic": + "depart forum bar blush silent tomorrow fire adult battle arrange observe face security square say slab abstract various actual dream cry game metal able south", + "entropy": + "d6e9d6248831e490e7ca039a10c3301965e14dfff7ca0760fc0528949a7c8151", + "seed": "d6e9d6248831e490e7ca039a10c3301965e14dfff7ca0760fc0528949a7c8151", + "address": "T47VSJODYMYVZJHZDZLGETNGBA3F7NGWZWXFOZPC2Y2MYYGFKGNSVNZYBU" + }, + { + "mnemonic": + "key fit hip company divert fold indicate anger vapor crazy sock include flash song biology vast unfold process wrestle ostrich convince region dumb absent skill", + "entropy": + "d0f3d5d7e8e21f6a5dae088bb70c9c2737ac3ccfa2f169e7aafccfc917d27ea8", + "seed": "d0f3d5d7e8e21f6a5dae088bb70c9c2737ac3ccfa2f169e7aafccfc917d27ea8", + "address": "7NSDTADTR3BXGPJ3B7U7XKAFCCDVVF5JONQRCEKSHOBBPB46KYIDFW4WLY" + }, + { + "mnemonic": + "ring radio hunt huge hair version morning equal olympic emerge door trap elder filter limb exile stick spin captain kit lecture question wrist abandon flat", + "entropy": + "d035ecdeea2634cbff114cd22cd28274aea35939b04fad7e7444ae873fbece1f", + "seed": "d035ecdeea2634cbff114cd22cd28274aea35939b04fad7e7444ae873fbece1f", + "address": "U47B3M6UHEC2HNFCMINVQX4WG7IDIP23WFPMCVGBZMEJT7GDO2EQRXEAAY" + }, + { + "mnemonic": + "river candy fork annual current isolate change glow eternal miss increase final position guess soda vote rely weekend empower feature ozone better sea absent style", + "entropy": + "d655c8b696001bdac5c4636c7263e56835d49dc5f9f5ab453e9242454f563cb8", + "seed": "d655c8b696001bdac5c4636c7263e56835d49dc5f9f5ab453e9242454f563cb8", + "address": "APRN3YTQV4OFMCBBUDPFPERDGUBZUD26IMCCVMOIJSS6SU4JZRV5PZ7H3M" + }, + { + "mnemonic": + "quote fly foot loyal athlete pilot camera dice icon pigeon enhance sugar assist gasp render weekend game fame extra derive chicken panic vocal absent furnace", + "entropy": + "807dd6b54818879316643d822b29958ced8680c116f9f99a14a2b6d3937eaabe", + "seed": "807dd6b54818879316643d822b29958ced8680c116f9f99a14a2b6d3937eaabe", + "address": "AXF23DW7ZZMBXZNOKSK3PR6HFX6GZPQQMRNNTWL4U6LSQ5R6IETKUPHCMQ" + }, + { + "mnemonic": + "onion steak twenty loyal bind panel become hungry book expose fold twice reduce vast december bleak kitchen length bulk happy sad truth term ability traffic", + "entropy": + "d64475d649280b7e7e426fcc2814b5b40edac6178717d803203c8ed65ea7ef3b", + "seed": "d64475d649280b7e7e426fcc2814b5b40edac6178717d803203c8ed65ea7ef3b", + "address": "HOHMFHBZ2IUVUFJUATRJ2KZWVELFYNJZCIJIJZE3MKRC5AO6OP3QISBDSY" + }, + { + "mnemonic": + "lawsuit impact fall car loan test chronic dice rate cluster window reward abuse acoustic allow dignity grunt broken globe recycle happy allow remain abandon mango", + "entropy": + "f1735ca42482417e0f653d911dcbf68b9b0008d4003e392387c63e7bb41ab016", + "seed": "f1735ca42482417e0f653d911dcbf68b9b0008d4003e392387c63e7bb41ab016", + "address": "5P7Z4PHBWRTGSJX4F2RBFW6OO4XLB2VPYXYTHO6SUFL6MZ6A2DBOVFQOSY" + }, + { + "mnemonic": + "tragic scatter better spend tree coast strong increase breeze witness dream cash junior object shiver want lab obscure arrow space evil because fossil ability vintage", + "entropy": + "371f302b14fd73b3e4ba72dc283f8534923c60c6f8f6e013661904fd264f7c2b", + "seed": "371f302b14fd73b3e4ba72dc283f8534923c60c6f8f6e013661904fd264f7c2b", + "address": "6G6S46NOCSPMZM5EQNHEFRXXY3G62KDUMPXNXIHOF6NUKYNCY4UCNZ34QY" + }, + { + "mnemonic": + "wave aware camera traffic easily vacant void snap click mad amateur fatigue autumn blossom promote fee current knife layer reopen gauge trade bubble absorb obscure", + "entropy": + "bf1744416ccea2c1b35ecd5569610f3cd50760849554b0e99efc664bb09aabc3", + "seed": "bf1744416ccea2c1b35ecd5569610f3cd50760849554b0e99efc664bb09aabc3", + "address": "LEJYGDND5RETNCWOQLIQGO4MGGBTYCT3VQVUHHNEFLM7UFIOBFW7G4KIKY" + }, + { + "mnemonic": + "curtain assist love buyer digital toddler hurt elegant street task fantasy area crumble educate census powder gun impact heavy sweet spin water clerk ability tank", + "entropy": + "b171c308f7f19e8dfb8d47b78637a6b4601a1aa924a93f73dcd4bafd68df4f25", + "seed": "b171c308f7f19e8dfb8d47b78637a6b4601a1aa924a93f73dcd4bafd68df4f25", + "address": "YOUWJUBEEEAKVJQC5TGQ3CCCU5O52CI3TYQ62WPAN6CAOOCD5M6THWNHF4" + }, + { + "mnemonic": + "hill machine item document fire erode crucial huge skirt spice angry type reveal banner spider rookie cereal shift similar onion fame idle emotion abandon hospital", + "entropy": + "5d63a1ed06942b328da66e5566f411bc3e5c4934dabb2c71f191ad39a9c21909", + "seed": "5d63a1ed06942b328da66e5566f411bc3e5c4934dabb2c71f191ad39a9c21909", + "address": "2TINSQW3E227QO3OUNC3VQZJGWU4GB22YSFGBGREVU3WDMBRSC34AJMKAA" + }, + { + "mnemonic": + "name six coach infant joy vendor grant lawn amazing buddy pilot margin term staff cross curious winner loyal carbon pigeon net oval goddess about issue", + "entropy": + "967472593447bcc8b70c7e3e58c7497fb86f5083e635df27e1444a5aca76866c", + "seed": "967472593447bcc8b70c7e3e58c7497fb86f5083e635df27e1444a5aca76866c", + "address": "2RQN2CNPP4FTT3SBSMGGLSL2IING7TK3SGQFTEMDWVWJURRMXWVEORADDM" + }, + { + "mnemonic": + "ready oval raven final drink typical season elite situate sock double equal genuine crisp blood mass stumble machine wreck panel rebel will chief able smart", + "entropy": + "966de7646985a1af4718484d867383c0a4b0cefc8288bd6661fcf999d9ecfb44", + "seed": "966de7646985a1af4718484d867383c0a4b0cefc8288bd6661fcf999d9ecfb44", + "address": "OVBD33FQJ4JI5DVOQVHSSBTVK7FX3CRCFTVIO4HTVZUZEKNWNP5YSYV2OY" + }, + { + "mnemonic": + "sand flee divorce embark spare trim joy shoe attract level tray grit pizza resource local betray lounge hammer another loop dignity purchase violin able race", + "entropy": + "f93516808434e8a2136fc6762860cf6bd652de6a701522241a133e089fb88a5e", + "seed": "f93516808434e8a2136fc6762860cf6bd652de6a701522241a133e089fb88a5e", + "address": "CXDEEY6AQL2W2LN2XMR3V4TDEMIGO3TAPCBEMZ2FWC26RQMAHCQYGPNJHA" + }, + { + "mnemonic": + "police position detail example busy prepare kid jealous travel adjust cabin cannon zone immune parade myth siege romance suit cabbage dose that other abstract patient", + "entropy": + "3d1daa78e6948fa74a8f773ce7803f16e2ffc601949240e62eb2fbc1a07fa3f3", + "seed": "3d1daa78e6948fa74a8f773ce7803f16e2ffc601949240e62eb2fbc1a07fa3f3", + "address": "XB7EEUFDHSVBAEWWFBNXPCUCTO2IEOMGSA7SX3527DBVP7R5B2ODT7E2TI" + }, + { + "mnemonic": + "sail rather avoid expose quality logic wing mention actual march lamp expose settle behind crystal more million fan ceiling scheme estate minute cloth abstract involve", + "entropy": + "f1952c200a95570e761f8b17f0a1f90a356252a8c68f65b4d4490abc26357ae5", + "seed": "f1952c200a95570e761f8b17f0a1f90a356252a8c68f65b4d4490abc26357ae5", + "address": "RND3EVXK6NC4BKLJB4UZ2RKA4CTDEPSZJB5MH744LRE3XGG4POJBUF534Q" + }, + { + "mnemonic": + "battle practice curtain regret beyond timber belt tackle execute chimney okay already future pitch enact wheat cupboard foster lizard gentle quantum pepper sadness ability crouch", + "entropy": + "9a586a6c4aeb8a889f02dd7902ca3373402f962ee9f9ae01970513a6d78bbe37", + "seed": "9a586a6c4aeb8a889f02dd7902ca3373402f962ee9f9ae01970513a6d78bbe37", + "address": "EKEXZKRMAJAKK4L3BWQV2QO2OHR2Y4CJDSCQ46SXTLL5VFAZ5BMHIKR6OU" + }, + { + "mnemonic": + "clarify photo master same bundle pig margin text evolve secret coach gaze obscure ripple spirit domain journey fog agent else clever rebuild endless about alter", + "entropy": + "4fe96811ef2b0f92feb0df71a270590a264ce942fa40c393d609824415cd3669", + "seed": "4fe96811ef2b0f92feb0df71a270590a264ce942fa40c393d609824415cd3669", + "address": "L5I5HZQTHWAKBIPJGIYCOXKYW7W65L2I4YESKGHPH4U2PHCC3PQWRSWHXU" + }, + { + "mnemonic": + "swift frog urban bike fork wing enforce frame vendor blanket radio merge chapter health erosion science voice space orbit pupil chunk bridge possible absent spawn", + "entropy": + "de4e97de63b1adee47895c91d78561b73893a895e9c0ab17f437df5a146f10b5", + "seed": "de4e97de63b1adee47895c91d78561b73893a895e9c0ab17f437df5a146f10b5", + "address": "JLGGNDD5N2KW65LOKARIMBPANJPKO5BESH5NLTTZPALLA26VXUYTJDRTTI" + }, + { + "mnemonic": + "skirt service sausage waste climb purchase pretty access offer interest island window method journey glance depend critic such cactus dynamic picture august vanish ability click", + "entropy": + "550e717f7b8f95b8465501cb6cddecb61fc6e155ec3a9e1936404c24d23c283e", + "seed": "550e717f7b8f95b8465501cb6cddecb61fc6e155ec3a9e1936404c24d23c283e", + "address": "47BOCJI5JLEH3ERUNQIFP46OW74TIW3XD63ZTUFHXXYMLVGF22MVOKP7IU" + }, + { + "mnemonic": + "legend debate endless blush hair struggle sell scissors crisp mind clerk vapor tiger code gasp library story planet occur cement pet frog ozone absent comfort", + "entropy": + "fc134e938821345d6f18c19d39e35416ff70b4040c81b47ea93153b2d174d1b3", + "seed": "fc134e938821345d6f18c19d39e35416ff70b4040c81b47ea93153b2d174d1b3", + "address": "5TATMXKPKFZUAYPTEEZEOBYZECUZV4HPN3COBQYIUKT3CK75V56RE3D2TI" + }, + { + "mnemonic": + "trust across denial gesture lazy bid aim verb bring uphold polar apart trial drip wine belt people ahead cigar coffee version toilet town above load", + "entropy": + "4d97c07416363f58a880f2e1b0fb4ea510f40c71ff14164dc151d262798fcb9c", + "seed": "4d97c07416363f58a880f2e1b0fb4ea510f40c71ff14164dc151d262798fcb9c", + "address": "RD5WR2C2EGC4MLN6LPPKVIWFAIWHUTKZA3ZB4BGFKRCTHVL64PEFAJ4R3M" + }, + { + "mnemonic": + "bridge verb rebel faith throw crazy spirit age absorb behave foam shift carbon author shock fringe toy bleak surprise obscure album person oak abstract nephew", + "entropy": + "dea07c6621a570cb40da04061805b45c3c913dc8185d33e7c5b485f9028dfaf2", + "seed": "dea07c6621a570cb40da04061805b45c3c913dc8185d33e7c5b485f9028dfaf2", + "address": "3DMWSGU5U5MMOE2QXLFZTIGLNOIJSFRF2PSCGNGDY3OAADLFJP6KYWRHGQ" + }, + { + "mnemonic": + "tired family illegal recycle unknown effort boost lazy useless artist exist submit walnut toy walnut job thrive velvet power source meat recall picture absorb near", + "entropy": + "15a714e23efbf61a35637e8047839f806dfb99db1e780987bc52010dc5cd8ad4", + "seed": "15a714e23efbf61a35637e8047839f806dfb99db1e780987bc52010dc5cd8ad4", + "address": "S2HL3BMVIQPDKT7BZHT2YTJCIFTQ6DLL2SEL2BMJP3E5V37ZMYV4KSK5SQ" + }, + { + "mnemonic": + "satisfy wise garlic consider leader alpha trick bracket upon write shallow tilt dance pool harvest pipe perfect cart type unhappy slim minute camera about tunnel", + "entropy": + "fa1dbfbff4423f1c0cdd1a77a73f8a21ae1ba02e4da518c588d7d5ee65351664", + "seed": "fa1dbfbff4423f1c0cdd1a77a73f8a21ae1ba02e4da518c588d7d5ee65351664", + "address": "XOA4MOFRPRULQV5BB6JYMKN3XGB7NVAQAMWVF7U26X5ONREZJZTMBRV4OE" + }, + { + "mnemonic": + "depart mesh asset toast satisfy capital will orange tribe hammer kangaroo digital gossip try erase chuckle oxygen minor shell jeans sport faculty dream about pave", + "entropy": + "d6f1621b30ae5f8864df9b42271af3de73b2a78f8928f24ce38a7b57e9465168", + "seed": "d6f1621b30ae5f8864df9b42271af3de73b2a78f8928f24ce38a7b57e9465168", + "address": "DJAUHUUREQSMSTSOASUMJJWW34AFDRJ756HOYA4A74W3FAX2J7HF3QDCQE" + }, + { + "mnemonic": + "pause that milk inner assault calm eternal easily answer supreme scale desk van exchange onion render violin supreme glue lamp old figure romance able join", + "entropy": + "0bfd371947c70682b089454d783680bf93f83a5913b6a27ff6c7cc074d587157", + "seed": "0bfd371947c70682b089454d783680bf93f83a5913b6a27ff6c7cc074d587157", + "address": "L4Z7SI2J42ZDCXHYAF7HCX44GK37RK5XIRKA6AH5YYNP4DAQWMR7JBXM2E" + }, + { + "mnemonic": + "viable layer market dune rocket raven fatal curious robust stadium person three february auto garden goddess garden merit absorb run hazard primary maid above choice", + "entropy": + "9a975f1041b4ddc972ea35dafdb446112e2a3ef42b64fde2a201d4fbb4aac290", + "seed": "9a975f1041b4ddc972ea35dafdb446112e2a3ef42b64fde2a201d4fbb4aac290", + "address": "O7Q4DGOFPAPH7S663KDLP6BXZ4AQICZKJNOB7XT3AZ5PDFQ2VSOJ53GBNU" + }, + { + "mnemonic": + "parrot dance grit prefer chalk legal cigar flavor human congress scan before snap economy warm rapid latin cruel eyebrow legal mushroom fog conduct ability script", + "entropy": + "03d54dcd9cfa92fd1da55876c34b8043a1e618e5feb1eb238da2f6e74869d925", + "seed": "03d54dcd9cfa92fd1da55876c34b8043a1e618e5feb1eb238da2f6e74869d925", + "address": "RQS6LDD6DM7STGSFDFGCESV3LL5YA6GHZARMOLFLMTENC6RFDQ4I6N7FS4" + }, + { + "mnemonic": + "undo assault already disorder food belt tree develop produce multiply slim vacuum icon exclude edit buddy trip spread rookie online ocean switch convince able vault", + "entropy": + "6767430ef663ad53fc9c3c5d5da497092fb83bcd681d46c7b477af79cc70f345", + "seed": "6767430ef663ad53fc9c3c5d5da497092fb83bcd681d46c7b477af79cc70f345", + "address": "SMRZN6X44N47VTZB42V66SLDWZ4TEU7WUEN4C5WY4KEFKE2BRMLBAZWRKY" + }, + { + "mnemonic": + "police fence rabbit step grid click assist forum estate senior sell gadget tooth night avocado river venue swim real ranch item dance gas able grain", + "entropy": + "3d455560573db3aab8a15b6beaf086eb657256fec1ba93fff665196b3bdd004c", + "seed": "3d455560573db3aab8a15b6beaf086eb657256fec1ba93fff665196b3bdd004c", + "address": "LXLBCZQV7LG6AYZVS7ZY2XVLYZC57TQK6GCZ6L3LYJPBL7N4AKOHMJUJSQ" + } +]; diff --git a/example/lib/test/base58/base58_test.dart b/example/lib/test/base58/base58_test.dart new file mode 100644 index 0000000..921cb92 --- /dev/null +++ b/example/lib/test/base58/base58_test.dart @@ -0,0 +1,135 @@ +import 'package:blockchain_utils/base58/base58.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +final List> testVectBtc = [ + {"raw": "", "encode": "", "check_encode": "3QJmnh"}, + {"raw": "61", "encode": "2g", "check_encode": "C2dGTwc"}, + {"raw": "626262", "encode": "a3gV", "check_encode": "4jF5uERJAK"}, + {"raw": "636363", "encode": "aPEr", "check_encode": "4mT4krqUYJ"}, + { + "raw": "73696d706c792061206c6f6e6720737472696e67", + "encode": "2cFupjhnEsSn59qHXstmK2ffpLv2", + "check_encode": "BXF1HuEUCqeVzZdrKeJjG74rjeXxqJ7dW" + }, + { + "raw": "00eb15231dfceb60925886b67d065299925915aeb172c06647", + "encode": "1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L", + "check_encode": "13REmUhe2ckUKy1FvM7AMCdtyYq831yxM3QeyEu4" + }, + {"raw": "516b6fcd0f", "encode": "ABnLTmg", "check_encode": "237LSrY9NUUas"}, + { + "raw": "bf4f89001e670274dd", + "encode": "3SEo3LWLoPntC", + "check_encode": "GwDDDeduj1jpykc27e" + }, + {"raw": "572e4794", "encode": "3EFU7m", "check_encode": "FamExfqCeza"}, + { + "raw": "ecac89cad93923c02321", + "encode": "EJDM8drfXA6uyA", + "check_encode": "2W1Yd5Zu6WGyKVtHGMrH" + }, + {"raw": "10c8511e", "encode": "Rt5zm", "check_encode": "3op3iuGMmhs"}, + { + "raw": "00000000000000000000", + "encode": "1111111111", + "check_encode": "111111111146Momb" + }, + { + "raw": + "000111d38e5fc9071ffcd20b4a763cc9ae4f252bb4e48fd66a835e252ada93ff480d6dd43dc62a641155a5", + "encode": "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz", + "check_encode": + "17mxz9b2TuLnDf6XyQrHjAc3UvMoEg7YzRsJkBd4VwNpFh8a1StKmCe5WtAW27Y" + }, + { + "raw": + "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff", + "encode": + "1cWB5HCBdLjAuqGGReWE3R3CguuwSjw6RHn39s2yuDRTS5NsBgNiFpWgAnEx6VQi8csexkgYw3mdYrMHr8x9i7aEwP8kZ7vccXWqKDvGv3u1GxFKPuAkn8JCPPGDMf3vMMnbzm6Nh9zh1gcNsMvH3ZNLmP5fSG6DGbbi2tuwMWPthr4boWwCxf7ewSgNQeacyozhKDDQQ1qL5fQFUW52QKUZDZ5fw3KXNQJMcNTcaB723LchjeKun7MuGW5qyCBZYzA1KjofN1gYBV3NqyhQJ3Ns746GNuf9N2pQPmHz4xpnSrrfCvy6TVVz5d4PdrjeshsWQwpZsZGzvbdAdN8MKV5QsBDY", + "check_encode": + "151KWPPBRzdWPr1ASeu172gVgLf1YfUp6VJyk6K9t4cLqYtFHcMa2iX8S3NJEprUcW7W5LvaPRpz7UG7puBj5STE3nKhCGt5eckYq7mMn5nT7oTTic2BAX6zDdqrmGCnkszQkzkz8e5QLGDjf7KeQgtEDm4UER6DMSdBjFQVa6cHrrJn9myVyyhUrsVnfUk2WmNFZvkWv3Tnvzo2cJ1xW62XDfUgYz1pd97eUGGPuXvDFfLsBVd1dfdUhPwxW7pMPgdWHTmg5uqKGFF6vE4xXpAqZTbTxRZjCDdTn68c2wrcxApm8hq3JX65Hix7VtcD13FF8b7BzBtwjXq1ze6NMjKgUcqpGV5XA5" + } +]; + +var testVectXrp = [ + {"raw": "", "encode": "", "check_encode": "sQJm86"}, + {"raw": "61", "encode": "pg", "check_encode": "UpdGTAc"}, + {"raw": "626262", "encode": "2sgV", "check_encode": "hjEnuNRJwK"}, + {"raw": "636363", "encode": "2PNi", "check_encode": "hmThkiq7YJ"}, + { + "raw": "73696d706c792061206c6f6e6720737472696e67", + "encode": "pcEuFj68N1S8n9qHX1tmKpCCFLvp", + "check_encode": "BXErHuN7UqeVzZdiKeJjGfhijeXxqJfdW" + }, + { + "raw": "00eb15231dfceb60925886b67d065299925915aeb172c06647", + "encode": "r4Srf52g9jJgTHDrVXjvLUN8ZuQsiJDN9L", + "check_encode": "rsRNm76epck7KyrEvMfwMUdtyYq3sryxMsQeyNuh" + }, + {"raw": "516b6fcd0f", "encode": "wB8LTmg", "check_encode": "psfLSiY947721"}, + { + "raw": "bf4f89001e670274dd", + "encode": "sSNosLWLoP8tU", + "check_encode": "GADDDedujrjFykcpfe" + }, + {"raw": "572e4794", "encode": "sNE7fm", "check_encode": "E2mNxCqUez2"}, + { + "raw": "ecac89cad93923c02321", + "encode": "NJDM3diCXwauyw", + "check_encode": "pWrYdnZuaWGyKVtHGMiH" + }, + {"raw": "10c8511e", "encode": "Rtnzm", "check_encode": "soFs5uGMm61"}, + { + "raw": "00000000000000000000", + "encode": "rrrrrrrrrr", + "check_encode": "rrrrrrrrrrhaMomb" + }, + { + "raw": + "000111d38e5fc9071ffcd20b4a763cc9ae4f252bb4e48fd66a835e252ada93ff480d6dd43dc62a641155a5", + "encode": "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz", + "check_encode": + "rfmxz9bpTuL8DCaXyQiHjwcs7vMoNgfYzR1JkBdhVA4FE632rStKmUenWtwWpfY" + }, + { + "raw": + "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff", + "encode": + "rcWBnHUBdLjwuqGGReWNsRsUguuASjAaRH8s91pyuDRTSn41Bg45EFWgw8NxaVQ53c1exkgYAsmdYiMHi3x95f2NAP3kZfvccXWqKDvGvsurGxEKPuwk83JUPPGDMCsvMM8bzma469z6rgc41MvHsZ4LmPnCSGaDGbb5ptuAMWPt6ihboWAUxCfeASg4Qe2cyoz6KDDQQrqLnCQE7WnpQK7ZDZnCAsKX4QJMc4Tc2BfpsLc6jeKu8fMuGWnqyUBZYzwrKjoC4rgYBVs4qy6QJs41fhaG4uC94pFQPmHzhxF8SiiCUvyaTVVzndhPdije161WQAFZ1ZGzvbdwd43MKVnQ1BDY", + "check_encode": + "rnrKWPPBRzdWPirwSeurfpgVgLCrYC7FaVJykaK9thcLqYtEHcM2p5X3Ss4JNFi7cWfWnLv2PRFzf7GfFuBjnSTNs8K6UGtneckYqfmM8n8TfoTT5cpBwXazDdqimGU8k1zQkzkz3enQLGDjCfKeQgtNDmh7NRaDMSdBjEQV2acHiiJ89myVyy67i1V8C7kpWm4EZvkWvsT8vzopcJrxWapXDC7gYzrFd9fe7GGPuXvDECL1BVdrdCd76PAxWfFMPgdWHTmgnuqKGEEavNhxXFwqZTbTxRZjUDdT8a3cpAicxwFm36qsJXanH5xfVtcDrsEE3bfBzBtAjXqrzea4MjKg7cqFGVnXwn" + } +]; + +void testBase58() { + for (final i in testVectBtc) { + final decode = Base58Decoder.decode(i["encode"]!); + assert(decode.toHex() == i["raw"]); + final decodeCheck = Base58Decoder.checkDecode(i["check_encode"]!); + assert(decodeCheck.toHex() == i["raw"]); + } + for (final i in testVectBtc) { + final encode = Base58Encoder.encode(BytesUtils.fromHexString(i["raw"]!)); + final encodeCheck = + Base58Encoder.checkEncode(BytesUtils.fromHexString(i["raw"]!)); + assert(i["check_encode"] == encodeCheck); + assert(i["encode"] == encode); + } + for (final i in testVectXrp) { + final decode = Base58Decoder.decode(i["encode"]!, Base58Alphabets.ripple); + assert(decode.toHex() == i["raw"]); + final decodeCheck = + Base58Decoder.checkDecode(i["check_encode"]!, Base58Alphabets.ripple); + assert(decodeCheck.toHex() == i["raw"]); + } + for (final i in testVectXrp) { + final encode = Base58Encoder.encode( + BytesUtils.fromHexString(i["raw"]!), Base58Alphabets.ripple); + assert(i["encode"] == encode); + + final encodeCheck = Base58Encoder.checkEncode( + BytesUtils.fromHexString(i["raw"]!), Base58Alphabets.ripple); + assert(i["check_encode"] == encodeCheck); + } +} diff --git a/example/lib/test/base58/base58_xmr_test.dart b/example/lib/test/base58/base58_xmr_test.dart new file mode 100644 index 0000000..5c3b9e9 --- /dev/null +++ b/example/lib/test/base58/base58_xmr_test.dart @@ -0,0 +1,77 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'package:blockchain_utils/base58/base58_xmr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +var _testVect = [ + { + "raw": "", + "encode": "", + }, + { + "raw": "61", + "encode": "2g", + }, + { + "raw": "626262", + "encode": "1a3gV", + }, + { + "raw": "636363", + "encode": "1aPEr", + }, + { + "raw": "73696d706c792061206c6f6e6720737472696e67", + "encode": "LJe5Z59G5Zz6RYrqDjxxeX3vd16N", + }, + { + "raw": "00eb15231dfceb60925886b67d065299925915aeb172c06647", + "encode": "19uhT2BqLZuRUjnQGCByg4RUm1bZ2jT3j2E", + }, + { + "raw": "516b6fcd0f", + "encode": "ABnLTmg", + }, + { + "raw": "bf4f89001e670274dd", + "encode": "YzxHqptA9nj4p", + }, + { + "raw": "572e4794", + "encode": "3EFU7m", + }, + { + "raw": "ecac89cad93923c02321", + "encode": "gb2yYxwXgzj3g4", + }, + { + "raw": "10c8511e", + "encode": "1Rt5zm", + }, + { + "raw": "00000000000000000000", + "encode": "11111111111111", + }, + { + "raw": + "000111d38e5fc9071ffcd20b4a763cc9ae4f252bb4e48fd66a835e252ada93ff480d6dd43dc62a641155a5", + "encode": "113MMjnNqJN6MKY7uez1h2WA1ztnozdosJpK3JiBzMSWD3zwwYxy5pX16phr", + }, + { + "raw": + "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff", + "encode": + "113DUyZY2dc2LxFSMtsQ5k3gsHPkECmXt52nKM8ZY8z26NhMJWtsWSA7icPFuECstJ94XRDHZYFLSAQSTAftscnaBkMV84ECzEiD6GX5SZYMgrESBZ2ptsj8zFn6azDED6b8H81cwbZYU3GJTvetytsqVQKoqgrNEDCwYM9kiokZYaPgNVfkm8tswqpPqaniXEDKHxRBVpfuZYgk6SXQrdHtt4CETsKtagEDReNVDEvY4ZYo6WWZ9xVSttAYeXu4zSqEDXznZEz2QDZYuSvaau4MbttGu4bvp6JzEDeMCdGj8GNZZ1oLeceADkttPFUfxZCB9EDkhchJUE8XZZ89kiePG5uttVbt", + } +]; +void testBase58XMR() { + for (final i in _testVect) { + final decode = Base58XmrDecoder.decode(i["encode"]!); + assert(i["raw"] == decode.toHex()); + } + for (final i in _testVect) { + final decode = Base58XmrEncoder.encode(BytesUtils.fromHexString(i["raw"]!)); + assert(i["encode"] == decode); + } +} diff --git a/example/lib/test/bech32/bch_bech32_test.dart b/example/lib/test/bech32/bch_bech32_test.dart new file mode 100644 index 0000000..67b0ec0 --- /dev/null +++ b/example/lib/test/bech32/bch_bech32_test.dart @@ -0,0 +1,50 @@ +import 'package:blockchain_utils/bech32/bch_bech32.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +final List> _testVect = [ + { + "raw": "751e76e8199196d454941c45d1b3a323f1433bd6", + "encode": "bitcoincash:qp63uahgrxged4z5jswyt5dn5v3lzsem6cy4spdc2h", + }, + { + "raw": "30ea99599334801bf09d753af38ba546800bea8b", + "encode": "bitcoincash:qqcw4x2ejv6gqxlsn46n4uut54rgqzl23v4y77ks69", + }, + { + "raw": "18abaed50b7c1176308baa094b054383b775f12c", + "encode": "bitcoincash:qqv2htk4pd7pza3s3w4qjjc9gwpmwa039s9cgntx7v", + }, + { + "raw": "29595a3c78760fe90fe883b922f353b67441d28d", + "encode": "bchtest:qq54jk3u0pmql6g0azpmjghn2wm8gswj35af22xyv3", + }, + { + "raw": "b819a85f25b116c2f7e64416a55b8d49b744d209", + "encode": "bchtest:qzupn2zlykc3dshhuezpdf2m34ymw3xjpycg0fwyaq", + }, + { + "raw": "904c82e2c1a8508ba784e4e53e195b5047682e87", + "encode": "bchtest:qzgyeqhzcx59pza8snjw20setdgyw6pwsulf9dv498", + }, +]; + +void bchBech32Test() { + for (final i in _testVect) { + final hrp = i["encode"]!.substring(0, i["encode"]!.indexOf(":")); + final decode = BchBech32Decoder.decode(hrp, i["encode"]!); + assert(decode.$2.toHex() == i["raw"]); + assert(bytesEqual(decode.$1, + CoinsConf.bitcoinCashMainNet.getParam>("p2pkh_std_net_ver"))); + } + for (final i in _testVect) { + final hrp = i["encode"]!.substring(0, i["encode"]!.indexOf(":")); + final decode = BchBech32Encoder.encode( + hrp, + CoinsConf.bitcoinCashMainNet.getParam>("p2pkh_std_net_ver")!, + BytesUtils.fromHexString(i["raw"]!)); + assert(decode == i["encode"]); + } +} diff --git a/example/lib/test/bech32/bech32_test.dart b/example/lib/test/bech32/bech32_test.dart new file mode 100644 index 0000000..8c368fa --- /dev/null +++ b/example/lib/test/bech32/bech32_test.dart @@ -0,0 +1,39 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'package:blockchain_utils/bech32/bech32.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +// import 'package:test/test.dart'; + +final List> _testVect = [ + { + "raw": "751e76e8199196d454941c45d1b3a323f1433bd6", + "encode": "cosmos1w508d6qejxtdg4y5r3zarvary0c5xw7k6ah60c", + }, + { + "raw": "30ea99599334801bf09d753af38ba546800bea8b", + "encode": "cosmos1xr4fjkvnxjqphuyaw5a08za9g6qqh65t36srck", + }, + { + "raw": "18abaed50b7c1176308baa094b054383b775f12c", + "encode": "band1rz46a4gt0sghvvyt4gy5kp2rswmhtufv49nfef", + }, + { + "raw": "29595a3c78760fe90fe883b922f353b67441d28d", + "encode": "band199v450rcwc87jrlgswuj9u6nke6yr55dxjrx4e", + }, +]; + +void bech32Test() { + for (final i in _testVect) { + final hrp = i["encode"]!.substring(0, i["encode"]!.indexOf("1")); + final decode = Bech32Decoder.decode(hrp, i["encode"]!); + assert(decode.toHex() == i["raw"]); + } + for (final i in _testVect) { + final hrp = i["encode"]!.substring(0, i["encode"]!.indexOf("1")); + final encode = + Bech32Encoder.encode(hrp, BytesUtils.fromHexString(i["raw"]!)); + assert(encode == i["encode"]); + } +} diff --git a/example/lib/test/bech32/segwit_bech32_test.dart b/example/lib/test/bech32/segwit_bech32_test.dart new file mode 100644 index 0000000..9f2ee59 --- /dev/null +++ b/example/lib/test/bech32/segwit_bech32_test.dart @@ -0,0 +1,62 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'package:blockchain_utils/bech32/segwit_bech32.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +final List> _testVectors = [ + { + "raw": "751e76e8199196d454941c45d1b3a323f1433bd6", + "encode": "bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4", + }, + { + "raw": "30ea99599334801bf09d753af38ba546800bea8b", + "encode": "bc1qxr4fjkvnxjqphuyaw5a08za9g6qqh65t8qwgum", + }, + { + "raw": "18abaed50b7c1176308baa094b054383b775f12c", + "encode": "bc1qrz46a4gt0sghvvyt4gy5kp2rswmhtufv6sdq9v", + }, + { + "raw": "5788df3047dd2c2545eee12784e6212745916bb7", + "encode": "bc1q27yd7vz8m5kz230wuyncfe3pyazez6ah58yzy0", + }, + { + "raw": "3a3eff6f41ce759a8dd95fc1a2d762077f4f3b64", + "encode": "bc1q8gl07m6pee6e4rwetlq694mzqal57wmyadd9sn", + }, + { + "raw": "37552063bb0baa42b910712df06b814b928a88f0", + "encode": "bc1qxa2jqcampw4y9wgswyklq6upfwfg4z8s5m4v3v", + }, + { + "raw": "f9ce94eab4ed454dd0077e3dc24bdfb8d5df4008", + "encode": "bc1ql88ff645a4z5m5q80c7uyj7lhr2a7sqgtss7ek", + }, + { + "raw": "29595a3c78760fe90fe883b922f353b67441d28d", + "encode": "tb1q99v450rcwc87jrlgswuj9u6nke6yr55drpxuj0", + }, + { + "raw": "b819a85f25b116c2f7e64416a55b8d49b744d209", + "encode": "tb1qhqv6she9kytv9alxgst22kudfxm5f5sf2lgpc6", + }, + { + "raw": "904c82e2c1a8508ba784e4e53e195b5047682e87", + "encode": "tb1qjpxg9ckp4pgghfuyunjnux2m2prkst580chf9n", + }, +]; +void segwitBech32Test() { + for (final i in _testVectors) { + final hrp = i["encode"]!.substring(0, i["encode"]!.indexOf("1")); + final decode = SegwitBech32Decoder.decode(hrp, i["encode"]!); + assert(decode.$1 == 0); + assert(decode.$2.toHex() == i["raw"]); + } + for (final i in _testVectors) { + final hrp = i["encode"]!.substring(0, i["encode"]!.indexOf("1")); + final decode = + SegwitBech32Encoder.encode(hrp, 0, BytesUtils.fromHexString(i["raw"]!)); + assert(decode == i["encode"]); + } +} diff --git a/example/lib/test/bip/bip32/ed25519/ed25519_test.dart b/example/lib/test/bip/bip32/ed25519/ed25519_test.dart new file mode 100644 index 0000000..dc5768c --- /dev/null +++ b/example/lib/test/bip/bip32/ed25519/ed25519_test.dart @@ -0,0 +1,31 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_ed25519.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void edTest() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + Bip32Slip10Ed25519 w = Bip32Slip10Ed25519.fromSeed(seed); + assert(w.publicKey.toExtended == i["public"]); + assert(w.privateKey.toExtended == i["private"]); + assert(w.chainCode.toHex() == i["chaincode"]); + assert(w.fingerPrint.toHex() == i["finger_print"]); + for (final c in (i["child"] as List)) { + final index = Bip32KeyIndex(c["index"]); + w = w.childKey(index); + assert(w.publicKey.toExtended == c["public"]); + assert(w.privateKey.toExtended == c["private"]); + assert(w.chainCode.toHex() == c["chaincode"]); + assert(w.fingerPrint.toHex() == c["finger_print"]); + assert(w.parentFingerPrint.toHex() == c["parent_finger_print"]); + assert(w.depth.toInt() == c["depth"]); + + break; + } + + break; + } +} diff --git a/example/lib/test/bip/bip32/ed25519/test_vector.dart b/example/lib/test/bip/bip32/ed25519/test_vector.dart new file mode 100644 index 0000000..510d090 --- /dev/null +++ b/example/lib/test/bip/bip32/ed25519/test_vector.dart @@ -0,0 +1,1322 @@ +final List> testVector = [ + { + "seed": "99556d9cfdf8874f7258c66cafb0802112fd870df1b5ef724c805d5c11e15984", + "private": + "xprv9s21ZrQH143K3a6krN5Z7PjMzCHRjjiEwgmeVxHRxAjFgcYt23qUHvXcNXYg6XQ4VDeQc64R1fxGrgGLsrS6c9NNRBh59SMd4kRe4cwAKN5", + "public": + "xpub661MyMwAqRbcG4BDxPcZUXg6YE7v9CS6JuhFJLh3WWGEZQt2Zb9iqir6DiY7NoNahP4Rj8V4PHmLqLBUwtrrohGvp5f4samHY1LkWiyxAyW", + "chaincode": + "97f2ec2ba821b6a14db3b17da0456abeabd152f46da8192223aae22c7f1ac9a8", + "finger_print": "9e2b0507", + "child": [ + { + "private": + "xprv9v4aHnGMxUqN3Pnskd8HBxM44ZqmTbJursXmuNdtHWMwpQDfUxN8n6rQfXszdpUGHEqyvUYvyBcFGcpEHb6Wdr1UGapNYrm1dxy7vhwvxpU", + "public": + "xpub693vhHoFnrPfFssLrefHZ6HncbgFs42mE6TNhm3VqqtvhCYp2VgPKuAtWiDpo3VbZ14eFgb66jUa54yeToE9YagAWoCMUb4KZSJwvZyuuPP", + "chaincode": + "70a7dd1aee603e5605866a00f34ffbe43186316606df3e48b562d707341db1eb", + "finger_print": "a646e88a", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "9e2b0507" + }, + { + "private": + "xprv9x1AefcScpbLBUCGSt8M4fFbkBfevKVu3NA6ZtHJR3tTDWrzgJYiiMHiRsBwwKjJcvVHcXpWLzgvdcGnd3tPhKNHNEQRJYpantHAzEj3UjK", + "public": + "xpub6AzX4B9LTC9dPxGjYufMRoCLJDW9KnDkQb5hNGguyPRS6KC9DqryG9cCH56D2tcXWTNgpCvXbtpHtU7R8hR1wwKc9yEMAwPMDRHHGsrDxoJ", + "chaincode": + "71cce19737c6c69d864039b7598eac905f228696f8eb393d3fa7583893b856c0", + "finger_print": "5e382062", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "a646e88a" + }, + { + "private": + "xprv9yMaoq3CrtHzw34SLfnmxfySAscmKjmddDfD7rCFaazb9Eoe7Hmvuf2qVnm5eV3zCUBg9B6A68tfdGNu74YHj3xEJ6xuc8qVP7qzLKjPXRp", + "public": + "xpub6CLwDLa6hFrJ9X8uShKnKovAiuTFjCVUzSaovEbs8vXa238neq6BTTMKLxsLZ6aEFnykrL5MU71TckVnFvtZHuyASEo2VKjnMrAB8qVxHeK", + "chaincode": + "ab9dffa4c2d6dc7b130caf8d8cd9bf3526944a57d27d5d530f9de5d776ec9a95", + "finger_print": "0545e9b9", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "5e382062" + }, + { + "private": + "xprv9zaoPBjucVxDGqQ5xN1NsgFZCqryz6Peqs3qkvpKhZtAHeM73cUn9q9EPBmRXUPVu9BZc4z8ezW6qJNxrJpbKCmKFSLouvtCXfqPb8Z7a21", + "public": + "xpub6Da9nhGoSsWWVKUZ4PYPEpCHkshUPZ7WD5ySZKDwFuR9ASgFb9o2hdTiEQ2VABoVLZ4EWCHR8BGwwB4RkzsJk2xcuP6JyPwPmTekqo13aju", + "chaincode": + "5808bba5c9e4fe48c66ce7c00be9e4d646784ab2876967ef8c9137540038a003", + "finger_print": "80617672", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "0545e9b9" + }, + { + "private": + "xprvA3NRCeriivQPAz1nZZuxapsu57G8XURHei2js5rDWfFgRcgofkah75Z6dsGezSmsnCH8FQMvemHoumNCkMu7ehcxYiXgPVpcK26N1qaqgRz", + "public": + "xpub6GMmcAPcZHxgPU6FfbSxwxpdd96cvw991vxLfUFq4znfJR1xDHtwessaV4Vw5xEjgG1FjzgHBzAqfWg4hkYzdLukhuepkq7EcC46k2pBQy1", + "chaincode": + "72ce212062d70c03b8a2967b4a6bd4ff3a3b58a91754713b93ca664c254cc7eb", + "finger_print": "3827b307", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "80617672" + }, + { + "private": + "xprvA4imD2wjpwAG3QtJxsuvs5K4p8GrG4wbPG9LqHAQ648Gz1zTCG6brnPYDkR2tGr4cYZ7niPLVpP34nU3haJCqag1FwTP5GGm7ac6n8miYMx", + "public": + "xpub6Hi7cYUdfJiZFtxn4uSwEDFoNA7LfXfSkV4wdfa1ePfFrpKbjoQrQai24vVUL3ujHEhAF6HWBQc2CBpz8G9faKAYD4j7Yyg96Su8c1q3cqX", + "chaincode": + "0b524b84a471474c90956554244583ed97888497f59b3fb09547b21cb1e391f5", + "finger_print": "dde339df", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "3827b307" + }, + { + "private": + "xprvA7pYyFRaH7t8DEe2bhBTcawXMBz3ZmMhHEmYPCwKqgg6JfT2KhMe1ganMAZPKbfoThWE97WsGgpN1ww5nZMhXbidwzxtL4KZjmNYtEBDfRf", + "public": + "xpub6LouNkxU7VSRRiiVhiiTyitFuDpXyE5YeTh9BbLwQ2D5BTnAsEftZUuGCNfnkEGsiJtssis7TKY17KgXbxbUnq1sqWbq8LmWC2J6VuhRQ5k", + "chaincode": + "cde2d08c22ff412879cc64c1f751ee9c7149b4762cb8c854e0cd072838a17f9e", + "finger_print": "22657a2c", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "dde339df" + }, + { + "private": + "xprvA8KkvJ59d6UdtnTZG8b3XRTv5UnmFH19CGbGg2k1tB4GPiEaYEY4UB9tLaoD5amLwZZSWvfkqQNd4NoK494hrbKU7admAbLMSHvxgv4av92", + "public": + "xpub6MK7Koc3TU2w7GY2NA83tZQedWdFejizZVWsUR9dSWbFGWZj5mrK1yUNBnNMPrBVjTDikPvcXYAvgQLKycvKzXYhEhHbZcsqP1ppfVJFEhE", + "chaincode": + "0a1a7f88b616b00b21f5385418f004aa1d0f8b4cb3174919ef4cb6fcb514cddc", + "finger_print": "fa52727d", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "22657a2c" + }, + { + "private": + "xprvABnwkvAdT7nD7ym9NYWDiVQCmKwApbLwHH8wN89g23mDqNGJxjG8MPpHZ71S3BFMGPhrAw7rr4WAfkyonGnRLSwRscsPT86CHReYLsoeeQc", + "public": + "xpub6QnJARhXHVLWLTqcUa3E5dLwKMmfE44neW4YAWZHaPJCiAbTWGaNuC8mQKKgXCSupBA3XApTBTNhHnfhP4NpwdqoRaQ72FEcYMU5xoiDr6C", + "chaincode": + "8e55187ddda0ca1c435b115727e92236e0bdebf3dea68872228d3e4c29172255", + "finger_print": "be672208", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "fa52727d" + }, + { + "private": + "xprvADEY4565jWsncMLazBo4AQiLAJM4h9eSFhsHDycBerv7GpA1HJkk4bwmasvSg18tqhgXTKi7kQmbnV8q2AgbT8qCZwQgZp8ET3uRQw8mrqh", + "public": + "xpub6SDtTacyZtS5pqR46DL4XYf4iLBZ6cNHcvnt2N1oDCT69cV9pr4zcQGFS3tRBgjhJ8NhmgM47SeaP6deYizDaZoWer753PZhwpDePMnkTac", + "chaincode": + "64740cb74f5826300f578b9c8487b4cbfcecf96a13842ab20cd14a2869acc305", + "finger_print": "1e68837d", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "be672208" + } + ] + }, + { + "seed": "acfdfa5ca3af821a372328a2d05fed5d465cfa4be36fef86b793916301648011", + "private": + "xprv9s21ZrQH143K2Pg6hTUyhZBSD4mfSZJYGYDy5zQ5gNaMjyeLxUUiu7RWithD7pUF9W58oTUZFLUinbbCcxxmVjZHE5bKBgUxbhY8ygT3pNa", + "public": + "xpub661MyMwAqRbcEskZoV1z4h8Am6c9r22Pdm9ZtNohEi7LcmyVW1nySujza5kBU42Gjjj8mGzyDw7vb846tSJTUCxR5obJ9LsB9c1wogMqx1F", + "chaincode": + "21741ae03fa1446357cccef5f844f88acc2686cb30f0d42027a9e2fb0749ec22", + "finger_print": "7ec0b050", + "child": [ + { + "private": + "xprv9uqBWkb4dfcqShGBJBnMA3BnRd5WsP9KTLtM7ePvaLMVAcako7pJnNuyGaYVBUDekcNJWKoyCwr29eN9LL163vw414u1pjnRhApq4cXeFkG", + "public": + "xpub68pXvG7xU3B8fBLeQDKMXB8Wyev1GqsApZowv2oY8ftU3QuuLf8ZLBET7mQnwmfF47TTRR1XhHVacBHtFDUbTLxnJbJNa9GFpv2mbyqqq5e", + "chaincode": + "ce448fc56c72195c39c1e4a771e5a23375120313592334cda865c2c1b87a3cbd", + "finger_print": "6baee462", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "7ec0b050" + }, + { + "private": + "xprv9waBrn7byDiLxbFz578e2WGQtz3cP3kREx3MBySXeQma8E2dybbq6YpPrk4eFngBGBpjmu7a8PYbkmpbvzBDt6GUAVwhBVXtxCJEZz9KfPb", + "public": + "xpub6AZYGHeVobGeB5LTB8fePeD9T1t6nWUGcAxwzMr9CkJZ12MnX8v5eM8shwEqKMLXjr8UkqUnghDQwzzRteYpjrDzE6yyFVi2L57MovzebTB", + "chaincode": + "04285ecc5d2ac326b05558ec80f27765eb9c99dd4938dc8c7bc33cd79fd4b7e4", + "finger_print": "7bc3976e", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "6baee462" + }, + { + "private": + "xprv9yaBLFuJydkxtDMBekyZvPvUoVzjwgS5CWbetBUBBBQrxWMCqUpdT4ungwcsRfFqoPtwJruMgWXKyz7LNGWwf8oLeUf8mBH4om7QvUbR6de", + "public": + "xpub6CZXjmSCp1KG6hReknWaHXsDMXqEM99vZjXFgZsnjWwqqJgMP28szsEGY8CYaZgmTEwPxdZuCbrfp7Umsi7Hjb4w2HKRuAPv4skoKbJ6bAm", + "chaincode": + "1cf9a5a50dbb512851569b7314662daf857182b9c81c6f6f6fffe46821fe7750", + "finger_print": "b52caca7", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "7bc3976e" + }, + { + "private": + "xprvA1sniuGWFGUo8w9GMyDEFdtUpjjyqzMkumRduM5sVYjoCiBiKrXq4WMY1amNaRoHFws6rwMgLYJeBzAh3LL1fRq7wbmHpKVj6WvvMzLL6EN", + "public": + "xpub6Es98QoQ5e36MRDjTzkEcmqDNmaUFT5cGzMEhjVV3tGn5WWrsPr5cJg1rmkZyvCZsaTkhUbYLKwE1KJHA5BBMJtjJhjADrSFkVnJM3TFZ2X", + "chaincode": + "a8ca9aacab8e65e3a68eaebff0af4ba45f23301d418fd20df3d4afcdbfa721c3", + "finger_print": "5809c422", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "b52caca7" + }, + { + "private": + "xprvA35Dh37wcJKeoi1MWDm1QJcypfka7C88fwZ8sRsSNJ7BTmCe3sQg5YJ7tBWw3hJwbQePWvNRWCaLK56RYxRXj2jc7drbZU2mvjnxhBaFFSN", + "public": + "xpub6G4a6YeqSfsx2C5pcFJ1mSZiNhb4Weqz3AUjfpH3vdeALZXnbQivdLcbjN5ZwY4CkdxgkX3z9KmN5fY1FojHpzUoSmCYTDMFyHBQgFDJQLm", + "chaincode": + "41eeab7db1b50edb42390bc35e60326c3f0ad616cdf14859fa8a6792bb0e9f9a", + "finger_print": "3bba8f15", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "5809c422" + }, + { + "private": + "xprvA4kHa4k8CtxNqMTdHHH2t7Zw8ACJL5SjFYKCu6X4M1KmSsjXhYCVxTGkv5QnYcY6raruCjGKo2tpEmWaeaenFSQBLA5DSjmx35GdHVCfBMp", + "public": + "xpub6HjdyaH23GWg3qY6PJp3FFWfgC2njYAacmEohUvfuLrkKg4gF5WkWFbEmGbx1UzjG5Ss8p6R5R9dviyTJnaztqmejQPQMejzNRhPAvxKPC6", + "chaincode": + "0871a88534c4af021483c6c7dc89324a5dfcd7d83949ffad1eea1804e6d3747f", + "finger_print": "05cafbf2", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "3bba8f15" + }, + { + "private": + "xprvA6ERp19Nb8K3ddkyNgaMR88ZEbRT86TtZ82KLchE9cpANce8RRpCELrdG77nTKgEkqej97zr8iptcv3XgnkQMhMPBmFhDuGtwiCeuSNn3TL", + "public": + "xpub6KDnDWgGRVsLr7qSUi7MnG5HndFwXZBjvLwv916qhxM9FQyGxy8Sn9B77H4SSkZWAQS9ynj8uXnTC8R6AiSaXT14i2hAKviLRL4mDqGhEd8", + "chaincode": + "e8d1489058b5596fa5855df98d7a6812941c7f4b7716d8c138e7ad63355096ce", + "finger_print": "2a41ffaa", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "05cafbf2" + }, + { + "private": + "xprvA8P7JQuu1dLsYZadU3uNu1BTz5zhLwoJYSZPEBCBqCVnQBcg6kcTFNsTtpPzk7vEKWn682c1rSoTY6S5GmVRzh9DsNBvEAuJhVXA4Evf83F", + "public": + "xpub6MNThvSnqzuAm3f6a5SPG98CY7qBkQX9ufUz2ZboPY2mGywpeHvhoBBwk3JhqPXuszKNP7pqyW8iAVYBRuo6uPYqSzTAqSXnyATDvtPdd3X", + "chaincode": + "bb88c2e4ba514166f4a7db01edfa2f3a58df0272e8c5a7ea2f28bf97bd58c30c", + "finger_print": "eb5041cb", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "2a41ffaa" + }, + { + "private": + "xprvABgYf27Bgsc5DPnj412qsX4r444XBPhMWmG64Q5ZkYcbCsV6U9TeeyGyZ5Fk8MLSQLiLRR4iRNTbuaJGPgLQoT8ZisaEVwVmZdwV15Rb15P", + "public": + "xpub6Qfu4Xe5XFANRssCA2ZrEf1ac5u1arRCszBgrnVBJt9a5fpF1gmuCmbTQFa8VSUsPpTzMeQP2yjmBzKjH4VGKHMswxjS4bELzQgfEeDrz4t", + "chaincode": + "5df2b959736c9560db81c1d496a6d86501e0b6def2be882f08035a2ee8ae6813", + "finger_print": "301646b4", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "eb5041cb" + }, + { + "private": + "xprvACBs9hcQh421HNBGHNiv9g3XjV89uSw6L63KTcGXogDrJ13J6DwCnoNJq2i94pDftVP3sBH5DRSyJguyhvF5Ud8ZpMXETViVn2iMtG57KgB", + "public": + "xpub6RBDZD9JXRaJVrFjPQFvWozGHWxeJuewhJxvFzg9N1kqAoNSdmFTLbgngDZMVvN3bw9nhqQ334VH638ieELAehfWcieqkEPz8dp9udFhmB1", + "chaincode": + "23673796a76d4b4663cd341ec2df4d66a10c59e4816b25059592a1339c364d6f", + "finger_print": "4df0cb9c", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "301646b4" + } + ] + }, + { + "seed": "e90ebcdce475576db6b691548400aab65f3bad01081e68f457d7bf2ccc5111d9", + "private": + "xprv9s21ZrQH143K3QPckh2My6N7dLfRxEXCDcZJyddoq9oJVCJy9ud5KHqeGaNWtjXPykCGGAK445jqxU7bSNrSdRNAtz2HJobvkaXLdAEghRB", + "public": + "xpub661MyMwAqRbcFtU5riZNLEJrBNVvMhF3aqUun23RPVLHMze7hSwKs6A87nfdByBg74PqW4uCvPc7WnwPnDUFsnYKvN7AxVGgt7ZB9pEiu9b", + "chaincode": + "872282bfd655986f0af583273c374573b0b17fb852a0f8661652a2d0c0cb8082", + "finger_print": "8695b5e4", + "child": [ + { + "private": + "xprv9utXArg24zhK6XJxA7hUiFMPKXnzmkhXfjwbv48mAfMvzjdwrND7bRDvRHCd9shcZ4Hm77Lz7m2SkeUx7xst38qQLuvGEoA8FwRRAW8trAX", + "public": + "xpub68ssaNCuuNFcK1PRG9EV5PJ7sZdVBDRP2xsCiSYNiztusXy6PuXN9DYQGTwCHkZU2N61dFdQCuGAH6r7PXRnSfp37Q1g2mTc1wjDXANZicC", + "chaincode": + "4e7996dc4de069ca7eb343057400d8122b30360a262126525a9ef4caec7d2016", + "finger_print": "d0dd8ad8", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "8695b5e4" + }, + { + "private": + "xprv9xKKh5HExHUNxVveb2nwbdbT8gTnFdUfz421Up7FzCuFAzcpyDrZcSbaaCJtJgAyruFvKnuMNn3XbjrT68Jsu4NdaFNcXs7KGqz3pzzuhp2", + "public": + "xpub6BJg6ap8nf2gAz17h4KwxmYBgiJGf6CXMGwcHCWsYYSE3nwyWmApAEv4RNN7kf27VKbCMfEaY8WmJ3CjwD7FW6du6EqQ5g7UJ59ADgrdK9s", + "chaincode": + "c7be3c834a63c4a9aede712d4298e3072682be5097343b1fc786cfa324758d08", + "finger_print": "834ffb1f", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "d0dd8ad8" + }, + { + "private": + "xprv9ydPyUdGK7u4xwPryC1zkNoF4MWgJEAXekhfQpdKZnKMhnNyHfdtMxbfsDpRzrK41MekcDaFRzoXxjabkJfNEKMD5VQjCtTqWJfhoeFPiBe", + "public": + "xpub6CckNzAA9VTNBRUL5DZ17WjycPMAhgtP1ydGDD2w87rLaai7qCx8ukv9iR3zwtmthd4mT4XiD6eqCKWqKgudkaXsTpS1tGGiWznoXxcJLEM", + "chaincode": + "5989f1c1dac355223bbe896bbd0df9b627ab0a9ac57e41dfc0b9f220e6df2690", + "finger_print": "0670336e", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "834ffb1f" + }, + { + "private": + "xprv9zbJCC2KZThXq7Hfoymo34aDAo8SriPnm3gLU1adZTgzTYiji4Kj3MPTVX65TtDuZvxeU4vVDcVyPNLH65wbLBWxiAmzJyuoaVwwSdcsvec", + "public": + "xpub6DaebhZDPqFq3bN8v1JoQCWwipxwGB7e8GbwGPzF7oDyLM3tFbdyb9hwLjeeHGCRLVd5fb5mpkHUxVVMVovsrcE1EVjwpdHrGN5zjQAE3hL", + "chaincode": + "fbc5a79b06e508e76536939ca757fcd3009bf15406b8f5b9d713148f413af51b", + "finger_print": "3034b152", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "0670336e" + }, + { + "private": + "xprvA2nEoAoFgMYzqF7GoexQtFBSKzvcLgscsgdUyM3B9DQ4ktCK5qBGnosHqG643DXH81PaLiomWJpiqwgsYVcdwR5Zv2tFka8sQmUhnsDcWhT", + "public": + "xpub6FmbCgL9Wj7J3jBjugVRFP8At2m6k9bUEuZ5mjSnhYw3dgXTdNVXLcBmgThrG7vLFbB694RsuQ95oDY4YD2WQXiHFcQskwtBUswExbC9F7Q", + "chaincode": + "b42a076814bd9749d331b6cafde302848c676b1014c0a04e531a2ece41fc4b6d", + "finger_print": "e753b4c2", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "3034b152" + }, + { + "private": + "xprvA61SWZ2udvKQQ9PfoH2SzpQYoXfs9oYymhLKux5uerHnZuLJbUfSuz1NoJEs1AKEnRzWbancrgfVRthqzGA4kiqfbvWQm9U3816RNLowobx", + "public": + "xpub6Jznv4ZoUHshcdU8uJZTMxMHMZWMZGGq8vFviLVXDBpmShfT91yhTnKreWXHjxvUnwUxn9YmrdMuX3RwKaJdzzbKYXeoKEvoakuoyzbZrMX", + "chaincode": + "75298caa1b422444fd03b8ee08c53b22309824312ad663c32f6a38d7f03f34c8", + "finger_print": "e84b0e04", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "e753b4c2" + }, + { + "private": + "xprvA7tzFyttL149rUHMuPacNTSoEZCWxptHfJWozkP5a6Q5wBzxysRWfLLkDDf8iUFGWNw5KaZ5F4mJFHgGRgiYMcLgz2RTuNF8DKooCDKAE53", + "public": + "xpub6LtLfVRnANcT4xMq1R7cjbPXnb31NHc92XSQo8nh8Rw4ozL7XQjmD8fE4QinaRbVnXycDAtbiMhfq4ZEm1VqKwRWtL5nCa9qo5BjwcFvMtn", + "chaincode": + "17defe1965df75c14a98c4dd95a8cafdee1bacbc17db9c40fab485e0966ad850", + "finger_print": "39c00bc7", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "e84b0e04" + }, + { + "private": + "xprvA8ViNA2dac92ZeafBDFWSebS5UbpmUCe3RhFoqNiRVNb1ni8r5ZVfG6KP4nUvbfMM6D2izd8CyRPaXnpThcUcPSMPxg3P57E4ktV2KijckZ", + "public": + "xpub6MV4mfZXQyhKn8f8HEnWonYAdWSKAvvVQecrcDnKypuZtb3HPcskD4QoEExbFN4XwBrfjN7LCsgFRqztwf1RstcPtcCx19LJSEJxpuE111F", + "chaincode": + "8a27a65346ebbc274029fe00511eda91c1f566bc282d6824f539b2f6cc562348", + "finger_print": "6eac540d", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "39c00bc7" + }, + { + "private": + "xprvAAmQoEc7UyknpYmXKyDneQvyYBXoF4bZSq9AcqyhvsXGuJgBneGek9t9cQ5LM1Fdxanq4t7apwfH2FvogbpsEm37idvVExdWxi3cxDNo5GB", + "public": + "xpub6PkmCk91KMK632qzRzko1Ysi6DNHeXKQp44mREPKVD4Fn71LLBauHxCdTbp2AywpUATxWjPDBPoMrf4sfKuQQbekqb2JC3yFAi2AoGUy8Q4", + "chaincode": + "78568b044e6b91904263aae72f673857375302584510772cb2b67b6dfa19fb3e", + "finger_print": "ce6a5065", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "6eac540d" + }, + { + "private": + "xprvADMMydQ3p6XtrCKbZHuRXdKzwi9uRnvaXcyfw2x5n3BYacjru7n1qqXuBNrb7iPMDQjaS8KpXZoqxoZrSmojarmXmdz42oSrLB4Wgh4VPCq", + "public": + "xpub6SLiP8vweU6C4gQ4fKSRtmGjVjzPqFeRtquGjRMhLNiXTR51Sf6GPdrP2ZXYGdii9tyiW84DdPd1J5d9EFhmeyXP8QdZctkjvrrsz436K5T", + "chaincode": + "df18330689c5e9c0059376a8396f1784b642fe9e4f1d9d651e5e9a3f3d5d59f7", + "finger_print": "dbf23ebd", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "ce6a5065" + } + ] + }, + { + "seed": "f8fc12d907f75678313e39e422d77714941b4029fd19d365685acbb752483e05", + "private": + "xprv9s21ZrQH143K3xhe5xqsHzXZVCfhp4C6xcMSZjpajkGiAZeqK7UKLLt7pZs63LdwVfwTpLcsEj15qEmL6AbgpdKtseexWjuTvRCp8saKY3E", + "public": + "xpub661MyMwAqRbcGSn7BzNsf8UJ3EWCDWuxKqH3N8ECJ5oh3MyyrenZt9CbfmCzCsojfabemYf6AFYJrSRGsLpiz8vVqRub92noEhbHaT1zAjG", + "chaincode": + "bf16c91442480e2392b6a64eca60c137fb41d4fc1f6422f252f784d4b2d56eb9", + "finger_print": "0119e1ca", + "child": [ + { + "private": + "xprv9tucejfkxos5kGAfHektWEsvaJdCnRJXLKxbuQ2kZYvZe7b6PaFL1daDUw7SLqEsBjRsZzu2KrG9gCoFUfk6KQ1xwE6ieVkYFYcdkhcC4bz", + "public": + "xpub67ty4FCeoBRNxkF8PgHtsNpf8LThBt2NhYtChnSN7tTYWuvEw7ZaZRthL9H6GMqUX4Bhqqotvjf6etuQVhAUfpDJq6BGx9LBQofi4weHn4x", + "chaincode": + "e0c4eb765f17fb4fa18a0e5ff531486d4518d93612998708881ce45403beff7d", + "finger_print": "f0df8e86", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "0119e1ca" + }, + { + "private": + "xprv9xYy7qDnRYXzjd13VC4MUaz4i6i5Zu5nwiYPwhV4yPz7HZYpswFPkdVapUXdUx22YuM5rRwFPUSGRBu1Vzh4eci34SnTpgp7gtqgFBk1MMu", + "public": + "xpub6BYKXLkgFv6Hx75WbDbMqivoG8YZyMoeJwTzk5tgXjX6AMsyRUZeJRp4fgr9hTk6voPF4b4azfTCyBzaM3yiE3jrDd4Kv2nhsnHuRBZBSZV", + "chaincode": + "b311a1840f4d8622b535bac8f691cf93f483be45df71c414ebd13f7692724650", + "finger_print": "6d93f93b", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "f0df8e86" + }, + { + "private": + "xprv9yU8ZyyHfxG9B12sv8CCkAwRR4KSdq2Zx6WXwrHQDQhUKdycfUi2VfuK9agxboFZ1x6zMQ2dahuV8jYuYiqqmfnGMgdjmCgEp4oLSxGcexD", + "public": + "xpub6CTUyVWBWKpSPV7M29jD7Jt9y69w3HkRKKS8kEh1mkETCSJmD22H3UDnzmHzthN4ffjN98v9sX4DqW1sNx3JJ8yYxe3Tv8s9Lce3gdegLom", + "chaincode": + "ec83ddccbfc0729ac333a7b4a767e3185dcba0ffb1618820a6a29e81b3add1c2", + "finger_print": "36853d1d", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "6d93f93b" + }, + { + "private": + "xprv9zwo5Fh9grLFnWtb4Fj6S9buanC61u5LGnSAMeQhFqJYDeuRQ6QoUkwz6Jq7JCrsaD38nmgsTp6uivjYA8bVUH6Vvw7z4JaonqGZszSBKVQ", + "public": + "xpub6Dw9UmE3XDtYzzy4AHG6oHYe8p2aRMoBe1MmA2pJpAqX6TEZwdj42ZGTwWTG2dMvin8vJyjeNQWkBx4U3a3cpyAd8EuTPecfFFWZTZbfjJz", + "chaincode": + "979f50f7386c6401e538027c80a1e12efd0ae18db7c2ac672c865cf9f85344cf", + "finger_print": "2f78e2f1", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "36853d1d" + }, + { + "private": + "xprvA2mvf5iYDxSmujp1V56jKKTaXg4axkXU7wyShZLQ97PspZAmBxLP7PoFURro9DXotmbjkfJw7zd2fRXhFEnUdvwcfEaRx93fhTdg81e8Mnr", + "public": + "xpub6FmH4bFS4L158DtUb6djgTQK5hu5NDFKVAu3Vwk1hSvrhMVujVedfC7jKe2t52XKFyPam5bU2ZwZXXuKH5QeQT3aKY8D7qVhgrx6nNGv6pZ", + "chaincode": + "f4f951dff5f85f221d28da70cab621dac9b0fa740a47c4131954676605e44ab0", + "finger_print": "a1d74220", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "2f78e2f1" + }, + { + "private": + "xprvA5VpPuhbZ3zFxs3GuFBZy8fx9UMeePDSMVdiJBSHtvSEajNpazyWRnaUJDiLLkJdMEutC687k5XU9uhJgHTFtTxXqKRbJDarQk8s37JpisG", + "public": + "xpub6JVAoREVPRYZBM7k1GiaLGcghWC93qwHiiZK6ZquTFyDTXhy8YHkyatx9SCeTZZNTWyY1oryPduHu7vYKZV1wpfZXTwXgz4qwEUas13jbtF", + "chaincode": + "38fdd3cf12e31f4187dcc98d48b9d14fc9d8fc29476491dd7f1cb383fc661863", + "finger_print": "9ca0f009", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "a1d74220" + }, + { + "private": + "xprvA7LjNr8gsLaEKbUVYSLiPsGTByJnCbGcZaVobqk1zsxUmvFng6jYK536THBNvU7gHs7eSTbXzJVRWXbyBbcg4tEY4L3J3PTBy48y2mcUDvv", + "public": + "xpub6LL5nMfahi8XY5YxeTsim1DBk19Gc3zTvoRQQE9dZDVTeiawDe3nrsMaJTVgYRBd9Nfi6jkTwvNoQC4PvEkR6DsXk7jzbVYuZKZK8p4CJTC", + "chaincode": + "8b83929175d9ec5636e5dbe3c8a13d1d36752806ab8bae8e9247d74a44bef20a", + "finger_print": "4a0eeebd", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "9ca0f009" + }, + { + "private": + "xprvA8cfbpCE7wzzQCcarWvuizC4X8AByYZPAM1hmLcyVedvAgrBvaMXuASCZSMfX9po5KdPC9T8392cknvqx8UBU2avTa1vg5Birnqiv8DnHvo", + "public": + "xpub6Mc21Kj7xKZHcgh3xYTv688o59zgP1HEXZwJZj2b3zAu3VBLU7fnSxkgQdXzU5roG37MJzjYcTsUBiXeqRUArYxa2Uy7H2JAWNEjUFA6HZm", + "chaincode": + "a9c0267a1e89d28341c4faf9eb7d613b545f0b6384f9fcd0806a5234f4bc51e7", + "finger_print": "1c35e757", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "4a0eeebd" + }, + { + "private": + "xprvAAAFpvSoY6ch1jxAqD1GLCMiJmSqaaffscLso4yUBp9dPmnxWG74SANEwx1FeeD6g7VwTGbtwv4jHRB88fqKNmmxLwvDjNDXs74SUAXT6ZN", + "public": + "xpub6P9cERyhNUAzEE2dwEYGhLJSroHKz3PXEqGUbTP5k9gcGa873oRJyxgio7up3vxgs1vanYZXxQr3U5TmKV4xZxenp8GNFWQWZHc4ybqmVTN", + "chaincode": + "a1e86563b73b8bf5bcc5136a404d2fcac1935127a57cf5771fa9c814557d7434", + "finger_print": "07fde01f", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "1c35e757" + }, + { + "private": + "xprvABtmkfecrhLHjDaJx27PPWVKNgDPkq5sjYCxDSbomJoJbJDdkiCtAffeUQRyXzoTG8pohdqt1wqzzwZLmGS1QWbQDGmqF7AP1tW9LdKdGBo", + "public": + "xpub6Qt8ABBWh4tawhen43ePkeS3vi3tAHoj6m8Z1q1RKeLHU6YnJFX8iTz8KbXxsRpLKZPXwxpnvk8onmKYx9SERVrByX7jKAz74AeEpfsEebM", + "chaincode": + "70dcd857738a2b1755480bdc0808cbaf68716bc935f18af7a7c965f1d7d78a94", + "finger_print": "940a4eda", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "07fde01f" + } + ] + }, + { + "seed": "8e830a5c7a1310f3795659ec060e4069d9f5279d1fc489025622c5548494d257", + "private": + "xprv9s21ZrQH143K3n3uay3S1J7iZJ1zjLzm2KbshhzbG7ZpobaQ6HKnZt7BSTw6EyUbaRw7pdT5N7fuarZSSzFS231bE4TCfVqhk7enVHEQodd", + "public": + "xpub661MyMwAqRbcGG8NgzaSNS4T7KrV8oicPYXUW6QCpT6ogPuYdpe37gRfHeCwEnNxZ3Am2ufaewHFeE8bEZ1tGHRXNX8WX6ML9rFsHPyPJQq", + "chaincode": + "aca515f3b1c8b23a87c76fd867fa08bb1bb097e6e850c224ac0eab8fdf21a7ab", + "finger_print": "cfaa8f15", + "child": [ + { + "private": + "xprv9vRgBaAuCWEEk19xpWq2f3eLUNFqrLjJ9udcykJV2hh7uWXwEdHB6S9k4ByQ24Gn8h4oKMNjE3QNXouyWffMYhxxAudTKbd4aEcc9j2Pew2", + "public": + "xpub69R2b5ho2snXxVERvYN32Bb52Q6LFoT9X8ZDn8i6b3E6nJs5nAbReEUDuNsc5RnS461LdAxAuT7svgvAdHdYYv1stHMo8jnNninz5ztzahq", + "chaincode": + "43e654293f3afbf56719af0e59a2424e36e09e76f92b30fa1f0194083fa093dd", + "finger_print": "8e443cc4", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "cfaa8f15" + }, + { + "private": + "xprv9wpvy6gniCsCLFd7WTm7wDuyaCU1yahEdbHH1RokjFM4T1V6poFR3qhDGDeeU1tmJdqZ7pjtDqV8EVU8bfUHFYB5XaeNFqiBEyLPkbiGq4U", + "public": + "xpub6ApHNcDgYaRVYjhacVJ8JMri8EJWP3R5zpCsopDNHat3KopFNLZfbe1h7SDoTArAjdqmjp5hvBeZDuFZLcz42pJSGfdHbQfKTV9bZ4LBdA4", + "chaincode": + "1fefcf53bc79951ba839211b4df3fb5b280d88e88719e75106ee92541b4d9054", + "finger_print": "cd5fd6cf", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "8e443cc4" + }, + { + "private": + "xprv9zAyEM1bAxbBKhJEjSFo724brKma466JD3oMHnTrTz3qm5Pd7Rs86Q69W5sHDLZwFKaGrbQtjsRMgcW2LtmPbdBWrvphyPQcTKxvrg2sv3E", + "public": + "xpub6DAKdrYV1L9UYBNhqTnoUA1LQMc4TYp9aGix6AsU2KapdsimeyBNeCQdMJpoHSVFfkBWeds9FPdkZ5qchw9fEs8qkfV8wPJpRyk5tiPPevK", + "chaincode": + "96b91649ad498fb057f4179b7c239fdec7b0c657ea21d0a5a46c9591b61d64cf", + "finger_print": "b8b02fe3", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "cd5fd6cf" + }, + { + "private": + "xprvA1uHbxcGf6DKYLcDzcS6KSHbmPm5bg5FEqNdyuJiP2osRRvEYLRTe1o1VjHzfpf6Pb5Tc1xkefXoKowfd7ke2U5TPBftqsnYGPdK6yAgMkg", + "public": + "xpub6Ete1U9AVTmckpgh6dy6gaELKRba18o6c4JEnHiKwNLrJEFP5sjiBp7VLwRDfbePCLvGi2Ag8KQYfNXJMLsLC2u7ZQr5THAxsq9E78kKSam", + "chaincode": + "98472fdad8c583922662e16cb11128f3e06509a8b89456e7f158238f2e839a0c", + "finger_print": "b438f5c3", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "b8b02fe3" + }, + { + "private": + "xprvA3kX3QGFV4n32gmPgRJsLEoyKEAgJeAuku7rHxEqLofbt7GjctqnAGwDHhVyWXoEtzhoUdhXP4QHkySkvrCjhGcMbpLgPizig23X9U1P1SF", + "public": + "xpub6GjsSuo9KSLLFAqrnSqshNkhsG1Ai6tm883T6LeSu9CakubtASA2i5Fh8tH4WYBWqPpFFZJzo63qea7jY2x3HxjQ1WQjX4vs71hAqvrTsRy", + "chaincode": + "f607e7c8284a73802ebcbf6b9f65d2b2068d3cb8d0f5a860125279fd5a5bcec5", + "finger_print": "399d094e", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "b438f5c3" + }, + { + "private": + "xprvA4jPGTpgYCB4sH4TQjwec3QQw2pnZsGni797JCFiYDpiQE69tBgeukFsYztcvsu1M2Dxr4hUNw7ij5LvTpbgYxLncwdAjN6FyUipRKHheo5", + "public": + "xpub6HijfyMaNZjN5m8vWmUeyBM9V4fGyKze5L4i6afL6ZMhH2RJRizuTYaMQCW83BFUmGZbzk4tYvxJi5N5HGbAa1bLTMZs5ycQydaxDesStdZ", + "chaincode": + "6fc18d67a22bb93a0d5e28c64a406257cce3eae39f279b256c140962b0f0f49d", + "finger_print": "dfeb7d32", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "399d094e" + }, + { + "private": + "xprvA7qRDknRyo4qvm9S4uoBro96dzqVCfHYtpmgM98TGNPaM45NTSfuvmC618bX16D5c1YugsbBuepyns5oxEYYT3VsWV7L7RxqvmqSq1mzmgP", + "public": + "xpub6LpmdGKKpAd99FDuAwLCDw5qC2fyc81QG3hH9XY4phvZDrQWzyzAUZWZrLemjRQ4eZPyVw2H5Ek3SbwyEXdJbJwZDJSXbZzyRHAoXxmmqcW", + "chaincode": + "5158b154eda1af056a25103b7d40d60cae58a66e1ece63c0d0efe8b238504476", + "finger_print": "c949d6a6", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "dfeb7d32" + }, + { + "private": + "xprvA9YuVb5epYTf2wSLB4gMHAsrVSsMXyqp5tgKsLo1t6LFiZDStVJgByGX7FEoamxPGfT9dhusKm17EPk8sjYqM9zGpeHv6Eem15xaH6EUbaT", + "public": + "xpub6NYFu6cYev1xFRWoH6DMeJpb3UhqwSZfT7bvfjCdSRsEbMYbS2cvjmazxRQ2oo3XrSWs8g4GdTkBufNxEYGjfeqTmmri8cwc8WvyDeP5VnP", + "chaincode": + "17c160939913c764633c0f0763da05314d64c50d5221403adabc59f349c39876", + "finger_print": "7573dc75", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "c949d6a6" + }, + { + "private": + "xprvAApJRfdXwLAgwQyi9tdsHQPEL96TwbKjqNcqRmcMvLehd79A7p2eCktSSUoCghj8nuNpwSq1kMpd43FQBVkekuNgDK5rZopHNYu7S4n9rPY", + "public": + "xpub6PoeqBARmhiz9u4BFvAseYKxtAvxM43bCbYSEA1yUgBgVuUJfMLtkZCvHhmqynJEYW6u41kHD4EjhLyw9LQpQ9tu6qTTEH7kZkmy9cCVhqh", + "chaincode": + "1a2a201e94ec1d6f190a23efb91faa5e6365c70e29372f5d9d04f283a702eca4", + "finger_print": "c47f789d", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "7573dc75" + }, + { + "private": + "xprvADH8m4iLJ5CdZ7fUVMJmuXb6k19LDRuh7E53mocZEYypf7YbE9Kaigg9WfwQNgC2oeic641MbrPCYqMpbU8g9S1CSXsaU5ZnVX5MroR19zG", + "public": + "xpub6SGVAaFE8SkvmbjwbNqnGfXqJ2ypctdYUSzeaC2AntWoXusjmgdqGUzdMrmpCBAQYkYjU79BtYH8dVzQ6g1WCV2NDCjf2JK1JvtU3htJpQs", + "chaincode": + "c83c015e3a17fbfcfa6fd52076be8150f3135da163bce0f9d17f1558fbf57e29", + "finger_print": "51472458", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "c47f789d" + } + ] + }, + { + "seed": "9e002e2b88ef0099384c8e8598715af51e3063756846554d8fdbdf5ee591b29f", + "private": + "xprv9s21ZrQH143K45tudQdx5uh5S1gc58YK5WzRWP1fk8WeodWEuf7SBmXuykRgeqMq6siMEApxDkzj2vjSXcerHe7q9psbsS311gPiZzvQQZE", + "public": + "xpub661MyMwAqRbcGZyNjSAxT3doz3X6UbGASjv2JmRHJU3dgRqPTCRgjZrPpvymB2fMjVnmd7QKRezXzKaAVcMCz7L5FhSRRXKLb4bdVuzDt5p", + "chaincode": + "cb8c369a4ad84520247cb64b41432761b9326ea6e6fe9df6f64d42818622f43e", + "finger_print": "1daea7cd", + "child": [ + { + "private": + "xprv9u7oMChPCgbXCgu3u25Gc7LBxDnA4YzoUBqkACt13jsncUke1dyD4S4StCVWM2RUyVvcZoV36UWJfaDeg5aK79Z38BduxkYLRG17ePRgVN6", + "public": + "xpub6879kiEH349pRAyX13cGyFGvWFceU1ieqQmLxbHcc5QmVH5nZBHTcENvjQvDx6Snod4fvNMJey77MXg1mwc1AKQukgKQLb5zHEEroYqTLBJ", + "chaincode": + "99341cfd852efce9aa05e80c5dcaffa6f67771ad565b01ca49641ace10790f66", + "finger_print": "9f75864b", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "1daea7cd" + }, + { + "private": + "xprv9wxG53sJXBGvJDFSy2V4ZoLKJkEXGLhni9x4ChY9W2Jp2Hm3VCeKEYCfrHgWX3nrzZN1q133VTAwnkNbEyAqRF3JCiaTF4tcoDAXEeMwbXj", + "public": + "xpub6AwcUZQCMYqDWhKv5424vwH3rn51foRe5Nsf15wm4Mqnu66C2jxZnLX9hUddUut5vsi9Pt5oZGddDwW8yvzAqPawVmAxd1tZjqPwCGk4rFL", + "chaincode": + "d82ba76928abe8e78fc36f4bbf3dc24f3a8f4ec95b2893378621a423a3dfc220", + "finger_print": "9d5d07f1", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "9f75864b" + }, + { + "private": + "xprv9ypW7QTw1hjNeSqt38Kqf4bCXHduvPeKz2B3LxirSWDbK72GHaZML3fZaNGJaSEYU397Nx8fHrYmpuBYnEqMSa2TA58aobir7V958CmJ6gB", + "public": + "xpub6CorWuzpr5HfrvvM99rr2CXw5KUQKrNBMF6e9M8TzqkaBuMQq7sbsqz3RabeFvgCGP7fqugrWzvATEBiUEX1nvjYXHQvuCriYo1YB6kPZ5B", + "chaincode": + "ff47e0ca35c8a1298f615a48a639dbc59fc4be2924b2f04536590dca6361869a", + "finger_print": "5bbed459", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "9d5d07f1" + }, + { + "private": + "xprvA1DfVtiop9pPgJB1HPqp38MfJYiK5akXJZ6wfvDrYrk6pFZfpX7n1GfwosAq7QiUxfACdfUY9EuKtY5c5DxMsYiaJGEcwQiTsueLcc9LTNq", + "public": + "xpub6ED1uQFheXNgtnFUPRNpQGJPraYoV3UNfn2YUJdU7CH5h3tpN4S2Z4zRf4EijDQ1GSRnPjcB3w7RNDnoYx7GrKrKc4xv6AQcdBasYBvt5oE", + "chaincode": + "46f939773635c5e28bafa2c2bc6bffdfb7c369baa73c0fd390b2996822f7bdab", + "finger_print": "97826bda", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "5bbed459" + }, + { + "private": + "xprvA3YH5nQ7c8XdtKRcGJBEBQxEj5XMrW2cpzLjGDe5H6Hm5cxdk2VeFCgTLg85cRLWdyrpNWyFFKisfSRzS4jvetiifEfhZfHUXmPGPn3fiP2", + "public": + "xpub6GXdVHw1SW5w6oW5NKiEYYtyH7MrFxkUCDGL4c3gqRpjxRHnHZotnzzwBrC6gNf4UuWoTyg6Azk3ttv1mMWxR6QYvdJDL25krb53ryuLCCT", + "chaincode": + "96b0e853791461a24dd663d875c8a1f735cd27f807c02308a60d46d348bcea0d", + "finger_print": "989bb1d7", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "97826bda" + }, + { + "private": + "xprvA5Rt7FvPvmMLhnT6uoVP4k5WnDdEsFWuVZG84QCqetd9tmAY4nwZ519oPQkdxL98SqYAzg5M9iyuR4NvjgpMAgUWu5UvWYxiq5pz1Yj41b2", + "public": + "xpub6JREWmTHm8udvGXa1q2PRt2FLFTjGiEkrnBirncTDEA8mZVgcLFocoUHEahLEQQ72mLr7VNAVHVQGD6PxiYvFL9re21dU2VJ84rShsVQ3w9", + "chaincode": + "016899e867ffc2d871c71d7a7b0d52d0254de4f80343f14e9f6ba90b64734627", + "finger_print": "56778be2", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "989bb1d7" + }, + { + "private": + "xprvA6ppZNr53T33FcDA8yKox5xDLVFUPuUAoHu6K2mVK4YbcksGcsTZmMB5pByPcRVAsKhjccDY23vohWA6Pfyes6KJ46YvTy5w19kHJns9jap", + "public": + "xpub6KpAxtNxspbLU6HdEzrpKDtwtX5xoNC2AWph7RB6sQ5aVZCRAQmpK9VZfNYxCWBvX5EnKRHSmT9szUHkKbfgbYdMEuEhVv8eMHRM6QmppEy", + "chaincode": + "48be883c7a99baf4cab5880bb44f2c6ef0db00c4cad7514bbc7f1ab4667cc599", + "finger_print": "ccaa11f3", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "56778be2" + }, + { + "private": + "xprvA9aLy16ExcVsdpQjimPWTn2fUDt7yoMUtTa54Mxh6WZAieH6CYzGaU33gPbWJz8B3UaHX8WR7crWmWW9kmTyu8PjBAdDaaisTHkEQxXeuYM", + "public": + "xpub6NZhNWd8nz4ArJVCpnvWpuyQ2FicPG5LFgVfrkNJer69bScEk6JX8GMXXaqSTLLJeFQfuujMGExhCeiNxynnpAhZew9pBtrJKYioxWnhXFf", + "chaincode": + "6fc3f4201f0c944859c8f50285e6d906d3869d718dd44e3df4d20ebb75e3f2e7", + "finger_print": "f4b571e7", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "ccaa11f3" + }, + { + "private": + "xprvABkYxrG18HWCcczoVorWX1kzsh3r3dFzpDDfnx1ZXNzfTNbq7SCMxScjkxehWd6bDenM5HHYhDozVvGNsFsuNucNAqAch2EXRgAxkfLVReJ", + "public": + "xpub6QjuNMntxf4Vq75GbqPWt9hjRitLT5yrBS9GbLRB5iXeLAvyeyWcWEwDc9RUMRgEq24952CYVxKEmTMFFjthxqyvFUixke9XT94DwoRjJJN", + "chaincode": + "a854c33d78d02df74da7929a039205241da78259b5fca0d95dda6539eda277f1", + "finger_print": "9fe56193", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "f4b571e7" + }, + { + "private": + "xprvAD1Xjwuhu9SvcPXFqzpjjFhXWoPtovM5WRMoj5K4gHptkXJSDpfRByuJkDvwncE2GnUZn7SHbXVmoLwgvJ7cN6hEUhn36ig4GqBNcqHv3iK", + "public": + "xpub6Rzt9TSbjX1Dpsbix2Mk6PeG4qEPDP4vseHQXTigEdMsdKdamMyfjnDnbPxx5q4KGju6KXShyCiNXu6TZX1HDcj9JzVaYHHmfYwkA7x8A8P", + "chaincode": + "27fe046f11761c7d14c643d16468b48507ac5201d04ec61a71abb5d4ace1e3c5", + "finger_print": "3716d625", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "9fe56193" + } + ] + }, + { + "seed": "70020868281bbe02c5970f302a0c145407bf80a575e663fe9aea3c772e7aee8f", + "private": + "xprv9s21ZrQH143K48mNWhfHUGTE5i5ktt3cEcDjnGkQEPkURnNRVY1AFiWkvGExuiNRFmw8peo9rvR2BxsjH89obYNY5yhDtQQptwqpzs7dzDF", + "public": + "xpub661MyMwAqRbcGcqqcjCHqQPxdjvFJLmTbq9LafA1njHTJaha35KQoWqEmSdRExv86aoyQ2gGRP7AWV84ZWdjJL4KPmJPqwxYa7cG4XeY39E", + "chaincode": + "d08497de5fe29d5fa8e94a6ba4b98123316a6b6a89ffc3ad415cff6aa10f8d02", + "finger_print": "2468ec78", + "child": [ + { + "private": + "xprv9uAfhKrGryiJs6HpXjGF5E6ksw65inze8SUL4nm7sRofjMge2hWJZBfzXoNh7LjzKBHCYoMPTkMP4LNE5Mjyw4mdSioj89cM8fbvh9wvSKA", + "public": + "xpub68A26qPAhMGc5aNHdkoFSN3VRxva8FiVVfPvsBAjRmLecA1naEpZ6yzUNzeayab7rhqL8uTjnDtwZoMbM5J7MRC7mxXFV9iE7us199JCNG8", + "chaincode": + "e7f9570e0d28acaccc493e7d54b0511536b99c723fc4f8f9a7aa2576bc428402", + "finger_print": "ff659650", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "2468ec78" + }, + { + "private": + "xprv9xfAEBskGWWw3kQvRej5YhLNxXzCfpS5R9keBqSFyb3iTRwrtWXHhkSwdXL5Coa55PkvH8pWrzjsZwYW398iKUWgboSQEKwRAyJ9bea5wH3", + "public": + "xpub6BeWdhQe6t5EGEVPXgG5uqH7WZph5H9vnNgEzDqsXvahLEH1S3qYFYmRUhmMvm5wUnmcuR5wpDAtQARPXrcFSJpGypceWaQSyX8FkV23LXk", + "chaincode": + "a6f21b34db6f51b6f83ed9cfe07692633035790ea5ca0733f43f159efdc82574", + "finger_print": "ee3d1050", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "ff659650" + }, + { + "private": + "xprv9zQyq7hPKtEtVRx3rAEL5H36tGUFCH9Lofsg34vt1mw3pifc94qUty8oU87R4MeCPYGMfgpCrSMG4kPc6J7D2Mf9E6Z4XMt91VXJiJPRdK5", + "public": + "xpub6DQLEdEHAFoBhv2WxBmLSQyqSJJjbjsCAtoGqTLVa7U2hWzkgc9jSmTHKJcoR8LZw3CDvrmX2S8bkSvURpePWWi31j6fFYGiLbttJ9yHTEP", + "chaincode": + "2e1248f58391abced0f84d3a9845708e927b1373533073047a4e9ce131116315", + "finger_print": "fef659c0", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "ee3d1050" + }, + { + "private": + "xprvA2RFCcTQqdF4Ee7prQQsmkuVendZLwJsasLdqtpqNbbNpFAG3YFtVEz7Vgs2B1JybXgsBkCYnpNtgc8bvBtS3QM74cfQqv8wJixtpnzsnwC", + "public": + "xpub6FQbc7zJfzoMT8CHxRwt8trECpU3kQ2ix6GEeHESvw8Mh3VQb5a933JbLrsUxSkQsivMEoMtQ8Qzuqcep3PPUQq9pVbsUGEZDmibAGoJmHD", + "chaincode": + "2b8d4950352c8ace84da0a7f86d0d46c40fca7be03cc88f5b3b66fccd15ab092", + "finger_print": "02ca1904", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "fef659c0" + }, + { + "private": + "xprvA2Ssq9Ctd6XeoEcYororLLCCoJPytfpKjnTvHmqa1iPASCTJM6YXtKq3D2xW4NoKbpGXUTcXZ8P714f7aR2kuoi1xSKEuw3GMuK8heXGxeg", + "public": + "xpub6FSEEejnTU5x1ih1utLrhU8wMLEUJ8YB71PX6AFBa3v9JznStdrnS89X4EGrjZNp59PUgkEFtU6uQmNS18fgHEC4hhgDECVok2noYgizU2M", + "chaincode": + "7b2d0dba3ca8888b1d866d1ead6543ff67e6a2dc010f93097b3d1b3fa84b7733", + "finger_print": "fd8cd02c", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "02ca1904" + }, + { + "private": + "xprvA6AuzrV4h7Xu3gK1tfsQ5BzfDicvu4QST2oX7qNUtTJv8h53aV9fRP33ec3bbs4sabn75SMx7XGCMw6fXTsU6bu3JNgVzqQnt5RCJo5cDUu", + "public": + "xpub6KAGQN1xXV6CGAPUzhQQSKwPmkTRJX8HpFj7vDn6Snqu1VQC82TuyBMXVo54VqWhvvRyYikGHJt5Ao9CtzhPYnGqwEf54VrM6cTKjGy6ZLn", + "chaincode": + "cc956c00de0124b31988a880990a8f4fd5810746ffaaa53e79a1615903e6ede7", + "finger_print": "2ea6bd68", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "fd8cd02c" + }, + { + "private": + "xprvA6Xr5QvAcLcEJSdDa3H53GsVKemniurCiQYcMVqFdoVeJ3epn48jFRjkFVbie6jNGNjyp23Y3rTtNzuRFBHHnWG8yCGAriE62VmXSoEYWLC", + "public": + "xpub6KXCUvT4SiAXWvhgg4p5QQpDsgcH8Na45dUD9tEsC92dAqyyKbSyoE4E6hN4ojZcShVDV5JcafxPjXGiqPix7wNbzw44m5H7HxzL287kncS", + "chaincode": + "8863684d43ea0a5419bd7362fed487d7ec76c9ec61764c5aea91fdda84ff9c87", + "finger_print": "dc12db96", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "2ea6bd68" + }, + { + "private": + "xprvA9guyecfVbHpK5558XThzWFnbv2jNAtHNTj8ybwQ2XCtVwYxpS6GxUtjPoFLn8D7t3dkcnAuRPirXtZCVhjdrvufLu871QKxFPD2MX9RPGT", + "public": + "xpub6NgGPA9ZKxr7XZ9YEYziMeCX9wsDmdc8jgejmzM1arjsNjt7MyQXWHDDEznUocVgPNcmoUtf8g2JzQnRy1zxDSL4C97QgSDCHu6NygipLSe", + "chaincode": + "fabdc6df406474ae3c0198c0b79acecaa120557388ee7ef0d25eb4e1bab8efbf", + "finger_print": "a552a3c4", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "dc12db96" + }, + { + "private": + "xprvABAi4mdoqMKWsyV6QefBuQVuiXyHmpckSaaZJVnTpbj2y89QnwD8xrnxTQeJxvqjKwHYpQEVTcwjjh61aBQgL7Ths7jkqAgRcneT22WH85B", + "public": + "xpub6QA4UHAhfisp6TZZWgCCGYSeGZonBHLbooWA6tC5NwG1qvUZLUXPWf7SJbpWR363QoiLDBQ47TU9QBtHbb7so6TQW18AWLJyjVYaDM1t7zS", + "chaincode": + "46699fa65f157e5dd8dfd50134cc0dcc8854d8ff15808f3244c7d3b0dddf3e49", + "finger_print": "786fd17f", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "a552a3c4" + }, + { + "private": + "xprvACii58TgNDTSsMjS98TJhiDCEdVN9VBhHLoF3CsqAh5Jjre8He76uFMAhKS8E3be2Rz2neM9hK7R2akwrCfr57y8DE1wLz8Zgfz3q48eJyA", + "public": + "xpub6Ri4UdzaCb1k5qouF9zK4r9vnfKrYwuYeZiqqbHSj2cHceyGqBRMT3feYVsVuHkVZKfe5QXyv6iiujyyCVZofRbZcjizDANWPZRJBoiscM3", + "chaincode": + "0363cb4d876f7068cd65078de0df6959d571a8be97e4b25d2460fa8c5540e24f", + "finger_print": "d8e6cef6", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "786fd17f" + } + ] + }, + { + "seed": "354799b1236e65b417ded2b1792e31834e0baf4bb073a99e3a2c9252520ead6b", + "private": + "xprv9s21ZrQH143K2oQ3xfJs3YTnN84iW4gB6gCCAc1i5NBLiuH6yLccS3HVdFsVzNVWNcCUuNNhjKbVBRGTJfxzA7XvhTMJ1131os9ptCryvbw", + "public": + "xpub661MyMwAqRbcFHUX4gqsQgQWv9uCuXQ2Tu7nxzRKdhiKbhcFWsvryqbyUTmZLHgMJbco11PebxV2cUmrWcDJw6VaVgzKW423UUHsiViE39n", + "chaincode": + "4a89551b436f7fa36e4157e657f414441f2383ed91ca135e495f94d8721e57e9", + "finger_print": "b3e00234", + "child": [ + { + "private": + "xprv9vDq1xXgg6cCrF9khN8qU5oAiAKaXDd8WGpzEDPaZBUzoxRFYzGidqNcjkfbY18eoa1uhJQZC5er7Eh8LJ72NqE9JX4JGurFnfn55aqL5gZ", + "public": + "xpub69DBRU4aWUAW4jEDoPfqqDjuGCA4vgLysVkb2boC7X1ygkkQ6XayBdh6axD17mUtxxZE8PRE39ZXuKReYfCoojejeY1X7nYvDVP6zHfxHGA", + "chaincode": + "0c6ea4750a57a23996e5b78c6c2436f080550649e804daeb9cf35d860d32a4d1", + "finger_print": "58321803", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "b3e00234" + }, + { + "private": + "xprv9wRt1bdojS71Wc9UHoF1tJSqLCXFhJ6zMhGda9Ej7dyy2NmmeZ51q11hY8fPWY8757BYAtkSSfwKaYpRam9zXfGvPbKgivkgYkbq7NCDuiZ", + "public": + "xpub6ARER7AhZofJj6DwPpn2FSPZtEMk6kpqivCENXeLfyWwuB6vC6PGNoLBPKCcXMWgpLzptCzTXxYoTeoWLsQoaSnwuDzp33zLoU1CgWDTD2M", + "chaincode": + "2b191fa50ef6931705043845f8ce92e9caae374616619ba6ce3d845db64ee319", + "finger_print": "446a89fa", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "58321803" + }, + { + "private": + "xprv9yAaoR9cqtbuoL2FRHg61NvJJDWeYLGX883bhnKpb26xCdt5sooxPH9jZRvUtSbtxkX8uUqMx6mWLiGaST16E9oRdt1xwNqGEcAEGB8P5to", + "public": + "xpub6C9wCvgWgGAD1p6iXKD6NWs2rFM8wnzNVLyCWAjS9Mdw5SDERM8Cw5UDQdKRjqLJ1WnoRHfmhvnebt2gE3ca7JSsJQwhmpqG1rRXoEEM66P", + "chaincode": + "20cd6e9659d7f5e723cf3666bd91fb592022f624f794346ec257554fd373b56c", + "finger_print": "ae46b741", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "446a89fa" + }, + { + "private": + "xprvA1prA2TJUCu8S9N6Te3c9mUSGWBP3o5aKPXV1oFhE8GobizAG6NdZd9PQkbTEpKwHrof4nrZmQc6KTMpyjxkFyqdK5aZqLGRdKAsRqtupK1", + "public": + "xpub6EpCZXzCJaTRedSZZfacWuRApY1sTFoRgcT5pBfJnTonUXKJodgt7RTsFxLRreTyLuhdNKKrMmRtDWBfDthNmMNFVXMW3j82P7Kp8QeCBGJ", + "chaincode": + "e065f83f910931906176b5d233f76b8c636e244726618aa6d1b8f0e9dcb61e3b", + "finger_print": "745e65ab", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "ae46b741" + }, + { + "private": + "xprvA3HJCBH7qC6cgx6oNcLgBowMvqVZqAdtZXjV3CxDS5PGCVHbyZUxQtpR2BXpEAyJDqihVTGCms2DvMfvzDsp4ZFn2g1pCggTe1w2wxQ9g2G", + "public": + "xpub6GGebgp1fZeuuSBGUdsgYwt6UsL4EdMjvkf5qbMpzQvF5HckX6oCxh8tsNp5FiH9WgrPBeEpWegk5wgUa57BHMBmbZNok8LA5uHXT8QaUjz", + "chaincode": + "976262bf5e45ccef3a76c8f6c111985e823a08849ef3a5969065e97eeb0fd6d2", + "finger_print": "c53185ff", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "745e65ab" + }, + { + "private": + "xprvA5ktXNY5rrSbo2DcXgC7P2jNrk84ts8c3hqLqMUrbyXsAFrvaoeNV7vm3QjJY3XVKarWiV5q2hzJEwQpqb87UBg2xPpCMeNZkhDgEBmLfra", + "public": + "xpub6JkEvt4yhDzu1WJ5dhj7kAg7QmxZJKrTQvkwdjtUAK4r34C58Lxd2vFEtcLSXMaAPCzHhQgypb85mVY8gdi9zJi48bUeiCk17CU8L2wYDbB", + "chaincode": + "6ed0f4bac730233b74ac2992365a3a43279b14db4719b32990c9963ca60f7c6e", + "finger_print": "ae9926d1", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "c53185ff" + }, + { + "private": + "xprvA7UPhBeeJWNjYTyRj8iADx6HAXjgYKRuyFZ7iBKHGxcBb1bmdxyqRT7VFBitxGK6J5gyoY45H1hK8SgCWa2faCQ5e6RptLDAk8ByfN227mn", + "public": + "xpub6LTk6hBY8sw2kx3tqAFAb631iZaAwn9mLUUiWZitqJ9ATovvBWJ5yFRy6NCJ8JhPeURv74u3BqZmpHTjV8Wx1DzhArkz9yW5qNiM8Dk549m", + "chaincode": + "7fc80d1c441cedd7842a8baac173cc1b935637e4e7f832e60e8edb1c2e83d740", + "finger_print": "1aa0b58d", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "ae9926d1" + }, + { + "private": + "xprvA8GSqF5EXvUaD97URXnzN8tcpgd2DwWpa8JGjvPQzPYDnCpHsgYyoZ91T2pgXY7Yh6VzQTmMwXnb4JAeHqcYoHWzTx5rorwSpboAd6eaS2T", + "public": + "xpub6MFoEkc8NJ2sRdBwXZKzjGqMNiTWdQEfwMDsYJo2Yj5Cf19SRDsEMMTVJF3vixdBFYc5QkrMutyVDJC2T7ogoU5iuEKodywBBXFk4HL8hQ4", + "chaincode": + "77f201ade0d00caba6037b2d8b3362e2f6a025c2198a77e6569a16bbc00ddd9b", + "finger_print": "5a508dea", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "1aa0b58d" + }, + { + "private": + "xprvAAcjQwwrwbRbPjsJ4rPsGYfiHsGp8iQSnt6xqXUdSKNSe8WQ9tf9bjLNFWHtdWyCw9WdGqkWGaGky5XJQHig6mw5ediE8KzHc5D5Q8iHrxp", + "public": + "xpub6Pc5pTUkmxytcDwmAsvsdgcSqu7JYB8JA72ZdutEzeuRWvqYhRyQ9Xer6hBbPfq7VcEtj8U5RjvKjoMdc8tNSjqkX8ZdbLGs1VGgwos4Lwy", + "chaincode": + "a0757a422ee86b4335519a13082475f34da786756529d22d805449e79bed937b", + "finger_print": "558a86f9", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "5a508dea" + }, + { + "private": + "xprvACTqExG8rLobNP4ZScr6GkfeMUcXtyocsYhMpeqwLHbGg9L3w8cyhUnyAwHdxSG2e17q9MTfYU9VYYAZ4XszNd9MYWFTVjUxuG6rDdkWGJn", + "public": + "xpub6RTBeTo2giMtas92YeP6dtcNuWT2JSXUEmcxd3FYtd8FYwfCUfwEFH7T28dUhXmUkZAVUtswQX1LFaEdhBEcWgLMdxwErjq62oCSnVNNqPf", + "chaincode": + "6b2b88043693b5708afd93bd6f28358e0abce4dc8cfaacdead3e880a218150c0", + "finger_print": "5abe8e8a", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "558a86f9" + } + ] + }, + { + "seed": "2e23682ab2d404e7c9cc2c9ab5288f188710d453d6c4d5559bf9a138cbc01806", + "private": + "xprv9s21ZrQH143K2GEMQL7Lxgg4XsBvBMgbGB3f8agkpfe1iFvsJnqEGiwe5RAkK1dgpW5p9N3EdFpUYyVuBpUfQgm1xrRL7j8KEKGKQr71e8Q", + "public": + "xpub661MyMwAqRbcEkJpWMeMKpco5u2QapQSdPyFvy6NP1Azb4G1rL9UpXG7vcPDu5F7YXraXXLsgzVQiixDQFD9uNHarVhUsfm8tBYFeKUVpam", + "chaincode": + "14900263982ed55c5c4c4a77486dbeb41a972cca3b2b9ac4c269fb5a83d16345", + "finger_print": "146c7efd", + "child": [ + { + "private": + "xprv9u3rRbqbp69jWRuhx4EysnM8wZ88JtdJ5osU9xTAxr717W3YufejUvqNtK1rCfLr5hJ4jFt82Ho9JNezcZyNixz9Z85jVA5pzd2Y3N2LQT3", + "public": + "xpub683Cq7NVeTi2iuzB45mzEvHsVaxciMM9T2o4xLrnXBdyzJNhTCxz2j9rjWuaHrcBSeeT54CY8mpL6vGykZDPjvgjyXXFT4qWqr1ocbXkdTj", + "chaincode": + "3ae9c5471e20e267de23ff5c28602d313a04eff1ace06e847abc1060a8666e8e", + "finger_print": "a5c9d492", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "146c7efd" + }, + { + "private": + "xprv9wzxZysASHYPUxd6e9tThpBWUKeb4Bqq3SJSqYYb1rRk4zRz2tJb2SnvmqfXJoKBsrbbneGbd1D7ZocTHom7cgg9UhChkbQtzYsLxRrYZqr", + "public": + "xpub6AzJyVQ4Gf6ghShZkBRU4x8F2MV5TeZgQfE3dvxCaBxiwnm8aRcqaF7Qd1fnB6qQ4uvMNhASHmPHjQZcYTXA9TMqw34mPRVZBJYvELydVpv", + "chaincode": + "73bcb3179ba75304d78d2ba029c9669ae4b49cc8fefa59c2c62f900aa7d3b0a4", + "finger_print": "cdd8324b", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "a5c9d492" + }, + { + "private": + "xprv9zBArawymQu9vMrf7LDDcdeMdnRkfm222vMKHMqWKfGYp913d39ZQBdZW2ugXFrE92y3APLv76vC4FuBgZxJpEWjaG6fS6hVkmcmxiLByw5", + "public": + "xpub6DAXG6UsbnTT8qw8DMkDymb6BpGF5DjsQ9Gv5kF7szoXgwLCAaTowyx3MEpNbJb5xH6mbg2TtvfXgySJKWhutk3Sk37chisuakyYQ5dygrS", + "chaincode": + "5ddd3e442cdb3e340d0622f10a5f1ac2b875620e3cab79e0f54d780ec3900e35", + "finger_print": "9480ee14", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "cdd8324b" + }, + { + "private": + "xprvA1druKT3gVak7qqyZn3tVAafjqc6MoQnbQddkXT8u9UYyFy4u9eTYRaeYCzpS2ZnNf8YroGCf51TXTwjCJjGZ54R8HpbdXvT8pBUKHSTKJy", + "public": + "xpub6EdDJpywWs93LKvSfoatrJXQHsSamG8dxdZEYurkTV1Xr4JDSgxi6Du8PQXauV3NjifzeSkCy9Gjnyn6PTB5WGxfDK5aL75vB9XKnKSZDJ1", + "chaincode": + "a8b804e3f6d0c6432428196da4f6f1cdf72e4e99e2aca854de1567ebba4cfd3d", + "finger_print": "b9f55677", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "9480ee14" + }, + { + "private": + "xprvA3nxsEXxxRBpvAQTE34hZ2mB2ducXSxazNm9QBKvkvitgFiUXt6KE1KVXkXroji82DUQzg3K9UK3pTwigQGcTCZMb4uwifdZ6hz5QSx7wF2", + "public": + "xpub6GnKGk4rnnk88eUvL4bhvAhuafk6vugSMbgkCZjYKGFsZ43d5RQZmodyNx74Hnaqk44Ud3nkk68bFqK2Z6pgb69MwgRdEAGrPbcvfKKow6g", + "chaincode": + "4baede6f81611d7a437d17a01f11f4d2d3f736c476b5c6a47d67b930c777ebcb", + "finger_print": "0df2cdfb", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "b9f55677" + }, + { + "private": + "xprvA4QmcAFtUhURTBauYQCPCpyS2oHnCUvCmARx7FFgihrMgzTeGtbByvw9M3KGbZbtwxYckQPkYD6piPSm8jq8uU2vBtsZqVhx22iptKsAzL7", + "public": + "xpub6HQ81fnnK52ifffNeRjPZxvAaq8Gbwe48PMYudfJH3PLZnnnpRuSXjFdCEUbPhYZcGAwbgWA2BhTrH2XSWg6UBErweDpP3X8RtYWyfzLyaa", + "chaincode": + "689fe15d42da2686319c52e023bcfd9caf8f283724c3117cdd00da898e30e04b", + "finger_print": "4c5d1c88", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "0df2cdfb" + }, + { + "private": + "xprvA6kWkCmqocef7roGp39MVND4Eg1zHcxwY7Tfq3RkfeciGppCMGN7o6X4vtiBykWCMZvVv5dH1pMC8Bm941um1s8WGPhxivBbacWYN4LMDc6", + "public": + "xpub6Kjs9iJjdzCxLLsjv4gMrW9nnhrUh5gnuLPGdRqNDz9h9d9LtogNLtqYn46qHU1hdzqChJga8SgtpgMrA5ArdGitEPBKSE3dP7pTWCmoTDf", + "chaincode": + "7261417adfe2afc7da6b5a860241cb0f3fec470b6896c47ba46397453ca6fa7d", + "finger_print": "36ccbc29", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "4c5d1c88" + }, + { + "private": + "xprvA8UTQuzU3LpMpaaYqUts94HYoh9kagoSRua2W7Rp7xzePeaV5NGLAYF1UHKZs4tDgtyUEQxDtUCB2pQP3hfGcpxfJjcYkVHqDWaL6hyaLGr", + "public": + "xpub6MTopRXMsiNf34f1wWRsWCEHMizEz9XHo8VdJVqRgJXdGSudcuaaiLZVKUiYEvfmd3XueTauLYA7GcRjqxuEzo25ZrEHodoLC8tpdXJLqhk", + "chaincode": + "f7a23ce611db320403cad3a861f2fa73cc76bcf1bf220e41c61a5b0667991d1f", + "finger_print": "5dffbc72", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "36ccbc29" + }, + { + "private": + "xprvAAeJWe3xFtCRkcWRVva1V7RzPdWZ8SyUoL9dBsuwCmhdfh4zzYuSpHUaG8vcXxz8qaGebdufHzCQMHAQnL4R1f5rrNxE6UAJkspZNe1AyWT", + "public": + "xpub6Pdev9ar6Fkiy6atbx71rFNiwfM3XuhLAZ5DzGKYm7EcYVQ9Y6DhN5o47K2snHTp1CvoMUbAmvaDXQcHsNyzrDxKpC54S33Ku6vyUs8ytk3", + "chaincode": + "faed723c930f967e80ab3c6c7eaa433a2433df28a6641e90c77d609888b53a75", + "finger_print": "f3b79c39", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "5dffbc72" + }, + { + "private": + "xprvADdGJf2RtuiMDfvGy7UZ1G3xUnpn4QQD2qbEQUKP9QYSW5WGdabfsVivDwonAsmBccacCLRccF2B18mVcvzMYLam4ez4q8knG6ixzMe54ob", + "public": + "xpub6ScciAZKjHGeS9zk591ZNPzh2pfGTs84Q4WqCrizhk5RNsqRB7uvRJ3Q58ftiMyFYXTYyvNoQQFphGiaJVetPZLwFTrPDyWzgY2dw6aic1C", + "chaincode": + "493953794bfdc58f05bdf188937f81406618376365f39f6c9e41e85fbb73aa48", + "finger_print": "94d7be07", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "f3b79c39" + } + ] + }, + { + "seed": "635ab6e725c33104641ac6956be71f9cfbf72ff9b7125233d79f1cfe33581562", + "private": + "xprv9s21ZrQH143K2XZJiTTRTeSrjkFZee5UQrcZmFNdktJncf1R5o4rLK5yTjqG6vs9s4V7vZLS3RRSnwxQiKpvQp11eujv5Xw6sqXnTBHXZJE", + "public": + "xpub661MyMwAqRbcF1dmpUzRpnPbHn6446oKn5YAZdnFKDqmVTLZdLP6t7QTJuKvtd9Nv7TPaMmaEMcx65K4UHsTUcMeRmBuasE2qLBcy6fYMoU", + "chaincode": + "2f1acfe7243c83c5db074d9e3c2639dfb1db3689b0d64761aec1dcec1156252c", + "finger_print": "7a1606de", + "child": [ + { + "private": + "xprv9uoC8Gm8MU6Pr5LcX92hzFnDUBWrFscKPoK3U1z9C1p4KMYWWcjmUSG1CjizMhybvB7ddCj7HTHr4z5Viif9eTjz8HyfXZqk5PCzDg8EHxP", + "public": + "xpub68nYXnJ2Bqeh4ZR5dAZiMPix2DMLfLLAm2EeGQPkkMM3C9sf4A422EaV3vuzizXLQoTy9ecRod64ukA7jASVdc6Z8CkjwXrmbzzNtEvKvtU", + "chaincode": + "8c9b431baa9f12c0bbfa74e1e5fb28d222086316a21525c71761fefc90f3a9a8", + "finger_print": "08df0882", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "7a1606de" + }, + { + "private": + "xprv9vr4dih1wMFiBVeeJDGaZMkfrJYHYLN2FQRfUWS8fH51TbxGhjxxq2hUmZuowKaTfpG1a8x2LuEeX4tm6k5bF91VwvqwBSrNypCsTBMzZJo", + "public": + "xpub69qR3EDumip1Pyj7QEoavVhQQLNmwo5scdMGGtqkDcbzLQHRFHHDNq1xcjruKMoHYJ8QjJ5H9zkHwVcZ58FDjvBpXPS77tZsXKSDW9NiWZY", + "chaincode": + "3438d400cfdba6a66c4821795d4efdbea9557c4eae900e7ebb2b0c2284e38eef", + "finger_print": "f2a892ba", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "08df0882" + }, + { + "private": + "xprv9zSs7pKtuV7ovp8A7eUHYMswb1jYcjVLesgBFPh6p48XhVXc2sZ4PHg7t8akFXg9KZo6R2EEv9vz8v6cd7cboRT4zNCodVP8wGLBTUwewsv", + "public": + "xpub6DSDXKrnjrg79JCdDg1HuVpg93a32CDC26bn3n6iNPfWaHrkaQsJw5zbjJgaAg1Mrxh2uYwcUEExX1YV1mrC19qZP6VtCvYKibSobytkwoY", + "chaincode": + "3c8a22fb8900b669d981f1ab8005fd069db8ea02f044425584b75d70ef5a3749", + "finger_print": "10e09066", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "f2a892ba" + }, + { + "private": + "xprv9zfkJjUR3qCoP7j5tFdj6sXuRZzVT7tErb3smQcKsz6LYa6dNteo1tKWf3PihbTbE2jEjYdgfxvxpHDcUsCyoMGF1Utas48Nh59toPRU33S", + "public": + "xpub6Df6iF1JtCm6bboYzHAjU1Udybpyrac6DoyUZo1wSKdKRNRmvRy3ZgdzWFT1i7iLx8v58M7q8xuHuuwnRtbrHkYJCFeXpqETaGUuAJpTy1S", + "chaincode": + "c47f97d030c59d7ba6d38a6d2e0b39ca3c15cd632fd986cea020dda9e5e2b507", + "finger_print": "cf6812b2", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "10e09066" + }, + { + "private": + "xprvA3x7CFxzEHsZrJ55kwW72kGB9EthJKS8XZG6GRnC5TCk863LytgeLJRngnRR9hySV1KBp5wWxUbRtSbRaMbPWsk85WnTXhTiayDHZ7YPHn8", + "public": + "xpub6GwTbmVt4fRs4n9Yry37PtCuhGjBhn9ytnBh4pBodnjiztNVXRztt6kGXzDSs7U33tV8DadeTowwXHkTQ5LPpTqSRZLLpzg2PpjkqNW2ELj", + "chaincode": + "10f34240b0abb2cd2313c8b62774a5c8168ee086ff52c472826e3582d041a7ab", + "finger_print": "731dd146", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "cf6812b2" + }, + { + "private": + "xprvA59u65atx6dMBpHwBn6F4iGokUgxv9QAodZjgNqgG4VgPuGAkmDvYV4H4GvM9AiyH9pqGSjGHp5WgYde5VtzB5HrvFyZneGNLvjWCs596En", + "public": + "xpub6J9FVb7nnUBeQJNQHodFRrDYJWXTKc82ArVLUmFHpQ2fGhbKJJYB6HNkuUeXsvaRsY6Ticw7zzbrUL2AfHsq2d9FG88TvKRaPUaAMvdgBNp", + "chaincode": + "2e7d06f48e62a4b3421b86102085e56648802dbea77fbcdd46ac6e64f2ce7375", + "finger_print": "4d248e59", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "731dd146" + }, + { + "private": + "xprvA6kr1VMgpVgT7PRTdLhKzkxTcGoGbPVE6o8EvPWakqukgXFzY1LPmdocEb3bkuLtk4G8YQtpdBVnRvaw4cYsSoAo53KbNGZX4Cy8NhyuwrM", + "public": + "xpub6KkCQztaesEkKsVvjNELMtuCAJdkzrD5U23qimvCKBSjZKb95YeeKS865nZmq2DHWysF3KZpgXG9JKuS5UnazHB1QiugMXq1tXNvxbziu1N", + "chaincode": + "05c8e622b7cb0a3d310bdce57aa555cd5459c4f8f6f38f6f74fb482b3e635978", + "finger_print": "118c5149", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "4d248e59" + }, + { + "private": + "xprvA8CaL2rgjfGWe9Yzvy2YXA8H1aTCyLgvcnWJf8yz6D1sfte4g4T75jwEtsA6JCga47yy9ZwzJjry5QspjEWcdfhEwXY2sx22tKN3dEcbLbe", + "public": + "xpub6MBvjYPaa2porddU2zZYtJ51ZcHhNoQmz1RuTXPbeYYrYgyDDbmMdYFik3fLtnpVGfCYqByrA8Xn6fqhjCVoEDWS73qcgz84YA9hrCHddYo", + "chaincode": + "9dcb1382e63e26f2efea0d73bd4e8208dbc7ca71a97de4307f21eb433c3cbb8e", + "finger_print": "d0b9eff4", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "118c5149" + }, + { + "private": + "xprvABVDG7HSjrssg1BCUt8UbvCczc8xd9Z2SbTThP2zRykDnvzaqciKEKP6Be64ngahifoHrDLkkXReZigtvRC7DKiveCjRUTnMf2hzVUaUXW9", + "public": + "xpub6QUZfcpLaESAtVFfaufUy49MYdyT2cGsopP4VmSbzKHCfjKjPA2Zn7ha2q4HEhRjMMgQ8LpqzgDGkxGqvoeUS9VfeKHcjU7z6VoMcCaSD3y", + "chaincode": + "9fa2025c28cfae1173abcdea2ae5aaddb20031faf97c6657196ffcd82a72341f", + "finger_print": "95dd64a8", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "d0b9eff4" + }, + { + "private": + "xprvACwFi7YqAHLZHWf9vZedpLxYcamerAKqhztXgyVs3NWrWZWvb4xmwet5rc7o2RUNBzUGgkozWQhN7U7H1rt7rGgZqQCDBzzfJ3BeNwFLvFS", + "public": + "xpub6Rvc7d5izetrVzjd2bBeBUuHAcc9Fd3h5Dp8VMuUbi3qPMr58cH2VTCZhoYgZQvnq7K6iFGvb8erHGsQ3tTZ9X3VKXYXs91omvPp3Ytq4sb", + "chaincode": + "0d06ad89228543e2b3865a9c3a60096104945b1c3aab2d94c987da00afbaf9fe", + "finger_print": "748266d8", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "95dd64a8" + } + ] + } +]; diff --git a/example/lib/test/bip/bip32/ed25519_blake2b/ed25519_blake2b_test.dart b/example/lib/test/bip/bip32/ed25519_blake2b/ed25519_blake2b_test.dart new file mode 100644 index 0000000..04fb5df --- /dev/null +++ b/example/lib/test/bip/bip32/ed25519_blake2b/ed25519_blake2b_test.dart @@ -0,0 +1,26 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_ed25519_blake2b.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void edBlake2bTest() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + var w = Bip32Slip10Ed25519Blake2b.fromSeed(seed); + assert(w.publicKey.toExtended == i["public"]); + assert(w.privateKey.toExtended == i["private"]); + assert(w.chainCode.toHex() == i["chaincode"]); + assert(w.fingerPrint.toHex() == i["finger_print"]); + for (final c in (i["child"] as List)) { + final index = Bip32KeyIndex(c["index"]); + w = w.childKey(index); + assert(w.publicKey.toExtended == c["public"]); + assert(w.privateKey.toExtended == c["private"]); + assert(w.chainCode.toHex() == c["chaincode"]); + assert(w.fingerPrint.toHex() == c["finger_print"]); + assert(w.parentFingerPrint.toHex() == c["parent_finger_print"]); + assert(w.depth.toInt() == c["depth"]); + } + } +} diff --git a/example/lib/test/bip/bip32/ed25519_blake2b/test_vector.dart b/example/lib/test/bip/bip32/ed25519_blake2b/test_vector.dart new file mode 100644 index 0000000..f001c4e --- /dev/null +++ b/example/lib/test/bip/bip32/ed25519_blake2b/test_vector.dart @@ -0,0 +1,1322 @@ +final List> testVector = [ + { + "seed": "e7e86fbdbbc537ff8a29c05bd2f62c108a8059591c9003cbf17364f4f8fd9efc", + "private": + "xprv9s21ZrQH143K3gNKD3uuE5NGmgbYsG8KuFkZKjPxfsG91wY2GrNJTxRuRdvKEhm4yCKWVKTm15AoTgc8yoPoCRTxFvKF7BD26BpWyT1M9eQ", + "public": + "xpub661MyMwAqRbcGASnK5SubDK1KiS3GirBGUgA87oaECo7tjsApPgZ1kkPGrFhCLFBieQaYBdQkUrx6S7FnhLe5RzmSoaKozy88ER5NYxhCEU", + "chaincode": + "a2cdcfe5969311ebfd22fedc0b78bcf69dd13d22e3c9e082d0f783375650d31b", + "finger_print": "a10a700b", + "child": [ + { + "private": + "xprv9v5oKammupCBPD4ixoMW2W4nyWDvhS89r8iY8M1aeqd3LxB1pXHVDete5N6sSttVt7iTXLcQfivjr5M9S2Q8go7tWTrbU73f9U2oUiDfhy9", + "public": + "xpub6959j6JfkBkUbh9C4ptWPe1XXY4R6tr1DMe8vjRCDBA2DkWAN4bjmTD7vZ8N9xo3MzkWn81Z38ZCDmXKoGiKGkyqWBqfTa69EbmggQ5iTiK", + "chaincode": + "f2c5817b51034a49167b5b9254c3708e9691ea590fdc31436f33576cf4c97a26", + "finger_print": "502ec229", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "a10a700b" + }, + { + "private": + "xprv9wNTt3Zqi9f4scXxcNw3cUVRHNVYeLMo9LnPqRTdPq8BeDfz6tp2G7776UFRm7CxSSULkXW4YhouQBG2ZDfzhucoQyyjTpQoihWNmU4tfhP", + "public": + "xpub6AMpHZ6jYXDN66cRiQU3ycS9qQL33o5eWZhzdosExAfAX218eS8GouRawfrs5pDoLYbvjmz2F27t586eJDVUy5QgUjg96ZPCY8jXEFHScN8", + "chaincode": + "ef9d5d3ee0eb75852d9d1aa1dd94b868227225058ce5d59aee1e6a26bc5c9d35", + "finger_print": "2e905291", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "502ec229" + }, + { + "private": + "xprv9y1GUh7QKgndprkHHBU5KHmQ7QeZ8Xy7sZT8ZhcE6VLKuhLtSDZhJ5AooJaSsrvBeTzBz42HNiStDQXdrQuDRDgXBsRgvWe575J8SPBcarN", + "public": + "xpub6BzctCeJA4Lw3LpkPD15gRi8fSV3XzgyEnNjN61qepsJnVg2ykswqsVHeUFaFQMLBp7MeeuEYydrz7zjYKu7EZb14oHZYi45uNqKna8kWCA", + "chaincode": + "0dec43502c78bbd36e13aab5d833864621d4df6449298bc3a12166fa9b2acbf2", + "finger_print": "95149ca6", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "2e905291" + }, + { + "private": + "xprvA1e7AdYvDAknHWRPUGXw2GnBHoTZH3JtjvvaDYDAUxZBYovaqNqpTCoW8ibvSoTk8uBymVtiWqeR4zmMvwysSbSWkYM18Uaue36JFWLoSqn", + "public": + "xpub6EdTa95p3YK5VzVraJ4wPQiuqqJ3gW2k79rB1vcn3J6ARcFjNvA5117yyuzLXUBNFH6WLveDnWo48FxjTrYMZrft4qeuvLFnoL4rejsDXFj", + "chaincode": + "ba5f2daeef5831d043eedf464e1a8298135a3ab49af05ea448b2fc75a2e64709", + "finger_print": "6dda4302", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "95149ca6" + }, + { + "private": + "xprvA3EX5Ji7pBzXatc4Tr9xwyTJ97JAqt2Amwt5CiVtfkzq42H4q4ZvDL5MdN5iREKmRZeh6C4vrkb9ZxLWxXiTYxYydpMQmhmYnRcyqzs7Y3x", + "public": + "xpub6GDsUpF1eZYpoNgXZsgyK7Q2h98fFLk29Aog16uWE6XovpcDNbtAm8PqUYybbshX8pUDCpHmvNmQoLjhuMV3VXvNm4g7gL3eZ2v7bxuE19Z", + "chaincode": + "64b26b3a1215b4226d6347a815b46512849cba552c24cc0af47e314a59912b41", + "finger_print": "9f80c5f1", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "6dda4302" + }, + { + "private": + "xprvA5UpbCngeTn8amnVfYvbNhbPA6PaWu8Lp23eUhEo4EvJZtbQoeGDduX3i4gYqLdidYgTqUU6yEthTUinRLksc5cYCd4DRXFVa7yn73N5TL6", + "public": + "xpub6JUAziKaUqLRoFrxmaTbjqY7i8E4vMrCBEyFH5eQcaTHSgvZMBaUBhqXZFjamVq1RFHYSM4bisdZauecQwpbAYDUHRhdNguh4EZKtjCBifS", + "chaincode": + "0922a22e33bf95c184aa3752892ae993fb55bde1de96ee5ba94175bbfa32e397", + "finger_print": "125844bc", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "9f80c5f1" + }, + { + "private": + "xprvA6KnAn7aVvArm86KojgZ4u18aEJDD4SVA6RfHPHvY9F9P8B9H4L4rbQ969QNrGMaSNUma8vUW6cvrYb1f96wqmeBhn68tRx5sk8c6ujMkW8", + "public": + "xpub6KK8aHeULHj9ycAnumDZS2ws8G8hcXALXKMG5mhY6Un8FvWHpbeKQPicwKiWf2cYwNYgFx2pZe8cA5BFRD1NJULb8Ur4EWVJ2tcNnyoyumP", + "chaincode": + "1e9ac81a80c8e9023ff4e4ca0590439fb2ac7723911fa62fe0d9fb12b2e0fbbe", + "finger_print": "743ea98a", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "125844bc" + }, + { + "private": + "xprvA8vehkgn6j2LUWAFuuSSqCydbKS1Nphd4LxhxjozWAk5K3RsA51Kwa2wEb7zqhDCkQWNP9MNo5TWPGoMZirLYYisba2gBqJTmSjLcNAJECg", + "public": + "xpub6Mv17GDfw6adgzEj1vyTCLvN9MGVnHRURZtJm8Dc4WH4Bqm1hcKaVNMR5mfevdPtuW4BxfAoQT5j4ar7Mf4X9BYc5eNdcYPvbZyn4ymM8xu", + "chaincode": + "f44234720e933a0818b9678eeccadb7422cac35d9a2156b5833d4e13cede4799", + "finger_print": "6f52f6ae", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "743ea98a" + }, + { + "private": + "xprvAAmgtiwVz5o7xFRszwnbGVhYdfCEtKekP6fpUjoEwaNuMaBjjaGaoN1sijMcT2fRuQFRaaqMWGXytRnqN4FQ6dvzgv9kM7qM9G1DaBG6sVB", + "public": + "xpub6Pm3JEUPpTMRAjWM6yKbddeHBh2jHnNbkKbRH8CrVuutENWtH7aqMALMZw79PpUuJWkxaB1aFdjDWkkTD7mZ4uuANCVBvfbSp5id296Vb3B", + "chaincode": + "fb96a05b76e19eb071356f52752a4f04793351a8b3e6e5aa27938c80699317e8", + "finger_print": "adde2feb", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "6f52f6ae" + }, + { + "private": + "xprvAD7VDAcHXDrLFB4kEZd626ArigdDLB6ztWetsJ81BD1zcNBd7bQyAL4jcvGY1RoeKGHXZ5ZeAZcTXKhtoqMwgMQGRqMyhg1Vrtikn4FZ4Rs", + "public": + "xpub6S6qcg9BMbQdTf9DLbA6PE7bGiThjdprFjaVfgXcjYYyVAWmf8jDi8PDU7jrHsfdyg1HvJNk89bB9D975cEzjybkEziP7BDMiTK98FDmNBz", + "chaincode": + "1d1330056a02b5edcea542340b216475f51235cb2d875fd57df3eacd98581ada", + "finger_print": "9895377a", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "adde2feb" + } + ] + }, + { + "seed": "8835ad1eb7c77239957ecc005b193a461e775e5ea6fb641a15590abdaafd8f47", + "private": + "xprv9s21ZrQH143K4GxyAbaRp1L8Rfun8ToqMnEbK3DLvZ3f4Tu9GnccsobSEqdbQ19deeSJ9goSMN9LiDU8SLvdPdCSdwMZySkM3FpZ54Y62Eq", + "public": + "xpub661MyMwAqRbcGm3SGd7SB9GryhkGXvXgj1AC7RcxUtadwGEHpKvsRbuv62qD2s3S5bGpz1mEv8g5S8C5tXTuJYvmEWbCiEsoJ4U4gDzVyY1", + "chaincode": + "deb7de447334a6f19f4e4fcd913f2ef3e2fc80c9d5ba92640e09b6ec30a0d80b", + "finger_print": "d53744e0", + "child": [ + { + "private": + "xprv9vU3QNWRmNW6d7nMSTp2Sz6oPdvf2b1nZ6x8j8wt1h5ewKjZYh1pbWfZWfeRzW7htozSSCznHAgk3anMTuX6VpDssvW2SwSJZXLbVrBxbXP", + "public": + "xpub69TPot3Kbk4PqbrpYVM2p83Xwfm9S3jdvKsjXXMVa2cdp84i6EL59Jz3Ms6TPBmGdSWvZcvafVtHYyuvtUbyn5xcRXDyGskHET5tDcc4Cw6", + "chaincode": + "59577c4087cd0eee731ebbdab7ce11d1ba1dd0ae3df58edfc3cf92b8752a135c", + "finger_print": "025fa441", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "d53744e0" + }, + { + "private": + "xprv9voHyRSqUpoJe9g4o2UYY6Dka8tyTrVb5dqvk7Mxerb4crBTkMeEissXziN5VGxRQPtMRdsRXgH1YkJktVStcfMxujjRQgKkqZLZmkDyQmH", + "public": + "xpub69neNvyjKCMbrdkXu41YuEAV8AjTsKDSSrmXYVmaDC83VeWcHtxVGgC1quc1cuRwAQ3U1s48PyJissCA8H9sYeAjo369Z5EJomUWqeKiqh1", + "chaincode": + "bee05ddbefc7d35006463fc40638bc6d61f05282abd7e0b295dcdad15bf0fa43", + "finger_print": "4389519b", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "025fa441" + }, + { + "private": + "xprv9yAD3jgPMXXhVPfbKh7DWCCfr8Jy1YXsHDn6WNCmGumd3x4RmW9sCXR7AEcUNF4FnVnpXPdgReFG5BJznaa3RkiL4RLhfya7DQ5D6iQgk7Y", + "public": + "xpub6C9ZTFDHBu5zhsk4RieDsL9QQA9TR1FieShhJkcNqFJbvkPaK3U7kKjb1SKpJxMZAenYSXPeVG7TUvsqc6AaAvis4kBVnFr58ceyQwkDEGB", + "chaincode": + "e4fa77baccf6dd42c090ae1073e218e454a1400e41bd6032e0b34c1ccccfe6f7", + "finger_print": "fabf8b81", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "4389519b" + }, + { + "private": + "xprvA2PT1A618cuMZbjmfoxF1htBdsh5hsaFrCeKm4Be8HDd3cKBpdDX5xnPcTcgNLs9iG9AUhpyHiocR9Nbujo2KgAfAUQZmdsmLSEesA4eg6Y", + "public": + "xpub6FNoQfctxzTen5pEmqVFNqpvBuXa7LJ7DRZvZSbFgckbvQeLNAXmdm6sTfg8Ua9e45SJWQNw6ahZMqgF5WNj9QZ56GXmCotWM3y2NecBYh5", + "chaincode": + "e63719391c92c658d0a1eaa3941bdd7ddf870872cbcec067ba47da38037a9f3d", + "finger_print": "87d75164", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "fabf8b81" + }, + { + "private": + "xprvA3RbfdtVE1i6EbCUxXQ4S4PMyzPQHax17zzXjcAiEm4vVpYGSgY1dsTWxmffbmm13qPGPYKuW5wUtUHu9m8eD4D7iYKZ1zXsGLhvbN52dEX", + "public": + "xpub6GQx59RP4PGPT5Gx4Yw4oCL6Y2Dth3frVDv8XzaKo6buNcsQzDrGBfmzoxMwLEUCpdJtMUn67FMJxmnGWdmZdzZqXnT8Qx8kmCov6vRCJXJ", + "chaincode": + "0728c614bc5b01aaa66a748052faf87ea46ca800ce13cfdc60b79580c1a3aeac", + "finger_print": "d9657d5e", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "87d75164" + }, + { + "private": + "xprvA5uW4f5MeEBbXZeGSXUVR7zFEfDHgettk1eEzSQdyDiRbNYDR4gfFc9BxHwbRt5K4gepzakB7YUcAzYzoNCoMY4vNMaiDbXHm9qTnZL6CP3", + "public": + "xpub6JtrUAcFUbjtk3ijYZ1VnFvynh3n67ck7EZqnppFXZFQUAsMxbzuoQTfoVU4KMHy2s9Qk5ukfYC9vcoBNquETcwmErk74dUXHEtFocXE8v2", + "chaincode": + "9de89dc44a924d73ae2dffaa568301d6a8a9b0d88969bdc2d48de212f6e55e21", + "finger_print": "794ee42d", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "d9657d5e" + }, + { + "private": + "xprvA75g3Ri5qi7SEgaF3aSZfFN1RF1wWDBkR88zauqHW4kcfaY78a6RKsnM9RJPF5fgRqhM6DFCJ7pKkCbfdyqf7FBMXNDp8PbtvPsGJFEsRKU", + "public": + "xpub6L52SwEyg5fjTAei9bya2PJjyGrRufubnM4bPJEu4QHbYNsFg7Qfsg6pzccDaqqSCYkmjYebCkZ5YktxxsDxknvdt2HfjCWZMm65PvWgzJB", + "chaincode": + "61e3fe100a20d5613b939510a023bee7593a86c4cae39fd6fda1c7f3d4bd141c", + "finger_print": "e2ba7263", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "794ee42d" + }, + { + "private": + "xprvA9jkX8d5dtJuDnMsmLJicDXK5UfVfTzm6tNmcbFEZU9jxJesdf6ADwPFBuUTRrqxQZK6QTwVgUWg9zcqJA9sHUaCveUojRaAFKuAvYXEjZs", + "public": + "xpub6Nj6ve9yUFsCSGSLsMqiyMU3dWVz4vicU7JNQyer7ogiq6z2BCQQmjhj359UAJ848udH8LywMb37snJvMAYLA1sxtXZb7PHKfgQVtpY4m7g", + "chaincode": + "88d4bbede40dfc9e292671d71182a9bfbf95f8101305d2223bf570b41e64fbf5", + "finger_print": "871d20de", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "e2ba7263" + }, + { + "private": + "xprvAAwq7k9FNcAkR4yMQ56us4sAKjm1SNKyd9kb1HZdrj19wUfHJ6tHMuNgdGTPeSqwtAzS75hehssZocJp2ELfJjF7MgvNMJ7GyZrSEcQkeL7", + "public": + "xpub6PwBXFg9Cyj3dZ3pW6dvECotsmbVqq3pzNgBofyFR4Y8pGzRqeCXuhhAUTeJ7tZMAK8j8VNFArirGPBxw5hxc6iiFwsM5hfp7XGaRMAnj7p", + "chaincode": + "850a496bad45addd54d75ee981f31a02929cc2a3f222013e704fb44ab2303d59", + "finger_print": "45d51753", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "871d20de" + }, + { + "private": + "xprvACM8pvUj2naFZFysVMj8gvCTXb53v7rbcqvAy7QXxyLhWtUVEcQv6ymmxUBiDuFQ8H31MwKadMSMC9xLET3vKWJqEH6BDKymBUkxKxpwmyA", + "public": + "xpub6RLVES1csA8Ymk4LbPG9449C5cuYKaaSz4qmmVp9XJsgPgodn9jAen6FofTxmwkMEd82cXtQi9fkE6jMRQnRwCbdQqiLSJfLHucssMDVx4m", + "chaincode": + "8ebb424a49b29587a7f197609104dea7c20ee6270c45d64b655601e9b6ba28bf", + "finger_print": "80f79b5d", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "45d51753" + } + ] + }, + { + "seed": "45cc66b7b48f7a07f9f724b9455cb8a64e867e047f3cd58551895336c21170bb", + "private": + "xprv9s21ZrQH143K3KJBHJ3eaxqboAtiFtEqgMS899LEYv1MhK6BPX1hzhVm9Aotnud9z67Z4KPbGMvv2eZR118fWVMhb1YfWHMfaUtRVYSrAsa", + "public": + "xpub661MyMwAqRbcFoNePKaex6nLMCjCfLxh3aMiwXjr7FYLa7RKw4KxYVpEzMZcCpRimcAf8s4sR4W9yq9cqCaUzU6XhuWdBioQ7TXRi1DLRqm", + "chaincode": + "7e504b00a90beb45bfabfb3bc5fd8765ab64b823457aba9dfb6cb8d190fb95cb", + "finger_print": "51812c38", + "child": [ + { + "private": + "xprv9uVti413dE6qX56k8Uy1YAfqb5hBWEfGj5JuCxLLfiq7SG4wd5UqNpJ9bo1NNeQSdJ78YpjwPHKf2m9vUoVHmMfbC2ZEZ3fycwVttF8kV8a", + "public": + "xpub68VF7ZXwTbf8jZBDEWW1uJca97XfuhP86JEW1LjxE4N6K4Q6Aco5vccdSyKeadyZT5BkTR4jFZ5y5PV1ZoyNzeDEuEGQZXby7Q99WFtRnYu", + "chaincode": + "4e761b63b41e96d8272ab569db4bbd1dca012b281035f52442cbbbba37bdeafd", + "finger_print": "20d7f575", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "51812c38" + }, + { + "private": + "xprv9w2HNhBfpMYe4LLvEKN6vnzpk9xXQZH9Kp6xVQZEFKvMQa8ufySGBP13F3CbkU3k2xCauw8We91JS3totdSZUjbhUUFpC6DYn8sfQhsNKUG", + "public": + "xpub6A1dnCiZej6wGpRPLLu7HvwZJBo1p1zzh32ZHnxqofTLHNU4DWkWjBKX6FS9VNcWwEHm6MNMCDuSeMntoRvu6Q8m5qQwYyhz1BcyduRGGae", + "chaincode": + "49df99af76f98fa315efb132519234f2f3d073d89597b8d6b25fec147e4749f5", + "finger_print": "1b7a6be1", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "20d7f575" + }, + { + "private": + "xprv9xs8ZwVrTPQHsZ1Q3g331rzqnt2kBCXWXneYtYnu3zqvjs5VC6P4K7xLtUkuUrThhjJn4SwVNhCGrYbv2y4MDPUirpB9xYdQNgVGabw99Qt", + "public": + "xpub6BrUyT2kHkxb635s9ha3NzwaLusEafFMu1a9gwCWcLNucfQdjdhJrvGpjfqQhZwhQpDBkgrvy6GrnKajgXwRagcKxBPY169JJpg3XgSqZZY", + "chaincode": + "226529867f38c2103c63a633d92ea85dd0f409b19696c1508a7483c6ebeaccbc", + "finger_print": "a6aa7e46", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "1b7a6be1" + }, + { + "private": + "xprvA1mbz7J8m5iBnhhth8qHXMFnyDDiWuSd98mBA1EFr5tEpY4Br9AuX1cKz3jCW3CGBVULG5mRtwEPbGhG8VA2C6PPdoGu8Cxt7omhdsDirkG", + "public": + "xpub6EkxPcq2bTGV1BnMoANHtVCXXF4CvNAUWMgmxPdsQRRDhLPLPgVA4ovoqEg4fPKn2r8Z2vUnXE1BEGsyv5Nf7e8Z77Vihc4vEhjQ4TH5gw3", + "chaincode": + "7b0602130d7064c1697c331a1e8ca4f09663328e686018c9135dd00d6351e0c0", + "finger_print": "d06b0035", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "a6aa7e46" + }, + { + "private": + "xprvA3xYCmYMZg1CXRvLYavn4Y8hTmtD8swUNC9pz6dXyWZeh1V5fvbxLxTp1FVXAWL7pd5SqHz8UNLwyJ7xzuarwFK4ynVQPWakc7UNbodugAS", + "public": + "xpub6GwtcH5FQ3ZVjuzoecTnRg5S1oihYLfKjR5RnV39Xr6dZopEDTvCtknHrShzUHg1BRZyUKukgKFG6Z9eNA6v98X1RbJz3ifvJYRQWk9Ppr6", + "chaincode": + "7b07a04cfb0618fd65585b0777934eb4644bba8ce99a0ab4598dbbe0ee7a91f2", + "finger_print": "488ac552", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "d06b0035" + }, + { + "private": + "xprvA4qkPmVGLeddV9thoHsfwk83kof1qwkmCK9d5CCkd1KQHA18nyQ7oWTD6X7Drej2bmQe3o4BgVEq3kjAPt7apoQAwN4DQ63fZoDZwyCBXos", + "public": + "xpub6Hq6oH2AB2BvhdyAuKQgJt4nJqVWFQUcZY5DsacNBLrP9xLHLWiNMJmgwhqucn9i3uMopGXPRkQgtWBYXobnVHF2MbGhW5KX6Vv4MvPNQND", + "chaincode": + "0f69414b13b93e4580a96b7dfb59828a32654f3cd39ef49e08fce79a0ec05d72", + "finger_print": "f19a088d", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "488ac552" + }, + { + "private": + "xprvA7xxRPv6euTcYMz9A7uav8LVJcd7RFr3So5CCVrDxztBmkKkMW9AGn14fepxDEzbDksDEiP4VKY4m2rHLojHRMgeJ1KoAuoaSqJfVq2eyT2", + "public": + "xpub6LxJpuSzVH1ukr4cG9SbHGHDreTbpiZtp1znztFqXLRAeYetu3TQpaKYWs1WwoAffM3MmAj5S8ufY76xYQEiEr8VtD2j4jH9k4HqUxAXK9L", + "chaincode": + "901d1452f06427bc163ce0203a31352aafcef7480f1191a798030599e716415d", + "finger_print": "8fa38b45", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "f19a088d" + }, + { + "private": + "xprvA98L3pfp6TLNWErtF55VmobafPraJ1xF9doKhC68DCu5EfU8DFjfBZtrYkifX2NMFLvBX6bZwuHT3zBLSFxXNSHbcmhFRQCZzWyoHXDRcYA", + "public": + "xpub6N7gTLChvptfiiwMM6cW8wYKDRh4hUg6WrivVaVjmYS47ToGko3ujNDLPwjhL3jYuLxgmRmjenjRq3mUfzTM5g6i2wZeBhoARs8KAuaipg4", + "chaincode": + "8f53b7b041f1f212b4d723a507c3a1b6b81557ba50b923ba38f246135595bbbb", + "finger_print": "531cc4b6", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "8fa38b45" + }, + { + "private": + "xprvAAZfL5qbwYvWGvB5zUjj93unvfFfuWCwSUTProEpomrWFtQgaE7ricPEkqJtv6VG3KcPjF9opwymLW5q4kcYWPiawW9Ua2BYn5epZx7YapK", + "public": + "xpub6PZ1jbNVmvUoVQFZ6WGjWBrXUh6AJxvnohNzfBeSN7PV8gjq7mS7GQhic34jYKEiGVC9LQmGSEVjtUX5JAoNjr1ia42amXZdeP5NCcaG4Pa", + "chaincode": + "bb8adb680c694a481c6fc197d38be7361c8ba566253ef194c4e484f5538d9614", + "finger_print": "b7bb52fd", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "531cc4b6" + }, + { + "private": + "xprvADBh6x39SDgGD8MM8yFHga2E98f8Duvs5bDQFPM2H3Qzq6yF4exyiWiCYhyQBQemzREkZT8J7cPKKUqgBmYnTYVjT6xc9QjLrx8hY2cF2c1", + "public": + "xpub6SB3WTa3GbEZRcRpEznJ3hxxhAVcdNeiSp913mkdqNwyhuJPcCHEGK2gPsnkNAkgrSyAG6i2Cpak9XcHA6PHynmWMm8xZCLr8Yrfw7CQp4Y", + "chaincode": + "294016a3c7d6522eb8ff59bc1129e121cf57542a6ae2b9d7a1d49e73a77e5bf7", + "finger_print": "a915dbb1", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "b7bb52fd" + } + ] + }, + { + "seed": "f495e30c85816a71783d64ea98f692b789fe64ecc06ebc8c8e122888e583ce76", + "private": + "xprv9s21ZrQH143K3dEwaYzpzrL6AD3KgqEuyJjnWjwsPehrZSUV7uFGeMnUpSvM1MWuDy1dRxH98KKijrt2QTQbM4P3iyMVgWnQ5HVhF9Zy339", + "public": + "xpub661MyMwAqRbcG7KQgaXqMzGpiEsp6HxmLXfPK8MUwzEqSEodfSZXCA6xfeVUgAcnhuwsoemEgDtWHn8hSPaJNgjJU5eHZQAhciJSa9mrDAz", + "chaincode": + "9d6378838e2f688363d28c3f0f29e44112649e47428ef205f5a3302a95e17d63", + "finger_print": "ef438be4", + "child": [ + { + "private": + "xprv9vf9TyHykNwAV1ETgH5oLgmaxPbX1tJLLDLdchED8b6vrfZSZo2oepKhCMkuPZdp73krJY6FJ1gXJqAzFe6HmQBxuNFELZAH8X367jDv68p", + "public": + "xpub69eVsUpsakVThVJvnJcohpiKWRS1RM2BhSGER5dpgvdujTtb7LM4CceB3YZXL6TfsrYV5syALKkMo88f6ML4kWGW5fCVgrQxZnWCxDMHvog", + "chaincode": + "0ccb5ff30657ff9208e5a3140912faf48a5865a2ccd8fe384100156090367b2f", + "finger_print": "bc8cfb6c", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "ef438be4" + }, + { + "private": + "xprv9xAfPc8ev6i9TzdRcZBNg9po1cyDJBYQPLK84fujgy1rvzJ7gCDQ3T7zExYX5wvQE7fmXsm2fYqa3xfERYqNv8gY8AGTJbANndpf4xT4pYn", + "public": + "xpub6BA1o7fYkUGSgUhtiaiP3HmXZeohheGFkZEis4KMFJYqondGDjXebFSU6ARCotBofb7cfXB9Fm8hiMieBXnTdR6mfjd2Zn4anujTn68xJT9", + "chaincode": + "c32a2615c30b38ba6590d6e01fd910aa03c9bb9297690a37d8cb006f78a0c83b", + "finger_print": "12fd230f", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "bc8cfb6c" + }, + { + "private": + "xprv9xoWfEK735UyMBApKzB9FRQ5hQgJLvpiUphCHTpE9xEphyA4qUxTERAkpFK11aV5BcTjcW4jywjaeF66TGwfGj5BW6KwJw7Nm6VC1aCHCPs", + "public": + "xpub6Bns4jqzsT3GZfFHS1i9cZLpFSWnkPYZr3co5rDqiHmoamVDP2GhnDVEfRqGV4pUj6U6XJaqEgXwrhtGmUiQ8Ni2WKrhmp6fYDZkmadeaAU", + "chaincode": + "d526aaf791840e42760547d6829efdf97e0809c6a691f8413e8a5e045f2e4990", + "finger_print": "9f78200b", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "12fd230f" + }, + { + "private": + "xprvA1iY3BsbpRriG8CERxVHqURZtR1mPQTokEFW7m5m8z7HmBL7dGaaGyr6nDYXuJCchFDyNwXCiovgQYoRDM271QLu9M8KHu67meozghYiaXw", + "public": + "xpub6EhtShQVeoR1UcGhXz2JCcNJSSrFnsBf7TB6v9VNhKeGdyfGAotppnAadQa98q6akrxzKLBFjkcxzU5XyQwSowwT5J6y9SibRzpyiDtLa78", + "chaincode": + "1e1e8a1662df070ea1af70fb15261c7ff8220922066706c223f4d346132695f7", + "finger_print": "0a61ca84", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "9f78200b" + }, + { + "private": + "xprvA2W7ZgkXHPZ8hgBMohcVYmjPcpYXP3Y54WUbg2iqzMuPoyJc7mdoC7jZJTwbH9xhmhYdrTy1WmHCqpsrkDKZRhMzyhgnvh7o32gJV3M2t5z", + "public": + "xpub6FVTyCHR7m7RvAFpuj9Vuug8ArP1nWFvRjQCUR8TYhSNgmdkfJx3jv439g2q67amL8gocDdHTun2jGQERX4jXXMbeFzFQ9xGKLEbwFofhXD", + "chaincode": + "cd5987bcb2e5fc299aaaeb344f6d2bbf2b9895de0eb173293b4b75f57f4d6502", + "finger_print": "df306ba3", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "0a61ca84" + }, + { + "private": + "xprvA5wyJ1qSSXZRXKkgTtXVCTt3ZLQwTy67ncVkXo4G7YP27YF4yHMFHq13tGNsB4dWgXByYD23PH85MURnxJFF3Tws3UibuZSU95QNG3wPVwu", + "public": + "xpub6JwKhXNLGu7ijoq9Zv4VZbpn7NFRsRoy9qRMLBTsfsuzzLaDWpfVqdKXjSRKbGQ7rxLy5h66XKVnqKgZrXeDScZgfkTYg54bpQHi4nS9LG6", + "chaincode": + "fea2a2fa1a5aad397dbf8638b479ac27b4d85c79cdb44943f2c475d99db61d90", + "finger_print": "7621a91d", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "df306ba3" + }, + { + "private": + "xprvA74KVigEyf8jYxmqq38EbdVphTnyVhomVLp6cUU3a4gFqR6VNa8ewRqQWvcefBEkhpZPGnVeUQzkb3oaYt2ZxSjA5sjBNDwqCpE6hzRoM1i", + "public": + "xpub6L3fuED8p2h2mSrJw4fExmSZFVdTuAXcrZjhQrsf8QDEiDRdv7SuVE9tN62KCbizFYsMqouKCZYDtqEUnnm51jLWWuYjq3NuoovFK7iYM2c", + "chaincode": + "758784f9ee6bb5357f4d01d91f62fdf543d12f57d63be225ca98ec18bf34fea6", + "finger_print": "fa55071f", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "7621a91d" + }, + { + "private": + "xprvA9up9b8ApnRLyrq18StCrokvFgwHNAtsXLZujuTHWro2j5wXTz4wUrJaydDD7MNnzUQyvpmHkatZrb8gzHQumEcXmuEHo9PZRkNMTc2ggEu", + "public": + "xpub6NuAZ6f4f9yeCLuUEURDDwheoimmmdcitZVWYHru5CL1btGg1XPC2ed4povYNivYjAPnfDCpzhN1D65XepVQHEVGbVemLchTpvE86Suqzfh", + "chaincode": + "1f21336135ee24e3122b1808d4f38578a46a929b26b5f9795c54400f030f2946", + "finger_print": "e616066f", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "fa55071f" + }, + { + "private": + "xprvABeKQGDCRKhuMnb5muQFNafKJF2C7igec7HgPbHbtn9Rg8VNZCdJX1LWXrTWNtPre1WEQqhY3RBTy1aHSemZPCcwj8ZZi3StV5eho6kCryH", + "public": + "xpub6Qdfomk6FhGCaGfYsvwFjic3rGrgXBQVyLDHByhDT7gQYvpX6jwZ4oezP2KU7Cz9KGCdUvD9ZsUv3pqfYKVpaDTPjR36m6TrjxpjzMMA5Wt", + "chaincode": + "462a155a40058b50d5c4fd8cf5280a49db1a3e07fa49a2ab8b9060aefea2f936", + "finger_print": "5656537f", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "e616066f" + }, + { + "private": + "xprvACUAvddajqwGhVYY8YvKPPAp9yXzpjEnskGAwvoEJDPsJGMY72HLjAwc4wstiHjqPo83uZMgQJYy62M54ERtdiFbxdkNWYB6o2hGRaebaVf", + "public": + "xpub6RTXL9AUaDVZuyd1EaTKkX7Yi1NVEBxeEyBmkKCqrYvrB4ggeZbbGyG5vAXutF5iAUx9oa31BE6zL95kUfkuz5bBdtz5eUrqzrpJkKvnKUE", + "chaincode": + "5d545a370f2d07dd2ccb220c22cec17c1edbcd88e3e514ae499c8f4582fc04fe", + "finger_print": "9d82a5f3", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "5656537f" + } + ] + }, + { + "seed": "a6809ad85d93edea68eff8be0eeaab3ae02a7176927e31ee78db7ad6885dc9ea", + "private": + "xprv9s21ZrQH143K43pjkP1oQ9EEFu8b8fESYMn2Dcqwus3mEwzMvT36K9uBZso2ud8jKJdWYKq2vyWMcUppvhMC87sjixMTPHdDGp2aJBu8MUv", + "public": + "xpub661MyMwAqRbcGXuCrQYomHAxovy5Y7xHuahd21FZUCak7kKWTzMLrxDfR598UoDoJ4Sjg5A1xPC2A2impLozi3JY3g4MheVsmWDWTRQcFUb", + "chaincode": + "c7f5ae033436370a783865c752b0401289c3ff4e472ffea682272e62b8e289e8", + "finger_print": "c96e8403", + "child": [ + { + "private": + "xprv9vP22ZSNU3mn6j2Ym1YaaqxdtrdKFzTh1JNfyzw41wGqrzLatXjJJbHc1T3HWdKhi7V9188xVqqV3mz5KAczQHsN3qaMmnB9C7dYaF7Yt5W", + "public": + "xpub69NNS4yGJRL5KD71s35awyuNStTofTBYNXJGnPLfaGopjnfjS53YrPc5reHViGgtF8FLcvsA2PGzw5jg3eEBbLbo9GU9n2h2764BgoYJaGp", + "chaincode": + "1d5ee90daf35e1e73be8b5a93cbc5a34fcb5e48cd283ead8508866a4a008e35f", + "finger_print": "b9e2c54b", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "c96e8403" + }, + { + "private": + "xprv9x9XVsFnzYjQkzf215aRfAJEJDUPCgjk43VcGVKTCSkNxKHfBJLeSqoFEroyBEgQMWnF1wZMDkEDVhfXyBn6eZogyLiFXrrTYn1shbBe67H", + "public": + "xpub6B8suNngpvHhyUjV777S2JExrFJsc9TbRGRD4sj4knHMq7coiqetze7j63CCau57oVNkBkNfcE1XrywW8NoHga9M1r47SSmrLgtGVYUoVVg", + "chaincode": + "d1ae21f8695c14047e27135f028bcdb86409650b189f11260d42794639631882", + "finger_print": "cd185d7f", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "b9e2c54b" + }, + { + "private": + "xprv9zArKx4V6JSoLLp4xp5jzharzocxcaXudXfyhJy7WUpSPuapXr2KqdA5LxacNNtnndXQ7qVtrtvQEQGQnTt6g6DR9FugBGjN16WmAjaFhVV", + "public": + "xpub6DACjTbNvg16YptY4qckMqXbYqTT23FkzkbaVhNj4pMRGhuy5PLaPRUZC8JpwZLGGLMA5SzftMm8omufsUnvDVEEtemo2Jc8rrz3qyw9hbV", + "chaincode": + "8dbece8d45c09617db23cd6665997984fe8b14f1ecad8d81d52d572f58d04e6d", + "finger_print": "7dd72268", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "cd185d7f" + }, + { + "private": + "xprvA1UCXjngZJX7evJjV63Fjcv368ejxmUfS5xJw5S8DSsgytSp9GbF6o2niuLNM3c4Xp9rtKXyi77SzFnBhWVdy7CUYNhSgxuLiPNKZTShB5N", + "public": + "xpub6ETYwFKaPg5QsQPCb7aG6krmeAVENECWoJsujTqjmnQfrgmxgouVebMGa732NfWp4q5FSGx7z2ayUgCDjauTxEYQheGdfAJWsGxeQcBBHWT", + "chaincode": + "a524c538905236c8a6cfcbf6dc1c4b116870297da74360f3a87e5ef8ae9aebad", + "finger_print": "2e9d7099", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "7dd72268" + }, + { + "private": + "xprvA2mZTkAE1sAU3EQh33A1NH1KtmDQPNoCbG7bJQ4d9tRLcFpXMzC7Qbeq57kdN5CsSeNhxJQBnBNKZqF3JTmSE4Z4ER98EiJkXYcGREBRztt", + "public": + "xpub6FkusFh7rEimFiVA94h1jQx4So3tnqX3xV3C6nUEiDxKV49fuXWMxPyJvHa42ajGzhFPedFbnnu7gCyEYPAuniKJkUvKaEW543H64MgurYW", + "chaincode": + "aff48d3e046cc8f0984c1b081961578de6cff41defb1d51e1ba0a489691e58cb", + "finger_print": "31f5b00d", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "2e9d7099" + }, + { + "private": + "xprvA4g82DdquaQ4xqAUtw2xXJ2MFv4wLYgaL1cL6ToYGQL8BRobtAG83f43DHdEADugVcUZogE3ubm3atsBdu33snn1stWVaDZmViWMKfjLs6K", + "public": + "xpub6HfURjAjjwxNBKEwzxZxtRy5owuRk1QRhEXvtrD9pjs74E8kRhaNbTNX4UZ8MxCbd886QSVxW1jjadb6SZBpsof81iL8hUqCE4H3XyNrfNv", + "chaincode": + "5a4c7bd84d453d1f30aa877efbf770dd2942c58320900b70456c612c4600dc29", + "finger_print": "95fe12d6", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "31f5b00d" + }, + { + "private": + "xprvA7HuHqMQF9i8tEYKC15YJyycpWweRUzqWgu7e8sBnDSxdCWzPkr1HfRuG6eQeQYLHEzBWBVBEKWjLryfioJSNeGNP6ig7RysRcGimFHKDw3", + "public": + "xpub6LHFhLtJ5XGS6icnJ2cYg7vMNYn8pwigsupiSXGoLYywVzr8wJAFqTkP7HymxoBqQbgbx1SceFb3sC6Rjz4CU4DKURWxjy3VqYECSrEsGez", + "chaincode": + "c1e6f200f80085e0ed24f2a7e4d521d3ec55a52cfbd0c1c921e0ceaa32d85d49", + "finger_print": "581f2d09", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "95fe12d6" + }, + { + "private": + "xprvA8ifLL2yaC6aEZUULbUS1WQ3xGXDGJcpYAdruXxKPuE1JTrqsdja71n7qt1a7THTMEkCrsCfK6PMMweMtAa5bQW244f1PCi7sKL5zK9sw6k", + "public": + "xpub6Mi1jqZsQZesT3YwSd1SNeLnWJMhfmLfuPZThvMvxEkzBGBzRB3pep6bh4ziXihNPLJ1XBxgSKsSboBjj154D8dQ8hwxfo1qYDoyqsgQBkk", + "chaincode": + "8ff9c5f996ea5fc3645c4a90a3d5b40feb1ef4fa64906c6e66d6e9cb08492db3", + "finger_print": "8529f6cb", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "581f2d09" + }, + { + "private": + "xprvAAvzuS3sEEZbWdgECugaBSjsYLEpsDBY2u6PV4664Js3CufSWdL83Gg5pKxyJti31aKiAHMcXErpo5f6NVFq6zK46AWxNMsj5ziNxjRkynn", + "public": + "xpub6PvMJwam4c7tj7khJwDaYagc6N5KGfuPQ81zHSVhceQ25hzb4AeNb4zZfXrD8n93E8F5H5sEdg5VKvEEed29YaApKjU6vsfCHBL2tK3FA4A", + "chaincode": + "098757228453114f92cca97fae06fed81e3ade66ac58ac6d64fdd7a16095bcfa", + "finger_print": "cd7c63e9", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "8529f6cb" + }, + { + "private": + "xprvADLxznM3FQ3aiAvofyxtbpFhppZPppAYYhG8zANzxptpKXebfiUrvuBoV9u3LuJ6cLfzZeEfn7rd6aSiRiK8ATHyqPtZ8dCrdbGfTfK3fbd", + "public": + "xpub6SLKQHsw5mbsvf1Gn1VtxxCSNrPtEGtPuvBjnYncXARoCKykDFo7UhWHLM9uKayznUFR2HeEfwDX3DM2sfbqDjJz8u6S9CzLEwjkt3HjwZU", + "chaincode": + "b4bceecdbb38f16b408e148cc93ee1b5fb7d3f440d7b3f3d04255f93dc908da9", + "finger_print": "f21f1d2e", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "cd7c63e9" + } + ] + }, + { + "seed": "abed6fe622cab2503ae2c929ff138f4c91c86f19c3cbf80d40e2b9b81f3ad767", + "private": + "xprv9s21ZrQH143K2JbbNiaXk48vQUEgzTxLANMQ9ZDufQUy7G2fBwYk9TH22qa35VqRxVAgEAQWQNpcH3CPb1W7YueaMMg5SFTKUaN2gTa1ruT", + "public": + "xpub661MyMwAqRbcEng4Uk7Y7C5exW5BPvgBXbGzwwdXDk1wz4MojUrzhFbVt3RzwdfofKxqjuBThE6V58RxxENYuBjqsNgqj1eqHMhNnV7zWmG", + "chaincode": + "18a905f9dda44a917e9cb4629c29ac682f4299fc517a14bda1f13aeacf6ed288", + "finger_print": "07ac9286", + "child": [ + { + "private": + "xprv9txRB9NWTVm2yiYcsbF4sn4oE698nythFaVHbTnDUa5qWWKEokzrcZ6vo2nz3Dd2V7ZjCuaEX25zZHCdWs6zRFZJxQ9DgRf4Eex7r9A3QvP", + "public": + "xpub67wmaeuQHsKLCCd5ycn5Ev1Xn7ydCScYcoQtPrBq2ucpPJePMJK7AMRQeEHYqan547yV9rWt99ozW3AwFp2T8Zku2CDWLCp5FLcLpxTZLH7", + "chaincode": + "95cc704bdae823cba8fa47b71e2bf1828b59cc68c541e0df2d15f2307f229e44", + "finger_print": "35b55d5f", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "07ac9286" + }, + { + "private": + "xprv9wBBHBEa5h4RF51wxb7vmNPLvfb67eSin9LCVKrYwtaFuLsyQhM8hPbAVQB1ndVWPkLhfJHSDDtKEhHa4w8fUphJFnmzGCiFZb4dXq4kSTD", + "public": + "xpub6AAXggmTv4ciTZ6R4cew8WL5UhRaX7Aa9NFoHiGAWE7En9D7xEfPFBueLZpR5xUBQCaKyMsZy7HamB13WJHqB8Qnb6k3nCNh8KFLLA4gz6F", + "chaincode": + "61e32ec7b68169a059ea3c54c5115105b2bc50922834caca6f336fd1c5349d0a", + "finger_print": "358c9079", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "35b55d5f" + }, + { + "private": + "xprv9y4FCQ5ysjtKbyuKuAyLYNYuGAwRrCBmTBgAPBFNfBDGcxFohn821nwXNTCfJpshujtM1EUoxuS1AKxx1sbyxb714QNj9n1kFvbNs7tbZjX", + "public": + "xpub6C3bbucsi7ScpTyo1CWLuWVdpCmvFeucpQbmBZezDWkFVkaxFKSGZbG1De5wVWGiXUBhV4unQAhPjV4BdEni13nY2DzKAbezgjuMZjJjvex", + "chaincode": + "9ed2eefcf9a417856729501bffe7a91abcd0b9e2b03ee96f0dba7990dbf04b0e", + "finger_print": "0a42e252", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "358c9079" + }, + { + "private": + "xprv9zcvim5J3PikuY9FX1bPHaeGekChiZBJpbGBdQazdqFZpLaWSr6Zn8fC1poeCnHN5KkUg3Zd7b3cTvbobHiAHjKEJjD4bx6eu6Vp5P1f81c", + "public": + "xpub6DcH8GcBsmH482Did38Peib1Cn3C81uABpBnRnzcCAnYh8uezPQpKvyfs21YS9ufNXcSFjZd2UacBoq2j8NA6rfentX7dszPi7wdF8G4ahg", + "chaincode": + "a930d52696b27391121842278ff8d1876033edaa3348d01fdd17641a18f5c4a3", + "finger_print": "2c7cfc74", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "0a42e252" + }, + { + "private": + "xprvA2kesisYrzgtS12a879bDzatfGFe3NRYMFjmBbcvTvUX7USWRQbtsGTbYSZn3yKgC3pHA6PPcAEXh1qKpJew99hCz8J6Ap2JMeuzRXqwnvV", + "public": + "xpub6Fk1HEQShNFBeV73E8gbb8XdDJ68Sq9PiUfMyz2Y2G1VzGmexwv9R4n5PfKt5BombEvGEVivLVtLwNhtgpcQjmsVsVDHUA9uw9q1kgfxPRB", + "chaincode": + "e0464b39f988bacd357b666177413f2e648b7bb09486d5f98a097624bc30dc7b", + "finger_print": "434704b9", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "2c7cfc74" + }, + { + "private": + "xprvA4oWDgFPL21fvsHuxysFGCDp2T79h9KUmFDu77Q44SjRgtjA9KKekV4eJLn9Q7cFfCm1kWa8Md4afMdKvU3CJeskdw7Uy61LPD8g8y3Su8L", + "public": + "xpub6HnrdBnHAPZy9MNP51QFdLAYaUwe6c3L8U9VuVofcnGQZh4JgrduJHP89ZPghgGpe22bMTNKHqHTu2ngz3HoYJCcg9Whf7mYEhXLwgCfPuE", + "chaincode": + "f9021ec9c204f747c6c62c2f851c75c83f396beb2bcd9388518e2a347fd578cf", + "finger_print": "73eacfa7", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "434704b9" + }, + { + "private": + "xprvA73NkEfVCDWgN3XBUndoAvvYjq2N9PojnRNxvpv2hKM2GYWJjHokti1wHfcsT2JdY4aTdnvdrHgZqgKvPiMkUG57pBKFXr572wts85CYHNx", + "public": + "xpub6L2j9kCP2b4yaXbeapAoY4sHHrrrYrXb9eJZjDKeFet19LqTGq81SWLR8s8HuK2goRoTX9Fq88HzTXobyGKjHrzE61sJ2zcDXhWGUh5CEXa", + "chaincode": + "51fe7e8703765e481d58ebfe0367f641bbf2c0722174dd038c805b3add7fff94", + "finger_print": "afabd23a", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "73eacfa7" + }, + { + "private": + "xprvA9Mz5fVNsEkZr6UUrNvrw6UTWuHqDzpu3MQoKFT4PKAS4VUP8CEtd1JXBEr1VsZMmJ13wpQH2rbLLHR231Srzphx7LGuS3PrGmLFmCtjW9g", + "public": + "xpub6NMLVB2GhcJs4aYwxQTsJERC4w8KdTYkQaLQ7drfwehQwHoXfjZ9Aod12SSHzJEBZWti7xzLBSwmHoEM39wHnocdohHnLE3xrA8eNmRQdmn", + "chaincode": + "a421f86e5f891f283092944cd71b99a66a6a7d206103708cda382288ddbd16ba", + "finger_print": "d068b229", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "afabd23a" + }, + { + "private": + "xprvABV5QzixmZ1JQ5NetzZX5C7p8NXvMqi4CHMTygNoxUgTm3Hxhc9JE2DNy1obTz2gt9fG3M5WVTQJT4NKGZBTXQfPGxjsnF6Z93EfF666SfK", + "public": + "xpub6QURpWFrbvZbcZT8126XSL4YgQNQmJRuZWH4n4nRWpDSdqd7F9TYmpXrpD5bF2GuzVCKa6w1PnZF8DeEJUDhzWNQHw3oTgXJPb2xvDeSxoW", + "chaincode": + "ccefbc47883c2c708f1229fd918174102ef5f3d6f699f77263e4b1f4d42a6d0a", + "finger_print": "6511caf1", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "d068b229" + }, + { + "private": + "xprvACaTCLWLMjafFZvp3sVXCYBzCe9c4FZo9yFBcU2fwHG4dGfz7hmHm9HxyJ8UtqrXX55ay2GY6AVDpZ154sqJxrPzU38mMmNZJY821a9hUyV", + "public": + "xpub6RZobr3EC78xU41H9u2XZg8ikfz6TiHeXCAnQrSHVco3W518fF5YJwcSpUh7A8TrrhAayUwRJE2D1VdjpbHvAfU9pHX3tHCG1pgwXbDXNeC", + "chaincode": + "415961a7d511381aa8fb2eee8e93533ffc0187cecc6623d7019e5ec99818b9f9", + "finger_print": "caa73e1a", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "6511caf1" + } + ] + }, + { + "seed": "7d96160c018d9f5fc20c1c269744be05c1d2e69fa8a571ab8cc5bb2b595ed28e", + "private": + "xprv9s21ZrQH143K2peRN85Y1edosTYd3LipNpnPZVGyWizww1hjNeTMPectgqyLC9r9CdjQxTWUTVPNdEc84GRb1kAF6mB6quDr4fyEo6Qhwss", + "public": + "xpub661MyMwAqRbcFJitU9cYNnaYRVP7SoSfk3hzMsgb54Xvop2svBmbwSwNY2Jo9pg8Nw7n77YVdAikqjMVeHcgd9TLqp8FY4H1RhjhE2bQJNY", + "chaincode": + "4cb27dffecb226ef3d7f4ecaeba5192d6dabdfdffdc8ac926285463f3c1ee4f1", + "finger_print": "7b2bd855", + "child": [ + { + "private": + "xprv9uoexc8RvpDTmuMWZMcfPAkcUtCnUL2dfa6HKuVhPjVZYMR1VexRGccVX9WKxHAG47e17pqc72hSpe8XwJdeHzCExCxYP16c5WFUgxb3hRe", + "public": + "xpub68o1N7fKmBmkzPRyfP9fkJhM2v3GsnkV2o1t8HuJx52YR9kA3CGfpQvyNMRjvP9B6U6qSBJFrK8PWPybUobNsWxGNsv5dnBw6BNSgKj6Lse", + "chaincode": + "0c0c2c7b470a999bf44f382b4fe7a0ba856ce1d08a443c80ab87b8fa61b37932", + "finger_print": "f42391bb", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "7b2bd855" + }, + { + "private": + "xprv9xaMsAQoPi4z7vYgtjvEcatrCZCduSgkXyY14z3JpXGcSyhTeDKJU1hKNPXWjuDqoa29Japtb4tzgZNLpw9M9uXqJXQCZJ7nQqv5fpNLKky", + "public": + "xpub6BZiGfwhE5dHLQd9zmTEyiqakb38JuQbuCTbsNSvNrobKn2cBkdZ1p1oDbtS9KL8jdrZLtC8qwR4fNRQRfYHm7stGBrBY1PWhmNu8xF7YLU", + "chaincode": + "26a04046248278591a52357d2d980d18e713ec155fa8f8f46859bd543567aad8", + "finger_print": "e27fc26a", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "f42391bb" + }, + { + "private": + "xprv9zKyZScDGW65w2YpfhxpnjjBwb1cVod3oJikMf4c7UKP35JwPtMZSEvvLXJN1f7QBdFB1RMpFNQAy1pz53cXQyq7P5wUDotdz4MTGeqQCjp", + "public": + "xpub6DKKxx976seP9WdHmjVq9sfvVcr6uGLuAXeMA3UDforMuse5wRfoz3FQBi14UeueJybUM89yLH8o1kYJB33m8uJsSbCf275onADzMpuursQ", + "chaincode": + "9587a7bd456f52029136feb2af2ddc3e5a77633c2ec8fcca79a97312b3036555", + "finger_print": "e46ea5d1", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "e27fc26a" + }, + { + "private": + "xprvA2DwDarsdkRyhmJnK9qJimzE22XYiDfJvEM9nJk9fgsrxqsVydwPwRUDCM1iE4ThgHrL69ryV1Z7o3LvekNhPdQc8j5f5Mtek1MjxrQwY8E", + "public": + "xpub6FDHd6PmU7zGvFPFRBNK5uvxa4N37gPAHTGkah9mE2QqqeCeXBFeVDnh3Xt59n2namUN4ndNndYfjd6b7u1KqHWkQJmadGrKsvW9UN5idi2", + "chaincode": + "f0e0cdd53a9425ead8a49d48d43f5466006902b77a51c4213937ad90661c9a4e", + "finger_print": "78967c2f", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "e46ea5d1" + }, + { + "private": + "xprvA3K6WpHdWv2KWXzRgaYicvwsg87jFfu17QE1Nh5tQoHuxyomUhEgYVpnpxbwQdH9dHebWu8Eqyp7yVtxp3uzEJ84BzkFbxfXsyXgYjCcMof", + "public": + "xpub6GJSvKpXMHacj24tnc5iz4tcE9xDf8crUd9cB5VVy8ptqn8v2EYw6J9GgA87U1BhXrYQhEZemk4GTTQ4RyiWFk8bC2SnTmavTvSr2DRLVpb", + "chaincode": + "57371efbe802216a94c9f7f9404dd7a52bb4794e7eeaf9ce28619dd8c0653539", + "finger_print": "6700c12b", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "78967c2f" + }, + { + "private": + "xprvA54jZy4cLjgfu3p3TkFaRzgGARVTUvRtUPdF3kwmxnFb1RKeQiAxz2u3rrZsaWaeup1Lj3K5j8o2WucqVQ2ABnHUDKSooBT2sp2RvjnEHwu", + "public": + "xpub6J45yUbWB7Ey7XtWZmnao8cziTKwtP9jqcYqr9MPX7nZtDenxFVDXqDXi43Lftq33NgWQTsVSqfaycfChdD2bdwFTa6HjPfqLRQ4EQqUky8", + "chaincode": + "6c3266368a1284bc9c9dce36e1a6242904da76051a0b633596abb8e8d63b2582", + "finger_print": "1018d8bf", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "6700c12b" + }, + { + "private": + "xprvA6JpbGokvMbh81FNj4vA5uBR1nfPvVSB7iY3onBM1BHjJ3Toqc3fzXxWftgAihWvbdFnwPqyde2VNSFddx8rb84WkppH8xtXh36Zv7dLyxG", + "public": + "xpub6KJAznLekj9zLVKqq6TAT389ZpVtKxA2UwTecAaxZWpiAqnxP9MvYLGzX62yTEys8JgJ6CdHBecvkVfv8iYbfM5HQ7Tfwo7f9okczoSjMo7", + "chaincode": + "fcc78f50744278c6928cfcba46968b0aae35cf7688f3b9822f660153d8df606e", + "finger_print": "5d9cc677", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "1018d8bf" + }, + { + "private": + "xprvA8m16UeLr5v4X7Qddz6u5rjSQrt4StANhUEAE5SnkMmWnpgvyCWq7soGkCantox8w6z3aZCwiMv2B1ZUxDHSricfwZQmEN4vz2ADucRpWPH", + "public": + "xpub6MkMVzBEgTUMjbV6k1duSzgAxtiYrLtE4h9m2TrQJhJVfd25Wjq5fg7kbQ1oovWgevLYp89s4h8ab8pdosSZ662L7X8gjHxEEq4SjurJBvD", + "chaincode": + "d2fe968ce479581934fd4c91f6e0b17acc11e8c1ad3ce412c8c76294e617665f", + "finger_print": "12df37f6", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "5d9cc677" + }, + { + "private": + "xprvAA6GvLVTFLd8mQfi3RVYsrYMvj7CTrog4a8VHZQ7kqGJyQDkM38X7xkMYcTNc2gMWnuRp9K8mM7xsRg7JLfWqcP4F6gkqKa7F8FgTvp1pDH", + "public": + "xpub6P5dKr2M5iBRytkB9T2ZEzV6UkwgsKXXRo465wojKAoHrCYttaSmfm4qPpBnRGHdY4YCrJJ2aVDQiSdwN3CE5abwVna9NXnHiZdh92qoyt7", + "chaincode": + "bc99f7f1f62a6fd31606978933912922118edd057737b94ccccfac5c52269f43", + "finger_print": "050aa360", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "12df37f6" + }, + { + "private": + "xprvABsWoqZd8ewybmXP1rGFkZxwqHh2bQF448BfDbK6VcKbkmJ5cDJKPykNXjzU7CLg3HSUJjfKPsrSrCKCKu1JisgmjK5kjoJiijj5hUtp4CE", + "public": + "xpub6QrsDM6Wy2WGpFbr7soG7hugPKXWzrxuRM7G1yii3wradZdE9kcZwn4rNvzmKLFEKWjCxjUc4pBsrAiZhaeXT9iSYkCRTjdKyEhT1EbBMPy", + "chaincode": + "1bb0d596a25bfa7e2847e97df13817d33050adf96f2fdae7a66181b87f88f125", + "finger_print": "af7302af", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "050aa360" + } + ] + }, + { + "seed": "2763a10425c016db32f7faa10849004e0ac27e9faa75865cbaf29caf7c01fef0", + "private": + "xprv9s21ZrQH143K2NFqt2XKHfqjGECEbJvyHfFgEfFR3oYYH1Zk9yKHfjjyJP2bjERmzPrQ78QTCpzuKq6VyXwgA6iiXaYPHWYF9jxJ3FVsMyZ", + "public": + "xpub661MyMwAqRbcErLJz44KeonTpG2izmepetBH33f2c95X9otthWdYDY4T9ayrhnWjaGrP2pJhbfCBSGortYWEWvUSfutHnkaW65PS281UQqt", + "chaincode": + "1eff609868b4f9a09b24871bf0ecbc6d55898fda7e3f80dfbdd1e0abb5f5897d", + "finger_print": "734b919b", + "child": [ + { + "private": + "xprv9ukJDTHkqBFuFn6gxvcjPENkcktDhUQwVD1HxsHYNxg4Hh3cySsWabV44WRzJhRHnjdGHJ8RZawVVgD4gm3cXSvbhg91vSFAdXz3yE4xY3g", + "public": + "xpub68jecxpefYpCUGBA4x9jkNKVAnii6w8nrRvtmFh9wJD3AVNmWzBm8PoXuifdPEMXeiX58Feh9QbVoj7HuGBktxDD9VsQ2v92uaqGTqU9Pn2", + "chaincode": + "0db7a185431be0695ba20406f69db04b86472e98ca65fbb5d9dcd4b7389b6fff", + "finger_print": "d4f977d8", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "734b919b" + }, + { + "private": + "xprv9xM5HwyL52EHf7ek85rkKRAmaTTNpHaKdjTndmyTARoAVdCJDBWeXmxagF81vCec1XEbjfTdReMKgcFa5NwpuoUsFrfrhFJkAj512erFsAr", + "public": + "xpub6BLRhTWDuPnasbjDE7PkgZ7W8VHsDkJAzxPPSAP4imL9NRXSkipu5aH4XSoR2XsC2PbEgmV654gSF69eU4J2hgHao89QnCe34qtSwviH2Yd", + "chaincode": + "f41c87e86f7da86089d6662610f193358eae0e8ca1a45bb3bd33b5273858ccea", + "finger_print": "eedf4cd1", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "d4f977d8" + }, + { + "private": + "xprv9zRFVxkevQm452v5UKqmvapPk6qu6gT8oQKRkBCdPToHksfgUeKKBHdxy6n2JjgomqrSSqSAGGcBJ3MiDsnppsWUP74L4A8vehi5pn8T1ak", + "public": + "xpub6DQbuUHYknKMHWzYaMNnHim8J8gPW9AzAdF2YZcEwoLGdfzq2BdZj5xSpJwejv3W3s4mmRwZAvrkxXLAgKXsNaq6j3rXA33cZ3KECgxtS4v", + "chaincode": + "d7b7df123782c0f32bd9f7fb7c15ef9dc7ce8c428e79def69825de28c76d57ce", + "finger_print": "c1ce50f7", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "eedf4cd1" + }, + { + "private": + "xprvA1yB3ihjGetxXEL3gds1J47HxpNguC62jBDmu8FMhcqsk5MFhdNcjpGdurCwyZpVxcXNRrX1WxRmTBYtGnkFpDMX6dQgGv6WNyeeHi6r4qZ", + "public": + "xpub6ExXTEEd72TFjiQWnfQ1fC42WrDBJeot6Q9NhWeyFxNrcsgQFAgsHcb7m1gqAxEC5bxE92895mtUsbXiCE7PAFvSBrd7c4zVV6YWmSDZ8CP", + "chaincode": + "fe9942c7cbbe7a4f3cc0f29c554038ce119e65714de10717c6b42240e124bf93", + "finger_print": "4f6166d6", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "c1ce50f7" + }, + { + "private": + "xprvA31XczbJ2pHG462SNyohdaQaG9uLzTJJK1kofHNPaBcYh8uPsDuCorraRi5YP9Zd3diqSdYt33Zfc5tXyWNkTWZA36vmnFVJCqkngbfvWBk", + "public": + "xpub6Fzt2W8BsBqZGa6uV1LhziMJpBjqPv29gEgQTfn18X9XZwEYQmDTMfB4GvB746ptD2VoqwScFHtKW9acdxNG2KkRRz2Ay3WM22MEW42KCUt", + "chaincode": + "f8df0c225031297e65b5aeee72898ce1a6601c7c1169a1bae89f0dd87d079ba0", + "finger_print": "e7329b39", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "4f6166d6" + }, + { + "private": + "xprvA61PK8RTBvLE5ATcy5FTCcEKjmVevrR6z8DRV8Ya7hAox52zjWUoNv4EKDvBRv3LAErSc8nqHSKcJy8be9iEwiyHvVUsJd2QL4jg1iuktGP", + "public": + "xpub6JzjidxM2HtXHeY656nTZkB4HoL9LK8xMM92HWxBg2hnpsN9H3o3viNiAQJTao7w6Lmqg1jQCf27pR3qp4XJq6mNir3mk9dkPsZkZkJAYCp", + "chaincode": + "763bc83a8841810cff305905852138ba72747f2ca1804a175d344350c231fe39", + "finger_print": "ddbbe531", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "e7329b39" + }, + { + "private": + "xprvA7pVAvFnJ4sWPNACA7HF9RDGJWyu9XM4vwCDhgefDCwfe3W9B573vZVBkCH44mchdBwWoUxePoStaPxrt8usB1YMDtsuX2aC8efceZ2gNoS", + "public": + "xpub6LoqaRng8SRobrEfG8pFWZ9zrYpPYz4vJA7pW54GmYUeWqqHicRJUMofbQSk5d4B3ADdxJded9pqf4ocjBcLYHVBNPnX3tKoo6X4PN2Gc4D", + "chaincode": + "03ef3cde8bb9ca8d408a2d0b4fe06b1b1cbae3dbe8ac2f166356727da4c3d5bc", + "finger_print": "a83fd9af", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "ddbbe531" + }, + { + "private": + "xprvA9Jpa43eN59bbpBTLidfrFY7jimNnftphfDoTnaDuvhukSq25M9ngEQCfY5rxrfzjmKL8EUpbm2GXHro5ZyjqBr2dxoa8Azn3MXbTUuYwP6", + "public": + "xpub6NJAyZaYCShtpJFvSkAgDPUrHkbsC8cg4t9QGAyqUGEtdFAActU3E2igWjtPeoSJWVY3Dnt7XN6jNW8UWVCxXdtDua4T5kWAZ6DTfw6Hsdo", + "chaincode": + "1ff8c3847d1869b89bcb5c8e7f3601898eca101559f8b02578491d8c04bc1fb1", + "finger_print": "bece6f35", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "a83fd9af" + }, + { + "private": + "xprvABMaAynjzmtYe9YJegbc3WL2MryTb2EbMMZAtd1u7qaVeA4BLrVJFfy4uQqoT9LeHyoTV3vviQLTtW1MzvYKH1yJRr2ei6XHSJhuectkoiH", + "public": + "xpub6QLvaVKdq9Sqrdcmki8cQeGkutowzUxSiaUmh1RWgB7UWxPKtPoYoUHYkcSTcsfzdCeSdBPR9YowqNnpbJB32Hh3wWSHv33eHnKux12aAXt", + "chaincode": + "41b313e41eb2d7dde823bd69f0ce4f241d2d2f8bf137801ad4844cec7e615ae8", + "finger_print": "93b39a1c", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "bece6f35" + }, + { + "private": + "xprvACvLDnN2U83aZCaTiHsFzxwmLswwcsWUV1aafojZzfyaQDdqTL2dozoX3b9Nu2MpFcLYyUzYsp4Vx6GzhmJQDdJVr3rHyNJgQet99Pjd1WK", + "public": + "xpub6RugdHtvJVbsmgevpKQGN6tVtunS2LEKrEWBUC9BZ1WZH1xyzsLtMo7ztoDG9Ne7wqY6XJGhEZjzyxfZSjqWWLNzUbM1Xz8YgDD1UnExj6i", + "chaincode": + "cb71b09663f4458d7090671d5c9501b08e72981e656390cea27577738ddad14e", + "finger_print": "b4459ef5", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "93b39a1c" + } + ] + }, + { + "seed": "9676983d8a212969072fa90a55ca1761fe9c113f84ec0cc266a71687946d1aee", + "private": + "xprv9s21ZrQH143K4VTeESaxxaMEaLAtgqHcsCav6qbNxL6NRQkSZ7dKPRAeE7sjFPt4uSDJhWYAFCMwJCjZhJioKqV8Q44yBUc17zWqsyhtjav", + "public": + "xpub661MyMwAqRbcGyY7LU7yKiHy8N1P6J1UERWWuDzzWfdMJD5b6ewZwDV85KzuXcc9ANumZnruhDCLH3j6X2Cj9s4coAg4pEr4AVK3aNmxxbH", + "chaincode": + "f45afaf01d907797389fcc2c7fe3e2cb49f02bbd64d928d75950162aede3f6f8", + "finger_print": "00d151d2", + "child": [ + { + "private": + "xprv9tuVeF3mDyJQH1VRk4N9HsUQw6wkKXtYfmFDteLgM996ZFwPNGMYCjoXPFrhyVbnGUCTCAuQsFJNWta665S7vLMZ18MfYZw88LYAeNqBYTP", + "public": + "xpub67tr3kaf4LrhVVZtr5u9f1R9V8nEizcQ2zAph2kHuUg5S4GXuofnkY81ETVLfPowJk2L8XuF772pnGHfohmZ792oDNGh6LZ9THuXmQ5ijVS", + "chaincode": + "929f43680dd32b928641705f3a6c0b2ff4a702ffb20d3584da4a8d26cbc8f5ec", + "finger_print": "95cf05f7", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "00d151d2" + }, + { + "private": + "xprv9wt9TLQw7yaJApCYiadhfSNLf8YeF1vrNNf5P9iaa9y8aigi855pHuTJdo3mczg7SUEKwxRZacNic3vYxy8MdbpusbkLgDmeB6WyhLnJrcL", + "public": + "xpub6AsVrqwpxM8bPJH1pcAi2aK5DAP8eUehjbagBY8C8VW7TX1rfcQ4qhmnUzGEMgyk7cqpG79VG4iUdQbEX7i9WJbi9pMwzP9pCvCrTJbp2Ch", + "chaincode": + "7c861bdffa79586ff77f332a1958464b28c4eedc0c3fe4daa7aaa79be8501a7e", + "finger_print": "362cd479", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "95cf05f7" + }, + { + "private": + "xprv9y4WgCpu9NGArKJg8fd5J7qQR5dDbo2SFeR9AQ1ctwG2dYk9qzNc31xzRLs6Cn3xvtnFEVDg9tcWXACJUnq8MSSUGDoPJ9ttxvLifLCVGrU", + "public": + "xpub6C3s5iMnyjpU4oP9EhA5fFn8y7Ti1FkHcsLjxnRETGo1WM5JPXgrapHUGWwEV9R3sZ8hg8dA9sEqkFPHqQDCKUWgP5sxd2Ye9Up2hN9m7Fu", + "chaincode": + "54be215241b741076c81f52aa93b3d69f097c141b15206a4a1b84df5cd230569", + "finger_print": "40748fd5", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "362cd479" + }, + { + "private": + "xprvA122iv54w4roVJPuXEQ2soMCAXH5V3q1WuAhQNo5JhiW3MhVU9i4JhwVq1PgdaSuAUQkS8K7btqc54Ac19M2JxKncSGS9J57eEr4JK3j5Es", + "public": + "xpub6E1P8RbxmSR6hnUNdFw3EwHviZ7ZtWYrt86JCmCgs3FUvA2e1h2JrWFygCYH4vHKBTWrHrg7MhhdcrGvT2hEpTaAGzAszi2Tq13t7nBz42B", + "chaincode": + "e0f7ed07e1fdd3fa262f8ac394ff7e1a1ba17cad2a8ad306ec4a4cbdbce7a37f", + "finger_print": "bcd9c0ca", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "40748fd5" + }, + { + "private": + "xprvA3pCP2jtoX421B1cj5BinvuheM4j3vDYwUjfRW7cSGPGFeH7owgoUwZGdoSqqV45FhBYfcUK5aMgBU8pxPFMvtBoL1RRN5RiznHrpV5buhU", + "public": + "xpub6GoYnYGndtcKDf65q6ijA4rSCNuDTNwQJhfGDtXDzbvF8ScGMV142jskV28aUHveGqistYjKTNMcAxEc2R9MN67eSnVn3kgz6PjnUcsba1r", + "chaincode": + "b6bc0a1f7ee94694445a0ca15de12ae53a03c20b9f5c8a1e5ca41c97403a3892", + "finger_print": "204d1919", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "bcd9c0ca" + }, + { + "private": + "xprvA4YbPwGvhjh1c2zfcGkEs77Qjf8N1wfw4eAHBDE4zN6EEeEMXQebq7AAyDjxAdZnfP9LwX81pK5BfEn1jwiJa5Nq4oy9q3Enyv3aALVwboz", + "public": + "xpub6HXwoSopY7FJpX58iJHFEF49HgxrRQPnRs5sybdgYhdD7SZW4wxrNuUepPKMqUwZyu783SXB8HweNWtQhA7AWrJ9tA2pSUqREsvEF45U3bR", + "chaincode": + "367c3d659d5c31f4b06ca7dab32a2997a55fb3bec5b8f7bb04165dbe33f2f392", + "finger_print": "c8acd525", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "204d1919" + }, + { + "private": + "xprvA7fWUFxygD5QeLdxuUuXD728FYGyu5Gyu94bn56rftkUc4h7sQh7p1vLerqUJEX4S2tAwVqFv17uqzZshgB9ut2zVfkhb1KuB6GQ3AzqheW", + "public": + "xpub6LersmVsWadhrpiS1WSXaExroa7UJXzqGMzCaTWUEEHTUs2GQx1NMpEpW4qHjjE9KtL2wt3KUy6Fuh8EqyYxHw1hmjY33eNPY2xdcZj1wbB", + "chaincode": + "73cea348c1589e2e4ad070ff05963d0cdf1e152d3f85b8eb74e282ddb0697ac1", + "finger_print": "bdb3be9f", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "c8acd525" + }, + { + "private": + "xprvA9Ty1a4LiJwCDzeQGr4Mn7VqREz2P2YR2HyzekxDkLosMqk25Qv3M2TtPmZs15fc88sU9Viirwm1bcWx6DXFBwEGdBR1W3f3z4kQHqpq9aK", + "public": + "xpub6NTKR5bEYgVVSUisNsbN9FSZyGpWnVGGPWubT9MqJgLrEe5AcxEHtpnNEyUnNieQX9ZRv4twLrCwxjUQwZSMu3SunvTNxGvxeZeVJ2WMDKN", + "chaincode": + "615899b88a7d050215423e70b12b6cff3d65d2abeec91294330139744751ce60", + "finger_print": "cce788ec", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "bdb3be9f" + }, + { + "private": + "xprvABTam7SJFjcQAd3HoJ7kcVDYV9s1FZ5gJ59Eza7vxDuxpEgosXot88X3zQGFqavMf1edKS6dyc8znTA3NgKvgBcswirEKvkZWDeMwe6tWh1", + "public": + "xpub6QSwAcyC67AhP77kuKekydAH3BhVf1oXfJ4qnxXYWZSwh31xR588fvqXqbwsinRpeBAFGjZnGRHs5s25r9FnC4ctSQX7YW9E8kNYkK7r61b", + "chaincode": + "3067184e5e4111107eab453ff3fdc195c20565b984b6b35d13b8413a08ae60a4", + "finger_print": "a7bf91bd", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "cce788ec" + }, + { + "private": + "xprvAD4stzcyhY6RhfwGxcmqqd9X8VFx4YPAtqRFCVMwtAG9Y5C7kz6D5SDCbKrskmSbcHKGeiT1vSkcyyYriQvyrX6A47iKPQK4onpbTfJVUKi", + "public": + "xpub6S4EJW9sXueivA1k4eJrCm6FgX6SU172G4LqzsmZSVo8QsXGJXQTdEXgSXbbWfCVezypAEeQfeW5XxmkSRnDMBA12HPJxynz4AYNYgCBdpo", + "chaincode": + "d4768d1433db97abc0227eab286b94051d06ec979c093e493d5fdcc2bb5ccf92", + "finger_print": "9e1866bc", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "a7bf91bd" + } + ] + }, + { + "seed": "5d37dab56688819497a455f725ddf35e0398cfb1ea3b3b7565bf74b8a6b7532b", + "private": + "xprv9s21ZrQH143K3CBRXaYNzY7jfYY1H2dBHgMyYqCEHeWtLxbsBcQkWNVkWzPsY6UKpu5W2k6AmX6GJioZToWtShhKhMF2NTcny7wp23EBdbZ", + "public": + "xpub661MyMwAqRbcFgFtdc5PMg4UDaNVgVM2euHaMDbqqz3sDkw1j9j14ApENBoKeXuf8BmcNS7HEcn2r8vgQtjh1vLsextMNWnMGK1oGBMANMm", + "chaincode": + "71fd5d80571b27ba5c1336aa86cd276f228a5b44000bce4712e15435ea9dbb52", + "finger_print": "24823e34", + "child": [ + { + "private": + "xprv9uAi9AU6cfgR8cbghQvwp1qBg1vKwPMd44SXEkYWRmFmwKk88d9QHhQHzCEpp8nQmLvtM8cSDdyWegF4KGZYPcWK5xF4U2eAYUdkcBaUdvw", + "public": + "xpub68A4YfzzT3EiM6g9oSTxB9mvE3kpLr5URHN838x7z6nkp85GgATeqVimqQqjfsiVtcBbHLayScLHQ3xo6g27XwvpGWxtbzvhU5NhMVLNm4X", + "chaincode": + "422ef02aed6cf900c665fbb9dfd09b2ce4267962cf57dbe79a9d67ac5cd89e3d", + "finger_print": "1bc1fb94", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "24823e34" + }, + { + "private": + "xprv9vz7d3LuQquThRsQoxxNzDUjDE6pz3ECfRUuZ5G8YebsdLqx1GQyEM3FMNqZPEHYtEaNc1aVaHY7baQMg7ZPghESGghidxxSm6JgmzCR6nh", + "public": + "xpub69yU2YsoFDTkuuwsuzVPMMRTmFwKPVx42eQWMTfk6z8rW9B6YojDn9MjCZog2m6F7tTGB9vF2yPhCUoZ2zVqV1TDiUshJhFKuAJ3B2SEjk6", + "chaincode": + "dbd71a6dc50768e0d54fb7f28f23989bb340624926a3c77145d409649bd286ba", + "finger_print": "3e2a114b", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "1bc1fb94" + }, + { + "private": + "xprv9y7vDbdjKdVn2JtrYSAkwwxUJwYMJ4RTH6x7TuMfEqYsNFgYZkwXAbzv768ABU3B6i4jXTcqvjpedyngjeXHTewKyFXtq5PCKLyYqj6ZZgh", + "public": + "xpub6C7Gd7AdA145EnyKeThmK5uCryNqhX9JeKsiGHmGoB5rF41h7JFmiQKPxHcgmWXnBEMUHSEtg44LFqAUua5bSKGopMK6VeP1TpRFQ4MrBgC", + "chaincode": + "92265fc8561b1f3c234f033030dc1ac1b97526bff5062fbb71b2ffd812b6b202", + "finger_print": "384cbd08", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "3e2a114b" + }, + { + "private": + "xprv9zxZ4xUAvkikG1U6g9Bf1A8SZbYs1ZjqHbfvDWv16qoywci86HcVb5zQ9Lug64Ur4LKGwB4MA4TzyuEgT4vSaxVTz6upM2ck1GsisJ82dZ8", + "public": + "xpub6DwuUU14m8H3UVYZnAifNJ5B7dPMR2TgepbX1uKcfBLxpR3Gdpvk8tJszYoYA6SPTg8qUfWa55zjDLsuMBu65Cp2AtkNCsNARwyaGMzB9r2", + "chaincode": + "db572d51542e825b5ede77c93321bebf58504f4856fd98bfb4e88b81265ade51", + "finger_print": "6c67c689", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "384cbd08" + }, + { + "private": + "xprvA3DuHr6jAXLrFa8FvYdMFQ7qvFhieLRnf9GEmFfSsqgsr8ge5eNPL5QqdjCURBWVQ8ctQv5URJ9LLY1ZNRN7SSkk8tSwozsM4YjfRZVFpbi", + "public": + "xpub6GDFhMdcztu9U4Cj2aAMcY4aUHYD3o9e2NBqZe54SBDriw1ndBgdssjKUts1vBVxEK5PtDCHaHewK16BGvh99bvZRTsJ7qvUUaUGs3isvAf", + "chaincode": + "47bee46d56b038fc4841de186d8bc1d3ee3f7abc0b8578cc768760e42cadad5c", + "finger_print": "0426b458", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "6c67c689" + }, + { + "private": + "xprvA4LbMpMsSJZ9jLc6nm9jb9YN3baXaWar4k76EUMHDpweEWKEVxDTqiuc24dH7h7fazR4awBUejaYDpQcjK3U5amVfjdx5Appbm6aSSKPtNZ", + "public": + "xpub6HKwmKtmGg7SwpgZtngjxHV6bdR1yyJhRy2h2rktnAUd7JeP3VXiPXE5sFjkJY6c7gWj8e9vD8YzmdV75Jdne5VSsoSnaPJorzhqLA6pyQx", + "chaincode": + "7e3cae6066fedfd3c7c4b0654a745c28a8be262c4993cf50e46440e0ae00f66d", + "finger_print": "d0ee83ab", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "0426b458" + }, + { + "private": + "xprvA7j2d5KWgY7HKTctJjtxEtJ8T9M6ysjnRgYbbDsBaxoNAV1mQBQPxEvQk23au95euvMaepTGfAZrWTSxiHYJAboAYFhBnJdcdbbYfSZ6tDu", + "public": + "xpub6LiP2arQWufaXwhMQmRxc2Es1BBbPLTdnuUCPcGo9JLM3HLuwiieW3EtbDS854oPYAp2a48D49uyH2kyzLPgLHAngBu9LcJvUNKV5LpCjqm", + "chaincode": + "c0edb6184f0f503740bdf4c35163f36079924f3a8262cef5ff36441f8a7c75c9", + "finger_print": "23e61232", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "d0ee83ab" + }, + { + "private": + "xprvA8LQ4nTojxkunochH9y7wCxQHJaUM397sM8PgZb9BwyTuYexSv2nBCzM3yMM6uq8mfZMhG7Q311qAmw2deN29eKzmNrMvY2ARUorGXKoFVR", + "public": + "xpub6MKkUHzhaLKD1HhAPBW8JLu8qLQxkVryEa3zUwzkkHWSnLz6zTM2j1Jpu9WWyS59Yy9wtzTHigp3FymTiZmCHFxhvHbdZVkR6HVbW6tzqEP", + "chaincode": + "1b9916eae1e2f2bdf960d158e07c8f17ee375949cefca8db84f3605a3cbb52ca", + "finger_print": "00450f84", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "23e61232" + }, + { + "private": + "xprvA9xLxnuTbHrG5zX3XfWzqV8KaPvWsDWcdbizARMT6i6BwhdizR2i1m18fs7PqBfafjjXhktw5h44kCUTcePetWDtkwG96CW1AqFE5BqawjN", + "public": + "xpub6NwhNJSMRfQZJUbWdh41Cd548Rm1GgETzpeaxom4f3dApVxsXxLxZZKcX5MUm5Fk3CF1wwx3r1CBDvQd2tS84mp9dikorZR5G3eiuSgEUPs", + "chaincode": + "b5f28fd47a834ba8af2623eee42c760e5562c0ca739c0912aac6edddf3432d3c", + "finger_print": "5039fb45", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "00450f84" + }, + { + "private": + "xprvACRZqCFwaKDVKFjSVuSq741qvDqAsYPyowVSdMpMfeZVKonbRqa9wbu4FTKj3MgrDXL94dHZaVtoJsbFmbBwvypFGoVv2CFiQiV6y8uFJbL", + "public": + "xpub6RQvEhnqQgmnXjoubvyqUBxaUFffH17qBAR3RkDyDz6UCc7jyNtQVQDY6cmwe7ZqZkCbx7DrjxQhoNQh9oiXzaEGNz6XP3AHqHQyxbBv6ok", + "chaincode": + "297075d3043f624d2a12d827eb1b9c74d650892b445358e45748ae4481580ca4", + "finger_print": "a8d11d4a", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "5039fb45" + } + ] + } +]; diff --git a/example/lib/test/bip/bip32/ed25519_khalow/ed25519_khalow_test.dart b/example/lib/test/bip/bip32/ed25519_khalow/ed25519_khalow_test.dart new file mode 100644 index 0000000..2987105 --- /dev/null +++ b/example/lib/test/bip/bip32/ed25519_khalow/ed25519_khalow_test.dart @@ -0,0 +1,26 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/khalow/bip32_kholaw_ed25519.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void edKhalowTest() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + var w = Bip32KholawEd25519.fromSeed(seed); + assert(w.publicKey.toExtended == i["public"]); + assert(w.privateKey.toExtended == i["private"]); + assert(w.chainCode.toHex() == i["chaincode"]); + assert(w.fingerPrint.toHex() == i["finger_print"]); + for (final c in (i["child"] as List)) { + final index = Bip32KeyIndex(c["index"]); + w = w.childKey(index); + assert(w.publicKey.toExtended == c["public"]); + assert(w.privateKey.toExtended == c["private"]); + assert(w.chainCode.toHex() == c["chaincode"]); + assert(w.fingerPrint.toHex() == c["finger_print"]); + assert(w.parentFingerPrint.toHex() == c["parent_finger_print"]); + assert(w.depth.toInt() == c["depth"]); + } + } +} diff --git a/example/lib/test/bip/bip32/ed25519_khalow/test_vector.dart b/example/lib/test/bip/bip32/ed25519_khalow/test_vector.dart new file mode 100644 index 0000000..139af96 --- /dev/null +++ b/example/lib/test/bip/bip32/ed25519_khalow/test_vector.dart @@ -0,0 +1,1322 @@ +final List> testVector = [ + { + "seed": "8ac1f6329a891479acf0cb8110344846c945cfbc841a19f1e895ad12e3964761", + "private": + "xprv3QESAWYc9vDdZvAJvgPXCYEzreQmg8avfRK9SHe7s4TgdPqvA5Vn22R3fda84NWyjCxRW1cFWdLmzzyM1VR4LtHZBBiPopMzEgZzCsJWddpmqHJLGvzFXYP83RVYMKRAQK8YWTV8xULm5vpaojQePBi", + "public": + "xpub661MyMwAqRbcGjVEFHVdeMVrdgD7WvULeXcvvSqd8gWuYMXyJA31SvBbB7wVho1f6oUhL88GCJniZbLCH96T7GPcEKdnuWEyzBFPQmNSrzq", + "chaincode": + "dc065c2fe5a1d110247b2962138a16e513cd2e2f3ae7f396e45d812cd655f7b5", + "finger_print": "162caf98", + "child": [ + { + "private": + "xprv3QqfQDYS652mUCwC8hmdgaHrsAcTWGLEMs1YzRhehFZXjEocChzxCvgRmAateHWZuDndi5AUWq4WVuEibUMCFFY2YkmGuWahMGdhkWjm67yQMXPsrbuUhJbv5n92d27V6FTwRS1iBgS7YRZYgC8MrmC", + "public": + "xpub683x7s5TdYtk5RjrbGrDawvu5HoqZ7StKyBZpFSzrRwui3idskbLhw9ziicVy463SWQZNnCZ1wpUYPSrhBNusAf6dSB1xWfb4iCjbTxKVzm", + "chaincode": + "381e75b3aa5a747da2055734f2e958e794df971a0e0d8d1fba059855bf44ff62", + "finger_print": "2d99eeca", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "162caf98" + }, + { + "private": + "xprv3RT3qP5FMj2YyzHyQ5K3KzUHJYXUeLoruQbHpR7AMYDc83ezp7FTFRrqUZywiuwyMwnkj3z5k726KobVbjvHcJdKLacGbDJafTcgxmuc2cQMbkTHH5aaSdCLJU2CLk7daRAvGgUv5mo4EtiyMbHdp9V", + "public": + "xpub6A75E9LsqMyL2fjLJtKrxY1ANknuwSAfF3vTcbYx6EzYe67pqqu3vWL1Z72KWhKspyZLmmgoGytvvVriutCsWp97xxmSAWocu8utD8khd59", + "chaincode": + "e5134aeaeca3d5a0cbd8310a60d42d939b99b95f47356e7d8da22a57c231b8df", + "finger_print": "10a0689d", + "index": 1, + "depth": 2, + "parent_finger_print": "2d99eeca" + }, + { + "private": + "xprv3RwoNXBezqZastyffosb4bicxV1ZvL93h555DckBY2mSuLnxBDn994LDLrXqaXrUA6Q7w2nCLW2dMsJaJRf6WTosDptp3RHuSo8jPhRn5xRmiD5GhviZwYKSZTY1hEE839EuU4ipY3GeXYiKN6vdCtV", + "public": + "xpub6Bmrf4RHKTdroWnnV3JokTuJDj31JLegnJkgT7UrfTJGghMwy5KoxSh1Jsg24Ve1EsupWvMc6P4xqYYpAqQqV4yQkZy7R83ckFmewWjWYhH", + "chaincode": + "45833f3e0bb5e25e3eff42112b6895c5f09bd9a7be016f6b0fab426ab758d1f6", + "finger_print": "ad2521e1", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "10a0689d" + }, + { + "private": + "xprv3Sr3PJy4KkWRcenKRQGY7kCTuYxeVgtXkJ3f9GS3ma344uAF1bGbWh8bziwNPgbEGj2wWLfi98fUtqDtfrtwq7bsdv9EHkyf5eANhGE5vszRWKkKQEUsMwbuM7sEB6GYY4JFEcUVe8hQSEdUbPzwvgh", + "public": + "xpub6EoibHuBw8aKNnkJyQu7bYvANco2NfWSLRfbfVC61QWi1dm5VLAj8JZCd5YjgD7S3svV5QC3yYZ5RzMXRP68CfiDT176Z2PxTDG2cayDdjc", + "chaincode": + "a390ae5b1a0f3e894ff5d750f2a6072ade291e852a1407315ac198366c004d68", + "finger_print": "8f3033ca", + "index": 3, + "depth": 4, + "parent_finger_print": "ad2521e1" + }, + { + "private": + "xprv3TLfi5PEEWHXoyD1Xf7497CsaBWAaZUdFvhVUsGTa77AkUyZMVNTRPy67aPbrm2EcRcpDre1cSkjf7iBnBp4wD8xMfk5z8L4x39DA2QwzTn35KfNzL4medfumHuncjWgtfwA8Z2c4711A4CojYsrDV3", + "public": + "xpub6GU5jqNQePfXJ16fV7Y3PoV6dKbceJdTG6TgYxxCadhg1oDqxwatC2WpNdoNYFfgxneD9AphZy6i6a48B2Pv5Zs29KZmUorzewCTm8MAGkR", + "chaincode": + "e7a85fc74788e866eefe6996c9d78915849cdbdfd9d1902a1d050af2dcfc9171", + "finger_print": "1b4fa32d", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "8f3033ca" + }, + { + "private": + "xprv3TeQw5a2LB4rGXkfZqburZdJRNUFAtzYuUxhNqWqDEj2Mfgi8Q6cPbjkNbAZf73jxdAHiBwKXu6fXMkJ7vxhPb1xobcyAouMLsdVeUgv2U5aULEfbUxVYRiDno4eB8NaiZeaFQtKbAyHWnKGjF6oosb", + "public": + "xpub6HVpR8Qis46KEf7tzrD51Cp8R1C8zRDGzPyfY6F2WhtYw7ZW8SchTqffqa9NiCek9AJv6ktZhKBya7vcX1wQkKyLkHRBCcbVx24A6HE8qvE", + "chaincode": + "b2a7c198dce6eda5e588a442093a8f7d02109a76e34a601fbdafdbf34dd09252", + "finger_print": "233c5d68", + "index": 5, + "depth": 6, + "parent_finger_print": "1b4fa32d" + }, + { + "private": + "xprv3UDqW5h5GK648qjxrfuwNJbywhYVfretwYKCs7himGwhsZYaxrMPQ6BzcEznS2FXqkBgUWKgwZYrXatwDa54ZCJU8aK2TP24L7SYzXCAJ4RzPs5jgam4gqiWyAUGAjPiyEbTXi583ecQxKCfVvYuJZn", + "public": + "xpub6KSLDpMD7MuXyyFRstEuz7a6Rv8GvPP9j4uA7mN4FuwLXJjK5XHtasgXUjrsoEoAFcEyaKFdrbNn99FvGC8ckoj7WEQdNzqoZ6Xgivwf9Py", + "chaincode": + "6f09935dfb733010e2df4e5b73b59c712705c66735a41ddb8aafe9b42ebc08df", + "finger_print": "813b6646", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "233c5d68" + }, + { + "private": + "xprv3UzAHCh757VKxwSqBo1Ak6Nv3JTebQSh8Tx1VzdRBUCCvN8tDmY7fXtz2TvE6viwG5Ms1GtUXEj6XAi3LWso5KykqbEq6zytXuhR4fAqt3vAYvRCiLH4ui4v6Ya9GQfv8LrWa1LVobJ16aMzA1xBYo6", + "public": + "xpub6N1YEPw3CpxDWfUcdRb6VioZ8rhZqvNTAie3uC53Zg9rVvKTEeKYoETKdXpHeuM3DqShUUQPutTVoUkUq6vq43w4VDwpcVzy9EcWMaVmQtp", + "chaincode": + "3f7f7fe839602e3793141f3e745dcd7eb16f2c3edfe15cbdad7c1acadf736dae", + "finger_print": "5c34db96", + "index": 7, + "depth": 8, + "parent_finger_print": "813b6646" + }, + { + "private": + "xprv3VTtgXRXFatVKaCQJzuNLH9v25LEjyWsQdun8aByjWA9ZGR4MCbrgKNxpNkHPWQD2aZXZZoYBD81xhj4hXkJh9CaGsYLvkzDXbhjp5bT8ydBMWZyJtEv4aeXx89tzKt9ampSBAA8R5B4QYPN9vFvuwT", + "public": + "xpub6PctbX2NYRdWe6NjoyffDfh2w5xz58YJL7xdS2iQdRvM3DxpJ7Leqra8kt8tW8QHewVtZdV1Wmcf8V9da4bxkFKQZ1Keie9howxbYeqw2fP", + "chaincode": + "054bf43d0e1adbf7ae2f718642b0066c05205734792bd0b7028e4ea60bf8d1a1", + "finger_print": "d45518ea", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "5c34db96" + }, + { + "private": + "xprv3WHXPQM7MMcsP3fzgU7FjDwZ8CUsqtGVREnUqwwVmA9XChAZbcgcNkzNpS2fR824Fb6LHQ6BUAEcgJT6yhoqSeba7LWXe7bcnJNNQP7ke5kUw7YgvVUzJMUPX3okgPhX9AggsabZacZrszYt1ucGtqq", + "public": + "xpub6SPEgw4cAXTfS5XZ87BtydTXQaPxKrE7xxUuoESGt2JdWqqKPUSByXSy4DHW6nZXW8BkGwVbUPwK7vw3ao8VvQYLNcAMgcggqu1KfPJCFF8", + "chaincode": + "99db806d124729b3bce08006ef6a6e6b0f1f9a37130a3c70cbd63385c9a8288e", + "finger_print": "823fd437", + "index": 9, + "depth": 10, + "parent_finger_print": "d45518ea" + } + ] + }, + { + "seed": "1c63d3f563faee1c81f06dcbcb831cb0539d9720d3b3e46e5da57dbdbeeffe25", + "private": + "xprv3QESAWYc9vDdZJ9oRpu38SyGxJZ33Eqb3pHUW5r3HPBmNp9DECE7QZKBf4CBJivq66SAo76fFFsAgVaW5K2VgvZZZZuAMZA6yT6nj6BhiyTtYLR5mee2YS6GFxWwxLuderPjR4snQ5qfo1bdBBSB1ao", + "public": + "xpub661MyMwAqRbcEeGgYbAKTasBZgjP7KQHFn9StXJYabWvG6zhqLVPkXuC1w2TTKueWDbcyuTPzJLiL54nTUDTLkB1L3JMKteTt4wx2Ju3aFd", + "chaincode": + "0a1bb3939f2750fbaf8de0569dc0eb9ac323ce7f350eed21bf87d25ca2c8e8c2", + "finger_print": "3004d8b9", + "child": [ + { + "private": + "xprv3QtwEREb9U2eERXKSmGmqmxA3LBoSxHh75e1wpN4R3CncpXWqwSpG2aXvwUZpYZbU8fg3S6rHgDnPsQSp39QuZ9yvUPumzbswSShGC2gNv2WHsbzxxmDzamXcpnRPyxmhNRTZKy6JviKZxGHoTcLP28", + "public": + "xpub68Ey9WLeutLW2SDqBoq49TVFWLQSMVcaPpWzP76i1fhHjnJjQB6gUd46rSoRx8H7mBEHpcZaacEMwVMr3Fpt2nVxXMq39cHBoemVnkv7DKB", + "chaincode": + "a6059872fc95b57102254be9f0175f3fff7e6574d5ccd45ec12475d53864d638", + "finger_print": "c2ca8879", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "3004d8b9" + }, + { + "private": + "xprv3Rmwf85eZaEezoEatk6szGyuXwvJwk1isJwf7FLF5TVHoQm7YJYCTpQ5XwuP8ENhVGLETCmPhbn8XCm3WJWDuspT95hqxWTYCxXJdj4Cdw4TtjFK9wNHTQ4YqNppsU8aSvPChFgrhrGaJPsAJVCVV8P", + "public": + "xpub6BCg6aHM72fLpLT4aYtyfT3ET3Z3LMXRXJ9skexB4xqay5jo4GZTJmrhSSmJXmBvFAPPihjBzrwgxh9CtVYKY388UeaaR8Yk5fu9xnRero9", + "chaincode": + "87e9b54720802b8f9ca9307c8982fea5fdba395d0ae916ea5ea5e03c0a319afe", + "finger_print": "8b0f03d7", + "index": 1, + "depth": 2, + "parent_finger_print": "c2ca8879" + }, + { + "private": + "xprv3SDJevusmhp7ZjAT2vwE5FDxG5ncQZFkD65r9Bz9Ag8Ud7F9qtbVoJX4BCe1VgoR6LbCcSUH4TVGvdRFQHPPECRd46hGFWYCpiPqQWZ7JktwqCdeKSfHnAMFEKeefusg1ZkzvduU5ZxuyjNcYsC4XP6", + "public": + "xpub6Cg3uv6VYXccJ8S8jDyu7eSwqgoA5mutwp4RcNYzfvgD1enHqNUacyuTQVWm7KqrzKjP3TejvJQqFNHutoZAUM68sqnnEUpt42tajbHvmVm", + "chaincode": + "65ae0e45dd26beb9d9e2891cb96420dc35564d4a7684ade1330ae3c8d4de135e", + "finger_print": "2b4e0ced", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "8b0f03d7" + }, + { + "private": + "xprv3SZbguTpZph5X3scDXuH22mZXmPhWHvy6gvdoM4FYtCTGrmgbcCRgygLW5aJUYYmD7XWZCUKExsD3GAdB84qxVXBKyqbCWWQV9kWk56KCzxvB6ssoA7omNWykwksWqAQAVgyFCaNZiBSh8SVib3FS4h", + "public": + "xpub6DrNAQUuV9tcnpm98CF5zM3P67zaxUoQeT6mjkufZbVZYmMQ5gUi5WVbQJYNEqe3rVzvNEADTFufMcBKtbd8qPwMqVdB3TMfWEh6TLrD2ff", + "chaincode": + "8515f64a3e22d4e452d2241d7279fa31221c9bdee3f44a4483fef5d16a59b244", + "finger_print": "6b1874ce", + "index": 3, + "depth": 4, + "parent_finger_print": "2b4e0ced" + }, + { + "private": + "xprv3TG6bsHUYapcMYs5CS3aAZfnTt9eFG6om6qfG7mZYSNwyay3HEnT73fWyRmZgeCtu2rwMtdxvTWJ411QDaVrw2BDTXVPyj8ErPGYqN2PMxC35z2YTyGLty484YV4EaHYHRRJeMkLRuQJMEuozpfS7LN", + "public": + "xpub6GChJuJXKBfUiAxxR5YQHjt6rog6JpB16MyZDCrpWtHSZXDUYoTRUmkqAqkPbBFj21NCAxrqzehKRZ4Zq5kb6mAiQ4vHxeo1b19iRoD68os", + "chaincode": + "ba6a38e3619d595930412d9226237b1e3abb64699c043eb2ac1c0ab6f196e6e8", + "finger_print": "11bd725f", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "6b1874ce" + }, + { + "private": + "xprv3TdCddDfLKEcrii7jvnHRLBgNMyMfLqHGe7RD4UYMEhZNZefy7dgLQDLPbqpTmo5JQJDuVdogvknHMruz2QnJQGRFsmgGJJXq5MEC1GFT9hVKwZfrCRDf6pErGks9WafEPbWvMyxTmiSAt91ex2jBDh", + "public": + "xpub6HRjmCC1WWR8HCHmfscWfBYuV8LqoJgEAic3Qt1C3dJ3K75ke1CHQeQvBaE2zPV3Xwy1dBsWkJjK2okgBFywgcq7DUkDqdTkqx2eL92kizE", + "chaincode": + "f06eda517367bc6a1d8823ff5c56c6cc8c0b6b4094fe26fe5fc3053ec694dedb", + "finger_print": "a9b3a20d", + "index": 5, + "depth": 6, + "parent_finger_print": "11bd725f" + }, + { + "private": + "xprv3UWsB8qG8RQMGBR6XoDoQAiyrfEjP5X8NyXHqY2XWiQvvFCxctHN4Ke79T7x5chmwnjfwbEBNeJQFuBoryhj686r7QvQPS9JY84BRQLh1tgso1ve7BYmECJtyaGah4R5d7KDQWzSv1swAyXKLsm1EvD", + "public": + "xpub6LRf2VurscGFMw4EgNdwrR6MK2h2TRW8PNkmDb3RWnXcPJP16zXYaGeWyuaFDFzsEgfhthReYesmLtSiUGZNc8fGF9dLssbmbLvrs7cXGvW", + "chaincode": + "4281e784564b71a40104ef13bb2f0f51f180231e11a2797262a4afb844fc9fe3", + "finger_print": "44cc73f5", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "a9b3a20d" + }, + { + "private": + "xprv3UrWPRFDq7hVw6vU3DvP7z4PEojx8j2yxj14o8Hcceb8SeLyMASCdGdanNc9Fp65xW7xW2RbZhi2612FqjPZwswtFP36dmEUUcjn7SDAif38BoetXHvNnJMVa6fdgbHFGLRdGodXrGUCQDJ73UPwqw1", + "public": + "xpub6MZmxN1ckHMqLSxFCcZBhEA8jY5ESNGNiUznN54oqEuXcYUmVP77fMkcP9XyPppMU9ayg5QZUPx5eJNbAZ2HNj8PCvrmphr2cY5Hw6YUVV1", + "chaincode": + "b191959db0562d4e27a520edf78d880d76185f96c17f460af64427b5ed33cf65", + "finger_print": "b234d7be", + "index": 7, + "depth": 8, + "parent_finger_print": "44cc73f5" + }, + { + "private": + "xprv3VenN9r4akqY21v2i44UhPRBRJ6ftuN1G6Bw5syNUYdcJoyHysTH4PiD23TY6Pjn2jxSQbWopL4WuVD3sx7V7z26EDApnUgky9wHB2s4g1TevYxZmBDfGrmjQALLLdvZi5U9RzqqoobR5bW2AAhF96B", + "public": + "xpub6QFZ2mWqHAvksH9yUcrDZ5BttCwWvkLfGHMRkhs5Sm3EUBDthJJzD17cBnATGJNFuo7RKTvgUjNtZr6eTwFrGQ7e1t4H1CSjGvYMPA4NbVa", + "chaincode": + "251e6f4622face4357bb974c4d73e33ccf319f71e40bf1e905bfb4742772e89d", + "finger_print": "285f0a82", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "b234d7be" + }, + { + "private": + "xprv3VukJeNUaTBCRHLpRTEwc81uhoVrzNk2d5frW5zCgSePJNVPpKep5fQ7ztwHgwCVz6g8cS116ab96SCK8CxuihFJngtjHtCvZRSaJk3epSJf75DdkdbDVy46yc6YzMbgKAVhy5Hwkhp2sqSeHngYhbR", + "public": + "xpub6R7vmyC7HVyAqk9ePh9scUiGWNFTUBtVPHydxUagcgZztrRkW7ke8HTmQt31LqainyaAmP6Rp2tKnhVUA2YWFBs8bHN63Wfo1rPeGMSsfnE", + "chaincode": + "145e22e6cd54a7b56c33906b87f239b872ad59cea638aebbcb56d2d9eb6df54b", + "finger_print": "9870ba3a", + "index": 9, + "depth": 10, + "parent_finger_print": "285f0a82" + } + ] + }, + { + "seed": "62e4d5f182a52a39f3aefbb429e3e2ff9c14acba70710fab3c4648a622a51569", + "private": + "xprv3QESAWYc9vDdZKk9tM8LL5iRKQfuCBnArUno7dqBQZeJfqmAabPxguA2jkgeTAD1QzN7qnmmSM9j9u4mTAi65xQNcBN1cc3d4MW7JzsvEhP9oUz7XekZCD32WSfFKSGxLRUBMVvLnCZRzg1BzhGZVHe", + "public": + "xpub661MyMwAqRbcEjdZzFgDGenMW26FooECCBxtSX4SG5LgfwprkLRQTFVcUHUKye1bvqRntQ49Eud6EAwLm65JnLvTdi9XZek9Y5aKPY23Piz", + "chaincode": + "1363fee4c28c2ac62f655fc9b84959c09c9b5e598ca1c61888b2e042e9f95d74", + "finger_print": "560f0e65", + "child": [ + { + "private": + "xprv3Qyke92sTxmuZkyMtZFbEa2GJ97zkkDq7Bso8mYKGYU68SGvmDaYQzpYdKexL29gLdZxAxBKZmJEnMR9FvE7cRcGZeMd5CygMukJ9gW22a5uD5PAYNXtKfBCnJhtQ8dMPN5qHEaeMp97QH7nHbPDwTo", + "public": + "xpub68XBippcpyc7DhDfW5nKL7xHFMGo7HQAk3vXwkkUmYffuzoxErhT4id7vQByvcGjT7DLBsDJrsLPXwd4UsjaMcGv3bPK2NWtGiSa6PKvSpg", + "chaincode": + "71ceda9c058d58539b62be4faa46291539cc016b19a37e418c0f02d832f37ab5", + "finger_print": "744c901d", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "560f0e65" + }, + { + "private": + "xprv3Rc17zVPctdBHtYYBPfEPHsfM8c3VZjWGBKuoUDWwDD9XcMBtjKttiULJTthPho5eos93uzd1bEm4vKcM2Usii8fGc1NjHRMaqx2kWSGgQfJyG6p4CF9QtmhRfyJ7hd13zuFYn88ePmwpzCxbucfVnj", + "public": + "xpub6AdDJReseD2gkF2tRxoRHhWChdrmcAXVQ4qseRpmRCVx9ivpeDqd5m4maCaijPJ6fRb7s79gdAZe5iNddPxw5kVxb7sGBvN7JPdqebiVmb3", + "chaincode": + "4fdea5468e63c769b41d889c96e11efc774c52975b2d8f667cb09f92d073fd7c", + "finger_print": "f775c830", + "index": 1, + "depth": 2, + "parent_finger_print": "744c901d" + }, + { + "private": + "xprv3ST2t2NqjDbSUk4GmcCM2g9Ry3T4pioRwqEwtDTd4s8ahuJT7TUJwvKZrQecP63QTq4GQLT43DMRbWVpMCDL4LqPYNEG8H3u1ZhRYLSjLzCpMmrhNne3zc8AKNmqiwGCtQGtyT1bPHyf4pZhF5zRCt7", + "public": + "xpub6DUGFLWaoKJY3bghNYVTaxjntfMxRfY2ifJjepZKH4CpTvKW9xbqfdkpLzwUuWAhhxa4yPDZ88zfkrZqyHksnpR4CrCeKSAeWAe52tJoy7Y", + "chaincode": + "5cfa90dfb7edf1d38789cc6a9cc1cdde12b6bf50d80e5ba6cf31bd58fa061653", + "finger_print": "9fe85b40", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "f775c830" + }, + { + "private": + "xprv3SpN9vPPsSY413THvwYK85egKnvzWwzgmjGtPL4FVckZADeKUSUCGj3Zoo2YQmUmv97AuY5VSPrH9nDWH2XZ34uEgG3M2dj6eP21LUwsGCtMzGohnz4QVd2o8geg2fTxVyPNNtHBNNQXnoBHSNiFDnV", + "public": + "xpub6Ei5HR42eweaBCWXaNRReCzJ27KKdMWhwai9RvtAseQiLYC7p2rkMDoUhepnCumNMKFuhkY35wg4w6FVAfuziDYbXzKmaNc2bF5ts5sVH3b", + "chaincode": + "13859f84dfcdd18a2b0f8a94225289bf518ce74dd06bb924b175a5e95cae59fc", + "finger_print": "f3aab04c", + "index": 3, + "depth": 4, + "parent_finger_print": "9fe85b40" + }, + { + "private": + "xprv3TZPjqF8EvkM56CFth7hJq8BYL5sz6ggqBVLukU12eE54WjwuKwFpbEdYXbk4wXbvJ1NM4pPS8eSaf1tgEAkoW3kfkW7Kw2CMVwhnSr7yaPfXhET2KYAAusdsa6NaaDphVByBqV93NwahEqc2hhihNA", + "public": + "xpub6HCvArYtA9bbtZtfhMoYZ954eBLzhNd2wg6AuCmFU3URcbT2CG5z9SNjDNWTWpkcQ1zmcBom46547xUH1Eygdqhqw1z1ZstkDbTHXQciXi9", + "chaincode": + "c5d3a4bb9725a2c64a14ab9157f256595fe585cd7f7650ce1ffc7d4473198ac7", + "finger_print": "562eba3c", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "f3aab04c" + }, + { + "private": + "xprv3TmsMSsrFvtKd1WdB1MAQ4AsEiEKoiwygVL1G6Vpb2SffDNxGP7Y6hrsm14YyGB8SEko2Hrkv1AbwPGb8Sbq7LHstZ4KVTS7QCELvvJuZeVcEvNrWKLK1c9Dr5nKT52qK9ELm6GuRtw998Jx8hHLYxE", + "public": + "xpub6Hvv5AstKJTWAXQTxx1Rt7xNXG989mkMbV3SdGg4SMPEkhXFC1bovA4Yhvhnc18nJGpZSefNs5AzRGgs1PRgo5fvpi7XBVroyEiyHKrAUxS", + "chaincode": + "3c9913ea51914cea7e4a1c39ef424b4e6207c4c2e78d60aa2c1d5282a3cedbd2", + "finger_print": "de8f30d5", + "index": 5, + "depth": 6, + "parent_finger_print": "562eba3c" + }, + { + "private": + "xprv3UdZRWWaNqhfRRQWks6seYofmDBbG5ZnpEnXXiSJsiPxWAGnywaNXKgfNwSLwKaHcnaZQQ288xwHK14Si3o4hRGbfj5Bf6zwbJhJoyiNewoE9Gde15g2NWPCYW3zCkzQ6FJUyni5Hrhcv6Dxb94Cm9E", + "public": + "xpub6LpBz6uFe5W4ZzfUURzkswp3DsjWYZpgmr1Qzz8WTnvCeJWrayQboDsXFxMC5fkq9QrQc9UWtdZjQf7iVB6UVBCqsZsLirn623J9tLdebWH", + "chaincode": + "3d4df8295d7ea16398d3bb8233dd1da429d0e7e8b65383b2ea1440be2bd79729", + "finger_print": "1715d1f8", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "de8f30d5" + }, + { + "private": + "xprv3UkicdNNgT8CvZDUTbUeF2AtEvWLRKpr83ch9fxU7as5safbu3NwtXPoB6Nx1Rh3JHftxP7XVD7VhCfk4mZMcE5RyvbcB5qGLEyezuhbbGzWJRnazUFg4LYRJgzaRPYb1QsnzCdagPCGaWat9H6L1KW", + "public": + "xpub6MEHeNa9FHXhimcPr3avFadspntYpbqAGRh3VV6FpDYRz1J6WFgCVv8rG4Wmqaev3psnNoDUSPG8sjKvfKozPwtLc7H4hHL7q2taySWGmS1", + "chaincode": + "cb9c8ec75e41f9cba35e4135fec4a38414729b167f1477b3376cb12c0d16957b", + "finger_print": "b8f341e6", + "index": 7, + "depth": 8, + "parent_finger_print": "1715d1f8" + }, + { + "private": + "xprv3Vfdu9MbFpyuyXP5PwdbJmsg9G5ZExcP6AKxUUpRtcKkG1jDmsX7K2NUtHWBtuV6rozqzfPpQwdbDRES1mZqsnFq1fSMLTUoy9kBVtZyv3U2ty3AF3z8UmQcZkMLb5yksDrv8tHsten5ofFVnCLUzRD", + "public": + "xpub6QJRn7uhd7KjzCzNQ2f14jUXmYe7CZcsY7GtLKrVjCwyRQ9XEZTcpRaQY9QyaD1daduGz2Hro9qfm3dbfmRJuffw3VgTHJV59ZgMo3aamsr", + "chaincode": + "a06910183f9ac97e22fa878e2895819fe0d1fcc70ed2bb6220b82733f07adda2", + "finger_print": "f3e8d906", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "b8f341e6" + }, + { + "private": + "xprv3WMXKsmsJws7PaJjRCbw5wmia4njtPaB6PYU62c6Jev8XnPhGtX7abyJ47hJSexadNmn2jHcbD3QNtZyuZ2Q1XEWDiBcaqzMBFdqB9AZgNbrFQcQ438focs1uc47acaCeCQznAG5ZVUBViFZ28GLpsQ", + "public": + "xpub6SchTzZz5tq1vfCyAuPSoVjjSTSTmdGuSjctAasC5UJt5kQfcGE5bgB9ENCJgUFpqvjK9gE8V56325ZRnVm8n11DgwhCf1HtptcQyxWJvXH", + "chaincode": + "a257803dc14998abc8ba4d8aa788e700a57176af393d37b5c33609fdba5b7c65", + "finger_print": "2c3cf235", + "index": 9, + "depth": 10, + "parent_finger_print": "f3e8d906" + } + ] + }, + { + "seed": "1ae7cf2e45e7ac4fd7fd3989d9235b9b77b00daad761e40ba8bbb4a9ea10468e", + "private": + "xprv3QESAWYc9vDdZGtSyY3NqWndPgEEuDrg8j95SspSRaYsowzoezJJBxHifJ4p8qJwiwyU3ekAKohzcavKLRMf788rN9wAaGzinVN6BLvjnb1QZfDTAUSCEQuJrYD9jFTk1uoE38C3viiZdJvjnPHUWtU", + "public": + "xpub661MyMwAqRbcEa1kn8vqA9QDhxccqT93GKc3vfDyKv6H4fkNiquYjZUMjqjXVNyJMCX7YMvnhQFxR2uMRA6qVYMcMMhiQ8heFUFJoidRvh2", + "chaincode": + "02bc4a891818755b5b20d9258855261c59ab458e0579422834ceb7ce9dad1d24", + "finger_print": "47fbfe10", + "child": [ + { + "private": + "xprv3QwyG9PVdoyyMAC1sCUmrnAeHbJn4HQKEuWkMyYSywCX7gsJYHS6HjKy67AoShmCaWzfnowNXbWWFDsoptCSDJy4ici33pWAGouo5qfVmMbH9RxUCjEykJpbFgXP242AA8bkBiPTqN2zGyGfH1uVHeJ", + "public": + "xpub68RBiWaG23AP1LuRtB49DmECNAcrnP9nwmTw6ZbnhTPJmsWenzCxBVt6npTTVaAHGYAJj97TdCFppBDdB8z4DYEKK1sQQRjTKw9WruPHawv", + "chaincode": + "01e15f40d5f87d17597424dc7b3270365f3c25ecb2df5b3fc73a7431bc52b203", + "finger_print": "9dc54bfd", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "47fbfe10" + }, + { + "private": + "xprv3RhFjhRqxBwN2JbKfx3uff3mcXd2ALXpvD1Qex5VFhEAPiUCfqVVSNQZiXmGLnYgcwxguGvATH1Nyx8xcH6ZWjEtZt7bRTAWb8ysDji8ixYpH5FHEU3V4TC55y93LmgSgwgJcbzpFrxJbMezrgYz7w6", + "public": + "xpub6AvtjE2QskqCVwAsGXm1dKRnyz2s7rbcUfWQbCYuXWjzmf18MWeoEBxGbYwDzdP7s3rHdheBRLT2DK3cxTy7LpxBb4i1NTjFw2EXGpRwC5w", + "chaincode": + "6484c9dc665951d5a12be2d114000821b8944c1f4ac09b0284df9c46b0aca71c", + "finger_print": "7d156432", + "index": 1, + "depth": 2, + "parent_finger_print": "9dc54bfd" + }, + { + "private": + "xprv3SBY1GkhVPBLwJqbUTdyTrWMwTd7JQ9r2rUriHkL2NTeYeLueuxvhJvR9jGwW3eyVeMs9GpRs97g2yDmUtzi9BDc1oGfjpLsNZYAQ1SpxPbia45CfWuFDTBnzn1Wjwyum4XgqafEKuZBR8aLuywgZWf", + "public": + "xpub6Ca6N7kXcM2wZo9ErWs4ZDJF8wsqhwsvJ7G5DC5GEgvYvi88G87LU7Tf2b4r7bPe7zCEvmpkTrsaWmcUhFoHjMzuA1F7UAkQZrrx4oZQVzm", + "chaincode": + "ba6d920d746330211f4bebb444aae868aebe3818aca13891043c797f3e1ee25a", + "finger_print": "7be09f49", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "7d156432" + }, + { + "private": + "xprv3SjoWMkDLacmjTc436oXVy91txhrdshWNaJ6tZJ24KKttCTRjtmgDNXedWUMtJhkMbNUNa4oBcduDjMzL2V8AYfE4SWqbkurT7XmWamaM7XvaYYjEA9gA8gx4ZrER46EyMVzNV7U52WHiJ3Q96WsWN1", + "public": + "xpub6ESiQBTk18PYTe8mHjwrU7wpxGMhiAQc2n5vjdRZoLVcQxwPVVWqRLfhx7MJcBV9pJomtDnns74zqBsRyhDH2DYzTKs9MDULuLs96wVHiGP", + "chaincode": + "c0b6f672303edf17e420b8911d3ea00180998fd6ff174901a3e4ed9ee1117e81", + "finger_print": "a0132a1b", + "index": 3, + "depth": 4, + "parent_finger_print": "7be09f49" + }, + { + "private": + "xprv3TNok5c3wWKCbb2VHVnkMyDRnMBFkg9i3rxKjzaYZ6ugsx7eaJn1MLbPCQx9SZSnugEhJe3mjrXpezTzzUz9cxfPkKLDQeVQ5ypiDxGtujpYDUrjkuK9r4pRxyCSkBaMcTW67zvxvadB37DnxRWw73m", + "public": + "xpub6GbHH1Z2uf7r3trwTSvrzZyLGwUVQBatR6FpMDoCBRTgzDtwuwQukoaNB1xy2StFLgUYaNJhHK46WNZwJqbfqeV7vkcSLi36rZ7979ZyeWN", + "chaincode": + "d5e80455980d8af2962642606c54549c6e23a66bb915bd8d5cc84c073eef698d", + "finger_print": "da474895", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "a0132a1b" + }, + { + "private": + "xprv3U4bcrBMn8TLsnfW66b9GxYFogfYFJozuE1nqLZHrqAQ9XujGmUrDRK9iNJjXtHMJWfuWzBCnnSc5je9w1hwvGkYZZUXUu2vKMHpvTv4QJDhQRisTJ66zfpwuMPAe4TuBmvCEpMWZjeGqMWYpuHNJrZ", + "public": + "xpub6JuEH4T35v6MjGHH5CYsW1WH9wCTKBrJWy6WGamy2zuKJJo91VsDF8ekhPtryYiMLWQQqvR1eWd9QgsK1TdzDT3hu2QAH1bFa1RHcEFyGu5", + "chaincode": + "bbb468089c4cba4ba2b20d026f424d27dd9ffe909f2b29975b383c93455bca30", + "finger_print": "ed2a5921", + "index": 5, + "depth": 6, + "parent_finger_print": "da474895" + }, + { + "private": + "xprv3UfQhyucPBgGRLAVeyTqkaa8eTEh1K4BpfHqMBJn5MtuxURKPvuFcTsAMzPivWWgp9rpaEHVVMZc3NSSJNCqgzpGotPr8u3YZYzVseGrDBGFYvASBM6dJsHfrbBdmkhMeQUDUzEbkLVhr7BAtmPzxLj", + "public": + "xpub6LvR8p2xvBBnRgTCFSEQDUM7ZJDaAjn5FTpmeUoFyvo21J7xWPt781FFNRr75aLcYcuP3QdCDWu9z5qUepX4r6VJY6vY4CcJ62XjN7w4Hba", + "chaincode": + "55ee7d966477f579f37cf75ccfb1e7f67ad2b3fb723ea59ae1577797770911f0", + "finger_print": "69ad509b", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "ed2a5921" + }, + { + "private": + "xprv3UwBGK3axKM95CKaYjscXGCwszVMSpffNLjBNg5Cks1eHk2rES1f9Eq49jKG5bDDFxQUUhj1hMgb9vkZqhKQeJNWYqcLWNvrExdVV1WL1P3ehEMmZ4GzF9bkP4szz9Nmtwxm5z6KP8N2LRdZMq1rKc7", + "public": + "xpub6MqVowgkjkRRFQqXZbh7trT6eJxDYUEYrPT5EnwjA2L6XVJqnDrYLsq7yBR18kaEV4JqAubZwMYHHRck87JKL5uFXkCzXNZjd9cP4G2jEVi", + "chaincode": + "40698f4e426c112235a45f6f1645db5bff8de06a8981e13873770dc4d9292769", + "finger_print": "823350fd", + "index": 7, + "depth": 8, + "parent_finger_print": "69ad509b" + }, + { + "private": + "xprv3VYhkh1YUmY4EdHMvczcejTBSRxsiNB6voAUQLQCPG6ZXZ6uV1LkJdPkMQx3mXwzLGiCwDrQFXJFAFiExVnWYVTNVwczfBL5sSTFiVBbLuipcsAE24AbhT1TDGRh1eEVuNwY6U49S8qgNPx3r4Kce1a", + "public": + "xpub6Pu631QmyUwU9yX6ZHwQBnQhfTUwNbgFcKeQy4JQmnqXWgoA5uN7hH9vngw3fgPVVe9hPgfnVYc3Z7WG2cXnbkRwguDxqSPGKeV3GLXU53Y", + "chaincode": + "fb16b0f0ecf085ad84bf275f3da1e9d9e665db23b84dee5c883a646b37383b3f", + "finger_print": "c6c14180", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "823350fd" + }, + { + "private": + "xprv3WFof8CaKkiiHJ3RSA4fioxw8VLXGLQn9H43cYhwdhVkMrEcDjcNquX4yfo3V32ziJMhaGAPPvL6hshfJpu2c2pyiRmZh8BMmLbY9u5w8GwoKeckMM1zBrLYrc9ETA4EVMA5zCbHtwP7Ed98gKz1aHU", + "public": + "xpub6SHSyKHf5ca3t9RVbdDck7djr6ZvV8z2kNJU9gAYJQx27yzTc4nm9ShCBn3CRSKbg9q6k7VNdEKZ3TV2MSQ5QzKKfX4som6vQZ7G7VFPWkd", + "chaincode": + "f8bcf449b000b31109423818773a23651017a5c438c6ab07195306d5719c007f", + "finger_print": "b6565fd9", + "index": 9, + "depth": 10, + "parent_finger_print": "c6c14180" + } + ] + }, + { + "seed": "934636092f17709b8fdcb28c0e649de04c5627b579c41695770dd93a4f1b8963", + "private": + "xprv3QESAWYc9vDdZMbA27PFsrRcvx3ACaUbEQe4FdnfH6QLaATK9PGwmp7h5xUcTEzynXWCzBP8FZ542NPBuw8rYgKKPzDm1aDGzuB3KNRLdR7sc5A9CjYrwLq5Y1CCPfMjbG69FYmWZmWbdydGT9mofgb", + "public": + "xpub661MyMwAqRbcEqqmhNBp8qRkWvTDbwqdUqir5ekb4A2biGUj9fW3xYWLvowDGJyMcFi6hxgxesRt5bxUDod1dXrcxixsSQA4XahA4BiUUgo", + "chaincode": + "1e253bbc9e106030d109333d9dbb2d59b18a3e87ec5ae0a25984fff56461d4e4", + "finger_print": "d9446f15", + "child": [ + { + "private": + "xprv3RGNPV5qgG8ETJBdDyJohDCj7ayeKkzeo1u5W3h38jJSha9pdWUrK9iMyhWwSos5McukSRiGyvMLboTKLA7Fx8yUoz6sj9rqhjVcAry2zTaTNqhxERVZaFiexhmzMrV1N99d7Tzdyf8i4wVzgfUMQjo", + "public": + "xpub69V7z4gqqtthsxhvzfBfa72xDvyYFwVbPk4hrq5oRzeXGcvqSWjERV42B5knnsCAfTE8vBZXbgEMvGaAemhzCK6XDz1dDZZPwQLxyoMa3km", + "chaincode": + "265a9e93e93b510e1579616c9044de71339e3d4c085ea97a2b91182418775a1a", + "finger_print": "bff0fb81", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "d9446f15" + }, + { + "private": + "xprv3Rmaj3sC1dy4QgLirn7vzTqLFi8FFPDAhcFuGXgMU9b72xnqRKTZJgK6yhhFzkS7Jjkw9PSJWdoFRVgMEiySx6nYB5WLXE9oQDA64sSq5GDPaR6szyNvZjnUC8oRRrQrXAkYwFi4yFuw8trKt43f4xF", + "public": + "xpub6BBTdeB1xVVwtkMzLrtAhrdxDVTbVXKMEngbuuKZv9f2oPZM3VqFT4TzUG2MtLXA789ansVrbRzYG8mkAyg1gk8KByvarDLAUJXizws2faC", + "chaincode": + "eb0d87b6555aeb3392a596dbc6f181d10fd1dce41c6d03f116c4625bf7d337c5", + "finger_print": "191041da", + "index": 1, + "depth": 2, + "parent_finger_print": "bff0fb81" + }, + { + "private": + "xprv3RxsLoj5HLzhziUcHWS5PbvR5hDXX3qW1rrYStQCAQfwp4fNFUXvNYBwAfYFeYYP4Hta38QF522QSuaSB8FS4jdZWJQkRPWu6B6joHYaNfqkSS5TxiY7jcGi2nazgojuJ8J73ZgcSWgPjrPkzx8AaxE", + "public": + "xpub6BqTGW619kMXqaokwGcPpLYHgBnaDvesPvkJ16PGz4Rwe9ctQMoScjorp6KbQ9jcYm5YFk7f5g1nYHgodmDmrnKyzj2DogPXYV7dpxLg55s", + "chaincode": + "801d24a828349c39b3093f4ea5bb0125be0428255df4f1e29b03ee899d6b9d72", + "finger_print": "aff4d4df", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "191041da" + }, + { + "private": + "xprv3SrQ2zKR8ihjhWxdZarQEdVDZZKyqfMxiE2ShDSnJzkHaeduxsGgNT8Qzto5y8B41vnssrjNtQqQaxHLgTx2pjQVK4A1uTwbfC6SHFkNj19Fh7po8TqRTVbJW97B4HUqKEAjWtrK4ymjQ3NcRkfnecj", + "public": + "xpub6Epv737jhsTQ81B8iUGZyh27qiXbEFSn3BXzj64WY2L2Qk2X5wYtRYmMgYeFYMeV4WzTSF96VK4qidLvKNZEH2Pw5qWtDVet28kJv6XZtgE", + "chaincode": + "2845f749fc326e967052010d279978b14ae9863da06d18fe58d43265713d56f9", + "finger_print": "e2dbd128", + "index": 3, + "depth": 4, + "parent_finger_print": "aff4d4df" + }, + { + "private": + "xprv3TXGHGAHNTd8nF96gHzR9jQ9LFeGE8KtVUyX77Srouj77buNxX7QUQk7mqEsqfsu3JbkwSRosqbmveJcE9ofuWXdNsaBDm1V7118m2HWNBtbF99E3QXVmahTYLiQtvdgjqPS7757y259YiQYRYQcTbB", + "public": + "xpub6H5kaE5xcDyNRyUR9ijJzMHkxaQF9N8toBYXYfkQ88DYihVVKRG76cMKBHcr62pjXXYRkgwTs8258nptTno6umomwUJjkDKfLdy2gCC2Pec", + "chaincode": + "9845e896326b6089a36096f0c811162e4789a6898b169f4bcb0b4d4542a69c1b", + "finger_print": "6d6a3bfd", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "e2dbd128" + }, + { + "private": + "xprv3Tpozv7nkyNpo8NAZZFcQ2SM913Tv7dY9BKsKpyB14opBuWct44PU8FdJ9cy3HdUWPgc76HDGH6HRZh6hBTvCoxQX4h9ihcLXXxCwdF1VhPRoBYncRj7HRJiokqLYf78i68BgY6PjCwaFSiuPjt4QbC", + "public": + "xpub6J6pX2LvMapbvvNbxKPQwjZo6HBiy1iduPiyUwTfPLGxX9g6s1vGzdeiumUW2qR6PexdvHyMEeQRucnj4gV2N3vVQcMxtewgkoWsdPPMGRk", + "chaincode": + "7a4899fccfc3b8d750b2c53bfb091a48f5f6385c84f92e4bfa0766b624e53e71", + "finger_print": "31125a51", + "index": 5, + "depth": 6, + "parent_finger_print": "6d6a3bfd" + }, + { + "private": + "xprv3UFb8SJ3nWaJrQngCeE9gdK1aNKpWGLqyFwRDzDcfgxfETM2zJLGnWeVJdUX28KjiJuHLZh3XYyfW62ZV1cikDpMxBxpkEnyu6rZN5nToy3n1CFxg92zYY7gB6YK2WMFboMe9vBW3ZvcphPWEx1kYDh", + "public": + "xpub6KYEKz7pkqsvJDfV6zreAkYE2Aa5fcv8kkeFohwNsJZbwF2jXqXG3tnZW8Sw4oaGghCj8uzWi17Lx6Nix2eb4x9pc1Y6jv7QeRYnCXhGeut", + "chaincode": + "eff04141291a0e685fc6e1a2cbf846673a7d9d310ae9a1dc1453f263d9499234", + "finger_print": "c0909b67", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "31125a51" + }, + { + "private": + "xprv3V8BUD9sohHxdipNuYS5h3uG9WufVwFoAWsnN6zti4nykazFKrix3mQeYF4VJAP97pfML2No5sVSHip3UAT1jD5HkUM1vXb1AwdQohpB9y4iN6VufsYcTmypetTnd1Stqk4yN6iMaExM2UymB33maG8", + "public": + "xpub6NUYCZjxGtCFVbmdGCzYchzTbwGLAZTLuNnC76DejDUZzgigK55ncGQCAu8rjAJFtDugnqJ1hHydDzMKSicgdVQR9oDPFQeP9xu6JtYxWaw", + "chaincode": + "6e4d5316d694531b1b2a164c3e9509aac5b6843ee8fda65a617db4c2e2405446", + "finger_print": "1c068785", + "index": 7, + "depth": 8, + "parent_finger_print": "c0909b67" + }, + { + "private": + "xprv3VKmGCTkZ6CeNWnMPBy22jNtAq9YTbmWHWszdozjddNhheYrwakTBhcHzzM91ob4ewGkJpngWzcNfMYiES6Ad57cGtsJDRyRtpw4B4mxD1JqPM9xHotJcXHrLowxYGmku5rAueHkFLeQkghCCGkEsc7", + "public": + "xpub6P9Xf3M9EfvpyA9KqmZiL8q6Qxo7CaBR18mcVKUZsyxyUgXByWH9k9HiAsEDvcqzF5cwQnd5KipfdYc7sPPyGkcrTinHqkqqKuHXomhoUae", + "chaincode": + "844596a5c72cc1396cd3ed6adda2ecf7bd4c973cdb5052a29dfd2d20557e72e4", + "finger_print": "354ce9a7", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "1c068785" + }, + { + "private": + "xprv3VwPGj7hHecXLAxmGGJEKMAbPaEmL9Bgt6jwGiEeHXNc2NhjLxfgKzmfgMq3h5HEi6A34XtegHs6JBwBWkgzyZQhcktPfxLsYmdpvPepxdwBEZr2CtUrnTChmrD7j1EA7jY66NxSTVRRYcBDHkxcG5f", + "public": + "xpub6RDSTprSP3HJHUc8ebxsskvvZLYxhG7mCwkxPEskpZddetSJRDoVGBgaQiFRHjs8zsV5jVRdEdS8tsJDMqSqrcfzptPfh3QeQYy7465Pe9N", + "chaincode": + "48e55908589e737eba14ce8c01cb48e0d07eb3df714ab86ed522d32be4d2c79f", + "finger_print": "4bbdfc4c", + "index": 9, + "depth": 10, + "parent_finger_print": "354ce9a7" + } + ] + }, + { + "seed": "df8e3972622c94678d802c4e5324967fa2e1c1e7f148498076996e2ea60772a8", + "private": + "xprv3QESAWYc9vDdZhTmoDAdcZXqAZaBJGJeM8gg5d1nBJBaNrkVTWgwPPogtFrRgmdg4uSQfekYwfKKDv1uC7uYZ981SRVCtHmd2i6pPQhiPkU2e2753jxPF3W5VLSPVjKKvVP7e9cxHWwXojAEMJ2Kzdd", + "public": + "xpub661MyMwAqRbcFzjpqiG4wGpS9uvFMkZkZ7TsBNeDNEF7qiBZEt2sKJXCzwagBGRBhmFZyWRx9gjkRbqALscfMUVbYnowfDCjJw58Rjm8Abm", + "chaincode": + "91feccf7bdbfbfb28a382a38f1d2687b742181f2fc2090daf9869a81da48681d", + "finger_print": "3574d67a", + "child": [ + { + "private": + "xprv3QudAtCYtkh45DPNSUd3Cu9BY82kJRoj5EQjxyquA2JDjmd5PostTwSZrL3jwi5RDcNJkmzFvaU9djT7GS5pKRDKMN5PTVRpknwavYRdcxbx3Ve9Mo963tWUncGjx9wmaXiNXbVPYfnJCtMVJdksQ3E", + "public": + "xpub68HHbRU6Qkhq3mySNP5QnvLBf7i6cgotAPcxW3aNCLnt2HxCyUJv8oPqbAgaGXRncQysnJAPsj8LPr3oBkrujX4i8AvgdJRYfy7C5fzGMYS", + "chaincode": + "de822fb6695cfe46c1941a813e74ca3093b0073323dd6571cb50d8f64bfeaf6d", + "finger_print": "57ea8462", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "3574d67a" + }, + { + "private": + "xprv3RYQeHtt2bMZyxGnURnAazc3LxwxxuqEpokSsxs9wwcSxvpJyk5r4oSwBAc19adY5utKWLfAT6rEoSnwuCkqKxiyFyDcrPLY7GV6SUc6wSni1Rf11WJYQjUCWFhPMz6t87Vcu6JKrtp83xnyZUZTBdM", + "public": + "xpub6AR7W8pCuefQF9dNRkFHd3kjQnPZVqCqnTxT2uZrXmWTb9pDurxEfD6RyXGvsXVrfxSwyHGE1q4PFTR8AcqDLtd8wSXvfHdwcEfDAjNVCCa", + "chaincode": + "db6bdc8431051edb5015866fcfe452909d0c61d999d494a2f3e114ed1a4d2198", + "finger_print": "5068c311", + "index": 1, + "depth": 2, + "parent_finger_print": "57ea8462" + }, + { + "private": + "xprv3S5ss9WtbgJ2feTm7xpGy7k2xCU6FDYC6sLDbHwu2EqvkN1qj6LyuRnSkGLW4k3B9W3dRxBFqpVp6tvN9iCS5ME9NZbSBH1VHrCAMyUViMHhFc7xcRobc7QwR3eHd3GvTNsPrnzBA9xpbKLSy98Loig", + "public": + "xpub6CF3kGrFToV5bTmjUnr2fW4F6ZGPn6prwVeYmzBEwbjZYCu2G7GxvKkvqUL2mfWQFTZtw2XbkY3fU7kGi6knxT5NirMVJX9o6KsftiknBym", + "chaincode": + "abf87e713998c3d601ddd1599768ec997aff477bf0ecf7441e938cc4dadc219b", + "finger_print": "2402c39a", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "5068c311" + }, + { + "private": + "xprv3SYg7V1s15Sz4kUsjqizyDVzkKXdBqsg72mkvUW1ZWHKwDG7EQwuJuJ4HWfcRQDx7W488WR9zA79vjAD8BobihQvqdMyMhkedWfs7mrRXasEzqSXLSLK1rFyWrYK6bourGaNTfBDpU75SDEn6CVjQhj", + "public": + "xpub6DoFotiJ5DjW9AgceFKQV4z5U93xctW6LdQGLCVN89HhQXC1Gwa8ccaBCM1bwfz8CcXHQskjhxf6M83Kyzm42L1SvU8V76wA9XXRgmxLQcC", + "chaincode": + "873a0fd8ce48f61741be907408e93f94a32506984738690eb7219ba6bb578382", + "finger_print": "dab0801f", + "index": 3, + "depth": 4, + "parent_finger_print": "2402c39a" + }, + { + "private": + "xprv3TWEH2L8NcY5TnFGZZ7Tpt3poWtrbJGMgfFG3MHfoHRTDVsornS8iYQm8VdLkanf74qyo6ZQic8YESuj9TdHYk4QEDhQDZd3bDmXTZPzzfFPNWAcmTVJr4WqyvYAKEb7DaS33nrTqTuE7uBRoYCs5uF", + "public": + "xpub6H2GahXFMe3vsaWWcmCpEyuEsiM9FFYCmpj1ePfL1KU5jMdQ14BSjzMh33gX8HWDVyULdSzurr1RU2m2mLojuG1faA7auoJBWMweLEraTzn", + "chaincode": + "1a2f30ac73bdfe8d13db52c876bab69740e1f9caa7ea2f9ea8f00d6240a0f85c", + "finger_print": "de692d1e", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "dab0801f" + }, + { + "private": + "xprv3U57yKxo5mnjB9wo6dQAjuuRysVDeqMLuwgWMJbaoJcDkGaE2rBbyE4u6LXzwne7cwBfF3EfdmeMy4ceVHoZAnwHdPSHuCoJ3JZHRXStJAfkYNcd2UwDM3sLP3CrcKK6ifNbFcMxFTTJX9LEz5TqAyR", + "public": + "xpub6JvzTMtVVaya16mrtqCBk2JB35kRyBDWhigaTN3TBW94KCGPPowMn2suVs6oJhju7ygcgFEY3M868pBHqJvDcESfFiCaehPA4UcYBCuNokq", + "chaincode": + "fc7366b536a576a3007c9e9de241399ee3a064a2c7af6ecc481fbeba789a6c25", + "finger_print": "fd1e572b", + "index": 5, + "depth": 6, + "parent_finger_print": "de692d1e" + }, + { + "private": + "xprv3UhRtJmMRAxYC91BFKD7VeNSjD7YapRUWsZBg2j6E9Ka8kGXdt4PCMsaUDHLQiPnUP4xJtcmfzakD5av9rNwqrGVC2KXi6e4YRF8SvRZ1JNXtcbxKxJB5gC6VmHvcj3MwucvKGe13JtPFHaqz9KhFNZ", + "public": + "xpub6M3DbHHNhqWhWSxpxhG6jyehxEbpXRFKWYiqa4k1f3RSvNrJDsxDeGVkBcXxvZuqb3JgBCpMSUn5XFdRm78Y1KAVXiWjM3Suwna5GKxuWkU", + "chaincode": + "e5d316ff27d11e2f91b47d83c4932cb23361c91fcfbfa0064ac86b3e70211d36", + "finger_print": "9f65bce0", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "fd1e572b" + }, + { + "private": + "xprv3V3yrEdJcr8TXHNDALXmcB4oh5eyCd2sGgtCSs2Gk5RcCzep9459bbkRez37157m2Dek3wXLXoKQUAJKszqUZfg1Dteb25yJQNs39rW4WBkfgvH4pUrGonssBYsVFSgeBb1kZV4zjdzRrsMttUapzJH", + "public": + "xpub6NEQ6q8qcAaPZHHgGGU7jU16pKp7xLuqW4hWPsZBXPZUHUAvvd6nTxPjXnqwXwbCM93wJVHf2D8CL1hdaxzCoFNemJttyd3dSW3GRRFdyHN", + "chaincode": + "f36d804009820f136d6a29cbb7018d139833272b366b44253a9e9d4bb6716297", + "finger_print": "c3b20b21", + "index": 7, + "depth": 8, + "parent_finger_print": "9f65bce0" + }, + { + "private": + "xprv3VgzpqApMoFka8yEfXG1XwpY5TAADsEk7RP9qPs6S4J6CaHmc2Ehmjhp7UE3caETzgJpEes4VKs88YPcDyHD1CFURzLVFSd83FNgTsy2zZX41CHZTb23RJG6EZmfVv8q4PkH6ebcJH2g88CdP9N1SX6", + "public": + "xpub6QP1Tz9mCW7LCYeA4jsi74d8FH4quMHqAknF7wCpE3M2hhQaeZnwTgnrSGkqfAJrhNRJGL7ot5KCEAL5f3Py2ShYDkxEdQL2ySyQm9mnSuz", + "chaincode": + "74847fc67b200a7b9c4875468ed69df692140b740ec600884bd49b7893b4c82a", + "finger_print": "2fab4f4e", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "c3b20b21" + }, + { + "private": + "xprv3VvfuhdbB6cvPt4DahGRLUBXZYneBxusCpy9TFESwstownZ2KvnyMaMUMDYLSudh9Ag41ob6tJ9yHdBXxKT8izqkxdPskzy4PxGXS1MrFCR68AzKr9hexJMTy4au3rRk3ptkEaAZc7Y1rcTTYTe33BZ", + "public": + "xpub6RB3Dz8Xao9yuv7xypdhHNr39wGFdkhGuij3r56hvre2QV4BRGBW2buWHvTs2zJcLpajUTRNtYSx4TMHp2No6ZZr2WLDyf7fEbMX9Kizhgq", + "chaincode": + "2199528f2a8c14f6435b847173c307cb63e6399264353e24b5b9237d6783f522", + "finger_print": "280fa82d", + "index": 9, + "depth": 10, + "parent_finger_print": "2fab4f4e" + } + ] + }, + { + "seed": "8f3ee372eb13884d25c41791b1360db4fc76b74cfe1bef6ffada79eb1ed5048c", + "private": + "xprv3QESAWYc9vDdZwgn6N4wQ4etGFPZZ48QzVH5tTjVxNeYjrnbn73zKn9qVUpU92eTgFMe5ZsBom7oQg8My12U383tSKd7NNXsskdX8oFewS6EahnqDW2Cbk9FxjFPC1yWH8qSmqx2uu7jCW3nebXHgnW", + "public": + "xpub661MyMwAqRbcGpd3J488kWDNP1S2kNdBYi7GJ9D1JyMGobGVfuF65P9hVZ2cjHUtfdzgFeJRV58qMbMMA5MavrB5nyUqqmb3NnpgX6ne6Kp", + "chaincode": + "e4eab55990c08e23711be2018b1bcd23e913dc1c55f342b968005da5cb72421e", + "finger_print": "dab5e650", + "child": [ + { + "private": + "xprv3RGYzKukgFifSDWDdL6EySmzbxXsamzgmy5xNVmoP8A1Zzo9ERUN1kss7HdFzXYqMpqceiRL9QXCwbFS5mrDygtecvE2s8hUq8xTSuBcyBrUCfKS6Furx4omAwqxj4GdgHvyH6trMHdbTaKWKdmWpX1", + "public": + "xpub69VjfojFiyjtBdkAijoVdKPVq7Vt3GqGxtm517cD1Y6rNcmaPGgrHk7eVDeyJuCrqTKtroMq6z7nhgurVUGSxAHTyMT4CPRQrNybtwBaY6Z", + "chaincode": + "dc0eb99ce5d7a2ad337ad676d44e0d518c4bf37975bc4a5f2892567291ab4977", + "finger_print": "d6d8ea89", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "dab5e650" + }, + { + "private": + "xprv3RpUySdSnSNYAdkuP7nXvQYkc9BRNxtwCKrqYAYHTLS9ah5urS5q67Rqi8Jrzv4MFCdZtjQkSodrVFe5YPqiHM3Ccq2Use1rJtczFpf46K6jHrgAUzvrqSY9KHkYmD78GUhEMYB6RkYjuP2FcxW98Ku", + "public": + "xpub6BME1KTRbrhKyC5mP6zbD28sEfw4dy5fD89CyUAiqAK9XXcbgdfdJJrVz3jckJHwEtmGdBr9AWEcMCK5UTLNosk3W9KuRpM74jE4xHTsWmD", + "chaincode": + "fe6a349e409571a2cf5f90388b0ab3b342e3de30128f4a0b2c15d733c00b3af2", + "finger_print": "37e45990", + "index": 1, + "depth": 2, + "parent_finger_print": "d6d8ea89" + }, + { + "private": + "xprv3S2mnLLzZ8qFDrsAjhQZnLgQqdoUYmmtrxYomnezJQMWrQjMyxUpGzRaAfupjti32gupm7GwE6YC63Q7M9oKt1NRHEgkGaSCFFjBmsPoxjZDxyExH8Uw79XZoGS5WYEw3ok8vjEL7MusV89HiAB6TdF", + "public": + "xpub6C4bXu4DUep98XhRFyG6Jq6Q4w3mioWRePnJkvfLiWmUwHRzfhunsQZreYh32kaBsFBN5obhCNBkVCUSycEoeEH6vjrSMo5Wbv964S5DKSX", + "chaincode": + "c632769f91044b529780567cc2eb46e778eeb6431970d4c8a635df1d4a12bd15", + "finger_print": "e757effc", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "37e45990" + }, + { + "private": + "xprv3SyQryLF1bCf17R5JiMa8fVd933BPM8b3gGhPrRBZW7ZLc4bJ6qpZL4B5gz3Fd99NbQSp23fTQ34JdGpAqo4yid46fsCwzBbt95VfqV1PinnJbueWcJYV3Wocu8HSw7AyqKww1iqF7nbjKe75Z3tgN8", + "public": + "xpub6FEXcCMpvC39wbiMv272q2fUwmM8guZiLjA93xSMJ8xskN3i3ghyApT4CfNvtfKEWNzYEZ8bxdVWSpVcemMrHh9zsajnepEti7r6QyrcsYz", + "chaincode": + "715a08b5a605026bf132e8a856b24e07509eed08178a41c91eee1d5b2423362a", + "finger_print": "e8da88a4", + "index": 3, + "depth": 4, + "parent_finger_print": "e757effc" + }, + { + "private": + "xprv3TY2KEzKDhyHSye6Fbw4SqYyYQUzMzYxdRvKRgPcaCDMyK8Pwa5xH8jKauCXYJ86k4zBNQkaL7R2LVq78wErbwpgAFrwPZT2rDKL63pFSxTEyPsQzFoVNqWdBwcPWeK15Fp5BD48T8ATfUsQ52qu4go", + "public": + "xpub6H8JoguQ14vuvgvDWivBTNfeRYmJyyXticF1rjCXo6gtBXah1DdZ3J4WfLNrViYeAMvB5aBguEpExnpoeGTTSA5JXJcBRR4qzpEdEHv3T6a", + "chaincode": + "040e320b1007aa048e857cce9bde03b39ab877505526f79528cf9110f6c8a0c1", + "finger_print": "fb909c84", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "e8da88a4" + }, + { + "private": + "xprv3U8p7Wa7X249F5fJ5s1dNKJynBEeqaS5E1NkfDBAAJvRKxKsmbsjK2ye3Rmg2VrK4KqBUCXDMYjC2yYCtS7RuFVKNRff91CALb236XhMc5U6AgJ8s6jnKVBudmfHU1XXBhS7jsNa2Zg7RngX2J3b3eB", + "public": + "xpub6K9RKRXKfV6btjHQXRwK9TrY59hsyXbu9EsW8xeKSccMyxG3h2bKbsKmSSiFcsJafvWZJ4pqcVz2apokov18nUZZHEagPoY2H8ZfYUbwy63", + "chaincode": + "e28c05670d112250e62ec6a96b447119e972b22511ba992cbe1bfdcf7ec14350", + "finger_print": "9cd037a5", + "index": 5, + "depth": 6, + "parent_finger_print": "fb909c84" + }, + { + "private": + "xprv3UVEWTJSXpssPMBTqFncfu4MUx8dfzLBwNhnjya8YM26nMAGFcLQsFGtvxzL34FrSwyCzPWbdP6kYczRNM4qopdL9dR5fuayTcLWnsWFnsaqWE3dRDgJ1nswYmHzmZbzENdHy9hizS11kGmtyiKNViR", + "public": + "xpub6LLAMDZt5seFWM6dPp1AgzHUdQge9DHj9DiqNs127JQEVEDELAFsrqH6944V8eSppX79K3QFtTAoWhuJ6PLTNWoMtBDuMtr15VvDvFxKf1n", + "chaincode": + "1c62987f61bf088a81eb7b0e7318a951e9be607281cd774cb4aed2deb4a55c81", + "finger_print": "af44cb81", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "9cd037a5" + }, + { + "private": + "xprv3V5zRipVerrb3SvKQVVQk27bZTBo6VHnbLHSch1nUTrMutR62XeAAhoeUPX5xHTFfbx7eoZecqYWHwaYvM3zJJqbvBqAJCzqzUGwY9d7aRDf2AycRTF3fmFfqUtSdLpdgkHVohhk3agpdqgevrzrpQJ", + "public": + "xpub6NMAY2DkmqQWuckvApjdSvWy3FsmuiifuaN7yuRMLbS8m8BSNAsunSZEqLsBr5b6HyWtpk6UijcYbdb1BujnyKiCuiGDjGd5cxTaajbtapM", + "chaincode": + "411be650f2565737d44fc0a97a321310e526f679642c0311276845bbacaf34a7", + "finger_print": "cfc70bf8", + "index": 7, + "depth": 8, + "parent_finger_print": "af44cb81" + }, + { + "private": + "xprv3ViXa1nR2Ry3LhGzSTzLds7Noq1fmcd1RMFjggcn2kdJpmAehVcaMHanMaVz9RqEg2a5twqx9rv7vyXNe4T6d1VGv4Sb91nAVqZTAkUeLSf6K9tM5nqHsYeNN83fHrRWJTRPGPvrgVbMU4vpk2SDEfH", + "public": + "xpub6QUACwydbx8qgfijnBBaAYDWBQxeErcXdTn1FvWtJ95uaRfpseEs7REn7JVsb4rnNDBAMH3L6uncvVBEKiYaMNUyuw5UMYnjX9fGq8YJQwb", + "chaincode": + "c55d8bda93347f98696cec9ad92916c39c0a8867f6fac402bcc6354aef1b64de", + "finger_print": "5ad383d3", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "cfc70bf8" + }, + { + "private": + "xprv3W28uSAj8Q4VhcfcJTDAcz2LJ24RGZ968NMaYKyDYihwyVD1HU7bBn5hVV9c8pDQ5EvDurRB4k56WhJzRH74MTeB5EkQBug6T2pkCSd2ZZvUprcEQof5mCJdWiuzAZwAfK1R3CKdg1kXtKiiydAFka5", + "public": + "xpub6RVSKt5ggi3crRznJtDMzfvfxCD22vxg2ZVuuy2bMwiy7GJp3ifQCfXT3BGMpDXFmpHhqsvKMFXB96qJ9qaifpqPu18JtRQYJeKcunSZJGC", + "chaincode": + "80c7bbf69ec57a2555026e75b5eaa69cd5c6c360047d2a864fa1263f8c9245c6", + "finger_print": "b9c2fffc", + "index": 9, + "depth": 10, + "parent_finger_print": "5ad383d3" + } + ] + }, + { + "seed": "ecd065f7ffd274ded6e68e6929c0239309d53c8bb52872e446b0243c58d29315", + "private": + "xprv3QESAWYc9vDdZPx3vyYiVp1kSKHesjivwjPH4mPPxuChQT9bXydBWrheiyHbGPX1gWEWKVQTyzE4ntAxvvNyrPsc4zogCWx1gy9WyVb9uck1SpvgaooaxV9qdxbrnyMZuy8yXpqhxZzW7c6dbfrrmyk", + "public": + "xpub661MyMwAqRbcEynbpbCHpbSGZGA1a5j7RTQUpxZ7fJ1tqvgUEUzYDsEuxqJWYF4EEKgQ3ZJjs4t2d5PEyt6zeMUfrHATa2TNMxW6MwQG2oy", + "chaincode": + "2be7a13517f26ae8155390afc626204c61a4495f90813317f22ec0dc02e1930d", + "finger_print": "34e09d2d", + "child": [ + { + "private": + "xprv3QuYvDe17XaV9LttjPaggxCLkqSQd78UTZuc6NrP8X28KiESfQrxyTbUCnwW23csQ9XKjbWSrCjmVSzKjJjnhpNYizrmxEJJpYVrEVGviJW6tUxb5h2ZCBvCmUrqhbCFaErLzQkRoPiKAQzAAT8o4rv", + "public": + "xpub68H3H5HmoHi2Nnq5wLCjzj8taT3C5rfRQTsxcB4S3H9W8itN6pAL16j1sz6ZaszoMHqXxq9FXsUxGnwG6cFzLcEwPxAVEoGWuLXxtVCs6ce", + "chaincode": + "8b264abd68236cd8c433d628c7e9cc5d65052a51570e0de2e40c4715a161403a", + "finger_print": "cfcdaa9e", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "34e09d2d" + }, + { + "private": + "xprv3RobEb1M1ymng1HjgXHDy2eGmZGVCw2RCKjyGaanct536JmUuG4oreN3gSbW3VzV3B4o1TwsCTdk6AXiSikaEYVwZBvohHNfujZxeWQMugeEXuqPM6c17vyAHBQVg1da7FCvCNd94oMB8u9UEM5dFoE", + "public": + "xpub6BJDqYCX6d5G8cpNwNHHGhuMW26rFcmrrthz8UBHZjiK96YX7qL9ffA7jmTSDW3z1K8VohqHsDmgHxpo6PTzQzcUqEUiWTXzVVcVketQQLb", + "chaincode": + "91a97350936da5c85f338495e0048a2846281449ee58a27f86c8e0807adb1445", + "finger_print": "9c4ecec2", + "index": 1, + "depth": 2, + "parent_finger_print": "cfcdaa9e" + }, + { + "private": + "xprv3SFVMR8SVXL7yhCtLZwNxDPMtVwGLLP4x4wkfMtBCPLMWfEEUoSkJigtVpmSCLENeseCF95ZoxyjXPWkDYwMfHrc9VLu7nKQvbm7Hb8gNmZHXast1Udwf4kguuBUcubwax86J9HMfpW9SC3oB2xTrA8", + "public": + "xpub6CoQR8K56iQHHRHehYXEFe4GvzTjzyJ7wS836SEKB94cFeHd2VKugW3U8BPqRKvKPPmtwBZwz9V46c8Rnah7cmX9BxSEfDZZxpgULmRWvR3", + "chaincode": + "88d690e6a65032dcf873d37ed974dd9880f38f3b8996c71559d7b4d183a07b66", + "finger_print": "d8224916", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "9c4ecec2" + }, + { + "private": + "xprv3SwV9Q8FVpnxhDtznVgzmJZa4z95orLJeFKaQMCN2jKZMnAuDEKa1GRthY84qMkxUa7u3wW5bQHLAqhYzkGx3bdJn3fz8vHjr1mC5nvKakMoVkfU5UJRVGe2ifEZU5YJYRRY5LZb3v3vPYVSjoLTeFY", + "public": + "xpub6F83Y1bpUoqcG7x93cFkYew2gZH6z89MU3gQ3xUxACKHERgLYfEahuJ26tTf8XT62gZ3psxxXg3FRzYnwAeWzYL4GfM4MsSPbB3omWo6Vca", + "chaincode": + "fda8e7a4f2482b7eb37343b5dba4ab955214d7d3d9ded110986e0dfda4780469", + "finger_print": "c8429215", + "index": 3, + "depth": 4, + "parent_finger_print": "d8224916" + }, + { + "private": + "xprv3TTtujqaWjLkBY8Q5cbJgyixdL6r1uiDb5XK7JwqE5KYzoBecnemvwwRqyJCjB5oJqgpdATo1H5EHBCTBgLriyxsV4T3grcTACJMkM1UWddtS51LWGnUme6mzHor72Z2HcnDtzQY3a82sH1HonPLSRj", + "public": + "xpub6GtQtvLNpPEg3rjw1dZbzj893QJSZtE5pxphUK7NXYSEpzU8dnmuxe8ZjeHMVmeNwm9vb9a9GStNWQe23ZZT35Qa3PFwqg6BE2zadRr9miL", + "chaincode": + "746a46911f2d63f87ab16c66482976b21fa3a116f80c9e302cc816fd750c454e", + "finger_print": "e384c576", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "c8429215" + }, + { + "private": + "xprv3U5mVM1oDqVEKBjwZvdjp2Ka5rWFZpmFM9kPKN4Du7zygrCgP9eMenEsccHbuKBVgeQLbQXQzKhCNhXuDEbpw1DnZik27sMqrbwcaREFiuET6VUFKmwYvGbqXnxzZbcTpTUFmRVetuDNxscFzm7DA4Z", + "public": + "xpub6JyAkVRqZiuEN2cQpWN75RwKn5yXRhyNiY6PrEVav5te1Pn2qw1CY5KQjks2W34uyMDz1kToNZYkM5oEAGh55NqttWHeXyenft36TBzUcBF", + "chaincode": + "bcc76c8edd4224a3bb469fe9df1e9d59cac93dc95d3ee9ba390f6eeb559e4d85", + "finger_print": "625f86b0", + "index": 5, + "depth": 6, + "parent_finger_print": "e384c576" + }, + { + "private": + "xprv3UMqFogpeWWVPgRAKDRzsgyjDM9E13BwXwxPeAvzpNmvF1cVVNb1Qpoc23bxPjy8Zw7ubimoGUbHt7661Ttf4fbThmjXeTkUehWa4cPxhzbRPw17nLTUFk4SCVBCywSUUsVePZZeSCnTmokqCDVgs7t", + "public": + "xpub6KuFMdMrRj3hjRfEXM8AKbVgkBajRivuQZGFLA55gcdVZUdUqX1Q4n8J5U6mVvdgwUX96U1SnwYMvqQH2tvtPvVbCehFnJxbgPo1mMYtHVd", + "chaincode": + "11343ce4c0c2e5323e14d978e9a8c29f8e620976028dcc70e838a2fba48dc437", + "finger_print": "531794c0", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "625f86b0" + }, + { + "private": + "xprv3UtKNiDTTWRaJje6DohiXBjm9eBMXgib6MbscqSR6ABWSwXexhT8XZx4hdTHbVL8PvSesnPA3op43LTU42T6z42UysPp6wY7hqKRRgS4zkhUJJJQFz2CzTZC4GRP35sScZttnWprWLXG3Aww3dnxavo", + "public": + "xpub6MfsNkQLpXJJDXx7DWAAub7QUeUWoUevJCFj5ZyGFpTRa2LEarVdzRcqPX1bxE47nouHF8dcz7rmgyKQWMoBWXiG5MejTPP9pXEegusx2Ca", + "chaincode": + "c4c62bfeb9258fb47105f7855c2a9f141a4a63ba541805f4601e75dd3ca40f57", + "finger_print": "81a27d95", + "index": 7, + "depth": 8, + "parent_finger_print": "531794c0" + }, + { + "private": + "xprv3VYdbgRgWv921VGjRWaQn83uCRR3eny1mUi24WnNW5YadFZGf5gGri7QGxbRy8owqpuscJ3PaXmPBV9dwPjvdNS3tnLkYR7svJnGcT3A2kqmSo4jzVTmeEAdEquKNH4BDC58zgryfJZSAqW3APBZDZ3", + "public": + "xpub6Ptr3hJXUokgoYs4kZcQjgZBjc8R8zJfwMnY1a9d7tzxJaenjdX6hS4h4XDF7xmhA4zuUr1CWh9Uw8uYXtayz5ZC9A2XPEP6WEWUvkP6Mk6", + "chaincode": + "19fe35802cf17e7f82ff3d765337c4754618e5d3951751b06eadc3ac0bb52f7c", + "finger_print": "c20f3cba", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "81a27d95" + }, + { + "private": + "xprv3WFDAoPHgKpmuDcD62fy5ueRML3YDLhL3vv7GBj34oP12VLChLV9QB4BCUgEAUQYa1EoXmzMTFTA8DqsaZcsnsXTKySJ44HRpnSfAwwWyGZbV3XorNt6SprbMP9m8ftfvyhnHK9L1ytE9ScQ7G5e6aK", + "public": + "xpub6SFSsd99mM3AhueFLsLVYSMkChJWK45LvCkS16jWBMTWY6sVrGBKJn9cWhK7xUHVyx8QMCZkVLR99ReXzaacwbWqMrKVJB7dgr7fnHRMKq5", + "chaincode": + "e33109a4381ac6fef584b005faaae61e334d3d6c3fc2e36b3d1176dc714f291f", + "finger_print": "80e11593", + "index": 9, + "depth": 10, + "parent_finger_print": "c20f3cba" + } + ] + }, + { + "seed": "baa698d929db3fbd7aeb192d1a0c81ef0e1e9e72da7de0345f8f1bf8a12dbef1", + "private": + "xprv3QESAWYc9vDdZsSwkjr8D3TbpqecpXfKGZj3CCFkLs3LfcnESGZuGH2EZJuniWfpZ2rkjDbQJSC33F61Pj5bH8NWh5k7ikdP4mTfyiqdmbR5Z57QT4oPBhwMY7CHnan2wQJTEKbuZe8XbrvoHRP6QuN", + "public": + "xpub661MyMwAqRbcGaMVT1xX7fasPEsKvihi57TPCYeTjyprxWri5uNBzshVq6sHzFGp8jZ2FHbjh4j8bUkHg7jnEeeEBe6S47yN3fBA6wbFnSE", + "chaincode": + "cc3541f27bd675cc95918367a96022a878ec02d552e5a9f81ed2780977736042", + "finger_print": "b0ee8565", + "child": [ + { + "private": + "xprv3RBG7kBnRKrnioBnCevckDqPH4To4HqaxamxDFUZDwA1qSGvAuJ4r216WPVxxw3h1T9pkrpLLNNMEVAQDwSi9gqVcUfzddkTBBvwNMSrXL9Q2pPNaYmMZGFJ9czveKvrKXiFqHvwZhjFjFKaMC3qhNb", + "public": + "xpub69BveSVsobvgaWbr66XesiyaLLcdd41rfVLXDaL8V6CghTrZsa5Ezdh8p26xqkV5ytALbisG476CScqSgUcNpBXRWy7RfwwQDtmjGDweUsx", + "chaincode": + "a08e7a500ba3615f124860aaf0862f8cd7096c4b6757e0ec0451d66b21b06a01", + "finger_print": "aec365c3", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "b0ee8565" + }, + { + "private": + "xprv3RjQYs4KgykPtJL8ZYqUWq7USF5GU62nPVoevXFay7Gpi8h82676adb8Q1fmLMEfGsGnVT7E88bBDgkvkwNgxf3kRc2osvWNbp4GMHAfGiSw5jLmWeyRwKpCRv6tUabMSWpV99YHh8sUdMJPeywaVfZ", + "public": + "xpub6B48tRvPDiTxF7V98bZb2y9faLzgYeQeD9nLExBfon81ykLc4ppQB9eGy2AiekqrAMgPBmS1CLs9DeCbsBuBWwpuEWAduuPJ4r3HVuovFRi", + "chaincode": + "3e6b5a372c1016ebd7cdfec72c510b3827a045bb53ce17d33bebbfee931c30c6", + "finger_print": "6170c25f", + "index": 1, + "depth": 2, + "parent_finger_print": "aec365c3" + }, + { + "private": + "xprv3S82xnN9GSj5Q4y5ffFEPhQzS2dgvwexb5BVg1K5gY6BUPGc3gpbjLE6hcSa2qfeQz4wiSTtfXXVVKwotHaYkduy3XtJ4SPz6qgH7zGCobFqh2QxT5ZdwX6rkm5DKbsjaGBDSU3wfpyL89jHZK29Rn4", + "public": + "xpub6CNJrvJax2CEAmCfBLR1TCWF8f23PGPp1rcwUHvjapp92UNMkh5XQMgvTBcDW47TWwC5yDRzaPBrjtB3YxwZq5NaNEvfJV5WWLRuVNrA7qy", + "chaincode": + "b71bcec151bcd040533960146de918d6884e4ae44d6a00ffecc5855ae2d5a98f", + "finger_print": "ff3dfec5", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "6170c25f" + }, + { + "private": + "xprv3T2SQG9E3vpUo7Sr36HCfXTZHJ3Xao24E3k1sYuHvRDxDMYF3rHd37B9Bd844ufUPamS8PESCkmw13m9q5s8UxpiwVhWbDipTvkwty5S7QBjVaKNQKdLHZwxzsuWhpoatGzzZxbEJkX8GF93pgCytAV", + "public": + "xpub6FQiXUQhUSwVuaWbVFXSSMTqRHfwq1taJc2PRVEFJRZWKTfxdRpJDFmuYUgrebe3xKRSrP3icyCTxKQ2j7Uuud3v7Cc2kirqfAdVhn1eo14", + "chaincode": + "6c3b52e0a80831db95be2717aa9da17a852818081ef549b9e9d79f06fbb1f982", + "finger_print": "60264269", + "index": 3, + "depth": 4, + "parent_finger_print": "ff3dfec5" + }, + { + "private": + "xprv3TEiCdJScdXdT3zKHJ9Zgu8LA46E5Mw1gYcBHx9fEwP8igqB6T3utnZhqMZDako122WqXnBC5crZ7nz6oe65TTqNE4uBCYh5JXLmwAxaj7T6kXu1w4MvnQqNTZQZsvtz4yLGT88U1ipq2FL4HGHL6dn", + "public": + "xpub6G82f2ukW3Sg3X16vsftTVZaY8ZTiq8DWkFW5bfr8QLfgwpEEWd3mV6zC4qywCyWi7kjavL7rynu8oQQmABzW5i6mBgT9qa7oDRzib5XQf2", + "chaincode": + "b53ecb89fd8a172035a639342505fd50cddb7be5a39fe2a0fffceb7e3864c342", + "finger_print": "10a1f98d", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "60264269" + }, + { + "private": + "xprv3Td4VtWe5bf4Ms1KEdtagDmfJGfByaH5CJ32swHiaTWxczNs4UHn4szrXv6DVBzZiy8ZsKAoyyFhoeibgQPqYL4v7n8H6zJHrDsWzvv2DyDV5zx1w58FbByLMiJ7j36aK63hrqsjjpqX7rW8fHmaFXC", + "public": + "xpub6HRGPBqexHWdTp6dqAT214vxx5N9vAUtf1m5FRAyQf5HiAfHT1QmGP2jovS8ynLNaWwicjhyup6ZXxfidVMgunZfx3eqgtmV9VK76zSnchX", + "chaincode": + "af4c501b5e8241e6deb49823ef311c59705a15d2c93ac806913949c8e4490469", + "finger_print": "c522285a", + "index": 5, + "depth": 6, + "parent_finger_print": "10a1f98d" + }, + { + "private": + "xprv3UaLfamN3bV1PGinkW1ervCBuhkgsaGL7HJPGTXHmxQAaZKhCKErKhVccoKxzTACk6e77gDnCCyp1VzRcWmfKiQzfVU3kPoTnDvfR2H4BwhD1tfcPcP4d7QHBdZuASbsaReunAb5Yqn19MUrmGJu7Zy", + "public": + "xpub6LdMJb1FWNmvhzyYmkdaQEUHPJcZh49sE7SJd34fFtVwZi8txrZXXkbWQGBtga6GHSqhbapkV2pg63QqHRaocTpHRcV44jYhYG74KVrvuWt", + "chaincode": + "8a3218539e8be0ab75863cd3bc333876dfac5087e96950fb1f7d8b4926bb207e", + "finger_print": "4fe40fec", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "c522285a" + }, + { + "private": + "xprv3UsurvGitL73XkVzGzrCgVQN39LQUrejgQJWZLNUF1tsD8gNajrGKPri7hxPMp3ydHywyGv65WaAHEB8VRrsZYmX9u4xhqx6fhxGn62ihY7E4gmfZHPqY7SQBixztB23QfurFK8wm6fRmspjXtQyyE8", + "public": + "xpub6MeWDpFrMtDR7RYsfdurZpLBDJDyDA1ugYeSzhNgkaAj7ixEKLFdig1FbuYRNRFbT8QzJoTjdwMiTbTwYnHANxAt2bevCngtdf6pNkTrqqg", + "chaincode": + "6addc06bc64c23ea0ddc0d9ad293de6c63a500844b82e700bf549ba68c95b363", + "finger_print": "106d9ac2", + "index": 7, + "depth": 8, + "parent_finger_print": "4fe40fec" + }, + { + "private": + "xprv3VJJ5VtusVxm7at6ffXMu5Y461eRrTAvCEm3tYVCf6ZRmPpzcA7aZXYKgaJCgoTnu4kSKKUmHpmX8qxsjkXWzSHPHphARbuBMPWqdaiT6BPBXyTSnypQo2KD8v3HYE3LGKfaJGSWN4ZEVuV66KsuX8H", + "public": + "xpub6P4auAVXDa9eqry457xWH5XFN1PPchRSNAzDbXiioVHPqTHuDhNMzwd7otprgwrgv8uV2bmpf6qDGMPHXgJrW8v3T26R5yiptkVDPocr4J2", + "chaincode": + "f61c86f2746cd391625f60984ebd8b6bf82c2681528c4fd1c22b4cadb92eee6c", + "finger_print": "1eb519a1", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "106d9ac2" + }, + { + "private": + "xprv3VtXKfeDfqtK8qdTztK7WwiXeGsqwxCPMxtEjz5Hxi8Vx3TJKmaqjuYieaPFihMF1Wt7R2iBwF7YsVyxUHxCF99XdmAkFPuPZWivZAe4pZ8VQJxyixuf9AMJQFnPqtCc84B8euoyrhrrNEybxcU4SZ3", + "public": + "xpub6R3opz9DxfGzH22oAri6odnQZTAWgg6KzFS7tdHzTETSezXrfbDL1KqUKLQdSTAzj7RkGGrDNpfCDL7hzeUZhkYmHWgJMnnoFZFAFZoE5Ds", + "chaincode": + "184fd214d70ab249af1a90d56ba4d86adf7de273c8ade973848e0a2a1a77a0a0", + "finger_print": "2d51d0b5", + "index": 9, + "depth": 10, + "parent_finger_print": "1eb519a1" + } + ] + }, + { + "seed": "f48e678e669e162a08e695232246f2609e8082eb9f94f8667b2aed720acc4974", + "private": + "xprv3QESAWYc9vDdZi8KF9q2u2QHbVfhPdU8Khc5zcYRkGURxeDbQdG9EYefTyYpxyMoUkWQsKv1PYQsZhjgGuVitk29mZxxdC5gzaBixvUX1YnPyDt6A7Hk7V33jdhR8gc3UMUoHEuBkqC5Xfy8MUWhCEX", + "public": + "xpub661MyMwAqRbcG2ya2XAwKXDiiPfNNGf6nfstPNaoJQrQTv4JZLtPhWJA7MUDz3FbH8Zkv4mJasgWUygrPsn2RGfgekVPK2cnWrXvKRLdRhP", + "chaincode": + "95de84134ed6afb1e148fd97b3e46d7a81ed475b424528569a2360a913cff7fc", + "finger_print": "d0b424c2", + "child": [ + { + "private": + "xprv3RFHVDGQ1dsCXPQrD5VatdfCJYN2EmkQuzZRXrz2X8qwVqvTEAZpXfC65vvXoRffTonrfTmwz4HbgJRFLvu5pw8HEr8VFXbK793iHkbymLXBTQwxWVKw2buSZ6wk9xqQr8YCtKcs3SLBesBDgHCe7ad", + "public": + "xpub69RUEtCpVaTSBWbw11jr5jmzUPh6NLNmXa5gLWvL1F9vrzg5zAZZ1uAZwr7FP4rHRN67bFoE77cGNrnm3QVwyTJeCduJoegsPhDcyX3AUTy", + "chaincode": + "ec6a6853b5e176c8297e2892c0732cff2df412eeee4aa4d61c7e89b66a00e15d", + "finger_print": "70b0f3d4", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "d0b424c2" + }, + { + "private": + "xprv3RbYcydBicBidixrvxbP5KAPNKFoTa2aK7JbESKhoMR6KnyGboqkotuqXuHkLQM71GtaFaPmgvdNYv9Z68U8tXKvaG81SnspEdZ46JzyLqB7NRpRFPcxoxN1btw9AHNncFRa4aNPf3NS8GmTJ6Q8rJr", + "public": + "xpub6Abg6NZ3ug4qgJyEvWFkwmmCi2Hf4YYg4fVofY6vTz3STcPDv4eALVzWFoMf9JDzcawMBucfTDq7y4bH3X9JDPGuGcRstgJk95sjMY6poTb", + "chaincode": + "91dc2a738e45c4510cb1357ae798a85c6d3b99593db6b5d7a99a8c5064134868", + "finger_print": "50d1e8d0", + "index": 1, + "depth": 2, + "parent_finger_print": "70b0f3d4" + }, + { + "private": + "xprv3S5vt8LzRjHkUbpcGSC4sqQVMNWJYtHgRBywWd2bwePqwoChadRit9y7wv2NxinGZg4Ho8JqxE9bhxXY6Dt2ZqJ9zMyK5noYHbgSqVHSUZjG5eo5MH8B9FcMoSooKfQLJajkXqBTGiXuNLnWoraLjvN", + "public": + "xpub6CFDuJrXwgNygUp5KtmZedLw6heVZribW9p2ro7XsLR6AMTsoXaY2RHZM3VThqV2byKtbS8mBAfq4VfcjFmiqHxoiiJq9guxT2DfX4RRNtR", + "chaincode": + "828dc67cfb18b0b6fe9f362efae3ae21ed691d5e7032196dfd896deefb9cb8d2", + "finger_print": "cc0629bb", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "50d1e8d0" + }, + { + "private": + "xprv3SuxCNNEP2oz8ih9dB4fWM8khBu7YvKjLdDcFnN4vzN1v7uGDTA51HTgjhPyDTj4vPEtWNrWKnxdMtjamGCVU7R2e59tJfoNCGwEN9wYRuGAk4fqrjgw25v2VudY4e6XKG9XW3NQbeN8v1VrpTm2Zod", + "public": + "xpub6F2t7Ae1RNbACsa9xcLG6gzyr8PDair2ZFPeHnkQxo1aL9g9d8zzhy2hRwqR9Y24vaxEyTEQJuHDAGYFSFxXwEAUkg68aChtokg5ANcfmwi", + "chaincode": + "0f84980ba9187d082c7d39aa3bbc9e5bc665dd94b4499b4edcdb41529b7fe41e", + "finger_print": "74e4edad", + "index": 3, + "depth": 4, + "parent_finger_print": "cc0629bb" + }, + { + "private": + "xprv3THLaJxz1Kx7s8KBQJkC9zSgDX9t5tvgVD4f7do5QJqqtWskcr28CciahMhzksaQ9KKaEgPAVm5xKuvNZLq7F3piCT8q1zCuQoPFyxXEUvJqYmxUSLVR54VPeqHF1Zkf2wVxLrcwxHwrNtXQN4L2cM3", + "public": + "xpub6GGsbL55zfYPSaJTACaeGNgtVXUSf4LoLjfTDXYu4zVXGy4FboYreR9ZYkEnAQcW7J1WWycGGwMowZHAEEb74WRxa4FpN3i1CwnBL9MZnHB", + "chaincode": + "cbae14dc615c8763321fc3c780606bb51333381dd94921103c4418b310d70c2b", + "finger_print": "53bd3a67", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "74e4edad" + }, + { + "private": + "xprv3TmZQXhBSo7MSbue5eRT5wohUUAeFCdHBr7gg6vUHHHxcmzXiB1U2UYSgJ63PyJ6wgiVi5vn4mbLXGEE5XWhnJRJfmQtbubhL6i7UTUZKRD6zeK6MMAdALsdCKhwqK9WFdH7NNCjVn8EErhTwsLxycW", + "public": + "xpub6Husf8dAx5q8d1ppmgVusijSjLqsTJMX7jK3M3Qq4PrwSQPWXPNnqvnsusZnFLQ3e195A25VEaE1eTh4PmZ4X6aWGBQ1381PYN6CdwjKZAo", + "chaincode": + "e6c1f66bd994a67478ae9e7fea4e3020c06c2fbe4985ef8836417472bf63ff7c", + "finger_print": "87644ffc", + "index": 5, + "depth": 6, + "parent_finger_print": "53bd3a67" + }, + { + "private": + "xprv3USXAUujAcVRh3tXMFPgZYb4KTfKSu3w3j2joCquv2uRvjnUBHpdAGE4qhaMjCDqV5xsXnnsjf1oLiMTg4JLhUwRpxSLnYqTCNzuaD6tWy8BrKXXER62JoDLeHDfQ88vTic9m4Je9U3CTLGX1oTpfSZ", + "public": + "xpub6LB2gTRRNdBGCEG8YvfDMui6J4i6AJzeg7MWEEBvaYDcmeWdfzVigFHZmhNAch83jBc882oYVH7fUhivrM6j4y6ZZdqnJdBvgab5yt94y1p", + "chaincode": + "188d2ddb3bcc190680215311d48a79fb53f3dcb871fe798602e7873f4d6a5342", + "finger_print": "68e21706", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "87644ffc" + }, + { + "private": + "xprv3Uw5S7n9pRRWjQoEgkjQxFeW1L6ARGMY5NxxedUMfXhgyTiWadHQXMvZMNckDsTGdwRfX4UxhEouS5wAVV1ritvbkaMQByZbeRXSbcmoEzvU9TcHKD8CgoAVeWMT4uR3PwHZsayPhYgx3HULGde8PWG", + "public": + "xpub6MqABUpCG5oPdBFGR3KuZrqnVQiq4UqKvH8LUtFqZAccnPm7RqdE9W2nsf3Jns61Pgfpnn1v2u5RAg46vtzZWo2o9BmiyidYBkuz4vL7kGh", + "chaincode": + "e761d2fdc42b3bbbad498a356d36c6d0101f21459b7b05c69b824440b9f94cd2", + "finger_print": "2ba7235e", + "index": 7, + "depth": 8, + "parent_finger_print": "68e21706" + }, + { + "private": + "xprv3VMk3m95e1y5xMzWUBm2buqRBas1b8mZfaPvjTh2szcGSuCgV4PuRNfG4rw4VeGi8VNQRtHR2miQG1YiSKgvCpHjk6GXwXyTZkjm63rbZq7RaavVs4K5HmSZKcu8y9Mq1iUFoj7HwreVYJan4D27KxQ", + "public": + "xpub6PGC4Q1V7tT8pUyrC3qR2mTnU52ixkveJZdL7a4jNTyXqSMaVm9ya8sUqdaLKhUW8CfC72F4oCZAzUXiy7BoqTSoP34Zhfifh4t31ykgrSa", + "chaincode": + "e893695d2120dbac925e44f15dbe61797fc47a563d230368de79878850d8aa3b", + "finger_print": "d497026f", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "2ba7235e" + }, + { + "private": + "xprv3WHZH6BzbkJrNx8p9Eg2BQHsizBTjgKbNNHDLB96MEu1U4vPWrdc36cVicM34uNLAfsV8uhrRnKnTNs4dcr1BXEaYwDq75KnKU4qQLDQhrGe8yeXqjka9Dxh1bvDFNty2xR9ZsAnC2BNFDoqtKDSrqc", + "public": + "xpub6SPM4AwBTNHUxnsxbxYaqBdnL1FZSNsAMQ5GTqxrZCPRTry4RkaiJhz8K6xYa5yxqtsEDZJP3nKc78owcm4fjDQ3gRCiRWACUihmFePW7Cm", + "chaincode": + "2d597b4d11d925e2966c21ea108243d9abc561a67d158a211a7cd1657a433a47", + "finger_print": "247c222a", + "index": 9, + "depth": 10, + "parent_finger_print": "d497026f" + } + ] + } +]; diff --git a/example/lib/test/bip/bip32/nist256p1/nist256p1_test.dart b/example/lib/test/bip/bip32/nist256p1/nist256p1_test.dart new file mode 100644 index 0000000..2c6da60 --- /dev/null +++ b/example/lib/test/bip/bip32/nist256p1/nist256p1_test.dart @@ -0,0 +1,27 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_nist256p1.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void nistTest() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + var w = Bip32Slip10Nist256p1.fromSeed(seed); + assert(w.publicKey.toExtended == i["public"]); + assert(w.privateKey.toExtended == i["private"]); + assert(w.chainCode.toHex() == i["chaincode"]); + assert(w.fingerPrint.toHex() == i["finger_print"]); + for (final c in (i["child"] as List)) { + final index = Bip32KeyIndex(c["index"]); + w = w.childKey(index); + assert(w.publicKey.toExtended == c["public"]); + assert(w.privateKey.toExtended == c["private"]); + assert(w.chainCode.toHex() == c["chaincode"]); + assert(w.fingerPrint.toHex() == c["finger_print"]); + assert(w.parentFingerPrint.toHex() == c["parent_finger_print"]); + assert(w.depth.toInt() == c["depth"]); + } + } +} diff --git a/example/lib/test/bip/bip32/nist256p1/test_vector.dart b/example/lib/test/bip/bip32/nist256p1/test_vector.dart new file mode 100644 index 0000000..0f971ad --- /dev/null +++ b/example/lib/test/bip/bip32/nist256p1/test_vector.dart @@ -0,0 +1,1322 @@ +final List> testVector = [ + { + "seed": "e08dd6e310c1d176fea25e4bd8d0bfb8627acb45c4f078d89f91aa1fb67da86f", + "private": + "xprv9s21ZrQH143K4bvBcRDqsx6QbQa7sY513VK9S8fdruT8keUycwbipAbp43zKWPL84kamcgLT4fAqczt1od64pWkpu1JYG2PSCPeqvaZ5irQ", + "public": + "xpub661MyMwAqRbcH5zeiSkrF6399SQcGznrQiEkEX5FREz7dSp8AUuyMxvHuKnkZeGLAtmT49QNqkJBG2zigWxwYh4hqCSUZ6E4CVvCn7eVQ6C", + "chaincode": + "ff89d20b3bdf4df717994169c582c532728b284d50111a2e15ae10a8b768c638", + "finger_print": "45fa7fc4", + "child": [ + { + "private": + "xprv9uQyiREtxVYD6XrTQt5iQyY2xZv8or6KNQkRVpwqzFJvikgs2pSTHfB9wjFCSomRy62TVbxHqpPoBmDbV99HWn7KbALEEA3hfMA2afqcM9y", + "public": + "xpub68QL7vmnns6WK1vvWucin7UmWbkdDJpAjdg2JDMTYaqubZ21aMkhqTVdny39HfARhR74NayqNCnMRNznE1KA3AG6NMbFkHzPngNbHpHmNzT", + "chaincode": + "51965e39403c326c4f64239c50857594b591394e63f76005e8ceeccf2a3f6967", + "finger_print": "62c08741", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "45fa7fc4" + }, + { + "private": + "xprv9wWP2bjQRoknJLMdCUof9NxBwHJLTvHvE3YSdZtCHzMXnThMsKJb7b9vnssV6XjgkUNAwdB2s9otkx2jkPNQVFtyESqeQ5U369mxL2WG1gk", + "public": + "xpub6AVjS7GJGBK5WpS6JWLfWWtvVK8psP1mbGU3RxHorKtWfG2WQrcqfPUQeA2qPWuAT1yxStzZZ9uegHeuKWmscFeKzaAJDdizDHYxYh4XGne", + "chaincode": + "7776550c1d8cce8b9c8a93f08d24cc0a4642cb6d389d671b11a1a9670b21f0eb", + "finger_print": "87301252", + "index": 1, + "depth": 2, + "parent_finger_print": "62c08741" + }, + { + "private": + "xprv9yf3o9xqnviyUcNpMz3Qo9UEfLbCAWN7F71j9nLv73ZtLJoyXt2PDePNTpWLwiJt1WiCxwN197PSbwr4tvnQo3BAQm2zXKakkCgFvg1AaBB", + "public": + "xpub6CeQCfVjdJHGh6THU1aRAHQyDNRgZy5xcKwKxAkXfP6sD7985RLdmShrK57ihQSowD1YkBXDh6M7hEKfqfBA1ChLJiGKV41zxQXYqqoCpkc", + "chaincode": + "3470fe7bf5375de81f3fad4031827e98b94784011b13fd34a17f6d60a2dd75d1", + "finger_print": "ed63f251", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "87301252" + }, + { + "private": + "xprvA2HkicYFP4H7wsNUw6xpa9DGqSxmmJaXG7m9ahAE9o7LPy1M1gTwsqHwLibA6158UKmHYWfXssn4cexeKqdHtmcaicDMvnMBwgiaeYgMgvM", + "public": + "xpub6FH78859DRqRAMSx38VpwHA1PUoGAmJNdLgkP5Zqi8eKGmLVZDnCRdcRBxvTsMDZot11qrTnaAzpV8MKSLbrtURmtpxhWju1G5KSLSU1b5D", + "chaincode": + "7a839ab2eb42118104e21d2d8d51204cdda172662f9f8c0eeb3850c99c9c986b", + "finger_print": "032b0ad2", + "index": 3, + "depth": 4, + "parent_finger_print": "ed63f251" + }, + { + "private": + "xprvA2T3CDxvPNAWYPqjrKmWpqUA7i43RWk8g4QGbfSTPyU1YR8vN3GKKMyBfoB8hA8qryxc8tEXWNURiSQW1Ae5F2YAq4rp261Ck9d6GyhtoVb", + "public": + "xpub6FSPbjVpDjioksvCxMJXByQtfjtXpyTz3HKsQ3r4xJzzRDU4uaaZsAHfX6rDHqey6gxHgoZZTL9yfs2CvNqxhEn8AEgp8ZsDEaWkbJfAmPT", + "chaincode": + "4f83c1e2111fd2890b0576ad2e86f44835a9bc6c6d00069a80435dd30ff077b3", + "finger_print": "a07e7728", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "032b0ad2" + }, + { + "private": + "xprvA5VF6PFprY2kLD3V2JC7DcAMjN87aQPFANbHDQEQwEQQgtFDbXGjfqh68XL9njpJah6Vw73eRVhr9iMuJPZPnLDck6XMRkKNEnFNkiwwKdh", + "public": + "xpub6JUbVtnigub3Yh7x8Kj7ak76HPxbys76XbWt1ne2VZwPZgaN94azDe1Zyoq66wku6aL3UGD7sy3yA7u2VVyJMZ8NWDcjpKyHw5WQTKrzJ1t", + "chaincode": + "5d1d9f8cadef2fdb8aaf3e799385f10413a69a6c0729a1166a95fef0b060e370", + "finger_print": "cb4aeee0", + "index": 5, + "depth": 6, + "parent_finger_print": "a07e7728" + }, + { + "private": + "xprvA7gdC9pLZ16tUCNjHBHYTgt3MJ1hg55FPvfw31dzepWHyAJxjyMxMyAgidkja918UqE32QPhJcLwxLbACvaCqjbBTzfBn81p5FMcHHbC3WY", + "public": + "xpub6LfybfMEPNfBggTCPCpYpppmuKrC5Xo6m9bXqQ3cDA3Gqxe7HWgCumVAZuqHs6Md5T4LBb4X4kQEft5KHqVmu9oJD5v6Q1c5gqNL9oNbjbT", + "chaincode": + "b80179db9f40edfc7bc854bd1dca1d573be89e369cd4f9469f704d7d9d688e98", + "finger_print": "5b70121c", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "cb4aeee0" + }, + { + "private": + "xprvA8k5KpsjekcVfFS5qhYkiy7UMLcDDgNcVwJDsANQsZcb6htas3Tzsy6aWzfR4wqE4P5z1qJa8KKqXYvHkefUF5WKaE7boiFTEvZd3biBhox", + "public": + "xpub6MjRjLQdV8AnsjWYwj5m674CuNShd96TsADpfYn2Ru9ZyWDjQanFRmR4NEhyS8jNkDovDoY2gYgBH7vnZ8cq3MKmiHvbe69X4Ak8P7NWRVP", + "chaincode": + "b841faed5b8ba088af208dda898446a21c0392ede3913b909a89205a763c6a57", + "finger_print": "ce2594f4", + "index": 7, + "depth": 8, + "parent_finger_print": "5b70121c" + }, + { + "private": + "xprvABU7UokBcnf7JJMS8tKoL1o54qqVB5qivumCYsy7U91DWthF2zYc9T9pbiVM3Te11kUzkKAS7syiutmD5wvjPEFmD4NXaaL1WjeUM7XvJ8E", + "public": + "xpub6QTTtKH5TADQWnRuEuroh9jocsfyaYZaJ8goMGNj2UYCPh2PaXrrhFUJSyLdw9Zh1DZz2DXtHMgZeQFJjAx31AE4os9UYFJtkJJBiXSD5Dt", + "chaincode": + "4d0a49f37b25b3b4080806c18e84df61da86326f4a9c5afff29adc8a338f993f", + "finger_print": "ce47d63c", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "ce2594f4" + }, + { + "private": + "xprvADMJeVETCvBdoessEzfSM6Pz8QtHZggkKYNQPYkANtpcqihMVj1S4K2gczkkWankrgyRZxPocE6QcsUCdYPiNtn5oF7QzpbA9JXCsL9RmRA", + "public": + "xpub6SLf3zmM3Hjw28xLM2CSiELigSimy9QbgmJ1Bw9mwEMbiX2W3GKgc7MAUHrPsqwC3e1XKkuTjygxrpJY3osXbhiUJj1nXefNsxLGSQydFf8", + "chaincode": + "2dcf6e8ffc883832aca9f66eb42c49561efc5b5b1a53463e69db156fb82f0921", + "finger_print": "18c747ea", + "index": 9, + "depth": 10, + "parent_finger_print": "ce47d63c" + } + ] + }, + { + "seed": "272ffbdf42df22fb882695987afbb5537ad7076df39fa8c5caaa3803f03532e8", + "private": + "xprv9s21ZrQH143K3E7DyrEoCMMDYWaWg3z1FN1X2gbVWnRPh9XgzQtoBd6UiXJGb86psiuAs4v9hp4wBqUXJfrrXDqKfZ2TAKi8vYmV4d1J8Rq", + "public": + "xpub661MyMwAqRbcFiBh5smoZVHx6YR15Whrcaw7q51757xNZwrqXxD3jRQxZnrKgBMwt5FXhTuueyPGKJfJ9C3GuSUwivC7snYDoNscXARVnZY", + "chaincode": + "7553ed1fa2c0c13ae7f5a6a0bb7e1f47724bc85520b3a8343f9b7297bd060a33", + "finger_print": "1acdd8bf", + "child": [ + { + "private": + "xprv9u6aBcJenW5XXQ3bZHJmapTBJTVo9YY9woWYagpnCWiEkCpLKbrKWoubRC1EoraVHgpLpNVdxxMUCyEDFd6eR3jZUbKqXG9RLcVwtZR4MRV", + "public": + "xpub685vb7qYcsdpjt84fJqmwxPurVLHZ1G1K2S9P5EPkrFDd19Us9Aa4cE5GWDVKYGJkMcxgUK79i4cHRkujjDs7sAznDJC1GjCD5yiNQnwn6u", + "chaincode": + "76aa97cde2400c2dc18b75a04a9c806871257e2c9c77fab40592b9c67941e854", + "finger_print": "775f0764", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "1acdd8bf" + }, + { + "private": + "xprv9wfArgsEB6qFxngXVbZj4hrTJjX1DmyP1rJEUYQwKLfv54aQvyRre8MfHEHPyDG9hhUCxqkBy9AVpszF5zhCyVPtbcAfNHBHb8q2rBsVkQM", + "public": + "xpub6AeXGCQ81UPZBGkzbd6jRqoBrmMVdEhEP5DqGvpYsgCtwruZUWk7Bvg98X7WCBVJoYYg1b2o6FWUAN1Pm6fqwHkdqxAGhnSze9UFEUoXoWv", + "chaincode": + "e89af61edda1e9b26227d93146c4cef53ca34946b386fe4c9e0a84440173ad14", + "finger_print": "4e67ad76", + "index": 1, + "depth": 2, + "parent_finger_print": "775f0764" + }, + { + "private": + "xprv9yEqnUPbgGANvryh6dcKwY5XHApjfp6sUM2nxpCmHLisiXLs9FLF4WpCPtxUGaRPGXXEhiCJY9wPCYr7qdfR7WV7tjJq9quu7rUjxcqtcRL", + "public": + "xpub6CECByvVWdig9M4ACf9LJg2FqCfE5GpiqZxPmCcNqgFrbKg1gneVcK8gFC4VRW9GLU1Tknt67h9evA1YhfoijXzNFQV5Ei7zyb5GSqZjbbH", + "chaincode": + "4419961f8067e6f7b88919fba7a2df8ad900a20650b197d9da680ce9f0082e35", + "finger_print": "32389342", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "4e67ad76" + }, + { + "private": + "xprv9zuxmMNdSGMLwBWd7D4NBWb7zVFNWhTJxF27XzN8ea6vx3brpftwQoFLN8kxTHbbB1qhsSymEzEp68qQXBbygLpX8qgHQUR35nD7y8Kb41h", + "public": + "xpub6DuKAruXGdue9fb6DEbNYeXrYX5rvABAKTwiLNmkCudupqw1NDDBxbZpDNSZ7NprR2xTJo1LtknGZ6DrpTqAvRtny92sWiNiG7enhq5Xjz8", + "chaincode": + "47021ac1d9d4bc56649ef967ff73095e3fe87d9faf982ba8efa04bbc0466fe5b", + "finger_print": "62ce1ea9", + "index": 3, + "depth": 4, + "parent_finger_print": "32389342" + }, + { + "private": + "xprvA39ov6MF35Zbyk1QFx7Cuc5jEFUx8QKJdTWAkFf42vjZD9NoKA3u67vUyKCuqqrBBJ2ewLfXwaLSxDyCyhPvUH5xxpmsXQKCvdo7t7dpvX7", + "public": + "xpub6G9AKbt8sT7uCE5sMyeDGk2TnHKSXs39zgRmYe4fbGGY5whwrhN9dvExpaSq4pPA9ai4nAg6NsG3Aamz2tuy2BcLyQVKnTDX28Z3N6GSeFL", + "chaincode": + "dc1786c34ecdcc5524af97ae8366659c27a833f1b2a626421577b4de95f7f654", + "finger_print": "7854c481", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "62ce1ea9" + }, + { + "private": + "xprvA5C82TBpkKSavc3PudGRbanzaFBdmsKVo163XGE3LXy26M2N5jYy95JuQwH6SUv7GZw8wenyGCt8XGco8fswN2uc69oCskhCx87t7mG48cx", + "public": + "xpub6JBURxiiagzt967s1eoRxijj8H28BL3MAE1eKedetsVzy9MWdGsDgsdPGB61eABL6VuQkLxGAHWCE5konJfsssB6JXWgAwFbJMG5fT4q94D", + "chaincode": + "c932a17dcd01b24cba87ab88cfc674f43cd41258c7714d08f6608cdedee75cd2", + "finger_print": "5738dbb0", + "index": 5, + "depth": 6, + "parent_finger_print": "7854c481" + }, + { + "private": + "xprvA6q9EJmhJVnzjnFq95sSGfn6sTZs5XuPLmj7khPvo9hYAPKRMyN3FWujYFL4PMbKd4xkFsBAQg2PgP9BRYLAVb6n9ki8Ak1TywNeA6yKKuP", + "public": + "xpub6KpVdpJb8sMHxGLJF7QSdoiqRVQMUzdEhzeiZ5oYMVEX3BeZuWgHoKEDPXFdG7jHTyhdRwUBPd9M2grNzRpPvzagVZmkcadTxdA5a54Fsmm", + "chaincode": + "784e960271fe3e853c851658cb2426dd3ea0c450d30924b7dd79a2d6555e3771", + "finger_print": "02fa9a59", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "5738dbb0" + }, + { + "private": + "xprvA86N6DqN6wKUEZb4s8UtLr54qWyJVU1uPwqG9ib3qRhZW8cv7hZT1nD74DoE18JszpNh5Pxz81Gp4V1p6rpLbL4WADm1gVwJ5cCRc7gVbMH", + "public": + "xpub6M5iVjNFwJsmT3fXyA1thz1oPYontvjkmAkrx6zfPmEYNvx4fEshZaXauVDP9CMeizot4ZJKYRJzxJG5n4KptL1Etpi2UoJhxpH2Q5cCTyT", + "chaincode": + "5e810ed93dfe2fe06c15f1b31c57767a8f8fc90fbc4ba10857147978fa88ca5c", + "finger_print": "d53f0f4b", + "index": 7, + "depth": 8, + "parent_finger_print": "02fa9a59" + }, + { + "private": + "xprvABX92HxtUPP3PWB7b3vyLAB2BrqnSwkDz9PB3sVCtsa7p5ezmR6bcyL51aK478zzuNBk33GbyTN9LiGo96vJzLsStuCWVUKUwzRnaGY752k", + "public": + "xpub6QWVRoVnJkwLbzFah5TyhJ7kjtgGrQU5MNJmrFtpTD76gsz9JxQrAmeYrqabh5Nr4xCqg9okQXNHcs5xBsLKQnPSg9XerQrBzkB41952hPY", + "chaincode": + "39a51157e32a5fc2a25316b507c021850c335ebd0b0e638db1d8d6d5aba56b5b", + "finger_print": "dce5c53f", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "d53f0f4b" + }, + { + "private": + "xprvADTY4kQSkyVedqSgGQ6qEQtbp8bhpeTYsVSZnXfqHG4CWheQwLafQpZR1bZw1HNKPdCaADKbiFbeFnarfs9Mm4U7MvQRExdKP8fBcju5igi", + "public": + "xpub6SStUFwLbM3wrKX9NRdqbYqLNASCE7BQEiNAav5SqbbBPVyZUstuxcstrtseP46SQpTpehx7H7kXW21TWueydZ7tLeoV52DyNSh26GruGZi", + "chaincode": + "25b6c4115769a9793aa492c53a9e2986292c00c67c44c269398d508e32eb4ed0", + "finger_print": "d8b4ff86", + "index": 9, + "depth": 10, + "parent_finger_print": "dce5c53f" + } + ] + }, + { + "seed": "6e86bb95af63a72823f599c54e02a48167d734f58da24d38c386630c4b8e8515", + "private": + "xprv9s21ZrQH143K3gUhLGd83w4RqFGLRLQwvj5gobVb1L2JFhEWKSHctQ7bfpoyUR7CohnvVK5pAdhDSDFpMk5uGPsGgzWAhQ3apZyZeVaaXec", + "public": + "xpub661MyMwAqRbcGAZASJA8R51APH6ppo8oHx1HbyuCZfZH8VZerybsSCS5X6vgAmFqvNJpW35RjmeHr9V2JpeDBx1NwDSWBFkgoH8opQaH8k9", + "chaincode": + "a2fe96e115c77694dedfe7e9e70236cd5273950cabf64e16f57032768b7a9362", + "finger_print": "0491efe0", + "child": [ + { + "private": + "xprv9tw6RcFu5v5E351Fyxu1BhsEiJ2urBehTvvDDuVPVohuu1xCQzfKVuNquMhjDLqbR6XhV7DZmH4g7nV6Vyg2MA1aWVh3iHecGENxNdLdn87", + "public": + "xpub67vSq7nnvHdXFZ5j5zS1YqoyGKsQFeNYq9qp2Hu149EtmpHLxXya3hhKkdCLnccVHkhcLJk6sTvPGbjbWi8McE4H1z5QjdYhDunr1GUmtv1", + "chaincode": + "b77ac865d2e66a3b4bbaf4ee74eefd8e6d26686fd47a0115848ca1b6c4d6953b", + "finger_print": "25d88106", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "0491efe0" + }, + { + "private": + "xprv9w4R4Ho4Qtsyat8UPMPNDr5Uin9m5eCFtE9WbdDPfHuD8KfbWoFuZYLVmF1zqwmCz5x2xpFanZ6tNayozuPqcEbW8q4Ybm2sLXtfaRtkqLq", + "public": + "xpub6A3mToKxFGSGoNCwVNvNaz2DGozFV6v7FT57Q1d1DdSC17zk4LaA7LeycWHJ8oN75uL9sRwCMeoJKCRYEGzP7dzPYQW1RvXJRUfPrFL6GPK", + "chaincode": + "e4cb49a9c9f99a8a6ee783982a04855a7573bd4e8a206426002498b07685ef26", + "finger_print": "8ce0eb5f", + "index": 1, + "depth": 2, + "parent_finger_print": "25d88106" + }, + { + "private": + "xprv9yhUWPznuF47xAhMp7s5xzwXe6z5RTe987MET5fT8xbGaNBPAtGRvDSgQzxVtvqiWuBiJAHxoQVruv4QEsL5DXQ7PxrNoAyPP2TRHCEpyot", + "public": + "xpub6CgpuuXgjccRAempv9Q6L8tGC8pZpvMzVLGqFU54hJ8FTAWXiRagU1mAGFX7aatBwpqnXo1Z9bEDwKtHiysFudM2U1TLgFdjbM45ymM8P8G", + "chaincode": + "018d646b75077bed67442c2f6812623831b1cb2157c5e56981746027ef075ec3", + "finger_print": "e5bfa0e1", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "8ce0eb5f" + }, + { + "private": + "xprvA2EVmM23wTSuKnzG2Lzzahevkn9itdxjXcB3Fy8AV4pYsFYJi2UUudin6BbTDiFaQRycEeF4XjhaNU7dGcKbzmCv2XVeaHQiinJrXkuND7K", + "public": + "xpub6FDrArYwmq1CYH4j8NXzwqbfJozDJ6gatq6e4MXn3QMXk3sTFZnjTS3FwT4Sj5ZArwnKAHgY8qQ2JYWTU5kPcCSJXsG2NZaKLcJsQtSsxY9", + "chaincode": + "84022d65ec9554102ec479d5b74a7b6d69dee865c7028c1198325d6ed0f593ee", + "finger_print": "5296523b", + "index": 3, + "depth": 4, + "parent_finger_print": "e5bfa0e1" + }, + { + "private": + "xprvA32tumq9g1SeqoJnsTZAqzL37geL8awWorMu8uGyk3fS5seJ5TmjKTy8nar9fHiTdbvt7QAHXbLVgdUjTEKRbHnxkEuJLrVdgWPCWW5B8WR", + "public": + "xpub6G2FKHN3WNzx4HPFyV6BD8GmfiUpY3fNB5HVwHgbJPCQxfySd15ysGHcds5gBQzzsfTHyKCgwYfiDAaAxjDUGZNMjjRMpdm9yokwfmybdnN", + "chaincode": + "716ddacf87f9c236f338a346c3e826b02ff4216044ecdc8a7864fb6fe337a14d", + "finger_print": "aabbccfc", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "5296523b" + }, + { + "private": + "xprvA5ZcH4y4tyXZbHQKpEKzNxeMauCbXh7CC1Mqysf66p3kiTRH2gNZubQEiRKjYBGh56zUBhTWkBwHagNV4NvXPmXtVUZaKDGvLBsDvMEGLtq", + "public": + "xpub6JYxgaVxjM5romUnvFrzk6b68w35w9q3ZEHSnG4hf9ajbFkRaDgpTPiiZi7kTNDXu2mbHhURKftFMHEvYoZZYt4jsBpJ3AXt6rtTHRvyRXp", + "chaincode": + "cdd34e233698dfa5404c1589f4149d51af7133faa30f4a6675ad8b30d054af6a", + "finger_print": "cdb070e7", + "index": 5, + "depth": 6, + "parent_finger_print": "aabbccfc" + }, + { + "private": + "xprvA7heT1sfcHRjfnJFKKGcrxxWJfyDGDLDnSLGT9bquvKdNok2T6prK49ofpVhXW7otCgj3Ejqid6kzJwimwerdyYdx5vs8R9qvbwjEc9aqbp", + "public": + "xpub6LgzrXQZSez2tGNiRLodE6uErhohfg459fFsFY1TUFrcFc5Aze96rrUHX7cS4RESfS4w7FZbzW55cuqbvgeSpPNQvzLe87GARTkekhsvfAg", + "chaincode": + "613985b00397c206cfde1fe51a3b93933ab51440d0772a1c83d4d1acda8ca9a0", + "finger_print": "50669f55", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "cdb070e7" + }, + { + "private": + "xprvA8fNRhich3N62Qow39s2ekHfkrWy8CrY9EoR7UpUd5YAU5UuEZPMKy7uPrDCebxLGb4EoAjBcBwKzGAu5UwwZPN4Wp8nV6t5q5FGVFcVMjD", + "public": + "xpub6MeiqDFWXQvPEttQ9BQ31tEQJtMTXfaPWTj1usE6BR59Lsp3n6hbsmSPF9no6LyuiiNpwKh4d95o6djpRXftoGakhAduzVh9y5PqtNWA8qu", + "chaincode": + "62156e1f9aad42b94230a7e3b14f4c04e9f26d7959002ec07972198350e6817f", + "finger_print": "5ea893fd", + "index": 7, + "depth": 8, + "parent_finger_print": "50669f55" + }, + { + "private": + "xprvAAeapVNhd7B3fK218S7vU7jHdST6BRxtVD9eeoLs18yZ7WWxrtjCZRmRqkACF5EVaKAT7cboGqZgjwS7CTr9Qo8ck2xwVnMSY5T1CoD1Nbe", + "public": + "xpub6PdwDzubTUjLso6UETevqFg2BUHaatgjrS5FTBkUZUWXzJr7QS3T7E5uh2Hp5rpWtjcUkML4to9JhriRV3FKC15kjCxee6FXSBmEVY91vsw", + "chaincode": + "845c73494a45d5789f7cc46ed2875c87d9b846f86dcfc268d21649619c460c92", + "finger_print": "36bffe04", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "5ea893fd" + }, + { + "private": + "xprvACEhu6i9jhthGXpBNyHtCGtWfGkiPTW938HmbEJuMhRoLfrzeDEBWhjFFXjAQubZ54ipnt1yDNHYg28VcC7sHd5qVcMeWeeATfZ2Sb8szYy", + "public": + "xpub6RE4JcF3a5SzV1teUzptZQqFDJbCnvDzQMDNPciWv2xnDUC9BkYS4W3j6nFDE2TUh8DQAwdzgTFH8CqQamN28xceCSxFEPgFnB3MX8up6G3", + "chaincode": + "de2aba97d8a28a4f0ae8719849f9ae5e0a02316e51163190d4c51e064e011fb7", + "finger_print": "e1294534", + "index": 9, + "depth": 10, + "parent_finger_print": "36bffe04" + } + ] + }, + { + "seed": "028b30ec4fd7b43c411588f1e03a2a966bb40151c13b747c96ce37ac9adccf6c", + "private": + "xprv9s21ZrQH143K3gqWnU6gQVYjcu1whKddJDKmihGs7SZY9SW9hJJr1fMbBf8VpGVtPtDKwz8ukxMorgwWQgNERMZsMKsiG1xaWb9mFtaPazT", + "public": + "xpub661MyMwAqRbcGAuytVdgmdVUAvrS6nMUfSFNX5gUfn6X2EqJEqd6ZTg52yNTUcHudpEBFxKN2AqXfUn93snGUvJfuLKQMg9DVE1rk5EpiEd", + "chaincode": + "a39db6fb1f24e8aa411c3ee8a97db66f792b4fc9e2fb871a7d6329a2e6f6d746", + "finger_print": "fc43d2c5", + "child": [ + { + "private": + "xprv9vkgvw645RbTksVUp6w9D59LLuGh5ET6eM8iRsaZLxrSF6XngHvMPVeSG4rqb5b2RXaethdAt4Jig6tveA454wqzJK5KHhwJ5eWZXpWspyL", + "public": + "xpub69k3LScwuo9kyMZwv8U9aD64tw7BUhAx1a4KEFzAuJPR7trwDqEbwHxv7L5z3bYmnmfqbHvKSQufsdFkefPAvQuKcAfmTaZKgTcY8scqk6E", + "chaincode": + "ac946d5aade406fba6d1fcd852ab371f8be1f8d2a38b1dfa167df7375156d763", + "finger_print": "85dd1e06", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "fc43d2c5" + }, + { + "private": + "xprv9wmMCZ3EUD8YzhKY3Q4b3rtLLqybXmDdEuYaByX7berVgUnXJrTfYef2B32EhSMsVCk4T8gkFWq8bivPtR8HW43FhEgnCt7SThaivsnQqWP", + "public": + "xpub6Akhc4a8JagrDBQ19RbbQzq4tsp5wDwUc8UAzMvj9zPUZH7frPmv6SyW2JzFW8SE8sEbYMCEbv5GTZerB9xp6rdF4oGsw45nyofL6zgdXL2", + "chaincode": + "30223ed1e86ab0c144fd78ea6821bbcd969203e4415265e79effaa8d8826aeff", + "finger_print": "4be131a5", + "index": 1, + "depth": 2, + "parent_finger_print": "85dd1e06" + }, + { + "private": + "xprv9yDmLt1kwnXYWPvGFzfTWEHGoqJwbhMpAiw9TV8FEcsHD7Cp4hv74wrtZVHzRyy1tctUtdCRDUScaKuqTZLnPKh3bWxXH7fh5AxXDPPTBgw", + "public": + "xpub6CD7kPYenA5qiszjN2CTsNE1Ms9S1A5fXwrkFsXrnxQG5uXxcFEMckBNQmwQPvKhC4Jyw1Pi8HYrmuSZPAHkzo9hQkyNLaaea3qCaJXDmWL", + "chaincode": + "4a80ba2c4d863b6bf5f0d89814b9fb5eec71b3eef86448f235a954d4b7dd70de", + "finger_print": "752920b5", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "4be131a5" + }, + { + "private": + "xprvA1QVv62EHpUoqoBqVXJYQ3XdcYxrSMomjWJHzL3H6JE2VpsoYbrTEojyUwBZ3g7LuXMxxKtF9zQwnFJZarkZBbom3CPZBATEfaEhixXQpy5", + "public": + "xpub6EPrKbZ88C374HGJbYqYmBUNAaoLqpXd6jDtniStedm1NdCx69Ahnc4TLD4DtJrGFkUwfhqFPfxwp4gN7vVa2mc5ivzhxN1onHviwaKM9Bj", + "chaincode": + "7b4a1f324972b9d8bb6abc3450778b025500e53dae0dc23a5f398b13894f30a3", + "finger_print": "feb56028", + "index": 3, + "depth": 4, + "parent_finger_print": "752920b5" + }, + { + "private": + "xprvA4JGnQcfEeTj5fEvEm9gX34gHeejq5YdDBQVnDqYdEm4i3Ux76hP3hWkFMxkm2HXcockwF4qEEAUFzGgnNd8HgbqftEukoLNgnrrCHC2qDz", + "public": + "xpub6HHdBv9Z5222J9KPLnggtB1QqgVEEYGUaQL6acFABaJ3aqp6ee1dbVqE6exk7pYzoZryQKCLuwCe5tm5kZGVHQ2AUzT3MYGyxmp8RxYMm6u", + "chaincode": + "5e9751d793ffea0ba47f8cad529e4ed90b11629a4f838df5a62e8ddb4b94a28b", + "finger_print": "812b04a4", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "feb56028" + }, + { + "private": + "xprvA5FtXYogSe9H366c5iguZ8dqLMYaZbm9YccZveVwVepgihx6QmgkSKKwmgihaJZi7xeKfmjWy9FrkjSmATjuAvR14UEngbYPhbiSoEYuZwJ", + "public": + "xpub6JFEw4LaH1haFaB5BkDuvGaZtPP4y4UzuqYAj2uZ3zMfbWHExJzzz7eRcxu197y5WTWRgX75iNFZg794HGfikCtDNkMnJQthvNL2fPsNzZD", + "chaincode": + "720318ce73407c4e01e64e30ffba7a39b81d5c40b90dc83f2119aa06e70e467c", + "finger_print": "0f9c7175", + "index": 5, + "depth": 6, + "parent_finger_print": "812b04a4" + }, + { + "private": + "xprvA6JcaNE42qLFyQnELhU38a193k2Jb2xgMjZsyyb4jxnTMUnp5hQYheWujv2fYGKvkHLfh4nFWVgsicHBQD5zVaJsNmAHNBEpjmz6BbuiwV6", + "public": + "xpub6KHxyskwsCtZBtrhSj13VhwsbmrnzVgXixVUnMzgJJKSEH7xdEioFSqPbBic4gHLDHjVZM28ykR9NQaFFbHXifECT9bRTnqRiwe1PkrRvxP", + "chaincode": + "d0afaa78b4ebd7816193c80adbc2e0ae0e7d3782d72934d01a043737a3990aa7", + "finger_print": "9807b897", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "0f9c7175" + }, + { + "private": + "xprvA9BuXt4yusDxdf5GyUR9oJR9LKPpQZnCZ7WwWedEpMAcgCVoQ18jcYX8CFpQhMjV5iFHGPS9FeGChG8jjZKZgi2fuDfXe93974Nb3MhQ9aD", + "public": + "xpub6NBFwPbskEnFr99k5VxAASMstMEJp2W3vLSYK32rNghbYzpwwYSzALqc3WfpE7DGAYNy6fSxKFSwjGS52GssSDmziFw88Z8wm24dqFfsbXp", + "chaincode": + "9ae88f0456a3824bfd2b0060d146984aaab2aedbc656a1135dbe1796bba419fb", + "finger_print": "0ce8b2f7", + "index": 7, + "depth": 8, + "parent_finger_print": "9807b897" + }, + { + "private": + "xprvAA3jUo5JKog1hx7xgYHLDb2UhHp8q87R8UUTi7mFquQ7gquvWWRLpZhvLDKWLSDe73GgMQqBnijVNnfy8vfWWrdvGSXEtc16o8bd7r782oY", + "public": + "xpub6P35tJcCABEJvSCRnZpLaiyDFKedEaqGVhQ4WWAsQEw6ZeF543jbNN2QBVmia7BV1ne3HEBmC51766kVFaLU3WRVDU1RLE1s1QAoAaYJSrM", + "chaincode": + "ad42b676612385d7e98eaf2c08ef941e6112a6ed207be118b162511598aef165", + "finger_print": "72584f7d", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "0ce8b2f7" + }, + { + "private": + "xprvACg7Snde1bfDzoFmFeBHwLo8UWu1HfApHVVQStnWQhDPqgBtbgXZopcUiC6BEXHe5mfx5C3wqppLh2VCdwMNmvVQBZzCv2zn1GqyVap2wKv", + "public": + "xpub6RfTrJAXqyDXDHLEMfiJJUjs2YjVh7tfeiR1FHC7y2kNiUX39DqpMcvxZWfAAvras4PknvgwJ41jCUiCPTwhBtZe6bUCJ74YiudyYf952Vg", + "chaincode": + "ff38ce6f7cc18a56e1d77dffa7de47af6303f003ba0be5be90be1d40b4689267", + "finger_print": "4ca5f728", + "index": 9, + "depth": 10, + "parent_finger_print": "72584f7d" + } + ] + }, + { + "seed": "163a8ff89b0f3dfbb5e2ffcd3d1559041efa21c11738eb86621e0133c3c19a10", + "private": + "xprv9s21ZrQH143K2kDnRyXWJb9f6vVTfBVpcY91X9q5k3vKNa3GZUrz9HRCofkvYwScdoLRvwC1A4mdHcC6Juo9wLkEWJmh9evBipnq6qYSrv8", + "public": + "xpub661MyMwAqRbcFEJFY14Wfj6PexKx4eDfym4cKYEhJPTJFNNR72BEh5jgewadGYkjKsa5QC2DPsiATmPM6qn4aZaxftJSc7u5a2afqLjp6um", + "chaincode": + "4508dd3f0ea0a4b881b4fd75eb6265b404ca64b7cf7ecd4ba141a1a0bb23a8fe", + "finger_print": "fe1d7fab", + "child": [ + { + "private": + "xprv9vmUgTRjX1KVo6U4nSsRc4eAdmk765toFehEv3iuyZwrghVPATqaEgDbAmCpvgxAyZ4GMXL87r1AYe2FEbrH3KTCRuZ72AyED1vYgy3dkaT", + "public": + "xpub69kq5xxdMNso1aYXtUQRyCauBoabVYcecscqiS8XXuUqZVpXi19pnUY521MU2y3SJ3pyG1F2sveL7rjcGWZ2Zyq8iJHQzfW6qE6Ww9R5cEo", + "chaincode": + "363e81851564f6165cb2d54eb19be0b3ab7d3dfad3310b4ab6aef242d0e7b00f", + "finger_print": "3d1ba5b1", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "fe1d7fab" + }, + { + "private": + "xprv9wELEvSN23FfiBfchZ49Km6xEakqbwiT1UBPiVaP1fEJKaY45hQGcMCVKU79vduZGuPU1jW9xmiYAiA5MeoJHino6jmt2VrYJwKjNN4nHiG", + "public": + "xpub6ADgeRyFrQoxvfk5oab9gu3gncbL1QSJNh6zWsyzZzmHCNsCdEiXA9WyAk5VhTVXzCfNHeLqFWa2AXayVXi9gy9F9QzpZHZcDYUWVEcGxoF", + "chaincode": + "d13f9ac4a781219f3cb1617d99d7f536089ba10731f3e0763f31bfe7a898bcf6", + "finger_print": "ef3379cf", + "index": 1, + "depth": 2, + "parent_finger_print": "3d1ba5b1" + }, + { + "private": + "xprv9zRPdWjcounWV45DnYu1Q78njLey2BHu9YCyvMvL4jA9QYxAsBRQtbjgxTysJrbCoRi6WqJQCYAGHm5Rg1omfskFjfDJduS2vQpqNvGHr33", + "public": + "xpub6DQk32GWeHLohY9gtaS1mF5XHNVTRe1kWm8aikKwd4h8HMHKQijfSQ4Aom4vJ54N2gRAdgFv9sYcEDL8JKQi4QLhdHDDwQN6wLAHpwi5f1f", + "chaincode": + "9ab300ab2406e7362fe64c564ab29e8e5796e733f5f2eae538f64aa5043a48c4", + "finger_print": "0b023785", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "ef3379cf" + }, + { + "private": + "xprv9zdFCc1iq1HFAGEL17AamJUoo537o9wfJbySczR6ZmvH5EY8svYTEmjFG4KgT3sqCxyYmZkZkFUuzZ1JxMzWoVDv1yupzLoKxBU261W6zT8", + "public": + "xpub6Dcbc7YcfNqYNkJo78hb8SRYM6scCcfWfpu3RNpi87TFx2sHRTrhna3j7N7riNvwHA5C2XgGyi5Wy1hREdZgByZGCayzm7YAz8XZP35X7SS", + "chaincode": + "029c9e6422b1eaa1d1fbf72800665cce5a5c2ca710e0c5f62ba07c4ea84d360e", + "finger_print": "fd6e18e9", + "index": 3, + "depth": 4, + "parent_finger_print": "0b023785" + }, + { + "private": + "xprvA4HjAzv1nT4ADCZpuwFYAuiHtLTmgRFKM71TTvNGLFwvZ1YN3Q7QU6mJE3HQnTde7gK847w8163UCbdXWCuDt3F4Wy7pFYgc9P7R8hc5xWL", + "public": + "xpub6HH5aWSucpcTRgeJ1xnYY3f2SNJG5syAiKw4GJmstbUuRosWawRf1u5n5Kwvnq3n11GQxcbHnjfkErUPg9VvRqqKudSU3v2Zk1ddUCxjV7D", + "chaincode": + "6066d926290e00c7c5ca606d595441f7a912818d3b7150adc3d6c93c886a930e", + "finger_print": "9177e6bd", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "fd6e18e9" + }, + { + "private": + "xprvA5NqZz3ZZYbRvzAmGGv8DWbr1J9eFekX1fypJGYxwGqVDeUsaY3jiMnFNMxi4xrFuxcygrm2YdcsLDGfPyFBNukJuTLawCZReq1U5fc4VpP", + "public": + "xpub6JNByVaTPv9j9UFENJT8aeYaZKz8f7UNNtuR6exaVcNU6Sp285MzGA6jDduh3Q7beNA5VrN5hooY5GxqW9JokigvMFTaxnzDeNUDfYv8z7R", + "chaincode": + "a7921012a37c38eb81e48e4587ccc7516baeb47d36252aa8d4ce33ddcf2e4f79", + "finger_print": "4fdc7064", + "index": 5, + "depth": 6, + "parent_finger_print": "9177e6bd" + }, + { + "private": + "xprvA6n1DpKqJiJ4pxZWyn3aBc6ttgB5jArePKyiEiTdseb73x1t5EMPwkm8VpiNRbNTJHunqDqt8jEb2cUDjUgAh8FZgZMMNT9AwdXBF8b9Knq", + "public": + "xpub6KmMdKrj95rN3Sdz5oaaYk3dSi1a8daVkYuK36sFRz85vkM2cmfeVZ5cM5JDH5PtFUE9oVbTBaiQ9n6GVKVCQFDwqWv8BoVjm2wZ1VPfQvJ", + "chaincode": + "f1a0c19c7e091a973492a3754b4342df915090e7408fdc2019f6efeb21e1a520", + "finger_print": "6778da29", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "4fdc7064" + }, + { + "private": + "xprvA8qCtKeAi3KZdgtPTk11weLdqNvfUp8WZHBbZ5WxT3gVC5kexw3mxMByaH9LH4rPsKNregeDkjXmgnu5kbvHya1HUBxR6ZxhRRwC6A8tbfQ", + "public": + "xpub6MpZHqB4YQsrrAxrZmY2JnHNPQm9tGrMvW7CMTva1PDU4t5oWUN2W9WTRZv36fyTBPMucuwBp65Zv7fbcJkaYuxEaz5KDiq1PdGAbP6eJdg", + "chaincode": + "8613c3875861a6fcdba7765e2d782e18ed069656e945e55b33170b9e91f8fce5", + "finger_print": "65a737bc", + "index": 7, + "depth": 8, + "parent_finger_print": "6778da29" + }, + { + "private": + "xprvAAhZmdSF1xRnUaqD1AFohDTePP3rQhYhKVUxPpDhgPpTggzREW3znocQVcqJkxG1dLf5oXxxNQS1xDK9HgLUN8Zwo6VqkVghRaN7Makg6jF", + "public": + "xpub6PgvB8y8rKz5h4ug7Bnp4MQNwQtLpAGYgiQZCCdKEjMSZVKZn3NFLbvtLvDRaLFgbGPj14ji8CTy9Y9fXxHn4wWe56qTgN3BAutEzZsGWvH", + "chaincode": + "1133a2e9e01a3bf9ad060433d7e47b8bb0a8b0aa4fa9024d8aa1a5e9546503ea", + "finger_print": "07e2eecf", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "65a737bc" + }, + { + "private": + "xprvABtj9jaSyb23Qs81cd6Hv3mYfFECyngF5K1TmdXWWVNrXqieW8kkyf5p94f1Yo3PN6xi48jPiipuWtgwTCkefWiCeamYoNN8FA5jE9FaSsb", + "public": + "xpub6Qt5ZF7LoxaLdMCUiedJHBiHDH4hPFQ6SXw4a1w84puqQe3o3g51XTQHzLDWq3FifTXemm8AummMWiWfpjt9Tcahi5mrAecWPXLhCScTcKp", + "chaincode": + "03aafc6630b8640424e81a72faa7cb9ad27638033ae386a0c5edefafb6d14308", + "finger_print": "b062415d", + "index": 9, + "depth": 10, + "parent_finger_print": "07e2eecf" + } + ] + }, + { + "seed": "ccc192135891e95a5a10b2b2d63d802a26897acc7ec03c8e7b22d918a47616ff", + "private": + "xprv9s21ZrQH143K3RZg4WJznfm2TuejKNrLGUCnFhRzDQQQY7HDSw3gZBVTsgoHQivVwP6nbZ5rUfmJhrSGJB8hvAtTfgu7H24conLmYSwfJrs", + "public": + "xpub661MyMwAqRbcFue9AXr19ohm1wVDiqaBdh8P45qbmjwPQucMzUMw6yowizhan7gutWMZQn8z9thaP4xEV7G4cZLruBSY84wJxnzDcfqs3Eb", + "chaincode": + "892ab60b98b74b53ccbdeab45ebc73c4c0819edf631fcd5de0619943f767cb1d", + "finger_print": "eec48a95", + "child": [ + { + "private": + "xprv9vewCVQBCXkGhNonHBcvavCVCKL4eJz7nx7UbcPXr3KDi4okWVpH8d4CbwoZNpFzbvHhoH2tPv5xdXFx8NCs4thJkCaJitGNwVikEN8D3rW", + "public": + "xpub69eHbzw52uJZurtFPD9vx49DkMAZ3mhyAB35Pzo9QNrCas8u438XgRNgTEfERhngqFp4W2KQGiBbAnCGGk12ugiqS8u7tbPDY9TNb3mXYQC", + "chaincode": + "36497d99b3c96457de75278737dd8c32ff50b53491f80be3370f0f1d29da0501", + "finger_print": "c2060f06", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "eec48a95" + }, + { + "private": + "xprv9xCziRDydZYcmF5tyWPRZa6txsRX22WvF2sMRgpr58nXcn9hQJGUpjEqZyPpKzi1gEvSFBoufGuqZT8zrBJgE7S6gSQ2ZBq3dezVVuq27yF", + "public": + "xpub6BCM7vksTw6uyjAN5XvRvi3dWuG1RVEmcFnxE5ETdUKWVaUqwqajNXZKRHHrpdXD53bkNWg3xTMRViTLs4dizJ1K1hYX2sug5GvsmqHy4Ty", + "chaincode": + "5099bd218790f23a66ed2dd5cf1038502d2726754d11f3677ec9e9335fc7095d", + "finger_print": "ee754aa0", + "index": 1, + "depth": 2, + "parent_finger_print": "c2060f06" + }, + { + "private": + "xprv9zR5G6xbZV2DSAwTWAxYWNNAHWXW6Buu39WgF56fCmthcGGdqt63Nc5CbHwh7rahyKoozEqyGdzoSuw5uXEUohomCskPR5BWtfAXxnV3dFj", + "public": + "xpub6DQRfcVVPraWef1vcCVYsWJtqYMzVedkQNSH3TWGm7RgV4bnPRQHvQPgSXgmB3qqawr7CA8nAQdw7DjisALjL7BNtDqDRLP7LKudpFkY8a8", + "chaincode": + "98adb45e032fdd001fc5229f45e59ae1c711a16e84261cffa868c9a56e2eeebb", + "finger_print": "2144a8aa", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "ee754aa0" + }, + { + "private": + "xprv9znjbCWYnwdwzA48weHgCUqHqfBc9SUyLDt3JXcZXWRfCKibFY9QTQTyz6eofR93xaugJCqWAfeA2tVCgrgJerjoVYCHtjkTEGHRUyksYkf", + "public": + "xpub6Dn5zi3SdKCFCe8c3fpgZcn2Ph26YuCphSoe6v2B5qxe583jo5Tf1CnTqMdhNw4LXgxxB2kjRwepT4iW7E1FMMhB1yaWJZCsHSWjT4pS3d5", + "chaincode": + "89e571ebdc03fb37248080f02d096c134d209b103dd1f2cf0a1f2fce751643c1", + "finger_print": "5d32ec2e", + "index": 3, + "depth": 4, + "parent_finger_print": "2144a8aa" + }, + { + "private": + "xprvA37RJ8ws8pe7srqbVN3pdi9UVF4uoRyh7L7RXrYpStRG7c263f5Gu63AP5Fc7Pgbjfa8apay5F3QXvYmDCEe4oSM6nx2sfk4WNPvr1BdtF3", + "public": + "xpub6G6mheUkyCCR6Lv4bPapzr6D3GuQCthYUZ32LExS1DxEzQMEbCPXStMeEMpeYWeKAhnbV91AAtzZZD6sMzc7kySkx3ey6QASBnS65GazWPC", + "chaincode": + "af0306c68f5e75f8bd09dddb5125e82c70ce42b7e6685221e76c2fbb9a797ee0", + "finger_print": "e9836d82", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "5d32ec2e" + }, + { + "private": + "xprvA62Na77yLx2scPJRDtok64R8UULP8y5Sik6Y4jgVwu9cr3hZkvtSrdT7BAJxLRwhGBK27B43ftWN9kH4vk2n1KEM31gJ4yhhtAmqeswDNCJ", + "public": + "xpub6K1iycesBKbApsNtKvLkTCMs2WAsYRoJ5y28s867WEgbir2iJUChQRmb2Uf5WKDPw7oYo7Y4jK86yPKerWXyNoj6NVxv9cMaHLsfwTFhMi2", + "chaincode": + "23c91e1c74215013b07d8029464b492fc55b270f4280efbffaa82ac073a9dd0f", + "finger_print": "959e77a2", + "index": 5, + "depth": 6, + "parent_finger_print": "e9836d82" + }, + { + "private": + "xprvA7Hk4FRWLoifyGH5nwSPp48VS2gqN9L66teRPauojkKtcvdPNcfuoZ35nVzUDiGJ3nFenpyUT1MNEB7L4X9hYVyzcW1KNxChJhNnAb9uLMK", + "public": + "xpub6LH6TkxQBBGyBkMYtxyQBC5Dz4XKmc3wU7a2ByKRJ5rsVixXv9zAMMMZdkT9ErWmKNj7zxneEfBR7eDk6tPcMQFG5NUttZdvU7QTdDLGZjQ", + "chaincode": + "ed7f7d1c58669cb1dbb37e9a7fb8010e3db2163326d22abfc8671d713c0dfc3c", + "finger_print": "d5cda655", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "959e77a2" + }, + { + "private": + "xprvA9eEwJ6xmhuVQ2ax44HPTcW2xmXyvJG6Gz7zRE9z14gECJ1XippVffY4qFyKfTCB3MaumQMqSbof96hmfyavi4vwVo3PNDxHJx7eX5CmU3Q", + "public": + "xpub6NdbLodrc5TncWfRA5pPpkSmWoNUKkyweD3bDcZbZQDD56LgGN8kDTrYgX7xweDFLt7eoof3L8Bkq9kMFzeKmvqcWTq6UDf1C4CChe3b4pG", + "chaincode": + "47ded0718cb5cb5a786c2452c4f10c984f87dd138c2d11e64c30a8e7a1651210", + "finger_print": "b10ad746", + "index": 7, + "depth": 8, + "parent_finger_print": "d5cda655" + }, + { + "private": + "xprvABFhqrerrhLhuKinuMdbfupAbPYwCrwoA9ADn5JqST8xRdwFx7qaSz5QCeJmcEDrmLcWaQdYbDLuTwdsjfSjoi7SDow89jkGCSryeVWjCFT", + "public": + "xpub6QF4FNBkh4u17ooG1PAc33ku9RPRcKfeXN5paTiSznfwJSGQVf9pznPt3wQEH2G2vntWHWUyiHAy8n9UxVUrnm24GXB4qB9sNDimcUszpiZ", + "chaincode": + "e5a0b487e8e22413049cc91f6b534c0e9d730d950a57fdb4f6e0f8cc55edcdac", + "finger_print": "d1d31b92", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "b10ad746" + }, + { + "private": + "xprvADNpH1LJzPtw2dJsa4wZMZNQuZsN45eWq6VWXZs816q9cnqnyzdSoUAu5tdWuD1Ufzcan6NB2PTmgqwDK24m6RgT9yVhKNVHztkyybduarL", + "public": + "xpub6SNAgWsCpmTEF7PLg6UZihK9TbhrTYNNCKR7KxGjZSN8VbAwXXwhMGVNwC4FCRgLMByLXXuXYu6SpJUbXL8XfrWiGug35qF1gv3A4MEuW4N", + "chaincode": + "9c5db856ca8fd6e115ce3962dcf5c687b6eced420f95c40fe332c9de870078ba", + "finger_print": "81a1adf4", + "index": 9, + "depth": 10, + "parent_finger_print": "d1d31b92" + } + ] + }, + { + "seed": "7a649084c8e86261e374d22add80a298321d26e50bd2c9dfada110dad8e215d4", + "private": + "xprv9s21ZrQH143K2pGATwrxPQhbU54LeRuCDtGaxSh2zPob5thjTxeEB1VFvdnWDk74s9PXQAyHD3omKAJ4WikjPVobKjfR6yDBUytMUitBXHx", + "public": + "xpub661MyMwAqRbcFJLdZyPxkYeL26tq3td3b7CBkq6eYjLZxh2t1VxUioojmtCBnrxoaiPFikCWcacKgj8rGZrFyoPbAEy893sgiyMo7Nn3jdR", + "chaincode": + "4c085e98599020a289bb0350818dfb827ec816302dca7232079d86c52a89f648", + "finger_print": "03432518", + "child": [ + { + "private": + "xprv9tvY67Cu6kxAb9pqCMJLHsjHHevNZ5D2TRfPQDW28HaizY5tzPhFUEh4mPbuemusAz7LERNSDgRfzV9oqqdYoEFNyGc4NPfhBw8eyzhAKg3", + "public": + "xpub67utVcjnw8WToduJJNqLf1g1qgkrxXvspeazCbudgd7hsLR3Xw1W231YcetQbJeMigCsKEqUFPrKbfSfYK4Z1DaJ5bTE8Dp5GZPYB8sPWcr", + "chaincode": + "c8088d89a30767a14792c8ca51dcf970de9948deb5a223b4bef5b782b0dc300e", + "finger_print": "6bc41c0e", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "03432518" + }, + { + "private": + "xprv9waDudzQ6DRSb2snThjMzJqtkfs5tQECvWP6CWZ7MzVySYC2ensk67nyXzebnVhtzAb2pGSuQGySDzqxMeRBmgxyn4qk6hajM64cKVsodmi", + "public": + "xpub6AZaK9XHvayjoWxFZjGNMSndJhhaHrx4HjJgztxivL2xKLXBCLBzdv7TPJuUTv4FDVs8Wtu8DzpyyPeTPfbKVU6uuwoWdhrwED82vUes5M3", + "chaincode": + "4733662d0b2f0d50f362a787c7ac3d2abc16c7ebd8da69366b5d546f1e6f47a0", + "finger_print": "df2cae6f", + "index": 1, + "depth": 2, + "parent_finger_print": "6bc41c0e" + }, + { + "private": + "xprv9zJZMiQCsnWEkToBxNgqEgxe4eWwHh7p8L5HL3wzXWWJ2ckZYpMTFzKH8RLmWaCvjJ53PGheB6cif2hnXkkUGBru3xJG3GomaiVuKmKj6Ng", + "public": + "xpub6DHumDw6iA4Xxwsf4QDqbpuNcgMRh9qfVYzt8SMc5r3GuR5i6MfhondkyhcNojbzzKNYAaaEXbyqz2qrqQRGtJRRZA9getSi9YNxo3q1Rf9", + "chaincode": + "6d3abb4f0b431ba43735566da2bde6ad4e98377c262b59e5a2cc0b835f7d1280", + "finger_print": "ae4ad13c", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "df2cae6f" + }, + { + "private": + "xprvA1prZ161BffXK3BY8jpwodpf79faZypren3r3EXhsVQtaHWbFZsjesPrH3KMB96eV5JotuNjfUsngisos9MP5ys2j6GtM4dCBAp8LWBBBwB", + "public": + "xpub6EpCxWcu23DpXXG1EmMxAmmPfBW4ySYi1zySqcwKRpwsT5qjo7BzCfiL8MhF9rSaNXoepmr9FeWY2kSRG6WRHHUXppetWPNPDKVmrurCRFf", + "chaincode": + "d1828846cbee46fa68d1b8e974e301237dda4e6073c0dfcd983667a7bace5f49", + "finger_print": "ddd28ca5", + "index": 3, + "depth": 4, + "parent_finger_print": "ae4ad13c" + }, + { + "private": + "xprvA44FeFtP7CypQFW4uoZAoAq4uRSZZ8yFgMdiuFj7QasFytSmrBU7Q6VBqazbHDRiy8ZbW3wSkM5TauNhiK7TuZSDG3Y9Wt4MZLyXAggQvBv", + "public": + "xpub6H3c3mRGwaY7cjaY1q6BAJmoTTH3xbh73aZKhe8ixvQErgmvPinMwtofgrX9vNTgDfFe94HZFM3cYuu7PWgW5ppJ35zT1CpyfeCEKESDobT", + "chaincode": + "3e0bf386ba4c0df97cbf6372b274258c20c56aef43032461c4e364bf90c50b06", + "finger_print": "0d7d7a83", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "ddd28ca5" + }, + { + "private": + "xprvA4QaGuEfKN342CT1U7b1joZ9zDk2jUnP6F7MWGetvfhaeX8ibcTTKrSAg9UViwx9tSGEyPoEDMr1nWMnnwxrFe7Y3f7v54CehjioKMp4oyA", + "public": + "xpub6HPvgQmZ9jbMEgXUa9826wVtYFaX8wWETU2xJf4WV1EZXKTs99mhsekeXS9sKv9EVckrGWzxfqm12oB5ZqZEU6JUMouY9jmKeBwZiZqDt6s", + "chaincode": + "5647227d33fa78d8a9fd58b553c0bab1ecffdce4c2555a31aad2cd86d7769c29", + "finger_print": "d42576e7", + "index": 5, + "depth": 6, + "parent_finger_print": "0d7d7a83" + }, + { + "private": + "xprvA7kQ7ELeoKvECgH2T42TndC3obDfW6EYCd6wdojnyLHskdgh7eQ5CGnDfY2j6GmDzYDV1MikLK4S1yHVv6fv5xcfXUr1wFLxUu64EzTtVte", + "public": + "xpub6LjkWjsYdhUXRAMVZ5ZU9m8nMd49uYxPZr2YSC9QXfprdS1qfBiKk56hWqjMjDiKmELe4Cqy4324ev39ge2u5Zzfwj2Ndex3MPgW6ruYp5Y", + "chaincode": + "01806dc7539b3cb9b37f217e56a715cd8c4b2b581804902f89d3cfed0a6e94c0", + "finger_print": "e822908f", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "d42576e7" + }, + { + "private": + "xprvA9n4Cwa7wJrqkLbdU7TdgZvp3vDkzCXLp1Xx6Qpq4ap1sNMjLnSXDcymwYGBmpFNXLVdXLM2mmcueo2qyyrnMguHboXzyYoNjP2CQW1C1Ep", + "public": + "xpub6NmQcT71mgR8xpg6a8ze3hsYbx4FPfFCBETYtoEScvLzkAgstKkmmRJFnpscd4bFdDHgosPb37nxYwuncFBv5orsb4obz124zEjub1aMSHe", + "chaincode": + "5571ead789257818afee04c716679042a341612dc3a8af85199eb62d18a5ba45", + "finger_print": "09bfbe61", + "index": 7, + "depth": 8, + "parent_finger_print": "e822908f" + }, + { + "private": + "xprvAA2PM39pYkEiKHBzCQVyxmBnWzEzYKZJ4HfkuQirM1ViX6zLXbRuvZUcxv85ViCnoU9SJqc7pBgiBQJc6FMJTtPyzLLJXgMQtH97apyyQVd", + "public": + "xpub6P1jkYgiP7o1XmGTJS2zKu8X525UwnH9RWbMho8TuM2hPuKV58kAUMo6pBXcQf32ThTbof9teE9Raxb7yCBxcJoSqr3A2V8NjeejWtHrqEV", + "chaincode": + "886468821d086bf7c6ff504810ed44d3f33de76bb37803bfeb04b878afa2f573", + "finger_print": "e2390ac7", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "09bfbe61" + }, + { + "private": + "xprvADVojn6HKPmQAB38onnBY7xT6gJUnVcT1gcJQWwvTjTHXrrLSNcuqZa3p5MzHoUdewNDYz7Q8F1SPtga4PxPpucx8HD3RiBtbCoNj4CaBxL", + "public": + "xpub6SVA9HdB9mKhNf7bupKBuFuBei8yBxLJNuXuCuMY24zGQfBUyuwAPMtXfMUr6Z7B2utQgqWdU8cfg1yxjrQTePUA7aPworc3dwxdRpWFXim", + "chaincode": + "f6d668d15926d747bf92962be3bab07c792ec78deb4ee411fe68df4998521394", + "finger_print": "471152dd", + "index": 9, + "depth": 10, + "parent_finger_print": "e2390ac7" + } + ] + }, + { + "seed": "6af5b490723fa9f885eeb39d6c54bf2b0d91f335b5fa632c6f9120eed2d4252f", + "private": + "xprv9s21ZrQH143K4Vhj4thJcpYJj5MRtpMy1d3QB75kbRozFkPQC3TdkSTgpKBgJxJxBuig7FowWNgn1dy3Y3ToUkfFefZfENDfMR4ET13eQrE", + "public": + "xpub661MyMwAqRbcGynCAvEJyxV3H7BvJH5pNqxzyVVN9mLy8YiYjamtJEnAfciA5aNmSe7ZPqkTJbnsKtCiv4autaBcUuwfZHcEfNkxt7AQibf", + "chaincode": + "f4c6a0b7c333c762a8b0cfde25c07b4a797952dab17a14144bebc71e91749439", + "finger_print": "bf1dff40", + "child": [ + { + "private": + "xprv9vJczQmcQAHzjmLXJvaAeWrX21pCY9wqWvqyteQFzL347Jp87ikartwqReK6hQFQzauTf3NuNBTkWxMV53LDNEnx5frVwqjAGm33wAm9k6f", + "public": + "xpub69HyPvJWEXrHxFQzQx7B1eoFa3egwcfgt9mah2osYfa2z79GfG4qQhGKGwkSTnHFHEK1a82uNJfx2pJJG6CGxqAscm1rdE3WTvRpmSdMywu", + "chaincode": + "d1895165d9698531fda73ae784dd5f8310944922b150128385693e22052f8421", + "finger_print": "d01c152e", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "bf1dff40" + }, + { + "private": + "xprv9xK11KJWPGGdNyqWEezK56hAKpkm7qKnXkyGFzfLmN78iNgVX2c3pxqe8egFn8gfye6zvx3iQuYamJh9wFa9dnmHmwnE3zgfVN9KKT8Hwdm", + "public": + "xpub6BJMQpqQDdpvbTuyLgXKSEdtsrbFXJ3dtyts4P4xKhe7bB1e4ZvJNmA7yuVfFScA5D1LQVFquxebxSmyUo8h7jYZ5XV8WpbnNms2BC8Ys31", + "chaincode": + "f2c2130f8d7e16505b9d38d57b5103817b23a895d77558b931deeb91a2b0d9f7", + "finger_print": "f7fe8c3e", + "index": 1, + "depth": 2, + "parent_finger_print": "d01c152e" + }, + { + "private": + "xprv9zV93zHCLUXEXHqAkqGy5ADfPMNikZdVopaYbhN42BPsKHR44WicweXP8KNLpYRMZYNpVeWokPYPmo1QeLMCzVAESALYMFZJ2cC9SGJtBoU", + "public": + "xpub6DUVTVp6Ar5XjmudrroySJAPwPDDA2MMB3W9Q5mfaWvrC5kCc42sVSqryZhAZ2c6cNmKgHjZH31T6GMWPBQ19QDFbdwcqhvxL2jYJGfmru1", + "chaincode": + "8688485ce094d2fe37e28a309a9a0bbe5330808d8cfd480d5a92e2479d21d32a", + "finger_print": "d77b8356", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "f7fe8c3e" + }, + { + "private": + "xprvA28R2FA9WUv6WhYwvLCGQ3jb8BQnoonGezbnVt2tiv7CBX2KhSveNiR3ghegDmKhcYCRz3pfZ4EfDn5DTfDojhofPYHHcPMjBNVP6MhLuB1", + "public": + "xpub6F7mRkh3LrUPjBdR2MjGmBgKgDFHDGW82DXPJGSWHFeB4KMUEzEtvWjXXzSMAhycXcZ7TbmN3KEPRFuwA8fwTLKEzsDCrvijJaYukizRfGB", + "chaincode": + "dcfc4e509382e9bdb2f2e712d3a341de92b7150d75c018401dca1cf2de0010d4", + "finger_print": "58b41c21", + "index": 3, + "depth": 4, + "parent_finger_print": "d77b8356" + }, + { + "private": + "xprvA35W9JPfokEFqUGe4LVFSs5AtBGhSJbihUtmp34nw98jNdiVcd9bRvRm3A9pPBdaCDfh18dvaRcRYx7VgibjbdVEEDGQVgenDrjX9fPs31Z", + "public": + "xpub6G4rYovZe7nZ3xM7AN2Fp11uSD7BqmKa4hpNcRUQVUfiFS3eAATqyikEtQLRAdaQoXqhyhtwzzBy7zhtgRmkTMykKgdNFBH46GLinX4StGg", + "chaincode": + "ea0d6c75dc5c60715800972b3028042d15bab396dc55f39c866f4699d64d3a17", + "finger_print": "b7b51d0b", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "58b41c21" + }, + { + "private": + "xprvA5f9521KErnCrMHbDogLW9MPd18LCvYMx7JPqaLn8bGJJVBZH6shTBSbPuNgsoq7JSymA8mYUmaGU5uzEMkL7uw6RMrJVFhPvVXrM9wskRm", + "public": + "xpub6JeVUXYD5ELW4qN4KqDLsHJ8B2xpcPGDKLDzdxkPgvoHBHWhpeBwzym5FAhfJCTCcn5R9iY8kMrZnUmeJDpaZfrpp8RoQsZCkjgmRutugVP", + "chaincode": + "f4b33d86af82148ba3e05748d1966215d167037dd8c49992af8e7dbab470aadf", + "finger_print": "b1af83be", + "index": 5, + "depth": 6, + "parent_finger_print": "b7b51d0b" + }, + { + "private": + "xprvA7Vi2ncPTYd1b33BaCDewMMMHoUMmMy8B2rqdTtkMPvfRTcV7p1F9JzBoeTorq1s1En48znW9t1YMKx5uGq688tCnG8YHKaSas9S8tNQwDD", + "public": + "xpub6LV4SJ9HHvBJoX7egDkfJVJ5qqJrApgyYFnSRrJMujTeJFwdfMKVh7JfeukfnK6Ng9rUJ5GvGrtradMV3H7STkcHjkYgtdWLi7Qij3oeY8m", + "chaincode": + "0674130fe339bad6c3bb1d45b071056443552dc8a5e7a6d70061d62fc7a5a5cd", + "finger_print": "b076a497", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "b1af83be" + }, + { + "private": + "xprvA9NKfsMVNB8Tg8Yrc8vQo5uUiGeSR5j1iboNHjrTopS6nfFSiwd8VwFQ8oaXzuBAQaXgZPTzSeTvteThrmd8Fpqw5Z241ogoBMTocnNXNXq", + "public": + "xpub6NMg5NtPCYgktcdKiATRADrDGJUvpYSs5piy68G5N9y5fTabGUwP3jZsz742YfiwTg7m6scLAmsH3LJhrZwhRBLTgGAyWukd85ddT3yzd13", + "chaincode": + "217be2f14da7de7516d6c1915d2ad9123cf72529650a74f0e2a3c4af6306a294", + "finger_print": "d1b00b3d", + "index": 7, + "depth": 8, + "parent_finger_print": "b076a497" + }, + { + "private": + "xprvABVd2o4HfXHwanorYo4v8a2X2wY9qpUhM8m4VmBwEfj2m4wHS4n5iiq9ZSC9GhD1tMfiP3LiCDnSHb5AUfiea67DdaJ91KUUgzcB5pKuFww", + "public": + "xpub6QUySJbBVtrEoGtKepbvVhyFayNeFHCYiMgfJ9bYo1G1dsGRyc6LGX9dQhXAJrJV5ZGHD2JMJmNf73EZbBx1S4ocjEYEL4qyVUZFQgLs4Rp", + "chaincode": + "0d18eb18e8ea19f59383990b755330f685e4a3382014615c02081adea95547ab", + "finger_print": "29f0354b", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "d1b00b3d" + }, + { + "private": + "xprvAC9F7nxrJyMHibzDQMyGiV5wjiip4qnUaVf7dRERLrzwYST5esMSHfAn52CD8GfWwYEwRLZsGjZ3yNUQc564PRCmxQQ2tNjwkPCZBa1iZeR", + "public": + "xpub6R8bXJVk9Luaw64gWPWH5d2gHkZJUJWKwiaiRoe2uCXvREnECQfgqTVFvJ4hzBVgXdEqHf6EKh5YvNgqegZms2ugxuiUKL6xZm8nXeHnmAu", + "chaincode": + "e509bc17ac27da3a0081939c14bbd386e347543d90cf5cf08d9f79b2ddbdf669", + "finger_print": "8aefc67e", + "index": 9, + "depth": 10, + "parent_finger_print": "29f0354b" + } + ] + }, + { + "seed": "9d9f798132a8b95915668d6871ec0ca1770e8d3133fea28b842ccbcc3359e9df", + "private": + "xprv9s21ZrQH143K3R2yYg6SfRHRLz3NLptoibWa6uHcCFRmE1SynGNqv3UzMc8uiDccygGXePfxRiiLty8bdC7Sjzkmcup5TxofuTmwgSGjvQJ", + "public": + "xpub661MyMwAqRbcFu7SehdT2ZE9u1srkHcf5pSAuHhDkaxk6on8Koh6TqoUCrbcXUpyc9h4c1Q1E4E3Sg2JWcNMe7HR8xZhbuphiudxYjhm9Xi", + "chaincode": + "884010627f73c6f85e36e0643a1071b0cf7931ac3ddb1be0d1f9337c195142da", + "finger_print": "bb9705e0", + "child": [ + { + "private": + "xprv9vH7mxjqjFRrYmv5yQkk4qB9cyz3tnuWHgUDKNHZx3aQ3R7bi5Jodo8iNdtoynUNaS2JjpTmer2i7GyBqYo3nQyhbxanCfCheSuMVTE2ejD", + "public": + "xpub69GUBUGjZcz9mFzZ5SHkRy7tB1pYJFdMeuPp7khBWP7NvDSkFcd4BbTCDsoL8yxdcPoNbBndBR6ZaQrUvGMkWT17Y49uo2MHcauhzD9UZfP", + "chaincode": + "49b5938c3c320d82073af1e626427d71a5bac8b044866fea54c41f664ddf774d", + "finger_print": "9273cdb6", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "bb9705e0" + }, + { + "private": + "xprv9wriTzquTdULS9c8p9qsb1QuJQ9PWV7WatCHuGv7Y8UvX8L1wKtUrgVJsFsgnbX3zBd3USAdD75J22b8o7Z9JSeWVVJvv9CMFVYBegBMkEG", + "public": + "xpub6Ar4sWNoJ12dedgbvBNsx9MdrRysuwqMx77thfKj6U1uPvfAUsCjQUoniZc4i4KNJBSumCFrPLMMYdF3cScJAkP4kPekLFeKPcCYhP65fFn", + "chaincode": + "bdb7df553e3ceecc1e10b3063a11c2743be8ceb9e13e8bf0cb9cd180b5873c28", + "finger_print": "9f911c19", + "index": 1, + "depth": 2, + "parent_finger_print": "9273cdb6" + }, + { + "private": + "xprv9yqSbNEDJsESo6qfxyQwxnWgVDinGf6ahjNBVEhZSWsLUFQRpnHRM9QSjSH25ZaVywiukeCEKGmGF2f7GASPSWdjn9XBbMxaJF4W4vTKXbi", + "public": + "xpub6Cpnzsm79Enk1av94zwxKvTR3FZGg7pS4xHnHd7AzrQKM3jaNKbftwivairCXCvjS9Lhoe8UzEuSfSsVxDt871u2PbLfFKm5JKfV4HDMD4Z", + "chaincode": + "4478ae7b41bd74c8ac7d41fd5ff57739f46e494baed3e5e87f86e1a77c06ef7e", + "finger_print": "196efba4", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "9f911c19" + }, + { + "private": + "xprv9zjPsRuLh8jjoSsB41YeWicjBDYwjJpuBDxsuGBoXytMp8suXafy1sZJvwNNF6Cd2jbkqP3CCR2PVNP1kwxMHenh2kDeVNziXeBUgnHFy1s", + "public": + "xpub6DikGwSEXWJ31vweA35esrZTjFPS8mYkYStUhebR6KRLgwD457zDZfsnnErPV3ybj4rTrXCqzVYm7vVYda46t7qzdpgbpGs4zYeNoiV7r17", + "chaincode": + "92fdfd46f35c3cb6f2a357e0f089c0625081e3ef70f53ea11cf67de8d84a064b", + "finger_print": "ebe1ad4e", + "index": 3, + "depth": 4, + "parent_finger_print": "196efba4" + }, + { + "private": + "xprvA4AFGXCPAnMRFqvHkw5iEmDCFMSQnwpreZxzjcrKw6f6RpYGryt36yKcsYz9ZUaS9Gz5diHcWoq82PZKgG1xNGmE5XrjRTn9tF2AtMSGXo4", + "public": + "xpub6H9bg2jH19uiUKzkrxcibu9voPGuCQYi1ntbY1FwVSC5JcsRQXCHeme6iobUMLC9xg7A5g8gjhctuF6PqckPnEHW3cgpUKM7ynmuSRwCo9v", + "chaincode": + "38176ee2528e18423ac520b271addd60e0cbf395d0dc5e973f201ca8e81bec1d", + "finger_print": "d84e8ab0", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "ebe1ad4e" + }, + { + "private": + "xprvA5u37zdmDQd9gPB9QLUBnPiTwt3b5PCRtNjHSa5PsQ2qdipyt5eYaQkdDzHemCsBzZdSSmcNYNgB6VK7Ucbgf3MEEfi7iMk6xPkwNkp1Bar", + "public": + "xpub6JtPXWAf3nBStsFcWN1C9XfCVut5UqvHFbetExV1RjZpWXA8Rcxo8D575Gxs2cVKpACUMMszxKjQPbKe6XEqkqRNATsxoQ6YRihNVAgrBS6", + "chaincode": + "7e61a2daf3f3868ea39cb65dd68c8765588107af10f10df95187047d51fd3c02", + "finger_print": "013bd064", + "index": 5, + "depth": 6, + "parent_finger_print": "d84e8ab0" + }, + { + "private": + "xprvA6CV5XovffVvKjPyspaNYrNGSa4L5WStTQdLwvs2PbXPF22XksBwyLCRuddPRh3JXrjqYff3RMnN8eKtwWGoKGKoUnBJjEUS81mm5p1KRV1", + "public": + "xpub6KBqV3LpW34DYDUSyr7NuzJzzbtpUyAjpdYwkKGdww4N7pMgJQWCX8WukwmiHQGCWyXMsmoqninrhKvKC5wBVoxvhVZNkr1aXJ23zxczrEC", + "chaincode": + "69374fbf5c1f84432a91bda556e1f3f1af5e67621d0fce79b4a331a12b2dc0dd", + "finger_print": "5f044e12", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "013bd064" + }, + { + "private": + "xprvA8mbpZKD5jkHjtdKcNXTcUY2MwGrRvzesvU6a5K7PPFKwDnrCkrah81KmbwnWHqEWf1Q7Qwt6vjkfCwqaz4dCk3JiKwivheFyDDDfJKVTX2", + "public": + "xpub6MkxE4r6v7JaxNhniQ4TycUkuy7LqPiWF9PhNTiiwinJp27zkJAqEvKocsvWgTeX4HnT2ToxyZxTGZsyk33qKMZnG33hvEGzE8JT1zuZh4x", + "chaincode": + "ec7b01d7c2311cb6f64d36d93f8ee01ebda536f18d6d5f1790b34d0a5f2bcf6a", + "finger_print": "cd279628", + "index": 7, + "depth": 8, + "parent_finger_print": "5f044e12" + }, + { + "private": + "xprvABTgwvoogcfrST6UE9CdMRFbrv43MFjtWGRnXd8TaizahBXCtr3DGQAMxN6ruUqbtSZXhQTo679uF4JSVW8q3iPQ7KjEHgHuimRT1mF8RJ9", + "public": + "xpub6QT3MSLhWzE9ewAwLAjdiZCLQwtXkiTjsVMPL1Y594XZZyrMSPMTpCUqoccPL4paP26cKSPmMQzPmuPHNesiLV5XuJcbK8vU4dfSK6W1qTE", + "chaincode": + "a6c63dce39a947849eaba44a46366e1afadd99953686714fd00f4ef5f0cae26f", + "finger_print": "fc0fa721", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "cd279628" + }, + { + "private": + "xprvADgpcjmGRH7UXBa3j55oGQTe4AhY5kkL8fTiBY2D8jwirCKYvfhHtzVMGofHk51VTaRiSQcPRF4kq4KF7BFJukEgfdXygR8hsxCZ6QRNJfy", + "public": + "xpub6SgB2FJAFefmjfeWq6codYQNcCY2VDUBVtPJyvRph5UhizehUD1YSnoq86JLKrosdKPriBzQNDUSffuLrSj9jJNTHxiAH2rtiNqPFxULgNV", + "chaincode": + "c0873c4c9e9b1e9df5d2233843612e66a5b0907e220fbd06cc84419cc34e0bde", + "finger_print": "11322904", + "index": 9, + "depth": 10, + "parent_finger_print": "fc0fa721" + } + ] + }, + { + "seed": "ed0a2ed1f0582d83777a276eb575610b6e438fc97d90fcdf6d59b3ad6c2b077d", + "private": + "xprv9s21ZrQH143K4T7rG3ruHrSBTMC7tbQWFcNC3JbgrYin6sjJaYRJT6npsAvegX6MZsujix4urKF2MBWfQeQPvWWZj63pWzSPSp27DBq63hH", + "public": + "xpub661MyMwAqRbcGwCKN5PuezNv1P2cJ48McqHnqh1JQtFkyg4T85jYzu7JiUc1dGQXbUK5wDUBYBHpFgDUY7wP1WWgz5MpDRRwHK5RNVQPmqV", + "chaincode": + "f04d09470cd7eb771ac267e6c815a985fb0400b3a9d422f8b9b9fde8c5989a31", + "finger_print": "f9fc0ae3", + "child": [ + { + "private": + "xprv9vjiYbptMjU7nNnQUuwU4t5kuAsBLXQbavXcTYGohj1GFAoySsmzh5ouAnoBe1jhemDnYGDwWWnao2bQeXY3KEeUqH4S4ihmHx4oNcXfXzW", + "public": + "xpub69j4x7MnC72QzrrsawUUS22VTChfjz8Sx9TDFvgRG4YF7y97zR6FEt8P23P6Nuq7LQY7dAJdPpSauYG2uQYxo2xAUHZYAPS1MQSBmf6ufSD", + "chaincode": + "8f350482a3e3053a38eadaed786dc814f7baf0c53056112374a72f6a4bcea94c", + "finger_print": "fe4bc18f", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "f9fc0ae3" + }, + { + "private": + "xprv9xeh1NfrH7tRCRNTTFRVZNPSBFvRTDmM6VUGJ2tySwvsiD8rrpVekZcZz49QKQpgrXR22jrpypEzFFsMoLpugQanU1oMRYewjua5xHSPTsp", + "public": + "xpub6Be3QtCk7VSiQuSvZGxVvWLAjHkurgVCTiPs6RJb1HTrb1U1QMouJMw3qKZ8AYSsjhCBdDKDm5W6SsWrJe2LLyEXUSfzA5acvk2KGmKA2FM", + "chaincode": + "0ed1cb40b54ce221309ae2e6b8b64644594e92a0de76658c0521704426394d53", + "finger_print": "c0535b1d", + "index": 1, + "depth": 2, + "parent_finger_print": "fe4bc18f" + }, + { + "private": + "xprv9z5Qb1CX76eX978Ri2maB66xDQoKiuxEZsXvNketU81YM7hE78rbNgX5fDvFUiRFRupCk7o1QqXH3tdcNhSinAY4N5RbDAXo8UGA9ZJUaGx", + "public": + "xpub6D4kzWjQwUCpMbCtp4JaYE3gmSdp8Ng5w6TXB94W2TYXDv2NegAqvUqZWXvWp76hBGP3ritzv8LsYjLQHvyrZLAyjBH5S7fL2CskPEtFJc1", + "chaincode": + "e908ca6df2b585b0eb42dbbc67fa3001f19cfd3233f6eff06028a1f828241cd9", + "finger_print": "c7e636e9", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "c0535b1d" + }, + { + "private": + "xprvA21miFNEzrKCtZv6gtz5xnYAyMbR8tsqYBubVi8dinbRJPzTnkx4sQ33WRxc9x5Zg9EmtGdiUEVNwVXCHUv9ojvgHg85npd1AHUGVH9rScb", + "public": + "xpub6F187ku8qDsW73zZnvX6KvUuXPRuYMbguQqCJ6YFH88QBCKcLJGKRCMXMhXi1GDRJMqcMNSHorn9wXV5xtK1XEuW4LDF7Fx76HwCfS2uqHd", + "chaincode": + "5bb6bc5524cfa3ac4b1ff4617a317907bcb3af79f744d962715f3c9cf26a13a0", + "finger_print": "57b81e97", + "index": 3, + "depth": 4, + "parent_finger_print": "c7e636e9" + }, + { + "private": + "xprvA355oet3nDWTgbMnuh8D6K4tpm6CUc6iSdekdgHzUNEuyUgHiWFcHDsXCbrtuBhEuGkZgyy7V2JVngveWgw7x4gNNFVMPWcDiehkhWBpc4Y", + "public": + "xpub6G4SDAQwcb4ku5SG1ifDTT1dNnvgt4pZoraMS4hc2hmtrH1SG3Zrq2C13sQ1auTEg6CLVGpGujnJNep2Fg5gadfVboLUo2AauLujkBECRiw", + "chaincode": + "3b514e48e4ab5b4d77c9b86ad0f3ea8e729c44fcaca8793e0deefe5f497d1af0", + "finger_print": "5ee20d17", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "57b81e97" + }, + { + "private": + "xprvA51Go6gv9xExQyMs1Te5UHjADuhY77QLncMxQP2qo8wxZWBSBLT3j3tMNbEQEGvsxVNZaAgY4sBaLkQzAzYfvXDie6eU9DGe2b75e5CVJwu", + "public": + "xpub6HzdCcDozKoFdTSL7VB5qRftmwY2Wa8C9qHZCmSTMUUwSJWaismJGrCqDtSEjGDWUtgeGgPfXRe3qPqWgGLX6mXNkwNmNuH7NPfoYSUfb2b", + "chaincode": + "2d1e8da4f03396713e5178b883eeff0dd5f0478b986bdd38494b3a3da05554d8", + "finger_print": "ccd5da4e", + "index": 5, + "depth": 6, + "parent_finger_print": "5ee20d17" + }, + { + "private": + "xprvA7hHLVDeuPqctHGfBk5xTSDqPNioFRQ3AC2Vu6ibJbGD3yaCJHTZr7vHZYk3Eh3t1ck9yyHnuiY3SGtVrMCBVPSmAqyjd4vHJtxpfP83NEd", + "public": + "xpub6LgdjzkYjmPv6mM8HmcxpaAZwQZHet7tXQx6hV8CrvoBvmuLqpmpPvEmQqbbFeAoGAGzqHMzAh6YWwEhEG8a6vPEcLkxGjYUssXGLUVMk1Z", + "chaincode": + "672e80df1eaa69ac5578c116f241d59586f038d47f62d58191c963db757efeb5", + "finger_print": "43c8c1b6", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "ccd5da4e" + }, + { + "private": + "xprvA8ZzU3D2f2sSoMr92MgokRHR5E4FY5PdYmjq7trZ5bhTPjmzjjyPd7Ncm7SKAxF5jSMZdCGJn28dYx6ap58nwxHBe2vvesHwRWkJMZ5RbBP", + "public": + "xpub6MZLsYjvVQRk1qvc8PDp7ZE9dFtjwY7UuzfRvHGAdwESGY79HHHeAuh6cPoYdJXGXqjG1N3eVg7Cp8CHYZLNKR1ttiJkwErjKBk4kjHMyR8", + "chaincode": + "36e716ebcccb4146d6c25e0171f68bfa2723e3161adebb73b1db70eb00efe552", + "finger_print": "77d5f568", + "index": 7, + "depth": 8, + "parent_finger_print": "43c8c1b6" + }, + { + "private": + "xprvAAqKMRaSEtMjueKQhSHu2dZWomrbnwVsCxz7kJWkDFvywQ8SZD8yNEQZYjLBxtxByYcj1TmRuMndgibczqaBuucXScXecs3VfRdTuA8xbGt", + "public": + "xpub6Ppfkw7L5Fv388PsoTpuPmWFMoh6CQDiaBuiYgvMmbTxpCTb6kTDv2j3Q2CkQMBUPoyscpqsHrCJhie14obkf8eiE5jcbEdv2KAng1JvQhL", + "chaincode": + "b461a78ba38044a990cc387aaafb9219e61e73f910d818d8ec5edd745bdb70a7", + "finger_print": "9cb5a5ef", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "77d5f568" + }, + { + "private": + "xprvACzAxDrTPJ8S2hc2FVZCuE5NggZySThUfeM8N9ZWnP6fzUnKGh17MbcrhURTzKCoAjNnrrsh82mNutZDZ3M9pLa2kkPb5EWJh81zWUb1wDf", + "public": + "xpub6RyXMjPMDfgjFBgVMX6DGN27EiQTqvRL2sGjAXy8LidesH7TpEKMuPwLYkMrWa2p7WYJZ8qrWnJog9PmrV6dF6F6bmu9SF5A7BxGq4jg2Kd", + "chaincode": + "2e492340a9c571ff9f5c1c91d29fd663f8f5412c77cbabfdc266f5a79b10e7e8", + "finger_print": "0cc2c10f", + "index": 9, + "depth": 10, + "parent_finger_print": "9cb5a5ef" + } + ] + } +]; diff --git a/example/lib/test/bip/bip32/secp256k1/secp256k1_test.dart b/example/lib/test/bip/bip32/secp256k1/secp256k1_test.dart new file mode 100644 index 0000000..b0c78d9 --- /dev/null +++ b/example/lib/test/bip/bip32/secp256k1/secp256k1_test.dart @@ -0,0 +1,27 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_secp256k1.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void secpTest() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + var w = Bip32Slip10Secp256k1.fromSeed(seed); + assert(w.publicKey.toExtended == i["public"]); + assert(w.privateKey.toExtended == i["private"]); + assert(w.chainCode.toHex() == i["chaincode"]); + assert(w.fingerPrint.toHex() == i["finger_print"]); + for (final c in (i["child"] as List)) { + final index = Bip32KeyIndex(c["index"]); + w = w.childKey(index); + assert(w.publicKey.toExtended == c["public"]); + assert(w.privateKey.toExtended == c["private"]); + assert(w.chainCode.toHex() == c["chaincode"]); + assert(w.fingerPrint.toHex() == c["finger_print"]); + assert(w.parentFingerPrint.toHex() == c["parent_finger_print"]); + assert(w.depth.toInt() == c["depth"]); + } + } +} diff --git a/example/lib/test/bip/bip32/secp256k1/test_vector.dart b/example/lib/test/bip/bip32/secp256k1/test_vector.dart new file mode 100644 index 0000000..beb5300 --- /dev/null +++ b/example/lib/test/bip/bip32/secp256k1/test_vector.dart @@ -0,0 +1,1322 @@ +final List> testVector = [ + { + "seed": "a4e110279ab79800c8f6dda3127fa6256f95af99715bd01af0ccefed95843abc", + "private": + "xprv9s21ZrQH143K3L5giUemUfbrA1iXRUymQHhtDXsCBAmF1M4Kpvj7tb4eC1J4hK4EuwBMGdKnqUV31RGLS3LQSDdoWWBfsfKBvxGSXAWcJ4i", + "public": + "xpub661MyMwAqRbcFpA9pWBmqoYai3Z1pwhcmWdV1vGojWJDt9PUNU3NSPP83Hgm7LLAz81oZU6RFvXsdYzwzNfb5HG5ehd4DNB7AJTe27gUMKd", + "chaincode": + "7fac224232cbde6f0551556a076cd43a4588a5e3be1c1fe0e74028d1b4d82d36", + "finger_print": "e4d1645d", + "child": [ + { + "private": + "xprv9vahBPqjXwiJQt9ge6ryz3z7NxdAjxdo6w1Eib6Wtzhdddf9CAX44iFbAFCDSg5U2Nx2FcgYaEkKAWdbALhJYyk3b4LnHFcB94rEeEVb3wa", + "public": + "xpub69a3auNdNKGbdNE9k8PzMBvqvzTf9RMeU9vqWyW8TLEcWRzHjhqJcWa51WTZb7UibLQnXzFonQesSgKVmGs5j35wT7apAkYRumtiacBcHAS", + "chaincode": + "48e607fe5049b880de77ceaf4903a5356378a7adbc84956912b7a5cd538b7174", + "finger_print": "35a338e7", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "e4d1645d" + }, + { + "private": + "xprv9wB9XYUM5i6wxhPUTDHMUzx1S33YhevQdBMYwM3kVRFTL1CdoAH75ruqmwxkLBRun2FykiWuPCnQtdk71ospuYtUZHt3X3XXoKVkdaTRT3y", + "public": + "xpub6AAVw41Ev5fFBBTwZEpMr8tjz4t377eFzQH9jjTN3knSCoXnLhbMdfEKdEhj4cjXEysXsjQGhxPQSXMYF4wogUAcHuZjmeSC4zUr1PdhcQC", + "chaincode": + "9980d2e09138c28172583eaeada70a0ef79c259a36f2d5e3c4b8f880d55ed93e", + "finger_print": "2eef91fe", + "index": 1, + "depth": 2, + "parent_finger_print": "35a338e7" + }, + { + "private": + "xprv9y1RgGZEgttqWuGBFDQJ7YjHmAaqURY2jm86orwUHkQkRjb49edFRCJuNu6NYFzozBN8SyBLUnX5SZaK5Fcu7cJyKLDbrcGb9RnfbEw5BKR", + "public": + "xpub6Bzn5n68XGT8jPLeMEwJUgg2KCRKstFt6z3hcFM5r5wjJXvChBwVxzdPEBJjsWKrUckBpo5VZhv3roi3z6fCZAv8GS1zK5qQMydzyFyLjf7", + "chaincode": + "b9826840adbfb34fb7c9feba1469fb6821b530d8b962911cf131a1ed6c198c45", + "finger_print": "e5f3da1c", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "2eef91fe" + }, + { + "private": + "xprvA2EaouFHDRcErLvJn54kFg9v3inzzzwD46yEBGLpvoALL1qfbQPL4c42fazPcyR3jhRNWRKg7XKQW3DVHouA8XTpFA9yDfSogQmAmidUbfn", + "public": + "xpub6FDwDQnB3oAY4pzmt6bkcp6ebkdVQTf4RKtpyekSV8hKCpAp8whacQNWWtAZqkrDYPCXQYwgFSTArH4pdTs1v1GGF3eky4MsjL1pgn6J7KS", + "chaincode": + "7db04cf1d1b3b38bc4b3b298b519d6e04cbe397416512103aeb8bca0d3ee4ce7", + "finger_print": "8f9cc7a6", + "index": 3, + "depth": 4, + "parent_finger_print": "e5f3da1c" + }, + { + "private": + "xprvA3UupaLt6PduQRFeCL8aruYouZwR8MKPY4gwqYK7Vkz7yMUeMif7Ma29RBEsDKKzX5TQjr4sryGrJcGV2Cupkbm3cxb99dmedo4R4ofoDEf", + "public": + "xpub6GUGE5smvmCCcuL7JMfbE3VYTbmuXp3EuHcYdvij46X6r9onuFyMuNLdGRGKz1A6T9abEJM1a36uBueWYRkiVquThr8tnUah38dQXQ9RGny", + "chaincode": + "c8633ec29f0817ff79e19611965b0dd01e859f1d4c317b4588615b9e5a699642", + "finger_print": "a0b2d7c6", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "8f9cc7a6" + }, + { + "private": + "xprvA5VL9oUTEMeLPbMJzAzWc5R5hb7Nd4Zkn7gjDz4MV6ua9crcSW45gHUaCM7TnZjDeYZkzLqSDCdNSgE4NJi6mSisMqiQc56jHAswMA9iYw7", + "public": + "xpub6JUgZK1M4jCdc5Rn6CXWyDMpFcws2XHc9LcL2NTy3SSZ2RBkz3NLE5o43bZEjAsPnNdgdY4M3i8vmUksFxiZtXqNGuGubq8CjGVpUPCSXE7", + "chaincode": + "0ade2b80328b39631e360019ea3e89d3d58d48eeaf5419c556b48739ae6565fb", + "finger_print": "e81878ed", + "index": 5, + "depth": 6, + "parent_finger_print": "a0b2d7c6" + }, + { + "private": + "xprvA7tuNcuiqmzaFN4i4uaRYb4zkuTvjUskmvH1iWyWnfPPS5xCGFy4ZViBXLvMBb45vzjbqHxvWM1Zi4LWn4UQP8J6ZDwSk63EtAtJ7o4kSUp", + "public": + "xpub6LtFn8Scg9YsTr9BAw7Ruj1jJwJR8wbc99CcWuP8LzvNJtHLooHK7J2fNf1WzPZykL58U4MgvaMCCbnRC1MLrdHyFwuo5aFxJ5j6d2nXZTG", + "chaincode": + "bbdec7bf0bb6ba1f38901786989e28c52fb1efb6115166be2006d07faa10bd18", + "finger_print": "df1e4156", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "e81878ed" + }, + { + "private": + "xprvA9iDFphwVKbniGuoeXrssMEpQckaNz96jP5f9HotJq1t8YTCa8iJEuPb1sG5Q9s2pKaQKia8MG822zk8bnxys5EBbxC23vvRaNRfCnUqBWj", + "public": + "xpub6NhZfLEqKhA5vkzGkZPtEVBYxeb4nSrx6c1FwgDVsAYs1LnM7g2Ynhi4sAJpweMVgv8YfZr8JphiUeE47FBbs9C6ooL7WB3i39WSvJNyNoN", + "chaincode": + "27285c03ae52b22b8ae7750b7536863075ad5e3caee19a21e1d40baef9319c3c", + "finger_print": "d7748af8", + "index": 7, + "depth": 8, + "parent_finger_print": "df1e4156" + }, + { + "private": + "xprvABY5e82hQKXHnSW3xRbmAMfjNvGpXEhLxEwqcPw9GqX7gghuZW7v3kdCZqzTmiFs3KkD5AwoFW3dHKzmGeuYRSKpM9GZymDcjaQnMkwVi8n", + "public": + "xpub6QXS3dZbEh5azvaX4T8mXVcTvx7JvhRCKTsSQnLkqB46ZV3473SAbYwgR96fToNDcFXyhjFbUchUnWXZvwNU3F8iBzgHM7A3tbZ8JFDboUv", + "chaincode": + "09b2734da1e700eaf0fd42c3539748ba1591740d591cc1ea38948abec3ab30b2", + "finger_print": "a292d8bb", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "d7748af8" + }, + { + "private": + "xprvAD2fwv4Zs22vdH2jTYyjQAHNMHJXBXTvv7xva9VmWyYiD2KboCEvJRii6EbBkRqMRbEubHJCpZ6zPuVLjP6kHaEa6jytQXRKEK5Q97jnYFw", + "public": + "xpub6S22MRbThPbDqm7CZaWjmJE6uK91azBnHLtXNXuP5K5h5pekLjZArE3BwYXR3eLYHomJUJVvtu2muC6ug9iU1N4i8Yyk1KMP16ctgcnbjRH", + "chaincode": + "af7f45d0b943663d7df442a34a5f4690154530f325863caf8b8924d21a2143a5", + "finger_print": "75c800b5", + "index": 9, + "depth": 10, + "parent_finger_print": "a292d8bb" + } + ] + }, + { + "seed": "d60037197962e37e30934edaca02eb945178d322c03642e6501d69e0ade39ce7", + "private": + "xprv9s21ZrQH143K2bFKQhAtLfsHT5J2y5sNJPUTW1Lt1Y7VWpgwX7RrrKn7dahisMT6pzZrsKcHP9h1v2uVXbJzZQUwr6pveM5McfDgTGqWr5t", + "public": + "xpub661MyMwAqRbcF5KnWihthop2178XNYbDfcQ4JPkVZseUPd264ek7Q86bUqDHCs7jfsrGD2pyJk5o8RbwxLrUVY8oTGVjwdARtDqmePH9TZo", + "chaincode": + "357ea213f2ceed715ffdad446d37ba618b9315843399f55d02880797cb03663d", + "finger_print": "0534af0e", + "child": [ + { + "private": + "xprv9twN9KAgZLSm5nLmeDXK4zreXB4qNH27c62bzvz5trJJgpcoD3EeoGcmLXC7mLXMqJ2wpm4ujscEgZ7W7JkS6Bnm9vMjnNefrjr7eynCmFT", + "public": + "xpub67viYphaPi14JGREkF4KS8oP5CuKmjjxyJxCoKPhTBqHZcwwkaYuM4wFBn5A78wEY9mvenEHut5SzLNXV8iwjCxzzPkKyXMCgwoSvzLuPAz", + "chaincode": + "dad3acef45013692543d0e352d7e2a4a1d4b8c6870242f653737cb54dca69306", + "finger_print": "8907c15b", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "0534af0e" + }, + { + "private": + "xprv9wnhVjfV2axxo2AYoj47jg5kLSEDRKxzfWjhq3boKm5JQrdCBALb8tgUc4YQfTTNodL8x92w7JwFjZdGGsKWmRTyZZxmjMQqRqgFGxHCpq7", + "public": + "xpub6An3uFCNrxXG1WF1ukb86p2UtU4hpngr2jfJdS1Qt6cHHexLiheqggzxTJsFdbTUmxBjxDwhfEiKjV5D3uJ1PdDbHT2xu9xW22myDh6hTMB", + "chaincode": + "a2a71b1480bf8c3ab6234d84116d7da785840aacbbcf362425b93f72b78e7c50", + "finger_print": "81aa3623", + "index": 1, + "depth": 2, + "parent_finger_print": "8907c15b" + }, + { + "private": + "xprv9ychEjJpWnEnZB4eeWq5t13BLSWYvTBRfnxV7gSFgEXAxmp4KUVmZDMPMBsEAR5g1bHZoqhdA1LB4h2WPBvwqC8aA6kF4vhSm7AG3X7P8BB", + "public": + "xpub6Cc3eEqiM9o5mf97kYN6F8yutUM3KuuH31t5v4qsEa49qa9Cs1p271fsCTPoyYTvi6bbbtxbv6LstCCp6YAWh9giEHX6JJEuNKCwoDFL8cE", + "chaincode": + "4c5b85320a0338f044f2b96f1e3b2f64691e586281e75cb05940c50a296639f6", + "finger_print": "1ac621c1", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "81aa3623" + }, + { + "private": + "xprv9zjy1kCHB5e2UswaNtD8LGoT1h75Au5gvZnkUJKSeEjrGFQ1SSTgv4RP2AwfGtHfYaCteoS5xNrK4bSwsSaiZsag9ca1HuRqaLQN1CaBtJC", + "public": + "xpub6DjKRFjB1TCKhN23Uuk8hQkBZiwZaMoYHniMGgj4CaGq93j9yymwTrjrsTWEtBAU7nJSBH2cAS5iv6mibqQ4biwWqRtVoVdqM4uwCzviRxT", + "chaincode": + "52f4704f7e1d3c7025ed6c7ca3325c7dca25126952977620a77c8a8627c04d65", + "finger_print": "06339b83", + "index": 3, + "depth": 4, + "parent_finger_print": "1ac621c1" + }, + { + "private": + "xprvA2ULCXpAXc7xR4QasgHQsRgDG1GWTku2Wiu7uCY4StD1gkKGds8Cr7AWgfXH2Bmsm5GzZFomKAUTrAWcwDjFix6rSLHWmJqhk3U1QZ9Qo18", + "public": + "xpub6FTgc3M4MygFdYV3yhpREZcwp36zsDcsswpihawg1DjzZYeRBQSTPuUzXy3ZTD4jicdcBdWG837DvzLHLPc7WzUFgzUdA6dTaD4m4BA88ix", + "chaincode": + "7c5b37f48564530acb9727407a018cca4e8d0f95c0731935a9c9ae18f3472e0d", + "finger_print": "0f67940b", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "06339b83" + }, + { + "private": + "xprvA4RPcS6Wjvpjrt3hh7k7Zx1cbpHMA4JXjRGtea1iHKhz1GniMXjiLh5XJxpjKF9h2bhM8FJ1fGGnG9FqUZmxMgFirBhSfNbLnmnQYaByZUJ", + "public": + "xpub6HQk1wdQaJP35N8Ao9H7w5xM9r7qZX2P6eCVSxRKqfExt57ru53xtVQ1AEdnQ5u5RwLyBgqQC7PJTBw1azFm57bUFsbB54Kf81zXg7WYXCN", + "chaincode": + "90fa18a32e90d9f32812179be275b71d861ec31b806e6463ce76ef6bc173bd36", + "finger_print": "96433ecc", + "index": 5, + "depth": 6, + "parent_finger_print": "0f67940b" + }, + { + "private": + "xprvA7J1yLJDNzFSDEumDnSbNYqQsW2ueXUtK9dYL5q2Rt6m1rts3hVpA1PjoLW37ZtGnMZdseojxBN85E9eHEpnVk6aNKHvqpYHGYGhDiQvDZV", + "public": + "xpub6LHNNqq7DMojRizEKoybjgn9RXsQ3zCjgNZ98UEdzDdjtfE1bEp4hoiDeeTkUMcGpNYv9yYJsALw1F5kC8EdE9UBdr38Tkz8WSQ2WjctF6b", + "chaincode": + "71da91e07d22e2b858289ea77e369fcc66862d388c935fef2f13d066500c7351", + "finger_print": "4dbeea51", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "96433ecc" + }, + { + "private": + "xprvA8eEmzYQyfVZcRXEZSg2Qzjg7eWK8C8Gu9MM6Zq9jvdAj6qCH59cfGpbWdBUXfLr5E7bbkJYaUKqM6CXZzgpkzb2NoSpjuxmZQE39YkWE3F", + "public": + "xpub6MdbBW5Jp33rpubhfUD2n8gQfgLoXer8GNGwtxEmJGA9buALpcTsD595MuaDZJRyvibaAbfCRZ3wnWfrkeX1wdcMgPc36rWxGLk2ERQwU2V", + "chaincode": + "a35f2f10df4127ff13657b00fc1dbd740c79002fd575d021798812ca851c0bff", + "finger_print": "4b987cad", + "index": 7, + "depth": 8, + "parent_finger_print": "4dbeea51" + }, + { + "private": + "xprvAAWTUHYBgo2CXMcPqDy8xue4H6Bsv6tW6F4RSPA1oyaMFDfqvX4sUf83Mr5Q2eBG3uSPn6gbcai2mj72ijL7pCsYqp5GVykkGqEs5fQoTms", + "public": + "xpub6PVoso55XAaVjqgrwFW9L3anq82NKZcMTTz2EmZdNK7L81zzU4P82TSXD8U2edZKpvdv2RayEdXZFeeZh3GgAbWkzWuvKg3aZ9B5ErUEaCx", + "chaincode": + "42625b569d4b3c23709fd87c17f372f4783fb8303d2381a3e307b14ec4dfe12e", + "finger_print": "2ae6994e", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "4b987cad" + }, + { + "private": + "xprvAC9ev53MmRb9w65zNGu3rGbSqoGawvUik987edZLLzjDFwYGsvPvkMViaC2ut6NJedXxj4jaT9A7HnbC1FmGiapXKpbnKyYkTbEtqJ9Aekf", + "public": + "xpub6R91KaaFbo9T9aATUJS4DQYBPq75MPCa7N3iT1xwuLGC8jsRRTiBJ9pCRRkpkeb9TRcHqehuJ6FBNDbS82SKFmXySsk9twa3uMaNDSMvYac", + "chaincode": + "54f7953570f5bc9cd3fe809ff9888beeaf7888982bf18bddd82f617cacfd7b13", + "finger_print": "952458af", + "index": 9, + "depth": 10, + "parent_finger_print": "2ae6994e" + } + ] + }, + { + "seed": "cc11a8f97ae11b12caf6ffb051c98216e9830052ba289b1b9f1fe028715df47e", + "private": + "xprv9s21ZrQH143K4ZsX1Cb7d5arAzU3Kvf6uAv6hcrPML9tEW9rT2g1ktv6a4sHiV8yXaxPwmSijgoMTFPLp1oXyoUuGqiPDDNw1Z6zsYoM57k", + "public": + "xpub661MyMwAqRbcH3wz7E87zDXaj2JXjPNxGPqhW1Fzufgs7JUzzZzGJhEaRK7HUeYywq8TzXqQKUKfPsTp7qn5RjtpFaVUFXKYMmSLT2EDY8T", + "chaincode": + "fbfec9ca801cd24f3ded72650a94ec5736ec8a0b04b597ade67fc20594b6a0b9", + "finger_print": "8eff86cc", + "child": [ + { + "private": + "xprv9ux7CWGtrhPxB3gCHoCpizxfg8bznTDRhaNvLZirsQPNDN4c7rWRThkVvY5FBaRMQMsGhvZGeU6vrGEzJPATLWqjzzjUzvQcfEJgKxYBzPL", + "public": + "xpub68wTc1onh4xFPXkfPpjq68uQEASVBuwH4oJX8x8URjvM6APkfPpg1W4ymowcGkkcBHHUvLJHL66aQVazBBND8XXatE7tQoSakW3Ttme4cuQ", + "chaincode": + "d63e4c760607b11fad019091d901c47cd2ee4b2a287dddd460f133287d104d72", + "finger_print": "e4d6ead5", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "8eff86cc" + }, + { + "private": + "xprv9xTqa8bkcf8vNQNdqnMm7S6Ejg1CtFAKDGuxajZe9AVyVczNBZxEXMq68J8s4poGvJgiprKrJN83DUbwY3cS8K64VxRApp4unBDpoTpmnwz", + "public": + "xpub6BTBye8eT2hDatT6wotmUa2yHhqhHhtAaVqZP7yFhW2xNRKWj7GV5A9ZybDBab8jiGAJSxfhfuj5C21QPE3YH1tTfjkuk1hrMm9U14dkLcP", + "chaincode": + "979df9b978415ece9b0117bf375f895c729df74514edfb2c9062406eea1e4c21", + "finger_print": "0c7d8544", + "index": 1, + "depth": 2, + "parent_finger_print": "e4d6ead5" + }, + { + "private": + "xprv9xkjyg3GRy8PoQEo7B8ymaUeMXSs2T1v7hupmr6mzHQt3a1D74oKzk9pUUDwvpY6YZQ2aBXEfhnsvKeKh2cthvFejda8RWa1bDC7wNyjZBT", + "public": + "xpub6Bk6PBaAGLgh1tKGDCfz8iRNuZHMRujmUvqRaEWPYcwrvNLMec7aYYUJKjFw1Br7DwsSRWNBfu3M3pzTjT2bvAyBh66yhK2qh23rR3nQ6Sk", + "chaincode": + "572be7811df5324e09c749bc1c9e2c2442fb167f78621ff64055c7d38b5d40d9", + "finger_print": "c7d04d0e", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "0c7d8544" + }, + { + "private": + "xprvA21jbVLZpxeC3h5H8ER9iNgeEHSTA6rn2nBxeB3r42CDLadYWLZdrLAA1CkujJCit52Xwf4uRWKyqGCGF4DQ2CmYU2NiBkDp31qTJWHsqkz", + "public": + "xpub6F15zzsTfLCVGB9kEFxA5WdNnKGwZZadQ17ZSZTTcMjCDNxh3sstQ8UdrWDRKWwwbvLEzTmvQsorMNo1PqG75vFhCDMbk9q51sMQ7NZicrA", + "chaincode": + "be79c64765868c4ddaa5c72e0061e2c0db56fd1745793e315674fd5416a571c2", + "finger_print": "95bcc72d", + "index": 3, + "depth": 4, + "parent_finger_print": "c7d04d0e" + }, + { + "private": + "xprvA3XXGUoPBQnJ4hm7xkfY4beSnNFSjsX6uD5dBfScnszE6QQ9jLhM5FnRyP4ZhS5yjwNxpu7tVxs11GkGbRLBeBhV7WrDfaQ12hCwLgFkNaw", + "public": + "xpub6GWsfzLH1nLbHBqb4nCYRjbBLQ5w9LExGS1Dz3rEMDXCyCjJGt1bd46upfp7VStmJRtxpBbmYuX9LHEmP4tNsaaaCehAKQpHPgwadpAxgRW", + "chaincode": + "9a0d0fdae934b8641744810fa82893d6e2ee7a5ee90a9a072e107e16a782740d", + "finger_print": "44c20b7d", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "95bcc72d" + }, + { + "private": + "xprvA4p8pyhY37yzGK8GqPe1rYsodCxm6cw9fG88V4u4G1UdP6CaPwPbsgGk8jng72MnXKfBipo4ntYorLKxRA9HCwC3o3RxwPPowftrte8J8hQ", + "public": + "xpub6HoVEVERsVYHUoCjwRB2DgpYBEoFW5f12V3jHTJfpM1cFtXiwUhrRUbDz2cjX4cjz4ziyj8huWDGAfkPpv44Sg5EanxZi5wM9QnqZJYfcRj", + "chaincode": + "f7bd57389696ee5d4bfa15f26d785cc0fb128ab1ec337c2e43ddd49e8bd3a31a", + "finger_print": "79e844cb", + "index": 5, + "depth": 6, + "parent_finger_print": "44c20b7d" + }, + { + "private": + "xprvA75vreN3G4rsaJNrhpm2ReYA86G3gjUmttN558A5gBu9QVAkZWpoerNjuwRs3z79msJVayDd8Ztno8MKEiMRQMwbUxqKw7BUrRs85dM2nrd", + "public": + "xpub6L5HG9tw6SRAnnTKorJ2nnUtg86Y6CCdG7HfsWZhEXS8HHVu7494CehDmBLZ9dbwZmtTuNwHVPNpYUp3wY7upvkfNDsCsV53APyeoTtTmvZ", + "chaincode": + "d41b985654a2b35964da4d2c7132f5679c62aad3f5fe7c18c5035c291dddec89", + "finger_print": "1f4762b5", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "79e844cb" + }, + { + "private": + "xprvA8JRqPwsXD8wE6Ham7fvFBogd52sdpD27eih8NyDidqEu5GUh361DXZkRD7FubghxMf38iAzK93BqsZCep9cWXSkwLxroSQ4njLULeLRUjE", + "public": + "xpub6MHnEuUmMahESaN3s9CvcKkRB6sN3GvsUseHvmNqGyNDmsbdEaQFmKtEGVXZWfhfNiXA5pBJ2va8UpVda6vfyq41Cxaok3gWAD2ziATGs4K", + "chaincode": + "e9843d0edc2d23b8e85c9d2d2352dc493eed30362554756dbd369b6f69ca0d38", + "finger_print": "ccf8cfea", + "index": 7, + "depth": 8, + "parent_finger_print": "1f4762b5" + }, + { + "private": + "xprvABTcRu6h2DGZBNaT2qHj8NJvBvGAmw7oG6kpYKVXWbhKMhizbUL3kjARXwbJx9tRG7eAnFvUuEi2AH7A5CcaWXm69mXyCcFrEynw6kTt7gu", + "public": + "xpub6QSxqQdaraprPrev8rpjVWFejx6fBPqedKgRLhu94wEJEW4991eJJXUuPC4D5gvumbg8oMhM5H7SHzKzymHSRK1SJFJuff86mFwg9R9A1Jg", + "chaincode": + "a89758a766e29f1802f4eecb0a6f6dddb854ac3daca86d657ea31e1573d82bba", + "finger_print": "3b50d962", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "ccf8cfea" + }, + { + "private": + "xprvACGeo26sZEdmhvoSPCGD98FSMuizsMhdpUwBcHcW4Wnynqbu6ULUe1mnx7tu7n2RFihDcDoYSqWjK7grvAWK2LEWCpHMWpnPbUhyaZH8NRn", + "public": + "xpub6RG1CXdmPcC4vQsuVDoDWGCAuwZVGpRVBhrnQg27crKxfdw3e1ejBp6GoQoZX4vdbRtGeoLcgGNPaL2jc6ERgvegZf1EqRGNUQwUaezn7XW", + "chaincode": + "4b87b7556791e9cb0b46f478b4d9579a4c08534989ba7155a9b91b104462d3d3", + "finger_print": "c7634158", + "index": 9, + "depth": 10, + "parent_finger_print": "3b50d962" + } + ] + }, + { + "seed": "3d7ea5c89a4a0ab4c9bc837fa1ae5b7b72e98c9d547521ced9d484c3ae457c04", + "private": + "xprv9s21ZrQH143K4TNxbZWYAND3wSrXKAGjBv6aZD23apfjFuVJtsALzjkxGShoF3bR6ehfvksKfk8Ske31ZdrCo7hvdhj18vzZjDJNKLGpr8b", + "public": + "xpub661MyMwAqRbcGwTRhb3YXW9nVUh1iczaZ92BMbRf9ACi8hpTSQUbYY5S7hzff6aq3pDayLkhUmWFQbDJxYj6ukKuT9n7QYfxXghtFbosWkV", + "chaincode": + "f0c086759b019a74a9aa1f509d24a56658be2b1b4744eb9de2e911f9d9691e7b", + "finger_print": "9c4f189d", + "child": [ + { + "private": + "xprv9v3nKfUuLXwd2P39tNYiut75hQ1WzhE2XSAYJvQsVJU5behHVCsQPHfwgrXtXDrXKu9WdEd9KWAuKY8a7YsdCkjfBkMAmPj7AcJJKK3cmeF", + "public": + "xpub6938jB1oAuVvEs7czQ5jH23pFRr1Q9wstf697JpV3e14UT2S2kBew5zRY8isgokME1mUPSvTRhSLziwnejiECFydxTaVHmMnqKnNusWHRLw", + "chaincode": + "90af2cde5debec2e1bf6f47c5bb62fcb0ad2330b9fee0d74fecdfd53a4817ba2", + "finger_print": "27ba90db", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "9c4f189d" + }, + { + "private": + "xprv9w5Dco2Fu2UvkensiYb5SoZvqvwif6DyJG3dkCbGA3LdwZxevt1nvmaY9vu9Nu4CBfhE4WYN2XwjsLHG6acnSKg1dskQsK2UBpdQwngebyD", + "public": + "xpub6A4a2JZ9jQ3Dy8sLpa85owWfPxnD4YwpfUyEYazsiNscpNHoURL3UZu21F5RpprVfeCtmgDvZAMbqRSagapKpwkPaSFrCkyNGYgV2PRmxKT", + "chaincode": + "a0450fb7b579818a58f6314f3aa98b478a21d303e331c255253ff5fb49791e97", + "finger_print": "31699957", + "index": 1, + "depth": 2, + "parent_finger_print": "27ba90db" + }, + { + "private": + "xprv9y2Uv68QLU7WBgWnN8QkiEMXqtF3gWe42KVJrJfpjFUpYFUcGaZPXemmEMR4nZpsdfzkDnhV788TFEYEp2fDdgmfx8Y5rdqQmtC1qUAcaFf", + "public": + "xpub6C1qKbfJAqfoQAbFU9wm5NJGPv5Y5yMuPYQueh5SHb1oR3okp7se5T6F5eQ6kFNSiQH5VpeS4eKXbgK4ekYS2qCTn1kfb3fqE2BiHMUKBzk", + "chaincode": + "08231616c6c56a6348232c3fd9c6959eea2d0e5409dcc9a1b978974131501c24", + "finger_print": "974038f2", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "31699957" + }, + { + "private": + "xprvA1f2q9s7dyCg2J7XWDaZhuJvfwPjAtBBULqRBbJmXCxeune6Jm7sUXmYiUBkK2hkMC4n83VSrsdmUyjSFZ1UNZfeg8pQBWqLwi3Bsc7eoFq", + "public": + "xpub6EePEfQ1ULkyEnBzcF7a53FfDyEDaLu2qZm1yyiP5YVdnayErJS82L62ZkVbJcgdz9WKmyNX2U4qiaJyY7dL5DvNZi4Y6jgCm3fRwfZE52q", + "chaincode": + "2f33d56abe8be11be9c1e83ef355d48f9d133ca646486b55bd5ae91582ea2a0b", + "finger_print": "a3d86adc", + "index": 3, + "depth": 4, + "parent_finger_print": "974038f2" + }, + { + "private": + "xprvA3dY6qPUrqVsZmt81KjYRDfp32q6dzG22QEnNtgaxJrTR7xs5ifQnZBt6stNNELuxuCz9ui4LrciHoVgt5Z4edFTz4Ubo2Jm92h5gto9z3o", + "public": + "xpub6GctWLvNhD4AnFxb7MGYnMcYb4fb3SysPdAPBH6CWePSHvJ1dFyfLMWMx9nCS3YFx3EVnrRe8ZFF7qARH9EYibQMoYuzEPY8LaQyUWm1SsG", + "chaincode": + "d1717496f07e6491b448703445b2fe876425080d0fa2aa103497ea1870f459ce", + "finger_print": "15f8131a", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "a3d86adc" + }, + { + "private": + "xprvA4UBvYvHW34JCKVihirxwxKpYFVgUpG1BJQG66TJWLch416qHzeN7e8wW28hWa4K73WzExYvjGTygV1zkBMnWZwygyZUjC6zr4xfZk2jj34", + "public": + "xpub6HTYL4TBLQcbQoaBokPyK6GZ6HLAtGyrYXKrtUrv4g9fvoRyqXxcfSTRMKH214HU4pL3D1Rw8bnc3D7giNN4hW4CpHFCNiXC4PyA2afqDgj", + "chaincode": + "fcfd8fa8780bb2982de056792442cf01579313fe42e70c3a5e2eb9d10e640ee3", + "finger_print": "8906571d", + "index": 5, + "depth": 6, + "parent_finger_print": "15f8131a" + }, + { + "private": + "xprvA7CNejVnAruZACGGLDyzp8swisNxEVULZoAYda9uLrGmoynBuHvKCpWXtWnonUywmkVtwiU1kwvGJXgb6WPy9xoYBUuiTUhbZ9YQYikwFpQ", + "public": + "xpub6LBj4F2g1ETrNgLjSFX1BGpgGuDSdxCBw269RxZWuBokgn7LSqEZkcq1jkL8wUKD84b4gWSj8d2Z26sXeandXaN1gnCfVsgRQfbyS5X6r2s", + "chaincode": + "84ece77dc83d73fbf3130252c50f0934fba7c0210c13a59f268cedaaf2c7a1c3", + "finger_print": "754fbc13", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "8906571d" + }, + { + "private": + "xprvA8w75W4aussBBYZJ4sHDbsMYkNcYdb2u2unx64ZMVbSWXKLmyxXSMr5jdaQKP6tJZFE1hVKAADrUDDKb5XHn5i4KF46H97Rd43D2WcWNtRa", + "public": + "xpub6MvTV1bUkFRUQ2dmAtpDy1JHJQT333kkQ8iYtSxy3vyVQ7fvXVqgueQDUqiCPbvJo36j1hdXvveMWDvYfSPAKkb4aSD9wuBNpX9xdMKLmxJ", + "chaincode": + "4ac49ac080dd230fc9dbac13603b9bafdc0b18695278665e0c87fd9f5cd3296a", + "finger_print": "73db3348", + "index": 7, + "depth": 8, + "parent_finger_print": "754fbc13" + }, + { + "private": + "xprvAAocxMWFaVv1Cc5iTjitwtJipzhuvqCLvNsQ8MzzDHNc4L9u5JeHFmfzKRNgGtcTb7e1uVUgKwnCgt766kx3PRAeHYmZ5mHkcm67YNFgo3u", + "public": + "xpub6PnyMs39QsUJR6ABZmFuK2FTP2YQLHvCHbnzvkQbmcuaw8V3cqxXoZzUAhzyZMKnXUf8pkzdy4xM4cxoEG8D7D7HUnRJ7EsLbwNJDNd9pCw", + "chaincode": + "38eb9b8243cf2096e3d2888e8be89c4c0fcb7229229625b6034bc8b6b283d122", + "finger_print": "2ae30975", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "73db3348" + }, + { + "private": + "xprvAC9ea7iy3njB9upkbxNDXMZZhe4igTnRAkPDdDYyizM8rKGKPRoiXxtpYEi2gvEc4GN8BNafETMn6r48q3BjVsypBLgrs7NjXFZW2dRuaHN", + "public": + "xpub6R8zydFrtAHUNPuDhyuDtVWJFfuD5vWGXyJpRbxbHKt7j7bTvy7y5mDJPVrfydrK9n4o75MWRtQzg38KxkAf4ktX45jBQGwcDc28neuJu7Y", + "chaincode": + "e383d2bd8661bb3f92be5850b72be350f5b7178a00ca578f01adb115038759fd", + "finger_print": "cd88d2f4", + "index": 9, + "depth": 10, + "parent_finger_print": "2ae30975" + } + ] + }, + { + "seed": "5d6ef00d6a1ea58db7f393fadd8ca8fb16519e41197aedb1e3ae317653fd2b70", + "private": + "xprv9s21ZrQH143K43EQ9bvV2YWY9BhuRhgkmHGWxXL4vRadnGCm69RbmyKwjX8TYVAqRfhxHiGQE9cZnbEAUvx5Fw2udHQTxynXddVND6ZqrA3", + "public": + "xpub661MyMwAqRbcGXJsFdTVPgTGhDYPqAQc8WC7kujgUm7cf4XudgjrKmeRaonM5SHVok5aCRinaMmaMFMQ9nPKh4N9EPvc9GLpUVGqkmXSC81", + "chaincode": + "c6ef36ea2f064ec1621aacb8e474f681b4ef068477a2b7d5ef0b5b073c6ed8a7", + "finger_print": "a9b898f1", + "child": [ + { + "private": + "xprv9v9Vx6HgPhtnWy1DdCgx545bzAbnRBPVVsKaEMWzUtgN8TPG2EvKPZNA7KjPiptiqTWjPEUcGSGDRH66jM2cJsoe2tPtYDQ52CZCvQSjUPv", + "public": + "xpub698rMbpaE5T5jT5gjEDxSC2LYCSGpe7Ls6FB2jvc3EDM1FiQZnEZwMgdxaNd8XMX8p13uYm5PCcukfcXuhTZSfz5bKFVafvqp8xdacUUGZC", + "chaincode": + "709534df02b94f35474d9876e82df16297890df2d6740f4973111f40ad846a90", + "finger_print": "6d3867f6", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "a9b898f1" + }, + { + "private": + "xprv9waqsEnoiEWGu3JZuM5NiYXzH8B23VdiAY8tJ5TnNiUShAMHQ3B1eyUVk73w3HbtLfzgYsCDkTF4LFF6WAa9hGqMKJi1Uy32MpJApDG8hKY", + "public": + "xpub6AaCGkKhYc4a7XP31NcP5gUiqA1WSxMZXm4V6TsPw41RZxgRwaVGCmnybPXobN29qQVHVx1TpMmF8Kuhg9dKbs9ZhLe6VPEtnaCKP2XSyTr", + "chaincode": + "fda9bd05129adfa1d18451b59067d933ec706a9ea79c62d9c711862fcf6c5b78", + "finger_print": "e5684022", + "index": 1, + "depth": 2, + "parent_finger_print": "6d3867f6" + }, + { + "private": + "xprv9zMDU56AvSocMKdmdNXKQN7mpWX4YmJmkUacE2q6VmdMNgok6uyeogmKTcVh44Tqv33zxJqj13dkqdgapCTmUvDe8X5EnEyFGKyYTRrYjig", + "public": + "xpub6DLZsad4kpMuZoiEjQ4KmW4WNYMYxE2d7hWD2REi47ALFV8teTHuMV5oJucgXYZpwytdviTdJvUwcHNhyobCznVJHjVCr7ndaVWsiPAnU7g", + "chaincode": + "9a6520c200c02b9bc5f55e53359f4a1393c39bc9c4330bd91eb7a00f8378558f", + "finger_print": "934a77b5", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "e5684022" + }, + { + "private": + "xprvA1dLv7VcpAgvL1Anc8VzHhWcir57XptLQynu5eSuDFxeaGoNB6NCQWHKdcc1L9ND9WpytYaNytp3mXibe2zPDRuPZxH8cmgS52dn6VqB5u6", + "public": + "xpub6EchKd2WeYFDYVFFiA2zeqTMGsubwHcBnCiVt2rWmbVdT58WidgSxJboUsTtLrYpsJsRYLkd36eF7htJWDSuyXsbeJxf23ALub42aDsQzgk", + "chaincode": + "a462215a8f58ee611b3c9da6fb7e3956f079aceed2ed201631109771552470e5", + "finger_print": "2ea5ee48", + "index": 3, + "depth": 4, + "parent_finger_print": "934a77b5" + }, + { + "private": + "xprvA2maHJzuZjtxqQPnGEx9H43RpdtsyWjfvJA6Nte3DfqvLNDe7rwaRhSrMtHrYB3DD1Q566fpzVPEzv8m3r2HkDkSLSMz2qmYrK1sdX3APG1", + "public": + "xpub6FkvgpXoQ7TG3tUFNGV9eBzANfjNNyTXHX5hBH3en1NuDAYnfQFpyVmLDC6oAUtcaspGaeN4xt1NDRhAz4jTWQnEY1HMgieQTTS6iefpZK6", + "chaincode": + "257921a94c1b97836808b9c312344187c98f7891b6794a8d9fbab75922882fad", + "finger_print": "0a1bcb1d", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "2ea5ee48" + }, + { + "private": + "xprvA4P8fLxd7vn3hJWA2zAuVzKRtn6sv7i9YmUUxSFWyUcdxoFTiLXq6yj9yUHgZGxQA3EWfuSTGWKvY8uGbAjCPFz34EP7kEYRjdo5ksVkgYn", + "public": + "xpub6HNV4rVWxJLLunad91hus8GASowNKaRzuzQ5kpf8Xp9cqbacFsr5en3dpkXAwDLhQhYkXFxKVPSSgospYVdNRCSNBqCD8sLvHE9yBfGchV8", + "chaincode": + "99957b9846c333e9364ec8cc32732dc437982165087a68784fdc8f8835c19bea", + "finger_print": "0015f436", + "index": 5, + "depth": 6, + "parent_finger_print": "0a1bcb1d" + }, + { + "private": + "xprvA6BzhLCYbGufAyojAQt367dH5RhzNx4aqoMBugXF5d1yMN7GkQT3smdtf61Uxg7f8akxqCBwPmi7uHKeH9axL2UkZDq1SX49wCmAE7WZjnC", + "public": + "xpub6KBM6qjSReTxPTtCGSR3TFa1dTYUnQnSD2Gni4vrdxYxEASRHwmJRZxNWLierCkJgVAB842WeCDEuq3fvAnQ6MNQUc6eRcVwufVZje7Hx5k", + "chaincode": + "cd43b5837fc0f5965b21dd7ec5ad20056e19480750a19c6f82b2dbb409256d38", + "finger_print": "2afe2f81", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "0015f436" + }, + { + "private": + "xprvA8PRUdgvGqZwMiDQdMTsBCfJsyZWtSHo183AqUJt4QmjApZ9ktuHxxFoAf5y7h28Jbn7kFhvjfNGpqyr1uVqvZnf7v6GC2SE7zw911NKR5W", + "public": + "xpub6MNmt9Dp7D8EaCHsjNzsYLc3S1Q1Hu1eNLxmdriVckJi3ctJJSDYWkaH1uNxAVoqGa54ytVBu7EMBxg48dxn7vuk7YMhYmEuM9z3a76fU26", + "chaincode": + "5131e74272a3d4d8f1dc3482bac3f61539c4ad6b8a56fa710a2bc3befee0ac8a", + "finger_print": "e7bc942e", + "index": 7, + "depth": 8, + "parent_finger_print": "2afe2f81" + }, + { + "private": + "xprvABf2DQLSF79qwJqUCZvDenFQ1shEzee54QCfo48hQ1Hb9yboML5BMuHwkpQfR25TbRG2QViCeurm73eJSkAZwFfexouxG6QQDXwe8KsjRNM", + "public": + "xpub6QeNcusL5Ui99nuwJbTE1vC8ZuXjQ7MvRd8GbSYJxLpa2mvwtsPRuhcRc65tKaKsKAMKzUtHritXKSMNU1bVyvNuhoLX32CJUKEaaqexD4G", + "chaincode": + "da5beb3d49738b95d008a46a0b7226f031f196506977250d809c482e5703225c", + "finger_print": "170e05ac", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "e7bc942e" + }, + { + "private": + "xprvAC1CCkNgfpAgDaHXyCebgXrusnQkxVGo9h8TcfbqidDgUMAMF5nP2LirqrHBaY1a3T1QCUiye8p7goHfKBinyUi2JwMxuXvXenM2KtoFVVd", + "public": + "xpub6QzYcFuaWBiyS4N15EBc3foeRpFFMwzeWv44R41TGxkfM9VVnd6da93Lh9j9VP7tT7EahafzMCDcLcCAycven2Ny25VHACu44cjs6GKwW3Y", + "chaincode": + "65a0b4567451034677648b7ad2d55c5c1df49349bb629890d6a82bafbbbad150", + "finger_print": "4eb2d75a", + "index": 9, + "depth": 10, + "parent_finger_print": "170e05ac" + } + ] + }, + { + "seed": "efb38eb39656df5f4f77fa93c605215e3ebd42bf0479082bb88041db8d3aa0a8", + "private": + "xprv9s21ZrQH143K3RVbxum6hBMtDNN98Upp8PCbZMK15E83xRi54qE7QpkVoYkXtNxNCiLDGZ8bnmhpv2p5aeuZK9jnw9hrUbtX9XhAXWViSVp", + "public": + "xpub661MyMwAqRbcFua54wJ74KJcmQCdXwYfVc8CMjicdZf2qE3DcNYMxd4yepiP1GFkwK9T5HDCFF1veAJukRdoZ6WGjLcW34ZH9LUMnuzi8RH", + "chaincode": + "890b98cc8966ad399f509886844519a753f57cd16b87902ec04e14d287fc8ac7", + "finger_print": "362357c8", + "child": [ + { + "private": + "xprv9uJE3VJ8czirzz9Mx1ze2zJcPpzBHSj7FJLYqW92ggrGuNYKSQ9YSaBoPvWpxwDSE8kk96ajyXgWRuaNpTP4FZxnR6QucFWqD9h5cSL91Nc", + "public": + "xpub68HaSzq2TNHADUDq43XeQ8FLwrpfguSxcXG9dtYeF2PFnAsTywTnzNWHFDc1m2cRHMRj3kiUVdZs7sWmyD8yXQVzXDjTRxq1pRMsaR8Hkcn", + "chaincode": + "f0edab80e5032f0b8178a4ecff3e458c90af7224b0e8221011263e7416ca448a", + "finger_print": "d189a4d9", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "362357c8" + }, + { + "private": + "xprv9xKcKBhXDUyCFzE5duCS7KgDHVuBoJd9NhTXFdmB92TJiynSePs39681HEbbo6eAAFwJZ6QMsGDms14kqERtznGVXX2Nh1MSgTsUVDEktTG", + "public": + "xpub6BJxihER3rXVUUJYjvjSUTcwqXjgCmLzjvP842AnhMzHbn7bBwBHgtSV8W33VpTeD2dTrodgvNR1fiZBrmf8pQNue9Xs3hNkXB9BHEW5KYf", + "chaincode": + "6a777135f8e997774a274161dd4f5b7d11bd39d59684ba48f6026005e5256238", + "finger_print": "66c25289", + "index": 1, + "depth": 2, + "parent_finger_print": "d189a4d9" + }, + { + "private": + "xprv9yRDxsMMYWT79H9t2Bk8uUz3DuhtDt8hsuk7ck7GGBviatCkXJ1wCaafxAzmdtNon1n3wk74kgA6drfENdb3PXhuFUJ77s4r5r3a5epWgjw", + "public": + "xpub6CQaNNtFNt1QMmEM8DH9GcvmmwYNdLrZF8fiR8WspXThTgXu4qLBkNu9oS6wuPgn2emd5SX9gFFijNZHczuQNXPi7wfKDAndxQouGQDVhar", + "chaincode": + "9922d42aee23ca4b4fcc5510aa506da2bfe1e4e6debf78f8dcf1420e19db437e", + "finger_print": "6869182b", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "66c25289" + }, + { + "private": + "xprvA1K4f1vVZTDqRu4a9ZHk5Yop4Lwjkv79XuTZaXiVrzdK9msxFaWZDKAsqK5tSPnMvre7nCrNozDQGteoUk5uaEvG5xvJYVEPBrUb1vZMHz3", + "public": + "xpub6EJR4XTPPpn8eP93FapkSgkYcNnEANpzu8PANv87RLAJ2aD6o7pom7VMgZE3g797p6caSF71JP1SnEwyRRvnQQKfTRL5WjCjJsMaDS6cUD5", + "chaincode": + "bb13194c0e61297c2d01359a9143f5d02f036ee42e5edc9a14a8d246dfd5824d", + "finger_print": "8590d170", + "index": 3, + "depth": 4, + "parent_finger_print": "6869182b" + }, + { + "private": + "xprvA3QdQUqQVSGDatR4kDZ8xXNrmHA7FFBqfY1M6Gs6TJAYbGZCVePKCbEoJ9Nni5RMRRBJKMKYBMXL1LykAist6EgRjAWRp3sLmP4Ueu68cYZ", + "public": + "xpub6GPyozNJKopWoNVXrF69KfKbKJzbehuh2kvwtfGi1dhXU4tM3BhZkPZH9SsvbRdUnP5oYsayfK2VYYuSEmTtMMScB7FUJEnrP43PbGgfAN2", + "chaincode": + "d46414357339511b6d046eb6bbe9bce8ff97557a40858fab47ee4705ba329338", + "finger_print": "ab29b263", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "8590d170" + }, + { + "private": + "xprvA5ZnthtBvXo2f1jbQJnnXCR2mH3y9NMKmcDm3gWzzdoXYScNYrQAEp42vqpXerY5JCTUMyNdeeD8GwTjJE9syXrkDUX5B8EqSvf8St5NTPr", + "public": + "xpub6JZ9JDR5kuMKsVp4WLKntLMmKJtTYq5B8q9Mr4vcYyLWREwX6PiQncNWn9pFcrX2ksCe8AJjv73U5uXVfqZeVYdnaFXqtrjgT4iRT7rwxx5", + "chaincode": + "b248bab6a6fa5cdded1ac9ccf792e0d3cdfd932880c8471966c1064c9faefeb1", + "finger_print": "ce99243d", + "index": 5, + "depth": 6, + "parent_finger_print": "ab29b263" + }, + { + "private": + "xprvA7i2vbpMvKHLoEenmj5P9hubrvFMQpHFZ7TfXAWjy9P7ALtsUkzdU57VdX389aQH37MSHNHaUhb2nAGBV6TnY3KMEzs8AEJtdsoSJRn1ZaV", + "public": + "xpub6LhPL7MFkgqe1ijFskcPWqrLQx5qpH16vLPGKYvMXUv639E22JJt1sRyUmcNr6j6Dp6ZVaRm8rEcW2es4K4YrgBiw6LEiGHcmeMxRbHTPgM", + "chaincode": + "81b3444defedd198c4742ff94a180d2d89d60cacb205803a4999d0d5701eab66", + "finger_print": "6ee274a2", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "ce99243d" + }, + { + "private": + "xprvA8tNAfrt5JnTtd2c7A1MXNq5zVSb8GHjtxeMMUXWTLDQPM2ZZJybCzv7ScaWGpoJvgqSHQ54FXaTgL5A8uqVKNqx29JVHnH6bJimvKD2zxk", + "public": + "xpub6MsiaBPmugLm7775DBYMtWmpYXH5Xj1bGBZx9rw81fkPG9Mi6rHqkoEbHrzepEkbAvrWBDh64Yp6WuqCY7CZFCPiWeaP34JduBuBBWWD13b", + "chaincode": + "530411871fed3837cb76afeb8c9b0866072cde672c9b8d6976c1294b1006d17e", + "finger_print": "6cfd50f4", + "index": 7, + "depth": 8, + "parent_finger_print": "6ee274a2" + }, + { + "private": + "xprvAAkhAiDYTZNHcm53tVBzMwXntfSTzmwq5KH932jXErYGuWx68kVBy7YQMT5E5TNGsMnZpV4uL5RM4K2Brxnw3gdfRDXiQegM4CSyvWUsdJs", + "public": + "xpub6Pk3aDkSHvvaqF9WzWizj5UXShGxQEfgSYCjqR98oC5FnKHEgHoSWurtCi9T6JDN98DBiakQW4eLCCkEcGWR4JSF18MCH7rZD6PFzAQ7sZg", + "chaincode": + "5b2a2274ba6ef0164d8da2df1f9b9270ed6c2ae183416a3ce7374d7462ef6b63", + "finger_print": "699d6438", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "6cfd50f4" + }, + { + "private": + "xprvACcPaoSPTQmw5kNWszSGzbP9nZExCCVV2nPnPxEcgrYbp6tun2exXsos7w1DijE763dkJafWcvwLfCn7AaFWMf6cPXXv3Yv5w3ZmEVHRd9Y", + "public": + "xpub6RbjzJyHHnLEJESyz1yHMjKtLb5SbfDLQ1KPCLeEFC5aguE4KZyD5g8LyEqCTAtAXQJsRCVNrWYqgHfrhKjhUaLyJ8kHZvggm2WprAb9aR8", + "chaincode": + "f628c3cfb24f2db587d6be6115c7e394e125f57dc405ecb4eb876fead1402889", + "finger_print": "8f189842", + "index": 9, + "depth": 10, + "parent_finger_print": "699d6438" + } + ] + }, + { + "seed": "fd13256213a32a4ea1394c8ea21e85f9bfa310aa664c1dc527d59329cd863297", + "private": + "xprv9s21ZrQH143K43X7urbApJu36pWcjh4ZMWwibPNwQzw8trrm5uVyuWkpQSVjitJjVBfF1ky6PH7GiQK8yT8fnfMgnqdA1CreMMBHBdGes1q", + "public": + "xpub661MyMwAqRbcGXbb1t8BBSqmerM799nQijsKPmnYyLU7mfBudSpETK5JFjbetiB8iwuK8bHqPrf2WiNtdXoB4UU9FLrzvSdkhfCNfJBUjME", + "chaincode": + "c76f040d7fa70732d38af6a17dbff8a084640f47cab7761546f60cf0ba90cf34", + "finger_print": "7d72eb1e", + "child": [ + { + "private": + "xprv9updGyYM62GkFZJ5R5zFN4BmmqDdEu86cNxQHu3UZRph245orYhfhA6q5q8fkhMdjPAZ1BKQVBeB5dRJVjVivuss18hU1bCL4yqrPYTGTrh", + "public": + "xpub68oygV5EvPq3U3NYX7XFjC8WKs47eMqwybt16HT67mMftrQxQ61vExRJw79hq1w8EqHtXj8KUGNQ84jcEutSBbLjfDh2C2rAnaHCLJpeCUj", + "chaincode": + "f149f20d9389d16469397ed180193c09cb6788a48b497dded279789c59d035fd", + "finger_print": "c2ee4288", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "7d72eb1e" + }, + { + "private": + "xprv9xDP9CvnPN32rfnFdeJHcch1AqeXdPCvq95WKCY9v1rJtdS5KtkqNz43oDS49vMSiVMTv6HcwRR9CvbQeD2KQr4cJ6F73c67K9jj4mgtTbU", + "public": + "xpub6BCjYiTgDjbL59rijfqHykdjisV22qvnCN177awmUMPHmRmDsS55vnNXeVRhb3T9E2ZgFBREbSfT1iTw2TWfB4e52MYufU3ATt6GxZEsRtV", + "chaincode": + "cf9eb1bbce8ec9a12f3b14b727c46f41c5dfe30b9bb09a0fa2bf87d345361aee", + "finger_print": "bcb05b82", + "index": 1, + "depth": 2, + "parent_finger_print": "c2ee4288" + }, + { + "private": + "xprv9z3rfZdnyrnq7o9WfpHuFHrkAwoSKryoCN3f2vWVcRVrmvCnG3nLGzkb8QCVUSpZ8H1yu8NvJpmMjpLssCKMjfXqaHav4vLppUYRTvtjAdF", + "public": + "xpub6D3D55AgpEM8LHDymqpucRoUiydvjKheZayFqJv7Am2qeiXvob6apo54yffKe976GAmovif3YnqdCdXV8mDbidmDQYLT8c3uqwnQQz99ux2", + "chaincode": + "593e4c862ace14774c72a24837eac50106680af06aa2df06ce0715276d81d7ac", + "finger_print": "7b338609", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "bcb05b82" + }, + { + "private": + "xprvA1T5GyYqexCUr9LqanAVjZkzt617k1nBW81nxT2eUkEHetBUMrD8JUy8J6Ro23LD4wKnoFW34cwSqCVcrsavNL3pMgHzXkYiLErkqcku9gF", + "public": + "xpub6ESRgV5jVKkn4dRJgohW6hhjS7qc9UW2sLwPkqSG35mGXgWcuPXNrHHc9MgjLqAwGyg4tPeo31B4AjaxaNmv4SvgZGkfvZRJ2hnXiEwKivU", + "chaincode": + "38c97cc69307bbaec7e666edf4af5df6e328dd7fdba8fa9beb1c88597bd7ad9a", + "finger_print": "8269ab38", + "index": 3, + "depth": 4, + "parent_finger_print": "7b338609" + }, + { + "private": + "xprvA3PHSqkSZyjELSntXygtL7FEdU9bTAY3h6SCjbYtoPF5nQj4mkNoRmL2jB6Ya58Q6h89ZdDPjGuwD2r5DNjPcZovHEY3aoWL9fMv2QDJ5vp", + "public": + "xpub6GNdrMHLQMHXYvsMe1DthFByBVz5rdFu4KMoXyxWMin4fD4DKHh3yZeWaTZubvMDYkvcFvkHiHwmRxBbqszvqs7RPeiu1WCZHnuVo5zU7fZ", + "chaincode": + "100cdf1a123793e1ecbe408aa7492b6a8fc11a9946d52325117164b84f82b422", + "finger_print": "9c064ca4", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "8269ab38" + }, + { + "private": + "xprvA5TLanHmJXUTEj1ShceF9zsJdeXKZzJDrQ78b23KEZVeheJQ8wNhAtTP2QHjnhVhhW8B3NmoaQ8ZFYhadhfWUDz4CVSBxHc7dHMPVmDvKJR", + "public": + "xpub6JSgzHpf8u2kTD5uoeBFX8p3BgMoyT25Dd2jPQSvnu2daSdYgUgwigmrsdzMFEzAf9vnkjRYcr2ZPFWcnVFVuyGaVZGShu1R8MwggFh5WMQ", + "chaincode": + "761d6eb275fb470673c6f4b9a9618d3745e7ae8b9da1537a838bea65120d939f", + "finger_print": "85984721", + "index": 5, + "depth": 6, + "parent_finger_print": "9c064ca4" + }, + { + "private": + "xprvA7AuqqeiKtkTYj6EiDRDanPDvn8cKgr1dyvm7TKWaMP7AT5EUKMbsiYhiTMnyk93MB6g1dfiQyzAPi7qgAGYhu84ne541r5i274LWCfryR8", + "public": + "xpub6LAGFMBcAGJkmDAhpExDwvKxUoy6j9Zs1CrMuqj88gv63FQP1rfrRWsBZj4hbZnoZTWNmDewVcLU4Cv9sRUVHtEdCpjLWQvmwVHFDTUSNYd", + "chaincode": + "24e9172a145a60932d025e86ef923e85b5691af5baea51072da250b07294d6b5", + "finger_print": "88148d46", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "85984721" + }, + { + "private": + "xprvA957A2GdFynRjUXu6exxqoqsRNFahwU7YKFsa3waAtofmuJKMCFa3R4YWgQiqFZibS3dnNAFNaM41zh5tgJUcTvqN9zGa7phtNgHoAiPLAP", + "public": + "xpub6N4TZXoX6MLiwxcNCgVyCwnbyQ657QBxuYBUNSMBjELeehdTtjZpbDP2MxkcHSoXXo5XeFoQ2QfYwGd4rkTJVPr5GmJ9CXpEbvWF16kThT8", + "chaincode": + "c4630bd156063bda2c1657d307945d3cd3d732f9f65d8cecc7236256af30cbae", + "finger_print": "79a3b6b2", + "index": 7, + "depth": 8, + "parent_finger_print": "88148d46" + }, + { + "private": + "xprvAAr5xAp9ssyUuCopEVQHWRP2bqM4WUpYxLiMhL39RKRpWdAERDBZnFeAu7pWcfEE5bZ4nTPTZqurSLudhLYbsgnY9M648PWvEwvTxtUmyc2", + "public": + "xpub6PqSMgM3iFXn7gtHLWwHsZKm9sBYuwYQKZdxViSkyexoPRVNxkVpL3xekQ8gTh3RVpgsmqCWXLcT3GD5d5YxC5ZZw27hCd9Kih8eqYDZdA9", + "chaincode": + "20a9b5aebbfaccf0645bd936122ac6c42bb91852912c3ec86b146192e7b97812", + "finger_print": "d45d3144", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "79a3b6b2" + }, + { + "private": + "xprvADPu4mkykkiLeMyNaTkPv9mZNioxv1sjUGtvGEFA29oN943cRK6aCk3AgkSBmoYHsJGNExMwcsh1NzsXTEwaWGnU2uQf3xfpGhPxFixmsRE", + "public": + "xpub6SPFUHHsb8Gdrr3qgVHQHHiHvkeTKUbaqVpX4cemaVLM1rNkxrQpkYMeY4RvB3q9S8Jxjmdh6HLW2urNS7RNd86jKVYFjdLeHdCFr8HSNZ5", + "chaincode": + "ad969dd1916666bde1145a212a4e691d0c3f000407315c0ff06d3edfa804d3ee", + "finger_print": "5de7cd0f", + "index": 9, + "depth": 10, + "parent_finger_print": "d45d3144" + } + ] + }, + { + "seed": "93a5db07440045213b194ae6c14989f7fb9aae8033f396fd6f71902b83819b5a", + "private": + "xprv9s21ZrQH143K2kV1dgDZaKEZahWcMk7GK8GSUp6Co9NG9hStHUmeGsZj9T3BT1aB3iLS4QmgEzoFFLnfvtY4AfdXZt3tTjYzqqnPwz7vYYm", + "public": + "xpub661MyMwAqRbcFEZUjhkZwTBJ8jM6mCq7gMC3HCVpMUuF2Vn2q25tpftCziD7nhQSLFZE7kMc6u3abuE85F7ASc38gtn6c6ad1HE5s4tb5Sh", + "chaincode": + "457d420bd7a802b1aa0f2ed7be5cce5886e380da4bfb81c07da2ae057d64ea3d", + "finger_print": "3e3172d0", + "child": [ + { + "private": + "xprv9uMfDNn2hAkbgwpunb4RABQfENXYEAwNMJvigYNQcpub7mEaPZo8kXwfGiCjPKKxNzHWNwPGFizRpAAGr2c94MNh9tbYm9QFsXRnGwdtfb1", + "public": + "xpub68M1ctJvXYJtuRuNtcbRXKMPnQN2ddfDiXrKUvn2BASZzZZiw77PJLG9812Zxh7J6MHZbrhtPf7JqBf57D6LagzRWh2nMAfmVfmLhdMZJZt", + "chaincode": + "2649f0c60847b4bfd464e8a77d447a52f748868e9a2dd11a10cda00aa81a6525", + "finger_print": "ef97e29d", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "3e3172d0" + }, + { + "private": + "xprv9xYRUDkkTdHBuVZTqp9xD5VYV4mCte3wdiKYUktY64ELdCScyUq3cN41vfkzDLU8kHGArRXiWE9ex4dzeNtzvxYwmhy9HfoaisPApd2MABL", + "public": + "xpub6BXmsjHeHzqV7ydvwqgxaDSH36bhJ6mnzwF9H9J9ePmKVzmmX29JAANVmxUnmBrm56tGR6tbrLt8kkuDYhGLj3AGy3hvdNSVEySiNCWpyNF", + "chaincode": + "86dfddb071169b2a477373d17cd7bd0cfb652fe2fb1200e65fc0c2cbdd59252f", + "finger_print": "2e006d5e", + "index": 1, + "depth": 2, + "parent_finger_print": "ef97e29d" + }, + { + "private": + "xprv9y12abLRwv713FQe3dXf1qJ7KGT7wG6EgidoRMfMKev8Tgw6YfYnGh7itwcuVTVGYjXyuyxsVBiAXV6BbpTL6tRhiAppxWebpcawmf7shxP", + "public": + "xpub6BzNz6sKnHfJFjV79f4fNyEqsJHcLip63wZQDk4xszT7LVGF6Cs2pVSCkFruojm2rLgN944dvy6TCQTjibhpLt2ZQiJuowMtkQV5X2oVnFz", + "chaincode": + "bc33b37a890adf283c5b4f7ea541609707287ebf361159df02ff25676673e250", + "finger_print": "ee37f463", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "2e006d5e" + }, + { + "private": + "xprvA2J7CHC8gHa1KCWdDcGqQ6nhEivL2oZ68xrfTzcd367mdtWxy7ibx2dZEfwK9zffkR2UVtrzYASkUi8fxJnUrQ3gFRVM3JasDifMDRQBADx", + "public": + "xpub6FHTbnj2Wf8JXgb6KdoqmEjRnkkpSGGwWBnGGP2EbRekWgr7Wf2rVpx35xP9q4F93te6wx8Fhyahnzf98s3s566deZAcc5QRMWG92EayG6x", + "chaincode": + "3ce501a84dd71b79a88c178a9b828f12a5393e750d0c0a3baa55b7ece0b537b0", + "finger_print": "c86ddc50", + "index": 3, + "depth": 4, + "parent_finger_print": "ee37f463" + }, + { + "private": + "xprvA3u8fvNQECvXVtRN8TkHNGby8evjxu5GgduLgd2QnkHVYiZDZvChGquLz8xgq5bJosurHvG5ErWWEc4m6KmA9asNo5RhXdRwbvDYghG1SDJ", + "public": + "xpub6GtV5RuJ4aUpiNVqEVHHjQYhggmENMo83rpwV1S2M5pURWtN7TWwpeDpqSH4m9nNhKjC7aZoBmcHSSf8rLBd7CSHWYddwjvAVhA8SAAMrrv", + "chaincode": + "57eb28098af8adc5facd40b2c2f64d535c8b6727253b25729fb44e76822f46e0", + "finger_print": "ff41f05d", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "c86ddc50" + }, + { + "private": + "xprvA6BeDdHgRoCQFTUqm2L9x4cnrBwLRBJatqGFrahx8PvMPifRcPgDTP2gyizKpF8bT1jQn1PoypCDnvKszS89yv1W4YctfTPTGXTJSuR3z8h", + "public": + "xpub6KAzd8paGAkhTwZJs3sAKCZXQDmppe2SG4Brey7ZgjTLGWza9vzU1BMAq11rUk6ML6Nj94tFcZv8qC5WeuvTiV3hPrCPv5SbreDxXHawCHq", + "chaincode": + "56fa1d7786e07c36b9d56283a98a1f7a6bbf2d306bc10de27080481424514c27", + "finger_print": "d3325e5f", + "index": 5, + "depth": 6, + "parent_finger_print": "ff41f05d" + }, + { + "private": + "xprvA7jzdQonGcUQ8BKo4rbFP7FHKjr56GTEV5HknYWq8zCKVdGTFxC4wpoRyNGA1Vo3GGTi4ifNxh7aGeNVrmw8Xsbgz3eLY3Y4ZQWLFsqP1E7", + "public": + "xpub6LjM2vLg6z2hLfQGAt8FkFC1smgZVjB5rJDMavvShKjJNRbboVWKVd7upgt3DwzCZUdREp229mFTfRTSBfiEE96GKtkKAiJq36eE5T4HaHw", + "chaincode": + "a6857184633f92fb4eeb03dfb9edaefab185b0cfec55f0b0e68ca0025f0f21c5", + "finger_print": "eb5785f0", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "d3325e5f" + }, + { + "private": + "xprvA9oRVwUxkoXaiVUSCA5VsQjRGTBZt3DQwHNkv8rBhKps8a9w6z1EAPZg3eLkxxykDZtzreNFcN3fYMeu28hLmmtV5FVKb8bJTQoJdfKyJYU", + "public": + "xpub6NnmuT1rbB5svyYuJBcWEYg9pV24HVwGJWJMiXFoFfMr1NV5eXKUiBt9txAGppMJjd4JnVASNwYotLbcXrGqHxfwGaHDYnPEtb56mgTSX1r", + "chaincode": + "e19c4d52a9667c086e2d2475bd0ed2c5db20203b876677151d80d9e22d83fab6", + "finger_print": "54382456", + "index": 7, + "depth": 8, + "parent_finger_print": "eb5785f0" + }, + { + "private": + "xprvAAa8hYDEsHzQSvsbDnY7bRazBJvz5WNWUsQLuh4xx71L7ZjxQ2Bjo3zRZFEbXQ65GDTnjR5jg2Ss6bZHLkCv1g5HeuRQhHYfZtb7oRr7C2d", + "public": + "xpub6PZV73k8hfYhfQx4Kp57xZXijLmUUy6Mr6Kwi5UaWSYJzN56wZVzLrJuQW9T9kV6vrg8SwqRvBes9paub9iqBhVgdcwX3aGa8AC6j8WM69W", + "chaincode": + "090f12b40fe2b424b8a7872d6b83ef2c96f0871de9458e0f10715618caa942b5", + "finger_print": "614f72ae", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "54382456" + }, + { + "private": + "xprvACYrFJ3btEiAnUvMM2x536AJK2THsy9xMJbu2SEt4aBjLTTgeyacVc9ZU2eF3hTCf1rAA1rKh1RwXq5sGhzZw1F2htGXXzCHzKKQubeRdj9", + "public": + "xpub6RYCeoaVicGTzxzpT4V5QE72s4HnHRsoiXXVppeVcuiiDFnqCWts3QU3KHxBRxcD5hyGkRk8oAwhiRCLdsaFcsWqhkj28ftTZHyVBATqQuw", + "chaincode": + "2c0156cd7989e74499f7264e7c22c80c4d8c44c2d803f77c2f36104b68f9e3a1", + "finger_print": "6ea865fd", + "index": 9, + "depth": 10, + "parent_finger_print": "614f72ae" + } + ] + }, + { + "seed": "44badd1dc27921e79129f5d129bfb69ffb6b5b1d542908cad0b7be095f832fcb", + "private": + "xprv9s21ZrQH143K3Xg2iG1em2KghS1e6bxEaPmoQqq2JmjYcgbAGWAB4MhSRwNY4zdsxQqGaXTw6hQnVxyEh6TFByNvuwXoDaFpe1DzdEX9cNU", + "public": + "xpub661MyMwAqRbcG1kVpHYf8AGRFTr8W4g5wchQDEEds7GXVUvJp3URcA1vHCVnLuSvVbDY6PTR5KfVnD23bxMAx86u8Xq5KVWBWomG389PXRP", + "chaincode": + "93bf4401a1e94ea036ca0994f612b39bf303677fcd7a9542dd23a576f763ec43", + "finger_print": "b4eb9301", + "child": [ + { + "private": + "xprv9vEGrrg1THyFF2uTqHxfxd3frXrzVP9prekcCN9wTk5qic9grDdrFxEmkcWkJGMzuWRqGueGfyAC4JWrKmck4NTYTryXsvsJfCyhrB53JwZ", + "public": + "xpub69DdGNCuHfXYTWyvwKVgKkzQQZhUtqsgDsgCzkZZ25cpbQUqPkx6okZFbtyJdprpiJVso7prHFqRPm3aRNF23JZG5hgEgbsaVfvskyDuS6h", + "chaincode": + "b770f2e37e4625098e1557faf7d3bd369362ba06e98cd3b2a5919e28509e9173", + "finger_print": "3852f5f9", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "b4eb9301" + }, + { + "private": + "xprv9wCHxFC9G7afoBbyTZAP3xmjuK113fisrVNK6hq2d4yjA5eGGitF69ffBwU2D81pYYJH7nQgZTuVpQBePz4YfW3xKF11twnXURAi9mDmHpZ", + "public": + "xpub6ABeMkj36V8y1fgSZahPR6iUTLqVT8SjDiHuu6EeBQWi2syQpGCVdwz93EVncyegGFrmtwj7kcqkMLfmSxB4yqUZuVyF7S5Bex4uaDtLbGj", + "chaincode": + "dd82f2dbfe7cd31366d18756c90e87da8bef1496d6675cb958018a3c31272695", + "finger_print": "dda73612", + "index": 1, + "depth": 2, + "parent_finger_print": "3852f5f9" + }, + { + "private": + "xprv9zHujuckhXtHghxuCPoD8MTeCRnrreRnju4CDCmAWjJHPNtiAy7yteHRca2GPTJRn8X1easMVGqZYHHYstn8FRz5g3pxnKMkiAyjejCoaH5", + "public": + "xpub6DHG9R9eXuSauC3NJRLDVVQNkTdMG79e77yo1bAn54qGGBDriWSESSbuTpJjr4SLjyq8tzN1aQEEKmP15LnJTcZ38aBdoZe6rMFS2TdmsLY", + "chaincode": + "93973584473622cd88a53608a835c6a7399ac81fd52ec1236e199153b2106cee", + "finger_print": "87905f32", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "dda73612" + }, + { + "private": + "xprvA1YLxQugT5PemQ6coRwTKASwUiThFfLNSy4LH1hPtSPdv8cQmhFpvh21UQdp9pGv8NzbkwZoyXvW5v89vYnwPD79KxYVh3UAMhA3WzWCBya", + "public": + "xpub6EXhMvSaHSwwytB5uTUTgJPg2kJBf84DpByw5Q71SmvcnvwZKEa5UVLVKfzZdni2hujybbuCKBLdF3yUtghhuMVYMyHh25SdRky8WWtbMkp", + "chaincode": + "a55ed490db7abe96356855aaf538ea8c413e57d539f75421b53ad0066397f44d", + "finger_print": "615288ba", + "index": 3, + "depth": 4, + "parent_finger_print": "87905f32" + }, + { + "private": + "xprvA39BFfBqc47xFNeoGDM5z2NdYmoKgykknF2A18zXZWfdhXcC5rC9vkKduQTVXUqCytAYHGQqCHs9v2CivKDmaBFLBpVQ1Y3g5ywUPvBujFX", + "public": + "xpub6G8XfAijSRgFTrjGNEt6MAKN6odp6SUc9TwkoXQ97rCcaKwLdPWQUYe7ki3pver1mjZo7nobomsDVoZBfJzf9SrCA3NNjmQ2ucTFAoJ3bxr", + "chaincode": + "e89527808df393873ee04b2c6c3856fb4dee2c822d86fd845d3659deb4b377cc", + "finger_print": "093879d6", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "615288ba" + }, + { + "private": + "xprvA4Nkhv3ncdUtPNCdRaJgpG2un6vuXMDPZReLQnfraLsCEfefKWykdajTBXW7R3MJ7Yea4jMM8mNSANn2kBZ9t6B5DGrWWx7YhgtEPMnDodv", + "public": + "xpub6HN77RagT13BbrH6XbqhBPyeL8mPvowEveZwDB5U8gQB7Tyos4J1BP3w2q7UJpzaX5p1iHPX3YTw9S6Wqy6eghGLgKpxdfc13ch1CFQQ6p6", + "chaincode": + "a0ca6d2ebd093899ab5e52c19f078c651bd5222188824ee5878abfda7d71fa68", + "finger_print": "6e95a132", + "index": 5, + "depth": 6, + "parent_finger_print": "093879d6" + }, + { + "private": + "xprvA716tWS4VyoxPf9D6vuaigg3DVZWdV28Mqrg9Qo2usKZ4uGnAdqpR8fNLsEDefRrPob1LQDxFHmMJP9EX51DJseaJhN1RtRJsuY7PSNFsvN", + "public": + "xpub6KzTJ1xxLMNFc9DgCxSb5pcmmXQ12wjyj4nGwoCeUCrXwhbviBA4xvyrCAp9KfMMLtAeN5aFy8MaX8pbeSkJuNHK1fVZS7nxCNDUzfcUwB5", + "chaincode": + "94baace443a9e5c2e29ed7495c76ddd1c7e7cb5d3630c06023c5d8b5b4119f0a", + "finger_print": "ff0003d0", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "6e95a132" + }, + { + "private": + "xprvA9woZtc1NT3MPmRXxupRgrRq9m9bzhacpXX9XAwE7DvyFWPAiu8mgFksDBByiS7U8SiLmPgcr3ok8DY5Gj6p6dmeaSRcVgPZveUReEhYDaj", + "public": + "xpub6Nw9yQ8uCpbecFW14wMS3zNZhnz6QAJUBkSkKZLqfZTx8JiKGST2E45M4SJQjew8kMRY2Yw59WDfxTtBWdLMrjYSpSao56iNPx6phH6um7z", + "chaincode": + "14fd629ac7480fb9323877caab3605ae73a38ab44632aec53eee42e1d4e7c9e4", + "finger_print": "38b6a0fc", + "index": 7, + "depth": 8, + "parent_finger_print": "ff0003d0" + }, + { + "private": + "xprvAANQb5UPKJM87G7r9TBZnG4Nntk55umnPaRQTfEvjgNN7cH3jvSLxCD1W7xfMawGCcdrRnNmy6F5Cipiw2TUSydj2knCcoLqxHpMnjt2JQB", + "public": + "xpub6PMkzb1H9fuRKkCKFUia9Q17LvaZVNVdkoM1G3eYJ1uLzQcCHTkbVzXVMP3DFQyk5aNWw98wB9o3iNY88csAyaur3teWaitbZBsh9i6qbZ4", + "chaincode": + "ab778a52ea973dbfba9c7cd86e09af05265c056351a3bcf849cf72f6c02ef617", + "finger_print": "f5d52b2f", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "38b6a0fc" + }, + { + "private": + "xprvADeAcTbmPrYvUzBVgQNh9WLKDWJAsa7H6dzUCrVoJyrMn4frWabD8wZcQBNa4riGHoBvdTpVM23uWTbtEcF4RPpdYwcFD3772yYuHFazpsh", + "public": + "xpub6SdX1y8fEE7DhUFxnRuhWeH3mY8fH2q8Trv51EuQsKPLes1147uTgjt6FTLgfvnEiemF8t4LxsjnCQfh1S7iggvr3SjKtfxt3KgnvyqYh1h", + "chaincode": + "4361c548dcac7b01b50e33c8e5b7ec60831075e2dca0c5afcd0fc7af69b5f3dc", + "finger_print": "b4f1aa50", + "index": 9, + "depth": 10, + "parent_finger_print": "f5d52b2f" + } + ] + }, + { + "seed": "ff2b58dd549cd1ab8ee05d920c3836f411cbd7eab6aa667bf04c47bb6ff994c4", + "private": + "xprv9s21ZrQH143K3eLvtZWvMYP8LrJJ5S1Xdk4CNMeFdqZ4qgkmkHu2Ra9tiUQmFkxefEbxXjPbwTPab8cpxWU7q8V69PABSHga8WUMwroap2j", + "public": + "xpub661MyMwAqRbcG8RPzb3vigKrtt8nUtjNzxyoAk3sCB63iV5vHqDGyNUNZnJCQpArJykRgjsuAxgVA1cKuMTz7NizzJoV9iTchX6AEMC2BNS", + "chaincode": + "9f4c91ee5784eb850c919c85b8ed727c8edeca15288c542288365a84135dcb21", + "finger_print": "d08e44b8", + "child": [ + { + "private": + "xprv9vS4BCTYzDYaCUSEzT1q3L35WJ6UPjJL1WKLH95nH7kddZETtydHzQ29rp6PJSCLm4q8hkcTwX2E54m83KJPVrUy25NrFWAGhaHidcGkk9s", + "public": + "xpub69RQahzSpb6sQxWi6UYqQTyp4KvxoC2BNjEw5XVPqTHcWMZcSWwYYCLdi4NNf3btmuAiLJZX6sYn3fBWwTMvEFiEdRaKLvMbBRUk4tpWCip", + "chaincode": + "cb037fb8a2430772631011cddfbe48b25d782e51b3cddc16756c26d57b3fc987", + "finger_print": "7d44cefa", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "d08e44b8" + }, + { + "private": + "xprv9whggTEu4HzUHnXkbTuiFv2Mo2pJ4S2FDJxGAEn8GYn7dzNBYqDVoiKYgzkcqN2MYzkg5QJFZs8CghF3GC2BYLw8QBcfkXrE9qwoDjY3k5M", + "public": + "xpub6Ah35xmntfYmWGcDhVSid3y6M4enTtk6aXsrxdBjptK6WnhL6NXkMWe2YEwhJG2bG5ALLsPu2xq87w4Wben2SD7KQATGReC2fNtpWqDykmK", + "chaincode": + "cc6b65fccd878b7a4333d476e0ff7038c019d6ab889a2b17d01cbe9f274623ab", + "finger_print": "8112b783", + "index": 1, + "depth": 2, + "parent_finger_print": "7d44cefa" + }, + { + "private": + "xprv9ycSc4Q3dhRtVVEabdwm7BMyqcv8Md8XNfhiaSZbuAKU8bjJghna3S9zd1T5hLYqFFdfQkcTRVMXArFgH7gzNr8f7s9dTssHzbRCHito1ek", + "public": + "xpub6Cbo1ZvwU4zBhyK3hfUmUKJiPekcm5rNjtdKNpyDTVrT1Q4TEF6pbEUUUJSuFfff2FmaDaXcqP2W4QLLf3qvRkhkxaQeJaoN72vtEYhPUiz", + "chaincode": + "b1e79bba7fd11f4430a219ac6c760dbea649738202341636376b4291286ba58d", + "finger_print": "89556cff", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "8112b783" + }, + { + "private": + "xprvA1Z6iR1xduGdvCK6WVGSZEjrSk5HXAYhPMwQoGwMoXHasPErfwr4G5gaaQ9h3NMrNRkHpfwirpwQNFsGjKLrRZgVfT57i7qdCpcPANVrp98", + "public": + "xpub6EYT7vYrUGpw8gPZcWoSvNgazmumvdGYkas1bfLyMrpZkBa1DVAJot14RhccABkDyiH9WXrJVsFcXxQgJxzRkfFhb9XG6QxxFCcxu3FT4mq", + "chaincode": + "b27157941e80a123448a7c2f47956ac58a2840aa11dc6f8c216795025f4f12f9", + "finger_print": "ea535cce", + "index": 3, + "depth": 4, + "parent_finger_print": "89556cff" + }, + { + "private": + "xprvA49aoAmfmy8QKMzNtr7s28pXqKrAvhy2WaHsEib2wZZcyHb5yphgGSbzrpbumZUZJ62QeGBoJNQpQ1guYhH8CRybiE1nYbAUJ5oEnJR9f3c", + "public": + "xpub6H8wCgJZcLghXr4qzsesPGmGPMgfLAgssoDU36zeVu6br5vEXN1vpEvUi58JBTcPQYpE8c2oyQXSgscbs1NUx6uuUBrwRnk1izYGnVLXkKa", + "chaincode": + "f2fda57c2e1b6dc695ea837c7c5329933bc0e62a9682c1d051f46609994be74f", + "finger_print": "6f380907", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "ea535cce" + }, + { + "private": + "xprvA58EiWxhq74z6kuDu56Fas2Pjd5MEUhMHZtnBU97Uuh8mzsiQ8Q7coC7wwJr2xSALqSde8iKXGJGdbiUzDL7ZDsfTcnhGmRQoutfDFFLCVV", + "public": + "xpub6J7b82VbfUdHKEyh16dFwzy8HeuqdwRCenpNyrYj3FE7eoCrwfiNAbWboCXqT9NRn12NVC8ptCiUrmzaKNwJhhX6oqN4XULyuty6iypwBGG", + "chaincode": + "5cb6838a5e172cb7cdc5dce81bb630aa11ef2ca3f3af9e5b2cb1e26933de0451", + "finger_print": "a96485a3", + "index": 5, + "depth": 6, + "parent_finger_print": "6f380907" + }, + { + "private": + "xprvA7SAyp1nqwHzmuTRrsKwkQQpNXGrLTiUi7CXYwYZFCAjc6zoBziPcoGjdS169pjM59b7dqzC6EVVJ4xGtqc4Dxzbtgj4EP8nProuLDAvcLt", + "public": + "xpub6LRXPKYggJrHzPXtxtrx7YMYvZ7LjvSL5L88MKxAoXhiUuKwjY2eAbbDUgtGXbvaKEp4aAAAbLqxqZYEMEwjr6yLDPDur4Hf9qG57yEPp7z", + "chaincode": + "6a5ebda89f70e2b24cf829fc38976d19b6517e46e2dec7c03b76fcb09689511b", + "finger_print": "b862329c", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "a96485a3" + }, + { + "private": + "xprvA9RhWCkCkFkEiGQDuMn7nii2wcqtkmCrEvT9wk5GZ95THuuaJi2z5daQmRUAY7PodLZ4CCZbbx9tT5LkQV5jG3HpLMGU9pbY5g6cP86Y1Hf", + "public": + "xpub6NR3uiH6adJXvkUh1PK89remVegPADvhc9Nkk8Ut7UcSAiEirFMEdRttchsQpW7dnYJaTkmJwYm2MQkk6HscBVQp4jSoVkgAjVDHr3GJSmD", + "chaincode": + "ae7188398371990da8f2cdf5503937c8b2ba87c49adccac8370feebf3cd7586e", + "finger_print": "59c60dc2", + "index": 7, + "depth": 8, + "parent_finger_print": "b862329c" + }, + { + "private": + "xprvAAcW34zSRjAPEva8i3ra19LebjuTcJ841usCTQ7gQqmc5uH76LHLq8XbeJAH5ZDjJKYXfryAd7DjxmT31uLcnTpzTMJkGNFjUo6h1iQuFD5", + "public": + "xpub6PbrSaXLG6igTQebp5PaNHHP9mjx1kquP8noFnXHyBJaxhcFdsbbNvr5VYu1dKAGGJx81jRBDevhjrLgg83K231EFiCY2dGHLuUG8Z6nxDX", + "chaincode": + "bb8647cc1b6357dcd18bfb825b34f631da643ba28753804d08e250fb8c05896c", + "finger_print": "c2378b9e", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "59c60dc2" + }, + { + "private": + "xprvADGAMvLynCbVCNxzQyyyPWYSpJJmCg6BssxxTYEWafcg8is1p51EkKkCQCMQyTq2qHjT31Xk1gpXn7TzJAStcfpFdQF1byMSr2p8ygDR6bq", + "public": + "xpub6SFWmRssca9nQs3TX1WykeVBNL9Fc8p3F6tZFve8919f1XCAMcKVJ84gFVgzeiDQrhSCPX19bTNN4LKF9zjtNacZo7UtUdcJagao7KwynKT", + "chaincode": + "f3628126d9d6ea7130adea47ad619dc6469abe11274789858b1736fb59a977d8", + "finger_print": "b18a5671", + "index": 9, + "depth": 10, + "parent_finger_print": "c2378b9e" + } + ] + } +]; diff --git a/example/lib/test/bip/bip38/bip38_addr_test.dart b/example/lib/test/bip/bip38/bip38_addr_test.dart new file mode 100644 index 0000000..4cc1ea2 --- /dev/null +++ b/example/lib/test/bip/bip38/bip38_addr_test.dart @@ -0,0 +1,41 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'package:blockchain_utils/bip/bip/bip38/bip38_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip38/bip38_ec.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +List> _testVector = [ + { + "pub_key_mode": Bip38PubKeyModes.compressed, + "pub_key": + "03aaeb52dd7494c361049de67cc680e83ebcbbbdbeb13637d92cd845f70308af5e", + "address_hash": "a374deb6", + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "pub_key": + "03aaeb52dd7494c361049de67cc680e83ebcbbbdbeb13637d92cd845f70308af5e", + "address_hash": "6a531625", + }, + { + "pub_key_mode": Bip38PubKeyModes.compressed, + "pub_key": + "02b5cbfe6ee73b7c5e968e1c515a964894f306a7c882dd18433ab4e16a66d36972", + "address_hash": "97c1e671", + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "pub_key": + "02b5cbfe6ee73b7c5e968e1c515a964894f306a7c882dd18433ab4e16a66d36972", + "address_hash": "8805ef61", + }, +]; +typedef Xpubmodes = Bip38PubKeyModes; +void bip38Test() { + for (final i in _testVector) { + final result = Bip38Addr.addressHash( + BytesUtils.fromHexString(i["pub_key"]), i["pub_key_mode"]); + assert(result.toHex() == i["address_hash"]); + } +} diff --git a/example/lib/test/bip/bip38/bip38_ec_test.dart b/example/lib/test/bip/bip38/bip38_ec_test.dart new file mode 100644 index 0000000..f6122ee --- /dev/null +++ b/example/lib/test/bip/bip38/bip38_ec_test.dart @@ -0,0 +1,78 @@ +import 'package:blockchain_utils/bip/bip/bip38/bip38.dart'; +import 'package:example/test/quick_hex.dart'; + +import 'package:flutter/foundation.dart'; + +List> _testVectorDec = [ + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "TestingOneTwoThree", + "priv_key_bytes": + "a43a940577f4e97f5c4d39eb14ff083a98187c64ea7c99ef7ce460833959a519", + "encrypted": "6PfQu77ygVyJLZjfvMLyhLMQbYnu5uguoJJ4kMCLqWwPEdfpwANVS76gTX", + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "Satoshi", + "priv_key_bytes": + "c2c8036df268f498099350718c4a3ef3984d2be84618c2650f5171dcc5eb660a", + "encrypted": "6PfLGnQs6VZnrNpmVKfjotbnQuaJK4KZoPFrAjx1JMJUa1Ft8gnf5WxfKd", + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "MOLON LABE", + "priv_key_bytes": + "44ea95afbf138356a05ea32110dfd627232d0f2991ad221187be356f19fa8190", + "encrypted": "6PgNBNNzDkKdhkT6uJntUXwwzQV8Rr2tZcbkDcuC9DZRsS6AtHts4Ypo1j", + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "ΜΟΛΩΝ ΛΑΒΕ", + "priv_key_bytes": + "ca2759aa4adb0f96c414f36abeb8db59342985be9fa50faac228c8e7d90e3006", + "encrypted": "6PgGWtx25kUg8QWvwuJAgorN6k9FbE25rv5dMRwu5SKMnfpfVe5mar2ngH", + }, +]; +final List> _testVectEnc = [ + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "TestingOneTwoThree", + "lot_num": null, + "seq_num": null, + }, + { + "pub_key_mode": Bip38PubKeyModes.compressed, + "passphrase": "TestingOneTwoThree", + "lot_num": null, + "seq_num": null, + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "TestingOneTwoThree", + "lot_num": 100000, + "seq_num": 1, + }, + { + "pub_key_mode": Bip38PubKeyModes.compressed, + "passphrase": "TestingOneTwoThree", + "lot_num": 100001, + "seq_num": 2, + } +]; +void bip38ECDSATest() { + for (final i in _testVectorDec) { + final dec = Bip38Decrypter.decryptEc(i["encrypted"], i["passphrase"]); + assert(dec.$1.toHex() == i["priv_key_bytes"]); + assert(dec.$2 == i["pub_key_mode"]); + if (kIsWeb) break; + } + for (final i in _testVectEnc) { + final enc = Bip38Encrypter.generatePrivateKeyEc(i["passphrase"], + pubKeyMode: i["pub_key_mode"], + lotNum: i["lot_num"], + sequenceNum: i["seq_num"]); + final decrypt = Bip38Decrypter.decryptEc(enc, i["passphrase"]); + assert(decrypt.$2 == i["pub_key_mode"]); + if (kIsWeb) break; + } +} diff --git a/example/lib/test/bip/bip38/bip38_no_ec_test.dart b/example/lib/test/bip/bip38/bip38_no_ec_test.dart new file mode 100644 index 0000000..0a0401b --- /dev/null +++ b/example/lib/test/bip/bip38/bip38_no_ec_test.dart @@ -0,0 +1,50 @@ +import 'package:blockchain_utils/bip/bip/bip38/bip38.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:flutter/foundation.dart'; + +List> _testVector = [ + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "TestingOneTwoThree", + "priv_key_bytes": + "cbf4b9f70470856bb4f40f80b87edb90865997ffee6df315ab166d713af433a5", + "encrypted": "6PRVWUbkzzsbcVac2qwfssoUJAN1Xhrg6bNk8J7Nzm5H7kxEbn2Nh2ZoGg", + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "Satoshi", + "priv_key_bytes": + "09c2686880095b1a4c249ee3ac4eea8a014f11e6f986d0b5025ac1f39afbd9ae", + "encrypted": "6PRNFFkZc2NZ6dJqFfhRoFNMR9Lnyj7dYGrzdgXXVMXcxoKTePPX1dWByq", + }, + { + "pub_key_mode": Bip38PubKeyModes.compressed, + "passphrase": "TestingOneTwoThree", + "priv_key_bytes": + "cbf4b9f70470856bb4f40f80b87edb90865997ffee6df315ab166d713af433a5", + "encrypted": "6PYNKZ1EAgYgmQfmNVamxyXVWHzK5s6DGhwP4J5o44cvXdoY7sRzhtpUeo", + }, + { + "pub_key_mode": Bip38PubKeyModes.compressed, + "passphrase": "Satoshi", + "priv_key_bytes": + "09c2686880095b1a4c249ee3ac4eea8a014f11e6f986d0b5025ac1f39afbd9ae", + "encrypted": "6PYLtMnXvfG3oJde97zRyLYFZCYizPU5T3LwgdYJz1fRhh16bU7u6PPmY7", + }, +]; + +void bip38NoEcdsaTest() { + for (final i in _testVector) { + final enc = Bip38Encrypter.encryptNoEc( + BytesUtils.fromHexString(i["priv_key_bytes"]), i["passphrase"], + pubKeyMode: i["pub_key_mode"]); + assert(enc == i["encrypted"]); + final dec = Bip38Decrypter.decryptNoEc(i["encrypted"], i["passphrase"]); + assert(i["priv_key_bytes"] == dec.$1.toHex()); + assert(i["pub_key_mode"] == dec.$2); + + // this method use scrypt with parameters 16384N 8P and 8R . very slow on web debug!! :-ss + if (kIsWeb) break; + } +} diff --git a/example/lib/test/bip/bip39/bip39_test.dart b/example/lib/test/bip/bip39/bip39_test.dart new file mode 100644 index 0000000..438ebc5 --- /dev/null +++ b/example/lib/test/bip/bip39/bip39_test.dart @@ -0,0 +1,26 @@ +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_seed_generator.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'test_vector.dart' show testVector; + +const String _passphrase = "MRT"; +void testBip39() { + for (final i in testVector) { + final lower = (i["lang"] as String).replaceAll("_", "").toLowerCase(); + final lang = Bip39Languages.values + .firstWhere((element) => element.name.toLowerCase() == lower); + final mn = Bip39MnemonicGenerator(lang) + .fromEntropy(BytesUtils.fromHexString(i["entropy"])); + assert(mn.toStr() == i["mnemonic"], "bad mnemonic"); + final decode = Bip39MnemonicDecoder(lang).decode(mn.toStr()); + assert(decode.toHex() == i["entropy"]); + final decodeWithChecksum = + Bip39MnemonicDecoder(lang).decodeWithChecksum(mn.toStr()); + assert(decodeWithChecksum.toHex() == i["checksum"]); + final seed = Bip39SeedGenerator(mn).generate(_passphrase); + assert(seed.toHex() == i["seed"], "bad seed"); + } +} diff --git a/example/lib/test/bip/bip39/test_vector.dart b/example/lib/test/bip/bip39/test_vector.dart new file mode 100644 index 0000000..7370982 --- /dev/null +++ b/example/lib/test/bip/bip39/test_vector.dart @@ -0,0 +1,425 @@ +final List> testVector = [ + { + "mnemonic": + "\u6bc1 \u503a \u6851 \u73a9 \u53f0 \u66f0 \u5f1f \u4f46 \u9042 \u5c11 \u601d \u7092", + "entropy": "b3ddc37fe5442ffd23b097f9036c90ea", + "checksum": "0b3ddc37fe5442ffd23b097f9036c90ea9", + "seed": + "30e77cdf0387aecf052f7649e81bd47a9ebaf91a672e02d38334ae2043e0b67c755c4d9235c7b5f2b19a6ed9af5514654f20c4a5cd8ad34f9a98192712ddaf2b", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u5362 \u63a7 \u6d4b \u6025 \u66f4 \u6bbf \u5316 \u5bb3 \u8fd0 \u5e74 \u53ec \u5bbf \u7f5a \u6cab \u5e7b", + "entropy": "f3ea9d61b1d269f6426a421da099f3fccaf3f8fd", + "checksum": "1e7d53ac363a4d3ec84d4843b4133e7f995e7f1fab", + "seed": + "f6b084050cca851adfd90c970a358e87eabea0a73bffdcb287c37fa8a576e5ac506c814794a518d6163a3ef83f3586bf49fc9706e948bc4d77d5cd4121ff1a79", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u6dc0 \u9879 \u9009 \u60e9 \u7bad \u7acb \u88c1 \u8861 \u6ee9 \u561b \u6cc9 \u5cad \u5211 \u63a9 \u6027 \u57ce \u65f1 \u8bc1", + "entropy": "c9a838def57fa62c5f5ba6cd1c07396835a3ae033264d2c4", + "checksum": "326a0e37bd5fe98b17d6e9b34701ce5a0d68eb80cc9934b12d", + "seed": + "00ca30dfc2598126d0dee35b2353515db9eeae566be14e70e4e4c953cf60e86948f1a0302708e94ddecb336f1924e927cb0fc5fa17de941d7dfac8fc6edd7b21", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u6842 \u6811 \u6d59 \u5dee \u6234 \u65a4 \u6742 \u4ecb \u5c1d \u6027 \u593a \u96c4 \u5fb7 \u4ed7 \u718a \u7d2b \u4e43 \u7248 \u916f \u821f \u51b6", + "entropy": "bd08b32c251b5cca13c34efee199efc483ebd53e4dffc7b2e3a4599e", + "checksum": "5e845996128dae6509e1a77f70ccf7e241f5ea9f26ffe3d971d22ccf30", + "seed": + "28f7cc58805137ca6fc8522930e76022c617d465c5ba67f91039af097d4220aa52223f838008b1c6691b1f4dcfcf476d710bcef7a4f21bb18ed6d7b6843226be", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u72d7 \u5428 \u4f3c \u663e \u624b \u6676 \u4e0e \u987d \u5f26 \u6b23 \u7238 \u4fe1 \u67ef \u96c5 \u9633 \u90ae \u74f7 \u8fc7 \u5be8 \u8282 \u7c73 \u74f6 \u5c4b \u7845", + "entropy": + "d6b13d2ea011d0e8c41f506adcea2595cbbdd9d3f768c620b60495e2c1821d66", + "checksum": + "d6b13d2ea011d0e8c41f506adcea2595cbbdd9d3f768c620b60495e2c1821d6675", + "seed": + "a0aaeeaa1cde92890940261aa0690b3fe1f79973c79f28c8d0e79cee7597dcc7dfdf677d6f25243527691a0d4bad1c0eabaf834be1a7bbc5be8059ff4f79ec09", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u8396 \u4f4f \u627e \u5c0e \u5229 \u52de \u7a3f \u53d6 \u6d3e \u51fa \u843d \u5eab", + "entropy": "e307895591612869b3c9003a40750c3d", + "checksum": "0e307895591612869b3c9003a40750c3de", + "seed": + "5f4b20795ec0b75dca2cb021b379a5df1dd0107c04d102bba76a9d86f118c57fe857b54935f8740af4d9bb37f8c2f6326e01101293fc80b571e7799e6af4eeca", + "lang": "CHINESE_TRADITIONAL" + }, + { + "mnemonic": + "\u53f3 \u80b2 \u4e95 \u5bb4 \u624d \u77ee \u660e \u6574 \u925b \u4fdd \u8266 \u984c \u8ab0 \u9999 \u5de6", + "entropy": "4d6765b7f6e2b3ff847961b7242b100b96bcd351", + "checksum": "09acecb6fedc567ff08f2c36e485620172d79a6a3e", + "seed": + "6a9bd537ebaaa32cce5b69b9b452ca05ed5450ee076beccbce0f14767ed124ef310c4eece60e1b31ec823c2a9aa4152ae8c9b72398259f587a3ac52d1476eb9c", + "lang": "CHINESE_TRADITIONAL" + }, + { + "mnemonic": + "\u7e8c \u7be9 \u5c46 \u6f02 \u64cd \u5006 \u539a \u9664 \u7bc0 \u5148 \u8a72 \u66f4 \u6ef2 \u9187 \u6490 \u6e9d \u6c41 \u6db2", + "entropy": "4879aed275d70befdd21af2bc3f0f6934e09dd7eb562ec67", + "checksum": "121e6bb49d75c2fbf7486bcaf0fc3da4d382775fad58bb19f3", + "seed": + "2ff51526e415f09282d71da785192ed3c0fd9f760c47a85f37957b2b9618844795bbcf4290d7b9c0d9fc528eb9dbd34c910c799e050d21c5e1f6c19978313743", + "lang": "CHINESE_TRADITIONAL" + }, + { + "mnemonic": + "\u5dde \u5049 \u6b23 \u7def \u696d \u8352 \u65f1 \u6c27 \u6b8a \u9060 \u7537 \u6b21 \u9738 \u7576 \u5bbf \u8a69 \u6488 \u806f \u5175 \u7ad9 \u9130", + "entropy": "550f1b9d70f0c57c34b2138f48864c8c8ca017be6398f7649924a91c", + "checksum": "2a878dceb87862be1a5909c7a443264646500bdf31cc7bb24c92548e10", + "seed": + "a7eac628d956bbf3d39a85f71e3f32e064dfa1235335a45666e0ba67eeddac1683b0584084023d4a5f50ef55c43b4c6fc91d8c203ed6dce535dcba46c0688bf7", + "lang": "CHINESE_TRADITIONAL" + }, + { + "mnemonic": + "\u62ec \u5fc5 \u73fe \u7522 \u7c89 \u5377 \u65bd \u662f \u6f2b \u8cc7 \u8a13 \u5d17 \u7686 \u69ae \u5c08 \u8349 \u65c1 \u5d07 \u9176 \u5ac2 \u5230 \u5bf6 \u4f4f \u4e95", + "entropy": + "5dc3e82a830570f1115002db635990700c89290eba998e3b37a67d0033200f13", + "checksum": + "5dc3e82a830570f1115002db635990700c89290eba998e3b37a67d0033200f136f", + "seed": + "69204d975e7ed077ce6292b878847bbb6be12192f8a4ab3400cb7aedf5334f33383123fec89383966269e74b99173d0fda84817fb66deeab6ad0bc221c21694f", + "lang": "CHINESE_TRADITIONAL" + }, + { + "mnemonic": + "poprosit okrsek cedr koukat diktovat dusno biograf kvestor nutrie koprovka hrozen ostuda", + "entropy": "a1510844a921ca4bc222c87c6a10e9c6", + "checksum": "0a1510844a921ca4bc222c87c6a10e9c6f", + "seed": + "4f95dc9996e8cd25392e25d8cadbede7416f45fd911249422090f362a98218a60740687892da9b6457eb31ba1c695064bc1e1034291c3c11e8ab59ef94754c56", + "lang": "CZECH" + }, + { + "mnemonic": + "sediment seznam kujnost export stezka pavouk vrhat atol koalice osoba datum netvor spornost kazajka veskrze", + "entropy": "b9b7955d14bc97277a50184c51a86b3c8c729038", + "checksum": "1736f2aba29792e4ef4a03098a350d67918e520717", + "seed": + "31e08563ec889b78963661c2f534f57142f1b062067cde935bb56f587fd0b91e83d206eae4c1200311dfc441133dd2556ad85ac81aeb00aca54c7a1b1850fb3f", + "lang": "CZECH" + }, + { + "mnemonic": + "otrok nominace obec pohanka teprve posila kabaret legenda koza ulice usednout doutnat tapeta kaple etiketa poskok smilstvo chrt", + "entropy": "8eef55f4cead254510cae352fb6f74918d0a8c8a2515c2c2", + "checksum": "23bbd57d33ab49514432b8d4bedbdd246342a322894570b0af", + "seed": + "ed1172f42440147017e177da28130a7de83d8ef1ef503425920cb20642d6c059f39b1686b68236f9d3e28bd4f93cceca1ffba086a634b0f392a398e5c234403b", + "lang": "CZECH" + }, + { + "mnemonic": + "kresba duhovka most zrychlit bezinka guma dosud vydat napnout vizitka uplatnit putovat tlapka rokoko patent racek vzkaz dopustit kormidlo velryba krejcar", + "entropy": "5424b5b67f30785fc89754747c9f71d63d376464dd68f0a42d43f125", + "checksum": "2a125adb3f983c2fe44baa3a3e4fb8eb1e9bb2326eb4785216a1f892a0", + "seed": + "04b59318c24f57105adfd3a34e5f6dafe0a474f9ce390066a362419b7c79a85cc9fd482b948a1e0ad53481184f7fc7b9f6abb1a2c60e1bc9da08865645b193dc", + "lang": "CZECH" + }, + { + "mnemonic": + "teprve mocnost hospoda hanba rozhodce inovace adresa zajatec asistent narychlo snaha chudina vyrvat rokle molekula brepta ovanout spustit cyklista posudek expedice oschnout rytina kazeta", + "entropy": + "d24d78df184b4a7b001797024ea30f8b2edf641b18688f58f06951a29318add2", + "checksum": + "d24d78df184b4a7b001797024ea30f8b2edf641b18688f58f06951a29318add241", + "seed": + "6bdc491d7d960ce7cfac4e3b10c60ff7f8768b05aaedd4330b802a01751ed390fac62d0a90440a8e6ee3f74fed08e5a0d59f25599d2020417a82c5d0db004983", + "lang": "CZECH" + }, + { + "mnemonic": + "visit vast trick initial someone tide twelve oak town right level define", + "entropy": "f4de37a1b9fcf1c3bac4bee6573a029c", + "checksum": "0f4de37a1b9fcf1c3bac4bee6573a029cc", + "seed": + "9923a19b1fba760a821727c076ceba260ccc05ead752c201420511a9ff60684ac30691382948ab15dea21c6ab8e2244eea15f02ae2fc19808db8705e0b0eb6f7", + "lang": "ENGLISH" + }, + { + "mnemonic": + "outdoor rapid thrive ramp ribbon catalog celery curious few impact broken patch yellow hair pencil", + "entropy": "9d363f84d8bb9047c941af558e3872506ff0d0a8", + "checksum": "13a6c7f09b177208f92835eab1c70e4a0dfe1a1515", + "seed": + "53e265a29c5272aa52b4b1a5e2a49d931882d0c80bc2525fef1bc5a340bbe09d29cf7a36badd3d22d9811c77e2ae0dd0a303099972b14426efb554abfd30577b", + "lang": "ENGLISH" + }, + { + "mnemonic": + "lumber edit bargain column awkward wrist pattern forget animal output ignore know gold brain loud please sauce brush", + "entropy": "84e8cc4a96e10dfce852da0913adc33df64435e10d33bf83", + "checksum": "213a3312a5b8437f3a14b68244eb70cf7d910d78434cefe0e9", + "seed": + "8d8573a0475522703a47723b84770c35ea0f773886225d84c1bd9e56f87ab0c03757ed2194f5c02edaa834daaeb8dcc3bbb8f285d98f2e3cd9d8e1138f31a41d", + "lang": "ENGLISH" + }, + { + "mnemonic": + "morning man present silver employ dentist oven verify letter trust spirit drink clip welcome clog day joke youth waste bridge alpha", + "entropy": "8ff0daa864648e75277795809d37482182b5f28ae1c0785fefde8de0", + "checksum": "47f86d543232473a93bbcac04e9ba410c15af94570e03c2ff7ef46f038", + "seed": + "e8059f1e055add2647cbc2af17f8e0579ff2ce15384fbab0532ec2969b9d22edd49cabe46fae7e324f898a027baef0c4833c402d5a1c1f7d7cc8787263ed0188", + "lang": "ENGLISH" + }, + { + "mnemonic": + "code fatigue lend tip expand blind depth diamond depend vote ribbon sense scene whisper situate throw scale trial script device fame you still label", + "entropy": + "2d0a79fff145022f8ec9e93afebee461ec09f5326f0ac01d07069e5527fe7573", + "checksum": + "2d0a79fff145022f8ec9e93afebee461ec09f5326f0ac01d07069e5527fe7573e1", + "seed": + "3b82678c322dc6171e9422a74c6f8c11ceb5968259ee15279fb7a15000afab9fcbbabd0b972c24d9aa949fb46f404b52aa5b7016e47a46af01f52493b9feec90", + "lang": "ENGLISH" + }, + { + "mnemonic": + "destrier exaucer herbe toboggan tribunal soucieux e\u0301jecter chapitre niche nocif impact bateau", + "entropy": "446bdde5f61effc113e171a4d4adfc8d", + "checksum": "0446bdde5f61effc113e171a4d4adfc8d5", + "seed": + "6b8e991b93f2bb026542f852cd65e3d774dd2b3d23fcaec8bb1e504c0479327c9134fa18a13e4c5a96d7963197cb5b27f17bb06564fc6f1855d0bcf5790e0ce4", + "lang": "FRENCH" + }, + { + "mnemonic": + "faveur ne\u0301gliger pavoiser se\u0301cable chiffre biotype de\u0301brider ruiner cimenter ivoire migrer e\u0301toile exage\u0301rer nappe avarice", + "entropy": "63f47ad1ec52fa3bcfc69d3150b26f2e75ed4445", + "checksum": "0c7e8f5a3d8a5f4779f8d3a62a164de5cebda888b1", + "seed": + "83a38afa640d0c6480f873f744f566438a509d703abae100d7fdc2ec3c36924947a62c10723bfcca4c0da1d4375cf0c61ec50237550d18e290e38725e8f7bfba", + "lang": "FRENCH" + }, + { + "mnemonic": + "bancaire fossile ve\u0301loce marron exceller tremper e\u0301jecter louer creuser adepte joyeux abrupt gicler cubique baudrier intrigue fouiller stimulus", + "entropy": "190d5fdfcb55f1ded3e4893aa09a2100c7227846bc206b5c", + "checksum": "064357f7f2d57c77b4f9224ea826884031c89e11af081ad714", + "seed": + "a831b76f4fc21b9fd1ea0ff9b9fd225b47a015e71d69ca1e9c81ec712fc8a25d1dd41810dd32c5a9ed1a1a8f293791a80a350366a918add32a44fad5c04f27c2", + "lang": "FRENCH" + }, + { + "mnemonic": + "parler skier limite e\u0301loge mondial fe\u0301de\u0301rer caverne inhiber ravin jauger parler immuable be\u0301lier syllabe irradier fiasco position se\u0301datif amovible forcer armement", + "entropy": "b2dbc23ba859dcc8caec10c7b0cecb3f81b5cb614330be9b2430b531", + "checksum": "596de11dd42cee6465760863d867659fc0dae5b0a1985f4d92185a988a", + "seed": + "12b7d26b413574d1738d82235deb6acedcce3fe795eb22e8d21b01194c2bca8b2d4954acdac887df86d027f054ccf62fbf0b9a80b1a8339508067d6fafeff71e", + "lang": "FRENCH" + }, + { + "mnemonic": + "seigneur cirer recevoir pieuvre sternum boussole se\u0301nateur myste\u0300re frayeur totem parvenir pe\u0301lican chausson torpille tirelire ze\u0300bre cosmique fortune me\u0301duse tribunal te\u0301tine strict projeter louve", + "entropy": + "d9663b21dcae264436950e6c3dbace5a92ebdabadffc38ad5a62f7fea5c5b0a4", + "checksum": + "d9663b21dcae264436950e6c3dbace5a92ebdabadffc38ad5a62f7fea5c5b0a48c", + "seed": + "f8fd603b733984340546ae4112048460900987fd949e50ae03d0b69e17c1f72cffce09a155a46b71ba7e2f9c81d00082f727a4c74d8263f71ed96802825a6dfc", + "lang": "FRENCH" + }, + { + "mnemonic": + "olandese ghiaccio parvenza sbloccato sereno vetrina cespo batosta posa organico barlume sfamato", + "entropy": "8f4bb668e16cb1f18aa0d1a6325066e6", + "checksum": "08f4bb668e16cb1f18aa0d1a6325066e62", + "seed": + "18751aa235605763b9792781f367cbd37fda5cf17c2df5daf83c2b716b69149c14fab8da3b2244e13b3fc29aeca5d04d1dede4516e4282f18a0021befd34a03d", + "lang": "ITALIAN" + }, + { + "mnemonic": + "candela appoggio digerire attivare montato solido pendice sbendare innesco soppeso pattume dirotto russare sonetto anticipo", + "entropy": "24e1d8ef0a8831a926fe1469babe6b9e8be3ab03", + "checksum": "049c3b1de151063524dfc28d3757cd73d17c75606f", + "seed": + "d62684e5204faf71ed15667698952170ea75aa00674ebf4b91f282b8bed0a3c890eba95ca1886a3f1a609f7fd4360ad2737d1e05b7caa2cc227ad09d88ef4b34", + "lang": "ITALIAN" + }, + { + "mnemonic": + "edile oste obbligo topologia governo recepire cervello simulato rifasare gazzella osmosi macchina isotopo sgrassato mestolo baita fortezza simpatico", + "entropy": "42b2a63374660b600a9682b4eb8651bb46d19ddf68c1561a", + "checksum": "10aca98cdd1982d802a5a0ad3ae1946ed1b46777da30558681", + "seed": + "eb04ff1cb8c294042b522a57f22d53f6bd34481cc689d61e12610b0111ece7e15f35cd1461976c448a6f8e8ed51cb8d55cf06a236551e205308d5b852ac552e0", + "lang": "ITALIAN" + }, + { + "mnemonic": + "tentacolo zelante malumore sopire spezzato allegro inalare omega algebra presenza sorriso tannino equatore labirinto vetusto rivolto sarto agire preparato staffa mucca", + "entropy": "e4ffc9e16aed8e0ed9b48306d50b59f12476dbfe3dd4c0a09aa0eda8", + "checksum": "727fe4f0b576c7076cda41836a85acf8923b6dff1eea60504d5076d424", + "seed": + "bcd4203e52daf1d888b95a7e50512203a3d360cded0f358354f8c1ea14c724fbc623b4a2e19dbe696d1f1554bcf3b908ac74c6cdef456339e1287adfefb42412", + "lang": "ITALIAN" + }, + { + "mnemonic": + "favoloso deforme maiolica vessillo fare bradipo artefice riverso piattino vanvera musica deforme marsupio starnuto rigare spelatura origine crostata badessa selvaggio oblio sopra locanda cellulare", + "entropy": + "4f4719de7c34e23f8485d29fbea6191c67a5b7ad5ec392a69c5f64c8d1ac1cf9", + "checksum": + "4f4719de7c34e23f8485d29fbea6191c67a5b7ad5ec392a69c5f64c8d1ac1cf94a", + "seed": + "96b6e377ed1dbb90a8084d57253cf97c23a2e434dec107df307af9abe9a9aba1042f8f846b46b3a03fe5e0e3882e9f3b6d8a1dd349b014b585f80bb85e465115", + "lang": "ITALIAN" + }, + { + "mnemonic": + "\u1102\u1162\u11bc\u1103\u1169\u11bc \u110b\u1175\u1105\u1169\u11ab\u110c\u1165\u11a8 \u110e\u1165\u11bc\u1107\u1161\u110c\u1175 \u110c\u1165\u11af\u1106\u1161\u11bc \u1109\u1165\u11af\u110b\u1161\u11a8\u1109\u1161\u11ab \u1109\u1161\u110b\u116d\u11bc \u1112\u1167\u11ab\u110c\u1175 \u110b\u1175\u11af\u1107\u1169\u11ab \u110b\u1161\u11ab\u1100\u1162 \u1106\u116e\u1100\u116a\u11ab\u1109\u1175\u11b7 \u110e\u116e\u11af\u110b\u1167\u11ab \u1112\u1162\u11bc\u110b\u116e\u11ab", + "entropy": "2714c3515da692be7dc55f8447f7677a", + "checksum": "02714c3515da692be7dc55f8447f7677a9", + "seed": + "bee083cbb7e10a63a25d3d8f72cd5fa7226124de49fb4968891adbf9035fc1825ddc58e3bfa9b7b4575ad3c3d7bc405e4e1baa8a74aec4054c7c4473ac257295", + "lang": "KOREAN" + }, + { + "mnemonic": + "\u1112\u1167\u11ab\u1100\u116a\u11ab \u1107\u1161\u11ab\u1109\u1165\u11bc \u110b\u1163\u11a8\u1109\u116e \u110b\u1175\u11af\u1112\u116c\u110b\u116d\u11bc \u1106\u1161\u11ab\u110c\u1169\u11a8 \u110e\u116e\u11af\u1111\u1161\u11ab \u1110\u1169\u110b\u116d\u110b\u1175\u11af \u1100\u1169\u110e\u116e\u11ba\u1100\u1161\u1105\u116e \u1109\u1161\u1102\u1163\u11bc \u110b\u116f\u11af\u1100\u1173\u11b8 \u110b\u1167\u1112\u1162\u11bc \u110b\u1169\u1109\u1175\u11b8 \u110b\u1165\u11ab\u1103\u1165\u11a8 \u1109\u1161\u11b7\u1100\u116e\u11a8 \u110b\u1167\u1103\u1169\u11bc\u1109\u1162\u11bc", + "entropy": "f628ea1e56d387b478a0795d93ee394b589cc2e3", + "checksum": "1ec51d43cada70f68f140f2bb27dc7296b13985c67", + "seed": + "6e6114cd6f3c313586cda71adc4860ada44cdcc8ad4aa2fde9bd386c0d485c36010bf3be245c819e1b09c1a6ed56a5a75326788bb0351533e847c1705bcea09c", + "lang": "KOREAN" + }, + { + "mnemonic": + "\u1100\u1167\u11bc\u1112\u1165\u11b7 \u110c\u1175\u11ab\u110d\u1161 \u1109\u1175\u11a8\u1105\u116d\u1111\u116e\u11b7 \u1109\u1161\u11b7\u1100\u116e\u11a8 \u110c\u116e\u1109\u1175\u11a8 \u1109\u1165\u11af\u1102\u1161\u11af \u1100\u1161\u11b7\u1109\u1169 \u110e\u1175\u11af\u110b\u116f\u11af \u110e\u1161\u11ab\u1109\u1165\u11bc \u110b\u1165\u110d\u1165\u11ab\u110c\u1175 \u1111\u116d\u1106\u1167\u11ab \u1106\u1169\u11b8\u1109\u1175 \u110c\u1175\u1100\u1161\u11a8 \u110b\u1161\u11ab\u1107\u116e \u1110\u1166\u1102\u1175\u1109\u1173 \u1100\u116a\u11ab\u1105\u1175 \u1112\u1161\u11ab\u1106\u1161\u1103\u1175 \u1100\u1167\u11af\u1109\u1175\u11b7", + "entropy": "0c999def30bc56d10106decfd133a61fcc970a7870a0f0c1", + "checksum": "0326677bcc2f15b44041b7b3f44ce987f325c29e1c283c3052", + "seed": + "a956817afa58bf08a68ee22ba15690221cd55aeb00e06cb0808ee17ceef558baee1f9593c78b317495c44fe1b0e461ca50fd4c46f32c0d105d1f30f3bc26d2cc", + "lang": "KOREAN" + }, + { + "mnemonic": + "\u110b\u1169\u1111\u1175\u1109\u1173\u1110\u1166\u11af \u1109\u1161\u1105\u1161\u11bc \u1100\u116a\u11ab\u1105\u1175 \u110e\u116e\u11af\u1111\u1161\u11ab \u110b\u1161\u1111\u1161\u1110\u1173 \u1109\u116e\u110e\u116e\u11af \u110b\u1175\u11b8\u110b\u116f\u11ab \u1109\u1175\u11ab\u1112\u116a \u1102\u1169\u11bc\u1103\u1161\u11b7 \u110b\u1161\u11b7\u1109\u1175 \u110e\u1171\u110c\u1175\u11a8 \u1100\u116e\u11a8\u110c\u1166 \u110e\u116c\u110b\u1161\u11a8 \u1107\u1161\u11b8\u1109\u1161\u11bc \u1100\u1167\u11af\u1100\u116a \u110b\u1175\u11ab\u1100\u1173\u11ab \u110b\u1172\u11a8\u1100\u116e\u11ab \u1110\u1173\u11a8\u1109\u116e \u1100\u1169\u1100\u1162\u11a8 \u1109\u1169\u1106\u116e\u11ab \u1100\u1173\u11a8\u1107\u1169\u11a8", + "entropy": "978bb8506d1834e66bb3f22950b76c0ccd7e94426d49a23ca0373661", + "checksum": "4bc5dc28368c1a7335d9f914a85bb60666bf4a2136a4d11e501b9b30e3", + "seed": + "cb483c7a2d2b68071348c2e89ddf6fc485fad2552a2b0c4b7d650279c096e886e2d5c69eb1203c18feba1f1b28fcaee349e14a2a78e793d73ab073e83458e0a4", + "lang": "KOREAN" + }, + { + "mnemonic": + "\u1100\u1167\u11bc\u110c\u1166 \u110c\u116e\u1105\u1173\u11b7 \u1100\u1175\u1107\u1169\u11ab \u1100\u1173\u1102\u1173\u11af \u1112\u116a\u110b\u116d\u110b\u1175\u11af \u110e\u116c\u1109\u1165\u11ab \u1110\u1161\u11a8\u1100\u116e \u110c\u1161\u11bc\u110b\u1162\u110b\u1175\u11ab \u1100\u116e\u11ab\u1109\u1161 \u110c\u1165\u11bc\u1107\u1161\u11ab\u1103\u1162 \u1112\u1169\u11bc\u1107\u1169 \u110b\u1175\u1103\u1162\u1105\u1169 \u1107\u116e\u1101\u1173\u1105\u1165\u110b\u116e\u11b7 \u1109\u1169\u1102\u1161\u1100\u1175 \u110b\u1175\u1105\u1167\u11a8\u1109\u1165 \u1100\u1161\u11a8\u110b\u1169 \u1100\u1173\u11af\u110c\u1161 \u1100\u1175\u110b\u1169\u11ab \u1107\u1175\u1106\u1167\u11bc \u110b\u116f\u11af\u1109\u1166 \u110b\u1165\u11bd\u1100\u1173\u110c\u1166 \u1107\u1175\u1102\u1161\u11ab \u1112\u1169\u1100\u1175\u1109\u1175\u11b7 \u110b\u1173\u11b7\u1107\u1161\u11ab", + "entropy": + "0bf88c810dcfa5af7825a719f7bfe652c550d8a978121de4256bcfd8b8b47e1d", + "checksum": + "0bf88c810dcfa5af7825a719f7bfe652c550d8a978121de4256bcfd8b8b47e1d18", + "seed": + "b75e9ef05e3218e2744da72fa72ce727f05366d99b10d802bad67ce62c06395f41fcf9dd9b7e2d1d8c60a7f283b6788385d039c76f453fab0a2c848fef635029", + "lang": "KOREAN" + }, + { + "mnemonic": + "adjunto recordar pancada roupa fungo acanhar cupido banho teclado pluvial surfista pote", + "entropy": "069986d26ab6ec051120fae8f7d393e0", + "checksum": "0069986d26ab6ec051120fae8f7d393e05", + "seed": + "a1dbecdef1b42185a32c5680a1e8aee7e2d5f93ad40558ba7bb143bbee600b217f28ff47bb7914664d203dd0ff26c66a73b9864094a9bc906603c762fe69966a", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "nominal borda justa textura traseiro pinote pegada rebelde golfe presilha terno baleia sabor coruja atracar", + "entropy": "a8e5062af58efd78edfe5b75b84fa90f5d688086", + "checksum": "151ca0c55eb1dfaf1dbfcb6eb709f521ebad1010d0", + "seed": + "4c0d251a0a77e7d3e25e5ade983cf5d91179a793da398b216d3f216c44b11003b02dda4027cbc345f7830c3a12ca82406b9e23ca3118e43343ffd5aa9b630342", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "titular maluco curto glacial hidratar sanfona sincero vazio poupar inibido pacato reaver enxame topete soberano gemer tubular enguia", + "entropy": "ec52e1143a77bbb237a7bac0d062c9e595a7daf7db96f26a", + "checksum": "3b14b8450e9deeec8de9eeb03418b2796569f6bdf6e5bc9abf", + "seed": + "91c880ad9c15e32c37ae14c59c8e466b49f832438a43042e5465aa1b606268290c7991d6e427d56d90a519f56f959de0164da1de6a2cafe9e0a44743a4de1342", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "pote omitir insistir inimigo jato recheio fabuloso agulha ilustrar navalha omitir trama vedar bienal flacidez tutelar papiro suco isqueiro tostar adubo", + "entropy": "c0b5c211c1a88397d8d0507eb4cab877bf78475a7f9bb57c661c7720", + "checksum": "605ae108e0d441cbec68283f5a655c3bdfbc23ad3fcddabe330e3b9038", + "seed": + "ebe89fe62e70f83e9473724cc7683d0935e6d611b5b458e130c4e650344a37d2715b1bdb6b44b5d1739b4ef8c41a8cf8a97f7a4030c53d7bccb46e8a85d9c26b", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "cruzeiro robalo piquete raio menos glacial desmamar possuir remendo proibido anotado limoeiro banho orvalho batucar sogro rigoroso tijolo neblina tampa pontaria mostarda alocar lareira", + "entropy": + "433a6af3e429cce9d2c603ced87847c8b1f5614846fed29d729af37c0146034c", + "checksum": + "433a6af3e429cce9d2c603ced87847c8b1f5614846fed29d729af37c0146034c66", + "seed": + "752e2b05fab8a2bad28702829a7143009c9795fa98911fc8068d238e1b31c6ac067fec602ba816f1ef13e2a17338e0f19178ebed49705da8703bcbe6e9c79273", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "feliz aroma lata a\u0301cido trazar yema matriz aplicar setenta hostil cacao aceite", + "entropy": "56e251ee013eddfca2b87cd6edc49800", + "checksum": "056e251ee013eddfca2b87cd6edc49800f", + "seed": + "08b1ae7affa885bbbd6ac8d5b349da560d51cd605d21b01a5172acaafdabc3d769eff955028f2fa19834d60a646a5858985984b28021779f09611450840f9002", + "lang": "SPANISH" + }, + { + "mnemonic": + "e\u0301xito asado espi\u0301a necio ganso baile colgar marea lienzo mambo nutria fresa destino blusa sello", + "entropy": "53227540cc7618358d8c497f30e677af14203df5", + "checksum": "0a644ea8198ec306b1b1892fe61ccef5e28407bea5", + "seed": + "bb6665b9c53a20e959399cf8e9a165b3ac030f737feb3fbc29d03bd5c93b902804efdac03a8341c29dada9f36d0042e151832a60011436bba1d32d7dd5d12297", + "lang": "SPANISH" + }, + { + "mnemonic": + "nacio\u0301n geranio letra trote funda bazar bocina escudo barba milagro pe\u0301talo higiene e\u0301poca suegra coco oton\u0303o siete vuelo", + "entropy": "972c65f8f7e5f63ac7e27b1bf1dec8b624e9b94d3539d7bf", + "checksum": "25cb197e3df97d8eb1f89ec6fc77b22d893a6e534d4e75efed", + "seed": + "b7edb04dad3fa2864ea692dff281c54a4c582218ad6b308802b5d3ec3eae4e024b1501ea23ebc9bb02bd88ad650f9f6240c5ff58d1c6710c1cb0c74363882f99", + "lang": "SPANISH" + }, + { + "mnemonic": + "geranio tanque ensen\u0303ar sulta\u0301n monja silencio poseer crimen olla hebilla fianza sermo\u0301n sepia envase toque novio humilde atajo samba terror pijama", + "entropy": "633c1937eeb929b0ae49d3a2ad555feb2d5c9cbab4e46f82bb4772db", + "checksum": "319e0c9bf75c94d85724e9d156aaaff596ae4e5d5a7237c15da3b96d9b", + "seed": + "eb3e2fadedcddd898cb3bb3043e9ff5657bed24205ee01bd052fe899ebe9500397bb1f2fd163d6a910ff22fb440e5d9b4aa89989403d65cd4aa944d2c412ce94", + "lang": "SPANISH" + }, + { + "mnemonic": + "junco sirena cocina detener rumor horno logro mazorca demora pe\u0301simo sanidad ronco regla arbusto punto guardia bondad clamor ganga pobre bozal campo riesgo urna", + "entropy": + "77bb18d2a13cf2dc20dc5a40d63f49e67c52226f9b4120866985db621c51b27f", + "checksum": + "77bb18d2a13cf2dc20dc5a40d63f49e67c52226f9b4120866985db621c51b27f9a", + "seed": + "c6be51d4ea02f2c72a5dc05229b379d40def9b77013203a5446434fb6c3bbd093953f4b5f6b550861c9b28159950643a621624302e25cb33d6f6fbc2009e6c7b", + "lang": "SPANISH" + } +]; diff --git a/example/lib/test/bip/bip44/bip44_test.dart b/example/lib/test/bip/bip44/bip44_test.dart new file mode 100644 index 0000000..a2d609d --- /dev/null +++ b/example/lib/test/bip/bip44/bip44_test.dart @@ -0,0 +1,37 @@ +import 'package:blockchain_utils/bip/bip/bip44/bip44.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip44/bip44_coins.dart'; +import 'package:blockchain_utils/bip/monero/monero_base.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void bip44Test() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final coin = Bip44Coins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).replaceAll("_", "").toLowerCase()); + + final b44 = Bip44.fromSeed(seed, coin); + final coinInex = b44.purpose.coin; + assert(b44.privateKey.toExtended == i["master"]); + assert(b44.publicKey.toExtended == i["master_public"]); + assert(coinInex.privateKey.toExtended == i["coin_private"]); + assert(coinInex.publicKey.toExtended == i["coin_public"]); + final accounts = (i["child"] as List); + for (int i = 0; i < accounts.length; i++) { + final accountInfo = accounts[i]; + final account = coinInex.account(i); + assert(account.privateKey.toExtended == accountInfo["account"]); + assert(account.publicKey.toExtended == accountInfo["account_public"]); + if (coin == Bip44Coins.moneroEd25519Slip || + coin == Bip44Coins.moneroSecp256k1) { + final addrClass = Monero.fromBip44PrivateKey(account.privateKey.raw); + assert(addrClass.primaryAddress == accountInfo["address"]); + continue; + } + assert(account.publicKey.toAddress == accountInfo["address"]); + } + } +} diff --git a/example/lib/test/bip/bip44/test_vector.dart b/example/lib/test/bip/bip44/test_vector.dart new file mode 100644 index 0000000..d5043fa --- /dev/null +++ b/example/lib/test/bip/bip44/test_vector.dart @@ -0,0 +1,3805 @@ +final List> testVector = [ + { + "coin": "AKASH_NETWORK", + "seed": "488c7fa2dd9b0f387220a0207804dce266b36759fa3644e66aa44873af507a5d", + "master": + "xprv9s21ZrQH143K2gduUNDq5PdLmV2edBLttLLihfxvMnAhvWFejpR1ztHFaz4ofcMvHeTtSeN1hFJ3kTNieGfKBiMf5xXRAT6HUF7v5rKSuXH", + "master_public": + "xpub661MyMwAqRbcFAiNaPkqSXa5KWs92e4kFZGKW4NXv7hgoJaoHMjGYgbjSFBeAts8ATjs4vthHkMLK13d7nXS1iCM1U6eWJrHCygm4ZNoPUt", + "coin_private": + "xprv9xYdLQKCZwerkjnq6irtvh5961nXZnwwRi36rNEAdXXF2DiCTVFRQsbPYTiKnUh6WBiqDjhDEQy8UUh63NZHDonrQ4FEyietNZPUTkZZSZj", + "coin_public": + "xpub6BXyjur6QKD9yDsJCkPuHq1se3d1yFfnnvxhekdnBs4Du23M12ZfxfusPk76NRUnnTXkrFMtLZYPCbcFwmKRuh2HYcUWzaSGCEYD5cGw2rW", + "child": [ + { + "account": + "xprv9xqEYSXndzdV2oQSr7t6pYghYQraPauiSLzyTkQEoqHnmsRytK8o7xWJNEEGCEPYWtQK9FimiLk22p5eAZMB6zCk3HV2nWsDtvPNiZaRaHo", + "account_public": + "xpub6Bpawx4gUNBnFHUux9R7BgdS6Sh4o3dZoZvaG8orNApmefm8RrT3fkpnDYVpp8QnoyQNer6DS7UDGrdR99u3MRWcCgFeaBfvsVGGEaHLg9b", + "address": "akash14dscck3wg0axujsgldypfzm5ad2gr2xn8fql73" + }, + { + "account": + "xprv9xqEYSXndzdV4SQTSgYhGCr86yFW1MWMKb79JrCbwPoVMtj2JdRK2inmXmNfXp74xa6qHxqXzZ8XZRv2HLTZWVy3iYgun4mh54S5XvHGftb", + "account_public": + "xpub6Bpawx4gUNBnGvUvYi5hdLnrf15zQpECgp2k7EcDVjLUEh4ArAjZaX7FP1qoJhTTUMr1cgzs4EGBThPiAKVrsKX5xP5q2rmiHuUMM3t4CFP", + "address": "akash1kuamvrclz8ga54q94hgl4sk4wt98hv6xkvn9s6" + }, + { + "account": + "xprv9xqEYSXndzdV7YsVgyLJgpEACwzYRCBqccrinAKGAMAu6AdFERYKM9jqZkwKQno6MZAzDBYb485i9vBKGbfX9B33Le4vJ5baQqSXBUgZgU9", + "account_public": + "xpub6Bpawx4gUNBnL2wxnzsK3xAtkyq2peugyqnKaYisighsxxxPmxrZtx4KR4c1sPzfTDjuk8BV56DD7sqtPxkzkco1wQbUNbx6wzZTGB5kNYf", + "address": "akash1dazahrvz7yygj02ypaux5atm6w0pkrlutvqp9k" + }, + { + "account": + "xprv9xqEYSXndzdV9vFiHLt3zCu1PMddhDD9nApsnrPDothZDBhGAx9wREvLmZvCNxcjYiDWuZFYKj4MuTbKTWoY8k6N8pFuwVVseuptXdYtFEm", + "account_public": + "xpub6Bpawx4gUNBnNQLBPNR4MLqjwPU86fw19PkUbEnqNEEY5z2QiVUBy3Epcqw5i3wuDbukS6fFcXEjy3oAKA3mDouzNCBoXwyA4E9DeMG7TWh", + "address": "akash1nj5094uqqr8hpl4nyapgahd7f7sxehcx992y4s" + }, + { + "account": + "xprv9xqEYSXndzdVDPBLuM9ofFAToWXpChd92ywNNUWLqXQbhSyPKC8HpYRoPQ5aDHNmQo3Zus1DcRA3nkSScRXfxcsPLxdoyh9S91AXPCXrgSv", + "account_public": + "xpub6Bpawx4gUNBnRsFp1Ngp2P7CMYNJcALzQCryAruxPrwaaFJXrjSYNLkHEdtSXaGwr4UbPJySiuEdzzcqDskoL2jHpEMfKX8BM5iVQovtaDw", + "address": "akash1zvnes9gg9gly99wc68hacfw5m84meaxhafru8l" + } + ] + }, + { + "coin": "ALGORAND", + "seed": "cc7ac93b150ee5e97e3c38f1926fcbfebc075df8576a91f1b7d6f4f60ebfb98b", + "master": + "xprv9s21ZrQH143K2ufh6mxeZi8MH4FcqJ1iaYGdK4yP3gf8gnfDtVGE9uHD3C8ZV6hJBTizgFLZRNBShwSKhDjv3Gvq6yn1sgKNBjjYDDUAGQX", + "master_public": + "xpub661MyMwAqRbcFPkACoVevr55q667EkjZwmCE7TNzc2C7ZazNS2aUhhbgtQwre9iwZuhumA158x7yadvwYWAZs5tAU4Er7zJcQMCA1ed2KRy", + "coin_private": + "xprv9wNfpL8iARJVp63iYjHgGVjqkBPfwTPLbBKA1RYUyoJw8b7a6nVhmZXpaaC1BYQRFRUDs1bmASzTY7Up2uqwget1PQ5ivw7AkYDm89P6U8F", + "coin_public": + "xpub6AN2Dqfbznro2a8BekpgddgaJDEALv7BxQEkoox6Y8qv1PSieKoxKMrJRjvdHnYccSRVwZvD71a72WZcdXUp2eXi6iRLmjNBMGxsL1mWz43", + "child": [ + { + "account": + "xprv9yUZBdgcDHpYveBXEGAxyfrguz2wwRGvxoFPGGJYFHxDpboniiucctCGaxcPXxWfoRg8QT6G8of16w5YYVYKJtf5TQC3xgsKHMhaCigeGa8", + "account_public": + "xpub6CTub9DW3fNr98FzLHhyLooRU1sSLsznL2Az4ei9odVChQ8wGGDsAgWkS9m5u6srJXLPt6X23MG1TEZUjhfpjxJt73QNU7fzDF6DySvFjQL", + "address": "S6L3DFRFB4H6E7MNEODAIDURIPTKGNP2LNVCCVBHY3NWP37QMUJ5AFSS3E" + }, + { + "account": + "xprv9yUZBdgcDHpYyKYshy6ShUAbgRUvHugDw7DNoTS4sZmPfsPwgE7JNyezcxDY8jSpsJmJeYnD6kt8rsFuYKWQgnGhGa5agi8ZYutxacKM2d9", + "account_public": + "xpub6CTub9DW3fNrBodLozdT4c7LETKQhNQ5JL8ybqqgRuJNYfj6DmRYvmyUUAduKfSA9vqoNpZr2Cd5fkeWNVELAMb1csqS2ZE3maz53T3u4Sy", + "address": "W4PBSAXJMB5XDHN3ANNBD2HEUVXGY2H4CZFH4ERLS6CLWAUBFL46KD6FNA" + }, + { + "account": + "xprv9yUZBdgcDHpZ1ejhb7iW1BYseCFv81kayLJrNV69mGEHZRAUhGpvyEwPvhvgo1MGGVjd5UhhNyNnYi6uo9sBNQm8c3UnrCjws5Sr6Rqrwgc", + "account_public": + "xpub6CTub9DW3fNrE8pAh9FWNKVcCE6QXUUSLZETAsVmKbmGSDVdEp9BX3Fsmtk5VktoZbt8Qhg9hwmWjqMxbYSSKqAjvUDJYDYSC67TqRYQcUf", + "address": "QDW2QLSPZX3N5RLUVVAOUX6APP5OQPW2B2P2AX2F5DBQ424YO2GNOIKTYE" + }, + { + "account": + "xprv9yUZBdgcDHpZ5B9msKojv7puujZz3ANvyviR1bcHzGAxSLbD15LEqoimXaSoZSBo7WAN3QHzvduxczPq9oAap7oTnvs7Z3oLrJYU4Akcuww", + "account_public": + "xpub6CTub9DW3fNrHfEEyMLkHFmeTmQUSd6nM9e1oz1uYbhwK8vMYceVPc3FNmuXt4QGw9DUR9RzLWBcfXLsf8LFeCNTt6YUa6ZqGq83HBy2hX8", + "address": "NRHPP47Q4JBMEQBL2G5H4E55IAJ2PMXIE434ZQDETMAGHFHTU4ZLWVOAKI" + }, + { + "account": + "xprv9yUZBdgcDHpZ5oHrRPBR99SEsnuopCgBaEYxfNbt4RLJjvUyC5HgJxWJqWc2zPHK1ZqTBSHTJAGKLAJTVhwq262kAZG1uDJkLPD5c5KmKAU", + "account_public": + "xpub6CTub9DW3fNrJHNKXQiRWHNyRpkJDfQ2wTUZTm1VcksHcip7jcbvrkpnghiEkEtWPiFsRrhzuWo5SVbpExYsxkeXYd7qSE5PiNC7a14uztz", + "address": "IVDRY2WZAQPS7JDVJKKLYLRRB5FPVF6QWMIRU7TGCUXUVGLFNNVGF2M2UQ" + } + ] + }, + { + "coin": "APTOS", + "seed": "10e7c8f5e2444268a470807545a6f6fabce98680ec4bf8409e321dc757c68ddf", + "master": + "xprv9s21ZrQH143K26S6zMJWJj1nzi7Sog89qWqQ2zvdHH1wbnyVpNkY8YsNjScrThp4XsVsFuHiQTj9CeL3Lw8P2nHBNBrS2CJpdr2uweyM4oJ", + "master_public": + "xpub661MyMwAqRbcEaWa6NqWfrxXYjwwD8r1CjkzqPLEqcYvUbJeMv4ngMBradKPSwtpjk6ZLtu3tHLfPtsP4han4AVtKmDQiMk9XQguyQcbmxn", + "coin_private": + "xprv9xf5enTkzmZBiAPd7JtfR2JcnFcWm2iN53zNFC2r6JsXLQkBYE495EEVScNSu7wMj5eBz9LxBh48Z6cQh4zAK9Nxxmmgkzduhqpi3CGt73c", + "coin_public": + "xpub6BeS4Hzeq97UveU6DLRfnAFMLHT1AVSDSGuy3aSTeeQWDD5L5mNPd2YyHpSSHcmyTVAk2vcCVT6s1s2prGhad1qWVwCSbxP7k1CycPpenAE", + "child": [ + { + "account": + "xprv9zY7EeL6bhYMiKUZ1nFfUPnSUvp7WaFBv4tyMSXEt4WFU8Q46teAAtao1MnWbbX3uVn9nFFWyPJgCJGmKfRW8LPGqfb3uiAkc6CAhdxvPhJ", + "account_public": + "xpub6DXTe9rzS56evoZ27onfqXjB2xebv2y3HHpa9pvrSQ3ELvjCeRxQiguGrZvq45x5p4wPqy4c5LbfxTTnUJRPS8StDynffZ1B4i4Yfadwefc", + "address": + "0xb21d4cdbb6adafd47d8ba7a1f64991a6db72b2f8fbb17d98c787576716d33da8" + }, + { + "account": + "xprv9zY7EeL6bhYMkbCyYDcXuvviTGweaLawSwbV7P9tDaNbtz8gNkREmBLcayiCd7bWGjEn5iQvty8ruS3mvpyC2pHvL9cfqj4NXVaNVdecXW9", + "account_public": + "xpub6DXTe9rzS56ey5HSeF9YH4sT1Jn8yoJnpAX5umZVmuuamnTpvHjVJyf6SB1rSFTHxvJMe53ENu9CehFg55WiGJXJSUAokHytLyGd3ZyFokt", + "address": + "0x2d5251a4b661ae05d2c728894f2982e714d60bdacfef3f8a72f863d80081a99d" + }, + { + "account": + "xprv9zY7EeL6bhYMmr9kfZVCn7HmqpEsoCBnrBJMiXbZHZuBddt1Xka9PXTCiL7Xd5fBFggvPcjGxApNd1e2enUzBw6nXcyPpacTK8FacN9v6W6", + "account_public": + "xpub6DXTe9rzS56ezLEDmb2D9FEWPr5NCeueDQDxWv1AquSAWSDA5HtPwKmgZWbLtbvyiB924SNvUTVLJQmM9NYQ6e373zixmdAmugmZtNiGNaX", + "address": + "0x2f961b62e1ff88d77cb469c3a7bb3f9b3c2a7a68426d5240397fae3a4726ec5" + }, + { + "account": + "xprv9zY7EeL6bhYMpsyVibfuNYtUqWFwiGx6tMKAf2wF6mC7xCnxqt8QTm9DYH8esMpt1kQ6djB6ojKd8u9eCFQC7nbVP1oEMm7Kj3x3W9rS1D8", + "account_public": + "xpub6DXTe9rzS56f3N3xpdCujgqDPY6S7jfxFaEmTRLrf6j6q187PRSf1ZThPUNcfXhFPioEkM8rVBujQ8w65km5TE1m4XnPYpVUdqN7xLA6j2q", + "address": + "0x7d6c8f6f117dade388b4421c0cc46a0825379a1861834033249b530003f90cd6" + }, + { + "account": + "xprv9zY7EeL6bhYMrX8cLi9B8g7XNp5VQgfCY2yTCn8ctj6n6u4NNQ1Cxc6feB8rWUwgoUNxu76rexwFoh3QBDkp6yN6A5Zf6jFVoHSzV59sQGx", + "account_public": + "xpub6DXTe9rzS56f51D5SjgBVp4Fvquyp9P3uFu41AYET4dkyhPWuwKTWQR9VMm1T5aS1AXuKv54ZrcNowPX6c6G89CTE8v1V1ZaigKVmsX2XHd", + "address": + "0xad0f10b7b30bb806da5e1a2826b517715fe0636f038347f714ac5a1b0d99572e" + } + ] + }, + { + "coin": "AVAX_C_CHAIN", + "seed": "17bc2a69e6c2043d3007a4359e8e5074ac00a82dfc97f1ba3147ed944b906424", + "master": + "xprv9s21ZrQH143K35s3dMciZbbePGdJ9ey3WUnVUToZyXXHtoZJhhiAtt7DJ1qFp4yiYvAKhZdWvZ5SM3oAjeNpQqpJCuybNSmEEc8fgjvvYMt", + "master_public": + "xpub661MyMwAqRbcFZwWjP9ivjYNwJTnZ7gtshi6GrDBXs4GmbtTFF2RSgRh9L83xRN8x8TK4EsHbSut5mVN3i8zhwNkm16XDMEhNerLrWLnSVw", + "coin_private": + "xprv9xLFyCr9xEepmeUMx3Gd6U9iUsLNvYq7Mh5gyrcao9MpVHFBi3TQ2jhGQtAf5ijrGNjW7QEBPapY3TCgNHMruTNJ27kXMyVn9LUAvSVgWCt", + "coin_public": + "xpub6BKcNiP3ncD7z8Yq44odTc6T2uAsL1Yxiv1HnF2CMUtoN5aLFameaY1kG9Xp691ZJzHiUDLLrQRxMJXB81xt8NR7NkjUNijDqQJMZNhLWPM", + "child": [ + { + "account": + "xprv9yNuCcBqSZRDNq7vcL5662Ze5X4tmWqe9C5ZyPkSdDLDtc8zZiwUaaiYi7GAaZV7CkKtpSRamQmc2GDqFKQcUNX3wZLXDzp3JfjXBcNT9if", + "account_public": + "xpub6CNFc7ijGvyWbKCPiMc6TAWNdYuPAyZVWR1AmnA4BYsCmQU97GFj8P32ZMoq95sGcUkGHmRKRp7o42Rxap6c8mPvMCWxeEkQ1Hbd56L4bV3", + "address": "0xC5CA9E4B7ae71117321D3358B43970641dAC882a" + }, + { + "account": + "xprv9yNuCcBqSZRDQrPL5bCAVymimVFZMni8Yd71hoBa7RviyPY1xYonmsN2esNbdJb8KdJppKvmUcQ4zw7NRGyHrLBHSuqTSyxjH1ocA5bR6Wd", + "account_public": + "xpub6CNFc7ijGvyWdLToBcjAs7iTKX63mFRyur2cWBbBfmThrBsAW683KfgWW91YitvREV98TeKwNtUsbC1DYAzsrwFAooxLFd1Q1bvR8vR2E2p", + "address": "0x6Cf4D72058E5Da389b634571aFA9ac54937be5EE" + }, + { + "account": + "xprv9yNuCcBqSZRDUzHwxHnfVVN39gFqGJjXvDNKSvPFRjqVof7m2ErvrFkTsRuGJgyBSjFY7sFtPKWm1hJpjvzgbFhhDJ324S992h19D5GnUjh", + "account_public": + "xpub6CNFc7ijGvyWhUNR4KKfrdJmhi6KfmTPHSHvFJnrz5NUgTSuZnBBQ44wiiqGK5dY4Yq3ZjLHbHfkEeK31SguNiY2riKq5wHxD2NtFp2P3uA", + "address": "0xbFb7a972AAAB3204B6C4517d32C2b666c4A3af92" + }, + { + "account": + "xprv9yNuCcBqSZRDVgLm4FWxXeMT9azkRRAbCeijypyty3Q9ukHortZCzJtVhArrMuzcAT2UHraZYnVmgjxQY7aiuFbcE2UgA76mz5mYfHfCcCy", + "account_public": + "xpub6CNFc7ijGvyWiAREAH3xtnJBhcqEpstSZseLnDPWXNw8nYcxQRsTY7CyYRvTMhYJuU4zxw7gErb8BrPtaedVVBtubS1bqvGvq8Su3hBD6gd", + "address": "0xd6Cb99fCB8688b4f9b8ED37fe58aA5669c34A740" + }, + { + "account": + "xprv9yNuCcBqSZRDYvU8kegoSyX9xctd7nk7KSCoAGtXG6iXiAJV77Dkpf9MwqMUc3TE8aAub8ix2YcEJz8XpL3somMpqsX513ykmTU4h5fhUS6", + "account_public": + "xpub6CNFc7ijGvyWmQYbrgDop7TtWej7XFTxgf8PxfJ8pSFWaxddeeY1NTTqo6dsjSfEuvSbgE4ZWja2CtBUcPresMkL8QyQxcUgwGyapm6xTSt", + "address": "0x112Ff03a6d58395b447d03a5FA4A4f998e8fAccF" + } + ] + }, + { + "coin": "AVAX_P_CHAIN", + "seed": "233fa4eb1e21059608dc847b04d58ad601cf1d654da831b10c19e543dc38b33b", + "master": + "xprv9s21ZrQH143K2oruMTW5HV85KGaRaZ1pGFM1cWQhkQpHDjdscgpdX2pvVbsip2m3BcWfcUkWAs6r1hcgotwN5ooQUJEph2SbBDqpMjjBsfN", + "master_public": + "xpub661MyMwAqRbcFHwNTV35ed4osJQuz1jfdUGcQtpKJkMG6Xy2AE8t4q9QLtnQ6rwWtvJFpknSDD53wiiwRKDsp44fvpxX6ovZQSJrUNoYDxF", + "coin_private": + "xprv9xFUCpCH2MkiFgKJe3EU17ipjsVTLKScf89eXN62ALv9WHwxYbWrE6rwaGmyzqqz3bMmgMtWinGCrDL1g8PMLKkF2v3PQ7rCuKmqbvcT2n8", + "coin_public": + "xpub6BEpcKjArjK1UAPmk4mUNFfZHuKwjnAU2M5FKkVdigT8P6H768q6muBRRZd3KbDzaTxzPi7qrPZ4uiQcWpiKQypaUaRX1QfRK1ZqDrZLiFg", + "child": [ + { + "account": + "xprv9yTqsAwBNkcU1hAziZN3tdbsJpunWfnpGBb6MJeGaU5fYcMW7hasKMrthYsuXaQrPSY1yDaCXtPHEZQS6Rs4YKCDhNBbF8dKUDRhrXS3jZC", + "account_public": + "xpub6CTCGgU5D8AmEBFTpau4FmYbrrkGv8WfdQWh9h3t8oceRQgefEu7sABNYqU1Ni2B8ppWEud6sSReSPUFTy86N1tcFPYz7YfjeqQgAmrGH6G", + "address": "P-avax1cutsycecjkqhfmy0m7d3rnw4qqns62eyd4k7ep" + }, + { + "account": + "xprv9yTqsAwBNkcU43YEDsQkcvGMMAwyoW72qwQ64KprZzzRCWsPYNDeDYnoWrWTp4addqdNprAtZHCaJUwz7VV17cCSAS3JY1Qy9rFLuAf76w9", + "account_public": + "xpub6CTCGgU5D8AmGXchKtwkz4D5uCnUCxptDAKgriEU8LXQ5KCY5uXtmM7HN73n2wJc5YJJQRK3YRsCeoiAqayZBvKRpsVuwq4LMNsVexToc5K", + "address": "P-avax1wz4afz8yd0cafmje8kt3c2gv6reye6w7fa468x" + }, + { + "account": + "xprv9yTqsAwBNkcU6NBQUBhkBJhSxR3TLpzafBzYdHAah2917ZXVeEYyXcnx4EDPVdhx8mnb5iPhA9jLEuVGEsMw4jcG8GoWcp9opp66zARGeKD", + "account_public": + "xpub6CTCGgU5D8AmJrFsaDEkYSeBWSswkHiS2Qv9RfaCFMfyzMreBmsE5R7RuWo7cQPESd1tJGLtNyuGCywPmwNs7XUiBdrxdEVKvtMmTpbEv6r", + "address": "P-avax1h39g67yqlyyvqwkyn8l9ewhemk8kujl44ruw5a" + }, + { + "account": + "xprv9yTqsAwBNkcU9muBiU9rbTEfigi13bKqAg3fPDJgESoYNDr7XHLUj4rBCxtUpGiezubATh4enDsuWS1dAhAiTfXs6FQ4eoLKusERBgec4xv", + "account_public": + "xpub6CTCGgU5D8AmNFyepVgrxbBQGiYVT43gXtyGBbiHnnLXF2BG4pejGsAf4F1J5Zgv6iYWeBa8GEMWRifZ1fr15NVDJWJieCtqgkfK8Xqcpxn", + "address": "P-avax1yfn6ak7tdp2dcym762dsdps40dnpv40pf8es2t" + }, + { + "account": + "xprv9yTqsAwBNkcUCXLjNyCEPfbQsGtehxmsHtn2S4vZ3EqKurwgm717tLdLU8cr41cHGVYsuu1knvyd744bUFmHEi1mMpUitFA246Vrty6zi2o", + "account_public": + "xpub6CTCGgU5D8AmR1RCUzjEkoY9RJj97RVif7hdETLAbaNJnfGqJeKNS8wpKQPeFP8myYGnRpkS4FZ2MoC4Wi3mMJC3Uj6BLDQu2o9m7vachQq", + "address": "P-avax1ggt8uxespxghgxw88992thf9serhntpzeuwmry" + } + ] + }, + { + "coin": "AVAX_X_CHAIN", + "seed": "e4c8691392ce774e15d33b676fcc627155b81e9e729d8e9baee5b12e208fcd1c", + "master": + "xprv9s21ZrQH143K3LXUGAhKQefLyJ66LMYyxW8EtezEPfk32SGCPhFjQNqCWmGcsQM2hVuu1jb5WjggQYfFLW4eXSfnzHVfqHnu1Ut67GAK7kp", + "master_public": + "xpub661MyMwAqRbcFpbwNCEKmnc5XKvajpGqKj3qh3Pqx1H1uEbLwEZyxB9gN4f4o4dysTYXoM3J2Cu7N51i4RCVaTcnrLGxUkXuaskMUrVVBXF", + "coin_private": + "xprv9vq4qE2wFSy2dVib4C4CQJ6tHkoDXaqo5XC98JhcSHHNSxTJFXM6VDngF4Sd8gD51gMg9XiqHU4uQc8q4cAgu2mwvEXzkveW2HbxzVryioL", + "coin_public": + "xpub69pREjZq5pXKqyo4ADbCmS3cqndhw3ZeSk7jvh7DzcpMKknSo4fM327A6LaVRUSzvpvbeouLaGX8ot3uiRoqmnvYE3Zs1cNwDBTDFTVmoB7", + "child": [ + { + "account": + "xprv9ynwiuyaSoKuTYj9wXsUR2cox3ot64tfGQC11X4rFPRVn6rcbWwEnjZzRZcyF166WydZ4AeF6PauXjAfeQWJceCLRpgtzG7zqSkVC4gLSGo", + "account_public": + "xpub6CnJ8RWUHAtCg2od3ZQUnAZYW5eNVXcWdd7bouUToixUeuBm94FVLXtUGq7hri6m7tqyanEg3TTqw8UPcbYBgQ71ycAvTD4QXraYN9sGGNc", + "address": "X-avax1yzqqgcdg2css0x38ng02usghs23cpqw2r9xaw3" + }, + { + "account": + "xprv9ynwiuyaSoKuVvKH7fGNT3pFcSWYCgQPES4MFSnGqJvRp26GW6wWC1fHwnGrYfZfThYSWKrhY25vo69dfceVNmX3hjm98VhrGMdp29XPUPC", + "account_public": + "xpub6CnJ8RWUHAtCiQPkDgoNpBkzAUM2c98Ebeyx3qBtPeTQgpRR3eFkjoymo48yaYuWtuf31vUvgDuLq4sns1hVNU6c4rNGm9cpmRiZ1Uqdfqg", + "address": "X-avax14scmhsx5wu0xg597gpm8429qpsxa39muh7w4yj" + }, + { + "account": + "xprv9ynwiuyaSoKuXbanbjuhLHi621B2H3pEjGieftrsasazhNUrpj1K94exXHpitafaMHoNabLUTtMqCRA1PShtEmhxvmZhbqk3kupR4PFEEaC", + "account_public": + "xpub6CnJ8RWUHAtCk5fFhmShhRepa31WgWY66VeFUHGV9D7yaAp1NGKZgrySNXfp6J35qsxySQ7KQpXq8YZ16gaCRc5geJfM5Bg34dRZRD9yCq5", + "address": "X-avax1dnfygf5e6htptknmtltncvevrhk0yxa2rupqjw" + }, + { + "account": + "xprv9ynwiuyaSoKub2NR3UcqRX5WdtjC29Nve89S2VaXBpeUd7WJk2EczuV8g74GRGC6kmkPW4h8vCLTfiewFMdcQ8qVfRnsQa9E2T9cbp5hzhu", + "account_public": + "xpub6CnJ8RWUHAtCoWSt9W9qnf2FBvZgRc6n1M52psz8kABTVuqTHZYsYhocXNoibQx1CazTuaMQWrV15FRTsF4DHcm41aG9p3dn2yUGFcbr3Ro", + "address": "X-avax1m4uaknwz46388qmj79gfjm9vnhz8e4sl8d7uex" + }, + { + "account": + "xprv9ynwiuyaSoKucZs2CogB1anLnTWD6DxAnB9BaPjR36YmfmiY3LJNGbH5JNoTJdPz6QQfPBi3mUkMLrJnyRQk9odNQHRp7u1yjammMfjieBZ", + "account_public": + "xpub6CnJ8RWUHAtCq3wVJqDBNij5LVLhVgg29Q4nNn92bS5kYa3gasccpPbZ9g9Hy8CaX5gQLLBhJfR6gjhAV3dj5QnctYR73z9yKxZY1gYYe3B", + "address": "X-avax125ztwwwcl3jmuwlaqfa7hrmyckl7fj3axxa2kp" + } + ] + }, + { + "coin": "AXELAR", + "seed": "c65620db7b271367a334b4b14edfb97b808bad121c36d755c7e2a69738325959", + "master": + "xprv9s21ZrQH143K2G1DuYMfDQtojWtFV2A34ncMARJsThLAYaVrBTHeXLtLJw5D8cYu5yymKtQdsmvFmVJU6xwy4CLUEd53iAdpPsGEp12YoVq", + "master_public": + "xpub661MyMwAqRbcEk5h1ZtfaYqYHYijtUstS1XwxoiV22s9RNpzizbu59CpAAoSbHf8piSAUNXZ1SqfWctVmv5K17HGSz1WmH7ahDbd4EkndGY", + "coin_private": + "xprv9wQ3XNiqZ6jvx68o2o2Be1h66nFoTGp2USUpNbbJfPMhdjRnpabnQHvsEzf1cKrGAXY2LJeXzf7zDiwm9RsaF2vspB8XZ1QqZDFiQtFNbAF", + "coin_public": + "xpub6APPvtFjPUJEAaDG8pZC19dpep6HrjXsqfQRAyzvDitgWXkwN7v2x6FM6GPWEqpuyrzg1nxy1JfsUAv2w4fdgRXLLvwGufiVypkuNpV5Wv5", + "child": [ + { + "account": + "xprv9yPzseD8EYQWCPJ3ZSYiUv1cVig2mb3J9q5kihXHVHfxpTWqRV5qH7SxPRvHBZJzDHmAjPAQpLSxxWrzR8JsUeHadwUKYxhHqs82MU5s9S1", + "account_public": + "xpub6CPMH9k24uxoQsNWfU5ir3xM3kWXB3m9X41MX5vu3dCwhFqyy2Q5pumSEgLDh7krK5Vxb7RCr87YqWUHMpJSfm5et5FyCGcoNvsMDkAXgkK", + "address": "axelar1vqdx5avsnyxks2q9ct8a2te3kg8dwkupyqpllx" + }, + { + "account": + "xprv9yPzseD8EYQWEtis3VafrEYsbyN2BGeoaDrEPehuKg68dvksfY7NFDy6tBRcEcBuwfqTijjnxMz1yRrXSSCYZkbE3rRPHWgoqambUko2iTY", + "account_public": + "xpub6CPMH9k24uxoTNoL9X7gDNVcA1CWajNewSmqC37Wt1d7Wj62D5Rco2HajUiCX4bA8122yncWZGg5CFk8HX35TnBnR3ePerZGsBoFYjEujyw", + "address": "axelar1zgut4s2fl935kmcwp2tvxyd37a3qkn6xaqx37e" + }, + { + "account": + "xprv9yPzseD8EYQWJvKHg6JGTFLVrx3wo7TXd5Uy17P5Y6ZHppLMNtmPDo89SZRfJGJLinBvbEACx2bxcuAHuEer4LwMvkV3peoaHa2V4vfTz8m", + "account_public": + "xpub6CPMH9k24uxoXQPkn7qGpPHEQytSCaBNzJQZoVnh6S6GhcfVvS5dmbSdHrcArJCeChaJsFjWSWddwD763uRGUZDpXAPWBpgTwekb33nSiiZ", + "address": "axelar1ylhputzvr09mjlq6he6vkx7ccg5ygz67g76ts0" + }, + { + "account": + "xprv9yPzseD8EYQWMsbwQKZz9Lce5DAXv5umZa8ta611UnyXpg3hLcrpqRQBKrCU6e9GjkrSQMa33E73Wb8GvcDPrGWyrgjKCsteskBLhqc8tZc", + "account_public": + "xpub6CPMH9k24uxoaMgQWM6zWUZNdF12KYdcvo4VNUQd38WWhUNqtAB5PDifB7acRyQtLjkG896GoJTvjqhnLtux1LhTY8bt83HyCCJspyCmQUG", + "address": "axelar18u9atx7h2j9aplcpv6edc406xqjl07k5vtmrjl" + }, + { + "account": + "xprv9yPzseD8EYQWNXnSx4TAYFEjAdUqF4ohLx2jAAaawG57maSqJYXBCU88DRgbCCU1rYYLykpXWnAehoDXmxVE1rVgCRLw2REjt9iDEi755Zt", + "account_public": + "xpub6CPMH9k24uxob1rv45zAuPBTifKKeXXYiAxKxYzCVbc6eNmyr5qRkGSc4fcRUYtPKJ1HCi63xXmgq7m3vZfE1XjC3qoEZhoKMiCKVk7tauG", + "address": "axelar1mkjuspganc97wp2tpgzj5jnnym8jl6wahyfaps" + } + ] + }, + { + "coin": "BAND_PROTOCOL", + "seed": "e2cc9a523c45fb1ab2b906f312a0a3830f005b13d78683fba5f69029382ab67c", + "master": + "xprv9s21ZrQH143K4SQGF4xp4u3ifDfMEDbMm6fqZE1gWZQp4zN69Ry9AhrfqXoadNFDSyLCzJwnSM392guXzMuiSYoBxSVknWNL2GPj2WAuEHc", + "master_public": + "xpub661MyMwAqRbcGvUjM6VpS2zTDFVqdgKD8KbSMcRJ4twnwnhEgyHPiWB9gpaL5yUs7i9zHCzTFF2LZn7bzZjSBiWUBXDwtpdQVLNQ9M5zCQM", + "coin_private": + "xprv9wEVrTMhJuQ2NKxiUsaLLYuZTe451vTdGGqqQq1nwvGnAtBnzJik6VBT45Pg1jM8BMxymmx9yGwT9JksJYTTrX78S9QNZyHvdWsj4Fraahi", + "coin_public": + "xpub6ADrFxtb9GxKap3Bau7LhgrJ1ftZRPBUdVmSDDRQWFom3gWwXr2zeHVvuP3SbUPJE6QRERpph33FEQXnptuRbq9Vz8UJuSMGPYuzHdKh36o", + "child": [ + { + "account": + "xprv9zMpAvgXqNww1AzQekLDtZPfYc11SX9DYGwdLuUS62BxaWAZdPdagYfCipnZ61uMNiyPgReiL1az23j7Nui4sr7QyVnPGw8XcZzauCNBYF7", + "account_public": + "xpub6DMAaSDRfkWEDf4skmsEFhLQ6dqVqys4uVsE9Ht3eMiwTJViAvwqELyga79XbfUGWvCXG4zooRWoEKWf395txPmGonRMDNQ4ZCePgfK52j1", + "address": "band1pxwuvw33serrv5yed5j0qf707va7w3ylvggtqk" + }, + { + "account": + "xprv9zMpAvgXqNww3EDADLMhVkrXTQzBCz6Hx1gAQRfJfbPoKd4KLYFvpPoFpEy8jePJAtZCc3VvQ8YpfftFN9yC8qDVRrqcWoT4j1BurqH8gec", + "account_public": + "xpub6DMAaSDRfkWEFiHdKMthrtoG1SpfcSp9KEbmCp4vDvvnCRPTt5aBNC7jfVGU5CNSDY77sLcTP7LKJqVU96ngnUfjpycFryuKMNiCxSTVeYq", + "address": "band16hmz8kqxxklcugkh0p0lmwx2kgktyhtnfyftqw" + }, + { + "account": + "xprv9zMpAvgXqNww6AC3n4ewdSqia9pCEhuAKU6SisuG7DkW3wNGUGXeXBz5Q7f6oXp9U2EdAUFzuFz57uR4XRxzckL2LFWBy43Pm4ek1wWZJJx", + "account_public": + "xpub6DMAaSDRfkWEJeGWt6BwzanT8BegeAd1gh23XGJsfZHUvjhR1oqu4zJZFRdoXHYPiAFfaDqQoXwzTVxoRX5n3DgyZcmttb9cmfo1BmMSTEQ", + "address": "band1e2kxrfpdncnnxr2kt9zchwff5hjd9fsqzn934w" + }, + { + "account": + "xprv9zMpAvgXqNww9X8oeBQwtv8YEdsb9D2RodoN97oeS45y4URf6bNHZuhBjWFap8Kq9LMvkpi2JhxaoapzBVd4ibTGAHh8asTWaZy7QLHNS8C", + "account_public": + "xpub6DMAaSDRfkWEN1DGkCwxG45Gnfi5YfkHArixwWDFzPcwwGkoe8gY7i1famb5cYv9eYD84eCaLcEMpvZhLzohSjXrv1hYDxncaLZWtcibbpP", + "address": "band1d3uqppya6ypnk6ttkwfks2ntl0z0sxl93y6c92" + }, + { + "account": + "xprv9zMpAvgXqNwwC2ngtsYN1hLfMCeGfyeyfKXFQXspmJR5LxtgrQLZxEBQqzep3KRgmiAins4SQoUXgZZQENDXdFkKqFMZ8i5qDdi21TRRyxV", + "account_public": + "xpub6DMAaSDRfkWEQWs9zu5NNqHPuEUm5SNq2YSrCvHSKdx4DmDqPwepW2VthJzGpESkZ2mEUAqctrhRBxoBdx9hxiJXRdBJwSK29Ds1w29nneL", + "address": "band17dcm92zv8rquv0gy2grupgmwgu0kuvsnnn5sjq" + } + ] + }, + { + "coin": "BINANCE_CHAIN", + "seed": "2c63325383aa461fc4f191bcecad5566acf0ae45e8a3e8ec37101df42705ef28", + "master": + "xprv9s21ZrQH143K2T5hUfjpvYF61bFFRKNddqgkXbNw29JMPq2z4JGXoxrXWuWx3vHYfowekc8YgrrurvmAKpTAyX2iiKLU9AitJK9tyLNBo5G", + "master_public": + "xpub661MyMwAqRbcEwAAahGqHgBpZd5jpn6V14cMKynYaUqLGdN8bqanMmB1N9tDGqhbZC8iWZftWA3FycBpv2X7PeXAqGTHBdvKZMzKNzPuUs3", + "coin_private": + "xprv9xMPiZazYZV8XeuMQmGjF4Et9h8ME2CEukfJ3oiBQjChAFeMYC5CVXysWhcxeL1v228hjeucLr9QHzWEnWA2LTRDyLzxDeiQo75Jj99xkvG", + "coin_public": + "xpub6BLk857tNw3Rk8ypWnojcCBchixqdUv6GyatrC7ny4jg33yW5jPT3LJMN1X6Zvc4uwuW3PoioBYaFZFSdWbVB6qqm6k3N8gWVGcwJ1Ujr2D", + "child": [ + { + "account": + "xprv9xxkXuYRD4MgdDzU6xjm6H7wd4JTnN4W8FNVRsHdae8cmqjoUjv1iFZKCtcRWxYYNYuLLrFnVEepGoSQcjQXAmXe65hdr18Wj4KCZVq8TAd", + "account_public": + "xpub6Bx6wR5K3Ruyqi4wCzGmTR4gB68xBpnMVUJ6EFhF8yfbee4x2HEGG3so4BH6YJGrzCSayVmDkK1Mnn1r3oTTK7cyro446gEXwvPq5ut4mu2", + "address": "bnb1mgmavxpc7nfuqayr24tdnrluqztfa60xaur8mm" + }, + { + "account": + "xprv9xxkXuYRD4MgfzCue2nDMjYTrs5JPcqZEuPkHYe4W8Bhj7GMn3sQXYQ6fDYnLq5QJ6Eqb5oe33q6ArXSypruQrJsKSyi3e4VmCgdESURx9A", + "account_public": + "xpub6Bx6wR5K3RuytUHNk4KDisVCQtuno5ZQc8KM5w3g4TigbubWKbBf5LiaWUoPVo1FHYfauCx2ghvSQWN8nbsj4mF4pikjoh7sCgq49Rdjaop", + "address": "bnb1gjqdvhytyny6fdfckppljv8fd849xwg6g404c7" + }, + { + "account": + "xprv9xxkXuYRD4Mgiu1CNWjkSgEbJu8Bdm7izkDM2BLrkSBWmfDCsUq5Cha52EsSYTNgKoBs7tBkQczsstgPE48fA9MucLSfhG9LddMXXQLYHi3", + "account_public": + "xpub6Bx6wR5K3RuywP5fUYGkopBKrvxg3DqaMy8wpZkUJmiVeTYMR29KkVtYsW69mzvzkru3igggzMG5tuxdTZ6K6HU9hUVYfSekJpFBwEbv82C", + "address": "bnb1cc304fs4gcylkeuu44l0x2mkctsl78rn0cjl5p" + }, + { + "account": + "xprv9xxkXuYRD4Mgo1kj92cPt7TYgfPZTXUpwjVg3eWh142SexJXEV8HDqtw7wW3oq3Uy114YkkaeBUYSRdRw5gSo6E82MEBzA2sHwFw2jbvHmW", + "account_public": + "xpub6Bx6wR5K3Ruz1VqCF49QFFQHEhE3rzCgJxRGr2vJZPZRXkdfn2SXmeDQyCSh1wDL1HmPb4a4YZCyDZZ3jAD344yh7RDLgAbYYm2UrqRALxK", + "address": "bnb1ww74z6fssjf88fyzuum5z6gmspwxclhzej2ven" + }, + { + "account": + "xprv9xxkXuYRD4MgoPiHzZoWyRSXJU1jNByP5rpMn1ekC6wxc2pwdRAbj1owdUdvD5yHFRN2RBeBRVShpUNXofSjQp3cZjLFDD7vVbXx73U5D2Q", + "account_public": + "xpub6Bx6wR5K3Ruz1snm6bLXLZPFrVrDmehET5jxaQ4MkSUwUqA6AxUrGp8RUo6518WHbw99bvZg7Ugg7renT6roeYzq6mcpRAraqdo1yFyEW2C", + "address": "bnb1eu42fw952mg4uercrce4lnpynhwlg4hh6ae6wq" + } + ] + }, + { + "coin": "BINANCE_SMART_CHAIN", + "seed": "4c7a4d1d4cd33b8c87f9809288a3ce77e51b90a8c5ba8dbf9624eca2207fa09b", + "master": + "xprv9s21ZrQH143K2AkvY45v5FFbrS9W3AHGgy8WRhDGYWXCNNGVAnmhXYr5EJpUMBrbCvWn7tEMw5KDbKuVAFMkHp4tdhrTGZsKJXFncuNdSE5", + "master_public": + "xpub661MyMwAqRbcEeqPe5cvSPCLQTyzSd184C47E5ct6r4BFAbdiL5x5MAZ5ZvNApWvJ4x43mEQb5firiEwgovuNYSbrYFfGCS28bsCKFsbYgq", + "coin_private": + "xprv9xY8zrBtZCYk11jiuF1DuEsg7JF9Qk6F94MnPHq941mRnUHZ6Dc9QFC44sNPv5SAdodWPmaHHpDNFRp8RoX8BgumuyyUFWxRXtrmmja7kDd", + "coin_public": + "xpub6BXVQMinPa73DVpC1GYEGNpQfL5dpCp6WHHPBgEkcMJQfGchdkvPx3WXv9gvs2jC54r5pAnor5wS92hAaZ4PB351tFykQBpLaoiq59yYqYT", + "child": [ + { + "account": + "xprv9ymSAv4y2cYccsE8ecLBrNLMY2ihWe4gBnMbvDAEP8MMK7Y9uY7USUGTGQYRTHCu6kGuVFo7ReknfH7rTiMNEFVthMC2niP8phxvqoUsMEz", + "account_public": + "xpub6CknaRbrrz6uqMJbkdsCDWH664ZBv6nXZ1HCibZqwTtLBusJT5RizGaw7fjHMVWEibzyX4Pwdaa6WDLTTf3AioyE5cgJmZK9ALJusAfdEJw", + "address": "0x53337c41CDD601d031b147D1D559832c7C8FB205" + }, + { + "account": + "xprv9ymSAv4y2cYcfgxkPggMgEP9MVa65mNqZLXkdirVNmyvk2Nmk6C3kDMDSFEajNjTdF9WE1Rk67Xj6iEed2qyHGywSJmyFe4gKn6MGLknEZQ", + "account_public": + "xpub6CknaRbrrz6utB3DViDN3NKsuXQaVE6gvZTMS7G6w7WucphvHdWJJ1fhHUtyHzQpdTH4SW6XTJT3Px8pvcijBgix3ZJ2JWor2yPzSnPqu5a", + "address": "0x5860de2723558BF03d16bE71DC8825aFdc83c04D" + }, + { + "account": + "xprv9ymSAv4y2cYcgZ1LVGENk22DBsBZ1xVwVCqMmMnaU82wF1AWkTvScqVxNV7SGogxfBvaqxPnofxjZBpSgymfTdTHfXvkmrMv6VWjhbzAgn6", + "account_public": + "xpub6CknaRbrrz6uu35obHmP79xwju23RRDnrRkxZkCC2TZv7oVfJ1EhAdpSDjPrXUpijVEYZzGLuCckeAxEhLxztXJ1uPej38UB7K7jPmTXa3Z", + "address": "0x02c7d489BA6d1d3EF306EDe7c0E5c5f22F92e881" + }, + { + "account": + "xprv9ymSAv4y2cYck1JVstEpXryqjUWrRv9CkfHvTfec2BmReuNmybWnftd6aAY7tyGbFxnMYKfdiQ1CuNqkQp1BiJNgiR4xMNc3oziqekdcrLj", + "account_public": + "xpub6CknaRbrrz6uxVNxyumptzvaHWMLqNs47tDXG44DaXJQXhhvX8q3DgwaRS9xBBA13VWwYjcw8vieNxFN4oaQHRN6qSKW31zeqHD7xiogsdj", + "address": "0xF8293138A7c5e11431d5E22d30ea54f9f1E99506" + }, + { + "account": + "xprv9ymSAv4y2cYcmPAUjgixV9hKw82xH9B9oQJK9ugmDbo9SKRbzCEwkrcMrmXVYv2YLv672NcvDTP8aNEEWsxkzRes5GA2otYzZN7Lx5UKcNy", + "account_public": + "xpub6CknaRbrrz6uysEwqiFxrHe4V9sSgbu1AdDuxJ6NmwL8K7kkXjZCJevqi36BjZ2sLfUvQMo4944VigQAvdPSPNY85UMHJCLcvaNNv9RCmwm", + "address": "0x7f3feD01E6c1f39f03Af7Ce722E91A7Bc603DBfF" + } + ] + }, + { + "coin": "BITCOIN", + "seed": "6ccb0af7d2de48e19fc847aacf0a2b2883e2124fc7fe972241f59b80e26b20ba", + "master": + "xprv9s21ZrQH143K2j8gb8pSQx7N2cbwPZEJNUAzcivS3ySr7XfEJPok9W7NuUwHwa1hepoL9Rcv6x6cQdMV5G38tR4umXptoFoTtd4ncs2EoVJ", + "master_public": + "xpub661MyMwAqRbcFDD9hAMSn646aeSRo1x9jh6bR7L3cJypzKzNqw7zhJRrkm8JZD9KtmHnaZihi5AouXU3eJ744op95pt7RSmQxCLE8Z7aYYZ", + "coin_private": + "xprv9xRnAyGByh2NNWyEHqQ5HMHvXbheXbDPk2rcqzjHzhWVAxSwcmbuztQPjQkQEXaPQpvMUwoeeVmt9pPJ6vzMrKs3nRDNaWBvGX25YgYPTYu", + "coin_public": + "xpub6BR8aUo5p4afb13hPrw5eVEf5dY8w3wF7FnDeP8uZ33U3kn6AJvAYgisagKKF7EAeNNazUxoUFmruCBdFjqipSe2hv3tZizpDtojtRC88zv", + "child": [ + { + "account": + "xprv9xyLHNMA2WNUjUh7VPXCveQ7cFwJPbPobYKwe7T4fHiDKpEntuFaNQoGkQpJnb8z1Z3UQ2kEBfe8tYzSxUZpQfjNq13bcmdRiCNYzdbYbie", + "account_public": + "xpub6Bxggst3rsvmwxmabR4DHnLrAHmno47exmFYSVrgDdFCCcZwSSZpvD7kbgUSUW5BGUywJ54ov5WBACM3Y9Q5CYf9N7QRcvep9PcfLkww78A", + "address": "17nFTRsq9ubfZHFfyBgHyov97gye24Zqpv" + }, + { + "account": + "xprv9xyLHNMA2WNUno49qxeyVnfTyrjmAnchVvmGwk4u3eD3Kt5BLjPwMQ5Gna8HHjSrDBw5WzuaHT9KExjCAZc4gU3ZRNe4TFVSorpcwQpEasP", + "account_public": + "xpub6Bxggst3rsvn1H8cwzByrvcCXtaFaFLYs9gsk8UWbyk2CgQKtGiBuCPkdogFkkkd9P8LsanMK5C86d1L1GoXTCgcFUKcfr6rNjeBbvm5d77", + "address": "14LkYv2oBr347rTdCkBxzU7VrZxgUJhvu2" + }, + { + "account": + "xprv9xyLHNMA2WNUrnyRCL6hYJ1Zr4a7JMWZTVmQ7sv6qMJF14oQSUtMFbzZwW3hBm4gRHf9HvPrhZpd1SCa51sbUmTayQZ6uSMTMK4A529nM2b", + "account_public": + "xpub6Bxggst3rsvn5H3tJMdhuRxJQ6QbhpEQpigzvGKiPgqDss8Yz2CboQK3nmQVDxX6kMA1Z8ythL955GHk24idWLYDg2GBwpP18hcFUmjhd6Y", + "address": "1owbuoi8o5HDuNEkKY9ixcZkACFmdgtbE" + }, + { + "account": + "xprv9xyLHNMA2WNUtoCxe6ev9Fz1mVvcDnad2xonbV2tfzuHwiTuPtxxJjqDop8fuuqGENi39tFix3PNUs2o4Q4gAU7rmLNqJsJjH182ygZq65Z", + "account_public": + "xpub6Bxggst3rsvn7HHRk8BvWPvkKXm6dFJUQBjPPsSWELSGpWo3wSHCrY9hf7EZMU6KmdLCkQAuRoMRbKvzGNY3cbRHzUkurpwpvg9TQLcw8Ls", + "address": "1HAtZTK9Dw9gC8V97fPBdMY3MbZ4ZJpQpr" + }, + { + "account": + "xprv9xyLHNMA2WNUvgb9DsJwF4nP9STVR5Y9dVtz9LrMW3pidfwv6sf7hg23XMn3ym3Zzvdwn5KR9NC5d595vuwNEYfhtKwm3U2ikvS8y8bdw3U", + "account_public": + "xpub6Bxggst3rsvn9AfcKtqwcCj7hUHypYFzzipawjFy4PMhWUH4eQyNFULXNeiVJaKutHJqTie1LYNNu21rFZ5p7PDvgmLnpt9CLuGb2wHs2uu", + "address": "17m8Qqc5CAqbooZ8o5Fk7o8fby5NKTbJWk" + } + ] + }, + { + "coin": "BITCOIN_CASH", + "seed": "1d87dcafa904647a552fb3fa80e945a3499468c8805900ff923659dffe905cc4", + "master": + "xprv9s21ZrQH143K3hWy6URTCQbhfqLXrHH8ioZRgnwie7rJvEC2vvizdNWoVYV5VargGjTgn89E6Yiv5317TasZigffcBegVLsnqdKdn6Xngec", + "master_public": + "xpub661MyMwAqRbcGBbSCVxTZYYSDsB2Fjzz62V2VBMLCTPHo2XBUU3FBAqHLorvQP5mGhTjABYJLFGm9oZWkVWjWBPqsN94ncUXSSimteA2c34", + "coin_private": + "xprv9w8UceYoj9gY1WmxW9EBWUstLH93gJtfJmYiEuo3F256oD1UTTfjn3B1ZZW3Y1sxCpWNx84Cd6fThJc2g9vHPFgTmJBSVo9r2Zw2gcezAcs", + "coin_public": + "xpub6A7q2A5hZXEqDzrRcAmBscpctJyY5mcWfzUK3JCeoMc5g1LczzyzKqVVQoTvXNjw2bAq4T9HEFTCS4X4VL5TWLd3r1WKTSnDqZBhN7YGW7X", + "child": [ + { + "account": + "xprv9ySu67KbMCogrnCS8JpgtBAH31MeNaXwpx7CgNGATWp6uCsKwdooXKvKW5ASbYEoi8QwPUhg3rsMShuk6tsX9A7bcZexpNrckw8RncJ4XdR", + "account_public": + "xpub6CSFVcrVBaMz5GGuELMhFK71b3C8n3FoCB2oUkfn1rM5n1CUVB8458EoMNCirCK3XphQeEAUmfKg9C7KCdvVPc8Kk5AiCoBazw3MYyGUSMu", + "address": "bitcoincash:qpw6ud66ddcp9qw5w422wtfe695zdusjcqqwzqzjme" + }, + { + "account": + "xprv9ySu67KbMCogvrxuCaBbQoMhbALPmzwTnaRrdTWNbaz2KW5k1yJVXuT1Sr4Suqd5HQRrWXCdu3JU7FEdZbLAVtdbfmYwfng4WbxFEAHh5fj", + "account_public": + "xpub6CSFVcrVBaMz9M3NJbibmwJS9CAtBTfK9oMTRquz9vX1CJQtZWck5hmVJ8s8d1VsqYom6vCF5feiHLS1AGfUY6YpqqnCypm89edDmrU3TJx", + "address": "bitcoincash:qp3kv66psavc3x8azdhkrscejsr3g3uxwgjnjkan3z" + }, + { + "account": + "xprv9ySu67KbMCogytfuEVXSTipNmuJcQr9b2pdz9uCfBxhydpM6zQmWkKYLDNWBjjRN4rX5NESMiRv6K3XmDfRYR6Y3iubdGwac8Rtu5F4GDvr", + "account_public": + "xpub6CSFVcrVBaMzCNkNLX4Sprm7Kw96pJsSQ3ZaxHcGkJExWcgFXx5mJ7rp4d4kbvjRQSyZ2AA8sfQ6KhVMfHdLrswSe5317RNDrj8ozXKGsvL", + "address": "bitcoincash:qqr96x0d95c2kf0c8hq5py8a3whzdjux7vewra2n20" + }, + { + "account": + "xprv9ySu67KbMCoh2TLkzTx6GTZjMVtybecaB9E9PVgiBnCSFE8FUnYmXBnS4Q27L96P69CA6qc8HUX86bY7tycATB2keot4RnL1e1eeDTBw415", + "account_public": + "xpub6CSFVcrVBaMzEwRE6VV6dbWTuXjU17LRYN9kBt6Kk7jR82TQ2Ks24z6uudJLuBzq4hcRLwptGvbN3GMGKQTWxo8vFbERTqEUE6tzxBG3TRC", + "address": "bitcoincash:qr3eeewr0t632n4w38wxq3vwu3txxnhfrsdt0mhn79" + }, + { + "account": + "xprv9ySu67KbMCoh3XpaG8C9wED3V42mbtk1Th9zLrKuW5DGkLMcjKGvdeXRZUANYpMPYAnjJco1cWVVVmxVed57RNP32DmTxBgVQPiLjvfjcm4", + "account_public": + "xpub6CSFVcrVBaMzG1u3N9jAJN9n35sG1MTrpv5b9EjX4QkFd8gmGrbBBSquQjjUyvPbz98qBuXGZvUTTqWaCJV23TvTcHJHbK1qwGurHxVTXcs", + "address": "bitcoincash:qqyav6zj0xq356gp0srr2yla0drw00mfwqrg3k5eqa" + } + ] + }, + { + "coin": "BITCOIN_CASH_SLP", + "seed": "656d1ee2481ce60d9d5f1ebebfe70684deb67d467e44fe36a9d8845b8f4b22c4", + "master": + "xprv9s21ZrQH143K2zwzmDvXvyJoRTfN221xBK8gDhhNRjSgCCDLwS7tBWAnutoZgoRs3VnNFu758UYQEGS35Ry9B5vczw8NqmVZxQTsSPyooJh", + "master_public": + "xpub661MyMwAqRbcFV2TsFTYJ7FXyVVrRUjoYY4H266yz4yf4zYVUyS8jJVGm8FMqh1MeZbPRe2s5DwaD35QgszeYije1sE6dbpty17Z5Y3hUJw", + "coin_private": + "xprv9wBExcNGz2peVdFXUm1d3CrDdR94gugfx5uDLpXZLLv7cmyUfw2JjXGwYhDDAnca4v5NaF7FCu7t58YMG2y9J1mXYwCkq8gd77au7JD784R", + "coin_public": + "xpub6AAbN7uApQNwi7KzanYdQLnxBSyZ6NQXKJpp9CwAtgT6VaJdDULZHKbRPx4NgVVsTU9fakLn4ua4swt8DP2Z2nxfHurae4tktqKyaByMzBF", + "child": [ + { + "account": + "xprv9yksBSiZb9mU6AsS2zoMCYB4R2EUKLxZxFF3MJPNoxvC9XwFHP7UaS7V23gLxsemoUELUYhvMnz6mvTWHWpgxVhE5nG3L8m9GmjfAuQRGZT", + "account_public": + "xpub6CkDaxFTRXKmJewu92LMZg7ny44xiogRKUAe9gnzNJTB2LGPpvRj8ERxsLw1YmQgH1en96RYD3iNyycBvw4uQjT2f8YX4ZEoXXbuEg8HFF3", + "address": "simpleledger:qpp0p2je8tr5kpl99xxha250wac309zrlvwx3yw4q4" + }, + { + "account": + "xprv9yksBSiZb9mU7sx4XWPiVt3pNHtwdZRYxU6WCFvU4mnoiuvqUh8LxaZxQbHD6y2htYD5RZ4ZLy4JQjUzZokjow98FPmfD15H1i1Ein3ZY7m", + "account_public": + "xpub6CkDaxFTRXKmLN2XdXvis1zYvKjS329QKh26zeL5d7KnbiFz2ESbWNtSFsQnfp6qfhayVjagMHSy9LsqLjtTfh94NBytQ3HX4p81gNdUkrc", + "address": "simpleledger:qrxvrlhz85pvzy29wrn50jxw8hyfpjc5uvpw9w2x95" + }, + { + "account": + "xprv9yksBSiZb9mUBPkVGsiHTBBgBbfTLrM99gwPPdUb7D8UG4RsfFogLfejiXJ3MtSvCNU7GmM2LEvLQNSxhZdY8uwX5cjMk6cAwXBFFBnup8y", + "account_public": + "xpub6CkDaxFTRXKmPspxNuFHpK8QjdVwkK4zWurzC1tCfYfT8rm2Co7vtTyDZouRjX1iRr3KnmB7jxh1n9kmXEEJhKogTbF4PGq3GfWVngPEJsw", + "address": "simpleledger:qr8xu2jpl5g7jdh4wr6uvfzzqfswyjf0kylglwzqzw" + }, + { + "account": + "xprv9yksBSiZb9mUDJ3wSYfunxne98yaWzhhpQD6u7URfqke4gNg7GxK2vCaBYuB6uS5XEf39YZ8Rz1476yWhxSSN53G6vNW2JuGzGY1z8rGnkY", + "account_public": + "xpub6CkDaxFTRXKmRn8QYaCvA6jNhAp4vTRZBd8hhVt3EBHcwUhpepGZaiX42pFLZMcCL52YzYRekiaKcwR962fdiVZN3vv2xE2DHni8VYKB7v1", + "address": "simpleledger:qp3hc6pdsa6e40jvfv2trpncu5krkdj6lu7j07t4nm" + }, + { + "account": + "xprv9yksBSiZb9mUGPzcDiM52WW5P5oCX9YnTNz3bnx9YLdsY7J9kvJ7arSfT9bjvdx4Eb3wnAgPHHphvqiaxVhe5jxVWh5KJ6pDPKkC8Denq3s", + "account_public": + "xpub6CkDaxFTRXKmUt55Kjt5PeSow7dgvcGdpbueQBMm6gArQudJJTcN8em9JRJQkBGQzL88SmEM5wGfAN9ShgA76SEJRUd9yP7gpdmbfdbUjdE", + "address": "simpleledger:qzkgstc5sp73tj6cm6sw59faxszpaq4r5yqu6gjc8z" + } + ] + }, + { + "coin": "BITCOIN_SV", + "seed": "0efc73b2edc448f7c043d39e089903d08bdefeecd323efd3f8ce72e58d816fa3", + "master": + "xprv9s21ZrQH143K2qtGHLGFENiCeafbjBMhJRRCqgcdpiaphc48msYKmsZ1JLZcqmTUs4LckAN5keRUpF69chYsAm9kviiEB6LGrrxEyB5rCzt", + "master_public": + "xpub661MyMwAqRbcFKxjPMoFbWewCcW68e5YfeLoe52FP47oaQPHKQraKfsV9e7o82S28xtWqWJ2fVjTNHVMYiqymvd6QstxJixM26Aw4K2SXns", + "coin_private": + "xprv9wsnprnPJT3ZLTR5FYtLcq1vmX2Jfe7Rs3EQBzGvg1yS8h6KXypwYGQQ4VPfER5Td32QwMbJ1g9vFAzFrCfoG959kdjayLqEYMdYB6VWqoS", + "coin_public": + "xpub6As9ENKH8pbrYwVYMaRLyxxfKYro56qHEG9zzNgYEMWR1VRU5X9C64isunwwSg2SWBtUyEqUEC82wbt14USbvc2BSjxUDmH4ZZwbdEBuScT", + "child": [ + { + "account": + "xprv9zUjd8sJnCjKvt5qgHsj6ZxmudianR1U3KwBuAQFddhq37MKoPgVPGZTwypYS4PGNws2Bjhcmz2R9oQPQrZnmGyZ44vndY3D9StRYjJEvcR", + "account_public": + "xpub6DU62eQCcaHd9NAJnKQjThuWTfZ5BsjKQYrnhYosByEouugULvzjw4swoGHCnSUCLBJELbVZgR7M6nDvu56yDMjpjUKTsaBoqUy47EivUtP", + "address": "17JVMBUB98RQJ5N2QfXqYsppVJAZCjQSoH" + }, + { + "account": + "xprv9zUjd8sJnCjKwiYjxHJeEXa5r1nauAfWjVEbBYVQVwSdTcmaWZ8gwEQcAiieBRZJYKqwtEnPrseRa1WjTUH1tqf6bQdrXgPoqf9R9fk6ZmJ", + "account_public": + "xpub6DU62eQCcaHdACdD4JqebfWpQ3d5JdPN6iAByvu24GycLR6j46SwV2j61yEPheVCtyMovLBuLStak9RuKnomfpY8t5BnxXdrMWkzFNRLoRg", + "address": "1GRVxyd4X8N6Z2zSXRhNnnxhKw9BMhX9ez" + }, + { + "account": + "xprv9zUjd8sJnCjL1TGcaGYxZxnqg1RvsC8yR5DHxsgKMWkLrFB2qgoRTYubCD7RgJfhgVnmwVU6kpqMuqnCy7AM8Pj7wNwEnQpPGY55TB594Yb", + "account_public": + "xpub6DU62eQCcaHdDwM5gJ5xw6jaE3GRGerpnJ8tmG5vurHKj3WBPE7g1ME53WdJSwxcdK2f85rRBJBb2avFQizDKJH1UctJNoQpudbNo9qLbRd", + "address": "1YtPEQR3UvyZp6UQqj5YDFfWAJK2UAwAB" + }, + { + "account": + "xprv9zUjd8sJnCjL3j77456sXYs6X2GPzs4aawav7yaVU3zbpWWK2kHfiyFyLQNEkKpypLuGCGfeLmXM5dbPrpWv4BDakXzMvFrY9ZVpMDNoo2g", + "account_public": + "xpub6DU62eQCcaHdGDBaA6dstgoq546tQKnRxAWWvMz72PXahJqTaHbvGmaTBgL9x5GGEGoY8JGzG3fAPSSxevHvH6qgBhwaMVhR7GD7cHdGM6B", + "address": "1KFXnppEdKVnev4YKUyX3efwabqX7jFLVo" + }, + { + "account": + "xprv9zUjd8sJnCjL6WnQUxJA6p1YkQFZ7PCvZN74bFvGfXt1G76mHx9BQhTEMswvHGF9BmCKxFTMR1nNUGtgCwUa9tvxnueRcqH5kbuGA7JEfo2", + "account_public": + "xpub6DU62eQCcaHdJzrsayqATwxHJS63Wqvmvb2fPeKtDsQz8uRuqVTRxVmiD9ezJr2P1AucgW6DMT333XVvixx7Ub3GyoBohYM3hFNcFWhsLBM", + "address": "16ocahU2fNYHRuwD5CypDTqLSxKZG7ZgrC" + } + ] + }, + { + "coin": "CARDANO_BYRON_ICARUS", + "seed": "e7b0120f1e16d8ea9220aee520a3fd15f468ec735a5298c971b6a4cf644fe4b1", + "master": + "xprv3QESAWYc9vDdZRQdfZ245xMtSWX47BBBFMZnozhXSF4ikNBPHf4bnKWxTUvvz84C1jmJ4D2NMKnEry5uEXZgaFfDpM693Gvx36pHonLQXdxcUfmXsvRSHpfx3rwJ9M9rzkFk98hLvgTBtzJWqSqgSGu", + "master_public": + "xpub661MyMwAqRbcF4hKzdGFzjShJJcZzA94342vqp17VBG892S9aVw8JUP4kyDVURGCXfyJQGz9ERf7uUb5xT2LSdb15d7y69MeL5dRmwnbeAU", + "coin_private": + "xprv3RTmBdnAeca5emLEbJcGhUEzQdpRCnfdoUUSMHwmnP4HGAXHGWkUWCazvCmAahxVC5UQ8cZhd6yNkm1A45Tg9kLAMGCXja32bmXbtvgbWzuCYwPQk1ExrYrEusRnWfqUFqFhgpvL6j4HvRdM4He1zYC", + "coin_public": + "xpub6A9URPKstRi3MFHQG3epijQjNhJoLS8rHEcpKPYr7LpmJwStQaDpK7sUxAKCv7a7S1a8VNtaaPxMv13FMC2HtG9HbN4ku2xP51ajVGB9vRS", + "child": [ + { + "account": + "xprv3RxrA8A6tN98BNSqPnLy6YxvG89AUErX63a1gie7zGzsh7Nx1E3edKHmMTwLPa97vQbT3w1gKNUgUvdXjk86j7BNAJEUDsHxfp7StVwNshMaccoXP3puJQyNCBcZe9ZwxuWMev3QHv5dgMDpMoWNji8", + "account_public": + "xpub6BqPHJCZcGcuzZxyiD4meuk8WmkxNWVfeAGeQK97wJvt1NpnwQSLiMKhQ7Csc4gbyQDxgHjQEKPaSDfvFLtSuH3LTHTGxwJAG4sb3yb8pgd", + "address": "Ae2tdPwUPEZDHRcbfcVkzyB83cXWj4TDPgb5LQkG8DQ2aWsyvYVL9qTnTF4" + }, + { + "account": + "xprv3RxrA8A6tN98CG2FovZBVR5oUfmBYZkrGtR7RqjdinjujHHZayGh3dU6w6xaZYBdTjVYJVrnTweiJdREdHCAwqzBroBvR3Wuwd6BZFUa2psiPA3gaHuWMRFTPTFDHUaz5pMJxEZrVpFLs42fypuCrGw", + "account_public": + "xpub6BqPHJCZcGcv3Zazud9s8KyPeaHz21STRsetQHMjxR4nnqkDTmGsz89DT2Xm6EHP9mDFEzSRyXkt64qR5ZKNT7gG42FGYfkQGar5Qv6nZgT", + "address": "Ae2tdPwUPEZEDLmENzy6bDFetXqKDHzRRBLb8A3WUNYPMxgAWayVsKv7dwh" + }, + { + "account": + "xprv3RxrA8A6tN98CxWifm7GL2Nb3nXRd7nhSMGvrnWzeqW6zXxD1NeeaPTABpfL41fLrBdMfJ13ztJCBKsyi7aNFTMHpsmotQvkoNxdTYcBHWLj9TrpNNDTPvg2gQUbXHkwXqWYcNWGpjcFyAzKgrSmpen", + "account_public": + "xpub6BqPHJCZcGcv5utdXvFeQMTUwS8gjK4hGCy6WM6FtsskHfCLVcgGb4HZDeHnk2U9iHS8PqmjQGSkNKBibvBmd5SXZ9MY9DxhvR1TFk6DegK", + "address": "Ae2tdPwUPEZDrzyVer8KYefK6w4jUWADncaRH4hg8viraYziEm5FM38WH9U" + }, + { + "account": + "xprv3RxrA8A6tN98DpStYUg4JzLbkNijJvs15jMeAFCoVF2eCTtN7wuHF7hbBRaaCAHhz5iVPTzrCPqNLZHPAazvLp6xbUcyJ3eUkddb9P2CsJ3t3XsTNe9kXDmVTvbHzyhu7LQP66k368LKBtBx9XEz1PF", + "account_public": + "xpub6BqPHJCZcGcv8oz1TwBBBPugqw5Vam97GnhiXWbHZP6xEvmekggibWdjYTcJbyRJ8HXofMLa2HPvyuMdnVqSzg1S2Bsra57FEAbddPqgM7e", + "address": "Ae2tdPwUPEZHXUMLUkyJ4FYJ2pMoabvzjerbH1FMkMbLfrNv2pDPkE5KfZW" + }, + { + "account": + "xprv3RxrA8A6tN98EboNwJWuACTo3uxkESmoQeYDoGdLyYUijzBr3yyMyFcxnxRkZ7urxi8nV2FqA9SCNi5i1uRbwR26mfmFo8sYSe7MnU9sJwS8qxk8bCNA1G2enxPuuKf8UTPeu4ZgM8UHZivBCD1bbqD", + "account_public": + "xpub6BqPHJCZcGcvBSf2Td5c7BzNan7PTRA8mGAYdrfYwcth6QUtgTD193RAwZqM3zxqusHis5VuvW26uQrLuNKJAhPYCWZ1TEgakiFq5rrWNrQ", + "address": "Ae2tdPwUPEZA8MK6prV9QaoAqqtsMtnoJmjmxi35pQh43ic8fqNNSkBx837" + } + ] + }, + { + "coin": "CARDANO_BYRON_LEDGER", + "seed": "90c83834f36770a3e279ed0ebfa184156483e3910ba9cc4c1ce6d83554006fc6", + "master": + "xprv3QESAWYc9vDdZyE8E7ks6pVFfdxu8ZN2y8ngduDEfUwctGLskotiMD77h3TpyUWB7B996BpqMXy1wP2Cm5UHakMKEA7ryqN9XcErJWKS5jyLFYYNYVSa2fMATVy9WBrwVQWMAe6rXH934zjdvETW6Vt", + "master_public": + "xpub661MyMwAqRbcGuoouqfRA2XtTGTsstj1hm8FWRzEzydoSfAZrQwaBkaXFirXhXDRQ65Ea7b5h1s5CAxiLEggT4WnCCsUBmpmSRzkn96mQnV", + "coin_private": + "xprv3Rsmd5sTHq1zLgFnHVUS4HLzpLy9vvPK8BjQqHPEMmMTN48mohb8iyVRax9p8xxdmoyvKEdqURiSw12TdcbF9N3LjnuzaZGhsMa8TKcxqpbDGogG8yAGmZMfrc6v1CbrrDwQp3Qcaf9GqmCNdxwsSvr", + "coin_public": + "xpub6BYHnfFxBFNYJehwqupuboSuGmSaL5KiZUSLht71dPtcXVEGFq3BwiBevFLzsYL2XhnEmWwxQL8BnGjM5Uhw3qGo8HrEZdgDoUQyvM7CjFh", + "child": [ + { + "account": + "xprv3SMpyXwqHg2b1HR254t4Etv2qZHbnG2pGzqGtYXCS97k6GgkqP8MbxWMsjmbr7eCxrFfukGwaCbCKmRdapjnEAF94fGigAfzmcaE17mw9Crv2QZKs3N6o1x79wBzW7rMcNgR13gPj4Y8K6Me1Jhet9L", + "account_public": + "xpub6DAjwmmmU6pbrMjsrV7V76kiTiDLjiM1JNKpZZw8KVkVaH43NGrxxrdxgwD9oUkxMSnisfQcnnxxMLSYBmPXSHtW2mdwvwZ4fZSLHdzvaww", + "address": "Ae2tdPwUPEZGf9NRpr13BsVCE5cNBS4CBZHV3T4ezmhGN8y8PnJS7ojDiTc" + }, + { + "account": + "xprv3SMpyXwqHg2b29esK2nzCYA8HD3s8FQF8ePcSpbYKHae1Z7JpiU2QK3eJsEdNQj4oguXGGEMRj4ZYnfgf25CdcEkpLJseTZzN5KLWjpcQntkPETSb1Vg5wvM1W7oyD9UxgGE2XPPXnNPGxck61AwuGR", + "account_public": + "xpub6DAjwmmmU6pbuGrmUZmvUcofPwdoedyJTuNtseZUXsnjiTJYCdBcFLr31SymYPVdJNyH7cpuno8RcdANSBvGQZLwStTccN59FUKBtcHmWsV", + "address": "Ae2tdPwUPEZ2qso4o7bs29ZTTukez2kuQaXyNU3usdSN2K3eGivd3L3KR4y" + }, + { + "account": + "xprv3SMpyXwqHg2b2ybdZXwKuhtG3aE8zusLrdZAbgoMrKdw9ey1zDeW59ySZvtjoTeJ9yimHQvpyk5sNNS2iuWbrrqbbGfKM2GP8CXs7j1BLaKddmdVq9MuMzPZtR4kzhmm5LmewU6UhyEgu1VWS8nnYQ8", + "account_public": + "xpub6DAjwmmmU6pbx4FefBYk1S2SYJtunPaMvHS7MMa6Na7D6C9ZL9JJ8QHY76wgqWF8BVbqh3SKNFV9vDEj4TfhCbmv8SBZrvyBCydqY2gi65m", + "address": "Ae2tdPwUPEZ9Vxhq4o8nkhEvVxn81Xe2rLzRGBPSLARLHugcr98NvKcPE5Q" + }, + { + "account": + "xprv3SMpyXwqHg2b3hWgctfx1ovrMWBWuJSEJU1rbX7QagK51w4G4SSJGKFrU9UY6jHtsx2YxyLQmuXyez5ZeNCgTBqWwJJDT9hT732rWML3thUZrNTfVfjgoTM5k4JJizaxfzR84mtckZAtnNpU6wHykQr", + "account_public": + "xpub6DAjwmmmU6pbzVMJXkBqXpr9NiRmeXmnjjqesAM6GyV52PTJemfKqjDQS1zrX31XdnaTWrdB7NESDTWzGWHnNMMb9isGrbrpZ57L8riEgxF", + "address": "Ae2tdPwUPEZ1LnJw2hfc6y3sVdMRwr7CwYHnuxKpKJWXYesqKB9z8tpT6sy" + }, + { + "account": + "xprv3SMpyXwqHg2b4Ykkgz5EbxtWAvfgjH6vYFYMdR7brECgCmoYchmjrEEuodgj9YgCMizW7dnvH1ycWwKYuaYMxc8AvYWSxUYLnneWJX8XBT68d3JirKirDVLkjaqxRJRHhSvFu2iTUUTAPsiH64T4bhP", + "account_public": + "xpub6DAjwmmmU6pc3M7h7FJf7E8iE1UCvbeyWnwdCq5gpY7QFVBhtZm3vKgNkPFd36kXsuwXswBAqjx8AMWFFkzz4jEyP1WrMZ7atmHq1a6Ju7K", + "address": "Ae2tdPwUPEYynr8sUuyMDR9vj6nkDFXhSEQQWPYNp5K2LxQ4EWSCdvrM4ex" + } + ] + }, + { + "coin": "CELO", + "seed": "80cc926d1f272f315d0f3007fcb7a4d80114b9e602004ffc4047f543b9b09390", + "master": + "xprv9s21ZrQH143K2XrcUS68mFnCxPL4ydj7xyhhXD98m61dASwEA1sFvr8oHvNQzLdyVhHyjMP3mN1z2YvEWvvjth692CqAUsp8fNJRkaRMYSf", + "master_public": + "xpub661MyMwAqRbcF1w5aTd98PiwWRAZP6SyLCdJKbYkKRYc3FGNhZBWUeTH9AvucxR57v9YNtJMk1Q2UQFzS5TRU7h81RxUAvwstTyzEeSRYwx", + "coin_private": + "xprv9xdQiPMuptHXjk8u73WyG97pijqy6iMirJGgtQBJ8WDc1vE4kMyLaoFCw8cTzeKdALoHMQgzTXQpzJnX7AmuPZms3j9Am3xP8qnemELMXpM", + "coin_public": + "xpub6Bcm7ttofFqpxEDND53ydH4ZGmgTWB5aDXCHgnaugqkatiZDHuHb8bZgnRj5tnHo89gDE3UQVXXyhs7kreLwpwhLJNkSjySkQmnQkLE4n59", + "child": [ + { + "account": + "xprv9xkLCNSZgiCW65wQkrKJ7vKcHYJtTKsJPZaLXHxngTDa6AWTkDgw3iynhmJuEbpShkWomzuaw3hpmyJ4EGq3px9EwP7r6GP8VHeJX2JocLU", + "account_public": + "xpub6BjgbsyTX5koJa1srsrJV4GLqa9Nrnb9knVwKgNQEnkYxxqcHm1BbXJGZ3Uh5ZVdTb7v26g1CXCdhhy62vE8muzomDiuWRsaR9J7RiqhPcn", + "address": "0x0fBa8A61a7939aaa326177Ff6F65D01F7Cea55E2" + }, + { + "account": + "xprv9xkLCNSZgiCW8y4Sm5XMUf7Y43WcYyGSfHaJqYTVqbyxoR7dKruyor6GH842VRNwq7J63hMJwQqLFVs1o149cvBnyNKPMkWSEmUvNxZnn1r", + "account_public": + "xpub6BjgbsyTX5koMT8us74Mqo4Gc5M6xRzJ2WVudvs7PwWwgDSmsQEEMeQk8SdYgx8HQ1jXRDTzvyHZq6pcqV4otikbjiu45tGvi8ZEimiw3F7", + "address": "0x0Fa89ed46EC3c33F8afa8D128Cc4aea30b9683F9" + }, + { + "account": + "xprv9xkLCNSZgiCWBxhBaoofyhXeXEgZSQX4bufAb2EAvmEMr81VRGMk1UF9R7UnYp3PaKgvVv7Vfc8y77ZTyqyf53ctUf9KeA8ob2jtjL3Ds2Y", + "account_public": + "xpub6BjgbsyTX5koQSmegqLgLqUP5GX3qsEuy8amPQdnV6mLivLdxofzZGZdGPdVfpe2dDtpyc4wBuqVvJ1M7SyrK1HdyzkyHeSgTMgcx57QxNK", + "address": "0x96E09D162D7c14C494C7Af6F422edC88520AC2e8" + }, + { + "account": + "xprv9xkLCNSZgiCWECJ4oi46BFxmE1EXukZXSJyaM4x7UUjpu1nQkorosqQCcCSLY6EwVZiuzSJT42TDWFzqxSfg3bxVHPQDg8mqrmG9Jk11Mbp", + "account_public": + "xpub6BjgbsyTX5koSgNXujb6YPuVn352KDHNoXuB9TMj2pGomp7ZJMB4RdigTSh6qFWQ8xyaj8Hzew4KQ711gydwXW2hcmjeKEdb6Kyo3jvMgr4", + "address": "0x42E10cb9709D93d6252B50935687A6840AFcfe9b" + }, + { + "account": + "xprv9xkLCNSZgiCWH3i8MsLanrHAEdbXXrWmQ3fFVv79ggJHDpaftDv19Xjz1yys6QecQ6Kuo3fSePwjKMTg4otqWnKENTSKDZWe2wjHojevzo7", + "account_public": + "xpub6BjgbsyTX5koVXnbTtsb9zDtnfS1wKEcmGarJJWmF1qG6cupRmEFhL4TsGWrTzZhkk9XjDaUPitCU2gJJeJhrjh6sLaaPQYspdcyr7YJTPt", + "address": "0x5D19d343959e0F4F92759Ee4341eE369bAEFEa5F" + } + ] + }, + { + "coin": "CERTIK", + "seed": "20a51277d10a1c4de6cd4cf7c758209987dbe122a183715891e5f958f3804b70", + "master": + "xprv9s21ZrQH143K25JmJAzrjbDarfiqNLHjRtYcLnwnfEi6KxVwBs3Uco3bP3PD4d1bDdFFUiWDFhuZnKMvpRp8gwKNWMR2DvoLaSHsd24zE8i", + "master_public": + "xpub661MyMwAqRbcEZPEQCXs6jAKQhZKmo1ao7UD9BMQDaF5Ckq5jQMjAbN5ELJnQbLvbaRhpXjSDaUnEF6FjDutz4LkUEVFWEqzV28AkZLfojB", + "coin_private": + "xprv9wGm7csa9mjV7r3HYGP8RhVThMLvVK3Y51Y7cuFS3d58ycvPxhBq2ahke31ikqY9txhdU4XiUUQV8jtHrcGJHsWu9g9WEQrBz6URtpxzX9M", + "coin_public": + "xpub6AG7X8QTz9HnLL7keHv8nqSCFPBQtmmPSETiRHf3bxc7rRFYWEW5aP2EVKZFc26SwakWVBUyH7UNHf4DWY8vpoGAJBtgpGqWjzSqdfuX3KQ", + "child": [ + { + "account": + "xprv9yFPWixsbRWYPUx7jqmkRkKfxv72qKVMKpz9kt5kfqBptztMsnefHyJaL3nkrdUn4srN9BeUCMTKrK4q6zz95Lz2rJ9eKsmHVCN42u5yrMo", + "account_public": + "xpub6CEjvEVmRo4qby2aqsJkntGQWwwXEnDCh3ukZGVNEAiomoDWRKxuqmd4BKnDERRY9RJUubcMa85R8GvZqXBUirkLtBKrvHmZ4XJ1UwMEbRM", + "address": "certik1wkjp8cdkyfjea5rysh9gwx9vep6qpym7cuvcwc" + }, + { + "account": + "xprv9yFPWixsbRWYSWuiU2Er3BN827MSLV84Sed3HRKK88JzimFMVAw3jYtYXLDS58nLts8d4vEeeH9RskTzFqLJdtTmnCdQvad7c3P2FuBvmVL", + "account_public": + "xpub6CEjvEVmRo4qezzBa3mrQKJra9BvjwquosYe5oivgTqybZaW2iFJHMD2NcME1qBYctBFnJqwcD2b4xPRCtT9XsKZXVWsgY5uqg3WddnTGT2", + "address": "certik1gn47gas379j350n0ev7vdut33auad8js2dkxhk" + }, + { + "account": + "xprv9yFPWixsbRWYWQ9VdV5DbLyCtThegFuxnz7HEj3UiEhmkJttpe3sTGqeyMy51WWKxWwPx4dxXaiy1FfwhqoRommDxtRci2hsrCGxiAx96ri", + "account_public": + "xpub6CEjvEVmRo4qitDxjWcDxUuwSVY95idpAD2t37T6GaEkd7E3NBN815A8peqLZMkiFCaWFxEuFAj8q4xjQvRxg34jrsMianqYMM8h5yVuXrK", + "address": "certik1sq7tuafqcnj7z0wk4a6d4myfdhp4nsltmdz7fd" + }, + { + "account": + "xprv9yFPWixsbRWYYz3HSsMvr2r7n69CZyz67uPAiUV2kmzMn1xdVHTmU7pfSqPbLuBDDwrq5nKQsWHiXNGcoueLWYoLdqEHQ4qyHkJNXTzUvMD", + "account_public": + "xpub6CEjvEVmRo4qmU7kYttwDAnrL7ygyShwV8JmWrteK7XLepHn2pn21v99J8EALJmuSnLPSvszAkMkKRySTVyZebiFTUbhsBLkC5rdKJeMFki", + "address": "certik1rycaenaxnm2empusukuenqqemafe9n926akp3l" + }, + { + "account": + "xprv9yFPWixsbRWYahjk81RB1pPtaNy3mrH4SQ9PcgX7A5BxuUTtnFgtWEAeJ6Crh1LRnb586UzQt6WDyvNZwG7MSfuLEuYH6d2wqaX8DXQr87p", + "account_public": + "xpub6CEjvEVmRo4qoBpDE2xBNxLd8QoYBJzuod4zR4viiQiwnGo3Ko1942V89Pv8F8Vv5gSsKawA6xSp7SXRif3D6K4bfs3LjLguJGgtu1VwSUQ", + "address": "certik1uuyemsr450aev32xumftes2e4m7lplp3ptanyf" + } + ] + }, + { + "coin": "CHIHUAHUA", + "seed": "59bf3fbee273ae5c67b88ee804b9e31826f5fd8b6cfc3af40226fdc8520d1e10", + "master": + "xprv9s21ZrQH143K3maRPsmKf5RA9cnwiGiNhKb5VKkScKCcCvfU5gMcUVsQyG7k47dRnkU3MY3VQwWdqg56SHZFBRtsZtgnQVJXpbm1wuvFu5d", + "master_public": + "xpub661MyMwAqRbcGFetVuJL2DMthedS7jSE4YWgHiA4Aejb5izcdDfs2JBtpXiof4yzY1kXLKV895LrM42rpfi6m7R5jnFFTZTYNPhKYF2hQFH", + "coin_private": + "xprv9x8YBDy926ny3uVLGHDvRv2jj7Xi2kppbeYw2id1ex9rNBjHXgpoLazt6sVpv2rkkW6MJ4vucMeei29cy7BuscqJFa8fAmeP9UDhaPCGoDp", + "coin_public": + "xpub6B7tajW2rUMGGPZoNJkvo3yUH9NCSDYfxsUXq72dDHgqEz4S5E93tPKMxBowJcNSe43Ey2Hhz8keYYrp4Y5QuxK2gcDmoShTeY14M4Rpy5h", + "child": [ + { + "account": + "xprv9zG1HFpTvqwz1ebS26FGBTpzz2jWX2H2GyggxV9AX4TCTYqcybLNgJgzAytnA4McxUf6EUmMAAqEhU7ggD1QLphZr7TdKWh1Uymnaq58KZM", + "account_public": + "xpub6DFMgmMMmDWHE8fu87nGYbmjY4ZzvUzseCcHksYn5PzBLMAmX8edE71U2HM1qTpGKFZSLtjg5XdJG1zTRwcE4mDVSBgaNgbM5q1R8M5frzq", + "address": "chihuahua1zee6hjjjq5sayhna7ew83mtydwzuydn3mamuqc" + }, + { + "account": + "xprv9zG1HFpTvqwz5sf35qHwbYEECLiC28EJtVAKt7tLRckKJb7PCk3nQryi7r93LUzga5GvhLd1F4cYHRdhVKagdm6b7xRvzSAwrn2GSMX276g", + "account_public": + "xpub6DFMgmMMmDWHJMjWBrpwxgAxkNYgRaxAFi5vgWHwyxHJBPSXkHN2xfJBy5rAJEEE3UkdWuxZWb5EfiyiRYDwbvq7HC79e8QTLDNRBDZvmmi", + "address": "chihuahua1vgl8x7gczkfkjfpmdamk9zjdn2h6cctjzejwln" + }, + { + "account": + "xprv9zG1HFpTvqwz7dQDM2tV8Z37nHQnWmRewuGATGHQkhJu7RGHufE3UdRgzdYRnuGvme2c8B1cAtUG3AS3YLwoQwzGudHYukLeexXQj7vdwyi", + "account_public": + "xpub6DFMgmMMmDWHL7UgT4RVVgyrLKFGvE9WK8BmFeh2K2qszDbSTCYJ2RkAqw5giQruD7VeR2WR8fnC9v7CPDdtK9rLKnhSJEBw5vacyA5QBSQ", + "address": "chihuahua1zdkcsd8qd3qwdvpmcqjts69pgtqj8xzky52de8" + }, + { + "account": + "xprv9zG1HFpTvqwzAvSnWNsuMZgvGyxtwBti6jFMJ4yFi2W6SwBjL14SqXW4FkNuBw9r9GUKLCDK6g5FMM597JZquxkndaMK442djYYFmamiMD1", + "account_public": + "xpub6DFMgmMMmDWHPQXFcQQuihdeq1oPLecZTxAx6TNsGN35KjWssYNhPKpY72nLUvd7WvbyHa3LwPngsxE8LoCiWuHk2oPwAfPoLFJdFW3hjab", + "address": "chihuahua1d9jcjylaprdfm3yd63r97vslr25vu2rrxlylkz" + }, + { + "account": + "xprv9zG1HFpTvqwzCEDkxQfdViKQsAc8NbRPZYvWFS1XQErgwUZcmu5uu3qfx5p3TGKzny2uDEuUYyPx1iSMYfEPcy23E4CeNwaQYDX3j2ezrJM", + "account_public": + "xpub6DFMgmMMmDWHQiJE4SCdrrG9RCScn49Evmr73pR8xaPfpGtmKSQASrA9oNkHHK27q3E7nXSsTMnBkgHYbupcFzZbrmHGX4eJnuSYf5pf5zB", + "address": "chihuahua1kakqlhfezyz5jzcal606q66q5ywly2slvk5lu3" + } + ] + }, + { + "coin": "COSMOS", + "seed": "ebcd54534f899db6b3ba10902b15af782b0e5e1c2cb0c673124c7d7ed9ab0973", + "master": + "xprv9s21ZrQH143K3FHLfWoLGMq4sAzbs4h8MsU15HGQNn4EvaCGmWz9XPFjBATn2ydMWkRvPJVgWQMiV16m1kuGVN4HJhRjT67vdKYQhwBtue9", + "master_public": + "xpub661MyMwAqRbcFjMomYLLdVmoRCq6GXQyj6Pbsfg1w7bDoNXRK4JQ5BaD2TgCyzJ6xajnBmsHuZrutj9cccwm8s9c7kTd7AcHCGf3oeFiBTn", + "coin_private": + "xprv9w9KkCNHM86fmSYgGM6BYeGhY8pAdiwHUjZ4KSVP6xrpGAX7aSqoh2ospSnXr5s1n6Fz6aWBk94PRp5xtWdvysutBgdtHbaRbPRgqorY7eP", + "coin_public": + "xpub6A8g9huBBVexyvd9NNdBunDS6Aef3Bf8qxUf7ptzfJPo8xrG7zA4Eq8MfijJdQFF1Cz1YcQh88yPqoz5RkRUiJTGJ3pEyejrR48zRdwcD6r", + "child": [ + { + "account": + "xprv9yjWemSbebyCLsQTas8omSj3c9H5MSMekh6hE7h3qyhkFrc4tZtrxmrJ8AcM13d6DLuwBMqi6zo78K7a7W1oNFs8ow3jL15NUrAPaRyK5kW", + "account_public": + "xpub6Cis4GyVUyXVZMUvgtfp8afnAB7Zku5W7v2J2W6fQKEj8ewDS7D7WaAmyV1XMd5GK4pAG9bxgbAh9MiN6Z5yY7vUJdkFKa8TejzGGD3MYei", + "address": "cosmos15xhgg03ercmrslu7nmelppyhcnp67p7ap6xjhz" + }, + { + "account": + "xprv9yjWemSbebyCMW2UWSGq4EHMk3sk4U7tk3wmkMKgLu2GTBckg6u2gAhwcBrpAZytyN15JBTn6sfSrUKdWvohCwKv4apa1NWAEW3zAPUZ8vp", + "account_public": + "xpub6Cis4GyVUyXVZz6wcToqRNE6J5iETvqk7GsNYjjHuEZFKywuDeDHDy2RTUi1RarHWUWXvW1ipc4B6UUc8kUTEnWCii9NMjy1tyywDUS9pKK", + "address": "cosmos18qg8dpfzw7qmjzjx00n2mqccdt3ghndetpvk86" + }, + { + "account": + "xprv9yjWemSbebyCR663u8aGfvr1e2bYZrGC61kVBrKfoYNje6bpGdWbZZGqa4FP8HzCF6xUSzfmrxSUGaNuP6D3hjQEBdGzVjtWMsZbbhNJbDL", + "account_public": + "xpub6Cis4GyVUyXVdaAX1A7H34nkC4S2yJz3TEg5zEjHMsuiWtvxpApr7MbKRMee6XnzqHtByyHMDe2Ez2gAFdxCvAK1r8qNKHATHRQTD9jQzbv", + "address": "cosmos1c69spnlt9sgt8pe0sf833kh5x0xdwkwxz24vyn" + }, + { + "account": + "xprv9yjWemSbebyCSVqKrZxrmrUbZo7NeX2ipLfUQ7DuXpmRFG7PQ2LuofnS9cFK5Z6nrfz2stzFzVJqxBqDmJMC4M1Nv7KBbihQ1Hxa1gYx6ys", + "account_public": + "xpub6Cis4GyVUyXVeyunxbVs8zRL7pws3ykaBZb5CVdX6AJQ84SXwZfAMU6uzv5oefRev9UKWRWkezzVSoxTVGmuVyeYQbVg3jaDhWsFtaRDDpn", + "address": "cosmos1xywjdktj9qumyzr5f3ykwm5zwhep6m22jvsxhr" + }, + { + "account": + "xprv9yjWemSbebyCW3w1jp1FYz2sBxUhYyn6ir5uhdGw4GzQto2Nrq5meeHQQVQmvyA1gjZ5gGmM23S8Yfc1oEpoXjbV4VxoD2c9vAtqA9seQ3x", + "account_public": + "xpub6Cis4GyVUyXViY1UqqYFv7ybjzKBxSVx651WW1gYccXPmbMXQNQ2CSbtFkXjfDRDnSiws16GJa2pDUTbtrF4Z9tDUhj15VQB1nNRtWTaY5E", + "address": "cosmos1l32ypl290k57ead8gxdns8kn4fdv5dgdzkt9ek" + } + ] + }, + { + "coin": "DASH", + "seed": "5e223cf6e5168e1d6b17cc1e2b3c3d76597ee4e0280d6396f2989801d9ab6e6f", + "master": + "xprv9s21ZrQH143K3WNEJK8G7LtVKTfC76PRHU5K67vMiqAoiGvUxrW2ooxsFjXaPZt7qTiM4b8pyhNsjKNZz27PMBFPmfjAguHGySh4sN1R3r8", + "master_public": + "xpub661MyMwAqRbcFzShQLfGUUqDsVVgWZ7GegzutWKyHAhnb5FdWPpHMcHM73T9xhCADZAJdmJ1ADGnfBZaypsJqTDL6hyPFk96ioudTruGYW9", + "coin_private": + "xprv9we182XF4hXLvr57LWA5n4mG6nV7iB8xEQWQDBV7Md5dtTSbZwBqUf55btc8r9meYMJgBFbGcvmDWKM4pimhL5QbFoAK6UkJvfuupLxSG6z", + "coin_public": + "xpub6AdMXY48u55e9L9aSXh69ChzepKc7drobdS11ZtiuxccmFmk7UW62TPZT8ouAj5p2hGtEkkykBX6WhmsNv5ZUSnuUBRaH7hpBw16sycc52w", + "child": [ + { + "account": + "xprv9zPvwa7pjNbRwwGE6MjvS4erkNJ6xCboRfNTM7brtSkwt9ryJYDkZwtPJME75rEwq58qhpHb11cTNPjgG5jR9DZeRbJjmRwJzd2sA4aKCZ7", + "account_public": + "xpub6DPHM5eiZk9jARLhCPGvoCbbJQ8bMfKentJ49W1USnHvkxC7r5Y17kCs9cNLRGosTBB6dWWNivKR8qP9cXNEYZYL9iHmRZzCV1q3KCyH4WN", + "address": "Xv3QyjYnsPxnbW74GM98dxLyUZjS8fc6Bb" + }, + { + "account": + "xprv9zPvwa7pjNbS2qsLEcsUeEwQkuGYxbHLJTF6ygsbEwMzWePXEyE9QBfCJYwzRbEbanKcWakiJpDWKY2kFddVZWMdcaETDMoJJ3Qvaoknq4p", + "account_public": + "xpub6DPHM5eiZk9jFKwoLeQV1Nt9Jw73N41BfgAhn5HCoGtyPSifnWYPwyyg9pSMra6Hrit2mXB19VfgC3ZMZEGHEdYc2ccLG6F5GmyovXxs4mq", + "address": "XrYm44pYQEMQ8gjAFsWuhu6bfVv1omDXoM" + }, + { + "account": + "xprv9zPvwa7pjNbS5TK4CfNZCyi8T3AGFfF1mupDdagD2QnF3LGCXfJMdegtbuwjqi4Usin9eAyY4uqtnqeFCvL1YzFcauV39CRET8PAZT3t7fT", + "account_public": + "xpub6DPHM5eiZk9jHwPXJguZa7es14zkf7xs98jpRy5pakKDv8bM5CccBT1NTB3LtdL69gMcaaeHRqz9jQDNVNDWfCvS4hV3iDNfvQqLB8jgr71", + "address": "XpVikuffbotroYtf4DSHvwDschufgD7gMj" + }, + { + "account": + "xprv9zPvwa7pjNbS6P71L7L3teQYihRtZr1bmi4aFkuMompfipqiMssFzB28MCGuMvFjkgiSZgk1gtGFYeacwsuoWHo1xMPKRDrrWSYY6nKhaDR", + "account_public": + "xpub6DPHM5eiZk9jJsBUS8s4FnMHGjGNyJjT8vzB49JyN7MebdAruRBWXyLcCSZJpUfg4kJNGzbAS9uRGHuCkXr46uCqjf3g8fFwVxAtVYFFxN5", + "address": "Xmxw5rpBhgQadxDbKvCEEkD1mMtFzDpeDM" + }, + { + "account": + "xprv9zPvwa7pjNbS8rXcvFTWqF7zEeFumYgRT3VRpHaNm4e6CvdLdY7hBR2UFJ17HnXYwBDEeJxXgeSYVfZA4ULa3B5E48LzEf5GqmAJMVxVnYH", + "account_public": + "xpub6DPHM5eiZk9jMLc62GzXCP4ing6QB1QGpGR2cfyzKQB55ixVB5RwjDLx6YsL9i6rMaseiMVpyUJT3Hu8Sh3PmDQa93t3ncPQzZoLzkrvxDk", + "address": "XbPGmsNYKwNk8cG4CH9VWYepPTRkvQRPXg" + } + ] + }, + { + "coin": "DOGECOIN", + "seed": "6e8d6a129c2cde9774296201c38919911154a1fca854f79090c17a8272453d3f", + "master": + "dgpv51eADS3spNJh981fTBLoGx7TRXNRg8FyhnvoXBMHEHBZs8THHVinSmVeQTLR2fft5CV2RMoJCQ6cci5E2rSFUMuZU1GadSUs4k8mTYdZvkY", + "master_public": + "dgub8kXBZ7ymNWy2RyfpVQxmPof3t5k4WFHgzPi1gHkG2QEaRBZyhGGZ64uHyiNCY9XJE1Qxa9MEGJXRXf74H2TYkcLJ7oH9sDU59unesrcGxoC", + "coin_private": + "dgpv56TQqH3ZeHxUhUMjSe6n63yM3hZMJFdjE5qPqN9G24rnGxY5JoBKmJpyxy77QhceAh1CgaNo6C9T9AVUqc4Hnkcsjsdc6hfWw59SN5J8zhn", + "coin_public": + "dgub8qLSAxyTCScozL1tUsikCuWwWFvz8NfSWgcbzUYEpBunq1emiZj6QcEdYCrPJEZWvRjWe5W1PNvxCu8h59iBCwzbewyKo6Rh4QoEPQkYbCs", + "child": [ + { + "account": + "dgpv58fCGx4pXbRNY7fhSsPRmhBP6Q6XKmH23zQJtXuaBZ4BrR1bRP9iNaBGT7aWpB4Hmi2r3uiMbFd3FSXb4TjV71GdUiNb4cB7HEfsk5HB1wx", + "account_public": + "dgub8sYDcdzi5k5hpyKrV71PtYiyYxUA9tJjLbBX3eJYyg7CQU8Hq9hV1sav2LGeELQFTacbkkVGhQEyyayDbaE91xYZDsBESvaHJHyU9rLgPgW", + "address": "DP6tmf1S3NCJ6EChUebhLwrvoLPWJMYDCw" + }, + { + "account": + "dgpv58fCGx4pXbRNZJPDFGzR9N7Mduj7HKbBh3FrJrVQWeXqnVxdUuwFPXeAifjpd2zbYMJVokqxGHLatjJLb1xQcJW5UAgdMUzvPBHamnckpob", + "account_public": + "dgub8sYDcdzi5k5hrA3NHWcPGDex6U6k7Sctye34TxtPJmarLZ5KtgV22q3pHsZcLFZxPKWQruq6DcQPeVTDZEccMwFuhCVYHa9HEo5uTwekRxe", + "address": "D5T7UKKMxY4nUoMA4iYwxnGHgTdXrSPuDx" + }, + { + "account": + "dgpv58fCGx4pXbRNbyxzwSCweycYG3oQjb1xmGicoCJpvazKAVX1fEwdik1uTETawFqopwNkhj9YHfrhmMqzeqtm9rDAJdiHbKgJfoRPCSw3d8i", + "account_public": + "dgub8sYDcdzi5k5htqd9yfpumqA8icB3Zi3g3sVpxJhoii3KiYdi51VQN3RZ2VgZ21GhV9TLDJFYySxMJPcGPHivbgbMYgfbF2heddEZoZE1HV9", + "address": "DCvQrB5XpRJ7mYSEd5q2B78AC5ekkSdYg2" + }, + { + "account": + "dgpv58fCGx4pXbRNfnVH3L6qaQrRYMgyW82ELP2TBcdkKvZ8VTD8bfTJe72KGLQdcKdc3mFtto6ip5H4aXpattTjzj9GGndwnrVDxRRxiBAYy3p", + "account_public": + "dgub8sYDcdzi5k5hxe9S5ZiohGQ1zv4cLF3wcyofLj2j83c93WKq1S15HQRxqbj8i2dMJA1dfxmpfi6kexsYyjSFFezSXVP3XCaX6i8pov6JjFa", + "address": "DNbz7wMohofoMFfd2k1cVxAEPJRfwCoN59" + }, + { + "account": + "dgpv58fCGx4pXbRNhCsLjmEvJKb6ujfBdAhbvDKrbz8ns3Fbduueip7wd2s8e8LDrg4KQdjnz9MFbnRPugUPDS2QnwHMisWxifjf3yQ1CVCYiqC", + "account_public": + "dgub8sYDcdzi5k5hz4XVmzrtRB8hNJ2pTHjKCp74m6XmfAJcBy2M8afiGLGnDP4MfHdQrr6FibM4mw4wPterjzngXcsjw2SvCbtfNsvZ74PVU6f", + "address": "DPwD9j8NjH3NTbvM52Janq7xJwfTpzx4HW" + } + ] + }, + { + "coin": "ECASH", + "seed": "28513d8356ba6ab768c4f88485fc3a764e8aa2dcf62e4460cd22e7588325f1aa", + "master": + "xprv9s21ZrQH143K3Yg1JyBUGYxWoDQDXcyAmaLVJMCf5cxeGTPc7or8frAb1LxwcD3an78me43oFfmc8nkRkvDkAA1Jn8R7gjTUot4BoNTDh4P", + "master_public": + "xpub661MyMwAqRbcG2kUQziUdguFMFEhw5h28oG66jcGdxVd9FikfMAPDeV4rd2GcfRYMMq11ZdwyBvV6ZiiPy7kxEfoCm4Pj2hPWxYHxbwLkgt", + "coin_private": + "xprv9wQwrseWWFgg239uNCo7zh32DWqnEExNSKsrFcTPBgdy4qiVNyJc5b2xsFg9t5w5pYR5PPh6HQw8MNKkhTAEam1aLXqkgqD1immondymwEz", + "coin_public": + "xpub6AQJGPBQLdEyEXENUEL8MpykmYgGdhgDoYoT3zrzk2Awwe3dvWcrdPMSiVn7BvYJkrzb86pomSNjqJgATKxCWE5BLptowzLqB2gEEfgT9Ln", + "child": [ + { + "account": + "xprv9zMPWqf5vVZ2WRRCuEkucTTPYoJE4XzMd6fmYefMPwfgP3W9csJ345C4pKcm9ippnYRP2guUBZPC3GjFnxHAxv9yRMJLY5cKir9dCDsnvxb", + "account_public": + "xpub6DLjvMByks7KiuVg1GHuybQ86q8iTziCzKbNM34xxHCfFqqJAQcHbsWYfaJcZNfwaCBX1nht1tnn4AkYzsM2MT5z7ukvZJJhPAmmTxuwQR1", + "address": "ecash:qz6x9xg5mt0thykkkaajrs0s0a3qkjsdjv3e8vyh6s" + }, + { + "account": + "xprv9zMPWqf5vVZ2YBTuczggLMuSLqLb3tY44oJ1t91D2KHUCx2x7N7S9huFuHBHFcJejpYVUXoQnYDanUaAzosM38BX4cewnYNriZJv8WLuH7P", + "account_public": + "xpub6DLjvMByks7KkfYNj2DghVrAtsB5TMFuS2DcgXQpaepT5kN6euRghWDjkaUsNB5SFr52xqPKQZuADzMekLr3iMTEfYzQWyCiGLeU18CoZNJ", + "address": "ecash:qqd6gjjkxkcwd8nrw23tkvg7eh40d5lxlg6k0nag58" + }, + { + "account": + "xprv9zMPWqf5vVZ2a7zTv5WswoBfoxcnHQRS2ataSq98FXidfgfzQPGycTGegDzkcKRqMBoQCemArrnu2UQQBVukyz1x1qL89X62UHBwNTmc4Ty", + "account_public": + "xpub6DLjvMByks7Knc4w273tJw8QMzTGgs9HPopBFDYjosFcYV18wvbEAFb8XVPomF2492nL5LKRUpjSFu2tobHqEnFopMeUsQJfUZY4eR9RjYS", + "address": "ecash:qplnm2lfa5z55e2m8pukn8u566faqsvm9up3xnrydp" + }, + { + "account": + "xprv9zMPWqf5vVZ2ciA6aDkhQH8YoUZ18eHfaw2LW13B78feMM7Zu5VauDCjotwB3cmxgg4aZMYdZCT452FbjDCmioZiEZeKLgWpHKCdPfT7dMF", + "account_public": + "xpub6DLjvMByks7KqCEZgFHhmR5HMWPVY71Wx9wwJPSnfUCdE9SiScoqT1XDfDDWKrF7tHpnnRWGnMAZCzWuuGFG4D21yCAorvMmspsTTtGTkkT", + "address": "ecash:qzqw96f37pde8cvrhllv5nkwn7d9xl97rg54rq3653" + }, + { + "account": + "xprv9zMPWqf5vVZ2ey5mzTpXC2bZXie5dV5SxQyWkgBwCmRm1DazxhH1xrHrcisdaji4RjoD3eujRWH4mmWcgkExGrGTQHqnA2JhZiVuXfrRnzn", + "account_public": + "xpub6DLjvMByks7KsTAF6VMXZAYJ5kUa2woJKdu7Z4bYm6xjt1v9WEbGWecLU15Uo8APiGp83bnKdg3cnDFqxhvB5nYhqbMU712YGeabi9qJLnt", + "address": "ecash:qz9pcsatg07rafj9m4vmwpn75det9qu9jsmvn0mqxr" + } + ] + }, + { + "coin": "ELROND", + "seed": "6377f45e6579ecf04b788b64498470ca405f0e0ae8ff9ef22f3d4663bd7a5cec", + "master": + "xprv9s21ZrQH143K2ZCFUnip5zCgPWR2kXzozVZq9jVrKZopkjWqqAFXpgXRufH4Em92BTqYpyJ2WjLJCJhhrce9ZA92QbnTTmbsC2YpsKaLw3D", + "master_public": + "xpub661MyMwAqRbcF3GiapFpT89QwYFX9zifMiVRx7uTsuLodXqzNhZnNUqukr7U2iWbcGsqEfLjddYDLHbrdFEkg38qDEbpCT37fNqVPpBvhNJ", + "coin_private": + "xprv9wiDVsCDhXQ6EjEzBtskmQZssvFvxPam2nnPKnmobaVbeYPiiRd7WsKxT3D4FR3Jb7LxcDB3Mkxte64swNcZPiHCHnNYqKzHSsRFYaRyWjR", + "coin_public": + "xpub6AhZuNj7XtxPTDKTHvQm8YWcRx6RMrJcQ1hz8BBR9v2aXLisFxwN4feSJDBPnNLquoV4D9oz6q2Yx4Th24qkhYptZjjsuHyD1pvkVpNa3kG", + "child": [ + { + "account": + "xprv9xrW9V3iMJ8kbJnsXxB8VWcoMkK4GgsbXi5jW8RdMV2NQJPacoQKgsB4UrmAm1tkRVeRrwajEsTrzyTuGuHRvXVZYcbsoZRqE4gpvtwzSWe", + "account_public": + "xpub6BqrYzacBfh3onsLdyi8reZXun9Yg9bStw1LJWqEupZMH6ijALiaEfVYL3ELDTVqUgj3cSGSSYwF9Bb2D5cEVgnUTyvwd3EbPQ6vBUVCqpj", + "address": + "erd1y9c5nwcte79ezpkkyq4u2egw2k5sfw5mhp2xsws7wqqff2tha6nqx53h9x" + }, + { + "account": + "xprv9xrW9V3iMJ8kcx6miDDT5NPqdZ4qbB4BNjvDvZDZBUThTBX8K1JCPxHVwhmMqCydSDCcpPa3EzV8hJ2M7hrV5SiwYZu7jsziFjqjdfxDpxS", + "account_public": + "xpub6BqrYzacBfh3qSBEpEkTSWLaBauKzdn2jxqpiwdAjozgKyrGrYcSwkbynsP3bgGS27cZMqcwcG65xcNpar4Ys9ouUVgGgiYFyeTWCrV22Lr", + "address": + "erd1r4xp6chtg7kz48cn2nsey0zz66mmk7aru9ycarvvu8ex606wyy6s8tfl52" + }, + { + "account": + "xprv9xrW9V3iMJ8kg75hPphzkw79KxooMHkmuv7aQVGQ8uB8nduuzCf9aEWk8AQ7RZCeugefwFaD8wDk9NMrQnETsCiATCzSfvLSCCFXLTtdedf", + "account_public": + "xpub6BqrYzacBfh3tbAAVrF1853sszeHkkUdH93BCsg1hEi7fSF4XjyQ82qDyNSjkxKHVAfSuxzG1ucHSvJ4ei18sgSxYbpi3xodYkgv5XVgDDQ", + "address": + "erd1jclhqq8n5n0rvvv0eytd453z7j72kggruzdhak8h6zd9jjv7wjxqzsn8jd" + }, + { + "account": + "xprv9xrW9V3iMJ8khzC4xQNCZbcVtxXG3nKq2hgJd9KCdWnDpWpw1dczqZrQsRjoDLahtXGTcLEaS86mhRB3haAh8jSZGdyCy7UMrHyAEHntAqn", + "account_public": + "xpub6BqrYzacBfh3vUGY4RuCvjZESzMkTF3gPvbuRXipBrKChKA5ZAwFPNAticZhZB5R2ZiAKq7CPWadShifFDFC73VqoNGVZuBfyZs1zB4TGUk", + "address": + "erd146d0z2hgt99s4qdt30hrm3ldpu8n976dgy3fn3whec7kcqsdv52snh0jle" + }, + { + "account": + "xprv9xrW9V3iMJ8kjzYJniTKH8VqKo6cjBq7cqNVZUDzY4BX2PFrHLjEb8rwvdFPkePGPqZ2Mj4KtaZatbAvR3k7uQgJb4Bk6dRZ9CDjrBCkURk", + "account_public": + "xpub6BqrYzacBfh3xUcmtjzKeGSZspw78eYxz4J6Mrdc6PiVuBazpt3V8wBRmpPKtRBF8qyYX52QZZYxeTetB9Z4UESNzb4XMa1R4sE242oaEox", + "address": + "erd1uc9scr5xh35aqtay92s9an83uzdn9vyp575etdh9d9sw40lc0x6q9k9zgr" + } + ] + }, + { + "coin": "EOS", + "seed": "746033970121a6281df740087b27d54d8739f3ea10eac679b5e1816e039ff765", + "master": + "xprv9s21ZrQH143K26w4E4X78VNfrZ538Cr4yJBAV8iG9w3xzaVU4GjrL4K74Tc5zko1hXS4YGipGWLH9fbTstMgSiVYuwprsiDrMe18wf1wvUP", + "master_public": + "xpub661MyMwAqRbcEb1XL647VdKQQauXXfZvLX6mHX7siGawsNpcbp46srdaukDg2apVKEgc48VHzNTxwPE28hxoTNTJ3VWQumJzgMyXGMguUbT", + "coin_private": + "xprv9wnWFdHtAtbaw525ZQtSCTH4q3eKgo1VfYmSo3YokTsRjNkAme7QUZcmuB3EbSijvWEGqLmctSNYwnhvANvs9qWEXHWWecXr1bz6xTyRvmE", + "coin_public": + "xpub6Amrf8pn1G9t9Z6YfSRSZbDoP5Up6FjM2mh3bRxRJoQQcB5KKBRf2MwFkTXQDip2UEq53VUd5GVk9sLYPCEMWqgLMDeMC17hJu2iAezFFH3", + "child": [ + { + "account": + "xprv9yyicCqChnwjiWo1RH1hZnX9pATnHcLwSHPhZSPiqbx2AY7SJzo8aToS9sv2TqA6phWK91GVR2396R48MhVdtwWXLCprLWHimQRSFFw7MuP", + "account_public": + "xpub6Cy51iN6YAW2vzsUXJYhvvTtNCJGh54noWKJMpoLPwV13LSarY7P8G7v1AjXPet8guweBjxxCg1vMd1q9deRdx4FeAWGhkKzYw5AYXmUQXZ", + "address": "EOS7fu3TrwU7tDTbKy3xgzv4eCxLbEueZfXGX2qx6FSz1TqUEC4hR" + }, + { + "account": + "xprv9yyicCqChnwjmAzoT9Ahu7WqMEEBcL3BeaEhkgSagQbL2ymWYXcMv7x46So4fYdyNioTYbECCRHFnhXorg7fLJNM2zC11FpD7m5EJ5Ln2in", + "account_public": + "xpub6Cy51iN6YAW2yf5GZAhiGFTZuG4g1nm31oAJZ4rCEk8Jun6f64vcTvGXwjBGg3pUEgW2jnMWhrJH7HbUzLkRADBr3F78RRjKqRsrRCiV5mx", + "address": "EOS7awfCCfokpM1xZh4hBLcN8LEPu3HFggqA8vNdCzmxL99MZKU2p" + }, + { + "account": + "xprv9yyicCqChnwjnK9mZ1SeCM7ZeJHEffwyTAfF8Qywe7xwdkbuq1R6mhhkbxECNzz3U2er6wS1b2f9szjhU98bE8kBpNSGcMcdd7QUkUnZYhv", + "account_public": + "xpub6Cy51iN6YAW2zoEEf2yeZV4JCL7j58fppPaqvoPZCTVvWYw4NYjMKW2ETDS1cKf2A9UzWxLrnDBQwUuGEaQ6w9wNZ6sfuQEuPHXToES71VH", + "address": "EOS5EkgwNW2cn7E6UCBxbnVuu76XiHxQV7wFucvk14cTrRpgpVwMi" + }, + { + "account": + "xprv9yyicCqChnwjqJbUPcX5xgoSduCqsyszMZ2bYtUSK6e38Mc9EKgsYjezSVs9TRsKYVyCd5KQZC1Yf1DNX2QPZkxwKkbJtHbfKcqAFZGxxJt", + "account_public": + "xpub6Cy51iN6YAW33nfwVe46KpkBBw3LHSbqimxCMGt3sSB219wHms186XyUHkpRJJxwk2BDgu63hxQ5Y6zJ9WxPRGqJkQvPExdKbaMK5nwErb7", + "address": "EOS4wNrABeRaDKedQFZAeYz9YhaMRVEpKqcMzUdeVstV3qecQZMXp" + }, + { + "account": + "xprv9yyicCqChnwjtwgiq628RMyyzijEFtF3arH1Qr6a1KVNZ9k8tpa1h74tbpuTdcx7qRYqy5tfLXstAkqj34GusXbA7Jta4nnEu8apSbLupqS", + "account_public": + "xpub6Cy51iN6YAW37RmBw7Z8nVviYkZifLxtx5CcDEWBZf2MRx5HSMtGEuPNT6BioRETQpzp7beV35DQiRskHBQykxjb52rdMaghtMuseJFg5dS", + "address": "EOS6gGQ9HWYWKvfC5jtCLzNjECaK1SMr8U4TRANekdfFFjRZyT9d2" + } + ] + }, + { + "coin": "ERGO", + "seed": "0a1b77d62ef94186bde95decc1fc000e3cb719e686208633babef96826c2cb00", + "master": + "xprv9s21ZrQH143K3J1fkLN7rZbNv7VUmfXckYDCwbY3az523gB5bBd8hpLEh16kGLJRR48Nv1rNTvJ5XdroRCg2n9XeBBXPBfEg5prB2DyMijh", + "master_public": + "xpub661MyMwAqRbcFn68rMu8DhY7U9KyB8FU7m8ojywf9KbzvUWE8iwPFceiYKJsGEF3mTKhTpXVUyd4fRKDRswgrMT4g6wqSbv3WxQQpfFeoHB", + "coin_private": + "xprv9xQjVAFLNvbJzebax5GWGyCXVsPpjkmr9NUTcYLUs24LuZJq3orMwiJMfgSBphDanMst3DdZMuXjBwPB6a2BqBZnkwDuogWdXx8mAMNmDmU", + "coin_public": + "xpub6BQ5tfnEDJ9cD8g446oWe79G3uEK9DVhWbQ4Qvk6RMbKnMdybMAcVWcqWy7w6PgCQoRQpijEMMsDTV3tg3HssBmGxgDnijMQuWUhFwzDdKe", + "child": [ + { + "account": + "xprv9ydbv3yDPuFb8jtYF2kmbYEme2eFX73tWcp4F2g4JP3djPFrTmjxRkR1kUfsjs4oiXoujiiKjqq6t3gXDVBbrmrSSCV6NJaJGMmu3BwngZ5", + "account_public": + "xpub6CcxKZW7EGotMDy1M4HmxgBWC4UjvZmjsqjf3R5friaccBb11K4CyYjVbm6iXWaikdBaVWjhGhmmxFq3FJ5qmdTQzfmo1FysRc4ANYBpFHe", + "address": "9gSJXbbY1kYLy7bhfp9wcgFNEzie6nNvsquQ9t4ewFc4AVrYFds" + }, + { + "account": + "xprv9ydbv3yDPuFbBg2wfBt7cUfjsYRZd176mEj3kzUnuTYseJtsi9hK6sow1zWv64pbSu7WLDkiZbtXELkrgSwJBkAxQPYzn4ZokyBo8szqrQL", + "account_public": + "xpub6CcxKZW7EGotQA7QmDR7yccURaG42Tpx8TeeZNtQTo5rX7E2Fh1Zeg8QsHUKT2EFTf6zA8wRf8UX2D64aHNYp2tekSm16cDQc9y4XED43sL", + "address": "9gptHBWyRCejnD6okGFJ4CGF3XLAunLhY8KRmwWmAuGon7SWhTu" + }, + { + "account": + "xprv9ydbv3yDPuFbE2mNydAPXbtjMGatdKjeB6sRy1juheJhd95AMbftYaomtGEt3a1sWReiqU7rKyjFwMqku4PT2tKhQLJ5SigFvf9Q2aJ8tez", + "account_public": + "xpub6CcxKZW7EGotSWqr5ehPtjqTuJRP2nTVYKo2mQ9XFyqgVwQJu8z96P8FjYAhWYDrqSDXY8xNW2vVaS7uN2vd8o8c6RzJwz96Gtd9Fz5egrw", + "address": "9h52er3eFUpVE2eLGuiFkZA4p7sCUwe4hNCvgyPsPwZ6WchVb8c" + }, + { + "account": + "xprv9ydbv3yDPuFbH78pSkYmCBfs2zDV8yycRRzxS2Lgr1dnGGuj2nJpArAN1seAW42cLdwQMXmek7WivsmrEjwxz4JVxwT4DdzgBiXUEasMG9H", + "account_public": + "xpub6CcxKZW7EGotVbDHYn5mZKcbb23yYShTnevZEQkJQMAm95EsaKd4ieUqs9zoiRLU8ewfdzTJoqjxYTKqPFW1LUqDzmvZiPrZSuMzKakRZSg", + "address": "9g8QRTetTs1sREhEFMFKisDkkgk77Wqb1vJn6AS9DhcfCpYP4Ea" + }, + { + "account": + "xprv9ydbv3yDPuFbKpt4MVBbpQa2vs2uECtuaXbk2ZGfvVv3BEt6gAASRUX3LrBUREtSf6TcE3RZhu1qXCKyW8yA4r42LujcqU981YjDBX3VFM5", + "account_public": + "xpub6CcxKZW7EGotYJxXTWicBYWmUtsPdfckwkXLpwgHUqT243DFDhUgyGqXC9ja1xAbfs8FbqDFVS99bNjp5GWSjSvMaFCS4JTznEjJdzKNJyN", + "address": "9hM3wzTn6MGfe6UUtAVw4MvUqCF4mxHGtnz5WpC8E9od4y8BY71" + } + ] + }, + { + "coin": "ETHEREUM", + "seed": "6fb506e04eca74a4e6e71d622bd40aa7a6ca11417fbca37440ce99f8d9157462", + "master": + "xprv9s21ZrQH143K3TQe2y6GZEKiJsoxR3FNX5AiNxiBYDy4c9cf73DfZRTkMtTDWeMW1YaayetQZ5ecPozpbfTtEoGUjWfcAbqMnvrFsbWg8Yv", + "master_public": + "xpub661MyMwAqRbcFwV78zdGvNGSrueSpVyDtJ6KBM7o6ZW3UwwoeaXv7DnEDC1TNHYUN6tPHXXLkfwN8RdtWTwMjtkKqk6iHAuwzzapBHEzdVe", + "coin_private": + "xprv9xV8oVRuNS6hJJXnUsYjXCSe3m2CXwFeqtt8FpjHHJ582wA9qPCYXPEg6VjtCrXL7D1ovMdFhsYGDRUQi1cjqza9THRRjgDJ3b4jsUXGdSk", + "coin_public": + "xpub6BUVCzxoCoezWncFau5jtLPNbnrgwPyWD7oj4D8tqdc6ujVJNvWo5BZ9wnk9DS9KhAukYZuT6j9WauHMVS79C53etgXuVQSMg1Xihs2UZJM", + "child": [ + { + "account": + "xprv9ycSg1cCimk4DWeaYWzgzkfV2Lmf1MgSc1pbwehu6xVfgPHTDQf2kuJH1qnDdjhr3NMrhTzZ8w3wPfUxgg8ErFii1zMRFktYpU3UJKqnXcb", + "account_public": + "xpub6Cbo5X96Z9JMRzj3eYXhMtcDaNc9QpQHyEkCk37WfJ2eZBcbkwyHJhcks719tWEoEFTorxGb9BtTPeU9rJyRJaPtia8peTdumrwMNgFoZPF", + "address": "0xB9c2BC4DFe9D532c114C6Af8AB54883CE2089eE0" + }, + { + "account": + "xprv9ycSg1cCimk4DiLf9FsPrDH3yjweDR8qVBTatLvEwjxX16jUzqXNJP9oFMA98DnscxNHfbzofgMNdwDKBqqqhQ6HvdsApAv43uKGDmUHp2g", + "account_public": + "xpub6Cbo5X96Z9JMSCR8FHQQDMDnXmn8csrgrQPBgjKrW5VVsu4dYNqcrBUH6dbyhtRKzmbBQMfR79CwDA3fU5R6p8RYCpNoMvGQ9bGuPAmFtvu", + "address": "0xBcE0dE02dc24ff43f291EeD40Ee1Ad0c35574dEd" + }, + { + "account": + "xprv9ycSg1cCimk4HuDgiYCVJC9YWYrUoRMdW6gEd9TTU8rkkv8UReZeraYD2ZzdDSdX72NgWvSshmiGqutqsbnCsacyeX886fdFE2YrzeBCwsm", + "account_public": + "xpub6Cbo5X96Z9JMWPJ9pZjVfL6H4agyCt5UsKbqRXs52UPjdiTcyBsuQNrgst13VRBCaYSFxVQYBCkY6MijxL7wBk3hCRw8Yi3drmrwYtV2DVV", + "address": "0x4504561956F202cab8d4F246DdC36ADE0313957f" + }, + { + "account": + "xprv9ycSg1cCimk4KiM9m1ituLUhKhpPBVF3vsFHffXn9vRhkgVRtGS9Wug9KfQ17L7zVDnBFKjM8EykJeC1EsYPX545cJd1LuU5EgtJrHJEkf3", + "account_public": + "xpub6Cbo5X96Z9JMYCRcs3FuGURRsjesawxuJ6AtU3wPiFxgdUpaRokQ4hzdAxcLNACFFoXBTuYFfUGskXSZJpGjPgmanXUBXQhzSzMTibCGYPk", + "address": "0x494616cEaa05400899Cc594f0aAD2309291b0AAe" + }, + { + "account": + "xprv9ycSg1cCimk4NiRgnRWfvktFMvxaua3njQc9DjMAiMFpdE9ub5xAU2jMJB9NEsfrQtJaaUMLsKwD2pqoXHCky36pQY5jwqj7T2prF5p9E6z", + "account_public": + "xpub6Cbo5X96Z9JMbCW9tT3gHtpyuxo5K2me6dXk27knGgnoW2V48dGR1q3q9SQoSRG4FMwP2ZSzP8AHywrT73DAP47xkrEQ3H4UQdPDsBu4hjW", + "address": "0xD1821Ac849B0B33fBa0F146128d62545aFbe01C2" + } + ] + }, + { + "coin": "ETHEREUM_CLASSIC", + "seed": "bedf75f7cfef1db5058df19f7a0a4a276c5e815238f603e5a3d916d9f5af6a5b", + "master": + "xprv9s21ZrQH143K3WDXUrgqvEeL2Y5HrPXxUYv7yXusFU5DxP25wXZKu2YUgQUFZgiYQW16ELrVZ2wzw7bNQssdepAhPPgs9u9AUXSAB7H9QiG", + "master_public": + "xpub661MyMwAqRbcFzHzatDrHNb4aZunFrFoqmqimvKUoocCqBMEV4saSprxXfTzsP5U6QkDeTkLp9gM8MVbAUUQHNEqypHq1brkdqXiaTTAXZT", + "coin_private": + "xprv9vwj7h95pqhyBUThWuFv3R1F2tBuRHLHZnyADTusASNmPTLa7j2vFgWaoD2MFYi1yMY4nFz3NP9T2D5LFRXxYLrJkTEev7jj9QWBrMSoVRo", + "coin_public": + "xpub69w5XCfyfDGGPxYAcvnvQYwyav2Ppk48w1tm1rKUimukGFfifGMAoUq4eX42XByNNpDLRGzK3gYe9TUrxZdmgZDuCieJjx8SBvD5jnEJkjx", + "child": [ + { + "account": + "xprv9yEfZRCFcKSnHqKAzbjYWrU2qcNgvzZPpDScGJhSgAWxioSoi3v9C7dcatDaJGdptzdoCyfdR7qbqmZFRLZwLcZ9oi5E8KPn1Rjat3c6CrN", + "account_public": + "xpub6CE1xvj9Sh15WKPe6dGYszQmPeDBLTHFBSND4h74EW3wbbmxFbEPjux6SASioK7GSniZPkRX75yAhANVP2Pcfe4BVuLRmHL3crGZE3jmqTq", + "address": "0x67478991210E714bd3d572a277EEE72D9a3aAa9a" + }, + { + "account": + "xprv9yEfZRCFcKSnLiBUzWMGaHvVrnhE2LBuy2jSrznFK9i4k2HQfgGZotLMSqgLFmdkhHVnqitBufpcYCKYxfBesPzPGD8AEcZ2cbMsYC9Mbxg", + "account_public": + "xpub6CE1xvj9Sh15ZCFx6XtGwRsEQpXiRnumLFf3fPBrsVF3cpcZDDapMgeqJ5kiKstnhDcAHGB48KnMn27HhqevzWyheXF9Z8YcydQ873t5iVq", + "address": "0x3b901A4d41ACccC74625e246EE6c6f4d7461Da42" + }, + { + "account": + "xprv9yEfZRCFcKSnN8ysRg4A4VzoSSZtE6AgTbJtfQjk3h354gSHtvTLJAf1QRFM2mSd3wEHnBiVDNhk42v7zMJKVJ4Sx1uGC3GtgULCW49o3T8", + "account_public": + "xpub6CE1xvj9Sh15ad4LXhbARdwXzUQNdYtXppEVTo9Mc2a3wUmSSTmaqxyVFfxe38RtPWrj98iKUjhcJH2wT7LYLUnFayiT9xAtWhs4U8XenQ1", + "address": "0x2C8A92A1215fd8372d2b22DC81A48b6CCDfF5fE5" + }, + { + "account": + "xprv9yEfZRCFcKSnQUN5kadBA18rxPAcFDA9MmuF72ZtebHeugYp2dyuXchYyoWHc8c6VNxR8jupw9DgiwBECzJJCpwSn6kSubBF3i4KocC4H7f", + "account_public": + "xpub6CE1xvj9Sh15cxSYrcABX95bWR16efszizpquQyWCvpdnUsxaBJA5R22q4boncwjFpGz5omJxhEcmf2WmSgnqKqVZ2Nw5DwsbHojVHvH4ef", + "address": "0x730CE7AF69197E5d90b4a0Fb2C81d06e28A08d03" + }, + { + "account": + "xprv9yEfZRCFcKSnUSBVJF3KhrbZPRNxBtgRQUsMP1D86GGSWWsrY2JrQiNcQP9kJqbrwjg5vr2mLgeMBB3pNjXgzkKnLSJyi2RjUgLytAgcSm1", + "account_public": + "xpub6CE1xvj9Sh15gvFxQGaL4zYHwTDSbMQGmhnxBPcjeboRPKD15Zd6xWh6FdkhqY1bKD2th2RQyNG8asww5faYUYHyDr5mkC65KdfbN85ZjFX", + "address": "0x69c504230d1dCefFb830fcB3e3eEB1f5AAc0eaeb" + } + ] + }, + { + "coin": "FANTOM_OPERA", + "seed": "b83c60f7eec6e180155ca0c489343571ce1a5b517a2032b5cfac22345360c1a0", + "master": + "xprv9s21ZrQH143K4HNpw6v3a1wvLQqdYtL5uNHugGNNQ3wECg4ijoSC2AVRjvJiDYTgQnucc8xRfCDMKeDCTpN9HQHude8vHxBkWBhC8jn2Je6", + "master_public": + "xpub661MyMwAqRbcGmTJ38T3w9tetSg7xM3wGbDWUemyxPUD5UPsHLkSZxoubBXxEuVXud6evGJGDTGuGaxjw2nnqRr7s1MmXnJ5po9mQ2GnCTw", + "coin_private": + "xprv9vrv8TfXge99TWfLAKNDZ9RfD2SS8VBk1RD4VLf7QgGCSY5NNofqzpQwqGWQEVWfsAwZpAkQV1RzZrxQWHdEDgeCGeiWqM6NBtktxmHKvKv", + "coin_public": + "xpub69rGXyCRX1hSfzjoGLuDvHNPm4GvXwubNe8fHj4iy1oBKLQWvLz6YcjRgX5F9Xeo4sKdDHgdL6u3PGuLSBDPHszxn6n8qwWfvUMmVyDMZ5H", + "child": [ + { + "account": + "xprv9yhtVGRStZsXUGPKWp4Wg6pssjxJotyiwMGTKWL7SbtZnrvLtpzon7yohj4DJag1dhnkfP3zCQurjzd2w4HfhZmmv3Z5VC4Srq62uKo6aJb", + "account_public": + "xpub6ChEtmxLiwRpgkTncqbX3EmcRmnoDMhaJaC47tjizwRYffFVSNK4KvJHYzot4PmLLeq4AbiMZHgh5THy8DxUznDVMJre4jTyLTPDCi2yD3q", + "address": "0x0592c0828D4c3D477d52cC275282842D23cbfc2F" + }, + { + "account": + "xprv9yhtVGRStZsXYgFtmCnx7y5eMYjKJdyEJr3iuCb63Z3AyR4xBL9qXNYQZCzbEREQNbN6UnR12uwGBko79EPFaxyZLNarZ7ouGvS3PjJVvZv", + "account_public": + "xpub6ChEtmxLiwRpmALMsEKxV72NuaZoi6h5g4yKhazhbta9rDQ6isU65ArtQVEg9B9LJsgmyK6LnhC2BU7xgtgYqArkt6EjhDbCKjAkhoP97rA", + "address": "0x9522ca04E89c1De32974A686CC24f03b23692f9a" + }, + { + "account": + "xprv9yhtVGRStZsXbEP38F1LnG7csktyj8k1zubjYWyVvQjCbqqmtu2WAbiGLeVcfNBmZjNkv2rTGwZFnciuLLgeEJupiAyGHeQ8NFcWBnhJZRS", + "account_public": + "xpub6ChEtmxLiwRpoiTWEGYM9Q4MRnjU8bTsN8XLLuP7UkGBUeAvSSLkiQ2kBwK4Uj6mdzDw7QRUjB5NBkmYyp5mQxhGWat2yW3npAkpxKGwbpK", + "address": "0x853328666AcCfD7D7E984bA9EB9b50cf9F4Ee870" + }, + { + "account": + "xprv9yhtVGRStZsXc2TQncNUHRp1jrsV7jd2mesGtdqfe8TEvJaBEmJcoVmgXR7WYPciB764nABKYH7gvaWZyN2xB5aM6ktec9epR1ic2KfZbJn", + "account_public": + "xpub6ChEtmxLiwRppWXstduUeZkkHthyXCLt8snsh2FHCTzDo6uKnJcsMJ6ANhF84H4ksML1SjXHjX3yqHTjerFmmv426qbnswZG7JmsJHxVF3a", + "address": "0x0f533E1B149Cc0fA19bfC06665Aaf86C26dFEcA5" + }, + { + "account": + "xprv9yhtVGRStZsXfiHecnAUevLdjC2jWV9b8Hh537tEYmsGQ453E1irieBJLow1xuVbHR52uqkJfvFsAd5JPbuGQZuqNM2QUoaGiK9G5QDtoQC", + "account_public": + "xpub6ChEtmxLiwRptCN7iohV24HNHDsDuwsSVWcfqWHr77QFGrQBmZ37GSVnC7QAKuwJHgJRSc2CFQSkGnxeuX8jCHWMwLE7J5aTrAANadraHmx", + "address": "0xafdC504bE82aF2dfB223a3C7A0d89CcA61A328A7" + } + ] + }, + { + "coin": "FILECOIN", + "seed": "f1bcc9f0fd01f407401d494cffbb62dbc58f7154093308ac5e0c4fc588abe556", + "master": + "xprv9s21ZrQH143K4RGgJndcFaY5hrJjouMFNrMp2omgK3ccRmvZS6tfyG529bo9KYEoVzFiVtbWuaUoGWRrZ535UyjyBWqzSTg5XRZkvahY3vF", + "master_public": + "xpub661MyMwAqRbcGuM9QpAcciUpFt9EDN56k5HQqCBHsP9bJaFhyeCvX4PVztMCs3TSCQQKWd1NEKr72cqKKBhskX2tDnixvCxEdU7VrXEPBmE", + "coin_private": + "xprv9w5fk6cUNuTFBGdW9h7EnxZwHn8eVLA8MccD1Jx39NcjYupTBSuXTCwzam2L4ETkobvS7zt2cWYGsh2ZBdL5B6Bkb8WN6FvzMW4bTg4jPRv", + "coin_public": + "xpub6A529c9NDH1YPkhyFieFA6Wfqoy8tnsyiqXoohMehi9iRi9bizDn11GUS3oCLWHSnLNq243nBNr5ZCp3LKbqdevfERu66sfeZPhhVHEQZp8", + "child": [ + { + "account": + "xprv9y2tLxdZ54qadcLEHDUtaSfEFv1URNJb5yo9Er3TNWtnFTSXcHUSgZ5qXzBojb5umBLT2brjaB5fj4F7NTTiUUrxCy4btD8FAUMcNJ3Fj5m", + "account_public": + "xpub6C2EkUASuSPsr6QhPF1twabxowqxpq2STCik3ET4vrRm8Fmg9pnhEMQKPH8b1aNQfMc5wo7PSaddeyJsFEqEHE1KJK6XYSP8BrKFBvKCTmD", + "address": "f13wtcm2ecwxtmb3mvwsjc2zhukyp6tg5vt5r5aua" + }, + { + "account": + "xprv9y2tLxdZ54qaekbarySg4JJ5aksJwjZJbghJXgnDmbWiEogcj79S4duKArsQASo5fvjdS5NzNAvzSTzZBH9k5ZT9DqUhcQxLZQpnvREe1B9", + "account_public": + "xpub6C2EkUASuSPssEg3xzygRSEp8nhoMCH9xucuL5BqKw3h7c1mGeTgcSDo27jDZSzu4VKN3WFL23qJqPbtxNfZJAVcwDxxWG3GwmrNVQWSkG7", + "address": "f1bbj2ckhm5uhswtrb3ejkcbfajorjfo3cvq3x5bi" + }, + { + "account": + "xprv9y2tLxdZ54qainHnebkMhQRyF4PRRKJ9vxLM5RqaNsBNqD286onenqvnrZnXL9ggrNjEsAT11ZSpRPGBWkAXe87zfE43tEsGtF2i1SHorQE", + "account_public": + "xpub6C2EkUASuSPswGNFkdHN4YNho6Dupn21JBFwspFBwCiMi1MGeM6uLeFGhrhGv7TLMmXmjdY5QhZCjQ7VHBGEbzK4LXbvVmH6WEnqoeYZitp", + "address": "f1x5p4yxvptca5evmdbutqfylyrio7s4scckvclvq" + }, + { + "account": + "xprv9y2tLxdZ54qakfLb1XvnDSvAjYvniZUfCtKhFAwUi8D4kmfNMS8ZgtpCuzajMxK1mXnySy6fT4RXLP6TpqY9bMUQw4yizWp6DPUQ7iHmVnP", + "account_public": + "xpub6C2EkUASuSPsy9R47ZTnaaruHamH82CWa7FJ3ZM6GTk3dZzWtySpEh8gmGFV9nWeokaLJmRoNDdAEBDm2wXMA5oCrvBEVZqxWSiZRTNqg3E", + "address": "f153db7qs7admh3s6wewogqoinpvimpgwo5kf4ycy" + }, + { + "account": + "xprv9y2tLxdZ54qanFdGHSZeH7DksTHJKDz5Cq6MxPpEYgiDGeHNGuLLSz4qYFQvU7MUcfEGwaS7ZwFgHxdfkFpzMgWf9B18haYY3ooXoyX21GV", + "account_public": + "xpub6C2EkUASuSPszjhjPU6eeFAVRV7nighva41xknDr72FC9ScWpSeaznPKPXvTMnyqbaHxGFXNLR3emCGNBEw7UqEseVfayqexgfEzkmohkCh", + "address": "f17ky4sf5faaf2jd37ywylaswbnb5h2r54aacidfq" + } + ] + }, + { + "coin": "HARMONY_ONE_ATOM", + "seed": "1e599bfd283dd1ed030f2905d00dcb956863332fd9abd1dff369f604b4c5bc87", + "master": + "xprv9s21ZrQH143K3vT8yaTiEwrsHNKEwLRJbWFTkdHcDk5nAKF3WsLgYMvEc4vU7iRJpE2pQ1HrFRUug64nuwNvB1MgcvxjDwhhj2Ejc2H3BNB", + "master_public": + "xpub661MyMwAqRbcGQXc5bzic5obqQ9jLo99xjB4Z1hDn5cm37aC4Qew6AEiTMMEryzJyJq9zGKzBYsLVqYuUoyFfseaheFwwYL7K9Z9Pq9r8QN", + "coin_private": + "xprv9wezypNXJmjk6gGQh2Bmmae87RHt46VwxpjWqA3qADCESEZkeZ8V8oW9uk8aGGQFYKjxA2WgtmgXg3dC1XfQy1QX5KtApDtq5z9hUnPVUgh", + "coin_public": + "xpub6AeMPKuR99J3KALso3in8iarfT8NTZDoL3f7dYTSiYjDK2tuC6Sjgbpdm1T4Ka7um2JaGnsJpfFtoSQqpikLhnvebTYkHJ9oH4GptgvtRAs", + "child": [ + { + "account": + "xprv9zUqs6rqMqDaczkLZ4wgVxYcES5BdEFjj6rwukvKctjP96hcRCVve45K9Uv5NTDvGvynQHDihnwJqyUqDDnsfD2nkv6ZT229Sbb9Ur7uZ2Y", + "account_public": + "xpub6DUCGcPjCCmsqUpof6Ugs6VLnTug2gyb6KnYi9KwBEGN1u2kxjpBBrPnziV3YNQdzAfLJ95HFg6wJePDZZ6skCDsM6xjD9h4xLt2qnrdDwv", + "address": "one1z82p43zxx2x5uywg9cljvemt4gygufwfkjrhsl" + }, + { + "account": + "xprv9zUqs6rqMqDafG8U3aoTqFtEdmnFRQ2HPmbgSD2CUzDTTgsMLLL5vh98j9gF5VQ5VQVQKooqPnYN1HBMZVoFZCm3VDQRvDPSMerjLBiinBC", + "account_public": + "xpub6DUCGcPjCCmsskCw9cLUCPpyBocjprk8kzXHEbRp3KkSLVCVsseLUVTcaP9fzu2dQCqHMaFFnmJ5GFn2Z2hNsXiKW2zQp62A1uz825BeAzt", + "address": "one1ne6253vt9s2vmqmwk2sxsrp6edmvkxkslnqmjt" + }, + { + "account": + "xprv9zUqs6rqMqDajS5VV9V6yJMpXVWwtW8JVZpephMy6Hb7sLgu32CKq8W2dQ6zjeYVxAhunT3RJ9N9iUvytgtV16pXoQ87gX6zXbMoTZsdUVU", + "account_public": + "xpub6DUCGcPjCCmswv9xbB27LSJZ5XMSHxr9rnkFd5maed86k923aZWaNvpWUetWE3xhHQQAMamvK8oUhqjr554GzobZTUPcAHFy5kEUhk1qvw1", + "address": "one12tzxp7gaw5cg65x28vw60eev5a6p0auclq7zzv" + }, + { + "account": + "xprv9zUqs6rqMqDakht7TzfTj1s7vWQQiyW6KVcvi5WBDE8ot6dVdBDHESb3WWfh7f33GJT75BTk4wXXGx1kRi4qn6Bixtwq4AZysFysoC4t7ZG", + "account_public": + "xpub6DUCGcPjCCmsyBxaa2CU69orUYEu8SDwgiYXWTunmZfnktxeAiXXnEuXMmhMHLuuTy2bzAp1eHmRcgypyXJ2G5U2LKgb38L35Lq6rWV9Bi3", + "address": "one150x4ddtmfrewwwydjz3kfkmrz3hlgthpk5qas0" + }, + { + "account": + "xprv9zUqs6rqMqDaok3Mu5M3fh6utbzdufUwdxpyEw1G9iDyHiTT6NxkjE2nqykuhgCgQsSt4QvJU7yHcbqx5hHitj2pLGgoV3iv59RCLsKpoS6", + "account_public": + "xpub6DUCGcPjCCmt2E7q16t42q3eSdq8K8Co1Bka3KQsi3kxAWnbdvH1H2MGhGjTegFydRTpGwaR8jiB8y2xWux5Vv4KPRfAUE2yciiNqsCHXxE", + "address": "one12n7l92r2vhcug8svdnhcxv5tdkplltng3f2k9q" + } + ] + }, + { + "coin": "HARMONY_ONE_ETH", + "seed": "ff25f8cd749db070c75ef0381ab9f2afc3cecd21e4c9562ee5979388565d47a3", + "master": + "xprv9s21ZrQH143K43y3Y8GZNLnc1C8a5V2pnfc1qihoSd9Q65968HAbY4K7qKFwkJCR8T7k7zxHYCUHNDqUpxBjj3yZDRATsFHwXEL59kVoeTz", + "master_public": + "xpub661MyMwAqRbcGY3We9oZjUjLZDy4Uwkg9tXce77QzxgNxsUEfpUr5rdbgasjBuFUkkRB2ywV9NGchjrrjFXZwfprQr4zU1TqPb4vyyM7fjk", + "coin_private": + "xprv9xViHAJvc5Mymfnar1BQEM4k5ynbAfZyoFTy4MwZwpn6hm63Dw3hea4nVGjZqwqNEsZa9X5dMbabwuKJLTYNtss7uJEvxgRot8NN5vsNQiF", + "coin_public": + "xpub6BV4gfqpSSvGz9s3x2iQbV1Ue1d5a8HqAUPZrkMBWAK5aZRBmUMxCNPGLaQz26kFWmDUKYPt6bvcq2HeQU5Cb57k1ydWb7ZmGvFaWJzMD1R", + "child": [ + { + "account": + "xprv9xh8PUGMsREnDZ6XYwi39Yy99cNSKwfwTwHqGpHsygd3dEutwcht3GMcmfUKNj8CXfphhoouhzkaUgzodrcpeFxjTrJDVSRRNnvr32Stvzw", + "account_public": + "xpub6BgUnyoFhno5S3AzeyF3WgusheCvjQPnqADS5ChVY2A2W3F3VA28b4g6cup8E3xwBhXJeT2spjXCcAcKwdccR4Y75rVDpraeNQGKh9yuEBa", + "address": "0x87c6b26B35C71e16ecdf1368Fd2fEf584B6FA32b" + }, + { + "account": + "xprv9xh8PUGMsREnFFWUxn9V3TBvMFJervXKnibeSCtr4LE1t8HKmcuQKFJ25gyHf8CZaQg75kouWBev3Qxp4rDz8z8cWnxnBAtEzLbyVE5LRum", + "account_public": + "xpub6BgUnyoFhno5Tjax4ogVQb8euH99GPFB9wXFEbJTcfkzkvcUKADes3cVw1BAGGohPQU93McLQVXDVUbGBqZt2kkzAWw3Sgvv22Zuhrkufxj", + "address": "0x0827298448EC69c0a73F2f4066037E83a0D7d5C9" + }, + { + "account": + "xprv9xh8PUGMsREnJREYxQNdftr1Py5miuXCxSe9PzzF28kPEQG2arsoBnimUpYxE9CYeD265hnd6WMKpbrS6kJWsoLsiWiWUcbj3RF7QoV1NJU", + "account_public": + "xpub6BgUnyoFhno5WuK24Rue32njwzvG8NF4KfZkCPPraUHN7CbB8QC3jb3FL7SSwg8r9W6qtVTxJjhFrsqSYBJMXD5wzX6uZi1ysk6xKq3JvTZ", + "address": "0xc6B164342e344c7C03516F1d2287B24499EfD5CE" + }, + { + "account": + "xprv9xh8PUGMsREnKrCxXR5BpXFzKuSe2mxWAq6cuqfjn8gyBg7E7NaTfV4TSrBoCH3fPnmezXUdGk68Hbbp2pKWqWbtmEazp8Ut4FTqqMfUnAJ", + "account_public": + "xpub6BgUnyoFhno5YLHRdScCBfCiswH8SEgMY42DiE5MLUDx4USNeutiDHNwJ7ubGjvtbt3oRXnH3gux9Ni1REB35Sn3TLQi5XW4W4MHG1sYcsp", + "address": "0x18d328bfB26a0359A22e0C2AE022090217c939cf" + }, + { + "account": + "xprv9xh8PUGMsREnN7jt4dYfGG1n5FDYXfZ2SiS7d4bfDtRtrEAbkpp5wVdabQdvWRJKdQKkec4jouDY5DhmxzmbqK1fhFesxdgiDGzVKrPA9q1", + "account_public": + "xpub6BgUnyoFhno5abpMAf5fdPxWdH42w8GsowMiRT1GnDxsj2VkJN8LVHx4SePZ7yJrbtdPNR1iaBSvj4oeJoMN7VvSraEMEH6jxKM9Ee5nVSy", + "address": "0xb324b6DeB42600612157e1Eca7Da121ce66c45BA" + } + ] + }, + { + "coin": "HARMONY_ONE_METAMASK", + "seed": "41047d47a7207dccd2eff5c9bd68816211892300da76c9d1cee94bbfff7462f5", + "master": + "xprv9s21ZrQH143K3TZoiTWYoATg1ZihhRBjvTnLsignJ1bCvpF9QPDWEA3JAHkbWHCyJs8qfPbNeHrYqL3feKEvJqtPqYLJ36EVtzR6TdWk38z", + "master_public": + "xpub661MyMwAqRbcFweGpV3ZAJQQZbZC6subHghwg76PrM8BocaHwvXkmxMn1Y6d2oqocZ4A7r8tKXAWKNMBzcn2491rTNBBnXDbGpAj5kYYc9b", + "coin_private": + "xprv9xAV9y1ajUUhaDpgwqr341guz4jFcZqyGtiQmazXxemXNvwAXcGGC93NT3tk5wuAzjzCdE32R6Wd45BZdveCsWveTgVdT1TQJmXbTT1v3EF", + "coin_public": + "xpub6B9qZUYUZr2znhuA3sP3R9deY6Zk22Zpe7e1ZyQ9WzJWFjGK59aWjwMrJMyjWnMSmZbzyivBzRwLBsBLRSViJi4Qw6yX1DTKtkGJ8oj5oSb", + "child": [ + { + "account": + "xprv9zJUj4sb92tr8xbyznBZ5xoGr1HDYtT5AK5hLCkATExK4hctpqctD5xpNwJGD8wxDHEdmX8NrCVkwcca8y2XSpRVzzfr9zjbzwuY3UxcQnS", + "account_public": + "xpub6DHq8aQUyQT9MSgT6oiZT6k1Q37hxMAvXY1J8b9n1aVHwVx3NNw8ktHJEEg27CUFR3xkCKRoHbmpKEYNGfju5hUjra7hfoY4CwHvMuJtEv6", + "address": "0xD5fcF4107dE9d7851197D80EC9f4EDBffd1d2Ca6" + }, + { + "account": + "xprv9zJUj4sb92trD1qpeJk4dqDfKgth7fpiD2EVg2mZgDLzGq3g5ZfsLPxtgBVZV1f2HUh1MXj86Wv9SNafa8uvTWZRH3xCkVu2xr7Heuf6LJj", + "account_public": + "xpub6DHq8aQUyQT9RVvHkLH4zyAPsijBX8YZaFA6URBBEYsy9dNpd6z7tCHNXUtTWdZ27Nxm9ckvuSU4mPUNQQ3mbuS9W3iLUTaRR1BiscY9KhM", + "address": "0xa0Cb1BB7273ec2611C5795736564BC96f46bcDA0" + }, + { + "account": + "xprv9zJUj4sb92trF1snyAS7v6uYGFDPsbmqD4F5pQwE4jwjnCF9ZwEupTiX3WvUhaE1TVrBNLM5cN1kdL7GNRwJAYCmtrPbVb7sgJ5bSwbRKXw", + "account_public": + "xpub6DHq8aQUyQT9TVxG5By8HErGpH3tH4VgaHAgcoLqd5UiezaJ7UZANG2ztotWW5U8KgpWWLpXaHqJrEJXs9dm8HcoGBuDd17USnFrrmxusCU", + "address": "0x098A4E8f21EBe3E072Db28Cb610cb74cE99Ef9aB" + }, + { + "account": + "xprv9zJUj4sb92trGzHDMnmUSH4thGeXNNz5xpGRBKnh9ntpkhLBaJt12mW56BNvSkhJALYWRy7hLeD8RdQWyjA6mrVT6dr75i8Yqj6gd1v7DR1", + "account_public": + "xpub6DHq8aQUyQT9VUMgTpJUoR1dFJV1mqhwL3C1yiCJi8RodVfL7rCFaZpYwTLuSqDvFL8X9edu7G2K37uHZvGRLzZHCxhXQ6vjffxBfwP1DmM", + "address": "0x0C86cEEafA07D40F67923B2783d04DdA5313A668" + }, + { + "account": + "xprv9zJUj4sb92trLucqdBbWVPe3CcNG6GUvXPiecx64FDhEb8pmP2SLtmLyCWbGeBmFRrbMdtPTi5nvGyfFKR2bhSnm1aVBDD3x5iM7tpcpzv9", + "account_public": + "xpub6DHq8aQUyQT9ZPhJjD8WrXamkeCkVjCmtceFRLVfoZEDTw9uvZkbSZfT3mun5HN1mvUp7rTpGxo4u7Z4ypDgBwZyiGz9WKtgfLXjc87p86C", + "address": "0xdE2e8dBC743D269D3962551F127F7a5257C8e486" + } + ] + }, + { + "coin": "HUOBI_CHAIN", + "seed": "aef09beeb3d1ec05703b717bf70f614afa60202fa1b57635c3c6d33debe9ec50", + "master": + "xprv9s21ZrQH143K2prYkU6ETB9zu6xWsB8Avq5irAdYNTzoniEi4wQDofzaoFBns62xBNzwHyXqQqmbowiNs5qxysP3zbSvyHpyHa3iG3T7fEH", + "master_public": + "xpub661MyMwAqRbcFJw1rVdEpK6jT8o1Gdr2J41KeZ39voXnfWZrcUiUMUK4eZWRyAw6rt6dWxjgDgzc7a2MRZofK8BQmZdy2n9LasKTtkifEV6", + "coin_private": + "xprv9xWN6YxRk73aZqLXxpsxv9MJ2hgmmnHygsm2VrXwTcWWhKBWABax6K1QrFfuf5uXwajthKxisgwpPikDmVEbbWiVQB3TnVHzQjnVToTTDy3", + "coin_public": + "xpub6BViW4VKaUbsnKR14rQyHHJ2ajXGBF1q46gdJEwZ1x3Va7WehiuCe7KthXPCjrDrD6azePLHWc28m6S4AnJFx44cVMwVheHTKRu2YCq2965", + "child": [ + { + "account": + "xprv9yAHRTxNBhCRPyqDYqXTCEyS9d6nQY48ZjvUaCJ5RerdEV7juVx5BQ3EEnxSXD6KuJMo1i2r8gtJf57jANRoBVAVmBUk9Z2dH3yKp8eUUrU", + "account_public": + "xpub6C9dpyVG24kicTuges4TZNvAhewGozmyvxr5NahgyzPc7HStT3GKjCMi65WcHXTXUE11EvygcA4iQPL6qnQS5khhUsviqhADAqMSz1pAV7h", + "address": "0x9489ea3f5ac71a4438701B0EFcA576444177c227" + }, + { + "account": + "xprv9yAHRTxNBhCRTPAK9CspAUPhK3Y3yFVGPVhFh2AzGizrPNXtVwYjoBV7NUHrGzwaXyAjFA6fmQQP7NyXRBPNdqvBNcDSbcQAgUqQFg1ynZU", + "account_public": + "xpub6C9dpyVG24kifsEnFEQpXcLRs5NYNiD7kicrVQabq4XqGAs33UrzLyobDjqg9ydxzCP6us2icFcuPkJwfJJ2VMNs8rqTKcXZ2tRZYA11qBi", + "address": "0xf2a10721cEA159b11354B63cB29Af75521704e3e" + }, + { + "account": + "xprv9yAHRTxNBhCRWMKxydAvzCCsuTz9LwYqFAuvTzAYHEWfLzQBgnEa7BwDjQByim4QvwHLeM3iftr8qfvAVSi8bosQQ9NiBDw7wU7RTyNPSMa", + "account_public": + "xpub6C9dpyVG24kiiqQS5ehwML9cTVpdkQGgcPqXGNa9qa3eDnjLEKYpezFhagBmjyVv3AFfRPyFCrkdgi6T5GAwDqMun1XC3ZJFwCZ5iTSDQhe", + "address": "0x8D58BB4E60e4f5A4F0344618298BE081D774F638" + }, + { + "account": + "xprv9yAHRTxNBhCRXJbNeDW8cctniBrpTmUW3GmcDZndqPd8M5mBJcf88UCymv2qqNaKK6obckXzjvAdvaCPCiknjpFqufpLH4y6XoZuGv8weJJ", + "account_public": + "xpub6C9dpyVG24kijnfqkF38ykqXGDhJsECMQVhD1xCFPjA7Dt6Kr9yNgGXTdDKLx6WRDaiUWYD3zMdssgdPWxChNtZUM8hpo9i9q1Mrf8rn75Y", + "address": "0x189F38558da377d9E29e0B5DBD3895e67c3CC01f" + }, + { + "account": + "xprv9yAHRTxNBhCRaBnAbgNxiGR65TWZVJwA6tZEdRRqek4JjbBGqaQ9FM565pR6AGy7dMVvyekMuieWYK3ijyizQbmVQpqLSnx5zZ9nPdUCVYJ", + "account_public": + "xpub6C9dpyVG24kinfrdhhuy5QMpdVM3tmf1U7UqRoqTD5bHcPWRP7iPo9PZw6jWNmVrTgfTp9dsv8uYdLn52PMXGe5R7euoW4AwMwYtQcHrNNa", + "address": "0x7603541D8dB67Ea0B680858dbeF298f226A17b7e" + } + ] + }, + { + "coin": "ICON", + "seed": "cc47830d8202c964a614343702552e1455a6a89a2ea249d81d0fb535f26de3a7", + "master": + "xprv9s21ZrQH143K2jDzk1wMC1yBx8DK3bCXiam6j6fz7Betewc3sTgn4fbDaUdfYbNeeQW8Cbp7E786viJdiSBkeCsxuNAWsojX9btcQ1FCUdA", + "master_public": + "xpub661MyMwAqRbcFDJTr3UMZ9uvWA3oT3vP5oghXV5bfXBsXjwCR112cTuhRkZ9a6AVbVS5PD77g7FDSZFGoFVMRfU1e3edknUEDWUFGrV1f64", + "coin_private": + "xprv9wNjis4oAhA1bJCf1YRALbnPzcRKxWTZNtZPH456AMtMv8B7JqRLXMRxzGnKw24twFzc7B6Rv23MtkFuZwEY1tWQ9EwKcgoauwEpgctzmDd", + "coin_public": + "xpub6AN68Nbh14iJonH87ZxAhjj8YeFpMyBQk7Uz5SUhihRLnvWFrNjb59kSqYnRif9N7TasnkUzVj75bUwmJUo2i4NE7gzdt59EhwNi4Z2geEy", + "child": [ + { + "account": + "xprv9ynJadbwzqbGsXNgRvqZRrT2StQzQFMbKxJEALeMzxJQmNMeNCzCWdfnQvsaGHRyWBj1ikY8rNdQ9vRyccZgNCgFSzWLzYxY9Nrxm1N2ZMN", + "account_public": + "xpub6Cmez98qqD9a61T9XxNZnzPkzvFUoi5ShBDpxj3yZHqPeAgnukJT4RzGGDaf5byM7ZLAirdfCCMreKSXex3ybcWWWpLnT2VhpXtJDGtiVDg", + "address": "hx7bb8a1af3badca636219abe3c3df14233bdcefd7" + }, + { + "account": + "xprv9ynJadbwzqbGvQgK9bfnjD3kHUv7s4EZ5hhb1vAyGsk63SkqHxEFiaa3FGj56aAsbo43jVfiAtz9RJQ6mRMeHGwdXtHxPSFa2SntdZFkiaw", + "account_public": + "xpub6Cmez98qqD9a8tknFdCo6LzUqWkcGWxQSvdBpJaaqDH4vF5yqVYWGNtX6XC6rX68XTXiaD9GBGQ5AjcsKYBxEHRU4DG3pU9wBjquVSBr9gA", + "address": "hx14f78241b53994d6649041ff81d9165b2ca9d0bc" + }, + { + "account": + "xprv9ynJadbwzqbGxeqGGPSS3QDEDjiwQuUFVdrme8f2xkJcbQCdhPcPUxmwPeogmW4wreDYB8ybp22MGJajm5H2CUYHdkj9YuK6NFh6GEKTLEz", + "account_public": + "xpub6Cmez98qqD9aB8ujNQySQY9xmmZRpNC6rrnNSX4eX5qbUCXnEvve2m6REvtTXvQqtFAeJW4yEYVcHP95yMhxmTjMCmaHSzEuozHgnTAR6ei", + "address": "hxa4b5f55f03e8748a5d6bf3bc856026512a99d2e7" + }, + { + "account": + "xprv9ynJadbwzqbH12k1U48s3vbeSCA5Z7jcb7DFSLY7ZsWPehbtPLkCtuCuop6wEGmQzqhxDMQjLMEVx8WixmAY9DQDNv8QXbz2Byid5JSRPBF", + "account_public": + "xpub6Cmez98qqD9aDWpUa5fsR4YNzDzZxaTTxL8rEiwj8D3NXVw2vt4TShXPf6y8v6XQri6hyLbT4Z4hRCPhb7Ud8WZgm9NAoTM7tPZkFD2W48m", + "address": "hxdc67d9756f86265632f3dd3ec3dcba6aa8ea853b" + }, + { + "account": + "xprv9ynJadbwzqbH36gxCY7wwZJ9QGWT4tPAfUvcxXx2Dtb51LvBhUruwee5Gz2JoU8QsceAY8rutBHy2Ldb6EKvR8pno8VRqe1ok398obEas6N", + "account_public": + "xpub6Cmez98qqD9aFamRJZexJhEsxJLwUM722hrDkvMdnE83t9FLF2BAVSxZ8GhSvPyvQ2fFmt9KnLEfWcpr5zLbkrG65tRXnY7XCsj9PQkRxMd", + "address": "hx7d63096ac062c4cbcebf0ef42b778a6463807d41" + } + ] + }, + { + "coin": "INJECTIVE", + "seed": "77e18692d6d5db92233b37b36e92570b090e872e06a7589348d43cb454b5084d", + "master": + "xprv9s21ZrQH143K2GQkoWm2f4cJvQFSYpffK18kLRzYe58BxJfVeUikA3G7xj7q4TvciirjUtVmGwuJ4butng7a7gmcfe4LNYsV68Bw8vddyu3", + "master_public": + "xpub661MyMwAqRbcEkVDuYJ32CZ3US5vxHPWgE4M8pQACQfAq6zeC22zhqabp29Zw9ZJzoqMTpSP3uKfjuyHEqprDYFNGJrKhjwQnfX5eQWtHpQ", + "coin_private": + "xprv9wKu1YJyYcWeHg79gy26xkYWNVqaGFtiw63iTRyDUZDpoeVxq81TYBjN6A1sceFNLA93uZ6GGR2VkdSzPbvoFXEpHKP4r8wL3ELTMVn4SWD", + "coin_public": + "xpub6AKFR3qsNz4wWABcnzZ7KtVEvXg4ficaJJyKFpNq2tkogSq7NfKi5z3qwR1ataqBkGzofF7SZRYKA87qKV9B7prBoQu5vy19JiXBB7vczA1", + "child": [ + { + "account": + "xprv9yzMkdcXBKomWVqnzAvyMz5kdseNsNraxZQNtNgxa2YLaBveivvxwwckAutBS23TsCsTQmB7UoKsvrPUZWBty86sNBxP79zsJ7U7b92jVfA", + "account_public": + "xpub6CyiA99R1hN4iyvG6CTyj82VBuUsGqaSKnKygm6a8N5KSzFoGUFDVjwE2DvDgZBRB886a75YXeskxUzgvucRMzqf6MZL8m341KNbG4HtNor", + "address": "inj1uwrpd0gpmzetu6n4h0t5qnde24destp9syx9j7" + }, + { + "account": + "xprv9yzMkdcXBKomYekLnK9JyfS8VcdYwDVG6gcoD1xu6Z8THS6k2S94pFc9Rhaq5LbYRmvcCoqF3z6uiU9o7XbhW2EqHwfb82giLF7nkXJj1c2", + "account_public": + "xpub6CyiA99R1hN4m8potLgKLoNs3eU3LgD7TuYQ1QNWetfSAERtZyTKN3vdGz1KqasYo1osBvrFV9Jrvfxge32d72SMDoy9jVcx3T7UEwc1PrH", + "address": "inj1t44a4xrpamefq6lxrhq70yuvvmdc7e0vgzkd3n" + }, + { + "account": + "xprv9yzMkdcXBKomcSEFR7nEwhX3MKk9itJaCczRqJvUWLHa345eetjN2cxwGMnNG681B1U1eM7ijGr6G6dVcvKUzhU2DhA95dX86EWZGU3TDKj", + "account_public": + "xpub6CyiA99R1hN4pvJiX9KFJqTmuMae8M2RZqv2dhL64fpYurQoCS3caRHR7cmaMojH8JXeg3PTVtJLHqQM3xLQSH8KHBRajzCREKqsocAaLtW", + "address": "inj1899ewa04lhjkrgdm5gsffs889qxkpcm2etjefs" + }, + { + "account": + "xprv9yzMkdcXBKomexsf6dNqGrehBEiTVpyBeYoETFncmNP9B5HeJP5nKnbNQ73ezVMU1ofvUqAnpiLNdPUATAQ9kG9UgtFdWfsuikoTXp2vc8j", + "account_public": + "xpub6CyiA99R1hN4sSx8CeuqdzbRjGYwuHh31miqFeCEKhv83scnqvQ2saurFM9jMVe6Ay1FBLHKi1QKfF4ic2S25TRuCb2BBm9f6MNcB31TvUR", + "address": "inj130a6dxwz0y0y33g9u5748geqfek2mu8tvqxnhx" + }, + { + "account": + "xprv9yzMkdcXBKomfeVmTBNzsEbuoi2DvDdJKwJqG666RRm4dvNLFgcAuCUn3YZAVKfTjAkzpqKjb4XCEk8B5hLv3UPdLsQr2kLFuDUmYaFhZta", + "account_public": + "xpub6CyiA99R1hN4t8aEZCv1ENYeMjriKgM9hAES4UVhymJ3WihUoDvRSzoFtsNFMV66oBMGFpLqMr4yAkQq7FzzD7JYrLK9MjNzGueow1hrTbq", + "address": "inj1wdcf9y448qjr2hjnadzwwerlwtcsssgpyasf6j" + } + ] + }, + { + "coin": "IRIS_NET", + "seed": "2ebc3f78802656f7765ca8677a6b9c160af0b9ba7a92e7c6e8b9db2c27dea038", + "master": + "xprv9s21ZrQH143K2U2gSC3T6wHq4dVVHoq6siZUdf6JMq4B8D1mQHgyoAykrMpKjsrWYK6vv53v8s8QjKNVkC1C7N5Y4KrtR5P3BacHGMifubq", + "master_public": + "xpub661MyMwAqRbcEx79YDaTU5EZcfKyhGYxEwV5S3VuvAbA11Luwq1ELyJEhgHXKoMPtD6KhF3rNnYjoWxqytdn7hbwDQwXPcrL6LG8V5sdkaL", + "coin_private": + "xprv9w6V6miKezCtaYRFyXPjVkf4Xfy38Q3cXWyH2xYzyK73uUxJZ9f2MbQcdaYAfkc4TjVaZi5gZw1LVEHK9UUASWDkvF7z9dJswE9FwMrb6sb", + "coin_public": + "xpub6A5qWHFDVMmBo2Vj5Yvjrtbo5hoXXrmTtjtsqLxcXee2nHHT6gyGuPj6UqRYXVJQDNgEmbrKK7ok5G3heEQRnUpbC6qjfz9qFHTNDuoQdyH", + "child": [ + { + "account": + "xprv9y34yheALngUpg64Wr3qrwEcYbjPgurLXPejkGtzYitugUSLgHnvGvbZ6kAYZjjQLYa5ZpE9wVBboC6Lt6XFmHBYRo4Zrat3oCCsbP4TQKs", + "account_public": + "xpub6C2RPDB4BAEn3AAXcsarE5BM6dZt6NaBtcaLYfJc74RtZGmVDq7Apiv2x3QMAFHJfkAhbjpA4B1DxG4MaF5hfszT9YMwWgq7c9Ctkxh5xAy", + "address": "iaa1z570nhnckjlv2mzvh2hgrf65ludzc33t8r80p0" + }, + { + "account": + "xprv9y34yheALngUrYVA8yoaQBFNwho2TrEdatpWf5fEK7QY7m9QFgVuoMC6HwSTjH7Ms2LwA449tev8VjvUDHB3Lk3MiM7iAJDcbEwafBMNC1t", + "account_public": + "xpub6C2RPDB4BAEn52ZdF1LamKC7VjdWsJxUx7k7TU4qsSwWzZUYoDpAM9Wa9CCp4XosxSwNRkXHdaLkGqwoStHrmHfZD65zF1veJgG14YXut3u", + "address": "iaa1ud6epsxkrqlzmlxs7vsvzxesxqk759lhwy9jc8" + }, + { + "account": + "xprv9y34yheALngUuYQnzVXjf8ZfthyN9ENMKgMhy3Jjyd9BSERN8gisFv3kRxNEUe1fjnGNsi5xQjxLPm7ZFRKHX8ScvVFvwZtbp5pFQZTt9np", + "account_public": + "xpub6C2RPDB4BAEn82VG6X4k2GWQSjorYh6CguHJmRiMXxgAK2kWgE37oiNEHDzeVKqPdQSuHp9w6BWgU3r3QSQRyk2HJ5F5QYypM5msjTL89cC", + "address": "iaa1nkp6lua4ratdgatqte5g3x5hgy56r4u2xshajx" + }, + { + "account": + "xprv9y34yheALngUwvrzCnWq17xm79Y6NXSZNch2ZhRfEM6JzJcx4o4dqaypB7Muuyetchky39Jj3pvRYjabbkK3Ffde8HpiFGPPwFz5Tyuwztk", + "account_public": + "xpub6C2RPDB4BAEnAQwTJp3qNFuVfBNamzAQjqcdN5qGngdHs6x6cLNtPPJJ2MtzriSP4UzaffEAZn1JosUCiX5UduvjTYAHuNy2fqakcG4w27D", + "address": "iaa1lkpqvmqzp53tuqrjethk4fd78anzknk9n4hkxm" + }, + { + "account": + "xprv9y34yheALngUz1XRwkEBRBkj2CD3qyKPDmQQxdoJzLyGBYdqCS3As2dEPV3e3yp1uRGJDfbboeJBKJMNrrHrD4tSzi5TfRy5H4DLuYfXN8o", + "account_public": + "xpub6C2RPDB4BAEnCVbu3mmBnKhTaE3YFS3EazL1m2CvYgWF4LxyjyMRQpwiEmUVgZNPHVm9tA6w8W3ZpKsBDn5xMZkAddNyFyKCFRCGF9DCTeP", + "address": "iaa1s3hzrwgyeq26nqh00yuc6qkd5skr7jgc4hfw3q" + } + ] + }, + { + "coin": "KAVA", + "seed": "e6a08b5b971c94131c95192e77906980e2c5e2e91ef4fe83ec88342a53239582", + "master": + "xprv9s21ZrQH143K3geZiF85N8byLfUHDkFcm5JFcoxnGS9QdLLJJRknU9hXWa14vFdRpmx4qztGXLhUcUE3Xppa44yMPyfayWDBS7ewbaHjCLJ", + "master_public": + "xpub661MyMwAqRbcGAj2pGf5jGYhthJmdCyU8JDrRCNPpmgPW8fSqy531x21MpXKYrT9pst6NPk8QXCuEtmHZepZRHiV6LHP6FDPwYGGk4qmUf8", + "coin_private": + "xprv9wntE5iWNakTSaVd72ie6PMGHQH3YtiavyEKn8UrdxZ9crKb4WLsw71EcTkErsxhnE8d5ec8YA5jm1dKHkgL8mn64nosF6HzQwdcZGKT2LL", + "coin_public": + "xpub6AnEdbFQCxJkf4a6D4FeTXHzqS7XxMSSJC9vaWtUCJ68Veejc3f8UuKiThq4j13viBBQybEaoziiWUeKFX9ovCovM3bzgTHV9HLkUq57afM", + "child": [ + { + "account": + "xprv9yzqsoxkWgBYVa8RbndeCWz1KcnvzX63AGTa6rwmgqA68ZRiNEyzKReL1uZfk5CjpDgdCDmW1EjQJL3aEPGipEnYpNzigfUoLnRnNuQoaYr", + "account_public": + "xpub6CzCHKVeM3jqi4CthpAeZevjsedRPyotXVPAuFMPFAh51MkrunJEsDxosAgP98wU8GJLJhzTaNx2tRerLa9C2zTb1zwmr3Lzr1ZSc2tLsbR", + "address": "kava162cdszu5c208n6fh2q32mh8gpg7yuweutfjz8y" + }, + { + "account": + "xprv9yzqsoxkWgBYXycFKQgu7KvG68R3ophhzPUsWa96STdZ3gUJLL6y9ifS1JnkQuuXgYm9oSAnKkhSwSXZvFkGXj4j3XXKerEDP9jKEvfrSpW", + "account_public": + "xpub6CzCHKVeM3jqkTgiRSDuUTrzeAFYDHRZMcQUJxYhzoAXvUoSssRDhWyurabzyheo5Q3A6cNAGDdRpUXYQRFTJcA9AUCPDejX8jGotG2P7st", + "address": "kava14n9lp7s5txnnqywnv29xx03rm89uh9s2h8zc5c" + }, + { + "account": + "xprv9yzqsoxkWgBYaZ3y8CBcPFjS8tLqNgE6inPVoQRPS7BbMfoxRsDfX1LXXKGWqpszGvnKx7eWznCAg8Nx8rAH26g7Wz4Bssov2feGP5SaCb7", + "account_public": + "xpub6CzCHKVeM3jqo38SEDickPgAgvBKn8wx61K6bnpzzSiaEU96yQXv4of1NbwMdiCks8VoAQnzeb4YELVARvJxiP3LYmEx32KtnADHXqcjm5v", + "address": "kava1jtcyc3pmn6halruszkmhdt88d6527vjfx8cpw6" + }, + { + "account": + "xprv9yzqsoxkWgBYdzE3ogTaNwq8oqNpEzatrkGRBPWf7hJqR1Yak8LUL4ywvGw693J2CJFQWoPUTLDdXyNACrC5zneKyzW2WaMD4WzH3Kpxip4", + "account_public": + "xpub6CzCHKVeM3jqrUJWuhzak5msMsDJeTJkDyC1ymvGg2qpHosjHfeissJRmZ7qbNvwYLnMrRLwT3RdbqnxGWGVfJouXRgi8vERCwCDTAeQTGp", + "address": "kava1fcq3zkj69ft0r3ev68j89aun6dneddez2z3kzu" + }, + { + "account": + "xprv9yzqsoxkWgBYh7jCd1suQKWMXMwh6GWQNJm8wbaS4D1Xg2KKVRTS2nooAcyAsurg2e11oyPb1z7zq6NHQhekm2DthCeKmt5NURCmc8joMTm", + "account_public": + "xpub6CzCHKVeM3jqubofj3QumTT65PnBVjEFjXgjjyz3cYYWYpeU2xmgab8H1ufPsHnrANRzoc3iXFuAaqZx9AEJsB6jUJd9NrLJ7LTLdaXZQeW", + "address": "kava190q9mna6r75e625k3p348wjah4qqvtvz6j8m3s" + } + ] + }, + { + "coin": "KUSAMA_ED25519_SLIP", + "seed": "b5a628d5afe2833afb683ba278c5c7f36430afd9e977eb7927518ea30ba6b82a", + "master": + "xprv9s21ZrQH143K2CME4iXGV7X5Zxc8gDc9AstCzmP9ztsbYp34egLnkoSssQM5sTY6WTX4w8DEyZec3rZ96FpuvJDyrvhLeniCBJSJGUCGvVK", + "master_public": + "xpub661MyMwAqRbcEgRhAk4GrFTp7zSd5gKzY6ooo9nmZEQaRcNDCDf3JbmMibTBpdK2ykmnpigiRseEy3cQNc7qCVmXXqmwrMamFiPAa5zMsfG", + "coin_private": + "xprv9wMHpxVcBzwQW87ZvaHZ7jLG6mvhBqp2NytxWCQF1Dm4RQj5LKqsakY4FvrTyg6ZUFCbUswDzuaVrcd1DbF9hQrdk9d6SfiHbSuFgCHp6B9", + "coin_public": + "xpub6ALeEU2W2NVhicC32bpZUsGzeomBbJXskCpZJaorZZJ3JD4DssA88YrY79gygHURNVxEbyHGZ6DaYm9iP1MupDUq6v9MmcBihprJi17r2Cr", + "child": [ + { + "account": + "xprv9yzEcKQaPsoU6uGqFUfF6SqhVNYJe4ARhenCa5JpPv2Em6EWGLpHYNZRRVr8DzZUX7snphzto36kBksACFpw8BSSqxaFkcUakxeZb6qB2Vh", + "account_public": + "xpub6Cyb1pwUEFMmKPMJMWCFTanS3QNo3WtH4shoNTiRxFZDdtZeot8Y6AsuGhFpEM51QA8zd1BdB3KtibGofm729aP6y46ouctkTSsmQ9YkZLW", + "address": "EvkupahjtcRe1SfZvuLSXZNQtKdQUgGuf53afatZyewpg2s" + }, + { + "account": + "xprv9yzEcKQaPsoUAfUMdoRP1H1Bf855PVzVvgYWSNBuDnpBJG8isk8fp5QWL27zwvqGgScaGwWGBn6umo5AX8Mz17gM371vinWYWAso5LDttK4", + "account_public": + "xpub6Cyb1pwUEFMmP9YpjpxPNQwvD9uZnxiMHuU7EkbWn8MAB4TsRHSvMsizBEUAehHT4XaTnDstatj7PYrf1wcjcSGgLqH6krPqqLHPEeaXWD2", + "address": "GXWpHeaLv3CkYx4FRMVk3KgWCbKyfywdCuAgFe8KSm4HQ8G" + }, + { + "account": + "xprv9yzEcKQaPsoUBxMZbGkDHFP5Dvb7cboWrX4W9twDTWff1zWY2jDpCVV1wvfHgUXnhy9rSKYL9tVz51xh4gTexveyeQbG8PL6ryZomJZ2zzq", + "account_public": + "xpub6Cyb1pwUEFMmQSS2hJHDePKomxRc24XNDjz6xHLq1rCdtnqgaGY4kHoVo6kf73enhHwcQ9q4AowR1jWyTafREgaSXZTs5U6GWCMkj3jTwSv", + "address": "CeYyV1KT7eo1mhVXYiG12c9MRYaiVhvUY5fUC5CWf3q2PTt" + }, + { + "account": + "xprv9yzEcKQaPsoUF1P2YpQXxQkZdxxgNPUK1AcfAwefp7TDfeYToYGcTXuJahyxLLzPiZ8EVoHhgT8XRBASnMvjJaptpG5ac261uupuzQLxmBz", + "account_public": + "xpub6Cyb1pwUEFMmTVTVeqwYKYhJBzoAmrCANPYFyL4HNSzCYSscM5as1LDnRtapBBoF2fiKJRoViCSdrfFjTQwvjqYxWpNP66Yf6FhZyz1RJP3", + "address": "D4ACvDqVaXJAH8PkahouVsTgWA1wkFcp5Sc2y8NZSvaRLA5" + }, + { + "account": + "xprv9yzEcKQaPsoUHvuyRW3VZVbB23No2HY27znPHLgSCefUttXXLsVMW8FWN1Lzw98Rs3FLBSb46cr4tvrYEMxxfyyick4jdd4jtqP5ZnpVYgq", + "account_public": + "xpub6Cyb1pwUEFMmWQzSXXaVvdXua5DHRkFsVDhz5j63kzCTmgrftQoc3vZzDBqmaoBhATjrsNxZTZMmmvBNjEKQdjA54j5qVWpWNpS8z9wTzwY", + "address": "E8Ub9akyJnLzmHnFTmVwmQ7BtjfBYKtNYGsPkXQ6zHPfbyC" + } + ] + }, + { + "coin": "LITECOIN", + "seed": "86f1a6aee1cbdfbf28b211b59f8fc6479385d1963ffd03a7b21da2819f8c89e8", + "master": + "xprv9s21ZrQH143K3QBzupnMa8HBeq5KJWWc1J1FSpGKzLrCt4tNBZJ1Wb8AYu3HkKcgZRWfdmHF3u4C6HhNVdHJXT2qHSLxbH4nN1hUvH355HN", + "master_public": + "xpub661MyMwAqRbcFtGU1rKMwGDvCruohyETNWvrFCfwYgPBksDWj6cG4PSeQ9pMyro3zybBc2JDDwuBCifcxReeUCyrr4X3oHBGiVUr61q8nF2", + "coin_private": + "xprv9w9J364EYwqTVQdFMEJVqRzFFXLVShyrKEojTGxewpd3XBQWsPPYzZ3YUVrDNnWZd3n7DdrK6aBVuarz8brXggCn6GVR2TKmRcy3aPKXTwy", + "coin_public": + "xpub6A8eSbb8PKPkhthiTFqWCZvyoZAyrAhhgTjLFfNGWAA2PyjfQvhoYMN2Knnp4vY5QtJxmZkEyUgm3XoqLRZ1HaeS3ti5Q3KsQ5pGwe9KaoL", + "child": [ + { + "account": + "xprv9ynMFw4ExNgFPYyGP2wPQ7C2MXZp1yZdESzw4DUa5myQQDmJj8CTtmsFLgtGCxrGqEsjbUXBmgnZhD7dmSCwwQ11QfpdRXJD17HU9XPkpZD", + "account_public": + "xpub6CmhfSb8nkEYc33jV4UPmF8kuZQJRSHUbfvXrbtBe7WPH26TGfWiSaBjBxivFjC5FC16Kx7cNeSk3H5mxiNEPG96RXS9HkQFYEruEvb19X3", + "address": "Lc1P6jRU4Eatyw6ntzFKnFkV7ZxguBybkv" + }, + { + "account": + "xprv9ynMFw4ExNgFU7ebYkJCiysv1RCbT31HoytHgjtnNGA44W9T4N1WkC1gCxA3g5s2dR9qsCDtw6xmd1S2pvMdJxt1hkqi1poiFcBm5o2R4XB", + "account_public": + "xpub6CmhfSb8nkEYgbj4emqD67peZT35rVj9BCotV8JPvbh2wJUbbuKmHzLA4DiA5t4bCHYJNpGPBELQsthUCVMZPiUMBtCbf9bW7WeEFaXjvVq", + "address": "LbpGcQAuGQcvGMGZ3goDq8fWiz6p3xeswU" + }, + { + "account": + "xprv9ynMFw4ExNgFVqsojA6sDmLS3rShevDwHNwk3Xw9tcbVArWD95fqZc4EPSjXj7epfMbgKJSX7dNgF13Smk3rHKCkbN1SS42EgdcTtY4vg1Q", + "account_public": + "xpub6CmhfSb8nkEYiKxGqBdsauHAbtHC4NwnebsLqvLmSx8U3eqMgcz67QNiEhvoesVWLdpbhD5TKhXt5yXhtVdQrg8zWsm2BEfMUbSFv6qTFUK", + "address": "LMDwHBwSw6tGw4wEvVnVB9TzguSTTUrFhH" + }, + { + "account": + "xprv9ynMFw4ExNgFXiA2LjVsGEoPBKijUZARNBhcFkw8UowwLSmWtTwCzvZArK56NF3EkEcGPnUhZgKyTuUVX9dc7mbVZ6Czkp51hp1aVozZ6v6", + "account_public": + "xpub6CmhfSb8nkEYkCEVSm2sdNk7jMZDt1tGjQdD49Lk39UvDF6fS1FTYisehYYSKVfLjBRJ8rQcQVvKVtSXU3kE6YqGZhh59eQkWdKdhdBh2Ha", + "address": "LQDUMGFevV7mVFfMzfS6qGgGuRBV6XNK9J" + }, + { + "account": + "xprv9ynMFw4ExNgFaoCWWhBTSmSWuSrBNEKKsy599gDC7h98X5ScmM1SqTrpW3ENLaZKmWnKgjNMwkc8ednWYDGE6gmVbaoC2MYs6EFYt2qKZUX", + "account_public": + "xpub6CmhfSb8nkEYoHGyciiTouPFTUgfmh3BFBzjx4cog2g7PsmmJtKhPGBJMHRRimcEybPudyWpDHosdVetKQaGBzhwL1iENUHEmhD9ZAhCVWJ", + "address": "LPKq82YpTnM6pvx76ocEgUxxZAS5yWMoHy" + } + ] + }, + { + "coin": "MONERO_ED25519_SLIP", + "seed": "89a07f2a87844b648f7c79c8ef15f6f0db55eae9738241b66f130754898926dd", + "master": + "xprv9s21ZrQH143K2rWFnWibFQdjs8MGQVSSAuMiAKdmEy8F1JCXi8bjpsvskkYPoCRiuQFz5f2FD1cPuxmBgwC79kq6Ebkt4W3oqJhFfimjVHx", + "master_public": + "xpub661MyMwAqRbcFLaitYFbcYaURABkoxAHY8HJxi3NoJfDt6XgFfuzNgFMbvJf79LPiZ3iMNtDVDayEx9o2Un6zuxBmB36DawNSiFRCLgbSq5", + "coin_private": + "xprv9wKZpZTUCXkvNBEGKoP4VZ5a1LrfQYydw6d6Q4JGPhLQuvrwmafmEoXKeGYC1unRQcV4rYXexUFdQq3ZmKj3VQvCzk5yympKw4rqMjhW7PH", + "coin_public": + "xpub6AJvE4zN2uKDafJjRpv4rh2JZNh9p1hVJKYhCShsx2sPnjC6K7z1nbqoVRv9W16Hrn27SQX9UD1DDPs63HMs4bZXk7tRHdzgKdZuBVpksbw", + "child": [ + { + "account": + "xprv9ygTzMoaw1XoBcgyNnvficPE6vHbEkZgZ41apdSdQqbkCnC8KeY8WhvXjtKMCgQKUhh7Htgn1NHjjd6Gp21erCaEeEthmtj8aH4VMLbySr3", + "account_public": + "xpub6CfpPsLUmP66Q6mSUpTg5kKxex85eDHXvGwBd1rEyB8j5aXGsBrP4WF1b4WRUXj7vEVqzYbf1hcCkdD5HhBJ4dKsvS15t32Ags8KKMQaGkL", + "address": + "47icyfb2ib3WN54FBsRoyiXMQtceY1b8a6rf7kBM4heA3gEazjcRYF85JDf4xXbPfz9SmJ2Tov6PdM2W9RVEtRKs4NEpAjE" + }, + { + "account": + "xprv9ygTzMoaw1XoECh2AUprcPeoN32A15F1yKbJAY3qzLce8WpXsRVzvpDmXUisieAYU28Z76zoPMvYRggo2xvQJr8qn5vbdLWv9EY7h5sLSNg", + "account_public": + "xpub6CfpPsLUmP66SgmVGWMryXbXv4reQXxsLYWtxvTTYg9d1K9gQxpFUcYFNg2uGWf2fRTVQg9qgPanC1kXJXPNY2cK1qdR7FmkCACxRn19fys", + "address": + "48cvhCgSpuRdtNxKaGzrTiit36yPeEUruKuZoMdA7cPTM75VEdiPKjYfNZJniAeBnuRR5dkuQwsQwdwYpmpqfpRq3hqXBZp" + }, + { + "account": + "xprv9ygTzMoaw1XoHSK5skoAiUzQ4MjHFHXwBhoyzTM8hNFpTvBM2nrqUiHNxkt3pJknY9TyzSGWLRYneK9uZfzsr6TGnnw9ZPNDEcss2vdGMsJ", + "account_public": + "xpub6CfpPsLUmP66VvPYynLB5cw8cPZmekFnYvjanqkkFhnoLiWVaLB62WbrovbU4J4vpzkPjAS5VVopm9yAHYLrYKLTfaL6xBwE6fTWo9JLm9E", + "address": + "483UVe9cwS84Brfz83FZ61WZVHcv9biCQNgNfJUdLFrha2PKgKVTxAnDzS7bg8UXbJUJELBwEdp5yJ16jbX3T6vDRbJ8HWc" + }, + { + "account": + "xprv9ygTzMoaw1XoK5PhXA9dgjMWwCjjrzPWyf5MCxtd9tZRVAZd1SvEFYJzSXdz9YXrLWStf8NJatp594yuyT1vYKppSAF6fjqby3ye2TjXctF", + "account_public": + "xpub6CfpPsLUmP66XZUAdBge3sJFVEaEGT7NLszx1MJEiE6QMxtmYzEUoLdUHirXC9CeWboHA9JiqgU2LXYsFkV2vnedLWNTN8FXdzbudYnCTxv", + "address": + "494eVVq7gj6EstspXDzjCwW9c2dGdWnM7PZ6fDaeM7xXUEM4522FuTcFa9Gr7V2Yd6eBh4CwvAtXKRaY2stxt1EE67Eoz4B" + }, + { + "account": + "xprv9ygTzMoaw1XoMQJtmDzJPyQvHxubtu7uxrMXf6vrUfV5BZ95qRjmvn1Ne8ebqyJ3NgNBvU8rNWVK3xdeK8ZXXyhGWpZbd1y6nq9n447topL", + "account_public": + "xpub6CfpPsLUmP66ZtPMsFXJm7Meqzk6JMqmL5H8TVLU31244MUENy42UaKrVLF9b18aFRam81T3EVWGGbKF6cuVWW6mNonNwce81peNCGdPVAv", + "address": + "41hhtPhGpw8hwgzsDFZECo6GY7hMRKh8wBdRRVB1fTWwK1SSsZbU6X74f4fpA12Rhc3UFZkFvvZvk9NtFHhVecQu7qGan6u" + } + ] + }, + { + "coin": "MONERO_SECP256K1", + "seed": "2c42c427297f9ffc920b25e87735cda300c2448a276fdaf0ca90450be80265da", + "master": + "xprv9s21ZrQH143K2ViCt8HbgUjuuia3S2y9mpR93q7cu8kxUTEPBiXZrrhhyEc9K1z9JoMW1svHvCymoPPkdrnACr1WgdN8BKGRhVCUiCgcMTw", + "master_public": + "xpub661MyMwAqRbcEynfz9pc3cgeTkQXqVh193LjrDXETUHwMFZXjFqpQf2BpXUofn1LCQZxX1SM6aVSrrjs3j6v5i8CXVz98gGn58KVDcKXB4N", + "coin_private": + "xprv9wjjb2rBSufAf3HeBWoyynrkFg3sRgb6X2TrGLEQchnJe1bKdz4EDoNHZVkixSJ86Qn7unXAJa1MJeyyMFyF5bPdjViH7quuaW7AxCtaZhX", + "coin_public": + "xpub6Aj5zYP5HHDTsXN7HYLzLvoUohtMq9JwtFPT4ie2B3KHWovUBXNUmbgmQmJMuz9G4czEy5CPUotNqdNS7nEBGq3r8GNwvFiSfXn8uJZy5kK", + "child": [ + { + "account": + "xprv9yGLu3rUru26WRexR18T47P7HmC9cL9Wkv5CwZmbtsFXGF4sdL6ZsTZPx6AYYjtEXSNFUqvXsshWsq5ei1HZ4Da3DADGC1ddMUVG9UVDdgf", + "account_public": + "xpub6CFhJZPNhGaPiujRX2fTRFKqqo2e1nsN88zojxBDTCnW93Q2AsQpRFssoPS9ZvQDxwS3h4zCZREDkD5jQVNBKtXt8cTD5Vxubzu4LoXJtQT", + "address": + "4A2HThjyb8RG4rUxUKsnwJ3eHuqGCZtaJYo5jFjLozUfKTgQSeXkEyg42HdNVNAMwaJigjc3XeLpAeWCqZjV2aejRYz6oLW" + }, + { + "account": + "xprv9yGLu3rUru26ZzvgmaP3yPFeJKERGj3gVk7o5MeChrYBfd6aiQNKsQC7pr763eAHzkUSRHu5GLFyWToGJRPYzSKK4KHCDKqe2gszgrNmXqr", + "account_public": + "xpub6CFhJZPNhGaPnV19sbv4LXCNrM4ugBmXry3Psk3pGC5AYRRjFwgaRCWbg7ALrKjigbsYucppWDW3u2jGRjcoy6HCtZ8zT4C5R3CyJzSL9NM", + "address": + "42fw13wJeLNU3RgdTryzikDyP5pgqJVYpChHPLaeN7b5AJEHMxLHccKXu6SE7fkbZh4vB3AmSTJ3gNwf6UimMq4f1iW9GbX" + }, + { + "account": + "xprv9yGLu3rUru26dZjd6dSDZiSADrV8qakVmpTwTck5XrgffeCXGPH3wXp4jdn9PGhgVa1Z9mui6a8Aeu5Jdqs3AEUTRr1iuDxg8fjCbtX9JYS", + "account_public": + "xpub6CFhJZPNhGaPr3p6CeyDvrNtmtKdF3UM93PYG19h6CDeYSXfovbJVL8Yatwk5ck75vy8hQyyUYLDpMM1ZZzHsZnFCQKQxftZarZH1UvCkRs", + "address": + "49xpcaqU4NTd6MweSUo74nj23mGvM3L4BSR6XBsU2eZoEKgq4jyqUCHSFxcbzpzc9TKR65Y7z8STU9xBFgExER5bEMtnPHw" + }, + { + "account": + "xprv9yGLu3rUru26gDdpabQi9fPmuJKyLpHmMoWT4iyzr3Xet4erwbXmyF1fSp7zYrYSWZTdVDjwcLiyBVictzCHFKYLrAwMGAqrw3njqu5PcwK", + "account_public": + "xpub6CFhJZPNhGaPthiHgcwiWoLWTLATkH1cj2S3s7PcQP4dkrz1V8r2X3L9J7TLmWge564uYquZUYweVppzwjCvZPGW2L1vjkw5dH8xMExkzUc", + "address": + "46k1dsmg7ZhEaiLXv9D6YzFG5oCkKkCsefhfK7ySwCWy4fmJk7LKVsvAhHdDCsJZwDUVTETVvJuj88nxQSZP5BP9FN1LYq2" + }, + { + "account": + "xprv9yGLu3rUru26ikHGkFAZUVKLyqLHg1BnLLvU69cwB4GSF1xyksHQQbCq4HJo1kkSCHxFCPZymzJvD9GKhCgsTLATgjGG2fsqzaPzhGXrGYP", + "account_public": + "xpub6CFhJZPNhGaPwEMjrGhZqdG5XsAn5TudhZr4tY2YjPoR7pJ8JQbexPXJuZp2fXADnuekCFL4Z1Wnvd5bgDPxwyY29qtEmSpt9uXgeKeRfa8", + "address": + "43BgE2EK2PPPKf8hrpxMuifqwizsaf1hycocRSHAD2SvgdMqC2GawheLRrAGCdiKmDSN7ThQ1qUYBCPFfvw1xUVoSA1askv" + } + ] + }, + { + "coin": "NANO", + "seed": "45dbe3a39420d94a8d143872e2cad3559a32217130909e347b0cb57025f68e88", + "master": + "xprv9s21ZrQH143K2Ku9M2cxuXVfAN7oo5NJuc9EGjgP2wAZFjqiP8dKszNa5So8SSTddGtwoLsXrmByWkf3FPGqrHWtsEXLAnk6hR8ER6pstKt", + "master_public": + "xpub661MyMwAqRbcEoycT49yGfSPiPxJCY6AGq4q585zbGhY8YArvfwaRnh3vcVU8WuBxDYRB9JEf2c7G2f169NFNR8mYf7GCsSCUo1N83PC9oS", + "coin_private": + "xprv9wGGDepiHnvPk6EWFQV59WaomfzqZUp6yZUApzfAhg166Horxs7WkATQFiBQRaB1NjQfi2oGimzVZg3HWbpmzcJqctC6XnvFPLv7xYKci1v", + "coin_public": + "xpub6AFcdAMc8AUgxaJyMS25WeXYKhqKxwXxLnPmdP4nG1Y4y691WQRmHxmt6uRPwsVA6CGZGvbh2ABvLPTxynpvkBt5RtTWboR2UW8GyD6Bxib", + "child": [ + { + "account": + "xprv9yLFAURrgTghkzoS5p2Du6fGKxdPEmGt6bNsPwdCeYwAydpFNGnXya1tt5Mtwp7yG371fkXHb1QxwWCC619Ba9pEehvEe9jZD5Vux4qZt6u", + "account_public": + "xpub6CKbZyxkWqEzyUsuBqZEGEbzszTseDzjTpJUCL2pCtU9rS9Pup6nXNLNjFkK3hdV5pFXhQfbWHULo1U1PFStstsVBKJmjpQYsabmHLYeqa1", + "address": + "nano_19io3kzqnxeo368yhir8awad35c55nj9x1nzsa96pyf1ztw8z7nmrtm65qbd" + }, + { + "account": + "xprv9yLFAURrgTghnVXo6TDA27etjJrUXgrM3tX8nMT5GCwo4nv9zQ4HAxHSQTA4SnkUpgadNo65Az4GwxnDfnUGVgiAiZBtAx6tWEvau3syhHe", + "account_public": + "xpub6CKbZyxkWqEzzycGCUkAPFbdHLgxw9aCR7SjajrgpYUmwbFJXwNXikbvFegENiZzepxRY5MaiDzKg8NnemR6EKMsNTCYRvmPeZMHdTRJJkJ", + "address": + "nano_3fm7s31fn8q41gtd1g18m5b3gnwxgcshsg3q9yinmdoco4j5shsdp4g9jpnj" + }, + { + "account": + "xprv9yLFAURrgTghr45Pr3VsR3GgyQMGLUm3Hg7E5kRjWm6hg5XnWKSaDPhBvVXxVCSXLphgkL1k4BoPGS2J4hqpa4CsEJuDRphkxNzsz8yQDVA", + "account_public": + "xpub6CKbZyxkWqF14Y9rx52snBDRXSBkjwUteu2pt8qM56dgYsrw3rkpmC1fmgnorZegUk6dw3b3oFttdZ4GQ39FrhLzKffQTvdCGYWybVaZa6z", + "address": + "nano_3nw79wur9ax33qnmgt7ys9cgjwmsyr3ipkp46d1c68argp83d87uh6fhmy5j" + }, + { + "account": + "xprv9yLFAURrgTghrpJT57A7EhNk63SCLhrJCMAcggNK7YqHh7j6fbBz8sSwoaTWftr1khURuHcTrR9FLxNuDrMtpmbxuAJAsJacSqYRSU5ZA7v", + "account_public": + "xpub6CKbZyxkWqF15JNvB8h7bqKUe5GgkAa9Za6DV4mvftNGZv4FD8WEgfmRen6Mk6eH7Ufbz8ovrtrcRdUAijCg9gDaSj4bjSJTbgkA4ZmFVGM", + "address": + "nano_1k9dfkbhybsfn8xhaobmd4ba48q145ryyddgok7c6symck8waxzsfw6yip4i" + }, + { + "account": + "xprv9yLFAURrgTghvqQQ7TcYJmkUgtTqG1jpRBwLD56rBLgv3B68nFm7HRBAqbUCYReqZV8ZEFnmfsLGnKM1dR45oHZczV89ERHkrMmFKxEBTqR", + "account_public": + "xpub6CKbZyxkWqF19KUsDV9YfuhDEvJKfUTfnQrw1TWTjgDtuyRHKo5MqDVegnCwntFxYPLQ2KacjcDQBPiLfM3gbEBaThfffPSdBkJVmYH3s8y", + "address": + "nano_1m8kb1fza36t3e6smr3fujj59xub4ry1zdaohb9q89xe336fnh1etao9mo4x" + } + ] + }, + { + "coin": "NEAR_PROTOCOL", + "seed": "4c08489f7649f5aca04f5b45ce20bfbcd5070a2f93945f78bdb3019eb427f3a2", + "master": + "xprv9s21ZrQH143K2cJubmv44oJR441LngFtyzx3KgN2ZhPueZoodapHceDnPrjpjv6AXMqcZcGsAH6TXwJMUdmVSeDVeEb6HBfkNrSEZSjdt34", + "master_public": + "xpub661MyMwAqRbcF6PNhoT4RwF9c5qqC8ykMDse84me82vtXN8xB88YASYGF3Fo77WWpV3SXoz2muE3XtyvQtvQXHZuqhHBPtgUDCzbUi7P5ze", + "coin_private": + "xprv9xcdjtn5GwkzWVBTJqiUxkWseGJydyj8t6fTf3b17FcZG8g6W7dLxSvmEPiGjNNZ2dfEaH22CeKeC2rCwNwsWnyTLabQUUJFNagxcv9VcyP", + "coin_public": + "xpub6Bbz9QJy7KKHiyFvQsFVKtTcCJ9U3SSzFKb4TRzcfb9Y8w1F3ewbWFFF5c6dRxApbAhJoY1NJHizu5ZwdBR8rPNJYbZWm59HSVx8vHCqEVp", + "child": [ + { + "account": + "xprv9zWzahTxJBmsiRL2Vf3B5oGiLg53a3vkZxsxhj5adBqktSEdfHY1BLsYhGpgb1zmjZBx2TLESSRmJStuYbbi1MbWNcYhFhKrQDRisRjmrmN", + "account_public": + "xpub6DWLzCzr8ZLAvuQVbgaBSwDSthuXyWebwBoZW7VCBXNjmEZnCprFj9C2YT8KmwA8oBXrfMBtpHhyZ5S4WTz6HvYwH7FuvvXUMuH4rm9JSJ7", + "address": + "2c5e1c4d8f9af0404207f6c13913eec236213d31c534af87e801d5d15416d2e2" + }, + { + "account": + "xprv9zWzahTxJBmskgeL91KV16Ds2UidB15wC3m2Qd5yieLVBh23TEHkz6ia3MvSz9x464KEJFvCeK8oKAZQ9qQNkvyk1rzNStemwUwG1eNieq1", + "account_public": + "xpub6DWLzCzr8ZLAyAioF2rVNEAbaWZ7aTonZGgdD1VbGysU4VMBzmc1Xu33tXZjBSgVp4m2c6V8WkmYbKVuZ95bpsD352dG5tr4sjqctNdGXCC", + "address": + "1718467d956a93d54a1ffd875798990f5adf7689791fe220e29269a57d03394f" + }, + { + "account": + "xprv9zWzahTxJBmsqf9muM15kahQExD8ncZYgAsJU9UUZNKoC3FNHuh24vANqGxAHoa7fkDMsQj3TjHtbJMtTY2WFgF9CSdvNh75nqPnYHT8Eit", + "account_public": + "xpub6DWLzCzr8ZLB49EF1NY67ie8nz3dC5HQ3PnuGXt67hrn4qaWqT1GciUrgTQmxxURapuoV8ur2KMBF5b1fAKJfMYjsgMYgfvCttgQNGhd5sg", + "address": + "1d9b5ba6b44be7422266bc0e58cf3121f9ed50fe3f09b2774d680a0c88a2fc19" + }, + { + "account": + "xprv9zWzahTxJBmsrjda3fKNo5SzzMiRYyBCm91juzkijKHyiy43gfzkgKUxKXmQpYpcWRNydnyCUBVV6WFxd2pTCAjmQAyiQpsAgRzAm1VfN9b", + "account_public": + "xpub6DWLzCzr8ZLB5Di39grPADPjYPYuxRu48MwLiPALHepxbmPCEDK1E7oSAhie2ZkD1CHYS4jLiJ1fSgux6rJFK5UajmbvMvNDEUyDvKaCmsr", + "address": + "1892a2d2ff929a48ef829663e93c0f66d42be9219cc98cd5ecb7c1dba58db65a" + }, + { + "account": + "xprv9zWzahTxJBmsvbuEyoGb1kjaVE28k891b7wuApZYvE4yMiCoZHjcYqB5KgB3ZFZ7AunyFQgyXvZn6bPxD4ddCBuBUHqyuLrdBS989pL8ubh", + "account_public": + "xpub6DWLzCzr8ZLB95yi5pobNtgK3Frd9arrxLsVyCyAUZbxEWXx6q3s6dVZAt7sSb2o84UzMvm78FN2FHph8kVPDFyQVCmt3p8hAxaK5jEQ7u3", + "address": + "b8566c42674e7a59bf1859c1a677ffe12d0ec2e452240058719da3b243e438d0" + } + ] + }, + { + "coin": "NEO", + "seed": "902ef0525479e1767337a7b8191eb3a67edca4c58694f28f0484582035dc9f43", + "master": + "xprv9s21ZrQH143K3kYHfWoKPUSri5kRPXrqagYTf7F8hxwQtVS54CRtVv3sTWQRoCoe28D8E72sMZfzRUjr6ukLUAJL6BK6iFypb4zom8nuNQt", + "master_public": + "xpub661MyMwAqRbcGEckmYLKkcPbG7aunzagwuU4TVekGJUPmHmDbjk93iNMJnVQp9tQWJSEXqSpqyN6se49TZ1rP2XbVtPkKovYsf52SRNLs42", + "coin_private": + "xprv9x3QMfeRGZT6azWZ1AUerQxHFxmDhjR8LmPMQ7ugZH8aWxASn2PYzgwmCyTPcmrHSsChuLRMuDBQiv8BZ13hshXiLua3A8jo44MFq4ZoUSr", + "coin_public": + "xpub6B2kmBBK6w1PoUb27C1fDYu1ozbi7C8yhzJxCWKJ7cfZPkVbKZhoYVGF4GQCcn7gZA6P2jDCaJZjKaz6EN9jaSJRd5PrNprTZJC3fYny9nH", + "child": [ + { + "account": + "xprv9xpkLzjnEQGiM1gEbjV975Rh3BMWR3CMveevFECbMgYGrLU63Jmn73oLgUSmiZ43P9CHLHQUUtYmRR8Aaf1fgUQFycPLMXzUmqsnfJpzegk", + "account_public": + "xpub6Bp6kWGg4mq1ZVkhhm29UDNRbDBzpVvDHsaX3ccCv25Fj8oEar62er7pXm5kpoy4ny74HQpXVXSuo5hmXyftserWThquRHqMby8HhbrZ2aq", + "address": "Af2hcWsjzijnWRHFTMTVEv6523PDeXiFFf" + }, + { + "account": + "xprv9xpkLzjnEQGiPGAsBuWTyi8BkG3YjsxSYeBPxxU9t8R8w7iTS29qLYmLzQf8thwAkoom81whNsgxtbunUhHxSiJKKtbxL222eFPKn9agDXS", + "account_public": + "xpub6Bp6kWGg4mq1bkFLHw3ULr4vJHt39LgHus6zmLsmSTx7ov3byZU5tM5pqgQjPnhxWJcMkMFE7HJaZLZ2rMomjnwXEecgNFGH668jnfs7bM6", + "address": "AGVGtsibmeHRYSYHv7Eby1gbfhhnRutBfy" + }, + { + "account": + "xprv9xpkLzjnEQGiS5gqtKE38wQ4GCKRg3yLqqjwGW9aY3XsLWwrQQedBF6a85KriSfGA5a4Ha4S6MypeM89V5spF5SsxZWGGceVD57BkMtCkLa", + "account_public": + "xpub6Bp6kWGg4mq1eZmJzLm3W5LnpE9v5WhCD4fY4tZC6P4rDKGzwwxsj3R3yNjxpUPKKykF1VfTcRh73jmygsWuP2qLfimBNKbycnwpqr3Y57L", + "address": "AL6XhX2shMgnEV8McdsWn1RbveJiVXestq" + }, + { + "account": + "xprv9xpkLzjnEQGiTgcrGbxi24XUX7BHqbWyj55Jer1sv5EHioKPS9JoTXYXmjeaj7fwcL11gpG2XJ6qrcx8HwzWtdrweQo8NoH2PYBngSbfKvE", + "account_public": + "xpub6Bp6kWGg4mq1gAhKNdViPCUD591nF4Eq6HzuTERVUQmGbbeXygd41Ks1d3DB5jr4TkeQhAZCeeGNrYH5VPL2UML2JLMjfZDm91aWj1JjqkZ", + "address": "AZ2NCSpAQBEXthoLkRY4JegavQCWQpgkh8" + }, + { + "account": + "xprv9xpkLzjnEQGiXjwjEazcGMesWPRhLfYc1NpsgduZ9KpkSRoY8Q9Q3HeJ2KuJTLWFgUPnjofeUrb6r3V3so436FMUwyFiUyVjAAu1x1WfcyB", + "account_public": + "xpub6Bp6kWGg4mq1kE2CLcXcdVbc4RGBk8GTNbkUV2KAhfMjKE8gfwTeb5xmscGAX8m7LwYZqL5UuSxpnaUcbtrDuf5V7L2hm7nwyPJfn6MeKbE", + "address": "ANJFzka22H86d5pTgZ4yDHmkMNtNhNGouL" + } + ] + }, + { + "coin": "NINE_CHRONICLES_GOLD", + "seed": "a22273f19f4b68df16512f842e1ad0a2fb34316250388edd0056dbd77fd0b79c", + "master": + "xprv9s21ZrQH143K3qoPzfZzVWLvwLreqvfke2ev8LJdNpXxPaPRm75TxNRZzo1GiJ7N9dSQ4zXsYPJs1YYvBqcwC81R1wPcJWN8ZkNtSHqor26", + "master_public": + "xpub661MyMwAqRbcGKss6h6zreHfVNh9FPPc1FaWviiEwA4wGNiaJePiWAk3r4ksMuVFvJuYbQca4xgt6dHdLKw2ymqmXvRak41an6AobZRohqx", + "coin_private": + "xprv9wzw8omcybYqsLs7Cu9MGjRJR43EgEfe91tUBEc9twMkBPHN1Jjq1fDq2p99ceWzxhniEpdfPB5fVQqBt22ev4Wqq6mpiiRDeiKq1Z3zxmX", + "coin_public": + "xpub6AzHYKJWoy795pwaJvgMdsN2y5sj5hPVWEp4yd1mTGtj4BcWYr45ZTYJt7LNPGJx5fk3Ee2nUwNazE8Qd8qZtyqph1FFVnJBDdspPuSXo5m", + "child": [ + { + "account": + "xprv9xtNwto3ofE9Xp4d1qFvG22j4WwXP9J6r1avruKsTfhTokDgAJiTFYYq4UGVD2JnMNdSo8AksCbab5uugKcWdZ9duj8gnDaRAneep1UDaf9", + "account_public": + "xpub6BsjMQKwe2nSkJ967rnvd9yTcYn1nc1xDEWXfHjV21ESgYYphr2hoLsJui9CbozRyzTbZsQszi6ibxG5bfpSuoqMLGoCXqWv6DRyvuVUFkT", + "address": "0x9C3807724781aC8a46A3B2C7C42E958283557a7a" + }, + { + "account": + "xprv9xtNwto3ofE9Z8Au3ip2BJcuL5hfboB25bmXSuoQLuYwhz5MvpBFUY7z4yw9GNuKnBVjXYmSi9pdoVsrgkt1gQvJ2ZbjqwxMMM8XqX2ryz1", + "account_public": + "xpub6BsjMQKwe2nSmcFN9kM2YSZdt7YA1FtsSph8FJD1uF5vanQWUMVW2LSTvHApN63CnHWMq6915BvZM13AvWhjJdamWfzMxWnBQcD9XvfHGHX", + "address": "0x217D857a6734eF1890635c97C8155EF5ae90D90D" + }, + { + "account": + "xprv9xtNwto3ofE9cZ8LwAqctXvz5RR1UoqKm5oJiHKXpEEyxF5Z43JeAFXjKQitqGqamnmfNzf7ckYdNwhaySPDmhmH9nC5SVkWdNHPGEsdivj", + "account_public": + "xpub6BsjMQKwe2nSq3Cp3CNdFfsidTFVtGZB8JiuWfj9NZmxq3Qhbacti3rDAiKuK9JEBcsykvvYLdzpmmApfrweKa8QAABUM5UNboSkvtmciJM", + "address": "0x0D8e154D1BAD71f7a0889b0FbCeeDfe3743B5Db5" + }, + { + "account": + "xprv9xtNwto3ofE9eZLE8Sziv49MSZz6pByNQDAn9BVKWFfGJKPqPE2nFiesrufahdpjaPZDy3AxQC28AEVdJomtPZ9Qd8xTvzeVgFRthbKLxbd", + "account_public": + "xpub6BsjMQKwe2nSs3QhEUXjHC65zbpbDehDmS6NwZtw4bCFB7iyvmM2oWyMiCMY8cVRBVSyTeiaCMX9k46dbeSGGNMJkjScNABQ6jAfVX8TSwZ", + "address": "0xD542fA0eb6197e3f2295233d8A1689b981499a31" + }, + { + "account": + "xprv9xtNwto3ofE9giC5WzT8XmN9j3FvwVDCVeTAqnpv6XrcxK6STmUSgjG261KL99wvYig87jdRLMN4poVQuiBRiPNNdMsEVkYW5T2dF8ARjap", + "account_public": + "xpub6BsjMQKwe2nSuCGYd1z8tuJtH56RLww3rsNmeBEXesPbq7Rb1JnhEXaVwHWGx5PKtzWZu2YBCWpM3EJN2HQQgqw2MtZqXov7g4o9wW38gh6", + "address": "0x60Aab718fB7B1AC26fC007533d5336Ec9aeCB609" + } + ] + }, + { + "coin": "OKEX_CHAIN_ATOM", + "seed": "5057477178863f5e8d94110253c79c982e73e50eeb9af22a86c8ea7fd7c153fd", + "master": + "xprv9s21ZrQH143K3GhstXNvRgNWwPbHgJh7tvTtE3VrvwjGkh9T7DGSJxBvhfhqwZ8eEJ48zEwpwgryE4PGBd8VVgTHsZiP8gmKh2KUVkYCWsP", + "master_public": + "xpub661MyMwAqRbcFknLzYuvnpKFVRRn5mQyG9PV2RuUVHGFdVUbekagrkWQYzPALUSJfsFjSWfJKhJ5N4kjVtyYHdL95ihbrVZrWxUNqFUxnte", + "coin_private": + "xprv9xFTkta1bkAKbmg5XfnC1hRe8wakyn9WtfzZKnWh87rHXg4HtmKgw2hNeZYVxD7Hp4xULsShJT3HENyQg8Y1rWffTtRfqpEjU74fv4KQRFB", + "coin_public": + "xpub6BEpAQ6uS7icpFkYdhKCNqNNgyRFPEsNFtvA8AvJgTPGQUPSSJdwUq1rVrgkmD1jwtpn5o5TNVyPgkc1Yepb4rFhJ1hAkxDwknQqz1mWfud", + "child": [ + { + "account": + "xprv9yLdyfwLEMxhHn7LzrHdWiYPH2NkbfW8bLHQbFAGULouXNbTwkUoLVFfVPba4ZsUsnftuz9yXM8nAv4Pr8MEXJ4w9p446xvjnAP3rFuTv4f", + "account_public": + "xpub6CKzPBUE4jWzWGBp6spdsrV7q4DF18DyxZD1PdZt2gLtQAvcVHo3tHa9Lg7yCB2kMeGMTC15tcGdaiW2ErvT28vCkXi6jw1CQGGzS73AgVb", + "address": "ex1qpua6g9pa9alzgkr4d0vvwx6rnrsfpgsc0qx5z" + }, + { + "account": + "xprv9yLdyfwLEMxhLMXUtRjRgifvBjfHyffhNxXu9wXbmTt7h1QwxXnrCQzguDr7ZkeaCgVj5znf1Vn9jBSMDFHFELaEgdDzTF3DrokDfteWdNW", + "account_public": + "xpub6CKzPBUE4jWzYqbwzTGS3rcejmVnP8PYkBTVxKwDKoR6Zok6W576kDKAkWwwrfvcSfzYAqG4v6uvaxGk6FHzH6KyfUajVBDWpTK7aHMSYe7", + "address": "ex1gfyk4w6yz3l3wjv2v8gf9ruwsefhyguhve0s3q" + }, + { + "account": + "xprv9yLdyfwLEMxhN75RXnynVWMiz2bezertf3bBD4KuGJ3sXPcT7Q4s5p4FiYkkgGK7zVZen5CjhW76rxFi5asfuLt3NJBLNVH4rbEVQiLr6pN", + "account_public": + "xpub6CKzPBUE4jWzab9tdpWnreJTY4S9Q7ak2GWn1SjWpdarQBwbewP7dcNjZri3L65XnzeUChNxL4n5Nf93HSyemBJa1EAsgfvXmE8xuon5C8T", + "address": "ex16tx3acxuseqmvqmq695eraezejjtjmccrzq55m" + }, + { + "account": + "xprv9yLdyfwLEMxhRLdcWabushyfQon8AcmRoa2KRxMqGMN79e2EfXJ3oKMQKUgVpMGUtdmNWssLrw4XNo26tXcV1RgJ6A1mT1fPNvQnDfgH1mZ", + "account_public": + "xpub6CKzPBUE4jWzdpi5cc8vEqvPxqcca5VHAnwvELmSpgu62SMPD4cJM7ftAjpNie7WbbR7p6ekQq9e7MX2LGdVLaVMK7ZuoKbbUpDZA4CW9yJ", + "address": "ex1v5y5qrjwwszn50lezxjfkd806pasqu0j6ckm7e" + }, + { + "account": + "xprv9yLdyfwLEMxhT6vg1MUsNzdm66xCSscYSkfBYR1LAffrEgEGrfxE5M1bGvh2csZP8sYRVzvQnQNF5abpNKD6SF6duXv73LeVtyf7b7qdhMy", + "account_public": + "xpub6CKzPBUE4jWzfb197P1sk8aVe8ngrLLPoyanLoQwj1Cq7UZRQDGUd9L58EJPxBNTpjprarprDQ2HRjvasTYWx8xAmL2nTtRsNBKgtoyxYAL", + "address": "ex1f0w8sw4twwu38fj69mcju8wlvfwj4kvzqglh4p" + } + ] + }, + { + "coin": "OKEX_CHAIN_ATOM_OLD", + "seed": "e82dec161c460a05b1649f01244a9b68c950fcf26da8c887bb0d72953a9cd592", + "master": + "xprv9s21ZrQH143K2GEpvpteRiF8jSTCNDweXbEZMHscJ1WQtzhJepE9KMFupTLsWVF3EAvEADLy69qefFabxurH9wsvEMiauwwHi2C9aQVvKJ1", + "master_public": + "xpub661MyMwAqRbcEkKJ2rRenrBsHUHgmgfVtpAA9gHDrM3Pmo2TCMYPs9aPfjcbVx9jUit1Swku4gLYRR2xXoacReqtxn8wCfmVDerpWFmpcGE", + "coin_private": + "xprv9xH8D54Z9nrTuVNdA89YWAJMiFsEarfpvoQaGbnMEPd8HyNyxBijPQwUvfe4MWutySH32STcZDkbxEmHanqNoeP91gDQcCmztupsjSLdYUF", + "coin_public": + "xpub6BGUcabSzAQm7yT6G9gYsJF6GHhizKPgJ2LB4zBxnjA7Ami8Vj2ywDFxmxjXwzSCGYJ197JZtxZGsi979YfzDpMAKzHno7hseL2YEApx9kx", + "child": [ + { + "account": + "xprv9zNLbbzdJu9QFLeLx144SwWG1XaYYvWWrzYGaTAuhrhvQ7dY7bKM1fhM9Pn9Ev7kQVVo6CH6MVjpshM4aDzrhkngDZEyeH9UV6gfqMnFRvR", + "account_public": + "xpub6DMh17XX9GhhTpip42b4p5SzZZR2xPENEDTsNqaXGCEuGuxgf8dbZU1pzg1f1qqQNqkvJQYDpjhT9HS2C3TWbaLv8EwUnoseCy6coNbnp5f", + "address": "ex1y9wghw7k3ns5760shmy3d8ush42he97ntaym9t" + }, + { + "account": + "xprv9zNLbbzdJu9QHCGoZNayYSnPn7Y1i5S45rnGvk27rnuHeSweuYkqoLofiPm9Uo12mgFQXetkn1z2PCUmPYU5UsgGgDJ8aHfUJhv8aWx6KH8", + "account_public": + "xpub6DMh17XX9GhhVgMGfQ7yuaj8L9NW7Y9uT5hsj8RjR8SGXFGoT656M989ZfPpZjrAtkpJuLSKybcE772owmP4NZeNt81Qy9NsDTiAGQTF1D9", + "address": "ex1vw5l5tqjg5356k200plmf7le5xnqj0vyqq2r9j" + }, + { + "account": + "xprv9zNLbbzdJu9QL1NHB8LDUo6RGWbiBEMHg3pZ34rXB2KDzbzEo4yEjNsc9EXMBhJB8RzCz6tbdQ1AerHu2x2cJF5Tvj5kHrLqya8x3NJyBKN", + "account_public": + "xpub6DMh17XX9GhhYVSkH9sDqw39pYSCah593Gk9qTG8jMrCsQKPLcHVHBC5zVednw3BwycHzsEhPMuHnMJwnaJ6XBJaWumoLoioz6xy83YbP1G", + "address": "ex1zxa3lalhxzfruffawvgyzya5h5p8msv5wtkjy4" + }, + { + "account": + "xprv9zNLbbzdJu9QNpQuFg4VP7oQzpLyjCXUdpvEKNEXpJX9Ym7fTw7bFPQpdrc4GbApu1JWn5sDqymU7XzXdEmnw7G2WQw8AeziLFLDJTcz3pJ", + "account_public": + "xpub6DMh17XX9GhhbJVNMhbVkFk9YrBU8fFL13qq7ke9Ne48RZSp1URqoBjJV9N45ExgBUhZR81ZbPSePGrxsrTC8tsr9kYDc2QaEFRBjdkteXx", + "address": "ex1xt24hnws22a0evurk2jdx5uj0ukz5pe9mmevt4" + }, + { + "account": + "xprv9zNLbbzdJu9QQu7bnxT1SxRcVN6Tnra4mQ3y3rhxcQzHXoNEdj47aSzb3FfutR3Sxr3m2w1hPYH5xx6AkgSQKmSXAv57cHfAcPtpyEn3HXf", + "account_public": + "xpub6DMh17XX9GhhdPC4tyz1p6NM3PvxCKHv8cyZrF7aAkXGQbhPBGNN8FK4tYSGZHoc4w9zUtaLSpmFWwZu6W3enbB5XqDsMdjBA1sqw3quiHp", + "address": "ex1q62h3hyzkj7x6na6y4h59ag525gee80w43kl4w" + } + ] + }, + { + "coin": "OKEX_CHAIN_ETH", + "seed": "8d38c8bf6c59802304a6439b34cb43bb815bc7429abae6c1ae0ab08166811771", + "master": + "xprv9s21ZrQH143K2KzBiGBYmsZNaNertfg98jT1FnbmnU3T4MQw2SULqodmAYhVvjDH6syik9pTJMbFLocAeUk7UatK5ZLs3SUgEsBFGE7MJiV", + "master_public": + "xpub661MyMwAqRbcEp4epHiZ91W78QVMJ8PzVxNc4B1PLoaRw9k5ZynbPbxF1oJKpdbfNr1jcVGGw8qE355P6tSJcGTvRpSYtRTrvuNDaUKzRyR", + "coin_private": + "xprv9wYXmiKJGcQm1GTvCW3c24bPGJgMwuYcivvKUD27mqGK6QnZ1Mqgz4r5zL7tCSeeRVmGFUYuhznXeFYoGpUiVJxUrCM833amYybMAdzN8X5", + "coin_public": + "xpub6AXtBDrC6yy4DkYPJXacPCY7pLWrMNGU69qvGbRjLAoHyD7hYu9wXsAZqdQy5BxnAJr84Rm3JesJT9kJ1Z1zvunrdpCgtvRi5JnRssgBZU1", + "child": [ + { + "account": + "xprv9zB7nNr2w56HH3A54rVVHmqTaAqonjixZjCt7AGnsMz6dnABichrPMsA176QM6r8tH8uWC7ZTiRfdGjxTSu8uVp9amdwvagWAmhjfZLxC8p", + "account_public": + "xpub6DAUBtNvmSeaVXEYAt2VeunC8CgJCCSovx8UuYgQRhX5WaVLGA26wABdrMG2PHKUquGZM8RPxn2AXFvydpt7BBhi1GvS4RcNxcxUx3bMbBp", + "address": "0x6Bd5Ec51B87753cbe764a0C5E6af3B16084eFAA0" + }, + { + "account": + "xprv9zB7nNr2w56HKKdr4W9GLY8kVPrsZK3KJaqGPF2dmphqrQdvX2tpSEyhQcK2VRRtwnqq3Th3jX94eaifqdu4RmJiDtmSuLfvkSywLT8tZ9D", + "account_public": + "xpub6DAUBtNvmSeaXoiKAXgGhg5V3RhMxmmAfoksBdSFLAEpjCy54aD4z3JBFqzt9UnoJNmEEgct9oZJA78WgcrXRivNkxpRMco5TQqznajcoyU", + "address": "0xd556BfEd03B31758C05BCFb4C4ba83311F77778a" + }, + { + "account": + "xprv9zB7nNr2w56HPV5kxhhyKVYHjT7rGAYPm85ssfhBjJKsekA2C5DASsr8JD93qKST67RF7RDCoLGdvHa5DSVAdBUeevVBwt2HdCYdXEC2p25", + "account_public": + "xpub6DAUBtNvmSeabyAE4jEygdV2HUxLfdGF8M1Ug46oHdrrXYVAjcXQzgAc9TkJMKd5TZjRDeZDhs7F3JjoHRe1gejTJZ4gc3ifP43Fbcnb3Kt", + "address": "0xbC29602899eB13ad24Fb1a150F1831995A4c976a" + }, + { + "account": + "xprv9zB7nNr2w56HQ8e62W3nSXDW4NUpch6zf2NP53Z3L8oBiviP91z3peSgFZS9BLRvBUAw2ACDzfVVWxDvevSFVszCJ1gqokdhTyEUm3NEhHt", + "account_public": + "xpub6DAUBtNvmSeacciZ8XanofAEcQKK29pr2FHysRxetULAbj3XgZJJNSmA6rKqgAXV5se4wEiB5vgP39FUxanMRrEwBbAJKfe2txum1RU2agM", + "address": "0xC5C97376f8b88b860bd461bd2D62a5947D2fE4Fa" + }, + { + "account": + "xprv9zB7nNr2w56HSdKtAsRrv2eU3LpmqA8wP7LKxtuPVh6oYhMVMLm3u8BGhBLEk1NPN6wTjbmUNxTrZS4R6WLJshkferWbmGPA1VU5TzCkFse", + "account_public": + "xpub6DAUBtNvmSeaf7QMGtxsHAbCbNfGEcrnkLFvmHK142dnRVgdtt5JSvVkYTpodaEVTAbDsA92vw34FoRsnsn1PwpFpKcYoH8xXChUzq5oaXc", + "address": "0xe2f5dFA3DC901dFA67Ca0F8d0ECaabF5dC1E4Ccb" + } + ] + }, + { + "coin": "ONTOLOGY", + "seed": "b9c9118075e9730986b04e8a7b7f5d4ef07552429aacdd496d60eb9b4f016ad0", + "master": + "xprv9s21ZrQH143K46FCQnAT9jMbYvvap3UcJkZfaaxEfMHkbQDsy9FP1vnGEMESThfAuf1RGvJqmamoDtqgugUwQhvg9wUywWfA9pni54tbEwt", + "master_public": + "xpub661MyMwAqRbcGaKfWohTWsJL6xm5DWCTfyVGNyMrDgpjUCZ2WgZdZj6k5c4D2mwJWduUwKc7wq1yDEinKTt42MsqoTgFbuVG9yifNPSvKwf", + "coin_private": + "xprv9xc2DmjUr5xDm2RUERY9uJtzxb4DLUimwBtU3pn85m44oqPH9xnuiFWiyLSQYAkZmwgofa4P53W32syv8b2KCjWQDARQdAJAwk9eLAV4b2R", + "coin_public": + "xpub6BbNdHGNgTWWyWVwLT5AGSqjWcthjwSdJQp4rDBje6b3gdiRhW7AG3qCpc94yiLouw6zaLhTqKW5oVJ5qHifC7bnifBaujnA8S1xLY8b4x7", + "child": [ + { + "account": + "xprv9ygLDD4LmtFiyP3jssaBRwaZKBAwVjvkP5r1wCLm4TAYU57uNhRJDn5QPThExn3Mze94DY7ZWdgVB1QWfMFPouzbpA25r7Pxfuzj44UcPt2", + "account_public": + "xpub6CfgcibEcFp2Bs8Cyu7Bo5XHsD1RuCebkJmcjakNcnhXLsT3vEjYmaPtEichBk6Lv8twUFCx3ke2bbrSBcmBd5xpAr5ax748k26np4CYiPK", + "address": "Ac1upC4K5tofxU88x5a1uVzG4nFm6eQeTv" + }, + { + "account": + "xprv9ygLDD4LmtFizryH4bCRsC5f2NhdeCYERLHND1EB665pZ14gdL5diuRR9oifZ72u14gjmiyvBaxUmn3erK53HEVMa4wNRmyBM2KyJDmzyKq", + "account_public": + "xpub6CfgcibEcFp2DM3kAcjSEL2PaQY83fG5nZCy1PdneRcoRoPqAsPtGhju17Errxzw1r3op86j6PdoRWpeRkmwG78SZSBigUZNmBGhSkMkT3B", + "address": "AZFqkbt2TrY7dw7tT1vrEjV1EMJd35UDwo" + }, + { + "account": + "xprv9ygLDD4LmtFj36eJ3BE9cKgG7rCLUNzUEjExDDVitnmHz9katcLtB3u6KcMDj6oq791q6AGruKBuu558on8Y6TapScuaMA16sYrMQddT3EQ", + "account_public": + "xpub6CfgcibEcFp2Faim9Cm9yTczft2psqiKbxAZ1buLT8JGrx5jS9f8irDaAs5V3VxQxGAbKZHSsuKBM1gj4q4hKNM8BoXmhua9Ppzy7ubaLvF", + "address": "AXso8tR4Tq5bPf9wxRCbQdUoYn7PZQQN7W" + }, + { + "account": + "xprv9ygLDD4LmtFj59jdp4zBTHZDmE5F7wTMcaQnjT1woLw6VE9NR1VjMG2w28fEZaT8raipjXNXGHiwZfCcgDVrRe9JCxccon2T2fd8ENpcH2f", + "account_public": + "xpub6CfgcibEcFp2Hdp6v6XBpRVxKFujXQBCyoLPXqRZMgU5N2UWxYoyu4MQsNi1QjLZcieD9nSL3tBJHsjzd28DTZoNUBsE8xUuKoNyhtKuGE7", + "address": "ATWCTe3226ttMS3PsFViHeerKYWYVjixuc" + }, + { + "account": + "xprv9ygLDD4LmtFj8vTNiXcvqACpc9dyMZJjQetevs9Lv9CQDCQvaKy6e3yzvJrpkAefrP4dJ1X74wy9wttMRcdnVunignxFfcSJHvES2aGtEsh", + "account_public": + "xpub6CfgcibEcFp2MQXqpZ9wCJ9ZABUTm22amspFjFYxUUjP5zk57sHMBrJUma7QfGX7DMYYBYatqDSwhWuvPN8HeJYApzgReWLMvuAAYeJgFtE", + "address": "AKNNLPpsT7zuSJhpszNMy3tTee9rVnza6K" + } + ] + }, + { + "coin": "OSMOSIS", + "seed": "016d6ca33de419d57d946859b226df9db318e34069b99865893080c7f82b5cca", + "master": + "xprv9s21ZrQH143K3PTsDUenxcexSS23r8myi4ME9nynexoQpunXJ2oKw5ayZq8ThXdrTMvtJkCAT7gZiTLtton9LFayGHeF1v619SdmG4x8cNU", + "master_public": + "xpub661MyMwAqRbcFsYLKWBoKkbgzTrYFbVq5HGpxBPQDJLPhi7fqa7aUsuTR7EWDhc31shD4WWjVzp6Dr6KgYAzafUBgn5ZEtTDK1X1gMkLoWf", + "coin_private": + "xprv9wS6ZahUq1mMcP11wnn5QQpw3fk4pKiAEgtErctVxKMSiPqFSvccT7fzPBefSty1s4TsjikJvTcQ1gDVvs3CFkHbEm9Li8nG1tmN77LXxgL", + "coin_public": + "xpub6ARSy6ENfPKeps5V3pK5mYmfbhaZDnS1buoqf1J7WetRbCAPzTvrzuzUERbpqXn2kX5rNe3UABA3j68ZxdoMs5Z14BMupc73eTzfEopVkr6", + "child": [ + { + "account": + "xprv9yXGNFDpkRXyUpipPrPWQoLbvxUQF4JTZj5WqKxSwokNGmuKRsyuJQfXJ6D1gAo5KtfKNV9AxBKFJmqTm9Lfj8Phf3ykceGmiKgJQU5n8Dg", + "account_public": + "xpub6CWcmkkiao6GhJoHVsvWmwHLUzJteX2Jvx17diN4W9HM9aETyRJ9rCz19NL7mcE3U5kZUCcMbDgd9RQ6yqRYEzHxuehfh1tYEv4w9zc7QrN", + "address": "osmo1lqn22purjgz4qlapa8v4a3g5faxru2qpdvvqgw" + }, + { + "account": + "xprv9yXGNFDpkRXyVt2zC6mZHVykuyZ9pcg1dEGLvZQ2T5u4f9jNuv48c7yRRVyinVG9vvLQnkJhQFs7JMvkL8PHeLMrzd6Vo8msFw5CiYbu6fX", + "account_public": + "xpub6CWcmkkiao6GiN7TJ8JZedvVU1PeE5PrzTBwiwoe1RS3Xx4XTTNP9vHuGo2bYKE1kA58S6d4Ry2uzJC9GYqMYsjLpzuHu8ynfbyUgAUbxfW", + "address": "osmo1dsxj8eu530raatgka82sja7s432y9z8lxlpas9" + }, + { + "account": + "xprv9yXGNFDpkRXyYZbifLVYdHgZ2V2UTocqHzETTJmsdeUbd5pRgqBpYSCUxLr4fr8nZZHMrotVqCSsentp7e3wwtTKZ1vErCugSEq4aQkJ7n4", + "account_public": + "xpub6CWcmkkiao6Gm3gBmN2YzRdHaWrxsGLgfDA4FhBVBz1aVt9aENW56EWxoa7HtRTWpjmGDVy7naTFsgVWqXK5aFBTLUoxMjd2sz7hQshi49e", + "address": "osmo1zjjcr34v30m5f2s0var37fy4np8f9dssc6xlg2" + }, + { + "account": + "xprv9yXGNFDpkRXyd3decoAWKxFDmXTAe2yCTpbqcz9mqKbT3bSRxwx8yuRy2dkHYebgwAEgjA6m2jSXWBBZrUhqrts9VoYWCwWnP1dPZfY6qSQ", + "account_public": + "xpub6CWcmkkiao6GqXi7iphWh6BxKZHf3Vh3q3XSRNZPPf8RvPmaWVGPXhkSsvCABbeayMdCps1HZDvKGkvN7aKfCfRNKCKMQYBhcMm34ncWHuj", + "address": "osmo1v4amas2qltv0tctgd5taqatrgdtflhut53z52t" + }, + { + "account": + "xprv9yXGNFDpkRXydfsx82zuLGPbuaUbdXQA19hZsTNFdunhZjS8P1BrsUkoZBFHW1HakTLbV7AqPgpsQB1daYgSZRjikmadoytBdGJ6NmWPtEc", + "account_public": + "xpub6CWcmkkiao6Gr9xRE4XuhQLLTcK62z81NNdAfqmsCFKgSXmGvYW7RH5HQVEyf21rxPm3HKMRdTiZA7AzLJLEdDMoCcw8kikz4wkejkHMQLp", + "address": "osmo1v7zvh3cx3734thxyaxtp2gmw5qsxsh5qd0st5a" + } + ] + }, + { + "coin": "PI_NETWORK", + "seed": "ab5b733f8424b6e46c4f7fa128cfa56ac310b657ddf2acc06df33c7e611c78f1", + "master": + "xprv9s21ZrQH143K3uXn3tfjHwMwCkGjPfLDccS6PSjQVD25uuE8CRrSdzD9DjZviK4zdR763PtcL1g4Nzs4XNHtw9P86KEAcib4uQASB2GwoWu", + "master_public": + "xpub661MyMwAqRbcGPcF9vCjf5Jfkn7Do844yqMhBq923YZ4nhZGjyAhBnXd4wN9SFvskx6GMoLTCDBLiAUjmTjAyXn5ky3h2Mw51mQ9yF1KEwW", + "coin_private": + "xprv9wUpWbFCK8KkCkP5xmcBik3WuAdw3kVuj5YcPwQProSE8m2soi4Jn14Vq8962PAet6zt5zJVJeXrtrDLxFzbgm23UJHJhqU8wdbHA8ekN5p", + "coin_public": + "xpub6AUAv6n69Vt3RETZ4o9C5szFTCURTDDm6JUDCKp1R8yD1ZN2MFNZKoNygKYz2Wgn3ujXg4C4cmrTpKnnPAz3ZnuvDWTRCPCYCvZakWKpt4Q", + "child": [ + { + "account": + "xprv9yj8quGrtk2Wzq4yfE4SamXJEzZb1M6eyzqQUdJ6MfS4uU1FKyiyQndGX5Rz35EDaAcxkMt2YH9n2nf1B9NSrswhjdnp188UmHMjMp6ZWQq", + "account_public": + "xpub6CiVFQokj7apDK9SmFbSwuU2o2Q5QopWMDm1H1hhuzy3nGLPsX3DxawkNFYEUXBUfbnueioXB9pY1odYykEeM7dPxeVKN3DCzTjVekpUxCq", + "address": "GBKWMWBSHLCIS5AC2YG45KBS2NTTS5TMM7ZCD534ITI4TG6IY6UAOM3J" + }, + { + "account": + "xprv9yj8quGrtk2X2qbrzcWN8kKJNVTvw3C6ThQGP2zjUrwV4Z3cgwMyNyJuPigmNLW6n8JMiEY9gzcPsnsykYngm6YVV9xDyHLww6geGNySCTv", + "account_public": + "xpub6CiVFQokj7apFKgL6e3NVtG2vXJRLVuwpvKsBRQM3CUTwMNmEUgDvmdPEvrAjQBBupu5HWSLxcw1X2LxuXUa87q1bkXSvr3FGbEDrBmb4oN", + "address": "GD64KUZVV4BYZXSBUT3NSFBKBXM43IF7LTUDBT3AUQNXAVDVA45QTFS3" + }, + { + "account": + "xprv9yj8quGrtk2X6NUaL7JT6N7YZG52hdJMLN6TnMbuM61osAvkbpT8ZNHm9a3MCJdDVgcwCjWs4JzJvoZAp3EJGVGHRt97Z41cjHFNzuS4WNJ", + "account_public": + "xpub6CiVFQokj7apJrZ3S8qTTW4H7HuX762Chb24ak1WuRYnjyFu9MmP7AcEzn7kkspyQpzXeZmQkgPWhfCWhRXoYwLqcNDFoUhRGPfX5Sgn1rt", + "address": "GCPFRPZUK4G6365VWXH55NVG3CY64RS7SWDC2JJVM4DVZDBLIK5XVASR" + }, + { + "account": + "xprv9yj8quGrtk2X7NHLGERN4o1uyAsW4o8fHxZxB4Gnygk8wc7fUzphCSzUzpKQsPoKndogah34g7iFUL5PZBDvTipitcytc891GZs1MStzoUw", + "account_public": + "xpub6CiVFQokj7apKrMoNFxNRvxeXChzUFrWfBVYySgQY2H7pQSp2Y8wkFJxr2HSvTTVsMo81Qs6LBjpyntJtePhJ7i8FRHWHSaKEmMzcZ6xAj9", + "address": "GCIX5KBGEQTHX2G7S3VXIRY5MNOLFEAKJEHA3LHXKXIXUM7ZZYR3D6WJ" + }, + { + "account": + "xprv9yj8quGrtk2XA2rg4ig67aMJwh4q4gas3AEQ1C3r96ZYeNbVpqE6RaALci8kGvjxAKqDVvsYFPE54oPTwpfWuHzEQe5535G6xzm3uziRbUv", + "account_public": + "xpub6CiVFQokj7apNWw9AkD6UiJ3ViuKU9JiQP9zoaTThS6XXAveNNYLyNUpTuE9N271agM7VoNcnLnaNSr5x8jp9y8j2uummNkQJnV2WfwGDBK", + "address": "GA5IPHVFLZX6ZNWDHZQPXBEBZKBBX73PSYEZB35E22SPWI6NXCI7TXIK" + } + ] + }, + { + "coin": "POLKADOT_ED25519_SLIP", + "seed": "a541f35edc64b9b9bba12f3317c77ee823108abe1747cd8eb46336960c6587f7", + "master": + "xprv9s21ZrQH143K4Tg3Ugn3WPSMkScrY2spg5nDBVddsXrigeVwfd6gr9iz6mxqyGLnizb4X15C6eMkUa6kF7UYRoKAW69yqHG8UE2Hpih1wHs", + "master_public": + "xpub661MyMwAqRbcGwkWaiK3sXP6JUTLwVbg3Jhoyt3FRsPhZSq6DAQwPx3TwzW7qskBejUn3uyd5WDHjKsz5RfYTEDwAEsyYGy9WxdzDmR5CwC", + "coin_private": + "xprv9xPgAuwEFh7SbHX4m8eUeGDowyPnf1CYwjpggtwRz7XrMJLL3TeC5cEFkR1RPJjd3BRRt6qf3pfmsGDf2AUy8NsEpMxz3bJmV53V9p1k9U5", + "coin_public": + "xpub6BP2aRU864fjombXsABV1QAYW1EH4TvQJxkHVHM3YT4qE6fUazxSdQYjbcD4UmY6SouRd4aUnjFWWfD3NGmJdkjyjKiKN6CKQQ8jicTj2BT", + "child": [ + { + "account": + "xprv9yA7W8NAB8MEYFdPWWJABxSVyVFK3xZ8RFzpWoYoQ2MtNu9jCkzqdJT1wej76kwVRXb4WLz8xyF6xDPtUUmsy1LWGsHLqPDXi1GuhKEcRVo", + "account_public": + "xpub6C9Tudu41VuXkjhrcXqAZ6PEXX5oTRGynUvRKBxQxMtsFhUskJK6B6mVnr4diDKjQCTuWKz1opeFF7NrtAhf1c3xGQs6UzhMbTVtyiwEESM", + "address": "15jtEjLB7ktrficAmtE2PyrGT7NachHDTw5JeGpvzTxVkcKU" + }, + { + "account": + "xprv9yA7W8NAB8MEapAbHG4NtWWgFedqgUDofWyZwXLr8ibeqdFDFvUPcNCTpMpve24XQPC7FgZyok3r6sVyC4WffVRHR7BRMe1sUF1Pz2Dd2v1", + "account_public": + "xpub6C9Tudu41VuXoJF4PHbPFeTQogUL5vwf2juAjukTh48diRaMoTneAAWwfZDV9BkQP6F85Cf2ZPSTEwKamNJ6tG9BDTKJTiMgrpS7pJKnQuL", + "address": "12cBZiytGbWnTaTponJAEUpk3dW9UttZtqKxjBB2KqgHXiJN" + }, + { + "account": + "xprv9yA7W8NAB8MEdLeiA9WUr8zTfPC5GJDUKAKp8cVmsnG8qc729BURNPJDoAFpZAoEFRNrNt5KPbtDSxjcmaUuEd6n6YdT5C4orGN2wp3K9nH", + "account_public": + "xpub6C9Tudu41VuXqpjBGB3VDGwCDR2ZfkwKgPFQvzuPS7o7iQSAginfvBcheNHGcZyQzQd4kfHffbYU7YZrjVRGs1WH2haAPxHJBWzkUGD9XtP", + "address": "14v4ixzFsUaKnPdQvpKJC7ZBe3HGsiqJBt3SEW2mV1M9M7Fv" + }, + { + "account": + "xprv9yA7W8NAB8MEgDE2n11Xi4wgs9xUTN89cdbDS9fbye6vmX5UBmgp2mj5XjzN93HXs7Nz2G9YxFY8tSPxG3uSxh3HAWuT5q2btt2NhLeQzYe", + "account_public": + "xpub6C9Tudu41VuXthJVt2YY5CtRRBnxrpqzyrWpEY5DXydueKQcjK14aa3ZNvbjvPbto1dJupk3uN9srCJVc9EhtRYvhPjTuuuJ5zJXEtd79am", + "address": "12ty5G49pFW2MnGPc128RVDmVWg5LYRYkuk5kojY7qK2jCwp" + }, + { + "account": + "xprv9yA7W8NAB8MEizQzR9XTgRbQtoUmxkdLWoFdc3U9QUMTav8x6wfW53MQdHYj3c6wZ48V3HjJqi8KYY5E2tPJ3BZtw6PfKBe7dcRVAXWJEG4", + "account_public": + "xpub6C9Tudu41VuXwUVTXB4U3ZY9SqKGNDMBt2BEQRskxotSTiU6eUykcqftUUphRUTFeWVw9hSe2dCEvzA9iC2qGB7DRwiyp9N6rJJMCUyzc7N", + "address": "15uBoNatiptfs9PZqHN63h6btEicQ7MdsJEh89rST3JD43i2" + } + ] + }, + { + "coin": "POLYGON", + "seed": "4d85603d1fd29377b8d64c9741ce9555adfeaf199d2945848a838ad8548f304e", + "master": + "xprv9s21ZrQH143K2nL1jbfByzx55yMkHsjqT4D7gKQumsi4no86qVbSyeF1g1HsinKHnNqJvuf2oXvpULpe62QhLuLuaxeYX5ESEVpsp7WXiQV", + "master_public": + "xpub661MyMwAqRbcFGQUqdCCM8toe1CEhLTgpH8iUhpXLDF3fbTFP2uhXSZVXHTC6gL29XP9JFWTe8VkS5VA2x3C5hPSSF7rwwAwWVRAvQxeTMm", + "coin_private": + "xprv9wxPiucWinsgA3WEfxU9STP9atHos3L1NBKdUVzYiuBCaCCrLexNn6BpSNLU2KH9mY3UxPXC84KoKxpVrVp4f4cfgtJABd1pnQsvUMkTgcS", + "coin_public": + "xpub6Awk8R9QZARyNXahmz19obKt8v8JGW3rjQFEGtQAHEiBSzXztCGdKtWJHegaWZpZc9wP7HsBXw9Se6cZ8bLuNehUpr21YTKbvz7KYxoB8s3", + "child": [ + { + "account": + "xprv9yoZGggWU1vQ43DdRSWkXFyz5dSXaS2RRPoGKLZ8UPb4bYaZVD9ULnHRdXVoFdPZEMKjr2MqxcfuXc95jzeaU9WuAutNB9g5HAJqpYWTAkm", + "account_public": + "xpub6CnugCDQJPUhGXJ6XU3ktPvidfH1ytkGncis7ixk2j83ULui2kTitabuUpg7HjAjJBYHuUFXJY4hDQRepYf4SQvirRpwW74bVYCEtYoRPpD", + "address": "0x83fDa59E4C261bfa7f4534b634824cDd056ddC12" + }, + { + "account": + "xprv9yoZGggWU1vQ5HYqmryCqs3CuE5N5DQnpzVSyEWXYcvXcPEbJgUyHGnpbjg8uzKXjnJqqmoM7QTHsLm8cWGRbh2QFATwA7B56oVujnqnA74", + "account_public": + "xpub6CnugCDQJPUhHmdJstWDCzywTFurUg8eCDR3mcv96xTWVBZjrDoDq57JT15H2qjHGhRXvRsLK5cRipHbvjXcb6ua1ba5bFWbiYK9bZvj67c", + "address": "0xdf2Eeb83394944C92B7e64794893c7541ABA15B5" + }, + { + "account": + "xprv9yoZGggWU1vQ9eM8qZBuZsKgLi5QzRNTMJwJe6qCRFn6jSzC2ZYDzR4zFwuj2kv5JEF7qvL2NPhmJ3Lc7pDSyYsoLQMLfzaFJ1g5sFSww2M", + "account_public": + "xpub6CnugCDQJPUhN8Rbwaiuw1GQtjuuPt6JiXruSVEoybK5cFKLa6rUYDPU7G2cM1JcLvVxeeVPPKDCj3GBxAnz9cc3PxADg5RQARHLXihv2rY", + "address": "0x3A20E6ac00887Ec14b5E241195CCD931bA445824" + }, + { + "account": + "xprv9yoZGggWU1vQCTJhbnrJhNh4Qwdi2UM8Ws3ycrfa3DVZjnZULCXry7rcYTzHJTM4A6kcqWwiXCDa1xBS9VWUSY41cBPnAGphLRGeUXQyHXL", + "account_public": + "xpub6CnugCDQJPUhQwPAhpPK4WdnxyUCRw4yt5yaRF5BbZ2Ycatcsjr7WvB6Pjm1DehM12ZHVD3jywnBnPPrGSKErSDHZowcSQh66i6WSmZnkSN", + "address": "0x468504D5e38030b9F9c4d1d9E952ab4DF50065e0" + }, + { + "account": + "xprv9yoZGggWU1vQEfyR7mU5VwSf586zEEAwhkSKF45ERLMN7t7qMMKubDJsS9Woj8pc561bjtfcaTEXdeodbJm35cusEPCUu6M1LrmJWXjCMTy", + "account_public": + "xpub6CnugCDQJPUhTA3tDo15s5PPd9wUdgto4yMv3SUqyftLzgSytteA91dMHRsHtD5AE5p4B2QUeN4hx2wiSUWomPL6rGcGELcSmwnq1cBxCrd", + "address": "0xCe64228AB146658CB29f282d080beA6D216c609a" + } + ] + }, + { + "coin": "RIPPLE", + "seed": "8f32e6a5122da3a48c2a32d8328b576505fad481755cdc567a1afd312e0e739b", + "master": + "xprv9s21ZrQH143K3PsK56GP1ydbf6xaiydKttdCiowrqCbDFaYCuHBCSHqi666ejvkGVghBiJP9xAMYxaWu8BCzM8xCihAEiTVhdKSEZktECDZ", + "master_public": + "xpub661MyMwAqRbcFswnB7oPP7aLD8o58SMBG7YoXCMUPY8C8NsMSpVSz6ABwL5UmSmueRduaqgtVBkykB5vCmKkofzatbAEjNzReaBHMEw9zAv", + "coin_private": + "xprv9wk9RvEEcMWtdGdjDbZ9ni2EJWGCaTwzGEpJT5i1hstPxWA8CRLDTTtUL7eSphmmaaeJuJqRejqpXQc1NqtNfhmLc6hprowmC8siTFQsDux", + "coin_public": + "xpub6AjVqRm8Sj5BqkiCKd6A9qxxrY6gyvfqdTjuFU7dGDRNqJVGjxeU1GCxBPXeoGj9EDfomK9ivAoUexP9hfzArTNZbMSJGjzHyroxPRh68DH", + "child": [ + { + "account": + "xprv9ygNbmUBupwCQ67mB1SsPW8gqwqx4gLWcbXizTuDnBYrNyKpcyW9o5QTH73XJauNkvGq4XTkYmp6FVWMDvSE2FmAfW4HuQKdeQ8AMwyDegd", + "account_public": + "xpub6Cfj1H15kCVVcaCEH2yske5RPygSU94MypTKnrJqLX5qFmeyAWpQLsiw8NNZXfcxC78KfUmYX6eMe7LB5p1sdBHPjDAsfjeTjJZsaunFoSK", + "address": "rJVk15y98mizKfy4egabdF6Y2JrVkFr2vy" + }, + { + "account": + "xprv9ygNbmUBupwCTsFdWyTJENr1BR6KyoCGmYF6WWznTasfqjSRDThMd7xrdxDqbgLivdioDEsZTaqqEUXUxioCjY8xShvF7SmNULdfsMPpPqw", + "account_public": + "xpub6Cfj1H15kCVVgML6czzJbWnjjSvpPFv88mAhJuQQ1vQeiXmZm11cAvHLVCbjuyECFBJRUbx9SpuqyuPxsz7Gof7719YT9zjoMCPi7oW6mZ9", + "address": "rJa7x1fyQiPFKdvcknwdVhY3pe7C8aTpUR" + }, + { + "account": + "xprv9ygNbmUBupwCUaWYgZ2SZKNvzitL9sAbXPjERmqsebViPNwm8AYXAkZPKP5y82KgD7AFS1RCqNZ9Qxf2VGhdN6WpCvi4qQqGHK91PaVCogn", + "account_public": + "xpub6Cfj1H15kCVVh4b1naZSvTKfYkipZKtStceqEAFVCw2hGBGufhrmiYssAfSz4GQeHfAonHL6qDb883Y9DuGXq74QGkNKY9FkNFJ8F6Yt4qA", + "address": "rU1tZAGyVNpd2PZMid7YUaGcrEnhNzVCtV" + }, + { + "account": + "xprv9ygNbmUBupwCXuBxEbSJMKTw7G5R2kA8AA44AtjKhJUo3qC3XN9Gs5QWgUSYHytb415wtJ1hamowZAnKw4JjRShFRC2uWrzDXdvHHWXpJvN", + "account_public": + "xpub6Cfj1H15kCVVkPGRLcyJiTQffHuuSCsyXNyeyH8wFe1mvdXC4uTXQsizXjJxYuLt7NHLXq8SHbKsnxQfcJyCmLrq1pzXEqazG4vpXj7gRD5", + "address": "rfTAfetQ8p2kQpfBSwLynyMjQGvV6m9oL8" + }, + { + "account": + "xprv9ygNbmUBupwCbgtJtotMLYuN1AKkD1JwZbgkJZH5oLRjg8EdcvTWJqtW1wB2YKtnEGVf5dL3Jfe9SfLnoqRQ8vmny2QkYg8GMFmdRRvG4ed", + "account_public": + "xpub6Cfj1H15kCVVpAxmzqRMhgr6ZCAEcU2nvpcM6wghMfxiYvZnATmkreCysF6WnkvoBsQ65AHfFgFxDAenAZvuE64TJuQ5P8o7AMRactmQmUL", + "address": "r9vBfMicEg4RSY9GZH9tkUHUBXbMPb3s3a" + } + ] + }, + { + "coin": "SECRET_NETWORK_OLD", + "seed": "fe59933947ffa95436e1f39c27b5421ac9027c8f6b3a0b8f556c768142001bb5", + "master": + "xprv9s21ZrQH143K38JXPGzqaDaE4FZiKw3sYFEUMV9zeoGPtFDpgBACpMdjqY6hqJPNw9JN9m1KZ5fmUds26HeqaLZPaB4Tamqj2PWjst6dXc6", + "master_public": + "xpub661MyMwAqRbcFcNzVJXqwMWxcHQCjPmiuUA59sZcD8oNm3YyDiUTN9xDgnS29tudGRic4YZkWbc74i1m5sR8XVCbP2JHp2q5svsdqS2wTUk", + "coin_private": + "xprv9xQ152xdV7XajBJyrpQ4pBa8qYKnotfTnazvE7J9NwmXq1f5NR22gAff9zfbMcdtD1VYa5AXw7RRxLdfNW4S9zbPJyMJZhHSDaCh3LvJaHy", + "coin_public": + "xpub6BPMUYVXKV5swfPSxqw5BKWsPaAHDMPK9ovX2VhkwHJWhozDuxLHDxz91J5XGVTNvPQxEVkS8CMp4yTgKeiQNHwnBkpBt84TkstoitHsQDL", + "child": [ + { + "account": + "xprv9xjvfxm9SbxBadqzp74Evhn17Fsh7L161FP1cWXTvXTvoXiUDhWsBKjv6Tx5jBmQZk4ksia3gnKxoaGRi1mXYBuGygxwYmcfkTD2HiWWWdv", + "account_public": + "xpub6BjH5UJ3GyWUo7vTv8bFHqijfHiBWniwNUJcQtw5UrzugL3cmEq7j84Pwi5uMi2vwkNP9kPQ6HrQEPpxS2sYU3pDmZJkkdTDTQbSnq467hA", + "address": "secret1y2cfdlcd9twmwz2vjkm5l3up0t8fa3g2qczwd6" + }, + { + "account": + "xprv9xjvfxm9SbxBe1F3P7yq2ynH2qUvajNEBpZ36UuZiuXUPjp4RVF51SLTykphpXk5X7eRx8d9EuJ3xzYncTJM7Eq1bAnLdXtbG7fFsvzK37Y", + "account_public": + "xpub6BjH5UJ3GyWUrVKWV9WqQ7j1asKQzC65Z3UdtsKBHF4TGY9Cy2ZKZEewpzvz3RhahQMNfafBt7wojpS428yQrtpeUUo5pcLnkxvGWPoUnZL", + "address": "secret1h352fjdqv6mv7sq4qggzelxdvpwu3wfqlqsmym" + }, + { + "account": + "xprv9xjvfxm9SbxBgfUqoittMk1hKjpDJ29BuZ4bhUgon35KBmiociXRWhBGhgTm2o4rceFH2wg8t9iMDcP13DXNPfcs2mM3gTeP7Lam54esGQf", + "account_public": + "xpub6BjH5UJ3GyWUu9ZJukRtisxRsmehhUs3GmzCVs6RLNcJ4a3xAFqg4VVkYvWn13Ngp4oegctJcGdjfCoAEbXbbSRanuRJfT4yY4W5ojdkFNE", + "address": "secret1mpmrytlkvtcf5h6rr95mu5annslkv6n9e0g5dc" + }, + { + "account": + "xprv9xjvfxm9SbxBi8BXdqsNKRVEw5eRTULhuTpcKNTGhrCcUkdUn2afNGSJRx9GXE3B4S3SfCNvW5e9B5sogqfmcdud59X4uYrT9cgqo4G97Mu", + "account_public": + "xpub6BjH5UJ3GyWUvcFzjsQNgZRyV7Uurw4ZGgkD7krtGBjbMYxdKZtuv4knHE6gLC9XC2GJ2BgUbsU2t4UBwAYC16wEMWEx8JZsJwzZyKbPFgw", + "address": "secret1gy0mlktg4jju0nr8rwxa3at3h6cy2zc59gpvhn" + }, + { + "account": + "xprv9xjvfxm9SbxBmtAzvG5A8zbASyZh4y8Xqp2QmoQoYcMZAnthckWWwKhsBVKbCGd3VXeESPRhD2o7zShiYHrGN5MCfxjAaLwB1RhAGruwqBp", + "account_public": + "xpub6BjH5UJ3GyWUzNFU2HcAW8Xu11QBURrPD2x1aBpR6wtY3bDrAHpmV82M2kWrm38XYm6esmF2FgVKmAt4NvryKkP6vowsjC5PSxSZaQPcKwC", + "address": "secret1kj6cm40aw0sdhfntuulfs7m35a0ad3ssa5d0ux" + } + ] + }, + { + "coin": "SECRET_NETWORK_NEW", + "seed": "e1e0db226718f18cdfb7ca9f189330fce659ecc18fc6ec5a060a29e37c70e6be", + "master": + "xprv9s21ZrQH143K2uoDqofdZ8nzrJZwiVG7qQugcuA1bEbCCH9bMibZGEMSNmAWBpukAt2PZaw2Qqm9knuq27CsiyqfNWSgHrkGfKfR8tcNgzK", + "master_public": + "xpub661MyMwAqRbcFPsgwqCdvGjjQLQS7wyyCdqHRHZd9a8B55UjuFuop2fvE4psTp96JTsh3jG9oW3AT3WCKWD7XF2mhKL8oCK1pXacytZn6iR", + "coin_private": + "xprv9xB8kdhx5QEqcNSt2DcwsyRnHDjW2TWpRgse8HKdKjZdGcsBiMzHMkVfFNevVpkZjsWNJ1ffttPYJiMNA3WAcaKJozHrDXS2LNW2z2jxR7U", + "coin_public": + "xpub6BAVA9Equmo8prXM8F9xF7NWqFZzRvEfnuoEvfjEt56c9RCLFuJXuYp96eLgFh9ZzkqArKC2SYG7qxhfkfFPpvvsA5FtE5JZ9pvbwEsMJdJ", + "child": [ + { + "account": + "xprv9y9pYADR48xdnzxiQP8Tr5NsgvyTKLFzNvD3kCNbZ2XW3MmwTBKz5F43GcLTsnECf8i7UpHvugUxwQqdL6ALSxJSHBa69FMXtxQb7AAhZ1p", + "account_public": + "xpub6C9AwfkJtWWw1V3BWQfUDDKcExowinyqk98eYanD7N4UvA75zieEd3NX7uaamakvA6ZJeM83Z9sEnYdBBt6wCmuUW7fx3G8pWobrDQeKnGA", + "address": "secret14ux9x7f85ul4c4e4gygzq8dapu97yds87emmlp" + }, + { + "account": + "xprv9y9pYADR48xdphmmXjiQdduQDDm6QS2uhENia66QKiEXPPPmgHdGB5xnfj7AkBFrb3a5Y3DeETr9ecZxJw9YkkAoQp2Zk6jjVNzwgV7rrGN", + "account_public": + "xpub6C9AwfkJtWWw3BrEdmFQzmr8mFbaotkm4TJKNUW1t3mWGBivDpwWitHGWzRu3XiXkZCA7FeGyuVk5g4xR1v4KoybhpShB55t9Sorh9kFZXz", + "address": "secret1gk9kldlnf4lxy0aectlvr9dmw85wnr7tsajh2z" + }, + { + "account": + "xprv9y9pYADR48xdsi8A7SwSPVm9xVcVPSrBQDSeg8GsDbwcGSxyGKxuLjZZdMJcPicSaJf7kZrcrnGSTuwCEnacWpkRT4EuHDh8sKabaESSe4i", + "account_public": + "xpub6C9AwfkJtWWw6CCdDUUSkdhtWXSynua2mSNFUWgUmwUb9FJ7osH9tXt3Uc27JHEdex2ALPdLzdirCoi8N89Rgom9Ua1FDpkGFcAUHQa9tff", + "address": "secret1fh9mvza2dhs0jmnw8j00zmq5rpz4s3a0xppsfa" + }, + { + "account": + "xprv9y9pYADR48xduZMx9vf4pkqCtFkd1pffKiXBzBLiSY3WYjPyQZ8js5sZvT7d7M9zKaoC8hnq7oV2Xc385wdKe2hejqFjr2bq5EDWhgafuUi", + "account_public": + "xpub6C9AwfkJtWWw83SRFxC5BtmwSHb7RHPWgwSnnZkKzsaVRXj7x6SzQtC3mm4WSBQDYqKCuRFoS1pucsKgVe1n6tgVFRbhBmqDCxPhow2BsLN", + "address": "secret1m8avffeujev9dwx96k23qrzswllf4x0dga6j0k" + }, + { + "account": + "xprv9y9pYADR48xdwfprN4TSKSsGiEoqA26QpqeBNpD2683PE3b2mRsEx7VKLpDninruS8sicWmqK1AUsVWp93MCUcCVz6XAk3MxBMpkA9XW519", + "account_public": + "xpub6C9AwfkJtWWwA9uKU5zSgap1GGeKZUpGC4ZnBCcdeTaN6qvBJyBVVuooC81k2318SmAr23Tm5DCeo5DyBuZEYmt1ZuUWwURS1192KffPdkt", + "address": "secret1ffuaysznamhef7cfdln3l4y6fppjuwmkp7dlx4" + } + ] + }, + { + "coin": "SOLANA", + "seed": "be2cdbf79bf3f12ee62961b9d1c1a6dc6b5c903aada231012ac878cca1ca189d", + "master": + "xprv9s21ZrQH143K3Gup1FZNVf4aYKUELbDDgdY46WwmFQLE2vEJeHtr43bacnJbz31YpznA2eXUK4qPixmCm3MA1uCNGXjSZx3617mdvXTtwHi", + "master_public": + "xpub661MyMwAqRbcFkzH7H6Nro1K6MJik3w53rTetuMNojsCuiZTBqD6bqv4TxNpwXM7BPZnhaMH5dgsLB9jiP951ARdiJgDYEQ9P7pstARBWEb", + "coin_private": + "xprv9wXSp8V9nZNP3JiSmw1GnWNCKhiTMfh5tKqxGUfV4empFJnfC8xiFoH9yU2TWVaRvLTvfZhugL6q7qbjtS9PFQnPmfe6BFdSsz8wBCYUKki", + "coin_public": + "xpub6AWoDe23cvvgFnnusxYH9eJvsjYwm8QwFYmZ4s56czJo877ojgGxobbdpeDCQ82CVwVqBEaVv8G7nEmZubwx93VcJHsxixFmNKG3qG1o2PG", + "child": [ + { + "account": + "xprv9z5CxT3fEnwTxCCyRg1FyXhpHUDUpiUctYm3Rc1SxQyTWX1p97cdyLbuPBkNc7mP1KZK71riHhXpVHvGWXf9aREEwm3GTuwwLhW8SEEcdEf", + "account_public": + "xpub6D4ZMxaZ5AVmAgHSXhYGLfeYqW3yEBCUFmgeDzR4WkWSPKLxgevtX8vPEPRwLhBzv7oDBJEgbAmokJ4rkJdJsSsN42iz8ARKkKer4yxexQ4", + "address": "GybA2k1jMUdcur9moyXimCpHsJvr8pJreaLwUfXd67nA" + }, + { + "account": + "xprv9z5CxT3fEnwTyPppmLTZQxRw3ZCwM29mTmnSAok6jnuM9uJZRsNWKAUjdfnFgBVTgkiSoxghZpCTzZeM8t5P3H9AQ4vvp3jQDXxpHgH7CNW", + "account_public": + "xpub6D4ZMxaZ5AVmBsuHsMzZn6Nfbb3RkUscpzi2yC9iJ8SL2hdhyQgkrxoDUsZpNoBZJshePFnQ51rDZCv5ZeTyyoV1Ws6TSubaZR4at54wzNo", + "address": "E9PSMxKLEAksRDGMyQUdN44yVrsGiWg2G3G26M13sQop" + }, + { + "account": + "xprv9z5CxT3fEnwU3pRDyZ36BHbqCkdKu22CJEezAP5TPL36N4YCdXcFcGhXznEJ4xSHicB657JN5MobHxZG3y3vetVm75e43r3fk5u8LXvWa55", + "account_public": + "xpub6D4ZMxaZ5AVmGJVh5aa6YRYZknTpJUk3fTaaxmV4wfa5ErsMB4vWA521qxGxY4U9DNYryd7rWzRKh5AE59NngRoPYNRrb6KSJjpbTZvtwDX", + "address": "3VAbJM5e3VzqER9h43By3uzGH4AVZtdQsCsMQPeotbKH" + }, + { + "account": + "xprv9z5CxT3fEnwU6k6ujif1rUWHYS8YaHuvUr6KWWebTGeiuCLRgNRKaor8Cxh4283Wv37Dqb1JGBAoyYkNCZ3DGb4HqyBx1v5PCUUeHHZ1BHr", + "account_public": + "xpub6D4ZMxaZ5AVmKEBNqkC2DcT26Ty2ykdmr51vJu4D1cBhmzfaDuja8cAc49jjNeeA2imMyaKRhFY7tJfy1MCWH7kgrqG6XDq8zdxtoStDEad", + "address": "4yruwsB78XF3ArTkVgUyGiqGQegVNKp1Jfa1aKQ3i2Jw" + }, + { + "account": + "xprv9z5CxT3fEnwU9GSwjCftizth8FjmWUcDXdHv6cT6ZNmtGUk18KABk4JBiiAfwhDKyuTvi4WN5FpBXHetzmb8aPPkucjTqdhXgwoj5wabChG", + "account_public": + "xpub6D4ZMxaZ5AVmMkXQqECu68qRgHaFuwL4trDWtzri7iJs9H59frUSHrcfZtXEjP9CEbhPfJPbiDE5NkXBsqeRFbMPv9YP1xTqFzqj1i4achG", + "address": "45L49VhncarWwy1P2UkexVZJp3nj7p2TVpuJL1LsiAYt" + } + ] + }, + { + "coin": "STELLAR", + "seed": "18c524c2c967ec22fcfde8b772aba811924c4aac252604c98ae107f647b3283e", + "master": + "xprv9s21ZrQH143K2grnkVfxhkGP2xSzZqG2AsyjqqCwo1XBQKpquiYwNRmZPk6UQfmi5iJZXD9jpND4srzCkiBaxQuyBdeHCgGhLVgnxheaWkR", + "master_public": + "xpub661MyMwAqRbcFAwFrXCy4tD7azHUyHysY6uLeDcZMM4AH89zTFsBvE63EvR4KxQpggeT8GEJVfkv5KxyZggVWp8afhPni18eJ4Caf7FB9vA", + "coin_private": + "xprv9vsiLiX9rDNQ9USbk3mkyqNfGZ84L46wFWmb5yMNb8yGS5QEgWtPfA6LAKZZiK5CEoJfqK32RLTPXkNvC359prbnSbxbEN3nFcdNQwP7eN7", + "coin_public": + "xpub69s4kE43gavhMxX4r5JmLyKPpaxYjWpncjhBtMkz9UWFJsjPE4CeCxQp1VFEMzLc9KjtBKaD1KyaeXceFMMZyjn9TzatTwLH6sRRezQhuPw", + "child": [ + { + "account": + "xprv9yfo6MT5oYtrEAESGt2SKmpRkf9jqpVr557FDEyd76pwv4iXcoT1WcbRxHXidRwe44B5DmMUC7NEuwKJkVP5QnezWQqQPA4ANcjRgAM5MPg", + "account_public": + "xpub6Cf9VryydvT9SeJuNuZSgumAJgzEFHDhSJ2r1dPEfSMvns3gALmG4QuuoUqHfHbW7SNx8bZNsC983Ah8SDedDEprm6gSkuiEwyTN3SBZs9G", + "address": "GCKVUFI2WEUEQSZ4FK2OXFX5SPFITSU36WPGN3GUUAGHUDJGLDWY3UIX" + }, + { + "account": + "xprv9yfo6MT5oYtrGnNiXgRpK8rYFTZ1N71Hj4BEYfLxk3tb1A3Z78oNg1MR93m9fn5tQ3GUdinL7us8qyKYUKHZFdVCDaexmQv2aWwDpMdPuLP", + "account_public": + "xpub6Cf9VryydvT9VGTBdhxpgGoGoVPVmZj96H6qM3kaJPRZsxNheg7dDoftzG9rqzp22thaRiX1ZZok98i65aeiTgweddfLypz2LeTK5Bodzmp", + "address": "GD6S6CPZ5ZIGL4S7ZUR5N67AKA5JK7JGTYWPEWSCZEXXMX2KVL72POI2" + }, + { + "account": + "xprv9yfo6MT5oYtrJvuHr8opkyL7wXesWRD3GAjkKUS1nEPbKxtwkcVaGz2J7o3rrJeU7fdpRC6hQExYY37PsPdRRHCqTKkionKV3iNywHYnaNz", + "account_public": + "xpub6Cf9VryydvT9XQykxALq87GrVZVMusvtdPfM7rqdLZvaCmE6J9oppnLmxyr4G4aytefMaT4vWYaWRub8mg4bGo3gKhPtTNeU3RPe6qgyiAg", + "address": "GB6ZZ2VOWITNIEPSZD3RJY6PGHLW6ZSADDIUS3V4IWDZWXUM3UHQO2YD" + }, + { + "account": + "xprv9yfo6MT5oYtrLjhHyMJuxDsC4BVm1BiQd65gTfZzjC5AYd4HEJ7fgY7T7GnEps2pt3e9qVutAQL9EEe7QzTCTy1sgaCtd9rvDHwbSv7HeX5", + "account_public": + "xpub6Cf9VryydvT9ZDmm5NqvKMovcDLFQeSFzK1HG3ycHXc9RRPRmqRvELRvxSGhC5nszeMuqcBgY53T9C1TibsmJucRCSysGfZbyAc5a15Yuij", + "address": "GARMRZMGIHTRTRQLTK5LUFCGZIHRZJAYWXVCSEL3NCMSVCRQUNCA7MUN" + }, + { + "account": + "xprv9yfo6MT5oYtrPEZVvvsEAuy5WBoB7SBAT6oBKmdq7QaovcoCxfbcWPUp2GAZxNHVXr27FLCfSKMTW9jDadLyhdUDjNcuuyUFeXhfGhepMq4", + "account_public": + "xpub6Cf9VryydvT9bidy2xQEY3up4DdfWtu1pKin8A3Sfk7noR8MWCus4BoHsTAT3EBn6tp1kqrWvCo2wjUPXBimxkKP1yCq7HZePq2ibtqN1Fb", + "address": "GDNZNBAHYBRSK566BKQ4LA46LEZ3EZSBHPJAB77THBRFUD74I5LEWZUV" + } + ] + }, + { + "coin": "TERRA", + "seed": "eef6563e40e891db1fca8cee1086824b7ae7ae275133727460c85d7a192cc21d", + "master": + "xprv9s21ZrQH143K3HHzHXQKnFdriPrrrn5htnbanxrwoVBWtqpx6khH7VVHdtSXQ6QsEF9SmMJvhJ2P797kdjNbyqmpbJJkiyTcmDLe3sPBVMQ", + "master_public": + "xpub661MyMwAqRbcFmNTPYwL9PabGRhMGEoZG1XBbMGZMpiVmeA6eJ1XfHomVBW1e8FF7vqvyNBQXphSQtzgfzcJ5zw38MQiTa9gpgdiibv84fq", + "coin_private": + "xprv9vyUWym3VzYLiszTYj89nkzHxxdwvhN2RpjBi6jdA5u7JNNyzhYWGFp1sVt82Bg9ysJ2Gpm5ooCWTmHtQi1dLjnq56ipuQ4D4jdBNz3U1gY", + "coin_public": + "xpub69xpvVHwLN6dwN4vekfA9tw2WzUSLA5so3enWV9EiRS6BAi8YErkp48VinaV1J3YvuhScfWWjcDWqGDpWYNUJhDaTGBgMAgFSjayx8KWjom", + "child": [ + { + "account": + "xprv9y5VfXoAvgweYhJjWGyaVbR9o3LQUDxmGqkLk92U8rBm4rqMfSBLRoTzLvE2t6tenb46bonZg7RSCxgAW5tkV6AWRtLMwstPW8gzDfpRKjd", + "account_public": + "xpub6C4r53L4m4VwmBPCcJWarjMtM5Atsggce4fwYXS5hBijwfAWCyVaybnUCDthJpW3F35V5avnfUWZP5iKUwmAvYARaagoWDjD6UFb7rWh9VK", + "address": "terra16djgdtzcuvtnea4ls3a4njhjqlpymzpgcjfzr0" + }, + { + "account": + "xprv9y5VfXoAvgwebWsKD5EyVpM9dTcBCaPh25MWhRdLiCDHcixCgjQjcD414HDPFkm2SuvmSZTPGb7acrSxA4qE6tAeC7BHMT3Rv7AmqDP3Xkn", + "account_public": + "xpub6C4r53L4m4VwozwnK6myrxHtBVSfc37YPJH7Vp2xGXkGVXHMEGizA1NUuXYX3pvK8hDLzevwWgQcPYBtqAAXfZUZJ61LGFyqZrt4ShAPXtv", + "address": "terra1clm50u8ljc6vyztdedkyw8ww6ue8l6d85njvlu" + }, + { + "account": + "xprv9y5VfXoAvgwecrFZ9D47BZL9ZKVxTKUR3GPam6aS9uiCWWUymWN97VpP4V8jweWzFSpzuAMTMvh4r5ZyxapBRzcHGQ1nh8SF95JcHBo4x6V", + "account_public": + "xpub6C4r53L4m4VwqLL2FEb7YhGt7MLSrnCGQVKBZUz3iFFBPJp8K3gPfJ8rumkk8NGARaWYpLn5RPi3Ywp7w4Jmo8JQ9adsWYP3QFgkGTRnMvz", + "address": "terra18wmfca7vjlnmx3thqc72ac0j5tylcmg8vxneac" + }, + { + "account": + "xprv9y5VfXoAvgweh8ZPZ8vot7CwsTFM92SVJ8bvTsySEE2hr1Td7vySEf4ysVizqqgJXXN1v4re35iD12hzv49KppZ537GKBoJ7qUiaUioPwnX", + "account_public": + "xpub6C4r53L4m4VwucdrfATpFF9gRV5qYVALfMXXGGP3nZZgionmfUHgnTPTimJEC3EdkzP94m7akmEYMmpiJQSPGnVJCBxz7T5qsdhTCr14FSq", + "address": "terra1v9tv6fjq0jjd8cqsrfv2rsx69wpayt0gt38s4n" + }, + { + "account": + "xprv9y5VfXoAvgweiJ95vmuFTwp6QtwNkSPpGsN1bKeW11uDpJTT5rZxchy8urYYHk8QFm6u7ok7qBgxe4ARM2ZSrkgcfCBWx4NHNEFjqErViEu", + "account_public": + "xpub6C4r53L4m4VwvnDZ2oSFq5kpxvms9u7fe6HcPi47ZMSCh6nbdPtDAWHcmA1C9ufYy6XGfEyWMneXEvPLnVgy13RtgegVqTTgPeFMd1JDKUW", + "address": "terra1k63xtqgssj86y5s7ldmr3yvy739c0ecpz9cagr" + } + ] + }, + { + "coin": "TEZOS", + "seed": "2d26584bd480090ef14b5d03298029f4f999395f9dde99b0e6e40a1490b225bf", + "master": + "xprv9s21ZrQH143K2RgvRsRcDZaWAGPPd1kTsC8HpfDqCD34afjpXT6xsL1xxHV8s1EbCRA5XFa8CvMLtqGjKsHTQZqoLcJ34cscR2Cwe5ditH3", + "master_public": + "xpub661MyMwAqRbcEumPXtxcahXEiJDt2UUKER3td3dSkYa3TU4y4zRDR8LSoTtqUYxrnC9VdNVNupr1wKUoPhiAmmPq1ykuFxjcRst6BNPgosu", + "coin_private": + "xprv9wY98DX72akBudgxeJwNQ1bRzcwh6pAtKV7KZ4eaLTh1WpqLPeQLxnLYKrNo7aqAgaS9TeXqKJF5snqY8DWLFT2VCAphLy31QN7s8VZ3DTs", + "coin_public": + "xpub6AXVXj3zrxJV87mRkLUNm9YAYenBWGtjgi2vMT4BtoDzPdAUwBibWaf2B3MFwC7VyudAw26LH5AimqUMPEA1fLj1LpLdhKd4mftBdim2GCe", + "child": [ + { + "account": + "xprv9xne6jCqSbQVWnSzExSdNV6yiYGdCrmQyKTdgLMiPmMsxoqGrA2dpeeQgQFwvvHScgD2W1BqH2TLdnzuEy2jBhJfMmb8biT4Eu5YnR2vNuL", + "account_public": + "xpub6BmzWEjjGxxnjGXTLyydjd3iGa77cKVGLYPEUimKx6trqcARPhLtNSxtXca1qXfqBLXu5MJHosrtygM7qLsjdniufRfx2cwZZbYz1J2W2KY", + "address": "tz1dmwim2ZonfuXFPcowxfSfMrJTsQyvxpZU" + }, + { + "account": + "xprv9xne6jCqSbQVZUrXZcD62vttbqLb3bgo8dhUtTGPx6NXQSxhZZtFJ9gdWgfE1DgQ2nfgdt95KqoDDqeR34pKttmZQMQCQVtuC5NTfjLNh36", + "account_public": + "xpub6BmzWEjjGxxnmxvzfdk6Q4qd9sB5T4QeVrd5gqg1WRuWHFHr77CVqx17MtEnyPzfEEodVoPKpyEjLxgArDDjD3nHkRCzcsDy92LTEm2fZaQ", + "address": "tz1Y5Uhnqwz2BTFiwmU7Sf6vvCb6P6CyPHkF" + }, + { + "account": + "xprv9xne6jCqSbQVbGWnfosGQvWdgWaU4L36TTnYBEGYvfRBTwHN5kj3pUcE83YFTsWh22fJaEjE7KyF7Jgjptdeb9WKQLanAnn8DQKABRTfW3e", + "account_public": + "xpub6BmzWEjjGxxnokbFmqQGn4TNEYQxTnkwpgi8ycgAUzxALjcWdJ3JNGvhyF8n3naHsAmtA1w9a2M3D2i2JEz3YQJFjB3GaQsCunhkSeqh7V1", + "address": "tz1dWNZ9EgW9eTZ4www6ifyA5oQ7o392ieZ9" + }, + { + "account": + "xprv9xne6jCqSbQVfL3gLHvCAkrLJPmXtGsd6URhnQovqUGTocuESbGKAq1EXQ2wGmJFc4t2S1hBA8sMEgn4PoEDGH9kAhmtPWECyQ5mRWrfMuc", + "account_public": + "xpub6BmzWEjjGxxnsp89SKTCXto4rRc2HjbUThMJaoDYPooSgRENz8aZidKiNaayuUWGNrSqdM9CaDVJuskvNBa1fZeGhfXaSnbgauEEzv3krb9", + "address": "tz1VX3XZVLHG5mrqP9UBxBYt3QQ5TFAByKeZ" + }, + { + "account": + "xprv9xne6jCqSbQVi7Ss4bRvRjGAGVjAEz5oVV6r7zASU412yo4oi6r3yfd1NSkDTN5zPE7zRHev9Vc41jzdq8GepAoBWmBcPmchhskmx2ewatn", + "account_public": + "xpub6BmzWEjjGxxnvbXLAcxvnsCtpXZeeSoeri2SvNa42PY1rbPxFeAJXTwVDdNfh8xwr1AHoKs9ux6PfFJBanzzKjZ2twCns2nmG3GAjyqTFAn", + "address": "tz1fojmeyQG5dSFZDPdZFKa8oSPFNsHwbzhJ" + } + ] + }, + { + "coin": "THETA", + "seed": "cf0435128621f6ebc0b4111d117ac7e3f64bee33634f05725f438dd3ba92fb9c", + "master": + "xprv9s21ZrQH143K2KbFg2bWtmdN2GQe8Yrfemzd8nMHMCLGHXRmGEQnSW7yqdKKm5H88W7A31NvHef6HiArDVgKRMuLTYsfRbob695duW3dBjs", + "master_public": + "xpub661MyMwAqRbcEofin48XFua6aJF8Y1aX1zvDwAktuXsFAKkuomj2zJSTgvd14XtYo9eVn8HVvrDZzNErGDXUgKfPPY75yh6MWq28VJ9GGyg", + "coin_private": + "xprv9wtz1no4aXGiKGPH1f97jMCiAtNuFqdEEz6TADcJEvRQKAJiWybHvhyix4VJk4GJQaSbQd4R4YKmod45j1mJTn9SpRA5rJtBaS4xPGwR5HR", + "coin_public": + "xpub6AtLRJKxQtq1XkTk7gg86V9SivDPfJM5cD23xc1uoFxPBxds4WuYUWJCoKSLNPmMBvcMSzsjS8HjDzUH7kpa8ixaxHRrknfsxHsuNTuZZQR", + "child": [ + { + "account": + "xprv9ywuR2doJdWW9eerJa5LBnTuhsMe9a8GwVhZVyty7Cbj8kCPQPDyJVKWYT3ZZVaD7TMqzkAxaRYW1wiWTpwnKaxVamVa4cwmEpvcg8rNY8p", + "account_public": + "xpub6CwFpYAh914oN8jKQbcLYvQeFuC8Z2r8JidAJNJafY8i1YXXwvYDrHdzPkekV1ehJQn3CoQDNTwD67Ne5X2ivJ5AsHJPDCDdaeE9MKaPXZs", + "address": "0xC4336723371b4929558186Ae7975769804c523E3" + }, + { + "account": + "xprv9ywuR2doJdWWCSATsASARqkhciizeKECajCoBY2tdKvaRpnbfD9odTVghem43EnR28M7rXsXbgVkYkVxAwejLwRagQEehZJxKyeTfr8j1UU", + "account_public": + "xpub6CwFpYAh914oQvEvyByAnyhSAkZV3mx3wx8PyvSWBfTZJd7kCkU4BFpAYtbyu4MPZaksvqV9p5qMaZhPzoVDHfoKae3KgvB3BoEKxZ2UM3E", + "address": "0x1AC2C9077DBE544498b0F72737e7878927586a1d" + }, + { + "account": + "xprv9ywuR2doJdWWF1cWWE1arfwHs9jQi79b6hafXJAyy3gqNs6g78UB12fqqNjrNx9U4p9K5tGMtnurFLGvpHofphidsWQRe5MtSzWcs7QuC7P", + "account_public": + "xpub6CwFpYAh914oTVgycFYbDot2RBZu7ZsSTvWGKgabXPDpFfRpefnRYpzKgfwXGcBCSuTMPGfixbVLVRnwCuMkEZGRSbUH6aXEHyTYJUppVXg", + "address": "0x7f6D3Dd475A9Fd7aa7364a819b569F2d745c419c" + }, + { + "account": + "xprv9ywuR2doJdWWFwSzqoq2ENLm97fvyQjSB5AAhNQ5uQ6gwRDX7mSFAtZmZJ4feprGUbQ9tjUArBdKMNgijsLGWjbXx9PKHh9b7szwPd6x54U", + "account_public": + "xpub6CwFpYAh914oURXTwqN2bWHVh9WRNsTHYJ5mVkohTjdfpDYffJkVigtFQbozLA4pMabjKw39WMQ7Ydnkw5qeD6MQyJU1u63qQT5WKuVHSmw", + "address": "0x8607A3AC393A471ddd4D0E20a6177011e0F7511b" + }, + { + "account": + "xprv9ywuR2doJdWWLB5nYgSX8kxE5xGjCTUG3QgSaUe4qugiWFz4GYnQVcM6TQMTE3iLjcKEh1eGvJuZMus31YgfXDXtTbnLvykJPAeVUxTEzdc", + "account_public": + "xpub6CwFpYAh914oYfAFehyXVttxdz7DbvC7Qdc3Ns3gQFDhP4KCp66f3QfaJe9QQmmzTW2F73usyP44LW6fujFVrs5yQD776vxxboFRiXxWaCe", + "address": "0xfb477F3d5fCed48e2f510d5e323f4c8655c6bac7" + } + ] + }, + { + "coin": "TRON", + "seed": "3308d93ac0a44c64bd302b1119bd799a646fdc1bcb6ee7663226a7e43b004797", + "master": + "xprv9s21ZrQH143K3e1BiQBsvc9HsKSmgnEGcuv3kG6qt6ySztt1ZzDhmwto3vC6e6EeREGfNER4fW2srjGqnY4bHMCq4ZaE6bfZMk4ydAsXyrE", + "master_public": + "xpub661MyMwAqRbcG85epRitHk62RMHG6Ex7z8qeYeWTSSWRshDA7XXxKkDGuEEzu8vKDPdaHZQH3TKZPBUQM7CXaD5TFk4M111xHbqCG4YUVLp", + "coin_private": + "xprv9wuBkWNCjYiKVgXT6XTaVCa8AYxgUCixcJTX6TCjfmBMtoy48JQCxyG4JVQDqdXKpuU4oR69JS1KhGuYzYfZJWPpGxi45mN7yKj5otc3inX", + "coin_public": + "xpub6AtYA1u6ZvGciAbvCYzarLWriaoAsfSoyXP7tqcME6iLmcJCfqiTWmaY9kREdeW9TPow1PXqJPU4WvWhLuTsz5PbRRrfSkRRUZE2hmLsPCz", + "child": [ + { + "account": + "xprv9zJypnft4L92ZnmWstNeC7ifHzyzDoJgJYWU2FwuanNJQbEfqeB6ATARFmujKsvNPnQrWfgYPEm1xs42WqaEBYB4oMHnixdyZpc2sVdqKwY", + "account_public": + "xpub6DJLEJCmthhKnGqyyuueZFfPr2pUdG2XfmS4peMX97uHHPZpPBVLiFUu71BXa2QTe9Hcrq1LdHq1SrkrYru7uhDPF6Fj2FxzuSUWTZjSziG", + "address": "TSkfyVbt13T6uBojrHyXEwoMFdLbmQTo5u" + }, + { + "account": + "xprv9zJypnft4L92cVEx5BLqjTKouFa6NGUbi67kHzW6R6Ug8wdagu5b6QDfkdVhsvXiDutJBWU4VojVj6g8MyCKQWLo1HA19qrdwvqzDFXHkoE", + "account_public": + "xpub6DJLEJCmthhKpyKRBCsr6bGYTHQamjCT5K3M6NuhyS1f1jxjESPqeCY9bv5wNsHVW8YTrWUrzmj7jqN53Ja24cucgsXD2ZxEaXg1Br9GHif", + "address": "TAmzsZC5nLF9Yyir7yLfpRuLVvvie8KXvS" + }, + { + "account": + "xprv9zJypnft4L92fmESVfeKtFTaarS8CQyiT9Lb5xY5TXBv5bpZ59ifhvBFMcCCM1Y7RbspPwGZ32dL352NcapN2rj1mJt8XMEGMdY75tAMMVV", + "account_public": + "xpub6DJLEJCmthhKtFJubhBLFPQK8tGcbshZpNGBtLwh1ritxQ9hch2vFiVjCuizsctBTtLRczvuW9CnGxgT3DgK854piG6gqrnzE5YAU6zhuXk", + "address": "TAjojFkjqL5sornMS5jeDgaby4x1CxN5dE" + }, + { + "account": + "xprv9zJypnft4L92ieDbHBUnhNJxfWjLgh29ufDbVSzoSrmhR614KbPLRVNsJmLFTg95QKWg586vhmvhkyzb9eUofrZQMqc17JFJXR3XqXKgLht", + "account_public": + "xpub6DJLEJCmthhKw8J4PD1o4WFhDYZq69k1Gt9CHqQR1CJgHtLCs8hayHhMA2UcDAKjeCgRpaMXPpZufcjdWunjpn8VFCgpZcmUPZfJxf4P6Ro", + "address": "TU6Fk8d8wkBqCXiNkXEVD1J3FkyxAK7VZa" + }, + { + "account": + "xprv9zJypnft4L92m3WxEww1sutw5ww3zWaNbWbGekMKmdLjphxHEHtJyuwH5feJXnQt19XUragNdaqHgwGwS6PYDxAjwubPz4tfBkYPA6HEm11", + "account_public": + "xpub6DJLEJCmthhKyXbRLyU2F3qfdymYPyJDxjWsT8kwKxsihWHRmqCZXiFkvvhnrMrgdcfCHV6WwjAadCGJAaoEisYLGTdhudmSh7KmvN9Vbu7", + "address": "TEfRySWVkNCEBoNBtC4arCY79KF7MwK8vg" + } + ] + }, + { + "coin": "VECHAIN", + "seed": "6d57423b9989e14badafac9ea512cb69b7a66c05d3c7b0894c88292a58b92a46", + "master": + "xprv9s21ZrQH143K2oPbiEYFiBXGBA3Tfgq3YrQ491eV83UrxX5SXaB2EtRGqVvG9PEttsfxa1VGD2m3BiZ97G14ae5yxHh6EveLLnn5tNf8fGc", + "master_public": + "xpub661MyMwAqRbcFHU4pG5G5KTzjBsx59Ytv5KewQ46gP1qqKQb57VGngjkgnciYRF2rnRZhxzozvaEwoTvJ4v3vY8CiQta1WUuSgaaQfu71Ab", + "coin_private": + "xprv9wQjKKB6hJjB2jA35V7irxEfPZ2PN7SuryPBkQsXbmfFnnEpZN28KALEu6xzBAum5xWGH6zWVY9UHfgwVQCWHprcoE2sPUVZDcmeDxcfc8B", + "coin_public": + "xpub6AQ5iphzXgHUFDEWBWejE6BPwarsmaAmECJnYoH9A7CEfaZy6uLNrxeikLyr549KyXbpMKfkErx4sRQpUGF7gATduDKT1FfFBiBkXzJF3Za", + "child": [ + { + "account": + "xprv9zLrrh5DaCGDqRQ6wcz61cDgaB2eaCZFfLoQuUf72N7TYQBEoeX9EguvXV8N8doE2BJmTRrZeqzCpJuxotaAt81hFpEVrZFkozK7r3fEC2v", + "account_public": + "xpub6DLDGCc7QZpX3uUa3eX6NkAR8Cs8yfH72Zj1hs4iaheSRCWPMBqPnVEQNmc5QEygSurF3L3BygEDsPYPxv6dEBTir59EHY4JPuN2zCRiMC3", + "address": "0x8cB1269C592840d30C160da806CD2Bd61746B628" + }, + { + "account": + "xprv9zLrrh5DaCGDtZ13tuVZckFWf4eXEr5cNzNjzQevye4fns7w9ZQ15F84fkaY5C8vMcipAi4iAd42JBCfUJ9kN7orrBVbrwaKsXw1qp3gcQq", + "account_public": + "xpub6DLDGCc7QZpX735Wzw2ZytCFD6V1eJoTkDJLno4YXybeffT5h6iFd3SYX399Kuv3AUi95ALkpUJPL1V1r78WoVugS6zaGSxnX9MHSYGRcg3", + "address": "0x5f7130A29f9D7dbff3ffD78Bb27f9E0801598A81" + }, + { + "account": + "xprv9zLrrh5DaCGDuxMZ8yA1GSiQReBceBgwL9hogHvLGHw49Vusk1jYcyYb85N8bRW1o4dkucZfeWMMFHEQacAbgsPYjE9so35PMCjG3TxDGwo", + "account_public": + "xpub6DLDGCc7QZpX8SS2Ezh1daf8yg273eQnhNdQUgKwpdU32JF2HZ3oAms4yLnfQVARyzSw7FYW7Vyri6rQu7iKb7EPdigKcvzAxZfg5zMDWJx", + "address": "0x29d0253faA3395B073a5Bc9AeaD9f3751F07d02b" + }, + { + "account": + "xprv9zLrrh5DaCGDy9G8aZxkSUsKr79LNLrgUKCSNbH4fX5Uo5BzhvZ4vu4V9xazbx4GctQXHRd6phCyH1mSrujBbArZNCVxDPoWB3aBmarnQZq", + "account_public": + "xpub6DLDGCc7QZpXBdLbgbVkocp4Q8ypmoaXqY83AyggDrcTfsX9FTsKUhNy1EPo33Tsh45YvULYqwVDvdNL9D4vgwZ4HchAi6oDontUeg3D4NC", + "address": "0xF37AFB99D29CbA0a5752c7a613D54eeea3141D38" + }, + { + "account": + "xprv9zLrrh5DaCGDzwRyYcrYzkaJXqBtPmxxoB7VtLvaJCPiKSzu2TkKYvKy6fYAFQtw73qA1b1qk9HsvDXdnEExd4r6rRbYRSWVKNwmXaTbZh3", + "account_public": + "xpub6DLDGCc7QZpXDRWSeePZMtX35s2NoEgpAQ36gjLBrXvhCFL3a14a6ieSwxekrn9E1XdMAUEm8ZnwWmiMYcJYRKNmt8AsXiWeiK9gyG4FwvF", + "address": "0x70c7aC42Fbc71cdcaEA80403bc9Cd550E5D35748" + } + ] + }, + { + "coin": "VERGE", + "seed": "035cc8cd907889eed4d91858524a32404f5ea38ee826f5f142e610ce267afd88", + "master": + "xprv9s21ZrQH143K32A1kwugwADnq1PJVW1d8ZZGxbh33aKNBce1nWWLHjBgqTrpnC81XZhgWxEPchW7KcVKwyxydJD5CibFyjUiTY2GDmWwVfL", + "master_public": + "xpub661MyMwAqRbcFWEUryShJJAXP3DntxjUVnUskz6eburM4QyAL3paqXWAgkPMTFVWabrcPXywwaWcXVrGJdvJtXv9rwvR1sAepJ5tax2gGUV", + "coin_private": + "xprv9wkW1NSsD9KZq95jyHFsxkbnnvWSpqVn2bsrHxuhytsSbYvQgo259jaXJJLfZFYviPPNdQkoTj32c12awgaQyhJQsBA4bwDWSp8drq4uu9c", + "coin_public": + "xpub6AjrQsym3Wss3dAD5JntKtYXLxLwEJDdPpoT6MKKYEQRUMFZELLKhXu19ZNdLNT4TUD56ALHopEP5r8hzygqBnzMFsPdhhhWCdMQcSBGyGh", + "child": [ + { + "account": + "xprv9zHw1hipHjcmbfjiaSwEebv45CSropqWvkDoEqTDJqY9ib5LCdVsycc1sQkTAsXz9hewuEWL6LpoXKcrfFsDsgvMf4CXuNoTpUio8ES4hwX", + "account_public": + "xpub6DHHRDFi87B4p9pBgUUF1jrndEHMDHZNHy9Q3DrpsB58bPQUkAp8XQvVihFQY3v6dmtZxJJVULMC7wCkkoyiEoaR1DrKEC1oyQ9GMu8Bdoj", + "address": "DSSMYqDzJae4S2d5VWw5cXeADDJLtyLGtN" + }, + { + "account": + "xprv9zHw1hipHjcmcZjTAGjLpGgZhjZLnQpkiMMxsZgQLrcqeHqSuAxJnRVcLKhDzcirhiw5PXbEWTuEUmWmv8EsNfrKvuQ4NVYrvuTYPiSvx5j", + "account_public": + "xpub6DHHRDFi87B4q3ovGJGMBQdJFmPqBsYc5aHZfx61uC9pX6AbSiGZLDp6BchcAB3QQ5NKGJTuCbSEBJcsVEcrFc9Z72pFnXkjGPghvX462fb", + "address": "DBS35KfUqvncti8EczKF3gaScCphWbgzbe" + }, + { + "account": + "xprv9zHw1hipHjcmgpWsPR71UpwJQf4x2vNVeFzejQJ8QWduwdSbMfeizGyKq8S1v6QKPbMaGsVbsb3C63ZUVoNAwnnGYfoVuKfTUpPoPPVksDo", + "account_public": + "xpub6DHHRDFi87B4uJbLVSe1qxt2xguSSP6M1UvFXnhjxrAtpRmjuCxyY5HogR4vky28BmxopCyaNazn19aNkHPqm7gX8R2ZVdD9Hy9VAQoiztc", + "address": "DKEJwHorhviwTGuYW7WoU6rQNy2s7nQStn" + }, + { + "account": + "xprv9zHw1hipHjcmjKHzzSSYoUDp8nEsHhJWJBQJUMHwywuULeSQaajRiDVZRwqZ3u7CGXFJ12dbTfLtBzenBSZuwjyXtBV91ggkk7YDvjfAs8Z", + "account_public": + "xpub6DHHRDFi87B4woNU6TyZAcAYgp5MhA2MfQKuGjhZYHSTDSmZ883gG1p3HF6BtWK6vErHetZFK5u5MujGHpLfM8PNkRNwMPZ5uDc5y45uWKc", + "address": "DQrN1EQtTrbM6vr4FywKqSi2hh3vfiEX44" + }, + { + "account": + "xprv9zHw1hipHjcmmhtUyLKprUNZ3QWzpvwdkWicas6caTesgCzu1kY68VNrsE3t7WkornCpMrG4CrzdWHWkZj8jidFd7wPaLkY9vk7ohR7KFv7", + "account_public": + "xpub6DHHRDFi87B4zBxx5MrqDcKHbSMVEPfV7jeDPFWE8oBrZ1L3ZHrLgHhLiUto7zEowA3TNubL989HwUg5p8TSk9BZ9Nzf82PTXcAfja5yZvg", + "address": "DQsmVYZ6ddcEVZ8TWGib3xcM28Csa7kzev" + } + ] + }, + { + "coin": "ZCASH", + "seed": "ebd61537112ea14af0b1e1146c1727c2794d190f066cdbeb0e60ad7029e9a1bd", + "master": + "xprv9s21ZrQH143K3EQ9eiK5pXu4aoMR4BLLQH8iLNnH8wwqxdvjRwrDhykvmfnzYccnVyFDdt5m5YZ5JRYXA3NXHDLUFp3XDuqMCFDErDdPX6y", + "master_public": + "xpub661MyMwAqRbcFiUckjr6Bfqo8qBuTe4BmW4K8mBthHUpqSFsyVAUFn5Qcy1gQmuDqNG6te6w4cLV3qEc75qTycdcHA9vwYBYaRdQ2qX2n97", + "coin_private": + "xprv9xBDdiya3U7N11YcQ4Lieh471ipqt9y1oaX5TMmNqDyhKywEu9PQfnfGJvcVwA6YcnFwNZYyHfJZpR9sX3V5JVx7NxDfQk7NonN8LH3wLys", + "coin_public": + "xpub6BAa3EWTsqffDVd5W5sj1pzqZkfLHcgsAoSgFkAzPZWgCnGPSghfDaykADuK7DsqDsDFSuXGfT493jTg3d9HU6vacxZeYeMcE22XuNi9tDp", + "child": [ + { + "account": + "xprv9yc2TR4GKiTd5F6MaKofMxwuzjaFnjoHN5JY4CuadBdY9B1v471unEKKbkZq3ZuZtWAqhnJhWbw8NPaieFmaER6DET7Qv2CTKDytGK8mLwK", + "account_public": + "xpub6CbNrvbAA61vHjApgMLfj6teYmQkCCX8jJE8rbKCBXAX1yM4beLAL2doSzdA5RL89ZLbjvfosLTiJWh8h9soFdnTJqzRKBuTDF49wjMqGqa", + "address": "t1ZQ5iC5Jn4wtpwmyhL9jUXBMYvCCDMW1wZ" + }, + { + "account": + "xprv9yc2TR4GKiTd5mHWgj9AD3GTKBPCSC1RxuHBYNPNWhv6dcb4K3NaTZUoTi1ZhR2mFpvhAVxR8q8v6WQpinpkPRFUiovCVZh1PJx9b7r8Dte", + "account_public": + "xpub6CbNrvbAA61vJFMynkgAaBDBsDDgqejHL8CnLknz53T5WQvCragq1MoHJzXwRiiYmQJirRCM1TwnyQAzePg7ggTNh7euQ9Ltw7jYk31KFHh", + "address": "t1X633zTsRtHyA1CUzucwRtF4Tzb52g1Md2" + }, + { + "account": + "xprv9yc2TR4GKiTd9duPujQKN1xs5ysY96pSyrL2HNqrWRJynhLaSqryWSoocWXHJ7UeLPXAbjUZZvorsRFJKKF8Diz4s8kcCQZAFmJhbFQ1zD9", + "account_public": + "xpub6CbNrvbAA61vN7ys1kwKj9ube1i2YZYJM5Fd5mFU4kqxfVfizPBE4F8HToYF71bW63J1siqvmhkp2LHvvkFB8UCuZkLXGt9KS3iGzi1y4j7", + "address": "t1ZyBJhRMjSprmtH1pCgQgYSNFcjtK6sEou" + }, + { + "account": + "xprv9yc2TR4GKiTdCzyCqJsF1GexLRbPQ3i2dWMkGhSWFrPJJymj2sqYiQ6cu1BYKhYSdntvrfWtyTVeR7n1Yyjwri6QVMNcVfqPaPTHU4zs3Pj", + "account_public": + "xpub6CbNrvbAA61vRV3fwLQFNQbgtTRsoWRszjHM55r7pBvHBn6saR9oGCR6kKQnLCFfxMqWYfP5A4Md4aziYXTe3vt2NVTGqFYuXE7SLY8R5H2", + "address": "t1XGiyQax6TRJVx8DUoeyWrTei3Xfbd5bNf" + }, + { + "account": + "xprv9yc2TR4GKiTdFSVPBpFbwaj5ckbGDJdkru5V5uJHwj6MTbyXpetXdT5zQdosztaD8FHp3zAu4KCSxiE47dYwDSweu3BncMeprCnc3WVtbmv", + "account_public": + "xpub6CbNrvbAA61vTvZrHqncJifpAnRkcmMcE815tHhuW4dLLQJgNCCnBFQUFucHbdeRySUmhrCRtY73hJB2sjxkzJpL2iZtQSyFdeWu7D5scf8", + "address": "t1fL1KmxyW35MWYyvbWXxbz3tpXX4oEEKWA" + } + ] + }, + { + "coin": "ZILLIQA", + "seed": "7d0e4ebc53521377a4cd876d2c6f4f8586ec463307b563107a6589b5c4fff9ba", + "master": + "xprv9s21ZrQH143K2xyujfqxj9tG6HXnBJd7GY2cQY9f35KvwmKB1G1jBZmtpkZ6dec9Ey7Epejf5xx2XQ1imGjmoX45zMjyoRsqVgzqaZVwa9u", + "master_public": + "xpub661MyMwAqRbcFT4NqhNy6HpzeKNGamLxdkxDCvZGbQrupZeKYoKyjN6NfzNGqandUTUWcuUj9CvFXQxNfgwkiKZWCcNkNCoGctG9axGn9QF", + "coin_private": + "xprv9wKFyqRz9p9mqSitK8Ju3cGzr5jhxW9yNgMNnXsBKx1SBfH8sE2KGM8wp3Qd8pBguNNzedp6K5rJLa43sRJ4vy8ZSrKVqNKjHKnd3Zwdgvn", + "coin_public": + "xpub6AJcPLxszBi53voMR9quQkDjQ7aCMxspjuGyavGntHYR4TcHQmLZp9TRfJ7hwPt3YdsHKp5LL7YkUcoybnwLLNZa22jsXhzMCaZTTp4Vc5p", + "child": [ + { + "account": + "xprv9z3Vd6rQhtkQXxBXJDJyn5Ae2EezDqr5UfvVqfGGob171FTURWVpe1gSvqMJFDkSxqxmQi5r27hef1x3WuEXYbuvqAGvMNuh3nbjrbSevWC", + "account_public": + "xpub6D2r2cPJYGJhkSFzQEqz9D7NaGVUdJZvqtr6e3ftMvY5t3ncy3p5Bozvn6kJYxrNGPrEzuDAw7mBoCLf82238KLsekMy5FAXQCj3PNZJmLd", + "address": "zil1y5yrxkjxky7nnx2key8tuqjcz7zlf78wkseeu2" + }, + { + "account": + "xprv9z3Vd6rQhtkQaAUyHA8pMdwRVE27tiNuBxg3bccYZKH9BSDJJVRh99ASuDafJynWFqsoNE2CSNcyirBsXBdQb7jZZakp1kLwCM6to5gbea1", + "account_public": + "xpub6D2r2cPJYGJhneZSPBfpimtA3FrcJB6kZBbeQ12A7ep84EYSr2jwgwUvkUpV1Stsbz6GvRHdUVenoHvxhGZPBRGnyk5JXCXrsfhX6LxBh8z", + "address": "zil127hljwhmv2eptzxgk3wk282mlnt70h9fz53n0r" + }, + { + "account": + "xprv9z3Vd6rQhtkQcfp9yFPHHeReJQWefUVygRvZrtPBYZrokbQTxKgKe1ryF3pp92NfhputZGdpkwmJxBjNCRCdZeRzKwcXX9xeSJBEQxV3xHW", + "account_public": + "xpub6D2r2cPJYGJhq9td5GvHenNNrSM94wDq3erAfGno6uPndPjcVrzaBpBT6MSpeV9DrDHEhZnbjZNKEKZ8VaAp1dvxZCXhsagWMBHvXKmsdex", + "address": "zil1y2scpg56enxq60u9fjr0kfccs5rcfvufs78ey6" + }, + { + "account": + "xprv9z3Vd6rQhtkQdzq4v1c9dHWuEoZvwFNy9yDcUq9cYmxx6X6fvM4ERqLtT9wEwVaE4qrqqwBw5E62NsGMiQfW569MWdDRgjJcTBra5gz3e7x", + "account_public": + "xpub6D2r2cPJYGJhrUuY2399zRTdnqQRLi6pXC9DHDZE77VvyKRpTtNUydfNJRrFLPdBT7XaMpGSpEhUHzm3dNoZgNwfkoeFqgiWReU1zx7VhRA", + "address": "zil15sg0sra3u38l4u8urqca8dqej974n45yfgn6xq" + }, + { + "account": + "xprv9z3Vd6rQhtkQgVuP8CYQXwrTiaKg3Ay7wKTamhjhZbYextnXqxGm1VBjmJWhaXRQnwZa8sptU2mNeC9UJd9PDvTSG8xq4wT3Sv58A8qVigv", + "account_public": + "xpub6D2r2cPJYGJhtyyrEE5Qu5oCGcAASdgyJYPBa69K7w5dqh7gPVb1ZHWDccDjYJqYqRGtxrFVTivwbL9ZqfChLEUzGHvUUSfBnsuCxTFSaVu", + "address": "zil1w90kle5sxz6r3qeht4way54s3a4vqhjf76cvse" + } + ] + }, + { + "coin": "BITCOIN_CASH_TESTNET", + "seed": "3bd320e1d471e0bc5894bd43c3fd50598e2dc4029b0f1f7bc69e9b8c62024f0a", + "master": + "tprv8ZgxMBicQKsPf9ZAcP7dVaR356UiVo1hCVSXCHZbau9X3NhZghfh5uoZt38To3g1pVKGRD5ATCDBPMRXDvFB3CawM1Z5WkNw7kTYNM9D8PF", + "master_public": + "tpubD6NzVbkrYhZ4YcaxW2nDtz59e7zef8Cbmo3JUobu1AwusrxLK6VHGQRS498zgNkzRGx3Ur8hx9ZibSmiEsb5kc2niArLZuqipatnpUkU7hg", + "coin_private": + "tprv8exHa1dDB2t2Pb7EYje1Ay5Ju7pdigC6ef4D3jGRNSTkX1M2UR11T3AtC6htG7k8DG2oMLGAa5mPSd4y3GKuN5bTpuCU64UwpD2cqjDyvSh", + "coin_public": + "tpubDBeKiRfTKQZhH492SPJbaNjRU9LZt1P1DxezLFJiniG9MVbo6opbdXnkNGqMMiFYhk8X8kBez5eERwG3bqYRQjaLNEc5YoG7eqJAhp49kH7", + "child": [ + { + "account": + "tprv8gNP6y4kSzhAcqmumZR61dmTyH8kecSFGawHX9eCxPnQb5owF5mctY2jTLAoCcvCzJEtmJtGbjyuzvR1PVtuQM2xXTzXgW1ReK5WVNzntYq", + "account_public": + "tpubDD4RFP6zbNNqWJohfD5gR3RaYJegowd9qtY4ofgWNfaoRa4hsUbD52ebdVDgyMEFx2ZpGv3ZXs8656X7TDncikKGe8pZHsGYi8K99zGoG7L", + "address": "bchtest:qpm5yv5muak4fsjqkqymfyvaustwr2rjn5ng3xynjc" + }, + { + "account": + "tprv8gNP6y4kSzhAgx3GkKo9miByKzPW2zPCLVTB1Ch1Yaqv2YTx3HQv9X1x1PAbPExUuhmr8c62YtAppHavh5Pc5ayhX8pDdZxMBvjmnUnz6nJ", + "account_public": + "tpubDD4RFP6zbNNqaR54dyTkB7r5u1uSCKa6uo3xHijJxreJs2iifgEWL1dpBV69aDwSMEWpwk3vnLwPPkuVmczvR6THmZc15cqU9ExRx8pzC8H", + "address": "bchtest:qrydznx2udc8ktjc4xqkme03vgr6ujctvghccjj2z5" + }, + { + "account": + "tprv8gNP6y4kSzhAjEbyELgPavrh2w3qfNmdCwUnuNgzxDACjMGNiwVBrj6msiRHfnYPzzymNTuNjoM9muphnADRhQamFfvkDYerUNDKEnLGUU9", + "account_public": + "tpubDD4RFP6zbNNqchdm7zLyzLWobxZmphxXnF5aBtjJNUxbZqX9MLJn3Die3tjaDgVe71jQ5TntWmMnny24D3HEeGpWidUQW5JxycyAJgLXSP8", + "address": "bchtest:qphx4p9cm39umf67fr38tfp0aan0ex3ew5nc2urm9d" + }, + { + "account": + "tprv8gNP6y4kSzhAmKs3sPhY23GTeADZdMQfSu3UcGmxvazxWfWHLPNRBmN1aswGT7PqDre6w8r5yjtn37AacjYv2wwtdor2rvkNtLbKBEAQeCh", + "account_public": + "tpubDD4RFP6zbNNqentqm3N8RSvaDBjVngba2CeFtnpGLroMM9m3xnC1NFyskzkDwB73xgd2m9QiejuTDQBbtfsYhCorZa8zNsxrJsdQ52fGguw", + "address": "bchtest:qrrphv0dg3vr636dpusu2s53540ryk3sdc9s642pk7" + }, + { + "account": + "tprv8gNP6y4kSzhApa8X6HXtf7Ku68WpTZGraps7KVVkxyF68PzPHZLgHPae9TjkRkwnGVZWyRjsByT3Hxdpb562yegRPyBHuThbpGEduuo1xJc", + "account_public": + "tpubDD4RFP6zbNNqi3AJywCV4Wz1fA2kctTmA8Ttc1Y4PF3UxtF9uxAGTtCWKaiDaYxsekmvtM5bKKpQxuWxAHCEWGTVi21SfaoZDZZzKhU3F7q", + "address": "bchtest:qpve4cu3zvsggvdxefe44r5xp3s2gj2a3v2luftazf" + } + ] + }, + { + "coin": "BITCOIN_CASH_SLP_TESTNET", + "seed": "94a574ed808090e7cf141d0ea4fe8fc65ec0a56ee42790eb98b0973b0c2951b8", + "master": + "tprv8ZgxMBicQKsPd2aLPAXHKDxu9orTCKuruU62ctBnSMKew99QpfpUXrYaBu8iV1SQiZWbM71gNHDKHpwZCPBdcjR9UBYY8PqdjnYGNwCMhta", + "master_public": + "tpubD6NzVbkrYhZ4WVc8GpBsidd1iqNPMf6mUmgouQE5rd83mdQBT4e4iMASN1rKfE2e2KE3D49AucsdEXofMYwaYhGpAgW6UhjRXVEFDHJku5s", + "coin_private": + "tprv8fEiCH7wzyydL5hgkRpc1XpxNJ9NBm1bdSNycixBPDTUFJ5SD7LjrKA8Jp2Am7XndYHKGUbvgaCwJ9rSP4BReamqrEixfYf1pPfjsv4UTgB", + "coin_public": + "tpubDBvkLhAC9MfJDYjUe5VCQwV4wKfJM6CWCjykuEzUoVFs5nLCqWAL2omzUvj8zrZkYcEdGXaWhbrAqcvJd6DpCvRHWnR6qDnXYKpntBx224K", + "child": [ + { + "account": + "tprv8gJVGaUV9iSrfJBGd9DzS57kyPgsQ2SU8KrgZbvuc6sHb5thQiAHXpqbPCTS8Dx2oZvsT5oB3CgMwy2yQHm5MqbNaaegbC5aLwJVYBau8cw", + "account_public": + "tpubDCzXQzWjJ68XYmD4WntaqUmsYRCoZMdNhdTTr7yD2NfgRa9U36ysiKTTZNpDERBEX6x736jFDSRjmatqqw9KnRXBMXNFEeGg5QXBDJRz1Kr", + "address": "slptest:qq448jmunkdud0aygmtvalk52uefxfq3qv0vlhx8xe" + }, + { + "account": + "tprv8gJVGaUV9iSrg6KkxpMPLJv54paMmyJwh47ALGXjCN8wLSgTYg2rMChmExhH8nM6htBEgTqmyaE3BxBQq1Mxvq4xnJJnQWbKwJyJm7hV8RJ", + "account_public": + "tpubDCzXQzWjJ68XZZMYrU1yjiaBdr6HwJVrGMhwcna2cdwLAvwEB4rSXhKdR7jgCz2jVX1yBRa91thiE9sHxXRj4K9i159g7AtJ9knDkLxmLzi", + "address": "slptest:qza70ddz8py2thk9slxg8vcdgp33546azgqrw20zgz" + }, + { + "account": + "tprv8gJVGaUV9iSrjejB7HrsmPsKcPz92M35unaTr7hup8dLaqVvtp4pajXUGooQyekmRNs5ErACmbFt94bzf79AcKYqdeB3WcQbEH2uh8ivjR8", + "account_public": + "tpubDCzXQzWjJ68Xd7kxzwXUAoXSBRW5BgDzV6BF8dkDEQRjRKkhXCtQmE9LSxCV7d2VaEkJXsp2Xi83wX5dMTG3pooSnzVTLZFyScH63tBAu9n", + "address": "slptest:qzrcfh0yjs06q7hz4h7cnj9f78cwsc3xwyhv9eqnny" + }, + { + "account": + "tprv8gJVGaUV9iSrkmP18PCW9R79RxSciHDrKgqWhrn7eQv9HK1MVrt5jcruYpZPPMzoTbLQrD8a1qsgL79yjd4FobDNhsGSBihbCfNXRwe2bVW", + "account_public": + "tpubDCzXQzWjJ68XeEQo22s6YpmFzyxYscQktzSHzNpR4giY7oG88Fhfv7UmixcB3oRfY6TXXzsbw8rGgps9btbEFUNKSat5eFJSjtudKhB9eQJ", + "address": "slptest:qrm64va46ydtutzjwcj7js60swhsensl759hqd3xjn" + }, + { + "account": + "tprv8gJVGaUV9iSrp5HVPNJuQLvb1JBwYEvAWiHU2PiPJRWfVU6Td9LT1RGyUrPsSLKSiiNNcxpmdqfLi7Rkceov5nPbPAJpqGzCwi8znQrB5kn", + "account_public": + "tpubDCzXQzWjJ68XhYKHH1yVokahaKhsha7561tFJukgihK4KxMEFYA3Butqf27vWVj6gQPPRjr49FiZHDWM7SovyLcoeLPhBoMqRr76AcvLc1t", + "address": "slptest:qq6ge700c7k2xvatu4j5exwunrv8fphtlg6amr4smf" + } + ] + }, + { + "coin": "BITCOIN_SV_TESTNET", + "seed": "0bfe426efb860714aca8e88b950346f6f6ed11158b1375935a6fa52f3b7bcc2c", + "master": + "tprv8ZgxMBicQKsPdktACBUa1RK5vfdTqzWskdVdRrujtfvSaRUFgUdHtyAjNEpg5qrTQJBSTbv1S4JfazgX2j7Te8hTGgYv2RSUQqkHmbs58Sj", + "master_public": + "tpubD6NzVbkrYhZ4XDux5q9AQpyCVh9Q1KhnKw6QiNx3JwiqQuj2JsSt5TnbYMuL2tx8T6YhQXyePqo3F1uYF8tuPqewR3codcRgUZG4SCoqC7V", + "coin_private": + "tprv8ejt4iXRNQerxa6ffN1aaK1EF2fc7SLMDegVShFYwkFmvuVGgRW5GfZ6EurySzNbu7Pm8GLrrF2aqccwkvAHd3CVKD3S6KxZieTkb58Vdtn", + "coin_public": + "tpubDBRvD8ZfWnLXr38TZ1gAyifLp4BYGmXFnxHGjDHrN24AmPk3JpKfTAAxR5VK6gYerA98VveJR2bB8m995AiKpDYdhCSP3inRp1ZAaGgY53i", + "child": [ + { + "account": + "tprv8fmh2qXG7NPrTGQBvSxaqyyzKkU23E2DezagvZo65YAV97k8eRGt1RPJzFF9L5MEx4Q2eEp3zGvZ6DnNSi717tmn1w1ZMSZS5qtBLARGSPi", + "account_public": + "tpubDCTjBFZWFk5XLjRyp6dBFPe6tmyxCZD8EJBUD5qPVoxsybzuGp6UBv1BANqksuCD7q9iNetnY47AGnTBQ9UR7M9hm9a9i3wWfNppnDnPpEz", + "address": "moUuDexRxhF6RrNWTLGEpooK9dyFM5PbQY" + }, + { + "account": + "tprv8fmh2qXG7NPrVKtyNiweJ7KRNjAjpujtNR6K2afzRh8gPMEXEyR1XruUhA4JsZaD4Smyj8HwxkxHYjpMLdzCcihD634a61fCYzvrKi42Pjs", + "account_public": + "tpubDCTjBFZWFk5XNnvmGNcEhWyXwkgfzEvnwih6K6iHqxw5DqVHsNEbiMXLsGoFHbAB9QpHtdbAUkf5tAvt3TfoDZTWUZduvDtUqsX1b3rX9AQ", + "address": "n3E8otZwCrmfMPm74oiRpqgoMVu9ed4KpY" + }, + { + "account": + "tprv8fmh2qXG7NPrY1oik4x1fY3b6KNbpmwfv645bzJDamKAxtYEYVfgW6d3GTTxUgLzeKnGFjapFyiS59fiqT9HwC37nSjn3p4m4pesU2zrNFF", + "account_public": + "tpubDCTjBFZWFk5XRUqWdicc4whhfLtXz78aVPertWLX137ZoNo1AtVGgbEuSbuLtj4R8xjaokoUocR8u21Xe8jEi6yjiVvc7y88UdsKq1RF2kx", + "address": "myyys6M33DRxpKYM6sgFLq3gNpQxHDQU5k" + }, + { + "account": + "tprv8fmh2qXG7NPrbT4nhY1HqmdeqBwd4zSYMa5Aq2eSwQY4DRKaC7kZZNT1zsE5cWB7aRoGFnGsTmLAcqhLx5D1HRQMLEw7KxSEVAqTH3JLZJu", + "account_public": + "tpubDCTjBFZWFk5XUv6abBftFBHmQDTZEKdSvsfx7YgkMgLT3uaLpWa9js4tAzqNyj6fRPJMv98eEzpXMtw7cbUYN72TiioBVn7pa2Kz9EACSUT", + "address": "mxuPPvRkscYUFg43d9W3tiArvvG34WocE9" + }, + { + "account": + "tprv8fmh2qXG7NPrdHa2TjPJk7VSzN8mVfaWZSP8rn9LmEM379JGZH4vgDrmVyfdp7q2AxY8zTum3DjAisGYUScTBsr1RSERFPgjHKHhf4D2qDr", + "account_public": + "tpubDCTjBFZWFk5XWkbpMP3u9X9ZZPehezmR8jyv9JBeBW9RwdZ3BftWriUdg6voqGPPfkgBGhLFRNvuWW7GFyjfyow7dYYtcLXF5DF8ojCPB1E", + "address": "mtLj2XtN78tEwGNwt2dgeRCjJkXaa8KSPQ" + } + ] + }, + { + "coin": "BITCOIN_TESTNET", + "seed": "6d2200e8a69e9062b16a64d5e62216414332dfecf9799eb6fdd7b249b55e2a2c", + "master": + "tprv8ZgxMBicQKsPe5erJGmvkR58WP1ABS7v4V1QAvGPqtG1UkWagfN5eShT75rMvJn2RZRudhBFoZ3YxRzjjBG7v9kauCDBcdncoFuKyR5t8Eu", + "master_public": + "tpubD6NzVbkrYhZ4XYgeBvSX9pjF5QX6LmJpdncBTSJhGA4QKEmMK4BfpwKKHFKwfmTZU5jahm9wGoaTsWpgb5Yd764pCCYcBR9tCkpocMNTxwK", + "coin_private": + "tprv8eMJRKg4EdNDsiP7uUUGQcuPRYbWqT5FaV6kAFLsgjauuGeGr4n8YDgcU877WRdtf5rCfzNGH2UQNSmnTQyntVdyN9i2JzhwB4GvZVortCZ", + "coin_public": + "tpubDB3LZjiJP13tmBQuo88rp2ZVza7SznGA9nhXSmPB71PJjku3UTbiiiJUeDQoebXByuzGZNnCWgswWJJuo1vJ5NGysTSPzthyjFm2ucUqs1F", + "child": [ + { + "account": + "tprv8gjrtRuZeCtcCb9bnW7LpsgunErREvg5nKH1kE5MFzGHWnhbSrPYgNKAXaH3eEvQfLaWykhCckYSczPVzuBJwr4roJjBzWTjAtLRTwXRifb", + "account_public": + "tpubDDRu2qwonaaH64BPg9mwEHM2MGNMQFrzMcso2k7egG4gMGxN5FD8rrw2hiznA3pi2SQKnQRjR6uD9t1Vbv9jtAEKhWHqoUDKmW1NWJMFbZS", + "address": "mpfUSU9YASGcrQfc2F185nQfvcVbN4Abd2" + }, + { + "account": + "tprv8gjrtRuZeCtcF8LmYGQgrPgQca4KKeybsLnjic8KTn6ARhgEanHxEr4kRS1siPJxcpfURDmg4vduko98aXqcqEtsxt4J2G4Z7qZYgDXjvgh", + "account_public": + "tpubDDRu2qwonaaH8bNZRv5HFoLXBbaFUzAWSePX18Act3tZGBw1DB7YRLgcbZhyhXv4sFJsSHadADtY1TTBSfoMQeu5VPueFDW8rjaGkRPW1TX", + "address": "mtLPd8cRhBTddenZUGtPi1sZaLFZ847uAi" + }, + { + "account": + "tprv8gjrtRuZeCtcGH9unPcjBn3tar5svUU4VwKyULtD5DuVdDmrs1uPwRwu4ghgwDrmMbf4xNqMW2cCtr3g4xmm9gtCtcHaxSsqsP6qTs6yeim", + "account_public": + "tpubDDRu2qwonaaH9kBhg3HKbBi19sbp5oey5EvkkrvWVVhtTi2dVQiz7vZmEpxFgQa1RSGhh11u99K8wDc7CRQgfDQwyubH46MkapttUqmkimk", + "address": "moqfZoQ4LLSF6HHyW8RuYXaE2HnUMghKs7" + }, + { + "account": + "tprv8gjrtRuZeCtcKqh7YikzkjZMbYdbCFaEwFxdfz3CiQSH2mnMbQYmpnxbKXsP6uhdf8RuYiS4YHRmFYvFWcjQW6EePtNKzVhc4DUo2XEWr8U", + "account_public": + "tpubDDRu2qwonaaHDJiuSNRbA9DUAa9XMam9WZZQxW5W8gEfsG38DoNN1HaTVeoXLyxiNNsdV8R26PaPSdPbdvikfKCMRsHwF7YRqBvuNYGNr64", + "address": "mnf4o3YRx5VPdC1N6Xhyuuc1UZjyJuUPpH" + }, + { + "account": + "tprv8gjrtRuZeCtcNn5wcSskqceMWQiQMEF6c4aQKAhhBPyPejZeYHiTwgFhyddpfqbV6yVc35tnMDZjr1x1PcFbGZc15ZSxce5JrnoYDa5NS7J", + "account_public": + "tpubDDRu2qwonaaHGF7jW6YMF2JU5SELWZS1BNBBbgjzbfmnVDpRAgY48Asa9myvAWo7D81HWyLEgix97CFR6YN2aKUjn2MkLWhidP3ykWn9JwH", + "address": "mn2MBYrMqJKbRSchoiTFGchVUBWPvLcb36" + } + ] + }, + { + "coin": "DASH_TESTNET", + "seed": "8b71ee55c7dc7708bb928dbdbbfd9c9633a74fb9abd7821754441f3f7eb740fb", + "master": + "tprv8ZgxMBicQKsPdjkX27gNYXs4JHtSUErTsZueai99shBshgP3d4rxhW35BpXjvFyL9Tjqv8KnrtxZtngWttpZoD5WQRov9kgCqcuG9YmT3yi", + "master_public": + "tpubD6NzVbkrYhZ4XCnJumLxwwXAsKQNda3NSsWRsEBTHxzGYAdpFTgYszewMy9cQGoaYk7zcfEusdJPUFmx7ie22TTRSrYeGn9gG6SDAw3VhNa", + "coin_private": + "tprv8dUDKDQtV2crxhCm9vjVep95BUnwpQ4sZsQ1Fa225uzSQFVpgqeKSxRJ3TJN1xUWrs6UFwAAQDK5Zigz4bBadjf14kS9VR8L5aNk9Qgch6x", + "coin_public": + "tpubDAAFTdT8dQJXrAEZ3aQ64DoBkWJsyjFn9AznY64KWBnqEjkbKETudT3ADaiXkebW5YrsK8o9ZDZg3jFctMzASkZC4wPzW8yKtoWMbZ37S3U", + "child": [ + { + "account": + "tprv8gAEHkSj6QNCZ49TN2KSRZ4M36XeDf6A2r4j2ji8qS7bViBkHxAUWQnVrZtDwpfnpoVyQeUKCBRpTUwjPT6CAKr5BnjHMLHtd4SgR1c6KBk", + "account_public": + "tpubDCrGSAUyEn3sSXBFFfz2pxiTc83aNzH4c9fWKFkSFhuzLCSWvLz4guQN2iyeDX3T2m3NbeEyLSviLiptwW1vKzYBW6muF7YAN2nm8cuAwTX", + "address": "yPVKdD9FmC52jhF7U1sp35yTjwP6YMRh3F" + }, + { + "account": + "tprv8gAEHkSj6QNCbhiBr5jNkuSDBHPdrRJ3BHCrqPT6SjyxhejaQr7yiD5ERZu39eW7uECFD2UL1dcG37FZiEaTywJq7Snbj1aL8RcB3Rqroun", + "account_public": + "tpubDCrGSAUyEn3sVAjyjjPyAK6KkJua1kUwkaoe7uVPs1nMY8zM3EwZthh6biZ1AaBHspxcWSRXvN29kej7UnKcqiT51RqhSpRDVn1dtwa1ckn", + "address": "yRZzbLFDdm6dJN5CdA8SRz4Xg6GPMYCxi4" + }, + { + "account": + "tprv8gAEHkSj6QNCeSipgxQu7csqzZhwfEb5fn3ZRUUJxmbG6Akz4AA7q6QX9H39resDmA89Gmbq2jS1cXEBzpWDNWf6KwEdgsCRWBqfMiR1L5Z", + "account_public": + "tpubDCrGSAUyEn3sXukcac5VX2XxZbDspZmzF5eLhzWcP3Pevf1kgYyi1b2PKSuv8qJW8atQTw61kGr76wVenDSsk6zvrxqeViLFsTm8DtAzAiu", + "address": "ygtb5YviVVvHkxFLWkgQD1b7aUnodTd6Nn" + }, + { + "account": + "tprv8gAEHkSj6QNChZ1MhNRBosUBBcwhY8znQLjfutDV1p6hqiEaeNSBUFAjCoXuyVAXe6nnTADG9y5Qg13f9QRqezhcyY31decias5YR9Ak2Jn", + "account_public": + "tpubDCrGSAUyEn3sb239b25nDH8HkeTdhUBgyeLTCQFnS5u6gCVMGmFmejnbNwWPMs9XGPvBiiQCiyqwVMRerDUnVFa95m1AiqVwM7q8wZ7vvTU", + "address": "yiWFtZoPF78DRLn1Hytqj8rRLgmbFwGRJY" + }, + { + "account": + "tprv8gAEHkSj6QNCkoXVjozCwTMt7SoZsQQYHPtJAFxV3jBou1Yo3xtPpsJn4Nf1wpH3EngznhLJKM8E1WvrpzAuMEENB6L7FZU3bku5MBBcEcy", + "account_public": + "tpubDCrGSAUyEn3seGZHdTeoLs1zgUKW2jbSrhV5SmznTzzCjVoZgMhz1MveEWnFmrUou2QcqeEWUMskMMZMBe3vwrtjPcHQ4KpGykNiJgF7ezN", + "address": "yUWnbSRBghEbVxwhfCxuxUDX4KBnpE9eAN" + } + ] + }, + { + "coin": "DOGECOIN_TESTNET", + "seed": "51cfbc0d958af094f992a714eb12531376a4a69c3f3b0f7c29500c6d93a2c42d", + "master": + "tgpv1aRS3XcGkbKXEH8JjYfMnHGn5tokyC2WiavuY51FssHCM4UeewFJHFvzrZQrt7oiGVysEWPA6AadaH1aToPnBEaBQ8Ftjs2gDcCmmr2h26i", + "master_public": + "tgub5KJTPDYAJjyrX8nTmnHKu8pNYTBPoK4E1Bi7hBQEfzLCu7bM4ho4vZLeRqJXEQxJVFda21VZPW5qrVGaxizEUTRCT78mZVp1uRgpvVscFxS", + "coin_private": + "tgpv1edMWD4RX37FdSa1MYcfTqCQbBTBhG96AVrvmVET4yM9A4HSMevgdu6dCt2YQUYXncCekA9RkMta7Rccnfb88aqPnnyF747j2LtGj4xRVau", + "coin_public": + "tgub5PWNqtzK5BmavJEAPnEdagk13jppXPAoT6e8vbdRs6Q9i7Q8mRUTHCWGn7LepYSwDge3RnrobU4pCgQawVgk2KhSZRGtyH3EsRKEuCuhJ64", + "child": [ + { + "account": + "tgpv1hsmyQYiRvMrPTuoEf6Rqy7e56fNHUPaFTv2bqqzpFgFTffk5so7gBV9G8PZnHC6ANE7YcS5qhSejqGuAmcPNM2cvv5yW9A9WQyujQsdHL8", + "account_public": + "tgub5SkoK6Ubz52BgKZxGtiPxpfEXf317bRHY4hEkxEycNjG1inSVeLtKUtnqM8hGfZ9KRTiUQr4D3pHiiimKMXvPWcge7zxY8BkRg7TxwxNsrQ", + "address": "nhwnCMqpSVEBiLKEiP3ZNppp2sGMWyuNAK" + }, + { + "account": + "tgpv1hsmyQYiRvMrRcEezYoqDVcnYCBSdjv2SARuVfn2GRwpTQgn2Hz5roA4AU2Z5dKuJkQZ84Ce6vMw8x8tZgryxSyjtR2pSKUnz2Jrp1NNVro", + "account_public": + "tgub5SkoK6Ubz52BiTtp2nRoLMANzkZ5TrwjimD7enB14Yzq1ToUS4XrW6ZhjjR4ZsJ5BLuvRFbiLkDweGG8qL5JB76Lux3iJsAaCZx2qxby9xa", + "address": "np2E5rF9yqdRjg9VXzgbPdLidXHTpgHpNn" + }, + { + "account": + "tgpv1hsmyQYiRvMrVVcfDr4DsxGDgD4BDmnYEnBPdvXUSsPq9VVy4pA4PKu186pz9jodxKMTHXdNKq4JdnA4Nbv35Jt5FGNECPgsz5ojj9Zypck", + "account_public": + "tgub5SkoK6Ubz52BnMGpG5gBzoop8mRp3tpFXNxbo2vTEzSqhYcfUahq2dJehKLpcAHGzJU1UkgD8ip264yuTb7g2hKhitZZ4xVyGvCCSeCs4iE", + "address": "naDshjGWF2xgJt1n8VoffKe8Z9aNMewUKX" + }, + { + "account": + "tgpv1hsmyQYiRvMrYuyvXpUSrpqfCQYSrkjp9HUbEgVpQKNsnPDkWFnUgthbbfJSoa8mHU1J8Hds89Nzqstihkc2Z32K37Jvr8qXZfQrXocPsak", + "account_public": + "tgub5SkoK6Ubz52Bqme5a46QygPFexv5gsmXRtFoPntoCSRtLSLSv2LFLC7FAsTiTxyjaaXKhcoMecVgbWzarh6ZKbqbh5ejswdMFpRbtckueRW", + "address": "nrriusE82Ji2b5GDkbD9qgYLaSLA3X4PJV" + }, + { + "account": + "tgpv1hsmyQYiRvMrbbXqCpuZhBPcKLNvzpAieZAHbqwTHTALGmx7aKTQaiTdr8NrBGnvaZJn6v5DXFRpLkc3FXt2HBRHb8iE2uZv2xVZhNmZNcf", + "account_public": + "tgub5SkoK6Ubz52BtTBzF4XXp2wCmtkZpwCRw9wVkxLS5aDLpq4oz61BE1sHRQFNsFmEZkewSumSencfak2rD1R5UjAvUCgqVSxuUWQTYyVJ8v8", + "address": "nWk85meZAuVr6hY4oQo1LVQRYd4DqFkKqM" + } + ] + }, + { + "coin": "ECASH_TESTNET", + "seed": "09bacd080e25c9dea579c7398567876ded0967ca79ba6e95c1d1140887a868cd", + "master": + "tprv8ZgxMBicQKsPe8jfStvnPfxhuZRV11zxi9x5XAYKNK5FH3NUfy1VvroBYASUZHgGgy6rFXk3Gzir9nCSMPSs7orB8LeoGEzkTxZzr1iJAcJ", + "master_public": + "tpubD6NzVbkrYhZ4XbmTLYbNo5cpUawRAMBsHTYrogacnase7XdFJMq67MR3iHWGdaUFmNHyWPoTd1XdW6A1vKH3CDeARwA47nKx3FytJ2Vkw27", + "coin_private": + "tprv8evVAyCFP6kTTT56trq9Q8Cv8uRrLcbmA55Ji9Fwawnht26qEnuKb9wLRbN1AG4mBiJGGGmYHpSqGiD7opywdnAym9XyjXoegWbESkNqjXK", + "coin_public": + "tpubDBcXKPEVXUS8Lv6tnWVjoXs2hvwnVwnfjNg5zfJF1Db6iWMbsBiumeZCbkKmCGndw7kpMYhFoUsXQ5Zvt3T85kaijDXidukLbkwvhieqz5V", + "child": [ + { + "account": + "tprv8ggsjtTrka4ckBTFwm6MqACjLgdYz2u8dCsyu7LpGWRmayoL9vKR7d6A48xGUUnzUC57u753872pSD7ZrFJvd6qtsAy2QyzQzSrSJgyZbpy", + "account_public": + "tpubDDNutJW6twkHdeV3qQkxEZrqui9V9N63CWUmBdP7gnEARU46nK91J7i2EFZbtWXoVGhCwgaGR9MiGesy5yHDcjmXshFbJQrBVAeAqrPjDcL", + "address": "ectest:qq8van6jpur7aur7q7zs32hvpwq9fad47g40aerasy" + }, + { + "account": + "tprv8ggsjtTrka4cmbZQio1Jv5Ks2YhvHNW8vWmYjKXwNEmMSVZDXBW5dE2naQj78owovfzRUaa1X8DFfqicKygo9uVTizk8hYnrEwXyi92JEp4", + "account_public": + "tpubDDNutJW6twkHf4bCcSfuKUyybaDrShh3VpNL1qaEnWZkGyoz9aKfoieekYLDWvTPpToQQuhtzKmSy33osNjyhKe8rdXENvhhVQSEwrEz7DH", + "address": "ectest:qqhl8vksgpltpx6wlxhnr9lczxulva7kugnaff78uc" + }, + { + "account": + "tprv8ggsjtTrka4cqdkYiEY4Vzb2DfvCU7bqGET3qQRG4ZW5wfhtehfqgKRFo7JbKWRsvmgQKDVUkMMAtJ9vgQCXnc6wV4XdFvocSEddMbbF6ye", + "account_public": + "tpubDDNutJW6twkHj6nLbtCeuQF8nhS8dSnjqY3q7vTZUqJUn9xfH6VRrp37yFmJ8bn4JKLXLJg8c3hhdid2YB6xMZcZfxLqAtFjkFSnC1ZV1Lg", + "address": "ectest:qp4vm8xg8jlljl0svpl78s02c9899dspkcj8f9kcgg" + }, + { + "account": + "tprv8ggsjtTrka4crQWm5AbPV31xULJFTNJgBe5VeVdy912g1CwiySEeUVffVTCQMHXwBRvBZLBpKutQUYkGjZCUiZ2gfa4XSVZZxhs8CJLKzBC", + "account_public": + "tpubDDNutJW6twkHjsYYxpFytSg53MpBchVakwgGw1gGZGq4qhCVbq4EezHXfcm36iDGatVJGeosJmQ2Zmg2c11bjV1iuRbxZyyKkeuLXk9zER9", + "address": "ectest:qz0lsg89gj9w03tgad3eddhavlkdsu8znuswrqljre" + }, + { + "account": + "tprv8ggsjtTrka4cvjM2hzJ8vfL3MdR8L3awkSnZsj6iSJH4gnKzH9r2QJLTfgFJV9cfzgTvACdW8jPPHTUf3PJFs7qvJgmQMVgGNTZS1EuK3ks", + "account_public": + "tpubDDNutJW6twkHpCNpbdxjL4z9vew4VNmrKkPMAF91ra5TXGakuYfcanxKqqvw62HGM2FA9ZzK5z7YLBwTAxtmeEPqfrhhkRMZo6qebAKnWbD", + "address": "ectest:qqptqfw2pq4jvmvucr5addqv3v26u2lkjcy8tfe53s" + } + ] + }, + { + "coin": "ERGO_TESTNET", + "seed": "5fb1f577e121da3ede82a44b0d201e91bb97debf51f98418b708d1459bc9a593", + "master": + "tprv8ZgxMBicQKsPe78E1RUrtVS3FbRY3nXU9SrtCv3mkUMNiyx9yDSmZaxioLMmn1pSDQ1GBmBt6DT3XooSzmSgK1fxtBwrm2mXSFrcFJPVUeY", + "master_public": + "tpubD6NzVbkrYhZ4XaA1u59THu69pcwUD7iNikTfVS65Ak9mZUCvbcGMk5aaySaB3JLvi8wtyjVL89SSnapvuqXZFFDFnNYjeXi5DFMgywVG1qc", + "coin_private": + "tprv8eCejhdkfoYBMGJitTAgCkhK9siV6v7T8iHWao9E9PnbhVMsmEGDzJyoUVNGbvTaaanveLStuoLvsTKZvt6WDv2gEsnjZ4dzE2uDn8D8Hoe", + "coin_public": + "tpubDAtgt7fzpBDrEjLWn6qGcAMRiuERGFJMi1tHsKBXZfazXycePd5pAobfedqdUbFY1qoq1LSM5xe1MDZDfFPrGQ7GEXWF7zi9iF6QZu6hxLX", + "child": [ + { + "account": + "tprv8fifF32cDZdpxU79miMEXK84HGWGvecw1oh72RDj2JM46dhYBsHpSGRZsFCGUmabYQuPeo9gbvBL2pRCQWeiLDp3o92RFZQenXN4wji2zaU", + "account_public": + "tpubDCQhPT4rMwKVqw8wfN1pvinArJ2D5yoqb7HtJwG2Sa9Sw7xJpG7Qcm3S3Q8gv3LQC6DRhTH7MWAfqBZrM7G3EMRftmGfbhqHQbAUWzbAsQX", + "address": "3Wy9ie83iaQmvxbeGyqkeNJZ24RocgifHexWF74RjPsFXFM1eyKn" + }, + { + "account": + "tprv8fifF32cDZdpyNTrmYUz97ExwZcB7Lq9qA62Hc1GW588wXtuqaFuRbwub1LgPmqBwD2Yf3Nuv7UDsgViwr6zhxfPKK9418CGkMUeVC2CgK9", + "account_public": + "tpubDCQhPT4rMwKVrqVefC9aYWu5Wb87Gg24QTgoa83ZvLvXn29gTy5Vc6Zmm9wqxn4DLnvwmMRU8os151KWgHuV8PDYwBz3Rndqwv3o4Eyn1qV", + "address": "3WxSRfu8tw2d26HTdsHFZasTok2a5HrB63ZQbYS5v3eckjvm1zz1" + }, + { + "account": + "tprv8fifF32cDZdq38vzoVmJc8DkJpCxnSLfRqnTBmcfnTbkohGgqkgH1tNvpr7Txq5DZx586ZJjjhEs4Npe95jBnKPFgrwxc8NPFY4ZqKptHet", + "account_public": + "tpubDCQhPT4rMwKVvbxnh9Ru1XsrsqitwmXa19PEUHeyCjQ9eBXTU9VsCNznzykxvZrTfZdLKjHeJaSWmoR9mvyTzNkPo2kTxoo6RFugC7CtB3t", + "address": "3WyC9BYVTwER44ZP5kgDxzDZjmeD5J7piuCj6VCjXeg9Lx2TipDF" + }, + { + "account": + "tprv8fifF32cDZdq5SsBQGtG9B5nQA6MeVFYwP4S3iQy8gaXQq2Q4e8WBXYhiVWdMQMmtu88SGFA5zQ2LPvgoRwpbKba2vpmFcgGhygLhjT43z8", + "account_public": + "tpubDCQhPT4rMwKVxutyHvYrYajtyBcHopSTWgfDLETGYxNvFKHAh2x6N2AZtciKCFFgmiVtxNY5baDePds563bJ4zzRtAXq27iqJJ9CQvBUBcV", + "address": "3WxC5ZppSuLc6WV7CtdRJ71Ct6NsucQfXLKHC6Tja9tvo386ubr2" + }, + { + "account": + "tprv8fifF32cDZdq6mpgVPXf7zcxdYbV7tD14SK1LrkvXpAXmbcx46UjEDSMbLsXnTdYnKJBeAW38T7DpQZdyWK7fGhq86e3NTe8eY3vzzZuP7q", + "account_public": + "tpubDCQhPT4rMwKVzErUP3CFXQH5Ca7RHDPudjundNoDx5xvc5sigVJKQi4DmWYkmavaQrWXq3ZrhVqqncnDjizwXcs2HrP6VsrPSr3GHwH4QYc", + "address": "3WzMJcSpifMkc9xycCoYqCWGghVohNiQ4JouQYpeQKuxFpW58YE7" + } + ] + }, + { + "coin": "LITECOIN_TESTNET", + "seed": "bc3f7c32b167398e2e451fa5dc18c16d6b94d24f24bdd7416a1a3e8a34b36a55", + "master": + "ttpv96BtqegdxXceQs9E1qy8EMxZ32n8J98RcweV3xhRMsr6XFn8QXFqEUbvUFF9WAJsFdaMvTCvb95aY4BoVcZx1iE1oaa4unq96uVkPefsmWH", + "master_public": + "ttub4XNESS7BCg9c2jr4GTTWJwnmUbUKNPh5hTkWiwTiJ4dh7cyCjSJGF5iBibZKuosvHzLVELkgLZB8LStwAqUqzNxukpdum3fQH31TnaobCyR", + "coin_private": + "ttpv9AprXuBoBrgsYEaZJ6pnTUyvKtwn6vb8iuTNWhPR1kcZVo8rUy37gr8wPP631o7jqp6E84T4vsDoUQHWC3qNkpJLptSZgvBWe2f7yCtTcS3", + "coin_public": + "ttub4c1C8gcLS1DqA7HPYiKAY4p8mTdyBB9noRZQBg9hwwQA6AKvot5YhTFCdkv9JBnj6psU4oACVYyvgV42ggZFMGLb88FZTgbR3QVBCSHfVwR", + "child": [ + { + "account": + "ttpv9D9s5abwhoPjVbf2d7tYaR9xDuyH9HicdSUGMkGJSuB1zvTqhFLaQ6oPivS14P4QyLwc5gb5dLPVjWqB2jUVZyxwEYMUVrc6N5tfrQ7i2mu", + "account_public": + "ttub4eLCgN2Uwwvh7UMrsjNvezzAfUfUDYHGhxaJ2j2bP5xcbHev2AP1QhueyH6SfCmqK3AHqHAGq3Hugu8kurd9ySUCbm5226ipb8YNupDLZu3", + "address": "n3SWKDcjPKDxB2BQxVfCjDpx15DatDPGme" + }, + { + "account": + "ttpv9D9s5abwhoPjZBsLCtMhdFWyvXWhN1msHgvAe8DTFQPZENsy1uoKK4zxGu4u2gpHbRCKbJ6Hd2mJZzEYkaj5oyHEeVLPuoa5XuCEaFJdFVc", + "account_public": + "ttub4eLCgN2UwwvhB4aATVr5hqMCN6CtSGLXND2CK6ykBbB9pk53LpqkKg7DXJKrofJnRtJBop4mEWL4i4nYhuTp5U2BSDDpfr38u23UBCCdsPL", + "address": "mtiUj7GqFG9MtA6zzNH1wU96xdESrZLGHB" + }, + { + "account": + "ttpv9D9s5abwhoPjajFkKyAkW2zgKqv5uieKNWeuozZU5FW6Ds3SmVmRBorqPubEDs8inu6wNJCnkCkjTGorKCaw3XyTnuFi8zkLkWAPDmhnkCG", + "account_public": + "ttub4eLCgN2UwwvhCbxaaaf8acptmQcGyyCyT2kwUyKm1SHgpEEX6QorCQy6eHjR7KmsMg363jVtdhSNgofu8X13okMY5H1w2tttByEHxds7bYq", + "address": "n2K4rzAryuCSbrXijmMkLmwNma9hRgdnCP" + }, + { + "account": + "ttpv9D9s5abwhoPjfMsFFEMWkrPqK4bCEvoZRBHvDgiTL519CGr5tJbVGYxLkdda7uQk7EnhJAf97LjuwYyW1wJhPm1hhD1gFBfJBEbMkpksKRQ", + "account_public": + "ttub4eLCgN2UwwvhHEa5VqqtqSE3kdHPKBNDVhPwtfUkGFnjne3ADDdvHA4bzzPENJWqXZ3LhiYHmnHBSTL1t9KHtPJpYALnEVRazihR4S6pPci", + "address": "mhZAeurbejTbtV9rkLQvSJTVMyxXz4miz2" + }, + { + "account": + "ttpv9D9s5abwhoPjhCFMqYpqGufU8JDvyrf5fMiLGKxMX6JqxW1vWLWxMaWAUjK3yYmequkQhsc6natXxkiRbE5ayjiERSJXjyTeZdT88AZHtRX", + "account_public": + "ttub4eLCgN2UwwvhK4xC6AKDMVVgZrv847DjjspMwJieTH6SYsCzqFZPNBcRj5Z3RjdJTXgsq9V9zEVfXq2cesmq4bU358RGXgbdTM8gUuXu4BU", + "address": "n1yTTYae1A2xkxfvqZwidaboSgPG5Xi7EC" + } + ] + }, + { + "coin": "ZCASH_TESTNET", + "seed": "18f835c036580f254daa9b56469465efefada6f3f6a4c193fb3ad13054535d7f", + "master": + "tprv8ZgxMBicQKsPepbuMLF8Dc8GSLnXQuaDnXcU919a4qm9Ms2GVvNZAczjDHvAtXyrLdPTtrWu79mHgoMRKeCDX6oYZv4MkcRJ4uDssnPcbJP", + "master_public": + "tpubD6NzVbkrYhZ4YHdhEyuid1nP1NJTaEm8MqDFRXBsV7ZYCMH38KC9M7cbPS8AXQWDCjWiFahjqViVyjkyfzejPYdHTyh7jiLvNDt2fzLb27B", + "coin_private": + "tprv8dY2FFmKobuRSNo523nUAyVaDXhBzsuC5spv8qwUaNU4uayUj2ckNfMHK86xQ2qWdQKt2HvFzLH1HxKJte3P9vgdJBPxEXBfz6H7Sd3y2jX", + "coin_public": + "tpubDAE4PfoZwyb6KqpruhT4aP9gnZD8AD66fBRhRMymzeGTk5EFMRSLZ9y9VDtwuZjeAmaja5RPjyLPfm9AW8BN7476RWwJWzFQBYBcSSwx8wq", + "child": [ + { + "account": + "tprv8gyHLnFu8sN9Esw5h7T7cGJd5KRmAadfYEtfAanv4X1BqGw841AcVxPvu9SWRuU5GpiBTCq76bxGmuinUzXMAfQzQ1XeeDyX1H7VARMRGG7", + "account_public": + "tpubDDfKVCJ9HF3p8Lxsam7i1fxjeLwhKupa7YVST6qDUnoafmBtgPzCgT1o5K8mSeve33qb71tDH2vYfqV2mBSGAmgSxuK5qegJ1paUwfzemPF", + "address": "tmDpZpucmyLEnwZNhdhDd4RFsJBCB1wvqAy" + }, + { + "account": + "tprv8gyHLnFu8sN9HYBP5yqM2Hf5AKMVro6zv5FFL4ymo6VGij8pGCVg9oiLdd29jZFzjPJmRVAdgUNm8vhJwD5mDc31RUwkZDS5Hom5Qr3Jw2E", + "account_public": + "tpubDDfKVCJ9HF3pB1DAydVwRhKBjLsS28HuVNr2cb25DNHfZDPatbKGLJLCok7XHi3mrUroMF4P1T2MwQQeB9iYCJHXYkwndnBSiDzkXztGW9W", + "address": "tmYGBfWCeGPYuG3WqbtH4Pbpdihcs3n9obG" + }, + { + "account": + "tprv8gyHLnFu8sN9MaNzXDrBeXTvvMVvtvHy7EAdeu1Whvpw2QssJSLpawJhK8DRoqvLLheGpKm3qxca3UZ6ZFsC39gqfHPtPDnjaHcB28zGipM", + "account_public": + "tpubDDfKVCJ9HF3pF3QnQsWn3w83VP1s4FUsgXmQwR3p8CdKru8dvqAQmRvZVH8wJbLb4pAAisWd8vgyS3YzLJu9ZxVXjZGeRJkuec9viNkgK6a", + "address": "tm9wE5QXkd5cenAKjP42mkQKBrx6q3NN1f4" + }, + { + "account": + "tprv8gyHLnFu8sN9PE93gqXuYxyJF9uJ5RZ2BfWFbQz1STQS3VDHpq8bixSK9AwqNKUnmSQ38tBXRwhQg7ezRbkKYnQnyoeZGqkHU91D2Vzv9x1", + "account_public": + "tpubDDfKVCJ9HF3pGhAqaVCVxNdQpBREEkjvky72sw2JrjCpsyU4TDxBuT4BKK53wmmeLGRMMayEfhbxhierfkhxuDEgzAaxYY7rCJt7bvSVxxU", + "address": "tmUzh8gzofSrg9uDVriJnH75iPKG2MRiNFQ" + }, + { + "account": + "tprv8gyHLnFu8sN9TJuP96M9dcHCSgpoHE2a7LR4QXCHq3LA8SikNHrbfa6QDDrd8ErUbhZgddEqUYhDbnjh7szr2NswJmnays71s16esQGeRcc", + "account_public": + "tpubDDfKVCJ9HF3pLmwB2k1k31wK1iLjSZDUge1qh3EbFK8YxvyWzggBr4iGPKmvjq6nYw3suRujUkb3hZfa1tfdvPciFddA6XFUfus1KpRKcee", + "address": "tmFBFmCtbVrrVRuSaPeN1g4hSuBA8WhK4B7" + } + ] + } +]; diff --git a/example/lib/test/bip/bip49/bip49_test.dart b/example/lib/test/bip/bip49/bip49_test.dart new file mode 100644 index 0000000..809736e --- /dev/null +++ b/example/lib/test/bip/bip49/bip49_test.dart @@ -0,0 +1,28 @@ +import 'package:blockchain_utils/bip/bip/bip49/bip49.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip49/bip49_coins.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; +import 'test_vector.dart'; + +void bip49Test() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final coin = Bip49Coins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).replaceAll("_", "").toLowerCase()); + final b44 = Bip49.fromSeed(seed, coin); + final coinInex = b44.purpose.coin; + assert(b44.privateKey.toExtended == i["master"]); + assert(b44.publicKey.toExtended == i["master_public"]); + assert(coinInex.privateKey.toExtended == i["coin_private"]); + assert(coinInex.publicKey.toExtended == i["coin_public"]); + final accounts = (i["child"] as List); + for (int i = 0; i < accounts.length; i++) { + final accountInfo = accounts[i]; + final account = coinInex.account(i); + assert(account.privateKey.toExtended == accountInfo["account"]); + assert(account.publicKey.toExtended == accountInfo["account_public"]); + assert(account.publicKey.toAddress == accountInfo["address"]); + } + } +} diff --git a/example/lib/test/bip/bip49/test_vector.dart b/example/lib/test/bip/bip49/test_vector.dart new file mode 100644 index 0000000..37e22a5 --- /dev/null +++ b/example/lib/test/bip/bip49/test_vector.dart @@ -0,0 +1,884 @@ +final List> testVector = [ + { + "coin": "BITCOIN", + "seed": "d749602cbce28b98e7e286c44ca0284330c3837a1454482ef57a02d32c4a26bb", + "master": + "yprvABrGsX5C9januGBZnscpXUA3rTxRoLfFnKVmPReJejTo7H2xqvNYjhTmWeZM4SaP14RWmxxJDqaKe2EAVfjwjuv59zzjMTGSQKcStgaeYxR", + "master_public": + "ypub6QqdH2c5z7967kG2tu9ptc6nQVnvCoP79YRNBp3vD4zmz5N7PTgoHVnFMumVSTCrsUeaaReZMxSusAwNvGRBdBuHdK6usnJ5HDKZvp2nPCS", + "coin_private": + "yprvAFzGv68pop2ZEcX9K9cv4qEUju4uVie73UZ7LZyH1VADXaaL6cnfg7gxjLDCN4Chehvg1FTjnhcAx4YWndrKrzFDFrkqVSbCe1BKYKqSjqj", + "coin_public": + "ypub6UydKbfieBarT6bcRB9vRyBDHvuPuBMxQhUi8xNtZphCQNuUeA6vDv1Sabspq3CFfL9Bw2dyMQ58WW5N234iv9RGK8t1GxuSuEbnzEfus3E", + "child": [ + { + "account": + "yprvAKN9QUupnwt51HxSNemdukUiras9rbhJoiKierjDG1sJxDh2btnvZJWTUFQ5Uhp9ZqVTMfQpGC4PNYV3bVeU3igCdExVMdWC2BStTTKFj5c", + "account_public": + "ypub6YMVozSidKSNDn2uUgJeGtRTQcheG4RAAwFKTF8ppMQHq22B9S7B76pwKYkcLmA3ShRf6wDtZ4DvnSjRZdbNsA8YpEGvvnLnYggTHJmBz5K", + "address": "36zFCqmRkE4H3NYK5Le7mYQVLCGQJujVwW" + }, + { + "account": + "yprvAKN9QUupnwt53QBVVtgc5tpfVM6QbzHm2a1UpYHQbp5d6XxWyTmKV22yyXvLhcDB9mTugww2hZSBJfVUiqPqimCVBuUJtXETqoFDQbeqYKH", + "account_public": + "ypub6YMVozSidKSNFtFxbvDcT2mQ3Nvu1T1cPnw5cvh2A9cbyLHfX15a2pMTpqHeX7P2idT81roJ7HU4Arwd94vpTxndkrwpRqgb7xgLN9w8xWM", + "address": "3JYYWFQyNtqHLUsaZQQR1BqvfSWqY26yfu" + }, + { + "account": + "yprvAKN9QUupnwt55V9sgeqCDuRAJ8xNZGKfLY7VQ6xRsCKGkV3qcur8mapbmSkDJweybSdGZEYBdwaoWoMtuCbhJkkNsaG9EShTCLU11UgpTCQ", + "account_public": + "ypub6YMVozSidKSNHyELngNCb3MtrAnrxj3Whm36CVN3RXrFdHNzATAPKP95cirZmFgoHBfqXpKTBrgsCWkh6ZiXTsTERem7YQyW6gsitcnuBev", + "address": "33TptDL7EZweWvjMJPjmkMxMNoTpsfoPzX" + }, + { + "account": + "yprvAKN9QUupnwt56YVfoSXdhGEsvnWVDyehCf6H5hxGaGMZ15ia4T7Pgii86vzHRPGDa5UxH4x6nkkVCD3v7d8hitVFECTQfR7sHDzLGim7Qgw", + "account_public": + "ypub6YMVozSidKSNK2a8uU4e4QBcUpLydSNYZt1st6Mt8btXst3ibzReEX2bxDZsmzK7G437QakVuHiQqk5qxwonybBtQhcvteVwSZkhMm6RzsK", + "address": "3GBUpE267GRDs4BCwgGtu53kxHjnkz3CiR" + }, + { + "account": + "yprvAKN9QUupnwt5BHfAJ161SiddJS1BvUgsGQS2ZsSSmZQNsCGs5gzPJZXBRA9rHoK39oScBwUfzVuotezt8N3CGb1stnd9ZM1fCAriHf65VW2", + "account_public": + "ypub6YMVozSidKSNPmjdQ2d1oraMrTqgKwQiddMdNFr4KtwMjzc1dEJdrMqfGQmvdAT8ThoqdE7uiEfA8H9mpiTkdyBTjgm17ggD4tNMfXziSJZ", + "address": "3AuwFzLF4F9YD95wh2yeLWp5sM6PWwoqyh" + } + ] + }, + { + "coin": "BITCOIN_CASH", + "seed": "b0299c2a89d8bbaeb6cd8c741e4de0adca6d52e7384867711ef87632132860ab", + "master": + "yprvABrGsX5C9jantwEsTgrPPzM99i3WkwS6jFPuFBZq3q1wnDZ4XAZchwF6qKTdusLfGurgEjnisEissGqhr5y6dsrBXcWwehq8mqpCqVR3ZhZ", + "master_public": + "ypub6QqdH2c5z7967RKLZiPPm8Hshjt1AQ9x6UKW3ZyScAYvf1tD4hssFjZagbPNdJzbjKSq5L29XHktgf61a9A1prJhbqYuPJGQKz2jHgf5bYx", + "coin_private": + "yprvAGqcwDhKwxdG42oMFb8t4eJfFo6KD5DaWoLdNuaU9N16YEZMXnASbP2rVuAJVKwRnWABTrgMinwE265xdebpFjNZXTPKFPMzwFwxXcEDAhP", + "coin_public": + "ypub6VpyLjEDnLBZGWspMcftRnFPopvocXwRt2GEBHz5hhY5R2tW5KUh9BMLMCAUHNHEa4KiZSzYFa52LM5Qp3HZsq1hZxjzKeWY4fceB4Rf31k", + "child": [ + { + "account": + "yprvAJ14SkJbmorp1BoKHUf7MBrinZ34HEFwosPvTcbtPinFYq9HKRrRz3nS74fnbRuEwXf3yu14bThxZ7pwe9hM6RTuNMoM2dMusDY5ujffxec", + "account_public": + "ypub6WzQrFqVcBR7DfsnPWC7iKoTLasYggyoB6KXG11Vx4KERdURryAgXr6uxJfxajPNEp34UWYrYfoZZdjLer2jAT8VqYTCrQsDdyxJ12BgVPb", + "address": "bitcoincash:pq4q59s9uhy05pjzddvjhshq2nptjqalfudgf607hc" + }, + { + "account": + "yprvAJ14SkJbmorp3qB9jz7EY2zH5F8VkQkREzgNCdyQCMUuXhn75911kZiygZy54VhBXw3opzryt8WStLiBwH9HZDRpX3kEsLYMTS4opqEET5i", + "account_public": + "ypub6WzQrFqVcBR7GKFcr1eEuAw1dGxz9sUGcDby12P1kh1tQW7FcgKGJN3TXpTZRRFptdYEuUe4PHJXuqmm2cqxjV8NTfCmdQ6FkXhXaFKGQTG", + "address": "bitcoincash:pzts870lmy8qx5d0wkzjdpgts6qwm248cqy0lqw9z9" + }, + { + "account": + "yprvAJ14SkJbmorp68rP71fucWVJWKTciJvvg1viVCPe3aACLbBNcMDrVV1CEtnoE6z5LQsgQ7G4D725H3SBXBiXZBWjyfpBQzkxkXUYZuXvTds", + "account_public": + "ypub6WzQrFqVcBR7JcvrD3CuyeS34MJ77men3ErKHaoFbuhBDPWX9tY73HKg69oFDSgCc5ZRDRT7XjAf7PqbWyiHiS3QuPbfjprCpA8CyCWD4w2", + "address": "bitcoincash:pqwvglqcxz6s43k26lx0373rwrq5drf23qld37vz90" + }, + { + "account": + "yprvAJ14SkJbmorp8kd6nyVffPr959m5QrM58wvMimvNHjN5Hb2mrRPnUtro9gGADWTrJWiM2WqLYPxX4Ja9Z9QEi7v2eGodqqEYvwbB6oMHab8", + "account_public": + "ypub6WzQrFqVcBR7MEhZu12g2XnsdBbZpK4vWAqxXAKyr4u4APMvPxi32hBGzxG7nwmTdT13jax1VuDj6qYasd8RaKwRrhGo4XhjmJp3cNjcerB", + "address": "bitcoincash:pqz9kvqlnscqzr966n2nsfe6wu283ke34yvrxk5ggj" + }, + { + "account": + "yprvAJ14SkJbmorpC29VyUSPTedjTCSdJerqNVQqSiLzqoixiff5SYRvbFwS5pPMGjfSDcB15QxmiGNFxJ6oWrhu6W23967C6qDVVoYMuZVpjoM", + "account_public": + "ypub6WzQrFqVcBR7QWDy5VyPpnaU1EH7i7agjiLSF6kcQ9FwbTzDz5kB94Fuw5fs7Shrxb8xD15gDe9m1nTpf7aLf2YXf5As8ZSxdU1wWfmxuCk", + "address": "bitcoincash:prnhc0cvyx7zujqwxjhu3jgxsf0eg7lgug0q9da3ds" + } + ] + }, + { + "coin": "BITCOIN_CASH_SLP", + "seed": "bfde1afc949d9394863a3845643f88ba767f26c074e85f4a153415af69b22aa9", + "master": + "yprvABrGsX5C9januG41gXFCCaSLdfh5nQp9dUPLoqqYKQfCBU75WqVpq9raun2UP4gECtptSSG36uUwYxzuY5ZVvo9z9yUKphbeJji7reT1GSP", + "master_public": + "ypub6QqdH2c5z7967k8UnYnCZiP5BhXaBsXzzhJwcEF9skCB4GSE4Np5NxB4m3yWj6U5oZHf5mXZmbrA3zwkKUtQ27u9uqJD8ns691FPqoWqZGr", + "coin_private": + "yprvAH65YX7V2RkTkvdrfAubFpxJjG5hiFEk9AnoSRi3hKRHxcLqqRosozPFb6HZsxtctAVZXEqXneKPLf458NU321eYhXEQeZ5278DdHdHckVX", + "coin_public": + "ypub6W5Rx2eNroJkyQiKmCSbcxu3HHvC7hxbWPiQEp7fFexGqQfzNy88MnhjSLiZ1chcrvyg7NfQbGD8XRKVzWWoNLhFxwRzYP1ig9X5qBrK9kh", + "child": [ + { + "account": + "yprvAHa2Rzo5ys5xrQSr2RtshSpBXRiE2etcLuTsxJLKkF5qXQVseeYRpF9p9AmNCMrHDsWptkucoWnvMyAudhKPkcFdHQHGgiYzgaP2uTmTy2z", + "account_public": + "ypub6WZNqWKypEeG4tXK8TRt4akv5TYiS7cTi8PUkgjwJacpQCq2CBrgN3UHzT8F5ec39BwwxYFviRmKYJ5nQAvB4weqgEk7M4x4eB38X6PSXAt", + "address": "simpleledger:pzk9jlfc2f7kpz3tyn5hfx2dmu0mhxczyv0xvyz3s5" + }, + { + "account": + "yprvAHa2Rzo5ys5xuDMCuPfvdtFJG4LnrHJ9czjnjJep5s7CfUWL9eQVbSzBuzr7V3xjwiQRzqEz5ZjhRQDVaLVJj9XRW4yV2bQz1S2z5wDWFBM", + "account_public": + "ypub6WZNqWKypEeG7hRg1RCw12C2p6BHFk1zzDfPXh4ReCeBYGqUhBik9FJfmK2tgyGsuutyuEucpo9APnFzg86L88mkm8au75FLFbxjNbNfoRA", + "address": "simpleledger:pr96meexekvhucvfkhr2jhxfvv225paqzvf2e23657" + }, + { + "account": + "yprvAHa2Rzo5ys5xwQPkiWZS66ASA1PCzrih4Pd4H7diAfXqBMhzhfokjrqKZTYMjum1FcmTnW9tG5F7r91VNMJGPLd3aqHuGrMSatPxzqLnvKC", + "account_public": + "ypub6WZNqWKypEeG9tUDpY6STE7Ai3DhQKSYRcYf5W3Kj14p4A39FD81Hf9oQmPtMGTJtF8XiZsDagULrdab16w5rjiC4n9uXDCstsanfMjUKJz", + "address": "simpleledger:ppn6pwqz5as6752wahcntxm58anp6379muze7z4ze2" + }, + { + "account": + "yprvAHa2Rzo5ys5y1mC56Qia9iJCF6swbuc4v34ww6691kL5KQ5T4qiSy1ZfVywb8fkxoHDVBKCy5siJHeGKhaRxtMcna9uAmSKAMfmz1h7gF22", + "account_public": + "ypub6WZNqWKypEeGEFGYCSFaWrEvo8iS1NKvHFzYjUVka5s4CCQbcP2hWot9MET97zyXAs1RF371kTz7FZtWTXbxTRaTJECFyDRbx39VVPhyPyZ", + "address": "simpleledger:ppmcrck7kgjxtraed022yn5xfkq7tfq87v47qxfd8l" + }, + { + "account": + "yprvAHa2Rzo5ys5y45D4VtYVBRpYkv5s3eqrRpoTAaNNZE1pAfgKh8vAcMgmcjMEjEke1wMjvM7M6pEnq6jzKKPJFUkmfRvmJzvDKqQT2jWXX9M", + "account_public": + "ypub6WZNqWKypEeGGZHXbv5VYZmHJwvMT7Zho3j3xxmz7ZYo3U1UEgERAA1FU1u5WRDaQKFaz7Ni19TNKSeUceMYfkv8zkxk3zkwKYfS6gMMcif", + "address": "simpleledger:pzgww9ngwkm69fr36ekvgcd235w5phung5zvp50rjm" + } + ] + }, + { + "coin": "BITCOIN_SV", + "seed": "0104fb4b0cba0730690f4a7c1c7c2d4ff5bfd39fb00b50549333e72690b928b3", + "master": + "yprvABrGsX5C9jantrcs95sTF6kvSBcufjTh9bBxTQ8NNyqzq8FhUPhqsQoUP6JQmAQj3W4Ek2xSYvg4TxtD6A6FiCr3M1PDtV5Kc7mhS97yWkq", + "master_public": + "ypub6QqdH2c5z7967LhLF7QTcEhezDTQ5CBYWp7ZFnXywKNyhvar1w26RD7xEN5hpUBQ7cBPA1m5f376s87pXNvfkMLLrhVrJnXWV765XMvQbBr", + "coin_private": + "yprvAHB9NGSK4EdVfTxwiHMiK8b3yGTnhvA9YWvYGgBv2vgZsihiJcLN3ZuAv6d7iwKE16Pwmm3UWSjb5t8HkxRUEh8XBocijjVrYWLW7RuytGq", + "coin_public": + "ypub6WAVmmyCtcBnsx3QpJtigGXnXJJH7Nszujr954bXbGDYkX2rr9ecbNDemNC3m7XetmEJU9TGHuS4MfrSwrXktZWf3zuTVXqief3bDEbJxNm", + "child": [ + { + "account": + "yprvAJUA1kthfD2he7fpZsyubKJHboZ39JF5z6idCFFfAQxnMrmz74xU1xu3K6sZS45THdzweeQnvKth7Q82JwH4u53ayHLZgAmPXc4ujiAF6pX", + "account_public": + "ypub6XTWRGRbVaazrbkHfuWuxTF29qPXYkxwMKeDzdfGikVmEf78ecGiZmDXAPQTPBuoCyof2i8dKgSXhhkUDaA3CyrQTGrz8KZAHpwk8nPbNbL", + "address": "3JV4WL1sZmHJKLGQFCC8kiPqYdb9D1NmjU" + }, + { + "account": + "yprvAJUA1kthfD2hgdDHNnSaHjmvNVdZesFd2hkkpScvW1DUVtVdd3jTVbeXHRFP5F8qr9sfdu1whN7aYtLNMdEmFYMF8tKGbvdK33VzXdjwXCn", + "account_public": + "ypub6XTWRGRbVaazu7HkUoyaesievXU44KyUPvgMcq2Y4LkTNgpnAb3i3Py18hJ6Xjr4fyN36XNF5WSkJojrSw2xh5KZpAsyZHiLZYzm61yd3Vk", + "address": "3BExsxzUiQbT7ysQVdnVhBW264bLqQTaLY" + }, + { + "account": + "yprvAJUA1kthfD2hhr2QZF7Sy46ocvUHRpeXdBiKUm8baYqjA7iRFNHpewmC6swHWuhNQC2SCMSNJz27AfbsTZaMQ5FiVZ2C51ATjdJDivM8yYq", + "account_public": + "ypub6XTWRGRbVaazvL6sfGeTLC3YAxJmqHNNzQdvH9YD8tNi2v3Znuc5Ck5fx9QeDtvDeTgBUAYfvDkCyhyVmyPPfibz6WxBMexP617DBpWbFtw", + "address": "337xeGbhX3cfU6RNVYyd3wPparXJdChXxp" + }, + { + "account": + "yprvAJUA1kthfD2hmozJ6R3w3fyZjT4DSpE6dFLz3Zrs6jx6on4zsKkF3LygSFbNzHxpsBqvz9TyHmbF9mhi2veVjwQ6mdJT3KLXgAnfUCXzH1E", + "account_public": + "ypub6XTWRGRbVaazzJ4mCSawQovJHUthrGwwzUGaqxGUf5V5gaQ9Qs4Vb9JAHYkVTKC2JsFvtWjpae9G2LzY3jeWWmQe5ktcEYEeTM5UJy8kJzE", + "address": "3PhaqDcxnvhAeyQ7VJxmFKX9QAEfRk6Y8K" + }, + { + "account": + "yprvAJUA1kthfD2hnda6eVVokAsokTaXZg14UZ4REFqm3fm8ZBVuDSJCSx9yvsi8iDzdbrFxUkKX3EyZUhBKpydNbkxTPx2WD6dkHFYjstjsqj5", + "account_public": + "ypub6XTWRGRbVab117eZkX2p7JpYJVR1y8iuqmz22eFNc1J7Ryq3kycSzkUTnApgYFkbvCGLgrqCJJSgsWWthrLZnPik4yf3H7XZsbG3pUcQuZe", + "address": "3DWKPqqKSC1vvZYRWrP7kWGKY75C61KoxY" + } + ] + }, + { + "coin": "DASH", + "seed": "1e830da2773c3c5a1d5727ddd371adaf0e492e0f844d32cb0f3aafe0404ce948", + "master": + "yprvABrGsX5C9jantADvDvK4X5sissTBBCppzL1YtnnTbBnc3NnLz19wBpmShGpQ947GiiqaRJ5YDMKDupsUomxxwpMSEqUpQkQxMiSWytN5ewh", + "master_public": + "ypub6QqdH2c5z7966eJPKwr4tDpTRuHfafYgMYw9hBC59XKavB7VXYUBjd5vYXawAfRm7qTHEeVmoR2PJmLAVy6CAFx79cCBeEAvh5YSDNoHSGL", + "coin_private": + "yprvAGNX8ahnADKhq2GiJVnwMtEwQ6wpRTVeTMqE2U7mPvmWS8NK7zyCTDHpj9zzEWUSk1bPKCxYcJJ4iSt24y6b8pswRPoUVTUiLScaA6uYBfR", + "coin_public": + "ypub6VMsY6Efzat13WMBQXKwj2Bfx8nJpvDVpakpprXNxGJVJvhTfYHT11cJaRcPtWMKqfuPKyAP7En6J7XH43GUTXoMfvDT3nrzxm9gzvWcSjq", + "child": [ + { + "account": + "yprvAJtEaReNYoJ1xXkwkkPZ5JCs7SNaKLk3oaNstaNgDjoiXsXeUGaxYKLWnTzCsZZVxX9Lp1sL1Y9nxUWppReGDCBAAXyUMiSS4a7gGE2fV92", + "account_public": + "ypub6XsaywBGPArKB1qQrmvZSS9bfUD4ioTuAoJUgxnHn5LhQfro1ouD67ezdjZrpZeiLZujUvz2q66QVe4Vg6RjUqKQGVyDPyWWtWqsp2ohbVQ", + "address": "7dL2L922xkw9ckJvVrJRm4vQfMdQGHBh1G" + }, + { + "account": + "yprvAJtEaReNYoJ1zgfF8aq21gQnFxohcUwsGG4QKZ6hMGyxj1QWHPo8rJ3QWwkXunHZv5dg6pGGyCd6u1BY4GxLCZ3sD2mHgg3qBiC9fq8ete3", + "account_public": + "ypub6XsaywBGPArKDAjiEcN2NpMWozeC1wfidUz17wWJucWwbojepw7PQ6MtNE95zUz8wvbxs1fSiTahv2wFh8RbV7EbfhFy6fK2imPfjrWTr2E", + "address": "7kVsWv4ZSoXNcmFsmBHrg3duCBK1estnJS" + }, + { + "account": + "yprvAJtEaReNYoJ24qa48PRW2nnyyiaiCkbWiZmyAHBphBzH832zhGmyySSUYnWejicm3dTrD6mrENPgFz5pvWVBSs9ahXecU2g8Sd65b3rqKJN", + "account_public": + "ypub6XsaywBGPArKHKeXEQxWPvjiXkRCcDKN5nhZxfbSFXXFzqN9Ep6EXEkxQ39edSKuxUYk1tG1rK6hoZZhWPG9o7FYgD2qotZTvXseiRKgEqK", + "address": "7VxnA4MpYXZUhk7JFR1TEpdA8C1NxcTgKq" + }, + { + "account": + "yprvAJtEaReNYoJ278PYs5rDc4k7yVVECn2nBL7QqMAeq1mdifAihMbWXGwEguEVPoV3KKgyyYMXa6K1YPh5vCi57FaHDDxhAjjbcXr9tvApZh7", + "account_public": + "ypub6XsaywBGPArKKcU1y7PDyCgrXXKicEkdYZ31djaGPMJcbTVsEtum55FiYBDmpxypwfCppZAL1qoMqBxDXA8f3EFUCZznyKbTxRMuVCZ56BH", + "address": "7V5Q5V1Zfc3QaFatx6aXbdEPHH5aPKybHb" + }, + { + "account": + "yprvAJtEaReNYoJ29KjeMm8CrizoXEzUWQ1cbzMs3JtzggQPdR1UFUaTauYuiGa4athk3ZBPSjarbYXMcMRL64AR8S5RJNokAnbEh1oGKDU7oyH", + "account_public": + "ypub6XsaywBGPArKMop7TnfDDrwY5GpxurjTyDHTqhJcF1wNWDLco1ti8hsPZZBmavQqL2sgMZiTkDSEUwf2SVrs3HhABjeRcX6JrnynjHcjhfj", + "address": "7fHeEq6P15gsax1fyRw2T17kSRnvEXqAEK" + } + ] + }, + { + "coin": "DOGECOIN", + "seed": "0a832b067349fbdbae35aa2cf0bfa9534f3bc36e1f1867e31d42b2e9d9d0a6dd", + "master": + "dgpv51eADS3spNJhASSisemwHxvWTLyuiApXp4w8uQL67NfVNqgWaVqT6pjrMxkFRUuCg7R7mjEYmDMuXKUog8M3nVUSNNrjbFSpjEoSGWYy9Bt", + "master_public": + "dgub8kXBZ7ymNWy2TJ6sutPuQpU6uuMYYHrF6fiM4Wj4uViVvtoCzGPDk89VwDFU9CH7ppvXs6YLbrp4PhMZ74gWBZLA8HHXyHfoBBt3onw56WV", + "coin_private": + "dgpv56hBih3n6FFDmChWqvw1GD7HoCvkXvWCx12eQEpvUi4i35dsYSYMhey9qwwj24JdWYWj3kmh6bpQvctVXAWZq2N4GfQsK9gVTPfPic7mSxZ", + "coin_public": + "dgub8qaD4NyfePuZ44MftAYyP4etFmJPN3XvEborZMDuGq7ib8kZxD68LxNoR9RaekbD1LrnBdacNvKRVv64SaYzbx7XnF6LGBBkDCbbgUqZjvL", + "child": [ + { + "account": + "dgpv58kgjbroxF2NkVt6d4QEu8m51SRTxoxBu55H2QbVfSR1CsofgT3H4Af5P3rGbDmQAfd38MQCJeGSGTzq7vE3UyGfsaeaueSKEjRAmhUhLuN", + "account_public": + "dgub8sdi5HnhWPgi3MYFfJ2D1zJfTzo6nvyuBfrVBWzUTZU1kvvN6Db3hU4ixHUdtS4WUZTKSPaV2AoGpd4RXZXij8hvaDAVjUkegKGSufdCzdz", + "address": "AEjBVnqGtF9VPMcjvmXyBY5vxcNsFb5T44" + }, + { + "account": + "dgpv58kgjbroxF2NopgvtN5J66BNKmyFxtze1tqQ17xwDneHkcCtudTZBi3w5TvC6puUQVuae5Av42u7MfwcDV1jnZmtFdHjowp61s69L1ebgK5", + "account_public": + "dgub8sdi5HnhWPgi6gM5vbhGCwixnLLto22MJVccAEMv1uhJJfKbKQ1Kq1Taei9184QWrSYzh3mtRdEbqCNuaqwoAC91xH458exvLHdmWLmCAKU", + "address": "A7ETWZvkoUd9zHs7KL7W7v1mv9rU9M51M7" + }, + { + "account": + "dgpv58kgjbroxF2NqPTx1agG4er3F5gT1JpTSY8nQXJeEz1CyPQfey6WGxwsmbvoqkS8t8dPSbGtDhe6NVYMFVdC92oTT4tNNSGDqREe2icdGje", + "account_public": + "dgub8sdi5HnhWPgi8F873pJEBWPdhe45qRrAj8uzZdhd374DXSXN4jeGvGMXLpZqxyHdtPUPNomFA6AkEPMMH9gDVsHs9xw3ENfoCY1SyQNE8St", + "address": "9u1e59muS1WmdXuF1LCNHaweXTmGDfyjiW" + }, + { + "account": + "dgpv58kgjbroxF2NtZDrvfJFx8vdv3FCwJaFpQLjPzpiTuLNJp5gjguqVVAMx4dxDFrWKAboH9CFjVoC3SHLjMnSqmTQUTTuJkGsqnmG4gBvyog", + "account_public": + "dgub8sdi5HnhWPgiBQt1xtvE4zUENbcqmRby717wZ7DhG2PNrsCP9TTc8na1XHmhLJtnhi7Zy6MrytSFbi8kiqLcdMujStdNsKnQcPKALqrHA7G", + "address": "9wrckdPjKNN4swFYDMWPccJnFeD2J7j9VX" + }, + { + "account": + "dgpv58kgjbroxF2NvYZF1oZ1jZgFpc1Z7rQBtq1VBdsgppeVkUJgZDK7QmgitH4u1ai1doFAvNWCtctZXdzyuoiS791jG2yQeMXKXsPPbN8U8GA", + "account_public": + "dgub8sdi5HnhWPgiDQDQ43AyrRDrHAPBwyRuBRnhLkGfcwhWJXRNxyrt456NTYTSftwgRQLkf5z5kpeoEwvaQiExYR7QgECuPmRzK3mczLkBeZU", + "address": "A3Aa9L3k3RiSeE6ExqNUje3ciPHKb1efEn" + } + ] + }, + { + "coin": "ECASH", + "seed": "7625dd88bae78bea44b75275e7697d54d592b1d0ab853567c2931a2c40e74582", + "master": + "yprvABrGsX5C9januNsmmS8nPrFJey85GFk1Q9XkjDFFistCkZRk2XKoyVqcz6Uf1mg5kW6MfxvCFtxZGKH6ciJWRarTXSytW8DUaMGKEkTGt76", + "master_public": + "ypub6QqdH2c5z7967rxEsTfnkzC3CzxZfiTrmNTMXbesHDRBdMkta4e4XJA6qPjR1VvmWYGjnXwFgq7tWyZ1WMGY4BmFyrEVW5CycmeKdt8hWSo", + "coin_private": + "yprvAGPmogPo6XH8YkqxnYkkQJAXEUUXiHhYwhZNRzab7gZiytEDjAZBxUaCJbYmewec6XodmWUgZHEhbJRZUx8gUBzYwW9hXML8wDBV1AWpR9T", + "coin_public": + "ypub6VP8DBvgvtqRmEvRtaHkmS7FnWK27kRQJvUyENzCg26hrgZNGhsSWGtg9rTjh1uFFKgGxHx98F54mowyYtv9ywbbw2qgMG9wVBSjXwDeqUp", + "child": [ + { + "account": + "yprvAJHnE2XPJk24QMiwsYVMfWAkj6UnFJY97PHiAqiGXS7KbmnHqX61HxtMW3RsAgaquPQE4gFkvy3YQw3Q8PpiT3KMWCQ6zbBE5uybVHG8uSK", + "account_public": + "ypub6XH8dY4H97aMcqoQya2N2e7VH8KGemFzUcDJyE7t5meJUa7SP4QFqmCqMLijYrBomL84AWT62EYCkHAzdwfjoPQeWfsiZXXuqxkT4Vb7B7B", + "address": "ecash:ppqgv26vz0eppuzs2a9w7r9snwa93s4dludmkp47td" + }, + { + "account": + "yprvAJHnE2XPJk24SMnLa9g7dciK3JAPbtWbsLQ14kydHhkxNGrBrePMsHnMSeYBgU1m2hw5XLWXmFvUH199vsuvPzq5UPU3JcEhbhzDZGcSaf6", + "account_public": + "ypub6XH8dY4H97aMeqrogBD7zkf3bKzt1METEZKbs9PEr3HwF5BLQBhcR66qHu9cnKBmiNrTQBUsN1btSU451gpvAM1xeHh6j5iLa9AYEKFgcr4", + "address": "ecash:ppm0f0zzpzrsys6l59eptr456y55gnykmsxwsf2n57" + }, + { + "account": + "yprvAJHnE2XPJk24X4Qb1X45GAca5gb21HT2eAY3VwvSTcAn18Zf8KRxhZBs5DHkoFW5VV8mdM29g9n5CJ2Xe1Utk1rA81Z8LjLpVNR4P2oafud", + "account_public": + "ypub6XH8dY4H97aMjYV47Yb5dJZJdiRWQkAt1PTeJLL41whksvtofrkDFMWLvUNt2aBUGdLbbkpjHwAtPvsBKLAxDeJphkkdEvZUWZyzL5pdCuK", + "address": "ecash:ppzxerh85uml2sl00y6twzv52cccf5av4vm5657mfd" + }, + { + "account": + "yprvAJHnE2XPJk24ZUmiwCJTY8yFdE6LJ3TMaS7Yozpv9CnAxJb2HSq9tg8G6qN8tFm1MDyHMHXthighhZSVmkMyg5bLy1tL8tFpofGFsF72eyc", + "account_public": + "ypub6XH8dY4H97aMmxrC3DqTuGuzBFvphWBCwf39cPEXhYK9q6vApz9QSUSjx9Pok3WDnLay7Eb3ZQUcRtecViLXyDa2sTpKcKpZwRazVPPa5f9", + "address": "ecash:ppja0zc7dkxge6uprue9czu5fkp2meh94cu4wpdy3d" + }, + { + "account": + "yprvAJHnE2XPJk24c8ZA9sLGNEhtUFtJnccQA34fPi8dvBo4eM9Ppcf9Y7UHUmYayGx66S9PPeViqZESEKiGTWDNVbibHyoNeEbLYs35rX3d2pt", + "account_public": + "ypub6XH8dY4H97aMpcddFtsGjNed2HioC5LFXFzGC6YFUXL3X9UYN9yQ5unmL2N9PNWETjYnqm4KC6gRBBXMack9YZtgQxoFjG9hcjkHLD5rpFs", + "address": "ecash:pqrnwa3l27kaayjawvh7fcgv0tlnw4vueu5jc3kvvg" + } + ] + }, + { + "coin": "LITECOIN", + "seed": "56648355e9dbcb155cffd457fa034a08231d904e9d733f202bfd507a88a8feb9", + "master": + "yprvABrGsX5C9jansudiua8KbjfrQU38uDqkzAuisRABCYiEdFwPewGL4st3z3iBfcQbP2FbZPksHQTmghkbrLQddNZrMnM3yR8LTM1ESdMTvaq", + "master_public": + "ypub6QqdH2c5z7966PiC1bfKxscaxVsdJgZcMPqKfoZnktFDW4GYCUaacgCXqKaDtr7VmkbhpGtLdDaXWUdJ1iDDoNDpvj6eEcBoindTstUSqCn", + "coin_private": + "yprvAG3rxkK98mkawL3mCCC79qZuHfzJNif6YJvR4kBjd9nQQDbQRyVheDq1s8Ki6hMSkMAjPQSrTVA9S7jwxLXbAw1TCEApCD9MdJfuDXUnk99", + "coin_public": + "ypub6V3DNFr2y9Jt9p8EJDj7WyWdqhpnnBNwuXr1s8bMBVKPH1vYyWoxC29ViPK8bvVLBm23V3zMSym1RmNv7aEYmQFusz1jHK4iJLrzHd9q8J4", + "child": [ + { + "account": + "yprvAK8VPYqY8ofBHDUMZVfVRSFF4TvnwjKpSCChaySeyKXRP1JVboHty1JUQogYzHmTY764osG6HLSzMBqnBEDy49fMHCGFjcM5yqCHENirtNd", + "account_public": + "ypub6Y7qo4NRyBDUVhYpfXCVnaBycVmHMC3foR8JPMrGXf4QFode9Lc9WocxG6Wbpq3CQrsZa6WU6c5J6kiMKVkqi47JnDMTW9GQCCqJYfT52MD", + "address": "MAZ1YjbnCQrRMLZ9FDXc5vSAGAUGrHMxoW" + }, + { + "account": + "yprvAK8VPYqY8ofBLNrHBdByJoKE37e2PvtocGtsYYTi4zCNHAs16MccnzqoyLUYob9ecZWobWhSuqUFaUaZtfCHZohPACNrTPxtAMp2zjQjMse", + "account_public": + "ypub6Y7qo4NRyBDUYrvkHeiyfwFxb9UWoPceyVpULvsKdKjM9yC9dtvsLoAHpaeKoL8ELQbfsCdQM6eBdVV6zTaPXa5PaE5uPYuHU2mJzYK4Rsu", + "address": "MAUkdAePs2VUvWM632cFwYJfEswSiCCHtV" + }, + { + "account": + "yprvAK8VPYqY8ofBNG2koyiA1CSL4udjK5me3RhicTd5DvnKXaeiF35EukFa6HLjGuseYY44umMZxkvw1RECUFZqHL1PruLDDd2DApPPusFFCFV", + "account_public": + "ypub6Y7qo4NRyBDUak7Dv1FANLP4cwUDiYVVQedKQr2gnGKJQNyrnaPVTYa3wYg6iB8iSqkJ77BuXb59EyiKrKXKWZFdWwANmizj1dcBJHMy3uS", + "address": "MSygp7Qgu5TNAg3TyVZTRYj8tEvybYAvAv" + }, + { + "account": + "yprvAK8VPYqY8ofBRXnwS6oC5gN1fxYg7nqnfLGoDRsAEEJzKaBibuDd3DnttahVF4EcJmVQ6kbEmyCjiCfUJ3nr7nKz5ASaByRzPwVeFmGDx5x", + "account_public": + "ypub6Y7qo4NRyBDUe1sQY8LCSpJkDzPAXFZe2ZCQ1pGmnZqyCNWs9SXsb27Njrgfg1KhgQSfpHmQ8Jz68Qe2cQn8U1z9ih8N5eEVckdWZAb7d44", + "address": "MTePV7xEdSH5boPdiqXMfMaxYvq4B71mT9" + }, + { + "account": + "yprvAK8VPYqY8ofBUT5fAuNzZ6EdQ59wyYLQ9sLQZX3upHEmgKJLuHYhaMXSmg1owDXpnh5onJgdf9GURHogNhKkZqjPKWKT8125CWXgiX2UG3B", + "account_public": + "ypub6Y7qo4NRyBDUgwA8GvuzvEBMx6zSP14FX6G1MuTXNcmkZ7dVSprx89qvcy96C1xqDrXnitHyzWiEvo1GNdoBTxDuF8PpzbmAmZcjRjWXJaD", + "address": "MT16VDEyVJC2tyHh2qPhYyZeHeSHrveUSa" + } + ] + }, + { + "coin": "ZCASH", + "seed": "cbb8ca11d0c1ff1f7760ac6c63cb9ae41d4eae87877ea48a1bd31fa54d3f5c3b", + "master": + "yprvABrGsX5C9jansdRNPNbVfD5gr4Bi57xR2Sm4m1CBUgj432cdXXA4J84x5UPTDepvrtN8JZzkvGsjJPh3JYKHjXkZutZsmVt68MT4cgBCtrq", + "master_public": + "ypub6QqdH2c5z79667VqVQ8W2M2RQ62CUagGPfgfZPbo32G2upwn54UJqvPRvksxVkvS1e2Uy5jQRSeJgVTrVmbsu2zitNRmi9sHRSeqF8Uv1yj", + "coin_private": + "yprvAGDQDWyucfvN1P4kmDiDgG5TvnQTfYPEF5eef8tqEr9pzvUoXnFmVzd78MMQfuFb6gMKULqR258yXwAL5Mc41y3EdY3yvGk81bhxK7WwfrZ", + "coin_public": + "ypub6VCkd2WoT3UfDs9DsFFE3Q2CUpEx5175cJaFTXJSoBgosiox5Ka23nwayc2inB7f3eArHoe8roAXT2GT2cdWBwZLEVRcwMMija7k8CGA5hK", + "child": [ + { + "account": + "yprvAJs3bQrvpdHwNqEnQViJtQDhtvjeVAEfjBVFXcDAJeaRcNcGoXhnR5f4FJon2UaUuNLdSgXZGJNJ5WuWpmvSfEmkrTzer8PSMhqdKjbw3tT", + "account_public": + "ypub6XrPzvPpezrEbKKFWXFKFYASSxa8tcxX6QQrKzcmrz7QVAwRM522xsyY6aA5nVSzGU5wfP8rD6Qt6VmoKbRHAyhrFLJ86WynbxXx4C86PDs", + "address": "t3e8pLStQfEvrHYde5yqHpSyCo1SxcYCjGC" + }, + { + "account": + "yprvAJs3bQrvpdHwPKQUajoddDEGLxrenYeLLQZadd4C5wrP3dNBKfzJWBrx37A7FPqVGGLkcW72jwQ7mViY5xNo9iCeiPYfH37dWMuHKJvocAz", + "account_public": + "ypub6XrPzvPpezrEboUwgmLdzMAztzh9C1NBhdVBS1ToeHPMvRhKsDJZ3zBRtQxNUTeyeazk9xh6XriLVCa4v47V5SXFRQVmHSJ229svs5SKzPw", + "address": "t3PCCijAgCnaJAaM4C5iJmFm2tc9ez9zxEn" + }, + { + "account": + "yprvAJs3bQrvpdHwSkh7WhvuwiY7NheqTgqjuJajPe27AY4smSpMabbhcMksiSBxojhytHgusBFU4L7jrjVqCHbFH7et4fKWeUxbGtA9DxF71bq", + "account_public": + "ypub6XrPzvPpezrEfEmacjTvJrUqvjVKs9ZbGXWLC2RiisbreF9W88uxAA5MZiS1jGN8qnXuKZYqMKKAg4LAFytASdjUGZqfVoxK4BsD9u1ivRj", + "address": "t3Jr352XtKCPRZoZbu7vhpNekq1TeVgLXdh" + }, + { + "account": + "yprvAJs3bQrvpdHwWdJooDUCoFUzc6r49pNFsLqtXzhGM2Didb4GiQq9oH3mkMBbm1fjySqe3M9izso4PkaTJ777jEmPmdL2vVoMpNL6HckuFFj", + "account_public": + "ypub6XrPzvPpezrEj7PGuF1DAPRjA8gYZH67EZmVLP6suMkhWPPRFx9QM5NFbfKSBrr5hq35beP3ZTapq95eHzrc2i1prrb5UY78KC3QN7cxAkH", + "address": "t3MGkZ9Qy4u7ZTYETNAei7P3R7S62R46Kvt" + }, + { + "account": + "yprvAJs3bQrvpdHwZBMJVpCgxVHdyputBiu577k8k2XmFWFAfZ6BcfT4ns7hMNc8W6JWenidccNR2hYK1TiVUFuczWaBTQdyMvuvYGoHNuQt953", + "account_public": + "ypub6XrPzvPpezrEmfRmbqjhKdENXrkNbBcvULfjYQwNoqn9YMRLACmKLfSBCfXidPRLBeyX6pMoxrhYj2wfAzzVqTeDsHiHLgXpMxarQj6AZMx", + "address": "t3bitAv7yDvdRK9on4FWEkimyTafB5geK3V" + } + ] + }, + { + "coin": "BITCOIN_CASH_TESTNET", + "seed": "64196ce250735490aa36aa34eae1a661fb9774460baca2c6567d873a33d6aab9", + "master": + "uprv8tXDerPXZ1QsUgfaHAr5E1o5d3LSE1nKtY86DSxcxXmxeUytBVCLQr7PTmQ8LKn2VtVaGwZcNBtEd78E2UZERjQCnr9zb7kZn4GNBBuPnbL", + "master_public": + "upub57Wa4MvRPNyAhAk3PCP5b9jpB5AvdUWBFm3h1qNEWsJwXHK2j2WaxeRsK3BPy5GEhTSAYJhD8T7VQQ83uaXvG7NXwXgtFHnH5UupZxbTUaE", + "coin_private": + "uprv8ydM4u5V4t8WW9w3kp15nSqoWgHKmJUrGkiE2YC1bKZvsc85gSpGJghERUesex7bj9XaXGvb6DS2yRy4FWdQ7boFcKCozAvcKWxqAfUA7zN", + "coin_public": + "upub5CchUQcNuFgoie1WrqY69anY4i7pAmChdydppvbd9f6ukQTEDz8WrV1iGjCXTARE7exPDw9h9VbYNZJ7DFv5d8nKMFNiqgkWBwfxea1u8CS", + "child": [ + { + "account": + "uprv8zU8NRJpSvnHC5GMXJkaMmavYykZnLZ3qgCbNoqisbCiaGDGXS89wZKDmNm5AYKBBJAA3JSWaZiCBQnKXR6WXHpekYDEhRXsmW41H5uC5n5", + "account_public": + "upub5DTUmvqiHJLaQZLpdLHaiuXf71b4BoGuCu8CBCFLRvjhT4YR4ySQVMdhcgSoogRwf1TtfJmJj4pUpyVLdHnvmje6JfQ2xHZEkiA4h4JKNfn", + "address": "bchtest:prjkmhwcscfwxadh3xwfjem3qj8sa56tls3hr79ncp" + }, + { + "account": + "uprv8zU8NRJpSvnHEmDp81EtoW7LSCZbcxHMjgqeTQLFtjbca2DuMdBX8ywAB7GzfVHk3EvRpfQjQxydX1PayfTyX8rPnZy8yJzJrQdLtyCHVN2", + "account_public": + "upub5DTUmvqiHJLaTFJHE2muAe44zEQ62R1D6umFFnjsT58bSpZ3uAVmgnFe2P4KgUbaV1PwBkpHVuCFJ52vmnUYTUZfRY3gHW7HGDqdUqmnPkw", + "address": "bchtest:pqq9yr47nj23n3l5kl04yf04vw863eycmqf54evxtf" + }, + { + "account": + "uprv8zU8NRJpSvnHFc5pG1qZmTWDF5x5xMmK7EGSfnYKR3tNd7ZZpvqxcZeK11Mz2nQ9WLpKMyYc19rzevnEzJ2pEREyEoBoG9VqwogASCMt7Ff", + "account_public": + "upub5DTUmvqiHJLaU6AHN3Na8bSwo7naMpVAUTC3UAwvyPRMVutiNUADAMxnrFhJiCBKVXXQeVvqXH3LsHUupdFAZupRu6eeEdJGiPAenHfMe6s", + "address": "bchtest:pzedvr7q0pzckj5lgxrvtfr5znqmlt5efggnvjl3u9" + }, + { + "account": + "uprv8zU8NRJpSvnHKEaYx4ngMyfF2iBM2pFNaR4q58FzF3BhgbnbkTPFCoYhJWDmbhSmwJkBSbZw76E3ZBwbfLosJJDZHH9E86vdaWWjPLajMER", + "account_public": + "upub5DTUmvqiHJLaXif246Kgj7byak1qSGyDwdzRsWfboNigZQ7kHzhVkbsB9ktmBSe41DZ5U6eFEb8CHCbbpGtbVNAXZdG3iQ7pVDJsXLV8SWS", + "address": "bchtest:pzsx4afqzah28z8ctmr8al7vf2sg988gkyehpu22xq" + }, + { + "account": + "uprv8zU8NRJpSvnHLMkjVnTCxkKQLqn4v7cbPRcXyMo2AZy2AkpW7hRzmhN5WcGiAXVpc4aEAxxSpX2DndRd3qHJHXCkCjNiBkEfAhfRTz3DTVg", + "account_public": + "upub5DTUmvqiHJLaYqqCbozDKtG8tscZKaLSkeY8mkCdiuW13Z9efEkFKVgZMt8rAUgWuJaiXFpPtfP3GpiDBJ2ut38rseZZfAn4Kyz2guPvLVe", + "address": "bchtest:pqht43u6fag4ga3eus5f0kym5dugr6ncku24e49ekr" + } + ] + }, + { + "coin": "BITCOIN_CASH_SLP_TESTNET", + "seed": "9f52fdfde7d751d417d978e054451fb8b48cd1da9fa03987541a802fd96996c0", + "master": + "uprv8tXDerPXZ1QsV8G7XPn2CDg4LwJqsWJV6TodzKpmpcyw1cFDVSyZcrfHCTZy86CmvrSfbJHBX3WQiQY4wKvkjNLMKyKFbKZNh1TTFYwMELw", + "master_public": + "upub57Wa4MvRPNyAhcLadRK2ZMcnty9LGy2LTgjEniEPNxWutQaN2zHpAeym3mdHpC5c9bQG3E4ZWSq8trTxzLUyRLzQ2uRKBzZnn3TA65vRXFz", + "coin_private": + "uprv8xvzZRrbG56DwuTBJqdD6QPynpTAhU94sPPcYn2U4UxMA7DNMvDgYaicV9CZ6n2uvpxdQ4p8PkPyXFAqoUJJ3XNrf1pPnUgQZE2u87TVSzs", + "coin_public": + "upub5BvLxwPV6SeXAPXeQsADTYLiLrHf6vrvEcKDMAS5cpVL2uYWuTXw6P36LQnWcX9jCMbiUvdjYu1mPMLUnmFG29KsV1Cu3o31rtJWepbjF3W", + "child": [ + { + "account": + "uprv91L9GMJB3kcJYgB5dmmdh3nauTaQTiiSWg9govcnLFXkZKhmMU7DNdLz5uMmbgV6H6UtrF8fsqomQUa4xZiPVE2y8jVjj1C2V62vQAr844v", + "account_public": + "upub5EKVfrq4t8AbmAFYjoJe4BjKTVQtsBSHsu5HcK2Ptb4jS82uu1RTvRfTwCpL2A3TqGr4Pd2er9jpJPiBBag4SCVxCjvUdP1wR7DT85i3BUj", + "address": "slptest:ppfs2h890ywl68emv8jyxjlrzaemgyuu3yr0ph53ly" + }, + { + "account": + "uprv91L9GMJB3kcJbCzYJtkntwNY6Ee58uD8e62M3hPQjR1XaKCXHjLk84kKhW3KA5ijrGKdQkHNZNQ55RNYeAn5mvxiZnsFfhPRApza2ZT2PNx", + "account_public": + "upub5EKVfrq4t8Aboh51QvHoG5KGeGUZYMvz1Jwwr5o2HkYWT7XfqGezfs4oYnGbJCGieAvpF7v6RWpnwSiN1kPLyCsNkJgH5RkpxqinQMayqYt", + "address": "slptest:pps3dsecf0xv4tqelguqvxvuqu7e6m4cpvrx7sr9r9" + }, + { + "account": + "uprv91L9GMJB3kcJe5Mx8Xi7As5ki73eMW2UCsDmiMRJUJWp5GE8M6hLP241aMn8DRj2M3dfqC4haoy2uju6NFxtSMtXKaKzKBcaKfDknuigyR3", + "account_public": + "upub5EKVfrq4t8AbrZSREZF7Y12VG8t8kxkKa69NWjpv2e3nx4ZGte1avpNVRcDfFE4pCjwVivjkwscDD4R1LZ53DLfCE6GwWypb5jQeMUtcuWv", + "address": "slptest:pzg2yqwjxl2p93wnr69v70m2mrgyqgl4nqj2tzf6js" + }, + { + "account": + "uprv91L9GMJB3kcJgSvCjUhnYd5TXxQCc1kfYxcgq74TC9bUJyWyRDsF7J6xQ9EcEYqn3ouuoyfgjwMZRRhnd2Gh4siJaaZK18K43B9WZDFJN8g", + "account_public": + "upub5EKVfrq4t8AbtvzfqWEnum2C5zEh1UUWvBYHdVU4kV8TBmr7xmBVf6RSFSrJywUMQQYQPSHL7TUfkNk8uZwaCVL1VV1rp5nz8ZP3ChdvKay", + "address": "slptest:pqn75tdsvq2gfkjdx9ctzg0ssn7yprndmqac3ggwge" + }, + { + "account": + "uprv91L9GMJB3kcJhVnXXZifN3pWWBQTJjFrCiB9L8cZZZT6gHB6kGWaNJt9vfq64jzhDuhxcxP62izozAPWAzxrRvtZChkMsRZE7TNT49wFCwv", + "account_public": + "upub5EKVfrq4t8AbuyrzdbFfjBmF4DEwiByhZw6k8X2B7tz5Z5WFHoppv7Cdmw6R3pe2bLbjj3bRQbPmVnYPZ8Qc3kvconfzaGa3H5yUTcBRV8j", + "address": "slptest:pzf0d34emnan67f53yky5q2u4m753sl6ncerjmru44" + } + ] + }, + { + "coin": "BITCOIN_SV_TESTNET", + "seed": "47ff3729891f2239299c18436e17d7ab853e3c4d162bc6c9038c707b665d4397", + "master": + "uprv8tXDerPXZ1QsWc3E1h4TcvFkmz1tgjok8HiX2q2miiByQAS8wE5Ld85U3zK6TKrHcyTnyJgQHET9yNGHhdJxyNkiPtqGC2NexTeZ2TXArev", + "master_public": + "upub57Wa4MvRPNyAj67h7ibTz4CVL1rP6CXbVWe7qDSPH3ixGxmHUmPbAvPwuHRs6aFAUaXhYJNkbqGzejudgpTfFLNuhT5xvuSFrUL1KvdYjhU", + "coin_private": + "uprv8xonpo2bKhQ1JDDqbz924WDie5uQoBXtNwZyCoyFTjQpuEWXoW3nfBwT8vRDmTjLiG9diMMS86sHEEYSDtGsoWyqYiJP766JF5ccwEkFwnw", + "coin_public": + "upub5Bo9EJZVA4xJWhJJi1g2ReATC7juCeFjkAVa1CNs24won2qgM3N3CzFvzBfEitbieb1WTVSJw3HahfaetDFJHymz8oYdx9yaP2nX1XtEG6T", + "child": [ + { + "account": + "uprv8zoYDDPrP8ZTyqj11yJXWnu3sm5w7CETZFDdRBo375zLuScKLddpwdYqJ86ejHqwBBT3ERmdP2hHpBmuTCe47SqoARJ3XBb5bYP61gDSr5X", + "account_public": + "upub5DntcivkDW7mCKoU7zqXsvqnRnvRWexJvU9EDaCefRXKnEwTtAx5VRsK9S14khPFUeSL6nmz1N74CVsX4n4xuwcsdxwsJB3bfECdBbt4ph5", + "address": "2MuZdZJk7fZszBrybLMdiGQGCHxPYYsukoe" + }, + { + "account": + "uprv8zoYDDPrP8ZU1MwXsdN81amfGmSDEquQeWgFj8jb37hY5YTkwGqkFqgjdSs8WxYkwFXaHksAmjtoNr4y2iBmU56nTDe1EDPqdXaBzi4m71C", + "account_public": + "upub5DntcivkDW7mDr1zyeu8NiiPpoGheJdG1jbrXX9CbTEWxLnuUp9zoe1DUgFudDU5RQDMrfbEUDR12YawWP9k6RPCoEUkKyKGCvzTSvQ6ywD", + "address": "2MsTV7TyoMRPxB962uSoqzUpf13xrEUxZKu" + }, + { + "account": + "uprv8zoYDDPrP8ZU5R8QDwvd96gegwgPqW7Nst85cT7DukqeXCtnYp8mRH5SxFerKiVVTj5Kf8X6vkNejzK5xZhgHAaVC83Zd3Y4XdWAFCjtPft", + "account_public": + "upub5DntcivkDW7mHuCsKyTdWEdPEyWtExqEF73gQqWqU6NdQ1Dw6MT1y5PvoVr9MqvELKUKoLZaRYdzRMwokYaZuV7VktTdYF3i4Nk5Sgunxi8", + "address": "2N9oVo9t2r2k8CvzQtrwsTLXLEWJ1AwTtFy" + }, + { + "account": + "uprv8zoYDDPrP8ZU5uoo8ZdwNNHHZysyMRcGVyUKE2vNNWT9TeQPagSptpmsKfEbYvNGviMP91oPD4a8Gd3GSajHdNjEu8qt3NATo4RQAERe5aS", + "account_public": + "upub5DntcivkDW7mJPtGEbAwjWE281iTktL7sCPv2RKyvqz8LSjY8Dm5Sd6MAwrXJoreMuXSw94uCsTb9WpnGSdhVm2Cjhdh2Xnv4MBLBK3XVui", + "address": "2MwyRuj9ScZu1goW7YAbqSAcGa7fAEiLfS6" + }, + { + "account": + "uprv8zoYDDPrP8ZUAPWZT9yL4QrJ3B7byAYVCPueaYFrvvGkfCzkSRNd1kV4fTCGQUAYz1Qua8XmVxpUDYVHDs1mdARD2XvXiGAFxt5BcEv8LjU", + "account_public": + "upub5DntcivkDW7mNsb2ZBWLRYo2bCx6NdGLZcqFNvfUVFojY1KtyxgsZYoYWjWH8Cindwd2gTHByR5cmZcVHXNRm37trPEKF7crCpmLTpaqcHK", + "address": "2N3zj4YmDQTWq1zZoGUWTPURvBAnizzgvan" + } + ] + }, + { + "coin": "BITCOIN_TESTNET", + "seed": "1de733adb74150bb485f593ad4bb19829d0d8de0c0cda83fe0494d4386fa671d", + "master": + "uprv8tXDerPXZ1QsW4xAV8XtbyRNj3pCUAEEEyz6WZ65LFD6uvvBjiZCsnFvRme1q8UNdvZij7gUaQs85dUqF6bpsnhB35Bv9FVXfdP6fVJEdrq", + "master_public": + "upub57Wa4MvRPNyAiZ2dbA4ty7N7H5egscx5cCuhJwVgtak5njFLHFsTRaaQH2CHxBZBQ3BT3GMFznC3eYWyLwAYcR3pqNpnjJzFyqwmJhMWFpP", + "coin_private": + "uprv8xsf5xWPC5JzVciv1vPkPyjZ9qVwgu6VDQgv8nk8gvg2BhmrdpbNsgRV5KEw7Cti25bjVYq1QAMyWgJHddKtSALErzCELWzyKYuHB3CDjqD", + "coin_public": + "upub5Bs1VU3H2SsHi6oP7wvkm7gHhsLS6MpLadcWwB9kFGD14W71BMudRUjxvZyFkhgVrqnTnLcRTJcWezgdQqCTdgD7GeSSorDxTjPHkMM6bBA", + "child": [ + { + "account": + "uprv8zohfWGWRqiEdS4QtkVv1raUEwHBPkAqNJSbkLqDgrmwKyUEkf1AePmw1QbQH1mdvdnYJQJSoWVdddwSuhUejx6TZVdehtkS9CQRFLe9iUr", + "account_public": + "upub5Do451oQGDGXqv8szn2vNzXCny7foCtgjXNCYjEqFCJvCmoPJCKRCC6Qrh52YNAaXkxcjSrqzjGhXvXdjz29ct3ULeJtmyVkQ6UnNheHzrx", + "address": "2MyYyphn1b6obbWSarbQCJTiNnqfNKtqH7P" + }, + { + "account": + "uprv8zohfWGWRqiEeeTFnD8ZC9Zq9nWVB1VRUGy8JawcYJmjdqjQYHLPn8RkYJXaZnSnc6RPU6ikiQzVU1BHpHhXp4d9LyYZmQ858om9PupKFS6", + "account_public": + "upub5Do451oQGDGXs8XitEfZZHWZhpLyaUDGqVtj6yME6eJiWe4Z5peeKvkEPcQhffEmmZLSZEA73SoSBQ1qDwgdgwC1rv5DgdUmpUwpK4SqgnW", + "address": "2NEKxGfuFaNZbeGfFh4fQ2tgxfQdacVrQtY" + }, + { + "account": + "uprv8zohfWGWRqiEiyBUTmNeowvfd1GzoY4nVdU7VxZ96suj8thAZQdBeZpN8QPaqatVHYSYftpyduEWWZwsSRBeHk4EgVUzA6cvTsMUq9RM27Q", + "account_public": + "upub5Do451oQGDGXwTFwZnufB5sQB37VCzndrrPiJLxkfDSi1h2K6wwSCN8qyeuG3nt48o7N84CY1aBtabenPpK3dXWg85KKSLdJ7ZYFhYwST8x", + "address": "2MtSXqTTAVXvxvm4DK8MJBRKohRMNcAhZL7" + }, + { + "account": + "uprv8zohfWGWRqiEmLS3sqkLsJ5o8ELPMTk9ESHA82jvMxFbdMawD5vHr1xjqr54qq5J2gkbXtKruSZVDpE58yja8mfU4PpJoWHmN8RP88tdYb1", + "account_public": + "upub5Do451oQGDGXypWWysHMES2XgGAskvTzbfCkvR9XvHnaW9v5kdEYPpHDh6sWvXSz5VAMwyaqQQVi1kPbgPydNmp7bEeJt4dR8fKQLNC49Qf", + "address": "2N4pXjq4uFKJuNVb4RXqnS2AHPM2GGkaULV" + }, + { + "account": + "uprv8zohfWGWRqiEnd9TqrwA6Uw5YBrPGmVwhFZoybxPbkHfgVb3UX6YUU9t7Y3mkWXJ9YqUXokJv6A5CZUV7KAwqw8DepfmAjcfZeCNrtbHLvA", + "account_public": + "upub5Do451oQGDGY17DvwtUATcsp6DgsgEDo4UVQmzN1A5peZHvC24Qo2GUMxoZ5qh11ab4pTgAf73Zqm2CryhMdNkjEn9rY2qavc42mjfTHyiH", + "address": "2N7KTB2VynaewAvcgYoFeLPMbiy1Ts2Gz1o" + } + ] + }, + { + "coin": "DASH_TESTNET", + "seed": "8a54fe4e0ed088c6c14dbef22fcfcaa05dae58882cfda38b265530a7de4c93df", + "master": + "uprv8tXDerPXZ1QsWP1oMEQbNGPkrr4K6zMVc3CVknq9cka3CWXUxup1WAKw964KPco22JfRsx93V9qH1t2Z3h1ULVXcPxZWPo5vzg9xNfzYkTM", + "master_public": + "upub57Wa4MvRPNyAis6GTFwbjQLVQstoWT5LyG86ZBEmB6725JrdWT8G3xeQzNcsiLeth2f91w3kNa8AsL3xxbC3vz1Pz31uWRTZNsPjYKGxScW", + "coin_private": + "uprv8xj5H2MKV1dRUEoJrik71LxheLUyuKKjVCXhKSsftJBEiUEFQqKJGUheG9L8npCm8hKcoNTHWxuMmx48r8DCqZ7VzbvGCd5DfGU5hm8p1Wj", + "coin_public": + "upub5BiRgXtDKPBigismxkH7NUuSCNKUJn3arRTJ7qHHSdiDbGZPxNdYpH287Qm8AKyoAY7j8LRdixaE4mXLZJwVNGgevpV8FBckwijvKjDUizm", + "child": [ + { + "account": + "uprv91ZR53para9XLNiqJ16ZSa9zT4f2dFPjcvybKX2V3UpKW8kgyLCwsi439W6URcofeEzBsUoRQbVFhcGpgAbUunSe1HU6GDMKMmM3HfTSKii", + "account_public": + "upub5EYmUZMUgwhpYroJQ2dZoi6j16VX2i7az9uC7uS6bpMJNw5qWsXCRWNWzksqqZHFKpNSJY5sSDVgczR1az7TEZA9rMvQD8EEuYJ4rQnaQvZ", + "address": "8qRPwCwfkRb6qSBjT6wC474aupdXNy4Tsm" + }, + { + "account": + "uprv91ZR53para9XPqdR8nqFULsw74pzthCu5qLaxqTFQCwnQAQgrJPwwCr7gmgwuUek7aqy7Q82ZXhALNV8hM16mm8p8kqGv6xGrgRb8FyAFrK", + "account_public": + "upub5EYmUZMUgwhpcKhtEpNFqUpff6fVJ9vkT4GBmDrrxYUmGxjqPqiCV1AbY3M2Tk4zFQxPzz4cEewv8K1yQYHWyxW9WgroRpuUVy4isPWXVyN", + "address": "91c8K258R5WumKfTNcJdGCv4SqF8a5YhYu" + }, + { + "account": + "uprv91ZR53para9XRBviYDtiD4WzX6ekmVNtCqY4ZdN54RsYXJgrvWJZ9kFftvk2bVHnLLwvkSt34owpe59Jap7A648mVHpLZj3RewvNNXMNLf6", + "account_public": + "upub5EYmUZMUgwhpdg1BeFRiaCTj58VFAx6ja4TfN1mgcmQXQ721U3cohYa9kB934brMq7J2NmpBy5MoHMNSNVGkR5CTDgQ2tJXjayHbNv56Qdc", + "address": "92h51JcD2HPStcTtqQST9efLp2B2qfhDKq" + }, + { + "account": + "uprv91ZR53para9XUALn6oChDVp6kkXHUFjSbfBAZsd1LV9gurpBMMzTbukMMZ3dSVWDhoDbGGoWFCoMjtjgd5vJPj9xFJyBWqUsQXPvW4NgehJ", + "account_public": + "upub5EYmUZMUgwhpgeRFCpjhadkqJnMmsiTHxt6mNG2ctpgfnf9KtuJi9i4qCoxki7zBeumzYSaHgXAT1Q9ax5hJduYp7ySAV7TBEHKkbbzpXva", + "address": "8vQ5BoyJn9uZzB3syFy8z7gvcBJfZbGuT4" + }, + { + "account": + "uprv91ZR53para9XX8ET5dDcALpoHUbu8AULJyw8fPCu2J35mr3sQj4wZsT1KuHGFptpT5JTx2pJgrxwqAS1XQQwcekKMgJq64yxXnDR4c2Lfq6", + "account_public": + "upub5EYmUZMUgwhpjcJvBekcXUmXqWSPXdCBgCrjTmcWada4eeP1xGPC7fmVBAuoaECszNAcZuvAgd7ZhkYRQdLCog8MRn9esAPBeYadmYzf5eK", + "address": "8t4dkvcEHmkWLsgi9LqguQvWECiheqDCWR" + } + ] + }, + { + "coin": "DOGECOIN_TESTNET", + "seed": "8acddef479733d351ca27ba6b17422a8d8292988f331fd879b13d58ba4bb8e44", + "master": + "tgpv1aRS3XcGkbKXD5Mzk8pczAHhntY8GYzP5EiyH9C92NwNTEx7cvSC8rpwVKLQLpUMAzbbarvB3FjGd7UNZHXJouprEdoRBpbr2K3mn2Zx2FR", + "master_public": + "tgub5KJTPDYAJjyrVw29nNSb71qJFSum6g26MqWBSFb7pVzP1J4p2gyxnAEb4ZFpWgV8Yaxqi3HAHrNphPN1SEZAtGQ8YFF6HcSqXWEs4QWxymF", + "coin_private": + "tgpv1g1xs21iY33k9RQFXoEUU2DmNd1HBtsw4N8CteUSoTJXj5LULdUt1fY8Zr8KGDrywNQ5y26qEA79Q2xzUwm2R2okN86LsW5BayQgWWPKWzC", + "coin_public": + "tgub5QtzChwc6Bi5SH4Qa2rSasmMqBNv21ueLxuR3ksRbaMYH8TAkQ2eexwn966Stozq8P3mz72rD6E8Wp45gYVzpjrxCgweDYn4EGkCqJXnEzQ", + "child": [ + { + "account": + "tgpv1hvUtQ94N2xWc35pudBbag3QNFXbGpeVgpxHZYwrN5rwtAJrdKj9HJp9iLH5Suikw1GNzjUkduQqvfL1QUKwe7Du6RLbPQwsVkddjpDvoZV", + "account_public": + "tgub5SoWE64wvBcqttjywroZhXazpouE6wgCyRjVifLqACuxSDRZ36GuvcDoHYFHbxqD9X7LFxfyvjnK28686oCqaicEpEQ2Bo9NZ2KQtugDAAy", + "address": "2NCAGK3uF5hvzYd94K2ewz9NRNkpMs9NoXc" + }, + { + "account": + "tgpv1hvUtQ94N2xWf1TxWt55aHYvnxWVhAH6nnqP9R4Tdb2tQXTiwAQC8ThwZxR3Zmv5V2ASV1psNaKbybasSSFXDHn3wvEVdpgJyG9KGcCYAjd", + "account_public": + "tgub5SoWE64wvBcqws87Z7h3h96XFWt8XHJp5PcbJXTSRi5txaaRLvwxmm7b9CVFUvSyHBsTQy4q8W6GZCdCiJvfvX9eWQUqtzEYmpfnvPnbi7N", + "address": "2N5v9YHBRwW7FdE7HXd5u8hsZxakNyv8AdZ" + }, + { + "account": + "tgpv1hvUtQ94N2xWgkjcU4xoaGSnbnogZUFNb2r8dEUN6VzVyjc54sKnix9xmwMQwP2kWMxKFpTPUNiswiXgbL74sR3WeoFd2s2uCWEECvYs5Cn", + "account_public": + "tgub5SoWE64wvBcqycPmWJamh7zP4MBKPbH5sddLnLsLtd3WXnimUdsZNFZcMBkWg3y7EPiVHeXTS466XtMpMZ7x6RzPKkUdaNwKEkrk61nSvox", + "address": "2NFCASPS3yt23J6Cgc5mMXG1nmHXU4t5r3J" + }, + { + "account": + "tgpv1hvUtQ94N2xWj1FPvkmubcGREe7VwXjdpQ7Kq88WQJ85ECiKM8LSxzctVVwDBnbvxvb8WCX3mzxHz9Tx7EbV8kZWv5BhHWr1jEUQQQRQJmx", + "account_public": + "tgub5SoWE64wvBcr1ruYxzPsiTp1hCV8memM6ztXzEXVCRB5nFq1kttDcJ2Y4iWu43t3GJEu1RPanCVHLi9hturw9GSaX4P6MKJyb8W6QYfQfYQ", + "address": "2NCFVKo6R56D4snXSQoBNLGgso8N3UGuLDc" + }, + { + "account": + "tgpv1hvUtQ94N2xWoHEGZyBMovcGwNkr44ERFk2j88okLiqYrmRoE7VuJf6LNEoYKCiSarfKF4eLWuMCeV9CqZEh84c2ururUaQDRfwJT3udKim", + "account_public": + "tgub5SoWE64wvBcr68tRcCoKvn9sPw8UtBG8YLowHFCj8qtZQpYVdt3fwxVywV4fq669DPfnWSSrEbvd97LqMkvqcaQUXspSbSQdNryWPzNFTYh", + "address": "2N3JSJ5JniM1Z3BJ4NYeCWnfRY75Q6CfcBM" + } + ] + }, + { + "coin": "ECASH_TESTNET", + "seed": "f052903b534b85ef2a1827b5edf45d8cef7782f5af3982cc7d005cc5f783699a", + "master": + "uprv8tXDerPXZ1QsVN2XjDFWCW4wL5JDjjhqVBm7AkLKJ4fT7AVvpD38HmGSLSQAe14eGCnNhN53vMQEXPcjtQC7BtqcxYszt4vNyWN6YMGxDcg", + "master_public": + "upub57Wa4MvRPNyAhr6zqEnWZe1ft78i9CRgrQghy8jvrQCRyxq5MkMNqZavBjAjvytXfRMZBB7cc5qqtdjC8VtNTcVN8ufiDvWox2Pjc5HWrWF", + "coin_private": + "uprv8yPBPsDnmkVok18wN1D7uTdhdGbDrvZ2G3kX36MRarwEhy7DHfEiu6nETzQQYtXqNLkeafvYf5xvJ2qWHZJpPYjYcFoM1SbbefUZYpP9yQt", + "coin_public": + "upub5CNXoNkgc846xVDQU2k8GbaSBJRiGPGsdGg7qUm39CUDamSMqCYySu6iKJBfsjafRbgtzZvKdLKz3XDmrfx2YW1FUvviHx47hy9CPDTJqmm", + "child": [ + { + "account": + "uprv8zAvK8PVEHCdoZehRcuoJhh8s6YepdYj68gfpCjBnGHSvrm1yNpj1wuLDmUCa3eovtuxXukmHFJGYoyuJzThqFC8AqytV5hmo9y5gj4YxzY", + "account_public": + "upub5DAGidvP4ekw23jAXeSofqdsR8P9E6GaTMcGcb8oLbpRof6AWv8yZkDp56BFZ6Jz8Zkfhr8QYoZ9yChSeKnUx9xHosC8RGoi15TjGg3Dj3u", + "address": "ectest:pzs28m9t2clq58vvm3a8a0hpmw57x73slyrjrk5qnp" + }, + { + "account": + "uprv8zAvK8PVEHCdqF3JjGeDJ82PcTtWkY6cQyxNPueo1An8NazmK7GKRZX1fSdfMND6dLANaw2GZ444YYR8bJJs5SLsNHUAe6puSc1q5L7PsBv", + "account_public": + "upub5DAGidvP4ekw3j7mqJBDfFy8AVj19zpTnCsyCJ4QZWK7FPKureaZyMqVWhc4NUtkYrKx851Ex6XFwUQi2vnogJi8Ub34frZggR5xipzmgwc", + "address": "ectest:pq4p3dmh6a2gmfef4cnxll3dapan6adqjgkqr585yn" + }, + { + "account": + "uprv8zAvK8PVEHCdrkj4xQ9YLbRYyy28dCD1zNLJS4xa1nkxRvXZJKKQMaVkToTR1wwuSdkFEH3s8Rve7knmVoMnEnRM3pDN5MdwfZ5Au7LS32A", + "account_public": + "upub5DAGidvP4ekw5EoY4RgYhjNHXzrd2evsMbFuETNBa8HwJirhqrdeuNpEK4zwpsuJMFSd8j84oFb6bSEURNcdoj6WxpRPomL9npdCXMuyuSv", + "address": "ectest:ppz40zkmr0jmt9ytf8hzl2vy33md8va97s55nfn3g6" + }, + { + "account": + "uprv8zAvK8PVEHCduf5MvHWcATYkN5KQnovFAChrACfSsdGJXjjfdVGf9bhQUMdXYU9tLoJvZcfvPnkGdZd5bkvAJP6FFTHL86229pFGZ818SAf", + "account_public": + "upub5DAGidvP4ekw899q2K3cXbVUv79uCGe6XRdSxb54RxoHQY4pB2auhQ1tKePuMA3dTuJVya6AGY3keSR1dqBnRdS8UQhfY5D5YSHmYg2VxSq", + "address": "ectest:ppzv4tpan5dnyz9u4va2cv2uvtdzsd9k6qudj4hysw" + }, + { + "account": + "uprv8zAvK8PVEHCdyzGsWwghJRtRRG2hsRLVhZzyStdv2ryEFPdAFyi4mrCtpXQ825e174MzJ2WXvkYyDRYfLTagXn38Kqqy8CWhjpcFbFTi9Wm", + "account_public": + "upub5DAGidvP4ekwCUMLcyDhfZq9yHsCGt4M4nvaFH3XbCWD8BxJoX2KKeXNfm2d61nVj2KrD2r9T1SZDubGDaKGbQfCc2dF3ay3eMe4QyuCZQ4", + "address": "ectest:pqe4nqvx84352pxj33fsgjtlx99tyrz7kcvduy2atl" + } + ] + }, + { + "coin": "LITECOIN_TESTNET", + "seed": "8faf3529e7502ecde16f6e70185a53428978c3a502f5600134f1ed9f08898fd8", + "master": + "ttpv96BtqegdxXcePcjg2nktTvge6Gn4hpb1tp87d8xSY1ffMnE9Sz7iQLo9Egpxz32cjpd2cchHomNVY16GddxwZNmiHhYjCxFKJMNP9utbnyP", + "master_public": + "ttub4XNESS7BCg9c1VSWHQFGYWWrXqUFn59fyLE9J7ijUCTFx9RDmuA9QwuQV67yKpJYHVjGqVzaXZyHDnuGm4TPqpZak4TTzkkGaWFp5QmJHzd", + "coin_private": + "ttpv9BPwUKywnR76EStK28LKaXHEJgAGfsHHXMMxC1cNAxbBoEnn4L9rn9YnaDrv6JT2ENf6wV5PwYF6ykCa4moi6mTkFTWmqTjiwnHLRKH5WXk", + "coin_public": + "ttub4caH57QV2Ze3rKb9Gjphf77SkErTk7qwbsTyrzNf79NnPbyrPFCHnkf3pcKMaCpQjJzNfzKHkB3VKRBfVXGRoiBPEaBNzsunoacudL1DebJ", + "child": [ + { + "account": + "ttpv9CVKumxWLHQUVdqhipQrsK2iHmfWexRGWyGL9pzTXrAQVXuVEWSmiTPGGnnQqqDZJEoBmTWVYpSGdtDrmf2Mnc4K75BXMdwzfypi4RZuesH", + "account_public": + "ttub4dffWZP3aRwS7WYXyRuEwtrvjLMhjCyvbVNMpokkU2x15u6ZZRVCj4VXXA3myTgesL6aVoPC7ZgrGU229Q8by31kyPpd5ZHBx8ZoCMpKWi6", + "address": "Qe5dSbr53mnBnPDTSimdrXvJreD8huihzg" + }, + { + "account": + "ttpv9CVKumxWLHQUYDXnyqsowaauY5RvWmAeTiESAeoi7JSwCThcecVBDrzD3jpKjAiRPsBBCo1Gp1mV2jzQYusFYyhH5y2oCVqsqxaMK2nNz3f", + "account_public": + "ttub4dffWZP3aRwSA6EdETNC2AR7ye87b1jJYELTqda13VEXnptgyXXcEU6UJ6QNjUzLS3NfmaWR9vzw8jkDo2Vp7hCSNXnAUZurfgrgpkHVbTv", + "address": "QVoGxzgxeSKXS5QULNRVE4roGWPS2imG2w" + }, + { + "account": + "ttpv9CVKumxWLHQUYsUi5nhbLvpUhQAKrkEf6DZnzrbNEbmF5ts448uh4eNuL5MH2Vi7B2krvcH5owvcP2k5DgLhaLweRrfvefqJweg9b9Fp1xJ", + "account_public": + "ttub4dffWZP3aRwSAkBYLQByRWeh8xrWvzoKAjfpfqMfAnYqgG48P3x85FVAaU3hLWZwFL4mRa5xfyR7svFTjjXgKoMN5Zfb9KiiiXYyAcwRxdo", + "address": "QVp2oMHyTcgHjcGsFBoApaUp5QdoyrvnG3" + }, + { + "account": + "ttpv9CVKumxWLHQUbcquJ7sDRopVaufuTm8Z7RPj8pDSbuN4AdtrNnPYFvTwrVZp429GSqnGxy1tb2QJ5j9M2DDe75CBGvjmDYV3wtucGhZpL3Y", + "account_public": + "ttub4dffWZP3aRwSDVYjYjMbWPei2UN6Y1hDBwVkonyjY69em15vhhRyGXaD6rseeTNgUrGjpQUNqCtSGyeAkJRDRMeP7A9NkGH3AvpdpMqGKgY", + "address": "QWF2heaWwxo8mE82nPE147QJBMpquPJ6SJ" + }, + { + "account": + "ttpv9CVKumxWLHQUerNyh1HxgEkz5XJMQ4BxL64HisgBPFsmgYktV6gdUxTZdTcA9sjPg11bnyJSahDP1i9nrwheKjKW84E2tzAt5pnpwEkPXs4", + "account_public": + "ttub4dffWZP3aRwSGj5owcnLkpbCX5zYUJkcQcAKPrSUKSfNGuwxp1j4VZZpsrBqTAe8JVT5x7wmSFp7xMfkNHWZfRRPeUMrfZW9fn4UiPq1V8B", + "address": "QdfPeEbcPZJpLYW9A2CtNmF9HXHUdXvKsu" + } + ] + }, + { + "coin": "ZCASH_TESTNET", + "seed": "57e613de8ff7a67f48a985bd87689ce3e66504743d8a90a8048ef90032719ea0", + "master": + "uprv8tXDerPXZ1QsV1qTayu5MvjUifptSFANVRLJbv1zpZH7ruBSfbXwp7te3M2Cq54Ksa224PtPpcBPy4JiaXfZc6rVCSawDPL7suQGQghinrQ", + "master_public": + "upub57Wa4MvRPNyAhVuvh1S5j4gDGhfNqhtDreFuQJRcNtp6jhWbD8rCMvD7tecAz68oQMYxKgNnStJ7dy4QKVEEfnun2qveNmSCzAESUxEXn4f", + "coin_private": + "uprv8y517TG1CvGC9DbJzWVoMdPqsuSx9X9ETc8ngcUPgRy31aJSxM4r3PXqqBQzgWZpkMmJwbHjWyjjtkPiN1wbQ7u2qDqFAeHQiEghJk41TnS", + "coin_public": + "upub5C4MWxnu3HpVMhfn6Y2oimLaRwHSYys5pq4PUzt1EmW1tNdbVtP6bBrKgQvRY5wMzerxtJXnDVw6TBysrR1nEdSd1YB4TyqC4ELVBHAk9jU", + "child": [ + { + "account": + "uprv91n6HmhTeqrkGDZ5ZgY4g5SxyQWCnAKSTRYb7rQfUe94htEgxMeq1UCoHNy4S9tJb1f8bkggLiyrz4wCxkFSAL1JknD9RcEMhi5QQLACtAb", + "account_public": + "upub5EmShHEMVDR3UhdYfi553DPhXSLhBd3HpeUBvEpH2yg3agZqVty5ZGXH8cNgpjtRHnviS6tv41B9ZEFQKHupkVANqXiWZVmcSjDrGSnyud8", + "address": "t2QPuCCUpamXQzRVF5fLwC7NTKM5TMAJLra" + }, + { + "account": + "uprv91n6HmhTeqrkJQPMn6WV3PAWMT6RYT2D6d6U2PtTmPfRcBMHvaK5me9LtoTiCEHFRAH92GPAXEcnBz72k7WPeTmaoBPbAgrHyhCcGiv4uN3", + "account_public": + "upub5EmShHEMVDR3WtTpt83VQX7EuUvuwuk4Tr24pnJ5KjCQUygSU7dLKSTpk4g59z1NHwxAzoNDLJdeYPjqkitX6D316xApstCcasEYotYVSsj", + "address": "t2BZiAkHzsaXYwaRCZcr1i8MGLEKLoTUw5o" + }, + { + "account": + "uprv91n6HmhTeqrkM88tfrChf9TqryLaz6UhBAF1ho9rijwtsqUArB374qNSrmmscR7buMvvksm4L6TM1fybFLhXxsBSMf6J97Aa6214meYkmzz", + "account_public": + "upub5EmShHEMVDR3ZcDMmsji2HQaR1B5PZCYYPAcWBZUH5UskdoKPiMMcdgvi4n1CToVykNsVk1C7qki5A2y5V37Zh63oKtq6km5PLQK55nTcdg", + "address": "t2NyFa7h3tgdSanyyfmMu4tDNQ1qDEiX32A" + }, + { + "account": + "uprv91n6HmhTeqrkQD4y1QtAvMSP1YDvquNQVGf3TNErh69CFXorXYvwBupDPWq8SJvZkPZctHT4hyXb8rKR1chqLDA9W2a7wt1sCRwWSBb2rTD", + "account_public": + "upub5EmShHEMVDR3ch9S7SRBHVP7Za4RFN6FrVaeFkeUFRgB8L9156FBji8hEobcjjv64jpBjLcwf9dVD8SH8BQGf5Gp4eBtkJ1f9t8R9QPZid9", + "address": "t2PTLztHa2N251MKKAj5L2gfP6XdGjMyHAG" + }, + { + "account": + "uprv91n6HmhTeqrkRx7EiZgWqHnUXyCJp6iyxuqxwCNBK6dHsLpFV2QeityrQs2WH2A9T5ToStkBuwoEKYN8Nr27rSPjroNcQuVneKo7iRfeRad", + "account_public": + "upub5EmShHEMVDR3eSBhpbDXCRjD612oDZSqL8mZjamnsSAGk99Q2ZiuGhJLG8mQLKRy2WMJfBwVome8MVqaG1gDPtZkhgS4AQtxstna6SELU3G", + "address": "t2FQbJYznYg23XiefMvJffWRWbCPPwThVkT" + } + ] + } +]; diff --git a/example/lib/test/bip/bip84/bip84_test.dart b/example/lib/test/bip/bip84/bip84_test.dart new file mode 100644 index 0000000..896a259 --- /dev/null +++ b/example/lib/test/bip/bip84/bip84_test.dart @@ -0,0 +1,28 @@ +import 'package:blockchain_utils/bip/bip/bip84/bip84.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip84/bip84_coins.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; +import 'test_vector.dart'; + +void bip84Test() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final coin = Bip84Coins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).replaceAll("_", "").toLowerCase()); + final b44 = Bip84.fromSeed(seed, coin); + final coinInex = b44.purpose.coin; + assert(b44.privateKey.toExtended == i["master"]); + assert(b44.publicKey.toExtended == i["master_public"]); + assert(coinInex.privateKey.toExtended == i["coin_private"]); + assert(coinInex.publicKey.toExtended == i["coin_public"]); + final accounts = (i["child"] as List); + for (int i = 0; i < accounts.length; i++) { + final accountInfo = accounts[i]; + final account = coinInex.account(i); + assert(account.privateKey.toExtended == accountInfo["account"]); + assert(account.publicKey.toExtended == accountInfo["account_public"]); + assert(account.publicKey.toAddress == accountInfo["address"]); + } + } +} diff --git a/example/lib/test/bip/bip84/test_vector.dart b/example/lib/test/bip/bip84/test_vector.dart new file mode 100644 index 0000000..11bea4f --- /dev/null +++ b/example/lib/test/bip/bip84/test_vector.dart @@ -0,0 +1,198 @@ +final List> testVector = [ + { + "coin": "BITCOIN", + "seed": "f655b0d02d09ecd9a591991332fe06b64711dcd7c16b3b89567c10d1186c4a49", + "master": + "zprvAWgYBBk7JR8GiyEWPaPAfgWRzqCS4nAZi15uqmvXJUBvn3DBUZvj1CLvxqJtJEEffZcGDtNeLc98qREhcZx5WQHRvoLbtpznHrC3K7cDf7i", + "master_public": + "zpub6jftahH18ngZwTJyVbvB2pTAYs2vUEtR5E1WeAL8roiueqYL27EyYzfQp7YBQRwuCP55CBgondg6zovZnHp5NTQTYwtnnqfoy3vTW3rxznL", + "coin_private": + "zprvAcHZ8xB7hm6yxBJtnXNGF2qnukPRWQjAvsjWMahTCR6skSedM4Xns2izNnTELTd4WuXdVrGyCaBYWfa8qcg2P84ZA9mZW3DAJohS36Sbymx", + "coin_public": + "zpub6qGuYTi1Y8fHAfPMtYuGcAnXTnDuusT2J6f79y74kkdrdEymtbr3Qq3UE2Gego6QVWMyfw6Ls1VkyVXf5reRsx6jb8CXnLuRXBHSNWGKx2y", + "child": [ + { + "account": + "zprvAe721jePhot8QdAANRQSfZkQzmYbdTEC4FyM51vtwobgXEoUxHE6vCC6vA1hqsoG1ZZT5gxZn9LCiBQPA28Udvyh12ZMogCkZD1NGQDDEdf", + "account_public": + "zpub6s6NRFBHYBSRd7EdUSwT2hh9YoP62ux3RUtwsQLWW98fQ38dVpYMTzWamPby8nLgzm1GJgWKDcUyBdUaejsqsFCuhWa59SUfJ82WRTJ3kGq", + "address": "bc1q45wn2mqgspa82hkxch4zuhzxepkeq8elpyym3m" + }, + { + "account": + "zprvAe721jePhot8R1BMRoWsMGxXoVD2iG1qeUbmbHuWqrbj5SAcfq5FkfgZg38g5GiiRARxB5nHuKE3LmcNrFqUxpWmnk2q6NCwKQWvqLDYKPR", + "account_public": + "zpub6s6NRFBHYBSRdVFpXq3siQuGMX3X7ijh1hXNPgK8QC8hxEVmDNPWJU13XGV1yGTguaoTbUAD4H4ewZtLbFcR1vD6CPmXjfKh5hxEjcECbNa", + "address": "bc1q29nltkttxeu9sa4fvh8e8q37rzpfdwjvawffkh" + }, + { + "account": + "zprvAe721jePhot8VVbvMM7Wk48gq3hYmxPRzCPcYXq3LxjTsVqgCMtiyCVZ88NiMLFyswwiSn6p6fntzZVPEfYGd8Y3j1ag53KiQTuDz2gky9j", + "account_public": + "zpub6s6NRFBHYBSRhygPTNeX7C5RP5Y3BR7HMRKDLvEeuJGSkJApjuCyWzp2yT7hy1TzEjUZGpkTkWfT9ntLmhzdd2a4ejrtyB8YhixjXGPU9Fx", + "address": "bc1q447vxh4yh5aj53fru2kjjcsx5rsl8hg5vut5u6" + }, + { + "account": + "zprvAe721jePhot8Wazot1KtxsJSbxU6VAKL3XdSiK9ZGEp2supFEUoUd3uy2dzK6uhx1vcCC3AmBYqJp4cdmZaci7KDMFhuU3eY5Sr4drsWq5r", + "account_public": + "zpub6s6NRFBHYBSRj55Gz2ruL1FB9zJatd3BQkZ3WhZApaM1ki9Pn27jArESsuVU4vskEbgGPqJMgzxus3eHNwy7Dp1HcfxM1t5QdYxG9djWYaB", + "address": "bc1qvxujhwntq4pe8llhz70g7asysqh4sfdctfl9rn" + }, + { + "account": + "zprvAe721jePhot8ZGemExwquqLvP64f5pM4WWovQKGR6hc7VCxZDMaxkHrK1dmtGmJMG2p6F1RLotcCVbymD84nmje57jQCdA7qMnXv7TG5CjV", + "account_public": + "zpub6s6NRFBHYBSRmkjELzUrGyHew7u9VH4usjjXChg2f396N1HhktuDJ6AnrsxZvpYRpmjHDSEN67G3sHDTkwb1BAtpCFRpRGkxSuikryqGZKF", + "address": "bc1qxc9are6lxnt87u7qmqrr8lv7earsqrtwmc5uwm" + } + ] + }, + { + "coin": "LITECOIN", + "seed": "57dee1b055bcc363718c4a596f54a1ea196a25edc6fd99332978a4a5dfc93f64", + "master": + "zprvAWgYBBk7JR8Gkud7maVG8KASyBqYwsaE6Xm9CC2Zan9qB8RNb9Ae6hdrCLygJ8Y97VA13gr3WWGLwQVxinzD3Hq3Uie4mrpE2ui19gQpo8H", + "master_public": + "zpub6jftahH18ngZyPhasc2GVT7BXDg3MLJ5TkgjzaSB97gp3vkX8gUteVxL3cYLwSaPkbtxEHEq6WjXy2rHCBXQaYt1KFbkiS4F9DebuMTDzLG", + "coin_private": + "zprvAbBjEank7Gwz6bnqqRH56SJZUXBCFGbAThqtqAzg4AbVMW3GcgAoYUqBcPrnvvFa37ASQyCaJPjgLPBy5xKaCcpdQQyWhXmoLHefmPZ7xfy", + "coin_public": + "zpub6pB5e6KdweWHK5sJwSp5TaFJ2Z1gejK1pvmVdZQHcW8UEJNRADV46H9fTgjikMxKgNFLShRVhHgaQ6cUbnBeW3Z9ChNdsRP1Ab7QQh2Xxc2", + "child": [ + { + "account": + "zprvAdsjdqnjVfuXKZTbEhZh6tpUnphF8DTT8nc1kdA8tmdwFoYMaXoPhmHjoPAMEdju1CjmVNjhc6Zyhtf9qWuoBGLMmhXBUdwuvVdrK4exa7w", + "account_public": + "zpub6rs63MKdL3TpY3Y4Lj6hU2mDLrXjXgBJW1XcZ1ZkT7Av8bsW857eFZcDeei5cBD8p5n7iMEi2DUYdjGKwwmLQNk4WouRe6RjF2Ptm3hecp3", + "address": "ltc1qvu9t03w66u29efw6gakp6c063kkmhxfumnprg4" + }, + { + "account": + "zprvAdsjdqnjVfuXQ2sDtC71ox1mWdV3xwGzNpdePGFdGo91mpkmPnWq8TnT1VgqvQdGqdCeyZmAhUquLcq8Wj8MHWC8edmyw6uZ1Zsiz54DeDL", + "account_public": + "zpub6rs63MKdL3TpcWwgzDe2B5xW4fKYNPzqk3ZFBefEq8fzed5uwKq5gG6vroBbo1sqi6rgbdi6SUnL3PTdAn6VfsRHucHF1x9S2RzXZvQeeUh", + "address": "ltc1qtylxue446us0mdy75kxa7yhrmjxltmxsex6c93" + }, + { + "account": + "zprvAdsjdqnjVfuXRi5eCisxryZCZBuC5jCeYWHEb6LyGHBsWc2XLLXojvTxSfodWNuA3zAwHnYqt9uVkB3z2VXEyqosy3Fjcm6SkdWfcfk88w5", + "account_public": + "zpub6rs63MKdL3TpeCA7JkQyE7Vw7DjgVBvVujCqPUkapcirPQMfssr4HinSHx13vfD5pJRpKvQ5sUqkhZxUY2uPCLEYAFXdLndH5VmFNntCBUS", + "address": "ltc1qr3af5g8dsjxpg4cgns3xlu5jryvnn30p9exnga" + }, + { + "account": + "zprvAdsjdqnjVfuXTEfNNpJC8irUiqcxgGsmtubCvENRrxMF5y4i9pDYya28BUunp6RNXoGHvpCptj98rEUFbXhfNVjwLKu7jCsYhG7ysmLiszZ", + "account_public": + "zpub6rs63MKdL3TpfijqUqqCVroDGsTT5jbdG8Woicn3RHtDxmPrhMXoXNLc2kyCkBouUW3bR8CSuJBKwVXoPPw9V2iNWLND37dWkzDMYwiPK7a", + "address": "ltc1qnzs3yevwq6s5fmhqu6gc7ca3ekma7vnmwe3aps" + }, + { + "account": + "zprvAdsjdqnjVfuXVkLzwbAL9m4nc3Q6d4dtEHzy1oB33a3EuMs4q723zzeDkwLcMth4XCxBiDrmZusb7dC43zGz8bakD2tXU1kKJWzGxF3p3Fy", + "account_public": + "zpub6rs63MKdL3TpiERU3chLWu1XA5Eb2XMjbWvZpBaebuaDnACDNeLJYnxhcB14vpUVXAXqfPFmyB9ZQ1eNXmHjs2LzYZJYbAPn84Rd8BSxkox", + "address": "ltc1qpc4cpvyr4cwxrnuv4ru8504ypqw4h2ged9n6e0" + } + ] + }, + { + "coin": "BITCOIN_TESTNET", + "seed": "263e544993738b2f5fc93a79d13bed9a26a0664520739e69f75f48bc718b1c33", + "master": + "vprv9DMUxX4ShgxMMi4Qq48rJ7ahq9kZPEn1FYuBTmhEVQQXF8vV9wb1oXSVXJrjszySXoee59oaKEY6Aw1KPZLxiRkZwyLSRvj9ZfdUXpStoRb", + "master_public": + "vpub5SLqN2bLY4WeaC8sw5frfFXSPBb3nhVrcmpnGA6r3jwW7wFdhUuGMKkyNbregjT1xq788cZB87rxWQhCBfQvKx9AjPWMmbmXJfbfoy9B6KZ", + "coin_private": + "vprv9HQgaSKgrU4ifDhKA3EimhivLaAsa5qd4aUUMgZZ3eqfHCKHb2BnnpfGhVcCbTPbrn8GNRvRJ6XNbY8YbDYt45BqaNHsmSnVzw7oDh1Qqe5", + "coin_public": + "vpub5WQ2ywragqd1shmnG4mj8qfetc1MyYZURoQ5A4yAbzNe9zeS8ZW3LcykYmLSfYbuqTMbZQUrkmAA51CGGrqzs9G8cwsCRt7S3KqxkVjvTma", + "child": [ + { + "account": + "vprv9LTrXrkVrmcL3Y1htKdbyYmkZ2gGfaujjGb93iosUc3aMwTmmJ6SHezAe2zw6fEmudv23JdveavCxtxu85QTQb3PJ1uo14H5LgiyeDkXSBa", + "account_public": + "vpub5ZTCwNHPh9AdG26AzMAcLgiV74Wm53db6VWjr7DV2waZEjnvJqQgqTJeVJKqMDJnrYGtq63fq5wXDRyNThmmY9xhLKdn7522Qy8phZfV4wm", + "address": "tb1qkgkqhul343y2s5nrvleddad7ha48r95d9eg8ug" + }, + { + "account": + "vprv9LTrXrkVrmcL7CLwrQPBZrmbVgvcCmxg4CoFGGj9WXQUdPQhwNyTK3gqeWM62y9bbJHXNCPAfUbPPVQvFCCD64gs7jMsjuUdcJUxcZND74P", + "account_public": + "vpub5ZTCwNHPh9AdKgRQxRvBvziL3im6cEgXRRir4f8m4rwTWBjrUvHhrr1KVnarzxRfa5MgKb9DvyWtUiT8KgJPX3KHbHoJszFD2xTiQ3YpM51", + "address": "tb1qqh9d2p4t64wruwt08uzt6uny294f76c4xchj6w" + }, + { + "account": + "vprv9LTrXrkVrmcL86zHYCqhVxNobzBVr947rQAqddw9zqZtW2W7tXi99Z21aeCiDsKLptsWF5vVCv3LZpZfC8UKHFPBcEonSUx23RJKoiA8X1C", + "account_public": + "vpub5ZTCwNHPh9AdLb4keENhs6KYA21zFbmyDd6SS2LmZB6sNpqGS52PhMLVRwj2CmujRs8pXgsk2DMaMbCmVCa7HXdetcL12tpmWsyg1LoXdF1", + "address": "tb1qy8dfq9nwn8pghk0f3pwlsyc7la3qse06xpverq" + }, + { + "account": + "vprv9LTrXrkVrmcLCAjCYcFPiVcHYwKuWdC5wKdsVS3Y3ANWLcVvEjqnvixA4QaFGJkAXt4epTpd8KNpb199gHb3VCMfZheaLY3rkesvfRHTpWQ", + "account_public": + "vpub5ZTCwNHPh9AdQeofednQ5dZ26yAPv5uwJYZUHpT9bVuVDQq4nHA3UXGdufnPALTGVe6NwfwoHXg3iEfy75oVrvYzZKdoDL3Jia9bDiufo2A", + "address": "tb1qyvuuygssylrmjwxr5yvc8uakqu0armqks5j7tc" + }, + { + "account": + "vprv9LTrXrkVrmcLDwbN3Jxr2zL62MYxaXPsXPhAADHu5rCexdwxe6RXVGvYJCu1SPUTYutTPi7kWFC6iiGxb6pHiWbvseNYqTJR44NuroqVeFo", + "account_public": + "vpub5ZTCwNHPh9AdSRfq9LVrQ8GpaPPSyz7itcckxbhWeBjdqSH7Bdjn35F29UkeLmkLmfhyokX4PgWzifac3XRGK5LtqNbgzSquT2fq6MuVxeY", + "address": "tb1qjqy4fyqmunh0pr6552j72qyahr05cnkcy4ydy3" + } + ] + }, + { + "coin": "LITECOIN_TESTNET", + "seed": "9e46e117a0eea6829b3b7ac29a7430ab0e6a547c0ea443ba56a0eeb16a7d18e4", + "master": + "ttpv96BtqegdxXceQMpENJrTC8XbEm4nXYu424LcUfsUM6Sxb8TJo1RLcpBTvGeurTQR8EheMk5mvMfPJzcQqNA3XQAwzUnYwuCHzpZBZ8HLc1D", + "master_public": + "ttub4XNESS7BCg9c2EX4cvLqGiMogKkyboTi6aSe9edmHHEZBVeP7vTmdRHjAe8EfC3WrbEuQP1Y7QGeKsJ5Z53LXkTvzA4CgZDDiFp6NkJUTjh", + "coin_private": + "ttpv9BfqaVWAdKgPkgVApup3mMGKNcrXrWXnfMeBWTdbGdEF58ko69Roz6cxmtCcc2DC4EUS19JyCp9j387gBZQbCNhi2rRFzBroEu4nvnorYgg", + "coin_public": + "ttub4crBBGvhsUDMNZC15XJRqw6XpBYivm6SjskDBSPtCp1qfVwsR4UEzhjE2Eah6qTFRrGDftcstt2xxscFyrcXNjZepiWB5ynx4R96zKPZvBK", + "child": [ + { + "account": + "ttpv9C9MqzBadEL9x3Y5nJgzBE4vgStQTLxNBhgPeRyXcfyp8JiBUnhtd4Hg7A7dzEae65Du6N5aCVegEDLevhhwgUxmFFiH5aU22r58NoxDuHe", + "account_public": + "ttub4dKhSmc7sNs7ZvEv2vBNFou981abXbX2GDnRKQjpYrmQifuFohkKdfPwMXfg8FbmqJWAahy9kJKcoehQtcjHQDyuxGG2wzNjTvpCBY3bHhZ", + "address": "tltc1q47hqht7vrae6mtxcaunr2fa57uqvl9dshf8e6q" + }, + { + "account": + "ttpv9C9MqzBadEL9y4bMhn7Au2ax83hGxP1MGnpZHjeP7RciP5UuhfnTzSo7CLnaW2Bf9KLgUev9xwykiAVXfbCqAxMUJfTYHniZT6jHn6VuE78", + "account_public": + "ttub4dKhSmc7sNs7awJBxPbYycRAZcPU2da1MJvaxiQg3cQJySfz2apu13uNSkHEr8tLuuJEBadjT8UP4U9sbW1Ft67Z1pKfqvDs2QY4Kcoq83n", + "address": "tltc1qwesf498ukykh9w9sxcs54tvdp9yxte89c2kdg7" + }, + { + "account": + "ttpv9C9MqzBadELA1ayCYdtn4eiR6kkxXYiMBn1iatuK1ofSopBogFyi2evf42GZEFnDr4mubD864ZKx7i89N4WAjPfqGP3oX8kWTi7jccqHP4G", + "account_public": + "ttub4dKhSmc7sNs7dTg2oFPA9EYdYKT9boH1GJ7kFsfbwzT3QBNt1B293G2vJPXSWQjZsofjrWqrHm2fw7F2yqZDWscZaW15Ku9YT5he7g9U32s", + "address": "tltc1qek06hp3wqp85u2qwdduxkg5g4yyk6q7mvdu2xn" + }, + { + "account": + "ttpv9C9MqzBadELA3sNkZwUsH1xxkPMdmNsyYy3bC27AXtUF7c3aQj5KnKvjg3qLUSCEEDqM1TXFiVAFQqGQzDKLZatkUpShGHukEUXTjE9n9eX", + "account_public": + "ttub4dKhSmc7sNs7fk5apYyFMboBBx3pqdSddV9crzsTU5FqhyEeje7knw2zvTPk83aa87FBAHkhmpBpiZ76jPJoM262k76MY81oPeLM4b3frAr", + "address": "tltc1q6fq5g443tl2h9h3vtp5hj5ahjnynt54797pvr3" + }, + { + "account": + "ttpv9C9MqzBadELA7PK4vvhpt22WVRxW2tC69ZxpdnM5LSpnrADosXVwSyoTXz8CFtDkXEk5nvX7zKuLArsKvYJSgESsCAgjpqVXuox5xDb9uYk", + "account_public": + "ttub4dKhSmc7sNs7jG1uBYCCxbrivzeh78kkE64rJm7NGdcPSXQtCSYNTauinNw8BCqyGVuYGLp8HR1amMww15phQauhJSSZmC674yZNq7hnE5m", + "address": "tltc1qz7wysa7e6rvz4lumuk5pk7fdzy5lplx9sp8pcp" + } + ] + } +]; diff --git a/example/lib/test/bip/bip86/bip86_test.dart b/example/lib/test/bip/bip86/bip86_test.dart new file mode 100644 index 0000000..e565fb9 --- /dev/null +++ b/example/lib/test/bip/bip86/bip86_test.dart @@ -0,0 +1,28 @@ +import 'package:blockchain_utils/bip/bip/bip86/bip86.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip86/bip86_coins.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; +import 'test_vector.dart'; + +void bip86Test() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final coin = Bip86Coins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).replaceAll("_", "").toLowerCase()); + final b44 = Bip86.fromSeed(seed, coin); + final coinInex = b44.purpose.coin; + assert(b44.privateKey.toExtended == i["master"]); + assert(b44.publicKey.toExtended == i["master_public"]); + assert(coinInex.privateKey.toExtended == i["coin_private"]); + assert(coinInex.publicKey.toExtended == i["coin_public"]); + final accounts = (i["child"] as List); + for (int i = 0; i < accounts.length; i++) { + final accountInfo = accounts[i]; + final account = coinInex.account(i); + assert(account.privateKey.toExtended == accountInfo["account"]); + assert(account.publicKey.toExtended == accountInfo["account_public"]); + assert(account.publicKey.toAddress == accountInfo["address"]); + } + } +} diff --git a/example/lib/test/bip/bip86/test_vector.dart b/example/lib/test/bip/bip86/test_vector.dart new file mode 100644 index 0000000..245d279 --- /dev/null +++ b/example/lib/test/bip/bip86/test_vector.dart @@ -0,0 +1,110 @@ +final List> testVector = [ + { + "coin": "BITCOIN", + "seed": "a7cf3b467f3a0803502d4dd0968418b27079e7212e737b650da5efc0d058a3f8", + "master": + "xprv9s21ZrQH143K2tCmsnhYj9a2A3sTnhQDafVXPhce9Nz5wRp3vV5oVrwg7RsxqN8jsbeZVawKc8wV7SeyLsXP7qoXRhGkyTZt8N7dgi5RqLm", + "master_public": + "xpub661MyMwAqRbcFNHEypEZ6HWki5hxCA84wtR8C62FhiX4pE9CU2Q43fG9xit8bFLECAYA9nJ9mNGEuZkdHzkGN5374oZpXuCSA1ezwFD4Ptx", + "coin_private": + "xprv9vq6jtRWu3kLk4dnhxUXpUpYCjWRMziPXRfNirwmHfmWVu2Q41Lj9fpn2665umKJbkuJ8qFq179pe8rMor7oTXR9qsZVtyicJHd89GRjKSE", + "coin_public": + "xpub69pT9PxQjRJdxYiFoz1YBcmGkmLumTSEteayXFMNr1JVNhMYbYeyhU9FsNzcdAoDo5EMdBQjsAd9nbA5MkPwCGCh2TLdb4yofiJdMB2n4ws", + "child": [ + { + "account": + "xprv9zTTu3DvPFUqLHj6c68A1uKpxqPcGw3bUTfyi3fcXjhTL53eAwfA2WSdCPx4fviTfmtEi4K7B7fhS8GXn8iUh1NSFAe7iF2wQs7jYiazHZ6", + "account_public": + "xpub6DSpJYkpDd38YmoZi7fAP3GZWsE6gPmSqgbaWS5E65ESCsNniUyQaJm73fEEofyg4yADjXfeoHLHhMf7VQHYBie6hMjxg75h8jXGkP1E1UT", + "address": + "bc1pjmud00nke2yq8mp8xum5scwyfhcalgc5x0auswcs5gerakw3c55sk4yj0t" + }, + { + "account": + "xprv9zTTu3DvPFUqQAWye4ZeMURxC9rxWKjtoT5RAq9tTFxqXUHrxhAPVgjbRRiE7a9pjVkXSYeYszgSq5pDPrUbgCicaYWigii5L2Yfoi2KUj8", + "account_public": + "xpub6DSpJYkpDd38cebSk66eicNgkBhSunTkAg11yDZW1bVpQGd1WEUe3V45GhQqEEBiDoM1cQMscKUZAnrjVibUMcNx1MoEqTXrXxCppsyq2w8", + "address": + "bc1p6p6kvpvna62ptuhdt5aflvptr5km3kgswgrq9r306zhsqtzrzdrqgw4g9k" + }, + { + "account": + "xprv9zTTu3DvPFUqQFXhuxFV91VjbZtN9NewgqRThdMZX8bhB5ApugiNfbvTURazWczk9BUy1o9CmgehsgvzoiTKVAEkmMwqG5BRbC5pXmazM7c", + "account_public": + "xpub6DSpJYkpDd38cjcB1ynVW9SU9birYqNo44M4W1mB5U8g3sVyTE2dDQEwKheJPRjbRSL7oNCco5esFRDL2BmXWNoAScqhwjKfYQdNg476sgb", + "address": + "bc1p0w05wxxc6r02kywuf9uzd4pcq9mevqmv7uwpm5knztxzph2qzxwslnwwz6" + }, + { + "account": + "xprv9zTTu3DvPFUqSuk4TQdvEVL1yVGVonJ4LSaF24yeKD4HT6anKSabhoSwwbBCXXE2VPtidLdCaHfYpv5gCmyGz9XVVfXLtUjtZcG373JBJVx", + "account_public": + "xpub6DSpJYkpDd38fPpXZSAvbdGkXX6zDF1uhfVqpTPFsYbGKtuvrytrFbmRntrvvu8x9LXgmcvWHzBUjocot4fJLDngqx7QGRUL27U4975gURb", + "address": + "bc1pmeq4fqx8wxl69c9pfg70vyqvk8s8w6je3g83chsyvqxrx6zshseq6jmh3n" + }, + { + "account": + "xprv9zTTu3DvPFUqXp9gXky6aiAcRX8HUFvZGnvpsegZJM98cEs4Acg1RRQUrR2rVLdLvSydUZ3gKnV9ynhU1Tmkf7tiuypKFvZXvsPb5qPX3ab", + "account_public": + "xpub6DSpJYkpDd38kJE9dnW6wr7LyYxmsieQe1rRg36Argg7V3CCi9zFyDixhgqxsKRT8vhkasf58b5UV8taviNe8ij5vhP6ebwUXQ3XdhfG9Rs", + "address": + "bc1pfnlpdrasrwpz8wj4g2h27krayq5wz24rvrg6fsl7mp67f8hm7vws2fwyyv" + } + ] + }, + { + "coin": "BITCOIN_TESTNET", + "seed": "45e5926b0250dc0a9aa8a0b5af48f647cad390faaa8ece326ecc5971b18b3853", + "master": + "tprv8ZgxMBicQKsPdcyuPEsPgy88CSRfRgY54G6YWjstK3zaFWMWFxxDND5qVraWQqMAAxVp5gA83MtRJbfzcZajoet8QcQxUfiyzdoMP5VVjfz", + "master_public": + "tpubD6NzVbkrYhZ4X61hGtXz6NnEmTwbb1iydZhKoFvBjKny5zcGtMmoYhhhfyzqeymUw7pNe5fsHusxZsDJfKyPu1kReeapmLxUHsLJccsebuw", + "coin_private": + "tprv8doyTLBZcyy7rEc86BgMtK2Ut6SxxgUVwPzbkvEfWHyk2tmfJpF5pdFfFaWnPk1i7d31YS7Sf6wYwrAkgnWzjrKmoG7UoXa7XFn5Stf7bB2", + "coin_public": + "tpubDAW1bkDomMenjhduyqLxHigbT7xu81fQWhbP3SGxvZn8sP2RwD4g17sXRjA5Ko1Bx4EQ8zCEaGYXDPuk5tJpRB9cCwcpmycwvykGd65huWZ", + "child": [ + { + "account": + "tprv8fkrus51aVMCdPVDFgnxdTG7MkLRqtH1vkS14LX6L4WPVXKPpB3PvNcrtXbGQ64eNCRd2BbYxhSY64BNju2pnmfBdYs3gogHFQQ15w8WjkD", + "account_public": + "tpubDCSu4H7Fis2sWrX19LTZ2rvDvmrN1DTvW42nLrZPkLJnL1aASZrz6sEj4i3dEqhmzK18aaq7bgE6dFdDp4vcKjGjJFLnJMLuUbwBS3NPMgC", + "address": + "tb1pptkx7numcax3amffd4l32v7vev7v4try44qkt0yyfq3ptmrppp0spk2y9g" + }, + { + "account": + "tprv8fkrus51aVMCenpbr7buyL13yGYDgAeP4sC4cXH1KNV4eZRCso1XWUCPRfJWPSkDjyVCW1JNPSwmVvhEJzGZswYGGRmdhfuuYaBsHdym4KY", + "account_public": + "tpubDCSu4H7Fis2sYFrPjmGWNjfAYJ49qVqHeAnqu3KJjeHTV3fyWBq7gxpFboKbBQCvJ7aMGZdrPYVEqYxycKUGmhUTZcqUzrMu1nXMfShH3qP", + "address": + "tb1pctzukpnr673l0uphjvv2gw6ervunyhxjlnng9hscrpdmx9xeldvsxmyl7r" + }, + { + "account": + "tprv8fkrus51aVMChXgMEGpLyTRFqJeuRCASYeYGHLjyRD9frw2RhsVTd2NgjFnexnUzyYJkjWCmjRrN59rSQhFDM4e4duCnRKfatqwVrEXNZC1", + "account_public": + "tpubDCSu4H7Fis2sazi97vUwNs5NQLAqaXMM7x93ZrnGqUx4hRHCLGK3oWzYuMVQVnGVa7Z9dr9Wp6pmF6juNpDgLXGJfS99XbfmjVpkQCZJx8P", + "address": + "tb1p8ald9w9rwpxz0f67390j8s807trvc2xz86nkj8gd93m28rmqu0ss9cp5xl" + }, + { + "account": + "tprv8fkrus51aVMCjwC6JsrMDc68pUXU8Tps11mL6zF3omeMRH2NaWELwi8Wd4s8XDcdnaHcmQ6fJAa16eHqPqGrFdZisjkoNbuCLhC4rMPeKKc", + "account_public": + "tpubDCSu4H7Fis2sdQDtCXWwd1kFPW3QHo1maKN7PWHME3SkFmH9Cu3w8CkNoBwv3asfVQCoDaATHtfdAgcKnUZi6Yf1XWGGH4TChk4XBHBSBKL", + "address": + "tb1pctetrezv5aq5szjgce54t7ldzz0t5kv8q496xk09q5n4a04dk28s9mwlva" + }, + { + "account": + "tprv8fkrus51aVMCo2FaHH6XJLXeGodQBErNReD5PbgKgTqJbKDQjb3CM5n5UB7HMiA3U7UzVUHLUZoQXBv2ftdhspFc5brcZdrvdwXYTu2yZZk", + "account_public": + "tpubDCSu4H7Fis2sgVHNAvm7hkBkqq9LLa3Gzworg7id6jdhRoUBMyrnXaPweHstYnM3jGckaWQTxR4ap2R8Ehmtnz4sz8GNJS7Ama9jHbMsuTL", + "address": + "tb1p4pp8n4580su05t0392gcy5hmufed8urwq8sk6556sz0m7t33j4astdympf" + } + ] + } +]; diff --git a/example/lib/test/cardano/bip32/icarus_test.dart b/example/lib/test/cardano/bip32/icarus_test.dart new file mode 100644 index 0000000..956bbec --- /dev/null +++ b/example/lib/test/cardano/bip32/icarus_test.dart @@ -0,0 +1,49 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/cardano/bip32/cardano_icarus_bip32.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; + +import 'icarus_test_vector.dart'; + +void cardanoIcarusTest() { + for (final i in icarusTestVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final w = CardanoIcarusBip32.fromSeed(seed); + String public = w.publicKey.toExtended; + assert(public == i["public"]); + String private = w.privateKey.toExtended; + assert(private == i["private"]); + String chainCode = w.chainCode.toHex(); + assert(chainCode == i["chaincode"]); + String finger = w.parentFingerPrint.toHex(); + assert(finger == i["finger_print"]); + for (final c in (i["child"] as List)) { + final pathIndex = Bip32KeyIndex(c["index"]); + CardanoIcarusBip32 child = w.childKey(pathIndex); + String public = child.publicKey.toExtended; + assert(public == c["public"]); + String private = child.privateKey.toExtended; + assert(private == c["private"]); + int index = child.index.toInt(); + assert(index == c["index"]); + String chainCode = child.chainCode.toHex(); + assert(chainCode == c["chaincode"]); + String finger = child.parentFingerPrint.toHex(); + assert(finger == c["finger_print"]); + for (final c2 in (c["child"] as List)) { + final pathIndex = Bip32KeyIndex(c2["index"]); + child = child.childKey(pathIndex); + String public = child.publicKey.toExtended; + assert(public == c2["public"]); + String private = child.privateKey.toExtended; + assert(private == c2["private"]); + int index = child.index.toInt(); + assert(index == c2["index"]); + String chainCode = child.chainCode.toHex(); + assert(chainCode == c2["chaincode"]); + String finger = child.parentFingerPrint.toHex(); + assert(finger == c2["finger_print"]); + } + } + } +} diff --git a/example/lib/test/cardano/bip32/icarus_test_vector.dart b/example/lib/test/cardano/bip32/icarus_test_vector.dart new file mode 100644 index 0000000..175a3a9 --- /dev/null +++ b/example/lib/test/cardano/bip32/icarus_test_vector.dart @@ -0,0 +1,3232 @@ +final List> icarusTestVector = [ + { + "seed": "c19f5da62a30d6dc5cf17f04f3c9baeb872284a099695bbc71276efaf21dad36", + "public": + "xpub661MyMwAqRbcGeNLDYrMDnfGvivN9r2QBhoiwhjGUojWiTTDjuFvSi2YM7RiD9pfiyWCDc1R7Eh9wLw1MvrznMDQxbDYGrMiaVuwEUX3jXT", + "private": + "xprv3QESAWYc9vDdZte7WUKHrFuFEnKfvNGbeZcf7HC2Pc4jiBQYsde1qp5zh8tEzaVRWzDHWXCtcZoBYdtUanZazRutW17b3Hc9fCagG5ofp4zbEjNoWtw4YW5SNgf8ktD9pgSZJRDXfJX2ah4Y8a7eC9s", + "finger_print": "00000000", + "chaincode": + "d328ffb34588dc6ccd1bdf75cc2b9f158bc8e5a683faa28be488348401d2d5e1", + "index": 0, + "child": [ + { + "public": + "xpub68VqfyFB66PzBZ696QUu5JRWEoC5dVhWpo7aY8sWakYPm5Gya7HUZNpM2ebRm7NpHycppUwtUw6djhUqS6THmqVVdenLX9ZHTwesf51ZYzm", + "private": + "xprv3QyMTP99GMEhbmtNwEjSiFTmdMBAQvBXLkb13gH2djbuq58DQhXf7vrnQXJkWQCym3VQmaxFDJ4XR8h4TKqx98ge1CBkvvgPdre7hqNqzexGt5EZPJGtuLxEUwTXPNUtB679xxqnKTBiWeZ8rSvg9NB", + "finger_print": "52e6f9d8", + "chaincode": + "e665de8ac56f45d48154ee3cde881ca6b6443330f53c4e0e30988f200630cbb9", + "index": 2147483648, + "child": [ + { + "public": + "xpub6AetkrQQxKTrjTxLJV5QXhay3FmuDcaD94LCiN4hLKX8cFnnRshUCCm1xrzGkjmSVUt35o3WKK2jhKY3UXg5q9KJiXAjT4X7kHZCmCyM2Ek", + "private": + "xprv3RcW57Y2BKmEXRfp6tgboA652kH6A6nrt8sej5Cc5TBa9qAPPfnk58ffQj67vqu5h3AvLsunE8iXUCambRwR82ZztjYkfg4ABf6b7Cmi8XcgRkK1fjiCwDXHebhq6jPRXtNMe9Mx2X5Z2tdyGBGfbvi", + "finger_print": "783d9123", + "chaincode": + "00703b73228cc09f47c72db8a85adfdee0324b1c25b86fbea8a1d4da12a20a60", + "index": 0 + }, + { + "public": + "xpub6DQSSFKFpLyQKKgTwpzqbjEdg9q7BvurBVkakHwvyUBAq6fue3JunM4UAJhnC5p8KQxFFVxLxZLTXa2RadWkHcRnhGec1R9ikWeA8arHAom", + "private": + "xprv3SRtzJ3XsAYBJo9gKotxeWDWrkv1y7gsFJVaDxMFYpkioDpGHWKxrPaaQEvyqvnZRRd89QKEzBA6wXJekJ6N74teLGc5yzEocFSPj4hRFF8khiC8ieQVFfRsbSvvFWvyRJJu3gyvDZuEpwPrfP6Jism", + "finger_print": "ee7d425b", + "chaincode": + "761ffeea2e9c1aa6f57ab7ef47b5a953d2ff0f5c4a9aa9ba6cd918ac6dd28841", + "index": 1 + }, + { + "public": + "xpub6ENHehxryxFLh4AsCuB91RniUWuCdV5VzugBwnmMKkyiCQ7tJkXNFAuFXmxgDd3WqyjGTvRBgHYdvUBEBCY1RgPHrgynsJcJgHW8M7xw73x", + "private": + "xprv3SiVEfcwCN5j8FqiWJs863oaHacg4xNGfWp3Xuv91yqnYu1wsqVPAbEE8ty1QhYBpLA99owXQBQoNtW28QntjQUF258sxg3rdYzpm5M66Uc1GBD9MrbMUWajPS9y6PKgJKTP6r555bEjb8KHXv72KkD", + "finger_print": "717e5f94", + "chaincode": + "a0cf84026cdeef0e6641dd4ea53660b70853a31208eebb30a9344bae168e1f3d", + "index": 2 + }, + { + "public": + "xpub6G5hzhrs46VEUFtr5qCHb2Z8prpAWuBosbNA4PY27Wci48zEYGmDjorBbPbbnxtvQmsZsHH6LeMMM4GAM3fRZW4LXGs1kiuRZFoYsAcyGqm", + "private": + "xprv3TE2CUUXFyS1VxsXuA9JfPWNXLyYricjGAqoYky1mpJj1tF5sPUjK4jRbYf26y1iggXqavSLeqyJMsR1qXBuRkykVKvAUrtCdtyq51F55yNHZGs5azUdBYB2QQNc47cZYu31mdNFdsQkcHrsmGwsoF8", + "finger_print": "5ab40d6f", + "chaincode": + "a0a0a70eca6e5850565408867ed78c229170f2c169d123a4e7ed4e439d69503d", + "index": 3 + }, + { + "public": + "xpub6HNxzcVDtRqBn5qQ5iqHLZzVwvECUfMhncn5xhBwEmBYkehtrUL3UPLmtsmg8J1PTKH3Xkyz44sgaACoDGZo1L8Ct5htCsR186teQ2KDtG7", + "private": + "xprv3TcNseRjRKAbN2LQFTJHacPdWpxsMqsEeFD4gjfmuaspxFpt64KSNDhZ4y48evgyRE5txwpihbg6R4xZu9UbSGckBZBXovvewc2pzQDCL1Tqb8Z8v5A1xeGT4gfUBTijLePfsaPQ4HsttdG9zNzxphx", + "finger_print": "0b3ceef6", + "chaincode": + "caddcd1317b6458982b82526a066b714d297a4cb6076735d8b32e2607e72ef93", + "index": 4 + } + ] + }, + { + "public": + "xpub68VqfyFB66PzCxCb4wW51tPbemFTBH5dnsfyqoaNQ8zRWSrZRyH97HCZ86bpSXtNsFEbYTrf9h1MWaF7Uti5GuG2XUpraHqztWTKm25Rk5Q", + "private": + "xprv3QyMTP99GMEhcBytgh9nVxS5a9HqtXmjKqzRCXTouAJ9vHBoDYsg4QzWHHrMC3uUHi7p1gbQNdK9c6me4zNuyKrphZhigAvJgq9K6TuGoEyZefeJ4EBLGUUTNKgmKQEZtqJWBkZgBusV5WusiS3dHLv", + "finger_print": "52e6f9d8", + "chaincode": + "72dcc4c3d5e9bb626b53dfef5da0782ea58575f87ef6c82bfea887dd8b268b41", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BNinjfrofT2v3jpvZANb69pXmwyiihD4pqHgwGN62dGVSxNPVnf3mHw4GU3aMUfe3vbozksLk8UDphemSwBKT23oDnMRwVNuX2cank9pAm", + "private": + "xprv3RpvkgPmzZD93AcDPaw4RP8WqLzYXQsCCYog2JfdihfSWdW2E1ThPRbgvcgBnah3mNiMh1YiL45Nf8JpU8XW6nvqcQbxjh4P4vEeafT9AMbbBnUHMjsKKzKuTv2KMwkphr8wf9mNBPaSJgxjkH39CmK", + "finger_print": "da5b6c07", + "chaincode": + "e2792be4513ae46f381f23b2a8a03e08ca537d6c888b7adacfe12368f96de126", + "index": 0 + }, + { + "public": + "xpub6BoENnvvxxCHq94Vy7i3ADPevKJvBq1nQmNYRTwkiCyX3HhBjqozNdasRffCvKHrYGfitToaiFK4rWjs5pvQHm9MjMwJ4yew5PyUbuESQnj", + "private": + "xprv3RxD44FNYtapNTb7PQYciBySKSX8WnFmrxWNUdaD8ef4G8KbJdKuSf4WBasU97Bgv3Sfpzu8Ts1XpWygRtMQD7iUSQGqRrfe3ch1b9tnQT1ydhdohgXFHgiKgwYLwrPPBhPyuQEMDxVSiidtaZTrQ8m", + "finger_print": "13d9c850", + "chaincode": + "40f01970e8b2c7dea65d8f1d552256b7304db3d12465232e4780314747cff7ae", + "index": 1 + }, + { + "public": + "xpub6FHbjHfS4JUMGc4GdZFBDgTLcDBWmv9W6c2W2763mLqsrVN9dgn7pRqRQsoUZ2RRnajgJkSAhQ5b7ThBnhRQ23R8TxEU5kKKRZjcDhmZ6aQ", + "private": + "xprv3SzKmwtotA9T2jyv3ZcYoEG3mTb33eRBv8GKjQ27272CJjvCTz1Smqrnr4JxEzsUhifwTfCHB1LV17vtipAFjQTYQ3kGfqmHSGFmDmu2TyHc6PKoxmgxauYsqFxgCKg8ZAHPa4NZWxbikUDRHAJNpeK", + "finger_print": "ee8c1efb", + "chaincode": + "ea2976dfa4b28502d95235adeb6139bb55f99e0ea184d71774eb8a2c7554af89", + "index": 2 + }, + { + "public": + "xpub6H1qTHH8V8Wp7UwjgmYMwZADZJYJAuq81HU7Sg8niPAtyDWivCzv7WTT2dmBSth3EP1uq9nG6rpFkwHwiYUS9HDN93HwoJaETRF2XQzLSSs", + "private": + "xprv3TW6p5bwWhxyWXY9zMK1MAUyc937SgQuiBXxufX1SqxHLqPegBFwe11m3XMV4TYTiYW5uA31ZkHnp5EdgJoaygr5C8VoyRc6gvmvqP9JK1rmo6CSpmAT5CYnH9KF2dHtT8yejdfC5etB5Za4GkLZHMb", + "finger_print": "d9ac56ed", + "chaincode": + "3d3f8347b342658b224bb3e73a59385f59ebb250cd6b0af6144ab821bc457aa5", + "index": 3 + }, + { + "public": + "xpub6JURSEdXZpTgD61YVDNTLjtGB4kbaViUsbRREDvnZVXQ288wF3zaUTwgR1YTZrcfWjzjNEjKhwJSVisVEZejgbiVZuGMEg49G22djvpexi3", + "private": + "xprv3TwECBVHn57uvLwrCFvVzPogyKFSaJU2c3pW5n57TtbnaGwpZCWpby1Fwhn2DUis4MmhNjMjQkbKqgMGsKaVh8qfwS51NEnVwxAqQF2Qt8hWS7WNS1UckSvRX1EosguoVPphEouHBWeU5EMngMoviwK", + "finger_print": "a016471d", + "chaincode": + "38b904b3797f2491fb48bbb0145bccfdd579f0a58a57a00d18118366c7ff9ac0", + "index": 4 + } + ] + }, + { + "public": + "xpub68VqfyFB66PzG6PZZv9ue6vN3cCL3HtyqCVKFyCDdXjtBao8M4teSRKCAdZJXtCVEbW3YdpLn1dgSW7LhgsbB9fmEiBCCF2is9Es2PYct3h", + "private": + "xprv3QyMTP99GMEhd86wQnC33yosqE94pkGpvKTzQf5GtxhWHmdu7JQvpgYrktwJF1xMuAeKwd2QJbj7rjbAVGiFdPxhDXhL2n1yY5RHWCwgJ5nayGJivSg8KgWKZp5tRj6SmdSBDiYJki13M47Ce6cqSr2", + "finger_print": "52e6f9d8", + "chaincode": + "ae5e73814ee8157d86af927fd4cf2b2f756f6b175d2bca9813971e3409a293c6", + "index": 2147483650, + "child": [ + { + "public": + "xpub6AKbuQzvGVRJRdfLDAm7QxyTDtNJoe67eY68usLuaESyKWFL8aWRutnrA8o5sF8WpuiSy964qQJNfr1QeqD7SMnG57dqacjjxn3raEG8tNr", + "private": + "xprv3RWmhjdRNHf4yxYpdZGVb8zqEncnfryXmZYVVYszVqCKYHW3vFRpw86zc9XM3Mm9VZf9iB6mL4Dx2EEX5JMSnvsBDDAQ7WN9PvikKNrZZB2hVrahh4TEgaVMpXgGsZ7wxSFHGXFLUCknxCUvdx6Am9x", + "finger_print": "4afd8fe9", + "chaincode": + "c106b820be14320c3b16b376cb6e8ab2c0f84969ea74a06fe9e43f6c8d767282", + "index": 0 + }, + { + "public": + "xpub6DK1PtuQwf4JpTX8T7erNw85pqNYa4N3DJanggYoWkpA29yJXmc6zLKsknAZVvj2wAnYiNnRJs6g7syHi9mgWDmUQUJ8BkxAcN8t7Ttzztp", + "private": + "xprv3SQHQGkUdvBALQfWW3kA2fjkYAyDshgoW4DnCC8Dw5ZNcCY3otjNZxGPYRMG3sNAUgFebs6KwPgTMDGi8J4jC6aDrUF5vUH75FhnmQgsD5neV68yvWeGfEqKk6CjNAhv1Wm9Y7xbUp33tiUEVp8zacE", + "finger_print": "e1bf7f0a", + "chaincode": + "e4950aaaf58fa716fc8691bf4a4fc0856c753e08459581b223d278cfa62dd2ec", + "index": 1 + }, + { + "public": + "xpub6Dys2k1cRMkGmovb8wkjRu1ixXqLF5jY6D4DduezBJ8v4XEEKPxmGZebCU7urKPgmToc7UHzRU57YUcJ7E93uc68Fv8MvBFnKXy8URkLjmS", + "private": + "xprv3SbpsWCzapX6uZBdeuiQoYK3trdiFbVuYSnjFQHu17tme7yiqS65UN4uYpjjEEeVbUckpsETsJNt1GbG9DsZ8ipWKybfoW9M1MtU3ALUXgfFTj9nhznmCjPhcHKGaF6x9pA71YortWUPSGR3jeEwAoF", + "finger_print": "3ce4712c", + "chaincode": + "2d49c2636ab0f32335376535da715e78f47f8cc8f0b2c4af3333212cde6a8479", + "index": 2 + }, + { + "public": + "xpub6FStS2nUXnvFVQHZ42XTXd53y9mmwtk4YmCKfuGVBcHMSWanb2johYo48mcqZC41UftSe47pKvt5gxbQ6S9B8KqoyFDbj3j9eDqNhYkmh6K", + "private": + "xprv3T35oaHqiBM57xqzw9yGueApPb9HZzgi6XBAWqNCpWd6j1qLCisnQDFWx8ryof3oUTMQxSsvouDtSAxZvKBAhvE5VEq3TVC5nimoiGoqR9V6zgBGwdxqUUAK1wsnYiTJr3L4efMqfCkHxD5PSb48tLm", + "finger_print": "04558fa0", + "chaincode": + "9f8b081139ef8117b5466fff14d2f1b4629022fe632ce6c0680e8931ad41bfe1", + "index": 3 + }, + { + "public": + "xpub6Jw8AbEFPJebPzvD9AdMboMzrkVFHiQ1tDetTny8iC8NWxHNNjFpfAZSRoffkH1Vwkwq7EaVCsi5RezD49XfpS8CBAHfNkCHgWBakLGg29K", + "private": + "xprv3U5AGBZEGibXgvyhNPYUBvawn7S4LV9dkMqw2d17THLwStKcYxtFbwgQFaE78af5KhriDUjoD6tBDVZiEpA6CPcvr45jHMXViii9Ljtz9H6CpnWwQivyXV4xj2BmR1GPbLau9mJiVPTZ3BbcoppS4px", + "finger_print": "deb902ab", + "chaincode": + "27b91ac8eb2d5ce7b9f9373872df3512efd4a5ef9f242369700a927190c7d78a", + "index": 4 + } + ] + }, + { + "public": + "xpub68VqfyFB66PzH8wQLp2C5Ha65pPYznGykue42cDxfZ4FpVj8qn9W5FCPCV7FtjWqBgy3VTstvDoQ3NsJ4BfiZRt4QWHaLjcNBPZcXLzVoz7", + "private": + "xprv3QyMTP99GMEhdS6B2CB8FsebBKx4gujfHuRnxD6FyGeWyyctuM1HWvYsa4Ga2vWUzsaee7R6bRPcERdLULsHYrxGH5yqZdinasDCM8Gua14PHqmFPu6kVwBfmitwYS3FsZG7fvYrK9UNe8ZZpfdypq2", + "finger_print": "52e6f9d8", + "chaincode": + "17398b81ba321ad04516de2a069c6b34c54967afe15c672e66c356aba9d2c3f2", + "index": 2147483651, + "child": [ + { + "public": + "xpub69o9gz7mdoTy9yWq59HnYS7gWK5FKUU5ZMhgWXzSVs7q2jYcxZBpfsAnUeCEDBT33hAKKMaifN5cCKtbWr5KExdjWWnWKVCtSWCjMiUBJEL", + "private": + "xprv3RMj2a8PUVAdSHAHqEYuPKEgkcBVBcy4mUYRtFnrLPtxmofgi4ZhKXfysyFMrHwEuL2RKwHGPJikW4b4YgJbY6Eh61QBauKH6RsU9A87Th2qne1Sd4TvKxn6u1pr4GVrN7SarCeemiGAWDEqQURaiRb", + "finger_print": "038f1d75", + "chaincode": + "5b4717d4e23c95a0995619bbf83df65a7e42ac571b0a8d7a19f5b5c6f6dfd846", + "index": 0 + }, + { + "public": + "xpub6CxPukEzLpMRXfcnBnPrUwrUpMs85M5jamQ2FSA8SWpqWzMskuhRi3ELPwkhNNRP897fRs4MuRjtqLWFMwPenyEwA9JTnnTVrb1116RaqoH", + "private": + "xprv3SJAGYFTYWrEgT3V8uSHXLjU7CdEnyQy66x34HrzAe9tq4LrWMhqrCpZkdLc4Y4wRuaxJhkxJHKjttzVfwJ66yMgD62egoLQawvhMXVAuKDPJS8PEEbYveVLqqPTaFeWGnVQMDXe8xQUxHf4JkJn3mW", + "finger_print": "b166130f", + "chaincode": + "99590fb72894860a44a67c8dc31a3b1aa729e0f7efabbbd0b7841d7a664b1a67", + "index": 1 + }, + { + "public": + "xpub6Dmag1cHS8wgz6qdxcqdQ3X5LVXdC7Zz9UPoAGagf91HtcKezDfXfoRC2AbovqjUTmVYtspt6yVfx71dd1fFi5c9NZHx8yKPehNQwmZmUPb", + "private": + "xprv3SYBFsWCYGZ5TvbBy9LPzkDVLgFcGUYhWvDYFSL8uWU4R9h6w2iitXLZnkH8EaWaLE1s7CRx5cW2SqpFUgJMtu93Wbfv5cNh5fSaGWEuveLMX3qc3Bi8MhNUc2JLymNZr4YVJtaSux5z5YHdTSEoNwr", + "finger_print": "20151214", + "chaincode": + "a38bdbe2cc4bd2d77a7ef35fb9b6ddc7c5ec711c519f461266fa84f942b63212", + "index": 2 + }, + { + "public": + "xpub6G9WyV8pHxj2oaDqi4dqQAvqJXDTafzmJs1Qw9bisxSWXcaH9ijuRGnGH9sJ547vT5wy1yNFY4fVUw5pbUUTvqzTinmAn2JLPfWCfuihDEq", + "private": + "xprv3TF9qrTsKVD77s5RSWNxwVVbwovie1vc6ef1kS2Qx8TJFhviZKo6Dc2mR85ogu8VV4guiLGWBEvkF3wNTdJ5Q9jHbRAC6X6bhTZfjorXPsrwYxECtZDztTHitTNzg4RdaG5PdUgDB31gq1JkrwdKPGf", + "finger_print": "63a3f3a4", + "chaincode": + "87fc8d2e1892f34576e8c59df947b7ff134ae352442c897ba4e9bb43bd78358b", + "index": 3 + }, + { + "public": + "xpub6HLnHQmB7AVpDGhBtCbSBdh9LN8Gt566s1HfBr9joNsSckyRBFgTj1rNF2sczV8LhV13iWN94Qg2szpxNSYSpdVDojmVPNLBuWzjEB7YJYK", + "private": + "xprv3TbjEUd2jHZU9J53JaAYSfMF9QVoEMK7F1td94A3SE6xs5A8aRXzYpvpoSnHFZgAHUri5XwhViRi4GcgRSXhpnNenVjdKpY7u74rrXC28xg2egSPbajEWxCGbi1CLahkNacNoh94FT8Ds7o5zVufJRe", + "finger_print": "061d0a91", + "chaincode": + "c11d7f9173fe2cc66fce2bb39e1d5f00f8558dd75dca2f0f2c25f3dd2fa012bb", + "index": 4 + } + ] + }, + { + "public": + "xpub68VqfyFB66PzLCKBHqn4bNBn5qM858sEiU5mqYro4n2FVVfspjAs8cQbBTrqPEWFfw2FwsVgGX2Ae4VJf5v4QoKhYoSRqfrh675JuVXd2ZK", + "private": + "xprv3QyMTP99GMEheLnHFtuAJFm3QaqbmVidTg2oVwY9Y51jTDjVmc998a8Kyvax2aCw3q5kwh2LUGH8fW2ytXcxYkQTvqCZrqHv6E9mbNgek4pfF8Pu2hYjt1GDQymaUa51fpfxSNKwcs32qjDHAYrEJRV", + "finger_print": "52e6f9d8", + "chaincode": + "4a65245834c7e9ba836309ebfdcca229473bd06e639b5ab28368d0625e93de29", + "index": 2147483652, + "child": [ + { + "public": + "xpub69zYPBEP9F325zprvzhHkLS4toCdVuJhgQSrcmcuF7AQNmtcywipHeGTT9EkHAXWxpgmpTUcpFX3pizMbcXQv1GfRyTVxmkZnC9u2swc7o7", + "private": + "xprv3RR7J3fAJiszuXJaSKtYSKxmn3a6VLSZiVDTmv2v36SkKQWnrXV56Mgp7gHdcjmXeVpfNSjdCxe8QBex3QbxojiFRegFPWmSEozptvkD9A6K95hXDADmNAwpZTNR642D7y9YsPnvuBUSficEGHL7u6d", + "finger_print": "1e479477", + "chaincode": + "b4123a1a9626e9a8da6c39b43df58fe7035d8d6b82c10b7dc20b9c976c8ef5b3", + "index": 0 + }, + { + "public": + "xpub6CymWC392Cdt2hqQgrXq3LdAZyuXwetcHk7bdLepUsPqhSeAnPjb5YXhmc6RRpoEFvPMg94Pmmz64GWEdmdntuHNmuTstNDCk2hdTRorDgY", + "private": + "xprv3SJZuujxR5czpEXQirfbrSdoqHpC7rHXXUMyiY4y8nPHdQq9h1S7graNke6SmG1xkUUhM4efWxGy8JnhqhzERokYZ2e9jSgCbSB8oxegZHupFVikqBXxzf4ubpU5z8MyZhvP4wmjQJUFnf5sRKwcU5A", + "finger_print": "b49e25b3", + "chaincode": + "cbc1b4acf7538b5b7ef000c22fc5908b9dad1a93ba0c08424a8b4f598916f643", + "index": 1 + }, + { + "public": + "xpub6F3rdHjcpdCJxYzewL35wEhgvbaZZuY6p3y6Uh1e76T4qxVYmvX2n3pAqUE7iRXkrJm9DXCxgFcYB472mwnF3dD8rmviAL6fhWU3G5AW2s9", + "private": + "xprv3SvEzB6mBDc3mFT87aXjhKDTy33oMwYqYdFsUA2sK33idwXerVZErcZarta6JALoJZiTja15u3PUpJUy9Ewf7dYsyZEnVRZEJxUZSJzFU7WrDqSjAs9MFeonZ2e3VM79eS9cwzkwB9gLPg2mXpEsDVz", + "finger_print": "ce4f559d", + "chaincode": + "89a22b47433584757b9c8e19491b8a3f92d61c87edbe8fa5a4e15a82652c847c", + "index": 2 + }, + { + "public": + "xpub6GPF6Q2rZWj3T2qkQiKoHKTi37ap3fgPYh4zmF5nWMNCgj6rP6Grucdo4xvWvYqBd7SWz2R8Ev5Mq3q853CJvTBQnKFwKJmJ8MXB2d9g1mr", + "private": + "xprv3TKELfgBjByofVRMABKDoKxSfMarbqaLq59B2hFy62MgnvSAdHfWVdFYfx2RdZYoagxaEm2Z9ej2YXx7LUqCWwT4GjDhaJ6Zg6BSUa24i5cArgF92sqiZBBvcRJj1re8vaPVGtENqmPcTzMBPspjUg1", + "finger_print": "83d68c41", + "chaincode": + "c3f758088fb25f6da5a90e38c9f0318bcf4ad1254425da9396599e2beb18fb5e", + "index": 3 + }, + { + "public": + "xpub6HaqtfaEoopULQZAnmvQgyuPNs3JAPZhyPVrvCt4zE7ShXx4267PHLKWey91LPyg6Td49PDyHZbZQHq9GxHx4rT3xYE5S56RfPjfAgASS6V", + "private": + "xprv3TfuX5CNZPQtGkprppvXLvSVmMbvYaUugsKjGWuSNWXi2pbGuAE4S5SXZHPWXvdrJkw8noMJrULJ3yfCd6rdke7BMnGw2nwYmaaJfnWnqMwZuYmGC3hCF9wsLcukfyEVVgV9c2dv8jRZKGBUjwkjBsE", + "finger_print": "271969b2", + "chaincode": + "9e2e9495512b02c5566221c640db51def63132f60bcd530f75efee47504befbb", + "index": 4 + } + ] + } + ] + }, + { + "seed": "5dabffdf4ac286336ab50001925acfb5e50645f8308466c5c8eb495b439847b8", + "public": + "xpub661MyMwAqRbcGwDaoeNciirgutHDM49A1f7GpyvRQyNBkTsQY2seYYwE5r7HhZDPtnNcrS4XSZQPv3vpRgcPjx4Wp2TzR5t33AfG3PPGfsU", + "private": + "xprv3QESAWYc9vDdZyeRAGJLA1DuruPmHDg4rvzFJm77MfnfGDSXSNKcR4AzufB6E8hwx1WEmV3PDbEqsk8KYvZNda7RPSMrzQka6vGGF5Uia41Chn59t5gigsWSDLwAf4CSEHghXjA9yAdmHsdesii75bY", + "finger_print": "00000000", + "chaincode": + "f056b6f83631e6784f4e31a10c3dd6b6cfd57ef964356b74f5a97b18d9a77fd5", + "index": 0, + "child": [ + { + "public": + "xpub68tMYzxkoZ2KZvzS4L5s58Np1ae95UNaHurTG1P9ux6zGY8WvBkYk5WtcoWWPc7o7CVXyPFmUZjqwRMnuzFBJwfVoNRsJTurtqjMAgvUES9", + "private": + "xprv3R63PAhYfKw2Bhwn7ANaUB97o625L8gYRcYSBuHeqb5z8VZkCEYErJfdzvmM6kgSrp1byQiqygihVNPfoodubkMd5vgLz6BNLUpuMk3aR4siFUYAYj6zPMJBnEKxJbNrJdNUi8W1D5hY231tRzjx54C", + "finger_print": "87b75d21", + "chaincode": + "0b4ba4b94b329366880fea9389390209b513ebef2b23fc7d033a876dc0a1c610", + "index": 2147483648, + "child": [ + { + "public": + "xpub6A5dGvZFcmyGcAQcAvFjLBUSihLKnNMLRoxxme4165hvfWb7PYYLKrXFLmLPZkrZ7wkM4ryHFwXR2rr5tnu2gkiatmZHFh2XwtrpSuqnRJj", + "private": + "xprv3RSctvMktFMeUTPyG6S1RasMW8dF2mhzhjNCAUaf5SytMM5V11Z4UnyZa65vahkc1X7HComsKgag48cxtRbVK3a9pYjC9phAxkfvz2FmnP3ADuzp7DedXR4K5fgWnMEUnDsJvpsaF1Ei9v9tc6cV9XK", + "finger_print": "2a34bcc9", + "chaincode": + "217733df46d7f7b325cb75a82ae2b37220104dc8febcf551b72b465cbe827f04", + "index": 0 + }, + { + "public": + "xpub6BjC2acbYdWkPzqsn8anLNkKdVDtBKZy4wR2MKFp3ZcW9VXzq9ZdfzdczhMHeGbREL4sn85AXoKAg8Bi5tNCWEvRScaJtpFay5WK53dYNDf", + "private": + "xprv3Rw1SKt7HeCV4JAhNz3SCNUy5B66ySPxiaTooLiMQHtWNXzarJtdqj2ikqKCwENSsCmMpY7yg8MkxL1GGSPTQiw6ucFmptMrddH3iVhF3NBf1bBHxSQgUpMK8Pgi6EDGnx5MJy7cDhJ8MNomU2UzETp", + "finger_print": "0a5f765e", + "chaincode": + "d91567968cc944029c605eba26c289d83ea5ae6641956631c40b44d6af3d6c95", + "index": 1 + }, + { + "public": + "xpub6ExFhiTfBQnAAbGRtRmPxujFn8pVKZCAHZyy6uv3akJqTAWREBdV4VnTuEaj8HjzrPGAmMang1rrpUPhMi5MftG9ag14surukVrkUZ5Pk62", + "private": + "xprv3StaTsRaHfhLAX328pPYHhn4VWASdy5ZWZw21R1LAxrHw9r4VuYN4yGcaQ3s1gobKWymd3YX995SyTaQfUFjtWrTGohJWaoASY8pcqiZUyfmCWw3f78YXMmuAP5oDxkqjEzHuzsF4oQSgfVKyrTb1PD", + "finger_print": "c12b3f2a", + "chaincode": + "69d1a8ce97ed7c8a011b6156e4d15dfd3cdbef3ff14c8b87439a6c5298d971c1", + "index": 2 + }, + { + "public": + "xpub6GBCGTDzytwvQFsF4jq1ybFpCCvgv9zzNLABR2NMmZB4KFmaRMgi6R71tyTJqoXpvYFEbTJSoJhPnjvsead3YqpPihzLLzV9aYjY6YHJB2C", + "private": + "xprv3TFekAXHTSdGNa5yguURDiF1uvjayedsnnT59fxJbwqKtnDvRLcFggqWtAeV66bAzJQZLf1UeassryF4i2ZVfBu33LVSz4qET2bf6oAuGsKi69aSy116smpvt3wUy3CVqAAKDYUokB6QSupY6yGuBh2", + "finger_print": "67934460", + "chaincode": + "16b20e1f03c039111d04aa24e31e0d6a56baa9ef44948751092b059e2ce695f0", + "index": 3 + }, + { + "public": + "xpub6JwUjTusSPJTeaco9qD7qJXNpRjTDqAKHbqCEPR4QdnR1PzXSUP2yWP6LvJarU5WgB5TMxfXdWBYqpmQRAzdXc2EVghGQyQ5ekeWM3R9q5n", + "private": + "xprv3U5GNYJ2ZScqnVWxQ4TT5yWgzPxSfKDyqFS6c8o6BegVR5mcStLgXYfsq5BRWk3sYGEjV72Khb531dE7pPL1rKYQAborzrXq5wssdUcUFyYCEWGoJKF9GFUR8Y4MzcUcdSnyrAfXLXJoWeAuJxwysxf", + "finger_print": "df8df2b5", + "chaincode": + "2de488a9cd7a824a8400b94415dd9701da69a43df4a153c2eafe937aa40b7654", + "index": 4 + } + ] + }, + { + "public": + "xpub68tMYzxkoZ2KddhRkqriqwRwZfeqX1U2FU5BQNgpwYQYfz5XnW9DsVUQDj87zACUay3wHCD5JruBr5d6aj8Zkp7qj8Eqd9o2kLkFJQ4JsYj", + "private": + "xprv3R63PAhYfKw2Coj6DGW25gjmgxCFqpFBJHokTUR36Fyjtw4iBRTpTiXucGmFhxdMXUzD2e5fuHVNPZVTirMDr6ybK72n4M6tp3TKx9u4APxxPuMEHKjVPQLdMe9N3F826HhpF6cP8mBjbipvj4X34uk", + "finger_print": "87b75d21", + "chaincode": + "7f1d4e6bcadaf7a87e3ec12171a63fcd0866143a4ce80cb97f3090442133dc9c", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BL4nx5pFCACHwnyf6SKoXFArLavy4WEkBfWZzZEoZ21E7SoCL3J3hVvTaZvuBGgFapXnmPMZhuSwt69q4PQDv2rBxKkN9ehNpguwqqRhuD", + "private": + "xprv3Rp91PJa72D4CrfN3YjKmjJdJkAzWsazEiHS5FChWmUrG7Yx94fco69F2M2corEhYrTnbe6geVvvWypAoKXJinP91R1qX5mm78jXmUB84QXqLReMzo9Khp3qrAKM68msUD83MyvHv5nwpjF5g6e2wGm", + "finger_print": "d4210699", + "chaincode": + "94d1796cb5c01d2a603ac773df6b79608d04737f94bedf35e949dff9ec9a9080", + "index": 0 + }, + { + "public": + "xpub6DCnCogCNNbJNxFo4diMmbE4VWAYuD3LZKq4FmHmbToimvZZ6mE13urNvksPR3JBkiYH8xdNebZxGqH7ZJBfRutgL6nUXgedFycXM2CS345", + "private": + "xprv3SNS76L855ZLXxkGXxxfW56MJSaS2spvVRA1UkXR9J1fJfB4WqvFbFcGDnYi5Rbg7LMrGcZyMEckHVuZP2UejvFsW4Jaod667qWkrapj6mPQmkeYrrrBY7i9kLjKhL7eYE5gX9ygZsJ9JYfKeZdxNQD", + "finger_print": "d323e9f0", + "chaincode": + "ac8d1441f330f8091362e1ca0c7e22cb244d0f8945a48141360b79b6efa76669", + "index": 1 + }, + { + "public": + "xpub6Dwp9xRutNurW6zWd7iL8YShg9ghTVt72zueFVskYv4z5q2ixrvWJJa1fwiT2xfBCzhPJ3esCWd12Q472rU7byB77a2NM1Xe7rAi6C4FCAs", + "private": + "xprv3SbDZKp5cQNHRumKbH4PgxeyXyvs5gBrCvBXpXQCgW2Ur4Y7dvWbMXGfJdHVrdXGykUez5UpAGyiRh5duKByGcFpyP1xWErCV9Nex4Wae1ugV3RsoRcjJBsijY8CvdkF3F2HhBHtGVhjLH2cvStsCFo", + "finger_print": "3815aaba", + "chaincode": + "038f6e061310388de62d1eaebd3dea64fed5bc821b0a72a8ec25614d08b6f0d7", + "index": 2 + }, + { + "public": + "xpub6FwnQNHwWZzf8zEasJJi2kcfEp2u2TuHuCtNrbL9XbW1pKVEvcaZ7haZ4ab8yyBrDgVM31adgUnyV5uvziz6FLfr4dsmwFQqMs39LSpbm36", + "private": + "xprv3TBfftUVZKKPYNViiLKZFwga7mtdyvRf1VamLzUC3dA92KaWkEncvnV6iBpnXeEV2CaThCmmyiEYeLPjj5VZgcsN987wRPuPJZDT4SYEw8crdymuvmSV6JFqaW7DFBQqMHR5L9Gp86CpspA1VRdNes8", + "finger_print": "481dae1e", + "chaincode": + "241ebc0c0b8cb514242355948cd1a27daa6744fc884ab7346e38c81f77b0a297", + "index": 3 + }, + { + "public": + "xpub6JJfmymtqM3FTNLbNR5x6VprdVpXUnpFDSLpDZ2icxhKyfUJVWHTedkfZJCcqKXnLpnyeGwtyU1YTtzB8YSn8RHRUQ5RdeptMdDZGUwUjR7", + "private": + "xprv3TtLA6Ptew7wXvgD9fQzpECdYqYspdL1u8hqdzyrMoP37wGX28GESgFf8W9NLtJU9k7rRZmmsy4gK6G6jMihs4TmJmSF46gWEVrHsnPpNyhEvJCdbNDbR4uHRf4avkTrwLArRWKJjDpAXo55afAwyv2", + "finger_print": "8935bcf3", + "chaincode": + "8a2c2691bebb77d6d400d5409c2652bd5786be2b1cbf446c319a4ae64207e4b5", + "index": 4 + } + ] + }, + { + "public": + "xpub68tMYzxkoZ2Kg4M2Zz6kFG4BYnokZjt4hSJGL3XeEi2cNRvau7vGDXdUU4YatPoPPDVVGPFfvd6xxDuzY1iZTD71ytETLmryaxpPZ9e7Fd2", + "private": + "xprv3R63PAhYfKw2DXWQPgiJyC1J4J2GWB4AK7HiBe8bwVzTzbcPau2y7fA6ZwdKd7kY6HxYoEPB2TtHwZnJsTmFPi452FHGY8Jn2evQKMeCAFe6kbQg9M25gqQQkTgBEEm76aEvZA6ekzMAZ8iJ4PzqC3V", + "finger_print": "87b75d21", + "chaincode": + "72aeb533309d34651aae6b431d18dbfc3f3546be79342b6ef967c83434cba469", + "index": 2147483650, + "child": [ + { + "public": + "xpub6AN6NDGgpRKHD61VSqc6ZvCTL8vtQJ1V1JjPsdTkzMdxyCQaYmFmNNEQMRvQmGK8QYo5W8ma8su5vvnxFByQUTbDqJ1Ln2jFTo4pjZ6R3uU", + "private": + "xprv3RXWckxGjAsU1X7X26obvWJAxfkf4H2CHVTtMVX1d7kyThQUS5nVV379JzSCVvFHUb3BcM7dqDKAyUCNoorQvC5sKP6JnzWgzk4z3rNuiMrpYkZq5vdSkopivAWKgnBAUMiSFBzKxc6tzaxr1TbKWch", + "finger_print": "50d53ed8", + "chaincode": + "0d7e250efdafaef60146cdf2de8f177f72ccba7695d602aac1188d5dba8fe73c", + "index": 0 + }, + { + "public": + "xpub6CZwhbMR9XAm3A8xFDWXepYk5hEusm8Xcin6xEVXJw7fTBdTCY9Nt6oCfJTNVQhAmssvxb3cHk5EwjdR27q8TySqYtEyADQKUHiGk2Y2oj9", + "private": + "xprv3SBVRzTwjTgjzBbvdkgq9Q58gc1DQv4Mn8tRySRoFww8Bmgq8fPU6oe4mx2s8vDKsS9R1sSA2NoTLKuPZtMeZ8zLfSzEPVVonLDz8q3EgNnmZLpnJvfv6TjQo4Dw9rjx8F5mToChVqwTMRGyZEE9Jft", + "finger_print": "7cbbafd0", + "chaincode": + "c26a6db11277251f9c36ceb79da90e8ea70c82dd364d6a4b72179e28a3dd25f5", + "index": 1 + }, + { + "public": + "xpub6EsNN8nyGT3Lu6R5yDqjmxGbSNTFo3ZgzAGXPuccxgyVGq7p9LiiVRjoWH7jtxQ7R2AFGy4WByGViD68uuXwTvnp7JXTYQcp3BU2cmRkhmX", + "private": + "xprv3Ss8J5Rbk3f7a4MqRzAdGBNSsfZxGbsiG2PhLmf6a6npBmTtyibMhyJMXKbnc3MJ2rLjPSMvNrvd449n3JGY9Qd4AWU6RVM2Db9WEaKXCJuj1stzsv5CHgT5yHv5X8ttHvqBL7XKEDdBjSHGvvK87W7", + "finger_print": "b5b5b82a", + "chaincode": + "82bd2bc51dd41963b998b4496cef072276dbe06e46c3f08ffaaa2ab6abed5cc0", + "index": 2 + }, + { + "public": + "xpub6FTnawtmWFYhxoB97igRhX62iQsRjFsziv51LCeNqfigsccAMHpXdixj172MigvZnwedkubFm2tagMHJSghHetDhdaiTtSeBACZebm6CiKk", + "private": + "xprv3T3MJANghA7Xqdvm49vQssVxUeTUCBWAQyBrriCX9CkbEDZZ6KuXchFiU3Tn6Eg3zYgZpmmom66mvYDjfkaYkRAocQZCy238sRFfFXmg8KoupXEwkWGts88e1vD7LrKU8Y1Ccopk8j7qsB732rb2WY2", + "finger_print": "06718873", + "chaincode": + "9897b617ce23e5e348cde23ab2784c649f70533a5c28d4e10150d7c4d769b1e3", + "index": 3 + }, + { + "public": + "xpub6KAthSxXxZSY2dwkwja2WwJ7j9VtRwpuFtzneyPoEm529o262Q1t8tyheAD7eMzreZMTeWBPViS1AH9iqNem9RnHJfhK2kC7XYSAi6L5a1L", + "private": + "xprv3U9FUZyJa74YN6yrmZV6N3Yg2ghXR9j7apyJVGni3txDTBFDo7PoivZY6xvp2M5XbFcc8KiNDBEhn2kmNch2aL1SPs2oJPTvq3uoF8VwwUedPnLWzcv8c6FDvPKSvm3MKVxbuBzxTJNPQqRhPAw75sq", + "finger_print": "ff049684", + "chaincode": + "7a1429e1b375bd609bc94b5ca3016b8f24276d9bf25b215544c56a63ad7cb35f", + "index": 4 + } + ] + }, + { + "public": + "xpub68tMYzxkoZ2KiMqyqSJu3DpUuNAhc2YXwjAxZhjzYPxMTkk9DZcTjM2Pi2AYWTAveDgTXetpLL9FUrBvuXerH3FVX4dxa8kq3FXmz4wTwgd", + "private": + "xprv3R63PAhYfKw2EDAYN4kqVnMYTFWaExajjACMTvJ7oTeb1t1Xg8yZYf5Er3RrxZN6hdERDoUqSssQBhdyyyXSLwwzeT4YFG2QDf8Z4DNdpZH6C2cguvjeRxNu56GBxkfsvgHZeCZBeJc5xc7apbBS3Lw", + "finger_print": "87b75d21", + "chaincode": + "59deb65ff1ff9d7215f388512b9608ecb1db7d8f786a39fd82b2d6ff1d4aa32e", + "index": 2147483651, + "child": [ + { + "public": + "xpub6BA3JNJ7AUNihdvvjcVuTkjnHP5vfFuapsW2m9BxKRGfHjcTGVLfe7PEoACd9fCNfQgUCfcdF93TPt6bNQorKhEXasSrk5yZK7RmT81gdyJ", + "private": + "xprv3RmAGVpDMWziVR48fvuKrcdu6dsLaVHjYLxSqtuGa3ZrEuwfYUowKzFVGBujboU8PPPyD3zSkUA3CWBSVxRmjZBZxkSXkAiR9xXMP3RX5hXw1zae8RiWZRkLg6uQi6KZfs2bqcj7jqxxqvPgrpr7Nqt", + "finger_print": "bc9c8eaf", + "chaincode": + "c73ab7f8a9465c3f68459bbb5e5701b4e38c814c2a052798be49c8704978e944", + "index": 0 + }, + { + "public": + "xpub6D1kJS7R7XSvuJSthrgwiomrSNRsYMonM86PPFyUvsJ1XzFZWF2yDtfEczBtqkzWeehMoKtnZ6kHn45tYyxhW5EXYaXoSHk8PhXb5RijWFy", + "private": + "xprv3SKA1pbGBYqcjgzaZsFCna3CHXya5XyKKr1ZWnzazcoKBttDC97hpKqNLTyEoLZkTB484YYSrhD4Wb416xJzCT9KjswPfHQzpbm4msD8jPFgjyc9QNZp9z5PvuaR5JG4EXn77Nxt1Yn5t6r3XA2DJhN", + "finger_print": "b942b293", + "chaincode": + "7109e4138c85f03332a4b899a037a65c5081a70f21cfc88a5d22b1abd411a9d7", + "index": 1 + }, + { + "public": + "xpub6DbUCMRdo8U82rkKSinsESQ8Udx7KJf9fVSiNbsMuryVCF4qzwqDvYQwuRUuqtnTAmdK7tzTABvdU8zhezVuSRbuWdGbin4EpEWoFULJJXm", + "private": + "xprv3SVB37Ma9spgWf5kG6aocEAa1kD9H2d1KuKuxEfa33zpyXiAMSCjLpos3xLSjGv1gw7Bh3w4qL6CSb9jsfhzZb6aJEDFiTxcp8sn3LJCgfJq8DEDPpSm1pbN1DJKWNQKWmuxXUcqXdzAVAPoQU71qZK", + "finger_print": "085cfff5", + "chaincode": + "71381ebfc4ab2210ec86891a16562f02b8eeb43443c8c579fe60125ad0eeef42", + "index": 2 + }, + { + "public": + "xpub6Gq7JmuJMB6kQ1V4sDDoXSyLxbaejHPBnSxecSXfojAd2t6UyJc57M6sfhYqzJimntviJhoGwgNHUCuTExogizThrEHuta7eri75qgX6GSv", + "private": + "xprv3TSuzk2jWJdk5JZfN44CrvTjDUEEEPLpkQVCCcuH8gEibaWshCm1DDymkB8fKBNZwgGvEqpSJiH1BPttToDTPiw7jx8nVSrqrxW1vZd9AGn1TPsJFHMDR73VTCdhtqNqGAoubTuFcHPQUNJrn5k7vGH", + "finger_print": "c082f66d", + "chaincode": + "98433ef50151d86961808512dcfba4b9c9444fb8c28e4fc608b7639cdca6303b", + "index": 3 + }, + { + "public": + "xpub6JJPbhYaUn5yDarx9aZ8wJ8LWDgGMzVGTipgnE9tsBjT62uq8kxXkhTv4mkvCPtE6yCNZFxHW18Py2tvFZBv99h3YfwQ6VHkUvqRAVFraYM", + "private": + "xprv3TtFMNDAW4MycgmVvsp32vHvA12B5fGaqEjv3QTgdL4gQHpREUcCYTb5u8mtKN95tG2NTv9Zr9ybYJX2PW9LyxBXBwgv9FgWEDB8GNEdoDKM1efUY4cENEb2e6gF2RePTqkZmFn85wMU78HtpZ4hsrn", + "finger_print": "888e3f5e", + "chaincode": + "163d6ca7659b273cfa090343b8a065017af79ca4a34872c7509e383c65081296", + "index": 4 + } + ] + }, + { + "public": + "xpub68tMYzxkoZ2KkxVGra3uRSUTcZKVTTDKej1eYy3mNfGAS6XLomnqN4m6CnHihMPR6sHed8XropKUGsNgQPeiSjKs2q8YKzWY1BiorbDZqYD", + "private": + "xprv3R63PAhYfKw2Eyv4RcqXTJRpP6vZkGzuh7sp9TXTSduF3UbErrnUpS99BdDjW98DQX4M4jmJWdXM28pkAPGZKKXAqhwjJe1RZe2qPucSgrnUVvGsUzjDqFTDvUXXic7HdzUVWRSyfjss5jd6b3UGTEx", + "finger_print": "87b75d21", + "chaincode": + "5ebf0e02ff0782d1ceb97fb97540c3b50810cf6bcefd792ad09fbd02b48bae5d", + "index": 2147483652, + "child": [ + { + "public": + "xpub6BCWE2K5tbhCdNHuB2FnPmpkG382sLCztcrNm6PRPF7b4E5xSWfsKx1NmKV5Pmbq5FSHid84JdKGbK2NPnGhfBAuzPJn5MeDWxXCYVzGGma", + "private": + "xprv3Rmtj3FeNHxsbU7REhfzAWQ6fKLrDNwn75QdNKSewwAetd92wWPK7sxgETmtS4eWYfUS3JqLYf5sMGwQQL5F4bAt2h64dmwwdAPh5pRFGEXkSC2R1AGEVEMQ8jvRPCX1r8CAdv1EwF23MRAkXEzGbut", + "finger_print": "c26453fc", + "chaincode": + "0a21c65258eeab9ca0fb8618a16ecee97995c420e580bef4edeb18154e04d7c2", + "index": 0 + }, + { + "public": + "xpub6CgyrQHEnczf7eAkNTej84AatZTvj85YG9D4wH5AJVi1eLHpBHHjUWFWiRyd5iegBW7rg8ets5zLcMwMykCW9WtRR9aDT3S79xiBZCZcLmY", + "private": + "xprv3SDagHUF6vHcygHPMjGCLHRbUgsNQJ5t2BBWgLJ5NX24fN32TjsB4bBVUrTwCCDUXxAYm3pBkU8jD2THNLQAq7Vpts3Fj63pwAzEKyBWdCcFDxBPU9fBKgA2jdwuohZwK85KN51ZJTWCZeS2pZzjDEH", + "finger_print": "8d3d79a1", + "chaincode": + "0022765fe7f44e3ab3c4f38de1d8de913d66d7be48dd5aa15bf2a9d462e6cc0f", + "index": 1 + }, + { + "public": + "xpub6Et1fGXaPqfmkAs9eweX8ndVjTZ3LdM7GGQVEhLAxFQcsfzJHAw59BpntfienvQsPWuAsva7MV4wfLUqazXiAs4shHs7kxKDPEkbNLmAVDv", + "private": + "xprv3SsKNfLxhoLX7oU351efuffbEnJdaBgXFJDuNJaYTGUeJo5ZbfSjpvVtTumQNdQjTRthLA7WHjD4DhdqoucqK2py453bR7tVKRCNCqZ4sNBBmMKrPjGWSx17iYQBBCv91NkwhnQkmu5Cg7o7VGas2kr", + "finger_print": "b737db32", + "chaincode": + "3dfa39800ea714b24b4caf44605b7a28b25584bf06d6d87f454fd3a28fc48a19", + "index": 2 + }, + { + "public": + "xpub6GCbwwgyPZV2zb1wphzsmCjBfUSnt2oDqP78uFzgnkQnh8FRYdWezMkpmB2TP3wbWVkvG6CsuqFMViRvULwqQ9dP2JMAUYc7a7w6sQpHmUs", + "private": + "xprv3TG51Vb6iCHB4mU8YxAgDdMTfg3Ad1ieFbkw8eaFv36Mqw1mBHE5ZTAh9iLEDxvzBV2Usy15mV5BLbdENRX57SpAj4A6NqyZhNxT9nnhxB8FZ8erBjq3w7fjgS6PbHeLVFV7Pymd4r2YPyNcSP2Poe8", + "finger_print": "6ae0f296", + "chaincode": + "71471e21fb3650cbf38b07c617644ab83363f9597b62464fe92342400e42dd91", + "index": 3 + }, + { + "public": + "xpub6JPimmrb4dRkUKVbEwHd6dmR2hNA3L7FVDHLPm3JG5EefyhTRX24Aniub9g7MvpJkBRKAmVPB9VWM5JsbuqdSca5htpBqt69S3PwKaYb4uV", + "private": + "xprv3TuqCJf8A1RXhQbLPnfJ4kQTDTKcB6k1KMn1NK3EWD2KtWXREsa12crdtHSYC7Pqc875QBEwPMYae2CE5HGTc8rBFsTEvbzASWCjkcGiYRXTXZE1MGrpYoH47k1AYFfaMT3RA9D6XrxQTh6Cj1aHU77", + "finger_print": "950f44a7", + "chaincode": + "390d758f7f6100f499c6ad3bffd2f8b9e82cbda7857a72ec21c6d0156ff0917b", + "index": 4 + } + ] + } + ] + }, + { + "seed": "daccb27d961ad8cd11ccf4754cbd6a256694673add507834061a86eee1bbd626", + "public": + "xpub661MyMwAqRbcFXZ5o4ruYo61FhvbQD3k2BgywUzszzwj2GyszkqkKJneRhi2ccoWCUWeDL2KHo5MXgFWbdRrmKd4TRFxgUy7JtqSEF2gyFM", + "private": + "xprv3QESAWYc9vDdZZPPANsRZCAcGzKd6YiZJMKLqrbzgfx6iMB2j3GBDg72irGKCVzveECS9BkR3xZ4V55JHBL9XSA4kbS2QTRmfBENpAYgoYqdXsZrbYgNQiDdM4Q7RK1zsrjVey8zPhtajBMbthxJ51Y", + "finger_print": "00000000", + "chaincode": + "62ead201cf220fd81e4c914ce1baef6c216c7cc889117207205bfae792577c6d", + "index": 0, + "child": [ + { + "public": + "xpub689ewHx3ZoeFfERiU8FxopHph7iBSWUqP3bpVLxx3s1KdAV9scMAcj8bxAM4WQzuV16K5nxKhaqk2KZNaX4N5Nky416QmkRjzMR6p4dpHE5", + "private": + "xprv3QsMg5FAU8rHdRTeYCkuXR6avEXB6vCkXfgfYL3LnMr7RYKhxrF98daPEjVGvAtymWHJfqtVF8gxr6xg1oxzKV7Vi6epdXdPft8vizkWccsJpaYfsDh43mG3KTZv71WuzoQ61Chc6zAUt7Zn25PaxUz", + "finger_print": "238dcc2a", + "chaincode": + "67245d39e0526bd72394ac320eac86644e60c044ae43de4e5477f79c0d998941", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BZtKt5x7X3UGtaQiaQNsShueuvZs7z9PQXa1EYsXHexmjWDqaHcHhfwk1LtQm8z8cXBLqSLgyLJi7PVzrySpM4T325yA6o4xvqdPr2tHkR", + "private": + "xprv3RtF7UwPFL7WtQ24C3VY5PW9FKp95V6Ab7B55QmGfzydwmmGWExm7REN9CkChYuUyzqZiuX3VRV5TxFWXkLCPhc1vGZbmCXXJT6eJDLWwSTmXt78HhRiDMWZun2sXf8TPxJjHTzXWL39pMcBpwuXrX9", + "finger_print": "f48bad47", + "chaincode": + "16a72c96e58cf29e97e6f01068fd0037d84c48cbe0f17093011589a224694a0f", + "index": 0 + }, + { + "public": + "xpub6DXNycKiPsiwyRtNjf6mg2i9NsMDLcXrzVAkLhhnmoDA89dsDbiV783PLxLvz5BLuXsC2z1WLUv84q9YrCREQCQmj7yCHtorrJCTjwSezy9", + "private": + "xprv3STxZujJSNZ7m3WJR6zRCVXA6rCcnKS8NojWPEHCrKnFKCSNXtfVrXoNHyxpKbZ7ukDowtGikE9ggkN4npDymDyzJuSeSkfjnTtH86uc9PUu3y1xD8WFAaaeam8zkaHE5c52Ytudi55bUoyjzRwNcxS", + "finger_print": "fec4f3e0", + "chaincode": + "02aedace08c98b2191031ba3ac420645fb8e71350c20a00d908e70fd66d6a762", + "index": 1 + }, + { + "public": + "xpub6ENF98zDjKv9TygXKkYipNFoqZ2CSHdWWXM2VEqz3wo6ma9BSTQAWFcVysvvx21cjX8LzYvKDC2C3vY6PVX3aAkBy92vM98eefUiHbUq85V", + "private": + "xprv3SiUVRXqPxLaFwRk8wXBbRjehJAmUPq7skqXGWMYiH5quspr3s7JLwRYvStVDQchJ7wn16PPCP5NfjenMoFX3qb6jtRTvhLf15Kp7tRywUjQ9DVBTPfpQyiqoYnuJWT8SiNuC1J8Z2YGFdLaDGBtuYA", + "finger_print": "71646360", + "chaincode": + "0f169f4d02871bd32bb90998ffdb97e6a8d2d86c81a7287260e323e9937ab833", + "index": 2 + }, + { + "public": + "xpub6HCN9E2m7o4nQ3gHK4C86VH6kqqNxedjUra4x2cL6bcAFZhCr1TP5HvSseahcxuZH7RKCGVokn6Qsa3wdi3HoX1GKUfSAzk3vqanz8ALMpi", + "private": + "xprv3TZEE12jc398nwoBqfFSNhMda6x8FoAmKvRqgvDsaXb1UoMRp3WgV9jPato4p1eZdBaRYsXKUa2kVNwkfcZN7NX4B18vXhGGpymrK6zomHdrCmBmfs1bEiwVTq9mzjymAeZb61WM6hiAJJf3SMWwZ9t", + "finger_print": "f25f1633", + "chaincode": + "b735ec7aaa0c9ab6fdc6b43cd5138f820e4a104ca25ffb9b5aac8cd892968080", + "index": 3 + }, + { + "public": + "xpub6JB9V7gRX93pan9D43woKoEDZh7DjBXvEXKus73i2fc46W4xJWgjfcYAxsHZUNNg8TNZR23jJ1T9aKJd9qnwcVb92YQfLRqziwgktR75o6r", + "private": + "xprv3Tr6Yyk8DLq9DzQRE7pDX6NYuh7zKTqVLt18C8ngYLxLmrepvGYs2MbzKkWSdmLgWiQ44W2FA8A3Z9aFFyxHi779RDVdtAogSPWsQS3mGFvLseoMKkicNmPe3gn17PyTJXfWrrS16F3tvx4GkixBiw6", + "finger_print": "77909d61", + "chaincode": + "35f3c2045f111f121ef779b645ecb62f585bf6d0e0dbb1d0155368f3478d2436", + "index": 4 + } + ] + }, + { + "public": + "xpub689ewHx3ZoeFhX2ueh4uHhVmw9Srohf5J6mEjzSTjtBxrWVELJyGGk8ueQVnh9Yyh9WTDvRVqPGEGKHRDez7oakgwPaAjvKkcwtnNTLPYJ6", + "private": + "xprv3QsMg5FAU8rHe6rQhsmwQfVcstizJgyYJpKkG4Yc6PAgKN3UFPjQGZHd2Sw3m87o8VyXLp6MJBxe4ciFdBusqHwmsUNYLB4EHW7cZaBsNGuth6JjKv1EaZnA2zBcXctNvy1Rc5K4Ug7Ry23fyXt8Gym", + "finger_print": "238dcc2a", + "chaincode": + "4cc8bc541bb048d8c639b489403687b10e0289bb10684ed8df1dbcd5b6c20d11", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BGcLaUSRmPPakbSW3tF2DJMMLmS71yZwPwvc513NSzmgnoEWokHkjP1sZuEdQDdWLP7D7geAWm1sUgaza9knH2uJgTuERWT1nAf9QqEDZH", + "private": + "xprv3Ro7TdZt2aA71Lu2wVqz6MerXP8G5XF2vBeTF9UwWbxdfxasgn5jj2bUBWezE8BHbsG7EXrQfZvcwsm1BMApqb1FqUxsp76PKEYq8dEm2Dgm6u3NHGnWviZcgd57LLz29SM7kpHZeiToTbtuqf2XMn6", + "finger_print": "cc059fbf", + "chaincode": + "3c62a323cdd9316d30e2ee1c1667a2b5f3e39b25e16400bb64a6e778a92e22d0", + "index": 0 + }, + { + "public": + "xpub6CpLMdCMxAMU84J4UG9pV8E4xeQskhGAofR64X98q1mecPAfqay4gKqNFCpGqdESKq1daAYLSCBGwhx9Qr1EHGAzQmioY7RL3EjSuc1n9cj", + "private": + "xprv3SFmNmtrQ2bVbaKDvrWVBcrcLKC17rpa8MtgmzKfhzP1gkjgTixx69ov2uZLEE68iDuc6bsspucsSC7ByKjxkwD55h9wgfAJPt6KtUbKuiZJDxnGcZfmPmCaZDDEsbvECyi8852WyDQHp7XaKNdNyF9", + "finger_print": "9e7d4519", + "chaincode": + "e4c1679f9b5b1eb543b3af874aebc8b4291a5a529f2ac9f552d0aec6743d56b3", + "index": 1 + }, + { + "public": + "xpub6DgRecSFHRnMftaKaHK39fQMctQ3D4Qo8r8rumZHHrd7Je4yUeVstG8h61rGTA2DGs8EYRQbyP1JpWXLqebZWLbYBKEoomAxjC6ji2vaS26", + "private": + "xprv3SWeRogoYBBPZLWb7AxfyLf7FaFXh2z6L9Xmxg3Uo2j6Q3Gr95c4jsWq9CPN771bNmeVQtQ9qqnHDkMCatgry4BaWjoPA4MH5WMu1ze2xvszmnjv9EvR34K54U1VjExeZp9t1TtZb1KscMkQZXa6CMy", + "finger_print": "13fd2219", + "chaincode": + "37f9a09b80222ecf9b7773a0396799fc6abd607fc8a51a91da8cdcd445438784", + "index": 2 + }, + { + "public": + "xpub6G6XvFnp8aM69PZrBMpXFDno3CGEhNKe1kgfUbMSRmDdYMRHZRyFb5wreEUVFrtkr3vYmERpSEnwiwp9g7jGLYrut8WE5FjBxNpcvAg9Qne", + "private": + "xprv3TEGSB1sabDU4UFbna5Snx4uhvwYzER7AABnS1tdr9ZzWeCiiN3BbK8hXdKANsqrJuT1L5bAGu5buyaNbPE5QxyUTv9PWvDLreP7sYkH3QqQ3M85fn9pfQF46kAvzzvwaPosiCYFCSknxFNon6pb3kt", + "finger_print": "5ca4398b", + "chaincode": + "6341698838ca43a36b2318654a88528b64046e47431ef4a3703e6089ce684a22", + "index": 3 + }, + { + "public": + "xpub6J9sYrwWykiFeivvo659rAahvwwVQKnCK9E6GBNjVX1RwEfkuesz8uhfVbbcT6aCmKcJFfo2Ea8ZuDjw9UdmaF4RtKwd7VKXCh6wwjqbBWm", + "private": + "xprv3Tqib6r1HCcuoiiuwwoEfhMbt2MU9DbRh6VTM4jwNTzd3SNAki3zN7N3TzwPsU3KrUM6sPLkCBtLwpu5yFPoUYkkzE39efcJZyjSiMCncXFNteBZqymz22eDYAQi1iEqf7istGzrKJDZNqHyNbUkE5T", + "finger_print": "7493206b", + "chaincode": + "3327db04cb8f62d1ce3f8193a42f3d0719511c0107cf30d9379ff410b119de35", + "index": 4 + } + ] + }, + { + "public": + "xpub689ewHx3ZoeFmDM3zD88bv8tgLQ67tJ6Zzg8ju9AcmSyyS6hsfqatjm5ooSMaUHKrr17a1wwYcjfP2eMvBcf9mazkrykRfSaXeEUhSbk7Dy", + "private": + "xprv3QsMg5FAU8rHfCWw6XVWdnCYcthZnShiRE3MgqDMF8noyU1ytmSWFpns7swo2tmThZg7AxXTTDmLrLtyqvffGEvZRiDMqAW7Dqrtp9NRQCUc26NBVvZpjBPjzXYHMo3xS7xqLVnWr4bpq6yRZWvMwGw", + "finger_print": "238dcc2a", + "chaincode": + "bfebbbf465c0a5dd6528ec9ff87cbb883459d6118d86eace44438c68a036bee7", + "index": 2147483650, + "child": [ + { + "public": + "xpub6BLAV9qCQ8qhykPdciUnyC3qEnuGtZSr14bXL8mW1RdH68GJJqUyYvjV8LVaDhVkWnXpY4q7xx3gYPyTux81dZUoxnJ1ytpjryt7vqSxCyy", + "private": + "xprv3RpAhUZWMDxy7wrUu7BVdcReFdv4hXknGPv4mTHVJHv66D9PFqGm9pJVjDnrXBZFwk8KY4uBCRzX37uH9crRJKv8Uer7e5mP57D8tRXAZrn4ZZ9thBpVUYHWACw2vqMUAWCESHfGBCmnKs3fFQH6Ysw", + "finger_print": "d45bf838", + "chaincode": + "0ba439877405d543c692b72f7ba66690ec506879d0212ff69bff2e3daac98d1d", + "index": 0 + }, + { + "public": + "xpub6CActWv4L424X4U7YqcgYA4k1geLRxTkibwYokBrbZdws5Cmcrd5Rrwx56CoSvi1dNuP3VkhsVom6RGiwcUEpkZNLmSgiPh2wsq8ddVYcQ6", + "private": + "xprv3S4ZZb8X3Yqhv6Yfo8E1HyQZcjSNGJACh24HBDT2KeW7jQ4hxAW9yKcQJ9GUeiVeysoe4MDk5Bvczgit2yvEWCKjEHuhc6SodnB5xDhp3nrirbbZV2EhZcuZAkPTSe465RUxLpsw1pUe8RAk8kbUR5M", + "finger_print": "46056439", + "chaincode": + "33a9451ea1c73b55263e4ab65f08ce69cc810ee28a2eea706a4afcb11e41aca1", + "index": 1 + }, + { + "public": + "xpub6FEGo9NtSEj6EKxiGLSthgvjMour9KRK1FNkXFSLghT5hMGfFJ9chbPDkfX3x6ioCkrAdYSFW9xANPmHHFUgZJMxFXhwzkXZKZBYDzqJpV8", + "private": + "xprv3SyLTnDny37zYonaypp1SNuHsbo6EbdWSThFsDFKUnjCh8N1DwcamMCejhTMJtSFt2dJjzDmB3jtA3FSQ8vnweJe9Ds22i14Ehh8CS1kjiZyyPdAxBmCWtgQ4u9jeFqMK1KZrrnD2hCbC5W8KNvhCK3", + "finger_print": "e6be96fd", + "chaincode": + "65f6b28afeb11ebf910b6d3d844b2f28a5ba617a6236e6a18d5c08a18ce21fc2", + "index": 2 + }, + { + "public": + "xpub6H32FnqkpN8MvRMgrTwZJLAAFNepVnmJPFkM8pYSu44gPpnPHCs367g1RZzKe9VsfMupam1gfMNhtTvrBAb8Aq7iboARDmr75XzXdPs59vW", + "private": + "xprv3TWTFWV4e3S1eW6Bb4eedecchLj7A2qUkdAGqaVcpqg88HmjJrTx21M1aSEioWLd6D5ewixExn7Vvmwcym3zAKpDxBx4KLRmGeZmfAoeBHzE4ps4dvPse1kduEQ3qy995kDi8Pybxzkzui75XNG5YJE", + "finger_print": "dc74ad8a", + "chaincode": + "1a1f0b8d41045b0ac450d22a8a3b3d3b5376c77e31ed4e78be078a16463151e6", + "index": 3 + }, + { + "public": + "xpub6HQCFZ71vtvGK4eyAjwMSVLFVpf5b1QmoNsqEcDFCdx6EqgBpMVQ66PsUJpF68v5ACjMxwgJFiR2ooa9AAkJfk6bQ5zMbFxvH3y62hjQ9C7", + "private": + "xprv3Tck3PMWffS4xBfUQ51h8yX2RZocTZf2ivPVYWM1c23TLXEP4kwuinR3weAoNWCow7kf9qYTNPgpCPfgHjiFu2ESZ9m5F4f3iGUqBLwmJQ5HjJTb1CZ43TLJzEqYw48JKJi3SyVVWkdsfP3HetehVRT", + "finger_print": "0e1eb271", + "chaincode": + "6398830cca7349142b2f653a9af8b5144549033dcd9e9bda44c1ba979677db85", + "index": 4 + } + ] + }, + { + "public": + "xpub689ewHx3ZoeFo6z2rfqTyKrG87xaq7ArsW8aVR3i9JhZpZPxNg6fc92HWQ7WghwvGxp1YwfiLi9zfb3v6aJi8215XorkYaWxNDdgiXfx8WM", + "private": + "xprv3QsMg5FAU8rHfm5wnB6ChZraKMp8iAUnaSqc81qJNUEP8RefoVUf8fH3PPxKSMHCWCDFMbDF5kqDDM5TxxYbbiNDPS2QyBUiE45tx4Dt8H7dgekoPnQjq9S3JqJMCwsyh3urS8XfEcunonv92J56aNC", + "finger_print": "238dcc2a", + "chaincode": + "7dc9368c0d659640866bb58ec0ee89521cc8d5e1d3094a5cae76b39b22065274", + "index": 2147483651, + "child": [ + { + "public": + "xpub69xNW7ffJRfhzqc3S9zyLCBcGruPgB5oGPZxupqYV7jAGJY8WhZvSZmgShkUbzHWg9kkQYi44iQZB88JvY8jM38pmT6nVt97N3q2ZtMpqGz", + "private": + "xprv3RQTuBJGdeFuMNm4UpvCkABTtGsJSHMYRk2s4vmGGw6oCTU2vrLGE4xx5GtupYoP9DxXZ13ydkaWBsdXbsChki4PSnHB4xxLEpMbzgQfJ1Tw3eQ2p4rngmSCszkXg5Wir3gkVQXGBmQsRaSXQ2HUDCz", + "finger_print": "19304802", + "chaincode": + "3fa583fa934bc7a76a850fdb3c4a65a872c0abddeea694bf9e5ea02ccc7b8dc8", + "index": 0 + }, + { + "public": + "xpub6BxkEd5w1sbCWgAa26GpKDVeyJJC3bCVxcfKHXHxqgqv6aEfgVFHB63hGfgPs33u2QdGhUNPNv9ZFrJtuaFe5k3oKHimXGcCJD7zRtNkqf4", + "private": + "xprv3S12zNKoVMv8dDQrCoiLGmLeF9HsjwDTdun1YbXSQipMiJRYjJjzbQCaWVgN2pSY8t4Pcb3SUCmr9Jf327cftUq8Eg9QQ6H2qYzMHTyUgs7dRCdj7fm4H5XLHg2aAiBTvPPY2KwHEKGQ55JKNVLb4mR", + "finger_print": "2a2b708e", + "chaincode": + "24aa725a2e713743fcc676477166a08713fbba016afe4e176b6abacf85ae6a69", + "index": 1 + }, + { + "public": + "xpub6ExQ36CQ1s5szAFzPBU6ZgCv5K71w9ehrnNBGT66qTqDXuoTLCsMHC3FUe3y5bzFz1EsaqsrZ6G2koh8dj3UkA9V1ixij4xXjeSSc3PBJjK", + "private": + "xprv3StcwTn5KXpq2fvGWMzzezdrxbzTJqE1djGBn6KyjjYokaBamK6JidVMygbqY2VtxFArBGJpEBjwEBsHPRYyk3v6qnQUBXGTgeMr4UfUZzXFREUdzjMTcwzorEZvMNNN2rV268Mo5KL1jn5v6Ds9Bty", + "finger_print": "c1818876", + "chaincode": + "789ed5f6c23b3aab219e00bccdc8a0207b8b0551888ae6d1f1ff0d3eae8e7d2e", + "index": 2 + }, + { + "public": + "xpub6GJ7sZSTR29JNZSWwxY41P7JbDeEDp2Pk3WQeM4L8dmxjvko35FUqRcz9iTDCmu2vaNd6iGXR5ddnTuzC2TT1DLGninCniQLBErfdTLvM8C", + "private": + "xprv3THi3fR4ybDN9SwRjiPHarNr3isC3VGDq7L22UjUkAiVmRPq4MQ791p7N9hVuEq3AqPKm8ZRCD79Pvfnxad2Tu5dUC2RxXCHYMBvjeufava3ctrCtrdcbLNVbagMsoJVseoGiQYADYEfmGMY2NFvtjs", + "finger_print": "77d1468b", + "chaincode": + "d9d7eabed57368649a6a49939f10568e99ba55fe0e3847ddfaa412cd58a30bbd", + "index": 3 + }, + { + "public": + "xpub6Hqmu3mLAsYnW8MxNa7np5e6NsnhrbXD5fiCzTL9RS6eLa9VgzqrC5nzWVnEzDXjaA8VdYMHCjLuxa9Szsu2kZUEQC73NAqSMDjcMBj3LBx", + "private": + "xprv3TkLn25gVYuyGu2wqLtyR6Hz9QHC9m7ioQVKyDzF7CkwFv4h29vFN6tExJS7gjL35PasSvZq6U3mLgat2YB8so4TDEDEvxQrSDCQLFkxzKxz9kMCvtLpKEz3jpRzHt4FXkAXu1AzC6tQpP5vmFAhMsY", + "finger_print": "4a1f961d", + "chaincode": + "6ee29c678371761db465c7a310846f0b4b405c811407671917682025e20def07", + "index": 4 + } + ] + }, + { + "public": + "xpub689ewHx3ZoeFq1gRqsAmowJJAZMEL2ym72t4d5Qm5m6EAYEE6HVzoxCXWkM2TBPmye6x4kBU2z2aLS63obSMRxNf8Z1dRv4CBAvjfE7APUC", + "private": + "xprv3QsMg5FAU8rHgKyCdewJ8i7x8BdCTZwXGkzetreBn3sbJhc1Jzs9mkGsqZNBFMFAGGotLjE3QM59RLf5DDC9QDxCqR82XgokiUkMsM4oEHHm1n8CJExjRMAjRwLyyfMqJgtkB7fanfQmbUKuXhocuMb", + "finger_print": "238dcc2a", + "chaincode": + "3d7c2125f01909c5bb4d859f62526495539fa3bbe9084a119c001ed3446a749f", + "index": 2147483652, + "child": [ + { + "public": + "xpub6BMeyrHNjAhhQ13m1VoirVbXSHfPLZtF9Mxc5WXUex3WoW7GeMHUzw1hGmbrdRzYYDV5gmCSVx5gwY6VQjsiinkZwJpxmyD1mxLmZv3RPQX", + "private": + "xprv3RpcPkFD7yGsQH2QUYdmrdajPhb6gZ8KYjuVMjQYR7jEXZKnTqiqsV7MapSfSjuLua4gdBYmkGpoBQyRVjqFEshXw9cJXE1PRGrDyb66V2jb9TLMdCJrrGNdVp6C5LEhUUafqb2kkd4wGmkLbYy9bpK", + "finger_print": "d7db7da3", + "chaincode": + "e5bf515496630eb8e1a9674e1a6bfbf92cf2ae9a474b54b3a085ef29a7762a10", + "index": 0 + }, + { + "public": + "xpub6BmmEkhjogpBcJmW2sUCkwfC7x8W3U8ed6T9rw5oDo7dewL4LcgT5DcguL4Tz79MbPbXDRvMq3GxYtFCRjjUEGpZXKBeFQkMtHBaNHb27sX", + "private": + "xprv3Rwmm9pxTjSqtGBGPm92N1iF882ThE5x6464X41StSeLw3WfyTrogMDX66RMkXWwYsBD65yi6n3hngTWnNj37FvNMstnN24cxJff5XbCfb5HUTV8s7eMwhfKsShjVV73aUXrkuvQ7ov6vTxFtefNbgC", + "finger_print": "10684d76", + "chaincode": + "8661ac36020aceec235e27e5b0eacfc54806532e4264bb6e84f9c58b9fd36d79", + "index": 1 + }, + { + "public": + "xpub6DpWvA6Zx2fP8n6dS4wHGqohzbHxKhww6kexiYanrhMWz3qJTZeQeeg2KVH7Lppx9T6qhhoUPe9vR1a7F8PykQKasW683QQpXN6UAtw5mUc", + "private": + "xprv3SZ3q75syhq17aLW9nsgqdyF8PydGgtMDVeGgWtEvBS44L1NQvNkFW6zaZh9k9W2GLBkGVX3cxqr5iBUq6MK746uRNbcr5UBbcMik5yVYULUDgrNpJew9vZZHNH2uNsEvK6M2KRNV85b1Kcw5umm2ho", + "finger_print": "26f7af90", + "chaincode": + "3e4c627710a7b29c511d58379022310f95febc95714ad4bfc121c57465b3809f", + "index": 2 + }, + { + "public": + "xpub6G8ZgrdTjVo11CwAuJjaMdduQPCerEHbUu5xec1LP4s1PG4qcuBfMmxSQoTFvX71ueAUaqazwknh6ZtsexST1cD5znVLGJ5CmwkFS8guVyE", + "private": + "xprv3TEsRHXRvPwixmPZFAr9j9rNQLSPQZafByWKzgs9zJvmZERxxzwRVD3iZ7HvfFKdodM3HY1yUS6V37Tf8Fi8YtToVwHjVcGbZqUFGQ2wBW8KMMqypkopg61zZBv4bif7vG1L6Dk8x5TwfYkGY8eUvVU", + "finger_print": "61678ad9", + "chaincode": + "4a7b2a868c2ebee8cba613c710e3dcfab5c038490fd90724a956e969fcb20cb0", + "index": 3 + }, + { + "public": + "xpub6HtEs1C5QWVx1zv52XCscRt4unTv93niubUfAXcUMQxjYGJmU3yQJU83cLt5oGa2AdPSY9y7FpvngFJuoKofsM8t3ynqJ6PnCvVFZkCKm2z", + "private": + "xprv3Tm5FF9i8mpWJNm5YVRBQhoa1pqNbV2D1A9ack6FNqthV9WRDWD4i1X4PfJpNm7wZpNgvtHVpsrorAfQUUxCh8hLsxZD26GcDVqxofyY3eb1SvzEtkeqvvwcQrFMy7AsDy2rEBVPmpvDTyJUaB5yTZX", + "finger_print": "4fe7c487", + "chaincode": + "4251152066e71e37b330e86d7f1e72d5db47257234430b1fabe13c408e1baa6d", + "index": 4 + } + ] + } + ] + }, + { + "seed": "a754f05d00c49fe005a483a49c6f252ffb0baa877dfe27af36cf4f74acf2dbf2", + "public": + "xpub661MyMwAqRbcGkezMSDahPHJB8kU2jMTD9wVc67exgoAL9GCjPonrnnxQTW6tECjhUuQK3NLZHb66NMVP1KJkrcEUSA7LuT2x3GYESEueLD", + "private": + "xprv3QESAWYc9vDdZvWSQq8HR53pZ6NtoSe4TBGTFogyCs9bh6rUQa9bK8dnFrsCpf5CzFz4HUFUFjQHhU1NjQT5odPsffTKivV5qiioPUX5saBHUbWkP79TZdKuBTdWtPohxJEnmiFd21btqG8xypfoi5Z", + "finger_print": "00000000", + "chaincode": + "de0c4b2a20531455cfb8995b934de63832b2f3817bd0dedbd49d7a04db9dd3e0", + "index": 0, + "child": [ + { + "public": + "xpub69YXnebuS79yGZ7w9PDpqmuuYaBcprGHPddQxUWFNVWxBRqoJa1HHGWCnyn6c299p5AAvdLpkSbdMmjVafZzeiU5omVxeko6QtGASiqX9Wo", + "private": + "xprv3RHP9Z7mCMvVyMEJL3z1Lwe38TeMVudTQ2UuR4UndjoZKtH2eUAGqMB6Yr8tgadTSQ2TfX89kRfrFELbpkG1Ss8J2pXQMxQ4ynu7ciq12fKEUqZD8FaGiq7itFzyXdGVhELudLEpSqQczPLuxtGrJiX", + "finger_print": "e1446220", + "chaincode": + "19b8555b152c1c13a77837c563d091385830e353de65dc0c44577a68e04fcff0", + "index": 2147483648, + "child": [ + { + "public": + "xpub6AQhH6jwk9vY3H9pw17YupJWNtMjyFEwxB65UekYHvWSci4asrHcSBZLZ18TSyjAv354dP2Gx7WKBFR65MYbx39Vzj3eJU2T1HTBPH6gBpR", + "private": + "xprv3RYHSuh9EwEGGJn7Mge3rDt5s2TSMd8kmu86eSUqdusYiX92AfRsanqtdf7suGJQq1TGt6e5x49vzYxaLDrUuJV3iL3MkBPt1mBdUdFRpyBbjwSfDLejEfkgKax3HvWhs6hFLJnhPVkYqdFyJzf9AKy", + "finger_print": "56efb4f4", + "chaincode": + "ed366a984ee79ba1a0f6789be4770bcadfef6289acfea8ac085a17308cb2eab0", + "index": 0 + }, + { + "public": + "xpub6CEeMkwLE7SN3UySkegsgMR72Yy9beRAvTEMEgEDPnRpDvqbT158orbEKhC5Ni8xod9sfNifAmd6GMpVJQJrhNR5KWvmR91YQcDSEfkmpv5", + "private": + "xprv3S5kvBJ26AKFnyaUdKauSSAHYWqmn9VAR4Tr6ZnheWtCFpsEvc1FrGh9h6Avwov6vMn3Jy3AW5h27gPM21spHzc3Xd659tsF2bFdxCnTxDE4LaiGHcwJ5wtbpxXMgkCNuBGp1FvsekVWX2dgVQZdkp9", + "finger_print": "4f769ce9", + "chaincode": + "fe8dbba564f0bd05650de6e8322bb71d75d0cb96d38eaf45937f3ec0ae24314f", + "index": 1 + }, + { + "public": + "xpub6Dk1fkf5kvDTtXHYqCnEnh3ryEsgXcT38917xPspwSKLaZAmZaMFiUb4yQfVeahUzPtXJb8X66BEzKvE3P3UYAEGPu5HsjJxh3psnydEdrv", + "private": + "xprv3SXiDuErqhbR4TbCEcrgJGMFAuFUg4PWuA76BNytT3VHJPJBm1ifqidDG99MqGj1bHo6WR3aHXe3pAYfgxsx3k2dt2sQydYKrWSRrqXgPJbeXWY46dRDvyXRnEhcTH3TkBkaCfKTMNSN4b3rD5j5Sat", + "finger_print": "1c66dbdb", + "chaincode": + "3fb638297dd71943b5bda213d1b2c6cc44e4b6e6308d2ed6cc91cb7eb42bc7c9", + "index": 2 + }, + { + "public": + "xpub6GXYhnLj5JUe4hqEbj88gG5jf18VHomoLKpWnECvpJxKGL1mwBD56S4aYa3cruTcT9vi7viVGnRMLZFS2cLN4akHgKSJ3RfAirfUdJAqZbK", + "private": + "xprv3TMhQcguKrUTTVYScz1j9TznnWkxKeAHpH9WLUxNLYLLxkk9ZAjBABtCRJW9YPxoZFEJi89a715gK5xXRK9BXGa4VGuUqxqTEp7Xv1gZkXqY954W4Bi5st5TCtJxYJzN38NyfZhD1A3JvPQER6cs7jE", + "finger_print": "9750e22c", + "chaincode": + "5906b293843d65c4848c98acf62f738d7a6aaef4c743e8e1c47980a6b8ef9570", + "index": 3 + }, + { + "public": + "xpub6HvrFZ47mqHL5y9vU8zVmXtDZpzocuqtufqPywj8utt3fFnBdydujzUkhXzh5BzzMrZabC9Q5x5LTVessgbb1XKf71bKSQA2i3tNgSar6yy", + "private": + "xprv3TmrDcVdEvduVJo6T9juLW2JCiCm2zZG8okkj2Fb1ToMWGzfnyXFnVmvZ1m8SpRGZVaVGdPh1jco7ajoRDoh1wUb139djFsU9RrCPw1SiB8HZ1ygY9qjv4Zm8WTxSkdLucmgZTYjVqpDWEmA35bXRXL", + "finger_print": "56072abc", + "chaincode": + "3100daaca9146091302cf9e5fa893d3eca65d4c88d96c472c8f0a8925bd8a475", + "index": 4 + } + ] + }, + { + "public": + "xpub69YXnebuS79yLRZQsBgMxcUJmC6mjAHDwDLKw98FdXbpPAn1wzrasxb3QuF6b67Sipz2AQfCzPHLvKmtiS1iVMaEmPEM9XnzxzXrBzUitmT", + "private": + "xprv3RHP9Z7mCMvVzVuJFcCYqCChfP1tKVjwtyaCsq2EPPW2TCUTd2591iEbUykfggHMy3TQ4M3dPkNZTY4ejK8f9ZfBUcED9bw82Wm7qo9WmspZnUD7TeKnZkrEreRN4sjRns6dBMABUF9SoCAWdW2TvUY", + "finger_print": "e1446220", + "chaincode": + "9e64ad6dc64025f1cc1dd50bbb99f25c9548ad1a964d4c9373a1d8bc78515814", + "index": 2147483649, + "child": [ + { + "public": + "xpub6Av8gSsEFC4AeQtnk56TFarFdAjeU3hzWfcZHe7AWVgFYymRh9N9XWZM35LGBk2Y9yG7pLPXc5kUJUJU98BbBoYKZHiwgSJCtWme26owD1k", + "private": + "xprv3Rh2emcqtoSfe4taAd5Cj1YJCvAQ6cDeXhBU2NrToaek5X99DRt2B7pv3MqxW3bFfU5GxgHk8pYLXoW9gJk6K6nVEYZSvTdgY8VFLvacWK9JK9koUoLt3FQXTBi6y3TByQ2M45kzV3no5f3c1CzTDwd", + "finger_print": "9bfd3f86", + "chaincode": + "4669d359ff828bdb913f9f913d8acf3dcbd2eb27435685e4b5fc0298f94ef76d", + "index": 0 + }, + { + "public": + "xpub6CBaeGUrrN7T4fySXeAnYjaURN8po4TQqmsxnKoJn5WAeHSY7UD5BjXgtQtyRTLy3LFiCUCoXcsGGT9CGHeK3LUEh1hkkVfv1M4GzLFk7mZ", + "private": + "xprv3S4r8DN94v97SZ8dDH5kW1aVgW5NMXbgxKvLEugVMqjeDippxu3nrj9WFgbVGGEvvSRoDWuaUdDXbRLqAYGusJU54ZdNqhKQqvvaHvSWRK5pc4RuveBG1NK8puZjuicT56CcQPrg9wY6Czwy3zRFrRG", + "finger_print": "4846a46d", + "chaincode": + "0bf68b466c74b49d5e8a55bc101efda0903d77468f93e523193214ddfd4608f3", + "index": 1 + }, + { + "public": + "xpub6Dx9D6mz4hbhXMYcGisKXRWrx2Z8QvQzsGi51wktB4fWP4QTJWE8Q3YL1ePeiReyYVz7y7dSkdgRkJUBG3JfUoqpgTLGSsXxty7bCGYh67V", + "private": + "xprv3SbKDczsXAWo1nd6CVBMgryD38c5KnhyihHaWTF1sSWB8BsMe1WvbZFpGmNFHtjMpegAxpTppT5tpkLnJaw63HUoqnHaJQ5siSuBGdKANnV6zh2xiccxYa4FStQeCdhwxzukFyQ7yYJcBi2NmfbRiPG", + "finger_print": "38daf1ad", + "chaincode": + "9461dc0d99147415b3fab8e71910be473680bd087de5e7666e571bb3a87526d7", + "index": 2 + }, + { + "public": + "xpub6FkWLVLTfYsaE91Nbur7ZbGKEgEU8rfYm9ABP3H8QqRjJTxmTpuhLauUrvSihT5BpP2CFLaS72G2Fag1JSrRMUNVNXxLMek8h7mUzPzkme9", + "private": + "xprv3T8KNaWC6DzCbxYVQ6sJUdL8PWmerynjTrNXFA3ckcauMJ64YfiEkxeZpt8qXw2FHS8D5nTyXeKYE5AdkkTXFQBsXFN2eu9MCbHqGkhptP9u3cao5YxynYDtpJo7HKf6pJyNdMNriFByb3GmCWrF6gu", + "finger_print": "2da9d17a", + "chaincode": + "f26b6136096bf513fd4eca5c5f42b6af4e423b99f64c547ed781de5e764f3c7a", + "index": 3 + }, + { + "public": + "xpub6K3qqtB6tHxgiF7DFGoFsvn9hYeB1fRh3QkGC6eqwrqpF5ZjvPPAb8ZhZ4JHi82DwguPsgCgbuiesM6nRW341WKZKcWXaqvuzX9kjbyqrJJ", + "private": + "xprv3U7A2Akiypi81PaPTTh9s5LxgssHtAfvPPSTM9n3HpxD9civSdrTuNzS8fa1kYAp22BHAHpumuF8DWNrrSmVCLB6w1eiEQgA1iWjLs7NCw2TYTBw2n6KBTS1S5HhCVDErn4zVYC5iTWVSgwLbcbmDkJ", + "finger_print": "ee7b8639", + "chaincode": + "6046ac9c0c7ce4759d2d12b363daecae0193427f596954616d88dc874a95f5fd", + "index": 4 + } + ] + }, + { + "public": + "xpub69YXnebuS79yPLezFEPGKomVqGDoJj3ZvonCkw3pcv2197HAjRVHdjfcr5pp3HXhknwxw6Jt8P9kwMQyghUS3VJFiHV2yyyGFxBnvWnyo4A", + "private": + "xprv3RHP9Z7mCMvW1N8kqxF9ivzyEsFZ1NembxQbZSJeUsG2jPUw2VYjviBheMxvg214ETi6FsPHv3xZHX5QCJjgjYRSQ8Q5HYtTcDcDzevjQE1XR9vo4yF6adXCDu5vh9bB5fmogabnEh5E5GB5rdDprsD", + "finger_print": "e1446220", + "chaincode": + "c339d2e0e656ef249d8e0628344cba893e9252d03e8da2850262fa5cc58946c0", + "index": 2147483650, + "child": [ + { + "public": + "xpub6AdkwHjg3qnVMUCR5PyTAGt4HAQw8Q7oV943zh5ZuroW75MCKsTi5FhjnrcyMmQK2q3ZpLnraP9XzJFcVWJsEmkX7heqWL4v6VWaFmXRqQu", + "private": + "xprv3RcAX4TBtbPsidF1yYL7CT5LFs6gVPXAXTZi34miUd1SCmqbTrn5YUfMdWxwbhE3aSgNT22V29TQWN7cjcPFuNYdCQp2WrUz2YiAUGqe8VzufyfS73C4r2onLsLYVmxgr298qg4jqSdS6SEsY3EDFPz", + "finger_print": "759419d8", + "chaincode": + "0126e550bd78637a6240a8b61e147586f928c75b8ca0419bbbac9e1d1c2740e9", + "index": 0 + }, + { + "public": + "xpub6CCqABVsyjmnXvjjb9rw5ogFpAscqoMMvHGwitd7MxCnb5DJLcpT73SwYApviow9BJnfBaoe6Q65jbhZTxiCWy2bzHWh6jXkMtfgB4wq4xg", + "private": + "xprv3S5DfdaUuVBCt4etVT7ykaUXWsvKcH6HrffNQA6qbPCVVNkSWaJNwmFxpEbQxBmwbcQXhFWgnsq6s2pGPVjcZxXNhwuPxdGfRFLq1Rjvzau6dGLuoMwZmiMinz2CaFgEsFAXREW51hK29odc7Pkhf6z", + "finger_print": "4b356e9b", + "chaincode": + "e2c27fc76600cda878ba8ca60a6b951a0042999650698082a5b5681acafebe8d", + "index": 1 + }, + { + "public": + "xpub6DoxXNmHBCEdWfXtcSn9LdHYZxxNUnzZhmkTsuRANQx48SmA4BUQhhkvtcYR1gTBApZn1Q4C5ekFxvE1UWa3dNmaBfZpwDZxtShNheehBgQ", + "private": + "xprv3SYtCzRzLrV6msHb9YxaXijmi7iQdrPRSApuN2PhKBSqnRFoyWANeisiCMpmV8mBCVWxP3Q8pjCNtKnJy91p4MibJGEowMs5aJ5Y95EdtofdpNQbLsdj23bxHH5zs48ssqpexD4rGghr2QKY7kaF2v1", + "finger_print": "25a84edc", + "chaincode": + "33de248962c0896ed75fda04ea3ca9f39f1e2de5125b5663b432d4799d0d2a20", + "index": 2 + }, + { + "public": + "xpub6GwuyhnJf5cRhTgnjJYKAJ3yxkNEG5aijHnmgfMsK4HvSh9hcKpWYhP6Q7iCN2xkJyJgamod14ea9TYkBRAppaS72HC1z7Cpvx1bD7wWWaZ", + "private": + "xprv3TUwEmZ7k5VvrEZvofNqWL1bwiqc1Y8jk7qeougipxzucGmnvF88R6LspSCsR5umfhWgP4yNvBz3k5EqK7oYrtRgvmzq8YmkWN51vFE1F94RJP4KD1jRrAYBfPnyLKpBZtqHnJ21cMive8o5fR1TmRc", + "finger_print": "d0792dd3", + "chaincode": + "5e2250245bcb5987b48f03b32d6dad0fed78fcd101a1dfe294c04a358ba5e270", + "index": 3 + }, + { + "public": + "xpub6HV7rE3m2JufRib6ZBEDsNf1bsLcdRbHg5FtgcrQQ9mwa88496UzWhnt6Q7Byz8y8SS8rZGnXtcqELP5tUGtAPx4Q9njKV3FJTDN8f7b5cY", + "private": + "xprv3TeCt7zty2GEDFjCzqjynFqJG5BESmQDbeHsx1tdYKQUdefpQ5cGZTvpqUP6U5vVntnvA4CziCjz7jTBwb1eZJN2PzaqrQVk6X97znp3uKwoRTY6TvxMy9AhGGpnb2k5PtDtCX5bhLcXZchPxcE4She", + "finger_print": "19aba00c", + "chaincode": + "1ffbd623f7e504f8453efac16ac1379ce673fb905c6637d8e0a3d20f3fe11355", + "index": 4 + } + ] + }, + { + "public": + "xpub69YXnebuS79yR5Ed3DdWLtsewSSZKhHZ6JtdrASEYY55FZN1Ym2UaLLwDvcUPjCxzumVjR1AapDAks2DchWaMauwt2La3aZCFo3Fcy3q3H1", + "private": + "xprv3RHP9Z7mCMvW1t1i2PrKuZQhzPFfjgpLuTeGZ5aDSwTejLvpQ86UHPH48UUawMnDnbVg1vn36yUotDbqTRxke4EKCAqDqGhJPiGK9uKLovanRnG8thbwExyhEmN6Us3J4LbkG15sFp7CGC7av24DJew", + "finger_print": "e1446220", + "chaincode": + "7167c4cdc401c655aaf1f97b96ef0bb09521c4af50734fe6784752ae279fec74", + "index": 2147483651, + "child": [ + { + "public": + "xpub6AnZz66eBoRCDVQYH3DoYBCzVkLxJJFpRE9MQm5ZNrDecW696BdjtzN6ho7kq42Z1U7axnswT5c8FSQtKHxtALHEK9qL4fCxh1ygSAVJ49c", + "private": + "xprv3RenLDY17HDeBSRpqnPrsJT93LeostYqpXVv2RBCZ5M3VWbBzkAhs5ySJsS8BjPvMCuVSTy5KRa8u7hAKTcxyHkyVqTn6kVAg9zSTVZgTfP7i2u6LvC67rUB7YqMSSvrPtcsb7WZ5nyCsZJX5gpt85i", + "finger_print": "8a3f3954", + "chaincode": + "61cc29fd0b5a9118e59cb1cbfb585147c76aeda022f865be4a02a910adc54852", + "index": 0 + }, + { + "public": + "xpub6CH1aiA9v7MbCCXMqwbQiAHkpaHuJGcAbLvhPzh6dm5CKCc565rd4duyErvwvTiTJ71w3cTeYcCfHDefNzZKYeA9QDYhT8yKPi5dijX3DLJ", + "private": + "xprv3S6TgUr2t3ZUUuMkmmsbinSLs6ExUAqZNnUzd5uTe3H8hmwPSTT3ArkMv3TYdbm5H2Uee8V2UmDoN52w4fjaYPKLNaeGVaKc4XAoFTw8MEZmi15H2p7RY8boHxg6AN2GeMPG79KS2wECWbk14xhPCpX", + "finger_print": "550359b4", + "chaincode": + "b3b25db171d50f1dcd8977606a2d04a6b14149f42423ef9f45a302e0deeebf94", + "index": 1 + }, + { + "public": + "xpub6EXjU6XfJfuFohM8Ho34LZsKaudPVrBSLPxBiGuw8Eazsn7kU5YaAynnNXwH5JBLjVTWkqxCk6MzeDMw7zATw6hs9b1QH92FiW2CG2ZHWCE", + "private": + "xprv3SmHyLNMCbCs8v85iATESt3FpBzLxpa24uujp2zwVjVmpkua45d6C2kdWPEJHaNKoYipoAyDZGcQYPGba4BEuJMhXU3c1QtCcuUyEehoryrFUKG3W8h4GjnUo8n12XCmb9uZfEPqXHs68xtx4oHJMJf", + "finger_print": "87a62e4f", + "chaincode": + "993f4f29b39c2faf242202db27fdd2dc21ff0338d20f852f007cc6fbb2c4aa70", + "index": 2 + }, + { + "public": + "xpub6H8FeUHZFuv5reBC3c11NQJqSsJxckguPHhmSXppiDGKvH119XAp6iaQC5t8RMHRuxmo4iASN4z2ihhdkUVsQTysunqcK94LXsVpRVWyGu3", + "private": + "xprv3TY1NpDx5VwA9R5HCtnyAWMx7WakqPenNWQvJzRyktgMEG4YitXa6RBGC255L4yozvN4zRjY7Qiua8hwtK5cAqthN7YDmftFNXyNwDtJCukPNNCkJezobBK7GdxSEZV32ZAoY1Ggv5ji9bhdGxEFoYj", + "finger_print": "e8b9d3f4", + "chaincode": + "f9aa26a595ba69e967497a04a9328653969bf5bacd7c1860e1a951b1f86695b7", + "index": 3 + }, + { + "public": + "xpub6JEhk4fhtxS7ewttqUmj1XXH5MzvwYMyzQQwA1DHa85oaJPdLVWjMVPZrJF68wRJr4vk9nmmf4gHJSGYsDgtjKJnTU8aL92gRNtmfJ5fM1d", + "private": + "xprv3Ts9piYKi1d8TeJqSaam4oZr3f3V4qgwVhzTsoK7GuMYhWsfszsGa5iuuynbUz3VS8sKtYpQK2PZ67FuMugZndAfB6JpQxi1VdY3R73zHE56Pew3Hyqwj2rohmEKVrHcJMxjw88DrjQeunEKsX8LAqj", + "finger_print": "7fe81915", + "chaincode": + "bfd701ec75a0164ad11830ae35de08802094fb9c97b0e08346ccf3e297b9770f", + "index": 4 + } + ] + }, + { + "public": + "xpub69YXnebuS79ySZ3Mm1htLVh2KDqBTsny5kF5FAvfaaVYE2ojBXfbukNRkdrssUmsHmFF1VQpHsFmifMB9rxTV4H2eYNuSTYW6QzootNDxNL", + "private": + "xprv3RHP9Z7mCMvW2KW7CXVd9roEyPurQfVEPgY9pU9Dc61eG2AYv99nwV9hbunfYuBTgiXkTDjiY4sH6m5bstns1LH2mDzoM9rUBWHthPVKQKguvxgtA5GiVLgz4RDVFzdGxjMZp7rnTUi6CP2kfEHU5Qe", + "finger_print": "e1446220", + "chaincode": + "05ffeedf1e40664476794eb3e67f21672f808b7960602f7b01e42b1f3fd0f1db", + "index": 2147483652, + "child": [ + { + "public": + "xpub6AzgXyphfr2EaSZi1BQ6TjXNNRDDZN2dMmj6GkUEfsijw8ymW9EGUgL8tSrADW7VpoV1o6VLUxZGYRhR4h2EoZ6hL8CdudbcGkd9BJnpMdD", + "private": + "xprv3RiP2sNCseQzp897jiyyxgELNuwcBQuuMu8E1PzkKWZQHEm4tDCMMXm3HN5uKAT7H3yQZzMPXsGX9UkKyTdKrFNFmGajYwtjoSQ3ai2DH5s1ya9r2nEuo1Ufd8s1aua2f9cB5pL7NahECRYYQaLVrkD", + "finger_print": "a6a90d90", + "chaincode": + "33fc6104860e120e716843d2e49aa7e6a6764b1f7b769b9ce84472e79271da00", + "index": 0 + }, + { + "public": + "xpub6CiLn3jbQ3r5LgDQ55pXRoaqVZDubpWytPvNAzdJhZDDeQy3U6gjUPgirJdGX2jZCoE5RxtsAXRz5YXomfFLGyFEMFdNcPWNcrYBFPLekAY", + "private": + "xprv3SDz88UGGpV2y8BcgHKfyEmZnjvqq2ovF6bhSLRpLejFes4MHSA1oQpxsvQ27rKPm69p91MuxbwrF9PeXSZh9dadJMSqhZ4RXk7gpwCD81YxDD9BXQBGiuUxaBzdP6M4fbJQjQzmwsyxpC4JuhAp2Kt", + "finger_print": "906e9f3b", + "chaincode": + "a1678c3effd33e068c4769b8c3c212bb1b16cfffb56236a3538d614d3cce341d", + "index": 1 + }, + { + "public": + "xpub6EEKgtQg2rmub1pdzsRZHxdtdfHpTgtPJSfYhnghB5dgTS5ASh8kzoRwYoqPcRujpNtx1fMKmkFZVps3HnHw9t6MFr6GmJGztEB13zBXJps", + "private": + "xprv3Sg81ErJWCYSyTQxMSUeBkPyo2op6B9pyQzjzNhFs4GpVUAVRb3YpABxQPK1RpnnDnXhArH7mQuPs383S7sFYirTQTBSqG1U1WoSqmUTCfSyUkzLEvQRwSCVdsUJC3mvEQGqVwp8ZB7TdaTnyF7BQsJ", + "finger_print": "5ecf7593", + "chaincode": + "5e04f3354be58322701807fa653b1f70b5231564499a4588a0e29ccbc7308b19", + "index": 2 + }, + { + "public": + "xpub6GLGpHwsxhaVnVjKqfVStCoWyciibRGwKzLSPYiS6RTGyDtsNu4ZbBbcGVkZKpzEwNKFfK5G1bn1vkSahEWo3QPGCfBy1P2q6ZopTpH8Evj", + "private": + "xprv3TJMAPiWnt42KVgAgRtdcPf6tFVdk7y8yS618VSeDV6WGoFLU8viUgu4e9tyX6TMsSMtmhqstVkvEshSJda7Ggvj7eaVRriqccdbYfC7jp7Wd2evZ2qyBXnE8H8JzfhNNNShccEcuWd3uT85RUThkdf", + "finger_print": "7cdee04a", + "chaincode": + "06169bef25ad39c95e68324689057c5b6d0be34a5cd92bdbbb6235a4a3942d32", + "index": 3 + }, + { + "public": + "xpub6HSGbqGiFkBdtGACQJDTTzpHcYNuoxLBUmcrjAdVY5VAVg4k7i3n3MM7qCgH2j1L4vVUdGKk8e5PbHab5zp3z2pkKiFrVPoXWJ6wECqEbiG", + "private": + "xprv3TdMnxkskp8XFAzQPNdhzduhQSJ2cNi2o2g99eeSTUbivCJresYDsjtovR6vhAYD6PLvtPaomvvLYXPvx1gBjnFEHXV4B1U36BLzuk5qSphLQiiYoSTa1QLL1nXdYJkTeQehtGuqDotx4g1Gd5e4ZEa", + "finger_print": "12fcbbbf", + "chaincode": + "24111d62a647b04946f1d6fab316f5ba3121659159440d61cf0e4997d92c9f6a", + "index": 4 + } + ] + } + ] + }, + { + "seed": "086ff0be7cead584210071627b33590201334cbbb0deb8603288399b75009718", + "public": + "xpub661MyMwAqRbcGm5yTh9e9s5TYvHAYKiqnJUCgtXYgSmDgz6JwhmNfXiCm8befg2tsF9cHTdQ7KsagjFdf2GfFgj5sfwvHs9atdCGKxkQjB2", + "private": + "xprv3QESAWYc9vDdZvdrtNtViuAggd4FmB4zSRZoipiVQtauYN4AEXkpbYmXJ1TZswimSfBHiLtwLearTVCziUuygHqHqL4sbKQq1UTaqYwxuJN1QKA9QRNkqZmAx2f7YhAg3xS7xYo5WVjtviYMudALegF", + "finger_print": "00000000", + "chaincode": + "decb441514ffa9d258c2a04d7dd6bc4f74223f56cc8cb9fd0d51ee4d20ef4731", + "index": 0, + "child": [ + { + "public": + "xpub68kfwPSJepJPj2GTXVHEu7ejqYbuMZ6NJNrnBT1jhDk79ZSBCaFc5xQk5c6xxakLp2RFn3BFTyK4QqBd7zRGo6XFUcC2sh5uaeVMSA7KrMs", + "private": + "xprv3R3m1RAT4tYzLe1C2ygWGXG5f2HVoaiqBtEtqrvCPZiXDMr21woP7SPK8oXthY2BB6ZYeyv673dr35sVSzW8vS4D8dpdFfKnuyAFkCmTqwsirdi5irZRyxr8Z7JEZHPj8RUzj9Y2SNRDjFf7qcjt2iX", + "finger_print": "75b1b661", + "chaincode": + "2f22f203fedd2484bf17813a9c96a32ebd574979157adc7518fc9c25a90c3738", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BTj2dLg5BaxNfFemcu3gFJT5JE3ErcekYu9wXgKNHiiik3ZXzZF2iT8ZNPSWHi7QC7vKULrP5dbpABcuxibiQfR1H4XKjEUka51GMwP5EE", + "private": + "xprv3RrQyPacg79PGGJcUkV49Adhm7xz8qgnVuucZKjgd9bKCuLddggA4gDurgri8AK8S2VTmiqGixtBKuVVrupzsaaTLahLywScb2DPfgmcjHA6YdMEwXjz2iDNPkLd4mAD2k32ggjheFQvopMhyKxvBZ4", + "finger_print": "e6186871", + "chaincode": + "f4332c5c2987a98123ae019c8b70a87469cbe430232f511abf54844d18ef6b05", + "index": 0 + }, + { + "public": + "xpub6BpinFQ5Nbx4gHyKEMTmBD2LEbGhZV4XAGUUYVmLjLecVKFq4yrtLQVe83JVdf6PAhzr8Bx8D7HCbF7B2ZwVgGZR6t76KUVbdbK57nWo8bA", + "private": + "xprv3RxeimdZhCKMhSDnxSuaiC3s2VNJjkvUGHzXWsSaypFQji9kPezDN631guMPWM5NyZmHYTnvAkhJgjiUrcWFmeobGj8jDESmYvyCidNVmQuXbB2xmLwrJHa497LUNULwzqxiZZ2UqjFy68Lm7X1C3kX", + "finger_print": "17585e39", + "chaincode": + "a111a578e0f2dcde5773aac316b13c98c8351b0a48207807fb033042e5429300", + "index": 1 + }, + { + "public": + "xpub6Eb7J141Ri2JZdkMWaMRjNcLuSFWfeFj5AZbfYAJ38PYmdjZQvznM96SF2nxXMMa7ttQ5gMCydqB1aEHZTwZtN2nYesbT7mYiUNyHd8qxsL", + "private": + "xprv3SnJ9LXTkCNGUuDqA6h1vS1jdBbvmFPeh54gxV6fqA4fgNi4NJyB9HBuTBpVXG89qLSZ6HP8YV1sBoQfNUL8F5GXjXtC5GbeAdxxQmnRh8Jx6tx7x67ociHzHRgXcf5C1wmnGbysJHojszyc4EMEmu6", + "finger_print": "8f91a8bc", + "chaincode": + "146efc8983987a840b8af811dfce91d155fe1c00e68274fd1876c05a1b6c8d66", + "index": 2 + }, + { + "public": + "xpub6GdnFwwcAAYsD5o5rxZzw1ijmX7WsBZtVcxYsMivJHg8knuWSdbWkQs8sR6fXHqAEdvEJqbynbgwLNkipM9KKDwqw1cZBC5v4zaA2RrJDSH", + "private": + "xprv3TPYp4EGCm6xJP4fKnLeYvqLc6CFfR5GxoQp4hVtr7MZqgf9JHsHPdzfm94CWvf4tCDoND5oKWbTP5nxfXXcH8Fe4cav29CrjdmCJ52ifqEBFbydjSYLs8xKFmWcY9rtrK4AtwopNJXhHz9mKwxaG2W", + "finger_print": "a5f03a61", + "chaincode": + "7206145e3bb8f1f3250021ced3ec02cbc825d8d54dcdd57539ff6a28a239eea1", + "index": 3 + }, + { + "public": + "xpub6HXCehNLXSFoAHt8QWohjhjGWiCvTuSGxz6skWT7uKQLZbPUbRQz6creZ1nRGTFxQ68HUuPtyfC3seJzhwZrBkWRyCi2Z8Se2NB3FpPxFEj", + "private": + "xprv3TepmUgfDT82omwV8gT1bXm21YLU2ZBo9AWT8LiYYtUEvs9W4fkAXo5CNk9BF1ZYi3PsfFFLmn8qWKmhnrJtd2Kxf7sqpCCdwee1YyxDwUfeUyQUquqcZQKtbom6K4g3VMP5HStiFKhN5eL6k3qCKx1", + "finger_print": "1e8e564a", + "chaincode": + "0e01e55205657145e3b343c941e0911ea2a6e4c4cfe4507f5bf87bf6534cbc2b", + "index": 4 + } + ] + }, + { + "public": + "xpub68kfwPSJepJPocgyPGFY21rHamsUi8qrntQvyFoYcta4sbccSczR9Up1cJ8XQ1SeYDgghtahkeyEEQ7r7CLKU1MfAim3igGzewxSGebxqd8", + "private": + "xprv3R3m1RAT4tYzN19YfcQLbL9zgzhz224NWj44dPmJdj5sVfwqMgqWpJYzCBxb2mSytd3cTYZzYsAXnYHtjtFSMDxGM4aC5QCj2qyK4JG7QCuSQ3JscHj8eeDRdcJ7N2jF9iUoKGmh9uHHDP2TbZtvHpp", + "finger_print": "75b1b661", + "chaincode": + "fc83ba49177cbb565579a733d14f4b9bd3520210798cb8b68a5d59936b76b0cf", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BVyDYXmVYkzodr9qxvsEwiqMrN4U7XbBi8vr7Nq3CUkFT8ednPRw1SXh3usRwhaywcMdaCG2YBaNFSBztxf5AEJHxuKcU4UEo6rCTxFMa7", + "private": + "xprv3Rs5eUrRq8XR36692PAjz1cfMxBcasMyfD4bqwV7tEAj23JdfXJa2dbJMYkVRZiUghKratCT4pjkDsjgcn7CKjtAKWWNySKAdQR453TGambDRD8kKNjyEJwmGkuJgS76pqifHzdAhUXCjDrrumLc63P", + "finger_print": "eb5c4ed2", + "chaincode": + "cf2abe915b11a112c6b99ae5f0b0f3a2ec23cc0afaa9629527276e11cdb404ac", + "index": 0 + }, + { + "public": + "xpub6CDh7R6KnWtWGDf9mUTdTL3XLWKtYFij1gHrzES3X2nG84YXSQSeC7c24gEQxs72qoemu8Qn1c73WjQSThXoBb6QEB1Zhjpq2va3HQ6EWbm", + "private": + "xprv3S5UWHmHCfLErWPoEcTbcfKQ8uCbgQZxMgJfUzbCHKNuCeh4gBKuNUGp8pQGkkUfj7aQWYbZffzjdx4xbyeEF3d86CvEeWfWqejA3bzT18LNAQ1C3b5izEzsmtv2RSibUfDE8To6bmFa1iPBTFErcJx", + "finger_print": "4d3a9ca4", + "chaincode": + "72643d34bc4194c53f18d114dad82c02d1ba80ada1cef3ad6b66e489d835e180", + "index": 1 + }, + { + "public": + "xpub6F7mKcwfZvcRfLvpcEyDAv6ifJ4ioSjW6ec2JkynC3thsrEyXku2pAXNLQVKZCBE5LKSTEY6MUrJq4KruMfmVUnxxJgXnKSGRgdTJmo6cnU", + "private": + "xprv3SwQL3a8mWc4kQkskwyLDUqch9pufKCDwUKp5BKsiNHxsvbtpkKPfPfEDtchnJ7TKZtZBErwRpCe5Am9mpaxDTde3o4zcdpPzWyn5vhovZnMxBnBHWSAmsJHJ2VKFTzGvCZE32E8U7ruZWEVt2TMyBq", + "finger_print": "d77a6b0b", + "chaincode": + "93cad9ffa74b5c96aa6505f303569aaa09939b320677a772d9168c5a20451685", + "index": 2 + }, + { + "public": + "xpub6GpwtgkJNZepL7rnRfCdBGVmfJL2s3uMKE5WyNHfvKY2wFdgq4BjDkqn4XbhdytacaeeStVjkMksK7auteBTz5oq855yujukZf61xgNZ2kB", + "private": + "xprv3TSsCX8yW13nXcEhdHdndUpwfn27NKoKbHbSdG4uGiCPCCDu3oSyLdxwuAe2eVdXWyzj2VPXK38XxbGt6ouUoM9S5eEnNMYHAjttGMW2JnAtHyZRmgBCQaizGXX57mVCZX1bqi7vq84raYVKaWNJ66w", + "finger_print": "c0217b37", + "chaincode": + "93aec8998fdae52e09212b250c83dadc4fdb4447e5139ea70d35e54d6e49deb4", + "index": 3 + }, + { + "public": + "xpub6JQyR7SSuCMXsRQdnnBsqx7QZ6ks6XrHHxx5diERg1KLwydvAXkof1oS1oFRA4KJ1i3Lhxrbx168BgYfrj1fFqUaFx7f8G4xpGYehNm9e1D", + "private": + "xprv3TvCmvmx1LibGhpwPhG1WBw2juVWyf9pX8ErVaEyx7oYu6NAY5McJrZhrWfW7FvFHpAsGQvLaoe92WsyjcorV4isT1nkFbH7uRJREkX2kpb6UDVug5dA4iBHHP2TUSUrmPRwL8Ck6LXJBJXbFfZNdNr", + "finger_print": "97ff6213", + "chaincode": + "8efd84cb91e1e67a53f33569803ad01b960ffeca440d7c0f3b3b1c94ebe65f46", + "index": 4 + } + ] + }, + { + "public": + "xpub68kfwPSJepJPqM6PBDtC9G5cvjkz9UAaqo7vZWjuMCnNrDohjeywh73AeKaW8hqSaK7RhFUq7G54SUgijxkNydtHp8vUzjqAH26CDrR7fjT", + "private": + "xprv3R3m1RAT4tYzNWyTgthw1keL8ibvfqYNiCFGdWZj2RTEdpyAvWaggjgJWHdAKr4GtaK9WDxjJqP8v1LKpd8VJUUW4iWs834bfJsr8GWkAsEbqXPxWBcdKDcLnFgxX4TrPqMqQ9jXdrRri6rqkrFhj1c", + "finger_print": "75b1b661", + "chaincode": + "aa63860114aaf9f2c4ddf33e5b4310dfbe5d7ef9976316d906e32a86f7ff7fba", + "index": 2147483650, + "child": [ + { + "public": + "xpub6A6WDVBoyR8TWXv353ann3dkspxQW7qrhUAQwWnoWdZyNRRjRzSKAeM6e9bxw41xtrnH5FhLX8eVgnKaYRYri5EUxpUMLuCfZDL4Xcq5vZW", + "private": + "xprv3RSt2cHbjEXmLXqvqAhGHBKXb4WxKqDz3L9WHp3r2sLUTYNGD7n8HYBuFdkTwVAmEL3bKnRWbQZuk8jEWgvfDmyknuwEZiwgu12y5cYdMs583J23vMFnUYiyZpdntLAuuAhsEtiVnXdR8g2FajD8CvN", + "finger_print": "2c44269c", + "chaincode": + "1b187dd053e5f433990bbce780f87096b7c642283ebfe3d4417442d1f8275a83", + "index": 0 + }, + { + "public": + "xpub6DLwBkbhPHsZcPwGP5MA5LrYPLxHKAEupncfz9ptkRLRDwQU63Y3koY74Lm91NVN9hCGzmdfchUZgYjQRLNHozDTRZxcN75bPYkmgWk1hEp", + "private": + "xprv3SQrcP15zw1EdxWBrBU5Rfx44YEguMYTBPgibNTyVUj2Ucyv5UdNzTWVxhfGFE9a5aopg8P2tDCBrmGjKREu4j3EvQK7HhgedEQEfhXP2c5xJaueyJeTUieP57ikcTu3FqnmM1hHgTKU6HvaQXMFnwc", + "finger_print": "e644ead1", + "chaincode": + "2984c4d0315e379488f509354c7bf084fe3b9821aca23f643e3dd615d5be12bf", + "index": 1 + }, + { + "public": + "xpub6E33rDd5dDycDUpMRLRjMchpK4YAZcf7kZp4jcCjL9d8XqacVKavjaCAJgEqMDb2XA56btQsDgMPz42biDABGev53g7J8zXJD5ZF2bjc7Fk", + "private": + "xprv3ScmmrUp17HRATSAkq1J9ToFXe6nFhoJM2WvjRJ8ez6RiS5vf8x6i6uvFuG7hbptwYqkt9zh4FX9ELX9ZVDXfKYVLVP5UbjvGq3nF6FJF6cQjCCo8zhTuqVgocKEHFSR1sWZB1JDFpetyeMFiEcSYxa", + "finger_print": "445df499", + "chaincode": + "4ef75df0adc0b32ca35c89d085f508c94effe143793004a9ebb3e41f9940a8b6", + "index": 2 + }, + { + "public": + "xpub6GDN3qKxErN27T3mmsSvuvpGTtunxaKnNb25ncYrHqrojcNikxP9ze68yoh7C8n13TSeWA2CqZXnWYuDUbBug2PmFScVrm6EpgrBjwxSYq6", + "private": + "xprv3TGJ7M1giBxXCrkXwsBcf8pqpxomEXW9PrPYAsvxt6cRannj2mpXXAteuGrLouJzrm4fXWUdpsfL3JhGArZS44waP5QB5V9ZxZosucdfvupteXTi5XGcP6Afpnq3qyDJicFty4VQWBgkZbS8NjdK4LX", + "finger_print": "6ca98d40", + "chaincode": + "bb3a099251e5256ebb837974cd91d263e8031fafcbf6acf2a6fd6db058f8d84d", + "index": 3 + }, + { + "public": + "xpub6Hqk3Uaw9qNhRru6QTbzxBbshHoEtgrTU3f6wDJy3TyG3iRpkXNdqeNvAafMZRonnuHpicuxrBUP7v9NKDCfN4NcHCN8LvGWL4WNQizQ57a", + "private": + "xprv3TkLE4f8FTGFAfuv2LfSopr7VQphbMTi5c9D6oAkhps47Vr4bQBWWciPXbtx3ZrTxP2zsyJHya2d8C4X3PZmwD17EEV2h47j2pscgc8Ez6aaSyL3G97h1TcZg1dhw2a7MZuXQNQe6X8WSDY22SS2AcB", + "finger_print": "4a0c6247", + "chaincode": + "390a2b89720721eade3f79510857b3d30f8e9b580d8f1ff3a94daa684077aec0", + "index": 4 + } + ] + }, + { + "public": + "xpub68kfwPSJepJPtGA76cNRYBgUsPdX489TQt5b3SXAh6MPZBG57son4DByJEQNocYw9DX2TW9h2jK749kDF1VqUtKvhtPKULomLoKembJi1Ya", + "private": + "xprv3R3m1RAT4tYzPPCNMkY9nrdgu8WDousoYo5nDn1KbXri6hG9cSVVVpvPUmADZmaGmdV7wMJiLhurni9ZYuoyQm6N4D1QPpiCLpq6nS9g4MJYcaroC8Cu7DQSTP1MVDwApPnR9dhxcE7q9xvMvv2soef", + "finger_print": "75b1b661", + "chaincode": + "cf2a820fa3c76d1d5addf3c49340c9bfde6eed731b8199d51ab62ec0a41bc582", + "index": 2147483651, + "child": [ + { + "public": + "xpub69xt1F7DX6cDdfkDBVvsV5vj55gPmfGwRrFmkcotiCPcB1A2WhwBPBUyXoxddvzhnDcytGXkffK2bxvCbTCDVn48q8kbSWAyM3CDRUZmDaf", + "private": + "xprv3RQcfVMQJY8cKkDW61ab8T6c3RvjzwdbN38LLWkvN9TSvwzNE3XKYZ43qyKDvUV6rehrcJbstKHijWb6RuznZPb7iupyT1A1EU5x1dU5ujt3Jo2nL5TymGXk72DYUr3J8EKrF9xzFEgzPkHad7RH5tv", + "finger_print": "1a61bb47", + "chaincode": + "4e76c82d66286f2bee71f332dd8fb4ce58bb527c0e46dc97cf0d062cbfa97b52", + "index": 0 + }, + { + "public": + "xpub6CSou9RfrAKZdE2yfFB3mGyMbak7htXrwu7XqvF5A8nM8mG2xMUVJZTvL8zwAzJoYSgcEVMfH2akkYETevcKKX6BhgUZyfEyTReb543FzDD", + "private": + "xprv3S9NWNPbjmArHQbAiAbm32477i5QxPDX1T47Ubq2afD8hWQQf5t5xDacbXHBDcuQp2Mp2SGGG3RJnHHxFDb3BrXCJKvr9nTUB2dkcs8pUkwq5hYZsxGA3nQggwpvz9L1AXKj3n244Uk4i3MTgmFoDfA", + "finger_print": "6bff6993", + "chaincode": + "64223d989495b0073f069ebbde53c596bf0bee4cbd3e8b8a18f344ccf8d3ffce", + "index": 1 + }, + { + "public": + "xpub6DvoGBBZ1cAhD2BTuoCTm2yWKiZLzfdADYt77Jx2UeHAS3PM3jSJwDVNJoV6pdYq82138fQFaonLjDNm6SKX7YDKQWst4E4CttdWoJXb58b", + "private": + "xprv3Sav4dHqFYuXtW2eyW3gaSfW1PyXSmQKMSYsiCovZDkXMgYtCBCgc5sSVkB1TNrpyKCVqpgtzeSTPUjxtNRdFYXd2AnBPLYRN4ejAvi3dFNH2HyyarFm8BfuH9GAHjuiaY3vYZMntu1b19mAzVBr4Py", + "finger_print": "35b3ec26", + "chaincode": + "4f3e6423fad42d7997a6911b96d481b14f31cba50588372c7b8b5e48f7ce3ac8", + "index": 2 + }, + { + "public": + "xpub6H6HpBxqpyaekCGnLTAAbZhoNbCQio2MWuXuuZEyYFC5Ay6S8Fhy8ZFpjzqhW5DGUfeBkScXBG72GcBsXHhsqB4U1pWEu4vPzqXbMSZZzik", + "private": + "xprv3TXRZXZdh5smEuPsA2DryPLpMPy7MkPQaq3FDNTrQGqTunqNxY25Ek7FV8MycbhHCpev5phPirX9SyinEfGB1uGVmr3iTRBm4nEhk8D1251gUhR6RsAMnfBun2tvUrze6FkLFMtkR2WMUzUeq3vRXKT", + "finger_print": "e41f4466", + "chaincode": + "75c00fdc4da7f1ae99499af62971e0fd3bf687a7b66bdb4875e3a91e0d5683ac", + "index": 3 + }, + { + "public": + "xpub6HqsGbLmJ9Fem5yt7trWyWVs24QkzwD7Fgarpf9eHf4WFViFpjBFrNBzH8cAVSeduEC78gmi46jnatt9WD9s6B5y9HHuZxHu2eZwxCmBJNY", + "private": + "xprv3TkNNZsEcm3f3ZH9YbP64xM7bXzU9H73TR6t8GwmoGCgxdwq8FNFxR67B3jUqoprizUWPuCk4SayaYz88yNqQwc7QZpfkaZNBGpMnuRN5U5nachjVCUc6it3ZdZjfku8djGoDLaXekZLo1hPV8bzuhU", + "finger_print": "4a573318", + "chaincode": + "b9cbcbbcbcdc81f074c0e052df25bd131f1d0e644c42bd95456c6b1a20d65089", + "index": 4 + } + ] + }, + { + "public": + "xpub68kfwPSJepJPwJAAyXLm68ksFGXtLziANQpR9YJqkw4dHeu87nayMRcT5ggvkhRu8own2FiuMfgbf4SXrBcuByUomsnNCDznXXHUmAZ3hXb", + "private": + "xprv3R3m1RAT4tYzQHUoFo4cFV7zE5mjja6qUY97J9rHwuqfzVPuq5DCWRGMNShgSZWTEpqsDLzMp1kyPERMkhsE7aeT9tkMwkT3uRpXVZ2P2rqgP9deF1LXXA2xkg9V3n9fH9iS2jX4vw9ogNZBpwGL3Ug", + "finger_print": "75b1b661", + "chaincode": + "fff4d9304d2476343c8319dbe11a597c61167357b79457248e693272297beef8", + "index": 2147483652, + "child": [ + { + "public": + "xpub69xuZiq2Niqdj3exXmgDNDL2pCYFuBgD8NohDGzC4uNWJ2ToyWKSDWWG7beuxuFiCXCFdSioQLvwsAwy8Lar5Pf7YicJJtLpbCLSmbd4YBF", + "private": + "xprv3RQd8NFXYWJjVPfwZL6JSdwjnyrBW8NerH9fCD9o58sBt1CFmcPbUF9QFLY6gWmZbWn97svbMu6MLRu4xjnrvwVXAkgZVFsPvRf5keSzCcZ1rNpnMGd85iF3uZ2VmPjZ3sA1P5WHTeu5gbxm8D4gEhJ", + "finger_print": "1a71e1f2", + "chaincode": + "019a2bfc417234e32282cdf3312c76de301a49e83a034b5ae93847b316c650b8", + "index": 0 + }, + { + "public": + "xpub6D2WfwLrRVd9APB8oUoGEKw3WQZWjDxo79RW2fRiTtXTUht2ST8M5RdGnniZFNy1Lvt9UGNWL5JCjdH8VE9LJsosDs8EE4y9d6vPwwSnoUM", + "private": + "xprv3SKPCK2sVdCfhvc9SiNZAdxufJHZYPogUD9UAsS5eDBgyx7fFSx5QFcxtrhWCcsJiYQxAm38M6kLPMufWvMCtDWFtbs6JCATsQ8Y213CPXXS9rK9Q7GxqscamtXUEUm96ump2XBq58y8vK15Pwc2QhP", + "finger_print": "bb0e16c1", + "chaincode": + "346c1efe23c914fd0a81a362dc3e4e4bbb787d15cfbe46170ecde6255ff707fa", + "index": 1 + }, + { + "public": + "xpub6FKqjy1QpCkxDxYqz1J8CpQ7PDS1MP5JCTxw9XfB63abUCXuXdjpgAV5SxjsE4oJGkkKHZJ2CMf5dM5Z6ZfzuRF8JcwFsr6Pv68YXfqrvH6", + "private": + "xprv3SzzPzksz5QsofSikKVdT2cMnicMu8Pc8rZWmfdHKtNpVFoYWBDnPAMoDNZTK17X8rWkiCfgci5vRGzm79cRwiCZsAxxcLkDEtScgAcST4u2yQFAfLqG8hg7b23z2E7rVR3KM2MzWRJDuKHtmAtdd7p", + "finger_print": "f3ce3178", + "chaincode": + "27d9a8b7f038ffe01385812f7abf97e7d236fd0d5fee1cd083463d4e63b40a8a", + "index": 2 + }, + { + "public": + "xpub6GJGFT93fPxZMuf1KNBtFAgePD3gQ4ofEGEjR3jNbUn8XS1eLGTs5zVLRXKn8RRribVgMXwYoHeC4kJiPwoNiqdNvPLMQaqcbteDMCr11es", + "private": + "xprv3THkY18TEyPvwrHan2PNs3DBYTEMsh3hnACkrN4pNJS8EHhQPVhRnDyZuGQrSw4r8gtCiD65BXDrdbUGuueuKEDuDQRoPoojR1nBodCywsCjxRi3PAJmvpdLjdT2wHQfWSe2Bi5VdsxWT5YEaTjHXuf", + "finger_print": "782802d8", + "chaincode": + "7638f0cb65aba00cede0b59525e579e227f7ee8961a1c42a7a8ac1f2d74342ed", + "index": 3 + }, + { + "public": + "xpub6HwiufqBDgP72RpRrjGiZR3h956nvZnMgYsawEQg966uUcE4QMqfdqfS1osK9mDdSSoKhuti5WydfAtf9LFGBgB6k8qxmrUW3TZofDRWD6n", + "private": + "xprv3Tn7GR4xQ58Xm4d6RSQRuTep1mmtBDrFHn66Sb2saSaSMaNW54Rhy4NBhx4M9BKDQXEt95Loj1P5U4taRkB4YEoXs5Rx7sQxX9J4ov2NXYU5sRb7JT5irjnKSCxtBssum8bZse84Ft2EHHnodBeJReM", + "finger_print": "5813a505", + "chaincode": + "a3b2de10cabcf6e1a09d449017c679dec078e7632ab0b8613d7e945a9731fc75", + "index": 4 + } + ] + } + ] + }, + { + "seed": "78b46372c4f2b0379b7d6802606e571ced8c2e4566237fc66b5e47ad0873b77c", + "public": + "xpub661MyMwAqRbcFwu4LLGFZDUHRQkK46ykcywrFkBjaRBVzommq9onGQyiLsKPHAuQ65kZ7xv5fBqv2JjabEUmqYiZ8HqAddV9Qu4PxZasuGp", + "private": + "xprv3QESAWYc9vDdZgcpvSFjqziWjBSHkb3zPaJUvsaAd1uUMEJKKPbkgCmRDHxd767krp72HrJoKWH4QgVpSNHPLTiYv6GMHiBbDYyiF9nefbpUmEUNpjvXfc1kCbj4LHNjYo8uZ7FQqqYDSmxrgATzacC", + "finger_print": "00000000", + "chaincode": + "8d1362b3116804b1fb0a7ec929005fba8c2feb183357615c35edf38868d97fc4", + "index": 0, + "child": [ + { + "public": + "xpub683odPswegdykd8gVLh5Q3F1KSujNjLf5PZnrMaq1rLcLqoV8y6HVyJgGQRn4nbh2Yr15zGpeikkU7RE6tvvmBARtAaS9oQ8epMrUUqGjuU", + "private": + "xprv3QqcsvVykpUoyonVG2jpgFjRQ5gEdWFzZo6fU6gPCaEfGhkAwUymUa9CfmoyTDD5LNEfD6ARkhiWxvzGHQHHL1XVYYaWnxrymyN5q99A8uYnKFQTDENoRbymZtFQYNSGWEeybRMSEvgFmGEMqUhjRiD", + "finger_print": "15d4c6b6", + "chaincode": + "d4155bfd9e9f87e394a5e7adebfbd55b4c429d45201e35037ad5584600ca2222", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BcYKoRSWqS4zghjmXnCRHMq43cXYmrqAJyAWeN9zhdkfNzwxSPMS4xJ2sy2CEGrgsEqQgSPhNr7crLdY5qYFMPWGhtmUBqVw95SMNTuLnm", + "private": + "xprv3Ru2rpL6uL3tsKAn4WJqtxmJ64x98VWQHVRiYw1xZ1N2yfBoEiLSEEHutVsxHbZFv2Bc7QeZk8G6zVzTC7E3aECnRPsQ5rY4XYN4sNF81azBECihRRYta5Jhpjzy1sZcWWD6Xzc1dX92wMDe4cGtp1h", + "finger_print": "fac618d0", + "chaincode": + "4c405b6148646d366ed327e4b1e7aa31d0918aef9b7b209ecc916a04811ac6b1", + "index": 0 + }, + { + "public": + "xpub6BtvivRPAtTJYsmjd7PGRsErHu1orkjtU85UqCkBCydKJaThm1nTNy22eYvMa1T8SCuSPoUFGYgEuJ2LJr7nfkXp1RNA2maR3PYv7nrsjs8", + "private": + "xprv3RyuBob5C7ADTHuo6rooFmLGApdhqvXrGxUjqJ36EaXSaFSzcCwpTUhQUdorc8sKJ1ifPkuYm3Wb8WZcEFD7Vj8AtJEhxauSaoCqz6yPRby84fFoALAVTrv7XMsJkvPStkitTwnXnj2TS9iPJJeKhvk", + "finger_print": "21360557", + "chaincode": + "4b8405c99980e177d287580c8e1e9a40d5bf95e9087e68b378ce81b4e66516f5", + "index": 1 + }, + { + "public": + "xpub6EYK5LMmtSCyMau62hWFVdTF8igxM5HW9jpApuKt8k6nsiuQniYF3NUtosgb8q6LfRqz61NFwQdDVm1rkaQGMSVRF6sPRRkxjgVUh4pYdw4", + "private": + "xprv3SmTxNxweRW6MqKjziKcX2KB4jSqntwgPjrqgfsgnfdnFwizkgFS6zMsJsiWeLPNc7A3aGaNbRYC2ZK5tY6Sh76p5w3zuJwCJWuRueqvrMWY71MNajpcZa11WSVkZ1gmjFY9nQzBwfqC9dAEa8tzcYg", + "finger_print": "890222c1", + "chaincode": + "2fc3d8d5ad63e3c9b00ae22a0d98691d37c1249143381706372f9c66d534079e", + "index": 2 + }, + { + "public": + "xpub6FVR1MW2JpVTo5VGUTcuaD8zthpAdZaMQHt8q54WYT2HHKcTZbGdACumBU2uiddFFwKDH9VX84yAAe8HAmXw6SGFgG8JPEwFhpE5Eg8BKYr", + "private": + "xprv3T3qLzfsxssrKHpncCBafH3wScC6NrtNX2cyFpGL3xAE67mdRwDWURDJKn1MXRemyVUEzkj7ZPVofCbfTUPi3QDS95846DacuTkGXEijR5HxeqD3jJEGSQUSeYu73EXuTZPbfHg1jKD3bQEEfXUVYX8", + "finger_print": "0a431db6", + "chaincode": + "79c3c9a300b56393f6a5a34bf3abf1c2b4be4fb5373d2bab47e9eece63eab7e8", + "index": 3 + }, + { + "public": + "xpub6Hk7kG6ZnoBAPhb6JK7JkzDfq8CsTk9BWbSbkpMUofryst9s8Zekj428WjuAoFFM6kmCfLCzieKB4Fy3VBKv6F8qb3fqtj9isqhnj3jkmf4", + "private": + "xprv3TifJ6njZULDTZw7FT39wAFAvkVZebRYDBDxNM8EmerSasEtAnv23Mw5hVu2Zrwc9hPHVSPh3F1H7ga1VFYPuC69Vwx18gspA4jHEpFW3MGUnG2WNL9xerrZsBnm7w2GzHFbPGoNbrXDrZL5poMnbNj", + "finger_print": "3cda145c", + "chaincode": + "840d6653e2951372117cce688b32eeb7fd092269e2db56b5334db8386f30f3b5", + "index": 4 + } + ] + }, + { + "public": + "xpub683odPswegdyn1PdQuMwnBhtCRko12vqaum4vSBgVQ8y4AjL2z2AdKcmERmq1yU4SQNib4crBu2e4f8heRHuyecBHJbJ3NipiT6QaDZSNLK", + "private": + "xprv3QqcsvVykpUozDdJ8Rca8dQyLTLdBMftxUqQpzFANfPTxq2AtfoWGzNswBBEXK2SvWEits87XWAqbgRp3LKnhUD6Y2okYZA5hYaf9SxtyxJ2gj8cftkgXagg951zAWnZwduhLTNb738ALQRNqrTCm3f", + "finger_print": "15d4c6b6", + "chaincode": + "5f11e4d5c001ac1cc70d4373bef174b433b3af1f662259333b879cf8ca926dd2", + "index": 2147483649, + "child": [ + { + "public": + "xpub6Bdjt6JBbw3CCMZLmkSMgT1EEhJXxZq9533drbJMzBWXZ7Nnh6e1uf1nURp3sG3DSBnqR9EA1sB2Nqi5Gk5AquJXZf95Si3SypxzXWf4dGL", + "private": + "xprv3RuPXFYZMo4tGaGFucF9Kajd1vwvbNSbAw86Dus9cz5WqF3vySrZLu9DfgqF5bkJHJgbqagL6gTYJstNCgEiinQGHrUYnPe2h77Y1oVVt6CAJHXCfc2nWxHAXP3ySn4hZajLrJc2A2BHCNk2ARx4Txo", + "finger_print": "fd964025", + "chaincode": + "613bd3013eb83761f4b31ce4116f1117b6b07db09f2096d92abbb88aa6b00c92", + "index": 0 + }, + { + "public": + "xpub6DFNk5epTvVsCC45AHKPeXRdF3QNe78t5asDk6J8drz9nZkkDN8o31C6E7dsTJfsDoddkwQ7TwooWkVkimbVEQUqrhxqo3AG5pAF6ahgwJh", + "private": + "xprv3SPCpphoLzzuty1fHWAuM19BU2jRo4oGZcQLGApfrVnHrg3pPWNesNjrrgsqZVD85LSF8uZL1sDWhGP8wwsHRzsgEWa6Q6dbfj21jXET4tiiv5VJcX4xgYnk2TJEzUtjGm87kq1wmocfp9k4hJ15AFp", + "finger_print": "d93a846c", + "chaincode": + "c36d261544b117398ac12425e61bc038b754fbc9660fe8888ad12341ca2158e8", + "index": 1 + }, + { + "public": + "xpub6DuU9NeKgeZmLzbhZ3wqMtvaB4uXAFYStw8mND9c2YefqxUvEZTPYpCp2EYb3XhDxQk11qZFbnMJr3fiHVziFVjfbRY6XjnwPyT56dBk435", + "private": + "xprv3SaX9vhZAMCdmqEwsMK5qetZfV7cKwJFsv72EewEDMddyWuQ8VAc3dnNtMU79fL1T17tRefTvEmHmRWpc71DXL9y5J3aYgWYBCPQJUqV7o9HyRh6KBNvLZZyJP7WdGYXm3RS6YRnAi1qp3H2NP4ySXd", + "finger_print": "32957db0", + "chaincode": + "5f6562947625756b5f1216d5777b116826b3df5d1b5a393916c2e00e868426f7", + "index": 2 + }, + { + "public": + "xpub6GCVJrX9RMjiRgYusocVkCqicEALzWDF9DVR2m9DRFRL3Am42rTfU6q82Ks2bYHWWQGhvmRtjXeEQhisbgPaDjpVnYgnqipD1TJY6eX6FPs", + "private": + "xprv3TG336f67uXoHsPmSpxFK8RJ1pfdvrgG3V64LXTY8V7ggXnZTaWzC6MziKgqqfFuFprAojbmfPQn5TEUbC8cSZtMuyN1cQaAt4ShisuwimRZ93zJNnsKWgoY2xYq5kNBGtypoh8qo1hFZSHr4tDKxUt", + "finger_print": "6a9c34c1", + "chaincode": + "d3784cefa76fd4efbfc29305735f1ceafe13636f87965c4b282b775aa40b3854", + "index": 3 + }, + { + "public": + "xpub6HKfVgzwHE5eT4D31Dy7AMQepCkTvNg1E3t1sKwjJFCXTWBiNRdRbnr2sxdggzQGkCps1HhEa6CAx48e6LtuY3sjbJM2fSKsNspw6oeDgwK", + "private": + "xprv3TbPzCcW67DnRUbnE5RZ5vPCbza5qw67PxwTQu3nVfrK8H53cwC6fq8fxVpkmBR5HeL7BT4p8YexbXrG2VmUk1dqR9jk88PTTeVjCXz7D7t2tUnLfQLNmRuRHbRpSh5vUbKf82pHh7NsmyZuu5tfATE", + "finger_print": "037e41fe", + "chaincode": + "f51152ccf645fe9986849fbd7fe6120a16cb93a0063a67c0b65078afccef02be", + "index": 4 + } + ] + }, + { + "public": + "xpub683odPswegdyr595b4151aH4Ch9NDo9fgVR5fyDNnRJWdk8MeU8BV2vTLPtiiN1rwSdTkkZeKe2h3qgUNnmyJfwPhFwvQGj4PMMrAJgtxoa", + "private": + "xprv3QqcsvVykpUp1RfAD8HxVfocJV2CTuhFkwYDWVBfmNarYpWvhN2Mp8N42LRM8RWtFM2hWNfL4ht1j2F19FMwsS23rkdY9wGjoBHZEq26ieHdvMd5mGA6Lo2wZ4ef2wQ6GPYM58SmL81gYZat4J9d53t", + "finger_print": "15d4c6b6", + "chaincode": + "f7543bb82042e22bf925e43ffdbbe48df6abbc4a6a0a2f5bdf44305a7a65c694", + "index": 2147483650, + "child": [ + { + "public": + "xpub6BeeJxAuBNTpkcoW63n8GvEaHvavGWncRFrdfWQDF9ZZ87pL39kkDVurJJwm4KcJ5QptSDvLeQwqXg3je1WpJGVQbJdjovsNyhjvxkzb4qo", + "private": + "xprv3Ruf6aLkR54J6W5634RYCDN4oudwzHZ9c5z5MGi51UenJh9rCh7MLbP3D1ao84kitE5PLqrFUEE5nbqqdJT31ABhXBp2fecJhYKb9R3vBdH7VFr2fHwPuE1yLK2AQkd4L63jRmq1NyupLvDiRrqrNHh", + "finger_print": "ffb51197", + "chaincode": + "d594f404b64aa772a2445b70c3369237255cec659ffa37cb7e76d8ad295b5511", + "index": 0 + }, + { + "public": + "xpub6D7bmWJJtm9EEtjoAgq1foHRdsYJ71SLaQ9G2XzCvEZ7Q2R9iB4yfoiUknBU8tpzvbQsh6syAJB7aYFM96b4x4FJA88RY9cdnpJwAuhkfB6", + "private": + "xprv3SLtrhQcQADWQpToR6Ftudgvg1m1o1fnXt52dmh7gaWTbvw2o7XzRPGUB2k4vDiT6khaLkow5GhJuT5YqAp6V7aRJP3TAzVafbwuZ6ezazWyRzKwSknuBdEH99h13yqoddnRd3vfmxxLscGnF4nyq9T", + "finger_print": "c6fd5b48", + "chaincode": + "41d00aba344a6cd96bec93bf87733d62c9b20859012ccb954d92685415a56239", + "index": 1 + }, + { + "public": + "xpub6ETvbUgZiBY7dxVWCqwNULdYRRUxTYWCci7pnpbLXSXP31vxHwQrhUnLeg3zqrw9DHRwUqgHE9skB62nbZXW6hummxMz9wNcy2BVkn8qpEK", + "private": + "xprv3SkAMnZMUM33KRmL84WVnLmPBeUxcST1hj3XVYFgca2e6uW3GvSXz3LTageJF2jVMRGFZs2tmApNXHUnAtfrLpBwTbym5v36zbyKjhyRwLby4dhGWzkiYJTbKqArnDZQhgYXpEm2zwYZxJCVXgqZmfp", + "finger_print": "7eb761b8", + "chaincode": + "253c2e4d4b49d63ba3ab3faf8ffc0ee0b365bacafa768329d84130fbed46a118", + "index": 2 + }, + { + "public": + "xpub6H7zJRQM7fw7wtoxVyg3yw2Bj6c973hNC94QZosppnfUzuMBWAVc1nDdjSVosLdi3JjrWUv5XnFChLNPKpn1yBbXo8oMDpSpyHMCGxuxCVm", + "private": + "xprv3TXvpR2PGeCM117868QdjGqV27rr94pEi6gj6N8ZqvUEsKwzskfSWFuNudcAhPBjtNQEUhVjfFS9AaMTN4e8fKq96tcX6DdtmneuiQGnpZWwicqv5x9ZXdzrcq1GcU66HgJ88NdWoBCEykcgHxP2tBh", + "finger_print": "e81af265", + "chaincode": + "d4a2c055f664c6330b442f73cf40401098c1704562f6e188605cc125f1749276", + "index": 3 + }, + { + "public": + "xpub6HLBWXaB1CxwtryLBTwHcG55qyCu949m5VpWWwpQ3fXjK8PwR6nHEav4syFLkS71a7nicKRZacwtrPq7Tfw3H6CFnTcAyNhyiYp4gHMZfJq", + "private": + "xprv3TbYuLYWqUFvdaTM1chUqR9c4b4YRmwWgXsCt1W7uTkqBYyhfHCeT1Y384upkfXBUkXHCX5qzfFoo9Hoij7uVkbBSpWrftUm79xnV5XQwVKmfcmJHg2v5SGR5iCtAxf4yJkAXJGQ1eZ2td35ET8o4sK", + "finger_print": "04b502ea", + "chaincode": + "4adc3936b3200ef9d5279134b75eb9b35e808f7924c05f9affeba7ac8abddbd7", + "index": 4 + } + ] + }, + { + "public": + "xpub683odPswegdyrbf6ik9u6dMd9UErXxASL1mDErbcjvkuoW2kyzVzxsgaTQYLTZehET7m77iAYE5YZDxioXVx6RKvM5ATpuezTBkDSf4mB5g", + "private": + "xprv3QqcsvVykpUp1aixwG9ubMyeYcjnUpJ8MhtLVcbKhNkgQcqr9mKjDQkWdRdqhQwnui5Gh2t4oRmL29c7rrAWftJ5St4jvxuUyD39EoDqHxQHqbPyr4L8HgPGJ8ZfEfKo2dCFtfFSsJaNgXNimQccZ4p", + "finger_print": "15d4c6b6", + "chaincode": + "2c2d8c35a52100d267709bd806eb2e4cf39442cebe1e08dc6309d2bde5e4ceed", + "index": 2147483651, + "child": [ + { + "public": + "xpub6A2WPH5mF6JBkckqRRc4TJzPG3G9erFfHY4RZM2dz3vPpyiKHLbxPtr26vgDWdNxpFY6DjqQimeBovVXUkvrkvSv9aW9iF9Jbe5nCJ2KQ21", + "private": + "xprv3RRhAFWEHoy9S2LpBQM2aKDmBFQPF4Fj6BVnwiXtcFBZc4gT8xiHzP6AdiPst5XtL1QWdoMjy8MrpAnCVP9sfymQpL32MYK8bC6CsZiyU6LfsEKbLoWpFsy4cKUsYgHRdAKo2ts4e1GS2xnrycaEaqL", + "finger_print": "22e3e4c0", + "chaincode": + "eb9df9d9f90771416ae07efffde0ab583189c3fd976edce6d02fa402cb2a5ccb", + "index": 0 + }, + { + "public": + "xpub6C6CqdmGBVLN3TmkjA97oCdUM6dGSiNLgmgBPEmahaVK8DSGcGNMoHahndyUVjV2S4uXLb4XJFtBJ4TXofrNbQiZn2LjfA1gfcBgFqGhWFo", + "private": + "xprv3S3FVxPgY5RhuxzL7mLcCKJPVw9rZHLdEGwpQZpNq29mhq5VZ8QExCCACQtYLgRLDoY1Y2bo4xR4mAfQco5kLtKtos74PFXTkwS1dmowC581eCfBAVfN9d6QDAUHQ8mhKfiRZSuN9YZmQAjTaCjicGn", + "finger_print": "3baa6380", + "chaincode": + "192f1c61baf7d72df0dbc85937e6091ade2d10594482bff18f53be3ad00e5106", + "index": 1 + }, + { + "public": + "xpub6EcAQbNpRdx2gDmZ5EeoHpV2YKzsXQWs3q7BLMP3qRrznCUgq5ZS5Gr8YtQfTKZi3RqZG7bHEjigT2KZMqRdwknR7SpuEtPFUa7YC7K5zeK", + "private": + "xprv3SncJJRN7NBMh5ZDMGRLyJ2GaTcEMU7YRzi7YyGxxLUKh874e4QqS6ogGEzQN5vGvcXFKDHNbwbZydMij2X9Hebxo6sjZ1FvdCfHBMA5FSascqc622RCHJ3y3UD4ybxQhz2iMK5N1YH9G53v7YEtr37", + "finger_print": "920a65c2", + "chaincode": + "667793e4b836b7233745b922bc6c3f8723368455194166aa748be46f37476175", + "index": 2 + }, + { + "public": + "xpub6G4DxTCRbq6Tk6t1HcqroXh2YGTKrDJFngH5R3V4Zh7a8eqbxfhWd7dsUeJGUhYREeVaW1h33X3Zcwoeea4gUTLCbAaV1m5cEZjKbkojKKF", + "private": + "xprv3TDae4RP7NiJPaHvN9aBLGqQiz6KGWh7srJhUtnB5aLYKsTKo6P265K89Y96jKbi2M2mJDYxwmj746WaAq4upjPoQVAV3Ze5UrjLVishdewpFn9mEizHjHuiTbB4oWhBxEfEL7QAZix3SyG7ftYmGBA", + "finger_print": "5739407c", + "chaincode": + "2f91209eda00e2f852fa7c80dfa92801c777093a051cf5ab0fc58131718d10da", + "index": 3 + }, + { + "public": + "xpub6HNHw1RNvtk2epNB55iVKynrofyAwuGsAvk1xK9ykyLKuu594JDaKBtLYgmQiL26BULgsQmotBMx4TKKvSP4HhCyv4Y7NY7R4uwnXH6TwrN", + "private": + "xprv3TcBGcy9dcvz3662XGkwwPvgu9F5141L4Kyv4guHVZTAFX3mQMXA9SCJ69rXRgm8TuYRKkmWWGMuHV7E4ifcRicnyt7sQ9CraDWD2xcuWuBsPPzuzYrQyCURankCPzQb8C3ESwULQGCurEHnmUodS6q", + "finger_print": "09a88131", + "chaincode": + "d368bbc31706e5308b1374aa106648715c34eab4aa8e6c1db7f5fcd9bc2066f0", + "index": 4 + } + ] + }, + { + "public": + "xpub683odPswegdyu58E6ApzyAteQyEQGbgSrahT3DPuZLzsgBbpJiEUKfHcpKgpu4BYR4qkmoUviNb92pLY4M7jib4Uuo4DYtJZAoDDjk8s578", + "private": + "xprv3QqcsvVykpUp2KLrcnWUwoL8Z371WjQByGE6AJwYAMeGVLuZKJc2Xs53P3yYXijvK32uNcLZPNkVWGNEJ9LJXJGgJVx9bjdG8qaDaH3Lb7DFtANSatVhKnH6T5UUVQ3vLsqfxLUw34ujmKzQd5Ge91f", + "finger_print": "15d4c6b6", + "chaincode": + "24a0e1dd2166d7ce4fe46ccb70c0bf408d34bbd3351c94c73100ce75f5cec866", + "index": 2147483652, + "child": [ + { + "public": + "xpub69wFtvNzRbpAig7tSWjmkfovhDUFe4nb36nJFA9gJ6frK2W81UKsgpbuQfj1f21pCHD4bvVbiWC4TCC5y7urRVnyd5Pu3Joghccmytp9quM", + "private": + "xprv3RQ8i2dzBpR9qHn5oFoBpncT783RCW5p6NyMwqr2f5kp1T83Jq4u9AGvwMs1ywRU2XNcpDgxb5MdHWWCeyiJ2LRBvSUXjbzAEdiFVRQ88aSrXT8TPBzWEM5Ri3LzfgZ4c8CRJ5jtvgDTkvLE2uM6JsK", + "finger_print": "1693606d", + "chaincode": + "79fefcb1c6319369eadd63d3d94ce3d02a4d9fad49d0caec908c9a207e57558c", + "index": 0 + }, + { + "public": + "xpub6D7ezVgHfdugypdGU6Q5xj9gKQwqTCvgN3CCANfecQvzjBvGDBHA6VviGuwtFcAB13iPRbAHBZZjmVJnjznz9DvyiaoTrmfkYqM9wPCLAnU", + "private": + "xprv3SLupFA95Sw6Pfufbe3nR5ysb8fWeFDhptULDWd9c1oSJR45yABvxKzb2yoFHA6884xVqkYNvRfoC1qeMDYB44knaLSh8AfJhftezTxxXbbShkKbpZu82VDmM531bEEauaEWoGc32gvPCXTU5LmKB4a", + "finger_print": "c71ebc55", + "chaincode": + "68f4a8b586f3af172a763c00e201479cd868f0e8802b39af1e0f9e7c85ba921a", + "index": 1 + }, + { + "public": + "xpub6EbUtEQWt4MKVaUE6yn1C22eHjphZNPdEosLvtZMqkaAa5k1CmCEEhSiw5LGUFxE97eganU98YVaVQLyn6E2LaCMU5FfNvNtDgt7tngaqVG", + "private": + "xprv3SnQZKx6EH2q6xLJdG23mm6kTxdNfScoeWn7yT6h36pvbC3Vvgtsr171tYYhnkcGKUtEQxj1PRGL5LnVzDgrHuZE8MiYq4QNv4zfAhLDNMjfE4fp1GjqQJvLcfwidDEJmAktMS5DKjsfXfzdqXmADSq", + "finger_print": "9071313f", + "chaincode": + "7a9f7318302ca0be3e32a51bbe6dd725915ce436e63cb81d4a1c18167c9cdd5d", + "index": 2 + }, + { + "public": + "xpub6G3myTnugVeYUT6ATZBGF3HYLhHGtpeEbYi8ErgmbYr5eceA2tzJufbMDeCGfm3id3sghQXiG3UTkpBCudKzPFs7XiBEvtMzHPZTgWxu3Mc", + "private": + "xprv3TDSvPbJiwoELVQKiECDKxesuVtjhFYvCnHzpXstFkrjDaWp7WJecvRTsMbe5jUWtH9SudsVc2LZFVA79BJ1fudjuJRQiAiR9VHKN42HZDDJ9zBL5PtaCerkp9h7KskNRRhV5paB1j9MmWY7PLhCNu6", + "finger_print": "562c3df4", + "chaincode": + "6cc968039258519296b1be3c296991fc4c275a2524b32a509b09d21950dfb92e", + "index": 3 + }, + { + "public": + "xpub6Hv2Y36USMxsJxohWAAe6LJ6rC6GFviMBYmMHEaJD1y8iy1d6VNxR1ZtnynnQPa2Rrcj4hBZu1YhwBFwKszNncND3pWWSRqCrd4NSShRJTF", + "private": + "xprv3Tmc3VJ2p3zJM8e6rva6nZKR5YWZa5NBzhhEpaBmyfGQYR7LeEu52UFJpoP4T9F6bz8c4hK9ptcKRTzigAL5cxbKNwBz4RbEYa7KZdwsBHGoaDVzUGSPXifQftiQQLnKzR8xksXh15CLLFiBJS8wnUf", + "finger_print": "5419248e", + "chaincode": + "292d8448f14b35374ff2905923fd6944c0c68829236881e5eaca3761d617cc09", + "index": 4 + } + ] + } + ] + }, + { + "seed": "518d0c30ec82a5a58f1006a32b7d97ab2b9d7f676b81b6d0ba3b2906722f229c", + "public": + "xpub661MyMwAqRbcFEwJugTnvJWAWpJs7yd7a78dn5QfnYZUmJp7wHL8o3rAAcNmmUxJTZ7bjVgBB3m6CoDx5R9fFMEQRLjZvhkVCJNPTFP4kuJ", + "private": + "xprv3QESAWYc9vDdZUT5izf3xc4TNdy5WExy7zMUzjtsYPv1uPZmYhBLZy3maVM4Zvj8gR45aQgyZC3zUNh1esoeAZ9pWv83v4jZRpdEKsBbwdvJcxLHYXqLULLovf5VeQidMiPDNGhyNggkGi3y1K72ZBp", + "finger_print": "00000000", + "chaincode": + "46241f36031fbe889a139450cefd9a3ee3afcfce2db5e9e913e71fa11d987e64", + "index": 0, + "child": [ + { + "public": + "xpub69Fxve3bGoZBgnP4eEdjTzd3T61KURnX6VCnzHu41KMuMAnJyF5YfK4sWketfV1Hnk6JF6M2spbXgEiksiwjtrqhRdXFaZRwUxbKzdbHttM", + "private": + "xprv3RCTiHQXREyNaBzVPPdJBqenZ11W5wkdMasFN6DkqeBS61ED9ac4LcB8hGxUS61iDqxJiQ4rtqPr6HPDJeWYQYHHMb16bPPSrJQZ7rit5tDQUPeKAhEvErvDrdTpruxhu6N7e1yo7deE4TKUATmzcEk", + "finger_print": "ba681ff1", + "chaincode": + "58d2722fe4bd1172ce91bbe73a95f8274c8da78a54cc3a548485ad797cf4b1fd", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BCsrbjmz179Uq2HHdNyYvjQmq3ueAg1aQazt82W6zPQoBX8N5z5BnQhF4mzVE7bGC1vNCwS1sq4QLjWvyQnWS95s1oFBjQWY3gzfbMK7DF", + "private": + "xprv3Rn19j6k1MCHAp97wqdwb7tzmJKGUjzfXLaEV9AVAheemahtV7nY7N1vvbrZZPuQVtFpn8SYJDKCoYNj2MwVoLTqxxoFmHeJnZpfmNBptwbXJ78XWF7AAF54s38Dx9U6xmAeXbH3v5KPu4wuuDAQEKR", + "finger_print": "c34447b5", + "chaincode": + "1e584984bf56515a4d80da4e1400baa04ffaba5f7c93d9ff591a731835e70265", + "index": 0 + }, + { + "public": + "xpub6DAo8v5tip9QkQcMTUrfqqkCtpkm19mYjiLewJei4JwymMizLuDBQNLpmaqBbmih1WfGrziLcFP9sbdvhT8ihJKmZ7FhLHd7khkttfVgGh8", + "private": + "xprv3SMqvXteg9Jvusz5NrLYsrTBHS9M7Cci3SLVY37xumBmgjxgXvUvHmXvgm7Z8F2YLQY14UwEsTwrzMrr7QVTJnrGT86NvwwpLDitDSXwMUWyyxHgPZiLuUQZyLvqAS8qf7BaKRSp1W1YUfWPdLju9gT", + "finger_print": "ce7c9208", + "chaincode": + "11016697f64bbbadaeac8c4095f33fbb3ab6552882a6de4b6f8988d07a941dbd", + "index": 1 + }, + { + "public": + "xpub6FPC19nB7EYTetHmRmGubPGcMbSHnXhbMBgGbCssDT7oASngpiukrTVxPEURxKbeeQfVbon86JHqUdYCNDjkzvzJudQLamMbgCQLg2GxPjy", + "private": + "xprv3T1z73r8GMihadrqMZPrC6rrBmNUrZs2Y8rRCR3vQYk7A6xGyQDtFmvnWxYT3MhEdimfxAxWce3QtwZUBXeiw3TSxEtmbBQvqvbv1H7wpq87NF4EJvXnMy6dZAK3mF3JByft6epigFSZ3CaxiT5nQni", + "finger_print": "fba97a2c", + "chaincode": + "b5a188b61c112535ee4de9720818759a21e07207809b20784b3d161757d42b80", + "index": 2 + }, + { + "public": + "xpub6GCjJm9dQAarBcs4yGoA6VewQJ4YBQpdU5cWdRw8t3bWbu4kUjcPtG5XzL8efbfapPUMq5iNWTWc7GTsRQ8r5DM695RCD3WHZcuF15CpT47", + "private": + "xprv3TG7CHVjkCkEaKEjKMMb8pXuXi8rKFrzmGAxoWRRAUv5xxuTQExoTdesq97MJxKc9Ez2QNckPmxzxqfLfKvSpjoEVrdnk7XYG9EkamM7Bfd5dbBuhuzJvVHA9aWCsFCVtFU76J2GupBSB3TGgTmTjVg", + "finger_print": "6b2d235c", + "chaincode": + "4c8db07325af2f987d96f15b5f4394dfaf651731ee8ef55b6111a4a640d540c7", + "index": 3 + }, + { + "public": + "xpub6JJPXjUg5q2g74kACSq6jyEBcRifbqrf2xWUVpfy3CFMAkAHhrpJ5Z5XceqmYjcH4HPfdqAPTvhNmvjvuT8tSPo34oSTSPApEjbzRnHj1QD", + "private": + "xprv3TtFLBsCQ7DDCLoYodfeobKTJaTDpMpfXPQjKYPGAyeC23crfzRstZvV6mvihjdsJQtbgFSdVM1a4k7pkqQbBHc8Sp9vsPrnVPaYPVBuzwNWB6JX8ioc434N9vNUgNioDfp4QPwasxZkL4MSfBU9YVV", + "finger_print": "888d8a19", + "chaincode": + "7d4e13544af0fdd2881b8342a373faab78da6a12e273a312edd94700331fcf3f", + "index": 4 + } + ] + }, + { + "public": + "xpub69Fxve3bGoZBjsDbFA3z7qfY5ayUnHZuP7b6ggWMdtTECwpog8jKaPEJnijuxJQofDiBCxGAuiMJtAJ77k3exguqeW9MLz9p4HjnRr6uZSg", + "private": + "xprv3RCTiHQXREyNb77mspwnzwqUCu8zLZ27ovBdZoKNET6ze8QKthXTZ4h7Cn59XdWFbwMCTPHyJAvurWSzMM17D3vbpFV4mEcrxDTqn2smmbkZk8hfXAD8Mx6ebuL5Npqh63rF8xgN6jBxdmwWy51AvRk", + "finger_print": "ba681ff1", + "chaincode": + "8e85dba876dcbac5c9eb4b685c206d56bde11b9faffa18c9e83e6aeec45e519a", + "index": 2147483649, + "child": [ + { + "public": + "xpub6ANZVWcfL5wsA7B13Quc6FfEuxq2gwaozJGKKBhLiRg8T564tPVUVZpXekB2QMNZDDRyrsfpr6HTXqVjrUKMHDonsxSSfvE8xzAuCRJchqj", + "private": + "xprv3RXeg8GLFw3JLorFzQA5yLyb6jR7FCZNYjaDP8UHKNS4DpYCaGP2xAuzVzB3cwvFgkxUpNv1fbgiPom3rduEPreqUDHwN4FFejF6hbisRbt1QLJ8tQtLyhyCaJ17qazc7ian6H2TtrUzGM4ziEon8K6", + "finger_print": "51ee1795", + "chaincode": + "05ffc6ddf752deacabda49f4079dfc1711fc59442f754594136f4b56c693a6a8", + "index": 0 + }, + { + "public": + "xpub6DG9hoYwTmXEW3zvsxsifAavrSe3YBap6ppPsiAKecNNafGGAFQMYQKbZ7rjijX7GcmVjB2TEanbhN8VG1uvJYrAw6CBViaS38Dx9c82vbf", + "private": + "xprv3SPSBUiRaEdjr2MZKwLgH5nmYCxARTVuR4k36rJ1p8xTNJMuFmdNaxDQaxjhuryiFapi7rxgrFrw7iqg9dxM7sLQiQkhecPQeMwmyhiJXACWgJi8Hy2QzXiSHYEKmg6sLqPfH31KKovU1c5LRBqupbs", + "finger_print": "db0c0451", + "chaincode": + "4310e320215cf3d10f63ea7d7e74f8ef05d966e040581a4facf5476044158b30", + "index": 1 + }, + { + "public": + "xpub6F5eHnt32sXAsocy65wNpsqJXQB9o7tb85wZQkt3vzzunzCMRfgMmFwJVa4LzBQp1BmL8Rcb8Cd3ukGDRB3XFrCQgKre3TyCn8x4yUNo1K5", + "private": + "xprv3SvmnG78bkymCYBMrohUWhJrVvRcifBf2PfrMbYPUHKozkEXYLsQ47iyh85tNqfx9UpJepWHHynMw2nZMEnvwMJh5nAdkxFXwVrr5uD4o6SkKSXpMb24yU75XqP25c7wqN4H4eeWveCLA9X62Hfxm94", + "finger_print": "d2809d68", + "chaincode": + "da9527d851fc98fc3f64953fc7e20d2df3b46fd5e8ce40013f4e26d1aad7ee28", + "index": 2 + }, + { + "public": + "xpub6GGXkcSmLnr2j3kc5BGgQdeSG22Skisa67R96aPpsJpxvdm4nWqmEVTTprKwKVYyXNNhtKe21qaToj89r5xLq2bn8aDwtweVdW8mqBQWQfX", + "private": + "xprv3THEgUZXzXrZwmi1oDLLnqmCpraKGKUBE8yASfAsY46F9Mio1A9HCiA54M94mXuBPddZQpceWff2o7jJUvEae6DXBCP4DYCtmamka95aKyugMYpmY3Ypiz3rkqKLpysJu21P9GVds7j6n6hRuyWGMfV", + "finger_print": "74178418", + "chaincode": + "d2a701da3a2b34601d69f8b2dfd0005eb2398bfef39cdaa7c5ad43dff4e4ef1e", + "index": 3 + }, + { + "public": + "xpub6Jew7PtsCafpac3Ns9cyQo2NCTdcTfcC4zVhAnDsDd5AHh8DyisYbrLrQd51ZVqDPCs7vAVqinfnf7dyiXuzCNDBpyepq5q6ekGaHDgwjuE", + "private": + "xprv3TzMJe5yeC8GMvF6xJWNa1YBYGqf8FRaZ9Ph9pMucNuzdnU5WCnjGkpu5dwJCDMDYKUeeWJ5S3BZWr5X6d63wdCktxssmxr66Gxy61DyWrFdwpKWDhPGbXaEJGTeZyn7ERWi4YURLg7pDLZ8RSRFstd", + "finger_print": "b8be880f", + "chaincode": + "aae4f877c1373971285f345ba20eb940763f2770061d194d5988a503984461e5", + "index": 4 + } + ] + }, + { + "public": + "xpub69Fxve3bGoZBoKCy7CGSYanzbMRDhZ1Z4h9o87kGYKMQEQepoGv2xukR51Mdm9CCzpvUvNv2e7zNWy6wLS6v5fk2WE4CK1KUYafTyqB6qCm", + "private": + "xprv3RCTiHQXREyNc8XWVKdqkRFAB9b9GtC7fwzsoEHE3Xo9FbeCRcFJcyNwNeW6FJb8uxcJoxcdT7JxBWfpUxhmTqzv4AuFWcqGphYwYBjvS7hzjQaEMQjgqednLBLh9E7ZU2hYUaSWxWaFbhYidMZNXyB", + "finger_print": "ba681ff1", + "chaincode": + "e8dacf8e08e0c8b3830ace685a806d61f16f62fedc1e7fab1dbff202beb6ce06", + "index": 2147483650, + "child": [ + { + "public": + "xpub6BEXKfz6SNsxBmKqo9qsh3q8qm9sGmDEhJAPS5mCTucPvUbp4kY1oApCxxzp4NxcBJEAGsybPF4eyNbpf5pyZ73CGptqKy7hZfQBFKf2uwu", + "private": + "xprv3RnVWaeg8aDi3ChRCHwdeu37S9fJzfxcnJoR5TtYgB9ThK8YMogjQ2nX3xYfgisrC1K2AhCAwTLeAVQqv1FYNqXMxafQ6r2giRe9oW8i52QbHvCVSa4Q3nmdUGgqAJ3gbAi7uZmCq5NAspNWVjEaZCi", + "finger_print": "c720b14c", + "chaincode": + "88ca0bdda9f98b7729c88a5f020adf79ef84bb182d294fb6f56cfa2f004edffa", + "index": 0 + }, + { + "public": + "xpub6DBvi9VTefHCAzXKkgBGHsJVMWXjYPD9dAYs8F613dqSuatdrHH4115XEuearYEho2R6d3Jz3oLKBsRefmSSgThCuAYFSfpiU2RmVfxV8QL", + "private": + "xprv3SNBQL3BMF5cNoCzPJfLqseURuqZei2EWzYxLE39qX9hYS1xuE4RVueKPYf3VAdXTF7RDqTEGBZH3H1GfVLtNPYmSJkJndXT63ofgfuG7YVAF7ZQEgQzDL3eKKDgBRWZRty181ez82oR51K9Rs8tpwg", + "finger_print": "d1237a60", + "chaincode": + "4f23039745de70ac678db21d6570813e9342940ae2cafa5d75c072a19dedc78c", + "index": 1 + }, + { + "public": + "xpub6DZemZjywSThejoRydJNwRknhK8iPi2eLirATG2hzZJSco1mbvvHYTSACZg47bKKmFzodtfrMFJzHw5tpg55GUvLeiRGY8M9Xm8TyriTLjs", + "private": + "xprv3SUdie1wgrKFivN9Qq2CvecttQtQNLcHgCNwfX6yvpSmqL4sqNEPycprRdJKbkftMEUMFi9KuFeyPXJYiu5var3BPqdDH1ZATuDJwmPjRvQ89Jd3sc7kcEMNA6emZ4vtrSh9UHBugjnV5aoaG8oKh1m", + "finger_print": "041975ee", + "chaincode": + "dffb39fd0384c59e522af53ca6a1b16e2250146bdaff1a0874c97a87e62260c6", + "index": 2 + }, + { + "public": + "xpub6G3gDsYw6wc6Qb3hbfgtki4i3JKQZ4HcnjKWkwed1GUzFS6NBn2qKuBWGgxZkyz8Y5kg7abDkkaHH2W4nizASLqwTV7dvk7WeeVqHeCU2NR", + "private": + "xprv3TDRDHxsk7bMPnMQx5eBuUpJfR1TSoENspnnhNmHzNxTRkLCvAT5A2gs2gmyvwzKzHsYn876ebsPSaiv9toQjPW5Wh8QrsnQQvrfFqxWv4AHBUrbJPzythuTwba3UPdwVfkU3JcVDGVci588vAKCSUf", + "finger_print": "55f0b184", + "chaincode": + "d54442c5e47c4d305f1ec9d7533659fb7568bcb41dc590b4e50ff8068fc953a3", + "index": 3 + }, + { + "public": + "xpub6JAJ1zNN6ib1P3BsaCP1XrzrVhhsaBvGdDarddFxnaAghS5LUDo4AciiB7H2CrdHp61MVYmFXwzESpn5hK3ZKJMtU7bNmcifsczGtoozgGa", + "private": + "xprv3TqqrfrSX3pogpja4jDWHdreqHTYY57a6uLNf2FYQCqF1hp54ypWXyqc7WccPFew2YqUgjENxiJvqHydxNCbCz9k944MvJoqbBgbAyYym53PkojfifTob2dibbHo8JzhURLm6QWmg6skuo4xGZ9LhUu", + "finger_print": "759073d7", + "chaincode": + "5539e4558060a1800f04ea58670f2dc10b5d9ae0bcd636764a086aff9152a2f3", + "index": 4 + } + ] + }, + { + "public": + "xpub69Fxve3bGoZBqDyvkdjGeZyvv1RUbFx2eF6LBbdtX5rW2mwrzx2tR9ZTMKjijx4Yh8Sej7RXx5t9cnCXUdjFtSgdxSBtdXo4fBBmYhyWn58", + "private": + "xprv3RCTiHQXREyNchS7xn2GLXtRhDSgHSm4fJPduVuzNqVtuDm6eUFHkQBCFx1v9W4LZ3DAiMh2YmaJXHqUYoQDRjkLjBNQzaVDB9EhDxZSJ8Ap4UL354w6e25JA6C4ZCGsjGdSaeBwPcpmVHUFqXJcWZn", + "finger_print": "ba681ff1", + "chaincode": + "a8b09b092e0510938e8516ff816f95952fc9e231d78ae34b7fa49b1cead692af", + "index": 2147483651, + "child": [ + { + "public": + "xpub6BPgqZ7EWBmCxm768AgKfyti3p7aSXMCMWi1UQZqYupTyUYwDkndYKoqgxYyuKWNqP8u3mJYhGCz6MT3EAwmoYZLRbGt8AT4NHxsss4JGTU", + "private": + "xprv3RqDQNgVbvKTcj889o1jgidNVGHTJ3QMsWVKYLGqnFhvUVKaGMFCF85a2kXDSZYGBxzcm9AgSXx4RWpZY4Xr5Uuv5SxZHynFqEKdkhQqeFAKjaGvmNTuw4m8Z764uVwswpjBQM4Br9z1YveRfsheBEZ", + "finger_print": "dc9fb826", + "chaincode": + "70199e92e367e0919f15d53041abffa6e50fe7c54cdd1345afa4a95034edb187", + "index": 0 + }, + { + "public": + "xpub6C2boZzHUD7h9bhZo4eNiqL6NkRgnc18PmRxMxoZbuUUTgDNN1PgozQSStutfARGchyTaJvbiaDNMAV8Cwej19x7DV68jyADM2PzMRLXJAB", + "private": + "xprv3S2BQMcYA3ySTFZDmNZnoTqvqsi7qRNAZX8bn4hjtjRx3JE7E68P5qJCJ1zAebho5rjo75VfWeAxctnt7xYu1ndJDYJWECPnPzCMTuhHZKkKYiEriPZ2PnMgh2ojKC59qehKdajqa4dHkDULNae3ZEB", + "finger_print": "3336250f", + "chaincode": + "b41da50ac8d2032a2ae4a91d67339d46e4fce2499a21de1c38dc55605632b8a9", + "index": 1 + }, + { + "public": + "xpub6Duw3ZT54PzATfkDWJXg4BqvhVkfa6aY29QRSD8cD6zfWbYzz8bYACqP4FmhvFpLCGoHMNB7y9oK5LFuav9SFe3VXVjsHCYhYzHJ8MHpHFu", + "private": + "xprv3Saf9Q5qxH7kY4pavUjpLZGnZyk4TicoUWF5e1xscJiHhftn8Ms7nzpbBrUcmyyBiyNtPbtNVHySRKSt8y52z3eroEViP5ktG4V93CFYvifkih9e3XUkr1Q8C2XZvfYx5h7eZ9xmb9ip23XbMcwRxMj", + "finger_print": "33abff33", + "chaincode": + "c4e5ca56b04ae3f6651229aa8f4f4eadcb51c28982e737ad8ab314040430c511", + "index": 2 + }, + { + "public": + "xpub6FkTcehHotWavC4Pj82DxcS49QLtLp3h6oCBJcobphoF3nXDhx6kC2Kas2HgAcVGmi5Z3poX5kwAvwDfP1cCAmN4UHA1fbrGfd4j8r3ebXu", + "private": + "xprv3T8JZh1QGy78sSrhjm64AU48TeQcbK8wyPy3XtSHhhtWzV2tjjSwFSUggRKEuCn55btpVsfrJbLbmMjDfXQFb3C7bt36utUMnbJ3DdrCCdTqUtBkjbDZYHUYHJ7q4bYben5uysFAbnFhjLvkGgW9Lm9", + "finger_print": "2d8da48e", + "chaincode": + "1f9ef83cc2c9ea1601216f84c7e7634b3eeefb3f2fb4b9dd561484d8955b83fb", + "index": 3 + }, + { + "public": + "xpub6K2d6rso5DfuP6CA7xmSMy5jHaNWtKXKaKgXns7M12RrHyA7hc4KgRFBwKA86sXhE1nu6P1SnskKHQg232KncvB8seQsQSmk48KJ1xFGgwj", + "private": + "xprv3U6o1KKnncvVDFuRcmpxDqt8nkgTutj1rPJshhAuaSXq874PxyBkR9Nr8TWm28sj6Xga41fbkAP7GmAgU9YKeYj5ciye3Rafk2cKGv4zUvzV7LEyGtCbyi5TVzZhwXqGoDuiDz8VJwKcfXsozE1FBEE", + "finger_print": "eb9f19ff", + "chaincode": + "227a45ab37952d91350ad21883c8f22a8628118ee574c9053d22727eab8af1b0", + "index": 4 + } + ] + }, + { + "public": + "xpub69Fxve3bGoZBro8hNxJ7FsE5gyeGUtXgtQP7wMewUJjihoL9naDFXKtgUxY5f8567kb3FfK18t8bemdGwr2UR3k7QhyP2UDyykhbc5omRVn", + "private": + "xprv3RCTiHQXREyNdAWcsvscj2ZbUinP5TnsLwgRTpdwZiWChm21Zb9p3axkhgHD6H2k2GVUDDkznSWrTWTT5kiHeMLetKd3uG1crenTUpZ7zSa98mYppfuCS7TAwwZRnqyrsHVD7oxKkUE2i8CYshrzXUR", + "finger_print": "ba681ff1", + "chaincode": + "468a892ecb1eb4574f8a090579a348407f477adea60349adab3118fa473511cb", + "index": 2147483652, + "child": [ + { + "public": + "xpub6B4sQ4Y6hQj8cVafE2jykYrKxatqbGJyaVLvVAyXod3rTkcXxJogqCjLn2T7ahG3VX1EvRcxKZFJn2e76Fb8DgawPJ5J1GRrmZNXKrkPqsX", + "private": + "xprv3RjdBJtx3aBbrBLDTDo2Jtxso2L75k2ctgJuDFSDzYsTMTCY4hASUY3PZunQt4Lnp5TZM2ZcQrxPdnvpcwzKDbyPd4y8xvfzrz6CMFFxKNYGvb1XuErvGBGrhCUiZV24LKgELHHb8puCLUXbvU8QyRf", + "finger_print": "b07b885e", + "chaincode": + "d163e01600cabebaa5a47a742f8d00fecfc9eda4a520963ef58762493184ae37", + "index": 0 + }, + { + "public": + "xpub6DQ8TcaVb5jV7QVBfMJv94h6E5XCFfe5yuwXigy5deGSUzJFAz2Z2hJWo8NQzWDmvnphAk1wGBW43aEA8Q35ZPxeKvJ87HaHEmmkZfZwcZT", + "private": + "xprv3SRoeZtXVGhdppVBGhXGXQb8szKqEFWAuBf7WEoYhrXV1tpuU4KokQer4hfesYxn57UJHs5aRjs6DQy43C2HD2pQCBvBH7V2fSzNEzjqkvEq83AZEx6Ji72dFnLPcURtaoTgxfbcxLZEEjbFUEdvCzk", + "finger_print": "edc32404", + "chaincode": + "3cf7ef34f6073aa0ad16aeefa3ffd87a034a26f200cd8a7706b174bf02d2471c", + "index": 1 + }, + { + "public": + "xpub6FFRkxJS7n9ptMnS4QQygFcjRcg3o4kvcbsqxoecUPdzaDPT5Qdu1nyyeM2dfvPA8EUdq86ZRfn6X8oRV8Dv9FHm4sBuCJEDtLw5k7WX42V", + "private": + "xprv3SygMWh9G6hqAsHQ1Utm6KQumRTVZqy2La9ULNtSMLRGJEH7vzUBoz8kwjbShYpEFKRb1H26QuNiULMKJrbf7zpx2zfeunewKqYZJiKVHeW9rrb72XNNmbCGyCmeaLmAgZKstLECfmwrpT9KMfXQnAP", + "finger_print": "e973e196", + "chaincode": + "9bc55f741d0a817a33c2006cf0b6704d75a6307fd7b753c06e4299a90743bdcc", + "index": 2 + }, + { + "public": + "xpub6HHpeFvr1AXwNpLCmCSc9XpBQrFJAjHMwbevvngiEZbi4ZRpK17Ae4Rhr8i7BPqmccy6ZgzNHaq5RmpW9VjK1vFY657s9YLQqCnDWrU8ui8", + "private": + "xprv3TarFBLjuigdF5VWT1nyoq3h9hcVcWoqHNAHdUZnW75KXx97niuVXXktk9Te8xJXVaDtg6K63enGT9CMUibWvwLBMapMbWw31tB94YAamjNFG1eiwHPoj4H6QshXCEryKMLLzZTvQH5KcLxTCpiScF3", + "finger_print": "ff2bf744", + "chaincode": + "ddedd61b3f5826f80af6b2adee3f908bdc80d079bba1c1064dc4d32c086e73fc", + "index": 3 + }, + { + "public": + "xpub6K35JQcbJsNJcFa1VogpodEfYgiuYh3Pt7ZnsAikLKZHA6b6sor89YNKCJQ9F8xqtgf24QuyZ35zaexSRrwu3CatvJ1neQK1J3ikC4Exk66", + "private": + "xprv3U6vniWjxzrKLhUw14dAPoBCQfsTxzyxqGCNBQ7scFYsHdoe7VZfAZB1GtXnA1G17UqkeibVQSwyg1n9J8B7fy4ZCQb5m4sL4aJVXPpXe9bzuDW6uRQLXEPvH25dv8nJoVexxuntYfBSrVedUcBXQW3", + "finger_print": "ecae5a61", + "chaincode": + "3bf02a64732d2589324e588de124820d4114bb8e95957acb9425641e301db9a1", + "index": 4 + } + ] + } + ] + }, + { + "seed": "0cccb71dae334031be56a0e77e020b50acf8679639fdc8be8b948b87cceaf91a", + "public": + "xpub661MyMwAqRbcExAQH7t6vaLzmRU5TnwwqX2NtSWrxJbxb971FzxGDHKncYgvpRm7bwt5HnDhBJTBgiJjppzC7uihKtpmrTNSFfiutxVizjD", + "private": + "xprv3QESAWYc9vDdZPU4vKzZUdQ1nRp75pv7iJj7skf1Y1xh9jmSksJZZ6fKZwLt3G81hBvzJaV3iF4TqQRD9wUsQf7qQ3qPbJ9xdMQKXCNS2VxT6ebjajgzGcXNDdEZMysfdmBscZWmPDKpgYyeoDLroWG", + "finger_print": "00000000", + "chaincode": + "29179c4b6040f23e7031e3a1ca9d5a7dcb6d30cea3e90d6d31c90c1a4a1be7c7", + "index": 0, + "child": [ + { + "public": + "xpub69gcGqHYHTyWmuMTjSq8eCT2b7wKtE5euuENhSjdBu8nay16f7Sfnp8VDE3zrDEYuyjokW5qrBsGatbJvW8s7Psmk7wFH63df4Ljipx1KsH", + "private": + "xprv3RKnKNx9wR587qXqdNgEcmvcUZcQeq6RvCLv1xcgXoXnAM9ksrXUo8CrWJ4z9p4zCKZpBUV6Ez3t7xTv3T3aEi19mgAGhb6Tk61G68mgjGJVPDpYyDftHKWU4yG9QcfB4C64jnSLJcEtjTfYCzM7m25", + "finger_print": "f436d6a6", + "chaincode": + "10c54ba6edba5c6ffef738fc647a3169ce45bf1f433a8d63c1aaf0735829c99a", + "index": 2147483648, + "child": [ + { + "public": + "xpub6B23uPd2LTGvwusYMcmsxiANXHwryf4WKKCZrehgXWnfcvaVv63Y66NyLZv1ECaV1EQaMTU6JND12woGNZ5tHQ24CsF9YhiKs7kviD1Xb9D", + "private": + "xprv3RincNHBG5jG1vuoxoy2yW1UgmKrqUQN4GVbo5RsAejAbCWrs9h2xrbQYwpMkgn6EaGnFKaYTjCaZf11BLNG8yZh1hJJrn3QqyukYkymk1QSFStZoPvT2Q5jk5W5a2vaJyLXzhUPgdsq77DNpfCCrRQ", + "finger_print": "a9decc8e", + "chaincode": + "24f4b1568b052e7a4cad9d4acb8b0157b3452f97edb8abe43ce05feb090ff55d", + "index": 0 + }, + { + "public": + "xpub6CV6FaPgvHPRfTdvjdMGbXSboem9AFdx13F65GfGF1cpfnqPgQYSYJqTK7PJH88WSF22Rp6Cm7rbLTyHSaC5gCX9d9Zr7GkpDFfDJeGRKt5", + "private": + "xprv3SA3pkD1SuBC3UM6NpmH5eBLdmdPvDWaNtaQvbEkoXmwhqoJjV7tz9qwLduT5c5yJb62Dhzth2FUAYTejQ2fij3vu2r4a1EAPorj8TPBAdoxDyHn6oUE5qHjUxhpPiqqVx3tC6uV7CgUDgWmnfDkBvF", + "finger_print": "7159b7ac", + "chaincode": + "9fc8757c98f9f7e9947ad1fa7469f46565c179296e7f319ca80994dc67125b9c", + "index": 1 + }, + { + "public": + "xpub6ET32Ry9kKBpdy114NzkYPai4kZgRbCvMPGJv6uPbqRuhTG81aKNo7W44XFAty4TZmn7vJctZ4FmLAsQVS8ZE3QjeTjygbyKMhPoDYz35eA", + "private": + "xprv3Sju3G2Em8cFubH7SQGYmcjLUmjTMbpDW3fzPrkFdZRGUvP1qKBLJymHp6AjRqqW6GqJyTaVSWDnJJ8rLtNnfydQidoRqzTpwYZhkyrbA3ZZLXKjyr3DZ2AGnqQrr4VXWTbhNcokabUdduwBJWebJ7U", + "finger_print": "7ca174a3", + "chaincode": + "754f579bd6bbd3d4a55361cc8fd4d98aa7ba30559bfe68670249d0cdbe7a059b", + "index": 2 + }, + { + "public": + "xpub6GPQkUUUXCDo9qpxXEPMxMaFkGhmzPaFpewNUVLNb8bffdgJNn3TrB74kLUGcjbPRjVaiSq71Gv8gVSvcKpmwxzwrTRQ6QMMoiCmiuzLSwd", + "private": + "xprv3TKHD3a5y8RDrWDVES6ayM4ZE5Xoh5g6aKnEqc57oXgjAyxQz9N1QUVqw784a9JeHoE2d6oUtgEeD5hZp2BigZDR9ZBmZD51JdihsYhuNHfcvi38fPRPQR39FignTZGkFzWafu68LNvmm7bfT9W6Qvx", + "finger_print": "843a86ad", + "chaincode": + "c489dcf540510a60c426e316ccd88ca14049018058284555e1321130434a1f71", + "index": 3 + }, + { + "public": + "xpub6K3U6r1RHVdZj1Q1Lzozfw3yQhSexvHGhMuKYhovCqHAURFVm282CAqLEF81beewVa4BtB3BJR5BZkpciJEXmDAioFxYfAHP7MUq36zmQvP", + "private": + "xprv3U73ZZazA2kgyD18SS54UWMt7AwoRYfHviQxZKyq6U5YyxznfGkoipMLhovD22oc7MsXbYEWaHbxEL8Axx7Hhq1DXttLDdf4ipyLkP9anS1BYiboDzGVADwPtpEc1vKqYXRnYFLgTDGjWrVi5AC6qjz", + "finger_print": "ed9a6b3e", + "chaincode": + "8d1b1bb1e90fb93c280438bbf6db1caaf7823b2591d4abe22c88929a55e6d126", + "index": 4 + } + ] + }, + { + "public": + "xpub69gcGqHYHTyWpefG1rnc8g9sjzbBnxYVvf64k4Q5QD4LWrEUXzR9zdxAEejQzwrSeC5AULwAg5UczTod5kmjRy6Dhvn8CaCVXgiZPr3bhvM", + "private": + "xprv3RKnKNx9wR588erde8FyPmZtS4JwBGT6RPC9vmWvryvSsPut2YikSdHw296whncbuA8YyTxHG2jJGoxDQ1m5UvxxhoZdWA3z4LCPxbLPcCi7y1Vfz1jZRc4xzYUo7Dw5GRfKdnDRovnJE3PRe4uJGc2", + "finger_print": "f436d6a6", + "chaincode": + "24a694620aaa66457023da06651804acd4708517fb9557561bb1395e1823d826", + "index": 2147483649, + "child": [ + { + "public": + "xpub6ADCkL5Uru8mpirBrrdbjVLAtTNKjGfF2KmdpNfQDALCys5NDM1ou4jaz4JGFYde2CyV5FYjQD8FV7gsbRCosjoE5aNwoVFuJguFnbrZKDX", + "private": + "xprv3RUsSrbGu9f1kzqwbEmsQGUMc1kEBc9vEMo6Z8cwHNRoUM68FYHejhsznuw7iQmkCdcA4umFmJYgk6tW2MDyHg3NbLch9dSbnLrHzzUm2Jo7suiA2eVJL8i4qXYkkToFnrMJvaKuHq4q7Ls94GsjsHm", + "finger_print": "3bfacd90", + "chaincode": + "6f4d74e2062c456eb0519ad8fb21e52fbc9a7a4b158bfe243bf993a93a9147f3", + "index": 0 + }, + { + "public": + "xpub6CSTtgBzYkrncJq6s6Ewu56qssHA3oA2Dd2cBe4bCC88kgv5DKGyJeczAJ7sXCDE5Dpz6Qq85DQy6irEsC621eX9U7ifvF7eekkouFsof2E", + "private": + "xprv3S9GZdxvbjh2Zvmc5gsFzhbS5m9iVyMSDkBeF9WTHTDaFdKRnzZPzXiEY8qCHdqemsgss6pYf5HMgrqBKNvXyEXwwMfAnVFuKaWU89WYDoL1ABvkNJ7a9fokAF4QZrsmDtWJzeDdFkGQGiHGPEJqXhY", + "finger_print": "6b304259", + "chaincode": + "03e555df54d5fb65f4f1ee0fa397146622478fb5e3c012fd57ac097ab82ec7e8", + "index": 1 + }, + { + "public": + "xpub6DgoM9BRP9167gYuw1YFkeGVywgo5Y3asmXpWPz3TNHYn1Nbu3qZQrgVLVugcF7auYqrDpDuhCAztQPrj4rUDPKvYHjqWyhU84b5BDwRPb6", + "private": + "xprv3SWksfeyAKuYs5TTdTWPVr14ZxmGDHgTCtj1EDcmqFDqQ5Ao6Xbc55HATPd6Ndd6jUen61XFZi4PV3xb9xQAg8Z4cBmX1L9hkZaZYYU1Fh1eRiEG3W3A9MWdeJZULy3jNWJEGQqVi46K9nwiczzArcU", + "finger_print": "14ddca80", + "chaincode": + "244775d351ed394e448cc0af51c6c09eb420292930c05a0066af136f3c1004f3", + "index": 2 + }, + { + "public": + "xpub6GPUP86rDxfRUSCU4w7BAJfoRAQFS1HKvpVqtnv1KoogYpKtJbSeCnPZzhmVgfSAKBqBWdqz7WQiQgy8HRqM8uJVE28ad4wx4TTfbSxMMKQ", + "private": + "xprv3TKJHcxuEQpJkvHgxnoiU5UVCcNBy5nxxFZzBb9WMXha2KbHM5FZqvtoXHJ3ECyjfzLYLJZb3aaxWYwgrkppPFNtRgvvbx4KQUX2CFZ9PEShkZNLU4AoxspS8vminyfnZBLaSmigBnEKGKsTjGXHFYr", + "finger_print": "846020eb", + "chaincode": + "493bae714e5d9fcf19c9921a9e278f2c74f71b821e35eb4d4255ff2276a3b712", + "index": 3 + }, + { + "public": + "xpub6JQB15storbRetwg7wy2xs4J8fpuZHyKBrbax1PDwY3rxdzafHJRweRDVVahQrWEuTJQ7VzQaaqBMBR7tQzBBtwto7RXxauBqyadmHup9E9", + "private": + "xprv3TuxzEEQ5hhNf2Ljdgp7YGRqAECwpRPgUqh6oSJMhoEcCVSJ4c6bSi5XYQMinESShdiXp8y7QLPYkYPAXth5YUaB24J2tCGV9sHW663RaMwHAMxK6YgCK9cvKouRKGddsWJV7HGMMgwttP6Pt6rcjz9", + "finger_print": "961ed5a0", + "chaincode": + "bb92b798ab6c0e4fd49878d72a5094123f52a399289958bbafb448fd42f24cb8", + "index": 4 + } + ] + }, + { + "public": + "xpub69gcGqHYHTyWruQKK1G62NxHWiKMyEhkydgzecSisPdZyxUko3jMPyVK62PFbvys8Hrf863cM1BrADmNRPXnGYrF1DVaiFydSWkpdLZUQ1o", + "private": + "xprv3RKnKNx9wR589KhGfi6MqxbaoyHAEQrRTYhnybvkNiGsfWuAza9UBnwqppykxTWGTYRwanKoEgsa2N3cw7dT7yhGg44uzS4bYLSyqbu2cdC7wXknvNECfKp2B8fozBh3KwsAPMT7Mg18wdjggXHMYCz", + "finger_print": "f436d6a6", + "chaincode": + "07106744f056bac7d09f3f0a139503832cae2469d9592d2a8235c800935968ad", + "index": 2147483650, + "child": [ + { + "public": + "xpub6A3FknbJvukNbtd4uBaRX1cDVg6hRp9ZDQjCJwhRVF7PUHtF6e3n9rMApQEFi2aqLR8rNmMNBUVbddn5ot6Ho6vpsKH3j5StNCEfSTxavpQ", + "private": + "xprv3RRv3WiFg2sQmKdDobiGzkghbzAzqzUZMGXwVyGKaQpeDhCMGuaj6MsFg44b3mWSTreGBWZT9UPsyfZ8BnSp6rSdtxLzdSzoNrhALSYxpvDLFMz2okcQhb4CZbU3g2Fbv4S5ttukFqYi8H3bw9PF9LT", + "finger_print": "24a4eea9", + "chaincode": + "bcbe3ca71fab56e5362e33d13cfb290b9ae4127a5510ac8380aa1b2c354c6022", + "index": 0 + }, + { + "public": + "xpub6CNB6uPuP7rVcuGAZ96NviKQYVoz98RFqWAo375cJmnKNGn81wqshsgRssx7Ce4bhxRmXUqRMY4Abj8bQmWJ7h4AELAYMsfBPUhQC2KJpop", + "private": + "xprv3S7zf6mxntEbjfsFQxNHygKY4Nm4js8wPsu9CFc8M8Rz4bnLDcGAsmabSm1vcmQE6kWFJ6p4JJNFkLJWmjjw4anQ6cDxvjJ6T9FoQetszgt5yZPJF9WLWEy9xTHWZPAvjGjdj948fCRhjp8k4tGpZ8y", + "finger_print": "61206d86", + "chaincode": + "5e0d97cb614e055f82ae13c448b8f9ea492f6a7cf2288aa80d516ada347dab78", + "index": 1 + }, + { + "public": + "xpub6DdkANwgtpdt7vk7sTqHvKkYS3JQzxLNXn3tSNAGPmjzU7ZoqmG4bZPfTsnVEUhXkG5L4XM4JHD6cPE1y3kywHXqvSS8QXDtfd5PTVGSd1X", + "private": + "xprv3SVrEqA24G7phamuEsWen9AQ8996Vqh7fLUPD9jhNRyMb8CJfroMR7UoH8VsoVYHNyoEmYNv1XQwyXDSgiQCytNgQHNG6c5XesUW417pcFeopwd81sKfeNu6hMBM8L9RQqXtBqzmojDhozH4EeaDRmo", + "finger_print": "0db34e39", + "chaincode": + "bcb5b22f5a58e8ee0d86afc884feac3dba04f705246cbc8df4e0299f680cfacb", + "index": 2 + }, + { + "public": + "xpub6G7g8WTf8CahBixAfvvgNaRpCiitorKrQ3dkB8n26HjnE1tmJoy723mUk3p4vVLkgJ6Vq63hdpoos89MkpXfAvohibUM6gajDbaCnGcGgYJ", + "private": + "xprv3TEc6y2tVyP8uRS64kqXiEkVaJhbHG6F4SpPGD4v6WQYEu2bZgdp5aHuKWMr92k2TEUbMf6FLrzHXVieR6RGQHfZrQ1Jddda7E2qhU4KL7NA3wbHbgfqY4JAMsd5bS7Es8KZJ6AhPZxLoStMMfr5aiN", + "finger_print": "5f51bdb6", + "chaincode": + "313b63a5a64fd55b19b8054abf784f173a1752a46900250ac28bc91d9e95d474", + "index": 3 + }, + { + "public": + "xpub6HeHC8sGDJiSAQp9kx9kDvTQohigwjJyMHzu3huUL1Lo4Q6gZ63QQa2CFUyyJjvy3z7Cuvc1v73iMcP9h9TPwg32nnoko8GiHVwEdKjkeqf", + "private": + "xprv3TgvixEmWQJJMFDRCrJCWCDCDNUGNinQpU8pyknywibWbWuSdCTCXPz1T4ZyjrmPyFKBf1CTmGWKetHGgLmqq1tmJfABykD9NkefpuDwkUr6WxCqsTDKxTL5MR7M6UVVoiuM67oVJUdZ8EfqHNGieB8", + "finger_print": "2f28df41", + "chaincode": + "5b12039912e15bef176a66924fe09062a8728db4bd5e789c074768c796ca06e4", + "index": 4 + } + ] + }, + { + "public": + "xpub69gcGqHYHTyWvcfAj3DEEZqdV4UUKUE36HNRAcAH7HfiMbti9pFmGP7GFL76re4vXTNLKJe4T3VoxQm9U7qDXLgdprcNx3HwBqaZwj8PgHc", + "private": + "xprv3RKnKNx9wR58ARe3fDcH7Grgg3w3EuxH7r8sAqeTfZZQkjtkiko7aZPZP4vNETxUDidixBkYPRUDPMQD9tPumxRTcbro37EvKy1QWW9KoFG66FNndJ1RxTyYiJC4Xse4d3ziyXp4aBWWcioYFfezgPe", + "finger_print": "f436d6a6", + "chaincode": + "7bd591d27a5140f7f700415381bfc029d9fbd036f4d8b39a0991e0f3a1a8fd0c", + "index": 2147483651, + "child": [ + { + "public": + "xpub6B3Hi7epqCBvBxkrFeTFgUqZGPBNSjpqE2SQtqT6Dfz8GziCMMEAgC78F1N7AuQwsrh2f4EKbJSkJMAYhzwDtAAhMVmkEDd546T2c3FRHjA", + "private": + "xprv3Rj9wYpEtuMMoEHusmUKHdrD5AWTPhCfa74J7HBWP42E1CuL97ESMes9iFX48G7rpaAr1yvK8QdADdTJJth9MRwRahfCiCtSpwZwNpRbfv2DcXquqhfkGpoktWMfV2xgWfaaiMYyGDWajSQEUghHHzS", + "finger_print": "acc63c75", + "chaincode": + "e342563fd9bb5cb9e48eb7d33bc407bc372fe63d3f1019035033ecd0121ad130", + "index": 0 + }, + { + "public": + "xpub6DPXz3dPk59FiF6GebJhdzBYxPoFCxf293QP5VHHF4Eq51Cmn2RcyYHJ26BVsCMQUSVj25sUz3z9sSthHEfthQC8ag3T6HRhQ5J4cYj3LTH", + "private": + "xprv3SRdQa8f74ZrmLYH8HN2d7zdir66R3zXqfLZ72H2jqdGJTARzcfzUS5QFN5ZNyste5cFv8mCNQyqX3bM8a5GQPxEUEBCw4uz4EGsqvHhdxma1b7V1Wu3YDLTgHBoNDync2hDvjscHHMjWv1PLdpCq5E", + "finger_print": "ec5e339a", + "chaincode": + "67e7bdfa78e63768826f085f6d2531b3191738d558c40ac5d27bd8612f0bc854", + "index": 1 + }, + { + "public": + "xpub6EKpmUky9AuhZarcw33ufysAodtuLA6GQNpoG9vEetEZg3pPNuFag7ge5n6jeKzUNLBJksxrnXQeq2f13PkgGfP7UNw3cwfopqX93NCqDas", + "private": + "xprv3Shknr1dmXwDbXnVEKRUQJ8yZjqFxfnTubrn8mJcTw6q32Ft8Nj8aeG2cv8Zqoej2FwcvJdeExV3RrYEnCvK8x6Z5T9L9G9Xmxzg8NJA7PkSY4LJgT292S8udYd7KE1UUbM6G9jASyq8LovC2sjMNDt", + "finger_print": "6bb70939", + "chaincode": + "2aebc94b5f4dfdac6208ddf823cfeb2f675310c906174bf0bd3eb7a1c8c1b75e", + "index": 2 + }, + { + "public": + "xpub6G52xS3PHv4kyitJgxo9nnAcxBQdR2qiJiB5nmnFkhk21ZCTmqubTHmf3TyLc5LsPuZCjAQuxgw7geRBjiUzWfqFNEz7LMVk3u9GNMqUBqr", + "private": + "xprv3TDpbqxtNSvSS5rqdmqB7gNyxQ4Uw88WsWjmjfatyXXuNzA8LUxUjdjvRX5DAAXpfiLV7bowY3qTBtAcUdZrVrvgCRCZ2AGGNFhvw2Wxky4H8n4NQd2m3Qza9QLwPJJQeunLkmLpnFuhmgpjhy1MwFm", + "finger_print": "591fdc87", + "chaincode": + "3df0f2e9ae0e544d19899174fd56e59338136a52b68067b8f7637ea82ae36449", + "index": 3 + }, + { + "public": + "xpub6J2eHB2eTUEyubiLw3HVohT9Y95hLufvABW4sbfotXVixNp7ufQ7AEoutnH2waFuvJZEgnw8JN9ZPFMhjKEiZh5wcVRkXy9p9aKZihfL7Zb", + "private": + "xprv3Toa3EqJSqZtwUvenSBy8wwRmqvVJHoBKukXBckrgKzVSAHhiKcvKXfqi5zN6j8ZWsMkZzYPDYoaHSidjdHBDMqWScw2MsMvCASBSLijM2UB2bMg24ridMyDpe7Kw3HewpAvQ5PwX4qwV39fkajBAjc", + "finger_print": "639e38df", + "chaincode": + "20488320f909dff90e3367efafce81eab8b09eb0bccb48b7e9a4657a985f5323", + "index": 4 + } + ] + }, + { + "public": + "xpub69gcGqHYHTyWxEmuMB4VJwTrmcWAbPWm1etzmGQQN5ng9L853X4dKcYvKA55FUrHooHk8DWFXAfakR3VwTEk4u3GR43TU6zwbRuVk8ZTNUe", + "private": + "xprv3RKnKNx9wR58AubdULPce2nPvDHSeDRis4ge799C6EPLajf5V1VMJXen7FrnqW53s6x9JrxdarMv5AjmNERgmxZyrVQTzEYsUDh8uPGLWsKy9RDixXASCnr4DAHVuK6jHk3UZNzKC1HZcrwBJWQJmUG", + "finger_print": "f436d6a6", + "chaincode": + "1ed1ef3641d02e79f72f12f2d9a3b4bf1d64cc5917cdd851c6f612bdfa0658a2", + "index": 2147483652, + "child": [ + { + "public": + "xpub6B7hyjBmmTihAih2qh4k1Yf59ZPbh3G95pNrUUY9A8QSS9nBD2yNyh6AUm6LST7PSmgfZKbMLzpwuLnuhNqz9KNmAKfH4c8yfJjtrtyetfs", + "private": + "xprv3RkU4xu6pHEQqC9tcNpXTb3cxZMPr3UPbvgPawV2wUJ98s4nDAPBtqxpmvWdXiEgwBaJ8jCrE1c4RSMRgNWQRmdmQmMGwgeJRSZUGN3NdQLSRBZ6xAhuEx1aWpmE29mLtRpMtCTRYYMmyMQ4hBnKPyW", + "finger_print": "b72382f3", + "chaincode": + "30156af72bc98a805f71577b471bad5c944a236650dcd4b268a486aa218382fa", + "index": 0 + }, + { + "public": + "xpub6C53a6tAJEDgYAAeGcErucXEnZG7D2fjwz3W8QKZgEXV7yE97aCRvqnbYAwcHFpeb7jzSpa83ZuDBkBtGesSKe15veJ8jUqFgBBqPde2jXr", + "private": + "xprv3S2uWxZ2m8ephBZkpynK5inyi7p5HWf7dJbRQc1W27SSEpSQJAxwc87wEizQ541VsXLeKuvzSRBNDjU2J5zFxGyf5phiByG8avhpTRUKuCcfHt9qR7t63rcQdj94GmoKEJyPGcRRqFz9mC2kwJ9QQHV", + "finger_print": "38f1eefa", + "chaincode": + "7cdcde79bcda1ff0ab1e962b839b12cf8b85a47f28459fd758a3015d55f46e01", + "index": 1 + }, + { + "public": + "xpub6EvKZBFLBmHvxWH6mVkpz89ZoKr3EFvWiRKgX8MLpNvTijFCc6qweJhMEXCnqZsjAtzxRD2GJhjDTqZk9M8BLF2SAZqKMmW7LCxsKTGgfF6", + "private": + "xprv3St19cqkWoS7YcfmMqCUXE9NmMLCtTuwZ3nz6Zw9ZRV4CNnTVXA394pzNpAf45cSPW9yxCoaUbmcCzGDaeWL5BJMX3vJydcnVRPx8n9Bi3EubYN5waLn8nZ4sTL6FhbyiN84ToeMjF9jp2pHuzAiJqw", + "finger_print": "bca2224a", + "chaincode": + "fdf634a67f5ba72ee10967c832e9bd6a9a071bc92a256e3814e8ea5fd9c299c4", + "index": 2 + }, + { + "public": + "xpub6FU5MGiB1LLvW1QDzZB4T1yLMw7wXST92gwX4uAzM1pFzbJzXjYsETcUVZp1ZrbniVU2fWCSP9A8f3nLSkvbnSTnVUteDeX6xoo3FbyZHsQ", + "private": + "xprv3T3SH18mR6a6G53A7axsrPxaRDMxic1TmaMdAknWuvnP8VFMhReRZtk3UA18xPNZFoHyoYmbhufEm71JxoN1rAkNVZgidDFqfSgUWeKcSU2Mqxury7yfEcAzSDeWL6HUXTdcUH9u5imNLgjRhKuMoAD", + "finger_print": "071f19ce", + "chaincode": + "39d8569c554bdddaf20f97f64ec337e8de028d5ebe77d79e13c9d5dac8e72335", + "index": 3 + }, + { + "public": + "xpub6JNGYjZWxN1W5vcUtXykbj58EFriQCkySiQHR4PQYFeovLsqLMRwqQeAjpfsQVakMt3SqcZQu56UGiwag4ndZn9nr1UVpFRUWoZz3WdD7bD", + "private": + "xprv3TuQB9PLtPWKYytZZfx9qdghoxbUwidxFZwroNe8LXw1BAx6PTEhKocXhT6DoM1N4riemmEqXMvV6kprEu1eV7kbBVVCqhPBiWXdGxwr8Yu3Gfjv1aZXkupeKrSqp2CUEuAHpXP78Ttaj9mmpnfQGu6", + "finger_print": "91a73fbf", + "chaincode": + "96945f13a539ca5fe3fd1a1f6c615dc19a5a01d7a5d19d423e31e0190e9fd002", + "index": 4 + } + ] + } + ] + }, + { + "seed": "a9d64951590b3ba9f0b373680099d7350500d8cb0e31603e33979d5cc7f86573", + "public": + "xpub661MyMwAqRbcFjB756ZJ5x1DAPp6mhPtCheTbwdD8RzvVNjjPRbpaa2PJs9Wote3u6ZgzLmNsfQ79zqrTjEpdwijaqzz6ySKiDN1hJ6nJmN", + "private": + "xprv3QESAWYc9vDdZcqcHrAdqvvbS5RMaEUJsne5t1d6NZBWsJ9NeYUdajCWFxdg7pkS5fCcDmzHWcD1xJkq7yNj1uWZpmXLE3Svuqy35Dj1es1FcBghjkGX9oTqhn7MbKo1Drtukp8ZsoHCVB4s5qiBaxi", + "finger_print": "00000000", + "chaincode": + "770ac5b8097723f98fc356f45dfcf6c1307df653cf9baa0f4f5669c28f61dca9", + "index": 0, + "child": [ + { + "public": + "xpub68QwnfASxkuEjKrKDki565eigVMc42xrWX3vRVyKHMqWZ6u6NR3epVSZs5Tmm4GgngBzuD8fJYonCY4V4ArsyY1rahcnJ8xk7M6ccSCJV4S", + "private": + "xprv3Qwu8ARZm39iqwgfeShrL5RhnL6anV2f8n59kX8zkzBpzofVwM1d6Jve61FTDYhFKyLkzSBSMra8qou2aB1NUb7Zd4cXZYCkALkRmWLo5v9tKy2Qxs48ptExmtgDTkpzDRG9pGgDqZipdi4VXsvUQ8o", + "finger_print": "476bc8c9", + "chaincode": + "d61da187b36dc095a4dc93579416a8a7121adc199a3b3c00d96cede2f48c6a84", + "index": 2147483648, + "child": [ + { + "public": + "xpub6Ayyb2ZPq3F1zU7GinNgPRera35J8HK6naGwF4niFNL2xqpV7qDCJfVu4uCryoiG5AePpj1AR5aVCPf1bonkLg6TyP4LCQ4iCsAbmHMxEgT", + "private": + "xprv3RiAsMt6qkb5ci8YPX5RTAK7EPazP3GzTocCATSvrsQS8B9tFcBYpSqhvSvKTa6wNJz7PngCoXJhF8nwMkoU5sHh2vRVH9WHTt8x3uH2Wxx31gWEPvXEMvDTMSYmfXExFjt76pLvYHX5GPGJjUsT9zF", + "finger_print": "a5011aca", + "chaincode": + "712ac3877febe15634f38af022ab381c2d990229c0429dcce84d6b7057ef8524", + "index": 0 + }, + { + "public": + "xpub6CECcNhNgw9iXvAHdKdUv4bbMJs3tHZTiBhxmHjzZvdvKgmxPqSwS8otuuDo4YmpTXu56xykHd2rW9aVdAi31u1JMeb2UXW8WdVbhTpcJr8", + "private": + "xprv3S5dGYtwHwGgas2pLSFmk8ya5eWMjkoAWwSFxgx4ReAMW5yoCWqfbbDcQCzMWeCTeHgHcSC4AcgBKQYpUkJApacxR26BQjfa6tJaTRVMeZkeBJLjSYvZDoM9TCkFLanZ3Z1J9SfFL616pbN9xGyPDpJ", + "finger_print": "4e6c0829", + "chaincode": + "386319356565026d2bc003d7f40eab50bb6d1a76e295d896140275d5da9e9a39", + "index": 1 + }, + { + "public": + "xpub6EGA1XJGdp88U8hHDzYDNjbtshDk3QEMsikrsZqRT4ppz16kAUgywGxQmSVhgqfqCuUTMfBDdXZNPxZeyY2kGgnyzzBmCAs51kyJitdkCNF", + "private": + "xprv3Sgfb7WtBSDHY3FAQacFN97dpULiq1jcSp1S9b1faMGhvwonK25bGasxjnsBwb8D2yhSKTTvwSW3CSHw4857Trswbx9ZRm7fZkkaJ5ZbjDmeDt318nxqtM1GYHFY6unB64s78SSY2oJE4oMrVswZk25", + "finger_print": "631c40f9", + "chaincode": + "fc5b69fa7e55a09946a6c89bc8d21c54b1681cec476af1eccc977b975a9d839c", + "index": 2 + }, + { + "public": + "xpub6HCh73Spedu93djGMQi4aCvMXwfiTTMgcMrUec1ojMs1HVSnUXw2MHQaToDPT9F7HRehpxvkrrrJB2cTec9BJBgzzNjRr9q8MLq9SwXkupG", + "private": + "xprv3TZKriSmNQdGJhriJL7G4pTGiqz3uSGpbCs6WmmKt778yxd6RP59NzNpGVwUDzvResKY4RNjyzNqQbkb2nDxHYkYQGuogX1jT7gpC4z2rCrtT8q9jXyfSV3hYAaz66Ar1suhWTVwViRghHyHHM3vy7M", + "finger_print": "f32369be", + "chaincode": + "cef07f5f36cfc3adafaa72d06fdd05f08f2b45780bb3baa20d5393677a473730", + "index": 3 + }, + { + "public": + "xpub6J1tnTF72SoXxLrNVQGstVc1SgFfxkofTYJeKhgqmUoWWSeCnUmWF214ioeYDf2tuH4cZFHnxGXoEqTUdbFJggVrYPWWXtE1sfPC78q9aoR", + "private": + "xprv3ToM7qNZ529BGVby4KepaSfe4hRv59kKGGWABUSaY2xnAFe4CqpkmqKadVmrGRqvN2MTg7md9bWgyYZdgkEvKBiW6dz5PbuvFX1UUzuK5AvfWwosYtVExvgpdAEqqtnAwZwx1YuPzHqb3Ge8pfSxEyr", + "finger_print": "61dbe567", + "chaincode": + "959187e5356a56e35ca672563f8f99db16cecc4812016af85ff7195546b08db8", + "index": 4 + } + ] + }, + { + "public": + "xpub68QwnfASxkuEkkrTj51iSdpQrUDcrDGG8kKJwaUd3zDSjmAgmvWqNh9gbLL48zUGWMeHAqQqJAzQp6aXMwXCBeux8uaHXL1YWBtNsXSZ6o1", + "private": + "xprv3Qwu8ARZm39irNLmTkXr9EK8b4ddse25d5318BxUt2rsZBu1xgAJMVx32shDHb7e4q92u9ph8vAfara2LA3SHjjVNza6ZgVuQmoAoFNV9PhGZjKRAgMebtG5AjSEpLVtcPvhNJEg4rAaa6QymgRm9Vu", + "finger_print": "476bc8c9", + "chaincode": + "65db060dcf174e6237a52fd1cb46ec78eb55d846ecd1e769255b354f9ad4432d", + "index": 2147483649, + "child": [ + { + "public": + "xpub6AmBPgL7FKNXTLF6uP1T8mnXogk3KJsG4xSGQxxLxUJgPpsrVbGbLSZgxq4CLFNjqD4FeWjq77QJFPvk9959wE9Wxf1Fwe4r6cYmPQEtNQw", + "private": + "xprv3ReNPdL5DmJfXUXhaukJ2kLv23HSxA4VCvyfREy4rAn5h7ba12CyYAigAJN3x2qWzZ6VcJsU99tyMheUVHxwoPVB32n9PRvKYPDvViVpC2Hz6P1tvCshX6bBPKD174crnGvDDotp62ghzvHeQY6rtAq", + "finger_print": "86fccdcc", + "chaincode": + "663bca48cd0932a8114a60fa34a5f8ce33dbb39889cfd51e389f67991479af30", + "index": 0 + }, + { + "public": + "xpub6DLFvUN7vD5H8WvZPiyvwirooFETKu26Trzr3fYfoucqZNx193WisYhcJEqkRdswK5N4CWmBenWWSCUobByufxTMNE6Jx6NWXpX8xpX9Pbo", + "private": + "xprv3SQewtPB6423HPybhQkRjVuhLzsFm9E7GNo6GojFKEUMQEoGdLEDHjxFiYeWnvqrXtzAbx1yi8jZoCrnraJRnx4XjLMaaZBR7CC7tKsouGZy2m5m4cyCEQJUcHLZ46zcZskA7hLbRERXTQ1NBpgBwpK", + "finger_print": "e4ae6782", + "chaincode": + "b6dbf0f9343381910f2416168986efffb69e1c6b58c7469cfb2b5af98d443d0f", + "index": 1 + }, + { + "public": + "xpub6ExVk7FcRoVeSUS9tq8BvdJBjUE6cN9BdqV5oFQ6LbDSjkoqNNuY9gfHwtN4mfegXMgYz8KpNciR2wbWJdgk9ViKSFXNEi8uph8V9ZmaC3F", + "private": + "xprv3Stedo66h1n7nQvy6yhQaAZUZrmu54PxUomVQkGQy2u1zwt3jBvWWZHhwqN33YWpgErWhWYqy8mxr9fb7ZJPLSwHpBapELy729Wr5Z8k6niA36qmHgipZGXs6wcDV1izN4MFgSiJfTQ3uQKrYuHgajL", + "finger_print": "c1bc9f5b", + "chaincode": + "3f985b7919fb317aac1b11363624626b5f1636274b64dcee843596c39fa661fa", + "index": 2 + }, + { + "public": + "xpub6GMbsi7zVbarW3HnUsYkicyFmFv4HJpsVzY4RQrf2XJymwdrpx6Ky8PpuRkKHvJPGcTJpuLcTMbNxfS9qm3Fw6DrxJoKiRciY4TSJ8mnaPi", + "private": + "xprv3TJk45yWxjA8uFkx8NsGDiByQzoWBSURUUqypScz1xMoqjNs3ji3zuyFxTnXkU3gyeReTkhcoWd51tEX1p3uDBYy1gj6d7CVn4BC35fpB9L5zUCYrg73U536K6ozpELmFNi6uKi9JUhhfQi4pvxpsAb", + "finger_print": "7ffcb409", + "chaincode": + "36e1a547a97ab70a7e3cc7829cbf0ab87056668533323513cd89b220898980aa", + "index": 3 + }, + { + "public": + "xpub6JXKhfP5t2vt7BdyMEnezNTi1AX2H3Vy1NZfgQVxqAkys6QRxTAJd14iU1SQMqKuKUTPyzibcunUqGWR3a2mozvdhJ6RKt148sMGynHgRsu", + "private": + "xprv3Tx6BLVkoK4eM5hPmEESnJfHKCRJr6TmGcXyHg2MkNvRecZ4GMTDA9yCAUFTdJ7sAbR6YVcSu3JerCA3w6azHXYwwmkDVirAbwW78oanfr2t4WLUYEyQso3wCr8kBttsTrq5mpehCLgwnezRm2PTZK8", + "finger_print": "a6e46a22", + "chaincode": + "d4c69187c59aed7444e5885a82b1deef2663acc486cfa33fb01a8bfd3aaf5c5e", + "index": 4 + } + ] + }, + { + "public": + "xpub68QwnfASxkuEpHHJK9HLUj3gpixeo3YXcTL369uoMcToo7AkUTCirrWHwSJ2ru6syQzyPch8VFFkoKq6Pu5q1BoFtfsR7ufAXpXaC2x3ZsX", + "private": + "xprv3Qwu8ARZm39isR4z26xoGWXqQyXze9PPpvKqYuNKVp2NAgZXY857fNuQbCnhQ7sNwCu8eqZ1gYkkWr33NfiPYf1rrLpHKJMudaWmZJNgyJzYQBVSgokH9WyJTAXoBDxRELiLeKEHc9fSUAc6eXWn7Hm", + "finger_print": "476bc8c9", + "chaincode": + "c7dfe70c0140190c62b9f0a986937ed5fc20f8d132b6ed916f2b3ab24cca18dc", + "index": 2147483650, + "child": [ + { + "public": + "xpub6ATfoAVWbXvTNHCcL6rumVhYkruSWfYXvW6bDu5Lsnsp75tQGWEU3msHz2aPB3VF7u88Wt4V3HJrs4fMX72yo8nP2bbWHeC79ctKTaTiyUq", + "private": + "xprv3RZAhLB2KFY7cad4bv9Bzj4JYggkwC3LrjfSzi9QEUVYmtsrms6WeJVQKNUzPHPt3TShE2ZBM4qGuyT1pBTE2PyAv3J6akHPkrmJcq67yhesgrFopeJuSqcUj95RmUVjbDA7NtNp8ubwUK1P5AKtcSv", + "finger_print": "5de9deda", + "chaincode": + "8fc93ddadff5d80bf729dbd09687034d81d361054648fe1082e34b383cd842f9", + "index": 0 + }, + { + "public": + "xpub6CiLggjPK9croiaDu2ZHFNiKkFc5tQSydqC7z72jSfhopFpjAfzhn37ghPHNMFqyqQMNrkFzc3oQNNqHXsDnsx5N3bvyCdqk3Zr4PanbwPu", + "private": + "xprv3SDz6Y5oBLt8ZmFe4qgVEJ3dbEe29e1YtfJH3NYQf5UCCbKNJjkNvbdgJgDw2Fh5YGbqoCUUecddhUXn5Tfob3x7Ca9BMmumr4SYum2DNy9w3Qs1DPsAxZ5FLEBjVaPDZ8PcxYz5ybDngBB7g3r52nW", + "finger_print": "906daa31", + "chaincode": + "be5a239e70fa381a811bd2f6bb944b674491297c687ff4aa4859b8cbf27f6535", + "index": 1 + }, + { + "public": + "xpub6Dfpyi6kUcLDRWmVie9cktWqiff3GeUR3TEcvZLrZ824JvqwRaGEcgUSaifQ4SP8y2tczQEfbjiU7wtFd5Q9nxXk4VboDNLC6AWXueyGr77", + "private": + "xprv3SWU8SeSBsGUSQSR1zWLYQCV8JnRZU8SisjtRQqzBpWh7DJMbtT3WpDqXxa36Kpq6eq6F5nBT94bZ8NLQUED1smocpTxfw39SuxyTNL9fgRq9AUc5VEesCR5eATivq9q87APsmVp2jz8Gv3prFU4DfC", + "finger_print": "12962bbb", + "chaincode": + "fe9f0902c4ae6d9029375e0cfaa7394ac23d4920a2eefc2e09e98fb3d0d387fd", + "index": 2 + }, + { + "public": + "xpub6HHxGLY64ezBhf37FHZ3uDZ7L2z47XAB8YWwCebcWeQfgosFpDvQXvi9MCaAhsEbkSiUo7e5BiBFAPwtVvsFJb8s3Gw9wGJDfu1LGESUuzi", + "private": + "xprv3TatWWC8CvsnAez7n7WAy53xZb8rqiZBRiFLDfdHuXvJaYyMBCk4cm6Q2AopZEcb8CoaYL2bLKDZp63gJ4qhFU24xNUoL939bUrodWnjYtfT2QTXcnUm5jsD32bNKGN7xmgYYychDETTvxLWdJx2vwc", + "finger_print": "ff7ae172", + "chaincode": + "355bd11b7cd40e04dd3bf7124eccdbe7aa585645c5b8f5da2f82c4c02c25dbdd", + "index": 3 + }, + { + "public": + "xpub6HycS4AMdFXnehjnzzkXbXdbX8BopkGnwXQ8VDNDnQ83gFYWJGnsHSXBt4EWd2zzHMp1CcU2DxuPP7njxNy6ph5MRDKjQjrntka681huy2G", + "private": + "xprv3TnfoU7c3QzQNJdYXFjH2zukEngLmzR46pE5zs99eLkZjRdnsmTc2nmUxwWJwY2qkr5fVpRXLJDa5nqHVEqpsZTapBTDeDCxzGCdcxjf2JAc1sY2QF6LwLoPFrA3FtFv9RhayWgCdYMmHgSpMqbSGxW", + "finger_print": "5c8198ca", + "chaincode": + "cd6884bfc659c3fceb5bde05c7337e75b15003f0ead768857b20397b4981f0a7", + "index": 4 + } + ] + }, + { + "public": + "xpub68QwnfASxkuEsJnKWdNeUtTPqGj9TBx6oVSDn8wLqueeaEYmFL2dzMqxq9t85UcShbQPEJReWUbFrP4wEsPZYq99BGys7uFR3ya7KswLLq8", + "private": + "xprv3Qwu8ARZm39itKCnTnm6dgYLTa4yxaaYMFbkoS9oZWn6dWRRz9Ws9ArBg3rdETGErXad4nCVhCoGHabAdY3AFN6GGzrhnSumACpcYxJov8skk11Bcvkjn81Ydz8CdZW1NPJrAHEhz9AvMacB7t5DoYY", + "finger_print": "476bc8c9", + "chaincode": + "f7cc39b5179c91588bc38e277d2b898753d90ba5e89307a412a93e2de08b6c9c", + "index": 2147483651, + "child": [ + { + "public": + "xpub6APvqbJxTsW4CTywR6WcZp4S3q4QjBxMsSavAMA5aVvmLF8D9h8bWBAMuCNDcUrvfKaeLCLyWzVQdJktAPU4NfmgC8Egks37cnzNnKNZ6he", + "private": + "xprv3RY4FEGqRYY9XoqkGnzNqkGPZRgnNvKweY1Vw1Mn3qiC6KXL1vwNkE3nGuyF4sCpnP4VmALqECwbzA3RhkSTDm9z5kA9RGnL9QmtY8X2irCfsA1bhP7MdbUHddu6eTt2gwjQEM68fYsx2hQFvceQwFd", + "finger_print": "552399d3", + "chaincode": + "e7de356fab14ebbeac7df3fec8436ec7679a77c35bd8ce12fce795e13b04e1db", + "index": 0 + }, + { + "public": + "xpub6D3XCvfwLq4UNxMhLTjaKAyvkQq1W5TC6cjU5CcpFEb9yVj6Px7yxLCCdomNwDQRCL8sQrg44YWA96ZmrxiQKvwuLeBQ8kgVsYjPc2NwtM4", + "private": + "xprv3SKgaqKdHB1ZgUaommgUmDTTnwJ7abPc4QtCSyWaRZs3AQ85RX7JRZUj1VfJyqbT6knDfpGt8tPtq2ruyoKHLmNp6FmcQ5FF4Wj1GHXap81RQCTMYYveQNLiod3SVLfR4FBVxawxjFSzwXoYMt85bNe", + "finger_print": "bd6c1f31", + "chaincode": + "10eed999d85557acc8bce2099f70c4a277ad4ea8a964f1a87a2df20c6fc45c6b", + "index": 1 + }, + { + "public": + "xpub6DhckVoXQz9MGPwnumaiCMkfgcezSN41ADhUmnGbC952DSuaQ1pfPyxZhPVwp7N6wc3sAzdcGUQMvrPoSU8kvaXbSwxG2vzLEbAQNonmsUi", + "private": + "xprv3SWzxPwzQZNvca9LfAKbpTfcYVjsNNtYwQT533YaprGaHjsZoEikzLWmUHVmdxcFjNtYSL8939BAcTQtFYUqcT5zZ2QSGzm7A2kFyNQs38Wv2xLqw6p4pE64VZPRQveqgc6VkWoPFzhjuyaXBtNZRZF", + "finger_print": "16c892c2", + "chaincode": + "1b79549c6f95a861d79a7b51dcdac212b56f3b55023df2f7fc85c52e138ed42d", + "index": 2 + }, + { + "public": + "xpub6G9QP8WwPPqfVyByNFhjAaYjGbkbgRtpGK4gkRFJAdWUi1whxkHsxQbT7x85xpgXb9w8VPiU9EZyMjfpWxZyfJJTtDuytbHrwnYcEM6LSrQ", + "private": + "xprv3TF7tGddFHSC3xpcKcAnhJDo6Uj4ZvUXvSNffT5VAVH5Hv7GtuDDcNXwCYjUuqdnfjH7pDNxWKQgVZnLPetVbfLRF1ro8RCpnBz7J8aqoe7kKTWSQQ7S7YjVKKnZaJXjwEL7V2EmcBN6iBbrbDRrPD4", + "finger_print": "635fb2bb", + "chaincode": + "38b850873072ed927fd87b0718f74b2fedd2f5e77dda22dba56d8900d04917d3", + "index": 3 + }, + { + "public": + "xpub6JJSPZfVFaD1Y4VPHKt1ZGsJ3kyYGqzLY64XqG8bT6oVsLPPy4WkjZNNRfPTgF7XSFHiMbdV8ciTx5uiD3e1rXNhhEXZpsLr2LpgTtjUhfP", + "private": + "xprv3TtGBT4h4egHW5rqXmCeXcncRWYZR344ki9CtcPRbLE1WN65LqNU9q4sipyXsKPaeNYawFW3BtHoQDkQG2pvBSaNWxsJhEiZWcySiqpVM8Mxjx3kPtGcDA5YdAt4b43Sa61i7EqNKPsaMmZVVqtcKVV", + "finger_print": "88ab243f", + "chaincode": + "5600cc057dc1ac40f61b320f3f66ecdd9ac5f8be003f7917827e5d46d060bf0e", + "index": 4 + } + ] + }, + { + "public": + "xpub68QwnfASxkuEthidEKBYMsJFYSedeCuwhxCd91TqArv2Dp1paAB3wTarfiw2dCQi7PdCUXaEvWjoJDqPu8Z4Q9pnGAA8LL3b2YL98VD7ZL4", + "private": + "xprv3Qwu8ARZm39itjFHTq7BKuVi4gUKYZnPczU6nikG3kEtZZQ8c9ce5pGhK9JsxiBShgqSK7xryCN4amPDiJMe9Hf9WWqQbYXoR1a7gyK73TQs8gx4KRmC1b1MSXkrLH6oad14dQC2roD5EtraMFzezWv", + "finger_print": "476bc8c9", + "chaincode": + "83f599ca0772b1e20d22c13c84eed6727d584921bc2f2f23504b61379c52020a", + "index": 2147483652, + "child": [ + { + "public": + "xpub6AfUcEDECTpDQhhdVeDF9WxyqJuz8TyPwrJT7PxdLSjWpmibEMnsZDDTJcTjvsNPEcrgB1XmLdjnKJtuVJQCBET41VWVwofPU8JJjzhMggQ", + "private": + "xprv3Rcg8MiVy2GzydiPDaNWnjxUXRdutbx3BC8FQ4Uf3tHhv1fFE9tTzm9pBmujjJRqnu9ZkoDcwXtoyZp73fvvzwaXwE1S7pyELRTKrfFLVCyUXhYRY94SH786sBYC7UMAU5srCT9mAaXLAWya7jNJBMr", + "finger_print": "799c0ba4", + "chaincode": + "4514af052ed2f489a81e9fa6e0c8c8c01b1e15c2a6053ec53797997322f72c18", + "index": 0 + }, + { + "public": + "xpub6CvxQ3MQFQwoJdPAd2H84p5giqo1RTKPgmrkHq81W3jdzEQaqYfZBetcB9PGwpqP2YU4Hti8gB8ezFo3RxVr2aXUZtKHdNwHSg55R2GpqB1", + "private": + "xprv3SHjTfA16FxJ2vdGK31kTkQVXPsJ5qQdtHBWwiMKvJfAuU6ta7KabbXm9vhndDEfkywRFkVxYw5pRFGtBi9tEBCbNgpiwV5712FU9uogjycJgiFk6QczqjYtJ82YZA5fNLVbisCAvNjpXdBHTY2ZBmU", + "finger_print": "ae056f10", + "chaincode": + "6da31aec6f7df724808b30ce74ff76f4ed08ab62aaf24bcf7bd965b0ecd12374", + "index": 1 + }, + { + "public": + "xpub6F2WajvmL1GvTNqF66AmdV5Z3VQw8UDDXgFb15SwYoAuP71HKK1CAEJ4UrAd7JtKNgC4F7B5D15CgY6d6BTfGdyz4gcx3Z2YNVKSuKrqSNK", + "private": + "xprv3SuqoWVBdtLYQn3wFfrSCryK9BVmjXUBPEtvMmWsRYvy6STegEmfCWvHFXbDSgWJbhj5vfre16D94kSVztiBMv5W71mLqdJ8b1JSNE8JwkUaBdYufuzefhEjNxykQvK6vFPTPPanZAcTpEVhwhjr8p8", + "finger_print": "cb274f10", + "chaincode": + "259784d719339cb5924a13d68407618dc0d391b1c7845c5e70fb64e01248533f", + "index": 2 + }, + { + "public": + "xpub6GdhQnLqK1eLQWTsRDAZidDm219npB71SSzfJNiCqwfDZ9JxAbRQasZSxvpLDVmv5GhraDFFBTTynRodwjkmjaLkDmBNDn76HavGTsYd3y4", + "private": + "xprv3TPXNXrs5UYUX9KiLVudQ7QQw3fRoda6Bu8Xiex2oc9UnmLCcsZNuGBbWk8RUNRpmrLpAvxYvantuL3N817ozH6pqyKjCzZEM18vrNPyEhEnfmqMFZ2THHzertCUvbc52p75RpCsUExd8PUTE3mB2Hy", + "finger_print": "a5be09a8", + "chaincode": + "6a775d293e9f44e08b51e0b0ea8e10752073105548e8097e508e99d3cc9a3478", + "index": 3 + }, + { + "public": + "xpub6HuUXYAFQTubXEw6Vu8umgd5ZbPfo6m7tft1jXE7K3HJTjCfUf8dsEBsvxV5EFAcYRrgsN4XfRytSBWBusLhVr15xaKEvKeNpbgmtmK4qCi", + "private": + "xprv3TmSXzZdnnDAdER13n89Ns1Wx3Q2nVsss7LDK52ZhjejmxVpWTZ95HJQTqviout3sQCHshkkSk44wfzyXtbeqBRrpc6CxDnmY9xw3QNNJnxcy96NeFyzLRFmdzRPY4Nu81ckwSkjVX9yLbk248nSdMj", + "finger_print": "52cdbe21", + "chaincode": + "0ac0475dcab90e100e1864f1d1e9f8bdb5a21bea8b695bbf97bb254f30d3107f", + "index": 4 + } + ] + } + ] + }, + { + "seed": "29c6df1a5a3aff4c4cc4984c21d005add6f9e4c922ed4219d9d026c5f9ba519f", + "public": + "xpub661MyMwAqRbcExkF2h38Z5k6haczmH9QX4Mtz72U74pHaVinkdkMfDJZUZVAoibdh6ZgjABPkwfKg5aX7ZkXXK75wWvbeXrnMxKqJZ45uxm", + "private": + "xprv3QESAWYc9vDdZPe7yk9cGoE8DexrLSgf2PhnM2nppz8S9nNgNGJ2rEzAeAjArbPNdwifyn6hzeT8Tgv7sbf55L9fzf8c1hea6g7zZrZDKymdqQJnQtrt5j9CR4dtwkepKHNgu63kELNEwpcM6SqBD1n", + "finger_print": "00000000", + "chaincode": + "2a1a462093b461a017874ed2139b03122ba774541508f7a9f15478d50c86c216", + "index": 0, + "child": [ + { + "public": + "xpub69Q4nscR1UE3uuFzDXYqFeqBzo1PsyMhUR711e8CvHsukfoyAkTB8Qvq3uyXDq3jkKQozpGo7V6f7ZoxCod4mL8wVH6NRHPxecjHkpAsEey", + "private": + "xprv3REsHtTvPSJSWHyYQ7MbGX7Xdj3v4ZBLTTqsFWeqBPWU1EAio4JoXfWP5w81edwqd1qZin3Zgqw1M95P2MR9d2Mzo49oZ2ha5wKBiSZ7SJxMta2Nxob3LquzgER6YykS4Age42kF5AmNFJUTM9DEg5H", + "finger_print": "cd68de95", + "chaincode": + "b0d691c7021ee93cb86e323d4c50ec5fdb42e1bebbdd661e9638e4e6639bd7dd", + "index": 2147483648, + "child": [ + { + "public": + "xpub6B8oXrPq27oMUJggrgGLFNcfXj3G22U9zRewFVRDcS132jB7MXmx9YwYiDAPHve54gcooZFKn7ueYp7yoqCuhv9nLoAujLZa1q9qaiBXweV", + "private": + "xprv3RknwyLmtJEPnQZDMpxS33rMUZ29VPs4YBFayqXJLxDEZ2vb4idqNX2qMase3psiTkwwmBQuoCrDrHtW9q5mmgeiFD5wzJBhyjFRNgBtxoTxMVKKSvRRHJRo3moeW75pU6y3exkKw5uZGGRRkmiperK", + "finger_print": "b9b583bc", + "chaincode": + "1f4e89ffa9d0ea5b46a0a52d9e6bb5371d72d58f4bd58c4583d7c7831f540d2f", + "index": 0 + }, + { + "public": + "xpub6D1tzNFr8Z5kmjHxDUJJ5qKkG7T6ZCYbW89vatE5jou8pykBTcUhf3pV5RUekrDcm1KqrJGaYgncbCJ8w5StZhGDvQ4y1exQ3tdULwyPrLk", + "private": + "xprv3SKCbXAUyp23yCa8ebaYiQMziDeG7Gg4pVh57NLyh9YqhPZ3aLGtibHyWvA1N38FLVfkK8vMt5JTjLmFAPMxb6XovGKWguK8Q2DaNTccieM5jan97QMgum6JEuMBr92Yn1zac7vCEekbpW2hyfQ11Pj", + "finger_print": "b99ca75e", + "chaincode": + "b95ad52a07e870feff39f0689cf4377610e9e9ee6698d7a22249e8cb04171b74", + "index": 1 + }, + { + "public": + "xpub6ERkQnDszJngg1iaJA1C2avcTXenfVoG9c77Ks8NUB5m2F9bcznwEhRoTZRuJ6rvpMwcVHzt5gPdkc4UMGtMb6csYzZAstkKJXGA97XsEjV", + "private": + "xprv3SjWsgLNnY6f2c7YGLus5mXhPyGuYKoAzchC1KPKA63KdCNDSTto92vSXuHjZvyTv7gfSKPWPo2p6GPSv673PyrNQDZwCMwYYgnMb5BN6YqsyE2kwiGPys6Z4LVqM1K4tubxWmYV6hrvgdjWFa3Eubs", + "finger_print": "799cef53", + "chaincode": + "ae26ace06a16a611b174c4a3fe03989cafeba4815e896ac61c1a665d7c348d8b", + "index": 2 + }, + { + "public": + "xpub6GFzCoVYXtc2aAipy8UP7rhyExkBDjB44TeHysthsY9ak2sYYwZdtEXRuJoxjRja7KPmiTdUuiTGpaietEDqkNRgABSJhbPe9xnz1VthJNW", + "private": + "xprv3TH5JugG7Xzy37ZymwqiECJyMwdDc6WfFejkrzxNNMJcbUbbh3w3nr6CyVNE1AYhhjCvMjoQx6mS1Kje5HkqvA1Fb7QjAAPiuZV7aLSoNvQpxpvhATUrZDxafn7nDLvHyDUtwVCNBmuL1x4hH2SBU9S", + "finger_print": "72d0e152", + "chaincode": + "914f35f9ad6b8663edb273cd8e91e740fa37b5386e28fe5a8acd05fbccbb9472", + "index": 3 + }, + { + "public": + "xpub6J6M2aVTp9yDYkMWG4TUaYKjJcV41CWjac5wSHqvh1nvzpmHPH9HjA7L9bXRYAmbGNqSQLjhoPzK7EhJGDpzAeDhXsJJSE1hkRHfja595Rq", + "private": + "xprv3TpfqGTUvgguDqpnoYNeFzMcJiHWMuJteUWfnaY1T7LTNoGAowtC3DshLAzietWdqGLzT77sp25BmtGqP4MaVa2Z9Byw6mBoAR1visUpR66BshBz9rQF96mFFErtyvBpL19zTgguwJU2edJj6EhhHGk", + "finger_print": "6c4d9ce3", + "chaincode": + "20ca035607b7da0d752f37d824a515f7f3882cc9c607e0c35f7f09cf21694792", + "index": 4 + } + ] + }, + { + "public": + "xpub69Q4nscR1UE3wcCLkKybbqEupwFrKYmuqH1NzNZEWcy6b5psMZ4GmGrRjE1MixAtHtEYe4eAhFXpyzdis8JwzDksZ9JfcmffVmrR7JHixxS", + "private": + "xprv3REsHtTvPSJSWoNBwH2XqKMkxbKn6xggYBb2ZM2GN7wAnLLmHXoYyiEqDydtXxoKuC6BsXB2qfkPzhQ2oVUoASYrTdtEiCG8mtfQCpjDkcPdH6S4nYDh5UtqRNSfP4XehQEYhxrLQPRBvawkurn5jKh", + "finger_print": "cd68de95", + "chaincode": + "5c2c3ad0a7cf5787db58177f1d5efcb7a4def352ddac9007ccc687838986feae", + "index": 2147483649, + "child": [ + { + "public": + "xpub6Ac3Z3DhxKwMtJryPVG2xnY4WJDP4P5SMAifmjfyW7mgx4HAhqv6dtbCd5cHAQ1h6ABu8NWskHfGDLyGvchoz9ugm5Rt46bpM7snPkZYdVT", + "private": + "xprv3RbezijQqiAvDguVfyAxEvoA7kLDR1b9GybvgiZs1yd6wUSrS7pWxCrWxBMbKyoibn9ARdY4doCboVrGLfR9JzL4hdBukCkYeiiGAHUfkPicXkdJtaRxF5uSEMhUZv6qH52mqNN2SJc1zBx766HLUR2", + "finger_print": "718f22b3", + "chaincode": + "1a679e3f4c47a4149a0bd9e859682b0efbfb13709dc8da0dca307032348fdad6", + "index": 0 + }, + { + "public": + "xpub6DPV4YN7y2YE3hzKFuqoJTMTArwsvYhWkszY1X5kLNxggTw6ddxtiGet7YGHPrtje6Qgr9TSjfKstRGriAwrssPrvFymSX1gqBXbsgn2tqN", + "private": + "xprv3SRcYDdw9rSpTpXK9WRkfKAcY5fKai3naxXNiReTzkHUiAgmu9LwgjLDhJMPM4nPym4ceC5Lbjq4toS1nd19FgkYz44fpiCAf4Tnn4oQMf6Xg9VT3cZKkqxmZ5PuQw13Wvh8NKvveaqbXQASuNDCZyS", + "finger_print": "ec3ff192", + "chaincode": + "31bc8c152ef3659173ecad790200edb0137788c5d0369c29f6c199b0b73b1750", + "index": 1 + }, + { + "public": + "xpub6EB4Xb7PJ53qswS5m9iAUXWLonUXaeudCtNL7RaDbaaeav9jCF8wdDBhs5ZXUVRAeLujDHzHjhQyFM1kwbZAsLTbMW3tG6YgB4hCW1HL8SX", + "private": + "xprv3Sf9p5nN6aLPq5CYrs2RzemPnoKpHTPsA1P9igfLV6xes6fUXruFZwF1PBiw4sirNh3MXaUqT7QKrpPpwUMBcbNUYvbQUWK1yTjUfbsdELXHdg5cjYyFxXVxbPHwgVnm4biqK398crfGEzxC2YHNX9E", + "finger_print": "5728fe5c", + "chaincode": + "5e5dbc2cf0ae175a76a07d7f5506443005d2bc08c95ca07d35a38fc69b79590f", + "index": 2 + }, + { + "public": + "xpub6G9yvxX797XMM7bmQoR4w1NpJxd5ixMchijgUWmnvosYsEtXFSk4UvMZPLUyrSoeeBQ3ChVm3TDtgtmgdGCECQUY3ZMEgtV56NyBKE28oH8", + "private": + "xprv3TFHrJTkDYdK7UKPu2UNArpydE3fuNeVDLuYs5fNPJ3yAnuwoUeX5hZnan8evbmCVZvb4BZSnrVznLhVcfcA9dDWpqe5sJ3AAEdqvunvUfYvNayAAirVEzCRWT4WvRoe2pzyVvfHu6Xxm6AcNn42S4e", + "finger_print": "64bb0b4f", + "chaincode": + "a0cfe0e9ca1953cc6e8ecb5f28f89509c721ae37ef44d76f49fabb19fe0d49f8", + "index": 3 + }, + { + "public": + "xpub6HvssSuQpZGwb2Dk7HuKL1rNB1FTnidbGaKGQMTvKXrUqNTeGD1AdW4JQRwGMPduxtXMw82irPkHcYV2S4vGZhcSW6hGi794ANdtozf9ZbL", + "private": + "xprv3TmrhWFSBDnq4tZJEFLvmRipE8j2KjHD2Zx9ZYyVtHhk3cGKx89yaMLHEPUrK31mHSPSp8KsinKgNyiguuVfPCf3ZYZH7Hy8Y2fpqp971yZjpYWyBW1eduKMzsdmaUsW82CpTNcRhcQFrHreePYmHbJ", + "finger_print": "5617ed82", + "chaincode": + "e7686d1212834e075e55ae13369535a96fcbb2a88566e268438d4456e1e0c568", + "index": 4 + } + ] + }, + { + "public": + "xpub69Q4nscR1UE412HRw8tooA2RYHUcqfisQ2q39zXE2ZidHBoFNUc8Jb8Bi4qfNKfYgnn6uAfYr4qQw8QArvqBbKAoGMuBNZKdK7hjf5Z6dnp", + "private": + "xprv3REsHtTvPSJSXpDALbybAiamSqVYaYWsr8fsJpkvjAmU2JmBt7Wq3h9GfP1u8vqW3VuhHwTU9JbHVQyaSVmwFWgpz3VXWqpvMH8yhoJtH4hm58WNQ3W4Z3VpDVMaMPyZF5eNn4GHCCGPoNRrBPo7o82", + "finger_print": "cd68de95", + "chaincode": + "b336306e14c661fbe166c5ea72a8616f47bc38df8ea12e77e1461747695026a7", + "index": 2147483650, + "child": [ + { + "public": + "xpub6BWd8YbyFq9hkFGN7xw5EjDBLnHaaLrXqB9BHyMF5H6jCnPE9eUZtjx4HBsX7pF5F1d8yyJeAQTwY1zVWcmzd1UKXSXJAETzfrDY6HacJs3", + "private": + "xprv3RsGuimBFa5sQjwCfe5nd6PEjfsMKmRWoNA7ovhb66wFY8HcFMgTvf44fcydmNrUtB7G3oopbMrNf7BsEVXUG5URbn77WLKD2qovDaFZPmZaQNC1QAThLS5FKZGbKh1BgAzrNv79xcTofVRYWd4xFz9", + "finger_print": "ece4d8f2", + "chaincode": + "f04d011706e5f24a59e18e55636e29f92e8edded711604cbb1e99e5f0241ea87", + "index": 0 + }, + { + "public": + "xpub6CJqXh5LeW4YovL8ExEEDN3FvFYMKsAjK2oSzKtn9MsXyacapbNZGcnGme17p4kaAJgDk3tNbB3H1MDeT1fN317Ju61NY2N5XZj4ZhHUrGY", + "private": + "xprv3S719vQi775mLxrYBto3x6wkeNBxj69BojmdmcUARN3Mf4rZ2dkwHJj2NYcWPjxarLZYBc4qLmqgooUxYk5VrqVfwpa9QZ7jiNwibRwSc4YYTdZzirjhtKmTCP12kFQe3M7MyKkVKW5aMLhndNdEsey", + "finger_print": "594c4786", + "chaincode": + "b1de389a3b0586ac268149c339d7f9a2c596c7499eba91af5eb57b8a46829220", + "index": 1 + }, + { + "public": + "xpub6EpiFxtS3qPGNjqxVKbLz7ndJAT2yZHmdRPzc5Hp2yiWVnVyLXdyQFL7CNTfkbHPhLsY68xJSn8zTcGUPypSRqzdeu8JH1CFMouLGuJLwzL", + "private": + "xprv3SrLWtKx1vFfwBgrZFDEktUtn7dnk5TZHrGUm2wXHxJbBh5VxjSmE5ynx6tn6VaJMw4CCYXE4yheGgJgmmnvKYJG2aDdYde24dGL7KhUkKuqsvztXU5vMxXvJawFSFiPLtUpXBK34dmZw7LjRWEqK9G", + "finger_print": "af7a2ef6", + "chaincode": + "a75017f72c1d2edcf4ce5c212e3475c051cf4e4a693a7320dd53dd33d9d0eb63", + "index": 2 + }, + { + "public": + "xpub6GNhsJMbG5xLgo88Gs52oidfPdyAZLqUMj1Xp8wXQzHFXANYZLv5MouhUy1UuQkXb5nhrvgPmbSiJiM2gMU5jr2qh8VVdFTRbH5YT9A5NAc", + "private": + "xprv3TK54fBmSTUQAxq5g8mS8H2ovKRUpSTJS2tPsspYuyBuEpt1JSPJU2o7wghrUggzsVXtE4HwAkygHdLe5cZnpip3Aeqdn2PYiGqVUxRXGe4r91GrBwRmDrTJJxm5NZAXghtWw37NdSuBuLkixupTT5A", + "finger_print": "82934091", + "chaincode": + "892862fc477970dd7f64b19f95f4db9870143922840d57669c23c9996cbd3b4a", + "index": 3 + }, + { + "public": + "xpub6K7NUB2faw2mp9Y85CgWab4cXYNJ5RCC9pz4DUZtxJrE7fyWLdDLkfepJHYBApCGDHDBj7aZeXfu4aqGoBMrWmLnt7PRew7dqz8DJu6BkRQ", + "private": + "xprv3U8Cone8cUtk71ZZyC85MpUwihYfDE6wE1zRhRvKeYNutBJinAEZBv2CtjUZ3jop2D2P9SkfXzRSdLqnkb42hVjUZMMgqTnLZPjMR11G1MKnG6UWfrTp1dHAY6MgscbcSFouiW2cCB2gnevJb1XCWnR", + "finger_print": "f6c21c43", + "chaincode": + "ef22544e21510bd5437ad5c2573a5f1e0ead225a0f1077898d6c7e42028d10c5", + "index": 4 + } + ] + }, + { + "public": + "xpub69Q4nscR1UE42uWAqU6KLKWvuHenYP57JfaU8U8yuFgWtnXgUx1ksEXDMf5pqhvGrkNMbvv9hx9FTfFQvnsUTAb32vnmJ7zagSFyoEDdo8j", + "private": + "xprv3REsHtTvPSJSYNeyMzUM1WYGmk9kCMwDBc9mRu9JQhGnaAuo3riU6S3TbNLNUCLYws5SX7J4SHykSDa5AZkUXRDyP3huCp198YSQ3UCXgqhDLyiuwQXQ1iHvDeEB3FbqHTQ5Cqwp33T8i8m7YVPFRLA", + "finger_print": "cd68de95", + "chaincode": + "705a6188c480eb58c90399dbeb9e0fece38aeb985d4c0f0843a10cc13dac098e", + "index": 2147483651, + "child": [ + { + "public": + "xpub6BB6jjWVzYFvdmN4cjdvKP6dCzz2kBfi33drZFeF3FSFrkqvFQCSic3zKhDjvZrB9U7wPbpr2DaXzu7vZ3AuCApzzXnuY68wKj6GafTYuPA", + "private": + "xprv3RmUX3BF5xat5oyBFH3kSMvQGkQxB9qhNCv3A4nyuRQX6ngf7WqwdVhdfTYqA3eMbRzMxrjZvyXxfgMwGf8DQZdwdrFuM4XF7oy3YJvyiJjp7rWfUVp57FBAiV6sS1uwWKUkZNadpgbDJUqojsvg9F1", + "finger_print": "bf18a5a4", + "chaincode": + "e5a9ea6d73481f367b077330f6683acfe178e189641aacf4335b819b3c79ae57", + "index": 0 + }, + { + "public": + "xpub6DBQCftikhojrYqkj5DrsuohK5zAvqV4btrFz6hbt4wD1MEzqik39J53DygU5EGGrs2dNSk9Een6xboG21XQBP2MN8EnmBnpL7bYTSRs2o5", + "private": + "xprv3SN2LggMcLA8rmn8dbLYtcWVz12GBALY3YkAUsKYyf16vg2m9CWkZHSW6aB8xyo6abvwDjzFz8qyNg7HKnpbY1Enr3PFx6NP2PjZ2Wdz1D8aw3FbQgg78XVjmDDyQQ2u1S3JjCEMeM8aQbj6zcwUYWP", + "finger_print": "cfe79cbc", + "chaincode": + "e5b7422e9da67201662709114f353531580d7ee600c19bc4c2738ea5e6c8d373", + "index": 1 + }, + { + "public": + "xpub6EJYysW4bWpXXRcYUYpfJ8mY5bs9y5FQEVXCjjsgoQFkxFqo78s4y4hXf5DyGasEpRjkW8BBcuJDkKdw7UxizLv2bNr2kXCHBk1W44bCmXA", + "private": + "xprv3ShNsY5rws6gpq1u4MUf2ac6aY2di9FAaASSnfAfHfxJVpZMYR93RszPSxDH2WsDmtqWoUAHj6SJfyCJTQdXEcX9N2EqyTqgjAXZXTU1CQNd9sUSLhyKdTmrd4G248oKUS3Xg2xPVm52WHBgMYvMLe3", + "finger_print": "68bb1761", + "chaincode": + "4188cd3d556dc0a292db46fde810d61679ed4c4157c584f6b73fd653cf1d6b1c", + "index": 2 + }, + { + "public": + "xpub6GQx1fcPPgbrrLpRQ2jbprBU3t7qm4YL614R5hKQaaCTtgT4vmeK2AiNTeEL3vz9WvBUkpkKUybZUMtYrMvX9BNqbDgFUb7ACCcSvqmDWtX", + "private": + "xprv3TKjizWhW1b8fNp5u98KXEVAqDmPv3kKaeHTmjoAVEfNEEgmv6Zs3R2Vw3K84e7TnU52wcyVhuUxjtrNRpJprZ7YMnom1A9jaKQxyTfhdFWJ4eiwucoqH3i1VzZRHjdAnUzVYcEcm11U9LQhfnZU27S", + "finger_print": "87d6b263", + "chaincode": + "cd150f24c291922d08cb1e31862828f24e86147218a24c47919fe276a9298855", + "index": 3 + }, + { + "public": + "xpub6K1VoBX5mzJHgzSjNUZxUDE1bZxt7Ndt5k9sKzjUyQ5hDpAWdvMKGJhkeyUsNXq475X3bW7KgjZxuG6h57qjw7fccHnMHbypoJUssEtrHte", + "private": + "xprv3U6Tc99D1b2384mUgcpq9dQ8s7rUjdJ8cd5MrfnBCEzx4MkPxb7aKwBb4sZ7QQDNWyxPx7tHwkvjY5Rxnyf4vt6PtjA4QnhevdumegYPyW6mb8LVPopYSdcLpTY1aCNkvTT4GWHWnKQUhX7Lb8i15qi", + "finger_print": "e8faf860", + "chaincode": + "e37e1b82dc00c5e8c74c45f7194b144cc6eb9036454cb81d859264e872c62142", + "index": 4 + } + ] + }, + { + "public": + "xpub69Q4nscR1UE45RXYGuAcsjaL6dEXeqhqZA2fA7hNyriRvdiseuJk9tbMbkP3t4M8UJvdmFcJ2pMuPugHHRkPzcWT4CgHTaqSQ65igrq88yW", + "private": + "xprv3REsHtTvPSJSZ82uCo9jHb6hCozbpEkLYeezC74Vphh4dFY5ECkaTZVFrJSos6YBb1mTbHk7x6fU4Ka1ikg688ja6ZPezfe99TBuEBMpDjjPRG7kpEQBh4Mt1dVqBRW4NuDuz2Gue4b9auP9HcYZayD", + "finger_print": "cd68de95", + "chaincode": + "6d3ad269325c2fd787f284b8e6b4c9fcda4087e6951c98a85daf6e40102611fc", + "index": 2147483652, + "child": [ + { + "public": + "xpub6AHdhetRkFsWFBWMP45gEHJUFYCVobiaeA9J2QJyiViE1v7qwAv2SypoDvRKy8PFrtZARhmF7Y6GBSzMZi6k29ftP7MqHbd1oeYQhmGmFY2", + "private": + "xprv3RWBn4tevHSR6f9RUqKhn5U2K957ym7XrHD5Qr7kTdGvaPueQuJdmi5CR17HQYYxJsifDeQAsbcHq4j637psWbPiQxqhkbDEh6gWGkykwoJNPQbFAtpBacKRm5tKTLX1L3FVkENcET2LTk73SLzMXT8", + "finger_print": "465f2acd", + "chaincode": + "4479057a703bdb3b11ae81333b8c4c45f44a8ab52f06ec1918072d6912812e45", + "index": 0 + }, + { + "public": + "xpub6C7GtCph1ywqeahcrJrq8tGGZ24iihnUuYHp9XHU4aLoMPFgB1ZW1wodwYfvo1MXSvbAfZHAvrT8oLU9xRkFvDTkGXuV7tqWS1AvobaMvJX", + "private": + "xprv3S3ZvxJta5DzKPDoLDvyU6YQzh4rfpAMV4CRYnRWHK45u9z8AJXeCRjM55Eujf2VNcAQoEDR9QfUeAVXLAjhGwrWKE5rStSvYqyciSFEnPbN81CMbNdoUP9nutKSGGttFE6n9ogHdnnXiKSLkKqePQ8", + "finger_print": "3e2cc339", + "chaincode": + "ccf1c1537a07747af3ea80eb32c024606ba9b82e07b198c994f3c6eb67a36c07", + "index": 1 + }, + { + "public": + "xpub6ErsSPnVgBXVGcekUBN1TXrx8GPwSfxYwLE4TfE6GxAPqXXq6XgPDo6kbLwR3NKznSZUss8wfBpX5rk5sZ7BZcPpjc3RykZeK1R6JcG3E8v", + "private": + "xprv3SryhgcRPLVU4rjHvtAp3n38GkEjsU72kiChcM5Q3PJNfX6T96Nhq2QJM8Gfy5qZ46TZxz92NzCVWAYRhfKTJwHVBpd9ER4XigYcH8vLkRUEy2AU1kyys7jxX5MUaAG6jMa47jvAqJi22SYgYUcb2dV", + "finger_print": "b48a3a9b", + "chaincode": + "506b4c49316ce3b9b0ac96a39668848fa0de31a5d484a2c9b567df09d9dc43c2", + "index": 2 + }, + { + "public": + "xpub6H9wB2d6tBjsfJTUvJzveMazgRZKWsYeEUqxp2Pdqr3DQv2EFoPc52Y6spBzeJoS1Rs2F9YwA9wgEeQYZ2xtaaCYRhoKj1dbsaJjzUvqQAF", + "private": + "xprv3TYWMASZEgE75FaAkCNVYZBziK7tJ2YNrvqf9dyV4LZ6bV9zFDWtCrsjXqDoiWSC76zEPtNAhwaN9534ZxMSwBxMjdFWBDdmaLibeNv1GF7HYvpiYo4wVbKdAky5Gea6EHmUoAKCNQx1wTRYki5wn6w", + "finger_print": "ecab91bf", + "chaincode": + "3a3e6ea5b56fa0cc7351e7d9a22ddde4b3c0eb336c3b529dc31bf9b7d1e6db64", + "index": 3 + }, + { + "public": + "xpub6Hhkf9pCGAEPxnFoguzbpVNPL2kz8eDq3ZTnoXfR1iZ9iXhCKUz5p5BuW1ZupYazPirXDAACvE44FwcsdDVKBmvRv4iJY58iUdX9mhEAfD5", + "private": + "xprv3Thxa8P8jhyn26gzwRRbgd5pzdEGAtmtv15yVGGpMPjGu7UjdAMuHd7j5YS1mv7djRUqsyGAs7W2DaJmxdr7p1gfCxcGMHdDEU4kwe7evWNcECJts8i2m2bSc1sKJWUKQ6XsGyAxaB9dDYMQigmnVwN", + "finger_print": "374ebe03", + "chaincode": + "8f134462d43911fce334a6733feb3e16e71a87c8dabc0c029c8a654df2f88898", + "index": 4 + } + ] + } + ] + } +]; diff --git a/example/lib/test/cardano/bip32/legacy_test.dart b/example/lib/test/cardano/bip32/legacy_test.dart new file mode 100644 index 0000000..0ad212a --- /dev/null +++ b/example/lib/test/cardano/bip32/legacy_test.dart @@ -0,0 +1,48 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/cardano/bip32/cardano_byron_legacy_bip32.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void cardanoLegacyTest() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final w = CardanoByronLegacyBip32.fromSeed(seed); + String public = w.publicKey.toExtended; + assert(public == i["public"]); + String private = w.privateKey.toExtended; + assert(private == i["private"]); + String chainCode = w.chainCode.toHex(); + assert(chainCode == i["chaincode"]); + String finger = w.parentFingerPrint.toHex(); + assert(finger == i["finger_print"]); + for (final c in (i["child"] as List)) { + final pathIndex = Bip32KeyIndex(c["index"]); + CardanoByronLegacyBip32 child = w.childKey(pathIndex); + String public = child.publicKey.toExtended; + assert(public == c["public"]); + String private = child.privateKey.toExtended; + assert(private == c["private"]); + int index = child.index.toInt(); + assert(index == c["index"]); + String chainCode = child.chainCode.toHex(); + assert(chainCode == c["chaincode"]); + String finger = child.parentFingerPrint.toHex(); + assert(finger == c["finger_print"]); + for (final c2 in (c["child"] as List)) { + final pathIndex = Bip32KeyIndex(c2["index"]); + child = child.childKey(pathIndex); + String public = child.publicKey.toExtended; + assert(public == c2["public"]); + String private = child.privateKey.toExtended; + assert(private == c2["private"]); + int index = child.index.toInt(); + assert(index == c2["index"]); + String chainCode = child.chainCode.toHex(); + assert(chainCode == c2["chaincode"]); + String finger = child.parentFingerPrint.toHex(); + assert(finger == c2["finger_print"]); + } + } + } +} diff --git a/example/lib/test/cardano/bip32/test_vector.dart b/example/lib/test/cardano/bip32/test_vector.dart new file mode 100644 index 0000000..1a37207 --- /dev/null +++ b/example/lib/test/cardano/bip32/test_vector.dart @@ -0,0 +1,3232 @@ +final List> testVector = [ + { + "seed": "d11db8045368164b79270139219d26620298436a4cfacaa601b4dd6a0bf09532", + "public": + "xpub661MyMwAqRbcGDGJtXqJYqw3hd4HVJ2JvDVaKAW7b5N86E18dELPWj5zhcorDS3vNvjmd3jyUvfPBAf2iZbMzWrMQRC5urPUoJmQPkm41AT", + "private": + "xprv3QESAWYc9vDdZmBapRhfSpER32jQ4oXDtwbmPiap5JpLoYQKe8pRJDQqEVw8aL83KgQ6trpAqcA5bBMbnAoJ6m8JYs7YyW3RGbAHLE3uFdY6aXPAMkvwviskVtcKu7hkqZb1JeLFF3ferDVDKnpfqWR", + "finger_print": "00000000", + "chaincode": + "a7afbf742404ef0985b1cf364980df6957c10757e358270362a99abbe87e157d", + "index": 0, + "child": [ + { + "public": + "xpub68Jv9d3qt62dc5GdRgATLeob7YHjQB7WBfT7M5kMe3Tyfhchgjdxa7GqbfzoauNgEAqLLykf54c2htmmJYghMHwP1ssx3HvtAbi4TbZuaJQ", + "private": + "xprv3Qv7G2m5PJqzXgX8Q2BAAQiRjc9KY6EDstP31CQmE8SV1s9D7dHNgbw1dNQ4kc2Mzh54bRbqTQGpHFrKNXd4uVw41MUqgNBvJRCx6fd1d4T6FLn2bSXTCZK8qHU3CkN172eYi8bqMvxtXpyuBc1iqDK", + "finger_print": "3947cfd9", + "chaincode": + "8b6231b42eb76719956b65660cd6a8be39b86790f64b7dc1aecffa0e56117830", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BA2W4TMhD8mirKxyq5cAjTKv39RsSRUQhTtSoXKKoP1xcSBjymxmurceaKabD4QDyXopmrtuY2iAMNGRErVWnKKjY1tYBMMTjEMS5Az7jQ", + "private": + "xprv3RmA2jxFzD8pqMCTUXM8AtTekdz4w9vvTVntP25riXg4urHFhZnAr2dNHtFVS6dLrvt5gwgRMUnsZxmAmNm25EgaK3ZrzzKqxpTUhvDMw8Tj1SNpcPcYb3Muaiv2ypM7whspRgumE6atnAKnAdypg85", + "finger_print": "bc944a84", + "chaincode": + "e94d68bdadd0ae3cb165100906863784e2cd68add922ca3777efd3b500c759d2", + "index": 0 + }, + { + "public": + "xpub6C5DknZw5nAaNHknRg4zgktEpS7XFPkfyHHVCCERvKZBeYfkS3V5eh8awuEdKYoMcHSR5RwqdD5NamzdVn3Z9Y3CpGYhGjp6Uq4GNUF3Yfx", + "private": + "xprv3S2xYRog3RdSqxAxCBEzKu4z2PpLL4YfgCAV6Gi7rxZeLi8j5xUyGbiPTQmU8jHEwAAZYZZYpFenCcMMADSAv7DAgEL9cWQ6ev1H2rb46HJtJn8QKr2GUs98jT8PcrCnYv3timkHZtNPnZxuyQzVkyc", + "finger_print": "395b601c", + "chaincode": + "b044282bcafb7c5b73188708fa2583070bc25e48272697756841a3cbbff52c5a", + "index": 1 + }, + { + "public": + "xpub6E5qqwzSspRGryXeYsHs3QvecP7axNniYZf43xc2D8yDBqLy9or6JQg3775KJn5wbdxmXWXQXcaWanRDAJ9Hiwdaqcxv7nvmuETV77JhzF9", + "private": + "xprv3Sdbty9XUn13vBpReX1tBz7ezrR2msDNbMW69hCtBgp29jFRYVn7vzxTaaHgmg2yRvFtaUFeF6NTQXKTVk1iV91za6jG6YNVoURuL6QSYFQ5GoWUG5UBR8Y6DneRoSscrjgJ7TraGGAt8VsT8zyydF2", + "finger_print": "4aeb2b66", + "chaincode": + "1d9793ddc1d26c9da92e14a2d5f2f06d63b1ee255e16de159a494f47ad618ef2", + "index": 2 + }, + { + "public": + "xpub6FWRVWvbqTkirGCJcAkqC5Dx9Gpf5WzTe2YFkT3dy6JMoXJmwPMk1PtYNcoGW8yyQeL4Xuq5govAKtCD4NzWc9RCFDKDfoVRZ9L5RdPFrbt", + "private": + "xprv3T48igGcT9LTzUUTbAsX6tgjksVXdafN8GeTRWc8m55FeJ68SAvDuMUGZaaxNaqhyvunxaxSk35ayDdaBngjDps1hkx6D3DEsuhXecrc6nbubFogbptWP6MNDmUHctenF6Anv149JY31kgKCCdvpij6", + "finger_print": "0ca0a502", + "chaincode": + "75ab01fa555f0ff3601a46829a47fcc8932402f7587fde5b334e7be6daa07bbd", + "index": 3 + }, + { + "public": + "xpub6HsXTLxq5cTubWsDc3zqkFotTzszcu62FXeYwCCiEUrg4xiZKS3t9v1ERh3rqi7q9u7oSW1YodboXr7xHX8dMJsJ1YVYNBoVW722iXsSgJU", + "private": + "xprv3TkrwoXZyz9krziwNXuZiRLm3xLPXCuxS4Tcnitii8eN7UJTbBty8ALHXWcx95i4JVzbEdGu5e8oGDDMgLDN7WBDTeBycyppg7ZpWt539gYdDMdN7fZkFBHXTP7v6hdc8JcfckgqJdckoYbyry6B8Ex", + "finger_print": "4e3b0d54", + "chaincode": + "75001965910b59c8c1bf61b8e4805edc48c8a06b7ba2adf48a5fde6cdf2cec19", + "index": 4 + } + ] + }, + { + "public": + "xpub68Jv9d3qt62deeBzm8iqC3snvcgACuEcR6MFFUjVgxyHtaJE61WW48dWeorntPWD8LdQWnborGmW9WU362QbRwTHh2CL3k9BXYZvdvpNoPe", + "private": + "xprv3Qv7G2m5PJqzYSkxnGBbmJJbXLRe9732x5VPizqUKYvZ6gZzCHrJhvPhbADK8bFQ9eoQwoa5bDHhUeK3cSYgmuiGigXm7JTT6ULnSNQWgR5PFG8sFCee8ms4Vo4zNdtwtBEXGS9DRT85BcLyNdDb99H", + "finger_print": "3947cfd9", + "chaincode": + "8d46bee34159d3c2c7804d5afcd7eef08d0dd44400b640d666874b8a6d2403fb", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BQYbRmrTuuZajbdg4ZQLowdRD1cDtGuWKDp2BTfYRZ9NccQ21G7kqPe47zH73yrNiHZD2AcxNVfRktvtEGq6TLm9aBNiRWche7pJPbqiEr", + "private": + "xprv3RqUBf8E75Czu2SHuhN2pt3Z1g8mPovxSMtNh2Lu9Ryp4Dpv8Ec7tEmPqYcbTs7vKyJDC2rLWDpAWBGDu7CgkcCuc5GDvB4xje3yuNcgBmytL6FV8YbA81ZS8s7WAGAtoQmCZYXEkPKp2kpDooiMHAZ", + "finger_print": "dea2df04", + "chaincode": + "71a87f8b909d26584fe36cdcee5922a904180cf5c555c5c03146d32bf0ad7d8e", + "index": 0 + }, + { + "public": + "xpub6CepE64LNCsev3knDsNkWx6yFzBgViEqFBCfzKSjvVLFunigFUDshBr8RqL2zNYFP5eMgVRu1QatjRBBqCfayy3QHjVRsMofamdKzuWdyBv", + "private": + "xprv3SCwMoCYgnPxAteMWHMmbUKduw8eFjfeij5RivFgXRxTY4n9FTjJutWySQZKMy4hVGw2Xk4KPQuiarNzCnKD7vSeyE9uqSGuWnakzAWEMC31SDuzHHPHsAvwBkDq6LPNJDSwmDAfMhpf1A26G6wDZ7Y", + "finger_print": "8828cf18", + "chaincode": + "dde42cc0b896100a8906e197ef78d6a20eba9e18226fa6bf2789c7d187d8435f", + "index": 1 + }, + { + "public": + "xpub6E13B7eypW1fkii9U9rkem9fJr9H6ncAnJHdP2pqBhy3pGX2ZyqLNUEKY1Mdb13SV5wuXxo6ezsxrRKrprLNTb4nAztTza4gVHHvKST3Ybz", + "private": + "xprv3ScB7c1eodUKRBYADZFNTgn2fLHnPAPYSUu7NMT1ATMoM2Dcw8wGerfnvdfrDYLjptCdmM9VSHJLL11XV2CFc4CDa1neZviFH7zcWkm1BtFMVFoW5FAk5am12GXeCgnw3J8g1swQttcX3mGCVcuX2JR", + "finger_print": "3fa5f905", + "chaincode": + "02e242fab2d07a77aa3e3bdac84181fb8e5b9581ba8ccaa317487bc9a929f17b", + "index": 2 + }, + { + "public": + "xpub6G9a5CqpqS1HaT9jEFJTapbtastuxgqkxxxb2wRiRMQ7JHz2PFN9itXLrwsG8wstXxiMGxbCoLupuwRNrzKR9mMXKxoBwLJ2MZSHeE6K2FS", + "private": + "xprv3TFAmExADsBCmQ84F4S8fLRfGEuupTN9GtTZH8hU47cum7cjW9sbdJMLCxn7X2VWG6QeCSyZqC4BsuFhKEDq8ohU5BnaREqa5E1aGyRhzimwwdpTvZjRveYLupYTNyNcDLUL9h9PenGFqPqnmmeK7e8", + "finger_print": "63c40875", + "chaincode": + "725ed37edd2a6d5a78fd71138b71bf50f355b17584faffc70ce43caa1f282b46", + "index": 3 + }, + { + "public": + "xpub6JBFPL3cJLjtSNMeMyHViD9W3evLtK5JwymziVxu7cBFXfVmJXZkDGPJGWLAGq9XL1WGvTCbgqYWADFq7pv5Q4wsoWweaxhkbWKtLTPyCHC", + "private": + "xprv3Tr8JdwVnvKWRtLLKv8DSoXmKj5gbfTa5ZQg9wpUtDQjbhwCfrFth1YiRuYDaM6GSkf87B4x6Tkd42gv3qpTfGaQRnotpSyi4QWyoPkzs6g6ZvJ1HjFxd83T2cQSkvVLvtWVxTAwUYiHfyxDMsoqymb", + "finger_print": "77cdb3dd", + "chaincode": + "9540b6e74e1e7bbc441d3a6c4e3b4c3f1dedfb0b110639f83c5069cd4a330d1f", + "index": 4 + } + ] + }, + { + "public": + "xpub68Jv9d3qt62dgkBc49gwE63nthGQLtyMeQyRoMEHK5cZ6XvnDk77svK6f4wy1CkAdDFzbanMtrLC15vEvZqPNEEpFNWrqqYc6RssPkZc99U", + "private": + "xprv3Qv7G2m5PJqzZ4zrgFeN1W3REf989bUvicbJA9mFnaAqf1VRk4w8ucWR5iSh2eHj1wwg98iFxVJscVdg6WtHa43cVB3aBFapy94AA6b73ThVN2ZoWATcSM82FAV8UnpmXmJbSQCJi7iHqNvsjY6Yujh", + "finger_print": "3947cfd9", + "chaincode": + "6089d6e6b770eae655ba0377f1340354ab4f2c1b434f5f5209cb374f429ccba2", + "index": 2147483650, + "child": [ + { + "public": + "xpub6BLQAZEUcMAoqdb5Zpp6zX7MbkG4kxQbF6m4HwbNmgwnS4ipKhRwEiyB2pkZHoVAsUPHQN4CkDtDoHCy7Jt5UBJuGG64DSKwP6rw1MRxikG", + "private": + "xprv3RpEmAasdwvoZcsaGatbfZFc4ZvJhpAGcq68RT7y321nbLqADDQzscmHjUtdEFrjszRrK5AwukUzprsWxBvHZpVWiuZrL1irqMBNLr5ZZB6r5XtV3PfyqyJs4Y1GfQwCjAEc4NhU8H985r7KSYArjJQ", + "finger_print": "d4e9993b", + "chaincode": + "258964ec1a0241a210c9433afaade6064adf1381e594b156b2cd220baa852acc", + "index": 0 + }, + { + "public": + "xpub6BwMR7sS7oGWttQdxNDgTNzP2VE35bS8sFMsTi8hRpp2xK9j1fMMetEkx1ymTcAdHMmbNM8UdD5xkQLXGGTMegGe5zbF11fmhCgPFfKJVBN", + "private": + "xprv3RzcytWtqUmfK3GvMnsT6GEcgnCRJmwjsjn4VcmMnopB7iKgbuvrrPVhLTmYWGQGz4cVGbSz6bYWgtmouXe9Yqtbk2BcRSyfnxn5m84n9dveXZ12LhtHog7LPVEZe3c5MFjWGB369zZwe4obZiQtdDB", + "finger_print": "26e6aea8", + "chaincode": + "3fcdac897da296b617d8da750a2a5c582dec68ad443bc086f5a7bd65c44688a2", + "index": 1 + }, + { + "public": + "xpub6E7Mmhofq66bKCi3fstJPuwQBMJhEEykzoGcWVBgBM2q9Q95jG17tCZ9m62rVx78JhLajoXAL7R2Ns1ifFbiy8RHAk4wEngqkeAYfAUL1Li", + "private": + "xprv3Se41utTZi4Ki6hRLdB4Yj5cckGwBjZLhEy5zGTaVvGfpA5nycSQcHWnFmM2mu7JyeWJY9Zwb5cvWy2Hskoz3yg4nnLQHrxaAnEVQqbMxL43wz536NKgUduZmTxBFCt3cMjXT4orU1usRGmMwkAstfD", + "finger_print": "4e798468", + "chaincode": + "b87b26a364704930af7e28ba0b47d6a590ff50c31c6d9c155945aa93d96b7c28", + "index": 2 + }, + { + "public": + "xpub6FopKu5HEq4WvAJt3URpxMorVCFHgWDfJbx219Dvdeg9nyLwWzVtkqmKbdFHLxiHk1HYfQYCA6E6wiuLs8T12PZkMPupdRX2nkUotRbQNKH", + "private": + "xprv3T9JQV935gnR2SDRhzzSHQwvXqqS4C4DaWJqDF3Q3j2k6yZWXTa7REAWGPSbhwPGbR3epeMXQnKABTFNXPNVxcUA7eDdNo5eV1aFGJo1GdGMcz7i1zBv4b1kWgaEJZqGSCoeSWAoncgcKMqfd4UioAc", + "finger_print": "356d9440", + "chaincode": + "4b5a29be3e5f964b73b3acfc082ab3b59eec12f2186980fa6623c4e18b0e58d0", + "index": 3 + }, + { + "public": + "xpub6Hck8xzY7pAkhBHg2UNjKGY7kD2EaTPm5Cgy45h5BsPsLg7CYXg4apZDZJ3HmErdUDdTFbeWK7RQgjQZSfKC49ou5LzkKwbwVcTchL5ex66", + "private": + "xprv3TgUGaRhPG6kGpqDgf8oEcoNyW2sYcJ57KgkoS77uZEZfQTUYcAaSqWJKy6bFMxZgrWh1PD3J8KP1y1vK2DiLP5mEifCrJjvZyYGEkJ8T3tYSYXEs6h7HN5GMSm9gtQbePmUjDiNi4XFyVgz2PJ1Red", + "finger_print": "2b8ed8ea", + "chaincode": + "a04734e5a832940cbc9fa10fd9e77e1c4c0d803942837c2f1f9e1834a90d556f", + "index": 4 + } + ] + }, + { + "public": + "xpub68Jv9d3qt62dihABkLc94e5fqKzbVAmSqduYxRmVQ2XgvkboatNjGGikwxeWpxWgeWDXaVsSsx9AUErFBSmY2uCdcNDAp6BA8EgKX5KeePm", + "private": + "xprv3Qv7G2m5PJqzZeZP21sWS7YQjZYZTyuCCaxet8QnkMzLzD41Pqy72SeSGsVfou2JLnygLtk8ryhphJpmvFhhxVspxJESZm3W5PAbfhJjfhQq8wpkVj37JTKk1iZ81tQsZFQrTZTGLpuSL5aR6DQ6pZX", + "finger_print": "3947cfd9", + "chaincode": + "242f1f1eb129ecf763e0aff83d70b4778d9f97b3df2bbd85efb1d33b4fcaae29", + "index": 2147483651, + "child": [ + { + "public": + "xpub6APHKATVAzoZwPEbTaPzDgtWfQFYVEH1BUBLyyp8H3KyyJbrKBvzrqwjPmtK4xFTFq8zQP7dXtX7XwQWt9AUZ9LxNU1s2vHQytuhCDBXsid", + "private": + "xprv3RXs6hHQyqhZifQiQXSwyGZV7kBeFurc5K1fbZiPpP7hxSEMt7vu3cVGzVjrLWeGaFjuahVjWy3tnmyjVQ7YSWvbcmm1va9Y4DuHsgw2V7JJYArTQnL2NxuvpGC9ARJLT9qv4pU9PE27eNZ9s1mQc6h", + "finger_print": "539f173b", + "chaincode": + "6c6bba4af5fa47c8e75da25109966706d8d93b6cef25301e1ad55a6b1d6165ec", + "index": 0 + }, + { + "public": + "xpub6CfdiMijNFkHzPkZCUXHEipfoXWQcH3hmJbrQ8AD2qDRzM4rirwvsg27tFvfZ4APyhxTLUNBv9X4ynC6Dih1JQuZni4zn82CSN2CDXiqepJ", + "private": + "xprv3SDBTzAgheUv5QihCjXoTsyJ4KEnD38rPh8B13Z3zCfEKcLdgvdj5ZkQUy54511sDFVEhEx6f5f6TqV4S4H6rzRu33Jq5ZRykmsnVUMrjndJaTATfTqge2YuuXWAQyh9kQiEi2u99HFJ2dZZgN7ryG1", + "finger_print": "8a1477ef", + "chaincode": + "0b3a0767167c23a66cb2d2b48836e742c217c0e66bd20b1dae5a2289f1022a54", + "index": 1 + }, + { + "public": + "xpub6FK5amfcZt6KDEy38T8g5QspkdaBqnJjwJEWnB3pMsqzU9arKSwdH9E5aPhCoH9C7oTSTNBVRvriEyKDCnJ2uSLTr5JpkWuPrfoLQJY84Zo", + "private": + "xprv3SzmHAPKDzQWmujKTKz8GXEJDdEnEqk9YaAhm5wFbdAW3h5WnzDc2BmqzVEoGUHidRdoGvYNb3z7CvDxSdo6SnbCcJfbMWepBvTNP73nheQhvpEWxs18bKG67159U1RPAzmYXXSGuJAkLakMFceixAZ", + "finger_print": "f204ffc3", + "chaincode": + "5e7f6d1747d92316d448d8bd9a47a8375a85d7d5fcb86a90175eaca0313b8c7c", + "index": 2 + }, + { + "public": + "xpub6H6kACZhcA85V65LbWfapNu9nPvNxYxy85YmETDtnaXVBarMcmPgJyX2yiPyLLATKuWu6Nonh5jWy9kVq5gnUhirQH6eitT6KGfx5Rtmhpu", + "private": + "xprv3TXZPSZxbxnKLLKpc4JmXKYShqKTK6y3B4NsDxE15YzinVhG66kKFyHA4jDZJVaA92n3AZ66yJVaMzTZbmhNDFo13BkJvLUGQ8ZUAaUHi1WxkbbUynN3keQ84LHnsuBBpgTVBy2ShyMNJ62bEQX8Syg", + "finger_print": "e5300788", + "chaincode": + "433350d6bed182af50601d7f136ca77809bb2c28f932cfb680c7a5e4db549e8c", + "index": 3 + }, + { + "public": + "xpub6Ht65duuTj6GKhJZyXC2feH6vJCrUxKbNk9t86aBSDnXsB21A9bt5bSN9Htz1Y3AuEkAHRzgqo3aXo3xHMTEKhRoSkdACP38ZXiJy3iM8UR", + "private": + "xprv3Tm2dvxsCwDZjrUaR6JRjvjhLAJRPbtJ6vU3rATkv8CwFiXmeKRhMg1daGYtKXtwQMoX2tq3AVcGVB8LD1Y5Ne8vzBybqfi831zDNgKcXMq2yaocmHrJLhtWEGPap9MBdTSZ7a9pqqVNhmdkdg1S8Cp", + "finger_print": "4f8cd771", + "chaincode": + "7923416c23fcb73044809e685db1ccad31b5aadc75d1864f28e5a3dbe6d6d7d2", + "index": 4 + } + ] + }, + { + "public": + "xpub68Jv9d3qt62dmHnaQpkmCxiYXDteTuH4wDCuji3wzd87VGhAZ9vgFaRzaBQqdamRWCpBhJFKrrbTpWHNWmDNH42nk7g6X7u3XYbNiGNru3a", + "private": + "xprv3Qv7G2m5PJqzaRJdXVit32NrXAfoE8Mn8rpQ3zt9sdcLDFXBpguMUDBDzPnpLg4d3h6DaJBtEJjtp18iMkohHKXNNyxrSaD1ZjD3uct8TRZiuExXyqoZcfKEnXsTWtvrC3BHoKBxtbt6tvppdX4roVB", + "finger_print": "3947cfd9", + "chaincode": + "29089068beb914b4ab8e07498754d2a4e51b367380cfaac36c2e641832253128", + "index": 2147483652, + "child": [ + { + "public": + "xpub6A8fKCek2BTAQXA5XsduVDWnCTacbeymtJ6Ly8bDks2EoxZx4M4TPHFAfQ4oJv8g1UuroYTtEdcue4wSkAqEfdRTKbcswgt5n1PiTqpKjmP", + "private": + "xprv3RTXC1LvdyA4fmU2Xvf7QLhGbRw2RWEvSn7C1QHDpRC3sQwpFypEPH5bpRmcGyRoHFeXVCqSDQZQDBZBdFiDTQNxqBYDzKWjowLgxh8fQy8hxAE4LenCZr2BcjmWZULeU52w9hp2KouR5X4JqQKvULL", + "finger_print": "31535ad1", + "chaincode": + "df5f64551a852b133dd4ad3676f6e25ff5476d6ac92c2b4ebb99761840518bfc", + "index": 0 + }, + { + "public": + "xpub6DP65fkpV6jecS3ZKDyNeMS4i5Mr1E7nW2G6mb2KbTAUmszmA7ScSWqpNxKVPL8VrUsDR2SeGv1Ejmo4PN4YUfwSQQh4RPBwFJWPvden6kT", + "private": + "xprv3SRViGn5QtNrUubyNgqRx9dHsRohPikmxoQGihiasX669LJJNMJgkHGAcqGvyeXX6mhaNmzTmNniCACRq8VQvZdVsigSu91Mp5WYspKye3ANkwZT8V2w46fybLa5EuJn8s6KUkKbtgzf8rZmZpK1bsA", + "finger_print": "eb5203dc", + "chaincode": + "781209d7e60918eb3afe8de5cc20b2a27fbd8a38bf8980a7c08cbe42d7a07d5f", + "index": 1 + }, + { + "public": + "xpub6EakB22DKqJZmkxStxe1Jr2Tzujq9z4DLMiTopYJ6x8FhfJQJR4riAR838Vhmgs5MKXe3YoKvNNhuKgQCRrKjRRLU8f51YVsWRQbQNiVJN9", + "private": + "xprv3SnBsSZA7uQBveLhigLq5pA7wpa3UDh7b3rfUJBKmnrMGMpFCNWsP4LVoXYCoSDPwMKok1BUu2erYBFXAsbTqMBBXLibNnU1nhY58UyZcDcZqrtmGFihekwT38FSCzkZfoWrEFgu48qG1mJa5xvUwn5", + "finger_print": "8eb6fd5b", + "chaincode": + "0b8f67d9e23ba2bc4d8171ed58b5760255ea903865950cbba829c25424371be5", + "index": 2 + }, + { + "public": + "xpub6Go4pbM17GfftZz3TBoXH2BDMP8vPEqkP5UbTiaqht2cfh71RdeVH3eqfyR2wiCNDP8DL8uc8ojErpdo4PFRMyUVhYCkgyWSVJVPPTDsTAE", + "private": + "xprv3TSJoH6EvT5L2jV2pbLEPmRLppKARjCUnNzKw9BmBnx2m9ijGSfjsQdkYeAcnQ9hvGi1XX9rx5xW9rsS4MaMLsy9cyBRhy4n5Vej5ZPBQRXmi1KL3T5aswsxdfUgRs1QMhtn1kvMEBxAhV41ANHaSRg", + "finger_print": "bbb838ef", + "chaincode": + "f930109d85099f18e499fab9822be2a5443f9be6cc16bcb59ef343ac97f7f0c5", + "index": 3 + }, + { + "public": + "xpub6HvqGjfrqGEwHE2jE2fdcDZSMj9ruE9RBhJLeZcSKKXhmukQhJj1cC6RWeGKsfjSf38pTRZ9m56DXwtWnJL6XsdhAUs64qgq4VckwXJYDJ8", + "private": + "xprv3TmqvjZV7KLEZU4NHyoEviWpTje57Wc8CE965suSjDYRXELsNvqGDtkP83uQo2bgbMShnyMefBLvk1KiK1x9MswNUS8fQ9ACou75HvjgVSxZyH2yeuAvoczptRAeFta2sKH383R7n9Yy8TWAyFv5fJQ", + "finger_print": "55fd064f", + "chaincode": + "7e712fb36d4462f851022c5f2c5b98afecd57859c412565502889fcb93602c87", + "index": 4 + } + ] + } + ] + }, + { + "seed": "98c24476237e774b4a36c5add8820c287e9a027881d3b37c87dbd7359f6d5e98", + "public": + "xpub661MyMwAqRbcFTtPGGZfaSd9PkesxLnPFPLmc9hSBMKp4qbnv3ZquhZaQY84pESwDJ8pHmiTpGRZEdeBu2D2NoJZS9vxTamNztNt7JwU3NH", + "private": + "xprv3QESAWYc9vDdZYJCStzBjE4uCo5cuRMd6P8yDwZ1Apv5JWTZQ8KoXihjhe5Wi7SwHsbjfmZg7qR5pGvSiGSjpKYb6gSNRDEfAemTipwh76aLqJh39XfKc3G8sQnTHdWt7VCSJsDVEBoFQPY6umtT2ww", + "finger_print": "00000000", + "chaincode": + "5c91095a6a56849c9ef23413b8e065cb2a1413c13d0a7f20bb3f976d86612506", + "index": 0, + "child": [ + { + "public": + "xpub69Yp7coaBSS6Nxtor7FdA1LSFXcZRqHJz1z328d1Dz7QTRAmhYq8SwiUM1FqKLbcQA9bzxBRPFavTHzC3wpmZDGRy8Y9uTiSPNvZZva4zg3", + "private": + "xprv3RHTzs1iakf7rCSQ7gMFq2Y5AoivQieTK2ySaJm6ZNbNU6pEoC8UU1NJtrTh4dzHdCp9RujUZvLDBZQQz3abtNHdA5u73bajWfCrdjidgZboaQgKP6FZFLbkPqwXQeaukcE8YVJKB8VQC4t75BMsC2M", + "finger_print": "e1ed6cc9", + "chaincode": + "f331013d6f4701b3f128f409550e5949abe5f4edb72d158b8fe8de893fe33977", + "index": 2147483648, + "child": [ + { + "public": + "xpub6Bcthc44uxBctfX4UfzQSEGZn8gQginqZWpDWEXN74QbVyE6697aXF2AcdXPpPHU9SdfZ9RvQheTm5PWMM2mWLUoAtkE8iY7T1GQoLGjxhg", + "private": + "xprv3Ru8utLcG7WmxoYuQg6aEHN48woAeHEejU2XUzCxRVaXafZXagLNpqks79Q68uXKdRtgZHA4YzzZAC3c3TBkhCwc7eshbFZ34K9tbmpfNb1jZWesUuh3c2gPfyAf7aF4FcYn1F5R9o1CgYxJSzWB6Wq", + "finger_print": "fb990efb", + "chaincode": + "a636c8ea65ffa2b54d391ac2c750f342c50c5f5f77acc136913b0edb7bbee224", + "index": 0 + }, + { + "public": + "xpub6DEqPY5wQXLVqSTGi7pdQX5ufUNGN975LzAgXkp1fJjZi8o4Neqb5RfNSi761SH8sKM3jeEuNnUt5zgQA8xzJkzkfcnHCanQ9H9WaZ7vnoZ", + "private": + "xprv3SP3Wbv6DGx2ctkS8EhXYuMQTb2hpVMuP2KWgE3fRiRoEEA9hpCKesGfSFoG6wsECzLSdcCTZrNTwdebGPZqrwZgc7EJxwJscXht4ZxyGtd2RNMLF2VKN2JBdCWxufZH5pKAUjD3cNQEymRtiMnB9PL", + "finger_print": "d7f5e473", + "chaincode": + "c3b30376d0cbe92d46ee4b5e330402d8241a72fffa07b56145d6d248c9578e23", + "index": 1 + }, + { + "public": + "xpub6EtGKKu3sK8dDsmbz6SqDMRk1Uf1NiQBTfDX7bFv725KDimrHwVm9G8LTXD4LXd7o5872XEPRebDjkEdWKB42RwxicQcBAokPtQm1HFyxdC", + "private": + "xprv3SsPjBWFfq21Ue4of6HNvoJ3U9hB4EShffHmSW3JgvEtPksgGz7Qtb3AwWUieBhzYRqAkwu6Xo115ZkCmeRXgtp1kp8zo7KBFfwmquKVVynJ1us7zUEfSC1B9um2usnU4Q82JEUgQKxgAg3uWX4wres", + "finger_print": "b7cf9937", + "chaincode": + "b95952d13ea16e955904406db08d0fa679812b3f1b0b6214a627d1493c8a3282", + "index": 2 + }, + { + "public": + "xpub6GcneySVE8Sm5AvPWLrnmYxnBc6H4mrVZaWtgURnZwEXw2qEhooAw5E8P15Uu8GLuuCbHTHJ7fNmU7xV2DKDwbS59c8F4zDdtJemERfCYgR", + "private": + "xprv3TPFhaarrYy2rQ2w7nGdcDkNfY9XhPfb2RZzhhizKmB8PZbiYV73cmXQoSRfxbY2f8bQCf5XRdut7F4b1RQTiK3hjnAmqugp7iwLhPkfUJYjv1w1J9DWPBoRCGZx1sedhvgAXYJZ1AJD4DnsUicnhuQ", + "finger_print": "a39bd64a", + "chaincode": + "9bfcc723d18999b8a67cbb79cfaa00f4f5e2861c767fd170af54980d8df0ebc7", + "index": 3 + }, + { + "public": + "xpub6JrHtKGMf4GwrRFAkThyrL1BFfmwFxyq9MkbKbrTN2h7sAmi4K4VDcUiwFbqixiB6CjBUiG49xgP7TLAYGugJA4NdiZRXGJRFxfUFbc4AYj", + "private": + "xprv3U3j14TLcfbYqsp1xnuEx6pTKWWB2guV7Rr6WBcSaEXftCXJ5Y7gGvmcmC6ejoPvmugt57cUAUzejEDM9farmX8LkcVkptJRN7zCEgwRsg1Ry7agiUaRQ6Ysrn5ZzPXSCNANR5s1ZorxzygrVkuaomg", + "finger_print": "d363222d", + "chaincode": + "7b2d3c36003cfcc56317f72ce4fa5f1d975d447f37b2edd4c0e5c3891730690f", + "index": 4 + } + ] + }, + { + "public": + "xpub69Yp7coaBSS6Q1wJAyNfeyR2YdAdL9PjZxpkPGX5CCwTCB8Ap53kt8DcPV3DcfxBwHNHjNehMhEgViUwqeMDvbTBmqR3LZA8KNU5j3StmrB", + "private": + "xprv3RHTzs1iakf7rWa9JxG21xYcbQdsFKt9aTcQBajSYjFQxPMLhVRgbjgu16LHDfDaeZdcS9NpnjdthEZHDHRqkZjJdxEgDwdvF8AuyTCB4rN17BbJLB6bsEMPRv2pbt61yR99BHyh6a3g4fujmBQgHoP", + "finger_print": "e1ed6cc9", + "chaincode": + "5ce71169c42f95ac96c780e2632372428ea108bc35ebbf8843a0f70dc78085c1", + "index": 2147483649, + "child": [ + { + "public": + "xpub6AtSsh7Fc8mzpyqSArW8q2CVtsyd5HMVurq4CU5RvDzU9NwrVkzsvgnhDtM8LTtn6URyosZoYgjJUDH3njvMpH5FAZeh7YNrKznp8cBuZnB", + "private": + "xprv3RgXbcLPP2kfjyUGcgigBHaCzDKjbh7eJVMpFyvH7u6jir1FUXgwY79b3suwR5mmoxALm5MXZmbeSUWxacMA3b9xmck48fb746adPGNc4DxfQagLzqEiKzKCNMzd6BGPPLbyqDQ9xAUhL4si3WsEbji", + "finger_print": "98089d90", + "chaincode": + "b9f81ed62d397b05a0a72579c303287f12b06de847b9c26d2cbd5344cc41a4b9", + "index": 0 + }, + { + "public": + "xpub6CPFBVgEnjTsJHhcqJNNuBTvBpJLhhznJb6LwNcUhqBzyikkqG2eFidcVsy1Vih581mdGNCWfcUv3gBAZVQyRk1k6qkm3oKj9pKaWw98LKy", + "private": + "xprv3S8K6hWsFpgS4BQZsWDTKw2ZjJj6bFXgXW7msbNcmBL1BMwh9KLEtbgDPoG3KexGoanpQw6g8RYxwBZMQb9b81Cvs3xX3hV2Ef6c9Ya5sjoYRybjF9KB1kdfvjiD7WgzbpW5efLB64EqTkiKsUpjHZh", + "finger_print": "63a3299b", + "chaincode": + "e0261e9232648fc4295b99abd2572f11d6bb26c14ac6f63f9209cf4a0929eac3", + "index": 1 + }, + { + "public": + "xpub6FFqKwqS4tCLqptkmg5rXgXQiMrmupi4dTwkoihuZtnjmxxKNM1NyKGu8CoJbmLsbLSjgwGH2yCz8Fmhuc5dSQJGJEm1DBbQrHBz8tteWyN", + "private": + "xprv3SyoMbR6hD8D5MpgmVH8r8d9CSJdnXuF9RyoCD6m2gXifAdmyprRFCqcXECd5tqbabDRftpB3sKrDo2nRZQhzCivWaS8oTWVLwxNVbNCHTwtZJoeqNv9WWVdTYujMTe4k1XzFYiA9BrpjsvL3XXeVRH", + "finger_print": "ea67e67d", + "chaincode": + "036bf4b190b77a2b6809724b6999738e1388baac8efdbb66ceacb8147cb9dedd", + "index": 2 + }, + { + "public": + "xpub6FstZuKC7LfySHzhVZxUyFtDgX1QJZSvWA9MoSvuHLNhUov1wbbxYRET9zF1gKaNGgW8p8atdS5G8VxRhZi4AXgw9F4jtVceVXL7ZRDG5me", + "private": + "xprv3TAWaqB56roGV412fnJKKyVqgTYR5rVmpQwXwPk4mSxPNoeHmqU6jHwiEKFwUEmue1iiMp6HuQGgfqUqsKBmivtCatEZHrHXEiyoBeSQuxKZtvGRdjjXvSpQA44ExURt3ku7mb68UXo5imR464cxLxt", + "finger_print": "3efb7f78", + "chaincode": + "ec103d60b7a317d298f27eb77dbd65a6e12f156670e9b7442395c81089671bc1", + "index": 3 + }, + { + "public": + "xpub6J7GVrPFNu3FUQir25jMx4L88ZrNTwEWy5ocFNWpvRwmhoM7o1GnLDLdxwmiP9LjQyJiYfkUprdx2zWsDXRghqNpSaxMH1EDBffkue6owZR", + "private": + "xprv3TpwiYAWEfa2JsToX3nQALdbXAfYA2iWk8tgYMARGaM86xcVGPNZmoFqkVXSYwkPHiapk5jaafrNSJB8CRJzr7DZYySJ2oEY9Ch8qCSMBVeUnA82RHPBsRcFoEQuaZ4QfDyVR6PZy55xvXUvnqE1Wam", + "finger_print": "6e773724", + "chaincode": + "03f4cc3f30cf96b909000cbe73e6ead662a4cdcbe9f2ff48def649d6760abf9e", + "index": 4 + } + ] + }, + { + "public": + "xpub69Yp7coaBSS6S6P4xNnNuHTeuLufggNzVngxYnqxieCy9ANftoe3rFXqPuDj44upc8iLyXssD9NGVeHJ7iMoipXfhnrJvNLHbCmXVdPKSn7", + "private": + "xprv3RHTzs1iakf7s8MMMwJyHFtT7xrYu1V5E5o6BbgG9oj1MZ6rsjdiRanQ2J9qquJwB1A7qf7uJ1q2ALwqmQBj4YXSq5WZCbPXs8RxoioCaJbBSMwAcWaydUcKCWyREBZRe9qm6QQbkmm2RQLqTYZXqQV", + "finger_print": "e1ed6cc9", + "chaincode": + "2d7b7d1e7da2062e566b4b158a3dbe1fd63ff135562c3710c422a259f6c33a40", + "index": 2147483650, + "child": [ + { + "public": + "xpub6BUxLirsv8yFZKuZ8YZgKUha42XduAidx4EC8g4zmPc4ymyVE9atuzU5MpoREU5kXj6JCrJkawVQVE5L44Nr7kU9imiKY7FXkBdBwgy9Muk", + "private": + "xprv3RrnA4qkaUGsgPDwNKxYoNRKiVmFZNWs53Ta77LvaFZ5qbVqy7Amb9YrNVpTVYTCTdmCiRSVbPLQ4B52TvxisAmFwRW8foz6gNWqmDyouXCj7kaQN3KFrrdidMVHJCChbTmbh8LgZQPdJ2q7QZAzX3n", + "finger_print": "e8fabc08", + "chaincode": + "61272a8bd3271a7194a6b0f716ecde231cd938751da52e28c7dbe4084e08edc3", + "index": 0 + }, + { + "public": + "xpub6BuXaAoSF7eKSBwav7z2Y2JSPfWKd26NwibWSd6eQHHj53wc1u6pgV3shJjtvMEoD8Y7Vw2T2pz6ZSiAdC3HG6SjvyLzq3adjfdBbG1xwmn", + "private": + "xprv3Rz5YEsxdMG3bdev47nYsQqDbkyTLtb15curcxigovQQCPURT1Tygi8cq4dWRwqgs2w6hsX2uN73MqfSW3j2PMCAZeVf5yA7aUaxZ1Y38E3shNw4RSVjspYDAW5KnUJk4ZnGhEuPmtVcT36CpSezqE8", + "finger_print": "229ed47b", + "chaincode": + "9a0b5df7b1a9d75410b96369d7640eac59c9e8417784f377c6874da7a532f519", + "index": 1 + }, + { + "public": + "xpub6Dz9ZXB3d3SiX8P5xFDctydbeCHm9hSPprB7i2fJ2Z4Ayje3LXya8VscXq2XHZzk5wJkTQTHJnujkFprw1TsefNzveAdC6a9d41EPvaXQR9", + "private": + "xprv3SbunKaZT57wCoT6LPLvxB92m4Y1jBtiHGfDsHFA2MX6zBDy2kWMYvRpuVdaXPMo6yx8mQ91AypQm8pz62oZbvUakj1UfFeri4j5QiUzn1o7uUwU1CQG1g8PmQRGkmafTBpFN1ugpwWZmyXxjrVLf7s", + "finger_print": "3d8f9783", + "chaincode": + "3c74062859c7fa8e8bb04cf47132d0569641e485f2226d45cb9d5e4a0df89e92", + "index": 2 + }, + { + "public": + "xpub6Gi4sJjxdNiP5o6kXPFAesS2MPM9rc1wWsASDF7LhMazFNQK96jrhuMS43YhPty6MA5k5eW6jgSqZBqHWune7j9V6keLGEEh9rVrv7oME81", + "private": + "xprv3TQpfVzdFRGCBecz6F7Z2hqiqMrexpL92Nzt4cq7T8X4wjyzczUS77n7pyavwUzbDFRHHr8vgNuY5ACYHV5KdD93AbL5Sbd2ExeuvVnmwJjfw8xowjK2CnpfFaED7M9Q2WfSNQ5LcqWGabv7hFrZVku", + "finger_print": "affe3351", + "chaincode": + "8bf95e5c1ea22c93496b1612b34eeaf6239784dcd7e04d89cd51e27f3f466f96", + "index": 3 + }, + { + "public": + "xpub6JHAZQXSsmLd8GaprQNnH4WCU8khLzr2aC2hyMvyYYfo5cbSZRw29bzPKrRT7bdfFXFt4fFMz8Vsuzd3shVuMVwcXiRSsUC8mhTVfHdK2pY", + "private": + "xprv3TstFPCyeS8RC7W6WvzGMMKqf5uDR31ZMFSNS1yNMeAmSKw93CWeYwgq5i93D7vN2B1rFXGxgQXGXBhtMPueSw9e8mMuoQUJN9sAf7yBJxXXz1HkXG7r2czTodHdHFEZVenMhPoHPURrzAx7cQFVp5Y", + "finger_print": "85aebde3", + "chaincode": + "af41d197f84f036ce3394e7b723853f75e53093027053a9068d626d00fec6ddd", + "index": 4 + } + ] + }, + { + "public": + "xpub69Yp7coaBSS6UYcR389a3y8RbCTGyB8xNZj4tLbVZgB1ECXQkRH6nknzn4tfDFmJuCGRLYfWBgmCWkPVdmjUXj1YozUwh7WB1zL3P1Wajbk", + "private": + "xprv3RHTzs1iakf7srbvHgkHSfquPT9Ean2bZmTnH769La8WXaaYUjdaaEE9RTcWTpKCKv9QgfmDkBSwGiPVRnMNarhLDigm7RbuSGmbtJGwfGdd7tgG6aTAABQLsE1FarnmnLMBUG1Tb8kTF8sqEmtmtjs", + "finger_print": "e1ed6cc9", + "chaincode": + "23ca28e487556b9a3d767166badcd3af83168a33160ed4987e200008069bc6a3", + "index": 2147483651, + "child": [ + { + "public": + "xpub6BbizhBs8CpC3fW8wErfimXBbXhMiHAaTZdx38FYNDEyBTG9YWcY9uwuSusU8633qkc7bLSifmmchritpaiMCdwPqm8YsjzH9Xw9cAVXMcA", + "private": + "xprv3RtnoMEFjBZ7HSEK9vDPSnnyYL7kzwZj1jp8EF9RXWJwXEzRBMe2okABwXb8HZoLUxCz4misWLvCtADUsmNqEuHzFnRtXjNaePiyTJLvBtCcvYYqDnJT4w8UWPHX3jcFHhcAFGLEETZntifUCBGS8Ps", + "finger_print": "f8dc12af", + "chaincode": + "bda797d0f470c622f05b0befa30208f1f236746f783cc92365f02b9764dcecbf", + "index": 0 + }, + { + "public": + "xpub6CnGth7XKTh6Z2GRLwvD9NV4wgKm6zBU4Lwr1wbZs71ivgz58GgoToxNR5y7bQZzTyttrToMLy5FvWbMgmGqMG9PsiB2j8FMiR1qELhCWEg", + "private": + "xprv3SF9tTAgE3oCogpRmgjcSPu1neZ632HeC9PUnyfsuuoDiWvfzu3cKEUaUjKe7i5DeViaK6nrpyDuEmu3vEpJPXtvbmDKnVoDQ6GzPaacutqLsX6CrwzgU91do6c9VYH1DDgbyhGf2i8ZF1kxCoNYZQV", + "finger_print": "99a86638", + "chaincode": + "103819aa6a75ef497b26f5aaf200376b8d7ccc8241eb2c30d72296fdf427e3f3", + "index": 1 + }, + { + "public": + "xpub6E22vmXNRCAHYGFnV1VALkXGbHoR2W37ZCGr9ojcZUSBgo39Ep6PvDwPa66VCjf4DrJaHK6DNYeq5MHaSVMg21iEztJNwXqyuZw7tHzVJYk", + "private": + "xprv3ScUGfBrwqqWNww8e8V5k6dLfGhGVTM1L8gyobZoC8HFHoVSymV5eutkrB4YgTisT7LA8WNUwQuuxcHRzzh95qJME3MYhfWpyw4WxJKVZtbRdrqmX5FiUmEXphPZCLLJidSkNpVuF2uo3siZevGKVzR", + "finger_print": "41fbe9b6", + "chaincode": + "d87be64ced1ef55b95ac3a2eba8395207b6352e6e99a167c82408430c5dfb62c", + "index": 2 + }, + { + "public": + "xpub6GjRSRYzTGQKTogVhFWUAXdg5u5QrgSqVEf62m6cQvdcz4rgktuDh7seDgdCLM3kMNooHwJ66cVozVCmrVJWuameKPaTF6yuuRMCDvmEiGT", + "private": + "xprv3TRE1FJLRtngfmaP2p6CWF39D4AtRgmkWSdSVM5kaEAHS4WeiRbXjfQWjCVuBSvUiiFfzTT5FidWjrPYa1DR2KYkN6tBgdkoUT1aS2XUyaSt6VL19uFh4pMNwzqMFT9rf9QkA7tcFkdJD3AemLXHWLN", + "finger_print": "b32baed0", + "chaincode": + "e6b1272b645b3ac32a37d7d41eeb8db65b7cf742d0a7ae15d403a048b4faf40d", + "index": 3 + }, + { + "public": + "xpub6J6Cs6RnXTLghbZFEqiEBEij3yzi53hDDGDoA6eTifVcicAuNjLQRP4iMmzaS49gF4SDs8Vv6b6SkoE5thLpE8SxqRYyfNGk84yD1HpTpzq", + "private": + "xprv3TpdQcX9PfUCfqyEu6EYVe7yWHiQ4D2jPAuKR1Mz6wGyxSwXUdTnCBEeJeuVA3ZQ9hj7dpapa3rtEJajzcXtHbc8Ld8vZsHH8ieDNKPdkrHeFZNRHJYH8kx1ggYTQkin2fcP3ZEtTk3DpPx1kNcz7Te", + "finger_print": "6bf91796", + "chaincode": + "d15c8e6cf029c64fc9ebab81d291527fff8d9faf53a089ce04dcd04a5c7d75b7", + "index": 4 + } + ] + }, + { + "public": + "xpub69Yp7coaBSS6YVuFZwgxawrnbLMNgiZDnoWDB1w3hxS9GZU6sVMsfxChTdZoBAecKZfWHLcNNnJbqpwueCQuwNAPbVtu9Pq2mxWg9pApdsL", + "private": + "xprv3RHTzs1iakf7u2iVuoZGrKXKYyLik9adEsp1wekwsjsk2FxdrgJpG3Ayd12yfTr4pmLRgG3i6rZQCUTU7TckN91g5ZDvv4Ajx1ip2AXpqXeTt3KMdefx5yE56kfDaABb3joU74sd5wm7Ygxh4qgCYkK", + "finger_print": "e1ed6cc9", + "chaincode": + "b0dd18caaa2771f3cfab33234250038badc7d8db11b367eb5cf10bdd0c632009", + "index": 2147483652, + "child": [ + { + "public": + "xpub6BZX7bpmwvkgkZiaGfh7BrYCLAuWupyTtjvLnrMCvHA8Kw6UYRGcdWZH6dMoR5398wK4Bzgdn77bUEaQfZrVYh3iudBgWJbKSgoKdLWHJXc", + "private": + "xprv3Rt8p1hcqywUte6mAmptYMZQKtnEWcXsYrU1zjgL4H4wrddJv9We4WqKuqwH4hhK8nndbseo5k2UJMErbqV5Rz9TyMRD8JuxVMf65bW7ZwWdyZc5uYe4ZzYWRv1UAYLKNWn4yUnf155CZXbzE8YQnDB", + "finger_print": "f3b00fd5", + "chaincode": + "950c3c2bcb60151d9e6270fac95f8c29a55404e8e81baf902f176e8ddcbd3988", + "index": 0 + }, + { + "public": + "xpub6Bn86s7JPDZwnGb7rs18TfM1iZqLgaxNc6H5QHgNR3ieQAEE6pPbcVXUirUYTd4wMkZGjq9HpL4iKV3aBToxwUXJHH43x6rhaeq9y13pXn8", + "private": + "xprv3RwsxdYan9Gn2DLzSGedazpdW4nu3811L2JYtNdrwvsmJb8erHLZg5NzxRC3qgwjLzDZ7RMT8ub64DTxhqvM7geSjXekwgCBEvATiRctXG5VMuHHezVCUSq9juqaTa89wHAw89beXYeGHRvf4WRu6TX", + "finger_print": "1140512e", + "chaincode": + "54d13118f0549dc25ac4cc327068da79a22d04ef0364f1daad03c2171e782bb9", + "index": 1 + }, + { + "public": + "xpub6Edb5j7Eh18VwsAS1mWumhYYintKNFJbQtzUKv2kziWcgWG3nJeTFxebQXxpcGxVsc2P39qdLP2ngN14BxSW6yJjMbbbU9QHXA6FP8bP9Uq", + "private": + "xprv3So2rkeKLNxp6riuptF6MBK6j6GpDADFhX1LxQr5LHotNGRsFEFargw3hEqRCM844SeMU6tKjKhusHAWGACWxoTtaLx76vuK9tjhC6eWbb9QvYMTLctjaf2W76Sdacrhi3JExnp1PXZYjnL7FUqdjWz", + "finger_print": "95625e1f", + "chaincode": + "55b3acc01e5795d75c9e24c7554a2f78ec0a33f51af81a84a3b3315d27bbd606", + "index": 2 + }, + { + "public": + "xpub6H6o5qNdRa3ShqoaNtxYVkP8UNNoFBK9TeG27Skn1wX2bbKganqiFmAh9ntSeqsfdGYk5yExxrYNLDNb12cqZUjcKRcAxd6nX7zAyZMDsW9", + "private": + "xprv3TXaFqJhC1hFYjrEniiQYj5S8RFfG9ySyEUs9q6MoYuvF4dgdtvDK62NZnsg8vHoaMsiq7ANpEnxKU1rUiLULH6H3ktzCtjq8JBB7VA47QNjTeJQP5KsJ3Ae716S3Y8m3DWbWpZTUzQKAcmju2dK7mE", + "finger_print": "e54e4f82", + "chaincode": + "3490746346892052f6c167e9dd703270d857f7ab976b644da2e74046555f9fc6", + "index": 3 + }, + { + "public": + "xpub6J8Eu2b985J7D7Zjn2GJCd6VTyCiyEFBSvyF7mGCnDRFkMFeAAYL823xWq1hFUs4nWYBfL4w5rcWiErt2ycS3svHh2nkbMyujZrGu724LpH", + "private": + "xprv3TqEUHDNcyvVAh5vpwVqnUKKWJPeENJTfYmC5AA8evjLxbpghMDxz8y7tHDUCbZveD8vzG5K9MGHwnQBunjWhxJqUPTka4oFpmuniNtHFXv36Bx6TWkegNfBHtc8eXTR2Xdx2vUC9bAmv8eJtE3iNy5", + "finger_print": "70bf2596", + "chaincode": + "938ed41f3a23a92f94a6d9d3aa64406036cc699c508ca3581be70f7ced34647d", + "index": 4 + } + ] + } + ] + }, + { + "seed": "d237067ee6b0c6bd47df9fe3fd5e594ed502de207a0e4ccf197cd90768a751da", + "public": + "xpub661MyMwAqRbcG6aur4hYt5EWcLvyedYkqreFJ1ir2wwESkXJcPmUb1gpiUr44arKS8mddTA1gMMHw8Efj64qfUVrmmcSHUmcYLiYuqEwMhN", + "private": + "xprv3QESAWYc9vDdZjCW7qTut9ayi5vqUhs9zezP6z35etbJZm4PXUKXCBw8Y2A7UaXVzw4oCV5CfsggvW5KR8jJps6xqgfEqYTXC1JSfdGV6z6q8C6TYZuNVXmdoRiJRwcsFgqZYvA2nGSgmQdrNFAzAbi", + "finger_print": "00000000", + "chaincode": + "9c1ea3b4a02da9356294598aa930f93b50fde4537b7594d0abf8b248593190c4", + "index": 0, + "child": [ + { + "public": + "xpub69PLC76Vcn9XxXyk2rCj9xmVY4XuEhgsp6CPQqPZhXhTapxDpff6a7RxV6NtWMvPvvr28zQ9CJsjdk99ztycFCFYHUgi1G93V4Ls7jLXXXf", + "private": + "xprv3REedv8bV2aSsCQQgg3i2CzZBhmiAYdKVST8VYFxTXJ7GvbaMXs41uq3g6rGCTv7MnxqUNXkhThjeapSkZcboCJaDYfZeRefmdSdPneJBwhAoeHeFQir26pNjoDUwP73cjgM8KSyxNrZGiieVHbTJ7D", + "finger_print": "cbafd143", + "chaincode": + "9af48a2a78d6958e1d46fc4bbbb416e56206f5ec687ebfc1072de4184abff116", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BQXkBAupHcUARTbmQFt5VL84ZCyXtLT3C8DLDuJ5zQUWQGJR5yZmnb34cGP8W7VyLPDg94AkjniVK7bPmdpfhtqRx4MqgeoGSekdKA2TjV", + "private": + "xprv3RqTw2Y7UDdAj7BVJgeA6up5uP1S6y16GkKnWRiTvBo3t1JQ8Q5syhGjpmhAe2VoD5x4vTCyiU8y7m7vo1U8JCQrkD7EnDHerDjQYom2VDWPT7CCZuK44KngVujYL3Vr7wWNGBREquPifdcQ7BXKBFs", + "finger_print": "de9a144e", + "chaincode": + "f83661a99e8db6a097ced86e4daddb2c504d3025df3cd24e4bad41b778a9b1cf", + "index": 0 + }, + { + "public": + "xpub6DVanxDBCAipsQxCtM9DvEjztBtH8AkgXjzcnrmd42qX9X4cYf4QRkxQcZiwt4rT2ufSGVaEJqYNsmKpwNtcRNsXMrkeP7pWsEj8gd7ytvD", + "private": + "xprv3STRcsAvRnsqLPNf464wx7AqfJnXapzrn93eQ9hofTrPLyF56HwZHn58pJnPPCfY7K93VxzzKBVcgoryX5nSsDAC8GaWxPPuy1wkvrc2RAx38ExszZ4pKYFesJgK44fP7Tuxij21esM5sWTQfsrvuq3", + "finger_print": "fa8e4a13", + "chaincode": + "1be85cb678d2aad08f0906f8a1669d2defc1b22c67619354a70be25c0f5380f2", + "index": 1 + }, + { + "public": + "xpub6F81w6tHeg7g7e7TRbnpJBb58oPT86zqmDHuzKuTzc3JWyvMmRRLHchcoGee84ziTSURXn56ZMs4J2HdYuHJ716WJqgSbFd3SGomqaHi24q", + "private": + "xprv3SwUfoLqMiQ3gBNzUrYZXNK13YDGq9o9sZkrpE3ohN4hMqCgTPQ86q9KN4wBhVpCfa3bGQjpEcQb9jxMftwisuws678P6VGkxftAeuLREJnpuWkDToTvmtJQqEtvKHY8jm93s5AgB5xrV6qbkNY31i6", + "finger_print": "d811b354", + "chaincode": + "53f25b6a68dfdbd8ce0f3eafbc3ffbdaf47ba9d1371f22d0874833f7808a2944", + "index": 2 + }, + { + "public": + "xpub6H6BuyUU6ZCA3125Zfda7sf4f9ueinKp1WfJ2zNCqXWQCQvXPb9axPw1dMv7AGaqQUMd51vGeic21xTLDw8cH7tkaN1psPfF2ewwXSbNMKN", + "private": + "xprv3TXPosL8FbE2oCKc1NbxjobTQkoWXSizcm4PUxkKnZnyvM6gCy8d2LigVCdMnAjsPFpcbJSeSXvixCfyFdksXBekZaQcSJSi3L4mQn8XmGTGNyGDoh4JUfLbD6Wq5Wc9MsZ1h2vQF8ibHvejaDEbXkA", + "finger_print": "e3e22dd1", + "chaincode": + "427928f169be8bf6add6bf6f4d6a0f0938f4252de9f2a36f9be4b092d8b7141a", + "index": 3 + }, + { + "public": + "xpub6K7MFEjXmfYE6ErC4ZzbvQ6CEysGX2pDRgv9LRBym2nwSfkiHBE99sDZCNFySQGP8HQkxLUHCKHPXJaMMT88vExiMitisrvyAG8Vhwxv4jx", + "private": + "xprv3U8CSiSULgxgcR9NPXVD5PZFvADmcW7cdCiuF7k6YNUd8W2TCGM59fo8Y3AjHFf1HkFgKZmM8iKdoAZ6RoZ7tizzZWgRJRWR2Nr3c27u9zxT8YwdVDmVYgsuw5w6n4L72adjLrPChV25RexB244yjyS", + "finger_print": "f6b5729e", + "chaincode": + "54097a924fb5fd9a558293ceaff70b260e86e7199f0219b1cbd8e4ab747d026a", + "index": 4 + } + ] + }, + { + "public": + "xpub69PLC76Vcn9Xyr8nDTCoEW1J1hGhKGhHBceeQ8f6ZJS9Hh92kxuBBi8nJJAHyEdS79CrCCFVub6hucHfz652sQfnT13Ap8SnkZiySwkgvxr", + "private": + "xprv3REedv8bV2aSsb2YUJS6FLxadHpZm6AD3nFjJ1osMhRk9wcKLhLSpiNLbcGSpy2vZLCAfRbeQrfqmVvZmrfPKMKUs5AURYmG7aKkvqvirgPUaT7BHh8x5Uzcp5XumGth72dccEbuzEfGhyDXTUtdi2f", + "finger_print": "cbafd143", + "chaincode": + "1ed6976b7fb76ae6c3e5053850ba40258b1801b9f663cd20cc35c27cf360a555", + "index": 2147483649, + "child": [ + { + "public": + "xpub6AsVCzqEP5NQ9ZT9thQt9xP1Jy53vVTiLtqDv6UYk82vtvgMPsZdR9w6VhZZfUbtLkcfnC9xpZLh3s8da6GRuPwLWPTLzfXeMLcQpMkFGLK", + "private": + "xprv3RgF4VE2HnLRk2n9yy3aJCUWXQ6jfMNhVSgdVbHdRjfsfkFZ94t5ucnxFBhwwq5hQoUoz2ZaptgMTF4xbR8XvcAKKfrDi5g62b2gUyj96EEeM4n3zBUCTJ7WzW4VYKev1Wcvr7EwHAtN4uH5JFm6pun", + "finger_print": "95c84471", + "chaincode": + "d658fb78839f985cd5c70023b027ff357d6ef82592f2a8dde938944649eb7ddb", + "index": 0 + }, + { + "public": + "xpub6D6qVtCFhDeLWuukub2KMkArDzdLW7W2zHpi9ZGqBtRcCM1eqMgxPndCouZyNJBhHJKMWS8xMH8prkyyz9jWnVSuAMLBM5d2eZngUrrDsYR", + "private": + "xprv3SLfhxJVGePAWMz2epDLu9iYqzUvjLeP1X1oLYcmKn3UQLh5PQtAqvV2GiEQsjP3tTzw7Lb4S3T7B7WF71CFa3uSQ9YMv5cthzi3yRbPT4o4w3kWnzQaDG1QEv6mi3Fh78RLC6MZT63B3wg3K8cpyFf", + "finger_print": "c53303e0", + "chaincode": + "185a84ca139a3df867adff47d59c30e0bc4773704888665ce0a9ecc0d46e7c45", + "index": 1 + }, + { + "public": + "xpub6FCu9GZCqFPpCc7KyhRYkoaw878gaLYEkJxL2ZTwsBBgKGbLPeXS7cYSozbvyvAN7qJndZMB9ELnxuVgYZLTwrzoS2nA1vYSABeyENdFD4z", + "private": + "xprv3SxvoPc9eb7yqQhF2zHAD2atS2Nhy8wc5tEHpo1axS58JaVruR8qjE3gtcMmWQgrbnsfreeQ5qZg34nho76his5Pu4Rgg8oiGvFoZDeDR3hqp4RSnEHtBDjHG8YWyT1Xp4ug7QLj1rkw2p62e2irSRp", + "finger_print": "e385e789", + "chaincode": + "3b5aa88de88897d07828b3def4849d2825a3fba83d7a6044c86f60bc5c98bc89", + "index": 2 + }, + { + "public": + "xpub6GfnY4GmwMW8zYS1rEbm2sn96uvnKDLWmiJUonjXYtLyNn6ws5YSq9TG2ZHqDWuTPeR3scEF7cXz9JmfUoTxkTt28mW8RRGVXvMC9hD9NC6", + "private": + "xprv3TQ9MUXPswP37x88oysJDEkneEhhcQ4XonLATyN2FEUooSqLLNJp3gzz513zuR6tyN3QqbCN9yhhHKNXtKvebVkXPfvL19EZ57Ruh1CaaZ1PCpwrt5gavAyLf4Z5Lf563teFqXZjXJzaxigAD5yc3mG", + "finger_print": "aaa41b30", + "chaincode": + "8a48b6f681240a9d137d3f5e7a7da33ae86b151bdc202f634b941c3fe88260d9", + "index": 3 + }, + { + "public": + "xpub6HR2dxCEMuF3r7VrjZA5CCtRq6uL8k8unXdDa5A8LtMiDUnbwYtn9ziqvk3GhQ6TNpBdEw2q8CkZ4z9JRe4CMd884cpa2CHcbYUKfogzhc8", + "private": + "xprv3TczR4U6mjmyNbz3QAnyUC6JFPtLzHfrdRmSfYieC6kuXEwbJiMqrF53RN3eHQvipJ6YgmpDwcZznzSWvmmPHMQeGjg7Lm7DqkEE5Jib4YyNTvdMFprQA5MFXN61twTrvarLBUTYJzVvgE3s6yDquTN", + "finger_print": "1013a96f", + "chaincode": + "8d4736c1e307626830378cbedae8b38b50d88564126a1016e764e2c9ada03e38", + "index": 4 + } + ] + }, + { + "public": + "xpub69PLC76Vcn9Y2ZzkFiFVFmrfgwCxdzxP7QDWZ3sTmq8BHygX5nar3YK3zxaHC9KBzsJedP1tftbiaN8TFyqe7VPazAxXcDpRHmn5CmL2qxn", + "private": + "xprv3REedv8bV2aStPvS6YBtZHU4tQjQcAhg1DWob5fxcarLVV64cQBF5nytVXne5tHWuHhuUp29J6LjttGj1YDxYZRBEnTo5NZDUcuY4ahnyPGwCnZBufocMQk8ELqcQXm8h4vTkvbK6EJoCdFYNqEHfc5", + "finger_print": "cbafd143", + "chaincode": + "303719663a1e82acf9a423311becfcc66256a0686311f45ded65f4a23a4a9d3c", + "index": 2147483650, + "child": [ + { + "public": + "xpub69qhy6oRJc8rxivAnpFtWnT7BquSLDu5xYWpqYKKaKVGtsCEovoSm6Fs8jgvr612f4HwtdtYYqmsJxynzHsfyNGMMBbY5ty68U1Zsssousi", + "private": + "xprv3RNV5LfTumnPwcXFf33iU7xLPNxdKB86zA8syAveemZQy6N5xrj5GSbvwY4RfypkYorirqQXHjRRdJcAg8BEcdiX1S6AnwQ5aLqu289zKWLnPVFasJJKFEUi6Au8Z8mr5w2X1rSgbEguZCMxyvMjDdf", + "finger_print": "098e4e2c", + "chaincode": + "78d6b05161cb32ac5b030af1e080de2e1d855bd96a760bab59f44d845eab0c96", + "index": 0 + }, + { + "public": + "xpub6CexYQYvrXdoQtQCqazNz9TRw3MWkNNcNYQevSfLCg7WtEs5hJL19SXiG4bkUHGL5D1W9k9YZMHh4YkhtXSiujF2P8Usrydk5rVspSVwcgG", + "private": + "xprv3SCyq5Mqhnh6X8nJtEcGkcAndCNFD7sJsjnNZXJMyPF6hN3aVTwo6cqWYLkNo5yZmNgfMhaVMQuMWcW1hasy3JHWUSqxSjXi9PuWo6a1z5jXFhmvQ76MEPPKScez5T9KetSZXV4H8nbJFJNnzXrSRB9", + "finger_print": "887ee823", + "chaincode": + "1af5578ac352997b717953dedbc3e9b0d2f5fd6855ae6189a5f1377a89728d81", + "index": 1 + }, + { + "public": + "xpub6EyaZeUyuFujE27MwGm5wbYEJGQNSUHqSu32qrJW2xPCbvRjQjyUyfRR3abem1u4k2tDkxGzhB1Jsda49YpLxjkk3NjJ17YYtvCT76pfRiM", + "private": + "xprv3StyJ9o44qN1MgAsRBpEEqqcfonJG8VNM5YyyDe9bQn7515zgr2c9oyxytw4XAvm912zY7dKzoDu7b6Vk25cCeAJGiPrsWeCqdiRXB59kHWENDeMUWSEuwmSz5DXZsiPfC4N9EJuNkDaTw4LX824N7F", + "finger_print": "c447060d", + "chaincode": + "7f5a54653de6acf666ea888bafaec8476584c01a6416e3758300d38bbbcdf8f9", + "index": 2 + }, + { + "public": + "xpub6H2Eri7XudfbuUyiXhVruyUNafYHxr3GUYKbSSLNV2v5Cboa13ggQVPkhD6wyT9EDQSSs1QDEGd1McDcg66x6G8HUVFWzaUpoibtjGdet1n", + "private": + "xprv3TWDmKYe2vZDQgqZ1nykyTLSnhDLfTMUgftqdXNYDHqKWnfQbP3cZ2fFd4UsbN3qztgyR8GFQFK479fwKermQ5ZheeNkKYZyRhNDAxCuAUvSQRasx43zLSUeYHEN2FE9aCs8CBwMJcf6tYErGRdxxAH", + "finger_print": "da9ea6c8", + "chaincode": + "fd819d9f7645295f1a1857b1e0c058472456ff1a63ff313b276046e40ba6f247", + "index": 3 + }, + { + "public": + "xpub6HUhD2LCaj2HmZWBzYiBTMTp86GY3zM6qBGo1YQFcwSfqbm7Nj4BKZSLDo2sQ4PgzAj1wLfEcBYemotjsimi1DSpSAHSs8iZvmkdJyQRHo8", + "private": + "xprv3Te5ZZRQoiSNc8pjVvAmcAgRPfK6Dt5UswcAmkjp7EbAbnQyCW3z49Pu4D9HUkJLhnMjHFy5yAS6btBeB5knxEGXe4KCxZemeZ8ged98iJnJuepMGNLKj1eVf6nKzHt2GfLc5PSE3VrUeomTikE9PuR", + "finger_print": "18ac8044", + "chaincode": + "7cc77b0637aa3c9ba3cbde4bc2b7f6568cead26704d192c2ea1c62c156a00430", + "index": 4 + } + ] + }, + { + "public": + "xpub69PLC76Vcn9Y5sGGVVqGsfqtAhETKVMwRhipN9ccdsAauQUSe7DBGGdmKxZhejynsD2iJ3xeo6bgVZbMxnD9sWSViu2VuRQ9U7msDooXeXp", + "private": + "xprv3REedv8bV2aSuNju24ac4PD7AcR3vWFkJHuAoiVmk444eGheQqTvnFJUC4yg84dv5ZkPG7iTqjnS8VUn8fu2EZwqxLoqZErwhdaCMFyY5JpnTnEJDDqjnXHZxaQdu2wqwH4WB8dTxWgrCEbyNGHZndA", + "finger_print": "cbafd143", + "chaincode": + "7b717ef9d3ac36b2494efd4fb44064285b69f32bcbd43f65a387604b0b907e7f", + "index": 2147483651, + "child": [ + { + "public": + "xpub6ArrxGcN5TTnVuSzBXaCx9hDJCU6zYz8o34WMvVhbUL5n1U9y3Tc3MHcbczZGCDMZ6TCc2hnCEb7Rkz1oaxLewSetVAz6ATpnMBSCebXzb7", + "private": + "xprv3Rg4Hr4nEMXdzTWzvbKjpRm5H8B6UV3S2hgFYHtpCSU6HL7R3PsaTLpLq39PkDNFybg66xdbXXHzJvANFAQkNuwPKGvp8imbgLLx9BkFXviAyyYXxXzDVBzWamvNimkZsd1ftzkqjvkwq9u48ZVGBJX", + "finger_print": "9450e9d2", + "chaincode": + "4537092b6f80cc6e7727b0c532f1ca964bad604254538c5af4ce35260eb2bf61", + "index": 0 + }, + { + "public": + "xpub6C8uYyRBmb4JogfK3m4M7b8HRyt5PS8TC2tF4wxAp1qcMjfjpx2rUfUKfy8Hsn9CyXiSvmDi491fdSHLLbCiZ74r1DEFPnNfta9uF2whevb", + "private": + "xprv3S444447bYUV19cPA8CZdnMCBb6QX6DbLYg4ppAsJCGwTCPRQJtbvm7K7jCiQ9cVE7STH8hEUdDb1H84iJBDCxUtV6dPqKot9DTjm7TQcXHZeFDR2jdupuR7874NGpRNiyvMyYGCrWBQrbQy6iMomX7", + "finger_print": "4200e8cb", + "chaincode": + "693bc504daedcd354bb8193ce1227ecf3b5b17c2c6206e20189538a60841f548", + "index": 1 + }, + { + "public": + "xpub6F5icqGCFciFc6E6DnghwSrUvuaHtQsBY6fJdZs7Ebz3jW1GWTWRYYtJnde15q3qfGgASk8DHWLThpSjbwMHi3rUkHjL4zVXGX9LexHymoX", + "private": + "xprv3Svo4qSg3uZF6WJhNfN6ciRYwFQrMPDDnwZxCh3H2KxnyTQqVasebTzjpNjNm6cj9HYMLnHdDWMXFRc3oK7SZ1AJDQXHpNKDuQyPdoNmGBuqqePs2xR1uPtmBBSawUneUvqQ9dDnCbqEKNotkLDK7TS", + "finger_print": "d2ad6d80", + "chaincode": + "972bfa2b4f8addb785fd47c2366108c105a8b9fb9692a3ec629f125f15a74727", + "index": 2 + }, + { + "public": + "xpub6FYbjDQQEhA1CeYtSXid7gdpSNthX3Q5sbMsW2zuUSyPDkNXA2b6SZ9DuX59aUNDFV8vx4ApFDQHZV4hTwKMViL8m7Tf4ZzLD2eNbpZ1fso", + "private": + "xprv3T4nDgBsTq11oZxBR88j5UqUKbaEZErS6i4j93gMC8LUabKFjc4yKw1DpsnqyGBU7C75P7HkUCLoysTbWgaeFNoyqtDtiAkahCEdKyxiRR7KsrBBQAKyHFrLoTFatxT3m3Ht4tsn24viCyY3RPMBfbb", + "finger_print": "11bba083", + "chaincode": + "4511d2210af60d9f26111b997efecb6beebf36b6ca0c3839780ca1e962b7be23", + "index": 3 + }, + { + "public": + "xpub6JP2tys3gKeHUKHqWbaoAXX5asCZFHHY6V8AUooLSkSHAR8CzhFHCfJowRHiAZpq31H64EvW9aciaGMB9uEbJvKfszQpu24sJCUT2FRh7vM", + "private": + "xprv3TudMGAQbx3tfuAjrFeffsx5HBrNwLq6GPF46buoevepzbXwfRSg8GRkU5ibk9rFeN6reF67McXQWyxtJU8CoTodBhLUhjtBRqrERdUWBuBkngqZKG2GrWJa7yJFrMr1iEUAXGEvZ4CQYwiJLesNtd9", + "finger_print": "93726a77", + "chaincode": + "4d04a944730d2fddbd304ab1a6a938ae4ec4583106e36b6b4328d2b1496b422f", + "index": 4 + } + ] + }, + { + "public": + "xpub69PLC76Vcn9Y9H2iqwnX2q3HYGYUNbZ16CE1DuWphzq1ZDLk6JzKjRZVqxfDFxRGL26hLPLiMVmTaGmo4mMdAyAfB4h6TCAfFCPMcKHwN3t", + "private": + "xprv3REedv8bV2aSvPVLM4CxvhMUvuio6hAMQdPX25m8nBtmiTxCSc8AmW4SFewZdWdtCANdCRTjVQkpuUNHLKQGxuRNP2t75vP3ExxgvenzEwhxeEEhetXp5G45BKaSHtKiYs7TaffMbzvCCpLRdq6eHy4", + "finger_print": "cbafd143", + "chaincode": + "d1ed043a61b1fa56ce01f920607da08427ee2095d825883d5aac3d39ab639322", + "index": 2147483652, + "child": [ + { + "public": + "xpub6AM4ZfPiBhjdEwmeTknnoXeiayQUd7qtua7VoMo2QN2d7ATEgYqCrrr2ZzqJEnaFYfHnBQY2tyLGXQ642ohNXZXeAJ24JybpyjgT64RTnZj", + "private": + "xprv3RXCrPEaGhxerAjKhdsGzDYfV3bgtrDXUqadUbPsBqwmPuh2B3VYvJnxkL4pDWuQFXDpZMSYshGKmE5uCivRiNWeyGb7sJJKsYsKUJH8D7g6dMpC31fpMF6ARyMZnAihZCTJyNcSPq6m9PE2mEqTr8d", + "finger_print": "4e6a14cd", + "chaincode": + "63de043fef8e7330d37e163bc2973cfbbbbc6e5264469981ee44cccc6146f180", + "index": 0 + }, + { + "public": + "xpub6DGaZ8SAGu68dPJ6tiBkXhjnrsr4dL4pw8cJEFQbnmHGymZNEKH32kRqQF3kNHPXSst38VKgWtfAooqwaAgZwzgLjcuqfvafE3AmLLaY2VD", + "private": + "xprv3SPZZeBBs51CUqVMssq5acSJBbL9H55bkdw2Yn26m3pKqbbnGQrH4pu2SBiiNbXJn37oJBdqCXpEkQjQnknKYpZxzjr8VWmXyNSwF7gzQTKyXB1Le763kSDeNCCKFnsDzCfLzq6bhaUzT9tpuvXf3rB", + "finger_print": "dc0d4e1f", + "chaincode": + "914566c152547d1b00288642a87aea9278ccc06ff26c020e3d26955e981b8e86", + "index": 1 + }, + { + "public": + "xpub6EXKdHZXdpTc63e65D4CMHhLcZzFmgorv3zTGS6DzP2UgXrzi7iry8ZwjdG7WLLaLyHtwNMnuyqbgok3nxz57mnqxCeJdV3Wd6sjWjkqbLv", + "private": + "xprv3SmAtZ7PHgqQJhdAt8ABJTDH9Qf9QsnFdt81LALmw8ZA9W8XFUbUjJbjZsVaMyALGFwpvyyaWG1H1Nf9CFoMq46MFdJEe2EHDx4SVcCYWc4ogfyqkHgwJ5uPLueTHSKhQjDJb97P8pnxVnyEUAt8jks", + "finger_print": "86af5690", + "chaincode": + "afd740a551eab5f12fde547fcf2648954f5e0efd36304dd08ec294209c0ceeff", + "index": 2 + }, + { + "public": + "xpub6FTgvcwAWDQ1Hu4RzH1hiyCyz2PzXbbzx3EFiy7SceCgyvd6WhgPAThpMAv7N9eXYUyeUaVwRwUiVTiFpPqNfctHjzydx5XPV7aMecFxNJb", + "private": + "xprv3T3KcdS9QDLTEU23Xbr9zMs6cc6KxdpGsuJyW59CXh7s2SRpSHRFWQUfcdSGtDTbi28kdxybvVruz5VAJusxoMSsbYSjDLbQjM3eEN6dvN5j7iHxmQXgh4246yeUnRFouHDHke3cDJDEqn9fW2EjL2y", + "finger_print": "0636ec8b", + "chaincode": + "2fa5f570e433ced156505469ef0fe899717dd0150a5107ca4323a17b9409308d", + "index": 3 + }, + { + "public": + "xpub6JhYMrev8HYK4mE1zWLQd6fUxy2TjEvMCFFpmM6uSbuCPDdsHZYX6p7DNT6VV5KMY9kYNBQR1j1M8BHHuUQTKvXADPwSTEY7QTcnYuesFBR", + "private": + "xprv3U18Ec5RzEqS9B1WS64bJvkFa52pxzhxz9sv2XLYzcSkiYLJ4uzNuLpKE7gHeubQ3ynbCvq7nFPGHFKVvMvVeUBdSSCvSnUgNGvf4B2hNpVmgDWa5AvKUcKbYxARCxqPcTCRmAAbbD9xoKGShxWeAz2", + "finger_print": "bedc7ca9", + "chaincode": + "5c3aae23d276e70dd4696c862fb14705d0f84e0b74a5edcfe5cc827486679529", + "index": 4 + } + ] + } + ] + }, + { + "seed": "efe4263dff607dbcb881981af0d2b898be9c5520c1ef49ece2d863ffbf28a286", + "public": + "xpub661MyMwAqRbcGNPnXdyBSQTR3btJh4pij8DncN5MgcAbW9pPB2FsP9jC41E3ZZHa8xfJH5HuvLSQNfEzUBdV6vFndt7VJg9nJw5ue5LkGtd", + "private": + "xprv3QESAWYc9vDdZotsVCdgUNqfkVaPsRg7V17mxYtMCVTedGKq9BJPfNjusHDS2tRQseak3jqfxXxuAVaALUyyR1qo6cSSLr7dJKsE69d5bAc26qRPHL4xYxmfAsLL1edF9eyBWjdx487so5Wchic6TJe", + "finger_print": "00000000", + "chaincode": + "b77eda4e303751d6bf145a4f554c066a903023d9ec4e6248bd2e6a6bd467e9d5", + "index": 0, + "child": [ + { + "public": + "xpub68evG4mZuUxJfKGj3jKjCD6ino7BHXuoEkkuRXWePDBBJomzvKmtFaV6KRMccxMGWq3hFjk6J1qhyD28VYcRGaS8q4Wa4EcEYbDa2eQfts4", + "private": + "xprv3R23tHC3CdXLAVjwtfVNRTLgqXHM7aUvJ5RCSwycw3pHTss4qrXacEing54nzbMP4Ms65bkmHYkCr9A7N1cHc597PaS54LrZEpybFANtVJougvURWCuoWwHb7YzLbfHbsANLfP6WRqD4wAwm84SgcEt", + "finger_print": "6832fcd1", + "chaincode": + "f13660aa0e23c23c7d1bf8dc82e496225bb096da3c976612df56eee0ee2b5fee", + "index": 2147483648, + "child": [ + { + "public": + "xpub69t6CszbiDQRetnczDYt6pt3wncbwsTXTGrFCGoNkmtJ5LkvbDUBY6X2G4pXZZsLeAVQwk4bTPwq5RmpvgJANXpnXjg1JjPWrHU14Fh81ZD", + "private": + "xprv3RPC97nP6Z7ZY24fm9qMwcYVpem23b8bSXQ9hDjdoo3JGYvtH2SC62dwkh1aDfJujaZvnLnf3TyD1Sq42HS4y4TaHp6eNmJrs8t9SAHjBShJdSspsVL11ZdMgoufKvovYd39c2nuYQEiTNChLRQPc9i", + "finger_print": "0f258b40", + "chaincode": + "99eae4a90d3d87c6c0d6e4dcab6564c2025a477b8e69e9ecc8fc28e2b882740a", + "index": 0 + }, + { + "public": + "xpub6CHAGo47kPoUmPoNoYyjahh5R1t4KML4tY2ZBjnT3TfcB2TTwZTkhwMYnj3fZUWPebzY2HVAewA9Hgcw7kYWxXBKsVk1hbsSiKptzy3tc9g", + "private": + "xprv3S6WGE22EpLmHQQpdJL489NR8HShyhsbkHviCEfkVi8HUGJzQvu253WTgKSLzaJBE6GAAXR6smWk3bAGQFmuc2cywjyEvuxQ7mE5nQKWC1qw3eNzQwjkRFbKZAas4Y12W3PaDs8L57TEw3PmkzZEESi", + "finger_print": "555d5564", + "chaincode": + "bcd55a2affa0bf775fae9e2a37aba4429d117329b6e4da9fb64de2375861fb4d", + "index": 1 + }, + { + "public": + "xpub6DqG1fKXbT82Ew6c5ATdN3UZnA8XhQwLk6Y5ZrAHp6Y1SnBsBKg4RofXvynycV69hNsG1MS3mSHastagwtEwBVYnkfu3DuBYtXWa4P7AbXu", + "private": + "xprv3SZGdcXueQ7v8CMSvJC52GpFEQGxWdBuKg1tXh6rVJNC1hFVQQWfFMKGiKGwmrFHnbvqyn4tZEB8vy6wrnxBjFBUtkA4iSsd2AVTQyA4nYW4i68rnd3ZDmEsmQdCvyr7VYkhKFcFGFDcHW7j8VjBShw", + "finger_print": "28b5de14", + "chaincode": + "94b6f632b54abcc8dd3ce1eb4e60cd61cfb4bf57c1dcf952801a98905518ccfb", + "index": 2 + }, + { + "public": + "xpub6GQUo7P3YoWVpnMjtM2UKKjZZj1L49N6EPZ7HvaJRHMdm4DzivLvCKcH4zNjWYgMz92wCULt2RfPcD2evTh9kyvaFYWfoScAaSqeAEs6q84", + "private": + "xprv3TKbe4dadtufx2J6Gc5ujtvBjHbtTQPgiAi4UnaKz6AgMaDo5Zxirn3KwmC5PPZmqUzuZYheWNprLy9vNL2dGvtRXy6gF3FTwxuZKvUwnuUoQUjteDJCN8eC6SfZVpjJC9afvTobzDR88sxBNYttUsT", + "finger_print": "86bce96e", + "chaincode": + "a9c85a8dca6c7415b0ddb11627f9baf6fa72f8a51d8052312031caabcf4dab17", + "index": 3 + }, + { + "public": + "xpub6Jg8RFksjgzGaFULtUm2xT9v2UEd2GUAESMsPwonn3NRY8iCav9ijNu7G9vk1dqoogw18AHJgCZrTTB1ZkQHtGF3nfq5XkCBQTTz9WcBDjp", + "private": + "xprv3Tzhtnf3MJFarq3saY1GoBAtjpntyLZKHNBsnL5z44Lv49ow6jz9q938UHhRany5Xfn74DwWcKDdynKFTzBHThsp3x3YSUKgnbhri1eAPXSBCQDkLjemfcFpNnrJ6RT4BqtDLWgUUghJYzGaUWxEsSH", + "finger_print": "bb8c1be9", + "chaincode": + "95c1846484df4b19cea94c0a92993cec6de1a14ce6c768aae04792cf9bb15b27", + "index": 4 + } + ] + }, + { + "public": + "xpub68evG4mZuUxJgC7oij1ah3o8rseQBb1mSgBMmWTWctkzCemZZTTrCSkzgVLahKaUJRzCcYEjRj1JhRx7pmonikFP8zU26FscW743JL2ABzZ", + "private": + "xprv3R23tHC3CdXLAkr1NDbaSbaHqgHgcEwr64CgB6qVg3inbTthoySqERNn5XvkYuMSZDsFYJm2EV3W1vnG78w1nQXiEedigpXb2pc8tXDNLN7DcrH1tSuze5Nn3xQHR9K4DdfFfEoDpru6DBWHfwpBJcU", + "finger_print": "6832fcd1", + "chaincode": + "4943f555292c8fcfcdf39734715f3fffb5696b37664710290a0d04566f15dcd8", + "index": 2147483649, + "child": [ + { + "public": + "xpub6B4BSRiyPfyoLtzAh4j4x7JDwKKs5q33jh87o2worB4ywWpW86F45U8n6cFEBWz6pGmCUGvLT52QmhkTDq1tHo11PPEPirZtTuKTN957mLg", + "private": + "xprv3RjRJpyowQNe5c1NtXyUTETRuPj4XmgVHZhNUgg4abesvfu1XENjJresKWXyUMs9KCLCXb4HvkkUcy6rq8bzQKUnrrU3u3vT5B6SVsWt8HTjxa3DtNWK4utczv2bgmWvtxnPYH1aGQQvU6H1KfrYJ6L", + "finger_print": "aeddd0ec", + "chaincode": + "e9bfc7be12c6e611960d284025abbe25bc8ab94c249a70e4b9c776581d2310e2", + "index": 0 + }, + { + "public": + "xpub6D8pVPar3SauFcZB4DEXYqLHXhFKzD1iLorpbqht6FakZurVKCnFuKJiMT6WU9YGvByxU1EE3wmsUkVsvXk7Mjbou5gYzXSrJ6v9JR59JRT", + "private": + "xprv3SMFsDEARPo6aG7fJDWroTQg5qVPndaSJM9j7hL4oPp3NtBQEi9EuGk86tWEsqK3Lw47GPfDRzwSJ33cecgHkmcWKChhyQha5QTPYZwwAPpvMBhgBh5DeBnhQeb38dw3C91Tq57ARCqo1aSvJbgZBMR", + "finger_print": "c9d9937f", + "chaincode": + "b807c99a8779670cce2c2dc871b586cb75912476038354f08ad1c54d3d7df283", + "index": 1 + }, + { + "public": + "xpub6EThXQVupFspbS27kHU1cbtcFQnEbLYDXD3sVNvLi5uU7nVQFZ1SDG1r6TREniGtZzqhx5EJfENaN25fRnhPqasGnZdh5ZqNa2HnWtfmM8D", + "private": + "xprv3Sk6UbHBiY3hrtV6sedZQ3CJW3uYazgLzHxcTy3VUtez1HNBYbHTe3C9b8vemcUpbdcyqWZy5JJYs9LUx3KoC1HYyc2bpgwjGmPDvMpPTJjm16WNFp7GhYPtQVcwdahFCgv3knFeep89aBendVpggc4", + "finger_print": "7e300f48", + "chaincode": + "488cdcb3ef96ae9a984e74a60662934574f440f1e3578d8adb197ba8bb28911a", + "index": 2 + }, + { + "public": + "xpub6FjeymX3cBs6wThvdryCWGKvanTL8qZ3vopBe13KdTEysU1FBDPKgH21KyuBbC2xub75VRr6fRVdo327uYtzsFpcioDizhfanmGYBukKkdE", + "private": + "xprv3T84iAyCS45J2UzQgudKjKjpR1CXHDqan38TKEk4nh1AytJ5b5zSgzBKh5KDJFJVf6zpEYdRv6XPW1raWZWBHQsZPBymtqu2Hd9Sy97tebhdTU461LokNTvqWK3Dy5g8P2JwAJWXnFMEfMDCkpdg6YG", + "finger_print": "2baacca3", + "chaincode": + "80313c41f9547d7fb98adcf03d1a2e0427641927a67ef1a9c7d7c5512477d304", + "index": 3 + }, + { + "public": + "xpub6Hz4d7CWSjG3bMnDmMRWxrsv7VQ6rMSDd1eLKoeGfnKDa8t1vaNM9X9PX99BRHz8P5gwUhieR1agcoYqmbfbH4jehyaa3QHRjPVNziKcZPW", + "private": + "xprv3Tnoain4451ETy6NuAZXbYPBMcQ1P25mNefhfduNpPtJrPioQfCW5vdJa7YChM3CXudiybwxUGA3dp9qHdFUdVpHDtusT8FT326Bm1AagqRp8AiFB7YHn6XvYmRrAUVmtrgknQ5DwU6mDXunRNSzdVu", + "finger_print": "5d90c28f", + "chaincode": + "924392b1748019b4c33420debac3ac7e0f4ef5a2d5da8c4bd4a71190a61b65f7", + "index": 4 + } + ] + }, + { + "public": + "xpub68evG4mZuUxJj4KdP7kHmVV9TpM6h3uHLyFxcd1YhJYxdVTZW9Csy1oVTfgNXEsMKgFaShCBKKaB6Z2U9rL3fJsZjSybPM4grJFfXNo1dXh", + "private": + "xprv3R23tHC3CdXLBcDddRSB8aHuf9obwJ3KUvz9KxNAW8u2gRf8Z6JmYEs98nUKqGiMLRpMBmzjer1VNQtF2vP6bZ7b7inFb4hd2ashpGxFgUEXPgCYdLxFE9dNpicNK9bEST8yyc7CsfU8B7egRjzHMTx", + "finger_print": "6832fcd1", + "chaincode": + "6916dcd448a967cfa90d0c3b1fad2a9caff582cac22ac79c72618d6bc5d5e496", + "index": 2147483650, + "child": [ + { + "public": + "xpub69zKuFcKUz1vZq19kJcnXPcu5zbzs4q4RveLh8oqLq6qsewgtUt46PCKa45RzBYv84BJALeWQAw93EKNGRy2ENE6FDvuZkomWqZizRjo6xy", + "private": + "xprv3RR3azjHCkmukT55LxMnotVpABnrFu9ssrk2T7EogLf1LhbnPTjQqxs6ZXdpgHvRkzANW8r8MRNJdY32DwpFwhx7tgk6PYhbBBg4PNHDRrcMXJMx6Zkb4cYQV7e4PPyie1Pbw8QkKQXdSzMuXyDewWa", + "finger_print": "1dc65a82", + "chaincode": + "d614a19ff682f19a0717257f467ce14d1c8fd5527076a582a3ab72a44098a34d", + "index": 0 + }, + { + "public": + "xpub6DCUZ94Kpt4Vyehmw2iztojEM77HfuH2QLQRReKdxKYjNTgHc3Wayw7R32rMAefniHN53JTeqeBjuSQAyNRekVifNDaToTEcskmnkQ63hpM", + "private": + "xprv3SNLrzyiqJL3pVBKJW8TegHuXyJTPc4DX69TzYUo7EdDy2uqm9xE8uT5L7SP38EWUMzPM17Bs7M9RpLHtHGPELkBLnN7Ex4fHQPLoRuNUgjD7sqF1KNfp4nJy3Yg3F22ZiHNhfrLt7tULeWLpGKV39W", + "finger_print": "d26d2e61", + "chaincode": + "931a586da0f42a72855e40538e49fe1634b4ca921b0eb929c54b2183afeadc9a", + "index": 1 + }, + { + "public": + "xpub6FJFjEbkKmaJd8NzrRqTgZeT1yMhzXX1yf3UEDgsLBqSkDfJsNMxPLz2Es6zcbe7JymaNfd4pNAuGY9heysS9B8owbGo2Ks5BJmt48oHSUX", + "private": + "xprv3SzX4f27JUwHRgrpjkmgw33ecgsciBgUQutv1LoF1h1672ktAZiJWLFyJD5EYGF2JYbWut1RSjgnhsiaHEF15WJzqs2EAZL6537CYBCoLG7MMDgP2jwUbpAS8zvWDKEZWwp7xmgMHvH3af1Dn8TQyNb", + "finger_print": "f0158b20", + "chaincode": + "dfcbcf1d4fb71dd4e7099c02f0ffc19624c522f5df9155ece1bb358654a3602b", + "index": 2 + }, + { + "public": + "xpub6G97Bbq3GVGUqskfAPCSLygEKSyWut3oN8tBNw2inBhE68Mk4ghA26KeSg5hf3FHGk2FWJsCxNj1gWoU7hbPzQJxze9Tc78REBPKm2Nx9ac", + "private": + "xprv3TF2mwc6nxAjPnBYRih4e7oqHNtaWWeQHAsyv3kBL4wFunbGXbBAVqDU4XbR9ZJp6iwaxgikC7nyWD3bBfFYK2UgYZGzmxhfuFC7RG4jjSsmqfVGgSyr5iN6WwmHvTD5xeESyZjqjeGcY2kMLiHgSae", + "finger_print": "62ada192", + "chaincode": + "aadb9c748d4c02a236db8049e83a29704dd1591058644d4f99a92230b41be284", + "index": 3 + }, + { + "public": + "xpub6JGkNUnZPLarYEKJx3MRc4ysabJjVpYRBZStJ1xga4F66oxCtvDiFbPBUjJocRjgXyozFhPvGuApfDd6SYpWJ48ePCBy9HC2UiJjBTfxa9g", + "private": + "xprv3Tsm4dM1JSPZkpNNRuGZ51MPtM9aExpisvXbRZoPgBKmZBj8jheGHE7tuw4zzVULYzuL9untyiL9iq1wxcWXktwTj58pGmm5pK4kyh5BTh2h3GpGfW5MzQDUujykmPDjgECta5nAN3mkeNaK9EGWCxj", + "finger_print": "84b44ed8", + "chaincode": + "85e3e1a2ebc4d1422b1a38af5629d6216f229f7238edfa6889c39db46d6bc488", + "index": 4 + } + ] + }, + { + "public": + "xpub68evG4mZuUxJnueow5LfpkVfpZ2vH1ySbU6UUspB8Weyj6sXh8NEAr77dxZCiuYbX7ZEgpEwBuQchvLpp3QAho56NGLDt6iaGmTJXv9j6Ah", + "private": + "xprv3R23tHC3CdXLCkZXksxsz5inVcdB3yYTXWnBK18BcA714yxkh6pRFdNxx9e6o5NMs37SuSjSRZugB8GEjEm3U3CKeGa4nJ8YdghgEsEbE5sfyNxULbnUAgksBvyiw5TtjjjwcDs4dPruBLk5FHFMY5R", + "finger_print": "6832fcd1", + "chaincode": + "ebd7c0f6fe04e62484065696c288f9c9dad0bc24aa7e9dcf320efc8777ad3050", + "index": 2147483651, + "child": [ + { + "public": + "xpub6BMSEWmUt6b3LSKvrjSRJZiKfJTDQvvxgAdA3i7wJmkV4macE3b6VjZvuQen6d6y5EyqdRemhbZKS64qBpj7N3yA99eZxF6kmJFQk6GUrKF", + "private": + "xprv3RpYc7mu9eXeVf2BkteJo5vHCZ3YV6VEJGsEhPEfXPKPLvJ2weRfp5a6H977gxT4Sb1YWb9MajNywnBsyYWmQNo7bGifq9oib9t3C7ViGJbfJL54JNkgZEYg3HZkHm3WZ7f5fFxRBCBSRGxSz2fT15m", + "finger_print": "d7578362", + "chaincode": + "77085112457554fdf1a33788e98af3f2f13fdbebfa56728141b43c578439e171", + "index": 0 + }, + { + "public": + "xpub6CoALSPtLDTVmd4xEsHrk7wGNUsPvgiirRyd7Emx8nVwGPjjdv8TiSCD1EFGUBz2jXGQGrgxoswX7oUJup8hjK6eYueKAGnpwovXTW8xjts", + "private": + "xprv3SFRAovELjnJHEA6cSKc6QzWvqJBseKmZ9cghxkWrhQeMCs8e1t42frAurXv3mrsHMf931XTyssv3qXNcpa3E9R3dE4P6wygeDkdEoa9mS1x1rGZrriXEJp2EiuBoY6PrmdGXe5irZafVpdZijBg1xV", + "finger_print": "9bbd05ae", + "chaincode": + "52848ab5f4dac666ef9f14bcb8fbc47a67ab8faf0a6125364171f8cd03818820", + "index": 1 + }, + { + "public": + "xpub6De28SFCwq2fxMCwHzPSySCwUZoeUSkRSNqtTNBHVSoLuVYUXoZ6xqVVLKyJaJeTMVtegpKtpGuhNxCfREHRNu7NXz1uwxeJo7RdxLjzPj3", + "private": + "xprv3SVvyvkD3AfZYAftbkppcseeJUR4YVUXSxgzVeQLzmL6cU4Qrk3rRzeoM4WQqXzAQUK3ZS5Mw1vmFKnw8JKodYQyR3FufGgYn9dLZWrxWusau43qD9EMY71tjzuaU7ogWCDcxV35CGQHSrAjWxef6wU", + "finger_print": "0e589d3e", + "chaincode": + "b86bd1c4e262b32ae869bbb9fab0a51e9cda367d2f6199a9c310857165308d29", + "index": 2 + }, + { + "public": + "xpub6GkdL7JfZwifsq2e9qJ4ckvXaAA2KKwoHVWuDVd3RbwTjBiVn1jjJjTjMBx94rN2SGXVrRRmfN12Hai4jy4vS6QZTmdWahnj8zdb8uzzV7N", + "private": + "xprv3TRamSfzRebHQrwpgvqJTi7GKhCVLLSJLHCFEntSwzhCQpts6z3mDmmYyAnsbdoSKTexTqbRXuHreSYux7x5R2KHjvKgkmXjghXK34tmg5y5SzHUFejDgtbdbQcKL3SvysgxVTCq6GNmm6hEap6hfKb", + "finger_print": "b5ff4c6f", + "chaincode": + "9136cdcf5e91b40cf78e83b8c59129dcc5920d505b4010ea3ca6aa2234be6f72", + "index": 3 + }, + { + "public": + "xpub6Hw9yuA7QhxMDDRbDLgbeKqFiKmfw6PrH2Fx2KUqUYQnn2dLKgZBkLNqPxQBG9DuGwM4TmqsZwNHEUqyXDAhFTCobZ2oC7mSiun7ASrNs1M", + "private": + "xprv3TmwV6VbrDhXvJsZ5ukZGHoL2M8psboRkpW28eQmeEU3Wkg7Fj6sj2b69jZw6ryApPVwWD42zE9tGqS7uNK4xGbNNKTbut1kJswCrtJZkWLDAQeHPsUKs8DbwcpGLRJacwkSMBGz3xWey2exSWJy9ea", + "finger_print": "56bebc32", + "chaincode": + "48a4c753fc98b79454bde30545a2f6e7af6ed76558a2a003d9b2e2ec380253f3", + "index": 4 + } + ] + }, + { + "public": + "xpub68evG4mZuUxJogbtDrwpDGJKGiDEjtbk5sSKy9Q99UW9BXjMzX6ogWp97ZFhWVkr4pJYoPsSL5xrxFP9DELRXHCk4YuiwcbSwQCTKg8fF7C", + "private": + "xprv3R23tHC3CdXLCyuzbWgD9D2Gjze5ioHnDxXa8MLgjANJYVgER3myg38mXPEJPpyibW4jts9WAFYqNv1fkzyedzW47o18LUGoNcNG1TZnHxyrYLN2C4v3KuYPmKANcjp7NPGKLd18EV3ssLGbv7Pwp4f", + "finger_print": "6832fcd1", + "chaincode": + "39af2c9633f8bb900de986d7918d67a97864e2ed9ad000cb7867c0700c5d4138", + "index": 2147483652, + "child": [ + { + "public": + "xpub6BKEXqQzSEa8EqzKj4tcQ9n5FpEtXanbTEJqUCN9LLjYPTEspAYrj4K6gS98LAPSd4QbGs4nSkFSXNCi3Zta9X2LaptrmERCxcgBdfC2KCp", + "private": + "xprv3Rotfsg7tiGeocoVLVuqKW87GcDt2qKQucPtkXQjmZNRGjyqZrfRveJgHZ8Fswj9zuMdS6Nh8djHUdNZFktc2GW2R9VWhcJSdU9EmkH9daCBB8iA1JhenfWaSvp42eono5K8D2iWykJRmDajDBgStBn", + "finger_print": "d22d5c6e", + "chaincode": + "4ba8d3c737eeeb0ce7b0fd516bdd098ebdc1929f788238a66bb39bfbf93ebcc1", + "index": 0 + }, + { + "public": + "xpub6CuNfGdwASFa1hDeqxNXFVEZj1agfMSrMjtGP1ZZL8aiiGFYwbWeTH8afDBS6kNN83Latoa9KJ5wwPUi8gbsfCdnThsRsLru4NQxRkPVmyY", + "private": + "xprv3SHGD4QYxf4zRM4PsJvXqan5wHgEGVzniYQ5AiuiiaZwsLytTUK4sxSduXX914keYnchQyxwWXGvGHtYCDrohbYtqiq5rYY5WYKPfa3cPJ6r5L5Aks6sKNKthJGdzMCctnzLXNy7uCSKuF7aEB5QnVE", + "finger_print": "aa4fa212", + "chaincode": + "0e39bbb841e90a8158ba5215977a36c3ba6bf53e1f5198f533f632ae41c11c7a", + "index": 1 + }, + { + "public": + "xpub6DtbakwKZb8wkrXeVs1177iMDwEmoMKNxRmmcPwdQ4nMm1wdGZ5vCBxVpmdeiAzSyd91f2G69jQLEdgUYedpyqyELwjEtQM8D8ewKpvhZMr", + "private": + "xprv3SaG8kufwyBM38UxLdSpDo8Wf4YAppgfdDpCX8YfXyF4F8BMSJt88B1sh54mCLfSSatGnNZKEKbbSD8ttuJDT3kJtDV1USQG6UkuVEbsRMD5aaNEsW3jZ2d5pgAiMtgN3q6kze2kGrtdnGdEJEYHJYU", + "finger_print": "3089fecc", + "chaincode": + "6471d2cba3d81c7671107fe0f901350f02b895349b36cfc00c13c5733599cde5", + "index": 2 + }, + { + "public": + "xpub6FUKfgbsW3BegrerCqdBgoRysB4AJfo6jZxTvkZWq5jJ8PpmqGPkDX2TNpwkA3GrcnpcMXQ3V2JhiBQEVfCN7zmdQqwFmF16LAo6xio7j23", + "private": + "xprv3T3WXgoJ4Tqq9W6Wq675ax22xv851nK6atAMz4cgMtrBwGVVEhDd938iEEdK2adRNPVVhbXLaaXpDGLesq3suzNzSXaFmyYZwSqQjRbpjvZkfVrDutSuG9yeP222xaZr5jNoQabtbqqgW41HSz7CKj7", + "finger_print": "07b35608", + "chaincode": + "381fd1d5b8050f98ac0146cf6bfbd5ae1f320ebbf64db2fc2780ca0ee7337604", + "index": 3 + }, + { + "public": + "xpub6J5gsbfhJJruHQASR5LTDWw2GSQy9WL6m78wa5cxnTirf5W5L9Tbb91H6jiGeZ5EvtcVt1594Ucjqh49ieEntdHGK41GpNWDbwbcR5kGbjL", + "private": + "xprv3TpUVshpM8QyAv8c5NH1R2RyyXD6YMGFT1sRyAP3v4oQTuUWUKt3iy9i9rjuN8BKbbQGHuafLagqDsXp2TNtz8EDg8A5wkjDVQ9Pbt4Jue4mrKaBue4DoXzJpZm6TxSwa7WNh1kDdheHUXR4t4wPb34", + "finger_print": "6ac293f9", + "chaincode": + "9c42e651a0aef9d5f2ba9b5557af61856efa0734289acdf49192cd72fbb5ff51", + "index": 4 + } + ] + } + ] + }, + { + "seed": "6de2b27dbf0db4cd4b6b3d0bfc3bf8d27bf96c8641c8c8a2a982213f6e968c27", + "public": + "xpub661MyMwAqRbcFHt4WbugZaRmBgifgSw9cULPjvEDiK8AdTXNEw9vx4r8WUbKbhQK7v6efbnVyhsCJ6HGr3jXXa7jd1ShReyiS56hXaKBox6", + "private": + "xprv3QESAWYc9vDdZVKoi5xzsY8yju5F7nrd5AkDbuFtVasSrZNtdPE7GKXMotu9DgtgRpRfFNow9k4Jzwm2qCh1AAtvuky9pTg8FUEEVp54mX17pSRBEcd8fxwvgxv6hj9qteATMjwLPUdz6LwmuAZtQKN", + "finger_print": "00000000", + "chaincode": + "4b3d478788e8d7e65887a9e5288082670ec65e30f16c0153a76f09559465b140", + "index": 0, + "child": [ + { + "public": + "xpub697CwowS5y8uGBp4SANgiEScqmYnTF1g8SbU3KiNnSaFa4knpGPiaQm9xu8L45NBLDD46uyLtxFsMM3SLm9GZ6ygX6LKkiuzpW9xvTJkfPY", + "private": + "xprv3R9rozg2hY6Yt4Zj5xJeXiMYoCYqvCdLG6NzV7m4VC94b1HYWDhZKf8K4Xnz9R3qbKw4rJX1QHqNfvP4XdTX6MJrDQq5htTmBTKjcP4WciFxtQqAwXuRmhXmgtKbpdMBGZrXfd5uy1RMwsaY5gnoqjS", + "finger_print": "a5dcc557", + "chaincode": + "e2c27a4b35aa2358f0d753fe6409238f91cc06dce347fed71b1818874ed2f576", + "index": 2147483648, + "child": [ + { + "public": + "xpub69xy4qZvp8Tx9mxTMUAg739Dbsbsmjd2YFaDdywLv3GUeuunHJkggbgpa8stghJtMd9yFFMDfhfLJ1ASqdX6vDL7TB6YtSFeVosi8cDhP9j", + "private": + "xprv3RQeAhrwuHDB1ZZNXXD5xbRS4HBrDwmKxD5mbS1imyHrMVwdoVSudYJf7t3UJq1jbnwrpcyzqPCi12ppPEtveyThzPvPDubtpq57pbKx4g6gxViDXKdcqHv7qVtXD9TkgUczMtHE3irmRGh3vvMd9du", + "finger_print": "1a9623f7", + "chaincode": + "dee0b515404e8fd2697b97998788b587c5ad40753cb707ac74d7550d8c14ce61", + "index": 0 + }, + { + "public": + "xpub6BhqxQcorHySthL5dWYLxc4XusktaGJcYCCjPifo6JYDTqnks2yD9REcYdGqpxVDAzFkrSnEgTNv73mnWwoxHdhcocnmYQJvFBagYfZRFxw", + "private": + "xprv3RvcFBHhaRaHWNaT6KzWS8a8Kh7XXhdsTzRTfRLo4df6K4DbZ2rBDeWY7XUuCbQbiCL6S1t19ZEqnU7UvnPPb6c2C942vbCCnRoUwM94uH8gZ9rgm6EmYB3sngeyBGb9hHFTt5d569uP49djcqPUkMf", + "finger_print": "0737259b", + "chaincode": + "d89b05a6e4269c83a6a986b755489ae47d2ada452ee6ac1f75a4bb39da9f9180", + "index": 1 + }, + { + "public": + "xpub6EakoB61ox6n1aLwwjv8N5oweiAJXsCww5Z3yWhpf29CPqhTPk8XwwhWLSkUQHuSvfRd2GQwgAF4L3uJLy4i2z2nrks53dQMVvNfZnru2zB", + "private": + "xprv3SnC4BWkoyPrxiYJciCjwCVWqBPQD1fsuBS6GeTMHN2ATWQnak7PSrYnFC5VxShF6HzvFx9FYNHEAsdErRL5sbB1RzB4DufeiZvFQfYoGbrVHc3Ku3kTooeY3pfewNLNvjJMSd2hTM52PkRo95pA1uc", + "finger_print": "8ebd71a1", + "chaincode": + "e1b84860fa7b1dd7a66119873a0bb27b09088aa303b5f62ecfe2b1d36b4aaf6a", + "index": 2 + }, + { + "public": + "xpub6GsbKPNtYVoSbHwzKngv4fCcubui9TrqxXRAWj9y31G54nJ8eg4ceuMx4oyaAuLhkWNM6pivxr1nQKAFy7Vz65g8ayc4KncQdJCRRkX8v8q", + "private": + "xprv3TTemzBLRb7SnYp77BRneGVZoUXPKQ7ASR9BoFJMxGCk4Q7NURSfV9PcfHaC4uopdmEzeWR66dihZfdGYHqyURMCPi8FjbwGYjQF1nhxKrFXSKNWq7f44fHXc4MJecbeGDDNVN15jo3wUroaBWfwT4C", + "finger_print": "c655f8b4", + "chaincode": + "ccb50cae0dad5ea9dfe56a0c0f62a9a3977c2eafe7c239d6cced3c5d0d1670bc", + "index": 3 + }, + { + "public": + "xpub6JrNbLUVVdGG2wmwNRt8wv6zmhVpgcMu2CM5cSXVqnTmzv4oPu7kU7JWpYChsLeQGnMYsfrfAL9ug5Dn17Ean4WrXWQtrTrUhe2kZ2Zx1Ws", + "private": + "xprv3U3kQAVeCNvgiktaiBKcyaLDghd3Dr7p6DE2XYSJTd6Bt6fnNKgay91s1um4CaMLGgepEFzAxzaEUTAmCUPa2eZnVd84nN6DvoxEa75StgcDhtuDfB7XhNuykgp5PtT4nB4qR4kqE1LVg5PeqdEVi8q", + "finger_print": "d393deb4", + "chaincode": + "56435eb635c7b2f968322a1df013e831c3b092436d8ad63b966b3d1ac66f85ed", + "index": 4 + } + ] + }, + { + "public": + "xpub697CwowS5y8uJyVQPSheJBxxvxMD4A4jFFirDLuAKpHYUNzUT9v6y71DvgXR7L4V2V11YfDQY49zzw5koRJqaoKoYFDQPZFLFGENBo7gVFn", + "private": + "xprv3R9rozg2hY6YttbNxmAmrFLtU9wjFFoGHhc8H3ZKwQtxofXGkYbcXshrA9AoZ1wX9rTcrpxMrDyw6A5kM3tmehAkoXNMFcGX38syTnzVX9Pa1MdLYfmLYYiL7tBuSKGFyt8bLxADneeJpiZQQgKQ3pP", + "finger_print": "a5dcc557", + "chaincode": + "fabf1bb11e78ae0f5570d56d0b81f99be6d4d99c816751de0430f5c1434a77e7", + "index": 2147483649, + "child": [ + { + "public": + "xpub6AArzHmt7BfLUQTyNUuKqG4sLJBPmyrgyw7wtjqaDqpFizgzY84T3n2FEyy3MTe8HWqyBmVfk91mP6isQhHeXuWyMfmYqpNUZwnWmKh5rYw", + "private": + "xprv3RUB7n3ciuD9k2dNJq37MtLAQvwsrHsDqq9TWpgN8QmSiGbD4ajMP8hxfEFJMBBHSaWH7myhuJ3s14rarJ11QJpkaRwbqsDndMAGEn3pTJXACNHpjoesYrfDv9nrdmZ16M2uBFZmffa416YE7bYEAH4", + "finger_print": "367d391a", + "chaincode": + "13b0fba8c00de0e924b6d4be8b9530a71cb363bae7040199e96755e71d587424", + "index": 0 + }, + { + "public": + "xpub6D6xoY15WhCRY8jeHgNC2FrhV1S5MrSfMHGPMyukrTa4DzGMBxscQ1nd1AfgRr7Gm1mWYafwVzsWiAhSLBR1Dx7zS3s5jZW6hRHWWeF8rkY", + "private": + "xprv3SLhsoesXnLCW2D4vGmnqFHXmMKZFFJAmHDdiHmXfo4us4JZQfvkNTgYAfCU2h3jCE6emxf89rwNiephpxJFHbxGrRVxpY6JTyPKzhVyW8UKqsgYBT5kWpBNGCgksHD9y3mZMuzK2ABr8NuvyXdbWo3", + "finger_print": "c57ea3f3", + "chaincode": + "64f10897c9bf200e031007108e86dbfd3db32cc3f50f629702ae3f01e39ae86a", + "index": 1 + }, + { + "public": + "xpub6F847y61t2qDjZRbQ6cvhq6L4UC9DEznUiCTopbmKr7pEVizgHpVeDXZvNU7FAhthXMioru6tzw7kSkmBdn8FatNfKvpFotMmmL5C5uLFqQ", + "private": + "xprv3SwVKVBhxt8HLFGDrwVgWr5j6sKDjqiE9gZYU9hGNqziZkaoFHLFY9QTFF1akc89YCgnjNyHE8CrYB3X7wdM2W1o6RPL96HyUGkWKCVMjdfJoGcLtCXwuvZGWQmQqTXfBm5LpgcvxSQXS2JDMKLuejn", + "finger_print": "d82858d7", + "chaincode": + "61f514c09b3270b0cb01c1edd8894fc76ee277caf450e5d215de355958910936", + "index": 2 + }, + { + "public": + "xpub6GUMTUNk8R5Z6q5m64XUxfkLsr3UkcNcEds7L69MF7Y2no7AoMtBrdxzpH1jPLh164cRbdSXZdFYPUs9r7sXvtC62As6zv9voACFkT5P6xD", + "private": + "xprv3TLkNtYNP68pJRUMd75TRWnjwevwv9Fvd12UjveqJL8UzyRMeZYMe7uA38BBkwcXDAoEwr9tCwcsP8DjjT5QCsGTDbpnd9udzjDjtAwJC36B9AoLv9bQ4NCFZT4SeMFPUiXweXG51T7UsgzuiHHRuHw", + "finger_print": "8fd2efe5", + "chaincode": + "a6882450e5fd1319d0779876c152001895a49e5fc9271c26df886236da2592ff", + "index": 3 + }, + { + "public": + "xpub6K9sH73YrsYYxPvrEvuWt3LrYjWo9jwsPkLg9NGgAauWBRMLXT4QLg97HVqGkNMtHXCeK3YB8E3i5fTTgtqwF8vKqgGhmPabH9LP2BukpJE", + "private": + "xprv3U8wpnrjUN2CfNsjYUDRLcZeT5GBvn2yUXLwaCCY8iykfVYx48dt5UmKyjJ99AYGGeweGQJnb8oMeA7Hn3uWW17Vdsr48EhBmyp9TxXXnbuL3JYuPemU6rNdY1cWP7WQhL61yGtaWGsbjMvB1NL6TfL", + "finger_print": "fc9d6342", + "chaincode": + "9aedfdc3fc6bdf93fc5f95d7fbdb82107a51224d673313be3a346173c8d355bb", + "index": 4 + } + ] + }, + { + "public": + "xpub697CwowS5y8uLisaoiCC6JgygXggagXyUsZZSuZ257yWmXKAkZtq9zRFdDonk9CZcw2noT4YRQXGLEvQURvoVZMuMJwMARqpFRq9qGcyk5H", + "private": + "xprv3R9rozg2hY6YuQiA6fjbcRNotKafTNdouf5HsKCJygozJeCDi7A6de72UhffUgxWqyGHb8w3zeHmBWu8a1CWxJB8i8VAgYsURcYiHwdQBGnJz5c317qabxXVdpdeRjFfWyDx8eT34DdAvXBsSdy7ZfS", + "finger_print": "a5dcc557", + "chaincode": + "aa50d39032653ae91acc1d483b1f1e2f5467d98124fc4517db69d0a2855f6335", + "index": 2147483650, + "child": [ + { + "public": + "xpub6AwkUZ6k6eS47Vy9TdtoYthjDHXLgArnscSysbNPqcE29WuFytL28fme5Fwq8YG4sucQsYLHDR7SmJsxZSDjdeCbYEbX33GoTC51HomKX4t", + "private": + "xprv3RhWWpVGrghxjbCd758deQjSuzYGvfQ4X8fMnxcyxe4KsmVAnEsq3VvkM9K2nTstsucGVJiKpFgwT9wW4gqap5swyZfnG5R4g1qws4dQuBecQQ2tozoK4agsnpCHy5wDcJJjiFKbgjp6j7vFUcNkNVn", + "finger_print": "9fc859f7", + "chaincode": + "1d0d84e1de01c36cbfa9283d9da5663b9197b3a791ea7eba09baf60b3b360634", + "index": 0 + }, + { + "public": + "xpub6BzMDdiaheBGtHaSVnn95UiA31pj5R7n5LHZSre6FWZebhj2KLCE1ReVffitfL9NrukGv7GU4FCfvB87XhNUiudxVrUqfUqfVYdEwk9PXQb", + "private": + "xprv3S1WcRjqjwJL7qAWyf7P2WThk9663Z2hyLGCqTcuNrGhYoXwFbife21yr5zS4jUAHGEDvyHPUdDMxxi7E4EfJmCAFrEoUShWBAqMhsMhhzkVtNbPqVZYkcPWEJxrnd2ML5cYtFELnLjMzchm7CGC5jv", + "finger_print": "2dee22c6", + "chaincode": + "cf57feda0157e80961525ebad96df96694ea6c12873ccc8c7619611585ce34e2", + "index": 1 + }, + { + "public": + "xpub6Er9ptxb8SfsBCJCrXyE2QDi1igDkZyCCh1KLq2wyZg2fmfqj1hbu9hpR7pGFoHvH3iQjFLH3rTwEQePxJuhcqbfoB4NvPnrjiVKo6bJtMW", + "private": + "xprv3SrmLj2UnzRfpe5rNTFQXMD7kpt8fRaCBgon2ayXvc5oHX8cYKcQYCpBudN3dDsF3m7irGi9DPikBeyV3ga78RGhA4d95X68Y63rhLtRkNSBQN6HWBgTGD7qcdztB5FYzDY8sj5y83q7PFVYDHxofCh", + "finger_print": "b2db6670", + "chaincode": + "416ec1d7ffa418dd240755000257d27a60b3c355e1a7345bd816458cf88f8df2", + "index": 2 + }, + { + "public": + "xpub6HFniAA9DVnXiewx27zgWvoQFdh4pYqxxjL68jWeaLQHfD32LVp4tsjycTLtg358R3kFS2eCPR1bGhkrNEu8FBfaDqyLHPsKF7as2AhvBaR", + "private": + "xprv3TaFDFAr25qN2Q9ESDxegbHkvvsnETRs612p5faMjB5yJK8c7ptVWuurxZwZ3WmY7CcR6HXvZzCDYfoHwvYfMAhcRfb4u2YyQvJpVt287XCnqumxCPtkytHG1CL53ZQWU1gPnBou3SSBX3cVEfkgdnJ", + "finger_print": "fa66f3e2", + "chaincode": + "d4da06feeb0153552e4b2399f21d66ec22ccfef7eb73a8b08cd3cffac9a8b2f6", + "index": 3 + }, + { + "public": + "xpub6HRvmqbXC9NSworqBnnSMYAYUNW656vmun86RefaPEZEDwN2K6e9jaNY6sYBvPbMX9D8PHmXp2SQ8C9icQ9oerjrxDbyrrK2CgKTgjMc9Hx", + "private": + "xprv3TdFuLpDcRWcyKoYyZVDupPikSWjRWYmWsFrUbDHZpTQZLt8VMEvmzKXbpCvL4oruG4a15tvq5Nz5u1RhjeqRbovWfZAhbqQ1cjfov6JnLhjv1hLonTdvp9i7WErdF8TnP6SSgiWdsae7D9iKV43mJ6", + "finger_print": "122f7337", + "chaincode": + "d868a61ee7192c434455b12ff33a2421fc1449f0fff73cd3d0bc7123eab6de40", + "index": 4 + } + ] + }, + { + "public": + "xpub697CwowS5y8uPXveFMSPBgwdsw5de5gueYGpaWFA1vXBqVmpF2qng2DZE4TM2rxMD9fGufG8iDFT8oAVkFUBd5zihuGYpYmMgVFayk33PbD", + "private": + "xprv3R9rozg2hY6YvF9VSLWQVWMgJMrk9rCefBmEXqG5UYzQDPUmUbhBT2kpNxnAHNvcNVtvqE1Y7NU1xRXm8skEbJXBJDVgntokxUjaULCakMZx3QWyg6yStPgaMUjBCXaNBbiUKMvqdD6QV9isRbAQoYA", + "finger_print": "a5dcc557", + "chaincode": + "c4aec4c607a9cc4a9e074ccb807a85ec32e0c26eda25ca30557ca43bc380da89", + "index": 2147483651, + "child": [ + { + "public": + "xpub6Asa9XdiSHDdfLhJJUs9ZKBZGsSdQ27xwrSjSMCgC96VnFbZFSvXM8HtjzHLykYPmqsB7JejkmpEe2PJhdhCVTrxu3VYa9J9ksnAea3tFox", + "private": + "xprv3RgGXc3JgoxPufwaAsVpdWDGMzqR3DpJsT2MFsqMWVqKBFQ6mArAEHhzu6T6K91f4ydqXjHCYuTKV3MqYGF3fUvspyeoT22EmuQYxvGg73EpS7oT558573BnTRdyS6ow2ZydWPH5epM9jKr1vRHiMBN", + "finger_print": "95fb6a5c", + "chaincode": + "aaad97dcef90ac78db588a746c0423a1d6576daa4374bdf28ab0780493ed144f", + "index": 0 + }, + { + "public": + "xpub6DDkgWCp7PYXgy9LiRUobcGbkrVPax4Wa9k73WfTBZRR7BBebXUv5KJ8ayjZyemV4yt8oLF7mDxQRZsSbNVKruG3hphKFeSasrdFzjJsHQY", + "private": + "xprv3SNitBJi3oAfpJCNLfXGNt2CDGbVtEeatfdVqCKPtHV1SHFoRU4FsihjzuKeiDkrXQMTr8RviydAGG4nhZ1cTscg86iKywGnSeQ5SmWAmmsJ6CGoqiBinFTridBrwpBtfWQuXNxojckwJxDHx5gwZdd", + "finger_print": "d56ca711", + "chaincode": + "fc6f420db79007b8474bf22ce0ef1b928b0abdb226d9f850719641e18a1dc2c6", + "index": 1 + }, + { + "public": + "xpub6DwrDHTCqyooGW6BgSmSMAMFVd1fMsg62mi7j4fmY3NyXtMsni3fRZDV7bUnMNiPxH5JyBuX6KfRg29LKDdymY6atDe9SBat3yxfvSckXjv", + "private": + "xprv3SbEAmnX126oxoKkj8jSkYd6vPhE9jhgyvUY4cpX9WXLnGW2hn82rx9JNvyDmWuzUv9gRRDqz4xGpZZw71gvDmkosuYC6HNeiZvYXeDSVqW43LjUHoqy2d6w6ac6XcLhxbiRf9y9saGpRoE7wEUBNCc", + "finger_print": "382af7c9", + "chaincode": + "6d48886785afdf9a08b98500b2f6bb758619a1142222f39ff44876b87c1a7686", + "index": 2 + }, + { + "public": + "xpub6GKmSbeX7Mn9ESsuinPUJb8xmBvtGGkwH3Gr4QKaoD68dRwRuox2EUSAgCi19xb37HXDkj9r9LCHRTMsD7rGqs8CZHvhf6L34qLTQPsq9c7", + "private": + "xprv3TJCSHjmr84nSreg2VEvomf69tji3dxKY1dw3TM9gemmpAGAS63J3C6dshBd3nwXFgqmGHfSRMkBBsahtnjEV9VS2qiGNqEoZzDSvcu2pgZXPDMg3kBvbii766E7aRAjfFkpiY94xyrkGJ534vFiW7R", + "finger_print": "7baec0b7", + "chaincode": + "28da857b2cf35231f85c2df82e55df7af4caef3314e7fe553433c9a0e977c5ee", + "index": 3 + }, + { + "public": + "xpub6HkYTPBbkVC2KtDMLdcQbPWPDK1aPgz4i2EbSvqVuB9w7AJpVULJCswpTPBrW1vgtJQg1FHuRhHZErUGoKzYwmPwiDT7JcwNuDK3afk7Ua6", + "private": + "xprv3TindpuichsfhUBuwHaeEAndveo3dpEAUejbdDvxEuZrXf2FHm8uW8LYWK1s7yUsg4AXq33rxmBZakBXJDkErS8EWhJuPAWvGaMxhE3SZEGCBJGczjfPPfafi4AfzLFwBRA3te4SPG8VgJMiSMLEUPF", + "finger_print": "3dd9e749", + "chaincode": + "2bb4f5be787ef16499631474c40a4d91b417b63b1926060e04c5787c3a23a872", + "index": 4 + } + ] + }, + { + "public": + "xpub697CwowS5y8uQmGX5KvnNZvjoTGZLNbbYwBiUi19jwucKTmmJggvFZv9QkAckUnnswLrnobLaXKNFpYR1qUSexTKYYPQFgrWbPvtmsdnc33", + "private": + "xprv3R9rozg2hY6YvcLhPQCZ9HgeRz9DFYEUJqYGe4bQZc2zi9uV8UZXctqiYwF8n41YKRy2jfMBaFxT1pyghpw9ce8s9U4iYBeLR6k7YQLRwCPGHYUdhUgqdhzcSmt6xLAmX7vy633TsbugrhtcjRopkw9", + "finger_print": "a5dcc557", + "chaincode": + "403b062ebce8de9500994a6cfcd7df0facafc34cd545dc609c5bc191d6c114ad", + "index": 2147483652, + "child": [ + { + "public": + "xpub6Bdao2gVBw91Z5n3ddJoifJNMXBTNbfccixiKbRzZ6oZ6dGyfXbN9jcBVxnHNif3Qz8RXSFgK6qjY5LBVUhR74XSu887pxd8Sz5y8Jp6una", + "private": + "xprv3RuLpgUM3hkHj8tLo5yvM64X5J67wNRz6zAVoZBDSKADrdHaJnu4RXfdHeHze9tRfdApjZMK3FyRaYZWCv1x5qshK1EutfFmeTqEUffQ55dVMi1WnR1jnc2MRx7bRMoe1nHp9Z6yWXb7LYBMovSL4yL", + "finger_print": "fd382a69", + "chaincode": + "a7d084b4a1466ec4e59577d833fb7731b73a7115d42c3d4b5d021eb295fd00ba", + "index": 0 + }, + { + "public": + "xpub6Cm7Uv9fzCjMTGwF98RsEHCFCuevssCkDwvMR3onuhU3Qk92DQhCFYf62bYjWJZMvo1dWgLknjYitUXKsmgLiMadddwuHmL31HfvaJFGAoB", + "private": + "xprv3SEos1JsE5jm8Fc8RNRKRvfvYADWF9cxhfv1bzuAA2yYTMehDfDT396S4t82XC9nzWhrbDjddEs3CoZVbFM7j2a1c2NXUxSK9jyvvJ4oRw87q6WgbhLuoyPrpn1AEJwm63xJFNPjwMY1LoHkSJyfQhz", + "finger_print": "96ee7904", + "chaincode": + "72e6247c39a26146ff03a564e5776426174a426294ea33df56ce434fb30312c3", + "index": 1 + }, + { + "public": + "xpub6EqK8tZ98FcuqKapA48EvbU9do2yiay7qV4Cwy1pdQTWP89ZjCUSd6NcD7xkeKwf8h4ASTcMxThPGNUuEQRX6E7QDhFQVRHT561nWoXkih3", + "private": + "xprv3SrWspX48xkMHaQmLypBi2msHcL16n9NDuTeWP1Q7BmS3Gi1Jipaegt5eUq6rqyfTRqRgrikF4p2AfQCi3detyGViBhMh2Nnmyc1pvVUdb8os4fmHf2WGSPA3CShgHGd4pgb5WTgLixnKUKWD3BENzG", + "finger_print": "b0e34ac1", + "chaincode": + "9a6cc66084652a97fc50e099a1c3ffb7498d4dfae3b4c44cc060d2156dbb91f9", + "index": 2 + }, + { + "public": + "xpub6GNssXL3m3ru7k1JEW6wa9YVGJSSKTUtgPb3atpruSP4seNgXFSvKr4DEXwcXCWTrBWvL1dJ8uyFgJHme6ToZvStAws82EwU6SixAgf9NQS", + "private": + "xprv3TK832Czw6yQakUhDw11sUykKB88Z3Eu3BuVRQUmxAdSbiMEqYebvj9s6jmXjQo7QRdrXxtPPj8mqZqRKE86AbATtjR2Wzcsi7RDVGioffGU31TJRDbgjU9vkZBvgayyB1pMFCgveaPAsWnFqw369Nq", + "finger_print": "82fad3ac", + "chaincode": + "ec51c9f3cbef97f8224fa852ee3a25fcc5a2f053bcb2cdd2632da0a9b3e7819c", + "index": 3 + }, + { + "public": + "xpub6HejBxyzHg6pWfYQSW9ubgr5G5uckpibRjfs7iByzLNhJCfkevfFDcWvfqjAx2GCgEUn9gi2tWrvWmkUxAdndSvT7s2Q8y26eoE17PXaBPw", + "private": + "xprv3Th4SsY783gHsvHdbmKQ54fuScv3KrWmpdNFhETjmQvvt3gVRe9Z6o7aJkq9v8RWeQ9GQcE83KRJLgQYzDZadwuBkaE5M3uuvLGvaxQHk91uXTzYgSLfegHoS1XRvgfe1Jc4NqHGD2xchDe2hANDNEC", + "finger_print": "3036082a", + "chaincode": + "16d6897b31be603e1722fe394aef8d60ff9c9b14d813bfc98420d368686b986f", + "index": 4 + } + ] + } + ] + }, + { + "seed": "e68db487706303799b7a60c3f7366ff33aec3cd00c0214422bd1400fa72091fd", + "public": + "xpub661MyMwAqRbcGG13B5rAkSBhedtB9AHp859TjWhV1Prypcx6FKKHR1bArHxQCq5Ga9xQpytMfwtFmmiiZXQmKJawUuvCR65TFZTn4GgLkQF", + "private": + "xprv3QESAWYc9vDdZmzjf2kKuSdVeCCVj3xf31cs12dFU7tFAS2QtN7Vw8mwR3HAyzQtF9Xj16GbRNHwEibYb7SwRHK3HQJJb1RAumXmBefQCTofpT6Z9eav1voPgnoHvcKQB3X1R97aYqp9peFzspG8MH2", + "finger_print": "00000000", + "chaincode": + "ac6d0238f1f17b9bf422eba6dcfeffea8427ae8dbc4d2e40bd5c35f87e0d78db", + "index": 0, + "child": [ + { + "public": + "xpub68YrpCgUNojGXuppRLqFMqVYHHMhA6N55pi1ACGjEdSnitcvGo9CSWatXg9dL2h7pPUgDWtw1EWuFdu2ypmEtSChAvbi92gUUYstYd44sUk", + "private": + "xprv3QzFV1Q35y9sQGEkatDsnajTKjdh23ViC7ZRfDkVrHmxQpdvyzHgwZMXfoWs5DW17U3rw6K7FzkNZyCWhH5E8gq7g9ZNcGFCkCvWGArrfPQusNLgTGzwtbJ4xEayyK3XP9oatvNhBvwKt3kxjreA3XE", + "finger_print": "59fc4d7b", + "chaincode": + "02637234610ddeec2f815d04fe1be7a2618d23e6f6cd86ccf0bf9ced98ffe427", + "index": 2147483648, + "child": [ + { + "public": + "xpub69rSJsbcqW7M1jp6452aKQCEhUYBCWNMzpWco1bugPkWBuMLnqdxCpWVzDpe36ZPesQvT95ssWxgm2pGaK2JvXLap2yFuYaXdmQTiUqaArK", + "private": + "xprv3RNherdsiv3UyBk4cXVhFw1cCYX3TPJhWzg7EdjyCfBybBc9s8M24rv3xurSgpoECyejcYNvQczJVSzPXy9Aa87KEFeaQp9ufmgcgeeoxkhQQP6RaXgZApft8aYzKLmvP3xmdiyzJFfboPhk2mGHyki", + "finger_print": "0b44ae3e", + "chaincode": + "dbe40796e2d2c7ad8993fb4cea6e560296bd76d500de9f2cfd02a88689c70f41", + "index": 0 + }, + { + "public": + "xpub6C2fo1kseCvKVyj35Xs3LWJ2V55vcvVHzGAjCwZdXYtfTdtUnAFuMjHrFAmNKkcqAzkd8SsF6Jqi7nqTWXEeWP4xy5zqgaUducyyARfzbMw", + "private": + "xprv3S2Cb7Jgwgv3A2EnuCUL2PdjvyFnCumjQh7RzTuJhRsm1ugrWh447KtVXaszAENrzhgXNWvvQAhZPFy7bSFba7c2zn4rMt9vMgjHajX4Np73MNa4csy28nyfH5BnnRiC9BZNaLgJN4SgyqMAitiS1Cd", + "finger_print": "335f759e", + "chaincode": + "109c36b2ac4bce910aed3c7c28f6cd38d2909fa894dfc026243c92286980ec6c", + "index": 1 + }, + { + "public": + "xpub6EhcPXM3z5MPmP4i7aMWzn7xwDM5CXJycnmcpwtd5vHQTndaWKZD66EvovJ5RPgrKE6Jm32mHmdDdXL8tj3Ym9f3x1hiVCPbCvv6jptWrey", + "private": + "xprv3SpEAY5iteDfALf3x3NSDJKEcAytxf816ZvaQrtUVVq3iepKHKr8qkdnVwoDVe8bZRuPuvSnUUKQAfmmhd4jtYGakuA39exzSZ6ZixCTZpMwQxzKZEEp15Y6q6oAkbkZxSEF86D7RfP8SjUR6Lc4xRB", + "finger_print": "9ed1e736", + "chaincode": + "82411667fc7b344e5f8d26eb21ba37a7a8a9085791fe906e30115aeaa5582572", + "index": 2 + }, + { + "public": + "xpub6H5LSGd7T6WYZPjUbB3vdPTvAsxD37nhq6UmQ683y6c6VGqG4kyyVwzotFeuuSDycVkfAMBLW6xST96iYnjzcdqSheNNaMTwF3H3Gunc5FH", + "private": + "xprv3TX97PUZsUKbcFR5bByeyzEq41ppAMfZgahANbcUGxV4JzK2AQZTQeVutp2JSKp2Htg7yuNANhNUfX192Gi7FsVrVrWqTm82xPiLbrpWDoRfxohZrajEMXAjngLnHFqoWi95F11XsTfBVZkQMjCR8h7", + "finger_print": "e1e1e9da", + "chaincode": + "62efb74ececc4dcbdfab0695ed3fd82dbf1cc68a48e95e1e10c19834aaab76ec", + "index": 3 + }, + { + "public": + "xpub6JABGW21VAfPDNdbvtNq3Ajpso5NRhFaqitvwamKScDPqYLsX68akcchnbsctCQ7SPzbueVyJUF726s8NFKuDsGJJHwXbh1Y5CBnZ5u95ih", + "private": + "xprv3TqorNf827EKg1TUnfMCxZHW5qdqbUaUbo6qE5otAhdhJTexoYd8LZQimFpR8oBqQ4GkqCQgju1EUAZ3787yxnyrMnj93p2GNE71f6HSqcbjHXtXVDhk2hZodnVa7Sb4bWG7xdo3ifScT5dhsXRzkRq", + "finger_print": "754a918e", + "chaincode": + "dc07ee9879afed890155e9f5013c3dcdb62718a53a9c22c13ec9ead4fb3518c5", + "index": 4 + } + ] + }, + { + "public": + "xpub68YrpCgUNojGcbEkDSYqe9f9JeaZCPfnephVsvFGYdkwosK25Wuq8taJ3RNTg5e3o49HwPswGsgnBxDpYn82p8ftYdyZybmqEHd4BFnnZTF", + "private": + "xprv3QzFV1Q35y9sRes5gUJnBaKpzWmcZfEy7Gs758XRyzV7dLp8endyyZKW3UVYwZhC8H5TwTEAnPaR62qkxnzwzGCH6ZzGsdrNcT7nhvsHqWze4JywsGGopWmamakpApQ8SwD4xWAph3ayBSkt59Vk38V", + "finger_print": "59fc4d7b", + "chaincode": + "d86861d891c4be429037cac14248b2db179d7bf092f8ae157255423f419842ba", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BbDYCjdAJa9vmdKTQfShKZCR3C9TnuwVBsVLz6wFDt7iLg8dSpgaUEWbD4pMpCZrKzjRsnWhTG3kW9c75skxVJHp45xovPiYhRjSgAcig2", + "private": + "xprv3Rte3pd3iCSpxKDLMf4aLotnYWzPjWipNXH7P7TZrSgdzoXhDCeTnTLMEsQsLMZ6QnTpnx8wV4FEGvFo76c2EDdcxR5hb5noJwF5NA3JLtnKAurMc41RhC7ov3RcfsA2YgLhD5uf5AheYi1zHgXGLo6", + "finger_print": "f7ab17f4", + "chaincode": + "53a7344adef216795be580b7833a9dafadb64b50e1f2a2d69a9d615490b7d915", + "index": 0 + }, + { + "public": + "xpub6CTN33d7Fnnp96UKtcHBK3nkg2bVfBd5TguUXoh4etJTrf9tKuGcrVpVpaCrpVAbGg5KvYHDRsNWZGQekUr2dxeM5DmaquVtD2Xv2JYGn5a", + "private": + "xprv3S9Y44e1kzfhW4HaVeihSk6YJv7f6Gv2CoaZco1GsHJC8Yc4ZhF9H9tcJs1VSPXBgnQRtGkub5RUcZwWx2bqULVomBxGWg6odB1fEBGWb4A19XVw4GdZXiGyx295GpbwGLWn4tCLMdT8xxJHhrDUvRS", + "finger_print": "6d4c2237", + "chaincode": + "cd3fbebf8c40cde0c3eaae500bd78b88e046449d3d64d31a89c7c84e9746fa51", + "index": 1 + }, + { + "public": + "xpub6EZSxraDzLpEfeBCXgJZ5yqzKYguQUGQZ2VYVnh9PJLt2R8Ghbq9cQR1prwN5aPRmvXT4scgdE7WoEqvsoNmi9RShiC7Tdy3imN8YwNogyf", + "private": + "xprv3SmoXcEmpewgPZoixhYUCbYELr1ytbQkCLBzuezKChj8xDHRoPPJRHsXckVbGAX19uVCRoaXzCgQvoERDAtSpk4PSqbcerBBYWQJuWQnY3m2rwVA36qCJMhpneGWEQqgHyvmGWDvvS4zcu7uNQXyByG", + "finger_print": "8bac4ee8", + "chaincode": + "c50f8d4501d9789c249d590c8c6e671e892304370246dcbba82b94ad7d924f29", + "index": 2 + }, + { + "public": + "xpub6GcihZKXwXUdEvhWUEevnDa2fpNpvXsdUfxt9Yv3jYZg8rY7PNtPEqaYNghnTMnQSPBNQUgijzpfD6PjpqrGe3nYz8YNRmnx9Hk2bN4qwHF", + "private": + "xprv3TPEXRqkaXi3X5WhYqD4cKiJxcYT2Ej4TYch61QUmPqQBgUx4yxiReowUdMEMzpg7Ntn5EFhMUB1dNPrpNgHnkYSVAtNmZpUhg2L1zCmkJYCGYWdgChges1hfCWmBbp83qgCUR3eEabNKWMjVPeGWpG", + "finger_print": "a372e26d", + "chaincode": + "18dec86da68bac971648f4ac95cc7d6f8443d66aeccfe67c69114928dfcbd630", + "index": 3 + }, + { + "public": + "xpub6HhjBu7dn8wPcnZrCRn5XK3h5akDG6WA4RXLiFCPHKMppqEUM9X58NtiXdbbCc7qxiGhJ595DnHm6Di3U5jgY3UCqPgGktNxjuoHeSTSAFj", + "private": + "xprv3Thx8oVwxzCyNK8TWZpHJBV2FCR7uEhKYRrx487suXZuRhTstxrTsQNmaedxTyHXApeWc5hLaKFDhj873wUZdbszmpT49bDSFYRozDi97tgqk68wqiJG73dvoA8xd3GeAHaLrJznrNQr7jQyVDM7ctV", + "finger_print": "373f8618", + "chaincode": + "42059ed35e5f753126f27345f8ec6977b4a35af80cd75bf14c399cc42ef33b6e", + "index": 4 + } + ] + }, + { + "public": + "xpub68YrpCgUNojGdRL9K9r53N5YFH3kDch1jKH4M3jEkW3i8NiHwSaRYaWkpU5UggwLtnFdrzdUX82BRKE944447KJmk3rwQrogJzuqGzYqw7g", + "private": + "xprv3QzFV1Q35y9sRu9htpgmMDQWDWuHSUJ2gYKzbEQGTZjejEGLUqnsnjERnnUETAHyoDKn3erJ7xWXajNF5jVop33GfPhz9pSP6cyf5ZJbH3qmvkA9vFYqPbRNnbUUzz6eiHHPAejXHN9sqSfEgpMEsqR", + "finger_print": "59fc4d7b", + "chaincode": + "2bb16a7705abd894ad4eb2e1f7997790a4b87d6507af40c424e67f0318c376de", + "index": 2147483650, + "child": [ + { + "public": + "xpub6AeGYQrkoZ9ECuEbyvzC86wqWZ88uhTYYLaC4KezE7Rk4Z66hMiLvSi67tPvQDb6YnydHgT2jZEokrLnLPUC2jUggaJnvrszStNatTgfHBD", + "private": + "xprv3RcKK9njVZJFkbiU6eX3tomwUYUvZDSFg4gDjrdamy7QaLpsuKLJUHKX1JuZ4zuSShQKmNbHkZDA5MmSrEMxuTq7dHipdgJzqDrrF4mVYGBmfqEft9Ad9zRhiurBUzp36sr7hiZjxzRme27NipVGkfP", + "finger_print": "76c69f0d", + "chaincode": + "07f84c583e84a42c6db1b313809bc21ba45d6699d67dd3f90011a64b8c289a9c", + "index": 0 + }, + { + "public": + "xpub6CjSfCf1wprHUaVbm7fzWbEewtrqdPKW9YEVJvJyj9PGBZwNcHCzVwk1T5mWjVE3WftnZ8Yx2zhdnoNkmX7HHYcHBwN7YZXZhK7X4S4dkRM", + "private": + "xprv3SEK6nnUSXmtfKxhrEYLFMSue6D11KgQZdFkUFr42oX55akjvBqGLviFHYL1r45TVbRovt9JWLaq7z6EXtxSN45o6tEbGjbt1jyahjtMgz63nnYCGXtb5hXFQYLzMFxifbGeaAZrR2GE9fqoTNqJjFW", + "finger_print": "930405a1", + "chaincode": + "df9756c93ced9b164d7ca3f421221c9c751729dbba2f76bfeb85dc5e94f809c6", + "index": 1 + }, + { + "public": + "xpub6F4fb3xb2n7D6AB4j6TqBXjrEsVnk44FZgME5SiGWMqucqP3A9TpStaNVfF1TGBJQ2RZ87knuWFSLwjZrGZoExFHDCh44rDc53nxxcTwRx4", + "private": + "xprv3SvUwJSBnNzm2GRzAyKJ9eHJ6iMgXj1KfAtivMCiS5Wcn4m4muEk1p5HSNo2Nb4SMnxjeeNVaLGsbYePFLbvqqsVj6fD3mGC2vbrwfk136eKQSxAHEz8A25xT8UKnp2bNTwNCCR3SpPEUuMXF4ZfNNg", + "finger_print": "d0358c51", + "chaincode": + "a0eea235b73c87e2037b1f1a1a6fe7ae345c0f0bded26b57315f87abfbb4ae2e", + "index": 2 + }, + { + "public": + "xpub6FUbkeuqYC8ctTqyU8RoqPoZvUG3tWMrTtwL2mrDGjJ2sKiJPKAvkbEWawLRfksDrzCuC72n7wzvScYS2UHGGVHbACz5iaeUpWShpD6D3kF", + "private": + "xprv3T3bJqWgmhybvM7h37ymX2C9aUKcwE5f6cGZJzgfGgLdPTsQAfuwD4xEXxShLR2tAV1F5XGPt384DvgaQTFrQxZQj3ztSgKKsMutKAY5sZLstJyY13hQpXNkFwrTaJBeFKCyoNyBdXPZotvmygKLNGJ", + "finger_print": "0859e101", + "chaincode": + "8d64fe25a459954cd236c8cd26c355066e1a5ee00c37b372b019dc2306dd0e17", + "index": 3 + }, + { + "public": + "xpub6Je9mfTrKpVqrFNNVPwE8BcQRrbP7Wm27RbsGeTpp9CHuPRhTQ2PnxtauhZF3KQ4qFrCzrafx7Tk7ZR35shevVi1YbVtrB8E37mWobD1HtV", + "private": + "xprv3Tz7qSsCxhbYZJggbwSFVtNNaWVgR9QaYtyBW7XbNX6aMwDDphz3NRHErYRXxwHS5vozquNncgMJdGJcDqXy2Cuscf9aNrqMxxfjBfDyGhWrpwiiwbpFEqSFPyujzeBsUNvFiwTnCsZPv6t5v1fndZv", + "finger_print": "b6e91a63", + "chaincode": + "a527d3b2e82e50a782bfe05872a2bf6900c7b88f8b9d4947c7d01f2533bc8e1b", + "index": 4 + } + ] + }, + { + "public": + "xpub68YrpCgUNojGgZnSTgLEUacEsrwkBk5en8RbTwpbkGz8jVTWYzz23oTDAZZB43Q6E5a78v3W2DiS9Avqzup4CDech55xmusnhytaa1K6ERL", + "private": + "xprv3QzFV1Q35y9sSqMJbwwKosAe5FnXo7J1sy1TKvHGE4znNp4WcSUNmrPDf97NAbmTGiS15fw9b1Rug45qgq77Mk8e683ehXCj8TUQo55aecNK69SeAa9nrpN8ccuy1cWYTV1daYojxv6Z7pA8or56Lxw", + "finger_print": "59fc4d7b", + "chaincode": + "67a835b9dcc20b3d37a2e71773b1c72274d70c606dc7fb09cb327646bc46294f", + "index": 2147483651, + "child": [ + { + "public": + "xpub6BMMMXczM3YbKshwvbncQM2jrDoLaFCKCukpbq2NSi8dJR5brw5CqcRBn5i3be2xtZusHaZUe9WgVySAnjz3FEES4neVynP6AH5KC7yNKvz", + "private": + "xprv3RpXA43yGMw7eD14ziECr5geyNjd5AZEeKNSfPYEiPLd7tYf1h2oAwkdaXzBBcxBp1wU6xrKUjdR42obsMxapcUBBhGkYGHCqTL17DcMJw58nqMqHYK3fYe6epTbQ1QeJCwpMRt5iR3vzrDrEJBFjZc", + "finger_print": "d724ff80", + "chaincode": + "6d414c795dd2ac3de0f77f88a7a3e5b68137e5189b1ca04f4e94c08e800afccb", + "index": 0 + }, + { + "public": + "xpub6DJvBcpmQChGdkVZCHgCZtaNHpfLm72US5oTKxvVoSGo2GgMnJZGiJiXNujekkXxMd54Z63v5KwGV2Kv3e1teTc2miZ5RFbqf7rh5zwR8EZ", + "private": + "xprv3SQFrUdmZyrnRYEfZmd3C4eFwgDA1gN7URuG4QGV9FXFovkvod2wgURCQwFjwvdZ3v1sW6gKvWzysvYjSwLVrh2ynGvFqFThoiYDPbsjF9Lf5Ya4kwwjFZF2guw9r1gxHGiQ25JfXpqPoEdQaAjsL4f", + "finger_print": "e189898d", + "chaincode": + "c6151851afcff387d32504c4ba1bd4d1302fdf8f0e825c1fa7d4942ae4045462", + "index": 1 + }, + { + "public": + "xpub6DkvVzQ7t32vkqe7cHCr3gD37N42mdqAoXfyRaGHoZbfTPdYjbFEEZwCarM9nxsxStp6JQqARaky46PMsAS7b5nzJiwhbowt5v6pyqhppvM", + "private": + "xprv3SXyvAp74ZCj6DuYEdsXoj8jmZveSCtZezrAoDG1g8dMkAT6TW9Jrn3uUarFcBajyoUqCdcUGNopyZdgvEEMcscjuLtJWJ8pc55eDQGnijrhyrqFooT91HrHV6Z6sPP2j33ExLY3gCcwHgQtdp4zzeE", + "finger_print": "1e89d996", + "chaincode": + "f245baeee05686c3f442c1eda83949d53610578b37c7ae7b672046c7a137e48f", + "index": 2 + }, + { + "public": + "xpub6FjcjpdKwnYuz3vuCDtH5ErsTJG27w5UvjPPT7UZLtaHbsUUMpWw3mXfojSzjaUxPh7BVsuD3qM7EKBNS3Uj4c7RhYAFQP448gsdKZHEeEx", + "private": + "xprv3T843a3aS2yVi9hE6yqnxyqN8FiQpLDNJhKrS7j5c8nEZb14WBuLmEVLNuwvNQynkPgfjtnsBH98geGefbvdA8Y29hezXUn4MxUyAYhjoqtNQLh4wpX6BJ7dV9QwYr5fYhWrF7azrBGSNXPbQWLTSMt", + "finger_print": "2b939a56", + "chaincode": + "20c5ccce4a9da7919d403658e3fd72c1d7fcc28560ba50ce8cb37bcaf62c7c32", + "index": 3 + }, + { + "public": + "xpub6Jbh5KwxwuBtAhJoN6wm8Cng6A1Rfrz9zZmncpGsTvzjkzHfGrz6Az3JmtMXzwJNEn1cPBhUjJYvFroiyrLHoAAzggjm2LvM9i9GUfqFtem", + "private": + "xprv3TyPSrufiPJrLbCNjUjbX6YpvPmXZ3Ym1TAVU8KkSGXMjGULXPBQvFPFQPKWWwgMN9daEDqSc28jakJYNn6JswMh1HTjezRDWUesbQHRKPzaAGJnweXUsD4QWYnLUJKe2cukdg2bKYCtDrpt8Cy2jwR", + "finger_print": "b123b5bd", + "chaincode": + "5a5b78954391a5a16e356abddf77c467ca4a6b9a64c45881ec19752fa4505f80", + "index": 4 + } + ] + }, + { + "public": + "xpub68YrpCgUNojGiAyPnUtuBDTfG8WdNkSEeqfXBFfJ9G1xMHUGwa1RFJopJKsbxf5miPzrxe1eT5DYkGPH9SV7udTWDXrTFBrfXvogSGFDd9b", + "private": + "xprv3QzFV1Q35y9sTK2unoBzzUQMzT4gL3MAuPQ4KyR4zRzzPG9BbFtt6fiUmiTuRfrutY6MNazvmyBZhqs6gKCpTRy7DLjzHefXfQwRcS7Lmv6joTx2crTQgXYxWV91Q4hnk9Mvk2hFxJyVoHjwfTB4vh5", + "finger_print": "59fc4d7b", + "chaincode": + "09097e8b94477bffda0f2d3da2dffa78ba05ec046aedf860af73a4a070496f63", + "index": 2147483652, + "child": [ + { + "public": + "xpub6AJ1E5TcrRHW2srR3bB2LGzXTGPpb8MnrtpMpfUo6aui2bueWVEW2DpJcv9RSdGC5XNZePDaPNUqFKJY5MfUWEDbzKgMbDR5V4wEBLnL4Ro", + "private": + "xprv3RWJAvjJwSh3pcGAL29gomcUCMsdvh3bxqHAij8u6yETxsX1S1KSMCJHyf19qt9fVdQ6A56Nqfy1fZBcTWMH76ubQco4Qt7hFaDDaFMh3KPb6kWPa9tzaLRvY9TDnZ1mxGZ8DqTufTKumv6G5uZgvtR", + "finger_print": "473e055c", + "chaincode": + "5e3ed2c871f93777e88eda3a8f3d5d0298c7b6c922d5140c91aa692c93f0eedd", + "index": 0 + }, + { + "public": + "xpub6DAVP1m1MEACFQcE3rmAKEiMRE1CNbE5itbZ6eyX7JAuh2xbisrsKLbjVGyJwZSaQUoCSWwBoEuQk8jpZohtLctzbXdKGLCGfQNnpSwHGRY", + "private": + "xprv3SMkeb6BSJ4KyuUBgUsxMWSVwdiCj84V8cE6HkEaZmdYgtqncnkGRLugy6oedkKPTigkzYDvBJFaXYZhDTVsu2DHeDrm9dHk88VjzyMhau1cWZQ4RhGym9xJ3bWuG35RTFkgiYV7DfWqmp7jiGmruMa", + "finger_print": "cdc4b97c", + "chaincode": + "c2e609b4e869f2399bc04191934d3eadc33fadc25fb8d3114820853833fb2230", + "index": 1 + }, + { + "public": + "xpub6DraEMFg42YNXypzDpSknjdN89qv5h8EPAx3Kx4M2UVPa2z7R3neh5taWPaADKfxhgRXu3Ptm2TRyviMRxFbDDNxQBpEqVRg3tVxzP494Mh", + "private": + "xprv3SZfGqDv5bX7B1AYZwFWuhqA17gJxUeHkUt3vPPWnC6Hh2FMnpupKbMT2Tu32Yk5KQLpy5sUHK32tFM9dLa2fQYmg4fLXTwXGuM9oMT7omkMiRohAuSXPrPrTHRbn1yAmcpJyTMhuvFmvahzNZE3EFo", + "finger_print": "2bcaff09", + "chaincode": + "818c703af6053099af3745b5d17b344a54ecd8a2163cb549fe9f442359be2be6", + "index": 2 + }, + { + "public": + "xpub6H6vksrmEPphHbSA65BKFpqwidnWuaqjkSUCxTS3UW8vemhzoZfNcUN5EGjkDShtpPUUohpZYsX9CcoYo3kLNFbTR4eGx9JcJafQDA4XW3v", + "private": + "xprv3TXcY3DTW24eAYmGcArYrVWvacKQ1ccNAsn6KsgiNViYer618Ay81XDZJWpmroHxL5k3mGJ6KxLwLDrErJ61DHpqDTnnUtrW5sbNe2yMmu2conWHHQzXMYLwY1V8m5DPUixopZS5r39rwaiupwx4gLv", + "finger_print": "e59dc11c", + "chaincode": + "554305edd2189531efd3f9722833bcdfe03d001791d4c083892cb008c0251280", + "index": 3 + }, + { + "public": + "xpub6JZP1ogr5zn1d7tUZrgzANvU4U6wiKu1HrTiUGquDGXzpcLKTs5vyTitRr8QH2hcL9DgT3LcdEnzBndHswSz4MwBoC92megKYauz7iuH4dW", + "private": + "xprv3Txhd3ng783Ks93qvQHha7QvH69qpqLU8GuTyW5YZpKxshjYyjuyJmzDwEqXxj8LC5aas9VZrah8HEESPWkqHBkVUCsdFZ8f1iTCYBf3tixN6jaivi46Z1aRAvabqdiVzZhki6XuYg7FAS2kayNbvRz", + "finger_print": "abb7b75c", + "chaincode": + "31e58696b7400b0ae486cf2e468782c9b95e69ad7448cebb841f119d0d3b5677", + "index": 4 + } + ] + } + ] + }, + { + "seed": "bfb1c5d5ccb6e4cea56d43f6879b9720806e6f0c6b7835a2ca7cb62779c6c11d", + "public": + "xpub661MyMwAqRbcGpREQxCnEYid7RBGgAbG63QR8o8op15W2V7fMsnNazvBX2gLLXTurABa64FXZY3KrYtmEPTF7EjyH6mrEdtRtv7ACaDfqVu", + "private": + "xprv3QESAWYc9vDdZwdGe8xH94eCgi24LsVoUn4rXUvmaVMDZCc5WyMBZe26nC5yb7o1sKS4iXPZfQRgsiaN9vadsJXYK79KvBJwqdhADUyhE8NMK6LFxKfbAjPXv2zAeSpqS2rgvaAiCxZ4UfggvNjt753", + "finger_print": "00000000", + "chaincode": + "e49073583d9db8bf46bfc7feac4e0e5e385b91b1782513421a0f45128008214c", + "index": 0, + "child": [ + { + "public": + "xpub69F5cpTShgryBPWAg9j6PdWGRHHHiWHbgW7YhSz3TK6FW4PLxRYJww1WsWp27dQ1JCC4m6vQqgCSGiPbjWDkbsJszPrahAJeXMqa28sjbND", + "private": + "xprv3RCCUHDJZiCJjTmZAqKXU3ENfNY9QSbxVC5wCb4oxy7eit79jd5SvSnJyjP5yqD1tvE2AjNpARDQRiHLiU9KEQy8VP4GYCGT94mVYaa3Agk7BjWcrY43PCrmbeoiFFQNwkYZo6gZSQ323q2J6qQSzCH", + "finger_print": "b854eaac", + "chaincode": + "212827ca19ef65adba8368e05b0b2e88ab428dbad154d4184f30ccb4f1d5bf12", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BLUMTdHk8wahRX3dnRqzrUSumTvz6z9AMMmJjs4MqVFTxGNEetLctSnKYSSehZ6tzryxkPo2VGfVTp5ggPYKpHwkHg4xoMGngWT5KL8hiM", + "private": + "xprv3RpG1KiErQsvnY6vkBBFqHxvmUh3npZWZuFAoNMftRcmw1WbdHxsyMeE5HahT7bQhneRaeKfRJbdxGyNH1SQ3m1RL4QcJRhKWSccWo3kVaogJhhvqHDPa5kbxLceDfQuXnxyUDDV5FsYbD1QKTi5EGH", + "finger_print": "d514f572", + "chaincode": + "84350348ab4b736788fe7e0fee2282c2b2d9040576bb3ec4d580b13a0ff186d2", + "index": 0 + }, + { + "public": + "xpub6C57NLPHEWe98X1CUTST6QEswZ8fn4twfHqDAbryQZq89Bk38iKRswdUW6hDVq4B3nMvq6GCSqoRvfEt3QXxDF18UNfetfzAXqVURaKqYFD", + "private": + "xprv3S2veP5M8qa7ngqmPW4EVnQrXJV1rrMHJYtLs4pSF78JuD391QyXCkbQuy7qUURccJefEJnnK1NDNixk21GL16fPF8Fq5hH1NcsjaEDVR4AzddFz1ZKW6HsAx1CXo9UyhbEuBP27cfR5xrGVtfrMbqr", + "finger_print": "39193f31", + "chaincode": + "b1013c21e0707d43f18b76bfbe2f8beccf8c9277d4cf6b9aa925fd0497209292", + "index": 1 + }, + { + "public": + "xpub6Dgh8bL5GMBUyCc96uai9P4PffyxDC2Y7NWrLn4SzSVzLjQFAMUYmGMLUz8e7UAsyB1mbiNcCCXVSPZTC3r71i7m74ZE1S9qTfPoVjoB5xY", + "private": + "xprv3SWj2ZYAh24NJxiKq3mUgFBjQRBQHXXCsNMeEAs34NjDBdgRmKVUmRemVbLdDPwAE3efCf6hsmT3PpRwnLhG2SY3u4medJ5APzw73TEah24unjbP24FypRqbuG13SV5eyHd5torh8y7xAPhPU6TwJsa", + "finger_print": "149d6e19", + "chaincode": + "2c469002537873c4a633c40996076499462de41db10d507e6364c048edc0f80b", + "index": 2 + }, + { + "public": + "xpub6GDr79bvyikWaNxH4YdepXoS1DYjnNP2ijyFywrV7BsuLqAnczxiFRKrifR3ogCv9Nnf2oqd6gqoofymYEgutHcAp4FRw62ATHxq4GpmcQx", + "private": + "xprv3TGSSkztinDSJasvm1xSqYNGpaRV7tuStUj29fQW1o7DKitqbij7EhcSqGsLyfaNiKqdQR6LgSCWSoCqPs2thLZ3Fx6Larmh5seMkhTx4TeQ4tjyt9LtjwYhNSBBGKpfKJEw3EeGazBeyGR18FZD7db", + "finger_print": "6dcc0a6b", + "chaincode": + "83498ff6b575c3b871d8df8563797788e618ef71ebc6d82aafd75c41ced6ff1b", + "index": 3 + }, + { + "public": + "xpub6HdGzyzbYcC57FbCaz8DMrLVSZhrB2sF3jYzz786fvYQg6awVuNNTWjJvcNfkvQ5z7XLTvkGSFURwijpCeJv4zd2245yPjc6QFVTmFTBR76", + "private": + "xprv3TgdSKhu9AinVTzDBVDo5sjat5qmMefcnboCHpLCDWMGQCvSZgyChkRF46ejGnDJgk42X9mW2iPwWDMKx9EJmL6ayTx6pG1iD8cM17XSJ1H9RVjdkiN5E16xvxRPN1tdcQoNwN3R7WeEWM6Wu4tNcTm", + "finger_print": "2cce6142", + "chaincode": + "93324c030681c9a89b87d2807c65c9f2c0ba1222c6ca5c3f0de3f8647af1af72", + "index": 4 + } + ] + }, + { + "public": + "xpub69F5cpTShgryG5v3rDiNAtKbWX4orDTFG75uMcAgw3WFYXEPtPYrLCKjDqGmt5xyWecmgJi6mGp45fjh5r8jCm7iL8vgBLBrUsAiudd6vmX", + "private": + "xprv3RCCUHDJZiCJkrh6odVGpkJL3WQzACTrMVPfYMwwvDXBVRyam7oZyFyM2pRrqFjDXFC87uf71QTTNxqTzzjvawuXqkbVQxjS3BCSbae6bjus3QWcsdx1yDCaJhUKE8tMn6tVw4WVxX6CM9tnX7xuB31", + "finger_print": "b854eaac", + "chaincode": + "f8e8131d2c5f4f99f928a44a8b00d2beaac2f50c57a19600948a2cc619bc633f", + "index": 2147483649, + "child": [ + { + "public": + "xpub6APs99hZar5HoWLnXTVcpntQMuJjzj6G2R7Cmzc4X3wz7qzuaFrm2XV1k2V8DvB7LkiVHaG6pe7WKk3ybX4rbFCGxJ8rcBmGquBh6fhHrdV", + "private": + "xprv3RY39XXoMmFHv3DoSdgZyMjt52Am5WTkwLbvKoJRoacXdRTcRkg4XeJ1Dti8osoLkuKHVe77AizHhUnSKH8DRvtfTnQGyaVBYKNG7WWw2KekDV6PVdQUyWCRAFGzEkph1m43EsyzB9aBCpQb6moSUsm", + "finger_print": "54fd5242", + "chaincode": + "df4e91a13e5687f99b79ea1cd00482dcecb464875682af6c5d3364697b9593a0", + "index": 0 + }, + { + "public": + "xpub6Coq88PMusu3i8micD5Yzsc8xwocgoNkPRE8gKMcRfNHFeCNMdHKtAmCqXJwke7LNKoDeycnLkPzyjba8a3JR1wBAACW2ostFQgPEhn3azn", + "private": + "xprv3SFch7AbWkskcyxKnRDz1i62TbWz7aMUnrvaiyMpQrcWpjNJs51xgjzgKLaYvD4W2JKZ3pBFTPdybKNj4jn9PWw6Jtb6rtRTCSjqeP6C2Fd9ddK6R6a92afB5ebwkMnAhsufHjE9uruq2wSb8VrdUjG", + "finger_print": "9d4e9c29", + "chaincode": + "086ca5d091035f7ab2df7ecbf6380ce523719c44a44a95fdde36055d062e535b", + "index": 1 + }, + { + "public": + "xpub6Daifne7zt1AyQ4PrW7A82sU24k5fn9BEdNGEobLpxpMBh7s1A5yyEwqcmP6rR9RUbFJFKqWh7zmNGn7gsEvCFETV1xP4n15co5NHe8Co7i", + "private": + "xprv3SUx7A7GNZEDczrFnduTT1aDCGd7KdgKBrM9p3gJzoC8KuN3kRL9u6YCs32tCzN9PXZ9x6UdPaG4hKGi4UJxbRe9XJC3AgPLfeixg7gbV9XbRv5UcB9ofkSvB9mCTn8DBWPNmVnz114gBh6JF5r8CpT", + "finger_print": "069a582f", + "chaincode": + "3fa9e7bc2e885a964df6e41f7b2c292b50c763a1e7e0450c934370dda3119717", + "index": 2 + }, + { + "public": + "xpub6HEq8hvKNSETSwSvLvDeQYo994Z6mJ4qYFAuCK8rAiFXUXESeSCLggPR4AAD6EU6FjJfz92SrkqN9xev4w1wdJgRT2vWvX6YWJFBnXr4XhV", + "private": + "xprv3TZxhgNw4CYSi1DY2U6SXMSnSP8NEbEbQYvqfqgDhD3LpPwhTh7tZmdt173ujyHS4APdHijgAi1pHK6qvSDi9ZWovMmgMyEtDmr1LMri6cQLfPcX1uLJQvuqM4y6CmF89Vu4QQ4wPV3p2oRf4QQBES6", + "finger_print": "f8278a50", + "chaincode": + "045756b222eb26c9c021596893d3560a1de5d5ba430e8b790fa8ac09a2e3cb0f", + "index": 3 + }, + { + "public": + "xpub6HKrCeGzyTPq5ZD6rtEPBEt13EWHdgAPKUgGKCSRZoeSFjq3axKT61gZYpFCK5JEiB5Th5KAJK7VVmiBsi85jw4ymQLbUR274A4toYkNwwG", + "private": + "xprv3TbTAfPH4wcM3c76xxKFZW2tFX3tKGRnEXL7eRp1iv546TL3mnDkkrSuQFyzWJNRgTL436V6EKVQe9FFqorxaNKjCN8qyj1bgbw2eL8JrrevBnNce2EtCAwNaoLkRSb5fLBPgA3KuRJdB6qkwy1HMeR", + "finger_print": "03ed1a5a", + "chaincode": + "6bc06d82c1c2032cdda37ff5e1b7acb8e86d613569a9e05f6d7f11edb0417043", + "index": 4 + } + ] + }, + { + "public": + "xpub69F5cpTShgryJg39sgqSss1DBdukSp2g9idXzsH5133K4gcDMgfbmkGPL3UVB5G9XCavsLW7TVM1mqN3EBWciwPpjpDLq91rT5XArcWSs7o", + "private": + "xprv3RCCUHDJZiCJmdHeiFiv1YAsGFLmdEjqZqiwwwpXg3BNNSt5b7BEEYqHuMTUatXJDdXHbQfCrh6U1LznPFiy6Hsyisgydhd9XZ6tozADoLSDCTr8iVZFLMQRCckCWB8LUuS3UbxGLHTWuMk6PiJ19aG", + "finger_print": "b854eaac", + "chaincode": + "fce1a9046686a4e0e39fa84176ec781fe774fe11b2801a2896907bc54acdb6bd", + "index": 2147483650, + "child": [ + { + "public": + "xpub69sHNW33aiG8zcomUqKPTvQjFJ3qjNvpGSqhwHkCQMj3e1inKvaWh1XVHmAxTbG7UnFdJ364jheejNLMva8a9k8aZBWY6FoXKEGSoFMzamR", + "private": + "xprv3RNxEBfoefTpbkjfW3snbFd3AaQpSyFmokLsu2EQhejiriDXSvyzo1yJWL8kitHbw8wxMDs8WL3AhzjfBQDidcRzG7JVowJx4AoYGctwjVgZpPh6dw1YGdEjXpA6862jEehC5wLnoePoR4MzWfGLs8d", + "finger_print": "0d40a5fa", + "chaincode": + "d5c9d179dba235612394475276c45e71881a7e91400deb730369c2e37ebd022b", + "index": 0 + }, + { + "public": + "xpub6D2ZahCtGbzPSWBukQ63uc9uEsQ85EY7HzRc2TuBAdwFJBowAze3iTWpkPEqLHQLjm1H4hX9ou2tgXPZUeoiAKNPCdqgEXpiLg6eL95vbYv", + "private": + "xprv3SKQ4SdpQc4Gsg2SKnNYdq43cZUrC7MEiqwpxLhbajy7Nwv4PkkkQNrg6bTqHT8fmrbwMwqKpxYmfryZnXoHQaE2GoBPTSWRFy7613yrGAEQTrbLGLsmTgUjxdPh5dWfqq7tPi6HrFD9Zn4fLSHE9g6", + "finger_print": "bb2c3697", + "chaincode": + "aed685a5250808db22a0dbe38c5e1c333a0b2c907efd0e989c020e41ba99d6af", + "index": 1 + }, + { + "public": + "xpub6EcShTAWeeA4UrBohXobqD6ZdsHnYfCzEGR8e43ptknCKUDFzTZwFyxDi3HgL61VHnbSLVYe1cEBid7shVxL9J2Tn8XV9nGjNtj1aDY8RJM", + "private": + "xprv3Snh8yxBnPYVHeUUrLhiTqqAUnFDYvZBDqSLc7pEYox2KCE19gh5AHWGbCoTbp5kQ3jGGozNNG2iUQFBT1VSfaaAFgcH6CuDFbLipSqvUT7psCiPwa3F5Pbp9RoMrSJYun2dCv2gQgeGpkwtkKBXZS7", + "finger_print": "92b30ff8", + "chaincode": + "1a4d94a15e01ac9b12e3b0da7dfd221580c01f651ff44f30d3f402b3caf6692f", + "index": 2 + }, + { + "public": + "xpub6FduxECWRwDwotwh2VcSV99ZLdb51hHbxxV5p4LaRtvWGP9UKB56TZnzu53nhCejGQyJPcZ1dqC3CzMqs8DAjiK2M7QqZ9xPXcZRUsrYKS3", + "private": + "xprv3T6MnFxqZXSUpCwTcJekct5vhbWda36JYW1e9Q7aeEr9744giAxhDG7V9sBWTxo5bhkrJ8bC8n3rWhJkaNsDvv43fkxkXooY6hRJwrgYxASU9tptPPTiJ9mkipw5i44U45ttA9DY2Xwv4N8L8AGCnbc", + "finger_print": "1e32d1a2", + "chaincode": + "bc5d18c8ee943e7c3405edcd703506129e4abaecfc009fe4e098bedc63330fd3", + "index": 3 + }, + { + "public": + "xpub6HvbUtwq3gQgeeJSRoDc2ddkCPdE66RM5SeWB3KyhzNzrs6QBTuHNbxyGYjHJfSzHTQiUQHe8NvqTq1WtpsVKzLPSPXgwYKe2M6a2puoura", + "private": + "xprv3Tmmq8dubryN37ua5suVBSsN4vfRm9iPXwQiUpUACZcbgCueSPyaokLLyJgNMkHxJx63jUQHXhm6h2VshiuosyeuKDUQpWCSEeEESnaWXesLfMrdRR4qkfCwK1Cxq2G34jiQhTxHwvsd5qzHgKwUFts", + "finger_print": "556e3f28", + "chaincode": + "0808b794474a109474e18009b7356c60bdfa0605be91412e0a5866afb73ff166", + "index": 4 + } + ] + }, + { + "public": + "xpub69F5cpTShgryK73VD4iZx9y8v5jQHEMHa5CxaqQGRZUt3ZPHBCkEukExY12H5DwkAYgzcNQBqN9qNWzP2brjv2nqCRQC7fksWxtJC3FH3nU", + "private": + "xprv3RCCUHDJZiCJmkiVNe1hjmnkp1ctixqyvNcvMzEJFmpMdsa7EvhEdBrKubqEqLyE4ppxSQ5HA9T4fF6D7unSqoEAkwg95kRLJos1b3WTz3qwGCbPs3E2yeXyYLHM3RwcB8umiMejxMLqb9bNRs9bhHy", + "finger_print": "b854eaac", + "chaincode": + "282f6c2e0e852d46d850b8f055d0628ed5dbe98228dc5785442e441ce37073d3", + "index": 2147483651, + "child": [ + { + "public": + "xpub6AaVj8keVLWvE2W7Hb9qoihiLSnmkQ2VTWvCiym9EUHQq6y9jesjQhP6ADotmRS5FSPYCvF61zgp4PWVBGBHE6py5WQAJDuhqG3Gg75y34J", + "private": + "xprv3RbCK4AZYeQ5fa8ANrX4Ju2aMyWod2p4LznTQ3zGrChyShiPWPNvA3b2EvvBP8q9GKu4mDPu4rhfCocWnu5eY3sfMJoEWzBhTJNwaZp7V7kGai8WHuChNUKJMaf4GbQKWEXQER7JvgCCkuohSYk3edU", + "finger_print": "6ded2016", + "chaincode": + "641eef3dd15b01cf07798803a8e90acbd04f2eaa46552d465f770eb003905870", + "index": 0 + }, + { + "public": + "xpub6DJrnrDYaxVuofyP4iAqKZ4QMANW7vhzN8vuS6AZkDBpgdZj5vQkHF1htDZqf2mqNFJkt8Dt7Vg1SsciUFQS1t61yPiNmey1Btf4vq74aFs", + "private": + "xprv3SQEr2P89WdSdtEk3fxLrDucGoT5QzJGKbac8NyXMKAytjcX6tTVyyaisU5m48D7wpBzLuEwKpzbKhneHbPys45HQLLEeN35HEeNFmq168qN4hQr3djbRYdq8A3rk8w7h3MT6oJMDrunnz4GCbAkwZg", + "finger_print": "e1666995", + "chaincode": + "4a4441d6cf86b83c453a11fad61344fd0d4956b1df9f1e523be50a5d85e470cd", + "index": 1 + }, + { + "public": + "xpub6DcYt9jMd1FW6mMjmbGVKjFC9azg97X3UJmHHjLmtAygQAtPhnZkJEXyLKeGQyajtiHmK5LZ2HQr4LiJrg5qWUpYhSkQyvpg2KUp771w4GZ", + "private": + "xprv3SVVfAhjHDBxcb35ujD7CzuqFDmqP7pat36C2QYPWCGzxR5to9n3NX3UDLCW4bkFB3ectLNVz3RzEBbKdEa1pgGdVwVBNghVL9Dbegr7Uh2tttZLiEXVZAuPsaraBgQNTRT9zd2FbmwuGusm98DgG8h", + "finger_print": "0ae604f2", + "chaincode": + "7a3bd33927ab97e2ecdc8dea40ab474d8749a4011a58d0591b97ea2aca23faa4", + "index": 2 + }, + { + "public": + "xpub6GtawLoytePobHvSgfhpQKfYPcL5UYU1edskvTJjumsuHNaGbFLPQSaEBiY9GFqL3Qz1vCQ9q8VZh9zqKhjVMzdXesk48qS1wGQqgJtAEiw", + "private": + "xprv3TTwtkjdSMryaEuhr7wKBR8EXAsCRx7LRdiWJhrgW1szutDjkHgFHwac2uPkwGhQpYDphocd1hXfC6gmuC9sZcJds4LuyG3Yat3jFiBXKw1cKqJkFaJAUz9ypTgHdNaL697hrLatvmhBF3JnmYyakam", + "finger_print": "c8aa89a6", + "chaincode": + "af055e025bf2bb4df090c89f378269625992f7e322bc774ede20c90c2ad695e2", + "index": 3 + }, + { + "public": + "xpub6JgBAEjWL7cHDhcXTWtq2b6bg6RDnZ8MbF8rmX6GY38rbsFnLNurLXbkbZiLzNaEtHFKmhEA1wWMPaaQJPjXgxKp4CviF11JZj7V2dbgN7M", + "private": + "xprv3Tzii1rmNhxeSexZGnFEVfXYwQWnVbFhdfKQJimfQfgrr68bgpRRz3RGyPyCSzRpoPni72e8DTmTucfNfgJKD9EeWe45rATqDy6956Y6GfAFkb5sb4cF43923hwzHa23SpUxzu8tXUZ624QmmfrzESf", + "finger_print": "bba87d19", + "chaincode": + "9f87b614167613590cbe1a0d05ba1a8312e0b5104572c878545dfb23b7ec59b1", + "index": 4 + } + ] + }, + { + "public": + "xpub69F5cpTShgryMcJ6VPdnhKjFjvtjq7JyKLSE9gST9TyC8j7tNazdqCLyFYXrxFtu86TGHqQzP6XCzT5d5V8NTLKex8JA5LjWPhWdmf8pxRw", + "private": + "xprv3RCCUHDJZiCJnVs7zhZ1jsPUzRk43WHguQbCXvS45kVsP964X6489GNU9C8jf1bS2yNNKXbY4SBPvPVXuQeAn3f75kxkKa1ZBWa1Kprd5FydKgEErHtxiYZTngekry12rc9jJw2XvsNRVcSRXPvt8vY", + "finger_print": "b854eaac", + "chaincode": + "23b9b9da962d14ac941452dce45b1c361b71a674d02eaaa28f666f5336e5e97e", + "index": 2147483652, + "child": [ + { + "public": + "xpub6AfVBmBUUz8dtSrFyFCkRFTgibNXPVPf6xgX6pfUHK2TcLYim6VbuvnxoBXJy9sCJ1ry9mdWRQ1cd3zLh99uZUdNQZWxbXy4sjQmAL7bSGV", + "private": + "xprv3RcgJKVYoP4tHV1W1uaQFPhqxEn8KvNBftfDiokBEdmVramsiR9dEneBxWrVhZ79nbwZxip536JMcPP71CRs9wK4V1J1jEerezu5ENfL92yXUgswvQTQU6LDhwnnN2Gjg5pDrJEDxBQJtAvE9Z76Dxo", + "finger_print": "79a20814", + "chaincode": + "30b2ddc831977bca21bd14ffb19d3f27098153d372e47426aa25426bffb0d1a4", + "index": 0 + }, + { + "public": + "xpub6CvRjFEU96irevrXVYRP1arzPZy8oty3s61kNAAX3cgdawC87NSim5Z8APr7rCAcWF7NprwHhCrQk6nXFdku4KqAcZwXYFRXVTQ8xAHxNfD", + "private": + "xprv3SHaMFEE6WUaPbFBDybPetjdQH2R9TxdntnHhy62G1YHCG7rEBzMtxRpbjw5YkeepQ7Jo5Z7oaqfUP5HL7A15rRZrn1mBngkMeF6tJaqQEKsURZK1aroE8KBJfCZGPSHVb7sLtDaDm5EXfX8cxxGRvP", + "finger_print": "acc7e78c", + "chaincode": + "b2b7671119c86991bcb26bf1d431b7ff866526aa6965f81059c0cb0b29f39d2f", + "index": 1 + }, + { + "public": + "xpub6DytyyRBBPyDy6CTBtfnUkpwjpo1qzN2BD3gYgXXoWkyHUgcZLgoK2J9dF3ndCj3FrEgf99XqjefSpf54bbSKp1orVUjzxZacWeWW59VEaf", + "private": + "xprv3SbqT98mbSXpaxctgriQ3kLuuTnECiMVnDmxdbA8vpNZS4xVEZGbEBbezQjiSRTZHdz7LmcFvmRvGEAncKwUzsn9EfRtRVGwZdRZvYqiXoRFkaWTVEtNa5216KdwBKQJabcY6j1JggtqN4kdpj2wv1L", + "finger_print": "3cf8a79e", + "chaincode": + "8e75aecf1862f8ac2faea4ecdb3845072fefe98f5b4522e0f450f47e966bd27f", + "index": 2 + }, + { + "public": + "xpub6HA8CAEWB7sdDrtDELV8zffj7JMhj7cUhEoXB17vFbcVsVsnZsfMjicKsNMjzLnCQ9Gg7tSQS2MiaSSMiKWQ8z8soyH4aEJs3BrpDoNSmuW", + "private": + "xprv3TYZd2R5EqmeGwC8zZxseVU8iJWUt4Nt9KfsdPYAmDsLo1z8z7nKAQN7PdxFLCUUzsFz45YhZLcQ5YMhmJdHLNZQBFH4KvbjQSQZ9NxkP92Q3VpuBo4wo1fbWuQzJQfZPUjoYxGPY5PsTScHYzhrSBf", + "finger_print": "ed1da8d0", + "chaincode": + "e163eb97cada440a6e1eec9d1d0ffec0b1a27fe0cff9ded7a0e3f802000d6277", + "index": 3 + }, + { + "public": + "xpub6Hx2F81DJRB7VwUQGKjjpMvcdHNGZG9eLsH1Svzque5MSspXMXBPJjFATZxemyWkU2hnNFLee2garXSd6YpNd6fmjpvY4xvAsrvmgY2Mxr3", + "private": + "xprv3TnCR6bE2amoZwFzep4f69jpGDArrvKdSDnrai2mJEwSkyW3kPXdynfh9syRizxeCw8mZtzjFmGmsk7yExENGc6qYpLo6RqGv7Qcczx3kW15PFRsQq4PgeptP42U6NUvmz3kDC49AhGfCrxWSz3oG2a", + "finger_print": "58c72035", + "chaincode": + "286e16776a52a60e3f37618d812e466d78b2d75780c68617cc479f51d2a18ce0", + "index": 4 + } + ] + } + ] + }, + { + "seed": "d7dca5c90acff51b6bbf8dd04b1156526cdc44f418caa9a4d0c34263ab6700a2", + "public": + "xpub661MyMwAqRbcErfTgxfi6eEUXYq3o9uk7M5Ms7bUmn6tg9mzoEzoSBSXDmmkFsydu6d1kz74vkqTV12f2WeXadmBmSD6PojHGs5aMe52R5Y", + "private": + "xprv3QESAWYc9vDdZMqKh4VBqgUAUNWPCsM71MnsYBinZcEofHFRw7TeerjPYtdqcTamJC4eQgevZmuW3SoV1MM4tcFaKfranHeApGeDmhRuUaGeEiNvFFBWfEiiboYWjezSoZEZQE5sfcztBRuNuo25ZQk", + "finger_print": "00000000", + "chaincode": + "1f91c0bd58a3bb6114ecdbbdbd097f3d7e8377b96530a898a0ab6543fa5a2db8", + "index": 0, + "child": [ + { + "public": + "xpub68WAcKoUZwN8yRyBPUbVfausbrngR5H77oMVvG7trQqahVULRcKEJ9tUpg4sDXep9UaPB8UqzpcWLzgToL6dwMd7E41qBTvdvBkvnALzEnx", + "private": + "xprv3QyT5fM765HJgMRPnUnEWtuNtpv92p8kifSZRfG8uAXcrp4XvY6pnrfUfgYfDyWwXp6bgqhu1Zs3ag3CJcFTziu2Tos27x5CyArXQ42L4xtieqZV2hhWgYghapUwFUpuwdNwCjr5FX3PrCzS3sQx4ec", + "finger_print": "53ab0a87", + "chaincode": + "52d456770af0a2347968ef45e0ebeb3c76ac2c0e2fe274a763a5bcae19b862ce", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BDoGGc2w3D8pyXU3viaLUmfu8goptUAbeFZQikynKZdD1B9MuE9hi5Gsm2m9nRwukqhe573bT4hjNN6xgzGnyqjxhuaSFDoudCmCisAYi3", + "private": + "xprv3RnH1viKo4G1ChQ4tBQRZyPVP5WcCZ9WAcYfoxzDKm6PjMtpsQMsHS2LunZMyzBsNsa9tLqj2mzeaf5KUih4CgE2QUi2L3MgiDGu1rN7yUatiHqFNrVSRdv4avx4QKMJCB4HvWJ1mZ6iNuT1Lbdycp5", + "finger_print": "c56d3d45", + "chaincode": + "1478a543f0dbb6efd1454de7a8e2ee7c76a0aa5c8f0e6c61f4004ade38854546", + "index": 0 + }, + { + "public": + "xpub6Bnh35MZjv8WAYzStoDRbieQ6zu6CehLmxjFN1X4CP3LWoCd2CqUYC22qBUAnvYJGJSTx4zpHRGc4e34qNTr9EiaPwZWjnAhasVHPgFmVCx", + "private": + "xprv3Rx3k5iYFfTjP1EyxCx1RJ1ghhcyuSXHbyEXroPHGQ73SFjn3yviK5FiZj5tqGwWAYuEPjpjHMQU6dkcXsPjeREGxbg99GfDSCFeBG2mVjjxzLuQ5sZHn3WKSr4RUHD2JjCrEXXmGmnCebMiXEwpxrH", + "finger_print": "12954e27", + "chaincode": + "9f711de30329f49f795bd25c603f2bdceb7e8b7f2ea265df13081f6ce074a306", + "index": 1 + }, + { + "public": + "xpub6E6Lkm85kVGA12t1EtwK3q9tr5T9JEQNLVdE1nSqRT7SeXEfV7qXKxPAvevVBqJFa5jfQGkABjdhnrnvWUJEcLDi2k3YFJGjd3Tq3V9NGpv", + "private": + "xprv3SdkV5xS6dQuqraDYAqwWKH979LyzQCBHvx2gs7PHcKsebZrioMzAZW4FtL8nnDLrz6UXp1dzqD37SnjJXpskYKhwsLM7KuQTWiiMa4udtDnbNP9hDZoEKkpmLYBJYrvYF9FKTZV6LopwPvoojZmjvo", + "finger_print": "4c167e82", + "chaincode": + "21a7a2d6d76832e26d46e8abd2c725ce47a75d0c158a25c32c3ef8a91ff27a58", + "index": 2 + }, + { + "public": + "xpub6FsDyRzUh27VzYMovQK1VjUf5KmXB3P6t4JGSEjV3tgwnsQguHer2y2xomhZn5KCHxjdANKvSSnGFgRuCj91nsLjUG9wCp81Q7CLh2dNGka", + "private": + "xprv3TAK7sDTefL6ydLiWnMY3h2x6GdcUpKiQrdZfa75K4bneMLdcRAed8ouSATX87jpGqMvPGjCN1a4t8ELK512jtPVbWByEEhyoDwhmnkgwq7Urr6zW3sQgJeJM3tZ9QN8RhWLcDHMHdPof5WDSscp9g7", + "finger_print": "3d6be9a6", + "chaincode": + "db3dc07eb8d8bf3c2590e54fc5bf878f0328fed35dbb313535a8a3410eec5be9", + "index": 3 + }, + { + "public": + "xpub6Hed211fGXR6dzqFRecPVmqxaUtj9P1j8PFDj3cLouDSn1CYKb3o1EuJKyd8JSCXaQfKejMyNFcKXAEjTCNeRa7Y4mBgwd6DUkK8WEZCCpu", + "private": + "xprv3Th2cXwft2BkU8iXbDnER8KU6UcZr69jbif9H29yViwJZCv1whTMBexsshKPyyZ7QSZT53EKdHyxvn2BDJiEcmaocc8ja8AG6BUk8m5chHroXt8MFV25qkbh4FJKAmyyedoH7DYc7Ny8Sipwm5AwpJN", + "finger_print": "2ff621da", + "chaincode": + "92d66d74fe9efcc426f2ab1a7dc82d8b783f11fe3f72688b2cf28cb464ed025c", + "index": 4 + } + ] + }, + { + "public": + "xpub68WAcKoUZwN91z4QsNoZZ5pLcvMAVhbw4csuD8RNAXUyYKyc5aWx17MceuVqb5SraRFL5vMjJeCWcybuB6V5ZGaFfHzv6oaMfR4iaSKjErs", + "private": + "xprv3QyT5fM765HJh7QvpBvMZ9ygZZ1msCBnWGbN7SSQyQh2Hw8HRABoZMQpByMX2ic6L2CRuyBc5uL1UYZhYpb412DJWb9xckLYT5ewXC6QkMKCsA5bZKcGhRJ4LikYtFNU1J3Xa3y8qxdzshhkdN5EaQQ", + "finger_print": "53ab0a87", + "chaincode": + "5348f626fb96822f781a93186f444dedf797aec5ffe80843df84d16c2e813091", + "index": 2147483649, + "child": [ + { + "public": + "xpub6A794bzkokiTbRvW9PCvjaLc2nH2PXzqCTnN27We3tJ9Ugtnyi2EC7a47ggVxUW2Q27P9VDYkdYKgGSNwabT1fLDrCq4S9U9WV6zuoWRR8w", + "private": + "xprv3RT4yTxnWWDSYzvDNyXajrm1J3TMb7tXdBVNCbkuDitHJhzTQFa3biSpN7tqCBSaYHPqA5QZqBjbGwosNbNc16ZexCsgwHgdRef93fcq2nyHuLZDGnhTdZQp8eFnyxZb6R3CQuRJnSpTXE2zAoDrk4H", + "finger_print": "2dc1a4c3", + "chaincode": + "9b572f4bd361ec6b27a4fb8326ef9393e1f5698e01aa9d34b4588ec3a79ac4a9", + "index": 0 + }, + { + "public": + "xpub6ByXxymx2a4sGDVHSjS8UPQzTKZSMqqohcJBQQwKMUBUC94xPo2Y2vQGePiuempbhRY6viV32bbgxPTgyarMywS2hbiWnzJzh2hsTpZrMrb", + "private": + "xprv3S1GaHNGDDy71aH2zvL9ELvY7SSjmYFr5CZKh7JJ12DBrT3CnA4Fbi5pimiybKvGLjHFJDv6LFcSE3V5gQbvBDL5o1HsbviKUa7ZWwa3WZSJiYYR4R1UpvVoPqMHfeLiKUMdcTozNjJyWc4jzGe5r6g", + "finger_print": "2c04e827", + "chaincode": + "56247c05ab521f1e942799461175c47129dc38a0a2b49b3e628123859ce83607", + "index": 1 + }, + { + "public": + "xpub6Eug7k2RmXBcvRoGUB36VPEBvHvU5GQhetJAiMDAd55y3tbjLzjbW86T2xASkyUbc481GM2PuuW448r1VF85L7Gtrax28iCDSgs78md3c4s", + "private": + "xprv3Ssp2ZtYdzsV3EUSceitjnMmxLA85GJT21qxiPbVcP5dKhiFj7VzaCaD2nZLHK2o22Y34oGkVLmGGVSNW7PXRTa4ZZUbBd6Kj5fWW3NwnEtLMpjFrjQT25REMk1KvWGxgQTaKeosz6u2K9c3eLyskew", + "finger_print": "bb1e83e5", + "chaincode": + "356c909a5afdf63005f7d91467e63142e4947ef9a3236c91004450d672b89028", + "index": 2 + }, + { + "public": + "xpub6HAyCWRNCd8M9UacUnUNViLJfTSadG49J4ggFC958Qb7Zy1VbAyNK6dXHWGyT4jUsqJT2anHRpCrLJfbQvyMGqdpN2ds5TT1Gw7nPAS22yv", + "private": + "xprv3TYpBNw43zzf9DvGUHowRgNjtWCLSDJ4AXvvBRwgki7E4ZkeDfTVfsuUU4tCLjh6VVT7vaw7iwg3n9WNmfdV3LAWoZwFY6XYKRo9iZWLw2UXZJtcvw2Dfi4Wsk2whZjy62QC1vbujdFLyeG7Sdb4Xqt", + "finger_print": "ef190aa6", + "chaincode": + "945858e6f1a5f4170cf94140ee9c305430398722899e97446027cbdd64ee158c", + "index": 3 + }, + { + "public": + "xpub6JSY3wYgGQC4TyywzmuoNP7r36kZmVaqBRj4SVFMNCTm6GPJnnPdKfnXtiZvVgBW4nGbFUHeeQBE6hHsE1Kem9LqehPeGyivnFnWf5SdiMA", + "private": + "xprv3TvfhXqaaBGtxxAtjUf9gCSH5g3RB2Zamvpzxe6BRVe7kkrKA8F2L8bBMrYfhPGLiSqP2AxZueEgbrzXPbDoW2m68jGFrsVVrUiLwYKdndGntMWEMfHze6vQqM7q56c4TZBTDZbmSqh7yCEnyX6JRgo", + "finger_print": "9ba9c510", + "chaincode": + "b7d7b9858a35ff1596aecb4ebb48122f795125d47fc47a9b783c04662376284b", + "index": 4 + } + ] + }, + { + "public": + "xpub68WAcKoUZwN94sPk8PKSrK9N9tyuKGq7LTM1EbX7gjZVUM5ELdoyX8HJqDBZnhuZNHRZPD1Q71hFS9mtcVnpx38EDMEVy7ksUyWD58ABVYN", + "private": + "xprv3QyT5fM765HJhy81nvUBy4qe7SFmiw7C8q4xqGZnEhcybmtuANTdGaAb2wEq7T1oMDmQg42rt7uk1CrsixHzZmLfLFu6NVUi39qU3wPp6AaiCGPbYECDNJeTfnMPjqSWbmArjv2XkZXF4cCYatZXzYb", + "finger_print": "53ab0a87", + "chaincode": + "7510999ac706243870c39612a6bdd10a72d4cf402b36dec27fabe03ccd7a6000", + "index": 2147483650, + "child": [ + { + "public": + "xpub6ATDC914vyFq1pdZpfASjEtTB4D5rDYboC5EcE3rhxtvG7jQ8Zw4MB74tM9ATTRxprVdR2DMWxiXYJSuMG8bmUvXCi1kfP43roFqUXhPHyL", + "private": + "xprv3RZ2nxTd4wAPz6asJfUkVmG5KLNdYuBkNQNDEaehfNqwLfh8PRFwQkt2QAySfdYeqtU4uJxQ2NuBimNWFRS38cRSfEHsbGE5fLv7wWVVX9iA3emjTe32tWoG5aeQvXf2ytourw1MysTpdY8PBSfqr24", + "finger_print": "5cd66d8c", + "chaincode": + "05083f73d968950461ce88c4d51755a65304da681b08142f5d21b26644419ea2", + "index": 0 + }, + { + "public": + "xpub6ChhLCCXfaqznceg3Fe5TiSN3C9HFypsFHm6Ag5mjYPgsP7R9u7EaxKhz5hhhrNPUib5DBSdy996qNtm1oreEmQqPXhVJe7TsdV231xJnoa", + "private": + "xprv3SDnzxJ9twXNMAm8GJSezwHVTrdhof9P4rTrW2yYVbXS3uJ9g13HwttFhakMamPTcmJNK6CnMX5vQw3afRNAFuxktTTB3a5EScdu8ya1Zpo2a4sUUPSXDEsPbfpi8eXPvEh7Sc6q1r1sxrxU5khRG9o", + "finger_print": "8eeaedae", + "chaincode": + "12de3b3e836249d372333fc52d640bf530afd82c0828d392ca6ede9b09d61952", + "index": 1 + }, + { + "public": + "xpub6DkmedrAmR5Dm24ZyCEWVjSiBqyCYU4czrFVc5hHnMJYJJBfixWkxe45SiosabRcRy8wfHwzAxetmNqLCopABT2zX294aMvLCDQs9JgRzy5", + "private": + "xprv3SXwHfvY76e4SXVf1FLKa7uDCEg3H17cBgJTCUxxi1AFDxbgxN73qEZCEKNCJC2c61fe8RVbsdBREefXe8ds5pS9VcNW9TsxTqxocX8ZTsUESHnidumFUXPADgtYg79E4AHHR9qck6WLod2zg9yjpHF", + "finger_print": "1e2e3648", + "chaincode": + "948c155c9e690a84343db4beb2bc7749d3772d36e61a05a439f574e5b8e35ff0", + "index": 2 + }, + { + "public": + "xpub6HGH4mfMtFGUkFpLMwwAQ6ga6TiAJjPJdap3fftkoaSdw2KaWot35yNySdwELb22tJBN1JQ3Er4nwjgqWJcjobfX1KatehTHLvNx5EiFHdh", + "private": + "xprv3TaPdoBGqXDreKGjTJsg25J9E2nfTDCktnAX9Qj1S6a8GFqpWDhY2KpkH91Mwh55PGKGQ3a5Q4SDM7NxV2wQkgVCYhThhuAjZQkPUB9YiBgxXpsXfuCBwryJEFdPNzexY8aqKfvo7CPQGWxSX6tw2Bd", + "finger_print": "fb8c877e", + "chaincode": + "7651ed3c174e4d60313d52190d4e4490999f1c87ec72ebb07011b843397f1e39", + "index": 3 + }, + { + "public": + "xpub6HsztFQPKzqRmc8yZNHnUvAUH5GPt5uMmqygW88vbBjmkRr78TixUy8SkgyXxdwesgMSeqGqfgxRFRXpwM37KecXFsjc4P9cpVTWzZbP5DM", + "private": + "xprv3Tm16QAi51TALCDJKzPEeamxbs6gLybTfaT4Q24aDR6K9ctc16snByisw7AsKfS6p9HcAEKjCtxx2Zmaw58pdysJu8vkjSusAEqv5wZ4j37ibsbrkU4bZn3ZRhJUdpqsjJHPgPqN9NAVqW3Ra7VNWJy", + "finger_print": "4f570a96", + "chaincode": + "4b44e10442a58d545cbf90403986a5a950bc4b5a6d8cfd1c03b82afaa4a75033", + "index": 4 + } + ] + }, + { + "public": + "xpub68WAcKoUZwN96dfxWVg62FrwxSGdpdgYJyqVgvjJgdKiEcWfKAsx4ePeeUm4oYXGTAoC2edDTrJ5NcPV3DAXjyCPwVJ9prCQXZw99eJYoJM", + "private": + "xprv3QyT5fM765HJiVWFT7mWugDsMLbiHrhqQZ3Vh7mFYwadndwMF37RJvMDLe9nX31K2tHdS3gf6kvnQzeNV3eNqPmV8YWBjRdwpZ1PyNADstk4FSQuiafy24HUrj23hmkVyZ3Cf2G8dLnHH2rdHPagBzY", + "finger_print": "53ab0a87", + "chaincode": + "26300b3f49118f85b81985eef51b4b04e919db6656104c41e6c100cba8966593", + "index": 2147483651, + "child": [ + { + "public": + "xpub6B2qZaVMDikL3ETWDNoKhyuJTRQr3mHE14vTtS1k26XvPyBwmWFVgu7qktQtgcUXWWfvW5DnCuVzARG4piBZpMzFbpfdUgBDx27KW7jsHha", + "private": + "xprv3Rj2B3V8wM2w9HzHAYQ5uxPJ3myK7o3ru3UZG6gjd1AxGu2F2o1DsBQ7nor49dn1vZA7JoAGuZhvoQkAt5eE1s9ogT9np1BhDz5LPq5Qp1k9u2avEWLYyeEom68VJXau5tVsww6PzT8yZj9JWH5KQHV", + "finger_print": "abb7859f", + "chaincode": + "c5d6ab61c0ac9de76882d086cb9d9576a3f64971564c2800108b640130c9abe5", + "index": 0 + }, + { + "public": + "xpub6BzEi8vfNF31p9bBGjPUAbysAoUdxsUiQ6pLPdXa9iM68rJJNLZPkKDeKcTGPCSdGbqBLucvVmZi9dNwbFr9r3Hyxs8Lz6iY5A4buN4Ntaz", + "private": + "xprv3S1UgHdMyFK7Tvtqfjf6PRbT3vW18o6F6SzVndW6f1yB5nUaZGXJjWhCMCBEpkL4ratUcoj34VVwrPGtYh4bnko48JG32zqHHFm57A4yL9D8286ny9ENJZe83FPjswrxyeRtiu2GKorDxiemVNen1wB", + "finger_print": "2daabfea", + "chaincode": + "6c80924a319ca06515919911d752509068f0bacf78e1d926974d179596999b7e", + "index": 1 + }, + { + "public": + "xpub6DkAuy5NLupL3n1WbYJx8Pc3gTsQV9zV5mLPD3Cx4PN8TxHHrzFWB7kQ55gRPTwQanCaqNxueRzPo9YFWfZpJ1h9dxhzS8tBUnf3KC8DW9Z", + "private": + "xprv3SXkyBzbja1YVN3MqrWMSc3kZ9qpxDC6H3jgtooapDKiFKmcpLvyRRtoB5soxvj2AKeCVmc62VKFqkJ7oenn74vbBUDRm2Z6bwyyGKiraVkwGbVGA2ZkL32ag7EzQsM3M5hPV8GymoECxkL638soLCs", + "finger_print": "1cc693cf", + "chaincode": + "f0892ccf145d8e2f603a267a1acc3c238b2c3c634eaaaa9692c2445748529908", + "index": 2 + }, + { + "public": + "xpub6GcArgmGaAgSjEg2SbdhzPpwkpq1muVYayfpsgEF3oN8wjwAjtBdDQpKsTsuwQZK7XJhT7RPGzjZqVwjpkDBvpJJXhTXAkbySNNtEdVDY38", + "private": + "xprv3TP54nyzeo7X36xoqadGuJqgnoFwFm3eMHaurxWBatLVd6sBzhUQ33wRpyiUmqjqgyP12c4iWSNKQDmPA5EtRVYhMzbb53dKX7tjL5wqNMThG57QfceugseB6wYpcCSanVizWgPj1DNjs3d3vuCV9qU", + "finger_print": "a22933f2", + "chaincode": + "1e19b1204bc7be823942a0c944f32b80dd413f4e15ae70dca77765513082828b", + "index": 3 + }, + { + "public": + "xpub6JQw9rZQGwchK7ponH3qeUbTWBUosRqav2FELUSARZpnVxBSHNyPzU8EUoB7eQFPxSge4A6TaucBhScEaKpxYQ7bzXAxHA8V1zqZb8GmgwX", + "private": + "xprv3TvC6wH5XkFg6QkAFHwctXh9e5pSzRtKxQo2bj3PoZA5oWk5wYaVJu5vcTW9DYriH3T8mcMeUtyKhL8q9VDJqHBuWLJB7UnbNdDKaqEBfLT9BtuhkQZJHzgT3hwdcfrR1ZsXLtH1DA64iQWNmG2kCdB", + "finger_print": "97e7f3e7", + "chaincode": + "473715e5ddd2943a2b5c97f00cb6f7554a624ec1d81dfa5580edc39946c19f11", + "index": 4 + } + ] + }, + { + "public": + "xpub68WAcKoUZwN99ZMt7sphSbgbjXv9Ey3t6tpyz7ZoJKTvqpw57yM5pckP1qW8JdBsRMPJfNVH5Fk467x5NxfihiPqSz4poaoa4aoLs4gcHqe", + "private": + "xprv3QyT5fM765HJjMuurnWXKWcL2onRyYeTkt97yvSz9tVj6dE7fQdabxwCbVV7GfNGoXW2YWPPuzMaka5mzSqpuNvL5RWDFuKvowaSNnWmX4oPi9EFdnKY8a2UuwV2EQ9pRU11goytHoEsMWYvo3ioKaN", + "finger_print": "53ab0a87", + "chaincode": + "4c0bbd0f39357bea7ed0f8abc0b170a8539fb0bf112238d1e853682b96a7327a", + "index": 2147483652, + "child": [ + { + "public": + "xpub6ADPLuYfjr5F6GcdgveoyLjDsb2RAM6PkRmpV1xYjeRkkZyjgbB5DptrTfeUStW5jsVfxdc88jYes1Q2nRkZViKqRiB7diSiwX3GEpA8Pyx", + "private": + "xprv3RUvbRWQM8M8JCRki4wHDQLTscVq5rUmJZAoJQ8m1HpPjr14fq3hcSqecRhm7yhj12uCW8fQ77gwDXJJ4PXLJxhmhMFiDXifegEwaiTLPbkMMtQeCuJ94yLFjaXZtejpQaCp8tiUYbvzY3rLo71saWn", + "finger_print": "3c68828d", + "chaincode": + "e95c01791cab6bb39b76def12d24be3f5cefdc157ad3afb4bc2b67bbf7ebe8ee", + "index": 0 + }, + { + "public": + "xpub6Cj31BheLQiHGg4fsDPd4JMvGpAkBfnX5aEaGVEUWw2GSTdNWKguyy2gCL1K49rvhwa56nP8jzvVe79GA9WsZrZvucYpoJqrBoMUX6aYL4u", + "private": + "xprv3SEC5DVTtmGUKpqhqzjNKWueqLc1GwCDPh5QdpLh1xRhehanMo9oLfDZc2BVZ2fmUvVmGxKyQgfZddcakaZ3EzQC18imLm9d55pgkWMNaLSJmVFuyTfch6m9fWWhHpEj1ZvRH6DmjeVUcAaU2652Mmy", + "finger_print": "920f1b1e", + "chaincode": + "b9eb6f34cc7b5096893c093536ed2b03bfe780952591911d80f33fbdc257990f", + "index": 1 + }, + { + "public": + "xpub6ELuLoLBquCUaTgQsXLc3cjQ5xADwwRS7XBxrjqLEM2r36U8mVeaarPsF89UJcCLxdYuno3qAzocYrkkDSa9Aw6TqGy7Sdnzfxi3foWxzWr", + "private": + "xprv3Si5Nyk4poHYJorD7Q7rfiXKysAoZc6m83cQDzWJc4ZoAcFGENqNagpD8mwcStZdC7MDji95Pj3pM4KiVHxMGsfPTeNmmpzw3UGvVo38okJEfCcJ7QjM12f3VS4ydzvnUviDy8nSv5PEQpoiDYtJTiQ", + "finger_print": "6e3ee62c", + "chaincode": + "18fb9cd60f44ca8534cb90319107608fd7173adf750cf78dd0a7778c6b773881", + "index": 2 + }, + { + "public": + "xpub6GD9YHwyNUdYPHoKtyv3C1YZU1qAmnzpt8FZYkF6oZ8zSbfJZzHZ42PNS2R6bREGpaTJ8hMRLLo5D8jTARw3sLg3SiQd8ABa1coQiqdH31z", + "private": + "xprv3TGEPpEQUNDcZ5rXskGKCA51U9GoiDnUbhgvXbaWeMjmW41kkrsxPcvSMSc83tq49pZe96xrPnejkVVhsBUQygbowwXDdiHxCeEdUNTtdMUMV9H6Dj5j5YBAHHedHHFUa7BXi2LVZFUSMpCKcQYnd2t", + "finger_print": "6c28096c", + "chaincode": + "2e7e7f85af4f563b00e68b479b28d0b7569122f85d0e5dca33457adb48bbf87d", + "index": 3 + }, + { + "public": + "xpub6HhfcLx7HhgbwACfmrdkLN8YgPdeTg3QfVsG1wBypkHgV7NZNBekUYRVBDfPYGKYQjMNokfM78K628TG5b2QXs5xLhLoVaqexYsmCsM8rtw", + "private": + "xprv3Thw59RCzCGY4eJrrf7vi7gxr7jjQk2tqPayop3je9aSfzCk4zZhbqvMSzsdHJiQ4ZuGmkrBYdT1oMZULBeBnh25MaCwxtiFkAbN3kNRBQ35K7j5Z525gX1GdfWKX9w5pjLCMq93TKfvWa3TuoM6z4m", + "finger_print": "371a7940", + "chaincode": + "ffaf490bdd2c9e6c5541446d05470e8145f0933fbde4ae2e0d1cc72a4707f995", + "index": 4 + } + ] + } + ] + }, + { + "seed": "80c864564c2bb5e58bfb9e1ff9596499f8f968b3e074840d14f3cd07ba43acd5", + "public": + "xpub661MyMwAqRbcGjhnrD4DYBLugQC2aaDE71mnXKzAuiRhHcXfrSE3SHg89otgqTamcPvQZgUzgbMdx8KYTfs1FMfTLdCJAFk62giYP9SAAMv", + "private": + "xprv3QESAWYc9vDdZvE3NCgxMRriddWnFWMd1TWZMpijNwEVBTVyoWcC55GA5a6E9mRdxsd17qDFnPts4TB88YXwuPPMyczQnqn6GJB9NkD8xetwS2iF1okUdUMDqMtd4xet3AYmpCBwxTLzQ1nDJq6ANXj", + "finger_print": "00000000", + "chaincode": + "dc6661387c51fcc8c52a6b778d78661ebba46da6ee4dd235b18f56dfc99e480a", + "index": 0, + "child": [ + { + "public": + "xpub68asHP44TJSz1DLoFUn3VuvXMppifst2CHJY1PbAdzo4bZVbZUwopjSotqMpGWqNRxoaQistUN4LFvcWnTWRPa31jamoRkKCvPF6mgq5LqJ", + "private": + "xprv3Qzr5iRHnNckjenLvodmLZ7McUwC1Mi2EGvdfjjR4zT2xyCFvsLTepvboisDHgpeRwxW3VhU7sYjVE5Cb3rKEdNzbpeAsuVfiiSnsVG7FfP1RzwnaE51Qm2WjKW5ywfhSPY6nLzBvi9gVRbjZLyiA8J", + "finger_print": "5eb22827", + "chaincode": + "b45efcf209c4b21ea05c9bc577082a8ed175867634535e5c810df776134f533c", + "index": 2147483648, + "child": [ + { + "public": + "xpub6An1VGVSEz55xYwTQh35Hs7DszFQHDJJjpCNVs9nL6AqGyRyCNj4T1pnfzU9yRufxQhbJjdS8bdUZkLHknW7gV9Cg53DgEPdoNMVRjtdn1Z", + "private": + "xprv3RecgJq2Npq1E9JHcWF96BBq3spBbKpHKjxa9ez5WKCh4MsdAM3uYDyykX2yRmTEBj7Pj2PN59PhT6CqN68q7rRSbxaD2u2c7Fx3pKT5HFQma9rEEabLUc1CMypZmsQctPToqXbfqgZBztTpJsK1Nry", + "finger_print": "88eec4a5", + "chaincode": + "317d679c157e69dd547cf79236a50275a12452dd045efe5789e2b00807785ace", + "index": 0 + }, + { + "public": + "xpub6CLchtjW1QKYyQzDG9bc91tMufrVkBS8Kq77wYdGn2Fhb6gmkWBikrG6Tt51ubu9pDkPd315mL5sa1D2m1K3ief2pgLHVVMA21mZ9x1guZb", + "private": + "xprv3S7XobnuvhugCoJF1itGvQYX62ank1pi5GNPPfbeJqUDFgbSggatxjnBUYG65Yku7tdYmwqW12P7gdLvJr47X9MpPEE2WpirXQDuccTP3vZcBM7bVjaS3LiK3wg6BQA7deHjiKqbZf2TRQ3xk5XXHok", + "finger_print": "5d7881fe", + "chaincode": + "a1f01c4a506e404cb7fbf3265bb796ae8084d13aab9f1259cd4f4b06d9dc279e", + "index": 1 + }, + { + "public": + "xpub6EPrkVwzW9XdVMhfoBiJuwo9QEnD3hU1k62Jy88itb7FxqAZugPjzU2SX8cRCZonu3QAF5FRKj1S5veXFr5ddfsKQ2H1c7MvGaxrNACdtbF", + "private": + "xprv3SixJHFYnwMKuMFdg45E18PYtZnUdTkmNtV7iWFrVBZ4GvWT2PEtvXNEy91XX8Vr1Escpr5iX4zrdoTJkHZAcZfvwGd41FF8taqB9Bm8k3FVT4bZU2Z1U8diX2LPrTA8qFjzLUyPndQ3qqNvj4rMNLd", + "finger_print": "752d92be", + "chaincode": + "b09cb5b63cad367709df5299740d6ca7f52d8f77c1e1877f6feb48a485c16ebf", + "index": 2 + }, + { + "public": + "xpub6Ggw9oQPKuQyqqXq1pSpAnVUP4tb9vLfwtJSc7DGDqS1qWEzKXuPLkoEFkks8erQMWN3cW8ntLWiHFH9fm84AcJmmDbbw25yHzL21zzHfvM", + "private": + "xprv3TQV9FH5MGA6A4dzE72cnGZR2HaREK6nnfuyfTE4b3swDkXEbXAnGDHpR3Lcuz1nruHbNsUarNdJ3N5J4eAeQMogAVSLshvdfqF97GVadnYtTYUvDXESSnHinRSzVA5pUeEi1Ua4D2r1ge11nYCo3rt", + "finger_print": "ad55d0d6", + "chaincode": + "876a4aaae016d24343416199fe693a4e87c307d326395b621b1d7843f571201b", + "index": 3 + }, + { + "public": + "xpub6Jzy1DQRqhKAxjqgBaNodfiajj6Wx3dyKKkaJfkHxVFprRVhgeyS6EEidsiYyPyc2wkvR2Z349LyQkAwcZsapHaqZpdt64ZS27LoL2nPqji", + "private": + "xprv3U6JTbe14Jnbwv6yhB2eCC8e6MmQ8qwxJZoM7KDnzjKftepkdNjKejo51cPE5vw7FQQeC9Kc8VCXQpEP1SMjgUV1QvaNbh1VuV3krFtUxyTxjn5MwCGoyhwyZ8zGTzHzn4ny5szmSwXKnzW2ac31d5W", + "finger_print": "e7bc2919", + "chaincode": + "4696177912ee213862a6610f1d498f341c905eda919f1e66f6f5c96958f078b3", + "index": 4 + } + ] + }, + { + "public": + "xpub68asHP44TJSz2tSH18TjyUnPqTkwp4ioNYcFwEf4WcaXecWuJqmAVgDHZKbv6bUBQvy9e2phZaajjNKFHBxpTb3mxH5VJkumVxMTAkuyHW9", + "private": + "xprv3Qzr5iRHnNckk9dF3WFgEanWRfEX8o77fLiRSGKgwk9YBbPNXVpL8keZmhenpNhKUBZEgssn4LBJEemitgvSHbCBYKHntAbTNJ1X4PvZ4JDUF78mVs2J4i4369STAnPrB9qrYaJnXBwi7kituTtkLM1", + "finger_print": "5eb22827", + "chaincode": + "5c83bc3b9a4ee666002e368331e01b3a59373fa7d9e51c1e9f18b52373c6a435", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BdeSvaoyKAMz86imrijVS3hzCdYJ3RexvRm67hf81KZAiNoCYZfk5zayoQdMbZu1ywQyPiugQheAbqbkD17f9PGTce2vf9bpDS75M6MCke", + "private": + "xprv3RuMudLRvRMKYNcSCXVF6fchsejGQ8Ge5CaLwZfXiNCcMg1gZqd2UXxLPKr6K1aEbpCA4QyCYvivSS5FKUmaGeTtsexr6tJ99QfBhvKn9eLu67gDkkkC5GQwfoAC2iCaNx3FJjwRWQVsJMeYc5HY8cH", + "finger_print": "fd5dfd99", + "chaincode": + "f8628d5011bad99920ae7f2417b3e060b9376fc0821ea96620ec2dc6916c263f", + "index": 0 + }, + { + "public": + "xpub6CKrh82er12AJxYpegSS3mAQ2ZQtj4wntajLd3Vpubc4zaLv184mG41q4mQ8c9dFwkcyE8RthVW5hoa97ustFDiVLzu48bHmUuvm1SF5RfD", + "private": + "xprv3S7JjGaNMyfG4kj9tPpjWZWKDZZDHu91vNcL7HpnneWK7EWF57vxfWS8mDqGAY8rktebcnT4aMWs83UebpesBxSjSCeBWmiNkofcYSGAqeSB82hGfRMYS7dvdxB1JWZV23zDxtsFk7fPAYG5NMzyt88", + "finger_print": "5bb0d148", + "chaincode": + "d60dca6a0b3f37cbbadabc169f4a64bd3b0d48d1be0201476ec6ada139e87116", + "index": 1 + }, + { + "public": + "xpub6ETUA5BwVquRHyn1BSNtJpSxSHKvHxfeMSSa6hdVqJF3vZQhZiExUnrBGa4RAt5KuT174HjySc2sYAoz2moJGQzWLZG8RPNZXXHMCtwQNms", + "private": + "xprv3Sk2WGc1q6zCibB6frCQHvwvnJaSP7efehn5NMjRWkYpPj6Zba52LjP7EK2aepE4SkqxPzVdYFbLGanod54Xv6FNHPKhi97hVfCDhZB4x2f1LUhcihBcThMmZ84JqzQbAJ5Jstx3EvSKbyeHjW9SzHy", + "finger_print": "7da5a80f", + "chaincode": + "68cb76be2cff7c678680840e29fea607e1e80105d96599e64ca3badf55ab448c", + "index": 2 + }, + { + "public": + "xpub6GAGoAwnXWanq2CsYhRDpE7xi9Eq4ExZb7ykQtLLEjNVSCJjW3S3TZtMKzJNd8cE4n9YjBdBL3dciJ5Ny4gPZVGmf78acJhWRUNWqFvJYSA", + "private": + "xprv3TFNrthbheCbpMLvzM6ek8qDHj7mk6omtUpHw5mcr2mSDJmCkDv76e1ou6nau1AFcjn3ZrgFwy9DnioxwdHdqZ4FDP3s3WHM2zHpxZ1YiNQpfwjgfRyfUKQC44qyoB5iHtjV4x3DocuF1piBKmYiU5R", + "finger_print": "6569a9d1", + "chaincode": + "4b777fcab7bbc8073a67e041f840a8eaf52f25087fcfdd795358d1eaef1710c9", + "index": 3 + }, + { + "public": + "xpub6K23yTz6DJvdAtfZoL9SGt5n4RiQphMgZ4XgrgFkSf6pFaTZ7fsiUuGFhY213hcEHaCJC63e8gapB7GjAkX2fChbL38XoHocoz2tKEYZwa2", + "private": + "xprv3U6dAYTvzoBcsYTqfjvsSyjNv9qpihMV9X2rhQqM27MFL3Wr5Z7MM6KAXDWca8sFoNQT5cS6JzXS1wye8C4pDvvtJRYbccckQYstgQYUMuAytWApD2J67kUuoGDDbdtkrNpp6NLQjYdY1zvNErBqRWA", + "finger_print": "ea481df5", + "chaincode": + "daa78f92ca089d3db489a3b9ad9abd373ddc05e4b60a1533d6934ae25b90c3db", + "index": 4 + } + ] + }, + { + "public": + "xpub68asHP44TJSz5EnjYEptAi22CopRPC1pig883HneoLKBKPDMcmXUpreS6iSvcydiL3SvVzRd9ddJLTgTmAHQLYfqAtVkyDE2ykrfzZ4hjDh", + "private": + "xprv3Qzr5iRHnNckkr8YbTQzo9WLvTKLC6L6YmBQhkJu9PJdqP1dp45mBthnPqp9KeZfDpzLbU2c4W62tZ66DUrjHgobKrtLZBMtu4vJLRP2aTbWEYx2wk5eif5yAf2Q3zKfEXVg1Hi6L5gDygmKH8Fch4f", + "finger_print": "5eb22827", + "chaincode": + "48a4ca657481df1b191eb3e353fb1bdb37bae7e3fd83f4b525056fc42cf2cde7", + "index": 2147483650, + "child": [ + { + "public": + "xpub6Ba7QeGamrNfZrB24mqZfEb2eqXCEEic2r2B7EgdAAw2nYWoFa9fNAdtmGBxQvZxdr1bAYFyf2ed81WtYzyXa3LpzSA34iZu2WkqKQdtKo3", + "private": + "xprv3RtJzt6jJhTSFyueMwUJLFKLCUzH22dpFbj92cHyfRspQzzqeao62XHqyrUUyjekhRZeTvtsbUMxxkdfm4DvtAZ7eDUB5voV6Att8qvtawmRDGczjipAK56wRij1jTBWwSUQs7QBQakdHScu3PK6eB3", + "finger_print": "f5131f3b", + "chaincode": + "fec298272f0551c9f68bceac4b7d6cc3b2d870d6e041bf6d292deb1a86df52cf", + "index": 0 + }, + { + "public": + "xpub6BtFhQT2NENxNTTFLG4s4jPzSNLiV48QtpuFuCri4ZHRD8wy8wtbH9vJdXMn1MVXNTekrho2y4UeiLoB64tKJ1LueUmp81WAw7A9CGEtWri", + "private": + "xprv3RyhbQ6uEuhPzWy96TRb9Rt3mAtCEjrBcyL48Euf6cpxPdaLW55ezWhfv28j5g6y8u2z67YjHH4JGMxSwNCfRpV312rT3CQrJTGrvdjT6711qXCX7R8KdBtkKkVYe18poMVJzNuNrzCs6rWTd1SvaXf", + "finger_print": "1fa1f6fb", + "chaincode": + "17d1b0352d8f8d8699b2b5d6dd8ea54493a7e7862d111ce647692d2de3d1fc55", + "index": 1 + }, + { + "public": + "xpub6DzbUYB735DcaFW4d4SAErUDBp3aaHbbkqNNukSB7xfRdixrrzU3ASxc8ww1RdGeQya1SFg7kF9DQNJQ5CXER2xgSexGZNsgZrxfthqfuuu", + "private": + "xprv3Sc3UoxrqJCqs7Soei3CRzb8urixni5Tj4CgjSkhPDsPWCqGJNmhMGACVJCAkThVsAyqPWC1MXQqXTAcWAz8afnFqzTU3atkjvjzLjZXgFb8YfHA9FVRn35Se5VkaR944c1hBrsRKBrqS568SfAdt5G", + "finger_print": "3e9be482", + "chaincode": + "78f753f0e4acdd976827074eb669765768113fb1531e6d9ee361954078fce310", + "index": 2 + }, + { + "public": + "xpub6GxQCtR9FagmC3FMtHcMYfAsyswBmohz9JkrqkHvNYSD5pvdMz8AmqLG4RsDRXuhFbFvDRFNgqA1XNiJNLkYZEzmYt2druDC35LFRD9uKAg", + "private": + "xprv3TV5d7ZrKzkm7YZTkn1z8dA3HDwJC8UVt77fC8X7yAt7f9cvLhP4DZeUoQnAtY2kZ3yBYnQE6SmMBZe9sfpBj4ShX7parQcvqbz8QiokzWf3LL2vKf3owsEFksahGnMiXvkTvVyRRiEf7og3eqnrZoU", + "finger_print": "d19d6df4", + "chaincode": + "edc84babd49901e118686653587ab36f3aabe5ba809fa8017e2cdd288282c100", + "index": 3 + }, + { + "public": + "xpub6Jk4fyUoMRMo9bedFk19zdH6ViicijaPAJmvmGFfC29JfvQ16MmK35CQPdxvcbPtF1pXBVZtua8Zpt7Yio3motQ2H5mQaMF1xFzHYMyzFk8", + "private": + "xprv3U1shWUr34eLvK8mNwuCL7VZAMBGZmGuPiTHW2kjsx86LdNSEjGJfYZZXTMsVD2sp1Av1QgHgcobVqEb7zRk6VJ2Yo1oGkx2aFs8XnuoqznYWYQQy2WhkCzG3TdtyNEERbbJjHdkDfPBeLmUhCHiBYJ", + "finger_print": "c4c753e8", + "chaincode": + "b37865f5a45f30c993b9f43fca40d84e672dc042fca91899444727f80185862e", + "index": 4 + } + ] + }, + { + "public": + "xpub68asHP44TJSz9Aznp6uZv3bFDrtDGC11SNxMnMG384rSPb6oN13idVP1vniRMMcR2bAaBJ3B8EgVgwptEK5RtoZHXHHaQ6pcWGxHxT2E6oG", + "private": + "xprv3Qzr5iRHnNckn1vUYAJYGP9SVTkvBP719kXwFqUxDt4joSbnnV4wKQYK1MFzJFhWdp6UAExrrmTDd183wtJZus3SkVSFuvQ8yBBrbb4rEMkURUqPFRmxsLUcVEQt5Ehh9jc9pKW5Qnh1ZXTkL5jDpej", + "finger_print": "5eb22827", + "chaincode": + "d3d7dc42f03d6763db089a1dc820152f834bc502cd0afd7fb0f9eb9c91c1f188", + "index": 2147483651, + "child": [ + { + "public": + "xpub6A4WG1s1seCbu7RzZ6SrdjhijWV9sdWfukDpZuva7z87YAPi8bmQZxiaDyk7cGjPmVc3PRLoMA9ooEfB3RbRXqnEZXfsW1hd63WgbcrJL3v", + "private": + "xprv3RSHaj7mtEZU25Nyjmb2ecAfpNv7N43e1zp2MAqEQV6rU34ebLZuTgy6YXms4qXi83ZmWdGE4u8UQnCMtj4fgWwc58xeQav1fdB1JW5giTzQ2rmuZTywcXZNL9sx8DzhwZGCjyatS8o1exMhtJMxa99", + "finger_print": "27939986", + "chaincode": + "6f4d5f26af18c28987d80f2544de41176a4ee62cb142120df0f60be72b982d5e", + "index": 0 + }, + { + "public": + "xpub6D5317BN8Jo9sWii5DwsBd5dWSp3AWPmVmmNcSCZhHw1tyd11jGrGRsncWX5DQjZL7gBVakM2T3Lek512RKAX9aB6NQiGhfvJcG9Vb5wLaw", + "private": + "xprv3SL8fXZUhYaeFv9MsktcmrLg2hY6ktt8Qyx6LfhgXmA6r8bbgiE34DTNTiw39T6kktJ6dRmZ1PrRKK2rvbjbmj28Co1PVtxNzxbptfpC693V9cait1gkQgZ6wrisQAeePT7vXYqRvNR2SXV3PJYxwbH", + "finger_print": "c0f91e12", + "chaincode": + "90fac6a56f376efa93b4ca5be936d690c2432283413e29bf39016379464ea2ae", + "index": 1 + }, + { + "public": + "xpub6EYZGvzJJ2Ag5qt1JdaBYvSGmEs86JDR5h3N6Ygte5CcjTWe5Tadmkb1i3AmEd5FLhvEPmafE21yf3xiJv7eo18PMKkW4tQg3cyomsmBpKB", + "private": + "xprv3SmYB3DGjpnyd9yfYrr1yCacqH2MVuYMzpxtRdNzttqohqDtZ4WjWXoUERjfFpBFLbXS5FBPSKqeRTfnoLiyk1Lcns1cfR6d6WbzSRA2RX56uAUEiXR32VW12gtSdGzJxk6fSHvYnk7iXeDvfcfrHjD", + "finger_print": "8995278e", + "chaincode": + "73ece8b3b9d2ec03d0ef6e2461f9682f854148dfe24da3b6324885976b876566", + "index": 2 + }, + { + "public": + "xpub6Gxgc94g3ZfBYbBHf125wFc564ZoFdgKV6g5fdgdDAnnJi8JVzD8gEVm1bgpsg6AwYZpaTV3Dzc3KRsxUFhiadJVyM8ES9v8nxejc9K91oX", + "private": + "xprv3TVAVhGRsVM3it2uzgCWesuEvCJinULfncXJYqGHAdEFyVz6DMg79v7EGZEU2crJSa4rVyyyvFPXCu1vNZ87oQA3aMFYmhNrf6mttpSS1oQ4icSLGwwmC38KNCHj5k8P8s3ek8G7sFx4JQxh4aJWfBe", + "finger_print": "d2473c5d", + "chaincode": + "5c22808caba9f5123cfd0f2c36e31542883e9d9dbea2d8243fc1988bf2f0037c", + "index": 3 + }, + { + "public": + "xpub6HJDrcaVTpx7DfwDQ6JjbfchaGsVFhWoTNyoN1uHfvKMECLsX7nzqL6rMjUyhUABbxXMgPG56enDjs5tUbYHaRc69gELGCJjWTNUb8s13Un", + "private": + "xprv3Tay98WqjNBSPrnAkmJhZv1yEHYiiqX78hW6EywX5JzoxdbXukzrW12opSBq33NmFDs1c8y79ErdSgoMCf9Gf1Ffg9E7S2sGzRHAk3hWt3JFNkePzCNjN9W4LvLyPPLLajFDqYgoXCWD7vheFfkzHqA", + "finger_print": "001c4d25", + "chaincode": + "679001e9fc1db5cf09a2734011e365984b5d83f4335d34b7e4bc8f8ad085ec63", + "index": 4 + } + ] + }, + { + "public": + "xpub68asHP44TJSzBW1orvxA1GkvdRJN5RNfCqixz3ZLaTjuuVZGKm9U3WPaEu4Zg29Cct6DoXxEMT9a6LLcAawsPpw4Ff1ZYSNRTtjznxH2JQ7", + "private": + "xprv3Qzr5iRHnNckni2mqajKZgecMoDrancgedKx9pyPmFppu1ewyAkuKKysbvMGYvqMiu6bouL7mvjmT4fFH6DebmMCChPmyhrysrv8MycLkVLWm4P3tkY434UomhysrFCXA6oTX3SNzmoXsDSiZ5WWDNL", + "finger_print": "5eb22827", + "chaincode": + "bda8fff9e3361500555f8e17a77c56d1fa8d13f12668686f97b106f69148c282", + "index": 2147483652, + "child": [ + { + "public": + "xpub6BXre7JKL53AkYWVZx9dfaUYe8kHKmiswPQfTq9GspKUSTEYQzS5LUXmcd3mtHpy9ZtvuZVwKxSJrxcPzRN6P8h2UoFLwJT2fuYLQCtkii7", + "private": + "xprv3Rse9od1XMRK3QH6Rjnv8wTduNfg1CwzL8R5PzKaJoa49mjUSujp1Pf7uRY2334FeBCCuSMeyc7JcePH69kMEohfgZybTsCxYHnwSpYHdaLkVkiC8xxN49paPuoqih3qGiEGQy6XL27gDzQufx5BqYz", + "finger_print": "efc938a0", + "chaincode": + "898635aee97ad539cc6768faa47c934814296e5b0f63de3ab44922b713363760", + "index": 0 + }, + { + "public": + "xpub6DNWVfnW2LJwLJSzcSkHXe4CcHfw5YkGdtGLDjzAvcfiVaQaeYGub1vyFLKqBjfMfmoEwdAevHNvUWEKZa3ogFAqUeNoUyWGk6WsVxhxtgU", + "private": + "xprv3SRKjbXaQXd9BeB2c1dFtwuE3iuk21JV5vGGfaZTYPW3wjVzuETvxySHup27tu8s7DX4geHdVcjP7qibR8K4WiwC9fgZCuX1r5fCjLsEPP1a4UYFHWSuhQDU33otjvALgewQP3v2ZjYn8haa1dZ4Eee", + "finger_print": "e9f64808", + "chaincode": + "4d2cdb8c2dd353079be9bec0319272a602f699103a73fec57c40027f8c1826b2", + "index": 1 + }, + { + "public": + "xpub6EW8EHCopGBMxQHcEiuG5K6HRRsfyUZjyyAvaZuYraeXzEoq5S3rBNqnCyTUY65a78dJ7jct5U5ofeWqFUYiTZFEMywLpJcoJfhBjHCULuK", + "private": + "xprv3SkpGssNVy3YB4pDMveVbFdat1XtGzweqDGrgkJBmLQepXRCsmnr86uuqHkXw5KuWBBpu7JEtvXe8e98bxEDo4v7bjNuackh362opyLx2PxtdawBRqo1aiDRZBACfaUrPwkzPysKWNJC6f24SFn76yU", + "finger_print": "83e0d787", + "chaincode": + "04e3a4d64e1c5818536f7af54bbd4313e1a83b04328c07f736916065ae9ba8e8", + "index": 2 + }, + { + "public": + "xpub6G7Ka21iGbNvwJ6vEi93PqNj3ikbtEyGbKMNQ4V7UXrdXqUprmoq3Ncss9SmDNKRYcYaiZYtmYLj6HMHh7AHNCttrNhK6bgGML1vodg1bAk", + "private": + "xprv3TEVziuCot8XLiimpQfwg5ZArVj5QJbq8xgaEf48Dk8bhbUXm9rnh7Q3wo6WoosJfn4PszZAu1dTM545zcY2ERQXmGWGyGWGLZkG2ZTVH4KdLqgj5FGPg3BxV6ExL9LMrBjFbyp23FkTeztoS3MGb7c", + "finger_print": "5e7cdf31", + "chaincode": + "89abdb35cf0b4aa6387db98a3ab2127727bca11495a2eba8eab642bd12a2af9e", + "index": 3 + }, + { + "public": + "xpub6Hi5McN7v4Snh1xfn5zXRZwbfJQQUiPW8sf5UwcXS9Y7dmT8TH1VQ4uFM3KPtJuS6TeR1gTUm1V4cV2DqpHNuetdk4Er3MMTL3umiyzkgne", + "private": + "xprv3Ti48H9vneFXJT4L5MgXVSR26oD25ppBiEXDpfiovf3MTDaGRZucmpkamCx9W7v1Xd4FrHqKXsj1X21kkuyVSvoCbs8W6qVdPnvp2jnLHRrnfuAXEDMgey8MftifUm9qQy8QJTAa3bgxRgshqrgPU3k", + "finger_print": "381053a5", + "chaincode": + "6b2c045ba867aa604bc8101711ac2495935aba398f0bf783446a3b28f24bc040", + "index": 4 + } + ] + } + ] + }, + { + "seed": "9d2f7ecee1aa36934a64f475d3bc527f451f60edd411b24c035e71981ff6a25a", + "public": + "xpub661MyMwAqRbcFiLZtGTkMsVtS5XKystq9MA4a55jqmTso68ehheAJm2XyKVKxvgSWUuttQXX5UDK2smwGrhWq485YQrbrQgssGZjhq76QDd", + "private": + "xprv3QESAWYc9vDdZcbC1JyV7STc649jkJnKMGLRuQzkxFzHjqsq8AvFyBp3PE4fFjuRFrKt2Dk2kjmebasLtQfSfTUNivQt1Z5mLG44XPGXPsnqDmRg8Luaih45z38KG2riDoqY46nm1r7N9T5bv3qVFUX", + "finger_print": "00000000", + "chaincode": + "7597c50e43b1b63b52c409ce7de19ae769375e2c0351db8c83194a798f08c58b", + "index": 0, + "child": [ + { + "public": + "xpub69kQavJEnS1DTYFc1CDcbwzrXZnfwTy8dqmb9Pbd3Hgbj8mxfiCvFPre6h5MFQGf6xz2aA2L6ZGo4ji8Lp9Dr5UXCMhCRY2YnEURjp7f4QV", + "private": + "xprv3RLumGFkRXsdczV4BL1FSZBsZ8cvYyry4MugcU695bGW3xU5kRTs5yHPDwKwyTE7gxqRJ3533C4rGH62i5TQMUU6T3G1gLoi4LFBYUPVM9EMdP8QgL6sk6AcqcL96RJfuKJotB18oEWSiTUxbUKX6eA", + "finger_print": "fd1fd49b", + "chaincode": + "4720148fd892da26e59e2c2fb0481daace21a088547f609dcb3f87a85dc7cdd8", + "index": 2147483648, + "child": [ + { + "public": + "xpub6Ar81pxdEC68rsSuHGzoQGYMe72dqFRSZzyEiw8d6tLk5UPQDMfkybYhw7FuAq5aiZwUfya6aXfqbxCpo4cd5VJmx1QQFycG9Tc6RKsF38z", + "private": + "xprv3RfqY2kAEA7oWdh9YRyH6Gei9KAZkEnbtsGX9sLYVsntfH9qhSCe9dQKWdjVDTEM9gQSgHj9uMEcxLCrBTDrKYTVmc1GBA9VSexUUSURnuP26behX8Gyfvdf1ANTs91yaBMhFy1RPASWpz332kJinQx", + "finger_print": "92945967", + "chaincode": + "021d4232bbf9c4756017c98f1c196118f74f699fa262c80eb4031112acfc78fe", + "index": 0 + }, + { + "public": + "xpub6D3x9bLLkf67VoHE9qWDMrH4PSjykVJsvhn8wcYxiS8U53D7GbhcK9rqNc3SzjoGUXCvS3gRXMe7quvpB2AYi9rvsZhZDMmc15vyJERamM2", + "private": + "xprv3SKozaokvPRi5341pNLFq7Rw7FqPgpYMRwjfoF9iHMkmVemRYmpoZfq3mukx2aVrtMprwttJ39nPo4d6QEyJxvmFVG9ExGChwE6uiULoqhSfMctfXi7eBXUnEgTdpmcunH1EaMghitStx1gdFG4ToiV", + "finger_print": "be6e5d12", + "chaincode": + "c3d28c42d92c01925b3d77f9895c693cfba6f90fe43276a38364e287f8a8b2e7", + "index": 1 + }, + { + "public": + "xpub6E5R58GNiGbX2QrQDYoYRwQeb4KoyQDhwYEpZYDzfACr1jrQvENvxU9tHAHEYgKKGE1gzgAqQTcNRiNe323ZeYBWcBxh7wyi1RyV4LiLWhF", + "private": + "xprv3SdUY9GQVXa244Gt5BWrQyjJSpKCNzyhn1qnpXwvKjU5RqYBvLrHTm9XsgWJC3P5HmdVKAVUrAFfEcsmSj8QCGhBJVnB8GcGea3rLpJ1d5v6fo6XKcHbqVopywV8PTAXRwWuaXLbHnvropYf6u8QPoW", + "finger_print": "49eaaf5c", + "chaincode": + "2201a35b5e04c7be69951345bb126315ab51925e562e964e06727df689d18669", + "index": 2 + }, + { + "public": + "xpub6GA5gnFoTYLiRASn8mwB1tG6wqxVnW1Pn52moDMD3TAfYdvcw5VydQWpFk8S643VraP3dvk5ctGvpPPBhoGkbqr2N1Q53qpAo76bbGvEARY", + "private": + "xprv3TFKZU6h9DNfWuZN7EuhxKweUPN6KfVLcGrWTbXZbHRx6Qkk4vxHDSqETpSEYzp5n5BDyrcijyqwJiQiAxbeA7SKVULkKbmq4aZbT1rtdgZtBqk9MejQfsPHPnypv4kvtf9Q37hxiueKsiTmwSYmvLp", + "finger_print": "64f6a261", + "chaincode": + "b59b8ad48aaa25f2178f1a8d3f7c707793d6500e28faec6f25c6563775ca8f80", + "index": 3 + }, + { + "public": + "xpub6K5KTbLzke3wa6vY1Ko1CposiaJSaQd1ADAmGcLLFLQ7rGkFsERsB8WNLRETGGp2yzxWU5kLUtCs5iUnvc3ewi6KXK3mw2rgVzcXirJRYT6", + "private": + "xprv3U7bTHwfbxW89cu3x4tzPWFvFNm9CiiMz7vvy3E529cmqLt34bC3BDKPLvyn4W3mZUtuBiGpqTpFp3NM9ESUtWL5vrHjTn76jcgfs7fBYvVehiSx4xhEVxbm6qZwcAynXzgVfGrQ9Mvi2h1JYnNX4oK", + "finger_print": "f1f1f19b", + "chaincode": + "4d1ea7d762df91264d8447d11d6a25748350fedc777a6502c438a04a0f08ccb4", + "index": 4 + } + ] + }, + { + "public": + "xpub69kQavJEnS1DX6sVRNH9zh5dffLUn58UgneSZMeHrhVSLCsn9bS5AxL72ARqUWUxn6pgxuTbzKk1XNwgCEufv747nzFSxJAe3JgQwgXnhc3", + "private": + "xprv3RLumGFkRXsde3s1jesyJ7k9NGiU16nMQqzNhuzWocTkFmsSPnDcXsfukHuMuP1dz7nEHe4ULPyinVeyuHZcGT7YvzrYyZVi9nqBxP9f5FC7cCiZwVooy35mVL4BswkEZdzKb349n17LC4gNhdRiaen", + "finger_print": "fd1fd49b", + "chaincode": + "acf0119af61a18269fd35cdd57e1edd8be399a4e87dc9ec834faf71aa8569193", + "index": 2147483649, + "child": [ + { + "public": + "xpub6AQEzJG7qpjXzRas6vEZ1xQ9zCCBwYPrCNcNqRGrf1h1TAdJe7ygGgsbrK7qFJRi1WbRtnaLCXbsM5xExVSgCoQdrS9QdtErzqrpXG7dEXV", + "private": + "xprv3RY9dwycQYhRzE6KNnXgQMqpCq6sQPcueDMPKZNyd5KM6GrtFJJzC2cPpimacSsdzknk5zrc6YGJisgFMjE3QwDwhAkkHdPrqqKmF77ijEZvCzQgsVob1HL3gUeM3Z1gwLMrwaaNgfhVBfm61oS6RCY", + "finger_print": "55df8477", + "chaincode": + "181043ea3135a1716dc587d2cf4e0444ff669beb948dcd2c9da55e9db87f9706", + "index": 0 + }, + { + "public": + "xpub6DALgXVoiWnXqZpxjx7njTLiAbAmhusTDPecjGnh2fbceRo4VgZpcsf1YzPNs2RD4UhQrzW1FjQukpcMSHCgzcaw6a1sfthCtA4zXh6UpHR", + "private": + "xprv3SMi4iybsZzbjVr3qkMYqM9FWqUivFnfumjwBv3LbeyZwAaTEVn8nz49Pyvyo2qb6gN4gF7GUtyaizoHrRtvsBJk5KhAu9p4rZ2AZiXFAMJHPAFB5pGXc1JdzeQW5wG44CN2McWexqiiAwAkhX8idyv", + "finger_print": "cd6aab63", + "chaincode": + "30404f196514b45fe6c5501cd56e9bc8415e8cf6b5a3392d78daa4afb7c3c98f", + "index": 1 + }, + { + "public": + "xpub6EnEuap8kD7D69VVmVeUPWtWmB8LJTcCjubmMY2AttyPTcX9NEJcFComtPQXXNPgvm78axFpLEa9BEg5ui8BZsEFnJcMXwfDLP1GMZtSyxA", + "private": + "xprv3SqbvztHbdWnvUcd7dPTZxBCrFbgJeJftVVoLh9ntxF6JUzmHNkKBCpg7UFgDSBzivqqGa4bC9ukaExYp9BWfhn3haAwYLGpXDBKiuSaBtYFVPRidGwvWce9LhUjByd3pYHzFvtGC46D73aLocRN8Bs", + "finger_print": "a9adffc5", + "chaincode": + "4090b767504e50f34047aa01d19739a31f514e121fec8ae531d3ab4ee32fb5d2", + "index": 2 + }, + { + "public": + "xpub6G2uqdHFN39WcmXnx7xrGmAoznsUY6BSAVEhFChEU9phehch8KiD7KuFjVeDB1xfxwn37rQPxQPiLUjoGzWvpkNRgch2v4Q2kXqKm5jYGrW", + "private": + "xprv3TDC2ajj4r5LWFxkv6U9JeWzdT1f6Jpp7iZT7xNGArtaT4VsnvijuW3R6R44Bi9gArVMiT2tmqJqcqMUH9Y8H7psFaYsPt277vCasVRNYeynawshrav8uXvrbgmVRz6PgU41xUX8yQq6ZA9Hn31Q7DX", + "finger_print": "54252b6d", + "chaincode": + "d0eb2eca7603041659be8429b1cc4cb164baa6434ecdd445f107af5d9348b551", + "index": 3 + }, + { + "public": + "xpub6JyPLzVfVrcXGipASgfdSB5xqvHoJ3P63qjh1koujcjBQXtNvp5gsnWUjyNMJTUsqyCCu941rBKFuv6vTNitwLboqJNDQhoM8hUF1YK7Rug", + "private": + "xprv3U5qEMFotkQkQBZikGxqWqX9nfhPgrwn9YLHTcnCeEKuGeMQp1pqtTTBYyLYgcmBBJ6Sz7swpTSF4JC9jiWJmCty1V7tvDqK8MKvkfYApFePnZqVE5yZhqexjhi2nJyfwRFMmL2GeRsy9rLtwcFLGAT", + "finger_print": "e4072bf5", + "chaincode": + "4df45ff611d0bf0819fa9e8198047bce0f454c7c5575fd7d66c16e5be1fffb94", + "index": 4 + } + ] + }, + { + "public": + "xpub69kQavJEnS1DYLUkaESwXxZzABEqBkKWVa6qSeYhXi4os9AqnM1jgq3YKman3ZbTSCyM282NYf3DJE52X4ynexqrxgdNqUXUXAztT2Zq3p7", + "private": + "xprv3RLumGFkRXsdeR8nm8aq7ppZrqPjfKmb2yS5LNEYSjFTso1TMJTxcnpqhcEzmF3P592xNtyY3L7cqLmU21EkUiBASHzoNKq8v252xbeUTtUoKP5s9D1msETydxv9fmuNoEq2VdgGn4qsvDYMLsFa8Z5", + "finger_print": "fd1fd49b", + "chaincode": + "28f1eba1a8ce49e6227afc26e5f374cf88c4127df153ddb8afba5d7910931305", + "index": 2147483650, + "child": [ + { + "public": + "xpub69oiiMVZ52gH1YaiN41fHh9oKfkKyhdHa5iKdevMNhqWe9QSetZYXX29X6AXbqeh6mEf1dz1WNcPXDeMAzamaiHtDoZupXiD4rvdLDgKJyB", + "private": + "xprv3RMtqZAECGtQNAibqatEmsjk1ukLTbF9nScC9ULbQgtZU9NwuG2nYJXmbW9D7TBypM6GU9W4Vmq8YdS97swijVL44f3fg4xrCJfA1jVh4g5H6LEN5BAeeHf4Bu9SfCfcpn7QYRfQa5byYJfm5WwAeck", + "finger_print": "04e5061d", + "chaincode": + "5ffc5476718ca61dab0ff2f06c51092bb4aaefc6eceef934bddc96f752044952", + "index": 0 + }, + { + "public": + "xpub6CsBbX3FS6vJjXjVvtvDmrGXe4fwqXgfs81HQiKTtjA5YCoyqBiQJ7m89mUweuWhD7TMSrJ47diqBSFcAR3CxTHvfNLvehwu7QEPaxJwbMe", + "private": + "xprv3SGcTnYMakYuoha85ZszkK2Pz9YZvSuvNy3sRSu7XwA9ayZZscZDz8PMTHM42EDNuTgeAQvaz1FMNWarnWNzD3tV3MpzC1rfQbUgiESYtkM7JyDs2Gn3vuMRn88BHyiWDcFyR1jzimUSpUk5GpExjPP", + "finger_print": "a52c129a", + "chaincode": + "e8c4aaac4cb18f55dd46ff39e8c4fb8b11721e2edba1205ebcd160531a2157f1", + "index": 1 + }, + { + "public": + "xpub6FJMTyHLo55314rKiPC5qzFYbeLDNBtN9LmKRFJubX83dzvQuvWj4dxidXuKeGBLYmKassQu9gX7acAQTcPGJSMhZf4qP7ssHR3AoZeMv6e", + "private": + "xprv3SzYmVvfr7HwDLFKGY4NQ6uMT3Nht9h3g26iBoynQ8JcpscbfUuSHe43nmACdzi8FeoH2zPgP2j66ZC9wxXvR1owbShH8v4N6gQFLgXpRrVfXuaj4WDfaeSAtkzc3JSmS6TDvx7FH6g6mYdE1zdYyfk", + "finger_print": "f050f084", + "chaincode": + "c78aa9c3d2edc0fd667ed53ce231d93e2f4f45b08b2b016fc300ce07222c6c56", + "index": 2 + }, + { + "public": + "xpub6GKiBQ1YMYuhGt4L7tUT6qbCDHj1D8cdowYZsju1QkZF9ohQ7kHxK8bcF1npYPm6dpT7qPv2Z2ZCsDBbpa63NYaCg917vrWywzU9Nc3B4cx", + "private": + "xprv3TJBU5tQBxeEuVj211iWNzuQQTsQsnqah71aHAc8qswXBVTpptMQYxmcSEMnot1oYpWvdaBKn9FG2eUVVhU3QirmqXi8BcBCC5KpixQrzb8ZtqpCe3BvqS58v74L8Ht3svac6DLj8wRJ5Qwcxg2Y3Xg", + "finger_print": "7b8cfa9c", + "chaincode": + "30289ba575bb264f16d71206168665b386f3273a2f5cb48ef1e84a8aeffb14a7", + "index": 3 + }, + { + "public": + "xpub6Jf17s23NT9yBNuq3BDLCUUzjyi4qrExueq1sKqw7QLwUgATG9enjtQvyqKZCoDA19SdCKcJ1d9BdUTbobmFJJeTCHPYUGnATu4DNJ7fFYq", + "private": + "xprv3TzNVhQnooMqUVJwFUvJBdGKKWA8VMHuPwTT395vv8UnvpK6MxLZbMKfCrNMPuSifU4bV4p9xd9WrL6Yh7yS99TaZDTqAYKUhyeMJQwZnJ4os7SnmMMJDF1rGyKnjQg1wqykffGqQwSfPA6ABRWCViX", + "finger_print": "b8e80762", + "chaincode": + "b8013b8ed7077d390db971fa7b0ca5f25084f5c2b31825e60cf481a02a5a977f", + "index": 4 + } + ] + }, + { + "public": + "xpub69kQavJEnS1Dcj5ymi4Yjoc6V49YENTkDEJcUjUzTHohqXfq2Gkn7uu2xB7XHRwveZok6QRsB4xaM3EzS5tugNDASrb9sVQzYxcbC4sED8X", + "private": + "xprv3RLumGFkRXsdfimaAkUeEsUQwXunHstB4U1qsb8Gj8N4pq56Dy9kuJL29mv9tuR2AkrJHaDgtbK7KefHUoNfibvdvNNP2amUNWN8DgeFiGyL56xZwxC9ombFDCRWGn3qwVCqaVehmZ2rXC9irPBqnbm", + "finger_print": "fd1fd49b", + "chaincode": + "e1dca4cf65015ea18c341094300936cba786fb8d6b2050f9af8e771a4b342ee2", + "index": 2147483651, + "child": [ + { + "public": + "xpub69n8gpZVTYVSdi32hsYdWRWZUxaj7SKKWQPxBdNQmYJSfYEm78GM3iqgGiJiLTyobP7WcTcJctr1wgxCPYe7LgnMkGXgDpHKRray25XGLbL", + "private": + "xprv3RMRVybsBkg9aehqu7ujCzKTb5jFTz75JtndsDoyiWxrnEay8mXZjaNk47efWwHkud9gUTweLoqDP1mRmdSTxHR7UfsyRVXNHLKF1TAv4367bu7fjexrqEwWJ6k4yZrYdCopCyooEr7TaqxjZm8xXhY", + "finger_print": "012c3b1d", + "chaincode": + "4ac42342d07d8eb8f363c4e8f7951a981835626e986f5d6ad11dd36a9babeb1a", + "index": 0 + }, + { + "public": + "xpub6BgH7rezTMdrk8jMhhei7gVoeh3NQa1bnv3aVyU3vNs38bDxJ6QyoFppsjiv9HTYUFQkp3FSsTConH8NRsAeAekSK4xygYRvSYHVBrCziaj", + "private": + "xprv3Rv9G6GSb6CrUhXD5yD1p8BqZn5ugvwrZSPzYC6bNooBs1GKb4PFSP8w3uGt5YA5MoH7VJHz5YoQExRoxqpDD9eJiGHWdw45HgNRsuMyFosw6Rj2tcepBcwQe3Vvrzm4ipxEonivXV7kNwAKzqvKm71", + "finger_print": "038aaaf6", + "chaincode": + "0c75f4f420f255f69a59e630fb7cb575fc85ea5a00997addc03b7af1f2629639", + "index": 1 + }, + { + "public": + "xpub6ExKWzUwTpqNHPCR9i2kCrx7kgJXv3HEiUJ7CTWZEFzNi3dG9R1LZTUb17J1UBt1ZuTWvx6GXLLKuYFaxJ93Q4vN383Hc5Smw7YBirhTxT7", + "private": + "xprv3StbbbvdLAE3KWGJ8YyicU1bQ1BYYnVLgZr6BZsP7QK1t6rLi9dsAKr6XiL1mPcT7zksc2rnRkhbaDADZ1ZSN8NyQra3A33EMeKGjCcdpg2ED1pY4rgJNVjaviMRAcETSdEDFXZ1Utct3d7zWmetFyc", + "finger_print": "c152bf10", + "chaincode": + "89b63678564302e9ad9dce132daf26b9e4be5fe4bb2ce5a3df1fb1ce8526dcd1", + "index": 2 + }, + { + "public": + "xpub6GT8HWCWDgHjgzXDEeTwEV8jQ2VdsWLa6XbT5HpytTxk62JK8rYHDha9k1BfJYi5AcgpdLtkNLcyjxJzeAzxqWt4Fr8RiyPKhcVejP6AhXo", + "private": + "xprv3TLPEdJJe3Pn74KpzaMah14T56xCYvg7nQ8Ra2DJaZdb9jjvWQX46hzzURaF3WMusBFE7hVPXJ6WFJbRjwQKwUu6DVZfd1JvgoVTk34BUvfJe5nDp849EDYoQzBod2Tj73ZJat6t7Mq4hURDgo54JEF", + "finger_print": "8cf20fad", + "chaincode": + "56c028209d0a33c56904a587a8be4229b45b4d583ecf201a76c082d01a98163f", + "index": 3 + }, + { + "public": + "xpub6JrDb6cqthoPoe1Jo8ZQLaTK8AsBdcPhUzi26TMMKyU44WRzP9htFRMo4vNpFhVDC9gUHdhRovK7YajQ9x4Nkhvab7qwdGYLXbaVnzjNhV7", + "private": + "xprv3U3hj2XaC595WKrsZwvuuyaACQXKrpW4QWLKrcLFGAzWaDojt4ANxSdWAj7LZuCSD8ELeLqkmLD8pJ8WAccwWMWa1i61WQS4mNXP6mPtaiEbZDiPX5Z89zskA8uzvn1MxhmUAsCZqjpA8q7QyT66mZy", + "finger_print": "d336a564", + "chaincode": + "d24b38ef79794671d970d44811a98f6f0d4417f2b58ce160592abcb96975070f", + "index": 4 + } + ] + }, + { + "public": + "xpub69kQavJEnS1Df4vDcMN9EshoDirQuCmcQW8nX83DAhaC7k7wCRFWe7gHuGXHLRxybmBVF1ZR6Fh95TL2w6jEpmGS6nwRXQG6q5XeDGUH9y3", + "private": + "xprv3RLumGFkRXsdgR7u4RVhhZPoEWJkPEKVgU8e4WENcZLm1ikEztp5PvmtqpA7qwGEM1QqXDUSoUEX39VvQjZoE6VBcc6VrgsLJUUdYYHQiJMUmsNPq5xs2CwqoK1TiDb5zddiMFqvTsRrYdpbqvnH9Nd", + "finger_print": "fd1fd49b", + "chaincode": + "cd16b7c51505a4cc3c48f77147d28b5e2ce0378619f45668ccadf9b293dbd9d1", + "index": 2147483652, + "child": [ + { + "public": + "xpub69wDHRNThu2VDHRKRDbFHmJA7xn3BCbvjB8RVdpSF43ZKc9cpdaCustFqoVF2WgpbEjzeKSrSVzMdY1c2MCtiJR998Akxku74w9gM9xQn71", + "private": + "xprv3RQ7w2MLuqsudESvL7HGLDbjo4JjTJzw4mGK3Botap1ViPbr1ESVqKsPvzhazHbuo12tvJAc791yNosqt4KcUQkkoS4y1Bcrx3PkiieuohQZGiPH3n8kFSzQtFg79rWGCRpknxQKgXKG48MRnAnwMfx", + "finger_print": "16785529", + "chaincode": + "488998573163a68ff49c2f108b9988bae4d352b4e9bd1984bb287b246ba08110", + "index": 0 + }, + { + "public": + "xpub6CvvU3CGCwFaqiEciGXBK6tUmbDA2wTLwdvhMBQYME2NbGJv6jMxFBq5uFvjkzPT9strUwK5LtCfNYkLPKWVD7CMm2B5xLrbD585DBsDfXN", + "private": + "xprv3SHitPPp8F3tbWZgiwsrLzf3WoKEusyv4KcCu6Wvu5UAUsFxW5fGb1W6T92Zqi38nD6eLoNyhKtcSQcfgYcDYxPM4ticZic3TJziTYeX6vbJNH1aRKXb7A7iC5XmPd6nmXv3UvgNQkJDnfHWAGaZzru", + "finger_print": "adf170c1", + "chaincode": + "eb3b47e297b240d058dd0becccacc130c1508ab493f463391c73d29f872d0477", + "index": 1 + }, + { + "public": + "xpub6DfUf4gwH2Drsy6eAEapN2u8Vm3pX3zvmfovfPzEX8D5ziJTkxwZ8fVWSZCGQXq4afXhWjkht8fk1dR5bEWFGg74mwebksbUg9DnpVA6AkE", + "private": + "xprv3SWN6K4kZvbk9ghcXFzBeNRxdGVZpBBUkJqkJ8MkBT5Wy8CKPjUkCuqpixBvKiAkt3evYiF3rHApcRu8RxhVoWpTZ9uYgEGqyvWyXQbDUafMyKKywQ7jTMQrg9ErRXeWVe9CXDscWekPFGBihWCEL6o", + "finger_print": "11c3c5ec", + "chaincode": + "c90d398e2f4f31e15f70469a89d0222dad69a1e859bc553e1220a5c89d72169a", + "index": 2 + }, + { + "public": + "xpub6FeJbJ21VgvSBh72GAu7NLtUmeT9YQd12RiTFh4LG7yufSNvP3sY1wJWeKuKpCsgSbJRBuDvj6b4ajVVqPSTroRqSsHFNZ9hCC2KJRFhTAg", + "private": + "xprv3T6UWKZWa1vnYdDtkdsf56dkZ5bC6V83wBCAbdhbZury5jo6whNESmxtHK4ZtoDXjNRa2w3WJdhNEphwA33bRgXP8XyniEMFzv9i3cbSCreLbT3ERJ5tk6H4Kd3GVgpCB44AAxn2z5orYzPVUwcTGKN", + "finger_print": "1f1d3637", + "chaincode": + "116e60c4a812999990e04978c571eeea73c4c8c8d81414b935229c27ed331b50", + "index": 3 + }, + { + "public": + "xpub6JPSu3HHrd72UWxavdQAj3CSCetW2eC34ByhfoxA8HncmgzTon37quEEbFtV3cSsZHG9zmuA57ZjJXamkMkh8UadxpQTHeUdGB3buJoojCU", + "private": + "xprv3TukUnnCBsPmhMDajd2P1zc2pdZF9Qp52WJywf5DC5meE13D6Gsfg7JchPBvi9Ca5qwEUer3rgvmsGXV9td8LVTwB8MvqZkX3QvQ2TAWqm11Xkjw2Su78iaRCKRKG6uSAHpn2vNrwXUqnc5At7NgoTa", + "finger_print": "946ae8e1", + "chaincode": + "b4f26a82b1efc904bbfaa57554bc62808c8682d90e4f941f5e75f2536bc68a57", + "index": 4 + } + ] + } + ] + } +]; diff --git a/example/lib/test/cardano/byron/byron_lagacy_test.dart b/example/lib/test/cardano/byron/byron_lagacy_test.dart new file mode 100644 index 0000000..0c9cd05 --- /dev/null +++ b/example/lib/test/cardano/byron/byron_lagacy_test.dart @@ -0,0 +1,39 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/cardano/byron/cardano_byron_legacy.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:flutter/foundation.dart'; +import 'test_vector.dart'; + +void byronLegacyTest() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final w = CardanoByronLegacy.fromSeed(seed); + final masterPrivate = w.masterPrivateKey.raw.toHex(); + final masterPub = w.masterPublicKey.compressed.toHex(); + final chainCode = w.masterPrivateKey.chainCode.toHex(); + final hdKey = w.hdPathKey.toHex(); + assert(masterPrivate == i["private"]); + assert(masterPub == i["public"]); + assert(chainCode == i["chaincode"]); + assert(hdKey == i["hd_key"]); + for (final c in (i["child"] as List)) { + final firstIndex = Bip32KeyIndex(c["first_index"]); + final secondIndex = Bip32KeyIndex(c["second_index"]); + final cPrivate = w + .getPrivateKey(firstIndex: firstIndex, secondIndex: secondIndex) + .toExtended; + assert(cPrivate == c["private"]); + final cPublic = w + .getPublicKey(firstIndex: firstIndex, secondIndex: secondIndex) + .toExtended; + assert(cPublic == c["public"]); + final addr = w.getAddress(firstIndex, secondIndex); + assert(addr == c["address"]); + } + + if (testVector.indexOf(i) > 2 && kIsWeb) { + break; + } + } +} diff --git a/example/lib/test/cardano/byron/test_vector.dart b/example/lib/test/cardano/byron/test_vector.dart new file mode 100644 index 0000000..9389dee --- /dev/null +++ b/example/lib/test/cardano/byron/test_vector.dart @@ -0,0 +1,3092 @@ +final List> testVector = [ + { + "seed": "f340ecbb7823a43f746a0902ac07dae6c9851d28af2939bab05813a147d526a9", + "private": + "80cffcb62747adc43d6f0e75b57db981591fd832fc25176900eeb44a25a82153653858cf022cee7f11b5147ab49602c2d93269169db8f7e97a5ab6847ed9c53e", + "public": + "00c9123a648cce0bff7c156d0b35c42aee69c157ed595cae6c0a326d1fa87f1c62", + "chaincode": + "2089ce36de8e53c846cfea4140a01da5fd8be25c06532a1213c8ba7067f2073f", + "hd_key": + "950163bbc5bc5cb6767222a8682b166eaf9930e5efed358a5bd457a5cf2a293a", + "child": [ + { + "private": + "xprv3RaogguvnEj76puqbeKR6VC1rtbMrgM3A4yHqJ3Zq1r8hTFErXH6DtbuGeJCdoha9iWXTQeixMzWAKVYbDUkVZo7MQQDFkauehSCkXXrMdtQkVdKbLd6p1fvCuTAJf9PZ9CT9DLaiYAM8FdwHFnzy7h", + "public": + "xpub6AZBZKEwYoDk2Gn2qnQMkMvUFgKmAEsoUdqBAGvy1Rqxm6g4axPrP6xN89G3q57nqJbojM9UhCrkdJjHYYG94L7ansmRJfa7h25Do9Yo9Tq", + "address": + "DdzFFzCqrhsxBKsA1NQQDRgBU4ZYu4fWADPKGZN1xryCAqjc4DCmouzpxiji37hkziKkZSeTqkJTwQhhmSuBUavBEo4tNzaCiiWxymV2", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RaogguvnEj77HnEa9CMzCG8oXhcJQCw63C9s1i6fyD1VLwuPZUMGrzpvW7BoJmvArnnpByUnYp6H8PAUG9Kp7CfJi8bEmmzFs1P3CnkHpTdj3hdnctYPT2S3cJzZp4nxLR4T3N2LAPtuBqeChHG76Z", + "public": + "xpub6AZBZKEwYoDk3qE4X6EuJ26ikzrnBiBtiotdo6NWgp3HAiv68kQT6HYA6MKds3nQWVDrzTzN2kpDTH1pepoTwSbBssZvZWfF96sDurT9ra9", + "address": + "DdzFFzCqrhshmftHZVFHmv4VAguXqP84ec5w8VzrgwveBupxvWb6U9bQdZjEJbVcnCHnU3c2paBnpB2W5BgQHuoRnoMUrm1YMHp2J6Py", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RaogguvnEj788hPtkcjxt6M9haTk2RkfQxhY7p6Q5uWuu6zRmYwSUsFb4owW52L73PAGZ5zkt4RuNNvh4eGL2H4fj2UFgpJfmc8F9JwSunXf9JQNnwVTBrGsf35wRZTjR7ETFkLNbTdBpGqe8uAcXx", + "public": + "xpub6AZBZKEwYoDk6fto7FkMRZgfnKyreWE95X1PBokEyt6aCqMZ7YJZww8frUakx5SrVnLB5d2eMmfhG5vSShFbhE5d31kaMVxpbrq2DxyugZq", + "address": + "DdzFFzCqrht4Artj5x5VnmhhEnTHGS7TprcuAnQab6WDrsUzcY6hiFRm1oa1iggsmeKn8uSkfrccuLb3pBEfs2sRRQk11icL8s2pdXSd", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RpWriyjX219uVnPGWi76NBFAH6z95AAhmJHYfwAPrNEcFvfFU9Ks4eTvYpXdYsgPtFYs586cdWW146K1m1nwnDt579D43Hb79F88hUt2ZpTjryUuj3HQLg8pgb3mGZnjT5JweBomjsvntcCmGDCkKP", + "public": + "xpub6BMLMCF6U3CkTjGdZtPwdd8pLS8MxaSQMCQkZeDjVzLx5vsFjB8GayBctQPBwebYWWW4pAiQm7fok75uXKHhPF5VyxYGHUhwM43mTgGLmMu", + "address": + "DdzFFzCqrhsfGkBsktnxcuyjWAvhA4QGf3bRNkrFuzE4ZUD4ryWjBCVvm3R37BLyfP2mmLZURfXGP6H1QCWeWGqxSEQjX2nNCakDWuSy", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RpWriyjX219umV622Ew2ufMihYq1A6JgkSSUr88JkKppLo17J3chpt6v1a9zLokuL9F7g9XrcvY2kvDR7iJRWC63ggQ67XNsKpfm7fvbnTDBkBNWhn3ZDKViVPfUcvdZ66rJsCFmxShrt3CQ86UWxF", + "public": + "xpub6BMLMCF6U3CkUe8L4cM5YwkMbp7QY58xA26k5J6g1yAbveFhgzubKmaKj1EY7cYMdZd7HLV2HusdyNyTqjH3yoZLW1h7LrKjBS8JN6wxuMb", + "address": + "DdzFFzCqrhsykztkLFvpfU5HD9owuBJjgYyvAjByLM9kxwfmKQndJnCKHXzYzHW66DB6PywGGUqdApRz6cF8AkH3qxWPNjeb4nKxSKg7", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RpWriyjX219vao93fiTs2Eu4Qs2osXR8sVvP1D3637mmx4UZtDb9G4GogB2muuorgfAxrEzt8tJoXq57CyqhfkrBfok9KiyKKwzEwqBps569n9vHVxYt4KrTWtnP8FuVu8wGrzN3e4fCCJpD6AGRAH", + "public": + "xpub6BMLMCF6U3CkXPPdeUxC48UnPJbH6C28nkYSYdQ5HECg5tmnQmQquJbQt2znhB9rFwG5FPPBogMwEmQGYysKozULy4ihWhpMwmx9psNYcDm", + "address": + "DdzFFzCqrhsq5hWoEYsjSEE7sirKFhnvG4kG8k82buoynrRBBcoH4hF662fooGSu6TLWKAsYXjAnD7R4WuGZvy1UYvuu6SsqRBaTiejP", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RbAa4WXquXM36nHwAEFbqgZD1xKZRN21nf2MwNpY1yoQHTrBvRRBpdh2dtCvbALbH99HqFzdSFWErj8CaxHfhZpJLHwz5cTNtHTEuYFtVM9ieyJEtBCd8gagKuk756PS5Ff8NsDKhsm9WURxQiS1aZ", + "public": + "xpub6AaPsA8J6hh5RoZFwfUoBFkvY66KqxhsGF1eJU2tfKLEg6vMvzq4sfVDSnofzrHPAVu4mZWqjYQ39TY8eniLhodTKRnRjaGiqgnuAP9B85L", + "address": + "DdzFFzCqrhswYdDu7ZNS1P3BJopJ6M1V2mptxuXUKKQc3TgDNcBDbc2X4xgFdxsoguLfnUp3y8onJhRWsts2nDc7iJHdViss2NEk6gCX", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RbAa4WXquXM4AJnVSdT5svbKkaPffuy4huu1Fhw66vdkCcWDapV7RgkCN7Hu5zsTCtzwT7YYu7gBmW4tK7AXQkwFTE8mQWM8g2iEXX3BwwrM5YwXzhrMZx4DopNqQczNFqRE7TPXeCiwBxtNyG269r", + "public": + "xpub6AaPsA8J6hh5VNfsgAmdUHCtSc6kNsAF6Jtmz6p9XDUKZ1t7ZhRytHuuFjVUT1iWL6dUEpRFHcrEPKdS2PKgdQj3AFdhxQQENCzjwWxvzxv", + "address": + "DdzFFzCqrht4wdU2vAKzd7GGB1y2rhyHp4ewfXh6LWj3DpkpjuyEJQ8jdiJyMmwDzoe3mNdgL3XdGDDudPwFSscVEVG43aN7yagAH3Ek", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RbAa4WXquXM4gtLJMNE7yQBMBpqnc34ane6G72U9dcRNUbKSmcmWBJ4jKfrswM5Wz2vaRF1RmUjsjMDj3iQfibC727u12tnE9GJT85TFi6Azq14AB4ZudsZjppibsJhLCshPrUvmofynRgkp7muTKh", + "public": + "xpub6AaPsA8J6hh5X9cArbjHp8paSKGmXy7WaEbpedhPRxSChuCBUTwZiEYxMh7H6Cf4Y7iNht94AmrywAtyvBcsRTdGLFBrdviSKWWBxjVWHdS", + "address": + "DdzFFzCqrhspNbavvTZ2wwhP6QiQmm8DygR7ptezoLynkTsSkXz5yYzNJRRebECkPyCqka2gGzCbLyiwfS6Z4W9xuLZZFj2DASxCCxcC", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "f340ecbb7823a43f746a0902ac07dae6c9851d28af2939bab05813a147d526a9", + "private": + "80cffcb62747adc43d6f0e75b57db981591fd832fc25176900eeb44a25a82153653858cf022cee7f11b5147ab49602c2d93269169db8f7e97a5ab6847ed9c53e", + "public": + "00c9123a648cce0bff7c156d0b35c42aee69c157ed595cae6c0a326d1fa87f1c62", + "chaincode": + "2089ce36de8e53c846cfea4140a01da5fd8be25c06532a1213c8ba7067f2073f", + "hd_key": + "950163bbc5bc5cb6767222a8682b166eaf9930e5efed358a5bd457a5cf2a293a", + "child": [ + { + "private": + "xprv3RaogguvnEj76puqbeKR6VC1rtbMrgM3A4yHqJ3Zq1r8hTFErXH6DtbuGeJCdoha9iWXTQeixMzWAKVYbDUkVZo7MQQDFkauehSCkXXrMdtQkVdKbLd6p1fvCuTAJf9PZ9CT9DLaiYAM8FdwHFnzy7h", + "public": + "xpub6AZBZKEwYoDk2Gn2qnQMkMvUFgKmAEsoUdqBAGvy1Rqxm6g4axPrP6xN89G3q57nqJbojM9UhCrkdJjHYYG94L7ansmRJfa7h25Do9Yo9Tq", + "address": + "DdzFFzCqrhsxBKsA1NQQDRgBU4ZYu4fWADPKGZN1xryCAqjc4DCmouzpxiji37hkziKkZSeTqkJTwQhhmSuBUavBEo4tNzaCiiWxymV2", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RaogguvnEj77HnEa9CMzCG8oXhcJQCw63C9s1i6fyD1VLwuPZUMGrzpvW7BoJmvArnnpByUnYp6H8PAUG9Kp7CfJi8bEmmzFs1P3CnkHpTdj3hdnctYPT2S3cJzZp4nxLR4T3N2LAPtuBqeChHG76Z", + "public": + "xpub6AZBZKEwYoDk3qE4X6EuJ26ikzrnBiBtiotdo6NWgp3HAiv68kQT6HYA6MKds3nQWVDrzTzN2kpDTH1pepoTwSbBssZvZWfF96sDurT9ra9", + "address": + "DdzFFzCqrhshmftHZVFHmv4VAguXqP84ec5w8VzrgwveBupxvWb6U9bQdZjEJbVcnCHnU3c2paBnpB2W5BgQHuoRnoMUrm1YMHp2J6Py", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RaogguvnEj788hPtkcjxt6M9haTk2RkfQxhY7p6Q5uWuu6zRmYwSUsFb4owW52L73PAGZ5zkt4RuNNvh4eGL2H4fj2UFgpJfmc8F9JwSunXf9JQNnwVTBrGsf35wRZTjR7ETFkLNbTdBpGqe8uAcXx", + "public": + "xpub6AZBZKEwYoDk6fto7FkMRZgfnKyreWE95X1PBokEyt6aCqMZ7YJZww8frUakx5SrVnLB5d2eMmfhG5vSShFbhE5d31kaMVxpbrq2DxyugZq", + "address": + "DdzFFzCqrht4Artj5x5VnmhhEnTHGS7TprcuAnQab6WDrsUzcY6hiFRm1oa1iggsmeKn8uSkfrccuLb3pBEfs2sRRQk11icL8s2pdXSd", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RpWriyjX219uVnPGWi76NBFAH6z95AAhmJHYfwAPrNEcFvfFU9Ks4eTvYpXdYsgPtFYs586cdWW146K1m1nwnDt579D43Hb79F88hUt2ZpTjryUuj3HQLg8pgb3mGZnjT5JweBomjsvntcCmGDCkKP", + "public": + "xpub6BMLMCF6U3CkTjGdZtPwdd8pLS8MxaSQMCQkZeDjVzLx5vsFjB8GayBctQPBwebYWWW4pAiQm7fok75uXKHhPF5VyxYGHUhwM43mTgGLmMu", + "address": + "DdzFFzCqrhsfGkBsktnxcuyjWAvhA4QGf3bRNkrFuzE4ZUD4ryWjBCVvm3R37BLyfP2mmLZURfXGP6H1QCWeWGqxSEQjX2nNCakDWuSy", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RpWriyjX219umV622Ew2ufMihYq1A6JgkSSUr88JkKppLo17J3chpt6v1a9zLokuL9F7g9XrcvY2kvDR7iJRWC63ggQ67XNsKpfm7fvbnTDBkBNWhn3ZDKViVPfUcvdZ66rJsCFmxShrt3CQ86UWxF", + "public": + "xpub6BMLMCF6U3CkUe8L4cM5YwkMbp7QY58xA26k5J6g1yAbveFhgzubKmaKj1EY7cYMdZd7HLV2HusdyNyTqjH3yoZLW1h7LrKjBS8JN6wxuMb", + "address": + "DdzFFzCqrhsykztkLFvpfU5HD9owuBJjgYyvAjByLM9kxwfmKQndJnCKHXzYzHW66DB6PywGGUqdApRz6cF8AkH3qxWPNjeb4nKxSKg7", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RpWriyjX219vao93fiTs2Eu4Qs2osXR8sVvP1D3637mmx4UZtDb9G4GogB2muuorgfAxrEzt8tJoXq57CyqhfkrBfok9KiyKKwzEwqBps569n9vHVxYt4KrTWtnP8FuVu8wGrzN3e4fCCJpD6AGRAH", + "public": + "xpub6BMLMCF6U3CkXPPdeUxC48UnPJbH6C28nkYSYdQ5HECg5tmnQmQquJbQt2znhB9rFwG5FPPBogMwEmQGYysKozULy4ihWhpMwmx9psNYcDm", + "address": + "DdzFFzCqrhsq5hWoEYsjSEE7sirKFhnvG4kG8k82buoynrRBBcoH4hF662fooGSu6TLWKAsYXjAnD7R4WuGZvy1UYvuu6SsqRBaTiejP", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RbAa4WXquXM36nHwAEFbqgZD1xKZRN21nf2MwNpY1yoQHTrBvRRBpdh2dtCvbALbH99HqFzdSFWErj8CaxHfhZpJLHwz5cTNtHTEuYFtVM9ieyJEtBCd8gagKuk756PS5Ff8NsDKhsm9WURxQiS1aZ", + "public": + "xpub6AaPsA8J6hh5RoZFwfUoBFkvY66KqxhsGF1eJU2tfKLEg6vMvzq4sfVDSnofzrHPAVu4mZWqjYQ39TY8eniLhodTKRnRjaGiqgnuAP9B85L", + "address": + "DdzFFzCqrhswYdDu7ZNS1P3BJopJ6M1V2mptxuXUKKQc3TgDNcBDbc2X4xgFdxsoguLfnUp3y8onJhRWsts2nDc7iJHdViss2NEk6gCX", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RbAa4WXquXM4AJnVSdT5svbKkaPffuy4huu1Fhw66vdkCcWDapV7RgkCN7Hu5zsTCtzwT7YYu7gBmW4tK7AXQkwFTE8mQWM8g2iEXX3BwwrM5YwXzhrMZx4DopNqQczNFqRE7TPXeCiwBxtNyG269r", + "public": + "xpub6AaPsA8J6hh5VNfsgAmdUHCtSc6kNsAF6Jtmz6p9XDUKZ1t7ZhRytHuuFjVUT1iWL6dUEpRFHcrEPKdS2PKgdQj3AFdhxQQENCzjwWxvzxv", + "address": + "DdzFFzCqrht4wdU2vAKzd7GGB1y2rhyHp4ewfXh6LWj3DpkpjuyEJQ8jdiJyMmwDzoe3mNdgL3XdGDDudPwFSscVEVG43aN7yagAH3Ek", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RbAa4WXquXM4gtLJMNE7yQBMBpqnc34ane6G72U9dcRNUbKSmcmWBJ4jKfrswM5Wz2vaRF1RmUjsjMDj3iQfibC727u12tnE9GJT85TFi6Azq14AB4ZudsZjppibsJhLCshPrUvmofynRgkp7muTKh", + "public": + "xpub6AaPsA8J6hh5X9cArbjHp8paSKGmXy7WaEbpedhPRxSChuCBUTwZiEYxMh7H6Cf4Y7iNht94AmrywAtyvBcsRTdGLFBrdviSKWWBxjVWHdS", + "address": + "DdzFFzCqrhspNbavvTZ2wwhP6QiQmm8DygR7ptezoLynkTsSkXz5yYzNJRRebECkPyCqka2gGzCbLyiwfS6Z4W9xuLZZFj2DASxCCxcC", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "f340ecbb7823a43f746a0902ac07dae6c9851d28af2939bab05813a147d526a9", + "private": + "80cffcb62747adc43d6f0e75b57db981591fd832fc25176900eeb44a25a82153653858cf022cee7f11b5147ab49602c2d93269169db8f7e97a5ab6847ed9c53e", + "public": + "00c9123a648cce0bff7c156d0b35c42aee69c157ed595cae6c0a326d1fa87f1c62", + "chaincode": + "2089ce36de8e53c846cfea4140a01da5fd8be25c06532a1213c8ba7067f2073f", + "hd_key": + "950163bbc5bc5cb6767222a8682b166eaf9930e5efed358a5bd457a5cf2a293a", + "child": [ + { + "private": + "xprv3RaogguvnEj76puqbeKR6VC1rtbMrgM3A4yHqJ3Zq1r8hTFErXH6DtbuGeJCdoha9iWXTQeixMzWAKVYbDUkVZo7MQQDFkauehSCkXXrMdtQkVdKbLd6p1fvCuTAJf9PZ9CT9DLaiYAM8FdwHFnzy7h", + "public": + "xpub6AZBZKEwYoDk2Gn2qnQMkMvUFgKmAEsoUdqBAGvy1Rqxm6g4axPrP6xN89G3q57nqJbojM9UhCrkdJjHYYG94L7ansmRJfa7h25Do9Yo9Tq", + "address": + "DdzFFzCqrhsxBKsA1NQQDRgBU4ZYu4fWADPKGZN1xryCAqjc4DCmouzpxiji37hkziKkZSeTqkJTwQhhmSuBUavBEo4tNzaCiiWxymV2", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RaogguvnEj77HnEa9CMzCG8oXhcJQCw63C9s1i6fyD1VLwuPZUMGrzpvW7BoJmvArnnpByUnYp6H8PAUG9Kp7CfJi8bEmmzFs1P3CnkHpTdj3hdnctYPT2S3cJzZp4nxLR4T3N2LAPtuBqeChHG76Z", + "public": + "xpub6AZBZKEwYoDk3qE4X6EuJ26ikzrnBiBtiotdo6NWgp3HAiv68kQT6HYA6MKds3nQWVDrzTzN2kpDTH1pepoTwSbBssZvZWfF96sDurT9ra9", + "address": + "DdzFFzCqrhshmftHZVFHmv4VAguXqP84ec5w8VzrgwveBupxvWb6U9bQdZjEJbVcnCHnU3c2paBnpB2W5BgQHuoRnoMUrm1YMHp2J6Py", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RaogguvnEj788hPtkcjxt6M9haTk2RkfQxhY7p6Q5uWuu6zRmYwSUsFb4owW52L73PAGZ5zkt4RuNNvh4eGL2H4fj2UFgpJfmc8F9JwSunXf9JQNnwVTBrGsf35wRZTjR7ETFkLNbTdBpGqe8uAcXx", + "public": + "xpub6AZBZKEwYoDk6fto7FkMRZgfnKyreWE95X1PBokEyt6aCqMZ7YJZww8frUakx5SrVnLB5d2eMmfhG5vSShFbhE5d31kaMVxpbrq2DxyugZq", + "address": + "DdzFFzCqrht4Artj5x5VnmhhEnTHGS7TprcuAnQab6WDrsUzcY6hiFRm1oa1iggsmeKn8uSkfrccuLb3pBEfs2sRRQk11icL8s2pdXSd", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RpWriyjX219uVnPGWi76NBFAH6z95AAhmJHYfwAPrNEcFvfFU9Ks4eTvYpXdYsgPtFYs586cdWW146K1m1nwnDt579D43Hb79F88hUt2ZpTjryUuj3HQLg8pgb3mGZnjT5JweBomjsvntcCmGDCkKP", + "public": + "xpub6BMLMCF6U3CkTjGdZtPwdd8pLS8MxaSQMCQkZeDjVzLx5vsFjB8GayBctQPBwebYWWW4pAiQm7fok75uXKHhPF5VyxYGHUhwM43mTgGLmMu", + "address": + "DdzFFzCqrhsfGkBsktnxcuyjWAvhA4QGf3bRNkrFuzE4ZUD4ryWjBCVvm3R37BLyfP2mmLZURfXGP6H1QCWeWGqxSEQjX2nNCakDWuSy", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RpWriyjX219umV622Ew2ufMihYq1A6JgkSSUr88JkKppLo17J3chpt6v1a9zLokuL9F7g9XrcvY2kvDR7iJRWC63ggQ67XNsKpfm7fvbnTDBkBNWhn3ZDKViVPfUcvdZ66rJsCFmxShrt3CQ86UWxF", + "public": + "xpub6BMLMCF6U3CkUe8L4cM5YwkMbp7QY58xA26k5J6g1yAbveFhgzubKmaKj1EY7cYMdZd7HLV2HusdyNyTqjH3yoZLW1h7LrKjBS8JN6wxuMb", + "address": + "DdzFFzCqrhsykztkLFvpfU5HD9owuBJjgYyvAjByLM9kxwfmKQndJnCKHXzYzHW66DB6PywGGUqdApRz6cF8AkH3qxWPNjeb4nKxSKg7", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RpWriyjX219vao93fiTs2Eu4Qs2osXR8sVvP1D3637mmx4UZtDb9G4GogB2muuorgfAxrEzt8tJoXq57CyqhfkrBfok9KiyKKwzEwqBps569n9vHVxYt4KrTWtnP8FuVu8wGrzN3e4fCCJpD6AGRAH", + "public": + "xpub6BMLMCF6U3CkXPPdeUxC48UnPJbH6C28nkYSYdQ5HECg5tmnQmQquJbQt2znhB9rFwG5FPPBogMwEmQGYysKozULy4ihWhpMwmx9psNYcDm", + "address": + "DdzFFzCqrhsq5hWoEYsjSEE7sirKFhnvG4kG8k82buoynrRBBcoH4hF662fooGSu6TLWKAsYXjAnD7R4WuGZvy1UYvuu6SsqRBaTiejP", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RbAa4WXquXM36nHwAEFbqgZD1xKZRN21nf2MwNpY1yoQHTrBvRRBpdh2dtCvbALbH99HqFzdSFWErj8CaxHfhZpJLHwz5cTNtHTEuYFtVM9ieyJEtBCd8gagKuk756PS5Ff8NsDKhsm9WURxQiS1aZ", + "public": + "xpub6AaPsA8J6hh5RoZFwfUoBFkvY66KqxhsGF1eJU2tfKLEg6vMvzq4sfVDSnofzrHPAVu4mZWqjYQ39TY8eniLhodTKRnRjaGiqgnuAP9B85L", + "address": + "DdzFFzCqrhswYdDu7ZNS1P3BJopJ6M1V2mptxuXUKKQc3TgDNcBDbc2X4xgFdxsoguLfnUp3y8onJhRWsts2nDc7iJHdViss2NEk6gCX", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RbAa4WXquXM4AJnVSdT5svbKkaPffuy4huu1Fhw66vdkCcWDapV7RgkCN7Hu5zsTCtzwT7YYu7gBmW4tK7AXQkwFTE8mQWM8g2iEXX3BwwrM5YwXzhrMZx4DopNqQczNFqRE7TPXeCiwBxtNyG269r", + "public": + "xpub6AaPsA8J6hh5VNfsgAmdUHCtSc6kNsAF6Jtmz6p9XDUKZ1t7ZhRytHuuFjVUT1iWL6dUEpRFHcrEPKdS2PKgdQj3AFdhxQQENCzjwWxvzxv", + "address": + "DdzFFzCqrht4wdU2vAKzd7GGB1y2rhyHp4ewfXh6LWj3DpkpjuyEJQ8jdiJyMmwDzoe3mNdgL3XdGDDudPwFSscVEVG43aN7yagAH3Ek", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RbAa4WXquXM4gtLJMNE7yQBMBpqnc34ane6G72U9dcRNUbKSmcmWBJ4jKfrswM5Wz2vaRF1RmUjsjMDj3iQfibC727u12tnE9GJT85TFi6Azq14AB4ZudsZjppibsJhLCshPrUvmofynRgkp7muTKh", + "public": + "xpub6AaPsA8J6hh5X9cArbjHp8paSKGmXy7WaEbpedhPRxSChuCBUTwZiEYxMh7H6Cf4Y7iNht94AmrywAtyvBcsRTdGLFBrdviSKWWBxjVWHdS", + "address": + "DdzFFzCqrhspNbavvTZ2wwhP6QiQmm8DygR7ptezoLynkTsSkXz5yYzNJRRebECkPyCqka2gGzCbLyiwfS6Z4W9xuLZZFj2DASxCCxcC", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "90f4f9f2b9bcfb096e9a8ae89239463a87a1eddf378e504820ffe9f3aff8c59b", + "private": + "d07d001b07bc9924856f1c8676737fc28430b3d98ad36a12991d35b8d49790427dc5d5f74ba81d8acaaeb122d2750f0f913c5db929e8d68f64fe513afd3bc7e1", + "public": + "00c13d8f36996ce2316444098be8f52b57e5cf1a2eea99d263156f04072531abac", + "chaincode": + "b134d242ecb04c1aa820b4ce500c95ef946460406fb1fcfae7b823e4df851624", + "hd_key": + "c605550646c93323fdaaa77f6a184ab5ea7bdcf54877d386c6aa10d80c7f7e23", + "child": [ + { + "private": + "xprv3RSiegUH5fNUH7yiPJkNjobpsFsUiMmtyXK21safAHMpXx1hU4boFBPsVRSextfAWjHcfjwJV7wg4fFitifpo3kjA32yhDvVu56qYG6YqCKh8KX6nv3znqR6aUUyhkTqAbz6tbprSPKmn6JmcbQmyHu", + "public": + "xpub6A5xeTmjvZckuRXR9YsQASuNfqJEUDJKKmeYedwqz7MvAyWH7r7oj7nfStAdwLGkjXWgWAQcQMKZSfrpq4QjQMfXTfi4yUdFngziadqviiz", + "address": + "DdzFFzCqrhsoztHMrTJWrDpevA9od2oPPaJ4qbVomzHwyBzW3HMkA3RgHbfdM8EDR1vHQnQkznxHdWL3MQV8xRomjShQFov4cKTFvb2P", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RSiegUH5fNUHCFymGQfSiUBwoXHtsVY7iQ9sH79iKpH9GpReNji5GPAMpL377y3zdpX6uNAET6JsUjQu4veR7pTmMVHCKaWnpBsJ5KfPe9PMTWVdnG7SqQnR86BPpLNsq4SmGDXtM5fTjD9hqaPSqE", + "public": + "xpub6A5xeTmjvZckufw9n3t5RfgJtsytuPeBxQY2vk5uS9HVkWF6Ki7XZP1rSuyEz95ijB4WXPSEW8swXjs6pAWJrvrSPSTtgXJsgi9sMHjy2gg", + "address": + "DdzFFzCqrhszCH9N7XfMsmp7YPEwoVp2vEaSC3vMzXRQR2jNm6HzeT65iKeRLnP9SNJSLohMccnD6kZ5SHKMGgKpFbSdEPEfV8VoZncM", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RSiegUH5fNUJK1Gt1Cvn2noZqu2Bj6nnyyDfZUtrgt9sifiM9bM7SgaZg3f75vZYQdBTMz9ndoWJvhwovitRxcPvzLdenJsktvBba6q12hjcCFz7rC4idhmKrRATfgWCmHmadL5La2WPyHb6Xju8Um", + "public": + "xpub6A5xeTmjvZckyRtbtX7izGy25orptzy8GUykq7u9kngU7g7Acqnucz13sjj7PUKdoUfVTrvr9y6o1KtkGpMF5pBw69uSgT4NfSi3UhcdRXq", + "address": + "DdzFFzCqrhsshC7DKie55zLHp1DXzxP24pRt6aDAFNzqKDhYd2GUJLuLn6w1sXucg79SRmNZ4UjXnRSK8wgQbepBGB1QUXTWfzcFA2q3", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RNSjd514wR25VwDmB5zeJFDv89aNUsGpbr6YLvgMH74Mhv6dxJzqJaTKGrfUBmb2Sgeii1rjVGcfnWUkMgMh4QnLo57AduJEUc8wBNFYcMw2p8ntXLksHaD4SXZmWuCLGynPdzBY1HveXUNw3YCFNX", + "public": + "xpub69qa6Eeq6QqBZYJofcbCURJhEG641PhH2Yd1pP7UYa2EBcCEHZZepuGGce7kaC4Ao9drPhgecaKsT6mHd8xN5VPWc31Rvjm6J8ocMqoudkB", + "address": + "DdzFFzCqrht2Bpc6xzpUPsfgJd2k6N2FddbmggsJZJTksNPRGGDQSVWEX3pQKy9wwjEpRsc9a8hmaxwWM5ouSRV3BCnygUPAeEFqt2Y9", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RNSjd514wR26Ry1mN899xuqJdCz91Crr5gNm6ejMsWj2URL46k9icfyNmgGUdKzA5sXExzgAnP9jNnXJeiD6F3Vihn7JBCsT7m57du7Wi9MyrJeJrtQkUN7iYxjAGukoHJcZo2pqBmAqJP4BvPeoZL", + "public": + "xpub69qa6Eeq6QqBcgC6NxA7P8ihbsDvPeYx4PYgTwHchdaDJTz2M8FvwRLhyv8n7Wji97FLTL5ATLJHdCrZzxNanDSySGwb4QtJeXPrJX6wsGs", + "address": + "DdzFFzCqrht6p9bS9hYrn22jfhq8KP7JpnVTChai8etwisyvjSsTnKDkgsE2VE4sTYFEnwvrierm12XRgrZhkfT88uKs84XArLtvxysY", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RNSjd514wR26bc1nCvMLJwXz9Sc7dEdNAUdbs8hSEgHqfhhpPiq9JAhKKnuTSev5YNj1ETGsvfEj5WQJNM91wV4MPRv31oiqC9ZebdW8HL6J8UMPDRkewqGS4GKhS2K23rTkT5amEPhaLP79SK3tnj", + "public": + "xpub69qa6Eeq6QqBdEdrcHSAvmJXnKDe7nsTVjLQEwnB4N5juhsRHhNGkQ2oneFcTNhBSudTGKA9m5X7PqeWa43L8ZPfUSihyqNQ7fp7Ht5an5A", + "address": + "DdzFFzCqrhtAfi9R4uw6PFEdEmbTNfhVg7xHXT8BqMxtcdHtaGjaPApQXneV5dHS9tB3VqojvUJmetDzGoV5y3vGY1W2CT8AA7Jeg8sZ", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RZneFdGi19xujb1cFUVRFTjimrSbZJ5c6G2FtQG1eaamzgv6xgVksnZ1BvUArzPwVhxoupjA8tN4wbAWdRTVMdp9bqNvhN7byJG1ss9TF5kYa3si1WQdkWMtktUXptnKhiXmdvuGSLqH8XbUvojnTV", + "public": + "xpub6AVkodrPj7sTwTf8FCaCDkaCUk5fty9tmx6NFAcRb4wQUFFAcHCGJNEPJvjFfhi8raQkZ9XqD77xwyKwm9vrf1UowuqP6h4WPC8XRX2zeZ4", + "address": + "DdzFFzCqrht2MPshqHpdvrtT8m2XvBmBFSLLnhcwS2GbazNVaK66uB5iKwFBC4bh7MrxTx5o1r8e5qQCY93oFQadsyym3mdndZZx6SM9", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RZneFdGi19xvVdkHWyS1Ti3LT2HsRF5BnjQX34M7cMU3dnadgWgtv1s9LnQrWHXBbtqq9wN1u4Rr9B9sL8wkzDnphET4vRSQSfLf3pnCKrNjZYkqgBUi1mHEbLzr641CjUUFYvszdVZdTPEiagCnem", + "public": + "xpub6AVkodrPj7sTz1w8fvyng78WitCXFFFDsW83yAGwcvH2rBVhJBBkkY7LrMX1YQqKiwrso7q9fbFYHpakNhcWLHgKvjUfE8Bfd9modt2JtFA", + "address": + "DdzFFzCqrhsqHPdvX5Xr5i7E3jcSL2CKPBi4YMPQUihGSFpwYh3k8xmhfDzDGiQaMNhpKoMVyjuSuFnxBa7pZxjp7LWBaydLZ3scPFfY", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RZneFdGi19xvjhFkgmY4yy2kYK6Du6fTRSjqVvk4PGS6GeNZHbthbaiKw7MwYdbKKpg7RAq5s1SZnTwbwZm3zSPCUdUWWvMUKER3hu9Uv2euwHvjBUaxu4APY2ujMfQvAcjfBxeyXhBMfMfd1aHF35", + "public": + "xpub6AVkodrPj7sTzqGNsmfs9aq92QpeKdzqUhFE8o6BCzrdGRkJvEyMJfnn1oRNFGkZtt86FwKe8x5mdDXySj4M8GtVabGrAyjZvR7KhmdaMLx", + "address": + "DdzFFzCqrhtA1YSMH9WMMp9usKKPXt1HB83E5UVKStpNQkT47UTC4DCEk1F3d8HTHp2apNwZceUHxMvJizaAqQfjCzWcVAcYQRn9dMyu", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "90f4f9f2b9bcfb096e9a8ae89239463a87a1eddf378e504820ffe9f3aff8c59b", + "private": + "d07d001b07bc9924856f1c8676737fc28430b3d98ad36a12991d35b8d49790427dc5d5f74ba81d8acaaeb122d2750f0f913c5db929e8d68f64fe513afd3bc7e1", + "public": + "00c13d8f36996ce2316444098be8f52b57e5cf1a2eea99d263156f04072531abac", + "chaincode": + "b134d242ecb04c1aa820b4ce500c95ef946460406fb1fcfae7b823e4df851624", + "hd_key": + "c605550646c93323fdaaa77f6a184ab5ea7bdcf54877d386c6aa10d80c7f7e23", + "child": [ + { + "private": + "xprv3RSiegUH5fNUH7yiPJkNjobpsFsUiMmtyXK21safAHMpXx1hU4boFBPsVRSextfAWjHcfjwJV7wg4fFitifpo3kjA32yhDvVu56qYG6YqCKh8KX6nv3znqR6aUUyhkTqAbz6tbprSPKmn6JmcbQmyHu", + "public": + "xpub6A5xeTmjvZckuRXR9YsQASuNfqJEUDJKKmeYedwqz7MvAyWH7r7oj7nfStAdwLGkjXWgWAQcQMKZSfrpq4QjQMfXTfi4yUdFngziadqviiz", + "address": + "DdzFFzCqrhsoztHMrTJWrDpevA9od2oPPaJ4qbVomzHwyBzW3HMkA3RgHbfdM8EDR1vHQnQkznxHdWL3MQV8xRomjShQFov4cKTFvb2P", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RSiegUH5fNUHCFymGQfSiUBwoXHtsVY7iQ9sH79iKpH9GpReNji5GPAMpL377y3zdpX6uNAET6JsUjQu4veR7pTmMVHCKaWnpBsJ5KfPe9PMTWVdnG7SqQnR86BPpLNsq4SmGDXtM5fTjD9hqaPSqE", + "public": + "xpub6A5xeTmjvZckufw9n3t5RfgJtsytuPeBxQY2vk5uS9HVkWF6Ki7XZP1rSuyEz95ijB4WXPSEW8swXjs6pAWJrvrSPSTtgXJsgi9sMHjy2gg", + "address": + "DdzFFzCqrhszCH9N7XfMsmp7YPEwoVp2vEaSC3vMzXRQR2jNm6HzeT65iKeRLnP9SNJSLohMccnD6kZ5SHKMGgKpFbSdEPEfV8VoZncM", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RSiegUH5fNUJK1Gt1Cvn2noZqu2Bj6nnyyDfZUtrgt9sifiM9bM7SgaZg3f75vZYQdBTMz9ndoWJvhwovitRxcPvzLdenJsktvBba6q12hjcCFz7rC4idhmKrRATfgWCmHmadL5La2WPyHb6Xju8Um", + "public": + "xpub6A5xeTmjvZckyRtbtX7izGy25orptzy8GUykq7u9kngU7g7Acqnucz13sjj7PUKdoUfVTrvr9y6o1KtkGpMF5pBw69uSgT4NfSi3UhcdRXq", + "address": + "DdzFFzCqrhsshC7DKie55zLHp1DXzxP24pRt6aDAFNzqKDhYd2GUJLuLn6w1sXucg79SRmNZ4UjXnRSK8wgQbepBGB1QUXTWfzcFA2q3", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RNSjd514wR25VwDmB5zeJFDv89aNUsGpbr6YLvgMH74Mhv6dxJzqJaTKGrfUBmb2Sgeii1rjVGcfnWUkMgMh4QnLo57AduJEUc8wBNFYcMw2p8ntXLksHaD4SXZmWuCLGynPdzBY1HveXUNw3YCFNX", + "public": + "xpub69qa6Eeq6QqBZYJofcbCURJhEG641PhH2Yd1pP7UYa2EBcCEHZZepuGGce7kaC4Ao9drPhgecaKsT6mHd8xN5VPWc31Rvjm6J8ocMqoudkB", + "address": + "DdzFFzCqrht2Bpc6xzpUPsfgJd2k6N2FddbmggsJZJTksNPRGGDQSVWEX3pQKy9wwjEpRsc9a8hmaxwWM5ouSRV3BCnygUPAeEFqt2Y9", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RNSjd514wR26Ry1mN899xuqJdCz91Crr5gNm6ejMsWj2URL46k9icfyNmgGUdKzA5sXExzgAnP9jNnXJeiD6F3Vihn7JBCsT7m57du7Wi9MyrJeJrtQkUN7iYxjAGukoHJcZo2pqBmAqJP4BvPeoZL", + "public": + "xpub69qa6Eeq6QqBcgC6NxA7P8ihbsDvPeYx4PYgTwHchdaDJTz2M8FvwRLhyv8n7Wji97FLTL5ATLJHdCrZzxNanDSySGwb4QtJeXPrJX6wsGs", + "address": + "DdzFFzCqrht6p9bS9hYrn22jfhq8KP7JpnVTChai8etwisyvjSsTnKDkgsE2VE4sTYFEnwvrierm12XRgrZhkfT88uKs84XArLtvxysY", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RNSjd514wR26bc1nCvMLJwXz9Sc7dEdNAUdbs8hSEgHqfhhpPiq9JAhKKnuTSev5YNj1ETGsvfEj5WQJNM91wV4MPRv31oiqC9ZebdW8HL6J8UMPDRkewqGS4GKhS2K23rTkT5amEPhaLP79SK3tnj", + "public": + "xpub69qa6Eeq6QqBdEdrcHSAvmJXnKDe7nsTVjLQEwnB4N5juhsRHhNGkQ2oneFcTNhBSudTGKA9m5X7PqeWa43L8ZPfUSihyqNQ7fp7Ht5an5A", + "address": + "DdzFFzCqrhtAfi9R4uw6PFEdEmbTNfhVg7xHXT8BqMxtcdHtaGjaPApQXneV5dHS9tB3VqojvUJmetDzGoV5y3vGY1W2CT8AA7Jeg8sZ", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RZneFdGi19xujb1cFUVRFTjimrSbZJ5c6G2FtQG1eaamzgv6xgVksnZ1BvUArzPwVhxoupjA8tN4wbAWdRTVMdp9bqNvhN7byJG1ss9TF5kYa3si1WQdkWMtktUXptnKhiXmdvuGSLqH8XbUvojnTV", + "public": + "xpub6AVkodrPj7sTwTf8FCaCDkaCUk5fty9tmx6NFAcRb4wQUFFAcHCGJNEPJvjFfhi8raQkZ9XqD77xwyKwm9vrf1UowuqP6h4WPC8XRX2zeZ4", + "address": + "DdzFFzCqrht2MPshqHpdvrtT8m2XvBmBFSLLnhcwS2GbazNVaK66uB5iKwFBC4bh7MrxTx5o1r8e5qQCY93oFQadsyym3mdndZZx6SM9", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RZneFdGi19xvVdkHWyS1Ti3LT2HsRF5BnjQX34M7cMU3dnadgWgtv1s9LnQrWHXBbtqq9wN1u4Rr9B9sL8wkzDnphET4vRSQSfLf3pnCKrNjZYkqgBUi1mHEbLzr641CjUUFYvszdVZdTPEiagCnem", + "public": + "xpub6AVkodrPj7sTz1w8fvyng78WitCXFFFDsW83yAGwcvH2rBVhJBBkkY7LrMX1YQqKiwrso7q9fbFYHpakNhcWLHgKvjUfE8Bfd9modt2JtFA", + "address": + "DdzFFzCqrhsqHPdvX5Xr5i7E3jcSL2CKPBi4YMPQUihGSFpwYh3k8xmhfDzDGiQaMNhpKoMVyjuSuFnxBa7pZxjp7LWBaydLZ3scPFfY", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RZneFdGi19xvjhFkgmY4yy2kYK6Du6fTRSjqVvk4PGS6GeNZHbthbaiKw7MwYdbKKpg7RAq5s1SZnTwbwZm3zSPCUdUWWvMUKER3hu9Uv2euwHvjBUaxu4APY2ujMfQvAcjfBxeyXhBMfMfd1aHF35", + "public": + "xpub6AVkodrPj7sTzqGNsmfs9aq92QpeKdzqUhFE8o6BCzrdGRkJvEyMJfnn1oRNFGkZtt86FwKe8x5mdDXySj4M8GtVabGrAyjZvR7KhmdaMLx", + "address": + "DdzFFzCqrhtA1YSMH9WMMp9usKKPXt1HB83E5UVKStpNQkT47UTC4DCEk1F3d8HTHp2apNwZceUHxMvJizaAqQfjCzWcVAcYQRn9dMyu", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "90f4f9f2b9bcfb096e9a8ae89239463a87a1eddf378e504820ffe9f3aff8c59b", + "private": + "d07d001b07bc9924856f1c8676737fc28430b3d98ad36a12991d35b8d49790427dc5d5f74ba81d8acaaeb122d2750f0f913c5db929e8d68f64fe513afd3bc7e1", + "public": + "00c13d8f36996ce2316444098be8f52b57e5cf1a2eea99d263156f04072531abac", + "chaincode": + "b134d242ecb04c1aa820b4ce500c95ef946460406fb1fcfae7b823e4df851624", + "hd_key": + "c605550646c93323fdaaa77f6a184ab5ea7bdcf54877d386c6aa10d80c7f7e23", + "child": [ + { + "private": + "xprv3RSiegUH5fNUH7yiPJkNjobpsFsUiMmtyXK21safAHMpXx1hU4boFBPsVRSextfAWjHcfjwJV7wg4fFitifpo3kjA32yhDvVu56qYG6YqCKh8KX6nv3znqR6aUUyhkTqAbz6tbprSPKmn6JmcbQmyHu", + "public": + "xpub6A5xeTmjvZckuRXR9YsQASuNfqJEUDJKKmeYedwqz7MvAyWH7r7oj7nfStAdwLGkjXWgWAQcQMKZSfrpq4QjQMfXTfi4yUdFngziadqviiz", + "address": + "DdzFFzCqrhsoztHMrTJWrDpevA9od2oPPaJ4qbVomzHwyBzW3HMkA3RgHbfdM8EDR1vHQnQkznxHdWL3MQV8xRomjShQFov4cKTFvb2P", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RSiegUH5fNUHCFymGQfSiUBwoXHtsVY7iQ9sH79iKpH9GpReNji5GPAMpL377y3zdpX6uNAET6JsUjQu4veR7pTmMVHCKaWnpBsJ5KfPe9PMTWVdnG7SqQnR86BPpLNsq4SmGDXtM5fTjD9hqaPSqE", + "public": + "xpub6A5xeTmjvZckufw9n3t5RfgJtsytuPeBxQY2vk5uS9HVkWF6Ki7XZP1rSuyEz95ijB4WXPSEW8swXjs6pAWJrvrSPSTtgXJsgi9sMHjy2gg", + "address": + "DdzFFzCqrhszCH9N7XfMsmp7YPEwoVp2vEaSC3vMzXRQR2jNm6HzeT65iKeRLnP9SNJSLohMccnD6kZ5SHKMGgKpFbSdEPEfV8VoZncM", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RSiegUH5fNUJK1Gt1Cvn2noZqu2Bj6nnyyDfZUtrgt9sifiM9bM7SgaZg3f75vZYQdBTMz9ndoWJvhwovitRxcPvzLdenJsktvBba6q12hjcCFz7rC4idhmKrRATfgWCmHmadL5La2WPyHb6Xju8Um", + "public": + "xpub6A5xeTmjvZckyRtbtX7izGy25orptzy8GUykq7u9kngU7g7Acqnucz13sjj7PUKdoUfVTrvr9y6o1KtkGpMF5pBw69uSgT4NfSi3UhcdRXq", + "address": + "DdzFFzCqrhsshC7DKie55zLHp1DXzxP24pRt6aDAFNzqKDhYd2GUJLuLn6w1sXucg79SRmNZ4UjXnRSK8wgQbepBGB1QUXTWfzcFA2q3", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RNSjd514wR25VwDmB5zeJFDv89aNUsGpbr6YLvgMH74Mhv6dxJzqJaTKGrfUBmb2Sgeii1rjVGcfnWUkMgMh4QnLo57AduJEUc8wBNFYcMw2p8ntXLksHaD4SXZmWuCLGynPdzBY1HveXUNw3YCFNX", + "public": + "xpub69qa6Eeq6QqBZYJofcbCURJhEG641PhH2Yd1pP7UYa2EBcCEHZZepuGGce7kaC4Ao9drPhgecaKsT6mHd8xN5VPWc31Rvjm6J8ocMqoudkB", + "address": + "DdzFFzCqrht2Bpc6xzpUPsfgJd2k6N2FddbmggsJZJTksNPRGGDQSVWEX3pQKy9wwjEpRsc9a8hmaxwWM5ouSRV3BCnygUPAeEFqt2Y9", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RNSjd514wR26Ry1mN899xuqJdCz91Crr5gNm6ejMsWj2URL46k9icfyNmgGUdKzA5sXExzgAnP9jNnXJeiD6F3Vihn7JBCsT7m57du7Wi9MyrJeJrtQkUN7iYxjAGukoHJcZo2pqBmAqJP4BvPeoZL", + "public": + "xpub69qa6Eeq6QqBcgC6NxA7P8ihbsDvPeYx4PYgTwHchdaDJTz2M8FvwRLhyv8n7Wji97FLTL5ATLJHdCrZzxNanDSySGwb4QtJeXPrJX6wsGs", + "address": + "DdzFFzCqrht6p9bS9hYrn22jfhq8KP7JpnVTChai8etwisyvjSsTnKDkgsE2VE4sTYFEnwvrierm12XRgrZhkfT88uKs84XArLtvxysY", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RNSjd514wR26bc1nCvMLJwXz9Sc7dEdNAUdbs8hSEgHqfhhpPiq9JAhKKnuTSev5YNj1ETGsvfEj5WQJNM91wV4MPRv31oiqC9ZebdW8HL6J8UMPDRkewqGS4GKhS2K23rTkT5amEPhaLP79SK3tnj", + "public": + "xpub69qa6Eeq6QqBdEdrcHSAvmJXnKDe7nsTVjLQEwnB4N5juhsRHhNGkQ2oneFcTNhBSudTGKA9m5X7PqeWa43L8ZPfUSihyqNQ7fp7Ht5an5A", + "address": + "DdzFFzCqrhtAfi9R4uw6PFEdEmbTNfhVg7xHXT8BqMxtcdHtaGjaPApQXneV5dHS9tB3VqojvUJmetDzGoV5y3vGY1W2CT8AA7Jeg8sZ", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RZneFdGi19xujb1cFUVRFTjimrSbZJ5c6G2FtQG1eaamzgv6xgVksnZ1BvUArzPwVhxoupjA8tN4wbAWdRTVMdp9bqNvhN7byJG1ss9TF5kYa3si1WQdkWMtktUXptnKhiXmdvuGSLqH8XbUvojnTV", + "public": + "xpub6AVkodrPj7sTwTf8FCaCDkaCUk5fty9tmx6NFAcRb4wQUFFAcHCGJNEPJvjFfhi8raQkZ9XqD77xwyKwm9vrf1UowuqP6h4WPC8XRX2zeZ4", + "address": + "DdzFFzCqrht2MPshqHpdvrtT8m2XvBmBFSLLnhcwS2GbazNVaK66uB5iKwFBC4bh7MrxTx5o1r8e5qQCY93oFQadsyym3mdndZZx6SM9", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RZneFdGi19xvVdkHWyS1Ti3LT2HsRF5BnjQX34M7cMU3dnadgWgtv1s9LnQrWHXBbtqq9wN1u4Rr9B9sL8wkzDnphET4vRSQSfLf3pnCKrNjZYkqgBUi1mHEbLzr641CjUUFYvszdVZdTPEiagCnem", + "public": + "xpub6AVkodrPj7sTz1w8fvyng78WitCXFFFDsW83yAGwcvH2rBVhJBBkkY7LrMX1YQqKiwrso7q9fbFYHpakNhcWLHgKvjUfE8Bfd9modt2JtFA", + "address": + "DdzFFzCqrhsqHPdvX5Xr5i7E3jcSL2CKPBi4YMPQUihGSFpwYh3k8xmhfDzDGiQaMNhpKoMVyjuSuFnxBa7pZxjp7LWBaydLZ3scPFfY", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RZneFdGi19xvjhFkgmY4yy2kYK6Du6fTRSjqVvk4PGS6GeNZHbthbaiKw7MwYdbKKpg7RAq5s1SZnTwbwZm3zSPCUdUWWvMUKER3hu9Uv2euwHvjBUaxu4APY2ujMfQvAcjfBxeyXhBMfMfd1aHF35", + "public": + "xpub6AVkodrPj7sTzqGNsmfs9aq92QpeKdzqUhFE8o6BCzrdGRkJvEyMJfnn1oRNFGkZtt86FwKe8x5mdDXySj4M8GtVabGrAyjZvR7KhmdaMLx", + "address": + "DdzFFzCqrhtA1YSMH9WMMp9usKKPXt1HB83E5UVKStpNQkT47UTC4DCEk1F3d8HTHp2apNwZceUHxMvJizaAqQfjCzWcVAcYQRn9dMyu", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "e9aebe3b37c2070a307d129f36f8d1f4638e444f826927c67a03f912e8f45c1a", + "private": + "483ffe8379cebafd982f297073bebd27c8f4a32697622832dec22e04c596e9569e5816733a0080f299fb058bec76d20562025344b7042645c3e6aa36ef152c9e", + "public": + "00abbfbd4a77bbe964c129cdde3b495de6e99fa04f862ab723d395aeb128ddaf89", + "chaincode": + "c1cd79729507c71ebc469b3cf949444ade2fd36bfa753bad0c423b0e2cd5087d", + "hd_key": + "dae12ec5eecbfd8a7cc1276ca8f93b2655b0697ac8ac44d17a9736c2ded6fcab", + "child": [ + { + "private": + "xprv3RuckutfGiHCACJpGg875KmisVnXmx6QKv7QFEw1S2cXeFW2aV9x8v4zxXGdBEAKWbGFGpmvht5r6WHLbU26oWzdFZCctQshzAnbp3ghAtea9cibYcUxjnFNnfZFjRRPFne1pFWAvyyohGD7VjF1TJv", + "public": + "xpub6BeWSGcEg55xEEGKVJtDNJorh8k8ce4ua5LbBjE3sNPTBpHfw4BS4dXhVs4v74ZJc2sgp61xig4i841riFCRd5hdR3YpsLg4Xb8ZGELAt3Q", + "address": + "DdzFFzCqrht9zU5vkdeJAqVYupzLCzNq7Z1nGP4FDBbMP1DS5hXA4ywPb3FCSHgMUXmsHhUPgAUuZqTCTapE1SpgBRWZJxzPG9BVuEeb", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RuckutfGiHCAWT1EM1NZFp4nfhWDG76KvobAjaiEHiKS8VuEQzzfFZWNUo2b491rbR8DQuZSd3WKkeAnq73JQHV3DJpjHL9RLocHPsed8omDWTm21PjT2aeqKUdyP2dxAjwq5eTuGQodiF3bx97eHo", + "public": + "xpub6BeWSGcEg55xFHLJYkyeXJKLBbFnAAQHRY8DPgzKx5bqojxCNQ7rzPbRBc3bvSM99VbpZedGA9p5jMGESr4JLoJyYS5PPRYFPpob4gKQvxC", + "address": + "DdzFFzCqrhszbkgPigGGNFaSfDKDAP1gQXaL6wQTQKFu7sky7DFtQWYEYC5F3NGuVucSubSD98kYpeHce1rhhvuCfZmUZyprYeCjSH58", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RuckutfGiHCBcGGfxBXhuXCmz6fJAxDX1Z4WGqfE5h8vkJo1yDwDn9EvJUALdFeGedgzYLp9DaZ8vrKgrPX7KJNKds6BK3hnHMH1yuFCZKA98CGjg1FWKiwY8NnbKJPgcmP4WRtRq7ZAmjzvp67g4t", + "public": + "xpub6BeWSGcEg55xJz9smeaFbVqkNfVzuQk5hWtuCYU2fMgVC6ZzSvBzGYiAifNM5ZmHXuTi7hFVvfuQBVQXd5hVNvaXrqxV1qouwdyFdGcx1AX", + "address": + "DdzFFzCqrhtBsNsaiQDSzhPDdP8UL33Uj5fkLtPpSpEKqosLFfmEzYtLVNxLnizMNSk2CHtKFNrNCUuRD5r4TqGxHM9DHv6spJUjdzhw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RXWcqXoZMjJSjujrZ43i3dYN4SfXNBpALrdD7wv6v33jR8EqVdLtYkTrqkBqiC4b4PNxRwm2kp51CpSDhEDrFJkkfDgzJ6kzitTJevQSCAnbVgPmaSiK9V9UE46FCcqHPdbNcjby5eAaHK8J4dXXaz", + "public": + "xpub6AN6NUgYdrpuDss6xqEqZY3pDhBFd9PgvsUph16buZovsAqfkg2dUXVnym6rNaWGUMCGbJBnckiJZNd2TN6kfZcuhQMUmXpKDwfRAqwxKDH", + "address": + "DdzFFzCqrhshkKFYcou7fsaYsBJtv39Zt1VFudrNvsw2F5iNZoRjf5vNY95wAPaUAZ84sA7RBJqNzB3Dd9BNyMkfvA6pUzrQj29mS8DT", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RXWcqXoZMjJTvnXUwv4MX6jzBBMabYreDVAtuj8iyzcGUTtp9Z2cKpkiWs3kkhoEbZ6V5z2nh44C84mLkBN91TUDzu9UqypfscZeXTxMhY5AXK17pwJHaJuofY7x4kErmnEF3iDrQFCfuXPw4YdWmo", + "public": + "xpub6AN6NUgYdrpuHsikhoPanZHwyR4xpLxG3UM5C1CC8NmHb5S8a1BC4KJsAjUkbW4ScSDWrUe485nZ5HkTr2xua7rRrxaQToGGHmmAcFitfun", + "address": + "DdzFFzCqrhsfyjMt9tdxpNBRm639ALZpPTG5PapDV9ojmuMkp1w5HmqZmsCVSAkWzkDcAaasVuw2aYAAJyN6skxsYfd9uyqQ9cRJcY1D", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RXWcqXoZMjJU3aYhNrQ7fzyM9X4kg7eggvLyYRpGxceopTUw15uoNAcxLK8bjrGvbKE4wpSEF1QAggmiV7vFBUhnZrxL8fFSFALWtigihRwGxqCwjCrFqDk8dvhcQydanAyXzCDaYiwH6A2Uo7pWLy", + "public": + "xpub6AN6NUgYdrpuJGb9UsP4DBQUM6oDwjCbSKKtemzaC9f7rLSZfU9GnLvddzQffxwHA8hQymN5toNWMBWpGfYzts2xyy4FrAiPFAxFWCs2NFZ", + "address": + "DdzFFzCqrhso1bfee3mN9TittBM3xrp6L8XCmzqJcMiUYKSXMdy6ca8913no7NWc8Ka9ban5fgGiyv7z2i3nDVuhWcEhb9QJPP1FEo2h", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RQZDe17SMePNJy4EnVT6s9GikuP1wFiCTd7AmsmTv4FvjiePdQCXaspFNcSjD4r7zVYx8bj3tEtKEAy1YACKzA9gsXsbu3ZMVQaAshbMuGXvpkH9hWQau3NbHSbEvLPhVPiSoTrSgPh4Y3Xd92J13s", + "public": + "xpub69xgQV9RtGyGosw736cQDM19RdpucV7FANzHTmsivi3DYWyPjeSwCv1gkzDUte3gYBpYxqiY7kpuFDCB6FkQSgRjcxMWQVsQTX5LjVEKxJ5", + "address": + "DdzFFzCqrhszXAxfVW5oWwpxsGsbVztYaRVtYVNaDZy8u1mfNqDzhJnbzBTEEQXU7p97mLcSyeAjQoQZjkhVytkHyETza8KkQUnZMgEM", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RQZDe17SMePNoTFhMB7hyUV4tAvVJTc2S5UZ7bYe25mtp5By7Q5wd2KmGj23M56WhufhPaZcrq3suYz6Vw9MqBx9AG9ezsvhZrQ86YdF2deAhDHyKEFQKALY59QDLg7UDN3wztEJs4EsqgjVzmXQLL", + "public": + "xpub69xgQV9RtGyGqXpu1t7aB5vXSkuQpiJ4q9gMSx7LT7wW6VEyvAaPAZNrEEkUTTd9YDKDKZ1dEu6s9qZ4FHzPUSni5TGzW9Mxx6pypisc4xc", + "address": + "DdzFFzCqrht5FC98gmGWk5CGhpHn5H1akUK6ZbR8tXPr5MNKNSXuMcRkUdidwZpJznxQJiWdn9hXFLmgW7BTfdpu6zfa3wRnDUVprqBz", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RQZDe17SMePPp2q7EcbHT9MtP2yne6SJ4r8iENQgAruXhkKZbZkahsDzXXEDk1oSe9W4VTwfQtzneyzvFzKnwoLVoa6JzLUXd7FMqzswSEZrzFwKJadmUKeYgtmK65ho1kcVDPeNeg3E7LGmD4Ly2h", + "public": + "xpub69xgQV9RtGyGtw2A8RvqRtgHSvZPgzFD59RMxfNVgjPs5YLVnQwR4N96JGAaxR2cWrz8i9PoUHWkDhTcZve3t3VgKyoqd9X2AX7EWzUZbib", + "address": + "DdzFFzCqrhsqvkwj2pq1XSGqnz9RpnjfTan6wTAs7CheZCaugPhMcagnR2NsweqqTXQ6CB7PSzfcwJTft6cTDdQhGfcprXxDLux9eGZs", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "e9aebe3b37c2070a307d129f36f8d1f4638e444f826927c67a03f912e8f45c1a", + "private": + "483ffe8379cebafd982f297073bebd27c8f4a32697622832dec22e04c596e9569e5816733a0080f299fb058bec76d20562025344b7042645c3e6aa36ef152c9e", + "public": + "00abbfbd4a77bbe964c129cdde3b495de6e99fa04f862ab723d395aeb128ddaf89", + "chaincode": + "c1cd79729507c71ebc469b3cf949444ade2fd36bfa753bad0c423b0e2cd5087d", + "hd_key": + "dae12ec5eecbfd8a7cc1276ca8f93b2655b0697ac8ac44d17a9736c2ded6fcab", + "child": [ + { + "private": + "xprv3RuckutfGiHCACJpGg875KmisVnXmx6QKv7QFEw1S2cXeFW2aV9x8v4zxXGdBEAKWbGFGpmvht5r6WHLbU26oWzdFZCctQshzAnbp3ghAtea9cibYcUxjnFNnfZFjRRPFne1pFWAvyyohGD7VjF1TJv", + "public": + "xpub6BeWSGcEg55xEEGKVJtDNJorh8k8ce4ua5LbBjE3sNPTBpHfw4BS4dXhVs4v74ZJc2sgp61xig4i841riFCRd5hdR3YpsLg4Xb8ZGELAt3Q", + "address": + "DdzFFzCqrht9zU5vkdeJAqVYupzLCzNq7Z1nGP4FDBbMP1DS5hXA4ywPb3FCSHgMUXmsHhUPgAUuZqTCTapE1SpgBRWZJxzPG9BVuEeb", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RuckutfGiHCAWT1EM1NZFp4nfhWDG76KvobAjaiEHiKS8VuEQzzfFZWNUo2b491rbR8DQuZSd3WKkeAnq73JQHV3DJpjHL9RLocHPsed8omDWTm21PjT2aeqKUdyP2dxAjwq5eTuGQodiF3bx97eHo", + "public": + "xpub6BeWSGcEg55xFHLJYkyeXJKLBbFnAAQHRY8DPgzKx5bqojxCNQ7rzPbRBc3bvSM99VbpZedGA9p5jMGESr4JLoJyYS5PPRYFPpob4gKQvxC", + "address": + "DdzFFzCqrhszbkgPigGGNFaSfDKDAP1gQXaL6wQTQKFu7sky7DFtQWYEYC5F3NGuVucSubSD98kYpeHce1rhhvuCfZmUZyprYeCjSH58", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RuckutfGiHCBcGGfxBXhuXCmz6fJAxDX1Z4WGqfE5h8vkJo1yDwDn9EvJUALdFeGedgzYLp9DaZ8vrKgrPX7KJNKds6BK3hnHMH1yuFCZKA98CGjg1FWKiwY8NnbKJPgcmP4WRtRq7ZAmjzvp67g4t", + "public": + "xpub6BeWSGcEg55xJz9smeaFbVqkNfVzuQk5hWtuCYU2fMgVC6ZzSvBzGYiAifNM5ZmHXuTi7hFVvfuQBVQXd5hVNvaXrqxV1qouwdyFdGcx1AX", + "address": + "DdzFFzCqrhtBsNsaiQDSzhPDdP8UL33Uj5fkLtPpSpEKqosLFfmEzYtLVNxLnizMNSk2CHtKFNrNCUuRD5r4TqGxHM9DHv6spJUjdzhw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RXWcqXoZMjJSjujrZ43i3dYN4SfXNBpALrdD7wv6v33jR8EqVdLtYkTrqkBqiC4b4PNxRwm2kp51CpSDhEDrFJkkfDgzJ6kzitTJevQSCAnbVgPmaSiK9V9UE46FCcqHPdbNcjby5eAaHK8J4dXXaz", + "public": + "xpub6AN6NUgYdrpuDss6xqEqZY3pDhBFd9PgvsUph16buZovsAqfkg2dUXVnym6rNaWGUMCGbJBnckiJZNd2TN6kfZcuhQMUmXpKDwfRAqwxKDH", + "address": + "DdzFFzCqrhshkKFYcou7fsaYsBJtv39Zt1VFudrNvsw2F5iNZoRjf5vNY95wAPaUAZ84sA7RBJqNzB3Dd9BNyMkfvA6pUzrQj29mS8DT", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RXWcqXoZMjJTvnXUwv4MX6jzBBMabYreDVAtuj8iyzcGUTtp9Z2cKpkiWs3kkhoEbZ6V5z2nh44C84mLkBN91TUDzu9UqypfscZeXTxMhY5AXK17pwJHaJuofY7x4kErmnEF3iDrQFCfuXPw4YdWmo", + "public": + "xpub6AN6NUgYdrpuHsikhoPanZHwyR4xpLxG3UM5C1CC8NmHb5S8a1BC4KJsAjUkbW4ScSDWrUe485nZ5HkTr2xua7rRrxaQToGGHmmAcFitfun", + "address": + "DdzFFzCqrhsfyjMt9tdxpNBRm639ALZpPTG5PapDV9ojmuMkp1w5HmqZmsCVSAkWzkDcAaasVuw2aYAAJyN6skxsYfd9uyqQ9cRJcY1D", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RXWcqXoZMjJU3aYhNrQ7fzyM9X4kg7eggvLyYRpGxceopTUw15uoNAcxLK8bjrGvbKE4wpSEF1QAggmiV7vFBUhnZrxL8fFSFALWtigihRwGxqCwjCrFqDk8dvhcQydanAyXzCDaYiwH6A2Uo7pWLy", + "public": + "xpub6AN6NUgYdrpuJGb9UsP4DBQUM6oDwjCbSKKtemzaC9f7rLSZfU9GnLvddzQffxwHA8hQymN5toNWMBWpGfYzts2xyy4FrAiPFAxFWCs2NFZ", + "address": + "DdzFFzCqrhso1bfee3mN9TittBM3xrp6L8XCmzqJcMiUYKSXMdy6ca8913no7NWc8Ka9ban5fgGiyv7z2i3nDVuhWcEhb9QJPP1FEo2h", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RQZDe17SMePNJy4EnVT6s9GikuP1wFiCTd7AmsmTv4FvjiePdQCXaspFNcSjD4r7zVYx8bj3tEtKEAy1YACKzA9gsXsbu3ZMVQaAshbMuGXvpkH9hWQau3NbHSbEvLPhVPiSoTrSgPh4Y3Xd92J13s", + "public": + "xpub69xgQV9RtGyGosw736cQDM19RdpucV7FANzHTmsivi3DYWyPjeSwCv1gkzDUte3gYBpYxqiY7kpuFDCB6FkQSgRjcxMWQVsQTX5LjVEKxJ5", + "address": + "DdzFFzCqrhszXAxfVW5oWwpxsGsbVztYaRVtYVNaDZy8u1mfNqDzhJnbzBTEEQXU7p97mLcSyeAjQoQZjkhVytkHyETza8KkQUnZMgEM", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RQZDe17SMePNoTFhMB7hyUV4tAvVJTc2S5UZ7bYe25mtp5By7Q5wd2KmGj23M56WhufhPaZcrq3suYz6Vw9MqBx9AG9ezsvhZrQ86YdF2deAhDHyKEFQKALY59QDLg7UDN3wztEJs4EsqgjVzmXQLL", + "public": + "xpub69xgQV9RtGyGqXpu1t7aB5vXSkuQpiJ4q9gMSx7LT7wW6VEyvAaPAZNrEEkUTTd9YDKDKZ1dEu6s9qZ4FHzPUSni5TGzW9Mxx6pypisc4xc", + "address": + "DdzFFzCqrht5FC98gmGWk5CGhpHn5H1akUK6ZbR8tXPr5MNKNSXuMcRkUdidwZpJznxQJiWdn9hXFLmgW7BTfdpu6zfa3wRnDUVprqBz", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RQZDe17SMePPp2q7EcbHT9MtP2yne6SJ4r8iENQgAruXhkKZbZkahsDzXXEDk1oSe9W4VTwfQtzneyzvFzKnwoLVoa6JzLUXd7FMqzswSEZrzFwKJadmUKeYgtmK65ho1kcVDPeNeg3E7LGmD4Ly2h", + "public": + "xpub69xgQV9RtGyGtw2A8RvqRtgHSvZPgzFD59RMxfNVgjPs5YLVnQwR4N96JGAaxR2cWrz8i9PoUHWkDhTcZve3t3VgKyoqd9X2AX7EWzUZbib", + "address": + "DdzFFzCqrhsqvkwj2pq1XSGqnz9RpnjfTan6wTAs7CheZCaugPhMcagnR2NsweqqTXQ6CB7PSzfcwJTft6cTDdQhGfcprXxDLux9eGZs", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "e9aebe3b37c2070a307d129f36f8d1f4638e444f826927c67a03f912e8f45c1a", + "private": + "483ffe8379cebafd982f297073bebd27c8f4a32697622832dec22e04c596e9569e5816733a0080f299fb058bec76d20562025344b7042645c3e6aa36ef152c9e", + "public": + "00abbfbd4a77bbe964c129cdde3b495de6e99fa04f862ab723d395aeb128ddaf89", + "chaincode": + "c1cd79729507c71ebc469b3cf949444ade2fd36bfa753bad0c423b0e2cd5087d", + "hd_key": + "dae12ec5eecbfd8a7cc1276ca8f93b2655b0697ac8ac44d17a9736c2ded6fcab", + "child": [ + { + "private": + "xprv3RuckutfGiHCACJpGg875KmisVnXmx6QKv7QFEw1S2cXeFW2aV9x8v4zxXGdBEAKWbGFGpmvht5r6WHLbU26oWzdFZCctQshzAnbp3ghAtea9cibYcUxjnFNnfZFjRRPFne1pFWAvyyohGD7VjF1TJv", + "public": + "xpub6BeWSGcEg55xEEGKVJtDNJorh8k8ce4ua5LbBjE3sNPTBpHfw4BS4dXhVs4v74ZJc2sgp61xig4i841riFCRd5hdR3YpsLg4Xb8ZGELAt3Q", + "address": + "DdzFFzCqrht9zU5vkdeJAqVYupzLCzNq7Z1nGP4FDBbMP1DS5hXA4ywPb3FCSHgMUXmsHhUPgAUuZqTCTapE1SpgBRWZJxzPG9BVuEeb", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RuckutfGiHCAWT1EM1NZFp4nfhWDG76KvobAjaiEHiKS8VuEQzzfFZWNUo2b491rbR8DQuZSd3WKkeAnq73JQHV3DJpjHL9RLocHPsed8omDWTm21PjT2aeqKUdyP2dxAjwq5eTuGQodiF3bx97eHo", + "public": + "xpub6BeWSGcEg55xFHLJYkyeXJKLBbFnAAQHRY8DPgzKx5bqojxCNQ7rzPbRBc3bvSM99VbpZedGA9p5jMGESr4JLoJyYS5PPRYFPpob4gKQvxC", + "address": + "DdzFFzCqrhszbkgPigGGNFaSfDKDAP1gQXaL6wQTQKFu7sky7DFtQWYEYC5F3NGuVucSubSD98kYpeHce1rhhvuCfZmUZyprYeCjSH58", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RuckutfGiHCBcGGfxBXhuXCmz6fJAxDX1Z4WGqfE5h8vkJo1yDwDn9EvJUALdFeGedgzYLp9DaZ8vrKgrPX7KJNKds6BK3hnHMH1yuFCZKA98CGjg1FWKiwY8NnbKJPgcmP4WRtRq7ZAmjzvp67g4t", + "public": + "xpub6BeWSGcEg55xJz9smeaFbVqkNfVzuQk5hWtuCYU2fMgVC6ZzSvBzGYiAifNM5ZmHXuTi7hFVvfuQBVQXd5hVNvaXrqxV1qouwdyFdGcx1AX", + "address": + "DdzFFzCqrhtBsNsaiQDSzhPDdP8UL33Uj5fkLtPpSpEKqosLFfmEzYtLVNxLnizMNSk2CHtKFNrNCUuRD5r4TqGxHM9DHv6spJUjdzhw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RXWcqXoZMjJSjujrZ43i3dYN4SfXNBpALrdD7wv6v33jR8EqVdLtYkTrqkBqiC4b4PNxRwm2kp51CpSDhEDrFJkkfDgzJ6kzitTJevQSCAnbVgPmaSiK9V9UE46FCcqHPdbNcjby5eAaHK8J4dXXaz", + "public": + "xpub6AN6NUgYdrpuDss6xqEqZY3pDhBFd9PgvsUph16buZovsAqfkg2dUXVnym6rNaWGUMCGbJBnckiJZNd2TN6kfZcuhQMUmXpKDwfRAqwxKDH", + "address": + "DdzFFzCqrhshkKFYcou7fsaYsBJtv39Zt1VFudrNvsw2F5iNZoRjf5vNY95wAPaUAZ84sA7RBJqNzB3Dd9BNyMkfvA6pUzrQj29mS8DT", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RXWcqXoZMjJTvnXUwv4MX6jzBBMabYreDVAtuj8iyzcGUTtp9Z2cKpkiWs3kkhoEbZ6V5z2nh44C84mLkBN91TUDzu9UqypfscZeXTxMhY5AXK17pwJHaJuofY7x4kErmnEF3iDrQFCfuXPw4YdWmo", + "public": + "xpub6AN6NUgYdrpuHsikhoPanZHwyR4xpLxG3UM5C1CC8NmHb5S8a1BC4KJsAjUkbW4ScSDWrUe485nZ5HkTr2xua7rRrxaQToGGHmmAcFitfun", + "address": + "DdzFFzCqrhsfyjMt9tdxpNBRm639ALZpPTG5PapDV9ojmuMkp1w5HmqZmsCVSAkWzkDcAaasVuw2aYAAJyN6skxsYfd9uyqQ9cRJcY1D", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RXWcqXoZMjJU3aYhNrQ7fzyM9X4kg7eggvLyYRpGxceopTUw15uoNAcxLK8bjrGvbKE4wpSEF1QAggmiV7vFBUhnZrxL8fFSFALWtigihRwGxqCwjCrFqDk8dvhcQydanAyXzCDaYiwH6A2Uo7pWLy", + "public": + "xpub6AN6NUgYdrpuJGb9UsP4DBQUM6oDwjCbSKKtemzaC9f7rLSZfU9GnLvddzQffxwHA8hQymN5toNWMBWpGfYzts2xyy4FrAiPFAxFWCs2NFZ", + "address": + "DdzFFzCqrhso1bfee3mN9TittBM3xrp6L8XCmzqJcMiUYKSXMdy6ca8913no7NWc8Ka9ban5fgGiyv7z2i3nDVuhWcEhb9QJPP1FEo2h", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RQZDe17SMePNJy4EnVT6s9GikuP1wFiCTd7AmsmTv4FvjiePdQCXaspFNcSjD4r7zVYx8bj3tEtKEAy1YACKzA9gsXsbu3ZMVQaAshbMuGXvpkH9hWQau3NbHSbEvLPhVPiSoTrSgPh4Y3Xd92J13s", + "public": + "xpub69xgQV9RtGyGosw736cQDM19RdpucV7FANzHTmsivi3DYWyPjeSwCv1gkzDUte3gYBpYxqiY7kpuFDCB6FkQSgRjcxMWQVsQTX5LjVEKxJ5", + "address": + "DdzFFzCqrhszXAxfVW5oWwpxsGsbVztYaRVtYVNaDZy8u1mfNqDzhJnbzBTEEQXU7p97mLcSyeAjQoQZjkhVytkHyETza8KkQUnZMgEM", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RQZDe17SMePNoTFhMB7hyUV4tAvVJTc2S5UZ7bYe25mtp5By7Q5wd2KmGj23M56WhufhPaZcrq3suYz6Vw9MqBx9AG9ezsvhZrQ86YdF2deAhDHyKEFQKALY59QDLg7UDN3wztEJs4EsqgjVzmXQLL", + "public": + "xpub69xgQV9RtGyGqXpu1t7aB5vXSkuQpiJ4q9gMSx7LT7wW6VEyvAaPAZNrEEkUTTd9YDKDKZ1dEu6s9qZ4FHzPUSni5TGzW9Mxx6pypisc4xc", + "address": + "DdzFFzCqrht5FC98gmGWk5CGhpHn5H1akUK6ZbR8tXPr5MNKNSXuMcRkUdidwZpJznxQJiWdn9hXFLmgW7BTfdpu6zfa3wRnDUVprqBz", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RQZDe17SMePPp2q7EcbHT9MtP2yne6SJ4r8iENQgAruXhkKZbZkahsDzXXEDk1oSe9W4VTwfQtzneyzvFzKnwoLVoa6JzLUXd7FMqzswSEZrzFwKJadmUKeYgtmK65ho1kcVDPeNeg3E7LGmD4Ly2h", + "public": + "xpub69xgQV9RtGyGtw2A8RvqRtgHSvZPgzFD59RMxfNVgjPs5YLVnQwR4N96JGAaxR2cWrz8i9PoUHWkDhTcZve3t3VgKyoqd9X2AX7EWzUZbib", + "address": + "DdzFFzCqrhsqvkwj2pq1XSGqnz9RpnjfTan6wTAs7CheZCaugPhMcagnR2NsweqqTXQ6CB7PSzfcwJTft6cTDdQhGfcprXxDLux9eGZs", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "73fec3873a6ecce0008489c0cc93e488ea26b186b0ab18e25c4298c6d7a4995f", + "private": + "20f892f9c75b5d515bc91de4f15c20feb09b9ecdc3d0f55d2804f8f8b6310d40edc73df501a83e9a16bd3290ce2d2d052715f332f44d3f7d589dbb6f1f807adf", + "public": + "007cac20f0db6bc4eb107d933a7d4cc5d98401863d43a9a748cb1e0d0eb92343a3", + "chaincode": + "78b38b00c08c2cbedf82141459ffd3e32a5e29ab3ba712ffa19e596c5fcff464", + "hd_key": + "0309959b0500c62659f6938976a8b627757716f5d29e0ad6a9d0eed4f140011b", + "child": [ + { + "private": + "xprv3RtPnaN99QxLAzRtkxsZcJ2W2G6rdpPJExnMDGfpX7Rq24zzFsbAme5pd7YwegrRb1icjTqSWQWt5s57aWGHfvXWGMK1UdepWvSkp6TsFGRzy3enZUomuoxYri7TyqiYvLVSGDR8iRbxcAXfHGgp96o", + "public": + "xpub6BaPXSnwhd66dycGq1aqJi2znN82E8YS8JRNsv9u5xX7eSaU7jVB6aj34CV1tbXAkKYAg1jQVc3ERSSV5rWzraJQgZYMPtsoixSKuv1ZRBg", + "address": + "DdzFFzCqrhseNaJnho8cwKRXSQTj7PT8gdDA4v62q85zEUhcHEvr9kK2wXMv4KA5WGVYPEh6z1JETBHDGUyr1ZwfNJTj7823UTaJkTph", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RtPnaN99QxLB9FD98qJcAXUPhrszejxrXZewWaySFv1ph4QqrfWRgBC2yVy3k4KYJHr9Yvb5mwimEyzrUcJxSPJZCBTrqdXoU9Y7HjhEhv7ECU5hz7jX49Cv8m3xhgRWaD299gLaFPWxV7awRqzDaX", + "public": + "xpub6BaPXSnwhd66eVHX7Mo9hgccE95VECZCTRLdKfG2Fu6LhKR6sqGP6u7jvBN8vWpD6ci6Dwtj6uKLRZYEMthyumgTp9Yvr6GyMFs7joXQK84", + "address": + "DdzFFzCqrhshZKZFDFoM1y5vssJmE7mBLpdqUQXBzYjWYupEAw6G2PrYwFXmTgoBqa7X2pTJhAmJXfZqRNc9s7r3g6LW8pbARzen2Zg9", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RtPnaN99QxLCBRdKeB9xPBJoUC9DtbUojZLWDzobJxYM9MhXeYspLBtSrVrWMsHTphfaKTHr91AaFFqnhja6W29n9guyBGgAQMkzTb2aWQ27vfSx9rkxtUqCDzUsKyVtQoKodg2SBnWZj3X3bcV6Fp", + "public": + "xpub6BaPXSnwhd66hysJyNBR2DWd8HHT5L9YorWAgrfdzcN8FgsHp9pHZwNVhEgzn6dGDLmSy1J7dGcZG5uf9RjfkPDLjFPhUaJfaPq6DsccWQu", + "address": + "DdzFFzCqrhspdGkmCuPkrBbgY2rUD4Z4fB6snaPQ9rCXgHzqSordKso2PApMH3HQEhzYoBxBStTK6oq897DaAPsm4Bmh9UW5XVMTBFUw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RgYLardPBxtncEbCcrn85FQUiN3AnHWfqgSEkWtYqPrqzBZvrF1iZ2K5JA4WtoEBZ79jJ7ftz3xmg4JbfiQoHXSMsM8k2V8Zixk7jcyV2M8pnoUyAujkAC7ZCKfafbzNNtGaECfE74N2HvhZQQNt7k", + "public": + "xpub6AtVNMgbsU8X1pdNyfv1N3tfYpTWPGwXoKaVFt75A7JGGK4nunbcQ6ayGyGbhxqbzhmjagvjtEDHif7ERCvAeDz2kn58gcK39jGfZYsMFor", + "address": + "DdzFFzCqrhtBNDPZG6npNyqWjpVAyhpP1eobAmxagwwsnomFMcseWmhmEEv6Gcho12GTrTXfRyyiHcW5k2DEaHZLcB4fpxa9jXzLK87A", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RgYLardPBxtoNT8XLCB9hywdkU6jUixdjKnL4ZzPTvd9VfyBF6rf6y44cbM3sG9ZLjr2eNi2TKS1V9GUdjd7aP5geWTkWLvuSrBvsHeoscbgyg1XSUFPgUU82wUkJwBU3YVWfz5faPdLjCxFtZbnEQ", + "public": + "xpub6AtVNMgbsU8X4PUPdqyNAreyfdTQ1fbyQJzJvcZT34ALMGKYPwRqsuwqWAXzDMxMJrhAMeRxVNQgQm2m4gY9zjFyANGDtGsLpJnkGV7fyyN", + "address": + "DdzFFzCqrhsnrSCfRfAz1gyvR8MABDPJ6bVrb98kjiPpMKKsaXK41MnY6xNvHYUExLZZkqJbWZf1gKZBHTgmRmdhDSaCxPuKHLAz1EsL", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RgYLardPBxtocQxZ6skSNyf1iLFwMFMGUX1UfxW3sVFjbxMVVdTnsf2dg3VQZ8R8YYUJcD6U5Qb7oV2L8HfkcqfkrQe4kyXF9mnFCkL1txBa5iwGN2LD6EZVK7W9RqVTjvJG8zgBVzCaTb97aytgr5", + "public": + "xpub6AtVNMgbsU8X5CUWrSvEDbdgNHZuk1xuGdRVZTc7mnYwG83ahWnP4NWwUvABCyuEzMYKmxqwS3U4yPbn7fw8LHam4hQdninJpLRKSLiga7A", + "address": + "DdzFFzCqrhsmhDBveJSXc1V4naJp7VLk7Ambb1JEgJWx9HsPonYZfA3uYkNedaJSyz3k4qmu2TJrJuZTXYVygimY18Y33P1wNNGqsASH", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3Ri9jH3mUr9Eu15RJpjQ3dJJpv3jmRPBds6fCd7tmeBUXrj9tbdGwGBX3CiJGj1Q6xsvwye9Pp4an8mbyUSHFCKmxKCUg3f9RdcrLfZqNV81zvAu3akjcjUn88N3x9TKmPC2Nmpb7FC1TWrXZGf7oYe", + "public": + "xpub6Ayuka6JHUYXgiCLWCo78bY8LU2cHmWKojPCBKDourSwzBHM3KPGLuHb9d96m2gkfR7BddNg3pRkiUjN8BsSa343kYHoVwQy3ygUExefB9c", + "address": + "DdzFFzCqrhsf1LoxQD4AopyTbQzgMquUkTuCMRom5fZHMtxT4eVMof4EAZwMtJ2suJ7LBeVfnAk4krpixZc9xGHRmcMwpHUbuLQPVPjZ", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3Ri9jH3mUr9EuaGnGLf7h2d2unowbRisgPbwg9Dg4yBkkSzndmDJzJN2nkEbZGbty6n2SzEXdo14S5JWf7SNPQXrd88WHfhqgkNso9TMLmVNgoGT8CRFAMCD3tjYyRbJPCsS5nXhpndETQk9jT12xhU", + "public": + "xpub6Ayuka6JHUYXidwgTPjAAxuVaGT5Vhnry6ETA62HLWoX8e2y5zzsf4J1ofEiLatgCeC85SeufywFc32TD3mNuVJ4K5h1UNjEJQqN8XxCcsW", + "address": + "DdzFFzCqrhtC8XxYKtizanJrAPKUKeu1upNbqbMJZHUWTeNfR3XGymU9syspYLPJZFtrBSfvW1g2ad6b8KmmBCDmbHggKk5BDUdJq2Un", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3Ri9jH3mUr9Ev4xLvJRJaBuEvCdMcsC44kR7s6nHV8oM1wFyaERS53wckp1drsBNnQAg1d12md8dZYzHcZHGE4FQKvf7VCzjahMCwhFMbfmQQ1QtkczuuZiYUjF1CsYBq8f2CFxHLp93CRrhcMENNgq", + "public": + "xpub6Ayuka6JHUYXkJVjVGToeytDM49TAupXixmR5mFzsEHW8UncxHrq5aSWnQRrW58erwmvdvHYbXztEc2MbBNG2Rg95K54tAdgvrU7jKyqdtd", + "address": + "DdzFFzCqrhsnAvWW3SNqqfmVs2v9jxq5jVJxEHKqxpdoC6zTn27fyUyXDTvLk6r9U1RrSVbEFHtxpRDYuB78Yh2RKemyv4BCXCEJZKKJ", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "73fec3873a6ecce0008489c0cc93e488ea26b186b0ab18e25c4298c6d7a4995f", + "private": + "20f892f9c75b5d515bc91de4f15c20feb09b9ecdc3d0f55d2804f8f8b6310d40edc73df501a83e9a16bd3290ce2d2d052715f332f44d3f7d589dbb6f1f807adf", + "public": + "007cac20f0db6bc4eb107d933a7d4cc5d98401863d43a9a748cb1e0d0eb92343a3", + "chaincode": + "78b38b00c08c2cbedf82141459ffd3e32a5e29ab3ba712ffa19e596c5fcff464", + "hd_key": + "0309959b0500c62659f6938976a8b627757716f5d29e0ad6a9d0eed4f140011b", + "child": [ + { + "private": + "xprv3RtPnaN99QxLAzRtkxsZcJ2W2G6rdpPJExnMDGfpX7Rq24zzFsbAme5pd7YwegrRb1icjTqSWQWt5s57aWGHfvXWGMK1UdepWvSkp6TsFGRzy3enZUomuoxYri7TyqiYvLVSGDR8iRbxcAXfHGgp96o", + "public": + "xpub6BaPXSnwhd66dycGq1aqJi2znN82E8YS8JRNsv9u5xX7eSaU7jVB6aj34CV1tbXAkKYAg1jQVc3ERSSV5rWzraJQgZYMPtsoixSKuv1ZRBg", + "address": + "DdzFFzCqrhseNaJnho8cwKRXSQTj7PT8gdDA4v62q85zEUhcHEvr9kK2wXMv4KA5WGVYPEh6z1JETBHDGUyr1ZwfNJTj7823UTaJkTph", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RtPnaN99QxLB9FD98qJcAXUPhrszejxrXZewWaySFv1ph4QqrfWRgBC2yVy3k4KYJHr9Yvb5mwimEyzrUcJxSPJZCBTrqdXoU9Y7HjhEhv7ECU5hz7jX49Cv8m3xhgRWaD299gLaFPWxV7awRqzDaX", + "public": + "xpub6BaPXSnwhd66eVHX7Mo9hgccE95VECZCTRLdKfG2Fu6LhKR6sqGP6u7jvBN8vWpD6ci6Dwtj6uKLRZYEMthyumgTp9Yvr6GyMFs7joXQK84", + "address": + "DdzFFzCqrhshZKZFDFoM1y5vssJmE7mBLpdqUQXBzYjWYupEAw6G2PrYwFXmTgoBqa7X2pTJhAmJXfZqRNc9s7r3g6LW8pbARzen2Zg9", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RtPnaN99QxLCBRdKeB9xPBJoUC9DtbUojZLWDzobJxYM9MhXeYspLBtSrVrWMsHTphfaKTHr91AaFFqnhja6W29n9guyBGgAQMkzTb2aWQ27vfSx9rkxtUqCDzUsKyVtQoKodg2SBnWZj3X3bcV6Fp", + "public": + "xpub6BaPXSnwhd66hysJyNBR2DWd8HHT5L9YorWAgrfdzcN8FgsHp9pHZwNVhEgzn6dGDLmSy1J7dGcZG5uf9RjfkPDLjFPhUaJfaPq6DsccWQu", + "address": + "DdzFFzCqrhspdGkmCuPkrBbgY2rUD4Z4fB6snaPQ9rCXgHzqSordKso2PApMH3HQEhzYoBxBStTK6oq897DaAPsm4Bmh9UW5XVMTBFUw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RgYLardPBxtncEbCcrn85FQUiN3AnHWfqgSEkWtYqPrqzBZvrF1iZ2K5JA4WtoEBZ79jJ7ftz3xmg4JbfiQoHXSMsM8k2V8Zixk7jcyV2M8pnoUyAujkAC7ZCKfafbzNNtGaECfE74N2HvhZQQNt7k", + "public": + "xpub6AtVNMgbsU8X1pdNyfv1N3tfYpTWPGwXoKaVFt75A7JGGK4nunbcQ6ayGyGbhxqbzhmjagvjtEDHif7ERCvAeDz2kn58gcK39jGfZYsMFor", + "address": + "DdzFFzCqrhtBNDPZG6npNyqWjpVAyhpP1eobAmxagwwsnomFMcseWmhmEEv6Gcho12GTrTXfRyyiHcW5k2DEaHZLcB4fpxa9jXzLK87A", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RgYLardPBxtoNT8XLCB9hywdkU6jUixdjKnL4ZzPTvd9VfyBF6rf6y44cbM3sG9ZLjr2eNi2TKS1V9GUdjd7aP5geWTkWLvuSrBvsHeoscbgyg1XSUFPgUU82wUkJwBU3YVWfz5faPdLjCxFtZbnEQ", + "public": + "xpub6AtVNMgbsU8X4PUPdqyNAreyfdTQ1fbyQJzJvcZT34ALMGKYPwRqsuwqWAXzDMxMJrhAMeRxVNQgQm2m4gY9zjFyANGDtGsLpJnkGV7fyyN", + "address": + "DdzFFzCqrhsnrSCfRfAz1gyvR8MABDPJ6bVrb98kjiPpMKKsaXK41MnY6xNvHYUExLZZkqJbWZf1gKZBHTgmRmdhDSaCxPuKHLAz1EsL", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RgYLardPBxtocQxZ6skSNyf1iLFwMFMGUX1UfxW3sVFjbxMVVdTnsf2dg3VQZ8R8YYUJcD6U5Qb7oV2L8HfkcqfkrQe4kyXF9mnFCkL1txBa5iwGN2LD6EZVK7W9RqVTjvJG8zgBVzCaTb97aytgr5", + "public": + "xpub6AtVNMgbsU8X5CUWrSvEDbdgNHZuk1xuGdRVZTc7mnYwG83ahWnP4NWwUvABCyuEzMYKmxqwS3U4yPbn7fw8LHam4hQdninJpLRKSLiga7A", + "address": + "DdzFFzCqrhsmhDBveJSXc1V4naJp7VLk7Ambb1JEgJWx9HsPonYZfA3uYkNedaJSyz3k4qmu2TJrJuZTXYVygimY18Y33P1wNNGqsASH", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3Ri9jH3mUr9Eu15RJpjQ3dJJpv3jmRPBds6fCd7tmeBUXrj9tbdGwGBX3CiJGj1Q6xsvwye9Pp4an8mbyUSHFCKmxKCUg3f9RdcrLfZqNV81zvAu3akjcjUn88N3x9TKmPC2Nmpb7FC1TWrXZGf7oYe", + "public": + "xpub6Ayuka6JHUYXgiCLWCo78bY8LU2cHmWKojPCBKDourSwzBHM3KPGLuHb9d96m2gkfR7BddNg3pRkiUjN8BsSa343kYHoVwQy3ygUExefB9c", + "address": + "DdzFFzCqrhsf1LoxQD4AopyTbQzgMquUkTuCMRom5fZHMtxT4eVMof4EAZwMtJ2suJ7LBeVfnAk4krpixZc9xGHRmcMwpHUbuLQPVPjZ", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3Ri9jH3mUr9EuaGnGLf7h2d2unowbRisgPbwg9Dg4yBkkSzndmDJzJN2nkEbZGbty6n2SzEXdo14S5JWf7SNPQXrd88WHfhqgkNso9TMLmVNgoGT8CRFAMCD3tjYyRbJPCsS5nXhpndETQk9jT12xhU", + "public": + "xpub6Ayuka6JHUYXidwgTPjAAxuVaGT5Vhnry6ETA62HLWoX8e2y5zzsf4J1ofEiLatgCeC85SeufywFc32TD3mNuVJ4K5h1UNjEJQqN8XxCcsW", + "address": + "DdzFFzCqrhtC8XxYKtizanJrAPKUKeu1upNbqbMJZHUWTeNfR3XGymU9syspYLPJZFtrBSfvW1g2ad6b8KmmBCDmbHggKk5BDUdJq2Un", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3Ri9jH3mUr9Ev4xLvJRJaBuEvCdMcsC44kR7s6nHV8oM1wFyaERS53wckp1drsBNnQAg1d12md8dZYzHcZHGE4FQKvf7VCzjahMCwhFMbfmQQ1QtkczuuZiYUjF1CsYBq8f2CFxHLp93CRrhcMENNgq", + "public": + "xpub6Ayuka6JHUYXkJVjVGToeytDM49TAupXixmR5mFzsEHW8UncxHrq5aSWnQRrW58erwmvdvHYbXztEc2MbBNG2Rg95K54tAdgvrU7jKyqdtd", + "address": + "DdzFFzCqrhsnAvWW3SNqqfmVs2v9jxq5jVJxEHKqxpdoC6zTn27fyUyXDTvLk6r9U1RrSVbEFHtxpRDYuB78Yh2RKemyv4BCXCEJZKKJ", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "73fec3873a6ecce0008489c0cc93e488ea26b186b0ab18e25c4298c6d7a4995f", + "private": + "20f892f9c75b5d515bc91de4f15c20feb09b9ecdc3d0f55d2804f8f8b6310d40edc73df501a83e9a16bd3290ce2d2d052715f332f44d3f7d589dbb6f1f807adf", + "public": + "007cac20f0db6bc4eb107d933a7d4cc5d98401863d43a9a748cb1e0d0eb92343a3", + "chaincode": + "78b38b00c08c2cbedf82141459ffd3e32a5e29ab3ba712ffa19e596c5fcff464", + "hd_key": + "0309959b0500c62659f6938976a8b627757716f5d29e0ad6a9d0eed4f140011b", + "child": [ + { + "private": + "xprv3RtPnaN99QxLAzRtkxsZcJ2W2G6rdpPJExnMDGfpX7Rq24zzFsbAme5pd7YwegrRb1icjTqSWQWt5s57aWGHfvXWGMK1UdepWvSkp6TsFGRzy3enZUomuoxYri7TyqiYvLVSGDR8iRbxcAXfHGgp96o", + "public": + "xpub6BaPXSnwhd66dycGq1aqJi2znN82E8YS8JRNsv9u5xX7eSaU7jVB6aj34CV1tbXAkKYAg1jQVc3ERSSV5rWzraJQgZYMPtsoixSKuv1ZRBg", + "address": + "DdzFFzCqrhseNaJnho8cwKRXSQTj7PT8gdDA4v62q85zEUhcHEvr9kK2wXMv4KA5WGVYPEh6z1JETBHDGUyr1ZwfNJTj7823UTaJkTph", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RtPnaN99QxLB9FD98qJcAXUPhrszejxrXZewWaySFv1ph4QqrfWRgBC2yVy3k4KYJHr9Yvb5mwimEyzrUcJxSPJZCBTrqdXoU9Y7HjhEhv7ECU5hz7jX49Cv8m3xhgRWaD299gLaFPWxV7awRqzDaX", + "public": + "xpub6BaPXSnwhd66eVHX7Mo9hgccE95VECZCTRLdKfG2Fu6LhKR6sqGP6u7jvBN8vWpD6ci6Dwtj6uKLRZYEMthyumgTp9Yvr6GyMFs7joXQK84", + "address": + "DdzFFzCqrhshZKZFDFoM1y5vssJmE7mBLpdqUQXBzYjWYupEAw6G2PrYwFXmTgoBqa7X2pTJhAmJXfZqRNc9s7r3g6LW8pbARzen2Zg9", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RtPnaN99QxLCBRdKeB9xPBJoUC9DtbUojZLWDzobJxYM9MhXeYspLBtSrVrWMsHTphfaKTHr91AaFFqnhja6W29n9guyBGgAQMkzTb2aWQ27vfSx9rkxtUqCDzUsKyVtQoKodg2SBnWZj3X3bcV6Fp", + "public": + "xpub6BaPXSnwhd66hysJyNBR2DWd8HHT5L9YorWAgrfdzcN8FgsHp9pHZwNVhEgzn6dGDLmSy1J7dGcZG5uf9RjfkPDLjFPhUaJfaPq6DsccWQu", + "address": + "DdzFFzCqrhspdGkmCuPkrBbgY2rUD4Z4fB6snaPQ9rCXgHzqSordKso2PApMH3HQEhzYoBxBStTK6oq897DaAPsm4Bmh9UW5XVMTBFUw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RgYLardPBxtncEbCcrn85FQUiN3AnHWfqgSEkWtYqPrqzBZvrF1iZ2K5JA4WtoEBZ79jJ7ftz3xmg4JbfiQoHXSMsM8k2V8Zixk7jcyV2M8pnoUyAujkAC7ZCKfafbzNNtGaECfE74N2HvhZQQNt7k", + "public": + "xpub6AtVNMgbsU8X1pdNyfv1N3tfYpTWPGwXoKaVFt75A7JGGK4nunbcQ6ayGyGbhxqbzhmjagvjtEDHif7ERCvAeDz2kn58gcK39jGfZYsMFor", + "address": + "DdzFFzCqrhtBNDPZG6npNyqWjpVAyhpP1eobAmxagwwsnomFMcseWmhmEEv6Gcho12GTrTXfRyyiHcW5k2DEaHZLcB4fpxa9jXzLK87A", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RgYLardPBxtoNT8XLCB9hywdkU6jUixdjKnL4ZzPTvd9VfyBF6rf6y44cbM3sG9ZLjr2eNi2TKS1V9GUdjd7aP5geWTkWLvuSrBvsHeoscbgyg1XSUFPgUU82wUkJwBU3YVWfz5faPdLjCxFtZbnEQ", + "public": + "xpub6AtVNMgbsU8X4PUPdqyNAreyfdTQ1fbyQJzJvcZT34ALMGKYPwRqsuwqWAXzDMxMJrhAMeRxVNQgQm2m4gY9zjFyANGDtGsLpJnkGV7fyyN", + "address": + "DdzFFzCqrhsnrSCfRfAz1gyvR8MABDPJ6bVrb98kjiPpMKKsaXK41MnY6xNvHYUExLZZkqJbWZf1gKZBHTgmRmdhDSaCxPuKHLAz1EsL", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RgYLardPBxtocQxZ6skSNyf1iLFwMFMGUX1UfxW3sVFjbxMVVdTnsf2dg3VQZ8R8YYUJcD6U5Qb7oV2L8HfkcqfkrQe4kyXF9mnFCkL1txBa5iwGN2LD6EZVK7W9RqVTjvJG8zgBVzCaTb97aytgr5", + "public": + "xpub6AtVNMgbsU8X5CUWrSvEDbdgNHZuk1xuGdRVZTc7mnYwG83ahWnP4NWwUvABCyuEzMYKmxqwS3U4yPbn7fw8LHam4hQdninJpLRKSLiga7A", + "address": + "DdzFFzCqrhsmhDBveJSXc1V4naJp7VLk7Ambb1JEgJWx9HsPonYZfA3uYkNedaJSyz3k4qmu2TJrJuZTXYVygimY18Y33P1wNNGqsASH", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3Ri9jH3mUr9Eu15RJpjQ3dJJpv3jmRPBds6fCd7tmeBUXrj9tbdGwGBX3CiJGj1Q6xsvwye9Pp4an8mbyUSHFCKmxKCUg3f9RdcrLfZqNV81zvAu3akjcjUn88N3x9TKmPC2Nmpb7FC1TWrXZGf7oYe", + "public": + "xpub6Ayuka6JHUYXgiCLWCo78bY8LU2cHmWKojPCBKDourSwzBHM3KPGLuHb9d96m2gkfR7BddNg3pRkiUjN8BsSa343kYHoVwQy3ygUExefB9c", + "address": + "DdzFFzCqrhsf1LoxQD4AopyTbQzgMquUkTuCMRom5fZHMtxT4eVMof4EAZwMtJ2suJ7LBeVfnAk4krpixZc9xGHRmcMwpHUbuLQPVPjZ", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3Ri9jH3mUr9EuaGnGLf7h2d2unowbRisgPbwg9Dg4yBkkSzndmDJzJN2nkEbZGbty6n2SzEXdo14S5JWf7SNPQXrd88WHfhqgkNso9TMLmVNgoGT8CRFAMCD3tjYyRbJPCsS5nXhpndETQk9jT12xhU", + "public": + "xpub6Ayuka6JHUYXidwgTPjAAxuVaGT5Vhnry6ETA62HLWoX8e2y5zzsf4J1ofEiLatgCeC85SeufywFc32TD3mNuVJ4K5h1UNjEJQqN8XxCcsW", + "address": + "DdzFFzCqrhtC8XxYKtizanJrAPKUKeu1upNbqbMJZHUWTeNfR3XGymU9syspYLPJZFtrBSfvW1g2ad6b8KmmBCDmbHggKk5BDUdJq2Un", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3Ri9jH3mUr9Ev4xLvJRJaBuEvCdMcsC44kR7s6nHV8oM1wFyaERS53wckp1drsBNnQAg1d12md8dZYzHcZHGE4FQKvf7VCzjahMCwhFMbfmQQ1QtkczuuZiYUjF1CsYBq8f2CFxHLp93CRrhcMENNgq", + "public": + "xpub6Ayuka6JHUYXkJVjVGToeytDM49TAupXixmR5mFzsEHW8UncxHrq5aSWnQRrW58erwmvdvHYbXztEc2MbBNG2Rg95K54tAdgvrU7jKyqdtd", + "address": + "DdzFFzCqrhsnAvWW3SNqqfmVs2v9jxq5jVJxEHKqxpdoC6zTn27fyUyXDTvLk6r9U1RrSVbEFHtxpRDYuB78Yh2RKemyv4BCXCEJZKKJ", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "c12ce47ce5df7f8618e8627d47f16e55f115d24a0e8d1f82821c0f9e24855b57", + "private": + "0030b120c696aebc8ac62997e9196b16f4fabfc7fd5ff040cf195249f68da0529b82a2a5858ef6b6d541f9397e67647370133d9b917c9880139b65d9a1786a62", + "public": + "00e7301eead358a6388b83f0e32238bc237d8e8c9b37b00dbb99abe8322e695aa3", + "chaincode": + "159b55fee37181d10f25e22d1d52d7124315a9ab0e1a00a2a864f92da409e7ec", + "hd_key": + "5dbf00ed6fdb568db2e51e648db1731793252ca8b5fef688a2b0f680eb484ed6", + "child": [ + { + "private": + "xprv3Rftcix2pEEC2hDPkG9Nz2uR56eTEH7GEoZr6RmCXYFeSwkMi9B3VDumUqf4JLPUkPEzT85wHn5tqASMpWvFEeUAyrCQtUkYVs4VZmXWttNmskVxDs52LktchSj7ejAkg71QrpvWB5c5nU99USqZJn9", + "public": + "xpub6ArJPMyxj7MXvG7voFNjsuHaosC3V6qQDFY1XzR3VhG36oXDXjDRGWYHbKWWB39KmvYhLY6i7G7RpXFZN59uNKd8TYQmFYftk97jkhvXWEy", + "address": + "DdzFFzCqrhsqLoZuTp39zynV4vBjbS4iFBThp5kAqJ7UWp2wUMwdepj1aKd8vT9vUwNzFrCJh58jGz4VJy7VsrghREo3cic2C2XQV9r1", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rftcix2pEEC3vSWb9sZsbvpUNZDgza95MZHzAVDwrHgEQm5LiCriSA8Qmxoxypa1EGVpSKVjQyEQgpRbM1PPbe7wrh1Cn39Vt4RQJFfGhrUZ3vxSD4ZLm2otzhAv5DgFVZ1bNkBrjKohFrqSJ17QRT", + "public": + "xpub6ArJPMyxj7MXzPtWbhZ1E8CQpoYJHbrr3e9pf6ohKv8fxj8cLwJkJrQCLyADkf1Bk9JHkbxWJEw5cBFDjnNSYJRNc8jvCN6tSY8xXpQqhN8", + "address": + "DdzFFzCqrhskdAyQZboMoU8eKCtG6cvbVdy1ANo4CAGt2mQVQ5zkc6mg2YbmwmAibvU9ykZrFf6wxHz1wxj6QVvm59PWLwnAN118qQu8", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rftcix2pEEC4eaGqF13D6nLwNVmf31c6y34xbe36p1j4zKfREpXXHaouCe3STXDpiRjJYWuTzn2SSvkCjjFEwaAa6QWWKrqkzPPk2qk9Zf6c6URvV7PsK2rMjfU8DvzMj4efuhzGjLzfFiRbdJVwkv", + "public": + "xpub6ArJPMyxj7MY2qix4FQqauYa4hnGcvLt2XcKUb1LujxQtwoCA3t9t5foGC9Le11DtQS3Eogn7dixticvyd31PJHzW6xLBJPyS5pLxP2dr97", + "address": + "DdzFFzCqrhsjBXx7LauJmKvapdJ7ahjSwHUwMushQC9LJt1ZQzEtzFF1me6VyFBwm3j5JVGyowigBv3fUL5cJTPXr9kGq9JwXbfZVZDa", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RPTY1Crpe6J7jfsxMFuNqfNbUMmMiiPFwA6R1gVUcDmURLuNJSk9YBb81TweuDtY67XWHf2fzUbXT7YD14hobcyy11wAK5ivotS3dbW7FNW5E5KfG3iExuXrpf9rGa72kgVVSY99Fu5c87Xf3mgB9q", + "public": + "xpub69tz2bzkmE1Qg6JWypYM11YmczaZVTDqJXWCWEXmH1KaDfF3zumks4ve4fEAnNG3MAhugeskXqVPh62h7qzjs1AJD5ERnCzcV36NaPxcynw", + "address": + "DdzFFzCqrht47JxrFypC1tXLzDHMUh7cH6gMRgwGUC4y1mzkSrTpnUKBEjAgdfmjC8mWcBnmC1VLPxX59oet8fsMA5AaP4QMuSo7ev5E", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RPTY1Crpe6J8eTG9Jtvr6e5Qvvz66XDbk8Hz1TsT5TCsn71N19yLntY2bjwc6rzJbaP5KHDp55VsDXjgxd5rqXjZf8quR74ThhXWUjLHudv8ioRTdGyZPgheJ6QoMg47KT9jbL6t4x1DgnsLnMHGNN", + "public": + "xpub69tz2bzkmE1Qj9z3riCf1hq81eCcdGkrhCpuHREpoQ8pdAy8iemh6fUri8gvKC6jzdJpGzF6AAdfLTfjqJuRiHKPjsPra6oTb74xNDgULw1", + "address": + "DdzFFzCqrhsqHAqiswHKatwefMwx6nugz8voVABXRp5z7FfCjuvyCM4kk3frFm7Nnc6BoRPEyV8EmorwqQvKEjuDqk9PqjHbrjRA1gug", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RPTY1Crpe6J9PK21bpDzMsE26GcAGBg3qDYBykvyj4PwgG1R3GXUg5ortyLVNtwmvoKtfr1E8QAURUK6n2FZDbCS47AATxYnAgrvxMYXiGa59sSNx8xSofm91cVKF7eMX9nZoCVcBvVgcJpeZVxe7R", + "public": + "xpub69tz2bzkmE1QmeFrMh3R6GowYthQ8VnxSB54WLHZMwehs4EzcYfRwdYy8E2Wffida8vxKwPq9b1HDvAPNLvbkAFHxqQHqMFZuNCecmmL1HB", + "address": + "DdzFFzCqrhse3AeUboxrV1cyPYBnP2J213bHvcpCib8fMp8YNLnkTN96xhnkbkMeyRSsRvzzgrYqLEUuocLhDjD7UZk4TWb2DQz2zZWQ", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RSTUy4uToSj3u2wdC72K659JJPmsj6nU5dje31DUCX2D7UBFwZZXcr4p6XkVyNpX2wT88cZnUpTLF7So3cCF5RAVCddoo3Wm5NuJWFF87sGpKJzpg8PX6bpiacMdSWxdWUGz7um9uoq4UjRVnVyZvg", + "public": + "xpub6A55b5go2yvzhC84AtoyDbUFwymoMeJ4MFrup9HuQ1fRnvAgcWtgCzjcm223ZCS1zqirjkQ7BZCtQKrRo96me9oAhZSPVv1tJSicBPKWwuG", + "address": + "DdzFFzCqrhsziMBceisdP5nCDEXkoucYCFvc57YF1ZX8mquQpLUMbncqgizBbVjZRE3uf2fv8jHBdDmWRwKZJZUEw8iAmRpcv5nk1gHF", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RSTUy4uToSj4bjtbp5oPAYNWgpYm7X2k45aq5RJsKef7PQsMbrUTuzaXLVY5qVtM1KFK8U3rCjyssHfauVXMF3jneTxj4dKf8D3AzYQvAaA3ZC1tvCH7RRrwXd1nGY9eNRFm6ZBXaFbcYpmnmcausi", + "public": + "xpub6A55b5go2yvzjZ9iPhKUhb4CnTbdW9C1geXQyThmmp8NXniYURuvbHS2G9Qc7WqvCAGB9TfxQYS5xhEfB2Rz6NkKxJYFoEst7LJhWe6p8HX", + "address": + "DdzFFzCqrhsxa5XmmQR7rrdM5mFy2VLAC7UpECDxXZe719qHAN2t8aCfXo82vS8ajGCfjTpbvsAKb2qjksThmY5t4fsWAe6nh8XXPUo8", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RSTUy4uToSj5NkNfMeiKqYRG2F4wGJcJmNVeg6hANU2EdPKTZN12pGCFY7H6DUFcM2XmjPTaFGxDikJmhyHWAXsNrpDUPbck9Q5natY5SYm8xpkwdpntFXYTudJzNhj8thujPtGB3ZvD4sJeVJ7WK6", + "public": + "xpub6A55b5go2yvznAfPMoyCvpXwArJaMiu7A76WnmsoNUA6LukFR75WArTLy17y3bbiSy5Jw5SxTSvWETZYrJQXcrXTN8rRP72vDued95AWxw9", + "address": + "DdzFFzCqrht1Ceq6CSm9FovFb6uN24YzmTnaPPw44RWFdzJrKFfGapxGgVzJ1QXwb8hb8ityEL1dy3kdnwq4WGL4xkJd5Ydqftnhw2yo", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "c12ce47ce5df7f8618e8627d47f16e55f115d24a0e8d1f82821c0f9e24855b57", + "private": + "0030b120c696aebc8ac62997e9196b16f4fabfc7fd5ff040cf195249f68da0529b82a2a5858ef6b6d541f9397e67647370133d9b917c9880139b65d9a1786a62", + "public": + "00e7301eead358a6388b83f0e32238bc237d8e8c9b37b00dbb99abe8322e695aa3", + "chaincode": + "159b55fee37181d10f25e22d1d52d7124315a9ab0e1a00a2a864f92da409e7ec", + "hd_key": + "5dbf00ed6fdb568db2e51e648db1731793252ca8b5fef688a2b0f680eb484ed6", + "child": [ + { + "private": + "xprv3Rftcix2pEEC2hDPkG9Nz2uR56eTEH7GEoZr6RmCXYFeSwkMi9B3VDumUqf4JLPUkPEzT85wHn5tqASMpWvFEeUAyrCQtUkYVs4VZmXWttNmskVxDs52LktchSj7ejAkg71QrpvWB5c5nU99USqZJn9", + "public": + "xpub6ArJPMyxj7MXvG7voFNjsuHaosC3V6qQDFY1XzR3VhG36oXDXjDRGWYHbKWWB39KmvYhLY6i7G7RpXFZN59uNKd8TYQmFYftk97jkhvXWEy", + "address": + "DdzFFzCqrhsqLoZuTp39zynV4vBjbS4iFBThp5kAqJ7UWp2wUMwdepj1aKd8vT9vUwNzFrCJh58jGz4VJy7VsrghREo3cic2C2XQV9r1", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rftcix2pEEC3vSWb9sZsbvpUNZDgza95MZHzAVDwrHgEQm5LiCriSA8Qmxoxypa1EGVpSKVjQyEQgpRbM1PPbe7wrh1Cn39Vt4RQJFfGhrUZ3vxSD4ZLm2otzhAv5DgFVZ1bNkBrjKohFrqSJ17QRT", + "public": + "xpub6ArJPMyxj7MXzPtWbhZ1E8CQpoYJHbrr3e9pf6ohKv8fxj8cLwJkJrQCLyADkf1Bk9JHkbxWJEw5cBFDjnNSYJRNc8jvCN6tSY8xXpQqhN8", + "address": + "DdzFFzCqrhskdAyQZboMoU8eKCtG6cvbVdy1ANo4CAGt2mQVQ5zkc6mg2YbmwmAibvU9ykZrFf6wxHz1wxj6QVvm59PWLwnAN118qQu8", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rftcix2pEEC4eaGqF13D6nLwNVmf31c6y34xbe36p1j4zKfREpXXHaouCe3STXDpiRjJYWuTzn2SSvkCjjFEwaAa6QWWKrqkzPPk2qk9Zf6c6URvV7PsK2rMjfU8DvzMj4efuhzGjLzfFiRbdJVwkv", + "public": + "xpub6ArJPMyxj7MY2qix4FQqauYa4hnGcvLt2XcKUb1LujxQtwoCA3t9t5foGC9Le11DtQS3Eogn7dixticvyd31PJHzW6xLBJPyS5pLxP2dr97", + "address": + "DdzFFzCqrhsjBXx7LauJmKvapdJ7ahjSwHUwMushQC9LJt1ZQzEtzFF1me6VyFBwm3j5JVGyowigBv3fUL5cJTPXr9kGq9JwXbfZVZDa", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RPTY1Crpe6J7jfsxMFuNqfNbUMmMiiPFwA6R1gVUcDmURLuNJSk9YBb81TweuDtY67XWHf2fzUbXT7YD14hobcyy11wAK5ivotS3dbW7FNW5E5KfG3iExuXrpf9rGa72kgVVSY99Fu5c87Xf3mgB9q", + "public": + "xpub69tz2bzkmE1Qg6JWypYM11YmczaZVTDqJXWCWEXmH1KaDfF3zumks4ve4fEAnNG3MAhugeskXqVPh62h7qzjs1AJD5ERnCzcV36NaPxcynw", + "address": + "DdzFFzCqrht47JxrFypC1tXLzDHMUh7cH6gMRgwGUC4y1mzkSrTpnUKBEjAgdfmjC8mWcBnmC1VLPxX59oet8fsMA5AaP4QMuSo7ev5E", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RPTY1Crpe6J8eTG9Jtvr6e5Qvvz66XDbk8Hz1TsT5TCsn71N19yLntY2bjwc6rzJbaP5KHDp55VsDXjgxd5rqXjZf8quR74ThhXWUjLHudv8ioRTdGyZPgheJ6QoMg47KT9jbL6t4x1DgnsLnMHGNN", + "public": + "xpub69tz2bzkmE1Qj9z3riCf1hq81eCcdGkrhCpuHREpoQ8pdAy8iemh6fUri8gvKC6jzdJpGzF6AAdfLTfjqJuRiHKPjsPra6oTb74xNDgULw1", + "address": + "DdzFFzCqrhsqHAqiswHKatwefMwx6nugz8voVABXRp5z7FfCjuvyCM4kk3frFm7Nnc6BoRPEyV8EmorwqQvKEjuDqk9PqjHbrjRA1gug", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RPTY1Crpe6J9PK21bpDzMsE26GcAGBg3qDYBykvyj4PwgG1R3GXUg5ortyLVNtwmvoKtfr1E8QAURUK6n2FZDbCS47AATxYnAgrvxMYXiGa59sSNx8xSofm91cVKF7eMX9nZoCVcBvVgcJpeZVxe7R", + "public": + "xpub69tz2bzkmE1QmeFrMh3R6GowYthQ8VnxSB54WLHZMwehs4EzcYfRwdYy8E2Wffida8vxKwPq9b1HDvAPNLvbkAFHxqQHqMFZuNCecmmL1HB", + "address": + "DdzFFzCqrhse3AeUboxrV1cyPYBnP2J213bHvcpCib8fMp8YNLnkTN96xhnkbkMeyRSsRvzzgrYqLEUuocLhDjD7UZk4TWb2DQz2zZWQ", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RSTUy4uToSj3u2wdC72K659JJPmsj6nU5dje31DUCX2D7UBFwZZXcr4p6XkVyNpX2wT88cZnUpTLF7So3cCF5RAVCddoo3Wm5NuJWFF87sGpKJzpg8PX6bpiacMdSWxdWUGz7um9uoq4UjRVnVyZvg", + "public": + "xpub6A55b5go2yvzhC84AtoyDbUFwymoMeJ4MFrup9HuQ1fRnvAgcWtgCzjcm223ZCS1zqirjkQ7BZCtQKrRo96me9oAhZSPVv1tJSicBPKWwuG", + "address": + "DdzFFzCqrhsziMBceisdP5nCDEXkoucYCFvc57YF1ZX8mquQpLUMbncqgizBbVjZRE3uf2fv8jHBdDmWRwKZJZUEw8iAmRpcv5nk1gHF", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RSTUy4uToSj4bjtbp5oPAYNWgpYm7X2k45aq5RJsKef7PQsMbrUTuzaXLVY5qVtM1KFK8U3rCjyssHfauVXMF3jneTxj4dKf8D3AzYQvAaA3ZC1tvCH7RRrwXd1nGY9eNRFm6ZBXaFbcYpmnmcausi", + "public": + "xpub6A55b5go2yvzjZ9iPhKUhb4CnTbdW9C1geXQyThmmp8NXniYURuvbHS2G9Qc7WqvCAGB9TfxQYS5xhEfB2Rz6NkKxJYFoEst7LJhWe6p8HX", + "address": + "DdzFFzCqrhsxa5XmmQR7rrdM5mFy2VLAC7UpECDxXZe719qHAN2t8aCfXo82vS8ajGCfjTpbvsAKb2qjksThmY5t4fsWAe6nh8XXPUo8", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RSTUy4uToSj5NkNfMeiKqYRG2F4wGJcJmNVeg6hANU2EdPKTZN12pGCFY7H6DUFcM2XmjPTaFGxDikJmhyHWAXsNrpDUPbck9Q5natY5SYm8xpkwdpntFXYTudJzNhj8thujPtGB3ZvD4sJeVJ7WK6", + "public": + "xpub6A55b5go2yvznAfPMoyCvpXwArJaMiu7A76WnmsoNUA6LukFR75WArTLy17y3bbiSy5Jw5SxTSvWETZYrJQXcrXTN8rRP72vDued95AWxw9", + "address": + "DdzFFzCqrht1Ceq6CSm9FovFb6uN24YzmTnaPPw44RWFdzJrKFfGapxGgVzJ1QXwb8hb8ityEL1dy3kdnwq4WGL4xkJd5Ydqftnhw2yo", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "c12ce47ce5df7f8618e8627d47f16e55f115d24a0e8d1f82821c0f9e24855b57", + "private": + "0030b120c696aebc8ac62997e9196b16f4fabfc7fd5ff040cf195249f68da0529b82a2a5858ef6b6d541f9397e67647370133d9b917c9880139b65d9a1786a62", + "public": + "00e7301eead358a6388b83f0e32238bc237d8e8c9b37b00dbb99abe8322e695aa3", + "chaincode": + "159b55fee37181d10f25e22d1d52d7124315a9ab0e1a00a2a864f92da409e7ec", + "hd_key": + "5dbf00ed6fdb568db2e51e648db1731793252ca8b5fef688a2b0f680eb484ed6", + "child": [ + { + "private": + "xprv3Rftcix2pEEC2hDPkG9Nz2uR56eTEH7GEoZr6RmCXYFeSwkMi9B3VDumUqf4JLPUkPEzT85wHn5tqASMpWvFEeUAyrCQtUkYVs4VZmXWttNmskVxDs52LktchSj7ejAkg71QrpvWB5c5nU99USqZJn9", + "public": + "xpub6ArJPMyxj7MXvG7voFNjsuHaosC3V6qQDFY1XzR3VhG36oXDXjDRGWYHbKWWB39KmvYhLY6i7G7RpXFZN59uNKd8TYQmFYftk97jkhvXWEy", + "address": + "DdzFFzCqrhsqLoZuTp39zynV4vBjbS4iFBThp5kAqJ7UWp2wUMwdepj1aKd8vT9vUwNzFrCJh58jGz4VJy7VsrghREo3cic2C2XQV9r1", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rftcix2pEEC3vSWb9sZsbvpUNZDgza95MZHzAVDwrHgEQm5LiCriSA8Qmxoxypa1EGVpSKVjQyEQgpRbM1PPbe7wrh1Cn39Vt4RQJFfGhrUZ3vxSD4ZLm2otzhAv5DgFVZ1bNkBrjKohFrqSJ17QRT", + "public": + "xpub6ArJPMyxj7MXzPtWbhZ1E8CQpoYJHbrr3e9pf6ohKv8fxj8cLwJkJrQCLyADkf1Bk9JHkbxWJEw5cBFDjnNSYJRNc8jvCN6tSY8xXpQqhN8", + "address": + "DdzFFzCqrhskdAyQZboMoU8eKCtG6cvbVdy1ANo4CAGt2mQVQ5zkc6mg2YbmwmAibvU9ykZrFf6wxHz1wxj6QVvm59PWLwnAN118qQu8", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rftcix2pEEC4eaGqF13D6nLwNVmf31c6y34xbe36p1j4zKfREpXXHaouCe3STXDpiRjJYWuTzn2SSvkCjjFEwaAa6QWWKrqkzPPk2qk9Zf6c6URvV7PsK2rMjfU8DvzMj4efuhzGjLzfFiRbdJVwkv", + "public": + "xpub6ArJPMyxj7MY2qix4FQqauYa4hnGcvLt2XcKUb1LujxQtwoCA3t9t5foGC9Le11DtQS3Eogn7dixticvyd31PJHzW6xLBJPyS5pLxP2dr97", + "address": + "DdzFFzCqrhsjBXx7LauJmKvapdJ7ahjSwHUwMushQC9LJt1ZQzEtzFF1me6VyFBwm3j5JVGyowigBv3fUL5cJTPXr9kGq9JwXbfZVZDa", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RPTY1Crpe6J7jfsxMFuNqfNbUMmMiiPFwA6R1gVUcDmURLuNJSk9YBb81TweuDtY67XWHf2fzUbXT7YD14hobcyy11wAK5ivotS3dbW7FNW5E5KfG3iExuXrpf9rGa72kgVVSY99Fu5c87Xf3mgB9q", + "public": + "xpub69tz2bzkmE1Qg6JWypYM11YmczaZVTDqJXWCWEXmH1KaDfF3zumks4ve4fEAnNG3MAhugeskXqVPh62h7qzjs1AJD5ERnCzcV36NaPxcynw", + "address": + "DdzFFzCqrht47JxrFypC1tXLzDHMUh7cH6gMRgwGUC4y1mzkSrTpnUKBEjAgdfmjC8mWcBnmC1VLPxX59oet8fsMA5AaP4QMuSo7ev5E", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RPTY1Crpe6J8eTG9Jtvr6e5Qvvz66XDbk8Hz1TsT5TCsn71N19yLntY2bjwc6rzJbaP5KHDp55VsDXjgxd5rqXjZf8quR74ThhXWUjLHudv8ioRTdGyZPgheJ6QoMg47KT9jbL6t4x1DgnsLnMHGNN", + "public": + "xpub69tz2bzkmE1Qj9z3riCf1hq81eCcdGkrhCpuHREpoQ8pdAy8iemh6fUri8gvKC6jzdJpGzF6AAdfLTfjqJuRiHKPjsPra6oTb74xNDgULw1", + "address": + "DdzFFzCqrhsqHAqiswHKatwefMwx6nugz8voVABXRp5z7FfCjuvyCM4kk3frFm7Nnc6BoRPEyV8EmorwqQvKEjuDqk9PqjHbrjRA1gug", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RPTY1Crpe6J9PK21bpDzMsE26GcAGBg3qDYBykvyj4PwgG1R3GXUg5ortyLVNtwmvoKtfr1E8QAURUK6n2FZDbCS47AATxYnAgrvxMYXiGa59sSNx8xSofm91cVKF7eMX9nZoCVcBvVgcJpeZVxe7R", + "public": + "xpub69tz2bzkmE1QmeFrMh3R6GowYthQ8VnxSB54WLHZMwehs4EzcYfRwdYy8E2Wffida8vxKwPq9b1HDvAPNLvbkAFHxqQHqMFZuNCecmmL1HB", + "address": + "DdzFFzCqrhse3AeUboxrV1cyPYBnP2J213bHvcpCib8fMp8YNLnkTN96xhnkbkMeyRSsRvzzgrYqLEUuocLhDjD7UZk4TWb2DQz2zZWQ", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RSTUy4uToSj3u2wdC72K659JJPmsj6nU5dje31DUCX2D7UBFwZZXcr4p6XkVyNpX2wT88cZnUpTLF7So3cCF5RAVCddoo3Wm5NuJWFF87sGpKJzpg8PX6bpiacMdSWxdWUGz7um9uoq4UjRVnVyZvg", + "public": + "xpub6A55b5go2yvzhC84AtoyDbUFwymoMeJ4MFrup9HuQ1fRnvAgcWtgCzjcm223ZCS1zqirjkQ7BZCtQKrRo96me9oAhZSPVv1tJSicBPKWwuG", + "address": + "DdzFFzCqrhsziMBceisdP5nCDEXkoucYCFvc57YF1ZX8mquQpLUMbncqgizBbVjZRE3uf2fv8jHBdDmWRwKZJZUEw8iAmRpcv5nk1gHF", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RSTUy4uToSj4bjtbp5oPAYNWgpYm7X2k45aq5RJsKef7PQsMbrUTuzaXLVY5qVtM1KFK8U3rCjyssHfauVXMF3jneTxj4dKf8D3AzYQvAaA3ZC1tvCH7RRrwXd1nGY9eNRFm6ZBXaFbcYpmnmcausi", + "public": + "xpub6A55b5go2yvzjZ9iPhKUhb4CnTbdW9C1geXQyThmmp8NXniYURuvbHS2G9Qc7WqvCAGB9TfxQYS5xhEfB2Rz6NkKxJYFoEst7LJhWe6p8HX", + "address": + "DdzFFzCqrhsxa5XmmQR7rrdM5mFy2VLAC7UpECDxXZe719qHAN2t8aCfXo82vS8ajGCfjTpbvsAKb2qjksThmY5t4fsWAe6nh8XXPUo8", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RSTUy4uToSj5NkNfMeiKqYRG2F4wGJcJmNVeg6hANU2EdPKTZN12pGCFY7H6DUFcM2XmjPTaFGxDikJmhyHWAXsNrpDUPbck9Q5natY5SYm8xpkwdpntFXYTudJzNhj8thujPtGB3ZvD4sJeVJ7WK6", + "public": + "xpub6A55b5go2yvznAfPMoyCvpXwArJaMiu7A76WnmsoNUA6LukFR75WArTLy17y3bbiSy5Jw5SxTSvWETZYrJQXcrXTN8rRP72vDued95AWxw9", + "address": + "DdzFFzCqrht1Ceq6CSm9FovFb6uN24YzmTnaPPw44RWFdzJrKFfGapxGgVzJ1QXwb8hb8ityEL1dy3kdnwq4WGL4xkJd5Ydqftnhw2yo", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "bde681f25db87df4238bc0cf9771837bea049a483c505eb18f7bd591657738c6", + "private": + "08a33edeea7cbab0630320fd6c470f3828fd2fe2926effb03422d20820f2615bb59c7186563577aa6ffb1611f188b8a4671c921626d56512d325e07e507dffc6", + "public": + "0015c606f04449d9a550941f748bfd49d77982937f3d11daf32323c7feb1cbcf59", + "chaincode": + "4a1d811ee173e7672887da42cbaeb72259170bb78d15f8d419ffebd8e85846d1", + "hd_key": + "4e170917ffe126227fab3261a2580bf6b5ccedc86be8d1b37640389a0dfadfb7", + "child": [ + { + "private": + "xprv3ReftS6tdySh4XCgoL1Kc8VwFjmbqe9vmefXfEGrjku8GyMF4rP5mptTiXJ8y2vD2f4tGmJQiQMmPvY35H7Br9SWEyBTtix88Ej6A3yJmMe6C3MjKh6tuzPo9pvbeuRj3V8xg6KEnhWB7HCb2bpQ8kA", + "public": + "xpub6AnCHpczEzjuUNJaHEjCoA4Q8thuvzyYzMWdxRTa1XTrduiiCwbdGVpUQEhyLkSvTpgKDmFpCRPR6GoLUT1RpPZMAXGQd7wcW9qvvbBQeRE", + "address": + "DdzFFzCqrhssSYqSEEpPCjD4EWfv3G9zfMwmdDdTu9zQ1oV1zE42ZzUZuQpbypcv5jvkogjc6ccL5rxR8bXUTGZuBrKu7jYF38EhAdco", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3ReftS6tdySh5cnCopiRU672RFbELwP63AooUcjrgx2z7xEAtnxUe6WRgftjsNmzAxQc2GfNbAaRaES8j4gBYvQnGbj436Qonjxg7H31ExxCQoVaxBwR2dUpK1iUPg5gk7kMxgUXgB2rBTa7FZAaeRW", + "public": + "xpub6AnCHpczEzjuY4Ks71MpcjYBayb7TMD2omyu6F2kVjuKSLdvtz6Gy6gA5fCDVaovByouuLWLpbQzbRpqtuXLCfMy6mgbfZYBHeN42QYaQej", + "address": + "DdzFFzCqrhsrCFALNMv9oHuYYFoZqpgwAeuNxGxR2j62Ph9EsDsnCvJnercKfEPhobP9tnRHTwwy2ixeuRvG6NnETxBNVGyLYQHiLDqq", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3ReftS6tdySh6KybW7jxJJk9B2RqourfE8dRHpVCnrjc9oQmU4nF2vez9qMFeXoVAEz4FgKnR8rRAnVkv54LL9Mo9259ZUP8iH9ksziscWbN3SqxkSFLtmFqRqkEFPx1ULRVAVM7zoBVc4P11ewktQE", + "public": + "xpub6AnCHpczEzjuaT1GmmLevxx36AU9yDNVMgPwivWbLApfXFHqYdvenYBip43UqK1x3N9RzJTvxvJz1EuJfHNx2MB56TbRHQ5QkXD18p5DSFy", + "address": + "DdzFFzCqrhtC1P8ieUFWGMEEiGfaPE46CZzGNS1s2xxEyuZzfVrE9uRNFkRvXr6A8zEv7efWQbSC7PuHDLz6ApP9F7Jtk48EH5ZLHHhi", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RXSKMrcKdAxpYd1u7YMrbz2MFWWXg7cNAy9JiqG9HXeCbuqfdueuu42cp2oRXDLy9kTBxzjTnSBN5Szd8D5PigUGgUHAZh4vjddZeX8Zg26oUygtoBTdgwxemvviei34G4a39aFbpVRREwZcCwHhqZ", + "public": + "xpub6AMqtfQrQciHKiFKUW1CyVeRgbzZQKaQFiugRSxeqsvrxBXoK8J2rSQ5k595mq1y4zWgvUVxnKUC57jgBpmMrcZx5NzvPDWkgr4rbrrPZDy", + "address": + "DdzFFzCqrht2yx6sDGjsCYHUM1SefQVMmj5VLkE3J7eYEAHU9ZxDNEPDd7NTrFgegS8Fit1gUZvNx74uXB8iVRNGyx2EsqEnYTpLLPUz", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RXSKMrcKdAxpw96ubDPnntdgCMR4cbKdpdLhQdxHqxuL2fdHVTT9NURHG4tqgjWQpwjcE66WCpJdQP3AbRkKWwUZk19caXSCr2cahsEfVTqnnuXvZJGVbQSV5MscEG2wS71kv3KXC6UNMLfqxH5bUN", + "public": + "xpub6AMqtfQrQciHM23zqDvWxrYgaZpBwmGLZfgTZw1qogwVy6AumTgdSeQJNHXAim1xts7LntsFPxd6qQmcjtuC7qYiPjZzSP6trEqH6JLUNsf", + "address": + "DdzFFzCqrhsg6ydpAnDp6U67vH4XvcgntfViq1hXL1PXaxuCfoNCjDZVgfkVozoxJvS7ZPcsMb4KmAnjTL2oVySuRmxzc8cvem3bm5yr", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RXSKMrcKdAxqwGFzYcmmxSBhpzkxAUJyGMkN8CqXT3VbrTKSyKkG1fbSLiMpFtihahLYzt3GrVSQhhGQ8rxbgkJUvzGZkgiFbwW4LeTdbQCRiTxx2Jf9AysPQToiDswNgj8zs1Kg6VQfbf36vVPYXo", + "public": + "xpub6AMqtfQrQciHQPiKg5ma6MAFrNQ8GJivMscPcWSRMEtzSWiYAibHah26NmMdEXx6X3GF2MDptJDY96KPyeGnEN4j1TFXUD2YH592rQPNiby", + "address": + "DdzFFzCqrht6W1BrV4dbbNBL2ZdvW8P33fx15u5DX8KbnkzRws2bNm88Kx7uxPeoXJ87SJHWio6416K45DHJHzmeGPLRq7aLvrXnHhy9", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RroN5uy8AiRsh5kGk6SbxA5GgaYvA1hmXsdZAyHqnKyWUHhD1R7N92baxwEnP1tHHYkrLfKCh2mEKDBjmiupMRpTXCYL1YfDjhhcvPs9Zncn7tpt87zssbXHyamLVNbRsFzyCxmssrps6kj5spKQSe", + "public": + "xpub6BV2QRefBmTFK4AXuXxR8z2T6BnAQPssUH8KTo2K6ErEgFrrX1kATdRZwwECYdYV9ce2RUjsKKot8P5icUnwePpZtqpJUZyiEDfg2QMueuT", + "address": + "DdzFFzCqrhsnZTQkcMqTuEwhNRhrveCQCGi1YMJv8vkF8sKYdWsJdPm4FXHu1B9xy4Xgg7sLiXN6GbduYG36E3LuDk7bYx4BGbah7ohm", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RroN5uy8AiRu3dj4RfETyiTztKWAjGfyGh3Fg56eBXUFaaKFESbyYompdKovyXNYShxz4HseBy3ux5GqoBiWrbr7hFMbwDMrxQ8Q6E2wU8TTF4PQ4Sj4YFb95MVjx5Hj4trcFm3jG3VeT4ikGVdsN9", + "public": + "xpub6BV2QRefBmTFPcbKtSCohAy6YQSYQ5fXkncPUfmbxgSe2d528YMiA3kbos4pjNhTVJ6VQxYid4uAxcgVvLNsLW6bhkuT2yRXhUgGbCyBkkc", + "address": + "DdzFFzCqrhssdBtSp1F3NL5eN5yvQGsGdUBfMS2tvQAPfpJfiWHYmhFxZRsVuNPNwGqSKDE8gKAexKUcyXk4qS9yoEfhTW4dM1PkteVM", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RroN5uy8AiRuVP9ke52CCqP98xJqvXKwV3LqvEALuxPoqQrX2Q4r3QDtxmQ4UMVoXqmVSFyHPdmYU81Dy9dvqjV8yL42U5BJMyhWGZSXDvWAXmjK32LbBejjc4JyZXh6jo6AY3Fqkjy79u62rb4iGe", + "public": + "xpub6BV2QRefBmTFR7GeQF2X1GauLxvg28nWJtKmcWPqP7W25FzdK9E7HQp1vHEU1qSLLS1sxsCbGAKMLj8vxwTYDFGFCUarXfyuUYBgkvR69fg", + "address": + "DdzFFzCqrhtBuBaK8SZ9kPFY9xGDV6XZaYN1jzRnJPsYSpktp1ft5Hu7MSYGrp5CcDgEPvpBiTWcWppgZ72d1kB1qUwncJtFLjb3h2n9", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "bde681f25db87df4238bc0cf9771837bea049a483c505eb18f7bd591657738c6", + "private": + "08a33edeea7cbab0630320fd6c470f3828fd2fe2926effb03422d20820f2615bb59c7186563577aa6ffb1611f188b8a4671c921626d56512d325e07e507dffc6", + "public": + "0015c606f04449d9a550941f748bfd49d77982937f3d11daf32323c7feb1cbcf59", + "chaincode": + "4a1d811ee173e7672887da42cbaeb72259170bb78d15f8d419ffebd8e85846d1", + "hd_key": + "4e170917ffe126227fab3261a2580bf6b5ccedc86be8d1b37640389a0dfadfb7", + "child": [ + { + "private": + "xprv3ReftS6tdySh4XCgoL1Kc8VwFjmbqe9vmefXfEGrjku8GyMF4rP5mptTiXJ8y2vD2f4tGmJQiQMmPvY35H7Br9SWEyBTtix88Ej6A3yJmMe6C3MjKh6tuzPo9pvbeuRj3V8xg6KEnhWB7HCb2bpQ8kA", + "public": + "xpub6AnCHpczEzjuUNJaHEjCoA4Q8thuvzyYzMWdxRTa1XTrduiiCwbdGVpUQEhyLkSvTpgKDmFpCRPR6GoLUT1RpPZMAXGQd7wcW9qvvbBQeRE", + "address": + "DdzFFzCqrhssSYqSEEpPCjD4EWfv3G9zfMwmdDdTu9zQ1oV1zE42ZzUZuQpbypcv5jvkogjc6ccL5rxR8bXUTGZuBrKu7jYF38EhAdco", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3ReftS6tdySh5cnCopiRU672RFbELwP63AooUcjrgx2z7xEAtnxUe6WRgftjsNmzAxQc2GfNbAaRaES8j4gBYvQnGbj436Qonjxg7H31ExxCQoVaxBwR2dUpK1iUPg5gk7kMxgUXgB2rBTa7FZAaeRW", + "public": + "xpub6AnCHpczEzjuY4Ks71MpcjYBayb7TMD2omyu6F2kVjuKSLdvtz6Gy6gA5fCDVaovByouuLWLpbQzbRpqtuXLCfMy6mgbfZYBHeN42QYaQej", + "address": + "DdzFFzCqrhsrCFALNMv9oHuYYFoZqpgwAeuNxGxR2j62Ph9EsDsnCvJnercKfEPhobP9tnRHTwwy2ixeuRvG6NnETxBNVGyLYQHiLDqq", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3ReftS6tdySh6KybW7jxJJk9B2RqourfE8dRHpVCnrjc9oQmU4nF2vez9qMFeXoVAEz4FgKnR8rRAnVkv54LL9Mo9259ZUP8iH9ksziscWbN3SqxkSFLtmFqRqkEFPx1ULRVAVM7zoBVc4P11ewktQE", + "public": + "xpub6AnCHpczEzjuaT1GmmLevxx36AU9yDNVMgPwivWbLApfXFHqYdvenYBip43UqK1x3N9RzJTvxvJz1EuJfHNx2MB56TbRHQ5QkXD18p5DSFy", + "address": + "DdzFFzCqrhtC1P8ieUFWGMEEiGfaPE46CZzGNS1s2xxEyuZzfVrE9uRNFkRvXr6A8zEv7efWQbSC7PuHDLz6ApP9F7Jtk48EH5ZLHHhi", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RXSKMrcKdAxpYd1u7YMrbz2MFWWXg7cNAy9JiqG9HXeCbuqfdueuu42cp2oRXDLy9kTBxzjTnSBN5Szd8D5PigUGgUHAZh4vjddZeX8Zg26oUygtoBTdgwxemvviei34G4a39aFbpVRREwZcCwHhqZ", + "public": + "xpub6AMqtfQrQciHKiFKUW1CyVeRgbzZQKaQFiugRSxeqsvrxBXoK8J2rSQ5k595mq1y4zWgvUVxnKUC57jgBpmMrcZx5NzvPDWkgr4rbrrPZDy", + "address": + "DdzFFzCqrht2yx6sDGjsCYHUM1SefQVMmj5VLkE3J7eYEAHU9ZxDNEPDd7NTrFgegS8Fit1gUZvNx74uXB8iVRNGyx2EsqEnYTpLLPUz", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RXSKMrcKdAxpw96ubDPnntdgCMR4cbKdpdLhQdxHqxuL2fdHVTT9NURHG4tqgjWQpwjcE66WCpJdQP3AbRkKWwUZk19caXSCr2cahsEfVTqnnuXvZJGVbQSV5MscEG2wS71kv3KXC6UNMLfqxH5bUN", + "public": + "xpub6AMqtfQrQciHM23zqDvWxrYgaZpBwmGLZfgTZw1qogwVy6AumTgdSeQJNHXAim1xts7LntsFPxd6qQmcjtuC7qYiPjZzSP6trEqH6JLUNsf", + "address": + "DdzFFzCqrhsg6ydpAnDp6U67vH4XvcgntfViq1hXL1PXaxuCfoNCjDZVgfkVozoxJvS7ZPcsMb4KmAnjTL2oVySuRmxzc8cvem3bm5yr", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RXSKMrcKdAxqwGFzYcmmxSBhpzkxAUJyGMkN8CqXT3VbrTKSyKkG1fbSLiMpFtihahLYzt3GrVSQhhGQ8rxbgkJUvzGZkgiFbwW4LeTdbQCRiTxx2Jf9AysPQToiDswNgj8zs1Kg6VQfbf36vVPYXo", + "public": + "xpub6AMqtfQrQciHQPiKg5ma6MAFrNQ8GJivMscPcWSRMEtzSWiYAibHah26NmMdEXx6X3GF2MDptJDY96KPyeGnEN4j1TFXUD2YH592rQPNiby", + "address": + "DdzFFzCqrht6W1BrV4dbbNBL2ZdvW8P33fx15u5DX8KbnkzRws2bNm88Kx7uxPeoXJ87SJHWio6416K45DHJHzmeGPLRq7aLvrXnHhy9", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RroN5uy8AiRsh5kGk6SbxA5GgaYvA1hmXsdZAyHqnKyWUHhD1R7N92baxwEnP1tHHYkrLfKCh2mEKDBjmiupMRpTXCYL1YfDjhhcvPs9Zncn7tpt87zssbXHyamLVNbRsFzyCxmssrps6kj5spKQSe", + "public": + "xpub6BV2QRefBmTFK4AXuXxR8z2T6BnAQPssUH8KTo2K6ErEgFrrX1kATdRZwwECYdYV9ce2RUjsKKot8P5icUnwePpZtqpJUZyiEDfg2QMueuT", + "address": + "DdzFFzCqrhsnZTQkcMqTuEwhNRhrveCQCGi1YMJv8vkF8sKYdWsJdPm4FXHu1B9xy4Xgg7sLiXN6GbduYG36E3LuDk7bYx4BGbah7ohm", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RroN5uy8AiRu3dj4RfETyiTztKWAjGfyGh3Fg56eBXUFaaKFESbyYompdKovyXNYShxz4HseBy3ux5GqoBiWrbr7hFMbwDMrxQ8Q6E2wU8TTF4PQ4Sj4YFb95MVjx5Hj4trcFm3jG3VeT4ikGVdsN9", + "public": + "xpub6BV2QRefBmTFPcbKtSCohAy6YQSYQ5fXkncPUfmbxgSe2d528YMiA3kbos4pjNhTVJ6VQxYid4uAxcgVvLNsLW6bhkuT2yRXhUgGbCyBkkc", + "address": + "DdzFFzCqrhssdBtSp1F3NL5eN5yvQGsGdUBfMS2tvQAPfpJfiWHYmhFxZRsVuNPNwGqSKDE8gKAexKUcyXk4qS9yoEfhTW4dM1PkteVM", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RroN5uy8AiRuVP9ke52CCqP98xJqvXKwV3LqvEALuxPoqQrX2Q4r3QDtxmQ4UMVoXqmVSFyHPdmYU81Dy9dvqjV8yL42U5BJMyhWGZSXDvWAXmjK32LbBejjc4JyZXh6jo6AY3Fqkjy79u62rb4iGe", + "public": + "xpub6BV2QRefBmTFR7GeQF2X1GauLxvg28nWJtKmcWPqP7W25FzdK9E7HQp1vHEU1qSLLS1sxsCbGAKMLj8vxwTYDFGFCUarXfyuUYBgkvR69fg", + "address": + "DdzFFzCqrhtBuBaK8SZ9kPFY9xGDV6XZaYN1jzRnJPsYSpktp1ft5Hu7MSYGrp5CcDgEPvpBiTWcWppgZ72d1kB1qUwncJtFLjb3h2n9", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "bde681f25db87df4238bc0cf9771837bea049a483c505eb18f7bd591657738c6", + "private": + "08a33edeea7cbab0630320fd6c470f3828fd2fe2926effb03422d20820f2615bb59c7186563577aa6ffb1611f188b8a4671c921626d56512d325e07e507dffc6", + "public": + "0015c606f04449d9a550941f748bfd49d77982937f3d11daf32323c7feb1cbcf59", + "chaincode": + "4a1d811ee173e7672887da42cbaeb72259170bb78d15f8d419ffebd8e85846d1", + "hd_key": + "4e170917ffe126227fab3261a2580bf6b5ccedc86be8d1b37640389a0dfadfb7", + "child": [ + { + "private": + "xprv3ReftS6tdySh4XCgoL1Kc8VwFjmbqe9vmefXfEGrjku8GyMF4rP5mptTiXJ8y2vD2f4tGmJQiQMmPvY35H7Br9SWEyBTtix88Ej6A3yJmMe6C3MjKh6tuzPo9pvbeuRj3V8xg6KEnhWB7HCb2bpQ8kA", + "public": + "xpub6AnCHpczEzjuUNJaHEjCoA4Q8thuvzyYzMWdxRTa1XTrduiiCwbdGVpUQEhyLkSvTpgKDmFpCRPR6GoLUT1RpPZMAXGQd7wcW9qvvbBQeRE", + "address": + "DdzFFzCqrhssSYqSEEpPCjD4EWfv3G9zfMwmdDdTu9zQ1oV1zE42ZzUZuQpbypcv5jvkogjc6ccL5rxR8bXUTGZuBrKu7jYF38EhAdco", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3ReftS6tdySh5cnCopiRU672RFbELwP63AooUcjrgx2z7xEAtnxUe6WRgftjsNmzAxQc2GfNbAaRaES8j4gBYvQnGbj436Qonjxg7H31ExxCQoVaxBwR2dUpK1iUPg5gk7kMxgUXgB2rBTa7FZAaeRW", + "public": + "xpub6AnCHpczEzjuY4Ks71MpcjYBayb7TMD2omyu6F2kVjuKSLdvtz6Gy6gA5fCDVaovByouuLWLpbQzbRpqtuXLCfMy6mgbfZYBHeN42QYaQej", + "address": + "DdzFFzCqrhsrCFALNMv9oHuYYFoZqpgwAeuNxGxR2j62Ph9EsDsnCvJnercKfEPhobP9tnRHTwwy2ixeuRvG6NnETxBNVGyLYQHiLDqq", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3ReftS6tdySh6KybW7jxJJk9B2RqourfE8dRHpVCnrjc9oQmU4nF2vez9qMFeXoVAEz4FgKnR8rRAnVkv54LL9Mo9259ZUP8iH9ksziscWbN3SqxkSFLtmFqRqkEFPx1ULRVAVM7zoBVc4P11ewktQE", + "public": + "xpub6AnCHpczEzjuaT1GmmLevxx36AU9yDNVMgPwivWbLApfXFHqYdvenYBip43UqK1x3N9RzJTvxvJz1EuJfHNx2MB56TbRHQ5QkXD18p5DSFy", + "address": + "DdzFFzCqrhtC1P8ieUFWGMEEiGfaPE46CZzGNS1s2xxEyuZzfVrE9uRNFkRvXr6A8zEv7efWQbSC7PuHDLz6ApP9F7Jtk48EH5ZLHHhi", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RXSKMrcKdAxpYd1u7YMrbz2MFWWXg7cNAy9JiqG9HXeCbuqfdueuu42cp2oRXDLy9kTBxzjTnSBN5Szd8D5PigUGgUHAZh4vjddZeX8Zg26oUygtoBTdgwxemvviei34G4a39aFbpVRREwZcCwHhqZ", + "public": + "xpub6AMqtfQrQciHKiFKUW1CyVeRgbzZQKaQFiugRSxeqsvrxBXoK8J2rSQ5k595mq1y4zWgvUVxnKUC57jgBpmMrcZx5NzvPDWkgr4rbrrPZDy", + "address": + "DdzFFzCqrht2yx6sDGjsCYHUM1SefQVMmj5VLkE3J7eYEAHU9ZxDNEPDd7NTrFgegS8Fit1gUZvNx74uXB8iVRNGyx2EsqEnYTpLLPUz", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RXSKMrcKdAxpw96ubDPnntdgCMR4cbKdpdLhQdxHqxuL2fdHVTT9NURHG4tqgjWQpwjcE66WCpJdQP3AbRkKWwUZk19caXSCr2cahsEfVTqnnuXvZJGVbQSV5MscEG2wS71kv3KXC6UNMLfqxH5bUN", + "public": + "xpub6AMqtfQrQciHM23zqDvWxrYgaZpBwmGLZfgTZw1qogwVy6AumTgdSeQJNHXAim1xts7LntsFPxd6qQmcjtuC7qYiPjZzSP6trEqH6JLUNsf", + "address": + "DdzFFzCqrhsg6ydpAnDp6U67vH4XvcgntfViq1hXL1PXaxuCfoNCjDZVgfkVozoxJvS7ZPcsMb4KmAnjTL2oVySuRmxzc8cvem3bm5yr", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RXSKMrcKdAxqwGFzYcmmxSBhpzkxAUJyGMkN8CqXT3VbrTKSyKkG1fbSLiMpFtihahLYzt3GrVSQhhGQ8rxbgkJUvzGZkgiFbwW4LeTdbQCRiTxx2Jf9AysPQToiDswNgj8zs1Kg6VQfbf36vVPYXo", + "public": + "xpub6AMqtfQrQciHQPiKg5ma6MAFrNQ8GJivMscPcWSRMEtzSWiYAibHah26NmMdEXx6X3GF2MDptJDY96KPyeGnEN4j1TFXUD2YH592rQPNiby", + "address": + "DdzFFzCqrht6W1BrV4dbbNBL2ZdvW8P33fx15u5DX8KbnkzRws2bNm88Kx7uxPeoXJ87SJHWio6416K45DHJHzmeGPLRq7aLvrXnHhy9", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RroN5uy8AiRsh5kGk6SbxA5GgaYvA1hmXsdZAyHqnKyWUHhD1R7N92baxwEnP1tHHYkrLfKCh2mEKDBjmiupMRpTXCYL1YfDjhhcvPs9Zncn7tpt87zssbXHyamLVNbRsFzyCxmssrps6kj5spKQSe", + "public": + "xpub6BV2QRefBmTFK4AXuXxR8z2T6BnAQPssUH8KTo2K6ErEgFrrX1kATdRZwwECYdYV9ce2RUjsKKot8P5icUnwePpZtqpJUZyiEDfg2QMueuT", + "address": + "DdzFFzCqrhsnZTQkcMqTuEwhNRhrveCQCGi1YMJv8vkF8sKYdWsJdPm4FXHu1B9xy4Xgg7sLiXN6GbduYG36E3LuDk7bYx4BGbah7ohm", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RroN5uy8AiRu3dj4RfETyiTztKWAjGfyGh3Fg56eBXUFaaKFESbyYompdKovyXNYShxz4HseBy3ux5GqoBiWrbr7hFMbwDMrxQ8Q6E2wU8TTF4PQ4Sj4YFb95MVjx5Hj4trcFm3jG3VeT4ikGVdsN9", + "public": + "xpub6BV2QRefBmTFPcbKtSCohAy6YQSYQ5fXkncPUfmbxgSe2d528YMiA3kbos4pjNhTVJ6VQxYid4uAxcgVvLNsLW6bhkuT2yRXhUgGbCyBkkc", + "address": + "DdzFFzCqrhssdBtSp1F3NL5eN5yvQGsGdUBfMS2tvQAPfpJfiWHYmhFxZRsVuNPNwGqSKDE8gKAexKUcyXk4qS9yoEfhTW4dM1PkteVM", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RroN5uy8AiRuVP9ke52CCqP98xJqvXKwV3LqvEALuxPoqQrX2Q4r3QDtxmQ4UMVoXqmVSFyHPdmYU81Dy9dvqjV8yL42U5BJMyhWGZSXDvWAXmjK32LbBejjc4JyZXh6jo6AY3Fqkjy79u62rb4iGe", + "public": + "xpub6BV2QRefBmTFR7GeQF2X1GauLxvg28nWJtKmcWPqP7W25FzdK9E7HQp1vHEU1qSLLS1sxsCbGAKMLj8vxwTYDFGFCUarXfyuUYBgkvR69fg", + "address": + "DdzFFzCqrhtBuBaK8SZ9kPFY9xGDV6XZaYN1jzRnJPsYSpktp1ft5Hu7MSYGrp5CcDgEPvpBiTWcWppgZ72d1kB1qUwncJtFLjb3h2n9", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "c38f7684f218a85f53d379298f2e469a2d9802dc738a7c8c77ca1147f52904a3", + "private": + "8850e548ecd97507f66465fd5fdef64e22fbbfb945ba35797c4a236b518ac257b209c62191d7af25de2321a30b1c9988a74ef013c3804cb8067cb23885220a25", + "public": + "00d3a6794a9156adf0ce276e650b8a15f9b1d296fa2246fd9560deb296dda1a941", + "chaincode": + "b343f78e9732768e53528121d002feab1ca9459bdb035bf594e6b213710ca3e8", + "hd_key": + "4a69c4c07b820657c08f3b6facda8b6f0e109b8b41b6c2c9902a990b424f7fd5", + "child": [ + { + "private": + "xprv3Rf7HGSm9juac3BhWwZqJMNNQ7HpM28YHnAfh4oXPbkoZKGZ2qa1tSYkDqCr1ACeTJDyYGrXtm31iVxoM4X56DYZeu5jtGW4JX4Twhj3gAhcJzQYkUtT2w2dbhRYehPWhuGEXjgFX4YhheSUmKmRKXw", + "public": + "xpub6AofmpbJSApb1K8qvx3x9QphKvc2nxMHFUEuZXZnqkMcpPCJNRaCSpEu92RRgAMTByJqdDNoe7UvzUeFsGXZpnanj2nk3CHXKaD5g1HKP4m", + "address": + "DdzFFzCqrhsno2vSCpn3eiX5pRjtJB1ZAVpNBtw9KZM3qsW5UFDkrYnnyMJYenVEkemEMWzKntuYgQL5zMBV5DZezLKRpEm8sZcFTqj3", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rf7HGSm9juad2tQ7KmxBjxiWe4wtA44nkCW2XBzUa5at3DzxyXkodAb5ayUJY4Av13CkE9yLoPG2t2WL3wRPbn4U17SwjN3gdR7QmiTcPgkhQXCkNBSWVve8nq6SoepA4yisnTYrMGZzkgBeWNHmE8", + "public": + "xpub6AofmpbJSApb4fNqheFMiYz2s9krV34SkDvVN4mTj5bdgx1FzvnGBnxt7UrqZGJQqt78NtBZBsXFbafLFn6JRJi6FwuCtrR7hocmkKzPDXq", + "address": + "DdzFFzCqrhsww4TDei3ZLvncyJAqwnkgUmu7jckwt22dQKkTXumjnNepzXhSVpM8suiNmw1uguUuG7BzfrVhDkXCRytUZNN6HdAEgTXB", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rf7HGSm9juadQgWmoV8jNCG2if2DF47t3YUeotp7QALg5uWK4GFGCwnYcVdjKj4FcZ7zxQV8CPJoEo6EeYsPygq7QrvgyGEHaGhTZrHoB9vbRJXjGN2Qic5HykeWjXMsLPSk9ftvWFp9QQ9XAV9Ybu", + "public": + "xpub6AofmpbJSApb5vkEKjACz73CeJmAzgLfXQpt7h2s8qy4Jg5LfRm2fXzLK9ydqxTUMs21c7ey7Gd3jCiWmMnAJnDZiEKMvUxo5pA9URq2M1w", + "address": + "DdzFFzCqrht8TXn9f7RW4v45RKauaLRBwHMCSFRREtiU4MunWhCk6WLVmPgyb3DBAsXmAuaHmz84wQ3vU1noPziQuoGqXFPQi2HVAJCV", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RpxoBWzFePXovzthxgwc7zFg3M8wJs75YgxVW8sX3auipUTkruE2jGL8rFgUb9t4joCcFVutU6fwwdhm4jokwpBcoyTz2DJCokbEJZWwPQwzqx3r4Bmjon2HyWrULRKe8s6MHeCsdGm92CKk6AJMMV", + "public": + "xpub6BNqfefoKLG4smbc565K5mvfLStbxwSFR5vXuz17116ZHkAoPbt75h8fs28WM5gSXPh55owrvVVbeQXrL69Y2YdNDeaLPL8oebkk9LtuHkR", + "address": + "DdzFFzCqrhtAH7kBJ91y6XWeNtCGgNsNjgg5XeQDUyAd8jejxyhLUfcDwNQF553SVhiwxSuqPbJFTwvFnAemyWcpt44fdQqkNd3dJ9Ms", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RpxoBWzFePXpm1uhwJ7Q6kjsMBWg9yzAx1TaHmg2UfdYN9TLiQbxGe4ACeanZL5pG5CmVGUNSY71aVXh21jHeXEkkrhNdDWrx3K52E4TdYVfhGy4ikS17BefJaATNWnG94xFEbPPshEJuXo3Y6vuYY", + "public": + "xpub6BNqfefoKLG4vZEotRH21BhErRbY9QDG6AGi8ZoQrBnagFEroRcFQ7Y8JfbU6uA18KjYpUpAMeKQyANdeAZwRTV2fikBT9HN6VJTzPDXcQH", + "address": + "DdzFFzCqrhswPiKQHp5PVBscAJN8W71A5HgJNF8psAtR8FQBRQPUVZwC3gzXRd34kk4LeXcWtNFGN4xqrxETEMbWdwiQKEDZwhmm3xyo", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RpxoBWzFePXqUFbDB3DE13LHq2zsnEE9kcMV8pBw5QencPneJc893N9ykgBTGHJZkewNejJPKUwpYQ4m7F7hemGjZNAsDufSbivYKJ9zgGFH6g5pKDsQKeUghaawWYLpTRZhkrPqh4yS7VcXz7F86S", + "public": + "xpub6BNqfefoKLG4xx3vdbZ6EhqjpSEAspZ3697ZPs6gbSSvZ2koEDkJaZptARaKksdTk2TdA2AH8tu98jiMoWmgx4vwWBDiyyzRjTPUfbJNydp", + "address": + "DdzFFzCqrhtCacDTwjQCqJeL521btpk2saZfhAH7swd5yoQ5NDJLzcQnCipDD3yjnSnNiz4yMouPzDBtnFrsctFUfXDucHHm9ejS5hX2", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3Rr3ZeowDy7enGiViw18z67PpH4po44bhEnHtkhegJTxNVDhXqswm2FTKJvSWWDEvbUXgyDtvDEfFxdDbHbTCFtnh5L1WUzPW9FL7Em2ugLvSz8dJUezeFsvwiTwpW8EL6jRtmaFTZV4ChQgRMXnZN5", + "public": + "xpub6BSUxZpFBuKdGg4KsZepR7c6b3v3QvDHz2AhD42ywanac9Z4EpLFUzhJPzE3aDoBzX5onKpqs8qg7u28GeV8gz7bbCZSdP6522u9AJuySmA", + "address": + "DdzFFzCqrhssGCmsjWvkVva8htvw7XcGA8gSXfEzuWkCVPUyiLjsRpNN25b3ZV1bQq27Erjnu8Xyx2BrRTUQCCQRWTqBymTziBy2SSBo", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3Rr3ZeowDy7enhWDRV74v4bKzmTikC5Zxjy8PmF1234c9RsTMRvXXyYKY6y3ntMdBDuKGxd3hb8wTCt5nKWQrHnPHqp65fE3GogyqKkF4BFTRQXTGjpTnQBvm7Y9ib9zsWkjtcFPjQD3iot4JkBboV9", + "public": + "xpub6BSUxZpFBuKdJ7W7tcUhYkoD92NcYP7Yxydm9LuUvYSUuZNC2hrNvxT99GfYZj4svVGSgmHyXN73riD5ryB6qaKBaKAbPyZbftwCntwwFvU", + "address": + "DdzFFzCqrhskZcngTd3hUveaQUyRVNLGHdBUcfrrvzn7Rpsw61UUyzP5JPdmcQDid7pBS4sgiVe4JaKQGUz6YFs5LaCdB39b2S561V1W", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3Rr3ZeowDy7eohyGo7z5fbUmqGH2ZR9uKhpKKdzjvfpLuAV1fjRNc67h42rj2QEVcnmsDEja6Jo932kHF61qdStT889oJAd9uwoFiPL7fjvLKxSkKnMS2FBuKPPi4VJgeu3PS2HLDECeU3j1xMg5nXp", + "public": + "xpub6BSUxZpFBuKdMWKSQpYZMVgPM9ReKwu1oKSWzmGspCiYMNw6AEx4CyXJpMojj1SCcGciNoDLpXwiWJ7GVMUNzBMFdjWAaqZQbJpSHoZSpX4", + "address": + "DdzFFzCqrhspr9zNDo7chxVppF5Q1nRoLtQ1nZkjNaJQRGMa2Vg8nstowPcTMn9fUpxZUwgs8Beh2kwbtr4Lz48CJCj63UuybqVa8wmy", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "c38f7684f218a85f53d379298f2e469a2d9802dc738a7c8c77ca1147f52904a3", + "private": + "8850e548ecd97507f66465fd5fdef64e22fbbfb945ba35797c4a236b518ac257b209c62191d7af25de2321a30b1c9988a74ef013c3804cb8067cb23885220a25", + "public": + "00d3a6794a9156adf0ce276e650b8a15f9b1d296fa2246fd9560deb296dda1a941", + "chaincode": + "b343f78e9732768e53528121d002feab1ca9459bdb035bf594e6b213710ca3e8", + "hd_key": + "4a69c4c07b820657c08f3b6facda8b6f0e109b8b41b6c2c9902a990b424f7fd5", + "child": [ + { + "private": + "xprv3Rf7HGSm9juac3BhWwZqJMNNQ7HpM28YHnAfh4oXPbkoZKGZ2qa1tSYkDqCr1ACeTJDyYGrXtm31iVxoM4X56DYZeu5jtGW4JX4Twhj3gAhcJzQYkUtT2w2dbhRYehPWhuGEXjgFX4YhheSUmKmRKXw", + "public": + "xpub6AofmpbJSApb1K8qvx3x9QphKvc2nxMHFUEuZXZnqkMcpPCJNRaCSpEu92RRgAMTByJqdDNoe7UvzUeFsGXZpnanj2nk3CHXKaD5g1HKP4m", + "address": + "DdzFFzCqrhsno2vSCpn3eiX5pRjtJB1ZAVpNBtw9KZM3qsW5UFDkrYnnyMJYenVEkemEMWzKntuYgQL5zMBV5DZezLKRpEm8sZcFTqj3", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rf7HGSm9juad2tQ7KmxBjxiWe4wtA44nkCW2XBzUa5at3DzxyXkodAb5ayUJY4Av13CkE9yLoPG2t2WL3wRPbn4U17SwjN3gdR7QmiTcPgkhQXCkNBSWVve8nq6SoepA4yisnTYrMGZzkgBeWNHmE8", + "public": + "xpub6AofmpbJSApb4fNqheFMiYz2s9krV34SkDvVN4mTj5bdgx1FzvnGBnxt7UrqZGJQqt78NtBZBsXFbafLFn6JRJi6FwuCtrR7hocmkKzPDXq", + "address": + "DdzFFzCqrhsww4TDei3ZLvncyJAqwnkgUmu7jckwt22dQKkTXumjnNepzXhSVpM8suiNmw1uguUuG7BzfrVhDkXCRytUZNN6HdAEgTXB", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rf7HGSm9juadQgWmoV8jNCG2if2DF47t3YUeotp7QALg5uWK4GFGCwnYcVdjKj4FcZ7zxQV8CPJoEo6EeYsPygq7QrvgyGEHaGhTZrHoB9vbRJXjGN2Qic5HykeWjXMsLPSk9ftvWFp9QQ9XAV9Ybu", + "public": + "xpub6AofmpbJSApb5vkEKjACz73CeJmAzgLfXQpt7h2s8qy4Jg5LfRm2fXzLK9ydqxTUMs21c7ey7Gd3jCiWmMnAJnDZiEKMvUxo5pA9URq2M1w", + "address": + "DdzFFzCqrht8TXn9f7RW4v45RKauaLRBwHMCSFRREtiU4MunWhCk6WLVmPgyb3DBAsXmAuaHmz84wQ3vU1noPziQuoGqXFPQi2HVAJCV", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RpxoBWzFePXovzthxgwc7zFg3M8wJs75YgxVW8sX3auipUTkruE2jGL8rFgUb9t4joCcFVutU6fwwdhm4jokwpBcoyTz2DJCokbEJZWwPQwzqx3r4Bmjon2HyWrULRKe8s6MHeCsdGm92CKk6AJMMV", + "public": + "xpub6BNqfefoKLG4smbc565K5mvfLStbxwSFR5vXuz17116ZHkAoPbt75h8fs28WM5gSXPh55owrvVVbeQXrL69Y2YdNDeaLPL8oebkk9LtuHkR", + "address": + "DdzFFzCqrhtAH7kBJ91y6XWeNtCGgNsNjgg5XeQDUyAd8jejxyhLUfcDwNQF553SVhiwxSuqPbJFTwvFnAemyWcpt44fdQqkNd3dJ9Ms", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RpxoBWzFePXpm1uhwJ7Q6kjsMBWg9yzAx1TaHmg2UfdYN9TLiQbxGe4ACeanZL5pG5CmVGUNSY71aVXh21jHeXEkkrhNdDWrx3K52E4TdYVfhGy4ikS17BefJaATNWnG94xFEbPPshEJuXo3Y6vuYY", + "public": + "xpub6BNqfefoKLG4vZEotRH21BhErRbY9QDG6AGi8ZoQrBnagFEroRcFQ7Y8JfbU6uA18KjYpUpAMeKQyANdeAZwRTV2fikBT9HN6VJTzPDXcQH", + "address": + "DdzFFzCqrhswPiKQHp5PVBscAJN8W71A5HgJNF8psAtR8FQBRQPUVZwC3gzXRd34kk4LeXcWtNFGN4xqrxETEMbWdwiQKEDZwhmm3xyo", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RpxoBWzFePXqUFbDB3DE13LHq2zsnEE9kcMV8pBw5QencPneJc893N9ykgBTGHJZkewNejJPKUwpYQ4m7F7hemGjZNAsDufSbivYKJ9zgGFH6g5pKDsQKeUghaawWYLpTRZhkrPqh4yS7VcXz7F86S", + "public": + "xpub6BNqfefoKLG4xx3vdbZ6EhqjpSEAspZ3697ZPs6gbSSvZ2koEDkJaZptARaKksdTk2TdA2AH8tu98jiMoWmgx4vwWBDiyyzRjTPUfbJNydp", + "address": + "DdzFFzCqrhtCacDTwjQCqJeL521btpk2saZfhAH7swd5yoQ5NDJLzcQnCipDD3yjnSnNiz4yMouPzDBtnFrsctFUfXDucHHm9ejS5hX2", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3Rr3ZeowDy7enGiViw18z67PpH4po44bhEnHtkhegJTxNVDhXqswm2FTKJvSWWDEvbUXgyDtvDEfFxdDbHbTCFtnh5L1WUzPW9FL7Em2ugLvSz8dJUezeFsvwiTwpW8EL6jRtmaFTZV4ChQgRMXnZN5", + "public": + "xpub6BSUxZpFBuKdGg4KsZepR7c6b3v3QvDHz2AhD42ywanac9Z4EpLFUzhJPzE3aDoBzX5onKpqs8qg7u28GeV8gz7bbCZSdP6522u9AJuySmA", + "address": + "DdzFFzCqrhssGCmsjWvkVva8htvw7XcGA8gSXfEzuWkCVPUyiLjsRpNN25b3ZV1bQq27Erjnu8Xyx2BrRTUQCCQRWTqBymTziBy2SSBo", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3Rr3ZeowDy7enhWDRV74v4bKzmTikC5Zxjy8PmF1234c9RsTMRvXXyYKY6y3ntMdBDuKGxd3hb8wTCt5nKWQrHnPHqp65fE3GogyqKkF4BFTRQXTGjpTnQBvm7Y9ib9zsWkjtcFPjQD3iot4JkBboV9", + "public": + "xpub6BSUxZpFBuKdJ7W7tcUhYkoD92NcYP7Yxydm9LuUvYSUuZNC2hrNvxT99GfYZj4svVGSgmHyXN73riD5ryB6qaKBaKAbPyZbftwCntwwFvU", + "address": + "DdzFFzCqrhskZcngTd3hUveaQUyRVNLGHdBUcfrrvzn7Rpsw61UUyzP5JPdmcQDid7pBS4sgiVe4JaKQGUz6YFs5LaCdB39b2S561V1W", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3Rr3ZeowDy7eohyGo7z5fbUmqGH2ZR9uKhpKKdzjvfpLuAV1fjRNc67h42rj2QEVcnmsDEja6Jo932kHF61qdStT889oJAd9uwoFiPL7fjvLKxSkKnMS2FBuKPPi4VJgeu3PS2HLDECeU3j1xMg5nXp", + "public": + "xpub6BSUxZpFBuKdMWKSQpYZMVgPM9ReKwu1oKSWzmGspCiYMNw6AEx4CyXJpMojj1SCcGciNoDLpXwiWJ7GVMUNzBMFdjWAaqZQbJpSHoZSpX4", + "address": + "DdzFFzCqrhspr9zNDo7chxVppF5Q1nRoLtQ1nZkjNaJQRGMa2Vg8nstowPcTMn9fUpxZUwgs8Beh2kwbtr4Lz48CJCj63UuybqVa8wmy", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "c38f7684f218a85f53d379298f2e469a2d9802dc738a7c8c77ca1147f52904a3", + "private": + "8850e548ecd97507f66465fd5fdef64e22fbbfb945ba35797c4a236b518ac257b209c62191d7af25de2321a30b1c9988a74ef013c3804cb8067cb23885220a25", + "public": + "00d3a6794a9156adf0ce276e650b8a15f9b1d296fa2246fd9560deb296dda1a941", + "chaincode": + "b343f78e9732768e53528121d002feab1ca9459bdb035bf594e6b213710ca3e8", + "hd_key": + "4a69c4c07b820657c08f3b6facda8b6f0e109b8b41b6c2c9902a990b424f7fd5", + "child": [ + { + "private": + "xprv3Rf7HGSm9juac3BhWwZqJMNNQ7HpM28YHnAfh4oXPbkoZKGZ2qa1tSYkDqCr1ACeTJDyYGrXtm31iVxoM4X56DYZeu5jtGW4JX4Twhj3gAhcJzQYkUtT2w2dbhRYehPWhuGEXjgFX4YhheSUmKmRKXw", + "public": + "xpub6AofmpbJSApb1K8qvx3x9QphKvc2nxMHFUEuZXZnqkMcpPCJNRaCSpEu92RRgAMTByJqdDNoe7UvzUeFsGXZpnanj2nk3CHXKaD5g1HKP4m", + "address": + "DdzFFzCqrhsno2vSCpn3eiX5pRjtJB1ZAVpNBtw9KZM3qsW5UFDkrYnnyMJYenVEkemEMWzKntuYgQL5zMBV5DZezLKRpEm8sZcFTqj3", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rf7HGSm9juad2tQ7KmxBjxiWe4wtA44nkCW2XBzUa5at3DzxyXkodAb5ayUJY4Av13CkE9yLoPG2t2WL3wRPbn4U17SwjN3gdR7QmiTcPgkhQXCkNBSWVve8nq6SoepA4yisnTYrMGZzkgBeWNHmE8", + "public": + "xpub6AofmpbJSApb4fNqheFMiYz2s9krV34SkDvVN4mTj5bdgx1FzvnGBnxt7UrqZGJQqt78NtBZBsXFbafLFn6JRJi6FwuCtrR7hocmkKzPDXq", + "address": + "DdzFFzCqrhsww4TDei3ZLvncyJAqwnkgUmu7jckwt22dQKkTXumjnNepzXhSVpM8suiNmw1uguUuG7BzfrVhDkXCRytUZNN6HdAEgTXB", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rf7HGSm9juadQgWmoV8jNCG2if2DF47t3YUeotp7QALg5uWK4GFGCwnYcVdjKj4FcZ7zxQV8CPJoEo6EeYsPygq7QrvgyGEHaGhTZrHoB9vbRJXjGN2Qic5HykeWjXMsLPSk9ftvWFp9QQ9XAV9Ybu", + "public": + "xpub6AofmpbJSApb5vkEKjACz73CeJmAzgLfXQpt7h2s8qy4Jg5LfRm2fXzLK9ydqxTUMs21c7ey7Gd3jCiWmMnAJnDZiEKMvUxo5pA9URq2M1w", + "address": + "DdzFFzCqrht8TXn9f7RW4v45RKauaLRBwHMCSFRREtiU4MunWhCk6WLVmPgyb3DBAsXmAuaHmz84wQ3vU1noPziQuoGqXFPQi2HVAJCV", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RpxoBWzFePXovzthxgwc7zFg3M8wJs75YgxVW8sX3auipUTkruE2jGL8rFgUb9t4joCcFVutU6fwwdhm4jokwpBcoyTz2DJCokbEJZWwPQwzqx3r4Bmjon2HyWrULRKe8s6MHeCsdGm92CKk6AJMMV", + "public": + "xpub6BNqfefoKLG4smbc565K5mvfLStbxwSFR5vXuz17116ZHkAoPbt75h8fs28WM5gSXPh55owrvVVbeQXrL69Y2YdNDeaLPL8oebkk9LtuHkR", + "address": + "DdzFFzCqrhtAH7kBJ91y6XWeNtCGgNsNjgg5XeQDUyAd8jejxyhLUfcDwNQF553SVhiwxSuqPbJFTwvFnAemyWcpt44fdQqkNd3dJ9Ms", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RpxoBWzFePXpm1uhwJ7Q6kjsMBWg9yzAx1TaHmg2UfdYN9TLiQbxGe4ACeanZL5pG5CmVGUNSY71aVXh21jHeXEkkrhNdDWrx3K52E4TdYVfhGy4ikS17BefJaATNWnG94xFEbPPshEJuXo3Y6vuYY", + "public": + "xpub6BNqfefoKLG4vZEotRH21BhErRbY9QDG6AGi8ZoQrBnagFEroRcFQ7Y8JfbU6uA18KjYpUpAMeKQyANdeAZwRTV2fikBT9HN6VJTzPDXcQH", + "address": + "DdzFFzCqrhswPiKQHp5PVBscAJN8W71A5HgJNF8psAtR8FQBRQPUVZwC3gzXRd34kk4LeXcWtNFGN4xqrxETEMbWdwiQKEDZwhmm3xyo", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RpxoBWzFePXqUFbDB3DE13LHq2zsnEE9kcMV8pBw5QencPneJc893N9ykgBTGHJZkewNejJPKUwpYQ4m7F7hemGjZNAsDufSbivYKJ9zgGFH6g5pKDsQKeUghaawWYLpTRZhkrPqh4yS7VcXz7F86S", + "public": + "xpub6BNqfefoKLG4xx3vdbZ6EhqjpSEAspZ3697ZPs6gbSSvZ2koEDkJaZptARaKksdTk2TdA2AH8tu98jiMoWmgx4vwWBDiyyzRjTPUfbJNydp", + "address": + "DdzFFzCqrhtCacDTwjQCqJeL521btpk2saZfhAH7swd5yoQ5NDJLzcQnCipDD3yjnSnNiz4yMouPzDBtnFrsctFUfXDucHHm9ejS5hX2", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3Rr3ZeowDy7enGiViw18z67PpH4po44bhEnHtkhegJTxNVDhXqswm2FTKJvSWWDEvbUXgyDtvDEfFxdDbHbTCFtnh5L1WUzPW9FL7Em2ugLvSz8dJUezeFsvwiTwpW8EL6jRtmaFTZV4ChQgRMXnZN5", + "public": + "xpub6BSUxZpFBuKdGg4KsZepR7c6b3v3QvDHz2AhD42ywanac9Z4EpLFUzhJPzE3aDoBzX5onKpqs8qg7u28GeV8gz7bbCZSdP6522u9AJuySmA", + "address": + "DdzFFzCqrhssGCmsjWvkVva8htvw7XcGA8gSXfEzuWkCVPUyiLjsRpNN25b3ZV1bQq27Erjnu8Xyx2BrRTUQCCQRWTqBymTziBy2SSBo", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3Rr3ZeowDy7enhWDRV74v4bKzmTikC5Zxjy8PmF1234c9RsTMRvXXyYKY6y3ntMdBDuKGxd3hb8wTCt5nKWQrHnPHqp65fE3GogyqKkF4BFTRQXTGjpTnQBvm7Y9ib9zsWkjtcFPjQD3iot4JkBboV9", + "public": + "xpub6BSUxZpFBuKdJ7W7tcUhYkoD92NcYP7Yxydm9LuUvYSUuZNC2hrNvxT99GfYZj4svVGSgmHyXN73riD5ryB6qaKBaKAbPyZbftwCntwwFvU", + "address": + "DdzFFzCqrhskZcngTd3hUveaQUyRVNLGHdBUcfrrvzn7Rpsw61UUyzP5JPdmcQDid7pBS4sgiVe4JaKQGUz6YFs5LaCdB39b2S561V1W", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3Rr3ZeowDy7eohyGo7z5fbUmqGH2ZR9uKhpKKdzjvfpLuAV1fjRNc67h42rj2QEVcnmsDEja6Jo932kHF61qdStT889oJAd9uwoFiPL7fjvLKxSkKnMS2FBuKPPi4VJgeu3PS2HLDECeU3j1xMg5nXp", + "public": + "xpub6BSUxZpFBuKdMWKSQpYZMVgPM9ReKwu1oKSWzmGspCiYMNw6AEx4CyXJpMojj1SCcGciNoDLpXwiWJ7GVMUNzBMFdjWAaqZQbJpSHoZSpX4", + "address": + "DdzFFzCqrhspr9zNDo7chxVppF5Q1nRoLtQ1nZkjNaJQRGMa2Vg8nstowPcTMn9fUpxZUwgs8Beh2kwbtr4Lz48CJCj63UuybqVa8wmy", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "1d28ead3cb6a06cbfe9f3c6cc2c4b088b6e1a725d95e46c83b91f6bba133f7e2", + "private": + "188ed654bb87bd1942e1d2eed9400e230f57e0391ce5b27a7ca2f1f38a9d8440a16067a3ec0f552faf2275f1600794bf3e0993944e0306cb339ef6dc41d43540", + "public": + "0000cef16b5bd2abea765a97aaf5bc8c16b0f89d7b24b93b41266d0c996a0d7696", + "chaincode": + "44804bf5b2f75b17b76fa4c638a68c99f278c58e1b6e8bb0055a0741b313e3bd", + "hd_key": + "368256c70f7891d97242e8a6a1811072cb05348faa311076dd1a63af43912ef5", + "child": [ + { + "private": + "xprv3RVA5NDxYdRmdR1Mav2oNhokVVbsFEsW4wUvaL9BSizvGz1mRBhyMSZhhWkWXMis1Dhi5hVwbSCC1CQ9mqw3N4Sf7qJQULjtehA8mynwMghUaErfeX2pCLZMQ4nZSsfkwqhH4wtqaFhV4aSResM1pT4", + "public": + "xpub6AEAjAQ8kSXwnvGkZF1KGK6nxBGW9pVgqJLmhvho9rTG3nF7Xvrc1kZPU8craPG1mtZihcCDaVBBXo2jZg6XLRuVzxQyQjr4Ae3Bkj12Wj8", + "address": + "DdzFFzCqrhsspPdoF2axVqqCVNDqH2KxskQ9sYZSGt4YUUSqVkqrXVdTZP1RXGHp7CrZ7wwVuKWpW91x4n72bSQP9cKiatrr4iRZ2Esa", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RVA5NDxYdRmdpFADxhzn6RyUN77yvi2rqx2iivMj5DqH8MYXuU5vvNY3cVn3y3XN19eySjF1DqCm9NL2YJD2SCc8GkdGimaZa5UuC9vSHksu5SJUfMWzdUHuubrezNgia4XRVtzJ3yjcjpCZ7j93Wu", + "public": + "xpub6AEAjAQ8kSXwpGVs7habe1udHgBaUHTPNC3a9BvasQ1ijycdnMHYF48iSjUt73KeZeCe73GBsc667UYra9xoWrUMcBNRcyKnDP4fEE2SKJe", + "address": + "DdzFFzCqrhssC7VJaxykK5JUoutSAcuuzfNs2AHut6vy4rK5vT1ZVgW6SK2jN6EMYEjD7u5qcBoxReTWFGo8kgzYsjeXxvW6sFifbsBE", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RVA5NDxYdRmeR2JNPktHPoEeqF3JnYxCL3agwSxBRJYk6pjXPeKxdAasNF7BN8wNhXUts9ccnmYrQVMLHeJ85JKmhpSC4ZMnzEYrTEoMkPYpyY123vV1kwa1bsVitZyAeVuQGvjb21nhUq96t7tQ2q", + "public": + "xpub6AEAjAQ8kSXwrHaAWvTzxBc32FRo1RqxxgR7q7zC3XxmDao6rTKdPHBUXAriNuLFGoUvvKbxFXY8E4hYqyiFjEzWNPZhUBJS5ZEkJD1ucYM", + "address": + "DdzFFzCqrhswyUjrLfudPMgRScw8KVPhqGNAJZUW9ek8mDzAv4pVcXaQi2eS4P83WyiA9BFh1zZpLKjUrVPzpvoSzwzF9eyUazQoTBAw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RaG3m97eqZXEvmBMegjU5PWR6VK2u1FMCfvayEDdzZMptguAHurTrUKLXnD5qYQDAuGRrnAeW774GNCwpmUpBvSSTtK9VefTsiDRiTacT9ki7fFVNXAPiL9EaXPShgVY5eTvczvD42JBVqacHhSN7B", + "public": + "xpub6AXM4Q9vsYosgjyLajVGziBaHZvpdLpyiTijt6jDtEM2EFtq7B28yrKDxcNWfLVNHi1NdjGQC3UNMp45STqLC2k8baJDKLFhBYdth6UkQoh", + "address": + "DdzFFzCqrhspMnQawaAawAsaVdspdaYGMcs8mkXztWR3moRZXjyvEtN2DK6dPgf5RqVEdFH1nHGXYo4aS2wnTeTNhdyRHvTtYK3Jn3L8", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RaG3m97eqZXFGwsQ78k2gbMhiXETcMrt2uC1bHJ2zbZWcr3uGXwH9uP3ZQBhnKZagESrBAAJi7bvbmJgF8zoEczvgcma5eeThyiQgvZcmk8rF2wsHr48ukL89zLxAmZga5VXnD228xxucCQikSMeVi", + "public": + "xpub6AXM4Q9vsYoshuvEVxUCoc4jA5L7RTk1LP43CcfR5rNc2c9GMAoE9ssPALnfXstCaghFgn42qLyPc5Zpj2YM1CPGKBeASbBzU88SZ79KZAQ", + "address": + "DdzFFzCqrht6aKuSC1TTc34fuL7q2D3edx78CungMegz6P5mrQGa1KoYKkQic5g74KDChKkWNSMx3Q869fsvJkiYTgqES5Qcp9jxPGvq", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RaG3m97eqZXFuMsLKTRJUPq6Sn3MED7QoEwBdqit84Vd2MgEtLN2BknAopDx1n2fDhKc7E2ugFG6XzAJ6BryoSKDQvKZ1fEPGa76prz43UiBxNrhrRuD4ztZ6KiSXg4p7WLa5fkVbJeHhJudLVwCv4", + "public": + "xpub6AXM4Q9vsYosk2VraG2M3YJeziyccdPgQY1VsRT6yFtrG7LqRQRi4KXCnJfNTgNwJ4QLRCR9GaXCjtneYEr3Sprs7icH9J2x3yJdVRiq976", + "address": + "DdzFFzCqrht6qZcnFkNqqP6okshbhEXwqokvS7bqx5ujZiQ7rY9DnRqwtq3GgZKbxEtjddxCA6HqV2wpBxBST51WGUK1ATxF6CK7biK1", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RqaNvX1KFQ3dZmMmy9JAvWMaVDHnh8cNyhXCvgMAjAZNmanbcZsLDvEraa83ytiG2of5c2tZvwhV55jhfPFaWi8TDnN8NZ11ErPvqCoxt2wNH3U1QirVoZ2aSJk3QCDqnEM46KzgHXFGmxzbFYRhHw", + "public": + "xpub6BQuSph2Wk6K3UfFdq5Khf2v9d7mX3aAg3KA6FtFa3Wf5EH1iuS3WH2rMMs8rwk67yb2hCQXyQdfesRbLwzwvePeApVK8i7p128eiAGdahP", + "address": + "DdzFFzCqrhszkks4ja3PTtC4dS5QZRbiosQfdNXpxLWsBtjEio4Gzq6rGiTLDMGLyyfC9jaPD6i39qwpiYcJmVPUTFWhQjrXZE69kxAj", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RqaNvX1KFQ3eAFzEPyAHuAPk4qVgm2bYKLWkRfg8xXJhJMsWgAY1oBgT7ro7e4mh4DpVTGTL5T1755YG2Q8pJgtqGiUAkmYbwCe86EUk7E7thysCXx1R5aSQWRVgTWtchqUoTM9EENuFmWuXtKSsaZ", + "public": + "xpub6BQuSph2Wk6K5UmyAXyWAmi9E5vpERiLoXw6vC7BgbN9yVXq4e1NsrnNNy8RTfpe9gCjjbJd1QS2EyR6kriM9nvZmgKuvkyYiurcPVzaihh", + "address": + "DdzFFzCqrht7ZxEo3Cmr9SdrH5ikrkW8edbXoSxkFctiTqYMTFgBVXuhJx1stDsS4tXGDJCKSWEmtfiPQyEFKf8w9dPeLqxtRcu3MFEj", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RqaNvX1KFQ3f8b8wmCAGZ9dhoavqee758SXowDcC3tikLEK2WiGSFGLmQdo4ZYWcLWvAs7cwFTyr4EH2hsp9t8RaR1vpkzKDF4yPmtaTptWfpZPvtKGNunN4K5HrYD9ctih3J7X4AApQvH2qzTUyui", + "public": + "xpub6BQuSph2Wk6K8kQBESRSnggm6b8uQDGcoT9RgzKpk9VDhVULADphvcEzJoWhueDEXyusrTD1zuWAaWU6hHWffmndAdsyiAYn6nyWJ8GZrkd", + "address": + "DdzFFzCqrhshc5xg1piRz9mmSitftfZq6JLo2LtLkxLxR4RUw9UWGtjTijHPx6HfuxQqT7V6BCm9nLAoykFo7Jtd9tDS2jUq5vKgpMbE", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "1d28ead3cb6a06cbfe9f3c6cc2c4b088b6e1a725d95e46c83b91f6bba133f7e2", + "private": + "188ed654bb87bd1942e1d2eed9400e230f57e0391ce5b27a7ca2f1f38a9d8440a16067a3ec0f552faf2275f1600794bf3e0993944e0306cb339ef6dc41d43540", + "public": + "0000cef16b5bd2abea765a97aaf5bc8c16b0f89d7b24b93b41266d0c996a0d7696", + "chaincode": + "44804bf5b2f75b17b76fa4c638a68c99f278c58e1b6e8bb0055a0741b313e3bd", + "hd_key": + "368256c70f7891d97242e8a6a1811072cb05348faa311076dd1a63af43912ef5", + "child": [ + { + "private": + "xprv3RVA5NDxYdRmdR1Mav2oNhokVVbsFEsW4wUvaL9BSizvGz1mRBhyMSZhhWkWXMis1Dhi5hVwbSCC1CQ9mqw3N4Sf7qJQULjtehA8mynwMghUaErfeX2pCLZMQ4nZSsfkwqhH4wtqaFhV4aSResM1pT4", + "public": + "xpub6AEAjAQ8kSXwnvGkZF1KGK6nxBGW9pVgqJLmhvho9rTG3nF7Xvrc1kZPU8craPG1mtZihcCDaVBBXo2jZg6XLRuVzxQyQjr4Ae3Bkj12Wj8", + "address": + "DdzFFzCqrhsspPdoF2axVqqCVNDqH2KxskQ9sYZSGt4YUUSqVkqrXVdTZP1RXGHp7CrZ7wwVuKWpW91x4n72bSQP9cKiatrr4iRZ2Esa", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RVA5NDxYdRmdpFADxhzn6RyUN77yvi2rqx2iivMj5DqH8MYXuU5vvNY3cVn3y3XN19eySjF1DqCm9NL2YJD2SCc8GkdGimaZa5UuC9vSHksu5SJUfMWzdUHuubrezNgia4XRVtzJ3yjcjpCZ7j93Wu", + "public": + "xpub6AEAjAQ8kSXwpGVs7habe1udHgBaUHTPNC3a9BvasQ1ijycdnMHYF48iSjUt73KeZeCe73GBsc667UYra9xoWrUMcBNRcyKnDP4fEE2SKJe", + "address": + "DdzFFzCqrhssC7VJaxykK5JUoutSAcuuzfNs2AHut6vy4rK5vT1ZVgW6SK2jN6EMYEjD7u5qcBoxReTWFGo8kgzYsjeXxvW6sFifbsBE", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RVA5NDxYdRmeR2JNPktHPoEeqF3JnYxCL3agwSxBRJYk6pjXPeKxdAasNF7BN8wNhXUts9ccnmYrQVMLHeJ85JKmhpSC4ZMnzEYrTEoMkPYpyY123vV1kwa1bsVitZyAeVuQGvjb21nhUq96t7tQ2q", + "public": + "xpub6AEAjAQ8kSXwrHaAWvTzxBc32FRo1RqxxgR7q7zC3XxmDao6rTKdPHBUXAriNuLFGoUvvKbxFXY8E4hYqyiFjEzWNPZhUBJS5ZEkJD1ucYM", + "address": + "DdzFFzCqrhswyUjrLfudPMgRScw8KVPhqGNAJZUW9ek8mDzAv4pVcXaQi2eS4P83WyiA9BFh1zZpLKjUrVPzpvoSzwzF9eyUazQoTBAw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RaG3m97eqZXEvmBMegjU5PWR6VK2u1FMCfvayEDdzZMptguAHurTrUKLXnD5qYQDAuGRrnAeW774GNCwpmUpBvSSTtK9VefTsiDRiTacT9ki7fFVNXAPiL9EaXPShgVY5eTvczvD42JBVqacHhSN7B", + "public": + "xpub6AXM4Q9vsYosgjyLajVGziBaHZvpdLpyiTijt6jDtEM2EFtq7B28yrKDxcNWfLVNHi1NdjGQC3UNMp45STqLC2k8baJDKLFhBYdth6UkQoh", + "address": + "DdzFFzCqrhspMnQawaAawAsaVdspdaYGMcs8mkXztWR3moRZXjyvEtN2DK6dPgf5RqVEdFH1nHGXYo4aS2wnTeTNhdyRHvTtYK3Jn3L8", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RaG3m97eqZXFGwsQ78k2gbMhiXETcMrt2uC1bHJ2zbZWcr3uGXwH9uP3ZQBhnKZagESrBAAJi7bvbmJgF8zoEczvgcma5eeThyiQgvZcmk8rF2wsHr48ukL89zLxAmZga5VXnD228xxucCQikSMeVi", + "public": + "xpub6AXM4Q9vsYoshuvEVxUCoc4jA5L7RTk1LP43CcfR5rNc2c9GMAoE9ssPALnfXstCaghFgn42qLyPc5Zpj2YM1CPGKBeASbBzU88SZ79KZAQ", + "address": + "DdzFFzCqrht6aKuSC1TTc34fuL7q2D3edx78CungMegz6P5mrQGa1KoYKkQic5g74KDChKkWNSMx3Q869fsvJkiYTgqES5Qcp9jxPGvq", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RaG3m97eqZXFuMsLKTRJUPq6Sn3MED7QoEwBdqit84Vd2MgEtLN2BknAopDx1n2fDhKc7E2ugFG6XzAJ6BryoSKDQvKZ1fEPGa76prz43UiBxNrhrRuD4ztZ6KiSXg4p7WLa5fkVbJeHhJudLVwCv4", + "public": + "xpub6AXM4Q9vsYosk2VraG2M3YJeziyccdPgQY1VsRT6yFtrG7LqRQRi4KXCnJfNTgNwJ4QLRCR9GaXCjtneYEr3Sprs7icH9J2x3yJdVRiq976", + "address": + "DdzFFzCqrht6qZcnFkNqqP6okshbhEXwqokvS7bqx5ujZiQ7rY9DnRqwtq3GgZKbxEtjddxCA6HqV2wpBxBST51WGUK1ATxF6CK7biK1", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RqaNvX1KFQ3dZmMmy9JAvWMaVDHnh8cNyhXCvgMAjAZNmanbcZsLDvEraa83ytiG2of5c2tZvwhV55jhfPFaWi8TDnN8NZ11ErPvqCoxt2wNH3U1QirVoZ2aSJk3QCDqnEM46KzgHXFGmxzbFYRhHw", + "public": + "xpub6BQuSph2Wk6K3UfFdq5Khf2v9d7mX3aAg3KA6FtFa3Wf5EH1iuS3WH2rMMs8rwk67yb2hCQXyQdfesRbLwzwvePeApVK8i7p128eiAGdahP", + "address": + "DdzFFzCqrhszkks4ja3PTtC4dS5QZRbiosQfdNXpxLWsBtjEio4Gzq6rGiTLDMGLyyfC9jaPD6i39qwpiYcJmVPUTFWhQjrXZE69kxAj", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RqaNvX1KFQ3eAFzEPyAHuAPk4qVgm2bYKLWkRfg8xXJhJMsWgAY1oBgT7ro7e4mh4DpVTGTL5T1755YG2Q8pJgtqGiUAkmYbwCe86EUk7E7thysCXx1R5aSQWRVgTWtchqUoTM9EENuFmWuXtKSsaZ", + "public": + "xpub6BQuSph2Wk6K5UmyAXyWAmi9E5vpERiLoXw6vC7BgbN9yVXq4e1NsrnNNy8RTfpe9gCjjbJd1QS2EyR6kriM9nvZmgKuvkyYiurcPVzaihh", + "address": + "DdzFFzCqrht7ZxEo3Cmr9SdrH5ikrkW8edbXoSxkFctiTqYMTFgBVXuhJx1stDsS4tXGDJCKSWEmtfiPQyEFKf8w9dPeLqxtRcu3MFEj", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RqaNvX1KFQ3f8b8wmCAGZ9dhoavqee758SXowDcC3tikLEK2WiGSFGLmQdo4ZYWcLWvAs7cwFTyr4EH2hsp9t8RaR1vpkzKDF4yPmtaTptWfpZPvtKGNunN4K5HrYD9ctih3J7X4AApQvH2qzTUyui", + "public": + "xpub6BQuSph2Wk6K8kQBESRSnggm6b8uQDGcoT9RgzKpk9VDhVULADphvcEzJoWhueDEXyusrTD1zuWAaWU6hHWffmndAdsyiAYn6nyWJ8GZrkd", + "address": + "DdzFFzCqrhshc5xg1piRz9mmSitftfZq6JLo2LtLkxLxR4RUw9UWGtjTijHPx6HfuxQqT7V6BCm9nLAoykFo7Jtd9tDS2jUq5vKgpMbE", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "1d28ead3cb6a06cbfe9f3c6cc2c4b088b6e1a725d95e46c83b91f6bba133f7e2", + "private": + "188ed654bb87bd1942e1d2eed9400e230f57e0391ce5b27a7ca2f1f38a9d8440a16067a3ec0f552faf2275f1600794bf3e0993944e0306cb339ef6dc41d43540", + "public": + "0000cef16b5bd2abea765a97aaf5bc8c16b0f89d7b24b93b41266d0c996a0d7696", + "chaincode": + "44804bf5b2f75b17b76fa4c638a68c99f278c58e1b6e8bb0055a0741b313e3bd", + "hd_key": + "368256c70f7891d97242e8a6a1811072cb05348faa311076dd1a63af43912ef5", + "child": [ + { + "private": + "xprv3RVA5NDxYdRmdR1Mav2oNhokVVbsFEsW4wUvaL9BSizvGz1mRBhyMSZhhWkWXMis1Dhi5hVwbSCC1CQ9mqw3N4Sf7qJQULjtehA8mynwMghUaErfeX2pCLZMQ4nZSsfkwqhH4wtqaFhV4aSResM1pT4", + "public": + "xpub6AEAjAQ8kSXwnvGkZF1KGK6nxBGW9pVgqJLmhvho9rTG3nF7Xvrc1kZPU8craPG1mtZihcCDaVBBXo2jZg6XLRuVzxQyQjr4Ae3Bkj12Wj8", + "address": + "DdzFFzCqrhsspPdoF2axVqqCVNDqH2KxskQ9sYZSGt4YUUSqVkqrXVdTZP1RXGHp7CrZ7wwVuKWpW91x4n72bSQP9cKiatrr4iRZ2Esa", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RVA5NDxYdRmdpFADxhzn6RyUN77yvi2rqx2iivMj5DqH8MYXuU5vvNY3cVn3y3XN19eySjF1DqCm9NL2YJD2SCc8GkdGimaZa5UuC9vSHksu5SJUfMWzdUHuubrezNgia4XRVtzJ3yjcjpCZ7j93Wu", + "public": + "xpub6AEAjAQ8kSXwpGVs7habe1udHgBaUHTPNC3a9BvasQ1ijycdnMHYF48iSjUt73KeZeCe73GBsc667UYra9xoWrUMcBNRcyKnDP4fEE2SKJe", + "address": + "DdzFFzCqrhssC7VJaxykK5JUoutSAcuuzfNs2AHut6vy4rK5vT1ZVgW6SK2jN6EMYEjD7u5qcBoxReTWFGo8kgzYsjeXxvW6sFifbsBE", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RVA5NDxYdRmeR2JNPktHPoEeqF3JnYxCL3agwSxBRJYk6pjXPeKxdAasNF7BN8wNhXUts9ccnmYrQVMLHeJ85JKmhpSC4ZMnzEYrTEoMkPYpyY123vV1kwa1bsVitZyAeVuQGvjb21nhUq96t7tQ2q", + "public": + "xpub6AEAjAQ8kSXwrHaAWvTzxBc32FRo1RqxxgR7q7zC3XxmDao6rTKdPHBUXAriNuLFGoUvvKbxFXY8E4hYqyiFjEzWNPZhUBJS5ZEkJD1ucYM", + "address": + "DdzFFzCqrhswyUjrLfudPMgRScw8KVPhqGNAJZUW9ek8mDzAv4pVcXaQi2eS4P83WyiA9BFh1zZpLKjUrVPzpvoSzwzF9eyUazQoTBAw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RaG3m97eqZXEvmBMegjU5PWR6VK2u1FMCfvayEDdzZMptguAHurTrUKLXnD5qYQDAuGRrnAeW774GNCwpmUpBvSSTtK9VefTsiDRiTacT9ki7fFVNXAPiL9EaXPShgVY5eTvczvD42JBVqacHhSN7B", + "public": + "xpub6AXM4Q9vsYosgjyLajVGziBaHZvpdLpyiTijt6jDtEM2EFtq7B28yrKDxcNWfLVNHi1NdjGQC3UNMp45STqLC2k8baJDKLFhBYdth6UkQoh", + "address": + "DdzFFzCqrhspMnQawaAawAsaVdspdaYGMcs8mkXztWR3moRZXjyvEtN2DK6dPgf5RqVEdFH1nHGXYo4aS2wnTeTNhdyRHvTtYK3Jn3L8", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RaG3m97eqZXFGwsQ78k2gbMhiXETcMrt2uC1bHJ2zbZWcr3uGXwH9uP3ZQBhnKZagESrBAAJi7bvbmJgF8zoEczvgcma5eeThyiQgvZcmk8rF2wsHr48ukL89zLxAmZga5VXnD228xxucCQikSMeVi", + "public": + "xpub6AXM4Q9vsYoshuvEVxUCoc4jA5L7RTk1LP43CcfR5rNc2c9GMAoE9ssPALnfXstCaghFgn42qLyPc5Zpj2YM1CPGKBeASbBzU88SZ79KZAQ", + "address": + "DdzFFzCqrht6aKuSC1TTc34fuL7q2D3edx78CungMegz6P5mrQGa1KoYKkQic5g74KDChKkWNSMx3Q869fsvJkiYTgqES5Qcp9jxPGvq", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RaG3m97eqZXFuMsLKTRJUPq6Sn3MED7QoEwBdqit84Vd2MgEtLN2BknAopDx1n2fDhKc7E2ugFG6XzAJ6BryoSKDQvKZ1fEPGa76prz43UiBxNrhrRuD4ztZ6KiSXg4p7WLa5fkVbJeHhJudLVwCv4", + "public": + "xpub6AXM4Q9vsYosk2VraG2M3YJeziyccdPgQY1VsRT6yFtrG7LqRQRi4KXCnJfNTgNwJ4QLRCR9GaXCjtneYEr3Sprs7icH9J2x3yJdVRiq976", + "address": + "DdzFFzCqrht6qZcnFkNqqP6okshbhEXwqokvS7bqx5ujZiQ7rY9DnRqwtq3GgZKbxEtjddxCA6HqV2wpBxBST51WGUK1ATxF6CK7biK1", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RqaNvX1KFQ3dZmMmy9JAvWMaVDHnh8cNyhXCvgMAjAZNmanbcZsLDvEraa83ytiG2of5c2tZvwhV55jhfPFaWi8TDnN8NZ11ErPvqCoxt2wNH3U1QirVoZ2aSJk3QCDqnEM46KzgHXFGmxzbFYRhHw", + "public": + "xpub6BQuSph2Wk6K3UfFdq5Khf2v9d7mX3aAg3KA6FtFa3Wf5EH1iuS3WH2rMMs8rwk67yb2hCQXyQdfesRbLwzwvePeApVK8i7p128eiAGdahP", + "address": + "DdzFFzCqrhszkks4ja3PTtC4dS5QZRbiosQfdNXpxLWsBtjEio4Gzq6rGiTLDMGLyyfC9jaPD6i39qwpiYcJmVPUTFWhQjrXZE69kxAj", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RqaNvX1KFQ3eAFzEPyAHuAPk4qVgm2bYKLWkRfg8xXJhJMsWgAY1oBgT7ro7e4mh4DpVTGTL5T1755YG2Q8pJgtqGiUAkmYbwCe86EUk7E7thysCXx1R5aSQWRVgTWtchqUoTM9EENuFmWuXtKSsaZ", + "public": + "xpub6BQuSph2Wk6K5UmyAXyWAmi9E5vpERiLoXw6vC7BgbN9yVXq4e1NsrnNNy8RTfpe9gCjjbJd1QS2EyR6kriM9nvZmgKuvkyYiurcPVzaihh", + "address": + "DdzFFzCqrht7ZxEo3Cmr9SdrH5ikrkW8edbXoSxkFctiTqYMTFgBVXuhJx1stDsS4tXGDJCKSWEmtfiPQyEFKf8w9dPeLqxtRcu3MFEj", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RqaNvX1KFQ3f8b8wmCAGZ9dhoavqee758SXowDcC3tikLEK2WiGSFGLmQdo4ZYWcLWvAs7cwFTyr4EH2hsp9t8RaR1vpkzKDF4yPmtaTptWfpZPvtKGNunN4K5HrYD9ctih3J7X4AApQvH2qzTUyui", + "public": + "xpub6BQuSph2Wk6K8kQBESRSnggm6b8uQDGcoT9RgzKpk9VDhVULADphvcEzJoWhueDEXyusrTD1zuWAaWU6hHWffmndAdsyiAYn6nyWJ8GZrkd", + "address": + "DdzFFzCqrhshc5xg1piRz9mmSitftfZq6JLo2LtLkxLxR4RUw9UWGtjTijHPx6HfuxQqT7V6BCm9nLAoykFo7Jtd9tDS2jUq5vKgpMbE", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "b2f89882dabd3916ed94da1d97be0e1e94b160740902a68f43b454adc6cda3d9", + "private": + "082568a33bc0cc2707a9501f5a3c4ee3d39d0a4483654c9ab7df1cb00575885603aea0e49d5a40e71411ccab067ad8b783582c5b318b8d83e203996621d4fe06", + "public": + "005b924d68b1cfe275c2ce14a7c39e8cc40a91188bcdff3b98be67829c9e48e223", + "chaincode": + "6ecc42552b8adf2b7ea8c76928af32e681733df6fa32c39701cf165e829afe2b", + "hd_key": + "c152c045b4ffd9d6c6835afb24b658f58d3a5dd40e27a938b970339ffa467ffb", + "child": [ + { + "private": + "xprv3Rh3mhNFBhfGN7MFGxdTwn9MQYRaCkUXuJ2PmL1swdy2Qga978d2ifu4KVuFtBUM2dVHApR1vyt5RTpBqw2wS3VZG1E1SSTpB2G1mak2HxaWbrLK4YW46wYLPMsswJKLWfZHQ6FhpM1NobwB9DwvGWj", + "public": + "xpub6AvCT1WH9tjcxfc9dJ9qiJtUYdNCAzB7QfgKNHTbbK66WXNRo1oqyMVkNmrRTLdr99CJ9rLjfNTHTANdmYuo6nraSyRguxBkh2tTnCZ7R6u", + "address": + "DdzFFzCqrht9yhrjhL7H4mHHzkva75JE19cDq76tmWGKDDPXvhmDmTrsgA5qhaZHbnYR1SpNTHuSvoUFpAvHGtWB4xwSDVHuPLPDLp2C", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rh3mhNFBhfGNent7cquw1j8Tk9KH8mns1xyP3zUmZruxpnFpW6YtTvU57wRUhCTne9rBjFrfye3BuQ7okkpEkqfURwnpvimDJYXjFzQdaurqkQXWwFzbPFeFWCi8EeG9sLoi5EyQaQEGEw66bco7TH", + "public": + "xpub6AvCT1WH9tjczVT41Wtvwoa6y9XWpK8X2jkRz24iPnDrQqJwMQi8f8YDzBJuvfnLKDHxbXW52YR4GAnbsttv9NwxbHhTtYVDGP6xW6JCoPh", + "address": + "DdzFFzCqrhsjogoCK8fsa4w8SyJTFf1j2SVJywRMg5LRSq5qAD64ky5Sq9zsdQN9nGG57F1bGBeHfZzCBx7X9yvjVCvAHtutTgxvKPUN", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rh3mhNFBhfGPhfXGHUwrichkje3v1CQX1gU1bBi3kj4e7jXUBJTFDKNrrHxJEKAV6gm6AXrPavph361s5CaTc9sT5pWu3XfDyENnkeVFrLKToB6hhUQnfsZJ63dbo2ihMHXvMTGHxi7HatWurizyzn", + "public": + "xpub6AvCT1WH9tjd42NFLrjEYEi4b3aPBEieBr6Kp5fVYyeM7vwDtSKCGKwnRYrWwkd12z5kRCU1Zz6PXG3DrNKiKrVTfC836XVJQB2BHAekpVP", + "address": + "DdzFFzCqrht2SBqMcgf8PS1X6CNRTmmNCFyfkRnJKK5Dz7LseVdWDFTDneGosW18PQtLJ25yjCZEsG75NshGhuMim3Y3piZe5ftL63cG", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RX9yiH2Y9YdEvnzuW4dLtnbgy5Nh9cTu52fnBZqCZczTHsvsuwSNUMEFeXsvjS6EAsuHfXdND1ZyNXUZoDmFiJVLQVW6tjR2Nx5N2jXoscnKWLTJDPREBjMxd7DVhG5WY5iNzAcFwjqzBJHSLaErsj", + "public": + "xpub6ALttbWeJiJ4Myr11taHjwpuzisF9AggAcXXK6amcnDo2ycy2rhg9wwqVEh1KBR7ymf6YNqk2ShrrdHzAgshxkPkajZuu9FxKJGDRvbgpAD", + "address": + "DdzFFzCqrht26cvD9taFnwtDWk9xGKRDyfeDFb5H7XMma4QKLShsHuvZ7fyChkiCGg8yHwyttbHNjVKnd1jPMdacNBNxW1kwVaqMUVnk", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RX9yiH2Y9YdF9grv2xYLXdFV9qcqLCLehxTc9Y2Mbs6Z4FQwHjgNEUVrRgMzuWpN5ttAWiT7JjD9q66c54YaspBAJpc6bvCrs3FSbXKzg3yJ44nVwQbnwwjqajRvLhmynxZYf6jRzZhBZVVc1u8S47", + "public": + "xpub6ALttbWeJiJ4NjFXgLqHKA7mq65FsX7YpCAhtuKEjaSo45JFJiGXNmZkMddnCnR7BwqnWVGeGeHUeVzJtb67sJG6s8euqHA3jhvFi1MPMph", + "address": + "DdzFFzCqrhsucTMwnKzL3daMuC6gcdb2yNMbfk2oRbVb9D5wzsGhvhJdbrFMG1SaFPjG95UUJkZD5rc5HKDZ1A6BJXQz2T4GujZJ3ibA", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RX9yiH2Y9YdFnxyQ8A3qQyRTDm2LDsBTdzEAPvmYXBsXNU3wJGu8AyNynfSWQka1RcZWq7jjTzeZUzkmt61m3EfEp8sXMGav1QWTiwodm4Tk1hZoNafpY55hPeBjtm5ynhMSKDAHscQCyJ2uASJS4v", + "public": + "xpub6ALttbWeJiJ4Qtjr56g5VMep36G5cXT56naqPLKHjs5MFFY6EhpkRJhi4vhmKsAbQ7Lnnjfjh44Jz21nD2CpPqDifpbEahiit99ZB1Uxvdi", + "address": + "DdzFFzCqrhshycTYtpaxEseDzgBPm3qZUobBjaw2JUvoJjHd5jvMoSxf7FER4sMFPTPkKe5hCkZUA55SYvdKTu3X55EbzVBGWPd2eY6w", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RtpwQoE2fRPy8XL8agXZGUm1Qct6fda87jgKuPQUjCLaCEZNwWFSvFrSRoLfSdhY8PhAjeM9ZjVTV3WsmMznW3p2MfB6rGEG6qHiFyrfnbr3kd6PaRXuzGf1Ktvyga47WG7cPCgwdQN51GhhDC5cJD", + "public": + "xpub6BbrCKdYCXQPV12vFLqGZtAXGRQRCh1bt3EZ5ixaF6rcQTycv57JbrNKeSTvQ2EQcyDur62KGFiRYRNuhPkojmDve86wNJ1JvP9vQtjgnUq", + "address": + "DdzFFzCqrhtD44SMpH6NH7uv1nzSUH2isCA5Zq2kWJuHyhg86LV4kC81f7PWGLnktsQZuFX6c37XBLcbkLXjbCHCy2Mw213KygSGNbu8", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RtpwQoE2fRPyTa84Mvs4zzENSmhT9mL1vWfezHeYQzAwBoe5ezJh6ZXB94kgB6932b8nAh79yoEf7Ucfm7KKyfk5HYUsyad4tgcRBCzX9j12hw1SFHNKgoqMGsUxvq5Vdz1EJ4buP4YFaxWYLesbRD", + "public": + "xpub6BbrCKdYCXQPW79ynA81My4c16o2kpFaNTFiUZav4ehkBxwmdUsuq6aurDgSSwNiodNAQcdxEARemTQWv2NyC9sPkwGNoiZRMXoSwkvBgxn", + "address": + "DdzFFzCqrhsySCDhon4P3kzPhoj9DpA2QSDdG6mkNG4uvEknqvVXNDZi9VPcc7pXd2rpc682k831tPjRNc37hSPAiU3NjYBJBA8HxysT", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RtpwQoE2fRPz5tZDnYdY1Teuw4AsgqghHY5a9icePX5ZsJityH51kosx3vh2JgnkSvTnS5Likvtc3cMMt3P3b7LbG5xEu62ym4483967gMuf2AF6dJPZ81tCnVURWqVqS3urno1Jj9DmQ14Fgb4qCC", + "public": + "xpub6BbrCKdYCXQPYDQsJfr9cQKtmmWWCD8NTPBjr9kDUiE3dW8TD6XsUHsrt29M1BhZvMF8KZUhhhPqH91A7MJFdqBc49XTsV4xt2B1woqcb7D", + "address": + "DdzFFzCqrht9pvxH6s9kLpiMYEdDpJe3K4oo4wfD7WXxQtPw5AUjcw3iR4hVLWXat4WR2DgaoUt5jeXwBkqRXAwpxCaXMKiNK9wQcQCh", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "b2f89882dabd3916ed94da1d97be0e1e94b160740902a68f43b454adc6cda3d9", + "private": + "082568a33bc0cc2707a9501f5a3c4ee3d39d0a4483654c9ab7df1cb00575885603aea0e49d5a40e71411ccab067ad8b783582c5b318b8d83e203996621d4fe06", + "public": + "005b924d68b1cfe275c2ce14a7c39e8cc40a91188bcdff3b98be67829c9e48e223", + "chaincode": + "6ecc42552b8adf2b7ea8c76928af32e681733df6fa32c39701cf165e829afe2b", + "hd_key": + "c152c045b4ffd9d6c6835afb24b658f58d3a5dd40e27a938b970339ffa467ffb", + "child": [ + { + "private": + "xprv3Rh3mhNFBhfGN7MFGxdTwn9MQYRaCkUXuJ2PmL1swdy2Qga978d2ifu4KVuFtBUM2dVHApR1vyt5RTpBqw2wS3VZG1E1SSTpB2G1mak2HxaWbrLK4YW46wYLPMsswJKLWfZHQ6FhpM1NobwB9DwvGWj", + "public": + "xpub6AvCT1WH9tjcxfc9dJ9qiJtUYdNCAzB7QfgKNHTbbK66WXNRo1oqyMVkNmrRTLdr99CJ9rLjfNTHTANdmYuo6nraSyRguxBkh2tTnCZ7R6u", + "address": + "DdzFFzCqrht9yhrjhL7H4mHHzkva75JE19cDq76tmWGKDDPXvhmDmTrsgA5qhaZHbnYR1SpNTHuSvoUFpAvHGtWB4xwSDVHuPLPDLp2C", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rh3mhNFBhfGNent7cquw1j8Tk9KH8mns1xyP3zUmZruxpnFpW6YtTvU57wRUhCTne9rBjFrfye3BuQ7okkpEkqfURwnpvimDJYXjFzQdaurqkQXWwFzbPFeFWCi8EeG9sLoi5EyQaQEGEw66bco7TH", + "public": + "xpub6AvCT1WH9tjczVT41Wtvwoa6y9XWpK8X2jkRz24iPnDrQqJwMQi8f8YDzBJuvfnLKDHxbXW52YR4GAnbsttv9NwxbHhTtYVDGP6xW6JCoPh", + "address": + "DdzFFzCqrhsjogoCK8fsa4w8SyJTFf1j2SVJywRMg5LRSq5qAD64ky5Sq9zsdQN9nGG57F1bGBeHfZzCBx7X9yvjVCvAHtutTgxvKPUN", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rh3mhNFBhfGPhfXGHUwrichkje3v1CQX1gU1bBi3kj4e7jXUBJTFDKNrrHxJEKAV6gm6AXrPavph361s5CaTc9sT5pWu3XfDyENnkeVFrLKToB6hhUQnfsZJ63dbo2ihMHXvMTGHxi7HatWurizyzn", + "public": + "xpub6AvCT1WH9tjd42NFLrjEYEi4b3aPBEieBr6Kp5fVYyeM7vwDtSKCGKwnRYrWwkd12z5kRCU1Zz6PXG3DrNKiKrVTfC836XVJQB2BHAekpVP", + "address": + "DdzFFzCqrht2SBqMcgf8PS1X6CNRTmmNCFyfkRnJKK5Dz7LseVdWDFTDneGosW18PQtLJ25yjCZEsG75NshGhuMim3Y3piZe5ftL63cG", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RX9yiH2Y9YdEvnzuW4dLtnbgy5Nh9cTu52fnBZqCZczTHsvsuwSNUMEFeXsvjS6EAsuHfXdND1ZyNXUZoDmFiJVLQVW6tjR2Nx5N2jXoscnKWLTJDPREBjMxd7DVhG5WY5iNzAcFwjqzBJHSLaErsj", + "public": + "xpub6ALttbWeJiJ4Myr11taHjwpuzisF9AggAcXXK6amcnDo2ycy2rhg9wwqVEh1KBR7ymf6YNqk2ShrrdHzAgshxkPkajZuu9FxKJGDRvbgpAD", + "address": + "DdzFFzCqrht26cvD9taFnwtDWk9xGKRDyfeDFb5H7XMma4QKLShsHuvZ7fyChkiCGg8yHwyttbHNjVKnd1jPMdacNBNxW1kwVaqMUVnk", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RX9yiH2Y9YdF9grv2xYLXdFV9qcqLCLehxTc9Y2Mbs6Z4FQwHjgNEUVrRgMzuWpN5ttAWiT7JjD9q66c54YaspBAJpc6bvCrs3FSbXKzg3yJ44nVwQbnwwjqajRvLhmynxZYf6jRzZhBZVVc1u8S47", + "public": + "xpub6ALttbWeJiJ4NjFXgLqHKA7mq65FsX7YpCAhtuKEjaSo45JFJiGXNmZkMddnCnR7BwqnWVGeGeHUeVzJtb67sJG6s8euqHA3jhvFi1MPMph", + "address": + "DdzFFzCqrhsucTMwnKzL3daMuC6gcdb2yNMbfk2oRbVb9D5wzsGhvhJdbrFMG1SaFPjG95UUJkZD5rc5HKDZ1A6BJXQz2T4GujZJ3ibA", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RX9yiH2Y9YdFnxyQ8A3qQyRTDm2LDsBTdzEAPvmYXBsXNU3wJGu8AyNynfSWQka1RcZWq7jjTzeZUzkmt61m3EfEp8sXMGav1QWTiwodm4Tk1hZoNafpY55hPeBjtm5ynhMSKDAHscQCyJ2uASJS4v", + "public": + "xpub6ALttbWeJiJ4Qtjr56g5VMep36G5cXT56naqPLKHjs5MFFY6EhpkRJhi4vhmKsAbQ7Lnnjfjh44Jz21nD2CpPqDifpbEahiit99ZB1Uxvdi", + "address": + "DdzFFzCqrhshycTYtpaxEseDzgBPm3qZUobBjaw2JUvoJjHd5jvMoSxf7FER4sMFPTPkKe5hCkZUA55SYvdKTu3X55EbzVBGWPd2eY6w", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RtpwQoE2fRPy8XL8agXZGUm1Qct6fda87jgKuPQUjCLaCEZNwWFSvFrSRoLfSdhY8PhAjeM9ZjVTV3WsmMznW3p2MfB6rGEG6qHiFyrfnbr3kd6PaRXuzGf1Ktvyga47WG7cPCgwdQN51GhhDC5cJD", + "public": + "xpub6BbrCKdYCXQPV12vFLqGZtAXGRQRCh1bt3EZ5ixaF6rcQTycv57JbrNKeSTvQ2EQcyDur62KGFiRYRNuhPkojmDve86wNJ1JvP9vQtjgnUq", + "address": + "DdzFFzCqrhtD44SMpH6NH7uv1nzSUH2isCA5Zq2kWJuHyhg86LV4kC81f7PWGLnktsQZuFX6c37XBLcbkLXjbCHCy2Mw213KygSGNbu8", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RtpwQoE2fRPyTa84Mvs4zzENSmhT9mL1vWfezHeYQzAwBoe5ezJh6ZXB94kgB6932b8nAh79yoEf7Ucfm7KKyfk5HYUsyad4tgcRBCzX9j12hw1SFHNKgoqMGsUxvq5Vdz1EJ4buP4YFaxWYLesbRD", + "public": + "xpub6BbrCKdYCXQPW79ynA81My4c16o2kpFaNTFiUZav4ehkBxwmdUsuq6aurDgSSwNiodNAQcdxEARemTQWv2NyC9sPkwGNoiZRMXoSwkvBgxn", + "address": + "DdzFFzCqrhsySCDhon4P3kzPhoj9DpA2QSDdG6mkNG4uvEknqvVXNDZi9VPcc7pXd2rpc682k831tPjRNc37hSPAiU3NjYBJBA8HxysT", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RtpwQoE2fRPz5tZDnYdY1Teuw4AsgqghHY5a9icePX5ZsJityH51kosx3vh2JgnkSvTnS5Likvtc3cMMt3P3b7LbG5xEu62ym4483967gMuf2AF6dJPZ81tCnVURWqVqS3urno1Jj9DmQ14Fgb4qCC", + "public": + "xpub6BbrCKdYCXQPYDQsJfr9cQKtmmWWCD8NTPBjr9kDUiE3dW8TD6XsUHsrt29M1BhZvMF8KZUhhhPqH91A7MJFdqBc49XTsV4xt2B1woqcb7D", + "address": + "DdzFFzCqrht9pvxH6s9kLpiMYEdDpJe3K4oo4wfD7WXxQtPw5AUjcw3iR4hVLWXat4WR2DgaoUt5jeXwBkqRXAwpxCaXMKiNK9wQcQCh", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "b2f89882dabd3916ed94da1d97be0e1e94b160740902a68f43b454adc6cda3d9", + "private": + "082568a33bc0cc2707a9501f5a3c4ee3d39d0a4483654c9ab7df1cb00575885603aea0e49d5a40e71411ccab067ad8b783582c5b318b8d83e203996621d4fe06", + "public": + "005b924d68b1cfe275c2ce14a7c39e8cc40a91188bcdff3b98be67829c9e48e223", + "chaincode": + "6ecc42552b8adf2b7ea8c76928af32e681733df6fa32c39701cf165e829afe2b", + "hd_key": + "c152c045b4ffd9d6c6835afb24b658f58d3a5dd40e27a938b970339ffa467ffb", + "child": [ + { + "private": + "xprv3Rh3mhNFBhfGN7MFGxdTwn9MQYRaCkUXuJ2PmL1swdy2Qga978d2ifu4KVuFtBUM2dVHApR1vyt5RTpBqw2wS3VZG1E1SSTpB2G1mak2HxaWbrLK4YW46wYLPMsswJKLWfZHQ6FhpM1NobwB9DwvGWj", + "public": + "xpub6AvCT1WH9tjcxfc9dJ9qiJtUYdNCAzB7QfgKNHTbbK66WXNRo1oqyMVkNmrRTLdr99CJ9rLjfNTHTANdmYuo6nraSyRguxBkh2tTnCZ7R6u", + "address": + "DdzFFzCqrht9yhrjhL7H4mHHzkva75JE19cDq76tmWGKDDPXvhmDmTrsgA5qhaZHbnYR1SpNTHuSvoUFpAvHGtWB4xwSDVHuPLPDLp2C", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rh3mhNFBhfGNent7cquw1j8Tk9KH8mns1xyP3zUmZruxpnFpW6YtTvU57wRUhCTne9rBjFrfye3BuQ7okkpEkqfURwnpvimDJYXjFzQdaurqkQXWwFzbPFeFWCi8EeG9sLoi5EyQaQEGEw66bco7TH", + "public": + "xpub6AvCT1WH9tjczVT41Wtvwoa6y9XWpK8X2jkRz24iPnDrQqJwMQi8f8YDzBJuvfnLKDHxbXW52YR4GAnbsttv9NwxbHhTtYVDGP6xW6JCoPh", + "address": + "DdzFFzCqrhsjogoCK8fsa4w8SyJTFf1j2SVJywRMg5LRSq5qAD64ky5Sq9zsdQN9nGG57F1bGBeHfZzCBx7X9yvjVCvAHtutTgxvKPUN", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rh3mhNFBhfGPhfXGHUwrichkje3v1CQX1gU1bBi3kj4e7jXUBJTFDKNrrHxJEKAV6gm6AXrPavph361s5CaTc9sT5pWu3XfDyENnkeVFrLKToB6hhUQnfsZJ63dbo2ihMHXvMTGHxi7HatWurizyzn", + "public": + "xpub6AvCT1WH9tjd42NFLrjEYEi4b3aPBEieBr6Kp5fVYyeM7vwDtSKCGKwnRYrWwkd12z5kRCU1Zz6PXG3DrNKiKrVTfC836XVJQB2BHAekpVP", + "address": + "DdzFFzCqrht2SBqMcgf8PS1X6CNRTmmNCFyfkRnJKK5Dz7LseVdWDFTDneGosW18PQtLJ25yjCZEsG75NshGhuMim3Y3piZe5ftL63cG", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RX9yiH2Y9YdEvnzuW4dLtnbgy5Nh9cTu52fnBZqCZczTHsvsuwSNUMEFeXsvjS6EAsuHfXdND1ZyNXUZoDmFiJVLQVW6tjR2Nx5N2jXoscnKWLTJDPREBjMxd7DVhG5WY5iNzAcFwjqzBJHSLaErsj", + "public": + "xpub6ALttbWeJiJ4Myr11taHjwpuzisF9AggAcXXK6amcnDo2ycy2rhg9wwqVEh1KBR7ymf6YNqk2ShrrdHzAgshxkPkajZuu9FxKJGDRvbgpAD", + "address": + "DdzFFzCqrht26cvD9taFnwtDWk9xGKRDyfeDFb5H7XMma4QKLShsHuvZ7fyChkiCGg8yHwyttbHNjVKnd1jPMdacNBNxW1kwVaqMUVnk", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RX9yiH2Y9YdF9grv2xYLXdFV9qcqLCLehxTc9Y2Mbs6Z4FQwHjgNEUVrRgMzuWpN5ttAWiT7JjD9q66c54YaspBAJpc6bvCrs3FSbXKzg3yJ44nVwQbnwwjqajRvLhmynxZYf6jRzZhBZVVc1u8S47", + "public": + "xpub6ALttbWeJiJ4NjFXgLqHKA7mq65FsX7YpCAhtuKEjaSo45JFJiGXNmZkMddnCnR7BwqnWVGeGeHUeVzJtb67sJG6s8euqHA3jhvFi1MPMph", + "address": + "DdzFFzCqrhsucTMwnKzL3daMuC6gcdb2yNMbfk2oRbVb9D5wzsGhvhJdbrFMG1SaFPjG95UUJkZD5rc5HKDZ1A6BJXQz2T4GujZJ3ibA", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RX9yiH2Y9YdFnxyQ8A3qQyRTDm2LDsBTdzEAPvmYXBsXNU3wJGu8AyNynfSWQka1RcZWq7jjTzeZUzkmt61m3EfEp8sXMGav1QWTiwodm4Tk1hZoNafpY55hPeBjtm5ynhMSKDAHscQCyJ2uASJS4v", + "public": + "xpub6ALttbWeJiJ4Qtjr56g5VMep36G5cXT56naqPLKHjs5MFFY6EhpkRJhi4vhmKsAbQ7Lnnjfjh44Jz21nD2CpPqDifpbEahiit99ZB1Uxvdi", + "address": + "DdzFFzCqrhshycTYtpaxEseDzgBPm3qZUobBjaw2JUvoJjHd5jvMoSxf7FER4sMFPTPkKe5hCkZUA55SYvdKTu3X55EbzVBGWPd2eY6w", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RtpwQoE2fRPy8XL8agXZGUm1Qct6fda87jgKuPQUjCLaCEZNwWFSvFrSRoLfSdhY8PhAjeM9ZjVTV3WsmMznW3p2MfB6rGEG6qHiFyrfnbr3kd6PaRXuzGf1Ktvyga47WG7cPCgwdQN51GhhDC5cJD", + "public": + "xpub6BbrCKdYCXQPV12vFLqGZtAXGRQRCh1bt3EZ5ixaF6rcQTycv57JbrNKeSTvQ2EQcyDur62KGFiRYRNuhPkojmDve86wNJ1JvP9vQtjgnUq", + "address": + "DdzFFzCqrhtD44SMpH6NH7uv1nzSUH2isCA5Zq2kWJuHyhg86LV4kC81f7PWGLnktsQZuFX6c37XBLcbkLXjbCHCy2Mw213KygSGNbu8", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RtpwQoE2fRPyTa84Mvs4zzENSmhT9mL1vWfezHeYQzAwBoe5ezJh6ZXB94kgB6932b8nAh79yoEf7Ucfm7KKyfk5HYUsyad4tgcRBCzX9j12hw1SFHNKgoqMGsUxvq5Vdz1EJ4buP4YFaxWYLesbRD", + "public": + "xpub6BbrCKdYCXQPW79ynA81My4c16o2kpFaNTFiUZav4ehkBxwmdUsuq6aurDgSSwNiodNAQcdxEARemTQWv2NyC9sPkwGNoiZRMXoSwkvBgxn", + "address": + "DdzFFzCqrhsySCDhon4P3kzPhoj9DpA2QSDdG6mkNG4uvEknqvVXNDZi9VPcc7pXd2rpc682k831tPjRNc37hSPAiU3NjYBJBA8HxysT", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RtpwQoE2fRPz5tZDnYdY1Teuw4AsgqghHY5a9icePX5ZsJityH51kosx3vh2JgnkSvTnS5Likvtc3cMMt3P3b7LbG5xEu62ym4483967gMuf2AF6dJPZ81tCnVURWqVqS3urno1Jj9DmQ14Fgb4qCC", + "public": + "xpub6BbrCKdYCXQPYDQsJfr9cQKtmmWWCD8NTPBjr9kDUiE3dW8TD6XsUHsrt29M1BhZvMF8KZUhhhPqH91A7MJFdqBc49XTsV4xt2B1woqcb7D", + "address": + "DdzFFzCqrht9pvxH6s9kLpiMYEdDpJe3K4oo4wfD7WXxQtPw5AUjcw3iR4hVLWXat4WR2DgaoUt5jeXwBkqRXAwpxCaXMKiNK9wQcQCh", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "7adf5af157c8f56aae9a3632f3e620cded6a7de4bd436c6526173540c7557ec2", + "private": + "b0193465d7cb0bf0e3f5c92dd7c0494e52cf0f433b807ffbddd57cad1fd9845d84d9b35db22ff0454178c6f6456969cd7b78663c5e0aa0eeed97742b12199327", + "public": + "003ef81498749575553f5daddd3b107d3ee4ab52de4055d4565bf4cfd6d73fcc0d", + "chaincode": + "524fd5e48f10ca5a94740fc852952a7626b78ed4c477d4ecddc50d921a1511e0", + "hd_key": + "adcf73619d5bb1e837894cc6b200a260d128c9c4c1548f9b6660bd49391809e4", + "child": [ + { + "private": + "xprv3Rn86tQEf3QetxJkMChWsP29xqQ7TA1fouByA4w2ApcUX3m7tD9AYjMM57dRcSYzdup2FDKPL56jrM5rPB3M7ycGPJg2S8K6J9UjmRqrqRbxMJM6LXR8upSKJ8RHKRdYRc9Se7WNkJf1t34wuN9aYj9", + "public": + "xpub6BDHFkwxRvq212AogaPwujkAv4o6434mofknpRfTRuC3zZkUNfiCbcxJKcq8xUiFHG5wQ23yRF8pGVzar9KcYbDzqt7LAxQ9CQmEXzD2PTC", + "address": + "DdzFFzCqrhserfL8mcxohwi5Add7dFNBnby9vaiaQmN4ZQ33vo8GfMVZ4fmbmhQLgeeU4nmUgRk3F2q4Qw7pGG1zuyJpSqk4DHVk7rZZ", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rn86tQEf3QeufJiCtTndn5z4rY6ayd3r8Yc4U9Cup4gMNV4FQcmujnQLjtpUsmjk4VTHxTw1vRmWyXNy9u487fTrzjmGZBgPgNaSh1h7phFa2JT6Fc6cQSNvxdavohWEbmzN9gRknPF1Nxv4JCXEPv", + "public": + "xpub6BDHFkwxRvq23QBk3FLxQdnt3RtVsj5dF7oHfbqQY5FBNE3amYqtAncVkSHcLrQpdDaz1mP6e7baJEDrCnw2bzALQZ6ADm6KZM1gan2TjfE", + "address": + "DdzFFzCqrhsryZ3bV77EpNJAssF1hCUG1bXAdL5T4ryUKpTnMJpcqet3cpb3392KM971TV2EdZQ9ZoXbgDNwdvyh1qcCvR1hfRH6iFh3", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rn86tQEf3QevXZQKfN2FFfBt7auTTWf5V8gtBdsPkz68cTvXcaxUz3CwZ3F8CK2dXg5YazMMhH9tzxWNmCyqMT2d2fUYRFuZVxKFzPu9pfYxuSdtBjWmX7oDc6cWY5KoRV79mDftHJgZ1LAyiKUcRB", + "public": + "xpub6BDHFkwxRvq26KMUC9fC4ZjTfd2he4CQr6RAqSviA4BtHv7jr57nFHgqJ69KasMFxiJLgsTN78maDpyXcq2KDBFsawAvfg8PNmetc9S4EBL", + "address": + "DdzFFzCqrhsuxdyyeNrFeC5YSC2T3duTrKrRTjaHpVxBG5PQJzmvUw2nP9JeERsBS122ua2B8gdHBtr2K8Af2tN5vCHs4BadZFhPij5g", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RqN2TdEqQwEQBLyYsgj9cV1Mxy1VJs5djHua69DehSSdbW44K3nEZ2KKu7yokF36uUXm9u1iwQhcvvXTc7wsiURpKFpxC5Fj8xCtBdeECEAnHSjfMCnkEKo8uUnEZ25RiaCayeiHZ1KkK8fMpCjMeT", + "public": + "xpub6BQBrzTEMqiBYbQzXDifGyn4jeizuQaBsgJhVaoY3WozpxVhFkEHv1HpBbtTygo9B3ubjmpuEqsxFCdKFjfnPpdd718e9zqd94t6eEBkW17", + "address": + "DdzFFzCqrhsyppLqzCAmJRq6soiYEHrKqcckL8yyaLPMKm4TVvhP5bXE2388EZvUWQFdKNXcWsJds7QHGJMucjEadjn4SKEbQyi8ipLh", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RqN2TdEqQwER3PxgEGURWrz1hL7Wehj5SFCxBq9dguLE38BJwVFskbStsck8XYTYeBTQyZwFvZ6ZK6BB4P6XU9YNZuU9hhJ2bLAHUwhG2yJWuePq62GoGUuitDh1pF4wgNj3z22Vro3XTYTngaorMD", + "public": + "xpub6BQBrzTEMqiBbVuJzSuA2wEbHScWk4B2CLfEgbESYgq2kBD1mm79RCgDZetN4BBfKfme4ngKzrZAw8ChDpaLkyPuV2nXWDxR5C1BuA6re2W", + "address": + "DdzFFzCqrhsrhxcQ4p3CvakGmd4StTGh9umG7pKMqo7jQxgZoddV1aS8pgYp6Bkn34AWFCkR8tb15f27BJtRSfzk3fsUopwdsND9CFNR", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RqN2TdEqQwERfxEL68d4LM1KwysTfDuZebYE4JpCYjgdZ9zjxKyxcajood6AVZa3T5VzjAJKVyNDLxDaPLmxxTzvRLbAQG178X7dRAczThfoeiMBVLsYrnfad7Zooe64VjMU1DWjApEvL7BbAZdfiX", + "public": + "xpub6BQBrzTEMqiBdcxmwVige7qtmbo8jzsxBCSGNiaMyRYZhJAcGzGbnwaNU13pCfABwSBMhBFEG4tSc7KLLHWjEdF7VNR9Ps3xzy41ED5EK43", + "address": + "DdzFFzCqrhsr7t3tzx3nti17pYjqJTtCwDLyajDQww8qsFu61atY1gHJpHmsDAr3SYqnK8QVPeu45HeEthvorWGokQCsTUocBbGmoVdM", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RZ939yeoLLwbcgQs23pu2KQQ2RyCbteFQTshwKJzRNGXAsooEcVw8CWvwxzUhAuWhANwowJWJjNHM3cqVJjgqx4WphQQvLHzFDA6BAn5Q1qr9qfQESmDJR8vH7Vu3Hbyh83K4AJ8LeQonVMvDKeimj", + "public": + "xpub6ATaDQcNGTgDDnXW1a4uUUtdFaYpFwWYjHyqztWo1F9K8kwMwSbTx1BXWahY17TxqaqTrCYoBE5sE2CHHAxUJzCLTaEjM9btjP2muTRWXkq", + "address": + "DdzFFzCqrhse5LzW4mdj9PnmcCb7AVHw4DqtZRGYVrPvLfwSrbAoj6qMT21A8W4LoFJ2tNJ9sQABCa2orB8TepwuCuezWuCcstjFr8zX", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RZ939yeoLLwcrtroWjSYCTsrK2dr1MfWEs49XaupZsq5oFYpSwcjWafUQd4rnbwsfBrJiT1vwTJxf1yZ76TQUK1YBMKwoUzBfwkf8y7HR2sBxo1e4Z4A4eDeZqwBvGL3SiKJLh4fZ5JyFDNvx6aDbk", + "public": + "xpub6ATaDQcNGTgDHyd55rNftkHaf4tmazcPkpMAodwPFpLDr7JjMXqJL3cJAU6MNZJjWSmBNEnXjJAj6nj2Adyn93KVLypGtWvytmhsMEUz7UT", + "address": + "DdzFFzCqrhsjh2WePxLKmoG3dS1XJ6hTuW9XihfXSbuB6pffMcUwsCvCZWMpxqrdMDnZ4YuXCaX1gUoozWD5yvX9XVj5AUHJRiPz8mgM", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RZ939yeoLLwdVcTWrdTsT9nvNkN8uqKgaV6ostNCq4jpKhU5ZP74hVyaMPvikzJRh3BcbXCJy1pZSwhuaG3ir5AGxXi34geqdV48WTBNzBYpspTAjMPxcQnDeu4fFaFGU8Kb2KAMTXu2VUJVL5Y5X2", + "public": + "xpub6ATaDQcNGTgDL7DwQPbNF93F22gzoVKVswBFpyqf8KFfnPArRuC7dHmFC6cQmYJfAbwGmSBWjfDb23z6LDbge7f6uCnJy1F2cVtPQke6BdA", + "address": + "DdzFFzCqrhsvLiMTM4UN2ewyqTgezkcstJKRsJf9i1xXLYkQZVFha56swHYXBAUkjAw7siVyn7FJguHERKUNcPGRSW2uCcRA3uZFKwWc", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "7adf5af157c8f56aae9a3632f3e620cded6a7de4bd436c6526173540c7557ec2", + "private": + "b0193465d7cb0bf0e3f5c92dd7c0494e52cf0f433b807ffbddd57cad1fd9845d84d9b35db22ff0454178c6f6456969cd7b78663c5e0aa0eeed97742b12199327", + "public": + "003ef81498749575553f5daddd3b107d3ee4ab52de4055d4565bf4cfd6d73fcc0d", + "chaincode": + "524fd5e48f10ca5a94740fc852952a7626b78ed4c477d4ecddc50d921a1511e0", + "hd_key": + "adcf73619d5bb1e837894cc6b200a260d128c9c4c1548f9b6660bd49391809e4", + "child": [ + { + "private": + "xprv3Rn86tQEf3QetxJkMChWsP29xqQ7TA1fouByA4w2ApcUX3m7tD9AYjMM57dRcSYzdup2FDKPL56jrM5rPB3M7ycGPJg2S8K6J9UjmRqrqRbxMJM6LXR8upSKJ8RHKRdYRc9Se7WNkJf1t34wuN9aYj9", + "public": + "xpub6BDHFkwxRvq212AogaPwujkAv4o6434mofknpRfTRuC3zZkUNfiCbcxJKcq8xUiFHG5wQ23yRF8pGVzar9KcYbDzqt7LAxQ9CQmEXzD2PTC", + "address": + "DdzFFzCqrhserfL8mcxohwi5Add7dFNBnby9vaiaQmN4ZQ33vo8GfMVZ4fmbmhQLgeeU4nmUgRk3F2q4Qw7pGG1zuyJpSqk4DHVk7rZZ", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rn86tQEf3QeufJiCtTndn5z4rY6ayd3r8Yc4U9Cup4gMNV4FQcmujnQLjtpUsmjk4VTHxTw1vRmWyXNy9u487fTrzjmGZBgPgNaSh1h7phFa2JT6Fc6cQSNvxdavohWEbmzN9gRknPF1Nxv4JCXEPv", + "public": + "xpub6BDHFkwxRvq23QBk3FLxQdnt3RtVsj5dF7oHfbqQY5FBNE3amYqtAncVkSHcLrQpdDaz1mP6e7baJEDrCnw2bzALQZ6ADm6KZM1gan2TjfE", + "address": + "DdzFFzCqrhsryZ3bV77EpNJAssF1hCUG1bXAdL5T4ryUKpTnMJpcqet3cpb3392KM971TV2EdZQ9ZoXbgDNwdvyh1qcCvR1hfRH6iFh3", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rn86tQEf3QevXZQKfN2FFfBt7auTTWf5V8gtBdsPkz68cTvXcaxUz3CwZ3F8CK2dXg5YazMMhH9tzxWNmCyqMT2d2fUYRFuZVxKFzPu9pfYxuSdtBjWmX7oDc6cWY5KoRV79mDftHJgZ1LAyiKUcRB", + "public": + "xpub6BDHFkwxRvq26KMUC9fC4ZjTfd2he4CQr6RAqSviA4BtHv7jr57nFHgqJ69KasMFxiJLgsTN78maDpyXcq2KDBFsawAvfg8PNmetc9S4EBL", + "address": + "DdzFFzCqrhsuxdyyeNrFeC5YSC2T3duTrKrRTjaHpVxBG5PQJzmvUw2nP9JeERsBS122ua2B8gdHBtr2K8Af2tN5vCHs4BadZFhPij5g", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RqN2TdEqQwEQBLyYsgj9cV1Mxy1VJs5djHua69DehSSdbW44K3nEZ2KKu7yokF36uUXm9u1iwQhcvvXTc7wsiURpKFpxC5Fj8xCtBdeECEAnHSjfMCnkEKo8uUnEZ25RiaCayeiHZ1KkK8fMpCjMeT", + "public": + "xpub6BQBrzTEMqiBYbQzXDifGyn4jeizuQaBsgJhVaoY3WozpxVhFkEHv1HpBbtTygo9B3ubjmpuEqsxFCdKFjfnPpdd718e9zqd94t6eEBkW17", + "address": + "DdzFFzCqrhsyppLqzCAmJRq6soiYEHrKqcckL8yyaLPMKm4TVvhP5bXE2388EZvUWQFdKNXcWsJds7QHGJMucjEadjn4SKEbQyi8ipLh", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RqN2TdEqQwER3PxgEGURWrz1hL7Wehj5SFCxBq9dguLE38BJwVFskbStsck8XYTYeBTQyZwFvZ6ZK6BB4P6XU9YNZuU9hhJ2bLAHUwhG2yJWuePq62GoGUuitDh1pF4wgNj3z22Vro3XTYTngaorMD", + "public": + "xpub6BQBrzTEMqiBbVuJzSuA2wEbHScWk4B2CLfEgbESYgq2kBD1mm79RCgDZetN4BBfKfme4ngKzrZAw8ChDpaLkyPuV2nXWDxR5C1BuA6re2W", + "address": + "DdzFFzCqrhsrhxcQ4p3CvakGmd4StTGh9umG7pKMqo7jQxgZoddV1aS8pgYp6Bkn34AWFCkR8tb15f27BJtRSfzk3fsUopwdsND9CFNR", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RqN2TdEqQwERfxEL68d4LM1KwysTfDuZebYE4JpCYjgdZ9zjxKyxcajood6AVZa3T5VzjAJKVyNDLxDaPLmxxTzvRLbAQG178X7dRAczThfoeiMBVLsYrnfad7Zooe64VjMU1DWjApEvL7BbAZdfiX", + "public": + "xpub6BQBrzTEMqiBdcxmwVige7qtmbo8jzsxBCSGNiaMyRYZhJAcGzGbnwaNU13pCfABwSBMhBFEG4tSc7KLLHWjEdF7VNR9Ps3xzy41ED5EK43", + "address": + "DdzFFzCqrhsr7t3tzx3nti17pYjqJTtCwDLyajDQww8qsFu61atY1gHJpHmsDAr3SYqnK8QVPeu45HeEthvorWGokQCsTUocBbGmoVdM", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RZ939yeoLLwbcgQs23pu2KQQ2RyCbteFQTshwKJzRNGXAsooEcVw8CWvwxzUhAuWhANwowJWJjNHM3cqVJjgqx4WphQQvLHzFDA6BAn5Q1qr9qfQESmDJR8vH7Vu3Hbyh83K4AJ8LeQonVMvDKeimj", + "public": + "xpub6ATaDQcNGTgDDnXW1a4uUUtdFaYpFwWYjHyqztWo1F9K8kwMwSbTx1BXWahY17TxqaqTrCYoBE5sE2CHHAxUJzCLTaEjM9btjP2muTRWXkq", + "address": + "DdzFFzCqrhse5LzW4mdj9PnmcCb7AVHw4DqtZRGYVrPvLfwSrbAoj6qMT21A8W4LoFJ2tNJ9sQABCa2orB8TepwuCuezWuCcstjFr8zX", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RZ939yeoLLwcrtroWjSYCTsrK2dr1MfWEs49XaupZsq5oFYpSwcjWafUQd4rnbwsfBrJiT1vwTJxf1yZ76TQUK1YBMKwoUzBfwkf8y7HR2sBxo1e4Z4A4eDeZqwBvGL3SiKJLh4fZ5JyFDNvx6aDbk", + "public": + "xpub6ATaDQcNGTgDHyd55rNftkHaf4tmazcPkpMAodwPFpLDr7JjMXqJL3cJAU6MNZJjWSmBNEnXjJAj6nj2Adyn93KVLypGtWvytmhsMEUz7UT", + "address": + "DdzFFzCqrhsjh2WePxLKmoG3dS1XJ6hTuW9XihfXSbuB6pffMcUwsCvCZWMpxqrdMDnZ4YuXCaX1gUoozWD5yvX9XVj5AUHJRiPz8mgM", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RZ939yeoLLwdVcTWrdTsT9nvNkN8uqKgaV6ostNCq4jpKhU5ZP74hVyaMPvikzJRh3BcbXCJy1pZSwhuaG3ir5AGxXi34geqdV48WTBNzBYpspTAjMPxcQnDeu4fFaFGU8Kb2KAMTXu2VUJVL5Y5X2", + "public": + "xpub6ATaDQcNGTgDL7DwQPbNF93F22gzoVKVswBFpyqf8KFfnPArRuC7dHmFC6cQmYJfAbwGmSBWjfDb23z6LDbge7f6uCnJy1F2cVtPQke6BdA", + "address": + "DdzFFzCqrhsvLiMTM4UN2ewyqTgezkcstJKRsJf9i1xXLYkQZVFha56swHYXBAUkjAw7siVyn7FJguHERKUNcPGRSW2uCcRA3uZFKwWc", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "7adf5af157c8f56aae9a3632f3e620cded6a7de4bd436c6526173540c7557ec2", + "private": + "b0193465d7cb0bf0e3f5c92dd7c0494e52cf0f433b807ffbddd57cad1fd9845d84d9b35db22ff0454178c6f6456969cd7b78663c5e0aa0eeed97742b12199327", + "public": + "003ef81498749575553f5daddd3b107d3ee4ab52de4055d4565bf4cfd6d73fcc0d", + "chaincode": + "524fd5e48f10ca5a94740fc852952a7626b78ed4c477d4ecddc50d921a1511e0", + "hd_key": + "adcf73619d5bb1e837894cc6b200a260d128c9c4c1548f9b6660bd49391809e4", + "child": [ + { + "private": + "xprv3Rn86tQEf3QetxJkMChWsP29xqQ7TA1fouByA4w2ApcUX3m7tD9AYjMM57dRcSYzdup2FDKPL56jrM5rPB3M7ycGPJg2S8K6J9UjmRqrqRbxMJM6LXR8upSKJ8RHKRdYRc9Se7WNkJf1t34wuN9aYj9", + "public": + "xpub6BDHFkwxRvq212AogaPwujkAv4o6434mofknpRfTRuC3zZkUNfiCbcxJKcq8xUiFHG5wQ23yRF8pGVzar9KcYbDzqt7LAxQ9CQmEXzD2PTC", + "address": + "DdzFFzCqrhserfL8mcxohwi5Add7dFNBnby9vaiaQmN4ZQ33vo8GfMVZ4fmbmhQLgeeU4nmUgRk3F2q4Qw7pGG1zuyJpSqk4DHVk7rZZ", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rn86tQEf3QeufJiCtTndn5z4rY6ayd3r8Yc4U9Cup4gMNV4FQcmujnQLjtpUsmjk4VTHxTw1vRmWyXNy9u487fTrzjmGZBgPgNaSh1h7phFa2JT6Fc6cQSNvxdavohWEbmzN9gRknPF1Nxv4JCXEPv", + "public": + "xpub6BDHFkwxRvq23QBk3FLxQdnt3RtVsj5dF7oHfbqQY5FBNE3amYqtAncVkSHcLrQpdDaz1mP6e7baJEDrCnw2bzALQZ6ADm6KZM1gan2TjfE", + "address": + "DdzFFzCqrhsryZ3bV77EpNJAssF1hCUG1bXAdL5T4ryUKpTnMJpcqet3cpb3392KM971TV2EdZQ9ZoXbgDNwdvyh1qcCvR1hfRH6iFh3", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rn86tQEf3QevXZQKfN2FFfBt7auTTWf5V8gtBdsPkz68cTvXcaxUz3CwZ3F8CK2dXg5YazMMhH9tzxWNmCyqMT2d2fUYRFuZVxKFzPu9pfYxuSdtBjWmX7oDc6cWY5KoRV79mDftHJgZ1LAyiKUcRB", + "public": + "xpub6BDHFkwxRvq26KMUC9fC4ZjTfd2he4CQr6RAqSviA4BtHv7jr57nFHgqJ69KasMFxiJLgsTN78maDpyXcq2KDBFsawAvfg8PNmetc9S4EBL", + "address": + "DdzFFzCqrhsuxdyyeNrFeC5YSC2T3duTrKrRTjaHpVxBG5PQJzmvUw2nP9JeERsBS122ua2B8gdHBtr2K8Af2tN5vCHs4BadZFhPij5g", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RqN2TdEqQwEQBLyYsgj9cV1Mxy1VJs5djHua69DehSSdbW44K3nEZ2KKu7yokF36uUXm9u1iwQhcvvXTc7wsiURpKFpxC5Fj8xCtBdeECEAnHSjfMCnkEKo8uUnEZ25RiaCayeiHZ1KkK8fMpCjMeT", + "public": + "xpub6BQBrzTEMqiBYbQzXDifGyn4jeizuQaBsgJhVaoY3WozpxVhFkEHv1HpBbtTygo9B3ubjmpuEqsxFCdKFjfnPpdd718e9zqd94t6eEBkW17", + "address": + "DdzFFzCqrhsyppLqzCAmJRq6soiYEHrKqcckL8yyaLPMKm4TVvhP5bXE2388EZvUWQFdKNXcWsJds7QHGJMucjEadjn4SKEbQyi8ipLh", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RqN2TdEqQwER3PxgEGURWrz1hL7Wehj5SFCxBq9dguLE38BJwVFskbStsck8XYTYeBTQyZwFvZ6ZK6BB4P6XU9YNZuU9hhJ2bLAHUwhG2yJWuePq62GoGUuitDh1pF4wgNj3z22Vro3XTYTngaorMD", + "public": + "xpub6BQBrzTEMqiBbVuJzSuA2wEbHScWk4B2CLfEgbESYgq2kBD1mm79RCgDZetN4BBfKfme4ngKzrZAw8ChDpaLkyPuV2nXWDxR5C1BuA6re2W", + "address": + "DdzFFzCqrhsrhxcQ4p3CvakGmd4StTGh9umG7pKMqo7jQxgZoddV1aS8pgYp6Bkn34AWFCkR8tb15f27BJtRSfzk3fsUopwdsND9CFNR", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RqN2TdEqQwERfxEL68d4LM1KwysTfDuZebYE4JpCYjgdZ9zjxKyxcajood6AVZa3T5VzjAJKVyNDLxDaPLmxxTzvRLbAQG178X7dRAczThfoeiMBVLsYrnfad7Zooe64VjMU1DWjApEvL7BbAZdfiX", + "public": + "xpub6BQBrzTEMqiBdcxmwVige7qtmbo8jzsxBCSGNiaMyRYZhJAcGzGbnwaNU13pCfABwSBMhBFEG4tSc7KLLHWjEdF7VNR9Ps3xzy41ED5EK43", + "address": + "DdzFFzCqrhsr7t3tzx3nti17pYjqJTtCwDLyajDQww8qsFu61atY1gHJpHmsDAr3SYqnK8QVPeu45HeEthvorWGokQCsTUocBbGmoVdM", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RZ939yeoLLwbcgQs23pu2KQQ2RyCbteFQTshwKJzRNGXAsooEcVw8CWvwxzUhAuWhANwowJWJjNHM3cqVJjgqx4WphQQvLHzFDA6BAn5Q1qr9qfQESmDJR8vH7Vu3Hbyh83K4AJ8LeQonVMvDKeimj", + "public": + "xpub6ATaDQcNGTgDDnXW1a4uUUtdFaYpFwWYjHyqztWo1F9K8kwMwSbTx1BXWahY17TxqaqTrCYoBE5sE2CHHAxUJzCLTaEjM9btjP2muTRWXkq", + "address": + "DdzFFzCqrhse5LzW4mdj9PnmcCb7AVHw4DqtZRGYVrPvLfwSrbAoj6qMT21A8W4LoFJ2tNJ9sQABCa2orB8TepwuCuezWuCcstjFr8zX", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RZ939yeoLLwcrtroWjSYCTsrK2dr1MfWEs49XaupZsq5oFYpSwcjWafUQd4rnbwsfBrJiT1vwTJxf1yZ76TQUK1YBMKwoUzBfwkf8y7HR2sBxo1e4Z4A4eDeZqwBvGL3SiKJLh4fZ5JyFDNvx6aDbk", + "public": + "xpub6ATaDQcNGTgDHyd55rNftkHaf4tmazcPkpMAodwPFpLDr7JjMXqJL3cJAU6MNZJjWSmBNEnXjJAj6nj2Adyn93KVLypGtWvytmhsMEUz7UT", + "address": + "DdzFFzCqrhsjh2WePxLKmoG3dS1XJ6hTuW9XihfXSbuB6pffMcUwsCvCZWMpxqrdMDnZ4YuXCaX1gUoozWD5yvX9XVj5AUHJRiPz8mgM", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RZ939yeoLLwdVcTWrdTsT9nvNkN8uqKgaV6ostNCq4jpKhU5ZP74hVyaMPvikzJRh3BcbXCJy1pZSwhuaG3ir5AGxXi34geqdV48WTBNzBYpspTAjMPxcQnDeu4fFaFGU8Kb2KAMTXu2VUJVL5Y5X2", + "public": + "xpub6ATaDQcNGTgDL7DwQPbNF93F22gzoVKVswBFpyqf8KFfnPArRuC7dHmFC6cQmYJfAbwGmSBWjfDb23z6LDbge7f6uCnJy1F2cVtPQke6BdA", + "address": + "DdzFFzCqrhsvLiMTM4UN2ewyqTgezkcstJKRsJf9i1xXLYkQZVFha56swHYXBAUkjAw7siVyn7FJguHERKUNcPGRSW2uCcRA3uZFKwWc", + "first_index": 2, + "second_index": 2 + } + ] + } +]; diff --git a/example/lib/test/cardano/cip1852/cip1852_test.dart b/example/lib/test/cardano/cip1852/cip1852_test.dart new file mode 100644 index 0000000..f8e8c6e --- /dev/null +++ b/example/lib/test/cardano/cip1852/cip1852_test.dart @@ -0,0 +1,32 @@ +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base.dart'; +import 'package:blockchain_utils/bip/cardano/cip1852/cip1852.dart'; +import 'package:blockchain_utils/bip/cardano/cip1852/conf/cip1852_coins.dart'; +import 'package:blockchain_utils/bip/cardano/shelley/cardano_shelley.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; +import 'test_vector.dart'; + +void cip1852Test() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final cip = Cip1852.fromSeed(seed, Cip1852Coins.cardanoIcarus); + final public = cip.publicKey.toExtended; + final private = cip.privateKey.toExtended; + assert(public == i["public"]); + assert(private == i["private"]); + final coin = cip.purpose.coin; + assert(coin.publicKey.toExtended == i["coin_public"]); + assert(coin.privateKey.toExtended == i["coin_private"]); + final account = coin.account(0); + assert(account.publicKey.toExtended == i["account_public"]); + assert(account.privateKey.toExtended == i["account_private"]); + final toCardanoShelly = CardanoShelley.fromCip1852Object(account); + assert(toCardanoShelly.stakingKey.publicKey.toAddress == i["stacking"]); + final addresses = List.from(i["addresses"]); + final change = toCardanoShelly.change(Bip44Changes.chainExt); + for (int i = 0; i < addresses.length; i++) { + final addr = change.addressIndex(i).publicKeys.toAddress; + assert(addr == addresses[i]); + } + } +} diff --git a/example/lib/test/cardano/cip1852/test_vector.dart b/example/lib/test/cardano/cip1852/test_vector.dart new file mode 100644 index 0000000..03f772d --- /dev/null +++ b/example/lib/test/cardano/cip1852/test_vector.dart @@ -0,0 +1,577 @@ +final List> testVector = [ + { + "seed": "c0e2bf4c50d29b4d491e6ad0b978a59196e3213f15043c85ab3e41b1445e772b", + "public": + "xpub661MyMwAqRbcFuuJ7nZ5CPZHvh9JzV5jFkWpwb8Ltu18Jn59g6CsJATDLB2qsy6QHoQSYHQ9HVHvxsct4xfZpnuBJGE5Up63fjRuY9jz1LS", + "private": + "xprv3QESAWYc9vDdZg2SPBXCXvcRF37JA9wpLfqeVTJ5o2pnwsyxb3AaDJ6BGXFoPMQNXcXwZrt7yYcFJgTJGnuPreN7b9kRfSxFLh7T1P9qrQjXEtrf7qHfoL69xUkNPNMYHXKyx7vBUEDeW2naZvCYVu1", + "coin_public": + "xpub69yukWz9gDF1F9ahGRYg8rXmQG1qubgML8qe6paT44DwRBaq9zqrYAu7RhpeXQEcdnWXTbMYL1rfPNcFQk4by9D4X7eNLgUnYiXSziQrAwh", + "coin_private": + "xprv3RQvQtdTqvX9XpE5c8FY9WPPMvziBjamTxy4CzHGmAtZaV8wHYpzKYJMhkTKaQWJzmCSTX5nyL6p4pYMu2Wi5CMdvX2mmatZhNFjwWHY5fbqXYxPX8UpgY8MVzUqKdrk2tAavm7oqQJnZK9kQPKM1Ld", + "account_public": + "xpub6BuWmEbdP62NE2acXMBBpMEEzgjxRZN87pquDshQLa7WPqMWUBiGwLBKFXZTd6x8B7eWpojCfMwGfsGaWJQ3Jw9VnAEsB28vQBDZN7Ph9Bz", + "account_private": + "xprv3Rz5JJDV2bZcceZtYrsy5yTbaEF3yeDn7nVBgjjhjVqwNgXnhV1Ww8u2J74wvK6KC1GALRTocaxSEMo2Kgz8PXqYz1LxbMs3JWHHi37m9qyvyR8bdbd2api1XdUkAtrg7R8WPS1HsqBPyDBnT4zRbrM", + "stacking": "stake1u8farj9hx7plgly6z284467l93anwpsk0w2r2r87j7afjrq7xur5j", + "addresses": [ + "addr1q9znrzzh7hhlw5chdzwj992krah0evxnh2x3kdhns0exn87n68ytwdur737f5y50tt4a7trmxurpv7u5x5x0a9a6nyxqtyeyy6", + "addr1q9x640gpf84wcwysnajj7ugftwq9tvyksypyds46nnhkdtwn68ytwdur737f5y50tt4a7trmxurpv7u5x5x0a9a6nyxqv44xs6", + "addr1qyd4e4c4qdznxsv69hheude6glxdu9rdeerg7u2hpncqpswn68ytwdur737f5y50tt4a7trmxurpv7u5x5x0a9a6nyxqkmeywz", + "addr1q8wq0wt5d7ca0x5fjtqvzugcrr64zgktzmmwru6lq9d4mm7n68ytwdur737f5y50tt4a7trmxurpv7u5x5x0a9a6nyxqyd5vre", + "addr1qylpcwp282qfy3vvrfx6dr0xajf5ny0r80yd57lsxxp5xtxn68ytwdur737f5y50tt4a7trmxurpv7u5x5x0a9a6nyxq0t50uz" + ] + }, + { + "seed": "a562fb26a2e365296657fbbe4287e4d7e8dc38b345e2d416a100ce1ca0fba671", + "public": + "xpub661MyMwAqRbcGsNAaqaTegvAthu7uyQC1TYfi3EpXLeMzJEPrGtB3yvVLTbzxB1bxPHg26wcF5gff6Afcag4QTsKqneBG3Y59LWpw6vTswq", + "private": + "xprv3QESAWYc9vDdZxW3mKPg4biJdqQHuGxANku5EnjgUn9dipbtUG8z2J7D3PkghPMRgC6jDDw38sv31ZN44N4wFUtn2eJKHG9vQ7y8YEdJjBrUFA7ZKFCUtYQm5kb68KYpAvJNxzidGTyMNAJFQTy21hE", + "coin_public": + "xpub6A4QCRC6AaTQr1fsxv7v9qVcPTAGQnKLV3ycUzFAmU2qHHVL1rJdTwhR19qF9rjdqFHEruav1vRJCkA2FiHQTRxLTtDV8x74JDmJEwsF9DW", + "coin_private": + "xprv3RSFnHEEM1QnK7Xn5keuETwprzS1hci1TcdnErsS7vunvx5AhqUTMafQK7BnV4fHfFvzn1yFkwTYWW2RCHJc1imaKYbsmX4JBUfFWF9dHgXAkQTdb1m2FqijGUtfJjotS3m8vzHjVQz4n1qzxQ3c777", + "account_public": + "xpub6BvAy4ZW8VD6xVVXDWDERTAi5yTh8iXJ5sHrRRyBvacigLnp1VT8MZ357txxoVdjCV9wRU1VRa1svda35kDMqCJu5mQXoNraHU7Nrji3V7k", + "account_private": + "xprv3RzGeY2SZF7g8Sz4qhzZUHMyoxN6Xkzc1dYxZy8sdvUj8NTVP8QEVyyqFzTzg5fzjaHVgnngzobxmHmsXRPTDMsdTkaXbascvDbMxgjkA23qZguYqpr77G7x6cxbzHbgcUXN5LkiGzJh8uZMQ12iK5q", + "stacking": "stake1u8352l04ud9tqwvqgqjsxryvdvawglhrn2pl97hsz2mv9aszxzhwe", + "addresses": [ + "addr1q98k5e0306zf5k0c88f78h3qgl2ss52m563lr7p3azlz4c0rg47ltc62kqucqsp9qvxgc6e6u3lw8x5r7ta0qy4kctmq350mt7", + "addr1q9em00j0jh86cc074dmrq3fdsn8wgtu48623le6s7jlqvtlrg47ltc62kqucqsp9qvxgc6e6u3lw8x5r7ta0qy4kctmq3d38zy", + "addr1qxtwqxpx67cpwput57kmfw0gven9md8y34a0yzdvxw8gvflrg47ltc62kqucqsp9qvxgc6e6u3lw8x5r7ta0qy4kctmqn7gmkj", + "addr1q8re20th2z4m8mtjuy88h7fkqaqqxdetccmp63785k20j88rg47ltc62kqucqsp9qvxgc6e6u3lw8x5r7ta0qy4kctmqm7t8td", + "addr1qy59t347xrzrund70tqn5ec2k0ehyaejl9xzksf0umcsullrg47ltc62kqucqsp9qvxgc6e6u3lw8x5r7ta0qy4kctmqmwwkv0" + ] + }, + { + "seed": "d665a4ce2c80ecfa56c7d92a22d5d0ecf6e31a68d1b0a55c39230ae5813ede6b", + "public": + "xpub661MyMwAqRbcGkY9dNXiXtXgx3rfGyMu6fkzbEsZ8hSReNXscALvACaFm6Qvm4ngzF12ptQpTYsNZzv5v1bg5AMxMG7XdRnEKijVjuSquJt", + "private": + "xprv3QESAWYc9vDdZvUQZQxgV5rCb7ZvUt7sSGfrRfRwGgoPbxB4h6ct7CgPeDqn9SanQLpaifeSvHzVycWK7UuvaLwBnzbMrKeGtBfjahYWo1WX6Pg6dzZrxWRTGZATF5JzTc7kYePS3HN2DQvfBJTDhBf", + "coin_public": + "xpub6Apyy2LLSK91s6j1prCmfPfW4pirDzpucVbqoptB9odEYp67cEPedx9HYmDp9LuE4pk3JAKEYMiYMy1HarEzkCgicxV7HvSidSjK7625WMh", + "coin_private": + "xprv3RfVv3XiuMDWmppDLFcV6YYh48VFNSs3wGdKv8Gc18js3gH6dzuPYSmg7RRBR1uR2unwX1y6yYg2pEEmWf7xnDbUoj8UM3kyK1irvbp4VTFL3tAgedKoyMLh2R5RRhaTDoupTe24Stui7RAk1EV1pLJ", + "account_public": + "xpub6Cu2HbWX3Pjte5Gb8PS6uZn6mTi4gkHjgJVdtHkb27WifjQxS9MW8FGfeiMTHSExUM7XZXDR2wwK3E86UqarbBmRvBApMxw91krX3dEuLNF", + "account_private": + "xprv3SHAA2dL8BZacN11eF76ng6QDpaBK94ddJhGN5T6qp23Ae5SGB3cutsYTcxKWxeDkomNf2g3fTQq3rpQUL15vGYX5sDQ3wVFpsnvvVAszNrvbDAwZkyDKYCjkTsidqbCsWAhJUxErVai9ct6PwEi5Dk", + "stacking": "stake1u8wja9dmz5hpfz6pyrwl89ddh6sg2pcuhsu8ajtgetndjec7y0vfk", + "addresses": [ + "addr1q8nsm8cfxy4k6vga6vjnf9702rr8t7tm6s8xdnr92gdwuyxa962mk9fwzj95zgxa7w26m04qs5r3e0pc0myk3jhxm9ns54f98c", + "addr1q9u6r78tdtp6q0c9msnwzqykpz8tvqefm9jz9n4j64sma8xa962mk9fwzj95zgxa7w26m04qs5r3e0pc0myk3jhxm9ns6mr5j5", + "addr1qxqyvd9p42m2eh3zxp4jvgtgetszvypmhkc0t96j49tl5yxa962mk9fwzj95zgxa7w26m04qs5r3e0pc0myk3jhxm9nslgzfj3", + "addr1q85pfk5lputjve0yhz3ckjmcazqnas5dsn9j82cgf5tjn0wa962mk9fwzj95zgxa7w26m04qs5r3e0pc0myk3jhxm9ns6ff80p", + "addr1qx339q5rtq0x98vu4ujlp0e32u8awx8fd2s0kjaqefnlzxxa962mk9fwzj95zgxa7w26m04qs5r3e0pc0myk3jhxm9ns3dctjl" + ] + }, + { + "seed": "ad9b772818b4960156108fa127801b48ba8f27d31c0d74863e84825f4c9ee2ba", + "public": + "xpub661MyMwAqRbcG2mpSkT4UjJAZ438RG3GVBKMNFHKUpTkQ2tNpz4BxRU8c5YuJxArjmksPRydfF9c9XtQMpTDE7PDYmGBRNwUCowCn7Vq7cs", + "private": + "xprv3QESAWYc9vDdZi4pmmGeCBuv95xhSpN6D5sR5qkrstBRHyMksyzUxUFaJUXYUyZke2YdnGffZi6ELiufB9QYXYTkmLXg1SVfqUYASymJyKyMT2EkPTGWMPeZiwjGMsREwMNPe618yjM5q9Q3dgfsyPP", + "coin_public": + "xpub6BdZRYBTCQBY6YqmoKtz3JNJbAZuByheHJSh36wSLjZNJedpvpN6wWZujyQMKeRgvR2eUMicP9NGMW8Ct7CQL1pFFHWv5PPZuo7fpQS9Vqu", + "coin_private": + "xprv3RuLR4sGecBdW7q5WGKNhJMZDnwbjnFe7tapQCDVesmbYQK37ixrTrxHfMA24dUqvQZ1qRvQyKw117QNTXMTnxtbmGM9jD4y5Lc3XHPu2nUXQrmx4tVKsNiYwVCLHF8QWGz5EAYAwnaL21Viutqf3gK", + "account_public": + "xpub6CqtZXirYAwXJFcqDXhhXGckuP2QnhEQY6oywBVHbz6mURF7efQGB4XMwH9NNzLSMucXZp1dfQPA14QF1zpm8hrd9fkkdHWeAvnrEzPViSo", + "account_private": + "xprv3SGEAyXgznhvekZP2ZxSmtDSBscHkKnd1QxpWp96EtoRDmigz42SdqK5jQhTUGb41zaFu35AUuXmPNfa92J24MMnN6KveUHgJYLeUycSHKAuYgrEq7WnTvP45yzWNhZgBkCYDcmLXgBqXXDyqcty5Sd", + "stacking": "stake1ux5y6wxj65eprw3aswx0cltg3z48vfsezt9phnqq3mtkmdqtnd0y8", + "addresses": [ + "addr1q8rz20jq0ytfsc5eugcm7tldjurstx97dtlxkrdw04almkagf5ud94fjzxarmquvl37k3z92wcnpjyk2r0xqprkhdk6qms4dkg", + "addr1qycsnn7rvutk8rhq7uq4xgjmnlsj6plfpz33wazlw75cz99gf5ud94fjzxarmquvl37k3z92wcnpjyk2r0xqprkhdk6qp0cmqh", + "addr1qygtqxunnz65y9643jfwntl34kfsnjx3lpkz2c37n0j2a5dgf5ud94fjzxarmquvl37k3z92wcnpjyk2r0xqprkhdk6qljqhsu", + "addr1qxlwt40vxamnes5d2a306mtvq9a0sa89kkvtz9zlsnvfcmdgf5ud94fjzxarmquvl37k3z92wcnpjyk2r0xqprkhdk6qlsem66", + "addr1qyz8vnqdmu5pfxe7tud48ppvt9rvrrksslz979xhy6ryle9gf5ud94fjzxarmquvl37k3z92wcnpjyk2r0xqprkhdk6q4jtmua" + ] + }, + { + "seed": "82d8b955e8a8b18782b2e6c19549c0f0ad3b3b16a10b41e5d6db4208b89390a6", + "public": + "xpub661MyMwAqRbcFJWtdT5EEQjnpYNRYuLDAVF4qtj1XuftioHjHg3hHMHbeHjhCPkMGd5Jh8ak65XT7K4vTe6QWAAjWDrr5hQrjxSAaPxhgw2", + "private": + "xprv3QESAWYc9vDdZVWkGYVeK76tNcpkD1XPtwoFiVJ178D65HqM4VxnrBzgvYDXSJJ1AtUEHWDWiD7vVtBjW38bwjZ1wtBr8skZbPdJauXgGCq5ZgAGdgaHvBwjLCyXzMXYJ4JuA9KrCtFUuNbqhfBGupd", + "coin_public": + "xpub69oFGhie3eWVzEyxJvK36Frnn6HBpAHymSWQ74ySS2asmUMjYmTaGqyEQ5qqRj4zMP7zhJyJXSWKR8DJ7ZGHqcZBTbhnPrZvyYfCDTP6QaV", + "coin_private": + "xprv3RMkgjeTxLbUKkG9ZsCcvGRBcYEm6J9pwDnQ82afHbqp4kxAgiB73vLguMHfVE3QqoQrmSjM8ZQ7REbpdaMw8PByHCcyKhJoGayRccG3h5MQrrZi61bdhGhWFFF3ZfWv8r1UfYJJe6M1gbiG5JjSPGB", + "account_public": + "xpub6BmKTAd5arfEodsbozmnVMNGios6tp3njihuC4yAoubUBbxUDGikTVCKo5wrU6Sqs7bMb3EVtfyJ4LC3CK8oBkZDMXzHcZFSRGsnFoDrJha", + "account_private": + "xprv3Rwe6sTFLGhehSBiRPxmWnXVLmRuzHuB55ac7yuenkqUdqkqvLUtTY8trLX59yrsEXZmfR5RP7B1KMgNsYF2smuKX4tbC56VExVGe7g2srdEFGhXyNKsXvGALueS69frTjNTN1EXpDd1Q6jA88G1hMY", + "stacking": "stake1uxeuzsrvqqan37xypxcqh4xzajzpaq4x9czm2neavvxexfcua0vfg", + "addresses": [ + "addr1q9z6usxcwxfpwxnydmd86lk4uscjwzsyz6trwww2f3nhn09nc9qxcqpm8ruvgzdsp02v9myyr6p2vts9k48n6ccdjvnsf2ykw5", + "addr1qxtls0qa7unymvn2se5kmzhuf8f6ac3ac4vx025gjtl3na9nc9qxcqpm8ruvgzdsp02v9myyr6p2vts9k48n6ccdjvnsdteus5", + "addr1q8nrh85g0nvw26ht2d89d03sm9f6cmqmpunhsjp4ha3dgd4nc9qxcqpm8ruvgzdsp02v9myyr6p2vts9k48n6ccdjvnse7vc3z", + "addr1qyjv85rwr8vm5y2nyp82c2up7h0ln7eucl0crup9srkpjndnc9qxcqpm8ruvgzdsp02v9myyr6p2vts9k48n6ccdjvns025vv9", + "addr1qyckm60eekwqvzwmhea9unrq6k628zetu4uled4j0zscz6dnc9qxcqpm8ruvgzdsp02v9myyr6p2vts9k48n6ccdjvns46gr7j" + ] + }, + { + "seed": "ba3a80d132b32dfd675e133956cb69f84d3d2be24add8f6f606a58e51849e2e9", + "public": + "xpub661MyMwAqRbcEo4ikgtvhBd2auanPxZJdS41XRfEXLMxos83XbE5xvnEEQq2R42eQRVVeL6LjRsebh2EGBjrVbkec2bXGMrEe5gZsEa9ujT", + "private": + "xprv3QESAWYc9vDdZLmKBR1XZbL76TcjrTVy9zdt7F35t3X4FiXTFwq1cPgbJBg5JtxRwmVRx7rULQbXrSLSjNPwoHQkG2LZM7b4oaGZyQx6Tr8SHynaYWzoFvsrxNJJGwyxxobHmgZNojmGXnW3Syh45gF", + "coin_public": + "xpub6B7pQTSz4UB4Xuw2Aw48QgDzQXmX9UnqevcoUQTrTeQkamiwrQH7y81a9cPbVtS6zSdqH3JmmB7WRvL8fPjeArfkRqhb5LEbwbrkJvwfLFo", + "coin_private": + "xprv3RkVygs663vHyFw66VRw6TpuMFez72DYzN5GRJahavrkxLYrX6xaenUpFCUd37SX3u1ZUD58UKcgshcMaFz7KnzBQZUQKM4wtd6XYPQ3t1y7tLG2XiGmCvbB4q14uZP9Jy5hsBbcFMR13YFmWGsYfQk", + "account_public": + "xpub6DPXb166hYtPSa99ATaq3Qe6Z3syA6cJ4RdrJPUu6gkUUs75LQshMfLj65YDFAhsi67fuKkvstoX7nyLfaP5t71zyTzMZkjQpUKDGAKYXW6", + "account_private": + "xprv3SRdHj6cmS7NBUyuxW43ihqkK5jF3s73FKd95Sne7F8tBM3dJDq4ZWx1ThmwxVvv1kxdSdvGGFMNiDZiEBwDavoXUpTeb2BLRQU2YkwTpBYztVKCVQnJoZZUKgfvmcXzr2bWqwZ2Qf4zQ3XY6ajDuBK", + "stacking": "stake1u89f5vgtrsqfmmkss7g9ppjv7h03aeruy339mc9h08e09wqc5kesn", + "addresses": [ + "addr1q9jumnulvrh2jhx04fnnkjr4r9ey4nmydh6gk9rqgksql5x2ngcsk8qqnhhdppus2zryeawlrmj8cfrzthstw70j72uqajqq6f", + "addr1q9zzxzxf7y8ewprtd9c7h3ckn0hvh8c2gdwumxep25p4xc72ngcsk8qqnhhdppus2zryeawlrmj8cfrzthstw70j72uqkegyuw", + "addr1qy2sacu2znm2xwl723szuplanygzc63wane0dgtankn2wu72ngcsk8qqnhhdppus2zryeawlrmj8cfrzthstw70j72uq36c7pg", + "addr1qymx77n4gu54xdsyctxnjukdfv35m6rjspumquk23ndawek2ngcsk8qqnhhdppus2zryeawlrmj8cfrzthstw70j72uq8jhquq", + "addr1qy03kpsvu4mav9mgfjzejry83j2fzy5rfn5rjzyyq20xuk72ngcsk8qqnhhdppus2zryeawlrmj8cfrzthstw70j72uqsfgs0y" + ] + }, + { + "seed": "c59e8dd1505bb1bad79bef835aba5ecf2f0efccd9bf4f5f6344f441ee367cd23", + "public": + "xpub661MyMwAqRbcGzwzW4XoVj2Mh8MBePiKqPVEacESSNyiBK7LJt88948cQiPRemtHbx9yijVSTL9RKd4u3paNtbts5AsyrRb6vnQhdcebjXE", + "private": + "xprv3QESAWYc9vDdZzkhnxzyenSVgRaSVaHhc8FKCv4kVk9nQaY6udAZyec41cDJR87nuB8rgwq5V4ge3NGr8AXsPqdPtG4VkXzKMASQScB3Nm8m2Ysu142W4T2dARU8UyPpbcqNPaUFujU5AcrkRM8bpf6", + "coin_public": + "xpub6AJ34ZLPnEEWGnRku8cac63MRfDxCXm77bEx713AHzAAV82q56Gv6WHrZaGhkZTmpYafnXog6fsoRarxDDzN4rMRCY5stm464c2nqPmQHkp", + "coin_private": + "xprv3RWJiZMAbzHquAQ5WT5cM8Q1JyMgzVLmEWPPttihBgVhUZvUBEB9H3Z2Yma3d73iZUc1epvQXrAqp7kYCgtLiRHWVmWqdTRVb4KkzckYZPeWCWu7VjNcMtizbEbhAfKzbJCLsHJRqR7uWNrMCQUqR5z", + "account_public": + "xpub6DCWMWRx2ShAkr5F3nShvfyri3T4LkL2M2p52tPjGoPY482p1g1Ru9hMWYZxPchaxdjQLr72bhkH5ZzyuEKLgLppA8GmiSyFFVXvf6CDghK", + "account_private": + "xprv3SNMQ1Cuc4CHRi4tEP7NPyHYD6jRZSf7LrtmuP47YkgtBkZMQfExZcKkoxFivxy4H7BzN4GUsDCsfdgvyEFQDahhxr3x6A5BCvSGg4666eNAQY33i5V1xbRYfHxj4Vr9KYhYFDfdVjEVMMSfy65MpHs", + "stacking": "stake1uxjupex9yne6vcketptmsqrcvspahdlhhznj9ecsdf8e56cl64dmr", + "addresses": [ + "addr1q8cu7n44gafd0t99enq3znrlfaxhc9kcahmgeqd9vszjgxa9crjv2f8n5e3djkzhhqq8seqrmwml0w98ytn3q6j0nf4s2da8uv", + "addr1qx3dkjp4k5nnchureuvjh3cnfum4h8w2s495zm0jsj7dlm99crjv2f8n5e3djkzhhqq8seqrmwml0w98ytn3q6j0nf4sk0lc5p", + "addr1q9fn37vrxymuuevuncstk9esp0tru8xjxm8rk9rk3n4ylf99crjv2f8n5e3djkzhhqq8seqrmwml0w98ytn3q6j0nf4snjespy", + "addr1q866pva9m52pxnag7jv5v6rqu9lz8tljg7d8yg5av6st7v99crjv2f8n5e3djkzhhqq8seqrmwml0w98ytn3q6j0nf4s6sm49e", + "addr1qyj7xvjlphgne8eq2g4guk55lmp5rz52v9cf4m5vqznd9s49crjv2f8n5e3djkzhhqq8seqrmwml0w98ytn3q6j0nf4sgsnsv3" + ] + }, + { + "seed": "8bb92bb5577f9c3e6b032bb4162dceb0f77179e070fdf232791a8eb886ad1759", + "public": + "xpub661MyMwAqRbcEfPvVksuW5uk6qRcTCEspTrFhL7RusESeCP7PM1acTUCUDzXXqRj6mmZ9BK893G2FszcjDV5YZNrpoLtaNhJYtXn5TJv5m8", + "private": + "xprv3QESAWYc9vDdZJVBVncxcje8NXXsGycxQdEc6ovqWVYCd3JSTn6wS4dnzgnFUTKnGKSWf1ehuAZCtRCbmypC2jx9h4oo1cMFjLhRLgiGftGSRSCCAzd7Wec9StSi3pbCeaNm7UiVbjg8ZqRGqkF7hqE", + "coin_public": + "xpub6ADDVxZ2wFem2tcZnWMfvDq5t3J5qXQ4wXNJzR7hZhaR9Xt3aGSmCFkP9BiUjYTZjX3CrWtmXdt9t3DBysKyumLY8BwL541JLcvfqWFQfLn", + "coin_private": + "xprv3RUsfpJLy2bmGZFLNmn8paQVVj8MZff78RPgv7NyxWXonhc2EzCSLpC34Uhy2WqfbgvuCmYF9pqAyoXypJeiVdDTYMSKvHTtnkR4xqmmGcXu8oPinFNfh1r9SaRpMWfWa8wrHAYzpCPsRAXBb31EqnG", + "account_public": + "xpub6DNp4Krkb3EA3phcKm591aNFJ8QJqEHJANsBG7jrmb4b8bF1zgcPfTLE1bTJENNvw9gsBo8boKQDGE5LUCsxaniJE7hPhTphKxVhSsyNQMy", + "account_private": + "xprv3SRQxCZzz6vg2HFdmQ6Ubx6N7vd6emFMFZvUh5Y7ypvVxT7cpuQidNvNg7nReE9ujeXZJpgQHMXc62zrVt3FSSHhL4Yksj3VexfcoKFoVTkbWmD15SZKfVYvZsPqNpdZDTmncBXng74sjTummeFtzGC", + "stacking": "stake1u83zr774pph2u08vvcz72w2rppkhw5ddxl00gq9cp52wxgq9ly2uk", + "addresses": [ + "addr1qxm6vej5jdjjg5rv37ept7jt974dluydnzpk2hmncqqw8tlzy8aa2zrw4c7wces9u5u5xzrdwag66d777sqtsrg5uvsqnkgten", + "addr1qxfftu6a4qd23d2mywu6dsq0fryqe2x0ncc83newd9s0uhlzy8aa2zrw4c7wces9u5u5xzrdwag66d777sqtsrg5uvsqqusmpe", + "addr1q8xl42wtytqkd0n0a547ftuxl9u27y5ln623ryhe8ye7a9lzy8aa2zrw4c7wces9u5u5xzrdwag66d777sqtsrg5uvsqw28uw9", + "addr1q9g9663jdq8y4pcr0g9pnhe3auxne5q2n4ags3vfert2r60zy8aa2zrw4c7wces9u5u5xzrdwag66d777sqtsrg5uvsq4lxfn8", + "addr1q8w08s4gyqehty002zznwu4vzn4r2z9s63e7ygg5dj49v08zy8aa2zrw4c7wces9u5u5xzrdwag66d777sqtsrg5uvsqka8atx" + ] + }, + { + "seed": "9caa4ce584998eb900617e328aefa4c5ef5dcbfdb9c9e75947cf24abbcd1b732", + "public": + "xpub661MyMwAqRbcFnTWZBK97B9mvRkpsnoraBobRisHHJjLFkZ5F955eQqsrAG5REZZYt28e1RraPPk5LasWy7MB1QgvC3NgA6kJwG8aBqUAFH", + "private": + "xprv3QESAWYc9vDdZdpAteiHDWrnm9Y2rbLpKswZFE9rmS6aNbG3qMGsEug6EW8pJ6VeirTn8KpzLJrNGVV4SN4dphrtUemni3DYurTei5NBTMwXPBx83S5tVr7dPdwZK5zXxzpxf39CER3tvaRUZZKVB69", + "coin_public": + "xpub6BVRhiJxX4vrLdPPRFCMkcZTTNGuXzBifBqNpNSqcmPpe4C2QgcbCEc2W21XCGm9YrsQMJfBF1jdzxvNp5N5abqoFSYhV4uvfwUCDwXSQag", + "coin_private": + "xprv3RrvHW3vnMNuodjrgFKJd7BR1sWqHSA3o8Qa74u8Vaim3kpo6TyNEKZbvLfhsfoF2ksN6rBskCeH34wFpo5mks44f41VRYKQQRUBn4wMGaMyjsvNtjuimJtATKoZBBjcn1147rgMorjeFXi4ZJWbQn8", + "account_public": + "xpub6Chf4rf3JdmGoEZKFZszAFVitdT35fuRGVXVxMJpTPwKCpMBuvhWRM8WaCaPDvPzfTFCtwXpQbd9YLyw9tg6axu2sEV9WR95m2KY71v1wHL", + "account_private": + "xprv3SDnKwQwnQSmuLevdPHnu3wGi2RdqDdJJWhcgmpDFvw6u4HJL5Rr3XB66r4VP97AwEedNh4YU6anVdPBXB3JyEMvjjaV864KGAfycA42ud2sCzhSd9L2ksJH7wUt66KgeruzE9GWjFGTxdnE7pCwSQS", + "stacking": "stake1u83nftzv4tqz90hg560jwhj9rgthxxe24mgv8ep0xm87wzqx4rwqp", + "addresses": [ + "addr1q9z40760f5jejj8ygj4sj4u2m0sm59r6ceczlnm59mr8muhrxjkye2kqy2lw3f5lya0y2xshwvdj4tksc0jz7dk0uuyqnmpx56", + "addr1qyumfqxj504eqlhd4d0dedvy727k440zj33yx4ec3f70trhrxjkye2kqy2lw3f5lya0y2xshwvdj4tksc0jz7dk0uuyqnx5gwf", + "addr1qx590d8xmspucnaxxm9xcgd0dettf3gakce3k6ewh9u64m0rxjkye2kqy2lw3f5lya0y2xshwvdj4tksc0jz7dk0uuyqc74wlk", + "addr1qycw9gsr4s63x9kj2t5wjcfwjgl2j665h76uwrz8llnwrplrxjkye2kqy2lw3f5lya0y2xshwvdj4tksc0jz7dk0uuyqafqa2r", + "addr1qyf4596gdkptldfzfk05lsatupxjej54l9yk6dlkxp8tux8rxjkye2kqy2lw3f5lya0y2xshwvdj4tksc0jz7dk0uuyqpht5kf" + ] + }, + { + "seed": "ee62e92f5edeb4af0ff1f23ea061fa768dd47242569a264bb73b1ed203469f2d", + "public": + "xpub661MyMwAqRbcEZJjEaXMEosKXx2cBy889SbJ6a5jzhg1fR9jB3tA2RGWzsD1Z9q1T7kfpM4zorBgg2VUCederKfDWcJtgztpK5EHmMean7z", + "private": + "xprv3QESAWYc9vDdZGgG6wnWoL4BREizkcaMnmULmv8v3KZa7Hj7B1iagq7HdtkXC5sCy6fj3J5SGxTCYwyTZzVZ2ggPTXuJ3gJsHwtxGu3XrJPzgWaneCuzdy6DwprGDs5jvWe1Ax3DhrjeEV9wRFh9pix", + "coin_public": + "xpub6APSdsViqQJmeLktmAuLBKP9cApSPKsFwwJR9tYtPm3oiohnKgsYKhXqSP8SWHdUFt52Nt6h28n16bytpQzxmPeRi6j7kbE2JK97daNSgDu", + "coin_private": + "xprv3RXusKTXd6ae1zihiSiban9QnbEawAAwWDLHYVEgc6iAiKmahqfrgVAX79LgUCJi7YwwYH6Xz2C1gXfCH73uqf31y6SZnZWheddTMdwdQfBShAem8FEbGgb1rjjFMJE2whDAdQVo2ruiBqCaPK3PXVW", + "account_public": + "xpub6CMX1FSPGtx6KktyYPSBDwUVB29fcSMMmqyvuKkWxnjELvSbrnR2Yyp1pbCbGgpvFZNjQsaeGDesbfPN7W9u7SQapLLfJcKH9v9ZbNdgfpT", + "account_private": + "xprv3S7oLhKJnZGDbS48DZo9QS8VoETGLw43Kk1zwMK2yyTSRB4qqCbRBsDLa3UEwVhxKVMvA9k4GGA4QghMFtVDRFg3k26Qx1nArQcHRhVia8H6StXLz45a9SPtNmXQ4vGUchX9JqRdDZmDXDEVmTtVp2f", + "stacking": "stake1u9ydzdqc4n0f02hlm82ta3dzjdpa4528vcw7sv6zkvq0m6ggr2mj8", + "addresses": [ + "addr1qy0eu6eup97h4ahzgkqf83v9r69h8slexq9vsp8j6d9ygnjg6y6p3tx7j740lkw5hmz69y6rmtg5wesaaqe59vcqlh5s5je845", + "addr1qxrnvywjltz9ptqx29gyc8xf08ee4vd4pg34ldgzsde86yzg6y6p3tx7j740lkw5hmz69y6rmtg5wesaaqe59vcqlh5s86hafc", + "addr1q8zx4367a6js7u4jn62paty6c4v8fpd7tfkwgjgea6gjd62g6y6p3tx7j740lkw5hmz69y6rmtg5wesaaqe59vcqlh5se5nhhy", + "addr1qx0pkjem3ccp2uktrd7xmhagsv7m4x8w892utan9dwgt9czg6y6p3tx7j740lkw5hmz69y6rmtg5wesaaqe59vcqlh5slw4zt9", + "addr1qxfrcyh30u9cq6pyl897cxhyf3l5u5fseauy2v5e2fpkrkzg6y6p3tx7j740lkw5hmz69y6rmtg5wesaaqe59vcqlh5sytma9n" + ] + }, + { + "seed": "2a8bd5cc181a0b50dd261ce7d87000754152cf0628fd43e152a49263d36b7448", + "public": + "xpub661MyMwAqRbcGHmXnnKwmJGY1tZS85486xuYPzKQhPabCpPJQqyN8LA5vwPFTixcPpq6oKGCx3qMtP6j7Qb4ssfs77Li1r6qbzhDXNcTHk2", + "private": + "xprv3QESAWYc9vDdZnXBaNUrUYU8WSM4gvEkoRVesbTaTVDifBY3z6goWDzmWLFVasiaa3MBQzQw7nAcmsak7T1mjNmiK5A2EkFm74HXhEL5PeaymBUx8g2S2m6SJ8K5uN2yYjid181WmhBEj9kCyM1ea1t", + "coin_public": + "xpub6BEPB4pJ12caHfZZMEHnkHfE2jE3Q3HHpTqjBTaAgdcWTCYhDYsFC45KnwuymAQNLG3SpfX7eBD9ynS1mB2h8WZMm5aX44EG1r3K4Ustis6", + "coin_private": + "xprv3RnT6BqEFNrh6Z9QbhrMJBUmkrR5d8xM5KQCDEfWoQ1M75U6cST8W7zu5BavXv6d1oyfvsKTqzDczyYoyPbfWVToxY5ZqifY7HikGxE1suGCHrvBiebdaHZESuWda2eWv69x1MCkEbnREJPcHdPGvvj", + "account_public": + "xpub6BfiXKL34RvAcpshXvZbPymVQKFDwxWhdBW7f3csL1TCsfTE5KayHzfJUDk9ypgX3RmpNnafh1u3QZdzt3ks1fL9mw1dYG5V9noZmBRk9R4", + "account_private": + "xprv3RuyaV24hLqobn8QXgstJkNin4hsaNyYrhNFecLmXa9wQBitfRgzjDgoeH3mREMJBY3dHytwuBPHsXnrMVLJTdHhmdpTX6sLumMxHh4S6emDP6nQaqWC52RA6CHjBYusqBxtEa1fd6dqHcR8on9V5Bz", + "stacking": "stake1uxmec5lhumuf8j4tmxuaffmte3yyymha88s7jl99g9zmqlcgra7c4", + "addresses": [ + "addr1qyhcq56vx4u336xfy0963u3v9jw5wngqm58vq0c47wpm0xdhn3fl0ehcj092hkde6jnkhnzggfh06w0pa9722s29kplsf0nyev", + "addr1q8q45u8yt3s3xt89uwyl4awhvnawc6hqauprv5zfrkxrc29hn3fl0ehcj092hkde6jnkhnzggfh06w0pa9722s29kplsdh98cg", + "addr1qx45j97yac2gua74w5j29zl0889kl6jjxry58v7vlja7j3dhn3fl0ehcj092hkde6jnkhnzggfh06w0pa9722s29kpls02grsm", + "addr1q87x06k3mujg6gq4eezqcaeemjyvuwp5r23cc2duqulhfx4hn3fl0ehcj092hkde6jnkhnzggfh06w0pa9722s29kplsgwddsf", + "addr1qxks2hx38zw7dam79q7lv2qx7y5qnxce2f35kqr07jkc0vdhn3fl0ehcj092hkde6jnkhnzggfh06w0pa9722s29kpls5wqsa0" + ] + }, + { + "seed": "9406e3f7770d436042d02b341fe71e9222dd6f3aed13a0afebffdc50fd868dcb", + "public": + "xpub661MyMwAqRbcEfTtwPtDrC2ULcqSuLs9A5tomeLXkrhMkyFwLKRWqXMfziaDEQ4j1cvVp9pFRd4GCBpv8S1mHaprgmJY61zMz2bJXSWo19R", + "private": + "xprv3QESAWYc9vDdZJWMxDCiDPjTxQyS5otoM3UBRLsi2Xq7PAibmr6hrXM8Dxdtz1wkk5XrxvfuYDAQBztMET29CuAAhhf7hR1ug49m1MECHC1foUuR2kss3MFvwRp177uobgHjbZs6EWCnzrLAgtDUGLQ", + "coin_public": + "xpub6AxHZrJcamXQHsiymufWMvuEgMfER1DdGP29oom5kEbwQM6vmz8bFV7zZtaeGfeNEr6QZoyoBhRGCJwC3hwjUNPcCjyz2iresxqVyMqvF2t", + "coin_private": + "xprv3RhfkWZn1EqnMgV8to2BV7hhyQQfGq963t2HKhvWFVJTXiFN1MsPnjDamjMTRKWwp6EcMk8quPPFgnkfF8yYEpqJhTFiMdE2YGfReGTEi23mShy7BJmfihy3U8ah23tdkVAMxLfRjt8mZCuu2pSnLSW", + "account_public": + "xpub6CRWyUAUTeL5FbbKr2WGafpc54z72jsywYD2oUdWiuqnrikLE7qnp4HfUFwB31vy9esgaURJ2H2PxQDKqmV8DgqZjfwnNc9v44PSn4MyfbS", + "account_private": + "xprv3S8zFS7vBfNdGuuFZH81iKau97C8tE3GNrZu8k76e9Z1nsoZ4sJqZs5UvuhY5ySykoJwheTPcCv4HdvZqvmqk9QztH2LNxyqvXgdkvZBzWcR2LpraxwoYuJLyfDth45Ev3T83r3pxNY3YyZemXt2Uvk", + "stacking": "stake1u98esnutd9rsdzl7kpqted53msuy0t597zflt2pm4s5gvvskzwwau", + "addresses": [ + "addr1qxw8g5ylrx82da58rpslwcgs40w4gnrfc296rv3qmpxalr20np8ck628q69lavzqhjmfrhpcg7hgtuyn7k5rhtpgsceqemue7n", + "addr1q9pesn3taj4vpspycfvplaje570j4vctu2dlvhzlxfk02pj0np8ck628q69lavzqhjmfrhpcg7hgtuyn7k5rhtpgsceqky02d3", + "addr1q8v55xzp6ypatzvrpdgcar8vw8egvapssgs27e4q0xy5f9j0np8ck628q69lavzqhjmfrhpcg7hgtuyn7k5rhtpgsceq74upm4", + "addr1qx7n6kjxygdf0j5w66g0ewqxhway0eew9rh5plnf3m5g4cz0np8ck628q69lavzqhjmfrhpcg7hgtuyn7k5rhtpgsceqr759su", + "addr1q882akv2uyryfkqakwymkj57wlua6tm5a9mt4jt8kenekj20np8ck628q69lavzqhjmfrhpcg7hgtuyn7k5rhtpgsceql36scg" + ] + }, + { + "seed": "25b714e7a38a7391aae5e3d64eb357509c109c256808974617d10ebf207fcf22", + "public": + "xpub661MyMwAqRbcG7MhJCLEVXcRg55H25yGdbf7fRgE5E24HCXUupnPnRX3e3NiBQK4epm1nEppiJ5JCSa4j5WdDStC7bNBMvAU8Htfam6FhCe", + "private": + "xprv3QESAWYc9vDdZjRoisGAp7MrvFuwQK1T8SQtUARRMYLT412QaVddZ4sN3okni3GGuU8AxGfBRYPEkzNofrx22wsYdxHvxg2mro5S5hLVhFwpxYVqqeaATkaVX1vbNgA43NH7aLaAZLzGbyYYpNRkuvs", + "coin_public": + "xpub6ArMifn8WQ65KyviFVEU3kGAm62FrtHXCiKfSh6SnrZfasHFV2mwvse1gdcVtaZPQeJ6NdcDY4RQoyLbfZKihRckLQh2weqB5xK76vMgHJY", + "coin_private": + "xprv3Rfuc9YnCR7R4Xhp2Qx5asxz3d27Ks39b9TkbwUYYJfhXHGZkq7QAdykawupjH1pG1TbLk41HE4h2v8ChwLhu8HQTwuCUAv5jEEMuztpq8ELmvKnN8sYg4Q8xGr76roX1jqE9hj7og4VzL9Xud33Zk8", + "account_public": + "xpub6C5qL5ECcoX29P97DsRuvjFwESMyh1yCYcWadvMxEfNLAMGaCTajAw4fsL67S4oWmRxoJ9gcU39EzdqEPo1yRupfpbeKDYcY743T2D8ct4u", + "account_private": + "xprv3S397MR943GQw2XRStaRcckq4XNHX73gDVzYwEZ7H8XGXMMpYvzunKzTgDHAcox6SFATK5sCPKLbJW6HEJW2v5jv3mF2KDfdFFUQQeQe6XBoePydHyUj2FP8r4FC4JQxJ47TbYWcVdD4JP6AP95ibEG", + "stacking": "stake1uxwaa7x5duv5ha8dr4882gkhns0zkkfuj3x6ny76ad3mgzcllp2pu", + "addresses": [ + "addr1qx99alwhzy3k6350w4kkyqr79jcm9mtw3zxx5r47l74996uammudgmcef06w682ww53d08q79dvne9zd4xfa46mrks9s2dx5ef", + "addr1q87ggrg5xhdkgsjjfuuqtty4fwqefe83282kts3lxex7t4yammudgmcef06w682ww53d08q79dvne9zd4xfa46mrks9snpajc6", + "addr1qy8jk9kmcdp6narzac4s3xscqhg7kj7pxvpty8tp4en6kyuammudgmcef06w682ww53d08q79dvne9zd4xfa46mrks9sqd06yu", + "addr1qxlqac82qgv73g36vanfada56rnp2egkpu3f39psd9p7r85ammudgmcef06w682ww53d08q79dvne9zd4xfa46mrks9sljv406", + "addr1qxs53srax9vlu0yh7xatqfy2arcddvgjpj0pjj6hlz5glg5ammudgmcef06w682ww53d08q79dvne9zd4xfa46mrks9s67gedd" + ] + }, + { + "seed": "89840b3f6c4e466b0869ac912c11b7c3b4931573118ed74c378c2693af5a0f57", + "public": + "xpub661MyMwAqRbcGFT8V3EGQr6WtGDb2SLkT25a5NdfnkSteZUUkPDrcto5YN15vR8yYVBLXaCDsyhxZsrtxNaFvKkPzFsipVvjyH8op8AJ7oW", + "private": + "xprv3QESAWYc9vDdZmqFtNpsbgU2pW3mgHP89qpeSNM8FydshwoqibWfRuBxPgcWci9hxjM5ByCV36CcAmv7vbb4fecnLXeMBSnHe7s3Ru3qDZ1mmXoxckpkc9huefresgB9iRtfu7Mqe355iK839pqadcQ", + "coin_public": + "xpub6A4AiAyi6vMWcVM6wikteyDDqYJHnfK3J5tM4u2c9t25uTiMAhKPqVqLcZTJ3SjnoKDwReKDzuPL2hSiz5XMu589B1Pye2CWSAaUQX3GzM9", + "coin_private": + "xprv3RSBmuTemjBMUPEBr9fLELRcAwjZhLdvnN71jmh7JGDPnZjskuwG6TJXeFgpSHJL9vTEkqPQDK9XbccRvDK2BS8pSu7QhwQjZn3C1sqaSjczP1Kh2gafgnp29VxzWmGn2u4LtUf5Maxne3B1AT5vk5w", + "account_public": + "xpub6BxhQS3QadbgK73ZxpGaWT5rzEE8uw1p9mLWkcNRUEgA5v2huuQLtkf27NmahJgTx7Vsw3umYC9ysoeWyqsgPXzJ5B7Hn6Ei3XHUssb9voq", + "account_private": + "xprv3S129bPairx54e2DNsv3N6EjkaUmmpk3UMxit45nG8pf6dtKAEqsURhT3h1gWYfhZnsKryeXS6tpVjQ8BJnCoKHwmYo3tNM1kXSsu4CxfKZgKtM1xTXQiqCEsPr2WzMTKPUjdYGPrbMi72Ue3dwX52u", + "stacking": "stake1u9gq3neluy9udn6gtnljmcenw640xz03yq3k96seqkn0rmc0gnkvq", + "addresses": [ + "addr1qynrw5ceuurzrgcvp9mpu0fqlwcyav772sdcn4yym8aafajspr8nlcgtcm85sh8l9h3nxa427vylzgprvt4pjpdx78hshdf9l9", + "addr1q9yt83g6jfmf7579pkesp5gy75z9rxayqfs5j3uspry36wzspr8nlcgtcm85sh8l9h3nxa427vylzgprvt4pjpdx78hsy2r532", + "addr1q83xxxcp33gp0s7wcsec5xk9uaxu869w0xxjkcuhpe7dl56spr8nlcgtcm85sh8l9h3nxa427vylzgprvt4pjpdx78hsnwjtc5", + "addr1q8k5asvk3sp58cpsgaw0y7k7p9lz8ch0y0lz0kch27nc9l2spr8nlcgtcm85sh8l9h3nxa427vylzgprvt4pjpdx78hsm4dreh", + "addr1qx9nkh4mhm5jpy7zzgfakvhl34puawruxxmt562m5sz55wzspr8nlcgtcm85sh8l9h3nxa427vylzgprvt4pjpdx78hsefepc6" + ] + }, + { + "seed": "b131f2cb9d55d28ae0fa665cee830b5c872a5fb278674f8739f6e06b5aaf6a8e", + "public": + "xpub661MyMwAqRbcGwYZW4VzVGiyya1X7KdSrTcpUsCiWCyK2eNKMBi38w5UqkgnLc6kvrDtYkWFN1CgtYSMUSNUi5kdNs8UQK5K1VSaMVmbkou", + "private": + "xprv3QESAWYc9vDdZyk48q4PejQ3pxwy7AjjW4tUNKkaFGfm6TdGHr9ecKJTTZZUU67fYgFQDK4WB9eJ4FtBD3yL8QH2sMrArED6SG7VjtSDWVfv6y72Aas9ps4hzzv8N7UkSDWN2VkiE8L9SW7oiaj5Djc", + "coin_public": + "xpub6AZrw24iEbVrYWiYHYJMkw7zwuGCs7ussUvsoW4fCvttNdv6hfL3h1KFhP6BGrzKPLFTGw257ARhPMWtXeieqKYd42nz9fuJyMK2R7vCtwy", + "coin_private": + "xprv3Rb1P6DQf4XBHD9LakXu1zGyg9wFY86ZyZzQ5WCs1yk5TxPa1GwtSecrhdct8hWwQosUYpgeKVbrMuFGvhk9iCEz3c6WrV4yC6RwHWrq32gvM6LKv8pZYzDpNjJA7YQTbvDc3jenP6EyFX6X5DZ4gA8", + "account_public": + "xpub6C9HdhGB5TcgFLP3bmhHbU22MRHBKgbb3aRip23CgNHVnJyxNKJAAXfwonFP8vkgzJFgntRbhvppgjM7mN49jmbEAshpWbjVxxfiVKt6ex5", + "account_private": + "xprv3S4AcWNW2gHThYuB2BfMJdgRd1S2Hy5NryeWiJwxkscuFgXgQnRtk7wkPFCAAGULcGfWdHQGde5Nys2PFEcuX6NrToUNeZXf9Ey1RkuVSMPuqBHT9H1KjZHcYc4FdgfJkcoskvHa5Q2xpVp6XgtkgYG", + "stacking": "stake1u8xmhrl5ujtmq4k7grjq8g8rwrzyy2fe79v0jmrq3reek3c02023h", + "addresses": [ + "addr1q80gy2gwyka74qmgkl9ncy7p8zvzgymz2n2hwt7h4vnvedkdhw8lfeyhkptdus8yqwswxuxygg5nnu2cl9kxpz8nndrs9zjf9n", + "addr1qxpkg6hxmljax4h6vumv3kvk2w64qafd8fz2qyyh55z83exdhw8lfeyhkptdus8yqwswxuxygg5nnu2cl9kxpz8nndrsye0fhs", + "addr1q9uv92c4jj44765c2ykdcghfl4sm9m8md0madpxf0cfgezwdhw8lfeyhkptdus8yqwswxuxygg5nnu2cl9kxpz8nndrsqjps0p", + "addr1qxtdg6muc2ggzfcr6r9xg50gpv8v4tsrrvr042pawj9y0yxdhw8lfeyhkptdus8yqwswxuxygg5nnu2cl9kxpz8nndrszweuz5", + "addr1q84l4a5yz8aaxs5wd2425rj0mjeyyr7wflqnxd0f6dpjvcwdhw8lfeyhkptdus8yqwswxuxygg5nnu2cl9kxpz8nndrskhvhp0" + ] + }, + { + "seed": "1f7c9ed03e3c0a4d87bb6237d9fb9931032b13747136786e486270d277968377", + "public": + "xpub661MyMwAqRbcGqjgRH9DrJkZQcEDRMwU5DNtSGoDd3ynedV7xgMWd8t49Ua79R4FC3mVYLgNnVFZ5Zsr2Y6Gy7Vy3eeURrUNZbisJRyFqfP", + "private": + "xprv3QESAWYc9vDdZx1ypGywhqmAibBRHGY7DDfB2S7B8RwVty2HA3BBaLcfN6hJLrppdCHFx77TBgBNA6wcDrZE82mj77KqezJye6C9MnowY9B9zq2QPijBrkTdz39jVmSyLeLZb8bMYTMH2seY4wwDD8m", + "coin_public": + "xpub6B1AC9ZjZj7Dz3bSsPvJaR3sXv2XdYSMzpxznuhacySBRPvxBV2mCXrMJpWP54EVt1KQaB3Nij62adpGRbALuvxfkPbSq1CGBcHHPjuWGrU", + "coin_private": + "xprv3RiXFQY6eQHvFfJZkchxw8MyxV1w5ZJ3fEur9xoF98BUTgMdPspR6aquSJdh8tkAYucMoYQZXpR81PvuhsoRWjgDvMVg2mz5LkT1kcFn3hNJRGAuMUzNu2N5kS1pLDfQbSKgeUqoLocXZBhUQUh4nKX", + "account_public": + "xpub6BhBHyhenvLg8T32zcFRrC9qC653Vqv5kbgUx7HHm1Ym1U6z8nHA5XtU525d3A6sq6cHpfHn1WGRhApkrr9TMCrChasqeiHLXr12aD7z2U7", + "account_private": + "xprv3RvQm38HAqWeu9jQczAud7tNeurT8F9uJDqGaMBw7MEsa54DTT6ixjCQwXqZag98DC2XtPR8fwGTApTL4adNE5nkoZwCS46h2VuWhzBPnCUTeWGhGKJfXhrAaTnSm7WuAiRmwVTPXwdJjBtxXFrGjgp", + "stacking": "stake1uy0argka67zmkxxm08jew9guctm4l7v24kyveza982ryzlqrtgqag", + "addresses": [ + "addr1qyrjcv5srwv8rnrsyrccaj7t7dmls4hpxamrnyau30z09wgl6x3dm4u9hvvdk709ju23eshhtluc4tvgej962w5xg97q5jqn5u", + "addr1q8yss2gqy4gy5a5vaz3kd0ysngajzgzfc9uzqemckt2laxql6x3dm4u9hvvdk709ju23eshhtluc4tvgej962w5xg97q64ed9t", + "addr1qywxt7xn90dhdcr80kkrkckhdddkmmnhe5da0qaslavhfxcl6x3dm4u9hvvdk709ju23eshhtluc4tvgej962w5xg97qkeks63", + "addr1q8ag40ytnf7dm0prp9j44tlfru53hf6denyqum0dfxw4cfql6x3dm4u9hvvdk709ju23eshhtluc4tvgej962w5xg97qr73hp5", + "addr1qxnshqd77lgc9ssfdgm3x7ppsqmnak2l827mejxeryx0yhgl6x3dm4u9hvvdk709ju23eshhtluc4tvgej962w5xg97q7kg2ek" + ] + }, + { + "seed": "e5a3a29de40bc5557e18e13b9159a6bc3f44001ced291a952b5b932c59c71fca", + "public": + "xpub661MyMwAqRbcGeN6JwPHCtiCUvCtAwSvjsksLYpzui5SMUFY7HaJ2gStF1C6EHGiaLwjS9jhGD9zY3CSMx1tavpJWFv9wjN8sLYKtK9LhKy", + "private": + "xprv3QESAWYc9vDdZte3NriveV2o2Xi31zsZQV9LHNtNwCGUVchB5CwsgcBn8R52WmT8WgE61fZr6LCjZW9YF5jZQZajZPTT4TT89kEcVjUVCvwg19FZHiZ5GBK5Vb5cxU67Xq218p4rRrtVrupHNz2seQ9", + "coin_public": + "xpub69u7VzGevxCn4C9W1Mwvt6kvRr9VhAoeqd1oTuXYUC99CZ9iTeH2GFeNsQcY8xTpsUbBpk367ugiCLwFAho3CzujBChK6fgNN1ekrHipkfa", + "coin_private": + "xprv3RPVkkEnDJCjZu87gSn86UKgEPrNKrB9rbGZMJqCc37R4hf89VaQN8SxFCzgq72VFoHPhorhgx9byANDLDr6Gts8ryuT1MrNkUwa1PcwEtzZiBzi9NQsfj4NJHZLJzD3ZNmc7vCfWK2fr1hGNqDpHjX", + "account_public": + "xpub6DTVWwfURApiHbBfddPj6PVyVCEEp23fFXh9CB7A5GKVXJ5eB1nkYVLTomeQ7a3ewPi5zpB8XZW1YQP5oX6UdyGVihiKyFDqTKekReCD8Vz", + "account_private": + "xprv3SSobL1bD2qW7Fnin4YTWotyx1V7S54BnA1KZBFhSCtSu5RbgUJvekmGU5sn7n83YNbhVXCaTkq3m4EfdawzaoPfHjoVardHzJpBjKETnKtxND3zVWo9ZRZmDpq5H97XB3RJZ7F19dLq7F24UmmByX1", + "stacking": "stake1u8grqfnxmmasp8fvmzhvlqsngueezqu8l4aczsvf28nvlrgjlay05", + "addresses": [ + "addr1qy8pqqj3vrpn24q4y5dh9n2xm0faedwuy839r6k7xrqgd0wsxqnxdhhmqzwjek9we7ppx3enjypc0ltms9qcj50xe7xswhxhk7", + "addr1q9pa3wc2ghhy3k0p2fscpwrzdnn4kcsgkzau3fm9404vkuxsxqnxdhhmqzwjek9we7ppx3enjypc0ltms9qcj50xe7xs0ukk6n", + "addr1q8ehka7vz6wxn74yeq445p59ktausrdxajcmhgpgfjg5fpksxqnxdhhmqzwjek9we7ppx3enjypc0ltms9qcj50xe7xsdmatwy", + "addr1q9ku39ufmcuxlv69ln492yeyae5pg6xcspqjq7fg2nmlfexsxqnxdhhmqzwjek9we7ppx3enjypc0ltms9qcj50xe7xst7w7pz", + "addr1qxejzkzvl9drgqdshdesn8gxvj8s04857vja0ys0gcx0n8wsxqnxdhhmqzwjek9we7ppx3enjypc0ltms9qcj50xe7xs6z0x57" + ] + }, + { + "seed": "ff8285638d3814257e304320926f17ca6acbbaf3720f1683d9dba0396122e324", + "public": + "xpub661MyMwAqRbcGKnhm5v9AUZv1J5BiW8ZYvMc5Se81gRugt2DaR5D3YRzBBfGnyWJNUKXemQvPaU1aXJskTLrx2EUUoyFtw8LXtWYZyPwbmu", + "private": + "xprv3QESAWYc9vDdZo7zQDn4ZsTcxQpyYaisP5wd7U575joxg6aX5LPZkvXFR1NBk5ZuWsaY9a3NSVvo3AuofpUyoePXUHE6TTrUg24Xf43Q3aXcdA576UjfmKyV9tbDMtTd1HwYMDaPuo5C8i52fdQH6m4", + "coin_public": + "xpub6BWfKSqTAKBtHjLvL2qyHZ1sQfE7555GnbcQ2YfLEupgzdsmGQmJAfCspYpuwqLHBwQLKHGP8ieXDMAZHhHQYYoQR56i41JgBu9oTANzBTm", + "coin_private": + "xprv3RsHZRD2hHvcUWYZWmKbZwZ8gpQyZ9cvjpyKh28Xo3oAg9d9TvUaXqbVf7tuHgfCpxRPaeaNaAENMyFkiSRsUYNPqZDGS2dq4Cgm5NKWbhNU11Y9K8hbzVegEKo2TB5qBaVeZdi5FbH7e8ADZEhHRe3", + "account_public": + "xpub6BxiuyxoofwkjhCiUT2TabUtgB3arJrgyAKiEyia6eTkQZ7qhfhfF1PCSxXXmfuzapvMyxaKGkRQ4QotToYHu2QoovRaF8W5FG4o61p56hX", + "account_private": + "xprv3S12bbr7rUaJ93QbBCvNGv1jHAAzCZredJ3pGkTPm1XCQpLJK4DmQMafo6x2ifRBzgzc6WhkEFb9DWJq6ESorWhMM4Zt19LUthk9W8hJ4vqiEa6xtLcYXBWosxPyh5QnWftXpDVtexoUEaaGDqLtcWq", + "stacking": "stake1uyfsx5a5rpj9ent2ktx97ysnzu9vs5yc2aanntatpwt5eqcsv8p7s", + "addresses": [ + "addr1qx6svajgwh2zzjjd7q0hgxdjxr93hagc69r70rce62tr8vgnqdfmgxrytnxk4vkvtufpx9c2epgfs4mm8xh6kzuhfjpsc4wvrs", + "addr1q82uj0qy8knel2f6e4r6qj6dk0hred27c80uck26pahna4gnqdfmgxrytnxk4vkvtufpx9c2epgfs4mm8xh6kzuhfjpstqt5yd", + "addr1qxy7g500yp50y433kwypcmx72nzpp5ajzkrjm9tx2y3an2qnqdfmgxrytnxk4vkvtufpx9c2epgfs4mm8xh6kzuhfjpsfrl4ae", + "addr1q9j2mc4q4vx25a8yx9qwmcw94l8rw7e4sa88p3ew8w3sa7qnqdfmgxrytnxk4vkvtufpx9c2epgfs4mm8xh6kzuhfjpshpfak2", + "addr1q8cvl6k34fjdgwcrjjpek240espjp3s9u98ghnyhg5n8prcnqdfmgxrytnxk4vkvtufpx9c2epgfs4mm8xh6kzuhfjpstk7tf7" + ] + }, + { + "seed": "51405b217e4d60859a11187cfba4a76eefb6a94cdbf97df8f5f205d07141d4de", + "public": + "xpub661MyMwAqRbcEiRaWLxDchuMfkUfAci9csdsjkoCxu4gZrLSaKLvhU3CUTMhDHFX6x6Eem7nLsxWnTwcHhcmyBGTQZmVCfcHVu3qJqV72Ge", + "private": + "xprv3QESAWYc9vDdZKPMy7dzbEKPQnP4KXmWxEwudyYcay3nn36qPhbKiPFVdZx22MSEFpjimvLGdDQHNjVy4jB1ibEnPimAb8vp8rDW6vX7fkyKZ3gp3NrM6BbENe6axSERQuhawu2oAbtkKBiPcEVEHAY", + "coin_public": + "xpub6ADknPnwuzfYeEU7gpKwkUzbqvt51juUMajmWU3NqBjV3C8WchsPcakv35tZMoNJrurWYSJ6UnHi9Yx4wJXW72nQ4DJUZAuN6k9M147iF5M", + "coin_private": + "xprv3RV2xpHmvbrgG5JWf3sZrmo6Ry7o2TZV4nBVEh5evx581uF4yh1Y4tNT8X6Efi3JDzrqNqj7JMxPU5kAgQ6a6vMghyEpZgzJk2HSzFoFf6wpBGcVJuT5D5tn3ArxLe3BFa8ivaojASHXGvu8Ba4UC3y", + "account_public": + "xpub6Bxsf6PsoupG9hwQBDGzhpnxvWyX7dknboqs6D65hFRadPYM5xt7GZHzRo16U15ZTGrWM3VPJVPrrCbdNnSMeJpbQ5iEx7MMKbHuvSifPSt", + "account_private": + "xprv3S15CFAXbG92qZ15WAcMAykEmwVWEtWrGE2HEmKpUt6z6j6MGLKAKGLPF35y5AcZmeWZx4WHZrJySBgJgSWYuDbUPRMsF4f3UNok7byv4zw5u9oKA7kEsGZh5UhNQcLzuK83VJv6sTy4ds61RpV8LsA", + "stacking": "stake1uxe7rd8390h75nqfhnv6p9mht5m02a8dngaxd6rqyayuknszjzm2t", + "addresses": [ + "addr1q8pjdmmu6c5ulceg5eqw5ff50w66vq6ca3z45uhvy0hdpz4nux60z2l0afxqn0xe5zthwhfk746wmx36vm5xqf6fed8qjl58ss", + "addr1qx66tl0j2s2xs4vsnqs55s5cz2qe0kk2ljwtt2kj2mudl5dnux60z2l0afxqn0xe5zthwhfk746wmx36vm5xqf6fed8qvkns8y", + "addr1qyr286fhqnp9pffwcrha7vj4u0z2mnq3njn4hs70raqgvjdnux60z2l0afxqn0xe5zthwhfk746wmx36vm5xqf6fed8qyxq2ec", + "addr1qx5l7dhnfhys3k96hrx25z9tg28m6usnc4gx2dqm9e4mqcanux60z2l0afxqn0xe5zthwhfk746wmx36vm5xqf6fed8qmwfsp7", + "addr1q9gqesun7h5tq9jjwg7l3zq8mexw9tuu63p4l9lj6zls7t9nux60z2l0afxqn0xe5zthwhfk746wmx36vm5xqf6fed8q5f98n3" + ] + }, + { + "seed": "22dd9f8fa746152083f71a31ee0079ff5ba9c2e778b30bf65f15c066c8bbcecd", + "public": + "xpub661MyMwAqRbcEhpA5S2eNJKWxCuFVUg1BphdoZaH3SGtFXwDpyqhR6b3epxcEtDXcySLTEXjEiKLy7ReneMsSJJS3srR3fSQ6BCbspEjBx1", + "private": + "xprv3QESAWYc9vDdZKCqg7qGfADqWS5m65GTjq2UbDhNgztijkncTjjM54mnvr1YAVx3RcJmd29NgnxN4ykhwTkDomFGM6LZa8TysWcAMSLtBrwThAybvEkboKY3SGqeBTQcetxCCNpb7u6TtrLioFVxy8H", + "coin_public": + "xpub6AFG9mohEjguWwTHhL3S4ZT4UE7KFXqmQi6vZ2chUyK6Mpir7kZfe7DCvSYg7wBLFuioZsyuSDhxVYeSrBWh4pzeFYV7jNrrmhaLXx1UTzc", + "coin_private": + "xprv3RVUv9CwjFGvXp93su2RcVs7FFemhG8AZMLiJCMEmho12TAqsruAEwDrGTN7QimtXvWcYF9SJVzaDdpafWT7gcfJHTcLLHtBjWuCGsgkq2JeqrJPVbu2zxSnnAJN866r2LVWwGghzzLsi7zd5St6p59", + "account_public": + "xpub6DKmBJXD8uSxFhJDKK9VYpadokVpMYpkf2X3aJsWzJrLfcS1KLdapbKsR4vbMtsgwtyvzLaciQnj6QrkpFhtas4tDhLKR7yfzGKWHgtHjiW", + "account_private": + "xprv3SQWQdiahgkmtAfSk5ijf54w7sskVUbofgrhDPSN6xo8Cq4gn8zUc13WFGizCAFEKJSQ4BeNFSyLZV18zrtsGW1kDMjgr9DLhGeoDy5zvCJZQh2a38FCWpmSXpcbYH7wQxVvYK6HBogn59USAMaueqc", + "stacking": "stake1u88jf8sfdsuqtf95346lxyu4h65uyuu5kyswf5w40f2wt7qj4w8q8", + "addresses": [ + "addr1q99l6wa9jqqzky9904933rhrpjqpa3dpj6zhwlqz565qzhx0yj0qjmpcqkjtfrt47vfet04fcfeefvfqunga27j5uhuqq3tfz9", + "addr1q80efcn0w9wl5ruq0l4shaqqesjyt58qlfyzd0r3ghgteuk0yj0qjmpcqkjtfrt47vfet04fcfeefvfqunga27j5uhuqxqzsdq", + "addr1q84jz7a5nm47srr8rvvm50pkuxrspueka4k34xmtl36qxrx0yj0qjmpcqkjtfrt47vfet04fcfeefvfqunga27j5uhuqce2wse", + "addr1q8x2tsmgyy052f8gevvv963smfh5wphlmeutk4qwwu7zm770yj0qjmpcqkjtfrt47vfet04fcfeefvfqunga27j5uhuqpwv4sj", + "addr1q82n4un7a9tdax923gn7t3gru8utrhlhysvu4crrnnhy3yx0yj0qjmpcqkjtfrt47vfet04fcfeefvfqunga27j5uhuq52w67r" + ] + }, + { + "seed": "257a2ae1c5d2157b1e07d96fbb30122bb3843790d1e7fa2376c2e8d3f4e17574", + "public": + "xpub661MyMwAqRbcFtSJBTL8iSgMGvbq6BBwKinfnTDLvcwJ6pjURzQ4sKihZLG7QjYgpuxdq6pso4DBf1jZazAMVEL4EXTweKmkrRTYu2YPUfQ", + "private": + "xprv3QESAWYc9vDdZfbBtME51UHuFee3gdqWVNNAftfuz5RTbnETbVK5BQ5pC2mvUBRD7MB9fPNLR5PHWTGrkVux6pLh84oLgJqSkxLNzYkJgxVRZ5hajdg9JxsgVhZyxhiQP8FPLcPH2rfHYVSWC6NYfA5", + "coin_public": + "xpub6AcpUwDYnGVgSf4wp44K68CFpwSKcnHraBw1dpznChjcTSyJ4CFSnmzrZ983kGYfa6iR7X2qk26NWsKSfs7jqrikXgu2gKXFWarEUM93Xoy", + "coin_private": + "xprv3RbtLqHQ4whMTNQcMDLbDNtjpbFN7KNk6v2iMPz3vQPHH9qUL9enC7FbCUkC7re2PuK6jFPE4GBYJQqjtY6CMseTw27ZVDsc4LJbkYmJ3rESdR5UsxoXtfT9Y7YBume9kfNSwte26D6Ai4UvUaoE2kh", + "account_public": + "xpub6DGMxmZWsY3yRWYn34oSwxELizeS11K58uPqGa9QgkmRA3WFZ1FZA8TmWQJ51w36vZABHANJ6efHL2oxUU2jUMAYTFokwJf7RK4HHXeaeEK", + "account_private": + "xprv3SPVpgNLP3TPM5bDQZJYAtHrnefoHAmBBbAMFS8tCavmSkXsDDdHoRZw7xSWdQpFm7pCwbg9H8aRRu91so1pCwtMpBKxs3t1dq4pa2Jc84CCYan8xKqYJGj33NwqZAJo4ZhuLBzyGK9MWYTL4BgWnhG", + "stacking": "stake1uy8w88wpks8sead65d9vuxt2l3edx2su4e5hjw6qvsnd7wqlrjrmk", + "addresses": [ + "addr1q8ewnkdm24pct9gx2may2gwmsqphgscafhw2ph4dmf98ytswuwwurdq0pn6m4g62ecvk4lrj6v4petnf0ya5qepxmuuqvemxtc", + "addr1qyj4cjmagsvzd296jztml6kn6lu8net9wqt0kejxca9s2qgwuwwurdq0pn6m4g62ecvk4lrj6v4petnf0ya5qepxmuuq4c9hav", + "addr1qx04qu7xa8dvgzazfe7yrukaw095kku692myct29w9trtvqwuwwurdq0pn6m4g62ecvk4lrj6v4petnf0ya5qepxmuuqatqxg5", + "addr1qycyl0g22p39csku8xqc23xf3wf4e0ypjkx5ddckr9cjr0swuwwurdq0pn6m4g62ecvk4lrj6v4petnf0ya5qepxmuuq5znk96", + "addr1q8d4smycvwvfns2h4wutycqfs2pyjgfp5y7n4vtp8mp9w7gwuwwurdq0pn6m4g62ecvk4lrj6v4petnf0ya5qepxmuuquvsf6u" + ] + }, + { + "seed": "f7aec5dbe9787c5774d2ba8953eb181275065ef4f150e0abfa2605861dcec575", + "public": + "xpub661MyMwAqRbcFXTXhTpoDdDSRYtJduQRersSUuPxPNLhWtadNgBhnAChMu9GMpPJunmDdxZoJKxpxpbUYCJ3eJ9GPE4JaVL7H9CRrp9G56A", + "private": + "xprv3QESAWYc9vDdZZMjUnKqT2rkeLKeMYf9LwTjYW4JUdQPQGpfBifsQZYfaeYCCmM6Ru7RVZKSRVT4LG33rRS3QqVtX5c8Xd9oUsG1HbtyqdyEbQ2hdGQcGGekS9deonbjUrYE3oJ5Cp2DosyPLXPoFnE", + "coin_public": + "xpub6ADvbCHyjr4gTYT78VQWaBrX7xjjqTUTyyFr7NYLsGWA3vyntTYQsbEbC5ht9LXyH6sNsQfsSXv8Pv1cgPQQ2JnDT8Ub3Qf3VjqQzNUqD7J", + "coin_private": + "xprv3RV5snWsDDGiVe3rbQpminFmFVy2uWBc5uL4VdPohb5JvxWASXbmg7X9y2sEjqqKfTHpvETxQeg2ZUDjeSmM3RY8aaCQpHcwDPQNVqvePpJGWaMzBMMN4bxkHA21XPkeH3R556Gr8aVfKFkmGswbQCb", + "account_public": + "xpub6DUCXBD53eud2o2BBRqMKaKy4kKH2KFvuTcFZ98FbtV6b2qWcx16eKCdVHCg7KjZnbWG6AC1KD2daKP6LZWr3q9BES2fjgenxoXEpak5aT4", + "account_private": + "xprv3ST1mp2A5eydZQ8p32eGdCa9Pv7W7d8LoraRxTq4sRPGdDVpvdyghwDqfs3dmaKXEPs3Wz1jtriVaxmdtzDEaahvbiVfz1YcbP85nsnkcWFjATNrzqrXwTifyDnKoRmV9zLvGHdLRJxf98qJH3YGP8J", + "stacking": "stake1u9vkhl289nqh7cf7de84j9e482kfvyk0z48664suzrr3p7sf9faf8", + "addresses": [ + "addr1q86zg4t4rkk65wfcgy9uaa4kdyz5mv3g4jt9pet83np2mhjed075wtxp0asnumj0tytn2w4vjcfv792044tpcyx8zraqqlzkv6", + "addr1qxza6r0kxc69a43aqy04fxyha4ye3evekxcdhqkng9vfaajed075wtxp0asnumj0tytn2w4vjcfv792044tpcyx8zraqhpjmj5", + "addr1qyzfc6wjuwhwx4f07zm5yn6zjdd7hzx9xwxm443dck2gurjed075wtxp0asnumj0tytn2w4vjcfv792044tpcyx8zraqslmnhk", + "addr1qx29xuvzz88vqps7amnzgyd6lqvh6yavdeu3dftne4yq8ujed075wtxp0asnumj0tytn2w4vjcfv792044tpcyx8zraq4cmqvm", + "addr1qykgg0nypjjpxaunecjnznvqgdk00tne9l77gtgt5fpz3yzed075wtxp0asnumj0tytn2w4vjcfv792044tpcyx8zraqe8sgry" + ] + }, + { + "seed": "2c5cfceeef577becfd71d1417382384ee5e8c63cc2662b8efb13c0dd10f5f0a9", + "public": + "xpub661MyMwAqRbcEi6vRfqG77nM887XquLAqcK5VrnKx9yQW8razUwLQE9RohxgqcLFLPovr1JRmkTsUS2hx9g5syfaXzRKRwNx4omcdtr8kBn", + "private": + "xprv3QESAWYc9vDdZKHpXJPgpy16MeAb1oScMWi19XsGtCA3n58Vf2rdjRxLAZQsbMhQDmuwAnRoDhmwejdu2H5vn77svFbs52WGtSekdfWqrRDVaAjzaYk4eVPucBpC1Ym7Uw2UpbuMR89C9TT8Am8QgXZ", + "coin_public": + "xpub6A3eWZW8D9NV3nGY2UGBr9XvQjfDjzptCqiPUKn3kx2HFKQW4Xh3ESevUeuLE8WP2ZwZGeTvxjszmPmFaHn3ft5czZy1zXCin5n8WGxdfiw", + "coin_private": + "xprv3RS2oZtpT83egHjXL1FEZQDJtP5TQrSFkRbo4vXbFeKsZKazKgvNWtLRVse6c4D8KevvseGrLmYRDN65C2deAXcGbgPK3KA7yUPyxYu7xkuHv2zTrdyuaeCA4xZyTQZqecPvGmmhsnvTqYgF7JG7ppk", + "account_public": + "xpub6CRDSzmMELKvRvzVTW6mYcFyFbfySjSrbF57ujYB7CLGjYwGDLUTrBzfhDmTnccJrcJwvj1QnAW7vf2vyZ9Ub3mCz6S622jYXcBtuZgobzJ", + "account_private": + "xprv3S8u3Ui3eWTGjAUSKQMehuWDLXFqQMU4a6i2daHuBqkPQrxswfGZa3g51Kh6voikf4m8Hbv41g98a1xpQoWuMdEGcHwc4sdWEkvQNThGoDTkNyTP7VCqRbdjF1kvRxqXxQZzX2TG7R3utuZLoUpPgBD", + "stacking": "stake1uxx04nav6l80w5afrz4z5tg0wmyrf5x35jrw9zgmz8lvfgglvjvgh", + "addresses": [ + "addr1qx55d768cu9ma8n2np2404p2ffd8556yj4ytnv3wfk2egduvlt86e47w7af6jx929gks7akgxngdrfyxu2y3ky07cjssj472vw", + "addr1qyunv2zlw4t9w5ad0c2p8gp4dga0flf0dsh4nl4795d08vuvlt86e47w7af6jx929gks7akgxngdrfyxu2y3ky07cjss3zunx9", + "addr1q8zlaswvrv5c64uypqa7epdcykrwcaqgkmmvmjacytqxe55vlt86e47w7af6jx929gks7akgxngdrfyxu2y3ky07cjssyk36yk", + "addr1qyphr63w74ve6s9623v500kygmyv460ndntxhqlmfjq0uj5vlt86e47w7af6jx929gks7akgxngdrfyxu2y3ky07cjssp20w4a", + "addr1q8806z8n0jlras5kkkf9an7s5p38ytamy2hpx99qyvu4zwyvlt86e47w7af6jx929gks7akgxngdrfyxu2y3ky07cjssene0w9" + ] + }, + { + "seed": "c1a09c634f7a4196d29042388077fb7b36126988b631457e2a88d03937e131eb", + "public": + "xpub661MyMwAqRbcGnc35zZNmJK44UhAd823BmQHGWWwDgBzmNv9gz86YjfPW4f942r58x7morZpWQTEDxbJ9YZCMpq4jH6LYom5nPA8Tn4tqZH", + "private": + "xprv3QESAWYc9vDdZw62AiteJ3QfiCMJhXfpRsHx32GCkoycCRMzUCojqWsbMKuUPWbGaFkxo8NkmyyAjBdRU6iUosPst6XGFnFGQywjrNZC9KfaC7MsUHo9DLRxxU2PYT8dy6nEH5QeQKHEX1naQS1P1hi", + "coin_public": + "xpub6ACmG5vn886Qc1722PvAEtepZVr9FopSaV7o4vsQewkC66HpVWQukbnFBpe8hFNhGtwE7bCzL2EaeixDyqEXvsnnvopK766Fsoc6i9kmpgy", + "coin_private": + "xprv3RUjsj3LjvAnqs6C721EwsqDi3jLGBKtV3QrvyNtFakZe4NJfczsFz5DSnmcuoErYQCKp97dKUzkyjovygHCAL7tXE5DNzTEbQwLwNTDDP4LnGo4jHq67epUrqDeTKtcnoFRAxMxatVt36VdjgP1CNq", + "account_public": + "xpub6D4aSngiwpDBfscQZdWmZAG8BgKuEH9tacQjJuz9LksEBYnsYj1NC6nv4C75dF1DWpwbon6UdA1peTf1KvNsUVoEfX4edb5Sec7teNXuMWf", + "account_private": + "xprv3SKzmxV4kzyVb9FvEeh98ao8Upz95X5p6xmzydad1LDeVYMzAyaTGpk3v1GZsqYsQvVvdMXTpu79MSXkFypYzY8St7Lc43xkgtCP4wB9yXk3PHzFwNGfgFkNRNAbJxYBqb2P3qtBfEkDTQTaD129xku", + "stacking": "stake1uy6py7pwwnelpncnzpzhxklhmzqmqazwd6e6qvalq239kjg2skd7r", + "addresses": [ + "addr1q9x88n3z5u40325xwqd2phf873m7d7ltq4axlaxka789s8f5zfuzua8n7r83xyz9wddl0kypkp6yum4n5qem7q4ztdys6dclm4", + "addr1qyzyyr80kadjy8m0g9w3jz40dcqqcncdfmee8e5z6e0j4zf5zfuzua8n7r83xyz9wddl0kypkp6yum4n5qem7q4ztdys6mz234", + "addr1qyulrxa3zzw3ma6gayn7y303spckxxxg5th88etawwzsjpe5zfuzua8n7r83xyz9wddl0kypkp6yum4n5qem7q4ztdysk2aelf", + "addr1qywv5j3qylakul4ugvlqv55wcplkzwfrwxs43037njznv9f5zfuzua8n7r83xyz9wddl0kypkp6yum4n5qem7q4ztdysfzff33", + "addr1qycnxv7m347vfspaq3l9wg9tt5smnkfjjjuqku9rxsclm5p5zfuzua8n7r83xyz9wddl0kypkp6yum4n5qem7q4ztdys8pvcvm" + ] + }, + { + "seed": "de200f4d3dbfdf3e5223ed5b873dcc6590d6a1cdbe4d016e256a3692ebea7adf", + "public": + "xpub661MyMwAqRbcG5SfXMmAahzTnJH87RTksPpGAqHiTkZRM1RRhfR2FSSwPbzri5DMVu1dd6DbLEV3c497Cvpvz8jLiC3G149r6u1N9nLuzCz", + "private": + "xprv3QESAWYc9vDdZirpiAGvWRDm68tG4198Mbe8FaRzFQmzygmbELwiMuoou1C3RCbUC8A9CW8rpPGzHrxmaseguVhX6Wk8UiRovPxELf6briGgi4yxFTfZrFHuwHVLFq1Q2Tgvg3XPodaXmJkcww23ZjN", + "coin_public": + "xpub6AbSHkvWPsvFmbsW2VGKPMnnuGYxZd8yQiKufieoSsHAnjg1ujfqE4Mt3oXseEmMg2v1RfexdhEumNh32TkarW4TFwN1tMp5NoDweekaLLv", + "coin_private": + "xprv3RbUX9MuWBE5PsFFEPsyJsJQcYpxRkGqsQ3Mqy9LG7fXUFqthfFZN1M3AVKkyaP1YewY2vMzw4y3ViZZivz794EENFg6nWFCzwhoFSALLFgPpwX6vFktC2NXiMTmgeHrnLXhrdd2kbfrZUXt9EDN5xa", + "account_public": + "xpub6D54nh7H2VDwCWCQiRDNbGNzXrLxxXUAAcwomVMsCdbS1rQY5mDDfdzE3tmFzZz5kFo934MeoCmEavGyJ3YVko9em3BnzXWb9Q6stMkAUvn", + "account_private": + "xprv3SL9CJHhD8MotSRj84ud3CWLiBTRmWF4gygjSNv6rYNzPbG8LWi5Xbq7CMPH9sHwpGrV3SP9b4GWuuWJAt3VeqeoDwR7yjbs3QjSDrmAp5Kn8Rz3pdjhzF4ByWk6PvExFRHbZnXUH5H5jXEWskbZTrV", + "stacking": "stake1uyuafnla42295y7jtcjg3styagzazthlakq9kw3k3m3sjqcnj209c", + "addresses": [ + "addr1q9zr5lfsysv6jv65ln7079ec7a8m2yv7qc5lawhwf2s5axfe6n8lm255tgfayh3y3rqkf6s96yh0lmvqtvardrhrpypsalxs7r", + "addr1qyptcykywe9vs4jwxayegngfn723jgd9xhlegjm0tf4agnpe6n8lm255tgfayh3y3rqkf6s96yh0lmvqtvardrhrpypscrqqkt", + "addr1q8ezalzlel8kxkcrhvtrl9ezjc866kdlcq2pj552rdr2w9fe6n8lm255tgfayh3y3rqkf6s96yh0lmvqtvardrhrpypspqp4xf", + "addr1q8tsxnxlppn90mvtp3wvnhqga76llx6p6pw55wwrwcz48yfe6n8lm255tgfayh3y3rqkf6s96yh0lmvqtvardrhrpypsdzy9th", + "addr1qx2r2plhkrzlzx7e43zfegndt4m205x4eldakwl4vgruay3e6n8lm255tgfayh3y3rqkf6s96yh0lmvqtvardrhrpypsty3gr3" + ] + } +]; diff --git a/example/lib/test/cardano/mnemonic/mnemonic_test.dart b/example/lib/test/cardano/mnemonic/mnemonic_test.dart new file mode 100644 index 0000000..8c41e57 --- /dev/null +++ b/example/lib/test/cardano/mnemonic/mnemonic_test.dart @@ -0,0 +1,15 @@ +import 'package:blockchain_utils/bip/cardano/mnemonic/cardano_byron_legacy_seed_generator.dart'; +import 'package:blockchain_utils/bip/cardano/mnemonic/cardano_icarus_seed_generator.dart'; +import 'package:example/test/quick_hex.dart'; + +import 'test_vector.dart'; + +void cardanoMnemonicTest() { + for (final i in testVector) { + final String mnemonic = i["mnemonic"]; + final legacy = CardanoByronLegacySeedGenerator(mnemonic).generate(); + final icarus = CardanoIcarusSeedGenerator(mnemonic).generate(); + assert(legacy.toHex() == i["legacy"]); + assert(icarus.toHex() == i["icarus"]); + } +} diff --git a/example/lib/test/cardano/mnemonic/test_vector.dart b/example/lib/test/cardano/mnemonic/test_vector.dart new file mode 100644 index 0000000..22c9219 --- /dev/null +++ b/example/lib/test/cardano/mnemonic/test_vector.dart @@ -0,0 +1,37 @@ +final List> testVector = [ + { + "mnemonic": + "print crucial okay family era scatter bridge recall joke stomach diamond scissors", + "legacy": + "d7ea4bb51fb2088d878eccb3a281471d7d8ba8a5a4dd9fcce5a076e415005fb2", + "icarus": "aac68e67a944c580c6f59b785ac4f4e0" + }, + { + "mnemonic": + "mixed champion melody verb denial luxury card thrive breeze crystal rough keep race ready castle", + "legacy": + "6f7aad8c3758c72f06051a8d65de6f2fa13a96fe5b6416b3255478929bda19e8", + "icarus": "8e24c22a7943a70a88a7091b86aaf13ceb076588" + }, + { + "mnemonic": + "rival fire muffin dose era rookie lawn say melody misery donkey nut elbow manual sadness scout equip urban", + "legacy": + "3e46932e6861fb90b720e407ab87701b395128426f74df453e4ba435bdc9c943", + "icarus": "baaae644a0c4c5779f85ff8a91b504cbd4730eef7e0a4c3d" + }, + { + "mnemonic": + "vast daughter mosquito female unaware romance fiscal ostrich helmet good crazy sustain plate maximum pencil power express acquire armor mean immune", + "legacy": + "6f0e13e2ae8aa2741c153fd88a8c7467d38f0f486a31131d8b484b5060833164", + "icarus": "f1a6fa402a7ec77715e4e76aec8ccb6d7a6312e8ad4a50c0442fc4e7" + }, + { + "mnemonic": + "dignity hazard energy enroll forward sand good never urge travel elder history viable rebuild enforce venue jungle absent asthma pluck civil culture bulb measure", + "legacy": + "2f77930c924d3693fe701cd6f6e00e8c70d0881bf046225a9f1f700f07414d70", + "icarus": "3e0d3d282595bd7e591ca8ef7cf11d361f3566928f93790014385352986b077c" + } +]; diff --git a/example/lib/test/cardano/shelly/shelly_test.dart b/example/lib/test/cardano/shelly/shelly_test.dart new file mode 100644 index 0000000..8598e75 --- /dev/null +++ b/example/lib/test/cardano/shelly/shelly_test.dart @@ -0,0 +1,28 @@ +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base.dart'; +import 'package:blockchain_utils/bip/cardano/cip1852/cip1852.dart'; +import 'package:blockchain_utils/bip/cardano/cip1852/conf/cip1852_coins.dart'; +import 'package:blockchain_utils/bip/cardano/shelley/cardano_shelley.dart'; +import 'test_vector.dart'; + +void cardanoShellyTest() { + for (final i in testVector) { + final cip = + Cip1852.fromExtendedKey(i["private"], Cip1852Coins.cardanoLedger); + final toShelly = CardanoShelley.fromCip1852Object(cip); + assert(toShelly.privateKeys.addressKey.toExtended == i["account_private"]); + assert(toShelly.publicKeys.addressKey.toExtended == i["account_public"]); + final change = toShelly.change(Bip44Changes.chainExt); + assert(change.privateKeys.addressKey.toExtended == i["change_private"]); + assert(change.publicKeys.addressKey.toExtended == i["change_public"]); + final addresses = (i["addresses"] as List); + for (int b = 0; b < addresses.length; b++) { + final addrIndex = change.addressIndex(b); + final addrAddress = addrIndex.publicKeys.toAddress; + final public = addrIndex.publicKeys.addressKey.toExtended; + final private = addrIndex.privateKeys.addressKey.toExtended; + assert(addresses[b]["address"] == addrAddress); + assert(addresses[b]["public"] == public); + assert(addresses[b]["private"] == private); + } + } +} diff --git a/example/lib/test/cardano/shelly/test_vector.dart b/example/lib/test/cardano/shelly/test_vector.dart new file mode 100644 index 0000000..f6f032f --- /dev/null +++ b/example/lib/test/cardano/shelly/test_vector.dart @@ -0,0 +1,1452 @@ +final List> testVector = [ + { + "private": + "xprv3SLTEshpxLcEyCAfcQ1EbivSr6rMNSmbZDTkErmNPGVLKGvPqxCQe9UHP3NXCimHHpb8oCHyJnk1LzpowJTavRDa14nnFwACxA669ApLV2mvcE57BrfbK46is3G32i2huVN1FHLX2RYkH978p6b7Doh", + "stacking_public": + "xpub6Fx32qhsvGPJzrW69XFbXh29csnK8fmdnJx4QxvKE5ifhcHbwwx1u2BguHW7DLE7hxKg46jr2v6VzDKnqHLWynM4z29d4xKUTjuZPjrZB6T", + "stacking_private": + "xprv3TBk1wKPqxYmzDQ2xLjYXzZARJuwmihNfjv8Gtc6fCYmA6c7w7dNAnS5FUZR9nxM1DB5we5cqz9yGEVQdzQCbxoSDYt5DUzmBokptz6tgpiY7MxLkXkRfq8jBfYUb4XV5Yae8RNHKAJmdEFJMpNK6Ad", + "account_private": + "xprv3SLTEshpxLcEyCAfcQ1EbivSr6rMNSmbZDTkErmNPGVLKGvPqxCQe9UHP3NXCimHHpb8oCHyJnk1LzpowJTavRDa14nnFwACxA669ApLV2mvcE57BrfbK46is3G32i2huVN1FHLX2RYkH978p6b7Doh", + "account_public": + "xpub6D67XnHopNQTT1XfWqgau9rWgcuW9uqQKczYmwJdALER5xozLvZTJ2kt5woT3yTry1Wfc74GUg5P7SiJXB9hfrKF3RbESo87edddZdVCh3K", + "change_private": + "xprv3SXWQjm1qqx4aMprZ2QWJarGJtfJTMtLpcmv2QoyeKNv6SKVKwSt8xs2E9RN5dR7QrZFFh68Ssz8s5o9Vnpzi7B1hUuVyNFkrgfDha9oAGVwCoVPaG5HQeom4U9b7kdvEDoR2e2AcHQytMpYhWCDwmc", + "change_public": + "xpub6DjKuHeE1B3bnEyEp4y5rf9pWxFJ7p1KYcX8PCmZdjW6BN1FeKzo4tYj3MEXkGVAL3uJKMDZ1UYsdbJGKj4MwK4ZfmnHnJQ4fV4AdDEEZfN", + "addresses": [ + { + "address": + "addr1qxzkvrul580sfrc3kxdh3qkrce3x59nctynq9s6pu46urmtd6e5hpxtgq6zuwgvahuzjqk07ta9xw7qew6s5whgxg0pqmh07nx", + "public": + "xpub6G55yx9UGvyJfdyLttvN9nJA8ME7eJEeyE6gPKuBtwAnDomUFhPGQci4u97YuTZyX4egz4HjUdDT9m6NEZi9dWWdRmui3oa7kzAcfY6WcxD", + "private": + "xprv3TDqVz61bBhnARKdLeHTz6Da6XYW9R4KBQmsNHKUePzCd8dcqz95s9Fwp2SZFW8N3Je738CU2fz8jZb43ftNcPBkCyNzoMMKmU7wzn89cySTbNh4UzKVCnvFmnrQ9sXuEzmWGapM75d6PxeqD15mgRH" + }, + { + "address": + "addr1q88hput3zqr9eh7a2s5mdsac6ear02x6pvfsxgnzket4dwrd6e5hpxtgq6zuwgvahuzjqk07ta9xw7qew6s5whgxg0pq2vpsh0", + "public": + "xpub6G55yx9UGvyJj91M7QTieqE79icCeATq28xYksTUDtn1UJUbaaCNYvxGYU8ib19LVW4NWgfR5Rz1F1cdveeZdSguoErRBiD34xzmXaoHFL9", + "private": + "xprv3TDqVz61bBhnBTdqAEKN17o79xbynWqwqecUdr3GyvFUreDDCAJPmxKp7jPB6Dg1s2kpyb4XKWj9CDoQcCsupbksUAM9vSXsk4d6iAKdbEwH5fL7JmszDLSRmqpbhuaCV77P6d69whXEC3vJRSGtQPJ" + }, + { + "address": + "addr1q9q09frkfj80e9023km9enln2uywyvus7jwlym6cdteg9htd6e5hpxtgq6zuwgvahuzjqk07ta9xw7qew6s5whgxg0pq484tp5", + "public": + "xpub6G55yx9UGvyJmRKrgzrfEeVJwbckwP4mAMk3H3LrFcNjevqRsMwiot4kwu5YpSxfX71SsVhb1R8c4VRPG5CBSsAJ2ndjFDPeqAoVCaAb9Df", + "private": + "xprv3TDqVz61bBhnC8wdtVVF66yLwULkMudVi2AX9SLyv3h5VtndXbhrRHmS1Y7jMfeuE8xUAVQsrfWAeGjjrq45Bkcme9AQt5QwKdbeLuufgiP2YTwb8TgE9W75MgdCYFC5XL3dobXKBrwXzkcgTv8xUrw" + }, + { + "address": + "addr1qysnkvsaz77kpy2yg3c4fteaqglpkq5lgfssmxudm5pyvkmd6e5hpxtgq6zuwgvahuzjqk07ta9xw7qew6s5whgxg0pqfm88hl", + "public": + "xpub6G55yx9UGvyJpKTUNayndk1i3iLY4fadyL6M4dJjSwPYGD25UAgBqiybDLbqqnfMroVuDJbXLAMeEVF4fafD2C8KeE3gGiZfvTZRVGTyixW", + "private": + "xprv3TDqVz61bBhnCztUJmeVJQEVkQ3wxxHkSCWU2MC4JQJoojfDjDKsfTFH1Qumtc6RCDixzN8wEiX6TqEbWdBFARmfrXNsD8A8ZHZ1DS2vnswNjadx7MufDDz9Aw9paDqm5uJ1s4ZQPyrP9Lgov7kwWX9" + }, + { + "address": + "addr1qxqxx7ekd99dz6l83z0l5yt4u9hqtdk3d8kgu40pu0dfzmmd6e5hpxtgq6zuwgvahuzjqk07ta9xw7qew6s5whgxg0pqatgeax", + "public": + "xpub6G55yx9UGvyJsqdjsBAe1KL1W19b44SNnAvMKjvhwECJntodTFHoVfeWfhtcyRfj9oGyHM7evN4kGZ1P8rAsmRMQ5Ttvsvj1YiZE6DvCmF5", + "private": + "xprv3TDqVz61bBhnE3YMpUwq6TNig7GXUfDpUbkRwc9XqGfYhYhz3tn76y95C4voxpThncw9kxgqy6iZPMu8e5uk9cMh14FxY4mYwa9ZVmpX4j7AwisqL2CqovsxQzTqtPGWJyru7HT1X5WvXafNtQVQXZM" + } + ] + }, + { + "private": + "xprv3SAJkpWitvopT9aMvGd8NkQcA8N65Gp4WsxPdF4dk4SoGsG12GmMw5MJ8i2CVfjyBPAWyVvLcAL7XEpUf9ReJwmV297dzrmAwqNnk66fm17apFbjpLfN8RBr3VfPGxmGuAmsdBc3WCL6N4Ct2QuhpD8", + "stacking_public": + "xpub6FcN7KRpimWewbUSjZ9Ag1R7VEgF416TWrD96zpsxNqx7FFmtkETbwAYkedwqZLG32mQoxwaVjx87nHSReTKV7NBhBtsTff7PgC1SkdApi6", + "stacking_private": + "xprv3T5u6J5SE6uNjaJra2tg2VTtX5XajJEg49VQ7THz6NCCVoYdvQC5yZvQbSF5sx4cfF6vwygtqKf18eMBXG1HGGodA1XCXgVMPHYUsbc6Ny2zMM7ZTv6TpSrrLpBXAksGLBGi1BHoK8jzhCrfMJ1RMNJ", + "account_private": + "xprv3SAJkpWitvopT9aMvGd8NkQcA8N65Gp4WsxPdF4dk4SoGsG12GmMw5MJ8i2CVfjyBPAWyVvLcAL7XEpUf9ReJwmV297dzrmAwqNnk66fm17apFbjpLfN8RBr3VfPGxmGuAmsdBc3WCL6N4Ct2QuhpD8", + "account_public": + "xpub6CVxX3QURv5aujdzXChkjcGtasLvt2YSHKyNPFJLWNgymmnyZzkJhzfbxcJzfPtST6sNtw9PUQScp3HLU3Qxm49BWt9M4PNErpkpuU7FZkG", + "change_private": + "xprv3SgmXyShAJWvkhVCt8okLrpHXz1WSABTaq89vvsm3AHRswb6BzryUXtUBaNqcewvReZVHkiZ6p9LKCRjEUePVwtjsfqvppzivK5xBL2eFXxA1uLKuWT1HsBJPrvAesGLjpLAULgkUzZgqSu57QFjvTg", + "change_public": + "xpub6EGW2Rnk5uNjEV7bsCZFYkmibAfn8crDXKxnZxXLJy5bMAJZjCSpvP9RjCnqXP9SETBsCBcvBHwyCoX6AgWEUBRNzNT1KRNtHdtY9tn8tup", + "addresses": [ + { + "address": + "addr1qyv9l33hvmt8w9sq3unfut9g25m8tdwasty7n7d74umtpy7a875qenm7w8hwnzjxrscyv685xgm3kn80g2eatscqdv4qjm643v", + "public": + "xpub6G1JktwHF9nko85H4ZCpnxHPRLCQMJ3ZqmTEsGAD64byDCabMdXzcJwuk9X3QMCgNHntnf49XrKXyYWvpaNmyJy91LePGqJMSqGHzS4toLN", + "private": + "xprv3TCiNpnR61kSvoMpRefaKTTfEEjSQecK71eWyW3qos7vnLE7f9B8bYd8LCYG6qD2Pgcm7bRUAUn4nMYeMtTJKmEcpFMiY7Fg33yfSpdSwKckxnKTqFLtPRwrw7BSKJdj5qB378Zvp7dDwesTSHXTatp" + }, + { + "address": + "addr1qx4rv68leyv0wmenc78wdlk8jlf4e93gnh6u3emh89q9ydwa875qenm7w8hwnzjxrscyv685xgm3kn80g2eatscqdv4q58nnmw", + "public": + "xpub6G1JktwHF9nkpwpXWr3NUZgFo2Yvp677w3uihWbKwERsJUCVRP33xpb8VMDcRZi2RyBH7A9GJJxdK4w9q4SZ1YF5ybNPgoKLYCVsTsR7uxm", + "private": + "xprv3TCiNpnR61kSwLmmrD8GFjfpEHxKngoLmsbPRCfrL1eMJ9WCKqVzqEshMB8BFxTroXhZ2dwQDdUJYp8rzAsvGrB78nWpuAmz2wjejTU6vXhAuLYAz7tZ32quucV2op4aMYqvqk8bCxjAy3ossNnuiua" + }, + { + "address": + "addr1qysvhr2sgd3uzhzc29q5l0m4qfk7hkz7egcjd7nejktzjd7a875qenm7w8hwnzjxrscyv685xgm3kn80g2eatscqdv4qhf42qd", + "public": + "xpub6G1JktwHF9nktuYwYiZtCPCXPMTNBarepv1eCpqGsSKWSCKmppJkczCNNpneJB3DsiyVA6ZZawJAgm8T253RukBYr1SETJU5tSt2poa2NL8", + "private": + "xprv3TCiNpnR61kSxX1xATCWNE9xyW3k9y2WP54bwEw67tgUHHF7rvdGwW86t41QX73rxMbJR3k84RaUVi6przsY5Bxkhsq9kHRdLz48T7aqV4uLCZQoSKTaeu78oMrvUPXGBe9R24n8w2TLPngFAPF34Np" + }, + { + "address": + "addr1qx4agq6htsvreqsmlpmdgw9wa9uj3r408j9lva4w073m9zwa875qenm7w8hwnzjxrscyv685xgm3kn80g2eatscqdv4qduyq0j", + "public": + "xpub6G1JktwHF9nkvL2MTsLh2efqJnAMrX6EjDy2Xn3qhCdukK32gySpJTPCf14Lae8Rs4oiaQAdByeYe1TCvMaDy1H1uLZTm8gy8YCadLvzRLH", + "private": + "xprv3TCiNpnR61kSxwWvSTy3uy1sPTZfJbCCp53teQGwajhu6UpiUB8WJvSNQjvoLZzrFyY8B82ZtN4SvoHBjGjfs2RefN25BbUUciiZeeM9zwkaZsSiumP4PA4TRerojydW7m6eM1XsPNUL6uQD5B4SYqS" + }, + { + "address": + "addr1qyrsv3vaw03uj76ytx562508flm4zteums9uj3k5959rc47a875qenm7w8hwnzjxrscyv685xgm3kn80g2eatscqdv4qemsx3c", + "public": + "xpub6G1JktwHF9nkyS35mTao3Bez3WWoMnT2y314FLCN16tsJ4cpcgLsHiWDX9ANZXnysKEAMqNNio4igcPy2rmR2ruL6f8q3URLKNtATXm9CSp", + "private": + "xprv3TCiNpnR61kSyrzU23gz965CRcgaJ1WDZ2mpns4XyA2jnW7Rcg82vjkRUusTaHxkkV2hRkLj1DPoSSa855PNck13UBDKKD3Y35Fuaz1YRQG6YPiF3Nu3V6jMLWU7g8ga11TCHXee5v6nZx4tiu5VmYt" + } + ] + }, + { + "private": + "xprv3SGwCNUujaXemqGaaUtdSmM6c4iV29VqhQRUFNtuaMnZVMRwY9PR1XnDF9yP13Dz7vxrmzN1HsBcdzWtf8W6EC18oztZJfmcvSyLf6KMdAkjptVVxUwRZAZ7bBdG43i6rYUqs2hfJpQqJ6kCN5kiMmg", + "stacking_public": + "xpub6GAmyQ5aWE1rBKEik5qzCF4XHwqDpKeZKb4WiyXnZURe1NEgvah5W4ck6uprZZquESk48hr9FzcmpVBJxHeejPV5EeuC4Mcuab2MaqpzcP6", + "stacking_private": + "xprv3TFXXb5pBhMWwqwW87M7PUuotLisKGZDnk7QRYk5ucN3i5cdhhK7rUsbumJRidD5EW36eabsqQ59Do5HPNyTVNanorhfvtwpM9385JNaQt5yEXJscx7xQvzXxpZEvP2XHRgRWD4ZXrX36jSQEkNvX2Y", + "account_private": + "xprv3SGwCNUujaXemqGaaUtdSmM6c4iV29VqhQRUFNtuaMnZVMRwY9PR1XnDF9yP13Dz7vxrmzN1HsBcdzWtf8W6EC18oztZJfmcvSyLf6KMdAkjptVVxUwRZAZ7bBdG43i6rYUqs2hfJpQqJ6kCN5kiMmg", + "account_public": + "xpub6CtGfHoXMowbn4SyyBsmxaUr93K25ZsKnQ9SVHvpFWd1JaucJe5edfdkHNhtYNq66ix8u6FDCpDdf6xpqCJ8PiQYZGZ8j7E2EjTpWh52PCc", + "change_private": + "xprv3SijVJMsKYG4mk5WgfJmof8pkMq3tQbckeatFBTWshT6XgjKd3bWssjeQseqRDytxivR1Jk6uM1P3Xvwz8vBXZc5XXTKpxPRfgoGGKtm2N3Dm9cCPTj1mvQkYg2ugYuPZEFadsRwni87ASRyAbQcEvH", + "change_public": + "xpub6EP7dQM4A1E8fh6Fs6Ng5y3Xu4gvFbkwyorp9zLKFREry22G1X9D6TLivC66F7gJ7AA6w43SirvCNYWUMXAwgiyyR4wu7NnVfq9eb5bibxZ", + "addresses": [ + { + "address": + "addr1qyltj52refed9medk265j6ynnptnwq2u0vdhpk0x8p46wfkrmna3efj43e808749n4j7faqe72lh9zs2yckkt39jgfkqrvzxtc", + "public": + "xpub6H4R7h8QbPbwpjcJHoaSLEf21Jhf1T8ophEtGwQDNpLnFxzNFmrbUy64BoqPUAjjxCoB9atXY2foobLg8ir5ANHaEHLwvituQk3FrFBkKeN", + "private": + "xprv3TWsGhc7sgTBtxuLVFJC4NB1Vg53Czr3HdLqqzaysZuj8J8KnPa8NFq5fzgN6y8RdF1LD5CRNKhSmKf3kxR9n6Y4BqFGMJGSsTTCTJ7x2cVPu5S3pvWcgGFNN1M3f5S9xRhi7ZmKvhEixcQszMtrheh" + }, + { + "address": + "addr1q8ctn3m9wynvsf6mmenuq99ecvqznem7ww09x8euwecgrfxrmna3efj43e808749n4j7faqe72lh9zs2yckkt39jgfkq8skju7", + "public": + "xpub6H4R7h8QbPbwtBqNu7TWgEt6KhTrxqHNCwFXN4gNvRP9fMXHqcnLePfvuxy93PX89humdngaAn1qdS9PwSJNELVMQgbeuzu6TYQPWjT6bQM", + "private": + "xprv3TWsGhc7sgTBuzP9Bu13zxduS3bNigS1scE34cg2cofhN4whGT5PCcHeRQQ5vz363nKafrqVPz7dKoXXFPgQc2awefFoMr7QfLwtRuNavTQZE8KomgEZtHPVAzaP18XmyQV4d4oue3vN7LG2xkpMEx3" + }, + { + "address": + "addr1q95rmmmmh0wm0rtgdsp76tkrj8l5pghuzrvxfmc97m8uxskrmna3efj43e808749n4j7faqe72lh9zs2yckkt39jgfkqdu6px0", + "public": + "xpub6H4R7h8QbPbwvRtM1bWWMU3VziSrLo6c3VVW2Q6t3qHc2S2F175jZYH2hncsB3AeNSkBd3HgPREdCZdB8NCZ1E6yyoX4SNxQ4ckj2PBuphZ", + "private": + "xprv3TWsGhc7sgTBvf1sVViZnMS52zDeGeWVLjap4xqkodEK9RY4jGEVgdeKVidZaxxAgVmZn6A24LrNK9xJ5is2J7xiyxExyciMzBXJmt1BRpcPwS7EESbYpT86NsG66jTC1w5Sw9YpkQcgRopDQeixcLZ" + }, + { + "address": + "addr1q97sqt74w5dlgd7mh08pm96svw7g65zzvgrtd5kwy49m04krmna3efj43e808749n4j7faqe72lh9zs2yckkt39jgfkqdku794", + "public": + "xpub6H4R7h8QbPbwy1cnehUDrM8tJumvBUkeQpvcTyhSKBWAUwUZtjbEZBu6H9MbFYttL3vFVGHayGgFyTmTL2CPjmmn9pw9VU2M8s8syBceL4J", + "private": + "xprv3TWsGhc7sgTBwRVgwnRdafMsjYAgbPgK5EEnrkYcQe7UYLq3Vr5J6advnymBntskfFkcQrZHqLSia5mxgdWAFW25oYc8QVGWxAjPGGYvn1iw9SCTkEaUBGDFEBnwG1dBxvZniAkQZUP6Dg8kgwYRDBX" + }, + { + "address": + "addr1qyvgs98lv2624h69nhmwe8px9gu0h0zdnmmlp3hxc0y4qqkrmna3efj43e808749n4j7faqe72lh9zs2yckkt39jgfkqmz4pdc", + "public": + "xpub6H4R7h8QbPbx2zpk5S225PrCV3oTvqaYnqasBKM6yuDpFe6Ca7s2jTd9mDVT9fbZA6Y3vJfpFvNGgtznd2xFhvqMKgw4wcvZjpbRJExpkAo", + "private": + "xprv3TWsGhc7sgTBxcBH6rjPFdKxmvQzdovtiUNqXEBwVNqtpbe4NhAE7Qvzi9JQtJSykHUviVwS5jisGX7SBCSsWVCKLjMLD7D5MM6tSRtfLYitQbPMd9m1SxE6q7mcLbPutnZza4afihbY4ePMnGLyBHZ" + } + ] + }, + { + "private": + "xprv3RzjTMvPajCfNUJNqMP8NWwJukqfzhWQzvdMmFh4qqRUX6JxJiVyqCAT1EydCWSzDTS3mj8kxuZ13cWsmRLJMTCr7nCDTBRK1FJtzLt2NLp259RdEU8keEfSuCZ2ragzxaRTUY6VXgGEFU69mNyyo2A", + "stacking_public": + "xpub6GdnDevGYJDH9n6Bt2JghShWxUHnexcFtTcbHoDnd6hWZpdFzzJsGDT16XGn3KZV4PrqUjvi4ZVr8WNBZkrLuEEhEkLXZUyuBWuUS4bTGFv", + "stacking_private": + "xprv3TPYoNiL28i7p9QQYydkfRF7HtxzEtvx3TQ2cwd5eqeBrcUjNZ7zLzzdwKcDdQ3rHqssf4jLhFanPRZxMA3SKcHeBV1driWtyGofirGZf9og9n9cp5CM8EwsKcDVSrW5RzgWpZsa8XeBHj5Z3WCCzbx", + "account_private": + "xprv3RzjTMvPajCfNUJNqMP8NWwJukqfzhWQzvdMmFh4qqRUX6JxJiVyqCAT1EydCWSzDTS3mj8kxuZ13cWsmRLJMTCr7nCDTBRK1FJtzLt2NLp259RdEU8keEfSuCZ2ragzxaRTUY6VXgGEFU69mNyyo2A", + "account_public": + "xpub6BwjD59hS9agTh8wCxD9o6UfxGsjESsSotAnJBysJkSgn9MVmYdU7mnJKb5kQKvUXCpTwV1JF5Fs85b69kaejZGkjYqEAxCut1UzgWKSKtd", + "change_private": + "xprv3SeziRzfE23h9ZqWCvuz9BFzAkZBCUtfQEbkY8ZrMu8eUNa1HtLJTCaRzqy6LJvk1DhwqW3ErhsNwf94vGLtE3H5VTT7oBHyXfLN6AT1BQUE53Qi5iAobXGzbPctwuUTeeho9KAyqjaWE4Sf3Yx9an5", + "change_public": + "xpub6EAXuMaRJbFBsLKcTquoVenJRrRbHad84t76D1gqA7v4BKQz4mPMgWZ4H8xvheyjKKkyRbrXwi8iJaTec1s4JbhvV7X4SQ8dyw32p2FxPNb", + "addresses": [ + { + "address": + "addr1q8l8f6mkd3ayfm0pjxjza6fsw6gezyu5qhfl2rs6n9d9xpn2kh23527gdmvvg7xs6wk4fqp4duc9t3kuu7nte8t6zeeqha8xp2", + "public": + "xpub6GjiqxLngEvbFsYA6vnemesPXiS9oYqhkL6pbE9CRhj6vdkLGQjWxtXoahGAHJoQNVAhrpJ2SBkZ8CSygGWs31M72yc6eVvcS9duTS6qguR", + "private": + "xprv3TRKB97QxWPscHRoEU8WKX4r7GLUWNiruRkhtvTR3hAKj1ufxPBDmv6q2qcrL4tQDNmWn6yEq2CJmHdbpEv3dgieF1negJXKtMCQKW3uveHZi8RTXCc5xmrES2uLEQ1tMWEehj9Yks4Awt4MSpDMaqc" + }, + { + "address": + "addr1qy8efnltgpxlq0h67wt6y8dyetzjrphuyafylkcnpvra63n2kh23527gdmvvg7xs6wk4fqp4duc9t3kuu7nte8t6zeeqqdnq7z", + "public": + "xpub6GjiqxLngEvbHiUQFu4tZkE8FtsJwS7iQcVfVG2KaXiXvk8Bv4ENtihwqpWNwqea8mtpThSNRrDLuMfwixmeQqTCuuEKHS5rmxVwaGoKisk", + "private": + "xprv3TRKB97QxWPscqCFQjkL2DSwpd3udfZh9ZmkDTeMsaQiBuEA7vaKoe9ym6idujNfiJjtn4qZFtunDAJd3KiCL3bfinbyyCrhN6U92B6hhGmiLF2sRH14a4yH1jQrfddvrawQLuvTrKXMe6HA8RGra9T" + }, + { + "address": + "addr1q9lwh0hc00pzxnstf4k9lfj5d5lg374u47z30skxfwceemn2kh23527gdmvvg7xs6wk4fqp4duc9t3kuu7nte8t6zeeqrxn6ds", + "public": + "xpub6GjiqxLngEvbLECt9fP6Ev8N8zr28dBQoCmfUiJPEU5Lyhoy9GoBn9mMD1GLXcxWCmzxbAf6CUZxVcjQK8AH9gTPMhFoj6G4CTP66aV72uT", + "private": + "xprv3TRKB97QxWPsdaVAGMiDzZBKriTLUPetR8yxPuUBasgFrivhfwz8DoREMavzjLoMqA1FkHR2iHQycKWZ95V4VvDnkSCQkUTTSdPZXvEjU3SDGtc84sFpw3LoFBqHs6CLx4bfNA7vKMJMPffvDh9ZsHi" + }, + { + "address": + "addr1qy5f6gde4jwmlqrzukrcs23750qeee9n225h4v33vrgnggm2kh23527gdmvvg7xs6wk4fqp4duc9t3kuu7nte8t6zeeqp9nm86", + "public": + "xpub6GjiqxLngEvbNj7sY3shdThstubHKzVofniMkETMCBtp1ZbcCPh9btCf3zwaJDQdCLuVbZb8HLgnRPsY1NnHobbHWexEUQHduHwhy3qrmk5", + "private": + "xprv3TRKB97QxWPseKXxrwFGcfiQLHtgzWvyzeGDbS4RTcSxoQskGMbGqx7gwd23RXVca2uSzMfBjhrVHMnAWkFYFk1G9wqvBroMebHcyaiCvGduTmAxmMepCyteyhKxVJ4SiAEsPRUsUJ4uWdV24zjAbhB" + }, + { + "address": + "addr1qxu29y3jz89nfact3kzydmrdzkj6fttt6l5ued3fafd979n2kh23527gdmvvg7xs6wk4fqp4duc9t3kuu7nte8t6zeequ6ktsh", + "public": + "xpub6GjiqxLngEvbSc8GS2aGtkxnRmKRU1o8ua4YVW5xQbKNsdPNknb6BANtFQy7t3n7MoNvJcvbDzK5QihK8aY3h7SH7H5TgGXRZE3VxhcGWXb", + "private": + "xprv3TRKB97QxWPsfUNjvpSyNrku6hi8diVV3u4Z4CjfgvauFLqUVMnspYK8SkuXDWy3rUafMYmF3wmgqcKX6HXi3gvm86sNNjPGjFvCrnbqgMCHb8unVwYv4xsYw9tjjGz3j6sRVdCwfn429uFS5F9X9ZA" + } + ] + }, + { + "private": + "xprv3SEyxMvhiw2cWK5ChsAsdMjm8fnFhu5GJHeFJDm26F1SkTytDZoPasjKtR1uCKDrNpjfHwsmUCpgDxxUg7Dj1xUBzwSxsvNckimSxg1atj3gxDYyf9SM4xrtURiFCLKaSLCzcFCFe3bqYoKDph5H7Tw", + "stacking_public": + "xpub6HFsxkvkDHJ2n3afe6V31eXu29tdmMqBvz3BxGCoCTPhweBdcPAATdUypWg9Z2orYK7BC7TRUiDckKz5DYaLqgUTRBim1RL1mRebUCYDFQ9", + "stacking_private": + "xprv3TaGmjJBxVCJCs5jBsMM14NBwoGBu9MNt8LsqZ7ZrrNmtk1Fz6beHfdrXdKxYAyBh3dpV7myBmNtq5P2a6EmPi4HMCFrxejLuM8DZ351ugkKEDFoP7cRpsz4MfZVTjf71Hv3Jwyqv3PgxrC9T7KdQhS", + "account_private": + "xprv3SEyxMvhiw2cWK5ChsAsdMjm8fnFhu5GJHeFJDm26F1SkTytDZoPasjKtR1uCKDrNpjfHwsmUCpgDxxUg7Dj1xUBzwSxsvNckimSxg1atj3gxDYyf9SM4xrtURiFCLKaSLCzcFCFe3bqYoKDph5H7Tw", + "account_public": + "xpub6CmhTQ7nZXqVuj4U6vge7WV3V6q6Uzv8eEGN8UwYqMmjkQF6DqV214WgfMsMrAwh3J3PC7ApNn75Uv5V132s36YDQwZr8vvWiWCvXgHz7wG", + "change_private": + "xprv3StYHtf1YNjj5vhrmC1H6oPxVDYzQnDYRnFibcT8h1uxDhCMzU899AqwKTn83iKid6GVTzDfSZLJFuUoeTTmRJc2Uk5vUsjhKYPA6f72h3XDVKS3fFXR4zKCHPn138e5snawTfA4pArPDQoBBvVhDHh", + "change_public": + "xpub6Ex8PdgiYKNbks2rhtBtLfTQKnNZFfa4ozNdN2EWSvAiMEQ8mfZXNDLGRs1UFwYgTzrVHM1KVvL5zuaQkMCfoumDSStds4dK5QQmvcXQu1m", + "addresses": [ + { + "address": + "addr1q82ea7cca2ta3jfku96rknplntvq0meslmpm94q8q8g5ltup6ykkmphw80fanfe2rta6wsy6drwvacvvff5xyay2wn8qu7zh63", + "public": + "xpub6GN4JKsN3VsVeHtbYLY4vRgQPQzA4pNctS9dnRgUrnBWeRL9g1ruhXkwWaYA3N1XK8MGhVfhZ2c7x1y7ddRbKkweK6jFhhYk1YwSkqrx6xa", + "private": + "xprv3TJsuNLg83FDG6X5maJyh8tVS8FH9jihnEw8acun5MfVtVAmVRtBkrH8Gb8gYbbvjKgZaR2N5uBAr3eeDwQaT9HxAunwatvkKKZmdbYxjSxSVBtoYqhWnNtcR96Zah8CoF5kt5cJRGfobed4qdS2A4h" + }, + { + "address": + "addr1q9udyvufep0ua0teuzyr3m42yednws2w9s9u29encnncagup6ykkmphw80fanfe2rta6wsy6drwvacvvff5xyay2wn8qfquyr5", + "public": + "xpub6GN4JKsN3VsVhQ6mBQ6fXSB1gQScmf3mW33N4S9m7jFfBEhkyew8PSPptSmNz8CQrxVWwfPgc3sDHWSmqwnHwUJz12FTCcVZqXhrfdeXP3s", + "private": + "xprv3TJsuNLg83FDH242QAWME4FAL6UJiXHG8TCw6bmuscFjDUDHUP1i54QM6bMoeuYNJZr6XHCTVse2eDBknaoYFyy3Bpdg2B8mVQt2HpVc4sP6BmGT8PCwFiWDYbcbYknDBvzo9P3NCkWcRnQoQt68Nnr" + }, + { + "address": + "addr1qyuuqnj9g8x6vcay2gn7cpajyqmepm3r6sxfrysr73equsvp6ykkmphw80fanfe2rta6wsy6drwvacvvff5xyay2wn8q0ju7ve", + "public": + "xpub6GN4JKsN3VsVk2aNKed7YUkcpSHc3cunrjWHhxz5pSYeVNVFY3dKibWaUjcBRhAxhzgQpKq5PpHBif9teCqn27xK9v7TG91NmesZkZwnRMv", + "private": + "xprv3TJsuNLg83FDHoM8BYCRB637PPF7HVoDZt6v7dhDigXxuCQ6BQ83B2Wh1ZANusPPPbDN2X7hHxM3r87WP5F4ofW5wXaywEjLkyLt95MVJMQ2siQmFrf8MTvPXNmHXRoKq7T7MiAwWuZDNGAqoR91Xj8" + }, + { + "address": + "addr1qy2yvf9vhjrppem9zfzmsll4mmef09y5kgq3a8vv89gyfuvp6ykkmphw80fanfe2rta6wsy6drwvacvvff5xyay2wn8qrnpchk", + "public": + "xpub6GN4JKsN3VsVor9ZnCt6f4SBkLMgvJ5yLoCkbWCP7mvvWGxZqcvdcxPwQxjwEQXbBkeTSnqBNh23Gwts9hpXrJowvG5GxewTCHjGkSHkufT", + "private": + "xprv3TJsuNLg83FDJwAjAKAEkPaS3JzJMw1ABgBXVuZaG5RQoviqTtFtj2jHrPBFVsLzoXdF3mF61kM4GNGzGi6FZNkLaozQ1Ck1b2uvjwCZ6dRxKUn4zoG7XwckWYzXuygz2HWWLf4mwiyzPzSDYTpxbkv" + }, + { + "address": + "addr1qxavh0a7hhpedlpytcwr9rakggy8uwyktwt0yu8g5ynwwnup6ykkmphw80fanfe2rta6wsy6drwvacvvff5xyay2wn8qtvf73s", + "public": + "xpub6GN4JKsN3VsVpNGq29s3LKPuAfGYTgPiorYKiBiQXTjUV8rDRFGi6urGomAci7vS3TXxjdETCBNdyn9u5GPb2GERkD9XkHofRBDNfbev8Gy", + "private": + "xprv3TJsuNLg83FDK67moEiNHkBhbFRaDcPPGBatqMY2jDn93Z5bvhxtfik4Cxk7ExKVmdXdcvQ5cGjaWED3J7ACV2QgKF4hzwDYKTJZPkjakAZxdYSg8BWuFVAX2jf42HvmGKURfgNG4eqF1MrAuMgW1wi" + } + ] + }, + { + "private": + "xprv3SHJtREPaJzPQPNZEuM1kqNRYjShiV41XyCmcwAAvzH8u1aG46v2rW2mqzfMWpuPyzyQv7jQPBcjTBvErmcTnGyXf44jwmUzwznLDwuFwahMBxqDNRHXcNkqZiyGHrmXu5YUjGPiKdNJt6Shf2eKnwL", + "stacking_public": + "xpub6FVym3VNYsUdAsrJGfzG2tKyC9rcQ3e2JxtRDw98MqmieyC89XLmSXFntbacuvgcdeZUXYAHBCmjuTJLMb3KpCiokpPmPmK8WoFPaerWxWw", + "stacking_private": + "xprv3T415KZMEjmiRFFNGeXKbWB24HEdVg7abxnfhypzHCFTLdYqSGQmcoKpWBELN987ypGdHh7HqDooww6KUVQrt941v5T1EUErSc2NDjmhgmFaCUZDB7mhnZhk1PQx7NyLebpxJWvJuoMeFTM614omiDA", + "account_private": + "xprv3SHJtREPaJzPQPNZEuM1kqNRYjShiV41XyCmcwAAvzH8u1aG46v2rW2mqzfMWpuPyzyQv7jQPBcjTBvErmcTnGyXf44jwmUzwznLDwuFwahMBxqDNRHXcNkqZiyGHrmXu5YUjGPiKdNJt6Shf2eKnwL", + "account_public": + "xpub6CuXgFn4m4rhJSLrsoFQatyZgckUrKKiNchNy5FNRd8BXB5Yyykswy6G143M8A5VX8y5TS2V7iukJ5gW315b1FDVNWkVe81BJ6CAmiXR8sM", + "change_private": + "xprv3ShJughtNpst2sdVET72Jd9vpeSs5BPd5QgGRYjWRwpsbrPFLk9RXatAfUhZ61fDmNsojoFEWi4G2jAXUTmmfzj6xKhtsNuRrBz3u6wpnvGMJBj2Wow5kFxnbhzintTgtCmm7xrdPbZ94Jm73DUdr2R", + "change_public": + "xpub6EJKe85brGyCec7pypFbbV99LEVJuw2pTgxc4iL8EoYGLEemwwm9AuYmm79uAKTAA8Q64S2gAykQp9qCLh772VruomcTmEg9KbySgnjCvHv", + "addresses": [ + { + "address": + "addr1qyhgk74qvxwdyc07mty2x0qpej87gtk3j6kw84jrpl8n7aetc5u3yat356qfcuf4xhdlgezxswcg4glacl5jvg2lnh0qsylsq7", + "public": + "xpub6G2S4d9LSRCEMjgXk2387EH5d42ommPoAHd2erSP26iLeecCboGHLk5FMhfovbKxX9ai2eEUaPuqazjDfAgLYjchKQG8Lomo7eDm26Z8DRD", + "private": + "xprv3TD3n1p7f8NKZ91nFAppjEUgasCG1ZJu9uxkSh8qUQQrt3nKLiz1f7ayHioxyKHgM1HZcQiyaUKd48FjpRwXR8txgZwyWFRAv3FfZc2g3NtqpQvnBKU69dqmYaGQLcFXyrSeppTxCb15xcCLVHHe7iC" + }, + { + "address": + "addr1q9nyu9lgpqg8zfwtch2nqrjax8ngrpw6emstnyxzqryusk3tc5u3yat356qfcuf4xhdlgezxswcg4glacl5jvg2lnh0q29hd37", + "public": + "xpub6G2S4d9LSRCEPqpjvzXLJjqfDvjdG95FRdRBFTRJTrHk1TGKaeUnj8zUbHXxjUadXF9QxyFfSQjyXfkwKjyeL5JTrnMmGSMAbjrEebFn3oz", + "private": + "xprv3TD3n1p7f8NKZmJELwDtCfKrBQnBdEf9KbABqkKDg3jrNXu4N55SqmpP8gsd76m8fC1SMhybrxWVpW2q8eUj49aRTCVXve1Q76MaxrAovmqnATo4HQpQqKd48Aju7N2fzNexDvfrXpgC64dTZYFmEcF" + }, + { + "address": + "addr1qy4z7sr8drw9gwv77ne5vvevlwmcqv48m8n5c7ha8xtdm5ftc5u3yat356qfcuf4xhdlgezxswcg4glacl5jvg2lnh0q0mn6cx", + "public": + "xpub6G2S4d9LSRCERxix1Q3iYe9kv2LGMr9momFJxDFYd6S6EgVqkycXMYYvDvw9Tu9SpwT1XwunUn6GmFdniQrtnM1tskPm69bScC73F1mQbAm", + "private": + "xprv3TD3n1p7f8NKaPokWgkx9baiWSKs1gNhQhy4TqYejagpyPZPw7zbciXUvw14dHeytBpdHD48cefgoaVD1BiwAm8Yo3Lq6RJL4cgVk1X2hwfw7UANP1rzF3BWBvSNPz1aNC8U4qJbTz7AnxyvvGtSRB8" + }, + { + "address": + "addr1qyt4q02smyv0gl84ltll4ln9w2pmjqesds29thllurj6ecptc5u3yat356qfcuf4xhdlgezxswcg4glacl5jvg2lnh0q67hv5v", + "public": + "xpub6G2S4d9LSRCEVi7BBNrRoLTx5wzozAqL8rtWVALhbrJNs3bZU88mG35erA88XTZjogERWokrCZD4HAnoBjmG6PBuJwcRT4e2XpAQK1Dafew", + "private": + "xprv3TD3n1p7f8NKbWPBD2gSy8xDKdxFU1uvaSseY8UiWePr9xwNwFJ1CJhtk1YcZ5yTjwNjH1V3e3EzGPaeEqYfwUwsNCxuXy3pK4C3VjTfdKEFwrYYxW5AuKNFd17i2wC8dMquroFVsGFxxCvuFRjme6P" + }, + { + "address": + "addr1q8nlss85qs9d0vlxyltre7wrh2xsd6z9y3545l8j05eypsftc5u3yat356qfcuf4xhdlgezxswcg4glacl5jvg2lnh0qdclxe9", + "public": + "xpub6G2S4d9LSRCEZ3PCX6L9R4Vam3gGQQbU3hnXcjQcqife5DaWRAFYN1LSK66kYv7jzCNhJFrfXYcjPFhSGW9g2qQrEXvjQufG71w7AkgK5fT", + "private": + "xprv3TD3n1p7f8NKcVoFQiQfkwP4TFQYDJM9K5SoPyjmzMNmPTHeiFEActaFCa2eAYbTLarx6x2iiUjp1FWLRU9GGvmDvSQWxNNMCE46zoyAYKGs3ryJrjZcs2t9rxPnzLRwKJo2jxStMWjQL2a73nBtuwZ" + } + ] + }, + { + "private": + "xprv3SMDG1fFA5V6PojZFAbdExJ1kn5MAPwjTFo1QTg4STZZSJ9YJHYgPMKvfF13GbxH3yKXzfnvjykxygYfoSNbUwDPRNP2XrwCJfTUcS1Do2FBYF2c9YXDLSiE7TKC8rZENaJf4g29hNyGzkE7ERkHmuM", + "stacking_public": + "xpub6GJEk2u4nbm7xd4L8BtKQy2pzh6r71Y3iw2yzZj8XGPur2zNow2cb39rReUmAW3oWteSSSLmmfUJh6XNC1zMf7aLPb3xvBzQWNJg3jXXvET", + "stacking_private": + "xprv3THk62xEWq6bVRkXT4Lp6tuE7whr4nhnHLhXahKe5wppAHr8QWMMS4rbLnXvBvyZjE8srunaeEv85kCZ4TrMxYD7jNXkTifwzbEjdbvFbGXLPyb2kBg43QnB2BXhFRNkhcGrJ1X6TCaYKjXA4BEPXEM", + "account_private": + "xprv3SMDG1fFA5V6PojZFAbdExJ1kn5MAPwjTFo1QTg4STZZSJ9YJHYgPMKvfF13GbxH3yKXzfnvjykxygYfoSNbUwDPRNP2XrwCJfTUcS1Do2FBYF2c9YXDLSiE7TKC8rZENaJf4g29hNyGzkE7ERkHmuM", + "account_public": + "xpub6D8fiQb5jkmirKb1mkKb8kzbiKWPzashECveSFWnqXhdTFCbdte3rYnQnoBkNjK4H9WwfTrcjJ1Y3eE6Fqd9zmZZHQ12dbHP3pxSWTvw2v1", + "change_private": + "xprv3SVy2WtkNA1p6vVzgzZsPLbSoqs94DyUsCFnweLnvaMw47CYWzYEHoaH1KfJRVyepeJija8TZxCQi7VfVehqeqjFkAmtoAh9b4vjhbS3Z8NQjpw5jSEP1eN9Euup1nmZmDSPg3mdskkZM2nmYuvimrF", + "change_public": + "xpub6De91e9r4DrLuSKpBXGbF4aV7eHQzY8Ut2cAK6gmQZVDh8pqJGVsP8Rdzv4Dt8XApiqwwxvx8vmgDKyu6JoSx1twXC5XihhkaQhdLGNphPK", + "addresses": [ + { + "address": + "addr1q8a4xd55g2ezf4jrwnffphpwz0uewat6cr57wgamw57ryfyw2h5rxxhvx72scws2kj5zraaa95xt40shgzdm9f7t9ngs7wac7a", + "public": + "xpub6GYuw5JheZ8P217e1RJVGAn9L3ax9mwC2X8k4ij1B9569iRuUdJd3S3puNbcE4kAVBMXypCSDfJjGDmH3kVEMymdNhRciaBREZqW1j37R9U", + "private": + "xprv3TN6whjbri7B71xjGwKxic84JeeZ69UXSb74ANAi9gdfXXgsMw6Mq1rXZWim8n8Bs69Dmgi2rxx9eLDMfn2bwq6XxhLQSAL96GQdW3NcaViqi1h9TSPVQTBiVyU9tHvBbFsx5Ksjmw4VrN3aemZY1mn" + }, + { + "address": + "addr1qy44a4zd3p6ulke6ctdjfrtwtq9c6fugxjre0t26zawckuyw2h5rxxhvx72scws2kj5zraaa95xt40shgzdm9f7t9ngspp05mp", + "public": + "xpub6GYuw5JheZ8P3tT1VxjaNcXVsjJT67WK36gjeTbJWmb9HeYLf1ryCMXncjb7EtTmhKyR9WdX89okcznm48orXHaW7PkMEQXDZKDTPFTmj9C", + "private": + "xprv3TN6whjbri7B7aSWYetbXDCAfqvZc1ZAaXvXp6sXMwP6LR7KRcKjXXsKvAoB9sr19X6X1rwJGeufZGSs1rEdFKk9CBQyCutrhBfq2V567vkQQpHxvgshvL4EQK78Guh9WcF6Vd5V5yuUdtUY37UEQSK" + }, + { + "address": + "addr1q9pwn0tvalqarhv50hruxfjlzef825zcc6h6nl9dy2d0a45w2h5rxxhvx72scws2kj5zraaa95xt40shgzdm9f7t9ngsrpnyys", + "public": + "xpub6GYuw5JheZ8P7X4m9hDRBGBrChK188SM5guEg6mxazGKjTzM5mPu98EortSiHk6fBhjUHZ7W9tkQptyf8HY73ZHTFixgcnDk5FbnJ3SBFcn", + "private": + "xprv3TN6whjbri7B8f1M4eqC3nEFjbX9UvwjYgWxJSJJnW2PPv8DhVhRHa6yAz6WbLKvxRuhN7aSRfFuhSZrdgtQ5PKqYw6a8csSXhiLggyRtYWpTCxpq8uWhKkJnXtQh66araRD3Th9NrSEZFRdfivmbDH" + }, + { + "address": + "addr1q8h479tns77ll5ke8t2pp2tdewehwwt3s2xywa9rxsxyjyvw2h5rxxhvx72scws2kj5zraaa95xt40shgzdm9f7t9ngsxk2m92", + "public": + "xpub6GYuw5JheZ8P9q4vs8iywtr774KYGf4GXn522pDywbBQN8cv8btZWq5qf61dLjZgCsMEYdZYm1WS5ncXamVG14FBq4h6Z7hz22eigV1WkBi", + "private": + "xprv3TN6whjbri7B9LpAPhBjkg1Lha6ipX8FjxfbFBYZyvjze76BVtKH7AqgQqbREHZoqxgxznorCEhFHWdRqjoY8GhCm5EhY5F7MzjB764nY6SYvnL2pLRdhzySVmttGPUwVTFg8PeVuu5DFymbFzDTWdU" + }, + { + "address": + "addr1q824s7kch4q0hgzwufgfd7qyu7606ajj752r79hvxvhw8k5w2h5rxxhvx72scws2kj5zraaa95xt40shgzdm9f7t9ngspe5uw5", + "public": + "xpub6GYuw5JheZ8PBGjcYe299Rvtbzu3vdL3XCWfstR5bcVk1PZLqkSJMWoX5oSRzSdG7Hmp9x5SCiqoPcAKk8vqfbkm7f9hAkudjnz9Mg3AU1C", + "private": + "xprv3TN6whjbri7B9mfiCBUdkn5p4bfqknj4qgxCwtcVFfkZTBG2ScxWdiPApF9rk4dCwBxZPVCfRBctKK2mNAGETCERp2xnVwycE65SFGECyZGsBntGgGAqJw8yHMYpK6N1QvHs4sAXhH1jhjNryguy9zq" + } + ] + }, + { + "private": + "xprv3S7VMaMFBGCtz73J8QcTB2jLPkegfGUQ41roMXHZcx4BP9VMsXSapALUbpkrYxH2cynZmK5vF1iSjcquwHZFUZHPzZPdc6WJvewWrWn2J6anRLNBmGN12GEgtW7jdffKHwQHUPkCiGaLpo8WFkQoeSv", + "stacking_public": + "xpub6G45WkXbEmna2Pv7imPEwxADsQ6PJnVo2HMqMbMBRU71wsHUTUe8VPp5AWmuQTYjj7tGGciMXuPbZu6qbEEaDA4SFDch3xoJBDsYNkwVUkL", + "stacking_private": + "xprv3TDY8b4n7X2rAuVDof9pENr77cSCvS89Xt3CNY2YtUiDUsczLu1sjCafDcDYdVWyyWbj7oaVSCCt33iXoqKy7E7ijxgesDjYYanLLbsZow9rzirHc9DiUXYyDPhr6agBJ5PipUe84rFX9Fghh4v9Zjc", + "account_private": + "xprv3S7VMaMFBGCtz73J8QcTB2jLPkegfGUQ41roMXHZcx4BP9VMsXSapALUbpkrYxH2cynZmK5vF1iSjcquwHZFUZHPzZPdc6WJvewWrWn2J6anRLNBmGN12GEgtW7jdffKHwQHUPkCiGaLpo8WFkQoeSv", + "account_public": + "xpub6CLUTo2hUmh4EPBcbQhNSssuXsNe97sDdBpRjek3Y628fx8DZgRkdrcuooc1jfA9SvM4FmnUrSov4caVgxowTNtZm9BnFfjrQyo9wa6Mog2", + "change_private": + "xprv3StF6muiUknfZyKgkKAdpZqH7uB61A81rJ9AdtJcLRwjXSL8sQ4hrK9rh9oai7AbCGSana1DVowN2tGUdX2VZd1FGS4Q63wubKRcsMeZCDBhb3YoJakYXhg7a1D4PoiA6gX1mKUr1cnAsxNH8H98ES7", + "change_public": + "xpub6Ew8X3JkVs6rEhm9Z2m31stwMmJhp7KEhrSfdjQwq37HBaeAGxkmFfPg6yAnYUuibgDa4GzVYRccsbrKmqezgyrpkxjm3bWrhzktzywm8bn", + "addresses": [ + { + "address": + "addr1q9hkc0fjc4aqwwnevjs77hy3hvg2qpc4a4nyg6v7u5phnu6eqc38nht58qkdjgsd7pw5fwng3amr3dzjh9szzc850xfsdwat87", + "public": + "xpub6GzQwdJ3LwQrnFp543VCz713B9Y3FfoQyJW4t9vycMZuKPGeR45knah8x8c8evKY6sKf1zT9PMp1oVTdwATwQkv3nBn3EdPuCSpXDR52Shg", + "private": + "xprv3TVgJSgujHEpig4vS9qBNa6xjp6xNWMcZAYt76RgkszDhwD2bsB1sFhKbtjFt2Td3ZmcrtHA4fDDCg4QAJn8BNaVJgSYqyhaYN3SBWB5DcNWEaPncAGFY5YoK6ar1LEyEHzKVnT7fMxKX1oqYfjz7Ce" + }, + { + "address": + "addr1q8k5x7rgh9w2qs8xym4yrdadr0k8yc9stw22fuy9csjntnjeqc38nht58qkdjgsd7pw5fwng3amr3dzjh9szzc850xfsmnhc0t", + "public": + "xpub6GzQwdJ3LwQrp86xszoFa4saGiUQoHJndX6EFLsY6nVSxBR7BmgPxWDRcTdV1it5MLUeWyNjbX3JNoNXzvRuKu4Jav6LA69XVUtNsw3LrWY", + "private": + "xprv3TVgJSgujHEpjEEjiCk6EadqioQWDgk35LxGSJMNc74W4Uw462iNA6SU2V38NQWkbyGe5PiUgwfomr8NJiW77cj2kiNEz4ktF8CZcKCnErsau84gLNTKTGXJeJD8avCbmiesUWKTde511RYWF9TGfrB" + }, + { + "address": + "addr1qyftguv0x79y2y22saj52a465ly620ry9emls7frmfm0edzeqc38nht58qkdjgsd7pw5fwng3amr3dzjh9szzc850xfszru35g", + "public": + "xpub6GzQwdJ3LwQrtjQ9CLwXga4Wy2cuhBWYt6jJR9V8U6zMwnHjG5pFyVvwGxwCnk3uhuEWwNbFP9J1EjApNSu3RCY7a2J7tFUPaiunCaz3tBQ", + "private": + "xprv3TVgJSgujHEpkbe9FHrbwuXxPBCm6pbrp5pbF4AHWCU4Z9m6avuXLwdTQ1YeXSFv9C1BTbk1WvEW3C8EVzqem6pyGqYD6vp1Frs3xdvqsqGGxUhWeDWzzKTe2m9D8Q7mNmU7Dr6Zi33iatMVs7An45S" + }, + { + "address": + "addr1q8657fwa8r0angwfz93wvhs4e0m538az9sr34wv5eu0y6d6eqc38nht58qkdjgsd7pw5fwng3amr3dzjh9szzc850xfs8s5v7j", + "public": + "xpub6GzQwdJ3LwQrvhAABxu9JgELseH9a7W4q1wHe4mUiowe1yFXJSy12xubhe2Wyrp5SfZhqsWj9mg5vgi1EUGPyBaqfaDBaeHRHdWSFAFoi5w", + "private": + "xprv3TVgJSgujHEpmBSASE2C2DYeb2P4x3h7NW6azTYmgPoRHfbim8Murw6Xy6t7rjXcKjP8HJz29SPSio4W2SqLVB7GAke4hGf1a8XBiy6B3VWSa6rvWLXzkpQzFUPgUoKETaSL9jPexsB8Lztb14mc3ZV" + }, + { + "address": + "addr1q8ppjcs2d9g3ceq8m0pc50anrhnsfsa4cxgzz4v6elfkcjjeqc38nht58qkdjgsd7pw5fwng3amr3dzjh9szzc850xfsufnw3l", + "public": + "xpub6GzQwdJ3LwQryDPRCv3Zh5dNyHiuSjmp2QNZrUwsf1tfSpCQZbdmKrU7MYFHB6tYEm2oYf8sfDjs2WodgrrYJU1SKiNePv8EiycYaYxSAAo", + "private": + "xprv3TVgJSgujHEpmvsd8BSVyVQCgKQxruJL2GBY1BweqmNAQMLd1gpsP93NN2i7VWF3JMuFVrPFrcmVov91exysysKHDJstSkeyGmJdrfGfbQSSr8G8a2hHXCbWdhyeN8E3DbamPGSoApfjmtvZck1qdxL" + } + ] + }, + { + "private": + "xprv3RvNUqQCAQx6V8U2RTrCh1vb1smvY13rb2pbcUn9zjQWTDkFkcEGyEMqVscuWjxxjx4JWC6vM5SqUTgnRFLwYUa3aidSSGdPkYWoMdDcHfhHgMe1vBsWcitpdhd94NpKZD6XC2QEmgC4BtNB8a3JdeF", + "stacking_public": + "xpub6FXzbTGFvcR6sWqN7naKMV61dqaJmj9CkPMSooghSVy1W1PHeRZ2oyUaeuAYbLTM2jsieNKpTqfRwiysU6NVSYTCDN2yBHCug66XRRxWyrx", + "stacking_private": + "xprv3T4bnLPAFhHkLJC8UQayBUP7UDUVHw2gBFP3MSKS6nzpiPPstAJsMGVKRAgj7K2VWrhTaFzwuUrNwYMxxhiwE2dTpJG2ujryZhHByypGEEFHv1CsrSsabQsH6EMFNd5SkVUNznHcAe9LCEkaYxLmK4S", + "account_private": + "xprv3RvNUqQCAQx6V8U2RTrCh1vb1smvY13rb2pbcUn9zjQWTDkFkcEGyEMqVscuWjxxjx4JWC6vM5SqUTgnRFLwYUa3aidSSGdPkYWoMdDcHfhHgMe1vBsWcitpdhd94NpKZD6XC2QEmgC4BtNB8a3JdeF", + "account_public": + "xpub6Bh3cwqTkC3Zs9kMrG7G51wKo9Pab2Sriiv65hVnFoKpzwpV79ztGntVcXc4thBbsvAZLYeQgdYDvDavaJtcMgci72Gt8vUtgmXVraKDYoY", + "change_private": + "xprv3SdN43M7AD6LsZPe9ymsbDnRXPeq85ZqUugBpckX91hTdgsxP4VihEiyTSK5oarBrUq5vqYFDeefNgzaGTgquuADggPtZZQwLHrfQhxLt3dSNdWQ3ryq9nFz4fSqXXgDF67TkZm276Af7jstL93BR9R", + "change_public": + "xpub6E53F44x3ipe9p5SfYNeDjUS1Zm4fW2biB91GYU5YELKf6DeLatDKiyYnsoSm1LEBiA2LSTRLwFDvRemKK18ypdGWDKLfmjmtZEFWrBXQxV", + "addresses": [ + { + "address": + "addr1qyerzkj3fq90gt3e0dfyy68sphcm8en6qst8dshms3tv3maxtcuj77mta5429kg5hf24v6p8450jj6slulk20r2ell3s22kvjs", + "public": + "xpub6Gx855ekZF2hMJNwUfrA49zSCVUJ98kb5X3x5quYirjtbB6vMJZSYJUqjmpUzys5JvhDRuZ3ZFoVYTautPKurYJPCzbPzBPx2KqL4uEmPZP", + "private": + "xprv3TUzq7zxNt5HJ7CrDnsHc2S1jJUECwisY9geUxCACEQ6Mk5e4TfsUobMYBajKVpdh17cmFQPmigcbVJNY6uBmbihcoaQuhjkMGxGjfaNigaa9Qk7r4V2N4A24VuE1oMvH5YNgtuBRmgRvcJ8TXVUtuy" + }, + { + "address": + "addr1q8yr4fljhd2u4vr83427y0auaezvk9rh0awd2d5xf4qq4r9xtcuj77mta5429kg5hf24v6p8450jj6slulk20r2ell3s7fhl5n", + "public": + "xpub6Gx855ekZF2hN6ZE6f162KBJUKQLpLCV9XoXFbnwxyZGRBXxgqKhKZa8WGSCGM6D5MPq25CrArQfTsgAUDiBDSTifTPEzdYixzFFNh1Bwvk", + "private": + "xprv3TUzq7zxNt5HJLvU2NVHueDe84bxGN3R97ec8MoAWiVEUtjVVcHSmB9yUCXDLHrUkZoFnmFz2ZkX3TKEgMu9fQ9fJNhkRkHXpjEVMsufNSScSGtPho36TeXCFfGtR79sjondkSz7QhccY5HSX7gHjH4" + }, + { + "address": + "addr1qx6q8tac8c4njmw36vl5ev592yx033heu4cd3a3uqwfc0k4xtcuj77mta5429kg5hf24v6p8450jj6slulk20r2ell3shjvrfj", + "public": + "xpub6Gx855ekZF2hSQniA6CQSHUC8Xp4FHNB9Jd3gGqbYLrHmxPwDUiGnFnDWL6RyXg2sCY34BXkRWtRBsten6ZtVQStLFTCFHz6tsL98hyEXV3", + "private": + "xprv3TUzq7zxNt5HKdFsXbSP1y6poEPZvhF6xHjYvt5GXeiKwxnXbzUeJNUjonykB7KqZ5DxViELKNznZoHMZ6obCemFFzYsMNEWWp8gEs7sEKSz6Gjhj69wrQvFKrU7QDTysjz3NQDkNWieqmpaYWCjkPs" + }, + { + "address": + "addr1q8s99n45my2welyk6vy962a2uywgpe86yzkf668uk7ukll9xtcuj77mta5429kg5hf24v6p8450jj6slulk20r2ell3sasvk4g", + "public": + "xpub6Gx855ekZF2hVAh8C9n6pVNboqze6wPa3Z7Jgx1UQ4jhrdBJM6cF1zrqq7iDZt8FTCQmSTKBoq7YrsUP5HeeLcdp4r9rMvbmia5B6hHRTHy", + "private": + "xprv3TUzq7zxNt5HLSkwy7kqji89W4omtJGQdkMFyW2YpUT4b84rwNiRLmb6Ahaew3Bo6tVj7reoLBFoTi8dAcreTyxq41Czjtkxyt33e6PDfXVWNQHaUgVJT5DLFX76dYwVLsv9y5qpPnUEirzYd66B9ZQ" + }, + { + "address": + "addr1q88fgxjfqdwantpmywxwat704m96tzqrvj8rvxv6rjt9yaaxtcuj77mta5429kg5hf24v6p8450jj6slulk20r2ell3sqfhvcc", + "public": + "xpub6Gx855ekZF2hXoY8NsVbZ4nPYKeA5A8WYeyLRRdR7M3VTo86wopAGoxjGE1Yud6nqRSw9FqiVNhrtp2a9cj5N9BFCD5H3hntfqXxH3tHm5x", + "private": + "xprv3TUzq7zxNt5HMEAQRA3yHx4kqkyG2nWLjYADHXEeUqBcf1R3e1zVpcaHfDcd7H5VNCnQu6PE7exMiFFRbbUKaCbhvNDiwkRJ6YaABXhouY7knzTfjJLfyRoc3UtFwKda3Bv8hVMnnLQpTyxa1XVAoDr" + } + ] + }, + { + "private": + "xprv3RzwZwgec88J5KpvkyHv3KaiJ8tTTsxUqRW6ocgFk8AnucodX57f1p4X1V18X3NkvV3aB8WvkhasQHwuVik1W3gxHBrFCG1BjiWxkexGwpJRDZdNoRKqx5zHHC8SxpNJt2dZAhW7xSp4Z64Pjf1mdjN", + "stacking_public": + "xpub6H3rKLhn6a6fKPSTPKjpg78afT2SkuoFV1xqAFt9WW4vhaU75zecEsBt1bMho1WYwrWbGFRXSfiAivaFm6Q3Cu6v4aYKHGo6wJ9uk5ZGXB4", + "stacking_private": + "xprv3TWhXaqnFmM2Ebv5oVSNMvUahbvyShr26KWnQRJQjpBHPidZnTZKmTpUc1m9jhtHL1PKECDauz9cR7a3y2b3mmjZoofB79VdBHHZBM1fjdhG8293EoiQ3WFyQN5p3kRQiZ1EKW1ya2VL5uGpL2HuBNr", + "account_private": + "xprv3RzwZwgec88J5KpvkyHv3KaiJ8tTTsxUqRW6ocgFk8AnucodX57f1p4X1V18X3NkvV3aB8WvkhasQHwuVik1W3gxHBrFCG1BjiWxkexGwpJRDZdNoRKqx5zHHC8SxpNJt2dZAhW7xSp4Z64Pjf1mdjN", + "account_public": + "xpub6BxRzB5fnNj3Qk8jZ2P3Ksoq2KqTTB5kYBpJHYJhX6tSYjBHnpzjX4z9gbbcRcVCf3ucuVee5UfxMLjD3C69NJHVhMxiP6ctkMV7rzeHqu3", + "change_private": + "xprv3SUcroKHkwGZ87KMSHTKi7VpqCpi9jABjhKVZ31cVzvbKcdmXaJfZKWC8oUNVywCWH5Dk8pEfLpbuEgUFmdzesTgDwXHfQnZKh4p7LK675xgTtnd7tCaVnrzbkq9GbFfZgMqGN17fpSv9qXG1PxpEaC", + "change_public": + "xpub6DZbsnmum979fyJiWkUZxRv6bWMF5WY1v6NPqYFHEYWTMq6ay2rD5ecCCfpCc8DrDi6bJudTiAmsx6bnQd8nzHThjM6avE4m3oCer39M1Mv", + "addresses": [ + { + "address": + "addr1qx9e9y5f7suhcwh66sy4y6qp652wp8xlz72a6pgryfxfnjscga29x5g4a7eadt437dgecvyzt0mln29tfcjudan6m0pq3um5s8", + "public": + "xpub6GN46kHzQnjUABT8du8iN9rra9nfE37W4AePPVjD8WV3kvXKSqZtUGBdNQRAbnCUuE59cdZh7T4sNedG1Wad8AmEVGKfBuCjeKTHc59juVR", + "private": + "xprv3TJsqvqhbApYo1r4X3tGyd2rhwgrB7fHX7DFaR64EQT9ZpcVqSJ4tQGbFicHBzV8YNAippNbZMSDC9tYpjzvwuiogez6Gaipr34yS949caUj3qSMsKnL2UYmvWRf3G5hC2zWSn8SVjfQY4pnwH2tGno" + }, + { + "address": + "addr1q8gcy9cknw6hgjrr98hdarh9fz2rj0ky2arx8wf6pj0jvjqcga29x5g4a7eadt437dgecvyzt0mln29tfcjudan6m0pqk9dn87", + "public": + "xpub6GN46kHzQnjUDHosjCRZEHE9d6dhEN4wF6yR8cANRjkaAFAdyQCsq1E46vP8LnJSs86mrRamAsp63MdFxPgvVm9UsX8aRYPJhDJMWrNpyqy", + "private": + "xprv3TJsqvqhbApYowRYvYYcqKShNwgZVfUYAww2xz6qnsr4Ey4Pnje7yK3JEAVjCXJPQPKxqsZzoLQ83E1kscwbLSL3RGc3SAheX6X8jK2aa6UUSeMjLmJk9jku7gbtJ8YrBHG9bkJPyqK2r7vnHD3QMcN" + }, + { + "address": + "addr1qyz2uhua2fmqcgsqzza4wgtjcw7vqmt29nhvd74ju0t4krqcga29x5g4a7eadt437dgecvyzt0mln29tfcjudan6m0pqw59gx8", + "public": + "xpub6GN46kHzQnjUGYFxpmkDHs9ZY2mUSCB8zG38P7TbiEjkB8iwSADJaBhv6G9Y5Fcn2HHTWvNuPxe6q91ER2unPwywomJwhLz4sqcqwspqMTe", + "private": + "xprv3TJsqvqhbApYpuQTxG8NtnrQuc5N9HxTXVS5cywc9hSYmLT62sNYheKX3fwWec4Y6Xt3mDWeRoLQZTbZuvCMkorrrFWDqGYJ3Mu4CkA5d7UA84Ck7L7JYiDtfkwedAQQsvZBd4sVnCw2vPHjN1heJ2m" + }, + { + "address": + "addr1qy57hd6t9uham068ry8yx2448txct4j0aganexzq0s440rqcga29x5g4a7eadt437dgecvyzt0mln29tfcjudan6m0pqmqn7uh", + "public": + "xpub6GN46kHzQnjUJ2GnYYAjbPZXXCYSAvcXhoMa2VVaGWDLeZ5rTRfSMAy4TzL85vHoTEJwvU21eEb6bziKenBPhmLKGhKwmxBS2c26jA1GvNp", + "private": + "xprv3TJsqvqhbApYqLxTNLK1Woycr1qf2TWXQLNNuC2msmMmbVaxXEGRJBMnNPt4KzDgURDe46qHpeChtG6dkMp2T7BKBUBSSTpcp38x59MPeZrtG6XM1RWerLoH5YWLgFQXEPtwQv3FXaSwAZu7GebbGL8" + }, + { + "address": + "addr1q92p9f2daqev5yzc8w7una76rwx64cvfs0zv6lmquz7w7kgcga29x5g4a7eadt437dgecvyzt0mln29tfcjudan6m0pqmpp3sm", + "public": + "xpub6GN46kHzQnjULDo9aSRTovnMYbFKR7ZNwmRZZZcnK6R9NtjzhBDmURVLWcvkTmRockeuMYSvyKMtxKiMUsXjN5hqbEpQUCJ9ZVrpWf57apQ", + "private": + "xprv3TJsqvqhbApYqzqdjHsVfgi3T3bcapRFNbbpAqFqHurtGS6K9v2VnKAdxbkQbMdsoF81k9FAsNJRKMZe4iAS1MQVNtKVw2iMFZy5AmyBPd6QopUJFssDN8ZH115ezbBkg7E3oxzzWaqbZKqTMfvs5Si" + } + ] + }, + { + "private": + "xprv3S1XnjcBAAWyRocdcvHKYPYZ8aSjDwqw9pNitSFtWgiUQ4KM67WFBGuv2KL6tPRpyQdiwpNwCnJHgnx7tYxNcfnWmeKS9Y913NrK5ikF3rtCBnbxarfUcZdgEovgdLerGgCS5RcCWVFsz4dueETZhWF", + "stacking_public": + "xpub6Gmo67MuGwYPjBKognZxwJxgfMbnopxTVT2sHUNtQ5m5n1TvFJcbnjnXwT4Scuci1UmxcALFhW64B1yt9FU23Uv8LktCAmPEiZqNRqrEMbu", + "stacking_private": + "xprv3TRvtu1ikTFnvQXhgP1n6M7hiK6PCSDj6QNBaZQ5CzELXvdBmkzcmW352erc7YDLwfwwft9BodsSNozDyajqXkVUedQnDBZ5kPmbLfRTUUEmZFuKNxCa8P19HFwMu6ZZaHm9ADbavCEV7tjy1Y6JKpk", + "account_private": + "xprv3S1XnjcBAAWyRocdcvHKYPYZ8aSjDwqw9pNitSFtWgiUQ4KM67WFBGuv2KL6tPRpyQdiwpNwCnJHgnx7tYxNcfnWmeKS9Y913NrK5ikF3rtCBnbxarfUcZdgEovgdLerGgCS5RcCWVFsz4dueETZhWF", + "account_public": + "xpub6BzRBaZ53ZD12w25hp6NTdz7ymuFfjtod1K3YHKUPA5W73WFVuuvGK5dGvKhCvCVJt7sgfNDkjddv1rNvV6SuPXrhgakyvxdPngti3j6adj", + "change_private": + "xprv3Sh3MuwaHiqkVRurGBMDswZsak2RwxoLidiuA1rV8c4TGrksEzdikvsJJ7tjjnDzFkGD9Q1G3LTkk1TGrKU1AYo37ErEKjzFKN83o8CqpDMbveUaXyxzRteXEdCbw7kdqZsfnSY1N7aeN73ogtUWHbh", + "change_public": + "xpub6EHRJVHJ74EHpWmfeTFdntWn86fVvFQVCY2kFDgQVJ8jNjzbN188g3QbW3HjpMdmXAX6KcyAFHhUUkZPZPFMZA4H9GCSLsWKMTb5yCSztwb", + "addresses": [ + { + "address": + "addr1q8auh8kedtsmdymldjzl639qecp5lx5cyzmdve8dwlu2ffyuv0a709c93hfg0cyunv9gy6enu47zzkm34wf7cfsz89kqch96mn", + "public": + "xpub6GV6EQGhEMt8xaq25VY2sBXcNKRdadM1qxwUQzjxEYMfdcx9beJR294a2u2WhktgZNb4LvuSsxadY1efVy5QMMKioV3GGphsLLQQFvb4WDU", + "private": + "xprv3TLy5sxUQFUQzH2iuixyZf2AE4r8TvN32wJJZdperXyNLpDEbo9dEsquvwAYU3m6hQHRkxT1me4vGYbh7rJVd5doa9eWbaKeChqQFmytenUL1YxATQZrDjtvJoc7xWB9nhozXUhzruGMHkh3RdbvYAy" + }, + { + "address": + "addr1q95s8f6njd438dj2s9g5tl563mved86fz32sq3k8hxcgdfyuv0a709c93hfg0cyunv9gy6enu47zzkm34wf7cfsz89kqdedd8e", + "public": + "xpub6GV6EQGhEMt8yzjTuVZQCNTB7h8nwXDx8QwzjseaHzqL4tqcQiYYrBxt2PuU6cfYp66J4vkvi6ZiR3vxEqEdNZVYUZKC8RbFttwcYLYqovu", + "private": + "xprv3TLy5sxUQFUQzhMuBDPZEiorNR9USCMJmhtdmwdZXDTt2iWAuuAKPNJ15GrWJG96NkEWVPziitW3BwuYZJUVA3LzGXpVi3HB7kqKTAeBXs7jE9EugZZDSgBgemLeQCcLq7976HVHHmYLC3xEYNmaaLS" + }, + { + "address": + "addr1qxcadcqc7wm4d7kndnrt6nwkmu9szz592fve0ujh2sfzlmuuv0a709c93hfg0cyunv9gy6enu47zzkm34wf7cfsz89kq67j74q", + "public": + "xpub6GV6EQGhEMt93k6TxFqR9a4n4D8mGKeEUaWsWTXewimwyBj46qd1NnaJqEiZJMM1kzc1gf2vVxFPoR1BhU87gkdSFdYGdg11G2jdf3JTj2t", + "private": + "xprv3TLy5sxUQFUR1ovxk7VeZT7SZ8aabUdjAuCEWxtnh3gpJvUyNwcWGQdVuVNuX7LnCvjJevEcTmnbmfSeEQSjsTvfeGMLagixupRbeHY2hCFdAgbeQL7zpApssLTNDyxqh8W1izuKhF4uUSnRahD5AvR" + }, + { + "address": + "addr1q8cs64ykranl4q5z6rtmnyn5dksxstftpp94wqgg4tyhemvuv0a709c93hfg0cyunv9gy6enu47zzkm34wf7cfsz89kqy6venp", + "public": + "xpub6GV6EQGhEMt96XS7R7gdUYzmdmQCsyyLEZQ1qqYcPwFXKMMGHzrnqUHXrjhTyypAA7sTw827LqU4MM4CxAiWeaUierEMWAPnBtSkT8UZHJb", + "private": + "xprv3TLy5sxUQFUR2drmEGwu1UytGUhEhrUkfNuWPhCz9YLCoN7zH181eC4c6AZbaGjvGWgxbCXZ5zU56jiUU32MidnA8g1bwHvVW5kZdJ2ZG7EhTwAWUHMR5Bc1QTSiVPBHLbSWhif6DF5MzdECoAbF8jH" + }, + { + "address": + "addr1q9axntqmgpmtsp4ynkzl80qsjzl9zuzk0cjjx8hepxwx9u5uv0a709c93hfg0cyunv9gy6enu47zzkm34wf7cfsz89kqc4356n", + "public": + "xpub6GV6EQGhEMt993NJwrpWaHcYDfT7BXCgZ1wgLK1fp24obrgfyu79hLzy3YDoWFSZFF82ZNYpaJrdjvVUZuCFe4roUALVR91acSX5J2t763c", + "private": + "xprv3TLy5sxUQFUR3PD9yn7sbCKu4eqaGxTh4PctGSic3KSHupSgpaWEtwzGUomiqw3Cjbq4wP7cd9kiJDD9FcZk6hDJ8znHzguxyiQDcSwPgdnqxhJt2GazUUnkHg1PTtovrTfubuCGJG4P69gLrVF7nEz" + } + ] + }, + { + "private": + "xprv3S12aBHQmwf6gJ33gpMmiK1pfdzNHucX8z5uC26D3Q7cKy4Bbimn9Hz6zCNEBYYuY9XhuzQpX6yDsFpUzvzdfXk8scHnQzJ2yggJtP3qAAfiPmp7d5Rod1vESWCBmff3sD2QuEAd9Y7u9bSjc29PUsF", + "stacking_public": + "xpub6G867gmodgKKk2rL2FgM7Z9Vnqx4LiGivUJFp14iNfiTpXf29fgQihkTHdccCnEFyLKS53BorpN6WVBJf7Zozr1foAAS4QuUQNZj4JqV9kf", + "stacking_private": + "xprv3TEjEEU9sQhcrAkBDT1fLceTSSLEob5aC8hQ5kDFsfATEb5hn6p5CfbM38qP5DrR3NUWnZ9wvhXchx7ZT8fd8cHpV5M8TyezFLxEjy35BSwGaQvdMSSmPD3UdKDrb1tXpiZqEudKGNGp5FD9q32noJX", + "account_private": + "xprv3S12aBHQmwf6gJ33gpMmiK1pfdzNHucX8z5uC26D3Q7cKy4Bbimn9Hz6zCNEBYYuY9XhuzQpX6yDsFpUzvzdfXk8scHnQzJ2yggJtP3qAAfiPmp7d5Rod1vESWCBmff3sD2QuEAd9Y7u9bSjc29PUsF", + "account_public": + "xpub6BxiqC2aXaVJoyFKUi3PELm29nFEEY2AS2WXu4JPvRcLHkCbPM11wsz35NeJ1gcZS4xTTBLSdHsprcpBPvXuG77gomUZbHnXZfzAx2F85mv", + "change_private": + "xprv3SqoCmD9osqNLdgZsUY9TGVC2F4tPT5h1f7msaRBSDnGnVx7i6w8PFAjQFbbnW8YeRFMa3tnZu2hbstnYeaxrwKCsyihsXVnHesqR2z1xPLJgPsG1APk6fjKpNz28ueBN94uS1cyG6RFtv1iWdcJqPi", + "change_public": + "xpub6EntrMGtFyPsLEVhwbt2ANJDPvG8Yd31YYB8TovFoL8X9x7SXnnDbZGKC4iPqoKoZPcuXFfsyoXyfhz2d8guhqYjW84Xy5Pe2x3Nom8QQ3g", + "addresses": [ + { + "address": + "addr1q9c7h0s5dhmtfy3wqj43fav5wy24cktflgwqndsw9sg8lrywgvlzeewu42xgwrhy62hexnsqvxgz5tac6vx5y5y2mnxs5n0ll8", + "public": + "xpub6H2u16JTLnZ1QiuttzPj971d2mdRTJgqFQ2MJQtCGH8M6fL4GzeufrtRNrkRvJvzpK5AcH3jX2HDizJoEAW5ifVdtmnm4553peoD1MAZVyT", + "private": + "xprv3TWR6Y1YzqE1brDdcLUYDd1Xinb7Jinqrk1NvkNWoUgQUW9N9YxwsY3iHKQipLoxeX7M3SHziSHjF8qKiL8CdQZSgZdbAFTeEeTG9qwWoUDqykADkeYtGEfUdLrY6gvhHkkQE5CZDGVHmuQruTbp3ur" + }, + { + "address": + "addr1qyelg2wxz7j8f56w5yp8fqxuf73c2vnk7xt4pjrg2xe46qywgvlzeewu42xgwrhy62hexnsqvxgz5tac6vx5y5y2mnxscpq26v", + "public": + "xpub6H2u16JTLnZ1Ujhq7boTj1KE9srn65avqZDzwsPJ4JPrRTQPqt57AN6f13zRLsBYUFRSs9Kpit4zpakCpEoBLF3qakzYRR2nAbGi3Zq9oWA", + "private": + "xprv3TWR6Y1YzqE1d3NYXignP9ZqKvjAE7n8YRBZEni3TigG26JRW6yttdromAhgLDfJ1iQaUHrps3dbLgx9qLRsLEUnkAyyjCZTV9vDvzymbg5setJmUAXYAbAd4h1QQEzBabxy1Rubfw53WhCYd2wHPnH" + }, + { + "address": + "addr1qxfx2fj2nea39nqz99n0x9d0nvd9drxd98czx9uyle4r4j5wgvlzeewu42xgwrhy62hexnsqvxgz5tac6vx5y5y2mnxscpdnrh", + "public": + "xpub6H2u16JTLnZ1W3GwCz14TDud2wHNpz7umQ43ZpCMc6R5A4QEdvVaxvsH6BxCu7vWpRJnKWJcEryTNh3cHH5W5YGdC4bg4mfvZTAw4RD4iao", + "private": + "xprv3TWR6Y1YzqE1dRpbfwndS9Wd1iXrKHrpKDWR6VpaVqrh7MEZP26c85ArZKETZeGRF2V1hb2mESAnQbyP7Viz7rqXq3tDU7LWu9fMqEyf6UVgS4NiYiUhxnfJgSxrEKuQovXEdfNkn8kXxXGnxPJdEik" + }, + { + "address": + "addr1qyjjd325pwtq7skzyk3dwnsqwehzm7yrsmrkegwfwfu2qjvwgvlzeewu42xgwrhy62hexnsqvxgz5tac6vx5y5y2mnxszt4tyz", + "public": + "xpub6H2u16JTLnZ1YE2AwNef3uFqwxaZ6Loc6Q1ehnM5ANyLYzUhn7WbBFt1kkwu9h3E6bkmU3jNLYKtQeE1DV3PrChiuUkmCJZaK3ThxQLN4Z4", + "private": + "xprv3TWR6Y1YzqE1e5UNXqkhq998TDBMYE5xW3txd5wuQyQx3Sbr2JT8RREHXpmCPzZouh3pDPKkj8WPzMjnExUBZBLYen78bF5mektiRyL6BCeXT1vTqG2jrQVh9DcbjNF68LAudAp9eYBqhbiZGunGekH" + }, + { + "address": + "addr1qy94v79exrt8qyy277uk3d5hxwa8vfhrvhfhvqa5zvuvj9ywgvlzeewu42xgwrhy62hexnsqvxgz5tac6vx5y5y2mnxs3msyzj", + "public": + "xpub6H2u16JTLnZ1bDFzLcvzGaPm6yjQc2pESRUkX3GymPE65W71Ni9Bur2PYZ7HLV7Kx8phJqzdsRJpKqxnkwgAH7qkutTztCPT7rp93QHVT2B", + "private": + "xprv3TWR6Y1YzqE1exwCPmrPoa3EX7CVGZ15HP3n4KpUn558ZSrnzxwvCZXsHKFGwSn9z7gpxN7pDLGqshhLNofAvnEFj8qqxZtJ1BrSJ6udx1QX5CsWxgzA48ihgiS7pGfAgof5s2FTwLxRwtqMDK3H57Y" + } + ] + }, + { + "private": + "xprv3STrGM5zpPjR35Gpe99bk8x1itkPwxuWyL5Tig7x4MrjYv6sRx9hYmErmjCt7SKshZDuwrd7SDnFwXtH7G4oEDfkMzv1jeNFUKnf22bydzJKGSUaG5zvaP19tofKwNai7oPdkj1CAdPpo9dseTF1YTs", + "stacking_public": + "xpub6GMek3ptxkvxbzfhwmHjPcVP16rfrnK3iTff7VwTYZMBF6HXa4M9G3MsbRMs93MS5aR2iJgCuxgHBhBUQraja826VXMU71Gun2nK4U5A32Q", + "stacking_private": + "xprv3TJkuVwcGqodPkSUZtZKyRVgjKBUHD9CT2mG2Sf5ZeeCVL5hY22LCBbxaMsidMpsbu2YKMJR6QS4uxbXraUekFgtmeDjZmGnmiyHs2mtCxky1fu1QBNBqPLLpwhDiu2NuNhVx7pc47Yx5KJZGqRknDR", + "account_private": + "xprv3STrGM5zpPjR35Gpe99bk8x1itkPwxuWyL5Tig7x4MrjYv6sRx9hYmErmjCt7SKshZDuwrd7SDnFwXtH7G4oEDfkMzv1jeNFUKnf22bydzJKGSUaG5zvaP19tofKwNai7oPdkj1CAdPpo9dseTF1YTs", + "account_public": + "xpub6DX1m1s5L5msAv4HBa7Zc5JUX7hhhJyT6z1CqNXRhjo6D2dJis88LuN1xGQkQMJeJ8Kq3Bmz76zTDVBpEqf1AXsbnrCL3keVbNJa8vQmZGw", + "change_private": + "xprv3SYyUVVys5vAQc55bcJqVPP8vxX2bsMvbkLsvDBopRECW2VX8BDxwURZgu7QYh18ZVQq7Sc4QqXEeJwk81oyhtw2ny7AF2A7kffmyRoYV2PK76tK6gzd4xBy8tyTCudajTFttK5G2PzdazBjVZVskn6", + "change_public": + "xpub6DpGFnU36kC1x35JMeoh9RZPrL2ghQpxu5YdaKbKkZLCvX6NsZAyMd4b4qUwQyniavuphqpNsQcNEuWa3oEFUozRk8Q9tgvZ4LKJQuPBe68", + "addresses": [ + { + "address": + "addr1qxwyluzcuwsmkgg5jqeqecalq8vgs72tdmzjwua20jm06fj0srrexf2vg0hv9tw3qftfq3jvdl5aw2wm0tzumwytkl2qxu96jj", + "public": + "xpub6GogtMzi1cPpKcPfZiva5By9TxD32vPWsR1tbQHo4YBZbnNABkeMgthqZuBQrYtQYZtRsgQWHujUufgfB1gyg3F4rbGbDnv4ge1MGCrFG85", + "private": + "xprv3TSVWfSqV6XRy1Ne6ToiScrcmhSRDeZSjP18jedyaqumMMJTvsF5Dsw1eRTgjm44RKXJxGJjeD3bcyuM6d4qCq8J8Nm8QfzixYfuRdXJbuSZ516ouvKAhJrpPiNZLe5NQVL9DSWiz3E2AwjQCMwkfJQ" + }, + { + "address": + "addr1qxhqrglky8en86wlg7zyx7nkz92vvjjpkf5a07dyctwqskz0srrexf2vg0hv9tw3qftfq3jvdl5aw2wm0tzumwytkl2qrkg47w", + "public": + "xpub6GogtMzi1cPpQQCw8A1qjXEGuRUNNofgCCf4GhHyG7iknQ2cWC3TC5j14cDS5hZJTYSqQxKjeQGgQNh7UvbmFh1i7bSymJ7T3gNuJsE8adC", + "private": + "xprv3TSVWfSqV6XRzRuHF6GYmWwiHkGc846d9MeRQz2sKNCWj2V2jVVJHuCaK8XXHZt6GzZrzsTBW5y5rv49p7zmFEsLURsaeTWRfHDMk9AqMpkEn5nnyDkWXg8SRd2D8qisXfaGoCiYa5mwYvzaEPz9PsR" + }, + { + "address": + "addr1q8d9kkr9pygnazljx3gl3ly9zdjc8tkhu955mmt5zlalcs20srrexf2vg0hv9tw3qftfq3jvdl5aw2wm0tzumwytkl2qs0q5wh", + "public": + "xpub6GogtMzi1cPpQwhaQZgzSm1sN2sZUKUsjfr9EoUhgybQpMk28eze6yqfNbofTULFM9au9nHvXGBcx27rAT78fSLXYRiaLMyLjYC78MN9bYi", + "private": + "xprv3TSVWfSqV6XRzbFuZpTbHFhcMDuPJEpaRD4jVr6v6fQZih7vhcqS1BxswcgK72S1DBbgYEFEnAUG5Sf78cqvYuGLQVVwMfR7DVkEZeR3dGhFEUkCJTauKu3dUrndZ5W6nrjgHPPkJboDomwLK9YXGDV" + }, + { + "address": + "addr1qyr5d3svc07n4vplmmvujphk4j287fqhhuxezj64na29sx20srrexf2vg0hv9tw3qftfq3jvdl5aw2wm0tzumwytkl2qs69ssc", + "public": + "xpub6GogtMzi1cPpT9XA3wSV51zHgFo6cB4wx3qAYUfdifdtbGfwduHvkq1ajV2ZGWdx4NZAfq2ckYdk6h8M95FweewE7dY4XXmCCe3TgiE57Uw", + "private": + "xprv3TSVWfSqV6XS1FECaTKnwmfC58jPiiGWzejSEpsxUB9r6i8z2HSMZ6HpC5cmmaTEfz1AKoNrWGb7RDVFHmEnfTGi44sbvjxuz8S2N8Go5yDnJAn6sqRQ1A3XccTytpKCkS3HxkJ3zJ57t2SvetFwFQR" + }, + { + "address": + "addr1q9czjjjaz3eh5w2gtrmx0vws8ljfn660lhylyfcn6ygs6aj0srrexf2vg0hv9tw3qftfq3jvdl5aw2wm0tzumwytkl2qc9p8lu", + "public": + "xpub6GogtMzi1cPpX2fjKQLtX9NrX5xU7ZYzV46tSUrEgh3CiJq9ccC56vasYmtxMKFiEATixrjLEqLnYUAsM12RB1FPX8mJqwtixrv7wHAg8jy", + "private": + "xprv3TSVWfSqV6XS2Q7QZYrmUPMdCYz6MHbkkhxqTBrNedsd8Jy7ietuzAJkT9R8ckAD377osBp1ygFwkFaySFCmpQCvbEn2GuV4ptmvk6CT5zgL4o2kzc7qWECrrimuxdowgrg2C9EPRk8Ms3ioGheNZmU" + } + ] + }, + { + "private": + "xprv3S84YxgWjaLdUsEVtJThRWkVgp63kpsbM5xstzAX4kxzwSfR1vcHpYWMjTphvZtVqpBaUct4XGZBBbxt91Lg2ByuPE5NA4EUSSPsdxjMHg8iLdquMjwfQaqJXe8ZFXAxmKj6mbSg3Co7A2RADjZ551G", + "stacking_public": + "xpub6HArsQuVEyyyfxyDnfVpbEiB9dzVFfYar82dAsxLEAVyqnkAgqSdsn3fxSCEKJBFqNCYrhMR3NT5bUJq8G8ivF8eeha7jYx7VB7qV8svxbb", + "stacking_private": + "xprv3TYnJL2nenmWD5HPBj6P7gDfY2jmVZ9Adv6q4PvLNNB7WeCKW6fmnJNffmNoMt3MSdqqR9TEyv8dxFBhTaoQuLcr9kdfSW77S9bjSc9x8dRnjUBiHhNaTrnBsV8qH7JvKmpMGLUfL9jjfx2qiMoN5Dg", + "account_private": + "xprv3S84YxgWjaLdUsEVtJThRWkVgp63kpsbM5xstzAX4kxzwSfR1vcHpYWMjTphvZtVqpBaUct4XGZBBbxt91Lg2ByuPE5NA4EUSSPsdxjMHg8iLdquMjwfQaqJXe8ZFXAxmKj6mbSg3Co7A2RADjZ551G", + "account_public": + "xpub6CNQDDcMg1PJaj6pPazP2sh62oxHcwCK7FfK442iKnTY9DR14YCwARGxEGK1u92cmmWotiTJ3g1wVq2RyLFdfVfopZiG1khHRhvD6QCD7Lh", + "change_private": + "xprv3StGQvCsER6qjzotoPL6GYy4LDAq8uuRRraE5UDfCKiQFdmq8EPVRGab6pG97fFh1FMgLexkUFUU2rF5rVe3on66EfWudbmYnmQ88kkfDcJVt1ujEejZAccXKBzBK6A15owCwc9PTZ1LV2w2QGVk4ne", + "change_public": + "xpub6EwCwMtC4cg7dPqcBg3zw7tLhE4NsuPikccxnZ15rMRu92cJcnmSKMdgQTQVUZPmt9LJYayHR7PApm36f8gdSyiY8oQTfmuoEuyk6XSDGub", + "addresses": [ + { + "address": + "addr1q9jrt99lwzfyw08qv2kt58j8z5apqemgxt2yvvwgjs7t4nfhwgutynpmyycu47jnfg6zwjp3p4tl48lhstmd6j5756xqa7qth2", + "public": + "xpub6G2R83XCwPpnCGHs9cgsop9JjQUQHN3ud2puaJctTpJm6mFrXVp9mkC8FMFETmKmhKgHh15doiBbRcnGrK8CR1ACcNHWWa58TRnvatFGZ23", + "private": + "xprv3TD3VoRhhTmSpgpC8pz55QwG4fMSdL4T7tExDZgfqbDXXjZKtetymYMoxhAyg4SKBDgBJxta7M1Y666ST5Lpum4mXpQrAvgHjEJsYJV8Awtuyd7h78Zyx4coUGXBHfh9GdgqPbvy2WdpjRbTq9KHaPP" + }, + { + "address": + "addr1q8z67dc94at7plpn565uvjtme4fxzneavfz0pudggwfyxk3hwgutynpmyycu47jnfg6zwjp3p4tl48lhstmd6j5756xqv4fpyt", + "public": + "xpub6G2R83XCwPpnDkQ6heUUU5HekCjrwD9Z7rTcSU3izYhvrfJTQwUBgjLM6pkRuwUdEzXd8FA61nEDJsYB57MnfpSQL7etxha1q9pSLnaCnpm", + "private": + "xprv3TD3VoRhhTmSq8Pnn6tciSzd2DveZoPN13Y4HWYqDkavX8KcNTPHw7ahEjDnZTdU76XohhKE59QBPyrYEgLThvv7j3upcpaKJKXTDv28XW2tdGeHBmoxA4S3REaCHyH5tY3RquJK6ZgzvTdPQ3KuJKm" + }, + { + "address": + "addr1qxdhvh9fmy8jqmj7fysl9fd4xhnldk552n9r42xvs69edeehwgutynpmyycu47jnfg6zwjp3p4tl48lhstmd6j5756xqthpuvn", + "public": + "xpub6G2R83XCwPpnFdKXcLLFWMW7MvnriJAHDRdC1bk17Q76Z7DBqHwDXTXL4iqYwBxRgtYaiZD5CWfC881F7zMNW1QKuhdEugzUeqB3CgLJGM3", + "private": + "xprv3TD3VoRhhTmSqgkTZ5XDsoe4BkKeT3qNeK6tknNkmBBM1jSmZnjWyP73BWA64ZuJyo8m4WTQXpY1MVUjfffFuGYumoMy7wfxS695w9Rju1Rf4FuCQmmh8t1XwECKqLvV1g2ZJB7RQQgymgpqH7bEdxQ" + }, + { + "address": + "addr1q8q4hf9ssvyfddwa06z80v64kk37dy6zgtzle237gq7esmehwgutynpmyycu47jnfg6zwjp3p4tl48lhstmd6j5756xqfre4jn", + "public": + "xpub6G2R83XCwPpnKDdH4C4CyGEShtjWcRZe1VcqRTZZJnSiswDLC2ZwWq1hztvvNtSJLkgjo7iTsmGcNaVj9ULsPiqESAtrnkWK4s6FeZcoWzn", + "private": + "xprv3TD3VoRhhTmSrkdVF7CJfTb6UNeAZq5Xvogs9Zgfdkp3HYfjonWdKJReEtYj6Xjpr7N9si2EUibVk9YyAReoK7fJXsxwvgTeuMdTLEyaPevQEECBKeRttvjFPNmiLQ6BdgbD5DnMaKR2zz3hjYNrAgc" + }, + { + "address": + "addr1q89dzvuqzmy452td48mqtmm25n59t3mswhaurwyzj8g747phwgutynpmyycu47jnfg6zwjp3p4tl48lhstmd6j5756xqrudsq0", + "public": + "xpub6G2R83XCwPpnMfHYqxBpRsxRyDzsvRsCt47YgkRPo4166ZRYUca1b2pQ9Gier48SsBHk6zaVk6whih92bXJ9U7HTXRQPEhwjiKzaR68ivsB", + "private": + "xprv3TD3VoRhhTmSsUiEKSTZqFCeFxC7hqsugS79PP7AC8tLfRBNCuzwcPdkBS3d3uJQU8LvxgHQejLNDkWe1CHgViC1A21LQvE7kjj3Yit5WWkQcUugJAz7cuveLYH4Tr5Hf4LeaSMvi3PMJdWB6Q1EYL5" + } + ] + }, + { + "private": + "xprv3S9JsKNWj54VFoLViuDg6KxpkNxHE1oWWHAXiz2JSoK2ryYf51dQ5BkmXhgCMNr83hkxcDe7P5wpkTbLLv2E2aY9PgLis3BPGDD3Zt6vRJU5oVr7N2XUMtJUAjGLQmdRi1qw3MLxdz3XvEEinVyYDpW", + "stacking_public": + "xpub6H1pzb7VAyBsEZifyx3uRecqQ4e5kpE7Yz63BTBLWrqqYyTrP2hgMyUDusFGimvgj6GtYkn93kN2FSbJASNUMZNWwgScF4Z98H9Jn2k3sVq", + "stacking_private": + "xprv3TW6g9hf4EeJRScHkBxXXpadDzsopqbMehmJcZc1MqniD8yU284qDq1q1cCkzVM6g5DFwXhKtRuKpq15JdtUaoHNZ2mzssXx5WyBwH3eQdxsMFDP8pcfMz3L438nbR6gES5DNP6xDn1Qg4rGCF2FpKj", + "account_private": + "xprv3S9JsKNWj54VFoLViuDg6KxpkNxHE1oWWHAXiz2JSoK2ryYf51dQ5BkmXhgCMNr83hkxcDe7P5wpkTbLLv2E2aY9PgLis3BPGDD3Zt6vRJU5oVr7N2XUMtJUAjGLQmdRi1qw3MLxdz3XvEEinVyYDpW", + "account_public": + "xpub6CSbegV22tnK8BNSKjRSyozTFTWfz6LGkdu3T36GGMoCNMUNWqxJ9brkYyXS3oRsWcVizNq9hLhQ2vfsMdYJmBG6pMZYZfnTLaXP5Kfp7ES", + "change_private": + "xprv3Shyboc4PiFmmWTG1C7wxsqW4WWVuSsSg3ANQW4ahC8KJg8JBApTqxArVRr3u3SEiT627mFH9KuGPkaanCBHUVFxxsWEeSKzBRtkmrftJsKDEZyZfiQCjJSd7ooykbNT2vMZr3Pz9L5G4umFz5xJxur", + "change_public": + "xpub6ELZtVza6gQZu7Zqx4Nk7gddnyKynbkcnNPqspVoPM1bYKcX35PgQCAQ46GGRsumd5pKFw85N1Ps5w1PmAeFFxBWCuZoGf1iL5QmArP6hiK", + "addresses": [ + { + "address": + "addr1q8cmf4dh4ln5umfazr9yxsgpc3cs39jspxtjgft4nqewx3nfuzf3vrjcz2uqyvqcxg8qvxhujlsn023egm8q85u8z4gsnrgrnh", + "public": + "xpub6G5etuJdM6pSqGfLw4rbLVVsN3TpqeMeS17WrB1ASxsSjqGmT7m7XzT1ojUuZNN3QvJ9qLbQKguF4A8mbKU1EGBDqohWqEPPcq5xkyLsgnc", + "private": + "xprv3TE1H4Ygvn7BgcV6Q7W3DQ46F5jW9sG8jAmwh2EHrfTBRaJmZAT1XPiEhgh3SdbAqtQVQcQoQ28bGQhuqTLWSwDHMq3Q9ebqUKW2J3eKz7ye8Tbsndr5MHut68wQA2ysEZxMKEiMJTa3rbfRUc1gasb" + }, + { + "address": + "addr1q9jtnd8p6frwx2r9uyu4lvsu25jdqp4eq85y74nmyawy9amfuzf3vrjcz2uqyvqcxg8qvxhujlsn023egm8q85u8z4gsf2ukgc", + "public": + "xpub6G5etuJdM6pSts4xHg3289Dx261sXi9ioatQGerwt6ZSDUVks6L7e5TL4DggBgMQokhaB7TyQxgriW1V8wGLSxfJVnXaAzdj8LaYvyLWg4D", + "private": + "xprv3TE1H4Ygvn7BhgPs4ePyFDHv2RomPCzf79p29a4wVJm48rRzJCGKgwYRteeKKbmpY15hRGXQoD3CKgst751Lg7K8zmA4FSRBRuWETZWuYKzT5oZRi6EfV3RdxHpooRvoV1o2EisiXKusKWXdizECFQC" + }, + { + "address": + "addr1q88cyphqgppmxp9xyxzyelfc5fkc0347uljharesm8qntnnfuzf3vrjcz2uqyvqcxg8qvxhujlsn023egm8q85u8z4gsufaln0", + "public": + "xpub6G5etuJdM6pSwRJvnFBAbCjiQZc7kHVkMDrMANPPAGJoRN8kPu3euYKGnt4pqCciM9dJDLKy76aFJqRgLbTqbXHkjtJ735W7nzq3eha73HH", + "private": + "xprv3TE1H4Ygvn7BiSRzhxgnjUtuvDZUmpf2cozQhP8YhHm5TPgfkCr9uNW2SKzWqvwTQPG3V6tbg6z72SQcbiVjWZNRALb1ZoeD85jknrXwwMuXhWLNoMF4KsmyUZq6DrBwrcpu8YoufGrkjk4VU6nsJXm" + }, + { + "address": + "addr1q8vse35ududzp84w602ndnu8msdw5gs7yrw64mkadndvm4rfuzf3vrjcz2uqyvqcxg8qvxhujlsn023egm8q85u8z4gs2r3783", + "public": + "xpub6G5etuJdM6pSzDANk99Yu6rZqcvLvC8w54t1NHiFRmnbQg46qQAypNgoqbCFFeKxGa5t984K5eSd4H7cEGAwhPhGp79Tcdk2yGUMxH9zhXS", + "private": + "xprv3TE1H4Ygvn7BjGWefVkFqviJ4GPVjQNsY6fPTeCu4CLxyZt92dqE5Gm9FNniZLZJiF8Tz1Kn4ohimXfDPDcHSqt6UcHuB6uMm3ruX6Ugyyu2bFvqziS8UNF5muWFiMzmLJD8VYq3wrZyzQfWS255MSc" + }, + { + "address": + "addr1q9k40ge3zsmhc4arjzj55h0n47jn5tr5mc6hnpuxhqpj7rtfuzf3vrjcz2uqyvqcxg8qvxhujlsn023egm8q85u8z4gsap0jd9", + "public": + "xpub6G5etuJdM6pT1uE17okmVVPLgcZi5fQJFcZz7PYEMJWTm4C4C2amQQkkWimuC9G47JeE49JX7GZZjzNE8RunvVAwKwKJfMiEaKdg2UAfhLK", + "private": + "xprv3TE1H4Ygvn7BjmeECUCELw5SYvFiey4gUQ1W9tgXKjZ1tQk9ixRFmGYxNm7s5HJYkiWoWgK6dZkqMeaEQv6hpb9srVG4kQwgt5F4cpxSYZ5eQ1H4dre1fcf4TdhWHXsKyPMCusGZaPpAgDza5P85KNK" + } + ] + }, + { + "private": + "xprv3SDbmmhvfbWPUTQG5a9EFjxr3VdV96VHPWTXafj2macU1gcPZ8SgvwgLvoJguVcxaVnmwgvBcRgUyL7oBNuERiMqzFzgSR6KZdtVdpChp9tqgMyFjDf4UDb56E6NzuQ2odA7hj3Ejvqr3ih9WaJAsbv", + "stacking_public": + "xpub6FZtCqMmWgzGJGDYMANn9VTyQ2DKPp52mjVXQgf5o6a9ag3xRXyKaKFTJdmRCk1dgCHyBfo6bmEuBiGCEcNkTfdGKvkrpZJ6eCPicr16E5D", + "stacking_private": + "xprv3T5ALsWLEZxZzHmbXi13YzNXqCBhtSHD4FvjSLMDQ7SmFsuioRb7DEd3ENCd4ofTg7YxM9UWz3o2idwrCAzSiwsgRjFfYsVHFBZ99KzFf4BDbCZ7KwVXdd4M28nJ9VDDRHJSYegfyiyDk4TEFwNJHSV", + "account_private": + "xprv3SDbmmhvfbWPUTQG5a9EFjxr3VdV96VHPWTXafj2macU1gcPZ8SgvwgLvoJguVcxaVnmwgvBcRgUyL7oBNuERiMqzFzgSR6KZdtVdpChp9tqgMyFjDf4UDb56E6NzuQ2odA7hj3Ejvqr3ih9WaJAsbv", + "account_public": + "xpub6Ch3Y7nsjWW99XfpJmsoD7vh3K1EKdwsEimYWvtuGnPm4Kqesn2zPj8mZBM1h8PaTDwEPqGQfxrYywpA9ugs5dsGG2nUxteFkamtajwE28L", + "change_private": + "xprv3SyVMvWgNgCEXQHDDpeKdPNpa7wkB1sNUNetpWHNoygt8FcasBzWQ3a1MLMpjZELTHQTSVxoE2i2igCJWR43qgK9XJ5JMH2kHwmymnSZtoK8ERyFTpAjwhXNxTrQQwyhJ7QAT8btqoLfZnSa6idxuAk", + "change_public": + "xpub6FEnkdvA4fvH5rdQf5HEA1kGQNFTaesq9tnoEKw7kfRwMEEkCPeJWGRZ51CQE3C3UV2W6wsLMz4Ziai34ViNCj2tdVPuDTx3HiKFeXPnXUK", + "addresses": [ + { + "address": + "addr1q9a8krgty3ca3mtpnazhyrkve2xqpnplqjqldw22w0qhn38n294grmztsfvqmvhkyz3s4muquyy9t2egmccfrwl6y0dqafrfqu", + "public": + "xpub6HF7Sa14UxbTVpvprVFdoaWoQx4ode7YR5B7yhf5YBQ4LTUjzRNZbmLPcMn1T43fLFoPMcvPXfRVSnJf2R99qFPieZ6gXAc5G5oWWfoKnPf", + "private": + "xprv3Ta3YfE8rsJDFnPvpbsA7v4CG4ps39LbLhaWGpMjAuWT3LSztC8cNKvLeugmN8xi45EV4m1SPCd3wb47xVS7f5XZkSf8qp8D87ZZ6w1igFq3PVZDaJp18pE77sEdwVPejukXofiCdMbN6JSdwsNPmZD" + }, + { + "address": + "addr1qxkesmlkzuyrdwycpt9ndq889h2ar0fs29gv85kg6uscrdhn294grmztsfvqmvhkyz3s4muquyy9t2egmccfrwl6y0dquqsx84", + "public": + "xpub6HF7Sa14UxbTYseNrdCjBrJbzVBZjQwyF56Uib2LyPqdBeDiapBSxP3D68dWBa85nCF7iM6mzLXWrJrMJawrNZK3UzFyJm7ftuouTUzEMMP", + "private": + "xprv3Ta3YfE8rsJDGgtgVCvB6LcwaoVgYk1pPNq2gfjU62mxFbCynotVkKzvpV9xFvSDyS7BdHHmXkry5L1h82iojsEXmViikbqg3JcJRpxnSFHDMLJEThprG7tPFKHFZdvGbusuXPcGyaT9bsU9tUBErZU" + }, + { + "address": + "addr1qxsmwn8qyxhperyja697zywkdw93ultrpnrjsr5tzhsewchn294grmztsfvqmvhkyz3s4muquyy9t2egmccfrwl6y0dqvy6nvc", + "public": + "xpub6HF7Sa14UxbTbzGqzKY2i32nywHQxbR2cEAM1D4Y26wuhmPi8VAUXAZRPfrzY8ofibM3CfcXrY8FF9QR5rujmXDz2nVNJ9pR15vAXhANdjq", + "private": + "xprv3Ta3YfE8rsJDHcYqpokB2sJ6LTCtsr1vqdN2cFrs9Dft7YCmX1iG5ZbgvjizbZaCRffu78GHHf6UPxpkgM7oYEiv2zr3RbV4z2ppDEMp8iTd4bKErEEvPXUFciH9JgXAxem1YVv61whKack69Auk5vW" + }, + { + "address": + "addr1qxsjmhj8lplr3q7va3hs4whxv0uqgrh7nfwhzq6h2alu65hn294grmztsfvqmvhkyz3s4muquyy9t2egmccfrwl6y0dqx45kee", + "public": + "xpub6HF7Sa14UxbTfEnLZL61v3woDSCdZ9HC6d4aQpExc13ABNH5T32kaAY52zBCxbcMhs9cNMUofUjjTRF1WiDDtSUgB7hH3GMk1fSreKVANQu", + "private": + "xprv3Ta3YfE8rsJDJaYmWuRCUPbenr4H8mZrZwsZKEz7TT1ccU4Hr5H5zmoUV1unTu3RvRsstrqt7Z8ZbRouXJtLAjZ6ZknAas3amy9zGftnrAg8Zsp66pt9NL2UeA1rg6xUDGY31aFbrd5TG6b2YvjgtG2" + }, + { + "address": + "addr1qxzs9t7n9efw7mfjgek0acfvxedsae0ar9gal7nymplue4ln294grmztsfvqmvhkyz3s4muquyy9t2egmccfrwl6y0dqhqvstp", + "public": + "xpub6HF7Sa14UxbTfpBK1VtxnPGzQd85n2vw5fZY9zXrEGdp9tyuubvDabwZY1nrao9MLucBwJW9cvWvHPjLaJjbD6MtCYPRfW4JfMsozrqNBay", + "private": + "xprv3Ta3YfE8rsJDJkUAnja9n4SfK1oqKRH9GVvU1Zz6heuBB7e9ggG5yyi3GoET4Gv8NpC8z7zLuMPJf66NrDMF6dg4MWe7eqUy2d5gEgDqP1tcb7Q4mH8eeN7JpbXJaQPWjcsy3djDu1QJTU5utxFBGTy" + } + ] + }, + { + "private": + "xprv3SRvsoP9gA4BQeUBh3awa4EdCTcbpEoE8uZz1TKQ8QUjS5KUsr5rkvgxZyoeYtj5wb8gz4Uc2PhaNip1mkB297Z3wxBRHF8xtdzT6cm4XKqpuaxwewhjBZQuuJLBNtSusvCSiFyPRcdczNKH3rewPy4", + "stacking_public": + "xpub6GU4cwGA8rQRqAaRY9UxX4CRHCrQM2Vpv2fMuMMqsXzerMn3LsGkpQJBgD3KsA6J22h18Lwiq19tqqhBNiqUMgbfxAFhd6qCzKrdfnVu9gS", + "stacking_private": + "xprv3TLfNoDAMaPT1ezQiksihbC4C66r1WMczdgny9GXrzRUS8atGsBpNJeGYeyn1Zpg575Lm6DnqXGKWEwRDpa7668vMfM5RoG7DSkpCCbWtjFxTr8xBpC4kd5SPUHgYShyvTUivwAVLx5z7oVnpta4CuS", + "account_private": + "xprv3SRvsoP9gA4BQeUBh3awa4EdCTcbpEoE8uZz1TKQ8QUjS5KUsr5rkvgxZyoeYtj5wb8gz4Uc2PhaNip1mkB297Z3wxBRHF8xtdzT6cm4XKqpuaxwewhjBZQuuJLBNtSusvCSiFyPRcdczNKH3rewPy4", + "account_public": + "xpub6DQYnsprgq8XFMAWbVDYp9XC5mYU4KxvBKKvbCA4SCmvGkRG6hdjemuhHg21FL74XWtaQ7swcnVCma27VgBD9jmmg3jT2Zo7YKoWZCpGgYZ", + "change_private": + "xprv3SmUhXB3P2uAjdBRy2vLEbUFjKh2wkXxxYsZ2dCtXLo6ve1MEkoNok2WQ1LAY153KR97RHneRMCumuAnuj6zhpizXTUhhCfSC5QmLW2AYrnM73XBNWJfP3jYVxk1ajb3KxgDdXqMZN6bQ85yBb9fo3C", + "change_public": + "xpub6EYMaZYWEfZ5HSUTVCMH7UppGzrYF8aq9rh9REAVrbhD1GnWPwiNUPEgjD74Y2vt2FQgQFcCNwUkDXrqsJR3ykfCvnPzkPEWxujf1RkrMh7", + "addresses": [ + { + "address": + "addr1qxarawgwl7y5nchwa60evm44lhka6x9gxnzm0gn2umv6xranyeaauyu7n9twppsw6wqd7uge995gwa04w5mkftm2gans0zchny", + "public": + "xpub6Fp413WSKXTNMtzA4Aj3CNTXn7xhyuuycL98rwZoxaopSnC4UEF5VrW426191BrKpuppXK7Li5h6dZF4BeLxAmBYkh3F6AvemrCdqPMxEp6", + "private": + "xprv3T9NU6iWxeKpqNrfjtqSysuDjUH1Pa6cQ89xhBYGi6WGfL3pVvTzZ3tvZcauj6QZXR3eK9TWpn5H5dPmdV4GnHHNqqAkPgBjHLfUXxfiqdMH5LfkHPDWv5hV43oPZMfV9bDWSKEcBJonTkJSQYsgFWx" + }, + { + "address": + "addr1q8qzx74fx020eclsgwm9cp0wkmdezuh4x2klxq36eenqga4nyeaauyu7n9twppsw6wqd7uge995gwa04w5mkftm2ganscctpgp", + "public": + "xpub6Fp413WSKXTNRpBiFTrxhyCTh1zQqdVCNbxHQF9cGKXNZNaHRpPHR83gtVaQmbKrRXsjwQDktEohQutBPpLHsuJwYxHmACjsKWGGX1ZVkPw", + "private": + "xprv3T9NU6iWxeKprYMDjDLa9WFQRiMtCoFQUEcX4f4zfEEPDaS9UzokUttixY8b8QhDghJ6c9JpKVGiJ5qiVBrXdb5F3Xn2K89tLcJJgTm8hwL97k4rrZHgaM3fPbxuAQpY91M4qfjvXd48ENiJdCWAMoj" + }, + { + "address": + "addr1q982dulzusc6hnpckh9vzry2jczhqpe9dvphm274pmw8ze9nyeaauyu7n9twppsw6wqd7uge995gwa04w5mkftm2ganstgc67q", + "public": + "xpub6Fp413WSKXTNTW6MDcLt9Wh5jLAKb7N9U7i1mQWwf4zfYTHweFZNcZarDM2jEvrbEgtzF8WbR2siWgmBGFK3MsPqwVHW2Q7xgbKHLLatdDg", + "private": + "xprv3T9NU6iWxeKps3S8NaY7KFYrRNyJhmL34AYmWscyh4BxLUXLHeQTa4PanKEEMH8fCak9Eycro4hfr7orwZRcEAEcp7DfJ7qRAp6evzPwM7YohZnvsd5VAo1h94vteEPeFJVZp9F3LC6X6vtTpdM1Pyp" + }, + { + "address": + "addr1q9ee9y6wvwmd5772nmvpq0a0swv5d8wfllt87ymrlwhkzq9nyeaauyu7n9twppsw6wqd7uge995gwa04w5mkftm2gansfn3fdd", + "public": + "xpub6Fp413WSKXTNWVjdDaP8kqr53QgCyQrGA4AvCgBcKpiAu4CnQDdtMCDsXRfDzmnykFXiP2xEta1v5Us4YgVkj16QK24wT8cCt28H5g19sXp", + "private": + "xprv3T9NU6iWxeKpsw1vR5c5f52iK7Ykq23fxv33B1gE8XxArasu8DTrAZY6NMUFYaCsPZ1Xye3TDyFqJtVQG9w6d4AUBExCPesd1sHng7aDtkXo2i4pHAZJAopqr3GVoiqJqDG3ZzoyaXzk2av6KdeQsg1" + }, + { + "address": + "addr1q8tgx0c0r044389z2vjpe8stxh95vzflecvgt6c9g89t889nyeaauyu7n9twppsw6wqd7uge995gwa04w5mkftm2ganstgl6z8", + "public": + "xpub6Fp413WSKXTNaAxfbVmoGQYGsjmpwHLTF4pvRXmVnrCkZ7nQZPCBG2zoDtSqZKpshJMfsdy5zvLGHaHyCr5zRMiScL61aZurNZjgH9FVizZ", + "private": + "xprv3T9NU6iWxeKpu2Mha7Tr5jsMpG6jN7DT7igZqYSbtDrTzibc9Poe8kY71zWt8ChkbPKoadAx3hfLS4PpB68sNrNwckvs7mPNunSeXqZF6E4JSTXVLQoUUU1QDg4dHh8raTA4i2YAa6B2igEW7Go8w64" + } + ] + }, + { + "private": + "xprv3S9jh7r9GwNBURmKWqEPVbWBQtGTBZzPSBw5qJ9s7vYjk2Sm1hZLvufyPhrY65Sc2wFCgVs3tGzbx6NFiu6HNwxUYqbUQjk8VoZwoai7qGF5nTs9n6Qb7eNwKNMsJaDpUsk6FzaQHLeeXks75XE2LgU", + "stacking_public": + "xpub6FYeiTjuA1u4gToHFb2RukRmzmeHPhMe2u8TM2fq1Q3Ai1cZ3g6ow1kR2WVegFPsfiYMt4QLUqpwrB2YxFudvmtZ2x2jAffY3EpTqaZMv4B", + "stacking_private": + "xprv3T4o79AfyB4dFEYQRk2uvJn1LV9Fc7spnqDGfHuUhW6FciLYzaxnPBimiJA5P1PH7sqUcnN7w3oHkBrHkAznhQikaUNpQJs8RH8RFmeg7VvAXY6SVBZphYctSoE6hNxaohB9DhvqvRvJTGBUzQ9D9id", + "account_private": + "xprv3S9jh7r9GwNBURmKWqEPVbWBQtGTBZzPSBw5qJ9s7vYjk2Sm1hZLvufyPhrY65Sc2wFCgVs3tGzbx6NFiu6HNwxUYqbUQjk8VoZwoai7qGF5nTs9n6Qb7eNwKNMsJaDpUsk6FzaQHLeeXks75XE2LgU", + "account_public": + "xpub6CU3DV5FtQdkyDZELFfEt18SF3HXGZVP7bcYm3oGiV4JP2evPTZVgmifjiBX3tBS9wjQfBysW3ptz5GUqvLjSDB9d5AXQvr7gLRbXANM8V6", + "change_private": + "xprv3SWaBt1Tkuhwg9p87VNRoCUd9DSUr5PCaycVKoKMpQwD94DiPULF6WSnspapSLk3aeGX78vg2osXPJ72maHMkR1nVLox3yX6RbMf6ZYE6qiFB7jNs2vkUu5ZhLc62C2s7Qh75H5xwc6TWbjU41qKCxF", + "change_public": + "xpub6DgBNkccPNJTG4djJ4mJAUbwJ18LpysFGfW2y9pFy3tWsNgA8YSs2zzFtfk8ttUeiLkzCFRWHkohnhqnAQNsboLD9vZaDaabQzvufrXB1vz", + "addresses": [ + { + "address": + "addr1q9r49y0ted4e8wq4gzegr8grz7kvu9q7zd8xnnkh5lm4thlu5fvapwyx55qvkjkhq5myq5esh47kqugvj7x2t3dnmw2s49quhd", + "public": + "xpub6Fbp61XtttUjDVapSxLn31pv21GUTPRE7VLuwHTNT5WeSnBoTrAcvvJZL4gFZtqXZFBaRjELnXFCqoz9j5xgDeYiBZ8ngKDTKmv3irRaxc3", + "private": + "xprv3T5jaZPvtWytehnxG8hphmdSDnBMHSL3uUdVEb8oc3kayYE37Hv9tjjYfTfL4oPzUUZFKCZhszuDwbz1YMqyomQGdZ1AM8j8yHHAWVCAvhKLSEy8cgXTYMXC7T4HkS8Q7L916pgMoVSuoYNmcqyaFVg" + }, + { + "address": + "addr1qxhfcn4pnq3etmcxn54f8ysns7ka2hekkya3cc8qa8gl690u5fvapwyx55qvkjkhq5myq5esh47kqugvj7x2t3dnmw2s22d3cz", + "public": + "xpub6Fbp61XtttUjEfhk6sSX4fPC1JyAxxXCpLwv56iSzQXn1RCpLBUhu9EjM7V2SJyv3uxiYC2jNQFqzW1HokNUEurZyY3Kf97BfSw9XobFF6U", + "private": + "xprv3T5jaZPvtWytf42d7fjgHqQeEcv5yZu61b7vJynVxA5C8hKGzLXsEf4BV8ezBMVMoVJfHG8qALyUvodqenRrv4LTBn1hVEB8H7wzX5WPxqnrbfwoM8vwGgK3Skyi6DbQm86FR8SYqT7RH9a3ixFRFRa" + }, + { + "address": + "addr1qy7shdwd5fq3w4a52sn83y9tmjsh4m4ed96k5hq8nyt0cq8u5fvapwyx55qvkjkhq5myq5esh47kqugvj7x2t3dnmw2sjmk57h", + "public": + "xpub6Fbp61XtttUjHC3VoHFRCi1AVDxSwTk9rnxfwgtGmJgf2wsXQH13vzB4s9zVVAnJMjphgz114Jov2v1euRdsjWLhoCeHEoAf27jWhrvCLww", + "private": + "xprv3T5jaZPvtWytfoW1hg86Xu9QixHXZqNBgMT4MGqXhFZMuq1KNdHEicVdNs23BCaLa8LRweVEQMHmLRXCbzcLZL6NYfGKWC9cUucS59yTuz5VqqYXVXdiYgL6m51y4SgmDm8NRbbpaai2LZyXQr8to2Y" + }, + { + "address": + "addr1q864wkdags2j36zs0kmcgst7x0n58nvlxl8rcppzv2jz0thu5fvapwyx55qvkjkhq5myq5esh47kqugvj7x2t3dnmw2sfvzdfp", + "public": + "xpub6Fbp61XtttUjN6xZwLtvBpRRcZXWHLSwpFob5BKcVHNFBb6eCroiP38cdMs8aeet2uwxfZSD72dUfbuoUWGXh8rHodjUHzTzqbqNHNb5CVa", + "private": + "xprv3T5jaZPvtWythG8z42vGqTo3zFxvD4Hb16rp3SQLTVKfgaL6fKcHJt9p1CbqteFTkA73QX8MxXEsnQQ8FuTfLZ6sanDrD76KWrjEtJVdhmqQaG4s12GChHeiZniKVeeeFnvHqwKRbkrAcr6FU2qZyBv" + }, + { + "address": + "addr1qxnl29mgalhl7gh5ygnx4tevxyafulupl6ql3w88an3hpwhu5fvapwyx55qvkjkhq5myq5esh47kqugvj7x2t3dnmw2sw8h6kv", + "public": + "xpub6Fbp61XtttUjPaFhQWXhdPmGiTzoqZtsJGF3idiEtufdqHwgdfLcMK2dwVVEfYjjjuB9azwM1D4Z55S6PuJj848HB6aL5KqXskrSqnYEvmi", + "private": + "xprv3T5jaZPvtWythhUb6bguEpk6PVuxpoV4QG4eFkdCPZXsAwDAHEwYu7bBLL7VaXj16y9bGYJzc8AaWbR3vDQ2M9bLrppZESGoVCK8gus9rALX8fXbtNLTiiZQB7dbfUaEUVHjEbwLoM86AHWhDse45fp" + } + ] + }, + { + "private": + "xprv3SFeufgzbwkMjzF21GGoCsW14edW6vHL2j1TvoA2VSYEisBiL55e3H9SKSsMwCSBxsk1cqBQ8e3eDRh9SbyCj4BqV4F5gQhy9YpdnFrJWh5WcUKBCv1ajrEQcNHEWcpneVhL3DhcMAGWKZX91BNW7xz", + "stacking_public": + "xpub6FsY2Em1XXD3d15qofYvDzfwgkUNxywkCetcKjUqa3c1jiu2RvdjjyTSPGmvU4hQ4RSJRYi6GAQ8S8xBc2chZWtb6HvjsNW8HkCkRmgopMs", + "stacking_private": + "xprv3TAQUqGZA8kAAWJuqboQvHWc3jGGx4AK3SjzjJaph551Qoatsewtv9cWP5HyNC5W3xdNZQfshJUQD8UZMuXb7js9gsbs9Zbs2c98UaYfTyWaxjBdf1ynaNFUB4dLCX8QnNNw5WWDawPwYAGNizwMgit", + "account_private": + "xprv3SFeufgzbwkMjzF21GGoCsW14edW6vHL2j1TvoA2VSYEisBiL55e3H9SKSsMwCSBxsk1cqBQ8e3eDRh9SbyCj4BqV4F5gQhy9YpdnFrJWh5WcUKBCv1ajrEQcNHEWcpneVhL3DhcMAGWKZX91BNW7xz", + "account_public": + "xpub6CoxauHRdGCXhg8ZNZv7B54BPWjpqpnApRKGGrtE6qcKTuPJBwt38sfoMJ6dxFzDuAhrahRkQFs3uAwz9r3eCrbN3CP5V6MT5sZQhT8pYj2", + "change_private": + "xprv3SqyAAJSeBJ5jFjTSkiRJC2Z4Sufyo4SfWasj3icVSFEy9JW2dnrrvc1C4djG1QQdumW9U522v7dm8itrtXG42MEg8WjFzSTzmG5D1sq2rCRGux75r8jNVTJdktdR5KEGNRxjSKt4uHpYRV3dwqKAso", + "change_public": + "xpub6EoUN3c3FrmRsQ9AZHukkPwoSbQhA8bJoGQv8xH3WL13ChCtRwH1vQbEgpVq9X2b6meSFgsQ7N5y2CsgejLaxBEuMceUUYrsSqzDwSeQ1yY", + "addresses": [ + { + "address": + "addr1q85jj87kyj6hfp9a59r9avs0fwatcr9vsas2ua08ll3tpft4d5zey8fjz75fcqcd03uypx9yeu9xtckvgw6e0rkx8jrqj73m9f", + "public": + "xpub6GrbdMsfeGwtzW5L8bkMUUd3CAN3v4avaeDnpVzyhTSWRHVjKmxYW3tHh8cjPWU4nn3xLsqgid9gTYXRmqnVC8ksoRVXWT9FL8QNAHzCQx9", + "private": + "xprv3TTMe1VdVwucF1J2HjcTPGLmHjAsZzzJZC4oeesJwAsJCPzpJZryxMkDFvVPoRLNHaCagCZ12rBhVeR5EjQDKz8CE9rFZBsEgR1e5DeqLEWQe2jYjCcxXBRXMMgVgdGCWANVLxeU1QRKzvN9Prv9auM" + }, + { + "address": + "addr1qysq27600678y9fpq4g8gqq80ukj2xwqgje2vz7jumj68em4d5zey8fjz75fcqcd03uypx9yeu9xtckvgw6e0rkx8jrqwej6sd", + "public": + "xpub6GrbdMsfeGwu3EfdvSF3nfRdU4Z1TEihzJ5MjqHZfAhYTgGFbSuZaBPstiVQsusVwCd77Bq1UtFnAbxdTGMiqqYvx2qcgLNyrjaXGbjQFm5", + "private": + "xprv3TTMe1VdVwucFpQVRam4hbffVsyq9aLVLhHMpnstSsuxcVksWdPmPspXBtvxCoughLto5aR5KM9QTVv77SRKooaALxQB5zVCYnYoP2imMyvQUZN1Yxpo1eU7HMEWmkbFLugFHrcpi4ViEqsfeEu6Vkn" + }, + { + "address": + "addr1q8kmm4ke9knvmav08tfvnyk5etluvkqf387a6t06lsh4yyt4d5zey8fjz75fcqcd03uypx9yeu9xtckvgw6e0rkx8jrqkppue9", + "public": + "xpub6GrbdMsfeGwu6syMxv853FHRQh6ZgYYT5jGoNAuu2jxMswXWJtxYTxpBEnBumaHynn6hUAwNwN4khd8s1Mm23AhjtmThm4aprQDKKXqHhCC", + "private": + "xprv3TTMe1VdVwucGuBCeYqVwoRbziLLgYCno88UinFxnyNGDyLE74pA9Jro59zdQbbVvjjrF4LNiEs7MFYrkzFYpTtqsdDWrkJkdMVLDTzdGU7TqWB2v6J9KGfmoPtBBn4qNECf4x1Z9zW7QB42eVhDz9N" + }, + { + "address": + "addr1q9ner4fjcfn262v9tmggawc2gwk5vxqthyg5rp33gl4k84r4d5zey8fjz75fcqcd03uypx9yeu9xtckvgw6e0rkx8jrqm5p0ea", + "public": + "xpub6GrbdMsfeGwu93WCvXayWZv5quch2bhqgHzrU9UdwMjAnsE6z1g1hKSfzqKobb1H1VAL3SLS24RgzEGzSPHN3543MHguZ3bbo6VTXLSYVKh", + "private": + "xprv3TTMe1VdVwucHYU4fvNERmLpi5Dm8Hp2Xb9eQbfjHFfT4SohBRDnKXTibVfpRZ3EEBCxWxnaSz2C4pC5Jhmoh7gQEoXNjYZkGrEgszazaDojA6fhmvi4DRww5dqmNHozPgwwDLFujryMtvP76BLxU6z" + }, + { + "address": + "addr1qxkvv9lq9kqrhvut4l7rw3lgucc9l7nqqyxzghfqd9tcnun4d5zey8fjz75fcqcd03uypx9yeu9xtckvgw6e0rkx8jrq8mu0nh", + "public": + "xpub6GrbdMsfeGwuBPSqyPq5LiGJfEx8WT7G2HFHpqiDAmUC5w3odtc4fkUsct6fATSs5ZugTMwuP6Z9HZxVqgzoDSAJ6ZqEnV9ARzKztvwKrfC", + "private": + "xprv3TTMe1VdVwucJErHqQVYPwQ4DNXsLx7aYFfRSV5p9nPxKVutkaLKqNi4cvcUo2NhKtfzvuLFTvXbwXkN3i2PGHeaBi95veHhxHDKWBVaE8ap4mChEdbzJUTTpv7vEiXQ2rNNTZJdkffR3X7uyUsoHgh" + } + ] + }, + { + "private": + "xprv3SSgskL5L6BrqNoM8MtuuRpCGT8iFkPa4KRXV8kR7hkG44vzhgTDgjfMSR5acKANn5gnUbGuLTdfndpHR8iJ1Afejce86NUAt9wBXGtanTq1zJFBkTg8f3jK932YTagdR8Z6qZcuxnAvmS4pkUxWuLB", + "stacking_public": + "xpub6GxNpK2MT76EfSNPHZ9gfnAffGqkd3p9q91Ejihg2nF6CC39kvVfg6LV5pMbNnrp4Lx166StaN91LwhQ95dc3DSPpy3M8tuoEg7tnVHP3ak", + "stacking_private": + "xprv3TV5DBHAZx6y9cX8Pzj2VmHFisg8r8o6j8BsTjKzcNh8jyehy5C7fbeSpjE49eokZNSumZrswMs3fD9iZcYQVoggJhT1Y9CxPBGYewepAK6wvbjqwg9pWi8DUsW1RN65XCYXTwXFPXUYzCqJDeSBNN6", + "account_private": + "xprv3SSgskL5L6BrqNoM8MtuuRpCGT8iFkPa4KRXV8kR7hkG44vzhgTDgjfMSR5acKANn5gnUbGuLTdfndpHR8iJ1Afejce86NUAt9wBXGtanTq1zJFBkTg8f3jK932YTagdR8Z6qZcuxnAvmS4pkUxWuLB", + "account_public": + "xpub6DT6uVpYPzpqeXGAVfu3Uay1SbCq5qVeBkC7GioPUqpUtzTjaEqfnHHmVQZ9FA3SQYNqJJkCUQM2PiwpTFoGAbD6TH4oAk7BmzaC9ToCtfE", + "change_private": + "xprv3T1gR591akaU81LZfFnrTFa9w4huBcz56AEDeqNRd72jiGmm3e4qDgbQcKdYJXbHybdRquxUyqMPAK324TeA3cSwJKNvYPgTkKp4o7D1YGsT3u1hf7jz99ukYcuxVU6kLM8cUKH9e7D41kH4qPeJZCx", + "change_public": + "xpub6FNATQLjhPdpxYmwaLWy9zWj4i8LKB7JnEPS7RRqVtzEqb4Gbd42YS7ZHbkMrwWc5hHcktTkVqqVSLrQY9LB4yWHHEZXoXYimUzUXzNA1o9", + "addresses": [ + { + "address": + "addr1q8jykpskwrmhm3akj8awsn0nhy0yses4zd6lzhjs3c92y6hrqp3zgkqurz7fd8qd5s8my0xxm6yca4ky50dthd4qgl5qug7qjg", + "public": + "xpub6GrWgZnwjqtNs75iffx3PpxKU23viSoLPoxbqiPmgLxds3qp1XNUTH3jBpyijQ6JxhQvk2yq7vzwbB7ZWWTzMamEMoV3N1Nxyw37pLrw8fE", + "private": + "xprv3TTLAp95ZgctktaPRTDyQDymcKG6FXz457q8YcfnT99EmHuPAHp13628g2xhcStcwgDqNsugVBPgsNRHqfjnE46Ff2qR2nVTE2ZrHYjpARGDNDbEW48QRohbF2nVRq3VW2KCH57g2Hv9NMf3r8PzLf2" + }, + { + "address": + "addr1qx6uyhh20veuz3vjsjl6adlh7q9zg5xwd04y47jfpz7lwelrqp3zgkqurz7fd8qd5s8my0xxm6yca4ky50dthd4qgl5q8vquwk", + "public": + "xpub6GrWgZnwjqtNw9iHX4WmC9yTh51N8zc9RLxrY4eyyxNM5jJgCoCXCspqpLUsx7g7WMthcKDsJABBYuNFokyk8kBgq44aHRb37zMpnD4Cw5B", + "private": + "xprv3TTLAp95Zgctn6GyZboaUh38XbGkv82Z21W6FUtahHuda2NMTqdRsowwkwMAeoNo1fHLsAwsBQJrvuSGZWaDFeqeYNk3MkShMRQdq5G741nsXt1eXBZbNjAkmVQQshdDuCx4QTX9scKzjnzRWnGYk9V" + }, + { + "address": + "addr1qyu2f4y4s7plfvgmhss27nkvfhrw7klkh0d2lyddvtvefj8rqp3zgkqurz7fd8qd5s8my0xxm6yca4ky50dthd4qgl5qmgecyt", + "public": + "xpub6GrWgZnwjqtNydzCo4E1rC8VyCdwkFG5T7KMqeFKdYtK3rqiUw3PUGtEhd4QqtcGeEK4gFmDEhr6GsE8h1fd6Gx9mUMPyBdYhjP9TKp7pKd", + "private": + "xprv3TTLAp95Zgctnq8mSeDMFEKb6UyWYLedoH3f3kcJ16XwrBzztjXkXzhWNWbMBQppFhNpAbozuoh4yCsUQNTKeLXDgTdGkGhq2GsrtbjFD5KbyGYZLnRZLAdzsWNtaRGgWMjhXgbqLjBBLfRbbv6QEuc" + }, + { + "address": + "addr1q9r4quhj3g7cdp2yz0qpntdlfdkucjnqtmfnnhk9cc5ggdhrqp3zgkqurz7fd8qd5s8my0xxm6yca4ky50dthd4qgl5qc0md0t", + "public": + "xpub6GrWgZnwjqtP1Q4sGJZ9PUXWUUy5NquNSgvY298CwFPvw32NzTmcpriq3JcaAWCp288zXAUq7xJuWqLcuurgbdg8VF1wHEYZZLfAk7TXq2E", + "private": + "xprv3TTLAp95ZgctoMTa6XpKyum4qYj9A2pSHfG6LsSZHsvd9uSrEk3wrGKEEXEaAUYgUKDDACfQqWLZy6fGfBD2qqmuBEB6FADzoGtcwSTRSioGjQNYbGeZVG9F3CMbf8yXQfwe1KrFMaxDxggz2ip4VtT" + }, + { + "address": + "addr1qx8hu9px9ukqjv6dn8dvtdlhu460jzkmjytalt4t572uhx0rqp3zgkqurz7fd8qd5s8my0xxm6yca4ky50dthd4qgl5q6z642k", + "public": + "xpub6GrWgZnwjqtP2iHaod4C9CTtvXiobLqcFYp94mTf9a1k4L9RrDVsbYyv3is6qzTF6YB1kwTYA55mFFxqrPXM4RhdwyotbKndEnpprkGiNzs", + "private": + "xprv3TTLAp95Zgctok6oGDb1bZDbyxDzurPYkUifhCcAFgaJSXtQZZaXvYsaUjwcJ6PkFapHReuDaUE7oGzyn8ec7QjVCyaj3iZJJzrAB6NSrfKB7kefYsHFmBXAT9DY5F2SjNPU5Db8v4EYBEom7D9EJ7u" + } + ] + }, + { + "private": + "xprv3SDCe3Eo1UqnWMJ3ddZTiMgHQHvFyy183nMyauEz1nWScsQaZ9tczVKkV5zFQE1NDWHwKjhv8b8YkYB5KF2RPGX3D1dexuYeCZbVhEMPF2qsLKweT99j48zERC8xmqydW9hMHeyqczXcrBxAgFeHf7T", + "stacking_public": + "xpub6GkwVkFHG4BgDcASM5jePtdEP9PWCNgY9EeFfEMcddiNn27huptAEyhZpgs9k5UR2tD995onAHQXdRMPJ5xdYQZB9acPNj9HacfskCBKm9m", + "stacking_private": + "xprv3TRgASR16iJ6AAEjBZfMDdroyzUBvzr719cWCwT3NkrhCk3VtEcAQc8LS9ssMoaNNvdMnVrDXA8pSnhnRee2YLQuL4sVYEnVLydMcxJFSb6o2pmVhkF4WGTwdD7bJg3t6XkevkcVrbFq154Go72xCjY", + "account_private": + "xprv3SDCe3Eo1UqnWMJ3ddZTiMgHQHvFyy183nMyauEz1nWScsQaZ9tczVKkV5zFQE1NDWHwKjhv8b8YkYB5KF2RPGX3D1dexuYeCZbVhEMPF2qsLKweT99j48zERC8xmqydW9hMHeyqczXcrBxAgFeHf7T", + "account_public": + "xpub6CfhfSkB29mWPoAXardJnUDuYY43RvPYPLfutattt76ZwWnxFzBfkuh1J4TKZnxxz122DAgVMvs2aFsa64Lo97f9r1d8taZaiexuphd191S", + "change_private": + "xprv3SxGEGJ1qo8LZ6g4FJhZAsHM4VN1KbXecMWiB99ji1MSTTtpwKy3zNi2b6MVTa86X5tbaRma16bkCrCqQdxWVE5N7h9jntnM3As1pNoExQ5Mmi62qDopexShms9U9pMsobUxmCQ81EsN3XqoTJFRuVZ", + "change_public": + "xpub6FAfJRyCunsMcVMe9QSnycgxxcF8jjaif9zf33MndighAxanYsjqLRP7feUmEJWsjnegxma8ehksc5WsXpMwkmM7JufA9gaEBfwtpcVzxim", + "addresses": [ + { + "address": + "addr1qypt08cmz748fuehqacr754n0ece5ddyf7xd9fwaxucya2825t9j0jefma6yuxu8l66srvhfzr2juy7r5x4tt2pq39aqg8qmpg", + "public": + "xpub6FU7JtM8HWx3Ass7GaGZXz3CYAViwXWWZta6PYecqzyb7WCDike3TX2FBHtVyHTuk4LZfcioj7Hp5AArFJwy8oCiQNSboRBwDnyoxnQ16SX", + "private": + "xprv3T3Srkfa4zfhAtGiwvFT8HLo42fahriojpWXTKqk95kiGBohp85vZq3LTuLYfyTj1tNjexmZMDoKq9FSfbAPC2zD3WTrZa6Qt5PgyPfNpS7jG25znJ29rhNVB599pZxjQTGR7Fu8A2432As6b6MGShH" + }, + { + "address": + "addr1q8rfs4qhsyrrp0qe7chrw3k9zg4grs69ngd8w4p2cpz36qh25t9j0jefma6yuxu8l66srvhfzr2juy7r5x4tt2pq39aqq3nen0", + "public": + "xpub6FU7JtM8HWx3EauNxCoTFCKHfSQ6m3ucNon9iCai4EgVPiW1jGdLQcCxjZCPjWJLhfZvVvzG7vSG5u8fkc5bhUcwiMnmjjBdnNHmoE3dVrT", + "private": + "xprv3T3Srkfa4zfhBz9mATGPskUZDwo9h55tdoiaG3F57usdive7BeRHN5anMRTqLcr2fup8xqyRy6yYL2rMQGyPccw5LGCWqWgJLRyR9ymEcfu1zLBUjrLXeDHz48RyVWudHoFmFbA2cvvWFcjQiuned5B" + }, + { + "address": + "addr1q8aatt9xvyw465nqecfeakjn22xmjltn422taz7u0uqzt0h25t9j0jefma6yuxu8l66srvhfzr2juy7r5x4tt2pq39aqf8jt52", + "public": + "xpub6FU7JtM8HWx3JEwvY6ernz8R53UBa49vDZaiNbbfboVRYA33zsdouxnb8vbhQJ13sz8F2uab6fENP43Fna9QTaCAVUeZYZPiCRPzabvGofU", + "private": + "xprv3T3Srkfa4zfhD59C9r2wqQonC8yJ1yZAWL9LeztyjWrtaBcxUhLe7kBeDB1KBwhxnpSgWkmZZ9c9YbUxtnxiYqsPmuCpk6NNNvwHm27D88VcjzKJqqvvWHpdRZSBdNrvo6CT9xJvFyphc2SvoehHSfo" + }, + { + "address": + "addr1qyd2myz86xaeu29l7dfz433h82hj2ymkv9xg8xaxh2g2wa825t9j0jefma6yuxu8l66srvhfzr2juy7r5x4tt2pq39aqrc4pfm", + "public": + "xpub6FU7JtM8HWx3L8RpFLa8dRDP2fw41EuMtfsmBza2uyprm8RV7AtWGCdRfhVfkWPfj82iBa7aYKkqBjpT9k3CwX64hdqbFDwxUPGx31uWBmN", + "private": + "xprv3T3Srkfa4zfhDdfWEkr2a7YKCkTdyMdhuLtn5ZpeQR9vXrQ1neRXE8f545qHAsydptphw93LoWJdM38Shrimh9q8BimfTJ4uX3tR2QvaF85S8WWShBX4JQTCWnQVUhhpWoKt1Z6mUasf9KpVEdVAdF7" + }, + { + "address": + "addr1q8y9u4vy20hfh064utcelxe5ep6459me5zp84s8cd3vuful25t9j0jefma6yuxu8l66srvhfzr2juy7r5x4tt2pq39aqwqt4cu", + "public": + "xpub6FU7JtM8HWx3MbwkJB2rBfgxAVFxrJRDQnqUnQUBafDLtxLTmQY44bSrFYogMMypMVtsPQGrDwEbERbTdDrooedAMLz9tbHm7dfGqpZsyCb", + "private": + "xprv3T3Srkfa4zfhE54usgk5QWgkbnz29Q1ji1LzVeY4zSSENaWLFEN4Tbi3ggCEdE9TgRiKwzTXqFaPCy6ZrvTjRgBoGmQYQwUbPcNmar4HLshsDsTL4Qa5ATwwcxFtXYtMcfzwcMQ14WSTxZU8arxuz3E" + } + ] + }, + { + "private": + "xprv3S95zwso818ARjituUTjjowZ6rjhY6GhS9bxaFPWnnmgnd8zkVuBX9KCtFLBoQr5Mq5PtuXza2V8yDQp1mqiFSTVVEKhXTfPEmavdYhyo5vZQ7aMWRoP3bogQmkdf4jJ3vretPTL6ZuvNJNAGaYFEzB", + "stacking_public": + "xpub6G5n976yystA7hJ11iUXCEcSJJp9jJ6eP5zduYkJwwqH6PNYyeYm3bt1MvqNy8x33yKbgtkYUaEYgcyofmFGUQBbUq6BhG2ZWjYbf5EeR3A", + "stacking_private": + "xprv3TE3RtV1mQuffoVYZWZS9CcNA14S4XvrMETwmJ6TbkgXAcoYbe6v5pFH95xBCSVMhExew9kA2VB7hztLXZx1duvdt38NPMWQ31Tcm37GvKKGgFvREGZZNdNPrchJUtJms8cP8nDSb7aoZcd5N93SujJ", + "account_private": + "xprv3S95zwso818ARjituUTjjowZ6rjhY6GhS9bxaFPWnnmgnd8zkVuBX9KCtFLBoQr5Mq5PtuXza2V8yDQp1mqiFSTVVEKhXTfPEmavdYhyo5vZQ7aMWRoP3bogQmkdf4jJ3vretPTL6ZuvNJNAGaYFEzB", + "account_public": + "xpub6CRrLB43ANoDsViVmUY5uNd3aBVrS7Z5HF1St682g34wCCTPFms7EfUReMjszB5cTJx34RyRqFsW9DKWEhFC12vBa8mW8fAfve7GQYakHuF", + "change_private": + "xprv3SoeYrgUdmVSe12gwoXGARKuP24aRaSvVdJeg9GJLt4V8BaTyfSoin6dQNo85rrsEYf3JS1W1qJP94428x3e7j14tgcTZEfC9KK6YvMt13EohyEBZ27dM6WLKNvWhjDjpH3inK3rdG2FK9Z5UsTy2we", + "change_public": + "xpub6EffEKREFcFUnG5LkHpHKBGF9DQxFw3PAnfenWyBR8u2GLyUxJLBgt6AmKQo77pR45tf5VpXBowKo7E6NeqZr5LZ89Azio8a4oGQ41afm37", + "addresses": [ + { + "address": + "addr1q8npv52n8xv84d4z0uevk2e736e5fswq6el453cmqs9dz8rwexqsh6xze6cjsrc5uk8swlgsgnzrhf9qxaprsezagyvsktl8gt", + "public": + "xpub6Gyifba49SdREyo4HYjw9cDWxNeJUeYUTSafrUY6Gps5Zn2P8HDEkeQHhs5uAw743zMEZCgT5VL6LAUmQZ9QqzfVLrgTKhSCkrrx9Lt3iej", + "private": + "xprv3TVULVqKDvj87aXqq78sgtgY15ViMbHUeHg9rpdw2nUv46NaNAsLn5AT5ELNtzxpSHW2vLUV3eWBsYLKsw6SeF61rqdNarnaBCaaZWF2sNak86SL7U6CRJcj7HFg6W8xuTN1VUbmCL8MjZeSJbAifZk" + }, + { + "address": + "addr1q88pskww033n043asjq0kunvveg8t6a28nzawcrjgpytq0mwexqsh6xze6cjsrc5uk8swlgsgnzrhf9qxaprsezagyvsx2a72u", + "public": + "xpub6Gyifba49SdRHyUghjypXUwN8Vmspo62vroSXEpQuk45iebSLa4QfHMmyosYv3rh9rqaL3CaH5EEPCRrEkZ7NbjauLu7aTpr1sM2pZ3BzHW", + "private": + "xprv3TVULVqKDvj88U8LQ2iHzhjtsLCnWya7tps7jyuf5ySLDjwR6h7DDht41RjEEewmChYeAedw6ckR6mwbueuLQE1k3Nq65kCKnBSSYwXcd9MpMnuEuDHkVPBLhBytuF6X4ZUryPpPKP2PxDxQKMVtifA" + }, + { + "address": + "addr1q8pvtq54eeq75r0cmu97u9jm3vp0vrhnuus9thczvcg5m3rwexqsh6xze6cjsrc5uk8swlgsgnzrhf9qxaprsezagyvsew890f", + "public": + "xpub6Gyifba49SdRKjnkyAcSJ7X3CFfQrM8qSgoG8jojUvAgNB9hN6qqufqQwKF4fYdotwxt76shWXCBXPhsZahPvm2EsmcMvHaRvCRrdVHp9tm", + "private": + "xprv3TVULVqKDvj88zX8733JucfeorikNTk9TnXhmwyZk8EqxyMqLfSbLe9Enss8wrJiFco2J3KjWnh9AB4hsPba8MtGcy4FTHicoacnqhEpWRsu3vJPBBSq1msRbjTxQ49LGfZTiQNKqAmRYWEHxLbq6Ho" + }, + { + "address": + "addr1qxuhax7jgfpnt2pge9n5d9k8th3kjv3hhee0p4pggaut5jnwexqsh6xze6cjsrc5uk8swlgsgnzrhf9qxaprsezagyvsav3wcs", + "public": + "xpub6Gyifba49SdRPKBhBRha8xb4yRSiSFSHe7xWzVrcAJoH3p4sLb4ytjbrHYXuF7ejP79JWDzuoMuQvPXFGqgdsBZtMj2J1FMHxFdbTZhnbDk", + "private": + "xprv3TVULVqKDvj8A48TpmHJM9Ns1QUTXCFWaouZdmWbN5M4GKF8YgpQ5JCxTaTGWMgw8WtzfRnPomsrqfZ8GbvJ4HJGkEMNCXY41AptMViYTsKoot4WwLcGMuBBR9Je1D2gNAk9Wt5Y7etsVfLkHnJ85Nr" + }, + { + "address": + "addr1qxn5achv7zzsa9r8kem3fgmrs82tyn6m08d3j9km557ej6mwexqsh6xze6cjsrc5uk8swlgsgnzrhf9qxaprsezagyvsg644c2", + "public": + "xpub6Gyifba49SdRQHuh5o1zW8aMn9qVQvHg5G5qLj9yk9htwwqNAZfEkcQEcrZYa6qHD9QQKb62yyKo26Y3AFpirtBsNPnyKpoEU8EZjRQsQPx", + "private": + "xprv3TVULVqKDvj8ALyoB9biNcnUJ5JNeSWTEuo1ucBs6KefKstcmV7ghC9qbombn8d6p6FhgWNLW585qN6RQtVoxcfnD1DSg4NQVqQ6A9n5srtgLZv9wr83M7qGCxanS8MeJkpiQaqfWNsmpAJkPHkSp6U" + } + ] + }, + { + "private": + "xprv3SH73788AGTfCpZsoRAtMmgpJewusMdtXhDfZnGttztzUmiiwwXMBGuS8Wu6KxUCngA8eVxbhN1j5PfNhuEXUPpXorLYeT8kUL4pLwCPQb2ZqwFCtnD66bL2KyNBvWuNpoEjZLtM3DVJdHgcSP2LnCT", + "stacking_public": + "xpub6H3wiJti6uvCoqjwwxXU1NKzZE6Xczfca1y2dKEhVMiq4cQHJXxqZMgN1xsW4X2ejAAacsrHZ3enq4JKUpfw4uXauFmdrCXHdgKKnYvSzPU", + "stacking_private": + "xprv3TWj8ZAhy3xCMWbxwddeLapLr53nkUP5BhtUjA6SoPsh17qdBhQSz7o2NRKRp99iLUDJG3VSEJk9n6FsMVKaw6SkdzTVgYe2pA8PhBQMTxwcq4Q9Y59toFsVK42PdumYb7sQWjpRX1ysQ8z1G6cYShL", + "account_private": + "xprv3SH73788AGTfCpZsoRAtMmgpJewusMdtXhDfZnGttztzUmiiwwXMBGuS8Wu6KxUCngA8eVxbhN1j5PfNhuEXUPpXorLYeT8kUL4pLwCPQb2ZqwFCtnD66bL2KyNBvWuNpoEjZLtM3DVJdHgcSP2LnCT", + "account_public": + "xpub6CtqnZEB2cTY8mjBAYn8LGoHnpuFh765f8oqdsX2wq2mkkhK3PGf5s71eUaXgdjEdgX1Npmqf5isBRC4jdX91zxpxjrjbR7WJZD2waCfGZB", + "change_private": + "xprv3SrQttSb9X5gLWCtWrMwyswEhXEd1fwxNGq53Hs41NEfMMJzzKCFsDHf2KWycH6LRooY67PTrpgzB7ieFFdhaXx2JtiY4gtW6ZWzsYgkkjweyvj1BWTJk4mjfu8pfiRZa2hpoV18swg6dfb2akok5Sg", + "change_public": + "xpub6Epy11c5kCZskXYwKTXUxWths9sc11wVWu5qnnxnqywHov7RWJcqgAMBubSqzNXxnooe6MDtQ5XwdLrHnuRB6gjsG6q9fhWzGbTuBHsgBmj", + "addresses": [ + { + "address": + "addr1q86xs5zxv8zvxk8sgc58pxclc047jvkav7yhemjd9p8xu96hp8hxz3rm24utswtpq53rszfql3k5nc90q2w82g2mz0zqeqs6dd", + "public": + "xpub6GDiqcPimjnBoPVhtexJVPTtAZWdw7pQpLHsPUujRn7VuU53c5jmsBNGsxZPrAhUd8AUwA8NPjgFrtCnrF7SWjHiCBozX4tqsT2Tt49Vfft", + "private": + "xprv3TGQHY4oVD32mp5UJJsiaR7MG2jeZZoqsvRJu5Wd6h6rwDQiHWFUwE7dxCvJhF9v89QsaWo1qzbRH4CNcQSZWpm61E8BZyJW3ruspXHKHuZQbzKJ8v1hNp8inQqZRtzU9CdhE6Xnya7vH1KV8Xa8SWb" + }, + { + "address": + "addr1qya2jm2plpzknpgnuxthllzvn8azzss98754fzh9nekp8g2hp8hxz3rm24utswtpq53rszfql3k5nc90q2w82g2mz0zq74f6zl", + "public": + "xpub6GDiqcPimjnBs3e6zNrvQrsuvsHfrLVPcjfUbgB63BRJGHdkzbv8ZQy3SCbaiimK3PvNMKQpmZPySmzWjfRM8HjHK29pkLfS5pDgWpHcXJd", + "private": + "xprv3TGQHY4oVD32nu6e9Px57pUWfVrunB3eMzZwHuFY2cY1xXYtA8RXYb7NDa4cWpwKZxMirugYhAyQ9LMt3Ha8LCGX9zNLCr9PNuTygikns3RKMqMhuBdWGrDXwfzL6YrrvjpNUdcKr3jQL6xgb4CsQwx" + }, + { + "address": + "addr1qxc8wpjw3x6rawttka33p6jznmmxjrnm8vr2xhgnplfzp9zhp8hxz3rm24utswtpq53rszfql3k5nc90q2w82g2mz0zqhklnh0", + "public": + "xpub6GDiqcPimjnBsucE48xNSFz1SmL1axu6eDgWUbdZVmTJsF8k7mViQzUS7HooFhF3duf7ri1w7EULbPN72LCrEmGoXJDniEGp9TK2QNWdgLd", + "private": + "xprv3TGQHY4oVD32o9wZd22nXbcyPmkg2sykLkZK9vvgCE5jMfAcjL4UrSbsEk99mwhiUxwjPYJYrshvinEkwP5PoELiLegEySMuLfXHhKrHvCXoYQSP9kgoyH5ZQTjRwcpWxuDttaFBkSEU5wkR85KoSe4" + }, + { + "address": + "addr1qy46hpzgw8e6a8ajgxgh2r35eg26jdhmfwmmgxxd56yudhjhp8hxz3rm24utswtpq53rszfql3k5nc90q2w82g2mz0zqu7w5pp", + "public": + "xpub6GDiqcPimjnBvyZPz5xYR5Q5sDfNZsHEh17dEmcWtiUczrDt7TQ9MqMWSG6g8AwvDia8m7cB5wfDky6PV2g8vhHeXhE7HTR9ZwRQHQZdTAX", + "private": + "xprv3TGQHY4oVD32p4obG8dWTrodiwYXJTadKgCS8B6sPioFLKWrF2HAycRuMaa5XB6NFJb92nRmBzpEi5MwVNsEobvgYLGE5uvncM1kq2s64eFmdysdBHZobQEixYZU96RkhTz8fijssZuvBq99fxw8k4b" + }, + { + "address": + "addr1qx3092hsa8fdk5mf932apwat2fgt348t4r6z3g3vnmj7fqjhp8hxz3rm24utswtpq53rszfql3k5nc90q2w82g2mz0zqsu2qhq", + "public": + "xpub6GDiqcPimjnBzR2c8g67kJF8yahEasFrNgUg1i9GS3CvZ2Dg1QKdzcSApQzwqLRV7LcQHERZUV7aht3NzQSkrvQnrCLUQTXQR9uvYyzZcKs", + "private": + "xprv3TGQHY4oVD32q64N6kBvZ5RYYMhsUTtQ8MvWvhoMiUDheZJN2o3QgHQJtHih2hd9yrQXBWQndBpcaeyeaHLTAfqEEUKzoZDudWANPNo2nnCc13mHUXZqNynoLxmSusLcouvWEo8X6qiPNe2HKjm4vhT" + } + ] + }, + { + "private": + "xprv3S5CgzyuUMCquKivEG8aEHPmKXfKhaRxdwY67WY6K43esrMSAiYKQXAfZu5YtE4kGyqxYFL3gf24B5bBJfRBtjbJfct3bNGL5eHP4K8baQno6f7k9ERYvG25EcAaAPb93s1VGKhxh28okR9kvEB7hyv", + "stacking_public": + "xpub6FcUesrgrPiCixdG9VQpDUptGaZergPgsbZHWSFaxMGkGsBvmJ9rH2K5Bso748ECjmsEtyiZa55DwBCQ4WFvu2kxGKFqdoxvSUucxjT5hXk", + "stacking_private": + "xprv3T5w33jDERqss3VBpHhWbYFWo1Tb7SjymE9GuasRq5WeKqoLUPpC2QWcZkLMVyKwKptm5nsyh9vWxkhw73PRT8HpwG3fC7gKb3k1DSPo7vZ56yGwCbtdEPng63NobDpa2GMfWgytFYYsT5HtpfEyavU", + "account_private": + "xprv3S5CgzyuUMCquKivEG8aEHPmKXfKhaRxdwY67WY6K43esrMSAiYKQXAfZu5YtE4kGyqxYFL3gf24B5bBJfRBtjbJfct3bNGL5eHP4K8baQno6f7k9ERYvG25EcAaAPb93s1VGKhxh28okR9kvEB7hyv", + "account_public": + "xpub6CCmsYZaRptNBpWm9R8gvAogWQ7jVUJSHBxPZrLT2fN6voJSkRKyKcwWhwE2ZWs51m1rrzDD7bNq1FmEbrZrWhR1yXAac9Ph6G4bz8JafSo", + "change_private": + "xprv3SkPd3ZFoG4ytPPk8c5EMtAbEK5fsbi3X37RQrajsMgFyytWzwVQdqXviu6DxFmmPwqKuKjsbMYxuew58KAHC9a77T7CWmN4xYpeCJMfMPyqhzKd6scwxWHjoWx3cYxbMcYMXviQ4vYAkfArXnSxSBK", + "change_public": + "xpub6EUhF2tSajVojeGYCYZ14FpGYP1HxYo4uY9TBhiumNtEmEu6vgVuHVi572kfogAaXDEHQUShXVE3a3grZTNUYg1ahVP39pt35d5SFEtk2yq", + "addresses": [ + { + "address": + "addr1qyx3xfk47qs474uz32dluz0jlwzrl8vkw0guvyxcutdlmz3myt0w2mm46kymtzy7y5w87d3lhwqms3evvzlll7wyv5cqt60e8x", + "public": + "xpub6GaHS7bRp1uMvdmCbNcdPn1R6S36BhfZ7zD4dCJuFqksE571wm18BG4LvEvNNDW7aKotDe6kZKhxZuiK7DdpQBPYbWKKBnfVDBpnVBFXTfd", + "private": + "xprv3TNWZU6VegcdmfDaVcHomaqNtpqb7dzJ6yd3WnrauLxFZx6zxKNUMoDtqHjfupNUtnhigsnngHQ6gTV3rxryxQr3N38cfmEasJPZVhZXuE5q6bSJK6RaaEvpwNpq6HCswbQGUVCJYXfZ1gTVQeeV1Vj" + }, + { + "address": + "addr1qygqkvseveywjagldpnmy0jx7n00wl3p6l0t6xgpanhr2qemyt0w2mm46kymtzy7y5w87d3lhwqms3evvzlll7wyv5cqxfsss4", + "public": + "xpub6GaHS7bRp1uMyjwB3dd7nMrbMCEf2PSTLnYJY7DpAWvudtW7HwXabXizFGfcFcgWfMHmPXG8ZxDypJkTcPnh7rZAEJ5UsL2V5j7CPWzDXWe", + "private": + "xprv3TNWZU6VegcdnajsLq8qo7AXBWJr3hvADjP1VMquWpT4m9hAF6W2gFi3Yw4LvrAKL5rbrXbdvKwJEjaDZSuwZT8vD7F2Fpw9TEL6MSsTQWiJqRn8UfiSfYQE1nHytqaSWaogMAi7KhCZmP63TCVdvUC" + }, + { + "address": + "addr1qxkgg0v64xczue230mc70tfuhs3eln70353hxuzvk0lpj63myt0w2mm46kymtzy7y5w87d3lhwqms3evvzlll7wyv5cq883u9e", + "public": + "xpub6GaHS7bRp1uN2jdXpTBYSQX58vMUh7Fd5FRSiix7bBB7pawNER2YDLSHycdUBiaFZ7fLrcXMviiTsxTyvL2iVTsbacqAtpEiHQFfARmWDQ7", + "private": + "xprv3TNWZU6VegcdoULaVXPwBwZJ6RYhTDPHHvpidHHnhuiArroeeKodL1gDvxbmH9wySMELU28qzzAZZjhZCM69hiZCaRdZm4aVDJ2B9UfUwBePkqcNxgXJ7316xG3scynrz8ofNRPdvKpGNRWrcE3j2b6" + }, + { + "address": + "addr1qye3hsqpdjxyzm2qx2zgkm4jec90ylh94dz2k9ytkz6s8lemyt0w2mm46kymtzy7y5w87d3lhwqms3evvzlll7wyv5cq3ztsah", + "public": + "xpub6GaHS7bRp1uN51KYkYRJjaoZwhRVDHFKrsFar5zer6J4MH5jbjrct4Dm5SgPYJX1dTL7QvQve97MaifZSzHKGcoa5F1u5RtdtPZD1qHftqU", + "private": + "xprv3TNWZU6Vegcdp9TYSpCTxaM7XUXAfuwZP4mXRSiPM7i4HQ4Z18FQZvTeg6wu2YhfnGBJCbWEBz3yGkzqL8KcXeuyz4WLBzdm3cNi16BUaUSz2XxAexf2TrFkSdh1vG9uVZZ5QT8cyBmVXWsx9Lkekg3" + }, + { + "address": + "addr1qx4wy4zezd97472f2ky6yuq9m80fuywmedh0chdzhzgl9ufmyt0w2mm46kymtzy7y5w87d3lhwqms3evvzlll7wyv5cqe9jccy", + "public": + "xpub6GaHS7bRp1uN741hZgob9u253ULRzBLxJoMe4moapxKt1mJUEeiPTUjqAanzTaFndoGMsFkEbR9nUjzKXTtiz5oVhLm9uUEBNspCynZnGco", + "private": + "xprv3TNWZU6VegcdpkiZd4Qi4uEBH4FKUs2Jxa3zZPmtjXXypvw2UUSqy7HR2EZFbTcGjKNvd1PwezhJ24xATSQMX5ZeKCtRSkP53EN8KWG3admt8YZ3ooLxTJD49trJoMtL6R6Lsew773HyPCkc8K2B4rE" + } + ] + }, + { + "private": + "xprv3SRJTdzKh7UR4tUdvJcW18CAsxEzfhnxSMWe3zVCJ117J6yHTHjgAh9pXvqn2SdTs8ydqqAqqouuFdxyX7SGjbZkHCrCaXXDP2umRwzY8RGj6uv3bAFxRak88uGZhHDLL7VhEr2XFE8bhELKv8C5zFx", + "stacking_public": + "xpub6FmDY2a7MQbtTwFU6rjNQDz11Lpwhh1YiQtyXasxANnPLcneFFcfxVTtsYuDRjURg7Kfb5znNGFC1Qt1ZGnErijfFZmN5sZSvDYyTzewR3o", + "stacking_private": + "xprv3T8XcRJ3Wy8riEbSciu1iL9Kh62qfdrRWcvVV3Sq3irk3WjcqQKjPhDAeCE7NT9Vumio3Z7jsJbqdXiZ4TCSCbxgmYrcufU1aCSRbaFZw7RpaXVMJ2Li56fSEcP3D26VPdGBuvfKnpsBXMNmZYjU4Qo", + "account_private": + "xprv3SRJTdzKh7UR4tUdvJcW18CAsxEzfhnxSMWe3zVCJ117J6yHTHjgAh9pXvqn2SdTs8ydqqAqqouuFdxyX7SGjbZkHCrCaXXDP2umRwzY8RGj6uv3bAFxRak88uGZhHDLL7VhEr2XFE8bhELKv8C5zFx", + "account_public": + "xpub6DNSChukc1b7XApCzV75cZqB6WAg4eGCE5P3Tuk9jTLLR2SP19S8u1JAcVy5aiKg18zzascV4dQAFQU7xZbhnBVnSvTRTuGHaNMhqK9Ui57", + "change_private": + "xprv3StzJ8yEP432vnNDb9czvkCWed8dXiYz91wHnAC7uoCzbfyWCiq4TvMbdy8iny1aibNVtqBtt6D9ZwdMcndb8ZfNrnFjCHpu6Z2o2FyPcd3ZjWUmyjM1sw569AJoRD8cSYQov7KDGgNt43utTAC7kNN", + "change_public": + "xpub6EydvqwYBK6eFm7PkmuTAi1JxghrZ2J5NouvTjMnW36fv4QLvGvrBNqTxCJpebxH99HY4jfEhNN2sH9d5CuCeQzDTFSGmNunr2AEYoSKHmQ", + "addresses": [ + { + "address": + "addr1q8l8tkds4szckc7ws530mfv7cke6xq4eaanjjn7xd0g2xjdrxfkxd3dkd9g2vcltgx4jktd9cj4rhlqejgvyjl2pncfqnlkdnt", + "public": + "xpub6G4FkCxQoGbdpN6oUH6wd9JUvCZ3e9Vf9zgQwB4iMBvN3LHk35A1Qb43dWWUnmk34Qoze4TTdfq9ah5nqoYPttFqbbQAQkj7NRJCch8rgK4", + "private": + "xprv3TDbAt4wmYQ1MuNqSqEEsgvNddnUkvPhFZ1cnt5SrNBQt2gk7GiDssUfyns1TyqZs5KQpLNmVPwxHNCPejaTWAZQL8X8NQ1rozhUz1JnoXvcyCnKetJQHVkoN97xCSJADMmpLjKRrM8S3TXx2ceKqk1" + }, + { + "address": + "addr1q9ms42p6h0eyn0ccjgf0ue7nrn3nkrdp6lvjfh03htpdwgdrxfkxd3dkd9g2vcltgx4jktd9cj4rhlqejgvyjl2pncfqxvhjqa", + "public": + "xpub6G4FkCxQoGbdtNpKYg1uSznGZgKdftuDZsqTimP8ECHFnFU87UhwXBbsbqeh2G9D9aXHdgqiu1miRZVKRozYhvUsH8s9W241S8Qq7x6z26d", + "private": + "xprv3TDbAt4wmYQ1P6WSGzomUoWpQvLYUg3GEM2MGm37pUFrGRqHbMr3KAtyQwmcWCjvE49NBRoqj3wH9GsjoDrriVfpbFv8SyAnx1et6Jcrb3aMVYAWA6wFXLfJhYrwuWVixipiFvZntgEvnftGgysynhY" + }, + { + "address": + "addr1qy4fvq8f3ts8zldlex3t0ef5usa553z5s7nh6est9lut8ydrxfkxd3dkd9g2vcltgx4jktd9cj4rhlqejgvyjl2pncfqm6l3n5", + "public": + "xpub6G4FkCxQoGbdw7t9T4y8UNzELazfp3rNMA3361YJdekd4bdjHiA525np9BjGMTFYa6Xrv5TqpGTG7o8BmsuKEASfH8ffE8vF1y6jf1Cd9N2", + "private": + "xprv3TDbAt4wmYQ1Pum5ZEV2SJ9P7idkd3TpiFY8M1gUKBtEaXhC3F7PkHzAqws49eA1Gvfg6W5pVvBcLiAqFFjZkMLUMqTLU8CZE16fihVQiYmrprURmHZNXo1wYacBZNypYeGRhv1mYkbsbjUAjQhrZB7" + }, + { + "address": + "addr1qykvd7n9ym3963d0phl8m58ypdwln5h8d9rg2u4p5uh53s4rxfkxd3dkd9g2vcltgx4jktd9cj4rhlqejgvyjl2pncfqkq428q", + "public": + "xpub6G4FkCxQoGbdyrZSqUGbJJXvocVQWQ7DGFHLKph8VTo7gLREFmSinFyCeJ9JnBzfhHkEfYgFRCYT4x9eY3evmrcWPsVh74DKGb3NnrkEHDB", + "private": + "xprv3TDbAt4wmYQ1Qiu2ihikiqmE7FVAMCmJ73gzb33cSf6sotTZndx1XpPYquNYLizANnmPAh4Lf57QHFsGoCeUZnoqvoSmg9k11uECihgKWGtmV3GKiSTaBJbU3JNCKUv9WM6ypTgdii2ZRGVAZtZJLee" + }, + { + "address": + "addr1qx352draqwax2q6y95ejw2k4kcn0xk0kc4jhu4kr9tqr7v4rxfkxd3dkd9g2vcltgx4jktd9cj4rhlqejgvyjl2pncfqpmh2x9", + "public": + "xpub6G4FkCxQoGbe2Sq6k1qP4UR9bqNuLKxK8Vf4Zgm7WkhyHLZP1TRL8nhdmWzCoNMiNnzdo65p5diqhBdpB8gUfQshYe6t8tFniNpbkdkuVBQ", + "private": + "xprv3TDbAt4wmYQ1RVY7w9mZiBDjYaDHg6TXQ6WowfhtBC2byVTjYg8Pn1w8zAG6Tnjivu5nARseU7TrPu2kZhGMqyvQJaXsjcj8mafbXzRqxzE1A2pXVUq4nJZBvbqCNuQrdEzmPUS91fmJS94Jz76Epth" + } + ] + } +]; diff --git a/example/lib/test/cbor_test.dart b/example/lib/test/cbor_test.dart new file mode 100644 index 0000000..f7c52a4 --- /dev/null +++ b/example/lib/test/cbor_test.dart @@ -0,0 +1,165 @@ +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/cbor/types/bigint.dart'; +import 'package:blockchain_utils/cbor/types/bytes.dart'; +import 'package:blockchain_utils/cbor/types/datetime.dart'; +import 'package:blockchain_utils/cbor/types/decimal.dart'; +import 'package:blockchain_utils/cbor/types/double.dart'; +import 'package:blockchain_utils/cbor/types/int.dart'; +import 'package:blockchain_utils/cbor/types/int64.dart'; +import 'package:blockchain_utils/cbor/types/list.dart'; +import 'package:blockchain_utils/cbor/types/map.dart'; +import 'package:blockchain_utils/cbor/types/string.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +List _testList1 = [ + 0, + 0, + "mrtnetwork", + BigInt.parse("10000000000000000000000"), +]; +Map _mapTest1 = { + 0: 0, + "mrtnetwork": BigInt.parse("10000000000000000000000"), +}; +void _decodeInt() { + const cb = CborIntValue(0); + final dec2 = CborObject.fromCbor(cb.encode()); + assert(dec2.value == cb.value); +} + +void _decodeFloat() { + final cb = CborFloatValue(2.0); + final dec2 = CborObject.fromCbor(cb.encode()); + assert(dec2.value == cb.value); +} + +void _decodeString() { + final cb = CborStringValue("mrtnetwork"); + final dec = CborObject.fromCbor(cb.encode()); + assert(dec.value == cb.value); +} + +void _decodeStringIndefinite() { + final cb = CborIndefiniteStringValue(["mrtnetwork", "mrtnetwork"]); + final dec = CborObject.fromCbor(cb.encode()); + assert(dec.runtimeType == CborIndefiniteStringValue); + dec as CborIndefiniteStringValue; + assert(iterableIsEqual(dec.value, cb.value)); +} + +void _decodeMap() { + final cb = CborMapValue.fixedLength( + {0: "mrtnetwork", BigInt.one: BigInt.two, "metnetwork": "mrtnetwork"}); + final dec = CborObject.fromCbor(cb.encode()); + assert(dec is CborMapValue); + + dec as CborMapValue; + final keys = cb.value.keys.map((e) => e).toList(); + final keysDec = dec.value.keys.map((e) => e.value).toList(); + assert(iterableIsEqual(keys, keysDec)); + final values = cb.value.values.map((e) => e).toList(); + final valuesDec = dec.value.values.map((e) => e.value).toList(); + assert(iterableIsEqual(values, valuesDec)); +} + +void _decodeMapDynamic() { + final cb = CborMapValue.dynamicLength({ + 0: "mrtnetwork", + BigInt.one: BigInt.two, + "metnetwork": "mrtnetwork", + }); + final dec = CborObject.fromCbor(cb.encode()); + assert(dec is CborMapValue); + + dec as CborMapValue; + final keys = cb.value.keys.map((e) => e).toList(); + final keysDec = dec.value.keys.map((e) => e.value).toList(); + assert(iterableIsEqual(keys, keysDec)); + final values = cb.value.values.map((e) => e).toList(); + final valuesDec = dec.value.values.map((e) => e.value).toList(); + assert(iterableIsEqual(values, valuesDec)); +} + +void _decodeList() { + final cb = CborListValue.dynamicLength([ + 0, + "mrtnetwork", + BigInt.one, + BigInt.two, + "metnetwork", + "mrtnetwork", + ]); + final dec = CborObject.fromCbor(cb.encode()); + assert(dec is CborListValue); + + dec as CborListValue; + final valuesDec = dec.value.map((e) => e.value).toList(); + assert(iterableIsEqual(cb.value, valuesDec)); +} + +void _decodeDateTime() { + final cb = CborStringDateValue(DateTime.now()); + final decode = CborObject.fromCbor(cb.encode()); + assert(decode is CborStringDateValue); + assert(cb.value.difference(decode.value).inMilliseconds == 0); + final cb2 = CborEpochFloatValue(DateTime.now()); + final decode2 = CborObject.fromCbor(cb2.encode()); + assert(decode2 is CborEpochFloatValue); + assert(cb2.value.difference(decode2.value).inMilliseconds == 0); + + final cb3 = CborEpochIntValue(DateTime.now()); + final decode3 = CborObject.fromCbor(cb3.encode()); + assert(decode3 is CborEpochIntValue); + assert(cb3.value.difference(decode3.value).inSeconds == 0); +} + +void cborTest() { + // some decode test + _decodeInt(); + _decodeFloat(); + _decodeString(); + _decodeStringIndefinite(); + _decodeMap(); + _decodeMapDynamic(); + _decodeList(); + _decodeDateTime(); + + assert(CborListValue.fixedLength(_testList1).encode().toHex() == + "8400006a6d72746e6574776f726bc24a021e19e0c9bab2400000"); + assert(CborListValue.dynamicLength(_testList1).encode().toHex() == + "9f00006a6d72746e6574776f726bc24a021e19e0c9bab2400000ff"); + assert(CborMapValue.dynamicLength(_mapTest1).encode().toHex() == + "bf00006a6d72746e6574776f726bc24a021e19e0c9bab2400000ff"); + assert(CborMapValue.fixedLength(_mapTest1).encode().toHex() == + "a200006a6d72746e6574776f726bc24a021e19e0c9bab2400000"); + assert(const CborIntValue(1).encode().toHex() == "01"); + assert(const CborIntValue(-1).encode().toHex() == "20"); + assert(const CborIntValue(1000000000000000).encode().toHex() == + "1b00038d7ea4c68000"); + assert(CborInt64Value(BigInt.from(-1000000000000000)).encode().toHex() == + "3b00038d7ea4c67fff"); + assert(CborBigIntValue(BigInt.parse("1")).encode().toHex() == "c24101"); + assert(CborBigIntValue(BigInt.parse("-1")).encode().toHex() == "c340"); + assert(CborStringValue("MRTNETWORK").encode().toHex() == + "6a4d52544e4554574f524b"); + assert(CborBytesValue(BytesUtils.fromHexString("1b00038d7ea4c68000")) + .encode() + .toHex() == + "491b00038d7ea4c68000"); + assert(CborFloatValue(1.0).encode().toHex() == "f93c00"); + assert(CborFloatValue.from64BytesFloat(123123123123.2).encode().toHex() == + "fb423caab5c3b33333"); + assert(CborDecimalFracValue(BigInt.one, BigInt.one).encode().toHex() == + "c4820101"); + assert(CborListValue.fixedLength([BigInt.one, BigInt.one]).encode().toHex() == + "82c24101c24101"); + + assert(CborMapValue.fixedLength({0: 0}).encode().toHex() == "a10000"); + assert( + CborMapValue.fixedLength({const CborIntValue(0): const CborIntValue(0)}) + .encode() + .toHex() == + "a10000"); +} diff --git a/example/lib/test/crypto/aes/aes_ctr_test.dart b/example/lib/test/crypto/aes/aes_ctr_test.dart new file mode 100644 index 0000000..b4d69e9 --- /dev/null +++ b/example/lib/test/crypto/aes/aes_ctr_test.dart @@ -0,0 +1,27 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/crypto/crypto/aes/aes.dart'; +import 'package:blockchain_utils/crypto/crypto/ctr/ctr.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void testAes() { + for (final i in testVector) { + final key = BytesUtils.fromHexString(i["key"]); + + final iv = BytesUtils.fromHexString(i["iv"]); + final plainText = BytesUtils.fromHexString(i["plain_text"]); + final encrypt = BytesUtils.fromHexString(i["encrypt"]); + final CTR ctr = CTR(AES(key), iv); + final encryptOut = Uint8List(plainText.length); + ctr.streamXOR(plainText, encryptOut); + ctr.clean(); + ctr.setCipher(AES(key), iv); + final decryptOut = Uint8List(encrypt.length); + ctr.streamXOR(encrypt, decryptOut); + assert(encryptOut.toHex() == encrypt.toHex()); + assert(decryptOut.toHex() == plainText.toHex()); + } +} diff --git a/example/lib/test/crypto/aes/test_vector.dart b/example/lib/test/crypto/aes/test_vector.dart new file mode 100644 index 0000000..7439405 --- /dev/null +++ b/example/lib/test/crypto/aes/test_vector.dart @@ -0,0 +1,201 @@ +final List> testVector = [ + { + "key": "69a1debf06a1a519a9574e9e747bccde170eb998431531445fcef842e015d5e5", + "iv": "abc6a40d05c308cbdf84cf3c8ce9d694", + "plain_text": + "936accf09676dd9aa9f93fa75cf50bff7f0e0164db12cb17f06af2e049fae18123f8b84730fcb5684761f885676443521c5bbf06e2898bc5aa3b45f91bff686383ebb8c1cb34d4f35d7a9465d471e42a89e54ec3ab4f97f9e528f5af0ead774440b6b3f2d3bd7ca06adfe9d1663293e8ab0b69e479875fa1b939c4065d5e7ee36674edfea07c14a6ec6dfe63c45ff2f6665d248980d44b", + "encrypt": + "47ac10ec9f90edda8e6bf9a51e099401ae9316543974e540c522d96cc53410e157db725005645b9ac0f6778dc9f1755a4a8b07776eba9b0f3d524d8b2f092d177deea9e9f21d02638511e8084c9a15dedbd4328f9912001685fe5db7e2a8c84483b095a70edb6fffc2dd2196a3b001ccdef168333165c43e632ca491e7b0ec5e0df7896094008309d4031e9408e5e43a9c32a46a45c534" + }, + { + "key": "0978852ff806440b613452762b3743329c5723d01401d29d5478b83a7071924c", + "iv": "05d3b53f0631d6f5b29284e2f93a54f5", + "plain_text": + "925b5670934cbcc380d2ea5b43b2636406e8a09d9e78dd87aaae43570d0fb3014574dc2064031d3f69f514f78db4d2668ee656628681dfc48a7ec06dbad80a8c8982d57134e0764d01b4c84078c633316ae7d10945c1a5d302b464367f11fe9c818420bbab11b617b7f3b15830cbf5fcedacdd505b97141d20a8e52a1271015deec4ebec32", + "encrypt": + "55fd708cad6c6d9f2f686833fc93c79ca980a6f2d265572021a24cbe35c9f1ac5f96bbc29d7e2a95cbae5e6af85e1bd0c064542577bad5c8e4f4d9520c466b31234fbabb69beb7282171ecaf9c07d7c06d4e02238c4244369a2bf8962b6368e83a75bde813729ca1b79de6f008230dae7adcf7c13d07fd5b045b6499a55b5e662ae09b4b44" + }, + { + "key": "343a23f350ab6d6dc1b06a02a346579629bf6d1bf03853070d298c1c4a0d7eed", + "iv": "ee8445bc115b3766ba5d9f8496545e36", + "plain_text": + "58d97101d8a7610e7923278f8d2bcf047445e37cfb9d2221bce0a4b181838c762e32351d75ec293edf6454288dfcb247b260300d06f6917a4418c5ad97e916ff5dc5cd45b1f4eb00e17a1d003fdd829e49d688ee1d098172f3f0b6218737710b392cd62c8daf688872943aa249c2401581ea284a9889c4ec6980e96fe6ac4a099f7f24de3c163e5b298db21e6c8f6cee47dca21a6d56f7ba6147aac5424a93d132255325abe083bc4c2b0eb86ae10d5d0a3382b4b9c524b4a69899de716e6d44d77ee3eb8d7b255eed630e839630d751068918a88bd22070b71496a3eb0a13782124b39d60031ad10035725e26b56e4c2d147b4843745d5e", + "encrypt": + "716eb2ad3be48a73f1ef5d99b9b222f938022536799e5a30712948743a761558bb2992f663c96549e90af8e7bbf1d436a61b069afe875533d82e66a9ba846fe0e66564f65e2392793030bd818ec232a5b837bbcb50afc984b1fa41edde390a017e4d2a058e03a62e5159d50af39461f7e5a70de08d836fa558dd5272f92f61b21004352f45c992f45b70bef235696930d49b4e17f048ca7bce2aefdfcd02bd420d7b5b22e4d9046cfbbb945360acdfc20dafa360a23e118c825f82c74525f25665dd2db36aea03755e9827d28bce393cef5d87c4f24866e78098a8375023550fcd3ff1bb3d8a44919fd42cde1f3d33f3b31067f52801b760" + }, + { + "key": "7e7b65d1011f926174cf64c1e46da1228d2d6d678a226e56e8f4e394e9790dc9", + "iv": "2d0bb0ba6b8a8958fee3d63da8dc1f1f", + "plain_text": + "25c8af725d75f49ed99ee4e8bfbfe2df4e51959d1381873b4fac3ca8bd625fd52755b54b0171be699453e5804ad7501f66bd666c2b53104d8963055925b25e9bb6913650a594b2edc89c7d2525138983cdb675f9cbc1546448f8b6d4b07287bc4d38abf2d11a5659d3afd82c95eeaee42893f42c5f1a505b7b59ac4eb045b693c961c265ec901a398b79b9f642ead66fb0093f016531e8fbf77ea5d85db66d447b06f2d8f9ab7268f6a24d40ab3f86cffa94b066f659fab5e24ffbcaee919a888b1893afce3d2149b09f310ddb73f4ad0aa35301dc7d27f6374c27b82a4172b305d2a90b7a07673ef7e12d31f83743611ad8fdc47b", + "encrypt": + "27386b5a3a9dcd0bdc09a545a55eba229d7a6c4d13f6630254af2f8d6c126b3262c3546c7e8c642d71b1bb95d38d16836cab863c389eebafff56463e899ffe241b13771399b5d64b584c036051f8fc2312460abf1a23a5f28c1c5a7903afdfe7cb968a8d353d4640e410bd2f8105c0ac378cf65113f71d375924652b6594bd7e470ebf11cfc7f94f586d84f26938f97fbc29af08d2139d0865f1c5a2baa84711e5a8aecf9cb9bc8e30fc7e7411d2fe046734750e671bebf3bb48a31b25593733f9e18ebde5eab1a9b3b9addc038464239491cee759fe0fa9b18871f3fae47d45d1feb72907e01a0c3e497a3789b3d21f6868242973" + }, + { + "key": "2fed1eef9b56053207fdae7591e929ae49d6baed361dc399dc060b0dad8f3aba", + "iv": "80ae3a499d92bb4525143802a355fe0d", + "plain_text": + "d04f991e5340b67d839b465ca199f8155447efea973b33c6a525806f125fcfafbb241abb0c46dd4ce94853d9afefa76fc1714df760673c148f1bee19afbdd76257df2c639ca1b718011bb2d62396feafef8f437332f934e24e1c28cbebc5e7a5cf84973d297490d5191fb0528c36fe6102871793a01249551eddc1be20da879f3a5464d39a08ac394140df2267e752de182992e18e02b27160320e0230d6b8a575184b829d25f45303c5bcdc9990ce4bbafa802da0a6f9ee3b7e9ebe38358a530086ddfca5e4fd136a5d5b709fba0f3215f2b7649e0b042c11f7da358ee471a0bab47c0ddf", + "encrypt": + "b16c721b5e6a8f56abf2e2082562bc311cc3717c0f4ff573916ac16851953592f3cee9d5add19b574b2d43580a7df98c37636a59a212c82b3a28fb6eea87cb77457ac0c41b15296fb22492c5e9200e65da342a02318ae5f625dd52b1e5fd5ca99a02ae7c7971ab5bf3c519afecc4afdd810bce83c069795c32d0c832097f76bba73a80ebeb212c117c496bde0a2edc6d3a08a55e330fed99eaf0320bf4e0c7939a26eb4ca774aa4db55f37045018a66149e416a1b6f76725a03d6cc7ac8397552dff86b898c2aca0e0115a467a436fdac7c8a76dd9b7efadf8076b2203716dfe1d2af47804" + }, + { + "key": "13c8084182cb257868666da8884111e40d6af9dcbb65362dd3bb1b2372102ff0", + "iv": "40c9f1b09e39e444de09d8da70ebb086", + "plain_text": + "8be26bffe56c2f356a9ac87729414c4e1feecec02c108fa0842f5fbf57cb3e6ba356135f3c07f875911060433bff56aa8000994dd01f0ef341eadc7244660e940ff9bb7a1948609f9e6545e528452093c8f23b511358e212d6b908075401fada126c8fa6368cc24619a2840073b6ba0e2dc63838199cd0dfa3369dc94ba5e40eaa3e4f864b0eddf11e530b7b6ba63d6f5ae3386dcc3da947097366031625f763bf4763fdf10007961174915022fba96f9a854a2b0cf917236159a82a1945bbf3a3d1217bd57aaf1619ee091323f32be43ea9d97a01b08ec743c176f630ca774978624acbf1e3f4cef44dc3880dbd039cf35ab7", + "encrypt": + "befd06d3d2f14f6e02db19b777448036d192d74e12c9fce06be05b630dfae663ce066b0397339327dcdd85031fe8764b98942cb5ed6ebf1587b05694e0fa24732ca64f9d295df0c5c897eee706c1902c690028637a162a2fb6f0b005f88e986eae32e32aa17e4bbaddb120dc390330ac2bfbbd81397f0c5ba2d3c04125ece95a3b4feca40bc32f2e34a9ba3afb7281e4101af1d985858595101cd0bbddf3209eedfc161bf1edea6f14e9c27aed961d5db8f80782f9c3ebad424e7a665abf4769b736239ef014014c2d17decad8f3eca7820da664d43cfcb38f57278b67a9cdd68130a9e3d740b1ed10f03ab2247424a62d698b" + }, + { + "key": "7b1a5ded9b05b85384f9393b17ae26eb68bf0b7506d046765f8cb1459b9c92bd", + "iv": "3bc7f466a9e1552263e1a924b1a9248b", + "plain_text": + "468253c7a52e6cea11d18a180117317e2237096fc6989a61780354a4804c75b2d013441168aa3490e2e1a321a694dc871d4155e6b6d01cf939f0d0364cd33050638bd1c3a819d68eaf0181f94a95a3ff70b44b74147b95aa7dc20915fa02da48051463b327c412d1ba72b6d0f58feaebb047ec72d765cc", + "encrypt": + "58259070f1477de37c966bd99e25103dcee01453e52f4febbd52ae323f6717e69d4a34e3fc7540affce85f8aa9263b2934a14bf88e6a42b0dc402986331115766b95a31c95cf28170afecead3fd6f1df91f05e97bf77fd9bde4147aa19a9658d3236f2a0ce30b920371b62e641db9411716ffae56f650f" + }, + { + "key": "1c61926a88bad8acab7c9cb09b404f5103f84a5792f3f537d06667f3d7772b7e", + "iv": "28860b0bff3c0c10eeaef91832dacc4b", + "plain_text": + "318ce5f15eb81822077ed3a0d6b09b0ed9bc7bd73487524fb0905f8e846695363b7b972b96b259797fb9416b34fbbef004e3c1416b3c13a0974b260fa68bd25b11afc7b53367a651868fb3f4d6a9c776c93f0d1f6911cd839bb3a1805580ac4bf9eb41c94aa3ef568a6020b16b40632470ab32b3643979e913a575fba2833a4d5dfff1b41f1c873456b2b8c8b42a8028eb2ad89db6766a3df29b37dd9c1d98d627", + "encrypt": + "defd496a95b65bfc087a09942c3818dd71bf22b01d22c46178873e5f6f98f8484e05d4ea04430572bd14d8a41156813bd8bb58f4f250c7b3bb0f8733886c105ea6a6197e6b17eaf863e84f95c1bbeae0092830293b54b2c9de335bb84be9ac7cccc94b0ef138d3171b661ee0b77ee20eafe316712a69535ad1fc3b49407e661752dac8d7414e6108d3c3c679977fb77a472fff26261bf3d498512677949a8d563e" + }, + { + "key": "ed851ede746e0878134ef9de0a4c332369051359e71ac2e0b7cee401a2846bbf", + "iv": "60f1dcae9a9ab6cf3611832ff7353854", + "plain_text": + "cafc9bb4444846364f7bdbe8ec455fd7a5eaace56d35486785a693f6d12fba3fe10b850dc531cf26f49c337a75415fb70a55d6284c2e1332730f9fc9b6f1d9141b45f8927917696a50491de14f61a18383a4475c383d1cb65dbeaf585b7cf91ff69193d84de837d3bc2764e45b22633840101a059f51a48f9aee58aec8cc5a41148d491b60118294a9f18f1ed9bbc705d8ad1b6f0edd0314acc560f81c70a243528e07d36405a5cd4123b9318886adc74d8e91a9e67752c8b9b9c0205497c2ec38515fc23be6f35b9b62", + "encrypt": + "aea0e86aecbdd31d1c331ae82473967163e8092ca46b2858aef2d61d3e07724f5b31d8a1182dbee5d07efedb4dbe212fc4266b496f0ad4cea14cf6c6d24dbb5c69f01639ae6ea4f500f4fe43d16da24059cb2c18c3875ae6c6fa46a1cf8715776af92eb94d9ccad8c0c7dff0dabccdec07cda797dc82512f36dd790b75e0c107d25c12e7e2ef874beb4998a82760df91082771c41017a5c9d5f4ade3c1592fe236515c8b07d40e562504a2645a3fe32239e13a1c2ac557ffb9c6532906b3641a5c101345cf720b6e82ac" + }, + { + "key": "9214ebd84c5173c2f92aa121c3605f4fbb936d6071318af7aa6a7225ed11afa3", + "iv": "df50e0b3acf002a470981f2855a7cb00", + "plain_text": + "f8db03bd6d534352af6859c6622466479b6a34e2aa8345687bf8ea874b035bd4d9c99b165f5bb058cb3fde5e1f2ba4e7c9bbf7011c07632bd39c78e689cb84a6c64ea2c1c8b925801c7812fba821a9ec1d0b54a0a92ee2e8b88ddac237d18a94bcb9f6acaf515cf73d327a3d2577ccaf3a899760276a3b102de67c0aba3e69ef3d0fa920921c78117998c93fa14e1765625269a3a47b290bdf9726a2f5b539bd926d1babcbb6eaaaa15e0f04595edbba8163a02a04e3f7ce6c29cf4eecb4fb45b4ca00c1761bf01d5687ac", + "encrypt": + "d6e4bb39e44a5b3fd6ce4745d6989b1e36d89d55eb3aeea290d68d261b4fb0314ca4c285c6fbe48bb44c5150fb5b8b0be67f55e64539aa513b7cf061236a56441e2c5c5ed8ee9ee203b213531205154e6d48717b7a12b9d45ea9df27835168d7b02dd945c0dd6ca68c992b0b6d1ad52f4ff700ec6e9564c031108639c7eb380bdd88f80b9341059c405c7c3aa70c42137523f85b55a6ca51f05fd097faf9a12d44d2cb406be678a516c28159387d7d00a4347eba1fa10bad7b46c2ce2c8068b2a1d8894374ef9c62a5545d" + }, + { + "key": "8908d7370b4fd7c36cf4a483a5f391c2cb072b9f7cbb53d53479272e927796e3", + "iv": "540dd4dbb73642a5346784c39f709beb", + "plain_text": + "7a9adc937eaa9dc784b8997d0a84202b4a9106ed88ac8cb3b1e2e160167f27506c5dd1ec15eabd2e8fbfe723a7868c3ba32f79148924f8f35d96ed43ae7f1a8f2c0e6813f54e6e087eba94cdfed5b8da9b3552726ae9f89608244bb421cba67be69863b4265420cc", + "encrypt": + "55fdc94def33b1fa14b69a04b0e9fee6dc8d6550acc164fcef4959322e6e462cc342144d1d71303e11d889a921265840f0a12c4671b05d649dadd70bc33fdf2456ba4cb232eab6cc13b483bcd487e8dfbd52d7b081c85a5c102c83d3ab7be07357b3076f701df447" + }, + { + "key": "8b65e64a156c1ef17bd0e3afd28ec61648c7dca8b7fef6bea1aede13811b3597", + "iv": "fcdea8c48813caf1dea058c8484d4cd0", + "plain_text": + "90427ae9d754f207e5b6bf8c636f43eb633aec2b1e03ee8300d61230411820b9dac2a4f3a5560920ddb3acd12f5f918f3f894c805ba4e6fcb9276f581e7abd8c9e6170dbc11ac4155147d54c6c51e90cd8d6b902bb1ff6404e60bfc08c037d0a4b6b8789690296e3f87e7793ec2a9bedba888c391b5a92d24ac9b92080148e397ad894a48b3fb35b50b57c4be596d7faa0dd8ea323a2f8b8", + "encrypt": + "28f7c3e6cdf50926b8c0b072eee3b6f06cd5167aae6f9ac9a5d68c98723bdfada99d91d7e14d9d3274aca0fc97ebc38a2b524d89b9eb458857065579f23be1744212c6c153044743a7402244a328d0d7f054214ac8a455c0a43394835fbc23961e69c9b5cb32338a50bcdb2da7f417dbf58dd2e25d3a79e6d492197c5d737af377e83ef633b88e196a01b0ec15acc46dec29fb619016e752" + }, + { + "key": "0a95c1c36acca421cc5bc36e047c94215c4c1162b374d59dc46dda0f74517b1e", + "iv": "865bd81d053c51e21e81fd7b7be3bdfb", + "plain_text": + "15d561418d230e27ccd1b3868312bcf656059ded68c8aa155b3b38812b4ecd777c77e1972c27956432cf791a187e147ce5885246a4a3aca21a5cbc97fe1165ffa5aac4b769528495275460888dcda7cf74b1a6059e77476623fd8861dd5c303251b9d1408c531856352469f7b70e306eed246d8f18c3a80a42efb2ae", + "encrypt": + "5a69d755899ca9c8f3dcf3d197e544e84b02b1396385115a6facfe615f4f75b793fb74fd776277e54360bb42aa78026a63295c1fc5d047c83c0073c440e76943d5698b595950588d6a9029cb83db978098d0b5fc7e9e6139724b3cf76b0baf602146d4baf09c05bfefd7239da89e19926262a1addb7805b013ad61ae" + }, + { + "key": "e1d2e5c9b94826bac215b0c5773d5f2d4e15203d426f6ae8b53b817de2432df0", + "iv": "59d9dec91d7ab80866a86d5c9b445fcd", + "plain_text": + "4462cbc9667e029a712b6ec78be01c5dc5805e657f889aa82ac2de99434828b50dd5b54e6458efd554f85ca75ada41ec91530613a1dc916f8da905ff54f32b81beb7cd00e7c6f536ccccd473113eebe303dcd8e63ecf8cd3659293bab35e7a3075da3b88a65a7f3496d0ecd3036bf1", + "encrypt": + "c8ee62814197349ef206f872c56ccb8a17ec539180ef01441746b0063ce2d7bcdd08e042431322a483fba31ba92e03b9343671af1f32f1b9d13ffa09850c25eb48dbd18a8750bc6efa1efbcba0e13c0f63a15f89ade1f71ee74c892f9dfe8e92b57c3f856493cdd846d013fd815b0f" + }, + { + "key": "ad06f514e39ed82707caff90d813a05be53d5213d5328d7e826ae1cc57fad14b", + "iv": "5d988896ece82343705ec4ab5705a582", + "plain_text": + "078d341b973e8caa743a52702fb05056a9deea0cf45011bf0cee967f966f", + "encrypt": "35d97af249af7ad966e09613a9e6a2b6af3ad6f6b77548971491a2ccc0ff" + }, + { + "key": "131e047b9a03870c4be327bc13933a9e092472f97cc4faf20cbb5b94869f3572", + "iv": "190d29c8ecc1b0f362229872f3ac44fd", + "plain_text": + "476feb007317240e63813807fccd68810425d4a3cf46a1a1734ef120d42938cf5398ac4b1e6bcb6f985fae24d428d1f6e1b22fd1d294e998cb6989b412617786ef0355b945468e89d22daaab86774af7879d905c675c2c257758318ae07dc8950d840e0b6a64b8d0f661ba09c7d636fcaf7d", + "encrypt": + "82c5f201cd195ba304fc73a493567ae2f60d38c8287ad7c1c6217fe321c0c91406194476993b4c4e819284b4a03c2644b7b813e1175ad420879a2d92401b788f095ec5a14bc66107da77f349dfdf7d7bb0c492d9c606641b547c7b61c382d7e8947e8573ada32a171544c747bd882fedce20" + }, + { + "key": "e7fb581492f07e5737b230d2f9f2dd48837d1227961a61d880cf319262cdd49d", + "iv": "6a3a447cdf1e5d0125c64811d45a90a2", + "plain_text": + "7b236ea2b78f6d38b4ba2a9e56ff59af9ec068fc8878ffc479a87b6a5c4df109816620db14e68f38919eeb7f62efe9ab306940312e90acfdcc9824d7ca8956dd2bf45fec3a13d38c5b313af6db9388ca3fc83aba7c604f5110b70fd2ebfcbe5dc8e1e43a620a0f0be631f1b43fd3499abf336fbbb9da6bee6085e43c494f90420a459b9be7e7681bca0aee148e852083d20388f67d8f8e5ba765d0368c4fa67fa940c20c8e8686427b50b5ca0180512b4d28b01262b66949374cf4f66c45437425b5", + "encrypt": + "9beac811ee8482bc3641434bfa44c971426a0d2b8d749a4688e70c971afcaacb542056fec904016432d7f0c070a4980cef1c5aa3bff83d204dc502001076f5d2875365f6670124b2c79284ce4875582d21eed24219a00d8ab2bd65b16764839dc055137eddb9d921c1f8ec007f4bdc469096255e720fb635c02efa33f1e1fbcb3bd392ee35dd38ebc4ab8165c1e2ab2656afc1b4ffa0e57fb1765caabe4981358f03a298b5438e3ff352035526dc1dcc177a320dd6f1d0afaa41e4c86e5381ac23a0" + }, + { + "key": "93a18024800488abf7fb75838a16fc9a7340d8b47dd9e960ee5532bca51330da", + "iv": "d5250c3804d7e352ceb19a42c9267e37", + "plain_text": + "acc24a0a4b4dd5a542a9eae22657323fecca570e282982f77059a37ad9643e7a1ed67e1619f65f74416e5f581031696408cf2e20a79505818c5fad05223adc409b402f786666cdd3dd193562f0a806b9f592d991ab553b60a3f84b1bab4ac4ce101dc08064e8b65233abb67d3f9f4e02139095ee671b82ffae6fb0f247a19e8fdc3d0233738161a663b07a4b7c5c44f5a98785c97528b2953fa507b37ab54219680fc832c0ee0f9af0c23a7aa286c1ce69d9bdc62db62962d8dedc81e0054f9b0af84873744b5857b1c8cc6836a4482c0cfd00949c20f5ba18fe3a9f1470a7c481251015fa12e584a8ca4278dd99", + "encrypt": + "1caef9cc7c6d41cb6debc3aa4303080d69282119b8cf16c6574c70ecf048a67d778aa39d2bdca39655853af6c31308e3d74b32652075c7ceee95c6252517d12186502ab055f3fa93afb2c14b9c2a4690ea2f0e1277211664367448415f71264b27f5949d974917d00186b50ea9a8b3b7acbf09ac908fb4d53e780e8068ebb5cd9e826ebb2bd816f768a1c5eac84672c4ca9a48f3c352df7d01b546408e96b20702266f5581df2a4ed5ebb5a9e05421ac7083580fd1c19b8317842bfc9b2b2b808fb906d9d927ac701901abf6e8b5b8b3c330fe9a43745659f27827a4869d659fb36c316a4c88f349243c05857e47" + }, + { + "key": "d6752bcf948f7b0e8ac1578850cc1d4c47c76b7538f93dba58d96f3c0a82a70c", + "iv": "4c9aa8c7f71da23dd36b23039884557b", + "plain_text": + "bd546b037b7a8352c98ec0fe983625dd8072f29ada02f33d0637721aa56a74488cc6a4b4a2cb5f3a60c32d0fa6b825409ce68d1f48756c5b223c841c2084f3d6", + "encrypt": + "797c83e970c9086e3a30f83e1c8eec8e17a852106768e5d8f2f871fa640d34fce466ee9c0a38bffe8698b46fafb201944ac2be5ed6eceffce91e4d7f5d4feaaa" + }, + { + "key": "074cc083b09a954c3d62c7567bd63cd22d9018bcd6091ba983ac2933f5faec48", + "iv": "c88dad0bd565240a0c7071106711f5f7", + "plain_text": + "945d71596511bd15d8169ea9974adead6dde7b200189fa5e245a0c13b0cbf645f242a900b343dd5a186c2661ff3a362f652d983712084592660920c84bebb921c1aabfe42505928ec2f03c6fd5f6fc076a0cc7710cc224a0c4296a3853bb36a05e0b902b57c91645e347fdb749a87d0a005cf9acc3c9b179e9f739", + "encrypt": + "dae9f29fd6f84ecc5b9fa651c69ee5d041c35dd12c60113e569e16a97d298384e510c4e6704e6ef0d7f20c6aa247b4b2e7feb830c56d6b6f94655311e0c7800bdc4c487bcec517f238824eb45141f117292c909d2234b639fd45b3b9a917ae505410dd418a669fb82701d10a82ecc1bdc9cec069e55f7381706f94" + }, + { + "key": "4efeba7e4719b422ac2015bab086c830f23bbfd7144aaf49301b2f8fd200bd35", + "iv": "e6e583ad781a24811639b2f9e3aeefef", + "plain_text": + "3746239b40a5cd437b7e4a30c4741289ae71f486688176a3f7288bb1d6ebbe56d6ad340c2eda1c87280c66072294fe4e02f4ef4b014a510c6f96190801c89e320e8e90e7d40878b437103eca8073bc6b6125c7558f290f1a3f8b60f573db664691499423fdcf2030f4575bb8667b6a9b3afa75d8", + "encrypt": + "287018f0767a881820a55b737f4e1608d3b8e2e231ddddce798de2db43918895d79b46cd8db1a15e7e9804194428de1ebecf15b93f30f9a258a586093ffc7fb62ffc191258e18e876feea71ebc489b62d25e6b3d5b4ae8c0616519c28df0b31f76d525072c05e18b9bb25520a95ca7a403a738cb" + }, + { + "key": "9a5c28d388f45dedab08398715512a273cf0d780e63221b20ef622f4a66079f6", + "iv": "1814a113895dd5f999f0108ce64e179a", + "plain_text": + "3abdd681a4dcf997b6cc62da93670cd842f4282890b58ac3904e713dd1f4558efaf6ff4fcc2dd86845a9b7b0d94891080393f621ded8980e9df91ff0532a0a86f047d347db5a420d6dbfa43eb8298f380ddb85890cc9a829b79011787e37f939ba4c659187095476c41eaf2a438fdd0445427b3545756684c132c9cd76396713aaa7a01277be37b35a46cae3462bf7db5632b648c8811ce5fdc813242adca0213196b500930b70250c9fb905b06cd617d2d4532441e417a046588b08a9ed89180204621d943ba5295ea25f0f083dbd4c0f5bd9debc2dedc344f1ce756bd4868f32afb0b94067bc0688f8", + "encrypt": + "e3b7da5abfd18b123dbb9057202cd77a0c76b7239fe671edc08d219d8a81f865e06da5f8287f831a50004ef92764d9642f0cc40c617c2b979373aeeb52a8201663833287326b839bf28533a3ba2444a072bac6b7e98fd0c13ece422432cc581448e4c739f7198e3c72429347a93eb4515f2a2d65037c538c8a514c226b66b45895534afd895625b8c03cf865078e1f7ec214aef21905f40076069a628957cf234563f06c85c23148bd07d6f2c6374694eea9e1065d8923efbd9cc62b7816029842e101b59649dadaa596abb02834bf36fff9565bfd9280eb5b6888510bef26dd3c2d1d1b6055d5ffe996" + }, + { + "key": "1513ec302e11f19ef29fa75c82db8e2da1e6243f8fced93763e53aef97cf6965", + "iv": "a32fe1386428f65af8884e7b132c5334", + "plain_text": + "852326111ebf09a8d97ab718b5738a4183a16fcdf1893ab9d6b7908346acc3ff3d009578ce59d0e909686c7361d88fdfe172812a7253b2cf05dfd9a8607d71d2a97aee046d33f35fd3aff99c56029d5bf754aeb28371844c30256a245fb5f06948ffa0669043852f91dbd3731357a1f9bbf059e4aa36211ad8c4c4697d6ad6649c91bd300a9756bccae1e20f7cde21ab606dddd2b93cdf12671f4c42e36a3d664aadcbc84bbb0b998b53aa0e258f22e35a4da321415843bfd0f052633cd976fdb28106b8d4c24f6f151c89957125bf6a2fe1ea5cb3c8bd585d82f550def512cf92e127da0149cb", + "encrypt": + "0cd634bd1e96fd25fb4abec8df8cdf7166a3e09ea774209dcd653fa341b0b6f13c17d0c32e4d9e866c722248b6e2ef0939941b1da87d4c4c45c1e10d4b1aa83aacd2d6c15b808cb2ec57c9d3f254d7d14623c5900195582f6014df901a9a88b286e61a908924d7a9bdc9fdedbf3db647dd5103fe07e43af24923070bed5835d3e33702ee04d99a35e8b13f0442ff367afe159952bcba714580aaaaf54ccf5b38d04ef283a4f787bddf04b1ad2e2e4c4c87f57a1cded89e21a8188c79d2eda6830429a78517e4e802bf75b411b3f95b1a21f16eeec5b437931340314a3cf575e59f365320762731" + }, + { + "key": "e29edf55c9c45218cc7b01594f32593522007d96b79f62250d888489410d0ce1", + "iv": "c869945483910251d7f9ea4622b94a08", + "plain_text": + "b752e5af774b12faae5e52bf8eac5d39a7cebb38a9633ac74337d0facf14c1c6e0140850b4007ad42a9f3df4c5955567ea7714a6a49695aec60a01f5955af00efc052fe87e8046d758af7c210f8d801f48755bf9fecab61767520d85455bf669939f78ceb73af17335e036e519673df4945ff0efabdac6562fe9733d76a7b2fd8dec97b364aa438485", + "encrypt": + "befa3102dda1ab92cffc9560cc9ecf8ca3119f5be85b9acf993c2577fa718f9a5575d63e4aeaf0e7b89c80594babbc933257cc670fa05b85fca656ad022c875999bdfd8d93386f4b15a2b9fe03e0ca7b781f0eb353ce12c3642fb8b35669aff954a42056653afc2961cb0b48b18dc2ab9cd39a2a9344c38723a39036f59ea45b4401c82ee169985025" + }, + { + "key": "9098c98985beb923c82800dd6095d05a69ac3b7428f50162b22a49653bdfd870", + "iv": "3d8f75894fbfb9c1bb5b619718faae3c", + "plain_text": + "bbf1fa1438be8cad4377e6a696920b90e4756e9fd66f7cbba71cd2b581eff105859db16d2b07bfd8380d9dbf63f352a6b3afe536aac9f758c6bb4cb1ee", + "encrypt": + "2575347cb3e0155b1ec792338f05dfbb3fb8315e9e4a5248b8edf82d7ae1a1664a535509941f4a00eb62d5dc2cba9132461eae48630c13cfdbfd9726ea" + } +]; diff --git a/example/lib/test/crypto/blake2b/blake2b_test.dart b/example/lib/test/crypto/blake2b/blake2b_test.dart new file mode 100644 index 0000000..f1e52cc --- /dev/null +++ b/example/lib/test/crypto/blake2b/blake2b_test.dart @@ -0,0 +1,28 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void blake2bTest() { + for (final i in testVector64) { + final k = BLAKE2b(digestLength: 64); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.reset(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } + for (final i in testVectorWithKeyAndSalt) { + final key = BytesUtils.fromHexString(i["key"]); + final salt = BytesUtils.fromHexString(i["salt"]); + final k = + BLAKE2b(digestLength: 64, config: Blake2bConfig(key: key, salt: salt)); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + } +} diff --git a/example/lib/test/crypto/blake2b/test_vector.dart b/example/lib/test/crypto/blake2b/test_vector.dart new file mode 100644 index 0000000..2ff7c8b --- /dev/null +++ b/example/lib/test/crypto/blake2b/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector64 = [ + { + "message": + "e469c8b0b925d7758149b1c94426b570108405ef60fbc45ae056090ec8eface892e59dfc9286b1462af7e400fbf2205b592fcba00c29f9e64cb594dc1c1fe1f701081c0f2d772e929b7fb856945632ac2d0a80cee048c0b72efba2a1214b8ac0fe84d43b23c7ecfcf28543c06f226f74a2fbaaeb0ba9787608f3151c48f94f1c1afdf7ef68e9db14db0da5b165bdd1", + "hash": + "d49b7b66ef371c30e822c97f99876be02f6b5c1609f413c11883b07e25424bcad7584dde90aa46318aff85e9827ee27f37cf28276ef00811011c479a2731efc2" + }, + { + "message": + "ddbe480425c3530f05b0cdc1c959785e59b78529331f63ce6876b34d90837fef84e98342", + "hash": + "556e735963b2e4df2af95b825b8e57902f2076ae2a497f8f059e7c0ef5fc56747417e7b7a5828c57488ebd0ada95f2dda8a3a63709d4984ada54b8a7811bbc97" + }, + { + "message": + "26086df389e43cede880ef290825f95ff0b932c83be19bbfb5d9fde3eccb915e3ba4c60d8fda3b6c52260a5c3c1e5d9bfb0d7f0a7c1401fa139cef68c866df3d11cfc6f1f55f7dd435cbda8f67dd52b475837c5935407f0175db30d309a893", + "hash": + "7102dd5c380aac04f79da3c9740d2418b405ea35a36d980ea5e3a5f97a4bdeacc37832706d0886276f88512a79b1705d41e51af58e1e495baac13f0e380d1e13" + }, + { + "message": + "87e9b1e7d27d84c062484b1d9884d51e5647e16eccbf88b75573655fb09662a5b9d66eb5e73e0f0b9b8ca3ee52b64e94e7aa0e761ccd2f7c27bd3fe65972f1351b5a1149ba01e03a4ced181dc213f5e78c9881f192b8849e0c46f7a5dd95897bea3b80b3c12619cb9661da4493bbad296eafe506403cc4d2a3d6567993f8d7f66ae790d7c07fc601d303b5bc4726be1ee18bc981eb7189b044d52316a9fa3d2ab5824d7263338aa2a32d922115013cb7952b84180bcaa12150e1df1e5ddad7", + "hash": + "63f0915960731be3ea96bd9718a08586fedadb5038d924816bfaf3b161f4827ca2c8dd30f8fb7d335d951a86c75cd7c88cdb7009c2efd1780ac581333c9ff036" + }, + { + "message": "a3748681e06d65440ea8ba6a2cf0d4", + "hash": + "dd248955c4662e3dbfbce5e52d7166f6ef21f4313261be7e3f6791c9862c2b7c1be63500f9b8942699a0ad21de6ba57fb87868dc2da5d83aee719dfe92cceacc" + }, + { + "message": + "ec96e7bf26cf0dbb4c8e808957706b5e11bfa284845f0c7d2812a28851e4c0901f559d69e5ff86f6f665b433a27f6521349b514a0bb0bb06a29232ad2ca41f055f0a12305f7c59ddbe2d1768f288e694f9db27fbbed696839d1451d26e388f171a82d8dac64a038bc6b61a631222a52447187796ed3ce928a7d9615a1c4fc99a9fa79c5e92fb842776f2b3f02dbb582dbe0136caa5effc1a98fe25c2d1d5a07f27293d64edb088cab4ea4ff939959555e7503718ceff27946744b6cf6224a7b33c5e39cf4cc4a2120481087db893b0fd760c4f6079c14675478c996b6088ee0cf6cbe47e13", + "hash": + "48a857f6c5faa98bdb8b3b01607d08083bbd86e61e13e75e7a93033f0c3322624d9f0e1d45935a02a3b3c43bafc7a83e48247253f8c29bf533c285bfd15e6ade" + }, + { + "message": + "8ce25679f25b5dff622689921a0dfabd4b1697deeee3c9d76a85489419e66fd2b1d87cfccb476b4024dd935c633a2507e9a8300d453a986c797dee11e27f55e1003bee198b1748903d02024939bd68efff710984c0bed1ef907181914608ad5253ff543b108d8a7c421dfe34ee11528d05abc8b25d093da1c253a4bd54347f26bc02ceef9863af950da75bc896708bd8834f9ce02ca2edec12fd915a2c9812ec4de9f270e21fb52d8f54d79418ec3624c340abd92140", + "hash": + "2e33d3de6988ffd3be1785de006596ccc5604023522abc8ad4f60a538c70b23011aa7b5c1a0cfaad7c2a9cd8bad678ba1b554b2b395e92fd56b7d6ff722a5257" + }, + { + "message": + "3f0d435ed669c27063b726187b50b9de6b2876e032514422ec2fa45b85f2dff39b64db9ca59d8201a05fbfff701f726b121f4581ca044ec554771b", + "hash": + "d6a5fc3b1c7e2f405cccc12eb2e690760182a002b17c153831fe361d1214474793fd0f2fc5a3ec5580aec93ecb7c24fe202552e7ebdc5ff24fa50bb5c3794cbf" + }, + { + "message": "dda28e0fab91922a781a704c6ad26fe6969585a44d9c9491b99262ef63", + "hash": + "49e3bba668a5e00039a773b8204a54fffde49714605aefb4522e36856da6497b6e54bd0d3e7a31f6d0fe69bb19af9b391f2a1379441d8dc4ab43ed0632696323" + }, + { + "message": + "8a84030be757cc9b85c15963c7bce99005e34ecf5f556805e6cc45b872604d415a20b3e818da8b110c587ebc47c21c8a471e08f02017ec34797345cb9a394c1f173f4cb5006d6b62a096b1f5944707ef601624dc102e9480921e3c96adfff64478bb29bbb38967e873db3db8e9337d4141847892c5f1b75fb23bf82321680c2237283f6961072797b1ec24a4cbefd2", + "hash": + "8315721a96ffb6dfa25001391381853a69bf221caf85621556089a21ae42285fdd22328d81ee081c9efd5aea1b06194f70214ab5f0a2a3c48dde47b252f0581c" + }, + { + "message": + "8d1894951b62f8626c1fb4495870f8bea8df20cb52eac2b8f299fa81ab30db625903e98cc4592458a848b56a3c8a8fb4b20fbbc1136042f7526e8428e7f6b5ac2909ce725e3c39cb334a2531c0cada200332bc00de0e31c1a7ec27e51f601b23eee2ccc87045333e8a605824563833b7614a26b238510baa3b98f81b08f921f0731c9a3281caa03459647a9c54", + "hash": + "e922b8cb09532aa7768064f2fc6c2e0571072e3b9e7acae0c6a4006e51d69154042b876a4b5ccee59f268a9c986091bd484e28a700229655c5cdc301cde5e093" + }, + { + "message": + "ba4049a5140b07ceeb90241e081aa400c67cbabd1895b74969dd233dcfdf634095d8f4432d038843a8d5ee9a9461a4a6bb9500ce86cd3e149ff06af0a297fb0faef9caea7ebc855d3319be282968bcf22b2ab695cbd9a0f478606ab035791e8493434a71f9cdc9d5d1c0a72100f228e1d23547e2846403fd7e161378fd313b8d148b67e724f361b47f8e95841749e65e1806d5576562e49375f2ae702e4112ddcc82516c20c0f291f918da10dd298731d18042e0c5c57dcb595e35ce31f88339befa4177a907a3cabfddb4f8c8bdf9750cc955edd462d3f8b2fcc1d3b1e92a46", + "hash": + "fa1bad42a4a0e9eeb2ff64a72e19126d45f449c27790a1628a04554a926f0501f2731cc83d8e7039fe0609dc0baca63d7973e3bc5f52ddaa8f8d207902aa443e" + }, + { + "message": + "8a5d13294dfcd9ca38efea3ec4e1409aa27eb5e037da419b9d59b85586f01e5522f43dff677810342ac0d52dc8fca8795f2a", + "hash": + "893b81e0ea22095fa5bac4cfef2acc58a51e35985bcaae31df5c3129531b7ca4893884b518afa0ba0e7701aa56402c4f67ec77bc33e31eea373383ddabf8436a" + }, + { + "message": + "5ca05ee881e2d0d26f2b39c5517d257385b0166bde1e9cc83220909f5bcedf58eb3271be078216959c524ba5a762811b8e51fd8c5fd9557e436cb17c2ed6025557cbb5c60c3207c8874a32306a96448282b208dc87ee58ced7a4ed6ed9284724d434c04a67bf1bfde061e1884f5c1cfc12636774c98712cdc733d06235a02e98f7f77986586819c6f24e7a2ab6c1f55047d2bc573bfdc490db8c0610ab0cd829b5c92b18bb7f0e46dd5a60b12f22eea4741f86335667267e093aab8207bfc1c6ba5633de7319eb8e81", + "hash": + "82f8d718c18a3a42b5227fa10726b54453e2e195021cbe2d3ba783997d46d66ddb4fd7de0a75c8de4fabf8e0edcdb82721bd43dee57a922d3e533cf66e9978bf" + }, + { + "message": + "ce77b8e28744a3e221ef2e9ea601d37e9e96d1d65a6434075e7b5f2a35f295284881b202b6db8441b89ceaaee313dab4a20652c1d172c4a34e77943510b47f1b6290343488cc82f086dcfd", + "hash": + "7dcb1ddd2ee2e9341954d1ee15a77f4c2e74905f62bf97ef12923486a241df8de33e5315f619f1dadb5b82b31838a09d5e72db889c7a0f5809b91d127fff54fd" + }, + { + "message": + "941b10aa18b2276914784969c0d51237e9b92da803831926bcbcb22be7b2964c8a073d2c46947f80385af1589e9cc77d7bfe36503056fdc71e0620db15d4361804440a42fb1f41be21774193197de609da68d17232207974e98dbca2ede6a8ad88470e36ee2751bf8b067bca06a71eb79df766172641b1fb35d91c544f40b18fdf2efaf6d879097e03bd474958688bfa21db968506f3c6c4f1d26a884720957bff652ce04b", + "hash": + "048c97143b12ad6afe3d1743ae3adf22f5ba8ef389d4cc54a30d1e31d7f2084a3fc9dce88cdbd96c4a44fee9edd761617c6321e38e2938bd07c1c0e054d8eadc" + }, + { + "message": + "1a7857e3444d3335884a6f400ae0c5c0c743c79d882690310890fd5f5b185474fac4d40bc64533ccb35e4d523c4a685820192179f4f01f3f254cb1a00e4d83c864d1d618f90b9e8e6ad4d80f033e0971f76c25b293b4647a9ba7e067f104e4a8a58978bf9bf6250e2e5e4f603aaf622ad9a248238ae81c4bbe46a4376c5a58711a9b0dbdb4035af058cac3dccf6a51fd8ed9890dd092b7ddd4ad3f50477f34304f347d257c5a5f9c9a2e8c048dc11613f5a0a55ced62ff2913acdf87ff76978266642c313a16c07ae1add33f9013ee3e7f54a882256e5c798aacf96c991f946dfcf050ca05d744c7e05619cf1e7129", + "hash": + "d43b84039b58f563655ad466ec82c786b39963513a36a83db14b98f3e6bee6f56d9640b641b78519f407eacefb77c70b2d9f56d4c49111837111594d8cdb1cc8" + }, + { + "message": + "4c00a9d62c3032bcbf4c173c7f1bf2da32e377595fd06cb6cd4c4af7085df589c55792b9dde515fcc51f80715c2cef8d5b5c1d47e5e61a71d582ce9e9064aebad6602128f55b6f47601130c1314f77d9e6eba5d027ba9af5eeebb9ce86d1c92feec740c7042fa5b538def66c7be20806a6c7028d818a1dd8a6b6b8924e6101a7d221897ff11d05dfc6db937c509f9108479fd4c7b3ce5d1219504808a461b9e5b634837d6c03bc3a97e9d85714415bd46ddf9876051f00bf645097128a6b667c1567fcd9ead876b91a0faab06cef06330f228e3439d655693afcd9fd3879c3f8dd998de1e938c1dd40a2381f1d9507b125c7c8943fe177", + "hash": + "51bb716d8aeb017def71eea97418f24e6e855ade0b588e6136e4a67af88255b19b1849104e7119c7f5834ba9761e74fa2fcf652b38c6db4bca47512192f39aa2" + }, + { + "message": + "e94a96c7e39f2175a9eb7dd75060aa88fecdf0bfc2c6776bd444c4cffa4e6368d874bc2af18e777a06ac93dd24effd9c1f638b148192f5cd561a28bd956f0375d4439c35ad8e169e85217eb9bae9960ddd357075b99b88e6ac7c883b9b9ca0e32ccf79ae8d2dd832e92fe39234f7c7418736101325c1ffe999c0142282c68962d2d70aa79a40abe69c1a47c20e34079baddfff16cb9f8f37d49353f1892978d3f882c6e6a8446f886962dfd7b184a49634be3d4b99e95538b2431bcf4822f83068f6932b7b3a67c788ccb76cdc0c6be73485390a1d5d90281b787546f37d04bff1c94707dc775f22749a03428fd124fd934f59928e751df4313d0a", + "hash": + "db5f19fd90f30ca0165a1318521893dcefa01b87f69b340c1be30e222c97597db8ce366b86d86618ba8606e90dc9ca4e788ae598ea4fe307d8f8f37e8af68df2" + }, + { + "message": + "045687df176ca455c55035345c08e5a36a679cb7c57c1599c73092943d7cbd3307c5c8df44e0808ae649a289b48274999f774a94fbc6bf0313dfcb4064b21d6214c8dedfd724126b9a94c23c105a9adf42ac5be7e862adbfae23e91f23122a777d2067dacb36e2cce874cc33e922eece8ac83d50466792ef5b40f24260eeb717216215f05375089cba66e54eb2089acd3548e8c9866db33a46599e13028e1466f3d41100d543a7c4c0886d35a7c9f8ca3fe2475ee73621f88c770ebb10249af3ec0e7c", + "hash": + "bcdee264a3938e1c3288dee4ea155f3f6a3ee3b1c40a3db3e7fcac288b2e988566f3468695d751a4b619cca3e322551675bbf8062c53b4ca72fdfd17054d70e2" + }, + { + "message": + "03cd0d7f7834e6cee738c6f834f1bf42855f72060d92020a6e20715ce33b8a0d9589c032a9f0a7ff4437826f013c8f25d8dbeb27e1236a1827bfadec09d303b4e6d61f5b4e33b61d253fd8d7d8190346", + "hash": + "cbd10539bd2f6a702245a2b58bce843c6da16e8b996dd2df421a9e5148ddc239977c7ea8165453beed8ae08f03c8278932cd54060932fbf605d6fde928e599d8" + }, + { + "message": + "b74bdfd145956984e0e3a48bb882a7ab7e1ef450c2dbe95001c48deffcfe442754a73b4689d1cf98efa59e1a11967745ce83558c73c140a2896ee1be3d07e2f17a2ef6eade3d18fee300106f18d6893ffdffc8a25e25da98af73c375bd3e51cb9e6ee7830f1c7950ac3260214411062ce063dbf261da4861444359b41fbd6369a0db4cb09678af5a583040629835be13c59e28978db92e7732348197a6594c1c7688b9799fec9e798d21134536ce", + "hash": + "24483ae604d66fd17e83643c54d60158370697c9bca44f0bb313e7de06d354683b817a3f8304370d2ae38ed71490e236d974ec8c296eafbe5f18c687a59ec503" + }, + { + "message": + "08e429218ca78ef14d9f8d2cc27c82038a1e374f6b2848523e9481ef681570fe1837c1e4a922da2a746ef0a046c01ee839c5218705c21c811b5703e90be4d8f69a2e6afff96866811761370e17376ceab5de2072d049c3d0f1aa391ebd20c3de9d85f16a688262f427af7e2970c72a2233808ae3c36322fe8a1e5de4ed26119232d3428aa77c16bb24d68e5d1ea4dfa4878503a712e5310de3b26ae90bde6cef2621df4bf009947d763289b6148f645233cf5fe6d63b18de0c4586a32f7b61d50db995e4fde7223217f160c63a44fa41e1889cd3fffc388cac553fa1ee574bf93aef4b60d9e62ecb0e4276584ea502384f288cc5def4159d47f1dfa5dfb3e2", + "hash": + "a85564606864718e25db101ef772ad8f4c52c90e29fd8bdd326a47ca47629db23b79361b991a9d145b4d50512bd238c78f9efb721e3e9d2553f289d39133629d" + }, + { + "message": + "3dddc0ef1e3aa00904e4208e60be590005351c16c545ffaf375c44bd20d3952308f805417b83ca97df73cb499648100de7af9547c6f41f6b77cd5b818830eafdc67c6502f64aab6c1330601c3c2d576f1290d81b4a1873b65aebeb44bb3f186eb86a5543a3f48aeb726d3af28dfd862e06f065d287aa86a6e696635bdb0aabf7296f6c83cff48ab72bb983644bd26297d4494deaa3bb7290c7de16c7ce5cd49c23af82c1fcedb062e76933a004", + "hash": + "c2fc05c89c3878986e148cf62ccf4ed1cb32a7c3c113c01c5d089367de3775960b265de10cbd2196b1f21973019f7eae572763008a2288327c1296202f32a693" + }, + { + "message": + "ef71c56d73003b94137e9c8a3dd63501551d5c5792697369847a3d26c28e06725be0f5fd260bed16e7b6972a6b2c6eea5cd70d10a7c48c2fb8510c6de65052ec390a2b2aba2f46ad06996efc789deb2398a81a85fbac9b577201a266696be387ae6a6b95f299ab2fb337834106cdfd0d07b5b2187a7cd208834e1745b187930c81d882306bc88ccdaac803772f3953ee0ca1de069678da4fbad62901bd64a80fcf7676e386e1e1e5365171dc129fe37a6b6097fb6975670185aa", + "hash": + "cd4bede4e3751f88f7e9db3ae8cc6b8e000314cf92c6416bcb37efe300f7d2b91463db6648b0ef2fa95db3539aecd24d9bfb8efca592186a7278b82e3a856a81" + } +]; + +final List> testVectorWithKeyAndSalt = [ + { + "message": + "3ddf9c05f37ca35f42233b7e53667b1e87fcd3bd6147a8d1243c2a6e54ba40cd224dbad7d1d2c7a9b6eb7814aa33f0d51ae38f3f343ec39842d9c09833639b92c573d6a351e476b94f184d4a53eb6484e9e115b0d0f8f92f5807d2ff7db4891c73e961e3d06d4919d78d0eb2e105ca5ad2990c277ac7f7a7c272d6ab2d699f58c7204cd87592ef96d6", + "hash": + "9e3a2ece7699211f8ac4fd3cd1dab1d02dd037bd573638a8216c4719b629228a12f83501b696aa0ec0b5fa05acc0449c53194a97c0a0781defff5736d362433a", + "key": "4c2c31a7379f52f3536c2104853f521fe0962ec730e265f3463f157c1dcfc223", + "salt": "5b9585589542fed1cdd6861587066503" + }, + { + "message": + "7ed12a249cd368d6227cf10c52c09abf12f99c48e22bc6ba1c39c0562370b521ca084bb996b7726f6ff07220b9a8ac4206b7833f94cbd1b025e1f6cac7d5074ecd979824d3ddac49f2990b39f98794b13d2d53b18df0947373d507e530d9e8e8e90e90bf268c06ac0535331143bca42e900b9c4ea43845cfd8345b8118d9c9450cd37a5ea594e6ab5a6f4a1d7e", + "hash": + "ebc0be121ea0ccd06e2319f1b73480bcb22009fe7e466274da2dba4555b4e188d2a0ed0798a23e3e0bcfcf921e7e233788a1f5240a74e57639ae7e84418d7055", + "key": "593a150213f8f7e0f477bbff3a424c5144dbba7899e34a158de0cf4a71e6241c", + "salt": "767b2bfc7e8d955381aa1f2e78f0ba99" + }, + { + "message": + "4047deecfd20df3a69ed12158abb3a00f059b5376266dacedca962192f0e247a265fccebb81107a94c783ebe9b530f22b410af944b7d94a20b0153a3b4cb37738f3630c71ac3ecd10bbe81b4ff5253afc339bc05faa9ba2f1648f99869edf0e5defa84f98243b70490c2824ce4ca3b0c58036da8b8300011187c71d68e571048f27b901062b4c7c9ba6a77aabdcb7e480266be2dde87417808255b340c859bd83e749f93d4d8c3b44c0b6125158d36aead468d1438ef548f15861211ecdfc6e0375021df8610ac9601e781b104a41f21cbed", + "hash": + "5552212c3d6189c106968eea213fba883e8509aeb41a6f7d20ad4dc911869fbbfcd1df3d7dc5edd7cdcc7a6e4dbb27e7825ccc57db979ee0e7951e6b5d9ea651", + "key": "4966e51e2a33cabc1fe46efe7263ebd25e4a2fa7bc622765019ed5863bd6e763", + "salt": "3c70799dd9ea159e7914bf5e8389a543" + }, + { + "message": + "682507e331aec940c3aa38fea0a6c734149110d5282918504e0434a6c4889cd8c8f3aa89cb3e018ea80fa9959a0b1a63caf9d2b7701c2535d01aefade9feb560e8d8068c00bbbba49389e6216d4898f47e27ff894f1688eb1c8fdfa38904aba4e9f2e7be19267f63b7293f7b60f4a4bde816ec0ddde11099768930ad99999f761d04d3e4de0221617fffa87b5b8e694be8bd82f39a9af1f64959684b7c5bcb6e773da88866b36e13d31f15a19132974bfd9eaac06d1512bcd2a0f2e38129e2087eaa3216bb62094b2a50ceb9d88a2057b26766b451c4df457620017857747cdfac09e819f55ab50ef1396372024dee0f2792dbb96528b638", + "hash": + "9985acd9b71696d16dd0d7375957bdab85c445824ed716728dfed583705cd6f7ca7ebcb57e354cd2c203e489721526f84a44b1102bec4f6039e80a2242458615", + "key": "616e52325c40270061c7313290ef95099e42680f39d95226cd1234db71030b11", + "salt": "7d8d77fef0f892424a19040047d80bf9" + }, + { + "message": + "a47186c41b5bdd12e808a5c365b1c1c9bcb30824d0aa93fc62aee09082f85920a4224b230ffe02f4088fe1d966ca129d49609b4ee8952aba42ac0b8d723700e2f49d59372fe8e6e854ccbe33fb916a73490e6bc2961f08adcf3e27862854a732fd98e1b20b63cc362e2130625176e09944cc6440c9299a194e344b242bab9b7d605a9777fd5189a2baef6c997b0f760db38f84d84b503bdf18fa722e8b939112126949f689ac10652b092f805fd06273a3cb633828fe0843b002914c982e44559d105b391a7a10e4ad783f1c6aff5e3ea91f2fdd2c4d32f545ae1d824ff985cbf3321688411095", + "hash": + "e7bab55f2d4a9bf8512f8bea11e73742ad70ff0bb62724c63f4f10dafd69e583fc32e380d0ab4716d8b4cd8d5e213cad66b7a503adcf6759c599a6d0928e9723", + "key": "f1a44ba36985d67779ebdb7673ee94bfd9bee5766426f230bb4749734abe299a", + "salt": "3723e784de12d6ab667d498e1f21116f" + }, + { + "message": + "ee267a2ede998c05dc160a0233e1ea742f3d959a41f65c268a7fb26f540e24abf6587151481db7eb214c7f6b02114aa22bb33c8e0081a5a73b2595af73865eafb731f6064c7622b6fbd1488f598fe9063bfad787ca9434ecfab3f397c69e0649e2a4dd93673d4cc0ec46efda606949c0d25b6aa2628b732087479e9ece8b8efb7f960351bb33599a740f6229019627ed22279c66a654371c4e252b7bd5d69ebbbf1fc0f5826966b8999bf28bae31bfb15bd2744aee27afe9747d6e676518704d73e645e6a249139535e8ff410662496161b7b03ec7b163cd957ecf9ba96d5eb5c0f8", + "hash": + "d6b4872f549fad30263bfebd460ff2523dc69ee279a2b58d51c1dea66dd601dfd7b8b48f6c09b54d242008cfd0584fa8e3ee9c3d38f77905cd5ec16169c211fd", + "key": "6c9d6004979bbff07b80d2b7ead8511ff12dcbd2511b2b9d6ba4a0f85d337c74", + "salt": "a3174a4d03b0928b199b5ae732be1595" + }, + { + "message": + "b9075eab2ff75ff6946efc971e22ba13e7394c0a5bf8f457f5e907b599a45089015bcb98ce03f2eb1f1fae9a361621176dab6aab500e508b9a4850834890286d0be05a043204017be7275996191f", + "hash": + "1055cd3cdf4216ef1aee9b44457d87d626a0cfa8c3e5bc42e4bf9202097874fce0cda862fabdec934c5ea092ae0d519b063a0089141fd4dbd9bbed4abcf3a945", + "key": "baa2644643658f881abb8b01b8fa0a758ef4eeb1718bab1d3106021dc7de1704", + "salt": "79e6ec29bc2f3eb660b1614b4fb59a5d" + }, + { + "message": + "212c3cb7bda6afdec58b728db746c89db69980618d1293b33e29c0599306d6b51ef7c669d3759dad2223ceec14ab39c5bc5e808a36ab8da9f89ebbf7ce2e6b24efc4042b5f36fbe8238ac692a6af8c6732a734414fa4d428ac433f9abea3199e4f345935c6feaa38af11ee95c85203ed001abfd16ccd8466c16cfb9fde15dd6937130b9719f24aff3f3685182d1fcfaa3820187dc79c24e9a044585ecc", + "hash": + "97328a32c0e2f1527ac8c26e7fa2f968a4949266386d17358a22d1f5e1a30fcb713fd8aa4eb14e0efe9cd6141a97c5c1fc154e9ae29fc1f3b270908248a1d2fc", + "key": "309c8b68b8c976ac0f0ad7a0695898e72c347fe83b6b415770de1a4bb0ee5000", + "salt": "aa021958228e7d2ef3f38748dd627ef8" + }, + { + "message": + "d3b2249647c844439ab41def1a811c8369e2a8f0da191e65ca222e86a0def47ae81b3c36975c6c4d1fcae5c9bd17a012ed3ea0a5cfdeb134f191b0295af3b7f59ace8450f8a623136b1fbb384872d8e56690b6977f86d36197074e087bdf835c3dca7ee8948da8fec392bbe379ac9a23d9825350d21b97fd4d4c591658a4b1686e711339cb7f95b06584a5280114b7be386761ef508f30664e093982dd5fd2055b", + "hash": + "d47d417e0da2a9325e255efbea13a49c81c209ae80e628ef150238048aadb6ea503fa582b73c69bc13e710d44edf361ef6f97c44f7d9f18857b725376d46e508", + "key": "b1298f2a5d2088e6b81d57a6b91bb12991bd7a224c09388373b319d7cbadd6c0", + "salt": "4b97d55ceaf03cd42749cd0a7992036b" + }, + { + "message": + "be86780720b3b256848a4374672f1498f0c9290d50dd3199c8b12958f5fc67807220675300e82d4f3ea427ba885966e495831b80eb87552919a6d4226ba80a214fb8bfde243c9789fa4338a0985b950fdb94b7e1addd1f9374", + "hash": + "d35a92c328d82ec9252b201d0ccbce5ce7b67f153f6e0ee4cc20708e1698dfda7b2534670606082a18a65736d9eaf4543afc1b96ecf8ccd8ac01f38d37a58e1a", + "key": "c7d8dbcd872c40ab60bb993a0f843df6d8815e65907d45dd3bd2d70c8062905e", + "salt": "1573aea1fd6e242eb0321a7243c90ca8" + }, + { + "message": + "e3b9c71ba6176fbf32e659e1a554727e12c137474c7ee0c8581b083f093b4a47995017b9caf5326448d375f12b0a3d3fe715566c35f5260a10a86cd7d0b18a367d840f494eb4682d528275c7de556f6bdb173b5cc3a79ae8b2d0a6517b154d3be8e2687068c1b2d9eb1b89c5abe8aeba6c240be774ba8ae359c90ad1126a769fa4c2b20faff2f6b9b029f637a890ef2278c3d16b7cbcab05fadef38bbbc4abd7cc40c0e32438351342d51d42eb5268a287f6269593600c32c4e47b80", + "hash": + "9d44a77a5669cd47bdd1ae25dbe22c4e45f635607b72a4244204516db7f99f2c7500c93be38aeaaa2c74d8dfd626455b7d289d7b42e78a12ea46b8afe29f9f6b", + "key": "947b386767aa677daded7fdb63f9d630538dfea38852b797a814c6430091f49e", + "salt": "97e3d8f69b8f0a2a02e1e016070a8f6e" + }, + { + "message": + "07db88b2c7fe6320cdd2696bacb74f765c0540a6812cd2f489611ad279fed5fc3bb561a38f5562adeca70ce659214d4bc2b0702aeeb5a5b10e6868016a90c7f187e39a0093885c53055cc088ef57366202d786c32bae149054f14465df765e94c1959a6dab41af29bbc65925ece56f15ab2a9ba9ed621b4bc179d7ade92570de55a0a5325b1bbe32cc016e7af6cb24cf6c", + "hash": + "2bf4bef4c4ea0c0d5457fcb71174c0560eaabe3badae6bc4f1a19c983bd508b611b47522fadf1dcfcb2ce57e72adefb8643a8a243e3a64fadf9050187bf9f8b6", + "key": "fa48e42fb170e6a96e9dd3f1e50f4fd80632ed674245a5b362c1a4333114c169", + "salt": "3d7982c2e1ae860b2f1fb7c1adc42ee0" + }, + { + "message": + "645df329cdf7435563b351175b89894267537537692a536b315c18c3152a89872a138dbccbcc6a48cc41c732073784eda4b1ecf4b42c5302716dde34e2f9337ddb096ac5862f4df1ae43338d07e5b9c699f21340694dfad0e61c44809531", + "hash": + "3881a679815272d4f72b8d4b1ce909245357d9662a20fc8d35147a3d9f896a9b8e1d7738fe4f4996a1de089a42e0efad58a1dcb2bff8752b254c67bb9f25a0bf", + "key": "fdf7331e51d045f17de7151484537d41654fefb7a69cd06a45193eb5d5a0e41c", + "salt": "f0977a832f24e389a52fa9754daa3ee8" + }, + { + "message": + "c3d2d62fcb9da6a1fc807d4dd5a25a1333e08e6b4b7da5f0c1973b43c6f9c48f8e367724ceef7e9e2cf26e6d5be752c7ce69f08bf6daae8d6ecdff9aea4e5a4a19d5fd6a285f69a577c459042183c67dd9648f9ac1ecd32c7f2110f09f23c55fd3622ff78e718a801ce7cfe3ef8dc41fe9890c34a7e0e7c72800b38b0ea2325b35fbffc7d3cb94baafdb3f750c4d363eeca4ecc593369c1b70dd934b97746226c72b4aa590b2e60b3da02e1f717d", + "hash": + "b70bd12d4f3ec026bc2e00eb525d41798c5dfd8784dc459de34fd7c9f593bfdd1d12b173c62cc6807f985c107b1f3cf53c29de2a71a16db402a62085ca211adf", + "key": "2c5bd0746c883bffa7d51964966ba922e23013cbb39c89c6404f057fe5e8ccbf", + "salt": "77f3712eed3bd1de8b41c89830910d43" + }, + { + "message": + "1939b38744e359f76af899a51fcc2cd7d41f931e6a92e6f3d61eb578456e22a09cbf04640f1510015b4e7d99a100da57d087ae695451453862abdbc55ab6517f7424bf4ac4d76945153236538805d71bcf7dabf33f1dff80ed51e6793bbc0a92e3cf105291cf33c5e4f25b05defb35859191bf2ae51eab21b320f70ed92035516152bdd297a7069d222670070e63597c95d58d33e1af553a9c1f95ad3b8cdd363a03057c81cc22cb0623bd996515fbcee639ec43d94b66595eb30db92ce0c2dac4b3ebfe7f78bfb22ca3221a8ca2b078d627301469e73ea6e02f768ff9d11a", + "hash": + "146f30dad3800790972aefbb0bdc7e8efaeeca6dfb27d222b55a38cf898e86193d5c67ccb4c1962634ed82e4e72140ecb442edefc6620c2f2ba03a2411fc9e46", + "key": "055b374c93d7fcb0c7bd8a5dffaa0d83fec58a7bbd2e0fb0d5d2783a11f210bf", + "salt": "4502b0308a463b9d895647a2a3059fc2" + }, + { + "message": + "953de9af49960171bd345c0cece6b6fc251308ab21efa8cf5f44f3080a9e3b0ffe8c6e1a152907c7", + "hash": + "bb38b8a409ceb62496743ad4952e7732f962113cef976f0cbba985c32a30d6dfda122e24259726551526558fb40d5d5f228c125c566cc08898af063103245fe4", + "key": "d11212aa941719c5e3d5bf24783b5f9b8089e52077610bde749e8931e5767894", + "salt": "547cc3ea9b65a5262b3316bc0653e4e7" + }, + { + "message": + "49b450820b753ad5c67e2667d498ebba5fbfeee1b9427eb825eda59211a288bd863b41c380a2d070d8cf9815fd43fe0b004aede5c78d34b9bbc3ff1afcb5f6d238844b9b726d68b57e3f1312b06ed6c5ed25cf2ac2bca45a91a9275fa31ecf36729cf6a6043a5bf6e3d6a978155105384b706d73a56f52102d38b477a7cf54ad1563b970d69bc455f660ee1c84497fe9", + "hash": + "0781d05bca0f4d46909880e93499da065d2639b950aa2ac8cab9b71270917d3f115d42aed59bd4b3a69b7a78b058241656a2cdfa2d1f5995ca25b9f21048b2e8", + "key": "9662f86448aed517549a66d663c70b80ce4c61baa5f7153b47dacdc1c47a80e2", + "salt": "3b3e5427c85bbc225fcb088550d5622b" + }, + { + "message": + "7e12732d5efb5ab50de0710f57f267996143ab1c29c7561bfc2492ea70192edc8d4ebe4d80d06f920accd5fa76b9af2aa4d6952dba2a9641d5dd56fc7ca35f", + "hash": + "e7f12a58ea0f12cfebaa8997a638d6287ec851f73cfa51171fb447c9407ad5b0c5c51a6154d1e3622ea5ab7a12a603e770011f97d5e6ba4cca9b391eff01b4f7", + "key": "5d87d7e8cc0c0b6af25a9d6a8fcfbaa1c26558ac02a717d1d1220eb44eaaec5c", + "salt": "17179b10c9ddf7cf79f7e55e5e4ee868" + }, + { + "message": "4cd72f2f95bcee6cfc991c44d310a68b5c4d", + "hash": + "e0237a83bee1281180db125274b77496c0827c690c6a1c7650cc129c7f016a13012f41515eebed08390bc7a7f47fcac2fd7aaa65ef4b0c10fe1b62187cde9f22", + "key": "c90ba2ec3a9e82db544abdfe9196435e350233423faef98215e63f1805e07725", + "salt": "8b356a69317755cfde69a2077be72aac" + }, + { + "message": + "c4377e88bd13de82edea40129dff446e0f8de75e7310a534ca6ced4c294e2a821dcf77d62be3e109d9eba372cef5fa341a818d6a18c3014ee1d4a70335e4d27e404ceb198db935918476a83aa3cc4791d433f7458ba00ede85cc1eb0fb1d671dd6bb99b4d585ebed145987c45fc5bab0b11fd7cf4888019ab326d29eff3476dfb59557ee0b946c46d3a989850dfe05a00071501303c35a7b6a86d11ad4a429baa06cf3452e6732a8f0", + "hash": + "adb39ad75d8367f7884b531f3f18e077dee05eb3702732b51b1586c069c12ba24134ce7982be1569a477687ec132e7ef8354414215096fa7a657fcd3744511fd", + "key": "226ee344a649fb4b3c24210c6fb92aab8c7b200431c691c1cc3bc1e01a951852", + "salt": "4c7090456e8775d6e51ede0c75bcc900" + }, + { + "message": + "c674ca9d881da3c520c5111b29dab508a41c4bce26f9a76dbd1e86e6b54d2dc9ea897537540393e4186614fe60eccea595ef", + "hash": + "e0aeb31e0c3a3bb277297c47b6fbaff3c4a0a234cdfa30198ec245d872c147c066236ae560859f8d67644a5598565a5f8aea5502a8a05765b4832db04b48a9e6", + "key": "ff4f7fc48cde3cc0cfb4750e6a82bfb639d103485d8afe5317db161eb528e044", + "salt": "d4819f3a27108b09d75442b6e48bad21" + }, + { + "message": + "0826899c1a03323f444da663ec670aa2730cd166d237b9176a76a1a24d715f792c88e2a80766", + "hash": + "bd36af99a13b5b8e21a62569ef39dfb66dd0991e552779ab7fa57e897a5f8d2256bfa9befec61e68f1c002b9a63520228f4358475b1b05170ebca3adebaa22e4", + "key": "0c5f4c73c304aff5734c83631c723124d03ff50d6c7a1e92ba9037db2a2a734b", + "salt": "21e7127cd46eea2d9ca87c18cc34b2a7" + }, + { + "message": + "6d16272d77e04a396e9edf0def2ff4f52ce85609fdce686abd8d23a9dc468d06d9ed5cd126de55fb359de11ed5047ed7e2da8d1a65970da3d4d9ad8b88b1daf9808663089a0d730d41d9b80ecdaf7b9a3dc84ee4fb8b019df771ef98b5689624906ee2e0b07bd913d99a3f62c5daeebc6491551220302b3367601061b245afa40994bc8807cd8545ee8e632272302bb4c33a3228d1cca8ee3d5ad559f3b3f39cf750883296224f84b8cf6a5effff53beaf0d38b7010bef4b32cb30e5882ecb3cca509d25b99664dc7254aa19366a4886c3116a10a78f8ddbf11ee57c405f1cb84008213f13633263316a974a173705d8556ead070303eb65a289cc4d3d7baa11d8f9ad14c66b61", + "hash": + "01eabfd9b4605ff8a7562ad9dd1006a1fd9dc87238985e44d3b2a0ca1cde10108526c2ec4f391e2a3dbebfec3f5495dd88ae97db9f889b7fc02a8cd01aec9c4a", + "key": "42494ef7d0e7bfa4b02f19eeff4f71de2a8e1f97df6d2c26fcccb1fb8a956345", + "salt": "a82a5e6e0c3b0ad9a60dce3ccb173576" + }, + { + "message": + "3ed18ef7c804feb9a4e8e2053e770337974e3d37a38cc15082ba138c1a1f61deced71e9c40edcf88690880a4ed17905540f73ad81609b43fa7c5a1e6cdb200949d98fe70a6482e8ecec1bbbb38cd9080dfb6d9a241285c0a55fc9a86e9853725b7c4cc80d3555089a183c4ad0858dca4fcd6146a9c63dda9dca9d70ba1503ee70265d0da8e7002a11f13b22b406fc3f1640439571f1f32d51eeadd8180d3d29fd067dc8674f373d1dc1759c8a0a258de01253ea2804e5380bd02cdeec591f3d7665606cb0c302d982323a36c9c47f98b33bb365606241a96a886326cf8ed2c98ac050a5dae18333cb9b5", + "hash": + "85277203f878547585da284d70f07c6b0fd7774d1165d9e22820c3824a57f5b2988ff4a3f222aa9e85e4f5af5080962a1e433a2708b26d8f15e8d32d011041c4", + "key": "766b98774342a2562b3cba6959ab544aa001e95874cf6a99f56b521d31d85644", + "salt": "a7e03780770b3e0bcf09d882dc695c67" + }, + { + "message": + "2c6d34de4f376cc346f309e69770d088c22a1ea9f4ced7ae2fb662554b4e324b4c8b2ad0b6b40efa5f9527683e357a7996010fba3aad5afb01d46e52acafb040bd6ab9c0da9df610ff77258fd5a3e33a5abfdd3916d5195c097b4d08e734dc8c517ec0c1924cf9e6ccf1e0fa01688761d712e5d0e4c5cb38fae7c62cb7bac2c1e7085b2d5ea6649c81229da4882d14f3ed170aab930eec4fadf06f09436218e67a15ed317317807ca75c9586c9c8", + "hash": + "e60fe0598f1492bee48b9026f9a7700763f42d742b61b731710e1e58046277fe672630e8fb43c512e47f572dce92691d984ad0fc798c6b26d68940d2fa2dc129", + "key": "9f15c83147ed3ce54e0f0f80b94016ef9ad238704ccd4a1e3149252479009100", + "salt": "562c60e32bcdea0f1786544c8208718f" + } +]; diff --git a/example/lib/test/crypto/chacha20_poly1305/chacha20_poly1305_test.dart b/example/lib/test/crypto/chacha20_poly1305/chacha20_poly1305_test.dart new file mode 100644 index 0000000..ea66dec --- /dev/null +++ b/example/lib/test/crypto/chacha20_poly1305/chacha20_poly1305_test.dart @@ -0,0 +1,38 @@ +import 'package:blockchain_utils/crypto/crypto/chacha20poly1305/chacha20poly1305.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void chachaTest() { + for (final i in testVector) { + final plaintext = BytesUtils.fromHexString(i["plain_text"]); + final assocData = BytesUtils.fromHexString(i["assoc_data"]); + final key = BytesUtils.fromHexString(i["key"]); + final nonce = BytesUtils.fromHexString(i["nonce"]); + final chacha = ChaCha20Poly1305(key); + final encrypt = chacha.encrypt(nonce, plaintext, associatedData: assocData); + final result = encrypt.sublist(0, encrypt.length - chacha.tagLength); + final tag = encrypt.sublist(encrypt.length - chacha.tagLength); + assert(result.toHex() == i["encrypt"]); + assert(tag.toHex() == i["tag"]); + final decryptor = ChaCha20Poly1305(key); + final decrypt = + decryptor.decrypt(nonce, encrypt, associatedData: assocData); + assert(decrypt?.toHex() == i["plain_text"]); + } + for (final i in testVector2) { + final plaintext = BytesUtils.fromHexString(i["plain_text"]); + final key = BytesUtils.fromHexString(i["key"]); + final nonce = BytesUtils.fromHexString(i["nonce"]); + final chacha = ChaCha20Poly1305(key); + final encrypt = chacha.encrypt(nonce, plaintext); + final result = encrypt.sublist(0, encrypt.length - chacha.tagLength); + final tag = encrypt.sublist(encrypt.length - chacha.tagLength); + assert(result.toHex() == i["encrypt"]); + assert(tag.toHex() == i["tag"]); + final decryptor = ChaCha20Poly1305(key); + final decrypt = decryptor.decrypt(nonce, encrypt); + assert(decrypt?.toHex() == i["plain_text"]); + } +} diff --git a/example/lib/test/crypto/chacha20_poly1305/test_vector.dart b/example/lib/test/crypto/chacha20_poly1305/test_vector.dart new file mode 100644 index 0000000..a73442d --- /dev/null +++ b/example/lib/test/crypto/chacha20_poly1305/test_vector.dart @@ -0,0 +1,204 @@ +final List> testVector = [ + { + "plain_text": + "33405fb9b1318087471954fb5ebb23a8f181d6b5238ef1194dc7d8d269fd59b81abfca7df70da28a732466679c495b9c300b2b22f7a1bba5200e2cd0253714d7bc5771e5ab29266a3cbab07e5f0b6175a1b9e79d241f8d6b46a6a8cebec700f3bf64290dad943b53d81827525d3fc72332e924df17f1c9504c1b5b5a25f56bc853a702cd36756fc35c327bf1a8787b9692a41b3d33cd3bbee1b4a22f15ec2cf10f964570118c832a6e86cadda7570ccbd5ef8d002c9d633cd2518d969f7f14eb9884d0a0436042be280db21a6e450392b46ca5e0b6aeafb0f2383a0adb5fa201c0b0fb9e78", + "assoc_data": + "97c66bfac1abcd5af80a6109af1f9ea1e3c048cdcc37982206fc7f98c6dad9d9ce66c54855e6f412f982a68c21e8851a6622e2c6e3542998ba3238c00e3a1d779bba7ef6a4024bae2f0ac98779afb9146c940b2ec4abaede3da2a3ae3c13d432d0585e5f5ac97cb30225ef8cbc351fcea7fb26ce51ac2bb9a3c24cb955976ce9ea6ef5e3fb0e34b713dde70aa6330110865cce2de1107ffa14a383f748641f9a483b85b3344808ad2c2d2bbc70c14ecd999d6d2b44", + "key": "86816c25ef7440bc28e79a2b9e713dc40170ffe031ca6b8fdabf9c1c6f8974ba", + "nonce": "e77eecc8bf967a9ae44eb684", + "tag": "781e09050e4782a4b94c9c759293bd86", + "encrypt": + "cfa4007293cba09ac8db587f8e13d700fc17a1b7622fdc450056e4974fe7cd5b7823de92951482187e97b2adf55033541128e2073e66b40823cb97817b28efdee697e9f277b9d3ed6aca2b318f9743970b8655fa7c081e266fa0daafc7e575a97e8fe6c3324d61f28f09e7b06e633cc5a3542407ea54c64460d6cb5e90c431bf12271d8fd142992a5c82963a3bcec78c32cf0e5aac95177fdf461946d3d0e20518a56d6d49b5a827eec578583eb7bb4b83eaffb14e65c02743bd41b7c4c1f87caca47938d2620349db1a013129942afe719b436d0afc382b2eafc5050748418bf881b8a9ae" + }, + { + "plain_text": + "a40e1bfd2a7c27578bccbd35e68204331ecf5be704a8b6388b717b611d22e9dbcce4e1cdbc03acab0cd94f7c65bb58c21fdffe4c2d431f7be328e9ff130a926c3bfd9cc34e3b408cc322686cdaf04e1accc92eae4158aa11a2ad4229cb09d5603024d84808d089f419910467937f929515fc32d6cad58c8d1c9eed450a636eb68cf93940ff5ae6544f08aec4560929f810b52664e565d52be08812dd1e83a46a9ee867aa18dd66b943dd6c44a0642652963afbbd2e6160a86ad73162004d8061de555833f417115c2d1d5cdd5ce8216484fb9056fbd41e1f0275c2bb5f84da32c2338fbe6bccaaa4e7a5ae7fb8cb", + "assoc_data": + "bae115a655afa35bc2396b96d5447c1df755c21f0e38bd3f3d1a96e902d672310077611e94fd6ed4070284d3e9fc17e3aa936ef971dac0a46d6e1b6aed93f8", + "key": "350246ee5038c1481fe9026c8443f21942c233bcf20f9188cae7c0788d9ce3b3", + "nonce": "e5dbcb67daca26c2", + "tag": "3ef0e1f660bea5231cf315ed230aaf61", + "encrypt": + "09a5d2535cfb1e34370a6444414f715567895c4d44f7eec3e776ef5c34c76426ab6904d5ad7168e597006b0008949ed7ff902753a032075523633bb05570d88c3a31f44c5db2ff62b563e619bce2ab62279b01e26a1e2cfac76642e541e227ba084501f7a24183a53ed18089c4b8b0f785f0a0ef2e9293d2947fc2bf28504993cc0a2a8511b77433bddb843846109ea12a00f2b5291a119767b3f26b02002ed6d6e4f9fd7fd3221d37194c36a898204e7be98e73abbcad87e3a1eb0cc1bd615a897caf28412ebb4ac5ddca52a3264202e18ade1fb782ca3d0b295a5503aa598321f495aa764c0b8378b69224189b" + }, + { + "plain_text": + "b88f76bc25342b02e7f950f77cb8f4afa92f3d0df2e8f5cd4723808b4773dfd7d98749aa73354e77847d2a1ce4850ae1b5c93e73dbfcffded594386a0dc8af0e1886ee34d0cbe5205dd590d10c2cb305807bfbe6075cb8a861eb67b373e0ad2a9a03b7ac9eba7e3c1966bd53cb792fb400c209fad60bd8a864e7e02ee481a8796aa3473b4a0d3480ef156d9554ee28145fc3ad19ca6bb1beff20d6a225225ecb1b697a52d21f2f8347e6bfacf604e31f9844b3366287cd688aed113a017d308e3fe47e8ce7d45f37c2", + "assoc_data": + "0e46d1cf1192d5f1b8a78681558f55d991b3862d439cdafcf28182a1e2695ecea42db27305171f770e7d9cd6f11aa3c4eb0fffb42a752db08af0c6fa8fbb087d0f54daa8934b4ee683424df70b5869d75fc8aa28b5f9f49c1139acd8c8dfb5537d93c2b61802a9db89c87c4455ef9e8588793ea714f3ea90620adb934a8518aed5e1f76472745f8909a19968a73fac382598280d66fc8527cccbe1d415b378e48da3e5cc3ef79961b0145eff8490b3980d2224370bbd6240fa536ffebf45e258872a00aaf8a4f63e5bd7600986cec46244ca3f0babe67b350023d1755270a940c765f6dc429f4404eaa8220c0e632e7c687ed0e2be3b056a", + "key": "8925c1ff90ce3a13849a60274274756b3f17d2bccb8b9bd1ff5c7ddfc7dfeb35", + "nonce": "3c140e0d349fd77fb5c7ef26", + "tag": "f2f1c85ba289345550565c8f0e43b73e", + "encrypt": + "4e4acfd9e5cc4bd0322f715548f818d733fb97ac97f88173964aadee37a24170da6a531afd668402aa1cf43aa02bb9f8037de0b0b51cb1892fd3b702b6665a0e516ed7efc03604e1e9bef705acf2804661db1482213bb0a88818e9b29c4d436f61752ecc3d467f448a3015304336408a43d3bd836f3faa01034bd6dd607a2db1ad886a42db6ad5d00092629a52cbbd707746cfd2fb7580a72c3c26f67d417e08eba323b7e67653d5f361fb4313491a844b56dd078a68c02143c7160893c55f2d20ba7dbc9cfd0dd5af" + }, + { + "plain_text": + "9a3f957c2b3a4dc295d7469be01918b09e043505e9dc3dc420e72658c6760b867d09e78afa4fc0f5bbf4762fc7d5bef5749c867893c86215e8152e3db55a3f071217646287a8ab17bf4ce2d524cfd3bc495dffbcc3ae298903e3fefb894b4d33729e1dad306e18417ee7d47c00df0553958a", + "assoc_data": + "8b7c5b9b2cf5cf93cd87c07d3f6d15550f49607306fa45b0f3967940e1bcdd648a6f5ddfb1b89446ae456a054945cfcaf6fa3c06e9ede6eb729b8512683b", + "key": "ec83477e50ce2c2bf8056d4d97bdcd790d6d8543dcb12614b71ef4bbdbe4a749", + "nonce": "fd7ad40f4e00cd76", + "tag": "252942e8f30758453685a72c68f14a65", + "encrypt": + "0a98491735e75fb8aba8c6fdb01194db6b1426f19db6650e6c9f2651e3daf6e31744bb2b5f120c35e9679c47ca1bd3a15d839274445a0bd078938022880fe068d15b98b51bc9ac09e453dd63e66e1207ce13e5fd8e5226e898518326595c4ecf25928e37a262cf25c63b53c7b9e3742b0322" + }, + { + "plain_text": + "1ad78b05f96182d050d5fe5481204a1181991a3c3490970ebb214d1f0ff82d21f4dc9b561adcb2088813daf129e40bf3512e51e6bc35bb1e2205a6c38c410ce69596b58d2f190df267a7fef8570278a7ee0d8890eebe506bbc09572c6e6623f16364da6579f6d885542a1c4c17fa66cd4a6da897ba3eec9c2e9fae4cfccc3f32dd0af85b8f99de59a8cdf25b1cdd6d7b425a48faad132fc57e8e36e5e2286cbfc07534b0a7955f3dc1d5c45d37086ffa8b918565", + "assoc_data": + "d0f023e85d528a868a48ef4fa341bd37dc23c734dd7b62195d3a7ecba4fc69d6b6690cab69a6b5f5d08a32af389e02d8d55ddc41b0d2836788628b5d60a3d50dd1aecc0c0efc9f4dbdcf07d98a6c5c52dd1a9e8d32c954584c7aaf81f94f84d2c61cce7d7a68719ab18767cdb2310629dae9ab72fad768e78cb090a3a2666459888c29f57376dedd10f7cf0ab0b98e1e1ce0a933c50b085b12", + "key": "6d9e46a7cca5e33fd6f64f32e1a126cf5c684ee8ae89075558417f845a75d013", + "nonce": "653d4b0df8f8a97e", + "tag": "52dd3bac81583da18a4c3324958e3f64", + "encrypt": + "e4d4f6657cf3630034f09c9dd2d80e09786fe5827ea264e009bf24212e3829dd63f59f81bf2bbe28b4473eb46034738a5fc34be3264a9c5459f6308475f3db881db2e310964bfbe346fc5d350baf4722324a993989494b53596ebad4d4b2487d9c5c3b636655dedcec9f621bc7d8c454fce8dddc5727d7809539b9a1a3c650995ed539286a46fc19b7f74b8fa5f0f23d71da0ef3513806dfc244979b85e8b2181d3addbac74946e26bc65a8dce3293b349694fea" + }, + { + "plain_text": + "131a001cd08888da42154066b4a476f1144e3c05036977ad800fe02ada5b99075920bf3eb280ed346f1fff37c2c61368aacee69078ddc55c5ccc736f51757d5cf1e48b33f163e73de82242036fe6fec88314514f3cad23020eb15a5ef0ce8fccf979bc9e1b73b7e2dd82c9077919e297d1ad5d3b68d9060154f936f2bf140ce2979bb7c93e3c37fb7f4a3b43a627776b32ebe489339ce77eb1fb7a4922d4e3eb0ba6427204d101bceb85a7137c9d85a8ae74da3fa434c49525429ed6548f0eb22822210697269d0d89ccdc1bbe2f2099878181d2d2a36c0193031b15c7fec94be4eb1f3ece9dc0ed391b6236a3d657d645ee76196dd0e6ca8c", + "assoc_data": + "cb7ceded05f40d0964b6194a9e47f7d52f6fbf4d91aeb63fc74b2d56c5778ed81658a3566faef57e5b3ac13ac491b603d1c52af1dd2f667a36e67fe29030f1b4b91674dc963dfc69e464be91abf1f7f5b5bb15b51ad80ada491b72f798d641b969403d2ce6b79561482a8ba1b7cd2b9ec8ac257c601e734a09df6715c51c2624db60a0e7e263d630a17ae9906e58ec60f89057162ac536ececf4d8cbd14820605858d573975f1423a071d9833ed157fa18", + "key": "f9a8239cdedf36b2a3bb29ae602936c023626eddc4ed2ca450b5b8b449d65a26", + "nonce": "701257e9e130a57edf5c94b9", + "tag": "d69283404cfa2c1f4621fda4b02a360e", + "encrypt": + "8a1bea591b108c87609a28beef09bce434255794c65266e7367113fde278b92a9ba3239f03a992054811cc54a96ef47af1501a8ca0c558af80da69bd3d52315a5a55d47ee5bc27a0b7211c8612868ee8fed1c455f8881f72f91c701ccac18f0cda5a2c79d477ecdfb988b6762b9be95092136d1628550d5fd3b83db925b67b78468588f263dcd0e23e95d6444cbbabb49739313569eae312a87e922cc5395a050dbeb885aadd5c8d0d9696ca0342c607d5ee51bb9a5fbd6ce5b67378e252e7f2f391573e338bd08a416cc8845c689d04bb29b7e5e9901cf8bd02d5d4a0b2ea25037449388b41a0e0b1814571958e1721355506c17c059a3c9f" + }, + { + "plain_text": + "c42c07a386ac4e9d852fd844af0ed03a6ed0a6b61943c3aa802207a43242582f2fe4c12b7aa3d8ba6e9718cd389fa5a3e73fce050bb190a9e6d82fc844925ff398fd494391688711ce443489b5cf394d3b53a8912e7c80afc5a3927e87e39e8c86cc60dd1e8db321d1e7", + "assoc_data": + "1bb357aeed0dfee2a21c191633f47a02bda6786ee601fed87a21648435e944492f9206c16178178cc961df78174a35189904214b0c7fec086117597cb2e2655e2e197a05e2f21ce1e1c10766ee1a6bbc65607fb4b95e5f8d79f97c14f2", + "key": "88e3ef874e870dd0bc74a329104ac7b26c57ac6f2cb8921cedb5cb027a3a7f90", + "nonce": "fd27a73c2d441c5768cc504f", + "tag": "e842d331164afa7a6c76a65c63399332", + "encrypt": + "1f2a133e9cac437c26020277ce0c1a101efcc93822f89456c92c90e4a8e48d088edbf9aa6a46695ffec76c589fb46afa67578c6ca8b500395572adf23eda209c7bd9ab5e71deb0b96dbebc536ce83cc92de298789f05e4f65fa8a3fac3ddb25c78e74c3403d3d83301a1" + }, + { + "plain_text": + "5c76b23bc603f3861abb3d7d8f8e4c20f181cbe23f84757c98fe6621ff31f1629bc367a7f80082f9101c15f7ac99c0b78ebeed06015bc521667540068523add648d21cd1a928f3bba1d987b4d8e1d3270fa3f70d434be31e034c67a095d4f27e7622ba7bf3a2e1935bf53d2823469b6b32805071f6d17ecc830680123de9e1a3f3a14538ad4895448236bc872c0d80321f323a20d97efe55de4074e566fc95", + "assoc_data": + "841f93f90ecd4ce1334bf9572f7b9a43abc0a97519e75cb82deacb020a2f47783840c38c2293babea5fdad6432f3b0b14907690c703cc855af16b3ee0b305fac54eebbf712d336dce46c13f35821ce3bfeeb89b647c06fc6", + "key": "71f7ac0b46933d01e90f04cf44911ab7f54142d4b6924abc8d95079a4bb7d5fc", + "nonce": "1cdf20df80a8300a", + "tag": "cef7db2500dc4115667a03ea942731ac", + "encrypt": + "1d2d6837b8de1fd91b4d9c2ec12ff79e4b6b8035cd54d343f112930e5e1d61b77dfa8d5b446dd4021e2b8e8128b4e6940527a6d1b57be0a8d3495d35e2e955cdba21d82754db0447829ac4a890f69df635e234d0221f3f85d7873b3bcb933b6bbfefc21b39ea231cd8d97bc3ba419513aaa39af10ea7002bd22c2c49d39d3ed7e6614144c8a9233c5b3b7cac45a1f0ab65ead38f2ff52541ac6aa490d564a6" + }, + { + "plain_text": + "c23af4fad1fe4d67d3e5cfe4346eeadc061e7c1667744b0a19d0d81f23baba7c856257c9fc9bfa7ea2aa3c53608adb09dd15e2a2f009a34400a3805513b96ba2a801c405b7439e557c59046e289ee227e6c2e4601e4ddb1576c214ecc4b87781cfe48429b15f935a922dc42de9c86d340c12a6bb69436decbb3f861259e28e5d3d4dc6ed633223cd8748", + "assoc_data": + "97a0b239c4ac609d2e3b58acfbe62dff300b2ffd2a549e912cce879a5c822c3243044cfec210b83f3ce1d7b0f8a8bcb1518cc779d9262f7588204c5087a366558a8d3bc8e37f937df5774309f87ae86469d4ccb39dd25eb50d90a773a4c38cb0d74703c12efc9690924325171194a6189f8f1347390f839003a8497f780c25e390a70710ad74788c", + "key": "ed797c337896fd0afe6b5c1a1263811f311d96fc7f1d3a714ca8f91ae2531f06", + "nonce": "0ba5be541c6b7e9ed25cf18f", + "tag": "315fd48f288c78045d4ccd1f7e40441f", + "encrypt": + "23205cc1a7556f535ecba626e21d645223cf82f8d8fed769638b571625f742826a524268ff00b398906a776e46f802ad8439b172b2e292ec77806caab7d534336c5eea8da148b239741c0364e45af77559dbf12aaef6006f41fb00af6bef64c9b30b7bdaaf3e409e8351b82ef81b06a63ac5a23ebf2e55932bb4e5c779c966ad27ab3e92221447918892" + }, + { + "plain_text": + "413ae3f00172fdb67a11354f9d73a171b5a0aef77198826e482afd6a6a59b8928391a9424cc3f47eea572a3ef3d74c6ec6f5fc2d1b9b390843e9c4edf3770e22d3bbaee439b79bac9614cc23fc8f926f5db265b58b77e5761145874396892738753ddadf82e42e7347675d0e85c028346bcd78787894c6f69147260779ad0bcda411ce8ca944a4ff5980448a6ccbba63f58b82c4271b22e94c3052", + "assoc_data": + "af68c69b8c23ba3c38930e77a6c71d0163b2381441e3cad8709edbcac2077f1065b4cd39c7ad19", + "key": "e8ed579d5b26b56ce4b90d66fc9d0731cb41c366fa39f96f70431adf72c80358", + "nonce": "5953687da30a455c96ef4ce2", + "tag": "6bd3f097195b597a144ff3fe1dc7b1e8", + "encrypt": + "78dc3e3edab898933be4660aeb2d4195339b350fc8ae0c63182c4c34a2defc34a10b2ad6bb9a0616f1fd886639978d39ac9c4e10fe6d0e097dea023ba74cdd085eb012afbaa762edb5a04a6e3fa14c082dec55b9cfed4fdd45bee4a98205c58757e0ba28842ac6d0d85b235c5675b1af1d26deae6ddc6c22fbf48cdd4505e6988630cf765ce16571c879431627fc4f8308a412fee484b5a1a79606" + } +]; +final List> testVector2 = [ + { + "plain_text": + "c89abd0d2efb04e8ce166e5fd46e8cc31473ef5533b831f60ef737dc41ae4cbd38db9161309f82f0d8b8870b7ac87b323107423c6f6c799a1a7adf9788949b3879d22c1d8415469e51aea442f74a2acc464b4ad71fef0b13ffc7e1fa2d59270c24fd03af2b4a277521ecf8ccefd09c78781ed638b9156eccac7f3720bd82ee05974c6d203f5178c7fe75c372af0d1414d7506246933ee0948e25eaaadb129c3b14da74f1eefd4beece36f65e3c390973a3c092ff8396eea7ee88cf3d6e8db90a963b8128a07bb96ce0d719c4d31733f8e8cc0f2dc9c9a89496df8194768d168f524e16bd3d35b161c57b635257a29d93bd39514d22266f60601132d0", + "key": "d37443af0187c870c9ff7c2383b68eeefdad9e28897f8fb866970d033b49b918", + "nonce": "19a7958fbf2a385112f80c2a", + "tag": "a0d31db74adde60253aa68e0f982f796", + "encrypt": + "3a609b9e7e57c03707017782e355d55fd7ab2f188ab4eafdb92ccccbfdbcb1fa67f923e4eac2a6952ba41adf38ab820a733640dadb7c542ff732c942cd658a7a07c6b388b1ea7e3b33285eeddefd2918cf7f063f46b0cfea5a33fed32ed6cae043166765c1b0a2952374523151fd3618202efe0118f32f9c5d70da0010cd1f3a289dba5b905013d1c4a009eacfcce2e788df2acb55d2d8427893662912ff2a521a0645a257bdaeb05823ff36d06d1dcb9a6f208bbf7249ef5a7d94326a92719d1c2ff401e5edd4594407edd703bed777814c0ec3889b0bce787c00d0367b28b7a2dd2601d35cb0e8eac5e7c9c01857f3580fcc4894c501112018072d" + }, + { + "plain_text": + "154e4e244c33995f4be4db6deb8e711e33e4506574e2f82443afd9f6eb5d6bc14dea82c5f34b12c5a44f89be06f5f97ab5934acfdaf69d270f75b640bc49", + "key": "5478e8a0eaecbfab3e9745e5a8cd07b2dcb709dab68628a0148e86347e2fa900", + "nonce": "03bc3875ddc6f1cf464cd3d3", + "tag": "635241b8e4f57b48080b82b3575fbb47", + "encrypt": + "ebc8e8e865a906f663dd5606792a9f79d3abbc780952bd12bc6e766c825ba4640cded04aca3eb9b08abb889e8a15f8d7a1aab46034eb3563b604da35fcca" + }, + { + "plain_text": + "9b27f1a38669461958157a1c0bc599b092c0ef72fe16c11774396c863fe4f694f0c8e6618d626f866ce7d9ae46ea12539ad4fce5b4f824722fd104ef28be120a49e4c7437d4d8727a0bdce0fb604b89653525f2de0cd3e71300be06df000bd048e7b0302edec97ce0d689a245a6229479b7a1af1285a119fb8662c53eed8dd5a9486ba148fd7ce4463fb1a3df35d4e0ce60bc6ca5bf82889c0f3e283b82bd236418bd86587bcb6deee563ac58d0261", + "key": "55b51c47ef88da7fe98d38d6735fc14e02ebf537468a8933c2b067ceb1791a29", + "nonce": "38ece421da14e513", + "tag": "6f08675c1173a48d648a790043685720", + "encrypt": + "b85d21b0b294a5d6cc833104ed6b5c38c4c074e7f268af1b090ef9057f60ac9d63e2f569fa42864cbc9769368ca534f3b64fc286baebe55aaa2096b26be3d91b04958a69cd154c112e145fbf007b7130c151d86fd867d6deea4d63458e19605cfd615eb33d9e22f0e07d93dedebad30559c670d964978c4787356dd8e6c0dee8466de1052f16799d7b5fb64ebee5b974413ee7de8cdbd19de60c64895dd2069e4f94ae9db2616f75667ee2ccc17e68" + }, + { + "plain_text": + "49ca0c8a1a57a5e3164ddb2968f797c084e9280d4d758fb2f5da82badae6695ff111788ec5fa1bdcfaee296d1f25af3ddf050dc925914c063f070e1c96a3964713d38e25c0451e9b2a8b8ab5651e8389ba826cff06c9fc09c4038d66d243fd9c329effbf5f072b4a91024b1a8ddd702e67b3eedf8c9826db57e54aeee00fc470d6cdd455c6578302d6c16e6976805400e8bda843ed7a5c52344bc7072273d5ffe1392c15ba90922cec09348a1f0a191886bd94c3b1526fa87eb3882e2e6c50864f4ec80fca7b30c10b14097540791cce938c9f", + "key": "3d8fa3e07c54c8caec90948713680d68f2d99fadb059e39f994683bd7376db73", + "nonce": "8a907c293a7f0d31632e655f", + "tag": "5eeb924ffb1615398c5c9072ec33b8f6", + "encrypt": + "e16456a8dbc7b87b65bcf1b42d443a27cf71b3b55c3ffea9e3900dd853bb19d97a8da8fd01d6fe413f1b6af5a7eb336e365c72ac50278a9fc263f97b6136f2f2b28acf464e00d28b1484da6fc913e56bde31b273491f33c7b675b5dcd6e7557484a874a233cdff03321fbb718707afd092d216010ae50a43edfb577e852b5e473e6b9acfd6290d310c8973fbbf6609b44408c168fce83f169459bd8bdb635971d9365f1ece063f812621818889f4b9484e9c5c9ae34a5dd2483ffe7e8b649b00fe50b12ec60c8f15872c96ebeb01955025e62f" + }, + { + "plain_text": + "3897e83ea5fe8e6d02d254682666e55f9fc6f0e591799ca4b0b38b37a63e861704c8bca5b5932bcf93ab79ca513b5e981c66eaadc6adb0f000aff4918cb442bc", + "key": "16b8e84e0176911bfb78d6b289d74276a42a4caecff6251d67d88eaad4aa1899", + "nonce": "203998d8a717a6b1", + "tag": "9c894178b305614c46ed2cf338156432", + "encrypt": + "bc988342611fb11d9d803e5e56a945c4150aa8d6b43e13c5f3750e8c6f60c1507df4e08964a7d9c140d17ef9d69d966f5cf863e51e8a699894e2d20f6354f9cc" + }, + { + "plain_text": + "4f7f4925c23141b0bb6bfbde5988c7abb06a2748de7c0831ed5bf521cda3786dd7eaa5cf2730f89639826fb89048f6b4622355e3a3c56ac9dedafb18a5b2d60eb267f7a6c711a43d9b44224fb2c8542003b5b1492ef8353d19870c14916dc86fdbc47e4f87e8b80fdfdd5d8bf4cca49fded69000900e9b69ee4fdfb6ae9bfa4d4237a2f0dc46e4dd8cb208cc52535f7b4ed692705125fae190fc0ce1537b398f87793f9fdeb6ea4b958a12ede01fabfc", + "key": "f89691666ff9cda0fb534d2e96db82f76db5ab5d8683e8562984b0d1b1500c89", + "nonce": "a6185eea7134bf8e", + "tag": "925be7344faf054aee2d9d9cb1f5c4fe", + "encrypt": + "e601010fb0d658aa507e7b006d2ac5473e6cff24095ebd8c3a1e9ce4a1de3d9be965539951d0a68deead5abaa599093f36ddf30d002869bbc5c4ebf2bfe0f4973c36bd00daa48eaaa1e7d64481c4f36733f92636c7baa009f671507a8ade296da51d67e6c6940269bd5b989cc0463b0b03ad9892875d0d6cd2f8ac64900363388fdc54e1b2f2107e2de1167b8cce1a0dea07f2b535ea048e28483c02914e8d407fd53da0e5321f5fa8835297ab1c3a2f" + }, + { + "plain_text": + "4b0467df65d54c23d5cfeccaf73b5e33708cac568ffc8a63dc6c0bc20d4b0bd7c1559362ae0ebcc1c886697029ab5e4d603dac3aa1d53489a725c86f69e3a7b10bd2e85d755e61231ca1eb2bc9934cda54ab73728cd0e775c2691791777d3d2d3c2b88ea8deb7af3eeb90ab0aa0363f1adabe90381ac8d9580508270d5c98d54df7feffe348940cf0f226802256bf4ba8da7177b95ffe25394f29a0937afcce7f5f34955e9968a7297fd9ebded85cbce4b1d31e9b94a4ce9fa417494a08c6a3a6976d4c4b9", + "key": "90ed7120def556c432848979c50f46a0f0e6842feae7b515d91bdf535eefa520", + "nonce": "66096b48102f78b4", + "tag": "847586284b5fe5fab3eff96307e9a81c", + "encrypt": + "720f5be47f439f51f1fd6179d6812c9ea31b28a857a8364e2ab5c9dacf27fef145c7377b3eb5d79bf621ad940a3b69b4a4e6097489f66eebcd030b2d9675159667c85d1cbec04f486894b642c627936ebb13e7bd179460ec0ed5941e489c7128c43c0d83628f173bb8b5c07020e3d87885723fa1c975f2a0bd9bb296a93b67fa6666da34bf4190eed92525f87b33de879cb4f148c8f5c379a9234514519488334132cc3d61a51a73c8a70ede05b1400f8e607f432f5ad2e9ea8387d02b6e8b0e2466911c74" + }, + { + "plain_text": + "ec18e50b866374006a3175b3b8323e5f3b3aa2fc311a600cc496a496f793b096de1b7d3e12aaac20", + "key": "769c0f7d50b865704d6616292d56b22fd0118686d8d492d619195eb3a291ea51", + "nonce": "3415bb9a3301ad2c", + "tag": "b60819c5b8a9246161cff57dc26ce306", + "encrypt": + "a53c17baad5bfb9d8804501829707fbb626f150f9df86f08305c27cd214dc0e323c2513f22d006cd" + }, + { + "plain_text": + "76f564f0018087ffa05e489153e0652b4a22eed23d801e729be74f2488db4513e723ddc38c7e3aa4172733fd796cf8bcfc42a83353c23aaad5159b775fc8053f3234fe63a94f8b5d83dfc07a7b63", + "key": "036cb9675e45101d468d5dedc597d190cd8f4b89227166a5ae2f6935bc502b0c", + "nonce": "2f2f2010c29f1a80", + "tag": "07a248d4f1167c67ac7d475513c49702", + "encrypt": + "34d8ed38a41879fb485abfc1ccd2f0253fd01226e050ed93649c3c7624565b2ef3e7ad3cab5e25170f6b25dcef30082e266704b980fa6358ce78c225eb69ddadb0be80757070413870901f33a992" + }, + { + "plain_text": + "ef602ece5bea9bb4c62725c39753fb86b83f860124974d84ef475bcf3117129c545015dbe5ce2eed9bf14f482b3314e5fb0c3a2ab81b5a56063e23e36ce52c404ef0e5f2d7d478bf46efc665762d9640c37fdcbe89a6b78d749907dc10bf9913179844b502e20ea4b87360cb9bd00370208236f38a432ca5bcaf739076de078ae3c88baab3d91983cc68641fc75c6aa292c5cfaa1c41b9c7bcffa29fff87a1abcabbadaa30541c8f92a5e788658543cfd0c5c0ea", + "key": "9039b34dec063bd61777db0c4a85f2511c6797c04238cd134e75a3aacf400b19", + "nonce": "056c9747860c8fa4", + "tag": "94a9b30e5fae272c82f2b2751975c90e", + "encrypt": + "5e6a2d5a6a999386d766de9d5d4eeadbe6804c3bdee3802eb01cac002f7a675b1c35acff43a9c064cbf320bd9d7c90f1d42c8cada136658dfd1551213c6e6500f28e7e5ae7ce2114b0ac7a7b662c7f5ab9e8a81e9b3cdf2050840a170dacf938f4c376ebb6f1d1ca74e713d86128612eeee1a88e7e0df6e37ab44fc9fe6f809e97e2317a4a57b3356b100c15124f5eeb13c248dcf1404d0e46ecd7f94370282aafdc514be1d8c359223fc380cbef3db21594c4e4" + } +]; diff --git a/example/lib/test/crypto/crc32/crc32_test.dart b/example/lib/test/crypto/crc32/crc32_test.dart new file mode 100644 index 0000000..85b5ab6 --- /dev/null +++ b/example/lib/test/crypto/crc32/crc32_test.dart @@ -0,0 +1,12 @@ +import 'package:blockchain_utils/crypto/crypto/crc32/crc32.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void crcTest() { + for (final i in testVector) { + final result = Crc32.quickIntDigest(BytesUtils.fromHexString(i["message"])); + assert(result == i["crc32"]); + } +} diff --git a/example/lib/test/crypto/crc32/test_vector.dart b/example/lib/test/crypto/crc32/test_vector.dart new file mode 100644 index 0000000..848097a --- /dev/null +++ b/example/lib/test/crypto/crc32/test_vector.dart @@ -0,0 +1,242 @@ +final List> testVector = [ + { + "message": + "3a4befe5daddddc9f173db581b89d023fee85bb7780139abcac9c2685dee48a19f1856f11f733b560f6e8eb504af4fc14415fcb47476e29ebc69221cdda9b034642f93a58f72b5b72761d72320f3f869471a12d57ef848fc21b41463cd74a45796c8447e6372bb5978da2a578f907cd9aa482b4380e0079f19e28d32378859d5008dd68a2fad5b5be27a8335ccb1dc7c944f3d572f95cb82b1c4a2d28f26bc", + "crc32": 3478165375 + }, + { + "message": + "9ee307055f14b349570e6dbc8b8e5ef890f1dd678249f27b6548d6dfdbafbb89fdc6405afeb6c62ec993615f742d5c3b331b53b04bf9f1ae4af1b2a6", + "crc32": 618223733 + }, + { + "message": + "57ad5dcd25b1f850f19b4116fae219cdf4497820de92dd55f3613013f53767acb50172e487b365b369b101831e3129504c3dbd8a6ff8a484c2b46b233fbd97b213a93deed9701f4bc6c71761961cf13c1b4a06a3a751f1daf29daa6afc5e8cb55211fa516ead61400d12c93237b5a5937ac5a96b8e", + "crc32": 1230534397 + }, + { + "message": + "2c2b6d004761b6e551c50d95c2ecc188fdae832af9555d5b5f2c4b1909f6aa7dac87dfdd431b1fad6c989f31cdc93984c4447b5950642a52cd6b4482800667e334e3915f6244b099eaee9307c098d6c0454cfaec26376974bd15a7817efb26e3980fd03ef0195f9f98c5b71ae52b9fd13089360039f7290d511c45f93059", + "crc32": 3926390072 + }, + { + "message": + "5e5dc132ff3d43a3ac665bc00270705178a3804302e60be1d83d18e49b3f5c72690045fc886f669c3030faa1db4801839cead1f019b535e756a605daf357167e5565109feb8c41ca5d1a966478b867311465c32c49628f9e2d183844d74662a6f0a4830662e06a61f49dec285d01cdb7b717eddc5b5b3866063aad4c4ec0d45d926c5718c248b5e6", + "crc32": 1995016045 + }, + { + "message": + "126d799201bad5d0748fa2279dea46941f9bf69d44c38fb12d6c8e2483f49c57d6aff0a7a3d2fd096b246784afa802d49bd6a7015ea37be85816aa671eea9fc6fe8a80da1bbf40753b6b14d5e88c420ceda2dac2e0c4e04fbfdf6fb3109d2495736e4ceefe37d09df23fd36f", + "crc32": 371682049 + }, + {"message": "47be8a9e16ce9798de9e6b11fabf2150a0be07", "crc32": 2859019258}, + { + "message": + "fb661e565d165610fa6ceb0176bed36dace6b3bf5b24b58bb64b4a5a6d26d763e4e98530eef32a463a20eec6179ca6a4c58f8470897ca072353067bafd9dc783ad229d391a71de99237f88409f2c78ad936e6872f73ef2ca8c91b8340174295ab6321fb4adf02f57efb47101dde9e7142c431aedeca44ced749d9ceb5980d3d9384b5e56ea1c812fbdc3a8", + "crc32": 716256902 + }, + { + "message": + "db152895a3b7c7954274e6010a69176a4938c744bb169b81bbd2ea18d6e95e2bc0f433a4baf607dc507e5a8ea7001dcae44d9e3c33aa705e055f4d94e7f9bf508b1a0c9d4b33d103bc61cc38104f478e2bc1083dda18b661671f0f6f8a1e96d7aba3534830c81027c90d646f638e982475132923db16b1da17dae6b551840efe4b65a0346e6252b3471bd7e9150bd6b7963d93bb221cb78b", + "crc32": 2004026080 + }, + { + "message": + "c691b091f68272419e6d3a09ac5eff602f2364de6bf4e167dff74aa56778515e", + "crc32": 417698361 + }, + { + "message": + "acc79643aa13c9f5db317ede18427b2370a63ef59b2d28fb61e8ccc24239f79bc01d10580e9710a6cd29a3bee05852e90816d86f6c7a357d01293b3bb7d27954645138293a45e8aaca4e80bd31233d685450e502016e7a1717ffcf452490f0566841d919ff01662165af7db6895d0fd0212402a91718476647fded6cb485a032243bc8aa564e044bcc4dc480d965dc268d6bfbb2", + "crc32": 3970332418 + }, + { + "message": + "6992cfc99f0985a1dc6282f629f9cd70156878ba8e1dcdd9e8a421841eac3ca5747566d2c796ab85668c4eb34fc3bc6c0bf8424bdcb1f69d71a635865a31b45d8fb6da9fdc50956b36eae3b24fcc4c059203fda4c1a8bd61cb969c5cabc7ec", + "crc32": 2481322018 + }, + { + "message": + "97fe91576e1e3ab4ba2bbde654675161a8da07d4a9a1c53e1b3e9f5e23093aad43c90fff20992024841dee40b33316bf977f2d7eba13c18db2d67c76a9a7dbd84b145f", + "crc32": 3398140362 + }, + { + "message": + "e8cb750a663194ce39290b52677ff7270b73382da0bb5cce1d9d8227d74871a6f9400c54ea809ce10efb208dcc2d6913e5a50c0fbe9223925c7e463132ce63e535fac941d72881e9183fcfd1befdb460827b248f", + "crc32": 1330402029 + }, + { + "message": + "a43a11d8191b7bc3764b73524717bac284593067f34082cda7e93baa3d043a9b318d963f0afc9d5682ce81fb27efe5a5bfc24e2bea4c71aa8ee028a3", + "crc32": 4276979472 + }, + { + "message": + "315738c06d2099c0c44ddfd2ce5f6e46e6b5f37bf42d44e1fb3994a143dd2e453b3bbb6a6f2a98a588f27c209c0417f333dd3b48306462fd92960e17f7b375dc5e5655d1a75632a60b3be3bd8557e5a2c7d578bb9386b35046b5b55d4ee740036c3a478433ce347ae70b04bca6e6bb6300e6c96654c73343ccfe606c0cd9c6c45a06b78de10c0e6ae6d28c977be222", + "crc32": 1738686338 + }, + { + "message": + "d2ca90a90867a1a0b193821d8e23ba06c0966e69581fee6394ea7d14cb206296ea1a2b4671d7c001845fb3876c939bb3f7ab7972d6c660f092df899d4330b5ee66b2ec4bc687ae7c9ead0f4c2c5a0efce830010726853e79600ef7082e6ddf3b788bed39678eae8cf2d142101c124fe4023348d29855cef6529792f07d0dbfc434e3fa78ab2b6880f98b31d35437561124a3f83c64f5", + "crc32": 1695577826 + }, + { + "message": + "1368a80f6dc1ee7633a0c76b220325b2b42443482cf9fce0dc15340c563697075906869570d4", + "crc32": 4092197216 + }, + { + "message": + "b976423a3e2067cbc487fafa7279c35d03d878becd1c52b8eca3a1d4fefb17551c3d565823d7e31cbb493db1ce6f4827a04e077a66ba332711d3f4a6c63e", + "crc32": 2474314612 + }, + { + "message": + "8137506e30ffc576d219236ad597f5bac8b8f989ac790a112e5e58b0ad0f2faee719af1ab827fca06f42af292c1f86b58c54", + "crc32": 2222033324 + }, + { + "message": + "dcc60d6476abd4a002e34fe29d0283ebb19344c14c74ba266d1bc574cb370369fc10bc4531b107027709d027e6242efcdec760573f4ffa568e22985fca986db0bd628ee5f2320d69a097f8d1e8ce258a0f2c0b07444d2a60616419753988dc5878ba7f578be7f3d5edae1544597de179700ecc1b5f9abf83be6d27f5a3517b1ca5b1bfd06f5bacb8b7b35e82b3a36ad1a7cfa6cd5e", + "crc32": 287054049 + }, + { + "message": + "2098371520a2ff0276d866a2653360d1f90d08d13616ed23969f5ecd28e6c807456e53605d3b59d9cbe9f816f5a72cbd63d42ab21b268efb69bb2023a56559366ff0a44da873e1132b9108a8279008b68293225918b0897a4a5770133f2b8bd8603f09902669f5fabf44866b7fecab6ec29dc2d0ba894a81155d88a5192ec37764a61e59", + "crc32": 2950276516 + }, + { + "message": + "e4da75b992e535fdc4f3d8c072a4f31709a2e951dc69616ca0adcf77b1fc3e3abd5cbb4b17a993c382d7a4429aaa7466bf4a9d12120a77d78784d9850c3d566c7123b7aac621d9fd6b3394f1d2c2e904ef0b3499bdee75", + "crc32": 1661638149 + }, + { + "message": + "8dabeeaabdbe3db0fa137656f302194876fd05870a74b1cb7162d7d2ea7d7afb02", + "crc32": 440782320 + }, + { + "message": + "2056ba8e1913484ee3eae804dfd429ce65dd8be9f31db8facb0fc29760138feabbe37f21266da8985f29f3711418d1ae00bf91c8fe12f8279edeb2f828782a671fd347cea5b4ab85cdf82cc896b7427e2dacd344d8a8f308f734fa3a", + "crc32": 1172466025 + }, + { + "message": + "0b075d11527ac491e14ed6eb753b6fde70f1cc7230bc4169d39eb30768f1ffe0bab84a04014e874b6f0f5403194d913e5dfcd6ff566320337d665c00a2b7e0a8", + "crc32": 1015368252 + }, + { + "message": "08b0a612e62cef8f2d7c66d77d440a24adc75da7ef8a4526", + "crc32": 946152586 + }, + { + "message": + "f533ac64e7c8d5c873f46b714b549e300d9e551f3379459e85ef3100208ccbc5f9753fc21f1342929b2ac681e1219c58f31109e51d8bebc76857515227bdb15e6a0db9f4b839775425686eabd50aee1b2c29911b8317caaab06a9bc1", + "crc32": 1978372889 + }, + { + "message": + "8b26d5870e67e73ca0ec6de4d5150a970c7f32a47a52958fd6b0642a383d7c5f1257fe95c3581f41f67b6e440b2e1cb7622f95d3ec91116fd70ad45c7f83a306ede721c478e3303b54aa9eefbf1b78600ce61cd492b581985fcdfd9044e2b1cda4ccbbfda6552e07aca4333aad1e23c4568bbca8ac34de97e4abe259e84c8b8e753ca1860afb1e4ee4c4af365a94f9bef1448e798de72208", + "crc32": 977550423 + }, + { + "message": + "a9e733276f57952fb29dc4c6463a5890af966b38e730a10b89748176279111b1570da2da049ca5a8651b0c2b3ee2c0dcb12267b224660fc1b5fb5fc1ff3ceca2ac2e983e4494b52f1440ac1dcd1b70a32b02c38fb838b7beb41b1b88cd3bcc831f1aa7b135ae7715f0f1608efd4f7b7d18e00d4cd90127d38e1fdc854d2fae3c12fb3d39d229db772f7b59a21e15ffb461bf", + "crc32": 3327198118 + }, + { + "message": + "42e2f5f949991f6cde1306c92f2f0dbbe193d3ba3ea6d1e5b6f5d0559dc99066277729af807ff2a2ee42906f564fff22cdc222d722284c2b034e157214df9ba653e9d3bab7ebed0ebad5e013b257c2bae1e7e24d5cc6838fe0e253a7ecda8087248dd0ec54c50d898f4f3e4c22c1569954dbc29205f29a594a6bb57f0b281c0d65841063f09872257cbb68624730ffdb3838", + "crc32": 1762723164 + }, + { + "message": + "f23464466bd81cc202e2766eadbedabfeea13dd8ca1a63830915399ccfe9be7341473a2311ed16aec98cc6a671b25eef1067ce6c73fd3af718ef4efcbd1bdda382338988320275978e684907d244194db21e5e3828ce73127ce692c20aaf66ee457b1f50dd489d0664af8cc62c6fa233fccac543df17ff1b4e599cf29f85bd11e6549191fd0d985803be8f7504878793", + "crc32": 597233408 + }, + { + "message": + "d5797528e26db2d842507256603921e9b578e929ebe89dcdaaeedd94befb25500615a26beffe42d7650d6ef11fd006686fedc8951f6cbfe6fcb3412eebfb37469a7bdc83ad162094a9be7fa7a1bccaa998e11a6f21c4a2e9aeeabf24e19d4e729b89ce65f82f9c51a166682b314015e2504a8d17", + "crc32": 307811692 + }, + { + "message": + "8a0e88f733200b71483b23d23255408789d46f1428f232bc0ced196422cc85c352f3eecd6ffa27e2b9d34d5e4a5a4b0b3f62d030f2f1cce6aedba224367e312d6a4b15ae73469600172578ebc43318be339bb4bd4fd329fac2b07cf59334eff19dcc29c4badfe46a2b9bf6b40667257ef69139c773163ccf0718921aa4514a3aadd536c147625359a199e4ecc9266b4a0b", + "crc32": 1021439936 + }, + { + "message": + "6aae842b0c34a304b02c4f7358cb4826b0bb6ae600318811f02e2df7fa3cb94dc2f43234945d90b2b2e0c56ed755c5c7abec6d2bd80109", + "crc32": 2165779960 + }, + { + "message": + "bb6dd318c080c89df1b1ed363144334597866ee3142ba6165be581797348ee0e8481bc8e2d59447fe707071b6d58b81b4ad0ae65b5222f", + "crc32": 1869114865 + }, + { + "message": + "a2a92112f3b9d9222d714fe037c9e062b999f1b20b389f68dce510f4a57d5904a5e0b36684a4e27ea9ed76118dfec7dfd68cd151a145ec85df502f8ac444a09d5c1bf8811cfd366c059fcf7d", + "crc32": 3552008459 + }, + { + "message": + "7d14736997fa6ce2a4ac8bf330e5dace251bd02c313229fc2805a5b55ce885a2d67b2e32121b41c6c35265622f68be0d8e40b361d9d55039260348196e75cc467416670a2ef8380547568f7ca3f93db2c9afbc2c35baa01f109252f6858f27484daedcc1626eac7da60599df942609f1b1ec", + "crc32": 2920452933 + }, + { + "message": + "5c1e515824de44313f796c845c7fb6cc93c1b27c49b0e494f30e0c8f14d5e74902a7682b3608da44616d65d01af9132f95101022eb54fd9b4ac2038541631f472a443bc03bc606f3c91334ebc85421bc3e09f3b2a75788b4e1a06139554ad47a8654c4a1b971eea0f9d96255d199f7c1a0671e0c28745ff74afa8783379685da", + "crc32": 368416667 + }, + { + "message": + "621b6ef94900eb5f27d41f4ce1dbf1d0e6fc85aee0180a3799669bc4a8397347d99aa7f5ced08d86cb9f10f94e5cdc44cbd3cc2540393120d895a3184b1a6abfe609e9432f1a72e9e73b4dc18b40104f65fbde57eaf55d3caa81a9cc1404355b20041971c4fb1188eb7d78660b4f37a0d3c13c669073dda51003c5a07fde38e8e193be5c41dfad3c43861762e3936a7e834b4c1ea800d4893670a8fb78b499", + "crc32": 3798626280 + }, + { + "message": + "fa579db4fd4fd7b02fd6649a28f6be716479f0a4adbd068fcbc6fbd826b5cc4fc56ad598", + "crc32": 1989449502 + }, + { + "message": + "fc386a4067761d42804ed4f96291a128721327a82b919a17b029f4987645a5968beb1d96571c32854d86f8d47ac99be4fe4aae402e7366d570f7500d6a836e447c7b26f61dab9fde092b11888e99417afbb61d3dc809549c23688ddbad703bd36eaae4ad1c45a119f60fea64", + "crc32": 2167040474 + }, + { + "message": + "3f26e8a1de059e2550a44ae3da6a705fa41a43424243f15fc410bcac95136577c7711e91547f52a64c505bc466f7", + "crc32": 1418294187 + }, + { + "message": + "9d183c2d84a26ae7d09f41715e96e9def5a2d32b6d7f0e3eeed786e644c74d00288727afcafccd39b545f60c49b90ae4a7bc835368c4d680bf526318275b1a38e6cb52136579dfe9ee", + "crc32": 1757364855 + }, + { + "message": + "fef4b7aba22c876c07cebf02287818f4c7ffa50408fcaae5a1bc4918768f868d2e0b805b", + "crc32": 122297973 + }, + {"message": "c86b5b49b86998911524baa9c05b051f2f552aed", "crc32": 343851956}, + { + "message": "9e006cd0d25237de966f1a7d3f7a9468c032c3b4b0734d", + "crc32": 2344983595 + }, + { + "message": + "de3d4113e24f669959111027eb7b23b9577020ce6d1c32bf516859bbfeb0dec51a4cc3c49313806676f7e2f9300484", + "crc32": 3461405171 + }, + { + "message": + "d7a79453cdd1025e755448ec099f4357474f193931bbc0944cf1ede07426dcfac99bcb7b62d739de7a2d31066d3ac5fd2f13a04020abba57aac6c6017b5bde7ca2c3ecd277c3df798e65d65f178fc87f4f481de1a9106292c1c85ca8d8b6110cb0d21a27633845c13aea2f0b29e80c3b495a58461f12501da422c7287bc676fae3ea7d51f1a3554ed91ec1d7cee1d9d765", + "crc32": 1868064496 + }, + { + "message": + "b96ee5ce35d95806a187fe76dc6c85859520e17337fb3b78a17c69cecf4fcc1941872e772c2911c107cf007f86f175", + "crc32": 1804704381 + } +]; diff --git a/example/lib/test/crypto/hmac/hmac_test.dart b/example/lib/test/crypto/hmac/hmac_test.dart new file mode 100644 index 0000000..bef1023 --- /dev/null +++ b/example/lib/test/crypto/hmac/hmac_test.dart @@ -0,0 +1,36 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/crypto/crypto/hmac/hmac.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void testHmac() { + for (final i in hmach512TestVector) { + final key = BytesUtils.fromHexString(i["key"]); + final message = BytesUtils.fromHexString(i["message"]); + final mac = HMAC(() => SHA512(), key); + mac.update(message.sublist(0, 10)); + mac.update(message.sublist(10)); + assert(mac.digest().toHex() == i["hash"]); + mac.reset(); + mac.update(message); + assert(mac.digest().toHex() == i["hash"]); + } + for (final i in hmac256TestVector) { + final key = BytesUtils.fromHexString(i["key"]); + final message = BytesUtils.fromHexString(i["message"]); + final mac = HMAC(() => SHA256(), key); + mac.update(message.sublist(0, 10)); + mac.update(message.sublist(10)); + assert(mac.digest().toHex() == i["hash"]); + } + for (final i in sha3TestVector) { + final key = BytesUtils.fromHexString(i["key"]); + final message = BytesUtils.fromHexString(i["message"]); + final mac = HMAC(() => SHA3(), key); + mac.update(message.sublist(0, 10)); + mac.update(message.sublist(10)); + assert(mac.digest().toHex() == i["hash"]); + } +} diff --git a/example/lib/test/crypto/hmac/test_vector.dart b/example/lib/test/crypto/hmac/test_vector.dart new file mode 100644 index 0000000..cb361d0 --- /dev/null +++ b/example/lib/test/crypto/hmac/test_vector.dart @@ -0,0 +1,474 @@ +final List> hmach512TestVector = [ + { + "key": "b38b00197f7ef679d42e593dc4dd44b7361ba7d9f2082395ddb058dd1203ecf1", + "message": + "1cc07711269302184f316eb96c83d49b8eac3e26de2678b02c95533222b8f1f9263215004ff73675da36bb878b162440c3dc36a9c744494dc74ac121214a2e4b2513d2783a63a93c775e745b671152c355e0fce13f1bf4aabf53b7fcb31f98ddf04e38179bf1d09628065c4a476a42c2896192f5f75dd0bece50734984b6f93a04221535b0f9a1fcd3b297c21cbcabfeafc4a70b06ea82e99d7341a085a2f5fc16aa28101a3607c57ca3941b2b4beebcad20d2c2872df2ded20e3c1842bca64d34a0470bfe0f667380e6c0f9435fbdfb713b99c64486090b873c72bbc36dff08f130db23506dbb3299d464395807909ee0fa84d8", + "hash": + "db796c4366996bfcae41bcc639b2036b5460938f1182d2a9cc593f6c13f27927c0d464086fb45bf90993890da28760a47bc797969e2b8d6b5135af6401b91616" + }, + { + "key": "5697da75c98dae79f8400dccffc33f54deccd67e4464fb363a3ff522de7610ad", + "message": + "bff8691279032f6082b5b001482894f104f8c5bc6c125664fe0bcdc9ed9d93517743c3233d3f4067ef8d24499d4e3cb1e507d2cae6b70fc2e201304c7c59bdeb8bcbb127fb302d09a48cabd24b795540d8a5b5a109e686e6e11b5f6a133023007c6cfa1e0f70eacd6b536f48fe8f6601bd3be076dda1b82b073b", + "hash": + "c278e58b5fecd883be9aeee1a04cf50e33f450209479a822029af680895052364f7c1dd50e9bf8f762a5e5d9d6497b3ce4db6ab114d98c2d57b62fea37ff2655" + }, + { + "key": "acdbd7c3836ad662d0e6e003edd3e32055c64115d076cd70f9d5ea015e46e2bf", + "message": + "d0481f1e598fd9fc025a9baa76f8add5c314cb6d0910a6bb2073f0c9a32aeca248a8c2c9d2182bd8f0f97ddc4098d37189f1a5c94bbeaa4722a5d44c170107387fd4fe89fe998bacd368ea0ff5fe22f91fe27be4a75f5ba5da4541d12470eebcfec602ae00076bdb6de7c6ed1bd8898beff9fdd892b92c8a87d4885d14bd9ab97e18cba9864d185b7752", + "hash": + "91fe256c668130d7f533e5a3eaa7903a3628e3df629afa88b55097e822d0682272e61b1faaa9d8f7589a18d0a3b14640dd5949ebd9b74b968bac99ee9db8ef65" + }, + { + "key": "a0c16cf4406a3897ecb2c2f00bf062f190cf85a4a021de046d340befde38bec2", + "message": + "c385a3bf08cae8c0925a23a6e4ea356e8e63559dc350353aea71349dd9a6a9e8dea006b6d785fd206424c7969c57d20fc8f570b00498305730a5b9ab87cf33d5fa8b39f6e7e3ef7f67907aebc917e61ac3384865e758ad66dca6d555c117d65013cce98ae86d6cf0de2d9e42948d180682615531e430519d0af1f51a3221fe4a6dbcea64ea6094f07f1518e223a628be6fbb2a82c0e0a950853a063647b06b8453186b663b85bf53ddb4c1093dbecb35db932f883c7a2e10eb0bfb9c37b05c2415d5a281b1411721fff0994da0286e00d36d932279c233e64a0c61a08acc4617bd9f24ca6e7e697c95f2d0baa8a82ba5b3", + "hash": + "7c5762279d7a0cb36b21bde16efec53bbde66fbb209419b8c2ee62b167b7fdf299831a1203df517e384266d3144cb57fa37f4678b2bb8a19201e8255dd1a578b" + }, + { + "key": "8efea420a290d55c951519d88909644725fff640e6b4c5467fa35e6121ba0e93", + "message": + "72bde62ca18933240efb44368ec3212f673ac906255325d4ec0b7fb3af1d131cf7ae21442da3dee2cc179e981ab4893d64747d6b2bb9083cdcee271aca43112ce100a6b9a15c91a2cb57b5d59ddce6f6b86d99bbdd8cfc0bbab35dc250eb414161a352878d61f6fc2271eef636c473643bc5630ee285f64016c64163a2396449f0c33f326cf9ddbc58792603056ed682d846cf6d8f5fc5147a928aeeb80ab15d715175c69403dde5", + "hash": + "8086cadba637baf1c2fb7b9950675c3ef10bc1608390bc89c90c74390b78b2dd4b9844b783c677a9f6ca86e31e5b340703bcce83c43d18af087c415d40d8be01" + }, + { + "key": "3f458a5ce7cf7cd9847c70abb4d6e144b4c041a279e143f4c554d42de77f27ff", + "message": "afd354a0375e823dab79b772823f5c", + "hash": + "bce8437d998c1b4a74294b404575423a71b01bb92240a634e47b5d132b1084b3fe40efd6cba6e81fde9224a31f4f5f4eb3a110524b6863150d77b825d7032c4a" + }, + { + "key": "635bb1b4ff4186949d669d7cace34bef7c4bf977e2f190cf797498b0af2628e5", + "message": + "c5a1a439ae317e890b79c59a739c3cb146168523c31d4237dadc86aa9f53774bf92950813bbd29a3e0de397682cc00433208aeb1164ee982b24d167591d3c2884ab64cd552ac674f1a3e2c4257323c3fd958a26295159e84604a655c918072fe25042880cea5073786e1093a3b9961e4c1a214ffc78f144c455c3db6348c18d06e941d56628ccca17a1c2793720a4d1dddd4fdbb7117dc4bf6a33496539d7271594dc1698ca16aef9b9412cac84a8adc920469dc4fa949982d40dbe414805ff213d159737993bbf4553dfd5ad654a7376d078bcd18aa501e2247ff0ca1919f3990f8b4a46e838c71c76596584d6aecd41b2f3decf3", + "hash": + "d1d93144b77e038e1e4d2bb0d35339b56e1c77fc2bc5ceb3ca472ad2fa53e98e46183d9e9f0d4ec0c5c22cbdc3fb0dcf9d219e747c2a8595d38360563cefcbaf" + }, + { + "key": "e3635c5b56fe2620c1591423fdd400f06157e2f3cd4423a2ed44bdbb82f60b20", + "message": + "24f4e9183200c6c4f8a2d2dc4ca2d6f0eb095cdce639ac4a358cf1c49469fadf1f0eda12c6fb1aeef539eed8909df9c6df1208cb8d339a16fbcb812056f3db0b9a180c4bcc85eb0a18d6193dbf3a95599cf071aacc433becfdaf1b4d7097992d3e48125f22f609ec39ba762dec29cc62cee941cbf06a5fcce151cb4103357731b24cbb0c5ff190bc56d9f7e37d6cc75d18794ad7b18226179445", + "hash": + "0f93dbe9b87b8fc4a53c1c6426c1f935c5546b468ece57ed63dbf6153f191d6a0bc5cebfe6757f394bd0e1ddf95447c449b65bc8683ebfbe22c6bdf0e2114855" + }, + { + "key": "d0d58d4af224fe36b9cf9bcd99784122b9529946e153f71a5aeeb2dfe805c504", + "message": + "bc774e8f4c923844cd47647c853382e09741abba199d92a3aa804c87eaa7fa194884359c51880555d445cef20905d18e1ebcfdc7b73e1907b227bb2a22db12b71057b3b64c9b5c6eee192f218a6373e58e245d45238702e8deda6b54fbc1c75bb5cc821a562b5c78f6c3ebfbe86b1056abd40152db888a2f96d12cfc3eeb6d237c6977b9fd23d7a6d4fe5ebfbd570f180be6c74c2b3bac4b2293ef6a8b93e75b7f6214ef585c8504f10cd7cea0be6b230e2649fbc727f4c4a8a81cb5ca87e052a83839d5fe9158cc184a3013900af11415a2", + "hash": + "e779460a4bf3f38973eb7b9e8260e23c6dab5478115cad0485042759ed5a2e1cf2d0a327191a4b8534c63a1c6839cd0169c6e8015225a94b678b571b389981a8" + }, + { + "key": "8fd42ba944131f160085d358f711c2a2bf0fbabbb829c68a2cb926a6988d42de", + "message": + "4dba0e23eda9233c197472234f860fa774e4c2e0fd8c8015af8c7ee6d071ed8267ed2bf2b101d5aec1529df7b9fbfd311720549c29aaa552c6", + "hash": + "63b52eb3c6cccd3a10ee8f0122e857cbfe501a5fac3d8fd74bd7385d4116b38d10931f4b056e0ed252bcc6a0cde23e818a178b7fc7a813a516bbb67d0c7f6d02" + }, + { + "key": "2c6465904d116585aa079a0f08bc66ff5e719fbb17e07c467145635d40a40c42", + "message": + "55ae2d9dca32d8dcc6d311ed3f7002f15ccd515a832e4580b323b27e8e4e38fa1b40727c33fca18fb48daf0f5a6efbc5a0c3321d9c6e235bb398155618bdeadaab7c88bc7cdf5e3d6d738ccae0914ff49db482a961c3215228d410c0f658261483d39c5baf542525b7637ae11bd17ae630f1bbc5fc10a5af2a371397cd8605711af05e12e13510a154709481766c080c5b1df3f7fca1e75532fbff8674af8bd0fe266b599af28f3b984198dfcf1e16f7856840", + "hash": + "77e3540bb44862717a52b3f8b94dc951783cbb13b924e47bae9335d01af94ed05aa0d668765411f221e4ddccd03554e391ed896169b258bd720a270b6c176378" + }, + { + "key": "7078a09483a5c9db124424799691f7931670daed46d0d6e2a2527dabc6a6b987", + "message": "ced0d95229a9997ab25aee78f17b112b2a14b18278d7c1dd0192a04e2d6c", + "hash": + "a49ad87e5e8a503337337affbe9cdf8fcb8c55a90ea874f7e2e3d17fdfd22a4808bbd50568b9dd2c704f97430bcc43f7dc4c48e525dc864bed211ac50f5c78d2" + }, + { + "key": "6815fb78c9f43e6131a9bdf1dfce6722a52a4bd189dbc85f10731571931d06b6", + "message": + "1bf2055c46e7b0a11f209e5b1e8b9e506e5996a5b08ed44107301b23d8ef917543b18cc7f8d16fdc7e09cdd484844f8db4303a672f4c4ab3fbbc5ee271ec36db551eec76d39c494d052c21242b82c632e2c4", + "hash": + "c89e857dae76dd9ba967331d00cbf6d76c762993ec7c0af6b917a9e675a5866ac5ffe66ddef593baea39baa17c4fc97a91ae2ae115900c5a3de7244c32ea0584" + }, + { + "key": "828b0ac8d2d9307867a2f52180d30d2efe5d733b4c480895c86ebf4eb0d882b6", + "message": + "1336110cb72697b56a31550001c77237fe55be8cab90ae3e6ba4a468b9de4c6f2c4c08349ff25af6a8d26ffdc90d01b0c080333402e4d0b802a2660415d85bab950df734146f44b05eeb3b1c4348146b2f4e1ffd8c4d9c11e866e9eaf1d7e75139c6ea15e786e6b792bb7ab56c4776d4649e3b23d9e60fdc4079a00ec5d77df76525b38ed24decf6ef2713", + "hash": + "4d7cd36501b867260f7e2a62887e13ee014e2363b9b925401ff94c7fa0472ee95adba1af06fe633c1519ec0530c8e3c6915e759436df6b60136cf80f5093edc9" + }, + { + "key": "afeb482a78b0b8aa958a584caaa5b0ff347abc1d8186556ba3871f663241f09d", + "message": "8d969b1f218e17111e4ad6638862e83414e7e3de3b2fd1aa", + "hash": + "a621c0649488b6ca141fc676c230bfe5c2669da78fa20cc026757a3200b218f89a54267797772bcfc19a78d142f2fa4d4323e4201db2e499a7a8038456d18b5d" + }, + { + "key": "5cd41044286d92a433fd2e8f1fe1608e228ef883034939927282d4c8285e838f", + "message": "4cd461a85d99f13d5b7c6e", + "hash": + "898a694247c21b21a0c0990c2fa6ff7bfd382f7189d7d00ff68832a748c5a2b6353196541a080ce0b20997254569e8874d6899b116757a7631260ce33a5b3373" + }, + { + "key": "4234c4cc9cc8a16d695e8648c2626d26405326c2dba4b5b689c60cdd7b170515", + "message": + "e85cc639fdcfc9a60ed5e4c3beeb44b60a922c3cfc431c269f86e99132146a2ffab6fcab2dd2199ec871e186ddb8ccb361450d8e71640289ae738a6a2d982694a2a1d138a9be8f3de5e90471a015b24b52b945621e6a34855c6635b4d6b7d023a594324f4783175b94ff6e001409e4d40343611068f24b4009eaefaddc589e4385ddab623caf0cf23360a0ff03fd5148bbe0b740bd625910d157948c42d2e61bec4da310d76fedd9d9e7726b2fc035037fb5947f3c869b2159d6ad198a3dfdbeaadcaacbc583272ada735538c9c72440b48164e8bdce", + "hash": + "8eb5f4b86a75c27e229e0b08dc8c9ff8b4a4ed302c96437558516d2dcbe41da87209970c051cb42f190771e3fc69e084cbc855656ac3ba8ab592fe23d80a062c" + }, + { + "key": "3cb773006c1c5bf6ea9325d3fe0481fe70e4bb9b6ee3a1462d8479d544439b90", + "message": + "d463267a0c9a9cfed71cb7acd0680abd7098103730a2c0744cc7b5d7136774bb9d594fd11e1060b98b9f49b7cb8043de1eb9be72e9dc118146ce367ac548a78c535fcd162d5f9b70fe73a7c817e48078c7a4c563d4d4197f1db8ed8a15537cd34305e88f85151105eacca34b26d9cd39744cb9ed3bb41d037c1eab7918b860285790209eaa00ff0590741c9eeec8b93d740e5bc6ab0eeb0cc9004f9c8abb4bcf09700b84a6be1a406cdd8eaa5252dddf64d32d4a6f3b6b31e10b2103b7d842fd12f21576cbae7ba3274d136eba8f8512112b47b0b8e49e7d102be0fc7c62e60ea5771091a3df1834c772d06d224a3ef593270e53c97e851080cd", + "hash": + "901a7248a090113cc15474b8ec62b66f6340109b0fc78e61920f71d2325aa5e1a42c49cb7cd3dd483dfcf4c69564bd1038776993e0da08df3e217f6d397a3f9f" + }, + { + "key": "efcb201c10dfa92aca40d57c9dbaf0fecb08b0d284c13f6b53024f8d0129e45f", + "message": + "d6b36e56ea859b483ca8d50f15a54db10d0af7797c6b11b4ad7445ef5dc84a19b7186c2b9f4f443a2c287de8a1ab73477e4b2f8921d6647f2e0ab76f5ed46637472f80b9b351c41974bacdc457b9deb69314467d963e35fdcb9074d452d79182305503b9ce21576b97008cd48d1c27b8c317c9363b9bc9c66a8e6dd152c6fe25092479fa67b5e50fb6d731540d575bbbb2075a4c61698bfbddb06222eaa87451655b0a546a1599a8f9ac3681661f2a623018093f2454a67abcd46f3787a19ef5b73e75ccbf583d37dcbd26e9b1", + "hash": + "8f95bb8afb2933ba0f4f26576d7e7f43ee5555e4ea9bdb3c694415bdc98108b31c887227c8856691db611ea825f944cba6af1c244140e9955ef0ee3c61d133ad" + }, + { + "key": "e5ce476a5e1fc852650fef1b5a4ba2562ea954647765896609865fc7cd487499", + "message": + "7a267c1d269ce52334efc37469e053039cb7a4f5b3b5fc0502f6d4ccd9375ab07a9be362f8fb4955bccda629ca2fdc7c6311109e19b23c68db679d8a8d4f85950f6815a1252d5abd2aa3a6893e33307ded1c426cfa0bddc7160026d0a2cfd742f3e0129ee5dc8440e7b820a34b27b32e57c51085b3831133b55b0fc957cb84c8a09e5c5dcde66a6effbca16742e68e35b48ae76c7a046947f7c3b93282b410665d209593a77c824687b4328eac79ee6a5d4475ab883989785e", + "hash": + "5555c7966bab43e75fd67c3ce0f323b8896adac5cc5e92e6b124d705678492943fb3c17e982ebc1bc2abf6ca15d77dde25c28f56c43e0d50ab182998aa48e841" + }, + { + "key": "3d39d8f411dfed223b5e0511e2abe1b103b944eca028aab535a94a14a9a68887", + "message": + "7ec9a47bfb8dcf17d51e5541c5b2bd4db7cea6cc583730b1ed6415417443fdef631b02dce8a79d6885225be4cc44b256dbad5f8191ac9fc1a10469bf2f83a4e4e16167fe3634c83bfd14a5578ceece8ab9e7554e01da34", + "hash": + "a42e02d5af85b5b1eb6ab2de4de49f30ad25f674f13562a344b5edd96bb342362f99f9b8c9eac1499b2b62b6352e6629987affd0d95eef7b3320e0eb618459cb" + }, + { + "key": "bbccde501f1a76cca23d8648e8ca61ea2e2341f4b33aa7281e063216dae78f6f", + "message": + "e6d3283b50eff72f7b81770110c47568d258d9fb322b02c6d5bb8a67f2fe8a4264bc0910435bd51cacbc3cc709da39493670cbe16b894e2456df9acd94d5c5f938ce5f4c8c730a252e6e66ec4728cdb1df9633be1849c8ee636ab6b38dd8eb5aa643e5f68e19273d6f566787a8417749d2abcafd9c489e3b11f33f0d61a26dd1b72f6ddf131221c6d42c171e50ebb947325355", + "hash": + "71c31bb181af2258a19b106cf99c8d0f72f0e510ae34f97b26c96f9d6369c029ccd20f4a86ce29084a328e9de2ca6cbc9e0c30ca89506ca42e6effba2c0191a1" + }, + { + "key": "53a438dca473787bf49d64e4037284a5fc770871690dd7d8223818af32a07031", + "message": + "a460434b26500d5d62127402da4a6dd6b55bede4e9c313cc8ff4cdf7f294f4362580a5ecbf7b602bed5eefb71d85d8aa114930c5600b431a7987099fcc9981d29d84af2570b82a4eaae577ff47efc88902273afa046a07e73efdc3689842812512c255a560b3c5eebf701156a5603dcf61089d0ca53965d2590b4f5bcf88dc22f55cdb6d0de5077805de39d92cb3c799213fb090b198547d4d8124fa0fae02aa939ee2f57b508a3e02d613d054cb828ac16b7e8ea35b6f40a639d25ac8b94e3dfcf6c9324374355e501a528c5ca3ebf04cb3f0dc9363a22e3d1f6e6d73898f26a004265b38", + "hash": + "b62f0154cc1667431f770c5ce8feda24930409514e3f142014900c9166aaf40c81a7d79e600acf3c729ff21c4a1a943adf7b42660c289105a213ec28001c12fe" + }, + { + "key": "a3fbaf4b1ad2fca96ab3cca1bc094c0ef2bbac09f40db9c00a959c2e08a79483", + "message": + "24d49420b48418599fdf5a145da4e83c231f972d5e64593eff52ca41815d1287b2681858fd6540d6e9380de4ae41d2827fbb1e35ae6bc99d85d8476ce7827558113c5672394aad", + "hash": + "bf1409d3d51c6a2b9490b693cc02529623596f811c32036c818bc695ab9c4754c679b2aedbf5b3dec76c94c702d2c2018ab59d2a2b49ce53128e818220250b5f" + }, + { + "key": "14e525899990a28169916352e60e70e9e54d9574a5f7a35504b384f3b7fbeef5", + "message": "4e66d4d32bfe0f6dce090ced", + "hash": + "b1cd916e88eba737a3eb3ffe7b7532dbe4e7e06ee096de40df48661a2227899bcc2d1786dc637bb6d1d2ce9b799c852fc396321f56d11d885564d7ec77b631cb" + } +]; + +final List> hmac256TestVector = [ + { + "key": "b0870e5bed5c1f6469f7ac2232a423884557af24a27ca1d6fe3a65f1d2dc48ec", + "message": + "26a525ff27b179b8599b0a18f14104a23b00cc00fd262c713ac18a69f2c4bbc098bdca7d595a71c5f6ee4d2491b53116827a51d7052d384cbc956339d72480ccaa0f57367a5cfd", + "hash": "b177d26e940e2ed36cc84b1869d6363f5f1d8f44779e7bb1a4c43985a452060d" + }, + { + "key": "bdb33026dc2aff086a4ec450d51e7f556c8b704141057ad2d2da8f612b3d592e", + "message": + "644af9e9d5a23be2d71b8f8b5f00f4bfb7ba5dc88f2725fce736062b04206cd102e9605eb37c5326f19034ed9026a7b66326d7c236b3e726a4d3d1066c8aa4c368eaf308dd94ca320f8d54ecaaa9f6ee329df7ad084258392be50ad349377a4017194554e023dc9b5febb358cb2ad8cb41c816cd2e9add54bfb52c8d73da7a5fcc961c5cfe838f34960f41ebecd5c36893b7452e74a1b3fe20bbdead56244dd68313257c5d73369338925a2a2289711228049101ad1cdd4739401928e4264ebdb0ac6e7b8d80113f9066750e7ecdc8d47fd5a13c41ae15b0d3706d4bf12e941cb6688e675d3209fef8f139401cf41ff3d2f226bc3601a740ba0c1e49c396", + "hash": "7aaeb3a00224d751f1100967d639dc107c0219b3cb04a42cf1e5a2662dd086bb" + }, + { + "key": "3c752b299aa240b621325ed0e943b5869cb75c8b0bc81cf585da5c0c2334f4c6", + "message": + "e69f2b06375024d5a6096964ce8f705375f055414fac8faadd1e6559e73cdc76caa0fc2bbe188097e79dda31f8505eb171529828ae7f9742a2f6efa8897f0dce8cf8f0", + "hash": "139e29bf3a3807cbb28bb027d541e2b3498393719f99b74723f61133a6238318" + }, + { + "key": "d759d35eb4eccb19e71ece40b7ebdeb7e8b8c144eee1f7e4b906f7415e5311ae", + "message": + "08f59b1dd2401c3d4f58ebf61f131fd983892374938c8023e9b9947e7484e6139f7850bfac42cbe3da759d16b6819e3945921dd1be2bba62527fd70965d54d6c0ee8e9b32047d3f3188baf636721501094874f90e719db2557f9af75cf0b3e368e88517c9131ddd0eec0ef573a4690d0bbd4ef8e700c3a8a620060676464a3625f5e56b7703a82a43712886ef78aeb87c55968fa6702b9c227", + "hash": "66223da950e409ef60983c93aace50e25c13f811baf0c3a9d548d28f5c3a9b19" + }, + { + "key": "504ffeacbf088a89e6d0e09567ee8223b974e668be8d67111ff638da18492d5c", + "message": + "2a2f5006eb76ab7dbce4c8af7099a02c29f0e3f7acf514ab0eb73caefe852fd82ef8318924eabc05544dddf88eb50287424811ecc032ff7b998ed818035a9c9276ff16abfb121a0481e7db7d12a1e958582fca31912de68da47fa709b35c7cbcf7ee6e9108d7cf68b62e2cbd45039ab7207cbe84982805f99e23e73e4c999ed8bd9bb950b8ec6b738c8ef856e450cc8cb911cba8b5d793142fa0c6a51535a4a5789e27e984ebff8fe4d647b4c259c683ded1909ea7cfa07b8cca1c07516f668804eee2ba81ee9f4b93de8b8fa52b92ecea148f770c162585ac9cb4b8c6a9afd790eaa4d5863f883a006dbe8ff5f8b087", + "hash": "06a37864783ef7f89f88b182a95ffb932bb8758a9246482f0e4d8cdfe98b1c09" + }, + { + "key": "24a0e4fa9be83c01de6c35961911300206bf7dbaf50f0b34ff4ca0ef94f2d30f", + "message": + "8d7096116c94dc9697495d4ac717a1877fda77c8f28d50b9d966fb7e57b0f19a77bddcd83ce1a0bed72933805948ee0440d98c20474620a097e124542534be06281d3a35abc1d526e1123569e52ed64bef2a526c6ae505c05e10421676b90a9bc8", + "hash": "073eba50223c33cd5ccec443a15e1fd3cd08d546b7f6f52b48ae1fb25fcd2045" + }, + { + "key": "3dfb261c25d3682b806fc4331575fe9c0ed8057d5e17cf2c3721e87fd5b0c637", + "message": + "9efb9264029db683806ccc47fdc61b911bbad37b323235f69c2154819d7fd80acae8cb0391ffe9485e3781", + "hash": "1a825f7ea51d0a60417151536db8157a7c7e6d020be8fb0391a22a69d167bcf0" + }, + { + "key": "c44cc4461c0a77b9c658a52bd2864a84484b918e0bc0428658f37efbc86cf134", + "message": + "b985d1db5e09daa0287e9be3449e5835f820a80ac9ecb72bb95a17ad4b7287b36d9ac2661bd1bcb92b23a580e1dc40d22950043fe8be1312c993fd5a6aa7220d6e3c3f3bc8f8c5b341ab238c66d4ddae757159ae60e944ee8cd7dee4d5c9783d8e52aae00c99d9c983ab992d00e58b3c5a12582baf00ebcfab49fc74817a3ee08fffb2f3c86f1581f190a91867c2397e6c2efeafee43d8674884f8fe8516215e74c87205d7c12f16b4833168cf2aa9765ce9f63e657bfa8ddb1d3b17f635131db574c9ad732f03a38e8b9587500032e21a0a96709db1053dcde7cccefbf2", + "hash": "a5f39945200e24145f5fb5d0603ec5049d443cbebddf32e297e68a152db3b10d" + }, + { + "key": "c75423a8175ea7bcccd7595b6e6a0827023090b0a756b5f82d97f49f1a95b96e", + "message": + "e31fca3c25a5a0a22032ea24bbc82c8a4664a3151b85dd576837f6c19d04a618b731ee21", + "hash": "44dbd60e01df3ac369b66a115bbc96a9ff888ac53581ab20d0eff41b27061bed" + }, + { + "key": "91814ed9ec6f57c4dff31c5c0f83f50f6d392ffbf9dc8f4fe3066627364f310b", + "message": + "fa95794fca3c0a48a04d4fae8e747ef7a0e9162a57ae9ce2638235e65d870302621cd95919c64761280d03b298d20a41761d750d154d3b1892160941686d0cab0cdf1f4de62fe74afbc43426ce674d9189c657c78e0f9b55b7f71b0e39fbd2656b6f98df78e0fbf530e9ae76614dae5ba2e776bdeab402818e2206cd6b4a9a33cdb672578589b1a229d25db0ea12d0966001105ad433b3ae5343b3bbb73d23fb7a01b291d04587ea661afdb392787bd79e732ac3ffea2c5909aed1c9d7844cae15eaf0870a309c3e359bab310834590589bc967b110ace57c60624b600d686fe1b670c9936148e6ff2b4b709609ecd583aa48ee2891ab3fd18bc90b624b45e6775", + "hash": "e97c2b57ae8dba7eb68fd982cacf5a199621f64ef02b4118d780032dd7dfcf67" + }, + { + "key": "91d76c40991269722c0677f33e68055cc890909541b6675a0150525527d14f11", + "message": + "592a6c0dbbeca04c77ada9e22a611c4377cdcc98f5d791c1fa20e977df7a45a6ad23b37134c7243616964309ec087d8d1cab94ffac6322ad3fd3a941fb", + "hash": "1b1ecf3d31989202e0989da77e549847f2f21890cfa7d613268308e474db36bf" + }, + { + "key": "6c51c9943acea9bd286925bed8aebd6a7023ba048ebcb27ea195e4259a23ac6b", + "message": + "85277789d0754f18986e1163efc222a224cb0c639ee18179c2ba448437f92e9eb63244b1c7140bbaebcd6e97fdd0aadb111e99f2eff62f9031c6cdd7cb271ee53731ead5df0164afebace8940f0f1cb2ab48a8efecaf50c43c8136481b3e98e776712cde54a9c69f5833bc7759710659c8974c052c3dbf8b69446323b4ad32dd20403dce35840d8633cb2c9b07ed7a3a5a807c9a94bc0de147ce5bbdf7e9c54f913a7e3b88f508e2462253474ac4f6e71fae712a79f12844b473b7efa3b6ab36d901725808589b6f029d77c1831e08b83f3111e5bbbc443d", + "hash": "7c50825c66c600a89bd228dabe0830d90a54637601c946169c7fb4bca975d0eb" + }, + { + "key": "da9cb39833b096049017dded9b4b136174d7edc6c5c29b825563741170e1bc14", + "message": + "ac37ac96f118d82ca4627c29d3f3f5c16f2d3e93a4b926d0313f010f0ba3afbdd3d12d01e93ff3253a8dd6f76174cb0c2035d9b653fa04d2a8a5f722ce40d95f2bb27021fe73ff523fe8b1d92764370b04b043851458432e5fffd91647b851be1592e1ad960a292ef9a9", + "hash": "2e4d3cd19e087bf21d32c63291c09fa2c0ad49cde1221dfd87cebc585fbe232d" + }, + { + "key": "93358a02b38fb7b17061a3fc76cf5ad5f489abce3f1b4860ac35caef04f6e4b6", + "message": + "7a004503927fedb2cf6903b31af965d6f6ba4aa7ed0bafa1e6357e298401580743f94c2650f84d925dd024ca19b8ff60d6c4b9dc6c5e4050b532b8bf5a25817d4db0d25fa07d11586bbd28cbbec8ebcb9984d7b01d766a47661166017139979499d51907b7b0bdde4b9056aa219e57ae97d3c1b94c396a583c52fa679935ef43d7c0b4d331600371805a249adff20d0543b1ab380a6a1e023cec9f5ed3b61060c94bd7875814fdbc4bdde25565e9a8605cd9517c3216ace467ca9b88ffa2f3d3b699ad5b0b85795b2895f21ff3341a43ff96acd00a32472d0e6c19c799c5eb6a6f880a48e0f29fb7832bd7075b6d53a85a08a665f6743d41e02ba4", + "hash": "e46d82a5152278ce5dcdb577121157f5161ea72fba957171c6c335871f32bce9" + }, + { + "key": "851252bb7ed66581456df0bb466a871cbd980ae3e97c85d67900a8c61cf068a0", + "message": + "ea62be13cf5ad434bf02b213d00e598646a798ed886655f4de9c14dfe80500281e588f9c821dd905aa1850a96d8df994179781f83438573d00dcd20c74ba9121c2", + "hash": "ef0d6a5055864e91f4c9427f303d226e9835a83f5e2bc84fe1bf9236160f57e0" + }, + { + "key": "d893d2db4939bef9012ec71f4ce0c6164604713b7c86bda699d78295a447c5fb", + "message": + "33c3abc8013626145d0b5b16d5bfcf0dd832b99286b545de30909ea529407860673b28731aae4ca1d3c042f86b9eca39136fc062e27f9d497174fb283cefb654aff2a4556710ace7da4c3508aa2e5290ff", + "hash": "f80b886d192faf036f9471fb665c223fbe089a1c49bd4bbb9898b5962bd1da92" + }, + { + "key": "5135f506c775bc62b062ae4a05e3a7c365f90cffb43f9e1ffcc3d736852cef92", + "message": + "260860d387ebb82b43a01f731cb1f2c998cf3030a5514366e5b0cb2c25cbfcc2fc8fcf264ea1d935899fe68e8ebb05d07663b87f3c7cf9dc088b6dc43e68d487c96627162d908ca254872e3f6354f92e736171a0e4d71222cf4cbe6b20f8a7ab27674fbdba4fbc0514add3f805d3d903d5124e4062f48ad6f7324d50b2a0", + "hash": "b6c6b7c7a836dd69f4c1f5db9a47b3e16e9d23dba5001f3478b38fb23defaac0" + }, + { + "key": "4345354a50679f7825c97f07ef7e7ebf439e44975dc6ccbe56637df940ef617d", + "message": + "abe98d8e0353d7f7f37132706021af29656bee8642628bcf13163f2d1f6a2e9a97c6a1e9c66a7a", + "hash": "45b1dee6a94315e99c413a145b7b07a6a6ccf34f2658140452716e052170ed7b" + }, + { + "key": "6d5b116937a7143c61d0f349f1b91dda5200103ba7fc17bb301d0c9259da00ac", + "message": + "efc2663f2ed7ae625b9374bac2f46a8001159dd9806fb475d448edaef823b11b1a70a9116d1fbcd97e5874d7", + "hash": "958d010b2c219e1b220d5e19c5be8c8d1f478c8bfa64d26d12829e00ccddb324" + }, + { + "key": "a58c3464f150b96a8915fab945e378997ed37df32f21badcc80e0ba1c7470365", + "message": + "d50d6736ca5b31a27b67eaa81e992fe30916f82e83ae42ad4f1eec0e5322bd0f2943b6c061ecb9fcbdc1e914d9dbff593f019ec26bed6c19b70b2d721c0564b17354015200eee79454d4ee077aeae0b24fb537ebab3e9d830b57c9036e1d18965795418a62bf57b3181989cd7633406ba42773b3ae28e183df9648d31e8f73926bc6c91c6996d9ee967554ea525b57c1e7d4608ec26ae20da0cf40225cd9b85e52f9340727df1c077ae6a3449d2dd96f62b2b5df71f6dd09e3af99efc9", + "hash": "094d4e71972995dbbb2f52b24a135b7be88e864b4c54077852d11dc8758dc857" + }, + { + "key": "2cf585f8ee99c97ac60392e8f39e8709a52117dd6e1cd28d7367521a6dcab1ae", + "message": + "7b11fe2c9f74f8ee9bf6452207790120be92eb6310f3a0ab75b616b5a29e0bcfb6ca005334725ea271fff72677cd3db441b9433877e7ea406073500f33a6fffed44511ca8dd172d13e07", + "hash": "6ed02f23ae3d4413351ff9e515a08f25540146ec009ffe74c83fd4437c72aeb7" + }, + { + "key": "a6e913874ac84d7661330307a2341bbe89a7c5a92df72bf266eac36ddd9ecc04", + "message": + "2e790a661885be5ff6507e705f1d44d8977009ed8f20a14727547c549a1b301d3fefcf02d8c56ad1ec09bfb66a138279cb29e635e5530b85362e43c6516d99d4b07b3fc98375a31aecad9de03976beff0c88da4b3d41", + "hash": "4077345f35b7d6ce889ffe3e48a2e2c12d809a23e68122325a66bbf83850aaac" + }, + { + "key": "4df8c67c9f73fdacc58507e05ede4678cb3b3e922f757df3822991b420d87f5b", + "message": + "11bfffa87abe7fdc8fe3fdacf93613040158add5e1665af564041eecf899624115a54ef6484a0ed8e4b17bd3ad84972cabd6d6d505deaac24163b3bb8ed7175b179cb4", + "hash": "4c5a049236a9742f3ab03865ec32fbfa74db26da388636a81fb9ad2d9577ce59" + }, + { + "key": "90e402eb7d7d6b97eaee8f2722e052b4c46c66a473fdef860620765c5fee8add", + "message": + "cf107356362a6cdac2998ea13a0e5ce1390f8e2da94976876b0b31df1030b00d8bdbb80b689a7509a614cb687549371b54e9ac8fba449c229dca2c6860330ad0b835a6626ae4ce681867237b6dcfe5cfddbf8f576810e44a068dd526cb65d4d8f3781922826be020309793ba03a8d3ffe9a74d0c47340857440886247a09a4b88afe62aac8b8e192cc632eeab128facff868a3d4d4", + "hash": "41f0b0f2207e03037b1a86023a2ece1b3945daaf9499dcb52be6f7143002adf9" + }, + { + "key": "80d43eb9332d2e4596731a420eb1fd760c25d9663578f1bd2f827d1054d0f5f4", + "message": + "6b80ff373c06ad6fd398b0788d13c42126f257cf5e95f60c24c493b62d670a593531492c73402979c48541e6aef16f2a4e8aaa354415ab80bfed9e4b09e1cb731c6ef00878b8fd0176c9f707e42beeb2cfba12c7bfe2f35d91ef1b6bdf7efc10bce723cc25b11bce8624c5d9fa98561e55f5fe7ced4655f6ef5079df49c00619584639d1e6ebd07c3643e36f661ed44a048fc69a31bf9c8c26ffbce1684b3b113d772d95203e0dde6b9c4f652fddd388a07221b01d71ca45c2e79c3a84acbd6ccf88c4d76d5704b39f1f6550551d20200d155b10f3f88037f23a0d72a97d1b962a50338b532893e79dae2e82e6d2c5fdabf36378e71de64688fe2bb0e124", + "hash": "70171e3a4ee7cf42f7b10318bfd861b6f0aa98c425c21fe92dd9c563d4abfa12" + } +]; +final List> sha3TestVector = [ + { + "key": "a99e22b02b97b70c3d4608391587b500ad3dd5ba78ee20a8c463bb090d01ebf1", + "message": + "70d8967d2b588a07e78f000d6e4c23e9df5efad4924969efea43eadc2e8958bbb5bc865f1b13b5b549d7f7f4db9f4bd558dd66ccc98c670409cbfd0fa49661268c5931087c1688acb711002b7c03835d1bb38d258249430328ffc2ea2d40bf3ae25378fe7fa7f860f0a65fb0f484d72bf541c88003", + "hash": "7ec278aeb5f5b61ab638691a8673a21d226e60621060353b0865efa88ea08a08" + }, + { + "key": "56680c5d684d3e16924fb864d82c9b9c27531bd4431d072d7040d265605f47e8", + "message": + "94e7a834aa1d436a4975cf0a7594daac891319014581adab20cfcd815645d63c192b0666e5a3ad6544898d9772405ac10cd43acd4cc629cfa937abce050120b2823111b6c3d25324bc16a2ad83dc6eab4cb2c759349f593bc8636633d05f57ac26b1936cacbf74f24abf5a0dad94f37b470f48afa4254db6b60401de92a5d4479e405e605a135a5931b3521145957da4bdb3c930ec3f028de14f88b172c3951ad24d42a2fbd93e2a14e718e2b9283c0a23007cf56617d457b742b1ab07e22caeda007afdf50a6ef11f4bcb8c85069366abd46b5916d213de3cc7f533f01499fc0e1c486cc86095be3d63b0e87a87161889e1d9fabaf073920ff609ac338598", + "hash": "d6b2077cea7eff3dd39d6b9ec4566f29a4e1cd490db77fd9c57c5a051fb4f5e3" + }, + { + "key": "7969005b7787499aa5ade7f356cb869bf5fb1705a63d37cd1347b12b882f59e0", + "message": + "96e87b806205984beba99b7f3c46f00f0d874a55e8fc5a9b5556d712a7fe996905474522ed9e7287a649a72679e48bc0af7947739f315cf8b15a01d8aa24e4474b0bcc4a537dadf4a8e924a9f6b046bf97ecdfec438adb21c0c989c404556ec42fc1f6c677f36deb681b07f321cbcc0e02", + "hash": "52811ef1d047c9724983f5c3f11db036491dd718d830fd035a3433cabbb479ca" + }, + { + "key": "1a13d72ee801637e1a08fc803f78fa5dab08f610413c937796700813e0cc2217", + "message": + "789c6a7d528808e091874a855f7d8e6965adcd19915f774759ad0c98a8f86bc0578b18aa0828c14ab30543d29d921971a2554a0051c265a60f84b3d43b6f587c65d6d30e3041f4ebfa25f8571ec72368333bb184d084e51e30736f49b3395af01031a244f004c2d983072b7ebf08da72d7b7351812013891452a3b97cce73083170db6efbe9c421559559bf9dcb4790d6cf8ae7a91ceaf7d85654464734b3ea87bf6eed6a9804ccc1991a1ac6c0cdc6c97a177e27082251dca86b269aaa4470fef8416ce8af24efce084317a314fe3c4ae95b32c156de305bf34c4f4603d120445b974867348d40c43d45ad086d834", + "hash": "e77457bde626500847d8996375d1e0c601cecf3beea7cf0fb276cbfadffe203f" + }, + { + "key": "b841cb09b3b79361c746e89c6286189679c7208c27c6da69a656909ca5dcd6f7", + "message": + "4f551b73914e0c9568c44f78b8101082adca113865b181d2d2aec27fa8e41d292068c54de70807018bf4d833098b44d0a05ed5c29867d6d293e351f6a8151268083e4cd5e31067684505626504796d9631db6cf9cf4fc5389a753345a37d0294e3019aa6d6eb1b507eca53c3cb008d9dead0300f3e732fc77d71f485db502004f605a12d923e43a899fe839f035c03dd8d6291f0389927eeab8028dd957c7dde1ac7a11d6e0b5b82df026783fd", + "hash": "f108d8ca92dfa9e76fe5e6ec54d2a8f5256c0d601ca2379c6941b9be6f54da3b" + }, + { + "key": "48f6bb2e5e0680c516e3a848f60cf77e6e9eb754facc9784643a1e048940e4cb", + "message": + "671838c832c570e88b504c206def275023a4fc95b0517234afad34de1c031765ff6281b0f580f373116ba5486eed964ba49e019c38c32b", + "hash": "1e053966b3644d941e10d0c91265924758066a945d13824007a2f7a952a7e9b4" + }, + { + "key": "af71b5dcce3668f472fde5016a3eebf741bf3cccfec39a4c56d7b0d98bbf2b4d", + "message": + "a69dc9faaa5f045a35b0833e4f39e2a553b992468debef16771b728be50a47dc64747bf990ef6c929db4122fb77578d121e3870f516c09a799c0a561773512b301c2f07aca3fb66259d9f23cf55b19760554f8a626b254bb1657d9477b080768d208797362af5183382c0e", + "hash": "409f72609cfa7b80fb4985ce78dfd2ea93e9f879b242aec2d977b31246ed5ba6" + }, + { + "key": "f58d90a3da5129d6312d97c144d3e70ea7cdccb8d2fff93d0290042831856ed3", + "message": + "ddd50729a973171045d6e7cecaedab8df765250a862853c2a1b1d8388a66d08a9c967fec49b07a0b6028293e28681d64f0ed5c40a07f7d1c472148eaa30cf7f9fb23e2ce815935150f84128589449a82fc50659dc902be1190074aa30f92c1ceaf1aaa7417fa5a098f4148542e577eba90075287ebe4152efd86df3c3ea8eeecaf5dc2c2e963a82ab7caf30671df111758f575fe75280f858fb74cd12990d5d92fbfe5fe", + "hash": "731f5c60de4313abf59839ae23a47acd2fe567fe905fe062243738d2583d3931" + }, + { + "key": "d9b8bc6a2ac8269f319d88a7d9b86c96386dfed056e6ab3b7d9ccfbb75838b7a", + "message": "addea30561365d0fe43ceed408b14fee9b5db9399e8aa62824a6", + "hash": "6af2d8d43cd1fd59c426e2141edd6b6c2f4d17c1fd5c0f6bfedb1d5175bdb45f" + }, + { + "key": "f06129a4563901f27f9069d5f5c543177d512de2ddf478e8460e2ab0906316df", + "message": + "a2ebd2ebb86e2881b13398590ddde1248a65ee8cd279ff5800eb5bbe5a40af3481d5aec3b1f6677cc1643648", + "hash": "eb0d162bd43dd7446375632824c9083c21aa3c9472722385bc906addc0ea390f" + }, + { + "key": "6a797412c133f87202b8231775c7977622bcc64e20356f1d0a8a5d9135e8360c", + "message": + "c6f773108c20416b3ae8db64e7bd6dd434486a973a315154a5c5083dfe6197baa74138ded4d13b2f5da59ad8c169e091f275b82857c42c06adba2e8763f5e09c5350569217fb3690a29c83a4b7892b8e7b125e30ea922650194ee5d62fd0dc5f4c5df983fb3ff2a65596a1d06c3dffc66f5490b14c2a99499b21fe38595bddbb1301780e6aea3ddc76dc3fbff94a5c2159ae631edc62a91a62063cd897ef0463f4ad9c29b6855dbebff9e924f1ee1c894d013033de82af2ccb65dfd7dd4496296cd3df86b7aa41316f47b38ac60e2095e708bcc4576d2842ee6ded9301c99069105f7b00015e4fcb323c67c58345bb73a186b49c18f9eeaeccba", + "hash": "b2a5717f46e7083dd5bfcbb6d9a1bb7aacd9f5c1811bc64a9db339f71d07e197" + }, + { + "key": "8bc5fdfefc1e014e33a0c676ea57098fd0d0c4071b9942b4392f997f4e790548", + "message": "10596aa9b00e17cd2865a0fbaffb2f", + "hash": "4ee7a8304edb65d0ebd3b2574f0221c1b6e5465f941215d2e66d72c940d00ae2" + }, + { + "key": "452889b8e43bb1f917dcf8e17bd85b45b3516fe454817c9f2f08d4588e60b071", + "message": + "3d4329329e7048eb99a6983627c22d247585ea2b219af8701a249d38405d443e89da06fa8123da7f", + "hash": "b62179fa4cba0c348115f08894031cb337ebf3e5c574bdd4128f31ee05997697" + }, + { + "key": "266016fd781a233799597cb1f37315dca4a6e1b94002fc9a779bb851d9922984", + "message": + "724fe9a0bc01de4114b5c131bca983311ff36e1e1e82bd31906b7732856a0d8658518620357d8273ecc0f34689181f618ed36327bd90d398ae2728829e00bd4138a726c70744f331dc555740042d084d5eab39928c52c0bd26ad7c67add2ee28fab57bfb21c85f35ed811483376f35513a1a9df211944c80a63b1ac26bb99be590ea5f967d0b6918c72247f189fc6e0fd65ad6ac054ea50d71578d33eedc1fca223401675d28ec30113fd7835cb2f9ac61cf6d8ae8d6ee434bb8f47f42c903ade8adf8", + "hash": "48b80ac623d7ca5cc5c737289f823b6b289a7135f70b4ae5708020d4fe9eb904" + }, + { + "key": "20d06d100a63d7c79eee66ca66560afe705023a79d70122d1a29d2679b5faedd", + "message": + "dd4d7c5b256214ded50c38178f46e3ca4b15d137719ffd932d5899b8eb2d55b6d0e69b820074efaea418acff47c84625319995d659d72ff939f47586c0bcbaeea6585384e21f4bf49f83971c23fc122574a03c61f7619b9558f56e87d3017921db582c9f04323f62e0a23af25a8eb2934df1ccfca03366b9847097327f133fcc3733af99ab09bca46ea9b2e9d4f3b0a650bdc03fd531982c833f765855400b5b472aa3a63d03c3116538ae0f3aab841171b50e776542bc3beb1e9e2da5e146b4dea3d49c452c7c41cf3e1a25b82f29e3d2e3573e60844bef0c51c0d6e133ab", + "hash": "e0c18ece2dd908809b7d4b048eb18b213874787f337d615c81448a953fbadced" + }, + { + "key": "112cb8d9fd2db1d89765be329516aecd6a74be961ec0da66eb50aa5b7cddaee2", + "message": "e5253ac2bb65f1c9389255fc880cc2ec997e2604", + "hash": "ff253b14b32ca46c754ead435aa2208ec8c12ef3f01b40f33e08a44e7f60b5e3" + }, + { + "key": "ad67c2eab9f63457fda1ec6d389c3e35cdacd2325fa257e7a420d6f1a681542e", + "message": + "be564f2ef0edc26bb8c5a461eaebe40208eb540cff09f2f8261c7c20890be4fd36df6f8f8902f99a8aa7df53408dd3a33099202c1e641a50b80fd18739399acb6ac16cbac712ee1c2bb4d3a4", + "hash": "4b6e94afbc356b715fc27659b47e557c89662216c56c592411878057b23e466d" + }, + { + "key": "cd46b21e6b1e8dbd2dea7c6a13b3f1ba1d208d474bf1e2829672d231bf983e81", + "message": + "b9e77d3047045e8fc1f8e1aaca28bd5a778ed34e839d3c738849ab6b970a3afec7a6b7d71a8857af86a5fa7c7efdbeacc00aeb022598ea204250d8c0f724a904b8a8d0cd6cba09649f8db31ad039860c5ec7511f219f2948fc5ab6cdb377e92d9f9882d581af9cfda9462d9bc5055aef1f108c6672aa1f19f9cc125420beb30480", + "hash": "a0bb478ba8833f83ce4359cdeae43d1f70c2a4d27c4af3cb22b57c004ac73d75" + }, + { + "key": "f33f83fd60b5e3fbaf277378e2b7eaaea06a57ce58a0a4050c7f6c35a324566b", + "message": + "d44665583377b53925558229c4fb593af4a4ce604fcc78d5f3d31bfb83133c75c1ec421a0c72a1d4d8fc125d6a92aa3f6855024f5747eacfb78b7514d8d9da85b3e6e6524a9b0ff3027d74ef93c8b7d92491959dbc41bfa39fcc8f9c23d04ec3c9c22747fa0928d2296a58367df7073991a91a44447c781414c24ac18e2334fa01cc90948c7875ce1a75912c0faa2f974f40c42417eaeb17afb573c97c247a8fdc9481030ae8d13c99da7055320426898f588507c8567c0bd827562716fb4d386d3b69f35678ea82253fcc29f3a5eff4cf5311e58027690942a01e02ff6d9ec3884b107064741ddb4c6585c6015e9de3c1176c9ec2f36638f98adf3bee1bbef2b6a778e17c", + "hash": "a88f881979cdd5f51e05331786072ffdbe8f0c67f843178d432177f95f2f47a1" + }, + { + "key": "2417f141881ac0f387cab51367bd76db82011aa6444ee61dd035cb85f580f105", + "message": + "edbd9b6d736d3f5ffe77b9bb87ea55ac0b0c7391eea775c1aa83c4c028631c78aac2c3ecf883c6851f048a04bf56d87ef35572adc8b63b38e27235feaaee2470d302b885e7486886fd04da1bebaaacb5fbd9f4ec38f7957d55785abdd7af3e503cc4fed4db8e420b3fbe4d3dbcf72ed501d37fd19735e844c115a83db8828a39eee34cc12d2f150a663d7f4049f31a287862c2ee5cd5ea13249693780c46e6504fc64f16857f0410cfa383669f45207ae3c05b0648b3d3d4acff3b14adb2e9ea0df67737c6a0ad609cd4b7357483b20e1948a7d7f003d33d0b5be89e5b01c55cb41c45739bc207321729b42799e639ab9914148c09f44adaa235d20503f754ce", + "hash": "a3887ca7605722d338e72835194999d5fd1f546136720d1d281e1b8ec6d915c2" + }, + { + "key": "7b491e451a9c5542eca4d5036540df04870a2336eee04921faba8ca3fcea710f", + "message": + "770ec538f511dcbd00cffddf3e0c043408e153c2ea72f61ea7bd1057032826c46651b996000bfb80b085efadd8ff5985305ebbcf69b2cb862bddee5d5fcd618e91984baaa19f7228cfdeb61850f2ef676fe2e9f5bcc6bb5276bb28070ccba50f776de03f97ab0fae7a41f56293f722152c21700fd3078207f00da4b0e1c93f343fd755c95e31795d6f2dd0f960430dfee85e2dea7c465fa7528e502d045ad82b5c69ee00ec136433d41d4a13654097f56936f64a3d31a62d4162837dd520054958445d3870b9fa9708df697514b4eb0b0528c60587374fbd129826f21927319e05f11f202b07f6397ca9d7ac696cc8", + "hash": "9b98e22a1b888a660c21253337fc77a43191b1a2b654f26062c5c588c41626a1" + }, + { + "key": "e1530ae353e8fa6d12c66004b4a6a65ba83ad1f42c1aa09e1f322fcfbcbeb312", + "message": + "0f2f8ea2ec43affa1e1f9111356f82402f46663f07081bae0a99cf0defac61aa79d42d5fa36aedd81cae2740b810e895c96d2625dbd3d3ba4e5910adf22b0f7a0404a2a0d8b81f735014b04f0f1a0dcc1986fa", + "hash": "2c47aceb16c47695d78e4697af8bf085071d83fa39dc436554fff64a72034497" + }, + { + "key": "24ca36b2efd6386a6c01c9a7e818ddd14b5af7a6e15c60f7b79cbba9b104706e", + "message": + "d9f195c4f9064785db60e78b57a46722b6270b1ee03e6749f310cd50cd1cc9392e43052260a2439f91108773a413cc14125988b82a71babf8e2f3dffac8fa213e8d507b9c2615c52d124cdf7dfde6426a460d1d049c5510508b9e3a713a7a5800393c31d5a024e592d63f2b9b8c59c8b1618f6fd13edbe8018c22acf222e482778240474feda51771ab305bb3710b1645eafd407b6cab3798f13ec4f541e4d037f2f77681351e4df705807c1bd145c67b27191a5f75ba994c4ac978235afb0eb25e484", + "hash": "f96b17030c909b3dfe8b88efcdd67eb4863f4b5bee5f671db4494eab95631974" + }, + { + "key": "c3dc923979af492e44082822915d38cce9f0f9a7dbde0650fa5dcb931adc71d4", + "message": + "bb9db7cc913ba8b2482d6cec1f0994304e54594a1a783da18b73eb0423d78ce235e57937bd20bcfd2fc99ee23464f2725c89e928958677e14f7ee0566cff0914d2489983e66b13dba26099e812a90b50256814c2568a8e830c2ed60ea222c6683b5713ce0ab88b6755f433a91d9049aff7aded7f0aa2a82914114be531cbe37c29f45835eef725a89b521618f79d3c67d51677f36ccef3e539407804ca4ccc13d8af6eda9be3733b8d6222a572dfe0f3c8c56ce23426c55b19d9", + "hash": "b1cf2ee7e66c66199fc4511759afc6525cb9fe5fb60765b0d5c0bf3057fdd153" + }, + { + "key": "392984e20da8242880f6ef4eb02eb1be1e9a49d2638b4bfd6614f6c962ffe4a1", + "message": + "97e1145d350aab4446b03e1be281b09580131451bdfb99cf4b6214941c27efa0eabaac0afdb335ce156af695602e5b6360091d03bd1b6e0ac5fe992f9f58fe9547d54f31a8181078383b2d03ec05ea8f2dd63fe0409b8a0650e2179b38e985d0c4da91dc41de1c5c2c467deb006fc19f7f369e46366fee6174176f887709f785bf871482a8dd98b19bf8cded78", + "hash": "f1200919422c4803884a340b90eca874e28176ef3a585d507492ec6115b31502" + } +]; diff --git a/example/lib/test/crypto/keccack/keccack_test.dart b/example/lib/test/crypto/keccack/keccack_test.dart new file mode 100644 index 0000000..48baab4 --- /dev/null +++ b/example/lib/test/crypto/keccack/keccack_test.dart @@ -0,0 +1,29 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void testKecc() { + for (final i in testVector) { + final k = Keccack(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } + for (final i in keccack512TestVector) { + final k = Keccack(64); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + final result = k.digest(); + assert(result.toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } +} diff --git a/example/lib/test/crypto/keccack/test_vector.dart b/example/lib/test/crypto/keccack/test_vector.dart new file mode 100644 index 0000000..d81a1ab --- /dev/null +++ b/example/lib/test/crypto/keccack/test_vector.dart @@ -0,0 +1,276 @@ +final List> testVector = [ + { + "message": + "97126b5563e524fe799a672ae7267f6a966f7d566360d5de3c8d06a84314cb3532becc1c27112a4448e55a0fbf077c299a5cfe78ec49e69828559061cfd0af07ab145c687144be467adfdc01619827b8fa79414ccf12017edda1b1a2e749d57fa25676172749b4268d0cce31ba11878674002953ebc8fc4f1e0875bf096e3f7cc886cbcf3ac0196634a5d25afc41879d", + "hash": "ed05af23000728be0bdd12f06f977960b64699d38051858dfd1712b02ee9078f" + }, + { + "message": + "03855228a37394bf86a12da291372f79beeb62deab94cb012e1a7cc2f0fbae6c1239307f3e2a91dc5cd5c60fb7d181cd581c062edbd65df043fe48612718c4d59025e13c47b1b71799689532c5b9954221d63a341d1d3a632e823bde50d094727afa11d6470bae9c55af2903ec90f11171d35bf08127e5fcef17016717d59cadea98cfe95240fb8b62d2df5e35a122659260f120d309d859f975ec2506f237d8167c726677326894e91324057986ac8cdf08d1bd4da9ed00f049c0e23e1679c5ec0b7bf38aea0271aaafdbc28d39dde56f66fe603bd9196c0913354f574314", + "hash": "3e700625f110c09e47856993de54fccdd453290f4b9fcd95f9176874c2dc42b4" + }, + { + "message": "2813db86555a1714b862429f8baa07deb2f4d0cd53157b", + "hash": "aba6cac107c653a4ece9a787c5ff601a41a6db739b7a38a458b38b041e007883" + }, + { + "message": + "cc546d3240828cfbc6425da27ec7917ee15f7a9f766389dd7557a09a467fd6021c7b29cf3a98a8812c949f4f99f391a68c0bd55cd184ff51c7de8829aa845f396aaafb8deefe1c85a2aba5c8fc9c4381aae27ff1ec8f46a8c0566310719f544061fa2d4ddb029234950011d6367354c6231c345af912158134cbe9e7c608f484a98e95a5af6fa6b0bfdb0f41def5cfc3089cdac7357fbdad174a51bfc9b2fb0114715a20e4fe5068f7bf003c5545e24afa02728cdf69f2eb97e1802edb29fef1aca520de2f936109fd91d8075bb3978523ed8c971d4d7b6a04231f3dbb130fb2ad7ba1b3827902b189ad5d439e63e0d4e211b404bf595477319bcfce7e2f8b9402c5", + "hash": "e20a7b1cb68a80fb265ffe25228add1a6a974dc593ca7bcb0f8f83c5b41aa133" + }, + { + "message": + "cd7b52269bbe557952bcc9f96cd92b975e315045d809a757d9df16ed34e17e10cccf0a1729adc26519001fb30348adef18ae16d816324ecece6717bb6238dfc6c6e5eae184978823347b3e50d4c590448041a115e290c4af70f1bcc811ceab305347575ba6209631cf6709b1112f43b9cd2b1c24a9", + "hash": "5b79cf76cddca42d27200145ebba1ce6d6fff33d7dd8c0829798ca9819cd3f49" + }, + { + "message": + "0ecc0df752f67610b917d0d5645ad9cb2b984892c270b06c4f6939519073a21dc155e228f3d0626a5ca03ef7f849602fb8b1a0416a3e2bdfd8abecf86e584847ca6e1fc26377d318225df3864642392bb6b87857330c3d184c105dbdc8ac42", + "hash": "79d01e35ab98f3df0e6e157dcd37c13f3293092244b85b0b3d63f179468e854d" + }, + { + "message": + "bda6f1d17e385cb5cb21e81b3001a6ddbf67f49ccc6c7b4c77d5b1659387ba7229e0cdbdacedda403076f22c5ddd64565ae6a65fae44a4d210eb88a54815c05d0baf7a1c07fe0d2125e8ceb17205df62ddf9c787c4c613b5e196", + "hash": "c141614558ef355d6695d70089643689c82abc6251aebecdc65436c14993f701" + }, + { + "message": + "5213b7b30abf8e1072eb1932ab1355cc56e340fc121fa7ccb921deb65b07c07dd162d27ab66c5f0633c43e3178b235bbd02c11abc74bd9206191c6e45325af704929d68110aa16235618c4fb567f8433e3f77654338254360c860e412c7edf372293c72b0a089a956a7d201b7bcd7714129840dbb78ca61d783b6d6bc49f63b0bd4b21eaaeabb6b34223ded6c233fd8088782abca2daea", + "hash": "d5ca4d31de576da6d02208a23b59d8393b41d7d01d6b68c1ddaaf2e6099a300b" + }, + { + "message": + "851e63b36641d783d053512d74fe258bfdc301e182b3f821a3e0910c188b8ec8c273067a3417e99885c4aa83b28ddaa57fb2dd7ad887b8090b74b3233b9f1bd94235f92a12e8a0d77200733296f01cd494876619ac1a1e3a4cc59e1a44397ac545d518a53aae83e66af09f8c3cf2875db18886adabe29f5bbfbcbfbcad9641887d8c27f032c426a71c67d3f121230d30434a897b68cb1840f12d2c324ffcdca470d4ac0197a32ae98e1429c56b425e39b27569ee9fbb64f4758d3bd8232e66f5058de87ed527654229ea9f36e9d68c8d371a071c64481e866b00c3adbcc9ff34412a76169f52ba78a964ba9674ad7b0dfecee1c3889c0a26778a26", + "hash": "f239c57759818700d335ddaf6318901e23be33bbce7898cc069ed7143c713dad" + }, + { + "message": + "9088b34996ed9597ed59741a86a21d48da8bfdb4a487bfaa5ba42099b63c250927b95f52", + "hash": "26d6b28f774e8062267917749bbafd3f6a7b116162a03b0dcdbf05fe54cab47f" + }, + { + "message": + "9769976727786c00cb04c8254510c461bce897d65ce27a90d4df79820ebcf4b0d8493b0fe548e98f16d9e598b29971b895562da5864475d33362cbf6cb04c5faaf66815ecf77223a262ea9f0dfe6289019600224e57d5478aae22c60c4d2bd268e47dbdb48deeee3ab7cdb098ea355c99797dcfb83bca43616c344bc5144fd64a9577892b758b2bf8d6974ed6a73bf7fa6da30a520a685bf9ae6d1c43807304049952ff0ce5a833ff6f23678b147c142c7d2e1c5ed79f6ceb0c1fdeae4036cd100d260d134cc8e64810a9c6fb6a0dae3b52a41", + "hash": "35ee29799a8fd33b0cfcd032f8d42a473ece7537b81856b1d751dd7b488ef4c6" + }, + { + "message": + "95b24aa63f10832ea5f12822a23f40f67f43d3a67830e9bbf21d8f9eb3aee398c05b9ad291d077cacacd5e97169eb0c0e8b0228b54e9f1d55a45862ec8bc36f7b81acbbf21189e2570921a91534a147670085f5ea7c0f975a043d0ab01d34f06b0809ee606e62b8e80040b90e396229538d6c63180111554858e57febd7e244e4068f6f5b1ff8a650020bd26b7f6147f1295d1bfdde064cb6d175095826327d4490f6e347e76d1bbae8fbdbfaa0872878f89fd3f2d0769c2a7443deacf0996711aafabaf73f137843fd826a217441241d6317195b42e0241f3dbf91a78c5e16402ed96c250b2b115824af4e7d2f238f4743041259a1b3d90840379bc8622f57e177cd69f", + "hash": "230204f15f0fb1069e72e16c3fa839f745f54f249b9b6fda276a6c382d4ea0b4" + }, + { + "message": "f8158922b51b3332913b3acc033a22ce5f", + "hash": "5fc5eed837d40945b298a5536c6dfd099df333c586903deed956e9b3f088e282" + }, + { + "message": + "ab134dc4bf5e85fb79664efc6bae2e3abd371a0fdaa7fa3dad173089f2aa682a2713edb4918391d50d5e31a7b4ddb13a7de020ee13cdb15dba393d29fc14670809f27240d5c987206b889160290c05d64631023e83b6e96ef2d66b9875577fe86e1621e9ef9df3017b50d449d6c18d0c6185bd278fd7c6c4c8bfe7e9895cf7ac7bb3c603bd69fc3ba73409d64295d2b1546a17408da7ee91ee8d926ff9f5b11008716f8cb6c041edba5e11ad2cd15624f7dddecad54544b5ffc985b34a8d96bc7afa9e658c18ce415629cba621dddf77578d5365f543a6f7b97532b0bdce48f1a2a885824baefd364098c1034747fe4f", + "hash": "5f1ae2214f26a9b612b839914ded2688916a4a08ed1664803590b61268296043" + }, + { + "message": + "db6b2fb636cc2df5a0e7a48576d8d768abbb280bf656430d941e3cf4423c34eccea9e71eb598d2ce901589c021c64434523736e1c4edc104f1c01d7de44041639912efedc2bf145cbf760bcf5719ccc90aefd4517861c9eb34713d1213c86454ca97af2ca70842bdd83503041f89663481c40776d1fad8b65230c732f6", + "hash": "6d0f0293abd895810a6c5e74521013e7e461b79f0bb6fc8e95ccc1b1b82874b2" + }, + { + "message": + "2a3ef294b21c1f0b696e0d531c37c251e096959dd5b02447e929fec2ad3c49aeb06fa43ffa8b173f578eceaf806b9a3f1526e94419a495374d72", + "hash": "c990466e0d94e3edd717de90803aef80356d1e22661a3a5196809eb94702f761" + }, + { + "message": + "54f1fdfe65f8e639acc31f065c8afda1a7cd8a81e758c98c6d3a187e85bd5ceccad795dc62b8b17350854970fc53a7a438a6a094dc392b882c0daddd7b4b62ca7994f4a60ad734837e2d745c80586972a3af60c13be365c7d58f99a4c0d34161752b6d12e70bf34241a02fcf7be06ee482379bf342ef54b66dfe89986c15446b45ddbedd646fb578c4ef65f81c12997726275a07c6a55619f5553cdf3ceb9b8349e54cfad0ea2696bafc3adc10c6f26a5a93aab6e211701ec9148c4f93064c5eddd0ff9e33f686297f69a5b14c3066c92ad10626ee5b72fb62e6689c87d03696ca", + "hash": "5f75ecf82ccb40b5dab1c4ad33a71443f83f86a2101eb4c5e54d80bbf90d0295" + }, + { + "message": + "a3d097be5e53018a3018640c6fb7eb72a57df0f14d47beb63ff02e17e4e0e5f633fa7ce13eb5477cd1fd9f9fc883b89b9641924321ebdcf3f7b0aa489ff3e99e8931b65afa4ea32cd8fad3fdfbbc4e4f586366ca9192d6622c39c86520bd4e3f19cbafcc8fe39402854711e29ccefc4b58442381ef4101a2fea35d364beb0b0eb6f51d6d802a2eb366b8fe9f8ffbe7b692b2fe366f09c1321c468bacf52c76d1bb25c92eda6a2902b1c4206d74113865b7f3b0524350fd94366a79998a1415d91eb5d88d7614b49bb9aa254f24a10c6001d65fa982cee746e0cbec6a323f6d52ec88f964435f5ffe966108262c76127084", + "hash": "173df5a0f41a4ae0b674608febc72be9aabe1c47611d99440bcb26bb26393dac" + }, + { + "message": + "993f9d405e7de31d558821c8e9e0a7603d13632ed1f64703571e56cfddff47431b50af5b5772aaaa2c1de041b35b7e5b730eb67b08b1a728964c20a454598f7bc7d15602b405e1717274c4d3a65c3f9e4864241ffe60a074ea2820f9040931fa05475d30244157694eb60009d58b2a612f9c13ff0a321a1a1a24439eb8353b468787b917f2e32ea4bcb7054e76e0f280c3a752f692eae839ecc3daf3565d89fffa64dee20fc84edf06440fac2c5bf28fe54163402bbbb4f40215b14e4558ea8abc32e82fec94ea751852b6c6bc9e6aa56372ad89e1c933f5c581c81511408309393eb93d497f3b5884ff739ca1c95e4fc663b90b17d4ed50d157e88cc1", + "hash": "32a82f006169b708929ebeca797385b992b6ad38e111f72f2998fce21b3253d6" + }, + { + "message": + "e301fd5a9d5a35007b8c1d59f3fca8673ec93bcb390afc8ee828015a9f0762e4dbf98f8c0acc9c8d2be900432a3cc8ed0d6545c7d6bb166fd27838cc155e830dae241b90c02a95a3a014c329798f7afbaedc", + "hash": "d902870c2b21b8183c77225c4b97ff50eb2dbe76ca8002c572d459f4fb3e53ab" + }, + { + "message": + "6aa587c6117049e39dbf0f98414af3898ddfdd76d414b0cc83071a4af884f1cdb7d10c3e1c8151c153baa40803e482adb544c9792f9d22c617e4dc32ff490c374573c1e27a3e98b74f4cb22735e2b71953b8ab4ed179432beb16eca8d47633931eb52c105a6ee1af2ef6d96a25c66e02d44b02156d4285f63d6bb38c584d1795a0ff335fc2ca2f1d30eb5950a0", + "hash": "9e2efe9701e20980cb87e2944da6b936a480b09cb6bd53da83b9498d2f592b23" + }, + { + "message": + "63e62d984c42921625693408db63358338dd9b7fe0be32eff6cfa9e85d9cb11f56c937260ddfd5c5cc808389e420d9db07200e2bd7328e726bb74f111ad4fb9bc4b8b27b7644937c88c2c4e9a78ec4ff66d58558994eaee00d002e24d04fb7ef1ade4812855d4435a468a0", + "hash": "3a0014609e7289866d2b319aa386bb00679198be538a1db00059912631df1cc1" + }, + { + "message": + "0184cc2d73a2c5d07ef5c38c90f5e804dd6412b99072f682997361679fc44cee16fe88fb2e69c8cda041", + "hash": "c276ffb0f311cf92837c621a3b13ad2005b639b049b3f021d79d7fc5d73cfd5f" + }, + { + "message": + "2ba1a56fb33b6680e44dc76d2d6b34f98385beab96bcc2effe99f49a6ec5c7c7970e6378f94f27090e1f481cfe3fa996fbeddf51d29e59a76bb6d6d4037f378584431868a87ce52f9477c8acf727473233c673ea8804b31ae4e6fe2cdf742609e2dfcc2f1a2281207c45a546b71bad72b023b8d75cf2901cd201e0e2b6b7f0fc9109cc657ee157a95dae4d3c26f876affce4da30e729078189cbe11a0e1d3c0a60604c1129b21eae11e4add00a14af0fd88d58ac4cc657803a3a716ce0015a503784dc48976b5e07", + "hash": "c129b486bb2e4e80c1e89232ec2ed34ca0e63ea84c43547ca660331ccccfc2d3" + }, + { + "message": + "b6dc1a0d5f5dd90cab54142969ba785aa4aaaea201ed24b34d223ff5e7acd4772577eefbf838c9888671fe2aade1efc36b4e668f3b422cbb00738dcbd3c133c428035ee9e73f81b0220d4368ee792f2bc21e1c8313a70a0a724a04ce09c55b2339578e1a47506398894d5778b05417aae73c4e1f7b6ed83a89c7332d8a630a", + "hash": "ad141f0e71bee4fa0221745bdf372d7b1e62636c29e0dcc35b8aa5c4661c3b6f" + } +]; + +final List> keccack512TestVector = [ + { + "message": "3446a15c8c7226b02850c62e5191748ee5f7b55266406b06", + "hash": + "62d599a82cea6c0fc5307cce4293d066212b0f051c6c9a71682f55c49b657b1f5c3213f4bb8fac85ce1cbeca8a2d2d246323f7693270374ae5c74eb6e0d48b40" + }, + { + "message": + "e89725eef762a77a743d591d853f21c80ec975e09d28825a452e4a9a1a804c8d2365825869e6cfa915fbdabef66675c06b9e83c0c256d536df4777d350a055cd2939e487e02074fe963527d9207304baef8f4f6c10b7370bf50103482cd21b68324286dda14f2cd7910339997ac276d695adf9a0141a5a2aaaf340e2051beb1c0888187a416452aa1bd5cc3ea098e9d357f74bd2fb64559c864a358607d433ae7bf140248dac18ba4658855f2b1ad79ec05aec2195c7e4c5", + "hash": + "dd1ff803401d27e88ce14df0ba0bdb5cb815a91a31dba5e821e51d873c563e645f0b48d08c28a7a9e78f92dcff50eaeaae584a8d101f79af2eb866dee9e0d117" + }, + { + "message": + "bd95b99c62764ce3072235e11aa412b00f0c98e4e66f5a0133d1cc1b652bfab2ba7b3c16307cd5774257ffe662aa79d9e5095ff07a60dd9dd67045af4aed73ec6a80b949f88265cb9857417d26400166ebb74bc97ef42fda64976690", + "hash": + "7ceb4dbc2362d74191515b3b1aa6305937d323f9cd26766732ad35c597c3cee69defd54db4fcef808163b170587940b0296ef190400b3a6e27fb6b012cf05183" + }, + { + "message": + "231cd87a56551a4001e4b5f4ca7e2268991f4b9a4a61caea67bef0e66273211b8a4ac4cbd5616f468e5e47ac5f6be7ff914f88a9bace7451f4b305b30c6ae050948106eb9c62dd84de08f61bd886abf5f68cac603fd9ff6d4e925c88d2790b7ed4020cedc3689b031fc682fd4a1e43972d2dd30147f529165119a594a0b71a8050974b3ae7a1369e98ee794d36913b28898b9af559fae93068d5baf8fdecd1b5ac7bcf2db9c9d69b4591985b5a13a0e2625c6b2b3b2e15da24c653875b9ff43c1dd253056d906f374c", + "hash": + "b733c0575aa034f27f264635031a71dc7d3a8873c8e7d8c8fcd080a75dbf559d180110f0c1bb67af295c1cac4ae395acf50ad87abe885ad08abcb385887fd63a" + }, + { + "message": + "0beb1240549c9a7be971cebea1154a0da5c920ef2418be60ee1c78f999d9767ca4c6be97b09b3c149ea9cf8993c47168f532c21964f9d47c6b13e95cddf00127debe809e4b3c29cb", + "hash": + "0a4828129fa5630421564b335705daa054a9df73c182ccb77dde2986ef34226b36ef84a3239a96e8fde44e41b6de78f7d8ec165eb94c27388aeaa78097531b5a" + }, + { + "message": + "1769fbd2fbff07c88112e3d27db23fa0b694c75699607fb93fe3322754cdb4bbfc5ffad95406190efebe90be6f73bf53567a65a27d7f937a1dc1c3a1b69d4b2b94a27313a3a9b0029ca71ef48c00135b36ec2473f4017d1db8a1387ee89d77cf602fb544e9497fdf0f2004751e4ea18c9c7594ac941f4e1f0c0d62ec44d39b2f44", + "hash": + "d93c086591974d84aed0405d01162f63c4feb12dc11752fd96bfa3981dd9a910e38b1047e1ca32fab700686175c94dc7bd5cb0ccbf32b47d75b3c116ba673335" + }, + { + "message": + "18d23ef15a01fe9dc196f41f4e4f78851a27b4e437c4efe4d57cd34d97a1073a6498e874f01e34e97287177510fc3631cf38fdbeb573f223c7a03bae424da0380307549b18174159224a3b9d7e37f8af54", + "hash": + "1b823217066ce4a9ad38ba8bcddb5a59c43acb9fd886cc8655bd861af1fa3baacba1c131dad5ea697601bc7c7b60837804ffdb7f6d2c2c76b924d301ba0b0ed9" + }, + { + "message": + "2212aea45b7f010a13a69e4d35150f12617d932e086349b6c84fd906bfe42822518edf7980ecd5de7aa13582159819b1cf53bc6c869105b32f", + "hash": + "c32de1b120b9a6e7947f94944465b40d3ef801475fb4663477962a0afdba764b0b7f82574238d3c70b8a3d50c1b7223c011265533660ae01be2144cf35e13770" + }, + { + "message": + "eb13a1a3e47f708cb57a276375ea09b3c5df224580e361ac9a5d78e4919c4bb4cb5a785a6ff14a6f69eed2620ab850018b0b5c9e4189f7aaecd3510660d868b09b1addb169ff717985353577d8bbd26cf302", + "hash": + "106f26f17d7e23cce6f68d7aecabb0acdc6ab1ddf8f5854dba0001f41fd0b5e1b84566ef1d32cbfad851d75c631026dd8c977fb96bc6f8d38827ccab923152b8" + }, + { + "message": + "72b1c83e66232edeb71b805e6da74fa7ea3015c350798456a7e953702632eaea38340a9dd513ad7e6245f6bc40ff9466f45dfdef5e6db7e9d63a71ee62c638b5e82fc06fa5e6bdef28aa498cc270ad41485c81694ea2800b6c06fa337ad098b93bd27bddce158a5da1262ecfc787666239c176cb60709b7521301da490ebd2984e0bebb733dd101451877d0dbccaa0b5c0bae7ecfd39d6f108e0c5b480f38e75e88995766b69ff08", + "hash": + "3ee7a67d9280e697abfa467d1d826bb2005bea3de422548547b86c4f4773caec404b2d5836df7ed12072d1c7611cfb22649fa6bdbf08c00436ffb8261475b5cb" + }, + { + "message": + "0dba6e78c44f18f249a898be9a8a6c7e67c101201be85b18852d8bae68cc5d6a1f3ce8a83dd6f05a0e762f7299773383dbc962124bccf58aad249af21aa7105de84a3d28457203f24b296db43a16572005d3be6462e4b1389728d9b4fe85dfddeca2ec0ad0d5a7623e450aa419e1e670dd4c27e4387d166e253925ffb9b64fda5d3b186834c64d98b1994da09daaa0d7b87548c1828053e0d98d86d14cb7508f88ef278cd4766383bf8491780a6baa23b39985be0252cfb6014455d1e01b57a70bf3d2e78801a243f157b0b2fb050fd4649ecbb34c5a5bcddbfb83ec6215e1b951d833fb2f82cad6ac57818b96a243a83b8aa9f392b5ee1f8ad61e83ef3611678498419c249a82c9", + "hash": + "82b31cb7d02dc5f08315da7b301f35ac7d90ed4fbfd7687a811887e674a8852de5cf954f5ff11dff018a745e98aec85a67768fe5f32c408fb533df11a6000952" + }, + { + "message": + "f4bfd6638601fcb42a4c956f8c8816e3767f37ab12f3eeb64650625e6671ee2f2dab7d30ca9fbcc22793569db4b2d810b6c738e9706f883be8d848837c8e2447006f6c60d62e75859c9bcab027f85d71962791d2f58e58e06d36d44b5973ddbbaa15436707ef44d0dc0973f39ff220fac5913ee8a7cd7aeaf6a432a01123cf628cad8a01bf225509f70fcfa7ddc8f402184b1f880ee55d2d96832eecd2760281132a3b5a2851e9ab847c075db13477b2dd96b1de2a45b61b04b1fddf5a34b9b7cd741b87774c7df6130145c6174c7c06465da430c74d104e", + "hash": + "ae0815e19d8227f6bf17825886be945dbcfb9d3e741c98be1095d5647c86fea56de8d214f0ed695f690c70fbff60e7c304fc95a06e779818869dbabc82c30eb8" + }, + { + "message": + "bc536e2abda9962c3f80e9a62c2fc23074df3be7481d9b922ac5d2f978a2364ae64ac52ce9830fc4b93f8390ee2e5606e7a63ad78fb6a522f8f45c65858a785de7216bf9ae605fb49f1178ed659d0928664a87ef5dc7976bd724f06824df4627a98a8f350b7c81c2cfea80f7769f988425e3f78069552a53777b3fb2792bda31e874d111e6f2de56bb923796c77f2ea3a02be2261aa8168e44c726be441cbc32896f1498d0d601fb", + "hash": + "85a16d9e339e78bb50c327b1e3a159fa5b01c8fa62f046a1635e39361a9d6d8f4f9a296c4c21ae9044fe34493a9bff7a6ac444fa32e6dc6f02ea6a79fc56be76" + }, + { + "message": + "dad7741592c89510b69caf200c11ba84afbd3f0db331cd20e6c11dcd9a340c1f5359f43d7168fee53ec8dba0d249c91a9a88a76eacdeae98054ee3dd59274a738eee0b00cc69e715be8fb67e29e8a0e4729c20ddbcde7dee1c3439060d1c5a937ee85f423fe311f437f77bbd370fb327da398c232cf494", + "hash": + "fa83ca3afb6d1cf874119dc8b49245dcc95a64aeb94a636786f2593507858f9eb3de6f22ab72fda3a1aedf716d822792f005a7964dd8ac410529de2d47557f00" + }, + { + "message": + "39b79f9b42ad0492b9e90e229110c3f496213f1c4d0f61db3d33b6d392f42bdf6a86c68e6375b6cf71d044fdc76691f45ba73074b38c704885d4c2ac121870e50261d69ea28162f054d32666394999ace00eb28f6873ae18ed603e09b870011565e998f060441ed6b31c40fe701b1611be0735f5ceafdc95a8bdf887e09dfac6d128a340868e4555228016e3e1d3bfab28e1acdb3027947dae33873d17f576c63c7875447231b83a045652a9bf021c7502ec884f5ea3db23336223464aa249c2a1b56d612f796f997d471dcfb430f2f160576baf9139790a6c1643e895400b011e81864b479e2a21ff10cc5fbdeef28c02b8ec3e14197410269dc8", + "hash": + "9bdd31d805aa699b879aa2b28e6ec923be5ef07cf44a19fc69094b6da5abeaf675af8bbf073a5140821ec6ca7dfafcc6af92ed6652b3e4fa085f73cf3397a4b3" + }, + { + "message": + "147fa31e49ba570dd1afd8b94f3a8b30e05b79b181be645c384848c91e3fb7976641ab24f81098d2e68644b1d8afabb98198b17311b7ae9bb76b3776e5e975e11571470340f18351c259f575fdfa04bb2c3fd4629a8a6c2a134a829e44c8ddac6293ee6e45dc891b63301b22e6e9520e0665b554b65e627652e515213ad36982b86defcd014a0b4b78e3ceb3d94c17755720cac699ab6cf57869fbfa544e95c17a2023add5caba82b1ca83d670186d8eaf7d38da6a9d12622c748411e46da5c4b9e8a17c", + "hash": + "46bebdb58ab7c577d8668e4d0cc35f2d357b396457c68934cb17e488c19a3fb3439071ce5587cff0df8a94f3970d0ee34cfec78a2785282e81a106b48900d9e1" + }, + { + "message": + "08020d2ffaee06a97e217319ae44c109773966ef552e53a2e97789009b4d8e0fb3dcf3a1e2cc691751ee29ca4a2656567b495f3881df38a007ce4714f013da5367d4f2a55d68c47d529c8a63adf5442ca159afca12ddfc4caa8d163ce25ea1adae9b2e83ff17c4853e85ceaac18b444bceefbae53308a2192608bcf38270fd12246dc2d8eaeccee210c83d04efaed60b7c5553473cddad48d684ba6a94641fdfb2986b030bca9c69f44bed99b70093192eef2e1771fb1fb0abb8951a6997555f", + "hash": + "34bd4327a37d3b279f6f129d3fe282a15986bc3f3f2e67b8286bac3fe9d56a0cbe3c68c76d6316373d280cd947fff34931f66b4b0755462ec8ebf2efd83bf228" + }, + { + "message": + "d27d47cd59df47edac6a7bdc7e59797a63e92a3fa2eb51ddc17f4467698aa6d7856f06244f5615f8042c87c38d4ca24febb846db826d68f0bccbc1a2cf90c3e5b103a6dafcd7b3598ba14622630b17cfba13be30df41af93d1e4499f1e6d0f0c4ef6fba2f62e150427ff4fb4fc8c6e782d1aca2ff7c1041d44b29e9fac47e3047f6b4e982355109d6d9c544d40bacb1dc1dadf66748d541fa36dbddbe09fcab98405c0a6747a6940d7115f67ca4f0d13d8e7248a96a600b7f71b2a8e2516e03e799a3cf9abcb07bde1d04f749d0c6976f510e720748317650334052560b1b6f4be183659c1af01129b57c54c5befffea5b726e875c732f02c4b617eaa330", + "hash": + "69fe5c1b9e180c7eacc164ed22c305eddf8d23178531cc1e838ddb6b869d23b872a17a62800909004653c21898417b4ff2822bf14ffb8b7eaafafe7d5849d8b6" + }, + { + "message": + "0810a794425512d709bf2a24ea954469287cf13c85252418d5bdec85f4bb020033c7b3918e3867de7a43f748c6faa0c981a3b58b2ef66238a2220b265d7e9270f9c1041295192a9a497e134952b439f011a3978dedfa", + "hash": + "4711f2110865f34c188cd4b1a906836c59a7c86544c965363b76c79258911989a90cd2849684742efa2672c8e62a7518f97a4c08447ccdedddde7389e8fdaa32" + }, + { + "message": + "7d1ae6dc2c8b7e6677c870340551aa3228d85adeea3db64f65154a588965cc4738d3515f96e7d7fc04547e822c0c7e3fe96bbfd48108f366c3c19be3a1ee62ff5b3ecef44faa891b394de53029cdd21040b084f0b6571471a31edcb498dad43f39c4293bef798f826879fa32d1fa1e092a09a352290851b73aab73fec0a278433ee9af2f0949ffb5f102b44389af5d49c508334397eb618663cb0fdfa9d7c27dba7d9e29aab171de8a78c553507c6a228386d42de9cca6ec7ab693d621304ce7ebde8a9c85c7debfeb604cf4bb7e267b598fdc62459bab60faab898da94ef8efb0b91c41b2e52cb6a4a2f48f5c8f2abdd11528edeaad1533882b8112085999d539b21685e7", + "hash": + "b24ad1967deb11e69a5b2764cb028ae17e8e1f598317eb95f1ddd6fc6238b6153595661ed7dfc974f911739cb2a10aceeb7b2f83fde9cb769476be776912bd75" + }, + { + "message": + "1f3645a3fd8f44cd4b4aedec1beb3168d3bb6d1920cebc8977ed87b108fa9d67062a960a254bc9c65d20c8af0dc759b9b9f54cd021e986b056c4976512c20ecb09b72dce02515034616f29d72076faa43f9d7edd670a63423378609aa43bef64eef80418972e89d3f749cc1387cb0cacd2b4308de458104362df0c98150e4d0acfae38ba967e188c315ffe9632d5aa2016b05e07cebfc9faaf9e08c42d114a3faf83966c1ad56ac122229fc5a995d3e5ac7bb33cdf76d3fe050e5f372ba5e10b", + "hash": + "49a57efd43524d8e9889375b70590adbc3a585e01d290da284b7671471109cbb98275f4c71148edb7c0298eedd1e53e23e2c58ee6715bff87dd91400d03b0d48" + }, + { + "message": + "f61082f9a7f6b7e1753a17d32ff4994498c65791c071d571e37b6aaa36af206778f4473c928e08084f070e3287f2f8c6df9fbc78df8e34ce4799c2ffef7dad529ecfe4e8f8d005470d9c6f63296df9acfd3baa1d80", + "hash": + "800cc23b99b65597a87736491b365fd54c3cc36e485efbe95d269a4242e2d34c51daf2472eae4830d188a4fb0700968e550b0b8cf46fd8327bff7decfca59e8b" + }, + { + "message": "97a4a74107d5bf005b2aea54", + "hash": + "e9933908cd34847e61b8a70285b1c19146d3885415f1acb88aac9777558bdf66b68f48155f1df33e36367d0bbd4c8ad4cd513c68e3aec65d7c7d6b3639b3d5ec" + }, + { + "message": + "55c7c789f6e2b261caa796cf73adcfb7933dfda87d66c5c0394c700fa3aa06d6d4ab7f89eae00415ac22559e47b6b9cabb4c9951102b67a5930b7a47a19b3540cbf6d7687b6cc2f4fe40d158f2629dacc857c8723727053ff841935b4d7bf3cf30869ca115fdb8c5ab126f289fe91a200fe27ef3465b0f78fc9f0098d4f75ae94d02c778e8fc1c607a01c29829afb99585f6a9a42f6b8d64f3e57964822b97e92820", + "hash": + "6685a1defee95aa853a9c1d59318b64e7687a0e3f2b2a15810d42fc158e88ae7e3abcd562751e6661106266d371021e16a3ed33c841beb7ab8661360c3dda500" + }, + { + "message": + "8deddd6fb2b930e0141dcfad499236ee189abfd6ad4bea686a76a8fea7c76e1087e6afd6", + "hash": + "bb4ed613d9da8eeea818d1dd63111f39332ce07dd066b819b9e5a6607ae9f60321cd2fc94b62b8705332835c0f00cb7843caf1c147fbc559f18b1d0ec4c372d1" + } +]; diff --git a/example/lib/test/crypto/md4/md4_test.dart b/example/lib/test/crypto/md4/md4_test.dart new file mode 100644 index 0000000..a1d43c6 --- /dev/null +++ b/example/lib/test/crypto/md4/md4_test.dart @@ -0,0 +1,18 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void md4Test() { + for (final i in testVector) { + final k = MD4(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } +} diff --git a/example/lib/test/crypto/md4/test_vector.dart b/example/lib/test/crypto/md4/test_vector.dart new file mode 100644 index 0000000..ec95a0e --- /dev/null +++ b/example/lib/test/crypto/md4/test_vector.dart @@ -0,0 +1,126 @@ +final List> testVector = [ + { + "message": + "aec4b5047d19b0cec91957ddbb654f0f7c0925dfc827538c84243f351280661e552118eebe14385f318e86f9ca6f4875abfefa2c326da88d7a77514df6800e8e638e0d41d2ba8d60eff8c9674da1a77937146d2c126db536c02137282443f4086749dfdc04d848556001d896467c076c4aac98e7be76ff1b9c3ab72ae2949874fee6f0eb75d457de7512c82f65fe104cca408a4d962df6d4539a5ce031e0d0a94de52ff0ef63ce653c9bd42fe38f63689e5d883b0b80c50bd6369b83d9", + "hash": "9a416d790189b257804ae4648582332b" + }, + { + "message": + "f200b15245e59990aff979e5e9c78c5f4a3145a22f7e6b661399109b9a4c5187a0dd7bdeb6509577b4d93b41fe8835517996780aa021fcef5ba7ea468f4b3e34429f896173e6061c8c7fe22b70bf", + "hash": "a592a81a8ed24f47059b6674a141d502" + }, + { + "message": + "79fb6a89db04a60ad168dfdd088756ec630311cdafbba3c6aa72ef131857c8a9321de4a9c33acf28342c77f64b6d912fe4ebcaeb78e1aebcd880901c1356c93e9f86328a775178b3dc6c840bf186b62c37ffa3908e918b79ccc3251ec1776a628fdf7657cd121ed28eef407e127997f78120e2733796af51b2325476c00c81aabe92b398e71ced1c4a05a067e8a61027a2fba83a5052b53d4a892bc73611fd41a7af708555dbeef3a8fa0e447cc9e0b15b154ddd82051f0198f3ba5c83a7ac38c16d7ca40e1cc9757e5b3b2c0998cfccea80cc", + "hash": "ba1e862b9a79fa78a9dc746ee16ba005" + }, + { + "message": "24feafc0d44751f0c9d7715aa474d0", + "hash": "176b813adf695f7bc81c610929f5fdb2" + }, + { + "message": + "8cf1b5ed8347aecaae3193daee6d2c62285179c1045169322ed6059f832154f356ada3c18a93a36616c438d1e846d514976113ebf3aced51038b568ec5b278d2eff468d7", + "hash": "784812c9368a6379480a7cdae7d14ad2" + }, + { + "message": + "e5c2ab2f3107e1b2b3f355b4f224ce367cd16d45d1fc5b08731345859464db81a6ec3b1d9b7fdf5c06b8761e92588cc0ac8a1d7b173f88cf988e24b5ab22532d8aa2573a41dbddd86ce48fbdaa66ab1220a48fb77aeefa1af759dc5a3bb2338037ea36c44f90ebb8a8aa0edfa5fd0268cee3a0c86309e500ad6a06e6484e5c2a465968af0c8fe922c4babcbd973ab0ce19346b94369ad01ef21c1c145274b073c1441f2ed3439fd7b721fb2f96636b8230921a5172ca773530", + "hash": "4541ff27a2f87b3a1e4bb44e77508728" + }, + { + "message": + "d1e46afe4d96ba45d1f35e9f14e2f93b99dca3306a3b14145d2fb28541f073116feeb5e0593542edb2e1a5ca4b277249766a522bc83a14aaac3af8152d2c055b3db0eb82c18a80e3699e90a676ed", + "hash": "e5d924201777fe38f20736697c51d867" + }, + { + "message": + "7f77d6b2f33423a4bde6dbbe48c86b141918175f7ddb67308e15ac1f40358a45ec4b417b76f8812c98c7eaffe71d632906250d273f66b40de3862227b5cb4fe8c2a90bcada47fa705de3110861d306f2c9e6e45a43060c713b406f66c183e1089da88d242f33dce5745348d38c8eed2bce6f5756adbabda8aa1ba5084ffa9c8ac2f330fed7b1b44c18d2a8e43c9ca1acbcd28a8e5a8ed6453a908a6188759e9d755e83413db61425125ac293dbe1fd54abbf020e1d4475b88e97ef66d27573bab8217ad75355d12226390a0fd427ed53c8cb92dbef85deb1aed00a1ce5", + "hash": "2b83c2bf296e304f57084fdc2d68e6ab" + }, + { + "message": + "fe35755028cdc082aceef37343cfe900805882ff6cb36c5e2a70d2653ff059668ee32cfbaeded78b34b409687d7423e8e5082312020fbad34939b61f5addd5fd2b633babf32267b2a8ecb5afa136a2b1afda732b50cc33398eca2bc834409155183ac646da88902fecd951f91d2771f80e995bf8bf7dba015684b8d981e25b44e21d746cf436e47207bebb26f5fb4347ddebc57668a2ec49dcb6163b648d9a86bcbf1d30baea035919e5406e6ae9ac1ad8f817ee9d2dd37e4b77b0bf034d4f940f45b5f0416db40b5009eda5804ea078cfab262d318aa22d869f2179cb4aefe3e09f396e14061457a6901d1f4edf5b308edfb5ccd6a093bc2c07981477", + "hash": "ed998ca9047830e18e4bfc84592da7d4" + }, + { + "message": + "5141517929d0304592a74af966bcb8232073d5857f99d7375e3415d1c0d50752da38814dafa876730128cb01beef44c85c5edc71004d8fc78c975beeec3ee927ed22d34020ba653062ce20db3e7201f67b971595aaa12b53e69eef787dece7d1348d4aac96309c26461d50f2c386608838ee520404004f881b4264fe85292127ff2835f9ac48b7a813d540566af507e579eb0aa4d186ad21875d6874b123a18abf72a3c0ca40984975b59fe52d4f1046bf3a362c8c9c79d142c4c5019d26d66080509566414f24ef31a3ac947fbb397e5fa12bcfba7edfb2a70679e1cfe36c68a9708947d462062948d363e56b76e86c5c7a387d52122ca3", + "hash": "b55898a25c2b4152d8d133d7cfc2bc5b" + }, + { + "message": + "5938c1985170a2ecb5091d5f369d14fa485fa06836d25981e884c39d5080ecd3b25d4c7001eeb586118e19c83d9100b5ac5d3e3fd4c83d0e9740d39fb675da78c6521804aeeaa052b28c1d36d7f02130e96d3459757765b146b9dc28ff0f267bd7374dde8c844420a1be4375d0b4719a00e841ea9d201ad0", + "hash": "af7966a03f357b67765430598eb8b8fa" + }, + { + "message": + "5a70bcf38689ffdbd6faf1dccc5b33a8462d8cc31563171d762b3ddf8e798575e60ecfc9abfab7daf2e494a9bc449b2287527929b3e4984028f788145947b093737cf5238b72714b61e77a968a888d8c5a3acf7a77788617f7dfaf62c63c2af386d2991dffd7a9b208d1342e69ed650e9c2642ad0a96de37a609c576180ca5c2b983b75cd9afe904dcfcf8dbf0d54be7f130dd51d9d739f3ec5079dc36a0234a6613b3207ed8c0588a0fa64b362aee298f3b6dfa8fd4a61af5f3b094563ac2341a16814c64a18ffd4460e0d0b7235ead88e2eb21e25c5b2c62d720ffcf3fc7a8c66778", + "hash": "272183978d328409eb3209b966ba094a" + }, + { + "message": + "fb211699b417e9cb6e51575990e6d908595207ed728b9b00b44f2f76210740ec4407c9cd0dbe7b7165087f19ad77311408a89b4e855f60684759093056e7751c3b59b83d47ffbb013a23b723d80f53f2c54f53f961b8a1368531c9856193fc4ca6", + "hash": "1ff404214bc98b1066a500086b831eb2" + }, + { + "message": + "5964d06cc4dd5812d907cb35909f1dca77e57fc9843b088201d103213bb09aaf6ab388b26dafb18bc59206853f0ea3c9e5d72bfa7e07eaf382d02f07397fc9750ccd7e3260062f6d56551d0c7229f112205974f176a1d2ea90db0f144c1174d592ea404ee998a846b270c6859e53bcca910bd5aebcca18c79c513e523813693f00b7627195697f7c9d41307a687147eff144b33f494ea213ed929490e540c842fe98d7ad9788243b0d7e533d20cd50a951adc7d22ed77a8fe54fad297ccb1f9c2809fa0bcf66d3c9dd7d5eb4d0fdbdbb4cc28140212d468555", + "hash": "717c21facb66538d6222580658307692" + }, + { + "message": + "d02be054024d91f26bc72e7ce8219b2767a7f718f7767b3299fca1e681f503f0e7dc48810f323f5a46e0958051eaddf14e9e9d", + "hash": "69833154a5dd2392a1235c92b1af15f4" + }, + { + "message": + "465e5602a2155bc9b128fc16bd88756f91bcfeadae19a7d2747c44dc6e48bdfe9777e4d897053b67c110b0fd48fe6183d59be559bdca2af5f0d6bdbaecf2795ea1cdab5c4a737abd51e278ec3aab36361b00fbd859e4886bf304980561ea501d86fc5d2986125099657aff8df702ec4d58a37c13d0f2bd5cff0e9429b6bd1a40b2fdd9f6138a3618e47d61e1672233059fa895a84d1a95fc6855ca86684991cd28f5a605423d5c5fbc6fbe9ad58547ce42252e13a5643efd98e35af474ffc4d996", + "hash": "a3b2cf9d85a34da69d83a736e4bf1578" + }, + { + "message": + "d7f55625da8558d80eaa7ec18301da718aa530bb7599cce6cbdfc97a239a8558ce38ec37715deaf065a1f95a165e2d88942e04a253161479dd41a231253614d94d7bc59ad0000e0bb7f4e5cc2951a0982b88ef34e3c4489fb4525ce6f049e5c892d7f7251977c7d30dd978b9afc06b26c78a69be177a13704a56c9ea3e3938ca2555df1a000e0f1c6856fafde2f0d6e30e28162b4495bc84b6d2ec104740fd960d0ebe313f343b91fe990ba2a976bf59", + "hash": "f0ea40c8452faf1f08ceb9f9c9ad4f58" + }, + { + "message": + "11be9650b73563c9f9b6fe655123648885ef36afa88f3b103f13cbd7c5e2af7d15611a0dcdd776a740f492901158bc4ae38fe345ed106996c7e22cc0d30e2a49c4783f9c883edb83249906dae20b86f59958b907797add553217bf74178db7d67c5c1e6e7a08bec0a58a2479828fb9c4e7", + "hash": "4f99981a36b34cd1cc9051686015f3fe" + }, + { + "message": + "57abe7fe1f4577a0991e00a128f14778e9bd8d84cbcf821b4ad9e395724ccdfae43e8a79eaba31afdb56bb15db6bb6701d1e94a93ad318fae3ecbcd3943091f646f22dd7787cbb5c13d567e7eb31554fc5d49ddf5d602116e9d48523f41065a24670b9b3814ca43b6edd82ad42a468a528", + "hash": "41f8aeb397c916b7dfb1bdcb30801528" + }, + { + "message": + "788a14bd468510a1e14725d872638599f9ac2606725993a336b02732d326f6f9f07ab658636bfae8a9e53d3f4e84758cce042421d7f54657b5ef15541aea125e5915755c938bfa8d2a87d1afb29719e702f73ceaf35bfff9616200bd411a8f7366609380e80beb49e69faddb4385eac788204e1e75cb7c0e4642534f9c1c5bb8c38945b99d658bdcfa22d780eff1ebeb905609d17a173afb5fcd818b65d55e6026d3fff519d356e0d4427c70e7771f468ae5b76a42108637f22cf36d", + "hash": "2d3197e24dce91ab65bd6d8524b7111a" + }, + { + "message": + "669ed40fd7c3356ca9e8b3f72c0fb1152d026d668f49374bc674f232a2534749db1169bc45cbacda73dee61c08a6297806ee5401c56d7d602f23fa73837a98855e4f5bd9dd8b3c62b3206a5500", + "hash": "854f644eb9eafc1862028cde0d640d49" + }, + { + "message": + "aae8050ac21798d29c45ce6d3536485a2fd34d7bcee49c70ac0122e1573df15ba08877a940d89daade8c64067885c0f0e2255141990c9f7cf6f2bb3fb32180feb92ac593583a6aab1135dec8604c9dc6e43b597a46e05e191f60ccff3c4d4ee324ef525898446a87260cc15a8b125c29", + "hash": "30b3642cda17ae255444c3ce740ca6c5" + }, + { + "message": + "e27c8907886033d735820f0f63a83bb8e77b96ab400a47d0ca03afc24caada302d4633915d5edfee10fa7b2c958d65f2a9183137e3e571cebe280b83e7540866ebfbdb0bcda61adbe6f33963b6d6e5cbfcb9029009879a4774497eff642582bf16e7534cfec0c6604ef457718244abeac894cfb385fe54c1eb4448439a37e5914701d036cf0178ae9ed0a011b41382b0830f46848e640bb22a060d28059e8eb27e6fd22c8f6df33ce136d63e4c8fff74926d317b9fa3f5bd0b71c40dc87e688fcfe98181cf42609a7981e104b191e2f55667a9973add", + "hash": "faed33a1995bc3370ea13197accbdeeb" + }, + { + "message": + "bf61d1e0e18751a4d804eeb179f0da2351974da35edc2e189f1e04de09bed5490a397021172d00769ec3410b863aa00789cbd639", + "hash": "cbb80a4326152520111fad3f60524421" + }, + { + "message": + "fc4dd199c2f6cbc4f2ecd29fe5f53141b20b897ba60648d4ef89a0e9437136d5563a7990a048de01dfc5ee0c492bc043e691ffca0bd0f3e96853339be2bdbbc1343e9fd483e2f429070164ea29e1de336fdbcbace114c9f32b78ff563e73bb3726e884db1e78a889bb74d41e8db7f20eb7e6c24c591a995b56955dcad5c334c62e722aecd45c42d623515d02887aa307c22529445b77d7ff032caf17c16c0248ef74f99f5b01ebc637c20557a61a2134efa716657ab5f5a43b4d2b35de651a8b6376031dae940201197238ba04eb4135ba3c1d6fd46f76d7210d0f68032df54e92ed884d40fad0e7a3c2f13f4c0b6a", + "hash": "2605d5996f040aaa378f0040b0a8250c" + } +]; diff --git a/example/lib/test/crypto/md5/md5_test.dart b/example/lib/test/crypto/md5/md5_test.dart new file mode 100644 index 0000000..e19e147 --- /dev/null +++ b/example/lib/test/crypto/md5/md5_test.dart @@ -0,0 +1,18 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void md5Test() { + for (final i in testVector) { + final k = MD5(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } +} diff --git a/example/lib/test/crypto/md5/test_vector.dart b/example/lib/test/crypto/md5/test_vector.dart new file mode 100644 index 0000000..ebb5e08 --- /dev/null +++ b/example/lib/test/crypto/md5/test_vector.dart @@ -0,0 +1,125 @@ +final List> testVector = [ + { + "message": + "f87de6b171ba4ca39ad7ade82741fa27cf2b39c661d2f837e96e5b321970b7811c3539eeb8ff364e25635be533bb007e6b249fd92162815d3a9e6b30abdce93fe6f6f3fe18d4af989748237d1535562026a6e75cc9b5a627ea7002c1938461537f916a3f203370f11f2c8c6743674a0bd51358ac10f8c0f85c5807f94bee", + "hash": "0c32fe27dd71b130fdced679bb80bdc6" + }, + { + "message": + "bb8f4da274e6176f89f11ccf237f40af26405fa74a16674106da1c23606ebcbcf7282be43452177b7c13befce1133315de8d43254fedd25085f4c3e208765d3b88d7593594c204ce60376a4d12eb52cd81847951538bd5266fe25a02061dc8c4beb6fb60a8f5f0738476d0a0e94275af4d46332e9fb8fbcbf64240677524555d926b1acd830b0f0724ff3e56e3ed859412530016bb9c3b3c23f1d4e85652ba7eae81c1b153c0d4", + "hash": "e4c6a82a3cbb4b6c3d05b7d4645e6199" + }, + { + "message": + "5b499f19f31a5130fda7aa613b502f8c821cba1ba294dd9bc8208d8e31e7e4ded372326bb3f69dbb3ce0da73882bcbb5d49795b632064db5e0a2730abdbdb791726e04d505b325791ac6d809d522a729009b5c2674dcf821cec1719a5d242571d61dc356212db2846b8804986f0cfce654635334d61975173cff5c50277d61b9c58e268aa4d76763d042de1c0093589180534768bd9ea2ef089784be3cd1be2c13e5208dfd3acc22798cb9b76a3904a385859509edb4853a7a8891837b3ee0189cc7bfbda0175d1a0d28bbfe2afc69b14fd94c4dbaecde14a05b39c07431dc03206455732459a0f66c1b20ad", + "hash": "dd95eb10eaba8b58e5f060c6048b94e5" + }, + { + "message": + "7e153d0b2e2efc10148a9f2ca722e7ab2eb1daca0b4edd5f0c1e83e0e8f1e7c9c8f12a5b3608c76ce63008ce2f0e1e269dd2dcda3ebe0c0a764b5f06517bc1a30a4508513f14a82cdd4e033fe8e55627c7e03037f260ad9fd06c02c0f6061c30dabc6d4f3a05e207036dfe2cc853b29c3cd4e83c62d73aa95057a9d64b7202e0f3addddc80a842428e2cfc155bbb9e", + "hash": "f688c4833e76c2cbab5b6c5196e31c71" + }, + { + "message": + "3d46c66f8c08d2e6d5496dd648ac8049ab9f8328a1f62af8666e1a5e6dbb57a0ffa65ad29ac456ef4f60f958b56e712e6bfa082ee1f11dc0f6407566011e43fd33ca76af0b668fdf504711db527455f74937b06839ed9d93e253f83959bfc766de4cd6b096a983891fa8e374b5c2ce3dc5b6ffa105c467710c69ba60952bafc57f24483957c66a8a6cf795420d3049a71dc27e3196bed946ae8f85203adb497b76718c1e9e13593b25afac9e6fc6f995dedf934852b1509f80658433799e5cd4ae1f9123554e440f9b1dcdd55070ce98c9c0472a0c373da32e6f9b1d03baf154ca3b39e18ef581d33a2171", + "hash": "8bea1c9d88b890da0b9504713f808866" + }, + { + "message": + "2913852b57297fd460e368e1ffe5a31d4dd8c84dc5d1a120e81c33a14df789ce75abe463fa9813504325f6666d999711896c7dd462ec2fe55074f6fbe76c76ece3c79cec8964aacc6ea4a97f9bef8c0e34fbe2107353d9fa3b867f6caf3656a414cc6056cd774b4d317f952b79313183cd1423b89b47a30dc7bb67df16827bbae5f5e7bc90137336f008ef94074bb0ac1b342dcdca1fc46ced8507bbf2df4e51ea7571a3bd57fe5498cbd07be221843856da34ef114c97aeaba42c1cbccbbdbf65247f20e781adedd5", + "hash": "be3b031fdc1f663489978f2d3d3e8a4e" + }, + { + "message": "598633772c74950e071d81492bcb485277be88b521da066c91cabf6fb1", + "hash": "9ff6ffd6f24e1aa8ddcde119fec2a25a" + }, + { + "message": + "cafa6a4819c9bfc1a2928857cb16a6513104aefcd3fea1b7d108ec562bb51237cf1f99236fd39f6ae54214380140ad3a536817b008e1cbb2ebfc74d384527c24e130577d44eebd413b146331be41cb29fd904b4d385f8a7544d5757a50c0cf332de4dbabc0641c560c285bc7c93ce9b77f5b531185d3337eed0a15acb0e56ae611cc459dfadeb93517952f4254346e9a37c3eec44e4d57ecd54153b02c244d51a8a3a7e64158d2b5", + "hash": "e2b66937f2f364cbf9e0183365504029" + }, + { + "message": "01646a5a574fe9d12c610a7b0b1976ae641b476b53d8", + "hash": "d0965d7d5220c0aaf139314ae5b0c1a6" + }, + { + "message": + "7c7f99876dc399d74b3c62a181afa0b0ad5a810964e48b340d9290c9a2a9b882be7ff7d39f91daf103dc50605bb5ca08f49f0ddff670aa24f84b5b585c550396b78328ac78a426c72ca3e0de46d398e7ecfa30a7f54d5f26529c1e30d4af5ab0fd8d52ae1a849c8845877ab5971fe98d23ecc8c45164ab8fbcd573837a2fb42ea157677caaa3b17f0d7710d42362b65aee728c31a14e29cdb4833fea4e5ed1cdecc66f8728d06fa673ba956f255756b8fadc000f0258ae1e3a64adc136f078a803764e099ded0df28fbe244804d418af1458847571fc86fc82fc31932ac3fb43ba9c85", + "hash": "defeb7ebb1b637424268cdeeb6c33e70" + }, + { + "message": + "f8cad8330b956dd88e69d269da78faf9915911f7ef2050e09d6dd659f9212ad44f65ff3d79eb930d5002df18157da9488949a845ab816f3ceb2edd17f17e546d74c59c76c343779902e0ad5ac92c35eec72bee447b1dda603395a65340809349fe51e3abd6951217244cf5737109a3c45f12a426f6566ff96db9c17daeb85607eac58e9754277b9df8066b1055029733f73d1eb140ffc8e2739be26022e486300db8ded7a899467a642e382d13b6ac977db06c568a6289599698191d384a17983786ddb3121c2f2ef926bfa6aba8e42e9602e332f6396b396c207136", + "hash": "5b85837e969535e826f1ab5168b9b10a" + }, + { + "message": + "b0610ebab22ed2062c6b1754048aa4b87ae4545052f41b177d946376609dc29f9a6794da1e46e8b8e4374bb26edbfa09e593014fe8c72ccf4e183df38e0c6567bd87a1d9486b538de1ee5083f8e87baf0a", + "hash": "503f96ef51738c05e07d9d60e519d2a7" + }, + { + "message": + "f4aa648b4166cb54db1a59f1e6cadb7f30b1f13085776c6d83691282261fb40f949c0a500c41ae0598a43358945e6b4bdfa3d6f89375adc54188801cc05d6885b42cf0eec8e744447d4de348891d0d052a4c5e799260f076f445131f3fb0e132f04ef0faef57479f4054bc7101413c25afa46cf8ebce0d28957e71aed7df3d1331597e62620ecaef4650b8e542277efa18fce2d078dcb84faa938ff5da92b73d413560069a1b16bf0310fb83982d44ee6cad8d3b9b57f1a26476be96a0c8c7626b6d0616f63426d8b3193fbee04a", + "hash": "337563692850f60011900198c4031aed" + }, + { + "message": + "b78d4abad5b289305b53876bf2d0092dba8350c66782e09615770847950277cfa4c55de8918a27f28749532a4440dbd43c49d47c3899735a375d4ea6fb19c8818ee7146218adea05fa939fb8fa240af8601e590f3105b531ffa0a7f03bcc4efc3fa14b668fa4a394190e5dc96f77347be364828d8343a3452c163b70fdf033f4998c6550f5efa4b8373229cacf579686b0d23e88c5d8ca1b10", + "hash": "0d62d0a49be3d4bd6e1b61239508ae42" + }, + { + "message": + "92682aaf3b3ce4890f46421d2a7f2a0d2ff13460dd1cc6c0e84f8dee3eecad7c2a80b5c0f13d9aad3b1e9b8e66474a3816f33bbe72d05e38b8f3886b3e8b58bdaa67ae02fea5273044e93c5720112120570fe89e4a6ba7250a3602ac9b48c02e24345a59d3b24e26adaedd6b08ecfec196dc68a354096a7ea93b8511ab436abefa702866f0e376266c068f1b7ea89c614648ca202d4bdda4640cb5eedcd62e2b2b940d85dfd00e6193304a66742a738638e15d0c9c6052eca8bcbb0541109aa9950257ab", + "hash": "8f7c35c2bc988c00ba2e537330b95cfa" + }, + { + "message": + "76cccbc73719681d6fca7eb696e98c5232d78d87ec27396905b86d6c88d1d090f701a1f6c9acb1347bb365747b60eed0e186ef679c05003254c057009201084496a8ca0a6c35e94a8c24dc7100b0138e5de6d905658cc09afb25d9499a6d218c047f6b98652ddc99b14c22ee2a30027775ae5034c16e986c418e4b98f55d174bdbbc25980c12a5ef62286b0ea9fe399412933ee20a673fd0969c0f397f85c490c2e8e52841bdfb270ce1158952c086d03afc615ed99db2789fae506714aa343e287b", + "hash": "046c9fbfe49290635fc2213300e0a2d3" + }, + { + "message": + "5c4313f23662f9433d9545611887a7723fd6898a04023c9417bf4b2772067f34e4293893a34a8af3068f65ce155f448091f225b8d243eb6d525407c113f45dc27c1f6067fb9fb578ee885bf21abc0a9a163aa9cc0655fcd422cefbb25329afcf19d2c43c1a32d116e96ad9d17808c8256e01c8a45583eb99adf0f46660e84156b5570686eefafcf5d1e4a9285137333c60b9b5c9dbf537a7d2447fa18fb899fbfe7d4e3c8813d93f3a088352cb60cd2af6bb88d040423add700b05c83d5b75e932e569612c2f3fcffa2c889cefef", + "hash": "955697f04a3753d2eab5bd2958d63960" + }, + { + "message": + "11afee6bbe5d37d22692b4da4367e3952a8bb84bbe9d43e866310a13519c41742ee81e03272469a7ff5ce3cbb8327040e072a86aeae1ac917ffc4a5551982a104175e3e27fcf0ee244f047acea889c7ff1e6e6906b4140e362f760ab231e98f646480be44bd53416c226fa4039640d874fdd54512b9161b1759d08fd6d6ef98dd160eed9ab7d48fc84feacb2bbfc393b7a685d541f118d3cb20a8728a0804bba1365cc40cf7d25e5b327eb4a035152f53ab151a843", + "hash": "cef27c6845ef5f1449988694e30c26f4" + }, + { + "message": + "3f799384bec8457cfee89c91a8ef442341d23cb00cf60a00649e4ce283186dca0d8768a86038afe431d12f5b4b804ef532908d", + "hash": "2e38b6120185a76ccac548901fafb205" + }, + { + "message": + "a3b5f3edf63c38ef1e28bdbb513bcc1f7836e7f3732101204b8097907f5353eadc6616a4830f10d38e2cf19ad859d00f245869d71526fe9fc2fe35be6344e18af4f160b2ed2c26a00264aad67483f4f298a6de13812d7c424773d04b693fcdf725297074c8f81321ce697f6eca296ed1fce1d67c1bc347daad2d44f7bfed26ee26fd80ec843172a407372152c6baa9929c4bc3e875aaffb8db89128edba68dc89cbbcd20e595e407be034f9e44b659ea1b74c07e80029568c50583977a1f394e503228ddc91b7bb6dd1e6ab2bc81a6b11ca824937b0a67cf239a91a8d8179e0a566a52bed5", + "hash": "1eea7f0d28b5cd56d160174c64c5249e" + }, + { + "message": + "031af73a70efef31f583ad27676a59ec4ac088bb047df066d2d7b1a1606df68186ecc0d3302e5e67bde3e58d4f225b4e151442b917da92f4c48b830e8555fa5b77f6e1f967e99280e06f9e88f39a2bc4eda8f9249dc7aaba56e9de32", + "hash": "54df1ed133eea8b19bb72efe51e3d7fb" + }, + { + "message": + "fdb01004fbdee6f2341e74154dc2d5af84a9455e8d4c20b3b9dde1d4c8ef2357e2b024983ed32c7e194a7e7b59e501944f8128309d4f82516de7884fc6833aeb73f5b894508730d0a2042d8493fdc07426b7bbfbd8a7c29969c379b72a84d4d28bee268baf416cae8d46e3e7252e73e53e8a96d61627ba31ec79f973d89c910161b218018189551552fdd2c56ccc", + "hash": "2ba338e3f74a9c67e3d07da489429417" + }, + { + "message": + "94146c5cabca769d98b52bdcdc438dae4dafde4e331e7a03972485619b20336edfb9a0a602c632999c7a600843ec3d2122bd3b512b6623c3f9af8470575635252e7ff25b541bea0093aef4527ffe71997c84e8b036dabbec345a0d7d7134355fd56580bc6dc85d21dc5ad2e644a582c459128aa66773bc13ba33bb", + "hash": "8f3cd5c2511476e55dfd8c2b93eb59e3" + }, + { + "message": + "ddefda4228a32b7177b17cc8acc6bb90dddd340e9a744fda88ccc3fe13675865cf007c8453f9cf3193b278172567a31f6ed30d93f628acc57475c4d650ced42b9e7efaca4d86395becb1bee9d12f07b23fcb87743e", + "hash": "210b20e8f191efd3abad33ae809c8a20" + }, + { + "message": + "011caa0e28b8cf6187690b0d688c47e62d22f505b996b5e7a752c96ab83e524aad5172a022a26a061b4db5d12f2ff7c4e2ac85c0dab61f95976f9ee33d02b67f008c14fcb58a7b530968c63767a509ffabaf7aa1acb61782ea1133ca7b16d61bda055c6059221fd70aea81a5101323dfc0bbd23d19fa5e9fb2ef47989b77f29dc8db427ce667973de7dc9d30bafb5bd1590005708bd688d40d000bbad15791148648afe0885b4f", + "hash": "4f15a2278bc2ddc965c2a12bfdff4035" + } +]; diff --git a/example/lib/test/crypto/pbkdf2/pbkdf2_test.dart b/example/lib/test/crypto/pbkdf2/pbkdf2_test.dart new file mode 100644 index 0000000..0590bdd --- /dev/null +++ b/example/lib/test/crypto/pbkdf2/pbkdf2_test.dart @@ -0,0 +1,20 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/crypto/crypto/hmac/hmac.dart'; +import 'package:blockchain_utils/crypto/crypto/pbkdf2/pbkdf2.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void pbkdf2Test() { + for (final i in testVector) { + final password = BytesUtils.fromHexString(i["password"]); + final salt = BytesUtils.fromHexString(i["salt"]); + final h = PBKDF2.deriveKey( + mac: () => HMAC(() => SHA512(), password), + salt: salt, + iterations: i["n"], + length: 32); + assert(h.toHex() == i["hash"]); + } +} diff --git a/example/lib/test/crypto/pbkdf2/test_vector.dart b/example/lib/test/crypto/pbkdf2/test_vector.dart new file mode 100644 index 0000000..9d0e007 --- /dev/null +++ b/example/lib/test/crypto/pbkdf2/test_vector.dart @@ -0,0 +1,173 @@ +final List> testVector = [ + { + "password": + "a9fa84420b419efa8d1956258b8ed6b496438bd7f4b695c73972b3490bdf70c30238da40262451a45943429edc1a9a2bb9e674c661137847e2bc682f9f152c889ab023e431f4a8", + "hash": "05e6d9d41c1958c758638d48e74eceb1527c4c7a3f3a7126092970fc4dc01646", + "salt": "6b5c6ed391c5c3a45fa95c69896abef7", + "n": 8192 + }, + { + "password": + "22689857db315745d83f0e086494a75992c024339fb35147f04a0921775e8b44c0ceb25fd899bfafec5537b78590b9a1cd6172a20e3db9d165b5afe749e052e53ad3e6aedff44db3fd4df45f90555432316c14816eff04fdb4ee3cc2cf137dbab845a43924fe35bd90241200bc3bd7a7e3075670d4e8030c95321f9bdc7897c54a1c726865f4ffb81468940d9a827801721a0331acb1d321ea1ffb89ec61d7c8af387b24f042a79857481762477c014da23f0a44fdc52eb0b2ed4fe1b3b5eb97bdf25a77f2131888e406", + "hash": "e269a37c741a5de864767e114782699c1e378f10a9d1636820ca5c5d19a347d1", + "salt": "174b00b051508da2f0fd920950742952", + "n": 8192 + }, + { + "password": + "ef3c71aa895f315578435bcc0932788817bb383434b5ae41c6349636ab2f80e13aff2eec6aa2a45399ef8adfee24940d4e7042b6961fb86136eee0d5c85368bd07e400d4478588b8b4fa66199757d957831e5185124b1ad146e57eea955e21bfb23752a9d855295d4028de74d03a584fd85565f461bbca5358fac940294cf37e3eccb6d7b4e509b27c7c954fce42d3c74e7aae2aee21b964578fce25b3a7157d2ae339f06f0e2f4424a2d60611b64a25f8e8", + "hash": "0b70e00436f7bd7a940c8e5aa0c04ad2212dcfe9b2e9a04ac48b1e65f310c859", + "salt": "9f8c3f7c1bb2a256eb6c744a8cd16946", + "n": 8192 + }, + { + "password": + "70decc514e45a89fee5a4d929387224602a94ba5bf0ea633b9f1ac9985069f15cc8fdc0526b1a0f5e61ffd170d96e801be4b600db5a4d5c52687f09bcf3b47aa5e348df37b1552f64c7bf3e5c6110a1081322c21d2782e35b3f31cfefa905ad3f92142b57da8597686857ae0ee4c0e8b37c290f22e50e0476996bcc6d19d8e3c04351ccaf02dd835f3be897e09fe4cb8d8427fccf8d8b688ecf3dfbb205bd99e6c213a325b6d1fb2a651eeb3c91b9be71069682423471c030d78e77f1693e283655e3459f2dcc731fa249cff7cabaa3792dfa0f805b69c787407e2d366d8b576c86952936134eef8b86b27bf97fa22920164b2a4d44a616db940a4da93368fc1c86f6fa9c1df2207e278", + "hash": "461006e55e1153e998bd1b1706c4df38884960a36704d9a631bfb5f7594eb446", + "salt": "10c124a4f922fc3115a171cf9e16e274", + "n": 8192 + }, + { + "password": + "554080431267c437d4b860bc3f9fb51eb920f8c1db28c486f6fadc3579121354f53f5f167a827f10fe8a44ea511bea78a3dd5ceaa481c6941d5617fd1741d7c1c75d782f97e122e65639d95f834a1fce197267875bd1c2eb9630446c1203866efafb73619f0545b36b11439f8d4eca32b92e2229a7185607c030bce0827d9c1cb03b3970fac819459507658b3b2b0d04b5325895d511d3c3652303ad5d97ab8fbca890601326f3bc6a8cdeebfbda", + "hash": "1484e2e588281e949f32ec841d8c057124a99a4f16941014cdca3396779e5f48", + "salt": "f0691221ea1fa0a2a8c2d6bfd898ce83", + "n": 8192 + }, + { + "password": + "e6c5f9c6235492325a2ea9095d3e825cdc824195638dc41b2c9e3a6bc6a7d04ba370a424b4342e4e3a09090b4b41bb61217ffb187a6714fb1e0571262ec743599ef9709e31462d294b5e76dde4c11dd17cd209325ae5834e60e7a95cf619300d90900e015fc5d80609d23e2623913b7f51d922987e07dd520ab315c77177910185139f2d01f9", + "hash": "a41339ba0d7be7925aee73bda53a7373e17073904811445b16d8b4a6425690ab", + "salt": "aaf68ac79707cbf6e7b7dae5608e1a08", + "n": 8192 + }, + { + "password": + "bf02270182a36733ac1b5c2005296242a01fc862dd35747646501ed356114531df7de058f351d35c80cf42f95cf0011192ad915b0dc83a3f65d398ca21e032a61737720cf9f954bbd1f61b3ecff2d50e8c96b6", + "hash": "8c2a85ac63a3cc42b5a8cd04b63fbb14998aec3eebf4fe4a22b49a258a94fb0f", + "salt": "21ffecb56f61c9ea2e3706a118dfe8f6", + "n": 8192 + }, + { + "password": + "80ba9a7b776990d9607987a98b423237c0ce340a2df4ac40888ec1fdbc59346d5a1cae9149c7be914de6460ffd89b4db4f47ef02325d5b609c28683df229e8a2e6d1d5f8e159a5efb892c5c8b38aa69a1da7f7eb46690ce78d18ce691bcf43fab31b4228aa0056a232e41aa76b5c83d4278589968f67b9d29899fec23256f960af4498f5ee281b7ea04224bab24bb34383c06f003ecee286c9dd5b26e9d656109842e0841ba77c4f445166dbb1eef5546ccbb20fc8ea699593d03fedcc3ab127a070dccb892774cf7aa07570f4f2f3073b8e06b2a9b65e6e73e8c7460bbf91ec058bc6d6", + "hash": "e72ee4dfc46e0b786cc0327aafd4a550ee51bacf42c7e9d9a1b0b4618fac274c", + "salt": "a3de7e5a2681ff102987a30df7637825", + "n": 8192 + }, + { + "password": + "40a9437b5816aa932b366992e6bd55cf7a8171ebbbb6b16528d3158213408da54dd693c31bf450988f3d259f6f6a80622aced299f8c2cbdb7f3371813e286b4acd35abfbae8f3168672441475712d60c2e676a16e8e5b7c7720c5a23780fcd4c0bedb5d58d07f34b13de1a113872d655022e7d20eafcdd35bc5296eac1b6f7aa0dc6bbbe1189b708ed4b08af3a38db8423120f3137aa4c430db238220b5162c967d6b274bc3d3c474d3ee75fb17a49a3a61e5c110d13217ecf487923abd1e9fd25e9083c2be2638efaaa3bc840da74e585fea793d72f49f4c770a06ffe795bd5d57567ad2cf2b78fe85525d4f5dc3fd61738b1cddd26", + "hash": "f0e41ec0596dd5e5dbbd30d17228474fdc78df2daf376ae761d068b98e7266a5", + "salt": "fbaa15b7853f4b8bfc3daf9ccfd7c6d3", + "n": 8192 + }, + { + "password": + "98a8c41ced58bf367cae1167a6cdeac80e0ab6d5dd3e3aa997fe883be8e2d526ad9d6e30c482fb25e3c21ecc29c2e82b4a4978eefced9b6a890b63cb23bcfe6c6f4614728d0f6c0e0fbfc1", + "hash": "455d707fa233d000572a5c0c22b3918662b1ecc7bac81d18c5fde9da3e98c158", + "salt": "9134198c35df352a96fd7873af21b109", + "n": 8192 + }, + { + "password": + "aead2573a0f78f4f95defb2a55582d217718d08082d65ec4298b4912e5f298ca9e2a0577398ff86ca31b75cf7ccc6b8f089d3b1f1cd21eab4c31d333ab042736a9e8d2d62455f1ab9d2e280f73db16be1245665c49ed62bcf839d2f296baf0ea293f7b98bafb3086d6416e92cd71a60390812380c9133549565fdbe9fd929ea84d0ca897", + "hash": "aecc9c893b7ebb33a0a515185331d321bf0fc1009f7ee0c1736dd68384ecc649", + "salt": "92c0e447caa0524b956e9d76c91bca98", + "n": 1024 + }, + { + "password": + "9d5c138c7f0fbee4eeacd891f2540ebbf6aefabe70d94959505d8e03c0b979b7d6df4ff558418b5923ee562d828f0081bdb6c0acc8d091315b76ef067098a8a4ac0360954575ef3f58b6afd1d151e066f4777ba1", + "hash": "87406391fe5518fa2d65fda1be719cb57988dd0872905113530f842f07c93d1a", + "salt": "bf6ab372e86273ae7c73f69acec0631b", + "n": 1024 + }, + { + "password": + "d846396e4567eb7a7c30e75798012460e8997b59bb7117987e07e795c46ceb83bed2d39f5aeff37575c2bf961c60fef6523728612de648980b4fc03ce7723173372fe9c8d818f9ae8011aec6f8afc94ccc4c81aa7afe42d53e6c334cb407b7533c51de76b72d466bc6fade7c6ebfa75f93fe29d4e5014c320f8fa4dcb70e1c4788ccdf9e1177b3291c9223204e13fd5cd2f2c0aaebe5585a20b7e923fb6f3b1623a26f4e908e34e840517a23c493352d57ecc4c9cf16239f706097ae13ed8901a3400f53afb1c678804f3a8ab3d25aeb92595f07cdb906c7e51babc9b7c481de78259adff74e3d5d374d203e10816ca1cf61573b7f35dbe6d8a3c347c6af", + "hash": "d66fde0dae861198d9d9df47f362bb8d6f104a788aaeae93b549e5999d47fc32", + "salt": "42bfa54637e54c6653faee50a69539eb", + "n": 1024 + }, + { + "password": + "80f4b6eb88e8f6b8c78a3eab7fc5c66ed19970e644d4c4945576d3581815d1432507e1b5ef17a4affa6d5257f9fa010f67b0c2ebe7f945e89eb58e", + "hash": "33c3799a94caf49e7649c538888b366d1c17782514a284327534a5d9d2ecb443", + "salt": "bee514e37c1460470b907e5d0a69b0d9", + "n": 1024 + }, + { + "password": + "3db8a6bc28aaab03cfc701a29c78755d376ce815cc04ec725bff36755e75501f1ea69f5f7ac775bac8357e6125c45b8913d88416092fbf1bf3c7cdf95a23979e2c0c103f901b09ba14df128fabb8fd64a8f94ca5cb868de3ebfc0a16c846e5dd15d84c20c24b6c7b15d1ca583cb56deffe6477b309", + "hash": "da499aa8edcd0be9bfec27e8c5b5b0e761c34fadd7167b20a2e7f231f1ca6299", + "salt": "daeba558c52638ba2efbbd5b1818cb14", + "n": 1024 + }, + { + "password": + "f500846dc5269d5a80b18b1def40f6438e651145df888591c3a1a74fe5284bd59f14bb81c8b90c276b044587e59c51e7c44de4c3498a89352fd88c7580717f84550cf0a7e3de20414bd89b01520c54f0e444b1c32cb403", + "hash": "06430ce81e71e99b2c45a7e8f812d5c8d3179d2963a5adeab2a74f34fb5371a1", + "salt": "f790cd17f1fa2a6475f264bd8927fc8c", + "n": 1024 + }, + { + "password": "0a56e028a54ef077e0deb6f4c831e87f9d78d2912ed1", + "hash": "d38fc6a3f4fb1e2026dae6e8bcdac426cb4b5890f930e63191a0d030c0f54d39", + "salt": "ef68e29268ba2b0c67d0a845ad4c97a1", + "n": 1024 + }, + { + "password": "1655cae52fff909eb515214e", + "hash": "4a8b49b628f0530816331b2de2ab7226d9aa91bc869acaee64468739b22011b3", + "salt": "436513c8d11dc494d06e25f355c74e6c", + "n": 1024 + }, + { + "password": + "321f4df568994477acd3fc4d20d55192250f3a0068ace30dea0923d441897ceff47215cbe24ebfb978df587123e5b88d07318d10587a61ae26029d4ab1a9bf234c6e9f5bca0cf2f541f03ff74562f02609b92a42960634bce94a233326a2c8a8dfc11a6b3448f61ee2a16e7bb523289b2eeaaa85e58a5432512828750316a6dbace4a2873227d5859da05712c04b", + "hash": "23f61dbf3006694b2f491fe24802c33bca0f60e69d943f3a4bb4b75cd473472d", + "salt": "f7a57e80de404c5a64c6ea73fe5d827f", + "n": 1024 + }, + { + "password": "0243c5ee6153fd194da4a6e3", + "hash": "63676bf44f8b185cca7fca4c15bb1a7b16b3c2db32cde841242d4c0bafd5b3ea", + "salt": "13f02c0436282875a5ea16c000138422", + "n": 1024 + }, + { + "password": "b530c436740321cc0e177ee4e730e61634970cc669b36b5e381ef6922c1f", + "hash": "b5f9b15fa30a718cd83967d9c4dc12ebac5d6fea4e6f71c5bca4e709593509f6", + "salt": "a1aec8381b8377f460f25b936d0a6742", + "n": 1024 + }, + { + "password": + "a2fdb8ebf4dc37ce6f8e9bb7e7b11a20414c463686a0903e8693caab057f2ec17298496633dcb3537c1101a1d346e739ac51987945abb176989bc5d26d9805a27a1aac73319af721c5f6a8d00a71cbfe04b4680efc1ce6a6a09b01b455b634053e350b4025ff391168a85ace417b2fe2da60a8cb13cf04be322e1b5b82a1a962ebe526fddf4c4e931a042e140bcb895edb1250e72ead65bf73e3f4a169766654e4d94f92713f4b80d3584c89121a72d08dfd6772a04030f8d430ae68252ae451233fe8bb1103309d862819964e81bc953ed348def1d0641274c3187ada232c77f797d0c93434cad8747fb92ea905", + "hash": "3bc9b2d246db93f817b80fa73d394296af84838806f778da9f9c9dcb84d034a6", + "salt": "38a17c65960ddbc73ddc114ae34bf612", + "n": 1024 + }, + { + "password": + "7a02fde8f59f985d5633e635aa1f2ef010e9f05d5a4ccf85ab2b920e71463d97b6a23ba1709505234aca3ac9a1dfcfb366bf7ec20d63c3d700a018500e90b6cc1ca7fa1ffde2ca73abeb4c6f6c0c5e58466c03f23e34349e5f62cb955654f99a4865d2c781e2f61196b8e4f34d08bc922adacf87137d0243792a09b361d6d0211911d4ab4b60ad2b21fc50c085bca19f9a57bb97a29d7d2198594db5841cf6f9f55edb32a630c0037e11929a38f13300ade215c2", + "hash": "745bbeaccee6d1b618121371680517326d02e9efb2e8b0e1e651bd91c4714f32", + "salt": "a81d2936dd9c8087a7006c6fb31e8815", + "n": 1024 + }, + { + "password": + "15e94fe65c63720b9a9616db1f13dcf69b797ff3581d54a05dc9ad9cc6ff106d63883662c34c784d2ba022b724c60052399b5b1f96d08c7e6fd140dbd6437429f0a95bdc472e81183423fb2131c5", + "hash": "67cc1017b48f8716ff3eecdafdb5975cc12ee428b022cc61e0f4002b212bc5a4", + "salt": "fa0c8a11d43a742d9888a94bc0bbaa07", + "n": 1024 + }, + { + "password": + "de4a4fae7bf00d6d9a671ed01e3f2fa12bbc8589fc78e2437c7df1b0e65a2a6ca8ed7def4cc858106fed6e3a491c2c48a46bc3701c49b114851365aa6ca68a2a3f6c9c31bf392902f8bc4defba81bae3bec0a2b52c0aaed00b5a8765d5ef07ba55be6c8fbcae3dab2536942cf08141f21f", + "hash": "5f03b79644ec66039cac1f47856152776f9ebedb2d9ac5815abb82006961ef2a", + "salt": "edcfff35a6c2d3eed990814d21ff4c67", + "n": 1024 + } +]; diff --git a/example/lib/test/crypto/ripemd/ripemd_test.dart b/example/lib/test/crypto/ripemd/ripemd_test.dart new file mode 100644 index 0000000..440729c --- /dev/null +++ b/example/lib/test/crypto/ripemd/ripemd_test.dart @@ -0,0 +1,48 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void testRipemd() { + for (final i in ripemd128) { + final k = RIPEMD128(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } + for (final i in ripemd160) { + final k = RIPEMD160(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } + for (final i in ripemd256) { + final k = RIPEMD256(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } + for (final i in ripemd320) { + final k = RIPEMD320(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } +} diff --git a/example/lib/test/crypto/ripemd/test_vector.dart b/example/lib/test/crypto/ripemd/test_vector.dart new file mode 100644 index 0000000..b39e73d --- /dev/null +++ b/example/lib/test/crypto/ripemd/test_vector.dart @@ -0,0 +1,528 @@ +final List> ripemd256 = [ + { + "message": + "98c66d857059a20cb226005dc8572f690e2035acd41f7ff70a5aff7f21fab212c179ab900915c2e3876007ac17d93ebaa50f39c54754e14c2c0e3d1288f68795fe442b2549111f22355311eaf7fd6415c761c5b5c5ecf4605a5c9e97f3c2f316c81dd714da5c0c2f35551eed377095c9124e5bd64004f8fc4813066cbf5c940ac84258994c4c5d7f578de99b5cb521611a570f77da559d053e73194ad3a7d8cd01688f0594c54e5e35e44ed38ecdb9130a6aa2cb8a96f4298c91aad9f18cf389f4dfe45aaa01777c056c5e69a1ffbc9bee5f1376e2882f669871ed4878f7860699e1c9dc9d7a31", + "hash": "ce1438376e31b05b3b686a153e3af89effb0ddb4aab829669baaf67f536d71b6" + }, + { + "message": + "5272d063342bf98bbdf767a4394a9ca1f2a4b23fde4a77c393044957152bc0ebcc23af421aaa779cb6719ed0d72d042783f78f60b790cab99843c76533ac742d6205b216", + "hash": "6cd3fb6f0e0e48d8652821a4c3e20273e8964aa03de61e9f4906d76b34591ee5" + }, + { + "message": + "1e1f2132440bb3a7fd49320eb5ee74659d52232317d4435f2262b48dbf0940bd997c8bcd14a6209a2157cadf479c51ddb0051f01ad47d40ef9203c2c5e15773141dd1c8dd2ffb636cae3b0737216606c82a956a54845f30311fd1c632b3824da9e9ffd319e5c55ce039c3392895776e513ebe0cb2ef5064f178d0889b6a51295a8ee7625a19b345ba678e5d3", + "hash": "51260470b636a44db962cb7227c6cae5201d5ae4f245daa287961c097fd009fd" + }, + { + "message": + "5239495ac36fd7c901e5b843b7b224f9c5a747477fa16bf042b76a1be5daad8f0c1018a34ee9c002ecf96c6d2fa9e1b252613d321c0e85aac07bd96838b43c9023ccb3f91e75316b986744c25e7812039b9025c0f846270e5151d8b2a29a3bc1421cf32c8b63f0aef492abb1308844f54566ef9bfa4e8b97318e1674becb7277988a62860f25b9a60d59a1098bdb0ebd9140e945d16d1a6427d24c66d2b3802c613273e363f4e320acaf54faf0c87d9df802115d3edb0af929b321fc6cc86e7a34f9f12a6fe1c4606d09a695a6afd8a2ffb05ac9a178e03f", + "hash": "73abe4ace3e4861b243d1252e2b85163680ec6aadbd0403934ce08d3ef10ed37" + }, + { + "message": "5acfb7aba3bb837c07358f2791", + "hash": "2684f634f62163c7345594aede8c66ea1bc0879c36e2d421c55e9797920185e9" + }, + { + "message": + "33f69ac664f01526d99f844abab1c9a6fb6f35f086e45da243dc88c44eac18ff150ffba565fb28d99a73d4af02ed53a42802ae92192de25232252b333a6a9cc9ed4cc0ce42cc5ed916b62e76acd73f", + "hash": "1e886f34bff25604326c8fc2290ef773a202a120d904dbff712c9214b0c5ab04" + }, + { + "message": + "ba99b9af5d218b0adc8169c568124601523f783486f34c62a6f0e8282493230a116a6803b4461ca07fc7f7d7e5df86", + "hash": "7a3d39401235245e28b5b603c643bb923fde9dde34ecdafe166fa579313c64b4" + }, + { + "message": + "7492ce731b6d169c7891e3ee7dc6fa81c1f8639f63c7da53ed1848ababd916b2437ab4d9dde539d1e3", + "hash": "673273bf3a58f7f8a243adab2591bb3c1856765013513a0741a953b8d91e9a16" + }, + { + "message": + "36af858d4e4e23ad20a52bfb79844539fac40baf0a5b5b414bf27ccc24580146fc8252953c17dfa5e2e1ef6426f38b5602af75ad41f0cb7b2d", + "hash": "bd15ebedcdd87670d12143c77f7ba3800cade254e8f83c80e18882df409129c6" + }, + { + "message": + "955f7a23e14816e7a21d630bb9dc3ab8516f996bda609fe2d088ac2a4011c766419794a497c52039a73f17d8d6381b473a3b", + "hash": "5a5c5c83bc52fda7819d017603b8c03fcdaebe81a30f72d0e5112179bd271e57" + }, + { + "message": + "356de07cd05ee1ed9c40c16721d61f2617ce912c3f6dc164ea3c5ba70d20248028afab2f895eed3d3c9b4bebfdf8c19b48ba7e525c46c89e103f62414a9039c0d4153e60d198e01d954b173d1f3f35247bd2a4f7ef4f5352457f39e98206aa65687578170e76687e4225be0a62eafcb8d3c94e8741eaf1b9b108a6161766e0389c2ca28fe419ad4fc80d1640535edf13aeeba9c8d06c6247ee25e3ea75fa68596ccc20b671f17dc62b63db4baef8498593aff0e90bb2771a914644baf480a4c234fbae89b6a94a5f67e2a9d6f6b4c611773509540633b019ab36ed21261b5b43886bfdaaa90370de6908e7be3d84873deec3d13816cc951c041b458f", + "hash": "8f7378056e88548d7175c8214feda48b2635e6d7fa42657e754105916ea964aa" + }, + { + "message": + "69c339ff66b100760a3ea6a001af486ee36516404e4e0dff8328d184fd6a53ea5ae68ebba647bb6e70c4206d77b802f9b73f717b5024aad9663e1dcd9130929486142f09fbf38432bd06f4f433754d558c6b684b0acf8839f71e2273ac4a787140611de2132fd32085b85241eb8d93e3e7e331414a7cf3331a3c8856e58b17ae84766f1d0f0065df13faf1762e072b365a7dfa6aad339e1252600d08080027fb83090832da68a2d336cbd324", + "hash": "5816b47c0f6a507719144c17d15c1220d7fb0e5dfff95320c7b2cdd756a7721e" + }, + { + "message": + "f5245fb0730cb17138e987a80fa6eb1b77fef0f8dab528f3be18650a9c13d3f2fcd3346ddcc350f025a0b6391c1d4ec3e4dbecda039e937a4e3644ba8d005eeb3a723057156b96716a607c8625709e93b6e61ad4c398f18601172eb07db674c54c106112577f7a95eb3a9066de1e52ef0fb7b7ba11927775389119d62c34182bd7068babfc4ff5b1cfeb9b3d130019fc3020277ea2b3dbde85ed25344e1a56df697dc44b4184eb2066ac1f748d55da1b208ff40296f845e737215aee340d464f0237a403dbf191ee1a875c918420ef2207c82f21a55ccbe6bbc88be2062a49b9831f833a01e839cd451965e8e8f812c8", + "hash": "986db200ace45fb506c4effd266806c749e6e1a43c73864b2c7349fa3d948456" + }, + { + "message": + "8d22d3aeb1992683ca307b1e58f84ff75aae09103a7b43578d12ba856be3d9d9e4266d51df39b75d55c0f2c55a8e4adf2af9079bbb5f7dc11682d14f0cd4012e19f8b5a1d885219775c5c3ee56ac0fc467b9eed299df7e1e4d0b2c6f9b270d0b0c06ec593631d36f2ac802f0270d8a337c0197fc74953d5a89123769d316cbd2080e523e3229a9251986ce860d42e89ea7dcd7b6c29acbd0f4603d3673a9b61f8f8557eba1ed459d63d89c662e15de6dc0ba0e5a62734e072317cc0b36dd910ac48e471f457ebcbe88b8cc0d7b456ff04c06f890a052313b0a9509b797fdb0cc1e6cd38af23ea78895c380e0f82cf85b75188674238c4d671525", + "hash": "17814487fbae8b55a60e1d3d2001329d82909cf80e6a491142f4131c3f3094b3" + }, + { + "message": + "e0a0eb9c6cf0667ec7315a6c213b01c119ee24efcbd6d7db07b5cc8013d591523c87e482762028de573145e68d1cf74634739a05007b3990a86d4fa2c960051612a30200dab3557c19fbd10d140aa322a155eb429f117073fb5acf7d398fb47ebc2b6a8f01c362c4b487366688c388", + "hash": "3df7e9f86c7f6c22abe36086f7f55fb732afedcc60a32ea64f7d5d17852dda2a" + }, + { + "message": + "90ab074875e2050a05d105ae0d674ada291fe025977180e29fffe7755bd3b47dfd66499e09d37591749128ed293e5ecef2b981c15cbf85d9ac849625b5a8ba2491cc2c5bc615ef4e614fcf7f25e1cbcfa1ba134f2011dfcfcf4190b8049d6f06613ae1bb6e2469aefcf87a57df782e9093c545cbd1368df6489b7995393c0f1817d916ebf3e8013ecb51f2fcaeaec43cb9e82bb8b55cf8a41878cbe41fc9c8e29b4ea56e406805a22c7080426a54e524b8a493241d8cb8efb7fcdfa4d6c11aeccd14b7b7e1b08e89617bcfccf0c1a78c07", + "hash": "b1031bdd892ccc1cd42b531886b0bbe185985a8f54acee5bf13f03a54655b906" + }, + { + "message": + "d91f6734dcacbc4b9a840a324fcb36bfd3c8608e84d78311c92566e8f2ff052b4bb737196422c5506a30afb27b3956957009e48b43b2e06a084eb778db6038c87a5e64ccb287370bd561a3a3e51d5e8c0554ba324c26c6a7aa700aee29e9375d7dd4266332dcdda38cc6de7e5d64f8db1da67ae5146a9813211a566e20a05d9f309baec8d2fb9d5df84f6b6dfced10d6b897a65b0b7618256a64847e8b5f04cb280eb21f2f58fb50d7fbc66e6fa857af385ffa0a022e1b8eaa2702b1e90eb31f9359fea0f2189ae45a11dfc0989f277c7ae7d9", + "hash": "f149cfbfe9b49ac53b03aaa2cefcb0e46b1b0ea09145926bc220ded6691f0487" + }, + { + "message": + "47e36f198d9a181b5071dd31ce93909ffb8d4102e716d7890856649605f626d30119c1281f4c17b132c214553da8c3ec68c9cb6573e37f7f9b84e8a97ba95f34e41927f9b9f96a5d73e74b23f5c2662f567cb83086a6c6426865dc5bae46ebf4365f205dc54a06630ccad0203db5b4f866", + "hash": "43e16e68ccbf4802b53daaf5cccea16ee6d7faad5d4d692e9d64c6a6be924a38" + }, + { + "message": + "c191c0f636c96c0c7f68a559268860af08e1a566e2ec958799cd198324b0fd483b58fc6d3f59eef21abfc2f9ededda902231418eb496d915ffef5fc81365046d8f0ec2f142b863b9da0c5842f796d11e6d091dcc71b6bac25fe3b660365212e1a8179699295caeb75eb0122c28a3f06f4f34847e9cd74ede4f8708390621090d1c97e9ee54b54e734b64450640bb826c20336057c2cbc404fb6dac00b8b4536842399fe024907d9978d7daa3c10e0f70fd6f69bf0cc62fe414162207abc1d93b355f", + "hash": "997735f15b1f7ee8539d3fa77b9dbe27c621109982fba461571065e76daf604d" + }, + { + "message": + "65ffa43d35f9aa382ef2379355b741a9515904ae825f349b7780b0e9857e3e5845bbe6a4281d67a05bbe10cfef04c10a4d702fc7add8378dafed6b3853cec4878d667744284daeddcc343e73b003e678c4e2a395b27e534fac7898ab0684c5b872fc335b5badf40efc56ee7921e40a386140b125ca03f0430f90f4f5ddb6761c6cb1f9623c7b278a5570995fad9cc8f9714781417852aa78b585cf2a6d89ab8c9bd3481ca8aac99c167adfacab2f6fcd58d8c8db4cba76b40ba0e2fe0c59", + "hash": "e9f19825f90271dbbfe10c85d1189aaf3ec3246356a937cd2dd58f47f732424f" + }, + { + "message": + "d607b48a4108428d5dc2552435351eeec70d39110645cbc9b4db050f59b7c0b38d127512cdbb0d1dc800cd59e8f18b83f2b7d509144ddb6ebfaf39e006f24e5edde3b832ae98fe478cfa455cfc09d625480d784ca044c90c32bf70e429cbcbc29598c589ff04ace0819ea55f38380636ded9e39a76a197eda73138695d9203e87e4b91a231bb3d5f263f8b0093991ef0aabd09b798", + "hash": "666479f7c64d488ac54a294e2e6f282ab01aa79a8b92616f10a1f23fc4c8eded" + }, + { + "message": + "71f9c4a114b192096640242d34234950ec176d715da74c73b08bee01f142c39f45dbaa6d47a415", + "hash": "8cf4b48550730a7eda8882333933b733a20e1c4bfb337c957dc1c2131ffad59e" + }, + { + "message": + "75366d59c4a45534b1d5ada3cc83311ce993019b1e84079098fffa370e19a4997b27efb14c76bc89b258b71c24df299896b11bed82f98b3c7e29a0d3178f389095dd9d688d487392987db9af52e47443d25f49f278bd61e6c9c8eda5f24328a5ce332c0c41f3f1643562b07ab6c0ee6e9a93e8a637b8d665c3aa4dd331c4ae8f0c1d04d8020bbcbad9c4f89d11dcae2a38308bc870a3779648aca5ec8656a1211869c493630bc3b717f19908253c00e57b4acd14b16a096716444055a5af5f9168b6b5cf8f653f0e0691d4ac3091069347525c1c30245cff224620", + "hash": "141b8740a5e2adfeac77bced7e38246ec1646a10b0161dcc7e65248eb5812000" + }, + { + "message": + "a69dba1f4d1172cf680ffa1425c9eb61de3356a85303de77180d16d5d33d5aa7df2d90201b16396d08cab949cac027c3b0a39bd649b3cb32609c5f9f3718a4c92100246ac757627b6df7db1bc63ee2f303efea80f07d9bfc30058664cfe43adf099525594b890c509126450a215ac2d5f52619b433e5321cb250ebcfe3f0d48f63cf32eaac2025a0e070ffea1b849f0a880c98685c07af3c3ea92053d3a82a537c0c36552729ddb247b4aa5138cf84739c5ca1010dcb5e051ae4323132d4a6056ea10c1f8def05eae2acca91b5fa3a7123efc6adffe55ebb13f6c5d25ad6", + "hash": "c1b4b4aa547ade987192210b92dae2b62f3fa7ddcc172080693e9ea30cdd7b73" + }, + { + "message": + "30b74d58fbafd45be8466ca6e293b180aa06e20afa7950e3b5a6c8e195161cf62fb951f6adc73dcdb8a8dac97ab7a76ebd4f7c1a2a4e29cc66aab6c449545bf3956b32505dcb765d9ed30ec88a1cb171483c17760bc69b752539ee1a8fd1473e996f9411e12ff2019b4a7ee8102b453c9d58ef4931f2ade2222e8d7b40", + "hash": "5220cd647b6cf2aaec8df1cf66b8a95701fd584ba3d970c37760225030011d92" + } +]; +final List> ripemd160 = [ + { + "message": + "8652a3ba1af4bfbcf1cefe8fd950f409359aa64f656323e4b39a241085da2d45cc1c0289990c859cdc8110e704e6c7ca01401da10ed89e8bafd353aff99e6f360ce1f1825b0ac370bcbcb8f5f7e0dc46131181dc890f6748d182a47c942785592305f395c364ebbb6a34d17019f0e06c29ff1dadbf8bc62c57a674801dd96a49adcb84c56294a1c4835bb3642e95f2aa3632f78bcc68892fa60b38ce0532ae986162a38ec3c90d24a7f16274041909618bb5415f2dc2cda1e49b725bcb21de3e6d618b344c1eefbabe235dc991d38e4221", + "hash": "94c58003752916ee99de81abedada947f9f856e3" + }, + { + "message": + "19faaddc238c91a473635a3231ded989cf225e37169785438bfeafa21733db9b06ecdfe172462288f410ce8082df05d9ebdf72138a209cefbebf78920e3eff91a85061c7d6785bcd58a903084c958878e7a05e93a1655deb374d3c3d61a34951e1866de803cbe0a39f7e488eb035f51e8677a402a896f23545b528d82d39c0", + "hash": "2ce40a1bb6a690d7ee00b9220fe28dc2ad341582" + }, + { + "message": + "6e7e5f5aa70caf61af1dd4702f8f1db1a9e17c5e267a362e845bc3a3a61c6d69a47093e5e1bb42b46e7447e241e70842f0d6d8b1aeeaa0f8451d22f1327e1c85afe79f111a7bef4c8558ff44dcd3f01bc9f2e57731946f176855cf507c34b707123ed7cc0687b9fdebcd4820dde352ecc4ac0eed3a840e2f526b063ae239dd166cfebed49f30927301106e8ce4d31df6c84c55078560177a61c2935c4178896478a180a203bc6bc43fd070c0cf29c2ca31a002373cf2271f183eeafe42ce3e33a851349077495728bc4934c50beeb1c212962618276ff189e56336", + "hash": "eeb416db071e3b0f635ec36c97c9d51a992be9ff" + }, + { + "message": + "720b89cd555fc3455b0bdc61dd117fbc640b27e81471c6c648b8710714c333def6b53400cc08a9369ac82c365130a932c6bc2b07421099a0667577f9f383f355a2ac3171f0b7ea78a10985c604f06590bb34e34120caf72d8c6bf5e0d62f8152e44fcf2812a0d562f2425aef462089a0a48f50298c1821d233da358192edf2ad624b", + "hash": "85d5f580f74e92732a87fb800e00c55b7f6d4b5b" + }, + { + "message": + "d67366a93f7d471bea202bb0f366f9febdfd10ffe25832102e6104b1886abe137f781f804d84a0b743a7f39d0e31bdf5db9b1c69837bc62535943ba1c0b147706d16008c1384f4f0fdbef67573cb41f5f8d93f94b4d2ee62ec238dc0ab200f500b7fb1f9f4750ad18aded850002cc7cd1f8c457719a172d0e1c11d8cef2aea68271556deaf15f9477e", + "hash": "b20ded30d924a55d45495eb138e92f3ef8e3c279" + }, + { + "message": + "769d974f0bdae7ca9dd5998c1076540b70a99256736c1d6e25231c517e4c9c5697ac51bd3a4edf423fde6cfab9797f608c66293dba867d35bc80c4fe8716bdfe604403c23c32ee4695da9beedfb93bde6e06fa6796bda794c47ff47feaf4a73099339a1974b8c221b6b77e520649090591bb89417f4b5b0eb08c1fc8ced815f9067b84c044d3dac09074f5e0cfdefa13a1ca39b20fcd8a1d41737a305eaa7f9a1d76fa109cf24e4a33c4d11e1e", + "hash": "f57042a0320e2cd2b3ed5d614d2a3c2d1e65ab6b" + }, + { + "message": + "f6cd96b7ac8f874f12664b4536a921324bed3ccc52933369cc0b15333f8c9e7b4821d7f8fd47dfceed56d0c4ade524c5b9f56617f0486cad40c645eaea06594a0edeb063ad2f14b6ddb75e33ba659b3d8145a814e3acab2c5c243ceccc6e62280ab7edaa9ba1419d4e1681103003c61f0bbb5e6346ff320742e28dab5b170f02edb165fd2f1f3c77bee70d2adaf4ef4aa8d5875b5f7e1ce56dd94ef434aa2a2dc5b846ef2e5d60986b8819d53b72ff54a3d2bb11cf59a8b0e6aaccb552f5c467036a72b8d2aaea706e76ad", + "hash": "983b8474bc26a52656ea1f7ddb1087f1b4ec3498" + }, + { + "message": + "0cd34bb88a207449db4f1ec241b28503b2d3278d1555c1adeca23a4d6778076c1f3d1ffef75c8de223f6745c581bfe3b545135b719229e8818dbf53d29601074ccfc1b1c9986571ed452bd65f89d1936b8f3390b12de79058a69a9b355c4b977b6429e8b361eeb474b30dc7627e13bc06173462a1a683037570162ec71b8e10f77ba834e9dd4b2866809a539afffd5378f1e3597857f010c9494e4f615576d318e3d38c90a8903a4866524221b3ea0261bc4d87daf990ab8223dce26445e84f818de5264af2460b11a6e1e4f395960214dfb5ab63f62d1fd88adc9a9b228d250690899a5f90d1a60c3d76d345305cb43eaba4d9067e2f571d2c768836ba32496e5", + "hash": "750e477e8f4df06957627abd580bd28ff143569d" + }, + { + "message": + "ad842496075d98790b8750a899042420cf2f31e3c3f6cf08c4125bb9ba7eb2234876ae7bd3da4a1bb59d2cbbb553f4cf61a8ee257cb44027ced37f4b08de4102b2b72985", + "hash": "1d8ada5c12401bd2a2e6ef37c37c440d38c8ab5b" + }, + { + "message": + "ed0018708b3b45c0ab0218278a9704cf001e1b49da46f9d326d8b917c137a3e84bb432ebc1937b2c3ab966220ae8e1563a51", + "hash": "60243b0b7c9df2c92f6174729ff3909ea5d20ef0" + }, + { + "message": + "835d08343eb83f9fe1fd36f9e241122f2da82ff171fae2a8465f992b40ff6a68d96003c68ea853c8ef39546d7b56754f6091f9c515b5e37dd05f50769ca38d8a825176735a1b80ba0681139850387da386551b150f1eaf926bc2263b", + "hash": "fa58a42146812f820a339eb37aea5badc3ebf287" + }, + { + "message": + "ca701f8f5cdbe722c59ac5af37173754e1638d3badf9cf63205a054b7aedd613862bbb1337228dc9e8fe85063dc0ce15b2ea5e9dda8ff8440e693f1f61d656caf10e14582ae4", + "hash": "d97df8c9412674fec6e0c53f7bd824402da2f980" + }, + { + "message": + "66826684a240019f1e374fbc4d71444b0a584ee5b4f6426b1793cff78cfa94161ebb5890208d04b8d2", + "hash": "164763a1293bf96854452221da56358b0ef45a6a" + }, + { + "message": + "312283fdf8fd8fb9af889738c0bdc314161cd496a15d2caeacf3826f3dfd13c8ab21dc0a994c18fce565ef3f14f36d26b4743b16b9", + "hash": "6afcf4f4e81432e52b124a34de559c680d8e3225" + }, + { + "message": + "f43db9d3a950074d27d16d446a8f0c02e0c4d07a8addb982ba2c4e6e9a30356f1b85f02b96fec3a68267067611d55584f7735b80d5c0154eca700fb942003b31c2683e1442456e8f4cd0012550611bd342045462b4687ff1b71e7e4845348ec823594526bcb8fbd6e84baa4d14069dd147522487f03ba6ad0ee8af1f65e9090ad506a0fbd785ccb51cd0593090fb060c6c3537ea5f89875989e4c8eb26a6aa7955d66ac01267288e19e0071d73f49dfaaacce051214c0d990c0f0b465a0d97284e3b4497a58dc39863d7aedfc5a1f1f9f1f5bb18ce290028e571f3a38eb41a884b037d4bdbfa577121426df7610af8432abb12fa8dd324753926b5c813528ae121f2501b4c77c605ee1c", + "hash": "e4a1da1df7e3dabdb75999e40c7704099bd75e3f" + }, + { + "message": + "ef38ec915a65f77281bbd8df44d5bce997b9049217a95d48746efc53f66fba5ebdafa6d9b3a864372c8f94cc6f61f69d156c7a9cb7ff086b73a33053c853a43cc0417bbebdb8f5e9a2eaf7508ea3994d58e94bcc18d19fc9abfaec04fe177a36e778dee6d1e155f97723199ecc7a476573cd19a8be35", + "hash": "a9f6ee97dc28d23e59e22257badadbb89c62b923" + }, + { + "message": + "2fb3ca68b6bc12d8e8af89676aa29ced04bebf4ccb171498b52e875a1726207328d80248e5d417757938fa7f7b5e1b9f32a0343c5741f83271851c7d4002ea6c2924330fe62614b553a2c4d571e73dcded794b8e877907d5de42a72d3a4083936f032275440ea22e331b", + "hash": "1bb49fb3d59c2c41a8275a5bbea14acf82a45df7" + }, + { + "message": + "bfaf9e2bc6551727072884069672e8c79417d27856706d5a66e099655c1e0af729225fb5490d6675764053a6ba6ab415bd944de9f8fe1d1ffaa5126dc2a2b42ab39bc62e2e8dcf5e4e34b099e844f46850720e0d47d4154f2c2e3039cee0bdd813c0069cfbf64ba4eda9496bd85b2919b7edee1f7e915d9092c1ae0138f65a84e24915130aec1f598f8a3fbd4351cc7de4a13e75f8aee12a8c9b169b5d8bc85e77012125e994725bc70b08d8c3c8d5bd81082066b1f851994bed39479a92690f30cc62421860b3c931eaa803f5b051b8b8d219b99edef3efba4668a67d51997183fc398dd18ec8588294e3068d4303ed2cf12383d6e1b2898fd3d9c631f3f843095c371b", + "hash": "a0fcc201211f40108fad41f4345611114ab8344c" + }, + { + "message": + "d4bd513bb7b973d6a66d245294502a940e66aff9321c3910b22375af14dfebad537d726479b5baa0677c15fae62de0d39264e1cb619beabfeebfd3e1b18a44e2772fd645a7d8cdffdf8b019dc9d5308c7a1a145507713c1362b53f010a266db0ad96285d97bb63ef1e1fda7a287afc1d842df95ec7a0b98f542073e35561bba09ce464f7f57d7d5aa8f96e6b80a943f1", + "hash": "32dc39a9aba377f111d1b8f2351a777fdfb43245" + }, + { + "message": + "1cc1d0597b89dfedce2429a0dbc9cda54ae0f4883a77cd0688e4b42c723f520d022a98163a25b5b4678ad571be6c545f92d497418df6b1443846fb6b55b2784da7912b9255bcf7b1cd4cfbbce6592456b1d873b36d5aea3550ea5d10fcd15747006f9ba5cd6bcc6149919cafab56614be33ea4250e6ec4ce6603cef917e3dce48e5c2d59ca633be9b79eb9599f2c596d2db63ff3bd43c7d3e1383689adb2b2260ca2eda70f579398635b2d2d22f60e899540f08623a0ad98a14cc47bcb4fcbe321", + "hash": "fdcf9b59e003f556be80a99c5b8831b40bb62bbc" + }, + { + "message": + "5a3151df2030c9054edf918b453b18afd642b06d2d4d795d70b400aeefbc3135ef95b19f39ae4f3405a4a58f9baceadede4623de0380e48800d69085fda95a817e7d2395447ec3d2fe3ce763703110fad311fe83fa49445cabfe5f3e5a8785243c3264fa1adb736887ad918f3ef619c387ff45b204daf636b7e0afb555bbf78aa3c6503c51a6ef3841783ee28eb395d97827947ad0fc108dcba25fbb4a0b9f88946ad192e3d41b6372d0ac7504de3267d17c53dd882a0a88cd03a0e42b061f2ccaa80631cf3a874ca5c16c3fd485bd5240c9150abab8a86f70eadac0cee08f079f94c3e01e015a1de03f9888794d2b0038302ac11c7fe83e026fbff7661436dfb9", + "hash": "4151e1bb31a6b0ff24806c4565dd8b3416e50384" + }, + { + "message": + "52548329124c31c2628640cf35be96e5764ef881b290049dfbf9aa8863b98a9ce76dbf7384fff10614df4da9c172b939d649d40e88782db5e45229d50414e07bbd45a381365a27323d04b8fd35573c67e0769a40adfac3203cdb5dd21159f1f51a1e573e6e953755fa0e16e6a201f1c31abd0c81fbb150f9cabb45cb6b58e033d6f508214221fd0d7e9c9341e8ff67da186e511e3258be569d68034c4be6a371e55eef1928cc6b22b65db3acf0d58f5d91857c3c61ca7e5ba605a5ae376c44185c21f6c7f14d8ab67a7f4f9b9242cdb0066247ac6034f3270c63", + "hash": "b0095561607a60d1f8a55592673c105967225e8b" + }, + { + "message": + "4af95ccd14819c9989b18b68f29244396df97f938f98eaf94d599bfb5ae8e82444e367d9", + "hash": "90900fd7265a52b88878c7e402de635534260aff" + }, + { + "message": + "9f92c9af902229d5c3a2c9e2178b3277c115b1fb4aee735e6c26bb5b48166d0bec4af551eec93f857531318aeddbfb0de9cb8f37f7d71131127d7f7eca99b9fe19b4892e6b83d62b15ff47b3c3955dd00fe1eeda6a4b9e2eb9702c1405bb03c4aee1029fa9cd4eec801109a6cb89fdd35617b090ce3cffca05819bc765f97245b177a1a17f52dbda2bc3b7039ecf95b48e24bc0fb7924906b0e28e5cfa4c93b32c91b3a42186cf2d8bcfd09f41951d8e691e30a75081ba3f00903263ea2b54e525186bf6ace39935d0973b8a2f9a0eebdf0ea55505411a6ad5fbc05be7f98a7dfe9f84f4d7005d69d8bba45afc2c115d984678282ab0c442de9ce8b8", + "hash": "8e9923a7693badf282b2aaa2f4c5ea4665c05731" + }, + { + "message": + "70fa80dd4ff71efe6e2b80543feea2fad664b99d312318c090995dddc957cd556c347c003f08471d8386416cf6846846a63f99307d189df39a11b46faf1da211c761c6fbc39a12f4047052ed9ba363e39f8c0d19b9790d220d8ce0cdf24208e5578a4e1299ac7366da911c5f6e84c7da79fbc5cf", + "hash": "82cb577017bd8087f8ab34611d8247dee65f76d1" + } +]; +final List> ripemd128 = [ + { + "message": + "3f6d0be05677cd39efb664645a9a7bb776ce7f4b015632b733a659c65be673cfb7c455f0f05c432764ecb152afb78cc9ead5c1b566fd097f9d208ce7cbd65f881724de", + "hash": "581909931c1cff5158f981fb88fa69a2" + }, + { + "message": "cdd12951a3b87708f2f38745500331423c6cb4338d0523a716cc85", + "hash": "b7cef7440c5b05d26ab38203ffe2e550" + }, + { + "message": + "f03061e2a294f2e915fa56b9524d7e465d51668d0970807575b51e43f014bf90ac3dcc53e6c52d59516b57b055e51356f3b219b0ea263fb7dd231499d1cd4b2b5b6768b7dc51415916f4d1f6e7740228845fd76e2657e11e0945392025bc9153a0139c01fcde99ac1f0d9c2120de839b0a991d0505141a238c532e6bb0dce9af70d5c671d48bb481923ede94511a4fec3c345f83df922ba6d024acbad997a38ec9c3d1ce3534182c232ef2b3f38f50fcac43ec524106d516af72dc073e72422132d91384fcbb401c15d68f5362da0c96dcf04d17d31df744b846301688ab2b32f64a", + "hash": "0224643c492d6cf9cbf4477ecf66c218" + }, + { + "message": + "61058d5a345a137c26a95b8f6310d176f701dc27264a6d78262abcf7f62093b2afe193131b0b566dde36d09c4fb0", + "hash": "180f32d6e46c815c3c6c29a6904ac291" + }, + { + "message": + "114ad65c5f79f2786357efc1f84f704135960f8077eca844b7db6a411ea696c63cbb520ad2bddeeca380b020269e39a9858bcc3d21b78e7040d852221b19dec193842d6a2ca8ec5cd4e653b80b524376a7e46a72a9cc0bb21a83c40e2a6ee1de9845da2ee37e11b0a6cc76768e7b8bf5fbbb88195f271cb3d3ec85e7045eea855b2f3cc6", + "hash": "dee3b9ed7af3c1f567e35056b9b4d6a4" + }, + { + "message": + "e401fab8f9910c105e6eb64a949b1acba0c6182218323b5c3191a0537d574d16fed8d5c01cd1857d98dc293fe99721d0e2a239972ff5584fe35e7b201d6903edb6200e6673d81d65104c1f83b56c9af2a54f0c0cb0062f83510ea08e84a7d25883bacb4f656327aba97dce3068288d87a11f5bf78301c2e699ba0d75c2fb97b4f38969849752d41f17112bc0ddc549417fedb686fe7199a4bc8f39ef7771931ba2c61334ebd51bcfbf150c2288b36ca5faa79c869dd4d044c3cb06828f7fb6eb848dff9f1efde4ee98b5fa3a35760333d053c89bc842a17ff77be68a6c6c2f3121cf613a41d39460273a1cbf232d090784bb1534ba4af518ac8ec4a4124eea70", + "hash": "aa7884aa56ee2fa39e9f79e0f3481bdf" + }, + { + "message": + "fcd323f66916f8b59509b9a0c0c1c67ccdb089cb97dacde07343f848a21a8ac5bc918bbf0bbbaf795b98847de4d3957c0aece75bf7cbadbff2864f4e5cdd36469c54b6b3824467b7a3296f11347458942a0af67f7dec6f22aa0114eba05c850cb34b2e02b7bc9708cd5e9279bb7750612b381d44d2110b344b7ada6ab9e4aad7fc07969db5d5b7a91b765ad2e913c9c4cd23873772b03fa3e6c25a18673e05cdf8af7f3a034e9405b66b72e8c6992b3e75c31e7002aa6de51865f8ecfa5dc30fa436b29a8a14f0f3a48545964ae6b1e6d3c8", + "hash": "fc5d1af2d6cd9db690e2e6fcbbea6b83" + }, + { + "message": + "f9cda2c3f2b374fe270c546517221112e9d97204d1fdba4e5a322812a7a58e9cb9e3092bea142584dfe9bf8f258fe7ff901cb07b5a91a7f2e50c283335d682603a9f2fae16baee2150826fb6efa4f718307148fdb4d53236b9305ecb7bab8f0ffde0a6c936e99e81068cbb3f196d1ed144e18acc576479a64bb106815b29e68085260eff47fecc6915958e6ac0a2d34f45cb0d24d09273d50212a9e66cfe0e9853ae87f9f57fde8492c00c02da4f7d70f496b454cc71dd618ff16750cadd39658b63f09c86a0d8997d7b711eb948f32731f8a80c625fcf57b984dfd365d07cf9da057a0449cbee2cf3b82350c5a5", + "hash": "40cede6106fc7f24a5aa674cec5da07b" + }, + { + "message": + "9febf04ed21b483384a541d61c5df9cbaf4c4e9eb58124e8df41fe905ace7a74c23d00a190ed7b0eda22bf21a428339b9782581b74d284e008ef8128392e9ce70d013212ada4bd9dc83ac92a63b0a3c41daa0c2f44b7f50aee67b5bc410cf3942e89597c84109028d2a4d2bbcffc3fbf3367e752f66116b60dbfdf03b157e9355c6f0b432ff92b1aac9a14a950aa2bfc4130fdfb235ada13038af9980b0d8a5da202b4fe9acc04f32b6dc743941bc66f04bce2976761226f4389dafc651f6c4f0c8622574957a00c03969b5fd51f316e79b04b2725471cb2b39558a7faaa63b24ba891", + "hash": "f75f3f8f0d151232ae76314b04cc5861" + }, + { + "message": "751ffd22935df636ac39c634045f52d1b84364", + "hash": "3be36ecdbe4ccba18ff614109c586ce4" + }, + { + "message": + "954f23113b8659baea7e4a329c3dc2567f3bb9b9dd9cd317dd0f1c3d59aea6a1d2242aa02039470a7b3cbab9ab0b15c7ff2a3a5e983de1522cff985412a7ef235ca51f327e2b4b650e4db6c12622e3340dcf758209de287e62e310c3aabe038afb8952f98f6f5ed035f802b506f855cd4e2dedc3f89ec14ddefb110df5eacab78df0a61b68e1f3ad16873818f7545fb361eeba4bdc0a46d29551dc651e35fb0620cf477cbb274acd63c67ec04a4e348b17033cbdc9add631da4f8e4078ffe0f51f9f35c54f014c80f26b0ebc59ff", + "hash": "8cb72076131a54bad81dae8dc69f5490" + }, + { + "message": + "5563672d9cf1214e15e63ba6265238043cb84d2ee9761b3e1b8fe3e686d590955c3f393552a081390d4b6d91646254e991b939e92dddc2cd6c77657285614fb77ac68bdf3dce882db7aea752d0c5d1399e05f74bc68b025e0acb6a4a34a253b97d5ab94d5dea56fa3d9dc8b99eb642dc671db86a8f858edfd96f8d7fbd0783acc816cd8c5c87a584d5a5cbb4f10a094cfe01812c4faad9a22d4863b2", + "hash": "0de8c418da8e4a48358605f07668e3b6" + }, + { + "message": + "6542a8a32f5e0a96c3d2c7dd2b1544ff5d24bca92f2c9b22c54a03fb9d731df733c333ba87a7f52249a384d207cfeb76f4c965322595357be9d6cf838ca692affdb95904d1710d9cd508ea3b4ac07e525904444b7ff8489ce4c9b8f6b80b734fbf9152f66774ab110be8ed4ccc6a49b8d4", + "hash": "978a3d4f09bfc3dd4ad055858e5de986" + }, + { + "message": + "20214a5d19819aac8c87f35ce4aa48249b556d8dc7216cd74d3968dc89c1540d6c1ef9107ba6f20ada4c17f47aef150e8b0561a07a5a590a859b520c", + "hash": "3615b6122b67984fc053de4b9a0189d2" + }, + { + "message": + "b97f556b8987622aec3c0d58d3f78cf05a881f8f27a498daebd3f3fe8a89b149fd618a0e7a4ed0a99b", + "hash": "4533113295c079829a302290120eef52" + }, + { + "message": + "3b45467d51f3bbd76ee1458e210558fe8e989ea966da607044aa3c579dd3c1110c36f7b69a7c37ee81fa9be4621565aecb5378470438603605fbb2574a989adbfa73ee6d3dee10068a263e491a04277a2d3363f06ee7813c91a8f668f016b2562b12182896bf12deaaeeb45278996c360c7e0a5136533e60395f7b977181c02a7eea25e8e4b894be225e206276a8181307831d0ad9ca192b474036c91ba2dcb25f6b132a5d7c4030d420591312e307154436251ecfc846d490cd31c6b751c86defbdbb2ede4aae347f236483ca7aa503f62e7157a35e1e5f194a5621364082477db45fde3369f33871995b93", + "hash": "a1731fd4bf42b18cea22969fe0c4e5b6" + }, + { + "message": + "51e74ad12ad0b59c2bd1b254a9fb25e684f20ae07645c79ddb62d5aa750e249a00a098717dbc436b08d67e2114123849492df5a848b4e0f57e25ae92", + "hash": "141ecfd8a683c61a54ef350471a15bb3" + }, + { + "message": + "9a0e06485ed3eb1ac6fe32892d6d99ae355e08e25cd8382e9e84307443b9e85644e61cc5fe527b7873f393b23ea3ea2aac94f6c4627171529b0cc6bd7cc3b24d367a935f5a160339e928d09673", + "hash": "66de0a4bffdf51e2ca224cba1e8a24f5" + }, + { + "message": + "53b83f8ccfbdd210293a47e6fdf344fc3f7add5dce59d2d35f806a2e26a21e32270f424ff6380d197b73a9cd734211ea263968405643bf38281cbcb58d0bbf244a48540e4fb52fa1a10b524576af21fbfd94637b6d351cad72ad7f7d577fe74e18c6", + "hash": "0249abf4ce5b73dc0972ae13f0c2554e" + }, + { + "message": + "c14adf1f4567547f1d0800cf63b86b8ef01ce5fc523906fa77ca0021f0c4d0fd787911964c7f6ed6b998ff6770259722a3863f46c9122f62e75585a68799d6ab56901c2a367b8fdf176e519ac853c2aa790b91c0fa100af449764e97900915b419cf95c0493b830e58a7aeccfaa33f6cace559746457b02321e754b9a888bce83700cf498aadce02b68f4acb362e8e82054062e4cc9d1c976496f2242e20cde6a7704bad4fdb88707fce3aa0fce766a1ccb4b7b972f3134d416020b64ca7368433098174a3887408577156d5e177acfbc68c", + "hash": "8c6c74931c54713bbdb6dea63a31f8ab" + }, + { + "message": "c2fc3fdf82bb2eedd0ef28b20940d999ee38ea405a67b8", + "hash": "0cf50ab521d908242ae8ca7123fafa2b" + }, + { + "message": + "963b12d62927dd36e567cfb9ad558a22d9150f511284c5c28176c29d6c7c295d91ff785384c9b66686829dad2f56f77886ef819ce05ccf0a69b81eeadcf76ace67b94fd68864af32fd71fa9800ed607d5c142bba9c296f767a7284c6eb045548c5bf3607dfbc30f9509c1da508c0dc94854baaef72eddea405fc89145919fe5e8ae587a5c1da009771fb1c1d0c6e3ecaf1861bc04245cb44fbe97f24a80a4b173a94", + "hash": "91614b273f2a2d10c70bd4ca547471b5" + }, + { + "message": + "45e8410e19425b8d27151df993ea95ba0bc109c72206018daf0a158f123fb25fa6452613571e7499ed17f70cf4b307741f478021ecdd3a7b113f55f44beb56a6997ba7515dbda2498414e389ba8863baf0487a47353ba3a03ee811877b6ab7973c2302486326d25ea7812f17a38d0ae8b01fba8d55ce6ea1d7a5169cc041948d627b9a992a98287640d570b02d3c84e5d6976f3b280a2273882bb0dee866342a12883c677d4f937e4be542d698faf03bc877b1e42211323969eeffc6cc10600b50", + "hash": "d382c81c2c2d156f6df39fcc443ac44b" + }, + { + "message": + "e0bce0a4b6f1efc7346cdb8d59d2e82636f313f8a79e8515458bc86dfaa254eb925abef0e0dbfc0d559a0c1c4c83d23ae9c902641a9b5f96672b0af48d6d174fad28f2b55788b632b139af7c1f0c1ee1867e8e9fb8fad16ac70830a4b45cd9e343f81a9ab5f7ecdb4e1817085bc9fd01a0d01d7fbb98866119a9120a1958b9ace79e5734591159230e25ad2c32cb1cee874678cd4703e33ee0d94e7c1e9d9f6d6453157a52df30357e6c77f2cff7f630bae180387a84cce6ace777a38c726008b61d9907de3ac7aee9", + "hash": "825e81070ebf3f041435e512a51b57c0" + }, + { + "message": + "07ed2de1d0c37e4d95d95c7bb9308c9d548c92a9d9f3cd484a6377c48a8ddecd00421ef3fd5edd813bc7a1b5a14c81410622a538b94cd90f1c39aa22fde85e74b85d6c31dfc3190c8d305e7f125215e1f48c553032c9645360d9006890ee5710dd1dd9a71c1343e7cfa31f352d663ad18c73e1225863b421ea37318b8b584b1697fce51dd692a0a50258005378218a2fa83958911e5f437d2782fd29d708c7b4fe40c4a19f", + "hash": "e1429ef495c0187d08ed847b0b6276dc" + } +]; +final List> ripemd320 = [ + { + "message": + "961039bcd5f8ae11fc0d67b774ba34d797550a6022acc3d680152f46978f25c696f725cf1aff56370e9f28c415f71893ec1cf283dbaaf3f6887a965e56dc835b4afcf8d28d6d882966d84e22fa40c5667385ae2391800c6bdd0e02b1f4b1816de746439523acb63165af1d3d73ee6c457d3c7b67970d9d33c0ae583ea7db72ef284082d30dc5f2689945e612b0709b9a8daa17063bd927fbb7f368127d00c68fdacdc95393990597b4d16587fbd33a92a144b74dd53af63c9cb387f734a12f27a9011c5768375faf952953ab6961bb08703e0d5747a4c107e86a8a979d5c24a6b820cade403933a55502bd620fcd07f6b4559d089460f5580b77395985e421d7f1c3", + "hash": + "60430dacd1cb00eb9498597d92d2b0de4909ccb657e685af7a57b943d8f828365cb0ac3fab436acf" + }, + { + "message": + "ef8563d7b74643ef559a749dfa1f64e9e9bef875d04370195fec58e244c093539a8b5423457d1070aaeec3fd4fb367a0bb9029b52f6fda04c6f91ee311675b40e2d859dc96749b71e40755f74a1fbd12607a685d4842adab02a4725ff9fe0d53995a624812a6a5bb96936c4dedc7a3d2500e4f184e7e44f2da090f387746f20222d0b2096e85b06b23ff56e58d2fd7df7779", + "hash": + "533dcf16da953dfa4ca45b0c1fdd26f0c5f21bc4b0d1ca955a36c172fce66182599363a2b5e1fb53" + }, + { + "message": + "e553ddbe762ed9f92fd664c368ed5de4160c580a1ac3289281104c0d2a53a3552e0fca078c202e49fca5065609616a46bb2d2732c6707c16101bee3f1707a95ef32030ccf4ca6457c66bf7abe0986d1cd0ed3bce49b040d1f60663ff0813358b9c752131c319655a7719fba864c370ca1d8244c8a3835e19bab1cba53e0325add82b606a8757c2", + "hash": + "3ffbfb9848e506f1a02951e546c91243638b648e659528e63fd3d0400cc3f3521db1a57d5c693057" + }, + { + "message": + "0bca14df537791552089584c55708564120def62839b36c4c3b55f23bd387527531248eea32f1a27040d9c64c24b6a6a91ef989b097351901af1f4c1023f1add17cc35dee5ef666473eeb99836bee48a4c3c8a51e0521e3eb3cf55cba6b7b7cdef2a86c15ae00b4fc00ee66f8965512e2a5d3468e05fd06de33c0068b5cacc8f5fcd2eff96b87e78a3eeb0365a974e8b0f2cf30a68558e70228ea0f822", + "hash": + "0deecce636ff3ce8c376b662bfbdbabfce3e9dab240020487124d3e9ddaf57fc066f4369a504ee85" + }, + { + "message": + "cb7ca0e9a3ff7c0be3991d5a2628b1e3dd2b3d016fa1bcb727b889e1d8cd71c36189dee60de3a4b1ac747e0df7d0bd5362879b89ac9dd06cebfc005ba633222424383bde5ac2c8454f86e680822096c25b3e41fa99509db165376bdf83ee73ed9431e5555e4938f9d288d32fcc08afab428b0882df5ff1a7b99abd2f0d3bb66a3cb2fee8a039e0e2679bf5a3232d8330cffa1addd50dc19dbb76c96a9ed4ca8110d87fd3589e2aabc8c55c51bb07169b3270a4b053db901c61da808164b44a025b60", + "hash": + "90a090056995d2644e23f588348f44d5f755bb07246361c44a5d77327861ddbe2a3d856ea8fe0089" + }, + { + "message": + "b397c5cebef3286ce454d0742fd542193bbb9c18d261e77d84bae557812b4f931d6570129fee98a32eb067c51596045d957bd8b6133dbeddd98db3542427ce772d4e6cafe7a0460191ae39d40f2b32fa66c03076990f3e81502afaa19b5d37799b93a15ef7a0a6f794467d28775407bb61d6ff48767b3067efbbdaa98141fa5fefc1953671a51541e2", + "hash": + "3d69e432b5123b6c3869b2d878b25cd33019ed4b12b914cd4542f186d3a43ddfa08875051235cc12" + }, + { + "message": + "c9d91a0d81a0847748a1201ddf07691a6e4e10cd38921f96592862ed1479bb84fca3b66549014ce45cdb5235b9da10a2e54fe51431a7f8fb347a765be184e2a3243934262bf2fb91d9476b2e9ff9370d8f1d986dba", + "hash": + "ae2dc6294154aa425ea7e4ca244f39eddf6faa0fa5f1c2ec0f85bc7d8f70927251382b857f63d8a8" + }, + { + "message": + "50ad344e4acf1cff910ed0176e1c751cd372efa25082dd6dc1f6966be4c2f5cdb1783740a6a593b400ce5883c95d71e06e94b90d6521f4a7de93bedb5b3a2bcca80ea40327f2925095b3eaf4a7f5d21d6fde84258be451e8ecb796af9e00404d", + "hash": + "ca00e87e90d42aface6432addf428eff932ad59f04b54f5d42ac012b00c1e581d53ef02a0eff5ff3" + }, + { + "message": + "ed161f31ad04efe76357c669f8ee9322f2f1678361bbf4b82497c97d7cc6bb79934ed3da9f0f3691646ac8af0f60f1bb8c4dcec9d4b44a5d6e09e6f8bb6a7806a139278ce1867f774e88a23748883e36f0f9eb37c7912e2c0c1abf0e6961c3e3bc27c092516bc7a67b34d97e0bc1c23b68a3eee707fc700245b742e4be265b436df0beec1a727647ea60e2a283cba0838d90f7a2a03e4c22f5ed0bd2dfe378ab05d0b80795d65d516c56d443b989b3136634e58c2f089f0f169ee7195b5c4b0492edfa586b2eb6190c1c1c9b9e7b8cf62c4595c2", + "hash": + "57a1bb8cc2b127510681eed06eac41c2c9220d0922da046e1322203b07fa0b1dcdc8fc0777fb9045" + }, + { + "message": + "bb37340a6419f6cf5df3c1d79f37b29abb4081a07a0ba793a469a8915373ca67a33b191ae9ef0884d7d84956b566465404c4436bbb2f0bde2dfbdf7b26853fa6206472d8fd7fa02bc03789c6ee6f76bf9c664263ea28e5ff6d337f80bb46bbfa9405441a594a93efda7cc1ce4e86c1e5110506f6bcf151589e8fda11d36465c24835571655c8ee80950051da6e42c3280b16a8e4c19ea9e000b2c06c6d8791", + "hash": + "99c147faa6ae353cb064f07406053a50b22f5d5ca7c9743eb41f5b187a49355aaaa7b1e7634a5373" + }, + { + "message": + "27a33a7814c1e232b756c9fe51b37b214651c8ee30e3539002c289cc43c5c2b744a616a35e95b901470944df156a412fee2262266cfdd5a5879a09f1e2dcb68616b7cd2ac7e3396b6de329a7b26dbdb362dd3a2a64115f3b3700e0b3b52871438d28bb898a1ffac02c6eec74c4a22dc3d9ef4b0a9c9cfd048583b1092c458f323eb3acd6d8b507c653b5f1fff542e8e43eb3117a7ebdcd5556ea2f33954b08e87b01564927e70e8a2914aadbfda3a4efc983b11de237e6b6b39042a99630fb03ad476b8731c5a37b72a59c0c8a5f350c1529472acbcbc4f110dfe058466b790b", + "hash": + "301322304aff84d473ce475624c7fdd004df48156c99501935cdb4e327e0051b93c83cf1a7d76f59" + }, + { + "message": + "356eb8a360b09f23b540ebaef48edf033a137554017051cef477b521ec1f92b730a324e77a609d37c7cf88a537bb48f71b63d94410f660697f3a7c2e831864528cd3e5d7df89974af53e21ec0197910440fd59fe9a91b1c57824bfa6d7d4a82c659c2e55b0608474173d1c4e04d537aa36246e04688577a84f2df9bf7c23ac6f7a88bce3b1b3b4f174d7d475337e0d29bfb8002ac9324d7dbae96030f00e3aacf794dd60ba92fa76f6b8b62d441a241a616c532de43e5bef20cd15de7f55ed80c10b2d246b3cc973997a21af1162ed66365445a4203a37def0754a7e341b60ff17c72fd7404c484145e05a5310dd348f", + "hash": + "00e732bb1ac80a19e64de3aac4c0382b3cdbbc06aad1c7b2d5966d39f643c2428f4daf0e52db289f" + }, + { + "message": + "2007d0238a488839059175ca620e57508287b57156451105718972e8d0027ab8f830ba42920f049afa44d2349c15cbf214995cdd6ffde9cff5b19bbc75f6cd8b594767b3d992f00859b084c6db764a4e27da3d9ef009d0aa00e0760d2fb3132bead26bbd9b49703f95cb4cbb05ddf72cc811fc1c81e00c53c8fa8775344c297b215636f3a9c080255325", + "hash": + "f0d2ad4a3eb0d45aeeadc93bbb1c8253cc3a67d66925441cf51db85c955333db676eddd4695f7ab5" + }, + { + "message": + "10a792d70eb97a3faf04553a59f08d7afafc4142e0f0b96dda3c97489fbb4e7a02cdfc4a3369246ff61cd6d0b2338206108b9af3373d9d47e0d8c27df54fb8ecf00e3a44a5992b462f044f871828bca40f223017b23dc0a5f70f97e76ad02c2645d696d5df0f0597f221df1c47b329c1dd1e5e4664260c86a52264a0ccd354d8f5b2092d64a24fe7723e2f66b42d68678428fdd94e366c43b76a7de387f3c7a55d5ee05726017088343cabd7a410f27fcdc9f7631a8620ff1a056956c5decca37fde70d333eb7a1760b77248dd453351a1075ac0a5d088b145bf46bba79c988ec988d696113466a22757", + "hash": + "b05210f6d872653cea73c75b1f6f9bcaa2701f961ad3fff503c705e1e177d820c1cbde9c012c28be" + }, + { + "message": "342797358b862590bc123cc47e59", + "hash": + "d1d22f1b284b583a7245d616e7202ceac2bae9a89ef9b2d1190fe483546e3b385523c7a2716c9ca8" + }, + { + "message": + "0a55d52bd52684167aadabf2d80ad81883084b2f4995539446d5af7baeb0b0337fcfa0a81079b68d005b9965cbb5a0c8b454d67f83cafae1c3ad8121237026637460d9eebe4f19fa9845053770171a60eb", + "hash": + "960895466e264d49fe724d71b76545930df4d53b1205d2ebc69bcc850bb70c4e2fecf7c2c84f5761" + }, + { + "message": + "3c09bd9320d0c958a64e90b351fcd2954f2794d77202833c9a29c124d6b436e74956dbc7603077924350564ac12d9b80da7b1a0813b2407cf24f1588da7322644177dd4235d4f5075f43ae65f5b6659a1b4d264f86dc6c01547dfbfb5ce9a5a635aa4b03909d73e9e87ffcaf4e1713f43546ccfb80f464b7a8faf384be15432206df46b7346758b850d024b0ed32cf79d844f6583a7b022280aa790861ff0bad8792fd63d73567f3cabfc5a66634299845940a34587eb113753c8896f10fd58a0ce323f9bd97dc29b492591f2213aaef6db3a9b788a9e5e5323e4572add8ba8f9d27e38bf98a766c9c73503282b17f5fa6350b71debd309ac496803ca2", + "hash": + "bae63cc394bbe207c771355f2849062ca91a3725043de608ae1ab14ee446623badd161b325d7daa8" + }, + { + "message": + "175789d55b50a7f274d32fd684b918df4f069e68e52c7206d1b56a00c9fcd28d43dc14a28ae4f8c4c77f000f759b2107da72c538b26a67666863d7ad058dd50d5d6b399334c5ec2057dffcabb88c93efbda3aab72039f4f8f10f5a4a30291dde40e8202e30600f2dd570cf41426a8dc3841a7e7dbb51d35f86cd3642f735fd51588591db72939c9ecc44604949c0627cfcbb32b52d47ec93cf85b5b3c0a595b7f66e5fe9f788cd", + "hash": + "9f670baf86c7a72025f47c932cfad9408ee28e9ceb200ae593725f7e2eb609a68fdd3b3f78a33bb0" + }, + { + "message": + "f5fdd397203be85f61fc439dfb53e712cf8f3192bd59a0f97d74be1b2cd55a917ca445f5c53b0aa8df444bcb6afa46b766fee52b020e51a19e59947530240d322f6e7d472ec526cb3ce39bf01f47a147712fd1d9828947e0837d38fd29022373efbbf126b928adb4fc86c2a1a4d0581641aeefec41ab1f1fd37095329355c2d40b43e73a7871cf6428078229ce4db3a9d06a3665359623c6d25e9637921b8b3c42209bd0f4e93aea16256910f26f7cb207365038a1800adfd34bbf50130029e6afabd2959ed53846915ed341c80a7c", + "hash": + "d08b2d1cd2248088c5a969d1c6e40b32e1b3c89cd6eeef4bcf62be7f4f87e4d6cb4ed26e85e277c9" + }, + { + "message": + "54bdf7e7ede5a15a0cebe56ac7a472568e7bd85ef58f1358ca75e4fb06ee53d52342ccdd0655fd091ca9244a87ca3ca60151b83ba88daafcac48da167db40f95f56a1fbb88730a23cabc9db7c2a15bb5eed0d016c2c10b428e7f10cecd7f2bdfdb4c", + "hash": + "4679f1797f9eab7e7c2c485bd14e0370433ebfae70c91ac90647616670f3a1760dc39b2a58b33a07" + }, + { + "message": + "2b4e2a59757c918d44c685ac706b17e515bd036288a5d78822341c04f32cff6b5fdd285debbb34d6b2c0d09e9db5e46ac3fdabcbc73a1fe022440d2c6013d104a392e79ce697af6c6cd09e6f17d0d189188583bc21f5a488acfed22aac8933c214e584f53b31f6b5e419a2e76b9828cc24d808a1296bbfc520efba01365b306b8ba6f9fb6d047843fb477c51bb7d70b5eecc49387fbd23f28e144195a7a7e6070eb4e555b29d5f4161dfac316187468c59704c3876a525ea16b7d98ea9d9199c67c255ca6957ee0b9f3f6ca46c5a78086d6f443c5bdffb046cb9b06f848b54969c84ed09d7f75803b313d00b55dda30b465b4a41fae40581cda3a50522fab872aad403a520e21325", + "hash": + "b12a8b6f180a64f8ba859b47bfca1af544f3a0f274b239e42b62fb1f4fc719c740ff0e384cad5295" + }, + { + "message": + "b50779c3a60212ee1fd502f5f42c4db040221e03315a8c8013b3f498d61835d15f12f05d27573aaf6c5a6345825fa00d45bb45e35a4ea9ca1ed677870b52fb8db467525d3d8eb274c7a2c4c398b54618c721e85130dcccc10c3e747d46a10f94a2fb69ee3e846912053f3b84a7ce71d2299daff7e8940d59ca217426bc6b61960098c56123fcf8b7865528c5de4bef6b114533fc4ea8e5a22184721451737656e84a870457ba63b6a244c9724eb70760d8c56d0839fa4e2c82b2be41524eda021e1b72dec6b3c18cf4756752eca072730338285c20d6193bd6393a8fc4b8e40000192e53bf4695c91f6ff2624babcf341f2a6e84759a22e50090", + "hash": + "ec064a0ac9fe6286de78331a72b2c46e2c5067d9ae916294be8db882e008a4f78d982a7c271daef3" + }, + { + "message": + "e9daef2bd1b91e7ec3d3c13efd41970c55beecbb411ffdb48424d116c735e8bcfc51d72516e8743cd42e9f084b7afee6ad7625d455c9ed089fe956cbf3f8c4517c5d970fa266f13990c1d3c7fa4282aa59221e2306fc7aa483ee9b95d0849d0d5f0efcbebe780b974ace77b3b3f6d59460c81e974ff8f613127ea6c8a08a7f2717d229ce4f60931b37e5a99df828943ffdec91c05f4fea80e70f3cf7a09596c99da14b36f408fd306399bafb8de18a14278cc4ac27ffdadc8e2999bfdd4d3e71d96906b28aea7f0562e92f80b4e904496c574fc83e57abe6e43c5df2f80771e639be4833d9a6586290fe0395b38753db5d6f48", + "hash": + "5070faefc0a4d9db3289222a39742aa5f98147935e951f362a0219d6ba39b30b416d9d97d4810ba7" + }, + { + "message": + "743b5e76108bceaf16c46c321fd5fc6207816530a9de4174f76624f2af6f7b3a3dc3e08da0866c68c11521988f1bdec326b421f74c05b63a7d0842a80818e8990c02bd0046e6ef3066fe0e663b8949d5c0ede3f11bcd46b67f035fdc7f420fb39c34c048709c024da1c3f123feb8cbffcc3cb75aad3b6c660181", + "hash": + "e5328c9432337ba393041e2ed94bd477d9776c488e061443272a4f7badd9d981de08786b49329365" + }, + { + "message": + "2d73620d9a830fb8c8a11767db52cd964ac39b7521bb38a6bf093dc8a669c61076047abb6beb3ecf728583345a7bd8e599b8", + "hash": + "80c0fa1504a6ed52d58fec80886a2a296e26119a5f0ac112348bf67a6f732e0206f6830c72630a60" + } +]; diff --git a/example/lib/test/crypto/scrypt/scrypt_test.dart b/example/lib/test/crypto/scrypt/scrypt_test.dart new file mode 100644 index 0000000..b5daabe --- /dev/null +++ b/example/lib/test/crypto/scrypt/scrypt_test.dart @@ -0,0 +1,14 @@ +import 'package:blockchain_utils/crypto/crypto/scrypt/scrypt.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void testScrypt() { + for (final i in testVector) { + final s = Scrypt(i["n"], i["r"], i["p"]); + final derive = s.derive(BytesUtils.fromHexString(i["password"]), + BytesUtils.fromHexString(i["salt"]), 32); + assert(derive.toHex() == i["hash"]); + } +} diff --git a/example/lib/test/crypto/scrypt/test_vector.dart b/example/lib/test/crypto/scrypt/test_vector.dart new file mode 100644 index 0000000..3595340 --- /dev/null +++ b/example/lib/test/crypto/scrypt/test_vector.dart @@ -0,0 +1,225 @@ +final List> testVector = [ + { + "password": "7d2cc6efdff6f5da72de16c8ab0229bb", + "hash": "f236297a86ff30d9dd5ed2c111caddb874ad1062c186f16f2a74d8c6c62bb094", + "salt": "1fa336e517bcec065da80f1f5f6a9f55", + "n": 8192, + "r": 38, + "p": 1 + }, + { + "password": + "d30ffff4ff4ea81c45f90f9b9e523dad21d299da737a57b6a141300246559561e7e9647bad19b054db24bbca6071783ea25430355eb90ee71660e585a79471c318d7aaa0", + "hash": "30aa4def595ad0db0e773dcd9be3b8cbdba30e5f44a9693d4e1b18245c22ae8f", + "salt": "566c2b49602ced6a5cc0281f8cad5d21", + "n": 8192, + "r": 7, + "p": 1 + }, + { + "password": "c46fa4d118ba63d1c1344f46d82c24a2e9ffc2e84ab9400585", + "hash": "cc04fa144856a96c243fa25d12f33de0d4902e9aab359623f101805cc07615bf", + "salt": "76744458a7c5c2f268ed6dc844b32488", + "n": 8192, + "r": 6, + "p": 1 + }, + { + "password": + "5276bfd3c362a2da0475f6a2000c7a4cc9c7e9240f9a5735ea6fa100fa1c57432b231cc0535fd41da4cb8cc871922ee86663da48ac75abddb7f5b7796e1bb09530342cc12c080363fa1c12d8c6ad7a0d9bcd979e414e55f961915f93d786b8ffc4a18d963be13b06bbb7fe23bd8afbe95bc0368701ccf96db824105aac7dc54097f64adedb722f4d2951e0972de3bf7d247ed4bf97d69e68fc71338b1da37931b4e0a1bbf53df9738cd487499e6c31b9655e5cb863c03d18b02be972d61c845c87ef2ad04c855c8b4fa78ebb5127e8755f68953835fade34a9e5", + "hash": "28ad5b75964c4cdc8cbda6ea4f212a28531cf4f71c406d381adbc004d488f94e", + "salt": "a487d5913ebc6c0cff3a4800bc0feace", + "n": 8192, + "r": 10, + "p": 1 + }, + { + "password": + "1728a004e4c0503dbdb2f765012eb8267bb81dd2728270375be506d227286cf7357a1ac685ad97f9b5bfc8768e2082aa7530a9aaf1487b9240e8", + "hash": "8a5056fb0ec107095c1a856679f88b85c0599d499a3b44896eff6f2ef6a5176f", + "salt": "2957dfd6af7b44707ae6758883ae2363", + "n": 8192, + "r": 6, + "p": 1 + }, + { + "password": + "c79c700819ce29123564547636f964c3e8e14bc5934454a298c9c34673d2d3c605fb2d66d182fdd055cb8ea6a6de4409e144d0142c013398e2455df17932bde04c9e51a936fd243010def6a7ad98f3b7b7b7d2a909c40f9fce4587e2225f01f99638eb5f7dcef6789ee38ba019b79204d408a22cf7031c6399a190531d9a9cc615072d5f541354b438f6e9c478ce733754256c7d942b8fc0a226af260b0bcebd8eee63c7951bff9a06e32e120e7584a3e70a2a241b42421c038c6653558769a326f2251e7f9b11e6485061234127a866a6e9", + "hash": "7ec54d100adb1af360ba5c20b479b69805ed111f8f6abb1bcab2d67df6bbf5ed", + "salt": "dab73cb8a1cf47e693381381232a8ff0", + "n": 8192, + "r": 62, + "p": 1 + }, + { + "password": + "ca43074f7634267d48ae2b268b9a565177155743e78815ff37cb3ff5f50a7d5830b41f8baf20ba1c8ec1b871a1747608e18bf3646576427958f926ba4fd24c51954ae4b70f91ed2aec8dc3db1bfff1579af958ce65991e0403d0ffcfb97f1308e819be71267b", + "hash": "e4a10077d6e8838e9024925539163365896cd807ac5d5d1b94ad60d92edb7ae7", + "salt": "41c885a6d931673ef7f82a4f28e67f21", + "n": 8192, + "r": 35, + "p": 1 + }, + { + "password": + "269a4244a371b32d1265add4204fce4af200403f1869abd5f0815c8bf64c00f6e1870e58eee4235e09c4970a0647c70bc77e14bf4511255f32a763543b08deb25c79af695e8b529a1d9888f836f540c46794a391f30d57e24a8225135bbba4b4ddbc98ed5014657c40630902dd2233d4736b42bcef783d8d411d307c2e6a5062b4c08463ea2e9a8aed77034276acf2b41a619793e8901026672098efec8938762f84eafdfbeef67aae51165e145722f75f7c33", + "hash": "408d12619647f752ed10bc02d25562a1bb1954c79bd62963b145cfc6aa34988e", + "salt": "26f3ddcce6957ded9cd669d15ded5430", + "n": 8192, + "r": 14, + "p": 1 + }, + { + "password": + "7d3c7ef517ab5329cfbf0755054e1931a67e7eaa0f5a2c6c39a4ef9e33a50fe88d7edb1d4a2eeb0484fe8a89bed4186619bfaacf1707739c2f7a64b8c421446c99f304dcb581fa14d5c47a11c7dbecaa5bbd3375ff33d82240e0c786bec20b11af71e4ec82eeeb1f143b994a64a8a7d729b79569e288bfdc4a2323b11415fca9beb3e86e614e84615e98ad44eabba82056ba96e371181436b65a48df4d2565bf7323cb3dde3a8aa4d9f6ff4d61fa97902621e21d4bbee8a5b729822c61e5110cfc39ea7946f0a484fce84f4d39a75541933591eaa87d1d0cd094a75d8acd9c278507c0bac85a6c6f3e", + "hash": "9fdc6518eb26a6d3016822771352ac70b609e7c5180e3f6bc0b2edf739d7abce", + "salt": "50b91f7158d1097e8499a9e156f0ed00", + "n": 8192, + "r": 45, + "p": 1 + }, + { + "password": + "3df2c0fe7a6a782c13dcd5478bb7beab4dcbae0ecbf6c145e7e1f7bd82ad625f3f27891752ce9f8c2652a9a93954e2604321c994ae7433a7281aba9bce7dad3fb590275576706a59490c31a10863af629a93f367a863a1aac671a268927a1a9bec8dd6a693e76d8c1933f48cf96c9bb44ded86475be62f82a6837eac7621229263b6e0e95989cfcb7ef4c802065a13c58bab7c248137d6", + "hash": "7f2d8ea49eb33a22a29cb560005cae932f16e67e0d7041b67171b5dbecddf5cf", + "salt": "3779684870066923a4c71009a596abfe", + "n": 8192, + "r": 24, + "p": 1 + }, + { + "password": + "883fca02692cfb4401df39b8a64611078ad5491a048d911542006c113d1dac1510d1196f17dee95ba12df01b3ee1b2da9095ff1247908d17", + "hash": "426b1542c9037e18f97c9cdfc2f1466af091eb8543205a3f3b0063a272917b0c", + "salt": "60fba5c7058bf5db01fbed2df87685ee", + "n": 1024, + "r": 15, + "p": 1 + }, + { + "password": + "ef835c5be9f19a9305f2e6c6d56e535b697c3f6b5b35b3a1c54768b4f65946ceccb74898f15fabae83c72f7b6db0a4722efc1846cc6eed44eee7e171a0cddc4fc7e2134461791b801a5e62986fc5de48", + "hash": "b6faba2398635b0a0c0054b1bdbaa9eed21577e6b243c544f45f5b89eeb5de23", + "salt": "9efd668984a9d11ee7a2802d37e7be55", + "n": 1024, + "r": 26, + "p": 1 + }, + { + "password": + "dc4b123621497c6bea9a65fae5154dfa18a5dc87c8ae57d52536a650cce2b33c1e7e480c86602755fc4cbb568e63d2525a45509cdaafff19a7d3f95bad24a8bb6b16c4e9577e8f0605c77b96c3e59131e1fb2657630f6691d5ee13746eae5ada13cf0342a90cac4e059cb7aa68dbadbd7fb143309c115743267f79cb3c8303dd67028c7f2fa0095516d245c879c134969729bdf746e0f733d222a395a5d2fa73bd6426ab3c10cc7cddcc2aa46faa967ef1f73677335bc9024333b8163fadfb1be5e7bc1e5b0ce860a36ae75e53600087077bd9fb59a9e78cab837081c3a9d8602047a8feba795beaa351ce8b245982a0b30443319163ea", + "hash": "01a21a592ec839aff78f3951a28920902158af0e63c4c510b3291cb0754a687b", + "salt": "8cf4ae6d7b1ad3f90a10998d6b35518d", + "n": 1024, + "r": 5, + "p": 1 + }, + { + "password": + "6cfc9033a378cee59c5d341c64c968aa42b687857b1af92717b1b87b8c9ec456ae5b815e7da35713ffeab4b8c475529dc118ff3acee1165ea7471e0f43db781484295e967df036af93006f2332fe8948e7c2d5f1568a30ee6b1c52260d397802a6ec0b23430fdca35e8bb8615d805fa80fabb4498191a075292daf9871b08fd4f09d119f039853988142a960db8ba4e668f98cf2866a330d7f4f75a50986c6a6a34326751121350ab19dd5ace3b19557404a3360e8674cf8632051fa3d0f8969ce2e4c0d9c2117d8893ecd8da8d7750ccd11be0237095eebc22db5770a7918b7aa1f7bf74dbc", + "hash": "ce036250c30a2356dc53fa95c4eab691a6d847d4c844c80baf24b3c621bb6ea9", + "salt": "454eb7e469d9d02b8327a5f8636d0fd5", + "n": 1024, + "r": 54, + "p": 1 + }, + { + "password": + "89578dfd69c254c9106e6013ab2049c6bf5d47c1b3a498a7b6c178de71224380cb937f66b28fed3e478511aa75d1faafe9d4ce7a92e4cacac1fb9d0a418045bd09fcabd1e0267594024ee30950792dff582a283f8d354de9ed71cdab6615e6fb3f1822874073042f4fe562b45259bd5d24d7231432b0308381dd886982fe2f3aee06acdebe6c6367bfeed7300705c5d13f6fb50627adbd906566254ff5acedc9936778eb5948ade08b38c83a61494b306ce010a28ea59c84cab6a01257fa7570a0d98a92125cf59281ce50b3c9299cc11126ec9b615a572370e661b6f78a7594f3ddca20", + "hash": "559a52a9612af042e3f7e4d8114f1c41e9894b83b749a374a70f780602333e80", + "salt": "7ba7793e71b973ec5eaf1a9a5ea0e637", + "n": 1024, + "r": 48, + "p": 1 + }, + { + "password": + "7d8b76876c5a3d2b5181481389ea8df58c5f30c044d6fb94c510f57f66b39b6eb5b9020ae0b340e37e1f203933cd52c261f807fc520e2fdae342358e17848a3b5f283ac1be346b73b004039dad0be1c9d3f017cee9fa96916daa8549fda12a93badecceecec815a5ef2bb92eb6449e5e6cb6fe04a11bf51364fd30264aebecb420c8b2", + "hash": "b3aca527a4e6a31b5f43f97c7328a5165df0d6279271e9f27187441e3c1f3d02", + "salt": "84e35def4c11bf89b97b380e608f33d2", + "n": 1024, + "r": 51, + "p": 1 + }, + { + "password": + "d3b18ad3aa636f48c27f76fc7b0621568444a035f94cd456dd9f425d6210059a8dca61a401d9c8e054a7aac5b3ea8fbe6c2d240b6ea61b29d877c750cd1dc19ac3ef8f6321ea270a84c23b9b2e74e8a22a8b8ab31e1168a7debb33df4bf83327026a2a678949a77d6c2749debd1c752c8fc6ef63129334648d4f1f3c80a509ed484f91c03c2fe2d422e5a73c8e67cf60f7faec95471fd1a65c20dfcedfa1e2965d1e943f7fbdb9b1a347f33fb2490f9b1d3d721fc60f52f372b89bbbd9d3c399bf646f9c40880b51ce6173a8cec66e3689e4501edab38c996a185c55ce52c08814c3a9afc22afaf3a5e6054d05c1ecc642d16c48e50aec962f23", + "hash": "18a35eb8ce6ffc0caf79824e6de9d29058ffbaee618e57136d721412df644c4b", + "salt": "8fd29e9f1fa8c9f90c8ae1f55960b46d", + "n": 1024, + "r": 56, + "p": 1 + }, + { + "password": + "ad18550e040c9b7e446df319f11c38a79faeb557000af3014a53c682428e5d74c6b3d5c4f3217feb43c6b075388793f479bb06733ac4037e76a2510b89339da15f95f71e918f50d30e01bf196f5b8b8e29668ef10cbd3c86444f02e68551c6357a39942f3a4e0d0a9de724eda871961b7d2ec890ea3047990fe2b8e640bc6780dfb5cf16208cd8421febaad9b5b5fd9902e87c0a1f59c64d7e375bd6ce9ebf7971ad35d16a9ab0fa53d898f4c2355090df348a2e18e277b6344d10489eb810cf5cee4bb56ce00682cad98ed154fcb7021a3c03b00c66c884ba1aeafdd282ba9dc93281100368d9f7a550b724555fef6ddb9b89e52afca4bb10e119bba7e5ea44896377cd", + "hash": "3f482b42de6df3e765b1882ca89cbbd250df37ce8f1f1ec238405aacdcfba993", + "salt": "cbc345103f3a6638c777dafc1af1a05d", + "n": 1024, + "r": 21, + "p": 1 + }, + { + "password": + "148d5f51cdf86460a65bb905f4fcd9f6166f47c1ea3e9ebdccea84446706c29527", + "hash": "0186286c5a62ba479987cdf90cf9c0469fa06bccd63966bc8e1573208e0d4380", + "salt": "fa7ee1febb49c6feb2a9619e6c5ca20f", + "n": 1024, + "r": 27, + "p": 1 + }, + { + "password": + "fb59e32a31f154fd0e259bbd2ff2165eae3f633f54de0dd2ced38a6c5a168fa3fbb179a877f8cd560d0d9df44633b84de20a8e0a0b5e7633487fbb3ad6ae6f973fba86d9a3e0e35105288deff34a5f164e5b8ba6e57d06753916554b3dc88861d0d82fc0a03e595bb9be9cb3d557229132a9443e780a819f7d328d", + "hash": "c1b97b29de142197f2a5371825300ab17120d820c6bba226594f748cc4d9d1df", + "salt": "270472e4f7829572d59b495efd8e9298", + "n": 1024, + "r": 55, + "p": 1 + }, + { + "password": + "5a2291353d31a45ccb684fb8553acce2272e7b76eaf2442e61f22f7c7a9b440e26f90f197c9124bac043f24a3a56f90cb4c26065f936b11228b11faac08d925c6ab5882d47d67eb377e5dbc804f364cb65506f0c4073b9ddbe63bdbd4c513199d34e50a19ae17b980aa1400e8ddb7211b0b0ce59e063f84b65f6242d3bce8003c4dc6fb50e923186fade54482fd954d055f97c923cc1a4848ed99fe60413", + "hash": "f708eb2f32a4bff17c7490a6f817e743779eb16d1705dcada3a7b119fbba5dca", + "salt": "faf5c345e9579d1c88a94bb33631876f", + "n": 1024, + "r": 47, + "p": 1 + }, + { + "password": + "45e2e056582be959e83f8fab53b317774ccb08a93ef005fd8b86911f1a0246d0fb9d", + "hash": "648ac2197a5ee1c29cff0be51c2348f3b72871aaebcd3efd1901b77dc317eef8", + "salt": "4ec17d3ad5b43495bb6b46f86f61a7b7", + "n": 1024, + "r": 60, + "p": 1 + }, + { + "password": + "2087a5087bde62c2a9e1dd05562579276d7cc13cf405ca6014d32181ffc9e2da26040d81a9a37425ff3331f070a8333fd74e63b18ac635a7b1739ed993504bfb659829583d4d1c6e7572ff46b046fb7f7755a2e0a32eb541b83ede628820355b29c359c964f754e0979aede6df776523316e14ea5fdeefa37bfcf909a61fcfcd0114b9aa5f53d76c89a19965cf6d1b354cfe911289f2c64754688467106f27031dcf", + "hash": "63f4163214986918ffdc795fb834a26844c70ba26529c5f467ec17477307100b", + "salt": "506d2698055c9328d39a3bce80f79a81", + "n": 1024, + "r": 24, + "p": 1 + }, + { + "password": + "a1de30bffbc376e76f536d15c158569435afa438ab8f8c9c6784bd6e00223a3c7bbfdd2c6993c4040c496e4f5fe5b6cd3e41a893c64e1672fa684dad037a82318c54fa798dd2592bfa8d6c7dd3da85f13fea0a65eb51f447e830d1915e66a2c7d81ac09d3e2f3584c800c64420f9b86ab6e50b0e696c1464f592baa5bb707b98644b87190277292c5d00666752d74c1557e46654c48e06c726b6c9c1bd2f8ef89ccfebbb2e233edd170bc44110a08a45a8b43b62738da5db092f06fef79b", + "hash": "8191b5960200850876b20dcb15072e55ffb7c5478f1d4a9896880d8f650b0b8c", + "salt": "9d12eeb5b1e2a0dde0107d7135195e1b", + "n": 1024, + "r": 43, + "p": 1 + }, + { + "password": + "742bc6958891dde9135ad40dfc12e4e94971904d703da9f5a4d8d09ff947d286ea3c55213b902615ae94956d2af199cae7568183c41efeb74bc6cffca5bfb87234f80c7922c895b412b26f24d9421e067cebeb427ece775490f18c5b05b901d7bee061d90af7a4a4f8c6da4b14087ff9a7a8eb86b642d0", + "hash": "ffb59019ae97fb6d2aacd42106b00fd182810110d6da26e18cca22961a84b251", + "salt": "eb71869590c742c5b62b55f1af60d703", + "n": 1024, + "r": 10, + "p": 1 + } +]; diff --git a/example/lib/test/crypto/sha1/sha1_test.dart b/example/lib/test/crypto/sha1/sha1_test.dart new file mode 100644 index 0000000..7da9e10 --- /dev/null +++ b/example/lib/test/crypto/sha1/sha1_test.dart @@ -0,0 +1,18 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void testSha1() { + for (final i in testVector) { + final k = SHA1(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } +} diff --git a/example/lib/test/crypto/sha1/test_vector.dart b/example/lib/test/crypto/sha1/test_vector.dart new file mode 100644 index 0000000..80a1d38 --- /dev/null +++ b/example/lib/test/crypto/sha1/test_vector.dart @@ -0,0 +1,125 @@ +final List> testVector = [ + { + "message": + "36afe0751c3f5d7300591d205ea2aa6730ad2b7eb7767589bb4124792767e54d243d345c00bdcdfbf33f72c94e590224b7308dcd942effa9faaa86100c7cd78e6af9bff21f1107c473", + "hash": "2a6a79d8d3c76131af5503e405372bb7f5a1bb7f" + }, + { + "message": + "65a49b6cc57e66fe1c975d134712e124ec9c0a12204daffb859c621e67d90dd4ec91fe87837061ee3f6a407085996e4181b1f4cf19ea0f9c47fa16e9e07c562fe85ff449034d58b27d0f25b41470e6e237659531fe9228cc7f163480452e7a97f1ded1fb", + "hash": "18926217dbf9cd1675b2fe0ffd30a345f67f033e" + }, + { + "message": "e3e6efc6d1182a7aedebc6f10274bbf2f0d4272575b36854a19446005307", + "hash": "96ea28230ec3640e7af7ea2ec0c87406376bb87a" + }, + { + "message": + "cf79152f49ad459536e18249909139e62621a800d67e3f417176616f0a1d51fdc9e4700f2263d0d873d49c95b14b947c72cbe16caa51d32b007f3f6a22cbd01d428065caddeb622b9ea9eaf7a9ff7bda280b5db3df5b8f8596c463a9f9441ab01f2a86d9ea025e290bd0cb144fc6cefceab04080fa50d0db6eebf2e752fee7692e40b88ed227810da96a4e6a4f65b57f3a0e8e521090346634bfd1d8dfd70bc1a86bf048b369c348770aac64b7c7bd14b59f54dec0ac00bb1961e02a00c40baca67aafb3", + "hash": "23524c592212394440a3501d949c3ab12d5ab63d" + }, + { + "message": + "5c2247423fa4dc7d4ce576eb897a7a9ae5bb72e9811d9c3aefc610b095c2195b017f255218716e479dbf1d993faf30e9cb2181c9b97e53a39fa622f5cad8e0cb182c25b585d9f792ff31b244b7659f037f2d5ab0190a2496caa10dfffe190c1d66a4e57e64d7587a5364bb692898888bcfd56dc0a14b2ac4368ea14e8cf22a05d04cce9445efeea9b67c5e5e5c5e59435135", + "hash": "ecfc807538402270401e1e8bb0f6b45ac6c03cb6" + }, + { + "message": + "a12ab555cac3ca6587e207478501c7d94ba75f706fc027b73ba1fada4d2635dd4318736c06772d4380db793a137dc5fbd6e9f6b9ccb5e2adbf9d6a0a4ab8cf3865247fb937a44ec2ed1eda4641ed4ab68a43e2b513a267609688b05a36833585481d903122add0311491349ddbeac9e5d2e4b9f72b2914b1054876b4ac1b63fbfa0fb9fad831ae1b5a10c2dedb850b6c658424ef30720aff7979fe665607b0383c11d95dc0ffba6e7aebdf17838e79861ec1355b97f6e1abc172", + "hash": "8d49b0e0072bf04254433e7a0f66fbbc46405fac" + }, + { + "message": + "a261553a6c238c0c22e8e180b19c7403b05763951350c260d089378be739af0fdad35cf861d5c0beb8a0f73ab2033e9d61fc290deaeb2407dfd7fedc78585fbe341959da36745a2e86760f0f7c3e1ef22fb969affcb568407a1a4aa372544425aed13215b0348127", + "hash": "dabb4d636ca4ca9565f0aa53faa922ac2f59fc95" + }, + { + "message": "b42c369c8cebbd7cacc0241d2731c6b0cb2dbf", + "hash": "bb3bfb5aa8b1f8da9837ce73fe29ff4d9fcf7bd7" + }, + { + "message": + "e5cdf8db385e2bba07b93e26ea73c34cbb6534b0ae079fcce619e65c9cf831c58bb3e127ff33738315f7b860745249249a0e12dff6b0013e05f4edb6342fa7f86050ec9bb924b467d5545dda8cdc7ecf3a64c780efe2346de5665b02c76bb930675edea3b75e84e1c2605ae1d4ba4df24c3829c17aa7b8310766d888798e7a28ad240081a84891ed38e32d8ed8e4421b44c07e42b122d6d7af8b6e93bfce55fedb8d55712282c0e547cca72f49d5c80c640563dad575ac76c935eccf8036890c0969b710aaacd8ea8c201822e5af9558fa75e176282a64efa2028cfd4ef167d44613c0e3ed2c07ef052089e74003875289918beddaad14cc7d451b52660d0be6701a52a1c2be", + "hash": "963154867c100c60517d92c2b4be3caee57f1a50" + }, + { + "message": + "c450374eba1912b97dfb10c1f86b53643d8c3521550522ab8d16aea2043f12b00e7ff4de10e4dcd7e05301db66978d33681ee0cfee298181f4820b412339aed3440c39ef306306dab5e90b3e9607ce00bcbeca04bbaccdce27607d362bb4bb6cbc39368a753c390320fefdaa29c68503ee8f710841e4008719877860534c61000452e544d0619633de66304fd1154a516f35fe12c88cdd393b12dedbbf56fa9e3bbc36dbd5800fe83181b5b804c2f3a2b5bd69c105a4dbcb6be5278bc86fdde9babd16e2c31ae11188f12c3961a099e40f21075ba0003842be5944a0cafd685bbb53", + "hash": "f8635159dce4fa48fbed81daf09dcd4c789eff91" + }, + { + "message": + "a725e5eec663ff25d70410156ef77d6e05ba9d384f83f722a9b2c6f42e1e8ef93598a8b38835f9cb0544486d86935a29b0751fe937bd7b68ba4ecd7130c0f8effc3d1e582a2e51adac067c1145849e5b07d372cb9de1cdd664e28745ec21757f4b10c6e3869d378c42cf511aa5d00f185cf95a9bb33cc29e017ae96191a810d42977922d602f1c8e38eb4a4891b8e57ff450c71427c7a21f5c27b2b76818a88d576b8d46b93170be31647b96acdf589ecfebd5eb033f3f8cc07ae2ab16973beba531294376110473883a9c75bc1b0d86d80d00e0b2f87e6cd59ae876187c505ca4ade73b9d", + "hash": "81096c86e8b244d4ec379562fc8352bc22a62808" + }, + { + "message": + "3fbb6ccc24dc298ffc50be79638937826499279a30862672460f6d1d999328dfac89f3f4275dbd426e0429d8860478cd96dbf6772f404a6c9a201e466985a599d2a42a4f0c4f3de0c1ed2919745c6f2b2c39658dff69cb2c74bda63867803edba67c2a2c2bc508c8a2f9c5ced7d59b34b0b058342baee461482cd348c5d9c89d7de59c3c2a4cb83b1e8da13abea2624bf479f60e3af7e114ef", + "hash": "55f335ffd38af0a190772784dd7f042175e44340" + }, + { + "message": + "5250a9068e352cc074429997fb0b96454be81825f91c0ca255296320ca83c52f9d644627e0728d2a0bec69029639657a18ba6801cd5f0a3d860c77e05e29819094349e1511c1f530424ae6b1d86f77fe12a5a4952396954a9c47adb10687e401bb3ec1c46fdc4ff670b321bf93141e1f9f1ad62a82cf1da53cb7d0ad55d2c7c97946db5968af48976f18d256fe1097d8388d8ac23b9bd71b5cc276f32afbffff", + "hash": "4d89174e0cef85c181bcdeac39aacb8b8f7eb0f0" + }, + { + "message": + "e61563fc29bc6b382ad0237d0134bdb27268764a07752ecca5574e9e4be72c179703de34e4c6434863dbffe23999e9d8e8795ea0d005719990d9ba1022bd3df81f33e516718bd37b50a43818126a3edd82aa86578ee27d077fd218f32fc964809ad1c1370b89c6998d4c88611c4513c821ce13ae03cf7244cafa35e8d742d6f77839db7bdad0053206cfb1c2d4bceeee39d90a703e52c2a9e5d19d934de4dd2a29637da760ebbce9790d5a5c13aa3afba228823286c747da1b6d2323b9b26e3cf3702bee849bb6dfc8bf585b393f62c9ed3033", + "hash": "88c8b1a515ef4c70f9305986feaac6b0d447642a" + }, + { + "message": + "2c1b8f69c03edc87fc6674530fcb1edd652ece07c9e0907e46c0724f2f598fd088c0f9d41d4e860380babe598106f649ad95799e1f7ab2d803da8f3b23bf21a8c03867ca7099762ce323fa6413b07fd76673c9cedd52a24018eee8779058f618fa7debd2b93806f105b44c3266adc528ddea998e247d6614189fce5d1dc9876de4b738dc0dc5d9e7f7a3b8b838488696e5dfa4ec1910e7b6b48a25241d7f304744b6817393b41e3b01dd5c59964100273027735007ae42ec707c5292d6418098ecfdf6575f0bdcc0902fc1ab554e2b509be0e781", + "hash": "b89d400c30b7b66f7b0faf565d2f63e0e9edbe0c" + }, + { + "message": + "aba8a18216776fefbad293b0389f826267a27e6dc0574874017a29ba1212e756dea2b02ff31270d55c5f86893cdee57adf08ef145da3cb88ca0fb38a43f53879402b5735420b1bee08", + "hash": "48723a22d84964ab1cb65d7d5de2af9f6a5dc5f2" + }, + { + "message": + "74f08707e7d51ec0996bbf3fcfc87cabe2ae070d193e768fef13c8d0fa390128b67c78f3ebc9b42a3f4deb780baa9eead8b4c80ec71162766d3c1ad33490ba989380214143bf35d003460c8e9c44c11fba4f56310c50a780922cc738e9cae900c4f35ecdc831168224f407e20696adcf77e1a3094e5e5b0a3ab70372c323a64cfe356901b322b14cb0f2ce3cebe010f9be5560a341ab523c76eca6f643c28318f83895fa38a7289131f54d66a733a9104157478178c99d1cd367c0f496164b88c23d0b4b09c2cb6bf32dc0", + "hash": "62f56a111a436ae2fd0ca43d0944a4eec3448700" + }, + { + "message": + "bcfd1f66bfd1a80cc7d59714d2f34fe705860f9ae17a12741db77919e60fdd0b100e613d22c140c826464d59516ce488107886405fda7352d5879dcd93740aa6afc78a25c5c1751e9e97e8db04c245e0f50b92914d0bd36df4293eb385624f7775eec662afaf", + "hash": "c55c02b53d8457919c046788bd932dcc550448b9" + }, + { + "message": + "2ee43535d62964dc01c42c1f5af104157de3c24348db4b4aa2ac8ad6aab30e4b87bfb0d42f3e31eada5e2b67f547ff8dad3e72891da15516acd2ffe73a21cd7b893efcb86a8b4f3ff8528ebb72734aab64031aa39846ebe7080dfdb0d7da46af2c9f8e3ea3f72f1c4514936762c62090e14577ed4d32f4c9461411150f9d41573aad6f6ccc1d22f3152a1598c0597cc74cae6ff70ae2c87e2e0ef6755c9e227e031e26fdcd30e2fe51a1cde144742d1ce903746a0f62dafdf64c1dbdb29ddeb8792f660087cd39162017ab0a9cb72a657c76993adb882c27fbbaf1ce2a7e1b5ab40b2af107c476c295cc0bcd68e88270a552ed644f5ba09e5c4ac8a4611c9bfbafe5e7", + "hash": "4cb993d0b61f1989382a6623ba93845d7067b1fa" + }, + { + "message": + "07f8c8ea28c5b271357217881e383530db20450e3f4947b846447707365614c9c01514430096e8e3e51e9824e68c81f17c3a9ad62e3573f7150bd41247cddbce3ae8d102911c86a3ed0a9d4b0e719dc53f795d8082d65a2890dcb6f167274cc114f592007b20c3163ab6a05c5754c362fb522c06e0", + "hash": "6c2e1c492247e98b2df8aa29029eb2fd4bf61822" + }, + { + "message": + "24b0ef668d0ccde7d2702845eed696185e3ac1b68eda09411c01272542b6da80501168745d70db815d71d6e66b983994cd2ab544c7545e17a4e4d377ed16d1e97d902baf7368c4f76691fd85504d288cfbec14be9996b06f86752d9057b136e537ddefc2e624e05e60041f1c97be231f91043a844fe0", + "hash": "019a184aca2d8ba061cf8abf28e077428c0896eb" + }, + { + "message": + "9c9089bdb0e49dcaba1d602b83e1af87af66884a2ae778a891034c13fdaf77a4cdf23f97a364a6edda77564308a752c1c93a43750a360a58922a27af939d190527a07b9f2d697ba57136e2d4f599bba299549ee6c870024a97c02a10b06728e017951e903b0107034735558282482d5cd99cacd22eb8eb1d2c32a0627ba8f5b0f048319775c052eb6c6031f38f7a2c2b5f95f68ae1df95db0d3beb0297f237ecd28fa4b3d46ac186944cbee1582dba0e603ab7cb2221a18c09830c26507b5ad35caa1a954fa6af9110a7a3adc6784b1c8a80c8", + "hash": "fb6c4ce684f3fb976cdfe7887ce425defa3d4435" + }, + { + "message": + "362a4af12a6ae9c36ca19028bf1aba307c79c2b582e769e9d0e3430b5d5fc2ae9653632b743f705004078c1296cb101f880aae03fc59798c3006982cc8afd32eaa9f24e885a08492fd285c47e91e05c69185f00b84e5e9286048d38efaa7", + "hash": "936579e708f5bc2d849ed6b6001f8df7befa6682" + }, + { + "message": + "c388529d8481531c24d929309a3daa861c9ee534582fd43c7ff9e2707e9ff36df1b465d983904ed43adaa71b2395f42cac0c6365f15170933d7bd5bec655cfe93fd5d15b9e617eded5d29038a1de913aa0aa24b7de5acb3e1b8472205f8e5d4f9968b2712e7c15b546ce28f6696bc57f2b9425a717462e8dc45bf19aaa0019f33d0ba09ac75b9561b964009869193e2beea343ae52ae8185e4bff61178f4f697d6b69cb2e185e5d61a72392809f3847ebe81ad6ac82299c45c219af265e64f2f90427a584a7e7fdadf359185850dc6747ecd93813c32c14062094652cad615d79afb63aae1332e43bfb0", + "hash": "ef1c41ea8b64e6c36ca0eeda473f9f1dc13feb34" + }, + { + "message": + "f905677e03968bc1820ed20a8ceaa3ee3c20f887ffb0bc823973306addc1ac0ccca0625e01d48f9b9fdde503a242d23552dadaeb149f5c225b9d399fe66c076fecc8e42877b30cf87da8ad8b5d13fd9685967cff89c3264b2636f8852297047460ed", + "hash": "4dbd6e13832ef789b94bddaf3e82ce7c28ac8932" + } +]; diff --git a/example/lib/test/crypto/sha256/sha256_test.dart b/example/lib/test/crypto/sha256/sha256_test.dart new file mode 100644 index 0000000..b40d35e --- /dev/null +++ b/example/lib/test/crypto/sha256/sha256_test.dart @@ -0,0 +1,18 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void testSha256() { + for (final i in testVector) { + final k = SHA256(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } +} diff --git a/example/lib/test/crypto/sha256/test_vector.dart b/example/lib/test/crypto/sha256/test_vector.dart new file mode 100644 index 0000000..552e801 --- /dev/null +++ b/example/lib/test/crypto/sha256/test_vector.dart @@ -0,0 +1,126 @@ +final List> testVector = [ + { + "message": + "2f52ce1defae10d59bcf5ef33c2d52bf4ad214748805af710e1daa56e2c76b98e593c2a1415b88b47b46cc1c9296577235606a2a175589204d5edb0e19e58b3282fa0815474b10625f998c3f8d5dee7f2e6bd8a3e8032aeb4ae3a21ac918f8d9fa8c7a4cfe70980437dda893f594d37beafdb9950fd7634e7beb11e799b9a63e36224c703cac5c7aaac07335c72061139c4503b55f231062e856c6dbd151480d4b024d44a3576bfe4c062d2161788368b936c4b53ef56b23a129c37eca20cde82cc0c6b8d285d63c67b7c221b0683931891977ae74eb89bca7a34a58be8bb0fc7ab1ea5b186d1c6a51ae639931a8b7eca64c83585c6ab0", + "hash": "11999394ab139df9657eaae6a9f63b0617c69b879841364522106b2c545c5e17" + }, + { + "message": + "3b6b4e59da94c504edea85beb16af7253d19693c5e142d8937e2bea72bb2d79262679aabeedce06061251868f6d439cb44125b88e2f5d11187248c6efd0a13a1fae49a556c2339e676d4ca1751855f4d1f18c23242b32bc3170e3b244cc0fae9ef9387d033486d721dae0abdcd8a9589792edeccf324e619cae10152352f07d949721bf8cd89e781fc928ff2eebe37557b9014a0da3c1a734185dc059af053fa9e5aa384", + "hash": "02029c5e9b1ebaf8e450e4c4bda1c5a5a618dd0a98aa6a6d0b924cea58578466" + }, + { + "message": + "d1d8848d1170838a738fd09a154666643595de4dd0b12102a36f3fc46359de918a3d858f", + "hash": "f07fe6eb19b639a940830a52a9842de8870883fa277aebfed743cddf8e9206c4" + }, + { + "message": + "366b9a0f5f26e92097c5f5d59b5103a0aa9436bf7b8d0eaca267507f1bb9230da55ddf91e846e427eef192e9ffed0a8c646e0254d7c13fa1c4ef94dd7474c6728b6c6ca70f2961b9b00be4fa4ca5d9a484c9a016ac7fa155112780d44d2ed8c09a8f1def59959027eb5579bee287294692429c1a19db47534dc6b18bc95ba21365d076db4b9b1c558d00caad6621c99044294f929151450ae3801abb54f88ca7c5a9a93b7a76e2695a3a68c02d0ac5b930c9d554fc", + "hash": "4d36d67ad1549f772383fa4b9ff29dd9d4e298207506afccfd53748b667d5a77" + }, + { + "message": + "f08cf8619ce6aa22ccb0163b999c5fcfebcbc40600a3d79320721e1d3a7390a653eae9f74f7bfdb2477281c69fb38de8d475697c8957c8311ee14291de692e5b9d07b084d793c673b654830d3fc3f12b3502c573714073c0be5ea97cbf2e1ffba528ef192e3f7785dde4a9c1f300e98e8cdfad9d467aaec2b0c61ec2e5ea19329a6534e7d90b68c17788a7a83453a3c98658a815c1c1a2363e6a9072095b056b2cce0164", + "hash": "ec2a5af4670e99623a4d206e6d80630ccc3beab927df00d35855dc1145a01670" + }, + { + "message": + "df37095fa8c075bacd88afe3927104fe2fce8d75262e36ca731a0fb6157772497fe4c3de1cccf7d15bfa4b52e3986e40afb676a19a29e76d591dc53d20ea2e8ee3d342e6e2b41afdd56347904862bf67b5f57bfd66b47d655aac241811906b751356769ed4d139d47491f7780b3761c1f295832a547a384ab414e5770d32", + "hash": "835aa4f8504e0d7d0a6916316c47ad742eab8246b878f738dc7c1c4667c3bce2" + }, + { + "message": + "6e4019941c3737a672b2f6fd6249c4eddb548e126bd03c68943349638fc4c901de2f52c33286b09893b87c959914765732ee9630b05c98c507ee8db4cd6c61b2c8aa2e55dc8d3683656c8f13a2152bc368ae4569a4c01efbe4e6866aa1d1c146ccdd9b05c8d9756c97df4cdef2cb93e1eff2199dd87b9e2be984a1ddadf48e9b9e7f2338bd92f52a6d102222df599518ffa1cdb8b08d1b1be94b9b277609d89ff2c96fc8b0cde5bbd08b6225b21c9006e904a77e662ba39e83d682716d77b1715e3db16df2a8d5facea250811a45079da21cac37fa196d77d24a67080f877440d192dfa617e1c81420d5dcc1372b7b1bda69364d071359eace51879ed7942f1c3b41db8fdd18c5", + "hash": "3c14118ca83bcc61c777083e58b9257c1c0df63b3634126c0e52dd1f74f0846e" + }, + { + "message": + "dd07363a5a1262ea6a97a414c167d78bcec04cb5e203d4c461eb5276403b2d7a3209ff49b087f8be259f958a98b79ed2e67bb7cba0b1436d9964b9c4d570967a813b79d69accff70f33b7b4bd419175477124adda50b9e5c25ba02f020ceecc62da0b24987716ecaa6423a6921cab1047d77bf89a8c35339fa7b815e024228488afa426d3532c26110dbc6ca94d29e29f6b052386deda4dd02fc7f8ec5e3486972fb9ccd7f82d17ca1720cd149aa7595f8246465f244497a0ccb4dab0f92474bce4c6502ef8c9195e418c7b15cf181f4e7753dd4a52bb7f815e5afba5a9153e58a9b5cdab399bc74fdca7ae4be0ae5388f01b7e8b20a544540a12fc75763", + "hash": "40ebdf52b8c25cfe307cc7301739b9c09335754d6aca7955fba0d721862fb8e1" + }, + { + "message": + "cf6449f0c0b6c735b7c081dbf0e6e85d067f31cd054573332ccb12cb3e0c96e510b2933174b412208f32b5d6d2ab68c88ed26ff55ea2f7bd434ace838a71ac301408173f27b3a4d833d7dd839e71b5ff04883ffdc0abd7ef8b69bc9ad3ec87706b11b053", + "hash": "80ce56fa4dacbd334a840e717cee8543aa9e39065571043c688f1373735b9339" + }, + { + "message": + "e3a3d36bbf1b6741cf013da80ba05a74e3622b32171be362a328fc8ae6269bcfed3ab645dfb5584b5b06d91c616337cb9273fabcf5ba8f0d8a94846d8f7eb3b7ed91dbed3ecf7f235443f35a78c3c26a3db605839d686391a5b8e1a66ca7ac4dcfab564434edd34a8b2e5666ef1829322a0c06e129147db3fa26e803165b5188e702af1297f37c6287197fbe82efab6feac420c31a7a4d5c98f1d61610469cc5c1bc6efc7b45c4d1a6a4cb835c990b234941758cf85d625ec0b196ea3d860837ddce7c46d46b4434cf336a7d039beb824a9208188fb0405ab81c88e8fbf1e34c37e71349", + "hash": "da6c40daa757b300c0c7ea2ad21a336d41376ac6ab1a372bb529e9a0b8686f33" + }, + { + "message": + "1ee6c8a5319e79b4b1d2ecf43acc14a2992bc7efe30eb499b21e6927c758183d6878a3a325609534580628c3ab239adefae1b15d231a9fe5d774621bbcf5dc4c4a5698446d41c3337bae4fa541d1cb39b482a03d0cb8a218f01d0ce806d3577bf745d7d8aff1d5ef7d249e20794bc358f2efe9c00ed362de194a24893f7d8aa91c85e391dc22cb727740bda58580c2cf0cc5d023a302f4d832e3f6e186b960ce554650cdcbf9427ccf3f5e76038134148e28e804c96c94c4af35898c9ae3f127", + "hash": "2fba1a4e338ae357fcf5272c86b3cf4804aba6d3ff7dde9cc2bbc66c813f39f7" + }, + { + "message": "f9b9a01a7f54ff41d5d31acb", + "hash": "732675e626f80725464a3111bec0123d93af2c1b46f089c4a7ae4fea46af4684" + }, + { + "message": + "2c4f2b98d90d85e95dd0e001081b6ecf28c0dc991998f86703215c247aa42d5e04e91b84d1e913c886f6af52188073ae7459d0ae23afcf319e0395c2dca699aa9223bb91b5d274bd1504535af3182c02ab9a8e25761ec1e3f5a0825242521bac2151252d5c8381f16caeb47452f3f91aa0c88fd58d8b3763d98ed53561eaae3688715261cea0051ddb08e74066ce2317edcaa0cc8e7d0c9c40eb34ee57f63120ad3e5be3e899d51f3f11204f040b786bf4705ca58c7c62a61c07cd11cbd917f6667cad0dbbccc198b0a760c237011736aea93a0f72f6164f", + "hash": "fab6b6df58b9f14941772395d0246369bd7683442c17dffe7d9a2a3ab6a4ccfd" + }, + { + "message": + "6fd278c22c3e2fc7ea80ae09a7976dc5d100cd441b09ddbee4a132f05e2ac90988a596287e0b06aa728c677eeb382ddf468d5f56ab3c3f75f420866de2bb2fa1d51d7e18165380e4dcea5c963c255c91a7c088c3f41cb35014b886", + "hash": "6d11d36d7ef8aef2860660319f6c215defdbc2a82d31a0224d9a269894f1fd20" + }, + { + "message": + "6a0b673bf2ece60ddaff9d2afb8eaecbfad44d5b11c361bae0240f9521e2199c6aae3987c7e648e967bc4176d4ed46bb7563586e841d", + "hash": "52df1aa08667304d8af4924e1f44a6124c994af0f9f7f764fe1b1f8301177327" + }, + { + "message": + "e7b65ff24ca1ca4666306cc42a4c429bc2c29503a23d9db244f0f3b272331478a15c827382a6133133358b59c2012c94ffa3eac8b7593f83219d562ac6533aef4e2dc15da87bd40b0579842dff75b220c0a1321dd301ff7099f748bc56c8df95488b610df3ade8b5792d38e5fb7484c780c4e2e4813f5092743216088ecb32d162f2e3ca6284516ce414b3037fd60f3f78fda02ee75fb7fb498e39f34cfb5a8df52a631838ce0ba1120cb89b8547d79fd7758991ec01b75264627c0e6171f6a791b7c53b6ecdf91ca0a591c6eba817bf3986f6796766e063552b89e6de26618fdd8a342aa4a143c8551c859dd2b1ed35541c4ed405d44b950569085e", + "hash": "ff2f2b947bb1d1230792081b2f275dc3fc6d13a258922ed33799ae88d9cc800a" + }, + { + "message": + "da42c9391f31ee81c0556c6e0ec7367236be757b2c23b59d44b9395d4ee75c508e4e8fc369d77020c15c4518ac77f0ed2447dbde121930e6562c402d5594603969331f39de28e20d11f66e4ac08c8407cc6e0508928ca42a900911bb1c8e3dd2ecff7b1fe908e1dc3ce3457abc58e37f9011679b303c4a0037e427f345cd02b764aa6eabf18639d1be4918e4647b2e97791984ce480376cdcb195693bbf0c4d1aba341416c2959aaf45268baabd7abb8a7aaa08b56087b41f28aadf920c87367aa4cd18028", + "hash": "1056e797720e439a9944b3281526ce7f93ea00516cd3a1d48127f9f30467f294" + }, + { + "message": + "87f1e37067fef1fc1387a361516fbb4ce21710de6c217df42b781699c666361904e644f63420f67918637e7c090f2867b9cff33f880579c1d021049c127aa1f00ddc6df3c4b8f663b26642c73e638f4896e8cd3b5a75000f2927cb9c5d4dd2e5d1564a68c414897711f1347059aba42e5fd096a2ce35526091af6d9433ec303593e91d4af211846dbf42876813c670a6812f5b6220a59152ad619510951a3e8ec2c62ca875610a7aec926b2ba56ced890075c0a154781cab4c5dae2c95f459d0ae0439143fd9e3196be0f511c52c21c57498", + "hash": "590b072e9212f59dbf835b261ec6a15e3c7bfde5a04c27c954ee1226328ebc8d" + }, + { + "message": + "608d45bab2efeb928065def677eeeed3ae60598382536f37a5066a5b5d4e60a5731b1b924efa3fb26de8591e8c45212f8493299dab4b3c36fe86041f6c8346a316ef1cb7644f93f4eab41cc729565dc86745286fea1bc6ab44bb7b3ed40b9c80d1baf8b0520fc30c20b8ef656928def1c2bf75296d0d2f6f272d5b34dfca19d395ceb0e436", + "hash": "0bbc343fbdc1ad6f58f06bb6561d71e370280aff032ec36f9da91c9de9bf2ace" + }, + { + "message": + "19abc27c11c23882e30aef109c7f769b57a794ef474a06d214f7a08f943da6c46b3dbe9f48b46e8ce1f5a20384e86a14e818064539c5d6f8438a46a0cb58e2f6f8eb77093e249e12ea3f60b3811153367b4cbc86957b566e7a021e12f104d651ca6fce9d34f856aa90ec435d3917a1825065f20d85f993f249d269094eec89c2f19252af9ed4825b4e322f81913aeb3c3e74cd168bec8b5e491b113b4aa8f46f0ee0df", + "hash": "fc07615554f2892e1774faebc464fb5bab5834c767857101d2170a2258d5a741" + }, + { + "message": + "98ad6a0e5233bfd00892a0fcb50cb59c08c7d0bbe58d4742321df7862ea77845de7d3ac7024543b8331b725a4d9d928a797d33c6fa0fc8a852d5951c071a598805523d256319309893a220fb5a455b9cef5cb0f62a251f0dcbd4bbf21b750dec0dc0b4fb18dee3f2a56ecf0a403f20d8e9182677c76e4b05c325fd26420cfa79d4357232e878195b20db4a378ffc7cb6c80c43c51e497d31324e58e51f7f808d7d6d0fff3ee2165741f13dd8aa578aa86e6b41241cb028d257e843b16e696e1df7db65b74ce34269", + "hash": "ddf2b78c4c3ff3cbabd4cd1e66bc5932279c46bdf4d4d1949505cda3ade63f0a" + }, + { + "message": + "84ef0a3eca5c08882e51d8b84597ac5631c47440c27ebd69c48680369c4c7250f898d8542164cb87fb26ca76806fa28bb32838f7adb0673902ac175372f6c38e259d4b42fa8c4fea510bacf6fc8bf9852320b43471d57c43d5ab42eea3cb668f9e34fcf0a895446175e1502d69b42e70b8bfaa09368742eee982c5e30e", + "hash": "99d27b6587d389399405a18e6c660ad6fea6781846c859c0c4925f2dd5b2d23a" + }, + { + "message": + "1b786c0241e3417636cc4a9c21c34d9f8f45bdcd21e52f604c0025627291071776a29810b8502c976d791761caf074ecceff841edf49b75c2eff86e1b66e49c77cfcccfcbd0b09aa0310729421835966cd9830fda9c1b5c8", + "hash": "ad63f1845f487fcbcd38bc21ac92dcfe388b1337e9eae09c41d43d999b94eedc" + }, + { + "message": + "a250da0bdec0543dfa60fec6ff77bb49be6c3ed047fcba9678550ab320e978ec9a62a68170fd3ebbf594e0bd21d0bd71ef76d4a220566614a71c93d5962ecf6ea5328fb0f6a41c72c1b1af4c9e702c6ebe602ed5369d3efe75436eb7a8bb6233af0466974d33fd1de93fddc7662f575684613997c953d7", + "hash": "591dad6ab4b12785c60ab978b5e8ba6a6014462fb76cfa893b02d52d0107c4e7" + }, + { + "message": + "a1f07698d0431521a49eb3ff089785f485e4b637ebe9230219a9f0a7e6ab426fdc14f6d5c89629ef33eff7f64755d7df34edbedaafe3499a264c3994f17203426b9ce715b278e8a02531c1daaa727a8345753c2dcd630641c652adcd92affd2a892174af7ed8c2079479f0dee6e49f93f8520a659412941635af7e82531007a36590a1fa5a834f21a416eca949f021fb897500de3df6d23b75a4a85c3f901fe484aca8624093f98658d4678d498ca26352254b951e6ad692dbe1f2c62d", + "hash": "cb6342df01e50fabe23acbd2379f917694c104a63947f0ea6930f85cb24c2492" + } +]; diff --git a/example/lib/test/crypto/sha3/sha3_test.dart b/example/lib/test/crypto/sha3/sha3_test.dart new file mode 100644 index 0000000..14a4244 --- /dev/null +++ b/example/lib/test/crypto/sha3/sha3_test.dart @@ -0,0 +1,28 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:example/test/quick_hex.dart'; + +import 'test_vector.dart'; + +void testSha3() { + for (final i in testVector) { + final k = SHA3(64); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } + for (final i in testVectorSha332) { + final k = SHA3(32); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } +} diff --git a/example/lib/test/crypto/sha3/test_vector.dart b/example/lib/test/crypto/sha3/test_vector.dart new file mode 100644 index 0000000..0bda5de --- /dev/null +++ b/example/lib/test/crypto/sha3/test_vector.dart @@ -0,0 +1,276 @@ +final List> testVector = [ + { + "message": + "5668806f2b3e54a0e275f31d341143b7ed41897d0b53c3871bb537b9986d7054de2a42a0e73fcb69c026350f056f51d49c159e3f97a8cc72e362fdb0bb2bb29cfa030c6d2602c6aab79722fb105bce83cc6a76464e6b59aacd9f7984217e7dfddb334bdd940c8078332413341f435406c8d6c28172a5982bc23ff8761232206193bf5464", + "hash": + "bee41c8ed9fede64f450b6278442d36ee32a6c921dc075965100c7763d10af59c0dfcd4df52bc2948621a4e2660795fb3ca19345e40be7e78bc37fb3bf70e399" + }, + { + "message": + "ae7010bacdcc00721658f2544276b60ca2e4197e35697b6b1870e8614784b766da1e60a2e1c12c3ab21556f3b92ff5a676ff65175f0a265d64317d13291bc5acc956b85598abe4baf64decab01eb6ae4bb1ad825c2e19e801f39dbc8af9fde55", + "hash": + "6cbbbf71a348957178d56e0f22317d4d4d6b39bd14d5c39b761b06c4e7648e050af4ee9d3c10729ab1126aacc1dfc3e8cbdca7cff8037e68c13644a565c670a8" + }, + { + "message": + "01c50180f71363a99f30ac48c002bc0b9586f4c61dadce4be3d0fb8d5a565a63638c10a535433c0a05b7cd36b4affba717b80dcc79985221d69f6790a0df1273b12d1ca88a823cf3fdaa72d4e20da1289a01d96a3ee7b617f753637565fc9e6f3185f842dd2a00140cb2f87f1b43f97bb965", + "hash": + "93d9ddcbd65080b7506fa1169d67c734123de6cca1e1150f5ea824da9908f29a37ef5cbae8af8e517fefaba878c281df29f850406df1627e520373740bf00ea6" + }, + { + "message": + "185240ea70a4cde645366399b69c62b188365b2d3ca1db8cbaf957c64aa34c18301623b20f7180e7373b265faf34e83c25773cafc424ef466a6968b1b2833aebdb8f0324e7a4585c0204724bcaf7ebaad228e93062cc40933cb0221f56d4a880b1bfd98078c00eeffbffe108968c1d2a9ed69dbe548ac6ae92604cce8e338455ad041e5bdd6e56318ba765d2b85944dd33a13a33e13f1480f69f29fa5e79830c21affed18349d9756684d8504f0ad7aecf9a0d79e2e08a308c2c3b13df8c89e3dd2bdef192f3ccf32d8458", + "hash": + "f0dab0f98dd7756ae116c28a915c0c56cc39a3034d8d2a120000e967fdc5290ca3ecb1eb6141a2cb6c35f8760cb04c8f9ebee217bf3430cc5fd3102da89b9d68" + }, + { + "message": + "b6e146d6a0139ade79bc48ba7cd47faf2ab8456160df194fcfc7e8e7ca611f792e9d1c8b408f5baadcd49dd1ec9ea860691f4193dc8ffec48a7df3047f9f685c18fbf7b8333dc0a116a284de3d36c8fe9e14fbc9c72e102d7c10454c66e4245fd45faf66210e11f48a2f670b4904ab3f5c7f61396c0ae4c7ac25bea178d0ba58b16f5e9b844c0a15effc69f076484a93712e6b193d529cf12cb8ae40bf343a504cc454d9067ac50c5d555da9555627a3c3a13bc8645c855744d45ea1142eeb51da1b113e30fb8c5101d1afcf9413ad629f69dfa2f7f899ad291182f4153d617202f3858195f2061eeeb5b5ef8114e5d42c98493900177a4a461e53fc42b639babb542e3e835aed7a3a", + "hash": + "702df14f7e61908259b58d5c44d567a3ef0887f6a089eac6fdee3304066ae396bb09ff407e2e0f9151f1e82c5373f4aafeae09c788ad2d3e0987cac3ba0c0b43" + }, + { + "message": + "74777e5cf7c3d1de7bf371c3cbea7dc4dd4c448b935c46ec80153dd5952e42a6a9eb609a2515380e426bca39c8b7c21f521905edf1a9486a5cb605f43054ee12deddcfb1bc2cd6f4169ee9fb9f66ab61a78c5aafe5f7be1be29d6d94b2934e34519be2eba93c330dc096d5a47ae399015a399c22da2ae09f07edca432f3b53da29ec15cdf18be2d4a7655a13c8941e53fc10fa5d", + "hash": + "bc43fd9359c25618a27023e07d5206ce22a4a9080e29dbc02bb5a82e8766438771e1f743c681ee19a4ef747a0b596637454530137aa3ad69321a35888b075268" + }, + { + "message": + "512632479f5b68e4db7b812cf23caa39c40df46d3f88bfe1d2a11ec194043c6310f3491afd603615f065c8d716f858f2ddbb6eefc2328509a3c3c1bdbc0b1d0c2a70020d094985d03045a7517a39a51434f6c41d211ab42b3927be48606c664ffb46ddd51b8a7aa5b347072943cbb4b729208ba2f82a", + "hash": + "424e96190dd4566f8f74a984dd822607f9d0737dff52f0a9a495b3a4da622252c4f30e5c7c227be661f0655efbcdae67ecd51733eccfef833b6a12a93c04ccc7" + }, + { + "message": + "8eb2ed325c09d65a87545820d99efdf108a7f043fe75b10817209b4702ca6dcb03d5c529", + "hash": + "652da50856e2283c23b076ad30221411eddf16c7ead3b6eb280af594118d3a2413aaee5362e5732f10a75f3ef72062078ce2e9670eec1866ce4da9f5fd898d5b" + }, + { + "message": + "0993d60537f62078207545811df171e3352fd49e1a78c7d46ad28118afe559895a8a17f27517744078255bce8c6343ca1d2ed4bed428150b6f1071f0ff634fbaee04eb6d4012c38eccf96e413c4b1d5b05c15e83bbfbf23f0d2ae1570aeaf59af3a31ba8234128cf4897534a80e972537067a3b91c9d76c257e504b4523c63a9b89cdb3293c1cc4ff64c65ecc75407d558c0c1f1b2984d899ad316264f0c94eea63f24670fc32b06cc2336850dfcdafbc756ee800675684e448605469d8fd5235a715687774878", + "hash": + "243447e71f0f5c353635c57489416aa71f4fed0d4c757f027bc549937f278abbade8e44bfed5988bcfe4b2a7cdab73c619d6d2cf6572646c0f948b8eacdd4f84" + }, + { + "message": + "2539db77f25fdebc4282267f953b6c90ff96bcb16164bf88ce3b014702a767f8f9da1fb5ebd42c219e666899804936424065582cbad839b315d9a5bc2111f1e2e9a4437fabcb232c12ac138706b0ca105d2e1e74cf8532cbdb07cee59d6dddf49df5e67b", + "hash": + "977f1110ac9ea3ee67b6f73e7c7bc50ad9e8443f5ae9002fa2095b0ebd9801881e19b1864d70f54d2412d15d6bbb8830f4e0d4d0865a376d42e41654609d7bb7" + }, + { + "message": + "9f8d1cdc2c2bc16ca0f328650b61303899dcd42b79004868f2b0e5b6c966dcbe30394c21c4426b369573583072c49a7e831e954aa7568b9d83ecadff7a1f1e4e112704f57eb172e79ddf9ad7613ebd9f35de61bf128ed5de814d48c4e9d7e138377823fb23b39a20bf69536fa557b29a1a5c3cfa701ccc6b13d2736a99a58b4547d68fca25a712e7681ea13dbe125d9b144feeaeef5b16993ec9f95ad20688bfe27798077fdcb090abbf83e3d8f84b2b4517", + "hash": + "1ca9ced830c21a2d4f8a029b630047b352996e2d809d2729b662773982eb0fba5133eb8b111239ddc8fcd4c8597edf8835967714531a4997fadab4c09974b83b" + }, + { + "message": + "c78d1df5f699c74f9554fb967f3cf91cf663f84018224037994733d825a930eb56c82e04bb2f4cc1284cea8ab43ad8089f7254b4b32a887311a5a73114552e51db1c7676c33d150e6c20fd5398332ca8d6e175b5b4c2efb49808934c7e7e1110e02a15dcf2e7ffeb44e8c31c28cf0dfdbd4a31ad474ae96043b2f0e9c483be78d66b7c0940d878a69ec2325248575a550b", + "hash": + "890adcdef05a3b270094dabf782fe171b2ca532dbd17437615b1be7cd7ef4f42dba1e301ecb084b3942ddd6b0f4550f333557f2f88c7fa2d9a994cb288fc0f62" + }, + { + "message": + "b607dc15c1e6e9a402491e324c4753dfa85f24c0d2aec0d1fb3dd017d549e05df6df02e7f263edd9fb749a16737b958dd9bfe96e2c3c89e455c9e370e2f1ca07d12c96ff4ef83f584eadb6bfa0fd052c321d1de4c8f437036aaef8b17f7e806b26e6e4b5e9f81eba551f4142ad15c1e622a4a8a958f6429f83195226cc537a43b6773cca", + "hash": + "b3859656deec4ace6db11f51b3afbae01a8caa4762c1c6aa33b868019b691602064e8cb15fc93c833981ccc6a20db8195cd126247645a8be2cbf103d5c5310c7" + }, + { + "message": + "1910b4a4661e1dc72eefc90a49c1cdae4a7930c91240991b6824cb3c0f7a5ea70dc8a46f48", + "hash": + "e571e4a97be0bfb41f9cafb4d04e691c01bc26e2c2bb07b4b5de8384ba535f838d4f92a5575af4d9e45c28de7a527507a385611089f12e43e67fbff0bb4f9f4e" + }, + { + "message": + "0777af7872950510159938dcbe7f0686fd4555cd1c4427a8c21b3aca72a91f19dd8920857dbdb47147b1bc99519e9085f39e4f70b6c598e38f182c6cfa89a33a533c20eac8e8f8527e0cb0c49038f93fe23a02598eed829feab9bd229f2d51ae6168f9f25eee54672aee98188470bf5773482f5c23d73432cbeb5aeae3b295461f8499b8bdd3ca07ea632fba4dee2c2128ae72c3430c9c557a1139bf33ce7cbcec6bdb9924b1610f13748335e2ee831679622b39e122f66844e334b5d0702d03708645753dd53726d2eec0f10bb1f2d65931f1b044a310e31d0ada9b60", + "hash": + "8e94f6727a091ee71d87e9dc2da2b44c5cfb1f0598fb4321cb796aea87d565a6ee94374c72946416e742b8ce3d05b3f6ddcd44a1d08f16b02194e3cb16fc155e" + }, + { + "message": + "e89b754ed4c94e508d28bd29770ba857969a8e271297c45e2297b43c03f080b194d173b5b9db074a5f99ab94647180990e3e098b1474c6d526d948918b7d6e55bfbdb9d4e02ae489ae309dd47557e5a7523b6a93e65a23967524b7844105245250f9d4ab8d4d1b452a43dc53bbceabff945f6618da421defb35f78e4777410179d2f6d53cb3f139e909e5306", + "hash": + "6590a1862e9e20a12780a0c1beca278cc99f9017c299c2843d4d15d56cfc8fa72325f0b40587b8ea055c1ef7d6c7d4750f42e5f4d88b9b6bf94b983742a7cce2" + }, + { + "message": + "132232834f61912dc34153f3ded0e77d9f515d11bf4c1610c595828bd117cbcd30852d698a223447fa8c15c7a9b341fc5d672390b3e989da0073012d95e91dbc710fb10bb4975144a037be2389ba501554175939e6afdcf19baf35eb33fd238e13a6517de2ddabd44b8641c71a62ba40de0086fb81282506525ea0b337f4f698f9b4b8556197ab213c30f64851da1be375b3beb11fa00919acc8b6e39d99e0541c0c95d53199a057c1cb5da58b5359ac066e", + "hash": + "3befdd9385c3dc543069baae4c33896705e625e63830f2152c6d24d879edef6d049d0a53ba37c07c9348319da8a0a499e78f8d8b39efffcd65be0516709ed138" + }, + { + "message": + "3a30b3bd2b7b13cac74fbe8a23b82e0d47f04bc2dbb952e79faad76734632850f44efaa7bea617762960a740394aa6377de3a300994dcf04b7d7a01609ee8afd3dfe043750757ef57c0afd741969dc14162c628262e2cd7641f8b5990237066af4ea343de4d4e5731981a9c2054631f599e39355d35f129af30046fa93c28d22bea4", + "hash": + "d754bd5ed1e76020521a9ae4e80c8f4309cf75f5701069891abe0aef2f62d74b94c614061690b1dd09aeb413aa237420203e0cf92baeb640c81a7ce25c4c7927" + }, + { + "message": + "3f52ce88e25d6e6159e2dc4d0b0182debeb2009a4a7db25ce5b0afc3b37932811cbcc27b651a6432dcb877988883289f9ca54b3ad46e6fb7589d49faab0bdd253e678f9c7b5a997283efbf5ab9a4e0b969e3c8fa9d5b6c020fd09e9e7a66c8d4163106d6ab4c4170fd611a43e7c9d2722d211d981f473718a8ab6cabb49d7828cad30c22ef0db22c66ac9d8e38b9a5f8a421f16aa0d48d021bf472e79941a7097c124c86d9e89e3f4424c41b077c53201eb0425c171983478c2b94876317f12e39091ae24e51bd4e349c7ae1b7541fede3572aa4c8544e46178a084a2c1c087d7e69821e135b68a6c0b531b938168c3e0e5277db3125cd848ba5d2886b921c8d50e8", + "hash": + "73466a63b7d120075e611b20bfe63db238838f45fccaa101dad271ec95b2c35d163dc081f8371d5c9ff71051c5fdb9fc54d2f5b9bb59765160e19a5cb1ed7d33" + }, + { + "message": + "f49fe1d531289c2b53b79a3bea40834a610f97e7681857ed3eb148a88ebf909e64981331a3b4606e110b00bad65aadfbcd97ce2e90a5", + "hash": + "8a6753397b994fc0000040b6369b1ef360804723d78238be5368e4cb4f78c44268d0e3d51caea0001e21273d5ce2004374c18f7acb747543d469fc57a5d04549" + }, + { + "message": + "74110b15623985bc4844dbebc6431babc6f15cdbad267aa8121a958797fb8ccd00d8b1142bff276cd59648d5388137036ed4d25ca446968b93a6f5aeec2a472c6631da24c27bceea2ce9844a786a44fb9874f7455a5340a7e045493135d74dc2492541547afd9689bf13f9895329b8739b24b001804924fb9c0fe44867242d0f854cee015e8cc83a57476bbada8816e1ec2d177d6a24021647", + "hash": + "038267f28d830d4cf0abdf9b32f91f1a6f92222cef671eb4404defaa86ae5da6d09f6bc3263f4dcd946628aa8aa385320bf9635c6b0ab85cbfec33640c16fddd" + }, + { + "message": + "0f3bea032b4b55aa46a2aab9791fc26714a8d2ef29d7a1278662fdf07e94ffa2fd905da16558a24eaa5b984ea04ae51094890194ea184ac53fda879fcd76d48d969e604ddd0f9dc13dc3fd353a4f4e0a39a37da7b9cc1fcedd38ecfbe4e61cdd6d7e9ab01a6158ef4b", + "hash": + "44644cd00ddbc8816dd3f457707b9fa2235e85dc934e1b0405f1ca272730ffcad9477c7fdd0e574ce32ebc98c0f7f0bcbd2fcb282a55298c00e2d7eaee6a2c8b" + }, + { + "message": + "0779561a534ec3fae37bd3902260d905f23c7846834ea237bc382a342338977843ccca6c45f2466d741d6a7b27ebd3160141ee468f551dcce7ed2b5f8bd7f5935d8dd157af2d83fcbf33d2bb7cdfdb64c07e9a2972c81334d11c72fb33a307f6564d30c2a7dc84a429ece212e5d351fa4f30c3d79fa271d71cf686ce84bdf676f2ec53463975742d9271635aefc999665e45ce9349defcfcad4c2af3baa719d62f425e5b8b44dd8bf0d24597db01d95eacb7229b5fe7909322c94b6ed0c58725b0d40b8827a81e27e6c5", + "hash": + "f21f6afff0cd1a20e5c7c90782bff5c31640d5840c1005267a68dcec6b8b74fa57082e88fc24133137c1e502a2cba5bd802abab418dd78107f7389da3d629872" + }, + { + "message": + "d0d33626942d2a71b59b893cdb52cb3bd13cebb262fe986cd8ae8c2077df8e066358d161c109df2e70388e94e790b1aa4d28d5288bc2cb5c317b189d2b7b85bdd0e2175796e352cb8a9060d844e14703da4bfd08d08f9f034d01c98c7e408a88ee2b7383f3890acfb7ece2a8cc3f4fad36f2734d7c321ca1d802712f004e27ec8cea2f07bb23bf1f8f1e7388d5c09cef611a20380238b422acb8009e7f9f2c269da87c27e3fde5fe52160acf70d055e7ce9f246ba9ecaf30c91e28b068d794386d2b608ec0", + "hash": + "417f8406ae348436942da09a47eea8337f4c799d4a7f9a15e95994ff99878381abfb5cb2bf51af19aded93e44e29a9b307cc4b521fc5141e1bc247f03938da13" + }, + { + "message": + "d9ba8b0ff469603086c285b0eda73dab4a0d7e79b57f2b3ea5d6c26e114fa978ffa009a8df41b28e66c512f5a363c7272904b5cfcc4f9bc401df0a3916e9ec7c4dbc665daa13138d4820bdd6", + "hash": + "37b8bf89bc4b58ea37b103d8a933c585643f3eaa16dc0975f27dfd56716148409d63075c5a1317e5cfc17acb107bc724f54dfd27d842f5be8dc6636d2c347e6f" + } +]; + +final List> testVectorSha332 = [ + { + "message": + "d623a6426109980e1d0347898808621ee4b93b2d570a795979b13a4aa8ee275b0f254a6a54e85fa383095d2935943e00e7db883318818310b463aac2626fb9363b2e2cc6eaeb2a00d5b481ceaac0cc20bd67fdce491abc12e8864cb1a9a44634c080d32dd5f3a8c35261", + "hash": "b97d0aa913f196fccf792e8366f48a58de5f7a4c79fb7f456323c000e13b5d79" + }, + { + "message": + "f7f750dbbd7f4bdb67e3e33c35fa8d7a05d037fd42384e273f2b7a5eac16dbac46ac996622ef652146ed4bee369f4b6c4eccdd5efd22a019e4737ec481491070d3c8f866f3d5c7d96b8ff3ace7bb50123aa75a848d6535720800512438bacde535f42b8c3671c470e637963ad8d5aa3aceaaa3be64c65a479e193914d0ecc1c6aa27adec11d675dbd3d650650d7e0b597af06d96a14ed84c26af79df1661436c61506cb10355f74b001768f3d1", + "hash": "f1488c41e7fa50970c4d758d0cfd0e06f47535bf8926355b9c7e70ed208a500b" + }, + { + "message": + "0e0e29858a2bcadead45f27e22fa2f4c67f73234306a7e396ecdacaed9c72587a0a137204de465f9bc47a1ce3f9434fd6822cfca79ea899f955ea1a74777269648cd7ae3105d86911d0ee8be7db10c8b96341fe4ad08173424c7db2ca605ff7ffc9ab3f82e6f5d2edef20f15e33e033c980446156f7851ae87cccf5af8df599913f934ce4ef3cbff52e3eec7b72c3dc4cc726beaae5fee0aa26f2d6b8a762ef77d4e3f95300add83cee615c1f6e9a540eccbc79973144612807f69a628c2907d4f2e48621179ace78dfe33a1b60ca56ce8f69ebe5ae057b071f5566da27000be452845473e881378f6", + "hash": "90a4bcc2586cf6475697f06f44137b6ee41ccccb659b41c513594ad536b72150" + }, + { + "message": + "34ae2811ad1a2b1c515106df1e0cc0cfaf6652a6d98f971175d45a2c9baaed2e8907cd52a8c93fa043d39d3423bff3ac82b1306880d265c406ad86b78d1870ca4eaf7509de15b6142ddb433c3faccf218f719f141ada45b24a22ac74c46884bc2f16ea4e398981a97f2b97b88a6db21d84cda48ca0500b900ca0e6076618f135793be247637a9cbe9e0696f3168dde1d2d923fc8f95cd2d8cdaec6d983b9c0a08d492c41bdd980816f0ee9a59981799011b1af8cec45430e2ff1270ba3", + "hash": "5c3fc5af8e0ec827c1f9f479d0caa9602cba31927acaf126ab6dcd154e1727d0" + }, + { + "message": + "25cd0f3848b8af1b34799075bd197450df4b4116ed7a2aac860f3328511d208e1b5957fb08d7bc6ac77ef836db8f6056216e9de5b730c7c12b56619529914d3740c2cb58a7ef5eb792326ab252c8b0d854bbb975a6b3a035d00c8dc9c8b1017216fd2660406a868be4b82a76fb6798068cd1784f232e1c3abe388ab44b5966b62a478377036e336c73c1bfd84a4822913db928f848a8d95cd2115879da", + "hash": "aabe971df8f45df6843a9fd663cbc80347db0ca32d4ac3b4dab962de4e2794a6" + }, + { + "message": + "c72ef5ccd3c4f0d16bf7eca809a3f6b193b5cdcccfe684481b6f01a9ffdbd63108ced1f39b20d62833f9541c7f0f6379744a1f8722a9f990993acbcd16e24b062e8dee178253e0744643a7223e7a0ba1f3c603cf491225a51e4aea6fd9448e69ef94635af219d0fe7b92000a70b467038cb2fb7fb3128ad6883e7d9d66af06a6a82fa7898ed6eb436d2db657dfb38bcb784d06f3e129d70a1a475439731a1bb6d38d0a8948b174a8e211bc7ccc60257a3f8ae8e406a56f0b86f66a4dd9a9234e2ebb4c8045b780dcb41f1f36d7716e7385975b73533c823cf46411ddb7bb4c646951527ad9", + "hash": "cffe7c415328776a8a5a3d766b0b8a046f1dd0d495fe33d5271863d20f017507" + }, + { + "message": "d50a33f5b99c6824e24f74874e65e548dcef", + "hash": "1bb938b20374edf91b441e870ef2f2661a12d73c1b45fd5f82e78338768dff57" + }, + { + "message": + "96644e056a01b76ec5e28dc6f7af37f9dc8f274887995bfb6549e6ee53a75d4126f21ad4050b5607a5c5aec54e776294424f257992059f07c6582943b144d0e66db294d026c1efc130d51e33745c9c077b51869cb50d348f94ca4b0412cad3649ef68deb6c0c6875183f545789145c4ce5c3f3ceb7ee46be957752b075bf347207a7b2fc3153a9932b084ab58e7645daa22e6e42ff4cb5d55314307081003157cb5ded735df8c1ff032f1aef", + "hash": "2de92de651e7c90e1bc73a43ea9f7a8392f59044b933ad183df9afab78af2ad3" + }, + { + "message": + "a74865c5726c319fa0008a4cbbf38e0072b9c9c8da31d29da25cf5a9fce6f3dc2017d4a77685c5cd79f285a417fd2876df4be776046dc503a2006a8d4653a1e07307a5f6e209686687d40674e1ca3566ef59e4d46685f4ef0faf86694c32f6559af39716021360f47fbb0e022e5e90ef268b", + "hash": "71d74afe1bc36933b7f435075508a1e3a76c429500f4f17f0e927e7155df4ba0" + }, + { + "message": + "dd11999fdd96251df4efa2c8922b724313d2cf44c8cf189dc3039b08b51e43b2d76c39434c7d6258957af9f83b0610daa048e4db72b0f1397b4e266f69c61494e76555ea1f3f9292b11b6ece4157825e913940d4cbdf1a10edeb6069268f292a2e146f9a3feb59ad7088906accd2ac6e9da0d47bf92088472ef0d979458568135ad5d4c749665185587b61304e069de9ed8e2349f67b14a63978ce597ee98292cc7ff3354307e7fd", + "hash": "5ccee63b403c72fa2dd8a1366e290fec1e9ac0a70e88a044a2a35f5646ff3ca6" + }, + { + "message": + "918cfc5e0c285c4a56500985def96608492342cf973246492080aa26a019aa5fd7baf9b98a1de93384e84cca796f5b4e6b8b3b11978db10e8d2f35e93d19e9dbac5f07c0f29cb4a2", + "hash": "816c2ef0a7a1a7a6ec5d5b48b16080c5805aac278933ccbed795bb6cd0fcfd05" + }, + { + "message": + "d954e5ce2f7cd47eb010a92bee6e65bf8d2e6398818713c4593c486c995c47528a090b9bb56f93dd41894456554b6404d5c7354dc868e5c74cbc3db3b9c005638e1aec4a5a09ad6095051c6bc51e2d3bbd5dfae07d4d80b516eac008ca49bbe1871f5201c9e89db2c8cd0557bcaed738421e2c5e1e164f", + "hash": "40389ce0cc38b8ea317243d44b2eab38273a47275f5f4c9154544359adcfed31" + }, + { + "message": + "76854f36368932c15e7d4c0a5db1154fec5de106e82d20fef7d08192e90dceb1530f812768223629283c7565239e6f4ae758d727c1f250e257be844ad2611f83e0fb73e9d83f79ec31ba1a43fda83db09501d6f70553acbd4bcd", + "hash": "7dbae955b72b4b3730e5b66d8a74d6d00f0ddae38fa81f45d37d7b365a6e9805" + }, + { + "message": + "b88439cf02515ae04c65dd0adb3be775eb666347ccf01f78a4c4791f1131e42974f8833bce7186aace660a2aabb6108ce5d77ffd305d3d32dde85ccde47e8cd6d0e536a0163754f47a21baa3c216ebbed77b7da94b754bba5c812a9031dda0b05ab5c3a6e74b5b18068235e782623f62c046848ee58541d0724235c3574017a7066f3a858d9ed34665954e5a3cc5cc8e980f44e70ccc640eda94e9227e9c35ad58737cf35292a6b4187b37811d762c8d7bff2e54631113c7632e67f9", + "hash": "8c07b4321cfeda96e4f0fb551536970b69485fc6c888adeadd9a916a97c3e94a" + }, + { + "message": + "2eb90fa2f64a96c48754d3e52bed34a80988e834f0429270f34d0cd56df31aa0d1ea7b02eaf7c16a061c0bc876e2846c0879ec4f5b229dfb2c147f11a82bace2ef1199fa34bb0c84d6720fdad65db680b67a1994258571252349a4bfb9fca9bf700194a404301835d4c192d81a9fc6f589cc7e0259751d8b7c39bb6a5437499046d2051edba2c68c9d95a10782d67e0d628167ddfa9b0e7790421b1fcb8dfaa79c773a8fd5ac98aaa9c99109dbb93ab19e7b9945e3117e7cc0ebdc560d5156a35f25a3aed058075e3c99c899614d75b6b8b6e47b22d9c2a736029e2c187b19f807ed14fb48", + "hash": "86e7fc566692c00763ebea8f03d77e7a63daff5b4888a66587b41454f4cd43ae" + }, + { + "message": "02ce44ae00161f6b02af7d46b9c7524e438b6b1d45824067345d", + "hash": "06b1047f29989d92ffbc97de82f1e467fb43a8f9b1db1ef64a40342c1b6aa6a2" + }, + { + "message": "6b5e401e2457672bb8ed49c63c92de1a6b923c89432ec5550adf", + "hash": "698102e295d45502281f8150f67cff6947b1e396eb53631d1b452152871132f7" + }, + { + "message": + "1bbc4d983b4516d7d8e318b5610f995c76f5feec18369c125dbf2c758c5aaf8ea99442ab148948b717f159e4740365320062dae0a264d7138590496e86ccaf7a0c4b12cd4f1368ba9569fadbea991642575a6e3af64777ddac9cff39835b6cec2922d751504abc97b7562f6f804f3699fb19b34f59eb7c307f634691a87d94273acd42f09102e48b55284e279953d2ddec4e94b4ad150a9b8ed2b13d60f5785f7eef6700f3f02eab66c15d3ac23ece7544677d88e3a2", + "hash": "970eb803318abfd47cbd183ce54085081bb5cbe74c66f8e956ad2faa10551dae" + }, + { + "message": + "3d6a43d50c576c2d3aa918160ccbecc292fb642e185e2a9eacdf776f25ea9b8d", + "hash": "4147f431829a4a505bc084c6ff93d34c755d7af4d88a676a78ea48fd9e34f147" + }, + { + "message": + "b8938f0fbef96cec47cf9b1d6cdcc83d202d3dc0bcaa4761e15fa9623a6734e200d1e239d16a6e5f4ebdf500a50a4f4d3c9456b6dcd7066faca447f2e099a03b47bfb359b5d532776c1f16f224544a7ba8cc02a55847128f15b85be3941812a574b530968553df0a1d8fe8ebd1794bf2963e575e2c8dd136d7b9100c8f6c161aa03263c49cded3", + "hash": "c486fc1ca3430406a1f427710545696afeb7144bf06946fe807dfa696fabdecf" + }, + { + "message": + "316bfae18d6770110980ac4aedd0692187b103b5b045f47775f03e974742d65de33f0d6c4452c543be7ea2d72acbed0b5b1b85c707a6156b1660101043dd88c880a4375fa16ff9194e2dc753dad1d919589f286cedefbea7820aec818ba0b3e3ab0662aa5187ed412472327f067779a77ae314e24a49295bb546be4664d16a2cb76592c2cd02114efca4e2bdfac0c44dba2a16269a1f867016587fd13303729a9d5a1367bb9438b15339161d963371888149dcc3bda614055f4c5e34670189bae574853801", + "hash": "b1683257873e39aa1b5ed24b4237d4deea7921b59e46a50c0bf2cbbaad2b0afd" + }, + { + "message": + "a4b064f6ed3827bcab040074e106e09888520795b2208fd8a5eb1b82ba44e9878aa989f2cb72f2be722177aa0e87e579881604a5d681a472cb32b40f9dc95b5f18820c6c2ae18afa4ac73e326112efecae6d528016ec28570c8c28d7712d0191a30aa6f112c9d8907203cd9c18c3a2999969627d15f82ca4142edd2a727a08399f755581ca7894faaa0b102d0740733370a763bac0b35f1fc1", + "hash": "7bbe804e3c9915b1e564f1e8b9759cc8726b41787fb528811a1e574ef156486f" + }, + { + "message": + "9e6e2442f2b1f43344614982ffc8952432d9331017c1405d7300a1e08742d9190d9bd21136a3895d", + "hash": "f85c64ede0b72bec97f10cdab1d98f5ad2a908c49dad9102f95d8fd513827347" + }, + { + "message": + "20dd72342dbb431221ee42231e26dc0ca50b3644bf20c94a32f55968e727c2288aaea25957634aeada87d8072be2315b38ed5ef2019a884ad8cb5c2ec02b530d57668fb3a7e855be52452ab6c19be8df06166726417bd30eafe5f6b77aa3", + "hash": "a69ead6cf67b2e39142c040b18daa4bb1e217a48fc86a32d0988914d924effa4" + }, + { + "message": "4a0b6f3cabeef9a5bf2fbf88d5c31c6e61dad86eaf2497976f", + "hash": "ef545c90f1cffb0bf1f08eec7862c0e6c2399a8175be6d5f1d1d0fabcf547aa1" + } +]; diff --git a/example/lib/test/crypto/sha512/sha512_test.dart b/example/lib/test/crypto/sha512/sha512_test.dart new file mode 100644 index 0000000..2f10c9a --- /dev/null +++ b/example/lib/test/crypto/sha512/sha512_test.dart @@ -0,0 +1,18 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void testSha512() { + for (final i in testVector) { + final k = SHA512(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } +} diff --git a/example/lib/test/crypto/sha512/test_vector.dart b/example/lib/test/crypto/sha512/test_vector.dart new file mode 100644 index 0000000..fff3fe6 --- /dev/null +++ b/example/lib/test/crypto/sha512/test_vector.dart @@ -0,0 +1,151 @@ +final List> testVector = [ + { + "message": + "0273d85416ac8a078f111c636233e43853dab3d46a179ea4b4f658bd594f99f68aef0e4b4a76f12d8ec541c792322b85384528fa2ba81fa2b5d4a36f95ca87cf491eb491cee27388d2a71b3d985b699687be5fd3a4d3d1e1961d4866b515211ad6aab7706e2a79c9e7bc0e0dcbf023d876a7f0", + "hash": + "1d8ed7bd0513736f06b31e2c26ef9a93154645d20fde60d4b21cc980fa751f99db8b0170704c9b07278b498cfed56cc70772afdcdf6e36105ac8912563325854" + }, + { + "message": + "e887c664cd06899acee54c393ef46ddc3c267c1a035f258eb938d85ae33af09395a4f3c3f2bb3f8b44176e533d52d89c5df6cc0c66933f884881c9c6b0a21330b6c35c6b508277152f2e6a899d74879297ea8ee81300573b6a37dce6ce6889a459da70026e4bedb6ddae2710a751ac812b7e5b4039c848235c0ccbd86dfc20ba64fa7a1bacd8434206fb2a246a467c4e586760f4e0ec453b2715f2fa52fac2b0eacba53c17cf5085fb64ef92ac6a69129be24b5142fbf35393d79459748cd84724d1a8d223718553097d4aeac306", + "hash": + "49d80a50d4ea85c5fe318d62e5b05b63a5543b10b1ab36b63fc6811973e18d5ce6f60de05d435454ed8ea9fba28182edbaa4aa1c299a5b6e26092097aa2af25d" + }, + { + "message": + "fc671d657ac54b7512c0073d4c9773e62e2d9135915e82ae9236eb26d625ac80a21f7e33ebe87d80ef12f9e71ffb6758ca2bc0f978f3de6e8c236ea189eaa8654de789bc778756b2ebec0e00dca6ab268f670748c230910e0740a523530a51d072e26826fa835fed06d3b3c00bfe39d78c0be4305cc5a64b5a77b2fc63814b4c426bd173", + "hash": + "60bb512d11acdd4d05c7e5f1ae7b0753fb4db443af1e468bc730e5825e42627f9ec2baf0ecd5a693cbf032cf969639a13825eb704280ecc5cb379c151375391c" + }, + { + "message": + "ca10bde35d83d41386aba574c6adf2991305b9c5a65e7897972af6879c5c9bb06f5d6decce50487ca101ec8720191e1a77ea90a19521415de6f7fa1b1c836be590acffd9e4f9898a5ad4b7fbab5704fb19965f5e7d9e1c49194bb63eba", + "hash": + "ae9637aa7bab7bd75f8867675b4a1f1cc542084e69d9fb9307bb1667dce6d7822f4cc2e7881039741fe871c512db003c3c5174e36af5b991b24d46d0077df6f2" + }, + { + "message": + "b79316f230fe329ae014f53e17e45619b9d28180d2e5214494f7a578e62e42cee1d2e48db1138201da35f675f18ac2a0cd15baf874864c185efcbc2c934ec3e7e22f4ac8709acb697efe2be6a943cbd926d0f6db0ccb682bda5d9abfa387738fdfef294b523e05aa2681b0035a66e6b19d6b41b079972ce2726e733fab43066a03f27b539af6074ddc8b7e1ed00be7aaf12c09eb733a2d98bcaed51c7757604c59", + "hash": + "66b9b69eac24325a9b7d6b983fd64216e1731634c24d842c1a7939556409d2433663f0f3ab1c64448efe8269d80fd74b874430a7c0b2e18c1fe6a5c12794055b" + }, + { + "message": + "20759c070605d7886e23f276f1d0dee75e81f8cfa3f0cd6dbca5c3c77f8bcaa04795ea32ec4df1abb21622f7ed397d2ee682a436171226b96f31c9415b413e8c5f8cb59bc99eb711515d03c033dce9d88964714eb5c6f24c991978322be7e19a90fcde7653b14f0d5182", + "hash": + "b2658790b7e7a9cbad2f9d64e0d2a05f901a072bad9f38b650730bff0c68a134ebb8833ce578f3b2cf293254a067e4d95d4b7dc235ef9ce71d9c963591c8d248" + }, + { + "message": "17af4309675b8cc983d3cd2fb3e99fa333ad", + "hash": + "4833fe762085a4c5b4de5f7eccb291a7bb28aefe241adb66bc540f922a3651718c4cc8a0520c64517e4c7f1cc072e5519b917c1b2afe3c436dd3a16d4165a2d8" + }, + { + "message": + "45bd3ef58df63b71b4feae055538899d4e4119c280043dae0db0a5d9bf192f823e03e3dbe5f6d130117b5b731baf1b07b677c4b646d6cd91a5ffc27105d7f071d135910e099f2a1599d3e22ee4526827464188ad5809c3978381800a3381bfff99410e3185716229ab6cc494d685e97647fb3cd638f8f4c0c5694b11373b43d010e63172c54e7655ae5ba84b9c128834bf724f99bfe991dc2452a89503dc325c23432fd47168dc1a3871", + "hash": + "fb1df8293f1c6c8f4fc70ee5ee076952d40bb885775dd9f2e63908644d0c2bf7b774667bffe53a4c08b323ef5c61a3a00d7354b1a1547a8d75e7cb304376a38e" + }, + { + "message": + "2175981d8cf1e03f216ca38b0032c26fba3dea67a26a272c2e9d4ee7473537cd5085de29bfe6d7fd84c52f2956fb07f9ec8483a56ceb8bf8e492b714fbdf863da55d53fca5b086b8e49512f1ecde9472219a4eb65e61cf84efab15b9130c5806b6f4203b1ed2bb98939e768b2faf50e19a5d51dc0b64cc24822b440ef7f307d8a26ba9d050ff913ebc5ed5afb65715a8bf30b7cdaa9a36804962660f921d8f7de2dac853280287342246ad89565ff2f656b1203b5c1e77fb1c20fb899f163c192823dabb82c5604be0119a2e9eeef9bac158f367f7fc718bb02f41c2836b2cc83b64d9392b4ce7a9cf84d42a5b5b44", + "hash": + "528ad567509a985b4d94b802eddaf30b2fe546a52c88b3db24c4aaa2ee1fad47b83d9f0aa7cef5223cc72bf4b0d7c06f66de142a78c22aeff2f846c7a9583ec9" + }, + { + "message": + "66b6ab61cb86e7d2d42da540f72a2b366e003392acc57c3855132540aaf72e026ea1f8033936b449c7321d991d3ee0c7b8c5b905e232826f21ca2972b034ad5b431a8769a48cc46c7a8ef7e01e3c9fcb682d604ee0cb41d90a482f338e49583e8946e0ae2af6f167882b229b892b9a51adfa2d13986357fe2794d9753afd6cf6d0d543bc465d9b56439ee023972f757a5d1980ef64a298dedde02521afa0d1fe", + "hash": + "516048125dbb2d092cd02a0dd38f6b8cc798353fa176dfa295401f77e4427af8e61ee848f9692ecf7168fafa036d20e0b364a12e4bddc130b37fcedf99e8ea21" + }, + { + "message": + "066146e264365501c7f2b299312398cbed6d08dc92bbbade71f727c608ae2f10b9912e617ba3ea420d35a82f69c69fcdfb1fdd42573e08fd653bfa1b8cb3ea323c009b31fbbe63339203c4dea0cd71803f7e613cd35a79060d0b477a4e8540bad1d52d746d38393bc4a8b55ff5b09820a59191141160dfbb6a69f233c6beaf78058fc5ffff5161885374759a162b383d6f4981c2e1c66caef5bc8cacd280ab5454", + "hash": + "d92ab76fdf2d82ffdaaf6d661807f8e31111ff51052cfe95cef8546b882bb7b205399ff2072f0849885bdc78c2285658b0bf3718a25b495f96f5040e74e23d2e" + }, + { + "message": + "a2b3289785a56e5db3ed6ba3acfca14b45b9bc6792f671a7c76bf49351f3d41f04ce3703ba8270c7b97711cd5a53f9270db17ad3a2acaacb5faad5f0f0f152e64c172e3c55bcea0af9f337ff66d5f1d6e077077518400ebdd071cf0d3f4138499e605a4a5b61aa9cd11b44fafdbdf138457d22", + "hash": + "4e7c172ffddc4fce86c539f2f783d2fe8c0fcefd7202d98ea64ff4af74dbaee92eced0622bb2223adbb057ae7cc08418c5b68ae0e6dd070784d3e1fb6f7f2df9" + }, + { + "message": + "fe72f1707009a4b43c24981fc1155b12cb24caceb9f914504b9d4b1c6fdc4cb37a950428c84449b7c32c6cef9e2affbcdb64db29f9be9995772643addbdb0381b1ef2efabbc5a2b15881fa8d7242ff2b945a61a90141b4eb7cb61a71d80c714e3f0cefbb7d503e31a1f8e62e275e813325b47887685b873a6f45746f5d3ed4c6e2b20b16499d4db181c6f4a6485d716647bef11a7b26fa2da3645b4d7d0fbbe1861c4e857941cab8d0803e64c543", + "hash": + "16d3d8a09d15dffc931655795307448871665eb64d20e91b5ca02eda114ccc2a71690c35553592c460dfdc3d6c153d2c815c7e64ebdcbc4970724b9f2cd5c6ae" + }, + { + "message": + "dd6171c9ce819a09c397dff323e6824fe6e7e8a647785fdabf111835a949902fd0edfbdaf02b2bd7c6a91af146daeff80030ffee4927667962e4070df4664c79fc545c983bda8fb35887d150aed0a3867e1b9e7097d4dfa274d878943a2fde6769efb6bae9bf3ef29e26bbfe6700a521df122d7834ad4a046404c6dc5c1f3666114cd42924ff469b6caf60350bb90f76b5b40f5115cfda48d739c54eb7cd1dd97ab99107bde9284c632f2e50d25374d77ae8aeb63bc0b4fc9b78b116333e920f7dec1fb108d7890255addc4c47521b57899845b09b5a1bb456b87c5e262c48bdeaa767751a364be4e2f065eccd0ff201935d94ee3e6cc7c88036871350201a652e5af0310f8e122dd5bf", + "hash": + "135389e1116965f3bf52cdc95389c62c4b52b88f902c56945c2d0c35d7abe90ba1d25beda61ab99253c37214f78091a834034752de0a3d6bdd5aff877fac2824" + }, + { + "message": + "d04a3a30a74a4f92d1695e23d3a9c3fd28ee53f625e333927738438c04a6dc86e5c65d3e4fca59f0364e46c4f0896d0bd039aace4cc7cdfd30eff15b4c4885a8d9616baeb492b8e696f5e61a1d4633a108631c423fcf5005d52be855e16639f990278fa906ed07fa119a2b1e1f7c66fe4d18267f1ac95ec40c03b41374e17f72af60efe88a1725db6425feb677e18a7fb3e74eb7ebd046ad20e199dd788e4e5842185ddc730879e4d8e31ad1d264240e087fbb78276b2ae966e76b7698af43b2da51e778023bb1b8099793c8aa2e0003fac8c002b4a06cf5ac627e2ba1d38763ab9b0299a08b873d2d4c8aad929f3e2f9b76", + "hash": + "4a21b45504c5130d9412f9f8bc0630d2e407bfdb9417fafad0f4ee4acd7ff5f68780357aaa9d634d9393fad4dc2d25056de373ae259994e7b925c09af5045b6c" + }, + { + "message": + "4870fd1bdb771ec2e247cfba362b0b03007a629c610c402106dce95d69c001c3dfd90d32ccf8fc04019eda140c8bb8b681593a2b393921cde83c1bbc8dd2c089457398ba9a4ba2cc6b06fc8f1179fad57a3e88f669d5089566eaa4110de43830ce08feb1dc05e27fe327f856914ee19ea9dd5512b04112501fec2e762457799a9f4c5a1a9826f8bb5c6ac562f699", + "hash": + "926da00d0e36f0c277d99e762b36964a84e259763eba090e4920c647f7d4100e3029e26ee04465e4cf65c22447695e750dcd04f6dcc99ab75db7b3fe93de6439" + }, + { + "message": + "fe169e9855f945316b7e369738a75955a613e03b42a71fd51ebff18181b503d4c3290b56a96bcaac19cab281d899496c66959336fd150b6b2bd4cd054900f1acb19bda9c3a2a970db451aaa3f8547beff406869e3d6d5865906099058f1a1582cb63fd976efddaf73b975359cdf8cb6ef7", + "hash": + "07220bbdfab181feef2bf5d188dc40fc0df32269ff320a199dc3b2c28e3b212dbf2914a6d4bec5106186a7217b342fe7c27b2be4b09c2f3d61cc6f7d1e6ae60d" + }, + { + "message": + "0512fb9646c4f8e15d94ee2b891177324b3223ccbf2e5267b9b76dbbf7697294125b670364985d1f372e6f1c79bf69799534f6b654eb59640906b9b80e1754eb216cfc2cb5e03e0925a46bf17726e4ad3cb6dede6cb8662a2f346e3f102cb3c7bfdbce367d0961166607be05ca50ff7ce269b76551f19f1a6cd947bcff746ae1b98e970964ed065dba2dfda242927ae2fece26e7d0d4083e8c47c869f9b5e1baf72dc0304d6e609d9e5cdcf5192c2e0b8ae1d9", + "hash": + "1c8bcbc6cda64572097672e978a1988cbd803108ae1ccd85902130a8dbcc321b34aaa0c63fcec192400ad4f7dec2ea050a730bdd2afd79534510370a9d9bd877" + }, + { + "message": + "03080fc3e16647a3212b7c0c6dce4d54e86fd2fb85b6d117b9d54c308bc64b383bd062de6e03d2ef3f82353f65c10983c49957c219ed0d769ff56d396ff3a611ccc80ed5b9603fee092d0abe066c9c77bbfa7f3b4a23bb0a55961c4022d71d5d5156c2896687ab074ba380b665733daef5e58c9e59ce86ae92d472e0b59ac943b145f1647da3e85af62f023b04c334b9c5590570abb6153624be0c4fed", + "hash": + "9b466441c5a6d9e8313fa8024fd553352221581120505ca6a93583ffeb53198fba46c8fcc495031dbb6175d683f405996c4db30cc627e828136d02d560974028" + }, + { + "message": + "9da34abed1c224cf40912d4aa6df63791f5253a52dc0c0ecf04ec85a82b58993eb8fe4b85edc61f83edbaa1fc55c10bbecf2f3732eb6d3a08421d85a2da3a4e4ec78976908c3a54aebd201c0a8c051203f", + "hash": + "470879b4cede1aab3d7c6a607b62f225b947a47fbbe8e8a2e7b49928bd4f0ae94eeeda247e82579317481d2c1aaf3f2c50731c95238745defe769a6f54d5e2f4" + }, + { + "message": + "abaaae16191f5d486ff928ebdf15ca1e8269d702762ae870c29ae352b1cce7fea8cb9c7fb7b414f673a8c397172cc2730e7cdec2953da5d2cb673cc20cdd13b8c9a2168cb4f2e9757bdd358493b20ebec10611c05197b10ccf19bbf7b874787be15002e9a2c8aa2bf0fdd2bbc6fca73d640df85f6e9409d141d4b4e46f15308c6ce38ebe368c41aef8bafde22e82bcd5fcb398fdfbfcd8cb3b0f255fe65772963879f98e68cd9722bee1560db63bd23e7dfeeb276e8b41be87f223702d531e4a0547db2011e8fdc32c", + "hash": + "4863929b8a55c668b88d0f7bc93b76b9af3f1fac1557f776f05f988026635d0f9ab08c5765d9dbda4b5576f8c7305743324c99dde343163748a0d9c4d554b575" + }, + { + "message": + "af3804c4924cb5d64d8796577dbdf0b2f4fc5ee27ef38151705cebe2176562264534767388e8148b428174496edd8694bdde4f2a992a98fb08d336c6aab5c6eb133e1ba4273be33688c6c9cbd3b2f1c83cec763e15b76c1ecf9dbbe6c1af77ec65c5225f4555af2197816819c6b922092f8e2d6f73490ac11e9e1cee2d4f918ddaed5dd26f9a028732cd9b45403cd24b1612d044f9417a23079f7fbe9a7692281e36cc217a29692f088c64d8d14403ef1397457053ea3dd7308167a8ec9b5459c1beea3583b25d923baa54128168936156b2ac426605", + "hash": + "4f4c9aed49d3076c2b0a169f4f5a6f37518590a60b8efcfef5ac1ddfe10a8cfc826fe60ef808197e59e46af703c5da25346b368e9eb5adb7136e69a06b916cff" + }, + { + "message": + "3c2924f8c1f1563e338dd5da9d0e945a676cee3f0afd1bdd0f694433862b7009c927deefef636238639dc2abd65013c0efd74edbb2a79d5005f5f40088af532899a2ca40761b16de279407dd17b43925ea9f14d2e2ce94e336d6d340ba0a599b016db9040bca31cb5d3ccb9f72016edd0f0a473b9bfc328ef3969bb3a72eaa15a9fe1618a996ca6cc1d491c098a32de668b14acce7d671b1c399c6283dd75f6930d7", + "hash": + "84827fcd994d8e7e34f2531c10af9d6fca00664077c5fe3849f710188de014de978637333576dc628245b5954775c1ba2f75c048b57ebea072de1335f7f08ec7" + }, + { + "message": + "952e2be6946375be3eba2aa2f1fd42d4ba1a04e160e1363197569ed2a30879c5149fbcb4dae9ed0ceacd82689785cfa06cc7968955a93e0b75649e20340d037b78116b0b750daac3fe6a5bf266b104844855b4ab35e4c43edbcca274fcb5cf3b499f4beebf5393e068568ac37f3d9ad1541ce794254e799a7ab57ef5e5985f6d9b1c5e8455c5d2f9967a0d7bba44fbdb3afc076e679a5fd121f2a71d", + "hash": + "d0ab19670baac5fdad5f1f24c25f5342044670966c2287b8e78dfae5df7c6aef59cc3cffe8beea20e80ba297e7a8b41487c79a5d8597d11c6f2a88bf23db31fd" + }, + { + "message": + "436272db40e9bf40d081ea45af73fe1f9618d1b3cb1654041fc38e4390f8555264b4e6a9b2a3ba06f0c4d3013329e56e818803c9475f4ca7e9390b1583b22d0b09361402f5ee0c9a9a9d", + "hash": + "c000c4f321acfcc21d2c2c8bb6e0fe2797259e6421622289ffe6f629a0f4cc8f573a9c2ac96701b4e03b7fdb1ea458f3845e94299553ce797cd302eb39db54f4" + } +]; diff --git a/example/lib/test/crypto/sha512_256/sha512_256_test.dart b/example/lib/test/crypto/sha512_256/sha512_256_test.dart new file mode 100644 index 0000000..aeabb2a --- /dev/null +++ b/example/lib/test/crypto/sha512_256/sha512_256_test.dart @@ -0,0 +1,18 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void testSha512256() { + for (final i in testVector) { + final k = SHA512256(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + assert(k.digest().toHex() == i["hash"]); + k.clean(); + k.update(message); + assert(k.digest().toHex() == i["hash"]); + } +} diff --git a/example/lib/test/crypto/sha512_256/test_vector.dart b/example/lib/test/crypto/sha512_256/test_vector.dart new file mode 100644 index 0000000..beb57b6 --- /dev/null +++ b/example/lib/test/crypto/sha512_256/test_vector.dart @@ -0,0 +1,125 @@ +final List> testVector = [ + { + "message": + "9f5a6fcccfa911a4cd45cd3f943aa5e088f6607090bdd08f387958d9bf68f9fcdd825eb1b3d25552d212bc0e3b9ba8ef28aca388c1a49deefd6a52bcaffb186486276d25356d885f8d22d2fbdb9b4080bb36cf85b7b7448b8b9929068c0708a763813e79a3f17a2127d5662e4353b16cbb48bb08038b36672f77135184ccec8f25704d1b4b1e8ff588e4fd99003452dc97d9", + "hash": "06771a6387b95401ac42ef77a10fa13004bb8457aeee6097561caf8e8f41cd2e" + }, + { + "message": + "320c97bd982e89122fb2712429499bf0b9675a3604aa5b68230d3e39f42b43fc8c88d3090de67f1d857af1f4a62ec84ab2f2e3adad57689aca9b6c4938b4fd20481ba59d4fa78db9b299b970952cc9fbc3899145c314f9396538cae642e8390a3eaffcd2ea523305f48da80082e4c6d6557cb4a396f47e58", + "hash": "d19233faea9b35e78e08a97a007819277661b9789b2831a1970f36d9a8025d65" + }, + { + "message": + "0d3408b491db465faec5c8c39cb6834bdbfc9cf8ecfd504da2d2b25d2dd7a3a95f56358f646d3799ebaf4e04f80b91e1393a3c4aa1c8e8a2502b5790741690de2e0d", + "hash": "dcfaa6829e481a2a83051c890efafb1a680552b9b92022d2bc4cdb4a4515c592" + }, + { + "message": + "6b83a3d8dd39cc023b791d4bf952f4f014e729a543125aa2fd625169e643f1bd788dc1768660bcab91759fe3e84f66311799ed6b6bed6773280d1c8616e94a75de6e795481de36b38edcf7f316bb89ce27146f09a8b4264edc6782f687890d5e1ce9f6f82a6a835bfa7772fba5ac5c64dd1548cce8da28653b751ad7439435d8535411deea59eaab205cb166d3a800fee9375fbd3d35502fa04b1dfbcc5e850887fa9b29483d0ceba8d8b8c0a56347f8411e1645702a193e5939b4a96f60853226ef8f", + "hash": "a24ad0c87eadd2f6387c29f20af6fe184d8b5606f863438a6ed5c8d4104e8035" + }, + { + "message": + "2569c2152ccfc1f6335267ae9a1bc10e9da62e280a3af57852c45f6828f678d445a49c279ce9d1c9f3b504edb447e96d88c3178aeb9d4334c8a127050ea1c6fe04e0b3f054a076b3f375f3", + "hash": "730b9d7c3aa09771298ac6ab8d41387c21518dd07c8fc60a9e04dd39390749cc" + }, + { + "message": + "b3e64f04e448d944908d4f1e19bfc8a4f2f3cf8cf51b600f609909a899ccce755ef8cd3909bee7abafaaf9d8aef86f7a448a10bd252111d268b57411c1cc8022f89b92e68086ff812fa53c9461cf72ee07a8e0bb9dc863431728e5a7897e07439c525c186a0c4ee343b6a107e237afd1987262bc6c9da02ec7def71e22ec2ae9db9f05aef07e034d69d0c1efbd9e365cdf6157e1659ba76f3fa025324228", + "hash": "c57f0e085e25f41ed0da9cdcca6241b897823385306cdb82443bda2213e149a1" + }, + { + "message": + "fb2011793b519cc85a922cb1ab2ac8dbb739fb1c215d7b09a6b4c383caf65549a6a6b54a9f8c93eb085b7cfdc4f9d32ff932f9dc0cd694090dd34e10472c7b0d7ceeeabd63c800e385c6540a5e7a075907326c843e484a6b4a4ef253b3", + "hash": "fb3c895672aec84137db94349fc3fc2add0b791dfc4ee23bcc0bb42b118c662a" + }, + { + "message": + "5331aebe7a051f6f4ff440b5d4e61c305e7cf505c9dc44c30b65ffd1327935c7bfe8878972c81745b7fbb718b265824dd76a64f7b200318b1346a315936290c7d79d49abd2715c2e3c21c8a9790df1d75ee7d4afafe866dbe9950299434714bdf50afc0f1ffcba3da861c4d6feb41de5d94ade80bc0eacc8e8a4506660deecdbc31945122fff6d96ea55cb5f48ad62142902405ec427ad26512961fbba03b48cc75e8d4a730d3b75bedd32d2c7777061742a76a8c1b290279d7063f001a1159752", + "hash": "00180be42453242998630acf22cce7faf8905a127e4956d776eb6df97ca8c263" + }, + { + "message": + "a268aa1a79883234d26d3f8426412921baf6cd413aef14bee898d90fb4aeae00fdcdda2ebb23c33a8e9dc298aa", + "hash": "1ecf38db35dc3ccd1fdd01b4f58cd0ad6fe0581373fd6d62ca0f1221d49678e6" + }, + { + "message": + "ae8ab581ac0151f7df726d77321bc86b5bfb4b4e595f841f6c52b6e259f17415b5c35fd39f522f167711e838dbd3f3c749b016b01a9c813f4bfe57acc701487d17efc3d9a2d13029c65c57b38315695f2190640539a82bc5b8ea3e", + "hash": "03dda68aa871a0389ae55143e5521a41c5ba7dc2b8d9b88327b307473d35cc1e" + }, + { + "message": + "f1c713e1ae38c66ea0d132fbd3308ea1482d750faf6a962cfcd3454e2073a1c3b869665b040ae450bc967c08330b06bdafb8b606980bb7e418ff8e14d6898b5f30e5c92e60d7916e1b4a2fe263c158169def0164a308a9648d79c91da8fcd09c424824cdeed43929e3c1204506d5a1b67b6e47788ef6617c8d61e0ecdcfda57c521763d374625ae18cfae38a0438b4b8e48ed7b2817b19e15a829a1c21fb686d43dbab185e6474ad94fb9db9dd28b725d6dc10e6e8c17d6de8856e66024d2d869ae044cc96a3de0b28831929b7faff9e4cc17e76667fa904f82046ec96f5855f466181c7bc86140b1b96", + "hash": "e9c279c2f4651e3629b70146dd98aac6598e3f39ad5cb04362939cd14c715a1c" + }, + { + "message": + "84d560b73bb34a268ef885944b65a0b185c5abe288747079481876564454f49e22c3ee6576d170477b11d7cd689df2a790b1d8fdcb738cba10b2eb4bb7503f2560c5a66455f5bd5a07875f6a37bae33a8206d1c24f5a855175fd583e8cdfcf4d02b6e93aa07437b501", + "hash": "7721c11226037ca7a39218b65affa8d05b1e64f689c2855ec387369a62b5ca9a" + }, + { + "message": "6736bc3050edd1523dffac480c0b759af8f8be495695", + "hash": "c65422a60b8996d4b5587abfd6461d3ed4808801008e42d2342e94bd15b4d815" + }, + { + "message": + "26ee39de364d25eeac0e35154bb7940813fef508128d4f1837d9ba6f77bcfe1331d9b53564f0ae160b29b6196a294bb1303364", + "hash": "72165e38f466c98bccab5cdd1cbf35836fc574ae2f126cd575dfdbb2904463ed" + }, + { + "message": + "21cb97de51134a6b6240c3aef02d961c28274069651376705a459b3ad123c98264d95ecacaa613662b4b32c166a82046b2e8edc729d46a2c4bb06110e9598de966c79150f412ffbfb4abcb0c2cf042e7ec174d2264364358d9bffa3cf31f71db72f7df0a1abb9318d7646fb95f5cb759bc40219a619c470e4d234ce26855ba7a502fed315251321949816ba2efcde9c1b840b8c743b937cf44e8e72b3efc7aa199fcbc8afc0f85442f0facaa3683da8c4ee9bc4c95d0b019da54e10c56440c753591b380093d1203f04febc2f0", + "hash": "d479f1a1fa4478a5e3eabca9322dc9598486ebc5e6266a0f2cc8aa8926509c20" + }, + { + "message": + "223bfab5318e6b5f3fb9ded088ea78ab376fde5293ae0db5eab49492f86f64a4283714b1d36d5593602928c54f77f2dad8cc4aa74fe236fcf801f3f86f782a276289c0d7526050f0f0f1cea45831b604693f049ae664e0f1c0ef0ac130e4517f2ec9e54b7760bb1622e9f7df8d784dcb3d7bbdb60c3438c95960d3a03427c9cee4d0e59b9b0c15a699e461038d397cc69bc1b9c8097bda7120e84dceb6dd525bf2a1bce101a05f6e8fa8afd4fcec7c56a94c876322ecbceeaa123ab1324c85b35e8c89c83ffc40c216df9c8ec453931b700aec876775094cf2", + "hash": "b1755d06eadddcf6723549f507510be0d319fd0299b0ceb4927c0f3a932e3bc1" + }, + { + "message": + "b68a524330e2ac9c5a1a433828d947b253df56bac9b79d8fb7fd657282e52c3c8824", + "hash": "a339b472d0394e51f530fbfba0904919d36eb11fc2b1f047d4975c1170dbbc16" + }, + { + "message": + "f1330b7bf80669d5d479abfdd442fbbbdfda3cf99ab2fb2ae84226e7ee5ab1dcd37248711581f95cac850a54685b403401c34395cfb4b0f19c7a849f817bd59e8c933f27ec57d34811c97322c89a90e348c8de520962a7ad612965d8569c5337030659dbb0ff12c59a01d97a71cda67ca03982214615d070e7df289df2cc1902f65a4729f15878a55a33626525fc29cbf34e353ab46eaee0f76edc3b70f85db10401c22e575019ed67def197556aeb2f60baab77f3422055d986a51675210b17cd5f4289cd6d385648446b43240b67e8dc87bff91b51cfe3967ed8a668fdd06f1a785317ee1833e0cb639f704a8fb89aba3ed335173b3af8172357803e368694e781416adc", + "hash": "b1e19d3fc9470361c4c0b35ef86fc61c092f295edcb8ec980ad148db2a8c9ee9" + }, + { + "message": + "66794c78d4c92c22147611dc86d17301268c535eeae639a54f6861418b2ed12c21bcec1a4f7bef72e3454ddedca01756f720cf8a1416c6284aa40f28cdb952ee0a58a8c038bdad7f82b4047a7979764c1ee0ff173bf8396eee96c3fa5e", + "hash": "416030b113a9ea60e48afd94ff01430ad238472f3bb9e76e6b2483256d20c173" + }, + { + "message": + "a48fdb68befcf4424d9cfd7ab18c437f7433215c43660a7ad9c80f5c5ee7a9b8287dbb8ac50da47befe1116600dacd03a1e595e3e2c1c67ba9b4682e7c558dbc04f4a4c0401667012ace316de948c880ebf60379e41547120161489691746cf9a5ac40e5b219201685822627347a54f8ee786bc34b39ddde3f3348da2a199726a2f7591f75af7db6fd315cfb32419128b1c64cd7e53c5f08c916f4d0ffb91e94d2a1c022c999ab5a5548969bab930efe4fe1a0bc8dec4567fb86730290a1dd1430f595c41362af1547e9d7b5058a993f23683be3e3810eae393bf942fa3a3594c0db8997442f55d870b9ccbd72d1862e79cc8b699b968be3656cc6ff2b", + "hash": "db2f01f417638a7444fc104e4fe97b903f93b86d29eda65dd102227c5e12adaa" + }, + { + "message": + "91646c6398932b28a7a2ff826d22448f4b14d14e737da70ef93f28da80d9d0d062dd3d023a6c7dc17f150a2c93dc1c684b0f33311f22ea458b690be990dc23fcbf3d7f500b3ba230763462f428d096f675678dafc77bc4903f2d6ec6556e5529d1553edd451fb1753bef634fe54cd7b8e7e7f46895288450a216b9fb154c79a56697ea5510b5c2146b295ea7b77ccfd782b8b135e562bb60ba5e361746a94a4a50410a395b59506eec03b21f54f97b4b33dacfb23ea584ef7557aaff191f1188ede8776f1292971b4f360209a95413a516ce3c0e96", + "hash": "993835d625ab737f5c50f0a6dfdfcdc9a93f77e1c639220d838380c7a5f0347b" + }, + { + "message": + "bcedf235fa97d940cfa590c8c8bcbd88596cb271df5bf7343b4c8978b04982cfd1daf632a84212ec64822faba0ad9901077a9fc586c5ee023fb3090ada12160ab1fa537358d18f9421fddb8a2a4d0e254fd06078bb23af28abc169e50a29a56f53d085c3888a4a3c78e1cd10534c9ece12f1521648366d7e07b9989371655153c56ecb5386d1dc3acccb80cd84e52a1b51438d49f198e3dc4a8bd351f495d5f04f24c6c9b712974b8651adefe4671563e4593f9e95313c3336e7b5cd9385ab322a0070c8", + "hash": "4790ab579d62914610ed3c1acdd266eb6e870f0841d64f085a686378f7e3a2dd" + }, + { + "message": + "c2ea22f808d092a4a140ae1e6e9566cfba4b4581d0efe45fa0b81f492716781c89361e9e47940213f7325c5b57362feda589322830a67ec8b2417f10696998a8f353025b9d87b41a", + "hash": "c4bc37d409a93ddaea3684d26f29574a74f6e523c337399d34799e030ca7647c" + }, + { + "message": + "cb15f3ee8c0e94683feb57aba9db2842b11da8a53ae18d0b8f1ea77de2c99063603ac5e65e3ea756bf8360edf88b8ae037b4644a946babc972b91a58d7ce89a691cd3a93c6ed6253d2a647b8525c2fbdcd9638de68796e6e29fc586924ded62f039f48fa41f30483be24152f5fb6620a5283047ade44ed5818230a907f96d6f6f72263e7234d5d5ce7115871bd42a9cfe83544a4d7eb0af9569a2a96f4b9f234bf104d7f775c0da3d186749de728cc2a2db8a6a3c93fff693cc763459398721dbcb825b117d205738685334f0f1e86b24951181af58fb4a0c1904d1dbacc7d143c355f5297896d7f1d8ee3dac6248d2f6a50eb0697", + "hash": "b2d15c3d4a1e585045508318134ffa0f16a602043bef6546adea621941894ab3" + }, + { + "message": "1f052d5d17450aa95617b6e5946294b4fb255287a3bc93d106cb6676", + "hash": "a73231263fcbf5242ea6583ba3adedfae777f7bbee0cba61f674ffbc156aada4" + } +]; diff --git a/example/lib/test/crypto/shake/shake_test.dart b/example/lib/test/crypto/shake/shake_test.dart new file mode 100644 index 0000000..b69c167 --- /dev/null +++ b/example/lib/test/crypto/shake/shake_test.dart @@ -0,0 +1,33 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector_256.dart'; +import 'test_vector_128.dart'; + +void testShakeDigest() { + for (final i in testVecotr256) { + final inp = BytesUtils.fromHexString(i["input"]); + final int out = i["out_size"]; + final h = SHAKE256(); + h.update(inp.sublist(0, 1)); + h.update(inp.sublist(1)); + final digest = h.digest(out); + assert(digest.toHex() == i["out"]); + h.reset(); + h.update(inp); + assert(digest.toHex() == i["out"]); + } + for (final i in testVector128) { + final inp = BytesUtils.fromHexString(i["input"]); + final int out = i["out_size"]; + final h = SHAKE128(); + h.update(inp.sublist(0, 1)); + h.update(inp.sublist(1)); + final digest = h.digest(out); + assert(digest.toHex() == i["out"]); + h.reset(); + h.update(inp); + assert(digest.toHex() == i["out"]); + } +} diff --git a/example/lib/test/crypto/shake/test_vector_128.dart b/example/lib/test/crypto/shake/test_vector_128.dart new file mode 100644 index 0000000..f60a66e --- /dev/null +++ b/example/lib/test/crypto/shake/test_vector_128.dart @@ -0,0 +1,630 @@ +final List> testVector128 = [ + { + "input": "809b7bd7fd753f4659b7c1f52512c09cb463ab", + "out": + "f106e37e2988422164b0b9611a21d9f13057712344a1aa3578c832baf971be6d8046518e8dc6b137fb58a6b31eac27733b89f6f87c831037ddfb309254770f4b129f8d17f4cd1b734a9ce79f39023549f65658dd77fc1e5f1c84caf208f072425b26709822399b47e1cdad30c81e0ee7b7", + "out_size": 113 + }, + { + "input": "188a5e066d197deaed20e72afad48bc50857b76518addecf69304a597eda3a", + "out": + "99888bff836c17cfe45bcafa5d2cd56d737dee7df5ce1c7ad1cc6c931fb3d62157b096fa041a29f534bb7d85d4e07d121a2ab29519fffad8c986b102db7f719c579c5bc37b9873f38c543563e765f7761cd6007689c1b6539211e27df41bcff73abc9e007eaeebec00", + "out_size": 105 + }, + { + "input": "9e4324c6b7bf5abc340b1a1432623c3ac9", + "out": + "0f9003f2d8f60e444546038234358a28a3208086849331a7b9a302ec65a89fdcc24f8926154e22157f1c24783a79ea3921a24452240f6e9d3938250049230c", + "out_size": 63 + }, + { + "input": + "567c9ccda8a79ab909427840dd369d93e8dae373afd8e9bdb0901049904c133a1db5", + "out": + "9f2b65ccbca6072cc8ccc96a84fc60329e3da39ec741f1bfc29672179544fa6e6baf8990c00b1c3b0cb25515c1b64cd39bf359d129beb555e46b3f99cadfa97e27e75bc72b96710f49c4345ccf2aaa5620a8ec0c773f26caa085dabe780c46244ad3ecfe88b6f18446ba60b30ead3a368dbdca177044d4e1e4b2340ff72d24d573fc055990265c8ffb4961f60b197e43", + "out_size": 144 + }, + { + "input": + "14c395db11b34aaa5fdc8793f5b5902bc36eb0ddfdb7963f956ebcb0abb3e5ec8f39dcd7", + "out": + "dd11aefa2133d92674afed3bac21adf70b68c82e4a9ae3ecdc1acc527023927c247cdd8632cb2a9657f17e1e8fdc69779ec0b6c237f09f99cd208df840069c36a2dc038f48f1b618f735003fffbed29bdae5c7a8f11e8259c888598977a6088da8639d9e151608da031c", + "out_size": 106 + }, + { + "input": "062fd1f3789407e7a6133ccdb87bda", + "out": + "3b5ec93961689af8eeecd9223ee95af801477d7bc178fe37bc21c0f5badd384ef4b9eacb47d392b018a8531aed47b5b6bc6564410aa282643c2dec", + "out_size": 59 + }, + { + "input": "2f37f7284645a0dcf0a6d002d1b91137e7", + "out": + "340230e2c7d746e7f6f0da5e3bc200137b04b0d46aa1871b531a9e629e6d18b2c3600dc574171fe520de605875b2d1d81cf85bf383031e13be4e89c65364a86a20666c0a9d49c65f7685088528c80c324d6e20a6ea51463227d82668e92a36de948f5be44c5b860bfa3b826477efdbf381453ae9eaf92c067f481f95d22ede5b898143c1f9df499275a3ec5af285be27381423b5eb605e19ebd3b1", + "out_size": 155 + }, + { + "input": "df5e7e02c9ce775e8aca7f56010f98b6fefda8404b71feb3b9c334a39517fc", + "out": + "98f9d922a34123177ca252a76dccf10027d1ff0415c7fe3cc0cab6f7f12b1226a8853ff665e35c606f2140", + "out_size": 43 + }, + { + "input": "a3305a55676f5bdb21547ac74ba30dd7ba62bdaa264bbbbb419ea525a914c4", + "out": + "85dc9c34fc5ac187704533829e087c2c9086b8f93a07b438bc6ec44de32d8738461e7371eaa4290f42659dc954216d2bc505b74c42effaaac8f0890c4e8c2dda89fdf7a779d5937ea4bd7e24b407170f3b0307dc829ec8b17ff3b96cbb947de3cc73c0e7ada668be345210682fed2e9128725f7e457deb657532eace93", + "out_size": 125 + }, + { + "input": "5a6cad61ac9cf1eff413", + "out": + "5c18503cf8320c3464510b0dd053c9aea39c63674eb90e1d8d018dd035f082f543d08c05bb925ca58295e535cf335ca0e71dad97c14985768851e9356719625edaa48a21a323271a5a9c14f873f39f7ce9f9355f44d580419f7aaa3004764a91e8428cf3020aa47066c276759fa21a278be65a6f92fb71e83141d779cc749361edbad90e9034443de4f214e3fd0cfa8e6e459c3c240c033e22d2439aa18a7da8fce0d03be9b9", + "out_size": 166 + }, + { + "input": "44863003a4a90a5950", + "out": + "ae2689856b5306a623aa88b57ce8a690a74d5e572c1e8dad16b624343368a0b9162e96b0ed3635290c838480b9da9a4f8bf162262d3cfc3c772a492cc72e33a99bc854c1778e46b6aa19feb28d", + "out_size": 77 + }, + { + "input": "23fa4a0118f9ae47efeca8", + "out": "63899043b2e331b4af5618f211dec50a33107beb70e0794270edb879", + "out_size": 28 + }, + { + "input": "ac14d6d2d2241e235f0aed51fb5767b87515dbf2a5", + "out": + "3187e02c1478e790468c20a68543bf524135cca3808c3f854eec011e627b91f1e0f027df5686172cb1a0c8843f411a95d1a5995ec5ee9c8d80b5ce3475522b2dac1e6ad62de27022409faea6ddf94d421a7347517d65e5ffe8f775e9634afe", + "out_size": 95 + }, + { + "input": + "83245562bcf7ad05f829cd7d2c80d3cbf3b4ce945c78ce6a629d4ef1b8a8df374f88e51c1ef9797633a7018be5", + "out": + "9b0bc898edfea29fcb374f6cfe3801e64868b256b365085057a0d6d1fa401f097dbe99e4f748", + "out_size": 38 + }, + { + "input": + "b1f1e5ea2f4d0788df9f8750e18134191b5c1757c979cb68a2e2138a5030061dc1bc73bf011299a07ea8ba7687e6d217d30665cbe94d954f", + "out": + "7640610745d133b15494db9b814857bbbaa27a1cfab7dfa1d2b030516a2d8a3d8a4cb15baf83206be13edd325a56def82bcf51f9bced647e60792a7aaafcd5be1ebbb4461d6dd3ded38d57a2d73f333c608559f21b9cfeaf603155e148969f72280bd7ec28b37ae770853c141d59225146a1f39842cca175f4dd6db3c97f70832645b35c10dd53d3d34d9c03d04ed1fa2292b67472793e1ad819a235b653a687fc86c7c35745e497b98517bb2465e65c618d5cef523e3cfe65a569107225e8dd390ec88f", + "out_size": 196 + }, + { + "input": + "da65636f25cc0ce09b84207b15db51fad3214dc1bc52d99886013452917e93759a25df43920aebcb915494da5fcbcb", + "out": + "55643c8008682a042b93b8055ce446dacd87dd1f52b1ab50f01496733da4b5dc46d2ba34c9826c2b0cbf1b39162683a519364a9594dd298f1bc237a3b9cffc878ad093f614c93e2fc38bf98c70", + "out_size": 77 + }, + {"input": "fa917ae84037e544", "out": "6145b12d25", "out_size": 5}, + { + "input": "48d3e16cbb38c9c087253c8e77826dcb9d9764a326e6", + "out": + "26ef99bc45f180203ce4f77eb523d09d5a68dfeb6381e9e52e44b7e01c765e898a92cb67612eac45f1de51cc80789f0bd8262b8d2bd8ee85", + "out_size": 56 + }, + { + "input": "9b4d03728eff16a0", + "out": + "d00526f14e2b2dd4b461fcf658b5e6d59f0dff3deede5f7af42e68cfe44a810d1586721a26eb10208f47992d74", + "out_size": 45 + }, + { + "input": "8df33e74c1bb0f9149ec34aefacf46", + "out": "4e243c7485e7ee7dd673c3d01e26f5a9ba5ae938", + "out_size": 20 + }, + { + "input": + "4a06a6bc24419c8043e7313cc93dcbdde5960fb929a1bd54969ad7061c70785633e61ee0be02ec1ed92977ea23a3ec363e8fd0cc0411", + "out": + "68c1dbf4d659e5c7e87d6b6a414e645e81525c45ac17f2e4f140d5939abe21db781f4347d27be4c5dcd5fa953b235ac2cd56d2bce76630b90e2dddcbbf50eb70f470e900697745e2281cf572c081345e8474984c1e3ea9ac09fc426f9e920acc819565e9833a85a290b9f963b98a7e979b49c43d5bc4ecf4a9dc763a30d8a3f307e3", + "out_size": 130 + }, + { + "input": "8d6874bf5edb81f753cf12c8de11401b6d85866097f358", + "out": + "20ad263967de5f8906f2dc0d04ff129119689ad922d38751812bfef2320f9da6561b", + "out_size": 34 + }, + { + "input": + "1a3db69285e376a6696738834c7f359c1cf244385504079c05442c415d0918a2470ea1fa7db32609be04a14a4d3e89f1e6f6f7", + "out": + "e47f5c15f38061a4d6bb79edb8626384123636788293baa75b2d2ffc25533b07519983bfc79877edaaabfe08e6a00bf7c3be66d5fec8be6a326c086650086a42ceb6c2b280ede0fbd97c381252ea24e1cccd797fb7480016b2f8c8d4148b6d008b3ec4b27e911ddea2bb69e05dd5f5f0e322d4b7639fe65852cb5ec1fb12abbedc34bcde89c996f98838b61bf48c2ce0eb911e8a46b76460bd1583c77caa777c9215", + "out_size": 162 + }, + { + "input": "2797205fa8811bc79c86004eb20860fee4eaf783c910cd8b10630824edcfe44c", + "out": + "ccd85fcd4e6649292d48ef3e3664bd1f68c9b7f58813a145c1a8e665e8aa233fe6c8bd972969f794b72e7dc6aa19a8f105631e9a173a6c6d3824bff5dcf089144b531c884119c7fb820d079ec9b5421d3ba19d6a4856d1847834c57c10dcd9c99fc91fc3b05e7ebab46f6fe37b", + "out_size": 109 + }, + { + "input": + "3ecd80178e3287225f9764a7ff9e7761f9db56c48566e65fce7a9bd6c2bb1013abcb5ad2257af52d6481deff45f8b3cba97d548c227f4afb27c52cfb898d9de9", + "out": + "ac29902ed15677fd12f22804091fa1b53a86b568334a98d0151d14b4f2da7f8aba1bea9a7f870a", + "out_size": 39 + }, + { + "input": + "7f84ed0136ba815a1953d296ceb5aa5ec7715d92d2570731f2b82ef47c141a5cc148b316ff8c", + "out": + "71480969d22fda2a3daf10d7c2f3039dc3f443aa9177759fb1a41937f32ffcde3ed7ccfb977e2f92f987f58fd44862a16214a2db9e840db92e92b7650f4d390d5a05dbee90d0f3744839af3f44088589954354470f021424ad5a884b4fdb4f45ab15655c72bdf6f9869a356469d2fc", + "out_size": 111 + }, + { + "input": "fc5b4cb679f0e6d3aa6d0c388fb5", + "out": + "af6e357b5c95c5bbd49decac2663bbb79a4cbc58e32c9c4221f24bdbd4b7e7b6057b54d3a48043dcb6ecf1a5c2dfad39f65dab636e2430d86e4cc1738b54cd0ccac88d05ea27d67f23b551beeedcbcf32c76e97c74aca6bbb33b215c259c9226552a0d203163afb0483003c1b5b929ae643fe2ee13838b29402d48413c1e49fa631037ac8d97445cf50a4e1dbfde431c1b232efe74831a8010d8e27b3c6c0e1ba4e9c8dc261e88044efc61383f7d2ff4e96b58e7c91a9e9241f4", + "out_size": 186 + }, + { + "input": + "a33051857c6f58455eb99c4c51c51f53fd1cfe1806e8988f40138efcd103ceb6b03ca9eee39153f32091e8329f161479ec71e830b8fd", + "out": "e44f2722585c877426565ecd59da8835858165eadbbee1", + "out_size": 23 + }, + { + "input": + "31935eea0b51638eba07b57132efa102049ad669158500bc4ed562098ea7419ff513f464da979a6c3e55b77d9bdef148e0aa35a36a27", + "out": + "1c8f5bbe8ae4636c3c633a11d92a6c55730db76617c488b6f3de51e8e9ee996b6c7c645d0e7b93061625ba64c348823f1641b6f782115afa41ff09adb99819d6f217eed22302e97eecd6f4ae62ab78feb068f42a640b28", + "out_size": 87 + }, + { + "input": "736bb1", + "out": + "a65217b1dfb01d52e5ef33b36de0d22d03962db2ccbcbe078ae39f7ac485d9f8e35965a56d1873fd4667ee270cfef07c333c9a4572e5d60718008d00d1c36e95d17c5bbbec43c1c6d491310e4d5f6d5f599ea99f7c0c37ffe95a9c7d0d91626feb38ec1362826df1afec5abde0cc1f3480dc6af4071de5a89ed8157f58bb8513a7f0e882dd38d54a363fb1ae24f9ed913b720bfc", + "out_size": 148 + }, + { + "input": + "71f8e3eb279f21f0f9202d3f3aab3504b6f3d343138cae903faf4e0c4ca5032ade4413cb56a163dbbe1ef9f0a7ffbce990", + "out": + "3ed8446a541b35cab38d5e878bf6976c9d22eea66a5933e5220f3c0b1aa5e11fdfcb1b50cb40a8c46f9c6102c8636bf69f4307a3a54a15394fad787df433c4f99e19c40a74b03d0ab80c4e14e499d7abc2b2fd44cbe814a26acfb8441f7b4854ea1db6c8a807954cffe6b2885674d7b284aa95c64213db6207ce65dbc59cd8a870c018bc46d93b499e2f535693e971133a39aa2099132b9ff0799550587a", + "out_size": 158 + }, + { + "input": + "9d0fde79086feaf600664eddf429ade2a83c415acc389920d736c9e18bf50d209530b2486ed12c68ded07b74", + "out": + "a560c2a9beff6cb3059694230fe021851df6a5f3ab4eecb63a386e2d14eb5a86b745752b3bc53d18279a121c1183ededc038867ef091ea0a885ed4e1eba3", + "out_size": 62 + }, + { + "input": + "a14306778a8e52f896dbe5c67ac887a205f241ee2b9a0530bb0e8dca484a00a64670", + "out": + "0c8996096afbc64d5cb87b8ba8edafda69a5747c0c5d2e32fa117623b9a8b98b2a57a4af0cd39078249ac6ff316169e0d80f3ba185797066c21a3d085a6a344c465a677b6fe571435c4bf70ed35c160996f958b5fae02bfc6135aea0a3c1", + "out_size": 94 + }, + { + "input": + "ebc795e73c22171a7a915b89994ec9f1d91fb0914edb47ccd45497c8a1d15209cce8", + "out": + "41d583bb0cbc0c0ee45ebba72895fa9a865a14948d1834357470638971037b39187af5469b51a7507a9498460d4fa69ca51d133283920fb3ebe40009725a5fcc5b39c53af48c2cbbf292ce0248b3ce108a0afb5bead6b6f65452", + "out_size": 90 + }, + { + "input": "8cf1b867950e9fb83fc388581048fef5d3c37d77b1e62a14", + "out": + "e5772b08440de832dfc2c24dae36ff2322b70b3cdc36b5a68bd72856dcc380290e96fc0fcb381a1ba8fb39", + "out_size": 43 + }, + { + "input": "60899104a358", + "out": + "19d78e075a52c20f521ba4e54e6ff561830b8c77fc7f3b8287eb87ad7ad6ecc6a3682252dd5eb7958e10c8142f7d436726aa46027a06490ba7c607fa64b49ce5d744ac5be005731898a6be274059354052f608e2f8a4ac91022c2cf35414daabe4fec1af75eb2736fe6ae6a5b2aa0c4d0749e65d728aeffd932ae02630d22b41bbc1218892c3b29ac9b6660f51", + "out_size": 141 + }, + { + "input": + "419533a843dabaea1638d8052bcfb6d2c29386fe6f38a8cca297a92ba99bbeb40c", + "out": + "ad0bf5d76ec0fac22bcbd51144239d33f9c4d106392d9c41c024f63d3884027dc1e502f89e21b80f3e1dac98e629941168c9e711a49baf1832f2402bd1f1969b928faad5811fe21f35565fc6009baea781338cb291bda91938aa43c67a7fa803bf122de3be29d0b5f1dc84f5596bf5e89a9f6e1449758a5425cc48cba175e2cc17ebfbc806b59aa27509221be1a19659fef59be19652a68fcade1cc1c6bb9549b612d78b5a5070a85d35", + "out_size": 170 + }, + { + "input": "30bb5cfd79834a3f0af115ddf6f3c1aacb35b03154ce3ccc5579b9", + "out": + "a25deba58126ff38ccf0dfaf9a6393b662f85dc3097dc282e8a11639eb1a57ae698b4ad9d50d751df72cbed9b81538122e8481320cd3498a0d9e46", + "out_size": 59 + }, + { + "input": + "17e66748183b7bf461f2632264550c6f311140c29897ecaee7a7c80781f9545a64e7a379cc1523a9b013964353", + "out": + "63e556fb32aaff93ceba46e40d1c6f677d7c0bb5f9096d8c59d8906cf21af93177a36b686c7aeb72f7", + "out_size": 41 + }, + { + "input": + "672c371af83f4673aaf0d59aad08aa46effcddd8847654a9e7a50dab9da6cd8cdaefd68aef", + "out": + "caac43c37312df4e18069737adcfa3e622d447630c42bb139c16f47769da217565197b63ab7d4e5148f435370d00ccbe6a55fe1105206c7e8b26f07ff20001dfbb249593a0bf488e68f72b02fca0b7e0c1617f8eb441eedffd6ca10aa413b1fbae05d2a4f10104acbfd731414de65a67d834a7e77a224a291ce5c5bd9f6ba1d6dc37c442a8844306d69707c66f13b0debca5437d3fa41303e72aeadb1494e6882bef612b26122ec6fe8b858633ebdd42d1b19f77b5aa40ed0216", + "out_size": 186 + }, + { + "input": + "fb46ee4b720b5aa48d16502e8bb615c59c6a402bce46ec9c6de1e1f843d426bd7760c5e08bda6b37a39ff3c06e", + "out": "940696fe6c2ccc2550d6516899dc53c71d34a894380bab882b417582bfbf", + "out_size": 30 + }, + { + "input": + "3c30cbd75f77d08cea542e418540d04002227692975229b3547a1109e8aeb55a36ae8866ff", + "out": + "2fe02611a1f565096ae530aa9eb911b5dc980f70f4398a72646a8e19e1e771d7b7fe95f1d12e62d2352a419f5fe0dc59562a7f1a1ba1e64452f29db964b1ab838f9dd00395b88c44ef9bd4c564e970bac2acd3310378c96ec802b4a624e29c6d6868274ed38272f32a9b46965cfe72ab9e18be9fcf696bbf99062d0466b1179e22a1045f37ae01aa5a8810f42535a4c01dfe8bb6", + "out_size": 148 + }, + { + "input": + "1b323c9819c5a04985952ed8b5bf72db7d14c354d1eea36d8b6d352b1579e326561cfe2cd8922b7b332b65c480cf2890", + "out": "2e5b9c9ca88269131fabdf026c1f230c4cec9ec6c56e7c9c1ea87cd4", + "out_size": 28 + }, + { + "input": "722248de802cd92d4c73bfd15c565d590c633f0741cf59df1ca361c04b6054e8", + "out": + "a2585ec51c4726493962ae1594f7dfc1f66052153414a465af8d6ea6309c5180061fb807ba8072bc71fb", + "out_size": 42 + }, + { + "input": "82e2", + "out": + "a19f34bc3ce005ac8d9c28718a9d47a51d6bd36e6b389f2be8fd4a206385e627a60b667e970c16527eedfb910666bd03b8f2585bde49901b52ca489d289a96763d9eff59e8875acf294bc0fd8893d3932ce683f91084cdb0f7243c33f6873402b28ab4a1d554360876d51723ffdba0ee6b7751670da831390c4cff16ea91ba3180c3e96cc065a3568753cc4342", + "out_size": 141 + }, + { + "input": + "a5d062456c2d47e4933e00f7226846091f9476187a18750af06f4a8468a66e48a57f3cf09c8765d20e", + "out": "38727c7304ba13aad32a01c9fa93ed79db82a1748fa035138c251a26024ed2", + "out_size": 31 + }, + { + "input": + "f599aea348d628d63abbd7fac898206fd159783eb803920aefa9c34d33e3b3822626bbf94a2fc2afa4", + "out": + "34cb0bd6f0db3b918a524ddf638ef79081e83f7d6fa179ae5f9565f83cc6fda530d9ba6b84d1f48265a2232ea6a6a6e97380c12a81bb22", + "out_size": 55 + }, + { + "input": + "c0fddf63264dbd8103b5a92361cd4e5cf19f5e3be234f82c4c458d3c22b88a2a65c545842297f28f71a5897dc9adcaf1ee8202f658ac0eb2ea4d27a93e6e08", + "out": + "83c8d196949fff733f7b2efe760f55f161ec7fef45801b5326134b06c22e99b7353bec7982c786df4fa435fa7e643639ab9a9ecd36c3d8a84eef2499d5a16c85da5dd986835204579b340ab328f0084df4067a6c7b3069d81f10d7dbc04999601bcb2b6beec3a4202442b2ebbd802a91c67cc98a1bc8c2bd3d76022bc8d70997418faf36696680ed040410904721c0adb24dd646a79536a8c6ff27c1f3985a3b3d1af8", + "out_size": 163 + }, + { + "input": "d39326ecd71bca1d873eaa", + "out": + "db1dfd3f6cb01630dd48b33c8170c618778a1eabccc96eb594e63ea036ef70dd4cd8a4093356a11300834fc23ed875c67cbc7246fc112e66a6da29bbdf755e41b556d451c1570118240265b19bb1401a5a59195a8349df50fd6f70e351c0f0421b9f2c103b0c6e0c50ef2d90d5b142a2912894feacdb128e1a180214799434", + "out_size": 127 + }, + { + "input": "2f3fff248f3cae2b85ef203bc428", + "out": + "3473de213cf9f86b8243899ce3bdb5a96888e866126d8fc2b5f14b160fc83f69bde27716206deb5d15b99fc761c1925032c6950b0756e7e926fabb315902e7611e51a66d594386cb3de8f628a32d79c35c204acc33d440348b3498eaa3f85287cc007a1d1c", + "out_size": 101 + }, + { + "input": + "33f04e9ff01af7433f3eacaeb2b8e764e74026808cd4e45f97b5ff75589e0765b68ff328", + "out": + "7cd64cfa49690201309c8f9201030713329013aa7a53c50060aeff145f098e1ec805cdaa48ad03124b8871a13e5d79ee56b54d06b9de117e27c38abae7570b95ebf8325b77400601aeab46a968c0210dd7b659261ff38a5567ec32d00eb225ee6b4956d8600ba4734369ae25010685afe6ff", + "out_size": 114 + }, + { + "input": + "5c01f6f065673882a767e0da7917dc7d4652f7e78e714235f261bd74458ba8395b90949b16c9b7e048e450065d565001df9f459c36f8d5daf05a4b567dfa02", + "out": + "be67720642b3c94061e3ccb226ac76080f61b27b2382882d8da43111947c48df21b3e32204e959e3865f702b03c1a32a8099de26070f3f69bdc2edc1b446dda10408183181204435251f1b4cbe15b3a434ca92635cc4c3cdd67808275d490230d05049434392de03c215e49621d7c325f81263a49c377495f186e68731db1d7ebe406330327cb7f39864f2cd0440f3ef6d22552528079d3e978b606dc134d87a05214a87df", + "out_size": 165 + }, + { + "input": "814ccabfea5c74cba8fc8d47cf1eaaddaf", + "out": + "4f0691a420e1db5d695ea5c656eb12fad2ef24154644446eeb0c842ebf31f3079e62f7cb6d4e88cdf1135289c24a94ec10c177006e67528741912aba54584a671a0433", + "out_size": 67 + }, + { + "input": "7d91c1385b0b4d1ba9", + "out": + "1f83abce370a69c405133c0841a38e675b49aa3af828ad8078d306938ad6f72aac16abcc123fc783ec11ff22f9b7cd124f3c1b5d3262d2643feeb5324208487e4eed5201795a8ca44653bda25ccc44143215bb35cdb1f00828b701081a9a7c50413e12750ea2e0d5d6fde157d1c2a63d56ae46210df67048447db6783835281f0a0ffc052193e826c6c573ffe5147f7a202fda96f941fb9234706f50659b38f63935cb6927981d6b2f7f80e6ed8300adf434be", + "out_size": 179 + }, + { + "input": + "5afbd3e52c18b17636d2ac85722c78fe4b2b971698988771e083395bed4700b432ee0c7e55251e0ad97bb67cb5b9", + "out": + "f3ad9f590928977cc95e0d35743cb069d0c6ac83bd559a2f8c1ec8035cfa66e2e225fe73f25a93b8a7ba72adfa2f62d10aa68b072fbbe601f19681e141d9cf1d654019323c1a2681312d549aaea3041bc33c97c2accfa72d6d3e5a5778ea8a1e36e524895d378e4f55bf6f0458513694c57e9e5a5ae6b77283803d516412cd6d786d57ea04f7b8b33d61ae5d8d1f4b27a5de", + "out_size": 146 + }, + { + "input": "a35b87e30ab7a77a2daf78dbd77b08bbece63f499592b9", + "out": "eb95fafdfe3b988a99bb631768f68ea1317f7ae98088ac6f49", + "out_size": 25 + }, + { + "input": "141fb5aa315b8be8aa", + "out": "bb1ca37cc7c89f410a135761dc40dbb73a451e7e1fed2f1c5cac3a061ef1", + "out_size": 30 + }, + { + "input": "1a81dce79a1f0ccb0735c135e484f78dd830505b", + "out": "4cf78f5d194dd28ea70c885cc040f01bddceb5b8ec1ed202d3d60d428c35", + "out_size": 30 + }, + { + "input": "51c974c7", + "out": + "2dff6a9fd054c6c9ae38205dd9ffc3d3f1758f2d22a77a828ef7c1fad578a99311751e7990f51fef432d2a2193587313bdb304444125171aa87d5ddbca7143eab596c8f5d7", + "out_size": 69 + }, + { + "input": + "d81fada4c56d8292be8c8b203c483ddc6b3718b5a8ca96c97c2fe7099dfdd60dc73023c19dadd40ddd72", + "out": "b0c559", + "out_size": 3 + }, + { + "input": "5cf488ed934d0805aa8cd7594afb", + "out": + "63661f944e7ee0ff201322521f1380d577ca8f1a528dc3ded55df8add4dc89e0838216e72818085d57e8bd63686bbe2bef178bafba89f431964fc970871616e4a33226b091df22c06ef50bd20b961d3c574369db1de0e80b4864f44858cf72ec42e54610238015a1ecdacc1712aa9830c7dd9dfc025791f5a3792d60a1a96c3a2b717f6532529f1495b5", + "out_size": 138 + }, + { + "input": "768d6656ddfd72f1cc94b12b5efed5eb6fd0176250", + "out": + "66e9495ab8303ceaf1d10b8ee55121bfc299a4afa08f656d84fa7195dc765471a83ec9dd56891f2104a6dfc8cba32e25c85234", + "out_size": 51 + }, + { + "input": + "9ceac28917d36d6344c8f86fd5198e9480262410d55a66f293f8f999319f4f24c40718d1f53a745da23195d89b6e9dbceeb20fe13d3cc765237c5d2844b6", + "out": + "d05fba089dc5503831c691239cc61232c2c586cde64970b4801f2a052981ee7fa95321a7c2dc679c33feb74d3e9d4d473baf1f89fcf649ee860ced1bdf82d566b4ac8dcc8a08d4ba1851dc9b9859b7176a06b04e2f5aefbf0a2f9c2ab8a919f5da494a0d73151f07560bcda55ef36345dc1afb91f0dc9301626cb6626dc37d4100d48a1a50c536fcd4ce7498a78838dfb88d", + "out_size": 146 + }, + { + "input": "d407b81223bd892b2b3d5f", + "out": + "278dcfe448a17537c23664186c5286a03d0ce4a1cb06fb1b43bcda6b8f1e064c3faea748a85959d37d4e440dfe322259ffdd0455863997161199ebc3c57aa161d93d42fd3254b38cabce6a492e96c08632bb544589071b7594d385670152481ad06b512aae2d5641ff0ba99b8febeea716f18ce8a28b8cab56d095d016e2398f7a393fdb9af25586ed284b6e4cd67f3eae38054074b64557f37a59350ee1d3", + "out_size": 159 + }, + { + "input": + "395e483a7a7b22514d1c175345a5359982950105b061d62cc6ed311f38b4cb53f5", + "out": + "c9590f7108c047c876b9f066b30ac8529a54975997fd97cbbb55ccdad7166c81fad968841e40029aec5b1f7f927634c7c1448577ab6f4d026319fb8c65724e5691314a8b6d28238d122c8f6f85329f7962d1256be725e5b4a947a083b22c4b9147bc1a5eb7e837cc0795e4d6ac05f0a14a5e52793af8c9ef66", + "out_size": 121 + }, + { + "input": "262278629e0a", + "out": + "87a42de9b1d2cfd38997ec306d30ab3ff162c7701a8cf9f2528f5050db052589735788cca812e3665934384bd075003338a02becaca0a4017f3417dcf9c853ebcf92d0b2a40df5f4f8dc536c2b0556f99c1bb6b9d61a3adb9401766a9797bfe1eab30e5e482cc1525a448433049214f32e07b487284b3e7afe1e41bc5311c1540dc074fff4d5d0ba7096825391f889412bc4da76b7ff9a54", + "out_size": 152 + }, + { + "input": "0af81e1ad0a1311f0118190508cd", + "out": + "417f6da92d1fce7c436f79ab6ea862c39702f298e99d1f0f6a6b9c51e54abd814d486ed25804eb831825b24f48bea7df51defa1761c25858cc636c81db359cb5a5b88741cd2dcdfefa7132e0ed8f26eb316d78107d91eb5a7ea9cbcc89bf6a6a80367faff7c6870ab13d052724b782ccb0ac269dc7093d524f6f813ce0404aa2ef2a364e9baf", + "out_size": 134 + }, + { + "input": + "42120b9db10619db2436f007871d3394a708cfc070f92211ad267078220eaf0a0f86814edb35946887a5af80fc0c6401e9de7c8f232e30670b84a55f321384", + "out": + "efe51b5d943a3ce0fdafd7d6c1d44853066bcfc3d64db97efd4fa34849b97246c709cd5462a7a491607cc892b6a1dc06294ee5b5e4ca4f328afe7e331f9bc2", + "out_size": 63 + }, + { + "input": + "25c3fc6fdc47dea30c8306a252ca3149eb9e07880a275569b85f453ef4112c076778a22b", + "out": + "b96fcd55b7269a3a92492b41bfc9897ec8e0c6071cf3f47050d9087180007b39e61d3bbdf0127c7b57bb0a189a1140a670", + "out_size": 49 + }, + { + "input": "3424f24bba7b", + "out": + "2c85d761a779c23d750c13230e2a8c53845e4bf63dbda48792a4f0f60befb23cfaf7526a0d76778d9b50090dc78909224f41a517661d7587f0d9ec36b1ba4d01ae80b59fd752427f72ab8cf0be08d4c3209e01c515cf7cc5d76d2b584112d14ea4", + "out_size": 97 + }, + { + "input": + "5b66870398f6fba28909fe7e0ae12069fdeff097c37b017adca87681c5ba41b17058d9d63ca763e6d42c", + "out": + "eec1263b64a53af087982d58f50409d7be5e8d349db4455ad7b3762a752e5f42db291ab37885f1475d35b718458391c69d1ece2e4fd4e3f1130dce3ab3b9bfe4cb65e55c3c074b92451874ff6b892aa238b2f78657d15d3b20969d0154f73c221f6d51075d61c3d0c4dff4ee7ddf12ab76c5d1326cb098e45a37adfa53b46c6f8ce10965564e7eb7b6d705c01a9585824bb4811462097ffacb8d9ff9485cca8bfe", + "out_size": 161 + }, + { + "input": + "e59df506dda15550059a6ae420ad9981825029b77a7f97c2af6917a96525883febad", + "out": + "9a05cdadd3285c40a43bb5ced6daf6598868a10bc8c1b5432324812390469a95f67e101f7ae12f25b1323cfb6ff3b362940449e37dbfb517e263226b03d61983b7ac783af40ad3eae385906e17476b8a250b8c6de5013b3502ea26217b3968089ac5f22af79ad029aa86ada32d20adb41d0ed1433003de5777260ab3d55a08a5b3da8660adb0147721e4016b59287dd8ee231cadedb2c2ffe310915b37beb198d4e02329a6efa371", + "out_size": 168 + }, + { + "input": "681cbbb6c954e89b4bb4cbb7f78f0044a33a3efdeaa370c6ad7eefc3", + "out": + "fdf00f432effa2512f6235650b5b5cb35af43545172853cb512385933e0d3dd6d5b204f45bfdd32f76b648a4022ef429786e89da3b51110d91328f30ddad9c37f134b28418dd0b6e53b17069aa91df7e281c3f76847ccb9151c46665e99da0e845fbae10d7f1bb8ed129495a7be4275485f2da72da88b30e16a0cd54bf9028e095f761f7993b41852bddf5cc9da6a8aa00551cc1061d9c09c03d05", + "out_size": 155 + }, + { + "input": "e40d306df5ba4b2b1b2d814445e013588c48202d3d59f382906fc18e0ec274", + "out": + "9b5cc20ad293da8b9e7c9712fefe96c7bbe91413c417091e062d79579072f7a37bb7b3fa6dd7e08806269dbbcbb73f1980ba076463dc173fb9fa55656efa921ae25311af5b104d97a8d5c84038a82718fc47dcfe57a0a1734ecf727160517c4db5abf1ea599d5cf9e1c4db8b9df2ecdbff74fa75971c81f62c115c072c8ff5710e19", + "out_size": 130 + }, + { + "input": + "613088ec745bb0f39025b7bb92bd2a6bea699e1f37253f9f2e17cbb9d98d38f6c06ed6c020ff3a80b6e13660", + "out": + "3e08514a26d94b32c69f1efc3d7d3e31edc20d4e2116343b742c40ce5a1cbb58c9e6e9838795", + "out_size": 38 + }, + { + "input": + "ab81596ed82503eed1e2ca761468f9b9e748eca67e7a1892a8222d748f22eee3397fa711207f710e92643c88", + "out": + "1a70f431334c7006b902298cd7394626061c6c1d2b6c37b76dbe5068465258a55c3d6f159fcaa8d85e5479ef993b3e8cdf", + "out_size": 49 + }, + { + "input": "34fc7b13584af0603e7ca0b3608292514f4bef6b3e66c9", + "out": "7be21753188dd1cbbe3ffa070ecc48372fffaacb6a13ca44723b7c", + "out_size": 27 + }, + { + "input": + "6154f3256230dec7acbb72d3f1650815a2527be87ff9af05bca5e07194d91008272d73bcfe4b877c684b90cc83", + "out": + "5e5e41e17398165cb698b0fec2d0d8a58a3da4c86026d9905b706412110d8d2ff10fa80d8a7e8accb66c70df9ef4d4cb64b36966bff287e3f07a3541", + "out_size": 60 + }, + { + "input": + "65f4da3071965efe686ff9451e68790c354afe83b6b00265c42cadbdb4d05a860de3691aae8cf44ab7", + "out": + "2189bad4be3eaf40169260e2085434c2f0aeab67ff69b709984175a12165b08fc9880ba97766408ff136386487f5a839981d926c7481f6cbef49ae89d914ab9b86d1d77cab40ee3781c0b51eca4b56c32da9cdf1574aba53eef13b4a33167bbb6cc9ae4f51c4501e1c925cd5c4e4", + "out_size": 110 + }, + { + "input": + "f4658eb35fb5773c68be1008107288630208892c398095b651b2a0faa3279bc63c00dc2f719adb10f141b5a957b5", + "out": + "830a8b958b851cad084cf24c5573ca59ac8bd8a6a81db843f698160500abab131eb98cd138a2dc4f05c40b8af851c91e789096b639115f8e73160767f38e43fd466e3a0d0defc187673d1340cee7391e6197c69d4809cbc3e856fa33012a07c1cfb15e16344bd3df11e23c", + "out_size": 107 + }, + { + "input": + "eba990caf679098dd6fa5a803c2808381812ab840fc2c3d575c62974cd2775533273c4b2560e580443b80fd477c91c6a8f774aeb58e2e00e1d1ca81f0029", + "out": + "2d7f4803fd2a90e0da0a3c330a05d6151a84b00c63ea707eacf2dec0ea60bad6043fff1e7570900b633d2b169e3fabea3eaf016964ecf32fe217b95dcd3f66b87e", + "out_size": 65 + }, + { + "input": "279b2dc00eec6ba4b9c3d55279631c283b1398f47819f86cbcacfc738a6e628e", + "out": + "10d90b5dff7b5d95daf615e57bcb6a3ce0cca4617cb04513e15600f884ebd93f84b01c50ec25f426662912f06b6d659423bc30f99f035fb5c479c6474f86a2f69367399b3fd2457ce99f1e910b73a45b77beca99750e8fdbe25132c21f64afb9066acbf128a02945dbf84c40f9c4c91b967f43d8d6f8", + "out_size": 118 + }, + { + "input": + "8dc63251400488fcf5c5f580cb2669ca5f5cc34965daebe4e87c92d4066f073be15e0074e391", + "out": "9ad5ee9e4ae02e5d8d0611", + "out_size": 11 + }, + { + "input": + "63faffa335602dc2ce92f6771e8df6e83641e5f81cb7eb6a4466c21f72d05e317cf4fc62a15d9101e98ef03e74e514f366a9a595bbe1", + "out": "9747928ade87a5c0ec", + "out_size": 9 + }, + { + "input": "10d816e10a8dfd", + "out": + "ab63c4739fe75f5fdfd35c3336ab099d1ab5dd41cb6e6a7829aba312c742dd8307562cabf463b4449f456025ac11e1c7015f56558a17fad41606f29aff6d1fc9f8464c05fde2f1ae7f57be8bebe2d6b3cd137def41c247a6716e1121a5bb21fd39128f1cff9e3e3ab895e51c631190326ce126cd", + "out_size": 116 + }, + { + "input": "cdd151bd93", + "out": + "bdb275b6741ec9fd875ca2283700e12693a190c7156c204a9fb51a5ebc9197d64201c92a3ccf63be30e8a11954044c7089c409d52024d44d3ad754b9d839b447c1438c82bce5920735efe0cac5a4d92db2022a71945c43f65ce62739a089758f2520f3d3b2659d47b7e78d5f45e9d4c424cefa3c8714b94fb8f30a09a31c36a4cf3f10e4daf79f44a2f2cdf222cacd49faab6ea67c6704377e4ffd8e24f9149dd49f59613ac73fc4e963d72ae4038ad6753d92888608ccaf", + "out_size": 184 + }, + { + "input": + "f18648f8c27b9806722cbff323db32b4bbf19bf3c9dd9f5fa83b8596fdfd45ca67f94ed7520f3de37fe4716896ea77cf", + "out": + "b92457bb5ec71680ac8ba702e12948a35d5a1c3c7ae68ead08959381452c7ffd2deed08712e4d9a8280013383c7383002ca1600c9a9c107650c90febfc284d7dc2204e92ceb2d2abd0b1168fe7c720923044549bee6d782f07f9f0a6ed52bdb0c309b8c2deaf1ce887fbb31e7cf953fdb5c6fca5943f3915667cd3326fbc9133904421d16f9ae4803f6e6d08083490dba62cd1219f9d37dc3e1ce15030775c1a2db04192d8e928918a3fd912c18324b645c22f89838d46d2d03e56815f1d25e5", + "out_size": 192 + }, + { + "input": "1a2a6dd6d483a06237a74e4d9fa239", + "out": + "cb464c4ff86623dfd8b7d5569a1cd377050536e71d3cd683656e3bb6b917394a309729dd83d172855192b16faf197306aff99d9826b897b03516f364ff69f715c8c4e7fe3167b052c6cb3625", + "out_size": 76 + }, + { + "input": "b6a462ceb2e3d98a3e2d1f5188b40693fad4d3f2013fa061a8999af9f78f94c6", + "out": + "0e566201c439f69c81d6a2d3be3d4ed7523170b2ec70597658e5697fd4b20417d326391b6e27825ad7ef831d28c7c7d130a6e96c0fe225c0506b0564d7137aa9011cca2720719c30658834e24f87db536541790fbff80d8f7036f40a83187cce71045639e036cd3ccb6cf1e0b9a192bca91395f0625b24793b6dba9d8db49a9d317c9dfcd2fd3a6228039fa65b854d7c1b5f295539d584e3c3b8b4051fdd6478712444206bd6039c68b245178dfc0202f77833d551d11f", + "out_size": 183 + }, + { + "input": "3465eb7ccd", + "out": + "caa2b7731f1aafeeb33f04c700062782e96e77ebae466a62c806009614fce671e8e0529fe140332f80981ee743ba38703732a227a6a5e3406c92229e10274391e39fc843ad112846f9b4", + "out_size": 74 + }, + { + "input": "4a7e3587942bd85e86c0e47fe1cd5afe6bb1a87f76bd", + "out": + "d57e21013cd863f4ef0dc8a1b4819cba6e19d1051d92b18f42aa9c9c692938e3da7d37982d63f66db3", + "out_size": 41 + }, + { + "input": "e0af8d6b0e0100293f04ffcd4e", + "out": + "5b2e2305ea89e96d18f7dbc113acdf4f81a25567d6cbbdeb8d5aad82aff60ddde9b0240d979f65f2cbfd7615c137511610d20ab2d50b995c2b4306ccfd2933542f35b589ec4a16b733ea35c1e14f622f38e7f7c6e56b666d85fad630facdf51617c5c45ca59a49cb84bb2688ebb444a4927061e290b3e08cf3378e48cfd344c7fe41120d48a3544efc0c79554e3d6a4fcf", + "out_size": 145 + }, + { + "input": "a7cd48ed6274fe1af6b3948d148b5dad6962", + "out": + "8db7ef92374add9048cbfe1e442ffcba338aa606791bae319af1f88365dc6419ba45e087e0daa3cd8dd9b7a1c280a4f847dd138e8e00fa183a24750608ae492bf1c59332679b69353147374c9945db9de3eb254acbffbf74e69d915068eabdf5cc69776ac9c66bbbc8cea662b9ef125be894f0404263b9144a960635a015b1e46ba7dab6233eff0a8cc399", + "out_size": 139 + }, + { + "input": + "3b3e6ecf8d4278fc875c79c4f1bd63e9f4e6da41f037b895ac7f641a2216d8528c016968ab75a804", + "out": + "8ea0561767e15c7954617b5a077176929a8908aa6416b9dec49644815221c68d0e317796bbf991b4e83090", + "out_size": 43 + }, + { + "input": "883c552e5938c1d2b36f30c503", + "out": + "020e5edfb1b05b9988b51a6ee925ba2edaf76908406ef9f2b2d88b68571e049f24729febb9a7accd39dfe8360728a017092d639f0a4aeadfbb41c2d7ab816fdf3f39749ce59911bc0a427b7eb763497819c481fb9f1a18", + "out_size": 87 + }, + { + "input": "cf0faee650af186691ddbdd48c0fcf6503a6599c4b89e6df32", + "out": + "ed7e1ffb0fdd23f7ceeadf2bb85afd40dbd51a7de269559d50139ca1267a0d13af0b2f774928b7e1151724f9454e22ce367c0bcb319d", + "out_size": 54 + }, + { + "input": + "dedb33d6610a51af15f138d3a2b1b25e90237772303b405f53f84e1f9b498f6c6a4361b50d6e6214ef422e5f5802bb8dbe8ebc111cbd4f5e49198edc173c", + "out": + "75d76e3c3c29e5155607126507614b97cc1557be333b4762f3254e23919319231b5fe842", + "out_size": 36 + }, + { + "input": "1f3299676fc75c05979922f2", + "out": "e4ac6c1ee470340ee3ae71d22c198ae7", + "out_size": 16 + }, + { + "input": + "addf82d1882d9d0ebbd15cbcf39ffaed46248ba48a61a7286478c1047dc2a5c054b6ef", + "out": + "b39b795ae3c504efdd8cf44c549382a305cc0efa2068df54babc1c5ac26afe809768ecd78f718f67a06282b05959cc04152dde17a31b53cb515c707601f44c7a5db5437d6840de60e32491f8e24ee8358e0e21276aafc7a26d79886b6c0dd75be0da2cd2aa228308a87ffea9f7ff5c5e2a5894ebd1c539ee5e8c", + "out_size": 122 + }, + { + "input": + "4e9a450fb7156be41642ede69d8bd364114d4d54c97b870f9a9903c7718abd71c697414afcfce33c0a39c5ea9e", + "out": + "1cdabd26f5221bfc4b02ba347e4054bec745b58f90b920508ae464b52f4153d8e079bb6c8216e5ec6dfb5069616ee27994b2633d78ea63a4c20c913c314b1d0d829b193ece8dae395ac1bc3f362a997b4e23c46c23cf854c0820509978ea5eaaf4f6baccf6e0d0648ebacac07348d2304395dd39d047add2bebcba72b84b", + "out_size": 126 + } +]; diff --git a/example/lib/test/crypto/shake/test_vector_256.dart b/example/lib/test/crypto/shake/test_vector_256.dart new file mode 100644 index 0000000..29796b1 --- /dev/null +++ b/example/lib/test/crypto/shake/test_vector_256.dart @@ -0,0 +1,618 @@ +final List> testVecotr256 = [ + { + "input": "10d809a262c4579c78053effd68d89aa8cb1", + "out": + "431c1a0010602f886855406ed496dc3726858470d810428041716dc3cda87591a8ee80c0c15299462b4a3a589835d01239fb937a9a5d62d450974d7f6240bab0019b2d1670c0907c981f8ca75eaabd86e2e104", + "out_size": 83 + }, + { + "input": "a7a98a0ccffec68a7fdba45ed05eb85c47a301cfeefda5124d9364", + "out": + "f5b21fc16b1454b41072327382413c27d4e1f2c9ee3a8320217557e5e8a0ea1b0b7a345f2809f8179eb42f21093c79f6ea7454850830040f4573930a86356a283ed8ee97d58c992af66fae2c11c8d8ccfa03e985c208648d5df975aa57ebcd3832111b4b9328156b8b010bfea6b643acd580474b5314cf9d6cad1587cad59bb3ae", + "out_size": 129 + }, + { + "input": "2061752286ffdf1e87329f5a3cdd84d44b", + "out": + "10917cd9bcb106eb2948af291cc093306f3baadefaaa672ba613bb06f3e707e4e94afcf77fedbddb83633485395fd8b93f6adedf958d4f332151e59f5f53c924c54c824721779775274db12c6ec8ebba708d7399d63156f4490271c7704870de5c4d93e929daea326100adee8736670ac0", + "out_size": 113 + }, + { + "input": + "61f204c60eeb5e8b8e995816a04f196eabb06ef41ab10cfca397bdb80fb3da6a46e27fbe7c25670f1d798b64257f979c04963587cb029db24a8b915e3c", + "out": + "96ae61afd099eedf4eb600d737a52b6daac8656bafd35a2a6ba78f107e4665611bf168b6acbf97eb81de638c1208982583659b36fefd7f6d088ba2041336f38c456b14ad1fdda81b3644233edf96da746115f5d00c8317fd08942d070985bc7836803820d4a716a13ebb0a309fb5a2c82ca58202ef9dac96bf80dfd875325ad3ef530462232562365538839b78199e7f206b0c191dc21bb3fb80eb00cd22bde82214274e4ddee3d44a1b865ef6944228e225d40f2ddbc5c74b9df6346cd025edaaf887", + "out_size": 195 + }, + { + "input": + "44ef4733c6a873aacc97f9649fcf1df06d89b344540ac60a8b96916fa94c62bba26315", + "out": + "fd6497d2fb0ad3e37e3cf7b08b69c45fcc0c63ac114e3a3d0d833a04390b522548b84548b4d253769938c97f8b2c2563854f8513a84c44e820b6c3b6d510067df2553c50d5dc7c942401c49e1e9318533fd64426f2033bf3ee4f575ba7d78078286fcae986fba4f3ab60c2655e117acd71defa4ffd494cc4a2cb83d8312de94e89e9b22ef0aea28ca2e9da4fb97c3eef74d60ab0feba0da27b83", + "out_size": 154 + }, + { + "input": + "3d0c6d222253265098557497e80a9df6b17bec891a49a2ae6b293453a897f0757ab6b5afc6ea", + "out": + "723cc1cb067b736cf0618450b446407e6710a86e9379b11e8ac641747e62d8da186215f35db009ff6bb45171bfd1", + "out_size": 46 + }, + {"input": "0cd691c53ffed0ab61", "out": "de24ef65", "out_size": 4}, + { + "input": + "366faaba6b72e771dd59d1be5f96ab8b3f77cb0b6119a4bbb43806e260083f6d04756fd792a643755acc916f5782ee8d0b457d84d9c3b1a127a5a0da06", + "out": + "8b9f42392a931296207ce8e485fc39074253f76986d26643c3c7db58c9dca86b28bb8054834da9fa092802d5", + "out_size": 44 + }, + { + "input": "681ca04c754d7d8beb3bbd48e76b3160a7ebc18c7952f1469b7b97", + "out": "c8ec03034902717bdf8966a71fbe6fa308feda06e8f37e7dc5899552d54113df", + "out_size": 32 + }, + { + "input": "9cc0fdc40abf7d2a5748c77838c1d4df726d578e51f0f49f04558260", + "out": + "a9b975899b805988b85b7d7ee280ad424506f0d97ed46f542f21be9cb2f2860992d4790fe692ac888e695f26e72989616ce6dda457a29e4190e051fd220a8330e8ca2b50d08de6e57f57b9bf83e80ba8735eed6ac437594c231710ab119fce96e9efe2ab56ef08693d35309b6d3470b97e9eddc42b8e56ff3542ccd3b18f11c33b8a82e11f8308eedf0d331f4238", + "out_size": 142 + }, + { + "input": "2db2", + "out": + "b246b3562980c80128f688797cce80e3b982d16af1443380b5861cae23eae89973c309b22419e49ce20ca2f4fe7638da3759a52bc6ee4a189c21ef64ed5f027471d0073f9e1f5e3d2d0ecebe16b14b6ca0ba067401cd6c7c62f7b6c454a62135fa8e8a3106ec4999bb49887db4b9f6c58f08a1bcfc1d63d6dae59d0971de9b87de36a9eb87483ad1b4843c04a7da3710001f3f856cf2987eb8207f1ef4e8d0b6eb588d1ef3c3861fa5f5de683f1c9f6d1f", + "out_size": 177 + }, + { + "input": "b794be4d", + "out": + "125bbf7ab646c6c42776d4283cc9346979e5f257679d1b30c148005e0ea77096b53475c179db59e92da55eba0154d2444192797c1a3b782e14d778d5a54adda122b4f9d17b0456d143dec4020ee3b35f54605169b5f02a31", + "out_size": 88 + }, + { + "input": + "b32a25b4c613737f96bb0115a2449295df9daf07016130af9907d4fe21b013b1c47683e0f7447bf51f51490e691d13c30193b4ba", + "out": + "35ea4b1ceb337b9051d57d25c3db67f16fdf02c5727b2da144896883a353923f950654ee8012d38a82ee53006a0bac3b8d9f7298fea9a943e67c54014241f2c22db17e703e22dd8c565ecc", + "out_size": 75 + }, + { + "input": + "d2cada8445cea41f4196a1ffe1cc89660ef06e502956fc24eab4e16efbed0e084dc82bf600065fd9b77ab5ef42c0ce4b86e3e68c3aa9d9d1", + "out": + "6721af8683fec8e3885130189123a116ba98fe840a299f43b4f8c7bd1183214739e7f29b21f16f7a282bc33a5f640565badda57044ec5a1ecd5e1d676050d1187cc05e768e3d9b9a4e3e5df5abd2f4fba48aa8da74f927b5e29a9eacea3eee8d46b5aff765df80f841b19b429d69d7de1e6df1ae0ea1e9c58df6bf12292a2b04e9e2da73a72f76f80342d7b4e988dcbeea", + "out_size": 145 + }, + { + "input": "1bd886200fab3ae63aeb93e4a3c0f9bd7fbacc901825093fab08ee", + "out": + "efa12b72668ac38d5a973401e81660a0308ac76a5dbe49c11b6fdc2973809e5f7995bcd4ebbd697bdd143548736cfa49b50fab23584157a8ace5e7bf8d64719f0945c95f5148d4a2f7485db94f94d20440e294399537019b26c6167ae960ded79c0866c644ad295f057db694157f85a910bf4125207a73291dcdae3f424d2c5995d4f907aa77748ff7aad2d0efa2272a9ffeb9f7ee29afa516", + "out_size": 153 + }, + { + "input": "cfa29291e24f7e824f57851baa1445efc68f5cd4be2a277fd2574decdbfc", + "out": "9717d9c42919dfbdd12a2f438adaee2d", + "out_size": 16 + }, + { + "input": + "658287e17bef83dd632abfd2fe7a4988588d351090c6c27c59cef129601e9fa23f60", + "out": + "f16834028582a17f01099bdcbb6efcbc8b47c8ecebc9d325086704b6d0e6ee7a3b68fbbbefa7d33925a3116c3c28547fc372b0e0cebaf2bf2e612bc457c796a8fd52de8a32572d23bcbd24b7d75b7170d25cc195e7b38c681e368c884547bd54d240ee41b94f5fc21be1fabc76e271b5bb7ca66cbe8c83b607e924afb6e41b68a6f194467c0de0b32f091dd10d5c6d0b2486239a97f7c74613c465", + "out_size": 155 + }, + { + "input": + "8be6d6d623adafa47a35f70270b27afbeac55656fa997527c9b2586bc537b27bfb", + "out": + "2ba6a9337dffa44d0a592c11dedd16d54f773b9a3a54418176123391956772ab80815271cdc504de72b81857417d16e4bcf7a30d7be726e3d66a405f9c6fdc326aac0825f1a10ce74bdddd581240f5db3004ea360d19a04322eab3748dde05b085fb0edfd368fe48c5976f9611a6c37bd659cb95b43c244f104768b1e0c81c0319eea830222f9024b34bcabd24a45b0110cf0a7266e2cfa6c1cd2fec8adbb7b88d0c882dbab1", + "out_size": 166 + }, + { + "input": + "29e162e397040950a64efb00057a096ab8386e441c4ec4a23562547a53e9e1df0f12e2c3844558d41ec31785da39a669acac4504f57477b08dbd", + "out": + "bf1d57f3fa42220db669969101687be6d2117923541bd4dd3e037162bdf7abf85987e76ae165ddf9556de2a37a033fb4dbf16d960dff5344fa774698ecf04333d187aa2515b0464759a83cfc3da43b05a324497c62ae1f5f73e6250513a41b87324f0ac57952d39b07ae28d3e51cb3aa24ad1aec96c84327e1823aacacf8e4f457149488ded547effc157830ce5410d8274644de792b136ab1ce95e1aaf2524ac50cc677dad7c60c3a3d817df4c6e6cda07e333bca7c", + "out_size": 182 + }, + { + "input": "76654b6d13ad2fe5e58ecbc1ad07fe97e6147946a90878", + "out": + "0f43d569055e4d0672f1f83dbd23215ac99b39f3c3f9c909b5b9096dc43bdaa6c2d084a381bf8eb9e774c9ccd96c188f0c5b73f5bd", + "out_size": 53 + }, + {"input": "0d5f0ca0", "out": "df1870f064", "out_size": 5}, + { + "input": + "d84d4723127063e7d037d21153eb3f6acd15cfba5fd90ae3cff4b190256d699da1237775f7e70be4c380c978d52753f50021e60a7a0fd81003", + "out": + "2975c6a34534bec4c85df914badc4831a5657ec22a8ae4769f4c4a5734048c092978df93baf96c0feef8ad3d2cda543f69f0a4f49ec389a0db25b44d52f3ba2924c900972ef80c813873e6270ecc3344ee4cdf2a0fa5a4b8", + "out_size": 88 + }, + { + "input": "a14950416605dbc7fe0046bb3f9d05f8fc6ee555", + "out": + "6b329760564bd2e6918a95e4eae5820f7c7da3a4b719971d2e7e9f7e5c6b37dc1dbd6e9059681e97076bc3cdd0764fb0c9d55dbe3f25aa82fa3d5688f197cb3240c214bd9b1870cd688a6876ab345d0de45940a9c7e628094cedf2ab83ffa57bfdc470acac7835c12a210bb1b24b3a411524cd6bcf7b2a589495658ea939fbf87f9eec28d5bac1cc35d7c4247c", + "out_size": 141 + }, + { + "input": + "20ef339e29a868f300dcbfc91e95a7b87bcac2a80a409b7d5e4a3225436b67ecf8b7480cffd024fa63674108acd1f6d883a69558435a4b28609f02fa", + "out": "9f7919310e8d703122e09026d0850ba278da9b86d7d6097fc25b6330c406eb82", + "out_size": 32 + }, + { + "input": + "713be7ebb27a9a1c55b07539a837a80d9e93afc8fb186840ff43ff12675faa8ec8281e37", + "out": + "c1426a964e87513ecc3a8e169a7eb85381dbbad167a25c2e598be8511191d6e2d243779942eaf598394998d1de64a1aeab15630c3d8ac13e72cf3d3da22057461f07d0f1f40032a5747d5ef3de0f913ad188cb053f1cc9ee96e346820eef17f395d3aef7", + "out_size": 100 + }, + {"input": "ffd07d453ad0f2", "out": "a3ea7c41719d6bbbc0", "out_size": 9}, + { + "input": + "1465edeedd83dfae47327ce9fceba7582e344c8e8d2c2c3dabab50a5f9bb4dd88a5d512b0f41d88cdbb8690aafdc241c03c02e65b7232bd6b1cea0626a0ec8", + "out": + "382ad70de9b16cfaa3a04da83e0805556af3278848f8dbe381870be79d9c48c20930462fe167d6ffec56c5ec2543cd527ab135be98a41f20c622222228935eedb049942b1ef513df6a583093d31697f36400bac484aa4dc9b6afe2e338f4a4c67f1ccbb98b807ddf0ada459632f83b55f020ae95964d56b57b4db8ff73e5dd5430b415b47685e7bc872de5091a694c0dcafd3a69578268c9ac210c0007f080736d1cdf48285bb96a21de0cffa1db233b02562a81ab7e90638b1eb713862a7463c1128470f6a3", + "out_size": 198 + }, + { + "input": + "123ce61c9289bf770c77109f076cc4285aee384ed98a356683c91c2549b74169e50220da1bc1e3750d48e9", + "out": + "8f7b617334aebb0071ec5413958d0fbd3a053f18924fd4d7ad6d41e9930eeab5a5523e83df299a16b1132dd72556115d335c631509fc645b3f2fe627981f51398d0d68c35c0a275fb14f26a566e5fdbc3c1f5484edebe0eb", + "out_size": 88 + }, + { + "input": "45ed32fa1dd3d230538f155e7c940b2fa03c47", + "out": + "3e2e5d9468e31f93bda49390728455e6762016f81bf8a35a6e211826e3cfd40447aeaf22b17f8af0c8717d7ec714f79bc266fda38a45bac1601d38e862061a5380c5468920639c231b19198e33457e9f7adce37f889c0b4363b1e820b6116b7f805966085f", + "out_size": 101 + }, + { + "input": + "5f74630057d93ae09005d101774234bed647852b39a4ae0f1fbdd1ce5a5e9f0f57220c5f408a2daa900c840dc7376d9916f3adc220656610757827b937", + "out": + "6ff6a284502eda1c3c093097ff32e8acb07a8e99d7483a4448da3131d2766755e74f5e84296350a7bee75387067274eba6b54ecf524a", + "out_size": 54 + }, + { + "input": + "002fdde8968a6c903b8485333cc761d1e0ae6865a233d71dc2b31cc3dfb18f911108772c5ce627432535e0abd975d9", + "out": + "0c4e2fd944bc87314dfb7bc6d3beadd72e07cfb288508feb1b9c88baa4244339f4592aa22e75f2cd852f22a56bc1822abcd31ac286b0f19641203def08ff82dc419038e06dcad168f5854f48d20935f2b3cda229b0104b47e257ca4e6227662ae4a52ad6462230db819fdadf6d63247583", + "out_size": 113 + }, + { + "input": "20351a", + "out": + "7690e2fba1d2a27612ffcfc72f24a44229f74d71ef11e88ba49bc126d7dfa00b5051b1406e933dd966374d759f3310cfbb2f8d158ff36d1bd79f3e5dc197f119698e1b19f313a71640392e95e3c59d6eb7aeac4f5f69a03752a1", + "out_size": 90 + }, + { + "input": + "a51b0a02b444f8a6dd9c4c20498bc24cda30ecfb8573a187a51bb2c92b68e947491505e87d02487875f0f124ef", + "out": + "9a528ff06add3999bd846fb4c594832c9decd077bf7c33a9f294c9b54f43dd76a5916e4d32c28cbe3ed017ed1a96f9b7d99c33e90b629840d709e14d3536b8", + "out_size": 63 + }, + { + "input": "a3540f3693d333844942b9252b8d8c6ecb98bd2f6f5019e8cee2", + "out": + "28af5a552a6b87e69ce88b03e0f9cec3b42c2d96840b9f5e09b28fcd36395fd87b0686ed042683d3f25ab2542ef356685a674f3383319f7bfd47817d7f971609b6eaa4082883998276e0abecee0731d2aa97af4d2bfaf7579cd74b429b7274913f486c7ebdc5e67d7be0e2d9599a299c39b420a63a758678c1183e3fd87ce4063b4239ed68cb263dc42a2c7220b4a570", + "out_size": 144 + }, + { + "input": "d1d87d27434fcea07d47bf3fba65733e44d8981021f6", + "out": "2a0c8b738392aa3d32be04813aba786a32d47e87f23139aae443a5ad39", + "out_size": 29 + }, + { + "input": "f3b9b724760f", + "out": + "90df48cf2611829cf03f997c4f391d1066e4f3549980a011464cb4bcf67cb351f4c84dcd2372adfcf7f060742f6d4ee8b743c77a28395c8ced27f5331534730f825ea891a741e6a8d8f0", + "out_size": 74 + }, + { + "input": "0d22ba0a20e046aacff94953ab65dd4c40", + "out": + "77ab2d2e49da1f833be5a3498f611992878ecdf615c36eab3e4e22f56dee7cb4812de6b21d1f1ff40218553b51069965ae914e18dcf360c42c7ce52f7af43b32edd32fe3119caf871ec804f13e7673dd9c9613aff7e80fa8d08eefafc5c9a8e71c2d5aba104fde981b63434deec98f87a5fbb3ec27", + "out_size": 117 + }, + { + "input": "fd78329a6790c2e10f375898bb0c6a164589459822195807110fda", + "out": + "a086f03cd6b17329a91f0cd72f45c578e706911fcf04bc1790855f0ca68edfb0fc25f00c12a2d8f97d275a5f6a455b55c95604e5f94018cceaf127c7", + "out_size": 60 + }, + { + "input": + "3f2936d8ce7d295b751727a245a2fc60b8b10c9928c5c0844852b6932f7b6a4d1db999a546724469625746c0f502b3bc0abb53e9b8", + "out": + "b1a30e2a24e41374345b4c645ba000e0570d27a0dfad8062da4a5a18d5b32ab4b40ca73b946502077cb6afd29161daeeab0d813470457a08860cecd093d7ecabc4d3e50f81d6ea81572873feced895a9e5bb713e792fbb89d27f7893a9e39edd8ebab2261790421c73950f672e0d0a1005ea377659e609cd9f14414f30052f2c29d6826310ffda078926beec61ef87", + "out_size": 143 + }, + { + "input": "7ba077a667e3d4a6435ac7777c7bd497224c6384aca426af128c51", + "out": + "3ca8fbf86ebd8242d9ebd1da5150b9e1928f3468ef5168f4137e3858a10fc4e2e017cea77805dafd54194273ad3a5b811df0dbe84c70f6a968691359eb03f53dd6ff14555b65f90886c3cfea91f9d37bf72e72d016fda3fdb2f4931a7ac3e26cf90c2217e5a36a61785d0e76e97b3c2ee4330de0390d4255bcc120dca3ad7db892cc10e0a407ff9fa44e83348e731b6676678797aad537", + "out_size": 151 + }, + { + "input": + "ca9358c89d7e5ad3d07bb421f25e4bf519eda98c608e102e9617e1fc81a53cf9004c94d835a149e94304c5021a359d90768ac5d06373", + "out": + "9a34e99b4ed7ad91ea92975a49594a1623491a1393892680f9b18a73341ff25fb3543611d58b5e934a6e6341f37937d24b85328bf1d868abd90950d447130202a620c9835658378780a50d300fe6ee38", + "out_size": 80 + }, + { + "input": "afa9652c80b297208f3234", + "out": + "5aa053036ab0af393756b3608bfe634468b7f214832014f2febb30311343f0d9322968da8081fb84c295445a7f0703cc13eead8eaa6bf0d3000cec855816ba0f6519aaaa52ce3c22c93a547980d75527ed74272983e594a1891237d217011cadfec48571749b58b9227371bf0bcd65f7e70383", + "out_size": 115 + }, + { + "input": + "7c49ba9a0f3d8d78b1b99fec47c3c70f522a2f44ea4e90a6c985587722e66e534738072593ceced1d4cdb113f345f66a6a", + "out": + "d86a998b81e95d54a5102e7a4e7d66f29edb1e4fd0fba085639ead1a8b214c769ad888b0d80c0544a69a5480b52424d91b468abc1a8327ceeb5dbc28570225cf97d0556cacb7d825203e340e99a94fbb57b4a1836f94aa74fbcf73c702414c923f3be88e09590ce0086749a034622c32ae35543af2d598d67bba1634bae6ad40514709b29d01010263d9c11141d004e3", + "out_size": 144 + }, + { + "input": + "6e0de581cdb1829dc02da199ad74d2a923d31fcb4f5b12eb03479e4aa62d2f3280a762a77e63d9a39e3a1b9275b6c2", + "out": + "d1613f9a468e089c54ccd902f302a3ad97b71dd42fa2561810c4350ac6fbc8f973da2f024964dbae4582a98a2f54afe66d129883e205d92940c184d199", + "out_size": 61 + }, + { + "input": "d554333082887d89dcaed4841e4830b2e1a6b213d8", + "out": "ccee49", + "out_size": 3 + }, + { + "input": + "2083de32cc36bdb739db050bcade241686373c06cc698f7763c6c6488d71b3d60487e867", + "out": "5d3400464c1731bdb7f37dd64f", + "out_size": 13 + }, + { + "input": + "0d55fb719159927d9f37a99bfbdad97cd80599a73ce40f61e956f84f8710064b74aee2", + "out": + "ddc4ff39d7706b4b0e0b304a86944489266cb0757a9cf716497cff9fa8bd56181007c40d3f5593995ebdc8de703520c74578c0a06b97ac74ebb57a1c6ccf73f7027627d4a9d495940d8f475db37734ebc884cefffc8665adca6a3c35ce9a0ef3fbfb20cf1355cb677dd7b62e1c57e4cc093c9f2077867733163bd238ea2bb5f256ce05f0cd207122b02506b7d37b644b4b674353dc919bd34f634966", + "out_size": 156 + }, + { + "input": "3d8deaa2e8e72243", + "out": + "80d9983f52389d04ba45cea754b09d885b4c6824f7eca03454bc9a3f033c21c14f310d8dd3da0904ff", + "out_size": 41 + }, + { + "input": + "bb88c488b29f747ef0ee63f1e64fd38591a1b3b03bba3a5abb8e195eb1083b75ea4262a3cbb288a6fa9e755c8bd23a9db76c92bdd18d8c537bb90bcb69", + "out": + "430102216f9f8242fa2daa806c1a88f600b92c4dd8361bdac5d5bd894cd4691bfa917c79c7c1c6eb6128dd6218d169d7ff4e421a59646b601d885c412aa7a07cd51bae38ba39195cd82f23d672a269cafc26bdc620caf0a4f52d86cc6e169902ce5ae2061013b773611c344c71fc44c49b24247c96b95363fee787cc7a032cfed2a5b2dd7b02b53d2a73f3c552c5423badc0c67b68a4728deee2f5f4fe4566e30438ce600f815cda0ca5fe399522a3c0218355c83118b71b2ee43db82a", + "out_size": 189 + }, + { + "input": "c0c064506b57", + "out": + "215851bba9080310f2894b2b4df70d0b4b1dc1644f93373c9342325184c9c7d7a161dee0c49b62328bc0438920bc06fb4cc8c1c8c49c07e3231f112304138dd7679c", + "out_size": 66 + }, + { + "input": "060d8dffdbba46eadf5246888e2a819fb25cc21d732be18164d77107", + "out": "ddc1dc98ebd95934a90ca80cf86cb89a", + "out_size": 16 + }, + { + "input": "830ef7bc611c02c69f1a0b3f", + "out": + "ea962b0aea5ff07532bbb6fa791c59d33455e82611647fc28ebc04ceea0eb96c84baa6dd8511554791e6", + "out_size": 42 + }, + { + "input": "9497901f33cb029684b62981361f", + "out": + "87cdeea2676e5863909cd8c1328236cbb125d401870d3e74dcd8e71c166f3bd0e907513cc4afb4b2969a81a1d4fc0bbf1de2f0c87444302a0aa77a7691650833c3aa2b64d58c2efad64e89476eafd37e65849fd3b635022341a77267b80a5e457e", + "out_size": 97 + }, + { + "input": "64480251208ec0e768e417dea88a328979", + "out": + "4e62ba6545e15c647a9684b37f079cfa91b6779fff45721aff8728587d888fba08e745f0a48df9051a0a071c14b1c408d0b53b74b5dfc249c845521e56b367394c279cd30bd91a34cc03ca92e3e8c46268c3901c4bb75d0feb27cde509ded093893c27b5211dad2b4c6f2c3b4955c1d94c056aa655e265041b67cea91a085b6ab006c964885f2ac8f284c8da25c8eb577abe365454da976facbe0b60649c1db683aec0b84263", + "out_size": 166 + }, + { + "input": "db986f3f1a51723dd89f", + "out": + "d932aa2d008b570e89b7aeecf464202510b1a78620022994177efc9131471a53d1647102d86d4a795c666ef7981f8bc0b358da489cfcbc711a81b875980994cc6e0000ab8a9a4669e3049a6a3abb7f85b343c53910671d39fec91c2cf3592b7bc6de3970e1e0c089b7d79e2411ff4638ff1352defccfd90f5e88b9381f57c691864bf842d2aa852dde762c9c772ea43ef88280dfa57d4a355a992d87a90c3721b110da263e441f0aa10cfa42c72eb0acdc21facbd25899871249aebc0088b8532b06", + "out_size": 194 + }, + { + "input": "ab581cfd6750bfc85dafdf08dd0e4148ce34e0", + "out": + "163713d628380d3c6776a2c581d4c5411de98e7c01b017c9a548e4cb56ad1531c424e1fa5defc95742ccf405068876757d6cf86a4fbfaa610c424be960fefd88da69fb492564566450f1115880b37b937ebfe32c8a7e1ce90d5d85c3b4dddcd3ba857331b2a4a608caace3bb59d878827a1011b9f679bd00e1550500f147ecd8316c16def9e5f3daed3e43d6a9aa35e27c6411a2975896d85256cc2f8f6f161eb6b988174b735094b4986363a8", + "out_size": 173 + }, + { + "input": + "600557e645e4170dd53cc8aead102ed8de60b701f20ae5d635c4cebb883a9637b979c099b9c14efb", + "out": + "ff2c9cfdd1f073543a83b866d7f818b2ba138e33641c9e6507dcd58cf8eabb4fe8965aac3fedececaf192cb999c535240e8eaa52d9a0efc99da32e39b2da8786f9e03303792ea4080a193e3cd189dcf03e8ad20441e8f07d4ddf514b05588310b67a2242fa7f5240ad980a8971c3f66d1b66d0f4d6c61b6bf444ae0b59ba495c1d4632a23feb1232fc0367012f1a8ce1278cc460c8c5b8681c672c43383d36aec61c4966d05676c97d0d96711bccd9757e672cf951375e59c231d3780ab0", + "out_size": 190 + }, + { + "input": "2079", + "out": + "b8606d4376b1b42866c25cac457d6aec81a5f28504d7264025df51e877a47c4a96623ba6ffee2e6e2cc71594eca4dc070f2b146acaa98b29f1e082106db07d010ec3c125d08d1fd735e2d2c583cf896e559cc99cff83532f851284b295b4fe2a1a260140806a268049eab394e91631c465626dc32f0f57d54aeaa30913", + "out_size": 125 + }, + { + "input": "e095290ce7d4bb", + "out": + "952eefe057516a8b9137ef83a121d22d14cf0adfcb591a3ccf1c7374d98e22d40c64cf32909eee8c8c4fcf36f1025eab62f83d0c0372788839e837515069302402cb647ecba86c3c481fa3f34ed7", + "out_size": 78 + }, + { + "input": + "97732d8c4e283e89633c6bc0d14132b7d8fb62f045a81007464062f410ee77d2c1beab8a56d1e9bd4b0ea2ce7e1632d10a0444d59069903fab2a2d7312f9da", + "out": + "463bab3ac800df6d69b717019284cb653098315d643eb8ff157d07b18da59a94a7cf18b1085f549618363896ff492f152bca4a8122ee17f732f11d72283ea735a88b0638be0749ab0e6f5b9308493312dc1573c18ccd83023ba9d23fd175a660f23113dbe06f0be33bb0d832c9cba6696e2fecd71eaf59c8ffda6447ec2cbc5b12fdee4705dd914de7a55b30e6600e730795b8097fa364fe680f3ecf04c2d2abe5ca0241426e025ef7f3412f19f842", + "out_size": 175 + }, + { + "input": "4993c77330ba196f1661fb0a7ded30c626134d", + "out": + "eb8693894adf617d02ca77584a7c09bb8b47925f5b8d788d7521cc9f157d7e828d5441aa82c452902ab3e69ac86b3e6fd46f9a8dbe37ce92d1", + "out_size": 57 + }, + { + "input": + "70f3fac03e90de23cd1f9a458132364a87f23b957dbc19fc3c1dd77ace8ca7283091d99b984ad442e385c25505", + "out": + "7d420cb0b6b1e20657da5c1ae5ab5ebffc02903b930d778c78816abdcf8052a88d77a694ff3c66701a628adeb9aea642b5f3cfde9c6e61e426a6b592c4e7b8b183328a3622977446dcaf7519c850bff157fdec", + "out_size": 83 + }, + { + "input": "59241392fc2e9cfc3a89ecd009807e32c8e660c0642d5c78a0", + "out": + "5400bedbb76bda47c8cf84eaec4a51154d33829b2a1046ee5739682a42dcde25038f708fd5697bfad5", + "out_size": 41 + }, + { + "input": + "3dae6ec65ab761f752557ae109671fb49156aabdfdf948a06918aa0822a9eef7f1937f5012d8de10443ae8aa33da", + "out": + "aa3d682c78f360837edf9376b07208344a59573ace99d069f76558b06760b06ac9b401001414fccb57cf33be06d6716341d77aa3da4e5f478d4653d20221b56ac32b2e90bf0ae30ed981b9dd21def95d4e2196d98cc806725b48f87f151d8a3fc7699cbcc56afb", + "out_size": 103 + }, + { + "input": "afa2a856c4", + "out": + "b1df4b64809af19ca5b62535617bab67d809175023c0057eefbf3277b45caf13dd68d990434490fb0aede9ec6a33936e7276d8019e547701c834f4334ced8c75ba99bd2d20b7e0b2c6a5d726085572", + "out_size": 79 + }, + { + "input": + "a691e27536fd97769a04216a04eb232a362ff19463efe51a7de9e0017e6a27977a3a9fd75da8263225d70d617b59153428eb5ed3f02b69e83aaa4309", + "out": + "18cb82a1dba7703de33db3a5aa16c8267d8a39b794878b5d8eb64f4bc14ac91314b1198fc6c3643e69c2f2c725be79cd9fe31930fc715620a9", + "out_size": 57 + }, + { + "input": "e3e60a2ae6ed5cf3911b5350fcd33e7d374b6d03ca86551f4e", + "out": "3ffb15087efb", + "out_size": 6 + }, + { + "input": + "11e03cab110f88646f55f5acd24ca5186731bb466766696c67b422ef0f87b096de49a6b17eff0e99ec2ac43c292f24b853fba61cd7fe", + "out": + "1f075a90000d6dbf93b5bae4f1c4578db007e68aeb2094d7b8f5d9416774f5a25b383a255def5b427b4519945826ed26839ad0974bb85295", + "out_size": 56 + }, + { + "input": + "cbde94c99be0f3d36c7fb24d1a57f619882d1d519c110defd632defb71be3b83148e23a990001ce114647cdcd0d72d7acc99422050ba632626", + "out": + "707c84c16c062809606c2a7abeac73a40df7d01c241e129ff15e659650ca28ee85eb50d2287cfba83773a701b3b33390fde0827bc7a3713d4915a0af5842ff6f85151615bb07bf3c42eed64f12aea0e4a9dde5cec8a55e004048850ed0ab3150f53867f63d5729b9730c7b7c8be372fe3a6223b4776f5e75", + "out_size": 120 + }, + { + "input": + "b1569ead59450720ff81fb590033e06bbe0f472e72af523088a0810cb9d43c4fc724343898744e52182a7713f2076d", + "out": + "3bb14f487b34d92e21ce6d38d7da910ed0435028aecf2820056609011058318281a9a6328bdc", + "out_size": 38 + }, + { + "input": "8adc25927ca41f9a804bad26b1", + "out": + "3a105765575a17b719c1f3c0027f923506adf300346545e23ef46d7844b045591a9fae23a4f11d209cbaf0c4baa76adcc4758143245408097f171dcca1561653ee483cef93870deeea2cfee284f6f4d695247a535bf19880ed1707d8e76cafd29e14e94f4532d046a845ebc3bc0d37368dcde0844734cd59629f562d66cff42f6a1a93a40ce4522c179c28f077a075c11f58e4afd9622ce7", + "out_size": 152 + }, + { + "input": + "28df8066be7af392fec0ca8c1d2fb3cbb95f99c82f943e5b997cbb55d083a73743bd6445877229", + "out": + "d9aeee441e71e93bc11f23549d64eb50f0e8de1715aab2fe9f1ddb308d9e4f8eed2ab7e00ed0baf2c2581ca40c9ace45b171b72bf87bcbe973b7ec870b1407f764daaed7b96d8145792dcea7e72cd1a0fddb668a358c8e7782e640ed6aa0f5b5a3334b970b795c143765aa8c6323f0bf091c2d9194c59e415a111ade75925a5f6178c6bb148210d9", + "out_size": 136 + }, + { + "input": "c4bd62f211c952d5", + "out": + "1cd9ddf7b277e433ba2ac96e05c8981608d37b0271a81d5939f98c5aa50fda9c8ad93f3821ce19d5f3cf38fa2d12508529f93337732ca2ca1b40d11b693fe15be196f6ba3a3401ddbf6025eddd250d4a88254e762633ae96379b8878", + "out_size": 92 + }, + { + "input": "89dee2afaee5328de09b2b9e30714fdf7fbc32b518962d77fc3e54563c74", + "out": + "9cc877d13337182409bc827b3ae4a51e380c825fd0117465491ca320aedcf31fc1d65758eab1ed2e9adfd78afa7646bf98983af1b2093a2e0d04b7ba8a3e03822062387ca3f016751dd4ee7af8b2f8238cd8b2636b75f57f61ab9aabee5d50430bdb28c1b8d0ad86532d20e4c010b564162d527a940b39d4c81f495323aa3cba751cd8f55ae37c9e5a60887007910cbb8a99395d6984c3d34292884ba4eee07480e55d", + "out_size": 163 + }, + { + "input": + "e5db91644a989f69f7726cce0d9c1731f9db67d47b9170d369fbc96d6931c79198f1368fb115060491f2aaf5a098cdbb61d6afe3468aad7f6526299955", + "out": + "15f71128dae8de659b56177b5c44c0af195f62f91be2533cda3f986df0b088d09e01fabbcc1b15f01e8377abb91239896ccc770283facb2686877fef56606e8c1e30251c999cff35f81cf20d34836be8201ac02a3c67f885b5e46b8cb5974586bf0ed8427e28e1cbb07fbd0475c564df61ff18322fc9d7ab24f081622d7fc6bc3dd5300d7057549828d6a97acc52acf7351dc259ff74664defdef8e6d7b9d44bb89dff6eccdc77ad4b7a193ee3a8f2ce9ad094a4ab36574fa161", + "out_size": 186 + }, + { + "input": + "7569c204800e68a552435126f444c993463ba10ec54de1348441a8b542a0f33b841a8c9f396abacd60e54419ba08", + "out": + "0cdfc0304e8125fcadeba83c4ee0d179a777e82f268ec4431166be237dee0fa37a56f2353e5072560306ee9dff0cbc9be25e63e60e4ea6548258ce42905246f098d95c2827", + "out_size": 69 + }, + { + "input": + "5df118f09cf2c12d5daaa35161744da19813455955b7173c6dba35834c812e1f04c4a46b", + "out": + "ca09aea9f46d9d614df733230ece84668f2d147e2df6600e4e999e3f8f0c78574dcd46f997474eb4c9deee38e7d86c0e8e730a7946863ab42ce7ed9e0c52429673c404cf", + "out_size": 68 + }, + { + "input": "f6e563aa0e50f4b0c2a675c63e0e4621ad80abc9", + "out": + "aa3bbc66b83d6d98a16986c36ce125eb9338a14e5b2f090d4cffa191f03ab3e4f1ab8adc86f7b957e2b07d375add034a22948926dbdefc3cb569f4e9221626ce7efb5dd510783fcf862d654c6c38ee628d51710e68fbdae0fa3580d3fa07a3e6ab48d86394b137010172505a4444e3d44e040cc161884815e3758222611409804b4b", + "out_size": 130 + }, + { + "input": + "5138f706d493ed9bd487cfd0c627cebbc47c0774694a4221700ea3f7f9438f08d53e082f71f60cfe9c91208ba7d2fc093976609b70481d6194", + "out": "a76bbc1cf6352376fabdeb62a9fd6e777e924c", + "out_size": 19 + }, + { + "input": + "864543f4fe200fc8a06523caae80fd74e22c74b5e5b5dd89b419678b77ed8300b93ea32907b1bf88de1cf0b572d8c365437ba9", + "out": "69c3723a2b5452632d846495ca", + "out_size": 13 + }, + { + "input": + "932bcd3d80a7603be4ca784b52ef386ae164c9dec5745ade2861243eb9248e2a41cda11c7713ba139d1b315b9fd159b2cd14c79af756a075c890135229b2cbd6b9", + "out": + "193cc6214e3d710093db6623d0cecdca8ca4435c5107692db6b2b8d8e4003e180e4ab269d2f1adb645f4ec17d0ea10037238008de6cdc3c4fb0d08434db25408dfc8454bb6ffffff9200a11651b842569850ce6872b9", + "out_size": 86 + }, + { + "input": + "6951960d62deb346015878622906cf5f3fb7922b77e947b87a39fc03d03c6e05f979c30c", + "out": + "d0637b4a479f85fe762df9af9b655763678f61c5e7b041838298119983a5b85c7f6291a9926ac61351669d45721585aae07c8a26b4f68cfec470dd4608550ecc7e40393d1a0488fefa1ac39f10948a0a6ab36b8dbc9782ae5c4df25a0cb727602a48914eb4630993d8230f7e2acaad40b98a0f5dd08f4b218c4b2bfc060a2be54091c4df487c35c0535d822f363b665d4fc18fb119948fc434567a4d9159a7caa5fd50da1137966829282a682631c4eafcb7833e3d", + "out_size": 181 + }, + { + "input": "a170aed132", + "out": + "05264bb49fcf32e257f352ad1b27541f9719705aff7df3a9b792656d696a921152e3a689ebed06ef301a9ea2793018f873894649558adcc7aadbb7be8197342ff2af621537f5550cee90e91cbafae32e7b7dc182ce84c1fbadf7bf36d679e3254c03c980f417404cc9fb5b83787d", + "out_size": 110 + }, + { + "input": + "9ccf4333c4809ba794ab5e090494d3ed910fb3ab0884d74cb505f26cfee5bc904ae66f0f", + "out": + "7f5dbee670e4a3251f74c84f997d68401714c7d770f466252e314fd206cf4d5f886a88273e", + "out_size": 37 + }, + { + "input": + "6e0c9430c33495140fc124268fa607847ebf03f4585baaaa166762976d2367286499898fe7d12481ef8ee70eb11e63", + "out": + "c42c8faf2948867cddf546c46ed2c28afb08f763ed327bbe6f8681e57d5411a580e68c722034d7ab41d767b54dffb0b1d349f6f300a01e368e82550238478445ca719ccbb92408c4bf3decdacda8df4187a40d2ff0b78d8737", + "out_size": 89 + }, + { + "input": "5fe4a72d29684d542f35b8d2c327ab177c614768c6e3226798ef59", + "out": + "e269b4caf4857160704d060bea86e54bfa61d75036bc8f80646a646ce7921ae4e9ada39802f776fc433f21dc41000b31fa56fd65ed3079dbfa047fb885b339f1f712f4c4eed3ad2b16ac856769d4c2e2b330c19c20c8f8ac89cc5413efcc7c4a0a8279fab83b43e5d9b9d95523350246a39e3cb55e8df361d96b51c6871002c434a5b30815dd6d26e5dd098843b8c70acbbffb3da2c42a742cc0a0c0c7851d7e8983043fa93a09f0b5", + "out_size": 169 + }, + { + "input": "7ec5cbc2fb1c19d61c282e8ed9bcbca9aa0f05", + "out": + "9a2687508909b430060bba1c4f9ef354a69d63b7efca18ad9022ab642cfd0bf5d8609e6def1d8966511d0f84fb9d81c7c172ca14642b04a008", + "out_size": 57 + }, + {"input": "14d26ea4d0", "out": "6fa2dfcc05f6b1", "out_size": 7}, + { + "input": "5c47b1412d6f757479681a", + "out": + "f66657ccf38d482c0a44a93c30c86cfe075d4b90d3907450839e5e3c2478bd59b4fed62d6bf444165d178763121a75baaa6851729bd5442ef7fda12d5afa697cff83fe6fb580fe572fec20d2a470784b7408ec1ea493d8c493", + "out_size": 89 + }, + { + "input": + "333e68accf686b0d39ad43b403962a85bea50cabf2878b3eb87270177815fb876f22b2999a5a77569351a22d88de", + "out": + "f1c6dc3cdd493e7e85a9ab998d3ff254c593f68c0b97d23c2ba4e802729979a0f61af0eb6002790f20fea4453d89757ee840afcc1d5354f14efeb8ded03ff64f617d381641657436b326a8b73c91b4e914bc7183ac567b0caefc32691a97e7656deb40e76f7513b0e29f4bd6618c779bbf0a8ded6793e4b0a13bc60ccdd7b2e25b1478b563ed79fe22ce106c2765a99535f835e56bf82975db3130ada3d79f68c4a6e81a5c7851b5da3f7434e9b472ffb9441a220e386141a38f76d253", + "out_size": 189 + }, + { + "input": + "f6359341b8d5d38b489aab3118bed434ab769b0f37efc7d1102f9baa3711e2697565539ccf28c41e5be544fab8af9f7e60bca1b1d45aab7485d88f34a4b6", + "out": + "954847b361df328b4a879363f4a0b4839b82158cc223b0da04748b13d96fb4d5d61278bacebabc6f75eb7807d530587a04319f3bd3acfe26c1170bcd865b9f88b2654e18e4d2aa0d824e9bdf8e52eb2dc45795699dcb5e38042f3c9de127b4a9bede4566816e443f6f75e839e44a7a592c76007e4e119e696cec2b9b9dd15af0f94f865d72d4d0d10f73b36246941a7917d86cf24817b3449c8d67", + "out_size": 155 + }, + { + "input": + "d3c99078c817dc33b5de9ced8781e7aa955686c02a3619a866db402a1535e39f8ec8d62d17bb09b6f00369fb0a19efec05d9d6dd1cc09f82f1708594003b7565", + "out": + "18e6354a3a4a8ae95f4b3371eced3be4267f3198f1b6d7868ce3cd6905c268cf839039e352460b19fd9a922fdabb4a8504bd4d97882e9a685bc9c6bca0c03107daae08184dd122588b6ead54e98fb0984b1c3cbc22b3691060e22e060c4996cbcdc896f6b0cda233fb2a1d482e560343b88430b1b411806807968c4932f9b828e835848959b23117eabcb0a7cd53124d08ab07be3081039618c7e18897e8bf5deb56b0beaead4d1a754e", + "out_size": 170 + }, + { + "input": "68fc3c19a17ef1a13192438481a63cd1974fab09a925", + "out": + "c2cefbeec517f498fd66634dbc2d2a05f37cac3d0aa8e965fcd6848d6106ae4bd0f0ffc23f0368b8d66549e25c612cb8678b606e195e46348326db899ddde879ef655a924b75b3e6ce6b02a5fd336ac56cb900b0cf9735f2d208c401c85c5632640cd0f6e523348fbd1032983eb886ae3698b81f62db2e5ec2ed34bdb9e83bc6fca6054b0db064a01f59c35a56ba2b8f9fd1549dc443c89f7caa872d713ff4f7dd296c756b87d8576398b6ee7ff4988004cac2deff7e42fa232992e556e42d2222", + "out_size": 193 + }, + { + "input": "dd095eda7ecbfcad246cf6fdaaf9cf2062578264042f61", + "out": + "bbace07175d95e7c692afc42e4a7ee6b4bada04a322b78d90acb8384eb2d1bd99ccce3a07fdd7261d431700817ba297b36009d8fe44bc703a4837ae53cf9fc71f3", + "out_size": 65 + }, + { + "input": + "e33670079c945e5d98c045ce9f1eb75303a8ea75a10a22af1e22730088306322eca4182ae0679c1f42e4b55f334193c57ee774", + "out": + "cce0e6da86156e528736afe36ebe951c9fa9b869ce903e0517b9d1150d127afdd4105db7465f5b1feaa75eb52008aeb4f8806b538ec73ed6ca99b71809ee74a0dea5e904d175501ebfd4ecafdcd995716aac1bf782cd42b179dd40018679602b373511278017a33a9ed1978873869e4449351d81b9dac995ec06c0f311640eb61c7ac535c5e08d5e06b1a585", + "out_size": 140 + }, + { + "input": + "22ce6a191d0b7ac04fe33bf88c2277d5d4f0c6442108a1b67ca69612bf96f189579a0e2a02fae349ca231e4a4bb15b681a35", + "out": + "bed1324aa0f03ff0197ddbdae6a001118ef94668be5fa7bd0c22a3a35584f7500270d80873da5151abe6458d40a5889dd5ac3fde2da0958be631ce320ddda0344bf7c4f0795a68c03c4dafbffefa6511d2ce887ce5666065c669baf6caa1f7231c3bb04720868d47ece554260a45bd76d031cdf826de711b65a0ec7f3149a5f377489c60e8ca52", + "out_size": 135 + }, + { + "input": "672438b3601fac0e6aa147df9b788562f9c3f0", + "out": + "5a7fa7e95f93e3f285bb48418df2ca87971ea9c2fc22552c709a714484ad16ffba4522", + "out_size": 35 + }, + { + "input": "a9f0577aa82c2edbd102f861227d9f3fa1014b3b49466a8a5e3dcb4d32", + "out": + "dbf032950a7c53f692c49c8fe070c08d0ecc60d6457f0386b6ddd23000783cd8baffeb966234d70ba21d1b5b6bf1da3f4548f5cf281688290187740bccadd63e2d8dcef13bd009890d05d0af7689a585acd6de2514dc4dbae46bd404aa554381b5bc1bf8700bf2d004f7808fcfdae6364e7052ab6898be91858cc7f9b2f57f0b7ce0cb14f6db877702", + "out_size": 137 + }, + { + "input": "dde7f0e921a084a5950825105e36e4083e75e70c8e77712e236a4544aa76", + "out": + "1ee02741b874758cd541aca1c27ddc14ce742bf1ae4ee451acb52708c3debdfd7d1e97c373121c33e894df496adce239bce5708460a932746359890646fa10cbde4e7151028aa2ed94f8f3411f7053b09feb4c3f", + "out_size": 84 + }, + { + "input": "42ca44d91dfc948e3de094", + "out": "57f1538888681a9ec787dd0ea0", + "out_size": 13 + } +]; diff --git a/example/lib/test/crypto/x_modem_crc/test_vector.dart b/example/lib/test/crypto/x_modem_crc/test_vector.dart new file mode 100644 index 0000000..9c2ba38 --- /dev/null +++ b/example/lib/test/crypto/x_modem_crc/test_vector.dart @@ -0,0 +1,239 @@ +final List> testVector = [ + { + "message": + "875cdfb0c2afe7d777ec7c08c0cb108cefe0c8037fe64f88b99f58aec3be9e58c9918fb32e6c7a4babc9c557f2bfc68cd89fed057955344d8aba285727d360f59883f2bcdd9b810f32e02fa1955aea4618d00407af5a212e59f624b865e8", + "crc": "7abe" + }, + { + "message": + "95574cf47ebe726643d2bdcdb1e65c718a67fbbb16ca55d466ff980375128545c1a5925e95cc35173da94d92b03a7e2ec4949e6b14b238f25201ecb5013b8a1a27bbd974676fbbfaa0e2a15feb57bd03c3bfb4045b19ea7d5e156d16128e1fc9b648423218e1280cda9480e0ff06cad678259f5c4090f28e30facf7bd4f877", + "crc": "8ade" + }, + { + "message": + "30b47c2ed8cffb0ec6b9e63ad6d59a759a06130e210597a826dada702924ea1ac73ced52ceef622be69995812784767c54cc32759a64db0f8e8ce5b1848c06b938158730027dbcc583d6066086eca8054bff99", + "crc": "6374" + }, + { + "message": + "25cfeafe7c83ca9f43e6ae65ed3b3c3fb71d85d879b7c6bf04b0eaf965af7e4f224c4df9e2ad3215a5561d026f0a7efa1b6a7c38c718462ad66047359140b10e34f4c03ca78d43b15ca304107ddbb4b8578a60ca3d2b", + "crc": "19c5" + }, + { + "message": + "9cd32a0e71e7455b946c26489d9cb0e7de45bb68efce701e474e1669f5c54b3b1bc7c560213d7ac1b040af39b67aa6e7c5cc66d01cd785f5d6030157df4f4053df029413bf365e17e4359015f8aedea6fb0a628194423e596e10359472fa99b8ee8598bd772361a0eff776715a96b6a9413d3517e14ebbe5", + "crc": "5f5e" + }, + { + "message": + "f3c023c2b69d4d3bb14c36908868e0b00c2848cfc7d202d54c55c616f5c474159bd961f909bb65ac4d528613393331e39d33e83e8a282184d6b3378326bf10b5428a9ca68670f765094dc34c1e971dbecfad9c", + "crc": "2a3e" + }, + { + "message": + "e8f5fdf2a51cb81c617969c5a831e46d1349038846d54c58fb83d26840cae3b027e3f6646f290090c2c1882414f401e57e384c8f5f5399e6a542c87b21463dbc309782ae374409850828441cc9", + "crc": "9a52" + }, + { + "message": + "f4cf136d7d655f04329e146ccddca61d446e3fec5aec0d06db04c58a3bd54250721ae5b21b89865800f47b8e4e1ac1344bae044bdf06871d28fdc8fec46cfa9fac549974809bd5b46714b6312ece37c8a30c616e59d1c2848581ca586b69bfc0a3c49a27f9ec5af1afb8b6085f13a621496d8288afd3ab3f037b46bac3e4a4f2f4ea71e5f25ab0dcdff30d1cdb0cc0841026e1663cb71538cb53113e7700d90c", + "crc": "4ff3" + }, + { + "message": + "1417a217aded7af052397098ab7670406557f83a3c61f46b5f481096e1b3cb3f492fe2d5", + "crc": "07ed" + }, + { + "message": + "cb2d85e523134bf27d63c85ff7a9168aeba4011d42999060a0aaeb01a523257fd0b1ccb2d0ca14df758722a746830b3e71f7f5c55e3b9775e6a44528de63ff5212fcd0b167f97699710a4cf47b0c2c8391f888aa1a97ad", + "crc": "eda6" + }, + { + "message": + "3c508d3b51de7071c7e2a6c008ad9b5d0175dd17d818df6d2622d9283723b356f2aa4cd3069c747288b241c14aa7ae529ce60893757ab1d13bd7a2bbb59db97f0a86fa8c46f08849006bf0eb279f5cb5516283f92f5f463a2e7e5d5f01e433cb5780777bebf6be68b59617ef50c481fb7fa858442508853a529e1596b16a26a51d11ca85f226b07a4f74531038b338e6e5c5a8ef0542", + "crc": "e5cb" + }, + { + "message": + "a3d81151d6c6a705d2f38a4aa9fbd100dd6065ec859b1f9d28ca3b98c9866e3051", + "crc": "88c9" + }, + { + "message": + "f8cd4d442223e932b6edb7882612a5c4bc5edda298519df99e22a93d566302739ef8d412bead074f8c0e604e03b63b83c7ae81953b5313462b735d503f3feda4107928522fd2caf183808de036ae233d7c94d2b436a7b35bd1cc7a3ab70d785fe916917c9edb7b", + "crc": "03e9" + }, + { + "message": + "2ada8be1a7e99841a861ec92d9c27a4dcc2a4ee95ef2916ef30e599fc74986176e90077b0998bf796f635181cb642340063c3edeaf7f99408d4f2b5e6f0ed11df811799a839b8e7ca17421bc87a0ad95695b4b423bb6db4ecdf5540c58c86aa68517aa4c6bddc057071c54cb0c5f314db0f56df5cb390e13fea4b0b8293fbc7e6af62dd1", + "crc": "7945" + }, + { + "message": + "de66c12164524a656b252c4bcd5ab3c1f0ff19884a8f00a85dd5ee1444fb0dc3b89b20c7dcfb0d7a4a11dd97c9dc821b85c078602807b9fe311e6e341b0ed31c03afdb95024792a95ce306d70f4e40b47725b61c3713393a26ee03e70da99fa7714c75", + "crc": "d722" + }, + { + "message": + "7c6e5b39de3eace6d6d1f0217d7e9df54d3ebc40f5231a82ff5612395c45ed67740c49a0ad3e9427d7a1a715e54391fd4181fe714f08fca3f5a46ebbde4095d4d8e252bf24e2106a5a9f6454800f44c69aa1baadb740223f0cc0fa7fb4dc8db1cd535aa9dfccb072", + "crc": "aec8" + }, + { + "message": + "48aef29915752be68743fb05d0c44c537db54fa361ddc7c64ab44111f81c787c0881dfc975eb360d2b8106e628d83782a21136ca628a234c911aeed6e22e76c6e338b53e7ddead4832c0cd4e2b36dc3c6eb6333aed76cbba2cda27ff13eb022e20a89b0b80a4e271f73b23b96463f15310f02501d3e0", + "crc": "5d55" + }, + { + "message": + "53e75b662f09c39e9fe32da53db568d1a7133025f5335144dac10109ea7601166b6c49ec1ad3850eab6b0c460bcbcc99287c878d1daa69172351e509e9d1323e9890779e0985653f73b7ca1962ba0270f8621d0cb7a20fec622487465c51df6f4a320914c0f5a89022afbf48ca3a754f56f1a4f90d5c579ad9c5e1ca66b8fe082eadb5e1f34a12b77578e2f9", + "crc": "d0cf" + }, + { + "message": + "c051295d1fbb509ee2b9389a0b76d360d407f6b7dec9c1ea692c98ae6df670c078c98bb49110597a759bfc4b36ed55ba29d1e6f89dc50ecddce63283afc03f94fcc3462bd33f7982fa477e99988c3b9bf8b83fd7b3a95133e6ad3f", + "crc": "e70e" + }, + { + "message": + "ec22d6b82244de4ba2914e97507c39943ed98f05b7808324a2802789b352aaedcd3815a749634b3c94be788f0e3920a05faed65751a98e94fc3a5533703a749663a087033ce121fb52b12b695b47db34eac3e3ee6590aaee68c318a7884867f234f194b1e2ea5107863f0fa3", + "crc": "83b8" + }, + { + "message": + "06a286e06a0a6d29d4eef01774c839c676d1d2cf607a76ea82ba0278d7649d51eba7e22d87b215051b3a6917d30deca104a5803ad8ed30ccedc5f63466913d8bf118127bd2ffb2cb3f7ad58e2aaff1b13089a8e843c9b59fc87ee89e8920f3f9", + "crc": "f8ba" + }, + { + "message": + "bfd063652dbfadf7ecf878a72f2983369651844a110e6d4a1ef96fa4a88c77ffe49551e376305df2d3a3bc650cf6511898efeb2190cda48e1c", + "crc": "5306" + }, + { + "message": + "e18f4d659a360afe39859b174fdf4f3fe56a0bdee9efe89883317d6f81df163fefd5a6545a784327f8489729f9da495ef445462c44502f638eff7ee0ad49f126a2c7", + "crc": "8526" + }, + { + "message": + "f7105311ae7d79dbbe2a0530d4fe4c524a1e3416a19be340b85428001ae08098d44f1ed55b34d9fbaf0a0ffc4c6d453c282aa3", + "crc": "c0c5" + }, + { + "message": + "dbb56f630d7e621e943cecd11b89b83c54af67556851379d0b402e9cb567598527114c8c289eb2331e015f7d8aa391d5d37b", + "crc": "42e9" + }, + { + "message": + "c0345dc79c5003fa1e117649293a96390150a237626e79b4981b7d180b1658d0b9ac732d913ce58052806cd8f51f0590b4257f226a7120b4499cc759635f831f9e9a084dfc3adaa2c3cb8e389a08c592549d87f3d9e18e160c02bfb73605ac", + "crc": "247b" + }, + { + "message": + "a7e11972888f05172703f20aa8a181dac5da0cc5ddb8753c43c12f8de6b0bed51286294b60f259057695389d35f9a32d1fd0b5c3fb6ad2593f", + "crc": "025f" + }, + {"message": "aede351f916df50d49577d88730503642f20c5", "crc": "c92c"}, + { + "message": + "31bac4f222b02d1d3027d6275100fbf56a5e21c73dcf003244e519a6f14a6845ef021e4c6b67e983dc669de052ff690e4ffd48677079c013adadd5ffefca736200ea093b6036e3f968a6677b8a8d41b442bca61f0c377c3da8ac6a66aafdc902550523ddf955d2a9fabd01dd81094e9c019b134046b5fdf5567e98fe0d2615433b7d96e9", + "crc": "5c9e" + }, + {"message": "ed9e24cd92938e80d581cbf2f2b82c8117a070ae", "crc": "5e8b"}, + { + "message": + "b0b51badf80c382a184399eae6d0174114155373c8590ba1ae76d07e33656175bfd1798a1ff8bcc107f084ca72f96db3a88a0d13cae1d4ed2cf6f430dd3c13082cdf62e79b6b5844a922f6ed2cdad9fc74bddf28", + "crc": "5971" + }, + { + "message": + "aa77a163be04f69ca0396e1324fb1b6f8c8ead19c38d96b5df2aa13fcfae16ec8868a24189095c5dfb3ea46fce68a322b427718a5bf35c8e43c6b948b1e1033da256174f1aedbcd7d92244ea6a08a0716a716de61f55107de5e0e83c2c29256afc0c39b0208a8325b547f6b02a6846fd", + "crc": "a3fa" + }, + { + "message": + "4d58371133ca4c6f35c096e31b7d4abdae1d604e1b0936176d29db2a6a6affbf003e01335907c55405898567a90d92b752a47dbd0bbce92388e946ce475fd0c33e5fa5b7f0fb0f424df293c73946955d23c16b9e6fdc358dd44d6ca9573fe939f76786646383ec50f2100943b49ad325719496", + "crc": "31fe" + }, + { + "message": + "01aec529498f67bf03b069a4d37a494cc81e873dbdf7d2d7bbedcc6f667b0d5ac7ea34e35641c4c1e7234da8f308de1e693d5075466e5945382546b02b4ffe5c38e4f9e3", + "crc": "02f9" + }, + { + "message": + "7d6a21011049d6e2471964aa82052f709cd6ccc71ff8ca5dae504ad909d29ac0766015caeffa37efba395dd60cdd57bdef93772d80f0ccd812b617b84c0815", + "crc": "bad1" + }, + { + "message": + "b5077ed6315c3629bbb5865d3884df8a1f5206f12d6e725fe86cd34cf19a81746779bfde70a464739e7d0bb12da8e896c0e1ded4d8fb01bf6b9510d9f12318233c5d310159197ad22104a9970d7106d093660fa7a5", + "crc": "79ac" + }, + { + "message": + "54442ed2a504d33e7412e0dd8cc115cc64ef56c2d2c82dfc2df604a49b41d964ea58ae11141da0e5311b0bff87a00162064ba47b", + "crc": "0390" + }, + { + "message": + "7e1de041880e18694faf994d47ca32d59dd2ac7167d73fcfa0dea4d10538fa3d2636e0849014d5edf599457112751b30", + "crc": "1732" + }, + { + "message": + "7856d5abfff73fa86239bc52b9476f392a5399b459d9add37f1e1b2f66f10c936ca0a234835d6ace1bc904fd9f18c1d53ce99215fa245d83b000290fd91092855a0786f87368fe9e35487e8de24de3774069a23a10f5b4cf4cb087501d0b4570352b4f0f0318fcfc91925f511b95", + "crc": "b88a" + }, + {"message": "0db4b830f50353a353d566f85de618", "crc": "74fd"}, + { + "message": + "d4561c59a17041bd6a3aa4b1cf95880ac66bc4561056e97a1d03cd5c953eef7a66a2816fedd13d0adaf81827938410b2a4b8a5d10b391d9e32741484fe7d6b92360e3484eb89c16d15a0988fd86c8dc7e3", + "crc": "8c6f" + }, + { + "message": + "ff5881b68105f9fa0d1df510ff17562455c3769043bdf39a66e3efc9ee5a4aca8e787d579c36e0e0754ae636e4f927b731c496cc251824f049b9d7db1cffce50596c59b2dd242ce021c5f778962192e094264085afaf687df19d1c937b2a47fa94524ad3bb3b6b8e92580a95bcd706e5", + "crc": "7c1f" + }, + { + "message": + "753089befdeb04054ef8d06b375ec9e238fe40f711d515c5f945344848105bab81cda91596acf7ff90b68a2ae6ff7c1d8ea2d6d27abba44bad05ce7bbc82a0e9842519113f42d59cf0502a4e608c988066d4fac812bf2c7a46485166821bf5f1644dfe37fea44726941963145fb7d3f81aaa16539540235949522c24b344b7ff540567", + "crc": "4043" + }, + { + "message": + "351725757f92b804290787dd693394c8aace3b8cb740804dddfad2ae1c32f6d9f40ab45d620efc0e04a1f3ec57fff3015d68f833bd71f39a427309e29a8986024176f388cdc0be80ff4f8ff50e4af70513a940a65c4f8288783079361f3bf89a8af3398aa7c8738200d3155f436acfd88ab520c40b70d1c8", + "crc": "cd65" + }, + { + "message": + "f69a523e957bb56d57c400d5c393859a9b963abaf3041536a4554ab83c57d7396c4650c7cb2adb20b6399b8a3c187646a7548b9e8ac86909771bf1c7e07f1801fcd28dc0d6616fa3847183eb16b2188c779a43ea45e60035c6ccf450cf032276085613292f", + "crc": "a498" + }, + { + "message": "fc607bb32e75983fefac8ba97e26f8cd66fc6375407acf7b12a38a", + "crc": "e17a" + }, + { + "message": + "df3097109d1bf4ad2e91e3ace7d7c274b9a207653176efe06c30c6cb41aeaf702dfc966f8090ac5beb8c8af29d37822adf61ea6b7d7586baad4e7580a802fe3e3a75998abb2109348badab41305c8208d5e6c19dc39ae859f2a8c1dfbf78b3d7bb7d09cab4d2cf9d1b03648576790c975c34825d82b980bc5cc3df34e85b57fc82804323125e7e41ee8bc238973cd82d4461", + "crc": "2919" + }, + { + "message": + "fd036e37c1f4e0aee5e6bc808a36d305c1b8206d7fb6d43ba29f814208ed8b8a2182531b6a72758d3f073dd5abf20fa84bde3f8924364a69fdf31933245e8dd1d43a8506dfe1f6c122ccaf129192d9c1155e00f55592eb4237b7", + "crc": "4e19" + }, + { + "message": + "c560a91ed36302f77094142c17696b35b0b21f0755ccd24cb048cc8b837c687b4b7157494e9fb1fb3380256b96161d3bff5a380d78c9d79fca6910f0b8b2f8c277968b29080e6f16f5ff51a68e5d5df37e0bca16ea95137317617a0a37d9ab9f3f42", + "crc": "71a4" + }, + { + "message": + "f052e6fee7f866d5b4124d955d525387df828ec67ebc9fbd4bcca3e0d2ee59c51824b5437f9f67f0fb0f8b1734edee90", + "crc": "6981" + } +]; diff --git a/example/lib/test/crypto/x_modem_crc/x_modem_crc_test.dart b/example/lib/test/crypto/x_modem_crc/x_modem_crc_test.dart new file mode 100644 index 0000000..672e744 --- /dev/null +++ b/example/lib/test/crypto/x_modem_crc/x_modem_crc_test.dart @@ -0,0 +1,13 @@ +import 'package:blockchain_utils/crypto/crypto/x_modem_crc/x_modem_crc.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void testModemCrc() { + for (final i in testVector) { + final result = + XModemCrc.quickDigest(BytesUtils.fromHexString(i["message"])); + assert(result.toHex() == i["crc"]); + } +} diff --git a/example/lib/test/ecdsa/ed_test.dart b/example/lib/test/ecdsa/ed_test.dart new file mode 100644 index 0000000..a5c0372 --- /dev/null +++ b/example/lib/test/ecdsa/ed_test.dart @@ -0,0 +1,175 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/eddsa/privatekey.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +void _testDouble() { + final a = Curves.generatorED25519; + final z = a.doublePoint(); + final x2 = BigInt.parse( + "24727413235106541002554574571675588834622768167397638456726423682521233608206"); + final y2 = BigInt.parse( + "15549675580280190176352668710449542251549572066445060580507079593062643049417"); + final b = EDPoint( + curve: Curves.curveEd25519, x: x2, y: y2, z: BigInt.one, t: x2 * y2); + assert(z == b); +} + +void _addDouble() { + final a = Curves.generatorED25519; + final d = a + a; + final dDouble = a.doublePoint(); + assert(d == dDouble); +} + +void _infinity() { + final p = EDPoint( + curve: Curves.curveEd25519, + x: BigInt.zero, + y: BigInt.one, + z: BigInt.one, + t: BigInt.zero); + assert(p.doublePoint().isInfinity); + final p2 = EDPoint( + curve: Curves.curveEd25519, + x: BigInt.one, + y: BigInt.one, + z: BigInt.one, + t: BigInt.zero); + assert(p2.doublePoint().isInfinity); +} + +void _equal() { + final x = Curves.generatorED25519.x; + final y = Curves.generatorED25519.y; + final p = Curves.generatorED25519.curve.p; + final p1 = EDPoint( + curve: Curves.generatorED25519.curve, + x: x * BigInt.two % p, + y: y * BigInt.two % p, + z: BigInt.two, + t: x * y * BigInt.two % p); + final p2 = EDPoint( + curve: Curves.generatorED25519.curve, + x: x * BigInt.from(3) % p, + y: y * BigInt.from(3) % p, + z: BigInt.from(3), + t: x * y * BigInt.from(3) % p); + assert(p1 == p2); +} + +void _scaling() { + final x = Curves.generatorED25519.x; + final y = Curves.generatorED25519.y; + final p = Curves.generatorED25519.curve.p; + final p1 = EDPoint( + curve: Curves.generatorED25519.curve, + x: x * BigInt.from(11) % p, + y: y * BigInt.from(11) % p, + z: BigInt.from(11), + t: x * y * BigInt.from(11) % p); + + assert(p1.x == x); + assert(p1.y == y); + p1.scale(); + assert(p1.x == x); + assert(p1.y == y); + p1.scale(); + assert(p1.x == x); + assert(p1.y == y); +} + +void _add3Time() { + final a = Curves.generatorED25519; + final z = a + a + a; + final x3 = BigInt.parse( + "46896733464454938657123544595386787789046198280132665686241321779790909858396"); + final y3 = BigInt.parse( + "8324843778533443976490377120369201138301417226297555316741202210403726505172"); + final ed = EDPoint( + curve: Curves.curveEd25519, x: x3, y: y3, z: BigInt.one, t: x3 * y3); + assert(ed == z); +} + +void _addInfinity() { + final x = BigInt.parse( + "42783823269122696939284341094755422415180979639778424813682678720006717057747"); + final y = BigInt.parse( + "46316835694926478169428394003475163141307993866256225615783033603165251855960"); + final p1 = + EDPoint(curve: Curves.curveEd25519, x: x, y: y, z: BigInt.one, t: x * y); + final p2 = p1 + Curves.generatorED25519; + assert(p2.isInfinity); +} + +void _addAndMull() { + assert(Curves.generatorED25519 + Curves.generatorED25519 == + Curves.generatorED25519 * BigInt.two); + assert((Curves.generatorED25519 + + Curves.generatorED25519 + + Curves.generatorED25519) == + Curves.generatorED25519 * BigInt.from(3)); +} + +void _infinityMul() { + assert((Curves.generatorED25519 * Curves.generatorED25519.order!).isInfinity); +} + +void _infinityMulAddOne() { + assert((Curves.generatorED25519 * + (Curves.generatorED25519.order! + BigInt.one)) == + Curves.generatorED25519); +} + +void _mulByZero() { + assert((Curves.generatorED25519 * BigInt.zero).isInfinity); +} + +void _testEncoding() { + const generatorBytes = + "5866666666666666666666666666666666666666666666666666666666666666"; + assert(Curves.generatorED25519.toBytes().toHex() == generatorBytes); + final gn = EDPoint.fromBytes( + curve: Curves.curveEd25519, + data: BytesUtils.fromHexString(generatorBytes)); + assert(gn == Curves.generatorED25519); +} + +void _testKeys() { + final pr = + EDDSAPrivateKey(Curves.generatorED25519, Uint8List(32), () => SHA512()); + assert(pr.publicKey().point.toBytes().toHex() == + "3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29"); + final sig = pr.sign(Uint8List(32), () => SHA512()); + final verify = pr.publicKey().verify(Uint8List(32), sig, () => SHA512()); + assert(verify); +} + +void _testEDBlake2bKeys() { + final pr = + EDDSAPrivateKey(Curves.generatorED25519, Uint8List(32), () => BLAKE2b()); + final sig = pr.sign(Uint8List(32), () => BLAKE2b()); + final verify = pr.publicKey().verify(Uint8List(32), sig, () => BLAKE2b()); + assert(verify); +} + +void testEDDSa() { + _testKeys(); + _testEDBlake2bKeys(); + _testEncoding(); + _mulByZero(); + _infinityMul(); + _addInfinity(); + _add3Time(); + _scaling(); + _equal(); + _testDouble(); + _addDouble(); + _infinity(); + _addAndMull(); + _infinityMulAddOne(); +} diff --git a/example/lib/test/ecdsa/projective_test.dart b/example/lib/test/ecdsa/projective_test.dart new file mode 100644 index 0000000..246a332 --- /dev/null +++ b/example/lib/test/ecdsa/projective_test.dart @@ -0,0 +1,170 @@ +import 'dart:typed_data'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/ecdsa/private_key.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/ec_projective_point.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/rfc6979/rfc6979.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/numbers/bigint_utils.dart'; + +void _testEqualWithAffinePoint() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generatorSecp256k1); + final point2 = point1.toAffine(); + assert(point1 == point2 && point2 == point1); +} + +void _testInfinityPoint() { + final point1 = ProjectiveECCPoint( + curve: Curves.curveSecp256k1, + x: BigInt.zero, + y: Curves.curveSecp256k1.p, + z: BigInt.one); + assert(point1.doublePoint().isInfinity); +} + +void _testAffineWithZero() { + final point1 = ProjectiveECCPoint( + curve: Curves.curveSecp256k1, + x: BigInt.zero, + y: BigInt.zero, + z: BigInt.one); + final point2 = point1.toAffine(); + assert(point2.isInfinity); +} + +void _testWithAffinePoint() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final aff = point1.toAffine(); + final sum = point1 + aff; + + final doublePoint = point1.doublePoint(); + assert(sum == doublePoint); +} + +void _testWithAffinePointAndRightAdd() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final aff = point1.toAffine(); + final sum = aff + point1; + final doublePoint = point1.doublePoint(); + assert(sum == doublePoint); +} + +void _testAddWithInfinity() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final p2 = ProjectiveECCPoint( + curve: Curves.curve256, x: BigInt.zero, y: BigInt.zero, z: BigInt.one); + final sum = p2 + point1; + assert(sum == point1); +} + +void _testMultiplyByZero() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final m = point1 * BigInt.zero; + assert(m.isInfinity); +} + +void _zeroMultyply() { + final point1 = ProjectiveECCPoint( + curve: Curves.curve256, x: BigInt.zero, y: BigInt.zero, z: BigInt.one); + final m = point1 * BigInt.one; + assert(m.isInfinity); +} + +void _isInfinity() { + final point1 = ProjectiveECCPoint( + curve: Curves.curve256, x: BigInt.zero, y: BigInt.zero, z: BigInt.one); + assert(point1.isInfinity); +} + +void _multyByTwo() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + + final p2 = Curves.generator256 * BigInt.two; + final p3 = point1 * BigInt.two; + assert(p3.x == p2.x); + assert(p3.y == p2.y); +} + +void _doubleWithMul() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final doublePoint = point1.doublePoint(); + final doubleWithMul = point1 * BigInt.two; + assert(doublePoint == doubleWithMul); +} + +void _multiPly() { + for (int i = 0; i < 5; i++) { + final mBy = BigInt.from(i + 1) * BigInt.from(i + 1); + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final point2 = point1.toAffine() * mBy; + final point3 = point1 * mBy; + assert(point3.x == point2.x); + assert(point3.y == point2.y); + assert(point3 == point2); + } +} + +void _testPreCompute() { + for (int i = 0; i < 5; i++) { + final mBy = BigInt.from(i + 1) * BigInt.from(i + 1); + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final point2 = Curves.generator256 * mBy; + final point3 = point1 * mBy; + assert(point3.x == point2.x); + assert(point3.y == point2.y); + assert(point3 == point2); + } +} + +void _addScaledPoint() { + for (int i = 0; i < 5; i++) { + final mul = BigInt.from(i + 1); + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final point2 = ProjectiveECCPoint.fromAffine(point1 * mul); + final point3 = ProjectiveECCPoint.fromAffine(point1 * mul); + final sum = point2 + point3; + final m = point1 * (mul * BigInt.two); + assert(sum == m); + } +} + +void _mullLarge() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final point2 = ProjectiveECCPoint.fromAffine(point1 * BigInt.from(255)); + assert(point1 * BigInt.from(256) == point1 + point2); +} + +void _testKeys() { + final seed = BytesUtils.fromHexString( + "416ec857ec2501598cdb8b146f764a6be33a23d77ed6d1a01a2b5bae7adc9d2c"); + final secexp = BigintUtils.fromBytes(seed, byteOrder: Endian.big); + final ECDSAPrivateKey privateKey = + ECDSAPrivateKey.fromBytes(seed, Curves.generatorSecp256k1); + assert(privateKey.publicKey.point == Curves.generatorSecp256k1 * secexp); + final msgDigest = BigInt.zero; + final sig = privateKey.sign( + msgDigest, + RFC6979.generateK(Curves.generatorSecp256k1.order!, secexp, + () => SHA256(), Uint8List(32))); + final verify = privateKey.publicKey.verifies(msgDigest, sig); + assert(verify); +} + +void testECDSA() { + _testKeys(); + _mullLarge(); + _testEqualWithAffinePoint(); + _testInfinityPoint(); + _testAffineWithZero(); + _testWithAffinePoint(); + _testWithAffinePointAndRightAdd(); + _testAddWithInfinity(); + _testMultiplyByZero(); + _zeroMultyply(); + _multyByTwo(); + _isInfinity(); + _doubleWithMul(); + _multiPly(); + _testPreCompute(); + _addScaledPoint(); +} diff --git a/example/lib/test/elctrum/mnemonic/mnemonic_test.dart b/example/lib/test/elctrum/mnemonic/mnemonic_test.dart new file mode 100644 index 0000000..c7a2b1c --- /dev/null +++ b/example/lib/test/elctrum/mnemonic/mnemonic_test.dart @@ -0,0 +1,54 @@ +import 'package:blockchain_utils/bip/electrum/electrum_v1.dart'; +import 'package:blockchain_utils/bip/electrum/electrum_v2.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_generator.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_seed_generator.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_generator.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_seed_generator.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'test_vector_v1.dart'; +import 'test_vector_v2.dart'; + +void electrumMnemonicTest() { + for (final i in testVectorV2) { + final type = ElectrumV2MnemonicTypes.values.firstWhere((element) => + element.name.toLowerCase() == + (i["type"] as String).replaceAll("_", "").toLowerCase()); + final lang = ElectrumV2Languages.values.firstWhere((element) => + element.name.toLowerCase() == + (i["lang"] as String).replaceAll("_", "").toLowerCase()); + final entropy = BytesUtils.fromHexString(i["entropy"]); + final mn = + ElectrumV2MnemonicGenerator(type, language: lang).fromEntropy(entropy); + assert(mn.toStr() == i["mnemonic"]); + final decode = ElectrumV2MnemonicDecoder(mnemonicType: type, language: lang) + .decode(mn.toStr()); + assert(bytesEqual(decode, entropy)); + final seed = ElectrumV2SeedGenerator(mn, lang).generate("MRT"); + assert(bytesEqual(seed, BytesUtils.fromHexString(i["seed"]))); + if (i["address"] != null) { + String addr; + if (type.name.startsWith("segwit")) { + addr = ElectrumV2Segwit.fromSeed(seed).getAddress(0, 0); + } else { + addr = ElectrumV2Standard.fromSeed(seed).getAddress(0, 0); + } + assert(addr == i["address"], "type ${type.name}"); + } + } + for (final i in testVectorV1) { + final entropy = BytesUtils.fromHexString(i["entropy"]); + final toMnemonic = ElectrumV1MnemonicGenerator().fromEntropy(entropy); + assert(toMnemonic.toStr() == i["mnemonic"]); + final seed = ElectrumV1SeedGenerator(toMnemonic.toStr()).generate(); + assert(seed.toHex() == i["seed"]); + final en = ElectrumV1MnemonicDecoder().decode(toMnemonic.toStr()); + assert(bytesEqual(en, entropy)); + final addr = ElectrumV1.fromSeed(seed).getAddress(0, 0); + assert(addr == i["address"]); + } +} diff --git a/example/lib/test/elctrum/mnemonic/test_vector_v1.dart b/example/lib/test/elctrum/mnemonic/test_vector_v1.dart new file mode 100644 index 0000000..9c847d1 --- /dev/null +++ b/example/lib/test/elctrum/mnemonic/test_vector_v1.dart @@ -0,0 +1,352 @@ +final List> testVectorV1 = [ + { + "mnemonic": + "pride anger fact prepare begin leave clue fade sound smile bubble mystery", + "entropy": "eb18c96de7985ff6f085161eb079009b", + "seed": "b98c9417dca1d0835c5cd7a4bed0632a35cf745e0b82f462124067158bf3b673", + "address": "1DxWJwtscq4j4pQE9vFFrg7hBgbagfVQLt" + }, + { + "mnemonic": + "exactly drove tool mercy floor devil harmony awake maybe broken practice door", + "entropy": "50d8e0e3605416576e6de2332b2636a1", + "seed": "4ea1d2544870656991bbbf23a23dd1b05b492519e472e7339fd85ea7c5cddf5a", + "address": "1Botk6ZVHJsLFYgGVPgx8NgrdYbkM9YVsA" + }, + { + "mnemonic": + "giggle law plan wrote root emotion weapon quite glory dew calm creek", + "entropy": "6099f485988bd3f394cb1d3e28667a0b", + "seed": "b828c319d6427a972c818182d71c4381d81f20f2574f2c9f1e5b0d8ddb3766d5", + "address": "15Dh1qbk21uPU2zhs6QmziUWB9yuf2DFL9" + }, + { + "mnemonic": + "calm broke patience recall sane scrape reflection mighty remember sheep breath bit", + "entropy": "818c4b841b73ebe72424c06f1a09fca2", + "seed": "c5f6142c9d1e475d1f4ffb39c604e7f1269c5f67be174e911f8dd94784f3b1a2", + "address": "1C9tUWAd2PdRtAncCY1h7SLP411PHmNJAi" + }, + { + "mnemonic": + "remind crazy darkness less stole own autumn possible ripple loss study grace", + "entropy": "ce748c6d56bf141afc1ee8f9e24e1a55", + "seed": "69dd401dc676dbc5133086f3691e6348f9bf7fc6aa33c44b532694433d1ba1fe", + "address": "19QYuiWSv5duaz7FXehtKQzc3wcEzhNh9o" + }, + { + "mnemonic": + "separate phone quite after void blur tie pray aim innocence frozen belief", + "entropy": "e6775659d349302ba3b50f0c34a85623", + "seed": "419a542573acbcb37d92f119340bdbeba96f56d68ea0b667a8b5379f0d773fe8", + "address": "1MLvGVyq6R1eVtAJoUR1g3W7xAMWXCbWqz" + }, + { + "mnemonic": + "throw more alas common group danger twice fail over loss blame wheel", + "entropy": "e1a136e83c7a14e0b921af5b30fa849f", + "seed": "8dd41bda31da394c9d30e8177580015dc9af8ff474e6cfacfd68bbc3a709e464", + "address": "15iUowcYbH1WpyB9mRVbJaVVZPBre8XfmB" + }, + { + "mnemonic": + "diamond during home lift during object stir air sheet although lord carefully", + "entropy": "67a8c01e327ae8386b36e82638eb2961", + "seed": "b64b1d41e7433be94f8b051be3164e178d27ce7cb46228ccbb1ae13cf27756dc", + "address": "1ByH52TpDYPwFGaijyenTiHgoMbbU2jdgv" + }, + { + "mnemonic": + "order blink crimson flame ship tide simply carry study swing unseen suddenly", + "entropy": "1483e92327c30ecc572154c448e4c0ad", + "seed": "77554179047f5dbe319d9130da3613ba1f15706b6c99c357566fe065036e8c72", + "address": "15piZEuFk2B4bRP8K5RiZn4tHg45Jj99sy" + }, + { + "mnemonic": + "easy fog real stain naked rant bang animal wife clue play effort", + "entropy": "61515d293cdfe3d3057db1c7a43bb1ac", + "seed": "fbed664b16f300941fbe1cedab04b6d533bba7d5d7dd985a04f1d6c970c27fde", + "address": "1MgMZH4SyeVkBqDBqfkjS8kZHb3C5qMAw4" + }, + { + "mnemonic": + "tool moan belong core came save poetry claim fresh dog line shield", + "entropy": "6fbd272c1191e379e0ff8f4ea4d07e6b", + "seed": "491b6e537d3b1bab4d39a280fde92fa6aed35d257c9366514724b2731a3e878c", + "address": "1JQkfzpKxRgQsLMpCPXgGtkBr7En9v9Ad6" + }, + { + "mnemonic": + "easy heel ruin goodbye laid truth whether tongue poem fire mighty great", + "entropy": "d4d1cc3b5f42a80fe5e2b6c92e2301c4", + "seed": "6ffc9042933904e600e8793df01ee424b2dba2b34c3429d9cca10140ae062a4c", + "address": "1K34Q6JSQE563XWikLUBjHk2DrxaF3Jdsr" + }, + { + "mnemonic": + "group slam speak grow coat handle admit father perfectly through movie soothe", + "entropy": "7307ebd1e493d4f976e8c54c4dc1bf67", + "seed": "d53d39ad6619c39fc5b530bd0248d08d4ce49245f311b14d4a2b17a62bb3b6b5", + "address": "1PcQKD8PZxkhbLjjQDakSBJ4uERegPpAi1" + }, + { + "mnemonic": + "worry gift metal breeze happen some object order warn pool laughter bridge", + "entropy": "06a77d1bf460e39c22c4d16c7fc6c844", + "seed": "da4e8326db8b1b460c0b906fb85103bad113f2d6d9b23747497502a64f09d76d", + "address": "1J7SC6S6LnoVhFPPbX1cxAou6LbM4Bp2Hp" + }, + { + "mnemonic": + "cease said entire flower darling marry creak freeze peel spirit mean kiss", + "entropy": "aea4f0e6e13e38cd01e0691508ca4581", + "seed": "619a41e145722ad56c2f3413f8425fd737f34fde7b8d309a3a3c5c2e6a437f2d", + "address": "18rbCVYh4eRwuRN9w62MT8L7mrMPaL7yqy" + }, + { + "mnemonic": + "dig muscle flash reach needle blood howl shoot doll sister chocolate soothe", + "entropy": "f70e137b4df3b84045eb3e702630a616", + "seed": "81b6f7662017dce85b5edc387e1ec415c365eb021f237840f3fa26351fc1f902", + "address": "19kmVTkfqvhkeudkZPtFLtPuNB74HDc2cj" + }, + { + "mnemonic": + "block imagination become lot apologize respond bleed breeze rebel exactly lovely toe", + "entropy": "7d74e98b11e773869e62f13e0fe6dea3", + "seed": "a914d32bdc0f4ee11df411699233396369ba798724a39bd321750527b640f839", + "address": "1AJhNYwnpJdp7czf6G1juXE2AWsQfnnbD5" + }, + { + "mnemonic": + "swirl letter only thump reality learn expression bloom loss prefer free flow", + "entropy": "92dbf406ed94e3ebdb52851b12ee3ded", + "seed": "5066b35f25e77f355f0c71c1ddad05906063ba81fb1f9cb42c6cddd508d4533a", + "address": "1MLFjxBKBmHqD7aB5wzmmt45aywuiTptvQ" + }, + { + "mnemonic": + "them dark bother idea verse child caress half accident trouble support separate", + "entropy": "5f0910a73fc27b4f88e39e371114a368", + "seed": "c43446a8fa678d1a7e700e68ab67a2b05f43218d5a850df4e14da1fbd5f7c525", + "address": "1MwH5wL2MEP2AXgDjYuzkr8UAt92qSQ6sZ" + }, + { + "mnemonic": + "threaten offer void drum shoulder alone them warrior laugh simple got make", + "entropy": "7c1ec037cf1e523644ad2017f50587e2", + "seed": "bed861eb2893f6cbc70c06c352e3f664218ee129eb95d3229fa5612b98d3fcf2", + "address": "1QAVuPybWDdJ4DJJNyoY7eaRrQ1MFFY6kW" + }, + { + "mnemonic": + "family mud fault somebody common sea serve fire clean skip strain men", + "entropy": "bc3e40313bed78c81e05947b3b9ad43b", + "seed": "566a874b4e798f97cda697f4231a0c1ee9482282d7cfaeb28e8aee7b5925a6b1", + "address": "1GsotWhrGdPvrqt5JNjhUoUYa5dtu5y1qa" + }, + { + "mnemonic": + "field problem memory doom doctor energy grew release blanket scatter fruit wash", + "entropy": "df49a9fd0c14175b0efe29aeb588e8ec", + "seed": "ab0b92413c39adf66e0ea2fc9a6fb5a00d773cb95f9234876a9c035a85cbfa1f", + "address": "19JnkoyyZMacXC7dXTBabq3QA3AqKuPnzG" + }, + { + "mnemonic": + "ugly patience edge clay refuse value press sure feast certainly upset cross", + "entropy": "5dfd187523a18632cdeb98f991e3d4b2", + "seed": "c36e3144f7eaa73ed7584728290f81a63a0fe924a45ecb0c8f82da21532154d2", + "address": "1LtpsDAd9D8YmgdDXagvRGtLmvZMkckX6k" + }, + { + "mnemonic": + "opposite crave void lot son muscle then scratch decision embrace perfectly score", + "entropy": "2fb431144b0564aaf648e8d33b260e97", + "seed": "147901e4cff3966cbc6d40281dce927611deac12d93e359b27d1713dd48cc2e1", + "address": "1Q3BQe9iTBsey8FugASR4bMGYopxmCZL5a" + }, + { + "mnemonic": + "stay whether bullet great lung more land agree throne slept mistake agony", + "entropy": "180770cf80a84d716c7d20e29c8e87bf", + "seed": "658eb952c563b4863df443b2d86c7ebe338ae9ae85dd17623d18be5a759a54f6", + "address": "13XsE7MDerEJx4f4VkX1Q3HHDAYqJg4GcV" + }, + { + "mnemonic": + "tree click rant surface stand drop advice dear enough rise choice sometimes", + "entropy": "f43b6b5c20b83ba4ef98439fc5f46aed", + "seed": "612c3781d4a280885df7cb22e76b342112432b0bff4b949b7528fb105a76164e", + "address": "1NFuoX83Lfc3fPFvTVViVufpFn4YGS134K" + }, + { + "mnemonic": + "beyond verse brother yesterday however grant spiral invite silence certainly ponder invite", + "entropy": "3bfb67ed293da7da3c59223006c63912", + "seed": "85250c135497f7fb8e9efe7207fb18533911aca9584993f90a3f8f49ec1e3597", + "address": "13zt5ufELAQ9HJckUs2EptMskp43rrHPoq" + }, + { + "mnemonic": + "bomb hero evening knock shimmer ancient purple clay wrote angry alive mean", + "entropy": "4bcd2d98ce2d852c2e502c1fd6c7ac45", + "seed": "379cd229296daf3cb59b3c806188680394ead6a42aa0951c7c5d8f5e64100205", + "address": "1FDXfZX1GVKMAMBz3g9A7ncf5UUmdxV4sM" + }, + { + "mnemonic": + "action want here different strip approach shadow shore fruit raise brain sail", + "entropy": "05440f2ec3880c19db738cb94c6bdd57", + "seed": "55d0ec9e092777c2f67730f90d2a25c63d3567838b8e8aaea66e16e09670f424", + "address": "1PuN5bi2p1EeAAspXy3Py9FYU8nkwNGeK8" + }, + { + "mnemonic": + "excuse crap party eventually ponder effort emotion button moan mean journey picture", + "entropy": "bfd1adafcb79a0f3474eab368e3cbd8a", + "seed": "5e6c5bfe78c6d986acf34c5b0db6b082075c8c7ffe715f9fdc6157c75fb434ef", + "address": "1HRcX6XTDe7doFdSZyeZkz1hRx5eGr8Snd" + }, + { + "mnemonic": + "nowhere million future brand known goodbye able energy sympathy six decision shut", + "entropy": "cacc9e7dff589dc96efe44398810e575", + "seed": "c437413e2eb5b985ac1e86fe773db6e0589fe93f2beec2a156150c5ffc491dd7", + "address": "12kX63czDTXotVz2QRoQ5srrPhuEDXhnBv" + }, + { + "mnemonic": + "apple slide heel ground sister other another bright cell test opinion free", + "entropy": "337e9630c66bc189790b76c94a72ea48", + "seed": "d6cb7ff38d813c01eb04687ae98815f48b5b6471c860d35963c69bc4849da3c8", + "address": "1KH8PWLm2Vmsje3MtCRbYywjiKtWPMDQH9" + }, + { + "mnemonic": + "children desperately hurry pause drop bliss flesh funny manage rule forgive fur", + "entropy": "28e9e7b18f7c9751923dbb387426809d", + "seed": "d0da18171478398d7457f8c6134cbdb4bcfabf16dab7d1a1812576ee65281462", + "address": "1JJ7XS8xqeXEGdHsvQ1iGrPKrPv9E95Wgg" + }, + { + "mnemonic": + "kingdom tickle over seem spiral nose might verse sane couch idea taught", + "entropy": "29958a744ec8f0faf5f6a3ba1adfbac0", + "seed": "c66637978d1170790da9969848245a41e1d199050ee474feac0ec8d571e1b883", + "address": "1cYqLjzzFv32kcrgureT11ALTYeLFZQqC" + }, + { + "mnemonic": + "caught sanity fantasy generation sneak manage dirt fail coward decay almost neighbor", + "entropy": "e559347f28f1516daa2a60889f872daa", + "seed": "5d3b9fed41fff331feaeb6d340b14149917d667788bb3b16dd4a5af74a1f2cd5", + "address": "1LvKwQGhJYp2gtbvCsjdrnjzBMaskDTxDf" + }, + { + "mnemonic": + "deny cloud wife weak army play remember message nice too foul chin", + "entropy": "3a1af98547ef785091dc04baf69b3503", + "seed": "ad25fe6e5a8b8933a018e202c288787bc9f61a4077adffc4a3aa4f5406a6321e", + "address": "1YDdQK14B6siYSTPdHqCbyAVHHyTvavJK" + }, + { + "mnemonic": + "stretch child slightly storm family charm feather keep blame tie became unable", + "entropy": "6da3a3d67ed3c1ad441ee7693be03760", + "seed": "9d557357fe0a62baac245a27ca52e4208d803479d8baecac4e296083afa103eb", + "address": "1GjnroTz2QKMSK3GAn6QRJtxMVoKtnbALX" + }, + { + "mnemonic": + "faint dear window inner pocket bloody small breath reach secret feather mouth", + "entropy": "09ae57da48ed84ef058383975f6f833e", + "seed": "aab96df868d96bd04ee5cdd14de642a2562ada15a0ece894e13dac9d7ff9017b", + "address": "1J3KrPkWrhTBKJnEFNuCgMoF8PktnMmVky" + }, + { + "mnemonic": + "leaf sheet bullet daughter illusion bloom faith heard pale heal shield voice", + "entropy": "205a7e20f0d88326560050085098570b", + "seed": "5d00628754f701e063a275496a26f5dff56a2631b2f734dc7a3833eb00671578", + "address": "1Gs8wcgEzJ2EcTvfDdUB43FVmLRR44T68P" + }, + { + "mnemonic": + "really desire eternity draw field eager yet welcome roar slowly love hardly", + "entropy": "411d93d892b2c3e3120a6192a91195be", + "seed": "d849cba797129556c0e588acdd40ebbc2273b28b64a393265f6c01856641426f", + "address": "1CiJYacHDSUPNGma8yjpKT578FpbLBUycj" + }, + { + "mnemonic": + "peaceful especially verse sunset forest favorite complete careful become sting grasp bring", + "entropy": "55107382fd4f6b234a724baf967bd46d", + "seed": "74abd3a9bd3908ab342d7e3d84fb1351beb524f2c265f1addc930916d051cdcb", + "address": "1DXcd8qoPaEbq4z7YdJmrvFsvJEsi4w6Ln" + }, + { + "mnemonic": + "anything existence act dreamer innocent dog win lick bloom style quickly skip", + "entropy": "707671c1dbc48c84d4d206347a0e0f2a", + "seed": "587a9c9bf279c1f4fc95dd304f8505f7533a2461950d4f64471797bd63971d41", + "address": "1FMBd9FJigEjAFFW1Ht9NH2jA8sZcNB1hC" + }, + { + "mnemonic": + "hang wash due suicide gotten sword less wonder girl click pink earth", + "entropy": "91a01ab5d569b87af6701126aed971af", + "seed": "521d5dac6c2472a9d97eff18c8e5ae4d5ed3f7bd12fccbbc1a0a9f61253e453e", + "address": "1J24rpM8ih1EddxoNdkCjt8KErMPMzJe7M" + }, + { + "mnemonic": + "shore class crumble steal screen city quietly ink crush save steady shock", + "entropy": "8aeb42a6beb51907d87b5053d4348bb3", + "seed": "43fbcdc5b02c5b4eada740ce126961cde87f677c3970ffd24dc85964bca403be", + "address": "138W1XbffxAWVubmEaQefFfXTHzNvR72xd" + }, + { + "mnemonic": + "here certainly about pack state blonde footstep opposite blue history dot strip", + "entropy": "151a1a8e03774552354df9e919e30033", + "seed": "4e3d7cc8b7c77c42ba3d3a52fbdaa84a059ff3f2c404ee400e0284b2e2ee9a61", + "address": "16dHGvPzSyLun9K1ScioPZoKEfaCFb97DF" + }, + { + "mnemonic": + "bloody hop offer egg ground dress pig quickly north curse great snake", + "entropy": "8d30482c23b27fd4a0d181fb8f86d44a", + "seed": "1fb3fda022eb1b198df698116e1e75d3f72074974e0d849a04135309e5719c96", + "address": "1MW1jq9dSRdRMxb3RnoK9YTJAdjDgYFKVc" + }, + { + "mnemonic": + "lung evening demon work bottom spoken presence great child age stuck upset", + "entropy": "a0f31ea03fb92bec15839cdd5ee23779", + "seed": "f5e93794a15b8ca0c0f08637055a9b23df8ae7ecac53c65737f858893d9c41f3", + "address": "1in9md6P4mzM87ZDEF5SDeaqzXSZFKNcm" + }, + { + "mnemonic": + "feet presence remove blossom hate good past chill fan dragon muscle glare", + "entropy": "3cbd4c5afcf73c8b7da5cdaf2d028d30", + "seed": "9c04a59c51a2ecfdef5cc0d04fa45ce764a54e825adeb3be8a5bafe1b0aecbfd", + "address": "1NTDnQtrvg8x44o1AU831mzxjFq6cZnzDj" + }, + { + "mnemonic": + "look forward create hurt opposite mend impossible clock drama shut dear shoot", + "entropy": "f2939faace6a7ee1698302ef51c2181f", + "seed": "7f8fd1855f9cf16889c0b36c12acd8726c54cd1eab7d5cb26c099ec1ef3249b3", + "address": "1K9YuToigra1gCmtukCBANVqQdVZtDrbCA" + }, + { + "mnemonic": + "proud blue hate hardly split hit pour normal cheat canvas weave little", + "entropy": "eff3499f7b124c0e6ba5c0ec12a0e692", + "seed": "895f695ae83f3177b378df1868c6b28a4adbab1dd994b33c879464f09e7f9630", + "address": "18BQxh5vMygyVCFfXK4HUFQv9p2Exger5P" + } +]; diff --git a/example/lib/test/elctrum/mnemonic/test_vector_v2.dart b/example/lib/test/elctrum/mnemonic/test_vector_v2.dart new file mode 100644 index 0000000..84124d0 --- /dev/null +++ b/example/lib/test/elctrum/mnemonic/test_vector_v2.dart @@ -0,0 +1,322 @@ +final List> testVectorV2 = [ + { + "mnemonic": + "\u4e18 \u70c3 \u914d \u4e8f \u8270 \u52b1 \u5927 \u7406 \u7518 \u7626 \u6270 \u51cf", + "entropy": "04577fb9e51c0a202eca5a9dc87f7877f1", + "seed": + "da250bf61d5891c3e5622aa9dc6b8979ed4f73126e6ea68e7df1568f3272934e396841bd27b9134515b88af2ecd083f8aa655bccc348fd8fe4e235ca8db706e7", + "address": "129FW8NTbQwvQVwqSJrLA3nQgE79XirJX6", + "type": "STANDARD", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u60f3 \u6068 \u7eb1 \u75af \u539a \u82d7 \u6599 \u4fd7 \u6a2a \u9b3c \u6c57 \u820d \u59fb \u7763 \u5e2e \u9f84 \u8138 \u7ef3 \u4e4b \u5c18 \u6c99 \u4f3c \u8f89 \u5c04", + "entropy": + "5318dd2eb37904106b2363bc8869c5f6ca4b392c33f5dc62fde5ba4f8d347270b3", + "seed": + "6ddddb8710c4a02c4563db121f7a43936206e69bae81c413c49a5b3afb1baee682d5ca709b68188620d5d51bb143046a8eb97eab017bb51eb1886a802b2c97ea", + "address": "13hAHk4wUFvRto8sNcRSfPNbngHQYRefbE", + "type": "STANDARD", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u518d \u6ce5 \u5fbd \u793a \u63c9 \u6545 \u9759 \u9650 \u5747 \u5141 \u90fd \u8f6e", + "entropy": "0436166e1a3353cde131f7e29be1a16131", + "seed": + "efa42abd19242e707324067aa3db9f6d0c9050d822bbe04c7db1f6fbb08dc854f6af63adacd40bf019944ceeb255c5d5c4c58fa30b9fd49c22ac393ab724288c", + "address": "bc1qs3g5wl2e8e2frampqj9f2wld4z86z0p4hp9t7t", + "type": "SEGWIT", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u5409 \u9a82 \u671f \u6da4 \u4ea6 \u4e3d \u54ea \u755c \u542f \u6309 \u82d7 \u5668 \u788d \u6e7f \u5f69 \u80f8 \u8c6a \u67af \u5c18 \u67e5 \u576f \u968f \u8fd1 \u9012", + "entropy": + "c02648fb73639120b98eaec230c60b5cd22ef2ce6d2fcc2b7ec3c3ff663ab5de1a", + "seed": + "0f3db825c2664bf99bd13b7a2570fb88fa47e36c2e45b2d4f98bb5b0b5f993730d1b14cd8ea05b59ea9fdab764909d2fbad7d7e028b54a3679d73358b12cfd0f", + "address": "bc1qhu54vywgujlnkt88c05ncqg0ms3svc050udvcw", + "type": "SEGWIT", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u7f5a \u7bad \u552f \u96d5 \u7ec5 \u6696 \u8ba2 \u6216 \u80c1 \u4eff \u539a \u521b", + "entropy": "0502e92c1e7c12d26315735d94fbbe9d79", + "seed": + "23bfeb0dd61ee70ed1d446a82730ae7ac6fb9db32d453803643659acc61040fd14fac4a8e64bfbc322b7b5d2a9968c2d5ee6617341ba0b77a2935e1ec80499ec", + "type": "STANDARD_2FA", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u70ef \u6c42 \u8349 \u59ff \u6db2 \u90ae \u51fb \u5398 \u4e09 \u73bb \u6b63 \u6591 \u59dc \u8d34 \u540d \u70b9 \u6297 \u69fd \u82cd \u9aa4 \u906d \u9a71 \u641e \u673a", + "entropy": + "0babc735490e5def70b2820c055ef9792ee422e500409e6967b41f3ef2a64694eb", + "seed": + "ddf0997605d52772b23a7bb10832e1297b4c25edbe78c6a155b788c56ed4c22b147db40831f4d8a354550707592b448352889c9fcabb0103de412f02170c781b", + "type": "STANDARD_2FA", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u5bc6 \u7092 \u95fb \u8c13 \u8865 \u65fa \u8981 \u53bb \u7ebf \u86cb \u811a \u6ce1", + "entropy": "0a3ad99ab8880c804b77b7967520f54a0b", + "seed": + "082e81240a6aeea0348abb2d3e592f1b0c2731f554d5eab0f5764a3207c8c8e1ddd119bbb3a8c0fa0349a4411e8fd4778fd9d0b5e68f42da1a72a7ea54c2596f", + "type": "SEGWIT_2FA", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u7eed \u96c4 \u8c03 \u66f0 \u80f6 \u65c1 \u708e \u9080 \u6b64 \u5858 \u60dc \u5634 \u5bf9 \u4ef2 \u7f16 \u5b59 \u4e48 \u4fe9 \u6885 \u6015 \u6597 \u5149 \u8d5e \u559c", + "entropy": + "6c9254839516e5657df893750e4add020981be34389ee8d99e38babfe878e24243", + "seed": + "b1828c4fdaa039a0572e21ee40ebd1ab55b1634b9731f37d0ab584048b02b7503bb005022d2d0642a1f9c27324ef34c3e21b800040149ae92251a76361664ec0", + "type": "SEGWIT_2FA", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "brave antenna radio liquid panda wave filter laugh script same van main", + "entropy": "0865e26fbe0d7d8acfdfcfb825618270da", + "seed": + "f8bc179eb54a48b4c18e377fdf1d3e60eff7b233cfc8be1e681a230a13a548e34fb1e194a3c41ab6b3d63fe4251fe05e93629b0739cbdb19d2ace31038dfe57e", + "address": "1Au964QBqc1wggH7uYRBLx1dFbjdz4zrJu", + "type": "STANDARD", + "lang": "ENGLISH" + }, + { + "mnemonic": + "rifle fault radar grab armor element lava grace exile step miracle thrive inherit come net indicate lion hobby laugh alley practice analyst install winner", + "entropy": + "fbeeac2154b068fb1b141172f294b839ee131af55a7d656fb91e85f6556154fdcd", + "seed": + "f1d80cae51ef47d873796e917e81741c6db5e0686a96f1f08a49600a0e96d30456d2717907f52c3b10fa223800e478d210d712d5135689987bc62fd9c7bb1def", + "address": "1Lic9driLDBxNr65pRYXtUxAmazCqnuUcF", + "type": "STANDARD", + "lang": "ENGLISH" + }, + { + "mnemonic": + "prefer seek across undo among ozone cram cram spend junk lady habit", + "entropy": "0682f91e568a3226467a03fece04b0c54e", + "seed": + "f04c2b52df15d96f014046992eb903a2c229b9440e06cf15675c4054ba827f5f31aaab6777f725196fac9583eac90219e5eb15c65ba314320115953a5c8ff552", + "address": "bc1qwv0l6zpll80r0zh73qv2hkqcmjf0s006nxth4x", + "type": "SEGWIT", + "lang": "ENGLISH" + }, + { + "mnemonic": + "park regret notable happy net nature delay waste insane vacant crouch pencil blanket employ abuse market group noble sauce pipe prepare manage knee theme", + "entropy": + "e00f721bd4fa557f256b37882025238baa2a687c1ba7f7a73e4dca568f2d2d2d02", + "seed": + "5adc299c1bae25960d3174b65934b5d5b2ba9e9de8e1fb94ea4455060662c1560c9764b7556c624b71ca2fd3e04a171c1f05baf6bc69a550dfe3d821d26877b2", + "address": "bc1q964kmpmk645ham4ne8c7htaakcy0txchyz07pc", + "type": "SEGWIT", + "lang": "ENGLISH" + }, + { + "mnemonic": + "confirm weapon outer party liberty rent come cause addict dwarf major stumble", + "entropy": "0d7b0cd1281a2485c2d9407a093abe1177", + "seed": + "7a0709088b39fb3d2253d88743b433644618674a8c56c2d892c1605546dddfc378fe53363b3c8ceb6a8236a30b4f4e1e0d916c3b670af7d7019d1f5fa3f1557a", + "type": "STANDARD_2FA", + "lang": "ENGLISH" + }, + { + "mnemonic": + "ridge turn pony expand brisk tray fish good ship mind allow negative squeeze unlock artist final artefact sentence embark coffee path joke identify gym", + "entropy": + "680e11e15072d290b0f8675681a3b869c93e0d633e30646af79e8e25034ffab5cc", + "seed": + "d1f6c2331f8d8a3ed7cd22470a95e77365ca35bd5e7519fd6933181eca4342ed5188629b4bc2d9796fa66edd4e6de2a0329fadf499dccc5a809dc055a122f7c2", + "type": "STANDARD_2FA", + "lang": "ENGLISH" + }, + { + "mnemonic": + "cigar dilemma shift deny gather rather this strategy person wine merit robot", + "entropy": "0bb3173ee51ad6dc1ac93033ab8b8f8947", + "seed": + "4b0354570b73ae8ba3acfaf8697c94a8bbbf1113354a5013ae4dcf73e5463e9f3084451139e6a68b2e42a05258ebc5a867fd3155f54d2b21a39924f935a5a036", + "type": "SEGWIT_2FA", + "lang": "ENGLISH" + }, + { + "mnemonic": + "logic march decrease recycle prison phone panda resource close hedgehog giraffe tobacco sing artefact finish hub swamp inherit dwarf hip satoshi slice tenant border", + "entropy": + "19dbe32ddfb6be895cf6d96e8ae033e4ae32c45aa15db793ee8e558b3e7261f41c", + "seed": + "6d345fd0b2e61d561617badb646137288565176342a7d86c161e4230fb978f7a52f84bac8cafc0b74e753098a4cc46532cbd9954e8f8acf5add4893f5dfdb97a", + "type": "SEGWIT_2FA", + "lang": "ENGLISH" + }, + { + "mnemonic": + "molusco recrutar perito ampola igreja clero fugir tampa igreja abater virada venerar", + "entropy": "0f89f8801befe6edc8e6bef1077373150f", + "seed": + "7a80ea394292d978354d00fb59c0dfc42d6a4c21beb9ff2bf67aff11dbef09633138f7116357ea309e7b964ebf4a1405381443ea8e3b4f8d0bc637fa019578a3", + "address": "1MKHPBXDh6Vio6uiWBfuX3dccJVZvBDx4H", + "type": "STANDARD", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "enrugar dormente cujo vetorial edital capuz oliveira garimpo permitir cidreira surfista terno raquete arroba esquerda desbotar russo tutelar galocha orar lisura fluxo tacho evasivo", + "entropy": + "5fdcc1aac92af2e13cdeb34a2bc05b64dea5c9ce15ce7135b0c3a97fa0875422c5", + "seed": + "98bc9f295646bd0189f6e6e24811d6fdf7bd67d1c04637afac0ec228d28f534148b7b35c2b74ac136c40f163b33270ec671eb115c8f5b665f22daa9a696bc4f6", + "address": "1KZJbCWUBKunFPx5FAb2uvEjKZx6LejZWr", + "type": "STANDARD", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "circuito aviador abranger amenizar noturno vertente esfinge bocado alarme dentista figurado intriga", + "entropy": "0856d0d24055268b93e6d4c0f2024709c9", + "seed": + "778aa8b34602865f687be4982eb3eed70e730517680d60ca7fce2c121583cceb4288d8f76c243e6485a60e0bca4f050c5bed543f584839a049dfdd31369be16a", + "address": "bc1qe755xuzjh4tah77vuq3fc43jwxjp93a9460nxy", + "type": "SEGWIT", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "inspetor novo tijolo morango arsenal melhor ocidente arenito esteira aderente maior cogumelo custear neblina grego rebaixar cachorro torcido bitola jurista marujo rasurar deusa semente", + "entropy": + "dc29872a4d28a64b7b6961cb4efa9aa2a3b52cc172f215b57a710b8a25d72a7c24", + "seed": + "983ac620c3312f7b3c1c299bb1724ea54fba039c8ebde255c6df56178443058987d00f640d59942de12a5b8edb056ca9ede4311cb70c6b72084ff104a06bbec2", + "address": "bc1qdwdh5tf4guudlzqqajtq95wguwkmmzde0mv0e3", + "type": "SEGWIT", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "encenado esticar notar sovado duende munido buraco reduzida esbelto maior tiragem hesitar", + "entropy": "07b5d8659adfcce55a91a8de2152979ab2", + "seed": + "f318ede69d65fc50bc74ccd0832c86655afaebfe758d51bc64f9e8643566fe3f0308c5859c86fa5e1d20750da155ff65d6934cad95c8cbab071ae8a1ad802315", + "type": "STANDARD_2FA", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "honrado quantia liberal arenito bipolar sazonal retirar feriado solda cercar valente grilo moleza externo convite bombeiro atender planta albino enxofre esvaziar baleia objetivo amolador", + "entropy": + "0fb5607aaf75aa166f78c92787d58b50c783eb8d3700673a2f6912715b217183e7", + "seed": + "4fef1c3f374decb5eb185c724383cb8bdaa3495aa531af6035dc645d63ba7bcb2487d31d2aa55dc3634a8d050f2d1cd86049acb953f913c3bdade52c84e573e8", + "type": "STANDARD_2FA", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "biologia peixe adeus formiga dinheiro cartaz depurar suposto predador chocalho tarraxa virada", + "entropy": "0fc5cfcdd60ee48934c826f6be0c2e0924", + "seed": + "b03cbc282eb9fa9c1b4590e8c7e9cc3a53cfc2f825e1da8b8560a7138effa800660fc76cc1ebed14437d147dcedf8db3df7d3b0986d8593c109c122ca40259d4", + "type": "SEGWIT_2FA", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "umbigo sotaque sedutor covil cerveja rosto gingado urologia assinar emissor telhado palavra tamanho curto esgrima amostra abelha lombo cacique cooperar beirada plebeu abaixo jejum", + "entropy": + "888006f910c3ec58a4d005100ba114735b3dd31548c0f44e93529a9413b678779e", + "seed": + "51bf12513ed6d96af61a38a4f406b950481db3aea1ae76ea01d6a89ca571a9dcbc148e0a9f1e5d8240b43ac52543f83005f62c5eec1b8180ee3731c38ae2ff88", + "type": "SEGWIT_2FA", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "rama coji\u0301n koala ave turismo recoger soldado pauta millo\u0301n cumbre pinza ocurrir", + "entropy": "0a09684f5479ad5b3f0e78b186f1cd6608", + "seed": + "2fbafb9843584c4a1a1af144959210c6c8801e2674dcbf996fcc51359b594a458e552910495f31a056cbcbd1185739a571c5303d12ab29a4d1079d764127c315", + "address": "1CcjrQ8WBQLjATq9twGMbFU2fFqKNBo7Nd", + "type": "STANDARD", + "lang": "SPANISH" + }, + { + "mnemonic": + "gra\u0301fico fuerza vibrar catorce coger corona salto amapola delito proceso corbata menu\u0301 me\u0301dula butaca vehi\u0301culo clase lavar foca charla destino ron gris llama ataque", + "entropy": + "15f0359c6664206056f3e033becc9545e8ce712ee2050b3a2ce39aa2cbf2d7bb30", + "seed": + "492ab9b19ada51f67c43eb8b2772f530c5387b368e90ed783f08ba9cf63233b6b9bf0036ffdc83d5cf188c1f77b84adbd2775a27db5edd96f42d9c78acfe3c83", + "address": "1AMCSxJzJty61st94y7fFtfPhDeWxMA1G8", + "type": "STANDARD", + "lang": "SPANISH" + }, + { + "mnemonic": + "verso leccio\u0301n leopardo o\u0301ptica anciano olla foca mejor orador cambio soldado cazo", + "entropy": "02d3b3ca1d258c0b7a8a865a44fb9f1fc7", + "seed": + "a0f065e662824de253c47aca49443fb7464ec9690eaf178eb8946f8582140f230c241d125bafe1aa651406f7c94d461faf789b6d2056f9d7f9f5f940122c4a5b", + "address": "bc1qj2agkdr6t5zn8jw8mxwf8cdehpehxf97rnrskr", + "type": "SEGWIT", + "lang": "SPANISH" + }, + { + "mnemonic": + "zurdo gloria lluvia opaco pulir tiburo\u0301n nudillo giro maestro borde curva trabajo pen\u0303o\u0301n dar pinza urbe definir pintor trazar coccio\u0301n orgullo taza manjar bambu\u0301", + "entropy": + "1b71038ad2d347dbad0201f31684fc57eec87d08442f6413a39adeea3905591fff", + "seed": + "1e34e9bc28b0d48208bd5a464fd8a3398c6da5687dcdbd483dee6916cd744e0c1c68a2bf04f3e14a0662ba150adb317fb8c95c916d3e9c7627d8c49c929df2a5", + "address": "bc1ql8pqrvlnjhe7lje2ehhpnfldgyaehckvrd4y5e", + "type": "SEGWIT", + "lang": "SPANISH" + }, + { + "mnemonic": + "sata\u0301n falso vicio caja hallar fianza cri\u0301a rubor falso ogro tren olfato", + "entropy": "0a27dca86aa7ce07495fb5026ff3153e9b", + "seed": + "3574484c157fd80f0951b8e33b924b74eeef73d956605e7e7715bf218fd7f5dc624761083ec2a51cb425977268d5cbdae8341b377712b22947424219c1a4af1d", + "type": "STANDARD_2FA", + "lang": "SPANISH" + }, + { + "mnemonic": + "rampa artista grillo cigarro empresa llevar modelo sorteo arpa pulpo tenis choza guerra oriente aclarar capita\u0301n regalo plural barniz reunir huerta papa\u0301 peato\u0301n garaje", + "entropy": + "61b5b6aa375c8e386dae272a40529734230dc9af8095dbd22a0926031ecd84de09", + "seed": + "cf1b025b56cdc441fa347a4a7d928ac93b89f2030c96ef3a6269c62d768579a3953b11b2a170f501f0b3ce3c6d467d87293a67142522c34283bb500439021fa9", + "type": "STANDARD_2FA", + "lang": "SPANISH" + }, + { + "mnemonic": + "ri\u0301gido terror amapola alga ani\u0301s pegar herir tarea cuidar hada desayuno curioso", + "entropy": "03e4831a79e6e1ad6eb986d09016796e51", + "seed": + "9c03417437cd047f1b2dba1ed4100a8f2ec060e5861d80504f3b0fd1570329c3cee43156df066042eae34a5afa836f81848c375a7cdf317449cbccfab628d3ce", + "type": "SEGWIT_2FA", + "lang": "SPANISH" + }, + { + "mnemonic": + "ti\u0301pico sano luto herir aduana urgente cubrir e\u0301tica cochino forma oi\u0301r fiesta octubre peldan\u0303o perfil rei\u0301r grito tocino monja cuesta dolor minero diana mostrar", + "entropy": + "93e8663e22e3c9253a6b39c5b61ebb50159143d721a451677fcc8236b70a34a742", + "seed": + "46b60f057727ace59389aea7447134a169ae841b556d1f1f6aa664d24d1a4d8da3d7e61632e290d3f340a20f256de93d7132a459611fc1aad70a93eda8802a18", + "type": "SEGWIT_2FA", + "lang": "SPANISH" + } +]; diff --git a/example/lib/test/elctrum/v1/test_vectors.dart b/example/lib/test/elctrum/v1/test_vectors.dart new file mode 100644 index 0000000..1f3311f --- /dev/null +++ b/example/lib/test/elctrum/v1/test_vectors.dart @@ -0,0 +1,2082 @@ +final List> testVector = [ + { + "seed": "e38d79d6cd7d96a56c72ec15de64d8a592aa2ec08fc128325b4a88dd82b04d69", + "private": "5KYW7EaBXjQFU7CdHfdZQdXcb3HU4nySVBB8e8zkqzFDJqRH5hX", + "public": + "041b165e498ebb28642af6464964b060719fc3629305e148731d3280691f13da7e28461f49db33a19b238587830690921b7fdb532a662425884efec8cd05790fee", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KWGMjF1cAUTAiyiwiMW9xUV4jmjUDQSSCceuwE3UG3vnPLArvo", + "public": + "045c5c3d556fada3c3199af818e2b27ceb0f0a89d53eda605a7ff289a1eee1e617eb5a6cb06951465fd95b11f346e1f8b4f44875dfea12763b9fec0d8dcd8ca5e0", + "address": "1DPrXTQ7GTDRrZXwFR1UttofapTqunbBnt" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5KeQvXmV3wLZP9ChfGSeXM4gkZPRZ623DJNE4XLtB233cBLsRQ1", + "public": + "042e387c71bec9b40ef653e2c269214eb7dd180aac76e028e6226c8e909ebfc0484e16444b2514de14abdd150a502223fb8f148b59b257202c39dcfccb0bf4fd1c", + "address": "1Cv5J7sidn9jFnzW55aGZY8KTTiJyAr9e4" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5JfzzjKw4ufNWAcBBEjkx2D8DAn723j4qLRDzhCTAmLkmYMoJtT", + "public": + "04c11ed18acbcfd013c681ca7497691d00da83e309dd646bafce2ab3cf40babcd8965fe8133f23b591cbc2db1838dc9250a08e5ef989d76fbabbc0435e44c0190d", + "address": "17XPGKs9gygJPyf7TAYHhwHEzXijRrFgeL" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5JjCXdBdeZduZq7YG44h2mvf6QZSTzdo1twKS2Cp6MHi25gkpGT", + "public": + "04dc8f2a8cbd6110443233aca441b4a130a3f13f4e50b5fa7085491f375c8c404a618a19a7ad6661575b683a0d78919150e3bb585faa3b9949c97926220b083bfc", + "address": "1C1DfHxrvZbHNQwYv8MBQZoNGLcePYsh4" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5KTUJUpQ5dC7ghcdR2isgvCJZn2W3Xwturs2BfPxMCDYvbkzBym", + "public": + "0426d2edd95f8ddfe993c1326c815e294f2c484bb45b64b109b3459b3491cca582aa8ec3712488db37c8c0b4726eb9f7fa4e2463722fedc75c4bf125b689e29bb3", + "address": "171R9kPycy665MwgTCGTa8B32YymA7TMnH" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5JdDu1Tp4qBdtrgGApJZcRaVaMAnQ3kkBnoEgAje3Hp64j8Fmio", + "public": + "0449179460bdeaff27b692bf84a64496f37210a07f8744b849e5941c10431641beb47de31bfb1726c54a1020303b3ab8ee6339e9520f19e0680cc3a3e541ab3d54", + "address": "1A95eh85VMmdez1dTw1oKdT7dkJFqXb9wv" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5K4PHHvejjpCKT7umLq8CECDNQnA6n9toFDRaC7eoMsJjgrGpZ4", + "public": + "0407dbec6ab5336b85e130884d3b39c8881cc702079228b302f4dd0786800c168acd8e5478dd6bcf7c64f60c9d5ae6132cb531ff60b385fb4b54a304cf9f19c04d", + "address": "15rkVgQSdZ5We8a63rycuqTDCw3XEugtXY" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5HqpkBEna7aZYM1vm53iGJ9oKfYSVpo79inWfZTgyqTZZtahb1g", + "public": + "04b68310ed0b5e1b2ea79b04375c6316cd1d427a028268abf2eeda4cdbd4e4dfbd3332f50fe8ca80b5bf76382b6993908c23da514ddcb9a2b7772e0c7214e59442", + "address": "1Fq1o1YT2qdvR9WwfC7mMMhHSMq54jwAyE" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5JUDzCnZbmkEzxSUWXrfpoZaKZzLhhjoNLL9yQoTqzGTqbCVbmo", + "public": + "04c29ae01ce1212303681dcecda1e3614b430a3979625ed8b250954f117147847256e8b056e2cfef98e4ad49e556cb59a0113262fac317b2b8b9984aaf8563e805", + "address": "12FfWnYvH8eL9HQGW5tBJAL8RbF9STAxjz" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5KNheHUEkrYd7fhrGY7nWbdDFEQTc92TKue4kBUPFxeMmCKtNrG", + "public": + "046df5747702fa71d6c647463d1636253d04a217e155d107b953710c9ea60409c931ef484b5039d14bc1ef00e275ffc128c6a0461f54ad5cea51b47c8fc1634113", + "address": "1M6rozvFAD9zB9wXuS9ivmDF56fLF4h7SD" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5KChBSGpddhU14wkfvPTQZqpG6ESgBvBqBC73JsrYp9ULc7uSyx", + "public": + "04fc0c9f24781ea1fc097a1fa5438065c02fc6cd90850e882a3fd3c6a8e6a6c924732f387fad97c95e0ef526a7eeb8b46ba8b213017041c088782120cdf04e5d66", + "address": "18JuXXNaZa7NY2E1CWvsQHLcDZhThpuASp" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5J8KUJee1m7bHqTNa8FoyUeDAPf3VSsXBbG9Gg77Kt7c2bfBqsE", + "public": + "04efb0156d51fda121e326572eb39bddc2f950e86917d4df293616e4665c928d72e4aa3f90929507206b27f649f4061bf6a158b280ad08fc50b4132acbe8d3e4c1", + "address": "1Px593Xi28zSLnsxTsbW7cNkQ3baNNReya" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5JghPgBT7P96kbA4Mxj7onAPhaPRQE1qizJZWw6gRvYStLrQL3c", + "public": + "047280027eee55a02e6bf6713f970238aec062facb1e7f0dc3b55963a1b9c7b19376125104434e54d9afce15e61a079bf4120e7f1b275d6dd4e109989c2ac589ca", + "address": "1NevHZt645yPdFNeAi5UPZcTAhYLFDCEdu" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5K6LYx2JvyWGfVfSSmVCjghi9WzQoAH9FAEqbvQVjtjFsaUVBh4", + "public": + "042c58362f9f2a75eb31a67d1d8a42b9ebff5d1991d211a3f1b81004730232d8de82df20d0853f14921eec248a263709bd486d49cc3c10e56d4f0d7acf0c417a02", + "address": "1MGSjbpgtdmp3jJ8JNwj9Fd8gsmXNmxx2" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5HzMxea2wo2FE5N3ZPTvfiANaWrYzhfoks1YGg3ik5zqq9YkxiU", + "public": + "04b224109cbc4213038e4ce0905d5099005d53274310e61aa4a3f23949fd75e797104dd5292ddf6533b578d808c3ac3e0a32a254c07c561e4ff86de36ae49a1f62", + "address": "1P2YPLxw8e1yVNdkfGGnCRm9qyMmjCJC8c" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5JewnDw6rL8NEKsmKyRRhR7dDk21KdGGR79JJETn5JJWHG77XeL", + "public": + "04a982545b91c114c89955ea5c392453e36fd822bb8a02aa31df27dd44957fdf70075d098c198d5032410035adfda7aa86321818574a6430c859634827b1ef594b", + "address": "1KfuLfCdRnGm9VGC9AxUfvrnWLFeRtK1LP" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5JfSFEVT1MsR8x9gCK6gftjCTrVLEP4soawmjRytE9bAmnbNBjv", + "public": + "040cf5f0a522f838f82b2a902637c58190dba251729024dbea6d430662bb78ed00a477db81fc539841ab99ca08f36ba305928940aaa995cb7ab317f57f3254dd36", + "address": "15kbFjrUBzvebR2dz4Usj8G3eCY44h2LSr" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5KSqz5BvhwUCy2KCFMUf5f4HG3RYSmJb84u9gcCw97AJCeyrv9T", + "public": + "04d1acd7390c1d53bee4ae11c6f084bc0424024fe5171424a8992d6bd80d4efd683bee35f3797ecc3285247546d07b709464cc01fce958c735a035a7dced3157c4", + "address": "12p2oneweTcisJ945hK4ncSzNvZYaSi4oQ" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5K558xy8272XTnFVmPgbZKpJmM3YEsrNRUjckWBQbumYXe4zYvx", + "public": + "04667c5a4bfe9309be967c81d16018877a8972520bc91192036e0683417b4c1d3ba67415aed36482d491e6ecd1aae842fb6c6236c69e3dc6bb5fbc6e2cb866f8aa", + "address": "1M2UHMw2kkPudWQMmZYBWraSYTnGSJMF6" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5KJu2nxmzQY5e9obx5voTDswyF3Wjjoj9hB5NMCcwBdxqkJrsZr", + "public": + "048abee419c51c4a3a9cc54ddf55f3683575f4274fb0e63f3201042064166868e2cb84fbdc73c3f970054bb4ad2cd4dbd7f4c0a08ddc2a40bd65dbb20bc86c5746", + "address": "1EJKdqvSxtTunsTjYkxJdRRhVAQnRts8J3" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5JpuMYeae4LphXNk3f1boAu1nbKNyqqCSDhxt2yaM3uh3yTHyyN", + "public": + "0457fb5dcbd4fd196b770f7fdd89c86cf9229e152ff718d1de65826bc3adbb4c16f9db69f5fb103a8a1a5dfda77e6262bc50c00957dee7321a1db0cdf269c70593", + "address": "1JVjSwKDkQXJdvCgyN3Hy7upGMMCZRZ3LZ" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5JaeMfKb3MgWWWgHKDZFzyAQv1BZsvSvSSvh4sdUHpiukGqn4XV", + "public": + "046db573f823c8f43e47e3cd9dec53efbb0cebe3e7b06c8cc9ddcf6cf1c72bc88edd82690b6c3d28802efd8978300f813dae26cd8de99c8ff20d3bef2361d83db3", + "address": "1ALomP1HT7GPZHAcfDMbhBGJbGCegdivhi" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5K8pcMrZzhmf9vmgHJGquXpSNJDsRN9NLUgeR3D95re1hh6X3Xy", + "public": + "046d6b5fc58e623f69ca1f3ce7a332a7e716ac6f41e265afcde0ffde56c7e0e0768897593ea5e2a0d6e3a3ea743f00a898cb98f391b75b812e8b45e5bd2de5af00", + "address": "1RUmTvxziQTpgTDoZDtdHd1Cxj6diSNqc" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5KS1cxhruWx9GvdxtAKYoquTX1tiPXjKspLJd1BsxM7fuGXgMHB", + "public": + "04458b246429279d1f5e0765e13ec7cc6269da22af89b4c4488794e355c085dbc617f798b958e652fc96aa756c2de0890a7d45b931f528e04d5b9e338ec96e2d39", + "address": "15UgXgLw5wGXoRNMx7ze2CenkpvC3rvbDX" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5JpwF8gf7SV7oawCDpc36RPRniPVD8oBmSDykZytLc9bMD9f1N8", + "public": + "0465551357dff63ea3e14b7d52e32dbc32377b31ae28da46339f3a2c916da1fcb8a8704dc7e1d775929d9bc2f77010ede2917e27e814ccf3b911cf7b98ccf8a77b", + "address": "17ViRpMsVupBTKjqdqCwc1VFBHSbjKsBHF" + } + ] + }, + { + "seed": "3600a796ad59791b377111e88ff1718e204cacf118d8c2fe0a9747ed26d0eab7", + "private": "5JE51Cu8hVQ7nS127r8AsvPoajuxJxQMcDCjFfpdofTexp7PtiD", + "public": + "04a8395c1af22d616b572d8187b573b9247b660cda933b82aef496616e745decbde479f42eb6387a4f02c374dc46349fe7e158e1dbe6db0f96f376497aabd0d8ea", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KZUekKZpTo1BydQ2xpjf9wBf3RHMTceVU5RQTFCwBUYwJ3AfA4", + "public": + "047c077b04a59d49176d4ffc2130913882445a437a280b07b84de64ad837ef5ba84849d61ec773e8963943d01cf9e1d6aa9ff4629e8fc6d451144dea609ecc9802", + "address": "17PnyUdvuNcM4Qpk6LSHg8ZF88xAUEPPkr" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5JG1EEjt83fc33CyLoyBCUnQei6v6hfquNhFWzMYqvSEG5KZyVY", + "public": + "04f937d8b269e7f8053ea79831fafd4cc0723eb8c343aae84e876fccfa23013351bdd919dec23e5e724e50d93a2ed2cd13472ce77f5b1c01be6fb281662cd4ec81", + "address": "1Be4TqYTKFpgzq2CkfYmassgdMh3PNpjgf" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5K8k94dihPsQErkGHBumpMG6A3cPBu3CKFELuwZFMcDT7ZbzWNK", + "public": + "042d353059132090f8f46b53b7e24dd4d4f65afae602e3b73608ee8fc780b0f2e342c92852e983357bc9e0cfce90eb664c09911816af1e2d6b73d5d5a2c4429284", + "address": "175NMhZ2VUoSRmLMMxYXtBmzR4oXoPYZPz" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5JVAn45T322DDVr2YQZSbM8ojsrKBPtz1hVrnWUbhuYB8WunKNM", + "public": + "044a84535f087c801788ffcd0081169dedbcb2a527db787b68bfc949edcd5d3ad4a0717642968813656b082bc47aa77aa83d7bf822a49fd350f2923b5e639f7391", + "address": "1HUkYwRiNaPjFpwU2B1krdGZexTjXkorx2" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5KfYqLWrGPVNikGiHEAgArpqEZp63z66hENNE1Q3Z8qzL7jamPy", + "public": + "0412db9c7053133efc3b6e6f6d9a64c98ec09c48019c173e205918016e0d7ea6344f13ad60a7e056baa7d81d3e2691c5bd5a706820308ed377ac625000371a85dc", + "address": "1BWs3UpFuqEPBNz98cDKoRUPdocqRqMUmL" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5K8JKbUkdmncwdqq9cLLeQKnJom38wv5Txcf7Py6WDUMMRd2DUr", + "public": + "043aeeae7e9fc6162f2b2256a93571355a96b4a6d54f6792065bf913f8fb2d4315799ff29ad973715489ac958a07fec711dd86c792ddcbb9ae175ddb01b042719b", + "address": "19859ebPWpK3vNQhmuQhxV7ZTgCJNXuTkE" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5KCmrrz93Wv4AGBJfurDtQ9Us25ioC6eANWRjtpLQbHmeZETfsU", + "public": + "040eb9824a32195ca408cb1ac568e4fa55c2150744771763ed48c75e6e4d154732817886bacf21a7ce6a6fdeb70be87cb0aef074d66ee2c30f393baf09d4f6c563", + "address": "123rRxFbkmaWGWHZES8kVqgz6k7n1DVJhC" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5JKEjt5jdwQ38wXjS574idqE8DeBf93YnaFtQRMunBJJcJXrNAE", + "public": + "04e429a6011a6ccc002a16b08662d0bbe3dc6cd0d312ee9d7468f94d01f696142a63ba3894c168c5464e0939f37ec807244fae1f49570af6a241256ee9aadf55cc", + "address": "1Ni52oYYDMdvxSQKRcuH1foYeERuNsJL2V" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5JuFXRp5PcKjf5xiffyWPjDd37ccCi1CEtsQE7nm6wdsCEQFRam", + "public": + "042b82dce6ecad6242e1dfebd0c62c5d5951276b58a50ad4d0cb433a25be0ebd74a8d21289685a31d2ccd7c7c3ef83fc0d37b059f4e7751e865ade6d3dc00b77f0", + "address": "1ARRWQTVgALuFCjg9NyGR6sEiRveRKbst2" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5JXv5ViLtWpNmFRQR8rDiNp9x1M8bSoXAcWv5KJA1Mwhz4SBzBV", + "public": + "04d75ccadbe56ca2d50eef44d37f4ed8f997761fa233c4e36fadd9bbf11c2704075eed2506e5873d71ec3c508e7a92010bb0ddec3c2677bf271dfec820fa9cddc3", + "address": "164WcjhjbT5ezdooRdyFJZJdgxA751yARd" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5K5zaWWhWppN2fZ4TecccraxzVNSzCUquVPQLJSRDoU6HW3BZ2w", + "public": + "042b742a3af5a2001552c93766ac7435ba496338f0c86a1362e6e76d6cd1eaaca3447cb86cf5b81647e182865766742b226caeb35826f1fc1e24be1bf024fa49f0", + "address": "1KRgXzmjLctpC4iC1zzvx7Lpak1DYnwzbW" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5J3oRq4q1TTAjSRgytYHUd2JwWaJk8Csk6nd3Q2HuABoVnpijMb", + "public": + "049a75b23c28676d33fab97d84c14e7b9a168d2cb1bc301f6a993c918aa64a7144e0a2402f3d8ef0741f9d07137805c10240f8327b988041f35be7642ee4808df2", + "address": "1MnUcxAE7qqM9RcDthFWrhSJdGi4FxYdw6" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5J1pRJ8pNq5jF6qC8gtqSZNSSZBTT6du2jAQDjsTPccEZV4uB1G", + "public": + "042e2aed5a08b9fa028b8b7fe51c18c6fa8edbfc995fc1a7f877abbe6620b3581f720dbb04e2cf010a84a062909680bcfa03e63913ca96a5d6db1d4ccea1c3b27b", + "address": "1L7uf3Z7ZPMKMZbuwe2f5z6TXjWr7tbtqd" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5KiPPM7dXNuX9scCHakLa63852KBonQi3Bhw3hrLpjK4hAjcFZJ", + "public": + "0473e10616514117a9df1d4aaa33cbda473491d5c7f3e8c1a9faf9bbc41b5b57b6e2f2e98d7ee55b7afd00467818e003f905234e6165d397fed6d015342c2fd928", + "address": "1PExLwgrFrT68r9W2Mu4KpCQxg4sSX7jX4" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5KRDCAcxMupqohcCC6saDfJK3DdcizLkod5aBbN9waHUjCXdUXe", + "public": + "046e6174eefc224020f829872fec5cdee528657c4ac793de79d365ae519444e8e11c759dae790f3fdc6d31246fc82da1d55c8c2e8b7ca36f17308038fae971e928", + "address": "15mH9Si9QWn4MD4QTBjwTHr5CqLiPnDv5q" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5JtviHZKeqMrfZ3iWuZUxFRve7vxamxFXBNwindsED1Xx7oGod4", + "public": + "043ce0801b23ffb523ef622586eaec89cad81bcf6c8b4beb6c3976b1b9a6a669939b4ec34e1d2ad6cc666d4ea13a516bcf9a1a34d836b10d791037da5f6624a048", + "address": "1tzSkMfEyNsDiifYXpg42Gg7ptRVPJyYp" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5JvCZDg4pYotSRCNoF3ro3B1BY6CWm8iceSe9148V5wjMeDUnEH", + "public": + "041cad8e9c6fa162f61ca077027ef855e907e57098231188287f4c9be3547112ca8f50404aacd05f2f9e5b2a850e9f3c46fcb62e369e21898c5d8cad3f84f9fb5b", + "address": "1AxzEMq25vZRotz4WyKRHBtn8LDQEF5at4" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5JPSovfxambA8r9W3THCpdQ3ph5QgSu6nB4vuxJvaNtEvFgwM9v", + "public": + "04782218cb8084a82aa3e847f75ebf53cc76b00af35e7d19801b8cc7315e820125db113a95e11e9887f7965cb00cf2ca9e875b79d68d3bbe9b91f0057bfc87c5b9", + "address": "149VEGMu6xN61Ww2L4rNjgWiSDkJwkX8mU" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5KT3tpRdD1Qk7yU97oYg8B5APjeinxUWNRwnUXGqHoWXBrfFpoK", + "public": + "044e5df1946a1178852f70ea76e40b6c1b1b5c641bde2140c241addf738301e9d14a433f999e7368e72b6e3369d31543e37046eafb5a250c8ce8e4219c348fd0f3", + "address": "1CbMuQwNXxy3dq2XNt1oMNdUmGNsD14S4d" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5Jj2yStg27z89SfoUg4dk2Q7KUjtoQBWDszC8uGKWqpwRNisrru", + "public": + "04312d95ea9341680cccbb5f21d34270f6a75269ee8687ad26383e99efc54094dd6f6d6d292a3f705c6ce9012ff55780cbca48b2b5f691fee0c3ca9f7ed9704741", + "address": "13ySh2nVwPAomqF5ehPmGRmUZPcWY4ZCCL" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5JBLRDzp357FWRQ7aUdChAwtQ1XMz3GrCgoRsTdCskqgidkMtUb", + "public": + "040020da93b1af20603a4785e393e1e950444f8164442c3f0b25135b31d39308963439c68753c398da231b5547ffe8a9b9f8289a6e8bc824f86c8d49f9d7f0213d", + "address": "1LzueRsW1ZkKKNMEt8DU3w6Xhs8mcAd5eB" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5K1kFDibhk26B5SAcCRBtbadneJvRQ6sTSxUz7aQLtfNW3fHnbu", + "public": + "04d304bc6326f349bc9ea6a5c2e1d603ec5609420a987df292fff86f4e209d79a27a6699a8f88ff4ce1318f32d56cc684e5c696f0c2c82fa55375d18db97515362", + "address": "1H5rnPD8WRTg3v12H2TQ41DbC5UfLNugPA" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5JkCdFksM5VH5ckGPfQFCdBM862G5idX2QdTT2FsNWZ16LnLy2v", + "public": + "049e58bc7c2196de5f3928316b69e260759d727c091ad58bbf7130830a31a8da7f137afa0444e86d80456b2ea2cb4bdf98c6c90baefc43c23be7f9d8ed2c5756fb", + "address": "1PBn23BkA7EdNzm6zN1UvAbgCBQXUAVNBF" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5J3F4bhB9YYtujNKnvrpAJ31E4umYi8sUBodp8xMUENWjACZ6qL", + "public": + "048a3bd0b3a0f594ff135a545e08825f3d8d6412cacd2566f231ba0e365d3fb4efcff37293987c55eb7e7f4e3f501277d76cdc9db45480da35a2f45c9735ffe881", + "address": "1DBN3imEH2gGHW9FSJuK2P5LCyf3vFLUf5" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5JNa4qq1MhZoaSqrCU5bDW2GEtu4qQPNDZFZfRtm5p8o5Bv5etz", + "public": + "045a5824c09b3ec60a1760792aa182cc77f7fd3a437c4cc7c7e2368b5d02d0840f5bb14d443a696b4d9f88e7219cd2991d6d388ced5fdc53009b8f6aca9a68f1ad", + "address": "14NUwnxyoBuwMR4jhcdTARe1nkeh4fhyPM" + } + ] + }, + { + "seed": "98169a5205e8fed74c2b705cb9b3638d476d9c5b2faf5b4008f84419ce3c8a52", + "private": "5JyGUNnfBezNKQoiPaMdnidQ46CRqHivHXvYy9fvC5wN46Kw3G3", + "public": + "042233d1a3879243cd23c5086a66fd048ffa398ce4bf34adab1f676f0d9ce631578f5dd25f8b939d49ac3dd434a19c6ef1137cfaeee59054f00a475b7cfcb4a6e2", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KbWGZKZTvX3dt5MSWvuAuwoCuWykc7PFcQvZr4qoeRwhGs5JvF", + "public": + "04c22d90937c660d3129cdbe5f577b39079cb3bcd7a29960592fadbafc25002e6c7c9929c4d6fbee5479e27114362910254c3d362feeb3259e37301f1d3b2c4b7b", + "address": "1KKtSFAGZ3CxdirdSoTmsrM7n5RLo7w4Pf" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5Jxig25qUrkrM38riosnBCmhpBy7DZCwxARMKMdkmm44TWGdycr", + "public": + "0408af66bd5dc5531b83b51fdeee3e38a8489155915b134463fcd8cd17920f50b55a8b79ca759e6d0fa7d0836f8f518d1d8faa7e7c90d2efaca14bb3cb16c44e50", + "address": "1CBHYp9o9f9wB2XPUiq1YYQCYSwmYhTUgX" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5JTC4fnr4kaCqE3xLexTeur5DzJyiN3zebPAKWecqrezVfmc2WV", + "public": + "04df2f68ec531fe19149b4ef939ffd816825b95b8bb742631f66cb2d90e0ffea1471324775c40447faca3d5128a20df6f3a35493d50fb038aa5b26797a1c8209df", + "address": "1Pb9QXcuQ7N36upTqAWaVMjZLf2hzD4Gky" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5K9SnP22DJz6m5s7B4jkmaQrvrxavkeLTZVvvLXc9Hk19YZTzEB", + "public": + "046d13512a518f3d9b9ae015306156490c7bf149d532b761fc1e9d456ab7b2fabc881400bf3ec5847ec2523f84fbc4788e04c1f417250da35201b863255313532e", + "address": "13G7cKYSD5vpxWEcF2zaBQainGja7e5GPt" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5HtGo7e4q3dkBRrDi4BQ7rDUcGbH3xZVcyYKfaCstuiiUNmG5PZ", + "public": + "047b14032f68d2a833d2acc4691eef70fe45f26336f8e1c6ac8889584b6a9955c9a26db7c608874d703cf2499adf95f6e80c56e20694aae980f8cc43695ff9a9a7", + "address": "1Lw5C9CawMHEGd75gjc5NJ9eBXVspNSBVt" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5K1v6fp3navhKemccBRwRLxnJVL5BS9fX7rQrRbqzLQuLpoBqHa", + "public": + "0455a47caf87f7e4ee0617e964ab9f8ea0c004a7c37e98ee9f8a8a165f0e554b3f7c6cbd745efa16a612719620f59ec61588d7c367d15be56be2f339b6be29ac63", + "address": "1G7815GpVGvt3FHYNBdeijHCZW4X52zKin" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5Ka8uxFCFMhF94zWecYR9GVqrKv9PfjyxaJe2TeKbrSMcb4tyLW", + "public": + "04a2cb661e83585d15da75f5e4607be0fd2ec28a846ba8ee314e4fed0b4788344697f78e9a4d3ee837438bcecf9540a69761e763ce4f66c67f1ece430ed25b0fc8", + "address": "1LJ3k8yn15mfxjXu1sPsfDeGy82cKjwDmg" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5JF39bC1ywRLKP9sPVgfJSvQBgCgwDoozXB7dgRH6wAs6Z8A5CS", + "public": + "041b8d25edfbdcb0f10c7e3ad53336c0fc3bc46b62211b41ffd9ac4a701fdb3c8bd7607853ab7550707fa768d7c3e5e7f54cd50a47b58b9dbacba93f3756253406", + "address": "146zJBSYvtXncUt2pLzME7MDUAS56PFkK1" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5JzJVkn6jvmXaRdfWachpiujXGzfR4hYEfFpBYV42PVQAF5K9bg", + "public": + "042b4a7fdb01c2140e6ac8cbd7b56bc818f9698c96a5c65eec2c16ffad338071acb1b9a6a65ac1a56b4b17d8fbbf5be39f8c4bf182b848f8690ab1514b5603d371", + "address": "15kckCj5n3q2Z42L4WwJ3L2WhSuG61ymxy" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5JVSXSeJyDohmiASJ7d7Untg9s2YHTvSUPPTNSoaHy5t1LmrqaU", + "public": + "0427a1e44fbed9e97330a0edd99e12325eb51002161f1fabd088a7ad250d3d28fbb0ab77a7173e6f17eef2435effba4e753a5031ab5994ce0fb64a742727185465", + "address": "1CS6gV894tXvdkmTC4dmkufQZE2JT1DY53" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5JHX3rpYspedCuUpbpNvpw8rJgKvHNathfn2kDkKWSeKYD5rD7K", + "public": + "04541fc0041deb372273614dcbcbcebfdd5b92f709c1e1242ec69ae39868b400ec4f56d222b3f958de79e64e1f0115b55a8c6eed1f81234eab48fae99ace6b0d16", + "address": "1rf7CWEaxKHTKyoaC5QAVGsFwfUCVy88E" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5KVMsTDBf5aS3bagMbVTmUswXT8aKr7MJEwbJ3Mv9TM8aisECL7", + "public": + "0469cc657425750ed0179fa05c9978c26d1325baf546c7391f64bd52c1eea0c383760b2b10e947b457b3ef15b79506387b45c001646a206eeb2e1ae1816a5e8202", + "address": "19TLw2UaVKXGwcbXKEQoXG2EqRvSYCSFKH" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5JiVmQg3MJHvahAfqnfS8sWwGXadN9ygv7VXYcinSwKHJc2DkXy", + "public": + "04564a33c1bb9d5dc99bc8374689021d0254175bb0a3703f80c7291dc00b173316280f5fe3ae22de0d9a7961ff077c4387f5787e1a5a97088fdb5d96b40363a835", + "address": "14JbEvnbR1CVZkStS15nP8G9fbkLNgx5zL" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5KKFYiSd77m9pyqAGAccAuhBVBj3WAMst3mS1iX71dfodmRswjL", + "public": + "04234fb87c94947e1e71dfb97eff14ef6fa1beb1e57f22e08289916e71c344c93489583f2947c433cb75b0f0b2d84b6f905b21c596f643200f00ce0d71c9160296", + "address": "1LvZXovXK97wiGasJwm4f2mFVfYrDog7D1" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5JWQeGTnzTDiWjPJ8fiDTCHLYFvNy6nThhMhXGAoPr3sj38TR9j", + "public": + "0446bf4e80b6243979a9fa765f6693321d470f6743dadc7c86526f1b4524de9afc7e0513579841c1e7f81a09eba2c85c79d3db6c2a6e96cce5c6179b55d54ed27e", + "address": "1FxVzvaDXAKVRtPPbyDX6xZA6HFTJLSyGL" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5Kf1KRhuRGoduxKxUoEPUNcn8QvHCE5qsTxGt3SwzdCJEfLyZQU", + "public": + "045d7bd3a9605d9a4c6b07492bec6485a3782c4dcbd6ee28f794566632f4200cfd8f7ff72c2cd3677ed90e230579b6db1e0589f2f6912b83757892afbab2a3e584", + "address": "14dVbErzJi7pVCjARxy8LW8ejQnqD2hBC7" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5JPiB4xKUKgXG171kyb5o3ZevfLK9bugSeGPp725J9EsZqWfvKd", + "public": + "047a67073c7c9bec0888332d824ef7d938f5acbe6558a4c10d59c34d617ffc27b165fb0dbee4bc69dae7e9b38ff25cae9a90c38d3d23430254fb6f3ad0869cec17", + "address": "18HSeqg66sUBjJh9ue22qVbrZiQZjY3Bea" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5KVqsyMt9xpTpiH69cHvHCx8kSGmpbh81ADNe8R5nR1dffaumfy", + "public": + "04071101d4608e00c1c2e44fbbd76c2891d445c33553dc1e4a500d451a7256ac7155feb65b964e4b0cb3803b5cc37f4cf395c462b56e7ab517298ac6f107f5f1ee", + "address": "1KTqVjrSWNzavGfq73cHZ1Y6x4Wgiszpgj" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5K9RK22czAV6wHhtPsB7rCcth5foLCituLraU1n68yza4hMNFT6", + "public": + "04b499be8b32f5e2a8b6ef89bc0f8d83a6ef03173fbf1648574cab489948d60d90700a179fc147b81f34cc196d1ff23fd24928871d108634aa7f209bbc645761b8", + "address": "16rL13Z4SXpS6Rw3VjWJVSBxEqSXT3A48W" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5K5cGVhDhLXa8UbeQMTFM9nDdBNp6gp25eZRxmSvXZdCtT4FQhT", + "public": + "04b24a5e9414b40a16368f19642624c94647a7d65a5420b618f8ee3f228c9eb20c956c5d460d109ddb1f2df6ca90f28b9bb3558372cb3a964f76ba5092a4daf88f", + "address": "1AoAk78qiFFEW7UPHBz15GD64dVaQFkCKs" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5JruYYTdUc7Zt7ceJECgwpfNEqTLF7n56vJJHXKaEjkmgwcG6ap", + "public": + "04e48bda1db5c8ea513f45de2d019aeb089c506430d3ae07d848c594df4dfdfd65251455866304aad724cc447b3c5df189a43e6a57a81b8fbff30cc230b21da5ff", + "address": "1HkG1DuryPV59yFd5C5fMeEkTjRb75gMqB" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5KNeSCuwsfvSaLkLokZhGsGFBvDqWMYgKEGr4duHcWZuAGPsVXb", + "public": + "0475e3d5361a09a59129c2da70cb82c87ae256be6a5340ab3cac7fd428cd45a6b0bf325d7788bc8fd3a5da4f440a35d0ef4e416f95f015fa5960499fd5fa88445e", + "address": "1CCaAUMiuQVaZyG9sFkw2zcbpDhQvh8L57" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5JWMaMPVaVz2jsS9QkqEVaMtMAQiPAw8C7PfxRyUuGyH9s4cq29", + "public": + "040abe02b04b742fa890b05be47502a1d035994ca20280723c5edfc9e3d3516b360b2125048998b9681c67bf801e1f46c7b558a58908ca5182be972fce2d22fd43", + "address": "1PQGxcxd2b6vcvvhZgApX9jWQsPfTbPeu1" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5Jg3ZecNFdQejuXDmSKEBxNgEDEy8N5rGqWQp14nL8WV7rYd8Gz", + "public": + "04baba6b56229b89ab7cd5f7bf98f16268cd34990c2e2ebdf75fa7721971e50ac9d3476452c11fb3f025ddf1c4bcced8fef7564c4c5547219198e921201b209473", + "address": "1FeGguqPsz52xyUoTwBv2EBM9QGdCtiTw7" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5JmWXumxSsBeXUpeMy6VQMoxhdhU6Az7upFJrWw2rADRwT7GgA9", + "public": + "042081e9d12f25166576505f24b90e1e8f87258c2f27b7c874fedf472def4418257c4f7d772b04fd5fef23c4f6dbc3572ada248bb8878d5966dd4a1ea6df492934", + "address": "1J4X2TWiKonnN8Q4tDinpsv4R4miv8Xsh6" + } + ] + }, + { + "seed": "b46c57237e48b6c5393be11ac284687edbe0a44ef89d5dac5b2f30ef51f48d91", + "private": "5KBkFTeg4aou1Sp5cjqHsJGobCr56Cj3qVYxkYvpi6rvzpbi72A", + "public": + "04198418d69cbd833f7db8e64422b6556d16319d639036343e4971e8962a9b261c0a522e2bc9580b86c3bd90a8184745063bb75731e149a9ed179ba13915f97345", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KQq3zxRKwxRJqixCPUtvu5JH7ufyUsbdJuh6ZtxANNEs89frji", + "public": + "04898d154c7c11ba9ecb665d8107bb667287ac295332c9d7b09a22321a765a9eac761d477ec96c8393372c1d6a8739da6bdbd34f0d9ee4244be5197243e5146af2", + "address": "1BBP3Pf4wMnSBPid9QsX9vpwm465UfvBNa" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5K8HT8efqqX5H2YWTrAhmwvzrgC4kdV4Q11bDfbzrXw6jMAd5kh", + "public": + "04e185b0c154acc0756d63de1064fce18a3885377dc8189b65a67e1754a9767e02c1ca677829e337e7ccfe46aa38122edf6d8008eb35508f14b363f80cec6a1ced", + "address": "1C9cLBGhjZzr2vhHCPdJf6oFVVuzeZdkvF" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5JdzqSk9VmsvYVE3XHEQHFAHu5oY7bQhmH3K7mpDeVAzRT5p2PR", + "public": + "04aa5cfe376c9f3c2ca491398393ac95ca2c3f28e252640b0620e3b70f5d700006a2fc3e7dff3f2f7ab33e5f32335bc8b0170c9cf8ebd6a1938a69b4c9d2e712f8", + "address": "1DBPGQYS7CaUZmZC2YUXWghfkxpVQ73Wzw" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5KWrsr9u1wYokTdQZ2rEyoT2wLiXFfnvQpbpkFyhM2BLexp7cRa", + "public": + "046720b1f281144a2e24b42c75483afe01019bfa50a0801c151e8b0f634cdaadd4eadc34aab018ce337cee044ab9602997b7ff76dbec25c7a1e892c3e189134ed9", + "address": "15CyKAodWeg6jgzmwQXTpXFgzvR1U3gvVZ" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5JU2U5dK7JKChtebn4QQ7mjEzCavL8BYE7Y6N8txxduiFnd1ZFY", + "public": + "045db19512d7c0884307f33c5bc6522cf67ad56de51401a1973db4afda2220c26c8ef14eb6bd6294d1d5a339f1221d379e5af0189aa3a88db64bf6e27b33c13d24", + "address": "15CymnmJUsrGzwr8VfTBb7SRUwKWFcGLGr" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5JXJEqQukQaJvsHVJxEWshS1N7N6Jx9iEuNeL4AWFc9JX5jqHRi", + "public": + "04e18d943d4f31637cd97afc87245f181871f01f9de5afff384742d0fce0eb16f8697ca6beb80b6470385e4af9fcca4c7cdb086daaa959278bcecbbb8c8b1a5cde", + "address": "1Pcj41gvDERKbGdZBuY6p7Rge2r7jA61ig" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5KQdvJEUkG17UKjtykQ7NQcU7xbM3Mw5NquRhGfRome6SyXKmPt", + "public": + "04921c7b3eef9679f2acefe9ef1e1882ca831bf7c3c59c5f4c0ebb962f76930ab1e888d02f7434ec3c9eaca098bd000473e22c4da91a09e4040b5179cef98daf00", + "address": "129vmsV2UEjTgNPGpEd3PxQHWmCTZBMWjc" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5JLfn2PNr3B8M9cCBB5iuCtecSLJcZHoxmxQVJ14ZKPnh9pDpDP", + "public": + "0465281cba2019f8ceaa35c9331d47942603f7e85eb170b1df97036264229b533ad3604dfbcc35e8552352db18d45821f8e4a17d826e42ed945d3bd80919bd9957", + "address": "1NQFpaTWLqdxSMzaStjfLUtRMjkXBYX3nF" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5Jqo7q5MfquLcxyq6EyoSV8BQDZdZk1gSNexBADTyQiT5xkbRfA", + "public": + "04f090034ee8ecadd13fd6dabf541e721bf9f101a5ab9a1ceed62eeee91ec015ee6d809a0b7b965bcc692e41590aca56691c504ab156c4f228c1f83f044e83de5c", + "address": "17xm4GUbcMgythpnY7wgZ964mN5kkMnt8g" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5HynWGKppUzYy8cXnhyLW7b2stisjCdvosWkq5o8aebCQMnMvKm", + "public": + "0426e58f3b8b19d005f2ec43ca94828f7ddc69fa81f78301ddfde14d77d61ec8cade1f5e7421f0b1d57668c23181317c738d382031db0785c8e7058972c968e8c3", + "address": "1MkUadNtW2ysb3C1A7qaLgP5L3Shdzg2zZ" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5JfdWfyJvUBbbhTgXzMiSvDWTg8AVGhob6tgVWHDc4ay1r68RQE", + "public": + "04ed0ed2140ecc5634313553c360450c68f029c7b564da7bde0eea115587c5dc4d1dc8f5ce2aa863458f58feb3c9364979961a23aad2456eac3e3ff0c6399dd2a5", + "address": "1ADonsdzXNcvSbpv8jasvriuh4f4dmNXKQ" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5JrBuFAFswv68HtaBUqLCawdW6F6WUbKVo4RMrtRcCzeAhKWWXn", + "public": + "04a64ee9646d6160927778f0cec377f0f3f695d8f0d4a8a2feddde5590f37d60eb85fa751ec693b648e3a80e931184c6b722b621f961e1034d91eeb74a76e38833", + "address": "1HnqHiZdWdq5WSvqUEu98iK3AKB9W14bAJ" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5JM9Zo8hM7LCBfWwznkXFgvv7uZDd1Tb6k2yVicRbTWKJeB2aU7", + "public": + "04fbedeb3d75761c1a78eaddd73d16b3f28f59ed843d36fbf718e7660d95ce607866e15f9e3f6e142250862616e2f4f3eff0e86fa091475e3fac18231ec6f78fd0", + "address": "14ShzrWuTzSHs92Fd7M8mQzKwbysARRcWx" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5Hz52vBigDJkofTBELUteymeZ4yPLribKz9gaods4t12nqT7szu", + "public": + "0429dbd40ed05df00a05300dd190250b2397f02bf4933235f09fff5044ade5bee3818262dd288b27fc22a61490cc576020be2a59211839038987b574e278a2e380", + "address": "1J3yYLfeeMCdt57HsLbMAZbDEFk9hZ22AK" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5HttEk2FK71TTtpeuvs919J3MUQZSHJaUpipif7tY7h5bY3XKRc", + "public": + "0418f14594c2bae026aee10f80c79b1a0403255b328721e314ad38ab3a9def5277a38762864a2c4c5f223c4a328e491d2a75498edd28d967e71d30c8a337221a5d", + "address": "174zACTezpsmMaC39qVhdjy3gusqoXoRfh" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5JEXDuTqvK8XAbW1w4AgF8gf3JRdXQdytfusZGC8hbb8MXLohSx", + "public": + "04007efbc24fcfee1a0e82a181c926f6e43365a6d1cb3dc1de65c76b90e2d04125ba50268d7224acb5a946e5bf6de2bae534388dab6d1596bbb7e8456b83118d61", + "address": "14j21FCk4DFLSaMueneAyEtMZp6T123WaT" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5Hy8jvUzaTa8fx25t4LWebuogdwTxBhoWV5FnZ4GynbRccZ7zMF", + "public": + "040727fb90ecacd540edc92833e1cf3c339c928e1cd0c254c4eeedafa764c94b7017dc0c907202ecc5f4167ad5c97001b4a33f24b6fdf2dcd62a22a563439c62a8", + "address": "1JCHyoe4jUknzT8zwtudV6FhTZq2EGgHnD" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5KSPbvAtu3psFKCQ72fHpaLYNin3JxYnZLyupmC5Y58NA9Hmu6E", + "public": + "04a7fc4cecd94396af68234131e838e1cb99ede8374d3e0528cfd5aadd44ad9107eca173e6fdc364f44ae08d3ec2a5199045f37e44474a73d420e737569d4dc6e7", + "address": "1NtPSknnLfLDJ9nxfrQ3b5j5NwMTnBjvA" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5KjCsxwpUxEyRuq2oZ8qUu6WFGt7323EShrEcxVzE3eQvNAAHGm", + "public": + "048e61143da9ae8048c79d2fe4fd6f11276089bd10f445a77d8597d6235ba8850b5a131c42eae8937998d218cf9b3e87a4c1156024a370d9309361629baf13f7e0", + "address": "1MWsP3UuTSoR5odjdFqa1edRdyDqF2tep9" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5KMWWBRGxjh3UexEJiN4T6LHq8QUzaMwWp1XygN3AdL1UpxVbzc", + "public": + "045a90fc8c0f9154f76e0251f08976f6420f9aa6e5074b964a71d8eb03ecbe8cb8bd7f3e5f1d75e7325fb51470f8b95232aa45f9547457be4fcdce9e42c6efa8d2", + "address": "1E2H7esyCXYKfeELRnwMB4APLyWXrrrAtV" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5JpMAukPECJniAyYt4c5QqQNdfJ8buzdQQAN6v6U32MkbAV8XmH", + "public": + "04e63c7a31f5f81753f12a508814864352514a0c2fce4791ce1e92fdc1d72830f3cc46758055083546adef1e4a7f9a583540261bf78ff259fd10a2f77318e41847", + "address": "1LAenWybXHaz8aVoBXpXVzttJkMkYXYf75" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5K4Wngtd3qAZoWLk3ymdTnGvAp4Xub5YnhuziA3UvkrebJyJqb8", + "public": + "04381d800911b0c19e7f70d14fa8a639507bf9230fbfa4950881ce15c27fe3358f55c3da994ab16f807329293ab62c1b8760f6dc2d6c5d6736c3b0b4a3c2ef5565", + "address": "1FyfXP8HoViQZ9KghsYTPJZZgw4fxkT6Ew" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5K3V6XPecjHMMWMDzQyo1LNN8p51eYhJfbM29QxTpijkxCjGG4W", + "public": + "040d27d8ed1bb9e27ce8fddb06b4bf18e60d4cbfda156d682f45f0c7c0420c25cf3fcc267144a9efe0c0bc07369987dd85755e37ed062cb8f4f371bfd11ca29203", + "address": "1Q3HismUjgvX9ZzTx6Tuor25erUCwiV2Br" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5KWYyyyvmDP7FAFFBRWw8X8CyLbPwFJMLHZhbHqfT184nR37BUD", + "public": + "04472ffd8c68f1962830a28a601c1f161f9fa290694ecfb1986310cff2092d99af1d2efe24b83ad3c9f2365e455405825fd541c4d2221fc124140fa7b92b9f5464", + "address": "1FrBDM5jGEmbu92P7CDiKiHaRtx22efsTL" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5Kf8B6VdFdE14JScP4JAxty2uTnxPELiSyW4BM3dNrLkpfRsFjU", + "public": + "04271c61afda60a3c947dfc7d162630a2b943845094f73c1b3cc2e30dbfe6c3a6dc0eaf8d33461e2545cf7907efc186484c7ebbedd074310faccc680b1740e44f8", + "address": "12x3qExqYQZnH3wEj6y2ASNQuJ25yRKtQD" + } + ] + }, + { + "seed": "7eb50f0b22066304d93cb4f9fcf531459507567ea34bfdbe80ccf28feb5fdcea", + "private": "5Jn69ZZa6XFTiReafgXJpb6ubD4tJvzJtFgkCaoVM6UYgBApaKe", + "public": + "040c7dbe724fb3ac24b400370f2b114b1fd4fd4db72912a5aaf946d07b906789f3d77f8337afccce78e01dc772e1c231439ddb2e7f2df08f1ace5c0e0ad97d9bd3", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KRLoQddqprELGFrKwXuFcE32WtdDqJQaTRkURLZTBuNoNyr6Ar", + "public": + "04280676f7387cc9b76822bfa85fd88acfcfeaf78fee97fc6eea27e4992fd4e7830dd79a51250adee078fc238b83b898d68a1baf7e89adc4d0e997a54f05be8c06", + "address": "14UjKSGcocVHcFaHXQbrfD6WHoV94GamjL" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5JzLB3SoZ4RyW6FeK2TP7gYdFLUjXz7AxNZLaJ2siS7PYxgoprw", + "public": + "044ac86627c16cd75b2696d9889b75ef0d6c32a438327980c307fc997e139a17824a38245d6fff26d1793861c508b95e1a23d6a364b1cd8612f1f599e5400b4802", + "address": "16wR5XVoYpkSLfa7J2JPXbUtfu2Awqe2W7" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5Hr27dntcphYVvRfsTokCWqkHCDSB6ZcF8SUVkiBU5EUdW97Rvw", + "public": + "047363ebf6ebdb272f75d25363a3f25fb41cadfec6447730f6d693c74415dcbae5591f5d8f0dfee2f0cb8d910e75dc02fd7513521fb740b88c455a13ee54b8ee8c", + "address": "19V1YnwHBKiAYyQKg2LXppN4SrutXV3LMi" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5JrTLT1NnWRLoygLo9Bj73rtiFrrsZj9sanVXmVJkjUiZsBhE8v", + "public": + "041ac4566e9ab4f0c6d6b9441cdd9fa0e3ff58b68059e4e7eba5bcf10be0218cb8613cc7b469d2f055f2e8aa6cad984611d827d48724f3a7de5cfbc92479dd2489", + "address": "14sfqS5SwAJyHFa2aSnTc9cBXDtF9yqqJh" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5KQWFS7TELyd7BJMzGbUjDmDVntciN7FwvyVrWqAuCaFWBx5897", + "public": + "047c97ff846b4c4b927c4a9a3b9d2cc8a020bb34bf13edd4ef7d595109eb0f017d476e018ae65aff2e132f01052cde2ef00d64aa6acce01d41a87561bfed2d96a4", + "address": "1KHYxUrLAWArSGVU6xQZJUtDd4KUxeSZMn" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5KcLKW6xhbqx34RR42YcixynhJi8UJUyc25oU2QrxRg2MLX7KDy", + "public": + "04f8357616ae670efd80e9a18dc19d04bbe0f7971fee4175c21eba4ca9f33afaa6fc81f9221d757a1f475949e42791c3b2685f33f8b6746e18fc5971112f483749", + "address": "1MHkpyaVcPwrS5BG3hQ2Do2HppU411VHms" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5JQvG9yiXBYJPd8vr3UZsK8kDjQNPE9hsdvUzV7ZzLh8favJqsx", + "public": + "04d75c06b5a8ea9a52de065358039d34ccf36a450ff1904377e04fb37d3e3170c0ec9581886ccb69bf17ded88852e1f809b14ed26d37dd2c7646e159db241e6b6b", + "address": "1Sqn69BjEaLCXzBQYEctxEbMoSFVWnwVn" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5HtYGBYre3vHWmc4xid2Q4j9upHV8gFNkjvBMGQixjZtdcptoci", + "public": + "040f5c432060dd742acccf098f3e84db97bc1de0df15e074100bac0a404cebdc77123c93e59fa170bd425a9cdcd7912482ebbf4c3b9168726c516bb015389be922", + "address": "1FYYd6ZXVW3xUAdv1bnScuwUNHMcTd4nFF" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5Hqj5dx7jz7NRGru78VCGJx4x3axbrk8LXtnGq65md5FPhv1Wki", + "public": + "04a6e5a5942401d1770cd7b9e5ad3a6da0b2037b4413f4c62546b19179ec86f2e37c8a066fc43ff9aa03ad707d10f7975e7937577350b8e0ba23f8c3ea13723fc7", + "address": "1GCKQaUxBLbST9BAJTFtfiwtXAJv9RnH3s" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5JNpTGSeCJ6xaVZX3DW9WBzxabVUsqvE1nUULq1pvSHFQHUYbf2", + "public": + "04cc0a6dd60c673c6bcc1f14e55cf3b8e750bb47edcb8e551d27e3b1b8c90ce8a5af5eace7a69ded9bbc24fad4d7b8cd9ffb30aa01af10503d20c2790b208432d4", + "address": "1AjPqvuCfuUSmoNHHPZUoXQWohCTgyvpGs" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5J3yuEZ1pn4qFVc19JiCCVVDsYMe8HWQR6TELNgsabxj7MWGupH", + "public": + "049ed69a2c757b26c3ea7fad667eae781ce635bc17a98498a49bc09ef2c1a89788fef9816a016c9342260120aaf10775a2609ce0d1581627dca86697bd620501e4", + "address": "1N8g4RiHJEgHfcLKMzBrqNKHdVM4Epkb66" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5JnsiZ9YzCFihSdkthqTWNXJY1naTLKtxB8fe1NaWJ4p7LLEHJB", + "public": + "04ba1587f08e504a8b7f9193382fd1e2d3e829714e31e93457be2cd3ed6ad8e562b8c1c131a3eda1dbf4173e7448323c486b0c8a69547baaadc318e92c965fab20", + "address": "18UNZ1Yfeb6h8HWVZnDav66QWHk7t5jFck" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5KfcbYiJnU9sVGjwER4fj79xyqwZVG8w4WocM6woGh2g12a8WxM", + "public": + "045bcd3861ff51503e0cd8ea0f2cdce408ebc96fa289c584beaf8ed97b04311b12f0b1063a6fababb6f8a390944fde164be940fc59b9dd22777824d7dede69d60e", + "address": "1ALQaq8RuCvcKSvXjPVqHa9ATwPvfRdUYY" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5HsJ1vzPiV246rAAAfbq6MWMtVgEsisDS1bMLe8E6sYpRFqt9Nx", + "public": + "04880a3c08ee200cf37ab9ba77daa7212e1cc655e737e912c0e71de67005d90cbfdb677a25cc29c8436355a76298f20f7063bb8e3e4cc403dc34bdce937648dece", + "address": "14gikp2yBBqZLmxa6cZgewawYHufTjNgGJ" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5KVCtgH8nWGwseCYMitQNSXi6cFgyWP8PECeiwQHQtAHgARJqw4", + "public": + "0415d134bfc7fcdc5e25431ee70757d7eb4de2dba4116348fa57ce5df74a69d1ca61236ef0f75f490d2f2bd0f9cf8a2e46969535de7c87d39251e8fb12403d0d69", + "address": "1HsYeHVyjdkC6hoZzHcrHfoyrehHg34TGb" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5K7ErVzivPRHHtHTnd7wCJpByeycGaWp18Nh2QHg2gCyUmnP23K", + "public": + "04f81d7dcab945ccac31ffd530806005d2a8659a92df516fd0f8708381d1e7740005e6328130f6f294937763db8adb47d9701de44ca868ef32e7ad7ab2526e1999", + "address": "18sHrUxTBBaviXsuNr742j7Tifrh7rJkBf" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5JQoYQzEfumMUhqngdg3KgisoWMf4rYxcFAJYFx7245z5iwkb6d", + "public": + "04bf130b3831432390099ac7edeec7ef6d6f49da0696a1c78a618b901137b7582c8e8ee9a1b11f807dd924c9c3885a05cff00a11eebe2dbad76006056f6e026745", + "address": "1AYGRvZa2qHiBvHMtt9k6GZN8X4HbJf2EN" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5Hr9DoNNoy6s8rz18d4JSNMiw5nwYoZx9EsuUqjLERizS1wVcTH", + "public": + "049c43ce72db8f871c89e35a4945a0d234497158ce6d8c1eb8a6db225fe714319f55e95ec42dacd6e0c386f8e4ffbd01e0576608b5c20ca7b94c977de40d0a0efc", + "address": "1BWqTNxJs7VHuQQNNW2KcCWy8bEzcyEmm8" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5JiW6pJKtyXZMfaZz7HnHxmfVnRMNrcScPMrDftmNrtYGXpQM4U", + "public": + "04d445e7879519284f783c178c32c0086e33f3cb5e35856a7f1a9ba5a66b8359cdd5cf91609f7de2b15a6707848efb9768956374a2bff638a516659414b93f2cac", + "address": "12fNh8vAwyK1Cq3CDom8KfVeP2khYy8YL8" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5KEwtqUTZnmWkBbjuYspas7jYViusdjaJwYbYCJ3xgJS9ovUULf", + "public": + "04d150d1de96d355604f757628dc53f3143a0149c6651ac69671d2468a0bcc823badacdcf5937667f771c210d62c2f72b5bc1523083eb45ce3c42ca8930c88acf1", + "address": "18PXvyyVKB9R4PP6CQjVT3nH7NLWNuYSkb" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5HrjnhExuGPoUy3SnqrFUNRqyQT6yDW7oCQV17qr8D1yNa5az6n", + "public": + "040f985c944c149061bf3fa766692d87fae35f72570ab13e0b696fcfc2f906da4974485cccb28ef9d32ea35fcdb5ce6b9d2cb680d664324f4b69a9b23415aaf213", + "address": "1ApTDBT5ak1Rjw6KFMearBW3W8JL4h8oR" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5KksKH4nCD8vkg7jqATtQxuAPzH8nsjH7Pd42B6z3XNyyYHAkGc", + "public": + "04f93eb83b77c7c7417875f4722378dbc7bede90dcff193b661c550c7528f4d092726a40b0abc7d4f2a96af9e440974e2ffec88f5bc26a5bd7b2c0c3ce988bcc32", + "address": "195hsGEyi7UnoEHdPSQfa8FnefdHfR86Zx" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5JtiefFWLWDdVKSjkh8NRhip1BG7FSzuqt1idD2FdNue3zXMoFW", + "public": + "041cf8ab31833235ee332517255759784499e7549420f1a698265d0398e2388aedcd2574433f6ecc49d1142f51a766116daae88b177bccc2821acc603dd040ec5a", + "address": "18nh5KkY9PbEec9DKG2ZoP8zS53YAp177T" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5JxWgnE9PcUPuoCb4wcMpvAyCabCUC2osroj8AQrbWdcrYYHYGU", + "public": + "04d3ac099b2e8e0a4fafdc1c865d8f3341ffc86c2c53a8b97736185f63f50905fb00558c1ae12238fecab83807fb77ffa3ad87e01c8482d18b8ccd2d6ff5aaae46", + "address": "16xPpz9Fcutt6psbYBHS3sfi9FdFrUa4TR" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5JGXDcRsARZaxHq2XwAsXhGTDKs3FMmvvPsrNFy7VniVHpaCnbg", + "public": + "047e84678217530a28975bdddcb0a226ad61389370fc070355bf47c00fb6a0ac87e70524ea0b4b4748bbba954facc2b42302d2b51f4514495c1b787bacac0ca9ff", + "address": "12oKWEX4syHm1eFQQ5BNRwqKnexy9SNN2s" + } + ] + }, + { + "seed": "bbc3709e93915b4ed51df14507bdf9bd4596aa9723dd182694434cda0e75d77d", + "private": "5KEykFW8K5nckt9EHKQuxnbLAuV6ubQyezgxqhBBvbYHEqbWMPs", + "public": + "04692f36c2e34c66302c40ac8eee971a48c9bb5367b23edfc51196d0dd3bd9f8dbb1ae0de31baebe54d9ecc63a1cae2ca111cacab1117ae2d4287c2a82ffd9f7ae", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KesrEDowRyMFZdh1caJvWeNFs2avvJ23TYmCTfQBHyhTe7atnK", + "public": + "04df2cab644bbdea4a8e416f7b8cc58ee735946c724866e9168b647979b94e34df42111a8f4f67aa3717d178179b27728102ff113f9b657617d908e01a04b80608", + "address": "1GyRDFHRZedkZSmcY9Wryb3dHM17WXvEVA" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5JxqSqW88eqvQePj8C1UauNpChYHd4FR4JLHcUfJ6TnQmuXmAd3", + "public": + "0492631acdb93d4a82314d7ffd21a080f90172eecebe90544ecb15e63759af049661418ce921e7a663244b8e23559a258482a3b45e93dd61129dd4741364fe1396", + "address": "1CFZepVJs9WGgwRnsVQ67RdFbFHZkD4bps" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5JqrXxb4LCpi4fn3zHQjSi7wJTA7hatTQ3EjEYRh3JeVbkojama", + "public": + "04cfe6ba467e25a29c8b122e2c721979000379a3a696f8d92e696a480c436a90bfce000151bb3848fe35f8d1df2ab98d1b1094ab774b91f9e2361c488903a92d70", + "address": "1mRXwCq8RSDzfrJhiFbFXTF9D2FwGRVbv" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5J28kkYjeA5jWKsruDp4XAmkCqQz9keWL1NE5vWfxy6tjNe1gzM", + "public": + "0438187a849821bc28340e9c80d426b153164f15afff943b16b7615f97a5531a140d37b7d71ff45baf5af6a5b29fe2b9c539776cc9b3303d1f050afa960878f41a", + "address": "198Bv53SV6T7kKK8hUpHv8CegVCNADrfSj" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5JdsJ18Td74mZ639VES5exGuu686zAFVBchckrz4JL1Aj6PYa1c", + "public": + "046d770f9e8de641dd929c84c0f5da0e7ab50d308393fdec4b36408857a4dd198d7862127bd12aa8191089b28df5693d1f03139b2ecefc94293b58bf64da73e4c8", + "address": "1P68t8No4TKVQ1abKbBZT6GN3mSfp2Ayr9" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5JF5AWfr4S9pKnTQGiAQkG3nNcAr4GP48wg7Jeb9wSpjAdNzSLQ", + "public": + "0457d811038e33ac80ee4be6991eb4cefdb3a4b180062f3a291fd805aed4d794eeec9ad8565fd1ad3a85b73f19d44982708446535769bea14d7d62087bf8543610", + "address": "1kR4ZDeBDDkyTxWvKNbspHFeuh6KBjYAy" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5JMNAF79NhMqJutvTzFrXR8qwabpQxfzzs9JJmMf7BcNfTBiYVQ", + "public": + "0486dca683c96e7b4ec50322ff2795f033e1ba8d5894585b2089de3a1bb93de965d0559207494551bcc2198ff5fe39f0775cb08828fa2bcae4c9425950b31dc394", + "address": "18LyyEV3N5RDqydB4BSFmTyhfLwKgm7sPW" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5JQzdPDqvZvTSuzgcRPTRv5HcbjtgM9w8bfuLXz7NQw8exYD83Y", + "public": + "044a834ce1a0d7fffa38a225707abef785810db6acb8528a6031845acf08fd5b05db472abf2ab9e0f9450993ecbb99685cec829c5c3442c1889cdb74c4780fc0a9", + "address": "1J29C2FRq4vWxMr6totQHnyf3n4MDb2PGP" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5JAYs4CkmDz3G2WCawu21yHJZTcwEKMciR4WJGuuJwe8Lm8rSYD", + "public": + "04c48000375d36f563e3a54eddfa496d8bba7c2dbca595d1943edb762e66ce64e6d0994bde2ba5348efbf04c6cf85e72f32ab3a38df04ad21826ec8bc8e0502eb9", + "address": "19cA5tRKPVVmLk6ExA8aMLQrxTEFk3n8Mp" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5J5pj3GE1eAaDRWGV1m6TPMA5B79vbZYNyneKamUM9LFb7D2gib", + "public": + "04125ae753cce79c5443ad8806b14977e045ab50618d44e397cadb7f7a921a722a027bd77d54a800351abb6d1494b9bb7335028c072f2afe8c6968f673c34d4600", + "address": "1LfNn1nfp7yZJYYjJjv2yG3XcFfrEdE2ii" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5J84KfXkV5BT9zSDVBhUjz68R7YmmBYpeB1ibivhkVcpfvjyDrA", + "public": + "04e93dcef28710a9172a5939fd0f17b849a2e638cc87dccc0cc23b35966fab04348b86906f6c29bb72f2884f4a46071cc9e0527e54b6d178621ef23ebd38643511", + "address": "1BmH1q7CiwWfxSi8XGzcjo2phWTTvBb86p" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5KYBn8xss1sp4dus7rk6rXWqkXajtNoCjQRoLrC4HNR9EYzPnpR", + "public": + "04f037dc219051bcf0ff4cd95fd73289036e55ff417d505763d11e2e558fc1d021f0706c85763c7ba94de0a997f6eab4d343c0ede262fdc3fbbad65778234d4a90", + "address": "1P72NMVBnuWAUriwhDkhYH1wURSqU936HJ" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5KD78L1kf66iuTB2zv9DpMV823nqEXogt7FPX5nnuhyBVzJRLKd", + "public": + "041c96ef015246753564fac858c13f8f4dbcd8e628b29e3cc8401ffd8fb02403339a979efb282a47b9f3318a489cdfd82193a88c42e17e09c684ca2b6f67ad0b89", + "address": "1F1VodHyZ3N62976ErbzRPdCkScqdPzKs1" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5JKCZZYhTtUWpmUkkJiXVagMkU1fL2f1HT8okND2o3Ktvm1R9AP", + "public": + "0448f14198470311b63aa45990cc7b6bdf985a1b3f03aa9e81992fd38612ba15474257e475064f996e8b7262cc5facf86f26f951f00e374594bd1ce0614f0fe52c", + "address": "1JEQ5Q73PzXnZoKHh8a9A97egG4JqRpYsm" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5JDYHv7CiQqiggNBFT5XxtVxHEerqnKo1HfXpG7jVHFmVC43a2h", + "public": + "04e16cd35727f1382d06547a0ce534f700fffec176a2759804518eb9322be505c87ae8652dfb7f0e3f4ad38fb556d97a8b18b68041b7299890ef2c45c51591c81d", + "address": "1GDjVPx5zvFr8DyTNbk99oYbusyxEvUzcB" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5J2PazRPH6Xedhj2pDXcxfQ8RRRo4zd9wVBondYm5A8CnKDB6eU", + "public": + "0402e1dd40e9cd914584c1c7ffa3fc07af7fe3f3297314eca10e524ce3e1b74c51d4ee06135d369a7c8d82e0e4d4b8501b7c431e5d045edf049055d046d9480fb6", + "address": "15kHHqRGjcJwvPcqubsVbsgow78snnJRKF" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5HzCuveiesd2uEPW37jKmUirMqQsEdZ3nh76ctSdo9NRCDAmjtE", + "public": + "0495f401ef4e15d7a9b9685dd86d94f4f334d2c8b91e0687ec86f9fece499d830760a3509f9444574f2d2c7235d608f1da4eff52b93aada0f36dae2fad118819cc", + "address": "1PvEkKhjjhTvSUGZJQiz5fNaYmXjYNHogx" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5J2UQ1r5MDQBuPcrELULMqF4TApE3Cc9tNhkBXhpfKFmBQKhcA6", + "public": + "0488026e986b09eaf3045209fbc481ac130b8e8ccd4aa82c81cc8327bfffe4aa67bd37af5dcb7af4f34066e2e1ab6196232e794caad4a7cf2a12c36740e01e3084", + "address": "1CtpjgvYrgBCeZTjiJvSghKbRRuVE4WkQe" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5JcTv7PnHNNNSvCiz1w9qaN549PjdLewRKnkp1SpNrNnTutDJzF", + "public": + "048d703009b41d498d059749d7fef3fa8169eea3d3b67535d1cc44c52f5b7aa2f27df85938b917ca891b14d4a20e8b4568b81a162ac7664e03b802d3b0f9af4f56", + "address": "13JsDYScouuNT15jX7tyEc4UJVjaDYiWb5" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5KTVEEAdXo7MDd4YFScEbUJDCatcspEeCwQnE4JCUyQgHTQFSNi", + "public": + "04c7edb882583eb859c95cb8ef1f3495ba24e89e180a0b5e65e01cd4bf709b236b05c424fe4a1619d7758ad8ea30390aad30aaae9f7252877a3be98317e44e0cba", + "address": "16rLrqPb3m4rX2EXBt6gy3Kb4bo4iVXhZ" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5K5YtZ5KKSG16oY8HHYMHaannnURbgAbjNDxXREAfLgHYfe1jWa", + "public": + "045b3725354a96d90b31d1ef941a94a6b5a68296b80635e05fcf77333f20f8af5a28987ac18fb851e49f1930cf046773dec9b4f1b082e94aaa0f5debc4af1b7d10", + "address": "1FegKMgjnqn9vTc8ehm91uKXgJQDhwp9Wi" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5JDECLvNpBBYCxjiPxFeXW1XHyNGFLWxWdXzC6tiMx7omqWmkvu", + "public": + "04bd730b4758777ef8068ec8c3aa685bd37c72ae5993bb7633c0a6e97421ba4a65a4162a32b019c7012b57baf2cf15b793d213bf72524768441557b1ff85c4f21a", + "address": "1ArioJ1djgmzywuLp5V15TAdWYF4ShgfWv" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5KPJTr3PAMzAPoYsppDjMgFWVemjQ2moNwkeSEC8poQt3PWvfsw", + "public": + "0491aeb9136e5d04b0b79d20e4295fff975def20c8ea7e52b22510fd6bea37f1068d7d0332a3249f01b29f2d271ab51c66e7c7c3f099ec2ad5a48eb1284603c1c2", + "address": "1CAUwxZy8KsW4xb3rif3iwUq1JhUfxy7j2" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5KVmeidtVTRjg6y5r2YkBxEZfwvLQirsx7WSoYRicRU2K1R6YER", + "public": + "04d7d955177e0011b025f34fc16e3f34a5d901dd783db36c896c5e07dc670af38c4125736fa90302b4aa6baa8fbd5dae1df9bec688adc4affa1d5fd3c513af89cd", + "address": "1CFpmcFoU7AbAwtnfBXLcWaRMhyij1686z" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5JFrJdxiwQMWrHdjupgeyjmEKSut7arzNjDZ4mLq8xsUTN4rYcJ", + "public": + "04fa0587c77bd9ae7b02e34aa13d446da52e052dae8093376574122927f74d42a3be9f5845a9ea81203d794533c484a5229dba237852756f91e628183493f49b5b", + "address": "1Jc49JBbKyndfTS8hiye8J3zEbHfa2Xb6D" + } + ] + }, + { + "seed": "5860a7ded4a4280d8c6504af021ac53460740756c56c61362e8768c0a5f21028", + "private": "5JVD4t1EJJ14c3pHJpaq6sjaxwswUzr2HS1TgiQqCb6zYNGJNtw", + "public": + "04c0e56782f3c553fd6fe7257fb7afe500f60e2afc18119012c04d77d538a3e6c94493c74f1b459b5380ad896cece6274d19d77ae37cb08eaeab9a23b161612083", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5JhiTNCaFyyYwWrj9WfCNxsbmGaXT65e8HE1SvP3HgvCW4a4Jve", + "public": + "047f3419af64426f4286891825e6e1f670dfcef7aa9059f54e28c81a6aa10a61bde821530bb09d5ee795cff42d1e3d3eb07012ea7ff6d315ec485788257b8be63b", + "address": "1GPngewrWWxSpESJZXhs1dUWnJsXbMFecL" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5JphBkULG2nUcNQ4n4wGLJ4wwfCFFHRqnKiYL5zmaP5nNE4dcNg", + "public": + "04252c1737d76902f5527c715918192f11693579ce9ee9fdf8cb4ded60d356858b938d391145e49cb9f5c303354c4ce11e66bcf96f1a01ffb8ff9ade8b5e211e0a", + "address": "17dFo2AedqahwaYnk7LFLBLCtU2Bw2dv5o" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5KAiGvgHbHAQjEQhncY2X97EchueCWWqZ4npS225bTiwewVWCyZ", + "public": + "042ce3195aa1d6e3d80b9e978bb5f44c126db5295eca79e3323884bb254cf84b18cc7d1cb7c3e29cc27e9c7359beb086879da84248fb033d7f931801561a99a3cd", + "address": "142RJSyAb3mBrHhzDpN6AfZMfm4BRywuMH" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5JMmQtMCCv9pEFQ6mLUJ8HMzoK99TUXTor6y6s4ytgZcYUSVQFK", + "public": + "04f94bee33e80de1348691feb8bdec0f522d9effe75e019fbdc1b2f1a8acaf302b3855082da0cbf4a1182c0bd994b138617b9365433a6b79c0a1ccd9f188dbd317", + "address": "17FFpSPQgZ4k6vatfSaFbCrhfjWePTH1LP" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5KCWd46tr5aAt3KWR4TYva4nLM7oiw2McJd1EceJFkjnJkB9a6P", + "public": + "042c5a7b7044250eb015848b5212fc43da358356ebeddb696711340d21bc60a365768471bd9baa974eb7ac065956e0dbd78f953d8a7c454dba2d4511437b7b06d7", + "address": "17Pdqkw81yoV2UnUTAkaMsyUnoqqeWGtmz" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5KTbL3moeQxVN3Jt3vpiscdpMiB9dwERtAeK3emMjnwuHFK3Wo4", + "public": + "04fad2f9cceb7d158fe70efabc82796a866301f7425bf27845ead431fedcb9d9bb0940625c48aba27e60accc97f3801ecdc8cf39e7d204c3f07228b5f4141928de", + "address": "16AEFsKGYkWCjdQkgFpd13fgjd9Gv4bUAk" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5JL96c8DUp2gT7tRPByivHP533PHgWkRDxUfKn2gW5snp67CsUw", + "public": + "0446d6c097f4ce73f8220a124cabbd16ea3c2f796aa137354446384ff9dcd4935f38887df48d7f23d05ae529efc963c9fd7933f9aa1edd996464dea13c95c56deb", + "address": "12xJP2UHzoAJ2ne5aChDFXw5PawWLXTMi5" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5KUdxsAry5FAu9sUFavKZ7ASv8b8LVTt5DLsvfBRNDPNgG37UGd", + "public": + "041f6554d0d7882dd4bfb475745c11fac24ebff38c0024cb58e0fbab18540be569276d586ce0fdaa87a4e65a0008d6f7a710d7af50fdea31696f56f177fd445b0f", + "address": "1Kvurheu5ysasVpBoXTtiXBDa9nzLKfk7N" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5HtpU7Hrcmj1BP5A6qwobBthe46AqYjbTfcfn7uKpLaejYoS4yD", + "public": + "0409b44e12cf35e85c5c78db77eb89ecbdbdfd102519c18fa520542eb8699b5519f89eedea0835636c1ca0a25f402102fec77a6cd58671bf940dddd6add6ed18e4", + "address": "1AxypRJP7KmcQGqY2C56VH4UVtn5KDmLNV" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5JUf8XK6ECuD2GuQVQYhRhWVZywYJ95MEDBkkSRbnenREqnUQXg", + "public": + "0495f99b187d78a31adf2b891308834b8c6ad67aba0fcec3826474ae9e5099c33138009fc7adff48b21152afde0602dd4a85798d931168e8ed259057a7d180c469", + "address": "12uciEBZtKmwRhx7GoE3ef59hZg7LEB675" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5JmFotCM4GzHg8e1dQCk6KhJw3YakAAw1QSWLH9PAhivjTJsY8G", + "public": + "0483fb8b629c24854513420ebbfdde779cd7879993c1cbe20a6202463d58b42b783ca687b2d64c8fe5f7ca683d37f125f7d97665565b756098c18aabd85108c69f", + "address": "1BEpVhz7vJHQDNkdmXyGPWoxbc1yW33HEL" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5JWzhUksRihiVzojzoJb1NcX9eehN5UatCMs9uS74K2D1qNjGRb", + "public": + "04bfec17a1750520c7f03db2d1d3ae9414cb41615c649b56ba82c5b725a1858928b931532369d021941b100f18f958b0485d14e33f9ea7d726096d8afd837c9a71", + "address": "17z7WMFEB1ovre5EWs6wooPDmykZ6Uj7qU" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5K1Jypza55iw2ZjYaA8ihxvVJfRgEPo3cEMAjEabwQRf2oQQVr8", + "public": + "04e039c992764c19e494bd3a70c0dd69a03831d33bc61796578d14624896b16db1a90f24111133de3e4524e42850c5bbc54730c1cd7cb801d96a0fe7ad92f6c047", + "address": "1NuDqfN6gwJPZSPvwwy89zuSu5p2UgrZN9" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5KhMdKWyVuDtKjL2ULXtJtVk8aRnJzcrKFi7BghU5kaZdEgJKPy", + "public": + "04cfebf19b9c8f4110d493b1a5a73fa71168d9ed46c0d9e2deacd73de0248590f76acc2a1fad98bfcd5536502502e9e702da1fe9e0da05f700bf44786dcb406bf1", + "address": "1KJm2vMQnBfNPfNeacpcAMnqu8wzQKrtJu" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5K8PY4qcJazN8rA6ouWk9mcHZNjtL1AuxSuJwFz32u2wHtnCDWa", + "public": + "0480ac83e4e7eeea8e5d673393b575e1ceb3d671380da41625b6a0ce4869e367a0a6e9228935debf814f59ada5d229acde132eadf5b092620f84191c7fe3de3ed8", + "address": "16zfbHrb6CWhH4pywiiK6KFWmUE6uSGZM1" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5JcLDoKkUq6CWo6jARxH4ZdQkF5ZgRLcvUu5SzytS3a1Lmtbve6", + "public": + "04bed89992935a7576a06bb638cf1115405beab9f978cda5a8362f51ade2074698bbfdd0d2faec0f9da3e81ce15dea4105904ee428d7be087d5a84816754f83021", + "address": "16CFyW8LAbJ2TvRktMkvNK5g5BbcztEBab" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5Huokwgetbkq8F9TQ4TShLa6dPrbGNs8Wig6JabzUbVVunCp8F2", + "public": + "04a46dcd896f84700122b60fec96535c8938e9afe099aae4fdfec8ef5c5d2b887363c30c9e9e601d39ee43323791f02837c5bdc9f8a9ee826e9491d942af16df9f", + "address": "16hR6NkLiAqS9A6eDgcmr3NSYhW8rnkG7B" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5J4ZcrkUgrfDQ99VVdRCoz9GAmPVmAWUNd7eETdNoQqwb1wDTsu", + "public": + "04e922fb0860cd246cfe1fc2993fcbbadd1789b53fc1e8d0c61453b89cac9989d76c0fd21e08fe70df012e5e1b525d4608a5df9f7c60e471e4d8f6c5e793be9097", + "address": "1FqjYB4p9daHv29hf5sgcs8PV1iJWpboaW" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5JU5CcgF2CLFrhzKpKnhyL52GrQpRJWHTG8eQc2Pn7g3daZAKiB", + "public": + "04cfaa96f2298393140d460b9a9249ecf5ac07a57ddb888858684cb6e84d387539c422f68a7594d34326ec0113c774a7bca57175a93ebcd5522e54539029bf36ee", + "address": "1McQQ6ZE1x3NLMVSAKHmc6mh8tQBD2v3SF" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5J7Xuu4oUdvefxnLAk8WSsn7AV2fvRAK3Wr5ZvrconrDammajCJ", + "public": + "0438432c1d76ad39bddbdef01bb0f9efb00c49b47ce417164ec5de110d88ca11e0a8fc10e74de88eb4b853df45dd87800fcd219ed25e0d097af93194eb65d801ae", + "address": "16RQkKtJ6tTpxyoscnxDDAtRS6K8asW6WB" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5JU6TuNSm5fHCnUndHZUZ8q329TSyaNDD2cvsHgwpY9Zu3vC2mH", + "public": + "04901395921dbb7885b2e4b9a172fa07ed9ab2c2a52e1737ee4be2510c262e38954b3cb78d0ed61eba028a835424aaa3285b170809a3af88380a9afe2d25bf41e2", + "address": "172Aoq4xrN3LN8mv3jPbqrKnwDhNUoP4vt" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5JoRKptmJPSgrWurNRwaJHgRByCCCqQn8tpYnCj4bp1mUd3jW3s", + "public": + "04bf58f7889abaced069f4fcbe7568b3ff49289c12a97b4d6a87723be4f1f4c6c5f5ebf2c84b61d091ecd1bbd6c3d13f50f6e986ed36e6f722bf81c97fdb352497", + "address": "1DWXe7zWQVfiUVB6CQjYGHUJva6sHqG7B1" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5J1naRzd81BNPttAqpj5ChjBLAoTwyDw6tK695Vid2n3mstu6ny", + "public": + "049c1e2b6bff78e00ed78d24faf636ab2a8618aa3afbbd8b99e25ec362bb5d952571491cd697b4840aa89252de7b9949463a84e1f6c8263f980c0062694eb9aa63", + "address": "1P64DJwNFbzGDRcf1thR9rf8Pn1LsiPBYw" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5JViD3EWFCGfX6epxjov7SEP5WNBbNZ9oHd9f3FRGY9c9cYq7Ue", + "public": + "047b27019f7db9f741823acee322fb98d143ffd9eb51a08870ce8d882e9f6ece84cc718b2df42326eb94d9b0febedf50eb4a031e13f94fb325806f786f70e7c08c", + "address": "1Bd7nzW9CbNAWf9P5HaTdtekUPDmgiiVXs" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5JVLZ9hagQYrv55KxjPx2Hcd6R9C98B595jvRbeQRDiBveCMKV3", + "public": + "04be9cf31a4a518baaf3c7ffe38281d2f1cf1936e470b8575d2a49973df2a0be6cd915c9b34fd6a70c78d6a9e65222ad3eea8a568153c13bf4bdebcf63b87e6c83", + "address": "1DTjVKpHbVDm9YGqGqB7bAFsfzL93PMYfx" + } + ] + }, + { + "seed": "0190fa267653d642994107b1105a13df8d22d2045ad2c1f9edd173b5a8f51067", + "private": "5HpybEHsw1JJGqJyZyxkRJGssJMgvbyHTZKptokNixuH1EkQDpj", + "public": + "041271a28865dd848f2c69ab589f5e44e03afbb2274fac0e8e3f0b98d93947c222465898a41eab088986afa35fd4011e820529a8400e00e06435ff803226a6c4bf", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5K46sU3u5m1jj16fqBvhjRBVLFjYw6aiztVqHSne37ZcP6yNtMg", + "public": + "04d5e09d2d6dacf66dfaaf81a8b49621bd278a02da6e43f53f382548b4ec5e83e8e198824e4d42d6d18c884b6beb3e5d68e1cf5a13a6bc3d537efcd2c830cbe98d", + "address": "14xwVGk3M6VSQuHP13cLWEYDXTaXC2ygYU" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5JWg7tMqJyUVLB9JgR35WXZzuj81wmCpBy2sPmxSn16vX29AGjP", + "public": + "04cce6e5c1a99333e8c21954e4a84d3a909e79d509d78ad35e13184b561994ae72860ebcdea6f09ec450376a51754999aca52ca31ff5419fb098056be1a8180a8e", + "address": "1BFyojLtWkUeXfwPCy6RetM9LP214DJfM1" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5K4Qb4VgF9VqATPmCvSmBdWRq18zXPbXFr1uwC5SFwNmN4EfH7w", + "public": + "0476fea9c73f3bc3cd7441e67953249964e69eb0fcf67a11b27e874796129b9b1c26c793569a11b7db6af3498ec3c8e1107a2f3940b9831cef21ce3de69482f035", + "address": "175YWc4PNuoDCXPjnECQNZU74mUhfCqMBw" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5KgZXpM95A38x2SECJdSVcyWjXgfNNwSyE8kLFcnmQYJLDCULxU", + "public": + "0427ab0d9b28b89575dd6d3d9395f41b8b4563bc0e7c87bd0ac8460c27fe6dc3e62d3ffe022065b59550831576170b6efcc1d10e673bdedcdbf00fc9931eb50fd9", + "address": "132H5Y4emu957MpLp3zXChWd2x25tApE2x" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5Jjpwv1ziA8NsLm27iaV1ushNNea3VCLJY9ZdxnHwb73MM42trv", + "public": + "04993e4ea7e77ea0907fc1f27b46daccb2004353229db3adbbb63cc90cfad308c64382b306aeaadce1c5048a349d790d4ee1c5a91e1436780aeae8d8d54beb76df", + "address": "1PrCTwF3fveHbrJxskFKvAYewCtX3mnsuu" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5KXxe3W1B4rNQAPJciFZb6WN5s8jSKLLSKBdZLmySzER9Rn2TcR", + "public": + "04a5d5bc5e1d08537c59332e1cd7552230089e8a2fa20edda994c595e5d843135db72570728bb708029554effc8b0a7b4bf1aabdbdc0fa8f7f265d590c1882220f", + "address": "145dn7bGfQ7jpsY3JRbzi1boAfpY39qT5t" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5JfRwd7qwkaV5WGtpo1pUdJRsDHMeyUitt8gWDsFduM1fdvVBFZ", + "public": + "04e5bce39675b5c44e793769ebcac0335516a68ce2e7347aafc0789e4a247991abe358a294cce38351b782c01cd7b75a403dd05018f8404b6af505a1340b0e57d3", + "address": "1PGENcCCgy5Vn6DPtoBS5hvBv2CCeZ61FG" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5JLRB6fcPZjw2U9yWgHp3DvMc3uzjBqypNuzmJ4NrBiN4vfZr1L", + "public": + "0411a1efb37286285c0b030f6db89d4f947569eb957f55ed36ac458653a019b13df1ffd2e1e0ef6ae040f2831a818b92a73e1dccb2842436975e8e0625db6ba248", + "address": "1Chmv5y9NKqJ5CbMzG1yVKRtWJ4sCDUGHZ" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5JfFJg6M6x9HdqVwadAoYML1CAg6wQG7jS1VZgwDHedWhMWYCx4", + "public": + "0424cb8e9db47b5c9fb11f7657f8856ab97b13783f62c322e49e9a76a1665ee7548d6f8f26cf6455e535f83b6009e549e7208816e333484d33009cfd39c9ac1ecc", + "address": "1HJ94UNGSgDREGJNs9UcARiSQzDm4e7aiS" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5JnSMS8oC9SwNWKbW84Z52zhA9LGKWmQqrhRKjPsnMPkRBHG6eo", + "public": + "04cecf702d4bcf1340ac22573d90834e1b6a0601ea050bee983b7305377d29da58fb1ffc74e195a25c35e0ad9036625c5b977b6f8d5cf8cf81c05b4ea2ea83df74", + "address": "16SxTdbRwnGgRiSSUPFQVVc5n76MtxkGCp" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5J9ehEbAqQuMN6uGcZkcvQvUbcWPfBvrCAvvuGVUGTo7hFFgACG", + "public": + "04bc712e7dfd21509b71becde6865a5544eaae9778d40af58dbb60f6eb59ade7c96174b8ac1908184928312a5f17e4e1aa2165357b34d0133de42ebe959f88b093", + "address": "1B1v8UfpfPPuPY8xtf4aXLfHD8Zbjwynt5" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5JuB6dYYBPSTnKioaczrQBgXNisoBXo8KGzxtXJdc34zSBBikro", + "public": + "04a896b448a96845884933eca4eb21fd23f0ffc7b130a6ec314d5318e15bc0be0fced355b733bf1a530de029e22346cf24af650675865237af57dafec7f3ccf0bc", + "address": "12k2LvAgPEN9Z9GLzbZHcbv9cLzsa4LaEb" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5JmxcvYWBesCKA3U2PvmDfKQfVuBWVFPtvvBZAqZ7ZZ1skFczHc", + "public": + "044a7dd12654a23eb02d0e8f0a9299725a4bc3bb1ee8c3f170769a68a8faa048e30eedc972ec785818eac00c5bd26cd7117f78f886909d31142dab47236a7e8b0e", + "address": "1LU7PDjff5FbjNwkErjyFJHjaigw6ZcvAn" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5KQD3swSzVU96uvdFkBdjG2vsRDRXtHE7gjgUbzkB3fPcvSmAgi", + "public": + "04e67e9f09094ad94d45b4713400c915c438ad26954a13ad688def94d2111e0798dab5f1a7dbabfc6a0c15388c4a3f533c0ae65a45f0833defeedd92cc6699d1bf", + "address": "16QcmyCSowihpyRQePPb8Gq3KZ8R66tftG" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5JahEus25LBPFoEfwXu1ejx7AUDBqdCr4x3NLGCcJfZexzqpFHS", + "public": + "040caccb786378dbf0bec933a726f4b40b955bba99603b056db8f0f2948fb899e346e76dcaf27937dbc18d8a0181e68100571efcbb9d526fc646ad8f2f1ed802fc", + "address": "1FEoWksKUU6MPm1RxPiH1FQgbbR9eLmB2P" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5KGkP6te1M8HtWmJBkgkVvzcCMUcZFZpkVg9aFVAcZquPA9kFBP", + "public": + "04d5ec6713907d2d6ca3fa4f0fc13f3cd39ac4a5bd01b2c36c7be9bf2af5a90f972d0626dd489238a6876946bb5c052b128c7efcfec1b94fd2b983cd4835141370", + "address": "12ZpjurtJV58KpGJEko1aRSisRpxn8eNFQ" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5HrdoRWUVDunqWUAUuSUj9B56RVHugBaAJK2RnKKWQfFM91UfpQ", + "public": + "0406f17f94748cd1402be89f48b5fcde611c543f71ab59ce848506f2d4652a08b26d84f7c0d5f47b4a7a8dedb45b3a28fc5f9faf907d07bf60b3ac01c41ab85f47", + "address": "19avjxVd2xPWdzmDpFabdajhsLW4UjcUj5" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5J6rQGmCWzCwau5YzS48oH8Jr7aWNZoWAA3An9veEWBP4tEsVeT", + "public": + "0488393113a0b42ab7813fac65927b677cc4fc5b9619986e520a03b9b392ca0fa4227ac4cdaa2b6fccdf12dc94236a499a4fb9a30114768237f9cee239b0c63f9f", + "address": "1D2QxZN9MBsYZeMPMLB4p1zcfDnx5MSS5J" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5K31dVVeZuk9UQuox8hXUpxhqCbPSfAo5uQPT9jUBvTAUXRTkqE", + "public": + "04e12afe576edd8bf2e68c61192f85d179bdf01620854f35900670cb1a6b1a47d7255562e24125b87dee1c1a8f621c31b24f857fdb02887f210ccd958766c8e908", + "address": "1LEhonvkcwgB2v2SkyKQJrrcpK6mwKFRS2" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5Kc9dPoJVPttNrGxubffighKBE4oHVd5692bZsvgLCFXGkcyyMr", + "public": + "0427d95a7c4cc1be7b60428fdeb72c1c17f7994c92a29d155219009aa7ccd624102a6d2a7059f6c90f6eb43934a3fbf54c14e73b49aa1a450b3fca9f80185e2cc7", + "address": "18NV4kbEev73ZeDJ9T2szERSX5DNY6BEpv" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5KBM3RWSucLrAvSngRtTJASsHSr9o5v8me9LNsQrFdRN7t1EvW9", + "public": + "0481b6412f2dddcc0572c13f91001d7f27f56df90909a3bae7f5104b7e27fe57a734f0a37922b0b201c8c2e1c983a46fce53bca0c60c1fe7416fe86b7f34f9cfa5", + "address": "13Dy8NLzrZgJAt2Ur8VC1Y1JmbwWPMHfrz" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5KRzxzxVyRLw7M2z5mR4dHQAgDsYZyAiGeCXQ43YeryCkXgTgEF", + "public": + "042695c2e0efebe4d61cb78e23bb46a73b67cb853708d8265e4a2a6a8d5028f123748297471cef6fafcbdb4cf4a3c0089c63debb7be742d3454ccbcb584868d48c", + "address": "1DX2WdfifJBLGZjhYMXRhSjShTk6LXH3tS" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5JrtGHpjUfHeAJoQUzTiuuPvwJ7Pa1y699q8mwXyr5X6q5fZwCw", + "public": + "0438c76ca0b36511757ae5fccacb96f0aca31578a7d41ae0418452bb1e6cde22cb4eb7b19c3b6177d469f1924a7177b1d83677ee25e4b5608ac058c9db59c8d999", + "address": "1PbYC3U64twvnFCGhj3yGmtvM1MWRcXAk4" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5KgFYfyibKsavDEnHkgj2ogoVLscoieZDvLwAikJkHTdbcP1PkZ", + "public": + "04c09f6546ae76d6c11b84161576cb7f37e58061b266e4a8516a59bdb3bd451aa1775b7da1a4d7fdd605e39d223e4d0507c6280463e5a4d4d75f6da3d9eedfe5d7", + "address": "1Ea7RCJM1BVdGi9z9JKqwaqHMCRucWgp8X" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5K97NRq43ds4VV6xCZfYfqstWqVbrBBAD5BWzEVEU1oZzLAqiew", + "public": + "049394bdac0077d5bc895922a1f771d4224bb35d0c1feea963bca4cfacd58e508cb29d1392442a294dc2f5ad1bfda536fe7648c582f53666ab26699205339a3cbf", + "address": "1Aoz8y3ALm6jyeeLgZGsEMetg7sGbG9Ybj" + } + ] + }, + { + "seed": "370989c175ce7c6abd32e7cc8504e4cb572220822c8b95705d93dfcde9ee6dd1", + "private": "5JEXS9auRFRJc7fUYw6mNpvnc2i9zUHYKbCJkNFpXk3GpEf712s", + "public": + "043df51cf770b4bc4caf6e3e69c61b3ca69a566889d6d095fa627beb3a537943c36b018fc09211e481e44f1d9485fced3fbf95768abb0cd566f2391f970d681c3e", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KP98e3iXaUoAoZbG1iMSjxLPv14o8pSbEcYmUoM4Ddd8zmXqYd", + "public": + "048fd33e7b674202499ad68f23542dcbff948a1181da2155f81cd03b88919fa9f603e0daf5bd99c4b55563dc2522fbe49a7a18fd67d47e22dcace3fceefe76c843", + "address": "1PhznLujr6ZoNnKqFzA3oRsZQNCPSKSXwF" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5K46yhTFLJeKeh4zVuu7RRZuC7eLUXyHXiEaDqZ9seqbD3iE9Yj", + "public": + "04b90faf57a5283371856d9d5781e3450b3efd5af1f2083367521dc9e5022272249b8e936154ec14f7dff784a6205cfc2c696ad36930b13cdd01fc33177e0af304", + "address": "1Lauq9cV5EeUNo9uygSTsXdEQWwZu6ymrd" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5HrFB6m52hTTBy566ZbrZ9xwWE57x7UTT9mfTHVk8bsV6eUoUeW", + "public": + "04f314ca8dfbcca26d5f41fe66032d37b9dd3225bae8a97c6cc45ac9a96d3b9a55514365b27de958aa86d1a0334445d7434dbef07f228376492ae7a32055c00789", + "address": "14PenWxTzbM8Tp44jLoSbmuouEudUqfPfB" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5JQKAmZ6VDSBJjcj6hkvHt3TLF7Ngzhqo3H2eW9St8yNahaQmaU", + "public": + "048b18154dc7e1e2c5da59fd0391674ce0d706a8532f48ff65b84aa76f5c5906d7a3e3dda271479ea6b2290988fd78be371d463ef8df393a863237636c16f668ed", + "address": "19nG6mCLduxYs9j6xeugfCUJJehwsD9rBn" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5J2JxxTgp93JYixvNzrn3iBNg68yuakXiQG1B5MxBZgGk7CNMV7", + "public": + "048818409bca9bfecadc0d801ac547d7a9eaadc0a68035c5cc206f81da271bee2e926e34a659fc5c7a441765fef55b35d2b3b0ffbd7a16c0f794e3bdd86f231c8c", + "address": "199Pmi3tpej2ruPubLzRQeH61CmMg313xF" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5KGQYKecQf8WEK9y99Uze2WWHTb69f5bHstZrUTT3FjoWVYcCT4", + "public": + "04e5b2539abfc87cdeded0e51910ee245067d4bc6198e7d8329b62f7915fccb46d380eafffa0619908fe40f8e29e1c27de5493f33cef9e9dff7f3392a1db38a91a", + "address": "1DyayB8r99J49TupiKn5jhWhDedqWvaGdb" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5KScvSUyz861kqAG7dA6BTSn1hSoenvecHvZMLiFYH7mRyispjR", + "public": + "044d8243b0bf4ec6601f693e766a25b3568fdfad4bcf832df8c14a1a0e1ded5345c1902ed1122890329726f5434a8c9e3ceaef8066dbc24d237acdb285de423c5f", + "address": "1M41KK8NhQgkhciyvg3yxqNX6fxFg8j5jq" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5JmYc8h8LtH2eUj6Bxq5vnKNZEjDqohnJBNyjxvAvtXVLf7MdTS", + "public": + "04b6b313e2ac7e5f5d17f7a902991d30f222d0c75cc8e9662c91fa041a5a5ed68ce16cfe6ef333ae63d195ae6ee0643b91f1f9423b69289d1cf69f92a51d0aaaa0", + "address": "1qFjcsBGdBHJmjb1hyLQNvoDUvgt41UK5" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5KgDpAcFYQU5HLUm761a19pt5cUsgVmSKEqSw3n8xAha92yRk1u", + "public": + "041bfda57dd3c568d549d4527db569b79008f0cbe1285c6f7aa5c251fad0c6928d01ed2a56cc723c694287090c8f2a14e77676ab9b10619c15c02f69a6b7a4aa0f", + "address": "1CSqHaUAGqgKo9SFo3PEXFAtRCAohQATAQ" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5JR17Hv1fLMnB8Bh23iKYJqW57fHRD5voAH33SyvvAA1MinrHX2", + "public": + "044bf01319ee4c5d01af36f58f7817cf7f2fdea72918b77356a04f345c2fb110dd32039989b1851cd459624d2b102caf848433d085cad5e79518f585eff779ab3d", + "address": "19NaouT3nT9fAM4VigviTtPkY51kAQz6fq" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5JAqPAGJmLqWHRLjuV1cm3eVBfnGcYYrfz4S4PBMJ1ofDhdZMRB", + "public": + "048bd6bb06059842560d8e81a9df078e72eabb704b4b468db532c976883dd864437f45b8589f6247c2adbf936aad60f21da02e193b2355b2cb8f54bef5fabb240c", + "address": "1FeqsMR1XQmUorgVoJCk8eyrHSyMe8JRYK" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5JWC92JGxrobpTmL3b9jdLGdZNN4br4mPH3FwonZkQFtscbVetj", + "public": + "047e229d3b14229c723df24ab49bafa44ee711182f337c9b37f04b1e862b646459d8376b5dcc5f36cebbab2d0980ef9bed4b4f66f88bcbc6f23eadcfd50669f6c9", + "address": "1EznxrZZD2UYFuBh1zxm8PcMRyrSZV4qdq" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5HsV4y7hEKasLDsErJFvFYYYHMXPjEVr3J2GBuUPgwUUqu2L7Ms", + "public": + "04dc3861d893646a2c9224b194b33e6ac27657fec2de3f6599909bc342ebf42af367eaab85fac7432b46883fbaf3302151a000939654b03e410485d7000c6560ef", + "address": "1NwkcZuHNTbPehngtto8gt76EhC8WgFA8z" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5J7Fc3Ee8c85HJhbg14rsbbKSHAqShQsgq2rGDRDJA6fsPoHkF8", + "public": + "0491d31bb5546788e2a4c36ff939d8e9754694bcaae014ffcb373d9384ba5b59cefd3595471c249eb3b583cafc36a9dcfb756bd60217fda48a8432a19c3c52fe8a", + "address": "16hiRjdk4a9PtgqEQ7NwQagFanSonofuxM" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5KVwvegK33cVcUkqsRkrPEnz6oMh2x2TpcxFTDBG44uQqJqxcwE", + "public": + "043a7aa704cb6d176e83c292d646a929d30f3429c00a4ca01cf26dc528a786ac8910faad514ffdb97c1bf0af86d01c29457e5300d05f52d03862ca146d73e58df9", + "address": "1KUhhgbfnzcgFmabSrPCfbDWUaXPiftoxa" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5JFqbb4pA5zWT2ypJiifxmhzj7yuVnAwtVYbW1UoJFiFtU15vEq", + "public": + "04ca3df287bafea88e608818e1030d25e547b4338bc4b7421d22a03c9fe9cac86b6d116e7703964062a91478da33bf04c008ed3bb24a1ac46eb29c207cf82bddf8", + "address": "17zvotfRcqzgjWCko1urud9PNWPvmytp7z" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5JfDmafD1MN7cGyiYrsGpyKAxwLGA4HqtfzFj2DMJrpX5DphZkD", + "public": + "04558ecf1837d756ff3ff95c0f6ddafa333e3b60a0623e3f32bf627132172e23549df8f0eeb0ee4964ac8f97de8f732d3618cce769efe610e688e498967037ad9a", + "address": "13iVpKXNUhcKDwqK2snDrJbKV2KwHeoXKv" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5J45bjuHySRzXXWYFQZeSuSmoKkRvf8hqxSDg7KaJPXuYZJZZeK", + "public": + "04c3acd450d94ddf43a455fc7e8e8e7e9da2aa69bee2e98a49b7e73ff2a8c5729ff934b61d65d0e2f0c3a3545fee08232df8bd14cf756cff72b3570aba8d3fec63", + "address": "1MnomALKEhzDsKJ2grpgUoiGwAFabSZ7hp" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5JNmitKYFkMcjhMRHF4QFgKuKCEJCaYSE9ZNehvrW5NbCcKRDXy", + "public": + "04cb7bf10309e119238d2c3196cbe0dadcebbd36036c9e34b3adc3fc7b87bc5fca8224dd1e68e04eaa530bb87804b60220ed06972a98098d157aa25410914f1abe", + "address": "1CMWgn9uSxhNU2PpfDEjFagU95V4we2t6o" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5KNSxfdtLXigdjfQoSuxMCtf8iqPdSEz3EGSeYVYL1RYv5CHnJh", + "public": + "042022de45351f02e511297559b93c4e4dc319c38e764a5db50897bae0d2ff1077650c9d9afa0391483d602896d860fe6ca599d491b1d9afc0fefa5813fe50e76f", + "address": "1N2XgacFHEVWWB7bZwXT4WJxtsFUExDuxR" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5JYjqNZJ14JmLB7RUpQmHKEvYYS9JUK4Wrp3iJi99HjDB5Stckh", + "public": + "04cfe7b56c95803b5e62bb613b83673f24e24b6cb09aac0021a2e8097931ab010149738456ffa940055dd855362b43dac85eb3f66a4fffc0d53de4a1a0176a8f11", + "address": "15Vn7ATjXnjwJX6xAow9bgKzf4NVW3mHSZ" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5HxXEAR8uMRiFmyTjJYQoVTQePxkvCwzCgWTeTbYFVTCMwjfze7", + "public": + "0460022213824d8556c07530506ea57702b71e61f18b555db48633c1c4ca276bbdacc7998652b4e9d897c317673ae708060df1f13c0b8f2ef2ae66b0a72c38d45a", + "address": "124Jey6ACz7jw6weZEGw51jc5Lwfwanyca" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5KGGx7PnV7GAZseFsHzukekZXGngjvm6VZdBWeiqdbAFLHcTRVR", + "public": + "041b576386c7961b89280057c7ab647c57f40e02c52959cea3a2e108b0d7ffde21eb0468328aad18ce50927b303c41cf560ff0371d3a371001847e8b4e9a254812", + "address": "1CrGcPsu4Yi1NNjWrAMswZyUqqiGqek8BD" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5JpeGuuER6isVB34L7hjnbxucsLaDfeXaFmqwK2kK32rt3r9mqg", + "public": + "04ff40f48f5579a2f58257eac9cc9812647acca9dc6fd325196ab10c185c943d9a176720985ca367f80cbff78cfe5a08c41f295f0f85d57402229b981d91231ce7", + "address": "1D7zTNniwCXBKTPz7x9ykaYwMGzKYpTwys" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5HrHE6yubrG52r44Wmh6CTvVjbyhJSERCiqvUFSZp3MWTuh9gpg", + "public": + "043080f73dceaf6b942886080b2b30d8940432ca0e9c385dd5a9c60d77bacb228b2f3ad3a20745872f8b68c501162f92cb00b941eb774c26ef576f0b400b1544ac", + "address": "1F8Z8fCqr5uKmyFaqNBPNDCNJWhzZd7RHt" + } + ] + }, + { + "seed": "05c8507e8875b1f3fd39651158ae9e3452cac13de6bd28fd4f98f1f62d44500e", + "private": "5HrqHcF4g6wv28Mu9jTZG3Z4oYKam8XKke7uMRNQkorUxYCKEyW", + "public": + "0444d473debb2a57b2e0ece4ebaaa6213b63b86f81e474da7586b89e6f22cadd932f3de783888798cf9b482aec77ed859459b7db252231703901c0bc0e124d0d5d", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5J9hxTUWYNWQUPcc7nAh46nKB2U7wkV1vdbcJjLy4sKRQZWhBGC", + "public": + "0425286971583236732c39b702d8816b8014960688b6b9593acb593c25bd0f86c9b8c39335c5ed0aad7adbc19976fc7bea4cc52705642914d7ef1673f53d7061ee", + "address": "13NAjGv58LbTc6ZcQeAdbiY1cgiCx1N7PL" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5JYBLwovGGyjJ7FE2Wx4Y2ytgtNvQUyeBkcGT1X538AGDM1Q6eZ", + "public": + "043bd32bf1a18b7179724b08c3fe9554e958ee8ce2ae6aee452eb352fa0150091933d325e14a069ee98d78e70ae855c0bb2596f9483490fdec11aaec8d13739fd0", + "address": "1MmrBiXGHJhKRyqwTJ4uN4mvfHoyjh3Enq" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5KQomWoq1uRpvd6cmiy5zHWnYpt3SqqxvYWt4c9ZDYnkxmDP3G2", + "public": + "04361388b9ee56d96f780085370e7d596d1c8fd2b275ee4ae2feadfc75e539022ab971c6c5d1c5a303aed2e1ed9bc5ad6905c6614657afb1d23301af83696078c6", + "address": "1Fwb6iXf5va1WdChvSaZuy3KEfsdFd5WcJ" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5HtsHusht8xi2MZhStcseV5vRknsy2XQvNVd3gr1pMoP8gxKeJP", + "public": + "0492da84843a516aa0dc4786b0b4f3732e1f5768c75965be7259e41f8bf6d5e293b0da92b066d6ba1dd10e224556d622b768b1f001becad4f641a594f0ea4de774", + "address": "1Jy6N3WfDzcRFJ7JrDMGsqCLfew3EPJgWp" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5KHd5jTjJvfiLRzaj44yfeAka4TBXRA3c3eNhY2ofVLE6WuNbtS", + "public": + "04e36450773e94295614af6f07dab0fa596cb7cf61768d29682a2e0ec1e8e8196730b9309a691d4c8549730cfb182099fc2a66e263e41883b0d8be041847a50977", + "address": "1JA9gdYeTFniXY4VawuVXUmHyutFsTiAcQ" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5J8LBFsERpqdUFTXcn71iTbRDLqvM5WNhG6a2kStfUE8cqmU5rf", + "public": + "047dbf8f736118dc88a6184140c2bd3610f56d605ff32310914d7af71ed549f95b28e3ffce2236d3f85291965b40ff2dfaba9d9305de9dcf3e0b5a6ed898ad5b3b", + "address": "193mzvw8dq1PxoFBeyWTUXMdx46JzM6Krp" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5JSMzPCpydC6SEzkUFsQJ4nzCyeUGxC7m1FqPLn7sf2ttd5ewyH", + "public": + "040c673d399e31742d31bd6ef67fa361cb5f65c4a52819aedbd82718db3a7151fd9f2f7ac129873de17544a831f8308de6b32aa6708000af70a1e8c230e3169d3f", + "address": "1PNMeDgFzzaUtAcLWm3gVUFcm9kezLbxZv" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5K6Dxr7yza6uzFeurv15Xz5XBzAYaGSvtFhaReKr6K5rYSVR7VN", + "public": + "04203cdb77c87e218e510761e5a7841e150a363826bcd9decf172a8d64c284d24fa9a3dec54823d61932819b1a4f413b1d09d1ef38d2f71c045c5da1cfdadaec5e", + "address": "1JHYgTYstXzWYEcf1FVe9tLr6E2freQyC3" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5JaB88zCF2vw3cL8Rw52Undk3d95T95XaEFNtJWqWxALjMr23Eg", + "public": + "0412ad900c706ba8f3a448ab927779a99024574598d504b58aec55573d5a2f2c4a968737339e30e1254d516a1295969c3c21dddeb5ee504341dc4ea9a4863dfe14", + "address": "1HWMCiJG9bu8C1qtEY1XYprMWZUxrhcLdd" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5J7kxh3ALnwDmGvm23tkUr6oNtTY1zp2BTRpxyyvQEkPuBTadqv", + "public": + "04b6124da9f117e12c743051f6216426035fc528998ffd4cbe098b2e07977a9f55e6120e15acd4bed6740e83ee02cccbac3ea59ca172a93068ac5cdb32e8d9b0cd", + "address": "128xTpwubhihXmBKUbrhsUP2PPyfc61UHM" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5K9uMiTD6yiKRyAc6cToUt85nsaa6zCwxX4qaTgnkH6GyfoMG1n", + "public": + "048a38679a252ddaf6c8c8985b0be4e15ba1bf9da9ea28806ab6ffd8beacf51ab5e62a306a73d1c8bede6d16f4c2a4987670fff73befbf4b24ae271767ef2be622", + "address": "1BdwXvvCPoozstnE16cxQXxRst9mYmjttT" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5KSgyxDpFKgrn3SnLjrQuQPNYFHRtjoBZP5jov1Yq8XZTc9VeRY", + "public": + "042ee2fc6cc62ec37a70958c22b70d486a8188f12672c34a0a4d0ed156324aaafd50c2aaa33f433fc22454fd0569419a7ef00b44ec49c4e2ca79c5ff93050579df", + "address": "18nNtaJpA99DdcjSvYkDdnsjere7LmwwtE" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5KQ83oDY5mNpk6aGE8LFfMHcVo6JFUL38Jn5aBWWu3e4s4CZvL4", + "public": + "04122805c7dc0292d74e1e7bf0a604195982740e99f18287d328acbf080b3fc46fa985714821c2f03f1cff7a9a33f7ca1aea4a0226fff302fbe53407d2d06856ff", + "address": "18auj4agQMsQiN3KE9B2W1SdToTWQxEsrJ" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5HvVpoBcsaCua9am4EMRLKrQJE9sNkAm6gFyC18Cv6b29v7A3iq", + "public": + "0436ec36413470eaf664d4ee1103285ef783f9b14b889ead35bc6b7d9847ae697f94b7121019a3f7e794fe12901b385409a7d97b2dd6fc77de6590572887189b88", + "address": "143iJqjd8ye41UUv7wZ7FWDqHPkvP9etAU" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5J7jjBr6totzQiwTZ4gPAhMjCVDY9te2kfi2KGiQRSZmT4bJucx", + "public": + "04855d499bbe8e7e4ac921c8c96da322b09aad523eeab1a729426668cea7f1970969f69de63f1847e839215be73fa032e13901b1dbeaf211450b7a4ca1e09cff31", + "address": "14z2eSYZcMmCsPAPwvcaEwfV5AjBDaJByM" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5JgxT3umsETQZhpbS7SpMzizu5b8eCe4jWRFxcJwyG6xx5b34NM", + "public": + "045a3e89ea95c8958f5a1fd3909c95008a59c7de893df4cfdc93ee58c53a7099132174c783e3763271cd68bdfc385ec3604ccd795874b685297744674901c44eac", + "address": "13bUPkjsroXYAYoc6s3au8fdnBbRkTkaPt" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5JAucoo9issaDndGxN4DDBago2Z2YwQNjZ8aUWZkGfiSy6i6ojS", + "public": + "0462d7862d29f345985a9b13a5efffe1f424eb6c46b3102d6eb0494fe3bf29650bdc7f27e25efb914235e9131eb12168d3ade5005aa79ab1477556052c2dc130df", + "address": "19RTLrPn1wumEvjCvrt37jmW6wFaPUYNGr" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5Kb7GyCYShC3sYvJWumvntj5c7aBvkAtXuQyLKkFDy4LFkeTMpW", + "public": + "04d02c44399edb4fde0a7c8c86566f8f7408016caf15c3dc4cfadeb3a43525d353424d43215f712c6b199d0e2fa1f7563d9e93908fc605549f0a066b76f8ad41bf", + "address": "1BWFQByBg5KXnZmifW4h7L9G7fR5TpRTcz" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5JVs9Xt9w9uKUYMwUTFyVLYPFWEa8ryCaPENPP9kZeJSKzkWZ7g", + "public": + "047b7d8d7c5d4e4fbdaa37b9f3e42f65ad9bb916df9ad5536cab22612837c467d097532fce5b0dc5146d922c8009e1ccc39e4cfd58ba640f7a8d051d96e68404c2", + "address": "18jeSxrnMGo9Khy1joNgRGCVvDLWTyG9g3" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5J8awjiugZkR5KbpJmtUmqzpFJPXgqCGFThC7BbJ49MpaLvNnE1", + "public": + "041947e06245cf00b5bbb4fcbbe34881f23c2057883cc29d6a02859658a2ddf2c17e3eaf50780414c4906a80ec1d2e861822e87d84b71f673f24ac4f8ba076da19", + "address": "1CpF2KYB4LXrVKTnXJY4LYmwTypkvDrKzk" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5KP8HpS1CHX8D5d95KxEHQgCw9ajY4MB5ZxjAxxywxtsrCvRKbb", + "public": + "042e56bf89233cb7cf820123d989d6eadb9f1443000b216866f3974989667b5804be063ad7cce186387bd9ab1f0a75190bd23aa3d8f002417a1b16b0ce185ffab2", + "address": "12wFGG7zk2Ks4xZ5sUBe536y4zXJybeSgC" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5Ka2hL6H9Ht7bQZSs3ruzcwDSkRi43wMCAkBvwPhp368T1LveNp", + "public": + "04c7446b2c912b869b8c63924e72746970d1d77ed78162c8c9db72656cba39eb2bc740a1fdb42ffdae3489f359cc1d790f396dedd8bb3c83881b2163ceeff1ed70", + "address": "1P56XXR4bxENNTc1XWXra8Bp3DF4A6kQ6h" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5HsM6FjT2wBwFT3AqCMqptU2AAqpKJMG9qvdk3Xh1LXsPipKAAa", + "public": + "0435de2075662eafacab29afc412234ba01a5c9542d38e3b6cfdfb257ed3ab0b6e7fccdc9b663e665ec90aea4954227ae80cdeab75f84f29051ec95e205a0486ab", + "address": "1EWbLQwVXWrMkf43WWvNNqjG7E4umFiSdP" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5J2gcoQfGxtugAY1roVWsS6U6xQF9EacYzJuUdJH9eCDNo3Dudm", + "public": + "046e3d09e2035c10d86dd80ce8bcf4695990804c50dcb51dcc8ff9056d3afaae84b56afc11104627f50c14112c08c444a97c1e0718e3f5c086a5345e7556965bb0", + "address": "14etiwjNKVW6kp5c4smYbxd6pcdcu1QuAX" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5J4bw4iChD9XfMHJBFj3SUNYEbHd8isoHasrHsqZcq2VQRQoik6", + "public": + "04287f8a175bde5100c156fb9fc481f9d380effdddbb2d30da001b36827bc55220245b24d29e4ac4194cbb7448864276a747992668c1ea3540b3b2b0e6937ecc0a", + "address": "16Sn3uegPaeVyoH9sWiX4mJfP2DnUihGUF" + } + ] + } +]; diff --git a/example/lib/test/elctrum/v1/v1_test.dart b/example/lib/test/elctrum/v1/v1_test.dart new file mode 100644 index 0000000..5647097 --- /dev/null +++ b/example/lib/test/elctrum/v1/v1_test.dart @@ -0,0 +1,35 @@ +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/electrum/electrum_v1.dart'; +import 'package:blockchain_utils/bip/wif/wif.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vectors.dart'; + +void electrumV1Test() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final elc = ElectrumV1.fromSeed(seed); + final prv = WifEncoder.encode(elc.privateKey!.raw, + netVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + pubKeyMode: WifPubKeyModes.uncompressed); + assert(prv == i["private"]); + + final public = elc.publicKey.uncompressed.toHex(); + assert(public == i["public"]); + for (final c in (i["child"] as List)) { + final changeIndex = c["change_index"]; + final addressIndex = c["address_index"]; + final cPrv = WifEncoder.encode( + elc.getPrivateKey(changeIndex, addressIndex).raw, + netVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + pubKeyMode: WifPubKeyModes.uncompressed); + assert(cPrv == c["private"]); + final cPub = + elc.getPublicKey(changeIndex, addressIndex).uncompressed.toHex(); + assert(cPub == c["public"]); + final cAddress = elc.getAddress(changeIndex, addressIndex); + assert(cAddress == c["address"]); + } + } +} diff --git a/example/lib/test/elctrum/v2/segwit_test_vector.dart b/example/lib/test/elctrum/v2/segwit_test_vector.dart new file mode 100644 index 0000000..ff06538 --- /dev/null +++ b/example/lib/test/elctrum/v2/segwit_test_vector.dart @@ -0,0 +1,2092 @@ +final List> segwitTestVector = [ + { + "seed": + "b3ed7ca1179d5bbce64260067330bf2e1e76662e5651854f2dad36f41242dbe195f607d70d6f7865a31e5479d9dd8dc9a9fb1af12e964b4b120bb4a3156eb697", + "private": "L1tJbijBA6vr3NXNpJPeyXcxAifeDLS1szef8gnYPXd5X7apUFdk", + "public": + "04a687b802dcbb132a471ddcae680419bccbf7606066f866e9ef6f44b72d0a8f5d666413f9b65b788e9a7e27a5e1d7e8385094b43312990b25bc153e684bb6f7ef", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4ugCkveNKKRGisDDW2LJRCNY28pee8o7RwE4VXdFLgDi6RUVqoc", + "public": + "04d4f0309963f6fa0a177778d655cd99fa5da913d16c4792c945cf6a156c2584551cb47ac3e27b6a8a47c4479370c259148cb5c3aa5ad277e11b61adf2a4d305b6", + "address": "bc1qj7rjlthj6fetum6spu0hjmpkvxl7nhk58jtqpu" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KxvVKQYRtSUQqYE28aCUSb2Fnvh53gNEy5u6EapcMa7FoMM2wHoP", + "public": + "04251bc25c10c647aa766217d01d09e6dcd65ffcb85d4a6154829fcbcf64e556be5246e637a0521cb167242f10c8acd33ffe67a2fb7b3b4ed1df285b0b4c602987", + "address": "bc1qgjpq3g7skgzctt6rxu8wf46ltemv8lmqyqq70z" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L2Ly67c8dh7AhmhAMLbSrAmbnarhZ5p6U9beZLKQrsN81JvbqJ6z", + "public": + "0444e224cb4e5479f0a55cc208795f3fab007709c83397425d9620f7593572c81980ad8e0ac8b3d8dbcfd266cabd7eceab0fffb0fc886d82c187c0d60e36f93b97", + "address": "bc1q0tavfzv34mp8lau746ehy5aqs3mhhr6fkyaq9l" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L3c4tQbrg9gTFCYohmcGJSZrM9TweSX1gLUBeuREu4w7QToN4E8E", + "public": + "04c846abcb2def464c1ec73f0b8eda200580fa93a8d7c23207a6e1417e2ea4e19c84be1c432d99a9b2f5ae2459a627f7c1f5037fb3f01bfcf64e14f6d94c9d58bf", + "address": "bc1q74fex5syzz7f0kj8fvc3ft7nh30qcar575f88l" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L5h5kLhfesvNigf7hJLX5Ni6KDKfiFq6qQu2Wc8eGGbZYoosLqnj", + "public": + "045bdfc21318e19fc5e0f620cd3dc5ddf23d15dbf16611298156fdb0406131278fd543d999b13be1daa721119cd35f01a9ff0b92c610503baf8cfc4bfdd60cc295", + "address": "bc1qgd4pfzfws47uhqnnea6m4lln377h2s0vchqzry" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KzrcoG59FmKUyzxPmD7bTxMFQSyfzfDw5v47S1snmUHGS8QTc7xM", + "public": + "049af38e66059d20bd737047db368f02451df8bc2f2bf050164d6673388693d90b6bfbcdaa88e3002cb0e9d57e61659998c98a9cc2adf88fb8226e7083283be645", + "address": "bc1qea2tf0vq5l0a0fy66euhkdr2qzps9fyaa0rl5y" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L4aJ5zccm2ffC9Wjj1ftu5sd3SaAZgWmmo8D6j3j4SCYNv5EgYAQ", + "public": + "04496de40e3b8f00965719f509b3f5adc6534618808be197751a810f6f9c3d9433414342ff4bd34ba6f9e9db275274e12cb249304786ed9da8455015fbe5720271", + "address": "bc1qu4k2js8t9cat7rachch68j5s9jcf7g0vf9drrh" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L5bBiGrNBNbMthV87N1T6no2ppx1DHZ94unaUNijYUW7bSoSAqRE", + "public": + "04b2194d18e65090a36dd6a5bb65e96eb84d95b6091940b43e14a9bb72d4f60aba7ef65faf7c35bb898627208076007cf64309771ca52d674d82b06b6c029e23a1", + "address": "bc1q9a3wj589ah628d9fnpqafnlufuvmns0yup2jrr" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L4Qgqn89YvGL7awAD21M2soFkAygGs2Qff1f5AXGuPjgtM7UGUrp", + "public": + "043f946baeb4b8a0a7393688f455352b4326404714ccedd94e214f990a2066c8ff7e99194394db8d8823f298042199e8c2d290adcdedd03a315357c99141bed4e7", + "address": "bc1qte4rw539ru32v8drga4agl59eduhkplmeq4gtp" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L4tG7nnmBN9DxrB8Z4WdQENv9rFSSiDKYJU3F3vq2CkZUcbChsjX", + "public": + "04243129529c56137f33defae7d045fc3736d2683e5a2c38ba89b092f7348444a845cae91cf0a16d9b32fb2777acc3dbe8af1c2bc5d7eb7a749d80e8c38df647e1", + "address": "bc1q3cetav6aa897m7yaht3r63aru4n4rmsllsh2k3" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L5JtrDm5tckmGzT5z4bGamrJtCYajJ2zhqwU7qcZZbPduvKeH2YR", + "public": + "040bece2095856ef5097052222ae7e3b63c580839498130e74f76538ba93188a579637e58c207bcaac3f6ff525b9ff1d9217493f909e449ddf4e1c420609a22c43", + "address": "bc1quuv8rnewjntcus6fc8hc5myaz6neccstl9fq3r" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L5WxifrsscVFFNRwu4pNGouPPXHcd8QB6A6PtyQy17A6PuGzb4TU", + "public": + "04d02578877917e07896d37627f750d1ceaaeb85444dc8d149bff9e9719cdb2db15d935b30e92fbab7e5ea11666b1f8ce3e42dbba5053eb9d4dd0833cf00cc4c6b", + "address": "bc1qzr9en7q3rc8wyxg9end00gey9wsga894l73myg" + }, + { + "change_index": 2, + "address_index": 2, + "private": "L2gPyQz8ySx634XoQ75f6BcinGHeG5bk8vkHWzqXMZChdrKkUtsa", + "public": + "0465621731da2e1a8062165e0b6a81b06bf93d3bc278abff36fcb3c1775bb303c41f1fe075ecc8e534ff52bcef38d57887590648da19611e8354eb247d1794471c", + "address": "bc1qz9y40ndhqy0ykkxerrsta5rarkkyz0utsj7dzz" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L1mxEcEUio6uP514EqtRgjvTHMB3StPbN7UNzDhpRbn8Rwt3xSA9", + "public": + "040a2a541d583b74e0e4afdba8663e5d30ec56111a0f56caa06e202cc450b7564a577ad4ac0fead9dc24e81916d3640e7a04fabb7577698f5c9db477f95f288aba", + "address": "bc1qzws5nhsgfap7h5nx6vuf0hrrg9q8hp6jgsce3n" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L4BEjmAo1Gd5t3MUCShdkr4Wztkx9U3c52ibtQG686uGuvk7trWq", + "public": + "04aae7bc5404048f5644713c9ee1cbd266e1be62bfb5a2e168bdb7d14eeb10850125986b686f4a5eb6ba7e4e620a8ae88e0d2927c1472d1e5dddd67744afa5ee60", + "address": "bc1qefdc0r5ku48rlmhe4wa20dm5fews34wsux839k" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KyZbFQXG3HML8PyPUXpVC1GZ5zu7xwkTDkN75T66LwiDNFLSkX2Z", + "public": + "0483cce789251196750bc75d72a624eb0e9cdc4d64f2393ad1a820e0941210e48576f70698a3fafb8ecf2a4d449790c4357bb2c3c8ff64bd3e27213d7022583d69", + "address": "bc1qylhp3rqcm0qqt6ljse836fsedcxm0k67xjnmvy" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L5AYzsACvunDzVTSK4hSak49jr13z4T6h6sDso2G6kHSm8DVaoHD", + "public": + "04b766cab79f5ab9c266181c71a3a989da64a85f4e672d4b831d892d5b9c24293c811db33f50b41a7cf61b94d6d2d443288df95f174ac4b9e7079e7b0303df6b57", + "address": "bc1q5rdlwv4hqwc6d7u9v9myejd76nvmf4sef99h63" + }, + { + "change_index": 3, + "address_index": 2, + "private": "KwXQ1k6GX3jkjTehgGE8xiQcu9a1y6mNJFzTqaej4zZBc1ff7fzD", + "public": + "04d07357068580a3f7b54954fa54b0bfcdbb74b5c33d7a4bbe62e6e811e1dd3ab581839d0aca4782386db8447be55c29c3c6b62889d2a67bbcea2e012ff7837f9b", + "address": "bc1q6n7kwqx6ufnqdwydyy93pe2h9943g459ywsrvr" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L2j4At5gtzZEUSm2EefG8QKE9tA99BoG8yGR9EBDDivqyVBW4iw6", + "public": + "0493181cd8ae6bb6a1d8be6345a7b92156677b79ba974d071ff16f048760767a442d4b9f17b226cd3ef56301fb10503fd5e1da486a5f4d44da9e8dd73b0e36e0b9", + "address": "bc1qeahfc3eh2r2jfskvjcge5qk2ask6ttgufgpads" + }, + { + "change_index": 3, + "address_index": 4, + "private": "Kyq6gZ3tMEdBedtjtsPJkTThZX7kPYmEXpTYCjw418Nfj5A1mUHL", + "public": + "0468d490584415eb5385f06ac42cc465ac7e0a6e79938961aabb1ab83829b0b303fcc2b7142ca8ea5e4e4342be09d22be524706636c7e94dacc4db278efe141871", + "address": "bc1qqltfkxmu7zm9e3lx9vqrcl6a2dcpgdrsgcwgkz" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KwyYQBfF9Xme4gXgDxyVkAkvutrddSuX5ciQ5kJLpD3bdKDkc3ws", + "public": + "040fd4a622f46327bb13a5c9f244cbcc41ee5cf04cbe69626afaaab52aad9133bf4f7db6c6afcc61e89afc364a47bdbee97dadea2bdbbe50ee66dc20de0a11945d", + "address": "bc1qk84er3l597ehjzyqrr65rmsmrmp3c3uw0x2t72" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L4AVaVvUe1xsoc5k8UbG2PF5JtpSDduVamwjxFNxMEtqZhT9sAgC", + "public": + "0487f7c8e4e732ac2d4b629a032d991ec06eee873be1ffc9a46c88dec4775a3906fd8357d322779e86cf1836ae1b8d47785fcb231d7f2c8f85298046fc9648f5ad", + "address": "bc1q8kvr7t4c4h9mh6mx5lfssfprfa3jasvvqavhys" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L4fjCY2HHmJ9v4fqghk1K785dtDowB34bT8Pne5Dd3NTd7jwhJXC", + "public": + "04890c9f7a00fb6fb82d82608cf6eb0100b21658945aeef3263e60c4590d00f1e645cd8cb5f40cc9d119fa90a200e4807965a9cbc6876868728248cb057649a09a", + "address": "bc1qs79v83eqheuct80wzjy9t4xlaf0xxeguk7uz7k" + }, + { + "change_index": 4, + "address_index": 3, + "private": "Kys5YLQVmmNcmoF9bRstVa9qbZDRsohWbwQq1TeVj9ESvEMuBfzy", + "public": + "04cb2d86d6649b59bdf684a18a0372c076ef1edebbdd9a8f55e8b346ef35ac631a18dea3da3a51b217574c64563ba47f8bd322d0f572b3499819037633fd230fb2", + "address": "bc1qfrn8yyvl9md6mzvln2kcxuzuecc28rcehc2skr" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L4mRjSdT6Gb79d8nB8wW7r3hN5u5GRGFDH1U1tTcDbDgYVewVbCS", + "public": + "043dbd93bc1595775d428c328d7e27f976717325f63db524ff8383d2ea0367bf94af19a0e68f5cff0e69f474615ac4683752bd2f172db43b2418f196f1806e4822", + "address": "bc1qjk9tgzuta6a0hxjpe0x3khr4venn6fg8zyu7le" + } + ] + }, + { + "seed": + "ced89ae40c48858d2c0c7287c0fac5235f07ea50f482c8998f1416e8b26cdfa779c6058363c7875de93125cc91d0c5c18f7f897ec21008917d9374f7d215a9dc", + "private": "L2RR4dnnjCqGsRZMfU8rBMhcZrzj66W7w4yniJML6jTPoW5Q2bz2", + "public": + "04daf2f7e38529410d40a0a1e96a7fb736e977e26c56bf8af9b68477c601dbed6d1fcaae488ea14ca7c7fad08e4fc29746fb458bb5bb58a576064cd6cfb5c0c7d5", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4ber8QJ6BKZ8x6vyA1V8qyyJcoNNB5yHHUDXcH1qnNh47TBPacJ", + "public": + "04faaaf85c6ed86a0f20bad0850abe6263ab997c25053ea43c09fa81eddc4ac8022ccc4899d54b7080499aec6a70bb2d0ef02f2e84a0265717ebb5254fab77a067", + "address": "bc1qladc35mq66yjflagaz3wm9mm2hzs4lqqxuakrs" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KxyVeCsickyrkNwVJF45aNMKkrDXdyb2S3iyby7VNUdJEteAn6Hm", + "public": + "04d64fa7c706930206f3fd4c54f9924aa469ffa061da60ea34f0e4135d7e35bbff352663dc94ce6d333ccae749c19702ab73441df5abae7287e81f4b078dbae3fd", + "address": "bc1q897lqslr434p0vrck7vysn6umql8zm6frjzsmg" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KzWddiv7rFgryMQaBxKZFFAduLh2misbNbPi2uZV13PVWy3KN5Dm", + "public": + "04e0c1386e9067b5833d79db470d4364efc3c06906f6b125dee2d6541e44ebf790c15662822d9a0a7570ffefc40650bd606d20ba23134f6a200c9c78126b6094df", + "address": "bc1qht5wxhluscgv8fj949cvku6mjlqn0alm9jzwck" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L4PbuK57EqpwZAWp1wfa58hZwmko2MdDQiWicpfQMavPCjdrrnFp", + "public": + "04c809c8e9b501e7e815581ed39f9dfc0873d6ee582e8c1ebac386bd5295aecb3266c3df724b3c256ba457fc24e8e78566efa3661cc08477d3862065dfc4d360af", + "address": "bc1q7g3ggfkl0vn6hnfx7v8s22p5ladxd5gyvcv2j4" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L3SSCBAFN7oUp7PKX3TDwBXNbjikPQMirD5ximURiMfFCSyKbdpc", + "public": + "042d2f6ef686b7144d8ed4a15e0944b9f723932838d7c71af0b8afe29a147bd68772bc4fb20edd92f7e02b1e39893af5929de3b3975bcf41b0e9a7ee9460bdb491", + "address": "bc1qmhh3v2nmqqzs4swa54aq94mjmwghem3xh9zrmd" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L1kizEexrDm4m6c86pCsqqetet3vgNuBfv9XPTZovErmRce36fQr", + "public": + "047b5e8ebaab22a1eb166e088ff059a425226c93acc15367c0196e909790645e08e831e17561c698c73f5afc94094c0f3a702f72a52101e88b91d228fd0ff7193e", + "address": "bc1qflxfdr02lp0x2mdgh9806khdhfd4xl0un4sd0q" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L2FMHHwtAzUc6eAesy2D1stgBKZqaRizPW96kHMPD1S1afyU4KPu", + "public": + "0447a8997ef268f2d4624e4d30be0f03a29e62a6fc8f033cb0916f319f7e6e8da93cc10cac32fe4993a24907b696af6b8e153a8d7ec8440c92c2e0b70e020aee7d", + "address": "bc1q4z7uym6edga38pvgmvqemr45z0ds9y8cz0vulk" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L1aR4tgmcuhr2BnpCZ7ZRNK15JMzD2MV6vLC5NccG6n3NGLnzjay", + "public": + "0449b7390c670f5438e6e934d617090e4515b33aef1612895b6ac25760d88fb8662d329eaf193e5c873f3cdca438ef4e76fe0e67a923c42b222d2d9a00c9c78e88", + "address": "bc1qfu2r23srta83tcql6ql2t0tcl4jc33f6wllwvz" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L4fDG6sEs9GQnWXtDtj9PYUTKmQ5qNigvS4LC5NyoVhfbpqaTAAR", + "public": + "0486bbca11405ff19ea5f781175ece1b12005570157dd038920229f81f520a2bdd085cb7faef1fe71a75f878d21d586d8924132144ff2a63ef0273b508cf460509", + "address": "bc1qmd2ufsrx34xqsc733cjx2cfv2e836fm3s369ya" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L298nWQtZyph9WGGhPKiHgTmowPdGrSwKB9hjQGvQSro2Qx9VH7j", + "public": + "04a72a86df9c5da5778c45de0eb9bb3dea49e90d3cc40013f3ff3d273be83dda0a70fd6848f913ef4f03e7fd15018fd2f6c7794abae9c3f492bf18522f50622dcb", + "address": "bc1q0zn2c24r7s9c9wcuv8pu242743v02uajepgxac" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L4H3EE9Fdc6Csk5f5dU2X6mmTutjVNmu56ozwvG5yKkZnEPo6hPu", + "public": + "04dd8821e6c80f84beaf79dc53c75fb3a6a95d80bdce55c626dc9d2746699bf34623737720ec80f0ec6839226a27d8e76da923539fd621acef7566d250352eee35", + "address": "bc1q652akc4sfujzqnr3eac3t8qgfqj6sz5kgsf8kz" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L4kELpEEgi42xPwgkVSeajf5BLbMiqkkhQ3nu18A2AfbWkPrS9Ts", + "public": + "043080f36db2a5c3274c71ebe941ff19549cdcd69d8c0d25e19a03fab95467b00d5410e887eb344363ea371352c7abedd6d82dfc2452c61436c71ff046cdd8642b", + "address": "bc1qceqxvja7vwt6kpuqf5trtzhfteg0wqq27r870r" + }, + { + "change_index": 2, + "address_index": 2, + "private": "L4xGz1GYKE9jNgeQc74Jx1a73J73ckyZDL1CdkkHyebASiawKFuF", + "public": + "04aa18377e544a36789f0ca59f59da58b00dcf55d5337218f66c58c2705177ff80da26a08c12cde5e498b4ad812a1a6ff37eeb381fcab106e1c624fe14cf49e19a", + "address": "bc1qhuv8mkwnqvn5w39dc39xq8clra8j9mh22hmzd9" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KyYkrndh4TzQge7rtMJgShHc3yNsruuzM46KvqaERtmjWVeqXQ75", + "public": + "0498f52c82615fea1daf5a9ac527e633c64c7765751e92be50b7aef45feb028860eec4d769a5304d2a2723c1323ade9cb74b029c0ce444b0d14bd2e8607e210ba2", + "address": "bc1qdnq0ju0vk049y567yq0n0qcye3uhzqgrk2zyfn" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L3i3wXq4syWWHggrUcJ9Uz1X4UuxJkEF3z6gEg98VSJWVLeaq5vr", + "public": + "04550b4c1032791cc9b4035bcd70c72613bc2a4ec5ce4ed6ac789fd1bf3c76129ee1c1ff5598c8ff2a62d3240a51a17927cc4a8b6ff08073e9ef28d42b68b65851", + "address": "bc1qf3tde2hhutxp05ld7d0ccq7c8tuavltamae6wq" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KxdoVzUcFYFofikUqjAG4zAstB7KFE3uLAQ5BvMH7s33oWE6CKbJ", + "public": + "044713786cf7efc8f01594709a7807c891f643edc7bb85cafb4c47768f4fa49be2ba5d604823f813c036f0d0fee8508bedf70c524d9364593627cc6abff8514b43", + "address": "bc1qs2cxle6sfj34a08xzcqvutkc3uxk4mku0rw42f" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L15UqrHdeeK4RiU9Mbaan1qmgAycvF8RHDD65xoWRbtoG8YPe3zR", + "public": + "040d038573fd83f96ed1ebfda60cfb25048718845122483f5e9ff03c585218a5a219330d7797036853d6c4f099804befe8187bb6b94385cfa1a1e9294c2d9c3b1c", + "address": "bc1qpnc4lvd2g2jacm0t0mwyy953zadxxcnryx7tfx" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L2sE4RxPqMo2AkYvH9bpKRNDX3MqJiTypnYqmozZVeByWQ5Kemqs", + "public": + "04d8aa657b1fb175f6a71b21ec5aff73c300e76afc5757387a0566be9b07b59d5fc2459abd798a8df20aa2b1db67e11b1b76c730c65401703de2c7a4e3af7cc1f1", + "address": "bc1q4maajdtqqky3lwkvmfazpd4k4xva9ptx6uq9qy" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L41ZRF51LStPZvRYzhT4TNzGMdHB94j5wD86ft11noHEGMzYcVQs", + "public": + "045bbcce7dc668bbbc7dc57703ff0657451287a1b753be985244ec4ee91d43fc32c6dc328d451afbd777517b10407dfffcf6ca66fd59cc1638ddc84ea844faf4d9", + "address": "bc1qspe0v8y9nw0xejuv566hh7rczc77atyn3870vy" + }, + { + "change_index": 3, + "address_index": 4, + "private": "Kxj7sBUCaaZWJDTYHzTcSXbBTkPz6UkdTmUaoe158yNnNGuWXifV", + "public": + "0475b69e5e9ff0445c487b7436ffd91fdfd6703d2c854ae0b13a5660455efc11028e1e0a2fcde76bddea8223aa5140661c273f80072c17add4d45cbbac2a15c816", + "address": "bc1qr5ne58uvr3a3dvn40glmctex4tnt8k9x0y05sx" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L5HbLW8pKrN2JYfinmiC9UgArz9Rb2vJtcYDgW57r6WectoJHEep", + "public": + "04cc2cebd31de93c67358cffab9c52e41ec9e89c9bc745d1236859a81f7178c7ba222df3ed48e72042ee5b54e23f793e38c27b32abf870932bd43e99cadc646caa", + "address": "bc1qa739jkpnyajqtpguvwztsw8thla55v6kurvze6" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L1udRRBq885YWBX5Y7XE9TusWSV5JiaMXoSU5DpQb8pHkMNYEJ2C", + "public": + "04d5007b0ec5376a6b1e0f69f92ee2abb596fe93000bf8a02ecdf5a76f4bc81cdb16b7cab0ba3e7928eceec64acb2514f9d3ff9382415e96952f39efa0555e2062", + "address": "bc1qx0rehk2zc9xg3j267wjdkzuvs7xw6fw9vh2d89" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L3ZNEDiQk1ZfYwheMNwNLt3ZFNpjsJZT3aEtfKevLqs3Utuv43Md", + "public": + "0422a9048d5aca11f74e5a21017202bf3ba7cf47b78df92ca337d2dd823eeabb384f62ff9f5762e1dbcda9dae5800fa91190bdef621e7915c64137311d2390e05f", + "address": "bc1qc38sqp6jensp738tdef7gdelyrqgrupwr9pe47" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L56Q3PftDeevgAgQybraMR6oZGTRAGcKneyBba6rJECtU3S72MhP", + "public": + "044550c45a4a12ac8eabb0585abb203ca0884067caae4f64ba6c684400a53b4db59b3beb44f4ff970d80b5de9be731860825b398a7da7c62a53823b8cd073b06d1", + "address": "bc1qyh97hgleaxrh396kmyqlhve3aasqagu7luskth" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L1jaeihXry5282qGceYkaGm23BvHQJ7AqSNeifWC5nrAJim9zStq", + "public": + "044379bae743ca4eb2149f4b88246c245a4267d8935650037c196a27604973917ee3a00521a88153a7600007bf3e2aa3a5ff9e40fce77cf2d965ff0460eeee2ed9", + "address": "bc1qjljcenaype2gyz74mmnje69lu5wlec2u34fa9k" + } + ] + }, + { + "seed": + "d5e0aa87a96e079a638d7e9c83dbc9566c688b6d4a30cbf115544297137ac26e7bd9bff0b52d35a85f123f27ccb08d94610fd1142b51101eeb47881bfc426630", + "private": "KwRZuWL7mCAXb19LiFTvZCYjHyb3e7TpbDAWMbdLAjUwCigi4YD3", + "public": + "0498f68d6caa9364b7f50b3162bd1b096e027a1dc433d8e4f77731cd45ac5289a5380d9513a3effafcc9ae5014f40a5e41483dde103fb1a1d2be7964a09ce570a3", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "KyHfxwsRNYVqYkvCTCpS41W7tutN5XyP62nNGStRo8GPJ36GT2S6", + "public": + "04138df9fcef16063f2d2c07cfffbdd527e48699c8ccfb8796b231b1777ffac793cb49d06cbe0542409ac527554f30ab43c04643be87cc4213174e26d27cbd1a0d", + "address": "bc1qs0lvf9xpen5xx8wcmhvpjr77spg5zm6hlvj2cc" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KzG3NZEkPvaQWBkMBzH9jxKgeuWoF6sXTHn66Nv5rdnv6Ygrbm23", + "public": + "04923e1180c5bf70ee2864f1dbb393d4a11d83f41becad0dfb1b5aa7869dc07e7e8a29774ec31cd7efee3b682b16610e5a44b20dd48c20d4a55cc7ca639aed10a3", + "address": "bc1qqr7am048w0hqrdmzkx8ts052h4v4p8jnnfgasq" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L4b3SjL5oW3RRp3yGcaAg3n9bD3oswXcaRKBGsuvZcAkCLrWwf27", + "public": + "041c51677abeb7b64152245f26c8c36c135cc5d9bd51e49aecdd2a3f7151aaec11f27401c2fade8cf6962671fbd9ddb85671c255d8202a1997ede2517888a638e8", + "address": "bc1qpqlsd20t0nwsa8czyvu4kwpj4wa3xcac5acjas" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L1Cuq9D7mdALiqMHmQ2ZutCDAaxb7GAJ9jJtdRqeNwEExMQUVzym", + "public": + "046ae1756abc577602fa9583c1bc7426a48ecadcbe7d9adbc6ea73d5f5148b6cc992f59e1beff27e312276269ba0426011ef6da27ec07836fa1da19968549543cc", + "address": "bc1qr7ax0c3nmhllq22kur2c5jnc7283krjqdxmz7h" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L4MSDD1Dus9BqSCP2G2uXWRjGqsrNid7wVcio8YPmn9m8QDRYAZK", + "public": + "04fe76f12a04f4a61b86bcb176ab34256f15212fcc7a7fe5e514aa4f80052eb147efacbeb5df662326a9f6531a3b63dc5a4df54839a7f3f457fcc230b924997d3e", + "address": "bc1qk6w42ks2htg5mly3mannmd4fjxcd9zdwfrqhzc" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KyBkgxq3UnzfXmJ8BiQvQFxtoBidK9VfHYcY5SXE7qVLkqM76uuX", + "public": + "04d7a085d0224f69830e904bfa69572db22726b65f58912399b97bb631a11220879f205f0adf1d3ce443d6627f91456ffa53988ca71e77e5d4f6644753ed4db7c0", + "address": "bc1qje3cpatlk6zzn3yp49hv9fw00pa6mc4s5snujc" + }, + { + "change_index": 1, + "address_index": 1, + "private": "KzDoE7R9FWG4b9bSMQoU1NoWPtvAtHqKAkJJnwaJ46gy3Y9jr5Nj", + "public": + "042b29b197f91e60c938cb253e24d77506afbb3ad753516a093f225b3eac0b33590b036d7185c3b078a1384566d6b2941f6c174b9ded6ebaa8c45714687fbeca11", + "address": "bc1qyex0ha4tknnjaxvtwqtnqqaz9zxtqedtgw8wqh" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L53Nfrx1XpQRgzGKjbEVtWxNEioatLrJu9SoMzByACiWsS5WTfat", + "public": + "04850382c2a4233470d4e74ab62ecaf89d4a111d18e84b3c5fe4d44a4916209a36c321e46a45130e04d745181bd5f0a5aef6383f4f451e82f1ed38419f9369b3f0", + "address": "bc1q6a4dwm2fkh3gm02ggr6pp5dw9kczdjqa2h4m3m" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L2atE4ZknnCPwRTc8BQqVUvgcfKWg6xhVMUP74VskERceYjWXNmD", + "public": + "045f2e1c58ee122bf790e76f15c414a6ffcf63fb35edb2de8842ea63539229b211db63ee11aa57adea0cc91dba1289c17b4740498cc6a6a6fee427660072619f7c", + "address": "bc1qpnnhk3jkrqmkkdaxlvmsp23j0s3kp0jcz4puus" + }, + { + "change_index": 1, + "address_index": 4, + "private": "KzeiufvAymceFPbMQbQDoQcoBAtTjJwihtLAcXDEoAGr7NTADuQo", + "public": + "049dd43f29c941394f367f9c82f30019dc2ce916fa6509dd6d6081806719cbff50883dfb58b6ed723bae3bc51f695b6adece5eee0a383ca9e67d7ac9f526a81dcc", + "address": "bc1qduxh54t6apy7eym60w460tjym8areuxtahcakn" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L5i12wn4gtda3eWmbgw3u9FB3G8wosp1gaCNvRHNoNrogv7KMngH", + "public": + "045761083b704934cc0c8ac2a4eab3e128d45080feb95c355d950546f6bbe2ca3a0c6a623d5e711ca0691405e29d1b1838b8961b717f300166d00789fb6e3ccc8d", + "address": "bc1q2h46lyex3qx4h6rm9hw5njl0l0r3pn0crpkt24" + }, + { + "change_index": 2, + "address_index": 1, + "private": "Ky5za3AVjuwQsvbpjgoaZEZF6Y4tsnjRYztNX9sc3s6iot6tsmtJ", + "public": + "04cbc91aca5b7f262e3c3273bae7fc41f859e62e415c0f1324e0d795636e8867b5e2d20423fb9a5da362f2378ea093cd1ca531282440c11b13c9182ee62e7f6e11", + "address": "bc1qzkfcfdswrtdcfg9w7mnmjp3jufjjjt98gqm7hr" + }, + { + "change_index": 2, + "address_index": 2, + "private": "Kytd2eUskBJWgeixpTsmHn7CcPGCCP6fchg2YvZVkJ5ujvrtVnbQ", + "public": + "046d9f21b6b85d5515f627d03f26fe2e942e6664f75afebc29b0df937170ea02f0c88a23559bc621654c05d2f788d2bb9772741584200e569c3694f321fb2cc49c", + "address": "bc1qxu5ee22g8dv70hp43g0anq02leufqlamsxdlq9" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KzyuCV6AVpmjRhGpecUMxGA2KGAgdZDXKp367646kszRgjevX9mx", + "public": + "0479a86c0173e18f3839a98c66add57f48bc46e202cb1d8d036d5c550c44a02daeca283aa7ff65f94ee7c6878119d59e70f4085efd4da26f9ecc294f92749f2261", + "address": "bc1qrcxlp6ud89vwel5ucx27urvlqfgh927xzyrqug" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L5nE3sujta31rfq3NX1ULZXMd6CwJtLZvN1SrvkoDFo2s5JzYSQa", + "public": + "04da22368cdb78fbbd5c759cb3ffc4a24bac51557e5acfdeaf9d464d762dc60fd13d4c9118a9349967790dd530df02571f61ae2876825039c18ed4bcd81245e0d8", + "address": "bc1qdylpeuprz3qpmx2nzn0jpkydg9wkqkymfejezh" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L3ki5Fdaq1cttrJyPo7hvUFxuUq8Kb9MEKh8EGYnKyhoTMGRkaLr", + "public": + "048ce1b06b9e28454910b35d97e8acfc089a1e9be49ee227d0a00c49c0c2b16007a10905e10bace36a64ba0c19d2515dc00b786a634e478206688e3d8fa037d65d", + "address": "bc1qw50pff52gmvxfp0c4pd9d98l5qs6r9l3eea2ks" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KwqR4CA5gmndUJNZ3M6GvG86yXc8Dt9Xi7UR1Z4ZsWzBg6MVmeBM", + "public": + "041cbc5ff539d36fc7b05ebaa5117c9acb37dae187e31ff9ae2b51216e80bf7c9003c3aa7d7bf5ef66b65ebb79af0e9b811b3ae288027b00755ec63053843caae6", + "address": "bc1qduxcj5nzgpcu6t8ae00u5fw07pp9k4zqumvyk5" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L3s5SAys8GNG4LDzg4Gjx8MVEgQHYd9gZZb8QYGpfyLkqaLXK1Nt", + "public": + "04dee8afdf83a599fbf30c93037e52ad4cc0735b5cdf3632488f7ed5f2d0dcb65a6ffe37c46f8aade7696c7925fd8a41c834b2a146cb3723ffc9a49a2179cbe6a1", + "address": "bc1q3xnw95lqjmmkp7eeet09lddjkjglnxu7gms967" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L3azgSmpZ5EHHMqFKxSg14ezGJEXiXixBWgKrgNeHPZkjQWesgMi", + "public": + "04c5ea57211c6d28af808dcf3d05b33ba89e0315e53a1d1f1bcd060e48fcc6a5265b0c5f7a44ee0f3b1e2b599c86a4fc84e58a15ed295c7b4f9f35868194387043", + "address": "bc1qj2rjvtutt6uq0sa8qtfpf80vz4aluckme2m2cf" + }, + { + "change_index": 3, + "address_index": 4, + "private": "Kz9SFehSC6EDt5JCojZjwLwAMKVd21Ne7fxMfsFMja4jZyiF7vHv", + "public": + "040ecba7a8cc05fa699ec8dcc62f3e3a0dc9a79e25f88db88ce74c53cd14b40b86deca0a9da0c280a644aa294ff957d720e7314d971d527185c086136aec35453b", + "address": "bc1qq5rf8h27k8zn49d3wdsla9l64evhw9jxk39apz" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KyTgor3quAXXhtXYis4ve4h6vivetEKCHxYD9Y6tgCHkQbX663SH", + "public": + "0444c4b79256b60e8e234b043631eb4f54c739bed8ea7859f076b3cb8710e816e3bc2d9dfebf2bc1d4666d46744f41e28cc12f94e1499f4bc31dd19db72f9416d9", + "address": "bc1q2ah700lykeyttzu9l6azqk5s7cwnt0f4466h52" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L5P96Dgvfsaw2RP2zeaw497eMYuexUUvhx6fWp8UoqcxsRATxgai", + "public": + "045d5d3e8dcfc746241469b61632a177add52a2969cab2716146346b142385247d2ad40bfd0d71108e5bb070500d139db7d827c981c50c8a68a7c83008f3f7b560", + "address": "bc1qmeu5349n0xxsjvwel398nay94hlam8wex6qv2h" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L4pKfvDQK4bGnjovw1HTSj2KW17sPzU89yoVsTWjY3tD6YpPc6Tu", + "public": + "042cc1b416864695be7fea5d13638d4180bbfc7d097cb37e2ac188b7c9429e74a2b23cf5b12944ab367d329d50a84edd506eeb7bce0d19dfc67b706e001f401954", + "address": "bc1qe9xwnqjj8wrs3a7qzzywj5tkevz8l0c59n9mak" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L5Wx2L2Mj9qNFdTonqwfSrdyW8jrSLBTW3usrq9tUqp5NuvZzLXR", + "public": + "0426deaf5274705838c1ef4b6ffd497c0318204733d6d3910d0ba719606c1e0fdd604bf4e57ddfbcb669373d9a0a8c8c2fb74b01d20dae81ace557d2600a8fddc2", + "address": "bc1quhpnd08h5zx8hl356z3l0er3lux7rx2935c45t" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KwzKVCdEi4KGi4sNdPZYAEUX2Z7ZZc1zUbbj4JpG5QEBgRizu4FN", + "public": + "0481204c140f41ba13154c941b6460421593a8ce35de6594e72a9c8269f6adda94e9db6c16c334b73ecc96d2091582fbadaf71e05d111251ccdea9dad41234cc81", + "address": "bc1q7m5vcmpf0v90feput50gp98usktandydwz7xr4" + } + ] + }, + { + "seed": + "fbc88f50c2c4c7711015bf90e5714353da5d2b98678c5a4500e6084a9fb3a1c34a9a66565aa506ceaa27c9e17ec207f646215f2e64cf98c03fb1b32a96c247db", + "private": "KyJz9QSjDNzB34ZNNfbHYjXaqqMB7ircFz1k9AXMsSSrBKiPBmQJ", + "public": + "049672e9a9b6d1a895f8dd13e42a6cf0a6655da5aaea6e290973eb873c8262698306f2791f6ee22ee0e8ee586f647c2c8384801df51d342c05aeeb0b63797bc5e7", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "KymmcvHGyjzs4eLigMq2Nh8XLUBJXYpmy3zHhQQMoXKZQvAR5pYP", + "public": + "044052656c1942f49f27fb02bafb183f5ef5e0db2f157483e879e9b079a8108c2d3402b233bdba726cf315652163d1e052ce0a22ab82dc53d45e8a65b63c15847b", + "address": "bc1qjtepwqq44qwklgs0vrp6vun7ng3p73afj3hk3p" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KzzSw6j1yXajeZWg88Cs7iRVi76MJz3UCrEtDTYQPcviGNd7yLFd", + "public": + "0409cac2044dcb4d9b2bc5dde1c480e1269b02434631cb76fcc1b0bdb77275eebf52eef59907303f1f450793cb03de322a06fad8bea77db18db986138497e9fa5d", + "address": "bc1qgp4mvyz2tux2je9r6xtndrtmyh833kjs9l7w8u" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KzpcbigBcAAyauY6aJWhytZPVeSc4b2o632qcfbJabocDphrgjfv", + "public": + "04aa3d8fe7b2ddc243bcf2028c5b39c2a8ab8728d1a7c8b20176a659de96a187eb7e81cbc134f99aa74f0732d41573d458b7c9c9db7868083dd37bf7cd3f85de23", + "address": "bc1qeas2ch8mr80j3x4qfaslz692ng3qavmk3u24u0" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L3oZE3axkvmygk1oc7DLFRJihHLuRZp9TffSZ6uqGBX3KPQYLfRR", + "public": + "0421f7c5c5046488627a5de3194c92d7a3373ff8db77a9b59b9f13b3df8309a238526a27445f3da6eedc37d270a946fa9bdaa4bebd072058cfd69b581f3fd43278", + "address": "bc1qufuv8lxg7slav9uvnllx5gkwnm7glunhs406fp" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L4DSmmbihwYvC95soFFG8FZgKvdU6G1fJJGZZMGLr1REzmNHK7rn", + "public": + "042250b37c7fcf1008e83183ec04fe39624d16285ed9ee4016b7ce3fd08c4db49afc349fe51c80c099d3aedf5217bc8f84446ec659d16e71b48835e2de1e98dbcf", + "address": "bc1qr5q7pmffxj5ev0yuwjs4k7y4wwljfv4geqvmgd" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L53zeqMw6tRsk2xj9bM98mpv2BEHWv11Aojp9vgXNiMCM7DNpJqV", + "public": + "04d62ba2d9441ad3902ba36cba9a0b03f471c3e06e6473cec646039c145f7d3c6fac87a5c574b903e5e10ae839ad21e7bd3f84e721658fa49f8504d098aee0ccc1", + "address": "bc1q4qavkwl5ssjzy7ew40xwtjsldtxvcusa058fqn" + }, + { + "change_index": 1, + "address_index": 1, + "private": "KwXhV7ErwWWpENrSw1UMLCyGS8mYQEVLE1SmYDxMthQrUHw6zKuu", + "public": + "0471cf08e604512382b57d6c89d1048592557553982961c67e44ae9461507d64ad13939f9f7815c33e6a2dbeae347464386f48b20287cd1b73a1d50db654584e73", + "address": "bc1q2ddhsu75mgg254t824c27jmnk9m5x7e09v92p8" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KyoCBSW6aRTHaVWDs78YCE7Nzf8KVfEriknWxdF8HGfWNrhhjB3u", + "public": + "0451b8717a5200ffd86105c92803e8c41b242c51a44425e9555ef8fb06ce394589129c6997e640cc3c51d108b6016986a82371061419d2efda3b8db0ea12cd97e0", + "address": "bc1qmjl7y43ndqny5skhh86ezflwum0wup5w0usdf5" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KyBLyRA9JQBpuDGxNAcz7Nqks4irFmm3bMfPT6dzaGGdCP6g5ETY", + "public": + "04d07125c6b0835fbc42587c438e24e8272610887ef66d4f894afd59a554fc30fc42d88f942ec0ece1d4fd0495864d2e8c852d48d1ab4189d4637da0b9949d7794", + "address": "bc1qg5lj4rd9w8p7e0jjqpnkjthm56emjl0r5gpure" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L4GzrNDNgEdmmUBWG9F69AZtLWQEGmKCD3a2bMN5oLbHkhSV8QEP", + "public": + "04a355bca79573ff13b8274e838fffbf8d813a963b337d1e783d8745b72cf5fc7d80a6aa213a60ea2801ff702bac2f983161fa93954f033d0189ec66652a7d6ff0", + "address": "bc1qj76adpjkr4dqwkzy2eejkdkzmtwweucd66e2gz" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KyeaGDG5nW6axqGDURyQ2PBQaJeiqFi1TDBYht3mYc1y9UyEMHHT", + "public": + "04369e35f2739c78b087603b4f15f240b896d294654f71aa4ef2c5da1c2b3be4ae8719ead100d76803da607b61b14dac399e622b93fe07d956867b6aa90b2d6e07", + "address": "bc1qqtym0f7w72qzect3tykrqky57apvjy9dexafq9" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L5YhDqHq9vCVgfsPnPMmNmmMrQRtXbRXDEjf8ErWFyMeNoc7Rkin", + "public": + "04ba4943371993bd1192821e6c4c2608ae67794f6e96379e5bd01eaa41e1ace9a15828a20134922e73272ce465f76eb3793d374adca4a2f256ad7d0fa17b0ae121", + "address": "bc1qscjje86xghjwqf66cun540g9gmk729tlqz8zvm" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KzgMwC78n9vJr9sdUHfgxfyJi7ri1BkL7ygPDU6CXNfXZ5XwNVpN", + "public": + "04959be1ea70a0fb560dd1b3b3266b5e582814dd9538d2f18b273117df9d1c00c5bf22d3b81035f1d3c1aebbcfd7671ef5a23115b1df5bb71cc303d995e9f3eab0", + "address": "bc1qyd7jq7u24utjvljvxrq6cjml75uqrn866frgrj" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L14RmrZDb3GqokCYtK35qufdkxsv7Maz9E5JBCvkwKMuDePRVG2n", + "public": + "04594662754657f9c926b3e757d9deca8946001cbbde04b880ab1be12909f2f3bb6a1c7c8172c3fc10ae09c5dd6f9aa7208aa7e5b38de526206f7d563a087c651f", + "address": "bc1q8cygqj6lxpwksqe0vxfe407h6u7wl9r828zxjn" + }, + { + "change_index": 2, + "address_index": 4, + "private": "KxL9h3z1EE73x4KH2PBxdQ1RypV8dwJzd4VxKKPMRxFEivMxTGRh", + "public": + "049737ddadb2edfbdff377fbc48d352fa033699f9d3f4a86f37c801cf1acd95b1ad3558d6bbebd78abb64d780515b84a4da466ce580f26af297c6500cc78e8f834", + "address": "bc1q0gkrl3e2pwswfmfaqym06d0ls84g2zcwp9sl5g" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L3wUyeuKc7DTVCbmYuSjDqLXJt7kmbFwTP972dDfceoLyiKT2zZT", + "public": + "041ed83e1f4532df63bf9d396f5584ad6e9327cb811bff8e0c1b0bc96f6207d80e97d950875643d2e84d9381b1b788a6e37676355a550c9789094c54604d13a71e", + "address": "bc1q3uxfqqe0626cu4ylnx9670g0u8xfhjtwkm9g7m" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KyHRj24ypDyCpuZuNwWRjaP2dH6P678UdJdmiiKiYP6DnLt8PtGu", + "public": + "042dcdd50b1a5b8a2c815a42e2f0a689e5baf798fba4662fa4f3342990dcc81b000cb3a0f5a66cc140b641d0d69b9c9454c4b4fb0ed6d9d53893a65f403dde3b82", + "address": "bc1qf38pjzdrd4rvk6r9gus06htvftasn0gmxnk3k8" + }, + { + "change_index": 3, + "address_index": 2, + "private": "Ky5k5PgHwihfGbwHRbyWmvffrkWGg2GzvYWXhN19n1GBGsZUhdwa", + "public": + "045f5fd2700cf884cf37c701f61058173182a62c3e1ac4659579890880aca5cde4ebdd187505c3135f59e91959b622df80044d0de6886b65fec6f3b790f38b33de", + "address": "bc1qcwm2rwxxy7ny6uh8fjl84a8udhnhql9h7vxkx4" + }, + { + "change_index": 3, + "address_index": 3, + "private": "KzoHtmdMKvgyjvkB8Lo9fYUXPFip3G7PtxZNHPr8piTYvSrDNpd8", + "public": + "04279c92806202279d5a517e36241729dd42dae7dc23cbf3327cb569a40c1e6fec5d99818264a51404f330223e5bf4cbf7969cea57e26a2a33c20677892afc70fc", + "address": "bc1qcyxnyd6lxx4xqrg8s8rmsusz6jqhtru8caps98" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KzLCnLARG7EGvSZZPvwF4D691XC4MAiWWSrdyQs7VQHY2aqM7jsb", + "public": + "047c022c584e81bd542c141a7005331f88bbbbee3a8d0335a5c104977a2a9ac49043795b9a572590332da41caa5f191c3d0552c5208d3becb5237360a8cbe16a93", + "address": "bc1qw5pawylj200mgkv74jr72s7uzzs0ghmmtczfk6" + }, + { + "change_index": 4, + "address_index": 0, + "private": "Kx3oZYVpadzemGVbvjnnznbM9e4ZTnpjWLkyg3UDF7nSwsNPf3gm", + "public": + "04198c6831e2d566c47211bfb076d81df0c3e530e089cd33bb8c70fdb70abc0c40ddd0b7e6e9e4848801b9439335c2baa536348f850d7d664e477899982046a3bf", + "address": "bc1q9tymtc48dddqx7xmsutptatcm3r96gz7en8uc9" + }, + { + "change_index": 4, + "address_index": 1, + "private": "Kx3FepLM98QCnLjAnE6XRSDBANaRcCc6ef6VgFBgis24riHaRdjo", + "public": + "0419aa0b7e1537c2b395f7e0514d84174acbaf68d4f292c440a262a221720ea1c35323f864f120e69c06edd16a5d1b240589677ca0d7d4cd884d11ccfec54d9b11", + "address": "bc1q8seww8z086h6nt25r2p65yuxsx4e5a38avy8wn" + }, + { + "change_index": 4, + "address_index": 2, + "private": "Kxpd4HHLvmbGLEXwBR3nVD5XRiWH86a4Bqg6QDT2EF5KZXjDw3GH", + "public": + "04e99552e33c709eee3f48f2a21e2faae30cecc9d97ead5babf48927050bdea2a3aaff73444c17001728a730c899485807518a189997a2b363877e3beac1330879", + "address": "bc1qe0qs3y0afzlfnh9ey5vzusrrh2t4km65d72xt7" + }, + { + "change_index": 4, + "address_index": 3, + "private": "Kx9fNeMD1vXeUeqmyBx1gNxuHazki7zCcESPXtH72Uq99rk5YaUZ", + "public": + "04ae473f1fc086ff65f8d4b46af5a1d476b52e03c52fbb2e150eb9468f083cd781cba5a4ca3d7567b8aeaf5737b752d801de19375dd223dc20bf4d4c90899b7172", + "address": "bc1qpu8628gxn9qvsrspyu9n9lxv58ltfyr8vu3ezm" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L4GCC5uYR2o57e7kU74iTADWWbay3x654jqRvxkpGDUbymsaN5F6", + "public": + "047ed99bbc9093afd4b3c0960ad799909c136bc64ad678e8a3a6804334d64c9f776d13493912c8c0ba3930a6b16e9c6a70be0ce498c99b980372b49b31754b02d6", + "address": "bc1q39pq74azgjqmjmttvvtvztlnxhmncak32c2zex" + } + ] + }, + { + "seed": + "ecc737f6ae7b4ccf8eb325e35168691cf65b9d6d54409c01b6d82a33c720e5af2c4eeafdc5dc04d9e8240f79e53db8b150e895063bce721fabffb37b1ca133d6", + "private": "KzccQRdhkhfuqGXaYCyBz2LJtDySSMEvv1p5voEWw1tGCYk6qNRk", + "public": + "0486ea4e053ff7c9c8870d0764cb371ef94b74b3747576045e0694bfa2acc96bacd559ff9597ff9e30c8d6c92d7b3d6ec4343a82fed21a59efb557be74e1b7e1a7", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4WbZZ2eCjLbhccPbRTM1tH4AAKGDU5DVLntBcAZjzFA1RrFsAap", + "public": + "044de23a3cccb45d0af365cf8cfb2c107736726383ccb41e3001569fae1c5141d76ccf0c4ecfa0f0b02d075fbdd6db46d4b1f0469738973c8c9138d81a91159746", + "address": "bc1q38g8v67z0psgf4dsyt8lza35fklcndlt3esr7c" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L3VHTgHXzCVEe8eNYzxDUzgAcC1ehsWjsN7LvjR7qf1WVAEXYjap", + "public": + "04a35e28a83c76bca3be7d8a479aca352515f8e8e3b178a00245261896203a8d92204d3244120e83710066f2f74cc70d12b7a2394d5bb691292da26b55d4e7de59", + "address": "bc1qpuf00v9xrsh2pnxsn2ja9equr0lpureqtdjx3n" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KxpMYwTyNcoe43SGCzozRN1nKPmvbNfZqbztHEVkQUhsxosCVz9Z", + "public": + "04b49f13e085cde943ca21362b3c55c3e532e57feef31d59f47718f694eccf1c49d22e87dacee9058c3625a53e68a4f2cd980363fbac397fb8a838e53cb099469b", + "address": "bc1qjtcjx5gn229mqns9k0txumzzf5wgzuqnhgn3zq" + }, + { + "change_index": 0, + "address_index": 3, + "private": "KyvkdpvYLkvXkALch8uE8es9Fnua3tXHq1Pv7rweL28zmJuiaJwM", + "public": + "04d70574faf53c93a493c65a9e0a509b8bdd1c8588e85c5b2e90e7cf57806f3082999f85967588890276e3c2b86ff23260f28b0ca0d2d73ef4864fa7a76019dab9", + "address": "bc1qyxx9pugg6mlmy3k3p5xax7vpq9pkx5pelln2s5" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L5GgXmmotAzs6LB9PwijS89HViR4fFVDWdxJQwSWQsFzbz113wAC", + "public": + "04e29e61962a0907c735aac3eef6351a6292ad7d3af13043f535fbb04dac91b5655938b5adf2049b838e7f298b59d81c42d61153184a344ac96aef414eae1c8536", + "address": "bc1q2t396ym5y2y4f4rpesrgfyu4p2vzv7h0yer0sl" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L2YUEPBFfTiSyZcf8NfCS66nb4Pzio2bzdDwgRAPpyJxBHoRtcu8", + "public": + "0447ec3cfa6080d912777108ebb439f6de45fb8a27953cfc90896dff63475faaf25f45a1c06f43570e56124db5dc9563b2c39eaf99975745aedeb87836cf456262", + "address": "bc1qaz4ncyyvdm3s73wa04j5xcuexkc5gmje89cdsd" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L2Vq25n2WNx3fHiwb2vuCDG8R5K3TTFeadU2Wcd4VAojbbP8MJAp", + "public": + "040d496fe2f46a4d04c20a80db70edb036127ffa50629acebe514128ad0f0123237adb2e87f00076646f8d2c50d4a7cf4900fe7d6cb1d9926bd7788c4157475190", + "address": "bc1q0jgzul2t3yzn3800a2uzel5vl8z4yyk3fgvxtu" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L1B1voHxKj94Wn7cf565usCN1iJGnFtVLfGYeMAkZZyZM8eGcsSJ", + "public": + "046422f1df37ab1e51336dce242a0b3b0c54b97145d5f6ba739c9250ff3d04daa72dd012491666eade265b4018e5855e4384141c900bb294bbc0ee981c44c4b446", + "address": "bc1qqmk2cw4ssvjgp85ayxq4qf8cf9yykfkur6srr2" + }, + { + "change_index": 1, + "address_index": 3, + "private": "Kyc5n5bNmNSpFNa46MJ9NP2witWx4y9GXkWtqUdEn3oyWjfucheb", + "public": + "045acebbecd2dde31d0b0d9be57364c34aef4af462c0c07455fc44af88ab798145cedf80f9ea71756d13a4eafce8e87fac6cef9e09545009239bb3c307ba097937", + "address": "bc1qlrwxynmpwp3apr4uwhs8839w3426hflktemxxd" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L5W8AEVUnth5v33jZzZHWnE6o4gVBcEujU34za9BthyhoQMCCeWm", + "public": + "04fb99cbd6341a1ee9e630ab3299c9ee99e2faaabfddae7511335a32425f1fade25dc90c36cf7bf922216d7918c095b3fa4c21dfcc4ddeb74033ae6616dddd056e", + "address": "bc1qazmwp8clvax0nj5vwmankpvpslvg096je2dxfe" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L4hzGdK3EXM166zkLop6VotGRB6Z5B88M2hxGaoKgZbnLhyymAVp", + "public": + "04e41924829b0d216e894731576ceed6f48d0d1594c2285435b0bf66a614cee41e6192ac5021b7914c8c388596519878c3a829887b3d5b08b28adb7e20d60195cb", + "address": "bc1qvxffe3wk642m2nwgranq25w9l7z4wk4tk5j8qc" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L1ktbPCygMGobtzBby2jALXtuiU47P65CNXctfbgwotVw2jVUYSy", + "public": + "04be8e9c2cd257f1f4a41799ca86d45ccaf8aae10f7aeac5d6e9ab939bf117e0ee54469fdc87e4cc318d6b2323de35e9ffd3357da8fca56eef1d94df5120e213c8", + "address": "bc1qzud3rmg5cavc7td90xfxh3ewf57lpthqdcej70" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KzDw7ST1SQZ55t9RWMZ936kXgvsHmyUtqnkpYneD76gc8LQSzuUT", + "public": + "0483b6580651f3222c0a44f7660323555162979cdbc3fb5eea4db430dc8f3f6c07d199165decbef23f199d6b63c19714d5755dbfda8584af3a10deae844e090ef6", + "address": "bc1q3zd25enkqzcgpv4anma5dj7r0knwtufe2z8pus" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KwT3jhSMKgQU5GGBrb6i4QjZhJtt1V2kGakmJHCBDnSJxH7RHzYv", + "public": + "0445eb9d069a51d1fb2b4ff1024a234ec246a00b21251106b64e244ee77944a218f3c900fdbcdb279e26a2f5ec9db7adb49bbb0529c6be2f6b006859c2e90f734c", + "address": "bc1qm9v8vj3r0m5yrkq5fcnw9tmh4d98wh0l9s6gf8" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L1mhT1xpTyf35zZ7NgbwRZLincqAnyEtH2tZtTempADuvuPjqedM", + "public": + "04e019112e81356f5930d3d1b1f258c1dce698528095aa5887174bf0462e016102be9424d5fb4c6b11e5c31dab859e5b0706aa4513846640063c51c6f452b5e7d0", + "address": "bc1q4gkmmzwnukv7cqdkad7z0py50l4caxg7d3hqwf" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KzkieXPSMCpUDGb1xhGz6hKhNywKDa76cPezUajT4ZpRG7BNAkfe", + "public": + "045293f29be16a672638d54df1c42997ff1cc85c606ec11d2e051a46b43a06bca06b8c75495e9d49f74740cd131cf2622cdcba4bce5b1dddf605a2c1424bc7d3a5", + "address": "bc1qgpr4mwgvcm2vu5dgnfdq6ltv42289tfd39we6r" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L36HhMiRFKtHkV4xHDzYES1z4M4tZGGw5CpempcXPZigkqJm2oAg", + "public": + "0498e2a92d9da90c6e6a437921931021e4d7dc0729807e40584be66ce980a27d53986ba11ba620510b5aff82a6f98230fea6d93e1db663dd3e57edb8c56b8cd8e9", + "address": "bc1qfn3pafvqp4jc2muh3yhthkzgmuva0w3zmfk4w9" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L3crF3rbPqirXgLnhoJrSEabKhjyMyiHnpuxzuq8oH8PR6QmFH7W", + "public": + "04feb0f4619132fa1dfd73a80de6344f5e8b8b2ff2ad1a3e0a2d8e20eb13b93d2a338dbc35cb0a0ba9113a199ecb7a2f9982b927e6318ec9002e6785932e91357e", + "address": "bc1q53plfqa6933vg7m2gw2rz20pzlzg6a85spxyu6" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L3UzcdkNBoGrtp19Kp8NwGaHzEyn4Wh5YFuKwifuosm99kRwRsc4", + "public": + "04f1e34544b5021f91436b0964b275f9c189a2726b9fcde61f31df3627a5f776ab2f0c7a3a7794786e8eaa69622d933df06e6898caba1777f3739486c394793c09", + "address": "bc1qctpnf58xpjvl29wm7ujvfnaeyejaxmwqnznel9" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KxGNayMvaYrnYdjvQtyyBfRzxrjTofEKmahNGGjsCuaNKr31hGJF", + "public": + "04a582599cafc541e040b505f837530f75235b585fa8843308ccfe3195596edd3a21958efa90a6f8be4bf6a3f9446f3786dac022d82acf96842507271ef8ec985c", + "address": "bc1qxvmd4sqaayxqltdelw2f3jgdyjf225pwtmey70" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L21HbNRiYKxfVNMkSuVdMuCfDB2ux4JhkpYYDUhmzSVMNfUz8WyK", + "public": + "04ee2e89866017eccc90551aadc2e8e51ad707a2bbc60cf65b71c3bc1eaed8ef8ccfd23e082cf0e6d20f16249dd30f878f1abe2e38be56da96260b1dcec197cc90", + "address": "bc1qe82kxndgneevkrtud4x0thwe2tlxt7mdsmcya4" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L4UqqdjXzmZS3UFjXHEZ6d8NBDY5b9YKXmjMpL2Eyjq8fAYEroUQ", + "public": + "046f192b754ad8146e666e5fb2dacff2a899c9eb090b6562df8c67d133ae7b23e50ed5fe2a2e5e231c274d595402815f88eac2296e6d5b10082db99672c07701bb", + "address": "bc1qn6n3ra9e77e79p44alsldsxx724cm5esfr7ccm" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KzG6qanXbZC3w3KMUjsBmX82bWMDYJ6hCasvJdb7ListJ924mRtn", + "public": + "040fc8b98f02103f1850a777bfdafd6007394cec9973ccfa2d69c2d1e7a90852856dcca75a62b6d3e9f1edaada09cf608dfa0fc14e608de7bec02be489cf837ff6", + "address": "bc1qyajqmxrtk8vazc2667ldydklgk7rr6z3gjdc3c" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KyfvwuyytvdsAKLyoxhHtNMn94y8aKyxuECEBeLY2opXJ8PNFHAF", + "public": + "04c267f896853e5ee6883514de82b9166359eb71094df966e0941f0ad08229819851f63a8859aa63e21123e287220daca56d7cd2b758d099574e49ca3b6a452fab", + "address": "bc1q4en4s9544lqvu2ruhegw59jp3pxvyfey2yvc76" + }, + { + "change_index": 4, + "address_index": 4, + "private": "Ky7Ds8AZoPSkSBxrcTScDvXmF8KpgiSXP4Vao8cqyER8zRSwLWfw", + "public": + "04362e2c9536ecebf1225c817497eb917e79e5ff31a4bfc7a8fa9a98b28437a38d2e536d2e64b9b8c64c1e7dd7b55ea6033e2d9af17af236423b9d4bd28b88f688", + "address": "bc1qqc8rl0hmen9yyv0rsut7x6z39tg2gw3zk28evg" + } + ] + }, + { + "seed": + "1879d09b3a8ff0f84bf55aab92acae24455b17e38e2ddeb53a105728d9c4338f681b5ad9bb125793e5048fe2d5a102a581b89452991e08d25f2c0127fbc92168", + "private": "KwdZ5fE8rEeHxFkDED1wpjXGpkK62BFf5Yxvzg3HMSHSh4XrY6r1", + "public": + "040346f3106c2ff470db2f0272b9d0417626e2fd8d6aedc9f54c900dbb6f858eada0ad6b1d0f8821c8b86da2ddb8f8bdd7b661cea0531718ef0bc33ec9a455fb0c", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "KyQh53WWx4VN53qHZcEdJt2q36veYoQPwSEHsagpUQge2xZe3eix", + "public": + "04b8957f3426c0c9e27150d69f6a4ebe99eaa505620c1870da5046a6f186edab422cc322d19e6ccdf13a077ea23dd9a789f21e1d6a3ea1257adc6400079a47f5df", + "address": "bc1qqm2jfdkdj3uz43sekrev48fh42gqevyngw0sah" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KzjCcvrGY3Mo2WdkJut3grB51g2qayJJ27b6fScvfXh4E8Pqpo3z", + "public": + "04e437e8d6c13775220ef507b9689fc937e5b43a165bf8f2984841144e06ca9772e34fa468c273fbff9e9892dbe91bfd8ffe83ca4211e9c2d9618fe9d8065777da", + "address": "bc1q0fyjlv4u9r2klj5lwwppksn4hc55k3nqv9y4hr" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L4YcutgYZJpmJ2ZKjqmGDpCoByjwY4zxsbKkbgQnuaoLJwA4rW9P", + "public": + "04e6642aec55fc0903c2b3d75ee337378b60ff93fca79ccbf4184a54abe85db775e645228b7acf3e40c9f07a8bc5597480efb6627acd137e18d7e19ad9fe3a7542", + "address": "bc1q9zt6c6rrxk8k2yzv0dzuww0vss6q8n0uda2md7" + }, + { + "change_index": 0, + "address_index": 3, + "private": "KwHTSPXWc9EfyynZGWo28v8VdUtSsuVF2mLFuYt1cKm3JMXGDUJu", + "public": + "0481cbc1b5800b68339d80ac986c8891b234cfc9a9e5e1a8d05615d86c059921949095c2fd29ad58ad2e2063bf37e66a0305e04b6660eecebacb96224ac779c7b7", + "address": "bc1q6wd6ka666u6ncyfs9rqhr6r0z35qpsjrrptscu" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L5SHJ7zeheE81Sq9k12r1aAF46stjQCw6je3yQb3c3UwR78HBh5m", + "public": + "04f2ab35dcc205d621bd5d360d4e81967f0f09f0ddbfb5810366dd6bb628e66cd4013e3a60921ad16066ef6d7d9384e78eadbc771fbfbd1f85ffd6c57e80183cac", + "address": "bc1q5265n5mfn6na3tt3ylsrtdfcl6eyp9wkjtkahj" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KyEgPkJvHV8jRwhpDpLoeqiAyBaZwZtGK27quZxD3ZofzwgbasY2", + "public": + "04b979066189b1a78a12a936bdbe7286600b995402e71f8f2841eb0af04c9869907eea4681fd6f24de01212605ae3811a2fed91431da91b2a0c314b7ff299d9021", + "address": "bc1qz5v56ywnz5nyxck2zrjwyav9gv0xglg6xlma2j" + }, + { + "change_index": 1, + "address_index": 1, + "private": "KyFpKnfPdT8WEqYwNg8L573Aea1HEXmEKKPrj5rejzwAUanJ85gu", + "public": + "043e538bf5eb4a802a7930677c3d1150d952f1b306727bbf179b5943d9d10dcd016fb1bd32044deda8928e2f54014ba55c05bbf87132f84e71de535338382c5c8c", + "address": "bc1qn443r587lm30e22ps3s0hh4awqwmxr4j7kefqt" + }, + { + "change_index": 1, + "address_index": 2, + "private": "Ky2bNCXBn2bu8tUuFk8iuhdGrw2kH11McgCWqfBRK8JTCeLCFcey", + "public": + "04f51dc149d92afaf1cb2c49ba11cc456357c1a103667b5b7979854774f2329185544db72239aa3a592af9f682cd82f4ca0f9af308cdc9880dda5520e83750cacc", + "address": "bc1qdskmjccl7y5qshdhw3etjm46f56ne5z3k7kv43" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KyC5yPy8hVfft2WG6PtPV2WrS7bLEM9rhipkXRwVt23BMEHyM2ck", + "public": + "040e0ff5db988a7a96901fd6785e53a46265ac201288c3067317884b4850496ee543a1dacb9e6c16aa01c78d0d15353378b675d3bf8df3e029bcaefc1d891aab42", + "address": "bc1q3z542grafv6nrzxng94s4zgypufwhagmsdxvgy" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L5ahVPyJYBFpNNhSZTbSRz5mW3V8DkrGnWAVU2UnG4hgLunEeDxe", + "public": + "04e32cc57225f798bc696a7a21a14396ed87c29a797e480c02a710bad4cf6a34eefb3a7c15071e277429b1dd2201cfc3d4e85bb54846999cb784d90e972c277308", + "address": "bc1qx35k6tepwpxmfutsz9gfpveyw3mj342ax9wqp3" + }, + { + "change_index": 2, + "address_index": 0, + "private": "Kx8VC4Dk8XVc3n76ivp4drAxoqyvSmycoJbkL5tv1gnc4CYFw11c", + "public": + "049dcb45f3ded37d6dd63230fe4cbbc131aba6fc804c4b3660c7e347d95627c4c93b34fa559dc86437e6fa154b4965d3fb8a1249d812f102e4c9e473a73a952fa1", + "address": "bc1qw9g0sv50kyjyuvy9jty056s6hzts0pmhtrncxn" + }, + { + "change_index": 2, + "address_index": 1, + "private": "Kxsf1L2p6duZRJxPiHqaKiHjkY5ZAyKw7FEY2Z2nuLHi9sg24EVg", + "public": + "04c6379095350d37a32e82d96d2f945a7042b85a99f670d9463bea9cae3403ed2627d289b7a2c77c4cd8ee685412bcd1e5e9434604717be33cbceff4119ab04c29", + "address": "bc1qwcsmka4nyhhnz4sugym9n38ljnc64v658dtcxh" + }, + { + "change_index": 2, + "address_index": 2, + "private": "Ky8vE5uQmKneeht7ix6cg69c1gYkGgRqr8BvXKn1g9csThfGSFkc", + "public": + "04d39190dbfda0e6af452b86c4df94510a9aaa63b59268549d5d19a3ebfbc771d5c9f875ed1b178d0b58b4832c0e8223fce7febd6b618d5a9cd6b7a5cbd983334a", + "address": "bc1q68chhd495cftrkv7uvcget9h9549ks9nvysrfj" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L3sA9aEmxzn9x2YtKexcq8pySeZVs5yk4wWQUuj2NZYJTy3GGuUt", + "public": + "0417bfa4b946975ec6ef9ca600942f6ec311f36fd1bc24171a59ebbedfc5b92b0d1ec6b757fdd8ce5684cf883dec8e3c6f73fb7b5e8b8c276d92cc242725ac5477", + "address": "bc1ql56srmsjugmstgeqm68xntqs9xtp9flut0rm43" + }, + { + "change_index": 2, + "address_index": 4, + "private": "KxVmt1RoBedGH4nqJDKN12nDcqqmAQtaB1yjQDWp8pA7PqYkKMBb", + "public": + "04f738dbcf5f16ed1f9228d366e782a2bddc844434be41c3e07e9280ca45230cfd6f72f663ce852bfd9a2b9d49f3a9f913022413a98e668fbec7d7faba054afee7", + "address": "bc1q33w2ucfnnnyyh3dl4764r6h40395wn9srwh4m6" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L5SCeVqQyUSPVnX92SArysph7nvBJL3jri5EKCckK84W8hjNyhmM", + "public": + "04a39e91b6558cd34f5e5153e9a3cde34b1dd910848531bf5dd38f659d43ec9d533bb5aaf5ac37367ba960f355421c5b56d482186a8d35b48c37c17d781e9e394b", + "address": "bc1qwqz0rhratfamve3448v756sh75axua74xcpaxr" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L1L2Abusit7YXkQ6BSqmdy4nJvSv4jGdqfHobXiRqWk3YxWR7dnD", + "public": + "04732498c804506c9d778ba2d37ce32abf1a6fd6390b7ab37fdeb8d8ee7e15f2a7b922353dcc503065c6544f1ed385776c5a0d371cd38c58f83167ca0f00fcd8e9", + "address": "bc1qj76rdkt6atkf6eervz7wfgfmn2s5dxcn8rmmkp" + }, + { + "change_index": 3, + "address_index": 2, + "private": "Kwoorm1cJYSPc6guyoP98raD4N9kDMETPiyAnFQZttfj9hwC8xKX", + "public": + "04f4f2be970a2f46dde6cbb5ce67145111cf7c783649cfe223f4c2f355adb96041627ab2cd4568ae063f6a5b0772131eee9c2c2ae008916b6d476915440ae0e8e6", + "address": "bc1qxvfyknq900rd4h5aax6ktdw7pzjks26guctjnm" + }, + { + "change_index": 3, + "address_index": 3, + "private": "KxrjAGpons4rxTgtsMjJnFVKy6VyHXmK1yobRfpcTxy1svVz6iA4", + "public": + "0440412fba104874be7cc368cc35d9298f8b68a2caac796f53517353bd7dbbf44e0357fdf34ab07b3b164545c9a8ad109e2b306c4b7b86004009a03e04e5d5cc42", + "address": "bc1qylzjhq0ws2yg6wu5n76qk67mheqhju3m4tmede" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KzkbLVoqGfD9zd3YSW7E5NGKr1mKCMovQAtS7QUzJJTRuvYQSefy", + "public": + "043a22395a25b9c637840e6dc02611a2ff08f01dd063a21d36830cd895b3e21b61388b4424acf66d373d99737bcfa2ef424070f5149f5abc873e7969075ffe3623", + "address": "bc1qgc8cq53x2gcvyc2kwwhzujv5jzaa2at259twz8" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KxV21MoExzYMU7wMGYPYTFMCtqDG5sHwQeGS5TtszrviMsrNdLEm", + "public": + "047ebd5ca3d57b7e58d35da0dc54f0b74c2a8fd7210fbe9326cf4f4090c561ea0c6936bbb9f1deebc0751c7c30634b21455d88e5f88a30f82948b132e306bb59c9", + "address": "bc1q94wl802p889tvq2m6jrfz44z2hwuqj6vawe5al" + }, + { + "change_index": 4, + "address_index": 1, + "private": "KxwAa2AhU8XUxTZWVCubdSQNJPJzVNCcoto4AUEV319N6Top7uyZ", + "public": + "045bc283f454690d2c676716ec1d54761c06cff276c6603c3638f25e09b84f2e26a37d4e9abfb302956e55a4d7e5124a7300c173302681bb9da9871cbb3a9dc31a", + "address": "bc1q8ze9e5vlr7s4qg3sy5ykg83gl4e7fsacav6l0d" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L4ruZpRPu6pd4bn9YgLntQTCpVsoYhjYMVbweW2Gu4pzikPVZoCx", + "public": + "04c769889c7be272c7d207905ab6df16561f0fcd0bc9f900fc188ec3881d2e8af2b71af472d4d287a619739d69166153aa86b031877537f67cd7dbece9d1875204", + "address": "bc1ql3h6wjf5w04ajfcna3vhuaye7qyetjkzpk8zf5" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KxnRE67jAobKdmnBiM623zg2jufyHPikgzXnvbAFyiYBWfbLniss", + "public": + "04a1b46ce384eea1b0af8519e5d947d5132afcc667c8142253c4e642d6e9df8ebcebf4fbd114ba1cc179669bfad2dc6992a0ff0894b902f2fbefdad8204289ae38", + "address": "bc1qcdlx0tcp6xdyrfu40tejede4x7wvuql99xm87x" + }, + { + "change_index": 4, + "address_index": 4, + "private": "Ky9k1GFkGRDKjHN17vHrMsHs1YiMXnh8oFx3CuTvAAzL6Rn1cT7u", + "public": + "0463c11661b2119424d385ba6ed47726ec6fc0b53243e0dce7be53e2084b9f3c99c88661366226199e62d355c8a87020f1198db4d07969cd3dcfd674f9bb84d159", + "address": "bc1q9fvycy9nck3gws2ucmaftax7knsemxvfn2s7y4" + } + ] + }, + { + "seed": + "5110d21ca9de548b889a0688137c026c443ad2d4bd8655d45b207c8230138d3b6c467211f0a6cf59da950eb7964e8a7e4c1d8809cff1446f8c75926edeed5c4c", + "private": "Kx11APdmzqC8N1fWLrsuMX1xCYAs17hbpSVD3wS3NvmGi7xkUfLd", + "public": + "04cd1db8f171c136de66dae12dd02a5967fc304c4275f708f0426992e37d08ed50f6ef80c8539abb043eff97fa86326cd316f908180e98463339e9c72cdea0ca64", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "KwLQpbhgRKzH46Y9jUkoriunpP7FdWG3S4AR6ukNuS7jjP93WD8Z", + "public": + "040862cbac72770ad318ac4322184d2535bb1fd38582e318fabcd269fe91175172cf34b4602cf4b789d23c5e1c1cf230817aeb0d70661a8de01ccfb519ce88bcc2", + "address": "bc1qhrj3w92st5xmmynrgj3dxcves863dxpl4dlr7z" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L4qBo7QB8i4wJGYpZiQaJuSHs1TnH7vNx3FW3KvXCZz5EodLurab", + "public": + "049583d8a11312982f8e46ec22de3f6a23515a2064f600da9bbe03bbc31fb627a338dabe314a7375a43537c9c34cc6199a35f237ecebeb048a049dfbe0c5b8caa5", + "address": "bc1qgsnte9jwny4dufgg2ygkhwxpkmsl3tkpc8t5kk" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KyrEzVAz5NYD7hge77gHPdF6iqJUzvMTUicGXesmpNsyDwEtN8TC", + "public": + "04fbbd0f1803c4b3b81ee4189ac9bd37c3de48deffd5cfebc540e29de4dfbacaecb981d9c268c9f60337941f866c6b9faad6ca74bee0b53f6d243005f211fd07e7", + "address": "bc1qz2xk5u24x79m8g4qws3flkm78zvk5tm3r8q963" + }, + { + "change_index": 0, + "address_index": 3, + "private": "KxSDJBnhbBzrAGmbgLM9xXLroHDsD1VVo1cKLTc66wfERBWLtu3H", + "public": + "049a4bb6b6e7145a2d962837dd18723a8419af9d0fd093a57ce52c11967e43750c4e19f506fa45acc933c5ed620246caf19f866367bf68407645586ee5db1e3c8e", + "address": "bc1qgnvsm4k76472q88n35ammkppd7tc3s2npg37eu" + }, + { + "change_index": 0, + "address_index": 4, + "private": "Kz9CcEBMJkEFQY2JGjXx7PAnLuDT7mSpp2rLUwoLCJoNV6mJCci5", + "public": + "04e16380c5c155913c41fb0a0e3488c8bcabc16db192e5b70633032b3a42a8f8a21d4961dd2975102d21e8a003aebc76b6d51958e1cb6f7052c3a334c7f75212f1", + "address": "bc1qg64uhwzhlt6ccvwuwm8csr4f2zd5a4wnun5js6" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L4GwH7TTyxkCVrPGgNbRr9FPPMnnPA76gProd43FjARisb8J7sj4", + "public": + "04d7f27ab4109a7d715cf9d343f1010cb3fd050c56098735c45f7fcaa0ac4575d210b7c8d3aa52f844e7ec10585f1a9903a4cf0076233472c6eadb3fc777010d6a", + "address": "bc1qaa738h3ef62tn495wqstwlfxehx2g7zdr93dja" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L3xmbDk23FBtAuAAciuRaj2dXiZ14vgmjYE4nFe489F3Mq6u31qE", + "public": + "045a23ff91dc1ba35d25f506da5fed21be6c33b2f563fe461e17823688f737974b5bc87af19f93976ab578ee06fc34a4d4cda6500291c4173601dc3228f27f9040", + "address": "bc1qkhmfx3e4ngsycu4f9cgw658hru3fa0l3s44rv7" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KyaS9fdgVHGVqRx9hpgqSGtyxpYxjeWVLg6bHXKZtMechDw2JjwX", + "public": + "04ed0df4f61f9897c234f316d84b057ecf6411a15183868ebdd259c3dcee951b93db4f5417233810f35cf17402c2a39a02bb0151fb84e1ac41669bca37590985b0", + "address": "bc1q4spetnqn9lq32k75hdw9p3yg3qkztmk27cag56" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L4mFwAPfUV2BjALRqo1bAyQPQyhTZTCEXcDv7ij32P8ubL6rdWw7", + "public": + "0428d51fa956b87580ba6db182591b7e22abd89b776b203a9281caa59e1812280a3f2d0b5c62d826d948180b9aefad781a2e48d05ebcd2fb9a5363c972ec83f670", + "address": "bc1qr0pjft4k54een6u3q5klct6syz8l2ff96qpuy3" + }, + { + "change_index": 1, + "address_index": 4, + "private": "KzDRVtn1pDZJN5dpmJDcLVGZ6Hw8sUCwdRz8oPSMdTKd6MYNiKQQ", + "public": + "0464de29bf92177c741d6d8f5bff86704f316947e4387a6a958fbd4b2b9accb6d92877a7daa09049da0d8cd159fd8e689635ebb37ffb90b0c1f12b02c4c2a688c0", + "address": "bc1qu8z9nw8jl9czk3t8q0xu5x23e79mmsuz8lr6ag" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L2AzCenFMXcgzT6SvqfCeJM5qoHi1MxvnGK47iUT7TKR58qNioxP", + "public": + "04d6fdc7e13b03be6beac05186adcc67477f5435422a24a40cbc69bb14ada00770650edd3d67750c71b22544f156c8972eea1551062d16131ccba65a0aa3afb9d7", + "address": "bc1qe5u23qhrerjsnhlzmf84zh60gkz5kjmcthaz7h" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L5fBwzqrJMZprz8oFrphhtWeDQJhTwGJUqnrS9ohJaE5tsZnzY1b", + "public": + "0401dd809272cb9b68b4e0ca587758a78be1bb4918971eef033a060d890b887e2ec1bbd6d9b47c93a31af679463d67955808fb0acb8e1b924b32bde71e7893c768", + "address": "bc1qk6pe4ceunztfva44r3mmnws6twtlj2mhqma0w6" + }, + { + "change_index": 2, + "address_index": 2, + "private": "Kzuy21ooa6zbLGQvXtf6ZGdx9QnnhCxQGbCmbB4i63Htx7qBUTz8", + "public": + "049642571f446f05210a861470724340130eb6b6ff06f27ee139d5d34817cf79007fd1231e8d1ca8ce029a5f7bb156060ca980b5c0b7fe19ecfb5d142079c31377", + "address": "bc1qdmgeygj3wfqrt7ac0qzdsckgz74e8hf3rx94gp" + }, + { + "change_index": 2, + "address_index": 3, + "private": "Kz7HRxNykhEVV8RVGrszrHf19Mn6z974mLe9fdwpw6f32EJHurUF", + "public": + "040db48e08b1f16d6523579ee9515b08ca12906ae69ab797a4a4b813d7decb8aefab7eac527910dd49e9ddc6c56412aa0c47a9915d9f7d414fe3025c7a804100f3", + "address": "bc1q2sha3dj3lvuzcl8zjq4mk652vdfp98u7yht3v5" + }, + { + "change_index": 2, + "address_index": 4, + "private": "KxpgndcsSeAe2DCbZH3gma8zwxQq6vpfD5ya6YMU6zkKHkpfc389", + "public": + "0410e4d35424476d8dd03a4b071c9970c9a88f5133b28be0c3c288f6ad71326f17ac2d6bb0b02711e3f1b6065a4716411622c3c54d65f0209d6615cba6e211218e", + "address": "bc1qf43rwfhu47uymjkum2w20nzlky4d0nl3tshfhf" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KwLyFK3WYPFkUEAxW9uhD1cZn5AbcNssiz3xiUBkAQJrTVndKs57", + "public": + "04f31b129afb59349d08bd79a20a7c68d4985720db1af4fe8cdd386cdc5ea907089f82ed29880924164d9dddfa0ae96d3be84b3799daa249ff9c71318ecf78117b", + "address": "bc1q96du6hzzu3el292rk0rjptef6q6q0k6nlwevkc" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L2ZqTfQQ9QQmW1S5fKrvx3bpQJqBBgu57VNHSQCZ7ZcdErfy15n6", + "public": + "04e8a91d56fb37b65d4bdb8d207d07f176117c9b6b8056d83c3a27f1ef3762ab4b2bcc1e263d9999cbfe6bdb99723441f740040f1e22e07cf359a7077ce8aa6556", + "address": "bc1qmqkr9r6j9sm6lmm87jn2ya7ff7tcvp6amgwly7" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L2NTxf7YANhaxQTNxKxsfxm3vHrrd7Yy2w2HrGVAHLTaeWUux3xU", + "public": + "041c0410ef680cd3faf609e82ae6d3e73e36a4b82753c485100bad7b53107796c2caa44d8d37817a5590533c874198672d91f758518fce11fe3f0aa9f159eec677", + "address": "bc1qx0v6tcsel3fhutakjhzqvxha7evlrc7kehdsh6" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L2rc732hXEHsZV4YC68oPQ8EC8f5LeqwoRTGpN3R6QHzuKwpYSNV", + "public": + "044641179a6d1f93d0a79497f20b3a465c1ca9352453e2943b528ec5da7b99987b2583f3fd7280a375c06e7305c8ce99c1fa7201baf0ac0f750603776814ce3c3d", + "address": "bc1qc04u89p24fnvwukegg3q755zf9yeqkmjn9nsam" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KyDwBGDcb2pi9CS9jUUWXixjC7THFNBGBqPPF8UYsmUuEGYwwaK9", + "public": + "049da05e23bcd3819e3fe7fab503c68bc7430d8a080d8cd657fd92c804c70a1837b284ee01de7fad24527e6f6139a828b06d98dcf3718df9035938a626bc3a5ffa", + "address": "bc1qq30wfd5jceeemxtzp5wgawktav8h2m4txm0c24" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L3YbzQgJ7pU7zUwB4juG74Q5VoMCmxcMb5d4hCJCzq5xEtTbNcYE", + "public": + "040269cb0f446ca01feac1b5a618c09a8d4f1c41ed8103e47f942b4de61bcabc7ac3898eb6149a2246dd47ecb06340430c32d7b2d18301cc3b5a91c00af64482cd", + "address": "bc1qcym2lukwvfdmm6q34zcl55f2p9qflnr8s02hjj" + }, + { + "change_index": 4, + "address_index": 1, + "private": "KwH5iqmoL3oZmonBVQeYP8z6UzHwPrRJV4PUf5oMNAf6XUYeYHh2", + "public": + "04b1df22e2e799b53acf49885055a5827f46f4a51436a4358c443081ba692d6874618cd09e15b669610a27bc9b640623ffceddb0296320432ff60e32d8f431b85f", + "address": "bc1qppy0jy6l5k5ylzzn7fjlkygc0nm3urr3rduvey" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L1MXNWeXv2oVP5nb1TB5yXK4kuhgNQYUqCFPhvCaeHUmeLaszQLi", + "public": + "04569e00fb73da61cc88114d8e1165aa9b698bc4da247c1c174e84ddb9151035de94bd90273ffbf09f10b6c31494c08ffa38dc23c47496fb1688099d0936424403", + "address": "bc1q9nmx345mrggt4y8l4pyratqpma308pgjsea70w" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KyTFDTLdytRRLCVwgVcxdzaBvi3kB8dUuEAoFvtozXG9bjom4EZH", + "public": + "04a2e2678056653123eca3033694598bd208861f1613ff849b2c7abe0b8e931e3aa916fbcebedf826bbcda8b619c7783c609ace675d10a42ece057ac34d729c741", + "address": "bc1quy9jxzajwqe6gy95tmunp90z058dh39yh4p59r" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KyK7Pu4JeMLavX4Cp8gnGfRCogjLRQgs7x8aXMJLqZCfW2fjVwnV", + "public": + "04f96c72f091363645f9f9de4c45b096f9bea8bf78b2139a18ce333572a06680257aa6b333cedafa8c25991192ce5751090ccac4317e10d5b9ba04e071dfd56606", + "address": "bc1qlc7tgqu5cmd3km2urkuyhwejg4yehyghczq83w" + } + ] + }, + { + "seed": + "a1b61d915cc96ae0430fe84d1fbf1fbe063f3b8e74aaad7d402f396e5ce78e136f90733847b070067ca75bd54deb86585a58070e31f07cb16ed74a8183fa2f67", + "private": "Kwrqec1jnaEuyKUqG2MMhQgUuG562eueo9jd52V78yHbY3amgfds", + "public": + "04f0b3ebf9e61ef69f88ecf8afaa5e67717407cf2d40659f20d82ccf1a2249b8298b3ec98f45784f29d95cb6db6287a6abcd8eb5601c989d093c8e33e527eacb45", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L369wfJpTBCvzkzMSpnq8TDLV667gKom4Sf6MsLd3Qmr6yAKdkWA", + "public": + "04b7f6ead74de27305a10038290715346bb4ec20a65bb869dda339536790d6f52cc6b9eac00d58bc4c690bd6033c706b43aa70e67a0850ceaf56851de7177ca264", + "address": "bc1qmmqawh3aglz08sspl8fj56zg9zfnnu6ntnl67q" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L58R1PfrdR2B8caSNEv3wrCGjm9BxkTtGiigXrT8tkmNHPHRAsVY", + "public": + "04e2ab833ed8c48526ccb821028fae619425047fdaf898e67820186d11a0ebce05d6e215efe362de8fa88a875c89d63e857d609c1f028e818ced99f1a1ffe7f9ad", + "address": "bc1qjy9m25aq3cwpes8m709ew5qeut6mjczum52uew" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L1bQ8BEqsJZM7GS7RKeRmuvnkkkNNdN1tr8LAdWuafjebcjSXp5C", + "public": + "046aed33975deaae994b0953061887ab69c780beff04f83d9263b437898ee4354ca25b6fcac4f26f1e5209f4c728090a92ffa5acd146936359fe2d64c977f86724", + "address": "bc1qrwxyn7f5xg03470rd75u7t6nwygue7ewd8u4yu" + }, + { + "change_index": 0, + "address_index": 3, + "private": "Kys6nt5jHDbTCQQactXXsfzTMCzfzmz87RHdoh3LsRV4u3DsXPMQ", + "public": + "0404983c1b5905e170bcbc58dc4ff7db7d846e75a608c6addcc7f2b0cba85907df9cd3c6ca2e455d5bb295e3b34347fa3a00fa200dade1c1ba48c34302819a8645", + "address": "bc1qvc27rcuhxglzwwq2fv9kjk5jncpuwwrp5f544k" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L13cfVskGeCp4FsM6MuBSY8gcuVYf18cg6FQEpMxLHoxEaN8ntP7", + "public": + "0421937a44d854c79e4d5b2bef5cb1e114ec1a7c032177f0c4e1ffce6fe26b1730b07006825d84b15505110a075fd77eaba762bb9ad47690ee2333315e6642d38f", + "address": "bc1qnlzadaq6hs42s68078m72ehf2647xxcanle4ck" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KzrYnnFz4MZQxrcw6WuNuY2pqjVsf76XANvvoT51WZXE6BnE8beT", + "public": + "04b31ae425c249b852a2bc24defa2a5d60848528d97fe9701c527e3dcf4f5b9abfe5d8e50a5370cf0f1ca49d7552e83faea6206b66bf1daa2c18f1d5c272f5e447", + "address": "bc1qwefng5u90t806r8mkxulcntjwwsyrqq6nnculs" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L3FXxodPpMh9hFRaNrzFcv6rvAvqY3jKBZ4LsHWWndfq1N8mw8Ao", + "public": + "04f5f82ce3bfbcbb589de222b308e68eeeaff2412597fa22180e9e9e058bd66c3e6f431520aaf0bd398ecb64b82cd5441143777ff2d310eda8467cd210138b755a", + "address": "bc1q7y5f8ljckgvx4lg6jvsz26p9juu0n2wc27ax2q" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L1WEz3ugBWs1miBSNAhyVyWpRFv875yA9gX8LMHLgEFWu271HjNp", + "public": + "04c499eee2fca4cac7bc6b3b0c009397528faad757ccd6415228351efb07cd4ed7bd5994e8b66c106e52c0ab84989bff2d08c5a989d5a8633452cd5b875a96d348", + "address": "bc1q3xnw0d87dnhws69y5xycr3qqsmggwacvgzc2w7" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KyVihnF2H5y84smffKogGxTFWUmJn98pMCuSU5zd9nbrWBkKCprb", + "public": + "0474b97e3e162404e74bfed523c7b4d5de9c129a6b2e719eb630671868989c568ad34da5a29989551c5c1aca94e375c97e29385157b91900c12518b06114a8fc76", + "address": "bc1qujzhx4dj6luku42245ekspnqauf529ha4kd8p0" + }, + { + "change_index": 1, + "address_index": 4, + "private": "Ky5x3VidGbeXYqzuY5LWFNmgdSqMSjS6hhScBPwvNhuJQ55Rf7Mh", + "public": + "046ed1fede3d5d2e7b863e4c7acf59c6edbebdcf6b85c4abe6586631e69d611deab37fedba3795492542567b429b832a3f6bbd52796ad384f2db7faf2ddb9c5b72", + "address": "bc1q44ws34nq2n0qjut5lsdejnpypcyy8drluekz02" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L3XvY7ABRfKL37tTAjtEPAtbEsjKVd38kFD22GHrDvnPfs3UZCB8", + "public": + "040e75fdd57eff2bf8bac4ee4749c6384c07ed116b1dc7cbd454d5a135b300ba22188a3c73c7480ba8db7d82b4a229233e7d07460ea049a4a427dd8e2740e01271", + "address": "bc1q5s29dhv2ur85hyjwj3tm5k6w3ghv9anzh82ysf" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L2ADLa2WSU3Xg6HjHD2cuZ7EChKH4rdSA6oARN4zFykupqC2JEKs", + "public": + "04a73c3ada6f76677914e8601722124573054055439e111862a79bee96c0e028c9d1ebd7b2faf10c9b4e50c98a1f576773d17f571b2679073d0fa501a4398a14fd", + "address": "bc1qnh8cahjvrm3rgdgyyrjeqy6wvzvrjjn8m9umug" + }, + { + "change_index": 2, + "address_index": 2, + "private": "Kzd3PqQRJjEsRqncpY69F52GcVLbPLG31XZ3bVSB39BheoWDxMQ9", + "public": + "0421bfa4e2b171ba5d3f32ed9cdd6c8bcb8e79a77c293fe02ffbf6312ac1baad1bfc07f3c2c6fe0199e7b2a01f9c3e68c5aea8708dbeec9aeeacf03db31b0e45c2", + "address": "bc1q4yrw29d404s0v0qh626a4vla4zhv685rw2ya77" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KycCDsUirsxUMTxZeStBUDb8mHjBFLd46iZj4Fa45VZH4DnZdmRf", + "public": + "04ec7b273a4eefd234afcc82c8108323138cf0865ccf968c9bbde83aaa7cd1e2639aecf301ade25af383295736c8d31969f8685e90039912f59545964e0c0eea8c", + "address": "bc1qu9dreg2552s72h0q7qn3n4nzg46fjz7tu80t6u" + }, + { + "change_index": 2, + "address_index": 4, + "private": "KxWmBdiZG1UQmzqwsGYbxTScq4VUWjrpYxuxEcZW8VPfDSogw4zc", + "public": + "045a972533f4ba1892eb7dd31a59758dbb106d02c955d763b41f00de6488ac06ab2f7c3ecfa73fb8ac8a7d0d338a0ec80451127700434e1e601ace3bf76a1efc02", + "address": "bc1qk6fk0pjlp45q2szeu0xr9pguljxw9n8yxs2d3s" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L24HXXWpL4Q45FEB4yQWP1ZDC8gtgccV5Cm1K7WxjD4jAgB6eXA2", + "public": + "042e3f3a4155b5b4121ee5ceb1366e43b23b579e996ecf9dcf6f43c940116c53350e0277776375dedae6bef131509793ed5dd661650521d40d26963d08039d91c4", + "address": "bc1qqux2g9d4gkuvlaatttw2grlw5y6sfpcvgwgj3f" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KwiL2zBcDHLiYjXGqZfhXdVwsbr1SWhnqXaXVjGV2nWuNu1T26Yh", + "public": + "04fabbef5ba7e018dd67507bfe017fc7471950fe6a420b4323fb76d76b5c8f3363a448c8ac95cf2e1c24bc8565402a5965f4c01c1e6384f0f03259439203f84bce", + "address": "bc1q0mpgkqptgpva3aqcwv3jfzdltufsr30pf49t3c" + }, + { + "change_index": 3, + "address_index": 2, + "private": "KwemhNNLuHF2Qv2fhipf1aZWfcFAMbgmPgghpErRjDvMauCdMhGZ", + "public": + "0452ee743f0eae2bca1c13de3e6a8b11c47d7601babdbbeca89d4120e34a872b26ee4fa8706af28d7f655a178c7ed84ca6947f8025be7843f2a7b447353dd9895b", + "address": "bc1q3wd6k6mc5ll79a62ckhsqke7hwh520h5zc2q78" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L5MLaRUihdG4VQmKhUGhp2xHj4aAhsMnoP4G3ymAxwExnuqPYAKR", + "public": + "04063b93fb43b7ba3714ea0fe8f498da3ff1d5ea71a6d483eca44c51484d81d83d2280e888d1cbc1a76c2d06b8d7fa83102d9cf20d52278e9b124d99bf954c94cf", + "address": "bc1qa469z4ad2pgu5qfezw8qzthur6mgdyt8ekuuyv" + }, + { + "change_index": 3, + "address_index": 4, + "private": "L1WpVByhvZ2YctYKLSSzjqhZAa85wLYgmvNUDh2oRyDHEwqvPmdd", + "public": + "04018425170234724923cb979469ebe7f8f0860956213eb302b60beddedb33982a2feee7e38458ef127c8054b2c1df93314c66c26c82e69a1abcfe6956221fea35", + "address": "bc1qv66mxq2f4fxnaxrl6gdpuf6htk0zzgt58qsw6w" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KwVcLCFpG9MGVMGkEvW3uLQ2cG3Tbj8MN65LxndWBGSNA6zNxhke", + "public": + "045d3b81318220a6b3b23e622558b05faa412e5064121bed5667d56ce71a7cd77e14b80e4ada6f79775a13117c5ebdcf39444ebd6007305cab620b7e14ae589c45", + "address": "bc1qmwfzksvt95ftn82s75myh3xtt6svl0nrsfa8pv" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L2Xox5RbkPWfg2GB7qUjfCLULDS94LiEDuyLummc9DFhy7CvnFwx", + "public": + "046a20b1d81f437587dc3f84607c1a4fba11569d53102dfbb33a2c8a3be2a83fd0a30ceaf692d748101ad2960046e3a5435d6bbe809c2f12c54dc95745ea184f7e", + "address": "bc1q0knq2cf7nqc5la4zw5lygz5dlhgtdv3hlvq5q7" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L1vqbQQG8kQsKBmYuHDMdTnv3NZASdaYgfVmoUecG77P9eG6qbGu", + "public": + "0467fc09ff60bdd9691d20af7cafa56993a0eca615c9e30de956198f98bd7246bde58b8e702c1acb362735a9938290883ad573476fe7d7a4e68b723c63ff218836", + "address": "bc1q2z2s2yn2dsm8vvf8xz8caqrucvrsg2vx9a3yrv" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KxS8tJ2uLQKs7TrHypzQtu57vBb7JtpyJntnPyWWc6EETAFr1fTE", + "public": + "044a15a8ef8fc73f984b67260020248920259b039bfce3a8d11c4ddd7eaeeb01b1f609e6715c15954452ce6a1c6d4f2804a58bcc44ded72e7c59d34e2231972750", + "address": "bc1qvt07ecaj2nv73klprppju2ypwe6geml5r8s6m8" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L4r3371dE915Ld3VWkBdvn3enXav5D7KQgDdiSByC4bmEKH5ENfe", + "public": + "04309044e10233cbb5586759e3c28a5c44d9c324b3fe162b3cae09b50b4d31d456b25d5027a774b19b64dcd925a471434573b1261449d96a0ad98ae280a888a67a", + "address": "bc1qru8u9x7a2q7a9k6yfk6kyv3utqeukk03rn6938" + } + ] + }, + { + "seed": + "9e7ddfd926b355292106b03dfb02cd444b74e60879c04b506cbbf5de6a2dae25df5401a6a4fa76e937c99da56dcba7b68d02c0c3e4ae63a10e154d779e6109fa", + "private": "L3LSkqxWTspDaVMmVfjEvJzey17cWTRJNLQorEZni9UMjH8tYpNS", + "public": + "04d38e9d95e5fcd02e2055056daa2b3494c5c2d8846a96cd1c35caf3a8324a7d799eff3f3cd8ec9ad6fc936e48b661e9b317bd2c46da14a16c92419ebcfec67891", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4WfLrj12sVt2EuwW2adG8hqRBaGXxSYUR25j6KhxGcSfKPBKC8d", + "public": + "04773062c2ed9b2f0506100f37441ab8cecba172938c41b784375572eddf531e2caaba6d7f948cceba8330ef0ed90234f7a45d3249d0d867508ab6f57dead09a1b", + "address": "bc1qu89lxqegcaclv3fyvy50a90a4k46jj5cdkdd7z" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L5h7Gyx1ho78MU4dQhxyxenBm1ZGbWeaxTnLQ6w4P7k1EnURFxPT", + "public": + "04b7c22d5416f463da30da948961727a19117d0258d34e566ef11a8a1593f85343d347d56048dfc43b02dc3367134de8a6161036dec7c64f4b7951fd9a5a45216e", + "address": "bc1q4uhrkch7ag4w6z0r58q2j3eckey43a2zpz6agx" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L1F1k9R8tbtxs7hDMf5MpoS9oF3SCX6cyeD8Ek7g6W1RDgmM4A8i", + "public": + "04ebfefd3efad26cee374a2b1ceaa574e213d6433ae6e0307f62ebcb3cc543af34f9849d5cf5df5048d87fe3e7941fa020daba3743d5817e268867fb88055e759a", + "address": "bc1q6vtt8p5fum5eh6pdc2gdvj3swrshtzw0ay9xxf" + }, + { + "change_index": 0, + "address_index": 3, + "private": "KyPRu2y4eTiWg2sf7C9HinRYjN6PEx3qE5LhTvGq292pQ2fyjm3Y", + "public": + "04745252af4491a6f59c7b7215ea79f891cc6ab24804dfd5b56effb1d05268c2c261c22f86c86699de16e69af89b56d0d9edce676a2918ebfae479b0638e590f17", + "address": "bc1q6jmws92awjkpv9w9nue37usj5vyfte9uh3d4mn" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L3PF6uiQdKdv6HtipV7m5mvjjbX3qD4jrQibVndyM5zT1SX8tSed", + "public": + "04dce88aa54cf639243bd96ae26200a64b55e33eabdc7a9e7645fddfb833c59a9d2ce794a48f38feaaee8fe9c9cee9eca74285979f3f4567714d6cf49ce356d6b8", + "address": "bc1q8trcvsm8j5lfxs2x64ygzc5mcyatnppup755fd" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L59NHmEyYiXLMQdN7RtQjseo8KAh7yKcQn7NHUdZasf5LSfLi3Vt", + "public": + "048ffba864f66a8376d9a5259727c65c14a52d7b9b09b7e9f371c85c9e16941a58ebc3b509a4cb86ea642086a946ae32e00ddd5a30514eb52cec5b032abc657903", + "address": "bc1q7qyxltw954y42pwrhumwdwkmv9hlxyf6cdmzw2" + }, + { + "change_index": 1, + "address_index": 1, + "private": "Kxe2KcZmZbrfHjxKpcZfnQGYDi2QHLnLvE51a9YMdtskpwrJ2bXu", + "public": + "046e6d0ecdf16c03b4e2fcbc1ba6db4bcabd3778134fb38d50e98095c3197062eb3046f9ad21ccf841ca4a9caa60075d644087a733cad698081fcdb8b1e5f8aece", + "address": "bc1qf3azlykqxpkgm4t9dvtn4f8mswr4wqlz0sx3sr" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L1aBYXYPFXDFCKmVhKTSBu3XNJeqxH9RoecmhqQ7YPcnPFNXWvKb", + "public": + "04cc354afb77922e0f4ae6d33d6b2d110ecc41bc4d5852b74a27ccc33c9210fb63301e9ab1fd04bf5928524ce3841d90345e3b1f42644c99529d9e15eac7d7d9f8", + "address": "bc1qt62sv788fk7uxnqpelghxge3atup96cmvh5ecz" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KyM7rZes8mZcHMw6y7qmhrUVaCqxAXtnMMmT2xBnLuCxoeyXVAGf", + "public": + "046ee6decd31725c542536db0deba54637878c4fa9da85fb8189c30e129e519bfb81026a07ce3676fddc6555a45746173464ed491b2f2b1d73264f9f0e425404ba", + "address": "bc1qqsrm7uwdv25stp8cfa3ea5hy6ddraf4dt9r2ah" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L5NLaXFYhx3ZGM9kjhszbFhQ7XnsXKJosqV3hasSca2cVjLXeo8Q", + "public": + "043068de6baef9af279161ccd5ec857c8aab27497f36f3053d754b1f77780491d8c2ff45296d2bd9f82d8f600600485308bc9f23d474e73e6dbb761b3d4c58f846", + "address": "bc1qk24azfhk7e0nk8kfe95sqqatsmm9laj3828tef" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L3d6bHW5LykdGt1YoJRk78BGae1cU1DLNuufXPdi6yrVDiWHND2T", + "public": + "04971f17c009cc6b536c73ea45ed4f6b43857dd29ee0764f5a43f05aef5dee38e2af9b7bb265d8a1ba78d81f6d077d7044757a6ddba33d0d9431459965e79dc5c1", + "address": "bc1q2cccauqtfe3zvtsuhax8lzaczvvt5x34qnhe6c" + }, + { + "change_index": 2, + "address_index": 1, + "private": "KzRnxKv6Wm5VLeMA9YwvjAaxU1jsPKCYRtBGHkAJ9mAo3YdcjbXd", + "public": + "047767c11d6a2a02dd8432419aba34c5e0741fc3abe49cf6d38f5ba0e0e20fa2b087198a5f5134b6676638c9211db503d984513717dfdac8838973cc3c59dc92b3", + "address": "bc1qr58hxu03zpg73t785e8gmvv9y8j4s4wcmnjjzw" + }, + { + "change_index": 2, + "address_index": 2, + "private": "Kwy3bbJHgQ2XBv9SaZCrwiXSJ4BpjEFXJn8GbmgXsGU8DnC4Yrm6", + "public": + "04b6d2d4f415734b64868ed3c347ab82394e20377f601cb6c041a106106794b67f25713a9b35ceb0b9685dc1c41d63ce375e684ca19799a64a95c47c2bd5fd0fbd", + "address": "bc1qluur3zmvjcty4tr4x87y3hajjwfdghf68qt2za" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L28zfN5ozfV2KNhnLewshMqLzkYE4h1MtxQyfWLzDGx4Bs4vMmBm", + "public": + "0446fbcd111c952d9a81ed7e1956ce104410bf4245d6ec535cf1473342f150315b376bdb3aa8abdf9e61d97f9328cf2b53f4c400c221c0455b25bcdd667e5aaa5f", + "address": "bc1qerwf2akmeg25nn2f77y7d0028fzk88zxx0pzu3" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L3Pjo8XbyWJf1f6ESFCsMskDu24H2M8jKXbmNGAC43hEL2ZgCpfH", + "public": + "049497c799b87c8210fe677a8c771262d929d5f173e8a43a4920626349438ffb27a8dbe60c2efe17de2aa26f4146ad0e2fb1da19a0207f489dbc7b1dcadc9afd46", + "address": "bc1qs6ywryz8j9ecekka2dysudmc4v4655w8c5jt8r" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KzceSLfWSufqNsidZWgVgfCeCcje3jD1iVWnik3nvA6VPajG4qD6", + "public": + "0464e6339e03e78bf1e156ca16987eaab176ffa9737692853d8da96dd80413ab2cea19f5ba80676347598113bf5d209850115fe49d32f7b7cefe84c8f3b060a3ff", + "address": "bc1q534a2hucep84hv5qt7n3sqqhjassxcl6qnksjt" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L1jqd8sPjaXYKrStkbo8KrirKqpPKwryVe1guzegRHcDS7tu2fKm", + "public": + "04ba949cd9041cdbe04be98037ab7d2328c0e2e76202394b7b93a42f77bd7d0590e628d33766d8a0864a919c44c540eb938239e6e9272c06c7e0a1b72430128062", + "address": "bc1qmhjt2pu8lw0n3vg74a02lwz4jfa4hztzzp2hhn" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L1aYh78DrEdd8LdgujztZEiMLHjDmgsDud78AqhsJagYouCFwyPv", + "public": + "04190aec727119833375f331df7efd1843f6fdda668f466f243e2b1e37570c5cfa1f20ec8c3cfc16bdff3dde3ff9541b9b2f327d195769ca340102f917ee2c355e", + "address": "bc1qmkguh9pts3xewdhphcg6hq75uldaaaa8sv4qct" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L1BPT9U5rMoajMqCWX9WwitwtGQGnyFxz4KmuBirFyBQGvTVUU4w", + "public": + "044e718870a6d99d4fa436d4b8006db83d9d0d30470afd79daadeeefad4e55491587efabe55339ea9d82b6a18ec0a3558339975a2859f3593531b8cd6cf580c983", + "address": "bc1qhym6ycw7y5f250e8yla4kdvsyv7d2zt85dyzr8" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KzXKSXYtPMw54cq6emhF5Uz1sJw7SzFN5PPpD2CyZXhoy1JKoKGp", + "public": + "04d14c74399bfc35092ab70e3c8da22d5ef02f54ceae79e79fb8f8be3ba70abe46cf0ad0eb6dfdef3b751cc09f7bb7a601e93867c80ed63d01343fea6fcda71026", + "address": "bc1q5sm8pstyj6ya053s9xck83zr75w9f20ea6m0g9" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L1N1yF8WsdboS8SwF2Mw74xC4i7ETvmR19AifWFy95KdLcBJ5hdb", + "public": + "044c0e8d3dee4e3819b0de67c34c67f42ea94fed7b1c5c0f64d5e0b13310fb81d969cae4bf7d6d9141df4f1014f722a5fb063682cec549d53091739c114b3916d2", + "address": "bc1q0mxuxpaxkpnmxqxmt6nct9ezcqpqu4ej9l27h2" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L4ZDwyYAfc23YfVdxsDjpi3sXec5zAG6E4Jw7imd78r4hRA96ZUu", + "public": + "0435129d2eca8797d8a3b87d7316ca7f6aad493c278e5f311530a9de020e73aebe18c900144aee494a6a57b80de42e4aee063d9c2123dbf47674d4a752369bee49", + "address": "bc1qx5ngzh0hwmya07dvdsfx0hvttuf8nh60jjdm5q" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L2CCpyi52QRuEPjFzHHdshU5wBHVgwhWUEeFzrgvx28uhAYkh2R7", + "public": + "04462d5f7010a065b54a63123bad5356f419201e6fcf38b5c84baf05a09edb09322615f08bd5b250d12557751a61829291ec7e4f2270bdbe2ddcf41a4ee2f48ce0", + "address": "bc1qx7tmjlrg7uyqxtupwwxq58lkw7gztq4w5k0x76" + }, + { + "change_index": 4, + "address_index": 3, + "private": "Kxz6UW4faL65a8nAxe8hmBbwkv7Es8AircUE1AjiW5pXoay3yChL", + "public": + "04bc0ec10984f4c922f3d2b29711926fb1e129402a0db077ee13f410a591d384aafa14345cb63d1b6e07a78ecedc6557c8e8bc9f5b5ea5e7acc602715ff9f56166", + "address": "bc1qulvad3dl02vez9r7p3s0rgytkrw2pnmxnec5kc" + }, + { + "change_index": 4, + "address_index": 4, + "private": "Kxnnp478JwMNUN8xXMguCt7VsmK5huv2PWj4U4GqZCrQwYW4Q3GU", + "public": + "04778db80ae5d6eaa26df1bb0cac5444ba6a2645c8672ddb8e71644defe99e6949daccdd229b7bea7924c875a5988da6512cd3748dbeef74a0b6fbe6faecccd781", + "address": "bc1qjk4ugq8unu62ge23mdefusftpe9ern70rn8h7w" + } + ] + }, + { + "seed": + "a868f7eb9dbb8e5638d1c9c8c935d1cb76533162d3f225ecf0792a8f09bfdf6bdb3f46ddfb48c440b0635c6b04134c7813d06920d1b20479c22a78d721fd412c", + "private": "L2qpnoN9Hcx74f5ZynQ2PSy5C5ymDEsdfffwE8R9U7mTeyw9Fi7K", + "public": + "040423472ca31994e900b6bec3da5c2da1581859f2e62ffadbdcf3ae0da469c7a58bb6b73651f5e94c0e8df79c27dc0d6abb812a80e360ee831ff7fa6970f99de0", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "Kz8taFtuRQShYGWj7YbEujtX6hzSdgZgSKE54ruKN68Z6aq8smo3", + "public": + "041ab957f15b8673db84abcacaa4dea394844badf9335c20139280db1a02b29bee2512a5a10daa536a126ee382d9f5acd1f0a0ea8365c5dd98db6581202c6436fa", + "address": "bc1qa3lc55hc3srutedzjen8uup0dqp5mrh5sqzgh8" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KzZ5hxqiw5iCNDozjLgkiwihb7VPwrhVq4mkzvvR3wPteT47q5Er", + "public": + "04c506eee985c31877ea9c27f88f73cced69f7cdec511d2811c297036f69d7c8fbe07a44640bd7f0533a732c2d8b657d61b581395c7753b34b688caa770249e28a", + "address": "bc1qnfaqzafqurnf0snw9tdhce7guh9qw092suaet3" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L1b1CwRRCyXBKaXxFYUCc9SoE2UhRsR2w37i34XMvU3vvLh1ZuiX", + "public": + "0425e7a7e63171f905968e906475bde236d90ef6c407da28c419d09277c70a3cee413cc6c099f3516ab2cd383255841b2a7fa10536cbd81e2f5723ccee3856d8c0", + "address": "bc1qfvm9al2cg9dpkpz2snyr0las2gvz3wqtdqynwc" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L2vbGxACMHeYYisYHnpiLTuJJwjLuX8QcHFhX5r8nTBM69JYEqSZ", + "public": + "04b18fc09033b4c398ce71632e5deb5a7eebb2e3a7410c1d5d3505fa71c7ad84040e0a2f522bd57bed4425fe244fb68a8b4716e03449a88c129b5b0770f78ad824", + "address": "bc1qemfn5jf3z4sqhj2hcgt89ayuhjwh0v728chg6k" + }, + { + "change_index": 0, + "address_index": 4, + "private": "Kx24dszdSBj9CyhDG84vyLKniDbhm6RiJg6x4AhX4hXPEc7zbB7q", + "public": + "04b32e0b0bf3d8cc0d5f747075e611e27052817bf80f104cd159f4a78a4e12c92afefaf747b0e0d6da7405624c669a2a2219c00732f2eb366a2e9510623134211c", + "address": "bc1q5zyahw7err83l5cwxqzacgqxuhlm9yfhh93nfg" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L1VXxad2cySV7AzFfB7RAZdUxrsy7ySUmgyXVCVvHSULhd6VNMDe", + "public": + "04c720d79f1c074ea20e6f1a6134361c024bacf038941094db43186508f235f23040e3b649ce28edbc9a71589fe55df9da95560982ea7b56fdef17f36fbf3cb91b", + "address": "bc1q5pue80q45wdehlp9elzw8vamp8lwkpzpk6egcu" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L1BiL4DqnB4CmkRNSLLqM5CrQmiMNbxBJXmNQG1WRbmsHyEiWdgW", + "public": + "04380489479ab6ba3b99daa26fb052eb38f295bfb4a88d57800a2b387bbf333fa4b985fcda3359595ab2e4a7d9c2544a923b79687d7d26e343734af6082db74136", + "address": "bc1qf6n55wfwaexjgx2gdvzktklqmdrpz3dxedxrm0" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KyNfWvrDKAbaXMhYaV9cp5W8pW96k8ZyxXL6VuNsrMgHPFYpLEfD", + "public": + "04186dbf0929b76449a546f4df81ce3c0e4b2dc491f5c8f0d3f04adcd959e2c6fd800012a89f17b4426a6f97b7edbdd6e8ef7f2a23f9b504ea2f1a9ad9589a6175", + "address": "bc1qmr482xdt2g4482tz6psr640wywq8pnj7ren20e" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L3SqbEVpAus69fetnECcwZd99gzXKGxfFQ2rC1X3UsJn7k7gn9Vj", + "public": + "04aa5cac9ebe27101897d67f0aa8eb467b6d8676267c77394f1f79da8d4ee841fb174d8e86b2545bca90e5ce37dab8bc5ba4fa7dbf086291758157cdc6c94db62d", + "address": "bc1qcln99uen7gj6kpy6pla6jgmednlmgtfq5snxvg" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L1nJM8WqXFxDC7V3FDS8zu6bEuTU9ht6muEcMt8TWWJsq6Z5a1UT", + "public": + "0490843ec46ea27ba3fba2bf8761e2dcbcf099a20737a21af3fcd7cede856af5a3bae09d2856c0e8ecf673684a8bedfe51413977a8f52ff35a4ad2613563c52b9d", + "address": "bc1qr6lcgmqx3n03sld3t8a4k7w3dmxdxxre0rng20" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KyPQ7jjCsYp4BdkKEvvaqmYb2nz2T8KRtMpGPrxnTBWqSoquLD7w", + "public": + "0400db50e0f0fb265117d77b2b470161b31e27b81ba32cc19986cd918d9f7bda6afd161cb8c0e3297590a5240b8bd637561b00c8e7b5fc80be0baa002687f91867", + "address": "bc1qvccsj0hspwf3lflutmdvrpqqe749mkg568tqq8" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L2FyYKHRjYj7tKPStgueCa3TmxJqbb1dB5UHwv7pZw3REXSb48bF", + "public": + "040dd71fd2583f88d6d0e79c8053abcfb6618226f61c3e43a9aa8330a57a83344209f549bd3f75b56ab2f1c7024b94f36915b48b91898800d44dc52130f90c4ac3", + "address": "bc1qa6m0t7v0ucr0d579wxcw8h2ln78t60djyd3zad" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KyaeoH6a5Dm3H5Md6btNR5Ev9vPtk2Z2E8EUdqtDZPFnnyqVY493", + "public": + "040d18321f62dbf9c2d13b2654a5cc89dcbae79e6189221d953ebebeceac00508313414bb3a258ece5fb54bdc0428c9c2f60955fa00f6b6bdcd83628df4d03df61", + "address": "bc1qvhxf6czuz544wm3v0kzf578ed03akngxnmeggd" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KwK2WjAyzUrby5wnMx1uaxAhwpW24FTWrdk1P8ceW53zLNCVUNor", + "public": + "0435921c19210137cb919c725639ce48ac462491ee6c7de2a6adda03a3728521d254badb41560d7e82cd1b29a324f5d07c950e4c4a8e692fdb0ffca4d3ed8e8739", + "address": "bc1q5tc4050ztyamd4mryqz8s9w0x02lytyuv67407" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L24zKa3SNz8b3ppbLoim712TchCJQxgFyBKTo4JToLGwZqwxxK2G", + "public": + "04d26d3be27a5fbfc2ebb873a54c7fba7acfb7562ce044c536a8ff1d059dc27a70a573c85864bb94878b395761aa54fadfa72414144609adf6936bb0b7466caea1", + "address": "bc1qkx0tvmv66y55a6rcgg9pcky8yjyhfut447vdef" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KywVPGpLrFgyi2cSxmj1HopCJ2wa35mbeHW5k4v82aMV9265hg5V", + "public": + "047dae153d03ea506b85f0358e35f633bde7d4e395b9a0f03492f9593007523b33d3d287acce7a92b28cfea581b340f9e69192e1d1e7df5f57a094f52e1a79c30f", + "address": "bc1qxqf9k6k3m7tw8d7scj9cqgmhk49ftve0l3nyal" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KzRhJ67wy6fFGAUwbrFp5czDmU6d3TWB7Jgn8P7nDuN4DtGUyjmw", + "public": + "046c0337a94aac151b1de7c3a2f94d4074cc7315b70de68eadd35700617caeb43c68b5de7765dd989638ec6ef83440c70c70193e16bf1e32464a18a466d0e46198", + "address": "bc1qg2zmkkys6j6andwvtfxu5f3pzn8yxqqvz04p0f" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L3QBjVmspXfpsDcFdc9CZe9g316w3ecSDpM2bZYafJ1SjVm32kTz", + "public": + "04494804db8ecc99e483b919594b26a2b1672d4204084b0e69bfe4603bbf89e2df8277bb8d55d67082347443ba22c1f9561c227cedb909ed44a49bbfe0515927d0", + "address": "bc1qu20g2kcqha02slgh3eaclj66emv6pa3vjresuc" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L2yxSF9RuCnxGovkF41cZhMxe7bA7Fszs8gP2xioMeeE66qV6phF", + "public": + "04ab2516703964411331d918dce8a118a13b369a5e4e2a3424e5125fecfe864ccc893a56a11f361fe2ab9c7c8e4a9e2733e60f535d8a5781f99eecc5173e42fef6", + "address": "bc1qav33h9mugwfkd8t32gh9khc50yd70vl53hmsja" + }, + { + "change_index": 3, + "address_index": 4, + "private": "Kwekhq1qYrLF6v5xRBTrwyFdf81JCvgsQ3KJ1Ttmf8FEA4r17yGP", + "public": + "0473ca72a97e0d99c42b510136c0d627e4b7909c53c4762422c85147158a061c6b7d18fc9fcec72b5e0ecf61d10b8a4a52d3d62ac0bb33fe3c012e8f69ff31abf8", + "address": "bc1qrgn6rnz0dxhyqgpwnqre6n2pfzm54xp0anrw4k" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KwTq9qVkh23JyMyWSviM44ku49hwnKZ2saYHm9kpzk9C7Vfz2BjZ", + "public": + "0439d627285584c35e1321458f2f23990a22073ff1755b4e7291baab61d998ff4e72c9d2d5d3d8ececc9b10206b9021215c0b1f042d82ce5de89417df7de084ee0", + "address": "bc1qk6ly3ek4u6nnfrl24f0hangfma5h5pwatwyvvs" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L49SqijPeHtvxKDJ64gr7GxxoWJ8Y3KsTd1SqQTd9nA4rMt2qNDr", + "public": + "0499f74ce00526655c388f39ba88cd10356dc2c68133f50a035cd592e4474c5b6f0f81a8639600f52d060e464f6e993e89d6155d632f8803b9240bcfdfdeda73ae", + "address": "bc1qvg7chpqhyp5mwm4jzdyd92etq3yzu7rjthcptw" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L4rn3WPRZ6qhJrxH1nK7Hhw5CkW8q3nxJvDaSSKGhtADq8tXB9zA", + "public": + "0401ed0354eb2206bc6298f6569c5a4d602cbb63474191bd51e0d085b8f654214f2a67cc95236c1c413535d2c89048259e0bb02a12197be76d64706a77880356dd", + "address": "bc1q92zwxwcp6m3vnxwh5y9x6e8sdxcmrpaaqg30a8" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L5nyFxTTB1BHJU2Mujd3VnzJ1XnXeTto8mNySuH8fwxBaZgC2YwV", + "public": + "04ea83cf4ab3ca5679db549abe608c1dea13743efdee04cd5d06ebc50c7787d02f3bd9ca0f576b914fda01f1c3e00077b243559d42a60ffe52580fff07b54254bb", + "address": "bc1qwpw7fj7kg54cmam4nzw2kmfj6e0sf0n0kmtptg" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KxzXCwCjZ2Wp26eA2www7SajFPm9ak3gRkkNfWS9vreLP6iF5SXv", + "public": + "040a3475c537317b40427a865ec4a3206ad1b0e19b2a7f9c654ec2dae427b35ac5fd3d2aa751cc7f3b89882e0a67c8c1f0d573d2ee656c49ecdc862b52f8a3a3c3", + "address": "bc1qe4qyvj6n7xstkwcjdt3v9l76m6t095vd8lelc3" + } + ] + } +]; diff --git a/example/lib/test/elctrum/v2/test_vector.dart b/example/lib/test/elctrum/v2/test_vector.dart new file mode 100644 index 0000000..fc0d645 --- /dev/null +++ b/example/lib/test/elctrum/v2/test_vector.dart @@ -0,0 +1,2092 @@ +final List> testVector = [ + { + "seed": + "2df4d21d5dedd8c29bf17a99e476a210d525bbf68d5274fffc7517e6c77d35414c14e4c9a50ea0f21682b6b42466fab23848e398f613d0094c3bbc2e8a872853", + "private": "Kwr2iRnJh2Bo17Y6Z5NApKEm8LVpm6gn9ixJg1uiHtb18a9qzKQH", + "public": + "049addeccfe8fce00a24a2d903d34dc1210506973f96f0f04e4808b705a4cff00234951e2316fafe75401fa293103334ac9c1dfedf38ee9108916aabfa0ed821a6", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4aB4UbPhVCs7xURXEFPc6EimYFpFeJ1L3FePMcgTS5A6GVcRwgg", + "public": + "043315efde943ff53730a935af0988526d04bf83a723807b0efaab66b8a776699505718e43ce4afa2995e1b41fc752481a2e93460573410f79ab0b0f2a2dcf10dd", + "address": "1Nx3cfqaPUNw8cxuPQW2NLZ6xZpDSaDxK7" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KxcxKBcJUHNBVwwmteKA1ibMrbaCcVNkoRXQP2r3u4NcG7a4UJrr", + "public": + "0480c2b13874ab89c6b1bdcdf6c0ea3a7556316d665242f3722a12bc0fa82e65c0e7003c85550e1c841223e14519c15782a22c191def3b562c0f3c2182e3448fed", + "address": "1Q9wgfavrSGx6wJoQwFNgmRWTr9LywY8vF" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KwfuQPZdVPpkXBWavmdTuph3mehZ16c7tyP39rTzzWpNVUut1XmN", + "public": + "0481d37a708ba41d321b4c4875ca65814cbc0c761a9cb881e4969d6cd0f98284bef4fa99c1a2fa390d36224bdf956a4337d0a754fd8df41289097ede77994ddbc7", + "address": "1MZyHJDrCr9T1tgsGJnVDFgtAvrR7sW3T2" + }, + { + "change_index": 0, + "address_index": 3, + "private": "KwY3kvc7rZ6cEyu7aQ6Qh7e9tB9qjx4juZuuzwytGY3hTVRuSU3J", + "public": + "04501ec21a81015309cf4539f6a36e9bfca09bed3407ef15d648e90b3d701c571d213f293c5531a97ca9d1960303b9e30b69cf17b7c8578f1177e4941eb4b97c29", + "address": "1P17dMxJcd8KM8foAqjKZvSxmZHvBtB53C" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L1dTySJvZWR8NB7B8i1fJNctPtwaDKnDqhNt9XhadbVGHE9jsEU9", + "public": + "04c07d264b8a2a7efdb61c3ff48b808b88f3817573f08c9d9a7952ddaf9da114ef9cc667fd7db6c2558216e16e6dd85ddcbdb8107393722e329fd76bb8fef626d5", + "address": "1Kt4R833PYcpoGtoTbvWQ6NU6w8aiqQj8z" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KwbJ78N2GbfqazS2A4QfZg5xFddbFFDFnW8enMYiPD6ogDJ6ZciR", + "public": + "04ae5637d67b3f50d9320263c1c031dfadad41e6bb83451a17d02a10e5eb8728fed0378df07802361b5b81cab433206c959cb1d31f85e0219401fd47ea917b630d", + "address": "16f21HNJRfdBpDiw3kEoJWFY9DTVucxKvK" + }, + { + "change_index": 1, + "address_index": 1, + "private": "Kwe37MmtMQ7XGq7zB6btvB4pEdjAacHLPpLEFgsnA7ohGQxQW81g", + "public": + "0472b017a0f918bf57219c4557c15045604fafe71338778e6109ca5162c0897dd4365cd3bbd2d27f692a1e3a1cebb31756940f937444fb34ef0bc1374fcc943e71", + "address": "19UohpsEuX1bqRLrbpGd2ro7NKSUtkSWyT" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KwKuKLgESWaWg7Bhx1bNbwxxJtFx4MfXznBrbg5KPqve37vxPs4e", + "public": + "040d91467aab1d706c54ff4e2959c4022a892dea009901c919c1ce62abdd7641bae8b7b9fa3991de5662ed3cf080a859db416cef04960c94242429f39e6cb6a2da", + "address": "1AXpSocRcivFWTkkY5i2mfjpsy2F5cmWcF" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KzTbXzL7aB8vmXkY1jpueQzYE1kPocBBKJQNeJ93ccf5pLE2JTUf", + "public": + "04ab99904eabac8c3611fec3bbd69cf64cfbd3d50b4622fbde43d3c9c5a1ec3a6daa291f04b27218594bd9e5c745c9878c70c5370ccd2d0e679d8817da7f70a3e0", + "address": "1NnsTWXftRx8nMt6VXnLf9ZBHJhfa6D7BJ" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L4r3XFtj1Bno1sUkY6YLf3vAfRX3BVmWLBjhZJKB2ExiHcVJKrgZ", + "public": + "042cb482bbd0c4f20f9c4c65787f337e6d55105e20c8707892a84960bde4f433526c736d8d539c9925eda577fdafcb444d43e83b594c7917e4ad5835b0996d745e", + "address": "1NyRYx6ap5y617y9u38NETNiSsZiwQhp7c" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L1EnmEN9k2MQa8LbLK8HALw66JLdGcGW9wYLxgSx5cwnN9JdJCgw", + "public": + "046c9c7ce7544aa83bd7944e62bd1f518058e4be7e2f2e44b3e342f0d26ab506320d72fb17ab24fd84f34cc1a38a5b41316857900a5c3a923c5b0edb5caeed9371", + "address": "1MP7NvoymQzCAK8ctNLDtCFkQ1aQ5ohrjZ" + }, + { + "change_index": 2, + "address_index": 1, + "private": "KxDP4DW3k6AdYAtRNroa7YQMXkRwr7gvpG5TcvhfHb7osajpkR5t", + "public": + "046cafecad3f6af2f1af92ff9d1b19eddbcd446abe466ce4325158781da2973d7b8b052e18421c9234003a7480bcd247e4e175c72bfd947114a91937ce6766236a", + "address": "1PTKu2QD3fTW1ZvE9zKNxJrKnCotPZ6eGM" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KxjkbZ39KwnoZxjrsV8Kvzejj2VRQ3Xx5vRMeuEFwxTYMsG6KmuH", + "public": + "044cf9bb53821af19b4c7df9464f89b12df9cd13307cd0d5a69e90f3b094fa3fa01c9d4667be407cdaf7b6159db20d0cdd5572187b335a6eb752b320693de6fd2f", + "address": "129fpX4yXY6XpZYPDTREL3ujuoDoSHRdu2" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KykmXX5zEMYeDDVfwzchHxArRZ67PprhYPScxWub57kcYY2dXXF3", + "public": + "04d529dba8905dff9cd8df59e67bdf35cd245831fbadbd83d741f0d086b19c91de64d2f3958f1ed10d6ca985f02b39afe4b92897568f44f1bd267cc2c442230db5", + "address": "1NZii7NAyZ1Pd5VRwoHf2H35uhxZrWBWoh" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L4u5mYwsabEx5ASeHxhb2hQmSqt1B4LivJJSUYhL6CAQxYcnNp9G", + "public": + "04033a0f6e8e3489274a574eee61ffca6d486ccc0a85af0dc61a39475ceba7dc605581ad987d1f2455419da1f03fccc785bec387b15cc73bb148b45fc74fbe5834", + "address": "16qVNrt8xJJWCx5GvWn56nBX8uZdFcKbfX" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L1MvSk2RdtECkkVuUgDYbF5HhYqL6LmRCDxgM7mjZ537yTeuFaDs", + "public": + "04ff40cd570ea2d1851900a64ca7d288cd4c8fb20de8f4085248cb3dd566e53d9f8bfe4a44d084cb3d56e3a86bc4fee0d1b7bb1ac6a265bbd4594861cc76e6937a", + "address": "1arBf8h8r89Ty5QqAzCz356UkN1q1tdMu" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L1PLntN1ToPCby3btMytPHK6kboPA2bcoQor3u5btXX5iaso8Jmi", + "public": + "046e174a1b8e244756293e0e09076b2f5578efd85c26e1defb1daae8c2de264a07607fc307dfeb802d0d5926fd5ef2a739aecd16b8ea6b84666467b00b19b4d5d0", + "address": "1ADDzdGrSG15N3MiD1fhuuduqsGtZrpJam" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L4xkCiNkA4G4NYADe1apnTaoBRe45bUhxthEDSj4qUsMtm5FGwDo", + "public": + "04b528da46060ad82fb79ef3b5d000222dcc1fa36ec613819532ff532e48595ff693d91959e741d43a035ce95c7bf8b9cf32e3ddbd5c3b549d47fbf5199ab0765e", + "address": "1Du2ssN4baL2JvaMWrwiuAc4yEzZX51pN4" + }, + { + "change_index": 3, + "address_index": 3, + "private": "KwmxawPCdYNrR6j9MgFMd8bq5K4HVXokP32Q73XbACvPvpt2XhRa", + "public": + "048d224433364f8a2f34f051f453253fa9a10945a715a12f1289d29e21afed36e004e216defe1dc64a40ba3b3415ca422ef9c5e5c201615691bcda9c1b88e0cace", + "address": "1F68v32SFrwUDqWWheSSA4Kfzhch8vMUTk" + }, + { + "change_index": 3, + "address_index": 4, + "private": "L4XZ7pzoZD8ix2UTHQPj2ykEYZoBYM49B2BP2yEGCWKNAHSEQ6ar", + "public": + "04587112dfce9bf50f8c46ac6725c513ce9350303d6212e54c76c74e0a4d72b70912aa3e5726665e222e8509466f4d8ed5139cdc8c54307d38ed326c52e81cecaa", + "address": "12TGTvT7r34D2CrkSXf6FM3k2iRnyKtGBy" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KypnvzkhXWjSNZoFp3xDbcAYHTbTqArewyMfTu1oVXyrrjyVL6oG", + "public": + "045200d4fe9b74c6cc5de43a91aeecc99ab9c08ffbef1c7de408138b8f29ce6dec4be977e1373b41812344b0b5398cf3bc6ae49ebb6363388b8aee73ceefa82101", + "address": "1PoBDEWxuTHrbgFLcrBRFzng7pwAFRfvkQ" + }, + { + "change_index": 4, + "address_index": 1, + "private": "Kysq2K9Wichq2s5XZhKW18rdTbxBbThkmXdfu4H2Yamzmxpz5jFN", + "public": + "04be3e94c6b521fee8add137703ac7c8523c7df740e95c86fbabfff2ba849331a5247912e6e378995faae34aaf6c605862ac81755173f5591c56d702ff89a965df", + "address": "149ahKH64M6J27jBs5hkVcfSxUqCNj4B3L" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L2yqx96GszJYgs79Z7VP4Tt8ZLKBXJ7ruorahgBK1n2JQg8CXkfe", + "public": + "04255373a98624154feac32f9aaa41543d7b46c4128b5c433e5924d82a981e26da984e5997b27cd6f6a2046241bed9d8c96ab4e604a4dfc4658cfaed02deb042f4", + "address": "1NyZrMEzsT7byTbBACHMc6Pt6L8QJ68TSW" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L3BxbbYHYRbm9SdeRdB9AmYnCDneeDE3gfxD25pwPDinjneZYiHi", + "public": + "041df1b0de5c32d3ad066548737690a8867a58cd93add87b9d67fd1445f7c6c4b7cc11b59489dd6c1204041c5dea233e41d44df7951d9a6753660822344ca74d2b", + "address": "13BF8GcHBmHqhUE6fuuYkgePHQHr5H8KV2" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L2x2CsAS5JizqgMEDs8DDbGD6dBstXuCPwemyi8fG58Dg2cVuL4T", + "public": + "04403a75c5524c4df03030a80ceb40ddfbcd9c4634f660784451358e27059038fcc71cbe41d6638beb996bf04361700aa15d218dd0f456327f9e97c1226dc0591b", + "address": "1FkeKcHMnrd631hytR6U1tmxsrWztqwhZu" + } + ] + }, + { + "seed": + "0017e5eb7d7a8ffdc3e7ee930b49adc70c2303b5718ec153f4acb0655b868fa27048058a214bc85bacc01c4736ff4ec798feb67a0d5ab4d46fe1052d24b4bcbe", + "private": "KzsFb8Sauv1Y1mTRkAnUchXxjew2XR7ttXorcFTXeZG5cVnWAwZZ", + "public": + "0429166a10c7981f503d0b486b1fd8558dbd73682f420aeda52953625ff99eae67a1ffe1ce47c9b025a9d6f2207095da9d903350d18410e184eaf5a60c6a911a61", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "KwVMsLPs8ysVEZ9ee9vxAsCwZmG8bWA97etYw6wDBAxHSnKSCa5t", + "public": + "04ae03016c32ec5d748938c6df0755b6804f27e134f039c48c9807435f605e09c0aa5cdaa2f64e27421458ab046f9803d19d692dc784b081046c815c678a17a3f0", + "address": "1McDHuHqzm4ncV9j2XcyNDnLeG89gvn5RY" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KxkNka2y4fHeyc8N1fa9QrgFk94Qo6r5XHYgxH5nKzMcvNfjJTm4", + "public": + "0439cfbc3dc90faa0490a6a475a471f1652e2260a21c43509c029b21f80e9d54983a225c6bef77832f07657c03a83097d0f85a86bede8ed392b70835953fb198e1", + "address": "1CKoVQEsAFg89AhfAxTxr3n1K1Tfs4cQUi" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KzfiiTkg8D1APpaeeZ7NrPXrXbhYXXyJg1c19zKak6Hq3Ah1CBK5", + "public": + "04a463b5e6ef1dc17674a677a58ec35055384027a2277ba4c48a5d53797e407535516b7df777b07136e65a0e4b82f2206f1d9d528b483a4fd893c2310fc37d1e38", + "address": "1LPrTfaHGhjxiAeVB4W26phbEcTEVdLP86" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L1dNCDVHtvE7XCqUfXSivK1SDgrcCDduyTe7vsssr3bHuQ3qH5vn", + "public": + "04dd9b51a9e9b01ae223fd8d06cefe20d0b733dbb556a6c5403e1e695ded8eda585cf08ac287f72cd27e029327986a1466a7a5574afc99d8e260a724ffe4aafbfd", + "address": "1P15wGtSSGhVQGVYi7TpYSKdNi8vfSRM9G" + }, + { + "change_index": 0, + "address_index": 4, + "private": "KyHpqUxmwQpdWvnGR4JfbKDM7bqP5vHArcMC6uFaKDP1FPudvDzL", + "public": + "04a04e0d80fcf59c4f762c50207555336d4be27ba20c92ae6c8b8d046be06a760c7de405bc7022f904d33dde9c144f8d39b42c6a359d015a094b1af9935d53d930", + "address": "1CHidWgdSVRXbURoeQrggVbpepHuTKcb3c" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KxEAbL2viNtYrNV4cK6jxKb3uY5XN8FPaUf5XDjPv8A2Gnkmp6nj", + "public": + "04a83fe415c7147651a144aa2ab1a261c4bf74b3d37bfbad98915fe8a45ccabe4f608847d1c05413148e291e4b80f17c8aab37e276334fe2686ddb44ff7bc167d3", + "address": "1G4K5zDE2xMf1A7oCe7VqhiZDK2pGcGAns" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L118E9tASUhhWkkv1WWCWeLVNCPrN6LijAHEywa5TqPMphRdQZCP", + "public": + "04de5c666e27163aa705c3d6bf9e74381c921b1faad31b5dbbb8c8cfd72f9c5a9095ce5ebfe2d7346223db0ef7a74894cb5e02e386b44f9e6a35a4b1da41889ff7", + "address": "1KWsjtK82F5Q6KW794HZm2b6o7e4kb6dpf" + }, + { + "change_index": 1, + "address_index": 2, + "private": "Kxa7h4EutK9VijarRseAWenbLc8rxaDruGtD7ZjciLsBgpwdfdrE", + "public": + "04ef7a937aeb0ef8eb51fecd1a0b5d8c9cf1d70cc3c1b110ab547e21454c5a92e4647b624be1aa8349752f790fc17008bc1762b912bfcdaccc28363d1d387fc02f", + "address": "17ryGAX72tK3Bf6m6pQCaAPNody27P2w17" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L39dTByabdAobmmHkEZbnt2dUb59CwiHXTpzM8kdfZV6b9ryQ7AA", + "public": + "0403a21df574197e417ee0000827449298ae03bfa2a70ee9d1a329333d4bb7d685f0c0247aaff9c40714aa521c68c3a1ac9d6bd4480b7379bdd951f6a352812128", + "address": "1EK3F2Yej3L8zGYpvhGMXvNWeveYQWagRE" + }, + { + "change_index": 1, + "address_index": 4, + "private": "KyJRyxrWg57N8UwvHS956ZqNtV42RHYn2k4gYsK9CVErBqkod3Rb", + "public": + "04269fcc432fb652583494d7d1003141505232e744c9246a980ff6945b11f4ed8b3a744050248ecb8da8721fd18fbd3047e495d08274e6d3f87b5611fc6f98e04a", + "address": "1M6piKy1zCrn4MDUUXxQjaGBYhZcVruxzb" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L5dL6HBJ71MPXYTyk7XruicZuDpKiHX3Uzagvk1tkfiXazZNy2uU", + "public": + "042dc7d99a530ca2d9793c3e0b7dec9da2e667b8d47bc198c537f1e5cf35ecfe2aa9c88df6bee9420f6467c1e74c6e1c9ff05c8cc14eec6607db753731c18118ef", + "address": "1EjnjbafvRmMzRdUqWf6iszRPh11YdACQS" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L2ajmvckSjS97VQXncmTKcmKENppz7p3vN5FMKcbC8czndHyCHbB", + "public": + "04dbd10303d3899592cfba662e94724cccbb1ca53123fbe7537d4d4e1d05792c128a5fa710cb51292555a12349927489567f42ff22af33a4b28692bd87b508d119", + "address": "19C6c2Eye545D3jd2ahG8Ani3zVbEKbWby" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KyhCixL8qb9NxVbFiPS2GbzZf4cjcr9ymmEDBY4dLATmU4ZbAn5n", + "public": + "04977262d31f976c209a4712a85311eb73f780249260532298f3e1a55d47a8279496067293f71efced64ab6fa3382745e6a33ef1d04d1be8856b78976e03a6345c", + "address": "19Q2h9ACGWThCxpNm2HQFkQCteEvDaEemS" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KwyXvJmPd2VRVgBpEF7ozEpYvXANbYjXjMnVXRvXt4NaS9wNnqS3", + "public": + "044d3f5653f87fe3020188830487b93c4fde8cd6eb7a9e969213006e4221629d2830daf2f52a7f2c91019ec6f4cfc846d8f35c50b669fe8a1438e668d07a92d9ab", + "address": "1A4zWnB3PC31S2QcXwMYz9ZwnzeGex2yT8" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L4xxvwjAn6DJQsgc6fs3AutnRU8VGqt2thkWSuRB3f2DmP98L6Wf", + "public": + "04c667236fa7cdf8f580c61c7a619d025e9fb793544fd02f00e996afae585c23e5fe8086f093ace66b11fee53143a3da2c0c137d7312c5534d4f6fbfb9bef5670e", + "address": "13UWaSwGURVBKJumzSpyFVaVZiB31twtSw" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L13meMvuEvJJjH9T2NR6VFRAKKAdm4xdfCUR3sXRL95XWNFwAqvL", + "public": + "042787d9ab38a2dffdd3caa033816d762531cc11fba2060edbb2f0a3970d9fce335fd0a2bd374831fb8fecf37e502411dadeb56a1408d318ae7c82172ff4ef6920", + "address": "1K8hmW3haGoSAF6mPCe52LPKgi4tSHF93J" + }, + { + "change_index": 3, + "address_index": 1, + "private": "Ky9PsdE2h17ApuyDbFmaBK8nSo15CQMt7adNyk8cbK2XUCVUycxQ", + "public": + "04fc43c129f770411a4548389484c3db4647ef654624f936abb73d3f9c0e993c3d7c5f6deef3b9926c090a8d72a127238ab7b472f10942b04be7aa898d6f01c8d7", + "address": "1HGx84nbXWaPCNZ5zLL7fDkCenD4sxH5Wq" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L4qwgdTqpRz1VijzvbqiW9WkcsUruwqgDvjRmMj62UxGtwRcYNN8", + "public": + "045396ca2724a74ff4be6c1b42e52c39e7b134e4a17464e481cb3f514e636d99ec6ef44b61d4592ef48a1178c1320653b8f27a8c3dc56119dbe1d6a8b355958689", + "address": "13tq7RE65XzZderpa9S987EK2n5uHDuP3c" + }, + { + "change_index": 3, + "address_index": 3, + "private": "KydhK2SpdRm7yKXsG6vzv3dg1hGfrtXXoQdWuFGVpK8yFDWss6c8", + "public": + "040cb5d2b634a67dc107628c1ac3f08ef1ffc1c3cbfebdfb3224077a8b1fb6e6abeaf7d3b423b5e53ded41368167ea2fdb6749103da753a95be77e098f1c25dccc", + "address": "1L4k2rNYkgndnhuZL4UTwXfDTZtAB6ZHF4" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KzhiGmSJuNNRX6kYxLNEd2cUPNVZzoF4zsU2RGBtfnUDESRHnzqZ", + "public": + "048b9a6cf516fcad2b9f1b6643e65e96d23f805e2258238e2e723747e482b02ba5feb02b7228bcbdd95d58a68c53adea94949c6d91d76bd73df92764419275a078", + "address": "1AoH3baeEcBovLjxcoQKPAZGcmGZDg7CTk" + }, + { + "change_index": 4, + "address_index": 0, + "private": "Kx1UnUigNKf9dvHsnFdAtzd7hAkjpcLZcRa44z2Knb15QARBbNKk", + "public": + "044af2500df6f337a12b076bab15ceb0b0c4803d5403da4afb3ee52c462975dffe18788ee8ff86e9f0347364f6e1e6fdb15e3b2e2bf9baa454141ab973d71c8560", + "address": "1PXffJHNRAzcUy33FYGveWy46ib2SqoJ4e" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L5TPdfZUAhfxY1dY5idEPmrJ2kgCWBfh9N5Y9xbzjvvK1JWfQ8V3", + "public": + "042797bca56b906cabfd09031edde5e448584ba56963a1cbdc8497d7dbc9964a28aea42544b3e8adb511c40b174092edceb7f63b1120a68260b41298c32444f39d", + "address": "1D47Ko1pPgjSVit1SDG4P6WwB4UkFLXfzy" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KxcFtqDhzT3WDAVBesaNuwX9treCSWVQa9z2CQgHzvXmnqNhaPNQ", + "public": + "04fb54689f078f5056317a76d648ca13950e94ff6cd9f1caccf33f01d88c8fda4520134100c9d79f6b0b537354b05a2032b22174864855e1157df815f090225048", + "address": "1F4UR5AiDFLfMKWWQhFMTVvB8yJoQ2Kj9H" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L248B64oSwqQ7FDwk5ynado8SwRMWdJieEPm6BwWYmFbrYXtquyw", + "public": + "04949895739243f628645cdeea74708f6a73d0c9666d837adba9f11eb33c747cd440c4da0177bf687f9be2f132577a9463da7b3986a60d99c1b6c07a4d86b1828c", + "address": "1NHN3kzi9BW5WdcSxxLsAepyTjiSw1BxTv" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L27MxoiTUrnPMVxrVdKE5A8MpyH8pkL8UMqBTouJ62TwgHaTmimg", + "public": + "049873598dbcfbbad3a3c80c2a104d417930c684a81e5288304831e93677da5dd22b992383c1a288464410b3117e2159a27f06dc3635cf7fb7cf97a75c28bd247c", + "address": "1CdQsNzFFeh1FL7LQqn3crE1dSXp4ZJ7jH" + } + ] + }, + { + "seed": + "4e0fac596365829e5d3caa72cb0a4b939f19d6a05a776d00d3417938f58df0afeea364c9affeac1a4f02f40dcf626dab8df9e35d1406b046c61a4d0410108fae", + "private": "L3awQHhRRHD5bBPqrruhRtppM7MTF4FEYCE69ynM2Lhhyx4RT6CM", + "public": + "042426ec5fec9bf2b5f9a4243a12cb02da9060d75176391966caae5cc9b39d307e646ce05df247033694c7c585694131ba3673a24e1b2fa251a84bb606385d255b", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4qetRpPtJ8YSHWXjfJFGbfUxQiHpuz6MZ9TmTk81UFA951MQLmB", + "public": + "04c88a9e3c1ee76004756f29b0bde65d7738d360c3c54f970f3e61b5da7450b2ca6551e4a547881057b814e1098f7bad2e413397831464fa5d36bea1885e121305", + "address": "1Nco8bQuEP8pRJhxSMkWegnCwzXKz28xLr" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L2Symta7TY4RTTtaPs3aPqjq3qR1ymVFFpRaztxX7sYjQnru5c2d", + "public": + "04f1d48bad06de25de9d1d7661a57683f70840563381d7178ed2976c20f2d484bb13ee116ce93e91e0b2bed43785fe120705370618dae8c336e3863219a0e79987", + "address": "1JRwF2d9KSKpyPFivNttXuCmg8pEQFuHyS" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KzZeFpKjZc1pPDexQ4VBnuBGzfQHJEdenJ1pbVh6K8PgEh4qJQ3g", + "public": + "04e8aaa5a78267e521b0fa2fa73cc3e5e144d1b2bd598d5484d8e7e21637a79054d91a24010c910236552813e4f9e8258e9991a4faded0acc610b2645b20e119a8", + "address": "18pjoywDcvYhHGiTR83mFowSyYHFsuVMfp" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L3GJzTT4zQMD99J2DS8PwrxydBxZXMEQ98wMxRrBPseQiheQT8v5", + "public": + "04b9cb090c17701ad0300ac88e48a7f8b4a5d7077c186136e15a8a1153e7ae1d9a05625ba5688420940079e835ba4e09d88c9bd42df321607bebffbf58c589ebee", + "address": "1CmhiiWz44XViQBtXcucg6SUWcFEq2z1tU" + }, + { + "change_index": 0, + "address_index": 4, + "private": "Kwq1G8SRNwQrGM6y9kdQmc1w9RWAmtdiupHVm41HY2XXbdahJAYB", + "public": + "04f409bdfed02eb77c478b5b53e230b2ba1e8797d29fa3b1a3cefa99d25b146c02a7b707348df039b56b5d40c27e79b6336e6da74d08f1f747e3234ccf955d68a6", + "address": "1CFnFgHZk7SFg7SDt6P6ANXw4yEbgkrgny" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KwXbVEndZnbfrGTYT14vbU32L1GKNPxWm9CR4T8H1YkUMPuwvgje", + "public": + "044f96cff1f475b9c1fce8c8a6f739d9199e836477e173c8b6c20f0c8744a4a81449134928f6158e5f1eeae952395a112c6fdca59a9f4b89cbbc10354bb89e70df", + "address": "157MbspRCaq59U9cMA5BrA2z38VNU4bRfp" + }, + { + "change_index": 1, + "address_index": 1, + "private": "KyqxJg27mmNjTkpiiKSrwksQmc8an2rL4Y6kmRJxPkAQhb7y3jT3", + "public": + "04808271d0f18a6bc4a4eaee72eaa4c75151f33adc69ddb77a9623310e5a7736c864a6a43f23c14eb7340965d14d88f7dfede919d1d4b87743f9df0acd9c64a2b4", + "address": "1iZZvxcSU2YJUDas77i6tiBpYKoMn8vVR" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KyARmCkeB3GzvwjY5ADRD6rYP9rigBvrUiuGJUJBM5yemtPkjwdc", + "public": + "0425dfeae837389105da3af97329d096be993cb418d4b87fb7e87a5011698644828ff30b1ba071ebc66d19ecca41c8d8c581fc97c1841f1992e311edfa27f9f319", + "address": "1CKs2UN8uvNnMuk3nqTGDcAEByVZe8Soxh" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KyEvievaCPzoTGVD5HVuF16CwJG3uSwncfbYyB6CvXHhLPw8rKKQ", + "public": + "0449b0bc96ee976f2263bac4fe707314a3f8e89786344a9bf62932016d807418878f6a44069b650d8e8304f008123cba51b1bffae95ac95a5b1754427434c5f2bf", + "address": "18s1LLJTpZ5ho8MgTwTw8T1ZZFkVEoVhmL" + }, + { + "change_index": 1, + "address_index": 4, + "private": "KwMiEf5cRtNfgB7b4rbgwpQFwm7cKricAcJErb5WVBYpZwpwfrQ3", + "public": + "0409808c53db10f6076f9a7c795abe3dc2a23715595bf5f7ab93e361230d69e87e541e29500033f2f0f7ac5a1ec8a8568233e5a06e2f5d747acc14e3173d89bbc0", + "address": "16uakTdohX1Uqb2m1umP6tZSqHzENF8uq4" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L5gZy1yxmXiYnvFAiK1A2jejc7tZEo2cfyJohwwCbTY5FTdWECKT", + "public": + "04a1575de26da9eb02ec1caad5cabecf85df1059fae969b50d9967738bd703ebfc4787d98e69bcd7d63fd5b6f2c734c151562d578942e369da5ed95255afe6b4d2", + "address": "146ELzHvBuAUqqg73drwrvzk6kCk31DAaU" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L5CPAmffkW2MnBViV5bctRVWPbpjjDgNmuHPfdRkaX6YsHQTU2fB", + "public": + "0478a2ef43022ec4964afe21b373af5993cfb35b135cac9e28e001b513136bd1f50a4ff38e2830aa4e3e5f74d1baf7c69b26b7b7df493fe3f8f4ca6674990e0638", + "address": "15bz77k8LqkJZaHHts2PqMYircWCwUJaUY" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KyECbcRirpXzS7nyBa16Dedxx5yejh4MUaTiRBiVdH6boYmfRvfo", + "public": + "049836456b06fedade2fe1831cb465cb0b6dd64de47838a89234b48634a055d1c63ea2521e4f8fca18c3abb1b245551d975695969820ad58f30e57a3d5cfe74761", + "address": "1LpXCzv4qna3Gvb4oLoPqD8ZoSu2DiGQGG" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L4WmMSuN5XTmXpLDBJ3Yuajx5LkepseUcZ7bsMU25ZQM3w6uLYE4", + "public": + "041b9232973d04f082f6973df5a977dd914a4d8cef0eebf0086fe0b3bab15c7fb766090da023ae1dfb5e12630d7bb6f651419584865d43c3601a620fcd8f757784", + "address": "1742sw44f73xWLdJH5VaZuEJfvxJcHAwZg" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L4YL9eFGrFj36yh4gKWywMm9JS83mCygFJzhZRDGZs96AYnoJ8Qu", + "public": + "044b5a3ccd9d9bea80009e2768bd8ef952bcafa50d2e70b3f0e9545527cb08a833d537393410e1d123eb245a5200e58ebe15cc16f80077a72c487c437b3a5f268e", + "address": "18waC1W8zQJMW9udW51Kjuw5ni83z6sdD6" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KwfDaheFUGSLDKU1EwwDYPwpzQb5e4HaQRFZ711cPtRUBagzS9zB", + "public": + "04fa5b7fcc4cf95c4a4d4417ab451d2a94f42da73783404360d23dd655a7777d27ec679bf67b2b19c3fdcbb18708208b53d655c041032df890f25a2b876ab160da", + "address": "1QBfvjtHeobnfAWAhqLxWJoBo5Ha3pc4dj" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L3rgEtFKcPqMKwms2JBhRkhfcLGrfKn4cGnR9S6U9KPMeMy9FLrk", + "public": + "0422c6566deba0e8d7219f3d19df897f4464edcebb2f956aa8ebbe2a2920a0fcfd2778416ff4815cd7eed7341e2e4c545bc678a704d0a0f578af0174ee8861c880", + "address": "17xfFRNbHDKVDzwVn15ojrFva2NPvffh6P" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L5W82kbaMcAbWQpcnXDrD8ucgf9j7rgESbEfn7K8TsZYf2mHT8dg", + "public": + "0407761b95af13b3e8be1127eebe3244a7db158a6fbf9247bfbefe016397e68fa3acd93d3a48eac6da6c279a43ddf9c5788b7bba5a037fa9763d2ca0e305883c9e", + "address": "1JianqPgVCGyDU7KdJZu2Ptsqyafb87UvR" + }, + { + "change_index": 3, + "address_index": 3, + "private": "KymRsGAZBKCeFEJs9qTVFQM9YFHM6kTJokXcpVUn2gyzL64bszRB", + "public": + "04cb293b7bbd78c888337ed5172e9daf2e83ba350eb359c53720ca3c867d42ed258348306171514576f21d07493c65901c462fae6893c65108a8bc9034c7ffe0cf", + "address": "1AuEycJBpywF7wFANUcooZumaYaUsq3f3M" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KzHdKzuvyvQtGJXB83C3FjKJjkYyEMCRxsvocjjZosP4oEXxjTjF", + "public": + "040b46e3aa49de0062c2b3a27da9c5e96bcd28008f9ae25c28807f274cb1aaeea51e22cd0e8c2c168945fc9182987bbf62fe4ca2ebe928f551344b31e7c0576509", + "address": "18Bm93uBH7MHmUbQT4QUCtULE5DNuo1Gbg" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KzaTovzurGYx4fQLyaGSTjs8ARKVJrd14arneUpoBFpju2aATHLT", + "public": + "0434531e18a3eabd89ee69a1096cba85959621097fc2806ac136780dd33b1eca6df7f2f94c6dbe0da599234f614cea3a8e59621efc14ab7cf304da7d7c876ed2ef", + "address": "1CRHeCYypyrnro1YqCfUybAuMYXE8nq3Mz" + }, + { + "change_index": 4, + "address_index": 1, + "private": "KxEUoARP2u22XWNh9iLdNxjyQcxmQJb8JNjcUgznxAhvpHdJfozV", + "public": + "04fe5c99ed908844115c75d2b6d8d94df6d0d10774dcfa266cc29787ac8326fb77476477e0326f1c9733825db64648b01927151e71269c541f537c5c651b8eec29", + "address": "1KYoT9hFdbki8JwYZkHYvn7B2LUmZHW5Ts" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KyfEvYxNmqYCfEDtBE8YDVu28zy73waVDXfLjwrpQa6ux56BfkJk", + "public": + "04f9f8d76ed5be81fcbb5f04e639643592056b360580cee18d73ab0e677a834065a8d762c51fcd2ba0f354d67b5eb4210eb60ba34a3f574f2bf7f11314cbda195c", + "address": "1ApwV3ka6jhrygiNxDKArn4Kt6uiH8jGr1" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KyG8vuWWzJHcxn2X1f239XbJMQyYRE35nk8Ar2ngYhcGctuq3VwT", + "public": + "04aadc56e17d0cb34d255fe07b64ac1cb546fcf903b8c6c533be1b5f70f745ff9961ca2c1436cf8f0f21da5ac4bc655905422aa0591afd1025cca1d183271db340", + "address": "1JMDguMEEQPmRVU8TreW4tm61BXNTQbqd4" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L2eLgkaZKqixWPZUK3ujgnkpaNXQbcn2tKZKPrc7jAS6sNBNgxhE", + "public": + "043c8c24878348466081646fef61399cc34f0ec873a79a92df005170a79414f332162a16daeab5a6a085c2ae7dadbc8a666807b97eb8b8a58261a8570cdb18a4dd", + "address": "1MzvgBLUjNC3RQqucwNKPBn7tM4Zax9Nt6" + } + ] + }, + { + "seed": + "3e41bb0f5c9da93abefd97867f945a356f28d5f8b0880f6090657259ef6bea3e3eed3acf05f477299183e380be090df36974229bf163da05e82e1ee809633d23", + "private": "KxuyHZCVQsCtxbGQS5irApwYyeDyZYrP8oDyHdBZZuPz9yDtRiEC", + "public": + "04de41fd13da6945af66110ebd3e7f86627367c55f6b093eed3974771dd74a75d78d73675e46897b224093c489d28af71b9732a15b39b51d78b0cf421931e6cc07", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L5Jz6YaLcf72RTavjPhTugH8NPj3kN67xRSfBvuppyBP97TVYFdh", + "public": + "047f6ca0a03021bbd6117434087a9bf604b39d2169e456b2a19dbb5ec2e50f1caad748e601fc6d3c30a5bf702929029d82dec9d36052d55bcd845ad772f7bdebf5", + "address": "18hhH5yK9XPQ9zUgH7vSDDVrxbCVDXaYps" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L2QPNxu7Z6T8bKzXQqiGARHJLdXT7Gv1Rjf95pYzuzMAQgL7WJi4", + "public": + "04a79ef6b355ac87174dcb7ecea0a756cecc24c605854509fbab2659f7003a6a65b897859d358fb80b3df82124ac9a99b796a1de845886a7f8714bc0457ae88352", + "address": "1MHYwS9esVYxZ9fTcwcY8yamtJUhTGQXpV" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L5JrQzqMJG7XVg3uNtv6w77wMoB3PoRFJUmGny544u6CaNer2aaV", + "public": + "04ec6882a2324667199db22a17bb298ee2f63d4364100b9fa51467dee23211f77715143bda3df75cc3fe6effb90d2e9056ad02a5abccbef78d18ec5cae25091e06", + "address": "18tQNZA4hAFvxP1pEPSZhCWuaxGeLHErEx" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L5LmzH2BtpWZHWUkfGPQioTWQczb4fnTkXpP2oBKRae22hkAdssE", + "public": + "0441fe2a0f8cfea6201d812d8b1f2add8352205d30a390b6bc3eaf5ff165def49c1ae5690773284f8fa50045692c8447e182f40dab60c24b0ebabd537f1e941098", + "address": "189HdEZHKSctn92b2uhW79QbgmKzJFkGbh" + }, + { + "change_index": 0, + "address_index": 4, + "private": "KyB9DASPKvtCAfizTHXukyZHkjToyVeY6dcERtQHJWnEeQ1j3CTG", + "public": + "0433d86a0930de291dbca96203339f5b809e50cd89c878cb86240c9b36f6541d3d498d90328a86c9cb3f9555a30d7a99bf87e20a4802616941d0cff47e1316e396", + "address": "1GBbdrQtRGjoK1yyqM6dZtapbdSBcXAtCv" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L4kDQQoDankzT8zvL7ePdcsUZStCHhJpB3iQLo2BSkdnYNCLvARc", + "public": + "04e441e2e6e61e6e9c00c5cc4d8d634255b39a7a1bd15948c3ed6b1b8cb392c70cb4ccd5a5dcd3654f2b525f4d0a29b2d102bcc7f46a9916d9c99b65afae532ae9", + "address": "1MZgCUyFKknTRN1TmiE8rTtpcpMcbsei6v" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L3oqSo1b3DSABEZ5a2jn9ckiXis6TmojYHhiBfYaTfjrwgMHXeqA", + "public": + "04921a797ee763b939ed1a45695302590a1a99f817943f9759ec99fd227d56d9a0f61ea2a4d6955ea82dc84ad683bfc7db928a856e2f58bdd4f7b4fddcdb8bdea5", + "address": "16aGNyNMQnA3ZX3fftFX6Drc5dsHL6aGtd" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KymH9quf51naKdmbdudv1Jd3yQWUMs2XWQv8Y8DsXCLntTTtxeEw", + "public": + "0425f5cb9207d57b27f1cd4a885d7455440ef5451564d4590a2648f6cc5635b32c13232e3c140b90897ae455a9e08fa75b35d09f266997f2d5ec873b3c609c75f1", + "address": "1PNPz8Fx4kDuKgSGVd4ePEgmWzFXM1UHbD" + }, + { + "change_index": 1, + "address_index": 3, + "private": "Kz82AYZP6fsjaTFBkk9qbo8CZXqskMDsFdJr9Mqkx6Bng63Q8u39", + "public": + "04d5b9b6a8458cbede816c50d92d2524b2c19e871b411bda79987021d191b97dba301db5e280c3f42456ffb8655903648d2312fd5df7fb2bce25297549a1d172cc", + "address": "1Q9rwssZv4zohP7L7psUHHFFJiDfLL82Lf" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L2mEdYuPoegZCxfcWVzYR5Y1WF2d2gsd3dXYi8kyvWkGeyKNQ8hX", + "public": + "04996757d37cc5a46dab6b1a65e4c20361ffb4c4990ec2b82426a4665cef26af526374828345359535ad8cd454f5536eac37dc7ef51027e091ccb84dd05d1cff15", + "address": "17N8e5CsocQkmDCzmgt4bMiDpqDNergMvG" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KyaXiyFpgWaExd8HSjzzjJ5Xhpq3QBbx2LxDUVsA1g2vPR2TeWSH", + "public": + "04fa3150c348b9e14de3ba14c1255f0ba14732ec9da7fe9b7b444a6024c515e9c3caf43c6c965d8c0f790089c6a9766354789f427aadfafd275a96f5dc1a1fa748", + "address": "17f7ryFu4bdTbjey5sDWGdoZDczpXtoGyG" + }, + { + "change_index": 2, + "address_index": 1, + "private": "Ky1JGxaykpNJ6er2QYeQuxLrajLxthAjiEX1ezK7iTNZAezuhNis", + "public": + "04217986a2256f9e567eb96443dba2c9aa8a339faa30c46b596fc1b4c42d354985e7712039f1a9ef3a8ead91e4c7cfc2b682d5209cc9ff97acf181ace5461c0681", + "address": "12ZhptvMbENgNALRjyZjALJFWnSyN2zPYK" + }, + { + "change_index": 2, + "address_index": 2, + "private": "L1NTkbLheYcoCzzoRyccyEPn94f9QFqWC2wVkz8ozNPcfSUhZdXD", + "public": + "04273862778a8299a1611204541a20db73da20c5435185edd9201990778f410f163254fc4e5075cb7a7aa68722bad50449f2eb4c261f98dd86e099645c7f0fb71e", + "address": "1DpAeeSs7CkhfeEv9SoCGh5FBVNfrWcPQv" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L4PgxmVXEC5LgAymbod89gwdDS5XYZepsZ1AD9FAQKvZvUnPiKEb", + "public": + "04b2fe32c8bfcaa6586740f89c2262ee6b97f64cbbe55b0c3d4f1186cf1186f51278b7b61a2a6c5bdd1c10139fd0aa07012294bb11fe9f4bfdf4fa6e57a26b2c7e", + "address": "14RaMovgLsV99PJNpWzpjZVZRkhWBEL7YA" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L4tUSyeCyzKJK8pdNU3eak6QBpZB1jJezMqsUUhzqf7ajwKnMDgN", + "public": + "04ccbf6fb01a49bc460e9c986494c1c8d936be9b4fccb4ba6c492a40e5747da9833f31d436f825855c8082f4a2f12a02c277b4e1af746c63a4ad608188a712a34d", + "address": "16aJjyDGMTvDpvcnqi2KAzXpJNAYrgEo1o" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L3F1FJgckD9yp86EPobd9MySRMHFG72KRAeTeic92D6inwQUqbvA", + "public": + "0427a37034190da6a2c7c432698ad57ef52af0e09fe53c19a1b250615287fd71bb0d1c03f43cf1d1a16dd5f566835c9586abe62e3fcbfaa7432cbb7dbbf614f747", + "address": "18JCshX5Y6eEkvZjBXaeU5ve1fmsXe2sv6" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KxkVe1ygJAaH23k9WovBsP8amAcXZpaG83Wkyo4HdgNLiDMzjxvZ", + "public": + "04d6b785156e95016a4a430e26eec72151885c8a7756cb8a67572bd0f37b77cdd5abac1ec0face9e690e92a68d4456193da0d3e595242d1246976dfa4214a51541", + "address": "1HCMP8PY5iEa93erdqSKRKhHeRrjC3A3Lm" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L4jkAGPxheW1QMrfxTFmGhmLv3R2PMV6AvMFkrFTjxsbFuDsDJtN", + "public": + "04eed81dd9edbdbc95d8f5dccd7440b7b931d2c7d9e7e705a399cd9c497eba050e215bf334dfddb29137eddde5e634c669340952316b482839b3be66fb3be55a01", + "address": "1LYKorWgA1jM88fuLfT2FRJzwh3Vp7mBGH" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L2Kwiwy3tNsSnEjhKyYTkNVugFuVUKAjJ3XNCzerL3VZYh7unAHw", + "public": + "0485d5e93f4a855562d3473f51c67c0ba788e3ed985f988919fb7c37e4d2383a992fcf2168d3a34d3a410575edca26fbe2d3b3bafd8f3f21b62449fdd3328d4669", + "address": "1Pm7nX4qvWFtG6KBKu6ebe431RMtko9UmR" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KwuLmY8sa924fm3cqvKM4wQRbK7wXN3JYPh32WV2VPsbqrspSXXT", + "public": + "04541b3b7d79c4b172598f9ea61d27d717034a539d3c702c25718ba753ac13a994c1885c7c4dab8b23b788cbf37dd7191e49f9e856330eca5128114239306d0213", + "address": "1AENoMcdtQjZ1ehyTNRQzYGVu7LcS7ugAW" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KykiEGXLehd3VUMHH38Hf2xC8J73BJDKLQNKLwGU5Qq4JGMzzmK6", + "public": + "048278349a98d2df5feefa1b45944f69852367a35fa1035e9c257850ce513abb8682a4f2c1f83fd7aa60d19aa9609fcac1cd5c2896d2b36468926acc38364e4cc5", + "address": "1PRFgyaf6PA2xLX5Eg7XGVvWLrSdvnZhfb" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L2Q5wLjnTHwn3Q1pSnMtqxKajgwPfzMoWG96RQxD4cL4uTr1dLoY", + "public": + "04acd681e664d10ee7df74568e4423ab53476c7f350687e903c1956a99fe0769fed32b8d267f9bb9c325facc14aa2c59ce1bf150286d073df35a80422c15a10643", + "address": "16TRpbB4jqTZtSDewaMhYS3XbXEgPcEFsc" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KyEw1rvv3LkMCpKXRSikVkHcFq9XyWD9WmxBM5TyGgoA2cSkW4zH", + "public": + "0428b6b64f28e5b784a15db11b093b183985ec603d00119439e3aa3899abe7ded5d0669bfc23a73248e5a02acfea699c5d936b9c84790c8130555a8105016777ee", + "address": "17qsLqurwymJm3CdVGc62VG3KuBz7pc9fZ" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L4Kpfqd8W93uryyR7FW7nVr66Ao3HCXwRZEw34kwJTQe72NmWfBZ", + "public": + "04ba6a2857c8b27345c77115d5703fa89fbca111d84e2428834057e1cf1d2a2af39799d44c41078d6c58ad157470090e875f52e922c7f00f281fae0487a05e9750", + "address": "1N3bdcs2Ea7xEZ4M4oS95Aivr6fFVCtyiw" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KwGsXosib8Be2xhNeFv6bki6hkQxUamV2SyZZExRcLcg7b39dVHX", + "public": + "04edbf1f85a891e68b199c9c80a52ee3312a96995fcf049ca00a1ce31f36c833406c670c61528202261c99b223a4375b45d10b1aac3456b8589596c03ad4f58125", + "address": "14YVYBzURESQBwGb9GmdHYjhz1CzLrhQkh" + } + ] + }, + { + "seed": + "df56aabe43dbd577b8d8604e8838d24c31b2bfe76b4a91a2793a3bf09b4a27fb1101b9adc24935557978a04ba5954670296d23b882b0de516fb7c702b2629817", + "private": "L2DGaqV1xGMdQXaeEWrZXWGZiKKL7hTtBaHWrDAj43ZvVTmZcgEx", + "public": + "040d110bacee9b001019b9e36f57d0ce53d237987844a2bc09415fc5e75be706fa3833427e28fd1987788943fbb1637bac8dba6e7ac954b4ca25df7f0af991aad2", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L26z8BdYRaNGjuBChFChjEY9qqfPsg6qkuxTE332DVXsvayteYgX", + "public": + "04f72d177dadbef3bfc4330bb917ef7702dca046a3fb409010ae4394225649e47e35412d1dc73e9a40248e5944bed76881d09cb782fa71ebf9f2a8f5a0b27345a0", + "address": "1MMsycXs3gw6y1ueb4VwgAFrs8zvt82VUS" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L4raqV8mU2YT1tC1Kf91uUz8ixdwUsfFCUt1ayZojhnGirHPXHdh", + "public": + "0439055e177446e3d5916837c0e0c1bee962e15aa48e3ef2a702198155f3d261548e3ff85aecb55a160d4f3d8f08045a6cf1b34dc4c514e9495cf861cac1d854b8", + "address": "1MfWU5q75jrXhLWSU545RrQ6KduPgM8kZc" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KyypdL43sdmhrWWZBJ2vc2bHtaFJ118V8SbRvrBYXgLWsHqdSNx7", + "public": + "04a99afbbf2da530a5eb0a0d0bb6bc5be1dfc4bcddeac047b38ec7576952dde804b0accf17d72ba3ceb9c0123e10169e426f47f519dea6520db8201d4118c0f6a5", + "address": "12oQfDSgoouE1BPPF4Mhs9oUjb9GRysacF" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L1twZKL8B8LcDbcYEiXz6aN5intzf6SabmzQqNLBRAUXrP6t8mB9", + "public": + "04e64df859dcc590eb23e251b2e71ef98e960e44ba90c2ced9dc22a6bca17f158d1f3be345042829ebf8bee583b726fda79b5c7c37eab1b571eb479575d7c9f573", + "address": "141tMLQgj5XdQtko5M53CYzrrZSW32q8Ag" + }, + { + "change_index": 0, + "address_index": 4, + "private": "Kzr7oZjVJ77Pwm4NXaE5Btugd5WJryDLRg8TvMrXeHYGYdvsjMVh", + "public": + "045723ba30001aef01a6f4b36f4bda445d47c7c1139ca273488d5e85886f089fcd930d795dfe839bb873f785c113512ff91f9e7120b2955790308a3f5ce49c7de2", + "address": "1TN9hWPg9JYCigEudFsNs5tPhyprtw69d" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KyUQ63nkWDDWpBpWUmKfqvyrJ4bPHacxVLmbJnz69AiRBSagyYwL", + "public": + "046c4f07c108d79beb851434fb9f9f52ffb1b92f7f31cd483c3b89ec33fb50258fa0840678702d8d5112a5723c392a7b6ac55b7e6420f5d91d721733f9faf21dfa", + "address": "16dMfkw1MrYPb7U4uL3TUavtQvMJqJQQZ2" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L2hYwxMPDZV9gXKHKUPmouRa9pDYgtd9RE7t5Bc42mb53hyTws8h", + "public": + "047c69d2e66e49f663230527c5ae29c393e47423fbfe63c2e80dece68e530b4d7dc1f925ebfe1bae116c76f6c88871481ac0f9c05f9d6a529c98e1bd74e885141c", + "address": "19gjh1MpJhGoW9MvD4dntDHB2kaciipCvo" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L4FcBbMyk8izw7aEL1gBHi277hczjHSJiNA3PXp1YvnxLCS5QBCM", + "public": + "04be8792a8187879e159ea963e45e55b75d0aebd9aa062a0395fc51257762602ce984411c8c1dc19b52a1878fbcc94e342c6c41d61d77bde8a1dd5080221b6347f", + "address": "1D1KmSmkgPSFEgHFxntF7R9QfbXcuPyC2W" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KybJQX4ArRYjnkyoGTDv99g13FPSccTKG4jL7Tp38sYhLoLsWzfy", + "public": + "044d81def4876dabe9651bf8fda65a1439232876ff25a5515d7f23d84875e227ff19039e77cdb208a895d7fc696c83867f15d3046757a9b3d410982d8e9f490788", + "address": "15y6sPcVRWjJCmnYs1PAAH1Aw4sN5ASCu9" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L4FgrpiC1KvA9VJnqQnnTikGxHcYN3TobVYM8Asd9VNVJRtjbxLy", + "public": + "04c0e85b2839fadf34995750dbaf1982bb59e3ae1f0ba1fdd4c2a2ec27411d243f2da60e06be83e1d2760dae1e5be679a9f6edbd865b3f6e6d65fe3c1dc2b234d4", + "address": "1DF3x75M6MScB36AgKQn4whmqhjUWwPtb3" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L3bfTorx6na2aGDeYypfFqh3BX38xnB9PC1avWzqY4XUjUPe1zRf", + "public": + "0428885fdb663bedced6b793e4b0c3526c3384d8b0f1775fbac7264996f1777013207d9dc62db564ab9cff729efbb4a34f05e97076a3526692f9df9e9f51840139", + "address": "1Rh2KVHPSR1gesrZpdRF8e816HWqr4iSV" + }, + { + "change_index": 2, + "address_index": 1, + "private": "KxgJcGhsEneHjhVovxePPVD95spHhfKhokE4zYtvCvB7vdVkY5wb", + "public": + "04a9ece6e629a3301ec42dec72a5275f8e257069627e6f39fd70c6b5310b6ca36d82ab8ca5ce1f0410b91c276c74d2ff767d4b462587fe27f78b6e443082e1ea61", + "address": "1FdD5n5cBH12XdP22XHAfJN8REj3HWbwNr" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KzuFEMxa7tkaSD84LfJCpPKxkRn6ZPoukM2DJT11FrTfPh4QN7AL", + "public": + "041b9fc88ececf2248bc4030529f6810d2de1fb1f29a70406a7ba39ac3e81f2c2b566bc5c110010fcc067592c26b9965ece40234dc426afdbf1f6210b0ce84cb21", + "address": "1TEKccLx8CthgDVNbG2KhPqoKYQvGZMJN" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L4ewtt7QmaPirQps59M22ZyTieVFwPJNJTgUZFqkfEyQF7VfY63B", + "public": + "04de86bcfd250ba86a39595e58d02d9bf446118562f093d6bdcb22d9aba6dbb51ee318d1a158318742355c22a5f94b3d3be36587297e50cb0210fd78441a97cf01", + "address": "15RG2ZXa54kHpabnFM2pA56oJ9LhtKXMVg" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L5P7bqxWgLXUDHZhC2N2zyRuJop9WodE7JJXTxiAVr3nXoRvZr2g", + "public": + "0417cb5af94f77814d58829ccebf8c8c61e483e6521f6c6e2969ebd158afc17637041770846338d53a4ddbc3c3258144ec0b49cf360f2591fd0263dfdc4a45eee3", + "address": "1J17wf1xeJciRSEaZCauCb2ycdyhxSXgKd" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L1X56xp1qvxcry4eWgb5xwjciH7yvSuL8jFNvGstPm7eqNNvQTXu", + "public": + "0438f415c0fc4b802e97c566589da16b8dd33634970627ddc9283990a957aa3e5fb3d95bf0b02c9cc886f55590489d109b67ed886e5b025119efb6fb3f03a7caa7", + "address": "13dViYGtbv3VwriK5wv5VeFL781VzXzSGY" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L2pgMWGw3kyJ3hkgsqACW7nd66C4Mos9WiWWP96SNbQnKEKxF9Ba", + "public": + "04d75624257474621ab64368e0295259177073bb3d8ed602588c0837d761d67bfd7015ae27b83f1fb0167d9d7fc0949d7e0e815b3d967bce0931818fd7a01f7e4c", + "address": "1Gaidqzr2zqzHTnpcFhiQ6ZjckfVvWJRbd" + }, + { + "change_index": 3, + "address_index": 2, + "private": "KygzdV8TjFPgxM6WV1bCWdTeuNHBD3rnuQ4oubGJeqVCzhTuvyH4", + "public": + "04b79542140581099b105801532de59c9275918a34be4c0aa1be8fa258a0a389a42337d7575a09bb67a09316102426738dd9dace08d742b6137dfe57f30f2a1fab", + "address": "17iYhGfWiATHjF64rqBAX8FKE54cW9Y6WM" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L4F4UMZP4QFfvYMy6j3ao5fssFHUbC2CsPpi6dQrquHgVG9GoxBU", + "public": + "04c45d1ae5549ae626cbe3bfd96d64349125cab98ef9160aad2fbd66b97376ced2175a23df7a869e6fbe18ce48847c2b20e695590d8ea6af04be9eb350d7918ccc", + "address": "1BADwtvX1USn3iqXkkaZzETtbV2Lq3B41W" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KznAGGXpEBwfe2AsFWkeTnCpM1mDU5wYXFdhTuBz8GZb7ezTkaPZ", + "public": + "04ae16857a6f350007520083c059c77ebda0f79d0f386185bd0991e1cdda6711ef2cbf62d8fee1ef67256f369719bdc6188407f74e9eed580e70b574255b9792cd", + "address": "15bspxCYay2xrgDMtALpkTJ7VrgiPwf6nK" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L3szNoGRJD6abHE4S2DxXvrazMUUFXwHFQm6YtU3PKdj4xqxhEF4", + "public": + "04f3d8ff4b347d58e9da9eef628eea9bc4e06801386bf99cc86cc007ec1717670b4fd552f4d7f6084cc28428e494a4bd1cd0787373e5ee806c7f4147bccf5f885d", + "address": "1ANtArZecrYnbxVGn7VpbCPHues7N4atiE" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L4it7FxpjvuJhv2F9bhEsrq9pzq5GmnsB5CNXAtvigUoSzNv1u4w", + "public": + "044b07524b09fc2e64e726bd98f2f99a2ea2d26a85832f3d2a3cd9ede09647724aa2b3d15474697cb2f112ad652f68bff86a5f6593ff577a02c1407f95dfc7f200", + "address": "17p1AcEiXwfHHTDZJ4XAnZzT1hLDLUbeLp" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L2ekPzcK298arEU4ANpei8D65MkbustyaoTHKWi2xSm2dGVpoai8", + "public": + "0448c45fc2549b07434e53784eb1eb9a8fa149f7d568a367c689b1ff3bca6671dcebbe9be8ef9d13932eb99cb0cf187e6c681e72429ba046402ffc4f6fcd09f6ea", + "address": "1AkuPvezbjEe7RKVL3TnHQURYobrtqiDtD" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L3TEid2ir9td9CrxkLCwAo7qcu3Giis8Y7xg7CYRY4EBfNBCDAzS", + "public": + "04d0a6acb5954999c18b30ab24aa903e419473d1feb9a81925abeb5af0aff0239d6939f704365609b6714fd37dc1f64982a309753b6a7e1b1ed8e129a9dc7bdf66", + "address": "1MdY7pumbmAbAbZ3mXTMEqMjg3y2EPgsjp" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L1qv7P4ztJvTNMEJUQLwCZJhkEPiCHFqT6L1v5oqjVkswKxscyHd", + "public": + "0420920d2fc0d8789f4b218077e383b00aa154c9b4a4d280428fe0143ce05938326000d462016cd0f0521c0ebedf19459c907f0fd28a07f3acfb1d5d7b5c9cde9e", + "address": "1MctRnZy5TqWfaurqSz7SwaiM51CMWr6mX" + } + ] + }, + { + "seed": + "2d98f170496c87abf3e24a5481c2f99a318757c82ba18099f15708cca34009c46beb90a2f1a73e2d8d32306876386a2b593082fc795b063ba78b39d84707f21f", + "private": "L1FK4hZbF77zwwxVsJKSY4u4sM4ByZQ3HXZkV9LrRQ86mTbJd1AE", + "public": + "049f8df4d56e998b4ed8909ee474f173a6064ca65ef29012d8b4be8fd224374cf7377a678f828f8574a2848a3218e7edb8fb6dfb9cde13faf74676759d874e2b90", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "KwQHJFj5WqU6HJCkvStPBCYWvpAkAvp5ZxKo35BDzcu1qymrA2QU", + "public": + "0419224621418ee320c0b6de50d7c8bdfbb4d9ba2306cf4b5c2ba69c58f1a6c69df8d7a8f6f5c2a86aeb9d3383f61ec37e3a01c938646f691c0e4d226ed9b44506", + "address": "17zjFceLekkZsLx4iXpW2EcipeWZQygmYg" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L23UGCgNKoHDXJ3SXHjkcfsMAVGCiFh2i6BnBqpdru92FDUzLGB8", + "public": + "049eac161e131b9a6d69eae07d21d53239c98760712f36ee31e2583536c518e93fee84cfe1eb1b1388662420238543b15b9fcb5fd5561e10d5d32da4c01bb52ee8", + "address": "1N3YJacR5CUNXvEVeZNaH7MztP1eBsA9nU" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L4f5SeC3aAMfgHUcibMsbQvbyWomKjEe649rEASLKG4yCQwcCgCu", + "public": + "04ac845d8bfc5d3356c7eba69284c545a5960c93faeb5371f3eacf5d5831605cc0fe12f76773ee7bd8dd7d45ad71182042cb8aa7c80dc858e4c0a1843db75dffa7", + "address": "19owD6a8LVRGfjsuX93Y6ffZq3HP1o3rSX" + }, + { + "change_index": 0, + "address_index": 3, + "private": "Kx7zcDTt8HSE25mXCt7SuMLXX1V63mKvyEUovQ6AfGZKRf8QsekG", + "public": + "041e144b425adbd9d1d269ed0bebb9ddf1935e4c5cb26ef1c518466ca249b639dd3e74c9d5eb4038e3dd0b69931fcd4982fe89ffa061e351fe140cd43069e36120", + "address": "1LNSux3KD4wZjNn1aBqVvyqJYEbo9nGd2J" + }, + { + "change_index": 0, + "address_index": 4, + "private": "Kypz2xXQWmRvrwURt3H6ETDs11FKiveZbqr3tekMAD9SLRLDo9Vq", + "public": + "04d2b9ff2b24ed34ea4b01abe4da653973415dca33108224f2960d2511303c559c482b307572067cc0c24e0a471469852409548ab8274c47b65c6c01b1753d5829", + "address": "1Mw5y8rjqBN7wVF4HDyhJ2rgjPtxv8p1gs" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L2pfFszHxCsezfiJ4QBNu6uQjVb5RqWsJQ3HcPVWkei4GPVUL5Wo", + "public": + "04f01fd78d5af1d79e5163d48c0422f72d9da7a526a8d18cb4f21945009eea2340d23b8e3a400744ec0bdd419670fbf57b1f01b04687d39926567340386daf8248", + "address": "1ASv2dpYwX4JXxGKpZcoWk7G9VYPu1MCMr" + }, + { + "change_index": 1, + "address_index": 1, + "private": "KwUXUKELkTQzxRDRcU2Hdh6b6ew1whz9D36bVYRWC2H3kzg85h4J", + "public": + "0481a82f304045996a99369a611631ec1bdd1afd9f2b6a3bcdf12771599066fe3e5d2649e18f69b8e67b165aa8e59aaf9dc43e173da9d8497aa06dd3a73342c077", + "address": "1BSCxKkLFnq5tKtN22kZ7WAvHpaBvwY9Cg" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L2SGcguG4km5jZnLJS8An7gGxZA5KQyHSLfZscA5g5UYS4mQGUDn", + "public": + "04716ed4ba3b529b79a14521d2f25125d6fbf5bc9c44962abeb981c864f908523922d6704f972da82b89c45a8778671812a94dc557c083f0cfb683afab271a4ad8", + "address": "12KbVqvbZQAfFDCcyuAASa7oVDTnJbDU9r" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L1qTHsWtsxFhM7qgZ2H4qFVCvYmu91q1sBFsSxEx38xqEFiDPc6e", + "public": + "04aaeedb33fe6be6a2139d07ea2813748d634b069b04e6df26b89a22460c03ece7b21eea839530ceb687b45ef96bba347b5bf8e99e0e405494c9e1140786663e2e", + "address": "1Bra3idnXTVZo6r7SrTSA6TK7F8pWoi65p" + }, + { + "change_index": 1, + "address_index": 4, + "private": "KwW8jVmZgCdXyJ5ZJqCrTZBcD361HVjKpYZmaaoMBPs5ArywFKRG", + "public": + "0467a6261b163962aeda05c79293f858ca67d6fa59d951b7de5e5785075e5e2e41442a18f7195f9a51b06764abb30979226f847f876c26e0a550c042b2716abf3a", + "address": "1B48C3eNnjHNi5UjqPmuFJjizkokYr7QhK" + }, + { + "change_index": 2, + "address_index": 0, + "private": "Kx2px42dUFxMaW7K3PxEFeiiKMp4JiCxu3CLWS9VAc9smFGzbh3q", + "public": + "04e62b0cdd1ac62dc68d1d3c210263c26695ba7bfa3c2e06055450eb6a00cba388eb364c6330861a33d9da599774df639755b3146418e85b7d03647bc2e801a4b3", + "address": "1Q1K5zr1Ku6zMjYKSP1Mzo2Cy4xpGw3ueB" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L2Zm2qCJanWLDTjReU2FgdjtNkNZLefidBt6M4yfiHuajbKvzY2J", + "public": + "042ed2712c3d5b8538a781ed8fcde4554e78d84306450fb14e1e7a1facdea9ab668e1ab42e82d16bd239762b608bfa7ffb262d0a2cf05bd1fa1323f0184efb1fde", + "address": "17yGJaCifytbuaHAz9rodv7CfgzAnzw8KT" + }, + { + "change_index": 2, + "address_index": 2, + "private": "L1ECLyLEVEUiSwETBFh9jipTJpvEBSUrQt3PZEUVKwH6YaA4m2bR", + "public": + "0497e42eaf6b056c5efba5c829f61513cdef9716aeca76bede9dbc96a8962bf0af8330310d90a20d1a9b18250d65257f39bff29b489986a64df07d261bf7053c54", + "address": "15iMw2nacDfVu9xahZ2UzyGviAA84m6EjD" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L3NgtLJi8YBLKabwop2Qmo8kKTth4WAL3ZaumZP7QoDBh6CA7V2S", + "public": + "0415bcc6e700460e7768c5f0040ee68139abf2c0481e83234b89a9101e7aee5171e1b94f8bb9eb466c0cdbbd6e9d2b5dffb0d0ecb58fd7692cb8d7eb9b1e64c17a", + "address": "1HAUUyYYbfHbP7QzgDxbVGjaNhQ3TLK1qd" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L2EQDGYtkPvuaPiQfQJjTvHUfK8xDihqXAw3mi2CsQ5wTJH6NFng", + "public": + "04591901f50867767ea204c8183b64928cbd551825cf2bacd11ed6db25a486aa6e5e08d29b8aa92a73c12ea0e71acba7dc19da0544a7641d561edc47a684ce20a7", + "address": "19j6X1Ls6ptndn3ysdZR2rsJqBZq2Rp7x7" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L4umg5jFsdu3oiucLpJaPgAGBTVW8vm5HGNyNY3fsXTCJbTS2A8x", + "public": + "045ebbcaa9ca930ac1e0956483499abd38636c2d1cda6259291ec0cb64b2e8272fa5df15ab4ef2b76857d7f6bc3fc0ec19edca0cc82f4edc339c39f597205005a4", + "address": "12yNpHasdegXR2jSFRz9MPfmPicnbcqcQj" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KyUCUXt9Zvoo3JiSNNTAVXCcCuRMDSM74HKp8afYwX3SfPsn8SoH", + "public": + "04beb47915106795e5e7a9a6845be09d3d902ab4b06d3405f413c7a0bc946628a222d4c460e6499be2913a0223d09e4a0edd2509477e0528ae376895185fc41587", + "address": "1H13g5GwqHZ77cjBz7qJPfbr3yJeVkB4ka" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L3LhUWADXPdw5FtCsXudy4xDA4zepqK3DVhLf55Q5P8t3vbK3vtp", + "public": + "04de818e01153947d1440804c7084263409af5726a901628618fba5d5b9a1f181e500c80419f571f3ea77f73284ed4b20569be6f0b96faa2809ba49abebd533ee6", + "address": "1Ftw4pxyeJfKyXBxvu9YXMsYVL3qEHeBTr" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L1XjxngjqgvRRMGJeoDmwLXwShbcUpjK2GS87BDpap9LiDdzrgAQ", + "public": + "04633f2f8f05cbe86a5bdb1b1234eec4efedb530f40d7e0e0f9f367db328181704860a899e89e22157b65553501f19b489f4c3f8ee15d975b8f3e053b311250b70", + "address": "15hZ5AyTxevxoxUsXdi9dKYfCwzYLEkt7k" + }, + { + "change_index": 3, + "address_index": 4, + "private": "L3bK3r4zrHC3mZWaQxtjNnYCtPWgd9Dna7iq3LzPD5fjJ8efGkxH", + "public": + "04fb651522f1057ddbd184d76882cef780a6b5d1155cd52fe103dbd78413554a5a013703f26bab277871176a0742a98733328df43be2d1e942add7c0fdaa8d17c9", + "address": "13EmfEUkZtgwsRJKhYCGCSmMr6A6Q2XhUT" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L3YjrvSpp5Amy9QpJzkUL6tuFnpf8sxGcFCbRvgdCEwedfNLryUj", + "public": + "043a7af131d58ebc03714404335e0be5aaa4662c92ee25156e9934d5535797701b420ce0d9065ea27c0bd30c644951cf79eba51651d7c673b2de43addbf010e8e6", + "address": "1EUYLBGkV9TnxWFNyV7hnRuqAF8HFaxpra" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L2mxq6ybB6vnDPkaXY2SuFBfgz1cXz8j8WGzX3wkwx3UuMCU3wq2", + "public": + "04181e57ff7aa5fde5b7038eb5f298eab9074f22252695f91958d6c57b837b4d76dcab6a9dfb524e423a9daf57784177a32765cab219cd102decb65f847ea63d9a", + "address": "1KKtVVSDCsBWmxqqaZpbYhuPUFA42pUf5X" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KyFEirc9P82b1XgtxS7e47hEpehFQD7ewPxbmWZ7MhE8j72hmEZ5", + "public": + "047250a9ada26ff9a0262d08a4f57e0f59a9594e420269170cf204d642f528b2fe2a760417721b70e15e8874419dc304432c687458286b119f259c4b65c4e459b8", + "address": "196Fa2mxPN8cTonV19zi2AZSogWmmJkBFD" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KxytvMtnt2KXNqemqDfMbP7gPCeaSaYi5mY1Tp8N553BfC4CbsRf", + "public": + "04532c5d18c43e3098a6f02bbc650070b3a5a3a5c894e8ad612cff05f00e520034640bfd9fbcb6e827718e1f583e671853227a9a6c935bed720f3260150004820c", + "address": "122sU8hmpfXCzxfhv1K6NPM9TEwBGFpQnx" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L2zpRXmAY9ZMfUu3FQyJLyipGn3DQR37aqkJGh53rLwNTnS3pJzb", + "public": + "043dda4f598d27e9af48b6a570104b6ec64795fec6c4ffb97e1c568fb154638366572892b6bc54b736ed57a2aac304014d65f6079d45cf2ec036f87e1a067a7858", + "address": "1jnML7GiNSnRVFAdAX7pzPxjDwZMtBQoe" + } + ] + }, + { + "seed": + "1df5a85dfabb86ac70c7e2d44a2c311f37a891b039bb391cd377b7e75f26b043252933385f365939acca0bfd62d3395335fae94e4ce872f459ddafcb4c334ed6", + "private": "L32xSQmF16NbC7eFymBGwksceNH2b62qzH1uHvgWWkBrKVRXktWo", + "public": + "042931fe952f6abd600d1c0fd18adf993e95a4437b6b87095429582d93384704c387fed388db40c348fc2eb4428467d6ea6bfb058bbe72a345fe78d942a7bf0077", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L58cD4cZ14uWWj34cudpYXk8Nx8jdxWQqNH8ZJbdcHAaWtq29Duc", + "public": + "048255065454018df5adf012e190a80e117e770673f48c95f87809c0289ee4ed6b31402f894840807786456eeeee4bdefb0a45e16bd8c64080ec630008ed613390", + "address": "1BRGR7H6iXkbo5kG6EH7pA2RVUn6Cvc2Ac" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L5fpiXYddPdZmRbYEUQeSCYVgwByNPXrofz6uBvzhD57aanC77uN", + "public": + "041e93e3505f54fad14175b351a0ce0b7f63a8e077f165e5f0d408cfb2e99448c4cb8308d360a044c41bb768cef437f68743b0e697ec8a5c87c9a593b9e984b441", + "address": "19WZLLhFAzgsKW9eeCmugi4ApuAEqpMEEX" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L1ofCQUh7FXVTdU2A1wUY9wPXWxqknwFnYkfhRyaeKvkW9BLZPCT", + "public": + "04031e8a171b22391230346abc95c2c4d44f210325cc46f67ece1b0019fb72ac3670eac9768e7c5cfea4931de6a24f37b69ac867192a853a8d29613bfe7f581bed", + "address": "1MFNrDf3Y7eviChA49NFwZDZPY5Wicevt1" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L1neeTFjVQoHJzCns52D9NGUGmMG2go6969e8bhDURdKWJDGfRMR", + "public": + "04beeb297ef76b34a12faa642ae5adcc9efb4ae54c444ca504f3dd2aed45aa9639c4ac0ae9910fb31843bcc5102d88f691b911a1d58971fd2e7dfaa2b2931c9651", + "address": "14styesPiJJhwEdTxy5x4J5v6rxYB18BgD" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L1AtiSeGEb4H3byzm998DdAGGVXsdoy56CisfPZwvJfBVtUJK1pM", + "public": + "044652022ad960bbbe089faad20a8fee57e1ab569760a89a25efe842f916ce5f9d32e8c30462c6097be9198fcc54426b75fb5aa2448d6eaa9677ec56619a0d4ddb", + "address": "1BLiMJsQS5hgkH26hEQUg888eqdVrExebL" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KycqxLs8DgsBybJRozvgCQVMf3ubGNRn1X3ypg1mfJ13VEjEdM9o", + "public": + "044e2e38651d3a08e688ec978fb52ce426a202264276f5616415602481d0bcf1fdb16c53f4967005e6b1ed1a2268d87e766ad5a15411fb820b5239f9cf36d8378a", + "address": "1EQBT1c2cWyomNZqwR4C85RqLBFmQaDd8i" + }, + { + "change_index": 1, + "address_index": 1, + "private": "KzDaVos4GJYus8QgMK45Tm3Ah6eCe1xjkFBrHJRWNAghrUvHumLf", + "public": + "04870e94887cc2be3bc31c284caa98880660880b97b0c81001805219a51f1b5de7acd12fb1d965baa43854abe064456e5507593ecfc4382dec88f4fba1b5a7dd70", + "address": "1SUxUKwMuSVk1XQRB5LmVkpfn9Vx7A3Vq" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L1M1jsJnxkwJ2cyn86heUcVFbM34ETycRXidNW1oCnUBaGZpBQHs", + "public": + "04e7da4026425148180b1696fa94319b2cc521e1cc854079ebad118338e28faf07479dadc5e5f1ff5063c3a3e712e71842ee9015e2a3b7fb523867e4eeb247b80c", + "address": "15bLJZ7F81A1nBav5CNHji4Fr4zutsXr1z" + }, + { + "change_index": 1, + "address_index": 3, + "private": "Ky7t2x6jexpgFg3UYFm3Dq9pYNyAj54B6cQNGBUQffB8YwYnKaDA", + "public": + "045b1371cc6faf4504f6c35b7230b0631f6522e2c0736ff33f3db0695533b8fdaa2dd9e6455eed27a3d6c1c66c1f860ca7068224284a5eb5d66b03563b6e6a77f0", + "address": "15vKw1Mve9f4rWKZF5LJzKm1fcmCXkP7fb" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L4sYSFWxENAF5VjHzdn5BsE7RvZHWCkFDrd33cndtb2kuyFcJEVf", + "public": + "04be24dd6aacadbddb0a9d995fd55de2f0763b6772a8457b20fddb7ef6c18888cf5aaef6f4578dd85cf3ef064b84e5298dfa16b9734406937ada473ab324ea037c", + "address": "18kjzUwA9Kr8dNAzgBSVnzA4Lh3DDFj9GZ" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KwwtbTBNnvDFzDdvkxudir7FJPfkxz9Qvi4Zymh9tuqUii4ZDgvk", + "public": + "04c559deb6afd19cdc5fee813d665d4e4cf423fd29f1691792546294760836e64b7c9be6b1ae5a3556474e5aef4df7c6113446bc4d92cbe107fa76a564cbb8ce15", + "address": "1JJMN8P4Km9kB1i6onjEjvrZp2fWVQMtXk" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L4beAD1DubADbxCjyLzf9DZzgbnC3CKHMRAerhNja6x5wuzhN5wm", + "public": + "041b2d70a8df3337792bcbc52f8f14241d4d3e6b2495ef9422adc246284d1c1c8cae748b6d56723e85ff9e40ebc9e8266976f7bb5e0b743cf8f77df8c3a4275289", + "address": "1B1uS4mR72ohZsdG5AA5ZXH5yAyTypCupz" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KzPkt8bJobxWqHEviDHSk5y2wY55yjQYUAeBpiqsL1dieeHJLy6w", + "public": + "048c94c6faf2ae06ed5760cbe8c2520ad9fbe10df4d7266c9fae576a60f735a3087d2bfe7e19ce33ec907b7491f31c5d4c7fdb411a9c8d61c3314fa402350ef0ac", + "address": "1QAtCrULpskfFHTpLkwezjbzxSCFPSA4TC" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KzHLjwR7YDR35U3tugtEywA2otqicS6oSgHSKqP9E1yajSqhKSGa", + "public": + "040dc37b42926ff0a5420242fd4930dbb6a4b4a0b78f82e2f616b0da34bec43da7e0473134073b8ff3f71ea325b61835b766f1b7abe00fe2e4c522ab577b8afa2e", + "address": "1DLq2gqDsE8Yu2ZV2n812YWV4VaSS5fLuj" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L26T3MsYw1a9ByKaHpghy2NiaCwPWmNvNwfuBzKC62qNQo2RhwZ8", + "public": + "04e14c3668b774020a4f640284fe9b65fcc5775cf6221506f9cc061fb45ec7d58b0eab78bfc3ecf6f154e9782e2c6811493790c17c3fde20a47cf51741315a3512", + "address": "1FAMQ5VCnUbEVHDjXwPSkA71HEezEtcSw4" + }, + { + "change_index": 3, + "address_index": 0, + "private": "Ky88HERs8iSy699ZbKJVTocYNXsqcrRyp8mSkz7fByQrZgtC4bzG", + "public": + "0463ff789162ae130fdf43c3c7bbed5f09cbb88e8fe05d7401e86b60eabec3cd56df6ca80493021ddcfc80e33e334738e7c6e4525c37aeb2aa43d351ec2f907c8e", + "address": "1HYRdvWGxLswWZEMuQ4CW4mcY7K15zZpVN" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L3GpWVJhCyHU6MpdDwz6xGLe3VVNk8Ej4PcW3sCgtPjDNMtFwpsp", + "public": + "04c2e7b1a17a170562a3f35bd25172128b4724be9e9018883e3d8c6af9f6c6364760d7554d59f4e7314ae20a2a024d0a4b5e2e3b08600f940412b068e24c706b7e", + "address": "1BwRsQCyr8RQP86wCwVnuH2DKTuukKkb73" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L2wnrcLq4HyRdMTSBAzQQZugkvKewHDQhZeUwi3v7oKg5nEeeTs3", + "public": + "040fe9c38567a81e78c16869a477e66d4e66664b41bc3d67ee2462921ad7b170ed17cdc2bc708565ae9de567d5d112ca1c50d3281e4dd783ccab6e84ec9c51c042", + "address": "1BBwbJkEf6zNTTXoCdePmbfndguZHDdHJ3" + }, + { + "change_index": 3, + "address_index": 3, + "private": "Kz3ej5HFZpJ8yxFJFm8sPo4a5ngroKuDPam7U8WtiqhDRaPF3obZ", + "public": + "0499e7b3bdaff28445c6afa5eba5462e5ce8121306168904c34238ec12e06a69b55e6f3517190b03eb520ecc9ac86e88a7ad0360bf8c587c8f2de8b657f95da3a8", + "address": "1NmmorC8pEEF4LBSmhx7ZNcwkhpc7Kknh" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KxH4EUZwsAGSM9Qwbfsq8jeZSG1eBCC4TE4zSmhRaFKEVwiPFepP", + "public": + "04794e9f38136096fbfe950f6b8276f533f83f303dddb0edcf83a26aaae0d21f1d2f504b4553f6495736df6084a30313c6c64db72db415558e640f9e41b41f7dc2", + "address": "1B2bszLhLwi9sZkQTbHsb8dtt5DDLa5sJx" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L5RpmKENabpBp4Jqq8VHk9sva2JtG2fXWekmoNy6b86QwjDNDEGq", + "public": + "0428527b2b39d22709426a2bb3588d5b48fea3bcb80949871e8a4ee2a76def89f7afcd0fd836039c02360b8cc5b99703bfba036e6b1858d778accd8d1db676a601", + "address": "1M6yWnMqxySQQUkHArCiMxyzkS3ygYeovw" + }, + { + "change_index": 4, + "address_index": 1, + "private": "KxZ88j2nVMJtyoWTzK6cbigVEswNxVt97aC4mHVkmAVVSSVWkk7G", + "public": + "046c1770eceba02ef010920f6baf6c438557954991c0ddda4bdce49dc3222f9f704f9a42c5662465230ffc7ab615f29b522bef107a850af9e1bebc00227b393b0a", + "address": "1L6N6PsUrhy5DEKcHAT75HWgcrts22XJrZ" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KzPM7gdUeqZtVzA9PQ2YzSNxDoK6diasMthWPABVQy9mMegHwVKc", + "public": + "043e9aea9fcee23bec06480e530ad2ebefeeefd314b971476960a5319d4130accd9b9f31df5c0e4a349c6f3edcd4e60c6e41cd183ccc8dec5f57b67c7540161db5", + "address": "1FrdQ3eVHv9jiUwsR5ttfGV1gyxkZsCsha" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L2xjfzpZxBhznxWLsKdyDBhxWGdo75qx5VfZ24hZkXW3udGR6C5L", + "public": + "048d5645b891df231fe91d0663c4e8aaf0392a08ed2fbdb69a10bf80458ed5d77e631127d9d99262fd38641b2d8f259b915fff9d0c08c5b07b115c6c3e998ddc58", + "address": "1FyBeyYZu5TtddWkdEWaqsptX1sWiwWk42" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L4CXZmhMmjjgZTGETRTZUT2B4W5RLRFaG9uXxShM1hU8M3ofUbGe", + "public": + "040ca8fa0f8dee09763648f9a61ed7a30acb0abbb47915457a3c0504a261d28c478f087d8493f66e6575c092c3cae564bd46808e7f8a0f83720394a90235241cf4", + "address": "16TuqzdACo4QrRuP7DPciFTMvxmhv2SR5V" + } + ] + }, + { + "seed": + "b07731cbf22652ad52dedce0deb41febc02673b72d4d92981e346cc3bf2980301a6c6db6ec51a27426d58dd4e2b9717e606acbe2e67aa4f1fb602583e8d2a9da", + "private": "KysXdBkvndpgNvqtJfkVogtV2XG7SNFQfaaJr7sA7VMW8BgFkcop", + "public": + "045e4e91bdcea9d48a5abdf318852e86fab78e8b67a3e4c33cf62681dade750efe3b8103ea7bafa69b61bfe97a9f1c1be49f14068b320ee7d2f515d184b2967d10", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4mZPbZgzknviQ7yL5yKrPombAnRM5jBKkCv1oU1ipGhQ6V5FBv1", + "public": + "04ef8bcd32fd4219d1897eb5a6b7a88eb1f064aa2579c5ead434b330bfae69829599401e4d2f27398fe5bb0fd987388ece5ebeb61d7559d7a53d077c2ed0d4a635", + "address": "182o4XV3qSphLmUf5tFTU7Ph3fQrTmyBfa" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L1FGnfYQWZmWB4JfdD91T52x8gfzEzbffbXwj7NG833gJ8WGg5pE", + "public": + "041ecd42a71e8bab891ff60f4cbb7f80f1012d6473a590703e1136a4a0c233877622c0ead11f2d58bf1e455049e76621facb7dcce5410c5ed9358a84e87ae0be0d", + "address": "14TngLkugSzddXRLr5zRh5ZdnjgHHiZnMC" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L1FdGM7CGBGtY16okE3GjDEWDxaroS4sceYyp7eqHmbSWCXonSUR", + "public": + "04ea2f638064cc5ea8ba60520e3e13996bf99acaacc36a19b842d8c30c55352f92d007889fe8398021abcb739c8f755d09b0e78d2e5433853e043207d0df906a12", + "address": "1EeXajkBuJj6ebEoLX3nBLS9Ay2LqqQ6Uv" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L1C6bD2mRxASqigkGaqedRBvp1SCnXdTENakGJhE8MA8YDGunR9m", + "public": + "041f05e524684cab453d9506f067d4729d12e2db99501579369dfba95721e4c3a119ff22c5c4f60a139f23fd1f7bfbcebd5ed11173710e254eb2c49d2db7b1ce20", + "address": "12fyZG7v8Szn3F4iHdWDTXtY2hcuXC5QZZ" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L4NXh5FiwCNzLnCmYt67nbntcPEsjiyiDdV4qCaMpaH7fkKMZ31h", + "public": + "049fe672637fda6aad8a33a0c5cb03b1d55580a6bcaf0ec1afa752718871a732c9da747a5c4f50067deca6c4db87f7c8217519d77e2f3f4d70963507a9565006e6", + "address": "1Q1Xm7rSQTd5ZBovfmuf21ctUTNjhqKh6A" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L3ph2kBqSGMXEfe8v9pCa7ayU319qDRB1k23AnwSskzDhUBYSHYL", + "public": + "04502e9a696ca1ccaf378517928a1b278bb56404fa987b240735f017509dc22ac617da555b807081fc22e55741a0ba9e4434f2e17740fbb65de9926f65e5504f15", + "address": "13uiENQD5j4gxtbT5n5mVuWsy8DQvztMAJ" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L33ZBEpxpGJNBucThhy34rvJRBenR9ruztZdXM3427i9sujgoiLF", + "public": + "04b651dfa04f03c043d7f9b9387266c2418f68e91d16c705aea4994d78959b47f350d11b79e4e66e0272914091af3499e9ce2b662f5683ba3ce66d9838ca2534aa", + "address": "16GcaqCQCUiefvvb3fKhvPXf39NUxj11pE" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KzFL7UHChumzK9qcQBZWvZG4ne89BSgoY1yciTNcEKsAbpGfvFHa", + "public": + "04a6c9646e7e15a9cbb1b1389c256371bf5fa390505c2d36c6857ee45effaf60d2186c24b72cecec902d2ab87137e0ae4e4b0d46cb27fa5daf704f64841d9063ec", + "address": "1AVk7DjdRVjUmiLDSf7ULe8ijZ4FQid7GB" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L4ikmYNNRjrbF28EFaUYYPWYcdUcD1w2ZM4oSTDzeFTu8vW9DEWF", + "public": + "04c433b260dc283ca536c5aca43ae843edeae7f2f29aadc631584b88e51e5029aee620715474ab2fbaf2e313f298fe874e5a8faedb007f596cdc0363adaa17b25b", + "address": "15EcPGBSQnLMsaGJyEKFKU8o6kfrG5DyRU" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L2zN86cKRAjRRq72dEzDioAN7mqNCSVRFG1Xom5PNFCof9AT6ArQ", + "public": + "045c061ef3bb4f9cb0e1c7f788894ad6ace84aa1cf7bc8a7aeb851097920442d7856f5107f18813f66488634efbd422b5eea4f507d3c8f8a94006efada2f16d47e", + "address": "1KswmCQ9Vcxby8eD9b5gR2Bjqw88dikocd" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KyaYBKFtABkcqgSz7SioycWsW1jM6LeCRxjZd9NdTmXS4E7wESd2", + "public": + "04e66c7ffbba3efe06217e481237d1f5fe8bec9fb39f0e113d413dcff00ca90d48965a585283ddd3be5bd719502dc478759039b0079a35ba8b921d0b582e6ea65a", + "address": "1K6bVA4mZqcKmwybrpyaPnHspYW8X7EpWW" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L21c4HQi7MpiSEP7dZrGw6TmhNeCZ5eivctJ4yxUcRQev6zzAXzT", + "public": + "04abf15b4e52726d73d63c38082b16b41c302999b0762e6f07b245c692583e91f8c359e2a35ddf368757407a13933abeb8b0550e0c6bfb01c38efac731192ba61d", + "address": "1NYjmXSqokBaZidjuApTCLfe5LLFqKaEXp" + }, + { + "change_index": 2, + "address_index": 2, + "private": "L446RCSuZTzSJUR9gazUuXRKJNhwzS71JR67D8GCarsvaEPkqQXB", + "public": + "040c9c4b7a4102f39a1c98cad6711e7c15c68b133c984034569a81555f6b13bf42c99eb298c4fe3eb42b52ce1631216f4290b8e363190a48fbdddbe5e3bc6a95c6", + "address": "1Gt3rQa3RC8cNNZ6A1A4fk366LFus9WUCx" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L14VwzYpAD34JDNmQVDHwgah8Am7hUFhBkBBR2DgBCdywZ6ZWWR8", + "public": + "04b652c9b3474065a6f1c7893bc441242c3998858ec1b6c299767ff35ad6f036361acb729249cf80eaf48e7046c66e007d717188693d6a2c1fc86c938338e27ff9", + "address": "1DTjgLbqJgYwQQnMpnxqVTX7QMdhxr4pNe" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L29vnUYzxQj82MZr3X6Qvp1Rgn8Ri5rT14jkzw239J6a584hhqfW", + "public": + "046ec383293e92942fad8609ee4edc42af155f239898320a59fcf2fdb440a1a8e5714835201854bdb801e11f5d8199cdaa79f7c065006615623bed2d84cd7d5035", + "address": "1JzFP1JaYRU3D1RcGoHCtmfzXhj2N9dbF4" + }, + { + "change_index": 3, + "address_index": 0, + "private": "Kzx4Kud8mGcznMbjLLg4pwh9JjFjUhAqBXSY9KgaCvCxscVCMMbn", + "public": + "040a509a8379b48bdebaeaed12140a49bd0450c5cafa68d52b76e06dab3a0c4d9293bf5e212db280c2334a7c7acf0b138f98a27626be66b6d36cae785ae6261245", + "address": "12JbPs5VUo6DWpiFVgESaWNe6mjRKEVn4S" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KyeKy4wz23BgkDgWLdsewpPRjwuk5MU4UQPgq9ZFjbjT8TRujuF9", + "public": + "04fae0fe20852ea0334659b4d51f11a4b0c16e791fcffd84ff325d7a4f353c3ec264edc039084d82dec03df7420f40960a059758da937e5ab0997ead34011def27", + "address": "1CHSARjwF5KNTiZgFx56sMVdWeXpde8cmo" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L2KGgjd7MswnmiBRMmdWHTKczamPSZLU9vsxPcgi6XGpoPAkLX96", + "public": + "04ab47271e44d50cab8b5eb3770ba983e532c2f026ac2c1f35a248d256b281fa42b1059f0562286d8ce791dcef8d2175663047bcf34b663c79dc250ee385b3c7ec", + "address": "1DR5F6EmGwDQmJfWQqfdQkNznCFeYKNui5" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L4jynNuYxCVwYdpFCYVvMyTVFpuxRvbx3WsiFNV6yEVG5gQDTvX8", + "public": + "047025c81244552caadd12aee382b3cfca21b39abdb2b70674c442d1e6745827e43f3edecde6d9dc145eee949f95e54f4e682e6f7698da1338f52043b6838dd8ae", + "address": "16bjPsYh7AYjpN4soBGk2ZUqASM2MTzRSw" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KxMxar8pPArfP3MF8CdhRQtY3jyC5XqhHnCQPQYJjAi5YbAfd5eK", + "public": + "0489d7f9154e15719ea3bca2920c0791f938330942c1a81f5b2564003f06171f6641c53880d90cbaf3e781aeef3c377a93677699b61131c3b9952ad504f5d38961", + "address": "1C1LwANFC9hsiGUH436AQKE9CZx31k3na3" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L3viFbTvbUw8DPhmqm9R4SCuFWrYFxcx4Fif7kwrJaT4hQFjTXzR", + "public": + "04178ad228630d3b18980601929cae8dc3a9a454bd71832c0d609d2ef9362e1a02a2ec7aeb945a5b85aa951d32b544fc675f0fa26abcfaa8011c7c3664930f8877", + "address": "1DGU4jGcs6kTn1g1LkmabrpAzLXBwFBhgu" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L37o9swtoBE46eQBgSSJ3XV9GWGZHYBLrr4sDiWR76qe9Xk5V3ar", + "public": + "04237fa6178071717f5f58dfbd137bfac28eff255b1be1645cba34b1c30906414425242ca467b55a9d8e963ef49d2e56a1e41843175d06e58eb5ebc69dec0a5a27", + "address": "1Fc55mSNtCbhxFF8Yp9PJReUMXxig5FiK7" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KyARKd9uTZHJ6rD7MgdMswpFAmVbRpQgfGLCPacvkGqWPcyCVGQM", + "public": + "04ec7fad94cf9bc0362999118cc13a8f617acdad46ad4da426684dd17247fc815f32963dbf47b95ed04e05ec439c627528c7cfce1ce482bf93d84b027e2bd3217f", + "address": "13WQSmrjreGALsFhm51HMa88XhjddNHtCQ" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L3jpV1BieA8XLji26wsWjYjr5Xv3ycXesJsn2tzVVuioSrzSdqdn", + "public": + "0405991999780a770f6015f0920b4e025ae8f8ea4f5682045231f473748c4148f7ca2b8cf62d70e6582ba6c42aa49f718d65ef3e6f35ac2434a19663cceb066918", + "address": "16qqxenVTyDAkF64a7XcqZwURhwS94Q4Q9" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KzcWQLzC4PukKeExVLPAYHaELRDbjBb3Vxa4m7hQdCbQMuSJQJmN", + "public": + "0430918183d6d52a42b6d7559f2ad836867769eac6f2e7641867bd4bab6625bd69b06cf5d6ce729d5e63be803cc102383f9b43b87bd3f6af4a56c8b2b34cf4947a", + "address": "1Knmv1pxzcTzMBhocCSs9Y1YhRxRUgxTEp" + } + ] + }, + { + "seed": + "762bb4639659f40b8c38f4ca9b4a591af48841757009cbdf3131bf49d754fa7b78ce8970f5e397a965653547e62e9fcc3ff5890abbecc0ae76e07d9df715acfd", + "private": "L5iB2MUFB5j33BUvTCQoKxHvXgfWZHnJqVHyDGpBJ65sdLeJ5yzE", + "public": + "04792a6065ee703cdbf4463a0b722a851c2a240a4c828396f1bbb5fa37be47fa7ed3c2f46373a97cd63a0d7d9fcc1e0f50a7221d799db37b8f24e9219e7b01228d", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L2kQPpnmZQVUAu7XJMkZ4TknedJQk1yReeCAnVfSumE6xiV7uQMg", + "public": + "043d81e52cc948fa10569db6ffee94e4fc538ac59b8e5ad2f53ca1bb36247a9ffea6d1fe16e3471773a33f3b3b206966bfa649240b86f9c36b9f3a4fc08f1bebb9", + "address": "1C7KwS7CY6DdQwHLZtL7hXfxvNy6AYhSNK" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KyNHvafhqVNuySRW2PXUGjroWmnj5zXfwkWXuiVW6ueZyuR9xvZA", + "public": + "0481ce0151cdfeee158fb7db893d3c40a422bb813e148d9857ca3315edcc23b9391ed40d130f7bb9f643e641891136e5b07a0ba9131f4ad679031371893ed1d0ed", + "address": "1MQBjreXo51hyva5WZ1yHsfkQHFr6QHZuF" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L4z6WPM1KRtUc2S23TamxFCM4ss8GKWaXmh3So8b1WDnawZC2zL8", + "public": + "042395404c2b562084e9d961ce1ede2ba52ac740c8e44682d6a7145f467098e573027b379ffd7377b493daa69ba0a02ce4cdd6cd2f5edcda00658b38915b2fa020", + "address": "17tmpBGW7ib3rMWKLnzoU5RMuL2vXtDKrS" + }, + { + "change_index": 0, + "address_index": 3, + "private": "Kxj94QvSsDVt7tphKXNqFAvnU9Q9kf1KgmRwQzkdpHFPVxf5wbch", + "public": + "044cd6dfd049cae0ced285e99ae37d2149af5d8093f1d9c2780f598b9c15c7745c073970835c2730371fe6e861482bc1d0b4bc77a0c23a356ecd3bdd65c8d123c0", + "address": "1Gidew8otzSqwLeUJSjgc1QmPSSS7T9E59" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L2aYTfQopx4LXbj2wJTF3xBHk8g5fSUfcom49Woa1ap1v5fvAtFA", + "public": + "043375ac4a507402046740885cc6274f117a91b90e1710de1c86e5ea60c074a6ec224b604d0e784ce67481a9768cdec484d93a9663abfb0f80c5722a509c970dab", + "address": "18oWaTnn4EqTTpsxLnmVE7oQGFaRJXUJ3y" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KxycFP8Rg4BQZnPkhjjAz4xhKbwpW36jVD1ejZhBvfKFiSos9LW3", + "public": + "0467cb14b4f03ea19a7dc2ac6dd45c42986a3f6bf5edb1e0b4de18c08a45c7beb5715c05bc6f42ab0178fd05d188d642bb4760a0c62c7bfdf13a2774f5156f59b0", + "address": "1EXpsoW6mB6QLRnwsXY91wMsSZ4gBLqJ51" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L5iVZip42hFF5iSAW9pn6a1bKeFHE9FGBat7PS3KQncsn9ivaY9Y", + "public": + "04c6842a608823f59e0c01543ce50f231d940889fa64ade045e4afbcb7ea29f9bfc4aecddac975fdfcf253b8a8fb4fd525c72ebad3f56a5b8287372bfd74575037", + "address": "1MP65hBYvheMZnrwAMahpjyhA9m331RxqP" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KwQWtCQ2EwmcSoUqEopaRbBv9yMLqhjAnkCWnn3kefWf2Xcu8Y54", + "public": + "0474d7548df932730e65337a6decd08f3475913aa6d053bb635d7f64d85b25ff1af2fe0742d1ce652f79d6227ac670484819d9d0adbc928738013e90b6b83b071f", + "address": "1PLgPGHTnywqC5Ybsjnbvyu82QDdz5Wpve" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KxUVRCEZrNK5iFP6btmu1mbQKhLJ9wRS1CSZehG9EX7d4fRjPdY4", + "public": + "04bb0e6737115f633ef13ea61ad076aa667acdc51f626f84258587accf5d8e57072999c23b4050b76a0ad872c72a4797efda8c1aaf6c7ec4e05dd128a4e0f7296f", + "address": "18Vw99aAn6E8rE6Q4FXyu88FMNAKb6Fu23" + }, + { + "change_index": 1, + "address_index": 4, + "private": "KwfGEKdvuYs1WAxQWTQ2xEj2D5f3D4ZkDh1EXNzWzfnPopFkN2CY", + "public": + "04797a1edf5596c10ea631c3fd0e18bc71bdcec748e0e541f57ef35548ec92e356c91207f25df752210b96927704c623d4a414178c46c2256d081f25a59f27dfbd", + "address": "13oDtCCjJyWxSXNdRdUFs3sopvDbwH7bz9" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KwpzYhnNZzhqhg2giD8wUoGLuhYdmEeW72CJXEUoRQYrNx1ZJyoh", + "public": + "044c69427bd48c1434e8fee5736d1ce3824f6bbf37ddebc0d1b5f1ebd5ed5e8a7926d05d3946ad03a08a2287944a8568aa2a5037f8196ea992a991ce0cd3101548", + "address": "1EDz3o4JR5U2PAF1gs2Kn6HNnfMYKtAxKr" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L3PjpaDFEXkxbzXyqURN9rnTLLh4pAf39PdeorC826qx1iwbQa1s", + "public": + "045c054488959b5bd26a015651fa076679b8f84aecf514f95647a24d2b16674e980a93a0fd3009dad2d2b4ad2426dff9bfcc4967152fc9a7865d543e29824908d6", + "address": "16qXrWNYrVDCYQoopDiRNcxEXJLArCXRTG" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KzcLCwek1zBV5nxY3EaEvsKFfBTkmm5LBchgv7tV6tdYocGeQU3N", + "public": + "04b7059a73594d1c89b58eedf76ce53e06603bdcfa381e9e8757b4962f5b76fa4134986b2247e82df9be4de5c95d0447c3da449182619c36a6443f74f236dc3765", + "address": "1yiC65xG9p5zGxcTxNEhJp6H7Ypx2P5jq" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KxxaidJ2SiBHABzjFE8nzvx4Xb3XjZKDwTN4WdmEK2qgHzkbE8PW", + "public": + "047e1a6c15b20e5d99e8cd58aabcc9c334fed0850c288a430410f3ae5055bb36df20565d049487f5b2bb57bfe54420ddab2a7759dee3f459d02ada05057eb0e497", + "address": "1Dj2QkgmwVF8Mmbqfh8fNBU6pyfGMahXpZ" + }, + { + "change_index": 2, + "address_index": 4, + "private": "KxfQnbxX2tir3uC7i6xPZEVEJR1WsXSEteF4hYSVrP5Nqj47Hjjq", + "public": + "04d9ba3381e1cc6e6125506bd176a456e478515007919e2fb05a7cf7620e9e12631850e9b147bf64a3ff2fb4bb7e4c67b2ee2158753b5fa46327381b113de0eec3", + "address": "16LUbfnbmwUiTXfcEn1bJsJ9LE1EU3mncG" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L3UxoNFGnb4xVaVfMYpG67uYx81yLZ6xs8uwhJW46s381j3E5NZT", + "public": + "04c7822e884bd9bc804b3a8f1942505adc44b6e58aa8c5742eca58fac8f1a6c668a67461a2760db314b4ae0d8e910f3d5f84735b193ce831b6353da5dd64795373", + "address": "12UsQYTN9isU8pw9SoU7SW8nMj4h7ZTHNY" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L5JknUbsKy9vz6KHHpkZ2yQvbDS8xuLLBS2QjXdbd8bjMFJnciLQ", + "public": + "04c07ede3a63bdaf1c37ed2d7f9ab7cc6d3fdbb4cae425de39b1a806a3d5befe2e5ecc2e9660f4538f53dc641bfe5ce5f92d873ff5c698332b916c1f4c5e1965a1", + "address": "1A2HqBTgTLv4N2zGq7cCmSWvpRHGATp3a1" + }, + { + "change_index": 3, + "address_index": 2, + "private": "KwthwQMaTS42GJzKYUntDCxrnX5CcBTyXotYYu9tGkiEoupyMtQE", + "public": + "04c8bd0ecf6aab88376474c01aeb31f63ee732f5c1adcb25df436166d788255e4d1e536a5c07d58c79856c8f4a295e879cbff505d7371f4f29a59c8118500d5584", + "address": "14oaqaEnrvq6SrCQtKfiBJuw5LmqsoAke3" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L13iWmCJRMQ87HqRaC5XJkPm1khYuz7FRv2oHRzvj3J3tgX1Ptwe", + "public": + "04f924b72405cb9ddd95ff35b408f1156ee490018a6edf582109cdb86ff37c20cc5b86ac257d64a87a28bcb087273f76f15788ae886db49a7b76357793a8ed494e", + "address": "1BcmUpCKoSz1Wjx2NbRqp1NY3uAkhKyjzb" + }, + { + "change_index": 3, + "address_index": 4, + "private": "L2KMivuuZPTKRafiSuWFCTzZpWsy92vXcMWkyH65o82Vs5soxBW1", + "public": + "04f7702231937ce0cb8781984cb5dc6bb9a82e89ae8dda3c5348209fa0cd8762f6191ffa9c6af95462a03db6cbcd971d33a7a5d9f265de804b3b6574cc0d638c3d", + "address": "1BUkTX5n7tiDgnytNVtmX39guQHAfsb7Pi" + }, + { + "change_index": 4, + "address_index": 0, + "private": "Kx9FP6LAwUkbtQTc5GRrAsPWVgmpqqfgwyBN8FWhu7wbrdFRwBNL", + "public": + "04c1dee6ee596aa6332243009208c1320941dbd04daf4643a5c0321f09522434816a398eefd875f69ddeda5311e6ef3f1e40f5c18e1299ea01a51950336c39c9e4", + "address": "19HkpJ486ZuQGf41xddY1cpLdpZu1y3bKN" + }, + { + "change_index": 4, + "address_index": 1, + "private": "KybYgTaKyeUCqjijmtv71RSSRzYitFeHymTrzZN7apZ56RVnvjEs", + "public": + "04cd314c18a5214916a91167755280286f848d43197e82af70d0a2fcc06467991bbb4aefbcd4d34c3490cb253a774ada01902d0df3dfab91b06014e92ad235f27a", + "address": "1P19Bokpi4wS3sYdRkkKHxuZweDTb7dAsi" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L1WoMk6pFK6G2rFnC86Z2ihjx1QcSMKPsq6jMv6pqL61esocQiZe", + "public": + "047dc996627c647e2f7fa085f8e36b6449231613573482e2180c0dda51eb32031e9cce6d71f7f394aaa0cbe31103941f869ad928c936d9f345299192bfb8633c77", + "address": "14QDEaen4pk5vNXnhuofsyUwg8ZaDwQCeg" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KyJ1mervQGD8V68bJqDqE9LE6somBS7Re8z6iLHSxk6FpCvyYMVb", + "public": + "0487b01852c874c4632ebcde4e678f5f17988ea2c80ceaf71c9c2cb05748502735357ace330b71defef7133561670d212ef1b669d614d6977e1c6b249534254d1a", + "address": "1GLyz9fgH9hKCZi9zQoptRc7oFfKsJEEjs" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KxpqqpdGwSr4pay2CpoGtTHjpkHJJ7Ddpne6VZ8pZ4psMjr6YHmS", + "public": + "049d282d834a713aad33f532e73015c3ead7d3760a51d033a1f37fa6a724a16885266cd4ec54b36d800b162740d7912faa74215b930f146aa684c3e02dce248e52", + "address": "1CbqXjLVvHGeTRXN4V1MaqEiT2p2BUKe66" + } + ] + }, + { + "seed": + "056ae8b0f055192e054baa3d97ca710d6954c76ccee1f632bf2b9b856f341881dc4d1476af93ad5d1d738adcf2c63d3372a57907a40791e41830e4afb119f84c", + "private": "L5grXbCyYHjz3mwJ5qJnbftd8ateQSjxEpGEEfRhKAsFGF37T2ds", + "public": + "0412bcbb47bad32bda131981efcf0d02bea2b6a3258cdaea9d64e5ad1877aa4cdbdcef11a0551b4988aa803c0402385de472ffda3abbada648a0d03543c67474ce", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L3sPtBCAk4zZvQy4MH4nUqYJtwc9x7n9u1qQomzdBCbHnS9fBZow", + "public": + "0472748d6a1dab8906ebf16936dab6a22a11b8ec14963e9e189514c0097174f6d4e3fba84c846061f3a9371ae550af07a2b8a799d69c9a01a15d28cbc46caa51a3", + "address": "17c6oiLUUf4jkf2dyge2Wpu4FbBoGkHuLD" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L49tkvds9pbL6tPgr2txcUGcKk2Jn3UHFvdfh61zmTgK1Bi5Yir8", + "public": + "04fe25e04abe23900bd567242ce2804f03470f27b787969823687158137facead49f91433efdf97a8ccaec7ccdd329a9288338dae1cd2590fe9da93a458f13f439", + "address": "1QHvY1Ay5GcTLxm3XjGc6TwafvhBu3Y4vt" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L1r3axXyftb6sWwHxfhQXC2nrEGoHQQDEGaUXESgUwxxzL1qnpWb", + "public": + "04d92a5b004c68ab9943721f3c039b858611b4ed6a0f0fdd2f45fc91b4924163ba36652251958372cdfbc75046a0ab01d93634b8ee5feb1036092125637f3ee3c9", + "address": "14PxS4p87g5NbFGn11Ev9YvEzfZob6KoBb" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L1Nn9skQTc5EoF9BWFS9ZWPeHZ7eCWXpaN4ThgRqq3foeQ69QUy5", + "public": + "0474eb949c292d0c7daebed7d003c27f18ab6df33153fcdc04ce11c8ab2ca2ce6e248143f9c0a5a44895526c7a303e87d3781837e67f80d5385fa1eeff5fce384f", + "address": "1MS7YZN4FzUJJ1HBSeWjqdo8E97ZLtQxaG" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L4pxpkPWonZowcnm2oRDmbt9Re3CcCb6p1X7eWMETxpoKtcKhW5X", + "public": + "048a952f41fc1fd3d6483282556a7403360779f1f183df1a9ad5b7e3caffcaf15dd7142fd73aadee92b1c75a534e7e1db4d40c9b52c3de3f82951cdc74f9df0024", + "address": "1KBAVF4t6w39HAXRvy1qJGXbBLPjFKRSq4" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L1jfde5iBZGbqDuNLjEBLVJciUVRgmEcVSH1VgYTCLjDwY4g1UbF", + "public": + "04995590a080cf8fdd69c3f4f40a07b1b243cb45ca0ba81b690840019b8af7a66e9773a65623601b8d8c653fcd3f9333d60c08d4985dc0281912d2aa224be492a5", + "address": "1D86wj92yJRJAEfiWVnsZFYeD7sUoksPME" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L53fSSq3xzjVW5mGwDLDUjkTJdsbMn3DXjQryJHYeEezvzzhzHoQ", + "public": + "04838dac3b89ac228d71993772cf08b819ff0e8102371f35ecd2591c2d1e4295157899e0c49d4873968d925520dd9dc315f4dd97be46e001d5bf3307f15c4da3b9", + "address": "1GaiVCCohRNYpRdBsjWCykYgRUqWdEfNMJ" + }, + { + "change_index": 1, + "address_index": 2, + "private": "Ky3Ew2eakVPaRzuqUoCH5on52sZ1MNHdsBropCn5VQxu5o9aKSQu", + "public": + "04eb63b7b796411f27dec41344638f233131eb8f974491f4e5d1e5607e9a736a95625bc59c902425f899fbf8fcc5d7db04bda2cf6285dbac2ed1160d3e47847b41", + "address": "1HqpB59sShnVqUSGt82JaivRKhMnAkk9ay" + }, + { + "change_index": 1, + "address_index": 3, + "private": "Kx92b7mJzLGeEoPcnSo9rQJTJPPzzhpfzSLpWi7Dhm2gh6Yu5v62", + "public": + "041add3683e70052b48c55906d2fdb951d8915377cdefb7ae9c6710c92a73d652286000710b8bc03d8e9078763ba63d580892423d5ac6c0136402ffc7117733ef5", + "address": "1D4UxgaJuYFxLhn3WjNo8rzXvzTU5ALr7A" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L19ynubRcW5mp4omitubL2XyWavm5TmRoPcHiWVMU6ZHPdckKgsN", + "public": + "0469e16cbc98c06670344e80fbf053918f05b7a52d3bc2c8842723d1424f400eb81df23e9f0a5ff1ffbc6ccbe65e1598a5bf6e21917c30acc30374743b18097267", + "address": "1MWw8TDN91MAYN2JBtPRQtYejsEf9QMyeg" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KyiqE5azMVMS3zuqUCE8wjgzK4iiewkuiw3tZ8EFGKv4SKVf16Lh", + "public": + "04cce72f8fb1bfa4a927e2430b362e75dcd5c0bf4b5d14be9e8c4960279c21ad1aadb0d9493b19b114a28512b0e8750a9cd13e346c7c618656e6a6b43d17c36df0", + "address": "1FuDShRZZG7dTrDp2Ae5qk9WKBZXZUSi1v" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L4AWd6xVSDBbnrfYvi1w6opGC4PcLsgp6fvPEMPpSfd38MJDe6hU", + "public": + "0475f428af787d323d3183d6844ef424fdfeac50ac3abf25d4b1d556b082599f0ef1b4cb37712f2601dec1cb288e4cf40d9e1668bf80b371977945e9e8465fe79e", + "address": "15f45b7vCuVnh5DHyjX5ZLTC7noSoEygcz" + }, + { + "change_index": 2, + "address_index": 2, + "private": "L1oN9Bnw1fWrfLBQ73CWENBhYMTtdmhxPXzrpZHZ9XepnssHoqoE", + "public": + "044cff3a58ac8d45d0400cf4751c773e7b9741feac61af09ea10fa172f989eb84437961f2435f2cac402e5cc8142609bb76c6c238eb9064d93e98c2c88ef2d4e93", + "address": "1FPA3tmmck7gzFfLQgh3JmsjQAeo89JqHt" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L3FcvWEa6rTaQJBZ49UYQfnpXJuVEHtgSeGcPbFuVtntVNKC3ffB", + "public": + "042e01d5ae84b5774d4c1ff8c617ae1e25820e50e201fec2789f76ab7d58bf47339b1d10cc17ad7eb9294d357f3aec8cf1308b8e1458ca20bc0e6d47007cb9a9c6", + "address": "1Fa4qZv7o4u5JhKtusi9fMQkeoy5YzoisK" + }, + { + "change_index": 2, + "address_index": 4, + "private": "Kzep8sRLrgrFhmkxDJGhyjRofPraeGERicPPxQXucDtjXPTPDTdn", + "public": + "04cd6a0f14c87540f103d300ca5ad8721e5d7f7aeb82c949fc2a94a3176958de57e198d0382ff73588fe00b26c4e1e4640b013cd427eb4513d927e8ca46f016f55", + "address": "1NgSccY3CHZu3iRbohbKSnyrLA8EWer5hZ" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L1B2xjr1s7Qna4MnuzKGbSxUJbdSNjTj3jKkEgmZvdz5sTGr98rC", + "public": + "042a93bad1505130534e4089a81fd80714cf979f6aeeee81b375243d1622de588bcf74ad19a24f9a9d26c4417d6cd2d1912e28492931b48a92925816a61db17af2", + "address": "1AEV7riFnB2ku3R3ZefwEEZ5EuyGfwh5rD" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L4mRAApmivfY1BN65Q5Nua1EkQkCFhxwdi1ZZ8A9a141StTwVihN", + "public": + "04ea1055e10e5578c8a63d43b94b9eb0eb15eec1ff720ec79e50fc1f359afdacbd1fbf0febb59802c5533aba0b864027b085f3b5b660f7e0954e53593ee3221056", + "address": "1HqhzRZhDztgkL83fE5gT5Mihnfg9gFBDq" + }, + { + "change_index": 3, + "address_index": 2, + "private": "KwkrG23X4mue3uXT4ZQyToxjNxJDvDJqmx3Qi3YbYqAQ9EPPhr6M", + "public": + "0495b85d333d07f48a2debfc7db33166c78656e34151472d2bdbdf1ae3d09aab0f32446367dc6499be102bfe88afde392b9afd1040a73c304f10076ff7ed044def", + "address": "1C83cnFzh7ZGkgW8rP6J8Q45wkj4imrWKz" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L1Y7ougVchSmYaJcbnKpWEMM3DV5Zk3PttNUNCiNRyJGtuwGtdH1", + "public": + "045c01c7db6753f252c2b58435eeb1da64d8721a1f7d79a77e16f39b6eb1caccf9e9686152319231081db2b7262a84fc693d5e3563a8f6905abd18ffefc3642597", + "address": "1P4wBaQ1YSxXnX8Mn3RPLmonhkRpMWjWND" + }, + { + "change_index": 3, + "address_index": 4, + "private": "L2B9WrKByRAHoE2Y24v7qdqcWLuhney9suYAazdprLgqr7Qn63UH", + "public": + "04f81c2c99d54703e0c9f8521dd15551f516c3f5b9dad1752bf971a4fc6931ba64a748de8e9ba470470c026223e061b156ecb1ba7ea31fe942814c06d3d6184d12", + "address": "1BozcGQiAFzN818ARmJ6Jh2fPixs9CfhHd" + }, + { + "change_index": 4, + "address_index": 0, + "private": "Kyk2UdTtEtKTWdmyxqaagSuLYTBtoPsMBh7BL9KTyuEh5q2469QC", + "public": + "040a4ee5af670478bbf0342b3544aa2a2caa898c6423e4b32434fb967a64d5821ce7584896edbacd25cc6be8ae284222d8486fb50c9e0d22e971f7fdb5a767446f", + "address": "1BAuQuALX1BumpRX4tnhnXCoP4whLANw58" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L32ghpEcqBNLHLkDkNeKE53cpRiQx7nGsihj2o4bipRiFzrK9cJt", + "public": + "04e8cc3cbc38c14e6ad3db225c7eda5ddf07aeef7418d83fc0d7379139faf496ffdfe9849af959f15617072ee3fed470bcbc0e0045f96503365ce39542db009a98", + "address": "13kj2syE6bvmE2MNBarNDFiQMC1jgmde6y" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KzgBSbmGH6hqfssNNSaLRuU2D74ELe4kSHFLC3t493STcQkwMBYC", + "public": + "046c0a5df0d2814eaa9b8802b4264d07e0ed4e9f5d818c30e11cb9b45ff14cb16fd8eee29473d6ac3434379abde136508e5292cf7aba6db81d19afded83e039a7e", + "address": "16KV5vh3ChdsGGtpeJntE2Dxhdm4kZhbUN" + }, + { + "change_index": 4, + "address_index": 3, + "private": "Kzp3NyLsSGXPsneJDy2TVSbRHNTerHn3HrJcdZaTrLc1QyGg27uh", + "public": + "04931c12a4ae94b2f74a68808cbf45b810833a4dedf210e1dddae6745c15549d7f8fce76f1245c92d68b5b7971da367b7cad7bb19866129580b137399c7c11d3da", + "address": "169UaJL5EWdiSLXMvq42mTfAK66t97qZLd" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KzaYTFK25oUkgut37kbZmgR9YN72AeHeE71nNF7x2139wYP4ZgqG", + "public": + "048b12875481071faf94da599722d7d71b415bb7b20144c5439b9b58505cfd673e44ba0414af0dc2662d72755d8cfd5705de9f32d788f8c5777df42c22f8af07bd", + "address": "1JcYxoJhGB4eDJwVppkknnHPNfSBZ9P7CS" + } + ] + } +]; diff --git a/example/lib/test/elctrum/v2/v2_test.dart b/example/lib/test/elctrum/v2/v2_test.dart new file mode 100644 index 0000000..e5dff9b --- /dev/null +++ b/example/lib/test/elctrum/v2/v2_test.dart @@ -0,0 +1,63 @@ +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/electrum/electrum_v2.dart'; +import 'package:blockchain_utils/bip/wif/wif.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; +import 'segwit_test_vector.dart'; + +void electrumV2Test() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final elc = ElectrumV2Standard.fromSeed(seed); + final prv = WifEncoder.encode( + elc.masterPrivateKey.raw, + netVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + ); + assert(prv == i["private"]); + + final public = elc.masterPublicKey.uncompressed.toHex(); + assert(public == i["public"]); + for (final c in (i["child"] as List)) { + final changeIndex = c["change_index"]; + final addressIndex = c["address_index"]; + final cPrv = WifEncoder.encode( + elc.getPrivateKey(changeIndex, addressIndex).raw, + netVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + ); + assert(cPrv == c["private"]); + final cPub = + elc.getPublicKey(changeIndex, addressIndex).uncompressed.toHex(); + assert(cPub == c["public"]); + final cAddress = elc.getAddress(changeIndex, addressIndex); + assert(cAddress == c["address"]); + } + } + for (final i in segwitTestVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final elc = ElectrumV2Segwit.fromSeed(seed); + final prv = WifEncoder.encode( + elc.masterPrivateKey.raw, + netVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + ); + assert(prv == i["private"]); + + final public = elc.masterPublicKey.uncompressed.toHex(); + assert(public == i["public"]); + for (final c in (i["child"] as List)) { + final changeIndex = c["change_index"]; + final addressIndex = c["address_index"]; + final cPrv = WifEncoder.encode( + elc.getPrivateKey(changeIndex, addressIndex).raw, + netVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + ); + assert(cPrv == c["private"]); + final cPub = + elc.getPublicKey(changeIndex, addressIndex).uncompressed.toHex(); + assert(cPub == c["public"]); + final cAddress = elc.getAddress(changeIndex, addressIndex); + assert(cAddress == c["address"]); + } + } +} diff --git a/example/lib/test/monero/mnemonic/monero_mnemonic_test.dart b/example/lib/test/monero/mnemonic/monero_mnemonic_test.dart new file mode 100644 index 0000000..4108ecd --- /dev/null +++ b/example/lib/test/monero/mnemonic/monero_mnemonic_test.dart @@ -0,0 +1,25 @@ +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic.dart'; +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic_generator.dart'; +import 'package:blockchain_utils/bip/monero/mnemonic/monero_seed_generator.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; +import "test_vector.dart"; + +void moneroMnemonucTest() { + for (final i in testVector) { + final lang = MoneroLanguages.values.firstWhere((element) => + element.name.toLowerCase() == + (i["lang"] as String).replaceAll("_", "").toLowerCase()); + final entropy = BytesUtils.fromHexString(i["entropy"]); + final mn = MoneroMnemonicGenerator(lang).fromEntropyWithChecksum(entropy); + assert(mn.toStr() == i["mnemonic"]); + final mnNc = MoneroMnemonicGenerator(lang).fromEntropyNoChecksum(entropy); + assert(mnNc.toStr() == i["no_checksum"]); + final entropyResult = MoneroMnemonicDecoder(lang).decode(mn.toStr()); + assert(bytesEqual(entropyResult, entropy)); + final seed = MoneroSeedGenerator(mn).generate(); + assert(bytesEqual(seed, entropy)); + } +} diff --git a/example/lib/test/monero/mnemonic/test_vector.dart b/example/lib/test/monero/mnemonic/test_vector.dart new file mode 100644 index 0000000..e1bb553 --- /dev/null +++ b/example/lib/test/monero/mnemonic/test_vector.dart @@ -0,0 +1,422 @@ +final List> testVector = [ + { + "entropy": "13dd128dcb41ef5c502c29e63d5d6cc3", + "mnemonic": + "\u57fa \u65bd \u8270 \u659c \u5174 \u9a7b \u5dde \u9676 \u7a77 \u575a \u7532 \u4e14 \u5dde", + "no_checksum": + "\u57fa \u65bd \u8270 \u659c \u5174 \u9a7b \u5dde \u9676 \u7a77 \u575a \u7532 \u4e14", + "seed": "13dd128dcb41ef5c502c29e63d5d6cc3", + "lang": "CHINESE_SIMPLIFIED", + "words": "WORDS_NUM_12" + }, + { + "entropy": "5a358b04a80598608673f4ecb59fd7ae", + "mnemonic": + "\u5317 \u79d2 \u5230 \u8d4f \u7597 \u7403 \u6ca1 \u5e9f \u7e41 \u5ea7 \u672c \u7248 \u79d2", + "no_checksum": + "\u5317 \u79d2 \u5230 \u8d4f \u7597 \u7403 \u6ca1 \u5e9f \u7e41 \u5ea7 \u672c \u7248", + "seed": "5a358b04a80598608673f4ecb59fd7ae", + "lang": "CHINESE_SIMPLIFIED", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "2fdfd9d7d3e27a603db4c5d8e27a57576d0ef6071c64cffaca7fb50f49d5ba0b", + "mnemonic": + "\u864e \u5802 \u4fb5 \u786c \u7194 \u5212 \u57fa \u9aa8 \u9759 \u7518 \u5316 \u867d \u7597 \u4fb5 \u8131 \u5356 \u6b65 \u76ee \u78e8 \u8d22 \u82e6 \u5e2d \u8d38 \u83ab \u8d38", + "no_checksum": + "\u864e \u5802 \u4fb5 \u786c \u7194 \u5212 \u57fa \u9aa8 \u9759 \u7518 \u5316 \u867d \u7597 \u4fb5 \u8131 \u5356 \u6b65 \u76ee \u78e8 \u8d22 \u82e6 \u5e2d \u8d38 \u83ab", + "seed": "2fdfd9d7d3e27a603db4c5d8e27a57576d0ef6071c64cffaca7fb50f49d5ba0b", + "lang": "CHINESE_SIMPLIFIED", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "6f74405b88032310b4c13137b02ac643b064bd8c2baa92ffacd5de008a35c832", + "mnemonic": + "\u63a5 \u767d \u8089 \u5851 \u4f60 \u653e \u6c7d \u594b \u6c2e \u7a7a \u80b2 \u79cb \u5343 \u5c01 \u8dc3 \u661f \u9632 \u671b \u6e90 \u62b1 \u57d4 \u4eab \u7b97 \u5757 \u63a5", + "no_checksum": + "\u63a5 \u767d \u8089 \u5851 \u4f60 \u653e \u6c7d \u594b \u6c2e \u7a7a \u80b2 \u79cb \u5343 \u5c01 \u8dc3 \u661f \u9632 \u671b \u6e90 \u62b1 \u57d4 \u4eab \u7b97 \u5757", + "seed": "6f74405b88032310b4c13137b02ac643b064bd8c2baa92ffacd5de008a35c832", + "lang": "CHINESE_SIMPLIFIED", + "words": "WORDS_NUM_25" + }, + { + "entropy": "640d9e4f00ca3836c0d7063e95349997", + "mnemonic": + "lijnschip rotan ampul sukade vanmiddag bijfiguur klus asbak fosfaat rarekiek rally fooi rarekiek", + "no_checksum": + "lijnschip rotan ampul sukade vanmiddag bijfiguur klus asbak fosfaat rarekiek rally fooi", + "seed": "640d9e4f00ca3836c0d7063e95349997", + "lang": "DUTCH", + "words": "WORDS_NUM_12" + }, + { + "entropy": "f6c5c1722b684c5c083c7f5a372093a2", + "mnemonic": + "kajuit opwind benijd worp pfeifer afknap ijklijn peptalk aanlandig pikdonker gegniffel wens opwind", + "no_checksum": + "kajuit opwind benijd worp pfeifer afknap ijklijn peptalk aanlandig pikdonker gegniffel wens", + "seed": "f6c5c1722b684c5c083c7f5a372093a2", + "lang": "DUTCH", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "09525f596dec3fa09231647a1809e6c6f61cc831aaf5717553baef87dafdc135", + "mnemonic": + "zuur cannabis lakmoes aapmens vilt lyceum jurk beks mopperaar oorhanger slamixen midvoor alufolie warm butler stucadoor begierd maakbaar manhaftig coalitie podoloog plamuren stoten aanwakker coalitie", + "no_checksum": + "zuur cannabis lakmoes aapmens vilt lyceum jurk beks mopperaar oorhanger slamixen midvoor alufolie warm butler stucadoor begierd maakbaar manhaftig coalitie podoloog plamuren stoten aanwakker", + "seed": "09525f596dec3fa09231647a1809e6c6f61cc831aaf5717553baef87dafdc135", + "lang": "DUTCH", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "41b872121bed6efe43e6f4b838a9552313309825f88e41d14c54b2360496d67a", + "mnemonic": + "kegelaar lenen napijn aapmens napalm mouw kilsdonk boos tolbaas simkaart zijbeuk brinckman gedijd unitair affiche hedonist ereteken atsma legsel nijging spoed aanlandig lijnschip zetbaas hedonist", + "no_checksum": + "kegelaar lenen napijn aapmens napalm mouw kilsdonk boos tolbaas simkaart zijbeuk brinckman gedijd unitair affiche hedonist ereteken atsma legsel nijging spoed aanlandig lijnschip zetbaas", + "seed": "41b872121bed6efe43e6f4b838a9552313309825f88e41d14c54b2360496d67a", + "lang": "DUTCH", + "words": "WORDS_NUM_25" + }, + { + "entropy": "d0299bc2beaeb39e7c043c5ae3e29ae0", + "mnemonic": + "maverick jagged depth liquid network deity directed sorry cistern bacon gyrate educated jagged", + "no_checksum": + "maverick jagged depth liquid network deity directed sorry cistern bacon gyrate educated", + "seed": "d0299bc2beaeb39e7c043c5ae3e29ae0", + "lang": "ENGLISH", + "words": "WORDS_NUM_12" + }, + { + "entropy": "4e94f43683034a0b6eb0cec59208f2a7", + "mnemonic": + "rage irritate paper buffet serving spying much shyness mops heels bemused school rage", + "no_checksum": + "rage irritate paper buffet serving spying much shyness mops heels bemused school", + "seed": "4e94f43683034a0b6eb0cec59208f2a7", + "lang": "ENGLISH", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "1b60da151d731b545ade47317d1a2e944f54d1879a817bbefa59461d5116d6ca", + "mnemonic": + "money drinks fleet academy rising anxiety bubble tether already portents wolf nabbing furnished cycling rays duets weird recipe coffee vaults ambush darted fungal bifocals bubble", + "no_checksum": + "money drinks fleet academy rising anxiety bubble tether already portents wolf nabbing furnished cycling rays duets weird recipe coffee vaults ambush darted fungal bifocals", + "seed": "1b60da151d731b545ade47317d1a2e944f54d1879a817bbefa59461d5116d6ca", + "lang": "ENGLISH", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "aa891946758d80ea1b24a3c7a3fe51bff5d9258cbe34ccad20ed2b6200e293f0", + "mnemonic": + "ponies looking silk opposite racetrack onboard mammal gulp byline decay eldest yields goggles pruned dying farming ceiling swept heels gills richly evicted unopened tawny ponies", + "no_checksum": + "ponies looking silk opposite racetrack onboard mammal gulp byline decay eldest yields goggles pruned dying farming ceiling swept heels gills richly evicted unopened tawny", + "seed": "aa891946758d80ea1b24a3c7a3fe51bff5d9258cbe34ccad20ed2b6200e293f0", + "lang": "ENGLISH", + "words": "WORDS_NUM_25" + }, + { + "entropy": "1d2c8e4c3d9051ee22e19fb4c09610d5", + "mnemonic": + "cigale violent employer badge gens facile finir mauvais cuve aborder apercevoir stop stop", + "no_checksum": + "cigale violent employer badge gens facile finir mauvais cuve aborder apercevoir stop", + "seed": "1d2c8e4c3d9051ee22e19fb4c09610d5", + "lang": "FRENCH", + "words": "WORDS_NUM_12" + }, + { + "entropy": "aebb5264236176ae18f26d055d1549ee", + "mnemonic": + "pile enjeu placer brique crabe tacot satisfaire employer esprit esprit gilet falloir pile", + "no_checksum": + "pile enjeu placer brique crabe tacot satisfaire employer esprit esprit gilet falloir", + "seed": "aebb5264236176ae18f26d055d1549ee", + "lang": "FRENCH", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "4e9f8bde8a35157ec59449381ae14bce2a07a837512b3b1d3359717b754f1718", + "mnemonic": + "poitrine taie relation exprimer gommer style robe vice cloner aussi chacun vertige givre munir retirer jury unisson atlas prison amie membre prix nouer plat givre", + "no_checksum": + "poitrine taie relation exprimer gommer style robe vice cloner aussi chacun vertige givre munir retirer jury unisson atlas prison amie membre prix nouer plat", + "seed": "4e9f8bde8a35157ec59449381ae14bce2a07a837512b3b1d3359717b754f1718", + "lang": "FRENCH", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "1e58bbac7bc1577ff5f237be851c4c7d02dcedfb9e9c528ac75f6022aae7ff67", + "mnemonic": + "nerveux pizza forme muse parler buste fiable gras bulle arche carie parler rhume jardin image descendre voir mesure juste odorat racler papier notre volt pizza", + "no_checksum": + "nerveux pizza forme muse parler buste fiable gras bulle arche carie parler rhume jardin image descendre voir mesure juste odorat racler papier notre volt", + "seed": "1e58bbac7bc1577ff5f237be851c4c7d02dcedfb9e9c528ac75f6022aae7ff67", + "lang": "FRENCH", + "words": "WORDS_NUM_25" + }, + { + "entropy": "d79ad49a5f912c08ea449c5d31ada3e1", + "mnemonic": + "Animator Kanal Bonbon Almosen Tempo Urlaub Tatnacht treffen Elch Gl\u00fcck erbl\u00fchen Brillanz Urlaub", + "no_checksum": + "Animator Kanal Bonbon Almosen Tempo Urlaub Tatnacht treffen Elch Gl\u00fcck erbl\u00fchen Brillanz", + "seed": "d79ad49a5f912c08ea449c5d31ada3e1", + "lang": "GERMAN", + "words": "WORDS_NUM_12" + }, + { + "entropy": "690cd7c1a1e93d62602cf632fdf297a2", + "mnemonic": + "backen Bezug Theater Erdteil necken Badesee Kasper W\u00e4sche Bitte Anhalter Rohdaten Gitarre Anhalter", + "no_checksum": + "backen Bezug Theater Erdteil necken Badesee Kasper W\u00e4sche Bitte Anhalter Rohdaten Gitarre", + "seed": "690cd7c1a1e93d62602cf632fdf297a2", + "lang": "GERMAN", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "b074dd78757d03ea6db6fa0c94d252d51a70f0186a133a200c070aaeece83233", + "mnemonic": + "Motorrad Mastkorb Bewegung wechseln Vektor S\u00e4ure Anschein Gedanke Hagel jobben Diagnose Anorak Altruist Ente Fockmast Luder Bitte Elan Zugvogel Flugzeug Anschein Kaimauer Gestade Loipe Gestade", + "no_checksum": + "Motorrad Mastkorb Bewegung wechseln Vektor S\u00e4ure Anschein Gedanke Hagel jobben Diagnose Anorak Altruist Ente Fockmast Luder Bitte Elan Zugvogel Flugzeug Anschein Kaimauer Gestade Loipe", + "seed": "b074dd78757d03ea6db6fa0c94d252d51a70f0186a133a200c070aaeece83233", + "lang": "GERMAN", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "4289a5dc93362f54fea4045d4e387d0fe5ca1109b5d31ea2004d0009c09a858a", + "mnemonic": + "Wegegeld Bauteil Zacke Kapit\u00e4n Pokal Barbar Luder Trick Elan Fauna Liftboy M\u00fche Vesper hecheln H\u00fcrde Decoder Zollhund k\u00fcssen Vandale Anflug Aufsatz Harz Heulboje Analogie Elan", + "no_checksum": + "Wegegeld Bauteil Zacke Kapit\u00e4n Pokal Barbar Luder Trick Elan Fauna Liftboy M\u00fche Vesper hecheln H\u00fcrde Decoder Zollhund k\u00fcssen Vandale Anflug Aufsatz Harz Heulboje Analogie", + "seed": "4289a5dc93362f54fea4045d4e387d0fe5ca1109b5d31ea2004d0009c09a858a", + "lang": "GERMAN", + "words": "WORDS_NUM_25" + }, + { + "entropy": "8ea0a54d4d7dbef600cbafd3cc0109df", + "mnemonic": + "orbita esame parrucca asfalto solo scultore matrice sparire pilastro elmetto panfilo latte esame", + "no_checksum": + "orbita esame parrucca asfalto solo scultore matrice sparire pilastro elmetto panfilo latte", + "seed": "8ea0a54d4d7dbef600cbafd3cc0109df", + "lang": "ITALIAN", + "words": "WORDS_NUM_12" + }, + { + "entropy": "3e177f270b1fb94d83fcf80db414a9af", + "mnemonic": + "vanto muovere relatore eminenza malattia sommario nemico cratere dovere rettile gatto barba barba", + "no_checksum": + "vanto muovere relatore eminenza malattia sommario nemico cratere dovere rettile gatto barba", + "seed": "3e177f270b1fb94d83fcf80db414a9af", + "lang": "ITALIAN", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "9320514b6de6ce3bf34718987e423a7281477626b2eb6b5ffeda6a95c76203bd", + "mnemonic": + "petrolio nove tema insulto aderire coprire iniziare ovest civetta mancare flacone sogliola pugilato sapere turista fonderia toccare detonare fibbia maggio basilico pietra attrarre sinergia maggio", + "no_checksum": + "petrolio nove tema insulto aderire coprire iniziare ovest civetta mancare flacone sogliola pugilato sapere turista fonderia toccare detonare fibbia maggio basilico pietra attrarre sinergia", + "seed": "9320514b6de6ce3bf34718987e423a7281477626b2eb6b5ffeda6a95c76203bd", + "lang": "ITALIAN", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "93df2177c5801de697bbf77f7876d71808f058df7bb54189500be8947c4df5bd", + "mnemonic": + "avvenire arrosto mangiare anima disdetta causa gioiello ingoiare vivavoce fuso antenna buio uccello clausola avido stoffa spugna foglio aggiunta unghia lezione bonifico melone disdetta clausola", + "no_checksum": + "avvenire arrosto mangiare anima disdetta causa gioiello ingoiare vivavoce fuso antenna buio uccello clausola avido stoffa spugna foglio aggiunta unghia lezione bonifico melone disdetta", + "seed": "93df2177c5801de697bbf77f7876d71808f058df7bb54189500be8947c4df5bd", + "lang": "ITALIAN", + "words": "WORDS_NUM_25" + }, + { + "entropy": "6dea77cd316cc9053c7ffe732c21e609", + "mnemonic": + "\u306b\u304f\u3057\u307f \u305f\u3093\u304d \u3057\u307e\u3046 \u3066\u3093\u3051\u3093 \u3058\u3086\u3046 \u3059\u304f\u306a\u3044 \u306f\u3093\u3053 \u3044\u3053\u3064 \u3058\u3066\u3093 \u304b\u3044\u3075\u304f \u3042\u3076\u3089 \u3044\u3061\u304a\u3046 \u3058\u3066\u3093", + "no_checksum": + "\u306b\u304f\u3057\u307f \u305f\u3093\u304d \u3057\u307e\u3046 \u3066\u3093\u3051\u3093 \u3058\u3086\u3046 \u3059\u304f\u306a\u3044 \u306f\u3093\u3053 \u3044\u3053\u3064 \u3058\u3066\u3093 \u304b\u3044\u3075\u304f \u3042\u3076\u3089 \u3044\u3061\u304a\u3046", + "seed": "6dea77cd316cc9053c7ffe732c21e609", + "lang": "JAPANESE", + "words": "WORDS_NUM_12" + }, + { + "entropy": "125b71a533f1642379d8c62e7389a9da", + "mnemonic": + "\u3068\u3055\u304b \u305f\u304f\u3055\u3093 \u3051\u3044\u308c\u304d \u305f\u3044\u3080 \u304d\u3076\u3093 \u3053\u3068\u3057 \u305f\u3044\u3089 \u3057\u306a\u3093 \u305f\u305d\u304c\u308c \u3044\u304c\u3044 \u305b\u3093\u3057\u3085 \u3056\u3064\u304c\u304f \u3044\u304c\u3044", + "no_checksum": + "\u3068\u3055\u304b \u305f\u304f\u3055\u3093 \u3051\u3044\u308c\u304d \u305f\u3044\u3080 \u304d\u3076\u3093 \u3053\u3068\u3057 \u305f\u3044\u3089 \u3057\u306a\u3093 \u305f\u305d\u304c\u308c \u3044\u304c\u3044 \u305b\u3093\u3057\u3085 \u3056\u3064\u304c\u304f", + "seed": "125b71a533f1642379d8c62e7389a9da", + "lang": "JAPANESE", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "6ea3c8c358d801a024b0cb1004cc3f51b40889f77faff2e6ce0751e8ca62a90f", + "mnemonic": + "\u3057\u305f\u304e \u306b\u305b\u3082\u306e \u305d\u307c\u304f \u306e\u305b\u308b \u304f\u3046\u3053\u3046 \u306d\u3076\u305d\u304f \u3046\u306a\u305a\u304f \u305f\u307c\u3046 \u3064\u3064\u3058 \u3060\u3093\u3061 \u304f\u3055\u3070\u306a \u305c\u3093\u3089 \u305d\u3093\u3057\u3064 \u3053\u3093\u304b\u3044 \u3053\u3051\u308b \u3054\u304b\u3093 \u306d\u3076\u305d\u304f \u3067\u3093\u308a\u3087\u304f \u3044\u305f\u307f \u304d\u306e\u3057\u305f \u304a\u3055\u3048\u308b \u3055\u3093\u304b \u306a\u3075\u3060 \u306d\u3089\u3046 \u304d\u306e\u3057\u305f", + "no_checksum": + "\u3057\u305f\u304e \u306b\u305b\u3082\u306e \u305d\u307c\u304f \u306e\u305b\u308b \u304f\u3046\u3053\u3046 \u306d\u3076\u305d\u304f \u3046\u306a\u305a\u304f \u305f\u307c\u3046 \u3064\u3064\u3058 \u3060\u3093\u3061 \u304f\u3055\u3070\u306a \u305c\u3093\u3089 \u305d\u3093\u3057\u3064 \u3053\u3093\u304b\u3044 \u3053\u3051\u308b \u3054\u304b\u3093 \u306d\u3076\u305d\u304f \u3067\u3093\u308a\u3087\u304f \u3044\u305f\u307f \u304d\u306e\u3057\u305f \u304a\u3055\u3048\u308b \u3055\u3093\u304b \u306a\u3075\u3060 \u306d\u3089\u3046", + "seed": "6ea3c8c358d801a024b0cb1004cc3f51b40889f77faff2e6ce0751e8ca62a90f", + "lang": "JAPANESE", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "cafcabef215e024f270f512cbafc922e31c29f0dac54e4b0848d2a79e21bff6a", + "mnemonic": + "\u3060\u3093\u307c\u3046 \u305b\u3093\u3059\u3044 \u3057\u3093\u3053\u3046 \u305d\u304c\u3044 \u306f\u3093\u3081\u3044 \u304f\u305b\u3052 \u3046\u3054\u304f \u3051\u3044\u305f\u3044 \u3057\u3063\u304b\u308a \u3057\u3083\u3046\u3093 \u3044\u3061\u3076 \u304d\u304d\u3066 \u304d\u306a\u3044 \u3060\u3093\u306a \u3064\u3088\u3044 \u306d\u3044\u308b \u3053\u3064\u3076 \u3046\u304a\u3056 \u3046\u3061\u304c\u308f \u306f\u3093\u3089\u3093 \u3055\u307b\u3046 \u3068\u304f\u3079\u3064 \u3066\u306c\u3050\u3044 \u304b\u304c\u304f \u3051\u3044\u305f\u3044", + "no_checksum": + "\u3060\u3093\u307c\u3046 \u305b\u3093\u3059\u3044 \u3057\u3093\u3053\u3046 \u305d\u304c\u3044 \u306f\u3093\u3081\u3044 \u304f\u305b\u3052 \u3046\u3054\u304f \u3051\u3044\u305f\u3044 \u3057\u3063\u304b\u308a \u3057\u3083\u3046\u3093 \u3044\u3061\u3076 \u304d\u304d\u3066 \u304d\u306a\u3044 \u3060\u3093\u306a \u3064\u3088\u3044 \u306d\u3044\u308b \u3053\u3064\u3076 \u3046\u304a\u3056 \u3046\u3061\u304c\u308f \u306f\u3093\u3089\u3093 \u3055\u307b\u3046 \u3068\u304f\u3079\u3064 \u3066\u306c\u3050\u3044 \u304b\u304c\u304f", + "seed": "cafcabef215e024f270f512cbafc922e31c29f0dac54e4b0848d2a79e21bff6a", + "lang": "JAPANESE", + "words": "WORDS_NUM_25" + }, + { + "entropy": "5c1c71c9396670a37184757f87cfa1f7", + "mnemonic": + "doloso juta europio baoba doer tadjique beduino udenista hedonista emulsao oigale nisto oigale", + "no_checksum": + "doloso juta europio baoba doer tadjique beduino udenista hedonista emulsao oigale nisto", + "seed": "5c1c71c9396670a37184757f87cfa1f7", + "lang": "PORTUGUESE", + "words": "WORDS_NUM_12" + }, + { + "entropy": "5b40df1e3afa2f084103a0f8dbfae5e6", + "mnemonic": + "texugo robusto tufo incutir helminto idoso timpano mnemonico luto erguido jasmim gostou incutir", + "no_checksum": + "texugo robusto tufo incutir helminto idoso timpano mnemonico luto erguido jasmim gostou", + "seed": "5b40df1e3afa2f084103a0f8dbfae5e6", + "lang": "PORTUGUESE", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "dcf3a5d588b75ee8bd1cf3dfcc9d818150f192d9e521d0f30dd5ed78faf2116e", + "mnemonic": + "bifurcar suite otite ornitologo dote bugre varziano arbusto usavel usavel povoar eclusa epiteto usei rimel tostar arguto adnominal radonio budista nalgum ilativo umero fominha adnominal", + "no_checksum": + "bifurcar suite otite ornitologo dote bugre varziano arbusto usavel usavel povoar eclusa epiteto usei rimel tostar arguto adnominal radonio budista nalgum ilativo umero fominha", + "seed": "dcf3a5d588b75ee8bd1cf3dfcc9d818150f192d9e521d0f30dd5ed78faf2116e", + "lang": "PORTUGUESE", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "ff02ab0a395021065832637a3dd7e3b972bf49486cdcc12796d4ee932e6bbe31", + "mnemonic": + "liturgico dueto epoxi durou busto cinzento doloso suruba filtro vociferar mavioso esturricar vigoroso oposto vidros bolso hedonista masturbar ignorar cristo ralo esoterismo vedico cabuqui suruba", + "no_checksum": + "liturgico dueto epoxi durou busto cinzento doloso suruba filtro vociferar mavioso esturricar vigoroso oposto vidros bolso hedonista masturbar ignorar cristo ralo esoterismo vedico cabuqui", + "seed": "ff02ab0a395021065832637a3dd7e3b972bf49486cdcc12796d4ee932e6bbe31", + "lang": "PORTUGUESE", + "words": "WORDS_NUM_25" + }, + { + "entropy": "1eaf3ab2c3b0b4e1ef285ef527c7c39b", + "mnemonic": + "fruta fogata besar casco galer\u00eda ebrio fama flauta exacto rabia enlace reunir enlace", + "no_checksum": + "fruta fogata besar casco galer\u00eda ebrio fama flauta exacto rabia enlace reunir", + "seed": "1eaf3ab2c3b0b4e1ef285ef527c7c39b", + "lang": "SPANISH", + "words": "WORDS_NUM_12" + }, + { + "entropy": "8d6e5035cbd4547d92b2b536e6f80fc2", + "mnemonic": + "linterna raci\u00f3n boda gratis oro curioso ciego fachada ligero fara\u00f3n pie llaga raci\u00f3n", + "no_checksum": + "linterna raci\u00f3n boda gratis oro curioso ciego fachada ligero fara\u00f3n pie llaga", + "seed": "8d6e5035cbd4547d92b2b536e6f80fc2", + "lang": "SPANISH", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "04efbd0efaf9b809086d1f85b245db7bb791a3926ea1e8a849fa1f2781bf3862", + "mnemonic": + "imitar asumir borrar cuota \u00e1baco alambre motivo gavil\u00e1n abogado reja propio explicar r\u00e1pido gamba altar gamba denso remo extremo mecha pa\u00f1uelo bobina fiera osezno osezno", + "no_checksum": + "imitar asumir borrar cuota \u00e1baco alambre motivo gavil\u00e1n abogado reja propio explicar r\u00e1pido gamba altar gamba denso remo extremo mecha pa\u00f1uelo bobina fiera osezno", + "seed": "04efbd0efaf9b809086d1f85b245db7bb791a3926ea1e8a849fa1f2781bf3862", + "lang": "SPANISH", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "42af8f7149ba3c57c8732375369282c98dd282e961d43c7082ed7d7605167cf7", + "mnemonic": + "gota ayer inmune hurac\u00e1n bache furia igl\u00fa picar dilema regreso mel\u00f3n galer\u00eda acn\u00e9 olor mito pulm\u00f3n bolsa lacra cola buey llave nueve champ\u00fa campo lacra", + "no_checksum": + "gota ayer inmune hurac\u00e1n bache furia igl\u00fa picar dilema regreso mel\u00f3n galer\u00eda acn\u00e9 olor mito pulm\u00f3n bolsa lacra cola buey llave nueve champ\u00fa campo", + "seed": "42af8f7149ba3c57c8732375369282c98dd282e961d43c7082ed7d7605167cf7", + "lang": "SPANISH", + "words": "WORDS_NUM_25" + }, + { + "entropy": "8f2d586c94986386819933c26a3deea1", + "mnemonic": + "\u0443\u043f\u0440\u0435\u043a\u0430\u0442\u044c \u043a\u043e\u0432\u0435\u0440 \u0442\u0432\u043e\u0440\u0438\u0442\u044c \u043b\u043e\u0432\u0438\u0442\u044c \u0434\u0435\u0432\u0443\u0448\u043a\u0430 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0443\u043a\u043b\u0430 \u0441\u043a\u043e\u0440\u044b\u0439 \u043c\u044f\u0433\u043a\u0438\u0439 \u0447\u0440\u0435\u0432\u0430\u0442\u044b\u0439 \u043c\u044f\u0441\u043e \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0442\u0432\u043e\u0440\u0438\u0442\u044c", + "no_checksum": + "\u0443\u043f\u0440\u0435\u043a\u0430\u0442\u044c \u043a\u043e\u0432\u0435\u0440 \u0442\u0432\u043e\u0440\u0438\u0442\u044c \u043b\u043e\u0432\u0438\u0442\u044c \u0434\u0435\u0432\u0443\u0448\u043a\u0430 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0443\u043a\u043b\u0430 \u0441\u043a\u043e\u0440\u044b\u0439 \u043c\u044f\u0433\u043a\u0438\u0439 \u0447\u0440\u0435\u0432\u0430\u0442\u044b\u0439 \u043c\u044f\u0441\u043e \u0432\u0435\u0434\u0443\u0449\u0438\u0439", + "seed": "8f2d586c94986386819933c26a3deea1", + "lang": "RUSSIAN", + "words": "WORDS_NUM_12" + }, + { + "entropy": "cd90cca793778df95b009c7a90dd8667", + "mnemonic": + "\u0434\u0438\u0447\u044c \u0430\u043c\u043d\u0435\u0437\u0438\u044f \u0440\u0443\u0438\u043d\u044b \u043d\u0435\u043b\u0435\u043f\u044b\u0439 \u0431\u043e\u0431\u0435\u0440 \u0431\u0430\u0433\u0430\u0436 \u0441\u043e\u0443\u0441 \u0442\u0432\u0430\u0440\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0432\u0438\u043d\u043e \u0431\u043b\u044e\u0434\u043e \u043d\u0430\u0431\u043e\u0440 \u0440\u0443\u0438\u043d\u044b", + "no_checksum": + "\u0434\u0438\u0447\u044c \u0430\u043c\u043d\u0435\u0437\u0438\u044f \u0440\u0443\u0438\u043d\u044b \u043d\u0435\u043b\u0435\u043f\u044b\u0439 \u0431\u043e\u0431\u0435\u0440 \u0431\u0430\u0433\u0430\u0436 \u0441\u043e\u0443\u0441 \u0442\u0432\u0430\u0440\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0432\u0438\u043d\u043e \u0431\u043b\u044e\u0434\u043e \u043d\u0430\u0431\u043e\u0440", + "seed": "cd90cca793778df95b009c7a90dd8667", + "lang": "RUSSIAN", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "4fc7fbc9d497c3d50d9851ff31612c50b5338fd1ab7ef7bacf7dea695c22bf7a", + "mnemonic": + "\u0434\u0443\u0431\u043e\u0432\u044b\u0439 \u0449\u0435\u0434\u0440\u044b\u0439 \u0441\u043f\u0443\u0442\u043d\u0438\u043a \u0441\u044a\u0435\u0437\u0434 \u0435\u0433\u0435\u0440\u044c \u0431\u043e\u0441\u043e\u0439 \u0443\u0442\u044e\u0433 \u0430\u043d\u0435\u043a\u0434\u043e\u0442 \u0430\u043c\u0435\u0442\u0438\u0441\u0442 \u0430\u0432\u0442\u043e\u0440 \u0441\u0443\u0432\u0435\u043d\u0438\u0440 \u0431\u0438\u0433\u0443\u0434\u0438 \u0442\u0430\u0441\u043a\u0430\u0442\u044c \u043e\u0447\u0438\u0449\u0430\u0442\u044c \u043b\u0435\u0434\u044f\u043d\u043e\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c \u0440\u0430\u0439\u043e\u043d \u043a\u0443\u0431\u043e\u043a \u0441\u043e\u043f\u0435\u0440\u043d\u0438\u043a \u0443\u0441\u043f\u0435\u0442\u044c \u0436\u0435\u043d\u0449\u0438\u043d\u0430 \u0441\u044b\u0442\u044b\u0439 \u0440\u044b\u0441\u044c \u0432\u044b\u0448\u043a\u0430 \u0430\u0432\u0442\u043e\u0440", + "no_checksum": + "\u0434\u0443\u0431\u043e\u0432\u044b\u0439 \u0449\u0435\u0434\u0440\u044b\u0439 \u0441\u043f\u0443\u0442\u043d\u0438\u043a \u0441\u044a\u0435\u0437\u0434 \u0435\u0433\u0435\u0440\u044c \u0431\u043e\u0441\u043e\u0439 \u0443\u0442\u044e\u0433 \u0430\u043d\u0435\u043a\u0434\u043e\u0442 \u0430\u043c\u0435\u0442\u0438\u0441\u0442 \u0430\u0432\u0442\u043e\u0440 \u0441\u0443\u0432\u0435\u043d\u0438\u0440 \u0431\u0438\u0433\u0443\u0434\u0438 \u0442\u0430\u0441\u043a\u0430\u0442\u044c \u043e\u0447\u0438\u0449\u0430\u0442\u044c \u043b\u0435\u0434\u044f\u043d\u043e\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c \u0440\u0430\u0439\u043e\u043d \u043a\u0443\u0431\u043e\u043a \u0441\u043e\u043f\u0435\u0440\u043d\u0438\u043a \u0443\u0441\u043f\u0435\u0442\u044c \u0436\u0435\u043d\u0449\u0438\u043d\u0430 \u0441\u044b\u0442\u044b\u0439 \u0440\u044b\u0441\u044c \u0432\u044b\u0448\u043a\u0430", + "seed": "4fc7fbc9d497c3d50d9851ff31612c50b5338fd1ab7ef7bacf7dea695c22bf7a", + "lang": "RUSSIAN", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "2b99c256d367a626f511de3a93b13c6fec1aed7420f518dc56082a21a0fbab74", + "mnemonic": + "\u0432\u0435\u0441\u0435\u043b\u044b\u0439 \u0440\u043e\u0437\u043e\u0432\u044b\u0439 \u0430\u0437\u0430\u0440\u0442 \u043c\u0430\u0444\u0438\u044f \u0441\u0431\u044b\u0442 \u0443\u0441\u043d\u0443\u0442\u044c \u0443\u0432\u0435\u0440\u044f\u0442\u044c \u043a\u0440\u044e\u0447\u043e\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0430 \u0434\u0440\u0443\u0433 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0431\u0440\u0435\u0432\u043d\u043e \u0431\u0435\u0440\u0435\u0433 \u043e\u0431\u0430\u044f\u043d\u0438\u0435 \u0448\u0430\u0448\u043b\u044b\u043a \u043f\u0438\u043e\u043d\u0435\u0440 \u043c\u043e\u0442\u043e\u0440 \u0432\u0437\u043b\u0435\u0442\u0430\u0442\u044c \u043e\u0442\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0433\u043e\u0440\u0430\u0442\u044c \u043a\u0430\u0434\u0440 \u0441\u0430\u0443\u043d\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0430 \u043c\u043e\u0442\u043e\u0440", + "no_checksum": + "\u0432\u0435\u0441\u0435\u043b\u044b\u0439 \u0440\u043e\u0437\u043e\u0432\u044b\u0439 \u0430\u0437\u0430\u0440\u0442 \u043c\u0430\u0444\u0438\u044f \u0441\u0431\u044b\u0442 \u0443\u0441\u043d\u0443\u0442\u044c \u0443\u0432\u0435\u0440\u044f\u0442\u044c \u043a\u0440\u044e\u0447\u043e\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0430 \u0434\u0440\u0443\u0433 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0431\u0440\u0435\u0432\u043d\u043e \u0431\u0435\u0440\u0435\u0433 \u043e\u0431\u0430\u044f\u043d\u0438\u0435 \u0448\u0430\u0448\u043b\u044b\u043a \u043f\u0438\u043e\u043d\u0435\u0440 \u043c\u043e\u0442\u043e\u0440 \u0432\u0437\u043b\u0435\u0442\u0430\u0442\u044c \u043e\u0442\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0433\u043e\u0440\u0430\u0442\u044c \u043a\u0430\u0434\u0440 \u0441\u0430\u0443\u043d\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0430", + "seed": "2b99c256d367a626f511de3a93b13c6fec1aed7420f518dc56082a21a0fbab74", + "lang": "RUSSIAN", + "words": "WORDS_NUM_25" + } +]; diff --git a/example/lib/test/monero/monero_test.dart b/example/lib/test/monero/monero_test.dart new file mode 100644 index 0000000..8146e75 --- /dev/null +++ b/example/lib/test/monero/monero_test.dart @@ -0,0 +1,30 @@ +import 'package:blockchain_utils/bip/monero/conf/monero_coins.dart'; +import 'package:blockchain_utils/bip/monero/monero_base.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:example/test/quick_hex.dart'; +import 'test_vector.dart'; + +void moneroTest() { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final coin = MoneroCoins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).replaceAll("_", "").toLowerCase()); + final w = Monero.fromSeed(seed, coinType: coin); + assert(w.privateSpendKey.raw.toHex() == i["private_sky"]); + assert(w.privateViewKey.raw.toHex() == i["private_vkey"]); + assert(w.publicSpendKey.compressed.toHex() == i["public_sky"]); + assert(w.publicViewKey.compressed.toHex() == i["public_vsky"]); + assert(w.primaryAddress == i["primary_address"]); + final paymentId = BytesUtils.fromHexString(i["payment_id"]); + assert(w.integratedAddress(paymentId) == i["integrated_address"]); + final addresses = List.from(i["addresses"]); + for (final a in addresses) { + final minorIndex = a["minor_idx"]; + final majorIndex = a["major_idx"]; + final addr = w.subaddress(minorIndex, majorIndex: majorIndex); + assert(a["address"] == addr); + } + } +} diff --git a/example/lib/test/monero/test_vector.dart b/example/lib/test/monero/test_vector.dart new file mode 100644 index 0000000..0fcb4f5 --- /dev/null +++ b/example/lib/test/monero/test_vector.dart @@ -0,0 +1,8452 @@ +final List> testVector = [ + { + "seed": "2332e267c4ee68b1d1f15c5ade17abe6c9397a4f8015368df23de1fa1cc31bae", + "coin": "MONERO_MAINNET", + "private_sky": + "e1ea47c6bc0fb14072d1b0fc2b55f515c9397a4f8015368df23de1fa1cc31b0e", + "private_vkey": + "b67e232d22a67bcdb831acf94217ee8ec67b3324b29c79982bd796647b4a3a0e", + "public_sky": + "d0a42991d6f8640f4aae2bd58e509f7d848a3daea4fce11a9ab57f925eef4ded", + "public_vsky": + "3f741b80e6c1e28d0098a194d32e0f437428861bc03c8d698f6c3926eecdf2aa", + "primary_address": + "49Xgwx3RfyV3ZMEVyrUNuUMzgQ1WHjkWL5T6Xk7QaTszggbtPbRPEkZQau9yACYEmUCHPNrU2MBdnJf4s4xLK5AyLDP5ucd", + "payment_id": "2b1a3c54591708cb", + "integrated_address": + "4KEMxkrvHF13ZMEVyrUNuUMzgQ1WHjkWL5T6Xk7QaTszggbtPbRPEkZQau9yACYEmUCHPNrU2MBdnJf4s4xLK5AyVTr66Q8LFefPwwfA1t", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "49Xgwx3RfyV3ZMEVyrUNuUMzgQ1WHjkWL5T6Xk7QaTszggbtPbRPEkZQau9yACYEmUCHPNrU2MBdnJf4s4xLK5AyLDP5ucd" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "85cqdW5fHGvUQzGXzrRUHf6P6AJjJrYxa25v351wNJCrS3p1g8wL1gk35HjxyQGGJPY3SygtnFxKjHtVcA7rAM1JBHukQod" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "8AMPLCTDfj1d8KNrVV9ijDS6ES3b7d7w9fdZvQDec9ZDTNdNZTQFn6G4v56m1jV39J444Yk9PoYa1aCckko5Ld58P4jnroM" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "8B54UxDb4TefonshsS5uULfDpp66xdsvMQPunVAZfW61Sb7HJH3yTBxaVoAQoYGLayUc2Phr7yKXeE3QnfVuEAe71oubhvw" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "89dJbRQoebuXerPXkVYM297jdexnip2tqQ1egSnXtztf14m56R2YpezEfJcdg3ye5oDKRkVbpBqA7XkeFJpjWmGoHp3HF2k" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "84pRipiEQZp9wLRLePxqGHQbseeprKWGv8o4zxWnEW75LbHbQjAtqkCi5Y4tkWN12Ddcrj9EWFw7sALevfYudyi1F27EpyZ" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "84GQsY4PCLd9iHhGMzwQt3Fryt3jyFEuSKar1RKBHREYdq9UdA3XENbDv22rSfa4asUKAY1nwcbzkHP7aRU17VS7A1gUvnZ" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "83fCQMqrPuY2sH64UhWHGMUfnCoHCQm6nFDE4NK2X2rvUjCUNfBPP6j3Udh2cQMCryYYCiLCHVstZF3zcnE6pszdAgkRaVi" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "85Lh7m8BZKuG9u2DpTbBrnT9PN6hdxmfkVpdEhtEQsoMEUDndZJPerwbYsK9EYwGns8MkShnAET3o2xnXfAdMo7E2eZSmyE" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "887FibKKvY1X89NK3AtWBvDyMaS7hJNQVac44dGbKdWN3YwmP1szh7JKxh5nyjzgoQTyu3QLvjKHk9FGWBY3YsoB2unfmRj" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "84wRbUgxkykbdrQLmxLNVzDZggbQvnMoicNCWJircVQFX98gfKj6gZz6tHRh9mokZL7SsM7y1goHxLhF94yPd881SqHiNZF" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "8C2kNiXNJt29uWpX6bAoTbeStrraAGN21JFX2YW5AzLsQQiq89ZCkQ28QurQMgSN6cTaNfE3Kbo25dbkyjuHH6aG3dht1k5" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8975BnZpMJhXRGZ3tbJS3rD3cpmwGLRE2A1rMooRqwdnNMXB67Snff9cNawBPAb9uTDJpzTU53YxoGNmdTURHSrGRsXAY1x" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "89YtGdqH4cDRLYh1gqrL237sRGFDHzp54JH95rCZC2rVKu8mCCNCRtc6SVdJtSMtqYFX5Y8pqc4ZiQQkJqn8ZrRUB4bsxfX" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "87EaFKmHyoST2bjnSrpGRJPGfKg9JSbxVaZDKkdZRHdb2vBcVkGp2CbJsJTCCG3r1s96Li7HUqTgbW28TvNie4aRDnTCwip" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "88MLBkdjExzFyGgwgJkzzyRGhH32fcBiSNGooebBoAJnJrRQJowcQZgBVTmGXa7ArEKxUJYESr1SAZqW9Ze1zSjdEV6eNgu" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "86m7zpix4Hr13uePfMHdcKQv7iAKTsaruFfyxEJVqWGVXpEczBdwTojF254KXrRXbwg9Zjfmma9JjABQ7mMUi9X1H5BkNeQ" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "84hfj15V5rKQyz4T7kF8eSBY5BbHJfuVeVphs5tGqK895UiLmhQin7MKb6m183oKQa2qfcB3SmcLt5x9ShNbWn3q1HGN5aR" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "87ixYg8FufQEDUAkKy4PsGRpJfszfrBfbUPSFrPUSpfPJfTHQ5fiQQViq6a511d2ckXvppethdN5qS1fhhNNd7NCV17Fjje" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "84EjtsKZaaR5xMPhuzCWqHgmYyzaqh9a3dDnG4Mqg1yrFC6vZGifu9m1PqQU4cw8EX2RXzXMLeNjb6Cz5w6MSpDr8CRw8ju" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "8A3DoW5Bqhh6EhRn3jsCUtTwftHtkqeGG8EJ8xTh5z5QN8Z6Gp381wvQMFbKBrHiwPQ2yFqTaZzY2ceXXXxWXVWbQRhgtYM" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "86yBmGfJemMPpR8ynz62MqRLyPycKtTAzAfpFx3z3w9ZZG9WPkgydZxQB6M7EeTM3fJ5jR6DicCNJHtjkzoL3AAYL9HzdkA" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "86wnXuwbU257ViCrKyyyDP1Gim7uC2qF29Bbx2iFxYJP6skzg2TCnvAbnD3Z3qEaEcdF78sAE7JM2jYzaneyFCaFRybBkGR" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "89JhvJnLwxX6rcAqEDwtDmfycS5V7a3d2Y1GT2SY9HEk2zowoFMrJtC8mBzQ2f3UsHYbeZFnM6YEUD1mkEeYnp9yECYjWF6" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "87PEi25HJZDEAuhvyMnwoM5U9G3A5AQYWgqiLH8FfFXrLLeUXLVB1r5bT4AWKg2M17e8pb35MnUbnNy54tuJLQ9L46aJnA2" + } + ] + }, + { + "seed": "b74f008bab278b72025865337586dec3a61b72ffe128c25caf654a64942c2a44", + "coin": "MONERO_TESTNET", + "private_sky": + "03002917429b4112a9e486a7fa9e6270a61b72ffe128c25caf654a64942c2a04", + "private_vkey": + "f69acf79d908789b49c41ef34a676243addff976e9357325d315bc565dba6901", + "public_sky": + "15daa1f10302c4f5d815f1df0d960f246dbb2e3201882b9f1906297a99c57ca0", + "public_vsky": + "236b7a8f986f47e0e1b9181b99fda2825a3b46b4ec48d0f81872586f496a070d", + "primary_address": + "9szghg3GN35i7zk8aci6gE76QQ68YsqaJTcSxJ5f6iUsTnYUZrPrh3CecdoQbGNi8HNoamaJZUne3iVqYve5kCH42a5e3qZ", + "payment_id": "9eceefee4493b16e", + "integrated_address": + "A3hMiUrkyJbi7zk8aci6gE76QQ68YsqaJTcSxJ5f6iUsTnYUZrPrh3CecdoQbGNi8HNoamaJZUne3iVqYve5kCH43H8o9qGBVdSDWgMpzF", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9szghg3GN35i7zk8aci6gE76QQ68YsqaJTcSxJ5f6iUsTnYUZrPrh3CecdoQbGNi8HNoamaJZUne3iVqYve5kCH42a5e3qZ" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BgHDkpFQfuaHqZzRWDmrXSHWNjn5yredtURG5oTFPZnmAPp186npf7eiZrrwVvbikWEvPF9NUS9EzXY8RJsWpssZQiXMv2K" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BfeeMPLcXD76gmrmDXXbTv22G1SZKoYaCCXHZSLAPDE7X31jR5Z5PKvg13ZhrVdr6v6gg6iwx8cwRcWZzucf3GPzQMCTWvW" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "Bhdt5t7aqtdNRZB6onZXjbUT7nSWmBEZB7iqaA9y5LWjSChHHWgsHGCAqgSnBuG1naJ3yfjFAwbnhWQZ4FjHXt78TTCJMyW" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BejYkBA76YLLRZgx8bQggnbHpKjBe4HHb4yrfPo1NijNPzz7dVGHRYA8sCGoZB4nyP8Ldgnnq6gHcLn3PDbZVe1ZTVQQvNU" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BdZ7W7NwNHa41ggb8poBiA5iW9PCwbYeo3UyKQTwgfgRgCbL4ARQE5ihZd6r3bUQ8EQN9PgxboQeE3J7r4fcvZsx1yRd3Uj" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BaQ3tYFZXK8Lv8wfC8P9P9H1YgszXwVFi43eYYEmNkXX3x15wsRaEja3SLqrGuJgFQARe3r18cHH6H8jTCHHLdKcEXP313d" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "Be9PgiYc8PVRqX8TDv3vnsYUfMpUndvyHSxRTZT4iCtn6zzmWBuD5NvjkMZ5gHouVZU3rwCqXLEmBEDGZPJtGjxFSbNdmDv" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BabStCkkGymX9LTa3PA8EJXsjoh2iAVyLEzYeox6hmomJFebwGECYq5Zz25ZAqTpG2X4mV1z3HRn7dJbYh1MztQrCb9b6zs" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BeebqKLyuE5LpnuHNKtSY77p5UvLsjgnVfsFDnhgoLwf5xSs1zTe1a6dP5Z5MSGqwfKLHPZR6mEir7gYnaAYtqN13kDJTvd" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BfhZj3t1Eg7bkMogKn3xX6FtAYJFrpfti7MDTAwPMUpKgmN13XdH8mYenKmRUcGVcyFitzTc9Da3wKgbJ3fhdGXs9v14eEn" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BazdtDjvY1yc19VuWpLqrSHVM99aqiwYLAhBZxU48DfBa62MqWyVLcLAisbcp4k9WAUCaasPE8WkAC74bLrmXetZFSLBdbw" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BhAH1GffwWtiMFZPeNXD7CMRyqqeCdR1HXRQ3KjiuPwiiszUnKF4h1xHHCQRxd4jEk2DraxkFATyNTs1PfsERmNkBEqZxsw" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BZnf8JXDk4ajCC2xSA3eWZcXuFGzHdbgPcD7GV7ZsDWbNL699NqsfkGdGrSkS2QhFRcRmzWdQLMouSTtyv77Hb9FVPBPgG6" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "Bb4wzhmN2pUA4KVS434uprHmakCu9iiHyAAjiaoiFaTaE7CM6k8qVcCNj1HwbFycUqERHEhximKGQVdrq6tUpM6NBEj1nTV" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "Bboj1aQLz5XQgmkR5xd9WjV8GvGNvQ5LVdZJfPf8Q85iY5R1j8kJroKGR726HiSK3SEvwPbLGayvN1bLFWfJBKxS2tkghPt" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "Bf98S1czQUJh3htbeqx218cgD5YxrH3QnemyKR5vye3vNvGoEpfBYgKfSdXr8HhTwnUAY5nUyW8XA4pZn7AnttWbV746Mdk" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BcG8S3uMncTZNLFdenkPXAQ4D6AhHzVmybEupGndnUFHeBv9RNA4kbu6L4y2WoXP2FU5vz5m9GT1VCeuhiFvWX9hMGitkJR" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BbqnYk8iVsDLUJN11yQGvtCCeAdjiYvE2MbMNwBkVqdhZfcRHuW25kpR2GVkUFbXFeHDssHCW58Pw1CVYhmjtS5xMmrPLZx" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BczYqLeTF5c24CsUDhx3XbNeshTq895tqPjNugo2x26jcS3eQ1jMiSpfhjRFZSyqtbWTULt7CASJDRRJCQKzbkTR8zZC5ke" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BaWSNsZtQu6iyXZNPUpSCbXxU7j8HYaN97zSdcwuvvsqSEiK6cMWoXPfo7tAGxW4xL68vtWUbPkh9Do5VuhMm3tg8Kbrmmu" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BZYGatdZ25mK6zpJsihdNbZazFmMEiiCnXFYF2CoSc6pi9magac4JGuHicstqJRjSUVfb3TDe4TSgXa9QD7VDktHNr2mABM" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BdzgGCc5FaU3ER8TTCJceLe3D7S5UovzgNkxbgfAVBPuRWsSGzxSGrFGzuFCSnR97KWF7N1u3gPLdMvUvzj58WJ9Fn9zvZm" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "Bb2r6C51DmA2przdjpzCpN4ki27myjEppDUVPXB1ndEBHv1QS2rKuZgBUPmP24HXiCDno15ba1Ad6JLfsGqe6VW4EyYtFzy" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BZKMzyDCXyaBwCkKQLeabk3YTTacGQeiTfyxkeWPc6Kydpv2MbofbXVXPgX8WekP1pf9prAzhFDLW82fthcoE4n5NPfj77j" + } + ] + }, + { + "seed": "507cbccfb0982252b0d9af216068fad8315ef4f259944a03357e2ad3530ceeed", + "coin": "MONERO_MAINNET", + "private_sky": + "5ae54aba3f2d2181f745253833bec8b4305ef4f259944a03357e2ad3530cee0d", + "private_vkey": + "88c6f23753d3f6756f729f8064a10f9ad800223f0a21318bc7ce2ba4f4df5608", + "public_sky": + "2f75346d791bf1d8540b397d71912223e6899473a8fe40120ebf1a6f330aff23", + "public_vsky": + "d506f1322c13b78d2188eb1c8536ebe43fc1dfb5b5509b2225a9ae760e966b78", + "primary_address": + "43RRCagi4KzdBf1xfH4eJV71HFX4E2dkT42BX9Dcv5Bt6zcmJ9CBfNWQc9Z14QYLEefBJVzQLP4gS6iGekSZwaGJEYLDPfc", + "payment_id": "675617782cbefb78", + "integrated_address": + "4D86DPWCfbWdBf1xfH4eJV71HFX4E2dkT42BX9Dcv5Bt6zcmJ9CBfNWQc9Z14QYLEefBJVzQLP4gS6iGekSZwaGJM94r33CLJ8SEZwrGLL", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "43RRCagi4KzdBf1xfH4eJV71HFX4E2dkT42BX9Dcv5Bt6zcmJ9CBfNWQc9Z14QYLEefBJVzQLP4gS6iGekSZwaGJEYLDPfc" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "876YQssrBorhCunPanAYVFXoNetfWRS7uGn9PJhsyvcC9XVayW4BLynjj9fjQGUYKoE3Y9jvzQt9nHMmqzBoNuuhVqHtrZ3" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "85gy1WGNwm8M6Pyp72ETnzbjc6J5UAPVbdNLu7vrbzU5e9Tdh4z6hHJSew4VDwmdJa7RDk83FS65zYNaGPUh7VScFQTcdBx" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "86kZc9nsBmQinGLDf8YxFsUmk7k3cUkRrUv2b9uUp2yCh96ZxQozH9BLoSRYWFPqe2AXK4ftbuLYKaNmqkk19tAeFgKRsqC" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "88gGDt7GcxXEipT9UTFcT43GNr4d1ggpMAuo1ZtrhXdwigsvW91MWUFL4bCQhmX2YehM3TekMcwCb1M3uXyjGUBk8qiNCEQ" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "82kWL4h6oCEgULUgcbJkkdZ1NnyqZfKHV4GMin1mRaTiJxM83MLS88PeWgtEpDegm2evV7VQxHrAw65AiJpGqtQpTYWp1MZ" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "8611hrd2QCgW4X437DdJt8GYRufzKLMLwPX6aW4mEgqwXpguM7omWLqKHVGqp1v3XXZqpRPJ4RmN45cvQtFw7gbe5ZERmkn" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "88FahXCTaHF5wdFAzazVguj9cu2vgcM4sf3u8xc3excSWiFSRapzGFfbCUgQ8kSAS7WztX2KfJDhufoiFQrZ7abNBWsuG7f" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "88MF5BmFJ677KAesoHEr4GiRS6XaaxRBqQ5zH2g4cVmHf7NB2aFzXT3FXJixyTSa1RM2bT2aKWKFY4P1a9jQL2TERF8Vqoo" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "88uwcnHbDPu3n63WbYG5hhFx94DUWDKqffhxNWGgFxMJ8XPF37X1ytoK6jY95DP9ZYMgGyEJidE3UbRSb4ycGrPoFDBaK6t" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "8Ab2GXLo3DSj1aMWiGraNF7Dven4kv6J1Sa64KRpgYoBTPz64W4a788PffKdeXb3NEfsYhdCPAErv9PSDeptQkT43W7W4Kt" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "85Jtaaorbz82CFnVG5g3cpKsc2zcCihVB4FTbpig1eSPMt1vqvosucy8WNsZhUUYevXojnixZPyHDY7yK4dGS6LV4SV967o" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "89ARYThLq5ibz1NtFRNPDzSjK9sooPnjD5ToNtFd49xMErr3NWVwujXZ8CHePem1QMJvLH8XpcVJfgnxmDieyF1YQt8oJ5s" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "88JfKG8pfwkdy77kYj8JcsScQjkhR1oSe8Gcex1o1DfGcQKcibB9SyjKcL6X4ioJZcAoqPK4XyfttFAZyfUX1HKg4rSC2q4" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "88W5wXHbDyuWi2z3DQbEFodFzaz47C3XG6uwa1o5P9WNAQatC8KCUqJM2jiKzBsdSx8njxiCUuVyWhfWjUz4KZsR2Y1QQxs" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "888rLnUtAPWikoPVCCHBiZBtbY67z3HvHQRx66gYrNoL3BA6JUL6YJLeJ8FpnTk1V1LUSmipX2vPHXh6ixEYVFTBMeJtfD9" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "87ezkqspBgB8weqphQ3SCEdhVTVvEivXL7TEqMnJ5KD5PH4qyaJ78492hhd7MvdKeYfj3UtuobGZPC2sy79pUMbJ22GfKK7" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8A6tiPfh1z35n9hcZreHLoD7a2aeoCxAJffcgwYmWqwDBGbYfRkHuv6UgVAvMWqmBbUUZgYbehSecVFmAwUw19KpGNVepsq" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "88p5v9eXyr299J2fkZbBoqUTP93qs4mTnRcjwCbSjDGx3ja5RxSF3ws2UraR6kUabSSiyyWvTGRJDUd9koUoqdpT5vEd6CZ" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "894mff8NsKF7j5FWW9Sd8ZPKdghfWPsfn4BVAJJDg7YQZFsN4zREwgUJYSqsMd8gCgBBwjtnq7xphD6fZJ7v4xQkLWWsoj6" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "8BvkiT2WoAU6NMqxsmzo23KWVPqP9P181C4EGDAbLdFMcwxK3txC1zZ3yJd452u6pZRvTb6gXh4H9a8JV4uzVchK6CbR9xx" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "86jraumTQsxTbGtRufrkfoCFwnzy7dXg98LLMgoWSMNqitjJd2yKfbbeGLd8bmhmCREKpP7LXNbNuHQjoGAYsp5CVVKJa1Y" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "86uVy4X5bbTd3c8UuGWwk72iEWPjmfGcFW7yz4EPKRP15mjEJbDbsZq3QHRirbsfi9Y3yenzKD4c4PYL7sNibJbR7w1V9in" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "8BzdgMFt4Z7fWg6RxDJqZoJ5ctAyTpZJjfdRzzDtLTSDYHNKeNVvpEt1wZyBXWKrb9E6LdXivjBAuQxeGcSZHeuN2qjBCMo" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "88qWrYFXkXwJoTCkXkoLLp2RfMp5dPNECN2Qvj1dFGJeLWHhX4uw1MFgPKcGWqSH3gMkEAS7jzUF43xXF89VSaQiU6ZK7Tg" + } + ] + }, + { + "seed": "adb995e07b8060bcb0c383fe1921e2623f97660cb72b87908f5a11d7946ae9d1", + "coin": "MONERO_MAINNET", + "private_sky": + "a4f6192825787143ceccf0b7cb708f533e97660cb72b87908f5a11d7946ae901", + "private_vkey": + "dc97157434e2e746e57b4f7b21fcf727d8698d080feb31507f7d39e0a2172a0a", + "public_sky": + "8b0948497f592d424e0a0f271484a5c6c3403c628b17f946a3277ee03623076a", + "public_vsky": + "38af9c80787e741adfccc5d72935df6b2195d476c453c2e41e31bebd9f30c572", + "primary_address": + "46thfc1ePgQC6EvQhMgPkxaFFLSpwhtcYCpGgy6Xb86SJmUtqNAVE5h5ViPVPKZDQSJvJnxXdM3cmfA2jMukA588DvVjbbZ", + "payment_id": "8fa7205220a30377", + "integrated_address": + "4GbNgQq8zwvC6EvQhMgPkxaFFLSpwhtcYCpGgy6Xb86SJmUtqNAVE5h5ViPVPKZDQSJvJnxXdM3cmfA2jMukA588LAPRXUU526EEX4Q6HS", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "46thfc1ePgQC6EvQhMgPkxaFFLSpwhtcYCpGgy6Xb86SJmUtqNAVE5h5ViPVPKZDQSJvJnxXdM3cmfA2jMukA588DvVjbbZ" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "89xkrTak6U5h8AiL896fZeMcbfs44cddsi8BpSNt3mB1cD6JtscgPotD4s3AYngxo3Fg1AuqTAWfwTCZo29Qd2FkDFDRGrz" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "85VvEYmD8DmejhLH9vBRbWaGuygRPKfay8BpbeAAzyuuWGE2EV7FG3eh11RUDzbtATR3vYaxRKhca4DQAQQBwzbS792Q8gC" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "84ZBo6s69kf2UQKGstKc7SbFwZ1nByLo7Bs8qUC3ggHH5wDGz173N6U6nkpkSQDTZgPjrUxz99D6RbgVcMmFA6cEPXyMM78" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "8BvD2YpJEpqVM55B7tMjJwCWLDRrG87f9D7PQUFzSRU4cmvyEDJaNRr4gdX33udSqZQMpUvUfKiBpjmgTc4QbM287gGRMbY" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "88DJbhG8wUffsdGYnu7kMZQBntKdDvmTV1UsKoAPa7LoaBvFSCvzoB3AEyFyZ3nyCA2nbf4MFU56Fgrb34hn92oCKcFUpCs" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "87rBHBa977HZRawbJkyiyc8CWCNVcQootVRg8BfX63qFiBcz5ooepkhM7pRck85B29TKMrDzC1GoU21ED8c7BbZB52eupu9" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "85K5mJakEBoEW2ESPCiMx1iYbCdB4Tp7jcZk89Vfv9aq76usFwEE4W1PEZujxFaHag5vHsso175BGKtExZThMkgCKZWvAZN" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "87sHwoHocR1cTj9Z6RV54KYuS4fTDgXEbVJjamqE8w79S9EYvPoPY2J7PkXSpVQrDWHmrSX16X4eQPHM7uYG7xtkJ2QS6PR" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "886unXCL1fTgUtSVEW4fFFduov5FNXrEy44PWZwt9BLN9qnXhdChYgrdTapncYHXaiPxEycDdjcAGJ7D8hnigYTqG7ZUktK" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "8BKuPq7yPnBAKDMEigWcFgQjBES8UjdCKHgcY9pSg8yhBwN9FAAPPbT1KfkGpCbaisECALcg1iAcg5GXb5F6ZdLf3CnUzZ8" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "8B9MavTYhMF8GCyysy3R9KADu5nFtpEajDjGgS59G2SBcwqSWDScwFyhwkF6mxgoEyFxpV1iSJSHRd5CYQcKHSvfGavZ4fS" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8Am9YNQtgxJTQKiCfQaJc8LDtvRgehLMhTvGsDBHNaCB7LJrpRmcJM9aXddz2s9Qc6gQ6k5JMEwBqPDAzECMyiuQSa7WbfA" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "82U25rrFE9F72EiVkCEwMgUiEUqejPRP1ArHxgKipe8UX9cidPZUemZWwcqH7oRAwbVE7jmRZ1gAaek8B21uonniJffwTt8" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "888sBQZaVn1eGZXhTGhWuQMXEQn625fVJ58ACKF2AirGPn51MSP8r9MczWSbUPMGQqA17jVgq72VANKGjFACspGA3tSnqob" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "84gcwBeedopTAVqH1MFmXTLgARb2NYcFw1wsG7wNbfPMYNzps1J2YxF28xncyDspgQ6pbVGcw7zkiM2h6pKDMpYiQecu3iB" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "86bM39R5Q1h5uyUjU37qGYf5yC9vCEe5BHFozcth329XDqbNwaGqCgmKdrAkq7spXjGfZC3Y4h3dKX5ePJHE5hYP1e4vxpo" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8BXoKpusG4MNAF2nGmmmcUby6XnWD8nH7asSoDUGyi3iTmN1aeQfR9MBnaQbvodi2jcKn1KeAKT13CDAjSKadEpoS11sNRe" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "86PsZ2mXpTyFZbj3eZgGjiSUdV7qDEzm1NBiYmz4zSU1835QF3HvYWAGDppJCCH5Uc36Amc2WBMCRebHGvn7UubxHtAUWQH" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "85M3P7UyN3KMW7iWfabTTBET5Dy9GkVkEjncpupZhtcaJdVUhE4dzBgcfFHcPjUdCE7iEBEV9AL8GN7xXiPK2KN56ezdsT3" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "86ue9UJ9vdA8Bs5CR9P7Y64KF869bVFKcdVEyvjyteRh8GLq79zKxtqLqmNJynwxjHgrVBjKHaAHcaD3gB7K3ii9C4wgsim" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "86htMzxLycHiidDsUV8dARYgjVvyDKwEGPTbgAdLfqHKTVJz4DVbqZtL8AU1TzJoYZMQMtzhXUuJcGArgAjTQmYFJH5Ssd5" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "87g5oDceZ6JbCrPH7phY5hGXuR5gqrgtuHoUp1bcGSXJKcG11ppxtCu53iKxFPL2b1Pgjjf6aQLDTg3oFNfks7j2M62Skge" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "859yzvpwJ2XhU74gYEut2McGWFEQv8Q7shwPjBbpxuxiayxmGo4ys3d1wRbhXH6SFQ3y2Xexme4xaF7ZK3btJjbu3EKvKRa" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "85dw1L8XZM2RmQUnq5XkKxc47ktKMqnrpej6ewZqN2u42rPtZUb4fz2DNd4saZdUV2A1hoeuSwozLHDxiYtbqTKq27VX28z" + } + ] + }, + { + "seed": "1310561a4a0ddca1723ab8deac95b4cf4423751b903df25e821d7691af1d26bd", + "coin": "MONERO_MAINNET", + "private_sky": + "e4f4c51b28cb11d93c7d14de1bd91fea4323751b903df25e821d7691af1d260d", + "private_vkey": + "1f7a2ae7380ba998f1ba3cc3283c5471514a54f7817ff92321c6d6f993142204", + "public_sky": + "cca8065e3874cd26328d424637049fb16e2e664c13d3dab24e90c8839d5b8779", + "public_vsky": + "8dbc3c2ff0bfbed338fc7df283ef3d8ebfef93a513653922d99f7e9ef423baf7", + "primary_address": + "49Nvx2UJK1E7PZfu5H9gFxWgJERk6kSkqWpoR4FHpndtMLDvB4EhMEDcL8BacaqeQcQsrP4PaDRnx6q6CAt8zP3wUtqMXQf", + "payment_id": "162867425e4e0e51", + "integrated_address": + "4K5bxqHnvGk7PZfu5H9gFxWgJERk6kSkqWpoR4FHpndtMLDvB4EhMEDcL8BacaqeQcQsrP4PaDRnx6q6CAt8zP3wiL3r8UTFP5XA9QVuhZ", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "49Nvx2UJK1E7PZfu5H9gFxWgJERk6kSkqWpoR4FHpndtMLDvB4EhMEDcL8BacaqeQcQsrP4PaDRnx6q6CAt8zP3wUtqMXQf" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "863bK9sbrPZavPqFf5TWatYf4abJZDMCbQCLZi2T8pfxTNuC34e5Xs9XNRkid9ZpLBUoUfDtQsvgkBKxpPRnqGPXHvie6ya" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "84SMgH9VA2yC4PbD4aaQqVFcvyQPCBrz3ZVK7nQLG9cEQYJf7fsMcbURetxBkatK9q7k96E5gHPeTMF1oepDUrraHXRQKfo" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "86gaWXfby7jDCM3ZWkjBoKJrtH7v4uXPzUa6AKfmjBCV545p5sWbzR1LPd3CzNnshSBjqTYazsX2nerHse3GXRKo1gjfMV4" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "89xjceUqSTP58SzcJ43bexL5xvNECrx2iVxZufMNeCEudY1nRQDm1yKLJCiFUUo8QHU6UPoQ33K7MeaWv8F7MyQ5MAdmUXf" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "8By1LB74HNc9x47jpBFrUqZWbEuC5sy9SjF9Bx1bYUh2FV1iG7rG5zyNGC9NcRRXVLenxbvFLRGtGHHdaaUH4dVFTsZFESj" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "84kdx8pj2uAKNhfKfNQgi9YCnY2gNFveg7Qt2NSCkfT8aNDwFru4kPk1KYvW9Srw6YNAzE6Dt2QvVBfbNfv15xVKALkRWDF" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "8AkZnjd9pFUDyeArQKZgNC8yDnmixn9uddAqRskfrgaV5WyNZgd5mW4TSbh8rbChwP3w5dk381Qx96xgFvPH1yMgLeR4dL8" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "86EBkGhCijyZYVJDqFMd4uBHwEiC5pth1aGb22dwAVTK74HxL1tWauD4dKiDArtHmqdT2ainVEC4oSHboTCnzpTj12kiqZN" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "88kzQRB9gn9eMHnnC535hTbvyEtm5pZsSPsPhTaKDNbh9J7sjezQimnHvnzxJXkDmtSH5biduugehCovgXEJFs6xEJW81Qe" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "88FK7tkDWEAGwrK9TQCcz3eNUC68LY8wmRTbeGSUAtodb6YgEgp3mzhjXP7UWYAs2FABEuRsdSC6cGTs1kg2NF9AMH1kqR1" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "85rWPXiT6sAAiBsu2c4bktcpNVaN9iQdHdWBxFRf8scbbYw9rrwjymA65pKSD8qqm33ZmuzgsmYAH1SWr9itg7oh6XVjEX3" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "89Jx64mDX2FSNae4meZEye62W2sJe4P2UKQzZs1fDV77ZM83qmK4dnbKs8mJn54qcDWweMYy1ty4pLsS4uV3B3AyBsJYyRp" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "83tAn9T9kFR11Ru7xbvMg8HfhgbYxjYrpKtB7akgzUmsZSjih7ZzqQaK2Js99ui9j6cdRgs7AAF2gKSVdRDgFXNa7ubShro" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "8BGKRjYbkkz5wJ7yeAkNKCRVuNYBuNojWffyKaukhA6MFufxAiSTPLB2ro6jc8k9kPZn4dXE4DRvjRGkMu53WnxiELtFznV" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "82cGz4MRJP6cTmtznAzfjzZjB8vPZcGfdGLAhJJo3qzDjndR3XP8ehSgpjhoks1qyxUebHJcGuvsJ4mPTNBpVBp8NVf8fN5" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "88RK2HTsv7TDPHATvoiR5JgRAe8zcT8Sw2Xpe81ouVisgXmTZNDb9tfRgafQXA5KviaqCYhGTBU8mPRC287HCePbCxrJZFd" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "85na3Vzamnw592RjP8KgsiZrr6BrjM6QpDREsQou32dpbaLDCQj3zdNSTjiLRWSdWiQA2yDSPESMsBU9EAFi9CPUFGqts7A" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8AKDzqMg1bCGfkLryeEuwy7A26zE9nPrzh65WR8H43QwA3qtFb1yyng5jn2Jc21P5yRuMkLHUdcdd1c5a5y6bMHK7RkdT9S" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "83W7iRWjhwuKhepNxVeyB9jZcuqF9hWobP8qykKyDH7m6U7c914R8823vGJ2bonk37NKUY8nJ5RmX7WRYbAjCb2XFB81bKn" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "86ARw3SuZGMSwBzYjbU38cQuVwbZhBU4JVxmEHK4S2RaJVtBShHXJtMTh7kpGeTx1K7vie5GJ32WpLEbkEYz6YtbLu8oyXm" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "8BJbFiKcdKVAUtK9rQeUMcC1TB6k5t67xWNnXtWJNxaZSwiek5mTsoRPVWzhH1a5ATRxdyit9pV9qbqAazi6DdCCPBNn8yr" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "89zn2ok42MG626eDUKJ8aSjh2GgSGAiC7cwcUCGbPoFmEh1LTzpCPXZG4RJE3fqK3xMcgNF8DvxQ719WFmsgJSf2M65GbzB" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "8Bu31aR2edvDQd6B7G1Qgj7Yepj1DQuWPGxTmVhJc6ovGdwZdKQdLKRQAhbMcZ3mnKXKhFgfs1tfx8DUjXRohwL2AdD7wRJ" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "855XSUcTRVyAXZBSHfxMnfjHd7bf5ngdiSapbVVUcCVj6n6VxYTRHqSBAYNj2zCJhH9cv1CZVwJvWPXbwQofq3HaVQ6d4mX" + } + ] + }, + { + "seed": "6a0dc434aa0320eb8aaa1531db22d13904db918fbb7a8b42907012b9d935d20a", + "coin": "MONERO_TESTNET", + "private_sky": + "6a0dc434aa0320eb8aaa1531db22d13904db918fbb7a8b42907012b9d935d20a", + "private_vkey": + "bf16e8c508f34be91c5ac3ec9c78acf1bafb57d3534773e47eb24fbd4f880209", + "public_sky": + "37a712cfc20896459b74717423578912d4d0ae449239d9e7c4f76d09f38b2ec5", + "public_vsky": + "18cc721d22dffbfd5ed5f456b922f8394ab438bdb098265717587740cd0d38a7", + "primary_address": + "9uGyN7u6KmFCeH6RkRKHon49gs3DwHErCfmTJcHcgjyFZy625mzb6wkjP1dEY9DQMuAaoY6dkBUDbFZtqKLv481MKswNGrg", + "payment_id": "dcf8cd152c300fb1", + "integrated_address": + "A4yeNviaw2mCeH6RkRKHon49gs3DwHErCfmTJcHcgjyFZy625mzb6wkjP1dEY9DQMuAaoY6dkBUDbFZtqKLv481MV5V1wENgtNSM2FcUaX", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9uGyN7u6KmFCeH6RkRKHon49gs3DwHErCfmTJcHcgjyFZy625mzb6wkjP1dEY9DQMuAaoY6dkBUDbFZtqKLv481MKswNGrg" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BeZb3fNEthLXStHFLsFkKsU3nS6pnuvccLgrqooq1rMeETHBAkccGhXcF8S5goSj67cJU5MKZqNryRk6wMWGhfr9A4XuFMa" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BgMjfySbqC9UuSeb4vzLw67TqcLskuPaLUZrMspejGG8HQ9rGXdLGsnSYNmWvhXUY3SFsEBohvQ2p7JBRbZFApD2JJoTPqD" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "Bc9mojdD1oRE5cPN1crmCYEGMouuWeYFr6y259LUsQCd9PmWYxLfSpvYARiEuMDX47WkBF8qPv4DS6ENAjwCjLRGV8fnqHk" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BbqG5McNbcfiWYnaiMaq52VWkz14t4ibTW6otidkePwrGFK5qdBHYzveVbdrALabofaCm5LD5QwK1TP2bzofDsXFKUBu2FL" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BeAG8ZFVaT2AeCHUxDsKEPW6YbiLB5vBBhjo5k79TGyRS2tXCoyAE13LFDnTwMcCmLDv7YuyWCWjSL8yuPHNGMxu3uUWxJL" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BfgtS6YeCipPNHVZdu5LyCgWAJhAqG98kVrHE7xg2TcsinVKEQGg6HWNYJ8UGjgjRX3orPtorsC67jLgPu9VJVr5KZGAjmR" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "Badg18wp8dWf2hhQcyENrr1X95769TL7RTKUo6hz9XQSBt29T9aPmf4UETYfcSNM1Vgh3C9x6XyEjYQM5LUgqkjFM7WWTgk" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BcVntvq5V7MExxzJvw7YUeS4CwfWFLfWCZV4yWbMH5D5RnHHgx1bzHrSbbELcVAV5FSwujBM4F59caMcQCuSkFPXQAiNwnA" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BgGLdPH47AaEzQufEX45c48rG4K5DHn5P53saK3oow4Bek2dijowi4hCihkSEUjE3c26NkcwBaNQK3HCmi27iFQvFgHCD7J" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BZpY6nwi577F3wdndrNWgsimJpTund6WVXh2bky678ZWL9MVABXAJGYCLP3b6QNgQF4yUfmoMXaKw4F4JENowi9yM5rg9ZA" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BdCU4fVAP35ZPJK27QkvFGJ4v5y4bQHUpeqLdy8PBpGBRAu9Rme5W5kP2GPgkEJm7VahkBP8aaac1QVWbihAbiGrQ3rHDdZ" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BZ23kadwG3eHHtmCfw64biQyc1yRysG2h9pA9CFQKQ83Bq7KYFtzriT4zb9yer2Vwmio8YAYe5QsG8uyACeZkju2Qq7igyt" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "Bb1PZkWqWYyQLV6uZXhp77A6JZo4Hnsx6NMVaXMEUJ3P5in8YmetgHcbDPhbU6ocSHbUEs4xLJYxy7FVVjTT8svHQEPd1Hr" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BceL2vNwvVcRUSAoZc7ViudrVxQAhZJVUA2PSgQGUW4sHGKnuA1pLH3M2iwTuSpcSXZs5tdRfszSdhzsfttmW33z9evjcFL" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BYZbGyB7rs62FuqSfJ2hUEQ1yFv8GRt4i5VPYgn5uH41TPu5htRn1V8djZ3i1PdLDmjousYqT37cgTKM26Z8njZNDPyLSWq" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BYy76z7AG2TYXYEp5xyU81NF8QL5YdF1qGbYYHx6vBxtWAbpaYBCTofE9qnFEh2VVJSCvq2C8fBbPRKnz2gUx7yKRSywi8Y" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BhChX7i4U1BZKNB4XXtspXJu5UYqPkmHKcLGbwGHWc63BEXTSLTUhCjgSkV1QS5GV1Q5oatY2218sU4etbDFvTtN9dckDYj" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BbpYKZ2kdA1ez2uLxyvNqk4BLPkobE3JX4bovr25TyfbWcY9FJkakDq32YwcuPPGbiNY1wtXLHJCxYtHwqv7Eqzv1FX1ZfM" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "Ba53qkHGMerfcNMVEpDi33GhyWtPzUurmJeyvZSCiNLp19X2J9Cx7fFdbsaUpn669sXbSUjPiHpRq6fQwSqQwnKz1wHyuFn" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "Bf1FjLz3DLGYnywptQgNA1dAyMtcBTeR5EggdDFWuLWEgGMt7eAdMYJ9ovJbQZzoiuK5Z2Df1guBphpoopCFpb3dSRueP2R" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BgbEKtsktcx2KppNiGPSi5EZ6HKFJM5FpXwT9Sa6bi8Ei654e7dNc28htFXrTD9kaXQWdKjoXsc8f6FUFd4Evds14zt87pw" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BfGUoSjjnWUMZyMxutaayHSGAcK1GnfnTaH7Zra8Wjd8SocUyQ7LBtzTnnKzzD8qPA2cbrcsEjWWE2D3hofWysf5AasPX9c" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BesT3KrCR1AchGuFFUL7iCE3FBKg1tD5a3DVPFj5Vype8Hpm8UeJ4scSjj7ZetMTbFRsvoncPrjGbgbFMqpzicm58p8s9NB" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BbLyikLpUpNHn53R8v31cxLKYPDFmsXho8FPndUkt27yUifGM7sT6MXPvFHUVbXexjYjV9RURSrVmhwTjN4FMwK7FMXemAr" + } + ] + }, + { + "seed": "467782599f12d7deb25165544a0d44bdb2b2fd2e2818faeaf9889861c58b464e", + "coin": "MONERO_TESTNET", + "private_sky": + "9227abe535868d7e59de86c8cf25c869b2b2fd2e2818faeaf9889861c58b460e", + "private_vkey": + "ff6840a9a0838ed5c314b4b183708f4c113cebc3c5df1ba5fdb728c273235705", + "public_sky": + "3c897e3ae5a399ba35be0588740dfea27ac0b3640d107873e3871c1a08c71da5", + "public_vsky": + "3eb1a6c215923039ed8de042dde946b6957db216739aabf5e6fc59d383b75bd1", + "primary_address": + "9uTi37zcbmJY9UEgXxCaAhUBFmqbR3Uf1LPGSxgRCEBnUe5nZ8pHqhHAgyUKzN2rnRXYHziyaT1Hki8ZVbRYGD4vQgswd23", + "payment_id": "d308b6d91329559e", + "integrated_address": + "A5AP3vp7D2pY9UEgXxCaAhUBFmqbR3Uf1LPGSxgRCEBnUe5nZ8pHqhHAgyUKzN2rnRXYHziyaT1Hki8ZVbRYGD4vc6ZRe3FbCvQJrfe6ZS", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9uTi37zcbmJY9UEgXxCaAhUBFmqbR3Uf1LPGSxgRCEBnUe5nZ8pHqhHAgyUKzN2rnRXYHziyaT1Hki8ZVbRYGD4vQgswd23" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BcqXRsSRhrNfSZLaoXMHeWZPrmab8z96w8jiWahLmricCAS5aaLt1tPRS1biVPwMcx5PGnRcDdjdmLrTdJuhMobHQ4hV7H4" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BbzXEXr6wZKgjCnrpqXvnZgZjYJhuqjENVr5QJVMq6nbDML7ZCuVX3L5WCeGp9j7VncB1zQc4f5LsCbe4EZRidm5Ji35HzV" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BdYTa2tpopkRVbATwaebvXDS9tzDRKisdSae89bXs45qAm9sFLYFQdoWwi5tgAu1DWfYtdyuvE7nucpKTAFXEF86UVqdssu" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BfmgShs9QYYY7TP1fGzNpxVAWvMZYeh6dM7pnBY98TzVAwcrLyqVsGdDwYVMXQYEhg6fE63xUmBrBPcdVNXpemYwPRjdWUS" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BerUq2LR8682H1vQZkdqgkERxkKhxv3ELfcjfQ4SNLVhVaw8TNoSKpRCN7RTXNSxq5g6spk2K7tx1JVhqqroo4s1MozqMzZ" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BaHUNcQxVnE51WixPgA5qKeu658GuhXboZ75zoGzzJee14j25B3TfE2LJEFGAP4dnbAeSQ6WyxM3378ecUm4SHZk9j7ey6j" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BbHNweXpX55iz3LAWErLWSRC6QfvE4WDXc93AvxYq38zJizSnonLrB26pT2DF7eNxFfayzYsE1zkoC2NaCfDvAWk6rUnW51" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "Bf9YrR6NbmPhvTKctafsHw3aEX6jV4ivTSdjzoye4CtQhGRouVbXefbP2oRb7AvUHPJ6WjwPjzd7ASqj6ZFxyBMhVaiAX2z" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BctPXBZTqR1Hb6hRQamRRNRttvmzx9KGPe6kFmFZR5aC1PJbA85zerSSParxda48xnEkV8pZNtMU5b23sxRjxEnfJPofXW5" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BZBTVFVAy4Eb9BHtds4TYq1ceLT352ALjSBgrR44TdeETdahzNeMXvdVpEtsQ8WaePKzubedJVeRrUEcKLGSqV15JbKavWx" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BYRMeznWFcdKQWXupisjbwBrs5xzZdXu4TKxR7CZdZPVNiaTo8wcYogMoJA6HAe5qucZZw4tX63Ge1FZmngf28GwF6qMMHn" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BYJuHSuZwFsU5bW8HEeaUGgBdxAzvnHWU7zMH98dSUTHBmKua6YxXykAh416rBuRrscSbCHo2VHzMFbRxc5vRQd7FshUXKA" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BbLVH8VH8byCHXD42CjYAbeCc6TRp96r9YYKZz1L43QG6CfZFAQiAGjKHm8yFhWAD5SCjGs65tVdL57rPi3YxzBiHvg7QbM" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BYdF3kScQ9XJxyyksJrfXFa9LgooBUjEgNikwhVLiCGr3XwbP2JFv9Uc8BtkhZ74FbLYpGAd4A5PKcGFVkt55nDAGKfUpcW" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BecbnvBSjYoVxQozeqntt3UC3quBh5m9SbSQnne1gJEyGuSdMsisZrVb2An1AXyHPtLbqNYzPEmHy48tX6o3snRkBFs6hCH" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BbQ4WQjVxsYR5EsQoCpxm5NqFRScC1s3KSRNDrkpQzf3DnGeXfYdePsExPFxb6NDoXgtzB2Z2qzH94DCnexuajMkLXAJyMX" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BZjTotUWLcD2but8Aa6FhVWm6sdZNpPwwTBYz3nRY3mkfz2KZFQtpRrHfFHq8EowUW1wv1pJ63GhC5omiwMET4MR1DKkspL" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BaayKsijrZ4QMoW4upGLVuNefSZsfwhbMLYBbDf64bCbf51VipfNJaGbKrbr5a1N1CgorKGTBbtMbfcpBvsoDkJMQMcSPdy" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BfDmusqurTY6cWFZWfYcbXGkcMG2iTrNmMEtJqik5MhUe1NgKAF6rQGieEk4Sw3ptR9ZLfBWfzQ189YAPXyCzvwwCXC1uin" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BaA8sqpT4znXWhpdULrhYDRDSijsjq7HCbKSwZHYLgG2bJU2A4D9wbAHorcKstTaYhA3ShSqeSppcPbE8Hi96qJf2bM1FiK" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BcFGfKEHdG7SsNip9qLodDS7ewbkwepWM9gjXAnHQse8cjZMqr5EuhuPEF2cbdGDdegd4mRjywiuEC1hTcbixmHrGz7Pn5V" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BcorBCtNxSNQPd2jJj7S1dfAoNwuU6LamPHg2Q7BKB41iKePQAt22SiK6edkxgL4yxSpLu6ze2YfTJYEeT9FggzBBm8edj4" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BfPd2vVZt9s4gvrexB4TVwZ6VvTkK646MVCsDZzpxXdBYZw74TTpaYFVMRpLUcoaEyGq3AkR2SfePZoTBpXwCwwNLuYtphR" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BYZ4b9HJtj1XiwX1UdYdarRKsS1KCKur93ZGT2VG1sDM9DPxcdukF34ZjfvpfamFm6PM8GTCaiD8TUiAPuSnUKXQV3xGuos" + } + ] + }, + { + "seed": "e729b4c5be24bd63c6c7acf99bb3c951124c31b5d675f33db1edcfbd4cb74e45", + "coin": "MONERO_STAGENET", + "private_sky": + "33dadc51559873036d54ce6d21cc4dfe114c31b5d675f33db1edcfbd4cb74e05", + "private_vkey": + "f77d2b948475a994fc9c81236be36b00614bf9e1e707c6e5cd4329e6031b2700", + "public_sky": + "67bee674018253c336ccf3ca3ea8e5352ffe568d7495fb8dd84d9f5bedd6e86f", + "public_vsky": + "46d71b2b7b47793ca1c6e4d5882c53c4ab3b7cf3001127036a160d1a399527fb", + "primary_address": + "55mAtf5tRSJZepciuJbeTn9tz8yZT52mYQj5GQjFmJKqKcXNJHd3gatB9CwF5BhmhtZtwCXCQgrJ21a8BxZsYbfCVNLfPks", + "payment_id": "30d7768f23095ce7", + "integrated_address": + "5FTquTuP2hpZepciuJbeTn9tz8yZT52mYQj5GQjFmJKqKcXNJHd3gatB9CwF5BhmhtZtwCXCQgrJ21a8BxZsYbfCj1sBrTj3Jj5TAgrSon", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "55mAtf5tRSJZepciuJbeTn9tz8yZT52mYQj5GQjFmJKqKcXNJHd3gatB9CwF5BhmhtZtwCXCQgrJ21a8BxZsYbfCVNLfPks" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "794V1MiFgLXHVvLqruW3Y84x3GyTFEHb5Hp7y5Uo2a5zinGBs3LCu3GSJ4g8jz6NDcSdKGwBReDVw1Unor2LaQ9tVjewGA4" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "77ACqyGNgPiFDqmbdGnzd4A54qAoqFHyVFP28y7GSLJ1RhGpq6VhegAKn8RjdWQRYp3nFQ6K4XYrWSavSZBqo3V34vWzrS1" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "7B5o1SeUnHtBxS3ddv6UMUGDd4bWhqVAPNvodfzSeRc27hSYdEZgrJ2AzN3GhuDuH3bEFYwM27h3NZinczT223vBD7qGKmZ" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "72StmyK7oGoXsUd58L2Vo6FAR7WCPzcHwSjc7cgcx8JHGE6oqa4LSQKedRCE8fsHqnKH7zF9Xvf4waK8SLSJE8GuMeMaiwa" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "78JhkBtvjojHr312JuH26MAtRXDYY5FRSSb88qAxSk5ATAaTHUtkKhQVCrdqzdHjdkfJvqXMk1dub9G5FCmtabptFpo33i7" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "74RxG8kuf8a3BXsxAawF39Frg8GZPMGowCB8JUonSNngF64dyBwMi7HgefrndwyVq2NqG2rBA3RvRLuWwsgpeZ8JKkqziG2" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "7AGE7WZoqfxTVrPaQExx9yht5ib1pbmfuKgNfijiV2rHV6FZBcL94XDaaHfwSkHMoyeQN4fw1Zc8zPA5Tv4LuMMJKMaghNx" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "74vWmHcedwa4BnBopY1wT22qzWHJNVeUhVzi863wewoabizr36AZheU8fnFsRP9oUdVbWgU2Dtnzq28aHYnFw7fBR7GFiAq" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "79USGhXmjyN51MN1MyaTDjDyvDGp57pnPhHbzoDWk4YRiaj39NHE5HGE8h6hJtTGCeKAfcj8G4Tqb6xQs7hKaXJkJvwqukC" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "769oJMUB9X3WFhMiyTh8Esgys4soJPvGUb22NHCcyBinj7gUMREnfKHcTzEqLRrZswLXmow6WurF2iFiCiDkmM7FGjPBwhv" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "79Mj2dvbJnrAVwTyScG4zcD1L9cYDPqLvaxx3yPLMsv1LERdh2m1xCeDZVEf7YeKBNhAqcD1SnktT1bXDrbDyqUKVHKcY1y" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "794iBgStpPTXpdmFiALyHAP4iH5TxjB3dFpfaU7j685UXjNH4yGQMSDZNpeK6ye9EUUdzdTobMjhYaCVz4tSD9UnBqeMRRQ" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "771Pisd9oQYeqGYdhaAnTgdvR1Vn6DRgpavoXewHvFUYBVG5BQLptyTbcH3TMTcDdsD2P3J3ooMySCmrDJrz6qGfFj72Sn2" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "76YSkNBR9CSBzNBadKNwZccH3EPgkfaQn5hoCXhJZHv5TfhFqmEvQnqgXEKZu2kErrJrJMmtgAZ7qHQGeWMB2wGdLcfZN8b" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "79zByTYwDzyDD5YqHShpyq8YDN9gEGBh59DHQ4BUY3wV6b5n9iYZvmDUit5v6CXP6ZCc3m98E3LptcwHHLLGQCxD28fwBYj" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "7717VjqRu3DgrD6cGGpWbkKg92tpqt1DmhpMve9Tcvmo7Z1MD2d1M83J5uZQMYBLZ17Au5NLeQdaJYTVqPGe2KphSySzmiq" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "749yG1W7uqf7hxkEMdqZpbZtPBNuUFbp9WKdtYb3yCA3eJi719begQ3RhjaL9F4M7pDUHPx1zHcgp87okriQJ4Hw7frw7iL" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "785g1QoQZanR6MNzLTKgMNMHQ2AwNgpa5VFbo7bo1EaiJUPfv9WV5Ye3wcJ21cFGz5Q17UYEeN8sq6CwQ2Ef7Su588uMwpM" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "7BmAeKFYMLTcmtwnUyEvxWYnBWBANPzStSxAw2HeeHYU7QH1ZUW1Ns3eXZYXEseKTETP5BSQh5UKRPbTM3nNPHNdC6y8aaH" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "751ygVykaUqeAE6E7mp1ZFYiXLxADgnVDQ5FwcdQUhWbA7M1y1WZgF3RoNxhZg2oxjD8J4etwPqrGJrWNT7T7Nh55wJ6cKy" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "77ZoEhMnvmMeUd4w4XNTt2CbzEm7ujj4wELm9mykV1Ws9nkV3tcNrLjQLNDq6WpwRqfKQCaK9CWRWHw6EyyGaGhXANRhfNE" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "78oP6tTuGbp5nLHPatK53aaxfSnvzphRNGycKHC5uA8cGPT7sgkWhjEGiduUTqQrzsRTi8VkmhmQ55xHTxKgmSMUHSBnRDH" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "76SpA4gxU7A9ktis4jAFyF2vfoxcLinBpYGtakUxXo2wBXLHnDtcvyEPX5gG2Qts8BDQKBqt1ykaRjN1bRMYmuqX19dR5p9" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "78iJrCc2WtX975noWfpvtC5PHkoxkzoxxULXsoUJUkAHPbcghmUaMPxP8E9mLj7uvwCkNanenkm8WPawgdcxdkMR1dcbDFs" + } + ] + }, + { + "seed": "a6f3e46e2e5c3ebaabbb6977320b2e49a699c84b5e2d154035e8099d1bfd4c3d", + "coin": "MONERO_MAINNET", + "private_sky": + "df770358df3207b228e5828e961d910aa699c84b5e2d154035e8099d1bfd4c0d", + "private_vkey": + "6a0ba130fe2e657dbe33f2b59806793b902b379fc5937e6a4992500f406da60c", + "public_sky": + "aa1336434c808887a3c8d49d816209b1b2bcde1a5571a8add1b9333bee37434c", + "public_vsky": + "3f9214da1ca249f99b3d02ec235b68ee42197769e41c4d67d60b9394aca6ea02", + "primary_address": + "484vWNgGmtbPgsoDHmwKnYWitv3jMxsVqW5GL4ZLHLjcDkhr5MGqHCUikVhL3yk5CbgrQNi6J6bX2JNLk2ke1LQR1JsXbbB", + "payment_id": "c55f8783c68adf01", + "integrated_address": + "4HmbXBVmPA7PgsoDHmwKnYWitv3jMxsVqW5GL4ZLHLjcDkhr5MGqHCUikVhL3yk5CbgrQNi6J6bX2JNLk2ke1LQR1TtAGBRDc1L19fkJcg", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "484vWNgGmtbPgsoDHmwKnYWitv3jMxsVqW5GL4ZLHLjcDkhr5MGqHCUikVhL3yk5CbgrQNi6J6bX2JNLk2ke1LQR1JsXbbB" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "8C8pvkf7WcsL4jBLeyEZcHTto3hTXUz4JRSjmqinSGTwRCsUwCqs4MMTCWfL1woo34gK1MG37GBv6VK6SyXLBUAeLDtNUoz" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "84iKcCboTzMLMV3bACo7p3Ps8seSE4pPWKEt3jDG968j2uL39Gtx6ZNQAkcMmD4oJrHBoFLbEc56PhyHgfwkERZPR27Tbam" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "85WK9qS6TPR1wm6BjCL9Yg86k61nfF5uT6LM1eQvqT9zhAEmKW3HmY3X744YY9n7uYdkrxQr1ZFPF9moV3Hm7EoiBbu9pW4" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "83seyEXcDjVGKqA8or8vRs4VoNTcdbNXaMo7f9QH3Hfx5HjSqSFmUNuQmcsegnD7zLF9X3XEFdKyrHzAUvitFZvgHZEEE1L" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "84rSdgUVp4tCRPq6UkWouu7SLvtNpNih4dh66iYLJ3ztaMGhmhbpXeMhUed8BnoZTK5RF4Un3FzNV9u5rsSmegB3LmZJxF9" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "87WXCTU9x22MqBJGfrA8GL9HZKRagw8L8dfnZ5Ci5XKCbnPckMX38VmKqXxCWFMc9W8Kj7J22ZrNK5fzQccCQHkrEFtiRcJ" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "88DJKqdDS1Vb8vifEckZWx1ckKeP9n2USGea1Ac2mJY7FQZdUQdYW3C5nFcWy489t2DvDDPFPyVqLYspaEWkHq6pPHHBms5" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "8AqekszznGJ56YLcsPeaqE9MXD4ZkPtDfLQBjC2QRF1dbt5SYjLUHkLZMc8Gh9U2jwT1f5PA3T3iiRWWU4iJyad7LmJwMnC" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "84mFaCZattLKnetLsFvs7NQdZx9aNBpKR5MRjHrsZrBN8D4egzvaqFW4VUsZeWrSuMdK2pdwTGECyGkFvtbStaUoU87TV7f" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "84LVEpUsfCb5dMR2cWHf2kBvR1afsrVgc5TTf931USXxAjJHgiuavw1assHXkbeX24TQyTNYmxwPGihHzp2znskqMVw2ME5" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "87KfC6xd3yRQHHpy6d8HpfGhHXb9m7BLNbSUyuR3yeePHJQWsJrs5ahVTniwzL1MMqGvQ1Y7ND3kA9VbKwaidmB4HQbEntN" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8A4coMZwZkhZbgtPmEivKBZ892C24t9Ts1skbsg4XTwXReY92uamnYQUouRUuZHTqZ3pNX8WHYtehUsXVAcWCRgTG5azvhr" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "84a5pKQn377FwrQhvNc3Fh7ARcc6eaGdgGwJWxZdjTRv9tSzKaHRCXnHYQSNVFsFZiU6ZuUTD6chfAGWkUiVBCt4AJBirDW" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "83Hk7AD1ncmeWDa7EJTZUrYX7MomC6JdzT9VKKsuZuw9iyUGiqdmYXn5Bgh3xF7TFSieANL3PLmNfWUmD9ETuHjD737vPTq" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "85QyQM8YwRsf8U4M1FfkbxK6TByp1gFzvFsw2koFVWQGQ4o5LugsbYGNK9HkZuQTY3WCE9PPpJnBhihrE1rKNip5LrDEV7W" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "84sMd8uJe2kG5MDx7cvTsTey3aDDpLvLnK4B5sqsXZv8GKAuvb7Fo9Q9neWfFHgUToYzPAg5uVQZkAjkDzDUEzMM7Z7zAnf" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8B5RckfR2NCZkPYjTocu41cLT3x6VoJgGDaheRF7jhZxZ1VfP559HZL8GwiyJjU1jWbyZnHqwARbLHj2Y5fET3REDhUXRzm" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "88uG5tEqTjX1xwJ2dUnJj96pufxVb2Mvy1X24hTKkSSm8RoCp2dCXudgoy24sv31aWEVTRLB4hSsud8yPcie5r4TMqUnzRZ" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "83oPrE37ffCVdo8p1cP3sydazzZ1qhccAN8kk6ZzEmVm4rCsGQFPD45BaUbxUoYt7oXLcJCCCktQBJFNLfWvunRQ7XbMVa2" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "83dZvvXiy2GKhpWyDjortJ88duABrp3hNbFT3c3Ge5H55n6ySUVSeUnCtBZ9yopXBv8ioey5L1YQSKUp3cEzyz2UPA7tKrK" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "84Z2qzRs5FC1ajVcRpNN4fBj9GqmtrLpCCAdB22cwDNHc1Gr65HhMhzRo2exDWzLQxHYNC22F1KU3BzRg5gHB5T2GYLLb2L" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "8AA5TZQTJKbdhvmfVuXPJCZQ7JxaqGiqAL9tJTxrUgLY4iUnvUVeLWb7uJLaRynpw9AVcZjZYDTpzfaF9Xy1j8f92RZGwrK" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "88JMLcmiZkwBmqu8VS91zDJVRtYY2J2uLhR1ayCfeKzzS2QPssmsudY5pFuqTw7VMJ9V6Xf6LZbn136EEezrLYZgKkCbTyS" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "898N2dygjjkgMt4bJfgiSxjHC2U7nBSgBDU17ozyyCJMezgwNV8WgCrLGewByqJRNaMScLjy91FfyVywSRazVEyiCAU6RZv" + } + ] + }, + { + "seed": "d7dfdd9c635145851affed080413d48af59de06a8b42bacb1c2629d7dcac7b04", + "coin": "MONERO_TESTNET", + "private_sky": + "d7dfdd9c635145851affed080413d48af59de06a8b42bacb1c2629d7dcac7b04", + "private_vkey": + "287a609ef9546111c408522ea3831e9c4d4f127e4e525abaebbf2a7aa61a240a", + "public_sky": + "47c0518e444a92d83ad5d5692d3d8e46aa1b3db70c215fffec14c935534017b2", + "public_vsky": + "6be71460f82acf1ec4e7de4b568710798531cbf19cf07fe073849a4228c2d34f", + "primary_address": + "9utMdBVe9S1dAhcMrC6xUVCpXyEFQs5enjomRJb9CKSnWqutxvaUgar69Vy4hMJtYwMKu9PfwTnx6eYTaQmwfDvJ9x99JFu", + "payment_id": "c6591dbd1c134607", + "integrated_address": + "A5b2dzK8khXdAhcMrC6xUVCpXyEFQs5enjomRJb9CKSnWqutxvaUgar69Vy4hMJtYwMKu9PfwTnx6eYTaQmwfDvJELv6cykDRqw1tpHjW5", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9utMdBVe9S1dAhcMrC6xUVCpXyEFQs5enjomRJb9CKSnWqutxvaUgar69Vy4hMJtYwMKu9PfwTnx6eYTaQmwfDvJ9x99JFu" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BfWRDWLpusdjQRLVoSPHbEMZf8RFGLm4BDavuX6cBRMNTdaQ7KRSYdbEZj8iLzzVNiFd31i4982mh9asZvXDGET53TUWSuo" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "Bgd7qzwbQbLJU7AMcWpb8NaAmARdbVjQahZe4b4DKLDSKq8pUEzrgXF1dLPG1i1Sg7DSpEVMagqGtFQ5ywUqdaXyJzr8uFB" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BYi1wSUH2myaigQDB5JyCcKfgbLxsKpQFKfUb3K1AqVk9sSpbiTr2VpJ8KTQwGnrfuGwS2WBPjrFzf8VVaN1762yH1r7sRJ" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BearCsMUJdqH9YJ7EuSHKB16pFUHEtxQy3rWzhvZpwbZeYtUhXkNJRKeHQ8mDBqggkAQwGem9FTYgFCHXmffFroT4FaJV7q" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "Bf8osFXhMHJSLs5mMdMkLLamMGXCTJmqADBXZNrD8bBPgJLYkPetsEKHyoCZFyfRKHdPUPSGqKWYyY8drwCQFBtU6w45kVQ" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BaPgTPmNiE5a1QNGbMJHUiiP978x9zvXfge3UdjoTS9NM1FLy8nsCEEWbpicuwwnkPis2gHN1DDHcHEqekXPYqZQ5ikcRaC" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "Bft6jWpnzFUJKA5pCbZZzRTGTj21JYHMdhieZzqz2ow2hxHAGDXTvuH9r24rUYVLxu4o5QDeMARJxeF3gaLkdsGVEY2mZqT" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BfY1qPdVvGKGRaaLLjg7zoa3nYWRkfNDqFEU83uPRi5XDPCQ21Tp9HJGwgr8XsADpwRrUeLiDgoov4STrdmg76bLNZzfwwj" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BfLC6yZh1pqLqbvVgkppjXUdzEpic3c44QU5wAuThSH24YXQp4ajXa3NqM3MuzUEYb4sRcv8qbD2MUhHPLoNxm9b7uVz9k7" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "Bbtgksde7n7gAVBvuwzgijAdfH9Xe81DJBoKMgBoBCBQbrJHqXQZGKhRJ4Tu267R8BYi5pff41Pod6tC5mhoa9M55H99ane" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BaMQ7xd6mZJfRQ8URyaFX4K5omhUhrCBiStmQnyfKVXbWHAX9B848SJaXSyUCBZmGQcuANZCyM1SLWzQSSw4sNP3MRbaaEZ" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BcnXZAzJrwWesoJwdMGxVmfoXaNdtLGbeNezASWnZPG377yEWGMU3Spf7uctvdXdiuRdSytVfzXb8DUK9NL9ZaoLDWjzsRa" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BdGGb6kvSF6cj9sUFv3owiFgb3yQ9qQ1c3FHsT9P9hmdS5xWHUeiJeEcwvXmdWMPLDdjV2AFBqtJy47Lg2VNLLba95JFHYm" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BfTr2A8EcG39CGNkDGNZdhBvUmqACs6tN2ipBzf6Lu5PPJ16nKarrPyVZZTmLXttup3bcvQBJHbMx9ggGXz5j3hxNvvri3x" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BYUmtLg5ATy9w7SiAS1M3GWEdZUM2nPKcSYE6GmYVyS72Jc1Tc3QRjmRvsExLXtDYzX2ee74YChmfZ43kX7NdZmG2KL55mx" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BYD6muYmDCvZCCNqjfb3hB6tL4jNQveQt1oBk7m3w1dbAB8XuPr9WBxB3K4UgFYEpGHcrPqzTKnjcBJsFrzUwF1BUm5Bngp" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "Bg787Hg2EwRKSZr9HbaZ4abZugML9k8h2fWpqknaJFFx7BWMysisQhp4V8HFRuNu4f3iWYJGyjNa5f1wx431ShagCkRziij" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BhSDFVxUh1Mjg41pvqzANs5r7RPmCBL75c8kBMzdBjpsBWPwuy3L4hvVszqunmpNpRNYPZar4T31PUoun5uAV29LQSDrf3c" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BYGHTktntvvKJ6T2Y75RtRUk5b4sA9eWfhagg4PgFeEiM5W5Rvxe9ueQNwNRagUMfu6JVpT22Nt4RT5C9inYG64x4GEF3bo" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BhAShZQUTYLYT96Ci24SgtZtLs7CpYgA56TuKunwNoKSFXrFutTLvEp8bfZHFBqqhFExcXpbxF17RS6hxreh2BMQMtATNaD" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BcHpzEpEyRQB2QeozFLKmqRtHLGy8QQFQQxvu5pE6AzXM3divtygLbhUZBDpraNLq4dNbVGXuqLAo7N74JjfR1prCYtdTQ3" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "Be6qBG4XyKEEw7V9P1daMPJLHtE4MoJiK89Ek6Sw1qPVR1KSWtmdm7RTyVxShFJpcTK3XdbVCQnpX8jA95qGy9hiRBvv8c8" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BhnEZzUKp83gkajAPpZ4g7jQkq6FhFoB6VTabcCF29NxhCsn1VAt6GCj2JAqC7o2L2HSeWiFo1aE97L4MpSbpcZtCTdBWZM" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BfWyfZxT8P7GDLAekD6bLXijYKFithuiw4Zvv3MeBvaM1e5jieZeP7bjXSugZc9whf9oTrXaNHUWhgA1jVjzv1wU18w53C2" + } + ] + }, + { + "seed": "012388150300df0ecaa5fbddd9bdd6b6cd0b992bfd6c0cd32d59bd73aff1be33", + "coin": "MONERO_STAGENET", + "private_sky": + "3aa7a6feb3d6a70647cf14f53dd03978cd0b992bfd6c0cd32d59bd73aff1be03", + "private_vkey": + "59d5eef84b6cfe4ad4065066b4f3844b5c8f7392d90eb6d8bd871d2458c43308", + "public_sky": + "085c1e36b0f814dfe9e40f43dccbc6d2d56292925a39ad321516bbede353d587", + "public_vsky": + "8f96ac5ff0308d536a5dd00518da00aa50a131670789ce104236a775a14c4f2d", + "primary_address": + "529X3vBbrMReTF5dgtj4FFcGMGMuHinJQ9Nrz7Fao7P2Pg7QdEB1Bq6ExEconBqHoMVVGa5UqCodP3ijJ9twm8466672uuh", + "payment_id": "8dc828551a8fc7d8", + "integrated_address": + "5BrC4j16TcweTF5dgtj4FFcGMGMuHinJQ9Nrz7Fao7P2Pg7QdEB1Bq6ExEconBqHoMVVGa5UqCodP3ijJ9twm8468cvu44Ac2NzRRbUfbt", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "529X3vBbrMReTF5dgtj4FFcGMGMuHinJQ9Nrz7Fao7P2Pg7QdEB1Bq6ExEconBqHoMVVGa5UqCodP3ijJ9twm8466672uuh" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "746TptYqDWMA5QZRDj11gPbp9338UFdDZ2vSNoVhvk1J7pAooXrj5Ae4VxXh25Gu6CKFCmyCQz6kSa1UHTd9iiwoSQExS47" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "72pxp8BfTpCYZ88LF12b3cPSUSYcWvP3ZPrtHx1m5DXafMBU6WzDX48KfiiaueiXeU2ZCooWfvMrKb1R7QBp8Fp4HMc1RSA" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "78KT47Lo81LNiXoHkqKAcQa77f38miSnMHHJ8v2SDqwybBQMJqpjjHE6vLgEWtj8FDC6NwtgvhCjUejdQqBiDJaNSiM4eyn" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "76LcT7xVc71ADMkfGTTCbTXYRis6ud5jvjAEPYuMspAjMHiES6PBPfYfVQR7Jf2Q7U4DvjXab6xM8RZnKuTSoxV22tyQj17" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "76UZhevLnbYJrkbtCJL4rhP8WFSCJinUMhq4tcMTPVLhCQd7KxPQ3DWGavi9ibgktFANJtoEwvMLggWtf5QZTzqrDaTFSW9" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "7AtnEAUwiCeLEVzfYFRK918BC92ApmL1hYUQZCi2Hg7rTbHKZjEP7pCazNMPVX3gw5Z6U6jmqNKnCG8E2hkRVFEpAFexej9" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "774vBr7zAPxg8TyQuqaHL6bmtaNZgCavj9QLrVAvVb3T1vTmGJYqUarNbtQM1ydMLuFGUbGZxMm9S3LAP6DeMc4rKxDoYhA" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "74yiB8eeQrBa8hpiiM8ekcgL3UhbuXRDsXohLGgbMcbUSfkL2Jn7fQbihQXLvQZpUTgZEH7vjcCEfiRquC84LXhRVp3EtQF" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "72Qs65nSZFe1NRfnJy4zTKJAirtQ6LuznDxvj3tU1TTVSJe4tw1u7Nc7fj7oK2z4dKE7bvtAReZrAeHpQkCQZw3L6VNYrJu" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "7Bi34dGeNVnaDTWcbTirCtYyf5D195o4s92AJT1AxEEWLn1hygTYVswPpw99cpT7DF1y2HRYZfCzzNYQ3GRnuG7RUt5Ycag" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "7498HHhfpevXTxroqfamcdGR556ghRWWLTx6RMCQ7tLXgB5E1Hcuu5GNMfaSeQj7B1L8py261vVwQA86vJKS3iaYUWgqkr9" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "73wgU3hUhAEf14kTdCxhjDeNukCt5LL3ZaKpdMnBiT3FFyis9mpL2YL2WdKYMyVEkvf3ewy3mr3QAggpN1fGoqdQAB4gGuF" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "7454YP5fdRXaKFcUt2XPpRcDqRKhgiuPNNbzMuYCzega4xcGVeZpVMH81MxAWfQeV747pukGCBWHvXs4B8im5FoXENbcoPE" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "781kecwrJoMHHz58Ek93uF5UxJU1iZR2V18Rgsur7uy2TixxAZ6xwhaVRzw4rmjMQpaNAuqXuHLPW911HhoiGMxmBohMgjm" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "79njTqiWYPga41TsEFHeBN1iGvRuFWSbPggCCtFzg1WC7EtGBvNowqBb3h5S2njWScNhmyUEhoPueKecC4sDEmVwJHuYNnL" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "73gYig92ELbeiCgJuoEbAVJ7NwYNjdsBJDed3y7tyRVY6TbdRbY5aLfYzQbeK1uQKyiVFpZrPmzayVKQy9DpGwxuDfWMwNd" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "72PmeY1wtNc9TmuVEN1UQFKpZ6s2bGjkzNRyZU4WVNUgTExU5a1o3SX2GBP9Gz6CxP74Wo7rb1HFu1fQN777jhc19K7zfYv" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "77TiRC8ToCxG9xe2FTVnv9Sz8sK5JA3QC3eij9jSaDvQEmwbE6BLysQinqmFxkHQouHJ9mFSQknYgB6Ufiicrb32SYi94Xj" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "7BD6y4v1VzbVsfMwoBNoX2S3PRsEWcLdV7qaUsDKTHCR4ewJuNcy9WuLTCcvs1YX7iPjbMfXVnfUtbq9x7KUbeSc7FrhSDC" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "77ugH48CmFTdU3rE9HPQjdM18GyyT5QeBNPyiRKkMNNdA7xRjpbyoboaDLxNHTi6o12BZNUbEjX4nYm9yC9sf1gL5WdYDEb" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "77ZQtsjfhCt24SBZxuTrd53oUx8wK9wsR1kT63BcPfsVXPGyQbwaND4Q6SYvFg1nShi42dSNPzXAMA8bGc9haS8zKwuHEbP" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "74Cpr33o51q7NYwHNgPt4C5wqTN5QK3hBLMCvLArPpuWWFpVwap2jGt8sjSckDNzi4SfVbMSC4ehnADsQuSLAtg42xH8ccD" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "77doZ1QTV2TXK5U9oLdLtadgrozpxr2UNgSfsrigvz3qdhXE2sDGpiLgkcYyABVzUYeBT3vr2VGnTV4FZvzg93aoF737H4B" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "77mYGn1zw58TqvyCifMQMKDbF5bjNm9pRMc9AHFubTFSQzh5Ajw8BzdLFx8JaCroUd5pQ2VbZ8uJ2CruYHmhK669A6wz2ne" + } + ] + }, + { + "seed": "dc388e8751ecc87f31d6fbb0c2eaf3a32a86704534826805e69c2ef70d8da617", + "coin": "MONERO_STAGENET", + "private_sky": + "ef64982a3789b6275b39040ee4f0148f2a86704534826805e69c2ef70d8da607", + "private_vkey": + "cb95932b3d1f80fb2206b1fb9ae3a6bec09bbe9b779d112992c5406b1e16a104", + "public_sky": + "7fe51a50d8fa625d72b82298bce6e2b1955271676f9609edafa4c05e16707728", + "public_vsky": + "691798d1797ccf8a3a02711e09c162992da008e91b518da9a6fcb7083550cadd", + "primary_address": + "56gFSvaB68RGdZhmYCpKJRWhnG7hkAWXJgkrUS2JitsY7m2tmD7cFJeQ7yL1QNjkW5Sd2CSqysuKSVNqhxtWTYkqRxeSeKv", + "payment_id": "1b15b243d8809d90", + "integrated_address": + "5GNvTjPfhPwGdZhmYCpKJRWhnG7hkAWXJgkrUS2JitsY7m2tmD7cFJeQ7yL1QNjkW5Sd2CSqysuKSVNqhxtWTYkqdz1BrY596SYHHz6pZA", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "56gFSvaB68RGdZhmYCpKJRWhnG7hkAWXJgkrUS2JitsY7m2tmD7cFJeQ7yL1QNjkW5Sd2CSqysuKSVNqhxtWTYkqRxeSeKv" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "74pPmh144eJErXvryRiPgbgwfN668Ncx42pDm1imfTeweRT8uQKUXxzjDJdHJqPPR7XAUAWpVrbGtFbx3UvAYNpx69P4hBt" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "77NM9LXk41Na4ohNNpL36ZTZdWvBiMYaWWFHrBudeR93Wh357W8RbuU5ptSts3PkW4Exar6Hcpz2k2jedS3fCUYZ9ePMdtP" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "7BE73w1rQG6bTutGhy3y2tMnDCtwD3YK7dCktVZF8egq2DFgzcscWtD5m38twJHVty3HF5CUjNZpZ6H2sLkvuzPrCNRWEw9" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "76fPgwG5obxGndUcUA2g5PMZGr8bE99ixhZEyGA4p2kJY2DdCQegnHiSrh8Afkds4nALZuap78BAsCQTrUsbvHRD8Pb3s6G" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "72wBbo9Nui7E4JUDitauoXi1Kkt1ceEZA69zpEqgae9FS2RCPnVcXkaW2YSHhKcv7PFpWyXQwTNvp86XdxY61EQz6egDhEB" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "72UsYePdWxY6A8wWkGZHopK8LKfB2zzCWHcZbSoVQXRkSTnFaLopq8uZJzAEiMPCDQEqqb1oPBuN9F97XfCmgresQwYTRMS" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "73Xo1CCMRee2oaAs7qc5kDT328UjTC8MwStnEqCR73UvFUnwMoNdfQFe6Ns5KDsUjZKEvpjuwNiJzfcYxUvkD2KwJFXyuZX" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "78M4cWTsZnWV2rk7KQkr6ShWhay6CvgEzSS43prrFvUJQuv581JSCPJgai9x2MGTzkfGKB6cTDjjv5yo5xEyw9wa89XnJe1" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "78wtz6pjfBDKtL5DJtJLuhQMScS2cyB5XQYyjTTgL9bmQHCgd6YC95d7Aapy5KkmK7jFKqXxodYZGFaJi2JDYQ4yPNUBFLu" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "779xx2Z5jrpYQwKU1izv86cpxkjaWCZozQHJqHC1g7a2GRfjKFvzqDvEqhMwnHnvRfEqqRca2VpycjAN1nLBA2KLDcCNHED" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "72kyB7PYuq3YL3M8Jg1hfg97XriLeLkTRf96ShbUqbvjCTi7jKE2qUp8XPZNQaeFoVcUXedjRZPUhTsh5PFDx4keR44GvWT" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "77cwbBRa5aJD56UGJQjwUAdJU3dnjhK7s7A9jxPXazJxQZjEsEMJCHnT93LvNAUar5bNs8zhRkXfaS4pe1PiTQH99qYTnTx" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "74uEv7rqbEscahS1XBbkwK2EkHS9MkTXq5QGb6pBSfeXFKs59iMgE2WUCBnZ8GQ43tTVipqB8RjJmea9WMSvjjndQrzNgCv" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "76YCBDPb1uG1MRDb42B3UsKwZ9XEenPX62SRv65Rz6nNgmtfmysEsD19nL7GKYKtEdbqgZ2vEnveDfYjbAXWVWaK2PQH1g3" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "77uMHi8Gjf2BTcBvxB3uKqWV12dFeTQv6QzVfGFbjLuqXGRYnVczhQocYxB9te6pK5XwK5YDSPZS6LNgYNZBzbAVQuQH9Nd" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "78pvMYBfKw24rJ1CR7JH2u9m6jxGg47K6a5MZGd3fioyH467bQCU6VaEuvtAZig4Jg3an1H53t655ENJoJVHTzANG2se1fE" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "77oBNNHsTcTjbChwUqngtuBtwGwY641Kui1DgzVVHQSXPKcGBPfhaZQdcPCF5BCemxbRHkJneRPPDVmntWTpbteuFNwkbPm" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "795Kxbxj4cKJ6RSZCfRKrVbEXGkxvJuj2JGQT1BjRLHmMDrywpYt4ZCC3TechxtdsyA7stbxF4vjkc3jpLipoKyyAigmUuZ" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "76QWmWnESvsZkoeKyEfVm4jXa9HJWWR6d8q8jBgh6EgwM7LD7RLSZYvRaN22chK2M6f77BidmAhXR7tgvWduvN4nPCPRDrb" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "7Bd5HzB9j7MU8PVVV8yNMzDcC1etNPX5AHaxXDjrMV5bAfWvx97DuAa3PmVBujgfXXKWMuRMUo3NXPaPBmsQZ3dHVB6x8Wx" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "743ErD3srHLTaGEveN2cqteTr1cyds9hX1nh9kDGfmkA2eYbGK3WYRKcimwDm7ei8UdjzEKTusPSKe3ze4ewqZ4yMUCX7oe" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7AsuGYer3NsKxJshCUg373SNzL5Qy2pLUFbjQ4eTmMg3iKjUSi1Xq3Ghq4Q3FQU967gbAegXjpydDX6bLgweX7xLJf4JhRA" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "791haVpy216WYLCn8qAy8CFCaVtz7gd2P1wHMGF8ufMj7iE6RzGGNR545W4EU47weA863hUwUZHyfjbpczrDVMsw2t7XdS8" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "7AKzw2rpPiPGr9Y6McQ2aYibdQH3EYihXQS8bJ2Z9gwn3fwctxZ1QKKDCmMicp2ExQ6oWDqyRmgZ7gruGGY89pyJFLxeunr" + } + ] + }, + { + "seed": "3535ed143ba084b2dd204f74986d72e6084ca85605cb346290b6ee5af7f525dc", + "coin": "MONERO_STAGENET", + "private_sky": + "2c72715ce4979539fb29bc2d4abd1fd7074ca85605cb346290b6ee5af7f5250c", + "private_vkey": + "ca9ebabf11b5cd4b605a848072271717bf87b4c9817b1d55581f24bbc76a6e0e", + "public_sky": + "d75f9df54442d7dab3ebdeb4c653e750c5c79aec3464a6a52a80f2b827bf2535", + "public_vsky": + "1cb5c250af81d5f77bd6580ad0ae2330dbdded267165b3b580b1a2f9f7b61528", + "primary_address": + "59zXG8vtZqGdah6WEXcqz6EWbXB6MfZs3UdKQh4meise9tFkhmp2uQxiPuLHBZqBir9AzYR6bgvnvXMocV4qS1bS5XDyvpm", + "payment_id": "fc3e1f915e4444fb", + "integrated_address": + "5KhCGwkPB6ndah6WEXcqz6EWbXB6MfZs3UdKQh4meise9tFkhmp2uQxiPuLHBZqBir9AzYR6bgvnvXMocV4qS1bS7rcKasziMqVVRbBVhR", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "59zXG8vtZqGdah6WEXcqz6EWbXB6MfZs3UdKQh4meise9tFkhmp2uQxiPuLHBZqBir9AzYR6bgvnvXMocV4qS1bS5XDyvpm" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "73L7kPPagXqBHZjF9ryxsHcdBJbUmPmXC3thNeJCrkLQTvPDsDfGTAUFwtSzmzRTUgCzFHzTQBJaWAJbHCDdtiWyB6TSPx9" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "76ThGDnMd3aM5XKaQhLGf7AXwkNPEQWbGCD9pEDZZFc779NF5MYQzK6FuVAfq3anToCqYDv8TBrmkXYx3QvCL9n2JUcvGR5" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "73uTT8SWyboEkuvuGPCML6fNDjLKkFK6vZoAQ86cpvcSWqic9ZAswEDSE74t29mizXFyu7cwUgk1gM3WSeAaEqwY7mZPKUi" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "72whCqXAGCebE2SEGTpdcyP6wtyNC9UV7NzoUhTugAft3HneaomjtXBii7Ybkb1SBiPHvaxihE7aGNWo3gZdXvoSVWcxmnp" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "78VYesEEK4gXxXpFki3cpWgQnN4hFU2LX93WPPs1oZq2DxeWeQVqcjTbSanCs5LGev7jkBJKou5RT71qo1HryM3kQF51vYe" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "72PsS2KQmBWTWj68QaDYp15gaxCu465sgK36a4MWM1MNgrPj1n1MMUM9d1mGR1ddUgM9VYTH7kpKY7ezXTAwVHixUQTjx87" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "78aReAdziP8Vns1oDQLNtNRraXftyVDHrUTCnff2FwLmSsLx8poKmMscmeVUSC7LqFRe29UpvSFHwTsGK4gSSRvD3ET5R6S" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "735Gp62QAJmUbweWSY3ZXKTE2pcnTrUjEdzhfYWYYbQfg9L1VP9jYNKWPchRvtBbwEA5Hw3jJKDXmhxdfEXFTL1fCPSniT8" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "73rxBk56TJnfijoc7CppLo5EKrE6mG78Shjk648f6Nrm3vgHCybqdRnTLNWT6gd5V7XQow4hYvrPpggn4tucM76BBpmXNuq" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "73VHXbi61TMAvPBxwutXQfKMCaZFt75eJiP1kRG745xXBqLruG1mhLLSqARwrLiSRdYX3xmABZNJsQutFp2Gp8U8H2ngnwT" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "73gg9ijNBHX7a5TWWHDCcigDvuCexFvwCXYcWvrEKyEyJrcpUitc25o4xj4Txtw4hBLTgb7Ck4vYSBNbdVjEzFbsGhe4xwt" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "77ECEwXTJ9x1AvxLcA4ZQuiirEqvF1KJNAV3md8vdFEBSTETV9vGNZZVjRFEAzAgRwHwtiiaCn6YzT5d8tdcYTMjAa2RNqq" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "73R5CsNERWZMHmvH9B6Di8A4v96HZksLnDmLNDCnM1cR2nq6Jex1zBJLBoGd5SMx4u2rtvfEezAVH8h7MNf7HP5D7yYyhPj" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "75NyGNCGZ1Q85nEtxCphexhkKBzZJNxLdYzTDJcG2S22GmS15kByLd3D56TsWnucuxRp7qq6XX971RFxarq8HGRx4SCujJc" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "7Ac7QRZH88kMP1itjCDmTjHjKvTzD24znitHnQUgtxDK1fj1sL8a2EX6N4zHA3aJgGV5Vwj4SCh3hiVbC4ToLMz8EuBUDP8" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "78tp8T69teSCYsNXrGaFLZWy9tQYaME6S1e7jKDnihMiJdQqZ99wKAeF3qHv3WjiDDY9RrMwPvaV6MjrVZvESbEvAdmM79R" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "77418jU8PCdbzFgpYNEQGvNCtgFXJQCwaUFtUeMZJhe2hP7bn5fKsitAaXecix32ZZhfjJptbHWphRqEzr7h7uf1SG5dKpt" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "79hG7Kpe4AsFggDZKJ5Ms7QQ13xhPYtSs578ZvzMXgXEMEch5LzhJvVaT6qSFS6eCTcJb6thT7WwF2cpnBoWqFwKMwrmZfR" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "76QoV8fmMUMfGPhCS9igGoGUKmyU1UEcsWVFaQSNUWoSeCZJzKqRT4j2uMetfMB9xZdoXbPdgH4vWJPxeVyYYwEP3qLR2PV" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "79mk2eZLyvjbTeFVAUreQfb6vvxNiGKJfLztJzwCrPXeC1GyW72HMFDStoLMRqvDarL7zST4vRcz6a6m6wJDeMzWUeeNZFX" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "78PKmuGWyCCDY1VGa67oNRUUp1T2RKpgQb7vapJnBEwwhp6qahkxavV1JGXjEAHEr4dE95AuAmUmk79T9EZQVog7HgbkjJr" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "74FSJyYaC6DPcCjeBX9dStQSafCafeXB8HNeJVdM44AqSKx1yGqWqgGc6wVC3dqsGLfs6BjAeRqwq6pYkZwFxC6pK4x8iVp" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "773Np3jd54JE2JxY1tZgCUAjKsrvBJ1tyeVCdypC55krRs8Lr13m2hZUnDgi24shAtHpAHGEZiDa4LUqyiygNnR2K8sJPDD" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "77qgL5NVErAJjh3GyNb2g3YaSeUirSvR1NM4niNXZw1Aha8bw1j6xsKfCwjEu58DyCiVVTktX1DunR4GYmyPMzDBTLr6dsE" + } + ] + }, + { + "seed": "e18fe37885ae5e05a0fe23b48a43fe06d7917e415534916502af78fbe42461ce", + "coin": "MONERO_STAGENET", + "private_sky": + "c5a05d1d490982e493a488101b8d8a0cd6917e415534916502af78fbe424610e", + "private_vkey": + "05f1b14c5439e101f8f1da90ed91a47faef240b34ef62a6d51511c50a051ff0d", + "public_sky": + "cfe5367af98999b5f0129bcd7e875a31bb2326833f26098a42db9b25dbecda1f", + "public_vsky": + "ab942342bc50c101f4388de2637545c59fb20b5768ddfff8fa181477be2a4892", + "primary_address": + "59i5wjFc4YGXS2R7SzzUc99KTH3Xw9WqvQ8JmzZx5BhK6JEyNQsZqw61KxTRb3zQfea4CWojjkL8eiePWaG7siUPHZsUW4F", + "payment_id": "bffbb99d1c113482", + "integrated_address": + "5KQkxY56fonXS2R7SzzUc99KTH3Xw9WqvQ8JmzZx5BhK6JEyNQsZqw61KxTRb3zQfea4CWojjkL8eiePWaG7siUPRYfBAVPWKJjFiWZHjc", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "59i5wjFc4YGXS2R7SzzUc99KTH3Xw9WqvQ8JmzZx5BhK6JEyNQsZqw61KxTRb3zQfea4CWojjkL8eiePWaG7siUPHZsUW4F" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "74SkwnFZP3rKoLbhVnbCVXVmcqBeQy2heRspM2XT989rQQub31GZrM7PDadZYS6TYxSBP5jpss5G6VYUaPBZjnPXJpE2p4x" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "76kdWALicshMJZEQejtBc6EV4qvAWZUwAPNmbnWsc6wwTLkfo74WEu112L4B8Zzmoc1kpE9NpuccpEtASfXBhwf6JyYfYQn" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "73TCXqatXghLd3ukYmWRV2hC6A3JpY2QpcDtJseGTzHTftzE2SY9vJ36XjeB9eHHXe6gV5r4hVeXxCeMkVRbEqUHGzN7buu" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "773F4vrvNbg8tLN7QtCpLsc94eNdvEChbf943gTmXPxyQDhHeVbegNG9BdV6SivPkRcdQBHNt2XgeKFVxnf7Xj7q3zyiV2o" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "75Zd8uCgURPQvR4mxp51w7E3Y2K747MRvirZNXwhvEe1GSHMXoz96PgaYNMrjcRByiit5n6aYhqzu3jbkv39QLwiVp23i6H" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "76bR6EtXyq1Jr86dmogjJGTVLvbNA6vc1htq8XEx4fogfrUNnUvoQi45mbqdeBkJBkVPoqdeM4vxVQAffqK6egYiNF7M1zx" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "77VQneo7XYtTodoP9vZjsiiXUkdKATC59SLF3jQe7K76F6SbFhhmrkf3HboebUcaXdJLzCW5Fkx1Djkz4J9Kr4DRD2vVqgt" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "7BXiXC5C4c8ivGq7qWkLd5b4Uc7QRqKgNZob7H3fhXAkF89toQ9mNmcGraGe52i8qzbqWJheiZQvWfdko5FVqGfr9RsY8L4" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "758E377Fvzj9UuRR13Ec26iuosM6zNoNhXAgAmujfkjp2q2RgUD7FjeZHjpW8qZYufSbEpt429iKKHG9D4wSF3gzGTmvznG" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "77qJpwWN1Yi6KHGkTBDYS43KuoWywhRVggM9Wriacd1oWsTxGe7mNHKQHhW3aNqt5kibDhE8rbLVj3EwCkiXSrUbTJSAxC4" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "73y5vwho7mxST9vVeFSZZjZaSc1S67vaq8CabSfvfrxi5bXQxhaLpZDJoNcmGUhwZ6diweySjnGj3GwEhuVp1zmp2s7Yyrf" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "79QwYxpdZTt2AyVASHsgtNRuVCe1TxAQjYTNkbEiRw4nScWeRa5E1YtJ9bypiRCRErYhWKYmjYWSGZJduz3mi51oA8yP68A" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "75cParq7axpWd7n5FMPx7d5KrczSRGGdBaiZfHSJyzFmTdzzwLRXhgj6Rq89gKnqf9NUBMiXsAuW1cdMasZRpBEh28fMUJx" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "75wQWExibdYeaLg43qKaNPX1DT1WDUpGQcgbkkBQnzHBa1niyLENFeycGmokKb9HH3cKy3BpYGC14SzWqwYRGEFoFwD7A4Z" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "74SZHHXFK8jQDWUob1NnHBPKarBVC5r4e61P31WT71seURn2GRE1FoPFtL8RYG8UaSJiGGYYoWiQreJ3mZKz9E12GHu9eWv" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "73wwgZWYNVdZpAARbm1NYgjZTP9rQ3zmQXS1jDJ69QJZ5YZEADPqjiu7uJmJJAUpVnhiEtVFMxwVP9HiKADezuMADp6RiVh" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "73DBk1b7tDm2tvYTqKHCZo6tbiVNNK94R9K8CarKu897eQZxGMV16sZi29p62insgKRbb7ZAb155GWXoaYkn2Jy2Mw4y2vB" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "73bKDaEMhExQybmuRyiEXkiGyVz5qA46Z5NCQ9k55yTLdr8Y2szJpi7i3TMhRvf7g6hN1Nu3Kn2eR7krd55ARDDtTVwVBL5" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "7Bh4ca1hzAURysqyjvjekGKoe6xuJskCTKbVPacVb5aCicigohFvGbeLSvGJNuMprAgrPTFVqmDpdc2PigDoig7SNBT5svS" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "7AR6vow1wfmSSrLmn77RYe44uvbqGrb1ufdyAN8fyFxq3mzVeJkR6Hu7TKTujvayQC3uzjFbkfS5mBcZtEuN2TQfRjA6ae7" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "7619cXq4GNw1QgkVyMMBwmKJaSWYsLzwPFCZQFqVgDCu7ZP9psQZavbTGB5Sxyp3Fv2geAUAdbZaJcQM7ZCiuw86FFxhTiw" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7486HTu5rgvdwKWKDcWhB3ZbDDTF2bQD9NyKTqWov8FsicDxTMw1Ta99K5MAj7Tvo4ikrGLkyUoNt5eBmHcLZ5q8EavS2G1" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "72jBsiZPkYVWwBRHEhKURfiwwKnPqV7w8Z2fNfcNsJBG5p8iKfJMc8DedcUXCEZwPU4pv1vytu6fvMPNPmR8WppKAMzV4R1" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "72ZcNTMCR38c8hNfPU8zZVPDrvGTwFzmH332CK1KLt5bRuRn5EAUKZgY52MBakLfBMfgD4u8dPrg3if2SpGtTXou1Y8nfjC" + } + ] + }, + { + "seed": "896c3062ef1719421ab23b599c3af1c6ad1cce14e755702b347b3a8451087a2e", + "coin": "MONERO_TESTNET", + "private_sky": + "afc444a8ba51f4916d784c13df46339dad1cce14e755702b347b3a8451087a0e", + "private_vkey": + "9d2960db64f1f8a53717919218acc75d8bdd2c151724bd17cbd6d1e6173db70b", + "public_sky": + "db7f8a640108a3f4568d49a51f1249907b4d6e54911cac1bfb80fc4413915164", + "public_vsky": + "d22dbaaa64a093977ee3341ce1365d2b4918826499fd00a5e6ff5283dbc56b14", + "primary_address": + "A1V6V47X3qChsPN5XTvX9SRAesfgGTARR5gTxDeWUJdWHs6E5FvnUYiSLhTniYcQNQ8Evat8edF35UkThxfiDo9t3MKdyJH", + "payment_id": "d5ee35433f2b41ed", + "integrated_address": + "ABBmVrw1f6ihsPN5XTvX9SRAesfgGTARR5gTxDeWUJdWHs6E5FvnUYiSLhTniYcQNQ8Evat8edF35UkThxfiDo9t4V8fFXT8okLTokvfeh", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "A1V6V47X3qChsPN5XTvX9SRAesfgGTARR5gTxDeWUJdWHs6E5FvnUYiSLhTniYcQNQ8Evat8edF35UkThxfiDo9t3MKdyJH" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BcNKJQw4jJbGz9r9h4seNdMWLTJbh8vCvaMd8EZkDfPTGdsgHTz4ffgGxL6KenL7ZkgGCKBUsyg1N16mwiwDzRuqDp4ua8c" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "Bb6v7f8URmUf1oNeuhzYTSaaEGfEUbYyjhsH9YCUP3XMfdemYYNn6XfBRaq3U7y6bY2rNrZWu3GiwipERYr1wB83LqWCbWD" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BdU8btUStJnRFnwcvsWhMw73mtRNLvSZc72CG87qV88viDhbR8Pf3gsg8ytmFtszxt9DNPePgaNDdMCs6Legy9WeC5x1wQU" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BYVakPAwCGEQJsdPNWJHMj1JLx78BGMsSKhD7XFCUYxeQgXhgqrfaiQ6XwYM7VquuU4ze8ej2eirr3kiEuopHV5aFutMzo3" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "Bh6jk9QnVXe7RAehdKMJsr4Rv8VppuY5LHuPdNBwFgyWF7g7FRCLGRBQJumVAYcRYV9X1ZMbHcuYjLB6wV5PrNaYQkJrEBz" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BgrWLRTcfywBdNNtfNtUcPRjjvFGgD1WaF4tvSRaCpT5eCT8CnKzuLvJL9XxLXgEtmYgqBDC3rnYLGEUAVy2iuT36qJTx1b" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BgLFyg97GFe9oAUrgq1UNNKiPVJTfF62udTEs8Ku9mfhdYnVrcpUwEkaiYB8Xa6YohKT14r1hfcbi6wdqMZnfDfNLoM8N29" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BejVJ5BpyoaLSiYxviPX2kCmUEx64Y3i86wguAttw5WkZx22p1ZXqU7F9QdXxe6HCcHjP32XfwZzt6fTHhPCbUHxCkZraJZ" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BarTtY5zrz5jGdfrQsurYBChkoAKXqyX7QsEkADxHHUcMzTr8ocQVHe1BkucWQpWbvLHBYDHXeWi93eFYKrp4M6KNq9cmy9" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "Bd6ZL47JGFn2QkFJKrFo8jbXMgvigVxPWaR42taK7Dds8WFZaRq7phn8DvJ6oHbcJggeFbm16Hrt6TRD4EJJquJ2HvrWcQV" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BYS7vKG5P8XAkpBF13TCthFeNzsyFuaEGFvL368NhXnShGtKrLXWJLCP5rS5ob8gKATbbVo5ChgMTiy2x9G9vMdW12kbcD7" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BadibMWy5Tu7NFUbooVTxr2uRR9yHzSTKWSJCHecKMtKZChwaJM2CxxAD3mio5yAMqgvwamrS2pkNUv6otCkrmkW79w5mDS" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BhoLJe2FiPt8Xyi8fgeii8LewuJkBRozrf1R4Aunr9AD1gUiBnj9b6zCF5iX5nFeEM4zMcK1b3V3gaCccMPyKhwh65BRQom" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "Bd139msz6FQBzzMiwFBauD6d2z4tCzxT5CbdyhnwqLMSStzJGvakfpbLWm3CbZhQrtB5VCJQGqDjM5kvKfKzHoEsDTkawVA" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BZgFVZGULn95ZpJ6NX4kBPLVJpUGvtFCkKzW3tMVBbMvXwdzHZq7MWVfR8zCfCFK9uQyXVutpkZLqFCqhW44PqK9JF874gw" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BYPT8mUpb4xL5KXzDvKBoraBZUgWpPoFpZFxqFvejorG3QS7JMsTsZkQF9Pa3bdVVbZA1YZwqGnWgcEeqcDAZn4zFkvXnaq" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BZe7F5vJitw7s13b1PEZxHEewp6mw4yzN5BBrLeu1LwTZeSpX6LmUMvfpQs21yfKha1yKG1muSwQmjSzGwxTfpKp2u2vnte" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "Be2mHvSy8mUVV7AX3uZQ2mJ3MP6TXPbWtSvJvicmFNNsjmikpJYYwuYa8jvFdNiRcqNQSwSMrjkMt8R75U9tLboD2JYn5fq" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BdWF2aBMJbJL4nAGohw8neZoBgzUbhSK2CivYYiRs1VdQgwtdg8DhuhgtkpqTLAVYLUBZphJTz3yA8TGfrspSB7gKxXUYag" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BfgWQ5cxMx3ScujeK9PDZWTHGqtAqnBU5FZA3tupxEcwS8WYZeHpdfR9iN8Wq3sVW9ajFWHMMHc5p5dUn3ucMZ7h5XbrEGe" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BbAEdS6gEEwG1sLa9WTTUJ73GtD9foSVy9HiBgiS3Ztg7PWRwzL3fGnP5XTcCYi7c4JCrYcksTrid4WmvT1GR7xUGgYw9CV" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BfrcCjjQH564ZNRQwGtap11Qpx4ugQQuNiqEdFCnxiQaTbkdzTsEJSBf6VEA2eXJpvZ36uzQkv9BNbUohjqVN8m6DZi7bSr" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BhTMd6xMq8hFMmdmH1jRL2d5FqS2dQYwr5m2yPYQahrzEobescvppJWAjKwDkqCpsuX2kVnUw3x95W8QUVRvPodN72tfix4" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BZ7FHQ48cEWigcyZsUD3sCVFsMuPcXMfZU3pMVHVs9QBXyiuVZQUFF5YzkH6CHRRsuEXmWe5LDaTK4PJpNBz3LYzJm5NrqZ" + } + ] + }, + { + "seed": "397514ca49649f8851e50c3d8b8586fa619399f1e86712ec6321f70ce21f375b", + "coin": "MONERO_MAINNET", + "private_sky": + "985147f9c57443d021d5360e32a42b92619399f1e86712ec6321f70ce21f370b", + "private_vkey": + "a15250e16d3e5d10d7ef57fdf0b8caedeac7e040c3ac210271f7e876181dc10b", + "public_sky": + "8e6cda7837944ef6309ccbe45a0c543c66182c13b83ed4e504327d755f380cf0", + "public_vsky": + "88bd1483709144696db2330cabf274f0efc2d426604502c74cdf2c9ceee4b800", + "primary_address": + "4729h4DfLJyiBMKZzmXE2wB6wktMfLwPhfJkGFc5ao6jhEUyrAqsKcXJdnjaSFXEF5hJPRCr8SDjPaLTpRa6GAtX12WZm8C", + "payment_id": "c17269b514449b6f", + "integrated_address": + "4Giphs39waViBMKZzmXE2wB6wktMfLwPhfJkGFc5ao6jhEUyrAqsKcXJdnjaSFXEF5hJPRCr8SDjPaLTpRa6GAtX18LBiV7YfdcDZJ5VFy", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "4729h4DfLJyiBMKZzmXE2wB6wktMfLwPhfJkGFc5ao6jhEUyrAqsKcXJdnjaSFXEF5hJPRCr8SDjPaLTpRa6GAtX12WZm8C" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "86RCq4pkNHaJ343n45rhLvEB2xY6mBkihZNzmTsVxnKfaU4n9gfwAdeCVCQHf9aE7YEcTiGru7MbB2GWb9uP8nFA2A3XU65" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "86mPk2fS9dKPZiYc69MPrbBoGFeLPfHXLVKsJq5mtQuNTWDD3dJsjWtSsWs6vHfy2TDGJYomQteEFbZiQSTLw6dnKVDbq4U" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "8AX2PEgqKzRSSxPTzGUVT75MqTBVnWQ4riVv6u3E1RJm3B7zPmVw7XxgkMWZQn58xVawRW57omPDQKDUnuWNLZ3FPWLfqnh" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "88cFvW2XGst2ZFX3Cfz1FR7jhxNB8DTLnNHEqvNZZsKmNuWquVJsD1sW4eUeo3hVhHbkWE8taLPtJ2mDJH1JPHrmLcFpxfX" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "8BYuH9xbi1CHHFiJvMJ6tJ9mCn6udUNJvfrGD6iuhb9v4ngSfvWwAeTTWPXaabwDkMjU18ZQe9KnXb2UbLeq7zSrHHBEfB2" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "89PViP4avTDHxYi8dzDc8o7yb2nYbib4q2Dw4Y9AVikcjHfn1UkkJEDff6RVE7MtKrMfHHperdCyv61yi6G6hrbmTETDrHu" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "8A9CqtnJ8rcboXahmvaMFG7rPT6phxaLZE4q5EAnVrEAXm8u73VQHbZXpVHU2Ti8nHUJtNEomiMn3YqnANWwetF67sw7kSu" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "83VNBNyR2kMfpr4u3kTYXVVyBAD3h5N7iVmaH75TGrhqFtiS566v7QDEoz2tayJwsxZvbo2hGTPF2FvDittSB9bgMjNUQA7" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "86MTLc25EdwLCt965LyMEJEPuN6ggbeRdQdwPE6ejCcxf7FugxLBanRQeqVfigVWG2Mu5viJfVVSuhjRm68pJMxxE624D8s" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "83STJBNRvqgTqD6D23yvFEZsaY2GH7Q2CYSLYrdV8ksKTtdamSHSez5Lphczqs3vKCUm19vLG6wosPxys6DSQBsmJWNWX4K" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "89GEg7VGpQmZfVrCYJhsDugKdAMUsekecAajPK7gGuUQ4kNhassVZacTzR9cFZkD4i4Ag3Ho3aWx6DP6md3QVWhxKXSfCtE" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "85HqypzRoTd1QvtAMzQiMtLCSgdaSRYBH25tb1ScpsqJ2wwjYFir3mLb8gKeqxYVyeXvyBFzgoEyvDcGF6bjoQ5NAwt7XZv" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "87uNi3mZRcDenZohFFpuz6j11aXrSAD7RhU8AThGijJu3r8fKVx1WTuYpJ9Bux5fgwNUUbXbLCSHoTeVJXh5DdwV1ZebUQf" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "85LpLAdpGn7MZ8D58LAsF6GsUNmFKZpGTDNXcSGkjvbM5DdHBznHyjbc495GkwHfRdQHSEM2Eb1ULEnQNRjdW4WS5AcxWJJ" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "856kTrf2pAbFh84UWog9gfSKnsEJchFFPJA7rrdPtoiN9PxAFgJUV1JMLBpFTkVu8ji3MKuyRRRTxEVsiGvUhnJRCmKbADB" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "84RHDbWVBTKdDEK25gFeAodQdNrmmAAVkbjKcd2RsmumcasgBR45q16d2wkmfYcY9QLa5r1XFRUHi1bk2aDZDTh7R7iP8M1" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "83ozDBrWcbgGXL7D1dqS4gJSkcQ17JCFyZLEXecXdNspDKcVPAJQkRzELxRfKY4fbg8Wdmo5GgDG7RUC2cYxRVaMASWgZDD" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "89Uvwp8YLveNwa7hddQ45s5casT2bQwu6cxvBNL14NK1HWGpYRWo6Whj7yuWCEJn3FaLV9wNXT6F5fmT23Tj8VBs4t9pX4y" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "87qihHEVsoDga19eVuB43UfsoSQHPzGiX73kgNzMnGAKdozrrcDg8eUH3CuasJFuLV7ru4kVQgERJ5R3vmmEePwD4vT6ver" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "87NXxx6x5G7TheP1YbXeZ8GXPKp354Coq7g3MZic53gdBu8qkyomi6d9xcHgSEdxGLPXR87BBNE5jUzWPBvKgtK2GoDBZBT" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "8825RWg3CUjWRABAX7RJN7CcroLGbLc3WgbhG9YWryZVTdzrT2etrrJQbuFVHKVhjLfeLquYzkdSwYNLD5nF5VMaDnTqXug" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "84msL3hzu2aicTkMvyBgXe7zDimtmkVRCP8QdWmycZEuCiReXKADdSDAGjP45sNS1MNAsP5T3NUJAVukE1gSN8Z87eNceU7" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "89z97rgetp38xKEzRQennmXUcngsquXDS6Qqh1dbv6NPZnK4bnH2KZCXUYo5QfkYtrLSRiiVSvUccdofaAWtuCeK3NSFr8Y" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "87SHVQwHovGVAMChTntcfsbBXY37VrjktAtxfS9CUANdBswnGbkmN8GJaH5Pa5FLpnZh4iHXRYdCyGLkueNiVUyKVMMdLzH" + } + ] + }, + { + "seed": "2d1015a8de369dd436dd95ead13ac2451133cfcff7b51e0b8d8fe350d984fe6b", + "coin": "MONERO_STAGENET", + "private_sky": + "9f18527a40e42ec43030c8189a5f88c81033cfcff7b51e0b8d8fe350d984fe0b", + "private_vkey": + "1db02c2d8f7046737a39b1b3f1d35e83f69f7fe233b9006b7a3f21a7771a230b", + "public_sky": + "21c8a32ebcb5007ad062112a3b97bf0cec0cb01180de3939e0804a168c8ae46e", + "public_vsky": + "f3111fd87299b44f84d15809e7634833f6cc28b73d2fe282c40ef8f506dc671b", + "primary_address": + "537Q6y3XKbuMYT5Uv3FcWJ3AMttYGKeCgAgUnKGBrFw9KZMEpszhVZuEJS4mzRfTcb9h7karf7HNqNsbNSy1DgKx45sMwhV", + "payment_id": "d34c69a52c8aeafb", + "integrated_address": + "5Cp57ms1vsRMYT5Uv3FcWJ3AMttYGKeCgAgUnKGBrFw9KZMEpszhVZuEJS4mzRfTcb9h7karf7HNqNsbNSy1DgKx5ewapQrDExHVMFr5RJ", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "537Q6y3XKbuMYT5Uv3FcWJ3AMttYGKeCgAgUnKGBrFw9KZMEpszhVZuEJS4mzRfTcb9h7karf7HNqNsbNSy1DgKx45sMwhV" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "73uSWNWk9P1EojqJbe7YSiHBgo1tqqDiybCh2DvSEqsNW5iEW4xvhz6iR8sFMQZsLvM8wqsxKASLC4hnaUYuA7qwEgBQXqP" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "78ZJ8w2i1ESLCaCqqQpzNtWwSfA1p6hdeYHTvfyw64e2GbBttorWfKk3jESwRScJaSftLxQGkQPn3H8NGwK1oDKH9rTQjeX" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "7ApE8ZfohyCHSULok3PUYu2Fb1Csbf39ui9QLEZxoEidd6rCTEgemSdCcm5EkxPa8Z8V4H2SsJczHWfshfjpxEHAP4f98J5" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "74KxrLTS2Q5Hf6kMejgsRJiu2x2UkdhV73tM8XzETcBHTzHCBf48vdag1ecdnsDviegwvHUvppRTkXUdx5MTueEfBz9fm76" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "7A2ZicuAFy7Cct8ZsvRnLJ63HY7js1PgCDbR7Vs1WXkALMwL8dWMhwGPPP1LxhPKviZ3cd5pvgFwVZJPW4XJUR6ZLr9cY7a" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "72QAxM4VZqyjkTLbCDroP2RhuC3G2j5m1BzY3aC762yAW9zY5b3BE8zLhukX9KdfxuZcC7WKnf29e9RxBoKXarwF8yRDCuZ" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "7B9xHMQACuXJ1rtz6QqxBz8hyi8szGthqQ5NJ3xKTS8JgZr2dmicFoYUp8RjmK3knwabcPvMtmcrqYioKMwbakPUQQY3EU4" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "78mqJUffXz71G3MjaEFafQQJQgscoJ9KtZhHAJ4ae82Qh6fM925X682Zs8jNeNq81aa6eVRVAW5aAX7WUte7U4D7UAfGdZ9" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "75ifvDG3LXtNz2ssLnQhNzX7bZWoWyzE6Wi8z82S2gZNjSn4KjCSGonWEAggA436iiJRg8e7xp6arPHKkAUiDp2HS5g4jVb" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "7BfhwBthxQq3pRiaBCM9TVPs5JE1GtoqcR8LviQRPQWXd9ywKhVyD7nhgWkKPUj8qmMxUXEE6PiBXhbLwLJRnYUP6Zt3gKN" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "74CzuyjmrHzPZv8nibHR1qBUzbAoCA3BMSWgayNosDvmHXUoWJ3dvtCPPXMAty47YZQJ9FbjuK5ttD1LK1n36gZvAraEMi8" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "74tHQhwQmZ9gbYgqdR24ydFuySf1uL1fs9iLJCRk3M4xKgDCfNNq4oWGzFd6jXLLfvfLFEGpLiKqd7YKVmRZAYmU6mYH19Q" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "78ZjxpX1aG4UphiU2BQvzmQiSSpvF9DKMbHGtRCbCRAmUWJe2JHym21jPeCSFVYU4L8X5mXLoQ5aqgu4sj9qfUqY3jPxYzN" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "76pTDdDP629BCQe1tpsgmJ5vC4UGt8QNp7spx6j1q6wxNkRYWWAG2Qm4Yd1R9cLMxjYG1xPS1LYWaWA7GUzzDYRh6yEFN6k" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "75vjsU2XMhaH6a4MiwGaBEMGMLMM38HKhZFKHTFYEScp5C8a6gynqBFBsDBYHnA7x6Fuja6uvrmXui61cQ71cjpmNKaa1oS" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "7Bg1Xg9o6sEgenJEabR4rJ26dGhib5gRGMZXPEiLTtkdjhjECwM6karEBreQN4T6kfSLBx5Dd5oP83iu5BfhwQDb33hbtRe" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "75QuDFinPL98MWhz1jb1T9SZt6KJJ7GTHL62A1FhsUmxG1ZgNzbeLQdN4m3THWQrm96SxWwEyAQpPg1NTsmKjnjQFcwMHM1" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "74nzx8oW7MTENppLWn9XTrL9S2aSHQjUrJRGEs8YL6Qq6ninrZcbn7FhTZbzYuHdy5eaQuDjpFfo3iaKNDksckkRMKdYef2" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "77bVbBaLpfvLSHAra6Up5f7h9wM9HgetLThuaCx1hD24ZkHWLgbi3MfTj1Nr6f56NgBhWGsBX4vQPFN31nAaJJGETTyrnge" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "76yJ81zvmN8bRMoAtdvePm2xKLVUA8EQVjWB9HkANGhad2hcsEugp4hSfBMAB7PYUsbeaNfQArGkHcwekAR9fJ2MJp1jHj3" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "75C3rmimQ3GJEWmjQCmHJmbRYKrpWNEW1cwYmT2VUtVvA8o6JwCEPonEBBaAHKCGLJBLH45d4YHe4hN5NAojtycnGEuEmUR" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7BVGRP33335DNkadGyGciVAKh49oDyCkM4LJWCwSZFH78ytKGBWu1sXKG5zgJES8359td2SrqjyKB6NocCXko9xR2xTLFjK" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "794PyXL59r1VwXpMmwNYaNe5PZ7fMc1bjcHXNG9ZmZKwLWXnJXeH7AD2TBC3viBsp7SwDY8UZVACX9RdQn9YVyBNKPyNyES" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "73RuyzFdsxkinBigtUa8wAEhTNaCP26RGTgPmdGEfe2Ebh2CCNbonD41pLN3fFgC4wBTEHVxhPUHdCfgzAE3xaJm9yquivy" + } + ] + }, + { + "seed": "b84e7cedff29d8371261dda9cd6e068e6c32b9fe677486dc7af809ccb17a9bfd", + "coin": "MONERO_TESTNET", + "private_sky": + "d5e3147b745bc40e83305b1dc2caf5546b32b9fe677486dc7af809ccb17a9b0d", + "private_vkey": + "75696652e21cb1b7ef9435f710f2ca88bf266e5571e7452bddda50aceb531406", + "public_sky": + "6152f6c33055ba8c9ce3037c5c5cd63ff44d9d3902e206bd3f5a05224bfbf1eb", + "public_vsky": + "802c7802414b77d4ff4402a8b723ad997c686278ef61cac91eeac3a52bca683a", + "primary_address": + "9vrZfPumU3TQX7zxTjUiyBBhSLmtqbNZbYewNjPDkBL4gPenvTnCMU2cdLfMN9h9CpSg1MhJDM6CRae8A7tsaLMD7epF4Ki", + "payment_id": "a0d20a3196578497", + "integrated_address": + "A6ZEgCjG5JyQX7zxTjUiyBBhSLmtqbNZbYewNjPDkBL4gPenvTnCMU2cdLfMN9h9CpSg1MhJDM6CRae8A7tsaLMDAomVHWStP4PJ446HgK", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9vrZfPumU3TQX7zxTjUiyBBhSLmtqbNZbYewNjPDkBL4gPenvTnCMU2cdLfMN9h9CpSg1MhJDM6CRae8A7tsaLMD7epF4Ki" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BYsh3xgk8dFZnW6ktNJCPfLy9RAQtFn9bBLzYGuRN7bmicGqJZztoAG7WSjiQHNVQB8doYMQWVw3r4ekvqATCDHHGT3vdb5" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BhcX8C6Tgri8Rqpc6NbzuRcZFC9eqrUsk6bUMwgFJsZ1TXX2npWLSstDYT1VfUBQvbj4wNqDFHukDAbdZNjbm2dzQQfQp4t" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BYnYN7R21wM7pYfsi9pp4kYXh8PCo9ove1PTqj816p3vfHZy6jH8xufdNG8Tjs28Tbj932H3mZZmuU7MrSJvvGePS7ZzMFH" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BecKkCJJcBiPNS3Azkg1JJWcoTEpAuykzLb1vEESCBmr7XzF6bbwVfbLqABhsuQNJ8CapyARwyfkpasViWyn4edzKA9RTUs" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BfXrRKK8crh5C4EHgRu2n1jPUkmxjSfJK86x81fR2yxfbJHUPgpTZuXTW4Kx5pYip9CuVDy7hFpvEKRjanSLn24H4Tk3yK1" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BbXVWnWtFowAUxiyPoz4MoDNN9KwL138WMNBzwbSbygyXWdHFBSMZvRYBTxjwYLESD4hKoq381kwy5BcbFTbatJVT8CG9Bk" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BZGDDtNCBvhM35irGLP9qwLuKqh8R37PFgc7iy76LLWxUhTvNRDCypRf84LQGV2TVvPNr9G5YW84h83j1yf9YZuD1WUHNAp" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BYpjP84mKoCb935KCR12R8Jzfs8JYkBVAWtX85om8XhpSwfLnqdmEmJBY1LQes2mwEfudZaMGz699KL8s8q89jiFSWgZXZg" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BcpwrRmqMGGLY79fB4WZLDSyeSqhtNvJMYPxXH6GvhLzCJ54KwvKufs8k46haHy2ziYzXMikQrr23XYDZkLgGBXtKBCfaA1" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BgLcLvEKVJbbHtRgHf2a7YHybqxzcooiFSs8SRmnZEk7hnGi6JE8Z5ZPE6y8Ujfg65JJYiW8MmYS2QUYF5PkCemPVd78Bxh" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BhW4Khpp3UnGiM5gZ8irHF9StM6EuGkmVM8KM2BaFFKohNQAFJVhR6iZT48VHUyVRXX1MyuYTW3Y3JQWuaTqVuL8BEhJAV6" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BeitJChdPkWjDwNhN6qmET4ZQFuBwRmQYPivuppB4F4gCar4NgwyVJo3iPYrRjhLDvCZFwtbjupDUfBJf6hkgXXL2Um35ge" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "Bcem8ESn8C1df18rHV9n3HZsWhSw8qWSi9kT37ozjWKKJ8MFKnerN2Lbw3sBGZYx1iKThpXwHFyfBYqGU5iDa7sy9XBjTS1" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BfYJoS58fs5H3uc62sZecf5p3kTYUn2rtX7Rp1aTFkzwYqqDsp2fL1cRR4LszGBtqheQi9VECUxtQgcrSwogKKEXGJoixCs" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BfZ93ujtSMcWaBs6cbsHR731gEkaETE4K9S3Zy4RtnWR3fSW9JBmHvVYR2qkDa8wPTdLr3XgMvN4RHRTtHE4ShdaD3EQNdm" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BeaCbxwJZFxTZx2YWeREXCZwM2i7JWJ5SVUNj5GbvXwM8ExcRhkseZ8LxJQRVvNwB9GnHwmq4o9HMatiBvFaZjZc7YDhvbJ" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BaRwXw8Wbjpfb7SRPPC7ncayp88ph575uFuFWXuCV1qSBynSq6s8jkMMr5MBtjVbgB4RSa3AWfnsB2MkVgP1VtgJK8gr41w" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BZ9cPiYF5rfSv2HADAoumFjNG1Y6ku7rMLquTtZTtskeJPhnU4TNE8oFGCfexnDjTba6QimGwRSGdAHubB6neABZPbmjyS2" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BfFUEXPmxowQkCvGj4mYGkipawQeLD6pmBsUrf8ER7ygFkSzpsfm43k9fYkuWjPecHbiBBXSnod4NKyL8fW4qAq35zDMzL8" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BgtCTuN6KqNhinAz5E6jo6NryC8qvGdf3Q2Yizv9CjWmHRmRmByqQunGWXEghV21CCUBrVunZzbN37q1z4UJ5dmz5WomMkA" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BeBhv3ZgnUtDNhaKXuAiaMaXBKYWHUL1ebz2mULzCvHeVjSpR4KVFg7Fw4uBcUMVFU4ydfxshJbVUaSHqFmoFdeVQdQZ2SD" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BeavT7uECbuimzvpJ2FijWAfvM9vey7igbpAdPcGu9biHu48v6nGARsbRJdD1K9UrqQtJjyFCqntsD5ikCkDQk4pE3HL2P2" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BeHUSW5rNzPVVREBa7QJv1KhD3GG29G5z6Ms5cjpEYP4EqL4WDWD5AnSdRU7bA1yrYNCtsrnAY4v5hsEUqhdUzaTLFkv3Li" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BZ1BdZKvnsDLy4TUfn27CaKq6kB9DgKPg2Wn6ACJF9sqZmR63f1MztcV2UnG8ULny31tVDwpN8qihRdwf57YAC9LTEmVz6W" + } + ] + }, + { + "seed": "def1cc68434fc416b13a5d60de2829ca408e3f6ac4908efb569af3cafe7af17d", + "coin": "MONERO_MAINNET", + "private_sky": + "632614de8a9943aed4f097ebc7531038408e3f6ac4908efb569af3cafe7af10d", + "private_vkey": + "bca9415b08044b43b6546840d344341ab89b5d52e98303b4dad3b1e68e173107", + "public_sky": + "dca7bd49d21225c6209a6fd19e749b9abf54f721ab1fd5ca558fe7cae2a1d1bf", + "public_vsky": + "49d62b8172e707395bcd5c7fce868324e1123a41f3967e0569787368d6e9f69a", + "primary_address": + "49z6VhwUEn8a95r3AwoEtAStF8EYUU6AGaqtwKMoWRcUYzjmPSHrzFGAbT7nXEZ3nz7AmuhLme6iR1uWBWKX4eNhJUQZiJz", + "payment_id": "9d493c86e635b442", + "integrated_address": + "4KgmWWkxr3ea95r3AwoEtAStF8EYUU6AGaqtwKMoWRcUYzjmPSHrzFGAbT7nXEZ3nz7AmuhLme6iR1uWBWKX4eNhSrxJ4CBCtzf8TZzy5n", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "49z6VhwUEn8a95r3AwoEtAStF8EYUU6AGaqtwKMoWRcUYzjmPSHrzFGAbT7nXEZ3nz7AmuhLme6iR1uWBWKX4eNhJUQZiJz" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "854oqT22L3xCk88df4325jGvaYjcWwhpP8wm9TrCSGidgakiE3d38tCFVrx9KvvuaUWRr1ZF7mhX2FLZhyrQ6yDvGtaRxXd" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "8AhC3pB69sLG5HaZyYMCci6WZX4WperDN95jFkSNUjbXBez5hGSiWgqK3SqN9VtT6H5xchyfhuPcdcX9HLkwNcKNFU34nLN" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "83Yq4Ccvh6pVGZP6bMWDExUGFePiycnM2LAahX9q49gnbCM9o5K5TAGZ3LeWN4p8noFEMFkQLm4tfBgiE8DBmF5w2H9TjRr" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "82zppn1t2gLjRF8TkXDAtPcAnA3idsUMtHyszYh7mu6u2kDm44hWsMDV6wkbF1km36GMULbLTrCs4ie5cud1crVS5wcXZkn" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "86iQvjeLm2cd7JYC2g3x93Xwc4t5KQHBJhzpV1H7CLyxFjfyHzwCPAsYtSdtjDogvqKHMfQfhqbqDLBhVjyasAH7KnedMFa" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "8BbJzygXynQYWuKUmRzY7K28tEWyNrpfYLtu4CKwsYZZMqUsxBz9mTxVeTaoYod3swJjgMfFonottAMkrhRnpzGsKhqQoWd" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "87ifuhSahRhDX3Dv3qo96o6JWegkcSXyzHuSaQoHJfziiagcAvqpRWzGAaaNPsqXZPC3ZWr2ib5mRPRiLxhZfyXp9QkgGmP" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "8Boquh6ja34BksDcBbMB7V7Zhi7z1oYkJ5JZHZwT3yh7jGA4eEwmxrCa9onckm3DR6ULexPWXV9QmFc6hk67RbskFyfZekp" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "867cRP4aeeZFE7E2osxbZXiH9Rsy92snUjb6zjzjKYay7nyRak8D9dGBbfgaf5U1DEfTgZW1ncJppDu7wyHCXo1GVNMKPv1" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "872ymccH9u87N3KQ8jhRHVeRq6qqQ8hhS4K4wQ5ZraVddMJRtw7RTPkaThDTatT15mPWj6fkZ67rcN9L11w5izXh4vBa43s" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "89fsKLVMKRfVv7dom7YFDKhnQPfww8TXiVMVJ89zq4MJ4gGEHaiJiwHfdoNJyDnBe91xSLM8q5b8ELR9LSewiJHiSKffwi3" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "87V8gNKXdJJATjbVz6RnByZqtf5Z7yGKVC4pdiccdNcdccBCZkcMkKAB23o5yF212uNcjB8biNqML5Nz6wAabFwMFSkXvZr" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "85h3iazwMpEaoyBYUaU5FXfhEszUW9JPtUXGR1PfVMM3QZFDiX5f9EYBjhyLA4hGEh2qyt9XjMGkSSMLRzSfWdG67enaZTg" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "8At2jWEVV4dFYsuEB3CjPeShsBtuHBMgZGm3JKFJEm5qeeU8BoFq7CyTvVxz539bNaM6FULpTGtjeb5eriSKXYyFTacaCj4" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "87MCsERDnr33tqU2s8JdcMFxBS4oQYVYMJTLPyUB3xaTbVdvhqBU6ao1V7UUNnW6XEN5QaD4Yx69jZXgKnfJoRyjJpUiGkg" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "82wS3aBNS8DRdey4Fur8bVZr2bSciQ5aM7LH5FW7jsC6DKnxvNBYFUDjD17Z8QkxMdP4u65wV6eoFiNZeK1BKcGPPRaDEE4" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8BqtNcmFfELfhDCu1azKArdsoMD5SHny4LXdg7pucBXneZfhftDjK1DE8rouYuN6WeE1QSVgSEWdBSGMB4zosq74PUspXLy" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "82xZSLb4it7Rj3UwxQP5prHuWNGfnPAsX3Y9GeViCCDJNDfB156HMQV9AVVTZYibHDYyzh4BCKJoucH8MFPEStX6SBF4G5G" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "86QZ1qHBcVjLPuAVixBK7G726cz5eJot8ZfCa2Ci2MJZdDHvYcV2JYfJQDwhutTkDUABJtUSYZPy24emm7uvngFiMANrQ3x" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "89mnrMMvY4nAuMwyT9646V5WjFRHxffU3NWwtzGtCLF2aVFY87EDcN1WgpgePoqKYEX1dkS68BZaE1qn2WYp1pVLNjTgcts" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "87u2ydadBfeaCZTwxG8JjEasYzZVg595A3QJNjh7i61RWA7c3PCmjvVUmujEKbSNfWg7W5F3L3FaGdsqnZUeLRkBRMRRQNR" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "83h4AD6LvWQN5dnyDrfumxRQFUbb8xizLZC8hgtLE7xvanTTkVCi7s8Dza3qX2Pn5dKarsjSfkcAKffraNDHwPtF9wrHH1V" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "87ede1e2do4abCXK8qTwZZdZk18wrrhYA4e7WymxHqJWatuTDGJZTJrc2DLdKGXXD5CUYALzarQBmHgoxPDBzJfcUYN6FRb" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "8AXvEMa6ECbfkcTVLhKmazjQTCTuHsQCCLZT26d3L5iZfrM3MFDcoCN2Mm5wK1UgrTNz1P5fsJqr2bTt3BB6ibjeJJ4a4QK" + } + ] + }, + { + "seed": "97665d0826a6b91ed82362af9fb4f2039f2c7f3731c87b596f272a38c245ad22", + "coin": "MONERO_MAINNET", + "private_sky": + "bdbe714ef1df946e2bea7269e2c034da9e2c7f3731c87b596f272a38c245ad02", + "private_vkey": + "b35a9b746aec290c576b618fa91dd8628159fa048b048bb7ee4ea0b6cf748c00", + "public_sky": + "83511f22645c3cb43f425a09e0fa9220e52289f1b449339ac0a8c26552aae30f", + "public_vsky": + "5abbec5a1a47b0af97b511663b7bf936b599059e4e6087a064d50ea6c59dfb92", + "primary_address": + "46bjbXPqrrXX9d7pXGRoz16W89ghdmLMYStJ3SaTvmz23ZxX36ZGBZHWNUAAM3geZEA9kTvkQNV8iTq2FNmsieGSHX9HzZ6", + "payment_id": "529ba6af83626758", + "integrated_address": + "4GJQcLDLU83X9d7pXGRoz16W89ghdmLMYStJ3SaTvmz23ZxX36ZGBZHWNUAAM3geZEA9kTvkQNV8iTq2FNmsieGSRUWmwnZCv3gAxV2WYx", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "46bjbXPqrrXX9d7pXGRoz16W89ghdmLMYStJ3SaTvmz23ZxX36ZGBZHWNUAAM3geZEA9kTvkQNV8iTq2FNmsieGSHX9HzZ6" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "8BvyNuc5c8vVjgsJU7JnWsLuV37z5VdwGXGS3fRf6JpWJ6HmUowxF7BZrt1T3pewSvCtSs7oBEEBp4P6Br6HDrdvEub1zXH" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "85GSdtH4pW6NY5KbR9Tvr5YHvdazqqGQ8696cf2dtytgVnhv1thj4YF3m2onEmyWinNaQDagjurV3e9rYnZuf78244uVQYN" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "89k1hEVyPDnKWa6X2dKBm1P3fhvy53X7gLRfkQuKaHRqHyBtfRpUyK9crn1MKbViJw8DCMKhDfqn1VZZPQbjR1XxSMXi64w" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "855BGJvkgfueyzGqCNYece6Ru3JPshYz4M693kTHT9wVdnnJzidGZFaGLTmBFnHHDzcWzRvd4pe4DfNwCQhMvi8L6qV9pmm" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "88oxaGMC6o4NkAwu3vnYL3dobsffgVsy9YasjZGaPWvFAq2fh6aY1hVYw64fyhmHUcNFpjPP5Q2pwVuGbX98jtNvAvxgkYn" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "86xoK9Ma7sy4hCWwcC65UVhiJZCUPSisCRoDFbn3mHZNdANoTJobTG46zznHjmg7tdEZBG6tZqcRE4mbSt4UsHkG3NVvzq9" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "84RuU9YC4fMdPnZnQNcw2uaeh6rzfRrHBReao2j5KryJ7PGNG84xycjJd6adJ1bsw4EaWD9sm1RFpFUjoHWnLcNdHPVDDrj" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "8BuiQ25UmodTyFZwekH6Q79pn9LCoUgG8GhMgdcStqowV3uSsj5qHt82XJ1iKdEhyAGdKUE2p62q7iAN2fd4WYuySrhj1wk" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "8ATiaRKKQNEJM4NwBoPNhrLNTYKAmhPUkMmZJUCybpGxR4t447NNp5DMSZpZBeBEjMXECt58MDZWKArCFwDa2CDaNRSXTqk" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "8C9mVQYdgzkTwFWgJgZ4ivHwSJSmbRT9iLodiWyShKTMH9taXCr6hky2U5Kp2uBBfHdDpm3UNhyweMZbXQTLkRzsJ7RWThH" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "87oBEPaycMmf11oeRwuxBiPD5jMYqopkL68DiafP1M9WaogTAL6M9RX3e9YQapZXPvHWiqMSXRXEqXoyC9ButS7GKymh6ft" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8A5j4VEpnSuDz4rvwQfgZsWMSuyo6H38MEVAJpZevDN8Ywhjn4P9kZJ71eAG8NApPzJDGXoZJyNbxNjR1WLDqiwHEtLFkxH" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "84DZXD9AHxZc4B234RXVYXLmbST8it36F7JbziLQHsuLGBQJaZhYyirMxBbRbE2XWnfZGoA1uT9qZYoknf4rqkzX2oKaNzz" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "8ABcPMC8jSD8ir3yhZNqyQTwQsEam1rGgM9gn2Mw62LefmnU5HprhhjgYXR9yJsuRhSR5smVPxob84p8D6XeZ6zKERH5Ewe" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "8683SNhCjwT1DuxXmA4bzYNHiaUDfTKMTXDTaQ2vgGxpcam7myBrXUuRXjFPfz9BsAfPSjrdDEi3u4K3cMwubbTU71ZGsNP" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "8APyBrujQUherZybtjfuw7XCTxSasdkcBNqjGMJZPLi4A8CK6m4GsPMajBxjAFYSQPdcXnYfevsU7eTrqY64GnDW5FS81AM" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "83twuGz3Q35RodZowj21nf7MyJZhWENJTiEoaJ82hLZLZo6eQWLUAdh8nBgmy9GMHE93c7RQAddve4n8MezfJvJn6cNfkoh" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "88kkBfZHP87PoasNvf55GZHR2Hxo8eDnu4WAEQkfNV9wEEYVbNEWJH4YkGdHnF689jbsBX1UGw9eMETe3dy8KpCj5M9fgPa" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "86iT2bozTWJLBwgH29gyhQRe6JciUHaVLHN77usxPykdZEtAuvT4NQYZB1gSQ9gg1SfXKchRx68EUZ6gPDRFZwKCJFD14zC" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "83RTYFYTovj1bU8ABJLtuyEtt4A8X712vAidrAyXoadjceYNEDmbV4PEDEp75rEd23aUK4KLyN8x5dNiyLmpx9yzPwLyg2G" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "85tCiGzoqX77oGomfF9V7i5V2fVatk6scbWSif5TwWHn1QxYNdYkKNzKXQV5FSKmfk1nmBEBA88A7eFgwktX49PcMathgv8" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "857qPD5QkSkDTN5Jhx4eMHJCvrx11fQxgWbZ7GVTbTUaZNccD2FwiyA39N9bL6esBF2qEYHg7sZJtEz24DYuxSsL59Lf7XY" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "87jQ3Ffc4v7eky5yV8VTif7uV4M6fCyEsWd3YRPn6rbEh82bqyjyZcnBAGqTokPWYT7eV86BTVpzijQWJdxNGQZAAAcaC8L" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "84QB1xfxKV2EHurKCY1EFnb9WYTvF7kk3DSzvbCpp2R4TW1bbo8fAfchkyvLzyUKLDeYhr2LuTcKWBDJ2Q2Lfa1BUf4hF2b" + } + ] + }, + { + "seed": "3e5b16ed57fcf472af269ba53c82905e3f6a7a482e96b930dee26e9e031f381b", + "coin": "MONERO_STAGENET", + "private_sky": + "518720903d99e21ad989a3025e88b1493f6a7a482e96b930dee26e9e031f380b", + "private_vkey": + "2f5cc48159d6067ee4ad3987b30cfdac25e3b16f64bf861749ce245e5c42eb02", + "public_sky": + "9e4126e4b0101d651a200d2b8acf81f31f375286e01999fc46d9fd665fdb7801", + "public_vsky": + "4c36d8f3ecb48932766b9679303e04f44f4a03e5e5e0c8cb2ea6650bccf6d1aa", + "primary_address": + "57pyhdFeDdWHupMrsvEs8Chfb4pySGu5zjCQEhPoC41u1DbBr5Kuc889SYuySnqPJbhs7QDT4n2p7az85nmMAnYGLFmzMKn", + "payment_id": "6778fb061729b29c", + "integrated_address": + "5HXeiS58pu2HupMrsvEs8Chfb4pySGu5zjCQEhPoC41u1DbBr5Kuc889SYuySnqPJbhs7QDT4n2p7az85nmMAnYGVW8n755gqPXJcGv78r", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "57pyhdFeDdWHupMrsvEs8Chfb4pySGu5zjCQEhPoC41u1DbBr5Kuc889SYuySnqPJbhs7QDT4n2p7az85nmMAnYGLFmzMKn" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "7BsyQ5fo1SZcSwKkT5pfMEcXV9K3Fhx7DQrsARGt8DD2CnJFuWpR9axEvrQBMEV1Ey6Uv23gmxy97JdcqhZ8gdd4K1BZjmQ" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "77g1fCKLTfC69YGdKwzaQ4BaoxK9ZSbRAYbYeAdzoKvj4BjYbZWVLYDCYF6AEEU9GX8AAoyPCiGnTV16mpbyD15uSdFMQ3N" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "75W1iCajA4DF5TJyqcXZNtTWncg1NRagNfkmzJghmeD4NydUvjhwYnjhVrasytjZwshpm6jNPvQDN3v5ccqkRBxTHeFvXE6" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "73K6K3KsAbkQ8G9xXYLeTP4VcU4T3GAX1b9joeuBUiCSZXv9cbZL2hqQmGUmXKQQJiApScGKxPxb8JHpwRgiBL41MJM3GDk" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "7AcaghgnSX68HMicNv7hfENnN3LuuZVyyLQxEDdceMoiKpBNSs8DzDxZzSzdrYqhcibgVugnuhjnUXwYnwwF2BT4QeRWy1b" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "78gGdtvtAfY2PSWEofYnHfDxhVJ8H9d5iNbUF4FZGciBHLJDfZzYTj6SfPzAHkXswPA3m1ZBNYoVFD74EJUy78TA9GGACGs" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "7BhmiKdY33iEvyfmh5BCgU1jUsHUtmKW7Y9ZagQkhuXnE9Sn7f24vx6jKGGuwgQWqkftWJHUSXg63HZePQwwCPTaMetPr35" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "76rhY3K5ycB7bxDZ7uBpWnLHjgtxCsSRjD8Jae8Tog5qE8CbCMw4bvobCdg6G4cByWgRkuLusVV32Ku4VP2RwLkdTbC58Dk" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "7A2wxqhWddWKecy4F7gJiPgALvEwW7MZaCYb3FQggtredZfuQwZgeCheDuwRpQpqzGFpKndrrYAH7P6pE1sdioUGMVTshwv" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "73GXs1SwzX4iLUk9xEv43C1VF6UZsjKrpMDESMEyscEPTFQpvMDdMfq4e33JF7eewHSL6B6rR12azXG8wJvMQ4Ck4LECak9" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "76YvqVVs3gJMc6bV6AcnSc2cWNLYjCuqmJg49kbkY1EUGHA3qvdXJFeF1gWLL7QPvtFZ75ZrQHkCRQkzMUWd7N4FJaeqDEF" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "78Dn3gfsG7QTnRQa3NscJxTM3Gn9JAnagBfRhCNCUhXiecT9ceuDM2vQyJDmqeb98ZBKq67Hz2feuBGPck5wSoJCLTcpwK6" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "72pwK1VWbEnZ9ME1nYadHofUxX8gFpHMBJunzt1oFsV1X9p1F2KQ85RTYQfEAwoeA8GShP2UimbAJgxJZBRNQYpoU5RYCVc" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "75eQ9FbsMQr7smieUH8EqbJhppcZWLrF1V7h4GYwj62D2MMdYJFM3oYCvj5EmFfMnuiN5kadQBuhZKtFagGnSvfGN6mDFwP" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "75h3PtFBDXsPK4Qqk5QjasJDGC9wahKkbaHa14r6shSuhupDF7QgxLnQLxrwUffaGe7AdWgjt2LfGHWJgPnmA4NvPDVHphy" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "77zRS6dRZdScA9wQt453hDZSNRcFWgNEvTc3CfmcfctUJ8aghvGpThSLQrViXoKiGzEqqop53Eej1ZQm7v2Wd3MF4idNPEw" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "79snndbai7RWoe5EXu1T8DEwuTkvGT7BKfnqQasebpBcPrdWHUSyV6gNA2voDo61AVbyX96bUC8StSwwLpQdcopXUtVX6zF" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "74AEo2NSw5B7ZJrZ7iFK5hCJ4oKrA4mm66P4wo5JB8FDKFtF2gJcswJ6U4Uf83E5Mc74N1xWy6SK6bUADEmGcqZnVU4h4hx" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "75dFkkm65viK3PWh6V95h2gm3CkRiVeo1cLcz8WHncPJRasmdWwLNZojJEVZRKD5VkUysC3U96hQu1bNGLvimR98GbGFeds" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "78cJyyQeVcre8fBwLsaWCogVxoW15zZQZZ3THCmyhuvqgA8iy2pnyC8LHCtbHQtXZaThQo4B5K3sJNEZn3Wz4Q1CLHVESmZ" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "74V2sSTGA72fMXvSg2qz3A1hJUqFieggbQCh396YLvf5Duewg7dkAU7QBDRd1EmjDQdDNGkobE1vx2mFaKrFdzrc2L5okSe" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "76uw9rUQGMfY8KuNW6kztDUxc8mLBVLHgLbMqrRebkiZL7UzeBsNE6PBAooPtNnTJqAq78p9itQA6Bs1vGdoKUC8LYHDEnN" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "77p3Wv1KYeBdNSJ28MfGDUMwuzVZhVitg4d4WKHMr5ze39bZRX33J46BfxKztFZd1WMhoyn8ZbY7kZUG2SPcYntEGAGBtxx" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "77mKpzcFsJKFkCcm9oiXZdZfcEs7kcbrgLpD5kgRPMXPcJqHWNQXozQQYg6GKNiUitAt3krbGZuxFKkcdro9cjueBqA4orm" + } + ] + }, + { + "seed": "76dc5af9bcae52237e41e79a9ce6eb5de564b75a00ca038430b70c866fd69950", + "coin": "MONERO_MAINNET", + "private_sky": + "d5b88d2839bff66a4e31116c430591f5e464b75a00ca038430b70c866fd69900", + "private_vkey": + "e1a6c35b7b62ff6d2d28e817e71773a4dcb7f6dd33df8dbc9030ab4d8838e20d", + "public_sky": + "c37572b4de8c47f5bb5d4e4d5461de286e6c6a23e9e722b150085ad202a086cd", + "public_vsky": + "80ec1d32f8b9800cb88d73026ccb983b5bf4909a2af7018bb8e8e01cf986ce50", + "primary_address": + "492iSRDnM58i6ucjQseE4M7mEcQHqZNNmWf9y4p1Cs3sbNeFwQM82rB38Qi2DBaFMHAvroLRbHLXiQNUvKKvZev9A3azDPK", + "payment_id": "35528d81f119d517", + "integrated_address": + "4JjPTE3GxLei6ucjQseE4M7mEcQHqZNNmWf9y4p1Cs3sbNeFwQM82rB38Qi2DBaFMHAvroLRbHLXiQNUvKKvZev9ER81h2AByKa3fpVNVY", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "492iSRDnM58i6ucjQseE4M7mEcQHqZNNmWf9y4p1Cs3sbNeFwQM82rB38Qi2DBaFMHAvroLRbHLXiQNUvKKvZev9A3azDPK" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "8BqasLnJsKSb881Py68wCscr2iom4pZ5D8KxRNs2E187bK5h4grifmzAmYwcBL6Udf2UMXwnLU1i9RAZCjNKfxq1Ma9haTj" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "88xnDeh9vhRBAHJei23JJ29osqo6kaYqmao8kCCDgHtb2amJxVxWtxd2P986pnECayNKFwHLhvNGfLCX1zRh8jbEUfttH5c" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "84J3AZCd1y7VzLzk5nvC66N4sUQEUvw3BF6MX9DR4pCWRTQ6awiDaF78zLU3KEduB95JzdPE8iGC4DRdLMnfEBNBTmKQEjJ" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "87fnZCHks3p2PhSMnXwnX1FRJsYG243hYg3bdVKx5EdU2YhKtURk2yFdCDACjHgHviCRMoTY84NbZcQq4FiEnA1w4cWZMQk" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "8Ams6T7FnDrFNcCx3WBW466DMwY7KEwaHbQ242JBp4QtPJiSPE8u6h9aCfyFEp4ZZ1FPbiEnEpL6w1oXBcYA8wMzEovjayv" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "83cGVeiM8qnBicWMg9CoaK4TEmAF4EsFS1xTDTx9YhbReLUPsoMhdemNUHpTZvvmkk3znKEvKuAqVMnAoeGFpVbLCWW3wdw" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "869LYqQkoQEemZhZAdxrj6Wex1HvNr6SpRKapu98PGV2B3ENEbUirkfBUwDPhr5GqUHwo1PNAZRPkEJctzvb7avd7Q4YTNU" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "87961Lz5p3DjeyKSgTGiBA4t7Y7r4Q2W5fwJUazc5N9LjkjUM1XRUEaWL6LLAVVtnBQSj7T65p2DWErXpXgtopCGK8bAC56" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "8ACEXP2FJMaFkAMCRFgNzLGL4WbWr6W1F1tT6Jr2Kk8UevZ2GvJaUdhimNEfSGT1cFd9NXmqJe1vsjEcAnUyyXtwEBdtbYq" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "85MTEpEpzP87yemFrqvuHpUKQf29hPRXmBw1WaPygnbT83ewscDRsETAkByBFBswbVfzaiRbdy9JGPziXd5cRZdSNFc9ypP" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "89HiP6sfVuS4vnWh9wK1aT1ZdbgU3kYqmMPnd2goWsxHAtEpo8wmvQCgHPCktQKiAmbYRSLbu8rrN6EVRqarpXjBKbE5Hbz" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "83S76Fph9gRJK58qvgJ19FEzfLPX8ZqNeAu2soXXyiAgfV8kAp16nm8LDGs7Njo6YNDokPZCmXW8Sbo8VK1crPfCPPDoj7m" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "87Cao8gQuRh468iiME9WFNgRbh4oZpofcDDxLZpmT5r36wAusob3rUqFcgtDVV9hjca31dXYcCCGa8ZmwNqPG5LiMsDqgnr" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "8BMuV7HoDR4VBo7y9DNcRJaRFjc49FDp6DSoL4mwe2frQTtRwa5pf1T6dxDiqXC5miejdtQQc3Bh1CJu7K8M7ZStHyCGARV" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "8BCQfwS7bmVj4oYKxNNGm4HGpogHiPGtndQvfJhycepbS8JnCZ4K5SadrBxSRvEBS9YKC62YoHcC848WerRwiVhn8FLgq16" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "84j7r6rJ8TV4k8XKTT21E5HgCULbfd8cMFm4CiGEEDY9YMs6zyAFAPUiHM2gBvfb49amZSRtRHMWMCfwXwcvqukAPgoLx4p" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "89zbSv3Gn1WCkK94TvUiUs5ZqjTjFbuKeBNx28GV3ZaNFmi3MCAU7pUJjFc9y96HGsaVkVzeq3Vs75R2mQzMzcMQRqw8vCo" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "894wTQBLTQkezmmifwBEE3Q4WTyXkz7SyUUTrr32pAFiQWwHEhT8HPofCxkyUGK4ywAEsskFCPfcz4atCF4kjcAoAdjMvCM" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "8BZxu7p6TnUGo5ZRHRAFpneh3XYy368fG2ygCBUQ9rEv6nXuXTeAnTnAvExWYudGdnBfV58WRJtzh9Fntm2XZJuW4U2pP2e" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "86v6CrbjLwzHdZ9Y5iVRavZ19yyhfPrKMREU1xYTJDrF6rx8gdNSGKgetkt3P22DWNNb31TAhP4SebrkypkSnEv42UpTPBC" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "86P9SrnTWNtUP9dHR6LoC84zsSMU9qykjSkJiG3f2wrY4Qyb6ghwcKYbzt3iTYc75e9sFMw4Cf2aRJGhRD2pV5uWGb1Cpkp" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "87kZYnMh48Fd8iSkuQcyNmS5yBdaVWjqxSPxAE3Eqxda8r6akA5NQqEZ7vg3wnmkxqXApup1FXEzQ1vXEGXsQkW98mBZs1x" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "86tEWty83KW8zuMUMDUfq5QymEF1Gpv55gFbgsprxQRyDEGP4KFwFW47hyZjPpn66wNCYv4z4oBAu6z8C25znjAW58aREP1" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "84u1o8JdVDcQ7mqWDhxGFvCiL8e6X7mJHET4kGBinWXveQmRTEc374iGDUAwApvJdrdpUmfV3ktFTNiVebBWzgK41LAdg8T" + } + ] + }, + { + "seed": "a6589e4b9b3585d826c95e6ee89a8016b7fd4148b1ba5abbabd599c1e02fcea8", + "coin": "MONERO_TESTNET", + "private_sky": + "641104aa9356cd67c7a8b21036d8ca45b6fd4148b1ba5abbabd599c1e02fce08", + "private_vkey": + "34fe51c2c240d1e10179a1982559cd5aebf88591c5976aa545e4da835bc64d01", + "public_sky": + "411acf79e5c666245e1c4cf6884c9248b46d0a8abb195f15497aa75fa92611c4", + "public_vsky": + "e165d6a03ce4495ca94e8c29bf9f14c903ec10b19cec6caf16b3c07cfc7d048b", + "primary_address": + "9udkKhkc5tZ75p4mG4UdKfDAKzo9Eenii4ZWdT1ehw7EZvzFZNRhAAUGVw1bz9MFLFad6pnyGir7MWHacX4XiFuVGkhX5P6", + "payment_id": "6f1639e831caf204", + "integrated_address": + "A5LRLWa6hA575p4mG4UdKfDAKzo9Eenii4ZWdT1ehw7EZvzFZNRhAAUGVw1bz9MFLFad6pnyGir7MWHacX4XiFuVQKgfLkpWEPB1Ws2ZBd", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9udkKhkc5tZ75p4mG4UdKfDAKzo9Eenii4ZWdT1ehw7EZvzFZNRhAAUGVw1bz9MFLFad6pnyGir7MWHacX4XiFuVGkhX5P6" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "Bh6X79qmxr5eFfocFuZNfpRHUYdKiGZa7WDBGzKy1PuTQGq3vL2CeZz5BdkEmP189693JFvDXRg2KRdEs2pMKmMZC6U8rab" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BhFgsWSDfSsfikQ9FKpwqt82GW9ciZATsdZkJpvUPSTu6ad1QXJgCMHX1tK5UoTja5XcCqmKJAEfAFeFPTXLFe7Y5eTVPJ4" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BYTc9QLt57ADfLNMa7sinJT14VtozPhb6MLhSTTMaGut6T9usTybsgyiEd63bc6BYvNayh9U5WdyF4HYPXFXcqDTKbVXKhz" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "Bd1Yddrjpc54xrMnmz6vZtD4NxcJZ1ZMN3J5pjWmFpVx6AtLgG5ePWiiSnYz95wgVFceekbMH4xUvW9GvkZriKf7JrWsBQp" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BYbDU6MMQWdGUv8YwZHfQF9y2vvm2PXs26XKL4iqRq2V1y7nx7Wv12v3TTCm2D7cEaTdeVfd1xTJEKh48ubfYJqPPpg7E6F" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BZaJ9ua3MGsitDRXEJKidLjpF7CUf6CNDXYtM8zQxf5ndX5dwLnUMJkWxH5bE6Uory6sYKdmMp4AT6yg87SzPG1QE3EtZmx" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BhJfpG43xEUXDMnQgERVuZWbKAyQBwZZPUtBdkh2PNGB1X69s353oJsX4crSNrYS171hy2T3fPLTjUrR4Qf1asDR9bBqdhZ" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BYBZUM7KwWSUFbSSqnYpzE5kksetjBjmn7Mwbx23n2sRA1hsD4cMSC5jij1u8zLhb7UXZ8ZQ8Dd2oBmaN92YfbQ25H16Duf" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BeVv1Wbjs6ng3UMu52CxnNa7kmoxVQYEFHL1gNUDc2A2GBhLu31aVzFSbimBCwVRfWR3opcjwRYfQ2nZdgWwn3Qg61mov14" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BZzQv13Horf5eAJBFiAsjueV7V6uEpvk5by8dC9nydf16APvwS8CQfqC6jBjyyNpXaKnT8Y4xERQRPH1n6MVr8a75kprGXY" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "Bh6R6CVAbmJUwJLzW9tACr5YW79xNpprKFGyErKvjXYNcFz7P3TxhFMM2UHog8yDc4HV4nc6QeQZJJJfXJ2PuieC43SuTQF" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BfdVGeTora964NReq3uCwHQGYEFGqjRtaegwqtAfrqK821hhptwPaoq6UzQVfrfMjohn3DednrF2sMPVwG5foi7o5g6ddj1" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BcaVobLemskHQLc1w3WMsZLH4V472LrajeNrZk5BqwznN4mfQwjvqbQ6yzmrbqsZfZgL7NS4xRpeQ2NRhofTbjdL1FiFDUV" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "Bcsnjwg6KNPYKDz2DFR4mEQTTR9i524NmPav962SwKTdRXDzuE1LMr6KPeSpb3tiDeWSnSQkKoNtiCcNhTmAicUx4AQKXUv" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BdWt8f7oYpSB3CCWanSUerVZqKeBNaEXfQJVkK1ubuz6MSndXJNfu3MTWeXBd4iGZ2TcPd9kxhVVNHpD6T8YCXfHRzTUSjK" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BdJSYgt3J5jhpYdjVYzTMc42qw5ZRzN5perFrN58KpH9Ur6gofns3PdbRqKFtfsLmKNHD6fyGc3g2UxqnWuWZm9tAtGRsZ2" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BcHhcd85iFfM7AVNzin9zcWQgcbuZ4EMiCz6mmCrAJcCC5t9X8UQp5QAwU2f6eqWYvGY62eCVW7xUC9VEoCMUudELDftWC8" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BbJLe2VPupTD44bFdK3aeT2ycsfUsCmiV7YJDQETGDHcY7PQyvJiPXVP42PvzXQzt76ni2bHh4aWa32qbBNcuQ4MGMJQSDZ" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BdAPX8DpwkrKBQMTXWJqF6WLqmsAF8LJAMxYhPDWppJDYSrb4SZ3UoechQGiDg3H3fL3QmyTN7aJfdWkpRgMdSYJQJLjSnS" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BcMsgMXr8qKErBqpEwtvAJTq9xjnT2nBmMbaNFMXYyM3MyvZ7wwwZHkaF32NJjBDRhTHyBuzxezBBeNRkmrSsxJk9dVRjug" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BYavBf8E8sdNNTH313TeWxTSoagNmmrLFZTbpu78EGyJTmWLyEm14gQRJoQ8ieMnXfgSWd5Qtnp1Qg1bqUD64NX7HVftgB6" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "Bfb2N9QnQXwhaAtuYcYVHyDzPJVY1kz24et4jZkXDFctZP84NUkByUYPj6MHyRMQcYb1AKhodHjQFjkhUUrqAjsnVidL2Gj" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BfEatk75MyATQYZbqMS2Y5fzoC4kkqvHn5q9ccu4Z8inQeHzCMUKqMaPgEZkQksJEBfuc2WBvjzeCVxHLSE9a7XhSfU51ut" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BcAc5D2veMjUANKQqwp6n9R1KnZTsBDDk6vuzeKGAPU648z4JjKKW4vXk3GWTnNMfpdiBAf87dYWJhYQ2q54Gz2GD6i5aS2" + } + ] + }, + { + "seed": "f205e83b36c29e6e4979b761dbb2d7128a9ecbaf3dacd693a9cea66f37f63bd3", + "coin": "MONERO_MAINNET", + "private_sky": + "e9426c83dfb9aff56682241b8d028503899ecbaf3dacd693a9cea66f37f63b03", + "private_vkey": + "a0ae5a0b7b479bb4bfa4c467385d856a8137bea637d4a0b810d70a71d8ba1f0a", + "public_sky": + "6a7d3146823e4b646b061fb6f01ba0bfe3c16810e1a1718afa8d9683bce29c34", + "public_vsky": + "b94df3d57469ec940a85be9c4e76eda1c60172b95a344a943d59c7b79a373008", + "primary_address": + "45fAXdki88aHoBVrinswj5Z6a53mp11oNQFGXZNMZhoq9pVGSSH5CZZRmBgU2PHi2pU4QW77iTUhFRo7Q5coGPGT1ztDiEx", + "payment_id": "6cf306e54f14b901", + "integrated_address": + "4FMqYSaCjQ6HoBVrinswj5Z6a53mp11oNQFGXZNMZhoq9pVGSSH5CZZRmBgU2PHi2pU4QW77iTUhFRo7Q5coGPGT2Qjr2di951S184NVio", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "45fAXdki88aHoBVrinswj5Z6a53mp11oNQFGXZNMZhoq9pVGSSH5CZZRmBgU2PHi2pU4QW77iTUhFRo7Q5coGPGT1ztDiEx" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "86yxCaFJQ24Zycm6vSTnzJWS6nHTbNJa3Bj6H9rV2Zv5gJXd2vF3RKw8HuzRrRvxX1gzAnb4PpNV6jZmDSfCPVMcG7xdLn1" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "865uhfuGMUx486D2yHy3LRBtnaWqb3S968xauFQeCQWsJrcZ2DevragDKpjmXJ5VGaTz17fpsJr7S7heMoD9ACJpLwVm4Bh" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "83mqm7iEacvU1bYiTFR1Ub4hksCq2urjNW2ewmFDQY7wVhdJ1Ebs4GsKWGb3ruN9MA76YdHTWY4C4SmXywC1JT8LBvanZJq" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "87fXWMGJCjkEExEeQ9EhqNXJ8qSQJ6efCSEzeyyijLYkjY653Wa195xjC1YxsgmrNfburTexWVFjncXxcgmL3b3X8PsrUy1" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "82hf7Nag7p3WZCTXynYUjHUfrJy6cuUkS1QfmGaHsPiv9Yf4fwXpXXHP8dC197A1ikDnMffR8fUEfgNNqQPXeSwoN8KRwAC" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "8BrzfLcnfpFBLHda8PfD3eXFKciwfHLuLW2HvmvFkwyu5Y8wJo9KwsMhTCztTW4LBwJcM7p23zGmXZ6kg5YLJq4wJHB2BwF" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "86XqRFJrBZLb8n98ZC585UR7UgzpGJ6bVAZaP8g8F3m4hCA2ftN9FYyKcW8yo4uki9N42HEFzwPCXNtAcMfUymDCMmRNHNi" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "871qSTvbp9zNMHt5vnmvzpVFW7UKrk87fGK6w5UsLgDJHHpbCFU1jfTWLzQiuTCf96eQb7eMg2eYCAScdVxiJw5cGg2fWc5" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "8BEvsdTQAEBfMs6BtwoHATFQxvWcZJkNM8ECVkYbYbgLdS9d5uZSymZGJKuGTvxKxe3LCiTBKNzoBijQTMzxSJntGC8gLTD" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "87BYNPibyV4BCENGM7fM87gyNv358UpzPb5jRzzgmHqTeSVgoHfCf8bLaYurbaSezjaWPTV4sTv2ETC8Ejm4A7MWNYVBxK9" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "89zSZB4tHhwQez4QeK2St45SYDU1n1vMZMjcPHmLhDKH9GWHoFVCiYeZrDR5DHBz9AXBkbbW9uAqYBFNPLH4YK7h9TcXY3F" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "82qijFkhAW1ZHZa5z4dBpQ5qpaQcKAFP3c8YBaVBfGXxM1BaA8D3Z5W8XLRup4CGuaVCBXjR9eRFjDKm2xsYP4h1NzwsMHg" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "891ZX1GgCqMaWuwWLTcdAQHhs1eJpRxYoVwyDyKULUxi59t8qjxgRTedgfdU3PUYB36rnJBYkZ6xVGatbuh4g66YUqqZVEu" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "892Tr7TG9FjWCeM2vPxcmx43K6Jd8c6WVZnM2M3XdmokGGzDe3DU1nd11jH33ykUi6XG3Vqt3VPUu4eBFLLQtgUuURYcSza" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "83NggPtncRr7v4Q3di4DfLNxaQncnDfmKRZnjDYZXhcwbJNaKj7T6pCRWGnLJRsrjdghQeAGrRhc3ihPecjD1eeST4Sfp5k" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "87NELGb6RVtSnf76XcqfcsD1mBre6CA7PECPKLyjhXXmW5S5pHCddB6gC36sN54nmpj8c2VJhDQGNQGLKsJqE1u2QLp8uWB" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "85LRNmyfV5AcRe9woJYFDvjb9qxDtcN3K4eoW4BbP2488Zd2HPzDD51RiAJ1T628tHMBPi311oaMQ55S63csxWTuGGRMwgP" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "85ELvZmUrFJ9CZVSCJQoz99eMkjcRbzcEDDKhdUkuDQTMNNVLzDB45U7FBrZsrHhhYQoN8MBern3xCU7QrvbFBmHLac4jd8" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "8AnaanMaej3fHaTvW1qhs8jjgb3gCULmiAKg2d9NaN3JbnoYfWuE448993PQUXeVqJdg2JYwVhK51bdQUrfiKtrL61DVzL4" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "88o5L571xYnLnuK17PigyqMp4bv8fUWApASoLPizfiqKg656eDhZmvwKqHvFdv2QafLRo9wcTk8wi2LmJuzBztLALRgDBjp" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "87i76RQkfkVVbfwoYcYz5EW2tRHWSs9RnRYTvJq9d56aJ7jzX3nVSQAEQNGyKSP9fZ82xtmmMGUwzH7Fx9HsY6eb7Xzkb7o" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "86RHZe4Gvmn4MmH7pEGD8VbhHhoPPn6wQHCcMsZpHrNZ8udxF19sgyDixcuWHtZTZkGBHcCJHeaz28eXWcR8b5dz8kndhVg" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "85cKd8EzwiHbyx6ubeED4qMQ1vAkEZN8pEnsY2WgTAiuTLzC5xAaBWhN7LsF1gQmJJDmzgcmR7ExnJetgTCcJEMT5GuzPnY" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "8Afa8aosYb1AYJ4BLfFeXX5DCsJ8yfyLP9QDBMCx9yYp8gAvYGUyLPXPV4wP8tVjFQAKZZkvcsQgU1pmGJRaGemVTaLgiqw" + } + ] + }, + { + "seed": "8fd80687253005f3e43ccec403222c78ab34bd0db457a1b7957a80e8726aec35", + "coin": "MONERO_MAINNET", + "private_sky": + "c85c2570d606ceea6166e7db67348f39ab34bd0db457a1b7957a80e8726aec05", + "private_vkey": + "6b0e023162d6d6582bf2e315874f35be8a1bf2dd04852ed7c7d0109aa7c57809", + "public_sky": + "20497f29172be188c03ee605a6df48dd4c47f685a823afa8631f32be78755222", + "public_vsky": + "0a6fb21edff6d064a1bb5e3f67407d6d29219d742a761e00dec8bec99e205d3e", + "primary_address": + "42r5E8sPsMaPsf2UYS93jDe1sKRzvCyUAVAZsSrW1jtm6hEouBV23FuHqFk4ULnFrLKFzixYysEBP19SfeCho9wr82uUdLx", + "payment_id": "9d5a02864d22b128", + "integrated_address": + "4CYkEwgtUd6Psf2UYS93jDe1sKRzvCyUAVAZsSrW1jtm6hEouBV23FuHqFk4ULnFrLKFzixYysEBP19SfeCho9wrBUSZ8PFRkxG5X55SHB", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "42r5E8sPsMaPsf2UYS93jDe1sKRzvCyUAVAZsSrW1jtm6hEouBV23FuHqFk4ULnFrLKFzixYysEBP19SfeCho9wr82uUdLx" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "88KTVGLnvz7Kckhmws433i4oEv4Tyg5oqfyRypx6RScqDdKCRBQuTBTKkWRKQmRjp2amafk8xPWbGJWpUnSazTS4JVp4Ptt" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "84ZL4GUB5bPRYsD21NZBjUNJhBbpLBmMG5Q9vmNmXLkh4tokZoUJVaC7m7yLNXq5VCRr6WPHNZM9eDKCqJ29kc5FC3Ki4Yz" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "85TQ3kndMhUZS6VZijMd8Uh941FK7QztJ3XYDtspvfLi2uijEgWWsnNQuqetNHBGDy2vxvrADEFWZXcJ4mWM7QFiLLHT1xF" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "86reurEJuUV44ny7KC9uxbWCordFmxfTHMwMVt7UVQWAbquDPTkbXtETYf3Ev68xmFbWYP3vjHaFiNmVLM4n9hoX3495AkE" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "85svbiZ7RgrCNeZKyuSbPYBNN7CNBAE8ZXqRUtWVSH9WY1PyM9uk6d1fN1z58n1GvESxxymhYX6AQE1GGMfpza1pMqAXJvh" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "88xeoKHrMfL4RLRTtt1UzR9vvCdT8KzcJdksoz4ghNUnAU2DBNyWXTsjLTfxZNmCaAPfBeW5WtqfNE9HXfmBfw2K1gvEQKR" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "832tE8dDCNt77gVe134HJ2V4EgMw1ikbLFxAMSwAp1TRiPGJN1ByajkbLDXpz6Z96E14bNaTyUowkjbRHVJmo1HaGSUFqNt" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "88WZ5iBBFBuJSpRacBS4GMcTXnJFxuq7TJGd2e2meHoX2rprP74ESVEUpn5N8tJJAqPkbZMghv5eDRevSKKxZoiK8jwBqVi" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "8B8io85cfZyXHpKjw5YiqbFtqDuUyfLhyUZH4w8Z86TkaBvX41fUxBeZZ6wFPQmgEgVwdPrX5VDzeN9737vviaUFGi2UeiF" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "8AGsgEQ6XLwPJexNS5aa1BLXtTQGCJrTDC2ijhTwRHqibiGnAx2NfUsPQQ85BQ4dNvaGR2tMc9ftg5Vj3SxjsDcTB4prmkh" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "8AXEoyKdys2TMvBEYTcBgpQfjYWMnpHMNRpGv89oKDcLFV6AN4T1g3q5tNd6tZXWosRRVs5wD3Ao3NKczBpWyKoeFwzFg3Q" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8AcNRZPnsasH94TaDBeQWUfM4ezSL1RPpgBphPx2nPdsH6CeNx4EZSUbx7GcP2MK3BQZEaSazM5h5Gfo4rQe15doHcYKdUt" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "838i4QeZeBe2fBrfTq1DbrUgDS5fyXmZgCXUEsvYJ8TsSULKE9CFrCafT35EJTS7TDjUAikFEckNrDVQr6yQjGzj8xRS5go" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "83CAm5XnJaDAXF4ckDX3Aq4ZMgcodesDdZM6x5q9RW1KMFJjTdVbo4P7joxpGQ82tbTj6HHr8Mo4h33UEXQqwBjmH55WvN7" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "8BLugDRSDiR8zGDfDn9UmtZSP4tQJEGaVi2A8HdCvCdebVZbQhJpkdWDrJDTfVWtLBK5vgUFZ5CbyTMDcko3cho3M1wfUfB" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "83C8D3m4fGHQwRVybhub4xKX9dKRPjmpPNCKT638NQRZHsNM7VNdBnc2eUXy8FMLLTJY1neZXgvMp1QzUSWSQkS67z4FQzo" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8APeKYbU4YFENrsWER8z33hzxoqySCHYaQoT9LkyFmkQR3RAqs6w7FtLbVT14jnR9YJCENxtgx2LAYXnMUzgBdPn1LoStKy" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8AZnTkwD5et9WBF2yuQSUk94BjCh2m9ny83PqgopZWMZFJfEZDpTrbraLBurrANUahgqrrjcFmHv9MebJQSdRmET3JUkNUU" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "863WhUDmMrPboNrabrxTsHaYLZVNHHgiAfMSvLP6wewL7Uhi8RXeyZdNwUMRKnNGX5MyP5SGqjamN5zMmnMEqoBJCf2eqtw" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "8BZ42hpUPxeiLCtxaoeZ2qKgDyeTBAM2PB5vFXGjWS3oX8eA8D7LXPnbwEj3p7b6MwcqASYUZmVr61KssMTiVG33NxWthR5" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "87qqeHmHh4FZbw9fJSysPRQsAVp3sfhnaV32sGk4ko4hB3LfRhohfyHJLFPxrJLdq2fHGk7mLXeM4GFzhfnezWeB5Fw8XLM" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "82cM51j3ee4SEaM9zcnjAMTFxzZnWqfER37ZZiogwkFg4QshaBsykf6dRS2aV48nvFNUkpDhLTqxQbK5jCigqpTLH8XebC6" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "88DGngqjxemLcLsfs8SaKWhJLXyxxXkFMa6aoHeNnufK8FUvv4oMYGSCCuGVRwvaf6J4F1er81xQpjU1ujngwFR2NmNdNWS" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "83oUYUJcjbTBRudMAA27pREUbPryRFBZL7wYuoo5fGjaQTEE2D3kC2BG8J9Jh9oncfaZ9pyFjoSZqWRFhXgRT9GsJse8T1P" + } + ] + }, + { + "seed": "4b083d85cc702f13de8000635f249106c1d1c8d11c5a4b747737741ee31cb07a", + "coin": "MONERO_TESTNET", + "private_sky": + "d03c84fa13bbaeaa01373bee484f7874c0d1c8d11c5a4b747737741ee31cb00a", + "private_vkey": + "65338068a4da4cd1f1375f450bf4abb7bdaa35331ba95a4726b9d2cf9a73e906", + "public_sky": + "02d16e28d594f4fc50f58cc03252956d155b51a70edc6c2c106d87c4608be80e", + "public_vsky": + "356cb9549a27d56489b6796eaa8deb3488066c4afb8212e80deb543121bc08b1", + "primary_address": + "9sGqzMWzQhqjCnTE6KinV2KFFG5mStSZZ8NUhqw4G69V3NqqodPpW9zHpLx6EqzEnW9ncxGrW3QyffpDefRxs28FM1fBrf6", + "payment_id": "5e3bcef39050424e", + "integrated_address": + "A2yX1ALV1yMjCnTE6KinV2KFFG5mStSZZ8NUhqw4G69V3NqqodPpW9zHpLx6EqzEnW9ncxGrW3QyffpDefRxs28FWfhBR6W8FFP9ogont4", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9sGqzMWzQhqjCnTE6KinV2KFFG5mStSZZ8NUhqw4G69V3NqqodPpW9zHpLx6EqzEnW9ncxGrW3QyffpDefRxs28FM1fBrf6" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BZzzJdzAdkoSWKKNpLSqwA81hrpFXL2LTc9W6etnVLeYZ8rmcSkGB3xf395j1LcuzM8fpdRAkoxWJ5THPQxkjSoKUCy5SFG" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BYtHfomSYo1W41BS89mrY3MnfUN5N82YGA93CVAMtzxrUyYfvUr4AohBhu8zHe423p6WeS7wGezT7iKnLEpkezMtC9rjL8d" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BfhkHJYMETuDMPfYmFxBwBin8mKXMvLfCELrLJ79K2VEQP1suA2P6mS2KANx1muu7iivFiNpsBVu6dyMC7UxvZgJF8Cw6NC" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "Bex4BNFbRtegtP1nisucTEjTiQoHeEy984iPKd7ibAsrNC91XMsQtw4Aqo9jXRE4GxenRchMzZZQ3K6Q26nrXuDyCphv7fV" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BdLJMiD3qPYHtLyAjuuZLpKosXZCQVirqRmDtpUfzas4QF4Mpqec2BhcS2h4ys3bY6DABh9sy3aujhszUqLUxfZFHtocETo" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BcpAszW2nVx3nNM7qh2o3eCL14GfgJosJbq5Djsadj6Y8zQHrsyAVWthABreWeh8ym6CMkkZpq5wThKPmbcuxQidGu6uy6C" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BYYtafAbuCCU8RRdNhGiguPZNSgLfRpAaPjV2oCcGp1rgm1t5YoP1KS6Z7QLTQ3JQhP6EzgDxRUjqBArrVjtJK36GVMgfQ9" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BgJW51PanFwV1AcELJJUKgYN3JBzejSukbNwFNTbJvpVLqoXTsNjxEA4am1CRJC2t7VRxVMAn7jNrEcvbMYJRhfXLASsEho" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "Bfa5wCzNyr1XBi9Tm1iYsAcrPvwLpMxHiLmWk6Q1ogtw5utfKFZ2pLM8EGgHjeVi75hjW3RS52K2cGXoMAwKTYcZHRZz3iR" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "Baye8D9AdeEc4jLWnejTv8fKahnmFTgft7hTsxhkCanPAe6ZwY3AQM9hWqPnUvWHpjRaZ4kM2Efm96M8SaGQKNBQQweW3Lw" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "Bf3HB5pXEEnHjW3S8hpKUuPJL2NaCYUcVQuDQRWrp2QYZQjezXU7Dw4fBDuhipju4h9NzsfTtbSH6Mcw9GSrY8nsHMFp5mW" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BbhDCLY8K4LD7VgGYNrCNcPT9Ui9qD6a1NuhioAQVjnrQsotqLpA3wUJfPU4zXYyiU4gNpoTwd8wo81bnN4FGjFk7vaiFdK" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BZUoUQePKJEPL7ZqwZYfo88LdySesEW5gQXi3PYVTSvo2bQ5EuP3td13hrYzGg7hB65fg4mpqVavuP1TooJipSWfTFg4etG" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BYgKKLFXTdj7vjRyYhUTutEaEXJpjnvGtSBEdw3E6GhgNvfd1uAP91V6PoAcXuM8pedEnnuWRCJuogx45Dtykwi2HrxbrLo" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "Bcca81ynNoiFtLs7etnrdnjfrwbSf9NCbYNNBDAXSxrbUurfNBdgqKBU6qwafoKQNSYQoJNjpfgjeWfkx6StiTwUHgRSFWm" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BfHXs3HhVqjHsz4KXo8g1dFUBqP1cVTysd799dVPmpsk1VGJG3SEQxxCN7NE2yLo4vEipgKwLU2ac1ZRmRqQoTLkV3VcvRn" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BajZfwzir5gj6shPA2Xb82T7pmeikW1Vw6pDPB9HqaRS1GoADMR7jJ1BYVwe29HVabGRTj55YPmbMEzPMTLs6mMADnuPTz8" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BhT1wFZfYfAUM8wJvoYUQq7dGeiT484fT5dDisBfq8C4j8NHTsgcgHVUaXctj8QK5GMJVpwBHkjRXepVFEsJwwQpJdueZA3" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "Bhp7jDhXxNWRQSfmHH9zBziu4GgEE8Uw5cVcS1c6yE647iH6jHPf2gyAkd4o4c4d9mSA7ppLE6CAhT2xTBmbdrvh3w2PW2F" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BeDrrGqqe5raW7YbzfMvYxG6x9DLEyVKTFX61t3vJkrALZ6ewkHqMtgUZsTdktPni6eHUSR1Kr9AZCAiQPMAxPcaC19cSMs" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BZ3pWLvHyCoSKsVyVJKXfqYwRberb3KegbAv3YA3TqM8Lp5aMwCz7EnJeiQmmBtcK9dcetxf5K1KHeRMG5fvimuKT4pdBqH" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "Bgj6XfXry2sS6dqtTmiMs5VuUVLZoFPXKWs9yXzRyyorPqGU387LZWc4djBdoCAQHG3nE3W7RT68gT3XdEcMbqygAKZsQeT" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "Bfq2R34Gk48BRZfFryxmErTMvwBdMGHgy1PfoBrPwyQVLyTLHL1k3GF9ww9odGsY3dAKsBPi23g5Siw9Wvbrzk5hREab1WD" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BhCpcyvXMxpG39ayz3ytQuTnu5hJAXSPY8BVu2tTCPT6ZxTyndRub4z3YFSvwJyzfmeVdYN589YDRMuVmnw51BrkRZidAye" + } + ] + }, + { + "seed": "cfb24d3bebbba785387f8299201e298dd669a9a583c785398bd95f5bc0679cd2", + "coin": "MONERO_STAGENET", + "private_sky": + "c6efd18294b3b80c5688ef52d26dd67dd569a9a583c785398bd95f5bc0679c02", + "private_vkey": + "62cad3e931d461cb14b44ad600f4d4a0c30abf15248a2d8c0d52e5523525fe0a", + "public_sky": + "a02071cfeca46cee026bc5562fe2099e6ba5c9f2282582575e6b5b5f154c84e2", + "public_vsky": + "5b8000c915d426d2706b2d15e12d6ea559f0308bea0fbfba9aee12f464474127", + "primary_address": + "57u6NhipgUjgozQwXjpiekTVstB2qxcnmFcb3qkqCBsqerx8cf6gcuBcCXM7VJkh17Uf7fftBSgQeYDJe9JaHtwi5UbydVX", + "payment_id": "583fbfc2e2b90c4f", + "integrated_address": + "5HbmPWYKHkFgozQwXjpiekTVstB2qxcnmFcb3qkqCBsqerx8cf6gcuBcCXM7VJkh17Uf7fftBSgQeYDJe9JaHtwi7ahCaHvGe2w9xcLxQr", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "57u6NhipgUjgozQwXjpiekTVstB2qxcnmFcb3qkqCBsqerx8cf6gcuBcCXM7VJkh17Uf7fftBSgQeYDJe9JaHtwi5UbydVX" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "77jSnqiHVpsL2v4asAE53yWZeZ7FevAS1NspZ5fCYmU4a44SnHXb1beCudFSp3faXkCrbFpBPaqKp97xJ7tUvmyn9roRC3M" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "72MzeRRwXFQTdX7eTMgu2UFscNwVAuF2a9Zw8dkhpLV2EXZ1STJrNxGASNHBkKAF6K2gzeAxJmD82PAYRvrBupAETtkH7tE" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "7AwtUpt8zJ16i7DG1keBmJZRj2nT9BF3fCJpYHgNhxVsJ2ZvLgsuk5JLqw3nvsPj6LYiGSrdojjH6fASd9fEUarDGcEbLWf" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "76aabKyRbywFZqj3QijgBPRpYKFqThpsk8Zxq9UGH2bABAQ2ik6KduqR1UimpAtTeuBCWiiZ9YBzgdtH1xUsT2rBHntedya" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "72u5yC3MCS28jxZTH8useLZEadkMhAj2j8tZBM5NCHvobwAjW5TdixQAfWzKFLGBDK3CuZbvG9aodY5Rwk1Jb3wm2RRgju4" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "79seys2fWS86K7L2xT21uL9FcMZAmSiWJ2yvKrY6hyX5PM4BGocfYHj5jJrm4ELm3NEyoPTUwkHMXF6CL6ZwwnNmMTQ6EZ5" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "79S9AxovKRmV8BCrVARCXmfSV9ihSZnf1hmP5TuHnP4fJBwmUdD8EKiQcD9z5FR7SHWMxBpB6Fh5RYF6ZMvY3YfC922bKdV" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "7AXEYzjedh8R3gs5u4LKtK6ouo3jkP5TC9yFQZ5PftN6FRczKGptLLZZe5hdoDUpkPf36vtNq9HKp8erQpMyxvUDJaSbGMW" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "787rGKVVoc9gebdqdMmgkNDiFigCJ9iVVE5sPrJ5prXwjnAnh2CJzv8GpRYkVrvkWVaC36QqTkjkhWw739t9CuUSRTVYBtV" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "76ffKkeXvHRMGUterG8D9qDKze7MKecC7ZFyAxGKZX52VrUELpRVqgFSkHMQPWEoHnZtA5FGkNgQAT7ncStoVWBpFAvh25T" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "7BvnzZDuTWCdLj99wAmGEAj9V1hGeaqPH4v8SWjH6p6nFRdNPAgTNhaDaqG5FW8GtA2TfvY5rEEqCb4U6o94pLpnL8A76jM" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "77g5AL36MJ61SZsP1yhkf7iJRU5uE5U7aYq3UUTEhYigXmoEFG98HwWUX9ZSxxVHUzZsgY8nPeYnJ2XH6myXtySc1QeQPqb" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "78HYpQMEvLy4puWmmoBzusQ7oRKXpUA9W6ZndcmfkDMmLcjsSnW3bxPiGdc1tAWRRSDAPL5SunPrXLF7nvEM5R9oBsDzk7a" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "75eWkiRpYeQTHaGLxh3CtwZYpupbtEL7tLiWTQz2qGwH9yCUd4fhHXJads79QivqW47ZyFU6mN8y8Pt3GuQukiGAJ1VHMDY" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "79auDUuCaKK5thGdmFS55xXZ7r3tnUFBPEqcT8cc2McPHEv1DaHM1JD1GZZJwAqJe8Vhgvd1aDcMvg9UHr8AbhVrAx7ScQN" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "78m7nwtaYfzSTvLcPmUyW45kqAaC4PGjZcbc2Fb4SxyvAaZ5traVpsrVxJVD6G2kpuNYy7wPjDjQLb47ueJPBfZbEqNhogd" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "781jpE5GyakSHFWbR1N7aZDc1GB6v3vgTaHD5nsUuX1nU23SfxaFhEKM5y6hVvCCjFLxzArYv5sT2WMHVNXizQN4MQC5aQ6" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "73A4kdQiJCUErNSSJ827K6HgPFGcZxx2Jdgnr7oAnbShXc5Kuy2FZTwApnVLaMjR8aJXLko3Lmh7jUKSNpKo1TFh8sZFGkG" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "75bjoXG3ekJZAB1s31EcV2ACUZ6mTgtrQDssX7o4mc4xa6BdTUDo24jJsANWRoU2sB9ryWLqmQVxef5vLJY6n7Jd3L1C4Uv" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "72fHpxrrFj1bRoe65CNZbw2w4qCuFtcyUjJNqS7qCRnr64bxX8z4yCMFXuT5hvhjA4F89WKKh2vVHH4Eq92qaZPrKG5ZF5b" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "7ATN1zrSK9wiTdj9q69CRZHnVfiQRz9P1Xd9DgvnK3Uwgni1XEAWV9meRyizsVNiqtfFWS5h1uCypHZX83s6Gr9VF3ztV3k" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7BYhmSSiemfCeuAPQfxKNhfyD3peD5JLCC9XKXnkrJnGD3i19NGg1YscDHA81DrfgvDKm6EdBhowKAKDJsjYUfis1VQ4uKM" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "74dJ2aL2DAeLxXpARVHQrEZEAqjdgxXWU6FLmczqv18Z51zbF4hBACChQPHrWvDNPWbN5yy4bm4JcCZtV7M4e7QL7Eoy24S" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "78KD3GdnVuF4WHQrabqdKGdUYmepznauMAhkqGvadHrV2vQgtSSruMmXMogvL51RFWAZaTpDs8mTjga1KXkqLGnXFQK5RWN" + } + ] + }, + { + "seed": "7b2711512897529799324a8898f2f632f5f6325a7f1e0a87eca8a2c366e99439", + "coin": "MONERO_TESTNET", + "private_sky": + "b4ab2f3ad96d1b8f165c639ffc045af4f4f6325a7f1e0a87eca8a2c366e99409", + "private_vkey": + "288e14a7c1d95955180884ed44ae489a04749b01d48c7b109825aace56f5550a", + "public_sky": + "5ed80297d6f71c29fb72f74abf329b9ce80432ff9478bf3130b635788dca462a", + "public_vsky": + "cf9f18055dbfcda34a2e4e328dec8e0dc4f76b49773497c1da06aff9b39623ea", + "primary_address": + "9vm7UTzhcLK82HFS2zXMarTFBtk8TQete9ED2UwfpSER8AKbH4Wko9WUK7gtPfWMNM3Jafa7eFy6NZRc2mgByb1UTTyxkVR", + "payment_id": "9c28b884fe614ae1", + "integrated_address": + "A6TnVGpCDbq82HFS2zXMarTFBtk8TQete9ED2UwfpSER8AKbH4Wko9WUK7gtPfWMNM3Jafa7eFy6NZRc2mgByb1UgF1dVmqNTpuSVHrMdQ", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9vm7UTzhcLK82HFS2zXMarTFBtk8TQete9ED2UwfpSER8AKbH4Wko9WUK7gtPfWMNM3Jafa7eFy6NZRc2mgByb1UTTyxkVR" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "Bc4GYYFEkw1CvuzSBicK3QTmVU97HAxaY8JbsXHZVuty32qmoKErM7CBDpQcdEzmquaDS4yurWQ9c9wQ1VxT5pETQyvp8Jd" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BeQxiVt8jUBYf8HUzRXfd7fnciamQuggTdSixNrg3A8C4nJicnG6CAeQqnbvotf2Xpe9EzzJM2mLJ7bZzDuaMuq71ouiaEV" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BYsiirUUVPK5MKC2Yh9HxACpVzcQtE3odLP972Vq3ZNSFH7Hm3SgzrcHbFF1WREzPaRNWkZmgVdXjWbui5TeQAQ37gXZMfZ" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "Bgk1DVKyfvFUKRZjVTsRxGd12tzLkeGhVRCAHyjdRT1RcLZfubStVNp2pW2ZmUEzjp2HQDK7D1kyw7xoBv4gf9zu9TkmSDJ" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BaDGH1f6baSUnHjDPUoEHGAKFATafJwKxNb82Acf5oQNMvGngE8Kz8idNxWwGYkSSAiB8E95iwbT4gRG4Jzap7fMRu1YZBU" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BbCA48kcM5EMiJzYYaGEDHeoBWJdPa96KbdzAquwrvPeCfJbpKjvK9QSjq1LUcx1vnaeSAiXbNweDbgUJneSyZq16HsPj5k" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BYUFgS8F1XeEvR15UzPkkDV4ptHXxY4D15dPThHrwh128yLD6FLnsoxZ9i9o2NAKMy7Nc3si9e8JccJ8VeHaPHaN173QKvA" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BhFST71aEic3Ch8x6ShW2fGptCFKLE75KGA2psuc7xzPKfYJ68GupvW8BkFNDLBLvGLtptY5zBj9aDWGf5p1cVANBxocrJE" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "Bd3Zdd6oS92XFZbJvsZyXAErVVSjMFWTdEaBrJZuF6r7hjxGVCPxTqHVW5sd5saDe6Ewom3XkBmwR4Pn8VhiNGRX9i1yWpn" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BeBSDXHNCoHKzMrWj6htjp8nCuSxfyx71DkB2icyPyPoRLPPxP2U311RAsrcLDEX2z44Rrm7E5XmgEm2bQ4pSnG51xoadcu" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BetGpgS5wQBDK1T7xpADswUsajnZFjEL5eBkoB8YNeJD8Mn5SxJ21sFNv3DxRE5UmfX6FVCt2zEGMAatASvz6EXWVoEs33P" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BeG75LkNYWSVqtuMLBM77x17NiAub7e44dXvfPMbLyaTJaV1Psb5xCwXnxWAARwH7qGWa39E1CoW8bh5zGF3eD9g7Gb3MUJ" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BZ2yVWAQvpu2JtTWAEmwGvLc77MCuj8jWU5zSMWRorxJetgPm8JJThjaHYfU5xtyNPW2xUZKq9hVXftLkeYy97pfKduJbQ7" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BdrLY5AfQjy3Jx8vUqmYHSbLKx4EBrdA8fLbnXR5csyxNgxsV5buHesfRY2uAhjzMQe7uGYVbGSf7jDNdQ1eWdkoEAvsH7i" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BhBreyxuzNTNKbCBmgLLhTNozUCFztxF4WoyKexhENytEv4WKpYcXuaiJHhL744yZzGtKCCfchT5f1rpViboqCJUT8aS4iF" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BZZMy2r295UHmPty173KwFAJjKL7ikiZtCgfP7JcnKHLg6NJVxq8urWHS7622TN8zY3wr5eL4gr2aYorAfjgfy3XEABNt4r" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BgwEAt41Dd8FoWQnnRXk2sSUtp84WDZ7nXNsTcAbb47xW7GTytCNSGWE4GPu9XhUo81hqHbmdSwjxDJZssFbAW6HQqCGFKV" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BavD1Cr9W4UU2aRFDrXFgsTrgbusoDg7RTpz1MRN4mvsQhBYP1XTrDpaGTUSpT1CYAQJjTKbu6dbW7dP5mNNWfZRPezbMze" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BYNpYvL8eEkFmKX1ia1F34KQj4bi9jTEeMn854EoNgcceGd1MRBL5w1WnvKycdk4PbZorL6pUy6pqMbp4SRkiXF6QRubBnU" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BZDn1y5A9LiDUTmSBY1UJ38zCE2rfJsN9QxWb2kgMbCY1jHqvUW3mndMk2jZBKjjiEW8rPepac7o4FBcL1xrbfdLNZ44wme" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BcLZjEYx4mTazwxzkhZ7FF8xivTpKs1A6apCMXccnUaUL3XWLyBbfRWiq4MV3j4BMPMu92cQ6zzuf19sMZYahNs53wectDt" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BeRzjtEpyJGjJ9sFADsrY6gv1krk5ua2b3iKQTvLrtYMXGKyS9wfrQjGR2UVtPP2GAhbFPazPbwiedMA1ZEBxo6c6WuewTm" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BZ2FbEgit1HAX6E4oYZJWMHTBBASMbaNTLN8nzbSBC35XBFC1L1eLXPUm9P8HfqfQedkhDaa9KWrD5sooJzNaNmK2B6ci9f" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BdwoJZNVab1FZTVRytViqR3iEopQEFLqNhcm922WRVCeR5iXpEUuKJd8ou9iUzha2iYSBsnGuB2ztWGxj4DvNyHDL8dbzcx" + } + ] + }, + { + "seed": "4e375f474d0bd1822073619e19b4445267e08c66fd7e844b79d18c3ab5f5d629", + "coin": "MONERO_STAGENET", + "private_sky": + "748f738d1845acd2733972585cc0862867e08c66fd7e844b79d18c3ab5f5d609", + "private_vkey": + "b518cf742cea0c692ded703e3de7f7dc87b012333f824e9b157b2fb5c7935005", + "public_sky": + "b132ffde97043017a338fd87f50346241e826caf877c49eb55bd8671bf2893cc", + "public_vsky": + "f59258c5b77b194e6a2fd1e1c04e6dbfc8961544d0d37d86aa5cf7c2b3138607", + "primary_address": + "58YcnQaV2x74xKE2SnPY6h73QGs8fFK4cgN3XVbodnivbHMySjrEcoiE7irqNHTybiZ5YMVzbEwPaPXRarFXcJ6h1oZsRuS", + "payment_id": "319a79bb4abacfca", + "integrated_address": + "5JFHoDPyeDd4xKE2SnPY6h73QGs8fFK4cgN3XVbodnivbHMySjrEcoiE7irqNHTybiZ5YMVzbEwPaPXRarFXcJ6h2CnjZuZr8WSPrWMAgC", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "58YcnQaV2x74xKE2SnPY6h73QGs8fFK4cgN3XVbodnivbHMySjrEcoiE7irqNHTybiZ5YMVzbEwPaPXRarFXcJ6h1oZsRuS" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "7B7yzJt5V2WN4wposNTKfU1rQKisnUYFs7aGUGpBGEwP9JJVroTJd2iFtWbJX8csLFFhidDNiEQAFUmmuvwGgPJ1MQe4idP" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "7BXbnWXLy4MJyZdkSQjQibWTtHJ2HbYfYRoFFCWdLbPc7fsvs32kV4g72NTqwPmWpMRfXCXpjv9h7SiTALDLmm3m3QCdSx5" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "79SYdrcfKJHRm2uoAEMnEQ2SRD9ipcx9fDzz9EPNZzm794ReN7TwoGeWuFQZTWEEHXD5kfQgtzGSp9ihLytUxTKvByR1DRU" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "738U2QwwGMuavDDkkXj76kLfPknVYwXjaVdPAmAYkDN22KCCr5JeRyMPty6n5MKBxBViL5Sp1s1Epct64Lj5okPWL3jrezH" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "76fEpJ7RTpwL1ARMF8PP9YhDmkQWDndi67W4cUW7hp5rTHPvMdVTRRn5E7HCWjYTWHTfyUvbWzEXvN4DFAbUNo3P7heWhes" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "7Bj7yVKn7DUGWYNjgJ7xNgay99QVUaECBa1JSNnWfZRqWt5M9tNsDXEjAyvVRaJKmJ7PmZ4CbNJghMnGxywYMhBeHjo7MZ7" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "79bhbdZwttqgujs6GWg7NGTKXgkweE9f1cdTJAvSCfAehrnNJ4nrPoicgv9sc5jGNzKKEPFFFhDV6J8RyELTZit99F46gBS" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "76tods4gCZ32eJxgh3cnyoiysGypqsa8E46BEZvPi9i8Rfw6xGMTqZgLYabhapmWWmfGnDFcW7y2v1MPtyejFBEkMK6LW3w" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "77bREeVcXYvPVYUW7GU2az2xRb5qMaY89gifs184q8Hdg2p2GocjM89iBy7WWHN6exBQjhyiGqMowitN99HSCFEuKRoyG3v" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "75DYgrzX111K7vz9U1yVx44TMK9LFpDF9cMrUfiC7seUfYXc7kqnsUoeU7iS6QwaszRxkNH3zY6TwifSHJFceV7VCSsDGyy" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "74w1LRdJxRKUiUNMztGQEg9sYfT183CN2ThwkE4kcXCCQN8RX1BBBX21es5F6fL8vs37bPq8xi5XaZ2p1pVa4MtzHeor1nm" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "7BfrNh7BoFhfptGwE93qoq7pzgWPgppDidWqBKyH6h6MT3sY6VUYcvjE9eLbrepn2xS5C1R1p3NjWJE1ww1j3ngbNdVGnCt" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "793Ao9joYuQ3JAKSxzViKcAw1TDD5X58LFps7RtJvYFqEJdogoz7ekHHXDCEft7UXuTTjuLbCy3kZhQozzYeDb14AwjSjKk" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "79CicT8fUZc5ahT4LHpLv9LsnEEnwQ715NouXkUhHwEqiRaKLk8wKFubLtVyowacQEEx1nrX4x9B3arQKDYgwL1T8ytwKTY" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "72RmD25H44v2eio8CHwAfbfcNwGXToMdidcTLEKDGbmdjjRrFwrqdM2d6aPPMtXFs6HDAxkEbHbKciAMhUtnwTC4EHyBde4" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "79z9t2csCsG1dCGMpGnKhoJ9FF1QPmQjXhyhZpegA2noeTuQkyxk6dmFSDMWCcSzjXd5TVqfRM42PSrreHRnjS26Va9viHb" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "79CFWSBSBLdL1kudzaQPeJ87Aw9TctqgZX7QpEhJE1nL7HCVQRTt3LmcKXA1dGBrTKWDBR6bM3fupLFoYnxT4w1TPySGDEf" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "78neb8xhvt85MCxJTG5bSDSgcmsAm4oPM9vyYr8rkbMgKDAzagCMxVY28LshMD8h7G9tst1g2WFvNQF6ej1RJQ9ACedJJww" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "748qawfucFdhCyn9KkaxAwbhHbY5RXZLBGbxjA5yVfNhH13ShiTAZTWG5VFwG51UJdEMXTEzzjBEH8hoaewkySufC6bTbPe" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "7BvYdRVvMjpSrUuZ5QijZNCeqhKmi8W4mamuah1QabFPVGmioWEJJ8bF4Yb5GcZMUi8LRbwbMT9cqZVtpjW2HBJoAx7cteU" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "77j34KP3W3dSDFv3yHoXXhA39r36WxNd5aLJZNaZnVwGUuByF7TxgiXYyzFqtmMMdTUtvkSmJ3TX76qE3CYtrHg441Y3ymE" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7AHmmGEiL25RLbKe9FyTrFbJH3gvkbbdeijq8MZdaWa6Sn274UwTgjLgaaoJs6sZrchpQWaZ1RSCRc664UphMWYx4WJEm2o" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "72L9snnpVS1RD81VpRm3RoFYgkYHkqzke5BK2Go5LyMnNiE73L98J9xGPHeufoXLUZ6Yh4Sw75yViRVCAd298pWVCtoybzZ" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "77kNfjcfWDcVvF1s8Y9vy2TB4zdmpf1TGRvwz9zu9pj3B3APagWNB3cBzsmvBCytvHVjtUYEdRi3bBcpgUhZwKjv9Nn7ade" + } + ] + }, + { + "seed": "c93b6f4a3af70118f913335bcf35dbfa3a362be9ea46af4ec635aa5e02c6ff7c", + "coin": "MONERO_MAINNET", + "private_sky": + "4e70b6bf814181af1cca6de6b860c2683a362be9ea46af4ec635aa5e02c6ff0c", + "private_vkey": + "050ff1089c60aaa66985eea62339d9a3525fc4095871dcd39ea575c4b25fc408", + "public_sky": + "3876f860363beb7dfbe234750c0cace425d90545d59305c19d37e2d6b7c13b0d", + "public_vsky": + "31ff063136d2626da5f31213009f923a5fe2e790bf354a6a945cf54724a9047b", + "primary_address": + "43mDQQPkBi2N5ChzgJgxPmfAKZ2Jf2KACZPJNxZGcx983D1dipyo2JMKLj4r2udvpyAmJmT2cyfysJpxPtDoP8oDExds2bT", + "payment_id": "6b5078b7a017db53", + "integrated_address": + "4DTtRDDEnyYN5ChzgJgxPmfAKZ2Jf2KACZPJNxZGcx983D1dipyo2JMKLj4r2udvpyAmJmT2cyfysJpxPtDoP8oDMeKcCctHK7gAP8UBa4", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "43mDQQPkBi2N5ChzgJgxPmfAKZ2Jf2KACZPJNxZGcx983D1dipyo2JMKLj4r2udvpyAmJmT2cyfysJpxPtDoP8oDExds2bT" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "84zWVV5PCzrSuRWdkVYpCB7TVptatCSV12q1qxLccohWXuRUgWZ8TAbFCePBcFb3ieL1YcxvoHsZFDe8Cpm2nq3J9bdNRj5" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "84r5NnEZebrTCYiWBwoo5X1eDtaeCRCb8VRGMxN68YJG9XeXQTf1fRsSLwkzvC5kJ82gq6mTzCGpnBuv6WuTkTafSKEQfMb" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "88LQmkgPfnHUz974YrERr2EBV1xfay7fbCsf87qxbgjJiiKQWdP1im596rBPq4q3ftE99wkkH8AQmLrCyxwPPzC4BYpvoBK" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "874BokXrzC8giqxjdhL9Wu3TdC8fcU2SqHMYhf7L2HziHSUMeNdF7gUTsLtyc4hh7x7bM7cp36Ap7GyobVKvujz5LWTDCCQ" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "89qwnwfynjtBxPbTob7HQKayH4ry8gAMPC3qHdben14qPJTqxq6fw9WJBYgiDYPdcNbECrDxWbXHUc7xfysNbBm1JnkEs6Q" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "89bGeyDbu3j64wuAMeEn9TUqPjrDU5G1gDb52GnPru88B72hC7xPW4iPK7EHwu1zQx2rXDUHDanmmW2pRM42inx4VBhVFmi" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "87YhdjRroSaVL5KdCV86LfQEJarfPDApvcNFAgCLUmLNGzpGV4MLtts5NrovPRNzYt8YoDaRHZ6BXHqUFmwuMGhFCZxcZK9" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "835qa9DZRWJdD1EHabazfCiXpLyXULFhX1PHQdY4yLNB4pG2PrUuQiAWYerB53Jb5mi9v5L7RywZ3hgezdcPALt7EAaDfAA" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "86ByN6QdGXni3gmudMuRfoCaLysphmXwHLfgiwRu3LJjg6Hxt3y1G5wBEZcR9r5D4zenCHfLahDBn7A4dQa7cLLjCtwUZgS" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "8AkK5ppwRw1aeoN5YMzQabimN4FVzUwNGUrgEYhDuKA1JoeFqzNR3tMd68uLnva5HBhb5ok78LcVxTCLyReo2vL65CTmMSY" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "88x423CCx1Q128jHLPZ8UR2HuPe4R3Qe8Zy5FADDSDG5EGYKzkLafWxj3ynzrT2DS1Rd9bLpMNazvRkmqsYtCHnqGeh29fM" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "893RBvZFw6jAQ7hVTiMJFmT19KCBBfDWqcFQbxqjX2CSFmTL3s8i7cM64i6kn5QfDN5xSHAVojutH8YnQcaPBM1yL4AicJo" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "8BRqP495AHTbmEkRwEuffBDSG6q92rDPNcQxHdKgzMNZh2r27AESjrDWBqFhk6KN7e8Ap8iJkCopq5oPKo4om6diHi9Cu3X" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "82VmELxiP3YAoHtWrw11UdXNPozfQCfj2PBhQcVnkMPL5GpnW7fhxmoJYz9bdkcP4sDqutd4VWcNJJosfkkLYqKh9SVEcPe" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "84TdoaDn2JpJegNSSBDgmzeqwiyfai31GUiUPdFPmUWaJbvqEGqBvy7Nm8XsdoiZp74XE3BVUH1c9Kxv5tH4xNCE65QzhV4" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "88Phk6DgF5HLw1aqQWCMGKiTiVW4bKd7DSR2ygQiXaHo7byu2FQHgNecbTes2Qw1cSFdrsJN7qverZmkyUBJCvD6EAB6kDy" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "88BVNMZ69AKMa4WhULPejQEFza8SdJbzSdH9bRd4voTNjKeSc68K2SuWJNhfuSH2iGGMXY6LiHBBD41zqMjbCJ2VRGSpqph" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8AZbvMbmfHj41KxLfNHeGkeB9VcRQeNeZanDorG1KUH1TwX327NntUMAX5ke7R6WkoCbizjo6vhqq4HhzzjihvuJGej8dTd" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "83f7aZFhhZaBktFodgmVFoCxGvTdXAs5oEvofk8FBfE6SaPmVUSjpSM6cX1FB1f6D4Kz1rxyEU3fniK8mPmJEzfHFDdi2CD" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "87KARttC36N7P565KRK8ki4X7P5PZtpsZRB7B4Vrz7JPTwLmJRSDFTCRcE4a8MqZdXaDKYw2DGhCBWF1A3dzHvBs5i84Wqa" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "8AmnLP3EvaSHVCnC77inZ3KvkU8QNnnXAJP7D8wbzL49QqyZ9QAqPAURXvSFbJdtuYGP7vkUEeZP8SvB2Zto96PQJNGnBxA" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "888NDC44YCVg64aUrq7qkLHEaoT79ygiq7S8bkdiDznuVmrGvx2fEN74CxFmwino87iBpQEEN5WHBayhcmR8YsraNqGP3jU" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "87hRxc6bVpQaemwLf1Es5QPmNHp5Rj2bLKs4UubV7sLNVaqxkUizPn6WB8WcJ3YFhR1kzQWPLfQ65CuyBdmZHACLJFLRX1Z" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "8Bi9eAAWd3BCMuoUsccthaZNp5rJRwboXU3GZX9qotPjaD9vXoWDHEu9JNiVzxWYmtMN7eLfDfz4L6dQW1yunrErM9Y8Mfm" + } + ] + }, + { + "seed": "ffc20fc6877f0e3eab712b2ad02913d07056929665b3efcec9967dec90f6d1b5", + "coin": "MONERO_TESTNET", + "private_sky": + "d0a77fc7653d447575b487293f6d7eea6f56929665b3efcec9967dec90f6d105", + "private_vkey": + "fb05a1eee0c3fa1c1fcc3c6a937f0d0d152bb3c71b92178715883837fdba4906", + "public_sky": + "95c0d3a5d6e5c179fc523440f2a39aedbf7bc162853f6fed302153fc0efc003b", + "public_vsky": + "05bac6faf6de04174f1724ea641204cb50bd526f491f0137e8eb6399121cdda3", + "primary_address": + "9xqoMkC8VYcMQQyiFA9imFgmTHhtWsPg2gg2CxgPv8yDAsbHEY5x7pF4u8JonJ2J2Fb1R1YYsRxrkAMPwTtuZ1UYKVtqhPa", + "payment_id": "a3b6d30739a08e7d", + "integrated_address": + "A8YUNZ1d6p8MQQyiFA9imFgmTHhtWsPg2gg2CxgPv8yDAsbHEY5x7pF4u8JonJ2J2Fb1R1YYsRxrkAMPwTtuZ1UYUNWUdqC2RSmFByXqYj", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9xqoMkC8VYcMQQyiFA9imFgmTHhtWsPg2gg2CxgPv8yDAsbHEY5x7pF4u8JonJ2J2Fb1R1YYsRxrkAMPwTtuZ1UYKVtqhPa" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BhBV8gyoGkxW3tZuZt8KCZFMhUxBhGy9uHEcYvxnJGaD59UYjf1kQLWZXrjjKwwTfxdnd7wdaWdrYaRT3CQmRkKkQHnH7RJ" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BdjCnpwTMjTAbXtvDd6aLpbgYUFwn8mLxVDMdRpTYxQdLG1hybVQquDRiYNYTbcuPA1aVy81NpE8QGUwfuXMJfeaPt47odA" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BctKf11GPDKHQUx4cCPSgESQy6ayqL4jfQS4ReXfC9C8eutmuN5774ZFJGfx5jBtXw7FJm13pfR1EFLsoAa58EGvAqLvnod" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BbYDGE48JbcGRbbNjwMpZg4PdcHSX14DzZZUrn3ss73k874zn18T79rB9TfG2hP7m8KVhpKWax7Yx1ZaaCxEjfJo3nP6kep" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BetZmgtjqq6iEVcsLiAMaGTvUzmAmpAxKJvYm7W15RQqidLtc5TcZjrHhVcn5Jm2Z63dEEfGZo5E9SZ58E8YMVRF5GKYf9L" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BhMXzsJXLWiRqu8kBBjhRhEcHFH9K2r7t6e777h6himhDivv5dj1UzR5dfSqj8xZ3YVXfvqKgbSnn7ebdpuLM4QdQ2GAahc" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BhYKHvuxw1sUYAJoL1Mta8gudyyi8w7ny2TFonWzNSKPdwPESU9K5yH4MHchzzFGWP6RDsxwtKvWqSNJXgPWcHLRQMQqFsF" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BZnzBtkudUKEH8THGPp8QqLcVPjFsxHWDeVqcxZQxmUrVzurmpkVDwPJ2ztZAbdyrtC5CEEMR4jskGu3uhTovKL4JnjFurX" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "Bg1mNufEKMd6V5rWiejrbZAUHJVciL58CevQuzTsXZ7M5Ph1oybvSoM86ztacxV12A6h6E7mRJ28XAimbFhmjv2B4ZSiVXd" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BdA6oTWWzJuXtQvCzmsUAHXM4q7ChnQJedq4bt9YTN2AhNnKZ8SdMkEcKUzJbLHWCGQFRULUDMK9f3vfeRWQFacXVCmxQNe" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BbZ3YWE7fxjAp2usHK6yCu693u8qzGNrQjBeeTwVWZGwQa6pWnPP5X1j8zPer7rQogHXfcpEB4EaGW7Lm4cx4k4GRB36DKi" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "Bb3gxD37njJLEnDjQ7smK2XjYdXKP7tJUfytSxQLwKfg2w37bKVWkcVP4XkUp6FCyxXi5ME8SDue2VkYTqTwreBtFQWzSn8" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "Bcm1JD9WLLpVAkjdT1ujeWMziLNyrRQiFJ74KhtcKkHUFQkoGUJZkan1bPQi918eJz7LhbguovuBSfDRFm8isBdXLdMvW7u" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BYmbFSjPY5E182sc6YjNWUHXnvjaqU3eGbwwJnheZr81KFRWKmqXh4eFnMi54phVhgQmu7PXwC5Nxb8dw2ey3CiS1GJ3Suw" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "Bb5sKoN3Fg6fEbpWrpyjqyH3Qjg7dBpRZCr85QE9RsEdgCtWhpHDVD7D2MrFsnpHQ7gNvV42XdY7FV4TYYHiX8h4QWox8Mh" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BZSBPU9yFhuKsw4f6GWBgbfBLQv3DLNtVHg4ByhNEb1YhKaAuXLhNHiTLjUL3gAJqoCqAzhCdoKAk61PBRzyGsLrTWVnRzv" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BYwh6McwHHuUFTrA5ZfzkJKWmQHqW4DzgbZ2MGAdSrzhQG47j2YK5qMDqVpSy3gfRNQDCAftGSDqHcEhEPAz6xUsKMv6163" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BfBLiCF9XnaZ4mBRMexa3b3yGqghiTTfTTPAqnMFbHejDdkAPTiNgeNS3hxy2x3jKVhabXjTbFnVn2HsvVkERrBET1che2V" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BcncZGi3nFVE3PWQppCcYcXxAmqbr2HfaDmJVDhWyyPPeVUoTZwHhfZNXuMmHy9K9GHD57zr82vuS9pPkpLid5iGCMpW1r4" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BZCF45fYx1LLkPRDtKi2PgSKTkDKfed6WLuX7mf8ggjFcE3zuoNq8AH64AK7vppFcsCqcB8rn4ER5ZTGx6R7qwNfS64CY9T" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BcL9zjVbz5oQpUVbgPsaf61u3KeSvweHmhm1CVet94faZ5ZnYdThZBMBYG1parEwY3Ai2b4ZaB4Ys74M1FWauja1BjBDb3x" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BeYHNByy5DXH5Zmgzhe7kQC1b7evoGGpDXgP7fGDsBmLZwPHebtJKYSaYEwZcskrM9fpj5q177j5dMuvNs41o4DYD8zXCHX" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BfPiRrn5aSUCFtawF9h24mVUFKoqaL8CLPZzk5ZmnVtCXW4C1cUtNdk7jda9zYcGyX51gJJNFvt88QQzf7B6VAzeMkiAXzZ" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BbjjAAQf5Re1s5LZAhmhjbEawuKc9KDeaCuVEmD7DKt4dM7YmsDEcz7KWUnPHCBTxh47Xk93K9kKP9ajV7TG9E8KMEE24Ym" + } + ] + }, + { + "seed": "dddea86edadf778d7c975f67c017dff7cc5e9dd66db4f940718777468f83a5b1", + "coin": "MONERO_STAGENET", + "private_sky": + "aec31870b89dadc446dabb662f5b4a12cc5e9dd66db4f940718777468f83a501", + "private_vkey": + "35e9fcba8fec402b2b7bd7dd13dd246b89ca07698d68b181c8b8791da685ac09", + "public_sky": + "db5d06fc175a4a82df4e1090461450e69cb9ae9b4bc20331121c08ddfe229275", + "public_vsky": + "466744510a08b4ef054de6b31bbdca906378c55e6f51bad5dd374f680b75fc57", + "primary_address": + "5A9HtpatjvyNtdFqiNnpHVfaEBdMtNmXG9D3mHveaL2MLciSgxKomRdgyoRXF6mo4uR9kViYmq4LZcmkVhmc9En7AvhZwvT", + "payment_id": "018e4f4e50c69a90", + "integrated_address": + "5KqxudQPMCVNtdFqiNnpHVfaEBdMtNmXG9D3mHveaL2MLciSgxKomRdgyoRXF6mo4uR9kViYmq4LZcmkVhmc9En7FZ4wZLLqQHoHJdTTTE", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "5A9HtpatjvyNtdFqiNnpHVfaEBdMtNmXG9D3mHveaL2MLciSgxKomRdgyoRXF6mo4uR9kViYmq4LZcmkVhmc9En7AvhZwvT" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "78Lw3BHvrN1VM22jTdNHxL9HJBuGg3WHacMMRhM6efvSBMS9u2WkGMZ1euJrSmJWB5ChXWr3URZ17DhA4ALNdxCjRaL3jMt" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "77KZtHm6cB5Rr6KK9kbJS9j9m5jxGGxqiNowQKXunHBcJF1LW7ZzzYD4mkuZhe16qaHN1qqiCtkyHadcTXoTbLtK2ukt5eC" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "76FH3f4exL6CaiYuFU55EtKjs9yTG2A4742p8UPpH8nXPDBtwF4Rtzb22KDtUm8i63VXCzXEMWdMAj5Y3XwYcRBxVdeNmcz" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "7ADcREAFCncWBanjPVxgWWXi2agZmFmQxAKSSEMrd6mhRRhXSQkHiLeN7Gob9G31UChvMAfYimqSwFZSDndLhMMS7HnjEFL" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "77Pnyi8UEDtC1oXbZJjJW3Fcv78NJGXCpgbduFiFyMFCe9gVukcYRgGegVgEF2QZV3SEMLTYZ9UHgDveKdAdgfiL6e5GcZQ" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "78VYVTvgUDu21vwaKkpDrbXtjLa6uXm1zfkLXMJdjztGBArMy5mPcXrGrf246C3VSXEsFEMqhbVsHTEczVVGWFxZD1S66xA" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "79kMAcmtgdpccU9AyCeeBN6DqtKTL7pKYaEJuUrL4Cx3j2RKQdbmPQbBcTeDxrPxGD6gYTZpbvrbrdmZPMwsJy4sBWX2ggA" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "76VP7dfouTT1rd4kYogndg2uZK8VXSs1h1oX2axVtcgyPmQvSGA6EHNj2ckkUy2VfCMHdFdBacefhQMnx3Aa8R6mBDv45oT" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "7AuPomqjZc4QryeF97CGxzNtJYReCWpzA3yc1Un4CXdXcSW5JSw2yCb1GhUrbkfz8JVJjhbmou8XpjShbWYQeCSNBo45SkS" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "77SjgntEen3LLFP1Z17Z2L3uLcRWFw4RoMQHuSjAa75JYc41fnY43ofjEGVy23xPUGfiArViVTcwv79Z15uHirfB6YBhCvr" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "7382BR8ALSfhtXjLtm6FZc7MivgLCUhXfCa7iwUfV53HUVvATx7e5BsZLoU25CjkQtaZp4zDekBgV6Xip1mydoxrPYkwu6X" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "79B2TXrWm627asdK4jpdjp3vA4fbVqje5CA6WdhPyHQrCahZb69Q3VhAP2seXNQhdjYbCMAF1Z4XTiTFfq94ujMJ4jXuxyg" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "7BYbbbKUxXKchZBMy5JED98wC9MSZES3GPCKYzjFb6qKHZEhtYe9F6TcQLKiqSRcc4Fh27ABRASsQTFmsqvnwcJSRwLDimV" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "7BiySXm62zYVxsqxaY5MciaomS6quVp91Qe6TsLdt4BGHJGrdv6erfMZYktdReHn8peU1zPjHdMAzDY9RJWskceEPCMxKWi" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "7BCjX5yWuX5ivprfZwDHpRMFkEpBZaWoME7d4VfDDv4XUVqcShDM3Ev9pcEeNQRZVcCr7J7zEy1dd4EaRDWi2b6xMK9b8oU" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "7A2jNot3m3pC9WqoszruVr1kNu68b8VjHZ94ondUyaDJZztnMC246JzUJGokEJSobU4XiaXyBpTDTP3igHP5qxNDRQNMhRZ" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "75p7xjjfbjCFjxLXMT7JyJZgbmwDBFzpgRaEwZqC9JPiS3StkfsLMpdGfDC99gkugB99meaqbyrC771tSEU969xeJfCFDHw" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "79Xz9zX4QnsjhwhZQp1y8NAVpZpp8YRsV9mmV5eU3gat89gQVAgzHtt6aueGwAfHwtdmjjcrvzrrbd43Gmq6NhdfQxv353b" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "79VaqbEnTsfJEs6SCFdBk6YxNSC3bVJJo5aGE4G3JEE6UcakUAgcjEUUCREhrYvM25UkJVtLzNj2WP4cANaBFvQz2JD3BHj" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "78MRybe4rLKcbuguTtVLARPRvDKG7WVniUVep9nTivAd4Ja4tYpvLJW3AnoVeacPwXKKzDx8JvdrseFS7QVyNCiQE4B7Mfi" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "757T8W1DvymBvyFzk79eh9cuGq8NwqAh4a3zHJipBAEeHUT5VEAD212U1oMsK1fzFxHPicVZ6L3L3ZWi7uA5GboLEq13yDw" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "772VPZeNvTaTpgLF8P15w7Gt757b3LPw8fd1uVpYsuUj5PS9M8VX8LuGS1Gc9CsALqbQNFrmpPrcjHU6Ph2TmiMiE6fcqjU" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "7AcAdVj28eGbixPqt81HgMFHwEMkQJ6KPhsSw1yW6jLmZeiqQ5L7xawMyohDy8rz46gyghPfsyMKYPTafcqmK9RGDxH6C9a" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "72mZinrV8AJHUfUMdyhMr2SEpSbggN66yhTq7rZ794rDM9JVCh9KD8sGMCTtfJLDKWPHNvfXjML6aGc9ap3JL3PsL2bLJrp" + } + ] + }, + { + "seed": "a3c9b8b36af4f743bacc1e4427dd518198870f28b7a7725936d8aa80ad107375", + "coin": "MONERO_STAGENET", + "private_sky": + "28feff28b23e77dbdd8259cf100839ef97870f28b7a7725936d8aa80ad107305", + "private_vkey": + "396979e4b866b6c62e9b139c03a99cb1251432cf024c022d9ae455c6650d4002", + "public_sky": + "61fe6ee7ed9d74425774a315b4ed1cfd6a3ca4f16395b84f899ac8cbea8d88d7", + "public_vsky": + "0c3c7660e7b8cbf2e864add024c128de88d46c049a5a4c3537d161d59ad04eab", + "primary_address": + "55YXeR3xgJfC6bcok7Ej9VjPSgf2n461VEJcb1Y7hcf1cyEWsHrzqEahdWZz7DKKTmeDs5DohWLkT9uHLS6J1JqTLKNQjiK", + "payment_id": "b573a5b47091760c", + "integrated_address": + "5FFCfDsTHaBC6bcok7Ej9VjPSgf2n461VEJcb1Y7hcf1cyEWsHrzqEahdWZz7DKKTmeDs5DohWLkT9uHLS6J1JqTVinqwj9zxW12Miy7ck", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "55YXeR3xgJfC6bcok7Ej9VjPSgf2n461VEJcb1Y7hcf1cyEWsHrzqEahdWZz7DKKTmeDs5DohWLkT9uHLS6J1JqTLKNQjiK" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "78xjhD2PkD4GSYoLBXKwXKZMiP16v57zJ2QiayrdGaygP6qyDaFLYw579RrhGuMXf47eJX6a1FEc1Ztw7wZraNeN8cfNC13" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "79mWhD6utzcjLqQhUbUqMq2jQCvzL5pDBHhZcm3Qg5KKLTpu3Zr6w4f2o3CNPDDrYidFrNZ78VB32DJ5PA1PrWBUUVb8iuE" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "79y9X6igkk5hzJBp6xkmdSUfDav2ShaznLYYuze47NP2Svoc4zdaDKPNjjN6Dqrmuc8dpRjJGCbr3cYKSDuPHahuCuZES8f" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "7BDLaMGkCBzQSztEtjoHYy9c5GgaMpXaYYkN9qy5M6iTD4a4Cet8jCq6VJpbVMkVLLN5kx7dWKdm2BEZLiB5jV6V7yGB8QM" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "75ZXTCiWakLSkKiuhSk35g4wYNsHTDQPWLP2cwMbK6MehghBsNw5ANsCcaTs4CrhWRJKKA54KDoEBQGTnQbb6rkb3BMagdZ" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "753GNGNnNUR8iyrTt6ycMQBtUyZWd23z41yrLGqbrZ54SHZcE84QhWf113boExehdX5pAzjjzE4UiAiqnryti6ju4y3N5WV" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "77caHaZT7heMDHxzmovniFQLu4idKUMAYQwEh96an7QdWxfmURQ3tYkcWNcYcW3Nf5RnCfvZp61zZ3sMo4LzLZ1kFHrPhmh" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "7AuByJnJCSWL7bPTWaQzTDU8xr4DbpD8j3724XUwGY7VYiB3YbJEYpcKoQaocV8kh5jZcCxjBRiRBRtKPiWGHmC83DNrU3Y" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "78tidah8aYv7sKj23wPQrFHwaJmzaze8iAtnBbsr4gPjXrfkBKvUAYMYowkKzyTfQxYrYuDE7QxbeJJ7BM6yJDfN6QNQY1q" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "77kuRM15DQaBmpB225ekerD7oJMichdbWYxFyh4d9xqoPb4GDq5TMKoiG2L2YcaEEPbcCGjXNpy4yg6FTnpaHF6V3MqmX2z" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "72SPMoTv9ehB5NHKXMPV8YieCA7CrysSX8NyAaWYX2Zs8gr1VgJyNt5FXRjeytjfQgh26TSKeJ4RhjDWmZwQPJPpCRxG7iT" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "74BfVkzniZV7JhxPQrjQ2LGuqZQiMBcXWXbpeqpCGdqAJQpQZE5GhEY1YifVhcXmS8DiG7FUvVgdcPKZ4aP1n3s4LqUnZAH" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "72cmpmJK5fMhYjXiY3mvgF6hG1jbB5Csj9WpYNzaSJavSxwuZVx618C1vMc6D4dC1HHJU1urkZZaaBUfdKUJuGMJ4kjN5uf" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "73zEAMZPKDXCtCCQHZwkp5W5jeJ1W3WPg4KZWmgvn3DDSQ4YHoU1tEA3hYXNP1GXoFiHBQXJxGvCq6X7uhMhY2fJJXJAi9B" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "75roWQXVSVMjdq1AitdoPwN4rmLku52YsXaGJzP9hM9tDR7CDgCGpaCJetSYEiMd3P3W76itdZbedLengtaNTCotSJ9SmH1" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "76dkGYkKZJiZGfRT6i8gLX1pmhr3h76Mp67uaRyZCjfvAuCSQ58hXqqTk7yF56VkaB6MAxrLzzGLh8LzchGXi7HCCXW5uvw" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "7894pLajPw9c5cTXTmxc5K9w1Trwhs3ScATC7WmxHPAjVs9ktrFpQ3P2V3B843n21NZYz73sitohhNrNzknua46X9GGYCum" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "75daYPbZZ3ZEtTyExGbnC6Xn5wCjEnySc6dt2ymxhMdyATjQBPu79YQJRRQWjVt8GaMft49dox7en86mc5Da32KJCFrbu1W" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "7Bwf1iPCVqg8TBZG4KGSR2fv4Q3D3fSrDbD2A6eWqnrD9t63A3bDqiFjiA46vgt1YT3fxYH5Rh4TAYu688RqpBpL6xowYm8" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "7BKFqgNgMVfE8yuvBr9jdMZqEa8UAHKKPR74FKhpdK3bXf8YHkL9ZQZfpvyGYzud5FTJgeFQxKr6YibTCjBuoRicR7qqTEk" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "76hhsTKKiN8QVcHJqe58w73FK9yZmcFhUifxy3n9X7PLJoHJkTTjqFEH9kBgpgDvZJ7EGt68DYnywa3vx8eV6t4MUd3Gptp" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "72dnhwdxy5MfX7d54B9pf1cq6V2yscVhXTs1zATKfTgwgsYq2dVaRUWByAAoqnPwLXdnLgD9Ynb7nEojFNsaiHAyLX7jtRw" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "7BaNV2n6CydhDYkJh8LC5bDiwMXV1zLt91CD97iaWpq9ScNi7CwBScUNwASzkz1X66NGg226X2T1EjmKQbc7s7j4Na6SiZs" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "759S38eh2ce7anATwP8VFMZ5QKhxKGGgqSdLfwSrH8tzgk7bXSkUALoWCjT89wAcgsMaDxP4115c45ZhVreJV9Pz8bAf8xv" + } + ] + }, + { + "seed": "af55f7d1d7f6bbce82fab349b4ebaaca3c56510361938e29365e16dbffe22ed2", + "coin": "MONERO_TESTNET", + "private_sky": + "a6927b1981eecc55a0032103663b58bb3b56510361938e29365e16dbffe22e02", + "private_vkey": + "abcfa312e3c7fd97414671239a329e8ea8b1d9d2e156a86326e6435542519e07", + "public_sky": + "276a5a50c5b205cb3bfb67ece81ff612714cf2f64b9c20f9cd6770d836e495b1", + "public_vsky": + "70e8f1c9325abd7f14cd3af84f25214cddeba4bbc4907f76a2b6635188c172b7", + "primary_address": + "9tfHSSXADvkazdPNQCHWEZ45v8sM1u78KinPxV2ZEfh6WgQEHL9Br2pNFr9aT613JpDrhtbd3pAnJLqv1K2sdqfwMesoNUw", + "payment_id": "834fe95c3ed45880", + "integrated_address": + "A4MxTFLeqCGazdPNQCHWEZ45v8sM1u78KinPxV2ZEfh6WgQEHL9Br2pNFr9aT613JpDrhtbd3pAnJLqv1K2sdqfwXhJiHmTDYx7FScv4jD", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9tfHSSXADvkazdPNQCHWEZ45v8sM1u78KinPxV2ZEfh6WgQEHL9Br2pNFr9aT613JpDrhtbd3pAnJLqv1K2sdqfwMesoNUw" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BZzRs1hYuZLZbCUEALE1DdTWCUqc5LwDbjVGtUxYAKK2bqtFpWDG1yKWcA2jE9YtzucVGEVdJT9JKLtzjJpaL2bqCzkcLcs" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BbEMeuRsgH7RARwLVeSsMpa9yrb2kNSMH7T64dmeok3Q7SyGW7JDYXdFn2TqNsRSmQHWycdiJfx9CNpovzRK2wp2Mbcazgk" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BZzTEci51RuZdAHNnaXyfXHYMwhjpyZpH7UX6wNE73BwMDjSSxNc6KW6CB91QeLtLY4irVtu4a8dsLygrCQLfZyVRx4GSiw" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BZuwzES5xH4jfwKeAdn9ZTdNasQtLPuK76iYehYEfMyF5teAYmyYbm3cVckJvCcTQVgAnwAwgGN7giUJVyKTD9EKBgU8YSD" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BZaRJva6rUN6CXF5ovvwWR4Zj7zUUnRqXGbw9EECPGUggLwobw2WVbm7s8YS8cfU28WS87RoGpA5V5mfjbLJxXvq3jeEk4z" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BcpuX6WWTdE62VdH9B2Axw7ZQ8y511NLRH3Xqvxw2pqwXXVscXSff6PiHBdy1HfhW7Q1QpJrJsahFdXV6xueEYtRAPASAvM" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BcGd6PCcYAHRGuT9wnGKoccga25w2X3fmC7P7Lwo5YpELdK5HrxYaW16eNrFFjJQf2UibGDEmZyfGHtdwFaiBnvmNiD6qRB" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BbGjMDL3cv1NB1omp7ravh7Dug2JCbc97UQ2KKrwhdFh5Y3SSwVjKH5jGGddH9vYfLZ3a8ifM44uj8HLXejPQwcuPKKfxMy" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BbX6t4EqRTZTGVTSVUZpAaEHqPFuve61M8hDr4euuKdReF7rHQgHSAu6sTHrX4bowMhKhVRhkgTMwNoRqPpZiKh7CRQyRuh" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BgqZTyVG3DfQdz4Vjkdss7DsEMzWrQv4PcercZTK6fmpNWA56k7v4SzPgDx6AzW8nScdq6PKkFHiYabNqRFGwYn5AkdWddJ" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BbUuktKxF48MQB3HrEFYmKD6NdEkP3cbebDVj66iUscghCzx6PHdyLzV4p54HLaWHa6oMzAkn3Kcgf1ACEhUtpNs87Xw8qp" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BcYbVjqpPTe3uLxYWmAG8VZRLdJBBT5pMiYCR63DVhaWLqVGxuuq9T29Hb4AQNpicuWaivUp116EteCgnM9J9PC13ht4Mwa" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BgVPzNu1s38ZFa5cTEzL2dRvVRUp9L2nSHrhVvoU6FDKHtSq9Ndh39sCEwGmhXmqHT7YvMF2a5sELWAp5A4aRzBh4b5drGS" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BaLGvb7RcGuQo1TQraXACqKLhcfh9tcZcdJe9RYFiwHpUvTd5ZWPLe4QQ7zcNSfRJ3BnEzUkchxnBLsjDQSNoSszMYHYY7X" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BapeWQpk7irDAk6dcd8v9s61BduT29py66HKHXVK5tiCBZYx2NtEscY2S21PuGLkdnLvEC74b5f9GUV8RhACGH7JVDzv8fr" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BcZTqCCzhgKK1gJYoJKQAph3PhoADmStYASxqBsfUFMaFPt8BNiTaRGVjB1sS9ZtBFNAvB4v6wkEDLxz3niK9HcVHyxSjDa" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BaxzQ5wEnrtEGKwjCpiyrFCnpaMRNw6BFGJj6QAmifxvjkGesourp8UbtbYPuCdKNFAq9CK52rdyoMpaaHfUtfoCKbZSAfB" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BgQZGNwMG4NAzdizEKfB7n8pHB7HW67m1cvkEyqnbscbSsRMqp5n1SgVkNttPG9F4d8Xo7pXUctnoVoEV8B3izryKZSuUjM" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "Bgt6XVUkGgvgFkapNq21MXXZbabE796ri9mzNQJyHCjRiehdmAJmcMEXJDiGc7EL4c8nyFXXXZCBtKqrZ1PqTdi12KATMQq" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BcRrfbfpLK85e2NJnbD1KrGbwFjcLnLgXCb9aUVCJrRM1PCn9HWeYET8qCUT1xP8H6VXuvD3Jrsug5sR7jLaHcryHb2jrzD" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BdgGc9adh3hgRuwBPw6msPVvERRPT7HycBq4GueiJaJM1pCsEHrzYHAAi5mmrCjZWSfRJhCUPvwGzjQLfZ1xVuwyNmSLuNH" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "Bg9yHtsvcFwWPu1Fyw7YMtfwhipT2jKtf689j8PeG1htSgDJbFTPX8xcQYhmrtP9DDitSnMvNqx2Z6HGCg64vBjVBFChyLp" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BeSneqCJ5BfaBywM9sXWy5PaeULWdgEdGhdDx2dogAgofNB55mseCGi79N7QamAtJ84d1a9K2QkEehuSt3W1KhMSPCKytva" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BhnCEsFbX4vcBC8QHTXmSog7MaZSDCaZXVELsZBGmdW949T6PRmXuVeKZQNHHUsuurNcU1Fg8jBbdVUFGRdktU6aQdQKpoN" + } + ] + }, + { + "seed": "6c7a4ee3d0cdc4277b9daf79ca801359872f2da92436dce22609472bcdcc9d3c", + "coin": "MONERO_STAGENET", + "private_sky": + "a5fe6ccc81a48d1ff8c6c8902e93761a872f2da92436dce22609472bcdcc9d0c", + "private_vkey": + "7d7dc9322dab8447c81f5f040f00ebc0523a3c921e0cfd7cec097ac332dd6e0d", + "public_sky": + "e35be86c51dfa19313a23284a861f77729dd4f747a3141f40b7684b3e9eea16f", + "public_vsky": + "a8008508b8d7f9faae8a866c4b30f9088e52879410e5e5f3dd8ff45ce08fc54b", + "primary_address": + "5ASsBTGL7r8Rbq2wqCzuTkLw34ZhSMpGGhpYKhcwUQueKgCvXq2Aqk4ivvo5AnXVqA2S1CSh6tEPEhnoSGEsuSxk9Xip3fB", + "payment_id": "b49969373f4c4677", + "integrated_address": + "5L9YCG5pj7eRbq2wqCzuTkLw34ZhSMpGGhpYKhcwUQueKgCvXq2Aqk4ivvo5AnXVqA2S1CSh6tEPEhnoSGEsuSxkDfSPw4rGZ5PESzF2Vc", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "5ASsBTGL7r8Rbq2wqCzuTkLw34ZhSMpGGhpYKhcwUQueKgCvXq2Aqk4ivvo5AnXVqA2S1CSh6tEPEhnoSGEsuSxk9Xip3fB" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "76VWsdBF1VLFauioUwW5np8AgG4HPVXRW6N8oBPUANzoAiwR5ehzvARZ51tLZZYHBQF5guqudiBJqfCxPfR98cqgPmY1KJ5" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "7AcLrkEWmYad7j5JrB9Eop1NNRD7BHV1EgmVKoi7iVj4ioqDndHUSiTSUNYsPsdSwUadG7cg6DRihYFRjeMorLR79k954DM" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "76rjD9ruk1NMivk4QNRmawK8oVB4bvzU1REvYBaxnY5YB1fFR98RqSh9i633MMTu7rAi5kRxTDYLh1fctEX8mk6o7jV7vvJ" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "7BUyfn8qNEz9ednzKye4nnUXztSyYBaFFfrpa7F5Bw7R9LnNdzSiuG8B3StMepR5Lagmig6MWCqJCjJVe78iEtFy2jUL9Tf" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "78Sw3KfhvHYAYULVsg5uZ2foUTJd5qVsT7bwn1C1nAWeAQbwJcArtm2DoRWgNy5Gz9hcvqC3ejJ8yDbqYntoehm74L4S5fr" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "72XGACpc9SNan3KeGJFSmuLtmpbtwANwUSmHuMRfUBhyJSbxKykHwLd8HsU7sKWR7wL8TmLVhcgzmLuTX8UK2sucNMUbZjK" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "7BPtpiYCsqCL8bC8eQ8KHdCqKiiR43Brpfxw5AefaGpa8SVi1wERMJP8Fp9yZUzizdg5Bnavk6HvJfhsCakExsJ85xc8TKT" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "75p7zbVAonjADfWmkxfqi5QXCe1Hge6ag5Sr6S55o2RcNxo9qEre8KhG4d53juaSjF5WqrXPcRbKDDF1RfZuApTWRSqHpFR" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "74n9ofsqXceMC14zEVXZhFayJGLPweFUWUrQAV9CehxW37SrGYGXhxq1As41CfSW3xjorDvG1dEwMaUA7y1qaa7KPwfqgK4" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "76sGqL38SjaCsMpYxXQjnTPD9YvhcdThsPBW2AWE4ELVeWGcWxEtxTBCNZJaMnFwrM8U2BqpcpEc919Nxp3yLFWz67AqF1c" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "72a3MB3zPJ5TTwzxYf4QoEehyr1VkrMQkHjq7QXXn6hEZfTD7wwWaYt6hVti3uNE1UTqqk6KojvnbVRbzX1woHND3tWugcC" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "761d6JvTUR8TLBNuyey2j5Pp12mnnMhz3Ef4SsNUMwWZTPwejXT8pcHN2JhE5iMctp9fdDBhhSxJqQuyzwdfTi88V7Hvc2s" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "7486E6LhbCed5RUEWmdoB4S9CQ85ST2EcXoM9nRjSg5zG69FftSYAgqg8NdR2yP8XQMx2LZRBnTcUbntDadfMhccTNkDHn2" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "7B9mg8i1ZSDGpDkA7vtjNiNTPoEubhZH3PXyXRSxF3zARwqkaoJwU4MbTUge6NubdN4SEHame1pUc1jPY3gHCsN25khaFyo" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "76A3h4Haggmaj9SVdE5qFdg9kNiTPvp2jGNdxWURLQ7M2hYacxJWFDEjGGkpu9d4tiRdaoYm957SkXyEvufcJSSpQo42e1W" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "75U2ow5EfHN6nTRR7D9CL4W851g8o3Ce7NWqiv8RRFni3g77a6zTwKeUX8WBBQk3Xs2AnCtQ3LUJRdhV3GWwpyFb3SmFNaX" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "7B2a42bk1Go9iETRXYGJda9FkDVX51yuFRi5bRmKab5cg8YZcYYx2vKe8MN6gzGJSKf1P8sTkUrKEb6fq3pcY9Z4KCd9p2s" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "7BnmD914HNyJoDEYPRona7Kp4PDu6aEWiBU5haTYkwMF4h4v5medJbx2da3MG4poyFV425Xkw9X8EaapqEEZScJYVQPRMeA" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "7BMqX8L7cm1XpeMe2BB9xqcc3KYebNpQTDqoD7s9N3BaLPQ9KWNPQujH44bqpGGncP3Kx4s1Ri9BmTKvaYtXCBhNRobEEa3" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "74gVGJyNm3SESQ3Ru3yZPv2LY9XdsSsR1TV4Ls7aukf6G6DG6oqqcwbUExaQTgK7YXiqfsWJUSGC5QoAQyehGJix9FCqQqk" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "76B34kCwxKvPkACYYzmPPmHqdDSaD9kutCYkYDbY5oLkYz3AMgwrBkZXQDMwtbXQvQd2R5tPR28tL7uZzvC9CwvFPHHkQnY" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "75AXCyxCHQiRKgSAdvcGmKFGLzYDHK9HMbDfLMRgMvoqCh1q1B5ZhqVDhD3vxydNpFdQ5nzY3HzjUZVdZHaLP5iR9KYiq1t" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "72gQ85X8XGtNEGzpS44BoKAnHkBEXxDpGRRTRJaupFW3EpknxHMKfC7AWMPmX6fFmSEwYLPHokuew9rXu4WqtSVQNLbj6qK" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "77FRH5G7Sb16E21yEtWbttGQgN3gc7ZD27ARkpu6cVMDhQMRDZ1zPsBcX7tqrWydb412QUThduSpWJEPbGkat9r64Thpek1" + } + ] + }, + { + "seed": "0bbb9e5c1f7f1d5a2a14bb3102b6030d990366be89f2fe391696c02f7d270766", + "coin": "MONERO_TESTNET", + "private_sky": + "7dc3db2e812caf492467ed5fcadac98f980366be89f2fe391696c02f7d270706", + "private_vkey": + "fd4ccd97d7fd65e422cb976c61516eb0ff24fd73bb67093431779f7ae4344b01", + "public_sky": + "12582497d7c87fa1c30701e000376c8bf2ff771f8fc725bdf2f0562279f8ebba", + "public_vsky": + "de0a469025f5f07797d21e79e5c63232213b705b9b297aa6dbb0d9a4436548a2", + "primary_address": + "9sryHDn5VtJU4HxS4sgBAbQQgbSFjHQfnYmk6bfCZgTUYFr9P9HqYCPM1CjrCoNccH9PKg9pFqd1jUujXcSkJw5HKLcEmzr", + "payment_id": "f5b106bb7d675ae8", + "integrated_address": + "A3ZeJ2ba79pU4HxS4sgBAbQQgbSFjHQfnYmk6bfCZgTUYFr9P9HqYCPM1CjrCoNccH9PKg9pFqd1jUujXcSkJw5HUFuz8w1Asz1TDzWo2F", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9sryHDn5VtJU4HxS4sgBAbQQgbSFjHQfnYmk6bfCZgTUYFr9P9HqYCPM1CjrCoNccH9PKg9pFqd1jUujXcSkJw5HKLcEmzr" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BfkNQC65S6bC8KxGGE7MLzCo7MCtW2V9s2hDZP1HJiSnGAYuf4iD2daHZjfRhmPPVT6hB5AcfbzFpEHi5eypkTTMPiA6sT3" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BaHAq1FEcFyUtDfzB21WnLZfVeXsDtbnjE5PY5iWLLi88FSarskfHhNf6qHVtz5R7jcMYrh67yp6i93Cqcncqdqu2jSmtWe" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "Bdx2GgP8qUARpeEQ4hZoBHTzMzBDGfqEeL266fCNo8GjfPyaebT8kgj2PwP1bLBDY9WNns4GdtVVX8xM3PGpT1zP4vbb3nS" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BeKgmfEvtXGgy3Cd7UAKJFQ1Got9CZgz9Bop4Kg6weVuP5L6SUvsqZpNuWAiow2qFk1e2jqzgm9nZFruDrubB2CkEkKK7ZD" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BYwf3XnZGFvUbaBgXm1nMqEXDuTsULWxM67P5qHLekws3KgSSty8RuGPtSa2YyNmkTLd3oB9HQ7PvhPD5j8SCRKcH1vAvC9" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BdvWoN8hipSTErv4Chu9YSSxLHw2FMc364zQkHFSQASqiG6X62mBA5D7EwaT92MywvUB2BHL9JfsZ5NYhKmPuS6nJXVswbw" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "Bdq7oKZJ82kckrFoSaTdZkXcY7XF5ysceTv3BLrL5BbrVw96x34Z4VnDouTJ6D5Hr8JU9Td6MLch5DAnxoxoFEQuGRjDX4u" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "Bb7oPcWHvh46VAfvzGxQsA7NCU24hCDV7JRptkjShe3URmPcTtCC7FGRAaGcKVY8xz9PiPbbj2Gewet1qznQzLTGH9EAQN4" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "Bd8551mk8WbAhv3j7CZbRqHu3xWsZE7JSQC8eJGoGJm224wDczEWHxRbjQBfAagqYxcg1DQN5Pg86jCBSkAUvgR1D28B18A" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BZf1ELSpwxhU6mP9CasRV9HgWCcWe2GPG3bpGCng4QWN1fXcGHXTHSx9m6PEQ6mFcfQfnD3AH4kiHepLhmDArFq34EcoHYD" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BfiK7x6Xjiz6CgvdNtKhReMWi6c4HVUmF5EDNQPbAfXzQriX4poSccyRz9kyfsN9suV91xhgaDTu3frnuivo6QntKu3ypqC" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BcZrHefbNPV6LRFczYP5eBMdaUogq4Z8y7hJiEM3B8ctEYhWvTASYvbRJjCMYsGqEcSjFUVQkJEWqdUyGERKiN68RSjPZJs" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BgT2uSDiQbq8iQhg7nSj6GAC4UZSqDUdNB7Acn4BnTABUF6cDL5BYVKKx5XuZg7ZYeE71W6MtZen9DvVuhigRGSmEeqA76H" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BgSvw3PosMjeRiE14pwdt8Uyz1iV9RKhPJE2GJTTtii71e2Cpd4xjjv3KSQQBoFjUoNXgv2xysTXHDYWh3EHqgZvGq3R9zC" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BfUjp3JAqxbStG1yL6iKABj2i7VrxeVM77VGk3ha1gy49Wp4vSnTYHyN1zXeXxYuTicNUFSwiddnbYcF39vBCExv3YnH6Pp" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BfmpLUGEm62LGE8E7bdC6U3ReFmyZQyLheAn6w1wdFStdvVw2wWvUgUD8uuBzLWvELKrk7MkgLRW2CPqGFUWRsMSAUPQYT2" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BhEj9VkJFbtVTPLbEkVRKKFsfDrtdFa9KMDwWvUaUw66SYAaXMpb7DCVAEUimbcmNfVXgmHJvmSJTVZLpNTWJczsMM2rWpV" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BcHJfKozDfxNRCD7Yn8nxDFovChVUzszwQNjes9iNJrkSiGSNrnaBUQ7zVNfxFqdvsdwPR6cH8GK1Dd8V4cBtDh44WrJQjr" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BdKeZwD9tbsLnpwcBznoFFhifqn6oXm4eAYMV5DJJSap98FbtZcY4xLFYn1f3BKE43LdMHdUW3dG2LzQGPoBJ7n2Re4zggP" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BbreWri7theZ54VfrXfASVaYEmMffyxJTiGKavcW9yanaF3g61btf2XXPBSWiLkTHeh3YkZ1XNQ9NcwsHfFaU9gwNyupg4M" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BgiWBbemAHkHKRiM7NVvcSAL8QYnEr5Th9vf5L27Tvr8Y32muJUxAJjR8NdGYEnFYN2JZHiVQt5S1CNGEAcpo7Zr3ZwMBwk" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "Bb3ZY9xam3x5vxiXEWEifN3Pvr84MKTeu4ww7XsUrHGZcybkekjfy3SjdGQrXoGeKzTfGVhXAmw13FnWgp3urd1SRm1R6cC" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BawJZwfgyPJijPETLKhNrjKMU3uHpbiRABdSzbmSwJ7xX2QdR6rZDPy5Jhy2RokxZXfuUJrGBHyobWFmUt2XGbRUKzYwsm4" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BcE11WN2Sdg7rJXTzFBkxQRuSAq5jdSYKCkfF27B4MK2EZjHDMnfeUiYh3UaCsLXisSyLAC5nvYiz8VDtay2Lt6C297onDT" + } + ] + }, + { + "seed": "5001ed7753dd6cd22e24c86bbee2dc4d283d52ccea6592b8e267200fe2c99e91", + "coin": "MONERO_TESTNET", + "private_sky": + "fb8d48336661c7b9a5a013b1ea190692273d52ccea6592b8e267200fe2c99e01", + "private_vkey": + "3c896ef07288811bdbf84d6ff650083a2f8e1382dbc322c5261b79cd28bb1801", + "public_sky": + "7a50bef8c1806172d3d03e39b863e5142fde62f885461a22e38a537f31432227", + "public_vsky": + "d7df9732cb72caf13dae95dc3d6959c349b13d00d973d0a30695ae875f447cdb", + "primary_address": + "9woVa6Uv1qiLCyEgCuBgoE4Nqfc68RU256qTzSC6gT7P7fXiCRDhVGuhMLgc4UTcM6ZfY93zdtCqDUGZ7gxJ5f2TRmTeh2X", + "payment_id": "4dc8a76ad5931502", + "integrated_address": + "A7WAauJQd7ELCyEgCuBgoE4Nqfc68RU256qTzSC6gT7P7fXiCRDhVGuhMLgc4UTcM6ZfY93zdtCqDUGZ7gxJ5f2TdgXGy9YH9Ta1LGDNLk", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9woVa6Uv1qiLCyEgCuBgoE4Nqfc68RU256qTzSC6gT7P7fXiCRDhVGuhMLgc4UTcM6ZfY93zdtCqDUGZ7gxJ5f2TRmTeh2X" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BbTkn5w1moeE4JCoRS1dpdQbibQaMCBkWN6oaZ3pJQXTKGtvgkunWEwECmjobU9B5SgAVhiqCCCP3XKe6Y8Zs8ThTiunTjV" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "Bddv4zjJhdQjCjK7dsq9GeYjW2FuvHFaJVfDE8xiNZeM32Rmu6qtsb2ZkbdbXU6QERVravc7JP134eeKNGGUZLUZVQKxre6" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BZWJuMHjCVwAsw34HofU3ENC51j3EJLoQBsJBuvhRMgAiUvvAuySZRgQztj2Hz6Qvd3YFr1BDZ7rE6k7QpuDekcu8nCPTXc" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BewKkr9VuYFN9j5tL7ii4iAHsRoNo2uRpgbCbFrxXK5x94U72F73Jw8MbNqKhKZsdWFiTCgjtk8pNUyupHkteVfr54U4XDC" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BaQ5BPK62fSVTuMEykqWZNSJcs71S8r811Ns2dVZNMBR1ZNQ34QaieMF71JmrNzg1GeHS8JQdxxtRPBh4CFEQCVVBLuYDZd" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BhZTbxnL81b4XwAwVjwo5JWWxM1hNL13RXy6TbavVMjafNYSAzVjKZxU3Q6Z1Hor2JVE89Eg4VR8yHiKSCUfH7aDSXTydbP" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "Be5bKQ4ydGtFsJn5pqZTNCUKqwb8YLmir21zCT6aQw9pWr8RNZsD3uuDtirkURN8C1iDmVAVDW9ZvgyMtJngmLJN5aXkKE4" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BhEVVhJUdbGEqLz4a7U7y3a5nWsjwLymBiUS8BTLGfPxTCLRE9YvRC6XKhE6uL87JigwH3oyZNB4HiR3isz7CLKoCCsYW55" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BZvaBfVPCavVaw6jm7xSoj86EsSHQUNetE7CxTYNJ9GrCm7oTbp846jhEHy97uLTkiWxXJDrHUGCBYb1z5FRxWY22A4WdDq" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BbTieGdq9zUZkFuqW64qLq2NPAkv37evS3syGvLnSaXcbhRkfGdPjKP6nRYf43swLreR8xyXvmzHu3jBhr2CwmmcGUL9D1F" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BcztD9sVMbqcB989cHHnRnRwr9X6Pk37ZFYKzo51jAjN2A5XiWaA3mNago4LYCg6QvUU1UnapPDLBGfZTWehZYFeQ6cRtJM" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "Bdey9axtP1Tb7pUcW4NKA4esrTSa64umv19EiPtMQjgjBXzXpeAYMCy6yYbAcxNdEVHZZWixsQaEXeb1U2t1uvb9AnPJKzX" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BYdmDJDzaLDCbUcC4PcDP8Mf9LdenXEeq8cNcYnbmZ13Sr2m1MUf8vcC2R46RRYarPa73kFcbi81N7EaQLWATB8BBC7HvZr" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BbuNz7ZVRtLhWewGxpC3AXJXzywfqYDkE95rcPiqU5Gf1aqDAzD8rA8JJFS3rNzUQ338iPZY3QE3EPmX6T9RogUwS9rpjXn" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BhN19ZNG6N81t5MTRTo8LP4uT32vDnpZS1PdHTaP2joXFGVFAu9GfZj2TKqvb8LSiV4ajCW6YJzpAT8Nt4kmBmPXCKGB7E8" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BcpQrZDQqaCh1NZARhDxWW65iHQEVUF7GK34Tgref7hpcdGYRXr4ZffjCDt23QUkYQUnRc4CBRgY9ihwcvxEFaFSGBaqgFY" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "Ba4KKhiTebwVG9VQGcaRaP81uojcaSnSh9YaD2NczuRt4yDLpg461rxTRPqyXvjQKiWysuDxNo8bW8nFj2RiUWz3LVLpCVG" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "Bho7sWjRRe7icUZYARNrH9fF384pcALUCH7ngVAwWJwGeSptLFnovgkSMU2HkeRtDncun2szEcQhWa29up35xgEbKhHzw3W" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BfC5DFSYQdNeQbeHe2CWELLr7CZgSwMYDhfPNKFzA2DXe5irQtopDFEYZZgmyBqXMgRYjDN75NB6uALhxqYJSkuhJWA281q" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BbVoiqZYCNj52kWnWntZsG4yJhzpehSCbFpVeA7NXjyPPN4mQw5Y6T2ZyXdpKEqj7KPeRxLLdCGak59sS4g1DqEnKRwN3rJ" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "Be4CTEaevAK6FqL4FBccRdc6i8WaFFY36FPvrWoGMyfn7c6JUucAWF9c9ncFu57zvbhW3Tzfm6iS2h43XNUiucHf9NagBNB" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BbHAxLL4VxzRU664E26U92WagiWFBkjxxNGUGYbQRRRjLw8dTtCeJ3r6GVD6ogxAqb7cSeLHfKhMKMFYhisAwuhdJf95T6N" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BeXLGVgHYCDfN6cyj1KjXYe5nRxgQQDLfUgCYuLPMJd6AUJUgaDYDC7Wdy5jS1PJy7Qn4ArVrnd5zNWGsWoerBw6UhzEcf8" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BddV1rcR747eveFKET6vkpP5mfqPyF8fpLNhj1EMthzJJ5PB3Tzy5bTVMNpDTEbaeyHspy2sLoiZf5vP1aFBA1T6RmeXiAX" + } + ] + }, + { + "seed": "cc59e19c2f4e02541bfe1cedb695499cb15d6a2f5f45ece3c5266d6a81227ac3", + "coin": "MONERO_TESTNET", + "private_sky": + "b06a5b41f3a825330fa4814947dfd5a1b05d6a2f5f45ece3c5266d6a81227a03", + "private_vkey": + "2f702b2a37770aa2b14eee82ab3204126e9a291913efaebe45d794cdda090405", + "public_sky": + "c752782a92a50498f1a60d1efb1a75e36a0760f88880ae743f0c5adb30f70c0b", + "public_vsky": + "5f1507b6e71f056c0148fa3c7b32a71433fd3fcf47fecab0db2d2adac43e93e5", + "primary_address": + "9zikRtSoGpbSakNcPnmhU8f3CjmcVa5ZPLSjc3JpzcWP2uKPGxiRGVaK4nUKotE9jC4NzitxMPFeZWaj8BDRsw1kSvPVgHW", + "payment_id": "8fffd3ff364c2395", + "integrated_address": + "AARRShGHt67SakNcPnmhU8f3CjmcVa5ZPLSjc3JpzcWP2uKPGxiRGVaK4nUKotE9jC4NzitxMPFeZWaj8BDRsw1kfQ3YJDfMwbQHsTcZN7", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9zikRtSoGpbSakNcPnmhU8f3CjmcVa5ZPLSjc3JpzcWP2uKPGxiRGVaK4nUKotE9jC4NzitxMPFeZWaj8BDRsw1kSvPVgHW" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "Bdy4dPHcgCKPmouWNYS7uKNqpD2Li33jVDcYrJRL8wrtXSmj7CQnuovd5yKD9CTeXLNx2P1FqSannM1oxYZJSDVbFSZEJqG" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BheEoG7QRbtSfKQiRTcBavcPMRU1xUKEmVoL2RFvEv6nM2hAKnWaDuNKe55KSCA4pU2aYQ3jGqFHJjoVes6237XCFyiNiFj" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BcwrhXz46E1Hg7gYrhCdgfX2KHDwWrvHA1CDaEx9cDuW2QWMjEKodUshBTuXzBsTU2cQ5uJBpLmv8Eh7g9pJa2kB8q24LiE" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "Ba4pqTzGTKsDgdZuNUhSf26LB1Joexmm4UQYsN7oCAcs3ZSH8vj6dJUhxKKH6rqBvC72g1i4JnfHJ46f5AaouH3PDzhhB7D" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BgNbW7YMXFA7hXRcV5t8jGFi9HLWoaC3WYyrYw5LhQ53YAkWFzbbLvFKw3eo7rMTRdUrLy7bcrQTq7rmqBD4MLUn9e7XpaG" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "Bc5K38ywMtbDWP4aTgXA8JSnFQ2pu7AVAWeiNtJZrBLbhWK8GHxhvjKim8S3XtKWWsWn3ekGRR1sXj7ZBRZdzvS2UPD3fjm" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "Bfm3CUKHCes2nsRmeRLUvbMQpDwtKD5W9bDdaLqVfKgx5qcjSW4yFBtYFYuj61Tz6JFvv4KwM7ajAG3zj9oPrZ81AuTw7Zn" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "Be2tako66cA2VfFsmpNQBKffwRHa2ErevhT6Kuf6he1sgEByAfZUknv3jcNpmFHnsDDpFXYv4eGhjf3kppQKK8h9K1uvosy" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BgyStHd3dd1a3EJBNBT44U2rGR2ZWzv33PcnZ5LaefmAhvvSZVyF2pFeGDyf91E5TMG7o4uTMehd1exPpxVEkHQrNdfpSs6" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "Ba8AsDFxjoGX8ht3j2S7TT8yvshp8Hu3vWJ5GHSm6MLFZzqq1z3rLRuFMaAgwnrjvmakSHrj3ttsz4EGgyaMipfN5zgJ2B6" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BdTJxMPD5LiZb6mWmDgXmyRaWVLKjaQZSiUnZYS9x4NKha9ybhihKe8EZCUT1VrYZwEapU1JCDXnp4i29HB6szt1EcAnkZ8" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BgiCwYGpWbgCypoDymMhKbBBi1p1bKTsWAnp3WpWregP32VVaBr55PkPscyyjDqiEhRjabqLjUqa5axS37n7GXyMSyEq6E3" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BbJHnCHdmMwQhCXkhNypBMTwse2G2tJLKbfKsCyntmKgbA9tzVaxny1ZmWcvg88GW9HBz648SyS9CK8aYo6wPt3PKhcaYcK" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "Bfi663nEmGDiDM6Cy6JsK57YpAgK71KWbh2Mw2yibhAxJ2qLquFaJyVGzqV9QeAsfocVdCXKSTUqEYyc4uadRUjmNV6zNHP" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BhWd4DtmpyCFED7bjF2eX1NoX5wTua9uqFh3MwsuBmyRKE5aht3ZFbHKr6rVX5a95rWSjxKXPzFCWVE5VAnXGt8UGQu8aje" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "Bfhn3LS3f8b3v3w4e8vJbP2muszsxVFrVBvhMmRmDB5LVMTUc8cznMjDwuEJfGPJJA4uvCahZbWhkTmNyoCfnCUv5Vsh7A4" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "Ba3Cc4gnL3wPTcs6TNPHybTcBsux4RwZuWpj5WcZPkxyEfSorMNWpsthMbxyCJp7eLd68uQs3qfA6SYHKxHx7gCzDrKdpvT" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BcLCTEVP876Zj8FT4Bt3WK2AbJeKheV3gDbTyfGV15pNR3VMzzSWj3eMfxspstsTQmZRJTUK5YfpqjL4vm5LDpeYU2Zpp24" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "Bd4CXSgzWg1cCAt7eDXYq76YYrbBmspD7JEEaocjJ4TbM7jEb5KXGmEgnNug36WB1C8c7SETNYgq9cZE1ToFEKbAE99k63K" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BfPBfBP2uMoCHGJagvVBMLcemzvUN4T8QZdxe1jM3qK2CG5b7WNtipGJdLPHA66VHYcuuv5pTKsv51eB8eion8qrA4yNkBH" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BeEKuXGikKh6CsR2hfVrVMeQGNCFt3JXFJFHRXhUSQH6JR6k4qjomqPhXvLuz425JgNayKa9BH7yFCwt36ukFMhyNB22UCS" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BbuZe4GMfPcSKuebrWxCwmiVe838EL1MvP4PmEaCQ5UfDYK5rijjpeX4DLUuNkirHJ7QruuBKgcyxgfQngYVFAhs6uZKMN1" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "Baww5AuLz7SC8iP48hSi8cbXy8VSy17hWcYRgbLh5XDzbktyBJDFJMX3LPt643YykA4jpGdJAemMz7B4GqivFyFu39EjzwD" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BfibH5ckHujFpSNgrQTLnvNQhQocxGad7ZAHVhSMYXdVgvEDVqMonQbbb1pSQrR39vXska33tMHSRRcH4yQwa2EgVegHhyi" + } + ] + }, + { + "seed": "f9885800c241dcbdd8eb01b24e2e02724e75131d1f016f3b2a74725c95a46fa2", + "coin": "MONERO_MAINNET", + "private_sky": + "b741be5eba62244d79cb55549c6b4ca14d75131d1f016f3b2a74725c95a46f02", + "private_vkey": + "9818fed716d218183be784af7bb9fd89f669c6a5f0ae0e6e0b7bed483b659f09", + "public_sky": + "4503f29e51f4df4fd48d0b0172896a5e30044a7d4360630bc42864d72af36aa8", + "public_vsky": + "7adc770c34dbb4d568906ab679c4eba1e2745fc528889ab1c001bc434b64ae51", + "primary_address": + "44EoNbyU6gWEMTKCvv2GJVGkjmWb8Nd1U2y9YT8rbkjTVBU3kLL3YvwchL6rYd1HdcU5V2np6u6iDWjQ5b79hcpVADcne6p", + "payment_id": "4506ddaec141b5f6", + "integrated_address": + "4DwUPQnxhx2EMTKCvv2GJVGkjmWb8Nd1U2y9YT8rbkjTVBU3kLL3YvwchL6rYd1HdcU5V2np6u6iDWjQ5b79hcpVEbRChk5ydwAUqphXWE", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "44EoNbyU6gWEMTKCvv2GJVGkjmWb8Nd1U2y9YT8rbkjTVBU3kLL3YvwchL6rYd1HdcU5V2np6u6iDWjQ5b79hcpVADcne6p" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "86ZRPRkKn22e66qQW55idTNLYhAaa7r5xVoaHWQtg1M45h1dG1JmEs7aUMCXxtzfTgBQHj9CqS6FAFpUienKD9ro6898ePX" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "8BKmqr5W8EeK1gBdVcQzk5gChFsbND7b1AMeWqoKmSTcV3mu4myB7N1Gn276eQzSbm6t21My3CQUrQWw3FAsDamE432RvCN" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "8C2opvDx56D9us4ikgEqovMc3cRywmNtjgYnmXDQEfTiCRiYiRyWw8aDTPsx2UWEDsDjqHa4cfMfFFy9LcZraPUAGBBkt1E" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "89R8f3abZhU8PrXtf6G7v724msE6vw4FTMzYMQT3HiejAdNbTrxbv6Y814GgvxvcQeJvByUfCVtzoT9qsRyhPwDo5TQyYEa" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "83PARwmakhQK4UuqiB3wUDHPpcGrWy7o7SoeZYA66EvAShLzy5kKmqSFQa6vhSuD1dHCK6LmjdTpe8KRVTkGzpCY3CUZk9h" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "8AKPmsHVE51DYzogvrmvupeApEWtVeCJRFhwG1nvHyrDeCVuKwb8C29JkN5CX4WBSWB2qXFfAEapr3jqXu1g9d9MVkCKvUj" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "8AW7ektH1SR1eNY9UigS7FLEvum7ocu2j4ZryqnJ17zohHxj5oteKnMiec1x7eo75VV4tbyLgVmRaVf3HsqCorwU9xFiYmt" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "88SKNo3tn3fW8MPgvMSDVNPkHPq6BZZCRbia1D6bQR25FgkpzJ9Cb1wJR89N6gYoP8ektVpEhHLWzVvNmHcyvsdGBhStj29" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "8BZZKrFG8eEfZdh5MMqEFKNtdSbMh76gaV3SPfs1AF7jWjTmJ3eRvz62W1e4c5WpHPBDbTQkyYZF4BgazkgE8eB1357wv3W" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "89r945qxiu5LMvhc9QuSCRetv7hWe5QMBTpTd4ARvKMYUWFnBU7K2n5buYLTGgNdiCU92EozV9vC477qsbCCThjwLcC7z44" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "881vcmswMdeMPnghryDxNdDmpJH5ktgja5iXBwY7TJRLdU8yNgt5b94S8AMWvEHpCXTRjwwk1Hmc3cAAna6xVihUNLaQzwz" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "86PYtL7qztJeRh5KEq4PYEBGnQRTUB9s7hchBPP8NRC2XCHgxEmixac4SUGRKEmzopJuf5bvPtKzu27WdwSHPc4sU8XXA4G" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "831vuPn5HyXdZB7Jx3RgbyAYYcSd21RiBE1BrfyFfcYxfEhKT8oHGtmKsPZ3i8P3NJDCraokkedk3AzaPKJmAAqwTKepZg8" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "87QD3jGzxec1VtsqsMHqZ24vZxWK7XpR8M2MS5L8cgGngtasJx56nKk2huR7hSqyryWCL81WhzydVLZnkFfDb4WFCEwYETV" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "8C13gS3R6mEBDGKVkyD8UMcsLetFYybD8eTR2j7ZfSRX467bJmNffEY2wkkSdDrbL8RVaNbiv1z5FWATLLkpo21WH3wcPd2" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "8AaqqTikUnLasBbj3kMkHH6wewPwx7HkefJfYTDN1uvcH9YLua1ETidTCGCW8msRaoRdAG1nkAVxBWXxP1KAJo4JNoeQ6Pz" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "88jxYHS4f6UC9pmNNoZCbmY94ae7KxCnX1MSV9sEpBtGC9xtS2MzeHnfWGekLtMnGehbQ3o2sUnnw5jhhFauqabFSmDLgUX" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "88Xf12H1JmpbhfPB9zJ17PcchF1YZGJ77WE8jb83mv4XJnChbRFvbMG4Dpsv2wfzKFgveMmFKm9nqZVgbYnMNJaLP31wv7S" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "84JHDMob2H8Rvv3nzKHw5FXDoQYYJfewA61US5zzXyFeWugpei4qsWKSZtQHpNRV326SYeULGNZx58goqQzESyxY7iRrvc2" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "844Rb61PRz7jDyQwEEUaKDRxGPJn5tWin3UedJRihCmyZoLWpkSCqdEEEcv1746p17TX1cde8oX4FB5wtK7P5r3XD9ULqbC" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "85WTT7x5UJi2kcdR6P8dsy455dmZ3BCi1E3p6XFxpkUsBKwGjmRdPvMCS4tUeKbgC8dn7EFarZdNr43r6cxCfTiqFxDrbuV" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "88FcYfcbCUrU7wGSUXJRGmHSMJnC4hbSETUF9J1xiP1JJxkXyT3YWftLHKcXVzwQRj9mxi1vk7y2zj5vHb53p7kEKQ43zos" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "8BL4zVJ6RKTTyVcWfR9mwRC4Qj6SBhjubSpDbPYBTmLjVgW9Niy6XHu2hbCtWqCk9TVY9L7VLapgRPEwpbBXMjX5Khdoxcf" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "89mxYxQwQnmBruLKSYErq8LJ33NbnGgDgP4ogsPuNV7ePJPQioJpv27Q7gamhgW5ShM1R31S4bWo16zfZaNUNXfkDftm4NF" + } + ] + }, + { + "seed": "46f68eb56528b7c1270231ca6b07384f981b36857620f1f9ac3b1a02710617a5", + "coin": "MONERO_MAINNET", + "private_sky": + "04aff4135e49ff50c8e1846cb944827e971b36857620f1f9ac3b1a0271061705", + "private_vkey": + "7a11b14cc98dd77575f25ea9b064baf2baa9396108ad763ca269bfc938c25500", + "public_sky": + "828a48ebde6b73f8ff625b5a1c5d723300652bfb21fc1203382c371dcbed530f", + "public_vsky": + "ee44d0b68d13aef42b274e812fb6a4360c4349b0f35279edd95b745e8b3ffe3b", + "primary_address": + "46a2afFvXCNieb8xuDYe9P9XnB6F79guo1YEUyCdZaTk3fYnqo2VTndhqjydeut8UsA3LH2TpsvyNgnSA7bU3dau7hdEmxR", + "payment_id": "16f01db32bae0461", + "integrated_address": + "4GGhbU5R8Ttieb8xuDYe9P9XnB6F79guo1YEUyCdZaTk3fYnqo2VTndhqjydeut8UsA3LH2TpsvyNgnSA7bU3dauAtF6xsuucQ3C3wSXuj", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "46a2afFvXCNieb8xuDYe9P9XnB6F79guo1YEUyCdZaTk3fYnqo2VTndhqjydeut8UsA3LH2TpsvyNgnSA7bU3dau7hdEmxR" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "86Z7UB5NDbyW1iM2mNPH88A6LAHhk8Zgy9jH6ukCKPhiMADWirW6NeoTpzFhiP6LT775toeYk3bqZCws5bo6Gz7FSWr2MVi" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "8BmGH9kmmpCPsCRDPWos8MidG6xsMyvbk4kWiUmruMj9ekJT7E4SrHE7kPEA24aimhHwsAtfuqENe8NAZnF2yBfR6578aP9" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "8BjwnkqJxAb4KYNqNiAF2NJKP42mS2QfJDhC25kLjDcTSCiHpr3Ydhw6W6zmLhaicE3tNU7G2pt679yvLc1SB2r4UmrP1RV" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "8AQZdR1Mzfkgh9rUcW8M93A2WawnFSUdTcqWzwEn3js7eTUm7P92fL3W7CgVD5FvvShPtNV7TCScEFyvoUhBLUTfCTbpT8E" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "89sHH6mHE6v3VHoBYUhzyJ2JszNYeKsTKZhAayjjmgw9iJJGnRLpoynDmcTk33FNgT54z9pntH86ATPZw5zHoTspPjEwHBc" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "88nTpptGqbW8emVa35oM7RWmVHzZjWaAydX2otN3JgtzESozcB3tmxreJRKiTHz733AwoakyY1f4wh2AUrH6zN6bQhJvoT9" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "84WztvqsosZLx5GK4HC8KFe6WaVyL38nVa2KCmwMeHY2HHCAKJDHhvn3hBnqogXHBtSkNjUsgpAsG4xunfHagYFKAyjAGt4" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "8BDRcWHtB2y4VhMoVfNcHPEhKfEq1ZPxS6eM57D1JyWhe74qZH98XGmEG2TsY3EfMJV5ZLMj1U9Rj2cm78QAVZ4TAQs2jNy" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "85rBFJcZWZgFKjzN4UXkH7JTJo39L8ERqVbCNPz6Rq7jMa1TeSvURuY1GHKXE8iBuz859JoXR5pQNEh59Hze9KBjHHv43QV" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "84btqCnBnqP3eqGVzZKpmxAPGWxuvwdGf1AMp3oJHKz7jPk6URtH15g16PNRgBFbGAHrSec62RsKj2sedzEWQ5jCVaW9iyU" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "8A4TTsQffdLBfoHZ3fEs8LiLqMewPfDCDhDX7nm37w5t9uCbesYdnHhhgNwVx7pxULhLDWcAL88rg6UXysnt9G6QEpM9NGU" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8Aky3HEhAxH9GsChemWBviHaC73VedwLnhJkAGuGCJNLAUTx7LLdrwJMnyjMCRvK8J2J5kc2BqsHbJFNBuWbaJAa87FvTnA" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "86RcpqtefYzhrRu1jYKa8x7fe5h2Vo3cmNrcVZVtzx1JVq3G5A6ibP5ATLwpygCB1GL47yXDoBEcCSts9DLM4tDB1Wb114Z" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "88LFkEzqaZXY6aLmgwAGJpKTfbeYPqbKD3JELuaY9bq84dsyHjafjRP8eUBsG6TCQPQ95V1jBd3LYjPZUzbpe2ceQWNYtza" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "83Nu7UFzezu13kP49MCda2jSGo4ca82gsKPAwwKH4tk1Sg2munVgm7VPWuByt1pV8QTMscnX537hMdTJ7r5GJ3dtM8qo8Xd" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "88KHjagWvMd861AHXTHB5SjDSRwPfgNqyNyZM6VDHvHEeb6X1bfYfWZExjv2KHqoRo3rEsthdv3e7SusNTZFSLqrDk8xQNf" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "89RgkgzJUzjiGvGbfszUF3E5doESSNdo7X7x765YmzBjSvG8FDhqhmMFdLCFXFKTuUHdh6tWAJvLFBUZTg5uRztCKKYG7by" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "86XbfEB4MctW1AvcK2UmPtiNWfU9kUni3VtpiyohKYNSAY7DLRs1DTDBj5aPTyjqvAVPxsWC6BY6dGGT4fSqNSZ7GqnV7Xx" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "8BpFY4EGhbXhGXScz7Q3wGgXRCPZvN2kwXTqhCrmDUH7A2EM8DrjDFMh58GAS9q11BSVakv1WfNwC4N7PwqgZELYF27Tp9L" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "8B7HBTUXovFBfyiZiPRdPCFbJd8LjsWzS2ZmjSG7W4mS65axN2uNvhETJ32u2AQV2G1MUEqNtwCXZiAy5Uzx2ZumUAoEVbB" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "854pfkRHTLu2ksVafhq33egk45b8hGZykPisHhsiALgbCq5aQ4YckPnLwPqZL4PAobR7hBU5oMtm5Cahrc3cEU2HAzHsT2G" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "88ebNoQVQsBGHfWV7a87FMgCmxpL1BTGbdf6mHspgrxr2k3g1Umpugh1c66KKu8CjpVAT9Y4TG4pZbdbFzk6L45EAdMnBum" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "8AJvYCy13KLHTyXdkmVcSCB9CuWewoUduddkhk8txj3UbzPCNmj637YURcCAhA5dKd7uCkptsPxcfb848bm65eJRAB5fFgJ" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "86PZkuLFhNCD9ZyGpdmotpirh32Y33e5gPEdUcKau2AujjiiCQyNLUnWLK44zh4UiN63yx5PyBnme8ACHEUz4qmUFWEUQFz" + } + ] + }, + { + "seed": "d03949f4ed4dace6902b91b874432606f61c8883067e0ba93aa004d9eecacc9f", + "coin": "MONERO_TESTNET", + "private_sky": + "7bc6a4af00d206ce07a8dcfda07a4f4af51c8883067e0ba93aa004d9eecacc0f", + "private_vkey": + "992e3bf8bf984965c3ec5b0d18602a85289fc7d0a6ed2a9c2ebaff831fb0830e", + "public_sky": + "1b644aa26d2bee0c74dc050ff7f7def468e06157ff5dabcf33f5a0e570a07c62", + "public_vsky": + "5bd52906fc4b1f2a526897deb0a8b999714cace3e8b7f290c852b4a27c9d45cb", + "primary_address": + "9tCrew7LFAM35qvUKq84uKht5e76be4n6bf8ShoPQv4bHTCmEsPATF485aP5AavmRaSfawcR326dFRDaAJ38BSWpQ11fmhs", + "payment_id": "ec90e8dd57291448", + "integrated_address": + "A3uXfjvprRs35qvUKq84uKht5e76be4n6bf8ShoPQv4bHTCmEsPATF485aP5AavmRaSfawcR326dFRDaAJ38BSWpb7KWPbFiewV9ArqDEi", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9tCrew7LFAM35qvUKq84uKht5e76be4n6bf8ShoPQv4bHTCmEsPATF485aP5AavmRaSfawcR326dFRDaAJ38BSWpQ11fmhs" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BdiQtJ4M9FHetfKvcJcrycdRVyQAU3ENGAKEb8DVWGgGTq5apYtxFtGHds5ACinGeBBMwMk1igZTLH4aTVAbVhYFUqPjFBH" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BZWsbwMuJbWPA2vJFf3TGxRLuNsNZ83SAjdSVxH6m1WnaEMyymRbkUbg4gzcAXQJet9oG3UmgkZ9jRdn61Rwf9uvE9fa5Wk" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "Be16AKvSXfAMy5JLNMsAek4rTXRTAjfvq3QznnJUmBGgVJTQq37RVm5jm6xm4eoinPPngzbtjKskAJz16nsUdzWGGJHQeuK" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BZ51UZZPkB8Av6zyBsxHMp5MDyYssNtc4J5UwD7FdjrAVmfNMVZgFSX9NbCEMDp1BM4vRwmZHLvB4h1ySBrcdBQcSHYLBkU" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BcSLVtf22Cc6FRjmCEJiuu18mx2D9MbSNLoG2ZxBQRE2RGEhC15rg3cKiuk8yqnCgLW3uDPNbb1SwRzKM85L5nznGGgBngC" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BceJByV5dCH9aQ7YPkh355XTzuqiSmWsi8PX3HTjpDadGz1dYBQf1YAgouTo8akR6QhzMyYmvUrqKcUQinnkYUgWBGvTkNk" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BfjEHKnw7MaPQoxQmrAA4F2na5cJS4VgSXwcz5HDFpPw7pq2RC5staPRu6ew9zVLoWNE1h5cteAT56hqNNrg9RiM93C8KFj" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BYuQHhch6Yc7Ky2FPBtcewUuVquZmDaXWEH9CcMxQziuYKmpMJNka6SS3FdaTaVCr1je7ZMcneQJQQ24EeK1gtRmKz7SuMZ" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "Bb1JeuhRqp9UozDcoHutY81PSUoP4Sh616Rsk9GJMAZURC9XfwxRozq3cVtMghUNZ7Fo87yx5abr9Eiq68GQKQsW63LnWQ8" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BYo96tKG6TqepEaFtRs1oRaQbAvoEDJKycr1DJNvQFHkBLKhj2MoXcj2EemCZpMDo1PwXNqnUpQWvPL2uSV7uKWCLV5mx6s" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BdjzwX2MLJLLEBAeGZScCjSzjVdf36PB3TJ5QrFu52VS3D9D3yVuAZNcWy4ZByFyg7J1nUBuMBgaNPkM1Rb8FYDz9k9DAvF" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BZadWfkbGbJbuQ9wzP2gzDd8VZuMHS91aZFm3jgTjAd72ytadgowC7NcXmXftt1GDtFkk93WsQ7HL4QTaWqhmANWPJtGQVs" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "Bc1RHerzvrMGq8X7jNBQhZDNemoeGmdyG523Jp782Gxt5Qq2EMH8BgJNekumbzGpXSYo2hsqKUWPFN4D31fCb7XFTHTuXFe" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BfT7kvMfkSrTAu9jAPEXrSRHQbPmh2eqf4rC3edQzVY67K2YmCYz38G85veP7nc8zfBjadxr53vueQUBJWjSP3112XfZ881" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "Bh3cF517e9JJGdZqjnGYnT3LYY58VpXxaKiGsWWyMnGMWPww6KytZik9eRkm83ANPU1wAvF2KQoGEXpqMWwLXu2rLbnkdjn" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BeAMPoAXkAj11RucmnSTp3GU8WcZByWJoYekAqKhtvR4hAv35ixp1tPfS7769Bzr6MCBeuYByihrRf4d7T9nrBbsEbyaTAq" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BeysnSvEB3Y5JK6UQQVMAF4ZzYv2mk4GDeNg7KjrNfE4ANMxxSTpPbFN9a5bahaBnBTM7BnAeEX9n36sKadCXeBwN9TfzGr" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "Bd6ivu4LGqCDRX4WYNxscKSs7AtwNke4LFLf1CMcXMxJApPWbz5yUytZFVLJ1DB26Q9utqSBSK33bcrUPGV8YjiDCJNMAxZ" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BZM8qEcfcESYHLGscepCKUj3BV4xbUXHpCsSYbicBRYw2cXUfygFmRURWEd5tYtihFTuHX8cLkXLdepd6FBCkHsb1UWnopF" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BfwDupTChGoQfvWt4EYPpaa4onjNWhMeUCa2VQA6rzQFZqfTuncsEgG1freg3sGy5BUp3Peu1gq3pZVEfeAdHWdq8SSxhbk" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "Bg1Kk722pYvJTPNJddNBJdSFFVdPSVpcJK9jNh4wVauBEg4Lmaoc8UKNMX9ws8QjT3BMwUxtamMRUgftbmegNJWKRHCzCZe" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "Bc28hgu8YHHhXNSPnxi1WeNLa622s41bpM7398x8dt7DPEXAudBokczZAFj8UgootNb4fzwVvgb7pCf19shRcRap3EhfxmQ" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "Ba4SrG7DXQ7W1xA3EtwZiCiSzYhoAJdfSiWycXiP27mwdvfvZ2zHKRQ1uQS4yBHbdz6wAJE6MXwhrM9NBMiBZ2MHHpZxHfA" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "Bgy7a5o6EBK1cHo1u28fzAhC2bUgrKqWsUd7PdS7CG6GZx4EQFMGsJxhVyLUQtm3qAh1s8Qr7EMEE5DaRh1MDR6q4R3mZxc" + } + ] + }, + { + "seed": "2d1f47c7cd47e05695aa7dbdfc8f765b99c323590f22a395d6d02bebb735d952", + "coin": "MONERO_STAGENET", + "private_sky": + "8cfb79f64958849e659aa78ea3ae1bf398c323590f22a395d6d02bebb735d902", + "private_vkey": + "a0df8e0bc04d7b1a56bd6866eec03349bfe9b44cf29c26a47753d6c41b51fa05", + "public_sky": + "814c9131f885fc02fc2d61a37c240b76e68132e91a24a5fe7fa4297970c77a41", + "public_vsky": + "156cb3d5824b95fe09ee826ea115e2fa5dfeb13cb0170917f553eee5778f1cd2", + "primary_address": + "56jLT5rTRTR1VxcifGbVBQLtV1VzXNP4QjZxQJwojv5oBtPp8KqTbYxjVVgdaAGQjTisskzrEsVvQ51Rgqz3tDF9QhDCuGt", + "payment_id": "43fd203e63992017", + "integrated_address": + "5GS1Ttfx2iw1VxcifGbVBQLtV1VzXNP4QjZxQJwojv5oBtPp8KqTbYxjVVgdaAGQjTisskzrEsVvQ51Rgqz3tDF9cAqhAh42nPy3bhoybg", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "56jLT5rTRTR1VxcifGbVBQLtV1VzXNP4QjZxQJwojv5oBtPp8KqTbYxjVVgdaAGQjTisskzrEsVvQ51Rgqz3tDF9QhDCuGt" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "77eTeGehU3P9dpxHXBM5Pi6vQM5YNaRTU79x8PTetMU4A2qzk8FQZoV96XkGJRX79K6PYFDTfUjQVXDGqomWfpqpNAeAzdk" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "7BSRr4FUUdLd9RMKQwD1UA19F3FUhxRZkCKuf1WAJwQciNf7ZJFXYn5dNXLEWHu9UeMKv1UfeBFCD9TW9ox61wvf9ptujdT" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "77AT7cY1f48MHZSo6FnAu51JSbJph3CwnTGCikBT1qw9AkWS6q5D1ek49aLj64YtwLRd65t8aa2wPjMJEUkMpfFKFL7vLTK" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "76MBmn4WK7E3kcBPYPMCqo3KKrafmb6kbhephCDVyHLpEcxhAZrVWHeWLhzL5Dz7SZESvNu7z6t4iXvGu22bNwrSFLUkmWL" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "7AsfTW3MhQDgG5ZzyyApD6Bn4jgSy426ZixAqKuYxt6cYyUajU7UEd2H5XWuB7foo3Rpku3nBU9P4eurvELmjXu73s3MQou" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "75FNoEiAeWvcWe4TVZP3SJWHtPFBg9kFX49VCiJAm7WK66qzR2fjXGY3VkRxmkEpffYmyYMFqNHAeay1W7Bgba6W3V7CtUq" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "72SaUEvsadHPejo4gYNxKChiD8JHT7RsNhaon8kgch6JE8E1uFjwGxAGStEE6dx7m292332G9LTvX1MyDPmcTP2yA6RHn9K" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "73bzegL8t9E36ZXgx6QXJbYytjnKMEGqNFYuKRt3yMdpc5pa1BrLGjsdPUi4VU4enPBg6cCBfdtB8bLyHgPsyn8KQ4sTXWN" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "794qvb6wdzqjbXwByTY6EJZRpKMMV4U39UDmRVkQEwgYR555UVxW6dgfwpRXAur1NhQSNfy5oecvsGa1EHr3ux5NF1YwhPP" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "79DSTBBqFQD4en8nhvVuNSRA5Etijhd9U2hg6drCy65uBU1YWYwREescV61vGCHH7SUBUxwbFBDa47wJB5Jnmm1x3bXvj94" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "7A75ijkVg7uK6MiUbjaZosCXP3uwsUi19iZBiWr7JYd3KnpNzSrWomDEz2WzT6dGaYRja4dLxTDgzLTEJECzJUJVFSmoqvZ" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "78GkfKTC9CT7GsCnTendMviVXFBLDGeDihpZT3BZKLbx1sbx7F2N6L6JyS5wPBoJPnUWe8CbTKCMBVS42cwQsYQqHzB5TAu" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "74WZxbaGK3vXXudfqim3dm6AtMFVK89kwSzz5QxdzU7vV7b867WQ1jbe7A55YB6yESFXuRh5yB87K63ZB6MziyBC9fnmdyx" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "7AgRj2JSJVSab89rHeNPbYHgVEu9dbUBZNPjSG4nBEEeQPj9kwjAD1JNfJk44uFTZNcDepmJjV7aBX9QGwRGYubPGQWVezB" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "75ZQieDDQnUe1zzJWpn52VfeTRGydCwvE19ZFZPHGakFR7egkqLShtpP479o15czCC8NhAT5A5MAgVLBNhxLmftR7yXaAkX" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "7ALmupjjJvS3ZEGZvY6fMfEwc7ruV14w2gHc75bad4AYipNNigfaUzhFsYiMvMe6N63URfjHWQLfJdawo8WK1Zp5VjKB6oj" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "78sozxvT88AbDAnW7f6fba6wuv9fjC62AHS27ySHni4vAbKDQx4ek7236XauSxW2py6sEF2Tu1oVt7pkmJxrN1nt1KrxLQW" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "79VmyaKyTc362j2pzRhdUn4xJHKGzmCnNbSSU284w5syNB4HyCZSuCme66u1HN5WMr2FkBFVCQ7RRTmn1L35YQXGER8G1eU" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "77jwK5mVaVVXt9E7yME8uh3qy6qp4HHTt5F1grUtj9wnYxEBbbc8az15wPbjBTW3tyTQ8c94opkqb69VfD7w8ZYwQCwM5bT" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "7AAN8VisvXeegmFQw7PgXo3bn7Y99LiDLPCCwF7gUx63GowWmA7rRFC3Gub4FYgQG3fNtdwFTTc8siJKERBcVGRv3dFVJZY" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "74sRaD9ekVL3e1MpR6u2G9ZwceYQ1BFBEMpcQjwesr3aPkrre4net6sUV7WUX63y83VvdkpaHTPSjh5mfSqNKTjh1rHAVGF" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7AQus4apqX7LctKnekEwMG4QMmTCxVNBni46h3NKn3MjBHANfQvSEnqVeR6xNbsD2NbCnrG8emonUEeqg7u5c79WJ9c2iJf" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "7BbDKJ3WW8FDk6ZDTFJh7pDEGMf6WzwWPh5JvAHR54ZLAnU5Eu6GC9Dark6Vy6mLSHLCbbsDKqvgaCagQhJeEvq3GrSFZKg" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "7AyYtuhT93aDcaoMNGm9S5YZ6deqL1gmB9hG7eiEsqhwHt1Z7Fr5nvuR1pcMYCB6xPUvzD5FjxMYW7xaRRcgWVaq6Nd58ae" + } + ] + }, + { + "seed": "e826f67e53dbff3f67b614845a0c6753d8f7e5ab112de5d0bc6a9dad3374cd8c", + "coin": "MONERO_TESTNET", + "private_sky": + "8087479780c26c7fb4cf576c653d6facd7f7e5ab112de5d0bc6a9dad3374cd0c", + "private_vkey": + "567a62b7ec16ae48319147bc06ea9570035d4792932f368bae09543c74472a0a", + "public_sky": + "567721983fb5862e66dde6ee88dd093fcbfaea48019c951328fa1578c7456900", + "public_vsky": + "48b7404d7c74845787195e9158069f648f6c96b6b13175565409a3741e3c9957", + "primary_address": + "9vShPRAfUtm8mA39x8y5qABfuiNYUHC4C4Csr29h148g13kprP7Yy55Fe8TiTApiLeHpZWBUUQkQCFSVZMusJiekApMHyjC", + "payment_id": "98fe317e7d4de1c1", + "integrated_address": + "A69NQDzA6AH8mA39x8y5qABfuiNYUHC4C4Csr29h148g13kprP7Yy55Fe8TiTApiLeHpZWBUUQkQCFSVZMusJiekFeonqDAjLK2NqSS1HN", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9vShPRAfUtm8mA39x8y5qABfuiNYUHC4C4Csr29h148g13kprP7Yy55Fe8TiTApiLeHpZWBUUQkQCFSVZMusJiekApMHyjC" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BaEqbufiX3yKR6PWx1mqwhYpnPC39C8HXBGqhX6MFyLtTcctM9X3M19MNszKACXsqqEF9AT3FsxRtHCo1SwUx4u4JM4a9LT" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BcJFyDaE6ZphPjHqJ6rNFzDnxhKNJxhbKawPFdZYEfiN6tESe9YdgurDhQdtnx9n55VaAyk4cWBKb5BmhqMeJ6DCMvSP6c2" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "Ba3Cb9aBpvMVLftoXvhMzUDKki7kmVdtihgY6xHeYcxN48sBfu1EBkaVPKadQZq5ky4uqNTfAdMPt1gDDzSkMFiB3t9LNNg" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BhkNngktP6CUgYqir2wtLU4uVnx4VY5RXafLmmL57xGS9zRJo8Kf9PP7H57os4QkK5TctY7zphMkLduKkdCD2AnMTEFLsxS" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "Bbs6zXGEpiw2jBmLitsbWj4ZpjDMoDpWaKsJpzqG4UEQaTQuNTb1fnRBMFr5X836WYQ1H3RfRZiQxJ3qv8HcWrGz91GEw1v" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BeLa18G5wd4E4TMNCUgmAkYwtwPUuXdUhKR2No4FBkKrPZZYFp147rKFwyMz4NWhXYYugSmh5wLcNYXzq5G1kzSdHGu4Wr5" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BdxxbCkH7ueSzJNbkQ6vqrPMjPfiiPqnnKt4TPky7SD757sdmex8QpPfHRiJPVUjTte2MrtCyeXksYYdJHJ9SKra7LMrYQt" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "Ben9iZqz5om5XxBUQwZZrpQtjvh8GFHMHgL7njU8HGsdUdiK9B8UYmh51bKoWZKkp8j8KD2JLDG8uHyhaqVQyeJdFjbf8hH" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BZUHg1qM79DKQFAT4va1Ns8kiGG6AkZZZSxMfsfw9JM39eEkBxGLdGJJwvTqvKCz1gSYSka4tNSPLJp9MAHkSevMFCmDAnp" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "Ba411u2C85WCVAtUHU33jLNJUo4xRQmcU5Za1YTUqmLq92SpQVCEpzaYc1rsbtHXUBgKRVAYQTj5whDaDCVb2FZZM5fNTZN" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BgotfrNZoUW7NJjeZtrP3LCdaNzU38oRcQ19pYJsTWHqQY1exyx9zXbJdR7jTk63TpJ7iM2WszNj8fVAv5gw6jdY2aaeev7" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "Bcn6WQcx9dhVoMiBzez6Bbjjuq8mSqSgePyhwCN6TbWHhx2nZ1f5gGM5ZpmZkLv51oQV37jsiCjnjdCVSo5qw37Z6TVmkjb" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "Bar8rgXUMCKhAWGCVwNQKxUQnvEgYPHLu6AACWDRN6CZfhagjXhJNVRirjimzaTYnG4hKMqfW3Syu7zb6GYPK6fAGPwnqeg" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BaU8SatiNNT1zFb9qWonaHTfxNCAoQMuXUMC9Kbg5a61SVqQmugouwcVBJ4HfKS1Z89qcMmBBRFNTMNKdHCoGEnwG5358LX" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BeWWuUXfYjeXTiaeoqrFyGgGR3deX1pvwYeAxaxyEY7h1eB6avikEyoLa1C399393iWm5Rsh7oY73a4azYAuFPo38qx2ct2" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BZavgsqXeXMBz8KZTQpi5x7mTEYK1v6mRaSMzwKCse3KMkUFzSbZrLMQSDAAuFYZuD8yELe1tKKHnKoH78hQSskzNtffK9H" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "Bh5f8RKXPhP32zR6PD3sT85RmoYfU7k1GZpKER94i3u1WQFpJ4pzWAmUaRhfaLqNxSBmTDsjor7E39F4R19wPjw3KPV5vpM" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BbAdnsh7schcg63Kzfs2uxCvx5KARWWRkHc4BFtbcJZoKkeyFaXMF2LLf6DkNXPQeBWpaHciGfpe6RDTrAbgRQpV2hSz4qC" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BanHinsetzoSegUYaoc1qadvhMoaCfwhfBniT7PJpAwFcKKeweid8GvAMw3nLYV5nydE7KkubGisdTmkNcgA7bWDVrYRP42" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BbZRWqPtnGQANAFP8qAsMkS98mN5axNxTND2JURN1P7yPgTyYpsF3f5By9sBdBTJtkeCcMF493zU1VmCVW8Dqg22HhNNopr" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BYtDBervrhsReKhePxLoEp1VpCTxXej2rBUhEnB9Gk9ej4Ee3v4iq8Y9PyA9yNQPEBSggi6yLXecm3od8pc46Dm9DJdjuds" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BYS3g3cTxJoDryoRqnSEytNozDSLBg7XbfpdRKiwMXrji4T7RMABefGeTw7iXs1CtMQ7gdAvAo3dLGdnmJtVkYjC2iKBZT2" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BgHCXBZrg1959u2jJdG9WNSyz5Gkjy5EK9LCvGK1CNqkUGR9cnvAzZajAR3MGSCRmoWqsbqupjaCWNgX5yf3wKcp11rSuGW" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BgS5aYsqA1JdXdv2rBAiiZN6JWu7pobNsFzX3BhsWQGvCJm3G2zjrigMFrmv5MYnMpQ9k4TEKgX9tBSoS7qhdWD47dGnjbY" + } + ] + }, + { + "seed": "cc73449798d156d31e8d8017b454f01e30459b905d285a7a68a8a39f3ed88401", + "coin": "MONERO_MAINNET", + "private_sky": + "cc73449798d156d31e8d8017b454f01e30459b905d285a7a68a8a39f3ed88401", + "private_vkey": + "74f23784712a6afc544dc82feb2c06e3b5f9061274f5e9e9b523a50226ff3303", + "public_sky": + "c66be01654eff68b4cf78e843724651b8ec8798e6f59ab86e2d1541df73b6274", + "public_vsky": + "75220d0403d34a8d6300711952cffeb1187b886270ced1bd31089129b26e8e9e", + "primary_address": + "499E7YfvDYyQJPfjMmyQxt5cLzSZQc19tPZZfhku4oUuLUnUnwCNWSMQedSkk2wmPsWd3sWgGtgfrYePuSeZDYgVJvFsXtW", + "payment_id": "8772100b55275a13", + "integrated_address": + "4Jqu8MVQppVQJPfjMmyQxt5cLzSZQc19tPZZfhku4oUuLUnUnwCNWSMQedSkk2wmPsWd3sWgGtgfrYePuSeZDYgVTWvysRwbcUZ3AcRPuU", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "499E7YfvDYyQJPfjMmyQxt5cLzSZQc19tPZZfhku4oUuLUnUnwCNWSMQedSkk2wmPsWd3sWgGtgfrYePuSeZDYgVJvFsXtW" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "88mteYgKzffYJ1Rq6irRBXNfT3A3PwTPbgzW8EkmVRV9CXta3B4QpaCCUdxtbyMQpeQzEJhzFJBVRRHq3AXQZFt29DNNR8D" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "852gVXzUWdC2N6jXfg5GQ3bFAvTUq7kGeVGpCfaw7c4dMF97W68tjwgPrKMaeuSsNzJm363HNFdP4ew59LCkksznBbLoS3W" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "82yi4fwzCGc92SAHbnGQ5KeaN78hNE31gXV3Q63PWt1d5cWGWr5VrVhftgYziRCWKhKwJHwGZ2j85PHEk8Eaqgqs3EZySPH" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "82ZqSxsJi9SLW3P3VbvKcRg3oXShvhsTaF7wHWT6ZHgDV6h79bfrgrK56B3yirNcjZgbj9nnVnrg4Qv2VrRFE5cp7Cy6PCs" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "83AvD5jjP2n35rJ6Laq3CbafU2YQpXNr5KfCEEG7SMEjUEtsS3CW2dn1uC7LNFSLUhfbeEaNfV9tuUCUMVE4JSHABZsT35U" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "8ABoDeFvTBuGg8yABwGB8VaJJBe4ZYhG4C5FP5eWxtjT6RAfZh6MB9dTbqANi5DaPvX3BCR6VAcRoMNyyfzpmPonSGAyR7E" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "866wr2r2mQ51GvoKQZedasPU5UScVxYf1cH8DMRj52epXLnbV2X7GwLgWjsnLZuHCWfwtGKva1iZCFQJzk5Fa6hES42aYek" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "85Wyjg7Q6ejXk4HgnsRRk3UPB14QYrCyxGj3ZRdMsRvRN5Pz25FXd9P1gYCuSdgE9LXcevVdZhgTGEV8M3Hwfu2dG6LrSVQ" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "85gmBVoVUmG8aVxuuXmo1VK7Ftw4F7aX1ipReJ1hni67SctMXhrWgd6BiyiqiPyEp3hHGwdL4wfMLGbA5ktLYFtgJmE2299" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "87gX6XCeREveaTvMbtys7DCsRSsj7hrYB3JbFwNRbwK1D9QgcD45WJTdnFM2X3xDgNAaDnHgUhUoJ6fHzJiGGdtr9hF1A5i" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "85obhxtAeeA5aVB1SHJTJ1HFpKtAcawNGNafoeJd1qWEjb98GsKUDgAjfj71D5iMZteow1pumexhBHKMicvS6jgaU24GzrL" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "86HowPFEGU4b3WaakZoQKK74BXEr19CsvXUYVgjeG2xAEZYjwcsfmvz2USeHk9ccZwDY43DVyFkPbgqaTXywQ4b7EbBz3Mm" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "89EE5gZkhxXWHXU4tEmtSu4LZo6kerTS7NzGBXPeDkDwJLySi6wxSMQdpqqJEavSHX9yHcUggwBCoBYR5ovLMWwjDEPfxfc" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "8BzGvWebEoeGqdML9KQd3FegrZWSMncZC3mTyZuNz5ivJ5uYpf5e3SGiu8UDpy8naePUAYtArPV7bXsVCCy7kyQsEiHCvmt" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "83DsBEDoQEXiQbYAVzUm5W5nc4f4npduCMPxDd4ceto7CsSsigap7xZ1ADJrkDiheRFTcHfDPDWbVKDvh8SXLruqVB7T6cs" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "8C1xNRmk764A2tvWsiLDba7KybjEY1XXSFLRL7KeqrVohjDxxwZFGYhdBnJWNjkgDGWwCkypxkETNH6MBc9YJc2YEs2jrnM" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8AGA7dUsnBaafvbrVs9wGMAnVBTaq3FRYAv3GaPqSRUo2XH7Z2k5h8TAu3ZEJdew5viuVG5dGw3HiGgkSpXRz8RY1NQDKth" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "88y4QSMCuqSAyENoEGqbiUFsQnFaKsPNzihDF2dC2BVgFFJbrSgQZqEB5KFfGVyTFj6pUzYMYvutvSFEA7rCAG1Y1inv6Ja" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "85nw852EreY2cpVE8dbCzTC3kSZV6FVQJ8dRDD2iaafgDF6ejBKufmWMjPijdPuvTT1KWvKY14tUwKagMAiocZSdQBUwYQS" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "89dxwH1jmcAUdLqMjFVCRDgP5pgrQPCCYcxrUKZem5QvUuwDQnkk4hcK2qqpFHg9ohgP6tQr4pndeAFJacDzDVHtLyj89Dd" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "88znTT9DPGgTnEh4wMpz3oXWMUmWcAw6nRzW5wMMjm2F65sjJrnHyFtcyR2b1KcdCY6stmMBvhnr7NF9vRmLUiXL4xRsFcP" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "85aR5AaWMfYesTfGvjuWofGfDoGzXHVP7aBM3DBSekKgYFRvMtoS5j31FfJezaH7ENPR76bcR7ESBabZd6yu9Z4m9TueC8d" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "8BqPyqLSK1Z6hEDKKpoCFoWW9YPQDvY396imVUAodAW8duVfyXGgScqWJFTcLzXoNvcPnv9NSrkVLJSR6G9aU57FRPF6L4e" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "83oRpitm1yaJpVncyKHP3GYGza9VisSjjiaKTCGKw8iBJemjR6sWsP71DbJS1MYWhHC9cwQ9B1MXn7Y776omtQrxJ4jEozX" + } + ] + }, + { + "seed": "4cda3afd3fffd6ad23d395ee741259540a3ff4fe60f5aecde673350676c24f60", + "coin": "MONERO_STAGENET", + "private_sky": + "bee277cfa1ac689d1d26c81c3d371fd7093ff4fe60f5aecde673350676c24f00", + "private_vkey": + "b1e5c72b041155af617fff9f77284421f4516280b3b802bb1098133e671f1406", + "public_sky": + "1bf0852fa3aa0a83fde342592f70792fd5e98170d04fb6a8ca58d75fe00204be", + "public_vsky": + "5c1940fa8be843d5578bf09a08b0623f66986917416f15a6d392ff2c965676ef", + "primary_address": + "52tZ5eq4AvmP5V9ZiFWnPa914nHWB23TbVEUkeN6z5s9YqjERqG8ALicgghTSidqdjBc4snbcQPy6UuRguFJ9jTTU1PD4Cz", + "payment_id": "fc50aa51f522a57e", + "integrated_address": + "5CbE6TeYnCHP5V9ZiFWnPa914nHWB23TbVEUkeN6z5s9YqjERqG8ALicgghTSidqdjBc4snbcQPy6UuRguFJ9jTTh9ALb4294Y4FH8QS9M", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "52tZ5eq4AvmP5V9ZiFWnPa914nHWB23TbVEUkeN6z5s9YqjERqG8ALicgghTSidqdjBc4snbcQPy6UuRguFJ9jTTU1PD4Cz" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "7AP3jL5x5uK7VrTR4jr3hi6RhUeQ49kMXaTBcjgRjkdMg8nT1yEcVoWbaweYouj4EAcetkVKPrBag6FyaSzB8UnSG3ufoAD" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "77aJsGguinrLcuPngD3WxbUXyyRjVPAmyJNCgi1VoTFu97j6v7JxZEdjNeRpD9pjJsBFqoei5mgxaK96fqQeSymjGdwWDcH" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "73SmCvVAe2e3qPJTAUorjb4XhfT8TVffSMs4sGgzVce215xnPf6EZeq8SfoTaBWMBrPaYwFwHhf44VW3jVUoDDWsDqbuEDj" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "79iUaZks2N37tjkAez4pYw4UF6XvC9icr546qpVRwcEYhmZ4VmGLQzj2EvUa5d85XUiyYejE8pJGtP6qTP7jEHp5MovvLuN" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "77AEzBRXDvYepi849h3LeW2YQKKfVEsMVTUQkUZZfLzb7xqHiVujcoDQ6kcSt122PqjokfjtgfhnkPTs1pXR4JNuARDp4fW" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "72g9s7py8E7gNKi6eLwQXNi8wp4hD4UVrVsZVtA3fKZRSdBmHzY5bJ6GLBTrofTqKq4EaiHwJeaGz7jr3ZnHP8xjHZZdX6N" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "76BhV1oZ9r55YBpA7eNSGU5wSNM5yvrmMG32qD9oS71zgbbG4XovFqz75iw8bqyD8k16P3BoSp3rB1X1mqT7JmkVDTn8TV8" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "7BbAJkd9tkMPrgzuuaWfvAcYhctrYmSZoG8VX4sqdjA8DhEbrj5yoN5YCVWVjQEN5qbb41di4KrXXbMjEP2ZmrL6NZSJWqb" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "7BfhaLaXZUhVTNwS6hAhCi3cYoSPEdTKMDmrbNHVCkvKYf1epunB8yHBbGjWfvpFA4FZk5R3MRPBPBqg3V9xyZ6CNTUdnKR" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "75f3oShoAgAFUUNMcbnMkTA6hVBcGuRQKWNZr3Qr9kwfcvrYpbGDEo8c2by2yAoA7EZbRHTyeFdk52TU6DbwU7McAAh5RGw" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "72txUhGYwidcv6D98L9JpTFwcuogXjosBMqUMD9GVf4V3anbjRtz4o1Fp5HGRSJTVpF76NKHFBw8wHQQqHtJTALxDXZEKdv" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "768cvrg8kTF7A3ys6U9fJ4Dvgzv574MSVK86g7ekvEgWDaKE4XLdSRcYvPt9wKZqVrLk3ps5ksnNticz68VA9AVn1bTrcgw" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "7BragAKoNib8sCyFxoLjQgc7WWkGu4hbHGYdYdEJGvedUgdGMJTBCG6NA9t3DfRRRoWB8WJvGFvBzFwxZmCcdvDZVSrHp3g" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "79wSxiFwcSbWg86SYSdA62ZmDSj51K7FhZa2DD6gEGRsahAk5fEFyWRbFY3B6kMnHeU2aWAm4YA4hR9V5sKn5vTZDXrD8Av" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "79gY8Puq51PdKfhmXBZi95FDmL1Z2RozxWqbjTYnRTNRSxK9Gg6UEE8faAbioNrz2RFAVRyctTA3CP6WiJdTNuTtDkgeG8z" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "7AQTHbfeihUWr9c7j1v4HE3KmN6byE1jVb6S4w7jPyQaSXtDsWrTV5jJimT3BWs1g8Fz7rhG4hsLP3jHRbvaVCczPy6hdu5" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "74gT7QsQU62NhfDjBBmVWYcQHiLxYdkVyeGwLpq1KpwxfkHKPV8pTHcgtUt6Uhe55kiHm9pwfPGQ1RciSxJNjuk4QvanAnQ" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "7AKuD6S4MJ3Z5t5suV9Xan6UWr4GXXQ3P9YMiEXEj1JGV3MZ6hY3JkQHSUanQEZ3UFRrMQBBgjbwZjgasFjLX9YeSpVrANt" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "77pZbxu7SoNQ38b3FWNHVN5bo5pSgK98YPNRoHqs9kFTi6Kv6AKzjZdSaemXxcfK7E4EsFFuAmnEuEeXbvjUbUECRt9HGA2" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "7BVkga71813PHvdHLRFkmDffBybYqJNgKRx3N3sygYvjRtpgbmo9pUGQbnXprPc7r3SP3WwMGsC2se8faFSTNYo2Lsc1dBs" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "7BHNY6sx1ABYLbunKKGfzuJuWm7x4rncWGhvg3X9VCVmEba2sJARgivRh6qFEYsgjP4UL5hENMCWmRpwW2Gy1XrF3gx8824" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7Bbu54Pzx6jivmd343EgFt5SPxzQkV4LVK4naLPM6yxMe9Mk7c1nGpfSzQm9zphoKaPMgx8yoyoEhh7rJ77zwm5PNSgFPWS" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "7BciLzoNEiV6yuFUjgcSkNTbipEGmkMecPeAh6aoN634b9n2LXb6JrxKYiC6k8SChZZ7xxEYM3nc6YVyHzDqNYEjNjsZqb7" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "78vsiUGehoSMpPALFuTsdfFcpcKgduDeFL2TXyb1t5YWftMqrycCtmLbsH4DrEurVGRwcKvBo1rh3b6h93JhbFhe5qatTXo" + } + ] + }, + { + "seed": "aa24b6e04a1243b360f3a4566c9524ef5989de2c5902c9b9c323be65f978249c", + "coin": "MONERO_MAINNET", + "private_sky": + "55b1119c5d969d9ad76ff09b98cc4d335989de2c5902c9b9c323be65f978240c", + "private_vkey": + "7fccdd685b76927f0ccfc0df140c923e8947368e6f4fc35fd28ce93909cb3f06", + "public_sky": + "2233d7f91ff83b61a8a8d69845f887bdec7d23686d05868bc5505a52bd25b7b7", + "public_vsky": + "d2998d1453564b812b64f24f666ec4e2429c54a1bc4eef9693f1646ec97a902f", + "primary_address": + "42vHQVAYJd8HLQx9xT9pviYmVvMFQJ4yKQNxBcSH1dUiXkJyvQMgmErNc79j8EFLFDer1Ri4dWcr2SBo4vzRVnJb6QKrAZs", + "payment_id": "3980900a7f953299", + "integrated_address": + "4CcxRHz2uteHLQx9xT9pviYmVvMFQJ4yKQNxBcSH1dUiXkJyvQMgmErNc79j8EFLFDer1Ri4dWcr2SBo4vzRVnJb8u914jdJ2moJGnrp2P", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "42vHQVAYJd8HLQx9xT9pviYmVvMFQJ4yKQNxBcSH1dUiXkJyvQMgmErNc79j8EFLFDer1Ri4dWcr2SBo4vzRVnJb6QKrAZs" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "843JWdriPmBevyFDPN7tPVX62tuZQjLJnNhWczg4GyubgguVH3B5kwZMQf5rrQCHqNinPCYZy9TqocTX7mqiV6PUMAJ1Fbq" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "84wEc9ocM5EejZWtMJWhkA2akezzyqA2tLhhfzsMt1zGX6ipknQEuYfDjWRfg2yUeuj71k1TGmEcq11dygZKpSd936hvsLZ" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "8AWyJssZ4H2NhpcaLmbw2JAjWAbuKbLu59dgW6pA9UtAEXpSpN8Ck7x3B1ac7yyA7tge9xL1SYcNpiL7ioQgyhdKEARNRAt" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "82vmVdLznB3S11qcpx2kdA4hkzn54mfRdHAERfzna137FYSNbzzLbpaFy9BUq8vgjCSgB9c5Cwnp45BLWciGQypZQZhkdjP" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "8ALKEgAZsPaivEb5DbvjgCQQNzaD84QemKcQsuSv96SpKKMuz871cnk6SaHe8bnXMTg6ACKNc11fiYayiskHjBfjDUsSZ82" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "84fGQX4jrGT6zUAdg2nkUYhpspjPzCTDoSDdyLujMfdYi1Ff1n4Z1oQdrSHDR6Tj9Yg1KhfGxZpFn97G1aPra9xBJbA2Tt4" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "84QbJTHjV78efFKjHUczY3MUpZUeLKDKK5dWRv47yNPkP9oFirhiyJDdPzV1pSbmTaaiaetCxwY55EoM9s6JEgiY9y1cPVw" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "85wEer1e91m8WYKiK8jeKQDm8MpBroyuR6AhfB82oYftb6mggbcSoKnJ179XcdcZRJcdmsQvJsu1zXXvV3ewihHKDcB3nBZ" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "884ekA8oR8uAtK6D8Gohq92mqUK5HQNsAUbYCFHL68THj9idkEUTgjrKmhzmpSN36jN1VcSUvDUub85EyookmqdCBihwAYd" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "85PJ34jtrD9FFe7Z1is5GEeDaNNpGkzJ1GUybuUkoXnpi4cCjir8JemMS45qUBt5YdC9Rj3xnEcuCeM9M1XusQTN3YCLfLq" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "87QEQd1Q3hsAUpHRhJ1F2F1gx8VWwgyJhauoRX1dRhFjcw24D1q9Bcv9s1MVLsC99aEKRNp2ggps8G8h9Bz8KgzG9SQbSmK" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8BvFVNrdqzcRHTYDxEfAZAauZ85GLraUcDtNVstgba6EKErT57M4H79hbpLoUqJNvh2dgLrpSoyVucPgS36rnEPyKVVKoLK" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "85SL3bu4YxVB82UATtdZVDPztLdrdUdxHV1v1LFHu82kEcxsU7wGJRKTiwQqPBrnXWhx3f8mErXSa7gyoLLPST73EDnvvfR" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "86dwmp85mAZR5y6H7wwboSJvZsigKV4WpfCoZ2S9vAdHEUfpAbb97CmfZaSgZvBZmvf6x9MW677BYATtkxq9TZBUB1YLxnR" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "89SoBWjXbbiRQoq179egtREqhB8K24kkaPtWUjaQtZSGZEAk52MT6RBU5dAp8F5KkpFrB9RowhwqveQeAsjWYMbuHy8X6ea" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "861d4G1nxL9iCA5mmDUgMrKeeEEkV4uAMZR1C96YbTvVL3B84g1zfFrYME3evUFAHZWJypCge86FY9CXaTjjvrMn6mEXxZe" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "85N8sdKgWDJULjKFEo7CLaLAMGFnqn3YuRaXYVZbYqtbHbEGjCEpfuMaPCnFK5AR4L3cgatnJrr2GdrbYG2pZsUHV9v8MRn" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8BAKJKNEmPhJYtrBXC4bBhK6HRmMiDnT4gfZjrbmntwViscqmMRnJkCRNLEpZ8ibg8gM1akQJHdQndkqi8LPy5C2Q2XGttv" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "87FeK4eaJmY6gtdzi9WkV86nKoae5cFaZYWvLiduhVEtMPj1dqBKoM9W1XFgckRuN5E89z8jn1ioFfgGahVaKiS44UpRzcH" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "85SJFH8vyvGPJRXBrVnUYL7eNWJJvnRxLUNAQPwN1YYpZho21GPreX64L5UB2uWiWi1U4kLBFwQFkEGSqrx2TdxFJmV8LHo" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "86poNQaDgMRA8gUT9LuDVoYffY1PvB6LeF5Jy8WCmV51UAXk3MW6ASydc5MGU9QuGUdvk4Cz3Tb883usuRw6nTHR9XrCHWQ" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "86sWBRjAYCxhkjSQG133N6C8NefWp9wXLehexG3f8KnBfEdHjnH1mfsZBYhCJeBk2ihCQQuUWLTQwc7eq8Bm8BpNQWbT82C" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "8ACid4AxWvxRwEZZKAKAw8PxqeEAqLU9VQFN2oFJsqMijEJHy28nud79N6NYbYp4NPGXySkoYugdNgMnBHnchKSy2Lcunz7" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "8B5kxUu7u9d99aVhdQiE6kJyKVhZoo66wYYDScjPKSzYVJJ64iGr6QaZwNa3fpD5Ja2SmANFBqFqcGUjxfJRfgGT386FU3H" + } + ] + }, + { + "seed": "ddde7fd761d2115b0dabad44ac875e24ea02c3653381a11366e60a4099954338", + "coin": "MONERO_MAINNET", + "private_sky": + "16639ec012a9da528ad4c65b109ac1e5e902c3653381a11366e60a4099954308", + "private_vkey": + "8fcd960a798fa45a10459929bafaf38fc77ec74c8a3f905b00d1051ccbef1d08", + "public_sky": + "2a5bc1ad2d8465e7f22770b490ffaadbf64989ba3d4c6fdf7386c424342ed90f", + "public_vsky": + "00c7afc79e58e5d589ccafc48b8fedc4414c4ee25ddd1973468749748edcf386", + "primary_address": + "43ED8E3xYLcfoAd9DY7s29dnudsqGqX2EeNkvUTYEfmJ3WYoeX6myyecib9izkT7oAZpvMxk5KbxkLHKNc9scd5cGBdHE4D", + "payment_id": "10a3fabc48c004c4", + "integrated_address": + "4Cvt92sT9c8foAd9DY7s29dnudsqGqX2EeNkvUTYEfmJ3WYoeX6myyecib9izkT7oAZpvMxk5KbxkLHKNc9scd5cPRbiDCSxwJBP89ifbW", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "43ED8E3xYLcfoAd9DY7s29dnudsqGqX2EeNkvUTYEfmJ3WYoeX6myyecib9izkT7oAZpvMxk5KbxkLHKNc9scd5cGBdHE4D" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "88yqMge6uUsagh7FDZR8ikPVdcFa8uetr7Mr4wZEysAG24zEGZUqPi6Uxmb5e21PkrTNQNLuWNiPJWjcKgPAD5sM1MJJqqy" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "88MYUi2LGXJ4StsfxhLRHNKJ7F9WQJA7pifLgi7hzVZBYXDAXBc51hmWAeqN7jhgfnEeUFxjETknNTzE9W2DSTKA72HeiaD" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "82u9bd9eHJE9udMPdLVGFN72DXyxSjwD6JmaP27cuWCjSnetuFzGKufWsFJCMWgyCfZEt1FTCwH25DTVYcuqt9qF3i8UdyT" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "898meEHKHcB4ecacDWgGU4M7Zjj8oM13mRa8VEUHaf1qGJXuh7Qej36jaeQ4pAwMENZ5jxsWpQBFrUfQUa9prPX7P23tRWo" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "83FFR2uutR1HUSGVmxzsVUCWXgpKgd2ZXhL9GGH3NqoYSbGYSdnbwfnWHrhFDeZmEejNjpHizuLKwdUbEKkXq4WjTe3FGBY" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "84eeFJUSf7GZ56EFyJ4xbX9TxYp56TtFM66Ka7zKKuTg5hAPb1UotfcQNEU5Q4qVqnHexyaV184TDXXXGPnJygs4GePaaom" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "82hdWZjig9hACyGHcN3QmcfsBrJBQjtq3fwT5ygwGswVHsukzDNq7Tg5GAzpRK9dJ2BhgKwS2Tne28H74ND8Zdnh41prabB" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "82vTDzXRE5cTcfbwFx5qagHdq7Tj4TEpxWQUKAHgTn4eVoDHU1LdQM27JcopL47zs5Gakk5NrSYoCBVEnNrnoaJz87zKCmz" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "8BwBBKLJmcKYrEg9BThEEwVPFcbPtcBp3K3zwyM7itLW2WNhhn8kVz83CXuZ58aKyxXdvAK8GYYhV6MpgZ2aPtHWBwwqia5" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "8C3vxJk7aCZD4ykW5siCVY2GxbfJsSdFwNPdpwSoBCj7BWM8za2GgigPmkrjuaqZXo7BsYHPNzt1FY5Wz76BJuHZBjKiyuv" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "8B77kqUT8kmWBG8SPuhueS4fBuZFNWeniAwD6Aa4yQFKcAjwsX85ghrQCHSSQUc6zpVP6uNBx8fhHUfiVuG3b8Ca6XGGEvw" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "84o7PRirpqhbxHpXTUtX5YRSqhgsAVn9sNSj4cDp1qMVTQCHUeWLCn9jTkKJ6NVDEfBLXSw4SsysFYvzsfiFPDEq6eQxs4J" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "86SzzrUawN5YivMdSak3LLGLpFD1eHDTv4AeM7VtB2QJ1x64xX7dQhmJuPkkpr3qi9Vq7SvrdH1bTWxMmi3mKUzL3Edd9Vo" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "834xrczNRCzQTWkc3wFU51ZiPyKNx3MM4Wta2P74ihQLaMDj2i84TyWL6idMEm9gVKZaqdGJ3xseWjHAEexgt3EFDDvF9Tm" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "8Bgti1R4ykubMaqXLELAm9iqtanDKMCmW2QDpqz9k8v8DNAyuDBe1GL2thTY1byyvj98xWm5Bd1RU8RkXy9GBjLh4FdjY21" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "87sSSyKnM6k7embFtYb7ikfNu9L7VzJfbUotZxk3QRHX2B2c1mpVitNWgVK1jXamFXQEaWFTicw9iemVrHFjzkMB4Nus3jc" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "85Y8p58psqTUyNvj1vKUAqhRSiaL6jKfBAHaWP3c672xg5CX3pWjGs69VsAfnu4jFt83MEuk6YYsm4DVBYjXFheyUM1wCVo" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "86hbWfQyrmhjjU27eqTYMnjHcWkAMvQhxddNzuBG2DdjSyLPLqx1ucrEvRpY62frCCcPiJ3cRRXcP5Q9utQtVrQCRhtWMDv" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "865DNEecaHZZX7QHmrF2V889t7hcozu2HQvWXwaXG78m3vLtdxgXSCZdQciAG7297cWRWMz6fW6JbP4VHyzxtZ6a9FMm39J" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "88H9djjHAfJAKitmtZ6DAzAu3EgSd2E6DENW5h7BQ8KFZwW7RgiLA538AG5AMPtizrPg37Tn7Qoh19bx2YVryf6DLRMxw4y" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "89euSMsYaDUanKLPK8qrd4YjUYMaX8U1t2b7AkMs2EAGJRPusiihftsgqV2SjProv6G2dCcw96RP8GR4LR7tgj5n7g6fQgv" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "88D22CsKvkt28hDkGkHcgk1nNheT5o53ZBsc2eWtRfXVGzS819TbiNqLrQRvx7fcXs8VCYLx5jUcnVGEArA2UuKPNm2kif5" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "86PVXYLdMzoLZ3Fm5gDXrNKcod3iredQJ3hhSV5KoUdybMHyLXZjZG5fjmQeFAEvg7iu3qgbznmBCJu6qFoqxKcc61RxSV5" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "89pENW2k6bNSWtN7WtVTpXSsRAHZKhppYPbdgcknmx72JMBqQ4H7AyJQWfQpv93f2FHNMhTBM1UzJ9tEidPGjn12DuBcwxZ" + } + ] + }, + { + "seed": "4475df1536909500d3e4add86b90f7233e0335c1cb88c465b543c4728b311ccd", + "coin": "MONERO_MAINNET", + "private_sky": + "288659baf9eab8dfc68a1235fcd983293d0335c1cb88c465b543c4728b311c0d", + "private_vkey": + "6e32f270aa8f6cd7861c19cec94e6b6e4710e5e85ad91c20fbc8adc970d91902", + "public_sky": + "a3aa44cfcf6fb79efb2dbc1e87bfa5ac86b674d00d5323747ff20b917dfadaed", + "public_vsky": + "5b18b77a4470ff631df37dd2e83660eeb0ffc158d8ff08d81399dffdc6120f65", + "primary_address": + "47pqN9kwVnvTbKMavbyWQUVrineE8k6QrLVCFAzfRbzhgheeLPWUgsgHaZRZkYjT6wgvc8F6prS4Xd9DNmAHrWKYCVvSNL1", + "payment_id": "d62e35b7f27d4412", + "integrated_address": + "4HXWNxaS74STbKMavbyWQUVrineE8k6QrLVCFAzfRbzhgheeLPWUgsgHaZRZkYjT6wgvc8F6prS4Xd9DNmAHrWKYJ2whFRt4LLb34A7vRk", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "47pqN9kwVnvTbKMavbyWQUVrineE8k6QrLVCFAzfRbzhgheeLPWUgsgHaZRZkYjT6wgvc8F6prS4Xd9DNmAHrWKYCVvSNL1" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "86FbrhHYtpD9W17dcY1RRE3p9w64RSP5j91j97SEW8f8MrCSTagKRwthjW4z5ZSiUGECbuPp7g9x74NibURs8bEi4jpge31" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "8BF5HnDzjQnjaVxXJdfYMjdvSUNKGJJYH83q6NjnBFxQ2qK6aunH1MmgYofC1HX9Y17hSCfGhCDeTgjodmucBgZZ2KHth2c" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "889XwDnAQya4SGJEoqtexDWUdRwq561h9b8Uz7C4Eh34BCbV2ixCLRH1F5ZtHSYPWVWtb4xRpfgnfK7uLHhHb2VMU7rGMqr" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "89eGy7bE5nP2Cvmui5QqNfdi8AGyVyJo2CA9qYCjm17rg7mMA8Zo5RzL78tXMsDupdPRQb6ago19jRPC4CXZwWvRBAAGmof" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "85HbBJBcrntD7e4XT3CMQgKTRLhCPocYuHqRT7UnwZf81jRAwNZbgNyXGDAstneYNgdoHFBUt9nYvAYu62rL4grxUoiP6CF" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "8B6xxE3Mus4DvdpouJveD4GW3g6BLUEWxRiUjxn3yvLHGt1Z1XAiHPAGC9x4ssueqPjRKJjnJgkrBeAfPYjgWUc7NyKtS1P" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "86LxkJooAmNG5GoVPYYycCfpAqQLWcAB166Jn9muA8YW1aUGa5YPeUkD8Mb4R3yzRq1nvxQTQo9UmVUhDm1TmaM61Nzf3PU" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "85RMC1G2csgd1ssdrWyuT5XhUMAf1ncB59RoKvuTkBi97o6TfFQAtvu2DdapPWcPv9DN8QEzfSVtPAKWpTYry8iGJKjapYU" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "88TzRfc4wG9fwUMk5YgDwr3twzukSFom9g5RoKdwoiHA8cv9XKNc6JVSAPMNmNUY7TDkE3FFmUYEjdw6AESVVCDjEBMpnPZ" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "82bEYhGf91WUNNLQJQV6FyKZ3emAAYy2j1XFQU2sLRwn7wdmoprLDajdznDA5o4znm6ricu8JUkH3FHbsyqaoJ2PThFRaQg" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "89in1PQ1wqS6MAvCEjDEzSRusCj3DxS99WcenCyKREYYDxdUzpmFYm3MYSbWXDea6ziB6pC1W9uH4c7THk1nv2vVUpJwDJt" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "83NovvjJgjb62VEjWNQ1Etb5DYcBhnwMKhqRq6vWMELg6Pzf1EFpjGkG9FKXkJaXpi5iHi4WmhpobAfgRuJeFUhvLFYjmub" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "85E11nYJqzcVZ6e1qTDhBhTjUqSAo5k7uQnyTVSgLD8HGYaiDAt8w9xaVhKacCwgmWeLuwr5N4UGECZ2s5ZUohHhDSmciow" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "8B8CHmirGW7gxN2juRMhyVNWZUXPQM1Qt7KW6oCLnunSJyt75X9HDFWhbD6MWQZMhmiPaTgDhGHdDVThEqqUajepLcPwQmX" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "83wfSR5fD3wVwnuPUSUJwAWFRNYks3KKRFx56GE8q9U6b5wbDJrsJGg7gQr5gq5j9dH43LDhANXeA4E4qro1qNnnBgu7viV" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "8B86hebcmM1QD8oLZk7c67QFeUsdqtSP9SpYBNKiobxx1yBwX77WBJjWUvKpZ7GYR69j49d9o77C2EGQTFpdzYoCMpRnxts" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8BhA2iwKCBySitZDQ6CLMeG8uANr9Bxq6FjH1po4ZyMsgNFS1NjKDEBYKXtDcS4v7jYyMpELkcXmR6wDH1A1L9egC91LnXY" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8BivpM1Q88QQKmfTTVcFjiERKXpkJmyvi1tGkV5oLSW35sQZvzYajn4TVMcxKa34eyRNYe3SFZYizjDjgMLZbYanA41xV1N" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "88Mqggm1GKhPETokAafffn6vSy9UFHFSCKkpwAzp5fFEhN23rR8gRPt8h9YDV8GCBsjDbuudYXSq2AoUYizCYAznFTMqFHL" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "8BPG34RB4jVAYHFtENLANwaaRrDjiHCmHEiTMyC2SumRTZso1v4hZttScdtM1h4gCc2psg9YK2z3k77kkhbNFjWZNvi7TpT" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "83FUPpm8E5GMqKngEEo8ywTxRJZiAH6WhRDmfZLVhcBnbZXiJuMJdb6PDrHH9WWeozDoj6pSfQpkjPYifHjVnVyPPdqEDEj" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "86X7pvKU9QK4HBEGp96dS3FYbdZFWbXVg5kdYjJPVXnuPyxMZSWLnaR6AqfNkmLbquSWiGFC2AjnMjWMQRUCFNmoBvPyxD8" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "85oq3v3KJEkTtVDE2DiUxhHji7jCR7dY7E1HJHhGeQaRcRVzTeZWrQcEQMV3sghfrv3PWa8vDaA61DtJbQZS3GG3CWjusCT" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "85GGUDVuRSj4c1H6LSa29aE8q9aUi9QAx4Ev9jRyGoAzPsBF8CaDU3KE8xnmXeSq5pKFHNZED8FLv69qNMuYEwnMFSbzSj8" + } + ] + }, + { + "seed": "865ed0a3d70f29cca2b91d03c5e88824c7e272fa3c0db18232c7d740c783f34b", + "coin": "MONERO_MAINNET", + "private_sky": + "d20ef92f6e83df6b49463f774a010dd1c6e272fa3c0db18232c7d740c783f30b", + "private_vkey": + "dfa9353a61fe998bbacc51cb5bf675b8cfeda620d5e0d16cea6505f21c27ee01", + "public_sky": + "edfca7fa3db37fe314dac0788b67e1344657f3905c82149a3f4cd76f899901f9", + "public_vsky": + "9aa69c78d4bc598fcd415569b0c52f26f77416ee875f0106a84e14aa7390b4f0", + "primary_address": + "4AeBx6QxLXYeyyXhhp9Hwv9k8bA95QZ39SoPigWGY4ZnikUQS9WxeP2R44L2qeoRVx7X2T2aq7JkG27axhDJ8Hi3UAdUMNg", + "payment_id": "0d96576315a05a37", + "integrated_address": + "4LLrxuESwo4eyyXhhp9Hwv9k8bA95QZ39SoPigWGY4ZnikUQS9WxeP2R44L2qeoRVx7X2T2aq7JkG27axhDJ8Hi3h9pJTFest2M7FVXCPC", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "4AeBx6QxLXYeyyXhhp9Hwv9k8bA95QZ39SoPigWGY4ZnikUQS9WxeP2R44L2qeoRVx7X2T2aq7JkG27axhDJ8Hi3UAdUMNg" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "89EfQ3d6KboaAf5axVToecZsabjzB76Z4GdKuf3WezWA8zkdwe6MG3BELrz2wF82jwZNLFeWSaSkpRj4T2EEh2Xu9ryKTgR" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "82kWGirGdfzAsSnzkj1JxMZLKEDnnQan4hzb82ANQoitAmuqzbZ9TQmZM8qYUBHvKhYewZmWYY4FtDmqW3CFYcsPENdpVtv" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "835njQGnPi7eU25rtKPHwR4oUHY4kkQ4N8tM8Jy9M29W8y1HNTcfBsdETeEv1reftaBP9oZYBjh6Y55EvPQEQZGKTqndcQb" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "89oAxoFKcdmM87ow6aEZc5ccctRst8JD65H2iKX7k2HcbXM3j6xSgrTFjAvqKQht624U6zSouvyXFbsxH2oSVf7g4Kghc2N" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "8AmZUuMKB6X9uvozHQm9X5MkuuPRZAMTYd3qiY1eiyZWe5VmmqK8XFuLkqQ86VWTk1TLqzKigTjfaJR3S3jiE87i1v6rgxp" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "84LjJSX9hUY4FmgpsPc3vCgoyxSQ3vkFoHA3T1ydoxsKP5phRk1dfnKSQkQsshLNst4o43LxzidPsPWV1j9rtQF35hhemwL" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "882jtyv59KJ1MHNMbsP51ggfXHvNdpSwjRKcFksLGod3g6UD4WJkUJKPKE6PJLYYHQgDdqvaemHAibwH441sgx3XLgBmqzT" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "8AqySoXRXXFHqSwrTdnZyQ6zcg7NpeV68cbEH4TWmf4j5rVqtC99xyj8j3XgadcYvBa1bXo2j9LTBXWcWoVuYtKNDrPAmhL" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "86dKg7veJ372Rd6P66qicEZMfcNyVYP8B8RArXeQpiw2Tf4MZneWm1XLGVkCHM8Z6He5ZoXjuyBM26WY7K19isxS37WJTX1" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "883nzwGd7hbHTWtPPPdThdhHKTL5J2CzoHARvPmwDc3yYvFTkZp18MASvfu6WSL7kNDUyWEmSEByXZLUzXod9uD2PFkDycH" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "8889pNM67P35PPUetpx1EnH7tVRfaaAky24K2NNDN2Hu8imhPijHuHvNhy2Rcv8WYfQ7YGq5HFc9KEYfekzCwFqiT3MmLiN" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "85tpXxQpbLr5qCS2TUn1D631AgK9jktzqEk3Sf29FXYSXBGJUpcYgTr2KeRU17rzasZT78T4QyWUJgpUiVKZP4Bn6Ydorkq" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "85t2u7NaVcu5SBEGGHVzeiR3BdZK3BqwX72AReWcSayZ869jzvJ8MWL9sFqGne5eVFRYVWAtr1nbzatAAk55MXMZEDEMpSq" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "84uiz9nADeV2rkzohvXnQqETmrSuxnBaqVb5W6PxbUWwQtQcLX7TzC8Z79dF7AxSvMXh3QvGTNPhLUum2QCm9K7cSAMQrgK" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "83ruoxiQf4iRsdXUjGrwVmREAXUd22EFj14wK3RsozfuhRHjuxKbkJkUejFXdNQG7mGFWwG3E97MwNxYcDQa7ZYR4Uawtbc" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "86jxK4hTfioiATQRbfKffBaqrfWxXfsnK6GHxCw2oJYS4UMn4akEuW3HanHkrFQ3YLbpScSfhkYjYhPBLfsKq5RR78GeCDR" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8BwRpGCApEHWDmjmAnwdiL7WZ9vxw4vMNAcdV7zyPH5F7hWU8s8FBUtW6hb8iwpW6QbiiUVHcg2XfHbZGEYaLdLVPsE4maU" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8ADqfw78AeWCkgZAabMNinZMX8xMc1UveZtYt5YeuKq9SinfWsNM8S4jeZAmVSBFXsZtK2ZpiiNvWgNDXYFFu2F2TD1CCNz" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "8BRhv42RX5eTVybisioFe8JP4sbMLtgtp4QnQUQ3cSWhMC8MZgce7qB47ALavGyvNh4sLE51sUuEoLeSH7hotXtnSbzPCbf" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "89Mb8hR79mVTdXFfdMssMQF6GZUYVESV4UoAtL1ibz12c5Lwi74AaTESpmBZW3SSmsCVbSSTtLCugcT54ZqBymE94fBbhRr" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "87ZqtyhMZBaFbLyPa31EoyXUoLzsxDf5RRDjYsAE2D6bU4PQMAQE51AiPVpnGSbVAaikneikXW2DMYh5uEtksYyPRVoj21U" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "84wMf163vtkPxK28asWtro3zw9pD7ywPQbK9G6gwSW3ef8tuyTx4s69QZTtFs85vM3CDdr1PiAVh5DAwR8nrN5xR7Ng5y5w" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "84rK95Co3dM1opmFj8vMfK7ZsHBS3an9EDrjLV7F4SECSkPpYmsMoV819cM6NZQnRkHULEZmrZBdWBweYqGXcfRr3GYV8ZS" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "87yfpvhoZxgd3xvJ1wf4XvFT7e4atBJFfRe4DexRZSNq46R7ViF7BxdDJiA8k65fyd6xQJHGq5TWJcKBcZoQvV3fJ1o91LQ" + } + ] + }, + { + "seed": "ab2b4ac3d629035008b8ae8d1bf1fb78221934ab7d8d9a7c9adffe91d38720da", + "coin": "MONERO_MAINNET", + "private_sky": + "a268ce0a802114d725c11b47cd40a969211934ab7d8d9a7c9adffe91d387200a", + "private_vkey": + "3791aa90247e076bcc8539dc0bfa50f3f558a5f1784f15fd9a042834d94aa902", + "public_sky": + "ea1e2f12edad6bb78dc56fa609e3cd0918abd112b720ee65d4702a9671765766", + "public_vsky": + "f48d73db7d6a2578d8143d3d5ab52cb8b7d97ca37279d83d24df79f0c5d6bdfb", + "primary_address": + "4AVgiyFZmezXhhhcrKAnt42XFHDchMLtuJ2ss8fYzuMgJDo87BDLrZAMDLeYR6a6pTXtzroKkygfHBEB5S5uNggcVM9k2ED", + "payment_id": "7da17f81cdd58563", + "integrated_address": + "4LCMjn54NvWXhhhcrKAnt42XFHDchMLtuJ2ss8fYzuMgJDo87BDLrZAMDLeYR6a6pTXtzroKkygfHBEB5S5uNggcj4mxyqqVKmeCG3Genr", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "4AVgiyFZmezXhhhcrKAnt42XFHDchMLtuJ2ss8fYzuMgJDo87BDLrZAMDLeYR6a6pTXtzroKkygfHBEB5S5uNggcVM9k2ED" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "84MNoCVcYJVh3bkdNDxizmEMXeG4V6MMqbKySvoFKbEdY2eeC6B6J8dPk7sEtnYB9pT38svwDzZ9bWjfUrtCQKfp3JDQQce" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "86Xsi772ZYVDcYpGKf9iYHYuFf3cfdGXXPnA3QxhZWHzPUogUoqL2EpF7oT1NSpbBz1FNaU6wGPsBEBdUNvFcVZpHdKkvKo" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "8BfPQWF9gKiec4ViSyF1751v55xvcjyrsYo9pMB7ynmkEAjz8wfd5oxbZL3XkxWdPH7NwVqwwHbnRY7uPy3A77PMErrfCdy" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "8B4ZYySoEVR57GoBv237QFVnFECM8E7gkB2zPZnEKEaeXs73QDtjcN7h2hXwNgdBZyWJPER6Gvr9papmgt5kpPNcSJ2sqwa" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "89ENDsXW8WfZxo1yKuonza6FNFSdtiQas65qJ3dZsJWUZ8D4jqAfFRcVeJ16c3ni7iGigt4EBWGaBGjGPFRD9c3zReqqhZ3" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "89ujR5NZgktLTELuW3ZBaMTzcDo6KyTJ6CfVang5cDG9f4QyxFmL3msj2zv9uJLqyQZeU5pgo5cFr4fdoswaAAxv8dz18j9" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "89LPYQv4fCAaRnTYbn9Gur5CnALzi8KrxhUVyvm2rivnbYw6rREaKoaKzp1PZHUFxViSrBxVjWa9kH4XS9UUSy8PUje4TAn" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "8Abg6MaoLDvevMC2e1VEUvYBs19eYX5z6CNsmqFzjRgQFvqGhaiLpVjRqx2Sq72kACcovs6tmeRwHGmumnNFsc9kBBhQ387" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "88Es4xV28Fj6uQjC5Xm2NcBRrYZ2xUZZWYfMNKHvZpiZDj4qbGYgNP4W2zNVncABzLJp7EDFqZvRsEihJ9Pe7wx72jrJgUd" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "83XyC5vKxX8P9Mbiq1mZAYN4kUqs9Evtd2oq3qxvDWii99mZ48AWQK3ZUFRGqjMfoEbxCX3TVkbwMN9bnH6EGNVjQf1Rw15" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "88efEZiZ1GiCAf21f8sAWKBM8ojYTjqwpcYEZHiB6cVtKG4ij2mG8HjSQusMHFFNmEc8zMYZmFFD2RGEuNtW9MMCTkHfQyE" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "88b6hDuvxGPHJXzyd5tDvtZCoD8fprMZb3PcWnt3t6sGK6X2YsqxwjtEmsfVQxzMLBDTz1GCaZ2iQe7abpPKUXph43xr92y" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "86nAZE18Ev9FURKhbChoW2PP6kPQz5i5vdqm4n3R4XERXny2ie5WdGJKb9bLY6D3CYix7cPrSHXRoVogNfY5K3Kd7HXQp78" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "84g8bb7hyVeVWSNnTfVvb36nGgN9iWwd645icn1gDyMjU4e5sgKJEQk9S6TGZHzivcWaWUmYBwUgJEsMcrA86S2PPTgmKUy" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "8Aa9LpLdrwF38Jnbe361LBCzMhGBr7Nykhp4JMPhJ2KbTsM562RVJ3AK1CipJvS89WKLVky1kuEzVTLWQFCo5p22DSYqujk" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "82e3iMBhg5Ef5Jes2DqNTDGmv9ZeWZjPP4dYYEFb3qKvcDmJQw61qTFYdG8k1tXN4ie6QxPzVchVLUU3jDk6KA2uGnKWQh3" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "84hp2YmA4zMGDgqaKW4vvz6fnQr7raqsPQsE9Ex8yydP8FC52j9RAvaXz6YzPNXKKP5ESfHPjkoRGjhrRiHV5CyU6xEivNy" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8BJ8i2xm5YgT5nFDVxtBcT8bCvE54WcJ2j4vXEYqszYsjjc7BxvDMjNN3g1PmCftdb3vqLUHB1HVJJhDCKPKxz8XL35J3aw" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "85hGXLyS2JWRHGRuPjj5BG7g5PCzNKeNbVGixU16gn3TLzbknMS9dpu6jDXoc22dRWFBF1bEd2bmw4ZnJzfZkzxSFZXLhje" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "88iUYrEgRU7SqeZnLpSQQULMmR3t3qmxdHAfUpyePCuzHdezn3JF1Pc64XjZqLFG6Nbgwi8BzF1tM5ZziKxD9ife2q5emxw" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "8C2z1w83hRfiLnzWSdEWpaZoZVqur3grSTogLhjkiAteSfTkKaEhMd6gA3uGdcFcKFCYwqtmkbFG9CabG7X9JStdGvjEywq" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "8BxHtSeK2hEevCi5dihHtKbtS2cRa58zsPbomut1b3D1UJv4EWyRLqa5EzttQDXjf9W5wk9jK2VpVa6DmKVgDi9cBJia6C9" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "87MNUR3qCmfFQGnetB9BuxRr5Ht3Dn23t5dwHb9Wp1K1GK7YKdao1MQKmWcEiLufgBMNy5zJQPFEm1dAvbn5fNfdTsM7CB1" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "83ngR27u4F4VXcCnCoQdUGWkL4E8RHs2ETaobp6tjXzvC21aJGQ7dJaTjuJ3imhb9z7z42wKWx99XTFhF8tLauGXJ4tQQK5" + } + ] + } +]; diff --git a/example/lib/test/quick_hex.dart b/example/lib/test/quick_hex.dart new file mode 100644 index 0000000..affa46f --- /dev/null +++ b/example/lib/test/quick_hex.dart @@ -0,0 +1,5 @@ +import 'package:blockchain_utils/binary/utils.dart'; + +extension HEX on List { + String toHex() => BytesUtils.toHexString(this); +} diff --git a/example/lib/test/schnorrkel/derive_public_test.dart b/example/lib/test/schnorrkel/derive_public_test.dart new file mode 100644 index 0000000..825cbd4 --- /dev/null +++ b/example/lib/test/schnorrkel/derive_public_test.dart @@ -0,0 +1,4202 @@ +final List> derivePublicTestVector = [ + { + "seed": "6c0838e1baf748d731a864f0574dae7da39e4b6a623750391b21679cfeb5ddbf", + "public_key": + "00b963756bd8db54919a772a16ac50b55bae05d5c8876c4213cc43569a99d726", + "child": [ + { + "public_key": + "ecb3805c91d26592589ac1e364305fcc5dbf72554f142100c646503e378ec32a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0a858b725282471939549ba5edcf29ebad3ed1ed0bf63d399c2bdf1955874336", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "5023ef952af30de816967bece0fbc1107247181310c60f0ea62d2c43e444a30b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a8670feb362d6932d05f659758a2aad7a44b00d8361659b91627fa90959e0949", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "68c5a0cd42258812eb6562b6fcd02ddff377f1faf7a1f159e7d3090d49a8902e", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f0784c8d665b892701a27b0050f3b7318dfaaab704a8c77cefefc01f3adc493c", + "public_key": + "52f96a23956799cfe12583617d1c26634e82de65aaddcdb7921892a267f1a016", + "child": [ + { + "public_key": + "be83c7d6a4b678506d6f5e53777c061cee7f7240cfc587defa68b69a6dafb86f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0e36ecd898d3bbaf2bdf925cee7a3cb21a9ec350ac838d74a9b0f4fd8adaa12a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d4cd584ff5982047496b5f354662d0c504bd6076a62f1998d8e0876d139b1433", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "06d8ce928ec36934cf6aa257aa0f0235adc33c87b43333d87420329f9cc15526", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c86b24f99a6c5cd36543f7773cce3a31d02a69adf7bd3525ec1939329fe5496c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e9e1a123695ca65e14b7148dbdb44d909cd2b896802f57e271a891a60e1057ef", + "public_key": + "407f28d49b5191254c610b2514b76c73f1b4a7a1ef35ffce571829994604172f", + "child": [ + { + "public_key": + "3485603d2453669bff0cf02f51a74e869c1d9cd63bb3d04c74523233e0374e1c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0c41a1f1132b36c75023ca608057b913634169da48d5a08936216e8b75c08910", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e48dc89f4ffd23519e955b10e832098b68f7f2d8c6027bd03a8dae3f45422c3e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b665bd917cf86b05a2ce9aec228a02256f02d3e258e065b2ad7f05e3c767c86a", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "96cb56eb02203991e5d9c957b4aabe48df714a579c55b2a86a66491fb7049b64", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "8d51b8d40ee242e5ecd5ad1349d6897d42be8df9e60454386f01fb773f813923", + "public_key": + "2413145c232d208897163ee9a34a4a05da49ec43c7e4f3d672892ca531e63b10", + "child": [ + { + "public_key": + "64489e02279ba03b8d4159cfc7ef18840109cbf6e985b24c9186d6d6433c4710", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f2c4fad14691b6ea5f4195ef99a3d38ba5f41bf30e4a5c7d2537b44b3d8ba971", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0229f8feff696a80a809e7a54c484d11a8204eb6b94f31858211bf7686adcc6f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "52b5b184a8eeb1cb8bb83f0c1373ca75dbac465a1e299379bd4ca8f439bc4829", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c4e0ab81d1da56f1f3fec85a9cda86d2aa93adbb8ff569562f256a449c75ee72", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f9b700dfc6a62222b9399e053949c94acd858cc2bd6c76ad90a47bf24c264303", + "public_key": + "0ebb26326dcb77d828d9c46fcbc79bd3972ecf0da7fa8a289fddaad1c30ee569", + "child": [ + { + "public_key": + "7c4d667beb33f1b521ad886c498c4580adc8ec9db787d69c1d112a892ba16745", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "78995e5f77d45358d321bbb6db24f1e59789b1e5cfec7e2b059a7f50b0653f30", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b2dbd443af12396addfdfef5b837af6a5bcb51fd2201234230a07f1aee81d14d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fa21b182e72f4486cd64c890b0a00fb8ff42fbea79307f10e208f4361c8a732f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "32dad46b94f2c8f4ee3ddc234db95cab07e195cc0d420a3f3013b62f6cf8b874", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "9afb2087345e5b3761a2d7830f4f2db93602d13fb2880a1e823b6de246707284", + "public_key": + "648f94b21ee35bed44ce81c7f5418e93a7b8266ae30ffe16804685f8a0fc761e", + "child": [ + { + "public_key": + "5e2799bf6c10ed53ca316e2c3a0c41ea0ab692e35886821295ae57381960fd2e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "94bc3adaaf40b2f83536496e70844bca677fb3c5b76dd08e080c3b0c24672f47", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9428cb87b204da5851b3b03d45327f8cc615c5cfbeba035a4fdc64f03bef703f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "567344b377d9986b507fc8d067fddf1b80486f5e9119d35eaf82236fd7459331", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "80b110bd03e892acbcd6ee45179b0a9a1cd4de13a1199025e394cf59d53cb167", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "7b24639e2f7e2cc7c49b3b961888d21179058e6554f57802cca5f24218e622c5", + "public_key": + "f8cced72a98b0c00dde26f6d6f85625b78f4a67268b726dd4ab19377a0560966", + "child": [ + { + "public_key": + "8e2eb4cde4e0606efa97001d2b2a81758e1e2bcb42694322e25fc36e54f05427", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e277bd406786dbae72d40be09a7b7c9af70d81babfabc5bb1c7e5a5cc4386572", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b2ab86be6657bff2f1b3bbb533fd78f6d7b97d6505ebbf18ead9cc28265f9f08", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2ae5d629cb3c8f4f0d5f59e724366c1203e3302c93e7192b4d095fd35cbdae66", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0ac06997f4404cc5ef6f317678f6b41aa0ede21f297b3cde2f13750b712a8747", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "cd186cabdd4a3f1db0f881b83218edab4e592f864b7d2c5a75bdeb7d8204c672", + "public_key": + "9e8ba3056d69acd57b6241cb28b9b06fd8d94075c31c1333070bf877b348b127", + "child": [ + { + "public_key": + "7a59898773a71cfb1051f2e052ed2fc0c136f8a8d333864f394855d60fea3808", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "caa385a1f06b99bc8639e487b196e1676980102c265de796a599261ea3094501", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "18ecd567909ec4183d582a84b3fe47aaffa33eaa7e7f35763850a958ba0afb55", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "de2dba07a8dfd00a9d8a79089f08403f4cd2651dfecd42bd0b369c2770ec6051", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b2e16216482faf2a0392e66a6db56d9176e1118dac57d9e00a613e7258004943", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a508d4f6d43478a82b5833eabe3c33d01dafadab05143f8e1f65acb49eca5916", + "public_key": + "d43f4b86312d46c544009f9402bcd6a4a2c3d7bedd811e2fc7e600690e71db15", + "child": [ + { + "public_key": + "6e7634e417230d2f2a1dbeb9f4b0ad98d8c5fdb96f3874a65b5cfb0868025726", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "08af170a2fb2ef67f3359b849e190fe3cbc085b492340ce7f0353a90f1ec783b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6a38bcd2dd4426c2d29e7c0cf582850b8205500d231df7b2946ce911e749f265", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8cc90e58f61ff6e079f55bfd790e21831c0e5f3832aa4f86f935fe8483cdab3f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3068a509f4cb1745d23a9c404fdad77804b9985225967586896938a2b36e520a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "596fa684d4d0b37bdef0fc388929a77e38f33b870af9d17a34199af9cb021b8a", + "public_key": + "142b9d1a4d05ff5c0dccc5306a6502a234ed7c2d6b8f66de2dc2fdc8983b882d", + "child": [ + { + "public_key": + "245c7ba71470bde4c7f30083046224de92b01d9bea8eedbcf3f6e8245cdae77b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "bed32924687ecaed1d975c58529a8dd3d3fed3280ce1edc516971ffdd646b203", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fe6c410d052c3506fbb585e03b57bf477583fd31c47d99b1e356a39ad372aa20", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6a04faef568bc9eaad1015e0d26789e004714eaca767d7a0ae3265abcbb11a0c", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3a4134e7cab3fc85a39762b3111b82f27cdd40ad5a05009a20515076d3db3428", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "847ef02043fd225dbc1892f5b0727f0c4c2cca7aea2b356f28cd80103d7d899f", + "public_key": + "acb890599bb909317a3ce54b214bccdcd166eb834f5e56846acfa453a71bc842", + "child": [ + { + "public_key": + "d2ad5e2bf86fc79df44cea964c082b6358c2f5b30a04d686fa9c3dc6b902c54d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e41f81f354978157731776c849faeaf618a0cf6c0660bea5808504f998778318", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d650b9aebf07ebbedee9166e0f4b0c16fa1b69e2db6ce9d64c1791cba6a01247", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "deba852f676eec077208ecec2cf6f4727d1c758870533d8502051bc9a0f9231c", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "281a701299611ef5bda62f2c80bbfbfb80447e8c39441f1dace461718a3d5a72", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "20f2495cdf0c73d89b224d42bdd73e8cbcebc83caa4d10226a423e4734489f97", + "public_key": + "164f93c7e4ea1dbe92948ca038bc19269650f03fbfb97972f31bd34b90ebbb1d", + "child": [ + { + "public_key": + "6635eda726a136d41740c4c6dd69775e989c18f14038231d857692830c7c5e17", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0a23f64f63e46479c1af6177d3842791ef2e6b97932ab45e4a2be9c6601c3a2b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ecf20f154f083ee36892248816d2793f90ef92127593364da6d1e3ccbbe4e637", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "68b194d69acbd28752bc49d97aba5993f67e400a3406bea226eb3078fda4a94e", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9e87629277e5952e410a8ac78b2fc0b93219ecbaffc11f55b19795a8b70a6372", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a8af43c673c9b708bf6c048494c2a8dd7cb654b8300a2db26b883b1bee06f96b", + "public_key": + "e057df265f78e51a9a4f71480b3efdee27266eaed45a95a7cc7b49e243f33361", + "child": [ + { + "public_key": + "f0aecb2af44271d23b49f16c41dd7d8d1ea3c529321c85bae894507474f7275a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "dcbd7e79326ddb842096adc6ae41c5aaf4f2801077378c991fad8c0ad918492d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b03b696082aa312b07017ecf9c869c4f8554d4bc422245cc363c13abe924f631", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "aec65195108c3ffc3bf091d4ba869e8b3480089f8aa48242d9a6823d29dd414b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "023779b36da1ad5418ac4df4cefc52200421af38a0070b22792c104775c46e7a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2feb04a5737f070d67f20d7db46e0585379a01ecd66fc489892126aa2a922022", + "public_key": + "54a502b5ce0388b9d9d1c9c0782ff6d46257f04ef28f6038cca3e8c90a40e065", + "child": [ + { + "public_key": + "8ca55b45442e8ee5bfac7f17281eabe3ef5409ffe21e5fd35aaa59adc633577c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "62fb6df9fa8e04cbab9db13bbd750a94f4b761cff0cec0c56a6f8ff2e5a7cb08", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fe115d5b46c30c8d3fbaef69f6a87ba2eede9b813d0e7ab28367186470b0fe41", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e2b570957ca2c7d1a008f8bd6d50210d2fcd507544f5ad2f9ef7ac66538cd80b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "76d85c9a97eed0d04f6542030aaec7ec39768ea7405ab95fd88a8aad95eb6851", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "81242a24322b754d8962a3a93e06930281d32cafc266fc6b3e3199e17636f824", + "public_key": + "4e6cb936cebb0145643e146cb278611e6c88656b5f56b0c6488c52f98806dd56", + "child": [ + { + "public_key": + "22cb93b8b2088b978b6388b3c767958b2fa4d1c7e139808d148065d436e39557", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "623e652d6ef4bff317d8ce3640679982875992f5fed83f9e2c7b98191766221f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f8a9561287d18384d55aa1c62a7b49ca8d84f5339e0a2c5b667d5cacdaf21747", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ca1c3c0dfde08e5382fda1d8a9b3746c13db1051e23436615a62f461dc10c629", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6a48704a1231ad9dcadd5ace147fe506bf879b9def6503bf5328b655fc8cca39", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "ea83105ab3ca2a82bfba03f247421071ada957d894901fa44ebefcf4617fcd5c", + "public_key": + "e4530ceb01f470864ce5d29351f911bc7d391616cf5ba379e625ee488b91da2a", + "child": [ + { + "public_key": + "dcf924b2daeb1bc99e5303a3c1eefcecfe74b9fb04f0eb42c1328b28b7d0e927", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "44b991b5c3ae82359746eec85bb35aa48ed5b794218095cca00b155a97110c06", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "38e9da1796980c75e2c9c88b72620d9dae2fb5dc4f50a6b40f12f8a8927b7312", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9ce3f1a007eff71c3bdb9e07b2f5cb4d105603f8de7595edacf41373e3adcc24", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a66498b9c92ba0f1b806046a42188254a96391a95357eb220a6dcc83c5468634", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "58b622ed7138966391d4427ea8684bbb1052ab2a90b55fd1940ca4d2ad688f83", + "public_key": + "0a5bf5c7005c9a452c3dde73b215df6ceec2f9949091fa7d07d16110d94bca5b", + "child": [ + { + "public_key": + "a8d242521fca1e2ec5526940f6d1cdd2381446a1df7e800f6e7806c50e08453b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d0ce1bb3e04f1a79c12b592e8993bc36b16f74c678490d95314c954473b37e61", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c2c65002ca5205c667928a916ca9b6108112eb0978eb088623d2026c78b5d212", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c80ff9944fd76d452184dfb0eaf6fa5a695fb94cf4554d9ddecaa835a82d8a11", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e2c70fe8e694f5066e8db3fc71bb620631f1c077d4a4708d3e5d28d509f46142", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "4da5edef276ef3aa300edd92651d0181089f3c1a08b63c43149a5a8595d541aa", + "public_key": + "c8bee112b2133a84eb06459d851616f10a01909ab8375edf4308ff03f265792e", + "child": [ + { + "public_key": + "f41adec18aab3794673e596a69b4bee10a7c8ecdebd440afb4cdf0c1de770b04", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "445782b7bd76fc875dc52a5cbead5be4fb72dc7f8196f79ae22ab8eb1a662a10", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a6eae8a29b98eb84741131c3e5f026dbcfe6633fb11ac3e9c187fe3e1af3ff5a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b24de12f06d1dbdc943b1fdbf33cef0bf07940cae7e6165ebe31ac08aaff2206", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6874b38dfafd365700bb50fc77929982edcb82f5a12e685f626bfbe73b1ecd25", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1bd7fc652fcade54d1f333429519599fb22d4101fa3686788c0187e774c1a161", + "public_key": + "343aa0df6493ce4b4004d6651f3a9dd69d9e294e6f72b02c48206893f7f3a067", + "child": [ + { + "public_key": + "b4a55649e588d215c4446680ffe5908900d2db439352b64aae3433e7d04e5e7d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "54101867d42d5c7b2838a0646fb30b87b858edb278c211e72b4d83e54932fc3f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d23126869ea4e3a42a4da37b23e137c6c428f33eae65db7e7b463e4e4c058b15", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a4eafe503599bef04262c73150b4c713a07e9fcfddc626be55c8e2207d417d73", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ca2ab186f79efaf81f58dd8711c8efce2bab241a46c99297cccd6c4d373d806d", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "264bf6b6d5bbe91dab559577733ca114d286d1acc3d6d93eac52d140674731c1", + "public_key": + "d890ab8be3a0f10a13c67484546fae7dad62385a6e439a0533618b7101012375", + "child": [ + { + "public_key": + "2240b574a548403f731a91b122fdbe71c816a00caac79970a4c3737d29ee480b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d4e5aba6664305db3c2268bc1952ce6698f668ff1af6757b031515308c7ed116", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2a018e1a298999b874c50b99a1aae2d363466352562d6b4b2a79c26a1d06c14e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "94f13da2588af3219f36b5f2e9f02ddf4510dd095ab185dc363a8a20fa2d417b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6eedc75cd7513e42a189c3d27ddd8136f31d9bdd4910e2bd9395e8d36e5a0c3f", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "76eb03898713444cb1cc04b2fa9597fcf310d99510a1846e790511ebb7417238", + "public_key": + "cc2846cbdc6a3e83234f1e5832cc79accc2c191ca66c0624500566bb3a88415c", + "child": [ + { + "public_key": + "bc0a9d388ff21d1099efff5d052f2220f984b352aba2f01c8838a8a83b089408", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b65b8578bb1c44f3583bd9095d748119cf785b419540827a74bcfbdf5f24da7e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b4fd4024a8a16d7e76f1b05666cb1c6521be8ae379a40e144738afeafdceab4d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1c6d712b74741b5dc1d5b763a70b0fb69153bb334d5c2df44e79f788072c9d6d", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fc7865a044473a8ebbbc44727202d686792646ee116a17da92ee1f24bc5db864", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "293174fa38d7df59dd3ebb2902665a1065bbeb80d0c209e99a918daa616653bd", + "public_key": + "d4cf323e00ce65ed4358b49dcc14ab8b39b2bf87ca321daf6c657ba6d262e23a", + "child": [ + { + "public_key": + "24d7b7d37a90e15fc85032ecb897f97602998e0fd084ac790e318b80a8c69439", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "14bf81908fd2ebe978009788bf942ee7b1a988b2a113ae566fc12f3f06bac16a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d8dca1bfb85ceb3027ed455efa54baf267352dc6f3570c4a5048b85a0d4ec052", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "12d47277edb3170646668b3c8fd693202d1c284d27d9627583fac3f1978c4542", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3a799c55d8fe6123a34d3323406980d47727a87fe6ce7855ab008c599709a860", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2c447d0a70a0c8736e90608c1d25dd39d3f826f1522cec9dca762a1f8ab6532c", + "public_key": + "d8b58defeae4a708d9dd039a36282ea3ab30c2b2596468bbd0a25031315b127f", + "child": [ + { + "public_key": + "b250202801c117556a5500c93d52464cfc2a8b7e0f95078194fa43f5e3537255", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0edaf046b7e26f14b0d674aef371a3c13f99032ed9d1eb2ba1e788cebd841b23", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "54ffeda243fc331d5d148a88dcccef2d235fea9316228ed6c14c50845c333044", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "487101e70eda36bf7db9dd4f0cdf0e80e4c9219680a2831c01e37178df431f55", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ce262a1819e03a7ce53fbec4d586e962d2e68fa0c3fc8a26597ea902164e1c39", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "7d03ff0bbed716d5aac40c5a101eb1d3a3cb1d88e0eb6ec38def0f21a0e6598f", + "public_key": + "32472509b43b66d678b40d085ee8d2081266197f7c879f3070b769a1dc7be208", + "child": [ + { + "public_key": + "98d6fb4d946009daef9dce57e88374c84caafb9bf98584f0195a6a99807f6d31", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d28295debb8f1f7313b4a45241a69164b6c63ce7327c9d669c119638f9643a63", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4c9c6909a561d8ee357068c4f123742829a4d32117a87751da221da92c6dbb6d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f0793c5d2197cf5582ae90450806a0aa950f7dc47d9b532c5bc1644067ebc148", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1ccae02f76a5d7ef96c83cde297235f387bcc03c13b2a90dfbef7d5d22649c12", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d37e6edb177ec75f15c771ac58734e28a38b4464df710ddd68f05cc033135036", + "public_key": + "56b6a3abfe28b3f832f7724ab71d2bd98ea0b172d0168c2f08c1f1c90daa7333", + "child": [ + { + "public_key": + "b2872a2d9687451c516f79055f14ffd74498f8c754c3f89abad544df1c428f31", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8a7fb149d4ff6d0c2e5ef64c457fd67cfc1cd7b408941f5dc3745e38baf4e25a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "baf187de0334bb9365703780ceabd7adad8e038949750c630e3d765fcf3afc3f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "466938befc4a0fb37c878d1d79f99f339960d55fd2f8c28e0320bb4767024908", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "78714c1701769f36c0cac7126def8da5639c835c86a527ed8a80910dbd485c09", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "8e1801ef1313e63d8ccb849dec76a55d4025f01328854d13137b38885b44de19", + "public_key": + "a6f5c8ca8456f270297003f0d2aea0a41cf855da54f2fcff9a3cd69f17498a40", + "child": [ + { + "public_key": + "68214807d58d29734bbf49496cf50ffe0842bf2519cb89a7a9eacd02198d152b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "40d7428671d2c3732e340229a500f68ff4256c0f3588c76fe95cef34cd58e107", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ce375423efe73b9689ac0fae2815d851c637e88d4fd1509ad74bbb691866c04e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3629b0c8d017367fb761a0b339ee3c774d713f3694d0312ea5652dcd11dc787b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b2fd9900896a48314a84bb2474c7c4fc900d51d962077b0bd72acabaf2a93c4e", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "5e5cf5b7caf634dc06a5ee80eeb4ad89a22fd7cc16facb5f9afb406518dd0dfc", + "public_key": + "6816f0ecb249d910ab3d628ab92966c34525a555f18b08c07d62750736be4622", + "child": [ + { + "public_key": + "f286a28108a67e448dce21dccf992e19c73cfe9bc944823932f6eafc66537e4e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b0f61d3c198e142bc86a68ada22f9960c3b7c944c2b0a1264a0f3b1e7b460f65", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ba83bd8b844fcf82fb8b7ffdf737b583ac6efe6a82d7f3a5a10b481b3858f373", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "464cd0c4ac26cef4c12aa9e39da4b24f5adedca991365ca30da1156afe053f09", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "108bb1a22a9304c8cb50f5f6e7377a2f8fe0b2a11a6d443f55d0de2967182b0a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "31d2536a59f88b0fc96cb5196162b780233deb205c0ef61653a5c3cc3f5bacb2", + "public_key": + "4aabaa5465ff2921ab643f583c040c953d13f3bbde2621d70e2d7a3646d0e101", + "child": [ + { + "public_key": + "8e520fb6e767edf0e033ba230bbee1919ab751fbf4a529e85595e3e322007c68", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d2718dbd6f8eb4a4c4b1f6e97cc1693641cd1fb5cd6cdbfe556fbee94b358354", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7e4ae6f6a9cee5560c2711662e8ef2ee31a252948116e88d59247994f5da922b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "446f144b3eb88ac1675fece4ee7c15e1ad34ac27570f936fe978da94f20fa306", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0ad76cbd5e586f1669e3264188b53ce8ce37dd3ba4fdbf9721cf46db9b6c0f35", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "06dc41bb4c5a9b10c767cc9c61ad9853621f939d5a3d294f8351e9ef1ebf1e3e", + "public_key": + "0c4c059fb41e046046a4aec05a3be60e7fbfb8c111a2c077cf76596584ca4802", + "child": [ + { + "public_key": + "7621dfc4b97376ebca60d51f7051c6f8c2561cea6b3ee158bfd9e68b94b3c315", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "94d75b2e56f5e59e796f060cb1695b06356ac9b256e6768aa29f4afd7dcb9743", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3a17dc20e34c64b55c91529299e10ab7809ac9c14610bff3636683ff342e2975", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "da889aa66f09204d43d03c1440ee2e6794c6fa0cc439cc037380d37e82e85b41", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9296c6ddc5f1e75a2536530a8712a01b8df4c3ec287fefb71e6a3bb8a3c75c64", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a33306ff1fbf9ffaa47ff8d0e7e742bede207fe95de76f7c9caf23c1f2ab2aa8", + "public_key": + "ecacf75e87ec8c0c1438657894e73e94c56d93aba2d705a6ec9315ac230b5c37", + "child": [ + { + "public_key": + "42eed4d6c342cf4700dd04a938336ffb13360ee668f4f273d8864ac4e0e3f42b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "62e38f4b1781ca7a391583e77dfc5e7792ea98667a7669c65c7f1c67b67eec61", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "380cc765ab4a44e22139cf9ccc8e4a2a8f206f6090e0bbd8b431c248f5a36b46", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "94a377a54f0caf77a16b1f4d7cca8065e2f75caf45a960db47bcc39abd092e05", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f414805cb68d9c7ef7cb2e09b2e21e588a7d54a0a7bf945bf9d5b91641bb2e29", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "86afd3c3b2818126d764fc1d56a548691b60c1d5a14ba738d4742a75e7785366", + "public_key": + "56b7ca38fb6e21485c6c6b07f073ce0c3576016905a17d38faab7ce197dbce21", + "child": [ + { + "public_key": + "800af1e265b3194e398deadc2f53c1f0d52da659e82e8e238e0574690a18356b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "08eac33d36d5d95c787c95f70d4e436da6bbb2e7557b25ae7261c8b4a5099048", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3896bcba3d2b31121a3a01d36e04f6dce482699cab0a7ef6d7626422ce800419", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f2ae315fe68e25fd989e4750ea72c5dc555bfa4870aced2d81c73ff7e7277b53", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0e6e7dd99a265eee822437ce05960c9cca4764226d473c0aef3aee5a7cdc0664", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "22affe722acb52e68e75a4f460c3717a36393c92946d738a9b4787f7921d9c15", + "public_key": + "24d73b7c11fcb0ad5ae34e1aba1e47d995b26df9db1d0f7bb5a9d5da3289e81f", + "child": [ + { + "public_key": + "1844cc224e67bd42df9a92fd4c6c061eea54652d6702280c267a34798a01c236", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "321adea0b18b5a416e642a1099d3e74a3049024835c3da736dca4ae769bc5e22", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "301fd977f2469ee408eb9c70f9cd458d785258b9f148d712472a52391271115a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9481967597a2cb1895d850f01748e591ea065ebbaa745e1b6eb3b2fa9b801523", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "045af0eebd95fa027ec814106aed9b893652c4219c28753fa89a8719aa824964", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "15c971d4708ddb210644cbbc334088b1fb62401f6765187c3bf32adcd00f809f", + "public_key": + "50e5eb0100dcd4c19ed4932f8110af444c87b9bc09b637d723669fd22f176c67", + "child": [ + { + "public_key": + "d06194b064573be93998c887deadc0c6e7f2ee1c9bfaa7d2d545e2ae4837f96b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1041f55eaaab0afde6c2811bc4cfc85cc43aee8ed9be5d5c1f6709df4b3cdb3f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a8262589b72b316f32a51fa24c11efda15f37fc86f7dcd9660facac5e5751f20", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a2c1a3878e4abc6080dfb8f3c7a1c7c6c02744d3e011ff40a4d94bfaf9192919", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "deb1f8873103a35920aaf1facb7fa250de77c4b714d08015f1f528e5f3acd103", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "0f7d2be01610f755c8617e2ba84a2f3c19db98633aa4beba08edcccc3ab444c1", + "public_key": + "18b58de40f785aced84b2c3c0ad94d5abcb0f9a15e4125d88f61aaa5ccc7f828", + "child": [ + { + "public_key": + "1c7f5d72efc1aaa2009a91d0a6a6ec01afb9dc8bc2190e6f0eddacb09f571e03", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6c99ede0efa48bbadbb1820ebedcbeb1d22c828ca9f12cce879d6d28f41a8248", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "582f26d038151cc90b15de2df662f4b2254f84af1c227fe9c9fb124b8523a204", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3c4e971914ba228046d4cc85e5ee2ec6df6496a92ff70bc566129a70d420d30e", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3a35b2a6b0d862106e7f9fec00e173aa6b1c5d45629f52fa25b5c144f9a27554", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2e448f82f829c3cffad176dd0b07b9e5dede78dfbe7abf0b5883edcf3bd68c8e", + "public_key": + "4eaed87a41a3b902eff407b72a968441cdc5343daaedafb059aff85a9e209d16", + "child": [ + { + "public_key": + "38795550a5526ab9587d5f1b0b223e665093aa799c31262ba52a88e8112dc66f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8ce95d7b16d59be1a0223bdddb01031cf69ddeb7a27049c1055ce8093cb6dc51", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ba34343f7e0c79ebb8fb9b8e626bdc6f8858432b3996832cd44fca4ac9ac7819", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "82fd1433753a0008a46637721b1ea01955332635c575c0ed79247026040c6b24", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d2d0ecc9dd015c0f0c3833f8cb179837b23f7a26ac5523fd6e14727f88b0f031", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "64a29bf0f7782911e6a64cd95301b5f41794031a54d0634d305ae29a1e4df57c", + "public_key": + "de3f57de2b4161ab9ecaefa2749121b8208d41f1ec44c912643a944aa5529c42", + "child": [ + { + "public_key": + "e0e78048200671eac15c6d077d6c90a806dc1384bc96734ef9e135de403b0b58", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e685ff00f8ff1acbf83cdf5ebf1e430c2bc04ca39a642f5cb8f85f374bbc3d53", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e2914ee5738e488c9d3e6e9b26efed1c9f80dfb8310e2b8b2b24514abb080a16", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a02603a8628b56ae7610365ee80c0b7dcc24305e7ec98f79ee30c74366cc2b72", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "507aae2d63c43cabfa1d19450a25b4941e097d3ead8b82293795dacacfbe1e30", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c4071aec9126b27ecf67e582c1c81d99e0d9e8db927f89c31f84dfbad077f133", + "public_key": + "947bec0d6374e801f24b1b79fc2cf5011f78ba9e0b4e6c6df78de1dfcd0c791b", + "child": [ + { + "public_key": + "8c1f606428fbc2d0f940c6a736414dea4b2a9a854aba8929ee7c865c18f7e945", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2c6c606ef58daaa930410a2e6f8af72f60e8af6c787474f3780d83cf060baa50", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ac5e5a58257e9bee87bdc1d429c7ae21cdfcd23793df0e3e6aa2f19417e9021f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "703627eeddfc4f51699e8290eb27fe6668f4158e62e9d07677fd7ab174ded52f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1e6a9754aea14bc6b3607d21cdcb62797c203a16342753170db108ebad10782d", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "da66948b72516575dbc6daa2b98cce6eea3347f6c3be39253979d91af71fb23a", + "public_key": + "ecd4bc7c50e9dd00f557714fa70a0a064c69864318a075a27514b3a25d53db35", + "child": [ + { + "public_key": + "9eb62ed2fc6f6e69205ddc3801cd39aff57f1371777914f54dee8e6a9a56d254", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "aa0bfaf025093c81dcf6d1ebed1c4a95993c3322340d4cccd2719d82baea7d4d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e0e361588aab07504997f3e955279648e13e216db3d77b785c5f109a34826e41", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2e96d336e3a26ac5a642d687ea6aca98032faf7930377b2f4e675953b7ab3377", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ce20438719a17d0ce1c01f9e642c099996ee2c9404eb6072b315e491f248e301", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1fca9f14b2af6063bd024c0c17bf076f9d7efd319614f0a5f302aa338f773240", + "public_key": + "067518d35944f97099890c80e7c9edc4bbbd507cc78aaa0db98779e33cfb4b16", + "child": [ + { + "public_key": + "d4758fd979e5e46e03e1c4b0941fa167142c473b7a6df4e736598b5a61647e11", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2e1397b8fc9596c294199d77b9fdbf52679c8ec4a71fb65668c73c2b26e72758", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d4836559802343eb0dbfe76525c5c1bef71aa0c05b6a3a2ced30e46482f58d29", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b804e206108595cb0418ef0d2fbd22a32635aae4af855ba1da30d97b45fcd102", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ccb68e4d97a011b4e62b35848dc294e1639659da022150919b4ff555cc3e536a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e3b3b874bca775405000698d3f27ca84dfb937f8d0a9c08aab3045fd1e2fd745", + "public_key": + "b22ec8ae5ccd61fe8184ca940d86aa580068e14645f9075119ca4d1e555cf60c", + "child": [ + { + "public_key": + "24326eafd38e80f59c0d491e9fa9067d4d7417bc47642700b155468334a69475", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3093dbfe9fa10d1c7e5a21cfa5bc4b24be152c692a5bc45fd3b63dd4906e626e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "52c9ec41c690daa75ee9897f8dc08455c88e679dd18660e1cc51a3aa4f125300", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b0a99616a983c4832d98d7d82da9c52a33ce411426d07bc0106c05cff6ac3c5a", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e278ca55fd95464e5717306f7b7cfe81262c8afb1a1207bd89d0baca2437b00d", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "205b8e6ac347bb0f5331750617b6ce1a8eb9701a03c6dace0f168c3c4bb1eb7c", + "public_key": + "9e419cb56f29bbc5b844333720f30a06b73e09a23ffe463f997f6511515ebe33", + "child": [ + { + "public_key": + "1e891f1e1d1a7a37c168944b7aea532aadc015dd7d2d3c27453ffebbd4ba997d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "60644ea7593ac12f06334fc743fb3d828e147cd09b87bebb083dfa88f8222c4c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "24c62a7184cd75a79c89b40cf0f3cd585e579e369e9b81808cb2228cfd3e1964", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ceddd685d48c249545c4ee89d405800a5bf3ba03971783d6e99fbe56deb7153f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "64a1d1d9601876747b9dba074def6923dbf8f068a7c5d6115244ac8899596d02", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "beedfd9a0145e51c9c92baadd1430eac83441a2b539a52bf13d4bbf1918a493b", + "public_key": + "c092ea80e424798cbb5a7503ae8edbdc2e4986770dbdf9f1b81ef91568937f22", + "child": [ + { + "public_key": + "721a4b2a8d22b1cf47d95b5a2f97235e58da579659a0bb406bd42a7709b48f3e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "367f0cb14d974861b639dd51e97d0b98b2f4a403d51e0576cf13d9b477d0a110", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0621a3f33f2f9498ae881d9aa61bbaa111e465ed5e464999d785f3fba9516252", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d6ea95cc271dd1cf9785653ee36e476953b540eebf9be3dbe3d7ec2b3a7b135b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8aa5c7bafc0486d1c33d4f1e5e48c685680a5e857bfdea1edc63926567485715", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "bc150106527f3b6ad870b6e014297bba393422f4309c280a43c819e0ef7090d7", + "public_key": + "d07b8af57c11690f1b3c1a7c18a9bad283858dc5a90cdf43a916077a5a4b8631", + "child": [ + { + "public_key": + "0819be64199b78675ca4331724c7361397142f578253321b4f77d3ed803a4412", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "08cba9c1d5c45a77f478e7315e861bc344810aa74338f34f68b352f1677c615d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4efaa2e1938f4c574cadeea9b03118f9e17e1bff68bafc2ac17e48dde283987d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "02c333bdf2c75dc09c7479f5aae0b7ba4a23d92e1c1c2b5ef34a52532de58049", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b202997cc3b8465517ceb7f7f9bd8324ab6f6003fb93fd0235dc2ec0b6287c53", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "9d98c1fe8ddc9899e80b4cf6b7090e2686344a418f88de4d4f493bd6d6f9e395", + "public_key": + "34d13bba3ec8335b469617f9f27bb47f5046ac801d9111ee90f58491c9aa876a", + "child": [ + { + "public_key": + "a80f0ee48d945feb6a2dfbdd5983971d57a01ed337fbf47765df8ec0f599732d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "080620066d083d7fabfcb6cbfbf3a4a4c7a2c127f8d165d2a172b2959b576d27", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a2f5042b6658042d64f48076dd71e454c81612f2e90ad4fae59207fa41d21336", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9c47d3530ceae2c4e69028a2a0549124223b3f1cb492f4e7528068e91113e228", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "665bcda5f395d59f03e6d02df03d0731edd50ea00aec5eac98762b0b78bf1831", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "da162c7f03a6f49695a9c1a64e5aa4c3a97d414b0f43628a0a7cc82b012f377e", + "public_key": + "74900c9a810c0dcd0a29f68604bc30d600ee149028652afdcb2a3f9411326e40", + "child": [ + { + "public_key": + "d21e9e606b3c14448e57fe77e4f7db0e5f7ee19263ed378744f8d56d4e918678", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4472e343342986472c16b258f45e9cbf6f85a5371fc065a2a1cb04d55bcbe53d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "180a20eb01ee834733118e6fb037f94612f5bea391d50435745741bf0a90165c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "989593b894fd37ef43f39a6c4cdfe2b6c433ac2fb34e5327eb5b709384ddbc2b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "58d7cef9ba8911521ee4498893e2e5d6bb45c5fa7acb74c08641a1ee91200337", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "0d8ab63e47acadea3e95eeb5386b3bb8a90a58524e036b0c44b15a38ceb1bc2c", + "public_key": + "98092548f2d92c0271694906dd5520327e05592e28c0fd3f862730753410c55d", + "child": [ + { + "public_key": + "36ea3b8d6930728958e06fd767fd0b419c6d8566231174ee1b3f37b0beb4132e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "32199be9f0e04eca85c4313bc7566c4672baf9ea5ee69ff225946acf5b177448", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2c1717500357f66b003d38071a9ef1382254efb837b76c35997a4c3bcd19f903", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3c9234f7f7975a5c4da7d804d10fc853086717c220a83ca28a687c1173f5ad15", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6650238e8c058d3655769533a43c0f6a00f11efb00c0fefcc5b6f88d4bf1e97c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f51877270e69b6dd66459bced4866f47ad83ffe5b131137cdb9b96bbfabfa86a", + "public_key": + "f0e3934c5a11f4078f33e95b94d11653e4200e780899e05ab1dd2a83d6773254", + "child": [ + { + "public_key": + "62d76735d81ddf05313deb0f4fcdb1a4371ff3fae1d84ca4819846cd6e8fb109", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "385a16545c1b56881b0e3e525512bf5b8723316d3baf66e2333301e1ee783a20", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e0998526c025016b5802b3db6349e385c355ca0cc333cbe306ad335b881c5944", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ea452e343e297cf83cb00186317b37a78d076ea1e4fae12402743352dff3bf57", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "660689fed1326a036f33d17026039f78fc2ffd7780da90ebdd0f2040a31d4e5c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "46afb76c77ab4a70d09d8d5d9cfa53618c15b2c6ea72dcbc516b1363a334c97e", + "public_key": + "6e7c2af90a92851e49183b96dcf325b368b1614fe239df60ba8f6f8c0e0b602c", + "child": [ + { + "public_key": + "be576bc0085c63e00030d701e02e1d4af40fd3777397a60e3677d7fd11328659", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "548998804d10744962190bef980ab5a7cc4070d40b47ef660ce3e0838122c74e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "5e7d71f13f2be1a0f1a17a4158fafb59d72e4200a0aab1ad0e2462510f2d2d77", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "042e85710ab4ccd80731f0cf3293542bf6ba0ddd0ef971fdc41a0ca06c63a956", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2258fa6817cb6ee58cf5f40d6e166132f42669037ec85e87d9800d655b57393a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "06960105b66f64008ca8d04a4d5958a5a5acb6d3e7134920b8b84db590ceebb0", + "public_key": + "564e84f33c922f334de942cab98ae8a6c127c6dbed7b73a6d2c7874b1a905478", + "child": [ + { + "public_key": + "507e96f0d5562c32615558edaa722aabb82ded7f9a9903f44e52fb871f947a34", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7a04e67108d698bef2644d6cfba2e1c753a003829fab87389efc94161c3a2113", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8a14ab26bb88afc69af346e675774e297b4289260a6486abebf0220464645c3b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "822d714d6eb227445c6377f39a6f8bbec07de6043ad4b7563995714db5365566", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "72025a02ddbd85769e537dfc8a8ef2e62137af0869b9b048185427ff7d488259", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f8a36d97ded7b3923603180722e19ec8e2101ae15eb6e49210236b1ae4d66dfc", + "public_key": + "d0ce3816048431bc3747c2aa8e655b09859b189e6f6b4c6bdd8c56cab9035d78", + "child": [ + { + "public_key": + "626a810401258997f38829ab91c9f4a821a626cf203ff08c54a9897620f8a504", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fcc5dfdf023d50c6d15bab743813d2b0af58b54d83cb6944cffb33b75c3d8d00", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a465ab0a442e295c46ec0abc6120488aa16362ab4466a4c17b9ecb8a38d64f5d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1a5d4279ea321ba65fb1179a9808162c0cc2ec205ee3606bbed2e69e0ac12d36", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2e5de99a6ea75cb681b348d8bb5a71d935d4db23c83dd3cfe76329885d253d67", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2e12d3bd182c4e9dc7a500ba752cf40a45319d3236c169a5b6f8417363b98345", + "public_key": + "5e26f53aba901f556b925a5fc94393a790045113d457179df639f818338f765f", + "child": [ + { + "public_key": + "e49a83f37583867b2b969b15e390447f807a1b4588c5c175f47270bb49093e6b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3a2e2d70ba164785834b0b15364dc58f591fa5765774394e91cb80acdb0bab20", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "dca04332d8ea4597658c7d30a9e5329fd0a90fa47778f28dede2848b3f3a0633", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "169e1279cfcc500ed4227311c43da9b24b317fb8882e58ab905c3afa319ecd43", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "60ce90ed48f0524cbd9bad99be7b3281fb86680da64278694755a6e37af31970", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "29c21626bd9d20ee2a06fd4d4eed7a9a9ddb3a16f45d685aca2f18adf1b192ce", + "public_key": + "9454e42039b3d4e2592132016885474b566ea46378a0bfd1e34dd0600f1c6c1f", + "child": [ + { + "public_key": + "86e20d99085e033bdf271b63753fb185558d1cec296add1171f39e7b6faa293c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "54ba47957ba4fdeb1ffa0bee5a409f3175cfd410d69f1609ee81dc3864c55167", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9454fe036f2d9b54bc493cccd7de2d1460190465130e1065959e958ef66c407e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4cdeaf5426a5ae09a11a626adde91ea52560696cc69cef8af40b6b95eacc1460", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c476e6dc16a73cd63ce427b6813fdec264e46994a520dd3e8194b1e1d6953c3f", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "4c70c35e752d80c9a0711964b2b4f66c388af223d9c68bc377186088bb67ff1c", + "public_key": + "fee4ce4eb3601a6f89c9a60dee6bbc927ccb9c442c92d8ee905f1600b30b3c00", + "child": [ + { + "public_key": + "0e921f73b55486222b0f5c43751261065108bd2f8ecf8db03b86b2835e3efa16", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fedfbcb475a43125f5d41b723f12b32e44404d6274bd48ab739c528e7ac8c424", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "587e2f08079030df2102e41ae4cf2076916a62fc9248cbfe44d3415dd96f3141", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1ab6aa60ad24bd9117ebaa83e941a6210a92493003fdcd9d1409f276c9240d0f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "cc7dc2011e10f488476df81ab0ce5fc7a8339f7165710a8d713438e49255e813", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "88a7e136a0b96fa10fff9fbb7fea37ffaca19b062bfa31c1e2ab29d14b58701c", + "public_key": + "ae8568f2f1786f0793056c3003d288c2f617d728742645d14c29aaa05531e212", + "child": [ + { + "public_key": + "eca886fc12b1850a568fd42082440fcf241a9e391be14cd2ae2d46bff384852b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "def0489258470d46ee4eb49a09bf26bc1370b84cf4c50c7da320f039807a912d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "56c3eaacbb61cefb7e899e5f01dad6cfea14f88989cd8f9cad896b9a219aa75c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4c76e804708dedc3a49dc6595942823d4d04c61e6ce233a75e6c5b1c5fcb6769", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "60877e2d9f43ce1e029b92dda5442935847430cc14c4395b52d23d60d921b76e", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "baf08fd1bb3b7c886e0e48569d4ec72f79d31931e93d6bc81e671680adc00deb", + "public_key": + "f4cc5892c91f052541ba6574484f17cd34b5fb2bf0e726f644bdb76a952f8d07", + "child": [ + { + "public_key": + "64e1c4f543105f2fd7e888d76ceed53663798f53610c34b7f44da22d790e2104", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "42b919aea697268178f85df972f3f574c0713d45666275f0b10122c38c3c9201", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "60e7ec620f5981d36e57baf39a1eea496ec204e03f868ad1a789a13d10c0b901", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a8131fc2c250f73fdee386dc7e2cff668c6819b4d1b75238df9d822c88fa1322", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "024c6389dafc6888d468c7523b29c46913c03b72821f2de7439d371628efb144", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d3672f8fc696def1442603d67280aa216c1c1748c24fe4b377f4a117bc94c075", + "public_key": + "02878dbf24b4b2c91e17c1c37c1f802c637fa4e32e62cae60a57ff494f4bbf21", + "child": [ + { + "public_key": + "c6ec2eabb36cce77f55f01424cd712693d4ed426ea3f385d4344351254109027", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e061cbea9370e3146d33c573231282e2bf892dfe55224dfc4e57b0c376675520", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "449be88bdecaad3d9a7288b0d492173dfa46136939487f3e843faf9529f42e00", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3ec7190239a755e56b97f4328c00f5079dcafbd030498f0c438e197e5d953026", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "74a4f46f994d8438d487d027f24596144b65bb5ff46ce4d33b86084637975a42", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "5b1475505ecf63b86bf8a6c3e28222148af568a66b05912ce4b7237beff2e6e1", + "public_key": + "a2d60c716f40fb89cc35aff7b0b9c61b9eceb0dc69c324628a183a7a2b4c7a33", + "child": [ + { + "public_key": + "c2702483f0100282636c730093b3aff31b3d614a8f2bb312237f3b282779fe0f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "826394e64984a4f1601c17bf740729cac4861dd95a5aca09108a81bc8c2dca58", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "32b96c0f62bac7ac2ccf7a0710ecd6f20fff24a26ff0776cefe4c592f0f57d4a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f6b5aa68e3a9115afa73d8b61c68408e275e6fadec8273253a83ba4332894d47", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e6ad14a90d7f8dccb327a23be00dbf443c1baad7409c3908ddd4fd517e216a3d", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f43357edb4780b69d10a3c55e5aa1e8a48892d4a455a3e776b44bd3fddcc0d4c", + "public_key": + "8c5d5bb16ff1f7dff69f01762584adf43d99bea3001bb22bfedfd94d18f65d0e", + "child": [ + { + "public_key": + "4a20360008e35dbde57e71f320831c43481e6956ff21057e8e43163e9ade1962", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "20af78da7427b61aad444c34485de23946ba2afc5bd3e489b41488a843f6937c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b05f4729bde32a04862d8cc2f22fd132b71f73f6db43a6c1d13d10d5c8b55c70", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b8e12a54c7b03a93fd0476b1cfb6c7a21eee9bb2c64187a99edab4605be8a030", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ca746a0de4c3a057f3b3bf5e5954a38099b1d113e51a1d139b2290aa6774e51e", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e12104950042cfee008095db4fe0af7ddd872ec9a4acf1e6bdbab20f667346ed", + "public_key": + "0a9d036639c25d964f1f470f25033e562564e45d74bea4c24c02eb32756e4a51", + "child": [ + { + "public_key": + "981de349977bf96ebdfdb1383f8b3622b03aab7976a47727449c2a4a6422f176", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f6a52cf5d72d78eeb5974133473499aedf3daff939381a246b279f4e46f49a40", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "be9fee3d4004940b796172b2f88b20caf83e17205e4e3476c35c90faaf6ee954", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ae07be4ab85a5dd7f8157f02cac15dcdb8445df9759b13075d01ed6d4e8d3561", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3052df15df182080b20f29ef52e098253ecfe95ba448c7be83010bb5f90aea05", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a649001d35f3a8a67daa8f381e6ccc18b8ac1e78ff055287fb2034097120654b", + "public_key": + "6411cd4b1685c7f1de0696c22e9dc15afd1af43690e50127b39bb606677f2d38", + "child": [ + { + "public_key": + "42da04e1df41159b84c95cee62f564477b075281c52b2a42a8ff64279cf72d6c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ba45a95b3d26875fceea7518afe1fdf5701380e0a03b0d02e13a4a589ef27c4f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "361a800ae922d8dc7b2c6672cc4450ceaf264d1cdb7c532cf2a45a432c21a54d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "684de1c07fd787aa3e3ac0d0c0f48c8982dd5f3143890c5085164f717cccae24", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "08570bbc76568f60dbd48f3f648ce7f666b0f5601e76d9b31ce67649c4eddf05", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "42112a4e6da4560c155814caf21570ee0307ce8e28548f3dedcfd6a0ef853037", + "public_key": + "34d308c9ec39058f117570e5f743c1430e39578e69a7518afa95af95e765827b", + "child": [ + { + "public_key": + "b09da9ee03f6d12cdc0ab760e4fe6cc994277ab7fe31f6e7252f5e11e899dd1c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c04040cd618de9d5b137a787c5b7c340283d3e6584acc130195ca6708e817342", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9e90b32e8c76e0f27ce9efda92bb230ab0c80c8a6995b55af880344762a55448", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "be6adbf6cb4463ffc13afcbabbf3e992f38887f0f754faa1a892b6c5e7b44b2e", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "bad611f85e9ff1dd326985052ab9251c8ab66974576ecf59189c35b0d525fa26", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1e2183d7e297171c7790f95f1d8f631e943c9b58665779cf0e3434d32a5ccf29", + "public_key": + "fabc23cf3e8a12d7d586df7173791b44256e27e71de7e7140ba55e122c6abe0a", + "child": [ + { + "public_key": + "1c4363355660107c51daf9c931935e112aa44060bac3415a7b3a00c2e06cd004", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a681e24354252a1cda88af001cee0ee66bdc9f62f3151e142e32bc6fb3213a6e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1040c0db7c397e7a610f1483c88c58c2f263ca7bea75dd74dc7e3d9e0357eb3d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3e86bc1a4fbacaf7ce5618886410567a2fb0696afc9da8218b0be85757704241", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f8c311182cfcd51fa0ce71fa76546b9cf26111c32683c696e657df7cff030218", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3780e97fd4f1f9a339a43c445b6b1431aaedaa6ba207c908bc1aa547531d1a3b", + "public_key": + "bc50dd050052714db2f9e89c1bd53babad8008065dc919f8eae90a9f9d0db473", + "child": [ + { + "public_key": + "3204a99f1af9a734c790ed1519704e3ae9d23e1a67d789e741c8d848f2352b20", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "640e9d084595510397a9d38b3d47509cc265fbfe1667189f47becdbba1857a45", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8e7c42361571b9633c5f8bfb81409db2eb48a8214584f4421409520dd4975c01", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7a132227387483a8cbc877e7a668f28d960203a213a8d03c836c23a1f1fd1f45", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e2d9f84012344c5e6045b4d8788ca8d6ed0adf732e4a99ed843a47580eaf3a04", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c5ae4de0877da7e2ed2cda57aff210efbef4d9d013ed7d40333b4b3125a4d523", + "public_key": + "34573b7a639aef75b3fa86fdb754d98e09ecf637692766d9186b97960ec9034d", + "child": [ + { + "public_key": + "f0c05a86580c96caa24d369fab11f09ca410fc952e11aa1a1cb55355bf755e2c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3ac9cbeabea7f04eabbf9dbeb7d240b41ad84e79a58cf370d415d93808add27f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "48122b2da725baadaabe678ffb80018493ab1ac4663f97036a1004a3fb28a153", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ea4a367fb5f4499e09acad4a25cdfb8bc00f4a8e5d00cccbc7b495676326e440", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0893e4ce8194960cf0eeff20b55abe00fbbf265570dc6740a60bd405c0f5542d", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1b1486b56676217eb720cff6096a202afcc8e7d74d858c79144cc3ed9368e82a", + "public_key": + "fe96d823f79f9108c44e135326e52878b6847763ebc10a1a66164fc8cfc9db49", + "child": [ + { + "public_key": + "0a432a9035356b662b453bcc1408b5bc99531f67536c3827cd53b653f45ef827", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8a917f27a7a9eefffc686e2977e0bfdfd7d0ab045a98e4e3e21419f30862ff7e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a409e5d9e071edad9581f808a5b3d1e1d30ac5ee83f69dc75801fe1eb5502276", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ce3a8cff5840abaa9533d16ebcf864403a8d246d91ad71fe525aa1585806344f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9056234509d140d1931d2f08902c66c5d06f00d778e763b84a97355bc226f158", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f5a3b9e710ab159d1771d9141324d4bf63c8466c9023a92f0281ce38a36e3e2f", + "public_key": + "6029d60c58924a953a170b6250504abaab6e9d21d7149bd80cb0707c95473256", + "child": [ + { + "public_key": + "42efece6436b962961c7aadb83998ea873a243bf0aa6cae4ac1092d1c7faa845", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b2067873441e5bf4457ceb30d68b804ad0e4468dc3b309241b6b94849c9e4736", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "547ce8a8f78ec0d8261f9c8374dca30bea812ad4192a44cd4de640dc80b5a24b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b86e17d53e0c8331c14219fe76e035a9dec67bc20cdec42f2be4ca715c0b6c21", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "60c9c46fd2f5576814633c871444096b3cb98c4c26ad72b4af1d79697cbe0b6c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "07aba7592edc0a2ae08edaf96489832d41619578beb293d14275523e3be2a035", + "public_key": + "48d2a2842e7bd81d4acd612b12d8bcbb672caac23ece5d91841bcfc7a53f9e47", + "child": [ + { + "public_key": + "44d6d8e66cb37c2867a85a7a31ef62ce82c7d2539c029db69f190d78a09c8f56", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ca6c26ff73fb84efbae8298778e6dfa13926db5bf3ddc90797c0d117a9d65d52", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d8e62d24a80473167b7b4f023ed38e8489a428cb8c79188ec957444cd5201d3d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "52671534ca6903690be36f367224ede0f29a150c9c21345f42800df3d7cb4f63", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a26717d67e750e5f2be847b5b590ca37b8b86d1d353fb4388f3b5cfd14bc8d6a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "65bf96383a5f83bc8b6cc22bb18606cc2c7dd3c970b98aea1236c0184ef9238a", + "public_key": + "34af8306ba8e692b50fd393e5b29d2571e76a4fb1b04cdf6fff77cc7a1c3b430", + "child": [ + { + "public_key": + "528033cd42d1bd2efe6e499c2d55e258c6465c4ee378798266f9f4ea6d70167a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7867edc6d865655d805e9d39e2ae8d05b50ba5c348c95974b1ce1ac92bc4c87e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9afcc2fab8360b2a274f25c2a8c118dfdf31266b1da0b270ac6d2364b0c84a68", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d69abee771c4f898ce2426ec018d3ba8015c3649a208eb6e8df4e3efee07743c", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "98ce6ae3ec54f8fec16c841c1a20e85df8cc53903113b2d974703615b90c235a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c174ca7a3483457c05cf00e3493813d07023dae8c692fe5ac1308e2dca00ab22", + "public_key": + "887d0f42f5cdd83da54b9a1dfd7d7d6479450fa050a11767c02eaff3f16a864f", + "child": [ + { + "public_key": + "7a299ce9bcc19748bbba054fde3063f0d47d36bfbaac7d795173286c74c7b35f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f6f2fd7cf8331b4518c8f8b67c930bda73b880468616bb1da43adef41f7cb947", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "78d80349f80ee7bbfe54abc0308762322aebb944004012a5e5505d3a34455f14", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c87795025dc2a7d40e071cad4ac608d761110098406bd6a53c0dab72380d3338", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "98a525b0a259140278fa6cda81332fa3c85b50b28a1544cdc4e2422d149ed366", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "0750cafd84121a88a458bb9383fa8648abdb3a07907deaa3f6e396fde0ae0dbf", + "public_key": + "d6322f48a0d14ebb00bfe6d3134c4b6a466c15437692e97c2e4e05050697164b", + "child": [ + { + "public_key": + "f051a486da1fca5c7584cc516128b286a3501259596a528d97ac785322c8921f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6a5409c53f4a9c485fada318631c7e5675012b8e31c3a00f944ac8f54ddcba5b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "da228efc48dd2898b895c6100028dadf633c4164a5727434a081554f7c3ef159", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a449d65d05438bd1e6dfefb26bfeb3305aa4761adf299ffec5a89b30c6711022", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "92b6ee9249a30c268aed06c0d20ef2399fb461e79b3d459c7aadddf4ee6f0a47", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "5aca92d5e64a5730ded49803f3cc9452cd959e878b03d03006b29585a8f1f0ac", + "public_key": + "2005b40f6ac25bab2130d5270394f90a19b4224d4b96c5e8067395a7892f093c", + "child": [ + { + "public_key": + "4e20d76fda62055a5a3aac3fd2d8c0e4a31722c9a1536aacac9a003f64827d54", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4c3ea02793c95f211da28755280574d7d3ffa72838d17441c4553d48cae72334", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a42f5467154bf30f299f426deb521de148eda7e1e6952ceef879a4bd05ab284d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d60ac25c931f103a73a8599a170989fec02bb91d276fed34efc33368193ddf7b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "da4cdd10a33e267fac926cc47cc7bd6db656f1f47ea0eed6864a80cb3ce1c434", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f453c9e92304814870d12d5ce6c34b4135577d5d60aedebf47f839020b53e8bd", + "public_key": + "081568ca0b125946e5d0bad77a56ebf27e7ffb6cddcdfa70e54f3ddd870cc737", + "child": [ + { + "public_key": + "90086f59da25e7000a0dc442bfca532648c491d63368975dcb94075fc928605f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6acf8f61679cdad346c2634c046f1bd6a2f248d0bd19302d9679e0276c44d151", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b25ae286a736c24a285a7a47ef744319637d6022ba932fdf981e089561ab697a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "04e8dd7466bd5d2a54157ef2e707aa0823931e87abd812223d9f3d2520533215", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d4613e79e47703aad4db0e6ac9ef4b9e293acb13ce603f7f228a6ae391b2f564", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "15fcdc814b5f235c59ba8c1240266ca3f5bd54b44661ca6b932e60151866bd07", + "public_key": + "c637b71daf15aa53430594fa5e76a56fc9b1daa85723ec816ee24afb05639871", + "child": [ + { + "public_key": + "443afc75b9ae16100811c9106559b3b5d3cf9fecd051d898761194af1129e623", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "38f11a515ac6214dac7f683f3b8af0c1570fc1cf1adcf530b07552b15d81246a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "562068a7bf09c364ec433719e0533d02ab513e17ce528b8bf5bb394adaefcb23", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "62a36f14f3b4f57a281c06eb0301c356fd85d5bf23cd6c24ae204664553b5f26", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "aef41667147fd91a664b9deda3158d87cabae730205a73631d62481e6556937f", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b72774df9ae40a3051757aad2df99fa69ad6ed3005fc4289aa1fd7b7854d78b4", + "public_key": + "0e902eefa78d8549312a8ad50f59dca9f94864a477f31a5da6d17311eafbd269", + "child": [ + { + "public_key": + "dc2cc8b8dd8afb0a0eb067ead7fb29423e064fa7670823309e6be6596f69d022", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8a9e0596ccae213c19924954381b176c7a8821336a43015c66d24e6556b10d04", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c085dc54cb216e15370c3cc5448e52fe2d6bc52e52f925c59fe057b0b5286f78", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "de328f434eaf67f3fa7ebd3813405478601deb3b415ccc5e3a5a7f5f04cae65f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "24164ce44007c754a10664057ba9b803531c2f86dc3f3f5181681ed363f5045e", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "9c548e7c10c6bb955faf5f5fffa072ae6aec54f55e6650815455df5c5af9aa73", + "public_key": + "3676850104db57a6fdd03cebadbfcda73281e3cb8e0dab76c34631fdedb73672", + "child": [ + { + "public_key": + "1e957f87d76734788c8cc888bae4f2c6982771e5baa996a713dc0d73a651cd2a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "00674dad8f526a4904dd6e0de7f771c2bba68bb58a17b230bcb156023154a301", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "20d735d64be94d6298fdd518a2af832832abd138a5e9891d2fbcb487cfced26a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c6fb984eb1cde039afa243ef6731e61214a883467f16bf9074ae7af5fcbdf34b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f60fbfbdcf200a14b4af12babae2ddcf54084252e403b563b1bf1adfd6e2191d", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "363da55843afb6abeb55791730bd9e4e626a80caab5f8ec9dac9584f9f79c8e8", + "public_key": + "1e1e47208f0b10d4f04b61d546a7b37760cb74c252a7ff8b5c462b113d8c1e13", + "child": [ + { + "public_key": + "ea44400578d0c0d25ef664ae94d73fcac172a1d2c8cee6db1b1d8747d84e9338", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "cae2402029a56442351e69768292dc98983a4bab5dcf6ff735f28f25d312b202", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8eb6a109b41e2381cfc2f7af1ba7f4f77aab5eb45aced4522abeddc6f11ae25a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c8077c3ee22cf3432c943637b48a99cd20076c05e57ae2b14e51882fb8b35331", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "36b085302a5d09a918c4e8b41badc68f719694d8bd1aeefb22e506a51663652c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e7724246f888e6e0851392b1294064c801e9a881cddff78e43f7d1a35d9b42fd", + "public_key": + "e8e9b091cd71fd7e24a8b656d49270caa39507919340615902b0e1478a7cf72e", + "child": [ + { + "public_key": + "ca05cc9691f3adcfe247ca1c0247634acbd6457ed9fb0888869d50936b3aaf43", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1ce486ce87887d06d56885020f39039448165ad7a8adae3e1a42637b77da0059", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "82a10c2f776eeee8aa920d2fcda0867a755d365cfe930258cf982c3c31a3fd11", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "58c44e3c80237bed1a9d851e3f97f2d327a6a45a532a4e2d527436afdb490a30", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6888430b84b01d491eaeb380f345ee25d40f179650935fb9ad17e2093d2c122c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "0b10acf525bea4471488ff2d520cc2681e986bc595bf12e71a961df82f870f18", + "public_key": + "ae43ba070f60008f1c82819568f9de5cf5003917a3632a69878e5dca1896cc45", + "child": [ + { + "public_key": + "bad99635c043862f1089c75a82883d4404e52a978e698826df16035dc1033a39", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "22dc903fbe241a9e519d3884e61e2ea54902d7b611d627694e128bbe66a9d212", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "229fc47a74733282015a75458014246d6dab576f712da09d425f7b240af37819", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "10090f5c71a37435c0d96e7054ea2516fb5f3a71cfcfa9dcc66419d4cb32d030", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1cd05f5ff185f9497caaa75dfea50f1047cc749c8b6c0a3718628c5ec454dd05", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3d949057d63d778ee55fc267863314b2362e28616efbfab8bd9a92b121cee6b0", + "public_key": + "5a27e71f8fc757a0068ff2fcadfcaff8b22703c37fa235f50b22ceb098fcf86a", + "child": [ + { + "public_key": + "7ef3775caf732da82373b2b21cccd8a979937eafb26bc522247dbe648ec2b17b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "522865ba07ef5a957d0b8b5353266f54aa505fe0dd8a0da735c4b70ee785be0b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a0fb82106b6402980ffd452bd86737068db51d29ca31743c4c3d54cc1ecd0c10", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "22864c647176d69920286ba0e65635eab0a607241da5ead0273a121e4475fb5c", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f47af9569a612e78e3dfe86b321c9760311225deec2e2d84086e75e096d4e847", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2cdd126a43e779b37b7f040e48a5970db81bdbdb858456baab4054b5e08e79b8", + "public_key": + "3ad1a95f224eaa3ea3d6b8f8f0f16a0c976adffcf5c2a114542384ce5719b95f", + "child": [ + { + "public_key": + "a060f165b07a84b8da85e4f132c6045184605768b14c4f62985ca3711ea3aa68", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "50e8aac20f755c2df75424747e569ce452cc504a3a918b9df5312cfe6bbd7157", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "082b6d8b740e26b930e2bf8cec55ccf2ffeeb67c8c80e4445de42d57a23d3c75", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6a58a5fca5531cac9dc235822bc98ddcea4e1216ef9996eefd25fbb40dde0c53", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "14118b1b1ab212ce4de5715ed6b93b0e58b7a660730a38305c2b2c63409c4379", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "682cfd65b2ef7d858e33d5cd5ac77240444c7bb423c71af89c4dd308a9a29ef3", + "public_key": + "cea897ba53bd5f68ccd9118df3254d88f5a4109ceb5a5b82edd3700a33178028", + "child": [ + { + "public_key": + "225b0a18ff8b01aa1f7772c7d9139f0a13fa0cda707d983ad0eb979513c46d16", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8ec9a3ee76376dace43518fd9fb9f93516d710791cb993a41ce98c56f8853564", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8600dae84e362da6864609a3fe20dfe8ce06805a53942f005ecb91723cc9374b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "72ecaf999b65559b097081bd02f2a40f4d86fe324e81a33b4fc95935e9b1326b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "226af66ac2968638209e0223c42cd87d90c1b5e3759d4f2f21110b55c726d067", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2c01c1d2a2d7d5ed8830c922bc4e9a3daec76e9e58cf4ec8eb008ac5c316dd44", + "public_key": + "ce9da94b0a0cf06bcefcb81e8537c1c1a581c81efa3c2a6cdb0cda5878aa4971", + "child": [ + { + "public_key": + "bac5df67b41f66420a9287b901b01841841a5cfcccca38f3eab8d1232c9b0073", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4680353e80da3fd7bd3547da114a4d2b8dcb8fef5d430faa350ab51a223f5853", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "381c05bb306f07a415ab25b2ae0ad55ebd2bb6d8bb89eed4aaca1dc50c1c790e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8ef29ba9654a44be26f57080568f3eed2394e47f1bc890e822c75c293cb64440", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "5e0ab11c722f77721aaba8f6131e5c736c89a095c4523ba706694aaafeb6c62c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b19c2f3dc635a10cd59c825e57efb43dea4c3baf82473e671340d1b7179c4158", + "public_key": + "ae2e65a6befc11fe020e588dc3e86ab041f7a33c08df7a220c05fbf1446a707b", + "child": [ + { + "public_key": + "fc39718c25f9c997e094f232a1045a6f198df93bc114aadd54f485ed52b26937", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fec8c70439d56c1338925524338209058d4fdfc5bbdf0358ec6b7724682d350c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "98e84e4667a56b0c430b47a2da8cb0d7a7f9f759523e5d1ae979aa952612cd55", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2c2f3fb882e73f23663d551793358b14e5ea2a308eacae749890b173dd30bb59", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "34077fb6cd064523b81f5e643d281574f19abf09107ddf7ab699e3c9c2b9874b", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3e062d3ce2d04adb3420ae439ab56b66aed85679e8b0555e756c12627699a0f3", + "public_key": + "307f9c3cb5cd351d12a987238743ed03204e3512766da0cb2d61d84e6b3bf65a", + "child": [ + { + "public_key": + "8c15d11e41169f58497a02cdb92fbc4b4770d48a33d72c3f8281b64c7b314107", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6a1eda8ed5cf58f9da13470fce0cfa80b1dddacd8a7318f3d712cc6f4d6a740f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e61032fc75f39e610747285530bfde5799c9e7652d6943e4443e8a911b644601", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "bcfcfbfc9f42abe2c8b5c85e2f5a8cfbf92f358c8d469fb9d01d536b6adcce52", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "cc22bcb23926f3752a4901724af65163a42ba50684537a9f5c61c9a7c16c0521", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "ac39f81fb5cb771d4831dd9e1c104c3705c031391341625458be32e9e2ca254d", + "public_key": + "a457edc6e7e11c32d27fec521394f17f01bbfa8edcd36de672b33788fb38e836", + "child": [ + { + "public_key": + "3e879fa3ef4de39bb9cbe08d3076efb95ffa502316a0884668890610e03edf4e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3a2100e9a4974c21e0b0150e3de5b0d223f76179d549d251d0f49fa01231a368", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "304f875e854ee34709c9409aa3116b5975f90ae6297d365ce2c2fb791b433a4f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "462ef4f3735d062878e93fc4fd7ca606f7399d485313867767f626d9a5a10d32", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "569ce6ab6b947ce2d1addfd2b4d4bda4d840d594f59f41c1e6ef1fac06ca606f", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e437bf9d3f6dfa075af6745d41017f9366c3cda8158224f37f786afb0e3d93da", + "public_key": + "7e330cf9a304cba1435a8c1bcac844d53a31261f631776caec8d5c21e8725d63", + "child": [ + { + "public_key": + "26ba7f6d8a9892140c876ca21dd6b75ea9e3970c1c4ef7b1440a2121726ad75d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3008ae0e8f13b3096e10d9abc27a045aab9b5c8086752f3c55a588a69b894b6f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "bcea053c01ece55319fe6480d465b24d6e1b655ae3367a0fc7772e459116e44f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d2378c7a7f35b89163326c3512d886b69d24c69843200b165608e7e11874c90c", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d0f3d1c5e0e3c489c9b739254f61f7201ca9eba5ad31ffe3849197f704a13c67", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b13d08a8d8168d7a4dad620a628ca5b87f23e3d565fcc98cff7fc4a4ff7a26d6", + "public_key": + "3e4c0bb263184a3a68ca9132c36b9ffcc5cae3a627a934bd3715587066079e2e", + "child": [ + { + "public_key": + "d0294329e93c62b4efab97ebc416e74a5f8a37d4e005dedfb0930e8c4dd8e41e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fca2c4e42296050dd3d7e4867f021cd74cf2e6d09ce994b209f28086acca3573", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c495b6fb01a6a5c2ff862458ecc081f331d7ca74dba58ec2ea1b41b3dd8ab107", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "baf281442fe6212dc9e7abf50a0c99c5915fd5aaed6120bc19abef10ed285813", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fa5477444c170358bd3e9c0c27f45c6d4e35081498b59fa7b21858cc0b14d634", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "12b99bb33f7d09ee43af31c834f4f654621ac0cc85bc8f24f5079e3724954e18", + "public_key": + "e48b88fbb304107b036642ddecdffdcc1b7be0b27378755964bf9daa176e3d1b", + "child": [ + { + "public_key": + "6432e22efbe97bab352e40333fa4bd20cb1ceb7723d5bf14e02ad4af2f782a24", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3077d71fff93b97facd4e2d278bdfa806dec30946eb951b50474726b22b3ef27", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "92b7dd9d2035fb170b48161d9ee202c9b4d1e7930a7eefe9bd8eb455ce1d565c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c86d2f1b69e596c6c7d337d07b43119a722b184428f3b32579c6140d2d5e3b56", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9478804eaa6c433de7742b87f1f65fa199aff7761dfde64e80f19435b90c602c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a09dca9ef45042cfd004f095cfe1e815707e603498eb39cb3f0069e2e54e86ef", + "public_key": + "448fc7b449a002f7ccc3a5dd31d14f9714d773d3c5a5618f4ec5101baab5f022", + "child": [ + { + "public_key": + "c21352643b70c0a8c95a33a311b9b9e74def65aee29718a21e5f3951225d5b2a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4cfe1c24c1d96657faee404ee47452b968d11142a049ae49c5900d44ab407035", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c41182556851fbb18fd4162472a0f6d033e4f2a3e7a91bb003d9181abbb5703d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "22638944d19edb7c9dd83e2958929f48664cb277dd7f6495a0b3fe622a5c5161", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "14fde57be7ef911589ca50b1736316dd7caf19d7e10d96ceda0018d015416107", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e606f9a5626696f16b857871b7ed1e37b692b57a30f5c4190d1a1783c4fe6ecd", + "public_key": + "fa053fc4c5811a2353850f64cfe9ef8281012c6e4a06724835a06c8adb2d343b", + "child": [ + { + "public_key": + "3411e8b91e4e9ea4f4953f6abd5110f193d9cf90bffeceb67a52abe8ce65025f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e8e8e3ff2c82537d693d9c75f3be41f7f5c85dc3af66451eeb5d97b09708a41a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8e6b52ec12b921c961cf4e5350010bb05c0624fd8d32ac3e36ac718b086d8259", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f4b572cd89385f944c9778cb0415f26f8db8b597be418d7e7f36bab1ea400343", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "22f7c6ab6cc33452680ba928916b344c885d9b2f1935ef8d2b57efd407f70c6f", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c0fb9986164a957b23f0d27f51d885ef87a23532387fd5ed87955112a310a0aa", + "public_key": + "10edd1bad8e878be8ef9b90418a11e011d28d32ebe1126f185fedfae5ff0b26b", + "child": [ + { + "public_key": + "72a19f9c51ddaa9276275bb02e2cfba4d3946d7aa921ce8088612b2a3ada4d35", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "82f375b90a2cc32e0106fce33bcc7e7fec8d0b2dcd15eac3145e62c0ddc0490c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a0caae0d96833f2aa6131baab9285fcdbf2dbd2323ba7d3ce318f3c13c9d5a7f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b68e042179e08eff8b23d487dbb7a232c9abd10fd80e089f529400229642ac4d", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d053d88c3e4dbdbb26e5c5fd5888aaaece44d85b1b5ef47fa3b2b8eb48353a1b", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "edd582aa72599f494701f71fb2e9c644854ae0422d34f48f9d1272d63521d1bc", + "public_key": + "a2c8343488469daf04fd30d830062eb421a0cee3f6828ca5d0e1c8cdba76ae00", + "child": [ + { + "public_key": + "02a2b95255bd8d8e0a293dfbb200d12d5e4ff7709b18898bf626f738178d275d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f28c08ece15f9583b5227d7101c8249f93eef4eaf53a2be5de0a02bbfb1d7933", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "627cea04690ebafb3f033a85ded1d59d49fe506c44a724e70f10fe62d6bd1f2b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1810dbab5bda656b82ed95a2672765e40bcd6772b6ad0d5ed0af550cd4c20a18", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "580775ea662f6366e553bd11435024498722b13f3f354217bd3246e0cc7ecb04", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b9ff506e4cf8f0dae2a21723c0fac2c24f57e729c6569e6350a7c52587298c83", + "public_key": + "3effd1d5ff35760951ee6a4ac17409f43fe21235ff684c1d8d54ef74626e5c54", + "child": [ + { + "public_key": + "8ea8f7759026c9c04912a7edd3e8699220207131c6f1d2c9e04d5f20bef87014", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "203293879aeabda04b76e4ea2078a9443cc067fba5a66facaa155f04862c423f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8a2979c70dcb4982a618b3ae6d71a6cc2929e4f4654ef6db0bbcdef887799739", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8e81cd7bc6ed2e24ab1d84c99adc17e43285e9bbb1c55ef56c37b62c78b8b71c", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "38dd91855e25a038792250c301f5c86ab3f4b3c5630b141fd24e30d67a359604", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "294365d6b2a0b09325882280c52ec3ecfef89782776a79d48663ceb5eb6c36b1", + "public_key": + "c6b1914bd88213c6a89ce6f856fcf57b6abb62063737cea2f3afb576c5c0e938", + "child": [ + { + "public_key": + "e27a16bbccdd97cf20504b3204d85cff527a820a60c4ca9346c044456683bd20", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1216f29acd02465f0eb9f52f581d0d160ee2e643273992d374269963292a7c12", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "38c09fe365a00d577cb01fc1d791a400c451dba4c7b265c25c32740fa5c2277d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7c13f83402d963d9cc6402b8b14100a6b5d38d6fae1df0e07c97e2ef562aa409", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fc17dcbb7efd0ec658bcbb126725fa849ebaf132ee9bbab5bbba5b2b64ba6a36", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f2db35d5ddefd4ca97801795583a9da38206a893c50296a4f0f3701913032972", + "public_key": + "ae9d54f15027fece61094e8be4fffc33600b0b60ca1da0d5235c06072549ad4e", + "child": [ + { + "public_key": + "6ae514bfef8658a07a86de2860adb1566dca19dc3a5a51b3cb37d2b0d5bde150", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f48950ea17d08b1bc83b1d3545f5a8673884224daff104f24a78c4847ab8583a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "80be16298a097e9aa27a4fabee87c2a1f4091a4cdb4011af7aa536a3f6dcfe3f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "001881142ce2ca92e71778ccdff9679f23114b849e481a3bb5c99b5c8ae96c25", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b2aa8dbec16207d5e8d39d43bc3e61d399d81bf60d24b02cc7b2f126035d8e0b", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "132633cb0394bcfd0825679b9cb4229811ef6a176536f0b2dff8063af6239233", + "public_key": + "e6556b1f56f455566628cb86f4e762c0a04fc5a38e0c05765cc1500607f2b04e", + "child": [ + { + "public_key": + "bcb19882ab2f84589b3a37f571aaeeaf89ecb57821fcea22d03fd7d640e01c57", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "5e8f9b7a620f8e4071b222ee31ae98eb5a56d14ec9b94208f21c018162500108", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7ab2004698f4425f0240bcbd326e20e43cf77b650bee9a779fe215e4a5658401", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8e1421a1240840cfe1d73e55bddfb8f186bd8569879c831c7c662c8fb1f37057", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ec2bb90319fa74b3346ba83f01e43f475fe365845ced2a957609028ae500a309", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b784a41879c5c1074b1e0eb2bc5e6b4c98b18005742ef17eb6e04d87d30b0ae7", + "public_key": + "f457a7257eae4f26f7a167e5b008faf302967ffc51f260bf9db3a312d2db737c", + "child": [ + { + "public_key": + "204c63d59bccfc1f891732f1e19b737f770eb6320e3f6dece623b959e1714a62", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4ecc703fc11ff5151557b1108dea81a3456e9fa329f05ea3d4a84642687f1d69", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e2a480775804d1e9c63e56c6a301d8fd523456b3c0ce60f7d6da769e3719bb26", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b80a1d5bb8bb9e86e98b1a393f20011857d5f3dbed92c9fd3ceb2cf8af974612", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7e826a727f8bcd9b65c1b7a5776a3fa40ce8a60257e356b3ffa2450c9b348d37", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "4de3929b2224fcabd923e9beb3e7c3833921e1c69cdf238f3cbc1952fd4ae5c8", + "public_key": + "488aa3c7913bbbb4a52dd9d0183ba8bcea36071195833e3eabd3024193445234", + "child": [ + { + "public_key": + "322ec44a7f76a08f29b5daa5f83eeb58f75d12b9d22a1a3a1f0f5407eac6ee16", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1aa5aa43f10366ac8d90488bc63173607a1cc5a904a9b0099c31cb09ba0eb60f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "58bf345e58762cb3e15a8cf9cba5390c3a953477a62b827d34f8d47298286f63", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "96c32280ed20cf7bc549b5b8bb79196222c98771cb351e2e849eb24440c18720", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "145aa24dd66758b1d0035c49baf208633b7cec4108359f4c33bba1c9f4f0b157", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "db794ce9a017c60bb60520a46ffe03edc9f83c3e96e3c0cc026a90a47a2498de", + "public_key": + "c6d33b62eb3aff5250616344f866c954b02f2aea878db67281f8a51bb1a7a704", + "child": [ + { + "public_key": + "d8ba52224b5a4f83ee781948b18047898b9139c622fcb275e555645cd9191963", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "084cf1f30a130c1a7bc9faa0c72f1f349ebc1c508b3845b485561b67e9f85024", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e626dba473f45f7ea41b984ef38b3415848c82014f4fc88346a6b4365a2e9071", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7441065cbf56ee7ad592ad1c8edc83c44c5293cb83286a3b22e59da2e77fe041", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "722bb99321c6bc8343747da7cd383346fa44fbf2b219da4afff1235f14856110", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d37ba0b25a8893918b121d31a37da3227b54220755d2dda3b455c19f7ebdd9ce", + "public_key": + "fe0ff4a0a441b64c805b111c6cf142e2567d976472e30fc049ad30b2f855c157", + "child": [ + { + "public_key": + "82c14fc3d8258aafe3b3e57591792a5ace969b7d198a1083991c37b11a793e0c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8cea43b22619445ba36203fcc4af23ab8620527685754be97e6ea26b950bb202", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8c661b9de57d51dcf97d61f7cdc6e050baf8fdf0bc1cf321b1482082a401033e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "08d4f99ed6f7e373a09b7ff19599801604921261c662ef0c49e6cdbf177e2a66", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ea9047cc7877e692a676f5c3695ac5dc5803c8e686af4dfbd1075c096a776428", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + } +]; diff --git a/example/lib/test/schnorrkel/derive_test.dart b/example/lib/test/schnorrkel/derive_test.dart new file mode 100644 index 0000000..9f2d3ac --- /dev/null +++ b/example/lib/test/schnorrkel/derive_test.dart @@ -0,0 +1,46 @@ +import 'package:blockchain_utils/crypto/crypto/schnorrkel/keys/keys.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'derive_test_vector.dart'; +import 'derive_public_test.dart'; + +void schnoorTestDerive() { + for (final i in derivePublicTestVector) { + SchnorrkelPublicKey publicKey = + SchnorrkelPublicKey(BytesUtils.fromHexString(i["public_key"])); + final child = List.from(i["child"]); + for (int c = 0; c < child.length; c++) { + final chainCode = BytesUtils.fromHexString(child[c]["chain_code"]); + publicKey = publicKey.derive(chainCode).$1; + assert(publicKey.toBytes().toHex() == child[c]["public_key"]); + } + } + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final miniSecret = SchnorrkelMiniSecretKey.fromBytes(seed); + SchnorrkelSecretKey secretKey = miniSecret.toSecretKey(); + assert(secretKey.publicKey().toBytes().toHex() == i["public_key"]); + assert(secretKey.toBytes().toHex() == i["private_key"]); + final child = List.from(i["child"]); + for (int c = 0; c < child.length; c++) { + final bool isHard = child[c]["is_hard"]; + final chainCode = BytesUtils.fromHexString(child[c]["chain_code"]); + if (isHard) { + final deriveHard = secretKey.hardDerive(chainCode); + secretKey = deriveHard.$1; + } else { + final deriveSoft = secretKey.softDerive(chainCode); + secretKey = deriveSoft.$1; + } + assert(secretKey.publicKey().toBytes().toHex() == child[c]["public_key"]); + if (isHard) { + assert(secretKey.toBytes().toHex() == child[c]["private_key"]); + } else { + final keyBytes = SchnorrkelSecretKey.fromBytes( + BytesUtils.fromHexString(child[c]["private_key"])); + assert(secretKey.key().toHex() == keyBytes.key().toHex()); + } + } + } +} diff --git a/example/lib/test/schnorrkel/derive_test_vector.dart b/example/lib/test/schnorrkel/derive_test_vector.dart new file mode 100644 index 0000000..1768eee --- /dev/null +++ b/example/lib/test/schnorrkel/derive_test_vector.dart @@ -0,0 +1,7202 @@ +final List> testVector = [ + { + "seed": "99e43087cdcb5092e56a3261747bf9922b767d857f2eb4a1003bd4df5ce60896", + "private_key": + "48384c9ed52685fa2973e1dde51f971d42b4a460f40e304730e7627a2da11e0b89b76a3802c3eb2a8a2314a5ecf663dc820c71610b04b47e09849eda97a92d79", + "public_key": + "843a53aa45163559bd505470266fdb1f68572ddf4f281509bcb7c59e27189871", + "child": [ + { + "private_key": + "c587639d3224d5dad00b90c6512e7f5856a738f4d957ab77e36b5d693674070c25de601d957284ef49e22480fe002a74c1c320643d11f69f7d16b4be7410fe8b", + "public_key": + "e8ae2dfc0685f91e482807533b7d7e3e0795f2cd886d775836d75c08e9ffe650", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6d33aa4a1ac4799045eaffd1d6ee8f53b2f238d896be963c71067e1582c07a0cc94c722447bb538208e0c0e125e30dbcf2332ba20febbbe719c565d6cdf9a79a", + "public_key": + "4a9b2ea3310960da3e28a02456812e837f27326cb8cc9999589e8cea29c02638", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a155159d0e6c71cdf1ea845eec4b987c5bb64865d6dc3db78c6e1c91ca46d30ccf2df0b35ada6b8252aace3786337a749fe9c2d43e999bae1f709202a132d2f1", + "public_key": + "26ccd4f04a8b10e8054284a6164300056017ff5197a791c3d290610be0a7d52e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9a7fe155e746b10b526a834c2e5d770abd95a343683a7790e060473aab7b4b0d8a90c2a0b5964b77efed623e05d14a51c5cca3c67c456b31536eae7ce02feadb", + "public_key": + "5ef3dcda9c825318037c99e128ab451b5a0008bc2af7aa8909be80c8c2983c03", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e8cea579a169e3c6b592dca3275cf08f13029d9d887fc76491b7024a1036610310ab74516ed7ef88e35767cb84be2c16c5eec8fdfe244aba88dab8aca3cccd4b", + "public_key": + "8246954689d50bc6cfca2a8d884121b38012f90d3935ce353696e9a4e840e677", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8d8d9f8c784d6fe315a65f32aa2c767d1fe6051eb41853dcbfb540000d72110a8d29a93f09f116e9e2148a62cbd01640281fce21edac8c6179f96ab910a8694a", + "public_key": + "4013206176c7bd10c932bbf996dd69c1951b4b9fd6fc1bf1afc027346b0c9211", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1e5885f3e24d74457702b46c0eb659f79e9b217cdb320c9c89c4673c0e14b6081ef177a5b216c0983abb73457ef937b738b7ecfba8af24a8e1e5655113aac1b4", + "public_key": + "fc0a6f5e0523822257079abd0106e21224fb756252df183d36728f45e859f80f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "859dded752a8e63f7a93cf9e5b09dea3a1e714d71b574037721c29c153e653e7", + "private_key": + "f635fe1804ee09548ae4c1d455913f35b4583eb3617fbd1bc19af4d381c6bc0b696172df465b89ffb82adb9b7fbe89f61d4f33e269a2562ea42696f20a0bb1bb", + "public_key": + "023abab02c14db392c6f5f4826dee735386b7b18ba41746c8acf957ee014571c", + "child": [ + { + "private_key": + "eb944bee62ea3dcb0710a2c57856989e638468655022886a5733fb238c16580fd176693392dfc00155b0c3d2b546b8cc47179689050b01b8c524672b5c2762b6", + "public_key": + "541ef49c8083ff65e3c9d7928612a6a8ac10039e392b54263106813a91e0097f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3da1351a704977a10c8ab05d6cf57da40574f70dac34ac7152e54cdb210e5405ca3a9678e4d6bf95fbd1faf22c472e37f8292608f7cd41866ecd8f07c12906eb", + "public_key": + "fcc586001ae359fde030a7e5b6f8098a13c7a6ebd99822c3ae786a63a65f041b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b2f7c2f60dc0efa31a047913b21bc27e53c4a6c779388c3f013962b7e4f5630c64319932ca244437f169f798ea9a79cec31e6d9a7604536eda11fbe9cc11aeb9", + "public_key": + "90aa12db4221ebc2e7cc2f3192962b39376602bb792769f1de15cb6973fb0357", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1d76bedf09a8fd4b00331d434220f339fe298c4c8ed93d766ebbfd9273dcf30dd7a6223a4f58258e04db0a3c89d5a46044535cec97e366de547065859242968f", + "public_key": + "68844f0211db514ab20e1012d9ed6ff74a0318b0f26a8ffc51a5340596be0f05", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "09bea8b4b8ceb16351ddd20f279beba3dcfd78805cf82d48ce105463ee6b140b1a76ea4cfecf9ea3ce818d32ddc6a9e88125420c6cec498a332bcae93e528bed", + "public_key": + "ac4c5252fbbe76230c323874efd8dfcf35435ae7bd4971f3d2b93c4b7de63f48", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0be7eaf48dc9fe5bbb755268fd3896358bebc0513854d019cbaa1cd80872e408c5f90a81482deca5b90dc2986a4873dfe9d013674b14fb1ca9371c08f3b195fe", + "public_key": + "24b45e425cf580bf80afe537ee6a1477041cc2f74a8c5c717f3fa7c31a266313", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3112f65e1e5f4c479f14535d24fc8e2ab9fb9c4456702a85bb8605593b2b180fee497b3537a6dd67efe1522ec034b6eb36d34e9cb30ea5945777c6442825e207", + "public_key": + "8a5abbd1e9c8fda90624f1a58fbe8964fcaf45c5a7b811dbc50b1708c1495966", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "62b7e634a1283c7b75346efafb42ea93b6c7977151729f614f071fdf1a12cc00", + "private_key": + "9d98644d1d9ec75f6c952e18cf1f583162cc45cb7034d3e3c7ba6e777c33060f7fe7b49a3153fdace063109954ba941eeda8f6d889a4070cfa28524158157a31", + "public_key": + "e2dc16c6821627be3b6816ec1b5acc740841b0ae2a4c624a532af547c497751a", + "child": [ + { + "private_key": + "b557ef261413130cbf2bfd47fb5d1c396da0a4bbc37414fa4b251cbbc1b8140cc7c57eb7817e6103b6df7c58c2bc674ad7f5b0218612dfa26bc55744e07ed9fd", + "public_key": + "16e293f02bdd3a5f5a472512be7bcc76e64ad7aa421d4882b914527389aadc53", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "40a3de389f82f71d91a11ad912b1a683ab589f9e21bd28630826c062de92dc0e2b92720c91789d73b61777612d5bbe301a055268a70e57f8324043dac9fddc45", + "public_key": + "78d19d94c82d8af223d0a269575fb961db486d9447a7fb995a343af62c60ef12", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "65108aefb83604846e347e4e7cd3b11ef65e203a65d165776c95eb852ebb21085b5fdc9c54af5e47ecd44efe973ac8cc920f3b7a15f93a1ba0f8dfea1c605ee7", + "public_key": + "de793bdafaa9afb287b43ea27e0ccbf8b192d97f663ea8f80af74bde2c1e7a19", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "22cbaf4305a3470a6ded4c8cd36bc43011bf07cc5d7b7e92979dbbb9440f030c857b0f4aa5653ef9bb8b5b1f51c1e077cfc84da16b0849e6c1e80902a0e64f32", + "public_key": + "04b515260105576464d25c811df425709a66975865c1f8f2e73ca8584b74cb14", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1e0481b52947d36fa76845ad02c02643aaa4a9ccf64480b5dfb82b41c243ba0155472524220867b562ab39359d8d40a099dd5f136b41f27a811e25ab33260efb", + "public_key": + "3699c56d84fe09f5e0eede440856531c800dfda4121d31948e0efc39d3229b26", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "4cde1fac8a38d62664d8b3bcc1f9f6dbf39d5dbce9ffff74421e6f7331abfe0fcd42074222613e8f87118da8a7a8292952af8ba76ead798bd643613592609c9c", + "public_key": + "70eba0d200427ea129da0e389c1a9c41732cdb79adf9c02d03b2fa445e21c770", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8169255937452b6de1f5906762a1a497d5ea8d2183334df95260a96e0a510207557306d6de59e48e96f455cf8c4ea1d9c39ca3e36a91939f47b1ae3fec270e24", + "public_key": + "72a8936073439bf4130b8150534a093f1d831915b018a0eb90cc8a80cd669f1c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "6b030163f8d57a4a40c695ba4c81818f03e8dfe09ca74eed9f6cf664da752776", + "private_key": + "a692c7a532dedc73e7c1d032ec471c71152d827fda36734ce01eae548ed35709f89aa6d7caf89ec26115b1b8c50c8da8f55ff867ea28b05f2cff0427adec1646", + "public_key": + "ac705b373551aa85d2d2569e955d07ccf76cc1c0d0740a4165c0b4b7735f363f", + "child": [ + { + "private_key": + "10ddd57655b279ae3e9e6964e0d5509cc732ff7c97d3a46a63819988246b4e0a52d340837e921efd62c7e0dbe9f2ecf2d7268706a580885146b20d0dffe17455", + "public_key": + "da81291eb23b73cb6aee0897aaa9891e08be976941b4b9de01762a06a18baf46", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c9f894ced611536b037cda8a63a96ce491fbd68353ccf4d049cf00fe5323aa0a8545cab7124e61eca0b12fe3414109f974648db9014474398fcc49282b7a761e", + "public_key": + "8e9d4e0d20fb5236c120fcd79f879321d77d5690eaaf6ac0845541423cfeea72", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "57b198fd0e2bbf04d8138720a4805840f489d53e8265acc07dd63868a6304e0c606085f0a7c944048e028fc355f7f3da6e7aa59f60a656f3958561e1dcde29a3", + "public_key": + "a010f9fd85931becfdf615b1c16b7737333a16e05a8526f4adc781ee9979bb27", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b530b9f71b7a5b34d3424795232f6253e01b62ed6ced665b056885eb2657180daadbc84c53ab92a38bfbb0e5c959582ecae8c943ff704f657ca6faed245baefb", + "public_key": + "540ebd2e23b8bc7fd8c2a4e8d985a0c6f3ecff775e35e6a51825b1ffd541154c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "91ecd8f1ceba69ad9172f04dcd0a6d1597c3997134e04c9f2615ab90b66d600c98aff6c1cf681ca57311e2e77ccea4d111cbf06db4d13f25184e1ddd82d333a0", + "public_key": + "7651538e10518107b06a1ec201e14b7e7261920c4d0ec7990cc0bc893354094e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "89b0c7db7221a27e2761cf5dd6fe387d35e754cf19c7b5cfc8ab2428734cbd0a958e94bcfd79421cbdd3a3ad6f2584d4b1ffd5751133e5d61d9733bbedc0e6e9", + "public_key": + "3a634a085f38ca956b1b632177be5f76e3c45dcdf01e5a02d7275622ead9da79", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c8f575a5925364c9456b07dad813f3efcd8da022fa3684423ca849656b0e0b0ebde75e50b6e852e589d359894065692413c83da9e570cdfe41d9368c7df8dafa", + "public_key": + "6c3623270ba7812f97d46565057523baa9c2cf0584bee377a6f5686812d9f806", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c9eef04b65239638c09bcd08a6154b644ac8dc328166866590bb84b7afcc968d", + "private_key": + "1fedb90a70711298c733d45d697bdcba9ceb04e53fc90a6c2dddfd8f22439d0a45a19ad8820e96e9bf8c71d96a74778887945feb782d953a9063a4d55859b605", + "public_key": + "749e1d26e41ebd16b3a465cd81512bc6fa03fc15277d68e0c45b0472a4363608", + "child": [ + { + "private_key": + "51b73e7876616e40038e87e49945e54ddd9309a44d36f4d4398496fecd7eb80c4d88a4a580d35e45219dfd842be891540ce58319db5ea36d5afa2a72027da58d", + "public_key": + "922969db9b0dec6f9559f63f98f7e0e842477427b5fe4b6132007718db4ef45f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1907eb7ed5bedfd008cad2a24208056716cac7227082b59361c962c35805130ee8715915ef0b91ac4a0b1c8155bb119ebe2b49f881098e57182186ec6969f83c", + "public_key": + "fca458a8b87af03f08a8ed62067497216d6b5588f010ad925877cea863e2ef76", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "2fbadbde771fb94636a6c770f2e4a700c452f144f9fe218b9fc4b95e2904ab09143ead86b4c8799663bf959a5affd8b5fdd4ed216f9f6794e272e169f652af86", + "public_key": + "3acc49f5f37f3b6649d95f12c58359ef0aed43a304030579db85e8489fd0f87d", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2838324a3489d7925190b7db379a019ff7b48ee730560134549b2af12d9c7e0ce7c2908a483485219bbb1ec0198e3c45260e76f63d31cb426fb1831618e4cc3d", + "public_key": + "9469bded719a749e31cd1cc440067d819c4459185e455f39c5ff4536db3bb42b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1133ba1f1a2fe0fec330f32d5c7f56ce422360b15a0773ba6cd3510988854a0a404b54414851bba8c9267f2cb40b40ddb2286a8534886423903d676c2990aac0", + "public_key": + "08e10a73e53d12f52c0ccb35cdcbd8c6246e719aca3b7f217404f79d661d9649", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fc86b35afeb384fd4717a15b0e5a05fe242b37cceb548da3b065385eb04af40f70c1fd63871d51cd2ed6621e5f9b7ecb946444bfa962cec6b0180477f71b40ae", + "public_key": + "e0ba48c8a1f9a870ebf5ed6e1d205a5d341041e1799dba7432c00d7008e87237", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d70b62cdd786cf3fbb3ab91794b0c1f2a94422826f9ba08dae4d0ad6d5e3aa03987866599342fe2e138e34b445cb627c4608ae88d4305f8da2ccaca7f569d487", + "public_key": + "729be36734a0d26f4301f281c154a88606b3e7183bffc98a6cde1fb8fc34e636", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "19ab5232a896e05576806606d6a3e24fcca7978d18021b38c4ffa564db527acd", + "private_key": + "31c7f0b397253e16d94839aaa51a08425b879dfb577ca727860d4066c053080f82be802b0f7544aa3327b850a0cf41034ad0098dbe700b0a54e04450b9c19204", + "public_key": + "3e913e34f7b8b1b5c840b26fcafb88167a2cc31fbbfff266de83af62ad345718", + "child": [ + { + "private_key": + "e4763bc8ded387b3ed2ef8c168281d17f1dd7245f050d0e2c392ed5ba328af0856c6ddcd2aed1fdcdd797552132a5f49b75c8dacddddebebe9a84e3de3f178f9", + "public_key": + "5c0f676d97a7983b2425bb1f66d3d0661fce476875804b26ce7908f007391873", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d86fbc25476f1419798a978ac0a1d2906008055d9f1871424862c9af96f196074d3b087f52fc2c6afe0728c93abf7caf63f8a9b622bc0adf11b88b8e620fbcba", + "public_key": + "9032b46e896a3891666bb60e38c8d215d658b169227903bc7c1a3c0c71017506", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f81b8537ddd4f52b31f49281267f31fa190202f6e9a8e103c54ca7a9b9e14308e3806935f688539c8152a2e23d83a628fcb934475d918cb79c20ea7350d82039", + "public_key": + "b4be77d3bedec67427f8f28186376ea121d2e93a2b258c24f37f1b48755fcb51", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4e2cbc8d0900b26896245bbf0270cc097b0cd82f94927b72b1a6b84006ef070de0c52ed85058fd566ec365ffdef68961309b4d75898ecafcc5683d6efe03e991", + "public_key": + "3851bdc0fec56408a9f98eada235428dcfe305997fe7e7ae14016e198545fa68", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0ca5145594a310408da742a659bf2b7e93666af98cc9af9b0d95cc1bddc5db00edf08c3b70ffd5e0873f14856b01798709f0a15d76976a9a19fdc7319fc61032", + "public_key": + "7e9ce873e1fa89bf4ef06eb0a0ac290f4ee694ff6f54500c4d88e42a3d38c30e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e8805ae00c2dab64be950e2ec24b92b2b33349eaff88491c031e92cb656b100e58e66b85ac3ea260270bdd93457027c0a9d23f161aea163f3e0e892ff47e8947", + "public_key": + "1a4734e6d706d40528ebd47ea0dac84228b81ec2197d3da62618de229e08b32d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "176c84616b283539c0049d330e1f7f40ffd4d6acce6cdf14b3a60579ef53c50eaea45576c1a68144b4001f68a0e58871e19229c6ce335749f70c9b150f6c2ef8", + "public_key": + "0c94c7de8ebf4af706b3237cb12ee0763c69475d3a10cbec9806d05c954f2f4f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "16f61bcb8fcce15cab4d32697f279f5f48cfe86f9bef8c82ed056326e184a5e0", + "private_key": + "4bb11c98bb44f334045bf3cb8a59253f51334f44bc35447a32cecde48791df0c545b36ecde8b526fd372c0886541da96bb49c8f4fa23bd47b0ce2dd03444bdf5", + "public_key": + "ee1fb8124f8c452c4e48f39e16c552d082521148e5d7eb64054c108900f5962d", + "child": [ + { + "private_key": + "6c36d6fd1e73a24105b550e9f3700c80a857f14e84f1c955bac538d9b07fc30acc0121567b8657e91f07e3c2f6589cd2c69a964defb33da51ec720a6787d781a", + "public_key": + "4e5a33818ae9262c3282f2e973eee2ba6d376b3a1743a9ccdc7d19fc0da6d555", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "bbae8d07c7111e0a29facc85e372022e3348f12880cf8e1a6d20cef331b74c04f94f12a91b66de637d8b842ad39f7b9412c8d5e0410b7d894f981dad4913932a", + "public_key": + "9ea100a9c412b7977e7544f34d153bf6e5a48c8fdaee0c645cf655625fe48b68", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "5f50e629a14b0a9965d5c72a2953c70dae10f2df42078163b55b6bf76272290dc18468b7da4f2df82b184e2cffc99759ac15ed6176010bfaeaa345e19af33ea3", + "public_key": + "6c67a73c8259b9df3a92756b5a5653436227da15ee933963b920e08fd38b5039", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1fc1be005dd1f52cbeb9a663b8d81d33ef3872757c5927b5bb04bee8d7b9fc0c113826108c76f72510bbe744cbe94cc4b0c9921645fbfc680437f22397eca4ca", + "public_key": + "76ed7aa26c4f005931f00383689ccc581173ed21b39cf2c985deabee0cd1d859", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "be45400411672269dd8399d7d5a6b7c264f5d3de8a904bcf6ff39ff4458f0408013d7154f34dba0dc2e5aaf7325849ac56bcdaecfe87ade42c45338074c790ca", + "public_key": + "8c1594267f8675c2e8a574d68412201fdb8a7049393d97b371d84a1c7c01b01a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "23574a4abf539829fcfeaaac39439e1e9885cf218e4d6808255c4af4bcd2a40e77c25b3bdb9779b48f301346da035717351f6c054f83c9162512c92bac1278d8", + "public_key": + "4ea3035a6432199f41948078ba9fba546053e115305609a63fb486d5f8cd577d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e0bb2a18a58f16a1497c1da4513a744680666fdef0dea61d8bc9787f578d1001c4738bec91e332d43828c38e244be5d4449637818d05e5c0b3cdb6bd95694b2f", + "public_key": + "2e79321a9665d6d7a5fa82de511b993140c93ba9ccfb9a0bd4bb9d8e46e5781b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3a5616a9e322a774fd87f8bd4d1b5baacf2982f388742e69e08e889074cb993f", + "private_key": + "9e53c2acab929221a9693c2db9230768afb4f2e356c60fde98dad513b66c7f0bbca90e67c8b9f1fba088a226bdf21a2d2756f363756856579344b9c83bd0224b", + "public_key": + "a4f00081afdef10014c7addc97f7af3401ec701f62a08d2f830dad9232298f46", + "child": [ + { + "private_key": + "ee30d69a030ffac922e30a8e98b37be823d37c0528b372af9b8eb6cda1e32a0b8cf96b07c670f7c944ce1eaed99051608d907e9875cfe3609a1ee3c096ac278e", + "public_key": + "90fdf999490cd19ab6926d360d3b1824d8f5b754cc9f05d44789f8bbfe5fab7e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7495576501b51750df7725a6ca0f0300989dc901f1dc5cd768803fb5e0293a0eb18038170f43e420d0170a333742a4f4ef4abdb6b29c5db524d7f771e048e051", + "public_key": + "2679001e6b5ee0eaa0eec9316fe46fc54e032e70a441bb85a159daa953e6df31", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a78d203bf6a65c05b7ba8a7c64aaa192c9f64d6dafd6d993ff2b43bfcdc1c3091f51ddffeb66014aa02aa1e3623da67c2797b2362d407f6cc2076bece5b9bda4", + "public_key": + "5476a383908a27dd1429cc8bf9e689745413aeedab4fcb3fde19452627a56e2b", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c61a2f4d632c83f333abbc43c8b618cbb3b55d1581991d9b6324fe490dc32909c29d7ea5ee73af9b56d89bbca0aebf3c60b54f6ab297681ef9acc1471530eb0c", + "public_key": + "6c75754722fb4bccfda62ca51265af07a83e45649bc5a0195c1e66e07f113d25", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c9a9961dce9e30fed495a6190b6c16c2d7ebd517de9bf7e5dd33e1609fd50a04e721497511f18ce3d350d8e44d22da2009747c28cb4a5fba83c7b71db7ba7833", + "public_key": + "08a8d5e71c9fb299578f15b5c01d2c91df28f821606ec26c818cedcae600ee6b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "572900eb68cae27e44e4906d47639314efb70da2544244ebb9e43501c053000af3c4526e45f830fc52d058a40f4b7d8a929be513ff6794743ff9e40f13703327", + "public_key": + "369d80c11261ab5f5127701412cbc6e0cefe703e9ad7657a244a94ef9d4b116f", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5ca7094bb974196a394b3543fb736565a79fb66339d36d2ce38445f2d7329d082150f2ca2ac9ee67bd3c96db3fc61effa5af9d3db34f6edfb170305f95f95ce7", + "public_key": + "24a580e26b669b8109ab34a67451f4b30a087c435920afd16484d5f14c608d71", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "8a293cfa127e9bb606a5ef70edfd0875702e9ed33808e77102bc04cc52d0ca57", + "private_key": + "67424056b984bcd04616f95160608d911582cc6cd399f35dfd2c167990478108c682bad987316b784803a39e2c5d6964e63b8ba9b5ec26d74caa5700d0d9f4c5", + "public_key": + "0ef0511415887c1879f4a3ec0a5ca7d10f7a51844dfae5c5a2b1f57d3e981114", + "child": [ + { + "private_key": + "ddaf480a79d10a681f4e26f770464b4c63176ade161857718a0547c69eab320a22e9442f2a961b0cbfb4e58c7e3c2f4f662448ac1f5bb9e6f04e3138161d1c3a", + "public_key": + "687aba9e141c2059b80b1274eee1bb99c0ee73f55ec00febbc80ffaeaa1c2246", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3e9cd107ac04575ae1db71b2fb1f68bf466b9d76862bad6f1270e1e8c7cc040ba771ce03aa7d5cc18aedee81c7308f41c9e295a7a9ade01cee207c47d6ef0887", + "public_key": + "5ad75fbf1f66c80ed0ce0d56f182ea406683bf123f32e659c8a8aa5bb211d528", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "4fb9d14ed1085f310bda8bf868d79d4a4adce5587835fc592276c250857a250a653002a88e7b604759b224c847692d66e312aeb77c66a3fae60e6ea815601fcb", + "public_key": + "bcebb961f0dba1ccf7184419fdb597e3ed0fc7d21cabbecdb3c254924936a816", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "154f7fd462e73c860c61db1bd7e5f5d441ef711295749d053297c44c9966290d6140cf3fa3d57c380568a872640f5a9ad1c29097cdc8523cad15011f2ab55a69", + "public_key": + "4cda84ae961e15360a69e6116e7534964c503377ccc97703cfff2e52a7dc1120", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "521974f2dac784a8bb72375ea1babe56e0fe6d8d63e795478bfc17839112250e453c7387896391a4ab644bd4eb0f06d053aa5c43f3db8fef9b487a63dbb020a8", + "public_key": + "8ed4aebe5bad1d88d718d32e35a24d48809a59573633a171e01bce27d69d2078", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "7d9800efce7d370b5bb38fa7b7da66222441584cdea4368d9da06264543a1c0bca635100cd222c5df447680652de23dd1c6e3dcd7b67e723dcb32b28403d580c", + "public_key": + "02ae94bdaeab5955ff98426366b6fb23e35db9066a01f487cc47a5c78afec734", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5fec8f940f7fb3c41cd694f8dcb60afb89e4cc2a81bb842fc6ff89eda2406209d6e29f7f0dc154a0eb1f138596214ca0d3bb2506d7390afee5cf7bb434de598a", + "public_key": + "e08889e96f1b42750d5aa7ff06479c347d78c2a0f71bc7779c1cb292e835a376", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "935f23f14234c26087d28c948ab08658f39b9c01af756cc43a3fec9dd0a3c84e", + "private_key": + "280d191ae2aeae881f18445d2c41af1a863075f0e26e36e40a860465c99c800a5b987039b5cc6fa95bfd8eaf809a6d42cc53be2241c25c79ead23979042f22ad", + "public_key": + "4434477fa00cbe16133ea0260298dade00101daf6246aa6155891642cdd88153", + "child": [ + { + "private_key": + "7e47098f68d1164042518a2b23a46afa3ee801a0c73500ef702132518e84e40e65a7e822e7da987862a5a1fad6534831892a37c33786096f5e1c298e0ae90c0d", + "public_key": + "e2122ecdba0367ac39b4ebcb0f4fdb792629b6fc31fc9115abbc568dd998b95d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c0ee2728f1c5815505463ab9869b444783a66826994023b8b79d16a04a5c9009d8eabd25f80ba8de9a9502138c4a55e2a21e90e0939321e888cb6c65c6aea751", + "public_key": + "68098486024dce9efc4242ae1f97637667be9db162f8ff75251dad7db3954946", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fc4d2c01f7cb0b0d01449e5d9646374d5955a265e9feca49d323492dd967200bd98066fb24e6d61804570d5e56c6477dee91c22481ce8c63b7f9efdc8939fd71", + "public_key": + "b6c60575a464caf9307678ec65839589a77b6ed38d74ae9274185925d3675c20", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "033d849d2d730442f323fe35ebb09472a91bc4c5af166905bf89a7daa058420b8731a71fca0356c34422810a292a0e3b18eb9dae0400db4bf7badab903cc17d0", + "public_key": + "e20a03c1c28ba0e1adc9d4b85179416042b6ace3bd3cc5eaf808249e04cc2c79", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f55a6333b08cf6b9ce6ccb8f0b7638a99f6c415f757f342cbd629a8de7f0490cd47b8aceb9ce38b7a15ef62763910518eb7a833d47f159b350f02344dc815c16", + "public_key": + "7a94ae972da493f8eb9a78510e5af8bde2cf63cdd9b50257343e62797fb0fe3c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "db5fae39f3435bf572bfd67adaaf0e5c928449479721f47745dcfbd263926e0e24e14beb47852f1132eebd96ca167a0336236fd3ff7d189236a5ce003a3377df", + "public_key": + "ea2dc7c4a5258d552644a86f6d64cf21c8079b771561a6b99f64b86aafd8d755", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a8b13d74e2529f7306e92ca4788693803f498fba639a48d81d99ebe9a6111c0b4cad2798e6a8d689e986163b2ef8acaa35b84dd4e79a26f29666a67eb7567399", + "public_key": + "46f696b99ca1ca5228264c129e33c8fe2597a69a5387811103311959f923af41", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f591aa029bac851f345f533d002121c1bd9797b0d8afb186682b2bd97aae2596", + "private_key": + "97402b8acb7010dd3fbdfc765d65ed5a80d8baaf651a69a84a00bb4a967e6108756e067dd73cfad7592f89cf3e13ec857e6de7b312db312117759b8fd97366d9", + "public_key": + "ac3ba6fd61fdbcb4a0be1ccfa5a352104f1a2e451da371219949acaa1cd8ca7f", + "child": [ + { + "private_key": + "78aa2d78b1cbb40cb9a9df26075ff8a43f5a4468837c3fdbc79a9a044e4d800c1a09f01daf36f77ebc63cfd07c5c7b00930534aff3b8c962cf89948b45e05311", + "public_key": + "5ec22228ced850d9b370240384336d9c5fa6138f66d83a1607765cf4c9db1b76", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "db974190731110d428a5379bc662575c18a40a68d740551b34bd29d397ee370217e287695281b2aae22826441a0a36c25ff84371b0ce2da0ccfb025e75f31eaf", + "public_key": + "520b0322b92879b6bc615aa82847a3f4acf4da0892cad2b4e8a82fda2075f361", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "482bcde2b37f810ece6a5d955930780241e809ee7f16fdcc991fbbd8d0ae9008822881e6ac98e05172238c768b5e55248dad498016a0d0f82f16509c42c0eedf", + "public_key": + "7437d81590657d39a1a7166de62080f7b2feb118dc95b4b9a5bc43a4f2a1be7a", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b8e38db93f888b3a875762fccdd55a38a9eb06c252b16a4296cf698c5f27800af70daa4c72b999f1f264b0c21770c929f7c3021264ee99eeb72fc78104a9c003", + "public_key": + "584db0fd913e1e03c4d77d7970ce9832ac551845857f84fe38be213ce8304822", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ad2748e03d4a9aa690e9f7a7d8f8401d45580ff829ea897c2790bf5972f77200b2a78d5026ce4fef791f99226b1522c5f8ba78639601703953e2163d672ad6f7", + "public_key": + "74ac2ff85dbb379d73b8435a0bf78cfcf1e978a47968e24403b6c756b3cf7e79", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "2d63e61986ec800d9b484f7fd82f52f284b7baee9e06cddd785592619ffcec092e79dd75f2c3a0b6010871210e6e838ec1c41aaebdf51f8d9ea457728fae06d7", + "public_key": + "fac446d2b5df47edc9a56f5e685ac615583f43036ff4a3e9083cd6bf7458d21c", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "96d57df4178cc85c0f5f17be2fd60e0f3464b0136fb66313bf9574ca91c00e05a708657a11d67d88a7864a676e61d65c22b693b3aaa81d1437cbb49c6a2cd5e4", + "public_key": + "749019d2d7c6ecd0f66908c047c613bafeb6af339f8d83af6674014d2b382577", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "7fac7f2fdf6be12e3503be95b941e5553328a0c6e14ded88a5b722d7fe746f0f", + "private_key": + "3cc0f0dfee8e20327babab54122bca705f72d5ac5c5e3a04bac650e15996850cb5edf361db64421ec2f274ee8b28f178d23cff8d340d3d065cbf42354e3bfd94", + "public_key": + "32d08bc38227f1cda94538f7e5c973de30c3ba2d44f44b03d46dba59bbf7b078", + "child": [ + { + "private_key": + "1db532d1e1239640d96bff58ee24fec623fd25351829ffaf18b09764ea6fcc0924c5d6a69f83afcb3d08b862c3411dca12926487f8d48b82844956de192d8657", + "public_key": + "b663ec45e76610005ab73b7e2877f43aaab7bb0603689831b61020005055667a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "352ee728f8268273dca2e569490866a7e11f12a3aa58331b32697d786d119c01eeeade910791a951c1f50ec4fc879fc1fa980dec5f4634924b01b9da4006d21c", + "public_key": + "9e040c51fff4c5d286bf943339e4e8ff3a63da49c5655cef67eb60209fbdb858", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "497e5f032a10ac191aee0a97f507539fc6faee79c8a062d47f83631a305cb409149f7f463de72a889495991b85af644cb442478ea5504c73b4871201106881a1", + "public_key": + "e26e2231c78d4659814ef34b48bc9160b80b215a5298bc8dc891a0bbcc5d6a74", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "62794b11940a40ba11c5c2a38ae28e4c4ba966689239d49d9d30edd4a68ee30a5caa6d4ffad54b2c40836c76001aba5f912bdecaccdb30bca644b325504ed98a", + "public_key": + "b620920257adc39323724a0a3e5c54d49781312d06db88da59d53804d7489225", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0261b582f6c5b6130564eebf73d1c4e8c8f7700081c658f807091aac964ac403142ecdc6f092b9dbc0641c38ed37215d088d7203fb71e21468680c593e648881", + "public_key": + "d4aa7a09e25fa65937826ae3a0c8861647fa21bfe71adcc3efa7664d7c01380b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "940bc1d37ff7067e239eeac6d3f414632b1c5b27497ae33d68f20105cb631a0c05b7cdee52346073f0643b13184d0e8be34106fd011755dae1d2881597a9a6b1", + "public_key": + "f27d1a3ea7bab880778cae3815dda6d6aa84c48fb0778c6e26a52ac1b9f36a63", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "689a1cf68c5af01ba1fb6c16dd63f39ddf94c436cbaf24a8fe4934196ffe9d02d7af92f3e436f0fbf1596c499168f4ab9100d83c76551b04052c99d4715ef39a", + "public_key": + "3a38bed813559f05d1899ed07dc766a12719cbce46ebad96b516633173620018", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "112bbf684938490a9db0696f29369793b42b31b05df4cf1fd414ea1f518ee6b9", + "private_key": + "a04e11f3c9aaac8818444e20eb6ff0445de0544d3dd23013fa3bdcf2e9734c0a2f38d04be07799698952dc874c0d39f403ce5e369cdf5ff2911bd7ed532e6f7d", + "public_key": + "88bff44e49dfccd4f31baab18521243c85d0f7aa7ee636289baa1e469802cf7c", + "child": [ + { + "private_key": + "f28483a4c3a9a34aef18500972fb6a82e1dfc4442adf8cbee43f8e705ac1550f1d086c0e8d02cc0234e39d28446305beeb52c05fb3e633cda6bb0e349589a522", + "public_key": + "c424b9132272f942f5abdd07ac0b01547f83d7ee70f0e66945d79924f5b2271e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9b9e0751a03b5340c90f04e8c969e8e89ffc27e102b2ef8b1f6681cd29bfe70fa00e9403ee7a2d723369ebb19b779dbedaf47f526b5232c5a551e46c7d27e386", + "public_key": + "40b8c356763e3cc4f32779626638d23a23c318bf752a311eb43ccfabdf60f269", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "dd67918fd51d1eca776a7416a5010a87ebdf779208e7730fb54f64b8f641fb0bc53f5f350336236ab39a69033b4e45a814f56c795764771ab2359d019356708a", + "public_key": + "760fd90ae456177b305f8f137558886908894b8ef4fa95b3345907435ce7e154", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9bfc05acd9c25c2697708ec8dac82ca38b35dd5567bd6f77ed40ebf415e98f0ccb659a202a5d08cece3d54b43108f674620fe9b01ef0c36395682b01551e6c52", + "public_key": + "ecdfca7ce433c0c40989314987c672d4b612e257f0a999690221c7a16ea8a622", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "52ec083bd86117fa4121013724ea98c8932cca999d0706f0f04e883ae9a569032a08113f7a8dc9bbb26afc6c345210dc0043606b877bc439e0c4d1456be70ba0", + "public_key": + "a4cedc1f47a6daf73c69c75940a27a15fcfc73c5bccc7fdc4df7794a6c5e5c06", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "00c695d1f95cbed4df4358d6baad90fd19d510fc9fa190b84c88f7c239f4430fb7ecd5655ff723c96f5f35c8e6699e6f85479701601feb4847e406829207a54d", + "public_key": + "da62032cfadf3db520e740b06e5dfae7856f91fa9466a825ce7bd3555a3bf602", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "319b3bb85d3d404f5792b8ca3b4b42598a1dc4d8b55a933c327cfdb3d717a30df993b97bb05433ecbd4f4ec2d1c7b89a54838acf995e1f2cc46d978d0ef302b7", + "public_key": + "40e07a39ac715c1c5fe042f4f9405305abc1ac84a0e5ca1c24aee2cd8e8b6f4d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "90bc2f90b734e9d33aa0244a75805faed89d3d1c134a3455e2aeeec7dbb5bcbe", + "private_key": + "aebc376076a822d5a7bf0808240182f8d08d78eab7a157c8dbdead46593bfa0ce1a7cf9db8569b7e5ac8a42f268c33ed7ef0bc937d91e68d327dabc6dab63c55", + "public_key": + "2a59e51b6fe4afe9f30e78c36d479799f0ee572c4e08392477feb3c2926b4319", + "child": [ + { + "private_key": + "55f80f332790c9eecc10acf7551c59b4b90d6460cddcf198082a8cada70fa90844d657f8faaca30e091f387f5ca8147b0a32f537719dd3f7649e2b1a878f04f5", + "public_key": + "b2d0e4d08dc892c456fa8057d8222f38f243fa4bf9bc13cbd20f18205eee9d1f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a2346fbeb541a189a1912f4ec03f3df1ddfa92c86d5fe7c4382947dd8fc5620685d8fee84a481790b7527ea9af742537610184bb0a709657356d42813e5c6a73", + "public_key": + "18a57e4bbd7b7cebcc956fc6cda9e36c49c9f30c6af9e7e3ab1dd53f2ee03a0c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ef2b51b319a9c3b83dbb8fd3fc99ef77fe0f7c58e61474699a8640503411f60ca7cfafa8e1dc4694652750f3f1f9a4b0f1b07f53ea6078f08ad18b2cfcb1f2eb", + "public_key": + "26ee80d6737c4697c4abee2f4f37229f9cc5c49b2a97cbfb6285cab28a02306c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9192dfdd7b1f4a51e364a55da3d80a7ebff55f0729537bec06bf64132f8b3f080739f05f60219357ee50c9087a2d30ba310728f5825ee2077ff91a4865347414", + "public_key": + "2a73e89b7e8446210d5e006bce131fbad3da202177dd928ec55366502d972f5c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "739c8992e434a08e992ce66b0058e4a8ffbc050c3025560e9846f52d97904b0b15df7198d4a995255724748c2ee5a25f19e7b9b2c2859160abcb5d23493224d1", + "public_key": + "648486b597d215fb986fd6e96261a20440472d0d301261f925c25f98ba8e6b30", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "3aa45fec9a632275429fee9a8d426d3aa05b801e592f15be2a7a406566492e0d5f106139ba22de657e460763aaa3a68e582576a8a436cd4aeada46b545c24ac5", + "public_key": + "50ede24bf5c196d4126322824c166b99c078b5b93b36bbb45b24c9afb7ff3803", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6662a6437f197fc8b9f5d63816fce581ff7d24f1c2810fa5065bf574c19cd405f0b5311f6b3d3764972c5cf44b00f3e251b1f03d18dad86557798783e09427e1", + "public_key": + "8e51736edf4e886e7e2e21b5a6af17f8f1ff6ce361f46a073b6ebd96bd89f259", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "ae576c7e67ff520d54e488bb88d87754b650ec0344568aa8d7f053fcb87255fb", + "private_key": + "883f2b61a8f2694d5ad45fcaf3628620a7542e6e9a5ecff7515b3bafece6f30ef111eb0b87a7108a8c98e5afc08a0fb18e5eabb679db81fa444bb4b614c0cbbe", + "public_key": + "66b21711429a9dcf8220ca96128406867c1d4e608f3bf42f1dc32522e7b9d510", + "child": [ + { + "private_key": + "2f4095ac73700c6ab08403acb144da6d122bf3da15064190879c0c48710d900ed32deda5343f74ffab8f98478a0d892f86fb51bebd389d1b8cf1760e2ad2bb83", + "public_key": + "fe80ebcc9b1e23d7b8a650ed2f25183188115acaec48163201e208621678643e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5cf28d5fbd8a2c3d73edebd808839be6bfd692c16b0c19b3c7039e90da94ee00729647e9e8d38f2f1fe382605b45a56eccf27203fb3c880a62619fabdacdd25c", + "public_key": + "289e442f909dc98462f2bfb985b6cf35d1d549fdb5df9d1267f3442407697d19", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8265306c32ffe0ee9a1f9dc382c4c7142ed405b06276c84177dcbb354c2d2e09391b91d8b1377e6237ede8c9a155b06b635915a9fefbc48a4446770ce81aaa9c", + "public_key": + "3c5cd0fb0ab3ee7b14eb69cd2713514a75fbdc8446bee546e2d657eb1ccd2679", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b7c2249d1ba50acce42f9bfc91843b671236b07eef7965592aa4f8f28c32fc0baa9916573ec0b849086df794a53153d054077364a23bb17ed62cc01f94342caa", + "public_key": + "8ea9ffefe8483f47a74f1724dda3840763c93f8bed59c2b87da593e62f852c49", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4fc0cbad07761f26713caf400bdc7d65bf382cb48c26624456a522eb4f9b0202d9cc8bca9dc64d7b0973db01d7546b58b911a3efab5f2f1879ffbce5ccc282e5", + "public_key": + "9ad0248bf1d8b3e1c8595a6797a7e30bde40f845f8f53ed82ebc3c96e68dc26e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b28e3b706072743044de381acd16d37a19913fa5eb3da87fde0294e9f1edb809839cd0b3482765c9f2138c35b61453c8096366e73e63a158274d5e25fb743bd1", + "public_key": + "dcd67188fd6943d42a62e09da7810dc6008f593862520dc6224db4e8083ae872", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "81a2ad5599f321e8f9ee42c39b196986d83042f714d91fbb82f6e6b8da1d4008c10baddfdf21b925b26b027241c7394a9bd5ae1569e381ca23383e6616ab8b18", + "public_key": + "baedc9d97269b3060114cc41c79120409e12c5dd6c14d6c95762a6364ce3640d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f79de1255e5161ed5e04d2f960b1e005b120ba5619aad04fd99af42cfffbce51", + "private_key": + "7888d9fd4a82f77b5a5ddc7eca69e797ee6961086f322f9797140a5b967c720cf099a66f74fb504f3c7ca6c7a3e4a4ceda869ec6c93c9feed64002bf57b2c004", + "public_key": + "bac722d24a43ff40599a8d753b2ccc9ef52e4a84f5f4293bfe08ac231036d907", + "child": [ + { + "private_key": + "c73902af1c5e9a95381f281dd403be51ab851b52c641d2b31fa577aa7bfa8f0f7d5e1d8edfbb2814f4af86ba6b1a17801527fc9b80b92a4404eba6bfb2e5b8f7", + "public_key": + "587f61eae365ce2d050873962bcfdcf3f9214c4fceb572145ca109217beaa535", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0733f1af55b7bc92d835f811dae51cc0353ec02e2eca9ab3e06f937fb04e2d0d770e9cc32ea0a9be140d188730ea07adfcfab7aaeb8cab8d9e00213e7afed9cd", + "public_key": + "b0eb5b9dc57f4da74c418745106302479f5f50546bbb0ccc7574cfabaadea04c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "6c469f6cbc025432fa91c8a739193ac5e0ba2a1e685f7a7dc53653ef5d0ef0091f0e31d3bb389cf021635029eece0c8554c91822c93f515ed3a65cb73c03b717", + "public_key": + "b8cf381cda17f9cc20a1af30f49dfa4e9dda1d4c1e6144a106c413e80c704168", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0f23f63d915068155cd59081413fd0903cd61db1c68cd3e7f7fe5c583f70f90d7b12029400df2b737bad62dca10ff139fb70c03feb333b4d6e78df82be809249", + "public_key": + "9a8258c1ff90f71dac7b65bb91fa7d56ced0146e10f8f9167466950f9e5ec760", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "96f323339cb3b20129fb612ce061623fd5a471d1f628f45d3baa4ca8de87c70d0e782ed17f2b6a55bfed7a44eee7d7bfca2946fa911b4cf9953b8b026bd42d60", + "public_key": + "58ed839593edb3496ebad02e729ccb918cc7cf2abed8b9aaa3b79edce25dce60", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "50df938c746112c396d1880b708c500f51b84a2c12b648b2fdb032b8cab2540f93ba9f138b23b51671555e17ef0103a5eda14a18baf5be224fe3481b3c24727b", + "public_key": + "cc86438c13af84ede6b12d3465c748ca8b4a3a49f73f70f2225cad647d6c591a", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d8c3947e91f346f4f996978f815292d65f2d2a86173936a2e6068cdfe9f58908410bcb901ccb2aac587c41a6f59bd586c78670a9f7a23b89ddb111de40cac162", + "public_key": + "02f196fecdda7031fe74c5d1885667c2a8c035609b7cf8bd1ed497493d710c19", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "13082d2d3fe46d02a08102c397dffce8b151d60d078e68008887e02d49f8160d", + "private_key": + "a46f0c26e925165cfc129e43978b13551d1ccc36b0b224cf7b033c5e0f90a009613afe6b25a84cfd6e9da8f9a112f287a4a7436aa41ad69f321a6e0aefdbb0af", + "public_key": + "36242b3aeb385645aec299d9fd0f467da583e5d38b40f0f688edbbdf0063e979", + "child": [ + { + "private_key": + "90b638be72a5e9f88efbdcd46c9c9a500ca4747c5f7cc4aa1f980e2e8a13900cb8b6ea92e68a4da515baa84a30c3dcf5730733b5ef6ad32768cad397b7164207", + "public_key": + "0e7df1b517efb8a5d0bb7038cfab8f863fa28389bbf1bb40d4fa69aae193c711", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b6c7a771e8acb697edfd2edc24862366f037e7b7e89178f9d5cea037fbbdbc084478f0b5df869f9a8e3a5a68495f21da4e8459df0ecbaee7c127d7009791e377", + "public_key": + "2844d34eac4e3ecbc8327f0610b0bc66cccd6f989333e1057c82d95bcf1c2b7e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "28fbff535598010c302ef9eed159fac716739a1bb3a30eb7f22bf9b6d7d53e0dfc2f2b0a7010c5c898dcd86d32a5048b5ed85a86392fb1100861fee7668c2707", + "public_key": + "f044b5b91d9ab6f48d3451e4f23b24e524458cb331e79db5072a3aed98b55e14", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2eb574c281a19ee73ed3526bc24daee8ce038453b05db66e336cc5e720076a0df7c6bb22d31f461621cfec566bc3c08ae94fd221fa22e8cbd58205ae5858ae35", + "public_key": + "c25f7c93fbebf40065b9db0499df92b5ffcdc465094befb41be2ac453b270a4b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2495a7694f90e7e1e1e1054da4526e99a91c8e9a3662978b799b2e0ec6710c007dd52632c9455f93cc0b90cfe1422714f22ecdf1dc8b122d63229adc9bb67597", + "public_key": + "aece1f61033cf03dc30609c38d3276be8105b3e9e1a335a154f0338c1b8e9271", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "34a9e0281d2abaa9debb69e90ca2be558b1f889a0afe75c1509a3a1ba6e1760f62cb06c8e435007d35067e7b27c6fff9a9f5088d837b2c85e98ebc0069f8b665", + "public_key": + "a8701e46c2cb7e0fc66327ee20e523ff3d92b320b524da5bd4c91da8116df92f", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e067e39c3a603d9fac34f8482ba684ea12270e2b720f6168340d03fe2f26c40a7bb59ed8dc91f0c3217cbab84bbc75eab6afb4a0d0538247ad469540f4e134b1", + "public_key": + "30a806380783dd746edeee1bf253e8fe6629e0ee1dfedbf3bdd0b8aafa80d147", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b965d2f82bdb105dc364977470fdf96f6c3b99673172b2ec96a438e629057a64", + "private_key": + "a0005b17db0768b963c52b1c226c5f91bb7fa05a11d4da7f04878c2bc514880b0c681cb947b50a5c37a2c0927ab249b8e0211fa970827a3953c4161c0de7984d", + "public_key": + "a62dd944f703a4280d8ea83da264589b99c1700bbaba1dc2b3dcf49cae667403", + "child": [ + { + "private_key": + "76a05031f00c9e2d79787f44cc07aed44ecbd90e5ad90f043736f039ebe4360c6a67d7c478e096658aac0287fba5dde2313a2a54c2916dc1c4009af36c10a7a9", + "public_key": + "8c90cb3ae5a05d091e82408adcafdd390cb4274129e58a8f26fbd8771d89a965", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "47a6cfe81e0e0fe76b437e3b41490287dfde4e465966af68666052d4b321ec0d0cce428910fa61c27c68be0381bc2589789e76ba49ecac35a44da4013a9702ce", + "public_key": + "b4a9bfe420e8a9590afc8f29e104eb490bc7c979183fd8dc064ad10d67b7ba07", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "46ad0a8624321028033aab7f18350fce1b5bf9c4c4e0e15593fa6adf16ae2009cc23e0a71681c6cfa159d2e35453fe118e244e56b13b383a0eba257ababfc0d8", + "public_key": + "b6a79060dd737d0833400ecdf42a3325ba183679b38d526f6b60530f5c01e719", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "85524c21a9c166565f1065c7c531315916016400dc15f4857e9fdc61e6b2150cbd12782bf028d316be9cef5bc827400dbdacfd92c700e6c919ee733e47852cd1", + "public_key": + "e0f691c9c5d09d9921b59b10e051cf2e4ce419b504f8ae9ad1303e82f6b7c660", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "cc8ca7109d33c9f82d5bed60de536e55a7b914522f9ac19ade47a28635d83c0d99d6711e234f23c86c0806324d0baaacef36307dd66dec9d99366605d0a13c69", + "public_key": + "20a158f1123da540f6fe208cfc1ca056fc8b93ba1a8b92203279712cf1e6ad57", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "5bad39196b6d64c6fbc54190eac02973853e5045bdb3808e30e6a73faf3e910cf07948cb2dd3236a236db20be23de8d4433014802ed117983297a0f90678c0f6", + "public_key": + "4057e55acc8388d51f187aaf3f85719b33c774690e6c6adedbc755c0f4de1560", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e30a8ca19e475726009b18262d0ef3a4c0f257ae273b76aa00e06f9dd9deb60f2bcf6091b74f0cedf1bd743c57d4067824e967041848179cc4d4bcc06fb04f61", + "public_key": + "7c1e0f6499aebfc82f83ac4abfa5fed8e50b2b6b6b080955aff55b13e269387c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "825db8dc44f15af946a194aeac306804e3d940df264ebb6c4f73af7814f7230f", + "private_key": + "5cc5364c00d1c6c5b1a618c83ab803aa100281d0a0d72967962e738ce55de50eafacdb9d223bc69de34c62f88e559d516d30e2c55bf1a65420324662ab069eb1", + "public_key": + "565a7eb9305b09d90d346a80ece73a5380f62ebb404cb2c212ece55a4bd26848", + "child": [ + { + "private_key": + "3ff39db2392918ce9dd7aff5b2ec86d659c7331f73f316f13d4834de76430309264513adf9afe006e107cdf62ac0bcd7e7af4ac46e501d190c5d703dd5a3c3c4", + "public_key": + "06cd27068fc0dca067ddd0b71f92abb2e2e7d0afa31c0f12dae7221a226fcf2d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "843e1e9603bbf9799fce0ba1327ba4a857a7dac6829b5f606f5c368ae1581c0a52044f997c2cbdc45852b0972902758833149f1271a8ab7e84b93e1589b93cd3", + "public_key": + "1e546290b2359082943381dfb96a26bcfc93a1e24b5b2ba9d9bbd5ab60049c10", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b32529d82aba3d79f6beb0b92af40a95ed4c0d55140e8dbdecde481c915f810a10d208e79abc9af776485b1a280cb80e464df48a5934698a10b50f5a2f81bc78", + "public_key": + "3cc79485d9496b07f6f0e5d1a1a731f0de88c5b917cece6dd14353961ffa6713", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "762dd82163d3811490066997e1d10181c734c766039075d971c3840405820908934972d58e304697c71964818a667d1cfb8369b82ac7215d6d16c9e25dd2b5c1", + "public_key": + "c64eebe4a88d67c606e1d97e2ad6cac3b1cf399c914bb97c8710fc7de0763720", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2aa30b929fbc127546b39656f041cf68da24b48911fedc1d922aa2a9417ff9094d2e45630b2ab562c6c927721400bd7bb7c2c81d26f6c6c904dc0ed2695ed8c9", + "public_key": + "84e89f145aa33b767b45916dea0c1230c72943a3a24f564e3871a5559c97816f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "44cc7f0e290b6c57850f6239a96ebddf4f7a701112e754626204cf21c057320abc1881f4335f3dfbc9e242314988876f4b21de76cc1b0c41d361b071c27b8275", + "public_key": + "16243d4299e7f6b48e6043b8240deed5b6bdbda27306414e06ee3dada39b714e", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9d8fe9bf8c2602133f8aba886ff10130345b5eb625b32d0f8ef70878c36d5d0a640d947c5949ac4eb5bc41acdcdeeb47f0a983b73169a136cb8e4e0f54f3694d", + "public_key": + "38d676b5d9710a1b4c482110eb895097a0415a586a868acdc913df7662e0181f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "8fc1f288490157a8c4b8f58932a5bc8f91287e84f192992f79f5cb6f177fe983", + "private_key": + "8abe202df41f9a6b07e8ee6cb4e3cb854661ca5ba8c952368d416d122166b709e5c96be04d90cee41e03b4b53b2b96beb5c31b63bdc9e8cb0a0842af93df6356", + "public_key": + "a0e9c89f17ade109e7bd57b288bf298bb5a8e28c4e232c995bdd9b385df5a87c", + "child": [ + { + "private_key": + "4dc3c72f096530ed321ac31451c92f60e6e88fcb721982724197a7736fee2c08247d5dabb6eeb240adf8f42eff1c237ac8ca973ae3eacb34226d8ebef9488266", + "public_key": + "10563287419f61b579e6be4a3b0f8611a1c03a86351c6af8f7343444375d5447", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "dec2d0b83f2475b548f54acda27b453dea0904197854d80784e4d4fa0ddbb906be27a358fda12be85ec7adc15c9edac87c73e963b63347414cc24b7de5812513", + "public_key": + "688f7a2b87564543c5d146f5855c717c421cbdb6b7dedb87d3b44ba2a78e2d09", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "37431aa9434b66512002ff1a077afca64af799c992f1faac117754e7ef8d610f31dae3283e99dd7ba183cee4e435f0c80f181f8369c163b64e89c11034e65857", + "public_key": + "6ccbfc3990d016d9698e355069721ea9ddaa618fe0c22aed6f1969ab655ac504", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ae6fab73a94e08fb2348c594c5fc3f0b88e583d6f91ee21ebd74958f901fde0f614d479397aa77ec40d35d53239d46a9107eef687d696147463537109be252f7", + "public_key": + "d2498ba05a9cf90931b2d0c5a5ada17c6c94b92d8acc984c18151988eaf48d1a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "68547b588273ee312a60be1733dd6146610957438aace47d45c8f9c3ca9bc6010a4a4b93229df1c6b5f12995dd3f3db184e4964511d31ae1f30a2f5bb3a3aba3", + "public_key": + "a05f42c7d1895ab3e8538557be9832e7bef582797431a1557a2560b5962e9877", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "443b54bdbea14afb7e83a2ff86707fce18259fa219389d6346f57821531f370dfd4c62da2585aff656066a643f9edafdb0ba9659c1905ba9c311f15f5cf90782", + "public_key": + "a00bec797c3baa27e6474b6cefbc78309a3a23fd84a183b34edde1da3e41bf26", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b7d4570352ac5b0ccbc42fd16be285809a1c5c4e8f3d8ec0e043cf503be5be0b0647afebcb4d6bb8dbf5e68e34ec016669ac7dc213eaedf10087cdf163619d56", + "public_key": + "60c5866103e93acdc033a47418d86254ca400bf8bfbfa720458834fdbec4735c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "822815e8b5108068fb4511ec44f3ae07154a13806816bbd5a3bc7067420e07ba", + "private_key": + "e12f43f241f97f5bfd9bcbc7f0dadf1a2d1e1f68cf7a20dfae7976bc3e8e6b0924f0a7b31ee3b7825f6c7b9d50c385ac513ab5fb90b9433dd4fa02286f4bcd74", + "public_key": + "12f766838cd38a55f8f5634f6bbed4830bc37daa179fbbfae4bae5d317f7720c", + "child": [ + { + "private_key": + "464d63c74f66cc184ff57cf459599888dc783701a5a574172ac1a4e25915990c40e03b4a6722e5b914bf88a24b0a41d6f419030d229b92872324a0535905a86a", + "public_key": + "34fad31dfb14c1a542170e209916bbd7cea85afc65f46ec15bd4b70b44b12077", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d15afd636e9e1674906a1c2b6b1a92c7dd3b89499c6d149d5c0800cbae4ace0d5669adaf3aebba24826f5818222c404165c5060edecd0f77cc738132d82143b9", + "public_key": + "e49e34b623c16c68d71a637351fbc4b829798a76cc10bf16982c2a286ef4935b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "977594b1a6319e6eb88e20a9d3a4b2a7f255414882f74d0e92521ff59582c70d6ec113190dff9c8b307bb929b3047a3d474987c6cf7af847ca4b431aa917fe7c", + "public_key": + "2660931b5aaa031f586754c0bebae446e109f448926b834d4717f86b8d08117e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e42521c296f1e7804cb5b5f71a49d9a3f879ea436f63a922286e51955141c30b702afc5cde98c59a4da35d6cce5653996fc8c1ae2483bdf69d491db0f309b735", + "public_key": + "d8bc23266a96bf6eabd37c4855fc0826ccdace22db339ffe4a9fdd5909062d5d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4d29b126ab07f39158ffc434dbc52c8cf408c825f45a05922359c92f108627096802932b5aee1ee7ed866e7ba5f6f6350da0132cc46ff7af0bb09266ff816606", + "public_key": + "d0cf95bc4a01323d8806a58a026b2d0f3e76bfcce6d75b65e0f0522fe145455c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "3f221918574e6e8355b7aed34994e6291baae6c7062d018040752fa62d01b4096689ebab8978c0049ce152eeda2e4dbb48b3687c9ed02270d4dc6122f48c6de9", + "public_key": + "a883f36852a1b52a3fec2b9403e0c794cc5f4d03d4dce69b52c9d1d9b7867179", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1121bf5760076525786e00c76bfce1862093ea4c4a186b1ab4966c7095da720290d6b8c473a2a2b3d03210f44c6b5cece829d92818dbc1aba79d49e6109e66c9", + "public_key": + "04d13fc8dce824d679e7c6b64a11e485ffca8da375ba05ef06f18f152efc2f39", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "6fe92f3e1b03912eb490142277735f24bbe46babfae6e78be7557a3e43b00c9c", + "private_key": + "e0d29cb277afbe090c35199c0b436c0ca04e51912ce062c8981c68940bfcef0f347d508f83be474e381609ae0b60c130f7fcc9a383f2434c4cac3d87772a2ae8", + "public_key": + "8e3e667b087310da02afa6439e4d1205fa0839c10cfefca1c59041799692cf29", + "child": [ + { + "private_key": + "4f3b63ada3107343cd10c096c8e7fa93edfd2dec1a6ff793e87634f46aa5de084fb4c8a4484affad488e5912bae38411f176c279abe5712a3e4f91fa7ab7bb21", + "public_key": + "30cf75a523324ec373b0d114ca3c7310f00ed061f0c9701e304e0307e1faf516", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4ae6aa6f5ccd113103c970db771d3c8f7d2dbb000813df9969985a425e71eb02911848a1ff64068804ff31b3ecdd5bb72b6bd2dd83315fa6171962726fae903f", + "public_key": + "d08646451330a6890ba3ddf9aec8a726a3be839734d4734a813a6351ef64944d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "c6652768f1fc6d135e16a5ca9198af7ce887fdf9e1eea19882ea0b9c8e4e9d0a048bf795409e3dae3a6b78204b8d7b7e1cfb78aca053e89c0682f1c57039350f", + "public_key": + "6ca83aa3eb339934f348c4ae9b18420e5dcdecdcdcbdf0c230078ebcf0c9db6c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "850fc556a21da5ebdc711c89f24797e3d5003a5d1fccca49999ff3aa9ffe000e48948cc063a44e44e8dafd14b8981cf32497e9e323b227c701d0247c76281d17", + "public_key": + "369f7688fa57ab34368e4e5b59ed5c3bbc30a45ea6b5bc57b7c0e51ec0db9a52", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c22559b60ce5411b7efb99747f6615387dc50b10898985d7541c5c571792420713bf07488c45cb9f6381d40538aa7e9d1bcd7aa92c42ac05d68af55dc803c481", + "public_key": + "0e26329a215c5a4e16124d00318184de610ce620a40e9186ee88276dd7788250", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f7440e754e63bdb6820506cb8ff9723650dae318709117313a2154208402700be091a06d3e6f5b27be60f322cf1ab33483654ec187c789de0fa5e4ab7c1ea58c", + "public_key": + "4e92b2681ee34cd427e0705bcec51c49a0373a83fe22faf2f84eeb55a6eaf848", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "568fd12dcd8a8dd1454e10e39a9a4af0f90b34996565bbfa59dc69b21631f90d8752da3611b9d99f5a1449779cab3f6c6b78510f26cb85d5f5d21eec32eea9d4", + "public_key": + "44e1f6a6346a2146d6e9ec025269184e8d755fa6b5ccf153c42e92f7e2d4f342", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "889a0fe44bbb2a9ae0f086f309ab78e38b0250e9d2ea008e8fb078d34006a456", + "private_key": + "8b6dc2dfeee0aa837aeb8ab4836f7bac84679f2d8ad1b2a919377e0f71ad1c0f18ec3baa94a227a8b9177a172ed0737d4bafa5e45cb1aa3dd05b3b79d389fc56", + "public_key": + "3a9f56c0b3b8f1935c47fdc8512de0b9e8964d51ea92b23d184b000447999126", + "child": [ + { + "private_key": + "893dee9825184d4d9332d425b544d1f89b0be97a9cc840402edcacd84a771a0d4357e6ba77f98bae0cc7805f262f0c5bc38201454f91534bf42dfd671661bdb7", + "public_key": + "4c5b64b4a2dd7c56a5161f4538c0521a6647ee21e091c351bb8d56637e105f5a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "da84836e3018db435b0607ccdb27485643b4c2844ca9293a1aca3b632d5fa50fe943beb2fbac12b8f47b0468052f3399362a19d936cfb9c7f1d15ece27e9476c", + "public_key": + "328d932fbad15bff2038738f495bdff70307f1e6ab40cab88ec23fe22165dc5c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b907ad25f011434d0974ca35d840e966971b3b68a946b5db3c2cc891efa9920e285dab66509be2fa12f4b40514729cd33363326c9d820ed0ee4076ebc6161563", + "public_key": + "4298f24d39cccf59caacc387c53b1b75ffbb8943688315772529f7d1b261f955", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "eade88251a1fa0616bdba901b09f7b9a4c399b6deb6ec5b0fff161fcc078360ba7220957ddd8063a233143dc3ce440b4905ebe5e51b4ef8014b4d4ec6821cbbb", + "public_key": + "aebad38b06d472e0ad10eb98f599598b11d73cf154dfdd43fd43b5d2caf7c145", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "309732264940ff6d658e30602ff800792f2c96e1359a5c404f139cbe7498bc0886bf65a0512439db162f9e6b7f8536e03fbe11b11d468448353559495c7cd58a", + "public_key": + "163e54e86889b9e1779b1d86093bef1f15245cf14d20f7233cdce72f5b31d828", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f97cbc1c8e6dd0f3ccbb4b293599a9c90fed21ce93c6f41ebd04f2076c243508f0fe334e50d1d25b5089311e2aff7cc16a2c7ba13242ac7bb3b690362df34cdc", + "public_key": + "9897398b5b2e031519474155d4ef64bdff46dbf7db5d2ac7257afd68b1c4d504", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3ccd0dde76d7d6dd3fe1c2f9418dc6f1d7711d279c14d93057f5a6a8bf21640c41d0f697f41ee565c8df1488d9c81ecf35ce89b85ad5995ba25e762536d8a654", + "public_key": + "14fc6e9af9017d149416d917e2b69a16b5739221963f445e67e7d6f74eb5a652", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "57d76540b5002a2e21660abd09c7e7d5967d18c613f63dfce4fbb8efdbfbc79c", + "private_key": + "28698871c877414cf925e57233d4ba5e04a8e8185fcbdd4401dff434d06ed30fc9959a686a0e3f7c2267603eb713098a9952e6fca0905d38ad2a8004a0c01aff", + "public_key": + "80d9e4408e77809cd133723ebd0a5d8ae93efaf5918757e2a3d5880f0c78c300", + "child": [ + { + "private_key": + "9fb524a7a09525bbc5b2cc43b9f2d42bb004d6364ee115f3cc6e92afbc6ae50c3a718f80831f85b7d294144527ee3531f601c7d1e515c82f43ed67d17c8549cb", + "public_key": + "863bf2976ddbd95347264fbdcb5dac0fb82874c93a44afe88b1f059d4ea0274f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ebbd91b31407a614ba3eef477a639d762e7f0332dbeaf94223f3c4003e55ac0a19e483888d90a920ea1ad0c43b15c892aec5e9dcadd48b342131eeb722087152", + "public_key": + "1a21413844f03869bb7c24df14fdac7184cc55c4850cffa867bf673a86718a59", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "31ba9c3a214a783c30548a13a466a6110cde204d700c8fed5a2f08f309356f0a6c77345d7dddc5ec50da11fbd0c8a828dd14624a69a3b8e37df7f64573f79ac4", + "public_key": + "26cbf935fbe94c54a088b152518bb36840adca9f0d74434d6cb95347c82b1732", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ae676e6defa1a107d293ae926a560f5cf9ae56f4a30a50af368c3a86991d650ea68504355030cfa24fd776a1bf323c71a1331990255f25edf1c36e999ee27279", + "public_key": + "82316b1d127e5bd749529abf86d3c2841448d07b594ae3cf5a54ac6266202373", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d60ef3905cd4a22cabefbf0676bbbfe41ce53a8f5561c30d70b1c03bfc3d3e00fdabc25609cced18a2c28b1c624fd78297445cbd6c984094c27d394e2eba37f1", + "public_key": + "8af72c8f1352e1e0f2942bb0c86f699e675a0373ef07c5ff46d847a8fa9d9a76", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0ef6d22b57b3f48f843aea01a6f2b6ecddcde1466494457c52446d5027e0b30c280465167db3a37a474cb40da458969e6352b78733326b6cf0d3eaae934ef6f9", + "public_key": + "42f25f197f234a8aff2de402b65c5d62b90941166d8fa568e26ffe63e51b3e01", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d79084d76f210ea295e362b6e491eccb16ed1fd736d1faba53da2cabf66d110de2fdb972f55686b06a6f4f37dc0536a18fdfe0b52f14a209c3983cb6d3fec64c", + "public_key": + "921ca2e3cfceab4e53fb3ec3d0bbc7d319ce3eee2e144102a4d0e5d186d31422", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "fda053c7a65ba8c15056efa11b794790330fded031b6c15495dfad6ae58436fb", + "private_key": + "e6578fd29436e29be3e6b6da18a10287c0f28cca5f17def7937694cda382ab0e0fc437d2651721ff818520e6af34d101ba20ac085abdff04b8a4eafc2f93be71", + "public_key": + "903d18422be0963764d7e543156409d1b3da0c8b2122387a3eb3b394f6c72515", + "child": [ + { + "private_key": + "b84c5b5ddf92eede716e2f671f4f78509a7e3127555230a873e4aafb58a7050df10a0de27595b1a4785c7ee7c79e562795d763c2658f98c672ef0f0fab5bcdf4", + "public_key": + "ea7d214f0eaf0dee7f40cc314fb84da479058dcd49328a6acd2b03807e8a201b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "032161d9168aa13d023b3c842e0b92e33e5c062b3fd1c2ee9429728e61fdd50e14e2dc99113f31559a9824e4a6d77890479b237ea65949bade242da9a944b9ed", + "public_key": + "b44fa7dd6cb7b26d99b35932cb27e641fee831f24a16565429811b3470ce280b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "96a7a784d0d5c056fc5eae785ff391ba7559bdca80c2c90207fbfebd196aed0f0b3f49ed04386fe5674559143cd7a3a98a5cf5e5f628e5b918280e9c831f3c46", + "public_key": + "d6379e62e65eab4aa6ad644ff82a1912280bdc6af9dc7d6fd2f5cbca90c7485c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e482f03d7db8fb102413aeb967e23e1f1456c6af9a2a6a302b1406f175790209ae5aee96ed86871d7f964c3bcfba1a7615807567de9537e5d14263091772ac83", + "public_key": + "3c56f1af4ace2a0439bb4bbb5063f265d04fddc8ceb06e793e2c8ba9247b744c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "581572cd733c54d8c8c38a05e3bf68f2531b0fa92ca6f4a8ee26a9e14ad7050f0b8901cfbad0891ee579024e2e8c11156ce45631a72fc89cc0b12eec774bd7f2", + "public_key": + "246ea44ddf8c1d92fbce1ef0bafec0e34872c5db0c4ed6cb08fb798af24d0a60", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fad0a9f155b2a2e2d6d8338885801c5b117c2463bcb1e6179fe0d0a0a85bff0ab557c8be38716c44b3e9191775ceecbb4e093d2993fbbf720a13b77c1667fa76", + "public_key": + "985db4e6a18ef605ea48cf9c0277cb02b8403758440929f3275b71e068efac76", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "84221f85437848c604c936a261d9f68846a8776a8e520951b865976d0c7f2908d77329f8a64a6914344cc44e65b9590cc2f9f846a208d864758821a3f386c582", + "public_key": + "c2435ecb7dfeae94857df93f2778cc87de5823c26edcc24926e227cf8811084c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1243f8ecaf5bdfae8c967ad0c983c7c11341ea3b89e2fb5df64b12fdde221ca3", + "private_key": + "9ef0663d687fdd219c0d950f003c643b1b71897da2a1c21389fd45555bf85f0b88e2e76256e420303eb8b0797715e4be064c223c83ec5bdeb072f0c0cce4d8fc", + "public_key": + "56655320f1fedbacf07e374d5fa2aaac3078339bb10581cb5ab5634bed81ab6b", + "child": [ + { + "private_key": + "034477ccd87092b55a2f48e5a82c62a827b5bb9316a49dbccd1a9eb4672ef00897f7e2c5e690355a380f3bea3c2f7942cc5d158ecc1400ca67de7d346618f341", + "public_key": + "aa153737d7f0db41880a48d68cf22b43c44bfc0734d77581a42b80152df2360f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "111894a5f721fe501e2623798385b3530b32decbb810eaa21f0cb6047b222f006fede5db30fd8172403aff0bc9de8257dac004376eac460e893833a415027501", + "public_key": + "bc89a8c1b2d2e0ca96f6771009f14e3593f3e12a0c74a0c45dc0dea414fd6979", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "dc531237405476fe1f7f876d36f2245c06a7ee03e5e91f8d641b3e634ea4500e559141c3521f5c3129f0b9e5fd7c5ce7d75c5f43a2284004dd034a9d4bd0132f", + "public_key": + "cccb4f18a7c7b018047264690073d1c54b1b91870f579560943d7d7e534a0b3e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3aaf97b56b67349c495651dee1e58947787becf0e17831e21299d2df8b54ff0fa159bbc8e8f0f28499da02564dc12804c2fcd5073517d4cbfc7e4814f9129a7d", + "public_key": + "6c8e715db43624bd3c4ad2a784c37a7c50536ce449804f4d907389c7a5559251", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "924426a74347d292a791755bb87669dcb07e7c3e16f30e53270ed9aa302e5f0702f917d1901d6afeb7bc8acb958a894d49fcde350a9a23803cd5b78f174aad99", + "public_key": + "c6d25b0fbe6893a3d10711558c0543502eb3d115144296ef8cd58a834d026356", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "5ba625220d47304bf126ddd1a5a9c1ffe2fb69286fc64792577ca3b16ad5be0d1af41a2af72448fd4e816315c0b564c96b6059f2b6c18101a48e31b4f12f8f59", + "public_key": + "32165ddcf4297d5793d75bf07bd0ce5672cfa6eb6b5e5c9d5015b1fc1677a370", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0328b47a4655110cf4648770c66cc77c89e49bf293886de0bbc472b39030aa0bbf0ca656a184f7b418c0cca4f9e07af254b2aea2f191b6e4479fc5da650cfe68", + "public_key": + "1c9e164a345d4c6414695b05c7946963bf50e50848b83f5bbad0864c2e1ba14a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "45383995ff44e859aedadd4541e9da73508f2a9ebf3190cf8ca1673fd790e5f0", + "private_key": + "2fdfa8689c9fecd9ce69bd3974a75804f6727fc75d9db7896e8961958e99780e5ad37b6907aab5fd26e11e436e4019567e3c3f81561ff17953f75953340b68ed", + "public_key": + "5ab042c69c289a0fe1e507f8f5df51da6218ab0085ade64680f3b215239e880b", + "child": [ + { + "private_key": + "21248ec7717aa74883a60302c1cc191410d0ccd44361241b62806d05f745f3084fdc169fb3dc597d21a9ed42141f77a0574786b49f3cad49700ad532a0efa5bd", + "public_key": + "3cbff097442fa68b98b2d51396735b018c6281cd6340983eec4c611a1bda857f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a1e764df16dce80664b09290713052d79e1f559e3e06d9fd879f76a6c133bf0f1448dda389f37d3c9a35daea0b49af9bff1d4aff5981b3ff532a43f47a1f7bd4", + "public_key": + "ca37f33dbc5657eb6b62021e226e6943f36e08be8bc7dfac08f4463f4cad390b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "4ad1413dbca93f38c21ef255a48f6de56fdddf5c773ed2784228d3f3f4754d0c854ec294f856a53cc2812ba7d96145a1d1dd6706f87cb3e963e704388251037b", + "public_key": + "2021b2f29d4b087e7e4356af47a77e246141c38da79a06373015ec4815279f69", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4cd5955a6b7f40c2646b3d630fdc7944ea2570e3b18ac38d10ae913d89903609be0a7f0e5d97db753ae1609d77e610bc78bc50ff2548ab662532de21502ecb4b", + "public_key": + "ec23200996833c06654e0d59e0f8ae5dc5a8e0bb601f26177b19e3d1ffaa4643", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8e91a4573c6aea8fce6051904677ef82c13a20927a85a18a68fe1bfdbc1d07013465994fba48c3f38eac26bc0ccd6332fd620b17d7e16689fd4239439503c510", + "public_key": + "4cd6bf5ead0aa9334c6970a33d19b63725e387635fe3f8de0af957f55ff19811", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fc3f823a1e0a010020ba3b7d96a4bc24efc5bfa18a6de4047314799d26f746092fa6735db539560078fe580e851f0b13788011f9d022b3106d18f44749f135f8", + "public_key": + "32510a7a39c18e0e5eecd207fc14dda78e4db8325819aaa8b95ca954ed83fc41", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4536b81925177840c375b4b76a87287f7d5cc3237c21790b695ce922b43da30fa18225b64e6ba26193eaf32f01bc80303acc5be4588f7bedf4c252747e5bc760", + "public_key": + "a2094a2b077284d28a1fb23d3be97b36ce2e532c35e0d232f123d768c39f616d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3010c7cfe635a0d8ea72ba5d5937e86b6ba411c53b2d2d6bcec56b7e2e17c6d7", + "private_key": + "4c495e4446e0589a58b3eba9b6684919bf9203bb47deb1c11e04bae325e256099848c57035a825939ffeed69e2bcf2a031346f53abe97fab5d7e62b18efc1195", + "public_key": + "ace43c7b19522f1e48b571fea3d024771936e15abc40989fad0b56cc7726ed6b", + "child": [ + { + "private_key": + "e68254173b3c21aa402a9018ca43db25c487449549426c776404e06a7017bb0d809bfa35ad314992254b1c842d30068047e716c80ecc792757adb80ebbd3a7e1", + "public_key": + "a6727364e75b1244cb22f327943763258480f212aa1a0bd329f28783321c2836", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "391955db7b7156b1053c80134960398c0243c20cef2d21d986b6e2b1763d290197b1ed799ee3e21bb28b6ea96e4ff8b373459dd3550fd2d15f17f60eda80bd33", + "public_key": + "b4ba17e809ca62d53e461e4ab7a5eeae394992ef95e4dbeb5d8ba0657c836a50", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "20734c2836183d8b3a9a05d691055d361700b7f2dc0061fccf845c852cabca0e12f6c78479db5e1eae63c2fd76582efef37191cfd4e98a614be87844e18b5e8a", + "public_key": + "e0767f28781204a77a9337e79296f57f0aa6bfdb1a0f07b7fad564c6e2cc6138", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f28c78d728a86764e267d54964d1d37fd6c18bc1e2b33b16c594089abb1a4e09dd4bed4ab94c0eb63228c0dd5897b376bf917b9d8e3045db1b1cad2849afd339", + "public_key": + "e610020b281203563623f605cea7276a00958067f6cf21fa2f2648fbac7b5801", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f8447fe6b55fdc3649ff35aeb8e1423948c2a847a81e37b6c8d070ac6ff1510295bd5a641466d2af3dd230cabbc7620610d443fd116f509ec532e593d0b8b843", + "public_key": + "50ddd4a145a47e7b004a1f6c261b6c7327555b50cbd9466268d54bf859f8c44d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "72de9fc917fc6595ac475d20b59fe5363271a61c3ac93159be3f4155c920b30f2b2433ad97d2cb53e0be58b8b2a03085aadbd4cf9dcf922ba07b366e78621f37", + "public_key": + "9229d14a9c4e22464212afd4f58cfa967381ac8885e5974f7b361eab80b6f831", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b2b10ad1af59a6d25ddeed2bc1d71a8b4ff4f9b602796d877e1f8e6071c05903b006fc0983278870ac89937328dba69f8a606bc2d7a6278d0c14d7d42f765f28", + "public_key": + "4eb7bdb529d89aa2fd87c7a82ea0b99d0abc6d0a389c9a11b5d76af548f93f0d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "8425338e5188f12ca581db7cbc6f27b70dc14502fce940920eb1f4e3568799b4", + "private_key": + "7c0ea18558c483eea5f09ff24ca1e4a58c811b42b4697b1ec7a5c68f4e0b800aa49441cdc7beea54a5ef724b83a19b12e627c444eafd475884e30d0ed9d124c8", + "public_key": + "c2dba9adba2e361ae9a43c8834dcb2c9cf7f70e84c3e15d2f7c29f83d7dcb92d", + "child": [ + { + "private_key": + "980009cdc52be8a0698bdf82afd6d79e23b5728a37d57c4c7ec372a5ee27d60ba7c25c455721f601b82eaeef3dd3116c57d25028a40f85cd05586ab01f65136b", + "public_key": + "8655cb1d4dbdd835458abd48b6a90bff4d96e845a84df225f8ff68dd8db7c57f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5e4eb20a135d481063c20f2d4eb75cf6881654d3c2ca37898a0507bd69d066042f93e03875b7c8cbe78ba1cb113d8d012f512c86a3e44126425bc29d66b00a8a", + "public_key": + "aa720abfcf65c765f073946fd2b582859a511f88e1ba30459a2d357c8442fe43", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "473d502250fbac5207771b64155083204de829a12ba768681310e6e227b6550f2824b22c9552c23c6a683b1da129429a0f972a420dbe6d187af47710d398c0f3", + "public_key": + "0691075d8f721baef969039f938760cf6b87ae3684970ed0489a927d9a5fa729", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d63fe8fdef295e20934d0691750f1ce1188213ece89352ac5a03b8158657400fce2afb7154775d7aec458c954731820e3c39f98528e4e7801fe92e7f378e9934", + "public_key": + "0a14c7b836bc0999cf445467bba154ee710530c2b0ed0a23ff3393d9a193c947", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d3cf358de69ee9f99cf9480af9e0559cb7e262492293a2663f0be35595a5cc0f82bd60082468eab28219ff2ab70aa89e650906f077feca0f07b32a69bf8067b7", + "public_key": + "86d63fad62bcb8bff644ef697eb3f055ba2f7e3843310ab888f93b9b503c1006", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "88ced44608f15181d667e39e51c5dc66ac0f8a58db838533464ba621ec32600c966ce74e1311be09643525c1673bdfd1b5d11b7ffdd99526ed2ea909e933dc55", + "public_key": + "468aa77e08e78b19c424e76ebc4254b131457b942ab773e080a6529d1843e233", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3eee6e086f018968267f0e8a4e8bac0e5ff0cd13417ffdbc2bf82c6f000c3e061967265be967ba0b1a4fd4ab5160b31f96a11becea4b2aa50841939d89d56543", + "public_key": + "a68c5dd5556af2dfbf4c32e4803024fc167bdee1297f0453d3d212e0c471a55d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2d6f25640034405de848f5b53c10e38b2ad10592f2f4394ba0198c3fa43fbe8f", + "private_key": + "1314f069ff6ec9fe6453518cbbdd128529d73da96e19e0c5a05abfc054499e0ca8a10318002ed627c35710bbbdb451ea5c45daf820ba6da7d8560e945952cc47", + "public_key": + "4e9bcd661c791e83329bcb0e38cc9bdd344193fe1cb85bdb86827ce10425473b", + "child": [ + { + "private_key": + "86931ce47c2fc764a5070cbb981d1c77b5eeed2925f2fd4e7da6812acf29f50c2169cedc4473a6fcfa0c9217816f8bfb2c30f259f2de18a906e93fe1581f876a", + "public_key": + "fe420fa74650cbfd90ac8d88caef0d0eae64837c352ff42fdaac8c7205f57c01", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c010073e26e85ca2364cb1767b9057f55301a125a6a6d448ca5419a166c1a60e73a0fd3aef67f425291278d708bd220b0323c511fc0bff524e2df6bd09ff2514", + "public_key": + "1ca0e5cd06e23642ff48993fa5756d7112d96a917065d8573e49c56adc622f34", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "da6b0f0c737371a2726d86e02c0305c5d6b8e2ca7c4196cf4d8de72760782c099ebe31c75e162683d01ba10f4fd269fa60ff2667f8068ce4bc0e107b53fa4644", + "public_key": + "9e77eafbb553a362b6a77912fe0001ac5245f1f3e21a46c61993d73bef302209", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "61ea80536e0ecc7ece8111df1696f3ee215ca664b20426684a39286cd4ef150d376a65ca463032809f9288d2e8a615063132cab7d46dd22b7434e9968a03db6e", + "public_key": + "c4e697abd9c37c76ed430b46fda3ea05c648b5ade062d8b429930424b6b10965", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2f16319096cc4d06d23a68a4911d31ee13a5cc0c20db2deefd8091e2d6896405f3f93989b6013d309a40a8bd0b61ac475ba3aab91a11e4753d303a4effcdb340", + "public_key": + "b64e08a992b225cd4b78e540a4518c0960719df871adf302582f880019b8530a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "57415f63c27eb9416d2e84ee7fedc3de483e1c68869a169128cdab9c90e8aa09371503aa54560b1e0aad8cd2d164b953848b3b82ae160c114e6a6ad01c76e48f", + "public_key": + "3a35b63f3f5a434c1602332bc2d1138bf98a8d91ba8892dd636dfe39c91b9c60", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8cc345343c7b25a9e8e551b214af127b26938fb9a8ff5ab0104f8632724490034aff32a7489f9383aed237c5280e1ffa613d29ba0777cb17480bffe7b9f06c35", + "public_key": + "b206a8d067ac8cf184e0be1f1ce6a3b445fa590f10397e56744eb4637cb6ff5c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a45e75059cf320850ef0ca866fad415f70f3b8647eceb372c8dd254b38e519de", + "private_key": + "086de34726ec5cb69af4429afdf1940ee0b99b3aa08f7ceafb638d2ef1a20d0c4da083f2d092e2d68b827e9f545e882930a9519c2025939ef532acbca6c82a71", + "public_key": + "a818fcd21a2acd5236063dfe4ae450fc70e734830e8db024fa40f42605837831", + "child": [ + { + "private_key": + "dd03b90c80a88c01bd9c6e61e70ce25fd25397fa916d105da31c5a978ccb7b0ba41d9ab70075e8cc5f0ad3852d6a06bbdf47e0c13f1f1fd703ce0e5a54d9c18d", + "public_key": + "7a7af984ba19fe613e14983d5f07cd4400ff62f952d675b5b24b65e992ccb579", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c4fc1ebe225eb89a3934f496ba07114f1291a54d1c700fdc24125e087d1efe070c541cd00982fdf85a5a9e1cae9bd43dd012d5d18bea8c82468c1cf13284cd69", + "public_key": + "a2e15d68245d1ff97a8f044bf0797fecc3582316d9349e7437b8e93be7532477", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "704c93d86b5265bbe11163f7bbb0616467fa8179fc3236eff0ff25cbeb086808bcfd6b94de5782d19331ee1b2d29b5f19511040edbfcb57d3c06351685b61367", + "public_key": + "8074fb9c912fdd7a7d19889b5bcb1ab90e0d7ad57adc91c2d32951fa500a6a11", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "200da6cba46759d7f35f3419b292ebdf435018e3213418ecb5eaad601379b608cfb79d8a0bdfa470e09c810d9343efaff3d02b7464b9339673d038ff99ad48df", + "public_key": + "cadbc0140f2de32d5004b47b7b7a15fccf6f6d4ee91bdd9eb7c28e1b6e313a70", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a6cbc0a24797257821051e23ce7b417b0f24a79adf67a84b998fc476158768069398d31260f2ffe89a4ec543fe49592b76d780b9ac0ad14daa4275b6e6ef5a99", + "public_key": + "6ab0fe7f153696b1c15af04d9cc6d04a97448e1c81406209abd81c0c309e8a48", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "58354bb172ab197dff1e7614521bfac06032257a46545f3c57ebb91f1133220963c6fdbfa4142fd12c47bf96a1e8319b2b65c8d762983310902958b029ac3c2d", + "public_key": + "3243c314ded1076e92b8f36f54d0fd7c22bcb2cbfa32b5b9442df2a3d0849d37", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ea91c8e8fdea3ebc6a7a4a2670966f00711f63d1feedbc2f83b8c45bd07d4a07f3022ae6f33a682d316b49bf9c9bdbcc3589e65d23ca8a2c85d09b5ebe5b264b", + "public_key": + "04f570948bfb815f57fe45563139005f75fd8ec0043a43c815824527d5793c36", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f9bde1df4b301a7c2ee7b763dc2d3d70933be3cdab758da181367a7a7d0b1e74", + "private_key": + "63a7df7dfc441366d54e715a2a3a6c0bd1b8379eba98db67880dcac4369ab10b3076e22600ada95e0dee7df2dce516b09dac3604bf913ab07574fd838fbc6793", + "public_key": + "5ab6d38c374314c71712ba08b6cd96832c7ff14df2ffedad02b1f9b317f68a10", + "child": [ + { + "private_key": + "cc19f3283b285160bd9d77ccda3b28eda730758d9be9cba65d44f07ca355200bf7c8dd61d6906d308c26c9154269ea09087f8509b3f898ada72ec9f49e3feb3b", + "public_key": + "b25ae228155cb4652e1e47c1ceb3739e26b749044a993977e3eb110a8bdee825", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5a18b40ef3b35c85984dde78ae28d2d424e4cc3c82c7f1dd5a15f86d3b429b0b47a26862450f8adb2af215c7c3338d48a482791403c03ac46bfb35f3380ced14", + "public_key": + "ae21c3838d2d3b3098f6cae55f887a985214f2a0819111607dcb6fb895974507", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "33f4fe5b086bb91028316cacb7de6718f97e81617ab8b399cf4d5ee333810e090acc83dc8a86b886c06d12066fd6990f415a43bda6345002460d738ce7436202", + "public_key": + "7e7189c565b4bc1fb74f51d2a17993ad494aed565f0b593f2b1363ed9e63981c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7da546b3a79fd601ce51148143b1380f9593e66229bb86db3dae1dcc926f870d8169414440df5791dffd8452751b7d3a819b01a367619d6ab11ffa7481978ef9", + "public_key": + "5239c4e0b6f6bd39ee27ad7716a87520c28fc3b50943252315099da9e0d2f103", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "64e2c262232374b2ceb672b61dfbcfd3abbbabaaf75ea3490d538e65596a5000a6babd35a6411d6129e72fcf2cc55d59e0c77f28715a9c14f370d02e3da0ef8d", + "public_key": + "02c0398fd46cb1562b8c37663444df59204838c4dd68883c0820fbbbc9b84f1b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "1803c2296eacb8b6ccb86d7a5742e338e245e62acc509923576e22f8e881b80c3ae7fd23e1c2fd57b3822363dcae9410ba0135eba552e4e432a6fab40ace0610", + "public_key": + "0c0ae9650ddefd9bff6d2551609efa0b317908fca04c4bb786442e06f55e6b31", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ecfdf1b9d4204511c8e416fbaa594385bf1c2d64e7fa2d4290294efa4a469e01fd6f217c1f2e1bc6c663014100c224fd751bcd00d7a5153b33c2ecdea3ac1299", + "public_key": + "1eae0ea4a15922d98b2af0c9d80c002a2d8301285684a32f48926737ae31753a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "89d6ea9784ccb57d09e158ae1117f5db86d305729328a0311444f83c239081f9", + "private_key": + "d6c70c9d323ddf4dd5d182e23cf07d705fb4f2bb100f497bfa3628a744527e0b874e9de9d4cc8453e4b8dd70ae19b0d084a61d3b2ae764684ee0ff373f952880", + "public_key": + "36d2df07cb52292c9b8b889c14098b2b709f3ef29dc08338527ab00b5224fa7d", + "child": [ + { + "private_key": + "3bea73992a8d797951f9cb2bf4d8d6115fb8ce2655a60fd7719d028ea5f5770d5e0cb9fcf4658e0c861f48b6a4de0d7b77ffdd6791369b58109aeb116288aeb7", + "public_key": + "725911825a2260f229721c315a7abfce4755a43a6a68b3fa69bf8737686c072a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9dade4f337c7b3ce217ad3dc9ad6e3d58a2eb420186a077663933d1302db130f3a1085f303f77fbffba3fed1bba6373f18baab9819f6475c2fe35ed510f5c9a8", + "public_key": + "10fa5698ece282836721ca46359e18b628fa46dad469307c8629a5ed6983982c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "eb2f44d0e693a0fde90513c3406b8d11a473d0decc01b152e7db80d7cd03b00cb788b00664dd8307968fd48d1d8bdced093f0d9b40ec9a130e4c722763790922", + "public_key": + "1c91c4d85bf1459147c3f84ff405af163da9fac05009b5c07b63d37bb1079218", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "12a2d6389ed771693c287cfa79d66604fc77c0f510a2fba2c0ce5a8b9df90a0c839128857f102e184c1ae2e1b67372cec42e4882bd5919db5e46acd58df2babb", + "public_key": + "c44a1b5d5dcca5408f1b6ae1f2171ba8c4e2e126f1e3b5688bd53563002d027f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e77e4d755324b145a4e96e3abb98a01d3cc9207898c1b3e340bb0db97d5f4e03f087b8b714c4c9f1e1f08cd7ad052afd6b339db0ef7d73ec33875ded7fe1f6e2", + "public_key": + "4a091cd118d9720a4355383c4d3adefe131f7ecd28d6d71184db9f0d1c8ddd66", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "07d8cecdef969c2b9e0f5d809c6570affaf01aa61f66737d1cc61f05bd61f40db50a0b4c642aefcfa9961de3a8f9654f408c4d4e9196211984b90bdf4d56aa74", + "public_key": + "24db40edf6f5cbdd6c8ced12e1494660c2b788ed95e8a06d064f41a285816a13", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "38abae33017baa7ccb71c82ce14e782d1281532ba95cc0c1703aecbec8fc9b009b3c1d8902cd51a6f2d856e7a7478288e511e473e90f007e01a3ca3eb0021835", + "public_key": + "56bb9212a37ece11b616322d8e5b88899839e22f8f3923a9546abb466e529a5f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e3150e65d9755fdda337990ddee81327d27dcb8a749412254f42d209d7134cb0", + "private_key": + "41ff6181f17814f16f590b901e2546b4df565a00147c44597fc97ddbe11b8409eaf2e365e2fe7f6b948f3cd0cbdf9710b4e7e3e7f6bed4836507451814345008", + "public_key": + "4280ae20f9c0989acfa3b8db0f7d0eb99be00dca09cf2a23969ac66ec9cd0a72", + "child": [ + { + "private_key": + "9d78d94abd1a398a479f153b0f66ce26a91c690dbf9f3c7c535b88962df1e90f11977919fa637269d7d24865db00e5c51b1307164fb57a7ecc38ff29e911874b", + "public_key": + "3451bd363dc485a4b878d4014ea2ecc329788e9b675dec9e82b4163005a05a20", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "86955d6fbb0cef3e13b78b00c3506545ffeddbe383c99d7640686f84beab5607938183b91216e68d25dbd67c75c53f92522bc12df2da3d599ab9c8f046b41398", + "public_key": + "5a3a1eac8ddb1a476094544501b1c33330695f18b0da185dbe1862a8a913f445", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "6311a534b12784c6622e8b65a91022775b41db42e6b34ccddc6e742ea2f33a0aa4319503e287c8dcdb43636a10fe42ea9ba5ca707fbf4a0cfb65fc05987e51f7", + "public_key": + "d2ac60e019a898a30c6ccf3a61760037bb99f90a4435048e342acbe685751454", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6455d2d1fc7bd5046517c76d65b17fe14a7c8d90e6e663a8cc08652a5141880ca0ea5f9a0ebbc962aa864f01352ad16cacb1b3eaf4f048aba9a5a1fdca5d95a1", + "public_key": + "38f343d52d7f49c721d62cbb52ba4012275ca0b67a335270a9e0736dab0ec952", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "52d51af48df5b7f6bd1c8bb519706ddaca4634cfbeab5d78fd84b414b22b9d01c27022251fc7684bb5e49adf1f2a012107b9eee6b353400af70b9cb7a160d0ef", + "public_key": + "1217bffae85550622dbf7058880b91b5e8f81fdd6a240c35384557ee68385223", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "458689a8f5a946074cc5f248cabf60349e681012bd886997d385cd0fc9952b09b059e70dc05dbf272b82a7eb5e8e654cab140ce019a7550c6fb62235ef50662c", + "public_key": + "30347b2759858434450f794ba5cda56b638a118a3b1365c4ff580ea8118c373c", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4058b4c462b463076c2f321f1c7f7178aa3d8370d1f298a18af1ee099f2b2408a8980f7056b751196d4e385d0dcd28d041f266b603e3018224c490f98fb5c549", + "public_key": + "941f86bae21b24655543c8d3d361e44600f58bba9d11e7f3c105784f4b45e936", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "6ca486dbc6c3316ebd2a6e7d4d36d0e7753b843db22e51889f30a538782b38bb", + "private_key": + "577a55a04c12ba895b170f0d2ffb683377c2279acfff45e87c21d5860e79b508a2b049ffe37f404defa772d698782df1320e604dde7cc756b70a81a04933d88f", + "public_key": + "c6d232a6b3e75575f28c35c8c2bba9d1e2e1d3f4baf06dad2af8595f1d9dea7e", + "child": [ + { + "private_key": + "c0c83fff831f0c685bc319d216ed13deb58bb5d2ecc421398a6671e57b6ea20f04e7cd8d7637e890eafdb538e930da976bc6b01902353dceda0148fa7ee795cc", + "public_key": + "f2096a79182e566d8d949d2682c9539df4a3cad7811ed2090155b01df3ada76d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c09bf2d6a5b8f53c2cbcf157f16db3d247905f89ea9cd25acd0daf4c71f1d60af8927c35f6fbed3c40a170daf32360c4af63a278569a0cee449c341e2eea938b", + "public_key": + "7252377906df98175ac22b0d0e40eb467e7a22f7ef0421723e46a3e21b74ee15", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "c037ab62a36b2198a6d756fcacd49e0c8e6f9b536da884c1cf8f5370d287520bb192655fa58e528955802445bdc3358943f9fdb21b8143b43a088215325870cb", + "public_key": + "e846c7caa0fe42741be783ba2f8719d575c1417a09e6f488a9b5d7e627dfa74b", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7fad7c594d8d60068edd4bcacb85f367487d4662cbbfeeca643deeb21cc4130ad393aadda4d639ef74114794ed3aff9262401ffb2ce1c493e40a13133028ca4c", + "public_key": + "d248cf41fe857933b5e9b97f868fb3e0ffe7a3342c6c0bfcff536f60c46f945b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b3973daa6165fac4cb4ade265ae7b25a40b8dda1eac01dcc97d549deb3b8cb0906fc8994ac51ffbb661aaabccedef3cc1f8aea71af17279e5c27f667524ef9cb", + "public_key": + "4880e90559f5889e9e7547ed5830fcc65b3e3621c9275a13208838bdde506802", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b87f05e97986068fb7008baabdf01bf526b203d74e7f60abe2bb9c7ef398ff0d18d7c9e268ede8083e691ce7ee3d189c627c60c61d65654eb16eabfd1388abcd", + "public_key": + "1252908b2224b61f473e30dc87c64c6d41504d047efd95eca65398e608447343", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b3f3016627622a55458f658442a08139f2513d00387ebe121ca46ab851442c0f7a8f0f3b9c8dfa0d4e21f819a587b4ee6d457efc82bbb72842aa44f4f60a232e", + "public_key": + "46d59e6939533c94d5962cb280afe153fdb6d8e91be501a1c9206197d576214a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2d51f3cecb24a6120ceee4b2361b726fa510354fd82ff66596e403469f27126a", + "private_key": + "514b98a651f3730584b3fa629c9410b3de727b61cf4c142d2b3317917f7c0c08b36f318c7970d50f455eef33a9f2d0f336043b26d55ab40ecbf8f89670f97eb6", + "public_key": + "be1b0ce218b91bd7f9fa82f0c3cc465e45f6d8d38073fcf64b53154e3face62d", + "child": [ + { + "private_key": + "7341ec79b78559cbc94b4674dc4ec67d92a6a54a5f6cecb4ff1265901d57e30a58f90a5f6cfa9dca65728923ee97aab56878df0684d14543d12f2c5018b5b170", + "public_key": + "4068075531f862c4374d48454779fba83a1a9d6aabd0c173247147e9f7cb2f0e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a14c607da7d76873229f22c559d10e73f3500c9dcb216f0f94dd9bee9bf48d0718a9ad578f7c8cd3a1dbd62eb6608b2f69ab1ed2dc5dda0e1f0895b0ebe2837f", + "public_key": + "d60c1f641661ced52099b111bc59dcc1bc27bcf605ade82de092fd0722425127", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "49315c62b7a2546f6ca07f2bebf443f9df1c89d07f3a81e02f28e14b53d8ab0aaf262da1b66accdcf8cff2146c96c907090122f6e1105ec6e2c219e73cb695e8", + "public_key": + "4a2e0ddbc6561e589d61ee01acb8b336e72a50ec600d1bf7b41ea52ee813aa61", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d5fd1bc53edddfc4228af993a2c6b47be24016214ec3d7930b34b57300f0080cdb30d4509cad0d212258efd2b2bbc5020f636d60960eae8614188c78aceb13c2", + "public_key": + "201835110c00f5f50a5397e6cf88adda398d4108c12297979f43c09decddca34", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "75bdfbab00682e4922faeb071a6bff4fed07a17ee7fcc514dbd4e196c7334c00113166cb3059843f7fc1eed368d8129a3da0e8bfdfde2bf3df9b4d9fd86311ea", + "public_key": + "00a1b3a6e99a7df15798e7bbad0bd34f3ec391b4c7ca59bed59fe71191d2962f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a661b43cab6828e5ffc3897d6922ebc00185622631d9aa6edf9a595050e88008520f7105d453f3f067a6e42750a20c3cb88a52a1755eee62cbb2dc04992cfacb", + "public_key": + "46c380f3f50733143b6c6153a0695a94c2482f7d2f8827e1e72b0a980adcb060", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9d1df14d16fb4049ee1e898814bcd9f08de809d349819d41909399ccc1361c06e3787c528c15c55d7f38eb4bcad5a6f850037c008a379efab0d01b148a51afc6", + "public_key": + "5a9a3d679321caa375b4eb690f1344b8c075d94a7282ea49e931dad61fd02d6a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "be79290a965b96708266c1913ebbb8f55f3ec4988104fc4bc51ab0ab874107d8", + "private_key": + "bfdde7c6a5d6742a6b140ad2d718f6cd123657fb69f1ce47d42e978dcd32620e02f7bea6d7c7cfd0b76c1a99cfba16dba6a5630173df997bec25e642a8e5e938", + "public_key": + "86cc546569f7ca66e09fcf47c94c60e91f488975d3ea0a94e016d2072ab29470", + "child": [ + { + "private_key": + "5b24400fe77846bc6ffe279fdf5b421df00113fb2fec36f84c991a334c8a270cd671233b7e4d2ff9969cc1e38c1d98fea389af7e21c93f7ff1d99ea3894366c0", + "public_key": + "6862c4b5a865c2d40ad201d45382d5fffbbe0537b12f97533edf092415a7e67f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6c50cb3fa774f22a242a4c7c67095b81c87b7fa85c004a4fca38f1f58997dc00e2308243e82be1551e2285372ee69547bcd3bdbd7d541d26090bc3528ab7648f", + "public_key": + "2cef6e75ab0e9cbdd9f978031999cd6646f36bf3bd21dcdc3c981f2c07a8d351", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "2f1255359eb3652ff90fcd8ad1ed9c2864149a026ee88880bb05eb33d9854e0bdaf3bb1d79cc47d1b343b65358a9c4476c9caac4ead762ce71bd5785da296ae0", + "public_key": + "d2dc4b0f86a56d00af88398b92972404b0ff8ccf526eb400a3ab00ed492d6274", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f26770b8c7ea5e09705fe5d09fa64cc7f892718961cc39174646c638d9d2b50df5f1a9dcc2ac1a3150e44a2ea2667199d2bd87d92ee6e50e46a208d8973f90c3", + "public_key": + "341080953219d83da09745da70fa15ed28bfa57e89ce11523c23366ce0249011", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d8081a70d404989754f0f23f95b632e54b65e76f60b55347fdc1565f68212b0e7b97eba4d8583cc9408408117f72001bd94d7e024dcec37307e808b2f51f3963", + "public_key": + "46cc1e08e5dab3922fdbec818c2a626c6e751d0326b86305b8a65df47377c168", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "7b0c72a40392397a6b06233910feceec047c606cf47cc8b93579223a90c96b0c5daf530b9c6cfda6f832149aecbde6f8d15b862925361f29660065594cce5c6f", + "public_key": + "983ff79350658b01b81d78cee64f1e6bc6bf71b99373478808c5f23276eb0e09", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "eb1de409ecfb7cfc2c3b53828d5f65b4f9ce5a03bf6024c803b88e85c113760d692ab5cd4e39a213f59ed5f9a76a2264683bd28b45d490ddaa8948ec10bbe6fa", + "public_key": + "36bc9935c6a06778e05992e3614ff4ba31464180c91c78951b1040ec820c4421", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "fe6eb5786da549302e694acc25525331984cb4fcdd0f337c595180104926841d", + "private_key": + "e44812f7737b50d8800eed614676bd16057d77c1b3a990886c3a1972d09dc80fbf8c4eff28c97eee61391e4c0b3de0767f2bb39a14a40d7a6a8e2311a55f6e6a", + "public_key": + "e0a94885ed9659275742d95c573e06ac87470f082d6054affc68a3fb4a1f026e", + "child": [ + { + "private_key": + "3aee4610ca87e1eb31578f8a02f695066b5b9599b213d3a216a26065df761f09245470a5814a78cc90656b010890a054bf02f424d2520e8a576293a7ca0d84a5", + "public_key": + "18faea438362f370750c1a596c08d7a17e267afb5b3a26cf8f896f307ca1f40e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "015b0d47e2486d5cfb97e6db10aca88d7adc85740e57ec441a20de82f2cd7a08676d1daccc43e3818d484189fc328fd154dfa980d6945266fa513800d99a0f9e", + "public_key": + "ce5cd706a86c5a42738789a5515580168ad64574ccb9eb5d4b064d53f5095407", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "1138ba6a0034a4e8ae48e8fc178d0624ae44d93377becfa638b0a78ef068430d3536418b89434dc3c637cd542156ac12e3268d6efb2bd9b85455ad84b53b30e7", + "public_key": + "2e55b07d986e062cf011c4d8fd14d68031911f87b33347ecd72f12e4cc5f8549", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "bfdd30de5c4e12240fc587e4e314061cd7e12ca8518897a475b6163b10c8850d68700f43addc82cae320409ea5913f458eb078b38ca49bcb9b3faaa528971252", + "public_key": + "1e8c5fc9ca007358ecfa6adeeb368cff7f27c5090bac4be00ded62c99c90af46", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3152d63cd26a6bcdeecc47bc098e5a78e8f793a7bf88397a101a3372652e950532f43e0d05751b90a629ff53df660f9cb4c811080fbb65b8b0e461b5898d1e0c", + "public_key": + "7e96c6ab5d0b8f80f453bf2fef7dcb94a4ce63db0c32b0eba32f315ec1b9ae7b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "298b1cadcd7acaeadb823ed9639a62de09706e73ac414a91cd8d77d1761fe00feeb305458afb6e03c20a2ff93271de63fafcfb553a6429a3c1727a9a2413776f", + "public_key": + "9aaf482a3b069ca79679da1e5ca19eaa2c746afb618191f9a26bddfb7decb603", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a8687b5568a24e74b6181755d4ed97d86af5c68ffb29a0561b981aee31f31702e74e04c5f280dda886904c9d9e7bcb43f4be566eaef60ccfab41d090111482aa", + "public_key": + "668b618a509c198e79e61a38bf533aacb815bee30e5fc311a25b72bcb0e5a005", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f25faa81d4813605b767d815c89d43fbc8b30f7ddbcad71f2e501b69983e7479", + "private_key": + "8d5436f234e15d89cb9d308cdb6a87e313f026aca5fe757613a91052fd213008b2130fd7fda9aa83b419b84b3313606e84b4907c1ec5a5a1903a050e01166a4f", + "public_key": + "ae7344b89d46d8a388e7c557602ca7cd7c0ca6d0add76446a5bf36f0f404a33a", + "child": [ + { + "private_key": + "4fafedbdad215b83f7f5a4a72299d12b480c5e602a5066a2c16ef9f374cbc709fdddda61a16048d0e305351ab4da1f69096f3f746cc91a9e268f1dd8db032458", + "public_key": + "387439c43d5338e59511e82785a2f11babf415438bc5b52aa266e28c84f2441c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0e7eb94738cf4de8c1b935bda6038881d09ca8d061ca528330ef1492b0ca880cdc429468e481343557a616a1869350fb3fb62e1eb66051d03c546ff3f6c393da", + "public_key": + "accf993bbf5a9c1bf639dc5f3d816ddb3067538e8538388f667aee56aced8616", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "003e89ab2c813537f142a4f8473ff58a70815880f56480328e52187016bbfb0b68f28831c63d6dc20e237430641452cec572f98cd3261e95d79cf730b0130642", + "public_key": + "4e5952d9ed410ca04788d0240145d593e343cc915551765198c38f8c4f5b781b", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8137c34d183b3e5c72cf194fb08c97e7813f52e6f461af2ba7015aa130b17f0b26be5e86ccff257c1386af57cc857bf8d23121ea9445d36a49e7135b52085b64", + "public_key": + "982e95ff83e4824efad22232aecb8d8d5901199322a56a40c756da1b2952cf13", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d3a0c21f980d488ebb65e16a82c5def14d84f41c5d5c3b8d3e8162e9e964a60b98aa2031382b8913225a6b5348221892f898811864e53a761a3519826ca80c24", + "public_key": + "36af8ec9d741d29cc2e770ce22cb946501551ded957fa6a919d689ea01938a6a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "bcd5e4d5e1ae5871dd4f9ef88d206739dea5d77e9fb3bf74796ba1b24c7a970ad681fa382f2a916c55c3fa795aefcc402599ee57b8b3a93d0337acbec38ee480", + "public_key": + "7e33dc2b8e94fd335290549edc2b3277044bf881e19f64306b7eaa0c88660b40", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "bea0ac940fd50abd3edb2f923b1820e7e683195e6d3a32ec474e1cd95ded250cae37541b124546902986d308ed05b0d82cd011aefb0b2a49b0bcef4eb9c271e9", + "public_key": + "9c5b99392cf4bea7f2171cd922f956a97a2b191ceaf90c791d28ead65d8a802c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c33ed0d79785470475bac024919b41681845416b7e9de1c2c9778db3627a2ede", + "private_key": + "2362f0af5bc16d71bd0f223c7fa62b8bd9c3f7f976df5ca1171ad990be04fc0affa60849fbef399483d1f40d4d96c186f8491178783afa56ec5b018e46e25b19", + "public_key": + "4ae9ee5f7fc2a5fcc963d039833f284c5021f24c18af6090aafe2b0b2ca39e21", + "child": [ + { + "private_key": + "829c97f9745469314f76b128abe40e310045ea9b2e1c5b8d439c5333db8c5a0c73b5ff965dad98165e31c011199bec347b3106eaa06aea29d4898dcc2a5f0e17", + "public_key": + "0c76dbb082581f6a54dcf28f79f82e0bde1e10dba31884aa745c0fbf2c573604", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "00af006d19c05e545dd5c1d8ae80697acb362bf45bdf1e73373297049dea6a0f007763dc019dc84bcd205e3ecb9732d534bb0c546062e21a6ed05e5e6f15415a", + "public_key": + "8aab4126712cacaaf5bbf05a939e2ce977f954e8b52349f370870af6fb41fb6b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a3b0cc384f44341f7910114afaba8d79080315803725a53516640f2e29733b0e7dc71c187b241e8239706655d2f7f3372c8f6f865d66d236ba16d2612b079606", + "public_key": + "00fa46413f20acf66bfd523f39983731c9b38d7b90b071315393c8b5d5510a6f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "34dae287902d9cf3b8eb7f4b1d3e47cbf46c8b719e9a0f8ae5a86be28b302c0c9c629bffd1f53a7406ae23459808c7d8d7d3561ae2e8e1a62e8fcc8e67077022", + "public_key": + "8ed78f19cbfde09f2d2466e1eaf07839e745fd07f555a84d8ac892ef9be8664e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3bf34ea88c00109024a58f0408024f5cb879365430622cc6699c5367ad126300e5b5ebabfa969571b36bd89b9a04bfbb282cbca4b4f49ad5a3b44414ac4c36cf", + "public_key": + "76de8ac850d9568a660519f24a00ef80b6d475541bcf267dc9e4d514a12da224", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "bfe3e546d0381df0fac5ec1a7f1a20aca71febbd5bd6d6c0d7dc10fffa80170ad65d01632d1679d852dc83e1047b2947f01b2dc3530113b0ed95ec0af2a6aa38", + "public_key": + "e41710047e69997ceba1cd21ba3a968ce518d149471fd2a701602b03ae1c376d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "86db0ddc74befd0d6fad38e677bbe6091978948373ae5e090a05f6b1bb972c0397f7f0eddab346abdbfe857cacb0a5d13c16cfb417bfb2ae9442de2d34869aaf", + "public_key": + "1acb4c1fa7234bc5f3dc70a080776a5b3afb071a8965a969469fec437775bb00", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "fb78e1d28f26887acf3c5f6a1366307637e1833c3c12f14ebaef927187d5e94b", + "private_key": + "2ab5005b4aafeca97af1b9ab79009cc2f1fffb60ea4e8cbf45c79172bf8ca10bccf47460ce52ce9be67a1ba4b27f83e062bb263257fa54a287e0e75a4d2cb230", + "public_key": + "625356e3b90dcf7daf1bb9a1011a44bd1c75f525f6dcf6d6f1a9608c7a7e2864", + "child": [ + { + "private_key": + "32f3c6aca6c77ad7b0b99389891d29522086024f6cfae65337be80dc1f31940e9950e9f29d94bcf43aa3921787fa74b9570718c672710902bef39b7c5acf0a7c", + "public_key": + "2eb5c7de1eeaad0f3c941242d4278181558ea961160b7fda33b1342d1db84746", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "24f68e23034791012b0bb469759359f714ced89e10bbdfaae06250f2aa07e40fbe35584121fb66406458241d897115a052999a721e36555ed671e98e74209db0", + "public_key": + "3e0e09db4b212001731f1913b2a5021cd9e5838fb2de68895c0f14daf75cee6a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "de35b7e9253b764e7dbc7e4433e115865deac362ab0f7b95b27344e3a7ff220f6b778bf20d890e25969eb239361f5b4d9572e1f3195970e59cadf1ca158a8499", + "public_key": + "e278a44baa4c947dbd93e5714132570837b3dc4b5e905e35b96158d2ec1b125e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f4c83c9238e98adbdee8693860aeae40b715d25ad3dcae3cc73dd6ee85dc510b82902a65094cc098343d79bdca4a04cc7c3dbc83985e31e45790b0912112ba50", + "public_key": + "b265caae4a970e85c537ba074690c1e547d76657c0392dedcd2b62a763500d3e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f1daff284b2d86d7cd8445c7e7b3469d0a103e2a84c6bc261a077d8dedb592087c8405aeeb73370dbfec5640c7f42be2b71f61aff0a97e694acac622c7c51c46", + "public_key": + "ca79cc20296138f60c0992a00ffa55208eaedada760d072fe3de77e83491cf4b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0ced355e4157f936d2e643428b2fa090f71e92b7e9008da1bb741e6690069c0a6155d653f5f0be715893d0201a0061334a74a1b81874636dea6757c180cd4fdf", + "public_key": + "1c5664a4effd84e7d58f482aed658b997316271b6e729e5843edc51cc1e9b306", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0f8f2676df00811a91988b5ef37f5ed3353a0620fa7310e84294e3d3e56b48065cf756a2c9bfe0d29c782aaf87e6c5eb8a5ff1e39f6ad7427b7c681b371a75dd", + "public_key": + "b43b175f471ac5fff396ed34825c9ca306d5cf2378ce8a34c27549bf6ff8f102", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e533a3399039253927edbce2b910b5306f121de92bd59c60487a99e3beb3d764", + "private_key": + "1ae7ddc37177f733a71fdd9c6702e60a62170a55378aa4ad28196a595f79bb091ed532a9d526fd4736ec4799cbdc4407813b397ea03e8f4650ab2d58f7bb69af", + "public_key": + "f4c9825daa7b6ce0d437e8c189d61118e8d310d58233826d3d724a86c27c3641", + "child": [ + { + "private_key": + "823881fb2798572dccc2d827a73f71d336d036d3ac4ab9aa94368fd60ec7ad0853c5ca637a6b168ddde3c9501f57ae508964d20a9f6ef9c03a4b7fa10cbcceb2", + "public_key": + "a4e68b3525c13948d48fb317054909c6d808d31747fce1052aa4db34604a3921", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f59e16ffb6b2ac57abf5f60ca90e41f334fd87ffd88a885007b61e5150c90306253ac7ed804f2ebd379d25219eae1cf8fdbef71c1d1c886e82732414510550bb", + "public_key": + "1498edb2723d7d72e10d721b6f555dc479fdf0b6bd4353d79601808f75c69408", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "90505f3a3057ee124dbf991c806dcd3ec4e6db7d69f6fcb6087a7d8df84275097f10a56ea2f671fd50d8ba33d9d160f79f3cd50e16ac17557bf831a338c8a6c9", + "public_key": + "36a7619a2ef34f307195bff452644d3a9693d19348703b1cf5303d845f44ca23", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "fac894b04ee68949fe7d3293633394c3233cf259286f191fbf92fb95ce62cf0e63d50296eb101ecc4064bd79390294c158249486716f9ebe3ee3792d0068ac0f", + "public_key": + "74da7a8bbf654396f3be18112a8109f589be0158ac7048f7d7dd51c0682f7846", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c44b232155b325efc74de4165106e2fc572228fbd678bd7dc34886afff823c05cd9467999ece043ad91f117f9575e80dbf50f4c4e2612f09b01ceef8f768e998", + "public_key": + "c0b60772e5782ab5e2c82362c39592ea380089cd9ccc358a5984e796515b100a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ce9d1a0d80a48383d994a4609ecb6d8bafeeacf0f872687e61738f9525155d0b92cdc83e8226ed7cfac6e9d1d741821bc4c5bd041d8f672271f314734ca4c35c", + "public_key": + "be6b9be13bb9e55cb20433e77a91128aed2d5fa617aac8711dab1eb7923f9257", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b56db459406c313614f7d7a9dd3d70f00003a07d96311e99c8fafa0cab6685084631cd725a666fba7a4dd3cca3010cc9326e768fbda096b6e40bc8ad6e4a40fb", + "public_key": + "98d015948727bcc1d02d1cddd81afa3a88e489df53d3e3af9a54a473e414582f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "dc86654ba64a0c51a0bcf024c5d2b0b1cf3db4f09ad146951b1ee9e24fc8c0fa", + "private_key": + "c529042459e4c2199367e8334afa0f999852a052cc36cfd5d3a55cc554e4ed0d6aa2ccb4b8487d062ae8b2654accbbc00edacd0a796f88f840a297bff80b5199", + "public_key": + "4098d084e30e2d7485053408024a911771f40e5efe72bc4b61118bd639cdfb31", + "child": [ + { + "private_key": + "e202ea49be6b224d4fd387c5bfaf4bf0936a547fa65cef15e817f3d6b649ee089a73172f19ce98917618a436d0ceccd003a79902d6d0632e0a9731f0ca38aead", + "public_key": + "d438927fdbc1a6a960c03528b243a5a34c284afffa8bea39065a95de014f9e1d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "166df70bcc9ce1d1eb773d634a2b1e6c872db3bac95bde5258c5a2f19051e101a332fd1156579ae70a6a91141cf577e91719789d09c209801f50383b9773c37f", + "public_key": + "16ec81632ecaaca3d9403c75906e6c7c42cc2b0ea6447e93d26cc19e3ac1413c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a44a2c6fc7e8c8a9794937927f848c3cd092843f90140050c750dcb5d2f9440fe26a82d457ba2593993369ecdfe3e0f2fb7692a7bee695c686ee01873b108ad3", + "public_key": + "16afc7af2299d3e39cc34325533b250fafba490bf0ebc46b80d5c760ffe53f72", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6962d90aafcf5d536ef54c12b0ea1b9aace7e3f2d51f05cda37805da65278a08ffff0b0f9de026fa5ff1bb1dd9de378197b9233cf876702949be76abba0bc23f", + "public_key": + "6c728f7f37f60a02166a8401c12ae8a675623d88f2ffc22d4c250e11337eeb0d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "eea1ef03f0bdea9747e38352db2843cc3fdaa727402bdc68fcd57cff8a09cc035ff1052e0f66e6b044f2305db06aea45b5b42cb79d57f7ac81850f85d0bbd45e", + "public_key": + "287bb7370bf45dc4141237b7e526e2ccdf9ea5f06d3043fe5e705a68e38dc67c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "bd83ffb0c6c370a0ead7d2e8b00fad72a832ab5df8f65c0c97af5b307fba570fabfe366eb1451022d77fe253f7a3f46836d6a5af6a4dbb8d8fbe36a1751e381b", + "public_key": + "ce7a735bb6df7ed09884cac479f68e476f9cdc19548817d8659bffdbcb718b75", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5626104107c916e39775f0504258169a7d6d0681d08efcb2b4489c1ca3707e01830aba85f3130396c699c3b2c5f67b9bb22d8629daaf8cd6cda40b172459e2cc", + "public_key": + "da6e08e8acd275d9a6847f7105c787ed035a05b0cefba6d41a113c20ad68252e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d4893d0f74f28bdabe92647c4327d4787446174b2c694a5ef2141d74c441eb9f", + "private_key": + "28d8f1338efdcd58335d265be5fbab1f9b1aa4f9bec3c6d17e73f6f01d96980acf7fbecf77ad36ed51aa68aa859286f9cdf7313086e49ab8b3b457ec2f421e51", + "public_key": + "9870c2b8531cd22859f8bab0b8b96bffaca37ae67024c7037c9aa7d674524f0a", + "child": [ + { + "private_key": + "50be12810adcde8162d9400986c75f950ba54e51c0dd33c8718c853dbccddf0d98e6efcd62e3b71a3b321d2be0bcd248ee3c0dc3b3a8b80c2d66cd641565dd79", + "public_key": + "d6d2e8b375e0cb8879e5ea0e5f63c4234f98e05b1fefe43095b80ed53a76b057", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9329aae5ff64487a4bba0d058ca3a18fe7e71f48efa6826f168d1177a0f6730ad6b4d807c960794014c9bb29caa94a01a402efbdae7c96b4f5797cd808f3b647", + "public_key": + "d06f873a3da2adde22b4143865aa7a698c3f9dfd6eedd8d2230d5ec86e5f6501", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f5de28df8ccb78101dff809fffe50c818254c9e575444b0aaf8d6c7258bc870c5fe5095358bd2795bc5115727fff34c64a2d05ede5210a87ef86309056a53e1c", + "public_key": + "082a28755128124931a0a9c9f5d63ffdbb3453fb4e0f179904d55377a109937f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "64f62c926835c9e19b53332c78eeb897b8144641810f5c20d4248258b5932109802937a7e4a171326a4c7be667aa9b99523fca0127c07a90ce2c45a073f6e651", + "public_key": + "7840d6989e9642e3458c727cc8f9155d94e3cd0600f35f147989d93d81b89268", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c3343d4cdee013ebf493eb9719dbf252ac560edbface1aa0687a755f7e7b8f0c5bda8f56fbb30342af15add20751915de7360ee5504e58424f8731c7bff3ec8f", + "public_key": + "b01b8b191f7e1ef3b09cdf9642d7b6cba2f007db23187040e293d8d6399f547b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8efdcc35a1959a48a0ab5b8846228a0ebeb80f2fc29a7db56318e95c0e89b8096aabc78d38db39b64ce26b40093e02ad6324014ed2266232326e8cc5739e8fc5", + "public_key": + "7c57a7fc3ee9e35380c7744d4a51e9460ba998336ed2be7474d5a71b08cd066d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a8024c2d94a2c07f396634e44766014c94bccceb11cd17dae0227a4f139f260bc88798c8847494575488f934c8b52c8e1260470da6f7539152248c5c88e3f661", + "public_key": + "5c10ac1f60e6766ef866d836d5aea7336ecfbafee08a4462c2b9ae0fb01a7f62", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "77e2cbe225fc270c4e9491f4c10332eeeba9ae299d1527d59d54fd691ad77133", + "private_key": + "1f1e00eab7c18a9935dd5adc6f0bc8cb9a2e36fae52cf08b2253c429084cac0965c4e7af05b0570ef415f740142d6624a0ca2b0f8f0091eae820a3c7759758a4", + "public_key": + "7833ae83985ad76b7d4ecc36d9ba8164543cf4ab3886dc3779cf4a9d20daf411", + "child": [ + { + "private_key": + "8c1d4b50966199361c9a9dfaa321c34a0af585f847a4eb4e279d15f8c0f2e6080ebbc75a05b89f76cdada6b5c9bc4e12037871bc127a700f1ebfdf55e0ef5d84", + "public_key": + "8603e7ba1695971a1daf72e600798dafee14862de35899c766c056a4fee7640e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d1fbf66739692a32632bed439fa16c1ff7466898c7162e2c8e28b35607dfc20f289b10d5095e2f53c4459438e177037372af040ec58297c906d817f94cc45b27", + "public_key": + "845b70c5467fb9b530198dc0b4522d25737889fd3f680d2798dc76c3b58d6a72", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "29a1f3ead66cde914a3e4141b8c9319e998ef7730747ba144db204a2dc82d20b75aad71b2805ade5c0476890ed1c5275f92cbf962a5fe6e6d92f8557a64b01c4", + "public_key": + "2e48c31a7ad2fc93affc2a28ff8a1afff23eba0354ba48ce7920e06e83b1ef63", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2ed23b41914065ceb70e3262039bc841760c25c4b735836829ebb11fac53590ef514bb9099176b78a356cd53a70b75421d8ca41081ad5d8302b4468b4d3ad3bf", + "public_key": + "56dde901946a436217704e9423f8a94ea870d6b5a0e6243e40e2b99306887c31", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9cdcc4ff7a30a67f3071d61bdf3246e7ae5e4b76286ab37dc97a8d31c8329c0989d7a84b126e6e261edd7311fc9273ffcd1571e8ab573fd7083fa742d900a5ca", + "public_key": + "2861ef9e63eb9ff3eef4017799444fd2bf01088d2c09a4deced4e8986be4a01b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "afd50d94cb940007d607273b9b00effff7f91dfab25d886d7aecbfe3b033f40ef470f06f1f24f6fbd8bbcd6f18f284c207f4b995b54249cbad85948e1152938d", + "public_key": + "98a5689d28e9b929b68d0d8940db20c4fa7f0d6ae4fff02695016c54f872ce4a", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "87cdf7d04c449362e15fb1e72a5f2fe2325054afcd17eb52c9a44f0e9504010b0b2fd3fbc205e382fc3d3aad04f8574a4b2ecf1e20468f02eed60ac5cd90e980", + "public_key": + "9ec7787525d642c7a2feafb5311780076476ddb01b30c29aef0f6556219eea12", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "638387b479938b215ad14e65ce4a1c863c17a3e001c8d49eed07f06c8e305506", + "private_key": + "023eb41c7cc5dee16a22c0af5e7951c5fff2caf61c24494144b0cc95b4f82e0ec9fbec3ff8aa40392c1ebe8b995d5a42b76a5da0257ab74a53b6c02017df5c58", + "public_key": + "26f658205c617dde870c6dfde32f6644d9448f48c5284de80251ebbcb50f0d63", + "child": [ + { + "private_key": + "3ccffc1b685f2d908bcf1a11abcbdaeb1c5473cce402472af133d88faac2ad089edaa47decf636e6eb095b77b74be183f75435051af9ea28587e1961c486f812", + "public_key": + "3200a1a217c9619b271b0e06998fdfec135b55eb292949825dd33117f4d9705f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6a0c0d52fd6f8d407525e1708a7fa5e35be8f2d1061cf4f9489b8c67f5a4c1092b037e0e45753f0980d661cd14631e1a59a169fc3304e11a1b43d4bf98b4ecae", + "public_key": + "5a26bfbc4eb03aef98de9deb20d7ccfc18a9848796ad5d0f62345d1a18c9f46d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e9a930fdb6f5d1484701e3475a5a6efec8147a092f6e8599974297d8ad677c084f50740d1eb3f45cf2e8d8843d2fa181a7d3582ae2259989142347c6833246d8", + "public_key": + "bc7d388d0307b6287b81f3047164d1476db609925301615b5cf929b584c93748", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d9c19b687ab617009d999389e33e683544dae831becd1769a18af393aa63910b1748985e10b1640e4583b1c0ad2a1c622d656a2ee4a12f8278c8815b4c5c6cc7", + "public_key": + "d0421f9c841f724ae85254889bbe89874256eaed19d6b32e77df9fc0bc68ff49", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f8eee44264387938cd1220c393b71b59917cf14d979632f7473d0b3f1b01ab0b6027cb15af054274f2c5cd78d34bcd5ac125a894c19648d7c91eeafad954390c", + "public_key": + "7c41738aa2e5e1e91510bc294a33376d573190c7bd76c4213b543baf02991510", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "cbb36401dec3cc3fcfcb1e004a3e5ccf66cf7f4a2812413461a88224430d5709a5a4f09cafce8999482c628d07ade4f17b2d15fb4d49402fca6ea839de9d0eb2", + "public_key": + "0087112ead4123f6364c6f340b285b768dde3970f8da261b306da8bb68b96d23", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "255cb20c14f4b70b62cfb9ae5d8f88c838651b81ac6dd0c8be755f9ec7d15006cdb9b13def8f5504ee8ac99a2351aa7cc832e5efc61df276849c659b2fc40c0b", + "public_key": + "46da6e390ce4916b9b9ad1e32e520437a702f2c7c169c9c7924fd729cb28650d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "5a18fe980fca6d3cbcff76a8f21af675ce39fe01f1cb6e1842aac2515c128f2f", + "private_key": + "47d2daf43b9722947924f9af1825834c46527a9a677cbe11199b6b803de9620f2e69572544492ba2a66a16d0e005e85343ac61a743bff43587503d30b9c8bc27", + "public_key": + "f2f986d64c048c1c721ccffe10f30d6a0bc300bdb293dcc90c2cfa2e1178d36e", + "child": [ + { + "private_key": + "93318d74cc1ff0176e9df976f59df46bd81625ee6fc9e60e49ca47d3bfda1b0eb134d8bb9ebdfc5ab5743797b962a05350ae2809caa2b675e4c14267abc8c6d6", + "public_key": + "0405016a636bf8d60d4a8275221286b3bb62597cd79478b99266599953d3e653", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "fd878806473e2aa470d3d6275e688744bdb2fe35f21b720d738c930a49bf900c9ce7724f88a3e92313a702097ba4109e2805d7d8d214f1fa9ca4bc3c8034b61a", + "public_key": + "4c31d24bf7f18511f7427cbc674728757ce2d206f7e8a95bdfde7ef292ba4d51", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "46190395d02ce596ce8b1bb2e18d140d001d618904f22fb928fa9f23f78bdc08f81789eb7979af1ab2e0f9948f92e6b79cf20716b6d7a0e295489277ee212fec", + "public_key": + "e472999a5f676ceedf927270918287c520e9ff131fecd64c5eae430482f8d46f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1e5371752f82f768367d80f79d16eba9fdc079299aaa2c98a4bfb12a96fb8e0838be273048fac6ce425424b761bdf66056a401c8afe4b47c0f2d388e150ab05a", + "public_key": + "fe77ed91d7eafef693dbcd283a9ddb11bed7273271481be765306c6df69a0952", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f99c0ee11e8ceed72245707e059bf0ac9e79933d092c192d5a6c1fdd2e52a505d932594be70a337e8928fe0eef83209d54443a112fbf0a56fb43345ce3e4cf9d", + "public_key": + "4ec2192daaeed61a6bec4b756f533b5a4c9fa34336f76cd9289d793568f8fe0c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8a186338fe3c6fce6bfed9169ffe7509b254d9ef38564b2d47f927f1c242ef0c392915a3ace3a60fca3389003ca5a0fbfa93bd09102f04acf25ed77a0020292e", + "public_key": + "58bdb1b5d7f0f39ee0b36912fcb11f297e46900320fd51e2de384cc970940451", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "65aaa291939db0d5d71906ddda7ff7ed7a3e69a4a3063e27988e95382729b508f23511be9fd9963055f584622c5ff14a61f0d33096861fa0f4c18026539708c8", + "public_key": + "767e05f65b1c9cbe4c1c680b09a3744dbad6261b572b64e0a0fbad4eda077c40", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a6d82f1bdf78080bceee75249e94cfeb5c6edfd41f616c9bd15564edd67bbe9b", + "private_key": + "7f66546b35327f5388a9705ebb2402c0f89f629ff11212fc1d8857aa08236409c66cd355cccf19d360609dac6fc4e322474c7155132c7d611a250f3a8c5d3bc0", + "public_key": + "426ce05fbce90ed0a32db1cd70f7bddb2f887c09af61a15e1bbf0587528b0d12", + "child": [ + { + "private_key": + "f682f2da01c3fe278390c05f05bd8a0517faf9b9e4449657f519efb503d1510c72f375c78d086debd5dc1506a3c265ef2a6c00c9da9a03a876cb1dc89e2ab3b0", + "public_key": + "10a0ce671ea32040b120916daeb426e3ac03223bd5be5d9f1c4374155c44650b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ec7570bcedbdda7dea565128b4afc60134be90b3ba04535da69eaff9ceb04f024b85b7363a89316dd1b430fe8f9e31d930e1ab533eb20e7b1192e3eb1febd848", + "public_key": + "d6df80216640222bf5b338f65e8331ae5f2be671fa92cea53d6b301778cc9a04", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0c030f7a2fee6fc88576bd573c4d0bccdd1ac5abd959b650a0e0deeadaeed70dd70be4a49f3680b3c08b98dc7f51754eb387c6a54b073cd1e8de82c2b66d45e0", + "public_key": + "2408446efba4962e43ce6c8d494c3285d63078cdc89fee53a2490c36706be912", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6cea06b96d3ffde33c9439cd6ac0ebe73ac802b87f5f494e4c2508ac6a58970dc02f28d819506dc72d2a4593281da3852e225cd7a93f261dcee2288952a507ac", + "public_key": + "06be8108dc2689c8e54e360974c3991a36ecb225171573dab9a737e4179e4045", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c58654f91ba47dc7f8848e307bd3d2535e4bf765441af39a3cd5fd6bc599f104c3d0ab9ad33cc5bf3f8d69e3e1c50ab186f66391f1ff3f263ba8550ba5f4dbb5", + "public_key": + "123149a73ba13473bfedaccb639fc4cad6ab2e2b6e46bbdb2fff7e4851096c7a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "aa38ff5023974a5d7e9bbbad888074fa9855b33e014140b68bbc4a4b8c090508432ef4079ab0f890ea926ba21a260fe1cbe964e24e91ed595fdcba18d1146d97", + "public_key": + "4a75ba4b94ca18629cb3309aa078e7293b3bc09e52273af59be7c8f5819dac03", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f0f7380e1273c06a139d71aaadbee121689d4242c50e1e7b1ba95c1fcd74f9019c7f2b02b4f1e215aec35e779bbb328a40f0c84b808f1655e2d510fa623044bb", + "public_key": + "1a1610adf289c90e6fb992452cf9aef24a7bacc356c27f173be11829b6e2b31e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2c9015a1d44dc69e7f53f2c7b86aee229499bc87130a4eb52c6a01757c8aa6b4", + "private_key": + "2fe0e83e3e12b9fc40b284a90a4a814488d17b9271ebfe770dc1eafa1597620c926117dc4652fbef71942df453c091a336d964acb94e985587ce5ed2e850316d", + "public_key": + "6230c55230e1554f36af83cdb06468f53988f777d6c1caa68a14e47c9f7dae55", + "child": [ + { + "private_key": + "89078d6d8198b1a3d42002456e4750df304feb4866c289a8639de420b594d60e37585fcca351cbf8c1e7972cd4201c7afec3c9cc15f903e6abfc03700cebd5be", + "public_key": + "a4015d349025527c523b1a1e3f67e9a993260e47fc69817dfbd4a0dcb7f69566", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b77cbfa05b2a1640c954f45440950fd59f2b204fed6c1f3f9a516e6a5a909302137111a259d5e702a97cc5e0038146ff540c3f4ed1da96e43863161d2bf1774d", + "public_key": + "be780007cee271bfe3d13a3ec5ef46a56043f2bab5c53f964c74263a33e6460f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0269102dea49c11c6150e88a019383f8a818a9258d3434ee6bc9ea3d1200460a1bec7ae1af11c92fee98f62d22fc5361b5e58e89f19f81c8f49d00ed915ffe4a", + "public_key": + "a6969e8686c05138a40e7bfbacb3fc7a80f85ef39fc87fa27ba8722dfc0a1938", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9e96db7c00f4747432dda7b5d9e08f4f0e4fdc2498e2ffc9287e2e9e23831b0f568af53b66d243ebf511688aee4c041a5dbb0157d410e309151872775e54fa55", + "public_key": + "dca75df7aee3cdef489ee6b5165b28fed0558cd200f1c6513ce57d7093af3340", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5d1dbca4aafdfc01cacd65f119944759c82304f91e4cff87a98493cca1e9de001305d083bd474c0cd32ec5f9d996b0aa96babbbad733c6fd4ec4b697ab27b8b4", + "public_key": + "be0f8cbb89969f3a4ddd94d62a535d3b035a0de1b4b61fd5f20ee6fab70a7502", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "2ea4e18cefdd23640661b4aa067424204b494a98c820f1a8946a9060bd6f8f0da4cc6f5540110fdea77231c6a0afebc70c832e9fadc664e3215a3cc437e7fafd", + "public_key": + "221c34f105f65108d4941fa5ca1ba6d3abc72b240d85b17e4707ef1a94a64f22", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "af4dcb6a756c2163e606c3781aafdfc8d4c1685d6565d591d161df16b05c950c60698afd58f5a8f7eabe1627a584228c0287672461a20b6999cc3e75f4687035", + "public_key": + "de89782f8284027f83c5165274bba30e27eb50420b8a033346557dc997bda579", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c0964483b8888efe303a821bea2c5cf3859a6a1352cf87534a0caeaa1ab9e5c8", + "private_key": + "9cd576545f9923d170eba59a65fc50c73a367949ce757d086d09b7fcd88dc20a0f6803583921328a765182ca00d41ed131bfb9376969501d9a93b1e50d6b13b1", + "public_key": + "ec01d519424fd046958f9dd937718fd02d2e4acda890164ff4ccd8d46bb7f252", + "child": [ + { + "private_key": + "ff20244bdcacb9e88989d380c4d92c8bd9c3a91dc8eab33df10adbbd7c0b2f0e4574609976902ed64c406b606679fe6542717d13ee4a448591297d9cd58768b6", + "public_key": + "84db5555dcfcaac184918a774a28fb86dc09a6d7009140f42618edebfb04250a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "97429d3406c3f1a3738fa198b678830e80ea36d9220526f9bbdab5a0ad3b020534c0ad61844034c00cda018689476cb00d4078069ac459a2cbf3d215e4212749", + "public_key": + "56ec6e06e248b4ebf9a2ebf51bd7ac90127dcfab1a35a48c5d04ce91d7c2ed04", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a6fd24d1569ed948dfb68b7a65dc8e4aa4301a9171e7d5c680092215d953520982be83145199949edb929fb805fd4598c32c794c03f33c1ab84dcfdb07cea02a", + "public_key": + "fec7573d83d02f7f5a93222d7b16d92ddc71a883925a0d6caacfc9b098928300", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0d2669c832713aae020d3b6295827710221b39a367ead8897171936cd708bf0ca76b77158439df0b4288cf1fc5352c09f5daeb7f932af4e26148d6d15e40ddd7", + "public_key": + "e2908687f4938560feccab4c44a3b4214bf0048048267c316b208ef932843a1f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5eecf40c66d31beb486998c1e895f672d18690819dcb663d435f8eb42eebc60510c17617156194895a5477363d945f9a1f31caad6f6b55a270bc99a3cf65eaae", + "public_key": + "c6ccee5ce38871d6077b9576da48c3ffdb4a151eefb86a848e345631d4f9a036", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "babc51bcc6b59aaacb36affd01ff64fbb73121ff3d563f1491f3af70ad217f0acd4b967e6c71161f2ccc7dde4d1629532e42f5da7d35dbe131f9f3b5a84482be", + "public_key": + "2aa49726678e4f31647dea9ec1f863ac6df07480d6e6c23c6ccb0c8464984378", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c37f6e24569832c3e9fe06fc7d27ee82d8e3c13219194b0d074c9d9f4b61eb08f6973052d4f0ab06dd190181c1dfdd51829de7b62c8ce01ca88f1c6698e261a2", + "public_key": + "64b559f8f8aaef561c8ff50ed879a0d194b871a344187abb6dea0982a19b6d15", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "6631c888a5372cadb534070a326fb1076555017c5942e7a197d1a163583d2d54", + "private_key": + "a711312545b1a77d0f1bed042cf5ee656ff156ea6a23b36b642a3bbeb765cf0fddaa2043a7f599560d6d42fcd324c2775dbce1b7327676fef3833cea22295f75", + "public_key": + "1e191c77c2b8c53076024840554db04b13df01155929be4a8c3e549f62570a5f", + "child": [ + { + "private_key": + "48ff2ab3f3b575d19db902c84656b8b43f63a5ee25b5038ee7fd37ffbbbab00a43bbfe3f6fe7dca11960dd0d5c37170fa54a72992f2d9927b91b7e7772e4455b", + "public_key": + "90c1c1a53439c1ab43a3889f7ef095caaec5b6b09220d18ac831d4d085a96615", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9947c6645505e11033e763c67edc6576f7f33ab3912c2a5ddb8ee25f96b70d0f773435a44876439fe6fe114a348046a4148d87b23ba7e7c50187a6211912b56f", + "public_key": + "683e1b8454cbb2f9a33ee5f70ab56af98fccf8b74fe7322cc09402cb066cc152", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "1cb3d1be3e1203c7ef58e71c712d5f562e7823f74275656bcf672b4521f8fc0d2e706e793bd5cb2384ca59ea4d34a7d5b833f47eefab566bd52de1755994f9e6", + "public_key": + "28d34cd5ea1ac5544eeb4c8e27f6beafcb8e5443575003f9bbfce8a559c84f46", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "39051f10e1a3479354bc9d5c03672326958f402936a91d96c539e02d77f58608ec7e8bbc94e5943fa92d88cce8c3136105f1b1dcfbbe7d7605ad0ca126a15736", + "public_key": + "a00e89b5567fa3f15587407d562d0147b8af8c3d95dc9fe118f0838420652906", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "94a77646ebc740fce802a1afc46f415f4fe60c322ad09d49a9ee1ec26659ac091f0056c46563888f02dd8abc3eb3a13e56d3aef378e43d32942486e0462461f3", + "public_key": + "d6a1fac0c7f4eea003ef00be49a685ad644780d45b84da47e9f8e65cece4e034", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "54429913c8eb07d71611ac837a640cb49796b80c8a30a085546ad7e9e7e70a0c633be9c41345b040e0bf566a45d219935bd619ecb7953b88255d23a185d4db4a", + "public_key": + "32bce16c5c3d2dcb88e130a7712f64192c010ed615582b99097845542c20725b", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "621db3c466caa5f9a8ac042e649a120dc6845c0f46d2f7e795479c3d2adf3509ce6602263430fc1eadaa0a776f66ec4fe08557dd2830c80d1f9e1f36b1eb6d93", + "public_key": + "1a3ebe68a9a00fccbc7353e919037d9850e732384d2c1414a873981a02ee554e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f9f432de947af34af95493f254910d69808180c57ce5fafba3fb893d7f3df90f", + "private_key": + "f7ae6f149c434dfe48248002d10a79ffaefa386f9794d1d1e14d2fd216704508fd7ff70a475e2180af5f36b9daa36d9069c942d43c170445d213728b58680c4c", + "public_key": + "ca1a56b74c080d011969aa6bd3109c9c13ff73974b0fbf34e2777f0dce308d03", + "child": [ + { + "private_key": + "a28575a48b0f5c06a4ed17a06e89e97e2a455952049acec97d37a92ab20cc50ee621a272214acbc649b5a829a8b1bdb1882bcc3f5b585b53ef3722ee9a185fd7", + "public_key": + "ee53463099b97b58b0f95c050509d856dedcde27599c7a63baee2e819b435d71", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "01e8d7dbd0e00cb2fe7cd41e54615dd85213e879ddc4043deec206cd9971810221c934d4308bb6bc5351fb25e15596206bba42bfa68dc8d7247a2376ef565305", + "public_key": + "820790b9c9389312089819953bfb23928d01b74f58a603b12125113baa89d23d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a297891e7c3a9e94f18422985f335c7bca8c9a0ca75f045e6882ebab58cbc00eca755bfbd4b7bb52b42df2f3d19b7e5aef22053bf2080f4df98333f85b0dd140", + "public_key": + "0ee91ffb983bf60406de3f25f8f3742b660d33ea33293851b579ed28d6741c15", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8596ec146aadb8a9976a93c96f69a1837a484c2a082c5709ab337d45041a5c0d6570aba6a752818335f23f4d1ced74b494a06eb26908d1951a9a315b9ba6a95a", + "public_key": + "00fc4ae47a36f9086951e5cadd3747ed6bc3281b820c6db92edcecd255c9e417", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d272a08c768597ed43deb11755116e9075d8450bbea0c9b070530cf574fac804d11a795ab4a3fcae2beb40f21f078b07e0ed5c1828988a4c0ffaed5d8723f557", + "public_key": + "f29a266ef278a5b8bb535032ee2479b86f2a466caf02c29d52c207385cdbfc30", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "9c873c1678c059998db253e3ae553df2ab6a2a4566a9b4531f104a9be31ba50f08c998d8ad9d1cd8e6def5c5203c2466024fb139ef70c971e0cdb18102ebde88", + "public_key": + "0edd9d6fc3ee290ae73972afa5af55ee837cd27cc1a592fc53164154e2f12352", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3b28a6e22fc1ced91eb4735df744d8b936ca528ec35b7ef0544969af6444980209abbb95e7a4176b4db4ffe930233765414d4a6d0bd636f91bd887f851f76c67", + "public_key": + "ee1f4151354a35f12d9ff67693f3a5689f34710fc13fe7e21b923834c38c4b1f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "518714494c6ff2227c52e4eb9a81ff60477fc77aa6371dc9f5ee07aeb820fb3f", + "private_key": + "b95f3e7dd9d16ec8a2ee97b2fbc382fd5b6836bd4d0c78c0c92aab165d63230cd144e5657abd361f3686d8b30897d1bf572f7ca4549acd275dadf651db0f1a77", + "public_key": + "a66ab7c51e49a7836fb6b3cb303e8f8275e4e2971e5b151c51e75c7e20763347", + "child": [ + { + "private_key": + "238b4427b327d2350fe0e5619533d0f1d3f14876bcb28fb63be73460f6343d0870d43eb19c780f879dc6b15ca87df509787eb2def85ced6ddb836a3e09d4e816", + "public_key": + "ec96e72453928f7f37291e2514dd33ee5169d726980b3b9950265b45bda3ba48", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "bd401c279b26d2d68fbe5a3e982ab408bcb30e6127826f504a5b2944344e1e00835035d4409cd4cf18553288d5eb76d0843bec76046333d63136ec7299091814", + "public_key": + "a4a78ea903fc0f35313168c4ee6a115dc35ae5b578026e38a8eb778d48688242", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "03e55c5d6a8d2e82a71f249dfd3c0c2f8bb4f014cc1a8d7c50ecd9eef0f8430ce4752365491b3499e9aca55ed47981af5931f841b6517407283563ccb9f697f3", + "public_key": + "c8c222724e3d8391108957738cf9d6b4a22f8f3465a59634a6693602c358fe48", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3606a92ba9b739453873303b9c50b8b4d1101ba230e1714f8e861c325b755d0c0ae1ee97525f143114ef78569f1c697b947299a3b55c01c4b2cdf8ef3dbc6558", + "public_key": + "60d2fc8fcffb70e357136ae242d5f7afbfd063c80867918a216f69a3a930f36d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "af1aa3d34aeccb48a9dd2276ca46a06a6ec742d9eb579e3443078a7ab0f4c90a2707ee12b7fc4ac1d57fefbf7d37499871af54be4039b802ce3acc2b22aa98bd", + "public_key": + "f40412179fd4520277f147635fde6d5ff6e51230cf2adabaf3135a8987965b17", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e15f4c23e45763436b99dddf12912b20675b5ffdf560c8747ce381fd9d304d0e802a6ce5934d83801d9e70724c04a5fed538bb72d771c5d6d8da34660f0d5de4", + "public_key": + "34948a0713875d740486813f00ad8f5fbe77262aa3a7f8df40b3439673603f35", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7a0cf191bfd578a7faca5e2c0ca64fd35413476193a31b0345d9e0527bd12e03525222a0356f6dfd5092093998b55ea7b1c806b4ecafce7042eb150726f43511", + "public_key": + "fc324899b75e332695a8e70c7154a8e0efa6c3465b431e871652aeb25448827e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e48fa7e8aa4315f354298b9dda43d8ad891e537ba3f10b779aa13fa05fdbb9ee", + "private_key": + "79123023b45eba6a4a89b9eb1b3d4df99432b70359217cef64cc5d9602162e08317a61440d99028d89643b7a3cbeb8593f8595313c7e5fbf1935b7a623932e43", + "public_key": + "e4e9bfc6b8844344235179f57992f28ba20876af282853e60022d7c6f5bada65", + "child": [ + { + "private_key": + "bf9b9ff2fc20b28dea242a3bfeab9fbc3e1596e4169c8e93670dd197ca5f210eb748177b879366ac60af43274b6d48c20b88713feda4a620b8f95ea5a84018a7", + "public_key": + "082357dcef6893b0309655c8bde4f55170f885ad1f6e2b2b52938eacdc27022f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "833eca8d29d98d20d3adbb6a0b87d7f996c219d4bcb7c5a026dab30e1b5670021a72fcc76c1f1356bc1d8cc687bbfa69c1e482be7cf93aa12896ff763cb2725c", + "public_key": + "62d7d015c67c9aa82d59ccfd65a558607215f1e8eaa978dd6d2da260f2a79103", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "c01f47d66660dc88b5089fee3e039ef876d1533d36d29a8f8bafe784ca63bd09094a0882e263c5584440c8ebf13fcbdcddb034c2a7ab69ba192194cd74c18bac", + "public_key": + "421b8bbbebb4ccae5d2a661764a4c12007e0a78318c5c18e8b4a0c87af4b2631", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "98ddbf84a2e05dbc6fae677a616777b90cf2bb0344fc58d643ecd41bd8f3b908efe08ef78ea49c046c1a2af3bdef810d5e804cf4688e6d2c93a590e3c9560b28", + "public_key": + "607c3cc5dcb2292b840c863237c2b02a806138f5b6bfadf209c8242a50cd5566", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d62f5e1070daa45ae464db0abdfaa993760db8caf9ef29c403163831d768650bc3083d58acb3c19d339500bcad014c5cb35cd95024b5ce12668454939103f82d", + "public_key": + "28949be236f7b3ae18d7645c9cd7a6b2aabe13d89c765f8056ab73311883ea1d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ea543deb20aa3a0b27292d7689ad4afa9cd26933568de1158aca4681eb8793094191749468cb7c7a76e9545730c4f5ac90f4fa5690e3b12b6982bdbb6c29fb9c", + "public_key": + "7829d855c0b5f3fd8d98dfa8c68f9cdfd0902307714b7ef2730718513a977a1b", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6d0425cf91697728204341cfa77d287e24b176471756ca165b288ed8a127620a4509a234967c20ae03941c8233d83dd3dd6761ff8e0e7866991f6f91cd306b53", + "public_key": + "b868102fd7f4c53d5e4b971e6565208a68ce4c1c759387fb474f05adcc249901", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e57e69a3e62739546190af3cc30d3ac3f771d582211fec7620048cbd0913d8bd", + "private_key": + "1c89789761667d3b29ea5d7273fe62b28fe8a92e02ecdddde7cc69e63494100f4776185630c79164a6031f9e277611251cea056b3b071b11cb35410e6ed972d0", + "public_key": + "4eb7e906267589d4ec50c0322ea33c8ef49313218420c0ce14b31fc2c8f6cb6f", + "child": [ + { + "private_key": + "a1ad9ce0ef30d5602d54afce0ec235ce9afa645f9985272646f83086d6fb48084465dfb67d4a920f83578f807b3c79ee2d0719c3d7c9e3ad4e2ac044a6d1f7e5", + "public_key": + "66727896e9ae3a42c25e284efbc36dd15df7f685cbf6ad5dbd0a1defe8c1507f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5b41647215c6fe96e87a48b48df497b0045706e044b25e0437c3e5bf340d750ba25d6b394e7c38acde64b67083b8cce5b80c3264390bbfa59b696440095e4c52", + "public_key": + "f0856b3c7eacd1fdc704fcecd1fdd53f9904a3b2391241764936598f50630102", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b2850fa2ce084bf06776010d860f58c323cd0853f5ddd2503ee3b148da022609b7493c1a994ee1ae398ac8cbaeed6e0574d8d4c557fd84eba52ed7e6154437ef", + "public_key": + "3a70791e25ba38b0b1f2f1fbf619ef9f2cc54a2d08f1ff71bee14c4756f55625", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "58ec19af21340872a92c3ab09071ee8bcc0241ca8051b678cced4ca6edfd760fa5e50221896eab931f4dc206b59794864a6101be72de1daf94dcacf5703bd552", + "public_key": + "9eb30dca1cbee077c922a675258cd0703bc41b2b8e1f7bd31138cc3b54e5fa48", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d6ecef8f60f7d66ffed8e5bd270af3bd4436cdf774f169706158d4266df9e70091a497410ca5ae33b595ac2582970d4e1b99870b37d1ffbaf7bda02245541fd7", + "public_key": + "d09600a9bb4b7fbecac3768c807527ce420fa55d39782dcd778c6cab6cfd6516", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "c786c5491f663e3ee2978445a058b017d38d1415820c5bb48ed4cd9aff7eed0933f414a053bd0cb137a84977e26e7a82dbdae0c56edc8cea71e40b3aa573f2a0", + "public_key": + "a05bd589a36a6ecb363e00687404b36515230281b64ed70297acb0880d555709", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "834715d7141586121666085d97d49dcf186c72f2e8e7e686efea1cfc6a41400d65df8c619d6a3b1386fab7a9f744e1761aa0cd4e93b523cabdf42809df350e34", + "public_key": + "42dda81862ddbc81a7eea516abe1a71f3836ed8a1ee7250dd1a128737fe86e07", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d0d71f4da999e3c497cff3539832c717aac27385a1cff824f07a7c59e5e08e91", + "private_key": + "3016f02ee02e5a1deed2ee8d2fa444c03454f1da9c1ae53f693b5f1dd1dd6c0df661b1ed59a9f107e21b9ecfbb5c84c07ac02759fae88f1739281cf7f2338587", + "public_key": + "16a1ba930e7dd53f4616fd285d30aabd7788bb2eb28c5a176a0145081c630419", + "child": [ + { + "private_key": + "efb9d9a180adc16f7dbac0c617b9ad2b06e663feebf07a9bc9a9e1a5c393e209cd45bba14f0723d6524f3762fd9a44b6bb8954324922d565414a0e845babbf67", + "public_key": + "a0184e6f0a4e9b85aa1768ba973014a2943f20fa0a2a732f8155f345e1061524", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "06e92db327f1240533224a340d46d44e0d37d744657ccb1360553c43891cca06443a71f4d053c89ba55f62b700c80d563216c2bd9dd174d52b119c22a92cfaab", + "public_key": + "bad0c2b9aad1a432f893fec8084f67c1676299d1bd5025c52f95fc8cb69e0435", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8b3ccbd327f89111f4c59f39621beb2e6cbe8a66c63a66a683d68bbbe044d90e36d3e669f7966ea0055316f714c3b519324a0fbca183929fc9121efaead797f2", + "public_key": + "561f1033915cd9ef82bfaf405179e7cf4e5cedad78956a955941e092cb49ac6f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "02e5ee506d5a55db218e972a7e4c712b99b9605551cffd9c7bab19459203780bfb3bb6a15b0df8a936dd72d0b9e1fe0246a5356bb972a9cc5e0ff7a1558e03e9", + "public_key": + "8465b8046c12a612d98df5d80b3b7ecaf628d47f38f11f59964b0522eb67284c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ff12cc1c8efbd02f0f9c7ab070ce7edc45948218d0f1eb4be4f33b07992d3709094510c976c83b41291d871878ba122eca42857f85f99532bbdb4931e988d4c2", + "public_key": + "30c78dcbf89ef7a73e986179d6df25ae16a5436f96ced8a11dd693e85d13f25d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "687fb03621bc40444e3eb92687ec01a9a1ea04d3853ebd70068d96a97c96210d9cf9056e193a0fec091b60b3dbed0593b4a8a5e074cbe1ef860b8eb14dd0b56c", + "public_key": + "2a48ca7ddb7bd3c4f1f849589a52317d784c8456b21f62644f1a726bd207f14a", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "593eeed2d6ed9fe9ed57c69fc305011721554821d4a9dfbb1c2afd9dd3fd900c96c4fca8ca9f7b05612e768654c68c29e4fdd340f7558620308c39371afb990d", + "public_key": + "b443aa17c4f8d0f2e6702646cb136672c1be340c78087e45f58044211e2f6605", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d8d7f486a0222f812292667aa5c01b500a6a1d70d5721219cf585b3d7cb5a3f3", + "private_key": + "11e7f2af9174cc344e6691959023c6f800cc469149df84817d448eaf5a38ce0fdaeb8a14cc7e67193838e83a7786b8c2d159e25134fa31f2a118420a686411fc", + "public_key": + "4405bfba9cf5f2a29fd651a53cb33c8fb174cef83e73428ba4a0d4f9a4fd1e0c", + "child": [ + { + "private_key": + "00ed1e496a3c6261925a6aeebf4e40886114babd712e8453ab90c3fca58ff90edb07cb0ed9c644d7c717c30b17839ec7bc60f31fb17769578dd359f3564cdd4f", + "public_key": + "70bf76a6676d3d3d0004b1db0fc30c46eb93071fdcbf026b7f677d6136f83c35", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c32be8c2a2d65ca3e4594f86208e8f17b3d471b65f7137bb8e4c4a6a61c0b50f82bf73aadc7d973aeed7ec2ff616d91dce823ef9b5d7ad28387646aa2fbf7a0d", + "public_key": + "9803a1aa2606c5ff29dc54c89b5adcf10f9d3ba0ee455e458107fb7754cf652f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "285b2ffeaecfe73a226e83c87addbe846d36692a3fbc1bca462eb5d23512140e23f6ff516951ad611ec0b3a3fcb7669a2f23fe0b32e4ab922ef10ac871aa783b", + "public_key": + "ecd8f06013ede0e60e5f995e24f98aaac79c1a077be943b65f8afb05014ca958", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7c33577c81b55e258ae0153bb975d98c866965a6cae07e64391dd7078b1b360b45c6b27e0b086d0829e9206e11c68f28b14b80e3ac9d22c163933be7a5192d6d", + "public_key": + "76088e5a2c6c1919e160937fec7691d6c6547617f127bba051da29fa313e6312", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c537e79cccd23dda4f20eb6dc469832c87a5b2084339726b79ebe37b63070f01eb2324cf92cb603a54f3a250d46493866a2d6f058ea952359bdecb79faed7f68", + "public_key": + "faa70f94786fec7fe122418db4d9e271b7b7270ade35cb0c1c567cad7e91a41a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "4834d6c86c75f701eaba9d249ef057e2cc364f9b76ae8a546f476529cffa800e7c02d3cbc0a103d3328a6ee7bb3615491a0b882698330345121b880d3cbacede", + "public_key": + "90476ab0043e08d8caaa2818e6c5e0214fb63f715a978ec9e5c3b6b0ca82f242", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "284ea2b40ef08f1d96f31788d1ccf83759475066a6ffb55a10d0a33a342fce09a891e1ae0b17542fe54013202149545c5c726ac2ead6484796780c6153ddc69f", + "public_key": + "1867c4d6c633c31220067d58aa8af6576b65175c65bd108bd68ae57bc1fac112", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "15514b43b094da8191c614f78f46cd3fa56349b27b6ca96f8b1596603a6115f2", + "private_key": + "9101d80b24a6a1b554a619653864ef12d5bda9aad2daa02d67445a160a9bea08b90409ef67ce6211ee9c3e05da58a948499f47b858814bb928f182e4a472951a", + "public_key": + "769be48e25fc7e1eaf1af9a40e2b39430a870650c29c284c0ef83193d22db027", + "child": [ + { + "private_key": + "0f7f371c5ad7e74fad4960aea0d6b963af36f204491dd3af003d38bfdd820d08e72b3e58d7442344b8bc9d9599aaad789b75435f53364374307b8ae1df7241a9", + "public_key": + "ec79426cedcbcdacbc1d8a308e869a9f3b85462f5b2ce6ce22e61c12bd9a4a56", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "76500609c59c7c66bae0fac18f603408427750cfcb1d872d626f1eee2484310adcaa79d5a8475cd81d92389fe48156e3040aa341d322e063a7316f88cc4cb25f", + "public_key": + "0e823ffe8a98246c4981d83ed6a764085f04230b986154c3cc71144818c8fe5d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "c4693b82990d04e8914bd0fcdd98b0f623690341b07c97ac2cf69b96c24acc0bb50e3328303740a2cca24fa9513ed791e59a25e1df882847c07aece5d8daea1f", + "public_key": + "548642311138a167581d5a232d4f001f203649df0608e9b2a57629cab2cd8832", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9dab1f7b2a51eba34e09128613521bef4fa4bed0c1deeca63d078b359b276d0dae246a6c6ecdeef079c387ead62f25fe8179fa2d93fc159b07596f943efff39d", + "public_key": + "60b88d02eba36fa82b3efc4d573f78578ff311ac6a4dbbf179b1f71069bf631c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "691a4f29069a9c9741d07bdfe07ca54bf4f3becc94dbeeef2a41ecc662e9620a89440f95f69aaf0227a601bac5cba0b9f203e2e40b935abd2779004d3a5a3971", + "public_key": + "28968a75fc68830726b39f950abe9f264fdb8c384e89d0bad12287e5cbda965e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "55bb3ff3a700de86d12cb5154a5db0eeccb7d6932befae3c943bc8c81017fa0c6f20b01f39bc2810af8c4ab6b98030ec43346cedb424aa6b8b7d51a7179200d9", + "public_key": + "daaea8ee114ea69016557c494989ea977768d5b0e2283059dfe98be102a47c3d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "71da3e0cbe01e7877a8bc1f54c94f0357b2d0e9ae5dde7b4e5c04d9b20cac10f47dfdc8cadb828a1e45930c3b3777a0d870f38ccae103e10e3b44927f5b7f4c3", + "public_key": + "c092e45629de6b4a17f24628f827e1e146f14e6af531c0dc8941a2f679d5dc33", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "4ac5380b2b15d1dc8c45247d4d7481644b739132edc63e944d424924736eb0da", + "private_key": + "4da8a4f4f760d24daeab098e4dd0c77b1ca6de45ecc989d2d494b84bfa216e09f52a40a493781fb945055ab591b1b18059315c9002960961a39822d97a5b356f", + "public_key": + "22d19e23635522bf03ce6543563ccbeb8969d27bb7f0745dfd0c8e3c0418505a", + "child": [ + { + "private_key": + "d3503781b1def78a5e2ca2aa71f2f584339d4ac7cfa44f5fe749f6ae9bf0a70cbf5d5f61a88e3ead30c08c7d7e6eb330442ccab47a8a813d1a3cb08afb31b658", + "public_key": + "5e68367c49bee10dc9e61f5be45cec985642b125cfa6de848ce980af4b4f110f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "29cd9e6990903301e6b3d6e8e579976433ddb5ca1784b78e85d05a26d08a6f0d8c8afa904fe9e226c87b447901631384d8ed33f746eaada26a0d0a4851c73408", + "public_key": + "00a50adf568fb6ed7c90874ab4fd0c4cfe5b3362a9d4d2c028d3457183d77d4d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "02086da86a3179d96f466c13b11787c3e72061038138afcfebbf0fbc93061b0a4ce57a55fa011c40a4b238316e5fecf764b8b0fdbb8fa43cf6ee2f04ca22e11d", + "public_key": + "8442bfa21f917b6e4d6568796c433e95a5ea394fd86b8881ddf2d36377753f3d", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4958e4d4dc641233e78de36d270dd82eae65519a2d43a19087289707aeb0aa0910915e576cce1d5bc7f68d99e124bbf071886e68a58a91d168d500c2e994b766", + "public_key": + "70fd01b4a41a00bb43b574182a51049f28ccdad71367469ea53fd49c55cafa25", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ad2f5742e04fef0e82deb72a6aedbfb8eb79aab09cfe1dd0366aa095f6ec7f0ec93b900ffe4b7c977e9cfaf8f5710ef389f52b4768945054e36360fa09bea6ba", + "public_key": + "606be3af46f567b927274c1a7d6cb867b461869f6edee934e50072d79b57213a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "4bfd9a08659b56cf9de6740907ebb1f1b9721b7a2ddabc4c1a594686679368086e76e01618f526f432f0a4c421bdd2312e3894f963c8dd4d10e2f3a4e99ac7ac", + "public_key": + "440895bcc80acbae2754954dd69abe5458af9ad382f3df0155b8c13de50c043f", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d4d132dd4925385f93fed7515e0d55fca72cebf40bbc2b1b4625a6c5f90b1a022a6e9c0cad512ae137d6b2fd70f4e89f183017ca168e4bb523b1cbb0487e25e3", + "public_key": + "e245c3408a84b8ef824fb7954a842b024a0a1ae91ef5f94280f546a103860620", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "097716ba2cb09129f0dcf27f96aba43671f6a050b357f8a15c19c07d999b8a80", + "private_key": + "28807c5797c1f5e923edc93ed894871de43d6837bc3dc1a898918a5e5022850f1c30c533d8b855e675709d6abb6f56bc756f8854c08274988d9277bd5697b2d8", + "public_key": + "78b322d028fbed3a76635a83c717642cf07fbba9e5b91d6812ba32ce53f5760d", + "child": [ + { + "private_key": + "6b30e42b8b6cbed86a0e9369fe6e7d54c5bfe93a2f5c1aabe3b3fe4bfe35f208450dfff48a055dd013c32485f1795d95181dd6c41dcf67e2420fe2a9539565f1", + "public_key": + "e681f549b05c0c020f2212795eefc5d997d08ce19f92983a45be182d2f08ce79", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4d4bf2734cbcf3363b89bb139a60ecb5cfecc692e989c2d45a6f7676716f8d03d703d0d05185ed1ec5b29d17e0d510a4affe6b093589c2a5d22028e85f1a1f45", + "public_key": + "4e9358ae28dfdf992fc4731da6677c36b6e8fbe4e85bd1a11adc69f90729f246", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "383bd80ffeda5c10736bbf4470b24f5a5b030f45eaaf901904fe53a5faea1d0ab02479d93b0be82f482285279e93ba19141c5d8fc56c8011cc04b1961956d7e5", + "public_key": + "7c924d3e39579955fcda48dbf71684a382d97e275f5d8d17484d2de4cd5fdf4f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2dc113ebdb27facf621eaa7b742ac373cfe929ff92bc96bda43472c93517680c906df8bb1e0fa439fe9bc25ed08f6422c16592879d0acf7e8708277fd8dff8b3", + "public_key": + "b26f04cfffde286d6fca75b75bbd4d7045c551466408eeff2e01173d315d7744", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5c05d936f0088c7d3ea5f7df3d197f0b710f9f34e8d02bc95feb719831028501ae42fdec9866bfba864e201abcbaed657be979927d886ca47323f9df9e8f9d84", + "public_key": + "5ce2c37f4ddbf6713475f1bf437f7f0180de6a449db4c7b75604a89287379b79", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f38a746dc455b37f0836add02476839ba12c5e802ee07eb59ac870adeee78b0dd8b648823322d9ec0590d8375e39e93c0e8e67f8c513a900bfb48bdcf2d7de64", + "public_key": + "40b8b05106f9b4375c1c079fabf8978eb17876c7851d85f8d7ac19cd40967b47", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "db79bd26c740cd9ecfaebe41fb8e48f5c55eb43ba3364eab47de5466c0c3e10e9f85c3905b4d34eb74de2dcd392ee495849a4be8799cdcd2c0574fd6b56060c7", + "public_key": + "724cdfcc4764b4b945f2f0dd0a933f5ebc6746a735fc7f8beed40d2dd375f66e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1982d0abeecb390fda536834d0c4784bb0fe71561abb4fb7ab7ed86b4d14cc90", + "private_key": + "c58021a6ff5700a5c79f5ee3210998c4357ab64074a59c4f7c39b07fcb429b09981ac30970df7bead2b46e11846b7f48caab8b05f6bf2af194caf5cbeece3941", + "public_key": + "72f6e5e7baac885a6eb2b3271faa1ac16f8277189978ee9ab95264509e1ba65c", + "child": [ + { + "private_key": + "a16bc85568a01717be957b4135e3371096db56c2f7a954d5cb48bc64103af60bc6c333a89e5bbfd85801e66c99d8d4376819d76c736bf685ca3f29d4be16f3f4", + "public_key": + "9291ab64eb07801936579cd530c100e0ff4a1d63cf376601f22526ebe3a50677", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4168672724199654ef2c58f900a3cf46ffd2852b6393ef7d03c720694ee579008122aa8eb0e7821c079cca9f94328ca1642a106195fd56a61209c0defb9159d4", + "public_key": + "60e50e719681725f48da986a3206fd8b99fd86d4f9f220a909a4e3821590ca76", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "138953662765fd04008dc8a0db65a115f772f4d0613b539b9c1ce35a06d8a40bba3f53143386d76aefe1022613c345eeb73a32ac3ef4935eb02fc3afb40ba2db", + "public_key": + "cafd39406b2b2bc79a6096c0088667fabefa78a42a69fe7215792cf5e5b0660c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ad67e8b624d5a4ca535d1a6ce093375b74dbd06882b8dab4dbdd59a1d09e9f0dae85631fd89d4032c01d5aaa0ddd36c08da354a5f00fe0bb22032ee0ad8b51e0", + "public_key": + "62ae7e2a451c7ad5075248f14fb3f00f74670bbd995b45d61d7bbc9533bfb715", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ebcf29472a9ab9d86f370a955588c7275f0d3c54d51b6927af3dcf845435f00c5ede3987008553e666bcd0fc4078961693846ed80d8777a28bf2fabd21436516", + "public_key": + "58a724172629a3d2827a852da7a2d3128c9e2b2f7931d2270cf557ca92b0fd02", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0ddac5516a97e4bc2e291326fc637a82ad04e6a3ab91c5b6b74ab7824d175c0958eae0d249e6fe5e440ef6117f3fc45928af9823d09db27cbcc838cf20a331ea", + "public_key": + "7a29094eefc1094d77b89f1e2ed30f4f20ca0507467a9d7f7f2979a986f4c351", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7d3f4e20654545a413b192d69d454bbd8667ef8883c21ff5ba54da9de301eb042eb2a73fc7a011f14b562960d965c4944413d7d373f4a72858833e4efe7364ca", + "public_key": + "440add5bd8484852d03156b53ced00b33749b69dc4fb0dc446d42dec718e1d4d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "35d533035be2d69633578699fba0a79bb9781d4f77e84c39cac22c7046a31526", + "private_key": + "3cd078bb5abef8d06a795990d8db673f1f6610509651ac2e4b84e2b2efaf460ccb729f4523254e3ba4222dd74fc64db5037c5e5952c7ee2c717bc502756e791b", + "public_key": + "f0b4f5a13dc264e40c41c6f8b0fea7ceb4226a5b23d1cd49ab5f531887fcc976", + "child": [ + { + "private_key": + "e8e24507e32a14db246294b15bd3c24ab8b64512f84f1120d7625a8ca175ef09506a650512df65682676ff6989d1302c6d05f4c32d26ba7d83ad170421e3d2ca", + "public_key": + "a01cf018cf3edd0941a320408561f0beaa44452fa9f63f13190dddfdef6b0308", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b458fdf2c86e8a763c8bb59f54949a5d59ffa655ee476f4003dee5ff0621e604bffe78da36b301b7ab24f07c81bdaf6eb2564d8b75fad1bb656c90f337e4d94e", + "public_key": + "e003f377e0e4e680164ad7d712b24513774a0c7c252fe8d8388ef7902ea2c32b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f1b6d667b0e559a9295a9478c8a0b99a66b39832f2379b2a0fe92d969cc6370ca3ce07e3f1434922c9b1e543997249936c5f0bf57e5722d68044c090f13f1d99", + "public_key": + "1a0574c1f1e0414a65b8049b045935769f429a4926622fbc862ac933ee1e7042", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6e56abc998fc8d39e5b41002df2dc551e6b5aab83cab879ca17be7378faadd0a72dee5780071f15811b4701f28870405248d822f4259d645273163b64ef27f6d", + "public_key": + "9e22d9d29a7f0d4bb0dee958a548392835bf971b89d22bbc5b0b5a7352cf3159", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a1d0b6e04d0348017caad29b82cf2974f5ff4203ae0a57f6b7a5e6b0f48ceb0d2f5f9829c0574a599f2139262c54a280ce3c18568feb00799d37e9d2c4ccb624", + "public_key": + "b60fcc66d132793ac67e43e37f26e0f3e19a270d976b79ecb62f88e80e501c20", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "5917311c853f2edb660731ca8becc208b4a72e44864b289204834bdb5f40ea09c81499a3b72844a85ed4f3b95f5b1541448d970dfb212b370730d03e130de61f", + "public_key": + "aa6ac371e623b63bb48a6d9d735947afae00e36d36ffa25dd5ed002e14f5c73d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1d6518a02578799539bd35a4f837723fc598d78494a020824b34583547d6c4098a04430516db4263e80b486bc54f33339e5a2bbed552b908e8c1d4d67eca3230", + "public_key": + "9cf87ecf851a414f93bb28e4903cd9d234c3bf906144d49ee8f1bbb4268e1f38", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "91bd1d87c4c4ac182a0f42021f9c11bb94fec1b7b2e2a569b644d2047df2c770", + "private_key": + "bbda6509097aba441730456d215cc8b5034266fc000a397cbb8d368472d0f20d79c34411b7b3dafc66b0123c3fa751700bedcee90c2b194246eab5e506c9caab", + "public_key": + "98950b3bee58ed81b5fb230b3c7bb928c3afbeb68c5a3dc3feab7e3a07400d51", + "child": [ + { + "private_key": + "2e724ada9238a0f4971a7ef29a337065801746925af848353ab3b5f68b6fb90c117f3e8c966294e7544afa0616a32e8b83a9c993f83b9ae5b203c3fb75c5fd45", + "public_key": + "5a3401809395d352959f3ae0e982716702a627aff5e90135924566817111271a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "21bc2579f0bac29047bacc7737fbaebdf0fb7ff719cc65df6403fbbd32a952039a9ebd06e61649cb046847187d718d31df324a19caea92e9b1ddc560bcf9b0d3", + "public_key": + "8ea5fed6bdb5cf803d0e8ac92bba9ba66ce7d3a873fcc3e239fec1925b39f41c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "c022169144bc9779e3afc81c5968c8198cd37cae400595866efcd48befe1e408eadb4f5da5d8e6aa1717542771463b3d0b62b1b25e8551f3a69339cc1dcf6a3f", + "public_key": + "2006be5192abc98ae5d83e220c212fd822e640109bf703c6aca017d9000eeb1e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "bc49ca371025c12b011a1519f4a67aba2d0b6d8396ad6aa67a6b5aa8b4b2080b60f9124bdb872e86ae6285677f6c8a1a1bddb3552709b8e39baab5ced37cc0bc", + "public_key": + "100092f5616fcf81ba1b7d95e42e64fa602d5a7453cbb92140c1424118894350", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7f08fb5dc8e973a88b4fb64aa5f9a47ca482b7610eca4fadedb898704f2d7e0a353a629cc2538b824e9fa9f6852dfcd1467dfb85970d1c288851acc0bf3ec888", + "public_key": + "6ecf111edd6d53145e86afc23916e838ae9709595f75cac39f243bb4233d626a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "d674d06fda8a27b0b3b3383e6ac861d28493a2a196f54c389f6048efeb05fb0df081d687224144d16041b6cc0680d365afdcc9f5af58e2c844cc40306cc8aa1e", + "public_key": + "5256a3f7b09d8162cf03e356e00403b520a5257c2b6cfbf7f0bca7ddb2152447", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "21b1a47d5a4f6375c0202c404602105300433b2e61d1009072c5ff1512065906bacab35dc7ba1cf37cbac0800677eab5f0892740f531b36f8fc3866619ce17df", + "public_key": + "4eed7e757f185d9095135198883b6dc883bfcc2508ce50e600ffe9f92928be76", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "7537380aac4330f38d16c48cdd3f404b172d6d94c26736ebb794343be81d676b", + "private_key": + "784ee0ab7705a7c65f0900ce70fe29fc53830bdf5e03ff0cc863b82883eaaa0e57cbe987137c45a433336af23f5ba7083a8f83e3c59ec499b1df542cc4ccef4e", + "public_key": + "6e98fb0c71cfb84a16439873b62b4afc968aa8484bb935383aa32d0aeb05ef76", + "child": [ + { + "private_key": + "6cbec834bd9b65849c7e2c203b91ded75814961f698b0ecfcd0f7054df08860d5121d6222327fe56238a999cd9cd06251af9206ed82d51d5bf20d2630c82e47f", + "public_key": + "066c82dd804f52b2cfa8f41ba9b50740b6eb9c48e4dde1b45f74578f16f6551d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ee308ccfd11cc1af0eacd6505cc3fe966398a93cbbecf65ba0bdd826c1a9460bec288c4b1b2c64f87621f54a6b860e475bfeff5714a73931cdd3c87f590dcd35", + "public_key": + "2e186a31a3479741cf70c03bd9cd13966216af5bfb1adc099e70a6e29d86183a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f3256d64372b9ebcea456cd770e04e17b97698828bc6cf5e4ebaa033720cb609bdca8c8f766629be39b1522a16188939837447ef606739e90c940b0caf2a90e8", + "public_key": + "70726f2bec1f5469ce7e612c9d8c48e8633069c8e14abb937a261efda539aa36", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "cda50fe9301ee94948ca3788efa8317c1d21ff05795801aa23962ae42ec7290d875332974e2973c450bc8c030bf7944ef33d504628305600c7c20663a9f454b5", + "public_key": + "fa21fc73d858005fa2ae4e1192d5f1c813a3884d522131415672686708717b74", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d7dd5a875e8abfc302a900b78a8cc226120e662e9ce7a2c1c137af7a1b7db303f3efbe70ea08d9b62f2cd34f96359d8f431da7557e22e4c9df9c4f092a815918", + "public_key": + "24c95dd533195ef6cd185713834e17ae2bf7ee21e3607a1e3ad18e7752a9561b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "26cd1cdda756cd0500e6b355f37e88317b3c8927e0d6899c62fea6debf24ab0f878be5b795d3aa0e44335e5fe111e88dfa0dd6ea0a3a119899c0c9fec0039037", + "public_key": + "6ee9fc439191cf94e78d7f61f17e89c6d8c8c5e8efb6521dc7b37384236a332e", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7c18fa884f4a75e302a50434f4e553cf41cacbe62c05f1e5428222fd22ba7f04195da3d13f64458f4708b088ec6f5757d041ec3d12d7ae1b0cc234eb22b94182", + "public_key": + "0ab09cad5506d7690d3dfd881468a41dd0d124042315d23c39a34326121cfe5b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "9417ff1ae864f0845bbcbe946d32b63817e0d57e029577617a95ec83e4be5001", + "private_key": + "5349083f7ad4b86cf13c80ab67512f8a197de5856f1127f5f7f1a0b9ab6006083c0f97a1fe6f93320d6c796e2f2ccd95807dff7678fb0a28e38fe5c7df74d084", + "public_key": + "ea7eabe6e34fcb261ef2427517f86ed5cd720eca505b7ce14e761f58b03e3327", + "child": [ + { + "private_key": + "951e6484d23b4298f2631587a31905453bf50dd7c6d5567299fb34c3f207b00aa12790d9d02934d5a67be05613e19669be51ecc927af33a84e1bb050eae1ec02", + "public_key": + "540f38111f89180bb12fa44fb4dfa4c7d89cd916d20ed61eebbe35c06dcc3a12", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d06169e389ee22e5dfb3f2c7d2e11233c72bb5fbe16ee0f2dd53d1ce7f3d4b060f81784da45c7b528ecc48c122352b56b2c30c8715abf23c1529bf9621286019", + "public_key": + "fa9255da71679c2ba10c404e284bc7c3c8bdff899c0d8e0231e0a5c7192bde01", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8eec4ae70672a1781ed72b60477675a41a08455e2f160ad03d31be4d5127860b81ec3603f1fdfa88042ff462e6889a6bd40fbfc4066e6d51e68487013f19e970", + "public_key": + "3cf0f3f896afc0b3d4093b5719a6d59c9825774da900e0f120ded7d7280cdd54", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "afa13942b00e8fa6a6bf5c625ae6cdd326d463ae4b4374ad5e2792e347749d08aec428c32e6bf0ead83e98fb037e7b3e5a263d19bc9a6556b556cf0c620c7c83", + "public_key": + "0a6af30893a5d5db3336d6b2d8baf641f23172f873aea75bb4244bd4f2d7236b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "94e6167960bf070bec47582c31e0507b1f49a0ef50ab4c664a42ecdae529d901a79f8f2f34439c6b2b06a071a504b9cf7c22107b491a605b79937eec9641bbb0", + "public_key": + "2cf97735c65e0c1b5a4b0af622c0aa8a7d658cdc1cb144b42ba804dfa48bdb44", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a1e20e519ac0fcbfabbd2921fafdef2ebf6f4bd13b0d25d99f5fb91836aa090f86f15c0f0c83b2d3ddc75d419fc1b88b2be93e2cb4525820bf3434015d547255", + "public_key": + "9e62d2deb4004e29df698c9addfa7afd3a0a8bcf92541e6ca43025ed465e627a", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b1fc9e8eff7c1405ee2af1aab16eda88189bcb2b81b0ea9e1ef0c0a0071bf70ee2a2a659c5bc0db29639f03e29b4753879809ab5e50f584db397fd7370752ade", + "public_key": + "dc088a83e35260e8412b7d75ebf34936133fcae2c28e59b5016a992ab76aa27f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c718980873262f8dd4be2fe009deaf44697b3696a5a36234e1c2975d56d6ad56", + "private_key": + "86a758ad0ead53deda73008a3506bfd501df8ef65c4490199641ce1498d6d80c89eb4cbeac4c9562cc06183cc3a75ab8605837f0cb1cafc3ad4ede7d9e3bbf83", + "public_key": + "5ca40c01f66e698cd3238dd3f494df875680b5873301bff71c518393c50fce1c", + "child": [ + { + "private_key": + "a194d738adf22ef1f3aefdd3ab907c08c920df8f6bcb89735855be95e472840fb468211be2e1351ac979bbc1c1c2016164c5c16d708d7d27f268da3009264a0f", + "public_key": + "c435da59acef8bba5e0b4e9ea5e385595a8c09672f0cdf156b6c8cd29e9dc422", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b45be7636ee10f569b08f208d070fee28ae2b13e31b2c7817593e6392d406d0b7853b7f4183f217dd48e92974509d9a5950ff0fd8ac11352806625b4c1a4bbb7", + "public_key": + "ea7839181f63b71b5cf2bed1323ae6da30146a93e3fbe4818a31232cde45eb61", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "27000e8ab6da61be3d8e24a8bffe04a0910d84023dc4284f406d8315d87ca90bda8b6265064c59e5f7844b11fa389fa9eb6e3d98d88bdf8287bace1c828c2702", + "public_key": + "2a1ebd21bd9a43fe7490892e19a9bf4af05e3ae63234a575df83d11d93405a7e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2063bcbbbfd701d1790e86d2c56ce3beae9772a33b9b63f0fac41fcc33c8f80c9ac06351b896175d78373de14d010e1b7843bd59f62969adfab2d949854eedd4", + "public_key": + "6c113b52a3d2e577f74e621182009b843b6c4ef8a9f48c28aa5bcf7d08100711", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0f5e739b28599d76f85af28862f03541507e762cb02bbbfb6ddade1ec97aac0b543331b59a55970c984952c2949e5af8ecdcd135ede6a98382f0258b20a4cd31", + "public_key": + "f8f45efe28622daa9d8a8cc839ebb427927009eac24f05cb2fcb05dedc9c715b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "92a8e8cd4e9ea81a7f97399ddc6caf622328696de73c0ecc2cad6a3af58fc40e52a0b3244a4a7e43baa8ba2a8e7fe290afbf0d81d51c3ab9f5ff050189deeaeb", + "public_key": + "465c66876b7623bad4e4f8f66e4c92dc129901ccb830b5d69eba172277b51823", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a3c77afd587d696e8e22730cfd4ea8da5a047e9bb9ae974c950c4f34d9b59502ed8f3423fb8b4e5c4ac871d08533b4cad43809a3eef8ec3114cddfef6c8a62d2", + "public_key": + "84f5a952ef916886fe1552238139c25257c51b364950a083a91246fca5151477", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1629bbedf7193cc7276d390d76eb2331c39976f4adea678fdd5f6d670fab43fc", + "private_key": + "b3b9c0f43cba3b995443ad793e1f7f4ce142003998c1b7b9174f140c19f8150cf0ab19eb1181158c9e7640a6e632834fb8e54545a739ec47dcd80b09d8b0efa8", + "public_key": + "7a8559a64cd6e9766d7e0b0248bd3e314e1137fc9a7f140f98bd7c827ffb064a", + "child": [ + { + "private_key": + "43c0d2a6f965dd599e20ee42cc12d1a757ab849fefee0497b74215485aa25d0ab705dad59b576cfbbf986f3ce62d196a70b886f520cf37cc5133a62eb93d4d4c", + "public_key": + "0424e4bee422d013637035442cf47187e777cad05999391eedb0a707e7c34e45", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0d7a0bb98eec2dec3c6576921be65a115599d3c4ab9924e9f54a2a465aa3530a78e11041754a487159f6f7bcfa3fc8b1c347ca5ebea2748503d8a0d4836ef54f", + "public_key": + "aeaa4e01c037e774364dd2da9d67be1df1d5df53cfa69fb9c9b54df8aa5d8305", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "029833d0a89b76a7917c40eb6b10827494716ba348d8584e1ccc14773991d20f2c0f092fcaf6f3b0a976bc10aebf62dfab68a845cd50507418442f9a40289428", + "public_key": + "4ebe4940fde18f8e00da89e4f46e458027acb23bddf1194838e3eca215e33f1b", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b394b294dac1544d6d2cc426e052623b540f9cd939f578efacfa1c455b98840c278271915a8698e6f19565cc9076cb52008c482266e8dccca4859f0ba00c47c1", + "public_key": + "06b528b1979dc5bc4335f9bd4b87223045a96d9bccd735af7c13f2aca378e423", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "348f4e2775e5c30415cc32c294253a4dfdab7f14b32358cc471b76d3dcecf60e3a72d62e2921fdcc8dfeac6ee4441f99a1f339f19b4ea44979583efd145d730f", + "public_key": + "2ce43ce167e494616dcc4b3314f4f8825a9b88a8f8156bd450e46551c5b67429", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "66dfdb6d22d091fa149963b6a5b3ebcafc9f7f8b6a5f5da88db0639b2e6fe30cea18709b2c189038c9dd5bc88a2bd65ceb537dca096bdcc324ecbb9df182954c", + "public_key": + "50a0b15c7da9621ba56bb432a20d6f43b73fb9fb3d0e5c5a7d3d8cd792583732", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7b1caa863927fe4d209303077100331aaac8d583e12806217cc3777efdc01705ef60b358b5008a90dab3ea822c1ef940f990b88483be7535f125027d0df9bf1a", + "public_key": + "c0919eb7e2c8775cd8afdc8fbc5dd85abf5b7d4d6cbc50f715c38e3fd9e83d3b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c6c57e499f3b8e7a700df0675d677cef5707d5c96b580c445533b2510b42abcd", + "private_key": + "e729a2660b8726f605e650404e3be57a12f6e2a474837a5491b580d1b217c40f8bff3b9f062fb8d764bf64529de8541e4b7b5e15973ae7534b219fc4080dc481", + "public_key": + "9c3bf0f1b806af1f7039f4fd738bc895ad8459b388289ae239ec9d276fefce32", + "child": [ + { + "private_key": + "d17167217b68a9a19cd40281aeaaa20065e69ffa90fc759027661a800c5f860be34c72a8d44f6823d1155b1814379842457d337c26cf35ec7da2cbee0b2702de", + "public_key": + "ea8a87c422cb08a8816177e164252c0fa01c6f2e6476a87af094643b2e9b4d68", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0d8713cbb900e574d66a84fde933515064164cf93b26327e9c27bf6b89212908a33080393a4d2a9fe446391c76842c0a906ce269c8f70b525ef488024b853092", + "public_key": + "e075eb465f26d397cd4b8e36078c2bbb547e4b0dd94705e409257759e266c831", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "797a2bb4d68201632afa3ebc2236012c3442ddd91f264a18f424737d5b3dc30f5435e280052d57fa97088cce9b91edf22fd31bbeb5f7822a1b34ba2f3af81d9d", + "public_key": + "cc95c56ffd8abfd5a7894f9fd561e58e8d7a4b095c83c05a1feb32a88a23df35", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0af6cc4b9c01404ea6e8bb9e46caf0a9831a4b8c21cb2a42d1995acdd476c8088ae5173053c604834b028decf62091c011e8f2e729129c5fe8f95bf8d075bfe7", + "public_key": + "145df2bb53cfebaae6c3dba7066549dfc7970d2a86a69c242fce2d22b90d4634", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7ceb52cd62244c77c2f50c83cbed4cae3077433ca10fa7dcdc14e7ae2b74160ec9d1d012360bb331130e5ca5fef8b2e89eede5152e7dcd914bb8cc78fc28d07b", + "public_key": + "4a65bf4df1e5b5776d939e7f0639d6deb275ec31e1b37f91d46382a0d438d675", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "41b3f332ad2838cd6e051659ae2c6cf4cb52bef57f7c8ed3f43e1464fcd7b90d1b56949c04d6980bc201213e59ba440d0436c42e154117c3db565b4641b27bdc", + "public_key": + "4838bba04ba6897deea86964dea6b5b92d12dc5a9253e55f25c0be802a4c002c", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "68554cab2b59a6ed86f7f0bcf6ecfc01a8713b9797157659ec989f9d64db5703d071536342abfb87d03b9f983eb1286be0aae57869b9654f8d282b107fc3e173", + "public_key": + "12f1db923728e93562c664890cf74b1db09d3f6252aae33fb270c35dbfd68440", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "872bae3701fc164ec584a67c4d95319b16da2ed999d4ad8615ae299ed7b0a355", + "private_key": + "5cdb876310e28ee8bc7028dc232fd137087ef9f86a268c674e2ab5a42ff0a50be77cffab5ed263d3cc20105864c2973e0500896251f87cdb2fe5b08970c58989", + "public_key": + "dc679d77a802dda48e0a1896c4384e463a972ee89d10c0b9a5df4926a014f274", + "child": [ + { + "private_key": + "a4b12c18ef437a1f57593d6729aec244fe48e798eb277ddd7a9a4c10ba452c0f09a9701666176c75c806bcb478464c41196be8cc9cfa1e86412d7cfa10457219", + "public_key": + "220c01c28de908fd07e9d0dc1200a1e10e7c42115f28d08fe5038058d5333e46", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2113251ff8e032db98e80de4a108a2c8347605eb775b91e1663e150ae915a604ab698a8f22f7319f162e756935fdc46df582a65737fb764c528d2f8b145cc310", + "public_key": + "344ff69741b54fb144e4597d8b581358b7d2f3dcef1c598cca384e50207c6775", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ed682f466de9a82147b91cae79c7eba9070e5e72885402906a5e2315e336a50a000b10fbe78da1643c79e43a380913b656b0e7d560b5a8bbfa3e6e59d38258d0", + "public_key": + "e8e366ea9adf64b23036f528ba3a60fef786c8d2052b499daa94caa87677463e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5d2209c52cba4f99df16b682b132eb877f580e82fe9bd8c8e21425856de6ac0cb5857abc415e322f3d9be688d5391fcef8ea94d6b2d9acaa56d8e2294a8312ce", + "public_key": + "60c1001fc6fd062a4f91fe22338e515760e331be14a8fc893b9fa3c588ae684c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8f66930db7890af12aa13ffd05c8b5ed9cb6f44ebcd618a8c517b271b3b41209ad3a5cb9852e2cf075518cb9089e8163258a717ce652a4473d2c69b0e034ff6b", + "public_key": + "42c0d3cf705b3f82b16c9bb51df51dc9ac5de8db8a2e7daa24353b1fd5952e7d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e79c5e58cb6b105a2d053e62fa5751b1b839a8b4b56ff9a7492883f2344eb4084df60f6f1cf68d238add9f9e47f36a9e0c2d9acf103a16e320f3f473bb80e9d6", + "public_key": + "0efdcf064dbe80a736dd481adde80426716cf325f87ba8b621d15c2eef0a443a", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "63c0b3632fa4e6ae7527c6a8a3fe12448c5d24e49f2a6f807abc4deff0f7d6033792703c9c888f88150b7b3eb07b890220a226e6e39c74118d70ced5b87653f3", + "public_key": + "3a663b41a3852ec7a370390e5fa32ca8437d7e89ef57b94e845675f54e1e6746", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "184403675da61323b48dd026bcf5135a5b9d878778cc46586fe6052ca14bb6da", + "private_key": + "06580b8407e169d459f397550390cb5781259b3cc18c08a49d6fb2283740760c2212f9b1e0ab74e4984304d7286934473452515a96756006690af53497e68f83", + "public_key": + "5cc6b9a4992540087e3ce435f4b01d8b27e3f0734dd30c0cf30fdbef05272c2f", + "child": [ + { + "private_key": + "59a5207e82a7b0e11cf2ca457f9c34b868ccf31b3fe32291a7d95b3164ed920a275e7bbab31d4a8218c7a737d0c0861997b0443200b7921f1c2dbbe27a9b9796", + "public_key": + "743713145e803e0ae6787ecb98d446f29d02b3160da9c318121b2a974c1e2b5e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "95fbf6327e94361d21c0975c18c4eb080030887242330f4722ad285553ef1302ffd472e41b654d26db2455f696f495a9f16562ab89b8ba0027da2142af4171c4", + "public_key": + "5e907cfd84464a54c287a9aeff2c210b00eb2065f948d4c8f8a7a755a8cb1744", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "1469dbea01777f7a03ecc8a983de7a4d70dc51513e8a045429cbcfa788fe43096489cfaee180dd18569a75685b414144712f36f10e20448b549dfc1fd73aee9d", + "public_key": + "9ef8b3382ed24013e87972430c4df4ba497abb2cdcf69159e4d44163e265d423", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c0c2f417ef053cf680765780a8a69fb3599fadd450a0cb5fcfee729f2995c90d4e0f2dff24ff82534b4a2d4c5190206e9cbe49ccfb87066247120f8c1837acbe", + "public_key": + "c2e9d43ec3a5c169335d3e83254dd19fe9603465ffbd2cef123fed4102d02403", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3f796beddc1e8a1f0f71ae153b74279fcf6f26dd3d32bb31a66b17152531ed03d9756e9c1aa18e9a79e39fe70b0d8f677d3687345c390a24ca2cb1fe8aec7676", + "public_key": + "56e938466a9baa26461c729e34755e879b8b7e5646fda8c8f953c73da72e5467", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "70c2cffed413a8778553ab4163cb86301f38570d69eec10eeddce25f0a0be60e82feeb8d56ed64cef7a8a7d481f45b19e6c102660848fe8a28d2df5643d2738c", + "public_key": + "5828cce8e7950eadfd5b827de9ad9f28ddad7a01cba3d595a20cf7ff11669a44", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "fde5c1abb6dd04ffc6c311325c90265a6d3e4ccdc98710c648dab2d2f12f780615617266d6ad06306ea929b7c8f0c276fa258feff20ed139b461b743a27b220d", + "public_key": + "8250e3e468b7362c790c91a4f91f27d0e029337fe2094ec2df54a74fcf4c730d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "36a09f497a51953b87b1240466227c96c8c6d02bb51c9cfd255916f6121bfeed", + "private_key": + "09d40e541da33225f628d4fcc371a012a096dd164b930f3dfad39854c7a7ed0a2411abdd9782cd51cf2d54b827445ac04666715783c5e645c572d30eeb34877c", + "public_key": + "447f5a6e91f9cb37edc51f28b815eb9134b97b0fb55e5cd7c155be8d0af6094f", + "child": [ + { + "private_key": + "c9d3fe4c8a5e5b631e3b8f927ed2c8819612fa3fb04781d5217b26b831f1090af43ca8f7031c9506abe50fa9360606c297ea1aaeae915fcee97e8894421ffba7", + "public_key": + "b4468758af9bc5f6283913f397ecf79154d2102838ce69412598979255815503", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ffa8a97ab9ac29bb7a241db84a0643d528c0f59a32ece8cf487e84c0218f470abe56dbca009c544463cdaa876b5a6579ecc7eecd1f7dda0b69d6b9535a7f3011", + "public_key": + "aa017e5b4d969fcedcbebc49bda7eab33b16416dcb62b572cb07c7c37eecfb1c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "201914229c76ba7a74ea34e391d6c99959ecf18889d7dab796b910eab82a230e7992dd55a17bf3db7ecbe2ccc90ca3fffb841f5861e16f58f79cf75d2ec770bf", + "public_key": + "9c388f867322745737c43b14682dabd4e892260eaa21d32f98ba47d99a04a57a", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ac18a44d21033876c4ea44eefa4195493f0bde1e573b756750bc17d146aff20a900f4a5cba1f009f60a74d142fe98de9a010a6472535236caeb822bce3dd79c8", + "public_key": + "9e72d48386f127eb2db718d0ac63cf559bbe5d8ecf5260f4726f702c0f88ac59", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d93f4cca85a870b7d355952e3a4b795a97f97dd5349430b1e70038cda8b8e100e014179d35c1a6355f8a41f07eab6a7e075ba630d20107a3c6f39c2bc29c9f68", + "public_key": + "ec4f9f8834c363d89500fb0b25005877125c102e0a9da241085326c70e9a985e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ddb7da288699afb742ba82ab6094a52d251bb6c837ce47f14165ca79dd52fe0c8975ded554ba6783a93c88925be8f7282fa5c87c8829a853c9e9c9a1e4fe108c", + "public_key": + "fe71cc87cc29c8708c4fafc1bd4148c0f7f9f283835d01c5b709fcfc8370753c", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "57b1c201b31229bf867b8420141d73fa819e32405e6167598473e7c2b5bf0d06c8efb84bdd402c66a02ca5f5793a03acf996419da192547792e2c915921f4a74", + "public_key": + "18ddb0cde2885cf69966e2b9487e3f0da7215477e8364867c74b8d94b34fcf23", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "9b756fd273c5a43a69b0a0c248f7248c4ffeabc0fa2d7faa474da7ae481e04ee", + "private_key": + "1397642041ba1513dc64c0d901f7e8ffa3fe821007d0a5160cfc9a14660c640d9742bbf15cac4f70df0c94268dac9ea879044d36107ea6183208d559064b7004", + "public_key": + "50541cbc91d6c8574be33dff511392811341481166f0e3327883880e48a3963e", + "child": [ + { + "private_key": + "1f3038fdf80806e3bf2a75e8e898158167dc7a6f0225ed7d6d8eaab5493ec109ecb91042cab8fd7633afbc8afcfe7191527a7a246eaf1773b289bb07cae013e3", + "public_key": + "64d6f5ae5e99e22e366dbf49e5cb057c4ae4941703cfdb0da2482a9700d39c3e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "cdbe13d2836e940fa57c1202c4ecabb65bbaa0b533a334b4295bd9a37f46790db8f5117942a62bfca6a3a54f4e79319cfcbd94ae48b13181017e1d2b4aeb425f", + "public_key": + "f6d1b519aaf160134c61e33c09ecd7084655cc4f6f9c11232a288a3c6a5cd879", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "45749af775640bbc1a33014733aceb1c2520511f668a837b26fd60500979810fc2a4ce2b7b217695f3df76ce1603ed14e58441015dcce3ebbebec88f0a4dfdce", + "public_key": + "2498f51ba455bcdde2825b67752d9bd50eb63fbb70e06a5630344824b9141318", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3119f2f968014f9e2d3810b1ff00fc9501aa84d9198f5aa723c6da0661efee0e192e73f88dc7883aefc9690f370bba32193c6b847daa73ef4c7deddb6011e016", + "public_key": + "5ce414d06344d7cf54e5cffeeef2b2696f9e6b687b1d9d527e7d60db89ea6530", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a6787e40c6c498611f062d2ac54a832cdb29957741c5c956fbe9af106e5f2b09ccc0a3b15c5c6331ae6903dedce143d5408af4ceedd9b79b8cdc7066ee7450a7", + "public_key": + "865bfadbbaa44092c16a04573511377d06b3f91b7df4e0c41205e2a279ff9f5b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "5511fb73f8ed5171d8b5f57a37d350f062ef93c6b64210d86c0a1056b119640b906272a9afeb4230841f6914d561873acf193e5612c801231979ea6cd02549d5", + "public_key": + "b2593860ef61c65d5b40abc6bd301b62de1962a5ee8cfef65b9b5c79cd043f62", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1abb8a62aaf283037e2cd0b1b5d613f6cc0161f87adbbda3d9789460332b5408a9a98c119e940eaa05716687e8fd9b91dfc68644a479c319ac637a5085b7f647", + "public_key": + "dac5d459a3ffcfd08ee1b0d13eabaea15584081d0e5b3c7511d223ac4a5d5136", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d6c2dd8323cb6e680a57a2d3700d585ee668a7a826a76e0bb2e35b904be2c76c", + "private_key": + "d9b15859947e3c37944d161a1fd62680646f3ce20d92bc3085fe89d7523c5a0e17c97201d59b808e48e1346ef64db27f616d1d1bec76136e156d88a7cbaec362", + "public_key": + "ace3b5b3614e42e6d6ac32226549f034d50a58908180c3e9505fb1369a6bfa70", + "child": [ + { + "private_key": + "20945870802084302fec0fd5e0eaf3bc37d20ba46ec92970c2df9f6348395e0a0f5ea6f60e9e825b4724a8932499baaccb19ccce2bd4e8609187314157a78900", + "public_key": + "3ca96f182906f74170612af9402865f4a8aef4a7afd37d7e0a4e2a1bc34f0a1f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "fbfcfc4de906a9734ff5ffd3eaa1eaf5da5ab6bb3fa0b44a1736df48d45301066c8ef5c962a5680db18024a0cac1c0ffc35407339da24f980faedfd97b804a7b", + "public_key": + "b41a68a748b54219e1bdbfd3a53fe19a840c20e4c43461725706a56525aab70f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "5a09e9142a860f1a56d74bdfe646da5b78e360e0c41b653e26fe37ad21dacb0fada0041b9a13dd9a4964f3d65f4b1e5ba3e24dd5ae35dfd7f7382b48b1817ec2", + "public_key": + "2c7cd5ac7952d9dedb41e8df6e370cd62d2b1773d819763a27c065b5eae3a71a", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "534677a73e9a2298b557148e56eb2570b464c2d12a05d5818327fc95ffa3530a721262a9d60d5e728baeeed38da0a9e0975fe1d22a12b37599b4d1422ee44784", + "public_key": + "d61d9708499273a7fefd6aad0d7e3d76b18b1dbe6857f67c43323fcabd00cc2a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0b5e6874671e6ec5fa67f2cab52f64277bdeea003ab194280e4d6fb78df6110c3a2fec3abbd6d6f0a5f89dd1d9237f05dfcac592e38ae34a2f4cee50627a1ec4", + "public_key": + "04283fbab773dc0ca235b97b4770d64a804e5431579a08b33b21862280dbee4a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "bbe67e99d96324f892e41b575b5253c5d64f54ee25b24acac5a58f43a819f208c54c29b852fa80839fe75f3764a3e1b6142a19656088abd1a729771a1065e2d7", + "public_key": + "16cc64641457bf59115e140e812dd25d923d4437a4ca35cac6f5dfef3dd64c68", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "63bd720eb025546f37d6825b39907e9b3f67920c334bdeb5811c8ffcdd3fdf040dcfb23832bf4936c6ca50c31f1bdab8854bcbd94185025678ba8117529507b2", + "public_key": + "86fcff80bb5f23c82a52a6767a32149a5892e8fd1da6d7417dc230f20f134b65", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3d8d06f106d3bc8963ebb4a3c19fb9c5ffd90a5ceb359dce44e8a690f14df282", + "private_key": + "7cea8d9ddb9678e1df15a2b2443520ace8a214971fa66a80743322c0b97c980d247a898a8235c2bb09aab7ccb628f0f056a10f852db510341e49fb9fcc44dd90", + "public_key": + "c0cc8efa6f37e471057102fcff59cc384c5254d327e8981aa4ee946af5546340", + "child": [ + { + "private_key": + "e5bced44944f7fb1d531962aec76555b581ee9cf99026ef788633bd65f49bd0e1dfd5ac39eed9ca31d4bdd7cc476769a6cfbfecfa1b18ae4f082e758e65832e7", + "public_key": + "de83ade7d0d21ba28b7cf0fb2cf18f68cd335422108450fcb07527d0d4023e49", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "665b60042cafc5624b4be8181e544ca8500c25499e90f80f6e7cf8d0347ee9087f355cbd01c54c3e165f3a1e0d6a86769164634c29d037eb352144837e6245be", + "public_key": + "ca502bd42028d365cdec7c5928696f8b6b9f893f9f4f68249b827ae87d1a195a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "22c6dfd49faf18f0083323aa403a4d7bedb0d4ae8164ef33fd5cbe5aaac1570a097986ff8796ddc99ca3f963dd0f99495b02e52b4d7cddead792afa6a1bf017f", + "public_key": + "d4d88a1592d5d095704bb7d49d66b065eb56dc74d3ec111f7641481380abe832", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0cca7dd35a727ffdc9e0fc5d270039e536242daf2012bbb4a468c3d7b5643c0faa1a8b149e1e16498d04d200c36a8d7011f04c9fc4fba5e150d933df5a52f55e", + "public_key": + "b41377c91815a6da12d07139c7b0af0ebf1a49ae1d9c1c7a8715f703fd21e566", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6b2ef86ad6225c14fc1488fb669761812e3866848bace8da30e8fc535bc74d096cc6ecf3d902d8e2408b32c7ba92594498ba46a561829b80c466341e01fcb7f5", + "public_key": + "baced67baa42e44623258b48015a6017ae92375dc31c3f8bc06d06292eede318", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f36ba8b890310611e5da16e005199b007f1b952b73a57f5469b1316aa898f00fea3c727fd5006178c1eddf092b37996eacb89ff82f2fecf9eecaa0a2f543b0ce", + "public_key": + "24d7302a7c2a2bfc106f650de113a05171250d249a4c4faa33683510f02fca39", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9908b0674fe602738fddfbe4ebf62efe6097223a2acdc3a89a0aa7cedb7fce060596942ca1b678380502700f52a4837a368476e9836793f4349c55638f56c951", + "public_key": + "7a6c7f9cafca7e3ae19cf659d46d8dc3eef081a361315c75140d84c4a0ddce51", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c79581389abfe37f323e8c577c675c02bf2ffc0d49b4839e134323746c520ae7", + "private_key": + "88c7a637f799c807a8185975e2b7be1c08ed6295b60d13bf2ec4c99757cadf0b168ed09bfac0817253c6d619c2a64fa86b544adb01a986574433e730f3235208", + "public_key": + "6833e1e69a74d5c8a21c903e58bab2b94de60b40149f20e1476d8592f8e2df27", + "child": [ + { + "private_key": + "7646e884bea69d902c6e16faa6385404884d26c7f5662ad92d0553bf4d0575098d575f6809d6dc01ea8ed4204ee777c91b9e919ddc9ab70bb677bb428b255721", + "public_key": + "8abd14918b64e039c343e5f969cd9deab09ac3c905193106d3d57528ded6c64a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "cfe9855e707d6f7eefa8bda22a75eedc7de1d3c6aa353c45a14103c0a10b59016c5d6625e6bda2d2f9ebb2370e81b4968078ace4b36494b53ed4fbe81c6fee19", + "public_key": + "7af2afab9d410a7f922aa614b2427cd080cd47f8882c938d31b7117a565cac2a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "db94c5a2e6a604ec41e71c74e438e137be025f9344d39bf87d38bf1155b8b80921fd2d949f7b35a69dbf573062ce23d4862ca56045d6d8c379617f445a843520", + "public_key": + "5a5e0e66ec2dd77c35c68f10bed32b773e0c3ed11f95f57e82907612c0181b2d", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "334690a3caf543d045ca16c68e0214d62b496d7a7e4df49f9a2d7d40233d7309e46b97988d63c0c163c052b01b48ba8003dc1b1029c866a2ab1dc204719e9f5a", + "public_key": + "b8c4bbcf7d02a39ca83490bdf4c21b846411521a8ef3f85e80eb9126a372dd04", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9bef07c5b3012e87812c940595bf437a2d1a839f2bf8361bb3427d5239216605ea93a85265dee1e515f8dea294a88b3378cfbbd60727e54a0c334babd8b18b95", + "public_key": + "b048b87c139861ec3b739a31851d2195bfddcc5d9880abf5353a88906b752d53", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "44837eecd3d55187caf7b2c26d95b550804fcc304e182b780b670afb5da4a308c159b0f6cdfe3cc80e79ebf5e7bdcbb97109fb6a64dffaedc1f8abe4968d1651", + "public_key": + "f0197fc03b1e2f7bb590c2b39798b183be72658fad995397a34e9efe8d74a276", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ef58409733484e45e3d8ce9e30c86c3e0019e9122b5b921e42db560c0ed559059b24e2fafaef8a862e6b13737cfa40a2461ffa5563ce7b952471d5b536ed8810", + "public_key": + "fcbf4752763c08d27c58c988eb0e8965fc56b6928057efbc2c1dfe067550c627", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a26947d397f79970a2e6d438d084d49c3694b8de50abb2872b4ce9c05da5310d", + "private_key": + "843ef5b2a6af3150b51b0f4d96a4991d3b7bb3f95176d4872f4712d442f1e70d9a9523d4c39f152665669c379f639e2cefec0196097bd01b6cc29a4b5cafb33d", + "public_key": + "eaaf778de2b064d832c4624820a7ad0777f05efa9b95648393db5eae641e8b45", + "child": [ + { + "private_key": + "b9a60dc35bb48bac094fc1ea914994d4b0c4f7e59a2b392822f678b40df2eb0ee27a816c3b91bdaf9b5718d30807794e38e1bdf2786be1d4d6d15b0d4446e31a", + "public_key": + "a2660de87e6c29a613ef3b9efd4e0942421b9907c59507a7392638ee2059d85c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "86d97b8efa7235eac3b12063fe7d9b03eab2a9a9b7a17c2e620a78a654dea20b62618c0186f9ba609bd21500d021c745f170d45563e509b62a07d150b83a2025", + "public_key": + "1ef5dd46f681aeb84e166b0bbf08a019740ae74f6693f91f2afbb4ef235bb42b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0378027f8846588224d3d4a538f6a3141b0ba0ec3da86032ead4386af07d090dafc743d6e97a45b93a23664716bbada300bacd9c0e26c4d8cb4e5d66b933eac0", + "public_key": + "de5fb88574f52e9a8d33395d3847ee4515bdf1c01bb68fe92883d85337b09978", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5b75a6cba66813636d79549e2edc8194c3763ee01322a26b81ee47c790b67f0eec7253797818a7aed11fe14b811d988effa4565e5d57ba180d30f38be3e9cce8", + "public_key": + "38c9860dbe9372ffd559d8c0fb42805565a03b89debca284bdbde351198dce3b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1dd63d9e6c36c128204867214163b86a0e7d1ad6896d83da726e508c481bea0af627346f6669c66930348cc77b0af350d2b2a2a5e4b5b61341a815aae46823af", + "public_key": + "9caa48650abcfa13db5b3467271b18e9119ed0fb4afaf4d5994ca1a109a0a237", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "baa1e838c137417382bdb0982267ec2ebbaa2c1e0e30beaec271f8aad4752f081a75ff652d1a03bd9faba2b59a0948b234667568bea7500451bc06de3ddf942a", + "public_key": + "726abfc9204b5fc8aff993c08259cdfa8566bf49fa44ed6021e61c3baf050e09", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "07750e1f41806fa5cf377da19301ce8655297b08a754fe6d1b32a0cd97d626053cc872bae75c44aed7bd1207e4a044a78420a0d7fb2203d696dea72c4a4ea9fd", + "public_key": + "74614746ea43a7f4d326d9761540094345c328df2ef514bdab72fbd33a79a766", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "8d662790f21aa3f714de4cde5699b6bda63aab44bd13510faefdf8963f0c6553", + "private_key": + "dfea327caaa2063add3b2370fa930c8232e73ebef291ca8a4342bece6549750c7e72225ea37141f826251c41d7b409d3e478aa0d0083ebcecf8a63b77b0b2752", + "public_key": + "28ebe6d65d0715ce8590c810a024504df1bcbd74f8cec6166d58f0fe79f6a129", + "child": [ + { + "private_key": + "fdc7e96dd858e4bd38fe4f609177acb535525393ae6c640e92ea124ac88abb08c31e82e21642b8fe04cdfec9d74633c838bea03beee26414922a7ca1dfb95ae6", + "public_key": + "cc2b9adb809147e2d198f2d9ba2684f1679edc1d1dba64ffd541943310616f00", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1c48291bbe02509afae21d61b1022e8f2f6b851e0b243cbbb0632fe5e710290b48d80493d7631d9d0e508b036c09e1c646d35bb0647388013caa69b23cad0295", + "public_key": + "c80e4b458c2f612dd949c41973fd1a591f142d38712e244b0bbe5a43c8ceac3e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "7803fc0fb740528fafb9fb72bb39300a6416694bc7f2c5636ac716f5ef33350d1bc20ca1de83c5b9e4e9820a940b5f59a22068eafe2a0418dd7e75e3f50f68b1", + "public_key": + "9aaad1c308800369bc46fefb68b92d43bebaabeee77a5e3ccac13acaf626c22b", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c1c7c1dbcda6f39ca4d5b9b08152bd6de651eeb1b5e22e488e5640ed9ab1630e7cb1231058d8c7ca1f5df325a1035aa013cdde7379288aab2add24fe5bda412f", + "public_key": + "92fd9ddf53836a8c8344631e221300bcaa2e17d26d02f58fefc0b69dd86e0648", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6606ef71e74c45661d2555da9fe86e92f322a4ab49fa3cc0952e4ab559f7fc0e576b321efa3edda4320288f56fd7d2754139d04d2a1f78acd8422c1234ed6949", + "public_key": + "a82dfb3379a61fae7933a5ebf43ba6bfd7018eb6f8c08c3d77621ee0df9a0d1c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "bf95c4572d0c541eff5a594d50d9214f3f6bc0d9135c29d556177777f4bc2108f6fd75195a1483acd9de641ed12976cc2a7101e63258717f252a7fb5734034ee", + "public_key": + "922b2d0011676e124c714d2aec76907f35cad32f3c8a487450692bf4c274d809", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0434c9d35718fd3b4fcc72c57cfdba06085f314a8340c13ae40ebbf695a2420a6dfba6e822343992bf361a581d07a132f1194c4b22ea66511c924ddf4d39b2ed", + "public_key": + "b6196cccb33e61ae672f02ff9089b70eeeebd64002303842aecf6ccd5ad9b722", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e058f98359ef5a149b06f4a33e8ab1e707b5118e5b0c152ed3a419d30fd12166", + "private_key": + "a20e03aa2a588cf5e600fe79f8b1e02069f6d2f806fae2376d6268bd0486c40935477afedcdce543bd88d6d049bf68302548b0c383cf1f945757f38c8dce2884", + "public_key": + "7c12c70cac96a1628043e1a7df32bf4d672580bfcceb78eee6883fa4d69d165e", + "child": [ + { + "private_key": + "2442c1e79f4a7e67944668d3225606478f509ea4fe5378ab8194eb44eee69509959e7b5856eae6c76b0ef19c5c05ada58e4010bc00b9ddcb1362fb8330e65eaf", + "public_key": + "1e371ba303472d6975cde4e3f1fd6d26aa13dd10d690291fbba42be100855219", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d929bcb714a57b866488af21c648aef418c09d2bd949c63d32930df771343707a0a724bba48fd54e046bd69a438e16b00e7daa63f2ddf17219771ed0f9cb4f5e", + "public_key": + "ec9586e32e655fb2e6ddcbb409dcdc7e0d72345304d0674455342cd5da1c8f43", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "63da5687cfda127423c4708ff867ebbc131ad03f5c314e64d6aabf9acd95c40a32d3208c0eed13721636aa114c555205654d7f24b6f241452d13fe46bedb152d", + "public_key": + "a4eeedb634900e48cc5e2749e5933c779601408c511a8b26d6de8306ab1efb56", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5752efbe97a276d57ee63b37ab2190e267c3c68c765c5c60fedd9f6127d6780cdb2d46d00fef759f8258d074f2b4b8a0b9945c8c0a2ede6fab4a8c9757d4c9b2", + "public_key": + "66af8ee0e61a5f8fc0e2c9e9ba873da2bf957191fe8cee527da1abc79e0acd4b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "643334d4633649944ad751fec9d7a80e331ab788706475e875caec19cdb56805ec1faf6e234c1a74d83fc79a15fdf27183c3129ec720703e6ebff236f74bd826", + "public_key": + "761e04ec3d64e77468ca8d88f667602c04bbf799428836d470d4747c5b3f2020", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b5c3af05baa9c7dcc50718bca8ec62ebcd83339cac8d9937b6dda9bd07788f0e9a17e9f445dfbbdcce77ba1ad59cd6745ad58e0ad700018303abb808351a73ab", + "public_key": + "aeab0030c609fba880c4eeeb80c02951f65cf2f0cada482ecd3a281664214d14", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b0e5eb8d3f0a68bcdc77b386cbd078804af8d93fdce1cd9a65f2fe49c4ad360899332e768e81fe749eb8068fdb76523f95e3a8b60e73f972e1ff1c16c0f3cc3c", + "public_key": + "b48ee031b479151bd59f6d682a2c2a3b6d2d0c156418de3c682f880c70364463", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "953064cd0c04197103aa723a7644e78fd7436473c220f20b8ff68c271de68328", + "private_key": + "da4db6e4a1b21e12fd980f97d4ef04b2e0247bf540336421b65904b315e2320f297f696708d1001b336d81c097bff5162ed9327fa51c40c04b08e056ed3fefde", + "public_key": + "7646f35671ee9c863a1c43a56a368e4e77a3000141208ea990a702f3057a2a5a", + "child": [ + { + "private_key": + "e74b833fde24ef5761e36abf229f2a53ab22e1719b5df1115763f1be9709330c80f6c358da4c9aa89e3c379f36cb28f0ed9d77bddbd9b9e6e5b353a09bccc871", + "public_key": + "605075c1b54cd0beae850efc87f74580427c8d00964360e8b04d72507714fc6e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "39200acd3824fe97d0dc16789d9ab6b76b24001cf973f053ed03f3b7c0fe360751ef41cc07f2fc8632eb4a641785bd2be4561a9432b2773d54c44ae981629dae", + "public_key": + "5003cb53d351a7fb1bc9f71d583c53d992ba6617979e9fee886035716f45d550", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fae26f9ba5e787d9109f7f52be2c376f69487e77bf2e727e7fa97d914506c708ca8bfa419a60dac3cbb4a5544986cd6dce66991cd6bde62cc11ea569ee78d68d", + "public_key": + "14df4a1d5250766090969c211417cd97f723e2a4a5c8131a7184313ace5a050f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "daac40fd82824868bd1672372efa3e0e7f684cd0b16da0db93c1cf5242d8670805a6723109986fc6cd2cc9a3dec4c5bb9e1af0881ca78fadaf0a0f781ec96939", + "public_key": + "80a7dd36c8c705b8e09d35b9cc8712fe1d9ce873b463afaa09ffdcb9c9b39a70", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "13e66873e13333d3621ccc0eede1b1a96a2c41caf0ba67741032bc43d5dd3d0c5bde1b0a46919ac17c588c39d8a5538a9170ed9aa06aa56b9abfb2ee9c8dbb8c", + "public_key": + "e6606e4946c14a7a832f1beacc917b008647ed0901fff6ec7d53e8716b13f363", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "14a4e60495b0032a27d4065f1938ae481923db5e20a62199aa9a676fa4819c0a2f3234071bdd3ae862a8e8e884f5083532c7990a22006cebe794abc1b6e78090", + "public_key": + "94c1336e1fc3a840be1a4ad60779ba86e5262b40840285dc4b485a36a863be1b", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "66fa4a05faa816fcd95b09bc6a0a8112ba3f5551c81fa97f198eba24a93bd10a693fe45e747a90b1fac8611ecea8f2579e72f2e2fb304b182702babec8ff30cc", + "public_key": + "84e47df1db0a0f466fcfd56b689633359a742475030639cecd0d860a9afccd2f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "77e3747bd5e8a8373a8ce8f3646815188625773e8a0d17c439a0c1f3d878287d", + "private_key": + "634f3004abd4f85bcc13495836942fdb9165852baeec576a4bf520c69731f60c717ece3708bad30b41fd52c5c07d36eef51772d170f830cd5ee143e31f2ecdc3", + "public_key": + "7266ca2793c2d6831ba9b32aad64a9ca200dae3d16bdcacc91246b093986b326", + "child": [ + { + "private_key": + "7f7162cb6e03bc77a2c1ec557f3ea9a3452516ee48fe94e107888a05b4ea2b085765d0120c0302907ead6d876451428f9be8f4874a229254c4b74898a136b251", + "public_key": + "a0d1b0b329398969099dc273f47b9e091d85bd7574f07651dfcf0ba51840147f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "87ad22459f5f73aec5135b5bfe69b39e82890d0d7f330f82024ee95b85b4820d5f135feb1000bd7f41670f5c6384ae2951177d9e0329d43469e2aa100eb5d782", + "public_key": + "b8269daddc4154e6d93993a39cdd9006c0cc1ea03a9a5464215f26e7f9b2bc25", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "150f08277285c936a7a86c0bd4ef0f4c64fa30b4b86c5ecdc0efe48554609d0f81926c303b0dfd1ace5dcd1c2e8ccb24bb85fd3cc95af62985420d4f3c3cb241", + "public_key": + "84a3d3713c3fcef379e098bd80e62a41c26b79709ca5d6aa6bef4c654f96ce58", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "af673daff924d7e22bfa0e718148d7840ce681e9dcc13d5eae8379abd2f3e70f00b855411b1247d3c6d405a03e3adcb04e4cc4f90025fc7203fe08dbe5e29245", + "public_key": + "765d81b5eb7fb5155600f7952d79264b6613b29687367b7dd52fc9bba9643949", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0958eb31c577151315cf07d40c878b9f476d919238931067efd496a91429720cca08f0d95afd132ce3f895a9e351b2f765088e83ec086a6ec2afe5c2160b8318", + "public_key": + "c2cd095dd8c441d5f8ca7d434565c2c3f3ba3874f70f725509258c97f3917b41", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fc4d6f9ac972231c52482554bd9e0c66f061112dbac9c659e84d251bb76ea00a3b4fd35a2980bdfda447554b1bfdf6dbaa63a4f1f6e025a993f5cb9896dad30c", + "public_key": + "cc9dcca02d8983f23036dbe55c1135fafdff3df147b9f5d97ea5b01e626d8952", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "02e254b001a6355532ff1fb95392506a60cb45ecff5bcc0e714797e274cecf08df3f37e0f5f3183b397b7df025bbb31b7fdaf6452150f9260263f019a4c64424", + "public_key": + "96b3d3c4e0391a340ec9180da715d8f1f60c476d9745e81eda1b43c0bc5c822f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e78e22131b6d4876716d641148600cd04cb68884e354a2da5b0b15401b438bc2", + "private_key": + "d27fd016d638e2138e92f8dc0ab0a7d78ae2e9b1dbbd2ace7c6e89ce1b52b00af7b3f2e16c38293edb533fcf7a207406067c47cae430414c2a20c41dcadef7ac", + "public_key": + "628ae05ac5096f9eba51a1b35771cd9c4f4f570da8d4f85e327f6169ea18e252", + "child": [ + { + "private_key": + "7c786620b4d5d7079e6c3a8448feefafeff98e5233343491a93aaa9b1f62480e06528eefd4f8f5830871b2d76aa61ce9337efa7baa7682e2b3d3b31004fc9c18", + "public_key": + "48d50a71fd60f005e583a78cf3a321b5ee81fdb2c2ed82532e7b8aa9f5789d0a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f78772f9605e90ac69712c50814014f91d39c7312ba5ad052f099a80630f100c1dac3c08784e6b92c8e06f6c514202a573b370b0f1bb59580c517df51aa55ed9", + "public_key": + "fe431a647545ca53a7e2caf02fcef0697d118b855926df20495775410dd37e0e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "3fb8a8a9824136453215ab773f99ac25c3442a11c7902b4cd26cc19c901865097217112b468f7c08e92394ce380820b31c79f2ea0a3381ab9915d8f8cd5e29c2", + "public_key": + "86dc5bf807ed77af1ab3d6a013508d83caca33170254d84ee07242795dd8ab1d", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "af74808a0481c4eef258300790e6cd3bc1552ee1098c2067fecb37951df8eb0cb99f9d2b9960109ef482f31fce8aa360c8152db4049f295f4194fa23b2798633", + "public_key": + "a870bd0b8274e8f0f813b2ff044d9d1fca42d97e56e3b0950104dd4c8fd3a24d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "760d827c99a9f409b72eb085b49ca9ec24b0f4758b24b53556c6a272f879bb05621eb6010856852e439eff2f9bb6a511abe68dcc85adb7a151b6ed67dbf6055a", + "public_key": + "f298c7e4d6774f775eb8b2b3efae7fe5bb852c06119ac1d56864b53eb6777d75", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "7e2551b636e91bf6aa3f2a5cdb3f420bf1464da31510cd55bc892dcb7182aa095a9dafc0cd32e2263df0a93577303325b61d0230d6a0ffe9cef27e527b131e8c", + "public_key": + "927db4cc5d976afcc8f507009ee0f335ff1b919889e0fb53258a3fc8d0abf373", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f165f1ab223b65f39706fe85467aa4a2a8848eee0e569a8e98595f8b8f75ce02cf88676c22c9b8a40eea0aeb932897b01c3af81869847a21094c7d1d9294534b", + "public_key": + "d41ce1b489f3347a5cd3de29a41fb3d68399560ed54ff69a1eeb1af9b5a76d1d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b391ddca09c50a3679bda05d0f6b4bf83721af0e0e5bb7b622b090b87dc80717", + "private_key": + "fde7776ad8b11ca82d37d6b40b6c3c9ad00c7d30b6113f6f459e4462b1c07c0f19145d921c58f0bfd77bb247d819bda9529b2256ce431117d8073a5f4765a60c", + "public_key": + "ac2fc580beb29b3df041b6dec2dba2f8ab96bd9afa69bf1264cafb4e3ca00f59", + "child": [ + { + "private_key": + "71e99378b419d5030b7d267e689554c6007a12b4f0bc23f11fb4d631f08ca40d690fe5f1d540ebe70cd971bb8b614fa46a4bbe11e46e925751f9862308ef6fd1", + "public_key": + "ccf28248f37aca9aec340a1184fd0a99c322d414a18eeec86541b47811b63755", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2eded2908f623438800d870e37342adc1ccc2402a5053c36c138e34433e0a2035da899eb3c41eea324f69571fb919ebd4d4b3c1bcbaa7efa91109d618d16f8d2", + "public_key": + "46d7e0375b8a9de5ad54721e3345a119dafec2fd1c731cfa68c93c75ac6a164a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ea38ec34d54ef0d2d9fc7e5d516b87440800558791746492eff4f47ebef4e30fcb6525b8e377851d920239d6026885cbc635cd135f73829321559528ec3345a3", + "public_key": + "a875b183348fb4d864a43018c5e36f20c53a9317716e45e9f2aa7f2063651714", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "784a333afc95ce7e42f02e3209e0c381b7d394112249767b3628e27076893c0afe29c7020dcd7b554e7da7b51904c118f69b521d2f707a90eeb3d5bd8892631d", + "public_key": + "981ec497acb006c5daa909e698bc60f9015e468b85ad6c401281394f71e6bc2d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6fb471f0c7fa0010ccb085d4eed2dde4cb7b66c5f49cff59251c8848158583016dcf76de331d9b9aacfb5a0cc123c0c189ef3191b7aae25625fa76fca35ca63f", + "public_key": + "1482ed2de6992bdb938d434c5e2f37ba69ab36bc5cab2001fd2be855e51a9e2c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "aac4cdc7d5e77fa6cf452c4aeb74fbc3f580cbc4baf2cfc455c023068692fb0c04dacf6a6ac1d85667e663a8ece6ac09a342c13d43bef83e0c5fc173ee261a23", + "public_key": + "8c360cb05749cebe9574ccab406c864dd7921e22fcc88147f31a2bbb225a1229", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5511e6562a238f362dba90777a7742d4c0b75a527d5117f141ddc52206fe08092d10d3646c0f16e2c9d7876d925f74196944d0dfe649c11623b0cd194f8606c5", + "public_key": + "9a26f2491e859c584eb06751db4a776fc33f74738c26b91c459f1f4f7f3fba06", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "77d8a3089c7ef55cfe2084a40c9702d310bdeb3293e27bcb442dd96d390f91a9", + "private_key": + "35119f7e56ce1b35628a02c4cc18b5854686ed93ab4b710e6ece0ec9d3ca190c5a5a4fbc4b9a734d0280042ac6d259e2f6ba70eac4b8b480054ecc949f940a48", + "public_key": + "4c4c86e02661809abc661e7df56dee35afc00ca9f3022218fbb4015a3c10c60d", + "child": [ + { + "private_key": + "3d17fa8948782afe6c4d733897ebc57d8ef2a1d6da2137a5a6c46748eb77610d1db6eb0d170244c0dcff488ec2cdd2b0db6c50a7ac1bab3584897a3c67de22a7", + "public_key": + "f407605341404c6fb1a56624d770d9c47ef19cedd5f47d3574072ff8a45e811e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1606f1c4a950f6391cb399137b349ec2a23873527f14ef205eb0ead256e6ee0b67a73710d1fe25911a442bf6e1154230d61174f9bfa4954cc8d27b53b4f74d85", + "public_key": + "b06452e9246a3b62d373105fbee58156046a11764b944959df1e0a8370b7295e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8dec4022ab5819bb58ae247be1faa3023332a6a485b581bd5ebd708c7a31390dd3ee51db56cf5efede7c2caae4f484915b3aee11cdc4497a3e0f82ecb737e4a0", + "public_key": + "e2cad3c0c5e6dd166091c81de948dd8ff3168e8d16429fe2fe925a4ba9f0e805", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b60253733ac2b2791825295db76fdd3e48a6d1f3d656efe6b703ea1a670e110a8db1ac81871a604614f1b51d2c82bb21418ff70012a201d3ddedc8675af3bd15", + "public_key": + "e02279c5d47a9de6364cbdee6ecdbcf59af09d09e0465e97a44ba9f0e3010652", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9543bca47d7e9ce536eb66bf8d77f8bffeec1ab23023b5e013497855a95adb00e2d8700addb7b38da69d08127e3fd10a8242b6890423b1f66ece0d2d43136ec4", + "public_key": + "a03ffa919bf958ec17dd5217ab1fc5ebb5b0d12f993b5755b7fe06ae11bbba32", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "2903187c6f183f61b371a2f7a6b7d476121f5dcf18b1972f430a020f3ce174080645c58ff06112932f06cd506b3c9b12aa26611242ce789e23a0b5ee768d6d3b", + "public_key": + "429f6ec31bc78969a77b62438b0a8d4531fb4d4f1777de0ad6fb731b85b9d347", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "eece187d4cb456d6d5b63a463a16a524804717bfff64fc20aeacafa52c5ad30a3289af9841dddb1e99a9163973e5e08e455aa34b40859e19dc2fa0d3c4f1666c", + "public_key": + "a4f26f6db5d403cb13a972b3aac1a545339eda22d44c3ec1d4ac3f597854893f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2b97fc82051914df064c151c76786e37c3dffcf1722fbbacba5abc61c78d61c4", + "private_key": + "8d05e8f1ece1eb6da0290e1b11d5eef6a9737a561b8f4a4f29c73edf7ee8080ffc0d5a11bc3e6f24b5a4475e36232ab6fcc44843df916c385b3ef4c259d3d569", + "public_key": + "10d02d344934e4a1f20806df9372a2391e847993c1d41daf130cf50811719d22", + "child": [ + { + "private_key": + "99c13b8b3a27d531cac4fd3f62803be8f47fbf2fe728df9ff8098df00eb3080b8ea2afe9d476c2cff97cdd4f9ab43c1de606438273b0079223cf40bfb461932c", + "public_key": + "801c727c5151aa67f2d897c9f1cb83bd9c22f37d1574d81b7a0df21eef8e8a18", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b1f4a9ca792444a3f743664b783747b74317e90cc30736d21a22f5af57758a0c9e63e9468f260a7b12ce494345f89db823a2cdc3f371e69c1155979c8191f648", + "public_key": + "0492b1de879e3972da1e187dbcc76b05515ae31afb1aea07dd59597beb0cde7a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "1594a67a86c787594aaa0bf9a58f6d50d9bc4e93704b33e218071d1d5bdb9b09e589c00df8631ff13864498046b6fb62c65d11db7687910d2d2bad0020137be9", + "public_key": + "825b71869143b55e32cd3f561bf3365e9b6760b8f1d680b12eaa9486b1cff57f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d533be324ff45da75dfedfed3985fd8846a32117e0ad90acdebcb20cd3f9060e3adb33602875d32e11b1ab6f8b7e6e729c497c5512234f12b422cf7fe510635e", + "public_key": + "9c2f03ad3f79152de568dc6054afc4335c9c41153cb31e73321002bd4b782607", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "36098ee2952f434c8858c82d44b4301960073913c1578b66fa84867ea09d440868ed15c838fa63e4891a9f511201f5e12251277a37f3ccf15f00035f062fe1cc", + "public_key": + "9c8c652d29ea60b90b6e392f9ab159b4632622e5c73de3d9275b7c3fe9bb642a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b52323cec06829218a326705f636ff332509a9e816e3d05c57fbf56cad596b0f09535911058674d0678a40bc3589b97ae99f11767839d47abdf6bcbb59edd6f6", + "public_key": + "1ea7fe3540f5fd25a898317d623ef96d8e5d6e3835689c202a778ca0b573cb46", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8e10fa2707580a7a68904e8d7ccc640cf8a719dc58882c3b39f6c8de94f7f10832d395a061943de404180ac2ccc41fba1e8cdee0a4330cfd94ba373f88dbbd3a", + "public_key": + "989403fa7cf5edf55db7fbc6fca5f28ef70d26d29f6028458725b05f4005fe7a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1f135affa357f68fa6f20f38e850d4334b600b7dfcff640b7308af36bf78a177", + "private_key": + "236348a195bdc90c092916f1c50bc865f1ec31365c61a234dc48ca940df6a3093013de902ff7d79b717be11b99105ecc929c35b6034180ace9aa9d7f7e6e07d0", + "public_key": + "e6242d6bbe9e10f958d059c8ed66c2034833a7a814a6253d9871bd00fdc9e600", + "child": [ + { + "private_key": + "c17e1cf9e059d69674af2ec452886362bcbddc40ad483351458ce272a9be420a426cd7b45db45e600e342678c086d7fad2c70ed227cfcefc296906c3f3ac5dc1", + "public_key": + "3aa70cd97e0275f63b447cd29f6a1937d51b4ec694eff55d06732c820f14f160", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "431894b8088316c26abf5dc30a996c6a0366f32cdd17fd9a3af5685776bf64052ea357c10d7f322bf0b742f8a2289a18d7fc0db38d514546a46b2263f014f556", + "public_key": + "b08c33d59829f780e461792467387c7ac6282bd3a798cc1bb6e930ed57c8fc0a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "d712e42b3d5f0015437b76f5b27d9d5606c802e91e634fd2c50c098b2c1c2809a497ad5165cb3d81e3c365d67d8003d18bfd967aa6bc29ced8d0c1afe1cada4b", + "public_key": + "f44fe94b15daee5f0a30890ce4c2d37c968b67dc8f2eedd04af90c1fea0dc10a", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f21037c571caa00d3ee73bd5961f1f873f600c2da268cb6a9317c3220c09280c6d3834ce81c7052632806dd1db5e74ee566b92fa1e73a62795fd89b974a2a7dd", + "public_key": + "f29912e4f683c0df16e9efe8e78cceb725a7e45504fb76545d3c342d88636475", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "94ab9b3d1623e534c4d6a0b1dfaf89521ec69589c6b97548569169063c350c08981525edae58e1f0251ca4df2646fd8fa1825a766b4c55392b076c473d8de104", + "public_key": + "0014d722af2a450fb4fbe1f377587b501260c057d84226a7e167113c655d1976", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "bfc9073263bc29871acd5b78e8a3519eaf2e0b72a0e34d497d3284402aa7db0f26aaff9a998c4655fed0fc658e9e88e6d81a5cb561aa2653d973ec75477f4a46", + "public_key": + "244397eb58ecae71b68a4dbf0bfd4fdf6219b6842bb30e6ebae0950e1c1ab95a", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "23468799012acef05d825224185fe5e083b98e239d6dab1cdd0138906d58f0055276559b133953bb3fe5b8804f83389372cbbf39fd9037fc7da0e97891cdc01a", + "public_key": + "e81e39c33985533c03d770df29dd8b9478398e076610a0176f8b57c0fc9a087d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1b92ee2263de56c98c977685512c057e634813ba77f5030c2af2dba09cf8f5dd", + "private_key": + "9f2ef1b955171efe868e66e2d023747c92ccf9e4c6dffd39b1cc4f4347f4d8082dcb43a0ae49b39438d496ad34ecbd9f95db22ec53386c0b6ff91a9a578de100", + "public_key": + "fa0e2c80991fe5e550b070db47cf20c98e909cd63c0d4022cdcb4a488a66aa7a", + "child": [ + { + "private_key": + "9bc327171a530512b46f7be429f47fb1d98e836d3319a7a129941cbc7e7991096ee2235efc30bcda122f213216e72901fcff1eed2f904557d29edf5ce608d176", + "public_key": + "2ef2a377fc0d7b4c0ed521c5c6352029395b8794591d479de1267545f303740f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "07667a695ac9482bb0db39ce7261d0c85ce1af753e15c7dd9fa58a0ea74bd609f5123dbb248a31ee787b40975de7eade1f01c54c2d9188cc2bb01078ed56b9f7", + "public_key": + "10c5618d4d6d37f855978255538b901ea58aa0bb9645bc2dfe7aab54185be65d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ee93d9db5a55bb39421a1b14bfcfaf7b99bd979ef53d114417943d9796ebab0c544ea9217ba7ce92809114a954cdee2006aa7bc0605fa9a2dba157d2775c1935", + "public_key": + "c68fbaabdb09773375c95b23f8b8bc82c64602957e2ee084defedd30fa66ec06", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "038838d4c334a7b18e300dc2780c1e5102070c6702a1fedb554be4ee2f5e6c0aa11b3ba238c3b85049b505fc1e79897b05d15174011fc33663d609caa89d0bdb", + "public_key": + "f235fd01fbcf03c5585376c17a15ef79d721818a8ce62a84c27a232a763a231f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "06c953657b6d2ad1380ccea0d08dd9ab4f4fea2f9e62312a47275d954a6f9505c4a66b1c2eb758169baee4456f2e3a199db3933781d5e37aa176cea0fe9af6eb", + "public_key": + "fcd0dc9cc63f5d68b6188cd6699eb996405a4cd91df04bd10c94c7f5a8623742", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "83b56bb14fee2b7b17e837edab408e6358d632ccc605e379a7dee981605a860877f5046e16d87870b78f1c4d29fb91a7d2e72c666c8151a4ae981510271ec640", + "public_key": + "ce1a1dad7c2b205ab35a1fc4e4ccc2d461eda5ca14f7190664585925b9196448", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "949afa51348b23ada184a2ac34293edece3aed8264bb56e6ea9fb2e57911a80a71febf333bec638a08aa07cbdd112459ead245fdbd862f01afe44506cf7f2c79", + "public_key": + "7cf2a75bb4faa09d3046d717bdd25631b937d12fb7beacbc8da6ccfde4e53905", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1a0c58231c7485d9c7e7c2ec8c54b01f2f88e964d86caf49cf6264ce40b038ad", + "private_key": + "49dcb942403ee3e6a000a9797df7c0484be541b37735bfaa72d5b6a64151d20d52236ef348dc8ad1de33a3d23e10cdedebee0700f57bc4fd4a31c757b51ffcd7", + "public_key": + "4ef675e5e7903c94479d387f99e9b62b35b4b15092358af4ea0c00d29e487356", + "child": [ + { + "private_key": + "42a07d1fcafbf11a55712b8d4ace7d5c0c15a735a03d48af43296842b893cb09ae38995f9452df9c594be0ff6ff76b66c8a6496f8e9a8b7627d533823b0c97f7", + "public_key": + "5ee4d31ed00f4354d82316c8509f4146205e27a40950119f0ee219d3a62eba29", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e517b6051702f9cb35c7f1e764c514828d7697d08a7d99012a9ce34277bf1c0f1da9dbd74768aaf403826304a562040c7ffc3dd1206f7275bf3a930b90949b69", + "public_key": + "90d008c389618887121d5649af4632b6c64c5fac8291d3481cf4dbadb1c57462", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e1b39033849dc73b4118ca814d217da8811f0e309b2efa047f66368dafdf790aea242c8bb5cdc8abea22b1f371851cdb89f0a24d8f518a602b1abab9128537d8", + "public_key": + "785b8b2b5ef5f4b9660586eb99f5d898ef7c96aaa276f5986f4201b114e8436d", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1ca61a2e244a32f1e1cb6da4c23875c5da2ffe15308473d48e75e83f9fcae00a8015d387fc0de87150cb4c73421da43aa2c92dfd148f03a4076123d850f97f2d", + "public_key": + "dc4d17da9754f8d450576b883b3c2d2160b16f71809290afc50cdef5aa550e46", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "289bcffb44e70fbbbbb76d16713b43ca572471bf807c9c1bce4fdbcec0fcd70c5455fadf5ab058edecc33efce6b02b414a156cc65402163a5d140a4bd73d897c", + "public_key": + "eac9895beea4fb2e9a285acd8a8be2a5317cfadf22f150417f2ee6ac4829c70e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "835f50667cc35007b6526b41ddf4cbfe5bf83c318736f7c65d672782a77268099a9d81e321ebd79cded238d058e68b4b235b5f35f1fafe9759ff6f55c680f1c4", + "public_key": + "d2b60713e5bf655e303f44b732566bdf78f431a1b6933acf80e569eab0a28967", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e3a2a1ef69a0c15637df4a631d93c2ce8dbb4a6a0a48ddcd981b9bf2d631800c9899e8a158ba4a209c44e9333dbb154cdcd0a6d3a3741b4df954696462b2d121", + "public_key": + "e6a1fbd6793b9c5f593893788cddd9466d11f1c2b023e5142c0dc8e351f3d054", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "47a52fe37269aa84121575d34bbb4db8eacf3123b21c5f5d6ad663a4fa8a31a9", + "private_key": + "880fb8250fc6c9d598edefbda2c077cfd5602ccd28a63d99356a020ac2452e0d6cd8ccb76d49e0eb44ec5d66337729977ff252d89f9df3355f9463b7e6ebb8b0", + "public_key": + "78e93cb09c4cfa9d7f367c4d34c628e6fec6bb438ed4c9e7cebee27340cc3563", + "child": [ + { + "private_key": + "358652c6ba1affdfd3f50c0e39e6cae663eddf25d88e455923539001121c07080626659963facb610a93730bdd5be0948a2ab8c9838f4d82d8e63275d98c7f51", + "public_key": + "c60cf5a5612159ee34cc43b04b66bef99e4dfd9585c98521548de42f6466ba7d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "810bb9d8b6248484501a9c84c54f909dbf6ff4de5cf1fef88f82380a347cfc03a64aba8f348ea9f6d838c197df12f410a5c0e54f6eb3b57827532081256a1a48", + "public_key": + "de261e18c24f866d2a80436c2b71c5740b608ab95b3ca8fba217aa4c06007e4e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "cee7b68928babcbf904bc8e8e60cdc199d2845e08167f51ef04e1084aae8610a70d3500d76e3e117452ff5ce26ed8f5f09610ba0fb13b5466cb1fa590da623a7", + "public_key": + "b42f22b5a29c24751701cb80e76f914963c900d9e708bbf7aaf207cd2d556109", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4ddb9fdb21091117b82889d61aa04c52ca98a3d9f9a4abc76002f7552257d4093c78b3b6df0ebb78f12451ddab41747539cc67309b1f038613669bcbaf4fef99", + "public_key": + "aabc4f5cb77e09f8c943a382873399d62d842d930b039da473bb286595a9425b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "09e80b534715e9914dd2a4dd6b175171fe7e29fe143dc51354a0410986c3a70c80bc2ae371de093a1d50db371d53d2be7484c00d2c4f9ac3a53c3201fb3bafdf", + "public_key": + "f4e90baf4a72cbe5ea36359e6efb6f985f73ce79737c143ea96f6c58767f5132", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "96cfb764291a5f2002739a577c5584a9b1f8880ddff498e4eb60b289a71ae2084ce000658b2e2080e0f840494da643b6f2242e51579eae42ca6b82a04654797e", + "public_key": + "827cd1d7160e5369b75ffaae350352969c4791d3e4e13d1ed6b401e79052500c", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8ecfc78b71fa84ffc960b75d89e2c98418932ea212f722f3086647b3251953085389fc0f2c92879ec89a1680b065140a867160c3f667a7922648f9761611396d", + "public_key": + "d28d4a50dbabb9e3251219bc58eb88295682b7f1ae0c241411aad1f156d9c95c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "5eac077d0625b8cf612088c67add6ffb1059d534c3f3e74dd6d489e894a76d4e", + "private_key": + "e1e753c759e2ce3589ee3e0e38ebe619c8ea3948827326a0a2c0f87dcaffea0fa127aa6904d42492aded4422dd96cda9ed2876e95d2d46db680e976bb870b905", + "public_key": + "6a334d076b7dab872168932d239d0d24e8e5019e97eced192d27e740e6517210", + "child": [ + { + "private_key": + "b3e621bd03c545bd2f635a1002b870cf9d36e753f92a24494093e791f302b70dacfe4f3f6eb61d14ef68f491a026060ead99d61bea57aef5c9e9da52b407eedb", + "public_key": + "faf526a4138935f6590dc87bcb8d969f14363cd38e8dd278af6ffb7e72190f29", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "09e5759d4b4ae4bcc74f252f49795c17e5e735dba56a801d050ee5e98dbdbb003f4188a296f5a340f7028ce60ac8d8897a7b6bc02f7e50e259e0a34c4c922a45", + "public_key": + "fc157df9c83961867a69b283a8c8e0f190c86dc7005a2d19dee246cab2151232", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f14a45f8d224d24a26ff9fdc4f76427c6ebf951b6adb4c49aa192618e0789909bb0c2b939a018b78cf4fda049865ab7bb7397cc1e34742c3ce53f2d9163cf22d", + "public_key": + "64b719bc540250b38213fbdf2b22ca1825e24dd8943e351fe79a0ccde72b9632", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b7af225d38d5688ded3c0e73625a096a45c3130a2950a46b33bb948264fe240a3945490b592faed43a83171d898ff52ed1f44ee75496897f47b6d61969d9bb51", + "public_key": + "5afaa3a5c91e074462d1586ff9d45ccc7aaa6a32c21bc5f61433c5fd469f5c38", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "eeedaa809bd72a38d1e9f1bfcb413af4a8a7cc3b96082dd62543389dc20fbb014e1d8070a089d197f6758286ca49b58de5223f14f5f2788e6b80d4b8a5b22699", + "public_key": + "a2cf9db2140a61e9e75d8f3f307b316f484b5cfcfcc43c4c38d84f6fec82bf5a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "6e8b69dfbe9dc55a401f502d5f024a7d72bc1939f3a82f6646fcbc313c1f5f0a7176824fbdc2a885d6d468077fdf2b3e5a58266a2bdf24f3166e27bae7b87bde", + "public_key": + "1263708bf27d9dd05407a7a181b1cf353b0f9c50e261eed369f57230e733123c", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9be891a7ab515810033c7686ebff7c961d32effb1aeeb6cd74fad3300ce33f005b12b24c106226baf5e60c31df63e6d693925276569f2fbdcd0ce8663a6d9a31", + "public_key": + "6aa3acf583432ba9b74368b13fd39ea46a0156f27040251bffa115dd488a2b45", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "ede46af0f7a18bd8f410d100b0012e387cc5df1abc5c81d2dff2e2ea5c897467", + "private_key": + "33a1045bfe0030b88f81db4530b9d3ae94358d35a1ff17ac1caa3954efcd1c0b407aea1a7cdee73c94ec18314e3db03e206fd2dc20d9ef689c189aff71efe97a", + "public_key": + "decbadebe97d96f025b3d49ebdca329230d2f80ab6ddebdfdda970f0e9a73410", + "child": [ + { + "private_key": + "19131f5be006fa32690a72ae21bfebb8e6389ccfeb37ffa1ff93a09719c33b084533afe4cd36fb6e9def3570fe08423ded0211fc0d20bd64f485f56e4322103c", + "public_key": + "fe7a8ffb6aa23d49af04e3494deec8d36ad0138681a8340700e2976712078f58", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d17999e08849448fe327c239a5c26701fe8c4264fa934c87132d26eb4b88f70e927c1f5c673ca06f77966430e251ee5fc33cc638894a91435e4b19a4c5462030", + "public_key": + "d695bda3a420e3058376040b6a70e6070892eaf6161573558ca118d3dc98fe52", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "eb1fbf5180cb2a33c7eadb5d1aac0579dbb4de82a31821d067f3b8cb85f8f109331f342073f317323d81a9e7d8604dc828f736ad0ce736b1875709e04405fc8d", + "public_key": + "3ea45fe33d93475ca9ba234c3dc7a819b7d68f425256920ee51444b46875ff2c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "eb7d44e7226e219496d85603f9f496134081dd552a83ec82f868f46a40fc0608506a2988120e45317f318cdd56ce4073abd5124488c538e96ab065231ba06108", + "public_key": + "56639e5427f95678601c6fcd53222fd2b89fc8e92dc0bac4c6cdd48c10a05269", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "250dcf47674d36f6e8f3de05b958f207f688f539cd498d997815f9bd0a5cef09ceb86341d6ac8c9e4800f235e553c9712203cb1608bb943b1d3676004ae604d9", + "public_key": + "4836a1ef4ced36318cc042863dd8e0d0f83436ecbac5d80d3feecbb503824d63", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f5551b13135b73ca8bd06bbc3a39164ce07364f220d6a88a6ea0ff558b5dd60efa72c88265dfff9f871aa3a5ef0f53a483437deb07f5659597344500eb8593ef", + "public_key": + "e8abdb5852bcf1311c793ca2bbfcd73c32cf3f641e7fc92b10f49764a66f8e54", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f3d3cd0aba43b915626aab94f93cfa0171580a8f2f8e4cd6701b25545072cc0b57158c3b0b23b2110c8d6e6b4ece596bfa75f07300624c0d6b5f39be5adb6e10", + "public_key": + "7e9fb2b09035a5f7344acb08ca9d73db21cb4643376f07202407434107589e1c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "9d729ac5538111805ef1ddefe4234c2372a85788583fb39f5147f8e2b178cf97", + "private_key": + "d0dc8f91417c483060da063658126c6fe7e5c9022bf8b7ad2625b3f424e98f0f8c04d738a432798954230a7bc8943198913f9e4780a5b3eac4ef9a523f7fc14c", + "public_key": + "ac763653be90a61bdc98d1bd458a4ae7f0dcf596f46445130a866c0e4cb99f2a", + "child": [ + { + "private_key": + "daf802a2bfabca73cba01911cc0f3f3008789dcdb98362385572c238f834780aeb1ea369cac0c05b89aa3b3c1a62231c46a9ca4c2ba3c576cd6847b6a423e917", + "public_key": + "8e3048d795004b0287e6eb9368c7d4b106c28b963aeefaf0e080eb25edef8e40", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "017ea45d04152b6a1b03012f949d5c55c74b4fad9d00678081614a3166e39c09b6bcc261cd1b777c37ba294f721af9b76c0d1728a9d27017330c25a3f64db5b8", + "public_key": + "7470a4031f6972870a2ef3f73c950e839ccc63730ff4d028d675f3fdf2db2810", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e71a73a96041b68fa2c0a047e866f365ee85e9f7757d3239a19f8772c65d8b086939aa7848f010b1c04a0e4fcfb2ffa82e7fe9d998b649aab52d504f8aeb856b", + "public_key": + "c280433c5cd227d1ff3aa2801911b5d5520501504961be263c616b1b5c0a3d47", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "45e156c60c1d031ef45833873beb1e62f8fb0c297ad6d8e2eabbc778c575aa0b5bdf78dca91543a9a53289254c1556e414cfd4892432d8eb7c4d77173fc2036f", + "public_key": + "6a3f16baddf8968b1c52858ebfecd0a36062785360e09be8c2025a4b7568334f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "cf5c482e5643eb8ef2c5ce0aaebe37f276efa4754a116a753201cb4a01578403e1ebd60c1729c06c96a709690be86b96b9bc5a776ab9208fd8221ebb3a59c452", + "public_key": + "ee05a1d9cd99390c0e830879d3ff8c6a4bd2dae13bd032466c77c47a5ff3f97b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "48341804f19224c479f2dde9bc4eab2f74ab21bee7c44cce500fa721ab6b5a0ef8281ec2e12647e342ae334fdec85b7efb7cd13b0213820751392995397966d3", + "public_key": + "b49cbef4ceddb0109794812cfcb048fc3c1ddedd41e762ffeb35a5241b6b2c56", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "cde0e00b495871f5cedc2ad971e47e562ce0aeb59e8385489ab8a986e6ec8a0f98dd86a479c273d53bc2863c429849e6d606939d112cda024054b4a79697f98f", + "public_key": + "081c82fe20b168858c22045611c613cee974aeb8fdfac7401564a1d9c028e034", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "821b99e5ee5158825a8edab810e4285a92808643be85a55df6c808dd21230350", + "private_key": + "42b578bc07362462dca17fc3408b8115b51a3d1aa98a6a3601ffc82335884a0927d73f8de936f7af196589d1847abb38d6a3f26693f0a9a738fb8be23de2f86e", + "public_key": + "785eda7dcf12ad0e9d7361ada3522615783181f2886840bd9331ddcb70625d6e", + "child": [ + { + "private_key": + "b9b586d96575b76c2220846933019d4bad57f518a6b36e59b8c74f702b5fff0a94f44ae63649e9f73c36a28cddc10447906706012f88ffa85e098b24e06078f3", + "public_key": + "b22979deb5fe1056d6de88a819188c609f90f33a20214813d7434b9c1a5da27c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c1be097a9622622b7e0aa534a9bc237c70b6ed568cab3e07ee7bdffdb45a1209c36040dd73984c216fd94c1e7feaf85d1a1065a5c274e565d75cd6a491ed7b1a", + "public_key": + "3e9796f011eabe391d103f5601f83e712b628ed6d23b2f113a4239f3af903b07", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f3a1af04b1501765888897ed53c7a3164f9efb709e4e8ac55952d1ecb5f27c0d3b08502f307ba542bc57164ff94d862ba42e4a9d4083d8d6975772b38345449b", + "public_key": + "6ad6d454361b4656a46368d031acc1bf1f5cec4745ef1cf1d5b9422775b4be5d", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d077d83ac7881872d3951c5ac1928d61b4760d19ce0f032fa1422d1797b0bd09b18b5a9552eeb21580d477b7e4087af8c989b3a7acf8bab141a05d7f153c4044", + "public_key": + "605b5c582439dfdffbb3da14e4cbfcf8d2680644b657460c35a618e6266fa03f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0b8502c3d65db898dccbae45fa1f3b0a0920ea48ed62e3f90ebe5139c1c6120a6dfbfd1b6e1cc1ea3ddfada7e544e583a2dbd02ecb18b71ae21d56af614ee50d", + "public_key": + "42f588b3613a4aafdadc5d5551a0eec1959f2fa760a6b57333f063cbb0af9846", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "31a9dfaa6840eaee4c151dba825d2ae5e77c5d90c38da808e0bd2a8abc8e330d41a6065b6987470767895e40d37e2a02f26f1526604b41da791aba53d5205ad7", + "public_key": + "aaaec1d81fb597c9bd84f4ee313723bbb932518b3a6790e29f24fb44a3f2f14e", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6b2c6b4c7a43b22010ded1441de8d73f9c4b04f072434bfe926bcd1c5b68c10d56696dc2337b3820fb90732ae9c70a3d481f76b1eff1b8d9cb25394dd277975d", + "public_key": + "587972aa9869a78497b6a1f1be3ef1eaa64bebacded12999259c5a68125e1b46", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e2e60ad117334beedbc5b2a4e5044015bf5b83ef9701f63108ba89a06a00f46b", + "private_key": + "2d9a836f22f88df95abd0eb736345fdd474d0d858f3d531f9c9351e075532a0f69da65ffb6b229377a2247a7de4578747a559558d8833b4895c167141754c0cd", + "public_key": + "7a30b1f773d038cfc7e413cadc00a1320e65eb7b3fb9e586b6a9327e44460542", + "child": [ + { + "private_key": + "a09c465733f1065d724928aaeb1b2eeece7f1b338a21e4c6cac24584da98350d016889f7754d5a7efc665583a5d3a36db4364cd8b9bbaa6e95f8374861a8c77e", + "public_key": + "e87a2c300b0e080104d4735a3489d773d3689de17dab53e6e1f0917012ef8651", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "22a078e4083089691189527f062d3f36d46cedd4253c3ff34af614b7ecc891034f4cb8bcee62a6e93ae98cca918bc1b535d0a233a93dab63ba37709f8834e651", + "public_key": + "3a9a226c27a0a4b6ee722a639316ef4be1b773e8b6155ee30bd74c508f950d3c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f32b3fe456998a5ba86b291443e41232dde35a8cb5e33d8af398bf32d53ed50f4a0871629cdceb5f73b7b68483972bc1a071c9536298f8b96988015cc07dd785", + "public_key": + "ac741dfb9224f6c3275e00e32e78b82baf09bed46c830951b59d73eb3d70c85e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4ac2271a5fa8486b08368cb692d6c8bfb13e69d07f8ec6bef3f63ec770aac10dc0ae754b45daeebfca38b930cb3c342a74371e521b491c2d5a9cbd2a4d0f2bca", + "public_key": + "b0f55912cab40fc3638e24c6fe573b3c0276d313efbd78cedc72aecc6ad61f4f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0a58265178a1bb3417593374e2859c0e979fee95ce22732ec9defbeb06353802ffaed1a11a3ddeecb77cfea2c68f66ce25abbfeccb2df5895fcb63399350c48c", + "public_key": + "2472ac031d6bccc00023f7010c9076a1ae4ba3584e5f53a47d940d7fa3eddc11", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "983be6f2e62064140aeadf04a5e2c3bab09ed73a847895b60483036f1d0eb50a4a9f8bc22b092963c204b842bbdd73b71e974eb6f1f4d61fb9ef63a1f885a879", + "public_key": + "046f907c026378b042cf266192babd2b1060122691b618e71ec549e5836a6061", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c8efdfe43b02a62444b455f008dde8b9a01bc25db5ccf224cc0b59957147d40dd779f48bce9326d8a829f1299d233bbba26c7b3a9a0a5fea0fb8a069b89be7a5", + "public_key": + "125475031ab05bfec9f6f36b6095e03b5d019e959a63af5f98ec907a0a5b6d5a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c27e40379554d1ee94f04801aae9a37da0f84b258a31bfb0a38cce804ff33406", + "private_key": + "e337b97c6f0c36e8daca6f24f4e029822a83a31695b2b95d1bbc0f6a760a8a0a707730ebe9edec0e0bd77b537a4c52f204cd48647f9899315fa05b8186969557", + "public_key": + "c4986dc8e21c3f9bdaf937c136e1590e9b26aabd41dbe425e38ea52053459175", + "child": [ + { + "private_key": + "05575e4d1bb94fdcf0c603241e3eb433cb7aa19411617d7fee4abeccf0365a0a6bda83cf9038472305e0dc873246f3a1c20afcf0630cbce4feed3fba65212787", + "public_key": + "cabb086a298c49f583ea1dbb2f6c3c4e4b8ca2c316c9ad5e415a7add434b627f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "46d0aa5e6843f57ef9947e0e7a171bd7a9b80b8cb0206bc6c82baea4eb95c20184b811d1e5510244ef67065294883a6c97185ea05c6e1069085d4fe8f700aa43", + "public_key": + "c468621502ea2de9c86095f14f70e415d801b5d4cc29b260b81382403adf9e35", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "558f2d8817b4cb94c3a7787ea1a9a9fa4672bcc99eaa31ee41d144a5ac345d0efa55bf0ee5d3d1d41fe7d661a8312f0e3324ff5c07839f778b03b8bbbae1891f", + "public_key": + "14f90efb985ca788a08577e5a10aeb804c2830354979412ac65c8508eacc610c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "75b1ce50823861ab7b17bbf0cf0abf4af66f79312a7e9823112eef2f30afdd0a990657a8d4b26053cbdbd1cf9cf05083c6c42fd3f102f2746410fa20fc0ef3e3", + "public_key": + "4abf75edd094863c2e7f231ab571d4c35405c314303a6461b177c5bda5f46113", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e15e0faf5031baf87c5a8b9d5a463dd2f923c238d122c600eb89d5159ae2c10e9aa9c81c9cd608086f48ba989afdc9c11d138e4f0c464b16359bf65c3ee2e436", + "public_key": + "d030cab368878322e13c6e244f4430b4f4270b550b7654926c1bfccb2cc52d7a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fb74aaa86a3adb7ef74de2308fd42875e76ae1e6d82990a7991ac19153477a080bde8ffbf9feba490bfa6333951c428a7a4fb3a192bc43e789fab9862432cd69", + "public_key": + "64cad815f88f1ee5f1339e4fee532448d50a8ae896a96a3241483ddd4834b375", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3ad04b72481a85d0c4a27f4c9734846de9683c335614832c473e324a5aa523088eb75fa64d2a50cbf46c605ecde71d39500e402756265451b35d508f4637f12a", + "public_key": + "2a019eeb364a5f0dbf2a449273d086a9e1c5ef4eddedfc5301f6283bb311bf08", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2a1333be68fcb3ace415f9c3a5ec8aa108d3eb432b79029529ffb3b3e09bc6cb", + "private_key": + "3dfd4d845d790b9ae8cd37f3847c064a949a2b4bb38311179990db4438afb30d83b544f8164b2a017a559f2e2d3c173540e4676deabe37df7a23e82280018bc2", + "public_key": + "38009ce6a2258e1c47e0a10146cbd211d047720d0dee515e96457d8168457a54", + "child": [ + { + "private_key": + "fba33afb63fc7cf0b7268d3770174ca17759c9ad9a59d49212566840c9869a0d85172e223c46ee72dc5fe7a336f982813d3f8fc93205b3a59f0b81dcd9264fa3", + "public_key": + "c408df70d7d3a29e76deba785fb39c655e6b8f18c919eac531308285661b744a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7094fb70e0352528b5249d9f301f5b6a1c251e85b6896f31d73112f574875a02c3218d6b9b6eeca5185e95d7aed850b2a198437bbd7539228309cc8e7fdc8b84", + "public_key": + "2e09119e88f4948b5e2a400af93e8c3b4bcbf1a3401f14657560d098b1dda10d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0c1a85a1c61c624359f15d58849dc17a401d00e8a67bc33ed95fbe8dbee6980a7238ae074ad7a56613d1d91756afbf5c970f6df2a4396789675fc800d63751bd", + "public_key": + "36070c13b3648b444acceecdce4f2f675f6b138fa242dd515caa66769e67c95f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "903a2399641d4a7377313ede5b48fb0ccdc6429209d8aa1d789fa7c270eacc0e75ec172b76cc74477b0ca2e738a8a1c93381ef410c0e40f1e686322e9b9c2d5c", + "public_key": + "7ac074def96561e0ec83baaf05b0adca62401fc0baec52e8e0f2c3c3cd217154", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c76ebf7efe7a220cd241638913311b273f9287676ea040d6e3ad034bb75c150302ccdaf8884a813ff90a8aa0d9f377edacd65a3446b4ab55e7f7e8e0f9cb9ceb", + "public_key": + "9028d6836e96eac1cf46e65db2576fe714f199089c9e246321d4b5034690fe0e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8bcaa4e4c84a38b26801d7faae3cb6b118d6ffccabe40696c7a7648eee5774097af89d7559aa62263992e4388996228a8826c1701b12f54794d30c0e2c751e17", + "public_key": + "a077f96190d8a27efcfe5d01c4e185c4fa90493a58fd5c0c367d1d6d2e531127", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a0a86d82431f7925448ad8e80ea622bf7d94445f67836cba231a9e8bdd3b8f050708ff6322f1b1d00603122dcfff9366a438204e6cabbccd437ef120760f2f0f", + "public_key": + "8261410bb0cf9ccab94e6a9e2e817495f96c873645acc54c536cd5a01856ce0c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "ee842499ce918ba4914eef903e6719b3e02b01efead13b18795b67f523f8ffa2", + "private_key": + "2127b2e208651ef432ac387b03df5b77173a706a63a538d4a1e80de3f0b57a0c571d46a54ec50f0f379739bd716f0e3915c725afe772d0f9f5baaab7afc55427", + "public_key": + "4ab38a784045ed6a9b35eafc6eb072f448ebe42e13da72108efde28c62ca7231", + "child": [ + { + "private_key": + "08d4ba7ef10f10b9575fefc65f181870bf12e9e85e7d72e21c4c9f11a8b8ab0feef8c336be41871aa6f584c23706fc379925aa22e21a9c642e8b8743d7858746", + "public_key": + "5ae5499b91594b2cd86db83fdecfc5250bfeed05c3773d17c46fd3d60a517749", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "67294d8873786457fdf839208ecff3b785e51dbb97bcdc71d555c4da5d9bbf02a5488d72235954d3b99295d85b387708d1ff8d930d89038d35cee4e936a8e517", + "public_key": + "66e4156c03767694474bbd28878a582f3bb9482d68ed9c3420d2fd70c8444258", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "3eb4e51e63528f58ee39cd9a4c1b36635ed2e156d7922550ef211db9f3192e09e26570abb611841ce91e7f41a7e29f6a74e7f2f18fcd3ef36edfbe008755004b", + "public_key": + "d02b15b72a288eacc3aaf13cfc801b72a252f9f9ef8c726a1ec1f54e1c276221", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3b52af5f35f53523efeb74b1008d600c152671d8bc872cc0aa6359dfed55860c40eef9332ed6e6781719bdb6f17e89b59220b204339aaf945b3a9fafcae1a320", + "public_key": + "8c160e90ca3e730a7969502fbba898a851883e4f511c22965516bda8e44e8357", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "681bfc70c39c5c690a4950cb8f3ebe78a85f41eacc818ce45be55f0ec3f2750c33b8173274b9c25ac8a8d224477ed2cbb59db78c4d5d196faf9a2538d6d451a2", + "public_key": + "b6c8c0c82b1688ab146cdd34b3e1d2a3494916662202c3cea59fbc592ba43046", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "14f80ecd8568d22a3ada81f07563dc605e6571604a61e655d386ce3a641a5c0c7b8acac1f11d088c24838c6f38286d5a032051c052e344d3e82f6798a3bfd87e", + "public_key": + "fc8d69b9977d85ba5f839501d588d347acb381c8de53d7d094b17ea045f2d270", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ece2c7131a59eaf9bedccf7668a853ed3a8e6aba938c4277238938726e65a206ab343269a80c353b70485c2afa45d462180cff9c7145cfdab259b5a3c1248541", + "public_key": + "5e607317805fc2d7244a0a424d52fa8898b15b936ccda86df64bbd379e595459", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3f5633e6a680708d782bae277e8ddef542b4b141a0ecc31c6acd53399d77ac30", + "private_key": + "0474ac826a5084fe5304fc6f28db8ef7eaa0abfd78b1eef8a8d838fdebf5100ae6eb78d8dcdb9caceab5cda9913f32001f5cad88868648e2fd085c35f52db56d", + "public_key": + "f41bb6fc9a601a8d04fe5fcf400f28cbee3e138c3bb47ef136e3662f71d61a77", + "child": [ + { + "private_key": + "a806c847aef6df14a3d42296748e4ba1b4d10d556370ff178a757699d4521d090f5e169e735eeddcb109cfe33111bb856d7596ae090d61b2e7e367c7f240d8c3", + "public_key": + "d8b47bcb11e2d8e35e4d245b3d44dca958757f5506832bf8397d01ce38469f61", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e17dc3fe36e3e0c61cf5c63c02da4907c7ec99162595daa4fad198f90c9b780aa63faf6c25ce15da6afa4559994b079828e78264e59611e0d49f1a28e7102e4c", + "public_key": + "2a214f6868e06055b0553ed5967eb28c3df0cebd423370a8cef72755bfbf5739", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "61bd18c73b31100ef1f8e3d2e08605fea1ebacb768fad0c21fb82b1496d02e0b892f409b682b0b84320d3f27a2435b58d2174463fe12c87a7ccbc84b7bf8302f", + "public_key": + "e0ac34e288d40f21ae1598f794d0c943d7d7460f847ba456bca2ae55ed56da04", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7bf892bfa8dc49b8224d5bc1bf9dbf715be7eb8431e9ab097b2cfa05719b820b20ffb6cd51e309eb7e388aa86456c13d29834c0e080f5265e63ac187c9e19159", + "public_key": + "667b2e3160c18a5d46dd9c0986bdb13405a586d6d64ee5d31e4554900b94cb2f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ea5cf4ff9f3bd9eef39541fc367be150b7c515aea6f8128e17e0a958ee040b0d95f0b52aa3534b4c61cc3e1b87d0a35a33ed2ed7f66a0f13d78506a071d04995", + "public_key": + "bcb353ef26fa7992cab67be62a9305ce852b7334495cac4214bde5c6cf2b6432", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e1880953f7cd8cf017b72ae7d02877cbe3e96854a486f0102331aa7028ebbd0db8902b83535bf700c8e05be647ece66410d10f8ce67f1aabbf2fefa634d17978", + "public_key": + "d29ca743515646f7447196d530988177fb9005f18c822359e22474952bc8010d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "60fc95aa4f4a2bd131b64549bb3edf3f2430112afad91923a3d9bd6eb3645202fca662c78e73847d8c6b9a83661553afafc0c3f613a3664470d3f1112e6e2e28", + "public_key": + "64b6eb8d42e4c2a228293cd93403b1fa86f0ff9167393b61555c792a4d582454", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "dd952612da1f0b23aa0419f3d31f7614fc1e995385b376c8ce46aa8f5eefa6a6", + "private_key": + "e6dee1cbb3e3405f7fe5400654a6d9673e8a511ee2bfbf952709cee39b1be20d78827a2d98b7a166bc75681d2b704584359e9ec0c384d08973184a8460bcd252", + "public_key": + "96fb0755574948952357cebfa143fcb82cb3863eee91291cbd58fa75701ed750", + "child": [ + { + "private_key": + "480458cc1663f300423c266c724f300307ec85208f7324f886228679e8464809603858760491a0f50e5ea8c851e382ac0312bd3d1fa6ade5112d67ba62f3f78f", + "public_key": + "6c471e22979e3aafabb239f5695b8413cd705f0edefb2cfe5bbaa02a2fed2574", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6f4eae9208c777c0120c8eb3c0682ff6e4b0401a2a82062eeb852a88abcaeb0440e3538c1f2fb1620efa319aabc71c8badab0cc0e9095c392aaeca6296014668", + "public_key": + "08797b5883342147c8163129cb469d5d79e47ebbdc0e8a49adf23595472ffa7b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "55254fa1a4491bae3b9bef1de03671a3f7f809a465e232abf3f383a792afde0ff3dbb82e3f40e0ea8c5adcdc919ebd2537961ed76d3768144946d9c2bf8ce71f", + "public_key": + "bc715499f16e16864351383591cfab2842ea753df895df42d2a257c1da6b4853", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "89e8c88731f0dfb3c7003c23a8f18bc759ad1243f84e4561eff90dd3de34b40af4e578ab78a3c2cd6353955e61f1b71b1a2f46d0a3d59b73a5036798d53c7613", + "public_key": + "0e09bd69e3266d402792499cf1c8501bebabfe2c1e7b884cfbb54b432e3bb059", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "979abbf5a95e72af76cfed9dbd4cdb9f217be53b48a7a01c5eaed3362a60e9009c7713ca7c2d5461dd09b4abe802952600f369ab7c9c94e5006278d82b0ec1ef", + "public_key": + "cacc80a125c9c5960f16ca9aba55034c8ed707a20d7904919353bf4abae95820", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fc07f8abef6036e7872c640bd754c0fd0ea24d7d21e970a34df54d634b083f0a5f4ff77974e049d2f930360eea01b7e7918ea7e0b8b712c3beefa6feaff220b1", + "public_key": + "2e15fb62e75f92f618d20f9dfdfb50737c7f8c0143a88cca341e9b6ad25bf125", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0c7e497511d221e6fb0f6959fb2af42ee6c163e83a4280917f55a5b824c6ef0cc55e3d3ef87a7edb592f49ffa93c36f9401958c6d92a0f093951ee70f3167e18", + "public_key": + "cc9c948406a2aec984ceee6b2ba27129fc3e9a019c8eed56041f3c9e11bf4a65", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d57919976e9cf2101e4fbd44fd05ad3747e7fd8b1e648d3f24064443ed0e0a5c", + "private_key": + "7e0c3db171bfb2d3e3afacb7228d6ddce33c498e385fb8ed692865519861fc0c1bf6a39427e13a6b758afdb9493d11d5a648f36a1b068c5d521d4eec472bf1cf", + "public_key": + "c26ff65ff02903c50ef6a87121ce4c1d9050ba0e320b61cb6f0be714caac8f57", + "child": [ + { + "private_key": + "4ab2bdc4e150524eb6baff6163997f415296305bcf5865d88686217fc7e8e10891ca1dbf0980173cdb129985a284ad037679eda9b190eac018a2d71727c502e1", + "public_key": + "287cb8d640b60bd616f16bdbf85106b01659631b9001f4a618cf22c53d682a14", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "fc894bc59287922ac2308931cf0fea6cad054f903d6bec7c4a81b529c370c70b8d922d94abedf97fd2710e2633ac198951c9c770d25a0e7265cbc3fa0d642af6", + "public_key": + "78e6b44b3bd32a3c33b34d377e5867136a863c98b8fa24ab634931fb3e8c2951", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "4743f81c49b71baba107c173f489c81660aa2a03285585b1880b58792a29ec0ff11f577aed1baabcdd9182fad2ace8ca82e85d3de34f3f5bf63d0975fdb06388", + "public_key": + "16e19cee0ed806eb2c56e5714b1f84af17c899ffd76bfb35bcdee6cc28079a04", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "95c96189bb71f9beccd3593f21ed55f8e7ff5d168c09f80d67dabd9c3203a70a94220a13e4e18127ec907b9d446707265fe384a893d9cd8b56b3292667c07f47", + "public_key": + "82f8b23f42d11c8f23a27f76b4c6bca1edc9b403fda213b8a81cd936f5a0061b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ce2e172b3825e37ffa80a9ddf777eef670d1f4403e1651d0480b7ddd11e1cf052b67a19e3bd392a9395bbd0bd0ab5846ca5bb63336a9f7f53da4dcbdf1597181", + "public_key": + "accf2dc9c2e3509561708a133f0110c0a28fb5af2ecf928c4c7f36e24b63873b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "08e2054763bb217332a45c50a1e78548add2bc557c7675bbefdc46c661531a094e5617f568788aea847759924385b1f6e74a4ab1790f0a051e5e4e201b1a0f27", + "public_key": + "1a63f1472d63c112b103f949933604d34ae71ef4f054b4593db0c4b18211e160", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "610fcac7a768f31e83ee82eb4329774597792adcfd11a7ccfc09dfe581c515039223a3cdb78f7da9cc3a367c55135dd4ef78edccb66ab375985320bbd86156f9", + "public_key": + "743130082c9814c33c82e75c446735cfa61e081ff1972d327df70c6405bc7906", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f8584248335f955ffc14e0050bda526b295c7225d8bd87d800eb3d1e59866952", + "private_key": + "fd0fde4453d7a2c02b52bb9e160cd08222e083d2f5fa12ed7be1cb42e5c8840828d1fe0be6ae0897aa19fd2f25aba82c75c76712668ce559558403793b8964aa", + "public_key": + "26bc9a1b88a8c7b5192baa46cefc9ba9968e598984a5b612e762cc5e388a652c", + "child": [ + { + "private_key": + "c642d89e79caccd5056c921c6fb4c0ac366ecd8ec7d368d80fdb14288aecb20f77a1d6e9d5a0e350b0a589acb9d339c76ac688fdd5bc477136696be5fd66fabd", + "public_key": + "9a3024dade15d443055b0fb1c9cfe8567b8e1caa2fa6628c32da1f51c83b2064", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "12445c680a3616c65d4f3d256f6a064dac6160c78af3f980c3d166f36cfdb703782b6bb3bf0c9ed7d01ffd0edfc5b0f8d3db5e6a841f91dd053de2425a33a1ad", + "public_key": + "5420706c8703cf00b3b40c9eb0e0379d0e610d48e8a00b5608369c652fb7ea4b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "41cdfe7e42ae1e25675ab15625afbd68047610d699652678c1cf968b7dbf710bbee1078c93183a58ef2134bbd960d1ff32feb3cd168efc228f497ac4ecb0db9b", + "public_key": + "4e275b2769d3520c0ee51b1c4f21fb011f68f3270a46db7c3bdd30fe025b2f13", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0dd505f637f6cf6d8ec1f3a33524ae7fc01b33eb31f598000d19133421b8120fb1a6c59d064571c1121789fb9d69e82a2ef523d0b058b83acc0d72a34a40b621", + "public_key": + "c0b683da4dce0282418e385119ab3d7676c61d93990e926e8d56e07aac63597e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "99b7665bf800fb5376ccaace87c59868ff60cae88c67c2270aefacb8017e2c08e44bef4b79c223ddff18aedcaa48b221cb2f6013a8a62c5b95faba3584af8ffc", + "public_key": + "acc4df57d8304241f6970d01b5267d5656c58c000d91c0029e9305764db9c627", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "dbb42456b11d01b40cbd459786448c6d9659b63aaf9b2735ea896e67d3e9eb0996ec83e54aeb08b076d1d700b47d1defbbbc00d8aa7bea2cf64b4fea83466e75", + "public_key": + "92c2ef3b8ee12cd6c8bb1d5d48a77a460f1f11d93b9e215c76191be1b4717e6f", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e715e96a1e7a260f1e59f72b892a00562f3f5cc75ceaa4051e81e62284cfb8005da63388a24f781c8f5a956ba6dc9be38bbf3000a8d2349203ebca8cd160b3f0", + "public_key": + "3e00109cb4ae3a03c0a0aeadb45ca848b920c17a73618600f1773cbc8b5ef64c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + } +]; diff --git a/example/lib/test/schnorrkel/key_test_vector.dart b/example/lib/test/schnorrkel/key_test_vector.dart new file mode 100644 index 0000000..f84d283 --- /dev/null +++ b/example/lib/test/schnorrkel/key_test_vector.dart @@ -0,0 +1,38 @@ +final List> keyTestVector = [ + { + "mini_secret": + "AA4A72800C9E6431B0911C05E560F229E0A66C8449EE72489499BDB284C7C020", + "ed_secret": + "B3BD7841283E8D340CDCB4F88849B3AF3E75CBFA8FFF20BD373E9ADB393AF10F8980D99E1356AF7A1964AE3CFFEFA3DEE859524FC7C2AACDACD04DA61F14F204", + "ed_public": + "F0DB07751C5D8603F3DA189E67703CC88C9D796AB5F8F3E39B3774DC8344EB08", + "uniform_secret": + "A14145563363569D909F9A0DBDF26C923B9F2C3F5958D4120486709147BF260C29DB003EFED84974EB9723CDC23F53B227CD54F3CADA7A336E041BCC056FD02E", + "uniform_public": + "3A536D17717C75759FCED7E1EA5FE6616CD3985747635DCA574CD7EB8FFD084B" + }, + { + "mini_secret": + "C6E3301D8E6E04541DC19ED5CEA4532A4C8824432CB97DAA9467CB05A2D34518", + "ed_secret": + "CBA0D0CD5212F2176B0B794B4F4C14A89D8C9AA879612241251C24722D6AE00E4E11227AFAF4F144AF99EE3BE244D3F9A4E5E19D63BABE68FC3E59E7307C1E14", + "ed_public": + "04764D8C8BFDB599A4C20217BC1E84539A7A46A2B965791D9064E4803D38E476", + "uniform_secret": + "7CDBA180A60145F208EB81A724CB346CAE6DD52CF6A01C6F72DAA060BBBDD508528937651EC4FE509D381C3BB99EE8D1A31D54BDF26F69415AAFC8639F44F346", + "uniform_public": + "2E04E494BCC688C6532B956D3F32A65717F4A5A740FA2189FDBA94186F039916" + }, + { + "mini_secret": + "BCD426702765A1FA4ECBAC15A89ACCD694379AE3E4A8F995DDFFABCBA6DB77DB", + "ed_secret": + "0D4771411C73D0C3F355FAA4E6CD1D40802E81B9792D87E0A716121CD1B0280B49BF863787FF5D27681642F3AC67C60A4B16C28BF7E9E0F4A1A0A8D058FE43EE", + "ed_public": + "92EC5148EA5E2343EBF86CDE764C824CD6E9203B7CF3A04CEC465043F7ADFC77", + "uniform_secret": + "D7E872FF3B594B5615A7775466EE0E741B53C3E65B89776D948120477B76CD04628BE7920BB9DE6674A4FE7C0E4F6FA973AC37D8F91C96200827F89DF6EF2640", + "uniform_public": + "A81650297678FB7D335A6CDFEC59CE6DBD12A111BCE0C4B5CD41D1B35EB0F12F" + } +]; diff --git a/example/lib/test/schnorrkel/schnorrkel_key_test.dart b/example/lib/test/schnorrkel/schnorrkel_key_test.dart new file mode 100644 index 0000000..5cc9780 --- /dev/null +++ b/example/lib/test/schnorrkel/schnorrkel_key_test.dart @@ -0,0 +1,22 @@ +// all keys generated from https://github.com/noot/schnorrkel/blob/f7551a43845ba65e8782a2c7d80439111eeda687/src/keys.rs#L983 + +import 'package:blockchain_utils/crypto/crypto/schnorrkel/keys/keys.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'key_test_vector.dart'; + +void schnoorKeyTest() { + for (final i in keyTestVector) { + final seed = BytesUtils.fromHexString(i["mini_secret"]); + final miniSecret = SchnorrkelMiniSecretKey.fromBytes(seed); + final edSecret = miniSecret.toSecretKey(ExpansionMode.ed25519); + assert(edSecret.toBytes().toHex().toUpperCase() == i["ed_secret"]); + assert( + edSecret.publicKey().toBytes().toHex().toUpperCase() == i["ed_public"]); + final uniSecret = miniSecret.toSecretKey(ExpansionMode.uniform); + assert(uniSecret.toBytes().toHex().toUpperCase() == i["uniform_secret"]); + assert(uniSecret.publicKey().toBytes().toHex().toUpperCase() == + i["uniform_public"]); + } +} diff --git a/example/lib/test/schnorrkel/sign_test.dart b/example/lib/test/schnorrkel/sign_test.dart new file mode 100644 index 0000000..283b654 --- /dev/null +++ b/example/lib/test/schnorrkel/sign_test.dart @@ -0,0 +1,38 @@ +import 'package:blockchain_utils/crypto/crypto/schnorrkel/keys/keys.dart'; +import 'package:blockchain_utils/crypto/crypto/schnorrkel/merlin/transcript.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'sign_test_vector.dart'; + +void testSchnoor() { + for (final i in signTestVector) { + final mini = + SchnorrkelMiniSecretKey.fromBytes(BytesUtils.fromHexString(i["seed"]!)); + final secretKey = mini.toSecretKey(); + final pubkey = secretKey.publicKey(); + + final message = BytesUtils.fromHexString(i["message"]!); + final signingScript = MerlinTranscript("SigningContext"); + signingScript.additionalData("".codeUnits, "substrate".codeUnits); + signingScript.additionalData("sign-bytes".codeUnits, message); + final sign = secretKey.sign( + signingScript, + + /// Be sure to use a secure random generator for nonce, + /// i provide nonce here only for validate signature. + /// + /// You can remove this line in production and the + /// method automatically generates a Random nonce by Fortuna `QuickCrypto.generateRandom` + nonceGenerator: (length) { + /// return QuickCrypto.generateRandom(length); + return BytesUtils.fromHexString(i["random_nonce"]!); + }, + ); + assert(sign.toBytes().toHex() == i["signature"]); + final verifyingScript = MerlinTranscript("SigningContext"); + verifyingScript.additionalData("".codeUnits, "substrate".codeUnits); + verifyingScript.additionalData("sign-bytes".codeUnits, message); + assert(pubkey.verify(sign, verifyingScript)); + } +} diff --git a/example/lib/test/schnorrkel/sign_test_vector.dart b/example/lib/test/schnorrkel/sign_test_vector.dart new file mode 100644 index 0000000..3fb0fed --- /dev/null +++ b/example/lib/test/schnorrkel/sign_test_vector.dart @@ -0,0 +1,38 @@ +final List> signTestVector = [ + { + "seed": "f965e415f4ebbbe56dd70dfbb393187d951fa7435786bf424849d31747aaf592", + "message": + "8b2a80303ae6e497ff14335f53a5da9578556cb6eaf4a34fae8c03cd2727410dbd53e0edbd0463ada309a1ebd2dafdd1cdce300de26af132a40dfbeecd175bb1", + "random_nonce": + "de7763ada5a6487401c987310aca7b8b78c147521b0cac94311c85801aaf3ae8991d28269e2dd725130d987875ef2d49a09afa866507429283b3cfb950c22fdf", + "signature": + "de24737b9a7a968a8c6b574e02344b33ef92b4eff00aa08ab6dffc692b845d0d023833532ac75f97afd7305cff824788cea9cd08380b4f44638ad9e576ee078c", + }, + { + "seed": "0f6a8381121cfec9c5824beefbb1acf92d26c6f80fb361aef781b07706d0b767", + "message": + "fb0333ecf5e26c10ee261286770d4a123e6c7d2fbfc8352e293bbe9e4989aa0e887ad82180992f3cee92b74505bd0a8b819d12c6e908a42e020dacdbafe65c82", + "random_nonce": + "332903ca2f5578821b9939d21b2744612dbe09d4cc7aba15c5eb4cf8b579f94c0ef739263d54fd76abc6f028d4aa8a567027c48eae4529afa710810c3cc13425", + "signature": + "f426e54dc15ae0b4d229e551e8ed6d89bf09b06e77a698b5dfccb70acabcbe2b4211529e2858f7e53297d38a2792f66ba17a42fc08077309399b05c8221b2087", + }, + { + "seed": "0edbd15b78655b2a7bd057f440102301f653d697f43a73fa6eab9d3f6706770c", + "message": + "a3d876f2bfb1b6094d479492abdb7292de70a78fb06d14202703978a08a866f1198dc6832e97481f194baabe085520bb2cd0a30f7fcb853b3f165aab8a71c84d", + "random_nonce": + "a7f92b36a7e145c21f7d8c8487f1745d41fc0025ee26ed75668a8999eb54f5db5ed5cd9efe7967be8c16c5c69220b2fb9855fd137d3b0202cb18685afa2f3028", + "signature": + "7288ad04fac2bdbdc4c5cd92893a6052256e7001c10e37fea8117b27a38c6840e3e4ab5f7d807e88850d57804e2a461745a86ae42fff3cd0d7d5e37b04133386", + }, + { + "seed": "240a57d092e47e589735713ab8b784f690d5e118d651115e6f506b27b0499ad6", + "message": + "31b93a772771eac8fb1311ae247e69633bfcb7c2dd694c7bf1e4a321a0e83e73c0888f243860c93f8c1ca6a1db89c02bb8b44e148e1691ed8c2239ebe499bf2a", + "random_nonce": + "f7fc272b97820d88f11d09b1546391de6ea163a123e84ccf56527519aab464c3708638f8465897c1533eea494baeec4ba003af7c8bda5748363c446b8420024b", + "signature": + "00a7bbdb1c64961c64520d17b2fb286f4c0a03b93cd17e4b5fa3380c0bffe1208e3f8a09eed267881cd34ec30ab3da543a050ed6f683975bd1310fa90ee29a80", + }, +]; diff --git a/example/lib/test/schnorrkel/vrf_test.dart b/example/lib/test/schnorrkel/vrf_test.dart new file mode 100644 index 0000000..afedf98 --- /dev/null +++ b/example/lib/test/schnorrkel/vrf_test.dart @@ -0,0 +1,57 @@ +import 'package:blockchain_utils/crypto/crypto/schnorrkel/keys/keys.dart'; +import 'package:blockchain_utils/crypto/crypto/schnorrkel/merlin/transcript.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'vrf_test_vector.dart' as vrf_test; + +void vrfSignTest() { + /// sign and verify + for (int i = 0; i < 5; i++) { + final rand = QuickCrypto.generateRandom(32); + final message = QuickCrypto.generateRandom(32); + final signingContext = QuickCrypto.generateRandom(32); + + final miniSecretKey = SchnorrkelMiniSecretKey.fromBytes(rand); + final secret = miniSecretKey.toSecretKey(); + final script = MerlinTranscript("SigningContext"); + script.additionalData("".codeUnits, signingContext); + script.additionalData("sign-bytes".codeUnits, message); + final vrfout = secret.vrfSign(script); + final VRFProof vrproof = vrfout.$2; + final verifyScript = MerlinTranscript("SigningContext"); + verifyScript.additionalData("".codeUnits, signingContext); + verifyScript.additionalData("sign-bytes".codeUnits, message); + assert( + secret.publicKey().vrfVerify(verifyScript, vrfout.$1.output, vrproof)); + } + + /// test vrf sign + /// https://github.com/noot/schnorrkel/blob/master/src/vrf.rs#L922 + for (final i in vrf_test.testVrfSign) { + final keyPair = + SchnorrkelKeypair.fromBytes(BytesUtils.fromHexString(i["keypair"])); + final script = MerlinTranscript("SigningContext"); + script.additionalData("".codeUnits, "yo!".codeUnits); + script.additionalData("sign-bytes".codeUnits, "meow".codeUnits); + final vrfout = keyPair.secretKey().vrfSign(script).$1; + + assert(vrfout.input.toHex().toUpperCase() == i["input"]); + assert(vrfout.output.toHex().toUpperCase() == i["output"]); + } + + /// test vrf verify + /// https://github.com/noot/schnorrkel/blob/master/src/vrf.rs#L922 + for (final i in vrf_test.testVector) { + final keyPair = + SchnorrkelKeypair.fromBytes(BytesUtils.fromHexString(i["keypair"])); + final public = keyPair.secretKey().publicKey(); + final output = BytesUtils.fromHexString(i["out"]); + final proof = VRFProof.fromBytes(BytesUtils.fromHexString(i["proof"])); + final script = MerlinTranscript("SigningContext"); + script.additionalData("".codeUnits, "yo!".codeUnits); + script.additionalData("sign-bytes".codeUnits, "meow".codeUnits); + final verify = public.vrfVerify(script, output, proof); + assert(verify); + } +} diff --git a/example/lib/test/schnorrkel/vrf_test_vector.dart b/example/lib/test/schnorrkel/vrf_test_vector.dart new file mode 100644 index 0000000..d2c1a26 --- /dev/null +++ b/example/lib/test/schnorrkel/vrf_test_vector.dart @@ -0,0 +1,45 @@ +/// all output,proof, and key pair generated from https://github.com/noot/schnorrkel/blob/master/src/vrf.rs#L922 +final List> testVector = [ + { + "keypair": + "4FA93036AE78C14F5F4CB9A7165E148E1AB0F822CC764BCBB0154E4EB0D3460EE65AF9160AD94448147534100E2065F7D93864A7B3D0794FFDA55941BE5CA9C668B21FB6F1300B2244F00B28C8B24B9606C96F765A9CF3FDE6F1C5ED0FEEAB35", + "out": "8CA5B18B0BBC47886E35693E9B9C59A49786ED29637F2C788C462ED0AAD15A1A", + "proof": + "F0732C1CBC3B8A5337348A9D37ECE7AE7050DE3C24834FB5FB54B69C8A88C90225684DE073D91434EE06B6DB7A0072534EB5284CD740D0B36FE094B7125C1000" + }, + { + "keypair": + "EC8F6DF338AD7D0E12996DB28E65B669E86979D5CF0C7AF2BCA5AC9ABA00AF07B2C69DA438D1E00B0B9B94F9A2DA2D4E8274B712A3A162DDE09E1F422299C7B4061CC8378E5D40B85E4BFE4736627920187D482E5A9F26CF968C8AFD258E0B09", + "out": "DA9C62FC3573607CA01C4D884208D859C870E75E043368F1F3B3A3FAFC71F209", + "proof": + "5E62CAF42E6CE321485C84291F04B87DFE7772E8A1DA7129F92493A027BE6809957587B3F455B185573286382FA00D186F9413957B5B47A5EFF7E410D4797909" + }, + { + "keypair": + "A1956BCD7852E1761F5C00C5FD2D9F50A7567A89F3F04EA540737C8DCB3DFC0C6E00DA7EBBD964680F7B76D127B29EFC2550B44CEE7E96DAB1BFCC1829CF81E260F889D5F0DA828E5815AC9C64F26CAD4D4D55978AAD8BC52FCE9784E82B2B32", + "out": "7E419AF7D956CA7174CB863D623FDF67855291DFE0533A3C7B0F789400FC464B", + "proof": + "F34B065698F5DF62B1979A80405F9066CE0520AC6DC5F98E673A519547352C06F5E0BC6D4AEB40E760EB76490CE5A4A16E83BA3547988CFF5869DD45601B3006" + } +]; + +final List> testVrfSign = [ + { + "keypair": + "6D12C8636F35DCBAE67071B8CE294EE214619B8A8F9E809BAB542E34124EB70776ADC5CB803AB0FCFB92218CEC55C24B680CA27E5E0B51232D93D0DF541B1D697EBE259744BF68E3F03EC097B16C8DC7ED999BCCDDFDC2F60B89504CFC6A1545", + "input": "9C322A828765E65E45A35CA2B04A2ECCF8D3EB724248A06A9023A74AB288557C", + "output": "5264F5813A29137A7509D04DC34211EC21553A53140767FA3027DA4F0C5A576E" + }, + { + "keypair": + "B4D8BE06B815183E6426B155712D811A05A3DD46F6A9EEC373CFC59813987300C932A243F80E903CF17B3BDD9A430DC176560A4DF25AA4E0DBF024440140024108EE55FA3FEB3D176CC5CED983D6746FCE58B06A85FD1880F863B3FC03CCFF3B", + "input": "2C2824591A031F57A67346FB8416A9ABBFC96E1DEEEEB204E5E7476E8FAB3512", + "output": "82B5E4CFB6F8B8A58B7166F091990DEB92F51AB71D585DA4D7F5849E9C891522" + }, + { + "keypair": + "C3AB1E030AE086B8A0261AA7956D525D6B3B5C614A1F28DAA44B9686BB8D0B0D2B96FA547D5001D9C703668AF24DAB7BA64445A478ECAE7C8DA40D9309FC3376B00CF71A0E8191B153E1C1E4EC8ECE2F9FEBC5CC5D3EF8D0A1A21BBF1F698F3C", + "input": "B2EC072DDF7A012DF61D2A2A9F830312B592153B6E10EBDF61F45D80B852917D", + "output": "2E5A789D2C0924E63C265B65083EE316D477E674BF883EFC351BC65D12F0245D" + }, +]; diff --git a/example/lib/test/secure_storage_test.dart b/example/lib/test/secure_storage_test.dart new file mode 100644 index 0000000..f1f1d39 --- /dev/null +++ b/example/lib/test/secure_storage_test.dart @@ -0,0 +1,24 @@ +import 'package:blockchain_utils/blockchain_utils.dart'; +import 'package:example/test/quick_hex.dart'; + +void testSecureStorage() { + // Repeat the following test 5 times + for (int i = 0; i < 5; i++) { + // Generate a random password of length 32 + final password = QuickCrypto.generateRandom(32).toHex(); + + // Generate a random 24-word mnemonic + final mn = QuickCrypto.generateRandom(128); + + // Encode the mnemonic with the password and additional parameters + final secureStorage = + SecretWallet.encode(mn.toHex(), password, p: 1, scryptN: 8192); + final toJson = secureStorage.encrypt(encoding: SecretWalletEncoding.base64); + + // Decode the encoded secure storage using the password + final decodeWallet = SecretWallet.decode(toJson, password); + + // Verify that the credentials in the secure storage match the decoded credentials + assert(secureStorage.credentials == decodeWallet.credentials); + } +} diff --git a/example/lib/test/ss58/ss58_test.dart b/example/lib/test/ss58/ss58_test.dart new file mode 100644 index 0000000..b95d329 --- /dev/null +++ b/example/lib/test/ss58/ss58_test.dart @@ -0,0 +1,50 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/ss58/ss58.dart'; + +final List> _testVector = [ + { + "raw": "facc4de5b7745215ec8255c743f044d2a94ef72b2fb6d8e22c35ffbc3ac8ac9e", + "ss58_format": 0, + "encode": "16fqfQjHSWMoMxydLYoYixYcTGvcE3csECC69Lik312jNWS9", + }, + { + "raw": "0ae7387f2bbf2846df7a1fb07b0676f1e4c35787f96b6a618e254afea5434d04", + "ss58_format": 2, + "encode": "CpcgbdXbwSbUJF38WTzR2r8CpeF29Jeyqm1EZmJmey7sXVE", + }, + { + "raw": "9494d77c224df8b09e05b91ebe7a2f475c12a4cfd103da6b58679b22fc995fda", + "ss58_format": 42, + "encode": "5FRXACEYAEcDiWnScWfuqGkYVrq8wyNysbgMGvjDnKLUKFv5", + }, + { + "raw": "f2b0e94f4d04acb16ecbe3348482b207ba6e60585dd641a8b0f6f28ca99795bc", + "ss58_format": 63, + "encode": "7P5mRixqQk1Z1h4U15Z2zMc6vKoprgWs645jehsbti5irbc7", + }, + { + "raw": "735ec2e330426e8643745d5bf6b287bfec4e50eaca556c9f2781b02db5e7a236", + "ss58_format": 64, + "encode": "cEYBURAnCdz1eMtzsDW3JAz8dEGrahsjYiHXZCBFsxHK7VJX1", + }, + { + "raw": "735ec2e330426e8643745d5bf6b287bfec4e50eaca556c9f2781b02db5e7a236", + "ss58_format": 127, + "encode": "jArK6dHqpF4QE6a9H8B54gNRy6hSBzpYBGjCwp4KrqxoADwNq", + }, +]; +void ss58Test() { + for (final i in _testVector) { + final dec = SS58Decoder.decode(i["encode"]); + assert(dec.$1 == i["ss58_format"]); + assert(dec.$2.toHex() == i["raw"]); + } + for (final i in _testVector) { + final dec = SS58Encoder.encode( + BytesUtils.fromHexString(i["raw"]), i["ss58_format"]); + assert(dec == i["encode"]); + } +} diff --git a/example/lib/test/substrate/scale_test.dart b/example/lib/test/substrate/scale_test.dart new file mode 100644 index 0000000..b26d6d4 --- /dev/null +++ b/example/lib/test/substrate/scale_test.dart @@ -0,0 +1,84 @@ +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_base.dart'; +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_bytes.dart'; +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_cuint.dart'; +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_uint.dart'; +import 'package:example/test/quick_hex.dart'; + +List> _vector = [ + { + "scale_enc": const SubstrateScaleU8Encoder(), + "value": "12", + "enc_value": "0c", + }, + { + "scale_enc": const SubstrateScaleU16Encoder(), + "value": "18426", + "enc_value": "fa47", + }, + { + "scale_enc": const SubstrateScaleU32Encoder(), + "value": "1706095648", + "enc_value": "20f4b065", + }, + { + "scale_enc": const SubstrateScaleU64Encoder(), + "value": "2579765632504954883", + "enc_value": "030038b12c2bcd23", + }, + { + "scale_enc": const SubstrateScaleU128Encoder(), + "value": "1981057649835179426526325300541830", + "enc_value": "8639b01a20016476244b8076ac610000", + }, + { + "scale_enc": const SubstrateScaleU256Encoder(), + "value": + "4512471174635598247890384632897562349411987594382343298700199879854632446", + "enc_value": + "fead49273e86747ef831ed3aba591de566f0989853ffccb38852bddbd08d0200", + }, + { + "scale_enc": const SubstrateScaleCUintEncoder(), + "value": "48", + "enc_value": "c0", + }, + { + "scale_enc": const SubstrateScaleCUintEncoder(), + "value": "13429", + "enc_value": "d5d1", + }, + { + "scale_enc": const SubstrateScaleCUintEncoder(), + "value": "1013741822", + "enc_value": "fae3b1f1", + }, + { + "scale_enc": const SubstrateScaleCUintEncoder(), + "value": "2579765632504954883", + "enc_value": "13030038b12c2bcd23", + }, + { + "scale_enc": const SubstrateScaleCUintEncoder(), + "value": "1981057649835179426526325300541830", + "enc_value": "2b8639b01a20016476244b8076ac61", + }, + { + "scale_enc": const SubstrateScaleCUintEncoder(), + "value": + "4512471174635598247890384632897562349411987594382343298700199879854632446", + "enc_value": + "6ffead49273e86747ef831ed3aba591de566f0989853ffccb38852bddbd08d02", + }, + { + "scale_enc": const SubstrateScaleBytesEncoder(), + "value": "Test string", + "enc_value": "2c5465737420737472696e67", + }, +]; +void substrateScaleTest() { + for (final i in _vector) { + final SubstrateScaleEncoderBase encoder = i["scale_enc"]!; + final encode = encoder.encode(i["value"]); + assert(encode.toHex() == i["enc_value"]); + } +} diff --git a/example/lib/test/substrate/substrate_test.dart b/example/lib/test/substrate/substrate_test.dart new file mode 100644 index 0000000..b7e707b --- /dev/null +++ b/example/lib/test/substrate/substrate_test.dart @@ -0,0 +1,68 @@ +import 'package:blockchain_utils/bip/substrate/substrate.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void substrateDeriveTest() { + /// test from private key and derive + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["private_key"]); + final coin = SubstrateCoins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).toLowerCase().replaceAll("_", "")); + Substrate w = Substrate.fromPrivateKey(seed, coin); + assert(w.publicKey.compressed.toHex() == i["public_key"]); + assert(w.priveKey.raw.toHex() == i["private_key"]); + assert(w.publicKey.toAddress == i["address"]); + final child = List.from(i["child"]); + for (int c = 0; c < child.length; c++) { + final childInfo = child[c]; + final path = SubstratePathElem(childInfo["path"]); + w = w.childKey(path); + assert(w.publicKey.compressed.toHex() == childInfo["public_key"]); + assert(w.publicKey.toAddress == childInfo["address"]); + if (path.isHard) { + assert(w.priveKey.raw.toHex() == childInfo["private_key"]); + } else { + /// for soft derive only first 32 bytes of secret key is equal + /// and last 32 bytes of secret key (NONCE) generated by random + final secret = w.priveKey.privKey.secretKey; + final testPrive = + BytesUtils.fromHexString(childInfo["private_key"]).sublist(0, 32); + assert(bytesEqual(testPrive, secret.key())); + } + } + } + + /// test from seed and derive + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final coin = SubstrateCoins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).toLowerCase().replaceAll("_", "")); + Substrate w = Substrate.fromSeed(seed, coin); + assert(w.publicKey.compressed.toHex() == i["public_key"]); + assert(w.priveKey.raw.toHex() == i["private_key"]); + assert(w.publicKey.toAddress == i["address"]); + final child = List.from(i["child"]); + for (int c = 0; c < child.length; c++) { + final childInfo = child[c]; + final path = SubstratePathElem(childInfo["path"]); + w = w.childKey(path); + assert(w.publicKey.compressed.toHex() == childInfo["public_key"]); + assert(w.publicKey.toAddress == childInfo["address"]); + if (path.isHard) { + assert(w.priveKey.raw.toHex() == childInfo["private_key"]); + } else { + /// for soft derive only first 32 bytes of secret key is equal + /// and last 32 bytes of secret key (NONCE) generated by random + final secret = w.priveKey.privKey.secretKey; + final testPrive = + BytesUtils.fromHexString(childInfo["private_key"]).sublist(0, 32); + assert(bytesEqual(testPrive, secret.key())); + } + } + } +} diff --git a/example/lib/test/substrate/test_vector.dart b/example/lib/test/substrate/test_vector.dart new file mode 100644 index 0000000..0099fc7 --- /dev/null +++ b/example/lib/test/substrate/test_vector.dart @@ -0,0 +1,6802 @@ +final List> testVector = [ + { + "seed": "0c8ecfba39e5343fda983c2c5b8b0dcc7293fad84f05c5e4089088849ddf2fcf", + "private_key": + "cd1adabb4033fcdaacd0d138e2fa253b87d202a4d06ac004fc0e1e4a415bc80a7634ad0b0c1050ae375baa46f18691ac1a8101f9d28bf7f109d5a162c642634d", + "public_key": + "4214a9208f35732f27e41e7f2f6658082d06b14553a38a646c3c51bddc425e39", + "path": "", + "address": "12VeJH6DpBgRFaJ5K8itdRAMjTMwvSswPcvdeZkw7gKp2HK2", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "d8974c4257a367d3bbdd985e12e299bf6ae5682f63581061c3379e7ad4df6b0a2ce4fa66677438d60269aead1a40e33cf6dcdb5d42b1cc12d6fda6a75070dd08", + "public_key": + "5024341ef68b1e73849a43d4e23b553ec747ae18b0d81bbb2074ff6c8030a360", + "path": "//0", + "address": "12p5axbNBe7yqhQ2z877ijTDboGcjGxPQ7j7HinroturWhPM" + }, + { + "private_key": + "1f371d6bc37298f9c58b699ea274296f1b244babf6bbbbc61cb877a565e7ea008b828e626e3c7cb421e751734bc39bea092d4f5223192fd2d71d4c9cf12407d5", + "public_key": + "9c73a7a7ae5f404ff90aeb6f22b8ea2df46d5b5f83d0b64d6960c59d87906a20", + "path": "/1", + "address": "14Y8px1MvVkCoygUSUjeF6RUUDi7B84CNH8k8M1hqt8fVvy7" + }, + { + "private_key": + "1a38e37c4c9c4b906e9881095cd40e603ef8d0c90f5e8a250bf9f8111cd7e50f5488a366ceb3eac81e491151ebc9ca2e5a5c21c6eb29e3897eebe8fc1b4d7833", + "public_key": + "246ce0f1597be83976a202259840962f47c563f23b760082da4770dd6ac30273", + "path": "//hard", + "address": "1pm4vKW1HpeJXksu69mULrSKJkgJPyGJANoUE3xrYX3jm5s" + }, + { + "private_key": + "6200001c954d0a000906661c76da6e5388049090ee14d1b680b65eb9b958130b91a86e76a7ac1402ad349e45f1b94de2c9fa177298db61322e752f087e5f9d19", + "public_key": + "d63f18d817a2819fd045c1884d4b05318a2030c06f77b618a0b0ee0751e5356d", + "path": "//1", + "address": "15quzUwft5KmuJMbmZSR4SAc1MY3CoCgaaN3n1pzLUvWWgEt" + }, + { + "private_key": + "3e99ae1dfb3dd532ce24d206e3876ff3ba3bd55aa78f2a8ae3fd0a620bc9850438b549e2eb9aec64b57294bff45c92e454e68954d43b61aab8d6ecc0cd1f0940", + "public_key": + "ae8a844d35d714a16e606648d5a185a72a282806620e1d4033520e544d349856", + "path": "/0", + "address": "14wrUqoTBwgXWJHQCR3wgn7nZGE9LeAyFgSaH9JmzPZEnjZ9" + }, + { + "private_key": + "1eeb38167f0d8f03d022be2191a02da10d40dd4fb7f04d77bc7e7f687109f0091224aaac11d759e55cdc9e4a0b89f70e0fefed464deb1c4df34e73ea149b882f", + "public_key": + "1e7646dd919433ba39d9aa85c16b0afac1d9f9d143c1b897dbecb5ba15da305e", + "path": "//12", + "address": "1gwaBXeLR9yqQpRL4XXAg7zaziW5LW4DVNTuNJkkJa9hRyd" + }, + { + "private_key": + "d48f65bccda44d90f99971355d3faf34e0e22637532bef3eaf1653b83b6a38032f831717c1b5f76ae6b486ba01cfeda30189a52e607257a254770505a1859540", + "public_key": + "7e8cc143f41f743be1c6220dc39270a348d55a746ca78edae918a98462266307", + "path": "/soft", + "address": "13rvr6NcXgr5CTy53j3wFNtDYaZaUnVJv1X72ozZ7HVGzJYd" + } + ] + }, + { + "seed": "ef06c01ff5a9b7a9273b174258e9af76df0841b8446bcea2040f4343cd2348ec", + "private_key": + "02bd560bea7a76101ce9b7407b74344ccd84c18999880689fed876f1f97e650e2786fe4f46be2cfa7c4a03d055366e86c6d6b7ab211a27d806cf0fd4e6713390", + "public_key": + "1eafad3e11b7817b83c99050ac7e3d48c83db24e0114946a028aca2353dda407", + "path": "", + "address": "5QLFzp3SXBVgntePTr3Lr4nMb9NNhkhiTYRMhtg3FTCXgoMC", + "coin": "CHAINX", + "child": [ + { + "private_key": + "1f16b7a8c3f7d3c80cf18a0c8312515f946db24ed801b28af0ab27409ea6280fcb00876d6bef3b94403cac8caef1e1b14b322c367db0cdc04d34370a5a0617b5", + "public_key": + "4277c1ce8828729e45700dfce3260c66142e7cc09639840b127d28fb3fad1764", + "path": "//0", + "address": "5R9B7KcJP9fjAGSRnzQg1A3WSZEL1FLnxCAXVcAiRzFRAvwQ" + }, + { + "private_key": + "640620593896c86bda230c37a830aaf7c8eb50d4d86f86bc95a932fd3e18c006cad8279669665ef41ec7e88c1f8adb00cf4f3bb2385cc0965540049dd536b00c", + "public_key": + "e293cb21c407ef02ffb2db1559154a18b1a6750e71980443716234c83459114e", + "path": "/1", + "address": "5Um76kLqVCx9wYECRpTGocTSR5o6SRjo6RKRB6o1afPB1xLj" + }, + { + "private_key": + "eee4f95e6d2f9f13fb6f33dddecafbd65da8153036e95e9bfc598554efb70f0b6c27ef86922fa1a3899a53b28328e332fad974bed3b5409ddde2898478c29cc0", + "public_key": + "5058c8d0ce0d489b7deb7d6c3c7e85bc000006b6930049df342a54bedcfa9618", + "path": "//hard", + "address": "5RTNaZL14s1vKh8EvrS4HxHTctLaGVnxpQyGpoadATEhWcKg" + }, + { + "private_key": + "e64ce5f4a3c641e5b9d4da047d1b271aedd4d95a47b6758cd5b6d84292aebe0922d989952cc02a6354bd155063a61b15c24e921d462bb5cb213401db60261956", + "public_key": + "922e93e987ee685f8cd51af9fedd6a96f2997a428626ded8e3e07687082c7274", + "path": "//1", + "address": "5SwhCf4omyzuLG8hYLhtUnsEybF2FUqyRcbevA5qi6xJbZLM" + }, + { + "private_key": + "b218ef1269e1dd058a96d8148fe6ac3c5ac1faa012660e0c196cd33c39f3d90566db9b8d33d63e5ddf267c6e2ccf14ab05a51882efe59844a8bec4ed9dfb5667", + "public_key": + "5223714aea88845a0d460285bbab825b2cd7ff994d4563f43370357638d6f959", + "path": "/0", + "address": "5RViq44EmGL3JjNtB9kd2rKeR1vSAUEW7qYeCyisakhaYJMh" + }, + { + "private_key": + "58e166a2cbd199ca4c223739751a1e87ccb717281cc13de811c95e4fa5d2ed0974f7bf6e640691fe8169ea1a2d23f857075436d179d8c92f870387d08f6785cb", + "public_key": + "4446c1694e634a516a53215ace7aa4cdac62e552186eae570de3dd9c4c97272e", + "path": "//12", + "address": "5RBYebiNmzEhqDtc79kro313dMxjj24FTe8DsNLz8rchQvv8" + }, + { + "private_key": + "384a581f55f22919ce913bfe8674cd12332ecb5cb00846ba631314ad51dd80079ef5aee94352862f3db2475e1266d535c87129dbe581ebc1093d5c6e2af85d40", + "public_key": + "a8d649a85d231408d14f123d808041fa9d897b923b80321b044e473cc8f92674", + "path": "/soft", + "address": "5TTQ5LGe39tuwTguUur64A3j1NxJ2h6fuWvMdx3mmZ4pTy7H" + } + ] + }, + { + "seed": "b5b615a751e3a5b17311b85802dce20aa65e5c0cae46594b2aa04996f65bb34f", + "private_key": + "83614804677023157402100293335142cb2aa00885f497141c930dfd3970ff08c6dfef64a2d69c624db84beb706542b78ca37c4f2aefe2b18dcc53b23810c98e", + "public_key": + "48fbf9595482299f0a8f865cb1bc1b046b32c060acb4bdf4d8f8c880b8ca5965", + "path": "", + "address": "12ehJNuwgNAD1JJNCrkgEYmkygXZU8n33dQEBTEpESK3DRTo", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "586d97b535588a03c0b5ab9044eb6f772b6fbc1c977c15c82fa3b09e30ad2309f743acd074c47b2e7e6eb7765fc4d9480581c40e4eb99ecdb83c60a9a4f34701", + "public_key": + "8c3b5f6ab14cc67cbcdbafd6cc181be2f4dfcfd75390c2a38c0a5ff71b2a652c", + "path": "//0", + "address": "14AsLnwE4DK88rKNYhrQEN8pJBhkxvqrH48zmV6q2bT3cy3u" + }, + { + "private_key": + "884996d8080c35deafa8241f4c9e6eea54a5d25149db9b88943d94d1f80b640ffa332dfb1602eb05a376c9821d2ea7de1ff66db19d9e5389220442fc0549c6cd", + "public_key": + "425b4dd669527d2f94e96532eea4470f31cd6ee105770ec50b058c5d3fa9c91a", + "path": "/1", + "address": "12W1HSDrmZJLY6RViVwToqDnTjU2NckVJiS7j2RD9RpyHerx" + }, + { + "private_key": + "e1ca326863f09a89875808eab75eea9aae6fe1be511aef9b87af9e7916f995094a5ff3aeefe2fc21d965d5b09efa89eda2c363a194934180d5e1d2de09c09604", + "public_key": + "1c3c50822322e543f794813067e9313e7299dc72affb8e397238d2ef59f18d25", + "path": "//hard", + "address": "1e2Fxdbrbk91BumiBGHhbRursoSitMnzVSiX49dpPwgFJFG" + }, + { + "private_key": + "a8002b76386904cc1f869ad7503e73187a158decf6d3358f00b117f052f8060ae0638f5e44e3a8e7577c51520433ba61198b1e3f7f4af122e01a8e9bae585a12", + "public_key": + "e4dffa14e72c21b2d9affe72d2d5e5afde6c3d5ca38cf19ed84984d876c92109", + "path": "//1", + "address": "16B6TG2p27GdfJNee5swfekb77wsmBs6SBA1U7ZA8cenYYmH" + }, + { + "private_key": + "dbc11e92b5ad9a4bee1a863a15a3a266bf3113bfed321b91cf9d25ab8dd2f00ee914164a9db29119b711442f9820d3e9a96bf6f0c580d1c416f08b14454572c6", + "public_key": + "4e6a5511eee4285db7e48145cfb151fe0be48188e9979231ae053bdf662a1059", + "path": "/0", + "address": "12mpKhDUkbGAmKynjPNon27p4ztk8FN5VAgz4dhxRf2eX3ra" + }, + { + "private_key": + "b651891867b11d451e608d5e7bac6a8a35f114adad4cf2e119b49d2620a03e0ae770f8a4ac5b5e954aae42067cfdfd18548e9aa39c4062ff7f6f811ddcdfed87", + "public_key": + "2efaae7bee0f636c29656cbc90e5df8668963b55540288790fd9ebfbdc4e8e07", + "path": "//12", + "address": "124bfuAhkGC81AuM8LbDaSEwtvZoTsvDf2FDBpaSQYV4wepy" + }, + { + "private_key": + "6ee0f2ff774795ff7914bbab3afd0c498864141b0ffd2ca6e8c1cf0612d594087fad90d5f00836509bde5e3d5f8ef54320c5f839c452cd3ca112a50b1f9e087b", + "public_key": + "b65d4ef26f62833080383f97ce03cad3beb7ac2c9fe5abb78dc8dd32003b3c30", + "path": "/soft", + "address": "1587S8wvmrNGQD1jLbYKDMGiBmMiHYHSXJRxnS7TwGCtRUQP" + } + ] + }, + { + "seed": "4f6c0aedae6be0117379b0e0d976e4ed1f75b1dee21fa55b118b6d9fd706e2a7", + "private_key": + "7e4c144409ac3e94dcfadffa6e50c4610387e0d2ef8b486efcfce0e59adcd90ff89ccb013057120aae185d509a8c9d07331241d56faf9761827242733a0a7c76", + "public_key": + "8ef8a60f629e1a77f309ff166b4ba7f6e202edabc835d25fdbafecd34098144d", + "path": "", + "address": "FonBUp31tXhAm3tV5KKv8YVoYoRwC6J2RWKuLDCAAwcReBj", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "e05cd18f0d688d8cc5fafee6a0e7a0a23012daa79fbbaaac0aff521aacfb290974cbd61f3f168e7dd97972a50f5763db59da00aa3788da1483f43cfd5fe9adab", + "public_key": + "34d04132f6c0523d820e718007e1e4ca563474e740b1ebdc9c5133878d1ae51e", + "path": "//0", + "address": "DmZsYrFnFB5qM6QjqTpeTWtWS3xnD1PnYq7GxGV8xyjjQa3" + }, + { + "private_key": + "6e5bf49635de5a6e6a85c2a7305504e90c29bc8a2cd1ed3beb7e437d668f1303c8f6bc6078839d7cdb054df55d0654e2706fc0c2e5835ee5f6182ca020eb80b0", + "public_key": + "76c7677d980dcf6ae2ca043d6b72eb546ca41d4a807a07ec01953307a4546942", + "path": "/1", + "address": "FG4QN2XYn3Wf68gK5ENmG4XmhNFbDfgZxsEqiAUWR6ngTpX" + }, + { + "private_key": + "eb05da0427fc333ee2e0fb97d8f5004a73705a24cbc623ee51e28cc8be3b9d0d3b50bd057520f4f73b00f518576df7dc8fee21fb72f42ff32b333128b318e92c", + "public_key": + "ac4143668a0242cbccc2e609cc2c85d9ff702a26678a0ea8da62c57250cac212", + "path": "//hard", + "address": "GUB99FLpWrrKtoewUrNJnA5mpJ18mbzCB7cHNJZTVcuzPUq" + }, + { + "private_key": + "a59779b4bbcf3879e41df1b7d13ebd21f8af1bcf50b1d896f4ea567edc58200d3ea36c3ac4c492bfd5cedc8eff0ad2af7eff5c323b17873cfbced82670b5c784", + "public_key": + "e4848f321aab5880690fb8de860db557711bf81b23c961823b61638c22f0f922", + "path": "//1", + "address": "HjwpA46LQwknpXbYq9cpdkbuAVRBD8LBToMN89QgSaKjurS" + }, + { + "private_key": + "423bfd7cdca19c92a528deb14915f530eb854c054d06a9d7a5a997d2d17b9506b48b2313789fd08ce511eca065f0a1199d6e1ab519a08a88702161c317e299b0", + "public_key": + "66f14f799b0ab0efb73e661ecf63fa05597477c868287ee69017395b62cf383c", + "path": "/0", + "address": "EuJ5xEhDAw1KXFUXHCdaCUPkd1vXa4BvuLasKEToEanFJ7N" + }, + { + "private_key": + "0a335102e161d676765bc97bfeb56084d3f0f08263a1d03fa1862ea865c0bf0ad41ee07f7418933d15e75f607668896b036da72066a144b69e77d3da8d9907b4", + "public_key": + "baff877486f3dbbaf54bfd67e0cf4131ab36cd43712ece5752ee349fa887a963", + "path": "//12", + "address": "GoWLEGBZdhZtp8fRR4PanqzRAUwHH3qjXAsURUvjgmJDeAv" + }, + { + "private_key": + "8e4010a0e09b874b9a74fa93ba0d450c1fa393409221e14d724d50f5c28c9e01be24d11b39d7d4612786267bdc0f83eb37ea2d55592cf2cb09f258667a31c728", + "public_key": + "3ed2e562b1998343eb5a499f69cef9d03cad049ad78a205052e3dace9cbbcd32", + "path": "/soft", + "address": "Dzh8qEsoS8KReXp47EUszyvThU6P4ndLTRYkUjSfZfvyseb" + } + ] + }, + { + "seed": "ab00c4bb8be6c2086ed7f98b1456485713938cdc7a6bd7b504e7e8e68bb8eaf5", + "private_key": + "d014915bef502f322b894fb7a54ae78ffe781b8b530c6dfbe04ffdfcb46cd50dc2953851045b5e902368f42dcf85a34ef9d238fbfbf15ec94acac86b2279fd01", + "public_key": + "8afadc4574f7bfa7a17e038b3bb5e230c4d2478dc859d6a27032fe7b06df3308", + "path": "", + "address": "241piR4KMXjgX4adXYJnwRKHwMxeMc3V53xhGNkyZwNqgLD8", + "coin": "ACALA", + "child": [ + { + "private_key": + "b612441ef1825fe0aed440fa6d0a29fc66837dd7f0848e14364a738426704a0ee55177913af82813e481da1c4d6e5276fbea3fc6de5613c0965314c81dfcbe8e", + "public_key": + "d4dbfed9b9b8f0446f832460d4e339916a7c4f456afa429817745228defab70f", + "path": "//0", + "address": "25gh69SyUwLShwCjB1AfHJuWEJL9kccBvn2BQHyr9cpqNFSP" + }, + { + "private_key": + "32a229d459d13fb37d3a2ace94f764cb23bae288ccb893b43bc14ea2b4efd107632d6dba667253fd31c788760d76657da4e64ae1da3c7c16dd3a7191688a9fce", + "public_key": + "5c5577ff301e005298d3e654c8b6518d39e4023eb4a4a153d040d0dfa2e69d6e", + "path": "/1", + "address": "22xfP2VkCos3qfRTJFVsFAZqyL52f69Fgh6b3Eot9JYruhky" + }, + { + "private_key": + "95d7083e3949b5c6d03f063aa2b307d2c7f1a74eafcb0e76c1bfa001a36ccc0baa9c941a139bfd92532694ee091296327edb49dbc991e77d6624cbd6f0ee1ed8", + "public_key": + "84f61b5cb330481e43ed158266cf5ae8c9eb288f9f56171849e344cd2bb28e26", + "path": "//hard", + "address": "23sw1rFRTTGAw3EBovKZ6Nw4Vvn4WM3HkAQe8PUViEXkFDhT" + }, + { + "private_key": + "19970763b0c7b2be7dfb8b7dbcc6952c8a305db31b441dac9aec839f1c3fe00a41d723e5cf40a2639b8df39a8e1bd8d2c41b4df1ef6137d598b76d26f7c29355", + "public_key": + "069bebb359d7dcf08db26cb3b651599d1ce50851d2948e8324925bfffbaab415", + "path": "//1", + "address": "212GC36C19BH7zSS5GvPqpG4KtxnXmw8b6yhzayVccLfqBU6" + }, + { + "private_key": + "a1c009ff03a7cf5e18d9409149e8c8eb169f318fa7aeeb341624dcdce3c7640e4ac1775458a1fca9a5f2d85dde400036a56f8ee6a4af2ca3ec556c704c0079d6", + "public_key": + "360eb8159d108db4c28adaa1a5bd7778bed3c2674ae3f6f732142e62ba3c1511", + "path": "/0", + "address": "226UYVyu62fdXwc7fQ9x4aby8ysF9ScNyBbRQaCj9uQ9a6Um" + }, + { + "private_key": + "5e1868138f2ba9efc4a910b632c55d49134689617adb7cd06df7dda4f3d71b0d48c8a2bb2f75d5f1a77c7e1bb2ba2ddec85614a43328464372dd8fe7c6b9b677", + "public_key": + "2ee648ac0f10bd580cfdbb4467c73bbf705643ccc0d2347e0345ed0433065626", + "path": "//12", + "address": "21w6CNpJX7GmafLKvmzWADJ7D2DuKwuB5XP1fgihdF4K1Kyf" + }, + { + "private_key": + "22ce8df870b31700af97dd24797ff8267dc0dfe07ab4015159d1cbb3d005de059d552c0946a7b35a194a12508492fd0b7aabb1bff891063b83eb92d239e177a3", + "public_key": + "ee55d3b056a3e778df2b6b4d4a883132022a7d90367bec01a0bf0e1ef6717673", + "path": "/soft", + "address": "26G6Ugi4yALUMsPhLyyvS3zgYtXfC7PjhjPeKpvos45uabnT" + } + ] + }, + { + "seed": "e801ec9fe6ec5340982cd0582ffedd7753b0feb0ab9c4e3974519d92e5ce5b5d", + "private_key": + "df5e3ea7960e1600bc9889aab4d32a9682ab31dd32d836d6372fb16f0754810b0b7278b8aef6c1271cd1509c70919877c3a7a97574c0dc735d6aec414829e5cb", + "public_key": + "dec44d71e774d2edf729e71247d86fdc9eb3f961ab5bf38abe88c2e79f976f65", + "path": "", + "address": "HcQTmA3gGr6FFXnCrLzWHS26TeHPiHCGZ6ayw3xQgigh832", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "0f441acfc59d3494718e44a8cd2c8985db4501ea4fbeb4146e9acc85ecce6c090ea24cad3b56a85703044afb0ef62613f76651cb738bc593df3dc33ef38ffb07", + "public_key": + "aa2833f964e785372b21486639f82a98bbd226c634d88e55b2237e5fc610c637", + "path": "//0", + "address": "GRRbowfwAJALTgnvEd3EMNiJiuiLXpYaFxRFP2vU5fvHM9j" + }, + { + "private_key": + "3a2e23587a1206e3bd9a139d77d38c7479e493f05024450bf703b10a43e65d02b3bc0c2f3e776b906fb7500ab28fdad551dc0caedc15028de3f79930d83f9911", + "public_key": + "e8a422da79d47542cedaab972b8fd69184f57e4bbeb5ab19f65d5bd46f8b7f01", + "path": "/1", + "address": "HqMPKbwjeB1pNGSyeD9ughNzm6QxdHXZifJpzoPU4wi6ZVG" + }, + { + "private_key": + "46039c2cd245f783a4a02fa52e6ebfa7b207f233ace76559545ad6fb565938099dfc0e4315a88cafbcf6e8116b837a47b5d65d0f74fc57feacd116df6c0b3cac", + "public_key": + "2422ca41310baaf0e82533c544392844f2c7ae7e56f6a52ce21ccc20e48eca18", + "path": "//hard", + "address": "DPhaPQ7iEtDCxG9rxdK2zj2matPHAPSWUAmQcweK8sGH3nu" + }, + { + "private_key": + "c278ddb15c33bab0c473f740d915a768637b3b8b4866f614818e6838c1f54a0b3af79089525b784b4ad8bf4dcd4e7d02a792cf7b72e6ce4071f0189942b4045b", + "public_key": + "b6909453189e6bbddca933655bbbd0ad4870a2b0dd65d2b766dd82915a070e09", + "path": "//1", + "address": "GhhBW1FjvZ1oZs1bZuySXr7jQuHA2wYfVRjtMn22eYbJiRm" + }, + { + "private_key": + "15bcad5299cbeaa487447eeaf626c6a186b07ffc7b146a615b2a21a7d3407301d6b8f6bb89b180b84be40f200dc3ca17707dce50b513e066f9c0adee8ae6c470", + "public_key": + "c4098dcc91e70d3c9ceb4b76707faa88a3dcd26ea373c1782db295f08ebafc14", + "path": "/0", + "address": "H1Mjwx8DQ7JH7pxeg1yGEXf6mHg8SAQ1yaHFo8WrM1NRmMN" + }, + { + "private_key": + "42bfff061c48dc871b9819a553cd58c60e779f64aa77bda7ac85e56bda30be0fb0828633e188e7fc7416aa874b45b154e9da81f9059c2bac50080c068a4f8665", + "public_key": + "b8e5201a8c64e244cf482144f278a216e0d2ca564f3772002f4d980e5d6d4f67", + "path": "//12", + "address": "GkkPkRDRze6aW2CPweJ9a3MHRAtUWspwQ7qwFk6ZVv7BE1h" + }, + { + "private_key": + "fc15ad06dc8b1f03adbc0106a5c296ef71076580fe50118862882d9971e68b00e5b5ba58431fa8e41c159b679384939f888dbfac53713b0079efd9977756148a", + "public_key": + "d4b2103b65ef790785743763761c004f0c412f2d22bd777777e367040acfc531", + "path": "/soft", + "address": "HPCZjfVikBzvfVttE9APL61syKAS5HhMNK99ZLhKhch8BBh" + } + ] + }, + { + "seed": "0796e5abf6436dbd30130675587623764c717a95e7e53acc7ec7e79d530c8a83", + "private_key": + "1754f521918449f8a6d72f1c7531b5f808bd1a07aa5b844416d22b0f737b9f0b6eeacb888eaf04ad77677524ed1c22b54c3616da3884d66c6c79b9d2201a6a30", + "public_key": + "cc2193b78f0727898706a7ab82ea7c60cabdbca818c9ef42cdf195139d3e1312", + "path": "", + "address": "35Mquw5BgjFtBR4cvnMScXqFCjxrPr8HLjLH9RCM2E2jXtN6", + "coin": "STAFI", + "child": [ + { + "private_key": + "2b6c140ca6c91fc445f818e55f85a8d7fe8a4ac4a1fe93b6fcbff7f4a8b0f90e604d2a659c7fc1f7be2facc4bbe61fd75ddd10cee3bcabfc47005b77a38bb787", + "public_key": + "e4ed96c6d31707920ee28c285ebf9947c1ef8426d7c51b4f79d141448273e84a", + "path": "//0", + "address": "35vMfdeeajXS5B8YsDfnU333mc3MmT8dq2imiw1jvJCQgbNx" + }, + { + "private_key": + "f0943143083fb368094f36224dcf27ba069ba5cf8ba0b2271113d729ebb5e700723e04cb181c01a8555142bbd01eb87e649ede9381be6d8198e5a290e7ced3b4", + "public_key": + "0e9f53a74a56c948764fbd8c8085b48adc980270915bd8ee382af6eea558c83b", + "path": "/1", + "address": "315NArv7TaynzzZsUCZEpW3py7MC5xLEjgJvisH6pT65PsWW" + }, + { + "private_key": + "279da68275704e5ff08bb64cc1916040adab2509e9858bc72ded2120f675c70a73f76c364b9bb2af745bf095899db7e6029ed7ebf9a9cf79962b3b365c22bae7", + "public_key": + "14136b997d000b748901d87c98c4a26fe72e002f52688099e8ec2e5bd003fc5d", + "path": "//hard", + "address": "31CWtzZ5uVcivYFomWy9UATcHtne8oyBJVqTippLypb8rNds" + }, + { + "private_key": + "2358546d54b9d94c3d8bc0438a58ba6367489c8855acd606441862ea340f0d08a113d9eacfc5b082511d85446993ba482d8c1903e583dc0babf5b19067a19247", + "public_key": + "d268903680b1214ec14d81bb9484eee1cbf621026c9894ee085ddbf7b16e565f", + "path": "//1", + "address": "35W5HfPRQPRPx5pZhhePfKLKRrZXuoEBj4ogcmavxJ4R9WFR" + }, + { + "private_key": + "d25e969404bea4d44802b83cb7207428fc57b029b19c755f0200779e184ddf0c2a503d3fc95d511c70cfc91707bfc0962b2f97b5fcdd6f746f4b6eabaf64d3d4", + "public_key": + "f4bcaed2b6ea825e582e86f381943f90ecf826208b3fc8a359ca257f3efd2b60", + "path": "/0", + "address": "36H5uSLsmDuNRpma26mB87NTJP9sKou19RUsSX5MY6oT3B56" + }, + { + "private_key": + "818f78be07cbb04af843f4bc1347355dd3d172fb3f06a66f946342cf2316630d539d7b4fa053c73ae7fb17d6bdc2d223cdab9e6e54c252f35987a7911577e570", + "public_key": + "f6d9928cdb4e92b8c9c2e4370500b179c2b368ede08f8f52ae1d635f1fa22c67", + "path": "//12", + "address": "36KrakLBoKnHm21bJUGVPQ5VoD1r4TTjutt3q37176czWtdj" + }, + { + "private_key": + "a2626c2c87105e10e59952af728e3c0c22e1b5646b2f1d30f65163a7d0c34c0fa5c89404e0b4eed0835ac295fdbb5348cea01f4a18dfff03be468661cd339dd4", + "public_key": + "1a39587723f5460898530cfc4e16a7d8f97eee3f5995ae1044882f41687bc461", + "path": "/soft", + "address": "31LaT6QL1ANfd8ZzoXABt57MYJdRKbuugKdXA43zyCqFtugN" + } + ] + }, + { + "seed": "d89b4600f9f0f7dbe29689e5ef686c1520cd1ac7348faf1c3f66ed1fd02a5289", + "private_key": + "d9d665f872ba947024a78979c926092045cd33b9308889086d6d49230cb1e90e813e2cd58e2a98334853b1f2c38fa728afd728fe64d07585fbdc127be08f53b9", + "public_key": + "1671c0ff2b0bb7218b0a5fc7f7c588ff929dbf33d1e18b3fa0ed638c7b8b437a", + "path": "", + "address": "D5kN271T5bd2mT6ZDSJuEY9xqjBXvYkbTJ2A82hdd6E8Pve", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "0bdcaa09d2be3cbe6ad97c98806a277fc130685e6f5c7dc08b943de243cd75082f854b958a51e3bc61f1c06405a3476bb39ce4a59e8d2a8a3294f4b0fb20fd75", + "public_key": + "98a8613db00b258fa6891c3f04f93165d622a27001e21be5afe6eb52525e2075", + "path": "//0", + "address": "G2UpFg1VBzyD3odbheabiZQFfFRjihEn1odedLsCJCgZYRC" + }, + { + "private_key": + "f59995e75f2ce6177762f6f9306114053d26520ef549e156fa699faaf1fb620967fce9336244a3c99ce2bb9378f1dcb1c179c72b979444841c495995659d2930", + "public_key": + "345864c70dabcb92eccc82abcde3494fe8d4d0621fde93cd5f2336a82254c228", + "path": "/1", + "address": "DkxGPj2AonDcPT6DsQZyZMwmSWzfj8dUYoKG2eZ3z6QCqeK" + }, + { + "private_key": + "710d90516f6f1e3bf1b3955f2fb2a8172b0b381e4a1ed66f3b1a628879622a092f60f81f0caca3a1eb6620f3894c21b243c75cd026912b5efc2e633025437522", + "public_key": + "f8840450d157fc1e081ea2824c5600fe4a7e01b4f75e32045e2a41baa979e400", + "path": "//hard", + "address": "JCAcMcCJUi5Yv5R37tj25YWjsNm32GKA3EwAo6RxhtsEqNU" + }, + { + "private_key": + "468c5f00b8a3b56a90b01ae2fb90a8f985b82881c45cc88386989b3f3efd260e66535c17f2509540a8e80d08aa75f1d76bbfc74c107cff37410ed17118228fb1", + "public_key": + "7672f2ef017cf846aba55ed488a875457408d32b698b46553c3a20c88736f946", + "path": "//1", + "address": "FFdKERzjZBgg9sWjyLGDbGWdY6xdgW5UW4mP16iaX4dBwvK" + }, + { + "private_key": + "5b1f41c64ce44839cbf4c9011a5c7e1ed392ec0142dfa4865c2656a64e955c0a37f82dae30b2f22f31a5b0cedca3cc18553fb6e1943e16d1b2a3bf9105d2d95c", + "public_key": + "70df78ffe072ba1e4eef71273e7e00d1d3e601f3be419ea550fd8b3698d1800a", + "path": "/0", + "address": "F8KGPUHxrtRvsi1ANNPwg2qVfeY5YYdMqBJtRYhY7H4eBEf" + }, + { + "private_key": + "66abfb74358a2ecc289cc0471514e0e6900b77fad22b67277d2f60289178b20fef31c58826dac99954f66bd976a00729364f0799f4b2e1346501ae3aec3f7037", + "public_key": + "ea2031473a04f1042d39a79fa7be48100f82991c3cb468376841a813ab444d59", + "path": "//12", + "address": "HsJHYGfprhbLSPVP6FLmKedgGgKszPSoLCrU1d6c6GATWKG" + }, + { + "private_key": + "fbc46bb96f5b3cf73fbe385819a850a1d7b7c35342c67b048f5cf5e1bd87640296127eed61dcd359c3abc32538b682fcf07da311cf05b90b8d0b3360ecaf7581", + "public_key": + "b6fef28057726efdd4c650ac89ecb2e9aa7df508458ea9e0c4bf513e97dd1a70", + "path": "/soft", + "address": "GiFy6UMzeyAZUYr4F26V2n8Scox8wQ1NdcZBeDaYTZV9NgK" + } + ] + }, + { + "seed": "0ddd005d8c8f0314ee76f1850b4bafc479c917def39e4a16b537c0e37c9f4d46", + "private_key": + "2c288d6c4c06fe8f8c1b533d4133e4c0e87db8aee9cc3792e85f6585d7e94908d892890fb41e5988799fbcfbf475c5b6dbdd319f858147af7950a414ad3cf099", + "public_key": + "6e26d7e105905d0d1bf8773eafffcd5fa11f7529348dfda42ee1d6d23407ac74", + "path": "", + "address": "5S8TBQpLqNNB3mHH83rgpB4NUjKa1syLKhtCSQ1v2XhMddFb", + "coin": "CHAINX", + "child": [ + { + "private_key": + "2b281d36002d702c23bdf3790f3418f1c029ef853c2921534888ea7ded98f609919d2d0e268ae716c55e8515b3c5f7fddd9975807fd4704684a6b82ed2e9e462", + "public_key": + "6e24cf065110253a172706dba366e54887546213a894eceb7250a1a219b5cc54", + "path": "//0", + "address": "5S8SaMcv5tT1waYHqbdzyKGepdB27KnjZ8QcMSnv9b4JVrgz" + }, + { + "private_key": + "b935c8e336f3090f9850e77bb4a235638a154924a7877b78e3f62392a0c44b0aa8e4b4eba1ee3ddb1f9f53bfebf82867c26ffec662e0b7b8acd1c121219d2c26", + "public_key": + "6c23098047e9ad60c3ac087ab3f493a3bd3ef935af1b5946c9ed825cdb3eba7a", + "path": "/1", + "address": "5S5oxH5vfjUi2YrGkcjfUmJfhDhCzZ4tNhK8AZcGga5yssyv" + }, + { + "private_key": + "8afbf6b0679356ed6cf8455a51ea34d69e9a4707873121a3b3dbb9cf4e3a8e0acaf10fef3c66a84cb472afaa94470cbb75e995bf1359ad162ea535433de078dc", + "public_key": + "1e38fd6aa4cc7d3d5aa9eec6ad81a89b2dccb384ed9e83310dcc97ada5e87d47", + "path": "//hard", + "address": "5QKejtKNeNF8JDUZ3bCsmbS5JzxwphVb2npeHJfoCUbqRqZW" + }, + { + "private_key": + "de7c026e368cca81b0ca6739a5e943d0cc64a05de7032010ff35023cfedba70c1f34075d3751f5cede777e67c6a08f3851f1bb82c2fedb72ee12b68966f9a6f5", + "public_key": + "12314867d78d4312d5767aef34aa9b84674b01f95de3c84859bc69db97e02e11", + "path": "//1", + "address": "5Q3ssmVwdMYxa5XuRt3taYXLH7m27bQCqBRyW5uANRGKJG5e" + }, + { + "private_key": + "19cf510a8b10e642b68066845379d91151bca2f84fbc97e3952caa441901b3084625874fdc5e69fc0ad7ea06465d49c520a36e1cbd7d76319dac8e05082430cf", + "public_key": + "8a3a598b08c3b473fbdb6cfd8e9fa7c039d1e1da2ddadb8038bb6233bb321819", + "path": "/0", + "address": "5SmGKGLzSJ4nRTMVr5GSeCPPv9TKnRFFahbu8QsmeiFNCuTP" + }, + { + "private_key": + "1856cf57f721ce5c8a4a874f788d284c7e7eb2e572598c38bf3aabf69e98060de1c0e7c9ab46e1700b0b42e289e1f89253d50b127477bfaf28a4c52789d6dc8e", + "public_key": + "9009dd73a10f95e1e38d4b48cd7a4f33b4818cb8a1a459f40aefee084424ff79", + "path": "//12", + "address": "5SttCZFEHFnMifyjVBRwrNnJ3Jkkj7Q8fAFyrC7kkZzug9Uu" + }, + { + "private_key": + "1d7f7a2427d5faed4b8b213dfc36eee2e151dfd06c86ad60f89d1aef87a33304f42ac059c6e1c2ef60f8a4418e5c89bba28463468c4069a45a801433a463386c", + "public_key": + "002ae52405c711f9491613fff34dec1a98f1faa23c1116134f4606281cef111d", + "path": "/soft", + "address": "5PeF7ibXbVA19CjhnTjzsLvcHRSzSJE9iXjQWCJusaUjof2A" + } + ] + }, + { + "seed": "29d7841cc3d184a4c88d0ffdb401b3f4a701f87ad6aa6437209564acc60095ca", + "private_key": + "0fd85bd16963072829efa9408f07fc6b8ceba6a5ddfaa4f9fdb63fe88811ce0f21bc79cf627139f3058fb7d7682d147f48a0ad2747f8e94387a96d93ea73df79", + "public_key": + "44ccf3330654b34880723dcdd87fb15af1f59f662b9534799629609e57d7236a", + "path": "", + "address": "32JQJuWjzZdUBC5BqaibWvyim7z7TMVrhW9TAYFXiCVTKNG8", + "coin": "STAFI", + "child": [ + { + "private_key": + "33095a02479ca7c82344d5139b68d6909855a37ab37c2690883966cd6ea25b09e46e41782b1cc8df1ec2be9e84093ba057deb895f2184c5b2ff94a5e09d7b739", + "public_key": + "54f9fefbef2d9feb044168900ccf0ba16b1563031b557affbadee097323f2c08", + "path": "//0", + "address": "32fcTU7gHKmNCxkGKa1ASzoopXKEENjGd2YcGeMRNVH1vhai" + }, + { + "private_key": + "cbe9da9e82e428f225cb2a3fb50072304ed10e9733ce35eee791b8f89c82080fb40a1b4abaff29c9b0aa40f1a52cbd8c1d1a876a8661a3634726c186180ee8de", + "public_key": + "5a2b2535711d558d794279cabee2c05fabef146588b50163846426e4eaede829", + "path": "/1", + "address": "32nRJBGbPU17PBWEWms2aL88vWVwzLBtZUhavtQsB2BVEYnj" + }, + { + "private_key": + "ec4a826bb6bdbf43945cf5310dfcde8fa5487c19783dc8614e7816958a3f090eddafda60b6421ca3942c16e9d5a3a6cd1005b950d885693f4ec3b16c19d20e85", + "public_key": + "ced64a1498db1b13b2cbaf6ff8dc3031c1481cb6b405435d2d5fcfd3b5672763", + "path": "//hard", + "address": "35RPh689GqyFiyrC1ruQ1NefiLdZf4vKR3PZYsDZj6khXuGa" + }, + { + "private_key": + "be4d31ba1055bd8bf45277cc6fd771ab7a57aa1071465ece73c0b922daf2a4099f684123c7baacd822b1812338919b975713125322189e35bb7a0e449fabf0ce", + "public_key": + "9412dbac6d989509c196e5c72e0906d74f5bd2e5fc86e77dd36fe9da6c265279", + "path": "//1", + "address": "346LroVq2w83VuoBUDzdSqVLBP6qGA8bcm8GSdxXUu8e5SdB" + }, + { + "private_key": + "c896c660b62a57d17a3a8d8a6dc7aa148ae82cbf18f2021f388e396dc9fc390be1a5c2d50cfc9d25c72140983e490583bfd0de0b4a9986540bd025c3d149e564", + "public_key": + "a8f0c7b6e6b03b8be66b58fb07fd8c01bf0d23a95273d9709dc042f905063018", + "path": "/0", + "address": "34Zhjyapsbe2eZ99LizJ29mV3tJVLMXHJNivuVcsjRB9XZrw" + }, + { + "private_key": + "5517f2a7b8a316575d7c827b08332306dfc539c2a6a72468693a685c793f350d4bccfb749b5b449158a1127d6e65e03f33103b491317fb4f35185459c0ef2f5b", + "public_key": + "844fb044a8ca4806247f9a9da2e89e08f064e12f2c22c54ce429471e1b22ae7a", + "path": "//12", + "address": "33jgAT33ZFTeqB3h4J9dKuWEgzMMrT2ZF51EyJ6AkDb5RvBL" + }, + { + "private_key": + "0a23d8912b57d3eed756334dd9e4096a8dda126ff6e87e4dbe7a14ea759ed409f88fd1f64509286d0597e4baff37d9dadbfb200161cb203e3ce11ed00c6e18b3", + "public_key": + "20cc1f01e41f5b472cae67fd324c181e7f09e73bb4ed9c5d0b9a27c94e669107", + "path": "/soft", + "address": "31VCLeBAARZHeXbgvt7gKzyEjMSZFsLRfyFHC2aN7mSDJZfR" + } + ] + }, + { + "seed": "499e789ab3c7e0eb83b0747c029d3f6aeddec4afe8d6dcde65a7e0db0feff779", + "private_key": + "db3f1cdc7b5e53f6871cc10acbd886b3ff4e27c092ede5a6ef2aec67a4fc0c0be2a1f2182e655439412612930f9896bab42176766a7004f8e9742289fd9b52b7", + "public_key": + "14170b56d589e2187f9cec90b35ab03eeb5d78a55c9619341508ff89b32b1a66", + "path": "", + "address": "1TLobER5xRi5ykMfS9J9wrAgTLwwuTsY66LUsc4xYV2fwD1", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "8e29d78726258f51eed2bde13c50d9e56dd44fa5192c7cc20dfd77d42ff88d0937e41007f915074934d5073ccba9ff86111f87d4487ac0fe6c54576b2cc1ea0f", + "public_key": + "1663d6997e7b82a1a9d5542d9c21895d23d6d2bb730c0304f8f4241f063dcb17", + "path": "//0", + "address": "1WMiGv4Xsve9gNH36p4dePzyECSq7pzLQd8tSMwZzW5xvv9" + }, + { + "private_key": + "d8a563623802cfb8dca1fe1ccd57215b167c764fa4c240d5e2b4d8e6d09c5d001e04091d261a5fbc3cc4a22aa82f5df6e9f9711f642d9c0caae1ff320b62c245", + "public_key": + "aed3841620019a826cc08c22ea5064907054c4278318051da3355be528f60c1a", + "path": "/1", + "address": "14xEAb5noA1bXTrbTKJ3t9LYAZbw9CaPafU4bNuafUcDLbC9" + }, + { + "private_key": + "097b3299907c7aa613f2513d5ae2811b03db363189d1c590c6df47ab1004700b17c7b3e95ec8befd57ad444481b575e427da361db7d0ac945815cde8a01a253e", + "public_key": + "bedc1a9f8a468138fdb918e690fb8f85dc21af140ea2cf4ab4b972dc72d2ad7a", + "path": "//hard", + "address": "15KFUzbXbnteWP1T68QevmQG9rJmvAx8uCzjwXvsygsL8aGb" + }, + { + "private_key": + "8a601feb845142161351d4ebeceb55f405f818dc3ff6c34dc252cc28c6ff820c2141ebbd9b85c80c0ef2b0cfd4b6b5f3cb312f82d648938e4984174ad928f289", + "public_key": + "bc6eb7b6197420c0c1ce2fe01e549f1a7e57adcafa99433b6360612ad0588555", + "path": "//1", + "address": "15G4tknxYv8XFK22vb8dLS7x5Q8wmvu5DFgEpbf6QNEpWNoA" + }, + { + "private_key": + "bdc4614deac9b4dab563b660e30b66a2f03c8ca7dfafe65f36ed9b12f075620fe0f9e7a7511c57d698322972eac3e0b57c98af26244de4e0b07fb99bc4616d3e", + "public_key": + "365a91636b1b1c7fb2081579f4036c50dd8c237ec024328edbe287b30818167b", + "path": "/0", + "address": "12EGVRawny5UUqTNi5XBmwqJm8CkWFzEg9S9FUUW3is2dksJ" + }, + { + "private_key": + "6e6afcddb48f546f1a80cd532084f6e2a53c834675c8c90f4c0e0b5505d55f0d6e39de879ca1e879eb14a3b64b208c2296d42c5cf94cd416065c65825931561c", + "public_key": + "2e975fc8ad60e4ff601348fb8d8d17627635c41b656a590f3840a27929132557", + "path": "//12", + "address": "1246AsbgL1ieR227Hrg74sPwYkbRzAvnYVBZMFQgYs7pXSKa" + }, + { + "private_key": + "c50e6c1fd7f222e1f8f25f113c5f07a7136e495337e5853cae0e8a770c14ec04c2dd53687566b33e181dec433a48b7f26c51b286e13b790a1321225e798e966d", + "public_key": + "fc06170062cb4f3be9b30286c8019c6570f5b0c416694bbbd80cd38c239a7501", + "path": "/soft", + "address": "16hSsotpkp1GmwELTZnsZn5Sk812m8PMoHD3z34fnbTeC7Y7" + } + ] + }, + { + "seed": "bd2364eafef8f2bfac89d19d5e500d10260d7189b43a768e6481a305e7c068f3", + "private_key": + "6ed83be12ad4a6ec5a8ada25808bce36acf9fe271193db13429733109d6ae00de3fc859430f9dbf4188ef21a9b8a7a3090b575cbfb133b4d47f4c2725e980681", + "public_key": + "80437a34b63b3b0db16a613245e3803dbbee770f67a2b07439202dbf11f88e67", + "path": "", + "address": "33eNLwrxPGwCip568bhb9XVMdtMNmHjfvM5ufa7CQu5e5cRx", + "coin": "STAFI", + "child": [ + { + "private_key": + "a0bc6c10166c78b4e0852bbbd17402069a146c5f261c96d59ec9ee9721a1920f8a1d4242ee7cf131a1bc12a5b14f04073b71458b819b379df7f0fa56e3039e27", + "public_key": + "ba1d572f614acc586142910af8c3d051a80f6a6167723b9f3cc84ad42dfac850", + "path": "//0", + "address": "34xDnwzxLafY5VzbKH1oA2xuFykuGXZzqYHk5zs3sfs4cZ8F" + }, + { + "private_key": + "a1434a2a4e4666a0b08c36134fd6e9a71f774ff904952110c8120eed3e3dd2004b62edcbcd1b2c0a4d65f589399dd9f1ba91bd4e37a8e46a5d47528ae1c4f8e0", + "public_key": + "520fcb8214128fb6458635d41d8a706f063a96cf70beea3724297af92ec3e969", + "path": "/1", + "address": "32bnnitdNTdoVzJt4ppr1X4NwVDwbiYwwsmq5ir68YygENHV" + }, + { + "private_key": + "e7080e3ad687fbd8ac593f57e4ef00243e266d73ebbc2c54477a8a7f6c01610a75faf61011fb53bbb54abe15219293e927a1d338ef36fb3e8c7ba9f705987527", + "public_key": + "ae635c4b4b5056f758fd65dd80820baddeec88a46883440e5ffdb3ff88632c68", + "path": "//hard", + "address": "34gr2374NUBPscGCv1WbwAw9as4VLvnKmi5XFrrufp5Zc2om" + }, + { + "private_key": + "b82fbbe8d1d0a2748016178bdff0cb754a4bac3ee1f355c239856ffa028e2d0d17b8387fa58de39e486194a54ca816d2c47c1bd195b8d9613d90e81e512df76a", + "public_key": + "46a01dbacd368ffd87259ead73c8e31c0af610046f16efbf5e11804b14b31979", + "path": "//1", + "address": "32Lo5zT2goNnfcF5j9XwqAqEXqWSH5Hm2jC6AkCEVZhWV8Kf" + }, + { + "private_key": + "6541e3b3602c2d0597a7b4221d76e79d5fe4e76eb3751def6764dd76e90f880e40bbea63c1190cc09397c21184fcba016a9b37bd3a6e01996c7a2c4999f0a3d0", + "public_key": + "241cfb55d23209931266d0d40530c935051b4c94fd8f1b0d4d7391ab30b3e232", + "path": "/0", + "address": "31ZYWAqNXcNGqGaanXWkgCdR6KMcgNos6pbrGt6PmNmLyHfA" + }, + { + "private_key": + "c5cd90e4eea8a0f54237f31742bf61f27f17b5d597ea739681271a44f14d290d451fdc88c4224c8ca44211c0b45f0748e0836580cf9b201250de24e9c086a861", + "public_key": + "2efcf2189630f8b1ba75ab8e5899d86a3c99c5afc5ed748880c30c7aaf36d418", + "path": "//12", + "address": "31ooWkZNXRyiwim2XKZcnwtbcvuo2oLm7qQVLc1bhh2aL97q" + }, + { + "private_key": + "977d50550deb489f864f784c30e32928d6720f93b06dafcb0bf9eeae5b690b0560ae6b237bace8f09c2b3322edd09730899d8060fe9cdf76a6077dcab90c4583", + "public_key": + "1c12c8769562441b0ebd9e9b7439188e578fcf2e10dcb86c99fcfed52445bf43", + "path": "/soft", + "address": "31P16EQocoLn11vUURvnBAdC2sgnN7jpFt5ufF13RcuEZoFj" + } + ] + }, + { + "seed": "a9ab54d60883fa08cea39b3cc597e2d8c2a50129a62e3f90b259ceac67adcfb5", + "private_key": + "3c3a7675f2b501e95d9f68e1d43889132e7435cbb98ba99be257079599e3db0f2663841233a8c922fec0cba9e6eddcfed5e2faea50e1a5fc4103cb4c5d2c7ff8", + "public_key": + "c04df7bd1967e6e2ea8272fde46f1915add40fefc22f4fb73b84bfd0cac50212", + "path": "", + "address": "25DjwX2ZifNbBUHtD6S5wMvxxucbhGZahbm4WCCx6yE7ZkK2", + "coin": "ACALA", + "child": [ + { + "private_key": + "0e91408cf8b7d19df5ee41a9a975a8bde60a78c8de05690d3472a40d69b3210878e1617002b9bcdc3be898a41b527683fab8badcd0087cfed694ab5631b1840b", + "public_key": + "8414f27633269c22b2d49e9ee4c46ff5cee8a4ea34fc3712f837cf169e8fb97a", + "path": "//0", + "address": "23rn8SKsJFyfbmwugc5a63Ri3GjeZkKWSUKiEhudkkoVtfg3" + }, + { + "private_key": + "cb883f4e76379cd2af2a9bf02910b477a2dad700b915b411ca11a6246f02a908de17b4dc88d435b0b4d5af7e1e56819377ce52048b707b816757e2216d7227ba", + "public_key": + "3a228dac02a7662f15ecf5a7675d89fc3780e5523f25d44daf6400c3e9e6973c", + "path": "/1", + "address": "22BpdM6KAhGauWZVciuwWzcqfS5Eio6d8kxmS5ChsifG7L2p" + }, + { + "private_key": + "bc7e5742a8f0889bd42b6b3628cf5d1454890f164b2c7b737c8e94db67f3340be44b1cca3db7cd44dfcf0c5e036b96ce28a0622963d67c504ab7b2a7c7434b26", + "public_key": + "b6e6d41769e8e1fd5d82eacc8987e5a144d1cada0d24721f92cd3dc4db796b64", + "path": "//hard", + "address": "251QsUVfSCdCcvQrNVm3REUiqpQjzjvuNPFivDtUt64XjqgL" + }, + { + "private_key": + "43f52cfb5906db326db5ed43c1e3eb431f1a3956aa575d3783e70989f976910ca9d2fa89470d01ee02cf40858f2daab4d6cb956aa3f42954007af8d444ecd338", + "public_key": + "1aff1ce757a43d5219530ee6890b903bb8c99b29444fda8be65d31dc9b306f5b", + "path": "//1", + "address": "21UzcdCT6u7YuGyyMLSorGKtBGFMbYwdgZDgHFKpZsyJMWa3" + }, + { + "private_key": + "b3ff013c0b059dab358c83d8abc699695e2bc73e0d024d576e1f6e1ab2515600ef5089176988b64e021d9bf7aecd018c2be1b10856adffdd2afb98c7e7c93af5", + "public_key": + "9837f1e1c45d171969a878b771c6cfdadd09f3b9208d3049d9af38eca1a69055", + "path": "/0", + "address": "24KBUyqB6bGLwaWhu6UTg3yAefchmFvdg22MJg6XJVhxnMgD" + }, + { + "private_key": + "abcc696eee487cdf5393600a6f3afea35b322a7d5c61cd43bb4b3f586d4c9a0b51170240097f31489b9dd153d095a7f2262da7ad5939844e703ede0026fdb027", + "public_key": + "04b11f256698a15d7a3af7dc010645eb99c121436b5727950c2f9d2f179cff76", + "path": "//12", + "address": "zykPmPsW75o2cnictCchn7uhptWm9V7cTc2wJzg4SuLDabN" + }, + { + "private_key": + "298a427d49751aca80962f0a2d96813f1facfff916494c640312c495513ded0617c0ec2ab127064cf72b0bd563e89155e849e47ca7079af598fc3a0c98b2bad2", + "public_key": + "88f63ad72f3bb9a06c602bffd9bcb1d6c51190b16ae63a703045896a5880cf4b", + "path": "/soft", + "address": "23yBF5Tug5Zcg3UtqVTPiM7Y9bRwc6wnXnnqYnXwUw54yHd5" + } + ] + }, + { + "seed": "bd7d9d7c09620a2a9fd8096a02e93d8b35b8edf2b8959569518e4e1278adf9a0", + "private_key": + "2e2022ece4d4d3794f49e2653a53325d88b4c3d1b45673b6e26dcbb1d9289c0a3ddefcdf23d76d52ad96fc5be7822a6e5aac32f7fff643050c1a62fdffbc9a18", + "public_key": + "3e3a208de6f1306ca2d6621073359749a9919302d6a5bea502807cc49383ec38", + "path": "", + "address": "329nQYVhK6EFPx5MLefAZQeHCNhT1tG3xmTSvUuUdkJF3Nd5", + "coin": "STAFI", + "child": [ + { + "private_key": + "b885456a24da1817ab4049d3392037ab69d2adafd6baf3815a3676f04a04b60e2466569ef950cb6ccd9a92de5de63b57beb3179a46ea3fa09fc73fcd4636ce39", + "public_key": + "7ca86a2e0f38077fb7fdfee913958c08e08ec075381bd01947aa1d106bdf1033", + "path": "//0", + "address": "33Ze8wxTfUeNzWJyt34rfrUdDQageNuFjtm3Wh6KSLrV29MY" + }, + { + "private_key": + "ffe7e2b7ca1847828c3bb6ee197ab301be44b26bde1db84b9f27b3fc6e704a0a06ec1b596e21fed9ff3dceb2fa05c2c886ab93178f3c8286ed900181d9b687ff", + "public_key": + "8ed43c0adab6f0a3a499c8904bcd34cb533fd4a13060983058fb6b8b694c7856", + "path": "/1", + "address": "33yU1wJj8G4nYintNhGN3dyYGZa2ncuzMZrQqbNbuZkVVwXN" + }, + { + "private_key": + "dfa3b1f3a19867095022f8a4468b2e093dee983b4721e1e0c02039c396901f089e46a44dc97039af578aed5c4ac57cf556f76622429d37676b5cd8ec7b90f86b", + "public_key": + "1e28670d59f6be9cf422e83af47d997c8970ec6fbe8ff5861000e587885f6a40", + "path": "//hard", + "address": "31RjcHJ72sdtJsRjJiVjkjr3pVtHDJNY17hwBBACqugiggP6" + }, + { + "private_key": + "7534c784c95f467470bdb3567226b750ea3de39b40f18b763d0892ee688cf50c51dec335349d2224ffe314c37129f0cb1aefcb06a8b410a74fe26fa696c27266", + "public_key": + "62466d06c798e8418540d001538667492f2c2a01afe4141700f26f23503c9e00", + "path": "//1", + "address": "32y3nRqjKVBtArn6bH99nixPsemGJR2czjxE9ZUcUHihPakL" + }, + { + "private_key": + "484b7a426a41f3b7e0e3cea721954052ca171f4e568661e033b15cde6805660c345052242c9ebbf0217ffb190f6add16deae27bc5194cc7f7f9ad7fb4e4a9c65", + "public_key": + "f650158fb235e7e6d4730c04a9d8ead76dd840f4b2c9769e0a0133441e195039", + "path": "/0", + "address": "36K9jt2xeA2LSxtmgAy5wz5vzcZdC2Ac8nAUAyaSD8WtJQav" + }, + { + "private_key": + "6cbc7f85b72c19d353805dd61c0f2499194f69ed952f40cf25710dfec0cd810c27664e1e15792cb647f2286c150efffc6e3444a1d3eb34d9deb4d215f1fa631b", + "public_key": + "b6da39508104b35813a277a3601cc5af65e6f4f35801fbca780c52625c797d0d", + "path": "//12", + "address": "34swiDvYbLn5qq4Y3VaWVcdCnZX5V6uTMWxG8CcL6dwkdXBv" + }, + { + "private_key": + "aa0a375dbad4dd53c7910eea3ab2b2229f8f7d99c13665e6bbcd630ce4b8790e8c6ce866962b79b4312716ec36c7e97f2720fdf6896484afc181dd133ae54445", + "public_key": + "ba3886b8f891ee24e5e22199da998ce1b9215e31459703bf75a6aa0f892c384c", + "path": "/soft", + "address": "34xMsM7ovFNxvTU8HAZgLBeVatQkHHe7y8km73bHrYVGx8Qw" + } + ] + }, + { + "seed": "205dc9cb31c63c30f427581b595305bc26c530a43674f6b0c076f25b672496a0", + "private_key": + "6ba313ee402b551ce5efe5a77ab8e96d73a0543e1800871c2b8f12b01ed0120ee83500089eecca437b42e6fa76029474a33008ea455e801277e3eb7077d6e01f", + "public_key": + "9e7f8da326c7003ca8c3601c7f02f09a12e9cb7de53d00e762983a4bfb70fb09", + "path": "", + "address": "14apTWQxraLARUQhy9s71eKFxPg4fvpfAP677QVq1NAqxktF", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "04d6f1be979fc17aa25970665de5312a2131ba858e87d39493ef1d6b831c640804a2b824901557f21e7603327d2c62547aa49341f4239513d4dfbce4066f609f", + "public_key": + "66c8933b95c4578f2a3b80d1052c2ab2a91560fc4b05b7edfffdaa09a961fa2b", + "path": "//0", + "address": "13KmU7fZg2bijc3fTLFx3JPF3XmtLtVWH61d1CUwrHZmvAVv" + }, + { + "private_key": + "0b66847e82d3c3ac71a67d8ec496967041e1d248ac6c4e6111cee442c69c360904759e9bb55e92b2b9fa54a5c6c1b2951dbcdb0f48618ee790afa72f08c5ece1", + "public_key": + "8c7b2d9e6462415bb10042861c718b929dbd9865e3e1fd44a714a66b2cd59834", + "path": "/1", + "address": "14BCJ8pHTFf22zJzQwvs6e4zuy5WUTU8r3jegGLHhnHiad29" + }, + { + "private_key": + "15b31dbfd504a75780641fa1c15ddb5f86db1acc60f2db6c3af237df59bb720eb02162cfe374e5d7d51bb8af1033dc1e61269fa8bd0d076e821ce0c7f5fe66f7", + "public_key": + "bc4d4da8c6301f9294775cb2752cfabef7e5238b82bc2edb561ea9e6092cab5b", + "path": "//hard", + "address": "15Fty3Mj7uFmzwjUgEb1SeGURfR84EbFfUYJEm2XnQxQh4i4" + }, + { + "private_key": + "ca2f66a5567fa12c4a889c6b2d8c3423fcdedd025f1812fae82fafe15a7a190ca5514c979d3bb16f104538cda7bb3f8149ef096cf0e357176840ea353061d113", + "public_key": + "4cb3351f1230dccf9109a647fd381866d7ded6631fa718260ccc293616637e65", + "path": "//1", + "address": "12jZskTM5VU5WwWFnEQnzSK2AP9v6L7rFUnitziyncZjpmaJ" + }, + { + "private_key": + "5fb20b222087f13eae9804790637568f441bd93923c7210844d701f786e47f0529410f3bebddeed1aab6049ff00ddddaea5ee31e80a87fc91bab3f7de29cd5ac", + "public_key": + "ba3081a7289526529dc00814e60e67232746f2fb8869f886eead2c93963b9138", + "path": "/0", + "address": "15D8KKxzL8bqEMhBd7tTTKFPS47BNm4uxzHixVzTKzUZSRNT" + }, + { + "private_key": + "58732abb508643a2f07cf1701bc5d2ca9cffe97818bc48de38d586f935bfa908de8eecaeef77247f6216030ff0b37dbdd7d1dfeef46cada663dc6ffcae0c2c88", + "public_key": + "32c6c7b4aebce8cfbd59af65fec40124fbba87889ab312827359d97ffd81660f", + "path": "//12", + "address": "129aSmVLXNmbVcViU8GpUmNGnRGprJQQeUZGC5tHKWqBfzxy" + }, + { + "private_key": + "53a8cb7ac4465b2659f4c6ce1f15839795f27aacb8a46c76b59a521c848cb102c2b78a591c7cbf1b7384558f61cadb18773d42b74846b4d66597cbf6132e3377", + "public_key": + "0cdff0e7cb71232efa7c59e64a196cc4f532ea0eb1392611ce0966ac258fa746", + "path": "/soft", + "address": "1Ht6k34gPmuJcGvnfPD35oVmBdpj3S1y22XRqQavjpnbEiQ" + } + ] + }, + { + "seed": "ac11f27001328a14e7317f8986f44c0dfc55f55829d4e3b0862a839caf8f9614", + "private_key": + "9dfc9014f075657b727990fd352424ca38274fba2196d8f5efab9658ba9b8708bbcfec6161a9c89b7de4653d89415da36fc5caf7b11e7444a62f86ca5779177e", + "public_key": + "b21b977a3bb6768473ca0b2424fbe67b39e40246176ba7ada30e17c0c52dd944", + "path": "", + "address": "152XikqQ83845A2TsSYUKHd28p98EaKrh17RutCuRMLMN2Ss", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "4b84a4bab3ae959e06cd8ce852ee4f497c79461be954fec0ac663ac2037ba109c5b4aa7a2d094f866754100be3bb7b8dea5525b07f0eaf2f965f3a16c81357ed", + "public_key": + "1a2418f87123312c3bebcd35a0e1ef54e215b0e3999b2fc6f257eb2c78c33e5f", + "path": "//0", + "address": "1bGyA4k6vC3Kbh8qXkufVQpfFFX3TQcJU27PQZNwDzXvQaP" + }, + { + "private_key": + "21448fabca58ae8b9e945b112a1e84d1dfed5dd3fb72b1e9e69847bbacbcd001f47d4d7d6470e200295a42f2092e24a7e9dd5f1cff9926cbbeb8209107cd92e2", + "public_key": + "605ea51b34d42ea31a76f95765187156abc6c1e8396200c333a40acf0175d65a", + "path": "/1", + "address": "13BMiKMhQgNtsP9G3goHgtPNRB7tDd3kVRgM4LrMdRSEARsk" + }, + { + "private_key": + "a7e02a0967975077a9658e8baaadabb220e5ca3455eb4cff7dee1036eae4a709455d482553709697ab9e5ca87f1c1be6dda797265b66c01b0305c3e41410b9f9", + "public_key": + "fecb7e7680d13f0545bec8bc60b4a5eaea3116a4804f934d41ff932a6ed06838", + "path": "//hard", + "address": "16m5cZL49Nw6NBTCgRA5xV61RckmosgwyxzZGuSFaGPd7cTZ" + }, + { + "private_key": + "5d561eb8cc14bb16743978808ecff3ad93d5489b064ca66e5637605abf692e0e7b3e11c8f0d000877b0b523e0771f459fc9a64f8405229821e50ff551a008403", + "public_key": + "bc625b9723c78cbf35e9df396884facb47903b80e57bd04166504d9482c5c264", + "path": "//1", + "address": "15G1DoPd2bFrjm23hksFZe1ddo7CpMKAAo5D7ch2h1nANuTL" + }, + { + "private_key": + "385e25f9cae8af04012de82219de823ebb52ad1206aa17b173db39d79d6c1c085d9dcdb3eb5df56c109e1f8ea2b3e20ac09093188a100ec776535006474e4f2f", + "public_key": + "f2b2c2fe19346ed4e0c98f186371211505c08a6166e0e2949022115145ef9f33", + "path": "/0", + "address": "16VDh6usJnLwHc7LxtfKBH85FpbjMmHZbXGC4gmjArGoPdy8" + }, + { + "private_key": + "dc40bcd440a6bc25bab3ad3ef087b40c728daf224eedffe5f0b0c4e707df0b091a43161dea2999e04c04b7445b8abe03bc62b433e5ab44ecce1941b8cf1f510e", + "public_key": + "9e5ab9dc8c8f8b72f94b545d737a34e7a9db2924688c5328e054643c09667334", + "path": "//12", + "address": "14adWzKxAyQfYuubJs1NmnAGaq9x4W5CgWU6VXuDtRtxNHP1" + }, + { + "private_key": + "ce89f9c21670bbd63e269d3ffc17eaf2ff1f5227b2750dbb25517904df6bad080610b1fa148050ed01cb25333b711b419a7979b85535da66ce96b5f2cea82203", + "public_key": + "72ecdbfeb0b0eb58312ac6cde137cc8df7e1d4b5beb37e593d18fe2311a61708", + "path": "/soft", + "address": "13bgpc7NvHhsNA4W4egmL3FZ4jXafkryyKs8MkJrwYLv7a3z" + } + ] + }, + { + "seed": "1d6003ab1270c6baa8f3c56ced146d7e9a246e8a198c391546f9b142db0a5afa", + "private_key": + "8a651f44205520b6884c575ba53a49fd5f9b849d642cf56543b0a0d4d329b90a738dd6f945f473bf339b72d023e399cb9b88f2ba1a9cd194c12a44004a471542", + "public_key": + "92fdd724ba32ad493e02ad910c7a69550be89994e75400fbdc8b38c30a85973d", + "path": "", + "address": "344vZu5X7qCVnV3d8XANeFAXhSKujv8WgJjTX5duJqhsYyxs", + "coin": "STAFI", + "child": [ + { + "private_key": + "016575c1068806234dee5b32cc2cc1f08e1f8ccb8ee0b78d37568455470b9c09e2f7ac9f1cf2ec8982187a856fc037da33ed7061384324c1ae4da2dcc9ac7f99", + "public_key": + "a00590ad1174188f736ee67f99c4a2f7ebd12802f55ff9d649b158af90eece32", + "path": "//0", + "address": "34N1V6dZk69XGjTQGDAqcZSFmC7eyX6stnAJijj5JLPLnMpE" + }, + { + "private_key": + "bae099e10bbf2634c0f9be41a061dbbdccea25337d2c8508078dfc60edca9f09f87d76526abcdfb2a6dbfffdf47cbdf3543f605fc8762fcc6ab03dc7692f7151", + "public_key": + "86465bf1c5d342fe1f89cee33594c654ae864bf5219bc724e1db74a591a6a515", + "path": "/1", + "address": "33nFVGBvDMPKVX1x66Jv6Vf9NQ994L2W6JVm9NBSK2r9Rxh1" + }, + { + "private_key": + "86f7e0422cc0b32cb241f23a2c90d04a0c69ad5ee9f13bf2bc7806c6acadff0bd3a037cc89734fee844ccffa981ac8d2a81028c80616654721e4f34fc776bb34", + "public_key": + "72fc75850b57abbaa061aa7b8cb856d1eab78ede70159744e941990736cc0b35", + "path": "//hard", + "address": "33LxdDzCip6ojbK84pj53fsHbRsyVrBqeQG7Y5k1QfDRK66r" + }, + { + "private_key": + "1eadecb454fefd63bad24dec178a792479021bd117cdc16a5db7c832bcdb9c0ac6b7d9736d52c589a3f1c388639898204fe6a8786970440cb2cca26febfbd09c", + "public_key": + "968cd220cd6a20081ba1a8eea112f40388173596f6173b6fc6b04243cde61834", + "path": "//1", + "address": "349bBj3ejkG7SbFP5Csg2eLrdHuBjwAwfUYAssreUSLWT42j" + }, + { + "private_key": + "1ed16881b0105bb0127ebbaacaba48c43033a23bdb805f31db566529390a940efac94a425cf3799dc834803a2eaa5b4b5ef7601d44bd33e7c112ee103e3892b9", + "public_key": + "0659835a3a8729a6040358900b19f8c9562209d66bc6db41932e8c5b4eed5910", + "path": "/0", + "address": "2ztX3nGYHCw5vU7T1dV1X2rhGSeraDt8dubSpUow72fEugmA" + }, + { + "private_key": + "8c60c65371530c086d25040ad2dfcce5429477746fbab71ddac70501b2896a0d4ef525d87fd29b054db3834de542882780b7e0a35951ef7727330cefd7cff864", + "public_key": + "16d0d08c12b2db37bc968c688e1238d5423d8036f6f9084a08d96ae1b9096b7a", + "path": "//12", + "address": "31G7FjeD1HG5nusQq3VF1JVRMoBZwCPv9jWJpFoDcz4FfUdB" + }, + { + "private_key": + "898be67bc7585b88719a1e25270b481a17538e7abef29d3e815ef8a359da600d14a3c6ccff0e5cbe1067808f9f5c03b644ba6e4b20667f17979e4735802f8904", + "public_key": + "fe9c8ffc1ce33a4aa3f12fb943adfb3d2feb8db29559d5306458a2f99d5b2479", + "path": "/soft", + "address": "36W2qnfo4muQwntTXr3oKLGTpv5Xwdn3U8yKc1YBG1wsZ6FD" + } + ] + }, + { + "seed": "c31e132b9ac941cd51c2617d8377e921cda8549cf9f54ad7e181c97fc3d44076", + "private_key": + "1c9a9e28a098706ae44e6c84121c3963e8961cf8a28f0293ef50cf3310a5720de90fd31062cee3c1213b2e5143d14ee5176d8d712ad39dd09f1e153a03074343", + "public_key": + "6a1f816d2eac2574a33fc7bc2609fd27d4f4e8c1827fe85be3744b4570258462", + "path": "", + "address": "EyTxD3nJwkKhwFTKY3cN2zem7yApLdqXn236HbboVndN7rN", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "c18474dbf139107b721f379148e2fe9481977e29c63f0d39db5b5082c638c808313dca7a8baad2feb35195d3c3d7fb076df96676a0f67db2da685be9621fbaef", + "public_key": + "544d0ee5a0657dc43b4c30994f9e68354dd218144345d78b50d0c588e0c50d52", + "path": "//0", + "address": "EUrRxh6YvRm75xoQAezou1xErE4sGcaKnANCgtTZaRm9cDx" + }, + { + "private_key": + "e8fabd7fde3fb68e03aa870c0b3ac03867b2189466e30da0616d9de3ccc6520ddcef654215c6af4367c00af0c19f3be29c37c7e6d7504828cd01947633f6153b", + "public_key": + "ceb64cfdd59d0528c9143ef85fac411a97ebd5a8811902747735fca9ecb80209", + "path": "/1", + "address": "HFMY5c7nmFxkpZw9KsVBneegrCLeknGQUXViSj7EY1nX43R" + }, + { + "private_key": + "11ec0184c597d481dede63297204f6c43f16567b37245775395efdf8fc92b508140a7d1d8589e9019cc2c2411000cb3d96f6a4d4fc76b9777ff347ed92787e78", + "public_key": + "a29f000d1c00b5612f2f4406f800b154e8082ca16ec15d8bcadc3f2f0a89f040", + "path": "//hard", + "address": "GFYWRGy9JeZKQdcQxFUjiE4gBXomcnEfC6k84HyYxDuMp7X" + }, + { + "private_key": + "8e1a6b71f69cc6d1816c63eb2bc8196f33ebcda835249320563b7eb76e48e708c68df134519b299091e64d55717e5e7b39f0677910dbbb172e94d91aab1b8f5f", + "public_key": + "48face5e99d40a9dfa0e2dcfb8736355392557f4208ed3ae95a20a4851b9c869", + "path": "//1", + "address": "EE1UEuWXAYH4jfWrdijHuRFD9hoSrbTNu8wUcS1fSMUEBwx" + }, + { + "private_key": + "84bebd4cd025513294792df339b12f23d074b8ca0addaef81adf2441b5b7bb0a6ec4cd841301c3a9adddd765304c37bea092127a8914e3a03e42e223571c683f", + "public_key": + "26d58318319f7f04ecb76b76d4edaeac4653fa4366cca2b4e00b058362afa751", + "path": "/0", + "address": "DTEmFV1oBKpPdhwSMF3VFRpTFXwpgGzB2ASUAzB19QMKuLV" + }, + { + "private_key": + "36d87ea3989b1f58c1b76724e30ddae569d148149921c4676eb5530d7d88ef094587d88e5c6a36a5b0843fcd3de956c9d64133ec641cc5c2ccd1a060639d6727", + "public_key": + "247f7c4c90d7574be31a4af24ce5d4618f9587d7a1a10fb3931560ee502eab58", + "path": "//12", + "address": "DQB7VYqto9TMgaKfjBVS7VFZexn4sUpKDKCdV9CiSmiXScj" + }, + { + "private_key": + "ccc93d669428f0b8f015a297c6e0c1f21feb809e89e92e2643bf69a0e8006109652b97c5764f85da511ac7d78f4ba4f932df58f1f25a72696fe76b2fc9709f27", + "public_key": + "4c8554ce261daf8d89a0a94eedee9c382795f0e65c2ab4c48623a29be43e2f3a", + "path": "/soft", + "address": "EJemJeaky4qdRHXVsx6GaZvXNxjNMphRqHPgFivK671Q3u1" + } + ] + }, + { + "seed": "5ff449b6535c14aec63a453971198a93e86a20af80810859955d0eb86a9070bb", + "private_key": + "83aca61e92df0890e9e6b3b5a5293884e1de99226a7db05ddf6f17b56caf8b08066f542dcd0a444cda6b6240c76d006fa40bba474805838a4883e0e9c2b375fa", + "public_key": + "b6414a7e10536f7a15a56b95b4d41ac30642dc144911a9e5ad8da81b85db870f", + "path": "", + "address": "34sAHFX4en94et2JavrKmuGaAPxBAE1p1Uo1B638tPcdW1Z4", + "coin": "STAFI", + "child": [ + { + "private_key": + "819609cc4433ee28b5ea2895a528dcd47cfb56dfa94908687d4e808ac8075508ddf380b85cec95f46987d545467009a830b86c10742bda23232c4e672a42040e", + "public_key": + "c088cc34e63b914ac04ad4dfb7481c19931d6033b987943cab6c79f630fd6d5c", + "path": "//0", + "address": "356e14CUcF3M59q1vr4SKLfSykvcY7axShLvBaz7erHbiMpa" + }, + { + "private_key": + "27cab9046d0170e701369eb9855e618b2875d69ad91d0750ac001c733064e301716a3a9c83689930ef855d35b58b471aafa6de6f14724852e4f6fee35bea358e", + "public_key": + "a8a61b7be3390c883b9a25740ff3330b7f7c38673956a1d6e069772b1b7d7378", + "path": "/1", + "address": "34ZKZPq5pam1gWnn7Zz6FTC7TmbpN6ZhGFrZ8jJX9gaiP2Rg" + }, + { + "private_key": + "906f98890952208341aec5b47ea7d58ab7b9810414943632e7ef01ede2a2c60cb36b3803ea6320cee3ce7a9315d240bdcc0ea0aa91c97d35f8905b9cc7be7c3a", + "public_key": + "f20ada38f850c32d491cbf2b07ecf697150f79928ea453a41871425fce3df84c", + "path": "//hard", + "address": "36DYywD7KRVNLsBumHwVTJaMJckVRnHePe8Yfs4AHryHL8ke" + }, + { + "private_key": + "0fad2cabe123016d4ea794225df855c6f98c0282376406041518beb8f582130b3c30221dc5276138f73411b703d64b0ef36f0121d23b5fdbf2a40f4ff62951e0", + "public_key": + "2a528f60208b4274284aab819c4f003bfbc7ddc7db9cec808a2046fe91e4ae26", + "path": "//1", + "address": "31hghy1kaGs4Ea1PnTDUTSDasSG1LLTjLhmpF3W72WLFLG48" + }, + { + "private_key": + "400b586af12dfd060aa18bb0c6f322b32aefde7d0cd6e3dcda1dfb42731e0808b461081b45e469c06c5c3d850e5b2ecde01c71bec90d543ea21b86ac566494de", + "public_key": + "ea21d5c3053ea629c6d463f83e60ff090dec8f1d7ef5351e39d4cf4992e6143d", + "path": "/0", + "address": "363BRhQeKyRfuBHrb1N6v2ZNooVFmCmTwTo8DNpbDi9NVCRE" + }, + { + "private_key": + "0ad84b7ddd3ded89009f9fad86a68d49f5cf22dcde718f10b6ce559e2a769f0e9e205286b4b90d47e184e64abd359cc22259eaf96130b53bc45e7458259c2ba8", + "public_key": + "243c0db2c3b06cc85ad2ef1efab5c58eab8a11dd4d43344e21e3dce188869d78", + "path": "//12", + "address": "31ZhjXLQ8Hb15Cz72czeAv6FUTmE7PHHD266AydWKLrz8eK7" + }, + { + "private_key": + "c905ef64311b54d1b896a1f580815d2d46ff17edb257e4020a1649d074fc130fc21a184356fd41dd78486b268085bc8263a114403106e1ea17d7f8c9dae59581", + "public_key": + "104950587a6a016747f00f9fc975e6edac6a50c22818e6d7c4ef7bcca4774c54", + "path": "/soft", + "address": "317YiSw5FtxuQ5nHyYhFqEaqdBiLAJJg8Y1AP2gk8fkkr7ME" + } + ] + }, + { + "seed": "6ebe031d1cd7945e2735a70b54381126a19d21010ac1837eaf7de608e28a052b", + "private_key": + "e3a232c27b7ef9593c2ef736d2f27c79ef76722a46211dd1c9f7180bd29ae70c9221ad6fd8ae57d958dd22d7cb29eed0ab7170613709b87da5577538b4fae018", + "public_key": + "7a7d4487b73ba41d3c3cca20b33cb7d9f383c17927a9727e3fc2efef222a7f0d", + "path": "", + "address": "33WoDzCZaoKYjThbLdkH5cUgZirgsyFr6CuNaFWebW18cj6V", + "coin": "STAFI", + "child": [ + { + "private_key": + "5e783d46d0fbc1c8cce06f9cf775cdc6c043f5f6c6a06728672b0d08764c3a0d7243f13b17537b27abcc5ac4142cde3a5b8d3301258d9b024819ed3291c6782e", + "public_key": + "9a1cbc510dd845a0edeb8dde1ee9a30f8ae1352d8f8cb8e997779615c5238a7d", + "path": "//0", + "address": "34EG5emNHhQkJHdbEgAw8es3MzuVHZ3xi67pTLnhJ5uc37qo" + }, + { + "private_key": + "6bb46b92d3a7684926a4654e84e6271802980527527a7c0f7f83f2fc42208309beabe581eeeac379aacbaf59a35ccd9d3ecd5966da169213547c675b27332979", + "public_key": + "3ae2e387547a8e7a632f01b97a18c1268deb378fc0fb818b1771d87f2b40bc49", + "path": "/1", + "address": "325QM8U8NTd66bjVdCzN2VtuXRgppH2L5p7EgXpREsxxu6L2" + }, + { + "private_key": + "ae0fa326b8aa1816f89a332ff68c0007108c6623429550560dc1f5d4ef34830b96534e0b2e499a559a2109e2c7b4aa0d2662a28ad06aad49d774d45ddd423a27", + "public_key": + "1458a245bfa0ec220e8739f3a7ae123d0ea464e37de08f203f53e09705c24071", + "path": "//hard", + "address": "31CsTWq2Er68BSZFihL6ahrJmPewshgXAbi8mbsQW4XAvgVC" + }, + { + "private_key": + "07ddd3ce633335532d478f748fadbddf48ebfd4a6872f3d0b3944d46ec85030936defb7a77bddd6227c1c65d49db39e63931e1cc80a480aab7e055da5c685346", + "public_key": + "760b59a4bb7bcd18c8f22e7bc757af74cceb59fd4252edb25966f89964c1754e", + "path": "//1", + "address": "33QyC8B1iwU5W4wJfoJ5vEJK8RJCQn2ZV65oGFuhhUKNd35f" + }, + { + "private_key": + "66b3b1c00e7b3d2b365badb9c9206cc02b69d8cac6d889c6bc92d3503dab310ea8a0ece8eee65f51c7b00ab5b595adb76a2f1145a09a6d2d69ff9f854bbb4ef5", + "public_key": + "ba5093a2373bb3f4e5faa1692c9352d1f37750a94229f59ba506e12add265432", + "path": "/0", + "address": "34xV1j7szgJkECkkRHKBsUwdWcM1rtbgSeJz9jodFWwnf8kA" + }, + { + "private_key": + "5a447d636bd520eb9fe18923b9ff071a521ef3ad7ee3960eb8700aeb8482f508154582f7fb0b8eb37491785bf4f4db5e11d6767b6724b8169e2f5d8ed88a35de", + "public_key": + "cc207082f6df464c03c6260db6573e091553c4bc62c23feda71347c75b91793b", + "path": "//12", + "address": "35MqaLL2i6b8S8RUJWpeY6gWVUkXnfTz7Y2jWq8GdQv5RBMq" + }, + { + "private_key": + "234c648d746e345be385f319de0ae0afa429b8a8f9f9d6bb5783ec6f9a33390567affadbefc789d045955538024713b0331a3ef30d952b3f0a324295c87221c5", + "public_key": + "2894899e164b61cb35c037171d8e117c9c7ba84fe8e66fc9ad201aa9594bb30c", + "path": "/soft", + "address": "31fQDBGoay6kA6ewYYSbYvF63gsBcPgc4vB1yGM61rLsoPKR" + } + ] + }, + { + "seed": "655d3830b8508ead2345a211daf223560c74286c75c37a00aacfedb60ca0ac4a", + "private_key": + "389533a45294cb9fd2ae8f764c28e79c4be60c131982880ef0810b57ee343408e408104db77146848875279bca143de08174ab2bf20b08ae30cfe9c667242deb", + "public_key": + "00526f559f2f976261eb315064e7aba310226117a5c9ada64a6cfeadb4509d2d", + "path": "", + "address": "zt25EzQKMX9rYLkzddxmyV9Uak2eHkJYad4j7FP8KPqFAG5", + "coin": "ACALA", + "child": [ + { + "private_key": + "03fa2e109c2697bcc915f6e15fe9862d06f68dd1ee13001130750244b3f54c09b140467baa05d06eb18ecb1e4a3675ccad7b1ef978e69214c856abd780e4bbb0", + "public_key": + "325498b8d07fc346dff4817fdebd19162a1b82077b2669e06c4c5829e6c38123", + "path": "//0", + "address": "221b7MPcLzkMf4G5EibzQwjLAc9mjnVqUYKw11oWt2hAYo1X" + }, + { + "private_key": + "09a0e16914d454b68a8b1381bee6c8d532848d69e03d726a03c4aa6b0267c706c94f253e2aa28e60163b57751f63568b774db6b871dff917535d35f9d229218c", + "public_key": + "501834ec4bf9013f9ef73956ca068b819301d182b080a07d9affea24c111441d", + "path": "/1", + "address": "22gccBLYmLRujpanaNH2i7e9tgdLA87mPZbfK5ZwfVDM19Cg" + }, + { + "private_key": + "05d7bc3b3bc7b8885cbfbb463321525f486729eea55ae05e8af9c8342633240b223cab9831991d4f51311d55758f6d4b9e88396685fca0484c4b8e82fba9493a", + "public_key": + "0c75f5848ac96a883eced3a24ed4525d7f19a3e3f7f814ccd7a5abe7d1fa750a", + "path": "//hard", + "address": "219wCdt4w3CB5n3nxMByrrcsKcYbfHzbNL5HzBYZrHCSSvTS" + }, + { + "private_key": + "8fb4105418363292e48a6356a88d544d3617f2372082c819e2155c98f8da9e0c4d58bb5e10cefea2dd74960787973dfdc1a5baaaf9fa946b0a458b10786b2358", + "public_key": + "462511139859e2c7e3210234a093b5caec4e406cd57a678489d46697906d7b30", + "path": "//1", + "address": "22TZwyge6RZj9bk7kXyrjXhN9RTviJDsKErj3gmNYtu4MQZH" + }, + { + "private_key": + "15c18f8a6c5bcf8a78b8893a896238e1ef9a2cecc4ea1682d8ec199e06ab3a0bb3dd1eb5f3d2ee2dbb899c88f54b6bbc8f456119ea9c7324cd5097d564467622", + "public_key": + "b6920f09f91e75fb9a607e8a3b5f5f765501d61e5a4dc75998020d4f7386b66d", + "path": "/0", + "address": "24zygvgKwksK4moDqBg1wx5QtZ8AHMFVnD4ZwFUEJHqMRdFz" + }, + { + "private_key": + "2effabe5edeb12c2a7c9849db4dae8dc27a617abe2355c35e0baa1f82c65660b1473d0c7cd94341d0936e862b6b0d6c4a1341e9a87792ba9e3572aa01d1096f0", + "public_key": + "fe728739946a0a0c0adf4cebbdc9656eba4dccbf901984cf7b048862369ff84f", + "path": "//12", + "address": "26dDmdktXq6piyyG9vhcMZhrJPEBnbKdjRq7dbjjrRd1VJF5" + }, + { + "private_key": + "92ea0feec5a79a66d34ee1a6511ee7daef0aaad9c89f3e91621bb6dd175ed10997c5f3a9f051bcb06177572690ba25face65a9da67f242899f7abfd32da50536", + "public_key": + "764db1f71a0c159cf8c18ffcf7a9315fc8bd006a7823d8bc03485b0e4bfb345a", + "path": "/soft", + "address": "23YiKJSAi2gSHuiEevgLPKLFypsBM7TLTJ4gLwoDN7huyJyq" + } + ] + }, + { + "seed": "2185a0b678d5b3854171a2b5c24429c8b12b7b908723d5b13d3612dc00611f1c", + "private_key": + "8907229e069d777f0fd888989a322b2d5dbeaaa576575d142adfe9fef0f6f60e785fcfc7900616eeb2e5ef36a32aaa8ebb78fe7836c664337af30b9c5cbb8bbd", + "public_key": + "dc3acdc0d8dfc5d7b521f5a2c131e65b267fed3e6702dd191b3fad270d1eee7c", + "path": "", + "address": "15ym1B4LSqSWkJoSFn2nfyMaiFyhDXmg4wBMx7fck2B2ccTQ", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "671831fd035f88fd1819bf1679e650892aee8e2d3110588ea1ae70e877fe800cb9ab6b6083551aa9e6eaaf445fa66bef89a7fd0dcfdf64345f99dcbc17fce517", + "public_key": + "c0f1ef778e0316d6813dee861175576e0f7f51d51882f3a84790d79d3db19269", + "path": "//0", + "address": "15Mz4hGYnc9UxeURXUp5gSJYGrfRGhVHhWKryLnQf4Re7TDr" + }, + { + "private_key": + "d2e9be72ba6101e58b894a119035a39c1cf4c0b2dc25d131a16efc16b2daba0d1a18f143a974ddd1c932b69a300c46874d9eb375c0ef66c3b9653d692e1a1c72", + "public_key": + "a0228321f8fccc06efdeed1d40a190ed111d99e7225b66780ce1ded394a11236", + "path": "/1", + "address": "14cxv17w56mMXgG8Nk8C3yRDTtyEofJFQUpAYrCRo2sTVa6S" + }, + { + "private_key": + "af2f7a83f353649adf57cbf6f002c3a75812d0e171c230137e4b6d443a42c609ec55c0e146ae04b618db765baf0d17abf73f8b56050737a8c5e3805b29b642d3", + "public_key": + "e088fe3b310be55646b6c7707e9dc9ee53ee54b233cff315e0bcb411e645e350", + "path": "//hard", + "address": "165QRTLYBWnLpscwbbP8m8c5n74RQaLCYGPAETkvnra4z6TZ" + }, + { + "private_key": + "8d6e4361fa3c1d8c4651ab9eaaa433baf62a8e24817e9d96e2195b1e8479a10eb98500d83af0ed16ffa38886aa5e9aa86c4e0949b4ee1f49322695604093cadb", + "public_key": + "c61b5c97626a434fdbe799778322a78660d0681483b854194d38d28f693a1056", + "path": "//1", + "address": "15UkcLejfPr9tzHd9DAPfvgVcJjuEAufsQLua8WnsZWvNn3P" + }, + { + "private_key": + "cc4fa294adaf01d0937de6956f138f65fcde09cd197998f7f9ea31059c535e0e1425d5ebaf11e21f55918564879c78b979aff6fc57f52a4014a5a9caec4ef7c8", + "public_key": + "286a361917fffc24f3baf84f6f14a0a01c44f55c781fb618863eaf171679090d", + "path": "/0", + "address": "1uzU57iSHpsiJZUJKqRfK1gc1dT1hWAU5MjKFH9JqTHQxyD" + }, + { + "private_key": + "e0314b0df9ba1b387a65b7542a932ab86aa88b91a1dd24e35f82ac84a801fc0c1e68397792b40d53c2a96623c26ad9ba3e3165e81288167b085878a399a47acc", + "public_key": + "7c4bd7d632a9b0c55e3d2ad6a8d769534b5da8e7b362405e4c5b4f35ef968a5b", + "path": "//12", + "address": "13oyU8j52VZgC14NiJ6kGFT4ssDSinxgJjk6wpkSUvmzkRMe" + }, + { + "private_key": + "bf319febee8599ed7fd1ef2b726f251ac5a794b85ea15bc28640965a9c63c303349e9dd880bda54e67d4f99175af4f27b54173036cd2fdae510b4fe55eec094a", + "public_key": + "483b067e74ba438f480f4bb6183d90fb7220ebd66f9ae7f9d55f4191ae7e5823", + "path": "/soft", + "address": "12dhyx6Yg8XnQX7RJ2bn5YMRMgB37ySc3ZD5oQ5zmHpGTxMj" + } + ] + }, + { + "seed": "a1d3adfb14be55d5871258bb4db2a87966c21971069d88906576c7d80da1b633", + "private_key": + "63f66ec3eb73fc44d6f744393e4299aece99a590ba508d7e52033e01464ce70bb9af171a6fbf1659be5232dfc9ebd2832a475da380f18c937a79429bf8139181", + "public_key": + "bc419968a968416ccd1f8df53df67d52a3843549306a35636f9a7765ecddfe31", + "path": "", + "address": "258S5JfbTdek4yWyWk3b9tDrY2CPYeH7BAbBD8sQAkR6GUUP", + "coin": "ACALA", + "child": [ + { + "private_key": + "3c1ab906e4297e29efbf13ebad0a86edc13696cfbda62f58148bca062525e80e21e7bdf1e9772b071f0a6685f2172256af1d432658c4bd06493488197ec84cae", + "public_key": + "f073d6afe5e1f015d49e3f268a81b477a39fcca3211ca28942e6fdaa6ba09509", + "path": "//0", + "address": "26JsVL5nLm5soNfjNVoqABwuquitFo4DQ6HkLua8wmWrxNE9" + }, + { + "private_key": + "3ad7063064726beda0c6a6672abfcee11a851db02966da919d5c604d04b81a0696d88f00ab90b7f38714ddc2f05aed9530814baac19385a1d8052cfd00ef8e75", + "public_key": + "ca9c6a367f05b9eeb927ec542405bf1be852a487d4915ba122cdf151a3ffe658", + "path": "/1", + "address": "25TFiuS7vmJKfNqKkPJP4Df8gjNBQAmZbeTZqqYSt1Uxh27T" + }, + { + "private_key": + "ebf0acfa4c5c951b7e497e8f9ecd09d79e7c0222f923bf7ab245c82d50b5c509e0f8563cf893d496412b4fa012f409dd5fbe502409dad7c8bfc4a3ad305c71d1", + "public_key": + "ccdad5421da4a7c13b6bc60752ae0368e8fb152228711c6a7e19688c4de83477", + "path": "//hard", + "address": "25WCMu6m3W21HG2QVDUzL7wK3htaC5fB7KhGWEk4Gvdwidaq" + }, + { + "private_key": + "3f01d381f6b6386f7b25405f6f0812c37116734f210448fe53ab8b17e998b60a8b1b11a2b2d11cf257a4a29c2f4ec98c02eb1f30a3f9591891d752264a137f88", + "public_key": + "40176eee0095de659ef69f17cd9e5c475337a69e04ca748f4e9bb120b42f6c11", + "path": "//1", + "address": "22KdcR7FAQefHADiGkn7cxSuLV2tMv52gBCR5DwbX12Nvwhc" + }, + { + "private_key": + "915786db86d62b33271fbe8396115516f561449e890be608f7cd09260652170c79897afcbe82168ec49073c5a500cde1800fa050e75b179d908e8a3cd64d3c66", + "public_key": + "eed1f591aee9cae38d39171a02d1f697694951ea1290762daada1c8d0b42f811", + "path": "/0", + "address": "26GjMSEn2PmPthY5vpiu8K4arYpToJRyneJAK4t1t2nW729m" + }, + { + "private_key": + "15ba93745cf7e116504165b962870cb88f7b5d3b61266ebfd2d8a9a62ae01f0e67da02693bd86def07828ce871ba6129bc421132a24e913ee80b951775cb4413", + "public_key": + "94614010d4bc6dd4ffd0231c9cf0fac868dd03c47af9d9da3b876c7586a3164e", + "path": "//12", + "address": "24E9ZYgGmbo4P1WYJkaxyx2G9KiYJ7CcLZ7pxEU3YPsu2wXk" + }, + { + "private_key": + "a7b96e24cde261fbc8a5f20113fba5066ec752d9eded57a2b7519806f948b60faa5f9bbd4e4aff3d8e9fea6cb82668c67c5469f5e9a4b8b2e954fa0fca85d41f", + "public_key": + "b05d817e0d1130b93d667c370e5ad30dcfaa1488ebb482e9164d63b5603fff09", + "path": "/soft", + "address": "24rqnoAYCh7b64C6DX4h8JS9Vxzowxu7j2skTTYRwJcCt83D" + } + ] + }, + { + "seed": "ee66f26259aac5c75cae9f9264ef2b0182743e36dd7e05b8c36c4d8e9d1dcb98", + "private_key": + "5c2ede874b150d27a030d1be2ad7a676c90a85b5bc5f60bacf7e3f6310b2640a0ab7026d80864d97c4c18dd40e8781e62d11e723485068b50d7c2345f7999a5d", + "public_key": + "842be4217987b23d80ad0058fdee352631180352b79bb333937bc69002ddc42f", + "path": "", + "address": "23rtwkfkec22E55K9NNBrMqM7gHoawrSR9podudgkEe87D2X", + "coin": "ACALA", + "child": [ + { + "private_key": + "7fc2b589f2bc8363a6347b302d824b439efbd37571198d9cf38048400269a00c54d628ac003fb6abbfebfa3d3938df0a52e04709f6f1ad42b6548cfbfd1f0e3d", + "public_key": + "7ef60782d6b5cade6df547060d57a52d48a78d32bd338c043dbf571065a67f02", + "path": "//0", + "address": "23k4hrFiU19uE5ejWoXUdrssZaSBr1EGKGVvzzqfAHYhdxyj" + }, + { + "private_key": + "f65bf4ed1b13b9ae63f6fa6fb2290648a152aa72641444bbee4a3cc90c342d0266ec9dc7082671e45c20023590fec3d1011065c48b4e6fa6ba4eb8b629002e70", + "public_key": + "10df4b34bfe6e6ffd2c7681f7aea3bc502c7d6a8edf197e0f72e206580655f72", + "path": "/1", + "address": "21FigcxzvQUvbL3FzZ8jFg9673XgGDf4ZZWDxpQw5DEopCab" + }, + { + "private_key": + "f5746e53c44526f626eb0d6f997ad6d58cebf6b6ad70775af2b12ece698bd40bbe445fecdff6d2c5a2d5fcfb230f2a5abe90e3dc6d14f460020619fc21cadb4e", + "public_key": + "0626ccd29b254d4bc5e304a8aadc1af87623b625dd86e437743c4902275b2a66", + "path": "//hard", + "address": "211fQ6Vq8iVibTQ5yfeTErt2Qc3p47Qmj5whiaKcph78hVxk" + }, + { + "private_key": + "c75757a0067feabf2a0918089162d2ca29ee763c20ff638abe9de24bb0bfdb0bdeba4b61812518a88dd03b5a98ec988f42089dd6d9693005d191bd0ff4e86dbd", + "public_key": + "04b344708e20a2cad0abba6f039400a92c69d0133673c7e1f70300c21e776455", + "path": "//1", + "address": "zym2jcAVppcAVWm5rcDb3EGJuxH4yoVvtiiWb3RuUe2a4pq" + }, + { + "private_key": + "b0b25fb1f02fef90b09c25afe284531506817f51143c922ab8cf2d863a30fa0286fb28e7d86ace65c6cac24403a60871576c1a6b7167c87a4e39c2f69f96e6ab", + "public_key": + "40715a1484c8e93c6d47365dfcefb5613feab7dd7e21b048b7bbfd531effdf3a", + "path": "/0", + "address": "22L6KgE6yeJ7uCMbjbb9YtkCLG2E24UWtufqgAFK1NTNX9nQ" + }, + { + "private_key": + "d1b647ef608c6f22f7f8ec3f1131ae1c75e2c373fdd775ecc028cb7f11b2710bc1a9b345361109798b89a1b8005eada0cd7e23240603519c932012236b0cc927", + "public_key": + "e85110442a4e43120fd7e70543834f43b795eee77fdb355fab869b5cd19cf879", + "path": "//12", + "address": "268Cmx68iaks52zoXKiGFN2TmRU7JF7b9wpKKnFK9PzQxSEc" + }, + { + "private_key": + "699f2e78abf419c982f71d7861dc8a1761d2b0181e86ba0a6a7f624842bd8802460ff298a9fdb218e501f3355ebe86e3c988404fdf82fa00ed2042a0da1dfb1e", + "public_key": + "6aadc41fa01f5b3d5a1d3df00b733a2bcdb2da8d5701688a7c08ed0c5bba1a06", + "path": "/soft", + "address": "23HUHEiMs8PJVjGNith47EdH9nSsMAGrdXE4gNeZxQC1j9Dh" + } + ] + }, + { + "seed": "0708cb19a275e65ff11aa6cfdb4fafd080388a85ddbad5077e196416ae637a1e", + "private_key": + "0a90fa734fb9190f1ced07bbe5e3e611c3218f62fb15626c21fed6834b1ccb099ac8d1771876dea7a17d61ba4807976e16114a9eb5ab772810736f6c33b5f2bb", + "public_key": + "6abb909d3acfe03618783bc35b365c894783dbe9afbfd853fbf781d55e02da4c", + "path": "", + "address": "33A8xuVTyQPXRMJSzwr6KevgdeXfN9VYhU2Ndv2KTeFmuq7X", + "coin": "STAFI", + "child": [ + { + "private_key": + "bd3ae942055fc0fdbfcd59847a8b6b8b45db06f3d69c1427b596ef1c1c0a980e8511a924aa7ac1b1d6c450782326b2c28912c5e08d838e689a147252c10d9571", + "public_key": + "60c6a2edc5a9728e0788a2025696a11b1e64faae71cb581bafb765c3e6f27436", + "path": "//0", + "address": "32w5mtdJrN6v8BTGNnAyn8urhF4JT3h1a2oZh36Lm4DXav4P" + }, + { + "private_key": + "69f209509aa09fecfd78434573fa088a7a5eb6a87b552e613f90b4e1f0a83e002070ac462e7075bf01ea5df59d7bc56325190e2ac9275d44e8f286b4c2b20d7b", + "public_key": + "dc2ff34b9e8989de6518ed9221bc64bc5cd1122f0949e12b7e95b45589c5b32d", + "path": "/1", + "address": "35itx1x8yc6Wdsqgn79RV29VLjFKN3bE8sAux34NW8w96v3j" + }, + { + "private_key": + "ac6b57e32c89c08d282485e2a5f05a171572a483ab46695490ecd218bb70d10b98e369ea510182630ff463f9880ea705fdf014521e049497eb7c022a5b798a22", + "public_key": + "c0a7b12488603b4ec4af25704bbae1d51ec0865b7bfaf5ddda4433d018e04926", + "path": "//hard", + "address": "356oBMNV1LTvEXTLz9YGwGHREnNkGyqyziLfcriLDuaTcku8" + }, + { + "private_key": + "d0bea395e6215e04de4ed2d2f09030e5b2bd6764a73940ab3ff9f690090c820c944f65463d3377b4622bdf5bf73ee091c636cb31295463d3041a493541d655d6", + "public_key": + "f211061c8a3e4b2f6c1475832f28901d246e6affca8da50cb075421667f8af48", + "path": "//1", + "address": "36DapGS8Qr6EFvbTEd7CrLzzarMMnh338mcLZhqKiSjJN1g7" + }, + { + "private_key": + "bc9acd463e7e0ae982280c32495260fe9a45e83f3b2d6c0de6b10f164f9e420fd977747bd8b53471c525bf8abad5426edab2e5d3e973aca99717a206f6853794", + "public_key": + "eefb5ae0ebbafaf5571f402b07d61708bc5a3c0b06956b3ed2d2563c39aaa15f", + "path": "/0", + "address": "369YEb7G3R1rspvqFiGZzdnGuhY8jCPKtKZUwoTFvnzHCJ16" + }, + { + "private_key": + "20519177f84a01bff51690492aabf5c6cc6e6a9a491f8315a5f4a0f01e157b0da22ef538fb96f1f5944200f5ac460f7a4ab52c2ad05107e17162622452a8d070", + "public_key": + "36f832063a424af39118981403e15fe7e0de4deb218dc8797f02443d0a20c609", + "path": "//12", + "address": "31zGV8CRDnzX1A4NpWteroYP6zsoePqqh5Dqm12dKLgdb8nh" + }, + { + "private_key": + "52d2b220b0a92e960c224f0b38c7f77a50a1d5cab1b461c87bd6cd53a198410a716949ec7c70e83b6bddf2c62696699c70a11482b22c2d66f3f4fa7fc80a755f", + "public_key": + "82a7dc96b2b814b7f4acb4c33427f1f571b900fff65e23b59e94c1a706a7db16", + "path": "/soft", + "address": "33hWG5kPmLibhowL6gLe755nxk4mdUue1mc755sCMvuk2UKr" + } + ] + }, + { + "seed": "1470e3ca250f03feba5e24af412295ebb5d628a5b1d4ad332d9472f8d105fc15", + "private_key": + "02fd38702532b2a8cc43b57e9ee08bcc27235c2acc5ac986d0c948c1e0bf130f1d2ed167255b0b93f247e171358fa9459447fcab60341f4a96c62c60b3572a5c", + "public_key": + "d2d93b42ea583da5273f5b5b14df30b4025b7eb6c88c77ee65f1f0f1b6479709", + "path": "", + "address": "5UQUxhZJUvx4ZvjJQVucVVdDoupgDaHtsoHn4E6QD8wEo4kP", + "coin": "CHAINX", + "child": [ + { + "private_key": + "b09e5152be47891b15ef3f3b21ab4f99dd2842d07fdc27abc9a9cfc491e4a60c04f429585e3113248097d07b78022f0e0d3a7da9c81e5e6881cfcb281d73bb97", + "public_key": + "84d301957354701f55a85bff2345310a809af24246cec523931f966032017263", + "path": "//0", + "address": "5SeBNowkPcuDpeQpcE1VbCk4qyH4qLrqap7oGA3PJYF6YKNW" + }, + { + "private_key": + "6dd3d61346cdf614d4dc0d2e9879a1d079c038f21a4977bae38162724a45de0655f3a481732a4863c8c6e3c1f91b79cdf598588e0b1e6de8548dbd241fcd4acd", + "public_key": + "ee8ffb172b07e0ff6cca4932ce2318a9a9ae187ffb0032675165fd8ffcb4d46b", + "path": "/1", + "address": "5V2pYPJ7jb7GqWwiPPJnUgTgAzMSYCDvZWwGSCtDN7VRwy7R" + }, + { + "private_key": + "b53a4b11ef92e0b5e690e45eb2df2f1f9f990ba7c4a7e8dbab8daf06296ccb08c90752232a4c8f2f690fbe03af3e3d3da89fb49d6f9c7282747be949c23ca352", + "public_key": + "ecedead3adf0f3744c73e4111eec2ed50f6ef6cfdc64b2dae689366dd2ec1346", + "path": "//hard", + "address": "5UzgMKQz3uFEmFfBXjq8kvAASKvk22fGUNzn1puXUds74r9n" + }, + { + "private_key": + "b6c6003f685c5169f248c42abd34a6922be6ab942e934575346fc33a6d701e09bcba88c6430f05cda30e3e9d3335998c0a9d9d1bb72074d8de87f6bf6d5cb0be", + "public_key": + "c272b2facfd38d9e5b99018b589b3c1c056a1bc59b3f6f3bf651d5403ea0215e", + "path": "//1", + "address": "5U2yjfvCFvj6Bhvio82xUq4SbHiB1s2G8xoLvHcriYKBi2rU" + }, + { + "private_key": + "bd6d60005ab8f2c7deb93888d4ac131b885d3e0cff80e4e120f72710ace1650d535dbbc80b6bb546d56e1427d39a2ef1a35b087eb6f999d1e91d2afe13f2f8eb", + "public_key": + "f8499a8973b5212619c9720b9f550b2aacf3588e05b934448a308416dba80508", + "path": "/0", + "address": "5VFa7b4WD9Qy7gEfyH9fr2djzwiExYMt8mqWZyvvXSfGjTz7" + }, + { + "private_key": + "33cb2a166da29b2713f86688368519f25184ece07b1fde4e17684c633a2d4408b08f042d8cf5f89daaa09bb4ed08d8eb996e9098073233c81849e0c92de57275", + "public_key": + "4cf0549eacfaa86630d12abab15e558d7ddec6d880dc866bd2cee6e08b8b0d7d", + "path": "//12", + "address": "5RNuQXZBrGQ5zLaiqS1VyxKgDtT85hzPQrPNbWD7hqWDFnr7" + }, + { + "private_key": + "21a621902418af1a15419bcfae3d7dd09dacfd5a31322290cf2721499292930fc536f64ac95bb7fe962f040f70d69e34251a30807647d76c8fca5437692d7276", + "public_key": + "68bf21943a826c23f7578561bf3bc625313f4a1e1d221287b13fa48813139677", + "path": "/soft", + "address": "5S1N8c9eZveeXNngBcJmHwjx1KqHrNf54QVi2g228N2rzLm9" + } + ] + }, + { + "seed": "d8554687427b418c01bc3cd76b0583c5fb9c0f78fdd607c736d731bdb3be8f30", + "private_key": + "83ce6d1514f19bda48f62be36b30bc1803533a06561182bdf2be3f04731f3a0c4214090eeef9025bba179c81af96e504f9d9308a10999abfda36518ff250bf1b", + "public_key": + "02ae8ee9a9de7ca9291cfdd3f64f1e672d671aa0db55a7bbe88b1fd351c6145b", + "path": "", + "address": "14Wx89oBvZaDTbVwLMMCaAK39zj2vGB6oGtYNdXbwF9WHUk", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "b132e9434f8de9e4c8ea0bdbaa646681436226380d1c08b1f478160fa5df4c0ea3f8d0b80ce060ef13c8eb4afbe0f4456bda53b07bc1e52ec9db05f930bc52ca", + "public_key": + "8ad4f66e45cfdf95d89474e82476205811e83f04eba1ef261c45eb1c15bdc50e", + "path": "//0", + "address": "1492sXiu8BSLuFdjoMico8eecJNQY279GRxub1XHLmcCWPLN" + }, + { + "private_key": + "49eabeb71fcb4cd7519eed0bb7757603ddeb05726154549853adadc2190f2f0143698c01e829b888ba13bf08ab2c84edbef99494882a91845050d297f1ecbbbb", + "public_key": + "f0fd0b776a84b904a17c6ca1843ea98fd5e2d2590f0cf161c129101ff466b55b", + "path": "/1", + "address": "16SyfR6BViFUozF76MNyWLNuRmY8qVF1yVsKnqKvQcSt8HXx" + }, + { + "private_key": + "4c6638eb395b99eeb1e73d8e70d4508bec272163717201ea6267828e58bc160f988954028606c761cf7e0b5c0ede662e07bfb83e2db423e7efad3861bd11c66d", + "public_key": + "78eb3b423b9147dcd3ae16414cf35c376497e1d4927f3038cc46254839168411", + "path": "//hard", + "address": "13jYdDrPNeuSPo7u5k2W4pjfvZdaUAhRCrfE3EfAsaWbcnQD" + }, + { + "private_key": + "c11df9ef517c207e8354bf0f2995165ac701f194b42994db1cd3a3cba10ccf0ed99dc07ffcf124cc89538691da8a149ff35ddb577934e67d5cd82587b716584f", + "public_key": + "62c84490357195d152c2482110e549894a480c0fa5d9f026d3a1fc58fa5e7704", + "path": "//1", + "address": "13EXBiEg9VuejuxhS26DsiwK1mEcamq86VzCFAGNBUQLygJE" + }, + { + "private_key": + "3ebfa19428662388b0f2db72b45a52e1f14ab168207600424ab10e79211de804c15c2cd682f2f2ad51d159671702ea2b8eaa6943ca561c23abd7796b778dea9b", + "public_key": + "f6d5f9275309d4a7fba1edcdddf27950bdf222762d9712260f1df48ec97c4e3c", + "path": "/0", + "address": "16aeLtkqZhKuWgot4io6WusxaDj3NfkUo2V7KpYRct6kFJ26" + }, + { + "private_key": + "c846932ddf71408ee3b2e702f55394202adc38634980c2e834e64f71ce721b0f06eb75630727d56fec51952a890ff8e9ed3651cc61a7b19c9f04357f9b4eede6", + "public_key": + "38a295f87e7b672e5e9ac2f15a64aa382dee7b2e59bb7d025e5e77c64e60246f", + "path": "//12", + "address": "12HFypSsATouxBBnN8oNLKNQFqPFb7eNhhoCcL8wdWGgij9o" + }, + { + "private_key": + "b0c084a3088ef62d3f482aab4a971d04ca4eae758fea96d536d31327f0de1a045d2defede21e5900894a94e53d606e4c9c30fe60393527438ce8a4a1ab022393", + "public_key": + "4ec8cbf00691f1a1c4462c224b23ae5808c769fc91195f3343ed8c3752081a18", + "path": "/soft", + "address": "12nJPGzr39h1GVpw7hUZN1LbdfYj3DjVS3k2GQJ2dLw5Vvou" + } + ] + }, + { + "seed": "06166b4a0bd083f3980f832065f0f1b7258b52d0e7db932b5582383cb346e76b", + "private_key": + "1e897cf29e031bda9b98dc8379ad9f14123396d22de3ad7b0116e38be929fa0f5d7af2b7ee391d4702e95ee889d530c531662d63545ea9be853cc2c896add295", + "public_key": + "e02f454ef6fd6010393735ae5ee6cb02fa2378a6b42efe14b802740432fa8b1e", + "path": "", + "address": "HeGHZNRTKpMbVZhx1wd3oFEVeZek5yff575ZYfUnqaDWnPP", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "5d20d916eb5d3a9b67d00216538c4cfd0ad297a119f195521ae6494401c8790c2b4bf03b18eefcef5d2671701c486f47e9b19dd9a04e045ab0b4d405c2bd7608", + "public_key": + "54f935562bdccc109c0bfa59572027919a9c39495ae1580d4f17eda63b8d9c5f", + "path": "//0", + "address": "EVja3DsXmkP2emFm3oMcKzuENS5HcZzUvcwUk21cp7KV3HE" + }, + { + "private_key": + "71f0721a3e858d3800431863ce175bcb94f4c5b97311f7d433807f14be0db8047bd336c82d4161818ca5dd3f6ccc18e08747e3f41e1ecefce35171631fc0643a", + "public_key": + "e09a2e58679e8d589944cb04e69ad8d4d90762015179900eddc92ef21ed36e53", + "path": "/1", + "address": "Hep3ad3vXU1DBJdDfbdaUsNUyez3GKjUk67pm9vBzX6jFB2" + }, + { + "private_key": + "6b40055af0ea9e1e6711123ad549ea4879721981e21e14b4f5a25f66533fef0e721d6ad8e96c4c6e30007b0cd6844bc48dac98c3a6dfb6ac54092a6f11d6c9e2", + "public_key": + "bce0d9a0b8f3eb1854135c411c9a58dfd83114e09db637b7738d19ca51eef522", + "path": "//hard", + "address": "GqyKCNyLrXC33zUfhzcUio5ZzqeDHfXasA2kripMiM76fX5" + }, + { + "private_key": + "bb1fa3f612d7e14ca2105e5187f3c406bdfe7836623c75931c1d2ef19854140c3c12283ef3d64d292358d48d50955e4763fe3a6a7f784d16b9e0446a6cd54d52", + "public_key": + "843a7c93ff4bdc6324a6c06f854159cdda10406c7e5ac8475e0fdefa6ecb3333", + "path": "//1", + "address": "FZhDHryGzQxws1mb5RnywKjzqixMfaE3btd9ykFNmN9dsRT" + }, + { + "private_key": + "354d908178b1479ea02e7a7136f2ff79af2d65a2553c93c549142750d3656f0dc8541e4462c6e0be3425702607bcde8089f9dd1bef6a820d2977eaa41f794af8", + "public_key": + "429eb4e6113dc0d3ab651a580424b520056465870d7e9f98fd5b2bfe57ea0e0c", + "path": "/0", + "address": "E5fpjqLTaPvG9QW2yJjSEyD5yiBgXQdbxGAkrHZfnK7jxux" + }, + { + "private_key": + "8e98a76d4ced92a9348657c4a8e43738965afd4b6a0079b133390bcc1c83bb0bcfa794a8aa8336fcf477a99043554ad6bdcfda5acd10b78e328b40299c706e10", + "public_key": + "1efb60c074db012e30b3b06b2b7735f4f971757f94eef33d00aca7e980e00127", + "path": "//12", + "address": "DGwdSnbbxNLN4UdzDUxGwsg2LnT2v1agwx17k6Qe88C4HRp" + }, + { + "private_key": + "c690ab5500c7e6ba06ed208eb436111cb0305a01d685656181c46668972f600f88b7020a23d72038879008bfaa076f92b575759d3d195b4dfdbe2667a4399fae", + "public_key": + "8c216f4d9334b7898a7cc875a388810507e6dcedfb09c2f7b7960abf5407ab49", + "path": "/soft", + "address": "Fk49soAfSvKvfNzEWjtEk89JfgRYrpanfnyWUSXs2hB6ZZG" + } + ] + }, + { + "seed": "e4efcc563fb5d27b93ebf7cc4996936a0035ce5de97d951fbd17b86ba5629ddc", + "private_key": + "f466cbe6cd676bba644c02d424c4365422bd8424de045c6e0722fdeee23f610afaab5aa32d7737df66f2ad1a55754afb3e83bca56c47208ffb049caa0ac61b99", + "public_key": + "142fabd4936c1030dbf2a6db9943a41cb799e0c530ddf7471b38c1bf24022c51", + "path": "", + "address": "31CfHk9p73CPNA5hEPqRJfwGyC2vGXgx44ufSnyGF6eAhCyB", + "coin": "STAFI", + "child": [ + { + "private_key": + "de3d6135bbc3e224f67789d7ef9b1eab001355a786cd34e274847a39fbac340895833bd8bff8f9c5d388c61d60276906eb5256d61e133b544638f7240aaa882c", + "public_key": + "5a7a6b20ed7b8c5bace1fa3f10e4e68388a8bbb309cdc14d6eb9b85bee365536", + "path": "//0", + "address": "32npr2EGZuApjbNN8pRpKvrE4BVY2tq1oZtsZyLHyDw4ArFp" + }, + { + "private_key": + "4c790e2d4a7b6692bf5e41c956824aeed582c44d9db05d6b14a3066ca029d0017dc76ece9be65799db9a72607f297ad10eed7a782c6aaf6f14a36efe269ab11b", + "public_key": + "6048245a359ffe5032393d7f245950d48822f24442cac2cd7a6111be7c86eb22", + "path": "/1", + "address": "32vSCScjZF1awoKg86bb827jyRgzJbjCb6pXh87hQoxuJouA" + }, + { + "private_key": + "c5a72e631bd63c9013b6bf205844dd8a6559cbf5fcc860e789dc3a1dd4e9d708c13c1b8daa45afed280e8c2ff7c16d044fa67a602b49c15d9941e13e2889ce4b", + "public_key": + "744e993068a4c787ca315bc32ab6893ebe72b97c3cd339427e9080711f1e247a", + "path": "//hard", + "address": "33Nh5EHJLnsc8zp4zRCy7JUT8LHCe7gXR59ey4ZGPsfhP59e" + }, + { + "private_key": + "04acaea0d08b86ba5894c7afe4645dbc7093504e343d4956d782abebf42af9087a158b531c97eabdea1a001ca7ef00de792540465a4967d01e69d8123b128452", + "public_key": + "dcbebe7255cf5bdf02a2ff480f36f11e0f03d451c46913475d441c840456793b", + "path": "//1", + "address": "35jdNHwmeMc1EPtGSyCQSDYpY4p93p281Zc7zjB1igiqYm8Q" + }, + { + "private_key": + "75ab4f33d8fb390322cc6cfce8f53aa5ccb2db373106cbed88c44d2d7cdaab089f57335f3259ef9af00e5600a90758112debb3df6537c8b1a585d99081a608b2", + "public_key": + "8a666d6e85d178df18939feb2d72f2ca4b098ef975096e2a3a51f7e767f15514", + "path": "/0", + "address": "33sfCtvZUEZ6df6VWFnGF22Dse9B79KiHSstTCTysxGnfEEG" + }, + { + "private_key": + "4b2fb831759798d14839c024f3940d2c73a92c8a884f4d4ca528f68a20e72408131c28208e98deb11457a1d775f4bd6a4ee40ce043519dcc2fd4360ab1f27421", + "public_key": + "ccc50136c69f329f0f31c473a624f839cdfbe9299d239e7daf007183057e6434", + "path": "//12", + "address": "35NgTj8YizYptPBdqnHCfaWVZYQGsjEmS5oXEohoi2bzu5ZL" + }, + { + "private_key": + "bcb985e05c61105d1265049d7dbe59a4ffead5bf62f58729604d551d5c33700d907ef3b0c7e436727c46d77976a78f7458c5e3658a20cb4e1b4a5be3ff1439b5", + "public_key": + "300be3697f1088716892e22bb1e599ce260615ed350b0771e30635b29ae6a04d", + "path": "/soft", + "address": "31qBzz5FeEXq3vAdc87R7pk5VhdWdk46FHg94n75fBaVQSYz" + } + ] + }, + { + "seed": "b41ae926ba19156396a2da3cab5b7429c969ec4008bf5230281e611698d6d041", + "private_key": + "fe159bb6f5c552b3c0e54a5e37518679d18c872f22043a10f8c9ac2faf5be3090c4aecd48e0df2272c4893b3306e733b02c1bfbe2a2455bffdd68a6504da5e81", + "public_key": + "12785d3b55be5fa368ff1d8e8873d06b5cb44bbd14d80e8c6d210124c4ff4a3e", + "path": "", + "address": "CzY8oYXHrmQATd7orMqYfE5pHMrNWiDxy7B4A5PWSH9c4ZZ", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "4fc7b7742571f562cfecaf1fc158e8baa1675fe6f413dc8636a032854afe100c702759807c598292484bb2300d5a149e916431cd80f7b34f18845fa6f3b81eeb", + "public_key": + "a2349ba7f20b6673eb78b59d74cab0eeb0824ed9cdbf5cc5467270bd42f13506", + "path": "//0", + "address": "GEzuKoSdY2GdAYyY3Z9iWgrmekHHsaj1EwPc3obSyJvtSxK" + }, + { + "private_key": + "e2e61188bdad2ba85b1a58aa58117c6a8ff929b16aaef09395cab83ef934cd0839fc0966897091ccae064c9c84dcbd8e53714bedfef7291d71977a5376e37a57", + "public_key": + "749c3a013a28a6754e7960365282c925e08ccc0f9bb2c256d1d115c73b1ec94c", + "path": "/1", + "address": "FDDUsgVXHWHhQcfcD79mRrGXifFjVjhW6UaX1QwmgsCQs8A" + }, + { + "private_key": + "3bdc5bc28399ad446eb7009da5b0f4e443c5e7bda0c984bfca92e69e4de02b0b212ebde75261b7285347ebda0b5985ea578f346f6c0cc1b50f92f7cb59e2ac53", + "public_key": + "088819e1ddd71026da911d13b7fda38c3ac9914ac3f46f98a76be53125e3270f", + "path": "//hard", + "address": "CmWLAsCv6U3qk54SGvw8ZFrMw78KWSvPCjag8EL4tH9DxMX" + }, + { + "private_key": + "7c1b1bdb126633e5b6514d2004a724d0464cd584c6a221f4f3ef8b29e36e7d0db270f0924bfda99e7d028a265d814a78679300bc0a9d3c49d6e7c53d9757ddbf", + "public_key": + "5cf43a0fb52260c5878b0246706ef37d5a927f905ff5a459f74ddde51e4a4f72", + "path": "//1", + "address": "EgCURknMHtne5QLfPtd9ff2fFq94HLkT8YzjYtpHk9aKjKJ" + }, + { + "private_key": + "211b3ef011603220b2b2eab0f7f8e6b94eec180a9992ad610cdaca3eed7ca00b2af1824bc597aba0677c53c9c5808860abbb75f0ac2cf94820d5eccd3996c4d5", + "public_key": + "b0d195bd95dec942314948fafe965a7fd9d7e55f0df6081b39a2d8cf28f1a40c", + "path": "/0", + "address": "GaACrcefPGVHKha9eBPhEacweDxFef4626Dybj2eMrYexuA" + }, + { + "private_key": + "0020cbc349613f75718d98791f02321c34dfbde413c83b0521ab50489b9d040f3473da2acf4db04a213adb12419b9910e9648a3c21d973815d91c46f9ec45118", + "public_key": + "a22ac83a440d144954b3e2e9cf94ab3f825db3fe17fac10f6a03241b065cb52c", + "path": "//12", + "address": "GEwz2d5gjU44C5SDzvP5aQHuCU1sx37gBuMvMr2MT3qPGbD" + }, + { + "private_key": + "d32ecdcff333bcc70ecd5686abf26397d263430d888131292a6c8d139b860701e751e22e650635129af353a25eac1ea211e54f7adc86f1550d12d31d68341921", + "public_key": + "96548d2e95bc0f848bdc4a7cb4994307d34436819ab46ff709bd4e2b0aba3950", + "path": "/soft", + "address": "FyRpNRhQ1cJPVMzTuyCW2f21E6fb6QAFqLwLVAW6qWAFF9P" + } + ] + }, + { + "seed": "8fcc935aa88b3f8811c0e0808c8b7934786a52b596af37a10c2f0acc52957287", + "private_key": + "d5f93af490f43d64b38d43207591f8dceffec12e88c1d418d8003bebd10eb30fc38842d65d92ee36ffef5ef599fb68b214ed3c3f4c67cedbd5f0e35b96c698bd", + "public_key": + "700b4df9e213ca4538550663c2d28fe5298726239732475c0b63d75a4cf55c2a", + "path": "", + "address": "5SAw6V7pdewbJT84uH3Axv8wXa18j5NkhyCCwqkev8KYjzLY", + "coin": "CHAINX", + "child": [ + { + "private_key": + "15a219d73a0e90545a4f5e62b3e8a9ef92ea87d3b9fbbb2c40e3460b58860f0f0c848215393e7a30116592b73f9ae21dd7d070bf57d56d6925782ef4af6367c2", + "public_key": + "6cdc133f8755aee43014d04f294a566a8524f684361c2c3dc15b76edeca35d7f", + "path": "//0", + "address": "5S6kvQjJTfvByLicNeYi2q93MBUFiUxCg9tRhxBckhzrBs8G" + }, + { + "private_key": + "e3a92239571fd493d6ee9e6e70f1a3a0af627ebffb82052a14472d5c4fdcf8059d39957fa4850f655640b6cc74cb7b47692e40b476a2abf5bf9063f548e104de", + "public_key": + "e87e9a19594c8504c7b830d3fca611fe0fc7a75febc935e559e52f5245af3b67", + "path": "/1", + "address": "5Uts6Hnv3VeAAJiDHztrKLxcAE5iSa91MQqmfffSmQgiPXQe" + }, + { + "private_key": + "e0f8025aaad3f6529dfba35aa13d6b2f0ab7f61d96e869aff625990e78fa930d90b11d18c2dffd304964df802827eef80dda788fca29170509c202c6b74d7f04", + "public_key": + "781532ce9b4f4dd600d01d4ee81c5bf42db2c8a1f1a9997ca3635c97150b1558", + "path": "//hard", + "address": "5SMURAuHoHQETUjFNwED1Eixpvwnh23ezUmyXtXJUutSea3S" + }, + { + "private_key": + "460fe4f8af9c286e45bd9066e14a0179676f3b14b37b5f464e95c9eda7999e098a6f15c4c6c1a7e90ff8c879c9343c511e30a1af3c4d89580f3058026979fb47", + "public_key": + "e6639088840baf424ddaef3bf47607cc6c010d69e82e40f71580e828a917d371", + "path": "//1", + "address": "5Ur6xtjPQYWBx3kAEMUgvqFmUA7s4K8SdirwRicc9WAVkZy7" + }, + { + "private_key": + "85ed37992505bc7b53d4370526df846b61fc87e4f4d347206bcdc8685a65f1081a38dd82cdb777eb49ecf8df034f2fcd89a4e613f31b003d20186157a67d3f6b", + "public_key": + "dc6957cd6fc84ca766a05c28b0d7e7c91e5bd5a7c0b370ca3f28b3284b80df29", + "path": "/0", + "address": "5Ud2CgLXBjcXYv9G2dP9xHfFSVxuqxzY1RWaZeompR1Z2MTs" + }, + { + "private_key": + "0a1ffa367b05a9910ef70ad26050b0609ad9cd04c335936c7f5f04e95f4e5c0dda6b63ebf0947ba8b2a66e34139e26c79425f514cce2493c3826050382f2ff58", + "public_key": + "6c4477f74a3a8824c18206998db8a6ab43fdf359e9d49b800bc4dca810534c1e", + "path": "//12", + "address": "5S5ytHkFnf64vPPduDtVkfyDCS6jSnZGGMUoZBNRfifgabX2" + }, + { + "private_key": + "4c66c603619b264c5e027cd0e2c182ebefdfdf74146dee202de28a1e853f2205191fb66a05fe805d1b3e1039c1a59728d37090d356f339b0b50cd20ec31890a4", + "public_key": + "eace26df433a062f47775b2efcf744e5ba49daf6b6d77c6df75e761a5aaea765", + "path": "/soft", + "address": "5UwtpTW4yxt7wDjn8qQAH4AGPyBHHu88zW4eZurobnoWMWNz" + } + ] + }, + { + "seed": "6ad6f920e226ddc6b1b682795ee597a261fb27775891687289a29b02e94779e6", + "private_key": + "fe8537b33a966ffe771363e190cf73ed6b6323c5d8a260f0ec5894d16195120ca53c33b2b0fce8c4482a971e3183c67db9aa3bf4e5fa9f6d4a1c3f32a9660d61", + "public_key": + "34508161acbf00f8639d113649d250a47777330db4aa7760638112a0c0ea775f", + "path": "", + "address": "5Qpcn9b9peZpMeN7R5zLYoeqG5nQq87aMuqmn76NCwsY17f8", + "coin": "CHAINX", + "child": [ + { + "private_key": + "ebbca084685a69ae21c22b2606de64de92bd4201acf59748a4f49c54fcf11c0d4756b20984d580d8e2054262d9a9404dbe62f818bf8a78ec9c6227d579d6b554", + "public_key": + "a021c71d5373de59b3e9d7999755559aa2721307e1ccff2e2568fca9ec17c345", + "path": "//0", + "address": "5TFz4zzv6T5j8jRzY5SkvhmJbFdH3Q8AU8j3JTvRn2JFAHDq" + }, + { + "private_key": + "fcd9705b04ef6499daf0509e4c76de72b66a132f226b03b3da6960a348876a02382ee64ba503a91c585b1c15189b1896f6177439a0ec2f116f41d8f6db62b651", + "public_key": + "7ab1013bb8307f0a6e7c76fe537be61ea75cc70d9d8acb3f81dc4b776addeb65", + "path": "/1", + "address": "5SQtoCxz3CK3e4RNXmQXKFpn36dvMoZ8seSLRj6BbXtoAJvw" + }, + { + "private_key": + "83ecffcc02a9391b406a625d8de458a5257f89c8677938a67f5886119dd0a90cd3e0534a1920674ea52a3d8cd4ae1acaf49711321cf585b7638d422ed0dd95ad", + "public_key": + "c06edbd42f9ccaefa9b4a2becab43231ab276b262a487feda356f8b66a4e8476", + "path": "//hard", + "address": "5TzLVwwWJz2sGuJZpmmFS7LQsF5xWy5NHjKGLTv88qavXppz" + }, + { + "private_key": + "2fe14f1a7f30aa8c48beb177e733d5ff1f397f6c1c0c646f64f825da2ef0f30ca09ce7a5232a6450183ffbe76cec8e2e48887560da647807fbc9ae6874f9bb76", + "public_key": + "4e1d07bcf890590138f5069629e4831d0da27b531441b797fcbe6bda72ad8361", + "path": "//1", + "address": "5RQSjTn9V9JdcAFSayVGRPz4DdAnDdC6gJkBt5Sbdpsf9z4S" + }, + { + "private_key": + "66c56a22e03a2019fc2c918fca37d3ad48ab15df4b8ad6850d60c03792875c0b9453b4d2045402e01c7339aca183f2cbb5548a19470e8de762f038aaa8eedbbe", + "public_key": + "84fca554c1eac957331dc93f4f416692706371f82e642eb91d903f5f38be053d", + "path": "/0", + "address": "5SePkF8bJV9QWHLYgJHFb4wn5xRRnbCTtuPUJPvMw5AM97kZ" + }, + { + "private_key": + "e3fd24b7f7b91a37431ce4f564722ee50787c720198603d5cebbc41155ebd30eed0d32e2d9f25c3fa0e16b91c6bc3616008cb9159cab4461a274c03c8899a2f6", + "public_key": + "b4f6e5209661e10218bed7100c7d3523cc42e5dc6d63c044f20c7598669f1279", + "path": "//12", + "address": "5TjJLUJasMDeSiryTrDPyHPZDnbchoLt54BCMTe9zvgfUssk" + }, + { + "private_key": + "fb7177fd6d1507f2309cbb1350a3e3a591e18aa473beeb5b9f2115d36f15d402e7201fed72905bdbe6e2b51ef521c52831d4cbcda4a5a1e10e34d94b539caac1", + "public_key": + "38c23454ca09200ab9fdfd8547acadaf79f67084d2c566e139d9eb8bee4a0f4d", + "path": "/soft", + "address": "5QvSkFG8vnNA4Vdhb9Dnne6742dMbPcHFqcq9W23NzYjSYWf" + } + ] + }, + { + "seed": "042e745dd88ece8bea4a8fdf35885b2b0f25dfbf6b4753ce398a03719ca35ea7", + "private_key": + "244380313f2e6ec68154b426875dd89a5829537748d64b48207498c6b852bb097489110c8445e637623e8533e38192cd34a6ea4e97817f67ab208b609937ba29", + "public_key": + "c46df2ab37d15a7a2a3fbd10683bf39d7eaa389797ed143bcdb368f3bdb19832", + "path": "", + "address": "15SZ3iJ4aDNBHAoXTNnyxm2kuNDEo9NB1vTJbEaNE6TZzNBD", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "0666a50081dc170f50d2ff2d384e037dcc8dad2d8ec1033a715fe4c362c2ec08f7ad3fea6a87d155b7f375609cec1d3b96a15296b24af9d6ce17ce9cefe53dca", + "public_key": + "725856c79260c8d98d988a70c9be7ff3af5287e1b7178347d9c157dc5094e97c", + "path": "//0", + "address": "13avhfDZ9kzx13bJP4HVQJyud8ePHAQCZ8RXXUeXRQf23dPh" + }, + { + "private_key": + "0375d6863c61399eca620955af5123308abd820db2cbc29d2688cdbc1c6aa9053802969e7b896d7fa358ad2dd4697aa2505f1e6f90dfaed124002d3ef78c4a54", + "public_key": + "ce3447876cc38b4bf8a0faa4feba4597481057ad5e3e76dd3cee83f054088274", + "path": "/1", + "address": "15fNPt2NPGtXPDg6zSF2tqDdMoKoP1BqJw7AdZH2HCuhfRTi" + }, + { + "private_key": + "43ce998872c79704c239a48f7aff4ebda10ff3b7373c8cc8db6016a48d79c809cba1ef2df45c6301eced79cc07674c75cc8c28dfc56969ea5cb213115d946db7", + "public_key": + "a009230bcacae72c21439e4296160b37d7298b32460aa33c0d89adc9d3173262", + "path": "//hard", + "address": "14cqNo7uqvVsQhmFTF8wzkNZpoGg1Gcph2xUr6YcU576XCtg" + }, + { + "private_key": + "36e1b62c5ac3a2e4bdf136b89cd2936e207b8f1f7dd87d73ce9c53ac4314480c18cc90522fc8df27dfbfe474bb108ff153b3b74eff81fa46c49e9949de1566fb", + "public_key": + "24dfbf1b1d9834d547e74c59b17f9e1c533351a7e74cca6850538cab95adcc12", + "path": "//1", + "address": "1qMC3fCWyagGUW8kwuavkUEhLsvmLrefzT6FkQ4BzwNMr2Z" + }, + { + "private_key": + "84a94481d2d286b5582217a9fd267c3003a93f7776518f206bf4b4e74ae3eb03705187f9a16e4cdd2af1acd10620b23e1946b7ec08855583cfcfee6f6b2a0302", + "public_key": + "e298b8ae087cbac12e4541b7e9192fbe9250dcc208ad56f2bff3dba56d093b1f", + "path": "/0", + "address": "1687C15FrvZemedSG28AqM58646GQP54we8kYnpsRArVpB4L" + }, + { + "private_key": + "4cb1d3669d8034de7a5885f7cc3623f254d968a46b08a0261d4f79208cfd570d11c5bdc9cd3a742acf8069d1bd0f7a360069c2511bcf98af185845dfebe4cb39", + "public_key": + "72b9b175080029a803065b5530b8b34b93857193f5ad2926f647b80c4ef3a15e", + "path": "//12", + "address": "13bRd2ucAoXsHZ9sH3EbfWbKByuqWcmWkj8jJwZW7H3zYna9" + }, + { + "private_key": + "42c6c56cd636c907ec29f3e3ca886dd601c708830f5a6d6348152b07c157770a8aafc11215bfa98c29cf7d96ff41616fa76ff32b4855daeb5d1794498755921d", + "public_key": + "0e28c4c36b0b4118073ac1f78bf7b4130960b8b16bfd38ba00e77cd8077f140b", + "path": "/soft", + "address": "1KZnJvtaq8X8X27DiakMBeR1Rw237JBQ9MygULVvHnaEFbE" + } + ] + }, + { + "seed": "2aee84624a22d65c4be797759ebd1d4d4795b56447ea705daa19cc1b3d766c1a", + "private_key": + "b34fed59b86c7e4eb10a7bf4e827916b90a48bdcb801c657a9619471fc876e09a5ee539f0ec2139a69180bc11e23fe3565fbf3bf439f74fd31bcb310988eed22", + "public_key": + "0c177642e9e36a99767b7b75131ef0cd31d13ca41ea0b2a5d20f274e7aa3476f", + "path": "", + "address": "219T8VMQj5HZZQuttT3cs5Cuf1vJjNwL1M82RPn2tZ8N8Dx8", + "coin": "ACALA", + "child": [ + { + "private_key": + "bfd61d0d70c28dcdcc5530a8f9ec409d932fec4c5c662f3c8be504b046d47c08ef29ea7172390f5de57358c263af3c368c789d8ba8bb74d3e04781c6f904ce7d", + "public_key": + "7832234ed77db75aae092676af1c5a343464abe24539c6cf389c8b76a876943e", + "path": "//0", + "address": "23bCE4BDfViMTgv8Eb7NvMPbHTnzA5fhLjv41vkQydKeLG7g" + }, + { + "private_key": + "2310451aa2dfb8793bba33b158ac8a7138eb21601d45a2141931ea1ccfca5d009ad3b9b4ac1dbb07995695f958de5020a9e75abbf4deb2c302bc0fc3ae704051", + "public_key": + "1043f0451c548db478ac402cfc68c160b93fdb3d257d2d2782942b40e8722431", + "path": "/1", + "address": "21EvXutvQTNGiBzAZya6rYuMNaz539BUq5aJB7t41wukDyAF" + }, + { + "private_key": + "291c5003935884d497b871b466721e67f0ad658acc16ef196a397c08532c07087bf0b82916795f1d385172af19d0a8afef92c77b7ab0c2c0a193b525ade3fb43", + "public_key": + "5c5c8915be47ba9f1dad71e85eac3f43b34a316466994b7aad6ae16c82c0690d", + "path": "//hard", + "address": "22xhUnRDey3NVCUiW6tMHYswhjbvHNrCgohfVZHvbofXkxxj" + }, + { + "private_key": + "1277fb0df44621b8a9a71adfaa65a63b45ededd9fde05c7038393c266bf0580b9fd66ac8fbdceb6050e137b0046e41668afa9374417ebaf8918054958f5af1b4", + "public_key": + "7a798550507a9fae62b751064ea916a564b0fecb84c38b88adbe4e0a4c6b1d73", + "path": "//1", + "address": "23eBXWQYw8cU6KdAJeuRgkfkGaKG7QB6RmZ4AJMqpAhn4ZZc" + }, + { + "private_key": + "d884fc2f749bf93bc8c2875c2e524c6820618f813df9a16c59e35d579ba7f90bf08046b45e535f7a96b59f93d64d419d3e904ec319d5ac436dd17cd80412b5cb", + "public_key": + "0eea16410274c9174c928ba7cce449fe0a5e2bcbea091f6e7dad118bc36bec4f", + "path": "/0", + "address": "21D9o2aYs67oWaehzWFifxfnMJdakYTG2jErXbSDRrWvnfMK" + }, + { + "private_key": + "28b5c1a616474dafcc05ca041e975d25656978d0ba43bbb0feaa07bdaa68440f56c4bd82ad1109de84775dd1498debf9fa78525808f64e6d1d4ceb062d5d8815", + "public_key": + "26fc4dac216a5c5192f387220d30b92160c21eac0d2433b746a4b218f203c16b", + "path": "//12", + "address": "21kiMYdWogsb4k5wPAmRNx9LshKPN1tkPfAaEbyxYkJAhSWN" + }, + { + "private_key": + "4b95a91cb2ea215e75290dbc214aacf79e25eb30348954d48bc9001409191903f47f711d6671069d819c41a58ad4ac2cf1f645d213a78885c4b61c0cab077850", + "public_key": + "dadd35fc7c93ec896092499c602cb69a99951cbc7b5d88a05e7a9433609cb055", + "path": "/soft", + "address": "25pZjkVo2rJQiMcJprFZuVr5chausjfYA9PC2p2cKKmpYbRN" + } + ] + }, + { + "seed": "5633a24fd0536c66ec5f17b0a91b8bf497f64353f86a54cd4347cc9e9c992f25", + "private_key": + "581fcd3857b6f78df90de9700c9a731e7e9c0fb5c8dd95d5f13784ff1290760896ded7ea00c12a8e83fa0664c81ef1125f824055a2f7dd08ad85ad1599b0b921", + "public_key": + "de6cada500b0069ff679abcd5c79e8d37b002b5322cf89bb1ea46a33edb3624a", + "path": "", + "address": "35mq5tZ26wV1DnZUqKSvcryDfMAzy1Jk73zoHkKDQPFLEiBZ", + "coin": "STAFI", + "child": [ + { + "private_key": + "2db3126fe083c25640a293cfc5150681ba34b91429d051fa34719a0632838d091ef77835e0e034c8b0d33ce16005b5d427584a90c609c21fe5da76fd6c19a385", + "public_key": + "d0538550577af153557c7f01d685468e2a5ca019c8b82b315b7bfb12dd60115f", + "path": "//0", + "address": "35TLwZ2FA9wCs45du6u6Q63rG9ANDvBE2B5tK2xd32Q6iymR" + }, + { + "private_key": + "bda838b45fb4fbbda3b783bb49d2f692c160e833d75dd6741acf4d7ec532360ddbe89ecf6afd0f0b0040ed118320c12ced2a6c267acb86395ad56d8c96e8f0e7", + "public_key": + "e6e817a2fa9d63f3f950038c077284eb17a1e5a1761febeceb2d9cd425de6e09", + "path": "/1", + "address": "35xx8Uw5R7uT8fhMRZnTdwbNWBf7mEYSXAmSErEixaSdT8Gm" + }, + { + "private_key": + "cd1f7b6db881e4ebd1a265b842fbe5eac3875bc2f7f7a1f5ef2dad246c8c1f0cfe9a7c3bd9924f7efa6d5dcffaaf085b3635b7eca0109eb88d83d986f4a4aba9", + "public_key": + "72792bc2f26439d4a872008b50eb7d78193ccabea9015ce4a61e61cfa95da352", + "path": "//hard", + "address": "33LHdBaEBTDTeGtuYVHFbhx2KwTZsh3TGHNDc7rFG9Vz6WFX" + }, + { + "private_key": + "66de1ee84bf1d7edd4c76f136a252727804f0c042fdb5b9c3311a9a1f69a8f0b176680c7d3cdaf859eaac15c1c81f6af886caae5ce886d4842dea79eac9d0181", + "public_key": + "0a035b6878e1898f02daded4932ece5bab70d68f8bf01c322f19b41f90113e3a", + "path": "//1", + "address": "2zyKeTSUdtyHsi8KLhz4MxJGbEcWJPmS85XKe9aCoDeKAqAn" + }, + { + "private_key": + "779501a1d27264be82be54b4999cd8d9ab9c4d88c0389b4af9b526ebbc74330a7adaf06ba3072fba0c81ae7ea8ee5e4e3be3296719526da189bbf0fe74991b9a", + "public_key": + "6a60f7265461bad988c022c7099417d6bea8cfde1b09756c6b1b1fa770187423", + "path": "/0", + "address": "339g3uvaMJ9AqFgy7nVFhAFyvByoevhZ5K3BvCRxgudA95ib" + }, + { + "private_key": + "a8ee9b9f8dc60d58220213c25e553de2462dafd7cfc443521523a16ef282eb0ac1974bc66d0e143877c4ab860b60ea7c6b3f06d2cd7a8d26bfd906f1bc8ccd3c", + "public_key": + "f8b7511cc32e87638afd2ef7007f63dd97bf795cacb749a4ec26483923b3833a", + "path": "//12", + "address": "36NJW6Hi7HZP88TQbjyLujKcgvqfY5T15JmPErsSb7UbHSRs" + }, + { + "private_key": + "e23d0a1be4185594a64ac0d815e5152b9694d1c4b5dc7209a78d5ef3398b0000158f014d278a060d11fab1f702ee7a5727bf8550a182613423c937fa3261bed8", + "public_key": + "6cad7b5cea24b266b4144d5903ced2cba7386f31783db3b1d2af6e370ba91453", + "path": "/soft", + "address": "33CgspGbWTinPvHVBY682ef85pQAAz4dFtHRLYbAwsnZVnzX" + } + ] + }, + { + "seed": "3d0eba76accfe5bba9a77abf068f58cb3a4b852587c40ae487b3a3398aa6de0f", + "private_key": + "9fe021d31dfce830a1188a29bc232d2b4c26240bbedc7b25a47d87cd5d26fb0f0d0cd3d89465e21939bf78225fc40dc06e407de260a60d76460cded7f1e1faae", + "public_key": + "bc9bec2a89ff85e4d57d12cee9194542dfcfc5e93f0b5dc53ef23990a8a04c0d", + "path": "", + "address": "Gqcqbtd6nUMJ7cYVJdyQ4yCwDZLVeKQ7CX4CZL2Ax8z9GL4", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "353a17d20254e8832c8ab06e5bc81bf475d3a5cece49492c90c3c4b97c2c2f0d821dee55511db6230dbc5e7f328b708c7a943c873f08c13b5ab094dd75a79c18", + "public_key": + "30218005c7b2f81d7a47e22f09d9d3c7fba09a2f497b278d0381d283a97a5323", + "path": "//0", + "address": "DfRmVKbeaxBfDXQCGRC69Evm7uKoSHSvNnTq1ATzvLF3Phq" + }, + { + "private_key": + "d5fcc2dc6bd2296aab465dad229f0c721eb27e76315b973806edc9c60fd8a80241b391eddac38b0f054adca5961c5862bbb1140d07f5390e2847b2234bbb6296", + "public_key": + "0c73ba07160e6c33bc79e1cde068fb44c089f4710c5c0b5dbdc9676ea089197b", + "path": "/1", + "address": "CreUEh6PyvaYvwGVtaXFC8xZsD2mVcHkW4WKWNH4TtSwSYn" + }, + { + "private_key": + "56a09e9e2cd549a892191cdef790df1318418f3ab2ce3ae75b8798c66077610adec00ebf6b4e01f93fe0f1bf8b79655285f480e5e069beff7a23036b76f58e46", + "public_key": + "e65e753bf807c178055d50e47122f3db393dc0bb11017f5dd3da6300da591b06", + "path": "//hard", + "address": "HnNbEqtpGDK7mvdyQwEhUXmoXkz64GJJpDgtD1T9KesaDqf" + }, + { + "private_key": + "a4ffbd316675e3231804ba8581a50ab3065c718143db558895756a2d251cda0e694f22ee4c8136b6e5500b47b9a0ab0d6ffa6e083c68285f78596139e0c72ac4", + "public_key": + "f852bea41f48dee9deab5f8367dac95e1feb9c1cc4dfbcc30d3dfda253707559", + "path": "//1", + "address": "JBuyR7AsU3Tj758w9ChSypYg4i7Vig7J2m9Su9mFfm6VooY" + }, + { + "private_key": + "d1f08167f0f45baf894fb720f2d8e304c6a9c7f88c843bd05ec34658c184ee0a4d3bde260c75fac52f52fb04f8ec0143df62d28542368a38862ee2f9b56ae03e", + "public_key": + "403265ce21329e5eb5aee76d6d73f1ccf962593bb84bb60f36c7b0680a175a73", + "path": "/0", + "address": "E2VZ4iAkVZUSJC2sdhasVsY63psbAxPMn2BNT5U4wqgZ22h" + }, + { + "private_key": + "c1b3e785a06e4f2faef4d852ea96aa61418ee4c5d3409cda14ceae81588aef0b982e7dbdf99112091c188558cf597b027b77f784b93aa81ebaf217bcd6b3eb2f", + "public_key": + "5a921e3cee9835d1a4b032822ce5c3c23359e46749cd3171524839bc69e5cd06", + "path": "//12", + "address": "Ed5EVwHHGHzN4vUZDMsV5N7BB75kYbyvoTs4BzDnivEhze4" + }, + { + "private_key": + "c1e5c24e57ab55b5560bc6ca66d912a2da63aa9c9f4a9338318bd19ad3e63b0cb870a26afa7f28b33068d661fb4ef771d15d8573cdd5759cbc6ed02143f3b560", + "public_key": + "e621c5970ffb0d6ce93a103f4b6d2db3269ef858711dc0ab978c778b0f30d260", + "path": "/soft", + "address": "Hn4ZeCTwj5xphPPbBkvBfsvX4RUqyAQvst3r8ehEYFC7RPp" + } + ] + }, + { + "seed": "e03bd93fd1bec8c9cced669a25cfd357519adf2b08ca96089e9a421023b5ea3c", + "private_key": + "9f5720c654d03a5b090c02c02bf59cf29d89dd561626a713610e701424d3670ddcb8b3959db4f6cd264645473323acbb93ffa38739f0b6afa7180f913965a510", + "public_key": + "003c5815d4e099c0fd761e83c644fd123a12d192136911707f9ac10d605a2a36", + "path": "", + "address": "2zkW6YgVDdLSYEj9BtbgvjdnxddBS22USY9yZM6HyiPV2JoF", + "coin": "STAFI", + "child": [ + { + "private_key": + "4cca737a02f769649afdc8838f5eb4f812d0787f3861685127807561ef15980b3eff93dc606dc1cf583be7fd947880ced0caca863e399665338e7992ebfaa816", + "public_key": + "6461b2dee801a5659ed7c59cba7852c3428a3ca66e3c595235f9af9ecd07ee5d", + "path": "//0", + "address": "331oytCmnS1z3n1GYADwFDnG2s32Nv1C9hLNsPXhaxRcsobF" + }, + { + "private_key": + "9fe7e164cbc2a05df7bd0c7697616bfa350412a18e686421ca1ee83654215707b7cbdf2eeadb25ee5b2d89a38a49b0c1caf15938b10725ba880a596336972370", + "public_key": + "f225baea06738facb81efcddf66832d0d0ce9cb10db43b184cb8a40deae67a13", + "path": "/1", + "address": "36Dgy2YfAhNqctjdSXpBqyjfyeDBbKxyKxmd7exsTCESBm9u" + }, + { + "private_key": + "c69b2ce84cdf65c370cb9343e42d087e52c67bd5718407553457831fbebd6b09d842c60b296cd733c5f851b20044c11f2d57d921c07fc15b5737c247c22869ba", + "public_key": + "14cb90a2d4cfa3b21d04ff2d8f72314d965000209485fd01af0e3cc3e965ef63", + "path": "//hard", + "address": "31DTbjQdQiXp73FP4HXwstujFL98eDGAaT1JJZy3T1zmu7RM" + }, + { + "private_key": + "85b0d13ea885e376db4e3b95f347d4189967986869bfe45b1a4e981e4666370a4a32ecbcba87b05e51f75aac01a90a1b7fb0ed9fe14c71f6915aa60cf417f6cb", + "public_key": + "3a264a8e77caf873e7f7b5a0669484fd9e0fc4596dd4d45f59e71961915de149", + "path": "//1", + "address": "324SKfnPHmEDi5LhWJCyqg9U5TKvZidFgZcqwAc56Jn5nzbb" + }, + { + "private_key": + "4695b40b1a0b46c3b9ea1e089dbe8e665ff33fd22f6a258b46bfe1d10f86c3048849274f7d96f0437f4c29a6cfd975816f82b97a78c088f7b23af92307038084", + "public_key": + "68f45154817ff0d9599480612a0f51ffa79ce253dbe0e3bc5c42b3208b5d845d", + "path": "/0", + "address": "337ojBLpzg1RZJbgvAmWauknJXL7yFGGVdVxyfvo89phPU46" + }, + { + "private_key": + "c2e20e66312c8e174f22c91390723008210406f1c6949be97966fff20ed6600a9b8f7e34f6b805f1be83d1f209e35ce610cff4b0a52ebdb745cdad978ae5fa11", + "public_key": + "86f68a402a919b128dc9483bfd7af2b5d1d4624d4f839ed3f3fa4de164e58c6a", + "path": "//12", + "address": "33o9pnhEYazxaEMTGgXUhtE9KRf16syzdRBZzE9163XPSzjz" + }, + { + "private_key": + "04661f8b311dcb3a9102e131ebc385b16203fe3e110c6b82923c009fd9c594058bb492cb40d2a2cac8fa71e8720e3a0417aab6c1f995ca8bc028fb9c7f169cbb", + "public_key": + "0c7a7eff28e0f74dbec3b73450648190863840bb643ebb1622d1a8af6804af54", + "path": "/soft", + "address": "312Z8jDt4A8xJDqK7c4iPEtZAvM1q6QdXHeTW5qNezJr3qYk" + } + ] + }, + { + "seed": "1e61bcd0bcdf1a48d4dc69d33fd165b66b33be75f9a71c897ca7d83ce7450859", + "private_key": + "e3ee10518d2164d7d91b65f8cdbf13d953fda27cb407c43f80ed046f95d71b0e78652a58db5d94b122f6f4dad3d283559c8a6f13cfc63f66bdc19a95de423947", + "public_key": + "1ce7b31d858a917e457281324b90d39605f0a686dbae0c7df86c215beb6d571c", + "path": "", + "address": "31Q6LhYRHxjPwXxP83zrPTcchgH53UmqzeYs3qqyFpY2dvr9", + "coin": "STAFI", + "child": [ + { + "private_key": + "17e135aaa138a5a7670b0e5dce5894f3639044cdd5585b5fbb90d4353986820bddf54ff52302c4fa78c97f73fdaa43860b7fb70d3498cbad9b52bb66de205cab", + "public_key": + "a63f53d82cdbebb4223f18bc79f1cbae9433770b0fc6933b0b25d4da2d058c11", + "path": "//0", + "address": "34WAvz3bhinevopgzMFGPKPftz2kLEs35wgLykUSKgn4AV3B" + }, + { + "private_key": + "9b374338c577cb14c37fd0426be65c609428bd3a0b0def6989fcf08e7f4bdc0dace53a203127853836c30b61e12c06a22acb8f7e145fb8f49852d35174e61671", + "public_key": + "026fac75eb022b6a27d4fcbbf0163abe686f4480b166e02413fd5552987bcd3b", + "path": "/1", + "address": "2zoPSVNNmr83iriRPoZdywK1qtzpdGo7tUupBVtVb4FChGWd" + }, + { + "private_key": + "82f9ebadd413cd3e539f529c19b9fa80aeae374380e16b3aedf0f15bf4f1390fb257359dcfab0b363c2dd84302c5b29d5aebfd4852449ef6ef919435d91be826", + "public_key": + "f2e8528cfc46ac93a29e49195b1eeb44f4b6aa58ce8151b01c63ba3bd4e3d327", + "path": "//hard", + "address": "36EgmmvFCrsHBsHw1Tx7sAA6KKdyyx6qb6B8AKgAA3awTG6W" + }, + { + "private_key": + "392e471646b5d1d1abb04bfb343017b3f5b6ed7cc1ad448676b690c7db4b080f08daee04289c4b72bf09406c7cd38315fb623987f0e9ebbe5530b131a54bda2d", + "public_key": + "4ae08bc2896b7f5ae81c16f1984618cda76df835a981ec28ee37787853cac179", + "path": "//1", + "address": "32SNRCZxcm3s1SF8iJXmQzXBWKFRobirfyrG7ykn9pEVjvNX" + }, + { + "private_key": + "86e97b0ebeabc716282a98cceb4c573aeb1efdf4f00279f7965338ca9b7746050a31d3a8b1927ffc85bcfd60b2ae137141046d8660eb593eb0b7071b4243b056", + "public_key": + "90db4a12e4c698cb8755f8e5ff3c0d9514a70f5fc357938a262c7106a62c613b", + "path": "/0", + "address": "3428D3TuAdUcUqP2RcjpLpJnUmMiZX7jMaCmazn2FUmyPJN2" + }, + { + "private_key": + "ac1e0dd30c817ca237256b7822d6ed3fab4c6e10747a6d903a4be63b11e76a0c1baf812c991904e3b2281d517e5efd117b8b261a9ddd986c4074012b77e2a77c", + "public_key": + "6460e0613b3ac2e3aa60d6a550097016708863c087102d56161afcac474bdc07", + "path": "//12", + "address": "331ojiY1U9JWwfjWW1UtZpCnVuST1wRgg1aPjLgtejMzKEMT" + }, + { + "private_key": + "8c406e631b7a69bd2638be74c78fe26bbec00b9c041ef8b194cc26034448c10622dfeba3d9e80eb50979579cc6d2d21da5ce95cbfbb7e27a49c46043152dbf52", + "public_key": + "102ce45ad1d32637f9d3b9887321dab1228248a9af82f921105750fa5279c744", + "path": "/soft", + "address": "317QGkWjeTFjDKGj8syZa79JCHGArxoDXUQU5z2bLk84MgRi" + } + ] + }, + { + "seed": "c41a8b4aa2848b1a01825ffeeb7a0bbaa5ea5307ca613f9a4a51691ca9289591", + "private_key": + "69f2558742b257642fb5c0f15616cda48b82d0439860a869a4b718578b7b430c5b06b4b9cd9caccb4c505330ae484c662ce68e74ecf5c8769531081e75895c90", + "public_key": + "4edc2256856149ca2302787bf25bc9a5cf9134e63ec40b84d5add1055ba2377f", + "path": "", + "address": "5RRRW77LXQz4e6eLc3C6bzrXfqBc8j4bd6kugDDieokLW1tJ", + "coin": "CHAINX", + "child": [ + { + "private_key": + "0e50c540f94adc326f40815cd1cdb7beb083be968a2e09b2f6cbad4f71419a0c0a9ed0aa5e18db3bb92acea71e3db87c4dc2ac5c9bc92f45cee976151efd40d0", + "public_key": + "5611cb127eae494028e7c94c66924f36c093b3a7d63e19020b242b0e385c625a", + "path": "//0", + "address": "5Rasn59t8D3PqqSw9e7Ldaa8iK28NqkoPKv97finaBsPBDLT" + }, + { + "private_key": + "1fbc44b89837d6993e963192cca74387019e49304689298c3a7c92bbc6372207436f0ba689cefe9845dadd019098e0eda26031216a2a169a85e1374a89be750f", + "public_key": + "8080acefe4b8a38ea47c84cf8e55e269f8e71ca0b2bc40346a46b72a6aaa763e", + "path": "/1", + "address": "5SYWjBDAnMczypYdhDgKpum9UZm8V869bk3EsEJ1erJcgtH1" + }, + { + "private_key": + "def5a7f93e4031a666350cd907ee8bf558a7224522072e2df3b6aa1c398e8a0a1646cc9f01f0ac9bc5bf0689351584fdb7004f58355c6781ec3b77da7380c4b0", + "public_key": + "5cc32f3b280fcf4706a5740a87fae39bd5f81d61c227d18f37edf5af9e1a892c", + "path": "//hard", + "address": "5Rjem7hVo22fa3SE7BpxqeFT4nA9rHLEP7t5AYsYpYYuCpoa" + }, + { + "private_key": + "b799ea0b09d798462665e0053e66f389cd517f4c5b1b544782153bbc4e9e4e0f37d384f3c60604d2c8251a6849e4e7c17a931fb397a686371c6d7eadcd3c98ce", + "public_key": + "c61b99777cedd00318639144b0d5690740538f2249725d88c5887b8a6bed7b46", + "path": "//1", + "address": "5U7n4678s73ucXxkDCZja4wtoujfa4278nAdkm9zVQHY7zXV" + }, + { + "private_key": + "2a66dfe625fc031dbcb0900971900ea63442c11c1889dcbe440abb988fc7be02f990a687f3794cdb258835769647ce7c74062ea3ca55973d9f50f9f0c873cdff", + "public_key": + "a6df66f11bf7f4f2cfefa555595e1f94cdad02f4c083790fdff65eace735bf35", + "path": "/0", + "address": "5TQpgpGNdVmuJh23iV2F5DwYJN5rQfNZ429kt2Tpu2JFsuxL" + }, + { + "private_key": + "ef14b905ebd510b5660318f2bcd557c5b8bdd35bcb0e2c0405865de187df210dd17674e962d4eb7d97528a65f2d5d2a56c8294063e04f003f56b167da9a57465", + "public_key": + "2668e1abf2170671cb80cb1148b7cfbee16ddd3bc18ea220281133311bf3e745", + "path": "//12", + "address": "5QWPMFtYc8jrrot51PXeuAb5jrQgRqCFCQmTtzh69RYLhYCj" + }, + { + "private_key": + "3195476cb6230921983e1830f0a287a103083759daa0a4e477a64cce927d3f0f76e554f80fb17fb039edd2ce554d6749ce81843d43bf521d6873078760e5a695", + "public_key": + "18e65e388126581323604eccfa592080afe409f13a7615ad343b393148d6613e", + "path": "/soft", + "address": "5QCfxTVQu1YrRhPNkGJ7WhpAEtLPeToDQ4F6gmtXYW8ukUJD" + } + ] + }, + { + "seed": "382a3195f806653b17bd71d60adb41f60a52c7f2369497c7effd4c47a8c0c51a", + "private_key": + "eb1449ceb0aaef536690dad6711ffe37a8c04a0185931bf8d5df9fc4fb071a08cc5cc84c104cd48c28aa6b8870a28b98e87adc600a9776bd1ac9c97591becb9f", + "public_key": + "04d7bc776e7b052fbfa5351ccdb575730c0caca85b0d848604919b27e96a6a60", + "path": "", + "address": "17MHA8UpvjMzBsASJjTYrEpRGYN4cP3u8X7Wx6XzBNq1LNE", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "d17e810195f51b478ff8b1558058b8247d4b4f037e25da2a849b4e6884158e0f53652f9f3b77b74badae0f331e8f287d8ee62f25336460ef5a268c16f09cbfe2", + "public_key": + "2a44b3292cb42d820ec5103cad3661f41cd64299d6a86a208a14d3977007b16c", + "path": "//0", + "address": "1xRRKSaPw4XWxi6fqfXpcKynESCzRHZYxB2d7hziAffunmC" + }, + { + "private_key": + "2524f0cd6096e286bc0167aa6a8d50826676a1dd738529b0d58ccefaf321920f735473c3a1ea26e413f907adb3fade6756bd303bde76e1b5127b89cec4d65560", + "public_key": + "ec14442ed175fa74eab717bd75006cfd2bf802baa99cd2aa702735b8c9f27157", + "path": "/1", + "address": "16LYKdMLUdTpDU43RHtUeBFBg2C6CRqWk1mRapp3CMYKuvCo" + }, + { + "private_key": + "4c60a559073003ea6368203976a60028befa1b16e281b024d3ce663da3eba60bd09054f3849ccc7f26116820b6492c774f790b1b44e5019a09bb972315ac895b", + "public_key": + "08d524aefbfa710ea474a7cfb31f119ff1188e05dc2ee978e702af664453c919", + "path": "//hard", + "address": "1CahbLRStF5YMvKJx2ytFiszuQDaqYuvczHCGA4p15Ezz9b" + }, + { + "private_key": + "a205903bf9df335a8cb37a411cab43da1156615dfb57d9eb77196e5985671508b2f1075ece329ef3ceff3c81b3f0e33013c5abf26356734b2d9de45eaf803e72", + "public_key": + "a83699fd39834e1bdc31ac2652b8ea13b5eb3f441bd5512c8074fabd9d3b8b19", + "path": "//1", + "address": "14oZGMMGQY94NgdJWmVidRU17tR1AFWJMDxBW6EKJxpXF13V" + }, + { + "private_key": + "f102f19386390fb37c5b8a737385d9eedcd627447096a6e0417cf2423eadac04270d061d4fecbe16b6c1f5cbaf79e845a7c506e9477e380eda1f45ad7cf58aab", + "public_key": + "06ca088eff6f67f99e843f0376d4798a6e77dcabf40bb31997375d2a97c5f762", + "path": "/0", + "address": "19uJctszCa4F7LpzfNzmvZ28yhQSFivqWWngMogGyXUvpDV" + }, + { + "private_key": + "64356fe3ab70213d0aed40ee5f1598d070db4cc4d2706015f072b7449f3fed0f840719d0a239d28e67bbb1ebfb23d3b5384c73d6f7f7fb849965fc59fbc7ef1e", + "public_key": + "e67e062a48cb464759b1359b19a43b6ebb8fb3c1afe8419c971883c63f09883e", + "path": "//12", + "address": "16DDT8L434RDgP898raF1h8czZVex8MhNufxSResRvdrqae1" + }, + { + "private_key": + "f898f455862aff5e6b8c5caf5525cae1128de8a0514d7473aa10389524905a07884342533849ba3c3da988bb996a85d8d06e8dc3ee6a6934b622206d20292879", + "public_key": + "f880b49bde486342fb8b56e6222fc3e3e8391247a23f4c16d82833d31a4b8e64", + "path": "/soft", + "address": "16cq7KS35gSmQX6GjE7YA7oCa9fdPBZvLi6pnTq58k95pD4Z" + } + ] + }, + { + "seed": "b729e9820c9c5f4d037020a82ce88158ea7e27e8e3c1d754eda4d4995117db93", + "private_key": + "731ef40e34ed344c12c49aac1b3bafa192d0007cd7d79815e72aa286663e240fe252ce21c2552146473187345bc2501e188f26a448af0447412a0a2352926916", + "public_key": + "86079de36771df5c2937f59916eb329a72c904761571a0f3443f653e618a8819", + "path": "", + "address": "142jgPphsjFeQD8VHgwqYVB5jJebAdYM3szTvfby5dVr1Rai", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "cd1c07a9d7fd07dbee39b521847598ad2ce2fb8797052d8921b24b48ea49430acecac579f5cc4e33c789f06aca00e44fb6ec81ebe0ecfb2e0065be0bfd7309ce", + "public_key": + "b6f5161b3df8b8d63c80ef3696639bd411b89ea7a2b16eb8d63d3d84d66a5a1a", + "path": "//0", + "address": "158tXDD7awkYEVhi66XGVGq6UsG39Bt4gj31NJq7skEqSFMF" + }, + { + "private_key": + "ea2299aa41bcd2b1b73fbcbe2723e79dbd15c5294ceb39645973cebf3cbbd30a08cf3631f0c13f89d5919c18a7c4bfe390161bcf110456c9797fc3066f3d6091", + "public_key": + "2ebfd3291d3cfef82ea96397272b34c7f78ddfb014615442d41cdf13b64ad506", + "path": "/1", + "address": "124JBpegJpsfzUfnf8rUSSuFULhGWJNEjvs7JhK69HDysccF" + }, + { + "private_key": + "2a36e6405ce1f5236ad601e86b105599aff48af6f6b480868b625ecc35fe6d0a9260585c51732ba02997f16009123efc27fafec5db263b02f17967184f0e4987", + "public_key": + "bc5b84d0bdfbed38a42dead605befdecb4b7d289c4f48bf3692a40ec2ac86574", + "path": "//hard", + "address": "15FyBy6goPVKWhcB2qU5YQCP9i8RpKSUbPhNJff7dvhPHWTc" + }, + { + "private_key": + "b4cb906371ec1a099b49bac98d5a4e8c3fac6b4a95dcdcb551ad7fd441578808831233febc890d5ab973c5d937056dfa8554c72208c16038c5a720f745ba0640", + "public_key": + "74ede94548f82855f479adaf6bca44f93735e8a9e5095c3a36f6c32a7eb1895e", + "path": "//1", + "address": "13eKEHRF9pcZz5djL44EWQjwup9NRt2WtDNY6d6qnLDj1pta" + }, + { + "private_key": + "c5adb6e68ca2c6f795177d168575001a66fb6b66619c64bb6c5d3966dd689b05d590bbd89d769887dda2f98fae52c63ba91609d9f48a29211802d40bad565556", + "public_key": + "3484ca5850962a684f5f4dffd9ee6e8b9f797bf3c83468a78252d073557a8b5b", + "path": "/0", + "address": "12BrwM4AnjC1tn8Cn9fdzQjPm3dHBSsKLi9XZusYw8rcqgCK" + }, + { + "private_key": + "b1cb49b23f2258cf38ac7deb749856453a1bfef17cbfb429b1d4972586f6c50ff519416fe1f10c83d49232f5eaa35bc29d691fbf09bf9a0903216f5cf153b2e2", + "public_key": + "643ca39e4b5ebde68f15136b8f757ee99b55f395075f04af44d8a997a2f7151f", + "path": "//12", + "address": "13GRoX7jjkf9txV5MMYtGT4f2gw713sWDdnSUZKiVdAxca1i" + }, + { + "private_key": + "96eedf1bd7b03891b7a15902f0dcfcf1ef1315c6e37045eb6c69620225150106a1e84add18a3b673abb63e75537ce26408b10fb9e9d989f7a27994a63e64a2c9", + "public_key": + "6a55ea70acfff0ab27ba4c69ed3c7b9f74e6cda2d623578ad58d28516e8d8869", + "path": "/soft", + "address": "13QRbgztRWSt7xpGFnpTxjPYZbuZn6Rv8KsLacCFNEUcWtga" + } + ] + }, + { + "seed": "26f8cff1eb0e7ed9b83faa6a3bb4b14f1dcb6a2986bfe5a45c35c7ceb9e84b26", + "private_key": + "10b21afb2b844e8cc3ba9f477f10222f135b90815d4c00a02855e41e8492870bedda03c0f36d763e1d5153aba4be0ecff0b2afef8a257b9dca5d25788bead9a4", + "public_key": + "38140c67a52ecdfc89574c9b48e40f1669665017062ad56dc7c48d6f2369503f", + "path": "", + "address": "12GXdxUH2G37xGDDw3GywjG6CETyprgi7hQRFT3AQFtWG2eF", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "444ad24584b072c801f9ef275894616dd1612e6ae5c3fa75208cf2b9c953b10a7759c794d5730ed58f6ad6fd0f768df26d0b508028f6d2de6228a405407715fa", + "public_key": + "8ef64b20ed2ba278fd899d13a34267da735622a1a3b2495a52c986c8c243d133", + "path": "//0", + "address": "14ESxv8uDEBj5Hw75zwJGX1bvtkPuGwFwX3Ac6vmy9iE3Zh5" + }, + { + "private_key": + "99bf9790d432f1422cd9b75e8530644b892fa218a324843cb3375532f27056023500cff54feb2279daa1892e91c45817288cf8a26a7d0d46d2f89b2282816e48", + "public_key": + "14801e70193ab65d159943ca1b89d65e8e53af08536140de3d552f3944741e73", + "path": "/1", + "address": "1Tt1z3RSLTmVWGe23d9shwcfkeesUzVVzExBVE3TYng5YX5" + }, + { + "private_key": + "c1cc42a5a0d00b447b2d8cf420d56806934549b62f458f0741fc29f420f4fa08c01cdfbbb621f3434dcdcd8dc9a883b4287f3b60f1dcf1dd3c615d88c67ce726", + "public_key": + "9640d68216d33786b90ba908e6353ec70cd1cfe30f0d08e477b47a23cbde6339", + "path": "//hard", + "address": "14Q1SjF6HZKRMgf6PahSNPmY1ivrC4PAajNGiXjEzt8NbGku" + }, + { + "private_key": + "5c950cae6cae9b3c5506ea566ebb5486b6bc2281e21174b1daa48550057c1d0fd1adc7f0972d2f40c1ec7d528c03460bfe442dccb04cd5f1ef4742b2fbd8f0fc", + "public_key": + "aaee0f93bce04fee3d72ee93b9d91554f06926b68becca5da501e80c44ee3467", + "path": "//1", + "address": "14s7rqVffAqkcTsZDtUC1dt9s4ztye33EQN7zzHB7zB7LE1V" + }, + { + "private_key": + "09c8f1cb6d1510921bf6d2faadc2fe19a91b887806bb45fcb34064317a839e0f6cafef88faab68a35ba0e01fe190a46ddbee3a36737e02d4f2ac86dd55906258", + "public_key": + "527d305f53c18e7f7ed2515e2b82e26ac7909c256915e98db75141eba7caa966", + "path": "/0", + "address": "12sA7hKQVu83p9FXSxAUhkFkaCHH4g5UeUPDGRL8KQYbNRuk" + }, + { + "private_key": + "623e784b33abd0a4a7be70f925cabbfac8fd868b49e58e38a7e7429e67433d0a89a4acf0def88f5d0054ceb2a8242962084d393ece082a6b7b0cb2b446916d0a", + "public_key": + "0c9dc32be078cbc01841b22d82c51ff8b0ecd99519d2212f445ceadd3a13e809", + "path": "//12", + "address": "1HYSWc4VNx3YsG3jPEs3z49E3jiiQu72JTYAMRrvt2Fciwx" + }, + { + "private_key": + "97c0721dceb12e07c7b772da6dd23d02f99ac810c5e4e9b4da8a513fb91a0203e49ecaaca2a43d34247e304f386342976703f083e39ce3525c49302fbe11eca8", + "public_key": + "f228b3c3952664ca286e37b7b79f96a2278ffeb35cea84f5c79457618be82f3b", + "path": "/soft", + "address": "16UWgPkrWm5ziq7uJd9eAGNdr3o9egPNtcnFuMppKSNzF2Wo" + } + ] + }, + { + "seed": "caf2d20f74fc8fc792afd3d5a5904af491f14baa38d36e213be02a5602aafcde", + "private_key": + "39fa670febf1d1f599c3d8d1bb19b31321614e454183e8c8c68facd89e75080b6a14745d36d408ad8ce6923997edd0a48d8095c458b60c1ed9c44f149f3541de", + "public_key": + "b00c535b792da51bf94790fc95b842c46040c66f295d1e3f1bf4b6469d48c043", + "path": "", + "address": "GZ9cA5xWGEJXUu6kSHUCzsaymCrrnJm4CjCmDPHgQPpbJXs", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "ab0181be904668e79c1fb10b33576175348bdc3f943b56db00741ea8ef6a240c2188ac4e36a5af027312228a76fbba48b74b0261db1cd66c0551ff4a5217b278", + "public_key": + "9e7f80434019677b965d6b8300bee268995d6061fa9e7fc29f5e3859f21e2f1c", + "path": "//0", + "address": "GA8xbHevgy3CKeAzTGT1qr7rMVAzieuMWxfR6A9TBvd6i95" + }, + { + "private_key": + "919bcd5eb0eccdb567cfc6466ad609b349e94a1c883952acd6761b6b70ede9073b3dd682277c06225d5271de7548e15bdf1d3133a4735e66fa33bd6b74c95bb8", + "public_key": + "d4cd1d078be7789d3e924081146c92a0ebede0af31c703cc0849dce591d39b20", + "path": "/1", + "address": "HPLboAwmXkrQGu87X68R7W1TH4aL1UTbhMZXkf7XVgRnftj" + }, + { + "private_key": + "69db6b98f04884df09cc99750ff54e557fe7fb016edce23efc8f1057a616050cdc97f9a8808e1f87f3424a2e238cad3a25dbf682756fa0eb419234f782eab6ec", + "public_key": + "e03396979a5e5fd042fb1364c79b95264e7d253228c245e15021fda9f3ef8e63", + "path": "//hard", + "address": "HeHZwwApJxNcUPsVgPyHzt74oWj6GtyHDgLQSqUwoAuNrfE" + }, + { + "private_key": + "8c5c9167c29bb06f6105e3df87c63e61e1a4419f8b7d4e9730e2f853e7447c0ef040c0d282f7a0719e718d0900661eb1edd5e863a3ef40c64bd8735337faa835", + "public_key": + "cea645b182c7145bbb88adb3c7fa799b1b1274aaec157c3421467c3bf3a63740", + "path": "//1", + "address": "HFGmv3qGTAA9PgPDBTV6AruVUnLNPP2Nhb1eVH8tdRMNHqP" + }, + { + "private_key": + "4f839cc0d4b6960f9672f3ed1e30b21ce67dd05fc9abe6c056c108323c2eff0b9b09a9cddd9e214d0813607edae6c734731d1457337cc5c3c0b535122cab0aea", + "public_key": + "76486ef13841e98ecf96d50cc847e2d884dc3eb2b2ed8963d17708bc0e842519", + "path": "/0", + "address": "FFQghta7qSBwRfNewWoM6iEsNS6EwB889utu6Gz6wta6oRJ" + }, + { + "private_key": + "32e963a56c5fb82e9adf36fdd9031fdf20512b70b8c18e5731c07fe3582be60d344d3c927382705e1931c45f96fe5fcdacb44bbffbb59bf165047f1f01479e02", + "public_key": + "96b3def3dc27905588366af142f8639dfded5e04406afb00a7549f81c9847a3a", + "path": "//12", + "address": "Fyv8giQEmwweCxP2kCwuZ6gEA4SZXVqPZdbTJ9DFPNnoaim" + }, + { + "private_key": + "87e6122c4a2f59d71b106674fa5a21c3f9186c67342e747c33512d836f59d60ac13bd4d257b5fde23ecec959be48de2bfc9d636189c12a31c92c59c7f0286aed", + "public_key": + "2c9ab9e33a7f4611425816c1e8ab5e4f243e251bddf8937fa465ff75f1e7c76c", + "path": "/soft", + "address": "Daob4C1bHxUPPSHQ86QrAQiAuxXfo1m9g9j3T59rj1b6hst" + } + ] + }, + { + "seed": "0ff674e11f2e74205f179627e9745581b02dd31d0fa6be2b6263bcaeeb5ec2c1", + "private_key": + "b55e9dfcd30dc7f83b8774a3ebae1fbfdb24ba699d5b838a7c6bfa49d36f1a0fc5108a043c371b5f14a1dfdd9d46bf9237e56f551711769e246342da849498b1", + "public_key": + "8a582fbb5a73901bce1f76f4015d47c8db14cca1000c8ba6206aad2924153f22", + "path": "", + "address": "5SmRBLdij9dpnd9WpPE98rLUbuaVDdu8pVZXa2Giuve7EsyW", + "coin": "CHAINX", + "child": [ + { + "private_key": + "9fcdedbfacd206a1866876ddf5b55ab99b9232a689671f871040dda2572d3c0a955c2937583092b058985be521539b877a338057d9b46650b923cbf4185d727f", + "public_key": + "da7f8813e0cc480f1bf416e359f3314225f4fa8ef9ecfcc89da6538140623a6e", + "path": "//0", + "address": "5UaWhRanL7iM1PpZwu7pdYmw36cmfu8Bx64X7bztQHeK7o4r" + }, + { + "private_key": + "19649a6a511bf1becd9d247d1a3fb6b01cd12d74f0efa1fce79e642ac196270bf849812077bd9b20d73841874e9f62ee63f764ceca5a0c379a34e99a280da7dc", + "public_key": + "6c0214ab8941a61cfa2e2eabe489e00ab92ddd3b76689982538168c99d4eed7a", + "path": "/1", + "address": "5S5eATESCWekhK7hgw7mGVTa8PULkkPbgKQ2qSoSQLxktgjJ" + }, + { + "private_key": + "daa9593da0fbaa496b588c6b94e1b5ba713660d8ea0606814029ebd443a6b8095ef8c0bbb7a99f6059bb5b46975ed7c6b5d593773e7b2212335840f6ad33952e", + "public_key": + "5c1fbd0edeede7e39b33ae139454836956d6b90f8d4b141fe6fcdfa4eaf2a436", + "path": "//hard", + "address": "5RipD1PSXxfTSzvDhUp1vHc7qwEQwDbTdagavmdcq2M5cZ8V" + }, + { + "private_key": + "2b147d97d73402e9fd40c0d5c9578f539fde6ac96d67debbb944dcb2a8ef700b38cba7cf9ea7a7d53f60d44c997f1a1e1f91e5a7d8ff3280b721e765f1691c09", + "public_key": + "5cb494469147cf8f993232e9fa6b379b040de01ed25fb702136b87709367c70d", + "path": "//1", + "address": "5RjaRUPCyYiCjACZrxWJnEibWvLnsFqEL3iXGegCqYstUovo" + }, + { + "private_key": + "54faf3e150e39a61b5ffc56e900e58cb75ce1eb287d9b3462c385d971c1c7a0eff6884d7a2cf9f3ca71b53054e1bad5f0806a47993fe1747ac874d6c9e36a805", + "public_key": + "540c5fda6b7a6a67f1d27efe8c0e7c596b68b5a158b37247d34faebdd39a8c4c", + "path": "/0", + "address": "5RYE59s3wToGFnR3B1HBgKb9gcXNEFeezpBe7BqxcHEKZXkn" + }, + { + "private_key": + "24de5e807bfa5e21cb1c95bfb08b76863658b3e139d6428a7861ca224af1a00ba809b92c1ffe9d57025336b6c679587aec7f8d4fe2389af67a7e5a6bbde58c7f", + "public_key": + "061130d68e18e08ef5d0f4225a081c21466ed0553f9c0a12b4bad3f14ab51153", + "path": "//12", + "address": "5PmymWMeVgzaXGaTJWbS1iFFK4DUh6AT1f2y11J9bdrc4TvV" + }, + { + "private_key": + "c756c2c438b1b1a24f4d69451dd55c0fdec3afb79496e9bdd4b790a07f606b0f45febbda7898e6bb2e19cd08bc8840a0bbaada4af5da66f3df9329d19c334758", + "public_key": + "4a04d1559190ea7a1de173a867a445dc6115fb955725a5377b969dc65ebcd925", + "path": "/soft", + "address": "5RK5MBUGKRrCCETNdb3wP4Pt8mAdaLFjPtEwpfvnG1uZvCAV" + } + ] + }, + { + "seed": "2c3fe9ddc8770dfd8d3d046ae3f9718e47a3bde20ad5cf9b71ca98579a830cac", + "private_key": + "4ef0062dbf9123fabd842216e936267610d96685a8be43ef3403937f2965230d020fb861bc016edd36b17303fec4768e4130ffaf1edaab7d7ca6b354d3fcab71", + "public_key": + "ecd1c9d227c8fbeb94950765d497d866c3beb84e95e7e36e3976632cc96b9826", + "path": "", + "address": "Hvq8zxsVztpnrXvKYaj3jwBXHzU58VuxAAzRSJ8iacv7pVR", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "493cdbee64c97a721598a0aaad0201e451f1667ba005ca41babd5f043032f80ec3460b7c2a5c9c0beb5586ebe01fb69de4e89f68987fd113a22a425eb64fe87b", + "public_key": + "e28f64bec895576691c60dcd30089a00601bf1d88a09b97bb1d11db6c037ee7e", + "path": "//0", + "address": "HhNwGfJ5VbwZvJJiJYHuMkwXvLGLiuw98ckxDxouq1jcS63" + }, + { + "private_key": + "7d11a854dbe92e598de05ce1e36211b1a5b6dd518adccc3917094c27ea76a20f841743c8bc352033d6752e612fcd8354b99aa212f67de463f35e61d4f350d484", + "public_key": + "84f2b95cd49545bc46ed452c12dd945862580d9eadc6b283872c2ec449f4c631", + "path": "/1", + "address": "FadwdRFEKd87dTgCcasdtzhmTjjdWZZtJGYucyTkJUdMoJy" + }, + { + "private_key": + "71d222993431e69710736e7c0443de8e060e84a39ad0b1805eb5e3325deb95096b41f97352e5b5f5ad976afe5212f2329580226ac711a3a1ab95006b04c12fd2", + "public_key": + "d2f9efcd7f9ed2214b70c10c0ae9612d6bfa5be1c8136f40b88fb2fabf89794b", + "path": "//hard", + "address": "HLwpXiBH4fxBTQ3FLeWqoe2e3m29YYn8pquLcoUTK1opJKt" + }, + { + "private_key": + "aeb11c893e162d85f78d2d45e61e571051be3a5f5cccf9c40dfce6a7618b8b0db30bbfd96a2d4e2af69b2af225ac2ad23c78ed03750ea981f2076f64e8b80eb7", + "public_key": + "d22efc11176346e02f4dbcc0507cfaa20d153c1b06f96177594b697513d8920e", + "path": "//1", + "address": "HKuXkHcUx9GxJbSVwPmrX8wQCT29W3Kn1n9vTNCNx685NHf" + }, + { + "private_key": + "0beba5a064e704f1ab0bc741a92785613ec35637131fca24340dc1996d186a05c1141b387ffe58f24779baa7c77f6dede61bbce15e7680fe6c9b4c178e4366ef", + "public_key": + "aa73d1c49abc0b8d783df6dfefe1031b43b8027a36a9fa81e1afc368acb4c056", + "path": "/0", + "address": "GRp4efCRpb9BWiaDC9Az6SY3164FMoGg2vAaQihHCPLrfo3" + }, + { + "private_key": + "f0c0080f55ac2773b2853066410946d6c06ef7f7a87b30367d99e8071c13b00ef0e8c9cefa1342812c35a000e5f78b7444b67b075c40d797d50035ece7efe391", + "public_key": + "9cd495e7915191d041e4481b0cb8da0e38319ac7428d48005adb5cc16266902f", + "path": "//12", + "address": "G7x91XHHuRC66MAWnhDY1emsYYSFCZz3NRLsW5D3Yrde8st" + }, + { + "private_key": + "d3836f730223326d4f2693eacbb7669e5ec930104a8ca26fe60351c3fc52f10f3ce9ccd79cf5dd76aa992a386edb298567e1d58dbb9209140c9419163d2ea350", + "public_key": + "6678c7e1321f467162e42d71d51fd60c4c7570dd5a8a45d0d8dbfb95a5818923", + "path": "/soft", + "address": "EtgHGvPSEqikPjaDNbCkGiB6E1s41KkGxKkn6xBmBEfUx9i" + } + ] + }, + { + "seed": "6bde648ef4e8df24d164ae2c65d53e415518144d8bba166e44be70048e144234", + "private_key": + "98b03561e6ab8d0f182b193c6f5657b29c0e4ac527605393ae52d22d4c8ede0b5e36fc589678ca6a0648df125de24c3543438d73e75235f63a12ca0273e8e607", + "public_key": + "06ddb3b44ca9e95e87e4af90958cd433c1079465c126ed666dd461b6b4ad4b5e", + "path": "", + "address": "5Po2X9pNHLERwLNyyGS1qVUYRKbdkDvgLP1yARXTuM2YdSZo", + "coin": "CHAINX", + "child": [ + { + "private_key": + "b9329f2a05286de55a48f51862cad6071f7a660f863a9f3df7d8e8b896d6080e7a1621f34b20cd7a34dba700fd60320bc5941fde8ad8b9bfb8457043774112af", + "public_key": + "06fcc8bd9f817c0a4228537647a6b8150fbe0dfb43c9ad6fe6cdc55ed6231414", + "path": "//0", + "address": "5PoBkgkfWCFt4NWYUk4xyk7jpYeFobRq6gut14jYM9jzwoWZ" + }, + { + "private_key": + "7d9ab4727da5f86586515a22c8c3dcd4e031b97cbe2e24c25e8b1184593daa02c466bb794fc4b15c6461b25ab29fc8ba16620c12c6b29935249d9fb2b008dc92", + "public_key": + "b83c74368626b8defde029711743a31f7529ba0109a97eeaa802c4f9c872930e", + "path": "/1", + "address": "5Tob9GxW1qTDoLvGqBaHgaXiWwrKoFDTUsAPPt9Dtd57KeQt" + }, + { + "private_key": + "0b8df28083635cc3fb30031ec078d62c06d20d32fa8903842a76082f6ceb2a0964501974dc159eb781bd1a21e26864e7804f99012bb8c4860dce800ba4cc22f2", + "public_key": + "1a0cfa3e30c251131f7ff26a1a29b2502221088c2605e30492d7e59058d4cf13", + "path": "//hard", + "address": "5QEBUTf1LkEixb6CZY1LKQSdN4i4rLyNv1Urq2UYXRYuNUyP" + }, + { + "private_key": + "492dc7b285203ae04eef7894301eec305fe85dfe1788b4bd85549d922222230a0661e9ef4c37f5a0d0cf1d85085d605d56d472c4276833c1ce600f80c6b7de6a", + "public_key": + "b8ae6e0f02423905034104bfd45346f3d98627a622b5af0b8104a9e7a730813a", + "path": "//1", + "address": "5TpB133MmaLA9CbUzcd8zfuBFQvBVBrQcrCj99pxGmyZMxW8" + }, + { + "private_key": + "14bf4c6ddb1395a147924c00a80922516f838c888b506827781da604ca721b063d03538233d05561c3d2ae4e16e8b94890990ebb5660cb7ca7a5cb2daf959584", + "public_key": + "b689e4212720c62fbcfd3bbd1a5fecf2fe007614aa5d41827b61c6aa2db02a0e", + "path": "/0", + "address": "5TmN3w43Fvy79MtBbDGeRidTbyopUai4dCf4NUYgmFVkvcuv" + }, + { + "private_key": + "bc87dc431408c4ba36222b1d7b386224232136da2c38f0c863f6357434a6d50ad04466dc43efbd4e79799f7f01b13f48e0bc5a92bc98020bdaec0df70dbadd14", + "public_key": + "e8da04bac17999f6702a371c3bd7aa0a2c8cd6f8fc990b1a57c293e691e1c21f", + "path": "//12", + "address": "5UuLFMrcBo7Utq2B5CkcYs52qX492edGxdaGFVqy5hd9auC1" + }, + { + "private_key": + "a5661b595a6fbd9bdd9f07fd95d5c3aaf6cbea9d761cfa55837487ddf8dc1a0e3413e3f0b6f00f412ea104cc7e37498ade4996d8969bf6f80455c914beb85b8d", + "public_key": + "34844c5c2123a2a120afc0806b877766f35c977829ab60f5a48a733759c92e66", + "path": "/soft", + "address": "5QptAX5uvGGzQuRDzM8dW8VgKr5bBFqjkmPCPpH9aqSKB89u" + } + ] + }, + { + "seed": "d98a72db2e7d6493d1cc675ecbe1d8b4307165021e16c8cbaf2bd7681557b9b2", + "private_key": + "0364c0ef16dced8054e2a80a8e8b735475f6abfbe58560ec10303cab882046092c5fad87227ac5237d6f9946efe0b34b11f6a6760c75f65cd10740a65391fa58", + "public_key": + "c090568d31776be57f552720c091709293596d04e4e91fb5cd9a2aeddbe9fb27", + "path": "", + "address": "5TzWSnT6bdphicG4Qsn2nsD48Xov1ridbXkiyV6YCbabjKyX", + "coin": "CHAINX", + "child": [ + { + "private_key": + "477d2858b1ede8c116a8ab552cc3578719835bdf5b87849fb024221025935f08e13efb0e1f39ef28c02cb3e56242dcd512a92f86c99da09692b8b75fe6e5d7c3", + "public_key": + "be9e4227a93227ba990a6172d98ea35e0f1a24b6894e629f53e566db372e094c", + "path": "//0", + "address": "5TwxV56aLCt8bWou7cRAWkoL1GL5qX27aYfaiMpuYYgizrsd" + }, + { + "private_key": + "add547b3a96886797f1d941a6aaaacb32287578849467b887730304f461fcc0bde87c1d12b5671009c27be635c121a2da59951833c5ad005c6bf5b293b306a71", + "public_key": + "4eea34a1f4699c561719c5d908a1939211b3a0e25362c22db5b43cc4aac8ce7e", + "path": "/1", + "address": "5RRVgYxaX9iLAC56ErXU2V25K1spGufx5hoEKUhWdx2WjKLU" + }, + { + "private_key": + "0932086f8599e98e93ee2722796df2a171ad000e564de60f28aaf556dfe3230a8905f84a799272d374bbdb32334011cfa2c5077162419d5aa299703da0448555", + "public_key": + "7ee0c589b98408d7ccb41de4c7e10e8c9283cfdb8e923850d8f127b99c882501", + "path": "//hard", + "address": "5SWPBKUpfKuParEMp8EFQCBCJUMVzHYSDyYrFymCDxPns1co" + }, + { + "private_key": + "0b1e7a4becc397ba93d8bf50736c4274ed26170ae4a45faf8af50ac564d4300c204755a28d97a7457006a299af7f6714d072707248083617a5c9272ad452c0eb", + "public_key": + "309ea1ccfe390434c93777d1f3053a1037286c279958691db23d47b38644413c", + "path": "//1", + "address": "5Qjmo8WVtzqwsMbas1KmXz2An5E4mhMDsVHEjJVCNbb7oBqW" + }, + { + "private_key": + "1a1a9843281a83b69ce2267cd4c74cfd4f69c97b5d605fa2b2966b7564b15101d804da9dee5ec29b90e396620d1977ebb7e9ea6653f25f7cde8ab9f8de079e1a", + "public_key": + "5aee139a639d7b03e6916ea7bd325dd980e0d118e58e92af73c1e0935c013a63", + "path": "/0", + "address": "5RhFQaJUuUPr5aj2kXFYgS2EnYvDLC6fvmo9BdKjZ4EmrcvM" + }, + { + "private_key": + "53643555acd5140ddf5bc7ffa0b00f2e50735be0c1e17eb80f100aa7cb06c80cc634fe7775b92561c0bb9e93e5d893de0319073543c6411b771163e47284e524", + "public_key": + "6029537ee1370d61755c789b34a970830426f00a994a32cbe9c85a9493d8ac5b", + "path": "//12", + "address": "5Rp7FJpWoCRvu1SRssAfyXBauyY6xzAu2nfourcgg8UwViPo" + }, + { + "private_key": + "88c911e704f5b5e28f37a4115adc08177d1f150a6104bd8f4daca065b5feab083ba603b2fb116e82956ed7d38dee33e7ff0a8d28dc5b383b4db5ffdb7e7bb757", + "public_key": + "34ab5e86cc6e44d169111cb3735243c46101abffd56c986b2023c43fc0944876", + "path": "/soft", + "address": "5Qq5mhMSeTJgbfwxRYT6eCyb7GShdnf5s8qAWFPtrhT95TzG" + } + ] + }, + { + "seed": "1c3346fcbb26d6b3a7956f098904da7306e45c862077825c21baa95538a1a3a8", + "private_key": + "ebc3155876856d01527992ae62e18a178cc933ae591e89c985bf655c2f75650d0176b63d9a498705ffe9fb69c3ab61fe839288e26eca3f8d61672788c1c6e6ae", + "public_key": + "64f6833091a18204ee6992e2ace7b5b04bd8f405fd1152106b7d650770abc918", + "path": "", + "address": "5RvQPhGKrimdShksisrBfDnW7c4o8katB1DRwWW91vd8aoB6", + "coin": "CHAINX", + "child": [ + { + "private_key": + "7f3b1c33acf127305d79604452a6280a870c43117f5f71793839b70a6c25660bc5038541b32634374086b231ff3cd0e92b07165ea7143a81a7a93a0286d41a01", + "public_key": + "d202119feb53987c948f04ede874f93ad626b493cb9e93a3533e18bc37ec6b00", + "path": "//0", + "address": "5UPP3XvkHqaKwdTfXJdjJyTZYHMsfEXwX9pNUePjSuvDQRgA" + }, + { + "private_key": + "a5e079168954659de5b63eabda3fa1c2233c79b35add3b3417acaa776bb5b70a11085adba04d6e6c4f9e47b9b52089bbbfe8d1d892df63988e3fd1643393fec8", + "public_key": + "da3fb14950617a220e09b6a395221c256ec34edcf291b42cc43607e2f2cc0a40", + "path": "/1", + "address": "5UaBjWB364VphTKj1C11oXjBnHR7NRhdy46keJmMBUGoxmVQ" + }, + { + "private_key": + "38d495ee2f6411348967efa6c9752d31bd273c0d5c89ea982a1115fecb36ee0f417515ea47c08e8f04ead026cb5f3d0e6da794fcc9d3b6acef5f08615358e37e", + "public_key": + "3aea5cf22f06a8ee9f7766b382334ba040029215c13184987183b0d832158f56", + "path": "//hard", + "address": "5QyGmieEQTy25d6Yy4XngMoaPSpuyoNxx2KthNNK64FsEQpb" + }, + { + "private_key": + "cce92b59d7366bb6a1b1bb853f7f3f12424b561c2211486e0daac96a5723cf0e7c33c2871f145ffc25831b6c85e5d651ce27b61455dd80fc2858cc858769d03d", + "public_key": + "181fc0cc6acb396329af8947feedc478af148bc870ef846bdde978d1f405d638", + "path": "//1", + "address": "5QBexQGRjH8yQaU7nceScuMkehyPMxe55RtG7YJoH8ucBw6o" + }, + { + "private_key": + "bd31f01397057a4c0d6dd604bf66ca73930c63ebc029252dc30bb9ca0d2426060daf7610b1038747ee301c726b8787a01d844deceaf7fbe48b8b16f5ce9fb8c9", + "public_key": + "e0fbc2dd5df71b76b8165befe856d14d3a8f946119fc46e43bc0379e7cd4386f", + "path": "/0", + "address": "5Uj1tWqsFohLQVacgyhJhxDZ5Titik1Ruje3BC1EeHVpseRa" + }, + { + "private_key": + "cd3330bd7321f786a5877941c5fd96a299039f395267122c0273a9c8d3188f0d1871aed843dc4c200cdf257e47fea907c17ae7577285cb93e1e82f4b0fd4ae61", + "public_key": + "442f7f9d5d1b869d76c112b4c344d161b2228c364cfc1b8cd34db4479af9b229", + "path": "//12", + "address": "5RBRjtaz1S6sR7aWfgNwSrHCxfffE9emCSUJ8nGUMQ5sVvUq" + }, + { + "private_key": + "1e97c8a9ebd809871068c0ff102c97d584a441792060ceeca9d1fe11d103430cb54c638c2eb907c9ee77e32f4df9e1cb5c7935a69e5c4486fc152e1636e98fa9", + "public_key": + "e85413fc3f7de7b4a3660d8c39122693a8f1bbdad9f20bbf17a27e123d854832", + "path": "/soft", + "address": "5UteTcxyq4EQPy7mPY1u58RfoSKggD2gJy9KEbKBeDsmhQRx" + } + ] + }, + { + "seed": "0890092c47c8b77610c5f99696fbedf9e48da46b450ea5765c0d20b511379561", + "private_key": + "6c65a52edd6bfdf7893acd16c3f0e084d14ce9d28cef881818ecce79b904e40ee38152b195be032d585b7ae8cc8277fb200c114467348a91c36eccf46cdc4b13", + "public_key": + "f239015cb1b12ef8a55f4c3b096b6a2ab04d0d67608a16d4408daf995f821b73", + "path": "", + "address": "26MC7D9d1M7b12PmwShPKQZBrbjTJghMUojGHaqR67cwumrv", + "coin": "ACALA", + "child": [ + { + "private_key": + "aedb31b14f280801c868fce97ae6e356e1e2251cd1b0b6ddca8128907ad07c097f2a73209a8060b04faf5f42ff21f69d80ec785a1ae91c3cd7077d945734484e", + "public_key": + "e65ce5914b91d3d0f95463c50ef6688ae9c90614cd7789efaf423cf1b64b3730", + "path": "//0", + "address": "265eCH3WA8dg4LHReU6TY2iAR19V2sLEcftnLhz1E9Ex74pY" + }, + { + "private_key": + "e03414ad082a087a3152532c54364e0b32e213c4ba9d49ece386c12abe74f3060d82c24f450399bad9ab46adf2d326368a4c1667f70ccaf60cbd27386ead59f1", + "public_key": + "f6cfe6e362c6afe1b19660e169b3cb3fc72cccb3bc806ff1396f582801f23e68", + "path": "/1", + "address": "26TD8CyDrRjqXKCeRmvBWayapoUXMjNJzrHW9aFJXRWyjThT" + }, + { + "private_key": + "f1a52f03fb69e52a04e74d48abb13e151d59f07297d7a74b8873a54f8d40fc0c0b477e5013144c4978f41f8373ee9589110c13630ef0aee935af513740c1b365", + "public_key": + "e8c7459c817a29627d108abd2245b13df5099bd54578139312ea1e6de159c16c", + "path": "//hard", + "address": "268otdhc2BxuUYbPAoPQCMYJaeQZpqEkTkytahrX9GLg1Prh" + }, + { + "private_key": + "730e12b3928f0c39f2bf18fd941cfbcec478f8af98136646307ec6028224d20827d69d8c3c3829c54cb938e840fd919c6ebc6b139892d1d20394a729f93b106d", + "public_key": + "60297ee85c54b0d3f3bf624db10c9c7996e74e9ddcd308c62725e05f69af9f6c", + "path": "//1", + "address": "233gWVsdDy5ZTzyyD1B7KEHTEW4Q67CRvAjdxaERi2UwmCUy" + }, + { + "private_key": + "654fa5c789bd3c2e161e67a26c592f6c8102cce411ff045578dff3d07eb061061c11ddae071c15f6b4e2161dcd005f4ec49767b09a959d4e8564eb4976536273", + "public_key": + "e6deb0ce0fb3e9ce450a18f7c634ace9f072baac1c3b70b88ba9c954c67c3f06", + "path": "/0", + "address": "266JkaFpT8uz38MaDAkL1qecpmvTWuvWGNZ1kXnAY5xcJBpw" + }, + { + "private_key": + "910a26e4ac8b341623f18c1c9db3efe769ab246625b41c9390d8dead4957a30886a609141e468465677d4943a8239f2810c7efdb6f595ae395182663f5d3d15d", + "public_key": + "10687dc21722e372a7ccdd0515fbc0ae2160e245ad37c0a09aa0290214832953", + "path": "//12", + "address": "21F7PhcHKevyuT3prbUBgi6PGq2kYyEVZfDaC7AREsDCmx5w" + }, + { + "private_key": + "9d714457f3e2ae6524534b8e2811f352f15ce6c240a2388fcf90c29f5d9c49084f8082873762a3f04c6971bc5f6d1dd074623452135eb2a2fe69be5ffe04ae11", + "public_key": + "bcea50546b07c24338536b9ae62921d032f3ae0605e40a4bc6ae8fa2080d914b", + "path": "/soft", + "address": "259JCBvZk6Qa1vr5YUp4xNASzfAJCF6FNrCp4L8Mxy7Q6i52" + } + ] + }, + { + "seed": "da692fffb0cfe80c17010de730e3dab91f4758371ed7e4b038f560fa9c332e56", + "private_key": + "22ad6ebf99eb3d4fb4796d89899ccc90666767705856973834b757c55fd46e0bab1893157332d1782e47c86952c471e914ab357516b11de01c4024d5b54530ea", + "public_key": + "a602ab64e300a6f136c5c1346245e24bfc448f2253ff7588a4d9f2972ae8160d", + "path": "", + "address": "24dGKx4sgzsoQAMbaXqQtMDdrwBaVWVamDSZb8DaH7iSAMGB", + "coin": "ACALA", + "child": [ + { + "private_key": + "501ac7af38d1c4a5057c4cfdf4b36cc40f5dc3ddbfae14d5c8e37297a7173808e085e9f7f94e4bd692a38d6f7abbf5a50d45f8ade61a4cb300e3e703e50e336e", + "public_key": + "f8bbe2e588b8357386f3d76254589f96a12c02d49cc0204da521b212ea1a8039", + "path": "//0", + "address": "26VjGuDqfnjM6kbjR2BQRhe8BjH9WBSXzkPnsPu5xmEh4q3Y" + }, + { + "private_key": + "54d89b6efbad82651f1dface27ac82be9ceeffb7cc61d6ac0f1c0414da91ac09c2a4b83df7f22ccd63ebc51446bd19533e006be1fcae15b444c5748974751d97", + "public_key": + "84bf1d52333af082e79a8ebea9ef4af11648cee9480af04fee9912c3dc204b1d", + "path": "/1", + "address": "23segMUZrazSXotA5dJyqZXieg62rrqBqFWh7ieB1Bwekeuo" + }, + { + "private_key": + "018120b7981ea0e885ed950eab375a20a0acee53491c60016797002fef320c0aec2a049070598fbdf6030c12b19d8cf85caaa59bbf57e1a9bb21062926eb3e16", + "public_key": + "50cb069b790f12ccad3bbe6b906a14e6b6cf40e3d981a1fc0a95eeebc215b57c", + "path": "//hard", + "address": "22hXjAEeyVnxBx3raf1ptW8j6u6m2wz2mTNrLq1QKL4gWfcz" + }, + { + "private_key": + "511660549541afe745fe07341587e5f61786561aa57567272a82881809df020a85914342e209005c0dc3dde6075bfe2e6ffb158a89aeca48699192fa708d8733", + "public_key": + "12549a27b1f23c463aca220a58a422b1a204bd169bef14f67594345f35592732", + "path": "//1", + "address": "21HdaaHuVmixq8PErfLLZLowSqiazXcmutxGFCF2CkeHj94f" + }, + { + "private_key": + "a01416f0bd42ce415c50d12b0d128d21a88f83669569fa0d2d07d43d1944180c837867e3e86433ff7a2b1e98acd29ce1d53c96fad2e4ff69d12a05e87e54380d", + "public_key": + "40d64372ddeb4385fe296c7a1dd24e2cfea8022a51ca6937404ca77561e30211", + "path": "/0", + "address": "22LcJLsbsqoXBL9RCSwACDZxEy4crNt9poZGFV9UbyJVQxuH" + }, + { + "private_key": + "acb39c4d303afd0a9bdf575ff9614478b620232d6c514f93cdb61dc6d2c0aa0c71f0d717bdae0341efd24bbac99ef909cb6257c6df3d176f62c97e8d7d215972", + "public_key": + "dc395ac6e034e12e6f21ff95a9128255b528e124d8ffded95266fe630051567c", + "path": "//12", + "address": "25rMA8LSh3iTbqrtQ957Ny3EUhfYU2SgiksbJwxbTeh5cTak" + }, + { + "private_key": + "8be01f10711ab8e0b1acae748e082c28d8c84570c77c00145914489579298b0c6a342e4de10c6a549e36791d66dd23656172c42c7446c2929fe24aa4603a0bac", + "public_key": + "40fbc3abe1ed0ba10f638c7c569e336962c79edbcba4d5a897eab53a9ebd9163", + "path": "/soft", + "address": "22LoSU7vdtnqkMSwLgfThMqbcCEFZqcXpP7a8b1aqWNZmog9" + } + ] + }, + { + "seed": "42ab73e917bf6e6e12d816c4ac4f59f0d1c3267fd21c787158012f80af569316", + "private_key": + "60d3c5fccfa740690c9f31c676e342ec775bbf182f6e66f22dbed1ffa8608f0cbd1fc0dffb972d6725a8270e377b839a2c40a6cdbcb2f7d764c882424864cdbb", + "public_key": + "1838e8534e6a0185d3ecc4970fffcf1de60ded8ef54442a437da715c54394543", + "path": "", + "address": "5QBnRoUtZDNW1kXEvPaZx3ufQgm9SzKRn8r7sehs9ud9mVXq", + "coin": "CHAINX", + "child": [ + { + "private_key": + "f95f6c6cb2fb04d550e8c34376ea36c2cb561979e5b560c577c8fa853da2230f073e7043d962feabc4675418f251bbe6b3cd1a6eae0660301fdf52e9666f6186", + "public_key": + "4ed7d68ebf3e9293be6f8887f77e4642ef268d4dbbd802816f3a5fafde359e6a", + "path": "//0", + "address": "5RRQE62bYrxECudr7GkKwpuXjzn1YCKocgV2SkM2Dr8TCqjn" + }, + { + "private_key": + "311c4fbd9b868290eee1b7b5c68e4c0bb82c12c86c4c313c6ce00dd8a21024015c9fb0bcca76497a78444ea713c0a7452bd76291c8f20acf184f612fd5aef9ad", + "public_key": + "3490b140a93d75c24b7e50e07e56e35d62222f92f46520dfff917a99e9fee50f", + "path": "/1", + "address": "5Qpwr4jFAasB33nPm9cCh9bgfT6i6MktEcyEbZ2m4B2pquEh" + }, + { + "private_key": + "dff66c73bbe64ac5fcacefbf98ee6cfce69bce41af5d149735afe844ccba280d757605d7a3a0cf3481b8341d7a2410278ed3e21a1c7074ab15edd8175ffc6130", + "public_key": + "8297b22683007b7cbb9f9263d2feb57d4722a46eb310075bf8ed134c4a9e946e", + "path": "//hard", + "address": "5SbFfN1oEpWroGoesBe1ZDz8MBH8ewXFZ95J9Rmkj57CmtZB" + }, + { + "private_key": + "ff122c5b2fd7a5d68b8bead8b3dd6c5646cb28d30a1c6259af53c48b7e090408c1e2234a4c020c7553650bc319d745ed0cd23805f7eef41bfc7df68ac9b66092", + "public_key": + "e07484040cdceb02888f9407a215f47557bc6b0bdba64fad7f374984253ff071", + "path": "//1", + "address": "5UiKiHkMnyjc28777XBSbuSTFdiUsSh8yHuYLhU8isW1A1VZ" + }, + { + "private_key": + "dc9792ed002e43194afc66921a3a22d33d36367933d909c177c79cce6948fc04fdbefa3db2c840200d959491ea8bd14890b9af23dcb4bbbee63423cbe12b1c03", + "public_key": + "6e8a07b03c5076b32cd409b9539da64215dace9f98016393e518c26f2af6493d", + "path": "/0", + "address": "5S8xeMoTVjL2JYYFk947qGig7kPyg4dowbM1XGgdteawqfpM" + }, + { + "private_key": + "3ea92b1ba2bf1594501f41cd8507a14e0314c49c83ccecb3f044aeadf8501b0ebe439a1ff0aa4221b504ff2f968da0a09889719a37fdb281b4dc80cc6f22838d", + "public_key": + "fe6e4add2300876341e85f18fb5cec3c08f9813608980fed990ff4be56d6315c", + "path": "//12", + "address": "5VPdJPGtv4RwWRjXeLQBZsettXKkUHshD3AaDm7F5RmtYhqQ" + }, + { + "private_key": + "e33a8a89757499ce517ae5f4d997344e2768c78de0e62638f4d89883b7bc980878e6115f3367ac86fde94bc8365e85576b73e8d7f033628ac587c2680f940204", + "public_key": + "cc06dde0aa6d5008679b187fd0268c42d46b8109e3c39f1c782299dfa3625805", + "path": "/soft", + "address": "5UFYBY1NxAq3a2Sfk8x45rA2vMXjGEq2vTb2NivC45ourhLt" + } + ] + }, + { + "seed": "a60ec3515f8267137e53e23167e6c0fe181cb7d5add59f3f6bec2b465f82569d", + "private_key": + "9b3fd8edef766a7b94921522db53df05e12361bd34e65c316f7660d133390c0c69af8aadceca421da2f1b6c97aa615e0b88eab39807b2c7222223cfa9c5d9fcc", + "public_key": + "b6a4a84a6bebe214538d43a52f1424bbf3ac8181c9eac9d94ac03497ff1a2b7a", + "path": "", + "address": "34sfoJ2QYhyf6e3FvsseLYUapWm6FfCEy5N2mBcvXT84sKwt", + "coin": "STAFI", + "child": [ + { + "private_key": + "77f77edea7f19f4cc95462da44b4f69b88e4b8933256a1f3c6ecb20d1f084d0a5576e52f3429d896484eef9129ec14e2555981d559c1b27de33694ca91636ca3", + "public_key": + "fee2d0e14981d0a005940c6780da3cc0886bda13f713dcbbe4427a5bcd1f6622", + "path": "//0", + "address": "36WPiEAWnzXzrfneR7D6HJkEuFJg6Eo6k9Mh8PpAYkAnY3mW" + }, + { + "private_key": + "c54c8cddda9311db96776dcd0d5489db6cc81ec785fc637808ab2f88996132060e07a430100bb4377c8629579775a0c6f035c9b8203235af291af35bf5293188", + "public_key": + "fea7f784e84c34452651302d6ec62bcf8fb01b8a77016508ae020a996db44538", + "path": "/1", + "address": "36W6EHJr4H9YVrwTVAJQFgS6G3SA7v2BV8NbEr7tZC7fZrFU" + }, + { + "private_key": + "75ca94c551d343d5e8e9e1935f6131937b87edc87c95a5f204ca959c0646230bb08311faa283dfcde67cfbfa0b22a1858f716d92418e36e0f7866715a5e2107b", + "public_key": + "ecd793651241f9e67f1490a425cae5a9ab5b0cea8e98d1edabf81f82f6845f4b", + "path": "//hard", + "address": "366jWa9rxvmTyJDbyn6TQRBaswKbiouDxgCuhkzj44Bhj1mm" + }, + { + "private_key": + "72c168fef33e4a26d309153b85cabe40eba471798e0beb0a67609d924f89720bb9a36159efdffe82191676fb129262ede702baf64781ee0159c00a2505c39ea0", + "public_key": + "2602e1d116f1833089cbf32fff4ae6cdd85ab9d32f4676dc12ca1b36bdf1521f", + "path": "//1", + "address": "31c2r39v57t5DahMN7KRrTsDcJ6ZHPrJjUwkqo6CCVR2KqYZ" + }, + { + "private_key": + "1f88fb7a7bf701553e7f30b93ecd152c46f74225bbafe57e95c8b821aa44a0094c4c3280af2d127fee8215ec50aceab528dd92544de837a30b5f1cd703ffb45e", + "public_key": + "8ea37ccab98244203f073062efb4fbb1b20fac7edcda4baae30751b49756c61f", + "path": "/0", + "address": "33yDY3YMG2DFNwTVBXnWxmZPSrBxypg7pEEBNmr95Wy9JcGV" + }, + { + "private_key": + "c8662460b4a3e0e72023ebbf742ba6ad27d7b394e95f6d6a5a9ac56a6dcc3c0843ababeef54024840ede3b361a979599958cd051921fb91e99328ce13fce7660", + "public_key": + "7c9602477e9417b22f2f6507a691b2a7471c797df31ba0dd476d59fe90fa3132", + "path": "//12", + "address": "33ZYfpftCRCBXGCg5LmqiY3UhChu8wxyoJWoYKBzTMd5BCNa" + }, + { + "private_key": + "7f4ff6952be170b455cdb4e1738699e5f86f6049a0576fbda774326acc225b059fb4794973a3af63d4934c579f50c04110d227edb0193c213f37217f66320655", + "public_key": + "fac38425c9ce1fc972c5c2bd096e59ed8a7e53c77dd12416b5fe561a5c5b9d45", + "path": "/soft", + "address": "36QzDqUhA7Pg3BboECgyzMT4q4KYFN7zPHvTNGw5thSqjMxs" + } + ] + }, + { + "seed": "16404f415baf734cb77e33b9263fd78090fa2f1cd97dc9cf5e9bc86be220ef18", + "private_key": + "d25b65995fd20f6d9814d63b7110ac022a69fcb20f1e44483dd99c6a28dada09345e649533aa62ae70456b7695eeb88030b6e11340ba9296bd1c73a0044883d7", + "public_key": + "90b5624d0d6338ed32dcef581e37eb07503ab799faf3df1b4f700be29b367e07", + "path": "", + "address": "249LN2b1FebvMXwupd4HDWHF7ofFdi6V2UFtmCMd5dHKZZMX", + "coin": "ACALA", + "child": [ + { + "private_key": + "15dae75539c98d2a629f9e6dbc5472d68c5c113f0eaf67e4bf8c9234f603270815011a18743652e6bcb9f5183b77807937e52eeff815e3c00a9bc9ebd124a2bc", + "public_key": + "66a5333db3630859f03fff28dfa21bfe0dedaf8abb1ff2f2123f5bf9e62a9962", + "path": "//0", + "address": "23CBYYHMcHtXuumeT7nToAURLnp9wZzJXFscgD8RnbgkjNeE" + }, + { + "private_key": + "a8c16c973389bf9b6f180e7ef1599ed961da78194ce4bc09d22f88d66391350f0458da50aebf4526b598591be558a5bbad05eb5f5d68b4fa171d7913a7f2577b", + "public_key": + "62f110a42a674d3c33240f939212de33d762909358c95e1fe43764870e23e449", + "path": "/1", + "address": "237KtYxMRTuH93F8UY5YsdsoxF5Dwk3fJSoyCMjHM9aivz2E" + }, + { + "private_key": + "c9bb005075bb625e34cb7476b6a42cb7114ae451854f48319818543df9ce470d5560834284f983b906558bacf207b2632011467ebce0099874c71df056339fe8", + "public_key": + "4c0fec3cd55473a54d8364880702105ff8f31cab61b17b5c19b72181af1c2626", + "path": "//hard", + "address": "22bKxLjXVXLGP6ctgLKUHgedrwCyzbkADoXw2tjSiCChM6iT" + }, + { + "private_key": + "cf4fd69ee2c94e88ee8cb407e8944accd5d59fd9225ff62520861fdb9247d10a15b870ca54dadda08c6d0d3b7b39f570d74394a868492441503212a22be9ba55", + "public_key": + "5a4dbd90dcc62644427fc0b5019fcc3163aee8be5d5739dce6b1a8f59ee7b745", + "path": "//1", + "address": "22uzzKMz9THKd2V5dfMWkAJsMQYkzTCfXoDMAJ3GgzaGzbjg" + }, + { + "private_key": + "ce46643a5e22f43a50268799a87a8ce619a58f3b80e5fc7401ae09091f9f780552b048e336e95bafa44fbf7729402f36c707a55ad54786446183808e121caf32", + "public_key": + "0864b4de69139bed7e0573d8152b7502c9ea2f8450f8ff53fe9f326abf9bd860", + "path": "/0", + "address": "214btGoE3Pk9mhewSGP5YFxZmSBV2qxgvrSk9AZk7cgrEVWL" + }, + { + "private_key": + "4e5065855c06a9c18a2e19c60f8b3f68272ae2d96023483bca2cece8e9d56b0f273319e98905f289146d35095e7b5cdaf4e81a7263569d9b2e2894b6b83bac0f", + "public_key": + "321b5b6520ce5a714cf2d37788c1010bc0a58e455abb7be1fb025e269fd62829", + "path": "//12", + "address": "221J78wbtUSPpcL3gDbXWxdnn3zqQwhfjVotV1AmQUb5mAcf" + }, + { + "private_key": + "87054570447516cde03ff5f62e12418ea0360213c164360e613713b43cbb690fa378c87ab9f7a5d09bc27160c22f03e8dbb34b38e005088a7b506c3b09a6c86c", + "public_key": + "2c645447d07165fd55153093f19e6b7a36ee7bbf570fc2cc5a621ce52cdc9e6a", + "path": "/soft", + "address": "21soVknbWzEX4j4ZuirNyyQKd3w2r6v7fmMtsy7cvmYKmrag" + } + ] + }, + { + "seed": "5429d51e62dd17f8090e9844da78a26c1e51a6f2a97e0f9e0b6dd762dc12ac3c", + "private_key": + "304c40a677e199c585429307c44c0b560474a32c9d186dbb6a441a1ebd173f0aa184fd4a5af2d09f5e29e87ad57701fbb3abf539e39e258bb8796b4529deff5c", + "public_key": + "a6a951854b7608a0586c0eef263567d6190973e74ea8174c753c027ae6f9cd19", + "path": "", + "address": "GLqmJoWiFEBzHgxSF6q15TYwM9Yv5GejztBV1DjDGpJZVrF", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "34bb4d2feea670dfdb0c236bb21e1dd393ff20e968d61bf8a4ff25470f6dc80f1049ccf9410058eb7b4beafa9b26b848916ceb4b4ca9de2ebe8af38b1d68b6c4", + "public_key": + "96dddcc867d42ba4698dac39a8d681384dd49d9ead741c07699a61e72f61b34d", + "path": "//0", + "address": "Fz8cBYin4Kyvr3vbbbLZRWWURiAFjaVhheieASY9sKMG8yc" + }, + { + "private_key": + "f26cda3c7133164f64cc4f5bccfb4d21a2a3bafa5d29c8392f0996d1409db903b627fec4ac9f839933079038fc8bbb1b31bee73a82f2c3f58d887a6d608b8b3b", + "public_key": + "704deb545ee16de178aa7d1fad9259c2793a02350239ad6a4309250a6e1ca336", + "path": "/1", + "address": "F7a2ZXPM9mPJubudYCed6u7V6bgXXjC5BycC734fpmyW4Bb" + }, + { + "private_key": + "2fe102dd1c38a2f7238ef3c8c0cfb1205a24575cbd5ae895f7af0dacaf56f50f7daa0135b2aa48ac3586632dea7582b6c04f207874d456d02654bf848103d808", + "public_key": + "be2aec9c118cf47f976e9b42b64498ef4986331db98f41b0686b8cb097903a32", + "path": "//hard", + "address": "GsfNEzuhXwfAceV2dD5V8Zi32eDJLWv7nZptKGYwjUCScy5" + }, + { + "private_key": + "d21d2da4b2a5d7fcf2ddc6767a42a78103f2cbb2ff478c375de5e73c3f39210cfa7ebcd6c5439f27e1d2f88d17bb6c0f582b7583c26f3bd0b05795915f4ba0dc", + "public_key": + "96ed36cbd051a682f93812548fbfebef247220c3d47b0df36f7f8107d6bbe709", + "path": "//1", + "address": "FzDAgfzEE8U6DAahCweCbfkTvY9nJGJHEJL2KWg55YoJab2" + }, + { + "private_key": + "79ede78da4e8a357169ec350ac164db4cc168f5c3a1e908c2340c8258c84fb02073b34bfe082853a9cc956124addad6c9c39c888bcf79eda7e503ac143022054", + "public_key": + "5e1a7b21ee21aa34416320faf30d83ca2cf661054846ad5e5bee83a972dbd315", + "path": "/0", + "address": "EhhtJtN3J4ov9GidNFDmKE2MHNrcn9NSrQw5SmFtwRJyfSE" + }, + { + "private_key": + "d010241aab79c2f80cfb869db01b7ece4edcbb593591b9d81dfa2569085adf081f5190d0bd96aa2433145bffe86a4219c27dd1089cc73ef6388b731cdf83e844", + "public_key": + "62597cc02095043349a0fa379ee9ac73b1507fb673e42d2b6317dbcae6f6d91e", + "path": "//12", + "address": "EoGnzVZ2Tzy1SdGk5Xk5QtwwdJf3DdgYcbed7eXwLFHVp5i" + }, + { + "private_key": + "4c4844f5167c9f97da857063296b6bfd0a7eddf2586df7d76199de1a3934ad053f1abe49f8d8ce94730cb6251ea9ae4776c2f0429bf1ebf163049898c7b137ef", + "public_key": + "522cb52347c24c843f6f7dd97810cebc9e2cbfb9aad3be7e1d28cd15ae11bb59", + "path": "/soft", + "address": "ES4j21JuiGWZbWx846YomLe4cQaXREm2i98Pc4ZcYskZXtP" + } + ] + }, + { + "seed": "7e24b49e3287d3996df3ea3af5038052d920969abccb31eae6da2442e04131f5", + "private_key": + "7c7c2c76acc3de624a395b98742bb8d33b4fb11d37a5ddfbee36544b665e8e0ec9d73d233a8c1db7ff2d97820b4554c379d8309ca3a0573680b4ecae39bb2639", + "public_key": + "aad9fa96820eca593045697f93112321d858c13d6bc15f4a23d2e4d2d561034b", + "path": "", + "address": "34cD4g4CwfL3yVV28h3ghiuEJUjhRXgwKwUdcjZVvawA3xs5", + "coin": "STAFI", + "child": [ + { + "private_key": + "e60d960bd1b752b6ad0a0e98c762f592ee2a2bb2cfd480916705e1d54a1f7e08dcc227b5b988a9ca8a67e02a6f7a35afb31c422f62a4859808cabfd779936b33", + "public_key": + "d63f571a9ee9232e2f61fe5e427ad9061dd8ba550b7c7b595e42bc42b98f8148", + "path": "//0", + "address": "35b7EWorFswsa4X695aS9rZJYywgVX2BkeDN523thvtDfY1r" + }, + { + "private_key": + "cc7342f232ad9b7553392224b82d24d42f829be94f24481abf1e21ab8db061049e28e68a6dfe934013aa6444e7ea8ebb5ed30b4a878e03da1dd3515b68efc58c", + "public_key": + "16885b16504218ff0742b17363e14013790e7bcbf731d0538b1c0b2f10629030", + "path": "/1", + "address": "31FjjJKg6boX1Lueaj7Y7fimnfWQN3aGQFPNPZDVvZULv2AY" + }, + { + "private_key": + "4e6a635fa162317906b0bcea729c0973f0a86be7bcdf803dc97a88af268b3a0aa0aa6cb9fe049ea76e560f883855fb2c45d9479cdcde795a5d095029fe07d24c", + "public_key": + "62971873f5705266c185f1e234ab503b3f2ec8d9b2913b53c8c3911e2bb01831", + "path": "//hard", + "address": "32yTkLMey9dVyZbXgB2g5Y2nHxWCuFqkjpx6bjNj6S5omw2g" + }, + { + "private_key": + "3d44a78557b17c35f9a35d4b06aca623af673d96f712e033f1dd31e8d8ebc00da123240a249d4f5a07d27631acf727044c6ba6c179861ee081587a5eb2c6b008", + "public_key": + "805745f8648603c83a0c10fad5888707a9ff50802f4d45c49eb166dc7cef5767", + "path": "//1", + "address": "33eUE2HpbQ8qNLNpCYFEj7XAWG8bgUSrxGetWP1E2zPPB97r" + }, + { + "private_key": + "b576fe78520e0e277c342c8ab5e22a3de22213870d1955cc83266c588b8a210eccbc943c44abd20e3c55aa0e864c71f7a206c3b20fe7c158092381d94e438129", + "public_key": + "46cbf18378f8163f8c74e537b6dd76bb22ae702ab39fc6aafad30a8b03c59c21", + "path": "/0", + "address": "32M277nTx37bYT1YSLr2Uu6iE6L7ZfXtY2Sn8LdNsT2cJZMV" + }, + { + "private_key": + "dd9a44b89848b37def6369243ea0c90b7a277ffacdbfb49745333bff481a760fb775120a5d0fde10b96010ec28ff3cdbcaa9110ece6782ebba938a3988e83912", + "public_key": + "b4802584e8aa981367e16266f5f959ce004457a156b3c7d7b93ab4859a64404d", + "path": "//12", + "address": "34prrfyczLMpKFGySG7NYfzNp6hA1NiHNb76GrDKndg1HhUu" + }, + { + "private_key": + "15e2d79cc9aab148d7f87f58465138cb1b9a2f8833a0d08ad00715030250eb07c74263f87b7f7efb4006f25470c545e4e22ad51e23d67f3c0360311f63c7564e", + "public_key": + "584879281a180a1baa99c741b1fdeb21183dfcb95a0ead15a0ba13071375530b", + "path": "/soft", + "address": "32jwuvz2fwcVifZEESqMT73rC3DAG4yrzytZymD63tgRYLyB" + } + ] + }, + { + "seed": "9cdf12c29e1d3d2cba543e4de7993845611e74d53674494a26260b0a549eb4de", + "private_key": + "b99ba9b9fcc615b78a969252f551b82cbbd0441f309a123e4058080b95a7390954f74d41980236e7c20b3ffb71443255d6edd4f51fb756eb49cd8c882975fc5a", + "public_key": + "3892629633bcc6fd75fc2ac2ab1e63bec53a2c978ec4c793904df7fc0beedd3e", + "path": "", + "address": "12HBAgoDKLgw69f6Tf89MeBT2xyiss4QbKiHTTaGKSQGBREo", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "4bb38c63f3601dd8270e3e0479a44dbfd94c19834342ae7c63713d815aa35b0876a117d9fdda34697657499a97e57941544ad8377a177d53b97b9147ead36e20", + "public_key": + "f8bece8d1a883f7904e86f957fc745a983e8be3aee34037d41a23c974f511c09", + "path": "//0", + "address": "16d9ZJLZJaj2kouuwkQY1WhVPRm1134PV6BvHHaC5bsZ1tvn" + }, + { + "private_key": + "e8d7c11d883f1bf4442cfee41d21ca3f220d33b5d098fba3726964a4c3f78c098d12c6d0566d33ecf49c59e1ada2b4af823b5317d1eb07013567b3b9739c1433", + "public_key": + "d009aa771b837f1d86d678d782c88034d11c020d519480e5ebf119a0e5179d1f", + "path": "/1", + "address": "15hmqDn8AnXbVGuTpLCNBqJXXynvKY95oGWVr4aGoqJDtNHJ" + }, + { + "private_key": + "5dad8d9bc30d3c6227156d536c219886ab355ce151dea73aabf656561806160f78f5396eccb721c4861e57146ed636ee306d1a7cc1e40944ea8dc6860fdaa25f", + "public_key": + "a251f15984e06d22a842a9b33b6a832477290c81b3ea947475be44603c73f927", + "path": "//hard", + "address": "14fq6mR5vu5NpdXKNS12oNwAWZTN8fU6bWvxiaVq9AfPZcve" + }, + { + "private_key": + "994c3577dd13544b4419a31da9868c663366afd77e0e227eb3d72e52639f150cad30a08e02e09e6ba8613908c8a49f96190b60f987fd9a033491ffdaeb29e631", + "public_key": + "d25981996f20f4de306513e4acc902bd48a5cdd997b3a0aa6ecb247789e3b360", + "path": "//1", + "address": "15koePmBJvNXxESf9Pm7HtAbF9YJVmsVvLLWGWoSTP5p7Xs4" + }, + { + "private_key": + "bcac1ecf722abe6acdde6464fdca7da524a8dbfef1fc2f1a651bfb38dfd2a80eb1ee2ba6351d9784c33fb5d475fe7c8effab19e2fce501ac964c2828ef471bb2", + "public_key": + "562867f4fe1ab3fe95220c565644270ab7c88451d2742f1bee9a1c3327a2272f", + "path": "/0", + "address": "12wy82iDJEBwzHEpV7jxDnTVBAzkxCKE9A2rjtsXqSNHTCU2" + }, + { + "private_key": + "3807fea27fa8214b7c6b43839ae4353d3247ebc326b422cdb130bfd02850280baa340c3df2270cb0612bef445588e5452533fc37676ea59b2b8cb74c53402984", + "public_key": + "80074d0699f19f959b788da6fec0764f13001f616fe14ffeff0ce568bb241d57", + "path": "//12", + "address": "13tsJHfXZiR36mueixHF1esaBmxiAAQ5qBiR5mFTewWKZfmm" + }, + { + "private_key": + "face11cdafd81f0efc0822d346ebb0a6df6c4afca44dcc12f9aee74dcd106a0578296d0a5a62155ef7989b7758ea7bb18bed578c7561201cf5e6877fb4660e9d", + "public_key": + "eca73e33b08bdcda68719f25cc41b680e3bf6cf947b0e0e10fcdab2684c30134", + "path": "/soft", + "address": "16MHyyZgSndjuB6mJie58nVKBgrZa4NgtFm5qnvyk2EYffZY" + } + ] + }, + { + "seed": "2bf058de2424b2c2345619a0f950a276081e0bd738e3d601c1a5b33c6d76443b", + "private_key": + "04bb11744da3155b9d37e5d8b9cd1cd8932ad08567c1e0c7c65e998927e80d0fd8bc225ed25cc2f0a6f3d223e64b1514690cde0858cb48003185661de43ab41f", + "public_key": + "40e6d5455c86eadc6d2cca9636deb959d55c9a9272381875c17e3b93f1f23417", + "path": "", + "address": "12U6dukn8sqyajptXW3Aq8ib1sJZ5LhTEtUDnEMR7stvAbqZ", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "7a2a086f18cce32acafdb673e30a1abc77970f0fd3f12038f4b2088479a323089c56eb0d02db07b2d0760374c79a2ba4dccab2fa4a4c41e8cb9070df6c40875c", + "public_key": + "febba0e1f632af04ab48e282b6b671645fc73f3917e5f29c2be3de37ff0fc569", + "path": "//0", + "address": "16kzuCd2Kb2pGR7BtJGNF8XRJXzK5ULFofqT6nU1SZFoDUNR" + }, + { + "private_key": + "97224cb9d1fc487c92904ffddac5ed1e91cd03c1e90f824dee4f12c986ab0e0ad49828b396e3bf9f4a4b5d8e048d260c019fd84523ba0712e8d786813184da95", + "public_key": + "48d4f57350b3eec0ac18577ff5ed41ab5b513eaa7cd831fcbc971a63e8f7db3d", + "path": "/1", + "address": "12eViALqezrb8GwTQse9mw63dqowz8BfFJaF7i9vtGB6kPxJ" + }, + { + "private_key": + "c25e1489b3ab0d7c45d0d54ed27740bd18eb9f6d980a9e1945e613c66d63300dd185b183c4036e6a153e9abebd99d38510ab4f413ef1726aefbfabcf87bda1c2", + "public_key": + "aac9e85c100f22ab2d146e8554de8ffdd00d5356abb51a43798fb811d44d684a", + "path": "//hard", + "address": "14rw7w1BhQyU8Yg5dCbLrryQzbzPpT9ebip9y6VsjmUWFYMv" + }, + { + "private_key": + "4d281540e3facd48d7593caa44778afeb1cea12ddc04396c2eca46413f4d500ba5ce337848757451268d8d37471e85b76ac0faa1eeb807e17cb5631ac45a6bb5", + "public_key": + "16e1493e9f78550a63785ab7906d868d123221aa11eb0fc3762f287fdbbcd90b", + "path": "//1", + "address": "1Wzyh2ueBxqjvsKsF8ZWKdqqbX1btE5stJafpMdaz3hH5H3" + }, + { + "private_key": + "d214786a0ab7c09420d376e2765425cb89f16475ebc2f07d0c86f9097e141a09436dd193d03b2b4382bfed095aa150dbb16c3ebf5cca80176bb66a6764a5b236", + "public_key": + "d07e70dce59fb395376c80da6ebad286301ce8a21058a2677f273545735cb916", + "path": "/0", + "address": "15iNXCys6CyHtjveFwDja8o4Ns1iXtwXWT5QakMpYCWpHXuW" + }, + { + "private_key": + "6bbcbd1c8dd50bba3124658dc9b72509f6c21230ea49e68e80a97b9358f6230bea9d0cb1773cff6088c0b9f0cc86f97cdd8d7078c4dbda9ab4a98aa34b68ae3d", + "public_key": + "f431d7e836adc05c5e09e42abff86ffb9dde9d0a6de1a748b463258a4dfa7f65", + "path": "//12", + "address": "16XBVSs2PnbV7LQQCbfwz9DG9Tbvp69qgmWQegQhPZt5vUdy" + }, + { + "private_key": + "cb4fd1ac55edc5fce18eb33e4b673cca8d8a807126b0d1576de0a29616cea00d1fdddea018e1ffb2541e40004b849e38038a9d441627bcbd04079fc44b1b061b", + "public_key": + "42fff67ea860d13462a049e591d403f1d07601993b0df9af24f2cc0360e3a97a", + "path": "/soft", + "address": "12WrCSXw4EhhjUyLTzVVkmCzhcGRnpv4WkoD9vwk3AGunYsB" + } + ] + }, + { + "seed": "f0cc0068044b027014fe0b863132537c887e22538be39815db582a509e6c7246", + "private_key": + "85dbd3100967d2eaa319f258587474088f9d37b4c3b2a249cfa064eb5877bf0ec0dcd0d7c5535868b8aa966fe5d3d026b03baf626d60bf14fc89b3a0152666ad", + "public_key": + "940665960c4ed2693d314e75db0012d59186397a7156defd38016e937585592d", + "path": "", + "address": "24DgaBKSxRHED2oRNmtJpZjqXGrv5Xto2Fpafuh2CabMBFMn", + "coin": "ACALA", + "child": [ + { + "private_key": + "598c586435a3343950723490c2d03f3011863480c7da11ff0841e02b4c49c60bd34c14d34e5c4acad84267c7b9bfe180a9a573110d8ae083fca0df334bb13188", + "public_key": + "6ccc53241b3cd7a8078bab6d9d05e7c61937dcd1a7e676aea9e08a35d63e2070", + "path": "//0", + "address": "23LFTJfWBr8WZyhsoBVEmLNW3zmTX8dQXhPpYupZMEpxoAEf" + }, + { + "private_key": + "7777ede7b6043347d99a470aaf6bcc6ed45d45256e458f7506a70300d033e80b4f69766fee70b4d30d9d757c9438dd13648fc567cb7c6b38a00a495db95f4b04", + "public_key": + "68194f981240e3e8799df53d1e01e067c6346b6dc9e6a9ed145ecbf61b9afa70", + "path": "/1", + "address": "23E65rnZxavvJm8nxSnLfeZYTute2oe3hQmJQr5eK1Gtk5cE" + }, + { + "private_key": + "7c35856a6cd31bdd6ff02efb602b195a7730cb7f097efacdbcbab5d47df33b0ad57ab5be76ab65bf9481d96c18a7bb2342adff9d3066ab2108bb9b6dd183c88a", + "public_key": + "06ba4f780190400a9aa4ad66f84cf75ebf3fef5aba2f4a97c329d71a0f57022d", + "path": "//hard", + "address": "212RDe3bRCRyqBGUc3jewmDnti7qAGD8ZvhefKRsk6UqFB7X" + }, + { + "private_key": + "16da3f18e4874441536115df9b248da836e201c8ffefc0abe9fa5d19dba84b088810b35518f1d8459e30921652205cdb91685cca291972930473e1ed1fcad978", + "public_key": + "9eb89583665cb41537bddf597586fcfe0f82cfe05e0d6ed6a9b3d20e8497c740", + "path": "//1", + "address": "24Thz3dJSw1sPqd4Jkd1jxjS6QpRaKo1WWWZgDbna1fNDfc1" + }, + { + "private_key": + "96c703aa4896623b5b933a649c033d8aaa3691ae6e91073311b71ff6d0361c06ee3b6544ef41cf5021dfd5eed5cdf6f28b27075c5652632dfcb1d117e05e6fb5", + "public_key": + "e4f211b27b62eb4d59612dfa68145bcb1e78c70f2c841c1a56fba32bfe59862f", + "path": "/0", + "address": "263nQuLFksBuB7bZGkjWEsNouS5jY2upzU2vBgd9WLEfz2A9" + }, + { + "private_key": + "485a373ed020a7ffa8f56354049aa925a5787c16d3912e6e2578e6ac10a4de089fd1bb1fbc124b7122615a2d9c70ca4efc68163698fadb044da99f350d661ec3", + "public_key": + "1e5d221bb6e3a8c670d4f9ff5e12f780a2ab0d9bd0df6dc40e1432bf271adf1b", + "path": "//12", + "address": "21ZQgtYHeV6rW9ut8Fd7kC4dfuro3kVEbpnpdDPSMgJsEME9" + }, + { + "private_key": + "0434d6be546f57280468f26e46a6270d03974104df010c5e3f1d7c375b43160e99288fb51db5fde3aeb3dfdc83ef275e7e571ca5953c60f860e12b81bc512e0f", + "public_key": + "40c0ffc760e69726028a0617771a39af5cee410fce3465dde0af44f1ca1df258", + "path": "/soft", + "address": "22LVyy4qZU5NgyjAUmMKcNjwacbeAKQ4JHyCHTRRHyGpcNCL" + } + ] + }, + { + "seed": "79f1e1e6736dac108d3005cf8886aa1094026877d73f76575e672edcdcf78632", + "private_key": + "4a2146a29a9be1f92c6cc6a479cdc859ee6c543a465a6c5e69eae90bef7d6109e178aa595e94a306d4a3f9c55e02d92d7c97677a8e29c831e87fe7d93fadb874", + "public_key": + "dc019d3435151dd7a7ab9147529990ba3edbfd79c3d6c20a7a4b0c85e42fe12b", + "path": "", + "address": "15yU1pVFwAMk4KMQm6hKXeuMqMxoNuTpDcfnz1L2saQsUGR9", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "88e1885fcbda6ff6c627d5c26bebcd44eaf8c20b6f841a8126e42696e8a5b70d9ffdde85993b70c9385602e09db0f6ccc14d8647cf5a01c04cbd3ff2bd59762b", + "public_key": + "5a9cc28bea2e4c9a917ff6727f8950bcdccfbea1f50a069015ea27a094105428", + "path": "//0", + "address": "133ossQtxTHMxNqunCuyTJN9Hswsu1pan7DnfVPgZ8SvTSqq" + }, + { + "private_key": + "f50853e29d103bd71951ad418abd377fc41b28babe17cdccf2e3c0b373d8be0be25ad014ed92adc9b74c4fcf784c1c4945f4fd618f4c5092fb18e08f86d31f98", + "public_key": + "5c413e8da825816b7f40bad766783a442e36860d9b3fd838e5e9d5ab1d6c882e", + "path": "/1", + "address": "135xneWex2HjjKnraUFpY1JdEcyFpTRYmciM7c9fiho6Pra8" + }, + { + "private_key": + "b2f4a088bc490b7a1c79a7e6df6020d8c53514eb5ef0fe6f27205f714241f20e64c6e4149c36e73f72b63aa78b351387cc2f50474e248c38d8011468edbb2e2e", + "public_key": + "f65b66dec965e625c0405a436eca3cadd2426dcbe214eba0baa246d2c314d709", + "path": "//hard", + "address": "16a1w35wmZWg8jTRWDjcZcfoAW4fZwwbE1xY1JatfCkPkUCX" + }, + { + "private_key": + "81c604d96db307f14c916a2d41ca78992dbc7df1456816f5187f7234a063520f7433118974504ef727cb8ac7752f507d2edb8a8bf8f018af42325e2c9c16fdc0", + "public_key": + "167924bd1a5c9f4434089b5bdff83569eafd606a406f0d4c10d9605378e87827", + "path": "//1", + "address": "1WU3Mb8xW14g1ZMfi4Mn9pCWMuoKfzitmCgb6Zo3npjgPWj" + }, + { + "private_key": + "1c841ac6259483a1c9ddd778ced4294d29c7581e7714b3af53d35c42eaf60902d374dab6cf5570398adf156d44e3fb4f6eb8a8e2053bc619a59090485ef9c4de", + "public_key": + "e88e3766ceeb3fcd97131e28112f0602ec68326d0cb3e8e7d503015d037f474a", + "path": "/0", + "address": "16FvMfmFPtwEiYoCPScmnZ8UAHqNtqMLjxUibLfcabPZBUoM" + }, + { + "private_key": + "6dc1d9af0e91f794919da4dc8f35ca3a90abeca1859b9973df38a1a1b61cb20f58659fa2a89b3cf7735c0414d5492f48d67ad2d5c2301ba8b3e162872e1eb032", + "public_key": + "aabcb31e2c3060a09930b0422d96ee18cc96fd5b374109e3149df5280578630b", + "path": "//12", + "address": "14rsCN42JEDBxM6nGeMxpUnP2evntZjw1UgvndpWGjMn9Ne4" + }, + { + "private_key": + "b9bbc0d314a6b994346062ec94fb143a27cd3b23f0182119de18897333adfb06eb839191aa5b1ab6e7f25f4cf2fc95c0b82fabfa87156c814d13a648bb89a0bf", + "public_key": + "3a1c734fc1becc311553ecf0ca9c91d11a18dc3d641feedd7ed7f2baf263802f", + "path": "/soft", + "address": "12KCEGssM5LUzi9s5cgzp8srcAqnP3aGgNCuRfkSS5wqdhqY" + } + ] + }, + { + "seed": "f736cf3026ec674d4249b2d031d89be4174613545a6696d651b7757072a62db3", + "private_key": + "99357be020a1e082e258dd9051a207c52c0f9936d7327705303f1118b4b0640b4091d12651c45f9c7e0330de1faf287f0e92e3e9c66fbface0ca7e604a6e06bd", + "public_key": + "64f866a3681bc7e1d133bf0296844cde203a53df53722b1cce32037e77816024", + "path": "", + "address": "239zAW36hRxUgVPC6pzCmaC3uRFP4uUGFAwBKVJeXAVMCiXz", + "coin": "ACALA", + "child": [ + { + "private_key": + "002531588ab3dee1c450e7acbc1ed8705d91a8309e1c98a67599f7b0ead8110c5e74de6cae661e8ebfdc59b424aaf7f1359899b7149907a5fb46ea52ccb08afe", + "public_key": + "d007026f0cca10048e8525b5e678f34e67f9bf9234eaa26022f0ac86e059c374", + "path": "//0", + "address": "25aMdNdo6gWriAZpW7gAy9REGxSCWfBR7PW2a2wMVLnFxrte" + }, + { + "private_key": + "c92e4fc9a8de54c57aebd9a4afe87a14add1515398a79d478ec5db206592ef0694dcf1245af3992a631a74519d6a7dbda86f9bf225603f1da7a4c59119f4c82d", + "public_key": + "cafcf2e23694927f670dffad8bac14b0d070feb65989851fcf2860daa3834055", + "path": "/1", + "address": "25TkQ9M1ooTuj5WZsJfR8sSXrdBAiNcgvGgRSoKSmgwwHhmM" + }, + { + "private_key": + "99791c2fef11cc76dbdd7740f9856af88529392f2bd38078f62b3c6d7c5cb70f8bc08636c6fd796f2ae7f427dd6c85258faff4bd54d94faa57e3cdb512be9b2a", + "public_key": + "dc39eaf27de1121573ddb17cb2cbdb907bde2a22937832dbf3ab56bd9c3dee42", + "path": "//hard", + "address": "25rMKq7j5jzpeMB3pTdQqthkyR8uqd6qQQXyAnjq4jY6cFYs" + }, + { + "private_key": + "4cbbbfa181f4295fc192f2bb24b489b0f8d70184bfbe2bd4ba11e04ec16fc90c625014c238da436b8e52fd5e0c8337f00e60062d6a85a7bd89c017a37f881e1f", + "public_key": + "fa64cfd1d455cc880c04d1034687cc77e82898627eea301a9ba2815c4f8f503d", + "path": "//1", + "address": "26XuWCNBadeAo7BJn6WB9r25kBA3PdsyrRoctP98sXLm7cSz" + }, + { + "private_key": + "efa8efa852de56d5924554954686845bce382470be74636d6135df2d08cc0e09700dc7ff87aee795d4b5aed506c970dcf660b5ef5a4a94f31439aad2a8c76c08", + "public_key": + "803692a0f324b3b4e8c7ee906f7486abe1ebaac563e90af11d9d7b76d0ab1a7f", + "path": "/0", + "address": "23mhvgfcisPBbmVD28xnNJQ6eHrfk5mQxhDoWdwKkSgPgwx3" + }, + { + "private_key": + "6ec5d0348cad1343c8df91e5ab72988b222d736de0ab158e388400480902310b8147a52e3b6291d1f7ac0c6f159b81d89e32fc55fb034edc9070f49e137463f5", + "public_key": + "24ad1ab39f3e350fb26399c46495c18c994018f7d241ec69de3f4620f3b8a06b", + "path": "//12", + "address": "21hgjRUJmXYhvNywY3TTRE6VQB2ApdPu628sV6mkojbdezQs" + }, + { + "private_key": + "cba14895749c098f27acbc36e36db1ee4ceac721356a713df1a30328d95e2c0dcd56960dec198427259b413d111c39bef33a02f7ab5e92b080268fd59342ee53", + "public_key": + "fcc4b3b8818ab4009a428f50183669a101727e9c196efcc21c78def29da50c78", + "path": "/soft", + "address": "26b25uFiHi52ks3TNZA9xFMphbJAnKMT4k5d4hAHnriJcMzN" + } + ] + }, + { + "seed": "d0dfdbdd53c20595c0afab97df163bebd9ad3bdb3dfb36e64a5bb758e537d01f", + "private_key": + "5dadd6bb75f7916da852ad8623527eee840e2930983c59cb30ffcab4911bd809401c61291250d25aa071602d03db17d3ec6d16d1dd3fde806d7633c0e615a172", + "public_key": + "0c01b0b91f507de56ea0033db32695e79576d43b5b22c15de9397bedd4088c00", + "path": "", + "address": "1Gk5TBR2o8rJt2rAN4QScyYnta51XKmndj5HvoaWU99f8eE", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "e4d099ea9d881c3e34494cbd7cb2db6ed62a7573357d180f58e4094021c26c0d285fbbd27c5e4d51bae524011b277dc4005273cc3dfd946ecf935abb508824fb", + "public_key": + "002484f03cabfc3e002b6972177a4cc3c3771b787aa97b4356a897d6bd107322", + "path": "//0", + "address": "11BrDLdHA2esyfx1c3zaJqYvLwFCrf9n1PrwFnnMxqhppzc" + }, + { + "private_key": + "5c1b00ce63272249c042e238683504c7f7f652ca0df0af681dc18ba356a4b009c2ccf7df9e7db3c5f9764a00d9580403dfc7a74b6b5c36304476a7afc76e8648", + "public_key": + "9c0d969765afd309ca9638da50be7b5d5365b0ac67d1e20cab6e4dc0ea8b213f", + "path": "/1", + "address": "14XcWP6E1gDEVb989vJnzctNX324R16N6bUgzmeW48VDV43P" + }, + { + "private_key": + "efd8f6b5cf283e1667b86749880b9c7c56e1b73cd42f1072cb7666b97400740fd0b1d2a906c65c729f9096649d7e5a23dc719cde48e03ec899aef8c499796f31", + "public_key": + "a0007ad3e18e71622fda692843587ab3e8b2b8c6995c33a9c936a3973c067011", + "path": "//hard", + "address": "14cnodw1HCJnbBDiqYaQRYEaszGvQrsnxgtX7KE6SNEV1vAc" + }, + { + "private_key": + "fd950c32bae27b76203a716715769903d62bc432868feda9a504f6d45b375c0e4ad1485d025fcf9ea42de1c64dfea305380db9f9d8ca6b801f7faf29fb257334", + "public_key": + "bc29c380439615072b469c9b2abc985513f9a5ad827c6fed83c9935a4c0d4463", + "path": "//1", + "address": "15FiQhxfYbQsaYakv7KBu328NXwf6eWcJftTgdbZCyj8Ukty" + }, + { + "private_key": + "9aa5ee9e3bb97bb9af4bcd3945d7dda2fca72b0fc1780d8fe5ea48d5b0e5cb08f59bc1995322dcdf5fbada8677bcb584d0331a038711d6184f7e1942c7c51225", + "public_key": + "10ef050419d879d1eeacc4c855355204e90b97e8a04a47b67047f771e8c7dc19", + "path": "/0", + "address": "1PCmedLJwsTDFmWfuo6EnaFMyu2fRQgSRsBLy2YdJRycmd2" + }, + { + "private_key": + "d4553a57e348254181ea43939a0c3b71053ba37a747cf8223aa37169c6c48b0933180a5f2dbe3a7f0a6dd3486bd6bc070f243e7183be5ce7d7fbf0198639fb70", + "public_key": + "08ae49fe47fff5a858da40fbd642554535c53a61a4ca73cc3d68753a8a5abe07", + "path": "//12", + "address": "1CPA9dBatnEtJTmqWSF6xgmvh7mewrZPXK5wfNf2XXCK1mz" + }, + { + "private_key": + "b8b67a64b65c5aeb318b9046f3d721d979fd5217e7f90427c49259f4a9414d0818278a07d99446b321b608716ac9fc02793183e3b6f2386d39589f0e6efc6fe9", + "public_key": + "523217ff5bca0149c38ed7efcf6312bd2a5ede35e350a5fc1988fe9ac8f14772", + "path": "/soft", + "address": "12rmoqQwztzQMEzjqHgLqUpUifKjMWenFFkG7vmvBqqRxLKJ" + } + ] + }, + { + "seed": "d480eaffef7a70c78e25254466a69ac101f4000afb55073b23c7981d0e1ae57d", + "private_key": + "cb2b49de7d121ef71a9bc69c6b6de7352864b32ee0b4917c091a526f936fa40b7bb3910ef58f825c495c337bdcaf3138ed3e092d4f742c33eb683e2142789fcb", + "public_key": + "ac2758fefdc32a041d1e3ecdbf74cbb358f15630c9bafaa2b8a9c98da6b8e50d", + "path": "", + "address": "5TXkJJ42jwt6Guj91KuKQv1PwAPgFEb36rQDqAV7YQXe8SPD", + "coin": "CHAINX", + "child": [ + { + "private_key": + "fcf40c366d9c63b88d496aff9a0c302bdeda0c892131f213613f95e163501f0df3d411da1f42ff425348e3a7f3538e32c77bb41f5899d26a9285c97ba96a123f", + "public_key": + "0edd671dfa37e6fbcc0d8f0df78bb00e3b14a858041660af6c1f42a8b3ddb632", + "path": "//0", + "address": "5PyWpDXUrFeET6ETZ1YfQJeQvcLh382qfF6i2dcnpJiPAYPz" + }, + { + "private_key": + "9933d1d2a08fcf183f6f0dc5b5c27b16b0e01d9f1849f81f23d7f62ec61ddd0480e2563a18597d5f467c04b27a4d1e55268d8755bde66a4c94ac0c386b406361", + "public_key": + "0ea27d24e149953cd70b9298ff3c6d0d706ee7280c0a95d3b5459db143cd2651", + "path": "/1", + "address": "5PyDK9pgrqjHXxwhafFnygDaeqmfXwSFJW497PEfKS3Hmbbw" + }, + { + "private_key": + "70e8a7bddecb17f77de0a6a8adc5f827c294186fe6750a7aff7d074d9e388d0a9506526df7bdc07e993aea7790507d7ee1dd87fbf269c850d4ee790e83995316", + "public_key": + "2e0bf5d35b3027bbdbf841a24ce55019cca3a9fc9a76b569fc23b0d37d05ad4e", + "path": "//hard", + "address": "5QgQ8Un8W1RuR4Vr6Xv3gNV9zi9nbDMmBoHwhCXweQSKUXVk" + }, + { + "private_key": + "16f0515be497b2cce1edc8271d5eb9b9412b8d208f22eeafcec200baa9a8120bca4aea5c3d6b51f4738e33be1a70a2b9fce9ca1e5591f844df48fc350b9ff08f", + "public_key": + "9accbe4a6cddfeaabd4cbf75d53e65cc8d90e7a6b6c7d9369c94a2f1cec2a54e", + "path": "//1", + "address": "5T8za1DE8r985MzMjXMNupYKH69DAEdLpMyrArjjpZbsGsqS" + }, + { + "private_key": + "953415d641a3ba5a27512c0858f04baabc08f83aa4451f62bb2dc709004fb5014096335d8cf1abe8c4a2b00ae6de246f307a4f8b9b77b73f1fb9b51a28268b0f", + "public_key": + "a8f562f050347ad470359aae5d43868e22d0a45c5cfa46efcc3af6e76a804a13", + "path": "/0", + "address": "5TTZK9mxGgTi7NF5uKoCBREkDHYC6j7Hd5dBRuyeBKrhny8T" + }, + { + "private_key": + "069c0d4c173df10c135fefd6a45a9266a0940fd7dbfa9d8fb999a82184d9e1094e773185576eba9d826d3df8dbc4f92190f86ac075c985ebc48c9600f6f2f71c", + "public_key": + "f4a7ca89dd815696175822f20a307bf68652a01b1444f3aba3159dfb6364b903", + "path": "//12", + "address": "5VAouHskprb1XaLb9eB6cCeuEtvkYq5XUqG3W8nmo6jJUMxd" + }, + { + "private_key": + "175d5801cb64c0f77332e7814f13f05c10be30ed7a03aed225f27662f880e401b77ace2881a1bffe9f1151d4626ea1b8f0ae34d105f3aca03660fdcbebd20385", + "public_key": + "b6f968baeb16bb126fb5d736ede3610f2cba7a10e77ffa303b515dcb93835d0b", + "path": "/soft", + "address": "5TmwBLpzATuPRJdWomJFbq7AtxLcr5wZ9RXZ9uZsmJzCX59p" + } + ] + }, + { + "seed": "96b7519504a10cebb66286e569948f113e2e74d2bd83e2222c41dc5daa134e65", + "private_key": + "e3bd452dadd84bf69fb5ca79a47dea0b3b6a56f13a7dbb7682267f944634560876026496fcf4d3d67136b2588b3d817b40cc6a01f01695160ce4de0269624833", + "public_key": + "369814c34b6139b205cec2b7386a250967f3fc1d7f22f07213cdb43a4e4a600e", + "path": "", + "address": "227BMC9ncUcNbkqqXYFtSftK5dbjcsK2jPkWWVqJJUTQiQx7", + "coin": "ACALA", + "child": [ + { + "private_key": + "84e832ac92678870e5161be66900872775d34ff4e41b1c0026f2835e146e370da0188fd25b5fc5a73f36b153f6a0a0329ecf5a8ada76250e526a2d450365af74", + "public_key": + "f02e3c416da4d198dba482e4e3e5fb8385e86b361ffb18ff32cd0650c722fb0e", + "path": "//0", + "address": "26JWp6PiwSMb4L8f9hrTWGiVjBUAxFuJFGv4E2CdSXV81XNd" + }, + { + "private_key": + "8322582b135920d70e415434af770e4e8ef5d49b8550a7b9060869c893865a04c807018b53c292b75cfca190683d3b904592468ad799473da83114dc7845f92e", + "public_key": + "58c77567b5508caaa4425f9f30e832ee11c6a91924ea117d7a71208e6f9b7273", + "path": "/1", + "address": "22t13v9gztNEa75qGooNNGqsuhMebzoyaGGuKzzG23apoLcN" + }, + { + "private_key": + "a97115b256cea9fac18204d75ec089c8287c976a25c418f24343ad9f79967209938f03a14020aa74c03097f785a7f0b4b1c2af4b27118e1e83829dd92877afdc", + "public_key": + "e6eedf63b1acc9583b4297c8756f6dcdd2fe5f60e7df8d7a079c861c1b5b596d", + "path": "//hard", + "address": "266PZPAqcagYXj9iNGwE8Cfdjftjsw7QHLWjLbdgviWc5Kgg" + }, + { + "private_key": + "6ee1baa27b72af0e65858ff07723f338f21b8782fcfceda7051898da12209a0cd77b888b1d09de740b88c2aa893d740d05fd4621dd9a80d27009bed90ecadd3d", + "public_key": + "b4f4cb55f8c7b4971ef56c13fcd62ebd0df949c652b8907c78012472350f8b6f", + "path": "//1", + "address": "24xrvYakNtpbSQJa21nq7kGRLt7D6aCkqAGM7VmstccNzWMC" + }, + { + "private_key": + "4c35fb26c339e1e3bd1dd5eb194f5e1b50b99278c42f8b20af992ff0a90cde07802ffcb0d1a7db863a500517bf3fd60c50ae6ca72bb8ecc5229cc4bee1050621", + "public_key": + "066285b0a0de5e105bf35633090c88b130b448df7608278e2c656f9b2432a500", + "path": "/0", + "address": "211y95q57gDPR8Z32hFa3Ydn8p5K1c8n5hVgRVVV2k6ot2jz" + }, + { + "private_key": + "ca58f2231de780d876c532ddd4db3edb46f8061c1bcadbd4e2bd8535bc4e790de8c2fca3febe130d691b632fa1b9d8fad1634508fca57a8b44d349a58eb102bd", + "public_key": + "feac7c4d0b38ab53ed3c6b48ed20426afec8d5d4cda948663cda95d379a9385f", + "path": "//12", + "address": "26dWzDV7dW3smYwPqhbzJte8N1dQ392a19e2Wevov9y8sD8E" + }, + { + "private_key": + "38223a09643797235ff4dc31251c507147ef0a95e1287d05fcfc500a39dd98020067e4fa56f405243eb4bbf8cc59b4c605876ee73516bd899dacd913e8cfae5b", + "public_key": + "6cb93eb0107cfe8c5b456371064ab8542f387e246bdbe9cb26379556451c0b67", + "path": "/soft", + "address": "23L9nZogPwnYWzbUjE8iM2kC9b5z5dLYP9JS49ytYWcrhs7e" + } + ] + }, + { + "seed": "2d128139f45c90ef3092493025d4c655ce7ba89d3f137936419d5a7be520530c", + "private_key": + "124611624a29e9c3bc0c58db8c69fb8238c74161afcc30447fb48e52b792c2085de6f3273aa468d0bd3d6fdf03240c208d7cb2e4ab5760ac945ce94854a65155", + "public_key": + "f209bf377bdd57f71ae485e9ef05d6bbf72bcfe812eda0e3555970f325da0f4d", + "path": "", + "address": "36DYetUR8oQKsNzfmsSeVufR2vGfzBS7ae2GayBdKS44FgDY", + "coin": "STAFI", + "child": [ + { + "private_key": + "1bfecb15145f27517489705400d33de25824e94e00ca6af2dd9c548e4e5a210ce1c4fd62706e0f70f6e1f6b3a8a3065d46bb3786a6715a16bac4f15c3848644b", + "public_key": + "3a4d18b43312a67c413fc5bb5b0b9d565abfb140b193c02da7c795a1b462b44e", + "path": "//0", + "address": "324drGXpnPor1x3tuogS5xDM6FMRfyNjsbrjhEav8qxRvRRr" + }, + { + "private_key": + "b8286722ba93969d955ead75fd03aa306d77fad9adcc5ca28ffa97aa366afe06403caee6759c6416239541ba8abf85b23d0e8d1a926e2f403fdc8603d9152b83", + "public_key": + "182729b5b2926b3b2efeedae5ae28840fe9591271b4d26a96547d09cdc0b9844", + "path": "/1", + "address": "31HrxG24Sp1hmQ1HeLRejkaZmh69iCvAY8eDRzCaZLuHhLDo" + }, + { + "private_key": + "69584202c5939d4a73acce1a8853df990ddf3fa93439bcbf1f8c1e061438980c7b5349935a6db3157da9228ed5795d181fff65066931c61277763b1419492791", + "public_key": + "86f7b538e7ecd3416ea27db4bfed7c94322d0a7338c85764a42a92b03d5f9c2b", + "path": "//hard", + "address": "33oAAukiRCAf1vmZHjGzV3CABKGvNUZ7e6Fp5UTr9SbbDBJ6" + }, + { + "private_key": + "334dfab02f72c05492d600aff66b6466c931dc150ed2cc36101f48eb3d8f1a092fd0bf3b68fe5788d404780f14c666f2375d6674fe9ceba79f988b342ca8a508", + "public_key": + "0e73770788911cdedacd64fdcaa439a5c20a65e0c1167bedb25c984607e45571", + "path": "//1", + "address": "3159995C5iJF6L6mApnMhyVxL5HDLj5Xt7BHYfAbdupUHxzr" + }, + { + "private_key": + "09d2a1012e911baf562671571988ff3a5c265d9411b9fe400b83bdf306eb6c0e5afc13e722215a58c0781a1f1494b1267916c228bab5405b9ac0423e1d200468", + "public_key": + "46f59bfc6e37a56f22f49eaaac933fee31f31e85157352e3ee673f2cac32c47c", + "path": "/0", + "address": "32MEV1DwoQ74ymLLC4zgU1pVA56QgED1eM5zE8JRhGaVhdN4" + }, + { + "private_key": + "d46e1b0b10e12409394b3fb2c1bcd32d28dd5fb397a68e1f37d352c1410e4c0e4c44a060a2cdab5be577c8e12b7dbffdf61e46edcfcd246b9d996053fc395595", + "public_key": + "804cf58ebe1ff569d7de7392d40042f7fe1d1596d9b99d4a2ece762d9310b44c", + "path": "//12", + "address": "33eRAKE4YWMGZkSAcbCb1ciZWKf6MSPcUgrkm759JEPsh8Sk" + }, + { + "private_key": + "72a48bbf1cf656837d08fc0e215c25facebe3c4c79ba80ef8b40beaf97781408c6f266f905418a7d7c3cab168d3106e05e6eb40a7749cb54713a5d1753ae7bee", + "public_key": + "8ce42fd5b6aa8de3212917e2e97ee3978820918bbd9821fac45dc5acfcf53a1d", + "path": "/soft", + "address": "33vvfEZ1HmhQfdKoo2RDKC7CSHrFNUYXVCgLjUdVqNWr92qw" + } + ] + }, + { + "seed": "e219cbd7a99defce16e6a81c409691f5fe335eb9e192d68089a309e24d0efdc2", + "private_key": + "db2420a4554ed2fbe90a9bb7cd2266d523a67986d6568509449ace65bc8d7f08b6ab676487a18924b125a34744d245fd8159ec6eec84665afc7c17e7d4c88833", + "public_key": + "aad77dd7b3e54febab41a52a8b39fc42a2e3dc1ac492996d3e3997dc35fd385f", + "path": "", + "address": "34cCKpUALPNxG9sQK9hdK1n5LQLNaBe4Lcb4VFh94ZTR4D37", + "coin": "STAFI", + "child": [ + { + "private_key": + "c4b20b19667bacb49116497911dd657ccd01b713fab25a39eca35b736dfebf0bb18fd2eaa24d0d84a05456e1a079ed01a6bfcc4a1f8323cd4b812099c4a3f357", + "public_key": + "e6dfb33daf584281a3d65e34614c007157ad4ace2b55e158c2836b7f1be5715f", + "path": "//0", + "address": "35xudtVksWxrYM8EEhYhNsxhmN52xgbicDtZ2JnxYvSXC2et" + }, + { + "private_key": + "ffcab71d084582aa7df53caf3e4bb096a7bdb8b4ec9a4635aeecb0fc9096c50cd7754849c9d931a81e1890d13ec3789e136afafa2438787a5c45d32f64ccfb29", + "public_key": + "a42584c4abe49b107c3de0aac59f7b623c11eed22e2ce96bf71f0223f9f5a468", + "path": "/1", + "address": "34TRAkcvtAupA1CypCYFHgqYc7zeYNfLPrNBK22LnzRzAXDs" + }, + { + "private_key": + "2f83c49c26449438fec8ee454bf233ccbe24d608c3ef629f5de6805a3e18620fc264f8af2937f8c2fc6b858a899da75700a4fd7edc45a38993d231740e7c3469", + "public_key": + "debf295db2e0a05b5019cb4fda3d9702244829b07b7c9c8ae569d4b36b427a30", + "path": "//hard", + "address": "35nFb3UuPup2zJTKNyqAMUTy9XmxBBaBbePscWFEg3zN8fsf" + }, + { + "private_key": + "4acbe2034df802bafa5ca55754e97ae1abe492800c69fb92240141549109180c69138ea56a37d1b42584be7b0f297470008eab1853ee5934f0c236091576805e", + "public_key": + "f8fc4f55907bb07ffe3fbd1af7f83a6104f21c9834207fe909c947af09c95705", + "path": "//1", + "address": "36NezpChkRjVMWTUQwkZmmMh7LmAQh6N32oQgzuzMkkW6kfP" + }, + { + "private_key": + "cc92b79dee61487b8cee20895349a51abda20c0b7fc4c8ba6c75b2ed167320057ad605966444b97070a101b12d3a298d9c2c6a0160a3a87f612005381ba47604", + "public_key": + "24da0313aaa48e5a490b63295f6f6e16ef0de04fc36c2b8194447d71438c475c", + "path": "/0", + "address": "31aWf5vB5qpUThUwJp9YcjWUMSuPXwNDA2YX5CKinTdBRwVr" + }, + { + "private_key": + "10a74c1ffe5d600abc5cd1ee83709356388ea8739ece824b16ce320aeddd640f4be31057976cd0b5cf1fd6d2ce2ace244b26a89fe9a24892f65698fe486532e0", + "public_key": + "82154b2eae71cc27ee1eda751307c763a1b2660965cd9a7c631e2d2891a37079", + "path": "//12", + "address": "33gkimuAyG7xUtr3PkRWDJgZf52dvgSYp2i5VWiKqnh7yWnM" + }, + { + "private_key": + "c0f6614f086661beac94319d2871d335cb53e84d1487734effcbe4e0ee9c6301c0366dc1b072c79df9a553ca28fe5c054f5f164d230fbf980e24e03e641f7995", + "public_key": + "7052b6b4c1e6d1a405468344c22bc4355106f8d42d656903167376e8e355a268", + "path": "/soft", + "address": "33HU72S8hBTKdokyXViUMKzWyAqVtKLgLcSKCVfRSeTVgH74" + } + ] + }, + { + "seed": "5a0a16fd174da026b9c4b4ad999065d17b9ecd14a1ca549134810d4371395383", + "private_key": + "a3dc0d3ba146b466e366c7c89490cd2dca8be18ffe5dfb65ff13e9fd459f68083624b68bcf6fa223288f4a899f49be75691bef7df669cc20f8e74ec90d994e1f", + "public_key": + "166d2b5ea1efeaebadd9aa5748db9bf6e24687bf61c547bebde1f98aeaf1c877", + "path": "", + "address": "21P14y62Tr4g5ckZAZdafgcBahBp9snSELGDHkbEasm1RL3f", + "coin": "ACALA", + "child": [ + { + "private_key": + "f853d80239a716b73ba3a741f638ac434259326411d946265540ee334fedd70d77feef95a259be985c268e3793bc703ada23a05b4499a9233bc2343ce0145863", + "public_key": + "80bc3dcfda2b9f060a6db18007ac4ca9dd3b900da20dc516a38fb938b311f63e", + "path": "//0", + "address": "23nPdk27AmFk9ev9Sf31JCv38RjcMeURBag4A8ACCE8g2wwo" + }, + { + "private_key": + "784c56691cd661d8f4456a1b4c01e422046ab1fa876416d1f2e6d7017dddbd02806b4f1a5af583675d142b9ed6f0909fca8d62a0eb342bddde3963c67b0a0970", + "public_key": + "823b4659b360b220a4afb84fbf6446e1abcc78bdbdd5d2757281f6ce3f030e21", + "path": "/1", + "address": "23pMRFfET9Mma1FdwRabTq3MpJejGSASxhLoFJjMbpp7n9BP" + }, + { + "private_key": + "3ba70b4656940cbcba8f77376f27c854308e1d4d0379786b821d661259bed20eb5b5fbf80a5257edf537f044482c283930b85a74dbf088f6d94622d87db0397d", + "public_key": + "28a24bc662091ae6870d2179c7f83e2698c20fba8c29dcf1ef126821ead2d552", + "path": "//hard", + "address": "21nsiJtKcBE7PfMzkET78JrwrN1yznHg3wXYKNgruDd61HrH" + }, + { + "private_key": + "a844b995d491aefd66f16ab8d7d48ed229df8e37659105f865e3811c523a9b0e56619c0946db209b25661b82687835df201a68a996ff78563f725649a6d31590", + "public_key": + "6e1a7f375712b44f3bb3f12b9b8421417b42b0531d6a8b5e183feb3313455111", + "path": "//1", + "address": "23MxixWF28GW2S7v4CRGnMpw6RnPWis2gafzczW31moBKMfw" + }, + { + "private_key": + "7fc47e5aae6149f882021a06b8ee09cf5fa252197e45edad8e976d83c223b20beca6ca0e6ca71d47974c884f21dab6ccc3e4df32c3cb5a7852ff0e43d9752599", + "public_key": + "ba5a61ac58714b773032cedea6bd0fe669b6bfaa3d011ec70d04c4bd70e24679", + "path": "/0", + "address": "255wLjr8QE8rE2FNSc5tgFymBR49cXH9S1oP1a9EwoSqWSEQ" + }, + { + "private_key": + "aa81ff722af9c7cdf15048b4d4d8d7b02b1e0ee491cf515fd80d4e49f09f8b0e28c16b810238b3ebdac0978077758a92c1e36798f6e33cc518b1c11972da8054", + "public_key": + "a811aed5d4065332b9a930c7d0b55278bad730cef364637c089bef2b98213f16", + "path": "//12", + "address": "24fxtBRJbo4QWvFPXv3v8HfwLZ9sTdA249GPc8aCg9K5LKxL" + }, + { + "private_key": + "00707bfb8585928d64d03977ce288e301b24565899ef420d8b31d1347c14a803f15ed41239a7415aaf1ae7ee986a74b03abc7a446f77514213afd08d0d04404c", + "public_key": + "c8a88aa0d4c62251e45cfeb4fa17fe39d581c3707339343cf41ebcfc17a4e45c", + "path": "/soft", + "address": "25QhEHbtwUNjLmFpjeBxJnWgtZaM92XshznTibDokdqSRRNF" + } + ] + }, + { + "seed": "cf2292dccc5cadf6a1f9826806bb3d630d572a95b2a903bc423e8635b474a3a2", + "private_key": + "faf2a76af10f16d800cde7f19190039c0b108f18d49bd9aabc70518b543b2c0c1149d3f3cb023e7b333f7f55e78ae4970fcaa293c69ae4ac9b2db830b866207f", + "public_key": + "e214cbb026f6650de1c7c4f1e2b00b432f2fe9df1d75f2c2edaceb3f6f889e6d", + "path": "", + "address": "HgkWxYm6EwzmtBdMYrH86jfCpseexs4Hjye47iGXjtdjgVs", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "f8ed1b27634823c93c94b9bf7c89642b8c7f3a673f0d796a7e0eb739523c240aed1c02ab57e584733d5a4ab76eacfa97fdde8a8d48eb26a105579ef63c919fa3", + "public_key": + "5892285f6fdc4267044e125d965b2edf88878c4d19d02983a7049631b36beb59", + "path": "//0", + "address": "EaT9dL7ZLLsKaRwFLtYe3eca3rn6msusMJcfUtS7DB1jMwM" + }, + { + "private_key": + "90e67c59f55fed065ce11526051b47d21e3fd26414c95a01d960e5b16866250cf0994a3761b272fad7cde5b143d3289908fd8227e935327537b495ccc5947098", + "public_key": + "2a84bccb04e4d3baed4a0bc9e0e61f896f6ca5381cddbc58377e60aaf00fbe2d", + "path": "/1", + "address": "DY4xePueG93fxY8QNYsNFCAvP9NZH46DBnfHJHBtBvnHu5n" + }, + { + "private_key": + "3a9285822ac0ffdfb8dbed956984b38c14b397ce36a3fb0a866d57f14bfecb0b53b3ada706d36f05a0ae06f9b355d80a9c5dde362792462734dd77882e66b675", + "public_key": + "8653604908d129908f311e76c4e658126c40e1a6194883e5bb5282b16c610e62", + "path": "//hard", + "address": "FcShgWHTy7LS7ckk58eSQzsCNtwp875o1aZtDEooUjhSvjM" + }, + { + "private_key": + "7159d482e71979d82a56e641c173be4edee29d015a3cc584aa84c6d0eec0b60e80568918acc84046a149eeefbcd1d1aa4e96d9d5489e9d99a5373f8e52bd453e", + "public_key": + "36c06f526c41ffc70ea9a37f5e250928109f83d7ab79c44d1acb10aeb7077257", + "path": "//1", + "address": "Dp7GXzfRCZtk5TYpWxw7vspgtHAzLhyUG6S8zifACrLEb1C" + }, + { + "private_key": + "156d2825e7287da818917beb0e2298795cf458ffbd9d304679f447a0f5e4c30ec0bdc024d55e389b9a3aec977c21415b951c52fe15dfee831032d94196ab72d9", + "public_key": + "6c86563eb27973b1b5c735c9f5cdcaafe919a877570a79c0f8f1248de9a9fb6d", + "path": "/0", + "address": "F2cbWH5J1eYH3exGg8vgjF5b2U1jr5wZNkDZytVaixDae4f" + }, + { + "private_key": + "c9100002c1414c976d35d166a706771830e42119e173096100e05fba8507950ca63612b41c6559f0808a439b96331226874d054f9fcbf357d29f42b10df37c31", + "public_key": + "7c7bb75b48cca625c95e912996e918235a1af16fbc0bc08ee69d7484a77e664a", + "path": "//12", + "address": "FPYCxDv2JH2hcLQJUWzgqsPgtCe7XsZXtheQDxBxgv1PV7T" + }, + { + "private_key": + "6848edc43d289235389a70b58e7dd0b258331c3f3e8752f291864a0c18fb0d08d84d431c96ac36dbfd6608b2b3fe2e028502d545b11d4234d38b022598f203d4", + "public_key": + "2cca9e578b447d74516714133f4e094b1d6ecd114c321836b96cb02b24325a40", + "path": "/soft", + "address": "Db3pDsFn4FJSG9zHe7wxhpp3LGfrUuaW9DnYAjW6N3kY2bh" + } + ] + }, + { + "seed": "3c4300de608d0b08fd3a95c684d30c74b7d5719a447f30d1703613141bd9ed77", + "private_key": + "89442502d684a6c2fca739e2a376b67eba36570e14170dcbcfee4c761ba3b50ab635335eac2d926d818388b6bcf954123d8441a98c1d747f7a3ae83e994cab2f", + "public_key": + "1024d5db5ebc62ff0c16b654e6b108329218925696b72546da2bb904a1904441", + "path": "", + "address": "CwVE5e67qmzeaR7V3QqS1jPWA2dWc4cqBF32vPVHSXya87R", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "059079c582af90ae24622ce02d5600f81049ceda7f10e7cfb727a358e82b470dd1addeeb74ae93349f5d7d1c38618041f9c0e718f0cdf36135569f346e4826d8", + "public_key": + "fcdbca1ee50246ecbb19828101c6dcec250e189ba642d1c1dbb0fabd2ee65b13", + "path": "//0", + "address": "JHrskeXvXsV2AcY5bLpKUzmQfNQizvHDhCMkk7HhNBFoveS" + }, + { + "private_key": + "fb07d9d920cc9494846b94016628e3248ccec85e1368e1f6bb9ff68e03a5ff0d25008951d1f997eefe77757a06f245e9c1c2a0a03521049fb657cfc392611636", + "public_key": + "2c73174b0c2292b92e39e6a06724c36319ed0308ba9524b8bb794870bb5d8829", + "path": "/1", + "address": "DabpA8vJR7tJKssFr7Jxpj56Zvgg887KsXqVoamgToCve6G" + }, + { + "private_key": + "60d64f0a1832cdf5f03e8307217a8d12532ebd1c4493cb0a2de2c6e2aeee020a66516ee3a0ecc7bc30ad6ffb750616b03cdcd937b3124e3745b30182123ba218", + "public_key": + "208274b36b62e3c063322a189e7ab606572481beacdbd112f8b989e34a402a7e", + "path": "//hard", + "address": "DJwoZW8sSVwHEoJzgDXReib3gqkcLmcEfCB15J4GzbAnLXX" + }, + { + "private_key": + "b3f6450fe93d94ac1f9b6a43dedba571ab3cf7f0d2f0b6d8ca8b8d7bef66460e2ffefafce632e576c2a7352c6c5cbdd43a0f740e7390c701186b29a4b14aee52", + "public_key": + "bcf6285d19407f55ad55988e127ef97dbf592f53f68432f688de01ef52b47809", + "path": "//1", + "address": "Gr5eKPA3GgSNG9kxD863ZrB5ZjVkPrsJvNp5BScSsVNyj7r" + }, + { + "private_key": + "48bfd1a6018a3b0bd5300f4e8984a64b5d97a6d492d7a33d7caeaef31fd39f03498e1bf5a2526930393b9d1a856362bac91f9265613ae4393130fb5c021766a0", + "public_key": + "4898bad781ef056e529ad75e7f2ccd2be1fbdc4520728e2121892364f0199069", + "path": "/0", + "address": "EDWLRdxv39hu8GE3E2eEgiL564QoUguCskHTxSPqsw1EVyW" + }, + { + "private_key": + "e1f9e57af4eee72757a8d9c04086391c1974506f221628fd3f175e6635cfe60c5194b6af20f3b430d75f55d6554a2a8f3639f5abcae1088971e97ba1bfc149a7", + "public_key": + "cae1b8708f721cd922ada14c0280c246329e92bffb1e83cc4cf990446e11f75e", + "path": "//12", + "address": "HALF5KcxQTcTGbweN1acba3YSVutkWpAKPbapP3w8N4CiJG" + }, + { + "private_key": + "dcfdbeeefc6645714b4b84872fe8f462edd4fc895fe7e0a5a1d397db108c4e0796ecce342b7c96acfbfd5f1a4e3eaa724fbd5020e76af6b962d009d6cbe8092f", + "public_key": + "e894a993eea105915c96d8e39d627e86a8fa20df5a9ce56be7876ecd5951bb07", + "path": "/soft", + "address": "HqGniSfVS7Na8P7SQuCVAHZBPYvYwCSZ3CkqCPTXoefhiaz" + } + ] + }, + { + "seed": "538c1405843089cf2c90faf14abe40b014ea723796ff574722e3ab0a378e9f6f", + "private_key": + "bd8e0986377fb6016aaa6eeff05d4dc74fbcc882efe98ca923914f6bf6ddee0f9bce2a55fc34d16c5e772d143c23140881e238995da8d42ffc7576cfcb25b081", + "public_key": + "8890be2c5c5b9e7e8676115d889f262ce8ed1206cf930ac7790a2a28a805ff70", + "path": "", + "address": "23xf6VpqthwuRG4dwzXWrjwVXm2s72DEW8yCFXumPEqwzkx6", + "coin": "ACALA", + "child": [ + { + "private_key": + "fea1c1e4c7d86e9c9d84feeb7915823bddc9b70913b9c9cc22e2603546bea50d5c65bb6631e4415a13192bb804c673688611cb53d9ef61fa6ca1614139461e6e", + "public_key": + "0a4039080c7574080066e406fcf5e9e6ee5f43473ca50d539e57409fee03791c", + "path": "//0", + "address": "21739E9uzusksriQ4kYcHDx31V8VrHwZ25S2HcGXJpgBEnCu" + }, + { + "private_key": + "094dd36508e3e8290d3a2eb22cf9a0ac42aef5a9d4f196f4aba8460e041f9f046463d460f4d78f45008b1f608519c4303f9694ab6d65df1c3e337951ad952b82", + "public_key": + "5e587316aee14a61f93575e466a5438cef2fcea629596b9d3ea07c09bcd13b6f", + "path": "/1", + "address": "231JMwTMnxT2fA3Kt8Hc1QTCYpiQcbEGyhSb3vLszC2LXB9S" + }, + { + "private_key": + "969d8639922fdd17c34a93c49d1e1ae4a71a3d01fcd3aac2a39b95f2051b1c0b288dc006873e0a78389f6cc851df37854ec45d3e5a061ca92d38ab57eeefaa67", + "public_key": + "8ef06ea26325425ad53b11b1b829071dac43ae35141c8650b0773814a12d2d43", + "path": "//hard", + "address": "2471orFUTgubAfwLigFLTMVAj4mHZi5PvvgNCHzDjEo2xgtU" + }, + { + "private_key": + "d8ebea9a1e972d7c53900d14aa46f7ea2ae6a247b72b36c0c46b6c941d3e670809a8020346490d156f80bcb9a93e8c6a5b6b0181c463c8d8a6e6b53401f65b47", + "public_key": + "b23e218bc4849267a35a4099f41f2f9faf7fe3fadacd6808ed433465cec01e42", + "path": "//1", + "address": "24uJZmyoVNRNtwEKPtLPNtNtVW5XpVwxfCnTdmNwckkymoEf" + }, + { + "private_key": + "a116f097f0d3015e50fd939af9d7bc1f047388510c8ef615c3978e1e3db4f10dfeb16cf1aadb589661c771798c217d64c5e938c25a507178b72219136139e115", + "public_key": + "ea31783eea88803128ce075a75d12d1a2b549753733091edbf824e10072e2b35", + "path": "/0", + "address": "26AfVA1nwtfo4A42uHqcBg4GaC67yn5SWHQPRYigKQ5Ys25H" + }, + { + "private_key": + "3219eea30349eb4bbfb096dc3f307c4beded68fef46aaf633bda1d4d9f35e60a4cdbd6e021f75d7ff6fe2d6e996335dcdd54b7c38b91d005438ac5bd3c387fb4", + "public_key": + "44f0981f33e2d343c3d44ed2018a6526bcbb49e96318e7a44c023a638edc5e7d", + "path": "//12", + "address": "22RzK7yRQdmNFWMoBGBpb9kqk87uWADRf6woQiDbETgFfZqD" + }, + { + "private_key": + "50160ee733580ea99bc5e1e1f7a90127655c3de5ad1e57de33173d51be821d0f5af0119fd7cb5d64d9e5713cb680e676817d172f091a54db29cd954ba4d84068", + "public_key": + "1a6a4767d03545b806751add4c587eef1d4c195154cecbc19bc3796c6da68f09", + "path": "/soft", + "address": "21UEQGuyH6QHGtirCAQoP9bjWH6ZApRYw2riHq74BLLB6mDZ" + } + ] + }, + { + "seed": "6a22e9fda32e999ec31e3f0a255b78cc565d0580f8b6c8bb0f9e1b3b4affcbea", + "private_key": + "9eca427ff3418e75c2746b5498d805d9ab7aee78e359f87e065a1e723e80e809fcebfff95d60857df0401c5a55d9f7ba9ccc0a4330565df448f9d9f8348c41e6", + "public_key": + "5e14ab73e994a1040b53acb73d294dcd11cbf48e571d8369b555b05d02efbb0e", + "path": "", + "address": "EhgABcDQpFRSMWTV5DxHqduhFYkBQCoR1ka7jY8moZfttAF", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "17449a6b499e174dedbda9dd23a4a6c3df41dce5059b83ddd97afee5034f960f5934d8899bedc38b41c282ae99a027e7c05a35e025d197408742863a25a9945c", + "public_key": + "327327220ec79c4c5efc709ba729181191d6ffee93cc5f6db345ad12d28eea0e", + "path": "//0", + "address": "DiU7tUUU2KBdzh2ifLPn2izQNAJYNYeB6dpcjpbz476jNeR" + }, + { + "private_key": + "bf0bf68d58e6e545208d7b2b5b6628b456bef17aa644d5ad71b686351c79ce07c6b6081d435931bda9ba1421851e315e95e676da868ce6c35f3d310db81badc4", + "public_key": + "2e817e51858eba7cb85003f1657d9967e499c6ec6e41fede78ceeb8f0c719842", + "path": "/1", + "address": "DdJBrub5JveU4PZ8oSqfAhrq8pK69No5W4mwsWrnyoXXKNu" + }, + { + "private_key": + "2176da385863b0e1b7f3f1999a92f744b766f9636090925bb8f0212078ad96091fd3bb8a998c0d84105d5447f0fd087ff3b3a2126afaf7fe28f58369a9b6df1f", + "public_key": + "cea3a59fa9509562bebec20beff11c27c67c3c05c7c41d37523e714346c93263", + "path": "//hard", + "address": "HFFzga5EzwcS65qp1EkenNHgh1tGrq4RGpVXyhNYBLZJ8bn" + }, + { + "private_key": + "61f5fc9ddf6d5fbf7f6495f571958c4e16337a39b603c0972cb5e792d1ec89090a977499476e515c9a54827a9620e93a0cf6985d29f83554c91d2353ad2403a7", + "public_key": + "a489248a867eb2a63efc438a8cc5f7109d3a112317404a89e6397066356c8c29", + "path": "//1", + "address": "GJ47NvAubu3yLzsPHdgWyA4NcVZTBCKpJ5ux69s2No44EGf" + }, + { + "private_key": + "91414efa7ba5555ec2283e44903ff900c8f178f79f3a191be3c74ff24a9b1c04d939d6a1de3b1c5a8f2e36de0763b86f86742fdf839c5b6c2dea9aa57b9ff920", + "public_key": + "b6b036f580abb649b8311b5f5f9c4855d3310c57b83163b1bab25acfa4072f7a", + "path": "/0", + "address": "GhraZgRaKtaStD6qtdQYtvfTTc41xBFnfrPmy3Q7PcA4PhR" + }, + { + "private_key": + "8c19d9e795fece2fcc167845d7c78414ad9e73957bc227ec6c698eb76e526b0de7cc4e67b3660f3cb723e5ab6f6e7ac2b64b3c31abc45e2b9c081b7c1c52bd74", + "public_key": + "1651558a8dd39383f3535d37f74002022f26da6a9e3b39503ecaf6b8e739605d", + "path": "//12", + "address": "D5ajSWPccciusfphyp4gjXJkYyLRYVpFw9uhDnsUQNsYoYA" + }, + { + "private_key": + "c4f1aef7f9d95671ca09024a3d8b29f517a37677231bca5b3b63dbd4f915c900eb17d3407aa92874be093dbfc9d92a1ebd1b805716db5cf46bdc60a08e7b14de", + "public_key": + "7683dd2ff11765cae648b199e8026e7348802110e9a5cbaeb1223a13d7b0f967", + "path": "/soft", + "address": "FFiLfvksXQRPWMxzvZhHLpgZEd57iYdK1yTh2rcnrd8nxFV" + } + ] + }, + { + "seed": "13ce1490fe252e870759fa794b7e7a3f040804e32d71bda9c1637db55b525870", + "private_key": + "f74ca0fea9b7cfa7414be1ad4e674930da15ca89ae033509f2a6cf5f0086c70dd81bdbb866ac9ecec8a5699e65c8a1faa1ade05982c3862f5f401caabec799e8", + "public_key": + "b2197c8799ed12434d14cda21b8491768a36b4b8afeb56e1ca1614eb537dd228", + "path": "", + "address": "24u7gQRWEiG2onELUNk37sXeaRCgKnkpx72udDyrmXjDB4mV", + "coin": "ACALA", + "child": [ + { + "private_key": + "fa60b07d402d38aa325c03f658f2649f6bfa9b61d29c08b182cc134b66329409abec90731bfff57de9c75066d43d0a8094ba653b59574591cbfcc40f956b018f", + "public_key": + "8c5301d4243e5b95d21166543b1d32e3e8e817c7fbed86194a4e6320e636507e", + "path": "//0", + "address": "243awvd66te5U6hFf9jDiNq4gqwLJg4MS25FkiMNXstsvoFi" + }, + { + "private_key": + "8eab9ccb261674312de728f2fba77e7675892225bfe1c6a76e533c2c1f60720302f21ec1961c80bd777c07f5b86262a747d44c902fe4abf5e5387b45451dea60", + "public_key": + "be90287d8f211bb0abb4b6a3d5ef056b78895a20a0ccf76cb28d9fa8db8a1a7b", + "path": "/1", + "address": "25BTWQ53hP3kHXRHQsknTpYcv3Mgpp7H5kCBC6JdNPn11rHK" + }, + { + "private_key": + "c483b0dcdfc68ac12d9a365877d664e2ba42763fb8848cddd9651f4cac452b0e460adf1c49395c54faf993b7e5aac6cadd2ea05e8591b3806e12529d8d464912", + "public_key": + "a2ce6d7c6df5c69b6a94368a4525f1c889809fe928822085d4f640db5dcd2748", + "path": "//hard", + "address": "24Z4fWgWEZRmsY4MLsbiPEa6otZ2dXR58wGW5YbaegpXp3kP" + }, + { + "private_key": + "a47a2d8454eefbc8f1959675823fd5a17afdfced68d211e1df589a28f371140ff447781e58f330dbbbe9936675cd01f496f7c1def971b0b1c52fe6dae68bb6a8", + "public_key": + "9acfeb1707565a4f0493ca5ef82210ad143a2e28710d7381d5c0ce99784c481b", + "path": "//1", + "address": "24NaiydXEbV7RAwkUSceiFuhBQCiLRJC64cjFXPakdaDUzLn" + }, + { + "private_key": + "6b1a3958f48b7fc96dfbe414b1933b23fedf1450f893c12434969aabcd7a7e085d64255cc8d48eba8f10f7b2b73b410a99136e69f76cc8a2e1ce8a67233278ef", + "public_key": + "34b4b7f4d5e9c1f7b382e956b9c96a9e67c5ad582061b8fae8730bb7b214a203", + "path": "/0", + "address": "224hm3tfzCAV2yL5WjuGMSsXHjiLG5PVc78NKS49JbVnBeSn" + }, + { + "private_key": + "7737ae1e1ba1b605b22765edbae238a593dbfb36ee2fb60802f8a85c2dbbf90f3e32b6d5f7f8b60e75255ea5a1cbeba30d7fbc584e12e34d2d95d7d01874e838", + "public_key": + "801b5c5157d4f5f03ef1fe054b799c6ed7e1d0f0d0620903c9b155eb1910ff46", + "path": "//12", + "address": "23mZqq7Bwu8cWGXvS3vVUhtoiCvSjAWmZd3KHWmQdZiDV1p9" + }, + { + "private_key": + "d6f61d400d1f8455410dd659667333363eede68758553a5ababde60583169c0c0316cb706db0d7094ae0c9e357ce9700514c5e84dfcac14f44f0636e0e5b8465", + "public_key": + "32fc14ff18cf44178df9a2a6e879fadcf75e143768e9ee7a5ae824a421670617", + "path": "/soft", + "address": "222Ss4QDaDUXwL9RpF35AWC9EpQheA8q6YCoVH673y5pRksY" + } + ] + }, + { + "seed": "5a6da6ccdf659e6b509e3d7e26478d6bad89a365a049d290525ce1083d3cb2f4", + "private_key": + "f8dde2e52b88f37fe1057f39c986ca315db8e294c3922b4d3ba4c67b4b80660e312ebe4da492dfe35e7e45239bb28d01b1a0ff1e296283df8349b7b6bd36e766", + "public_key": + "dcbaa52dbcaf1789825e15131fec31156a1b61643da797e047cb522ade39830b", + "path": "", + "address": "25s1ZkdPsuWaKGzTcr2VA9fUUsPkkuSwkm71zHq9UnXAENYB", + "coin": "ACALA", + "child": [ + { + "private_key": + "27244d4002b1c1b6ab8311b13a2586cebec09edef4a02c1e4d03fab61076130abc36d616177842dc218e41d6921e7f23bbaa5e394dd0685240fbf56ccc4aa10e", + "public_key": + "d8720e0140b40b70d3ffecd8c93f0c18c3ec4826af07115651c685a1dde03462", + "path": "//0", + "address": "25mPowNHQcTJQrWty6gHejzxb4y7JyGENuL8Nk9vHQG7NS6n" + }, + { + "private_key": + "a003dc84b7c3221bc858820ba0d8b464454f56708f86556e447eff1401385800d5b355ef905071cb2309a48d0dc62c195298774b48425022c38d53b5d4c89625", + "public_key": + "ba296903212e33cdafb7b6acfe1b4433c2d1580b91795efb22ca0f8d518d4305", + "path": "/1", + "address": "255gnyyaEsMRYjvnQYZPyGKvNQnP7HJWj5VmxciN2gFuaRSK" + }, + { + "private_key": + "d16b5783e40545c8283a7c23c12e3d14decc1b6cf7f2d9231427de71284b0e0f4f75fb16d4a7f0d63a975dd9cbd55274b80a1850899bc61061c67beafe11699b", + "public_key": + "2291c73f1d866c07a09e3627301e4c6027d71dc06c0def4b863e30af17439f2a", + "path": "//hard", + "address": "21evX3yfJdJDC2Bvv5JUmMH3h6MDYa3ovxoCiYqPYrNfqwQv" + }, + { + "private_key": + "60315c7eaf6dec7a5da645ce02ec66e56dc3ff01ba79fb151eb15ed886a6c60a810d6d3ed6efbe3f71e58af83f3185dbb85304b38200873c7f22bca6b7466908", + "public_key": + "e28601058959043354cc5ced10789551dfda607673c3198e09e5bbe78bd48b0e", + "path": "//1", + "address": "25zcDRrzM8xTaZGG93fSoi33vvh4XxQ3KatwgrVA5NSNwMS2" + }, + { + "private_key": + "35bf65816644267a0e0acfa77781e210972222eb8ce973430d3412a79f713c057aeb73629f425bf7c0d8d741965c475e72f03096d972800db983be4843d29f9b", + "public_key": + "5a17ae0558d5b5454af4c58dd2774b897d2af2d9a45705458386ec7b0a708300", + "path": "/0", + "address": "22uivsaU8ohzQzEripmYAdGyZcEBVQ1zYkMxaZ9bFE2ap323" + }, + { + "private_key": + "4d8b08bcfbcf1de5c3f6eed9924f2697e2a6575edb525b33a629af34fe54fd0f576d6b391869828df8a1d79a9204e7cc01800f16cdfbcf215db6abe04f14fcb3", + "public_key": + "70bcb6b6b31f29d2b228d42a1db63a8461bd40693a2a4fcae77c4c9f7bff4c02", + "path": "//12", + "address": "23RR1Sd76Q1TWWRv1AbmYDRh4mUfDLsK8XwSyd3eKTckBoho" + }, + { + "private_key": + "20eeeed73593c0442a9a5f0e0cbd23727bb8fbdd3bac8a9caf142dfd296039076a5aee28e5ac6c56b635bde4ad3b62d44d574a3ea856ba1a5186948fe6a265f2", + "public_key": + "7020ec8e507c734bcba02343ccf60ffa8f6efcd20f615521e43e33674d03a453", + "path": "/soft", + "address": "23QcjFPazESehPXdyT7NhgBNwYYt1oheX9CrTsZa85WicMJ8" + } + ] + }, + { + "seed": "485c5aea0a7e69255a46189c8e03c9b1cf04b1d60864dcc23d273d68350df2c4", + "private_key": + "face8c2ffdd932b2185e2267327d13a87e831f85de8b43923e55d98cf3888908cab87b898cffaefc10dfd75e075901a22a77b635dd3618aade1ec5cc8d364022", + "public_key": + "c820527834d4776ebe5982e90a6004f7c772c07a90b86979a3592ee830c6f46a", + "path": "", + "address": "H6ihLyWHmoBEmZbfB1LEQY698To8ucyRMK8cgwngktgCvnq", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "40a3333f4daa8fdb02d6c7de1d54086e25f5534963dae9cf9d8cc4c4f0371f0834eda0bc30cf4e4b039cec9d888f0d08e9b9ad6385ce2009599c1db86c87d63c", + "public_key": + "52bb08e42cf3db3bc19ecab7b1767312a4a0a04db511c410041e3ba99de09466", + "path": "//0", + "address": "ESo1FvNi4Kzcf6T12RsF2315fNC5zFrgPe4mkYa58NWbqkq" + }, + { + "private_key": + "94dd8be0e84539301e3a79a67f0ed552305a8a8c44f3277324cd0058257d1800d25c74a61445c89973d288187f702fdfd451f0abffad19832b9fc9c78ad21b8f", + "public_key": + "5cc6635a33538da24d34947ce270824aec093524469bef91cf52b3a6a9f2f331", + "path": "/1", + "address": "EfxreNLB8Z9eawvwoZRXtGVrhew2MfuemEDLy5ZiWnp53ET" + }, + { + "private_key": + "e022d7238e69edfc5a237570df7f5e40e5348f78fa7f05d7ba488e6e63f63c0d41ed89c3f84dbd46831591459571c360684c61abce7ecb49db947047e81d232a", + "public_key": + "204341c6dfb967e77a7e2f94ac4f162fc78cc0d476ff5e3a941a459dcae0e917", + "path": "//hard", + "address": "DJd2fmCZA6RQfxXZgu9N58YHe7L4nX7m6un2YaZZs5rWSL3" + }, + { + "private_key": + "fc21b7b5a0e3cac92747470761e72102b5a91159b281c2ec98c3f73e7db8510dbd1342817b2a252eccc0399075ae058ddf619159b0fed1ef1d89b22a61fb8927", + "public_key": + "e66422eb88d0e10606bc3cd92bb462e6bddc65a0718312b138598743e49b2e42", + "path": "//1", + "address": "HnQH5RYroHvqrfLRRrNDnzz16NZG5b6wZNWwWfvyc92Gm3T" + }, + { + "private_key": + "b1a3af4645ce5fb380a4fb3450450f35e38dd053ed9c3c0522d214274d82da00b6fe216944be67d816d271d26aba39d85e620d5ff25624fa20b48af331661880", + "public_key": + "24eedcfd53d8e8b869c72ef6919933d53b3fa644ab7a03cf5b64b1fbae681127", + "path": "/0", + "address": "DQkCV9T8bSfGkW23VjTv6egFiyui3waP1X7w9DKY1K7YR2A" + }, + { + "private_key": + "d1fa79b5e66d412db9219f17ced18d45c36bce909d1cc01b47b34ca8d290d00f5414542fb50ca25267dd9685317b4775198203b226cf7ca59c13e887eb2d5bcb", + "public_key": + "c4dd249da92ea3a04ab5949fb82afcedf23b6f1e7528667cdc9309c740a4de51", + "path": "//12", + "address": "H2SbYWQLf56XLj8uSkrDTJjx1VJe7mckHdtGTNmNkS2ZZhT" + }, + { + "private_key": + "885d09dd0d44462e48b6e435aef867dc96cc5ccaa3ae5ca3e3bec2167e8a8505f47121a49abf9dec0297fa1c9356e4418f31702c6f9579cafb722748a05eb5b6", + "public_key": + "96fb85bead1f2406963a67cbf93f424e7a012b29af989ee7d1bb4c6836604607", + "path": "/soft", + "address": "FzHRDHmMYWyYB9axMKdjtkvBAdvDpBLnHRzxY6FPCoRjSv6" + } + ] + }, + { + "seed": "574d7e327247d488bc0e016a70e0c08b0f31e7d0346de9f7c6fec2acae611e07", + "private_key": + "1231beec3136243a9c0af95a5fd8a460d893a50ec3e8df3d9da9fb535bd7a40d2ff1c48f44d4d9eae6bde527a6e0d77c473a689d4aa166907152d4079f1193c8", + "public_key": + "8c215cc9d65110379366604efe8459cc60328cae5d5de594a804fcffc1592810", + "path": "", + "address": "Fk48dXKUAe8mP9nF49nv3B6pXzbU1qkjfNQkRosyB7whBML", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "9843365225371181cc96750b234189cb532b6a4b4b2b92be619cd79253ccee0fbbe0bb411f54f72b97887215182ff1605a6abe4acba630ce1196fbe8173ebfb5", + "public_key": + "9060fb382687b9599498a74a9c6ec017532ef2457037957cee480f8f472ccc08", + "path": "//0", + "address": "FqdDsGAjLKu4Eb7abLyxJnWLyA5njnVnVmWvtwizHRFP3yr" + }, + { + "private_key": + "18965b2ea90b6fb05876d76a7ab0ac7a7e7cbd556c924f02c21db9754490100d79bd403e40bc698ffd4fe13d20a10aa85532c4dc2c1ecea065d150bfd2e10a34", + "public_key": + "68ba25d083b2abdfe817e8b16af7107d913af79c07c5411f1616483201829c3b", + "path": "/1", + "address": "Ewdo5MovdcsDJDLo8FaWE3wQ95ShZcHccviFpiB1TNJ3V82" + }, + { + "private_key": + "99fddc6b6f220d8bbdcc8cdf5801e618e57abbbcb853a47b56f37c821611e00f77934cc657af1496133992da810692a6d942fbcd939ad916319a5cf7003b80ba", + "public_key": + "c03e483995df2661cec6c561fde65c87758d3e8b07f17b3868726341f0ceeb28", + "path": "//hard", + "address": "GvPDKp812NmUFxEBERt5fQCxabP5J4c1dFc7bq1Gxpx3Gsq" + }, + { + "private_key": + "e1f29a3a76428239809d355b3969931fcdc1fd0e120c9db44801470857e48b09672d266b5debfb949251156a586709d70e00ea853ed1e14307820427965ed98a", + "public_key": + "8c4db31a2eb7db9ddc37a4d288c0cf36aeb5fa9a6428b91db898022085586214", + "path": "//1", + "address": "FkHJYPkFvxUHmwnAVByX2f7h4kicQMUkhFY9pkVKCghuXLe" + }, + { + "private_key": + "1dd43285f1811d99129c7bb4eb78d3a1d06d14a97533ae12910d995421311b0a98f9e1fc57f35c9cbf8169e2a5e8941c709596610e30bb18db36b28cdf12c268", + "public_key": + "7c2d1dd975c460e01475004a0078bf195416dbeca9d718d8f87958f68cdb4b5f", + "path": "/0", + "address": "FP8riHozZsYGGLfKYXYG5vMchd4yofFTcKrReHvH5bae6yN" + }, + { + "private_key": + "8a467fbfc2cc4a9919be156e7ada2cf4a44a93c338f1207c6f556c097009960f8c5b71903f330689589386b35fd4aca71d9a95ebadea2d108f732b11162eec57", + "public_key": + "eea948af364c9ae6c86f993f54c50f2550a26bfe5bad9389b6fa558f46ef5c60", + "path": "//12", + "address": "HyFCgNJxFyA2D3D8ZPyWVymNiKLmkattSDCQTm2EE1veUaA" + }, + { + "private_key": + "bdd8f2f78364f04165dbe8cc43fed93de54f3089b88049e29038465284575d03e3094405f4e6d37d9bf424567bf62bc0a900d2ed272ff3a1dfa865239e761c63", + "public_key": + "267f31c1f8bdb00f443a4d27cda6af501d3af5541c47a3edb17cb26f15612271", + "path": "/soft", + "address": "DSo82jrwEfo365ZutrPnBBAxqfU8ghq34dUm8KEfiyiMMhy" + } + ] + }, + { + "seed": "058f52e3e445ff81f2baf6120737e02a3ab6e7ad890cb6f8f5378cb976713703", + "private_key": + "4b032be16f72f6b1e5f96bafaed517656e395e9933427406143d32472869830a9736ebf9dc9da5b26cbb92f74ee1e37b6a91a434f190c0bbfe1027bf217d0711", + "public_key": + "023d08a5142adef066add830dffa0bdf7eaf0b1b1e73bf7b582e867aa0ff1c4d", + "path": "", + "address": "zvXp4efE8BJy77o9HBbuj7BeDN8oHdcsQUidEbsJ25FARJJ", + "coin": "ACALA", + "child": [ + { + "private_key": + "6059d113e3af5d9f9e4a89d5348d3b8d77eb96817c2567ee3806cf2e6ee32508970fcdd49d27ec3359a8ef114581bfa0eb9404b4917abd70190b5b8f059b662b", + "public_key": + "a0da5864144600a8f70ffa2ea6fd5308290bea112c624442748aff074251cc4e", + "path": "//0", + "address": "24WW7Hy6R7dHbW9ePkDiMgej5uJHnqfWviXigmdGVV3hDq5i" + }, + { + "private_key": + "7004d2beae0a7e9eaa9a90290e13ccbcbc4f5274685abad2d3d3a0c5f2d7660b10d78f34d4db73c424aeb33fd777322b9e14c91b8531ea84290459e9ded50cc5", + "public_key": + "da76872c7d1ddb7c9e7d12ffc614fbe633389f042dc37680404f3008bd459056", + "path": "/1", + "address": "25p3EZo6ZdqfrweKorXT3ugSrT8P2NYSoBFx4iqJ6AkvnedH" + }, + { + "private_key": + "7a7100cf201c194aee3ef25e0257435065dbfaa001801e9a2173c699ab68d00bab86fcad31cd1896f29219442e847157ea7fe43427c65bbc6234ae299d78cd4a", + "public_key": + "deb811efae2a69b7d3e10a8ed1f67958043e300bfc05df589251ee2181097766", + "path": "//hard", + "address": "25uctwPbm5WmtBTop7TNpkV7h1soMPQYkCaeMCfkUyEKEX2p" + }, + { + "private_key": + "99121c25db7e7ccddf64b8f1c5c1323414e86a3d2275add928e558ba1599d40f896cfabe90335d119fbe5ff3537336fec76c49a1b90d1b12adf6443d390325e1", + "public_key": + "1a25a1735702f0c1b33d0d388697a117173890f15450ec5e316fb2465da86e75", + "path": "//1", + "address": "21Tt1VZHUQBEdD7ebhJzhvaQTziCTvQKoYCb51ujPwz5KDDB" + }, + { + "private_key": + "2f20903b4b8ca286e9a5704caf51206d2ecf03bb934280c2bc9a3db9937ca10d8ec567895c3a3ae86b97efbcb1699b20a2faae4cf855c1d3ba5cb5fef191a741", + "public_key": + "cebe085639cd67837100e9dd6613a0329e26339bafa45ec7fd2bb3e2ad252f3f", + "path": "/0", + "address": "25YfuEUMJnmkYG58Bcrsx8zYWtCxpxCPvrWAqdZTAaep2cyC" + }, + { + "private_key": + "eb24d48b9fc03fb47899cd5fd91d5862f667dc7f8c967e8cae4bccafbe56550f8820e4c2c6dd93e05ba9a3f4c05c31681b2bc81657b1fc0ad7cf01beeb3fa806", + "public_key": + "c84144fbd1c24f818c199610e2f0d2185d7a018e64ca9905ea19542bea75d455", + "path": "//12", + "address": "25QAYx7er8jiVfZ9HjwwRRfeezMfMQH3rHzRXJjFEjo3oKxq" + }, + { + "private_key": + "0129a1eba5e206a7b4dca447ddb96f0aae48a436a0e208337805d8a11364340b36b6addb3cc20954be9af81b7d96df70eaa9098e05bb3a7e744a94f1c2c7658d", + "public_key": + "60128437bd63f373e6d1c524389c6a6b0238204e6df6fd8cefef464b7fcaa610", + "path": "/soft", + "address": "233ZgaKLqFEE7F3gJ8vRVBcZiVbhZbT6JosCGopkg1wy1yxx" + } + ] + }, + { + "seed": "e6a0e5ccb29e25ddd5c128244cd156f6c3e04964703ab34091929b85852d48e8", + "private_key": + "fcfb7949eb98ce3421bb325210302a2a97e2ae35717f947dac311441c25ee60c122f7abda693a7111c7716718422688e651f5100ed7661dc0e029817161804d3", + "public_key": + "aa0da7125778567b2531d3bc176edb62f0de8f9a04a301069f71f75816df5a3c", + "path": "", + "address": "14qyCNbooaHJRMpmBFU7jgrNtWd4ak3KoRAyKuBHGUtn9Gvo", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "e026498b7dcc6df992b6674a2187950c68a90fbc62e2b18f429600cdcb37cf0aa9951dd5bfc1dde0465eb9a3f9682e9a5242062fbbe0c9528bdb1a1971881cd7", + "public_key": + "c67af533795f265524bad525d465af7891a4183aa8198ef5abbaac3d599e422f", + "path": "//0", + "address": "15VF1RTxn364hyKguvviH9S8m37YN6dt2LaGiehf6qYUmLm9" + }, + { + "private_key": + "e66f84434b0d5d7ec10abc7aacba2784012feae634e4852d8f88cfc2d906130f5346a1f94e9d6705f8da317fcd824a1222319c85c0e3e63b92d50f7d2fc6fe72", + "public_key": + "e4ee6f545cadf9616219088e0b02468e76ea7f999c250c41b9260334c8f9a515", + "path": "/1", + "address": "16BAkN9pmTdBehzsXA7WGtJGEHipVYsfRJkQjMeHqRt7qVN9" + }, + { + "private_key": + "df9a40e712aab7585c03352b45d74772903b28c07df736ecaa96d64ad05a250dabee59dbbc1f71aa874d4fc056815a49475f27ac1a57c5acd7de0834939fb265", + "public_key": + "1218259f309e64fd0d403c268eb5c69ecff64ae6c53e43e6099d44342d06aa2c", + "path": "//hard", + "address": "1Qj32ycnEBDX96ahtom6xPFunEtdLMCEPspQia7PuQG62h3" + }, + { + "private_key": + "05eef672eea870937048fc9ec81f2d7480db8f85a61aa735b560096b5ed5b109982fca2216b5626ef36d1d8539aed5f9ba5cc8216eb3c6ad6983b2c540c086b3", + "public_key": + "b0b2e0f7dea85f42a2f0525a7f367ced7e75f527a00cb344c6f71765d25ae336", + "path": "//1", + "address": "14zgZpNUiSo5GLxxmpKKuf6u92Gd1bqJN1ndjpGheBSm2ras" + }, + { + "private_key": + "cb62b2aebf84bcf42163836fa1fe7a324e9d616f663395531d1ea9a5197ecf00e97390250973c5b67e63a87a78465fbf7ae65641fe054f3e57d334d07b809862", + "public_key": + "849e88d49614926526ed3f0369b5bf181e543a07bc2ecb758b0fd944cf6b1125", + "path": "/0", + "address": "13ztR6HF2TvvgDJjXH9aQ1wGwvhmpx24v8RR9EsFkK8v5PbK" + }, + { + "private_key": + "c26037d70c2632d203af32f831a5a631e8ac08289d297ff98bf80459dace270e0d095eb1670cea9b437f37a0d37a722f37d48f20a1fc0e80c96d626aa753ff55", + "public_key": + "3e5f9a8ae7e1659ccce2af73f06f5bb2ddcf3ead73c125df9c2e75ffd13f0f34", + "path": "//12", + "address": "12QnNQaSANRNdpHNBh4caRBFeC5DNuek5Vpv5W9Lc2gAUuhQ" + }, + { + "private_key": + "90ff1b581aa22082897c0f9f3366cabe16608741beb04253985d3b280100760fa722cea580a5f5465ab386a4bbe01e56b5f49c2c2a84b7fabdd3fc5c7ce93ea8", + "public_key": + "1a0eeafdecefaaba14817d76fff2cfd8ed3433427e2e8782c2135adabf3d9867", + "path": "/soft", + "address": "1bAgEw4E1NWFmXHFbKPkrAKZwH9zUbJgmUtK6mzPWvXDBmE" + } + ] + }, + { + "seed": "a84baa302b0d1acf8eb0777aa605eebb554e589331755f49ccd1c95fec5a3339", + "private_key": + "ce51a1370576c984e89138b3c92f16d7b9614b64379f9d67201b853cbc636c0b34108b837a8130f44d939a162da42e37a6c18929d531c7c405887d46a21d0cc2", + "public_key": + "2c45d55f87a19ce7fa0fcbe545c779f383105384048e5bf1606b2785519d0f5c", + "path": "", + "address": "31kF2FJhsUEGAsTnP2N7VQyW8mc5C27Nse1JQJzUQycZ1DFU", + "coin": "STAFI", + "child": [ + { + "private_key": + "743a5b3de42d25738f16ce10da49859ff53f13567be9b314775b232a5c487b0e8b54da827e04758f526ede438d3dffcac92a5ebd92eb8f92e7b23c2186d679ff", + "public_key": + "a49efd6a869e2bd4e82969db6242837cd235c53a06900c5ce51f3fdc15cae941", + "path": "//0", + "address": "34U3FeuP6sQkhtPyd6SsT47dLnS2SRUGG3my78movjEzwnWg" + }, + { + "private_key": + "ebde9fbec1b678184f0eb4082d16adeea60d3f16cb9cd4fd0d28157b6acbf4087e7e367e64eb6a95e26f64d76cdff0bd19dd05fe5cb62c4fa186917715dcde4a", + "public_key": + "f856413b14e392cc8d0f8e3fa99564703f781e69c5e186149ab2c8148dbd3a19", + "path": "/1", + "address": "36Mofka3raRkmBPZdKHexHjz7BCXC3mS6HdiSeKroDBF8r9u" + }, + { + "private_key": + "80aa0f17eea68a95bd5842b75387187f821a145ec99e8ea72da497ad3990180f44b7774bdf4ca2eb064ba4a4afa9197262ca997a2ddc294fc1dba4e7891f4f48", + "public_key": + "66a5383149f73f27eb7de8cb170b26dbf664b6fc0437231509285a8e8f718c03", + "path": "//hard", + "address": "334n8o2T1rCS8BgMkNhKTt3E4D39KdBxE7fesBdJjrgLdFKe" + }, + { + "private_key": + "b0ace9a48d07d463c8470c517b54df9bc1740707f159fb487cf15a4c3335e20e2d56a90257fd200224d860dd721130837135fa913485a43e00d22980ff94adc7", + "public_key": + "3a30cf79de8ab1c442cb8232e321a5af4c873bfff1449131c9c228149adfe405", + "path": "//1", + "address": "324VSup6cin8Q5AjhPH4J9AW5CWBEJhszfQFH8hS4aCGANg5" + }, + { + "private_key": + "39e930b9c197b17238f9c5e2062fc65fcee1c10d37eaf9757606995b7b92e8076f5439178a933cf1285decd2a88ba8a9c6cad43659747a47de747a6b801c9bbe", + "public_key": + "342b8680536c91afafd48284d3d2ba4e51e9bdccbaca71718d13ec8dd3961e5c", + "path": "/0", + "address": "31vbbBrujBkj73gDHy4QEwZpBJikwtYwt1fRxPgB6vKw2Pb9" + }, + { + "private_key": + "dda1b9dfa8eb8ff3ec4e3e589ba7dca2f3c0a58c3a5189da668680383397bc09776f66406c19579fc56d6f0026469af42ed6f35c378b4bfc3869e95431b71a4f", + "public_key": + "b8f6aaeae76efacb673bafa809ed4c77486f0d3657b2b916346d49377afcce70", + "path": "//12", + "address": "34viFrRJhrakoegorZScTHorKDu16oDajr6gwcBQFYCSHmaV" + }, + { + "private_key": + "954832f1413da9aa2e10f60e58f9197ec9e035d56157f410173d79ba1cfa140cb64737680c3f7f12b738875b8eea788640dc6bc3a611de15214ad5d6fee02cb0", + "public_key": + "f488eebd6cdaac83db6f6d7a271c51e63654f08e3c7c0bd888de86ab15e3070d", + "path": "/soft", + "address": "36GpXoNsHGcpNmBKzrTTGUvHMH7KPrTLpQjSBi5wJZPtwhaG" + } + ] + }, + { + "seed": "d2c39523444473f99b7b54cd6bdeffdbe1d70f25675fb95ed6d39c6e1b167fcb", + "private_key": + "1de745b1e13c54079e638f2400294ee77a88392d516dba0208611a8207a4af0dfcdb29f86eb0c032f2a3dc931e32110683e3ecf9431705724ec903fb69f04233", + "public_key": + "8a4d51758c868b1e973ac6239129eb6d84d9ae3f326693e706ad5259fdad6f24", + "path": "", + "address": "23zwAMQ4Xf5y9GVZ8acNstYLKL6yDfxezBSx3qAFwPzNWhuD", + "coin": "ACALA", + "child": [ + { + "private_key": + "7ff173e62a9951cf399e9172466808dbb8700f8815fe02ee468eaa464ea9010a56f59be2ecdb63fe11779c7c30265fa0ed451b9af5fa71d3551fb7fe084fd2c4", + "public_key": + "fae532716a0763a4d3a93eb01f1ac32c96c86982c68b743b31fa146cb6592c1a", + "path": "//0", + "address": "26YZeDtiSsQRHan6iDTEzmCUdFfCUtfaA8vMfxub5KUK1Ubb" + }, + { + "private_key": + "2b2b5ac6512e44670d195bf2b9535602089b47be619ba74cd3659d852131c605092c6da635f34961d3c21963786d0515ab17537d5b72a9809ee80548ed2b500c", + "public_key": + "d086525093aab11347987ca21fde4f95ba8c2619c5cdda05d87d47fe63170023", + "path": "/1", + "address": "25b1SugXigY8S9T7Jr3vVaczoRoi1RLev3gcKtQcLsN24sGN" + }, + { + "private_key": + "2244c5e81e664ac35ff7c5d1decf52dfa41ffa55844e455417d71530a251ec0b2efa68073305d50f54444678f76d58c62524727abdcd39b8ea50f4714c41b9a2", + "public_key": + "ec3cd2dce1e81f0a711528c7a4e2262fca06283e24183032ac6f0669a111a56b", + "path": "//hard", + "address": "26DLxLQ2gg2BWbmHQV7259MpPAwSh16RBsEmigPRgrhwE2Y7" + }, + { + "private_key": + "abcd528313f694e942eb3605b44c8cff037850cdd1f4638e8d0eb5a30fb6e50e29db0373b2c7702b55606dd107803a757b232f58f38d8d8da422a2ff62c93f72", + "public_key": + "6c91618aa6248e56b70d9301058e9508b0d00b7528b79af8fa20797b903f4e48", + "path": "//1", + "address": "23KwwjC2vgtTbP2P7ubKsgUik89DcdJPoJsjehKkjVmDh8Mn" + }, + { + "private_key": + "19a15d19e09deb77d1c615940955dbc6acd5c028b4af5f038097120f26fae8049b72919ff24fd8694dcf77c813442244f9420d5939d3450b042f600850f32f5e", + "public_key": + "fe276e707ced1d2242653a2aad9b6825c241dfdd59fdb52b81d8a2810c44a255", + "path": "/0", + "address": "26cqTkFTgwh9HnRJi11ej6TK4SLLenTcTS3ECcVAfC3quFZ7" + }, + { + "private_key": + "10ab5cedafdfe2874f1dd395663c724bdee1640198f96fc1f0b0520f8ab74e0d5785741a714b96b2cddbb3d2e8e208d94da59c49a1c31fdbd4a59bea8c536a31", + "public_key": + "bec30f0d8d9589469cbc079beb93f81fc2ef363dbdbc725e581ba131b0dbce4c", + "path": "//12", + "address": "25BidPvhSk15rvoTGg4o8PV1vC76cHR7SDjnXaM3FNtHDHfg" + }, + { + "private_key": + "fc26ad19a1e0ab4d62357d50b6d690e6b4a0629b94445e2ef148bc5506d51c07f1328fd7b0fd2e4a958b4ad41dec28fa49363bf7bf6c94d7741541f1d4a2f0da", + "public_key": + "94ad1b5c6bc2ac2b35591b5fb69f355b4cb04261252bf82a6532b407d7eaa008", + "path": "/soft", + "address": "24EY6XUCzmweUjC7a45nm26VMsSnJ4iLt4UHXsSnhhbyqstK" + } + ] + }, + { + "seed": "ca977cb85a2fd5185141b72c9246b88bb55d07172500916520bac54455e01509", + "private_key": + "f803d6da1bf64f6b8d79f88b6df1b52d74c4f398222e4b900d73eca81ab0650a6da6f00f732c1d6af682c16d27908d4bd88354c95d878c0aea76d1d90e947691", + "public_key": + "7ac4eca9576d7009e5499f98a91be0b9a78d8263da8d00bab3fa4371e48c0374", + "path": "", + "address": "23eZvgb5SQ7y8hHbmj8rGmM7wgp8WumhRLjNZH4pDEi1Jy8v", + "coin": "ACALA", + "child": [ + { + "private_key": + "331f5b77fa13e87e411f0b1fb358b8cafb3fe6f9f880630cd180f8f1d97fd30d5c2e30157612467fe4f60aa6d722c13bbc9f035913fcf65fd2e309b0f6d2f79d", + "public_key": + "00524eb505e9ab3b458179b62001c172043ec74c8c52cea37b3574b87884f058", + "path": "//0", + "address": "zt233dKe36eoqrKgbMWWbbjyZatgPhfi1NX5kt9zuwfBCAr" + }, + { + "private_key": + "58978e1ee84a42d7e5805e52fe8c4017b268d1cbbd05d9abc394c91a8b970f084dc0198386a104cfb92ca98d5b6271389916d9a8b46cf586d161331d6e9d651e", + "public_key": + "b034a7d54e9f40a5ef086bdc849a29d29497f8387f29764cfa60193c2866b870", + "path": "/1", + "address": "24rdexr1G68WPi8RAhaMaSZaCXbSco8dWYttvriuTHaMp5Bh" + }, + { + "private_key": + "27319f98943aeea79e27af15c72a4eb7ac46f2728a89023a3da5b2f89f03540955acc0a5c49f9206bfd957f2f6b1972ff2a7cc3ffe427abbd7f33caaadb7420e", + "public_key": + "88e9552938119fdb05a15d5664079d1a806afede4a75fa7f396e7dada913af25", + "path": "//hard", + "address": "23y7Qs6F2kjUfnbjYKisXDS8HoFDenX7Sc8xdNapD1t8o4P8" + }, + { + "private_key": + "43a932d4408e6b489a810405192ef138822299ea68d0c1af2375e779e773e509989ab3696ca91658e2644912088bb07e582dca8e94fddde5e05318434cb06c74", + "public_key": + "fc5d23f413e655df2a7720703476e3e2c14a9be280b2ee62f138071f3717483d", + "path": "//1", + "address": "26aVKaRWqEucviGfTkVN89KhdUvAP34SwnLA8dUwFD3HjpCV" + }, + { + "private_key": + "4210af55d69411e76a3656588268c4ff71bd30a69690c0089e365cd18756600beecbf53609662c65acd1c8f33d98ae929752a9b1d88c22d9983a90f17cc90527", + "public_key": + "782cd1a5ae27a0b64023ab88de3d2dce2512a0d197191e7b4b14bf19d0baf043", + "path": "/0", + "address": "23bAeQpjbcBNC3jbr8MzTqxpgEBtUmUYkJ3AFuhFjyfRMgDt" + }, + { + "private_key": + "e9dcbbef863212e612ece16847784986d55541fa51dfe26486ecb2686144000b2e329abdc32c6ed7bd2c6f939b3b576fe0853fd19a6e6105f64cae8ce8cce57b", + "public_key": + "caa243d3dbb0a9ac20cc668baf5d725e92c96b9fec6e1979009cc98607dff15e", + "path": "//12", + "address": "25THThVceuDVLLnBNpjACBvmerh9YxU1t6DrM6ZEGoM52reV" + }, + { + "private_key": + "a4c9eeec4153a3f6899b55ed80b08c564301848c14f25228c5b6a24a5508ed0e664afa7b79e3612ee7df11f97731f54a2efcd57c833f92753e015131783d96ec", + "public_key": + "02e431fc7d27d68eebc6d1b598ee520b5921be9c5068de21326a09e5f4af913c", + "path": "/soft", + "address": "zwPUBvaNMtG7LEKB5ke5SxqF8w2yis8b7217BdsM245xZkJ" + } + ] + }, + { + "seed": "b8f77784c601ae145acc931e1ddf1886a79907732cee7cfeb8424601980dd975", + "private_key": + "3ab4f7ad320ad19c1245ec89d2feddf48dab7246f54c73d885658d36959c7e0a33dbd522bb0c39b11beb4bd47e6b296ef30161f717ce94034ca4bbc617a2bec4", + "public_key": + "d2aa81d9abde4dba71f702973459cc18be1bceb7a3f1810480f2728a84334451", + "path": "", + "address": "25dpHvp3SVY3d2vLYq7rLytFSCxkVASsMbcuehy9oXTHy6bb", + "coin": "ACALA", + "child": [ + { + "private_key": + "184fd2d52f401db5216147f4229bf6ea196b8d8dd8a65bc7d50ce116c943190de38d26a7712a0d430ca338205500bb6c5867c721e3717c3bdb7ea049d206ef66", + "public_key": + "d44359930041d622a016b2d8565d2da0d5bfa60985428282e1c70fea683f2604", + "path": "//0", + "address": "25fuk88pXCfwj24AB38jGSLRPoRDusUVUScszyt3jeAA5Rp6" + }, + { + "private_key": + "3f42c9dd6c75301e2189b0384c71df4fe9bd485fdda2c76029b41b9eee630d02e2113af7bef8cdd1d8c292a3bcad9f8ee364a8152612c4079c21b7f23f465ef1", + "public_key": + "caea4f9325c70262b56d3204b8cf442d5e5b35848ef84c05bbc5f85e52676f5d", + "path": "/1", + "address": "25Tes29xneDpyMaHZSKjVi55oQr2oE5JqgtLjKPq4WJnSJkJ" + }, + { + "private_key": + "d432cee56582bdc6598848b65d7059a48b508acc402e4f662126e29b497597094088497d01f656e2b2b55957175695fad4a4553c90566c7095706b141bc372eb", + "public_key": + "f0d9c6c2c5f719a61db6ed08669216da94bad8cc596f04ba6db0eb6e70360944", + "path": "//hard", + "address": "26KPmgDkqzuuNNXa484uCjNPRewW2kobRUMryMA4CxrWgpg3" + }, + { + "private_key": + "3bf371e398a8e1be32cbf6ad743a0c575f491b86e8ccbdb59ae1c315cc90b70c33eaa513b0fae58abdb1e46201ccf917296bc23797cc9452ce50c3bd7ac20147", + "public_key": + "821b9f4cb0c92736b1a646fc6ea195481162f5f7ec985af2d9f1bf2cad03e422", + "path": "//1", + "address": "23pC1tk9k4DDG8vt2z4TtmeZCqgguxqES1BUMGVmxXHTGjyk" + }, + { + "private_key": + "a5aba5f0980cb370ab8d52d27632c9fb34143ad7fd6a5f4ad61e3c268b50ea013c7fd967f6f215f94f3e799ee537255a6dd4d315623c5675f257fe8bd096f1e2", + "public_key": + "76a67e11524d51438e22545bf2198c92ea240e58d2bfa0b2dae65fb4ae993770", + "path": "/0", + "address": "23ZAhF39DrmsYiYtDJJRDjoGRcW1iTUDmLUFAfWRfPfJDdUE" + }, + { + "private_key": + "6d0ec8aeb331ef2e1f5c7d8c8d2eb30f6da026350305a3656a428ab6cf4cce0c56f6b63125985f5b2dd56f4ac64bfd255d2e9318a5622e6d96d5390a2f6c9ce1", + "public_key": + "92972c90ade38441b6157213572f058e7704fb55a88cc900a0780de561226962", + "path": "//12", + "address": "24BoV5VSYh8sYpd6zWheSUmTJYcVXjwfS2GzrGqpCv1HcSML" + }, + { + "private_key": + "cc7b131b7d81629a140929955501aa113df851c1f503ba04a7de01bac6af3504e192a8ad39ec9da2e1e0474d2205ea6fdc0b0c04adaee6f3deb2bd0e789c1771", + "public_key": + "a0220605d8d68acf5eee68cca78275e220734982e9ddfc6dfba489e936366752", + "path": "/soft", + "address": "24VZMWA8PbA8r9XRWYuDn5DhcDiSK8psis91UW6tQ2HdxqN9" + } + ] + }, + { + "seed": "19536381295f88599866ca0d5b4f4eb74c58cb296fd27505fde0ebe41d39c889", + "private_key": + "3747d415bedecf57af9d4ed7e0b5c789d824d3ae917db3d28324ee5ac8bfc70d36f9dc6097e3a846d8d0f72014ef1722b591768ca8dcb8e0929c00b1176afb44", + "public_key": + "94cfa967ce4de25419bf5c76864618af55b1294fe87d73769e8cc2713566af40", + "path": "", + "address": "24EiMtimfgvJK2azKqiMteNwVooH3Nc3sAe2NCufAgyKvZoX", + "coin": "ACALA", + "child": [ + { + "private_key": + "5409a0ab6bcec72d66454f60d3484c277621272797111ed20f7e551465ecec09428eb60498a07280c3f6c6eb43cf6ebf9fc9d6c8779c9cf6176df00a0be924fc", + "public_key": + "7e3068dae0207f29f8f7faca6a195ddd27b841ecbd0c855d39ffe451cf3f840e", + "path": "//0", + "address": "23j3zwXjnVqBZPY4p71arjN1VDMsVwBZ43WtUQsm1VUrn6uc" + }, + { + "private_key": + "33bee70dd33d8dd52b4d82af37e6d172e9f5cbdee19480ad1942b7fa22e3830fc560abff5329e18e733dbff78d26ab9c94dee770e46a020e1fa545619700dd86", + "public_key": + "d0aeb65fdb1baa04994a49a1391df93c33dfd6ac13f769b9cf98f38ad6b8a532", + "path": "/1", + "address": "25bDSpwdy79Y6ZENBNXUhWDCnEb9b4w11EhEtpn8JFEaE8N2" + }, + { + "private_key": + "30fc2ffed6f62c25233db6c84ec9621a81e2e3753839d43b38c86b15c789c10c8de21dbdf330067525827f721fbcac4c6366ea23c5886c60dbbffacfdecfb5c9", + "public_key": + "fc897082f3e83cbbd5dbcbec10e5a483474fd3fe92255e10af010363c0f4e37e", + "path": "//hard", + "address": "26aiUqDAecNYxvmC11FBtTzJkRXNAZrNBJFSVJbitku2RGQi" + }, + { + "private_key": + "6a85631dcef827415f128516d03452dc0b15d842e185081cfcabac071c6eb00f1b454d6d62e49f93e5c653bb23aaf6c91fdd09c3f9a3fb4389dcfe1f1a77d0e7", + "public_key": + "8ab93825c5e4679bc7abc3e07f82e5872c927cde3ba49ad1270b6e5bc86af56b", + "path": "//1", + "address": "241VDSoLq53fPV7DXu1WmRcjX9KdHmLfDwNxtc61DGrS124Q" + }, + { + "private_key": + "89b20312cf0e9be19570a5aa8c7187993edafee7a83764a13ce98d11dd9ec006a825b7f2580de055549044ee27dbe65be9e3c2d79ccf0bd5e9f6bd8712855a74", + "public_key": + "b010aad7ea2d24da6215f85b295bfc4c3510204912e8ce45fabecc7d5627634c", + "path": "/0", + "address": "24rSxuCC6FSATGPGxcAZmxaMFtJiJaaYRbqDqZZucYMwxjnD" + }, + { + "private_key": + "3d87f85f8685bda4735c7645b1007c33e38affbaaecf6a28bd49fa83b32444092b48778e302fe078476e88fc866bf290780e4af2a358854b6715fe3481e8b8cc", + "public_key": + "e0ef4fcd4daccef67bcf5a549e3d2cc43fb9e31b741afd18b5fa3841cda7a110", + "path": "//12", + "address": "25xXQHUctxKMNaA2q3vsKaNrvrTxQAAGbCDgBhXSXK5GKeoA" + }, + { + "private_key": + "b367ba1cf83d8dab2fb66f516a4733597bec2ae5ea2210c8d658470a5a584f07837e3ad95f6a265fd082f21465b77aeb0b13e85b813cced678304cff44ccf8e9", + "public_key": + "d0c01aad7e64a96d2e4df821888868ff5a23d3865894481254f4e15258057a44", + "path": "/soft", + "address": "25bJcUsNXMrjFXviLbb5A2us33bJf9hj9a7T68teR4CxUBMq" + } + ] + }, + { + "seed": "8e6c5e2004ba283aa294f2295b97a28fcd8e2e1f188ab7fbb70bd2dbc9594104", + "private_key": + "17c9fc9c3225c64bc939479293e4e7ae24f353090cb3d799c1c7241978c1b90e6a92fea4987e66d57a88ddc39c38ef62991ac8202357c6bade153c17760eb823", + "public_key": + "40da85efd1dc9b4772d848f8447c6c3edd99d689bc5e98cc782150123977ef12", + "path": "", + "address": "5R74MU6D7nRPprKX9zZy9zD8SDkMrvs3w6zVfXnFLq9H7v2F", + "coin": "CHAINX", + "child": [ + { + "private_key": + "b0db8062a1c9764f9101056d108cb083ee23c5ef14c1e36c4ecb23146d02090ecd0588f77a11b075c94cfbdc256e0629582eea2448104e307459e0874f8e3164", + "public_key": + "c048f688503d1e1b7e1ad64af73efa34fee21bd43edf1e6e0cec59e116e12630", + "path": "//0", + "address": "5Tz9F29Kz1maMab7Gi1edfEh1kvviH71sHsQUBaNe3Eyn7zk" + }, + { + "private_key": + "17bd7ee7ac1ba4af3dc59b1fcd8409be693b229beae4eb6f137b68f61ad51f0263c00eccfad49f4cf67297d49d972140fb077384e19a16bef43ee2dff0f59078", + "public_key": + "aeb5f5c0b6c36f7c776b9dcdd703ce99897deb0e7be5553b3fc17386bb87aa62", + "path": "/1", + "address": "5Tb6m17MJseaEscv1zkrngMePMQ9veb4KSJW45C8A1FQk1g6" + }, + { + "private_key": + "e2f2cf578a1afea06134b0928d5cdbf59d0a5e16b3a1aa05f838285d46b75509448527031e47d645dcc9adb3d9b6ef2ac0a355e7191af09f51ea982ea62f1fc9", + "public_key": + "ccbf94cd4b2e98d7b2224d5c78889abc32ceb6fe8cf2c6cd9465e82aab5bb36f", + "path": "//hard", + "address": "5UGV46M3tQnpYwWDjuUswWmhDZZqk9kGqW4p2r6AXdsg44hG" + }, + { + "private_key": + "3d8f91d1f655649817f40afcd462b3ebb0521f4f304d5290184c236a45e0930f757abf777f4708c0e8d9d800014c923537353b1cdbe9614fa44df659173bc1c5", + "public_key": + "368e2e34fdadc2d4710662e6e2539c452fa4bd654561fc12368b294ce8126a72", + "path": "//1", + "address": "5QsZCLiXzezG31VZbGGUvrk6i3wyGfc7Qa8fPcbhppdFCwwr" + }, + { + "private_key": + "92858166bc01c7b18f3bb632400908ae2bbaf080a987dbf8cdac6ec1585f600cbe0b192b9a6595c5c130237b0f9d225b520f10bd911f48377ae8f1f18ff3052a", + "public_key": + "3c32ade147bc025cb6a4965eba2f99564d48380bfb8fa8c83476321249842f4b", + "path": "/0", + "address": "5QzxJUTsW7QXTPuVLjMqwBSYzDKXp5UfPaECiMAQnuagS8cW" + }, + { + "private_key": + "b5d13f05a758945cdb828699b787e4da553b93a4924087e44261f1036901890e2b82721b9b8ab35da6ff43f00ee2cfcda265ff4c3f56e351d35f21beb0b6460d", + "public_key": + "1850a18c53c2184798fdb842ae6f8816b37f4f82fdb104f10a906fa662e9ed4d", + "path": "//12", + "address": "5QBuUYoGUzVsQTLx6Up8cC9xQHbzWwxt4oB4FwJXeJQQVog4" + }, + { + "private_key": + "5df6346713cb657981c883e36bba308fe96fca9e232f644ba428f26c54f22e02fe5c1f3a659305fbbc82341f09e155867284ac63830c400d467633e6191054f7", + "public_key": + "9211910c411d7e5bfa2b29ba863b302fd3b4495b478cc01d3655ac90df6ee673", + "path": "/soft", + "address": "5SwYaohYbUaAzkS6fHFvWDCd1xPYntFmSLYirxrPytyeE66W" + } + ] + }, + { + "seed": "66c62c46a674091729b622e4eb93bdf803c99b20d1c9dd4b230adc2e708b03a1", + "private_key": + "fa2519df92524999978fc410a209399f6c37c688d22daac3343c8a2d7868df0c1bcfd9dadade0eb489cf2ec35facb2381963ceb907b3eda31d3a07387228fab0", + "public_key": + "1a0121f6f47cd958a1a321196195e6142853ba21266d3030ab56e54cd84d9727", + "path": "", + "address": "1b6aj68Gzai98qtdCeCucfpUkSTG5UdtuxD9hseusEroV6T", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "9adcb8e2bd9a5159c72bcf70e72329f3687f196b3fdbba68aeb785809b431008ff4d1178fa7092780c4ce75944d120ce30d321c74737a0a833dce2d3769d2618", + "public_key": + "be01c28d48d8a457413ae2bffc250e6fe6653e6008c9b6e1199ada43d9c7952a", + "path": "//0", + "address": "15J8d1ki5Ma9wsWtDhLtr6AD1PZny3Zktc2PbRycLAKRQ3km" + }, + { + "private_key": + "89ac16be7baa352d5d3d9772e2a8957aa7dd20f8ad35b836f47dbbe4f5b2f8071beb6cd7bf8c058d1666f680e084c8d1cf7b0844861e1b825bc91245826e8ea3", + "public_key": + "56b51abb647bc068e1ae904d6b09c3cbba45e718586daa592ae0d9fb256a224f", + "path": "/1", + "address": "12xgvCv8t61QmGJicBP8fQxJgupbbqgVxaucdy7vvwjGUYpg" + }, + { + "private_key": + "bf35a8dc5a1d19f355fe46534e5e0fc5a24390a25658e92c4e0b295fa160e10ef8766c96de001f8500605c5a7308dc4de57aae3f9a8c2ee42cddad201b42d6d7", + "public_key": + "721a777eddfcfee3da567d180b2a756153c473d08fed7069a79607981d9bb850", + "path": "//hard", + "address": "13acKdHjHnhcccEXw39wZTTA2UH8cpRSrwidgViMGujzN3eU" + }, + { + "private_key": + "ae107f79d74fda9e2f214762e29ce5e5faf3219d14b79f5693e8e7ea01ecef0e83e15fef2a38e435b87b97f6f585a3f92435169456d176dbd23ee5f545d49efd", + "public_key": + "327f7910ad1fdbb438d72034a847b52f0cdbab1c169b665677676d1767b6e364", + "path": "//1", + "address": "129DGB2B5FMZEvZhPjZ2fdvQAjm3dX4KniRCebpZ3ZCQaG1n" + }, + { + "private_key": + "c20c21c22d1bfaaab915bc13980474b0554b5e4b39ab3edb4e18c7dcb562e30a389827eb4c3f82bcfec8ca5decfbaec2651d7760f2aa0122eb5fdf395171ec5c", + "public_key": + "faff1c7efb5557629f4df66b363741d8720766b2f4778f8235eba9975bfc5a00", + "path": "/0", + "address": "16g6ko3MF3zHFXHWpzzRYfvJmKQ3MmV8akaEXVBWb529d8dK" + }, + { + "private_key": + "eac6021322952f17bd4583459ab40b7421950bb1db691c163a5d0f02665f5408cd0da0d073139726f6f527df109d2aa827cb5f96aa9edbda739035d38f2d7491", + "public_key": + "bade6e69d21e113605993a38bfe0d6893ff176cafc31a741a4821d5f2fec200c", + "path": "//12", + "address": "15E1yyyV4eo38hXxf2yx8XzGCre4gb8WWvT7oNZxEcQZDKKm" + }, + { + "private_key": + "6890be8b15c8fcf3a5c05828392b24c0be956dccb3e09e77971d9c9e1c2a260a97c59aa6bff3250bcd9be3e278843674a3c7ce51be7acbc6dfc48e2639a0487c", + "public_key": + "0a534fd6726a24823494e5119fda9edf9e516ba69f46ef08aafaaf246669902f", + "path": "/soft", + "address": "1EYECnS7LpWu9BRWLSEbLfSnGy4x3KS2qGsY75wwAhBuVSe" + } + ] + }, + { + "seed": "fd979005086b38865163df72d7c14ff61ac19aec687a0dcbbbc541b37b5cb420", + "private_key": + "b341018f6609713e4ff58f342204e7f886a91e41ab804f45e16429bf289bcc0fb838cbb7a7356e1723332529c48ad7d8cde812af9ab77951a6d29fd184dd7dec", + "public_key": + "c68a1028398e1294f4bcb3f91320e56f2a24bf20d49d32822689c6b09b6d8b18", + "path": "", + "address": "35EWfXGeKt2PWdYkQKiLbqVeCJHANsttDBZKbWJMMunx4kJQ", + "coin": "STAFI", + "child": [ + { + "private_key": + "15a0720b7dd320e7271bc41f57a4a8c69e59bdd42d475e1c47233b79918a0d0e8e73e92ba6ba8b66d4bacf6fd988da35494ab1dac96607cab3dea7fe92d550ac", + "public_key": + "88eb79a144970ef43604dbbbd7666b4b6226b985559091846510a6e2b961d02f", + "path": "//0", + "address": "33qidhVs7E8CsjuSNo2MpbammHTkiBdc8nKa6zFoFuCnHinq" + }, + { + "private_key": + "5494bb376f6c2e65a12c367f3330b6becc7177c49e7937d3389e0e81b1ec360ddfc31fe72308f2e56193058b3b5b23c657f4301a9983b0756cad29caaea01138", + "public_key": + "f28519f8902f42986c87572d9c58a35a9840de85b1b21108dcb55d1a43759359", + "path": "/1", + "address": "36EBJEhTUK3FjPbeZT3ucRmTvXcJVEpAXCzMtszWBafayUHr" + }, + { + "private_key": + "b8c3d949d25970f7096fda0a3611ea058b4785f17e6daa29b01dfe848162170ec7d75c1a3b89e73d24bb3306120253a5077f7421526fc647e26dcd7d4dcf6364", + "public_key": + "92af29f23ceaeca6f8fcf7a5122215f2871b2debeec9425ebd10f3ccb1a19543", + "path": "//hard", + "address": "344XCLHRgjADadVctLAfozY218qPimbLxsyoTGYiWw1uSv5F" + }, + { + "private_key": + "b84790eec3fd26c64dbf35e097fa0adf981ec76c663fde8d3709311be533600cb178ab1c9abffc63bb06806c31b7b3782b0b5f6bffa831f3b6f24ba40fc482ce", + "public_key": + "56352bea7197917074af5d483fffa2284e21fbd4caa171cfb089409472bd872a", + "path": "//1", + "address": "32hE5pHJYDYBLRCEeDGEED42ZhDBcx8QT78CzxKBZcUFnCQe" + }, + { + "private_key": + "1b4b43a7caf5688ebc02321bd1049fa4c2ff1c6ef527a6c77510350738cc9a017b47e60720f87d1af26254692e2a0abefd746d4f5b49250894b044398ab5c1bf", + "public_key": + "706e4fc551c5d25fde372ff2d0193fc968afbbbb5413785fb771fc5b9bd59b57", + "path": "/0", + "address": "33HcJXVAZVTFU6YMQzYnv7aeFstz7hoFL6o5XfR4nt6iY1AD" + }, + { + "private_key": + "46469b33a1468ccacab90c990311d3d88266a199e48962476b41cabc993c620c907867b9e5e78b667e99fa9eb1b9b0e6c6bb2e23c6b1b4ddbbfa98f95a19d8b1", + "public_key": + "d6248d915849086e35fd0ff3ccb45e040854b0de95769360ef890db110375c2f", + "path": "//12", + "address": "35ayGyrrn3RGANLwfybwrS499RjkreL6yGeSRC4JVLDPXeuF" + }, + { + "private_key": + "9b30db573a64a1fb835a2d7688c4832e9084bb344db92d616a947cd6f8675b06c58a5a53d61177684a964bb0e93f50ecd69da83898d7c62471e65ce02343f0cb", + "public_key": + "1aa595e8f75ea4321b799ed14d01a8fc1e9ea83d1d4548973806aff9db982d7c", + "path": "/soft", + "address": "31M8c2TtoBZmUa6aVT7NfJSSF8u8rUaDjTiH9Ncaej7rPUXP" + } + ] + }, + { + "seed": "60f7e21f6f38ec6e2fb68d549aecd42addac7607f60ed9a1b27e7c7e3fdd3f38", + "private_key": + "a0259b49c4cea06dfc07dc301d20973daa46d0b7251c1ac98152342e84680c0888de775659f0ed0afa534f8499e33889dbcd98b097a84d4a1bb7394b24dfd117", + "public_key": + "70d6624552456d8cd81781958b62eb393ea4e9d799be20be215e730b1ee4416e", + "path": "", + "address": "23RYdjEDu5JNnTHXST5FMsY1gUghiozr7ErNKh331Mm9tVKH", + "coin": "ACALA", + "child": [ + { + "private_key": + "3ef9932c7924cb84bac8f8caf742b866ab25679354c97d4e09281161d9a0550dd5573ee7578de5356cacb8902d0c6c26ef3e287d775b25171f804915288e8275", + "public_key": + "4a3e7d674446c2d720c5c0eb883683597ebb89adae8711b262cc527264c39640", + "path": "//0", + "address": "22Ywh7oTZx3NFESVMqA1dxxTLyi8sH2PidyZZM1zFbg97SCd" + }, + { + "private_key": + "47f2ed5e4482514b9ef823ef573fe8773b13696059642b232992b1c766ce2a0df8638f4a78ab901b06188ad2c70247b7c8e8fe61999cf304f5c300b98f655513", + "public_key": + "84d0ac67f1963751bf4237d630ed00675f4f1a66b31327213961b2623283e027", + "path": "/1", + "address": "23sjttQQ5zAYsaocFTTX72SFYZVXqah1UW9tstAtpxiSUL73" + }, + { + "private_key": + "6de582e3aa3cf61ea99c882e16c58f9b4d7cae3c10a91d15c5db3d2d76687c0b613a261ec3cdcbd06b0885ff5593aa090a6f27ebfe3208f7405f4635ff4e7f5d", + "public_key": + "40be910b4461f0ccbe875da9126d85e24c5fc57c5e29168c484ec5d6a7d7ff05", + "path": "//hard", + "address": "22LVG4AtBv5HUbtoXn3YbdfQu3bxcMgYascqBS5CF3RjJrx3" + }, + { + "private_key": + "cc82ea0217eb3068f237455d6afbbab3d196e9d38bc375608ce66cd624a0120d8d888be691a561f74acf9426a686882f6a8fe7b0f5b29d16876bd21c70687887", + "public_key": + "c80c0cabb01b347e0c54189a74a0ec2c54ab9ee7390b29d83884556bed40d252", + "path": "//1", + "address": "25PtjzWJxQ7CT84YadbhcAcpwjsxUysy7nqrCj4SXdQc9Hfm" + }, + { + "private_key": + "d0fce097958922ed589e6331ed7c4716ed5a937b530d7e446219ff645239130264002ccf3e3603727f23869098b3a663bedb090eb6173df1091d5d63c4910da7", + "public_key": + "d0dbcdd0ee39f942ce8b93a0f8566f517a7c4f4d415b2e3ca73de908bf6f9656", + "path": "/0", + "address": "25bSqjhhPrFFR4Qyx8KWFXantYwXuYuYWc26mj5sa5tqThPd" + }, + { + "private_key": + "5a14517b5d98b114ea49c10504779d6ff296b9cf846f4876e170d89adbe4560d45d62432f5b74342541c29d99c4c3d87589b45b63cc146feafb1a62990001ac5", + "public_key": + "ba81506a42eef09e89da38cf41b771357b02edd41cdd8b6c073eeeac9dee1c19", + "path": "//12", + "address": "2568uXqCxSyQUR8Sc2G31ogCCshD3nvxieWBY3j9vtLfvdBh" + }, + { + "private_key": + "2fefa887c162dbc8d479e4b16e38400e4510620c2b4a18ae4a39700b4b6a02001e93b64bf8c446314241b6e75b88f0721d16c35e2ea878375f316e4d21e27cd1", + "public_key": + "d209104e20e79a69f166b7f604f20ba2a1341ee4ed620b153dfe52d180d26c68", + "path": "/soft", + "address": "25czLKatZGZ8dyXgQADhQHxX7snK6aJTcS2jRoydXbfYxi8x" + } + ] + }, + { + "seed": "0063f1051151bf37f71a8236bf35b3677c6128fd6e82743412f5ebc5c1dbf89c", + "private_key": + "93864f7dbf5f69b2b14161d607e00d6cc0ce694b8c534ee96e61395fc45f4d0af1e75896da1cb5b4c0331909c52a30a90680c95cb8cb889a9105a65f1a9f801a", + "public_key": + "b82a3919cac860eddae5ce2286cb1a7a44d06ffe32b6175c72adbe7fd206be41", + "path": "", + "address": "15AUMWgdDCnnW5kPexTcpzjHgoCV8hAaaLNZSo1wYxtxAqsM", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "061f9e6c24ed49575e44d0e850784478851bf88e91e1515df89b50456a5f8c0e8bee82f56ed79cf961adb47a23fe9bf25a870ef6747b826d7b1403d6f80041c5", + "public_key": + "a8f6957870b56291afac4437b8e2eec30a9cddb4bcaea54438f624550fa7e932", + "path": "//0", + "address": "14pYJ8XMt2sffEroZ3BkDheNERNGxskj97gHZJDpPRdcGv1W" + }, + { + "private_key": + "e02e7153b639ee60e80f7af03d031319ee85a3c873b8dba741754ed79b623e036323bb8d682c1aaf9e232cec30263f5fad50352298bf899c7c478e30034fe710", + "public_key": + "bc75015b92c9777ecb69609292e7723144e56e2f786c3f89edf0471ad7178622", + "path": "/1", + "address": "15G6m6BHnmrkGxf6n5HTbWgNR8VJN4zXEAiYeW5nxfe8bzp7" + }, + { + "private_key": + "fe9c1c0008aadf56e8f17da8b8b7806ed4cb82893888e486006069308efe630833aa8e93b29fc2c588ae9e6820bacbb97990dd8bf875da6ed76fc590399ff971", + "public_key": + "72dccc3b17e6ee74da83a8d6cdba29f3c0e0849d1674e42cd9fbe71061698a72", + "path": "//hard", + "address": "13bc3sWM3YSu6LdjZAhkTLHoLsZHx2Jv6UteTE8dqPsPhURL" + }, + { + "private_key": + "356fb897ef8e14252784ea2b33c855a2c1f3f4166556e16d294530ace00c1a0eca48a69e601444c00027d5a338ccc85fd1c69d87925412b4e676e87ce9981d75", + "public_key": + "eec8829910cfeaa88c58753ad9170c125b16b915f1a17df8a112f40f10d84179", + "path": "//1", + "address": "16Q5xiB449MA3awgaAWmmy6ozHjiepBieciBiLKPmXZG2R9c" + }, + { + "private_key": + "7161145b91e9aa2fe3c801c933a30ec542e4d6a83adf265c6721f2492465460171181dc6c368699450c9d31f385d315e47cf93a83ad88665ca15376cf866d1ac", + "public_key": + "5cb1f399f10d34646291f10ba15b937f33baf496ad604f70ddbb3f6a6165a23d", + "path": "/0", + "address": "136YGYiphxLUS8dSEPpDuDvvWBJ4aFxiKwyfh3pFtvdq2Hz8" + }, + { + "private_key": + "bb9881c6bab434e62c68fdf5926775c41a8dabffe768af0a3f1e324a737b960abfd8ca34d71b31cf40fb0be6c71a4e03f09c85d7e2aacbff1eb0c6d584f20866", + "public_key": + "603120fea089cb9234ef2c2c425ea6da9244833adbe3888b95116247f4836e1a", + "path": "//12", + "address": "13B8C6PvkYcqAt8vByasgyqJHCqtMSq1E1UJoaqLmdvyiufN" + }, + { + "private_key": + "9056112fc0dfa59905d618a1e219bb03e0e6b1b8e05e2541942aa7300202440f6283e561680289082fef42327b2d1dde6f286a048e9cb0dee9401d7d26c7e619", + "public_key": + "642f94535b38357c8e6642fa7eeb7effa5068abbe69088a52bc45714ff8ce323", + "path": "/soft", + "address": "13GMvWJXbsHAxCQ5vB7wPFNmjVbhRpi7eq9cVRmTkHyQWNN4" + } + ] + }, + { + "seed": "b5148af6e1aea8077e487d373d1fd2c92fcc1688e7f4ae95aba9a0ea164d0cb5", + "private_key": + "4421b22b342f7e6ec74c685569d8eccab9a03b24f875e3268bfce650706e4f0c9df1a1912715d3613bd77ec91779050b6e9d73f1eff7d401748d1856902bd40b", + "public_key": + "8a699bbaa518c94e2d0232263a554e737718093c84e8c5f5f8ce27098a12162f", + "path": "", + "address": "33sg9hbkRRqsNBWk95ZNZEGbqhfJhFEKqcBCvVfaVNYiX7tZ", + "coin": "STAFI", + "child": [ + { + "private_key": + "2732c1bc0e9e4b8d110ddd1416ab2c0e317ed0123a34794c55110c7e7592a00892e0a7700df6ea5bea8cd9126195728998ed06373dd47b5c91a6a37d7283b68e", + "public_key": + "cc573eb3bb3b75b787da2020eabd38247d04ae073771f9f5c3665b52cf1e8722", + "path": "//0", + "address": "35N7rcKADQ9DGF8Ezc8WVz8cqyLMNNvGoKTWZnviqdt2sjsT" + }, + { + "private_key": + "c6e686d64b477d8dc2243875703810d16743f94e67c366e85525094b85c0650a03dfd5d192785dd619ba9135f85dd994de336c05884eda63b3999b4b14ae5678", + "public_key": + "0a48efc2dff282d63c1261040809c82ddab830f4981cbc45058b8c46880c3f40", + "path": "/1", + "address": "2zygKHQLouLi4s3LbQRUjgTZwcrrKQTgKe6aKVmkejtZ64hh" + }, + { + "private_key": + "84136ba6cc0327037767df8c2b2ad212acb0cdb74b5e9c22e515479a97069c0c162056ba0fa3bd148419e141c44733d26e39ab22a15aaeed4706877ad96f1fe6", + "public_key": + "62cdf4b3f154d7625fcae6b04cbb65e83da5c9dffb8a4dca68cc85f2c1cb5535", + "path": "//hard", + "address": "32yk3ZDx5qxYiLw7onrtJJrXLmUdJiw7tZ4AQKhkuZsPPNBj" + }, + { + "private_key": + "8b106cf35e5d06f269743de1cae5259746582c6bd62e53af17957af2e64c8f0cfe4cdce18ec660d20a78d30eb870fd6a1acf12be22eae64a97b0c98c21cce2ed", + "public_key": + "70a17a718c331b15389afee2be4987bfd6879bccf22c687f41462a37efb4b82b", + "path": "//1", + "address": "33HsW7DWZPQEsKkjVsin1ychvGrimGebGq79ihMJF37D1QsD" + }, + { + "private_key": + "e7407bfcffc8ef1c4a2c071891d0ee7364a942833768ebc373f4e76a6066fc07eb798bea4b69b9a15b96b2acb2ebe2dc1008e0eaff5ed7056cfd4d7ea1da5d53", + "public_key": + "7c1ecbe395e42bc4ed302d83c81dc11d5266d9e4af8d71c6cab468d0bb817477", + "path": "/0", + "address": "33YwFqfQLsUdKP9hybHB4WpTuv992sHmGgc933g7x1tSJXVA" + }, + { + "private_key": + "9305db996d0a2417954dca4a5dcbe7cd0fe73f0389e386e2695ef18bd0c9a40b143e56f548fea05a5c60e2a9cec9729057e2f5a14c65b0d26f59bb13bc0b0d63", + "public_key": + "247561388108e6fa9f86e833f8ad28fbe323bde9a2f02138743a611d1859080e", + "path": "//12", + "address": "31ZzmEReKJZXvyTEQSniBgWjumLLM75pVeS9SRaLrWW3ERL8" + }, + { + "private_key": + "923596784785b2c1be81790185dd00b8bd94872931a9dff7a5dab4172ce45f00dfb1d54bb0d7625cada7a2f691e79a9ff5bfe6c040b47c9fb8e2bf7f14996990", + "public_key": + "cea3ad727c33e62f6206c8fd66decc1ac6c1f880e639859842933faac3139c08", + "path": "/soft", + "address": "35R8f4rdzgcJkSD82KfsKeurNTjeCnaHMf6a23w8ZWr1fZ9B" + } + ] + }, + { + "seed": "1571c51205ae4815b151987bdedc8ad71320143fef4225d72d8e7485fef8d1ce", + "private_key": + "209a1fafcfff4ddc93c8f9ed7bc3ffd8b129f092959cfc1351c6e57beb415d0d40e5e375a09deeaf1b00b1987680f9a16018bad4f9650fa97e9f701d925e3a26", + "public_key": + "6678be43b4933b8d7e3918630f779f3eb3005d4cc9dd182d9da2ee83c1f44e22", + "path": "", + "address": "5RxP8J8NDAsdY3BH55JJdfVwacQ5atxtBrksGx778qaqa6yg", + "coin": "CHAINX", + "child": [ + { + "private_key": + "87afd33ecbcb14cf11af08b6eac4ce3a624d86ae773f52283fa24eb11382de0ff8f73e665c1643b4c6210832542ef8a19882ca887ec609dc4f8a3ce77de7502f", + "public_key": + "14ac76b71022644305788fb02febb1576c3f048cfe1d1f93e33fc9389ee7791a", + "path": "//0", + "address": "5Q78ZgQ7EaKKLkzKRidsPfKDkRyJJCZSigCVBhHzaXhWnG8U" + }, + { + "private_key": + "8f37b4125f5e2c02d5dc2e7ad3b56ea78e2a098b30d2fcc950fbc9c561f9ca06991d3a50229a20ed8e6820081c3a36d8db12bb713c0560aa2efaea8a2045bd80", + "public_key": + "4e6b8b8624eb56664dccd6a39b0c7340da10c480d119e620646aae79f9dba953", + "path": "/1", + "address": "5RQr4EvPAuQT9T8q5nDZK6UyxWUtGKn19p5Ex8Grt2vKRDbT" + }, + { + "private_key": + "70d49688052eca4bdfb9741845461a5db53d1eea5d5986ef243064605655d40db82c041d9001eb7360a9997f6217048f1d12fa36deb8104dfbc1839377ad539a", + "public_key": + "1a56ef619bc65d6ec3421c0df0eeccd22da14d379b22e3984dd4d8ced7012224", + "path": "//hard", + "address": "5QEZSihGkDssy3NQD25NUCzcx4kxg1VYkK1ftAnKfmEHBAFq" + }, + { + "private_key": + "abbac4ab69b1704111ef0ccedb2a71d0c80d2d5216d5fd4990be44388f54d70ab46f89108d1d9ebc28dcc0a60dc92618ed44963b6b000537a8047f6dab6dd4ed", + "public_key": + "fa93d09ebd0b2049c1e4ed60daa82e876ab4720dbdefb891b9f9e16558f93c70", + "path": "//1", + "address": "5VJaFmnXtLRMgBcAJcR6xU3XpMBj4D3CkKQ5hDMDWLTa1qvn" + }, + { + "private_key": + "01e32979e46613c22081522a8761e608fda24f4bf60bf47317097a3e5634b708808b7a7121eb0b04c9ea61a3239043c3b3d992dc5b031058f205b4bea472feb6", + "public_key": + "64e2b9d6f7b95d278bfadf20d2a102bfbc06f888800f7fff87e66f92b2330b7a", + "path": "/0", + "address": "5RvJWnG6MCHFYMJg2KJKRnxDxh8xviuT4wMHYc3qLjh4HAka" + }, + { + "private_key": + "1e72d20da98abdb623f174ce1270f26387b0e2468e0103868b44e1655911440cd1b17658bf04369bb61453fb5228d4f544430bcb23558f59d4554fef3b7dc771", + "public_key": + "84aef2fa47376a1bd275c3c199a09723b017d57163ce5c0d9b8939b5e5850831", + "path": "//12", + "address": "5SdzfZXTq8MUPrxxjLPgW9rD32gbZbAqyodKfZG6T6zkxW54" + }, + { + "private_key": + "20593116a73de9acec644de181af311134592d45f0652c43eadb670ef273ef0edac10a99f2e0ea3c72aef0a6fe43f7ee81fc351ff515c3c14f8ca3fa96f7ce39", + "public_key": + "4851229d133381282838ac48aaf9d6a511eb318b18961b36f1820de0c8d98e34", + "path": "/soft", + "address": "5RGqvYewE32D2pVGzbmZ87nhCHBKLK9uu3JUMXgMPHzxQkbP" + } + ] + }, + { + "seed": "d5db556e76df6b49eae9140e585ef756b4877fc4fcc6c9e74cd376cb1ea446fd", + "private_key": + "60e04ed8041ce202a3c10e7b1be26dcad92bd64f267380d04347be98f0d82c09afaa52452e6fbc285c3bb145f626045723cfca190eec0f2b66f68907a2b74997", + "public_key": + "d0a8c647a15cdf2458d3cdb271007fa9951f03cc80ae482dabfc96930cee4f1a", + "path": "", + "address": "35TnGSYYWnVvCCHLtd2S2Bz5t8F7Cbr7eYJz3R9tX5ckUBHE", + "coin": "STAFI", + "child": [ + { + "private_key": + "c50b9d9cd014ca01f49e0951d585f39590d0059c051c961cb39253438d010609ae65c76da1e36248e18df2d1e830c42d799a3b6e81c93435c582756bef7c016c", + "public_key": + "8085cbbc8335838951f1ef19d4ee73a63b382cb03c79e703299c31fac3e04528", + "path": "//0", + "address": "33ei3b2YUMAosWFEpaWnZrb5bH1avQF1MGmk29xsZAEXRSFh" + }, + { + "private_key": + "da69e2c6278a731de9291a5aec0979a7321899e761b0465e288807c64c744b0f813baa2ae3224dcdb732c01eb4ae64317c524de4a40195e2608e27b2079b77ba", + "public_key": + "42552df2a984fda59816777b15f2011643e005acd2faad216acce4d666464d46", + "path": "/1", + "address": "32FAdkfdvkidgaf2WbMKc3mB1FPXtuYyeDvdJCdJC2LLbDUW" + }, + { + "private_key": + "14949e0c16fe4281c50193d7f6785eef5e0e784e91e35b243bc43baa6ac0ca0a699e56efbe19d046df16b39ff6122ff142a2e1ab70ee0152a8e44106e72fafb7", + "public_key": + "5ee08361f60e2b278bfd9a738be888fd0a580484b91fb636c967fc21fceab10f", + "path": "//hard", + "address": "32tbNBYtueEw3WWxz68VZwjE5bp6qPs5Uy4Rgmhs9HgygsQo" + }, + { + "private_key": + "b5d7451898da5c71c6447cc95b4a72c4434d194804c8fdab5208585d34ea310ea133d56b8c891429206a92731f169be2ba09333cb96a226a89eca1367c03aa37", + "public_key": + "044d8d9d09dbf7995cdbf0d1bea52237d8d2e168054662826caa3f324d1ef020", + "path": "//1", + "address": "2zqqQAMVhVhURrvrz3gtqxYiB5UKFJtaZSJdPH1wLDdCtFMB" + }, + { + "private_key": + "10223d9d2ca785f6f60a4ce3efffe1a32615ae1b4cdc9a7261eb342d52817e0df493043dc3f1094d9c331d6cf1523cdc3d0e5665ed715e056bacb0e0d46674cb", + "public_key": + "a6adb91dbb4a01c0b00aa184211d858a442b21abb95aad223e1c90ca4d2d5835", + "path": "/0", + "address": "34Wjj4D4XMJTJidmGWUc3KqsSujW2iy7P289SDapGfDiS5y6" + }, + { + "private_key": + "7f0d1b10a2bf5ece6392f4bff8aa4ba569915143219eb8d6457f46225491f60b4a9f7548ef819441c7f65786701f1937956568b947e6a4670eaca5a50fd55246", + "public_key": + "167d98d1f9abc066d48917123266c8ca3308da9c0a3b098d7b18a44b7dfc946b", + "path": "//12", + "address": "31FgXvpSGv68Px7M6rfVAXytAfs74A6Xk5cnHfrj3rFAZ79J" + }, + { + "private_key": + "00ac912fa809b577b75231df320ce53738132037a0ba66a0d37692779738c404a727b4af856fe153c79c78dd90e8d89fecbca001f48d996bb83e9093688a8f0a", + "public_key": + "b2acbc2ed8393b87401e071bf3dd30edc56b5df9548a56bb87cd94b68be29e69", + "path": "/soft", + "address": "34nU1Mscbw9reK2fpsGzvXamQi4KkuAGwgXyRdGUiJHfKecN" + } + ] + }, + { + "seed": "bd9c88138acaec641dd0dbe06de2c4a1aa9444a9835ac3c7ad73e285459bf6cb", + "private_key": + "78f5ea9d2ead7957431ca16bc35a691f278cbdfc7db349a6dd089fe73925db0c4ba6394bf071e7f0bb3794ceda2509c83c780c2f9f80cddcd2fa8056167cb02d", + "public_key": + "1af22dfa47ee32ba87342ab0eb5e706aaf9ea3864241e320a951ea280e45491e", + "path": "", + "address": "31MXMi9Lx25MaHz9K3ysRH8cgrnaLZbY3wNu9QtSuiesUKEU", + "coin": "STAFI", + "child": [ + { + "private_key": + "3791c1f1f78344bd8ed9916513f5c7433f019ac10c905b025dd8bcf5379fc20c56f31566ca0397fdda38c5d1a585b591bac850fa7c11ed5ba2ccbe858a4c6df5", + "public_key": + "9aa4552b0f4759e239933bd9435affa769afddcce2ea323bf08fa822d5372120", + "path": "//0", + "address": "34ExMwCBGMqzXE632w8q2M1DTY19SUNeYq8kWPEGcvcNKjHj" + }, + { + "private_key": + "8f9a114d3335d4237e34c0c2db09da5f6a62483da90dd788c4b7988a1b361809e67132244faf616a84de4c4d7ac9166085cd80a3aa830fea76a2fcde036ed264", + "public_key": + "ee8ee1d99b319d0a07697ff9a8f424574f1df0848c669c5876698c2973e29f45", + "path": "/1", + "address": "368z1eTS1MfHWuZADFMRu15fskHyG8YD9PwQK9SWP2Si6mx7" + }, + { + "private_key": + "3ce53aa06b0eed649568ac74bc0c1c3b14d3a9d01b6ca4de386994e01617d90cd78ee8d0a285e0b00e4ed8b0e4e04d2ce0a8c33ccad6b3004b49e5e4024b6bcf", + "public_key": + "e213a5be355cfd48f59393e189847340c1def327325b8aedddbbf8c374e1fc24", + "path": "//hard", + "address": "35rcq2rayArdcD7NxS2X7wh1gnpiE1A8e9ZC5Qt8zpoxev3r" + }, + { + "private_key": + "bd46e6a1a46b4c2c5f6a791b65241c31d0f0b75920c453fbd1d7235dc448e109b59cc48e377ea62cbb4db549bb72a62520958ba30db7a67bcef43505168d85db", + "public_key": + "1056c0b4f44e585d0c99e05f75cae354fb7da479c7d67d29d9d6d05d342fe72d", + "path": "//1", + "address": "317chzfLixigUDC5VSLXJe6APi1kXk5gfpAP3KCVAmaW3LEB" + }, + { + "private_key": + "ec945dac98df7d34a96ffa0c5b91bc90203e29bcf18b05daefa683c7b9ce0c08b03e23fa018d565669a6681bf328c75be7806571830d9203acfa27dbc2f2a3e0", + "public_key": + "2642ccbb606be2fcb778548d13812fa1267470d06caa576ff181af5f3673ba60", + "path": "/0", + "address": "31cMqK7sV63vGrSUdwRk3yAbZnVxiQKJHv7oCXXjL1vc3FFZ" + }, + { + "private_key": + "58124f86a09f7d88a13ee14f6122226fd9c688e7cb4507aa29f2ff33ffd0170c939139bf97f8e16f48a74c66aa8814bd1dbad3d0881ec3f8672f528cad6ae946", + "public_key": + "b858f8f291c8af071e7638ca90135a9057e3ed2ecd3ad75c1ff8b6afe231617b", + "path": "//12", + "address": "34uuQpyKuaDbdLxLAz62kp3La5TNVyf8p1uXCWUXUqs7LFhD" + }, + { + "private_key": + "44e35afb5c6e9f5842cefad7b4cf247ecf0d36075af88ac9e88a52a1971e920671058f34dd481540aa3bd81da1d4ab0ef87c2bcb713d7e558ba34fecd418f339", + "public_key": + "d29321b98c65b636a402dbf1122503c84c6c4d63de3ad3190e7b5a97285b410b", + "path": "/soft", + "address": "35WHw6i13XmnKJiex4WJVvXfLWTteFZZjULcUVeQrihQphY2" + } + ] + }, + { + "seed": "b372588cf32369927c31c806635934549963043cb73a5b75d79ab71fe90796b3", + "private_key": + "93ee6d622d5fcbceb3fc65cea45b1bb05d59031c276f0c4d02c949abf066340c5f817e73f2e5edc9faf49e768ca8708e49c8ea6ea635427806c062ff939f25dc", + "public_key": + "d6a53176adce5e78797c8d265cf0a5a9291c591294787b77b6155c570915825f", + "path": "", + "address": "15rSKZMWoZkegv6Szu6zdmZmsFKDoWWeMb95ffFsd25eQ592", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "1add626debb90e7bfc263e64c360ff7b0b1bfd613afc2b5e40de1c8a7408810bbd9eed0480a7c94b22cc952895949a17e09c1255301e203e2669378cb8f1de16", + "public_key": + "ec395d0e7596936ca981b479b13776c8ed9c5be87a34604fdff2de2378bc6348", + "path": "//0", + "address": "16LjLoAd93rpji3m5ULzqhFdf4KoZAuZXztLa5rZkV2sSjhH" + }, + { + "private_key": + "57b114463cdcc444a14f51f408c603571d9a7e3d4ddbf87f47696c54cd81df059a840412aaf6f946c36bea67221a5dff48bb64816038cad2c8e73d6b3d72e9db", + "public_key": + "cac1738dba868153dd568633037347032dbaeef864683d2f55f0443d6ec0a130", + "path": "/1", + "address": "15ar97Ccu5rfH36pCeXf9d64ND88BLVZAou3d6vmyKqHr7WV" + }, + { + "private_key": + "2d64a41af3cf9ddf7bc87a0bb29bd2772af6013dfc886e54862887945c995009ea31cf6dc338512cf15b716017e6ff3099fbd46820872417a90628a06c3cf038", + "public_key": + "1878214ff284a38b122726bdf54835103c58794ea28961f0399eedc9d0da1477", + "path": "//hard", + "address": "1Z5qT4mTwZQQF3jypHayXJbZP4gSNQRyXndFmyohZqyNGm8" + }, + { + "private_key": + "f63e921f07d7728d2bbc9decb3cc4abef1c5791d55ee39e9e6f38998363bc608be6b285775685094de84fdbee8fb211707347384ccba12c6cf85ea50bd7372f6", + "public_key": + "9ae4d4b1add1842db6a05fc6bfc8d187927bc130a8c3aa2d5422e52ed235da52", + "path": "//1", + "address": "14W6MNSfozgpXAvYSpRMjnT7o3dWYPcenZ34wV1wgPopff3Z" + }, + { + "private_key": + "0d0cdd679d6d098a4e032178cf6bc2a0c207058577de12d736ebfb426e50b90cb9e4a7da4d235f6136e92c029320d47d3865978c8abc09688a0a43a83bd51a9a", + "public_key": + "fe61946a70c14eec490f5278ad82116828a257584c28d347de1c3cb62c5d033a", + "path": "/0", + "address": "16kY9hT4zKsLTRQ56YRJnpxGUpkDNCEb34Kn2MFMZt1SU2So" + }, + { + "private_key": + "f2180232f82c8dbc78da427fa1100f6b0ea68299d72c5469c98fc4a2d8b1ab0974e77fc2ecf273a26c2fd80b7d3c0cb7fe693d8734de877da2979dcfeeca0e18", + "public_key": + "de2a219ae1ce929045b6d1fae071916c7b3c77a4dedd690f164d160b1873f861", + "path": "//12", + "address": "162J9UAU1T75xPS7V16WEBzvqeDzsB6PLFL9g4H3gN86M2U2" + }, + { + "private_key": + "616319d89bd295f1ae1c6dd8843f194be3d6745ec957ba7cbd1612c4fb6e910439d881e7e98acfac4996516704f9e08df650231e4020602ba9ea7048044b6e52", + "public_key": + "9cfcd8cf8a1ed7685ce4bb289f3e1fca1c2a93ff7f9d348c60c1dc5519373564", + "path": "/soft", + "address": "14YqaiHNA5PpXCxybwaBovfp6FbefUi5DqUcapyfBP5pDL88" + } + ] + }, + { + "seed": "1be6a50e2758cca32655b7986b4f1645da14b16f2614f016a6205da738af84be", + "private_key": + "60d4e76944d8cf0375b974427662ab7ab4f81a8c0007fde0a33d6ec72b28600a94092b48b47330e48e3c3075294cc593827f34376849e21f506f58de149c0f92", + "public_key": + "1cdbe7435b25061fa6c7a48d53472eee07757f13dc8f88c04e862af0686bb575", + "path": "", + "address": "DEABbZNmZcpBbcyatxjn8w19zdbWWMSncS7cg2p4ozMgEkW", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "317981a36994c55692e1c470c8915d02f032bb57b201d6810cc98a5e6e533909e4967aa4eae06b10478ee0fd20366de7cf9964f703f44e4ab30fc79143c487c3", + "public_key": + "b660d40bcebc17960f17e0c20f2285055adb5eb41d4ebaf814674554b0873a7f", + "path": "//0", + "address": "GhSzmYWWFzvy9pnWBzUU8x1gn9gbgTabKMwK1oQKGWUKp6N" + }, + { + "private_key": + "25e94a27c41caeba31af2ad3942a73affee4443b19e9dab432e67e8afc48b605b086c457d535e9021c59f983bd8e01138ff2690424bb80c145af282bc6a523d8", + "public_key": + "82b1d646c8af3ee855d93107548fee822833c86abe8302a721f5173fe854c20f", + "path": "/1", + "address": "FXga6XihCjKpVYUd3TVxwJVpCfNBaB8pJ5FkYY5MuZR4BRJ" + }, + { + "private_key": + "3be567c108ed413f7284adda0a00bea27bc345ca1d6f41f1ef43e84614e4df0fd8b8e3db075f9c5598a162a31a8ad3968656e4f6d8598c70a028e089d2a7b147", + "public_key": + "4e7da6f6cd1f5ec77f96e25cd6ce973122fee385b0666805be63526478f9d02f", + "path": "//hard", + "address": "EMEaYzmDahqgQENtfRN6M2wVeicCcBzDZtFnSKMYgg6GuyQ" + }, + { + "private_key": + "26e1d25a16adf81b8f7bfb7e195b7cbc5740e1cf82915b38883ccb6351e81c0bc7bd4759a8be27bfb1216152e62312f5c83c5c76b61afd537763363b47039424", + "public_key": + "567b48077dce4947e821fbd607662587d7fa3cc3e923a87d03f7539ea5234255", + "path": "//1", + "address": "EXiFvT6V2gQbs1txefMAUrAy6zWdDYNDSKY2RdeDEDWAiQb" + }, + { + "private_key": + "9d9f998053523bffb7c29d21f2576f07ab1234c16be2fb6623a8a60daebfb60aaca2b9cd630ade840d350b2ed778a25418573c74336a10a2caf47478c65cdb38", + "public_key": + "28f60bbea2fc1969f17ead077ce26d6137fb4f38238d1746200e8324b4db4d07", + "path": "/0", + "address": "DW2XMDHW7vStsNtZHAarc5BXizoKswrGRc59RqEiTwNAo8Y" + }, + { + "private_key": + "7e2922c57e38653b64e17fb1df4beb7bc92594979c990809ac71bfde65c4a109f7c502980ec0ec0ff86a4ed4e1284ca1d450f89f9e26d91bffa2d20513280024", + "public_key": + "2280c5c83939ddf9985b5ffd2085ed92b20e0a20212c1c1ced2c8ad8e8319a2c", + "path": "//12", + "address": "DMZQ7YaXpmtv9a1yoj18wbfdmpDSMmJzhkLjcWarUXbpAHU" + }, + { + "private_key": + "6e0e2897182b87c0f82c039bf293da8ddd7c4bfd209c30bb3fed2d103e9aa10e8e03e36c611b1453a5ec184268948011b4013c46a706cc19586d4b08769268a3", + "public_key": + "f0b12dc7eda736fec4042b5efa993d5ced0df8352c36248122346f7021bf761d", + "path": "/soft", + "address": "J1ueG3tSGtrJpU4DJ5ErV6GGqrYx4WhkSWYdRE8GxEkmoDF" + } + ] + }, + { + "seed": "43bdd899f8d21cde3f63cc5975f196f511c12799b1259b898c5901c66ef42c6e", + "private_key": + "129391c7001b68db74ca986ac2a784acb588d8136cd860f6d955de19ce08fd0ebad8ffd815f333264cdd35f8d7a6d932a5a6862df097536925b80347a6f8ab34", + "public_key": + "c0b5d24240d1e3c4bfb5940eded627cb2f61c1ae568561c9f7fd43eda3c14915", + "path": "", + "address": "GvziwL9u3mDHFzpCFpxFHsBdgqDfCK3n5nAbf5ZfSQwrtJu", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "be1aad84225e97c0aadde3b041ad107e9c7fa928330fcb41633ac8204542b208178834aa2f044aab86c9c2bf8c7611ee61b0badf57326d3f2c040496aae2855e", + "public_key": + "56c0f345ebc1f99b3347757312b0f6424f7c5828df3b67a65f8f89b99e23de6c", + "path": "//0", + "address": "EY4xHmbdZqiwLddr1fFP8wfugPycZRtE2zDBJAf6L1BanoD" + }, + { + "private_key": + "7684aaae51e2be0926c62f8352d0ab1d4612e498108bfdaf0e81a91114f198060d930846fda5cc6ba0d030a958cee8311f136c42ec68971f275f584f937a2873", + "public_key": + "32f1506afb57b93af3127fbf82ff35d50f36132dca0051a222c3f677fe132379", + "path": "/1", + "address": "Dj7bbYPBxCHwvSYRqGmUWkWCeCiDwLXu8wdLHPU4MXa76HD" + }, + { + "private_key": + "904f64a15c871eb8608d211ed47914563c1bc06b52d7311cbafc1f797784750beacb690a25233a2e4c057a205b420063e2296b2da55bac1f909820b886b7e75f", + "public_key": + "0eb30ab6da904fb37a3ebe029c9a9f10079fa34cfaedd01fd47effecf9e22368", + "path": "//hard", + "address": "CubNgnGcBJ69XcmbcqRPuuucMdEefKGWnCVe9RuZQKafkQo" + }, + { + "private_key": + "2253c8e707ba24af0e9d908f8d3bfc4e79fc0f556e083acb05181b3a419e1d09d36b7274f41fa08082500cae7efbcfca826624bf4f6ab84ab180b2142e4df73a", + "public_key": + "1e9872c916b4a5899f60c4f33a6f17fea31fd4c9651129b93bffca1e76e18871", + "path": "//1", + "address": "DGSEvpstrERd7dyGFQXnCKBi6tBNKHJ2s6NQPV6N6Axfhjc" + }, + { + "private_key": + "92ec5056f9c4b79c2cccf3c8e94fb1a64f4ce9ff268770622639c553fa901e06ecfce5758c01f4025e32beca7a080cc8d227cec4dec3eb1c47e7a686c0089e70", + "public_key": + "6aad6c71e8cc35904fda3021778e86b89c22b28c9923a593ba38cc6a81357f14", + "path": "/0", + "address": "EzC7Q82hC3hRkeG6NED2C2Y3QuGDMkJkpr499Xj8G7VazXn" + }, + { + "private_key": + "ecf9fef5bf413dda48845adff75ba6a7cd57115060ee7018de492dd3911b710d2f610afaa6d08dadca652e5a073e57a1505962907019e4a0e2f7b97bf281723b", + "public_key": + "aeed4fd3a47b7d5e13c0589104cae35920e74f662caaca3b900d2d5821b9d50e", + "path": "//12", + "address": "GXgM2QEbnwJTGrMwDrXTaV63Wa8kq6cfqRVMd5Xo2vpY2zM" + }, + { + "private_key": + "17eb630b1947ced577054397ad1bca18698d94b6466f1cc256086cf0210caa0cdc4d705e5e20ae87972b1e68959e13c0b7a4bc4f6d6cae70670b3ddd028b9df5", + "public_key": + "8ab1929c39ba80cf0e41b9f76b9d3cedfb06634be82392feb2c4d9ce2d55595b", + "path": "/soft", + "address": "FiAsm4c3aKQLLiC1CyTQuEdqfhbwyR2RGqG79v9aeVsj82C" + } + ] + }, + { + "seed": "5a53676f7c9e00445b68aa0e34547f42329f8434c94752701edebee7984ffff7", + "private_key": + "1f0613713cff2516c488c20a1e232a77dc0635c47b868f1e30f07d8f743e620f7cae0e37bd8f327b6eb3e33fab6b3225dbba57c4a78766cae6215fe3d2cbe639", + "public_key": + "c85182014eedb4eefed06db5ba1e21d48a85fe3cb9983ab2527f560fd35d6a46", + "path": "", + "address": "5UAgATo1rE6GapHKqXfCY2J7awhD9Ve5wdEKcwyzmc21JetR", + "coin": "CHAINX", + "child": [ + { + "private_key": + "f30bf0a4c0497350ce1671cdb82cc626f059fefd62d2b8fee3aebcb1632ed60be8848d89bb8c5e789c3424fd715b96776ea783327b47f08a6a08ad1ea83a154a", + "public_key": + "4e1f572120b43acddcfe36cb3feb8462e9b0227097b66676dfb6b6cc5ea96471", + "path": "//0", + "address": "5RQTRGKg9CzVp8cs1gYpQY9BsBJdLAqHSULF2vK69KuGn35x" + }, + { + "private_key": + "c30fa31383a38d0809fc4c138cbe585c4c3cdc5f7462e55f8686069f0db9fe08e963f363cbe7e19e01ff4654decb95f21878ab5e304604cfab41b0030b57de11", + "public_key": + "e436abd544551d2864b45e7edfab5d4e33f1400cd1a72cc6c20a08c6f99c5902", + "path": "/1", + "address": "5UoFXqsqNmSdCBztiUSXLqa1oT3MVGrboCNNt9pTU5eVKgfY" + }, + { + "private_key": + "fa3b358e59c93476dcdf23f9d64167a0165185cb612e2180678a78ca0ff3050ce0736fe483a7dc3e8b33f6fb405d6fed0255f76b2f9d959410be60253a569fbe", + "public_key": + "6ae85a21503b913fe09c5382ca704e06a7a89fc95a7924222339b2ec0b71ec2a", + "path": "//hard", + "address": "5S4CUP4DGtY52aAEmweA1DusUu1LxbREn5td46jsJAwA5UVV" + }, + { + "private_key": + "c8361ca140f2d89bf20fb3ec59f7779e6e7582f632a722d36d2649ba90365e0a97acc54f8b8186b09d94836ad96525e5e93a0ef5ed5647f7f068ef8911771682", + "public_key": + "b0d4167ba772ce37f4b4292bbffadb3b66613e78d771a38d72c6dfab0cfdb22c", + "path": "//1", + "address": "5TdsoeYcDD1fMiVYgVdVQCMgcySY5WHVRvaseNZsEL5WqXvQ" + }, + { + "private_key": + "310481c2ce2af598f4958b802852e630833bbbdc55a2048b974a3da122e3180de83fefffd4e68b98c405e2c5fec599f45b90f5e5190e7004c766c39fc0759002", + "public_key": + "0c40e8d97b7b66e831907ac7506d08caf5b5132719256cb34ce622304baa1e24", + "path": "/0", + "address": "5Pv6EM3xLbyrJYYrFDdCqVW7RpfRP6NhUHKbZ1TTCoATXnmZ" + }, + { + "private_key": + "050e704f573615b8d7d7acd8621def861fd4bf9c4beee49657f981565511150c6a1265f8a87dc25ed3877763e923ec09255ef92efaf081308b41f5f9ba35b417", + "public_key": + "56d0ff3060b0b63687968b2d24c55ada92862db1d9909106e3ad780e7a0f287a", + "path": "//12", + "address": "5RbraS6JQFMFfbVoXjxQGtTH3y8QFEt2XLHA3TJgDc9gHeHq" + }, + { + "private_key": + "31e7e0fe13af7003e7b8c074df97d4e6b244a72e96133380d342f2f5800108036d13451e371c090fd9a8f8f0d5459a297546c14ec80f7ef944d14c0b48b63233", + "public_key": + "4cc9fb1e35bc6abdab5ad574780aab6998934b63e3b3b6d8f83b5dd91d37f434", + "path": "/soft", + "address": "5RNi1n9CjfV1ZDtfPirLDthsYDuVQsJCy6NrfjQsNsHJeeqn" + } + ] + }, + { + "seed": "e4e592abc8facfaaca13e6cb1e917502d7c3454192869a115d87b9fa22094e9c", + "private_key": + "fd97f1574715242eb9effcca27a026556e624689b337b2fbbee9a4d6f6f17d0e6f91741b5828d53accb4c6b8109f94aa2053062a0344caaf0cfe36743c8ed05c", + "public_key": + "54c57b2cf2b1d55ff17c44865dcd6efbe0c1c2c89c13ef0ff5997a74577aa95b", + "path": "", + "address": "22nkGjhuUgUiuYgdLGMrYiuE79ZuNaMz1gRT31vc15suHJwk", + "coin": "ACALA", + "child": [ + { + "private_key": + "0520ea8e0bf28eb487f69f57f827bb3435ee88fdcbc6a08284e6fa08afc1230fe822ff4b172f9c129398ad0dee7682abc04dcd5b22568ae7f8877648b0ca4cf3", + "public_key": + "cc20b770803cf4b7b0655306a2d215f217dcabd7938679514640cd7443c75d6f", + "path": "//0", + "address": "25VF5Bncg8k8AdiTvvUqQZ4ooHtzeAXjo15ckFf42canAWLg" + }, + { + "private_key": + "b9971eda9dd17798e850f77ae9e4014e11231fbd4ba2d6640f69694040909700d29f9b47364a5c08246e6cc921f3c9f8995683bc3c71a2a06afd596c8f202044", + "public_key": + "f874d7b16ae1a544f71003d07d85d3c105bece6dbfedbd8a42499a4a0443c61a", + "path": "/1", + "address": "26VNAqzwyMf4qXj85YibLFkEF7fHUTn4FFjHPuFb3UB8KPTs" + }, + { + "private_key": + "1fe0384d12f8b67107457f5b3e489b6fc39a6d2ff4c506bf842adffa742e3d08af88f783d9680dce348bc47f9eed242da638587c9c7f538058c7df45d5402e39", + "public_key": + "4eaa994e0b697cee5ffddfdccd28e6f80a4019dfda5284be54cafb72d3338812", + "path": "//hard", + "address": "22ejzuG7mSa4bjDjEfyWG5uHmbWLBgqwh8UeQr63KuZv7AWY" + }, + { + "private_key": + "68d5116c7d67261ab70d898e292cfeb001378c910633fdf84018c6915b88970b46b8edbb82a891a2ce0b65eb09e774a554f7bd63dc0d3360cbaf0719aff2ea88", + "public_key": + "740833b3219984c94fae37ffec48960aab7ca7acbb4d3939f4a81554ef1ebe01", + "path": "//1", + "address": "23VjaQXMHfSWQCvWvANJt482Wsf1TAEaX5mzMXZMBfo1NeFX" + }, + { + "private_key": + "2ecf5ea43231f24ea580353329eb12aab2c8a171a9d8222d3d8449513f1c930406c76549331e8641dc7a5d626d544a9e003a7113618693ad7d10379b70852634", + "public_key": + "146e54a6cba6e1367b7008337e6b7556cd0370e5842d7ad34c7900aa28b83406", + "path": "/0", + "address": "21LPKRPAxqh94PXHdanGkitzGrwvh3pJHvUFCXwYnq1METB2" + }, + { + "private_key": + "1837e286e8843023bc7d7a4e751bb243df993e0dd8345abc8a74a517a7acc10e3db86b03c686fe7fa2b2abc5b3367eb39283eddec066c63772d936557cdce0a6", + "public_key": + "70921083552f4d357b39a35d0ca19d539bfa4a6f2382121979003c04c7feb779", + "path": "//12", + "address": "23RCLcYS3HBqNXqDebXvtL2jwcYtRJrHk9zqZGsteUSJQoSc" + }, + { + "private_key": + "b5b143c18a36911bdd02e64a173e15d4f2da4d1233e11bfa1fcbc18fe135dc0f1ec3909187201616e0e4df9cd3e57b6e3bdf29adcc20a8389797e07dca5be40a", + "public_key": + "10dde4738ac7724e7b810b84abbbaebb7778b1fbd5334d473368429921b51b48", + "path": "/soft", + "address": "21FiGUYAoxuKRAjwmV1XRof6aMrMrVeoPnTnitJxXsoMvXdG" + } + ] + }, + { + "seed": "128f5a7083825053ca90ca4e3bbf20aaae1f8936c19342a4e2bb6acc4a5794e3", + "private_key": + "4cbc3082c10aa2722023e09b90a0100011c7aae17774e3e7dc7a569fb2a02208fc841f93f9230b8e955aa1c8d837d42c154cd47b1b1ee3eac91e32374c814566", + "public_key": + "9674341a06b787a6e73b355328040d75a76cf733be10d075eb6f9d85f640953c", + "path": "", + "address": "FybDiq6BJUYG2UqpPasQ66NrMDgw4Af263rb8uAoCPDfXXe", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "a0de81833689a6c0354675738402606ee02941d16d473fd8517802df8072b009b22335b3c150eae71010703391888a6fa1a64e3c47333b4302d750346ed1608d", + "public_key": + "32220c5022f99162b077a41803bdff6106ae0708f53383d49ccc983b1af83828", + "path": "//0", + "address": "Di42V8CSqPzPq5n3xqqeG7p7NXPcj3HYY5U8LdXZkyqBLM8" + }, + { + "private_key": + "a641971a05b5cc5631cf27c171dc76bc4ea18b0c19cceb1fe45bb2729424fa08c68f43ae33249f6854f79e9978377ed4be60c953cac200fd8beffc2c33176244", + "public_key": + "a2af56362ba706981c26667567cf4c65db2d5cbabce24fb9550a57587323fc23", + "path": "/1", + "address": "GFdMtgGw5Xzadbpa8RXasCvWjvznHVChFXjAG6Eotzg7CYv" + }, + { + "private_key": + "cb62f0591573dd2471eaafbf988bf87353571c111a92cd17f27e5b8d0250ba095f99b4a9b6cc2f4f767019f67d773613de04c4694624ca34b355ff0f682fe6fd", + "public_key": + "40e4ff6fb91f6fe70735133424aeeaaa1c82da23bcd0590d74af979e0d4e4351", + "path": "//hard", + "address": "E3QcGoS2cxedZSTGuvCr7c6kpihxt5ZBwr4KjaVrrhhkTak" + }, + { + "private_key": + "93409ec0869ab5325e4a7f9394be5d0137fbbfc84d9cde6e9714e89ad995ef094da4305761449a365b3af42148ee145cd15e1dcb3fb473cc12d4fe54436574bf", + "public_key": + "869645948169b65574622f324e8f8162ae16689a3dbbd32846364f9b24ddfd54", + "path": "//1", + "address": "FcnaGUrbNH1FaZpHudkvQbF9KkgCubP8WHZxiCooKtvRmAP" + }, + { + "private_key": + "c37c157ace715088d35027348fdb28bab9ad9134a2867a0575e9d5534386ad0b4d459fcbede771f08f94ced7802d26db361a65156b7152541842370b2141ecf6", + "public_key": + "a82453bfd14b911daf0e3218d59a1080d678ba131f55f1eb0e94334211ce9e00", + "path": "/0", + "address": "GNnMUYZ5cYcjbSc7VmctP246zG5N2ck8QTsA7cxYHsAPD96" + }, + { + "private_key": + "ffb274974566b81c13293508baf62d5d928553d1485fa71dc5d0fc75aec72e0b91e6ce1940e7c647cd4c3734b9293f2b424d8bf64892f5e62e14f66b46ead6ea", + "public_key": + "e64e00647ec912b645a4d8ee03874a2a10142be5463529497184293159bf283a", + "path": "//12", + "address": "HnHhhg74KKuwzYKVRnKokLtaL1VwBesSXJJ2UHtcdaP4w3c" + }, + { + "private_key": + "6a7721a90f1c07e1bf5f5492803233fe99c83b1851603da680eaee535aea4e06f8104401852d341573ac9611a3ad9de79afa5af8011517929f3879c01effdc31", + "public_key": + "b05dabfdb0a94f59d381db3f106eb1eadbcf49b50fd78512cc5795a211cf3a6c", + "path": "/soft", + "address": "GZZmijKb1PXXZd5oxoWyrQC6AttfhoZBuLh1WiaY2puNcZG" + } + ] + }, + { + "seed": "d5e86e4d265725061f198bb05cd79406c8100f85ce6a159659974e0b0adb52bc", + "private_key": + "db57618fc328601f40f3d39e8d0e7a9015507fe4a7ae503d95fa943a36671a08102a37cf4f90661b560d8050cfe4915f91e4edd4d300c36c28a5985ad706896c", + "public_key": + "42f26abd47e07948805905cece9af62387e1e7e3e9d6d6fddaa430943f13cf22", + "path": "", + "address": "22PNkyHTDnXzyVpMxRTGzLx8UW1MCZSYW2TDoCBDtb5QeLXa", + "coin": "ACALA", + "child": [ + { + "private_key": + "63ba37d299783a0a6f7e7cab3b4084f2845cdfa162484266745cf74b8e3fd10cc1566814f7d25fc165ef84b8cdddd53057cfd755c020df76e7b2879f0d196094", + "public_key": + "4eb9f2ffeca4a7d09b331bb85f79f456580114f63b82725863df0265af25ca50", + "path": "//0", + "address": "22epZP9HBSyHpyKv2oC8dp3Eg22L6nBYyJvJtkB9yH2tNYJC" + }, + { + "private_key": + "46b0399bd2c5b0fd1ca6d0cef376fb50b1e78e7805bd4b0b26bdb2fe7e88ee03b8d97e4a3ab973c957ad64e9bc2443591440392b4b430f706f086c72ead92cd6", + "public_key": + "04adae093c2f5ee314b4dc9f7016cc1088f29210d3a77537497a0a64d9f35a1a", + "path": "/1", + "address": "zyjNTunC1D1fezM4tq3oZfzfHrrj7QHjo746BjyBiJAYiF1" + }, + { + "private_key": + "2b24fea8088f5da25a33ffd1c8cc828c0c305daade078ed575bcde7d13eced0a40ad9f6f53a5d82bf63f3c83c6b134d67868c3c765311c186939acf4bd10d35e", + "public_key": + "229253573074b9b3d31b4492fcf6f9b920a05d20c7b86f1a0b1483127294ee76", + "path": "//hard", + "address": "21evgUr2hJLFAq7ZuyzX2catDQ87PziwhPnkk2juSDoo4nNV" + }, + { + "private_key": + "2cbe1e9051e94fbe9809688893e26b4bdbeff37dfab371c9fd2e3516b5f8540f8aa44bdd0cc9d93a9e9512b5eb31b4f34023f7e920a9474b00d2a8ecdf608fc4", + "public_key": + "ec16aa3857b5d7eff9943f74f20b30cf6a5a508ed0420562a37852e387f07644", + "path": "//1", + "address": "26D9csi7p5cGMbGqbkeXjMskGiRTKzn8E11HKbfRR7pKijWy" + }, + { + "private_key": + "e4d5e814c63e9cdd7e29b88ce7883181a948c07cbebcedfe90af9e53e472d202f805ce146d515243e7d57d45e0254afce5860c35aa53e1c8cea020b230148581", + "public_key": + "be0100b16f73dc27a90ed46ddc5c467a9baa28a7f6cda7ef91cfaeb676e13d78", + "path": "/0", + "address": "25AiytRcsqqdhHGRcuogvR3qaHEKCSQvtjFCSQ7WT6YaAL79" + }, + { + "private_key": + "92f4ae7f65acdf0e0d5de037d92dfcb4bcb8a3d25ce3ed8fa87228e03d0792096f57495db63d0b6e1b33c2840d225ea6d314b9977ccb7bf5243945b2b8e4a183", + "public_key": + "fe3850ab4489c991fd53aa09d5a26a2d34ec23ffd8cf5758a455f64b6d950b63", + "path": "//12", + "address": "26cvUeRWsMaLSkba6C6JCX3RSckt6cvSuxAwAGaUtdVDfreW" + }, + { + "private_key": + "b6d6978315edd149914c0a4499009ab788201fcc7ba38697dd9ba7050c33be0fcd95e06361d18df96381a15ca8bfa602a274980fc01d4412a7d02aba3acd475c", + "public_key": + "022e44c5d1246ec4b3f0c0dbd83924cd6faeddeb83f6ff5e899d096cb924c430", + "path": "/soft", + "address": "zvTRfcWteCCsFWQdFRNx29BtC17jR72AkDFpE7Q1ry5iS1p" + } + ] + }, + { + "seed": "3d12c9a800fa3bed7a758332f6696cbde2e62ad9234494e295a82332b78cd9b2", + "private_key": + "1a13598a3602a12db313d1f773407de416297121fd04f3d0232ea861ce0d0908e0862a3f68fc0ce84f38f58abbf5072b545afedc141209a3e56676c9d1297001", + "public_key": + "5c303dbf3bf045f67b8957c0356436616c18176b2b6884090b66b50c330f6075", + "path": "", + "address": "22xUKcPpoQYF4r7nYEe1t7FRTL3bN3ko1k7h4eTAauQGcqTu", + "coin": "ACALA", + "child": [ + { + "private_key": + "7093b5a8adeff1ac970c3cc4523924a1266816fe05bcf28e0cd3718c1d05ba0a35ddca49f7811f91d0f88ab01f76dc2a141d3d355bf21a287b1830ef2dd39eb7", + "public_key": + "04578e7f2559e2538fc11487e335b02f506701a9c46bde9c66f62dbb6b27c957", + "path": "//0", + "address": "zyHnbZ97JxkioaU7B7BpkuDmw4YU7SBe5RpHv2GrvWdAMrf" + }, + { + "private_key": + "d1ac3ce64466d2cb4f31c3e8c0acbd93fd2669ba7c1fbd97ed4f4a7f93f0f00283fb97f16fcd5cea46f1151d4c98bf5721bacc7715cce1798d44280d45bd19ef", + "public_key": + "143066774bd0f4dc2ab525e1aee4b21720f89d12c122a65775161ea4420f8808", + "path": "/1", + "address": "21L4vPHXKfwp6bmg4oN1hjh9vL1m5pewGNWb32TWiYPX48TS" + }, + { + "private_key": + "68f565b1bf55498f0518cfe2318167c526e0fea3f4d8f05ff888a4b2247a460c567f0f3fce9f4147b8187b86921afd75c6e2fe795a87db3979dd6a435833f208", + "public_key": + "fe206898a03dcef06966be49447adcdf01b14b1be9ff713fd3eabf4c0f7e7c68", + "path": "//hard", + "address": "26coNkDvER9JLpiyPu38DYXNd6SRrqtCMQuKrW2V2i2Zi7jh" + }, + { + "private_key": + "2f791f1193a62fd37d8af170586b0645316a835d137d3b45de108de331a7010e8b11097d3fc2ce344bf7ce99c8525a510fa09804b06a4e35330fde73e30aef6c", + "public_key": + "e07a63c54f1e679961bb6cff5cf4dbf8ae08e9ef15f424becd63a5f62b906125", + "path": "//1", + "address": "25wvfmNLgEhWEkLfMRaFTnge9uUqUCg7Bv8nn1i9zMpx11iT" + }, + { + "private_key": + "44f4d124e60ca13bdded5cec3835de1da8cb58123f0abd6a85e6d6d8e665830656b9e09537ac9074254190be4a990b4cb343804b14495de4aa23d4d1c08b3862", + "public_key": + "50e9d59ad8a058e01200a01d72243af8a7ec7a74ecaaa70d32b996d1a20d9f32", + "path": "/0", + "address": "22hgsymcYCDmnkAGA1pNTKBv9aedecCd4bhkamcdwRB2FbLP" + }, + { + "private_key": + "7653ede7ed684b628e2d98a50fee1fa15adae890fa2109e9f244e5da5188f20ad15d273d61fc0f82c9088a1f5b929fb0d32b229a2e99b4476644b635b5560b20", + "public_key": + "9e9b51a4dd633682f23c7c13efb0b9cbdb96546b5152ca547a26289ed8882f65", + "path": "//12", + "address": "24TZHpWRhDvcEs5dy7t6nuASA8naVbyQYcV6ZU8W47Vby7Yz" + }, + { + "private_key": + "d9b72e45153b44743d4294cdac893da73ba4ddcafe055ca8cf0d93e275f31b018fd14a89a989c2f35e37eea0c865980a71231a48e48c956bfb216ce4fccb57f8", + "public_key": + "d298b21edf4e59f9bbb9ff5608fd2e3c694f513561661359d0cb452bc25fc372", + "path": "/soft", + "address": "25dj13Y9ERYfct51cc1fKTr59j2DbLX89abHqbAAxut9BkjH" + } + ] + }, + { + "seed": "9394906c5b8f9bdf4cfa634f1efb94e69fc1b99cad6e48c6515ce65792cb4527", + "private_key": + "eb1d071fd1e49980076d6019962550848b29145b0d6134adb6f7ba968081df094b7300adfd0254c457e2f03abf42f892d8fcf71cc671f1309d40883e9995dc90", + "public_key": + "861a3b2880331e5746df94c65a539c4622f8c5dec19949b23cadbb865de9d63b", + "path": "", + "address": "5SframGEZkDNH3mNAHVtg1FEPqgg9BKFj6pnVHZw5ucwrkk6", + "coin": "CHAINX", + "child": [ + { + "private_key": + "370922ff887d311b15c046ed4a06d7bfa7d3e814ae69dd4c8d3f6db2b67a530af2f72c880bc6696d8f017e13168d5683792b3d54838e3214bc95b8658d595c62", + "public_key": + "d0d1c33ff51c2fb60a77c0f6fca9f4cbd9667369fb84274eac152a4703c82703", + "path": "//0", + "address": "5UMpeThQZo63w7Skr7m9mpCzL5fVyzSF7mUD622o6mr4Cs75" + }, + { + "private_key": + "81b2d10d6f159a5874f48547229e6c001fea24227a0afbbe202669ee7fde470ce7cca2e7507b062b49610ba00ad79ac240f6c5845b2d932f0567342431aa2ad2", + "public_key": + "d6d0e674d154a514cddb2acc1abfcb3cac7d679328340f97baa9de823fdaf213", + "path": "/1", + "address": "5UVggGKLbWHC8ZsjJc9MHgi3DK3Km6dKZv7a2xdbMTFeLZby" + }, + { + "private_key": + "a75fca052ca8eccc1fe49876b98f7a08268029b075deadfdb0af78774aec910914411d0bdf95ebbe2c6f226b4bdd2265be11f5256e8c0cf44ccba097555fd48f", + "public_key": + "f8905fa190db883ecd511027b89c6182476a528aedbc602f0cc588c79ddb2f72", + "path": "//hard", + "address": "5VFw8vc6F2graEkfYG58ESeNpC93UKX317r7ca64WtTEm2pX" + }, + { + "private_key": + "1190abe7309db760ca971f3b91096690bb928e2971c63bd037c2c815b231ef0d1cac4fc5a936ca18a6552a21ff4479b2c06621f91bf82f982c043527ee415d41", + "public_key": + "329fa84120fe45e05ed6febd6e0092d568cc8dfd6646527b3a735e17d9a20542", + "path": "//1", + "address": "5QnQCMBneowPPR35smYyMCe7mtSMxW3ZJMiEvj1aYrfCXFXB" + }, + { + "private_key": + "28fbba17f93d89b8e619410c238029b795cc4297832943e06545a230dd74d7059b6dcb7a4ecf6f1ae1495166800b14208f3a4fbe9839ca3bdd5240d452e6ce53", + "public_key": + "50ed8e6e6244eda209ed066a594e028c2f9413511189cb8a467dd8b7bf2f873d", + "path": "/0", + "address": "5RU8mqcXyURUusBD8Vb15puYTzeHvb5FEnDqZzu48bABpGYV" + }, + { + "private_key": + "d4fdb3949b3f36280cde4a20365a6bd1026eef8d29cfd76faa4bc702470c590b42e14b9beb7993b93fef097bee55849f473829379d684c4da4bfd8cc728b6fe5", + "public_key": + "16252413b6d14f2b831d58dfd407fc618db61c3080d3670e2f56f3e8e85d6a51", + "path": "//12", + "address": "5Q94TgDwHk1nL5U7EM8i56dAmyufQ4urcyW1udLTZste34By" + }, + { + "private_key": + "f6c32949049da1f09486b39a56f990dfb19c4951093ea5bd82c7cd5a76be500c00c9d6e918fd6408884f749f7a92634016e8479ee77055f8c088e0d4033ef713", + "public_key": + "ca082ff63a549b7a8bfc3a03cb0aca542db78eb26f806ee14d45dd411b226a55", + "path": "/soft", + "address": "5UCvUjaVMzvgYwxxh5ah1hTdoppjzTP6c7dSoQXiyzbBB2MK" + } + ] + }, + { + "seed": "42d6aa550ae1886ba79a65ef9f41fb6b55219b92fd5d3a987ef5c9a2cd0bdc47", + "private_key": + "6c6f1bed22e05d8cd886a8bfab6b569ce360737c5fffefd4ced36d003ace7d0c34326b6f6b565ff3a7e7648aacf5289febf97d9dd2776c1aa53d3dfb53c0e5ed", + "public_key": + "8e1942f004563883f82069d6ba2dcdd5c27b2c187bd0be13df6a7da67cfcd740", + "path": "", + "address": "14DKJdAUWNb8pJHbaehmzAV9pf7vDwSpfpNH7Khfs8m2CRcW", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "645a9fd7bfcfa07a87c0dfeb4d572ee9da9256a50f920380f2a22e5f2cdf9e08f5127ac5fe9430051fcaee83395f8935e3d673ec4a6f87d9a93bc01d7fac7b57", + "public_key": + "527d75718c182adf2f476c4c69bbc9b92a10c125367c3c2e70e9a445b569a303", + "path": "//0", + "address": "12sACLweiK4b9UpzbbanpUsrVkSR6KJWKvBfqTYQKqA1KCyo" + }, + { + "private_key": + "2d2875d39010224a0c3123a90fa841d1a1dd42768a9364c2c032f203bc4f7003a51fabfeee06cf728248d9843f20b6495d38c6e288134621966838d65e9f8c89", + "public_key": + "d6acb23276948f699648a61b4a0151f797c30c739cadf9441ccca205b4299844", + "path": "/1", + "address": "15rUYq6NWjYDErTe69Vn8pGSK2cvvbC5KsnMRcAm45oNBTYF" + }, + { + "private_key": + "b9b1c805682071f4b249e014e1ce4d0d46d45778b03c37c98d742ac37a05500f675133c9a7ae09f36929fe91d238bbdc4f0ff7a9b5a20af7e257bb44ff61472f", + "public_key": + "5e11bd2c8176fe14d838e617d3661a84e3add2747c85c4f770963dc4b77ef745", + "path": "//hard", + "address": "138LmhkUwwbLzE47xjCcmPzuKuApCJThqLQxQkUNs92BGwne" + }, + { + "private_key": + "7fccb946c2d2515162e0a4c2aa8567b594de17a6ad12baf4a17fbcd9effa370d20890fc21330f83ef00674ed6b391b10129e5816a7cbc4ed33bde8338f16f273", + "public_key": + "c01e373865becb3a8bcbc35ad6958baa67213cdf3511e256442f46ee0b3b7c29", + "path": "//1", + "address": "15LuArDURLNGknmofHzToaA3dnEjYRGZ125hzWYjqoPHb4jk" + }, + { + "private_key": + "59c3c0119db87cfd0c95f6bfbc4d9ffb696f605b1fc001c5aa54a8cc1935b4070ba5c67c5c3514de55dbfc084e26f8aeaac479cccd2f20abb5c5433580e107f0", + "public_key": + "bcd215610fcf97b7fc0734feec251c84988a6819925611c9e0a0b0e1a12a4e07", + "path": "/0", + "address": "15GaQnnmQiUZXo7d8off9kpsBWVBrNYQCm91Kk2fc3FN1yWV" + }, + { + "private_key": + "396ba59405f18f2240e11f9ff55268be5fd0f7d099d9a12286821a7f6c03100fb62181b808da3f87d1075a3393d850b6ad8c842ca353e616c219ee99634e7af2", + "public_key": + "784a1d23153fc40c7c4a8b0d59e3929f2d82b352d165eafb7127008ff554f53a", + "path": "//12", + "address": "13iimEGwEB6WV4t3SFnf1NcFhyyW1Ch3S4sn75KqBpPi4JHp" + }, + { + "private_key": + "5489a6609fbb6b7f415b7284eb1489cb95cba314ee5c91336dddf75946f6450f520e8db7219835ef6d79dddde315ba3f5598a645857318b825ef297766fd7cd2", + "public_key": + "44eb279c6188aa82f40de98c0770af317656736a0da7b30f0cecbac3c8421c02", + "path": "/soft", + "address": "12ZN7UnB7edx1jctahyiEFbfwJ696vCCh2t4sWu5tBpS8EXi" + } + ] + } +]; diff --git a/example/lib/test/uuid_test.dart b/example/lib/test/uuid_test.dart new file mode 100644 index 0000000..b0a96c5 --- /dev/null +++ b/example/lib/test/uuid_test.dart @@ -0,0 +1,66 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'dart:typed_data'; + +import 'package:blockchain_utils/uuid/uuid.dart'; + +// import 'package:test/test.dart'; + +void testUUID() { + // Sample UUIDv4 buffers as lists of integers + Uint8List buffer1 = Uint8List.fromList( + [174, 91, 168, 91, 107, 15, 78, 26, 181, 132, 151, 91, 160, 7, 157, 152]); + Uint8List buffer2 = Uint8List.fromList([ + 42, + 118, + 243, + 204, + 168, + 139, + 49, + 8, + 163, + 241, + 253, + 29, + 91, + 63, + 219, + 178 + ]); + Uint8List buffer3 = Uint8List.fromList( + [115, 181, 16, 102, 139, 73, 65, 95, 181, 34, 94, 80, 60, 118, 197, 55]); + Uint8List buffer4 = Uint8List.fromList([ + 215, + 154, + 165, + 99, + 152, + 96, + 226, + 52, + 181, + 118, + 60, + 118, + 136, + 156, + 165, + 177 + ]); + Uint8List buffer5 = Uint8List.fromList( + [97, 148, 163, 150, 135, 56, 166, 2, 171, 26, 194, 71, 2, 140, 199, 132]); + + // // Test cases for UUID operations + // Verify that UUIDs can be created from the buffers and match the expected values + assert(UUID.fromBuffer(buffer1) == "ae5ba85b-6b0f-4e1a-b584-975ba0079d98"); + assert(UUID.fromBuffer(buffer2) == "2a76f3cc-a88b-3108-a3f1-fd1d5b3fdbb2"); + assert(UUID.fromBuffer(buffer3) == "73b51066-8b49-415f-b522-5e503c76c537"); + assert(UUID.fromBuffer(buffer4) == "d79aa563-9860-e234-b576-3c76889ca5b1"); + assert(UUID.fromBuffer(buffer5) == "6194a396-8738-a602-ab1a-c247028cc784"); + + // Generate a random UUIDv4, validate it, and convert it to a buffer and back to UUID + final uuid = UUID.generateUUIDv4(); + assert(UUID.isValidUUIDv4(uuid)); + assert(UUID.fromBuffer(UUID.toBuffer(uuid)) == uuid); +} diff --git a/example/lib/test/wif/wif_test.dart b/example/lib/test/wif/wif_test.dart new file mode 100644 index 0000000..a2da409 --- /dev/null +++ b/example/lib/test/wif/wif_test.dart @@ -0,0 +1,134 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/wif/wif.dart'; +import 'package:example/test/quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +final List> _testVector = [ + { + "key_bytes": + "5e9441950b3918772cc3da1fc6735b7c33f1bbe08a8f1e704be46cb664f7e457", + "encode": "5JXwUhNu98kXkyhR8EpvpaTGRjj8JZEP7hWboB5xscgjbgK2zNk", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "5e9441950b3918772cc3da1fc6735b7c33f1bbe08a8f1e704be46cb664f7e457", + "encode": "92Ja4SCSjMpfj3ChkaiqhB1E5Q5qTimaTeNYsoSUDMRnNiDZUez", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.bitcoinTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "1837c1be8e2995ec11cda2b066151be2cfb48adf9e47b151d46adab3a21cdf67", + "encode": "Kx2nc8CerNfcsutaet3rPwVtxQvXuQTYxw1mSsfFHsWExJ9xVpLf", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "1837c1be8e2995ec11cda2b066151be2cfb48adf9e47b151d46adab3a21cdf67", + "encode": "cNPn53CWHSMt3MMr3HrymFzxaeDwZrZF2yAEZJ7knzAFD3GTTi2x", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.bitcoinTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "a215750fac2ad0382e40ad02d11aa1467f5ec844f0a7e995c1b3e979fbdc71d0", + "encode": "7rnFCh34mBbn3uxT9FwNbS4hfdbn7W75u19Jmn3YoS5mXZjPoaX", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.dashMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "a215750fac2ad0382e40ad02d11aa1467f5ec844f0a7e995c1b3e979fbdc71d0", + "encode": "92pJNokBb5GhmdJ8sYfLyf3oid9us9bjSNd5K27vbNKLoLLfwfP", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.dashTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "132750b8489385430d8bfa3871ade97da7f5d5ef134a5c85184f88743b526e38", + "encode": "XBvs6XpB5U7xxB6muoJmWzFKssp8PzNvPzfQsGMNeLMLcd3pdCC9", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.dashMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "132750b8489385430d8bfa3871ade97da7f5d5ef134a5c85184f88743b526e38", + "encode": "cNDw7BRfCrBn4HZfGT82P5ZNb5qxcdsN6TTyTAUgq5jFUD5xFN65", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.dashTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "21f5e16d57b9b70a1625020b59a85fa9342de9c103af3dd9f7b94393a4ac2f46", + "encode": "6JPaMAeJjouhb8xPzFzETYCHJAJ9wBoFsCyC1LXFSTcZDmHgy6L", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.dogecoinMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "21f5e16d57b9b70a1625020b59a85fa9342de9c103af3dd9f7b94393a4ac2f46", + "encode": "95jMzQtxU83VnEBwENWAd9xZJdQktdjwBFr8FmcewrAkBNHta8u", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.dogecoinTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "7c5e3d057ec9d8cd61c8e59873fd3ff478cbe0808c444092986e34cc533fa5d7", + "encode": "QSnP9ZrYTcs3iu5x2uft3mGsnFMMisgshuhAMxYLaES6cndEdopn", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.dogecoinMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "7c5e3d057ec9d8cd61c8e59873fd3ff478cbe0808c444092986e34cc533fa5d7", + "encode": "ciuibxmCzNuTbrBhwCS18D8JSK2W1cCDDaPyofJCKwzAzG51dDJk", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.dogecoinTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "4baa38b7623a40da63836cd9ee8c51d0b6273e766c88adde156fd5fec6e19008", + "encode": "6uhLoqNczaCPTj3GmT7qfau4Qrp5qb7riHtYshudPgbiGSx3bVs", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.litecoinMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "4baa38b7623a40da63836cd9ee8c51d0b6273e766c88adde156fd5fec6e19008", + "encode": "92AEvSedgNoexQehsyDnknfr73cKnxD2HZMLF9F71y29MZAdg13", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.litecoinTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "abd83a20f1161f5ddb561b64de3e60d2b6350e3b6bc35968e52edb097c73a2c3", + "encode": "T8p29oRNZpvaE1QbpQ2Fr3kQcrgfzT9KjvzwapwgsqBdMotY6kQW", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.litecoinMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "abd83a20f1161f5ddb561b64de3e60d2b6350e3b6bc35968e52edb097c73a2c3", + "encode": "cTLkAy83bWeEccEzfAtX11i6JELmapE7zmF9qSmeoyfU6fQWAyxC", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.litecoinTestNet.getParam("wif_net_ver"), + }, +]; + +void wifTest() { + for (final i in _testVector) { + final dec = WifDecoder.decode(i["encode"], netVer: i["net_ver"]); + assert( + dec.$1.toHex() == i["key_bytes"] && dec.$2 == i["pub_key_mode"], true); + } + for (final i in _testVector) { + final encode = WifEncoder.encode(BytesUtils.fromHexString(i["key_bytes"]), + netVer: i["net_ver"], pubKeyMode: i["pub_key_mode"]); + assert(i["encode"] == encode); + } +} diff --git a/example/linux/.gitignore b/example/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/example/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/example/linux/CMakeLists.txt b/example/linux/CMakeLists.txt new file mode 100644 index 0000000..d67bd4e --- /dev/null +++ b/example/linux/CMakeLists.txt @@ -0,0 +1,139 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.10) +project(runner LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "example") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.example") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Define the application target. To change its name, change BINARY_NAME above, +# not the value here, or `flutter run` will no longer work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/example/linux/flutter/CMakeLists.txt b/example/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..d5bd016 --- /dev/null +++ b/example/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/example/linux/flutter/generated_plugin_registrant.cc b/example/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..e71a16d --- /dev/null +++ b/example/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void fl_register_plugins(FlPluginRegistry* registry) { +} diff --git a/example/linux/flutter/generated_plugin_registrant.h b/example/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/example/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/example/linux/flutter/generated_plugins.cmake b/example/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..2e1de87 --- /dev/null +++ b/example/linux/flutter/generated_plugins.cmake @@ -0,0 +1,23 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/example/linux/main.cc b/example/linux/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/example/linux/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/example/linux/my_application.cc b/example/linux/my_application.cc new file mode 100644 index 0000000..0ba8f43 --- /dev/null +++ b/example/linux/my_application.cc @@ -0,0 +1,104 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "example"); + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "example"); + } + + gtk_window_set_default_size(window, 1280, 720); + gtk_widget_show(GTK_WIDGET(window)); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/example/linux/my_application.h b/example/linux/my_application.h new file mode 100644 index 0000000..72271d5 --- /dev/null +++ b/example/linux/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/example/macos/.gitignore b/example/macos/.gitignore new file mode 100644 index 0000000..746adbb --- /dev/null +++ b/example/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/example/macos/Flutter/Flutter-Debug.xcconfig b/example/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/example/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/example/macos/Flutter/Flutter-Release.xcconfig b/example/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/example/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/example/macos/Flutter/GeneratedPluginRegistrant.swift b/example/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..cccf817 --- /dev/null +++ b/example/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,10 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { +} diff --git a/example/macos/Runner.xcodeproj/project.pbxproj b/example/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..27e0f50 --- /dev/null +++ b/example/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,695 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC10EC2044A3C60003C045; + remoteInfo = Runner; + }; + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C80D6294CF71000263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80D7294CF71000263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 331C80D6294CF71000263BE5 /* RunnerTests */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* example.app */, + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C80D1294CF70F00263BE5 /* Sources */, + 331C80D2294CF70F00263BE5 /* Frameworks */, + 331C80D3294CF70F00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80DA294CF71000263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* example.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1430; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C80D4294CF70F00263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 33CC10EC2044A3C60003C045; + }; + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 331C80D4294CF70F00263BE5 /* RunnerTests */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C80D3294CF70F00263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C80D1294CF70F00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC10EC2044A3C60003C045 /* Runner */; + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; + }; + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 331C80DB294CF71000263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example"; + }; + name = Profile; + }; + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80DB294CF71000263BE5 /* Debug */, + 331C80DC294CF71000263BE5 /* Release */, + 331C80DD294CF71000263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..397f3d3 --- /dev/null +++ b/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/example/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/example/macos/Runner/AppDelegate.swift b/example/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..d53ef64 --- /dev/null +++ b/example/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@NSApplicationMain +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..a2ec33f --- /dev/null +++ b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000..82b6f9d Binary files /dev/null and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png differ diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000..13b35eb Binary files /dev/null and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png differ diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000..0a3f5fa Binary files /dev/null and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png differ diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png new file mode 100644 index 0000000..bdb5722 Binary files /dev/null and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png differ diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png new file mode 100644 index 0000000..f083318 Binary files /dev/null and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png differ diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png new file mode 100644 index 0000000..326c0e7 Binary files /dev/null and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png differ diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000..2f1632c Binary files /dev/null and b/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png differ diff --git a/example/macos/Runner/Base.lproj/MainMenu.xib b/example/macos/Runner/Base.lproj/MainMenu.xib new file mode 100644 index 0000000..80e867a --- /dev/null +++ b/example/macos/Runner/Base.lproj/MainMenu.xib @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/macos/Runner/Configs/AppInfo.xcconfig b/example/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..dda192b --- /dev/null +++ b/example/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = example + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.example + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2023 com.example. All rights reserved. diff --git a/example/macos/Runner/Configs/Debug.xcconfig b/example/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/example/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/example/macos/Runner/Configs/Release.xcconfig b/example/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/example/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/example/macos/Runner/Configs/Warnings.xcconfig b/example/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/example/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/example/macos/Runner/DebugProfile.entitlements b/example/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..dddb8a3 --- /dev/null +++ b/example/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/example/macos/Runner/Info.plist b/example/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/example/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/example/macos/Runner/MainFlutterWindow.swift b/example/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..3cc05eb --- /dev/null +++ b/example/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/example/macos/Runner/Release.entitlements b/example/macos/Runner/Release.entitlements new file mode 100644 index 0000000..852fa1a --- /dev/null +++ b/example/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/example/macos/RunnerTests/RunnerTests.swift b/example/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..5418c9f --- /dev/null +++ b/example/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import FlutterMacOS +import Cocoa +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/example/main.dart b/example/main.dart deleted file mode 100644 index b6f6663..0000000 --- a/example/main.dart +++ /dev/null @@ -1,3 +0,0 @@ -void main() { - // Please refer to the test folder -} diff --git a/example/pubspec.lock b/example/pubspec.lock new file mode 100644 index 0000000..03e7b33 --- /dev/null +++ b/example/pubspec.lock @@ -0,0 +1,195 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + blockchain_utils: + dependency: "direct main" + description: + path: ".." + relative: true + source: path + version: "1.0.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + collection: + dependency: transitive + description: + name: collection + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + url: "https://pub.dev" + source: hosted + version: "1.17.2" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + url: "https://pub.dev" + source: hosted + version: "1.0.6" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 + url: "https://pub.dev" + source: hosted + version: "2.0.3" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + lints: + dependency: transitive + description: + name: lints + sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + url: "https://pub.dev" + source: hosted + version: "0.12.16" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + url: "https://pub.dev" + source: hosted + version: "0.5.0" + meta: + dependency: transitive + description: + name: meta + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + path: + dependency: transitive + description: + name: path + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + url: "https://pub.dev" + source: hosted + version: "1.8.3" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.dev" + source: hosted + version: "1.11.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + url: "https://pub.dev" + source: hosted + version: "0.6.0" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + url: "https://pub.dev" + source: hosted + version: "0.1.4-beta" +sdks: + dart: ">=3.1.4 <4.0.0" diff --git a/example/pubspec.yaml b/example/pubspec.yaml new file mode 100644 index 0000000..5920618 --- /dev/null +++ b/example/pubspec.yaml @@ -0,0 +1,91 @@ +name: example +description: A new Flutter project. +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: '>=3.1.4 <4.0.0' + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + blockchain_utils: + path: ../ + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^2.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/example/web/favicon.png b/example/web/favicon.png new file mode 100644 index 0000000..8aaa46a Binary files /dev/null and b/example/web/favicon.png differ diff --git a/example/web/icons/Icon-192.png b/example/web/icons/Icon-192.png new file mode 100644 index 0000000..b749bfe Binary files /dev/null and b/example/web/icons/Icon-192.png differ diff --git a/example/web/icons/Icon-512.png b/example/web/icons/Icon-512.png new file mode 100644 index 0000000..88cfd48 Binary files /dev/null and b/example/web/icons/Icon-512.png differ diff --git a/example/web/icons/Icon-maskable-192.png b/example/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000..eb9b4d7 Binary files /dev/null and b/example/web/icons/Icon-maskable-192.png differ diff --git a/example/web/icons/Icon-maskable-512.png b/example/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000..d69c566 Binary files /dev/null and b/example/web/icons/Icon-maskable-512.png differ diff --git a/example/web/index.html b/example/web/index.html new file mode 100644 index 0000000..45cf2ca --- /dev/null +++ b/example/web/index.html @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + example + + + + + + + + + + diff --git a/example/web/manifest.json b/example/web/manifest.json new file mode 100644 index 0000000..096edf8 --- /dev/null +++ b/example/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "example", + "short_name": "example", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/example/windows/.gitignore b/example/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/example/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/example/windows/CMakeLists.txt b/example/windows/CMakeLists.txt new file mode 100644 index 0000000..c09389c --- /dev/null +++ b/example/windows/CMakeLists.txt @@ -0,0 +1,102 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(example LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "example") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(VERSION 3.14...3.25) + +# Define build configuration option. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") + endif() +endif() +# Define settings for the Profile build mode. +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/example/windows/flutter/CMakeLists.txt b/example/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000..930d207 --- /dev/null +++ b/example/windows/flutter/CMakeLists.txt @@ -0,0 +1,104 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + windows-x64 $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/example/windows/flutter/generated_plugin_registrant.cc b/example/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..8b6d468 --- /dev/null +++ b/example/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void RegisterPlugins(flutter::PluginRegistry* registry) { +} diff --git a/example/windows/flutter/generated_plugin_registrant.h b/example/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..dc139d8 --- /dev/null +++ b/example/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/example/windows/flutter/generated_plugins.cmake b/example/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000..b93c4c3 --- /dev/null +++ b/example/windows/flutter/generated_plugins.cmake @@ -0,0 +1,23 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/example/windows/runner/CMakeLists.txt b/example/windows/runner/CMakeLists.txt new file mode 100644 index 0000000..394917c --- /dev/null +++ b/example/windows/runner/CMakeLists.txt @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + +# Disable Windows macros that collide with C++ standard library functions. +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") + +# Add dependency libraries and include directories. Add any application-specific +# dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/example/windows/runner/Runner.rc b/example/windows/runner/Runner.rc new file mode 100644 index 0000000..aecaa2b --- /dev/null +++ b/example/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD +#else +#define VERSION_AS_NUMBER 1,0,0,0 +#endif + +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "com.example" "\0" + VALUE "FileDescription", "example" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "example" "\0" + VALUE "LegalCopyright", "Copyright (C) 2023 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "example.exe" "\0" + VALUE "ProductName", "example" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/example/windows/runner/flutter_window.cpp b/example/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..955ee30 --- /dev/null +++ b/example/windows/runner/flutter_window.cpp @@ -0,0 +1,71 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/example/windows/runner/flutter_window.h b/example/windows/runner/flutter_window.h new file mode 100644 index 0000000..6da0652 --- /dev/null +++ b/example/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/example/windows/runner/main.cpp b/example/windows/runner/main.cpp new file mode 100644 index 0000000..a61bf80 --- /dev/null +++ b/example/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.Create(L"example", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/example/windows/runner/resource.h b/example/windows/runner/resource.h new file mode 100644 index 0000000..66a65d1 --- /dev/null +++ b/example/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/example/windows/runner/resources/app_icon.ico b/example/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000..c04e20c Binary files /dev/null and b/example/windows/runner/resources/app_icon.ico differ diff --git a/example/windows/runner/runner.exe.manifest b/example/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..a42ea76 --- /dev/null +++ b/example/windows/runner/runner.exe.manifest @@ -0,0 +1,20 @@ + + + + + PerMonitorV2 + + + + + + + + + + + + + + + diff --git a/example/windows/runner/utils.cpp b/example/windows/runner/utils.cpp new file mode 100644 index 0000000..b2b0873 --- /dev/null +++ b/example/windows/runner/utils.cpp @@ -0,0 +1,65 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); + std::string utf8_string; + if (target_length <= 0 || target_length > utf8_string.max_size()) { + return utf8_string; + } + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + input_length, utf8_string.data(), target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/example/windows/runner/utils.h b/example/windows/runner/utils.h new file mode 100644 index 0000000..3879d54 --- /dev/null +++ b/example/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/example/windows/runner/win32_window.cpp b/example/windows/runner/win32_window.cpp new file mode 100644 index 0000000..60608d0 --- /dev/null +++ b/example/windows/runner/win32_window.cpp @@ -0,0 +1,288 @@ +#include "win32_window.h" + +#include +#include + +#include "resource.h" + +namespace { + +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + } + FreeLibrary(user32_module); +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registrar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + UpdateTheme(window); + + return OnCreate(); +} + +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/example/windows/runner/win32_window.h b/example/windows/runner/win32_window.h new file mode 100644 index 0000000..e901dde --- /dev/null +++ b/example/windows/runner/win32_window.h @@ -0,0 +1,102 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates a win32 window with |title| that is positioned and sized using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_ diff --git a/lib/base32/base32.dart b/lib/base32/base32.dart new file mode 100644 index 0000000..6e0fe15 --- /dev/null +++ b/lib/base32/base32.dart @@ -0,0 +1,259 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/string/string.dart'; + +/// Constants and data structures used for Base32 encoding and decoding. +class _Base32Const { + /// Base32 alphabet for encoding and decoding. + static const String alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'; + + /// Padding character used for Base32 encoding. + static const String paddingChar = '='; + + /// Internal data structures used for Base32 encoding and decoding. + // static final Map _b32tab2 = {}; + + /// Reverse mapping for Base32 decoding. + static final Map> _b32rev = {}; // (private) +} + +class _Base32Utils { + /// Add padding to an encoded Base32 string. + /// Used if the string was encoded with Base32Encoder.encodeNoPadding. + static String addPadding(String data) { + final lastBlockWidth = data.length % 8; + if (lastBlockWidth != 0) { + data += '=' * (8 - lastBlockWidth); + } + return data; + } + + /// Translate the standard Base32 alphabet to a custom one. + static String translateAlphabet( + String data, String fromAlphabet, String toAlphabet) { + final translationMap = Map.fromIterable( + fromAlphabet.codeUnits, + key: (unit) => String.fromCharCode(unit), + value: (unit) { + final index = fromAlphabet.indexOf(String.fromCharCode(unit)); + return toAlphabet[index]; + }, + ); + + final translatedData = data.split('').map((char) { + return translationMap[char] ?? char; + }).join(''); + + return translatedData; + } + + static List _b32decode( + String alphabet, + String base32, + ) { + if (!_Base32Const._b32rev.containsKey(alphabet)) { + _Base32Const._b32rev[alphabet] = {}; + for (var i = 0; i < alphabet.length; i++) { + _Base32Const._b32rev[alphabet]![alphabet[i]] = i; + } + } + int shift = 8; + int carry = 0; + List decoded = []; + base32.split('').forEach((char) { + if (char == '=') { + return; + } + final symbol = (_Base32Const._b32rev[alphabet]![char] ?? 0) & 0xff; + shift -= 5; + if (shift > 0) { + carry |= (symbol << shift) & 0xff; + } else if (shift < 0) { + decoded.add(carry | (symbol >> -shift)); + shift += 8; + carry = (symbol << shift) & 0xff; + } else { + decoded.add(carry | symbol); + shift = 8; + carry = 0; + } + }); + if (shift != 8 && carry != 0) { + decoded.add(carry); + shift = 8; + carry = 0; + } + + return decoded; + } + + static List _b32encode(String alphabet, List s) { + final leftover = s.length % 5; + if (leftover != 0) { + final padding = List.filled(5 - leftover, 0); + s = List.from([...s, ...padding]); + } + int shift = 3; + int carry = 0; + final encoded = []; + for (final byte in s) { + int symbol = carry | (byte >> shift); + encoded.addAll(alphabet[symbol & 0x1f].codeUnits); + if (shift > 5) { + shift -= 5; + symbol = byte >> shift; + encoded.addAll(alphabet[symbol & 0x1f].codeUnits); + } + shift = 5 - shift; + carry = byte << shift; + shift = 8 - shift; + } + if (shift != 3) { + encoded.addAll(alphabet[carry & 0x1f].codeUnits); + shift = 3; + carry = 0; + } + if (leftover == 1) { + encoded.setAll(encoded.length - 6, [0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d]); + } else if (leftover == 2) { + encoded.setAll(encoded.length - 4, [0x3d, 0x3d, 0x3d, 0x3d]); + } else if (leftover == 3) { + encoded.setAll(encoded.length - 3, [0x3d, 0x3d, 0x3d]); + } else if (leftover == 4) { + encoded.setAll(encoded.length - 1, [0x3d]); + } + return List.from(encoded); + } +} + +/// A utility class for decoding Base32 encoded strings into bytes. +class Base32Decoder { + /// Decode the provided Base32 string into a List of bytes. + /// Optionally, you can specify a custom alphabet for decoding. + static List decode(String data, [String? customAlphabet]) { + try { + /// Add padding characters to the input data as needed. + data = _Base32Utils.addPadding(data); + + /// If a custom alphabet is specified, translate the input data to the standard Base32 alphabet. + if (customAlphabet != null) { + data = _Base32Utils.translateAlphabet( + data, customAlphabet, _Base32Const.alphabet); + } + + /// Decode the Base32 string and obtain the decoded bytes. + final decodedBytes = _Base32Utils._b32decode(_Base32Const.alphabet, data); + + /// Return the decoded bytes as a List. + return List.from(decodedBytes); + } catch (ex) { + /// Handle exceptions by throwing an error for invalid Base32 strings. + throw ArgumentError('Invalid Base32 string'); + } + } +} + +/// A utility class for encoding strings and bytes into Base32 format. +class Base32Encoder { + /// Encode the provided string into a Base32 encoded string. + /// Optionally, you can specify a custom alphabet for encoding. + static String encode(String data, [String? customAlphabet]) { + /// Convert the input string to UTF-8 encoded bytes and then encode it in Base32. + String encoded = StringUtils.decode(_Base32Utils._b32encode( + _Base32Const.alphabet, StringUtils.encode(data))); + + /// If a custom alphabet is specified, translate the encoded string to the custom alphabet. + if (customAlphabet != null) { + encoded = _Base32Utils.translateAlphabet( + encoded, _Base32Const.alphabet, customAlphabet); + } + + /// Return the Base32 encoded string. + return encoded; + } + + /// Encode the provided List of bytes into a Base32 encoded string. + /// Optionally, you can specify a custom alphabet for encoding. + static String encodeBytes(List data, [String? customAlphabet]) { + /// Encode the input bytes in Base32. + String encoded = StringUtils.decode( + _Base32Utils._b32encode(_Base32Const.alphabet, data)); + + /// If a custom alphabet is specified, translate the encoded string to the custom alphabet. + if (customAlphabet != null) { + encoded = _Base32Utils.translateAlphabet( + encoded, _Base32Const.alphabet, customAlphabet); + } + + /// Return the Base32 encoded string. + return encoded; + } + + /// Encode the provided string into a Base32 encoded string without padding characters. + /// Optionally, you can specify a custom alphabet for encoding. + static String encodeNoPadding(String data, [String? customAlphabet]) { + // Encode the input data and then remove any padding characters. + return encode(data, customAlphabet) + .replaceAll(_Base32Const.paddingChar, ''); + } + + /// Encode the provided List of bytes into a Base32 encoded string without padding characters. + /// Optionally, you can specify a custom alphabet for encoding. + static String encodeNoPaddingBytes(List data, [String? customAlphabet]) { + /// Encode the input bytes and then remove any padding characters. + return encodeBytes(data, customAlphabet) + .replaceAll(_Base32Const.paddingChar, ''); + } +} diff --git a/lib/base58/base58.dart b/lib/base58/base58.dart index bc9b519..de89119 100644 --- a/lib/base58/base58.dart +++ b/lib/base58/base58.dart @@ -1,22 +1,8 @@ -/// Base58 Encoding and Decoding Library -/// -/// This library provides functions for encoding and decoding data using the -/// Base58 encoding scheme. Base58 is commonly used in blockchain applications, -/// such as Bitcoin and Ripple, for encoding binary data into a human-readable format. -/// -/// Modules and Exports: -/// -/// - `encodeCheck`, `decodeCheck`: Exported from 'package:blockchain_utils/base58/impl/bacse58_check.dart'. -/// These functions provide Base58 encoding and decoding with checksums, which -/// are often used in blockchain addresses and data encoding. -/// -/// - `encode`, `decode`, `ripple`, `bitcoin`: Exported from 'package:blockchain_utils/base58/impl/base58.dart'. -/// These functions provide basic Base58 encoding and decoding, along with -/// implementations specific to Ripple and Bitcoin Base58 encoding schemes. +/// Library for working with Base58 encoding. library base58; -export 'package:blockchain_utils/base58/impl/bacse58_check.dart' - show encodeCheck, decodeCheck; +/// Export statement for the core functionality of Base58 encoding. +export 'base58_base.dart'; -export 'package:blockchain_utils/base58/impl/base58.dart' - show encode, decode, ripple, bitcoin; +/// Export statement for Base58 encoding with Monero (XMR) support. +export 'base58_xmr.dart'; diff --git a/lib/base58/base58_base.dart b/lib/base58/base58_base.dart new file mode 100644 index 0000000..8ae11dc --- /dev/null +++ b/lib/base58/base58_base.dart @@ -0,0 +1,173 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/base58/base58_ex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +enum Base58Alphabets { + bitcoin, + ripple, +} + +/// Constants related to Base58 encoding. +class Base58Const { + /// The radix for Base58 encoding. + static const int radix = 58; + + /// The length (in bytes) of the checksum used in Base58 encoding. + static const int checksumByteLen = 4; + + /// Mapping of Base58 alphabet types to their corresponding alphabets. + static const Map alphabets = { + Base58Alphabets.bitcoin: + "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz", + Base58Alphabets.ripple: + "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz", + }; +} + +class Base58Utils { + /// Compute and return the checksum for the provided List [dataBytes]. + /// The checksum is obtained by performing a double SHA-256 hash and extracting + /// the first [Base58Const.checksumByteLen] bytes. + /// + /// Parameters: + /// - dataBytes: The List of data bytes for which the checksum is computed. + /// + /// Returns: + /// A List containing the computed checksum. + static List computeChecksum(List dataBytes) { + final doubleSha256Digest = QuickCrypto.sha256DoubleHash(dataBytes); + return doubleSha256Digest.sublist(0, Base58Const.checksumByteLen); + } +} + +/// A utility class for encoding List data into a Base58 format using a specified alphabet. +class Base58Encoder { + /// Encodes the provided List [dataBytes] into a Base58 encoded string using the specified [base58alphabets]. + /// + /// Parameters: + /// - dataBytes: The List of data bytes to be encoded. + /// - base58alphabets: Optional Base58Alphabets enum to choose the alphabet (default is Base58Alphabets.bitcoin). + /// + /// Returns: + /// A Base58 encoded string of the input dataBytes. + static String encode(List dataBytes, + [Base58Alphabets base58alphabets = Base58Alphabets.bitcoin]) { + final alphabet = Base58Const.alphabets[base58alphabets]!; + + /// Convert the dataBytes into a BigInteger for encoding. + BigInt val = BigintUtils.fromBytes(dataBytes); + String enc = ""; + while (val > BigInt.zero) { + /// Perform division by Base58 radix and get remainder for encoding. + final result = BigintUtils.divmod(val, Base58Const.radix); + val = result.$1; + final mod = result.$2; + enc = alphabet[mod.toInt()] + enc; + } + + /// Count leading zero bytes in the dataBytes for leading zero characters in the encoded string. + int zero = 0; + for (int byte in dataBytes) { + if (byte == 0) { + zero++; + } else { + break; + } + } + final int leadingZeros = dataBytes.length - (dataBytes.length - zero); + + /// Append leading zero characters to the encoded string. + return (alphabet[0] * leadingZeros) + enc; + } + + /// Encodes the provided List [dataBytes] with a checksum using a specified Base58 alphabet. + /// + /// This method appends a checksum to the data and then encodes the result into a Base58 encoded string. + /// + /// Parameters: + /// - dataBytes: The List of data bytes to be encoded with a checksum. + /// - base58alphabets: Optional Base58Alphabets enum to choose the alphabet (default is Base58Alphabets.bitcoin). + /// + /// Returns: + /// A Base58 encoded string of the input dataBytes with a checksum. + static String checkEncode(List dataBytes, + [Base58Alphabets base58alphabets = Base58Alphabets.bitcoin]) { + final checksum = Base58Utils.computeChecksum(dataBytes); + final dataWithChecksum = List.from([...dataBytes, ...checksum]); + return encode(dataWithChecksum, base58alphabets); + } +} + +/// A utility class for decoding Base58 encoded strings into List data using a specified alphabet. +class Base58Decoder { + /// Decode the provided Base58 encoded [dataStr] into a List of data bytes using the specified [base58alphabets]. + /// + /// Parameters: + /// - data: The Base58 encoded string to be decoded. + /// - base58alphabets: Optional Base58Alphabets enum to choose the alphabet (default is Base58Alphabets.bitcoin). + /// + /// Returns: + /// A List containing the decoded data bytes. + static List decode(String data, + [Base58Alphabets base58alphabets = Base58Alphabets.bitcoin]) { + final alphabet = Base58Const.alphabets[base58alphabets]!; + var val = BigInt.zero; + + for (var i = 0; i < data.length; i++) { + final c = data[data.length - 1 - i]; + final charIndex = alphabet.indexOf(c); + if (charIndex == -1) { + throw const FormatException("Invalid character in Base58 string"); + } + val += BigInt.from(charIndex) * BigInt.from(Base58Const.radix).pow(i); + } + + final bytes = BigintUtils.toBytesLen(val, order: Endian.little); + // Remove leading zeros from bytes + var padLen = 0; + for (var i = 0; i < data.length; i++) { + if (data[i] == alphabet[0]) { + padLen++; + } else { + break; + } + } + + return List.from([...List.filled(padLen, 0), ...bytes]); + } + + /// Decode and verify the provided Base58 encoded [data] into a List of data bytes using a specified Base58 alphabet. + /// + /// This method verifies the checksum of the decoded data to ensure its integrity. + /// + /// Parameters: + /// - data: The Base58 encoded string to be decoded and verified. + /// - base58alphabets: Optional Base58Alphabets enum to choose the alphabet (default is Base58Alphabets.bitcoin). + /// + /// Returns: + /// A List containing the decoded data bytes if the checksum is valid. + /// + /// Throws: + /// - Base58ChecksumError: If the checksum verification fails. + static List checkDecode(String data, + [Base58Alphabets base58alphabets = Base58Alphabets.bitcoin]) { + final decodedBytes = decode(data, base58alphabets); + final dataBytes = decodedBytes.sublist( + 0, decodedBytes.length - Base58Const.checksumByteLen); + final checksumBytes = + decodedBytes.sublist(decodedBytes.length - Base58Const.checksumByteLen); + + final computedChecksum = Base58Utils.computeChecksum(dataBytes); + if (!bytesEqual(checksumBytes, computedChecksum)) { + throw Base58ChecksumError( + "Invalid checksum (expected ${BytesUtils.toHexString(computedChecksum)}, got ${BytesUtils.toHexString(checksumBytes)})", + ); + } + + return dataBytes; + } +} diff --git a/lib/base58/base58_ex.dart b/lib/base58/base58_ex.dart new file mode 100644 index 0000000..38d97fb --- /dev/null +++ b/lib/base58/base58_ex.dart @@ -0,0 +1,13 @@ +/// An exception class representing an error related to Base58 checksum validation. +class Base58ChecksumError implements Exception { + final String? message; + + /// Constructor for creating a Base58ChecksumError with an optional error message. + const Base58ChecksumError([this.message]); + + @override + String toString() { + /// Provide a custom string representation of the error. + return message ?? super.toString(); + } +} diff --git a/lib/base58/base58_xmr.dart b/lib/base58/base58_xmr.dart new file mode 100644 index 0000000..203ae60 --- /dev/null +++ b/lib/base58/base58_xmr.dart @@ -0,0 +1,151 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/base58/base58.dart'; + +/// Constants and data related to Base58 encoding used in Monero (XMR). +class Base58XmrConst { + /// Retrieve the Base58 alphabet specific to Monero (XMR). + static String get alphabet => Base58Const.alphabets[Base58Alphabets.bitcoin]!; + + /// Maximum byte length for decoding blocks in Monero Base58 encoding. + static const int blockDecMaxByteLen = 8; + + /// Maximum byte length for encoding blocks in Monero Base58 encoding. + static const int blockEncMaxByteLen = 11; + + /// List of byte lengths for encoding blocks in Monero Base58 encoding. + static const List blockEncByteLens = [0, 2, 3, 5, 6, 7, 9, 10, 11]; +} + +/// A utility class for encoding BytesData data into Monero Base58 format. +class Base58XmrEncoder { + /// Encode the provided BytesData of dataBytes into a Monero Base58 encoded string. + static String encode(List dataBytes) { + String enc = ''; + + /// Get lengths + final dataLen = dataBytes.length; + const blockDecLen = Base58XmrConst.blockDecMaxByteLen; + + /// Compute total block count and last block length + final totBlockCnt = dataLen ~/ blockDecLen; + final lastBlockEncLen = dataLen % blockDecLen; + + /// Encode each single block and pad + for (var i = 0; i < totBlockCnt; i++) { + final blockEnc = Base58Encoder.encode( + dataBytes.sublist(i * blockDecLen, (i + 1) * blockDecLen)); + enc += _pad(blockEnc, Base58XmrConst.blockEncMaxByteLen); + } + + /// Encode last block and pad + if (lastBlockEncLen > 0) { + final blockEnc = Base58Encoder.encode(dataBytes.sublist( + totBlockCnt * blockDecLen, + totBlockCnt * blockDecLen + lastBlockEncLen)); + enc += _pad(blockEnc, Base58XmrConst.blockEncByteLens[lastBlockEncLen]); + } + + return enc; + } + + static String _pad(String encStr, int padLen) { + return encStr.padLeft(padLen, Base58XmrConst.alphabet[0]); + } +} + +/// A utility class for decoding Monero Base58 encoded strings into BytesData data. +class Base58XmrDecoder { + /// Decode the provided Monero Base58 encoded [dataStr] into a BytesData of dataBytes. + /// Throws a [Base58ChecksumError] if the checksum is invalid. + static List decode(String dataStr) { + List dec = List.empty(); + + /// Get lengths + final dataLen = dataStr.length; + const blockDecLen = Base58XmrConst.blockDecMaxByteLen; + const blockEncLen = Base58XmrConst.blockEncMaxByteLen; + + /// Compute block count and last block length + final totBlockCnt = dataLen ~/ blockEncLen; + final lastBlockEncLen = dataLen % blockEncLen; + + /// Get last block decoded length + final lastBlockDecLen = + Base58XmrConst.blockEncByteLens.indexOf(lastBlockEncLen); + + /// Decode each single block and unpad + for (var i = 0; i < totBlockCnt; i++) { + final blockDec = Base58Decoder.decode( + dataStr.substring(i * blockEncLen, (i + 1) * blockEncLen)); + dec = List.from([...dec, ..._unPad(blockDec, blockDecLen)]); + } + + /// Decode last block and unpad + if (lastBlockEncLen > 0) { + final blockDec = Base58Decoder.decode(dataStr.substring( + totBlockCnt * blockEncLen, + totBlockCnt * blockEncLen + lastBlockEncLen)); + dec = List.from([...dec, ..._unPad(blockDec, lastBlockDecLen)]); + } + + return dec; + } + + static List _unPad(List decBytes, int unpadLen) { + final start = decBytes.length - unpadLen; + return decBytes.sublist(start); + } +} diff --git a/lib/base58/impl/bacse58_check.dart b/lib/base58/impl/bacse58_check.dart deleted file mode 100644 index 650b640..0000000 --- a/lib/base58/impl/bacse58_check.dart +++ /dev/null @@ -1,29 +0,0 @@ -/// Decode a base58check-encoded string into a Uint8List payload. -import 'dart:typed_data'; - -import 'package:blockchain_utils/crypto/crypto.dart'; -import 'package:blockchain_utils/formating/bytes_num_formating.dart'; -import 'base58.dart' as bs58; - -/// Decode a base58check-encoded string into a Uint8List payload. -Uint8List decodeCheck(String string, {String alphabet = bs58.bitcoin}) { - final bytes = bs58.decode(string, alphabet: alphabet); - if (bytes.length < 5) { - throw ArgumentError("invalid base58check"); - } - Uint8List payload = bytes.sublist(0, bytes.length - 4); - Uint8List checksum = bytes.sublist(bytes.length - 4); - Uint8List newChecksum = doubleHash(payload).sublist(0, 4); - if (!bytesListEqual(checksum, newChecksum)) { - throw ArgumentError("Invalid checksum"); - } - return payload; -} - -/// Encode data and add checksum for error detection (used in Bitcoin). -String encodeCheck(Uint8List bytes, {String alphabet = bs58.bitcoin}) { - Uint8List hash = doubleHash(bytes); - Uint8List combine = Uint8List.fromList( - [bytes, hash.sublist(0, 4)].expand((i) => i).toList(growable: false)); - return bs58.encode(combine, alphabet: alphabet); -} diff --git a/lib/base58/impl/base58.dart b/lib/base58/impl/base58.dart deleted file mode 100644 index 8ef86fe..0000000 --- a/lib/base58/impl/base58.dart +++ /dev/null @@ -1,76 +0,0 @@ -import 'dart:typed_data'; - -/// Define the BITCOIN (BTC) base58 alphabet. -const String bitcoin = - '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'; - -/// Define the Ripple (XRP) base58 alphabet. -const String ripple = - 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'; - -/// Encode Uint8List data into a string using the specified alphabet. -String encode(Uint8List source, {String alphabet = bitcoin}) { - if (source.isEmpty) { - return ""; - } - final length = alphabet.length; - - /// final characters = _loadAlphabet(alphabet); - List digits = [0]; - - for (var i = 0; i < source.length; ++i) { - var carry = source[i]; - for (var j = 0; j < digits.length; ++j) { - carry += digits[j] << 8; - digits[j] = carry % length; - carry = carry ~/ length; - } - while (carry > 0) { - digits.add(carry % length); - carry = carry ~/ length; - } - } - var string = ""; - - /// Deal with leading zeros - for (var k = 0; source[k] == 0 && k < source.length - 1; ++k) { - string += alphabet[0]; - } - - /// Convert digits to a string - for (var q = digits.length - 1; q >= 0; --q) { - string += alphabet[digits[q]]; - } - return string; -} - -/// Decode a string into Uint8List data using the specified alphabet. -Uint8List decode(String string, {String alphabet = bitcoin}) { - if (string.isEmpty) { - throw ArgumentError('invalid base58 characters'); - } - final length = alphabet.length; - List bytes = [0]; - for (var i = 0; i < string.length; i++) { - var value = alphabet.indexOf(string[i]); - if (value < 0) { - throw ArgumentError('invalid base58 character'); - } - var carry = value; - for (var j = 0; j < bytes.length; ++j) { - carry += bytes[j] * length; - bytes[j] = carry & 0xff; - carry >>= 8; - } - while (carry > 0) { - bytes.add(carry & 0xff); - carry >>= 8; - } - } - - /// Deal with leading zeros - for (var k = 0; string[k] == alphabet[0] && k < string.length - 1; ++k) { - bytes.add(0); - } - return Uint8List.fromList(bytes.reversed.toList()); -} diff --git a/lib/bech32/bch_bech32.dart b/lib/bech32/bch_bech32.dart new file mode 100644 index 0000000..54ad133 --- /dev/null +++ b/lib/bech32/bch_bech32.dart @@ -0,0 +1,166 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/numbers/int_utils.dart'; + +import 'bech32_utils.dart'; + +/// A utility class containing constants used for Bitcoin Cash (BCH) Bech32 encoding and decoding. +class BchBech32Const { + /// The separator used in a Bech32 encoded BCH address. + static const String separator = ":"; + + /// The length of the checksum in characters for a Bech32 encoded BCH address. + static const int checksumStrLen = 8; +} + +class _BchBech32Utils { + static final _mask5 = BigInt.from(0x1f); + static BigInt polyMod(List values) { + final List> generator = [ + [BigInt.from(0x01), BigInt.from(0x98f2bc8e61)], + [BigInt.from(0x02), BigInt.from(0x79b76d99e2)], + [BigInt.from(0x04), BigInt.from(0xf33e5fb3c4)], + [BigInt.from(0x08), BigInt.from(0xae2eabe2a8)], + [BigInt.from(0x10), BigInt.from(0x1e4f43e470)], + ]; + + // Compute modulus + BigInt chk = BigInt.one; + for (int value in values) { + BigInt top = chk >> 35; + final BigInt valueBig = BigInt.from(value); + chk = ((chk & BigInt.from(0x07ffffffff)) << 5) ^ valueBig; + + for (List i in generator) { + if ((top & i[0]) != BigInt.zero) { + chk ^= i[1]; + } + } + } + + return (chk ^ BigInt.one); + } + + static List hrpExpand(String hrp) { + List expandedHrp = hrp.runes.map((int rune) { + return rune & 0x1f; + }).toList(); + expandedHrp.add(0); + return expandedHrp; + } + + static List computeChecksum(String hrp, List data) { + List values = hrpExpand(hrp) + data; + BigInt polymod = polyMod(values + [0, 0, 0, 0, 0, 0, 0, 0]); + return List.generate( + BchBech32Const.checksumStrLen, + (i) => ((polymod >> (5 * (7 - i))) & _mask5).toInt(), + ); + } + + static bool verifyChecksum(String hrp, List data) { + final polyMode = polyMod([...hrpExpand(hrp), ...data]); + return polyMode == BigInt.zero; + } +} + +/// Encode data using the Bitcoin Cash (BCH) Bech32 encoding scheme. +/// +/// Parameters: +/// - hrp: The Human-Readable Part (HRP) of the BCH address. +/// - netVar: A List representing the network version bytes. +/// - data: A List containing the data to be encoded. +/// +/// Returns: +/// A Bech32 encoded BCH address string. +class BchBech32Encoder extends Bech32EncoderBase { + /// Combine the network version bytes and data. + static String encode(String hrp, List netVar, List data) { + return Bech32EncoderBase.encodeBech32( + hrp, + Bech32BaseUtils.convertToBase32(List.from([...netVar, ...data])), + BchBech32Const.separator, + _BchBech32Utils.computeChecksum); + } +} + +/// A utility class for decoding Bitcoin Cash (BCH) Bech32 encoded addresses. +class BchBech32Decoder extends Bech32DecoderBase { + /// Decode a Bech32 encoded BCH address into its components: the Human-Readable Part (HRP), + /// network version bytes, and data. + /// + /// Parameters: + /// - hrp: The expected Human-Readable Part (HRP) of the BCH address. + /// - address: The Bech32 encoded BCH address to be decoded. + /// + /// Returns: + /// A tuple (pair) containing the network version bytes and data. + /// + /// Throws: + /// - ArgumentError: If the decoded HRP does not match the expected HRP. + static (List, List) decode(String hrp, String address) { + final decode = Bech32DecoderBase.decodeBech32( + address, + BchBech32Const.separator, + BchBech32Const.checksumStrLen, + _BchBech32Utils.verifyChecksum); + if (decode.$1 != hrp) { + throw ArgumentError( + "Invalid format (HRP not valid, expected $hrp, got ${decode.$1})"); + } + final convData = Bech32BaseUtils.convertFromBase32(decode.$2); + return (IntUtils.toBytesLength(convData[0]), convData.sublist(1)); + } +} diff --git a/lib/bech32/bech32.dart b/lib/bech32/bech32.dart index 0de2919..b745c42 100644 --- a/lib/bech32/bech32.dart +++ b/lib/bech32/bech32.dart @@ -1,178 +1,14 @@ -/// Bech32 Encoding and Decoding Library -/// -/// This library provides functions for encoding and decoding data using the -/// Bech32 encoding scheme. Bech32 is a specialized encoding format used in -/// blockchain applications, such as Bitcoin and Bitcoin-like cryptocurrencies, -/// to represent addresses and data in a human-readable and error-checking format. -/// -/// Modules and Exports: -/// -/// - `encodeBech32`, `decodeBech32`: Exported from 'package:blockchain_utils/bech32/bech32.dart'. -/// These functions provide Bech32 encoding and decoding capabilities, allowing -/// developers to work with Bech32-encoded data. -/// -/// Usage: -/// -/// Developers can import this library to access Bech32 encoding and decoding -/// functions based on their specific requirements. For example: +/// Library for working with Bech32 encoding. library bech32; -import 'dart:typed_data'; +/// Export statement for the core Bech32 functionality. +export 'bech32_base.dart'; -import 'package:blockchain_utils/formating/bytes_num_formating.dart'; +/// Export statement for Bech32 utility functions. +export 'bech32_utils.dart'; -/// Enum to represent Bech32 types. -enum Bech32Type { - bech32(1), - bech32M(0x2bc830a3); +/// Export statement for Bech32 encoding specific to Bitcoin Cash (BCH). +export 'bch_bech32.dart'; - final int value; - const Bech32Type(this.value); -} - -class Bech32Result { - const Bech32Result( - {required this.version, required this.data, required this.hrp}); - final int version; - final Uint8List data; - final String hrp; -} - -/// Function to perform the Bech32 polynomial modulo operation. -int _bech32Polymod(List values) { - List generator = [ - 0x3b6a57b2, - 0x26508e6d, - 0x1ea119fa, - 0x3d4233dd, - 0x2a1462b3 - ]; - int chk = 1; - for (int value in values) { - int top = chk >> 25; - chk = (chk & 0x1ffffff) << 5 ^ value; - for (int i = 0; i < 5; i++) { - chk ^= ((top >> i) & 1) != 0 ? generator[i] : 0; - } - } - return chk; -} - -/// Function to expand the human-readable part (HRP) of a Bech32 string. -List _bech32HrpExpand(String hrp) { - List values = []; - for (int i = 0; i < hrp.length; i++) { - values.add(hrp.codeUnitAt(i) >> 5); - } - values.add(0); - for (int i = 0; i < hrp.length; i++) { - values.add(hrp.codeUnitAt(i) & 31); - } - return values; -} - -/// Function to verify the checksum of a Bech32 string and determine its type. -Bech32Type? _bech32VerifyChecksum(String hrp, List data) { - List combined = _bech32HrpExpand(hrp) + data; - int c = _bech32Polymod(combined); - - if (c == Bech32Type.bech32.value) { - return Bech32Type.bech32; - } - if (c == Bech32Type.bech32M.value) { - return Bech32Type.bech32M; - } - return null; -} - -/// Function to create a Bech32 checksum for a given HRP and data. -List _bech32CreateChecksum(String hrp, List data, Bech32Type spec) { - List values = _bech32HrpExpand(hrp) + data; - - int polymod = _bech32Polymod(values + [0, 0, 0, 0, 0, 0]) ^ spec.value; - List checksum = []; - for (int i = 0; i < 6; i++) { - checksum.add((polymod >> 5 * (5 - i)) & 31); - } - return checksum; -} - -/// Bech32 charset -const _charset = "qpzry9x8gf2tvdw0s3jn54khce6mua7l"; - -/// Function to encode data into a Bech32 string. -String _bech32Encode(String hrp, List data, Bech32Type spec) { - List combined = data + _bech32CreateChecksum(hrp, data, spec); - String encoded = '${hrp}1${combined.map((d) => _charset[d]).join('')}'; - return encoded; -} - -/// Function to decode a Bech32 string into its components. -(String, List, Bech32Type)? _bech32Decode(String bech) { - if (bech.runes.any((x) => x < 33 || x > 126) || - (bech.toLowerCase() != bech && bech.toUpperCase() != bech)) { - return null; - } - bech = bech.toLowerCase(); - int pos = bech.lastIndexOf('1'); - if (pos < 1 || pos + 7 > bech.length || bech.length > 90) { - return null; - } - if (!bech.substring(pos + 1).split('').every((x) => _charset.contains(x))) { - return null; - } - String hrp = bech.substring(0, pos); - List data = bech - .substring(pos + 1) - .split('') - .map((x) => _charset.indexOf(x)) - .toList(); - Bech32Type? spec = _bech32VerifyChecksum(hrp, data); - if (spec == null) { - return null; - } - return (hrp, data.sublist(0, data.length - 6), spec); -} - -/// Function to decode a Bech32-encoded string into its version and data. -Bech32Result? decodeBech32(String address, {bool versifyVersion = true}) { - final decodeBech = _bech32Decode(address); - if (decodeBech == null) return null; - final data = decodeBech.$2; - final bits = convertBits(data.sublist(1), 5, 8, pad: false); - if (bits == null || bits.length < 2 || bits.length > 40) { - return null; - } - if (data[0] > 16) { - return null; - } - if (data[0] == 0 && bits.length != 20 && bits.length != 32) { - return null; - } - if (versifyVersion) { - final spec = decodeBech.$3; - if (data[0] == 0 && spec != Bech32Type.bech32 || - data[0] != 0 && spec != Bech32Type.bech32M) { - return null; - } - } - return Bech32Result( - data: Uint8List.fromList(bits), hrp: decodeBech.$1, version: data[0]); -} - -/// Function to encode data as a Bech32 string. -String? encodeBech32(String hrp, Uint8List data, int? version) { - final type = (version ?? 0) == 0 ? Bech32Type.bech32 : Bech32Type.bech32M; - List? bits = convertBits(data, 8, 5); - if (bits == null) { - return null; - } - if (version != null) { - bits = [version, ...bits]; - } - final en = _bech32Encode(hrp, bits, type); - if (decodeBech32(en, versifyVersion: version != null) == null) { - return null; - } - return en; -} +/// Export statement for Segregated Witness (SegWit) Bech32 encoding. +export 'segwit_bech32.dart'; diff --git a/lib/bech32/bech32_base.dart b/lib/bech32/bech32_base.dart new file mode 100644 index 0000000..06c21ff --- /dev/null +++ b/lib/bech32/bech32_base.dart @@ -0,0 +1,134 @@ +import 'bech32_utils.dart'; + +/// An enumeration representing different Bech32 encodings. +enum Bech32Encodings { + /// The standard Bech32 encoding. + bech32, + + /// The Bech32m encoding, an improved and more error-resistant variant. + bech32m, +} + +/// A utility class containing constants and configurations for Bech32 encoding. +class Bech32Const { + /// The separator character used in Bech32 encoded strings. + static const String separator = '1'; + + /// The length of the checksum part in a Bech32 encoded string. + static const int checksumStrLen = 6; + + /// A map associating each Bech32 encoding with its corresponding checksum constant. + static const Map encodingChecksumConst = { + Bech32Encodings.bech32: 1, + Bech32Encodings.bech32m: 0x2bc830a3, + }; +} + +/// A utility class containing methods for converting data to and from bech32 encoding. +class Bech32Utils { + /// Computes the polynomial modulus. + static int polyMod(List values) { + // Generator polynomial + final generator = [ + 0x3b6a57b2, + 0x26508e6d, + 0x1ea119fa, + 0x3d4233dd, + 0x2a1462b3 + ]; + + // Compute modulus + var chk = 1; + for (final value in values) { + final top = chk >> 25; + chk = (chk & 0x1ffffff) << 5 ^ value; + for (var i = 0; i < 5; i++) { + chk ^= (top >> i) & 1 != 0 ? generator[i] : 0; + } + } + return chk; + } + + /// Expand the HRP into values for checksum computation. + static List hrpExpand(String hrp) { + final List expand = []; + for (int i = 0; i < hrp.length; i++) { + final codeUnit = hrp.codeUnitAt(i); + expand.add(codeUnit >> 5); + } + expand.add(0); + for (int i = 0; i < hrp.length; i++) { + final codeUnit = hrp.codeUnitAt(i); + expand.add(codeUnit & 0x1f); + } + return expand; + } + + /// Compute the checksum from the specified HRP and data. + static List computeChecksum(String hrp, List data, + [Bech32Encodings encoding = Bech32Encodings.bech32]) { + final values = [...hrpExpand(hrp), ...data]; + final polymod = (polyMod([...values, 0, 0, 0, 0, 0, 0]) ^ + Bech32Const.encodingChecksumConst[encoding]!); + + return List.from([ + for (var i = 0; i < Bech32Const.checksumStrLen; i++) + (polymod >> (5 * (5 - i))) & 0x1f + ]); + } + + /// Verify the checksum from the specified HRP and converted data characters. + static bool verifyChecksum(String hrp, List data, + [Bech32Encodings encoding = Bech32Encodings.bech32]) { + final polymod = polyMod([...hrpExpand(hrp), ...data]); + return polymod == Bech32Const.encodingChecksumConst[encoding]; + } +} + +/// A class for encoding data into Bech32 format using the standard Bech32 encoding. +class Bech32Encoder extends Bech32EncoderBase { + /// Encodes data with a Human-Readable Part (HRP) into a Bech32 string. + /// + /// This method takes an HRP and a byte array and encodes them into a Bech32 + /// string using the standard Bech32 encoding. + /// + /// - [hrp]: The Human-Readable Part (prefix) of the Bech32 string. + /// - [bytes]: The byte array to encode. + /// + /// Returns the encoded Bech32 string. + static String encode(String hrp, List bytes) { + return Bech32EncoderBase.encodeBech32( + hrp, + Bech32BaseUtils.convertToBase32(bytes), + Bech32Const.separator, + Bech32Utils.computeChecksum); + } +} + +/// A class for decoding Bech32-encoded strings using the standard Bech32 decoding. +class Bech32Decoder extends Bech32DecoderBase { + /// Decodes a Bech32-encoded address into a byte array. + /// + /// This method takes a Human-Readable Part (HRP) and a Bech32-encoded address + /// and decodes them into a byte array using the standard Bech32 decoding. + /// + /// - [hrp]: The expected Human-Readable Part (prefix) of the address. + /// - [address]: The Bech32-encoded address to decode. + /// + /// Returns the decoded byte array. + /// + /// Throws an ArgumentError if the decoding fails or if the HRP doesn't match. + static List decode(String hrp, String address) { + final decode = Bech32DecoderBase.decodeBech32( + address, + Bech32Const.separator, + Bech32Const.checksumStrLen, + Bech32Utils.verifyChecksum); + if (hrp != decode.$1) { + throw ArgumentError( + "Invalid format (HRP not valid, expected {$hrp}, got {${decode.$1}})"); + } + final result = Bech32BaseUtils.convertFromBase32(decode.$2); + return result; + } +} diff --git a/lib/bech32/bech32_ex.dart b/lib/bech32/bech32_ex.dart new file mode 100644 index 0000000..a9ead24 --- /dev/null +++ b/lib/bech32/bech32_ex.dart @@ -0,0 +1,16 @@ +/// An exception class representing errors related to Bech32 checksum validation. +class Bech32ChecksumError implements Exception { + /// Creates a new instance of [Bech32ChecksumError]. + /// + /// Parameters: + /// - message: An optional error message describing the checksum error. + const Bech32ChecksumError([this.message]); + + /// The error message associated with this checksum error. + final String? message; + + @override + String toString() { + return message ?? super.toString(); + } +} diff --git a/lib/bech32/bech32_utils.dart b/lib/bech32/bech32_utils.dart new file mode 100644 index 0000000..314bb55 --- /dev/null +++ b/lib/bech32/bech32_utils.dart @@ -0,0 +1,234 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bech32/bech32_ex.dart'; + +/// A utility class containing constants for Bech32 encoding and decoding. +class Bech32BaseConst { + /// The character set used for Bech32 encoding and decoding. + static const String charset = "qpzry9x8gf2tvdw0s3jn54khce6mua7l"; +} + +/// A utility class containing methods for converting data to and from bech32 encoding. +class Bech32BaseUtils { + /// Converts the input data to base32 encoding. + /// + /// Parameters: + /// - data: The input data to be converted to base32. + /// + /// Returns: + /// A List containing the data in base32 encoding. + /// + /// Throws: + /// - ArgumentError: If the data cannot be converted to base32. + static List convertToBase32(List data) { + List? convData = _convertBits(data, 8, 5); + if (convData == null) { + throw ArgumentError('Invalid data, cannot perform conversion to base32'); + } + + return convData; + } + + /// Converts the input data from base32 encoding. + /// + /// Parameters: + /// - data: A List of integers representing the data in base32 encoding. + /// + /// Returns: + /// A List containing the data converted from base32 encoding. + /// + /// Throws: + /// - ArgumentError: If the data cannot be converted from base32. + static List convertFromBase32(List data) { + List? convData = _convertBits(data, 5, 8, pad: false); + if (convData == null) { + throw ArgumentError( + 'Invalid data, cannot perform conversion from base32'); + } + + return convData; + } + + static List? _convertBits( + List data, + int fromBits, + int toBits, { + bool pad = true, + }) { + /// Perform bit conversion. + + final int maxOutVal = (1 << toBits) - 1; + final int maxAcc = (1 << (fromBits + toBits - 1)) - 1; + + int acc = 0; + int bits = 0; + final List ret = []; + + for (final int value in data) { + // Value shall not be less than zero or greater than 2^fromBits + if (value < 0 || (value >> fromBits) != 0) { + return null; + } + // Continue accumulating until greater than toBits + acc = ((acc << fromBits) | value) & maxAcc; + bits += fromBits; + while (bits >= toBits) { + bits -= toBits; + ret.add((acc >> bits) & maxOutVal); + } + } + if (pad) { + if (bits > 0) { + // Pad the value with zeros to reach toBits + ret.add((acc << (toBits - bits)) & maxOutVal); + } + } else if (bits >= fromBits || + ((acc << (toBits - bits)) & maxOutVal) != 0) { + return null; + } + + return List.from(ret); + } +} + +/// An abstract base class for Bech32 encoding implementations. +abstract class Bech32EncoderBase { + /// Encodes data into a Bech32 string. + /// + /// Parameters: + /// - hrp: The Human-Readable Part (prefix) of the Bech32 string. + /// - data: The data to be encoded as a List. + /// - sep: The separator character used in the Bech32 string. + /// - computeChecksum: A function that computes the checksum for the Bech32 string. + /// + /// Returns: + /// A Bech32-encoded string representing the provided data with a checksum. + static String encodeBech32(String hrp, List data, String sep, + List Function(String hrp, List data) computeChecksum) { + final checksum = computeChecksum(hrp, data); + + data = List.from([...data, ...checksum]); + + final encodedData = + hrp + sep + data.map((e) => Bech32BaseConst.charset[e]).join(); + + return encodedData; + } +} + +/// An abstract base class for Bech32 decoding implementations. +abstract class Bech32DecoderBase { + /// Decodes a Bech32-encoded string into its components. + /// + /// Parameters: + /// - bechStr: The Bech32-encoded string to decode. + /// - sep: The separator character used in the Bech32 string. + /// - checksumLen: The length of the checksum in the Bech32 string. + /// - verifyChecksum: A function that verifies the checksum of the Bech32 string. + /// + /// Returns: + /// A tuple containing the Human-Readable Part (HRP) and the data part of the Bech32-encoded string. + /// + /// Throws: + /// - ArgumentError: If the input string is mixed case, lacks a separator, HRP is invalid, or the checksum is invalid. + /// + static (String, List) decodeBech32( + String bechStr, + String sep, + int checksumLen, + bool Function(String hrp, List data) verifyChecksum) { + if (_isStringMixed(bechStr)) { + throw ArgumentError('Invalid bech32 format (string is mixed case)'); + } + + bechStr = bechStr.toLowerCase(); + + final sepPos = bechStr.lastIndexOf(sep); + if (sepPos == -1) { + throw ArgumentError('Invalid bech32 format (no separator found)'); + } + + final hrp = bechStr.substring(0, sepPos); + if (hrp.isEmpty || hrp.codeUnits.any((x) => x < 33 || x > 126)) { + throw ArgumentError('Invalid bech32 format (HRP not valid: $hrp)'); + } + + final dataPart = bechStr.substring(sepPos + 1); + + if (dataPart.length < checksumLen + 1 || + dataPart.codeUnits.any( + (x) => !Bech32BaseConst.charset.contains(String.fromCharCode(x)))) { + throw ArgumentError('Invalid bech32 format (data part not valid)'); + } + + final intData = dataPart.codeUnits + .map((x) => Bech32BaseConst.charset.indexOf(String.fromCharCode(x))) + .toList(); + if (!verifyChecksum(hrp, intData)) { + throw const Bech32ChecksumError('Invalid bech32 checksum'); + } + + return ( + hrp, + List.from(intData.sublist(0, intData.length - checksumLen)) + ); + } + + static bool _isStringMixed(String str) { + final hasLowerCase = str.contains(RegExp(r'[a-z]')); + final hasUpperCase = str.contains(RegExp(r'[A-Z]')); + return hasLowerCase && hasUpperCase; + } +} diff --git a/lib/bech32/segwit_bech32.dart b/lib/bech32/segwit_bech32.dart new file mode 100644 index 0000000..85ae5f1 --- /dev/null +++ b/lib/bech32/segwit_bech32.dart @@ -0,0 +1,128 @@ +import 'bech32_base.dart'; +import 'bech32_utils.dart'; + +/// A utility class containing constants used for segwit Bech32 encoding and decoding. +class SegwitBech32Const { + /// Separator + static const separator = Bech32Const.separator; + + /// Checksum length + static const checksumStrLen = Bech32Const.checksumStrLen; + + /// Minimum witness program length in bytes + static const witnessProgMinByteLen = 2; + + /// Maximum witness program length in bytes + static const witnessProgMaxByteLen = 40; + + /// Witness version for Bech32 encoding + static const witnessVerBech32 = 0; + + /// Witness version maximum value + static const witnessVerMaxVal = 16; + + /// Accepted data lengths when witness version is zero + static const witnessVerZeroDataByteLen = [20, 32]; +} + +/// A class for encoding Segregated Witness (SegWit) addresses using Bech32 encoding. +class SegwitBech32Encoder extends Bech32EncoderBase { + /// Encodes a Segregated Witness (SegWit) address using Bech32 encoding. + /// + /// This method takes a Human-Readable Part (HRP), a SegWit version, and a + /// witness program. It encodes them into a Bech32-encoded SegWit address. + /// + /// - [hrp]: The Human-Readable Part (prefix) for the address. + /// - [witVer]: The SegWit version. + /// - [witProg]: The witness program bytes. + /// + /// Returns the Bech32-encoded SegWit address. + static String encode(String hrp, int witVer, List witProg) { + return Bech32EncoderBase.encodeBech32( + hrp, + List.from([witVer, ...Bech32BaseUtils.convertToBase32(witProg)]), + SegwitBech32Const.separator, + _computeChecksum); + } + + /// Computes the checksum for SegWit Bech32 encoding. + /// + /// This method computes the checksum for SegWit Bech32 encoding based on the + /// provided Human-Readable Part (HRP) and encoded data. It determines the + /// encoding (bech32 or bech32m) based on the SegWit version and returns the + /// computed checksum. + /// + /// - [hrp]: The Human-Readable Part (HRP) for the address. + /// - [data]: The encoded data. + /// + /// Returns the computed checksum as a list of integers. + static List _computeChecksum(String hrp, List data) { + final encoding = data[0] == SegwitBech32Const.witnessVerBech32 + ? Bech32Encodings.bech32 + : Bech32Encodings.bech32m; + return Bech32Utils.computeChecksum(hrp, data, encoding); + } +} + +/// A class for decoding Segregated Witness (SegWit) addresses from Bech32 encoding. +class SegwitBech32Decoder extends Bech32DecoderBase { + /// Decodes a Bech32-encoded SegWit address. + /// + /// This method decodes a Bech32-encoded SegWit address, verifying its format, + /// Human-Readable Part (HRP), witness version, and witness program. + /// + /// - [hrp]: The expected Human-Readable Part (HRP) for the address. + /// - [addr]: The Bech32-encoded SegWit address to decode. + /// + /// Returns a tuple containing the SegWit version (witness version) and the + /// decoded witness program as a List. + static (int, List) decode(String hrp, String addr) { + final decoded = Bech32DecoderBase.decodeBech32( + addr, + SegwitBech32Const.separator, + SegwitBech32Const.checksumStrLen, + _verifyChecksum); + final hrpGot = decoded.$1; + final data = decoded.$2; + + // Check HRP + if (hrp != hrpGot) { + throw FormatException( + 'Invalid format (HRP not valid, expected $hrp, got $hrpGot)'); + } + + // Convert back from base32 (remove witness version) + final convData = Bech32BaseUtils.convertFromBase32(data.sublist(1)); + + // Check data length + if (convData.length < SegwitBech32Const.witnessProgMinByteLen || + convData.length > SegwitBech32Const.witnessProgMaxByteLen) { + throw FormatException( + 'Invalid format (witness program length not valid: ${convData.length})'); + } + + // Check witness version + final witVer = data[0]; + if (witVer > SegwitBech32Const.witnessVerMaxVal) { + throw FormatException( + 'Invalid format (witness version not valid: $witVer)'); + } + + if (witVer == 0 && + !SegwitBech32Const.witnessVerZeroDataByteLen + .contains(convData.length)) { + throw FormatException( + 'Invalid format (length not valid: ${convData.length})'); + } + + return (witVer, convData); + } + + static bool _verifyChecksum(String hrp, List data) { + final encoding = (data[0] == SegwitBech32Const.witnessVerBech32 + ? Bech32Encodings.bech32 + : Bech32Encodings.bech32m); + + return Bech32Utils.verifyChecksum(hrp, data, encoding); + } +} diff --git a/lib/binary/binary_operation.dart b/lib/binary/binary_operation.dart new file mode 100644 index 0000000..8c3781f --- /dev/null +++ b/lib/binary/binary_operation.dart @@ -0,0 +1,107 @@ +/// Writes a 64-bit unsigned integer value in little-endian byte order to a list. +List writeUint64LE(int value, [List? out, int offset = 0]) { + out ??= List.filled(8, 0); + + writeUint32LE(value & mask32, out, offset); + writeUint32LE((value >> 32) & mask32, out, offset + 4); + + return out; +} + +/// Writes a 32-bit unsigned integer value in little-endian byte order to a list. +void writeUint32LE(int value, List out, [int offset = 0]) { + out[offset + 0] = (value & mask8); + out[offset + 1] = ((value >> 8) & mask8); + out[offset + 2] = ((value >> 16) & mask8); + out[offset + 3] = ((value >> 24) & mask8); +} + +/// Writes a 16-bit unsigned integer value in little-endian byte order to a list. +void writeUint16LE(int value, List out, [int offset = 0]) { + out[offset + 0] = (value & mask8); + out[offset + 1] = ((value >> 8) & mask8); +} + +/// Reads a 32-bit unsigned integer value in little-endian byte order from a list. +int readUint32LE(List array, [int offset = 0]) { + return ((array[offset + 3] << 24) | + (array[offset + 2] << 16) | + (array[offset + 1] << 8) | + array[offset]) & + mask32; +} + +/// Writes a 32-bit unsigned integer value in big-endian byte order to a list. +void writeUint32BE(int value, List out, [int offset = 0]) { + out[offset + 0] = (value >> 24) & mask8; + out[offset + 1] = (value >> 16) & mask8; + out[offset + 2] = (value >> 8) & mask8; + out[offset + 3] = value & mask8; +} + +/// Writes a 16-bit unsigned integer value in big-endian byte order to a list. +void writeUint16BE(int value, List out, [int offset = 0]) { + out[offset] = (value >> 8) & mask8; + out[offset + 1] = value & mask8; +} + +/// Reads a 32-bit unsigned integer value in big-endian byte order from a list. +int readUint32BE(List array, [int offset = 0]) { + return ((array[offset] << 24) | + (array[offset + 1] << 16) | + (array[offset + 2] << 8) | + array[offset + 3]) & + mask32; +} + +/// Reads a 16-bit unsigned integer value in big-endian byte order from a list. +int readUint16BE(List data, [int offset = 0]) { + if (offset < 0 || offset + 2 > data.length) { + throw RangeError('Index out of bounds'); + } + return ((data[offset] & mask8) << 8) | (data[offset + 1] & mask8); +} + +/// Reads an 8-bit unsigned integer value from a list. +int readUint8(List array, [int offset = 0]) { + return array[offset] & mask8; +} + +/// A constant representing a 32-bit mask with all bits set to 1. +const mask32 = 0xFFFFFFFF; + +/// A constant representing a 16-bit mask with all bits set to 1. +const mask16 = 0xFFFF; + +/// A constant representing a 13-bit mask with all relevant bits set to 1. +const mask13 = 0x1fff; + +/// A constant representing an 8-bit mask with all bits set to 1. +const mask8 = 0xFF; + +/// Adds two 32-bit integers and applies a mask to ensure the result fits within 32 bits. +int add32(int x, int y) => (x + y) & mask32; + +/// Rotates a 32-bit integer left by a specified number of bits. +int rotl32(int val, int shift) { + var modShift = shift & 31; + return ((val << modShift) & mask32) | ((val & mask32) >> (32 - modShift)); +} + +/// Rotates a 32-bit integer right by a specified number of bits. +int rotr32(int val, int shift) { + var modShift = shift & 31; + return ((val >> modShift) & mask32) | ((val & mask32) << (32 - modShift)); +} + +/// Right-shifts a 32-bit integer by 16 bits and applies a mask to ensure the result fits within 16 bits. +int shr16(int x) { + return (x >> 16) & mask16; +} + +/// Sets all elements in a list to zero. +void zero(List array) { + for (int i = 0; i < array.length; i++) { + array[i] = 0; + } +} diff --git a/lib/binary/bit_utils.dart b/lib/binary/bit_utils.dart new file mode 100644 index 0000000..a88ffff --- /dev/null +++ b/lib/binary/bit_utils.dart @@ -0,0 +1,32 @@ +/// Class container for bit utility functions. +class BitUtils { + /// Get if the specified bit is set. + static bool intIsBitSet(int value, int bitNum) { + return (value & (1 << bitNum)) != 0; + } + + /// Get if the specified bits are set. + static bool areBitsSet(int value, int bitMask) { + return (value & bitMask) != 0; + } + + /// Set the specified bit. + static int setBit(int value, int bitNum) { + return value | (1 << bitNum); + } + + /// Set the specified bits. + static int setBits(int value, int bitMask) { + return value | bitMask; + } + + /// Reset the specified bit. + static int resetBit(int value, int bitNum) { + return value & ~(1 << bitNum); + } + + /// Reset the specified bits. + static int resetBits(int value, int bitMask) { + return value & ~bitMask; + } +} diff --git a/lib/binary/utils.dart b/lib/binary/utils.dart new file mode 100644 index 0000000..6224569 --- /dev/null +++ b/lib/binary/utils.dart @@ -0,0 +1,60 @@ +import 'package:blockchain_utils/binary/binary_operation.dart'; +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/string/string.dart'; + +import 'package:blockchain_utils/hex/hex.dart' as hex; + +/// A utility class for working with binary data represented as lists of integers (bytes). +class BytesUtils { + /// Performs a bitwise XOR operation on two lists of bytes. + /// + /// Takes two lists of bytes and returns a new list where each byte is the result + /// of the XOR operation between the corresponding bytes in the input lists. + static List xor(List dataBytes1, List dataBytes2) { + return List.from(List.generate( + dataBytes1.length, + (index) => dataBytes1[index] ^ dataBytes2[index], + )); + } + + /// Converts a list of bytes to a binary string representation. + /// + /// Converts the input list of bytes to a binary string, optionally adding leading + /// zeros to ensure a specific bit length. + static String toBinary(List dataBytes, {int zeroPadBitLen = 0}) { + return BigintUtils.toBinary( + BigintUtils.fromBytes(dataBytes), zeroPadBitLen); + } + + /// Converts a binary string to a list of bytes. + /// + /// Parses a binary string and converts it back to a list of bytes. An optional + /// parameter allows padding the result with zeros to achieve a specific byte length. + static List fromBinary(String data, {int zeroPadByteLen = 0}) { + BigInt intValue = BigInt.parse(data, radix: 2); + String hexValue = intValue.toRadixString(16).padLeft(zeroPadByteLen, '0'); + return fromHexString(hexValue); + } + + /// Converts a list of bytes to a hexadecimal string representation. + /// + /// Converts the input list of bytes to a hexadecimal string using the `hex` library. + static String toHexString(List dataBytes) { + return hex.hex.encode(dataBytes); + } + + /// Converts a hexadecimal string to a list of bytes. + /// + /// Parses a hexadecimal string and converts it to a list of bytes using the `hex` library. + static List fromHexString(String data) { + return hex.hex.decode(StringUtils.strip0x(data)); + } + + /// Ensures that each byte is properly represented as an 8-bit integer. + /// + /// Performs a bitwise AND operation with a mask (`mask8`) to ensure that each byte in + /// the input list is represented as an 8-bit integer. + static List toBytes(List bytes) { + return bytes.map((e) => e & mask8).toList(); + } +} diff --git a/lib/bip/address/ada_byron_addr.dart b/lib/bip/address/ada_byron_addr.dart new file mode 100644 index 0000000..7d14bc9 --- /dev/null +++ b/lib/bip/address/ada_byron_addr.dart @@ -0,0 +1,475 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/base58/base58_base.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_path.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/cbor/types/bytes.dart'; +import 'package:blockchain_utils/cbor/types/cbor_tag.dart'; +import 'package:blockchain_utils/cbor/types/int.dart'; +import 'package:blockchain_utils/cbor/types/list.dart'; +import 'package:blockchain_utils/cbor/types/map.dart'; +import 'package:blockchain_utils/crypto/crypto/crc32/crc32.dart'; + +/// Enum representing different address types used in the Ada Byron era. +/// +/// The AdaByronAddrTypes enum defines two address types: +/// - `publicKey`: Represents the address type for public keys. +/// - `redemption`: Represents the address type for redemption addresses. +/// +/// Each address type is associated with a unique integer value for identification. +/// +/// Example Usage: +/// ```dart +/// final addressType = AdaByronAddrTypes.publicKey; +/// print('Address Type: $addressType'); // Output: Address Type: AdaByronAddrTypes.publicKey +/// ``` +enum AdaByronAddrTypes { + /// Represents the address type for public keys. + publicKey(0), + + /// Represents the address type for redemption addresses. + redemption(2); + + final int value; + + /// Constructor for AdaByronAddrTypes. + const AdaByronAddrTypes(this.value); + + /// Factory method to create an AdaByronAddrTypes enum value from an integer value. + factory AdaByronAddrTypes.fromValue(CborIntValue value) { + return values.firstWhere((element) => element.value == value.value); + } +} + +/// Constants related to Ada Byron era addresses in Cardano. +/// +/// The AdaByronAddrConst class contains various constants used for Ada Byron era addresses: +/// - `chacha20Poly1305AssocData`: An empty List used as associated data for encryption. +/// - `chacha20Poly1305Nonce`: A predefined nonce used for encryption purposes. +/// - `payloadTag`: An integer representing the payload tag for Ada Byron era addresses. +/// +/// These constants are essential for handling and processing Ada Byron era addresses. +class AdaByronAddrConst { + /// An empty List used as associated data for encryption. + static final List chacha20Poly1305AssocData = List.empty(); + + /// A predefined nonce used for encryption purposes. + static final List chacha20Poly1305Nonce = + List.from('serokellfore'.codeUnits); + + /// An integer representing the payload tag for Ada Byron era addresses. + static const int payloadTag = 24; +} + +class _AdaByronAddrHdPath { + static Bip32Path decrypt(List hdPathEncBytes, List hdPathKeyBytes) { + final plainTextBytes = QuickCrypto.chaCha20Poly1305Decrypt( + key: hdPathKeyBytes, + nonce: AdaByronAddrConst.chacha20Poly1305Nonce, + assocData: AdaByronAddrConst.chacha20Poly1305AssocData, + cipherText: hdPathEncBytes, + ); + final decode = CborObject.fromCbor(plainTextBytes); + if (decode is! CborListValue) { + throw ArgumentError("invalid bip32 path"); + } + final paths = decode.value + .map((e) => Bip32KeyIndex(e is String ? int.parse(e) : e as int)) + .toList(); + return Bip32Path(elems: paths, isAbsolute: true); + } + + static List encrypt(Bip32Path hdPath, List hdPathKeyBytes) { + final result = QuickCrypto.chaCha20Poly1305Encrypt( + key: hdPathKeyBytes, + nonce: AdaByronAddrConst.chacha20Poly1305Nonce, + assocData: AdaByronAddrConst.chacha20Poly1305AssocData, + plainText: CborListValue.dynamicLength(hdPath.toList()).encode(), + ); + return result; + } +} + +class _AdaByronAddrAttrs { + final List? hdPathEncBytes; + final int? networkMagic; + + _AdaByronAddrAttrs( + {required this.hdPathEncBytes, required this.networkMagic}); + + factory _AdaByronAddrAttrs.fromJson(CborMapValue cborValue) { + const cborOne = CborIntValue(1); + const cborTwo = CborIntValue(2); + if (cborValue.value.length > 2 || + (cborValue.value.isNotEmpty && + !cborValue.value.containsKey(cborOne) && + !cborValue.value.containsKey(cborTwo))) { + throw ArgumentError('Invalid address attributes'); + } + final hdPath = cborValue.value.containsKey(cborOne) + ? CborObject.fromCbor( + (cborValue.value[cborOne]! as CborBytesValue).value) + .value + : null; + final networkMagic = cborValue.value.containsKey(cborTwo) + ? CborObject.fromCbor( + (cborValue.value[cborOne]! as CborBytesValue).value) + .value + : null; + return _AdaByronAddrAttrs( + hdPathEncBytes: hdPath, + networkMagic: networkMagic, + ); + } + + Map> toJson() { + final attrs = >{}; + if (hdPathEncBytes != null) { + attrs[1] = CborBytesValue(hdPathEncBytes!).encode(); + } + if (networkMagic != null) { + attrs[2] = CborIntValue(networkMagic!).encode(); + } + return attrs; + } +} + +class _AdaByronAddrSpendingData { + AdaByronAddrTypes type; + List keyBytes; + + _AdaByronAddrSpendingData({required this.type, required this.keyBytes}); +} + +class _AdaByronAddrRoot { + _AdaByronAddrRoot( + {required this.type, required this.spendingData, required this.attrs}); + AdaByronAddrTypes type; + _AdaByronAddrSpendingData spendingData; + _AdaByronAddrAttrs attrs; + + List hash() { + return QuickCrypto.blake2b224Hash(QuickCrypto.sha3256Hash(serialize())); + } + + List serialize() { + return CborListValue.fixedLength([ + CborIntValue(type.value), + CborListValue.fixedLength( + [spendingData.type.value, spendingData.keyBytes]), + attrs.toJson(), + ]).encode(); + } +} + +class _AdaByronAddrPayload { + List rootHashBytes; + _AdaByronAddrAttrs attrs; + AdaByronAddrTypes type; + + _AdaByronAddrPayload( + {required this.rootHashBytes, required this.attrs, required this.type}); + + factory _AdaByronAddrPayload.deserialize(List serPayloadBytes) { + final addrPayload = CborObject.fromCbor(serPayloadBytes); + if (addrPayload is! CborListValue || addrPayload.value.length != 3) { + throw const FormatException("Invalid address payload"); + } + if (addrPayload.value[0] is! CborBytesValue || + addrPayload.value[1] is! CborMapValue || + addrPayload.value[2] is! CborIntValue) { + throw const FormatException("Invalid address payload"); + } + final cborBytes = addrPayload.value[0] as CborBytesValue; + // Check key hash length + AddrDecUtils.validateBytesLength( + cborBytes.value, QuickCrypto.blake2b224DigestSize); + + return _AdaByronAddrPayload( + rootHashBytes: cborBytes.value, + attrs: _AdaByronAddrAttrs.fromJson(addrPayload.value[1]), + type: AdaByronAddrTypes.fromValue(addrPayload.value[2]), + ); + } + + List serialize() { + return CborListValue.fixedLength([ + CborBytesValue(rootHashBytes), + attrs.toJson(), + CborIntValue(type.value) + ]).encode(); + } +} + +class _AdaByronAddr { + _AdaByronAddrPayload payload; + + _AdaByronAddr({required this.payload}); + + factory _AdaByronAddr.decode(String addr) { + return _AdaByronAddr.deserialize(Base58Decoder.decode(addr)); + } + + String encode() { + return Base58Encoder.encode(serialize()); + } + + factory _AdaByronAddr.deserialize(List serAddrBytes) { + final addrBytes = CborObject.fromCbor(serAddrBytes); + if (addrBytes is! CborListValue || addrBytes.value.length != 2) { + throw const FormatException("Invalid address encoding"); + } + if (addrBytes.value[0] is! CborBytesValue || + addrBytes.value[1] is! CborIntValue) { + throw const FormatException("Invalid address encoding"); + } + final decodeCbor = addrBytes.value[0] as CborBytesValue; + if (decodeCbor.tags.isEmpty || + decodeCbor.tags.first != AdaByronAddrConst.payloadTag) { + throw const FormatException("Invalid CBOR tag"); + } + final crcTag = (addrBytes.value[1] as CborIntValue).value; + // // Check CRC + final crc32Got = Crc32.quickIntDigest(decodeCbor.value); + if (crc32Got != crcTag) { + throw FormatException("Invalid CRC (expected: $crcTag, got: $crc32Got)"); + } + + return _AdaByronAddr( + payload: _AdaByronAddrPayload.deserialize(decodeCbor.value)); + } + + List serialize() { + final payloadBytes = payload.serialize(); + return CborListValue.fixedLength([ + CborTagValue(payloadBytes, [AdaByronAddrConst.payloadTag]), + CborIntValue(Crc32.quickIntDigest(payloadBytes)), + ]).encode(); + } +} + +class _AdaByronAddrUtils { + static String encodeKey(List pubKeyBytes, List chainCodeBytes, + AdaByronAddrTypes addrType, + {List? hdPathEncBytes}) { + final addrAttrs = + _AdaByronAddrAttrs(hdPathEncBytes: hdPathEncBytes, networkMagic: null); + + // Get address root + final addrRoot = _AdaByronAddrRoot( + type: addrType, + spendingData: _AdaByronAddrSpendingData( + type: addrType, + keyBytes: + List.from([...pubKeyBytes.sublist(1), ...chainCodeBytes])), + attrs: addrAttrs, + ); + final addrHash = addrRoot.hash(); + // Get address payload + final addrPayload = _AdaByronAddrPayload( + rootHashBytes: addrHash, attrs: addrAttrs, type: addrType); + final encode = _AdaByronAddr(payload: addrPayload).encode(); + // Add CRC32 and encode to base58 + return encode; + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Ada Byron address. +class AdaByronAddrDecoder implements BlockchainAddressDecoder { + /// Decrypts an encrypted Hierarchical Deterministic (HD) path using the provided key. + /// + /// The [hdPathEncBytes] parameter represents the encrypted HD path to decrypt. + /// The [hdPathKeyBytes] parameter is the key used for decryption. + /// + /// Returns a [Bip32Path] representing the decrypted HD path. + static Bip32Path decryptHdPath( + List hdPathEncBytes, List hdPathKeyBytes) { + return _AdaByronAddrHdPath.decrypt(hdPathEncBytes, hdPathKeyBytes); + } + + /// Splits the decoded bytes into address root hash and encrypted HD path. + /// + /// The [decBytes] parameter represents the decoded bytes containing both address root hash + /// and encrypted HD path. + /// + /// Returns a tuple containing two [List] elements: address root hash and encrypted HD path. + static (List, List) splitDecodedBytes(List decBytes) { + final addressRootHash = + List.from(decBytes.sublist(0, QuickCrypto.blake2b224DigestSize)); + final encryptedHdPath = + List.from(decBytes.sublist(QuickCrypto.blake2b224DigestSize)); + return (addressRootHash, encryptedHdPath); + } + + /// Decodes an Ada Byron address and returns its components. + /// + /// The [addr] parameter is the Ada Byron address to decode. + /// The optional [kwargs] parameter is a map of additional arguments, where "addr_type" can be set to + /// specify the address type (default is `AdaByronAddrTypes.publicKey`). + /// + /// Returns a [List] representing the decoded address components, including root hash and HD path if available. + /// + /// Throws an [ArgumentError] if the provided address type is invalid or if the + /// address type in the decoded address does not match the expected type. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + final addrType = kwargs["addr_type"] ?? AdaByronAddrTypes.publicKey; + if (addrType is! AdaByronAddrTypes) { + throw ArgumentError( + 'Address type is not an enumerative of AdaByronAddrTypes'); + } + + final decAddr = _AdaByronAddr.decode(addr); + if (decAddr.payload.type != addrType) { + throw ArgumentError('Invalid address type'); + } + return List.from([ + ...decAddr.payload.rootHashBytes, + if (decAddr.payload.attrs.hdPathEncBytes != null) + ...decAddr.payload.attrs.hdPathEncBytes!, + ]); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Ada Byron Icarus address. +class AdaByronIcarusAddrEncoder implements BlockchainAddressEncoder { + /// Encodes an Ada Byron address with the provided public key and chain code. + /// + /// The [pubKey] parameter is the public key to be encoded. + /// The optional [kwargs] parameter is a map of additional arguments, where "chain_code" can be set to specify the chain code. + /// + /// Returns a string representing the encoded Ada Byron address. + /// + /// Throws an [ArgumentError] if the provided chain code is invalid. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + List chainCodeBytes; + final chainCode = kwargs["chain_code"]; + if (chainCode is Bip32ChainCode) { + chainCodeBytes = chainCode.toBytes(); + } else if (chainCode is List) { + chainCodeBytes = chainCode; + } else { + throw ArgumentError("invalid chaincode "); + } + final pubkeyBytes = + AddrKeyValidator.validateAndGetEd25519Key(pubKey).compressed; + + return _AdaByronAddrUtils.encodeKey( + pubkeyBytes, chainCodeBytes, AdaByronAddrTypes.publicKey); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Ada Byron Legacy address. +class AdaByronLegacyAddrEncoder implements BlockchainAddressEncoder { + /// Encodes an Ada Byron Legacy address with the provided public key, chain code, and optional HD path information. + /// + /// The [pubKey] parameter is the public key to be encoded. + /// The optional [kwargs] parameter is a map of additional arguments, including: + /// - "hd_path": A string or [Bip32Path] specifying the hierarchical deterministic (HD) path. + /// - "chain_code": A bytes or [Bip32ChainCode] representing the chain code. + /// - "hd_path_key": An optional bytes for the HD path key (must be 32 bytes). + /// + /// Returns a string representing the encoded Ada Byron Legacy address. + /// + /// Throws an [ArgumentError] if the provided HD path, chain code, or HD path key is invalid. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + Bip32Path hdPath; + if (kwargs["hd_path"] is String) { + hdPath = Bip32PathParser.parse(kwargs["hd_path"]); + } else { + if (kwargs["hd_path"] is! Bip32Path) { + throw ArgumentError("hd path must be string or Bip32Path"); + } + hdPath = kwargs["hd_path"]; + } + + List chainCodeBytes; + + if (kwargs["chain_code"] is List) { + chainCodeBytes = kwargs["chain_code"]; + } else { + if (kwargs["chain_code"] is! Bip32ChainCode) { + throw ArgumentError("chain code must be bytes or Bip32ChainCode"); + } + chainCodeBytes = (kwargs["chain_code"] as Bip32ChainCode).toBytes(); + } + List? hdPathKeyBytes; + if (kwargs["hd_path_key"] != null) { + if (kwargs["hd_path_key"] is! List) { + throw ArgumentError("hd path key must be bytes"); + } + hdPathKeyBytes = kwargs["hd_path_key"]; + if (hdPathKeyBytes!.length != QuickCrypto.chacha20Polu1305Keysize) { + throw ArgumentError( + "HD path key shall be ${QuickCrypto.chacha20Polu1305Keysize}-byte long"); + } + } + final pubKeyBytes = + AddrKeyValidator.validateAndGetEd25519Key(pubKey).compressed; + return _AdaByronAddrUtils.encodeKey( + pubKeyBytes, chainCodeBytes, AdaByronAddrTypes.publicKey, + hdPathEncBytes: hdPathKeyBytes == null + ? null + : _AdaByronAddrHdPath.encrypt(hdPath, hdPathKeyBytes)); + } +} diff --git a/lib/bip/address/ada_shelley_addr.dart b/lib/bip/address/ada_shelley_addr.dart new file mode 100644 index 0000000..f26d294 --- /dev/null +++ b/lib/bip/address/ada_shelley_addr.dart @@ -0,0 +1,220 @@ +import 'package:blockchain_utils/bech32/bech32_base.dart'; +import 'package:blockchain_utils/bech32/bech32_ex.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/numbers/int_utils.dart'; + +/// An enumeration of Ada Shelley address network tags. +enum AdaShelleyAddrNetworkTags { + /// Mainnet network tag with a value of 1. + mainnet(1), + + /// Testnet network tag with a value of 0. + testnet(0); + + final int value; + + /// Constants representing header types for Ada Shelley addresses. + const AdaShelleyAddrNetworkTags(this.value); +} + +class AdaShelleyAddrHeaderTypes { + /// Header type for payment addresses. + static const int payment = 0x00; + + /// Header type for reward addresses. + static const int reward = 0x0E; +} + +/// Constants related to Ada Shelley addresses, including address human-readable prefixes. +class AdaShelleyAddrConst { + /// Maps Ada Shelley network tags to their corresponding address human-readable prefixes. + static final Map networkTagToAddrHrp = { + AdaShelleyAddrNetworkTags.mainnet: + CoinsConf.cardanoMainNet.getParam("addr_hrp"), + AdaShelleyAddrNetworkTags.testnet: + CoinsConf.cardanoTestNet.getParam("addr_hrp"), + }; + + /// Maps Ada Shelley network tags to their corresponding staking (reward) address human-readable prefixes. + static final Map + networkTagToRewardAddrHrp = { + AdaShelleyAddrNetworkTags.mainnet: + CoinsConf.cardanoMainNet.getParam("staking_addr_hrp"), + AdaShelleyAddrNetworkTags.testnet: + CoinsConf.cardanoTestNet.getParam("staking_addr_hrp"), + }; +} + +/// Utility class for encoding and decoding Ada Shelley addresses. +class _AdaShelleyAddrUtils { + /// Computes the key hash for the given public key bytes. + /// Key hash is calculated using the Blake2b224 hash function. + static List keyHash(List pubKeyBytes) { + return QuickCrypto.blake2b224Hash(pubKeyBytes); + } + + /// Encodes the address prefix based on the header type and network tag. + /// The prefix is a combination of the header type and network tag. + /// + /// Parameters: + /// - [hdrType]: The header type used for encoding (e.g., payment or reward). + /// - [netTag]: The network tag representing the network (e.g., mainnet or testnet). + /// + /// Returns: + /// A byte array representing the address prefix. + static List encodePrefix(int hdrType, int netTag) { + return IntUtils.toBytesLength((hdrType << 4) + netTag); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Ada Shelley address. +class AdaShelleyAddrDecoder implements BlockchainAddressDecoder { + /// Blockchain address decoder for Ada Shelley addresses. + /// This decoder is used to decode payment addresses based on the network tag and address format. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Determine the network tag, defaulting to mainnet if not specified. + final netTag = kwargs["net_tag"] ?? AdaShelleyAddrNetworkTags.mainnet; + + /// Check if the provided network tag is a valid enum value. + if (netTag is! AdaShelleyAddrNetworkTags) { + throw ArgumentError( + 'Address type is not an enumerative of AdaShelleyAddrNetworkTags'); + } + + // Decode the provided Bech32 address. + try { + final addrDecBytes = Bech32Decoder.decode( + AdaShelleyAddrConst.networkTagToAddrHrp[netTag]!, addr); + + /// Validate the byte length of the decoded address. + AddrDecUtils.validateBytesLength( + addrDecBytes, (QuickCrypto.blake2b224DigestSize * 2) + 1); + + /// Encode the address prefix based on the payment header type and network tag. + final prefixByte = _AdaShelleyAddrUtils.encodePrefix( + AdaShelleyAddrHeaderTypes.payment, netTag.value); + return AddrDecUtils.validateAndRemovePrefixBytes( + addrDecBytes, prefixByte); + } on Bech32ChecksumError catch (e) { + throw ArgumentError('Invalid bech32 checksum $e'); + } + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Ada Shelley address. +class AdaShelleyAddrEncoder implements BlockchainAddressEncoder { + /// Blockchain address encoder for Ada Shelley addresses. + /// This encoder is used to create addresses based on public and private key pairs. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate the provided address arguments. + AddrKeyValidator.validateAddressArgs>(kwargs, "pub_skey"); + + /// Extract the public spending key (pub_skey) from the arguments. + final List pubSkey = kwargs["pub_skey"]; + + /// Determine the network tag, defaulting to mainnet if not specified. + final netTag = kwargs["net_tag"] ?? AdaShelleyAddrNetworkTags.mainnet; + + /// Check if the provided network tag is a valid enum value. + if (netTag is! AdaShelleyAddrNetworkTags) { + throw ArgumentError( + 'Address type is not an enumerative of AdaShelleyAddrNetworkTags'); + } + + /// Validate and retrieve public keys. + final pubKeyObj = AddrKeyValidator.validateAndGetEd25519Key(pubKey); + final pubSkeyObj = AddrKeyValidator.validateAndGetEd25519Key(pubSkey); + + // Compute key hashes for public spending and public delegation keys. + final pubKeyHash = + _AdaShelleyAddrUtils.keyHash(pubKeyObj.compressed.sublist(1)); + final pubSkeyHash = + _AdaShelleyAddrUtils.keyHash(pubSkeyObj.compressed.sublist(1)); + + /// Encode the address prefix using the header type and network tag. + final prefixByte = _AdaShelleyAddrUtils.encodePrefix( + AdaShelleyAddrHeaderTypes.payment, netTag.value); + + /// Create the final address by combining prefix, public key hashes, and spending key hash. + return Bech32Encoder.encode( + AdaShelleyAddrConst.networkTagToAddrHrp[netTag]!, + List.from([...prefixByte, ...pubKeyHash, ...pubSkeyHash])); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Ada Shelley staking address. +class AdaShelleyStakingAddrDecoder implements BlockchainAddressDecoder { + /// Blockchain address decoder for Ada Shelley staking addresses. + /// This decoder is used to decode staking addresses based on network tag and address data. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Determine the network tag, defaulting to mainnet if not specified. + final netTag = kwargs["net_tag"] ?? AdaShelleyAddrNetworkTags.mainnet; + + /// Check if the provided network tag is a valid enum value. + if (netTag is! AdaShelleyAddrNetworkTags) { + throw ArgumentError( + 'Address type is not an enumerative of AdaShelleyAddrNetworkTags'); + } + + try { + /// Decode the provided address using the staking network tag's address prefix. + final addrDecBytes = Bech32Decoder.decode( + AdaShelleyAddrConst.networkTagToRewardAddrHrp[netTag]!, addr); + + /// Validate the length of the decoded bytes and remove the prefix. + AddrDecUtils.validateBytesLength( + addrDecBytes, QuickCrypto.blake2b224DigestSize + 1); + + /// Encode the address prefix based on the reward header type and network tag. + final prefixByte = _AdaShelleyAddrUtils.encodePrefix( + AdaShelleyAddrHeaderTypes.reward, netTag.value); + + /// Return the final decoded address by removing the prefix and converting it to bytes. + return AddrDecUtils.validateAndRemovePrefixBytes( + addrDecBytes, prefixByte); + } on Bech32ChecksumError catch (e) { + throw ArgumentError('Invalid bech32 checksum $e'); + } + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Ada Shelley staking address. +class AdaShelleyStakingAddrEncoder implements BlockchainAddressEncoder { + /// Blockchain address encoder for Ada Shelley staking addresses. + /// This encoder is used to create staking addresses based on the network tag and public key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Determine the network tag, defaulting to mainnet if not specified. + final netTag = kwargs["net_tag"] ?? AdaShelleyAddrNetworkTags.mainnet; + + /// Check if the provided network tag is a valid enum value. + if (netTag is! AdaShelleyAddrNetworkTags) { + throw ArgumentError( + 'Address type is not an enumerative of AdaShelleyAddrNetworkTags'); + } + + /// Validate and get the Ed25519 public key object from the provided bytes. + final pubKeyObj = AddrKeyValidator.validateAndGetEd25519Key(pubKey); + + /// Compute the public key hash based on the compressed key bytes. + final pubKeyHash = + _AdaShelleyAddrUtils.keyHash(pubKeyObj.compressed.sublist(1)); + + /// Encode the address prefix based on the reward header type and network tag. + final firstByte = _AdaShelleyAddrUtils.encodePrefix( + AdaShelleyAddrHeaderTypes.reward, netTag.value); + + /// Generate the staking address using Bech32 encoding with the appropriate HRP. + return Bech32Encoder.encode( + AdaShelleyAddrConst.networkTagToRewardAddrHrp[netTag]!, + List.from([...firstByte, ...pubKeyHash])); + } +} diff --git a/lib/bip/address/addr_dec_utils.dart b/lib/bip/address/addr_dec_utils.dart new file mode 100644 index 0000000..203295d --- /dev/null +++ b/lib/bip/address/addr_dec_utils.dart @@ -0,0 +1,103 @@ +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// Class for decode address utility functions. +class AddrDecUtils { + /// Validate and remove prefix from an address. + static List validateAndRemovePrefixBytes( + List addr, + List prefix, + ) { + final prefixGot = addr.sublist(0, prefix.length); + + if (!bytesEqual(prefix, prefixGot)) { + throw ArgumentError( + 'Invalid prefix (expected $prefix, got $prefixGot)', + ); + } + + return addr.sublist(prefix.length); + } + + /// Validate and remove prefix from an address. + static String validateAndRemovePrefix( + String addr, + String prefix, + ) { + final prefixGot = addr.substring(0, prefix.length); + + if (prefix != prefixGot) { + throw ArgumentError( + 'Invalid prefix (expected $prefix, got $prefixGot)', + ); + } + + return addr.substring(prefix.length); + } + + /// Validate address length. + static void validateBytesLength( + List addr, + int lenExp, + ) { + if (addr.length != lenExp) { + throw ArgumentError( + 'Invalid length (expected $lenExp, got ${addr.length})', + ); + } + } + + /// Validate address length. + static void validateLength( + String addr, + int lenExp, + ) { + if (addr.length != lenExp) { + throw ArgumentError( + 'Invalid length (expected $lenExp, got ${addr.length})', + ); + } + } + + /// Validate address length. + static void validatePubKey( + List pubKeyBytes, + EllipticCurveTypes curveType, + ) { + try { + IPublicKey.fromBytes(pubKeyBytes, curveType); + } catch (e) { + throw ArgumentError( + "Invalid $curveType public key (${BytesUtils.toHexString(pubKeyBytes)})", + e.toString()); + } + } + + /// Validate address checksum. + static void validateChecksum( + List payloadBytes, + List checksumBytesExp, + List Function(List) checksumFct, + ) { + final checksumBytesGot = checksumFct(payloadBytes); + + if (!bytesEqual(checksumBytesExp, checksumBytesGot)) { + throw ArgumentError( + 'Invalid checksum', + ); + } + } + + /// Split address into two parts, considering the checksum at the end of it. + static (List, List) splitPartsByChecksum( + List addrBytes, + int checksumLen, + ) { + final checksumBytes = addrBytes.sublist(addrBytes.length - checksumLen); + final payloadBytes = addrBytes.sublist(0, addrBytes.length - checksumLen); + + return (payloadBytes, checksumBytes); + } +} diff --git a/lib/bip/address/addr_key_validator.dart b/lib/bip/address/addr_key_validator.dart new file mode 100644 index 0000000..65ea230 --- /dev/null +++ b/lib/bip/address/addr_key_validator.dart @@ -0,0 +1,47 @@ +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; + +/// Class for address utility functions. +class AddrKeyValidator { + /// validate argrument by key + static void validateAddressArgs(Map kwargs, String key) { + if (!kwargs.containsKey(key) || kwargs[key] is! T) { + throw ArgumentError('Missing required parameters: $key'); + } + } + + /// Validate and get an ed25519 public key. + static IPublicKey validateAndGetEd25519Key(List pubKey) { + return _validateAndGetGenericKey(pubKey, EllipticCurveTypes.ed25519); + } + + /// Validate and get an ed25519-blake2b public key. + static IPublicKey validateAndGetEd25519Blake2bKey(List pubKey) { + return _validateAndGetGenericKey(pubKey, EllipticCurveTypes.ed25519Blake2b); + } + + /// Validate and get an ed25519-monero public key. + static IPublicKey validateAndGetEd25519MoneroKey(List pubKey) { + return _validateAndGetGenericKey(pubKey, EllipticCurveTypes.ed25519Monero); + } + + /// Validate and get a nist256p1 public key. + static IPublicKey validateAndGetNist256p1Key(List pubKey) { + return _validateAndGetGenericKey(pubKey, EllipticCurveTypes.nist256p1); + } + + /// Validate and get a secp256k1 public key. + static IPublicKey validateAndGetSecp256k1Key(List pubKey) { + return _validateAndGetGenericKey(pubKey, EllipticCurveTypes.secp256k1); + } + + /// Validate and get an sr25519 public key. + static IPublicKey validateAndGetSr25519Key(List pubKey) { + return _validateAndGetGenericKey(pubKey, EllipticCurveTypes.sr25519); + } + + static IPublicKey _validateAndGetGenericKey( + List pubKey, EllipticCurveTypes type) { + return IPublicKey.fromBytes(pubKey, type); + } +} diff --git a/lib/bip/address/algo_addr.dart b/lib/bip/address/algo_addr.dart new file mode 100644 index 0000000..7da4452 --- /dev/null +++ b/lib/bip/address/algo_addr.dart @@ -0,0 +1,156 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/base32/base32.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_keys.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +/// Constants related to Algorand (Algo) blockchain addresses. +class AlgoAddrConst { + /// The length in bytes of the checksum portion in Algo addresses. + static const int checksumByteLen = 4; +} + +/// Utility methods for working with Algorand (Algo) blockchain addresses. +class _AlgoAddrUtils { + /// Compute the checksum for an Algorand (Algo) blockchain address. + /// + /// This method computes the checksum for the provided `pubKeyBytes` by + /// performing the following steps: + /// 1. Calculate the SHA-512/256 hash of the public key bytes. + /// 2. Extract the last 4 bytes from the hash as the checksum. + /// + /// Parameters: + /// - `pubKeyBytes`: The bytes of the public key for which to compute the checksum. + /// + /// Returns: + /// - A List containing the computed checksum bytes. + /// + /// This method is used to generate the checksum for an Algorand blockchain address. + static List computeChecksum(List pubKeyBytes) { + final digest = QuickCrypto.sha512256Hash(pubKeyBytes); + final startIndex = digest.length - AlgoAddrConst.checksumByteLen; + + return List.from(digest.sublist(startIndex)); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Algorand (Algo) address. +class AlgoAddrDecoder implements BlockchainAddressDecoder { + /// Decode an Algorand (Algo) blockchain address to its corresponding public key bytes. + /// + /// This method decodes the specified `addr` by performing the following steps: + /// 1. Decode the Base32-encoded address string into bytes. + /// 2. Validate the length of the decoded bytes, ensuring it matches the expected length. + /// 3. Split the decoded bytes into two parts: the public key bytes and the checksum bytes. + /// 4. Validate the checksum by comparing it with a computed checksum using [_AlgoAddrUtils.computeChecksum]. + /// + /// Parameters: + /// - `addr`: The Algorand blockchain address to decode. + /// + /// Returns: + /// - A List containing the public key bytes extracted from the address. + /// + /// This method is used to convert an Algorand blockchain address back to its public key bytes. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + final addrDecBytes = Base32Decoder.decode(addr); + const expectedLength = + Ed25519KeysConst.pubKeyByteLen + AlgoAddrConst.checksumByteLen; + AddrDecUtils.validateBytesLength(addrDecBytes, expectedLength); + final parts = AddrDecUtils.splitPartsByChecksum( + addrDecBytes, AlgoAddrConst.checksumByteLen); + final pubKeyBytes = parts.$1; + final checksumBytes = parts.$2; + AddrDecUtils.validateChecksum( + pubKeyBytes, checksumBytes, _AlgoAddrUtils.computeChecksum); + + // Validate public key + // AddrDecUtils.validatePubKey(pubKeyBytes, Ed25519PublicKey); + + return pubKeyBytes; + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Algorand (Algo) address. +class AlgoAddrEncoder implements BlockchainAddressEncoder { + /// Encode a public key into an Algorand (Algo) blockchain address. + /// + /// This method encodes the specified `pubKey` into an Algorand blockchain address by performing the following steps: + /// 1. Validate and obtain the Ed25519 public key as a compressed byte array. + /// 2. Extract the public key bytes from the compressed key. + /// 3. Compute the checksum for the public key bytes using [_AlgoAddrUtils.computeChecksum]. + /// 4. Concatenate the public key bytes and the checksum, then encode them using Base32 without padding. + /// + /// Parameters: + /// - `pubKey`: A List representing the public key. + /// + /// Returns: + /// - The Algorand blockchain address obtained by encoding the public key. + /// + /// This method is used to create an Algorand blockchain address from a given public key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + final pubkeyBytes = + AddrKeyValidator.validateAndGetEd25519Key(pubKey).compressed.sublist(1); + final checksumBytes = _AlgoAddrUtils.computeChecksum(pubkeyBytes); + final encodedAddress = Base32Encoder.encodeNoPaddingBytes( + List.from([...pubkeyBytes, ...checksumBytes])); + return encodedAddress; + } +} diff --git a/lib/bip/address/aptos_addr.dart b/lib/bip/address/aptos_addr.dart new file mode 100644 index 0000000..9caac48 --- /dev/null +++ b/lib/bip/address/aptos_addr.dart @@ -0,0 +1,93 @@ +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'addr_key_validator.dart'; + +/// Constants related to Aptos blockchain addresses. +class AptosAddrConst { + /// The suffix byte used for single signature addresses. + static final singleSigSuffixByte = List.from([0x00]); +} + +/// Implementation of the [BlockchainAddressDecoder] for Aptos address. +class AptosAddrDecoder implements BlockchainAddressDecoder { + /// Decode an Aptos blockchain address from its string representation. + /// + /// This method decodes the provided `addr` string by removing the prefix, + /// ensuring the address length is valid, and parsing the hexadecimal string + /// to obtain the address bytes. + /// + /// Parameters: + /// - `addr`: The Aptos blockchain address in string format. + /// - `kwargs` (optional): Additional arguments, though none are used in this method. + /// + /// Returns: + /// - A List containing the decoded address bytes. + /// + /// Throws: + /// - ArgumentError if the provided string is not a valid hex encoding. + /// + /// This method is used to convert an Aptos blockchain address from its string + /// representation to its binary format for further processing. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + String addrNoPrefix = AddrDecUtils.validateAndRemovePrefix( + addr, + CoinsConf.aptos.getParam("addr_prefix"), + ); + addrNoPrefix = addrNoPrefix.padLeft(QuickCrypto.sha3256DigestSize * 2, "0"); + AddrDecUtils.validateLength( + addrNoPrefix, QuickCrypto.sha3256DigestSize * 2); + + try { + return BytesUtils.fromHexString(addrNoPrefix); + } on FormatException catch (e) { + throw ArgumentError("Invalid hex encoding $e"); + } + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Aptos address. +class AptosAddrEncoder implements BlockchainAddressEncoder { + /// Encode an Aptos blockchain address from a public key. + /// + /// This method encodes an Aptos blockchain address from the provided `pubKey` + /// by performing the following steps: + /// 1. Validate the public key and extract its raw compressed bytes. + /// 2. Prepare the payload by appending a single-sig suffix byte. + /// 3. Compute the SHA-3-256 hash of the payload. + /// 4. Concatenate the address prefix and the hash bytes. + /// 5. Remove leading zeros from the resulting hex-encoded address. + /// + /// Parameters: + /// - `pubKey`: The public key for which to generate the address. + /// - `kwargs` (optional): Additional arguments, though none are used in this method. + /// + /// Returns: + /// - A hex-encoded string representing the generated Aptos blockchain address. + /// + /// This method is used to create an Aptos blockchain address from a public key. + /// The resulting address is a hexadecimal string without leading zeros. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + final pubKeyBytes = pubKey; + final pubKeyObj = AddrKeyValidator.validateAndGetEd25519Key(pubKeyBytes); + + /// Prepare the payload by appending a single-sig suffix byte + final payloadBytes = List.from([ + ...List.from(pubKeyObj.compressed.sublist(1)), + ...AptosAddrConst.singleSigSuffixByte + ]); + + /// Compute the SHA-3-256 hash of the payload + final keyHashBytes = QuickCrypto.sha3256Hash(payloadBytes); + + /// Concatenate the address prefix and the hash bytes, removing leading zeros + return CoinsConf.aptos.getParam("addr_prefix") + + BytesUtils.toHexString(keyHashBytes).replaceFirst(RegExp('^0+'), ''); + } +} diff --git a/lib/bip/address/atom_addr.dart b/lib/bip/address/atom_addr.dart new file mode 100644 index 0000000..1e0fb6d --- /dev/null +++ b/lib/bip/address/atom_addr.dart @@ -0,0 +1,62 @@ +import 'package:blockchain_utils/bech32/bech32_base.dart'; +import 'package:blockchain_utils/bech32/bech32_ex.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +import 'decoder.dart'; + +/// Implementation of the [BlockchainAddressDecoder] for Atom (ATOM) address. +class AtomAddrDecoder implements BlockchainAddressDecoder { + /// Decode an address using the Bech32 encoding format with the specified human-readable part (HRP). + /// + /// This method takes an encoded address, along with a map of optional keyword arguments, + /// and decodes it using the Bech32 encoding format. The HRP (human-readable part) is used to + /// determine the address format. + /// + /// - [addr]: The encoded address to decode. + /// - [kwargs]: Optional keyword arguments, with 'hrp' specifying the human-readable part. + /// + /// Returns a List containing the decoded address bytes. + /// Throws an error if the address format is invalid or if a checksum error occurs. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + AddrKeyValidator.validateAddressArgs(kwargs, "hrp"); + String hrp = kwargs['hrp']; + List addrDecBytes; + try { + addrDecBytes = Bech32Decoder.decode(hrp, addr); + } on Bech32ChecksumError catch (e) { + throw ArgumentError('Invalid bech32 checksum $e'); + } + + AddrDecUtils.validateBytesLength( + addrDecBytes, QuickCrypto.hash160DigestSize); + return addrDecBytes; + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Atom (ATOM) address. +class AtomAddrEncoder implements BlockchainAddressEncoder { + /// Encodes a public key as an Atom (ATOM) cryptocurrency address. + /// + /// This method takes a public key as input and encodes it as an Atom address + /// using Bech32 encoding with a specific Human-Readable Part (HRP). + /// + /// The `hrp` parameter specifies the Human-Readable Part (HRP) used in the + /// Bech32 encoding for Atom addresses. + /// + /// Returns the Atom address as a string. + /// + /// Throws an error if the `hrp` parameter is missing or invalid, or if the + /// public key cannot be validated. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + AddrKeyValidator.validateAddressArgs(kwargs, "hrp"); + String hrp = kwargs['hrp']; + + final public = AddrKeyValidator.validateAndGetSecp256k1Key(pubKey); + return Bech32Encoder.encode(hrp, QuickCrypto.hash160(public.compressed)); + } +} diff --git a/lib/bip/address/avax_addr.dart b/lib/bip/address/avax_addr.dart new file mode 100644 index 0000000..7bcba21 --- /dev/null +++ b/lib/bip/address/avax_addr.dart @@ -0,0 +1,168 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; + +import 'addr_dec_utils.dart'; +import 'atom_addr.dart'; + +/// A utility class providing methods for decoding Avax (Avalanche) addresses. +class _AvaxAddrUtils { + /// Decodes an Avax address with the specified [prefix] and Human-Readable Part (HRP). + /// + /// [addr]: The Avax address to decode. + /// [prefix]: The address prefix to be validated and removed. + /// [hrp]: The Human-Readable Part (HRP) to use for decoding. + /// + /// This method validates and removes the address prefix, then delegates + /// the decoding process to the [AtomAddrDecoder], providing the [hrp] as a parameter. + /// + /// Returns the decoded address as a List. + static List decodeAddr(String addr, String prefix, String hrp) { + final addrNoPrefix = AddrDecUtils.validateAndRemovePrefix(addr, prefix); + return AtomAddrDecoder().decodeAddr(addrNoPrefix, {"hrp": hrp}); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Avax P-Chain address. +class AvaxPChainAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the address decoding method for Avax P-Chain addresses. + /// + /// [addr]: The Avax P-Chain address to decode. + /// [kwargs]: A map of optional decoding parameters. + /// + /// This method delegates the decoding of Avax P-Chain addresses to the + /// [_AvaxAddrUtils.decodeAddr] method, providing the address prefix and Human-Readable Part (HRP) + /// from the Avax P-Chain configuration. + /// + /// Returns the decoded address as a List. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + return _AvaxAddrUtils.decodeAddr( + addr, + CoinsConf.avaxPChain.getParam('addr_prefix'), + CoinsConf.avaxPChain.getParam('addr_hrp'), + ); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Avax P-Chain address. +class AvaxPChainAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the address encoding method for Avax P-Chain addresses. + /// + /// [pubKey]: The public key to encode into an Avax P-Chain address. + /// [kwargs]: A map of optional encoding parameters. + /// + /// This method constructs an Avax P-Chain address by combining the address prefix + /// with the result of encoding the public key using the AtomAddrEncoder with the + /// Human-Readable Part (HRP) from the Avax P-Chain configuration. + /// + /// Returns the encoded Avax P-Chain address as a String. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + String prefix = CoinsConf.avaxPChain.getParam("addr_prefix"); + return prefix + + AtomAddrEncoder().encodeKey( + pubKey, + {"hrp": CoinsConf.avaxPChain.getParam("addr_hrp")}, + ); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Avax X-Chain address. +class AvaxXChainAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the address decoding method for Avax X-Chain addresses. + /// + /// [addr]: The Avax X-Chain address to decode. + /// [kwargs]: A map of optional decoding parameters. + /// + /// This method delegates the decoding of Avax X-Chain addresses to the + /// [_AvaxAddrUtils.decodeAddr] method, providing the address prefix and Human-Readable Part (HRP) + /// from the Avax P-Chain configuration. + /// + /// Returns the decoded address as a List. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + return _AvaxAddrUtils.decodeAddr( + addr, + CoinsConf.avaxXChain.getParam("addr_prefix"), + CoinsConf.avaxXChain.getParam("addr_hrp"), + ); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Avax X-Chain address. +class AvaxXChainAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the address encoding method for Avax X-Chain addresses. + /// + /// [pubKey]: The public key to encode into an Avax X-Chain address. + /// [kwargs]: A map of optional encoding parameters. + /// + /// This method constructs an Avax X-Chain address by combining the address prefix + /// with the result of encoding the public key using the AtomAddrEncoder with the + /// Human-Readable Part (HRP) from the Avax X-Chain configuration. + /// + /// Returns the encoded Avax X-Chain address as a String. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + String prefix = CoinsConf.avaxXChain.getParam("addr_prefix"); + return prefix + + AtomAddrEncoder().encodeKey( + pubKey, + {"hrp": CoinsConf.avaxXChain.getParam("addr_hrp")}, + ); + } +} diff --git a/lib/bip/address/bch_addr_converter.dart b/lib/bip/address/bch_addr_converter.dart new file mode 100644 index 0000000..d9337a0 --- /dev/null +++ b/lib/bip/address/bch_addr_converter.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bech32/bch_bech32.dart'; + +/// Bitcoin Cash address converter class. +/// It allows to convert a Bitcoin Cash address by changing its HRP and net version. +class BchAddrConverter { + /// Convert a Bitcoin Cash address by changing its HRP and net version. + static String convert(String address, String hrp, List? netVer) { + // Decode address + final decode = BchBech32Decoder.decode( + address.substring(0, address.indexOf(":")), address); + final currNetVer = decode.$1; + final data = decode.$2; + // Encode again with new HRP and net version + return BchBech32Encoder.encode(hrp, netVer ?? currNetVer, data); + } +} diff --git a/lib/bip/address/decoder.dart b/lib/bip/address/decoder.dart new file mode 100644 index 0000000..2f0d831 --- /dev/null +++ b/lib/bip/address/decoder.dart @@ -0,0 +1,13 @@ +/// An abstract class for decoding blockchain addresses. +abstract class BlockchainAddressDecoder { + /// Decodes a given blockchain address string. + /// + /// This method takes an address string and optional keyword arguments (kwargs) + /// and decodes it into a List representing the decoded address. + /// + /// - [addr]: The blockchain address string to be decoded. + /// - [kwargs]: Optional keyword arguments that can be used for configuration. + /// + /// Returns a List containing the decoded blockchain address. + List decodeAddr(String addr, [Map kwargs = const {}]); +} diff --git a/lib/bip/address/decoders.dart b/lib/bip/address/decoders.dart new file mode 100644 index 0000000..56658d7 --- /dev/null +++ b/lib/bip/address/decoders.dart @@ -0,0 +1,94 @@ +/// AN address_decoder library for decoding blockchain addresses +library address_decoder; + +/// Export statement for Ada Byron address decoder. +export 'ada_byron_addr.dart' show AdaByronAddrDecoder; + +/// Export statements for Ada Shelley address decoders. +export 'ada_shelley_addr.dart' + show AdaShelleyStakingAddrDecoder, AdaShelleyAddrDecoder; + +/// Export statement for Algorand address decoder. +export 'algo_addr.dart' show AlgoAddrDecoder; + +/// Export statement for Aptos address decoder. +export 'aptos_addr.dart' show AptosAddrDecoder; + +/// Export statement for Atom address decoder. +export 'atom_addr.dart' show AtomAddrDecoder; + +/// Export statements for Avalanche (AVAX) address decoders. +export 'avax_addr.dart' show AvaxPChainAddrDecoder, AvaxXChainAddrDecoder; + +/// Export statement for Elrond (EGLD) address decoder. +export 'egld_addr.dart' show EgldAddrDecoder; + +/// Export statement for EOS address decoder. +export 'eos_addr.dart' show EosAddrDecoder; + +/// Export statement for Ergo address decoder. +export 'ergo.dart' show ErgoP2PKHAddrDecoder; + +/// Export statement for Ethereum address decoder. +export 'eth_addr.dart' show EthAddrDecoder; + +/// Export statement for Filecoin (FIL) address decoder. +export 'fil_addr.dart' show FilSecp256k1AddrDecoder; + +/// Export statement for ICON (ICX) address decoder. +export 'icx_addr.dart' show IcxAddrDecoder; + +/// Export statement for Injective Protocol (INJ) address decoder. +export 'inj_addr.dart' show InjAddrDecoder; + +/// Export statement for Nano address decoder. +export 'nano_addr.dart' show NanoAddrDecoder; + +/// Export statement for NEAR Protocol address decoder. +export 'near_addr.dart' show NearAddrDecoder; + +/// Export statement for Neo address decoder. +export 'neo_addr.dart' show NeoAddrDecoder; + +/// Export statement for OKEx address decoder. +export 'okex_addr.dart' show OkexAddrDecoder; + +/// Export statement for Harmony (ONE) address decoder. +export 'one_addr.dart' show OneAddrDecoder; + +/// Export statements for Bitcoin and Bitcoin Cash P2PKH address decoders. +export 'p2pkh_addr.dart' show BchP2PKHAddrDecoder, P2PKHAddrDecoder; + +/// Export statements for Bitcoin and Bitcoin Cash P2SH address decoders. +export 'p2sh_addr.dart' show BchP2SHAddrDecoder, P2SHAddrDecoder; + +/// Export statement for Taproot (P2TR) address decoder. +export 'p2tr_addr.dart' show P2TRAddrDecoder; + +/// Export statement for Segregated Witness (P2WPKH) address decoder. +export 'p2wpkh_addr.dart' show P2WPKHAddrDecoder; + +/// Export statement for Solana (SOL) address decoder. +export 'sol_addr.dart' show SolAddrDecoder; + +/// Export statements for Substrate address decoders (Ed25519 and Sr25519). +export 'substrate_addr.dart' + show SubstrateEd25519AddrDecoder, SubstrateSr25519AddrDecoder; + +/// Export statement for TRON (TRX) address decoder. +export 'trx_addr.dart' show TrxAddrDecoder; + +/// Export statement for Stellar (XLM) address decoder. +export 'xlm_addr.dart' show XlmAddrDecoder; + +/// Export statements for Monero (XMR) address decoders. +export 'xmr_addr.dart' show XmrAddrDecoder, XmrIntegratedAddrDecoder; + +/// Export statement for Ripple (XRP) address decoder. +export 'xrp_addr.dart' show XrpAddrDecoder; + +/// Export statement for Tezos (XTZ) address decoder. +export 'xtz_addr.dart' show XtzAddrDecoder; + +/// Export statement for Zilliqa (ZIL) address decoder. +export 'zil_addr.dart' show ZilAddrDecoder; diff --git a/lib/bip/address/egld_addr.dart b/lib/bip/address/egld_addr.dart new file mode 100644 index 0000000..82ae0a1 --- /dev/null +++ b/lib/bip/address/egld_addr.dart @@ -0,0 +1,64 @@ +import 'package:blockchain_utils/bech32/bech32_base.dart'; +import 'package:blockchain_utils/bech32/bech32_ex.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_keys.dart'; + +import 'encoder.dart'; + +/// Implementation of the [BlockchainAddressDecoder] for Egld (Elrond) address. +class EgldAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the method to decode an Egld (Elrond) address from the provided string [addr]. + /// + /// [addr]: The string representation of the Egld address. + /// [kwargs]: A map of optional keyword arguments. + /// + /// This method decodes the Egld address by validating and removing the prefix and verifying + /// the Bech32 checksum. + /// + /// Returns a List containing the decoded Egld address. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + try { + /// Decode the Bech32 address with the specified Human-Readable Part (HRP) + final addrDecBytes = + Bech32Decoder.decode(CoinsConf.elrond.getParam("addr_hrp"), addr); + + /// Validate the length of the decoded address + AddrDecUtils.validateBytesLength( + addrDecBytes, + Ed25519KeysConst.pubKeyByteLen, + ); + + return List.from(addrDecBytes); + } on Bech32ChecksumError catch (e) { + throw ArgumentError("Invalid bech32 checksum $e"); + } + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Egld (Elrond) address. +class EgldAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the method to encode an Egld (Elrond) address based on the provided [pubKey]. + /// + /// [pubKey]: The List representing the public key to be encoded. + /// [kwargs]: A map of optional keyword arguments. + /// + /// This method encodes the Egld address by using the specified Human-Readable Part (HRP) + /// and converting the raw compressed public key to bytes. + /// + /// Returns the string representation of the encoded Egld address. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate and retrieve the Ed25519 public key + final pubKeyObj = AddrKeyValidator.validateAndGetEd25519Key(pubKey); + + /// Encode the Egld address using the provided HRP and the raw compressed public key + return Bech32Encoder.encode( + CoinsConf.elrond.getParam("addr_hrp"), + pubKeyObj.compressed.sublist(1), + ); + } +} diff --git a/lib/bip/address/encoder.dart b/lib/bip/address/encoder.dart new file mode 100644 index 0000000..2e057cd --- /dev/null +++ b/lib/bip/address/encoder.dart @@ -0,0 +1,18 @@ +/// An abstract class for encoding blockchain addresses. +/// +/// This abstract class defines a common interface for encoding blockchain addresses. +/// Subclasses of this class will implement specific encoding algorithms for different +/// blockchain networks. +abstract class BlockchainAddressEncoder { + /// Encodes a public key into a blockchain address. + /// + /// This method takes a public key in the form of a List and optional keyword + /// arguments (kwargs) for additional configuration if required. It encodes the + /// public key into a blockchain-specific address. + /// + /// - [pubKey]: The public key to be encoded as a blockchain address. + /// - [kwargs]: Optional keyword arguments for encoder-specific options. + /// + /// Returns the blockchain address string representing the encoded public key. + String encodeKey(List pubKey, [Map kwargs = const {}]); +} diff --git a/lib/bip/address/encoders.dart b/lib/bip/address/encoders.dart new file mode 100644 index 0000000..fecf28f --- /dev/null +++ b/lib/bip/address/encoders.dart @@ -0,0 +1,98 @@ +/// A address_encoder liberary for encoding blockchain addresses from public keys. +library address_encoder; + +/// Export statements for Ada Byron address encoders. +export 'ada_byron_addr.dart' + show AdaByronIcarusAddrEncoder, AdaByronLegacyAddrEncoder; + +/// Export statements for Ada Shelley address encoders. +export 'ada_shelley_addr.dart' + show AdaShelleyAddrEncoder, AdaShelleyStakingAddrEncoder; + +/// Export statement for Algorand address encoder. +export 'algo_addr.dart' show AlgoAddrEncoder; + +/// Export statement for Aptos address encoder. +export 'aptos_addr.dart' show AptosAddrEncoder; + +/// Export statement for Atom address encoder. +export 'atom_addr.dart' show AtomAddrEncoder; + +/// Export statements for Avalanche (AVAX) address encoders. +export 'avax_addr.dart' show AvaxXChainAddrEncoder, AvaxPChainAddrEncoder; + +/// Export statement for Bitcoin Cash address converter. +export 'bch_addr_converter.dart' show BchAddrConverter; + +/// Export statement for Elrond (EGLD) address encoder. +export 'egld_addr.dart' show EgldAddrEncoder; + +/// Export statement for EOS address encoder. +export 'eos_addr.dart' show EosAddrEncoder; + +/// Export statement for Ergo address encoder. +export 'ergo.dart' show ErgoP2PKHAddrEncoder; + +/// Export statement for Ethereum address encoder. +export 'eth_addr.dart' show EthAddrEncoder; + +/// Export statement for Filecoin (FIL) address encoder. +export 'fil_addr.dart' show FilSecp256k1AddrEncoder; + +/// Export statement for ICON (ICX) address encoder. +export 'icx_addr.dart' show IcxAddrEncoder; + +/// Export statement for Injective Protocol (INJ) address encoder. +export 'inj_addr.dart' show InjAddrEncoder; + +/// Export statement for Nano address encoder. +export 'nano_addr.dart' show NanoAddrEncoder; + +/// Export statement for NEAR Protocol address encoder. +export 'near_addr.dart' show NearAddrEncoder; + +/// Export statement for Neo address encoder. +export 'neo_addr.dart' show NeoAddrEncoder; + +/// Export statement for OKEx address encoder. +export 'okex_addr.dart' show OkexAddrEncoder; + +/// Export statement for Harmony (ONE) address encoder. +export 'one_addr.dart' show OneAddrEncoder; + +/// Export statements for Bitcoin and Bitcoin Cash P2PKH address encoders. +export 'p2pkh_addr.dart' show BchP2PKHAddrEncoder, P2PKHAddrEncoder; + +/// Export statements for Bitcoin and Bitcoin Cash P2SH address encoders. +export 'p2sh_addr.dart' show BchP2SHAddrEncoder, P2SHAddrEncoder; + +/// Export statement for Taproot (P2TR) address encoder. +export 'p2tr_addr.dart' show P2TRAddrEncoder; + +/// Export statement for Segregated Witness (P2WPKH) address encoder. +export 'p2wpkh_addr.dart' show P2WPKHAddrEncoder; + +/// Export statement for Solana (SOL) address encoder. +export 'sol_addr.dart' show SolAddrEncoder; + +/// Export statements for Substrate address encoders (Sr25519 and Ed25519). +export 'substrate_addr.dart' + show SubstrateSr25519AddrEncoder, SubstrateEd25519AddrEncoder; + +/// Export statement for TRON (TRX) address encoder. +export 'trx_addr.dart' show TrxAddrEncoder; + +/// Export statement for Stellar (XLM) address encoder. +export 'xlm_addr.dart' show XlmAddrEncoder; + +/// Export statements for Monero (XMR) address encoders. +export 'xmr_addr.dart' show XmrAddrEncoder, XmrIntegratedAddrEncoder; + +/// Export statement for Ripple (XRP) address encoder. +export 'xrp_addr.dart' show XrpAddrEncoder; + +/// Export statement for Tezos (XTZ) address encoder. +export 'xtz_addr.dart' show XtzAddrEncoder; + +/// Export statement for Zilliqa (ZIL) address encoder. +export 'zil_addr.dart' show ZilAddrEncoder; diff --git a/lib/bip/address/eos_addr.dart b/lib/bip/address/eos_addr.dart new file mode 100644 index 0000000..a1bdbbb --- /dev/null +++ b/lib/bip/address/eos_addr.dart @@ -0,0 +1,103 @@ +import 'package:blockchain_utils/base58/base58.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ecdsa_keys.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +/// Constants related to EOS addresses. +class EosAddrConst { + /// The length of the checksum in bytes for EOS addresses. + static const int checksumByteLen = 4; +} + +/// Utility methods for EOS addresses. +class _EosAddrUtils { + /// Computes the checksum for EOS addresses from the given public key bytes. + /// + /// [pubKeyBytes]: The public key bytes used to compute the checksum. + /// + /// Returns the computed checksum as a List. + static List computeChecksum(List pubKeyBytes) { + return QuickCrypto.ripemd160Hash(pubKeyBytes) + .sublist(0, EosAddrConst.checksumByteLen); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for EOS address. +class EosAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the method to decode an EOS address from its string representation. + /// + /// [addr]: The EOS address string to be decoded. + /// [kwargs]: A map of optional keyword arguments. + /// + /// This method removes the address prefix, decodes the address bytes, and validates the checksum. + /// It returns the decoded public key bytes of the EOS address. + /// + /// Returns a List containing the public key bytes. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Remove the address prefix from the given address + final addrNoPrefix = AddrDecUtils.validateAndRemovePrefix( + addr, CoinsConf.eos.getParam("addr_prefix")); + + /// Decode the remaining address bytes + final addrDecBytes = Base58Decoder.decode(addrNoPrefix); + + /// Validate the length of the decoded address + AddrDecUtils.validateBytesLength( + addrDecBytes, + EcdsaKeysConst.pubKeyCompressedByteLen + EosAddrConst.checksumByteLen, + ); + + /// Split the address into its public key bytes and checksum + final parts = AddrDecUtils.splitPartsByChecksum( + addrDecBytes, + EosAddrConst.checksumByteLen, + ); + + final pubKeyBytes = parts.$1; + final checksumBytes = parts.$2; + + /// Validate the checksum + AddrDecUtils.validateChecksum( + pubKeyBytes, + checksumBytes, + (pubKeyBytes) => _EosAddrUtils.computeChecksum(pubKeyBytes), + ); + + // Validate public key + // AddrDecUtils.validatePubKey(pubKeyBytes, Secp256k1PublicKey()); + + return pubKeyBytes; + } +} + +/// Implementation of the [BlockchainAddressEncoder] for EOS address. +class EosAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the method to encode a EOS address from a given public key. + /// + /// [pubKey]: The public key to be encoded as an EOS address. + /// [kwargs]: A map of optional keyword arguments. + /// + /// This method takes a public key, computes the address checksum, and encodes it as an EOS address. + /// + /// Returns a string containing the EOS address. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate and get the Secp256k1 public key object + final pubKeyObj = AddrKeyValidator.validateAndGetSecp256k1Key(pubKey); + + /// Get the raw compressed public key bytes + final pubKeyBytes = pubKeyObj.compressed; + + /// Compute the checksum for the address + final checksumBytes = _EosAddrUtils.computeChecksum(pubKeyBytes); + + /// Combine the address prefix, public key, and checksum to create the EOS address + return CoinsConf.eos.getParam("addr_prefix") + + Base58Encoder.encode(List.from(pubKeyBytes + checksumBytes)); + } +} diff --git a/lib/bip/address/ergo.dart b/lib/bip/address/ergo.dart new file mode 100644 index 0000000..8c2cbeb --- /dev/null +++ b/lib/bip/address/ergo.dart @@ -0,0 +1,140 @@ +import 'package:blockchain_utils/base58/base58_base.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ecdsa_keys.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/numbers/int_utils.dart'; + +/// An enumeration representing different Ergo address types. +enum ErgoAddressTypes { + /// Pay-to-Public-Key-Hash + p2pkh(0x01), + + /// Pay-to-Script-Hash + p2sh(0x02); + + final int value; + const ErgoAddressTypes(this.value); +} + +/// An enumeration representing different Ergo network types. +enum ErgoNetworkTypes { + mainnet(0x00), + testnet(0x10); + + final int value; + const ErgoNetworkTypes(this.value); +} + +/// Constants related to Ergo addresses. +class ErgoAddrConst { + /// Length of the checksum bytes. + static const int checksumByteLen = 4; +} + +/// A utility class for Ergo address-related operations. +class _ErgoAddrUtils { + /// Computes the checksum for an Ergo address. + /// + /// [pubKeyBytes]: The public key bytes to generate the checksum from. + /// Returns a List representing the computed checksum. + static List computeChecksum(List pubKeyBytes) { + final checksum = QuickCrypto.blake2b256Hash(pubKeyBytes); + return checksum.sublist(0, ErgoAddrConst.checksumByteLen); + } + + /// Encodes the address prefix for an Ergo address. + /// + /// [addrType]: The address type (e.g., p2pkh or p2sh). + /// [netType]: The network type (e.g., mainnet or testnet). + /// Returns a List representing the encoded prefix. + static List encodePrefix( + ErgoAddressTypes addrType, ErgoNetworkTypes netType) { + final prefix = IntUtils.toBytes(addrType.value + netType.value); + return prefix; + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Ergo address. +class ErgoP2PKHAddrDecoder implements BlockchainAddressDecoder { + /// Decodes an Ergo address into its respective public key bytes. + /// + /// [addr]: The Ergo address to decode. + /// [kwargs]: Optional parameters. + /// - [net_type]: The network type for the Ergo address (mainnet or testnet). + /// + /// Returns a List representing the public key bytes decoded from the address. + /// Throws an ArgumentError if the address type is not of ErgoNetworkTypes. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + final netType = kwargs['net_type'] ?? ErgoNetworkTypes.mainnet; + + /// Validate network type + if (netType is! ErgoNetworkTypes) { + throw ArgumentError( + 'Address type is not an enumerative of ErgoNetworkTypes'); + } + final addrDecBytes = Base58Decoder.decode(addr); + AddrDecUtils.validateBytesLength( + addrDecBytes, + EcdsaKeysConst.pubKeyCompressedByteLen + + ErgoAddrConst.checksumByteLen + + 1); + + final decode = AddrDecUtils.splitPartsByChecksum( + addrDecBytes, ErgoAddrConst.checksumByteLen); + + /// Extract checksum and public key bytes + final addrWithPrefix = decode.$1; + final checksumBytes = decode.$2; + + /// Validate checksum + AddrDecUtils.validateChecksum(addrWithPrefix, checksumBytes, + (pubKeyBytes) => _ErgoAddrUtils.computeChecksum(pubKeyBytes)); + + /// Extract public key bytes and remove the prefix + final pubKeyBytes = AddrDecUtils.validateAndRemovePrefixBytes( + addrWithPrefix, + _ErgoAddrUtils.encodePrefix(ErgoAddressTypes.p2pkh, netType)); + // Validate public key + // AddrDecUtils.validatePubKey(pubKeyBytes, Secp256k1PublicKey); + + return pubKeyBytes; + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Ergo address. +class ErgoP2PKHAddrEncoder implements BlockchainAddressEncoder { + /// Encodes a public key into an Ergo address. + /// + /// [pubKey]: The public key to encode into an address. + /// [kwargs]: Optional parameters. + /// - [net_type]: The network type for the Ergo address (mainnet or testnet). + /// + /// Returns an Ergo address as a string. + /// Throws an ArgumentError if the address type is not of ErgoNetworkTypes. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + final netType = kwargs['net_type'] ?? ErgoNetworkTypes.mainnet; + + /// Validate network type + if (netType is! ErgoNetworkTypes) { + throw ArgumentError( + 'Address type is not an enumerative of ErgoNetworkTypes'); + } + + final pubKeyObj = AddrKeyValidator.validateAndGetSecp256k1Key(pubKey); + final pubKeyBytes = pubKeyObj.compressed; + + final prefixByte = + _ErgoAddrUtils.encodePrefix(ErgoAddressTypes.p2pkh, netType); + + final addrPayloadBytes = List.from([...prefixByte, ...pubKeyBytes]); + final checksum = _ErgoAddrUtils.computeChecksum(addrPayloadBytes); + + return Base58Encoder.encode( + List.from([...addrPayloadBytes, ...checksum])); + } +} diff --git a/lib/bip/address/eth_addr.dart b/lib/bip/address/eth_addr.dart new file mode 100644 index 0000000..f428338 --- /dev/null +++ b/lib/bip/address/eth_addr.dart @@ -0,0 +1,111 @@ +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/string/string.dart'; +import 'addr_key_validator.dart'; +import 'encoder.dart'; + +/// Constants related to Ethereum addresses. +class EthAddrConst { + /// The starting byte of an Ethereum address. + static const int startByte = 24; + + /// The total length of an Ethereum address in hexadecimal characters. + static const int addrLen = 40; +} + +/// Utility class for Ethereum address-related operations. +class _EthAddrUtils { + /// Encodes an Ethereum address with checksum. + /// + /// This method takes an Ethereum address as input and calculates its checksum. + /// The address is converted to lowercase, hashed using the Keccak256 algorithm, + /// and the resulting hash is used to determine the case of each character in + /// the address to create a checksum. The final Ethereum address with checksum + /// is returned as a string. + /// + /// Parameters: + /// - addr: The Ethereum address to encode with checksum as a string. + /// + /// Returns: + /// A string representing the Ethereum address with checksum. + static String checksumEncode(String addr) { + String addrHexDigest = BytesUtils.toHexString( + QuickCrypto.keccack256Hash(StringUtils.encode(addr.toLowerCase()))); + List encAddr = addr.split("").asMap().entries.map((entry) { + int i = entry.key; + String c = entry.value; + int charValue = int.parse(addrHexDigest[i], radix: 16); + return charValue >= 8 ? c.toUpperCase() : c.toLowerCase(); + }).toList(); + + return encAddr.join(); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Ethereum addresses. +class EthAddrDecoder implements BlockchainAddressDecoder { + /// Decodes an Ethereum address from its string representation. + /// + /// This method takes a string representing an Ethereum address as input and + /// decodes it into its byte representation. It also provides an option to + /// skip checksum validation if specified. + /// + /// Parameters: + /// - addr: The Ethereum address as a string to be decoded. + /// - kwargs: Optional keyword arguments (e.g., skip_chksum_enc) for additional + /// configuration. + /// + /// Returns: + /// A List representing the byte-encoded Ethereum address. + /// + /// Throws: + /// - ArgumentError: If the address is not of the correct length or if checksum + /// validation fails (if not skipped). + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + final skipChecksum = kwargs["skip_chksum_enc"] ?? false; + + String addrNoPrefix = AddrDecUtils.validateAndRemovePrefix( + addr, CoinsConf.ethereum.getParam("addr_prefix")); + AddrDecUtils.validateLength(addrNoPrefix, EthAddrConst.addrLen); + if (!skipChecksum && + addrNoPrefix != _EthAddrUtils.checksumEncode(addrNoPrefix)) { + throw ArgumentError("Invalid checksum encoding"); + } + return BytesUtils.fromHexString(addrNoPrefix); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Ethereum addresses. +class EthAddrEncoder implements BlockchainAddressEncoder { + /// Encodes a public key as an Ethereum address. + /// + /// This method takes a public key in the form of a `List` and converts it + /// into an Ethereum address as a string. It includes an option to skip + /// checksum encoding if specified. + /// + /// Parameters: + /// - pubKey: The public key in a `List` format to be encoded. + /// - kwargs: Optional keyword arguments (e.g., skip_chksum_enc) for additional + /// configuration. + /// + /// Returns: + /// A string representing the Ethereum address. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + IPublicKey pubKeyObj = AddrKeyValidator.validateAndGetSecp256k1Key(pubKey); + final skipChecksum = kwargs["skip_chksum_enc"] ?? false; + String kekkakHex = BytesUtils.toHexString( + QuickCrypto.keccack256Hash(pubKeyObj.uncompressed.sublist(1))); + String addr = kekkakHex.substring(EthAddrConst.startByte); + if (skipChecksum) { + return addr; + } + return CoinsConf.ethereum.getParam("addr_prefix") + + _EthAddrUtils.checksumEncode(addr); + } +} diff --git a/lib/bip/address/fil_addr.dart b/lib/bip/address/fil_addr.dart new file mode 100644 index 0000000..a555db9 --- /dev/null +++ b/lib/bip/address/fil_addr.dart @@ -0,0 +1,152 @@ +import 'package:blockchain_utils/base32/base32.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +/// Enum representing different address types for Filecoin (FIL) addresses. +enum FillAddrTypes { + /// Address type using the secp256k1 curve. + secp256k1(1), + + /// Address type using the bls curve. + bls(3); + + /// The numerical value associated with each address type. + final int value; + + /// Constructor to initialize each address type with its corresponding value. + const FillAddrTypes(this.value); +} + +/// Constants related to Filecoin (FIL) addresses. +class FilAddrConst { + /// The base32 alphabet used for encoding Filecoin addresses. + static const String base32Alphabet = "abcdefghijklmnopqrstuvwxyz234567"; +} + +/// Utility class for handling Filecoin (FIL) addresses. +class _FilAddrUtils { + /// Computes the checksum for a Filecoin address based on the address type. + /// + /// This method computes the checksum for a given Filecoin address by combining + /// the address type byte and the provided public key hash and then applying the + /// Blake2b-32 hashing algorithm. + /// + /// Parameters: + /// - pubKeyHash: The public key hash of the address as a List. + /// - addrType: The address type (e.g., secp256k1 or bls). + /// + /// Returns: + /// A List representing the computed checksum. + static List computeChecksum( + List pubKeyHash, FillAddrTypes addrType) { + List addrTypeByte = List.from([addrType.value]); + return QuickCrypto.blake2b32Hash( + List.from([...addrTypeByte, ...pubKeyHash])); + } + + /// Decodes a Filecoin address to its constituent parts. + /// + /// This method decodes a Filecoin address, validates its format, and extracts the + /// address type, public key hash, and checksum. It checks the address type against + /// the provided `addrType` and ensures the address's length and checksum are valid. + /// + /// Parameters: + /// - addr: The Filecoin address as a string. + /// - addrType: The expected address type (e.g., secp256k1 or bls). + /// + /// Returns: + /// A List representing the decoded public key hash. + /// + /// Throws: + /// - ArgumentError if the address type doesn't match the expected type. + /// - ArgumentError if the address format, length, or checksum is invalid. + static List decodeAddr(String addr, FillAddrTypes addrType) { + String addrNoPrefix = AddrDecUtils.validateAndRemovePrefix( + addr, CoinsConf.filecoin.getParam("addr_prefix")); + int addrTypeGot = addrNoPrefix[0].codeUnits.first - "0".codeUnits.first; + if (addrType.value != addrTypeGot) { + throw ArgumentError( + "Invalid address type (expected ${addrType.index}, got $addrTypeGot)"); + } + List addrDecBytes = Base32Decoder.decode( + addrNoPrefix.substring(1), FilAddrConst.base32Alphabet); + AddrDecUtils.validateBytesLength(addrDecBytes, + QuickCrypto.blake2b160DigestSize + QuickCrypto.blake2b32DigestSize); + + final split = AddrDecUtils.splitPartsByChecksum( + addrDecBytes, QuickCrypto.blake2b32DigestSize); + AddrDecUtils.validateChecksum(split.$1, split.$2, + (pubKeyBytes) => computeChecksum(pubKeyBytes, addrType)); + + return split.$1; + } + + /// Encodes a Filecoin address based on its constituent parts. + /// + /// This method takes the public key bytes and the address type and encodes them + /// into a Filecoin address. It computes the public key hash, adds the appropriate + /// address type byte, and appends the checksum. The resulting address is encoded + /// in base32 using the specified alphabet. + /// + /// Parameters: + /// - pubKeyBytes: The public key bytes of the address as a List. + /// - addrType: The address type (e.g., secp256k1 or bls). + /// + /// Returns: + /// A string representing the encoded Filecoin address. + static String encodeKeyBytes(List pubKeyBytes, FillAddrTypes addrType) { + String addrTypeStr = String.fromCharCode(addrType.value + 48); + List pubKeyHashBytes = QuickCrypto.blake2b160Hash(pubKeyBytes); + List checksumBytes = computeChecksum(pubKeyHashBytes, addrType); + final bytesWithChecksum = List.from(pubKeyHashBytes + checksumBytes); + + String b32Enc = Base32Encoder.encodeNoPaddingBytes( + bytesWithChecksum, FilAddrConst.base32Alphabet); + return CoinsConf.filecoin.getParam("addr_prefix") + addrTypeStr + b32Enc; + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Filecoin (FIL) addresses. +class FilSecp256k1AddrDecoder implements BlockchainAddressDecoder { + /// Decodes a Filecoin address of the specified address type. + /// + /// This method decodes a Filecoin address by calling the internal utility method + /// `_FilAddrUtils.decodeAddr`. It expects the address type to be provided as + /// `FillAddrTypes.secp256k1`. The decoded address is returned as a List. + /// + /// Parameters: + /// - addr: The Filecoin address to decode as a string. + /// + /// Returns: + /// A List representing the decoded Filecoin address + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + return _FilAddrUtils.decodeAddr(addr, FillAddrTypes.secp256k1); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Filecoin (FIL) addresses. +class FilSecp256k1AddrEncoder implements BlockchainAddressEncoder { + /// Encodes a Filecoin address for a public key using the secp256k1 address type. + /// + /// This method takes a public key represented as a List, validates it as a + /// secp256k1 public key, converts it to raw uncompressed bytes, and then encodes + /// a Filecoin address of the secp256k1 address type. The resulting address is + /// returned as a string. + /// + /// Parameters: + /// - pubKey: The public key to encode as a List. + /// + /// Returns: + /// A string representing the encoded Filecoin address. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + final pubkey = AddrKeyValidator.validateAndGetSecp256k1Key(pubKey); + final tobytes = pubkey.uncompressed; + return _FilAddrUtils.encodeKeyBytes(tobytes, FillAddrTypes.secp256k1); + } +} diff --git a/lib/bip/address/icx_addr.dart b/lib/bip/address/icx_addr.dart new file mode 100644 index 0000000..ce1a7bd --- /dev/null +++ b/lib/bip/address/icx_addr.dart @@ -0,0 +1,80 @@ +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +/// Defines constants related to ICON (ICX) addresses. +class IcxAddrConst { + /// The length in bytes of the key hash portion of an ICON address. + static const int keyHashByteLen = 20; +} + +/// Implementation of the [BlockchainAddressDecoder] for ICON (ICX) addresses. +class IcxAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode an ICON (ICX) address. + /// + /// This method decodes an ICON address from the provided input string. It expects an optional map of + /// keyword arguments for custom ICON address parameters. The method performs the following steps: + /// 1. Removes the ICON address prefix. + /// 2. Validates the length of the decoded public key hash. + /// 3. Returns the decoded public key hash as a List. + /// + /// Parameters: + /// - addr: The ICON address to be decoded as a string. + /// - kwargs: Optional keyword arguments for custom ICON address parameters (not used in this implementation). + /// + /// Returns: + /// A List containing the decoded public key hash of the ICON address. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Remove the ICON address prefix. + String addrNoPrefix = AddrDecUtils.validateAndRemovePrefix( + addr, + CoinsConf.icon.getParam("addr_prefix"), + ); + + /// Convert the remaining string to a List and validate its length. + List pubKeyHashBytes = BytesUtils.fromHexString(addrNoPrefix); + AddrDecUtils.validateBytesLength( + pubKeyHashBytes, IcxAddrConst.keyHashByteLen); + + return pubKeyHashBytes; + } +} + +/// Implementation of the [BlockchainAddressEncoder] for ICON (ICX) addresses. +class IcxAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as an ICON (ICX) address. + /// + /// This method encodes a public key as an ICON address. It expects the public key as a List + /// and returns the ICON address as a string. The encoding process involves: + /// 1. Validating and transforming the public key into a 32-byte hash. + /// 2. Truncating the hash to the required ICON address length. + /// 3. Adding the ICON address prefix to the hash. + /// + /// Parameters: + /// - pubKey: The public key to be encoded as an ICON address in the form of a List. + /// - kwargs: Optional keyword arguments (not used in this implementation). + /// + /// Returns: + /// A string representing the ICON (ICX) address corresponding to the provided public key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate and transform the public key into a 32-byte hash. + IPublicKey pubKeyObj = AddrKeyValidator.validateAndGetSecp256k1Key(pubKey); + List pubKeyHashBytes = + QuickCrypto.sha3256Hash(pubKeyObj.uncompressed.sublist(1)); + + /// Truncate the hash to the required ICON address length. + pubKeyHashBytes = pubKeyHashBytes + .sublist(pubKeyHashBytes.length - IcxAddrConst.keyHashByteLen); + + /// Add the ICON address prefix to the hash. + return CoinsConf.icon.getParam("addr_prefix") + + BytesUtils.toHexString(pubKeyHashBytes); + } +} diff --git a/lib/bip/address/inj_addr.dart b/lib/bip/address/inj_addr.dart new file mode 100644 index 0000000..f305082 --- /dev/null +++ b/lib/bip/address/inj_addr.dart @@ -0,0 +1,71 @@ +import 'package:blockchain_utils/bech32/bech32_base.dart'; +import 'package:blockchain_utils/bech32/bech32_ex.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/eth_addr.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +/// Implementation of the [BlockchainAddressDecoder] for INJ (Injective Protocol) addresses. +class InjAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode an INJ (Injective Protocol) address. + /// + /// This method decodes an INJ address from the provided input string. It expects an optional map of + /// keyword arguments for custom INJ address parameters. The method performs the following steps: + /// 1. Decodes the Bech32-encoded address using the INJ address human-readable part (hrp). + /// 2. Validates the length of the decoded address. + /// 3. Returns the decoded address as a List. + /// + /// Parameters: + /// - addr: The INJ address to be decoded as a string. + /// - kwargs: Optional keyword arguments for custom INJ address parameters (not used in this implementation). + /// + /// Returns: + /// A List containing the decoded INJ address. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + try { + /// Decode the Bech32-encoded address using the INJ address human-readable part (hrp). + final addrDecBytes = Bech32Decoder.decode( + CoinsConf.injective.getParam("addr_hrp"), + addr, + ); + + /// Validate the length of the decoded address. + AddrDecUtils.validateBytesLength( + addrDecBytes, + EthAddrConst.addrLen ~/ 2, + ); + return addrDecBytes; + } on Bech32ChecksumError catch (e) { + throw ArgumentError("Invalid bech32 checksum $e"); + } + } +} + +/// Implementation of the [BlockchainAddressEncoder] for INJ (Injective Protocol) addresses. +class InjAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as an INJ (Injective Protocol) address. + /// + /// This method encodes a public key as an INJ address. It expects the public key as a List + /// and returns the INJ address as a string. The encoding process involves: + /// 1. Encoding the public key as an Ethereum (ETH) address using EthAddrEncoder. + /// 2. Encoding the ETH address using the INJ address human-readable part (hrp). + /// + /// Parameters: + /// - pubKey: The public key to be encoded as an INJ address in the form of a List. + /// - kwargs: Optional keyword arguments (not used in this implementation). + /// + /// Returns: + /// A string representing the INJ address corresponding to the provided public key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Encode the public key as an Ethereum (ETH) address. + final ethAddr = EthAddrEncoder().encodeKey(pubKey); + + /// Encode the ETH address using the INJ address human-readable part (hrp). + return Bech32Encoder.encode(CoinsConf.injective.getParam("addr_hrp"), + BytesUtils.fromHexString(ethAddr)); + } +} diff --git a/lib/bip/address/nano_addr.dart b/lib/bip/address/nano_addr.dart new file mode 100644 index 0000000..c8b6748 --- /dev/null +++ b/lib/bip/address/nano_addr.dart @@ -0,0 +1,138 @@ +import 'package:blockchain_utils/base32/base32.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_keys.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +import 'encoder.dart'; + +/// A class that defines constants for Nano (NANO) addresses. +class NanoAddrConst { + /// The custom Base32 alphabet used for Nano addresses. + static const String base32Alphabet = "13456789abcdefghijkmnopqrstuwxyz"; + + /// The list of padding bytes in decimal format used for Nano address payloads. + static const List payloadPadDec = [0, 0, 0]; + + /// The string representation of padding bytes used for Nano address payloads in Base32 encoding + static const String payloadPadEnc = "1111"; +} + +/// A utility class for Nano (NANO) address-related operations. +class _NanoAddrUtils { + /// Computes the checksum for a Nano address based on the provided public key bytes. + /// + /// This method computes the checksum for a Nano address by taking the reversed Blake2b-40 hash + /// of the provided public key bytes. The result is returned as a List. + /// + /// Parameters: + /// - pubKeyBytes: The public key bytes used to compute the checksum. + /// + /// Returns: + /// A List containing the computed checksum for the Nano address. + static List computeChecksum(List pubKeyBytes) { + return QuickCrypto.blake2b40Hash(pubKeyBytes).reversed.toList(); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Nano addresses. +class NanoAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode a Nano (NANO) address. + /// + /// This method decodes a Nano address from the provided input string. It expects an optional map of + /// keyword arguments for custom Nano address parameters. The method performs the following steps: + /// 1. Validates and removes the Nano address prefix. + /// 2. Decodes the Base32-encoded payload, considering the custom Nano Base32 alphabet and padding. + /// 3. Validates the length of the decoded address. + /// 4. Splits the decoded address into its public key and checksum parts. + /// 5. Validates the address checksum. + /// + /// Parameters: + /// - addr: The Nano address to be decoded as a string. + /// - kwargs: Optional keyword arguments for custom Nano address parameters. + /// + /// Returns: + /// A List containing the decoded public key bytes for the Nano address. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Validate and remove the Nano address prefix. + final addrNoPrefix = AddrDecUtils.validateAndRemovePrefix( + addr, CoinsConf.nano.getParam("addr_prefix")); + + /// Decode the Base32-encoded payload using the custom Nano Base32 alphabet and padding. + final addrDecBytes = Base32Decoder.decode( + NanoAddrConst.payloadPadEnc + addrNoPrefix, + NanoAddrConst.base32Alphabet, + ); + + /// Validate the length of the decoded address. + AddrDecUtils.validateBytesLength( + addrDecBytes, + Ed25519KeysConst.pubKeyByteLen + + QuickCrypto.blake2b40DigestSize + + NanoAddrConst.payloadPadDec.length, + ); + + /// Split the decoded address into its public key and checksum parts. + final decode = AddrDecUtils.splitPartsByChecksum( + addrDecBytes.sublist(NanoAddrConst.payloadPadDec.length), + QuickCrypto.blake2b40DigestSize, + ); + + /// Retrieve the public key bytes and checksum bytes. + final pubKeyBytes = decode.$1; + final checksumBytes = decode.$2; + + /// Validate the address checksum using the computed checksum function. + AddrDecUtils.validateChecksum( + pubKeyBytes, + checksumBytes, + _NanoAddrUtils.computeChecksum, + ); + + return pubKeyBytes; + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Nano addresses. +class NanoAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as a Nano address. + /// + /// This method encodes a public key as a Nano address. It expects the public key as a List + /// and returns the Nano address as a string. The encoding process involves: + /// 1. Validating and obtaining the Ed25519 Blake2b public key. + /// 2. Calculating the Nano address payload by appending padding, public key bytes, and checksum. + /// 3. Encoding the payload using a custom Nano Base32 alphabet. + /// 4. Prepending the Nano address prefix. + /// + /// Parameters: + /// - pubKey: The public key to be encoded as a Nano address in the form of a List. + /// - kwargs: Optional keyword arguments (not used in this implementation). + /// + /// Returns: + /// A string representing the Nano address corresponding to the provided public key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate and obtain the Ed25519 Blake2b public key. + final pubKeyObj = AddrKeyValidator.validateAndGetEd25519Blake2bKey(pubKey); + + /// Extract public key bytes and calculate the checksum. + final pubKeyBytes = pubKeyObj.compressed.sublist(1); + final checksumBytes = _NanoAddrUtils.computeChecksum(pubKeyBytes); + + /// Create the Nano address payload by combining padding, public key, and checksum. + final payloadBytes = List.from( + [...NanoAddrConst.payloadPadDec, ...pubKeyBytes, ...checksumBytes], + ); + + /// Encode the payload using a custom Nano Base32 alphabet and prepend the Nano address prefix. + final b32Enc = Base32Encoder.encodeNoPaddingBytes( + payloadBytes, + NanoAddrConst.base32Alphabet, + ); + return CoinsConf.nano.getParam("addr_prefix") + + b32Enc.substring(NanoAddrConst.payloadPadEnc.length); + } +} diff --git a/lib/bip/address/near_addr.dart b/lib/bip/address/near_addr.dart new file mode 100644 index 0000000..2eeb678 --- /dev/null +++ b/lib/bip/address/near_addr.dart @@ -0,0 +1,59 @@ +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_keys.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// Implementation of the [BlockchainAddressDecoder] for Near Protocol addresses. +class NearAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode a Near Protocol address. + /// + /// This method decodes a Near Protocol address from the provided input string, which is expected + /// to be a hexadecimal representation of the public key bytes. It validates the length of the input, + /// ensuring it matches the expected compressed Ed25519 public key length. The decoded public key bytes + /// are returned as a List. + /// + /// Parameters: + /// - addr: The hexadecimal representation of the public key bytes for the Near Protocol address. + /// - kwargs: Optional keyword arguments (not used in this implementation). + /// + /// Returns: + /// A List containing the decoded public key bytes for the Near Protocol address. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Convert the hexadecimal input to bytes. + List pubKeyBytes = BytesUtils.fromHexString(addr); + + /// Validate the length of the public key bytes. + AddrDecUtils.validateBytesLength( + pubKeyBytes, Ed25519KeysConst.pubKeyByteLen); + + return pubKeyBytes; + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Near Protocol addresses. +class NearAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as a Near Protocol address. + /// + /// This method encodes a public key as a Near Protocol address. It expects the public key as a List + /// and returns it as a hexadecimal representation, stripping the '0x' prefix from the result. + /// + /// Parameters: + /// - pubKey: The public key to be encoded as a Near Protocol address in the form of a List. + /// - kwargs: Optional keyword arguments (not used in this implementation). + /// + /// Returns: + /// A String representing the hexadecimal representation of the provided public key for the Near Protocol address. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate and get the Ed25519 public key. + final pubKeyObj = AddrKeyValidator.validateAndGetEd25519Key(pubKey); + + /// Encode the public key as a hexadecimal representation and remove the '0x' prefix. + return StringUtils.strip0x(BytesUtils.toHexString(pubKeyObj.compressed)) + .substring(2); + } +} diff --git a/lib/bip/address/neo_addr.dart b/lib/bip/address/neo_addr.dart new file mode 100644 index 0000000..2532dca --- /dev/null +++ b/lib/bip/address/neo_addr.dart @@ -0,0 +1,99 @@ +import 'package:blockchain_utils/base58/base58_base.dart'; +import 'package:blockchain_utils/base58/base58_ex.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:blockchain_utils/numbers/int_utils.dart'; + +/// A class that defines constants for Neo (NEO) addresses. +class NeoAddrConst { + /// The prefix byte used in Neo addresses. + static const prefixByte = [0x21]; + + /// The suffix byte used in Neo addresses. + static const suffixByte = [0xac]; +} + +/// Implementation of the [BlockchainAddressDecoder] for Neo (NEO) addresses. +class NeoAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode a Neo (NEO) address. + /// + /// This method decodes a Neo address from the provided input string using Base58 encoding. + /// It expects an optional map of keyword arguments with 'ver' specifying the version bytes. + /// The method validates the arguments, decodes the Base58 address, checks its version, length, + /// and checksum, and returns the decoded Neo address as a List. + /// + /// Parameters: + /// - addr: The Base58-encoded Neo address to be decoded. + /// - kwargs: Optional keyword arguments with 'ver' for the version bytes. + /// + /// Returns: + /// A List containing the decoded Neo address bytes. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Validate the version argument. + AddrKeyValidator.validateAddressArgs>(kwargs, "ver"); + List verBytes = kwargs["ver"]; + List addrDecBytes; + try { + /// Decode the Base58 address and retrieve the decoded bytes. + addrDecBytes = Base58Decoder.checkDecode(addr); + } on Base58ChecksumError catch (e) { + throw ArgumentError("Invalid base58 checksum $e"); + } + + /// Validate the length of the decoded address. + AddrDecUtils.validateBytesLength( + addrDecBytes, QuickCrypto.hash160DigestSize + verBytes.length); + + /// Retrieve the version byte from the decoded address and compare it with the expected version. + List verGot = IntUtils.toBytesLength(addrDecBytes[0]); + if (!bytesEqual(verGot, verBytes)) { + throw ArgumentError( + "Invalid version (expected ${BytesUtils.toHexString(verBytes)}, " + "got ${BytesUtils.toHexString(verGot)})"); + } + + return addrDecBytes.sublist(1); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Neo (NEO) addresses. +class NeoAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as a Neo (NEO) address using Base58 encoding. + /// + /// This method encodes a public key as a Neo address using Base58 encoding. It expects a version byte + /// as a keyword argument. The method validates the version argument, constructs the Neo address payload, + /// and encodes it as a Base58 address. The result is returned as a String representing the Neo address. + /// + /// Parameters: + /// - pubKey: The public key to be encoded as a Neo address in the form of a List. + /// - kwargs: Optional keyword arguments with 'ver' for the version bytes. + /// + /// Returns: + /// A String representing the Base58-encoded Neo address derived from the provided public key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate the version argument. + AddrKeyValidator.validateAddressArgs>(kwargs, "ver"); + List verBytes = kwargs["ver"]; + + /// Validate and get the Nist256p1 public key. + final pubKeyObj = AddrKeyValidator.validateAndGetNist256p1Key(pubKey); + + /// Construct the Neo address payload. + List payloadBytes = List.from([ + ...NeoAddrConst.prefixByte, + ...pubKeyObj.compressed, + ...NeoAddrConst.suffixByte, + ]); + + /// Encode the payload as a Base58 address. + return Base58Encoder.checkEncode( + List.from([...verBytes, ...QuickCrypto.hash160(payloadBytes)])); + } +} diff --git a/lib/bip/address/okex_addr.dart b/lib/bip/address/okex_addr.dart new file mode 100644 index 0000000..ac6189e --- /dev/null +++ b/lib/bip/address/okex_addr.dart @@ -0,0 +1,74 @@ +import 'package:blockchain_utils/bech32/bech32_base.dart'; +import 'package:blockchain_utils/bech32/bech32_ex.dart'; +import 'package:blockchain_utils/bip/address/eth_addr.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// Implementation of the [BlockchainAddressDecoder] for OKExChain addresses. +class OkexAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode an OKExChain address. + /// + /// This method decodes an OKExChain address from the provided input string using Bech32 encoding. + /// It expects an optional map of keyword arguments for custom behavior, but specifically, it skips + /// the checksum encoding validation. The address Human-Readable Part (HRP) is retrieved from the + /// OKExChain configuration. The method first decodes the Bech32 address and then decodes it again + /// as an Ethereum address with a custom prefix. The result is returned as a List containing + /// the decoded Ethereum address bytes. + /// + /// Parameters: + /// - addr: The OKExChain address to be decoded. + /// - kwargs: Optional keyword arguments (with 'skip_chksum_enc' for skipping checksum encoding). + /// + /// Returns: + /// A List containing the decoded Ethereum address bytes derived from the OKExChain address. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + try { + /// Decode the OKExChain address using the OKExChain configuration's HRP. + List addrDecBytes = + Bech32Decoder.decode(CoinsConf.okexChain.getParam('addr_hrp'), addr); + + /// Decode the address again as an Ethereum address with a custom prefix. + return EthAddrDecoder().decodeAddr( + CoinsConf.ethereum.getParam('addr_prefix') + + BytesUtils.toHexString(addrDecBytes), + {"skip_chksum_enc": true}); + } catch (e) { + if (e is Bech32ChecksumError) { + throw ArgumentError('Invalid bech32 checksum'); + } + rethrow; + } + } +} + +/// Implementation of the [BlockchainAddressEncoder] for OKExChain addresses. +class OkexAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as an OKExChain address using Bech32 encoding. + /// + /// This method encodes a public key as an OKExChain address using Bech32 encoding. It expects an Ethereum address + /// as input, encodes it as an Ethereum address without a '0x' prefix, and then encodes it as an OKExChain address + /// using the OKExChain configuration's Human-Readable Part (HRP). The result is returned as a String representing + /// the Bech32-encoded OKExChain address. + /// + /// Parameters: + /// - pubKey: The Ethereum address in the form of a List. + /// - kwargs: Optional keyword arguments. + /// + /// Returns: + /// A String representing the Bech32-encoded OKExChain address derived from the provided Ethereum address. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Encode the Ethereum address without the '0x' prefix. + String ethAddr = StringUtils.strip0x(EthAddrEncoder().encodeKey(pubKey)); + + /// Encode the Ethereum address as an OKExChain address using Bech32 encoding. + return Bech32Encoder.encode( + CoinsConf.okexChain.getParam('addr_hrp'), + BytesUtils.fromHexString(ethAddr), + ); + } +} diff --git a/lib/bip/address/one_addr.dart b/lib/bip/address/one_addr.dart new file mode 100644 index 0000000..6db82af --- /dev/null +++ b/lib/bip/address/one_addr.dart @@ -0,0 +1,72 @@ +import 'package:blockchain_utils/bech32/bech32_base.dart'; +import 'package:blockchain_utils/bech32/bech32_ex.dart'; +import 'package:blockchain_utils/bip/address/eth_addr.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// Implementation of the [BlockchainAddressDecoder] for Harmony (ONE) addresses. +class OneAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode a Harmony ONE address. + /// + /// This method decodes a Harmony ONE address from the provided input string using Bech32 encoding. + /// It expects an optional map of keyword arguments for custom behavior, but specifically, it skips + /// the checksum encoding validation. The address Human-Readable Part (HRP) is retrieved from the + /// Harmony ONE configuration. The method first decodes the Bech32 address, and then decodes it again + /// as an Ethereum address with a custom prefix. The result is returned as a List containing + /// the decoded Ethereum address bytes. + /// + /// Parameters: + /// - addr: The Harmony ONE address to be decoded. + /// - kwargs: Optional keyword arguments (with 'skip_chksum_enc' for skipping checksum encoding). + /// + /// Returns: + /// A List containing the decoded Ethereum address bytes derived from the Harmony ONE address. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + List addrDecBytes; + try { + /// Decode the Harmony ONE address using the ONE configuration's HRP. + addrDecBytes = + Bech32Decoder.decode(CoinsConf.harmonyOne.getParam('addr_hrp'), addr); + } on Bech32ChecksumError catch (e) { + throw ArgumentError('Invalid bech32 checksum $e'); + } + + /// Decode the address again as an Ethereum address with a custom prefix. + return EthAddrDecoder().decodeAddr( + CoinsConf.ethereum.getParam('addr_prefix') + + BytesUtils.toHexString(addrDecBytes), + {"skip_chksum_enc": true}); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Harmony (ONE) addresses. +class OneAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as a Harmony ONE address using Bech32 encoding. + /// + /// This method encodes a public key as a Harmony ONE address using Bech32 encoding. It expects an Ethereum address + /// as input, encodes it as an Ethereum address without a '0x' prefix, and then encodes it as a Harmony ONE address + /// using the ONE configuration's Human-Readable Part (HRP). The result is returned as a String representing the + /// Bech32-encoded Harmony ONE address. + /// + /// Parameters: + /// - pubKey: The Ethereum address in the form of a List. + /// - kwargs: Optional keyword arguments. + /// + /// Returns: + /// A String representing the Bech32-encoded Harmony ONE address derived from the provided Ethereum address. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Encode the Ethereum address without the '0x' prefix. + String ethAddr = StringUtils.strip0x(EthAddrEncoder().encodeKey(pubKey)); + + /// Encode the Ethereum address as a Harmony ONE address using Bech32 encoding. + return Bech32Encoder.encode( + CoinsConf.harmonyOne.getParam('addr_hrp'), + BytesUtils.fromHexString(ethAddr), + ); + } +} diff --git a/lib/bip/address/p2pkh_addr.dart b/lib/bip/address/p2pkh_addr.dart new file mode 100644 index 0000000..db5d492 --- /dev/null +++ b/lib/bip/address/p2pkh_addr.dart @@ -0,0 +1,186 @@ +import 'package:blockchain_utils/base58/base58.dart'; +import 'package:blockchain_utils/bech32/bch_bech32.dart'; +import 'package:blockchain_utils/bech32/bech32_ex.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'decoder.dart'; + +/// Enumeration representing different modes for public keys used in P2PKH addresses. +/// +/// This enum defines different modes for public keys that can be used in P2PKH (Pay-to-Public-Key-Hash) +/// addresses. These modes may include compressed and uncompressed public keys, among others. +enum P2PKHPubKeyModes { + compressed, + uncompressed, +} + +/// Implementation of the [BlockchainAddressDecoder] for P2PKH (Pay-to-Public-Key-Hash) addresses. +class P2PKHAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode a P2PKH (Pay-to-Public-Key-Hash) address. + /// + /// This method decodes a P2PKH address from the provided input string using Base58 encoding. + /// It expects an optional map of keyword arguments with 'net_ver' specifying the network version bytes, + /// and 'base58_alph' for the Base58 alphabet. It validates the arguments, decodes the address, + /// checks its length and network version, and returns the decoded P2PKH address as a List. + /// + /// Parameters: + /// - addr: The P2PKH address to be decoded. + /// - kwargs: Optional keyword arguments with 'net_ver' for the network version and 'base58_alph' for Base58 alphabet. + /// + /// Returns: + /// A List containing the decoded P2PKH address bytes. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Validate network version and Base58 alphabet arguments. + AddrKeyValidator.validateAddressArgs>(kwargs, "net_ver"); + List netVarBytes = kwargs["net_ver"]; + + final Base58Alphabets alphabet = + kwargs["base58_alph"] ?? Base58Alphabets.bitcoin; + + /// Decode the address using the specified Base58 alphabet. + List addrDecBytes = Base58Decoder.checkDecode(addr, alphabet); + + /// Validate the length of the decoded address and its network version. + AddrDecUtils.validateBytesLength( + addrDecBytes, QuickCrypto.hash160DigestSize + netVarBytes.length); + + /// Remove and validate the network version prefix bytes. + return List.from( + AddrDecUtils.validateAndRemovePrefixBytes(addrDecBytes, netVarBytes)); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for P2PKH (Pay-to-Public-Key-Hash) addresses. +class P2PKHAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as a P2PKH (Pay-to-Public-Key-Hash) address. + /// + /// This method encodes a public key as a P2PKH address using Base58 encoding. It expects + /// an optional map of keyword arguments with 'net_ver' specifying the network version bytes, + /// 'base58_alph' for the Base58 alphabet, and 'pub_key_mode' for the public key mode. + /// It validates the arguments, processes the public key as a Secp256k1 key, determines the + /// public key mode (compressed or uncompressed), generates a hash160 of the public key, + /// and encodes it as a P2PKH address using Base58. + /// + /// Parameters: + /// - pubKey: The public key to be encoded as a P2PKH address. + /// - kwargs: Optional keyword arguments with 'net_ver' for the network version, 'base58_alph' for Base58 alphabet, + /// and 'pub_key_mode' for the public key mode. + /// + /// Returns: + /// A String representing the Base58-encoded P2PKH address derived from the provided public key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate network version, Base58 alphabet, and public key mode arguments. + AddrKeyValidator.validateAddressArgs>(kwargs, "net_ver"); + final List netVerBytes = kwargs["net_ver"]; + final alphabet = kwargs["base58_alph"] ?? Base58Alphabets.bitcoin; + if (alphabet is! Base58Alphabets) { + throw ArgumentError("invalid base58 alphabet"); + } + final pubKeyModes = kwargs["pub_key_mode"] ?? P2PKHPubKeyModes.compressed; + if (pubKeyModes is! P2PKHPubKeyModes) { + throw ArgumentError("invalid pub key modesx"); + } + + /// Validate and process the public key as a Secp256k1 key. + final publicKey = AddrKeyValidator.validateAndGetSecp256k1Key(pubKey); + + /// Determine the public key bytes based on the selected mode. + final List pubKeyBytes = pubKeyModes == P2PKHPubKeyModes.compressed + ? publicKey.compressed + : publicKey.uncompressed; + + /// Calculate the hash160 of the public key. + final hash160 = QuickCrypto.hash160(pubKeyBytes); + + /// Combine the network version and hash160 to form the address bytes. + return Base58Encoder.checkEncode( + List.from([...netVerBytes, ...hash160]), alphabet); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for P2PKH (Pay-to-Public-Key-Hash) addresses. +class BchP2PKHAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode a P2PKH (Pay-to-Public-Key-Hash) address using bch Bech32 encoding. + /// + /// This method decodes a P2PKH address from the provided input string using Bech32 encoding. + /// It expects an optional map of keyword arguments with 'net_ver' specifying the network version bytes + /// and 'hrp' for the Human-Readable Part (HRP). It validates the arguments, decodes the Bech32 address, + /// checks its network version, length, and checksum, and returns the decoded P2PKH address as a List. + /// + /// Parameters: + /// - addr: The Bech32-encoded P2PKH address to be decoded. + /// - kwargs: Optional keyword arguments with 'net_ver' for the network version and 'hrp' for HRP. + /// + /// Returns: + /// A List containing the decoded P2PKH address bytes. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Validate network version and HRP arguments. + AddrKeyValidator.validateAddressArgs>(kwargs, "net_ver"); + AddrKeyValidator.validateAddressArgs(kwargs, "hrp"); + try { + final String hrp = kwargs["hrp"]; + final List netVerBytes = kwargs["net_ver"]; + + /// Decode the Bech32 address and retrieve network version and decoded bytes. + final result = BchBech32Decoder.decode(hrp, addr); + List netVerBytesGot = result.$1; + List addrDecBytes = result.$2; + + /// Validate that the decoded network version matches the expected network version. + if (!bytesEqual(netVerBytes, netVerBytesGot)) { + throw ArgumentError("Invalid net version"); + } + + /// Validate the length of the decoded address. + AddrDecUtils.validateBytesLength( + addrDecBytes, QuickCrypto.hash160DigestSize); + return addrDecBytes; + } on Bech32ChecksumError { + throw ArgumentError("Invalid bech32 checksum"); + } + } +} + +/// Implementation of the [BlockchainAddressEncoder] for P2PKH (Pay-to-Public-Key-Hash) addresses. +class BchP2PKHAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as a P2PKH (Pay-to-Public-Key-Hash) address using bch Bech32 encoding. + /// + /// This method encodes a public key as a P2PKH address using Bech32 encoding. It expects an optional map of keyword + /// arguments with 'net_ver' specifying the network version bytes and 'hrp' for the Human-Readable Part (HRP). + /// It validates the arguments, processes the public key as a Secp256k1 key, generates a hash160 of the compressed + /// public key, and encodes it as a P2PKH address using Bech32. + /// + /// Parameters: + /// - pubKey: The public key to be encoded as a P2PKH address. + /// - kwargs: Optional keyword arguments with 'net_ver' for the network version and 'hrp' for HRP. + /// + /// Returns: + /// A String representing the Bech32-encoded P2PKH address derived from the provided public key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate network version and HRP arguments. + AddrKeyValidator.validateAddressArgs>(kwargs, "net_ver"); + AddrKeyValidator.validateAddressArgs(kwargs, "hrp"); + String hrp = kwargs['hrp']; + List netVerBytes = kwargs['net_ver']; + + /// Validate and process the public key as a Secp256k1 key. + final pubKeyObj = AddrKeyValidator.validateAndGetSecp256k1Key(pubKey); + + // Generate the hash160 of the compressed public key. + final pubkeyHash = QuickCrypto.hash160(pubKeyObj.compressed); + + /// Encode the P2PKH address using Bech32 encoding. + return BchBech32Encoder.encode( + hrp, + netVerBytes, + pubkeyHash, + ); + } +} diff --git a/lib/bip/address/p2sh_addr.dart b/lib/bip/address/p2sh_addr.dart new file mode 100644 index 0000000..05ec58a --- /dev/null +++ b/lib/bip/address/p2sh_addr.dart @@ -0,0 +1,164 @@ +import 'package:blockchain_utils/base58/base58.dart'; +import 'package:blockchain_utils/bech32/bch_bech32.dart'; +import 'package:blockchain_utils/bip/address/P2PKH_addr.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +/// Constants related to P2SH (Pay-to-Script-Hash) addresses. +class P2SHAddrConst { + /// The script bytes commonly used in P2SH addresses. + /// + /// This represents the standard script for P2SH addresses, consisting of + /// 0x00 (OP_0) followed by 0x14 bytes (20 bytes), typically corresponding + /// to the hash of a redeem script. + static const scriptBytes = [0x00, 0x14]; +} + +/// Utility class for working with P2SH (Pay-to-Script-Hash) addresses and operations. +class _P2SHAddrUtils { + /// Create a P2SH script signature from a public key. + /// + /// This method takes a public key and generates a P2SH script signature by hashing + /// the compressed public key bytes along with the standard P2SH script bytes (0x00, 0x14). + /// + /// Parameters: + /// - pubKey: The public key from which to generate the P2SH script signature. + /// + /// Returns: + /// A List representing the P2SH script signature. + static List addScriptSig(IPublicKey pubKey) { + /// Compute the key hash from the compressed public key. + final keyHashBytes = QuickCrypto.hash160(pubKey.compressed); + + /// Create the P2SH script signature by combining standard script bytes with the key hash. + final scriptSigBytes = + List.from([...P2SHAddrConst.scriptBytes, ...keyHashBytes]); + + /// Compute the hash of the script signature. + return QuickCrypto.hash160(scriptSigBytes); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for P2SH (Pay-to-Script-Hash) addresses. +class P2SHAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode a P2SH (Pay-to-Script-Hash) address. + /// + /// This method delegates the decoding process to the P2PKHAddrDecoder class, which + /// specializes in decoding P2SH addresses. It expects the provided address and + /// an optional map of keyword arguments. The decoded P2SH address is returned as a List. + /// + /// Parameters: + /// - addr: The P2SH address to be decoded. + /// - kwargs: Optional keyword arguments for customization (not used in this implementation). + /// + /// Returns: + /// A List containing the decoded P2SH address bytes. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + return P2PKHAddrDecoder().decodeAddr(addr, kwargs); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for P2SH (Pay-to-Script-Hash) addresses. +class P2SHAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as a P2SH (Pay-to-Script-Hash) address. + /// + /// This method encodes a public key as a P2SH address using Base58 encoding. It expects + /// an optional map of keyword arguments, with the 'net_ver' key specifying the network + /// version bytes for the address. It validates the arguments, processes the public key as a + /// Secp256k1 key, generates a script signature, and combines it with the network version bytes + /// to create the P2SH address, which is then Base58-encoded. + /// + /// Parameters: + /// - pubKey: The public key to be encoded as a P2SH address. + /// - kwargs: Optional keyword arguments, with 'net_ver' for the network version bytes. + /// + /// Returns: + /// A String representing the Base58-encoded P2SH address derived from the provided public key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate network version arguments and retrieve the network version bytes. + AddrKeyValidator.validateAddressArgs>(kwargs, 'net_ver'); + List netVerBytes = kwargs['net_ver']; + + /// Validate and process the public key as a Secp256k1 key. + IPublicKey pubKeyObj = AddrKeyValidator.validateAndGetSecp256k1Key(pubKey); + + /// Generate the script signature from the public key. + List scriptSigBytes = _P2SHAddrUtils.addScriptSig(pubKeyObj); + + /// Combine the network version and script signature to form the address bytes. + List addressBytes = + List.filled(netVerBytes.length + scriptSigBytes.length, 0); + addressBytes.setAll(0, netVerBytes); + addressBytes.setAll(netVerBytes.length, scriptSigBytes); + + /// Encode the address bytes as a Base58-encoded P2SH address. + return Base58Encoder.checkEncode(addressBytes); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for P2SH (Pay-to-Script-Hash) addresses. +class BchP2SHAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode a P2SH (Pay-to-Script-Hash) address. + /// + /// This method decodes a P2SH address from the provided input string using Base58 encoding. + /// It expects an optional map of keyword arguments with 'hrp' specifying the Human-Readable Part (HRP) + /// and 'net_ver' for the network version bytes of the address. It validates the arguments and delegates + /// the decoding process to a specialized P2PKH address decoder (BchP2PKHAddrDecoder). + /// + /// Parameters: + /// - addr: The P2SH address to be decoded. + /// - kwargs: Optional keyword arguments with 'hrp' for HRP and 'net_ver' for network version. + /// + /// Returns: + /// A List containing the decoded P2SH address bytes. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Validate HRP and network version arguments. + AddrKeyValidator.validateAddressArgs(kwargs, "hrp"); + AddrKeyValidator.validateAddressArgs>(kwargs, "net_ver"); + String hrp = kwargs['hrp']; + List netVerBytes = kwargs['net_ver']; + + /// Delegate the decoding process to a specialized P2PKH address decoder with HRP and network version. + return BchP2PKHAddrDecoder() + .decodeAddr(addr, {'hrp': hrp, 'net_ver': netVerBytes}); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for P2SH (Pay-to-Script-Hash) addresses. +class BchP2SHAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as a P2SH (Pay-to-Script-Hash) address. + /// + /// This method encodes a public key as a P2SH address using Bech32 encoding. It expects + /// an optional map of keyword arguments with 'hrp' specifying the Human-Readable Part (HRP) + /// and 'net_ver' for the network version bytes of the address. It validates the arguments, + /// processes the public key as a Secp256k1 key, generates a script signature, and encodes + /// it as a P2SH address using Bech32. + /// + /// Parameters: + /// - pubKey: The public key to be encoded as a P2SH address. + /// - kwargs: Optional keyword arguments with 'hrp' for HRP and 'net_ver' for network version. + /// + /// Returns: + /// A String representing the Bech32-encoded P2SH address derived from the provided public key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate HRP and network version arguments. + AddrKeyValidator.validateAddressArgs(kwargs, "hrp"); + AddrKeyValidator.validateAddressArgs>(kwargs, "net_ver"); + String hrp = kwargs['hrp']; + List netVerBytes = kwargs['net_ver']; + + /// Validate and process the public key as a Secp256k1 key. + IPublicKey pubKeyObj = AddrKeyValidator.validateAndGetSecp256k1Key(pubKey); + + /// Encode the P2SH address using Bech32 encoding. + return BchBech32Encoder.encode( + hrp, netVerBytes, _P2SHAddrUtils.addScriptSig(pubKeyObj)); + } +} diff --git a/lib/bip/address/p2tr_addr.dart b/lib/bip/address/p2tr_addr.dart new file mode 100644 index 0000000..f37c766 --- /dev/null +++ b/lib/bip/address/p2tr_addr.dart @@ -0,0 +1,202 @@ +import 'package:blockchain_utils/bech32/bech32_ex.dart'; +import 'package:blockchain_utils/bech32/segwit_bech32.dart'; +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ecdsa_keys.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/ec_projective_point.dart'; + +import '../../string/string.dart'; + +/// Constants related to P2TR (Pay-to-Taproot) addresses. +class P2TRConst { + /// The SHA-256 digest of the TapTweak value. + /// + /// This value is used in the construction of P2TR addresses. + static final List tapTweakSHA256 = BytesUtils.fromHexString( + "e80fe1639c9ca050e3af1b39c143c63e429cbceb15d940fbb5c5a1f4af57c5e9", + ); + + /// The witness version for P2TR addresses. + /// + /// In the context of SegWit-based transactions and P2TR addresses, the witness version + /// is typically set to 1. + static const int witnessVer = 1; +} + +/// Utility class for working with P2TR (Pay-to-Taproot) addresses and operations. +class _P2TRUtils { + /// Compute a tagged hash for P2TR operations. + /// + /// This method takes a tag and data bytes, validates the tag type, and computes + /// a tagged hash by applying SHA-256 on the tag and data concatenated twice. + /// + /// Parameters: + /// - tag: The tag for the hash (either bytes or a string). + /// - dataBytes: The data bytes to be hashed. + /// + /// Returns: + /// A List representing the tagged hash. + /// + /// Throws: + /// - ArgumentError if the tag is not a string or bytes. + static List taggedHash(dynamic tag, List dataBytes) { + if (tag! is String && tag! is List) { + throw ArgumentError("tag must be bytes or string"); + } + List tagHash = + tag is String ? QuickCrypto.sha256Hash(StringUtils.encode(tag)) : tag; + return QuickCrypto.sha256Hash( + List.from([...tagHash, ...tagHash, ...dataBytes])); + } + + /// Compute the TapTweak hash for a P2TR address. + /// + /// This method computes the TapTweak hash by using the taggedHash method. + /// + /// Parameters: + /// - pubKey: The public key for which to compute the TapTweak. + /// + /// Returns: + /// A List representing the TapTweak hash. + static List hashTapTweak(IPublicKey pubKey) { + return _P2TRUtils.taggedHash( + P2TRConst.tapTweakSHA256, + BigintUtils.toBytes(pubKey.point.x, + length: Curves.curveSecp256k1.baselen), + ); + } + + /// Lift the x-coordinate of a public key for P2TR. + /// + /// This method lifts the x-coordinate to obtain a ProjectiveECCPoint object, + /// ensuring that it is within the curve's range. + /// + /// Parameters: + /// - pubKey: The public key to lift the x-coordinate for. + /// + /// Returns: + /// A ProjectiveECCPoint object with the lifted x-coordinate. + /// + /// Throws: + /// - Exception if the x-coordinate cannot be lifted. + static ProjectiveECCPoint _liftX(IPublicKey pubKey) { + final BigInt p = Curves.curveSecp256k1.p; + final BigInt x = pubKey.point.x; + if (x >= p) { + throw Exception("Unable to compute LiftX point"); + } + final ySq = (x.modPow(BigInt.from(3), p) + BigInt.from(7)) % p; + final y = ySq.modPow((p + BigInt.one) ~/ BigInt.from(4), p); + if (y.modPow(BigInt.two, p) != ySq) { + throw Exception("Unable to compute LiftX point"); + } + BigInt result = (y & BigInt.one) == BigInt.zero ? y : p - y; + return ProjectiveECCPoint( + curve: Curves.curveSecp256k1, x: x, y: result, z: BigInt.one); + } + + /// Tweak a public key to create a P2TR address. + /// + /// This method tweaks a public key using a hashTapTweak and lifting the x-coordinate. + /// + /// Parameters: + /// - pubKey: The public key to be tweaked. + /// + /// Returns: + /// A List representing the tweaked public key for P2TR. + static List tweakPublicKey(IPublicKey pubKey) { + final h = hashTapTweak(pubKey); + final n = Curves.generatorSecp256k1 * BigintUtils.fromBytes(h); + final outPoint = _liftX(pubKey) + n; + return BigintUtils.toBytes(outPoint.x, + length: Curves.curveSecp256k1.baselen); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Segwit v1 (P2TR) addresses. +class P2TRAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode a P2TR (Pay-to-Taproot) address. + /// + /// This method decodes a P2TR address from the given input string using Bech32 encoding. + /// It expects an optional map of keyword arguments, with the 'hrp' key specifying the + /// Human-Readable Part (HRP) of the address. It validates the arguments, decodes the + /// address, checks the witness version, and returns the decoded address as a List. + /// + /// Parameters: + /// - addr: The Bech32-encoded P2TR address to be decoded. + /// - kwargs: Optional keyword arguments, with 'hrp' for the Human-Readable Part. + /// + /// Returns: + /// A List containing the decoded P2TR address bytes. + /// + /// Throws: + /// - ArgumentError if the provided address has an incorrect witness version, + /// or if the Bech32 checksum is invalid. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + try { + /// Validate address arguments and retrieve the Human-Readable Part (HRP). + AddrKeyValidator.validateAddressArgs(kwargs, "hrp"); + final String hrp = kwargs["hrp"]; + + /// Decode the Bech32-encoded P2TR address and validate its length. + final decode = SegwitBech32Decoder.decode(hrp, addr); + final witVerGot = decode.$1; + final addrDecBytes = decode.$2; + + /// Validate the byte length of the decoded address. + AddrDecUtils.validateBytesLength( + addrDecBytes, EcdsaKeysConst.pubKeyCompressedByteLen - 1); + + /// Check the witness version. + if (witVerGot != P2TRConst.witnessVer) { + throw ArgumentError( + 'Invalid witness version (expected ${P2TRConst.witnessVer}, got $witVerGot)'); + } + + /// Return the decoded P2TR address as a List. + return addrDecBytes; + } on Bech32ChecksumError catch (e) { + throw ArgumentError('Invalid bech32 checksum', e.toString()); + } + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Segwit v1 (P2TR) addresses. +class P2TRAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as a P2TR (Pay-to-Taproot) address. + /// + /// This method encodes a public key as a P2TR address using Bech32 encoding. It expects an + /// optional map of keyword arguments, with the 'hrp' key specifying the Human-Readable Part + /// (HRP) for the address. It validates the arguments, processes the public key as a Secp256k1 key, + /// tweaks the public key, and encodes it as a P2TR address. + /// + /// Parameters: + /// - pubKey: The public key to be encoded as a P2TR address. + /// - kwargs: Optional keyword arguments, with 'hrp' for the Human-Readable Part. + /// + /// Returns: + /// A String representing the P2TR address encoded from the provided public key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate address arguments and retrieve the Human-Readable Part (HRP). + AddrKeyValidator.validateAddressArgs(kwargs, "hrp"); + final String hrp = kwargs["hrp"]; + + /// Validate and process the public key as a Secp256k1 key. + final pubKeyObj = AddrKeyValidator.validateAndGetSecp256k1Key(pubKey); + + /// Tweak the public key to create a P2TR address. + final tweakedPubKey = _P2TRUtils.tweakPublicKey(pubKeyObj); + + /// Encode the tweaked public key as a P2TR address using Bech32. + return SegwitBech32Encoder.encode(hrp, P2TRConst.witnessVer, tweakedPubKey); + } +} diff --git a/lib/bip/address/p2wpkh_addr.dart b/lib/bip/address/p2wpkh_addr.dart new file mode 100644 index 0000000..ba97496 --- /dev/null +++ b/lib/bip/address/p2wpkh_addr.dart @@ -0,0 +1,93 @@ +import 'package:blockchain_utils/bech32/bech32_ex.dart'; +import 'package:blockchain_utils/bech32/segwit_bech32.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +/// Constants related to P2WPKH (Pay-to-Witness-Public-Key-Hash) addresses. +class P2WPKHAddrConst { + /// The witness version for P2WPKH addresses. + /// In the context of Bitcoin and SegWit-based transactions, P2WPKH addresses + /// typically have a witness version of 0. + static const int witnessVer = 0; +} + +/// Implementation of the [BlockchainAddressDecoder] for Segwit (P2WPKH) addresses. +class P2WPKHAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode a P2WPKH address. + /// + /// This method decodes a P2WPKH address from the given input string using the Bech32 + /// encoding. It expects an optional map of keyword arguments, with the 'hrp' key + /// specifying the Human-Readable Part (HRP) of the address. It validates the arguments, + /// decodes the address, checks the witness version, and returns the decoded address as a List. + /// + /// Parameters: + /// - addr: The Bech32-encoded P2WPKH address to be decoded. + /// - kwargs: Optional keyword arguments, with 'hrp' for the Human-Readable Part. + /// + /// Returns: + /// A List containing the decoded P2WPKH address bytes. + /// + /// Throws: + /// - FormatException if the provided address has an incorrect witness version. + /// - ArgumentError if the Bech32 checksum is invalid. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Validate address arguments and retrieve the Human-Readable Part (HRP) + AddrKeyValidator.validateAddressArgs(kwargs, "hrp"); + final String hrp = kwargs['hrp']; + + try { + /// Decode the Bech32-encoded P2WPKH address, and validate its length. + final decoded = SegwitBech32Decoder.decode(hrp, addr); + final witVerGot = decoded.$1; + final addrDecBytes = decoded.$2; + + /// Check the witness version. + if (witVerGot != P2WPKHAddrConst.witnessVer) { + throw FormatException( + 'Invalid witness version (expected ${P2WPKHAddrConst.witnessVer}, got $witVerGot)'); + } + + /// Return the decoded P2WPKH address as a List. + return List.from(addrDecBytes); + } on Bech32ChecksumError catch (e) { + throw ArgumentError('Invalid bech32 checksum $e'); + } + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Segwit (P2WPKH) addresses. +class P2WPKHAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as a P2WPKH address. + /// + /// This method encodes a public key as a Pay-to-Witness-Public-Key-Hash (P2WPKH) address + /// using Bech32 encoding. It expects an optional map of keyword arguments, with the 'hrp' + /// key specifying the Human-Readable Part (HRP) for the address. It validates the arguments, + /// processes the public key as a Secp256k1 key, and encodes it as a P2WPKH address. + /// + /// Parameters: + /// - pubKey: The public key to be encoded as a P2WPKH address. + /// - kwargs: Optional keyword arguments, with 'hrp' for the Human-Readable Part. + /// + /// Returns: + /// A String representing the P2WPKH address encoded from the provided public key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate address arguments and retrieve the Human-Readable Part (HRP). + AddrKeyValidator.validateAddressArgs(kwargs, "hrp"); + final hrp = kwargs['hrp'] as String; + + /// Validate and process the public key as a Secp256k1 key. + final pubKeyObj = AddrKeyValidator.validateAndGetSecp256k1Key(pubKey); + + /// Set the witness version and obtain the public key bytes. + const witnessVer = P2WPKHAddrConst.witnessVer; + final pubKeyBytes = pubKeyObj.compressed; + + /// Encode the processed public key as a P2WPKH address using Bech32. + return SegwitBech32Encoder.encode( + hrp, witnessVer, QuickCrypto.hash160(pubKeyBytes)); + } +} diff --git a/lib/bip/address/sol_addr.dart b/lib/bip/address/sol_addr.dart new file mode 100644 index 0000000..ab65987 --- /dev/null +++ b/lib/bip/address/sol_addr.dart @@ -0,0 +1,65 @@ +import 'package:blockchain_utils/base58/base58.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_keys.dart'; + +/// Implementation of the [BlockchainAddressDecoder] for Solana (SOL) addresses. +class SolAddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode a Solana SOL address. + /// + /// This method decodes a Solana SOL address from the given Base58-encoded input string. + /// It expects an optional map of keyword arguments. It decodes the address, validates + /// its byte length, and returns the decoded address as a List. + /// + /// Parameters: + /// - addr: The Base58-encoded Solana SOL address to be decoded. + /// - kwargs: Optional keyword arguments for customization (not used in this implementation). + /// + /// Returns: + /// A List containing the decoded Solana SOL address bytes. + /// + /// Throws: + /// - FormatException if the decoded address has an incorrect byte length. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Decode the Solana SOL address from Base58. + final addrDecBytes = Base58Decoder.decode(addr); + + /// Validate the byte length of the decoded address. + AddrDecUtils.validateBytesLength( + addrDecBytes, Ed25519KeysConst.pubKeyByteLen); + + /// Return the decoded address as a List. + return List.from(addrDecBytes); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Solana (SOL) addresses. +class SolAddrEncoder implements BlockchainAddressEncoder { + /// Overrides the base class method to encode a public key as a Solana SOL address. + /// + /// This method takes a public key as a List and an optional map of keyword + /// arguments, although they are not used in this implementation. It validates + /// and processes the public key as an Ed25519 key, then encodes it into a Solana + /// SOL address using Base58 encoding. The resulting address is returned as a String. + /// + /// Parameters: + /// - pubKey: The public key to be encoded as a Solana SOL address. + /// - kwargs: Optional keyword arguments (not used in this implementation). + /// + /// Returns: + /// A String representing the Solana SOL address encoded from the provided public key + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate and process the public key as an Ed25519 key. + final pub = AddrKeyValidator.validateAndGetEd25519Key(pubKey); + + /// Encode the processed public key as a Solana SOL address using Base58. + final encodedKey = Base58Encoder.encode(pub.compressed.sublist(1)); + + /// Return the encoded Solana SOL address as a String. + return encodedKey; + } +} diff --git a/lib/bip/address/substrate_addr.dart b/lib/bip/address/substrate_addr.dart new file mode 100644 index 0000000..6f8b4ab --- /dev/null +++ b/lib/bip/address/substrate_addr.dart @@ -0,0 +1,145 @@ +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/ss58/ss58_base.dart'; +import 'package:blockchain_utils/ss58/ss58_ex.dart'; + +/// Utility class for decoding and working with Substrate addresses. +class _SubstrateAddrUtils { + static List decodeAddr( + String addr, int ss58Format, IPublicKey? pubKeyCls) { + try { + // Decode from SS58 (SS58Decoder.Decode also validates the length) + final decodedResult = SS58Decoder.decode(addr); + final ss58FormatGot = decodedResult.$1; + final addrDecBytes = decodedResult.$2; + + if (ss58Format != ss58FormatGot) { + throw FormatException( + "Invalid SS58 format (expected $ss58Format, got $ss58FormatGot)"); + } + + // Validate public key + // AddrDecUtils.validatePubKey(addrDecBytes, pubKeyCls); + + return addrDecBytes; + } on SS58ChecksumError catch (e) { + throw FormatException("Invalid SS58 encoding", e); + } + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Substrate addresses. +class SubstrateEd25519AddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode a Substrate address. + /// + /// This method decodes a Substrate address from the given input string. It expects a + /// map of optional keyword arguments, with the 'ss58_format' key specifying the expected + /// SS58 format for the address. It validates the arguments, decodes the address, and returns + /// the decoded address as a List. + /// + /// Parameters: + /// - addr: The address to be decoded. + /// - kwargs: Optional keyword arguments (e.g., 'ss58_format') for customization. + /// + /// Returns: + /// A List containing the decoded address bytes. + /// + /// Throws: + /// - FormatException if the provided address is not in the expected SS58 format. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + AddrKeyValidator.validateAddressArgs(kwargs, "ss58_format"); + final int ss58Format = kwargs["ss58_format"]; + return _SubstrateAddrUtils.decodeAddr(addr, ss58Format, null); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Substrate addresses. +class SubstrateEd25519AddrEncoder implements BlockchainAddressEncoder { + /// Encodes a public key into a Substrate address. + /// + /// This method takes a public key as a List and an optional map of keyword + /// arguments, with the 'ss58_format' key specifying the desired SS58 format for + /// the address. It validates the arguments, encodes the public key, and returns + /// the resulting Substrate address as a String. + /// + /// Parameters: + /// - pubKey: The public key to be encoded as a Substrate address. + /// - kwargs: Optional keyword arguments (e.g., 'ss58_format') for customization. + /// + /// Returns: + /// A String representing the Substrate address encoded from the provided public key. + /// + /// Throws: + /// - FormatException if the provided SS58 format is invalid or if the public key + /// is not a valid Ed25519 key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + AddrKeyValidator.validateAddressArgs(kwargs, "ss58_format"); + final int ss58Format = kwargs["ss58_format"]; + final pubKeyObj = AddrKeyValidator.validateAndGetEd25519Key(pubKey); + return SS58Encoder.encode(pubKeyObj.compressed.sublist(1), ss58Format); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Substrate addresses. +class SubstrateSr25519AddrDecoder implements BlockchainAddressDecoder { + /// Overrides the base class method to decode a Substrate address. + /// + /// This method decodes a Substrate address from the given input string. It expects a + /// map of optional keyword arguments, with the 'ss58_format' key specifying the expected + /// SS58 format for the address. It validates the arguments, decodes the address, and returns + /// the decoded address as a List. + /// + /// Parameters: + /// - addr: The address to be decoded. + /// - kwargs: Optional keyword arguments (e.g., 'ss58_format') for customization. + /// + /// Returns: + /// A List containing the decoded address bytes. + /// + /// Throws: + /// - FormatException if the provided address is not in the expected SS58 format. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + AddrKeyValidator.validateAddressArgs(kwargs, "ss58_format"); + final int ss58Format = kwargs["ss58_format"]; + return _SubstrateAddrUtils.decodeAddr(addr, ss58Format, null); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Substrate addresses. +class SubstrateSr25519AddrEncoder implements BlockchainAddressEncoder { + /// Encodes a public key into a Substrate address. + /// + /// This method takes a public key as a List and an optional map of keyword + /// arguments, with the 'ss58_format' key specifying the desired SS58 format for + /// the address. It validates the arguments, encodes the public key, and returns + /// the resulting Substrate address as a String. + /// + /// Parameters: + /// - pubKey: The public key to be encoded as a Substrate address. + /// - kwargs: Optional keyword arguments (e.g., 'ss58_format') for customization. + /// + /// Returns: + /// A String representing the Substrate address encoded from the provided public key. + /// + /// Throws: + /// - FormatException if the provided SS58 format is invalid or if the public key + /// is not a valid sr25519 key. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + AddrKeyValidator.validateAddressArgs(kwargs, "ss58_format"); + final int ss58Format = kwargs["ss58_format"]; + List pubBytes = pubKey; + try { + AddrKeyValidator.validateAndGetSr25519Key(pubBytes); + } catch (e) { + final pub = AddrKeyValidator.validateAndGetEd25519Key(pubKey); + pubBytes = pub.compressed.sublist(1); + } + return SS58Encoder.encode(pubBytes, ss58Format); + } +} diff --git a/lib/bip/address/trx_addr.dart b/lib/bip/address/trx_addr.dart new file mode 100644 index 0000000..919db07 --- /dev/null +++ b/lib/bip/address/trx_addr.dart @@ -0,0 +1,62 @@ +import 'package:blockchain_utils/base58/base58.dart'; +import 'package:blockchain_utils/base58/base58_ex.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/eth_addr.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +/// Implementation of the [BlockchainAddressDecoder] for TRON (TRX) blockchain addresses. +class TrxAddrDecoder implements BlockchainAddressDecoder { + /// Decodes a Tron address from its encoded representation. + /// + /// The `addr` parameter is the encoded Tron address to be decoded. + /// The optional `kwargs` parameter allows for additional configuration. + /// Returns the decoded address as a List. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + List addrDec; + try { + addrDec = Base58Decoder.checkDecode(addr); + } on Base58ChecksumError catch (e) { + throw ArgumentError('Invalid base58 checksum', e.toString()); + } + final tronPrefix = CoinsConf.tron.getParam>('addr_prefix')!; + AddrDecUtils.validateBytesLength( + addrDec, (EthAddrConst.addrLen ~/ 2) + tronPrefix.length); + final addrNoPrefix = + AddrDecUtils.validateAndRemovePrefixBytes(addrDec, tronPrefix); + + return EthAddrDecoder().decodeAddr( + CoinsConf.ethereum.getParam('addr_prefix') + + BytesUtils.toHexString(addrNoPrefix), + { + "skip_chksum_enc": true, + }); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for TRON (TRX) blockchain addresses. +class TrxAddrEncoder implements BlockchainAddressEncoder { + /// Encodes a public key as a Tron address. + /// + /// This method takes a public key and encodes it as a Tron address by first + /// converting it to an Ethereum address and then prefixing it with the Tron + /// address prefix. The resulting address is encoded using the Base58 encoding. + /// + /// Parameters: + /// - pubKey: The public key to be encoded. + /// - kwargs: Optional arguments, if needed. + /// + /// Returns: + /// A Tron address encoded as a Base58 string. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + String ethAddr = EthAddrEncoder().encodeKey(pubKey).substring(2); + return Base58Encoder.checkEncode(List.from([ + ...CoinsConf.tron.getParam("addr_prefix")!, + ...BytesUtils.fromHexString(ethAddr) + ])); + } +} diff --git a/lib/bip/address/xlm_addr.dart b/lib/bip/address/xlm_addr.dart new file mode 100644 index 0000000..d8c1dba --- /dev/null +++ b/lib/bip/address/xlm_addr.dart @@ -0,0 +1,139 @@ +import 'package:blockchain_utils/base32/base32.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_keys.dart'; + +import 'package:blockchain_utils/crypto/crypto/x_modem_crc/x_modem_crc.dart'; + +import 'encoder.dart'; + +/// Enum representing different types of Stellar (XLM) addresses. +/// +/// This enum defines two address types: "pubKey" and "privKey" with their respective values. +/// - "pubKey" is used for public account keys. +/// - "privKey" is used for private account keys. +/// +/// Each enum value corresponds to an integer value, which is a bit shift left operation to calculate the actual value. +/// These values are used to determine the type of Stellar address. +/// +/// Example usage: +/// ``` +/// final addressType = XlmAddrTypes.pubKey; +/// final addressValue = addressType.value; // Returns 48 (6 << 3) +/// ``` +enum XlmAddrTypes { + pubKey(6 << 3), + privKey(18 << 3); + + final int value; + + /// Constructor for XlmAddrTypes enum values. + const XlmAddrTypes(this.value); +} + +/// Constants related to Stellar (XLM) addresses. +/// +/// This class contains constants used for handling Stellar addresses, including the checksum byte length. +class XlmAddrConst { + /// The length in bytes of the checksum used in Stellar addresses. + static const checksumByteLen = 2; +} + +class _XlmAddrUtils { + /// Stellar address utility class. + + static List computeChecksum(List payloadBytes) { + // Compute checksum in Stellar format. + return XModemCrc.quickDigest(payloadBytes).reversed.toList(); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Stellar (XLM) blockchain addresses. +class XlmAddrDecoder implements BlockchainAddressDecoder { + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Decode a Stellar (XLM) address and return the public key. + /// + /// This method decodes a Stellar address and extracts the public key part, returning it as a List. + /// + /// - [addr]: The Stellar address to decode. + /// - [kwargs]: A map of optional keyword arguments. + /// - [addr_type]: The address type, either XlmAddrTypes.pubKey or XlmAddrTypes.privKey. + /// + /// Throws an [ArgumentError] if the address type is not valid or if there's a validation error. + /// + /// Example usage: + /// ```dart + /// final decoder = XlmAddrDecoder(); + /// final addr = 'GC2Z66U3A3I5VGM3S5INUT4FVC3VGCUJ7ALDCTF6WLYBMXNO5KNOHWZL'; + /// final publicKey = decoder.decodeAddr(addr, {'addr_type': XlmAddrTypes.pubKey}); + /// ``` + final addrType = kwargs['addr_type'] ?? XlmAddrTypes.pubKey; + if (addrType is! XlmAddrTypes) { + throw ArgumentError('Address type is not an enumerative of XlmAddrTypes'); + } + + final addrDecBytes = Base32Decoder.decode(addr); + + AddrDecUtils.validateBytesLength( + addrDecBytes, + Ed25519KeysConst.pubKeyByteLen + + Ed25519KeysConst.pubKeyPrefix.length + + XlmAddrConst.checksumByteLen); + + final payloadBytes = AddrDecUtils.splitPartsByChecksum( + addrDecBytes, XlmAddrConst.checksumByteLen) + .$1; + + final addrTypeGot = payloadBytes[0]; + if (addrType.value != addrTypeGot) { + throw ArgumentError( + 'Invalid address type (expected ${addrType.value}, got $addrTypeGot)'); + } + + AddrDecUtils.validateChecksum( + payloadBytes, + addrDecBytes + .sublist(addrDecBytes.length - XlmAddrConst.checksumByteLen), + _XlmAddrUtils.computeChecksum); + final pubKeyBytes = payloadBytes.sublist(1); + return pubKeyBytes; + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Stellar (XLM) blockchain addresses. +class XlmAddrEncoder implements BlockchainAddressEncoder { + /// Encode a Stellar (XLM) public key as a Stellar address. + /// + /// This method encodes a Stellar public key as a Stellar address, which can be used for transactions. + /// + /// - [pubKey]: The Stellar public key to encode. + /// - [kwargs]: A map of optional keyword arguments. + /// - [addr_type]: The address type, either XlmAddrTypes.pubKey or XlmAddrTypes.privKey. + /// + /// Throws an [ArgumentError] if the address type is not valid or if there's a validation error. + /// + /// Example usage: + /// ```dart + /// final encoder = XlmAddrEncoder(); + /// final publicKey = List.from([6, ...bytes]); // Replace 'bytes' with the actual public key bytes. + /// final addr = encoder.encodeKey(publicKey, {'addr_type': XlmAddrTypes.pubKey}); + /// ``` + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + final addrType = kwargs['addr_type'] ?? XlmAddrTypes.pubKey; + if (addrType is! XlmAddrTypes) { + throw ArgumentError('Address type is not an enumerative of XlmAddrTypes'); + } + + IPublicKey pubKeyObj = AddrKeyValidator.validateAndGetEd25519Key(pubKey); + List payloadBytes = + List.from([addrType.value, ...pubKeyObj.compressed.sublist(1)]); + + List checksumBytes = _XlmAddrUtils.computeChecksum(payloadBytes); + return Base32Encoder.encodeNoPaddingBytes( + List.from([...payloadBytes, ...checksumBytes])); + } +} diff --git a/lib/bip/address/xmr_addr.dart b/lib/bip/address/xmr_addr.dart new file mode 100644 index 0000000..15ed91c --- /dev/null +++ b/lib/bip/address/xmr_addr.dart @@ -0,0 +1,277 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/base58/base58_xmr.dart'; +import 'package:blockchain_utils/bip/address/addr_dec_utils.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_keys.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +import 'addr_key_validator.dart'; + +/// Constants related to Monero (XMR) addresses. +class XmrAddrConst { + /// The length of the checksum bytes used in XMR addresses. + static const int checksumByteLen = 4; + + /// The length of payment ID bytes used in XMR addresses. + static const int paymentIdByteLen = 8; +} + +/// Class container for Monero address utility functions. +class _XmrAddrUtils { + /// Compute checksum in EOS format. + static List computeChecksum(List payloadBytes) { + return QuickCrypto.keccack256Hash(payloadBytes) + .sublist(0, XmrAddrConst.checksumByteLen); + } + + /// Decode bytes from a Monero address to bytes. + static List decodeAddr( + String addr, + List netVerBytes, { + List? paymentIdBytes, + }) { + final addrDecBytes = Base58XmrDecoder.decode(addr); + final parts = AddrDecUtils.splitPartsByChecksum( + addrDecBytes, XmrAddrConst.checksumByteLen); + final payloadBytes = parts.$1; + final checksumBytes = parts.$2; + + /// Validate checksum + AddrDecUtils.validateChecksum(payloadBytes, checksumBytes, computeChecksum); + + /// Validate and remove prefix + final payloadBytesWithoutPrefix = + AddrDecUtils.validateAndRemovePrefixBytes(payloadBytes, netVerBytes); + + try { + /// Validate length without payment ID + AddrDecUtils.validateBytesLength( + payloadBytesWithoutPrefix, + Ed25519KeysConst.pubKeyByteLen * 2, + ); + } catch (ex) { + /// Validate length with payment ID + AddrDecUtils.validateBytesLength( + payloadBytesWithoutPrefix, + (Ed25519KeysConst.pubKeyByteLen * 2) + XmrAddrConst.paymentIdByteLen, + ); + + /// Check payment ID + if (paymentIdBytes == null || + paymentIdBytes.length != XmrAddrConst.paymentIdByteLen) { + throw ArgumentError('Invalid payment ID'); + } + + final paymentIdGotBytes = payloadBytesWithoutPrefix.sublist( + payloadBytesWithoutPrefix.length - XmrAddrConst.paymentIdByteLen); + if (!bytesEqual(paymentIdBytes, paymentIdGotBytes)) { + throw ArgumentError( + 'Invalid payment ID (expected ${BytesUtils.toHexString(paymentIdBytes)}, ' + 'got ${BytesUtils.toHexString(paymentIdGotBytes)})'); + } + } + + /// Validate public spend key + final pubSpendKeyBytes = + payloadBytesWithoutPrefix.sublist(0, Ed25519KeysConst.pubKeyByteLen); + // AddrDecUtils.validatePubKey(pubSpendKeyBytes, Ed25519MoneroPublicKey); + + // Validate public view key + final pubViewKeyBytes = payloadBytesWithoutPrefix.sublist( + Ed25519KeysConst.pubKeyByteLen, + Ed25519KeysConst.pubKeyByteLen * 2, + ); + // AddrDecUtils.validatePubKey(pubViewKeyBytes, Ed25519MoneroPublicKey); + + return List.from(pubSpendKeyBytes + pubViewKeyBytes); + } + + static String encodeKey( + List pubSkey, + List pubVkey, + List netVerBytes, { + List? paymentIdBytes, + }) { + if (paymentIdBytes != null && + paymentIdBytes.length != XmrAddrConst.paymentIdByteLen) { + throw ArgumentError('Invalid payment ID length'); + } + + final paymentIdBytesSafe = paymentIdBytes ?? List.from([]); + final pubSpendKeyObj = + AddrKeyValidator.validateAndGetEd25519MoneroKey(pubSkey); + final pubViewKeyObj = + AddrKeyValidator.validateAndGetEd25519MoneroKey(pubVkey); + final payloadBytes = List.from( + netVerBytes + + pubSpendKeyObj.compressed + + pubViewKeyObj.compressed + + paymentIdBytesSafe, + ); + + return Base58XmrEncoder.encode( + List.from(payloadBytes + computeChecksum(payloadBytes))); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Monero (XMR) blockchain addresses. +class XmrAddrDecoder implements BlockchainAddressDecoder { + /// Decodes a Monero (XMR) address. + /// + /// Given an XMR address and optional decoding parameters specified in [kwargs], + /// this method decodes the XMR address and returns the result as a List. + /// + /// If decoding parameters are provided, ensure that "net_ver" is a List + /// representing the network version bytes. + /// + /// Parameters: + /// - addr: The XMR address to decode. + /// - kwargs: A map of optional decoding parameters, such as "net_ver." + /// + /// Returns: + /// A List containing the decoded address data. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + AddrKeyValidator.validateAddressArgs>(kwargs, "net_ver"); + final List netVerBytes = kwargs["net_ver"]; + return _XmrAddrUtils.decodeAddr(addr, netVerBytes); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Monero (XMR) blockchain addresses. +class XmrAddrEncoder extends BlockchainAddressEncoder { + /// Encodes a Monero (XMR) public key and view key as an XMR address. + /// + /// Given a public key, view key, and optional encoding parameters specified in [kwargs], + /// this method encodes the public keys as an XMR address and returns the result as a string. + /// + /// Ensure that the "net_ver" and "pub_vkey" parameters are provided as List instances. + /// + /// Parameters: + /// - pubKey: The public key to be encoded. + /// - kwargs: A map of optional encoding parameters, including "net_ver" (network version bytes) + /// and "pub_vkey" (public view key). + /// + /// Returns: + /// A string representing the encoded XMR address. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + AddrKeyValidator.validateAddressArgs>(kwargs, "net_ver"); + AddrKeyValidator.validateAddressArgs>(kwargs, "pub_vkey"); + final List netVerBytes = kwargs["net_ver"]; + final List pubVKey = kwargs["pub_vkey"]; + return _XmrAddrUtils.encodeKey(pubKey, pubVKey, netVerBytes); + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Monero (XMR) integrated addresses. +class XmrIntegratedAddrDecoder extends BlockchainAddressDecoder { + /// Decodes a Monero (XMR) integrated address to extract the public key and view key components. + /// + /// Given an XMR address and optional decoding parameters specified in [kwargs], + /// this method decodes the address to extract the public key and view key components. + /// + /// Ensure that the "net_ver" and "payment_id" parameters are provided as List instances. + /// + /// Parameters: + /// - addr: The XMR address to be decoded. + /// - kwargs: A map of optional decoding parameters, including "net_ver" (network version bytes) + /// and "payment_id" (payment ID bytes). + /// + /// Returns: + /// A List representing the decoded public key and view key components. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + AddrKeyValidator.validateAddressArgs>(kwargs, "net_ver"); + AddrKeyValidator.validateAddressArgs>(kwargs, "payment_id"); + final List netVerBytes = kwargs["net_ver"]; + final List paymentId = kwargs["payment_id"]; + return _XmrAddrUtils.decodeAddr(addr, netVerBytes, + paymentIdBytes: paymentId); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Monero (XMR) integrated addresses. +class XmrIntegratedAddrEncoder implements BlockchainAddressEncoder { + /// Encodes a Monero (XMR) public key and view key as an XMR address. + /// + /// Given a public key, view key, and optional encoding parameters specified in [kwargs], + /// this method encodes the public keys as an XMR address and returns the result as a string. + /// + /// Ensure that the "net_ver" and "pub_vkey", "payment_id" parameters are provided as List instances. + /// + /// Parameters: + /// - pubKey: The public key to be encoded. + /// - kwargs: A map of optional encoding parameters, including "net_ver" (network version bytes) + /// "payment_id" (Payment ID) and "pub_vkey" (public view key). + /// + /// Returns: + /// A string representing the encoded XMR integrated address. + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + AddrKeyValidator.validateAddressArgs>(kwargs, "net_ver"); + AddrKeyValidator.validateAddressArgs>(kwargs, "payment_id"); + AddrKeyValidator.validateAddressArgs>(kwargs, "pub_vkey"); + final List netVerBytes = kwargs["net_ver"]; + final List paymentId = kwargs["payment_id"]; + final List pubVKey = kwargs["pub_vkey"]; + return _XmrAddrUtils.encodeKey(pubKey, pubVKey, netVerBytes, + paymentIdBytes: paymentId); + } +} diff --git a/lib/bip/address/xrp_addr.dart b/lib/bip/address/xrp_addr.dart new file mode 100644 index 0000000..46cca48 --- /dev/null +++ b/lib/bip/address/xrp_addr.dart @@ -0,0 +1,70 @@ +import 'package:blockchain_utils/base58/base58.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/address/p2pkh_addr.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; + +/// Implementation of the [BlockchainAddressDecoder] for ripple (XRP) blockchain addresses. +class XrpAddrDecoder implements BlockchainAddressDecoder { + /// Decodes a Ripple (XRP) blockchain address into its byte representation. + /// + /// This method takes a Ripple address as a string and optional keyword arguments, + /// including "net_ver" specifying the network version byte and "base58_alph" specifying + /// the Base58 alphabet to use for decoding. It delegates the decoding process to the + /// [P2PKHAddrDecoder] class, providing the necessary parameters. The resulting byte + /// representation of the address is returned as a [List]. + /// + /// Parameters: + /// - [addr]: The Ripple address as a string to decode. + /// - [kwargs]: Optional keyword arguments, including "net_ver" and "base58_alph" settings. + /// + /// Returns: + /// A [List] representing the byte data of the decoded Ripple address. + /// + /// Example usage: + /// ```dart + /// final decoder = XrpAddrDecoder(); + /// final rippleAddress = "r9HcFbTdsuGAAQ14xaNk7zPQGqPt6fPqGT"; + /// final decodedBytes = decoder.decodeAddr(rippleAddress); + /// ``` + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Delegate the decoding process to P2PKHAddrDecoder with specific parameters. + return P2PKHAddrDecoder().decodeAddr(addr, { + "net_ver": CoinsConf.ripple.getParam("p2pkh_net_ver"), + "base58_alph": Base58Alphabets.ripple, + }); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for ripple (XRP) blockchain addresses. +class XrpAddrEncoder implements BlockchainAddressEncoder { + /// Encodes a Ripple (XRP) public key as a blockchain address. + /// + /// This method takes a public key represented as a [List] and optional keyword arguments, + /// including "net_ver" specifying the network version byte and "base58_alph" specifying + /// the Base58 alphabet to use for encoding. It delegates the encoding process to the + /// [P2PKHAddrEncoder] class, providing the necessary parameters. The resulting Ripple + /// address is returned as a string. + /// + /// Parameters: + /// - [pubKey]: The public key to encode as a Ripple address. + /// - [kwargs]: Optional keyword arguments, including "net_ver" and "base58_alph" settings. + /// + /// Returns: + /// A Ripple address string representing the encoded public key. + /// + /// Example usage: + /// ```dart + /// final encoder = XrpAddrEncoder(); + /// final publicKey = List.from([/* public key bytes */]); + /// final rippleAddress = encoder.encodeKey(publicKey); + /// ``` + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + return P2PKHAddrEncoder().encodeKey(pubKey, { + "net_ver": CoinsConf.ripple.getParam("p2pkh_net_ver"), + "base58_alph": Base58Alphabets.ripple, + }); + } +} diff --git a/lib/bip/address/xtz_addr.dart b/lib/bip/address/xtz_addr.dart new file mode 100644 index 0000000..8537670 --- /dev/null +++ b/lib/bip/address/xtz_addr.dart @@ -0,0 +1,136 @@ +import 'package:blockchain_utils/base58/base58.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +import 'addr_dec_utils.dart'; + +/// Enum defining address prefixes for Tezos (XTZ) blockchain addresses. +/// +/// This enum specifies the address prefixes for Tezos blockchain addresses, which +/// differentiate between various address types (e.g., tz1, tz2, tz3). +/// +/// Each enum value corresponds to a specific address prefix and consists of a list +/// of integers representing the prefix bytes. The enum also provides a static method, +/// `fromName`, to retrieve the enum value corresponding to a given name. +/// +/// Example usage: +/// ``` +/// final prefix = XtzAddrPrefixes.tz1; +/// final prefixBytes = prefix.value; +/// final prefixName = prefix.name; +/// ``` +enum XtzAddrPrefixes { + /// Address prefix for tz1 addresses. + tz1([0x06, 0xa1, 0x9f]), + + /// Address prefix for tz2 addresses. + tz2([0x06, 0xa1, 0xa1]), + + /// Address prefix for tz3 addresses. + tz3([0x06, 0xa1, 0xa4]); + + /// The bytes that make up the address prefix. + final List value; + + /// Constructor to create an enum value with the specified prefix bytes. + const XtzAddrPrefixes(this.value); + + /// Static method to retrieve an enum value based on its name. + /// + /// If the provided name is not found in the enum, it returns null. + static XtzAddrPrefixes? fromName(String name) { + try { + return XtzAddrPrefixes.values + .firstWhere((element) => element.name == name); + } on StateError { + return null; + } + } +} + +/// Implementation of the [BlockchainAddressDecoder] for Tezos (XTZ) blockchain addresses. +class XtzAddrDecoder implements BlockchainAddressDecoder { + /// Decodes a Tezos (XTZ) blockchain address from its string representation to its byte data. + /// + /// This method takes an encoded Tezos address string and optional keyword arguments, including + /// the "prefix" specifying the address prefix to use for decoding. It validates and decodes the + /// given address, removing the specified prefix and returning the decoded byte data. + /// + /// Throws an exception if the address is not in the expected format or if the prefix is invalid. + /// + /// Parameters: + /// - [addr]: The encoded Tezos address as a string. + /// - [kwargs]: Optional keyword arguments, including "prefix" to specify the address prefix. + /// + /// Returns: + /// A [List] containing the decoded byte data of the Tezos address. + /// + /// Example usage: + /// ```dart + /// final decoder = XtzAddrDecoder(); + /// final encodedAddress = "tz1abc123..."; + /// final decodedAddress = decoder.decodeAddr(encodedAddress, {"prefix": XtzAddrPrefixes.tz1}); + /// ``` + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + /// Validate and retrieve the address prefix from the keyword arguments. + AddrKeyValidator.validateAddressArgs(kwargs, "prefix"); + final XtzAddrPrefixes prefix = kwargs["prefix"]; + + /// Decode the base58 address into bytes. + final addrDecBytes = Base58Decoder.checkDecode(addr); + + /// Validate the length of the decoded address and remove the prefix bytes. + AddrDecUtils.validateBytesLength(addrDecBytes, prefix.value.length + 20); + final blakeBytes = + AddrDecUtils.validateAndRemovePrefixBytes(addrDecBytes, prefix.value); + + return List.from(blakeBytes); + } +} + +/// Implementation of the [BlockchainAddressEncoder] for Tezos (XTZ) blockchain addresses. +class XtzAddrEncoder implements BlockchainAddressEncoder { + /// Encodes a public key as a Tezos (XTZ) blockchain address using the specified prefix. + /// + /// This method takes a public key in the form of a [List] and optional keyword arguments, + /// including the "prefix" specifying the address prefix to use for encoding. It first validates + /// the public key, then derives the address by hashing and prepending the prefix. The resulting + /// address is returned as a string. + /// + /// Throws an exception if the public key is not in the expected format or if the prefix is invalid. + /// + /// Parameters: + /// - [pubKey]: The public key as a [List] to encode. + /// - [kwargs]: Optional keyword arguments, including "prefix" to specify the address prefix. + /// + /// Returns: + /// A string representing the encoded Tezos address. + /// + /// Example usage: + /// ```dart + /// final encoder = XtzAddrEncoder(); + /// final publicKey = List.from([0x03, 0x7f, 0x12, ...]); + /// final address = encoder.encodeKey(publicKey, {"prefix": XtzAddrPrefixes.tz1}); + /// ``` + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate and retrieve the address prefix from the keyword arguments. + AddrKeyValidator.validateAddressArgs(kwargs, "prefix"); + + final XtzAddrPrefixes prefix = kwargs["prefix"]; + + /// Validate the provided public key. + final pubKeyObj = AddrKeyValidator.validateAndGetEd25519Key(pubKey); + + /// Derive the address by hashing and prepending the prefix. + final blakeBytes = + QuickCrypto.blake2b160Hash(pubKeyObj.compressed.sublist(1)); + + /// Encode the address using base58 and the specified prefix. + return Base58Encoder.checkEncode( + List.from([...prefix.value, ...blakeBytes])); + } +} diff --git a/lib/bip/address/zil_addr.dart b/lib/bip/address/zil_addr.dart new file mode 100644 index 0000000..8d32a5f --- /dev/null +++ b/lib/bip/address/zil_addr.dart @@ -0,0 +1,79 @@ +import 'package:blockchain_utils/bech32/bech32_base.dart'; +import 'package:blockchain_utils/bech32/bech32_ex.dart'; +import 'package:blockchain_utils/bip/address/addr_key_validator.dart'; +import 'package:blockchain_utils/bip/address/decoder.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +/// Constants related to Zilliqa (ZIL) blockchain addresses. +class ZilAddrConst { + /// The length, in bytes, of a SHA-256 hash used in Zilliqa addresses. + static const int sha256ByteLen = 20; +} + +/// A Zilliqa (ZIL) blockchain address decoder that implements the [BlockchainAddressDecoder] interface. +class ZilAddrDecoder implements BlockchainAddressDecoder { + /// Decodes a Zilliqa blockchain address from a human-readable representation. + /// + /// Given a Zilliqa address string [addr], this method decodes it using the + /// specified Human Readable Part (HRP) from the Zilliqa configuration. If the + /// provided address has an invalid bech32 checksum, it raises an [ArgumentError] + /// with a descriptive error message. + /// + /// Parameters: + /// - [addr]: The Zilliqa address string to decode. + /// - [kwargs]: An optional map of additional arguments. (Not used in this implementation) + /// + /// Returns: + /// - A [List] representing the decoded Zilliqa address in bytes. + /// + /// Throws: + /// - An [ArgumentError] with an error message if the bech32 checksum is invalid. + @override + List decodeAddr(String addr, [Map kwargs = const {}]) { + try { + /// Decode the Zilliqa address using the specified Human Readable Part (HRP). + final addrDecBytes = Bech32Decoder.decode( + CoinsConf.zilliqa.getParam('addr_hrp'), + addr, + ); + return addrDecBytes; + } on Bech32ChecksumError catch (e) { + throw ArgumentError('Invalid bech32 checksum ${e.message ?? ""}'); + } + } +} + +/// A Zilliqa blockchain address encoder that implements the [BlockchainAddressEncoder] interface. +class ZilAddrEncoder implements BlockchainAddressEncoder { + /// Encodes a Zilliqa blockchain address from a given public key. + /// + /// This method takes a public key in the form of a [List] and generates a Zilliqa + /// blockchain address by following these steps: + /// 1. Validate and obtain a secp256k1 key object from the input public key. + /// 2. Calculate the SHA-256 hash of the compressed public key. + /// 3. Encode the Zilliqa blockchain address using Bech32 encoding. + /// + /// Parameters: + /// - [pubKey]: The public key to encode as a Zilliqa blockchain address. + /// - [kwargs]: An optional map of keyword arguments, which is not used in this implementation. + /// + /// Returns the Zilliqa blockchain address as a string. + /// + /// Throws: + /// - [ArgumentError] if the public key validation fails or if there is an issue with Bech32 encoding. + /// + @override + String encodeKey(List pubKey, [Map kwargs = const {}]) { + /// Validate the public key and obtain a secp256k1 key object. + final pubKeyObj = AddrKeyValidator.validateAndGetSecp256k1Key(pubKey); + + /// Calculate the SHA-256 hash of the compressed public key. + final keyHash = QuickCrypto.sha256Hash(pubKeyObj.compressed); + + /// Encode the Zilliqa blockchain address using Bech32 encoding. + return Bech32Encoder.encode(CoinsConf.zilliqa.getParam('addr_hrp'), + keyHash.sublist(keyHash.length - ZilAddrConst.sha256ByteLen)); + } +} diff --git a/lib/bip/algorand/algorand.dart b/lib/bip/algorand/algorand.dart new file mode 100644 index 0000000..6e81310 --- /dev/null +++ b/lib/bip/algorand/algorand.dart @@ -0,0 +1,29 @@ +// This library, 'algorand_mnemonic', provides a comprehensive set of tools +// for working with Algorand mnemonics, a critical component in the Algorand +// blockchain ecosystem. + +library algorand_mnemonic; + +// Export statement for the entropy generator module. +export 'mnemonic/algorand_entropy_generator.dart'; + +// Export statement for the Algorand mnemonic class. +export 'mnemonic/algorand_mnemonic.dart'; + +// Export statement for the mnemonic decoder module. +export 'mnemonic/algorand_mnemonic_decoder.dart'; + +// Export statement for the mnemonic encoder module. +export 'mnemonic/algorand_mnemonic_encoder.dart'; + +// Export statement for the mnemonic generator module. +export 'mnemonic/algorand_mnemonic_generator.dart'; + +// Export statement for the mnemonic utility functions module. +export 'mnemonic/algorand_mnemonic_utils.dart'; + +// Export statement for the seed generator module. +export 'mnemonic/algorand_seed_generator.dart'; + +// Export statement for the mnemonic validator module. +export 'mnemonic/algorand_mnemonic_validator.dart'; diff --git a/lib/bip/algorand/mnemonic/algorand_entropy_generator.dart b/lib/bip/algorand/mnemonic/algorand_entropy_generator.dart new file mode 100644 index 0000000..6fa0233 --- /dev/null +++ b/lib/bip/algorand/mnemonic/algorand_entropy_generator.dart @@ -0,0 +1,47 @@ +import 'package:blockchain_utils/bip/mnemonic/entropy_generator.dart'; + +/// Enumerates different bit lengths for Algorand entropy generation. +enum AlgorandEntropyBitLen { + bitLen256(256); + + final int value; + + /// Creates an instance of AlgorandEntropyBitLen with the specified value. + const AlgorandEntropyBitLen(this.value); +} + +/// Constants related to Algorand entropy generation. +class AlgorandEntropyGeneratorConst { + /// List of supported bit lengths for Algorand entropy generation. + static const entropyBitLen = [AlgorandEntropyBitLen.bitLen256]; +} + +/// Generates entropy for Algorand based on the specified bit length. +class AlgorandEntropyGenerator extends EntropyGenerator { + /// Creates an instance of AlgorandEntropyGenerator with an optional bit length. + /// + /// The [bitLen] parameter determines the length of the generated entropy in bits. + AlgorandEntropyGenerator( + [AlgorandEntropyBitLen bitLen = AlgorandEntropyBitLen.bitLen256]) + : super(bitLen.value); + + /// Checks if a given bit length is valid for Algorand entropy generation. + /// + /// Returns `true` if the bit length is valid, otherwise `false`. + static bool isValidEntropyBitLen(int bitLen) { + try { + AlgorandEntropyGeneratorConst.entropyBitLen + .firstWhere((element) => element.value == bitLen); + } on StateError { + return false; + } + return true; + } + + /// Checks if a given byte length is valid for Algorand entropy generation. + /// + /// Returns `true` if the byte length is valid, otherwise `false`. + static bool isValidEntropyByteLen(int byteLen) { + return isValidEntropyBitLen(byteLen * 8); + } +} diff --git a/lib/bip/algorand/mnemonic/algorand_mnemonic.dart b/lib/bip/algorand/mnemonic/algorand_mnemonic.dart new file mode 100644 index 0000000..0da6dac --- /dev/null +++ b/lib/bip/algorand/mnemonic/algorand_mnemonic.dart @@ -0,0 +1,52 @@ +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/bip/bip39/word_list/languages.dart' + as languages; + +/// Enum representing the number of words in an Algorand mnemonic phrase. +enum AlgorandWordsNum { + wordsNum25(25); + + /// The value representing the number of words in the mnemonic phrase. + final int value; + + /// Constructor to create an AlgorandWordsNum enum value with the specified word count. + const AlgorandWordsNum(this.value); +} + +/// Enum representing languages for Algorand mnemonic phrases. +enum AlgorandLanguages implements MnemonicLanguages { + /// English language. + english; + + /// acsess to word list + @override + List get wordList { + switch (this) { + case AlgorandLanguages.english: + return languages.bip39WordList(Bip39Languages.english); + } + } + + /// acsess to languages + @override + List get languageValues => AlgorandLanguages.values; +} + +/// Constants related to Algorand mnemonic phrases. +class AlgorandMnemonicConst { + /// List of supported word number options for Algorand mnemonic phrases. + static const mnemonicWordNum = [AlgorandWordsNum.wordsNum25]; + + /// The length of the checksum in bytes. + static const checksumByteLen = 2; +} + +/// Represents Algorand mnemonic phrases, extending the Bip39Mnemonic class. +class AlgorandMnemonic extends Bip39Mnemonic { + /// Constructs an AlgorandMnemonic instance from a string mnemonic. + AlgorandMnemonic.fromString(String mnemonic) : super.fromString(mnemonic); + + /// Constructs an AlgorandMnemonic instance from a list of mnemonic words. + AlgorandMnemonic.fromList(List mnemonic) : super.fromList(mnemonic); +} diff --git a/lib/bip/algorand/mnemonic/algorand_mnemonic_decoder.dart b/lib/bip/algorand/mnemonic/algorand_mnemonic_decoder.dart new file mode 100644 index 0000000..96ce597 --- /dev/null +++ b/lib/bip/algorand/mnemonic/algorand_mnemonic_decoder.dart @@ -0,0 +1,59 @@ +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic.dart'; +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_decoder_base.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_ex.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; + +/// Decodes Algorand mnemonics to obtain the corresponding entropy. +class AlgorandMnemonicDecoder extends MnemonicDecoderBase { + /// Creates an instance of AlgorandMnemonicDecoder with an optional language setting. + /// + /// The [language] parameter specifies the language used for the mnemonic words. The default is English. + AlgorandMnemonicDecoder( + [AlgorandLanguages? language = AlgorandLanguages.english]) + : super( + language: language, + wordsListFinder: Bip39WordsListFinder(), + wordsListGetter: Bip39WordsListGetter()); + + /// Decodes an Algorand mnemonic phrase and returns the corresponding entropy as a byte list. + /// + /// The [mnemonic] parameter is the Algorand mnemonic phrase to decode. + @override + List decode(String mnemonic) { + final mnemonicObj = AlgorandMnemonic.fromString(mnemonic); + final wLength = mnemonicObj.wordsCount(); + try { + AlgorandMnemonicConst.mnemonicWordNum + .firstWhere((element) => element.value == wLength); + } on StateError { + throw ArgumentError('Mnemonic words count is not valid ($wLength)'); + } + + final words = mnemonicObj.toList(); + final wordsList = findLanguage(mnemonicObj).$1; + final wordIndexes = [for (var w in words) wordsList.getWordIdx(w)]; + final entropyList = AlgorandMnemonicUtils.convertBits( + wordIndexes.getRange(0, words.length - 1).toList(), 11, 8); + assert(entropyList != null); + final entropyBytes = + List.from(entropyList!).sublist(0, entropyList.length - 1); + + _validateChecksum(entropyBytes, wordIndexes.last, wordsList); + + return entropyBytes; + } + + /// Validates the checksum of the decoded entropy. + void _validateChecksum(List entropyBytes, int chksumWordIdxExp, + MnemonicWordsList wordsList) { + final chksumWordIdx = + AlgorandMnemonicUtils.computeChecksumWordIndex(entropyBytes); + if (chksumWordIdx != chksumWordIdxExp) { + throw MnemonicChecksumError( + 'Invalid checksum (expected ${wordsList.getWordAtIdx(chksumWordIdx)}, ' + 'got ${wordsList.getWordAtIdx(chksumWordIdxExp)})'); + } + } +} diff --git a/lib/bip/algorand/mnemonic/algorand_mnemonic_encoder.dart b/lib/bip/algorand/mnemonic/algorand_mnemonic_encoder.dart new file mode 100644 index 0000000..0b57e37 --- /dev/null +++ b/lib/bip/algorand/mnemonic/algorand_mnemonic_encoder.dart @@ -0,0 +1,40 @@ +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_entropy_generator.dart'; +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic.dart'; +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_encoder_base.dart'; + +/// Algorand mnemonic encoder class. +/// +/// This class is responsible for encoding binary data into a human-readable mnemonic phrase +/// following the Algorand mnemonic standard. It extends the [MnemonicEncoderBase] class. +class AlgorandMnemonicEncoder extends MnemonicEncoderBase { + /// Creates an instance of the AlgorandMnemonicEncoder. + /// + /// The [language] parameter specifies the language used for the mnemonic words, with English as the default. + AlgorandMnemonicEncoder( + [AlgorandLanguages language = AlgorandLanguages.english]) + : super(language, Bip39WordsListGetter()); + + /// Encode bytes to a mnemonic phrase following the Algorand standard. + @override + Mnemonic encode(List entropyBytes) { + final entropyByteLen = entropyBytes.length; + if (!AlgorandEntropyGenerator.isValidEntropyByteLen(entropyByteLen)) { + throw ArgumentError('Entropy byte length ($entropyByteLen) is not valid'); + } + + final chksumWordIdx = + AlgorandMnemonicUtils.computeChecksumWordIndex(entropyBytes); + final wordIndexes = AlgorandMnemonicUtils.convertBits(entropyBytes, 8, 11); + assert(wordIndexes != null); + return AlgorandMnemonic.fromList( + _indexesToWords([...wordIndexes!, chksumWordIdx])); + } + + /// find words at index + List _indexesToWords(List indexes) { + return [for (var idx in indexes) wordsList.getWordAtIdx(idx)]; + } +} diff --git a/lib/bip/algorand/mnemonic/algorand_mnemonic_generator.dart b/lib/bip/algorand/mnemonic/algorand_mnemonic_generator.dart new file mode 100644 index 0000000..1dfdb9c --- /dev/null +++ b/lib/bip/algorand/mnemonic/algorand_mnemonic_generator.dart @@ -0,0 +1,69 @@ +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_entropy_generator.dart'; +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic.dart'; +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic_encoder.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; + +/// Constants related to Algorand mnemonic generation. +/// +/// This class defines a mapping between the number of words in an Algorand mnemonic +/// and the corresponding entropy bit length, ensuring consistent mnemonic generation. +class AlgorandMnemonicGeneratorConst { + static final Map + wordsNumToEntropyLen = { + AlgorandWordsNum.wordsNum25: AlgorandEntropyBitLen.bitLen256, + }; +} + +/// A generator for Algorand mnemonics. +/// +/// This class allows you to generate Algorand mnemonics from either a specified +/// number of words or directly from entropy bytes. It ensures that the number +/// of words and entropy bit length are consistent during mnemonic generation. +class AlgorandMnemonicGenerator { + final AlgorandMnemonicEncoder _mnemonicEncoder; + + /// Creates an [AlgorandMnemonicGenerator] with an optional [language]. + /// + /// The [language] parameter allows you to specify the language to use when + /// generating Algorand mnemonics. It defaults to [AlgorandLanguages.english]. + /// + /// Example usage: + /// + /// ```dart + /// final generator = AlgorandMnemonicGenerator(); // Default language is English. + /// ``` + /// + /// You can also specify a different language if needed: + /// + /// ```dart + /// final generator = AlgorandMnemonicGenerator(AlgorandLanguages.spanish); + /// ``` + AlgorandMnemonicGenerator( + [AlgorandLanguages language = AlgorandLanguages.english]) + : _mnemonicEncoder = AlgorandMnemonicEncoder(language); + + /// Generate an Algorand mnemonic with the specified number of words. + /// + /// [wordsNum] can be either the number of words or an [AlgorandWordsNum] enum value. + /// It ensures that the number of words is valid and consistent with the entropy bit length. + Mnemonic fromWordsNumber(dynamic wordsNum) { + if (!AlgorandMnemonicConst.mnemonicWordNum.contains(wordsNum)) { + throw ArgumentError('Words number for mnemonic ($wordsNum) is not valid'); + } + + if (wordsNum is int) { + wordsNum = AlgorandWordsNum.values[wordsNum]; + } + + final entropyBitLen = + AlgorandMnemonicGeneratorConst.wordsNumToEntropyLen[wordsNum]!; + final entropyBytes = AlgorandEntropyGenerator(entropyBitLen).generate(); + + return fromEntropy(entropyBytes); + } + + /// Generate an Algorand mnemonic from entropy bytes. + Mnemonic fromEntropy(List entropyBytes) { + return _mnemonicEncoder.encode(entropyBytes); + } +} diff --git a/lib/bip/algorand/mnemonic/algorand_mnemonic_utils.dart b/lib/bip/algorand/mnemonic/algorand_mnemonic_utils.dart new file mode 100644 index 0000000..aae2d2a --- /dev/null +++ b/lib/bip/algorand/mnemonic/algorand_mnemonic_utils.dart @@ -0,0 +1,87 @@ +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +/// Utility class for Algorand mnemonic related operations. +class AlgorandMnemonicUtils { + /// Computes the checksum for the given [dataBytes] using SHA-512/256. + /// + /// The [dataBytes] parameter should be the data bytes for which the checksum + /// needs to be computed. The method returns a [List] containing the + /// computed checksum. + /// + /// Example usage: + /// + /// ```dart + /// final data = List.from([1, 2, 3, 4, 5]); + /// final checksum = AlgorandMnemonicUtils.computeChecksum(data); + /// ``` + static List computeChecksum(List dataBytes) { + return QuickCrypto.sha512256Hash(dataBytes) + .sublist(0, AlgorandMnemonicConst.checksumByteLen); + } + + /// Computes a checksum word index for the given [dataBytes]. + /// + /// The [dataBytes] parameter represents the data bytes for which the checksum + /// word index needs to be calculated. This method calculates the checksum, + /// converts it from 8-bit to 11-bit representation, and returns the first + /// element of the resulting list as the checksum word index. + /// + /// Example usage: + /// + /// ```dart + /// final data = List.from([1, 2, 3, 4, 5]); + /// final checksumWordIndex = AlgorandMnemonicUtils.computeChecksumWordIndex(data); + /// ``` + /// + /// Note: The [dataBytes] should be the original data for which the checksum + /// is being calculated, and the returned index corresponds to a word in the + /// mnemonic word list. + static int computeChecksumWordIndex(List dataBytes) { + final chksum = AlgorandMnemonicUtils.computeChecksum(dataBytes); + final chksum11Bit = AlgorandMnemonicUtils.convertBits(chksum, 8, 11); + + /// Cannot be null by converting bytes from 8-bit to 11-bit + assert(chksum11Bit != null); + + return chksum11Bit![0]; + } + + /// Perform bit conversion. + /// The function takes the input data (list of integers or byte sequence) and converts every value from + /// the specified number of bits to the specified one. + /// It returns a list of integers where every number is less than 2^toBits. + /// + /// Args: + /// data (List): Data to be converted + /// fromBits (int) : Number of bits to start from + /// toBits (int) : Number of bits to end with + /// + /// Returns: + /// List: List of converted values, null in case of errors + static List? convertBits(List data, int fromBits, int toBits) { + int maxOutVal = (1 << toBits) - 1; + int acc = 0; + int bits = 0; + List ret = []; + + for (var value in data) { + if (value < 0 || (value >> fromBits) > 0) { + return null; + } + acc |= value << bits; + bits += fromBits; + while (bits >= toBits) { + ret.add(acc & maxOutVal); + acc >>= toBits; + bits -= toBits; + } + } + + if (bits != 0) { + ret.add(acc & maxOutVal); + } + + return ret; + } +} diff --git a/lib/bip/algorand/mnemonic/algorand_mnemonic_validator.dart b/lib/bip/algorand/mnemonic/algorand_mnemonic_validator.dart new file mode 100644 index 0000000..a5f99d7 --- /dev/null +++ b/lib/bip/algorand/mnemonic/algorand_mnemonic_validator.dart @@ -0,0 +1,23 @@ +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic.dart'; +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_validator.dart'; + +/// A validator for Algorand mnemonic phrases. +class AlgorandMnemonicValidator extends MnemonicValidator { + /// The [AlgorandMnemonicValidator] class is used to validate Algorand + /// mnemonic phrases. It utilizes the [AlgorandMnemonicDecoder] to decode the + /// mnemonic and verify its integrity. + /// + /// Example usage: + /// + /// ```dart + /// final validator = AlgorandMnemonicValidator(AlgorandLanguages.english); + /// final isValid = validator.isValidMnemonic("your mnemonic phrase here"); + /// ``` + /// + /// The [isValid] method can be used to check the validity of a given + /// mnemonic phrase. + AlgorandMnemonicValidator( + [AlgorandLanguages? language = AlgorandLanguages.english]) + : super(AlgorandMnemonicDecoder(language)); +} diff --git a/lib/bip/algorand/mnemonic/algorand_seed_generator.dart b/lib/bip/algorand/mnemonic/algorand_seed_generator.dart new file mode 100644 index 0000000..7b63326 --- /dev/null +++ b/lib/bip/algorand/mnemonic/algorand_seed_generator.dart @@ -0,0 +1,40 @@ +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic.dart'; +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; + +/// Algorand seed generator class. +class AlgorandSeedGenerator { + final List _entropyBytes; + + /// The [AlgorandSeedGenerator] class is used to generate an Algorand seed + /// from a mnemonic phrase. It takes a [mnemonic] as input, and an optional + /// [language] parameter to specify the language of the mnemonic. By default, + /// it uses the English language. + /// + /// The seed generated by this class is identical to the mnemonic's entropy + /// bytes and is provided mainly for consistency with other seed generation + /// methods in various libraries. + /// + /// Example usage: + /// + /// ```dart + /// final mnemonic = AlgorandMnemonic.fromString("your mnemonic phrase here"); + /// final generator = AlgorandSeedGenerator(mnemonic); + /// final seed = generator.generate(); + /// ``` + /// + /// The [generate] method returns the Algorand seed, which is the same as the + /// mnemonic's entropy bytes. + AlgorandSeedGenerator(Mnemonic mnemonic, + [AlgorandLanguages? language = AlgorandLanguages.english]) + : _entropyBytes = + AlgorandMnemonicDecoder(language).decode(mnemonic.toStr()); + + /// Generate seed. The seed is simply the entropy bytes in Algorand case. + /// There is no real need for this method, since the seed is always the same, but it's + /// kept in this way to have the same usage of Bip39/Substrate seed generator + /// (i.e. AlgorandSeedGenerator(mnemonic).generate() ). + List generate() { + return List.from(_entropyBytes); + } +} diff --git a/lib/bip/bip/bip.dart b/lib/bip/bip/bip.dart new file mode 100644 index 0000000..85a76d0 --- /dev/null +++ b/lib/bip/bip/bip.dart @@ -0,0 +1,37 @@ +/// The 'bip' library serves as a comprehensive collection of libraries for working +/// with various Bitcoin Improvement Proposals (BIPs) in the realm of cryptocurrency. +library bip; + +/// Export statement for the 'bip32' library, providing tools for working with BIP-32, +/// which defines hierarchical deterministic wallets and key derivation. +export 'bip32/bip32.dart'; + +/// Export statement for the 'bip38' library, offering functionality related to BIP-38, +/// a standard for encrypting and decrypting private keys in a human-readable format. +export 'bip38/bip38.dart'; + +/// Export statement for the 'bip39' library, which includes tools for managing BIP-39 +/// mnemonic phrases, a standard for creating human-readable cryptographic key phrases. +export 'bip39/bip39.dart'; + +/// Export statement for the 'bip44' library, which provides support for BIP-44, +/// a standard that defines hierarchical deterministic wallets and key derivation for +/// various cryptocurrencies. +export 'bip44/bip44.dart'; + +/// Export statement for the 'bip49' library, offering tools for working with BIP-49, +/// a standard for hierarchical deterministic wallets and key derivation in cryptocurrencies. +export 'bip49/bip49.dart'; + +/// Export statement for the 'bip84' library, providing support for BIP-84, which defines +/// hierarchical deterministic wallets and key derivation for a specific set of cryptocurrencies. +export 'bip84/bip84.dart'; + +/// Export statement for the 'bip86' library, which offers functionality for BIP-86, +/// a standard that defines the creation and management of Bitcoin addresses in a more secure +/// and efficient manner. +export 'bip86/bip86.dart'; + +/// Export statement for the 'conf/bip_config' library, which centralizes coin-related +/// definitions, coin names, parameters, and coin configuration information for different BIPs. +export 'conf/bip_config.dart'; diff --git a/lib/bip/bip/bip32/base/bip32_base.dart b/lib/bip/bip/bip32/base/bip32_base.dart new file mode 100644 index 0000000..b13c91e --- /dev/null +++ b/lib/bip/bip/bip32/base/bip32_base.dart @@ -0,0 +1,242 @@ +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_key_derivator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_ex.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_ser.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_keys.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_path.dart'; + +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; + +import 'ibip32_mst_key_generator.dart'; + +/// An abstract base class for BIP-32 hierarchical deterministic key management. +/// +/// This class provides a foundation for managing hierarchical deterministic keys +/// according to the BIP-32 standard. It includes methods and properties for +/// working with extended keys, deriving child keys, and conversion between +/// public and private keys. +abstract class Bip32Base { + late Bip32PrivateKey? _privKey; + late Bip32PublicKey _pubKey; + + /// Gets the public key of this BIP-32 key. + Bip32PublicKey get publicKey => _pubKey; + + /// Gets the private key of this BIP-32 key. + Bip32PrivateKey get privateKey { + if (isPublicOnly) { + throw const Bip32KeyError( + 'Public-only deterministic keys have no private half'); + } + return _privKey!; + } + + /// Creates a BIP-32 key from an extended key string. + /// + /// The [exKeyStr] parameter represents the extended key string, and the + /// optional [keyNetVer] specifies the key network version. + Bip32Base.fromExtendedKey(String exKeyStr, [Bip32KeyNetVersions? keyNetVer]) { + keyNetVer ??= defaultKeyNetVersion; + final deserKey = + Bip32KeyDeserializer.deserializeKey(exKeyStr, keyNetVer: keyNetVer); + + final keyBytes = deserKey.keyBytes; + Bip32KeyData keyData = deserKey.keyData; + final isPublic = deserKey.isPublic; + + if (keyData.depth.depth == 0) { + if (!keyData.parentFingerPrint.isMasterKey()) { + throw Bip32KeyError( + 'Invalid extended master key (wrong fingerprint: ${keyData.parentFingerPrint.toHex()})'); + } + if (keyData.index.index != 0) { + throw Bip32KeyError( + 'Invalid extended master key (wrong child index: ${keyData.index.toInt()})'); + } + } + _privKey = _initializePrivateKey(isPublic ? null : keyBytes, + isPublic ? keyBytes : null, keyData, keyNetVer, curveType); + _pubKey = _initializePublicKey(isPublic ? null : keyBytes, + isPublic ? keyBytes : null, keyData, keyNetVer, curveType); + } + + /// Creates a BIP-32 key from a seed. + /// + /// The [seedBytes] parameter is used to generate a master key, and the + /// optional [keyNetVer] specifies the key network version. + Bip32Base.fromSeed(List seedBytes, [Bip32KeyNetVersions? keyNetVer]) { + keyNetVer ??= defaultKeyNetVersion; + final result = masterKeyGenerator.generateFromSeed(seedBytes); + final keyData = Bip32KeyData(chainCode: Bip32ChainCode(result.$2)); + _privKey = + _initializePrivateKey(result.$1, null, keyData, keyNetVer, curveType); + _pubKey = + _initializePublicKey(result.$1, null, keyData, keyNetVer, curveType); + } + + /// Creates a BIP-32 key from a private key. + /// + /// The [privKey] parameter represents the private key bytes, and the optional + /// [keyData] and [keyNetVer] parameters specify key data and network versions. + Bip32Base.fromPrivateKey(List privKey, + [Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer]) { + keyNetVer ??= defaultKeyNetVersion; + keyData ??= Bip32KeyData(); + _privKey = + _initializePrivateKey(privKey, null, keyData, keyNetVer, curveType); + _pubKey = + _initializePublicKey(privKey, null, keyData, keyNetVer, curveType); + } + + /// Creates a BIP-32 key from a public key. + /// + /// The [pubKey] parameter represents the public key bytes, and the optional + /// [keyData] and [keyNetVer] parameters specify key data and network versions. + Bip32Base.fromPublicKey(List pubKey, + [Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer]) { + keyNetVer ??= defaultKeyNetVersion; + keyData ??= Bip32KeyData(); + _privKey = + _initializePrivateKey(null, pubKey, keyData, keyNetVer, curveType); + _pubKey = _initializePublicKey(null, pubKey, keyData, keyNetVer, curveType); + } + + /// Creates a BIP-32 key from provided parameters. + /// + /// The [privKey] and [pubKey] parameters represent private and public key bytes, + /// while [keyData] and [keyNetVer] specify key data and network versions. + Bip32Base({ + required List? privKey, + required List? pubKey, + required Bip32KeyData keyData, + required Bip32KeyNetVersions keyNetVer, + }) { + _privKey = + _initializePrivateKey(privKey, pubKey, keyData, keyNetVer, curveType); + _pubKey = + _initializePublicKey(privKey, pubKey, keyData, keyNetVer, curveType); + } + + /// Derives a new BIP-32 key using a derivation path. + /// + /// The [path] parameter represents the derivation path, such as "m/0/1/2". + Bip32Base derivePath(String path) { + final pathInstance = Bip32PathParser.parse(path); + + if (depth.depth > 0 && pathInstance.isAbsolute) { + throw ArgumentError( + 'Absolute paths can only be derived from a master key, not child ones'); + } + Bip32Base derivedObject = this; + + for (final pathElement in pathInstance.elems) { + derivedObject = derivedObject.childKey(pathElement); + } + return derivedObject; + } + + /// Derives a child BIP-32 key from the current key. + Bip32Base childKey(Bip32KeyIndex index); + + /// Converts this BIP-32 key to a public-only key. + void convertToPublic() { + _privKey = null; + } + + /// Checks if this key is public-only. + bool get isPublicOnly { + return _privKey == null; + } + + /// Gets the key network versions. + Bip32KeyNetVersions get keyNetVersions { + return _pubKey.keyNetVer; + } + + /// Gets the current depth of this key. + Bip32Depth get depth { + return _pubKey.keyData.depth; + } + + /// Gets the current index of this key. + Bip32KeyIndex get index { + return _pubKey.keyData.index; + } + + /// Gets the chain code associated with this key. + Bip32ChainCode get chainCode { + return _pubKey.chainCode; + } + + /// Get public key fingerprint. + Bip32FingerPrint get fingerPrint { + return _pubKey.fingerPrint; + } + + /// Gets the parent fingerprint of this key. + Bip32FingerPrint get parentFingerPrint { + return _pubKey.keyData.parentFingerPrint; + } + + /// Checks if public derivation is supported for this key. + bool get isPublicDerivationSupported { + return keyDerivator.isPublicDerivationSupported(); + } + + /// Initializes a private key if [privKey] is provided, otherwise returns null. + static Bip32PrivateKey? _initializePrivateKey( + List? privKey, + List? pubKey, + Bip32KeyData keyData, + Bip32KeyNetVersions keyNetVer, + EllipticCurveTypes curve) { + if (privKey != null) { + final prv = Bip32PrivateKey.fromBytes( + privKey, + keyData, + keyNetVer, + curve, + ); + return prv; + } + return null; + } + + /// Initializes a public key based on [privKey] or [pubKey]. + static Bip32PublicKey _initializePublicKey( + List? privKey, + List? pubKey, + Bip32KeyData keyData, + Bip32KeyNetVersions keyNetVer, + EllipticCurveTypes curve) { + if (privKey != null) { + final bip32PrivateKey = Bip32PrivateKey.fromBytes( + privKey, + keyData, + keyNetVer, + curve, + ); + return bip32PrivateKey.publicKey; + } else { + return Bip32PublicKey.fromBytes( + pubKey!, + keyData, + keyNetVer, + curve, + ); + } + } + + /// Gets the elliptic curve type for this key. + EllipticCurveTypes get curveType; + + /// Gets the default key network version. + Bip32KeyNetVersions get defaultKeyNetVersion; + + /// Gets the key derivator for this key. + IBip32KeyDerivator get keyDerivator; + + /// Gets the master key generator for this key. + IBip32MstKeyGenerator get masterKeyGenerator; +} diff --git a/lib/bip/bip/bip32/base/ibip32_key_derivator.dart b/lib/bip/bip/bip32/base/ibip32_key_derivator.dart new file mode 100644 index 0000000..195d8b5 --- /dev/null +++ b/lib/bip/bip/bip32/base/ibip32_key_derivator.dart @@ -0,0 +1,27 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; + +/// An abstract class that defines methods for BIP-32 key derivation. +/// +/// This class outlines key derivation methods for both public and private keys +/// in the context of BIP-32 hierarchical deterministic keys. +abstract class IBip32KeyDerivator { + /// Checks if public key derivation is supported. + bool isPublicDerivationSupported(); + + /// Derives a child private key from the given private and public keys. + /// + /// The [privKey] parameter represents the parent private key, [pubKey] is the + /// parent public key, [index] specifies the child key index, and [type] is the + /// elliptic curve type. + (List, List) ckdPriv(Bip32PrivateKey privKey, Bip32PublicKey pubKey, + Bip32KeyIndex index, EllipticCurveTypes type); + + /// Derives a child public key from the given public key. + /// + /// The [pubKey] parameter represents the parent public key, [index] specifies + /// the child key index, and [type] is the elliptic curve type. + (List, List) ckdPub( + Bip32PublicKey pubKey, Bip32KeyIndex index, EllipticCurveTypes type); +} diff --git a/lib/bip/bip/bip32/base/ibip32_mst_key_generator.dart b/lib/bip/bip/bip32/base/ibip32_mst_key_generator.dart new file mode 100644 index 0000000..01549bb --- /dev/null +++ b/lib/bip/bip/bip32/base/ibip32_mst_key_generator.dart @@ -0,0 +1,10 @@ +/// An abstract class that defines a method for generating master keys from a seed. +/// +/// This class outlines a method for generating BIP-32 master keys from seed bytes. +abstract class IBip32MstKeyGenerator { + /// Generates master keys from the given [seedBytes]. + /// + /// The [seedBytes] parameter represents the seed data from which master keys are derived. + /// The method returns a pair of [List] objects containing the private and public keys. + (List, List) generateFromSeed(List seedBytes); +} diff --git a/lib/bip/bip/bip32/bip32.dart b/lib/bip/bip/bip32/bip32.dart new file mode 100644 index 0000000..bc3050f --- /dev/null +++ b/lib/bip/bip/bip32/bip32.dart @@ -0,0 +1,51 @@ +/// The 'bip32' library provides a comprehensive set of tools for working with +/// BIP-32 Hierarchical Deterministic Wallets, which are commonly used in +/// cryptocurrencies to manage and derive keys. + +/// Export statements for Khalow-based BIP-32 components: +/// Export the Khalow BIP-32 implementation for Ed25519. +export 'khalow/bip32_kholaw_ed25519.dart'; + +/// Export the key derivator for Khalow-based Ed25519 BIP-32. +export 'khalow/bip32_kholaw_ed25519_key_derivator.dart'; + +/// Export the base key derivator for Khalow-based BIP-32. +export 'khalow/bip32_kholaw_key_derivator_base.dart'; + +/// Export the master key generator for Khalow-based BIP-32. +export 'khalow/bip32_kholaw_mst_key_generator.dart'; + +/// Export statements for Slip-10-based BIP-32 components: +/// Export the Slip-10 BIP-32 implementation for Ed25519. +export 'slip10/bip32_slip10_ed25519.dart'; + +/// Export the Slip-10 BIP-32 implementation for Ed25519 with Blake2b. +export 'slip10/bip32_slip10_ed25519_blake2b.dart'; + +/// Export the key derivator for Slip-10-based BIP-32. +export 'slip10/bip32_slip10_key_derivator.dart'; + +/// Export the master key generator for Slip-10-based BIP-32. +export 'slip10/bip32_slip10_mst_key_generator.dart'; + +/// Export the Slip-10 BIP-32 implementation for NIST P-256 (secp256r1). +export 'slip10/bip32_slip10_nist256p1.dart'; + +/// Export the Slip-10 BIP-32 implementation for SECG P-256k1 (secp256k1). +export 'slip10/bip32_slip10_secp256k1.dart'; + +/// Export statements for general BIP-32 components: +/// Export BIP-32 path utilities for working with paths. +export 'bip32_path.dart'; + +/// Export constants related to BIP-32. +export 'bip32_const.dart'; + +/// Export utilities for working with BIP-32 key network versions. +export 'bip32_key_net_ver.dart'; + +/// Export serialization utilities for BIP-32 keys. +export 'bip32_key_ser.dart'; + +/// Export a collection of BIP-32 key-related functions and structures. +export 'bip32_keys.dart'; diff --git a/lib/bip/bip/bip32/bip32_const.dart b/lib/bip/bip/bip32/bip32_const.dart new file mode 100644 index 0000000..f02a767 --- /dev/null +++ b/lib/bip/bip/bip32/bip32_const.dart @@ -0,0 +1,19 @@ +import 'bip32_key_net_ver.dart'; + +/// The `Bip32Const` class defines constants for different Bip32KeyNetVersions. +class Bip32Const { + /// mainnet key net version + static final Bip32KeyNetVersions mainNetKeyNetVersions = Bip32KeyNetVersions( + List.from([0x04, 0x88, 0xb2, 0x1e]), + List.from([0x04, 0x88, 0xad, 0xe4])); + + /// testnet key network version + static final Bip32KeyNetVersions testNetKeyNetVersions = Bip32KeyNetVersions( + List.from([0x04, 0x35, 0x87, 0xcf]), + List.from([0x04, 0x35, 0x83, 0x94])); + + /// kholaw key net version + static Bip32KeyNetVersions kholawKeyNetVersions = Bip32KeyNetVersions( + List.from([0x04, 0x88, 0xb2, 0x1e]), + List.from([0x0f, 0x43, 0x31, 0xd4])); +} diff --git a/lib/bip/bip/bip32/bip32_ex.dart b/lib/bip/bip/bip32/bip32_ex.dart new file mode 100644 index 0000000..6bf9eed --- /dev/null +++ b/lib/bip/bip/bip32/bip32_ex.dart @@ -0,0 +1,33 @@ +/// The `Bip32KeyError` class represents an exception that can be thrown in case +/// of a key-related error during Bip32 key operations. It allows you to provide +/// an optional error message to describe the specific issue. When caught, you +/// can access the error message using the `toString()` method or the `message` +/// property, if provided. +class Bip32KeyError implements Exception { + final String? message; + + /// Creates a `Bip32KeyError` with an optional error message. + const Bip32KeyError([this.message]); + + @override + String toString() { + return message ?? super.toString(); + } +} + +/// The `Bip32PathError` class represents an exception that can be thrown in case +/// of a path-related error during Bip32 operations. It is designed to handle +/// errors associated with hierarchical deterministic paths. You can include +/// an optional error message to describe the specific issue. To access the error +/// message, use the `toString()` method or the `message` property, if provided. +class Bip32PathError implements Exception { + final String? message; + + /// Creates a `Bip32PathError` with an optional error message. + const Bip32PathError([this.message]); + + @override + String toString() { + return message ?? super.toString(); + } +} diff --git a/lib/bip/bip/bip32/bip32_key_data.dart b/lib/bip/bip/bip32/bip32_key_data.dart new file mode 100644 index 0000000..4849199 --- /dev/null +++ b/lib/bip/bip/bip32/bip32_key_data.dart @@ -0,0 +1,229 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/binary/bit_utils.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:blockchain_utils/numbers/int_utils.dart'; + +/// Class container for BIP32 key data constants. +class Bip32KeyDataConst { + // Chaincode length in bytes + static const int chaincodeByteLen = 32; + // Depth length in bytes + static const int depthByteLen = 1; + // Fingerprint length in bytes + static const int fingerprintByteLen = 4; + // Fingerprint of master key + static const List fingerprintMasterKey = [0, 0, 0, 0]; + // Key index length in bytes + static const int keyIndexByteLen = 4; + // Key index maximum value + static const int keyIndexMaxVal = 4294967295; // 2^32 - 1 + // Key index hardened bit number + static const int keyIndexHardenedBitNum = 31; +} + +/// BIP32 chaincode class. +/// It represents a BIP32 chaincode. +class Bip32ChainCode { + final List _chainCode; + Bip32ChainCode([List? chaincode]) + : _chainCode = chaincode ?? + List.filled(Bip32KeyDataConst.chaincodeByteLen, 0); + + /// Get the fixed length in bytes. + static int fixedLength() { + return Bip32KeyDataConst.chaincodeByteLen; + } + + List toBytes() { + return List.from(_chainCode); + } + + String toHex() { + return BytesUtils.toHexString(_chainCode); + } +} + +/// BIP32 fingerprint class. +/// It represents a BIP32 fingerprint. + +class Bip32FingerPrint { + final List _fPrint; + Bip32FingerPrint._(this._fPrint); + factory Bip32FingerPrint([List? fprint]) { + fprint ??= List.from(Bip32KeyDataConst.fingerprintMasterKey); + if (fprint.length < fixedLength()) { + throw ArgumentError("Invalid fingerprint length"); + } + fprint = fprint.sublist(0, fixedLength()); + return Bip32FingerPrint._(fprint); + } + List toBytes() { + return List.from(_fPrint); + } + + String toHex() { + return BytesUtils.toHexString(_fPrint); + } + + /// Get the fixed length in bytes. + static int fixedLength() { + return Bip32KeyDataConst.fingerprintByteLen; + } + + /// Get if the fingerprint corresponds to a master key. + bool isMasterKey() { + return bytesEqual(toBytes(), Bip32KeyDataConst.fingerprintMasterKey); + } +} + +/// BIP32 depth class. +/// It represents a BIP32 depth. +class Bip32Depth { + late final int _depth; + int get depth => _depth; + + Bip32Depth(int depth) { + /// Construct class. + + if (depth < 0) { + throw ArgumentError("Invalid depth ($depth)"); + } + _depth = depth; + } + + /// Get the fixed length in bytes. + static int fixedLength() { + return Bip32KeyDataConst.depthByteLen; + } + + /// Get a new object with increased depth. + Bip32Depth increase() { + return Bip32Depth(depth + 1); + } + + /// Get the depth as bytes. + List toBytes([Endian endian = Endian.big]) { + return IntUtils.toBytes(depth, length: fixedLength(), byteOrder: endian); + } + + /// Get the depth as an integer. + int toInt() { + return depth; + } + + /// Equality operator. + bool equals(dynamic other) { + if (other is! int && other is! Bip32Depth) { + return false; + } + + if (other is int) { + return depth == other; + } + return depth == other.depth; + } +} + +/// BIP32 key index class. +/// It represents a BIP32 key index. +class Bip32KeyIndex { + late int _index; + int get index => _index; + + /// Harden the specified index and return it. + factory Bip32KeyIndex.hardenIndex(int index) { + return Bip32KeyIndex( + BitUtils.setBit(index, Bip32KeyDataConst.keyIndexHardenedBitNum)); + } + + /// Unharden the specified index and return it. + factory Bip32KeyIndex.unhardenIndex(int index) { + return Bip32KeyIndex( + BitUtils.resetBit(index, Bip32KeyDataConst.keyIndexHardenedBitNum)); + } + + /// Get if the specified index is hardened. + static bool isHardenedIndex(int index) { + return BitUtils.intIsBitSet( + index, Bip32KeyDataConst.keyIndexHardenedBitNum); + } + + Bip32KeyIndex(int index) { + if (index < 0 || index > Bip32KeyDataConst.keyIndexMaxVal) { + throw ArgumentError("Invalid key index ($index)"); + } + _index = index; + } + Bip32KeyIndex.fromBytes(List bytes) { + _index = IntUtils.fromBytes(bytes); + } + + /// Get the fixed length in bytes. + static int fixedLength() { + return Bip32KeyDataConst.keyIndexByteLen; + } + + /// Get a new Bip32KeyIndex object with the current key index hardened. + Bip32KeyIndex harden() { + return Bip32KeyIndex.hardenIndex(index); + } + + /// Get a new Bip32KeyIndex object with the current key index unhardened. + Bip32KeyIndex unharden() { + return Bip32KeyIndex.unhardenIndex(index); + } + + /// Get if the key index is hardened. + bool get isHardened { + return isHardenedIndex(index); + } + + /// Get the key index as bytes. + List toBytes({Endian endianness = Endian.big}) { + return IntUtils.toBytes(index, + length: fixedLength(), byteOrder: endianness); + } + + /// Get the key index as an integer. + int toInt() { + return index; + } + + bool equals(dynamic other) { + /// Equality operator. + if (other is! int && other is! Bip32KeyIndex) { + return false; + } + + if (other is int) { + return index == other; + } + return index == other.index; + } + + @override + String toString() { + return "index: $index"; + } +} + +/// BIP32 key data class. +/// It contains all additional data related to a BIP32 key (e.g. depth, chain code, etc...). +class Bip32KeyData { + final Bip32Depth depth; + final Bip32KeyIndex index; + final Bip32ChainCode chainCode; + final Bip32FingerPrint parentFingerPrint; + + Bip32KeyData({ + Bip32Depth? depth, + Bip32KeyIndex? index, + Bip32ChainCode? chainCode, + Bip32FingerPrint? parentFingerPrint, + }) : depth = depth ?? Bip32Depth(0), + index = index ?? Bip32KeyIndex(0), + chainCode = chainCode ?? Bip32ChainCode(), + parentFingerPrint = parentFingerPrint ?? Bip32FingerPrint(); +} diff --git a/lib/bip/bip/bip32/bip32_key_net_ver.dart b/lib/bip/bip/bip32/bip32_key_net_ver.dart new file mode 100644 index 0000000..599b015 --- /dev/null +++ b/lib/bip/bip/bip32/bip32_key_net_ver.dart @@ -0,0 +1,35 @@ +/// Contains constants related to BIP32 key network versions. +class Bip32KeyNetVersionsConst { + /// The byte length of a BIP32 key network version. + static const int keyNetVersionByteLen = 4; +} + +class Bip32KeyNetVersions { + late final List _pubNetVer; + late final List _privNetVer; + + /// constractur for Bip32KeyNetVersions + Bip32KeyNetVersions(List pubNetVer, List privNetVer) { + if (pubNetVer.length != length || privNetVer.length != length) { + throw ArgumentError("Invalid key net version length"); + } + + _pubNetVer = pubNetVer; + _privNetVer = privNetVer; + } + + /// Get the key net version length. + static int get length { + return Bip32KeyNetVersionsConst.keyNetVersionByteLen; + } + + /// Get public net version. + List get public { + return List.from(_pubNetVer); + } + + /// Get private net version. + List get private { + return List.from(_privNetVer); + } +} diff --git a/lib/bip/bip/bip32/bip32_key_ser.dart b/lib/bip/bip/bip32/bip32_key_ser.dart new file mode 100644 index 0000000..d707498 --- /dev/null +++ b/lib/bip/bip/bip32/bip32_key_ser.dart @@ -0,0 +1,166 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/base58/base58.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_const.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_ex.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:blockchain_utils/numbers/int_utils.dart'; + +/// The `Bip32KeySerConst` class contains constants related to the serialization +/// of Bip32 keys. These constants specify the length of serialized public and +/// private keys in bytes. It provides a convenient way to access these values +/// in your code. +class Bip32KeySerConst { + // Serialized public key length in bytes + static const int serializedPubKeyByteLen = 78; + // Serialized private key length in bytes + static const List serializedPrivKeyByteLen = [78, 110]; +} + +/// BIP32 key serializer class. +/// It serializes private/public keys. +class _Bip32KeySerializer { + /// Serialize the specified key bytes. + static String serialize( + List keyBytes, Bip32KeyData keyData, List keyNetVerBytes) { + List serKey = List.from([ + ...keyNetVerBytes, + ...keyData.depth.toBytes(Endian.little), + ...keyData.parentFingerPrint.toBytes(), + ...keyData.index.toBytes(endianness: Endian.little), + ...keyData.chainCode.toBytes(), + ...keyBytes + ]); + return Base58Encoder.checkEncode(serKey); + } +} + +/// BIP32 private key serializer class. +/// It serializes private keys. +class Bip32PrivateKeySerializer { + /// Serialize a private key. + static String serialize(IPrivateKey privKey, Bip32KeyData keyData, + [Bip32KeyNetVersions? keyNetVer]) { + keyNetVer ??= Bip32Const.mainNetKeyNetVersions; + return _Bip32KeySerializer.serialize( + List.from([0x00, ...privKey.raw]), keyData, keyNetVer.private); + } +} + +//. BIP32 public key serializer class. +/// It serializes public keys. +class Bip32PublicKeySerializer { + /// Serialize a public key. + static String serialize(IPublicKey pubKey, Bip32KeyData keyData, + [Bip32KeyNetVersions? keyNetVer]) { + keyNetVer ??= Bip32Const.mainNetKeyNetVersions; + return _Bip32KeySerializer.serialize( + pubKey.compressed, keyData, keyNetVer.public); + } +} + +/// BIP32 deserialized key class. +/// It represents a key deserialized with the Bip32KeyDeserializer. +class Bip32DeserializedKey { + /// Key bytes + final List _keyBytes; + + /// Key data + final Bip32KeyData keyData; + + /// True if the key is public, false otherwise + final bool isPublic; + + Bip32DeserializedKey(List keyBytes, this.keyData, this.isPublic) + : _keyBytes = keyBytes; + + List get keyBytes { + return List.from(_keyBytes); + } +} + +/// BIP32 key deserializer class. +/// It deserializes an extended key. +class Bip32KeyDeserializer { + /// Deserialize a key. + static Bip32DeserializedKey deserializeKey(String serKeyStr, + {Bip32KeyNetVersions? keyNetVer}) { + final serKeyBytes = Base58Decoder.checkDecode(serKeyStr); + + // Get if key is public/private depending on the net version + final isPublic = _getIfPublic( + serKeyBytes, keyNetVer ?? Bip32Const.mainNetKeyNetVersions); + + // Validate length + if (isPublic && + serKeyBytes.length != Bip32KeySerConst.serializedPubKeyByteLen) { + throw Bip32KeyError( + 'Invalid extended public key (wrong length: ${serKeyBytes.length})'); + } + if (!isPublic && + !Bip32KeySerConst.serializedPrivKeyByteLen + .contains(serKeyBytes.length)) { + throw Bip32KeyError( + 'Invalid extended private key (wrong length: ${serKeyBytes.length})'); + } + + // Get parts back + final keyParts = _getPartsFromBytes(serKeyBytes, isPublic); + + return Bip32DeserializedKey(keyParts.$1, keyParts.$2, isPublic); + } + + /// Get if the key is public. + static bool _getIfPublic( + List serKeyBytes, Bip32KeyNetVersions keyNetVer) { + final keyNetVerGot = serKeyBytes.sublist(0, Bip32KeyNetVersions.length); + + if (bytesEqual(keyNetVerGot, keyNetVer.public)) { + return true; + } else if (bytesEqual(keyNetVerGot, keyNetVer.private)) { + return false; + } else { + throw Bip32KeyError( + 'Invalid extended key (wrong net version: ${BytesUtils.toHexString(keyNetVerGot)})'); + } + } + + /// Get back key parts from serialized key bytes. + static (List, Bip32KeyData) _getPartsFromBytes( + List serKeyBytes, bool isPublic) { + final depthIdx = Bip32KeyNetVersions.length; + final fprintIdx = depthIdx + Bip32Depth.fixedLength(); + final keyIndexIdx = fprintIdx + Bip32FingerPrint.fixedLength(); + final chainCodeIdx = keyIndexIdx + Bip32KeyIndex.fixedLength(); + final keyIdx = chainCodeIdx + Bip32ChainCode.fixedLength(); + + // Get parts + final depth = serKeyBytes[depthIdx]; + final fprintBytes = serKeyBytes.sublist(fprintIdx, keyIndexIdx); + final keyIndexBytes = serKeyBytes.sublist(keyIndexIdx, chainCodeIdx); + final chainCodeBytes = serKeyBytes.sublist(chainCodeIdx, keyIdx); + var keyBytes = serKeyBytes.sublist(keyIdx); + + final keyData = Bip32KeyData( + depth: Bip32Depth(depth), + index: Bip32KeyIndex( + IntUtils.fromBytes(keyIndexBytes, byteOrder: Endian.little)), + chainCode: Bip32ChainCode(chainCodeBytes), + parentFingerPrint: Bip32FingerPrint(fprintBytes)); + + // If private key, the first byte shall be zero and shall be removed + if (!isPublic) { + if (keyBytes[0] != 0) { + throw Bip32KeyError( + 'Invalid extended private key (wrong secret: ${keyBytes[0]})'); + } + keyBytes = keyBytes.sublist(1); + } + + return (keyBytes, keyData); + } +} diff --git a/lib/bip/bip/bip32/bip32_keys.dart b/lib/bip/bip/bip32/bip32_keys.dart new file mode 100644 index 0000000..99d6c64 --- /dev/null +++ b/lib/bip/bip/bip32/bip32_keys.dart @@ -0,0 +1,142 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_ser.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/base.dart'; +import 'bip32_key_data.dart'; +import 'bip32_key_net_ver.dart'; + +/// An abstract base class for BIP32 keys. It provides common properties and methods +/// for BIP32 keys, including the elliptic curve type, key data, and key network versions. +abstract class Bip32KeyBase { + final EllipticCurveTypes curveType; + final Bip32KeyData keyData; + final Bip32KeyNetVersions keyNetVer; + + /// Creates a Bip32KeyBase instance with the specified key data, key network versions, + /// and elliptic curve type. + const Bip32KeyBase(this.keyData, this.keyNetVer, this.curveType); + + /// Gets the chain code associated with the BIP32 key. + Bip32ChainCode get chainCode { + return keyData.chainCode; + } + + /// Gets the extended representation of the BIP32 key. + String get toExtended; +} + +/// Represents a BIP32 public key with associated data such as the elliptic curve type, +/// key data, and key network versions. +class Bip32PublicKey extends Bip32KeyBase { + final IPublicKey pubKey; + + /// Creates a Bip32PublicKey instance with the provided public key, key data, and key network versions. + Bip32PublicKey( + this.pubKey, + Bip32KeyData keyData, + Bip32KeyNetVersions keyNetVer, + ) : super(keyData, keyNetVer, pubKey.curve); + + /// Gets the underlying public key. + IPublicKey get key { + return pubKey; + } + + /// Gets the compressed representation of the public key. + List get compressed { + return pubKey.compressed; + } + + /// Gets the uncompressed representation of the public ke + List get uncompressed { + return pubKey.uncompressed; + } + + /// Gets the abstract point representation of the public key. + AbstractPoint get point { + return pubKey.point; + } + + /// Gets the fingerprint of the public key, derived from the key identifier. + Bip32FingerPrint get fingerPrint { + return Bip32FingerPrint(keyIdentifier); + } + + /// Gets the key identifier, which is the hash of the compressed public key. + List get keyIdentifier { + return QuickCrypto.hash160(pubKey.compressed); + } + + /// Gets the extended key of public key. + @override + String get toExtended { + return Bip32PublicKeySerializer.serialize(pubKey, keyData, keyNetVer); + } + + /// Creates a [Bip32PublicKey] from a byte representation, key data, key network versions, and curve type. + static Bip32PublicKey fromBytes( + List keyBytes, + Bip32KeyData keyData, + Bip32KeyNetVersions keyNetVer, + EllipticCurveTypes curveType, + ) { + return Bip32PublicKey( + IPublicKey.fromBytes(keyBytes, curveType), + keyData, + keyNetVer, + ); + } +} + +/// Represents a BIP32 private key with associated data such as the elliptic curve type, +/// key data, and key network versions. +class Bip32PrivateKey extends Bip32KeyBase { + final IPrivateKey privKey; + + /// Creates a Bip32PrivateKey instance with the provided private key, key data, and key network versions. + Bip32PrivateKey( + this.privKey, + Bip32KeyData keyData, + Bip32KeyNetVersions keyNetVer, + ) : super(keyData, keyNetVer, privKey.curveType); + + /// Gets the underlying private key object. + IPrivateKey keyObject() { + return privKey; + } + + /// Gets the raw representation of the private key. + List get raw { + return privKey.raw; + } + + /// Gets the corresponding public key derived from this private key. + Bip32PublicKey get publicKey { + return Bip32PublicKey( + privKey.publicKey, + keyData, + keyNetVer, + ); + } + + /// Gets the extended key of private key. + @override + String get toExtended { + return Bip32PrivateKeySerializer.serialize(privKey, keyData, keyNetVer); + } + + /// Creates a Bip32PrivateKey from a byte representation, key data, key network versions, and curve type. + static Bip32PrivateKey fromBytes( + List keyBytes, + Bip32KeyData keyData, + Bip32KeyNetVersions keyNetVer, + EllipticCurveTypes curveType, + ) { + return Bip32PrivateKey( + IPrivateKey.fromBytes(keyBytes, curveType), + keyData, + keyNetVer, + ); + } +} diff --git a/lib/bip/bip/bip32/bip32_path.dart b/lib/bip/bip/bip32/bip32_path.dart new file mode 100644 index 0000000..fbcebdc --- /dev/null +++ b/lib/bip/bip/bip32/bip32_path.dart @@ -0,0 +1,162 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; + +import 'bip32_ex.dart'; + +/// Constants related to the BIP32 derivation path components. +class Bip32PathConst { + /// List of characters representing hardened keys in the path. + static const List hardenedChars = ["'", "h", "p"]; + + /// Character representing the master key in the path. + static const String masterChar = "m"; +} + +/// Represents a BIP32 derivation path, a sequence of key indices. +class Bip32Path { + /// List of BIP32 key indices in the path. + final List elems; + + /// Indicates whether the path is absolute (starting from the master key). + final bool isAbsolute; + + /// Creates a Bip32Path instance. + /// + /// [elems] is an optional list of key indices in the path. + /// [isAbsolute] specifies if the path is absolute (default: true). + Bip32Path({List? elems, this.isAbsolute = true}) + : elems = elems ?? List.empty(growable: true); + + /// Adds a key index element to the path and returns a new Bip32Path. + Bip32Path addElem(Bip32KeyIndex elem) { + return Bip32Path(elems: [...elems, elem], isAbsolute: isAbsolute); + } + + /// Returns the length of the BIP32 path. + int length() { + return elems.length; + } + + /// Converts the BIP32 path to a list of integer key indices. + List toList() { + return [for (final elem in elems) elem.toInt()]; + } + + /// override toString for return absolute path + @override + String toString() { + var pathStr = isAbsolute ? "${Bip32PathConst.masterChar}/" : ""; + for (final elem in elems) { + if (!elem.isHardened) { + pathStr += "${elem.toInt()}/"; + } else { + pathStr += "${Bip32KeyIndex.unhardenIndex(elem.toInt())}'/"; + } + } + return pathStr.substring(0, pathStr.length - 1); + } +} + +/// A utility class for parsing BIP32 derivation paths and converting them to Bip32Path objects. +class Bip32PathParser { + /// Parses a BIP32 derivation path represented as a string and returns a Bip32Path object. + /// + /// [path] is the BIP32 path string to be parsed. + static Bip32Path parse(String path) { + if (path.endsWith("/")) { + path = path.substring(0, path.length - 1); + } + + return _parseElements( + path.split("/").where((elem) => elem.isNotEmpty).toList()); + } + + /// Parses individual elements of a BIP32 path and constructs a Bip32Path object. + /// + /// [pathElems] is a list of path elements to be parsed. + static Bip32Path _parseElements(List pathElems) { + bool isAbsolute = false; + + if (pathElems.isNotEmpty && pathElems[0] == Bip32PathConst.masterChar) { + pathElems = pathElems.sublist(1); + isAbsolute = true; + } + + List parsedElems = pathElems.map(_parseElem).toList(); + return Bip32Path(elems: parsedElems, isAbsolute: isAbsolute); + } + + /// Parses an individual path element and returns a Bip32KeyIndex object. + /// + /// [pathElem] is the path element to be parsed. + static Bip32KeyIndex _parseElem(String pathElem) { + pathElem = pathElem.trim(); + bool isHardened = Bip32PathConst.hardenedChars + .where((element) => pathElem.endsWith(element)) + .isNotEmpty; + + if (isHardened) { + pathElem = pathElem.substring(0, pathElem.length - 1); + } + bool isNumeric = int.tryParse(pathElem) != null; + if (!isNumeric) { + throw Bip32PathError("Invalid path element ($pathElem)"); + } + return isHardened + ? Bip32KeyIndex.hardenIndex(int.parse(pathElem)) + : Bip32KeyIndex(int.parse(pathElem)); + } +} diff --git a/lib/bip/bip/bip32/khalow/bip32_kholaw_ed25519.dart b/lib/bip/bip/bip32/khalow/bip32_kholaw_ed25519.dart new file mode 100644 index 0000000..d5385fc --- /dev/null +++ b/lib/bip/bip/bip32/khalow/bip32_kholaw_ed25519.dart @@ -0,0 +1,144 @@ +import 'package:blockchain_utils/bip/bip/bip32/base/bip32_base.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_key_derivator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_const.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_ex.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/bip/bip32/khalow/bip32_kholaw_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'bip32_kholaw_ed25519_key_derivator.dart'; + +/// A class representing Bip32 hierarchical deterministic keys using the Kholaw elliptic curve with Ed25519 keys. +/// +/// This class extends [Bip32Base] and is specialized for the Kholaw elliptic curve with Ed25519 keys. +/// It provides methods for creating keys from a seed, a private key, or an extended key, as well as working with public keys. +/// +/// Constructors: +/// - [Bip32KholawEd25519._]: A private constructor used to create an instance with specified key data, network versions, private key, and public key. +/// - [Bip32KholawEd25519.fromPrivateKey]: Creates a Bip32 key pair from a private key. +/// - [Bip32KholawEd25519.fromExtendedKey]: Creates a Bip32 key pair from an extended key. +/// - [Bip32KholawEd25519.fromSeed]: Creates a Bip32 key pair from a seed. +/// - [Bip32KholawEd25519.fromPublicKey]: Creates a Bip32 key pair from a public key. +class Bip32KholawEd25519 extends Bip32Base { + /// Private constructor for creating an instance with specified parameters. + Bip32KholawEd25519._({ + required super.keyData, + required super.keyNetVer, + required super.privKey, + required super.pubKey, + }); + + /// Creates a Bip32 key pair from a private key. + Bip32KholawEd25519.fromPrivateKey(List privKey, + {Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer}) + : super.fromPrivateKey(privKey, keyData, keyNetVer); + + /// Creates a Bip32 key pair from an extended key. + Bip32KholawEd25519.fromExtendedKey(String exKeyStr, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromExtendedKey(exKeyStr, keyNetVer); + + /// Creates a Bip32 key pair from a seed. + Bip32KholawEd25519.fromSeed(List seedBytes, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromSeed(seedBytes, keyNetVer); + + /// Creates a Bip32 key pair from a public key. + Bip32KholawEd25519.fromPublicKey(List pubkey, + {Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer}) + : super.fromPublicKey(pubkey, keyData, keyNetVer); + + /// Generates a child key based on the given [index]. + /// + /// This method derives a child key from the current Bip32 key. It can be either a private or public child derivation based on the current key type. + /// + /// Parameters: + /// - [index]: The index of the child key to generate. + /// + /// Returns: + /// - A new [Bip32KholawEd25519] instance representing the child key. + /// + /// Throws: + /// - [Bip32KeyError]: If private child derivation with a non-hardened index is not supported. + /// + /// Note: This method is used to create child keys from the current key, both for private and public keys, and is determined by the key type (public or private). + @override + Bip32KholawEd25519 childKey(Bip32KeyIndex index) { + final isPublic = isPublicOnly; + + if (!isPublic) { + if (!index.isHardened && !isPublicDerivationSupported) { + throw const Bip32KeyError( + 'Private child derivation with not-hardened index is not supported'); + } + assert(!isPublicOnly); + final result = + keyDerivator.ckdPriv(privateKey, publicKey, index, curveType); + + return Bip32KholawEd25519._( + keyData: Bip32KeyData( + chainCode: Bip32ChainCode(result.$2), + depth: depth.increase(), + index: index, + parentFingerPrint: fingerPrint, + ), + keyNetVer: keyNetVersions, + privKey: result.$1, + pubKey: null); + } + + // Check if supported + if (!isPublicDerivationSupported) { + throw const Bip32KeyError('Public child derivation is not supported'); + } + if (index.isHardened) { + throw const Bip32KeyError( + "Public child derivation cannot be used to create an hardened child key"); + } + final result = keyDerivator.ckdPub(publicKey, index, curveType); + return Bip32KholawEd25519._( + keyData: Bip32KeyData( + chainCode: Bip32ChainCode(result.$2), + depth: depth.increase(), + index: index, + parentFingerPrint: fingerPrint, + ), + keyNetVer: keyNetVersions, + privKey: null, + pubKey: result.$1); + } + + /// Returns the elliptic curve type associated with this Bip32 key. + /// + /// This getter returns the elliptic curve type, + /// which is always 'EllipticCurveTypes.ed25519Kholaw' for Bip32KholawEd25519 keys. + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.ed25519Kholaw; + } + + /// Returns the default Bip32 key network versions. + /// + /// This getter returns the default network versions for Bip32KholawEd25519 keys. + @override + Bip32KeyNetVersions get defaultKeyNetVersion { + return Bip32Const.kholawKeyNetVersions; + } + + /// Returns the key derivator used for Bip32KholawEd25519 keys. + /// + /// This getter returns an instance of [Bip32KholawEd25519KeyDerivator] as the key derivator for this key type. + @override + IBip32KeyDerivator get keyDerivator { + return Bip32KholawEd25519KeyDerivator(); + } + + /// Returns the master key generator used for Bip32KholawEd25519 keys. + /// + /// This getter returns an instance of [Bip32KholawEd25519MstKeyGenerator] as the master key generator for this key type. + @override + IBip32MstKeyGenerator get masterKeyGenerator { + return Bip32KholawEd25519MstKeyGenerator(); + } +} diff --git a/lib/bip/bip/bip32/khalow/bip32_kholaw_ed25519_key_derivator.dart b/lib/bip/bip/bip32/khalow/bip32_kholaw_ed25519_key_derivator.dart new file mode 100644 index 0000000..986756a --- /dev/null +++ b/lib/bip/bip/bip32/khalow/bip32_kholaw_ed25519_key_derivator.dart @@ -0,0 +1,103 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_ex.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_keys.dart'; +import 'package:blockchain_utils/bip/bip/bip32/khalow/bip32_kholaw_key_derivator_base.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_getter.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_kholaw_keys.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; + +/// Define a class, 'Bip32KholawEd25519KeyDerivator', that extends 'Bip32KholawEd25519KeyDerivatorBase' +/// for Ed25519 key derivation. +class Bip32KholawEd25519KeyDerivator + extends Bip32KholawEd25519KeyDerivatorBase { + /// Implement the 'serializeIndex' method for serializing a 'Bip32KeyIndex'. + @override + List serializeIndex(Bip32KeyIndex index) { + return index.toBytes(); + } + + /// Computes the new left part of the private key based on ZL bytes, KL bytes, and the elliptic curve type. + /// + /// This method takes ZL and KL bytes and combines them to compute the new left part of the private key. + /// It ensures that the computed child key is valid by checking if it's not a very unlucky index. + /// + /// Parameters: + /// - [zlBytes]: The ZL bytes, representing part of the private key. + /// - [klBytes]: The KL bytes, representing part of the private key. + /// - [curve]: The elliptic curve type used for the key derivation. + /// + /// Returns: + /// - The new left part of the private key as a List. + /// + /// Throws: + /// - [Bip32KeyError]: If the computed child key is not valid, indicating a very unlucky index. + @override + List newPrivateKeyLeftPart( + List zlBytes, List klBytes, EllipticCurveTypes curve) { + BigInt zlInt = + BigintUtils.fromBytes(zlBytes.sublist(0, 28), byteOrder: Endian.little); + BigInt klInt = BigintUtils.fromBytes(klBytes, byteOrder: Endian.little); + + final EDPoint generator = + EllipticCurveGetter.generatorFromType(curve) as EDPoint; + BigInt prvlInt = (zlInt * BigInt.from(8)) + klInt; + if (prvlInt % generator.order! == BigInt.zero) { + throw const Bip32KeyError( + 'Computed child key is not valid, very unlucky index'); + } + final tobytes = BigintUtils.toBytes(prvlInt, + order: Endian.little, + length: Ed25519KholawKeysConst.privKeyByteLen ~/ 2); + return tobytes; + } + + /// Computes the new right part of the private key based on ZR bytes and KR bytes. + /// + /// This method adds ZR and KR, taking the result modulo 2^256, and returns it as a List. + /// The resulting bytes are then converted to match the format of a private key. + /// + /// Parameters: + /// - [zrBytes]: The ZR bytes, representing part of the private key. + /// - [krBytes]: The KR bytes, representing part of the private key. + /// + /// Returns: + /// - The new right part of the private key as a List. + @override + List newPrivateKeyRightPart(List zrBytes, List krBytes) { + BigInt zrInt = BigintUtils.fromBytes(zrBytes, byteOrder: Endian.little); + BigInt kprInt = BigintUtils.fromBytes(krBytes, byteOrder: Endian.little); + BigInt krInt = (zrInt + kprInt) % (BigInt.one << 256); + final tobytes = BigintUtils.toBytes(krInt, + order: Endian.little, + length: Ed25519KholawKeysConst.privKeyByteLen ~/ 2); + return tobytes; + } + + /// Computes a new public key point based on the provided Bip32PublicKey and ZL bytes. + /// The ZL bytes represent the left part of the private key. + /// + /// This method adds the product of the left part of the private key and curve h to the public key point. + /// + /// Parameters: + /// - [pubKey]: The Bip32PublicKey to derive a new point from. + /// - [zlBytes]: The ZL bytes, representing the left part of the private key. + /// + /// Returns: + /// - The new public key point as an EDPoint. + /// + /// Throws: + /// - [Bip32KeyError] if the computed public child key is not valid. + @override + EDPoint newPublicKeyPoint(Bip32PublicKey pubKey, List zlBytes) { + assert(pubKey.point is EDPoint); + BigInt zlInt = + BigintUtils.fromBytes(zlBytes.sublist(0, 28), byteOrder: Endian.little); + final EDPoint generator = + EllipticCurveGetter.generatorFromType(pubKey.curveType) as EDPoint; + return (pubKey.point as EDPoint) + (generator * (zlInt * BigInt.from(8))); + } +} diff --git a/lib/bip/bip/bip32/khalow/bip32_kholaw_key_derivator_base.dart b/lib/bip/bip/bip32/khalow/bip32_kholaw_key_derivator_base.dart new file mode 100644 index 0000000..525baeb --- /dev/null +++ b/lib/bip/bip/bip32/khalow/bip32_kholaw_key_derivator_base.dart @@ -0,0 +1,114 @@ +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_key_derivator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_ex.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; + +/// Define an abstract class 'Bip32KholawEd25519KeyDerivatorBase' that implements the 'IBip32KeyDerivator' interface. +/// This class provides a base for deriving Ed25519 keys with the Kholaw scheme. +abstract class Bip32KholawEd25519KeyDerivatorBase + implements IBip32KeyDerivator { + /// Abstract method to serialize a 'Bip32KeyIndex'. + List serializeIndex(Bip32KeyIndex index); + + /// Abstract method to derive the left part of a private key. + List newPrivateKeyLeftPart( + List zlBytes, List klBytes, EllipticCurveTypes curve); + + /// Abstract method to derive the right part of a private key. + List newPrivateKeyRightPart(List zrBytes, List krBytes); + + /// Abstract method to derive a new public key point based on the provided data. + EDPoint newPublicKeyPoint(Bip32PublicKey pubKey, List zlBytes); + // Derive a child private key from the given 'privKey' and 'pubKey' using the specified 'index'. + // The 'type' parameter defines the elliptic curve type. + // Returns a tuple containing the child private key bytes and the updated chain code. + @override + (List, List) ckdPriv(Bip32PrivateKey privKey, Bip32PublicKey pubKey, + Bip32KeyIndex index, EllipticCurveTypes type) { + /// Serialize the 'index' to bytes. + List indexBytes = serializeIndex(index); + + /// Get the chain code bytes from the 'privKey'. + List chainCodeBytes = privKey.chainCode.toBytes(); + + /// Extract raw private key bytes from 'privKey'. + List privKeyBytes = privKey.raw; + + /// Extract compressed public key bytes from 'pubKey' and remove the compression flag. + List pubKeyBytes = pubKey.compressed.sublist(1); + + List zBytes; + if (index.isHardened) { + /// If the index is hardened, compute 'zBytes' using HMAC-SHA512 with specific data. + zBytes = QuickCrypto.hmacSha512Hash(chainCodeBytes, + List.from([0x00, ...privKeyBytes, ...indexBytes])); + + /// Update the chain code using HMAC-SHA512 with specific data. + chainCodeBytes = QuickCrypto.hmacSha512HashHalves(chainCodeBytes, + List.from([0x01, ...privKeyBytes, ...indexBytes])).$2; + } else { + /// If not hardened, compute 'zBytes' using HMAC-SHA512 with different data. + zBytes = QuickCrypto.hmacSha512Hash(chainCodeBytes, + List.from([0x02, ...pubKeyBytes, ...indexBytes])); + + /// Update the chain code using HMAC-SHA512 with different data. + chainCodeBytes = QuickCrypto.hmacSha512HashHalves(chainCodeBytes, + List.from([0x03, ...pubKeyBytes, ...indexBytes])).$2; + } + + /// Compute left and right part of private key + const hmacHalfLen = QuickCrypto.hmacSha512DigestSize ~/ 2; + List pLBytes = newPrivateKeyLeftPart(zBytes.sublist(0, hmacHalfLen), + privKeyBytes.sublist(0, hmacHalfLen), type); + List pRBytes = newPrivateKeyRightPart( + zBytes.sublist(hmacHalfLen), privKeyBytes.sublist(hmacHalfLen)); + + /// Return the child private key bytes and the updated chain code. + return (List.from([...pLBytes, ...pRBytes]), chainCodeBytes); + } + + /// Derive a child public key from the given 'pubKey' using the specified 'index'. + /// The 'type' parameter defines the elliptic curve type. + /// Returns a tuple containing the child public key bytes and the updated chain code. + @override + (List, List) ckdPub( + Bip32PublicKey pubKey, Bip32KeyIndex index, EllipticCurveTypes type) { + /// Serialize the 'index' to bytes. + List indexBytes = serializeIndex(index); + + /// Get the chain code bytes from the 'pubKey'. + List chainCodeBytes = pubKey.chainCode.toBytes(); + + /// Extract compressed public key bytes from 'pubKey' and remove the compression flag. + List pubKeyBytes = pubKey.compressed.sublist(1); + + /// Compute 'Z' and update the chain code. + List zBytes = QuickCrypto.hmacSha512Hash( + chainCodeBytes, List.from([0x02, ...pubKeyBytes, ...indexBytes])); + chainCodeBytes = QuickCrypto.hmacSha512HashHalves(chainCodeBytes, + List.from([0x03, ...pubKeyBytes, ...indexBytes])).$2; + + /// Compute the new public key point based on 'pubKey' and 'zBytes'. + const hmacHalfLen = QuickCrypto.hmacSha512DigestSize ~/ 2; + EDPoint newPubKeyPoint = + newPublicKeyPoint(pubKey, zBytes.sublist(0, hmacHalfLen)); + + /// Check if the new public key point is the identity point (0, 1). + if (newPubKeyPoint.x == BigInt.zero && newPubKeyPoint.y == BigInt.one) { + throw const Bip32KeyError( + 'Computed public child key is not valid, very unlucky index'); + } + + /// Return the child public key bytes and the updated chain code. + return (newPubKeyPoint.toBytes(), chainCodeBytes); + } + + /// check if support public derivation + @override + bool isPublicDerivationSupported() { + return true; + } +} diff --git a/lib/bip/bip/bip32/khalow/bip32_kholaw_mst_key_generator.dart b/lib/bip/bip/bip32/khalow/bip32_kholaw_mst_key_generator.dart new file mode 100644 index 0000000..1ddde41 --- /dev/null +++ b/lib/bip/bip/bip32/khalow/bip32_kholaw_mst_key_generator.dart @@ -0,0 +1,107 @@ +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_mst_key_generator.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +/// Constants for generating master keys for Bip32KholawEd25519 keys. +/// +/// This class contains constants related to generating master keys for Bip32KholawEd25519 keys, +/// such as the minimum seed byte length and the HMAC key for Ed25519 keys. +class Bip32KholawMstKeyGeneratorConst { + /// The minimum byte length for the seed when generating a master key. + static int seedMinByteLen = Bip32Slip10MstKeyGeneratorConst.seedMinByteLen; + + /// The HMAC key for Ed25519 keys used in master key generation. + static List masterKeyHmacKey = + Bip32Slip10MstKeyGeneratorConst.hmacKeyEd25519Bytes; +} + +class Bip32KholawEd25519MstKeyGenerator implements IBip32MstKeyGenerator { + /// Generate a master key for Bip32KholawEd25519 keys from a seed. + /// + /// This method generates a master key for Bip32KholawEd25519 keys from a given seed. + /// + /// Parameters: + /// - `seedBytes`: The seed data used to generate the master key. + /// + /// Returns a tuple of two `List` values: + /// 1. The master private key bytes. + /// 2. The chain code bytes associated with the master key. + /// + /// Throws an `ArgumentError` if the seed length is less than the required minimum. + /// + /// The generation process involves repeated hashing of the seed and HMAC-SHA256 computations. + /// + /// This method is used in the context of master key generation for Bip32KholawEd25519 keys. + /// + /// Note: The constants for seed minimum length and HMAC key are retrieved from `Bip32KholawMstKeyGeneratorConst`. + /// + /// For detailed steps of the generation process, refer to the source code and relevant documentation. + /// + /// Returns: + /// A tuple of two `List` values - the master private key and the chain code. + @override + (List, List) generateFromSeed(List seedBytes) { + if (seedBytes.length < Bip32KholawMstKeyGeneratorConst.seedMinByteLen) { + throw ArgumentError("Invalid seed length"); + } + final hashDigest = _hashRepeatedly(seedBytes, + List.from(Bip32KholawMstKeyGeneratorConst.masterKeyHmacKey)); + final tweak = _tweakMasterKeyBits(hashDigest.$1); + final chainCode = QuickCrypto.hmacsha256Hash( + List.from(Bip32KholawMstKeyGeneratorConst.masterKeyHmacKey), + List.from([0x01, ...seedBytes])); + + return (List.from([...tweak, ...hashDigest.$2]), chainCode); + } + + /// Repeatedly hashing + static (List, List) _hashRepeatedly( + List dataBytes, List hmacKeyBytes) { + final halves = QuickCrypto.hmacSha512HashHalves(hmacKeyBytes, dataBytes); + + if ((halves.$1[31] & 0x20) != 0) { + return _hashRepeatedly( + List.from([...halves.$1, ...halves.$2]), hmacKeyBytes); + } + + return halves; + } + + /// Tweak the bits of the master key bytes for Bip32KholawEd25519. + /// + /// This method tweaks the bits of the provided master key bytes according to the + /// specific requirements for Bip32KholawEd25519 keys. + /// + /// Parameters: + /// - `keyBytes`: The master key bytes to be tweaked. + /// + /// Returns: + /// A `List` with the tweaked master key bits. + /// + /// The tweak involves modifying specific bits in the master key bytes: + /// - Clear the lowest 3 bits of the first byte of kL. + /// - Clear the highest bit of the last byte of kL. + /// - Set the second-highest bit of the last byte of kL. + /// + /// The purpose of these tweaks is to ensure that the generated master key is + /// compliant with the requirements for Bip32KholawEd25519 keys. + /// + /// This method is used as part of the master key generation process. + /// + /// For details on why these specific bits are modified, refer to the source code + /// and relevant documentation. + /// + /// Note: This method is called within the `generateFromSeed` method to prepare + /// the master key bits. + static List _tweakMasterKeyBits(List keyBytes) { + List keyBytesList = keyBytes.toList(); + // Clear the lowest 3 bits of the first byte of kL + keyBytesList[0] = keyBytesList[0] & 0xF8; + // Clear the highest bit of the last byte of kL + keyBytesList[31] = keyBytesList[31] & 0x7F; + // Set the second-highest bit of the last byte of kL + keyBytesList[31] = keyBytesList[31] | 0x40; + + return List.from(keyBytesList); + } +} diff --git a/lib/bip/bip/bip32/slip10/bip32_slip10_ed25519.dart b/lib/bip/bip/bip32/slip10/bip32_slip10_ed25519.dart new file mode 100644 index 0000000..b5784f2 --- /dev/null +++ b/lib/bip/bip/bip32/slip10/bip32_slip10_ed25519.dart @@ -0,0 +1,144 @@ +import 'package:blockchain_utils/bip/bip/bip32/base/bip32_base.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_key_derivator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_const.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_ex.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_ed25519_blake2b.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_key_derivator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; + +/// Represents a Bip32Slip10Ed25519 hierarchical deterministic key for Ed25519 curve. +/// +/// This class extends the [Bip32Base] class and provides functionality for +/// working with Bip32Slip10Ed25519 keys. It is used for key derivation and +/// management within the Ed25519 curve. +/// +/// Constructors: +/// - [Bip32Slip10Ed25519] constructor for creating an instance with provided key data. +/// - [Bip32Slip10Ed25519.fromSeed] constructor for creating a key from a seed. +/// - [Bip32Slip10Ed25519.fromPrivateKey] constructor for creating a key from a private key. +/// - [Bip32Slip10Ed25519.fromPublicKey] constructor for creating a key from a public key. +/// - [Bip32Slip10Ed25519.fromExtendedKey] constructor for creating a key from an extended key string. +/// +/// This class is specific to the Ed25519 curve and provides necessary methods for +/// working with this curve, such as key derivation and management. +class Bip32Slip10Ed25519 extends Bip32Base { + /// constructor for creating an instance with provided key data. + Bip32Slip10Ed25519( + {required super.keyData, + required super.keyNetVer, + required super.privKey, + required super.pubKey}); + + /// constructor for creating a key from a seed. + Bip32Slip10Ed25519.fromSeed(List seedBytes, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromSeed(seedBytes, keyNetVer); + + /// constructor for creating a key from a private key. + Bip32Slip10Ed25519.fromPrivateKey(List privKey, + {Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer}) + : super.fromPrivateKey(privKey, keyData, keyNetVer); + + /// constructor for creating a key from a public key. + Bip32Slip10Ed25519.fromPublicKey(List pubkey, + {Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer}) + : super.fromPublicKey(pubkey, keyData, keyNetVer); + + /// constructor for creating a key from an extended key string. + Bip32Slip10Ed25519.fromExtendedKey(String exKeyStr, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromExtendedKey(exKeyStr, keyNetVer); + + /// Derives a child key from the current key, based on the provided index. + /// + /// This method derives a child key from the current key, either privately + /// or publicly, depending on the input and key type. If the current key is + /// private, it can derive both private and public child keys. If the current + /// key is public, it can only derive public child keys. + /// For [Bip32Slip10Ed25519Derivator] derivator, it can only derive private child keys. + /// + /// - [index]: The index used to derive the child key. + /// + /// If the current key is private: + /// - For non-hardened derivation, this method can derive both private and + /// public child keys. + /// + /// Returns a new key instance representing the derived child key. If public + /// derivation is not supported or if there's an issue with the derivation + /// process, an error is thrown. + @override + Bip32Slip10Ed25519 childKey(Bip32KeyIndex index) { + final isPublic = isPublicOnly; + + if (!isPublic) { + if (!index.isHardened && !isPublicDerivationSupported) { + throw const Bip32KeyError( + 'Private child derivation with not-hardened index is not supported'); + } + assert(!isPublicOnly); + final result = + keyDerivator.ckdPriv(privateKey, publicKey, index, curveType); + + if (curveType == EllipticCurveTypes.ed25519Blake2b) { + return Bip32Slip10Ed25519Blake2b( + keyData: Bip32KeyData( + chainCode: Bip32ChainCode(result.$2), + depth: depth.increase(), + index: index, + parentFingerPrint: fingerPrint, + ), + keyNetVer: keyNetVersions, + privKey: result.$1, + pubKey: null); + } + return Bip32Slip10Ed25519( + keyData: Bip32KeyData( + chainCode: Bip32ChainCode(result.$2), + depth: depth.increase(), + index: index, + parentFingerPrint: fingerPrint, + ), + keyNetVer: keyNetVersions, + privKey: result.$1, + pubKey: null); + } + throw const Bip32KeyError('Public child derivation is not supported'); + } + + /// Returns the curve type, ED25519. + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.ed25519; + } + + /// Returns the default key network versions network. + /// + /// This method returns the default key network versions, + /// which are used when creating keys. + @override + Bip32KeyNetVersions get defaultKeyNetVersion { + return Bip32Const.mainNetKeyNetVersions; + } + + /// Returns the key derivator for Ed25519. + /// + /// This method returns an instance of the [Bip32Slip10Ed25519Derivator] + /// class, which is used for key derivation within the Ed25519 curve. + @override + IBip32KeyDerivator get keyDerivator { + return Bip32Slip10Ed25519Derivator(); + } + + /// Returns the master key generator for Ed25519. + /// + /// This method returns an instance of the [Bip32Slip10Ed25519MstKeyGenerator] + /// class, which is used for generating the master key within the Ed25519 curve. + @override + IBip32MstKeyGenerator get masterKeyGenerator { + return Bip32Slip10Ed25519MstKeyGenerator(); + } +} diff --git a/lib/bip/bip/bip32/slip10/bip32_slip10_ed25519_blake2b.dart b/lib/bip/bip/bip32/slip10/bip32_slip10_ed25519_blake2b.dart new file mode 100644 index 0000000..0029648 --- /dev/null +++ b/lib/bip/bip/bip32/slip10/bip32_slip10_ed25519_blake2b.dart @@ -0,0 +1,60 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; + +import 'bip32_slip10_ed25519.dart'; + +/// Represents a Bip32Slip10Ed25519Blake2b hierarchical deterministic key for Ed25519-Blake2b curve. +/// +/// This class extends the [Bip32Slip10Ed25519] class and provides functionality for +/// working with Bip32Slip10Ed25519Blake2b keys. It is used for key derivation and +/// management within the Ed25519-Blake2b curve. +/// +/// Constructors: +/// - [Bip32Slip10Ed25519Blake2b] constructor for creating an instance with provided key data. +/// - [Bip32Slip10Ed25519Blake2b.fromSeed] constructor for creating a key from a seed. +/// - [Bip32Slip10Ed25519Blake2b.fromPrivateKey] constructor for creating a key from a private key. +/// - [Bip32Slip10Ed25519Blake2b.fromPublicKey] constructor for creating a key from a public key. +/// - [Bip32Slip10Ed25519Blake2b.fromExtendedKey] constructor for creating a key from an extended key string. +/// +/// This class is specific to the Ed25519-Blake2b curve and provides necessary methods for +/// working with this curve, such as key derivation and management. +class Bip32Slip10Ed25519Blake2b extends Bip32Slip10Ed25519 { + /// constructor for creating an instance with provided key data. + Bip32Slip10Ed25519Blake2b( + {required super.keyData, + required super.keyNetVer, + required super.privKey, + required super.pubKey}); + + /// constructor for creating a key from a seed. + Bip32Slip10Ed25519Blake2b.fromSeed(List seedBytes, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromSeed(seedBytes, keyNetVer); + + /// constructor for creating a key from a private key. + Bip32Slip10Ed25519Blake2b.fromExtendedKey(String exKeyStr, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromExtendedKey(exKeyStr, keyNetVer); + + /// constructor for creating a key from a public key. + Bip32Slip10Ed25519Blake2b.fromPrivateKey(List privKey, + {Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer}) + : super.fromPrivateKey(privKey, keyData: keyData, keyNetVer: keyNetVer); + + /// constructor for creating a key from an extended key string. + Bip32Slip10Ed25519Blake2b.fromPublicKey(List pubkey, + {Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer}) + : super.fromPublicKey(pubkey, keyData: keyData, keyNetVer: keyNetVer); + + /// Returns the curve type Ed25519-blake2b. + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.ed25519Blake2b; + } + + @override + Bip32Slip10Ed25519Blake2b childKey(Bip32KeyIndex index) { + return super.childKey(index) as Bip32Slip10Ed25519Blake2b; + } +} diff --git a/lib/bip/bip/bip32/slip10/bip32_slip10_key_derivator.dart b/lib/bip/bip/bip32/slip10/bip32_slip10_key_derivator.dart new file mode 100644 index 0000000..fec905a --- /dev/null +++ b/lib/bip/bip/bip32/slip10/bip32_slip10_key_derivator.dart @@ -0,0 +1,149 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_key_derivator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_getter.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +/// Constants related to the Bip32 Slip10 Derivator. +class Bip32Slip10DerivatorConst { + /// Prefix for private key derivation in Slip10. + static const List priveKeyPrefix = [0x00]; +} + +/// A class implementing the `IBip32KeyDerivator` interface for Bip32 Slip10 key derivation +/// with the ECDSA curve. +class Bip32Slip10EcdsaDerivator implements IBip32KeyDerivator { + /// check if support public key derivation + @override + bool isPublicDerivationSupported() { + return true; + } + + /// Derive a child private key from the given parent private key and public key + /// using the provided index and elliptic curve type. + /// + /// This method implements the child private key derivation for Bip32 Slip10 + /// with the ECDSA curve. It calculates the child private key and returns it + /// along with the chain code. + /// + /// Parameters: + /// - [privKey]: The parent private key from which to derive the child private key. + /// - [pubKey]: The corresponding public key associated with the parent private key. + /// - [index]: The index to derive the child key. + /// - [type]: The elliptic curve type. + /// + /// Returns: + /// A tuple containing the derived child private key and the chain code. + @override + (List, List) ckdPriv(Bip32PrivateKey privKey, Bip32PublicKey pubKey, + Bip32KeyIndex index, EllipticCurveTypes type) { + final privKeyBytes = privKey.raw; + List dataBytes; + if (index.isHardened) { + dataBytes = List.from([ + ...Bip32Slip10DerivatorConst.priveKeyPrefix, + ...privKeyBytes, + ...index.toBytes(endianness: Endian.little) + ]); + } else { + dataBytes = List.from( + [...pubKey.compressed, ...index.toBytes(endianness: Endian.little)]); + } + final hmacHalves = QuickCrypto.hmacSha512HashHalves( + privKey.chainCode.toBytes(), dataBytes); + + final ilBytes = hmacHalves.$1; + final irBytes = hmacHalves.$2; + final ilInt = BigintUtils.fromBytes(ilBytes); + final privKeyInt = BigintUtils.fromBytes(privKeyBytes); + final generator = EllipticCurveGetter.generatorFromType(type); + final scalar = (ilInt + privKeyInt) % generator.order!; + final newPrivKeyBytes = BigintUtils.toBytesLen(scalar, + order: Endian.little, length: privKey.privKey.length); + return (newPrivKeyBytes, irBytes); + } + + /// Derive a child public key from the given parent public key using the provided + /// index and elliptic curve type. + /// + /// This method implements the child public key derivation for Bip32 Slip10 with + /// the ECDSA curve. It calculates the child public key point and returns it along + /// with the chain code. + /// + /// Parameters: + /// - [pubKey]: The parent public key from which to derive the child public key. + /// - [index]: The index to derive the child key. + /// - [type]: The elliptic curve type. + /// + /// Returns: + /// A tuple containing the derived child public key point and the chain code. + @override + (List, List) ckdPub( + Bip32PublicKey pubKey, Bip32KeyIndex index, EllipticCurveTypes type) { + final dataBytes = List.from( + [...pubKey.compressed, ...index.toBytes(endianness: Endian.little)]); + final hmacHalves = + QuickCrypto.hmacSha512HashHalves(pubKey.chainCode.toBytes(), dataBytes); + + final ilBytes = hmacHalves.$1; + final irBytes = hmacHalves.$2; + final ilInt = BigintUtils.fromBytes(ilBytes); + final generator = EllipticCurveGetter.generatorFromType(type); + + final newPubKeyPoint = pubKey.point + (generator * ilInt); + return (newPubKeyPoint.toBytes(), irBytes); + } +} + +/// A class that implements the `IBip32KeyDerivator` interface for Bip32 Slip10 +/// derivation using the Ed25519 elliptic curve. +/// +/// This class provides methods for deriving child private and public keys using +/// the Ed25519 elliptic curve for Bip32 Slip10 standard. +/// +/// To use this class, create an instance of it and use its methods to perform +/// key derivation. +class Bip32Slip10Ed25519Derivator implements IBip32KeyDerivator { + /// Derive a new private key and chain code based on a given private key, public key, + /// an index, and an elliptic curve type. + /// + /// This method computes a new private key and chain code by applying the CKD (Child Key + /// Derivation) algorithm for the specified private key, public key, index, and elliptic curve type. + /// + /// Parameters: + /// - `privKey`: The parent private key for derivation. + /// - `pubKey`: The corresponding parent public key. + /// - `index`: The index for the child key. + /// - `type`: The elliptic curve type used for key derivation. + /// + /// Returns a tuple containing the new private key bytes and the chain code bytes. + @override + (List, List) ckdPriv(Bip32PrivateKey privKey, Bip32PublicKey pubKey, + Bip32KeyIndex index, EllipticCurveTypes type) { + final dataBytes = List.from([ + ...Bip32Slip10DerivatorConst.priveKeyPrefix, + ...privKey.raw, + ...index.toBytes(endianness: Endian.little) + ]); + return QuickCrypto.hmacSha512HashHalves( + privKey.chainCode.toBytes(), dataBytes); + } + + /// public derivation + /// [Bip32Slip10Ed25519Derivator] does not support public key derivation + @override + (List, List) ckdPub( + Bip32PublicKey pubKey, Bip32KeyIndex index, EllipticCurveTypes type) { + throw UnimplementedError("$type does not support public key derivation"); + } + + /// check if support public key derivation + @override + bool isPublicDerivationSupported() { + return false; + } +} diff --git a/lib/bip/bip/bip32/slip10/bip32_slip10_mst_key_generator.dart b/lib/bip/bip/bip32/slip10/bip32_slip10_mst_key_generator.dart new file mode 100644 index 0000000..c164935 --- /dev/null +++ b/lib/bip/bip/bip32/slip10/bip32_slip10_mst_key_generator.dart @@ -0,0 +1,172 @@ +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +/// Constants used by the Slip-10-based master key generator. +/// +/// This class defines constants such as the minimum seed length and HMAC keys for different +/// elliptic curve types used in the context of the Slip-10 master key generator. +/// +/// Constants: +/// - `seedMinByteLen`: The minimum length in bytes for a valid seed. +/// - `hmacKeyEd25519Bytes`: HMAC key bytes for Ed25519 curve. +/// - `hmacKeyNist256p1Bytes`: HMAC key bytes for NIST P-256 curve. +/// - `hmacKeySecp256k1Bytes`: HMAC key bytes for secp256k1 curve. +class Bip32Slip10MstKeyGeneratorConst { + /// The minimum length in bytes for a valid seed. + static const int seedMinByteLen = 16; + + /// HMAC key bytes for Ed25519 curve. + static const List hmacKeyEd25519Bytes = [ + 101, + 100, + 50, + 53, + 53, + 49, + 57, + 32, + 115, + 101, + 101, + 100 + ]; + + /// HMAC key bytes for NIST P-256 curve. + static const List hmacKeyNist256p1Bytes = [ + 78, + 105, + 115, + 116, + 50, + 53, + 54, + 112, + 49, + 32, + 115, + 101, + 101, + 100 + ]; + + /// HMAC key bytes for secp256k1 curve. + static const List hmacKeySecp256k1Bytes = [ + 66, + 105, + 116, + 99, + 111, + 105, + 110, + 32, + 115, + 101, + 101, + 100 + ]; +} + +/// A private class responsible for generating a master key using Slip-10. +/// +/// This class contains a static method to generate a master key from a seed and +/// return a private and chaincode. It ensures that the generated private key is valid +/// for the specified elliptic curve type and the seed is suitable for master key generation. +/// +/// Methods: +/// - `generateFromSeed(List seedBytes, List hmacKeyBytes, EllipticCurveTypes curveType)`: +/// Generates a master key from the specified seed and HMAC key, and returns a tuple +/// containing private key bytes and chain code bytes. +/// +/// Throws: +/// - `Bip32KeyError`: If the seed is not suitable for master key generation. +/// - `ArgumentError`: If the seed length is not valid. +class _Bip32Slip10MstKeyGenerator { + /// Generates a master key from the specified seed and HMAC key, and returns a tuple + /// containing private key bytes and chain code bytes. + /// + /// Throws: + /// - `Bip32KeyError`: If the seed is not suitable for master key generation. + /// - `ArgumentError`: If the seed length is not valid. + static (List, List) generateFromSeed(List seedBytes, + List hmacKeyBytes, EllipticCurveTypes curveType) { + if (seedBytes.length < Bip32Slip10MstKeyGeneratorConst.seedMinByteLen) { + throw ArgumentError('Invalid seed length (${seedBytes.length})'); + } + const hmacHalfLen = QuickCrypto.hmacSha512DigestSize ~/ 2; + List hmac = List.empty(); + List hmacData = seedBytes; + bool success = false; + while (!success) { + hmac = QuickCrypto.hmacSha512Hash(hmacKeyBytes, hmacData); + success = + IPrivateKey.isValidBytes(hmac.sublist(0, hmacHalfLen), curveType); + + if (!success) { + hmacData = hmac; + } + } + return ( + hmac.sublist(0, hmacHalfLen), + hmac.sublist(hmacHalfLen), + ); + } +} + +/// A class implementing the `IBip32MstKeyGenerator` interface to generate master +/// keys for the Ed25519 elliptic curve using Slip-10. +class Bip32Slip10Ed25519MstKeyGenerator implements IBip32MstKeyGenerator { + /// Generates a master key from the specified seed, and returns a tuple + /// containing private key bytes and chain code bytes. + /// + /// Throws: + /// - `Bip32KeyError`: If the seed is not suitable for master key generation. + /// - `ArgumentError`: If the seed length is not valid. + @override + (List, List) generateFromSeed(List seedBytes) { + return _Bip32Slip10MstKeyGenerator.generateFromSeed( + seedBytes, + List.from(Bip32Slip10MstKeyGeneratorConst.hmacKeyEd25519Bytes), + EllipticCurveTypes.ed25519, + ); + } +} + +/// A class implementing the `IBip32MstKeyGenerator` interface to generate master +/// keys for the Nist256p1 elliptic curve using Slip-10. +class Bip32Slip10Nist256p1MstKeyGenerator implements IBip32MstKeyGenerator { + /// Generates a master key from the specified seed, and returns a tuple + /// containing private key bytes and chain code bytes. + /// + /// Throws: + /// - `Bip32KeyError`: If the seed is not suitable for master key generation. + /// - `ArgumentError`: If the seed length is not valid. + @override + (List, List) generateFromSeed(List seedBytes) { + return _Bip32Slip10MstKeyGenerator.generateFromSeed( + seedBytes, + List.from(Bip32Slip10MstKeyGeneratorConst.hmacKeyNist256p1Bytes), + EllipticCurveTypes.nist256p1, + ); + } +} + +/// A class implementing the `IBip32MstKeyGenerator` interface to generate master +/// keys for the secp256k1 elliptic curve using Slip-10. +class Bip32Slip10Secp256k1MstKeyGenerator extends IBip32MstKeyGenerator { + /// Generates a master key from the specified seed, and returns a tuple + /// containing private key bytes and chain code bytes. + /// + /// Throws: + /// - `Bip32KeyError`: If the seed is not suitable for master key generation. + /// - `ArgumentError`: If the seed length is not valid. + @override + (List, List) generateFromSeed(List seedBytes) { + return _Bip32Slip10MstKeyGenerator.generateFromSeed( + seedBytes, + List.from(Bip32Slip10MstKeyGeneratorConst.hmacKeySecp256k1Bytes), + EllipticCurveTypes.secp256k1, + ); + } +} diff --git a/lib/bip/bip/bip32/slip10/bip32_slip10_nist256p1.dart b/lib/bip/bip/bip32/slip10/bip32_slip10_nist256p1.dart new file mode 100644 index 0000000..4408587 --- /dev/null +++ b/lib/bip/bip/bip32/slip10/bip32_slip10_nist256p1.dart @@ -0,0 +1,148 @@ +import 'package:blockchain_utils/bip/bip/bip32/base/bip32_base.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_key_derivator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_const.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_ex.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; + +import 'bip32_slip10_key_derivator.dart'; + +/// Represents a Bip32Slip10Nist256p1 hierarchical deterministic key for NIST256P1 curve. +/// +/// This class extends the [Bip32Base] class and provides functionality for +/// working with Bip32Slip10Nist256p1 keys. It is used for key derivation and +/// management within the NIST256P1 curve. +/// +/// Constructors: +/// - [Bip32Slip10Nist256p1] constructor for creating an instance with provided key data. +/// - [Bip32Slip10Nist256p1.fromSeed] constructor for creating a key from a seed. +/// - [Bip32Slip10Nist256p1.fromPrivateKey] constructor for creating a key from a private key. +/// - [Bip32Slip10Nist256p1.fromPublicKey] constructor for creating a key from a public key. +/// - [Bip32Slip10Nist256p1.fromExtendedKey] constructor for creating a key from an extended key string. +/// +/// This class is specific to the NIST256P1 curve and provides necessary methods for +/// working with this curve, such as key derivation and management. +class Bip32Slip10Nist256p1 extends Bip32Base { + Bip32Slip10Nist256p1._( + {required super.keyData, + required super.keyNetVer, + required super.privKey, + required super.pubKey}); + + /// constructor for creating a key from a seed. + Bip32Slip10Nist256p1.fromSeed(List seedBytes, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromSeed(seedBytes, keyNetVer); + + /// constructor for creating a key from an extended key string. + Bip32Slip10Nist256p1.fromExtendedKey(String exKeyStr, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromExtendedKey(exKeyStr, keyNetVer); + + /// constructor for creating a key from a private key. + Bip32Slip10Nist256p1.fromPrivateKey(List privKey, + {Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer}) + : super.fromPrivateKey(privKey, keyData, keyNetVer); + + /// constructor for creating a key from a public key. + Bip32Slip10Nist256p1.fromPublicKey(List pubkey, + {Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer}) + : super.fromPublicKey(pubkey, keyData, keyNetVer); + + /// Derives a child key from the current key, based on the provided index. + /// + /// This method derives a child key from the current key, either privately + /// or publicly, depending on the input and key type. If the current key is + /// private, it can derive both private and public child keys. If the current + /// key is public, it can only derive public child keys. + /// + /// - [index]: The index used to derive the child key. + /// + /// If the current key is private: + /// - For non-hardened derivation, this method can derive both private and + /// public child keys. + /// - For hardened derivation, it can only derive private child keys. + /// + /// Returns a new key instance representing the derived child key. If public + /// derivation is not supported or if there's an issue with the derivation + /// process, an error is thrown. + @override + Bip32Slip10Nist256p1 childKey(Bip32KeyIndex index) { + final isPublic = isPublicOnly; + + if (!isPublic) { + if (!index.isHardened && !isPublicDerivationSupported) { + throw const Bip32KeyError( + 'Private child derivation with not-hardened index is not supported'); + } + assert(!isPublicOnly); + final result = + keyDerivator.ckdPriv(privateKey, publicKey, index, curveType); + + return Bip32Slip10Nist256p1._( + keyData: Bip32KeyData( + chainCode: Bip32ChainCode(result.$2), + depth: depth.increase(), + index: index, + parentFingerPrint: fingerPrint, + ), + keyNetVer: keyNetVersions, + privKey: result.$1, + pubKey: null); + } + if (!isPublicDerivationSupported) { + throw const Bip32KeyError('Public child derivation is not supported'); + } + if (index.isHardened) { + throw const Bip32KeyError( + "Public child derivation cannot be used to create an hardened child key"); + } + final result = keyDerivator.ckdPub(publicKey, index, curveType); + return Bip32Slip10Nist256p1._( + keyData: Bip32KeyData( + chainCode: Bip32ChainCode(result.$2), + depth: depth.increase(), + index: index, + parentFingerPrint: fingerPrint, + ), + keyNetVer: keyNetVersions, + privKey: null, + pubKey: result.$1); + } + + /// Returns the curve type, NIST256P1. + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.nist256p1; + } + + /// Returns the default key network versions network. + /// + /// This method returns the default key network versions, + /// which are used when creating keys. + @override + Bip32KeyNetVersions get defaultKeyNetVersion { + return Bip32Const.mainNetKeyNetVersions; + } + + /// Returns the key derivator for NIST256P1. + /// + /// This method returns an instance of the [Bip32Slip10EcdsaDerivator] + /// class, which is used for key derivation within the Ed25519 curve. + @override + IBip32KeyDerivator get keyDerivator { + return Bip32Slip10EcdsaDerivator(); + } + + /// Returns the master key generator for NIST256P1. + /// + /// This method returns an instance of the [Bip32Slip10Nist256p1MstKeyGenerator] + /// class, which is used for generating the master key within the Ed25519 curve. + @override + IBip32MstKeyGenerator get masterKeyGenerator { + return Bip32Slip10Nist256p1MstKeyGenerator(); + } +} diff --git a/lib/bip/bip/bip32/slip10/bip32_slip10_secp256k1.dart b/lib/bip/bip/bip32/slip10/bip32_slip10_secp256k1.dart new file mode 100644 index 0000000..e6d251e --- /dev/null +++ b/lib/bip/bip/bip32/slip10/bip32_slip10_secp256k1.dart @@ -0,0 +1,150 @@ +import 'package:blockchain_utils/bip/bip/bip32/base/bip32_base.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_key_derivator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_const.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_ex.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_key_derivator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; + +/// Represents a Bip32Slip10Secp256k1 hierarchical deterministic key for SECP256K1 curve. +/// +/// This class extends the [Bip32Base] class and provides functionality for +/// working with Bip32Slip10Secp256k1 keys. It is used for key derivation and +/// management within the SECP256K1 curve. +/// +/// Constructors: +/// - [Bip32Slip10Secp256k1] constructor for creating an instance with provided key data. +/// - [Bip32Slip10Secp256k1.fromSeed] constructor for creating a key from a seed. +/// - [Bip32Slip10Secp256k1.fromPrivateKey] constructor for creating a key from a private key. +/// - [Bip32Slip10Secp256k1.fromPublicKey] constructor for creating a key from a public key. +/// - [Bip32Slip10Secp256k1.fromExtendedKey] constructor for creating a key from an extended key string. +/// +/// This class is specific to the SECP256K1 curve and provides necessary methods for +/// working with this curve, such as key derivation and management. +class Bip32Slip10Secp256k1 extends Bip32Base { + /// constructor for creating an instance with provided key data. + Bip32Slip10Secp256k1._( + {required super.keyData, + required super.keyNetVer, + required super.privKey, + required super.pubKey}); + + /// constructor for creating a key from a seed. + Bip32Slip10Secp256k1.fromSeed(List seedBytes, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromSeed(seedBytes, keyNetVer); + + /// constructor for creating a key from a public key. + Bip32Slip10Secp256k1.fromPublicKey(List pubkey, + {Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer}) + : super.fromPublicKey(pubkey, keyData, keyNetVer); + + /// constructor for creating a key from a private key. + Bip32Slip10Secp256k1.fromPrivateKey(List privKey, + {Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer}) + : super.fromPrivateKey(privKey, keyData, keyNetVer); + + /// constructor for creating a key from an extended key string. + Bip32Slip10Secp256k1.fromExtendedKey(String exKeyStr, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromExtendedKey(exKeyStr, keyNetVer); + + /// Returns the curve type, SECP256K1. + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.secp256k1; + } + + /// Returns the default key network versions network. + /// + /// This method returns the default key network versions, + /// which are used when creating keys. + @override + Bip32KeyNetVersions get defaultKeyNetVersion { + return Bip32Const.mainNetKeyNetVersions; + } + + /// Returns the key derivator for SECP256K1. + /// + /// This method returns an instance of the [Bip32Slip10EcdsaDerivator] + /// class, which is used for key derivation within the Ed25519 curve. + @override + IBip32KeyDerivator get keyDerivator { + return Bip32Slip10EcdsaDerivator(); + } + + /// Returns the master key generator for SECP256K1. + /// + /// This method returns an instance of the [Bip32Slip10Secp256k1MstKeyGenerator] + /// class, which is used for generating the master key within the Ed25519 curve. + @override + IBip32MstKeyGenerator get masterKeyGenerator { + return Bip32Slip10Secp256k1MstKeyGenerator(); + } + + /// Derives a child key from the current key, based on the provided index. + /// + /// This method derives a child key from the current key, either privately + /// or publicly, depending on the input and key type. If the current key is + /// private, it can derive both private and public child keys. If the current + /// key is public, it can only derive public child keys. + /// + /// - [index]: The index used to derive the child key. + /// + /// If the current key is private: + /// - For non-hardened derivation, this method can derive both private and + /// public child keys. + /// - For hardened derivation, it can only derive private child keys. + /// + /// Returns a new key instance representing the derived child key. If public + /// derivation is not supported or if there's an issue with the derivation + /// process, an error is thrown. + @override + Bip32Slip10Secp256k1 childKey(Bip32KeyIndex index) { + final isPublic = isPublicOnly; + + if (!isPublic) { + if (!index.isHardened && !isPublicDerivationSupported) { + throw const Bip32KeyError( + 'Private child derivation with not-hardened index is not supported'); + } + assert(!isPublicOnly); + final result = + keyDerivator.ckdPriv(privateKey, publicKey, index, curveType); + + return Bip32Slip10Secp256k1._( + keyData: Bip32KeyData( + chainCode: Bip32ChainCode(result.$2), + depth: depth.increase(), + index: index, + parentFingerPrint: fingerPrint, + ), + keyNetVer: keyNetVersions, + privKey: result.$1, + pubKey: null); + } + + // Check if supported + if (!isPublicDerivationSupported) { + throw const Bip32KeyError('Public child derivation is not supported'); + } + if (index.isHardened) { + throw const Bip32KeyError( + "Public child derivation cannot be used to create an hardened child key"); + } + final result = keyDerivator.ckdPub(publicKey, index, curveType); + return Bip32Slip10Secp256k1._( + keyData: Bip32KeyData( + chainCode: Bip32ChainCode(result.$2), + depth: depth.increase(), + index: index, + parentFingerPrint: fingerPrint, + ), + keyNetVer: keyNetVersions, + privKey: null, + pubKey: result.$1); + } +} diff --git a/lib/bip/bip/bip38/bip38.dart b/lib/bip/bip/bip38/bip38.dart new file mode 100644 index 0000000..16e5d83 --- /dev/null +++ b/lib/bip/bip/bip38/bip38.dart @@ -0,0 +1,15 @@ +/// The 'bip38' library provides tools for working with BIP-38, a standard for +/// encrypting and decrypting private keys in a human-readable format. +library bip38; + +/// Export statement for BIP-38 address-related functions and utilities. +export 'bip38_addr.dart'; + +/// Export statement for the BIP-38 base implementation. +export 'bip38_base.dart'; + +/// Export statement for BIP-38 functions related to elliptic curve cryptography. +export 'bip38_ec.dart'; + +/// Export statement for BIP-38 functions when no elliptic curve cryptography is used. +export 'bip38_no_ec.dart'; diff --git a/lib/bip/bip/bip38/bip38_addr.dart b/lib/bip/bip/bip38/bip38_addr.dart new file mode 100644 index 0000000..8c3c2f1 --- /dev/null +++ b/lib/bip/bip/bip38/bip38_addr.dart @@ -0,0 +1,92 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/address/p2pkh_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip38/bip38_ec.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// This class defines a constant value for the length of the address hash. +/// +/// In the context of Bitcoin or blockchain applications, 'addrHashLen' represents +/// the length of the address hash in bytes, which is commonly set to 4. +class Bip38AddrConst { + /// The length of the address hash in bytes. + static const int addrHashLen = 4; +} + +/// bip38 address class +class Bip38Addr { + /// Calculate the address hash from a public key and a specified public key mode. + /// + /// Given a public key [pubKey] and a [pubKeyMode], this method computes the + /// address hash for Bitcoin addresses. It uses the P2PKH address encoder to + /// encode the public key and then performs a double SHA-256 hash on the encoded + /// address. The resulting hash is then truncated to the length defined in the + /// [Bip38AddrConst.addrHashLen] constant. + /// + /// - [pubKey]: The public key for which the address hash is calculated. + /// - [pubKeyMode]: The public key mode that specifies the type of address + /// encoding. + /// - Returns: A List representing the calculated address hash. + static List addressHash(List pubKey, Bip38PubKeyModes pubKeyMode) { + final address = P2PKHAddrEncoder().encodeKey(pubKey, { + "net_ver": CoinsConf.bitcoinMainNet.getParam("p2pkh_net_ver"), + "pub_key_mode": pubKeyMode + }); + return QuickCrypto.sha256DoubleHash(StringUtils.encode(address)) + .sublist(0, Bip38AddrConst.addrHashLen); + } +} diff --git a/lib/bip/bip/bip38/bip38_base.dart b/lib/bip/bip/bip38/bip38_base.dart new file mode 100644 index 0000000..764c507 --- /dev/null +++ b/lib/bip/bip/bip38/bip38_base.dart @@ -0,0 +1,91 @@ +import 'package:blockchain_utils/bip/bip/bip38/bip38_no_ec.dart'; + +import 'bip38_ec.dart'; + +/// Helper class for BIP38 encryption and decryption operations. +/// +/// This class provides static methods for encrypting and decrypting Bitcoin +/// private keys using the BIP38 standard. It offers support for both EC and +/// non-EC (NoEc) encryption methods. +class Bip38Encrypter { + /// Encrypt a Bitcoin private key without using ECDSA. + /// + /// This method encrypts a Bitcoin private key using BIP38 encryption without + /// relying on the Elliptic Curve Digital Signature Algorithm (ECDSA). It takes + /// the private key, passphrase, and an optional public key mode as inputs and + /// returns the BIP38-encrypted private key as a string. + /// + /// - [privKey]: The Bitcoin private key to be encrypted. + /// - [passphrase]: The passphrase for encryption. + /// - [pubKeyMode]: The selected public key mode (compressed or uncompressed). + /// Defaults to [Bip38PubKeyModes.compressed]. + /// - Returns: The BIP38-encrypted private key as a string. + static String encryptNoEc(List privKey, String passphrase, + {Bip38PubKeyModes pubKeyMode = Bip38PubKeyModes.compressed}) { + return Bip38NoEcEncrypter.encrypt(privKey, passphrase, pubKeyMode); + } + + /// Generate a BIP38-encrypted private key with ECDSA. + /// + /// This method generates a BIP38-encrypted private key using ECDSA encryption. + /// It takes a passphrase, an optional public key mode, and optional lot number + /// and sequence number as inputs. It returns the BIP38-encrypted private key + /// as a string. + /// + /// - [passphrase]: The passphrase for encryption. + /// - [pubKeyMode]: The selected public key mode (compressed or uncompressed). + /// Defaults to [Bip38PubKeyModes.compressed]. + /// - [lotNum]: An optional lot number. + /// - [sequenceNum]: An optional sequence number. + /// - Returns: The BIP38-encrypted private key as a string. + static String generatePrivateKeyEc(String passphrase, + {Bip38PubKeyModes pubKeyMode = Bip38PubKeyModes.compressed, + int? lotNum, + int? sequenceNum}) { + final intPass = Bip38EcKeysGenerator.generateIntermediatePassphrase( + passphrase, + lotNum: lotNum, + sequenceNum: sequenceNum); + + return Bip38EcKeysGenerator.generatePrivateKey(intPass, pubKeyMode); + } +} + +/// Helper class for BIP38 decryption operations. +/// +/// This class provides static methods for decrypting BIP38-encrypted Bitcoin +/// private keys. It supports both EC and non-EC (NoEc) decryption methods. +class Bip38Decrypter { + /// Decrypt a BIP38-encrypted Bitcoin private key without using ECDSA. + /// + /// This method decrypts a BIP38-encrypted Bitcoin private key without relying + /// on the Elliptic Curve Digital Signature Algorithm (ECDSA). It takes an + /// encrypted private key and a passphrase as inputs and returns the decrypted + /// private key and the selected public key mode (compressed or uncompressed) + /// as a tuple. + /// + /// - [privKeyEnc]: The BIP38-encrypted Bitcoin private key. + /// - [passphrase]: The passphrase for decryption. + /// - Returns: A tuple (pair) containing the decrypted private key as a List + /// and the selected public key mode (compressed or uncompressed). + static (List, Bip38PubKeyModes) decryptNoEc( + String privKeyEnc, String passphrase) { + return Bip38NoEcDecrypter.decrypt(privKeyEnc, passphrase); + } + + /// Decrypt a BIP38-encrypted Bitcoin private key with ECDSA. + /// + /// This method decrypts a BIP38-encrypted Bitcoin private key using ECDSA + /// decryption. It takes an encrypted private key and a passphrase as inputs + /// and returns the decrypted private key and the selected public key mode + /// (compressed or uncompressed) as a tuple. + /// + /// - [privKeyEnc]: The BIP38-encrypted Bitcoin private key. + /// - [passphrase]: The passphrase for decryption. + /// - Returns: A tuple (pair) containing the decrypted private key as a List + /// and the selected public key mode (compressed or uncompressed). + static (List, Bip38PubKeyModes) decryptEc( + String privKeyEnc, String passphrase) { + return Bip38EcDecrypter.decrypt(privKeyEnc, passphrase); + } +} diff --git a/lib/bip/bip/bip38/bip38_ec.dart b/lib/bip/bip/bip38/bip38_ec.dart new file mode 100644 index 0000000..3c47d6b --- /dev/null +++ b/lib/bip/bip/bip38/bip38_ec.dart @@ -0,0 +1,540 @@ +import 'package:blockchain_utils/base58/base58.dart'; +import 'package:blockchain_utils/numbers/int_utils.dart'; +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/bip/address/p2pkh_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip38/bip38_addr.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ecdsa_keys.dart'; +import 'package:blockchain_utils/bip/ecc/keys/secp256k1_keys_ecdsa.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/binary/bit_utils.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/scrypt/scrypt.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:blockchain_utils/string/string.dart'; + +typedef Bip38PubKeyModes = P2PKHPubKeyModes; + +/// Constants for BIP38 encryption and decryption operations. +/// +/// This class defines various constants used in BIP38 (Bitcoin Improvement +/// Proposal 38) encryption and decryption processes. These constants are used +/// to set minimum and maximum values, byte lengths, magic numbers, and other +/// parameters required for working with encrypted Bitcoin private keys. +class Bip38EcConst { + /// Lot and Sequence Number Constants + static const int lotNumMinVal = 0; + static const int lotNumMaxVal = 1048575; + static const int seqNumMinVal = 0; + static const int seqNumMaxVal = 4095; + + /// Owner Salt Constants + static const int ownerSaltWithLotSeqByteLen = 4; + static const int ownerSaltNoLotSeqByteLen = 8; + + /// Intermediate Passphrase Encryption Constants + static const int intPassEncByteLen = 49; + static const List intPassMagicWithLotSeq = [ + 44, + 233, + 179, + 225, + 255, + 57, + 226, + 81 + ]; + static const List intPassMagicNoLotSeq = [ + 44, + 233, + 179, + 225, + 255, + 57, + 226, + 83 + ]; + + /// Seed and Encrypted Key Constants + static const int seedBByteLen = 24; + static const int encByteLen = 39; + static const List encKeyPrefix = [1, 67]; + static const int flagBitCompressed = 5; + static const int flagBitLotSeq = 2; + + /// Scrypt Constants + static const int scryptPrefactorKeyLen = 32; + static const int scryptPrefactorN = 16384; + static const int scryptPrefactorP = 8; + static const int scryptPrefactorR = 8; + static const int scryptHalvesKeyLen = 64; + static const int scryptHalvesN = 1024; + static const int scryptHalvesP = 1; + static const int scryptHalvesR = 1; +} + +/// Utility class for BIP38 encryption and decryption operations. +/// +/// This class provides utility methods for BIP38 (Bitcoin Improvement Proposal 38) +/// encryption and decryption operations. It includes methods for generating owner +/// entropy with or without lot and sequence numbers, as well as extracting owner +/// salt from owner entropy based on whether lot and sequence numbers are used. +class Bip38EcUtils { + /// Generate owner entropy with lot and sequence numbers. + /// + /// Generates owner entropy by combining random owner salt with lot and sequence + /// numbers. Ensure that the provided lot and sequence numbers are within valid + /// ranges as defined by [Bip38EcConst.lotNumMinVal] and [Bip38EcConst.seqNumMaxVal]. + /// + /// - [lotNum]: The lot number to use for owner entropy. + /// - [sequenceNum]: The sequence number to use for owner entropy. + /// - Returns: A List representing the generated owner entropy. + static List ownerEntropyWithLotSeq(int lotNum, int sequenceNum) { + if (lotNum < Bip38EcConst.lotNumMinVal || + lotNum > Bip38EcConst.lotNumMaxVal) { + throw ArgumentError('Invalid lot number ($lotNum)'); + } + if (sequenceNum < Bip38EcConst.seqNumMinVal || + sequenceNum > Bip38EcConst.seqNumMaxVal) { + throw ArgumentError('Invalid sequence number ($sequenceNum)'); + } + + final ownerSalt = + QuickCrypto.generateRandom(Bip38EcConst.ownerSaltWithLotSeqByteLen); + + final lotSequence = IntUtils.toBytesLength( + (lotNum * (Bip38EcConst.seqNumMaxVal + 1)) + sequenceNum, + length: 4); + return List.from([...ownerSalt, ...lotSequence]); + } + + /// Generate owner entropy without lot and sequence numbers. + /// + /// Generates owner entropy without including lot and sequence numbers. This + /// method is used when BIP38 does not require lot and sequence numbers. + /// + /// - Returns: A List representing the generated owner entropy. + static List ownerEntropyNoLotSeq() { + final ownerSalt = + QuickCrypto.generateRandom(Bip38EcConst.ownerSaltNoLotSeqByteLen); + return ownerSalt; + } + + /// Extract owner salt from owner entropy based on lot and sequence numbers. + /// + /// Given owner entropy and a boolean flag indicating whether lot and sequence + /// numbers are used, this method extracts the owner salt accordingly. + /// + /// - [ownerEntropy]: The owner entropy containing owner salt. + /// - [hasLotSeq]: A boolean flag indicating whether lot and sequence numbers are + /// included in the owner entropy. + /// - Returns: A List representing the extracted owner salt. + static List ownerSaltFromEntropy( + List ownerEntropy, bool hasLotSeq) { + return hasLotSeq + ? List.from( + ownerEntropy.sublist(0, Bip38EcConst.ownerSaltWithLotSeqByteLen)) + : ownerEntropy; + } + + /// Derive the pass factor for BIP38 encryption. + /// + /// This method calculates the pass factor used in BIP38 encryption by applying + /// the Scrypt key derivation function to a passphrase, owner entropy, and a flag + /// indicating whether lot and sequence numbers are included in the owner entropy. + /// + /// - [passphrase]: The passphrase to be used in deriving the pass factor. + /// - [ownerEntropy]: The owner entropy from which the pass factor is derived. + /// - [hasLotSeq]: A boolean flag indicating whether lot and sequence numbers are + /// included in the owner entropy. + /// - Returns: A List representing the derived pass factor. + static List passFactor( + String passphrase, List ownerEntropy, bool hasLotSeq) { + final ownerSalt = ownerSaltFromEntropy(ownerEntropy, hasLotSeq); + + /// Derive the prefactor using Scrypt key derivation function. + final prefactor = Scrypt.deriveKey( + StringUtils.encode(passphrase), + ownerSalt, + dkLen: Bip38EcConst.scryptPrefactorKeyLen, + n: Bip38EcConst.scryptPrefactorN, + p: Bip38EcConst.scryptPrefactorP, + r: Bip38EcConst.scryptPrefactorR, + ); + + /// Combine the prefactor with owner entropy, if present. + final combinedValue = hasLotSeq + ? QuickCrypto.sha256DoubleHash( + List.from([...prefactor, ...ownerEntropy])) + : prefactor; + + return combinedValue; + } + + /// Calculate the EC point for the pass factor. + /// + /// This method computes the elliptic curve (EC) point associated with the + /// provided pass factor. It uses the Secp256k1 curve's generator point and scalar + /// multiplication to derive the EC point. + /// + /// - [passfactor]: The pass factor for which the EC point is calculated. + /// - Returns: A List representing the calculated EC point. + static List passPoint(List passfactor) { + /// Get the generator point for the Secp256k1 curve. + final generator = Curves.generatorSecp256k1; + + /// Convert the pass factor to a big integer. + final toBig = BigintUtils.fromBytes(passfactor); + + /// Calculate the EC point by scalar multiplication. + final toPoint = generator * toBig; + + /// Convert the EC point to bytes. + return toPoint.toBytes(); + } + + /// Derive key halves from passpoint, address hash, and owner entropy. + /// + /// This method derives two halves of a key using Scrypt key derivation function. + /// It takes a passpoint, an address hash, and owner entropy as input, combines + /// them, and then derives two key halves. The Scrypt parameters are defined + /// in [Bip38EcConst] for consistency and security. + /// + /// - [passpoint]: The passpoint used in key derivation. + /// - [addressHash]: The address hash to be combined in key derivation. + /// - [ownerEntropy]: The owner entropy used in key derivation. + /// - Returns: A tuple (pair) of Lists representing the two derived key halves. + static (List, List) deriveKeyHalves( + List passpoint, List addressHash, List ownerEntropy) { + /// Derive a key using Scrypt with combined data. + final key = Scrypt.deriveKey( + passpoint, + List.from([...addressHash, ...ownerEntropy]), + dkLen: Bip38EcConst.scryptHalvesKeyLen, + n: Bip38EcConst.scryptHalvesN, + p: Bip38EcConst.scryptHalvesP, + r: Bip38EcConst.scryptHalvesR, + ); + + /// Split the derived key into two halves. + final derivedHalf1 = + List.from(key.sublist(0, Bip38EcConst.scryptHalvesKeyLen ~/ 2)); + final derivedHalf2 = + List.from(key.sublist(Bip38EcConst.scryptHalvesKeyLen ~/ 2)); + + return (derivedHalf1, derivedHalf2); + } +} + +/// Helper class for generating BIP38-encrypted keys. +/// +/// This class provides methods to generate intermediate passphrases and private +/// keys using the BIP38 (Bitcoin Improvement Proposal 38) encryption scheme. It +/// covers the creation of intermediate passphrases from regular passphrases, as +/// well as the generation of BIP38-encrypted private keys. +class Bip38EcKeysGenerator { + /// Generate an intermediate passphrase from a regular passphrase. + /// + /// This method creates an intermediate passphrase from the given regular + /// passphrase. It includes lot and sequence numbers if provided, and follows + /// BIP38 standards for encoding. + /// + /// - [passphrase]: The regular passphrase to be transformed. + /// - [lotNum]: The optional lot number. + /// - [sequenceNum]: The optional sequence number. + /// - Returns: A BIP38-compliant intermediate passphrase. + static String generateIntermediatePassphrase(String passphrase, + {int? lotNum, int? sequenceNum}) { + /// Determine if lot and sequence numbers are included. + final hasLotSeq = lotNum != null && sequenceNum != null; + + /// Generate owner entropy based on lot and sequence numbers. + final ownerEntropy = hasLotSeq + ? Bip38EcUtils.ownerEntropyWithLotSeq(lotNum, sequenceNum) + : Bip38EcUtils.ownerEntropyNoLotSeq(); + + /// Derive passfactor and passpoint from the passphrase and owner entropy. + final passfactor = + Bip38EcUtils.passFactor(passphrase, ownerEntropy, hasLotSeq); + final passpoint = Bip38EcUtils.passPoint(passfactor); + + /// Determine the appropriate magic number based on lot and sequence numbers. + final magic = hasLotSeq + ? Bip38EcConst.intPassMagicWithLotSeq + : Bip38EcConst.intPassMagicNoLotSeq; + + /// Encode the intermediate passphrase + final intermediatePassphrase = Base58Encoder.checkEncode( + List.from([...magic, ...ownerEntropy, ...passpoint])); + + return intermediatePassphrase; + } + + /// Generate a BIP38-encrypted private key from an intermediate passphrase. + /// + /// This method creates a BIP38-encrypted private key from an intermediate + /// passphrase and the specified public key mode. It follows BIP38 standards + /// for encryption. + /// + /// - [intPassphrase]: The intermediate passphrase. + /// - [pubKeyMode]: The public key mode specifying the address type. + /// - Returns: A BIP38-encrypted private key. + static String generatePrivateKey( + String intPassphrase, Bip38PubKeyModes pubKeyMode) { + /// Decode the intermediate passphrase into bytes. + final intPassphraseBytes = Base58Decoder.checkDecode(intPassphrase); + + /// Ensure the length of the intermediate code is valid. + if (intPassphraseBytes.length != Bip38EcConst.intPassEncByteLen) { + throw ArgumentError( + 'Invalid intermediate code length (${intPassphraseBytes.length})'); + } + + /// Extract magic, owner entropy, and passpoint from the intermediate code. + final magic = intPassphraseBytes.sublist(0, 8); + final ownerEntropy = intPassphraseBytes.sublist(8, 16); + final passpoint = + Secp256k1PublicKeyEcdsa.fromBytes(intPassphraseBytes.sublist(16)); + + /// Check if the magic number is valid. + if (!bytesEqual(magic, Bip38EcConst.intPassMagicNoLotSeq) && + !bytesEqual(magic, Bip38EcConst.intPassMagicWithLotSeq)) { + throw ArgumentError('Invalid magic (${BytesUtils.toHexString(magic)})'); + } + + /// Generate a random seed for seedb and derive a new point. + final seedb = QuickCrypto.generateRandom(Bip38EcConst.seedBByteLen); + final factorb = QuickCrypto.sha256DoubleHash(seedb); + final newPoint = passpoint.point * BigintUtils.fromBytes(factorb); + + /// Calculate the address hash. + final addressHash = Bip38Addr.addressHash(newPoint.toBytes(), pubKeyMode); + + /// Derive key halves using Scrypt. + final derivedHalves = Bip38EcUtils.deriveKeyHalves( + passpoint.compressed, addressHash, ownerEntropy); + + /// Encrypt seedb and create the BIP38-encrypted private key. + final encryptedParts = + _encryptSeedb(seedb, derivedHalves.$1, derivedHalves.$2); + final flagbyte = _setFlagbyteBits(magic, pubKeyMode); + final encKeyBytes = List.from([ + ...Bip38EcConst.encKeyPrefix, + ...flagbyte, + ...addressHash, + ...ownerEntropy, + ...encryptedParts.$1.sublist(0, 8), + ...encryptedParts.$2 + ]); + + return Base58Encoder.checkEncode(encKeyBytes); + } + + /// Encrypt the 'seedb' value using AES-CBC encryption. + /// + /// This method encrypts the 'seedb' value, which is part of the BIP38-encrypted + /// private key, using AES-CBC (Advanced Encryption Standard - Cipher Block + /// Chaining) encryption. It takes the 'seedb' value and the two derived key + /// halves as input and returns two encrypted parts. + /// + /// - [seedb]: The 'seedb' value to be encrypted. + /// - [derivedHalf1]: The first derived key half. + /// - [derivedHalf2]: The second derived key half. + /// - Returns: A tuple (pair) of Lists representing the two encrypted parts. + static (List, List) _encryptSeedb( + List seedb, List derivedHalf1, List derivedHalf2) { + /// Encrypt the first part of 'seedb'. + final encryptedPart1 = QuickCrypto.aesCbcEncrypt(derivedHalf2, + BytesUtils.xor(seedb.sublist(0, 16), derivedHalf1.sublist(0, 16))); + + /// Encrypt the second part of 'seedb'. + final encryptedPart2 = QuickCrypto.aesCbcEncrypt( + derivedHalf2, + BytesUtils.xor( + List.from( + [...encryptedPart1.sublist(8), ...seedb.sublist(16)]), + derivedHalf1.sublist(16))); + + return (encryptedPart1, encryptedPart2); + } + + /// Set flag bits in the 'flagbyte' based on public key mode and magic number. + /// + /// This method sets specific flag bits in the 'flagbyte' to indicate the + /// chosen public key mode (compressed or uncompressed) and the presence of + /// lot and sequence numbers in the intermediate passphrase, as defined by the + /// provided magic number. It returns the modified 'flagbyte' as a List. + /// + /// - [magic]: The magic number extracted from the intermediate passphrase. + /// - [pubKeyMode]: The selected public key mode (compressed or uncompressed). + /// - Returns: A List representing the 'flagbyte' with set bits. + static List _setFlagbyteBits( + List magic, Bip38PubKeyModes pubKeyMode) { + int flagbyteInt = 0; + + /// Set the 'compressed' bit if the public key mode is 'compressed'. + if (pubKeyMode == Bip38PubKeyModes.compressed) { + flagbyteInt = + BitUtils.setBit(flagbyteInt, Bip38EcConst.flagBitCompressed); + } + + /// Set the 'lot and sequence' bit if the magic number matches 'with lot/seq'. + if (bytesEqual(magic, Bip38EcConst.intPassMagicWithLotSeq)) { + flagbyteInt = BitUtils.setBit(flagbyteInt, Bip38EcConst.flagBitLotSeq); + } + return IntUtils.toBytesLength(flagbyteInt); + } +} + +/// Helper class for decrypting BIP38-encrypted private keys. +/// +/// This class provides a method for decrypting BIP38-encrypted private keys, +/// turning them into regular private keys, and extracting the associated public +/// key mode. It follows BIP38 standards for decryption and validation. +class Bip38EcDecrypter { + /// Decrypt a BIP38-encrypted private key with a passphrase. + /// + /// This method decrypts a BIP38-encrypted private key using the provided + /// passphrase. It returns the decrypted private key as bytes and identifies + /// the associated public key mode (compressed or uncompressed). + /// + /// - [privKeyEnc]: The BIP38-encrypted private key to be decrypted. + /// - [passphrase]: The passphrase used for decryption. + /// - Returns: A tuple (pair) containing the decrypted private key bytes and + /// the associated public key mode. + static (List, Bip38PubKeyModes) decrypt( + String privKeyEnc, String passphrase) { + final privKeyEncBytes = Base58Decoder.checkDecode(privKeyEnc); + + /// Check if the length of the encrypted private key is valid. + if (privKeyEncBytes.length != Bip38EcConst.encByteLen) { + throw ArgumentError( + 'Invalid encrypted length (${privKeyEncBytes.length})'); + } + + /// Extract various components from the encrypted private key. + final prefix = privKeyEncBytes.sublist(0, 2); + final flagbyte = List.from([privKeyEncBytes[2]]); + final addressHash = privKeyEncBytes.sublist(3, 7); + final ownerEntropy = privKeyEncBytes.sublist(7, 15); + final encryptedPart1Lower = privKeyEncBytes.sublist(15, 23); + final encryptedPart2 = privKeyEncBytes.sublist(23); + + /// Verify the prefix of the encrypted private key. + if (!bytesEqual(prefix, Bip38EcConst.encKeyPrefix)) { + throw ArgumentError('Invalid prefix (${BytesUtils.toHexString(prefix)})'); + } + + /// Extract flag options based on the flag byte. + final flagOptions = _getFlagbyteOptions(flagbyte); + + /// Derive the pass factor and key halves for decryption. + final passfactor = + Bip38EcUtils.passFactor(passphrase, ownerEntropy, flagOptions.$2); + + final derivedHalves = Bip38EcUtils.deriveKeyHalves( + Bip38EcUtils.passPoint(passfactor), addressHash, ownerEntropy); + + /// Decrypt 'factorb' and compute the private key. + final factorb = _decryptAndGetFactorb(encryptedPart1Lower, encryptedPart2, + derivedHalves.$1, derivedHalves.$2); + final privateKeyBytes = _computePrivateKey(passfactor, factorb); + + /// Create a public key from the private key and calculate address hash. + final toPub = Secp256k1PrivateKeyEcdsa.fromBytes(privateKeyBytes); + final addressHashGot = + Bip38Addr.addressHash(toPub.publicKey.point.toBytes(), flagOptions.$1); + + /// Verify the extracted address hash matches the expected value. + if (!bytesEqual(addressHash, addressHashGot)) { + throw ArgumentError( + 'Invalid address hash (expected: ${BytesUtils.toHexString(addressHash)}, got: ${BytesUtils.toHexString(addressHashGot)})'); + } + + return (privateKeyBytes, flagOptions.$1); + } + + /// Decrypt and obtain the 'factorb' from encrypted parts. + /// + /// This method decrypts the 'factorb' value, an essential component of BIP38 + /// decryption, from the provided encrypted parts. It uses AES-CBC decryption + /// and XOR operations to extract 'factorb', which is used in private key + /// derivation. + /// + /// - [encryptedPart1Lower]: The lower part of the first encrypted segment. + /// - [encryptedPart2]: The second encrypted segment. + /// - [derivedHalf1]: The first derived key half. + /// - [derivedHalf2]: The second derived key half. + /// - Returns: The decrypted 'factorb' as a List. + static List _decryptAndGetFactorb( + List encryptedPart1Lower, + List encryptedPart2, + List derivedHalf1, + List derivedHalf2) { + /// Decrypt the second part and extract encryptedPart1Higher and seedbPart2. + final decryptedPart2 = BytesUtils.xor( + QuickCrypto.aesCbcDecrypt(derivedHalf2, encryptedPart2), + derivedHalf1.sublist(16)); + final encryptedPart1Higher = decryptedPart2.sublist(0, 8); + final seedbPart2 = decryptedPart2.sublist(8); + + /// Decrypt the first part and obtain seedbPart1. + final seedbPart1 = BytesUtils.xor( + QuickCrypto.aesCbcDecrypt(derivedHalf2, + List.from([...encryptedPart1Lower, ...encryptedPart1Higher])), + derivedHalf1.sublist(0, 16)); + + /// Combine seedbPart1 and seedbPart2 to obtain the full 'seedb'. + final seedb = List.from([...seedbPart1, ...seedbPart2]); + + /// Compute the SHA-256 double hash of the 'seedb' to obtain 'factorb'. + return QuickCrypto.sha256DoubleHash(seedb); + } + + static List _computePrivateKey(List passfactor, List factorb) { + final gm = Curves.generatorSecp256k1; + + final passfactorInt = BigintUtils.fromBytes(passfactor); + final factorbInt = BigintUtils.fromBytes(factorb); + final privKeyInt = (passfactorInt * factorbInt) % gm.order!; + return BigintUtils.toBytes(privKeyInt, + length: EcdsaKeysConst.privKeyByteLen); + } + + /// Extract flag options from the 'flagbyte' value. + /// + /// This method extracts public key mode and lot/sequence number presence + /// information from the 'flagbyte' value. It checks specific bits in the 'flagbyte' + /// to determine whether the public key is compressed or uncompressed and whether + /// lot and sequence numbers are present in the intermediate passphrase. + /// + /// - [flagbyte]: The 'flagbyte' value extracted from the BIP38-encrypted private key. + /// - Returns: A tuple (pair) containing the selected public key mode and a boolean + /// indicating the presence of lot and sequence numbers. + static (Bip38PubKeyModes, bool) _getFlagbyteOptions(List flagbyte) { + int flagbyteInt = IntUtils.fromBytes(flagbyte); + + /// Check if the lot and sequence number bit is set. + final hasLotSeq = + BitUtils.intIsBitSet(flagbyteInt, Bip38EcConst.flagBitLotSeq); + + /// Determine the public key mode (compressed or uncompressed). + final pubKeyMode = + BitUtils.intIsBitSet(flagbyteInt, Bip38EcConst.flagBitCompressed) + ? Bip38PubKeyModes.compressed + : Bip38PubKeyModes.uncompressed; + + /// Reset the flag bits and check if 'flagbyteInt' is now zero. + flagbyteInt = BitUtils.resetBit(flagbyteInt, Bip38EcConst.flagBitLotSeq); + flagbyteInt = + BitUtils.resetBit(flagbyteInt, Bip38EcConst.flagBitCompressed); + + /// Verify that 'flagbyteInt' is zero; otherwise, it's an invalid 'flagbyte'. + if (flagbyteInt != 0) { + throw ArgumentError( + 'Invalid flagbyte (${BytesUtils.toHexString(flagbyte)})'); + } + + return (pubKeyMode, hasLotSeq); + } +} diff --git a/lib/bip/bip/bip38/bip38_no_ec.dart b/lib/bip/bip/bip38/bip38_no_ec.dart new file mode 100644 index 0000000..0b54997 --- /dev/null +++ b/lib/bip/bip/bip38/bip38_no_ec.dart @@ -0,0 +1,270 @@ +import 'package:blockchain_utils/base58/base58.dart'; +import 'package:blockchain_utils/bip/bip/bip38/bip38_addr.dart'; +import 'package:blockchain_utils/bip/ecc/keys/secp256k1_keys_ecdsa.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/crypto/crypto/scrypt/scrypt.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:blockchain_utils/string/string.dart'; + +import 'bip38_ec.dart'; + +/// Constants for BIP38 encryption and decryption without ECDSA. +/// +/// This class provides constant values that are specific to BIP38 encryption and +/// decryption for Bitcoin addresses without using the Elliptic Curve Digital +/// Signature Algorithm (ECDSA). +class Bip38NoEcConst { + /// Length of the BIP38 encrypted key in bytes. + static const int encKeyByteLen = 39; + + /// Prefix bytes for the encrypted key. + static const List encKeyPrefix = [0x01, 0x42]; + + /// Flagbyte for compressed public keys. + static const List flagbyteCompressed = [0xe0]; + + /// Flagbyte for uncompressed public keys. + static const List flagbyteUncompressed = [0xc0]; + + /// Length of the scrypt-derived key in bytes. + static const int scryptKeyLen = 64; + + /// Parameter 'N' for the scrypt key derivation function. + static const int scryptN = 16384; + + /// Parameter 'P' for the scrypt key derivation function. + static const int scryptP = 8; + + /// Parameter 'R' for the scrypt key derivation function. + static const int scryptR = 8; +} + +/// Utility class for BIP38 encryption and decryption without ECDSA. +/// +/// This class provides utility methods for BIP38 encryption and decryption of +/// Bitcoin addresses without using the Elliptic Curve Digital Signature Algorithm (ECDSA). +class Bip38NoEcUtils { + /// Compute the address hash from private key bytes and public key mode. + /// + /// This method computes the address hash from the provided private key bytes + /// and the selected public key mode (compressed or uncompressed). + /// + /// - [privKeyBytes]: The private key bytes. + /// - [pubKeyMode]: The selected public key mode. + /// - Returns: The address hash as a List. + static List addressHash( + List privKeyBytes, Bip38PubKeyModes pubKeyMode) { + final publicBytes = Secp256k1PrivateKeyEcdsa.fromBytes(privKeyBytes) + .publicKey + .point + .toBytes(); + + return Bip38Addr.addressHash(publicBytes, pubKeyMode); + } + + /// Derive key halves from a passphrase and an address hash. + /// + /// This method derives key halves from the provided passphrase and address hash. + /// It uses scrypt key derivation to obtain two key halves for use in BIP38 + /// encryption and decryption. + /// + /// - [passphrase]: The passphrase for key derivation. + /// - [addressHash]: The address hash as input for key derivation. + /// - Returns: A tuple (pair) containing the two derived key halves as Lists. + static (List, List) deriveKeyHalves( + String passphrase, List addressHash) { + final key = Scrypt.deriveKey( + StringUtils.encode(passphrase), + addressHash, + dkLen: Bip38NoEcConst.scryptKeyLen, + n: Bip38NoEcConst.scryptN, + r: Bip38NoEcConst.scryptR, + p: Bip38NoEcConst.scryptP, + ); + + final derivedHalf1 = key.sublist(0, Bip38NoEcConst.scryptKeyLen ~/ 2); + final derivedHalf2 = key.sublist(Bip38NoEcConst.scryptKeyLen ~/ 2); + + return (derivedHalf1, derivedHalf2); + } +} + +/// Helper class for encrypting Bitcoin private keys without using ECDSA. +/// +/// This class provides a method for encrypting Bitcoin private keys using BIP38 +/// encryption without the Elliptic Curve Digital Signature Algorithm (ECDSA). +/// It takes a private key, passphrase, and public key mode as inputs and returns +/// the BIP38-encrypted private key as a string. +class Bip38NoEcEncrypter { + /// Encrypt a Bitcoin private key without using ECDSA. + /// + /// This method encrypts a Bitcoin private key without using the Elliptic Curve + /// Digital Signature Algorithm (ECDSA). It takes a private key, passphrase, + /// and a public key mode (compressed or uncompressed) as inputs and returns + /// the BIP38-encrypted private key as a string. + /// + /// - [privKey]: The Bitcoin private key to be encrypted. + /// - [passphrase]: The passphrase for encryption. + /// - [pubKeyMode]: The selected public key mode (compressed or uncompressed). + /// - Returns: The BIP38-encrypted private key as a string. + static String encrypt( + List privKey, String passphrase, Bip38PubKeyModes pubKeyMode) { + /// Compute the address hash from the private key and public key mode. + final addressHash = Bip38NoEcUtils.addressHash(privKey, pubKeyMode); + + /// Derive key halves using the passphrase and address hash. + final derivedHalves = + Bip38NoEcUtils.deriveKeyHalves(passphrase, addressHash); + + /// Extract the derived key halves. + final derivedHalf1 = derivedHalves.$1; + final derivedHalf2 = derivedHalves.$2; + + /// Encrypt the private key using the derived halves. + final encryptedHalves = + _encryptPrivateKey(privKey, derivedHalf1, derivedHalf2); + + /// Extract the encrypted halves. + final encryptedHalf1 = encryptedHalves.$1; + final encryptedHalf2 = encryptedHalves.$2; + + /// Determine the flagbyte based on the public key mode. + final flagbyte = pubKeyMode == Bip38PubKeyModes.compressed + ? Bip38NoEcConst.flagbyteCompressed + : Bip38NoEcConst.flagbyteUncompressed; + + /// Create the BIP38-encrypted private key as bytes. + final encKeyBytes = Bip38NoEcConst.encKeyPrefix + + flagbyte + + addressHash + + encryptedHalf1 + + encryptedHalf2; + + /// Encode the encrypted private key as a Base58 string. + return Base58Encoder.checkEncode(List.from(encKeyBytes)); + } + + /// Encrypt the private key using derived key halves. + /// + /// This method encrypts a Bitcoin private key by using the derived key halves + /// obtained from the passphrase and address hash. It performs AES-CBC encryption + /// on the private key, splitting it into two halves before encryption. The two + /// encrypted halves are returned as a tuple (pair). + /// + /// - [privKeyBytes]: The Bitcoin private key to be encrypted. + /// - [derivedHalf1]: The first derived key half. + /// - [derivedHalf2]: The second derived key half. + /// - Returns: A tuple (pair) containing the two encrypted private key halves + /// as Lists. + static (List, List) _encryptPrivateKey( + List privKeyBytes, List derivedHalf1, List derivedHalf2) { + /// Encrypt the first half of the private key. + final encryptedHalf1 = QuickCrypto.aesCbcEncrypt( + derivedHalf2, + BytesUtils.xor( + privKeyBytes.sublist(0, 16), derivedHalf1.sublist(0, 16))); + + /// Encrypt the second half of the private key. + final encryptedHalf2 = QuickCrypto.aesCbcEncrypt(derivedHalf2, + BytesUtils.xor(privKeyBytes.sublist(16), derivedHalf1.sublist(16))); + + return (encryptedHalf1, encryptedHalf2); + } +} + +/// Helper class for decrypting BIP38-encrypted Bitcoin private keys without ECDSA. +/// +/// This class provides methods for decrypting BIP38-encrypted Bitcoin private keys +/// without using the Elliptic Curve Digital Signature Algorithm (ECDSA). It includes +/// a `decrypt` method for decrypting the private key and a `_decryptAndGetPrivKey` +/// method for the core decryption process. +class Bip38NoEcDecrypter { + /// Decrypt a BIP38-encrypted Bitcoin private key without using ECDSA. + /// + /// This method decrypts a BIP38-encrypted Bitcoin private key without relying on + /// the Elliptic Curve Digital Signature Algorithm (ECDSA). It takes an encrypted + /// private key and a passphrase as inputs and returns the decrypted private key + /// and the selected public key mode (compressed or uncompressed) as a tuple. + /// + /// - [privKeyEnc]: The BIP38-encrypted Bitcoin private key. + /// - [passphrase]: The passphrase for decryption. + /// - Returns: A tuple (pair) containing the decrypted private key as a List + /// and the selected public key mode (compressed or uncompressed). + static (List, Bip38PubKeyModes) decrypt( + String privKeyEnc, String passphrase) { + final privKeyEncBytes = Base58Decoder.checkDecode(privKeyEnc); + + if (privKeyEncBytes.length != Bip38NoEcConst.encKeyByteLen) { + throw ArgumentError( + 'Invalid encrypted key length (${privKeyEncBytes.length})'); + } + + final prefix = privKeyEncBytes.sublist(0, 2); + final flagbyte = List.from([privKeyEncBytes[2]]); + final addressHash = privKeyEncBytes.sublist(3, 7); + final encryptedHalf1 = privKeyEncBytes.sublist(7, 23); + final encryptedHalf2 = privKeyEncBytes.sublist(23); + + // Check prefix and flagbyte + if (!bytesEqual(prefix, Bip38NoEcConst.encKeyPrefix)) { + throw ArgumentError('Invalid prefix (${BytesUtils.toHexString(prefix)})'); + } + if (flagbyte[0] != Bip38NoEcConst.flagbyteCompressed.first && + flagbyte[0] != Bip38NoEcConst.flagbyteUncompressed.first) { + throw ArgumentError( + 'Invalid flagbyte (${BytesUtils.toHexString(flagbyte)})'); + } + + // Derive key halves from the passphrase and address hash + final derivedHalves = + Bip38NoEcUtils.deriveKeyHalves(passphrase, addressHash); + + final derivedHalf1 = derivedHalves.$1; + final derivedHalf2 = derivedHalves.$2; + + // Get the private key back by decrypting + final privKeyBytes = _decryptAndGetPrivKey( + encryptedHalf1, encryptedHalf2, derivedHalf1, derivedHalf2); + + // Get public key mode + final pubKeyMode = flagbyte[0] == Bip38NoEcConst.flagbyteCompressed.first + ? Bip38PubKeyModes.compressed + : Bip38PubKeyModes.uncompressed; + + // Verify the address hash + final addressHashGot = Bip38NoEcUtils.addressHash(privKeyBytes, pubKeyMode); + if (!bytesEqual(addressHash, addressHashGot)) { + throw ArgumentError( + 'Invalid address hash (expected: ${BytesUtils.toHexString(addressHash)}, ' + 'got: ${BytesUtils.toHexString(addressHashGot)})'); + } + + return (privKeyBytes, pubKeyMode); + } + + /// Decrypt and return the Bitcoin private key. + /// + /// This method decrypts the Bitcoin private key from the encrypted halves using + /// the derived key halves. It combines the two decrypted halves to reconstruct + /// the private key and returns it as a List. + /// + /// - [encryptedHalf1]: The first encrypted half of the private key. + /// - [encryptedHalf2]: The second encrypted half of the private key. + /// - [derivedHalf1]: The first derived key half. + /// - [derivedHalf2]: The second derived key half. + /// - Returns: The decrypted private key as a List. + static List _decryptAndGetPrivKey( + List encryptedHalf1, + List encryptedHalf2, + List derivedHalf1, + List derivedHalf2) { + final decryptedHalf1 = + QuickCrypto.aesCbcDecrypt(derivedHalf2, encryptedHalf1); + final decryptedHalf2 = + QuickCrypto.aesCbcDecrypt(derivedHalf2, encryptedHalf2); + + return BytesUtils.xor( + List.from([...decryptedHalf1, ...decryptedHalf2]), derivedHalf1); + } +} diff --git a/lib/bip/bip/bip39/bip39.dart b/lib/bip/bip/bip39/bip39.dart new file mode 100644 index 0000000..7086289 --- /dev/null +++ b/lib/bip/bip/bip39/bip39.dart @@ -0,0 +1,39 @@ +/// The 'bip39' library provides a comprehensive set of tools for working with +/// BIP-39 mnemonics, a standard for creating human-readable mnemonic phrases +/// for cryptographic keys. + +/// Export statement for word list languages used in BIP-39 mnemonics. +export 'word_list/languages.dart'; + +/// Export statement for the functionality related to generating entropy for BIP-39 mnemonics. +export 'bip39_entropy_generator.dart'; + +/// Export statement for the BIP-39 mnemonic class, which provides methods for +/// working with BIP-39 mnemonics, including generating, decoding, and encoding them. +export 'bip39_mnemonic.dart'; + +/// Export statement for the BIP-39 mnemonic decoder, which allows you to decode +/// BIP-39 mnemonic phrases into their binary representations. +export 'bip39_mnemonic_decoder.dart'; + +/// Export statement for the BIP-39 mnemonic encoder, which enables the conversion +/// of binary data back into BIP-39 mnemonic phrases. +export 'bip39_mnemonic_encoder.dart'; + +/// Export statement for the BIP-39 mnemonic generator, responsible for generating +/// valid mnemonic phrases that can be used to derive cryptographic keys. +export 'bip39_mnemonic_generator.dart'; + +/// Export statement for utility functions related to BIP-39 mnemonics, which can +/// be helpful for various tasks involving mnemonic phrases. +export 'bip39_mnemonic_utils.dart'; + +/// Export statement for the BIP-39 seed generator, which is responsible for +/// generating cryptographic seeds from BIP-39 mnemonic phrases, a crucial step +/// in creating cryptographic keys. +export 'bip39_seed_generator.dart'; + +/// Export statement for the BIP-39 mnemonic validator, which helps you ensure the +/// validity of BIP-39 mnemonic phrases, important for the security and reliability +/// of cryptographic key management. +export 'bip39_mnemonic_validator.dart'; diff --git a/lib/bip/bip/bip39/bip39_entropy_generator.dart b/lib/bip/bip/bip39/bip39_entropy_generator.dart new file mode 100644 index 0000000..58fc4c9 --- /dev/null +++ b/lib/bip/bip/bip39/bip39_entropy_generator.dart @@ -0,0 +1,76 @@ +import 'package:blockchain_utils/bip/mnemonic/entropy_generator.dart'; + +/// Enum representing the bit lengths for BIP39 entropy values. +/// +/// This enum defines the possible bit lengths for BIP39 entropy values. It +/// provides constants for bit lengths of 128, 160, 192, 224, and 256 bits. +enum Bip39EntropyBitLen { + /// 128 bit + bitLen128(128), + + /// 160 bit + bitLen160(160), + + /// 192 bit + bitLen192(192), + + /// 224 bit + bitLen224(224), + + /// 256 bit + bitLen256(256); + + final int value; + + /// Constructor to associate a bit length value with each enum constant. + const Bip39EntropyBitLen(this.value); +} + +/// Constants related to BIP39 entropy generation. +/// +/// This class defines constants related to BIP39 entropy generation, including +/// a list of valid BIP39 entropy bit lengths. +class Bip39EntropyGeneratorConst { + /// list of valid BIP39 entropy bit lengths + static final List entropyBitLen = [ + Bip39EntropyBitLen.bitLen128, + Bip39EntropyBitLen.bitLen160, + Bip39EntropyBitLen.bitLen192, + Bip39EntropyBitLen.bitLen224, + Bip39EntropyBitLen.bitLen256, + ]; +} + +/// BIP39 entropy generator class. +/// +/// This class extends the `EntropyGenerator` class and is specific to BIP39 +/// entropy generation. It allows for creating an instance with a specific +/// BIP39 entropy bit length. +class Bip39EntropyGenerator extends EntropyGenerator { + /// Create a BIP39 entropy generator with the specified bit length. + /// + /// - [bitLen]: The bit length of the BIP39 entropy to generate. + Bip39EntropyGenerator(Bip39EntropyBitLen bitLen) : super(bitLen.value); + + /// Check if a given bit length is a valid BIP39 entropy bit length. + /// + /// - [bitLen]: The bit length to check for validity. + /// - Returns: `true` if the bit length is valid, `false` otherwise. + static bool isValidEntropyBitLen(int bitLen) { + try { + Bip39EntropyBitLen.values + .firstWhere((element) => element.value == bitLen); + return true; + } on StateError { + return false; + } + } + + /// Check if a given byte length is a valid BIP39 entropy byte length. + /// + /// - [byteLen]: The byte length to check for validity. + /// - Returns: `true` if the byte length is valid, `false` otherwise. + static bool isValidEntropyByteLen(int byteLen) { + return isValidEntropyBitLen(byteLen * 8); + } +} diff --git a/lib/bip/bip/bip39/bip39_mnemonic.dart b/lib/bip/bip/bip39/bip39_mnemonic.dart new file mode 100644 index 0000000..835d9a7 --- /dev/null +++ b/lib/bip/bip/bip39/bip39_mnemonic.dart @@ -0,0 +1,113 @@ +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; +import 'word_list/languages.dart' as languages; + +/// Enumeration representing the number of words in a BIP-39 mnemonic phrase. +/// +/// BIP-39 defines standard word lengths of 12, 15, 18, 21, and 24 words for +/// mnemonic phrases used in mnemonic-based seed generation. +enum Bip39WordsNum { + /// 12 words + wordsNum12(12), + + /// 15 words + wordsNum15(15), + + /// 18 words + wordsNum18(18), + + /// 21 words + wordsNum21(21), + + /// 24 words + wordsNum24(24); + + final int value; + + /// Create an instance of the Bip39WordsNum with the specified numeric value. + const Bip39WordsNum(this.value); +} + +/// Enumeration representing the supported languages for BIP-39 mnemonic phrases. +/// +/// BIP-39 allows mnemonic phrases to be generated in various languages. +enum Bip39Languages implements MnemonicLanguages { + /// Chinese (Simplified) + chineseSimplified, + + /// Chinese (Traditional) + chineseTraditional, + + /// Czech + czech, + + /// English + english, + + /// French + french, + + /// Italian + italian, + + /// Korean + korean, + + /// Portuguese + portuguese, + + /// Japanese + japanese, + + /// Spanish + spanish; + + /// accsess to language list + @override + List get languageValues => values; + + /// accsess to words list + @override + List get wordList { + return languages.bip39WordList(this); + } +} + +/// Constants related to BIP-39 mnemonics, including word counts and word list properties. +class Bip39MnemonicConst { + static final List mnemonicWordNum = [ + /// 12 words + Bip39WordsNum.wordsNum12, + + /// 15 words + Bip39WordsNum.wordsNum15, + + /// 18 words + Bip39WordsNum.wordsNum18, + + /// 21 words + Bip39WordsNum.wordsNum21, + + /// 24 words + Bip39WordsNum.wordsNum24, + ]; + + /// Number of words in the BIP-39 word list. + static const int wordsListNum = 2048; + + /// Bit length for each BIP-39 word. + static const int wordBitLen = 11; +} + +/// BIP-39 mnemonic phrase representation. +/// +/// This class provides methods for creating BIP-39 mnemonics from strings and lists of words. +class Bip39Mnemonic extends Mnemonic { + /// Constructs a BIP-39 mnemonic from a mnemonic phrase provided as a string. + /// This constructor initializes a BIP-39 mnemonic object by parsing the input string. + Bip39Mnemonic.fromString(String mnemonic) : super.fromString(mnemonic); + + /// Constructs a BIP-39 mnemonic from a list of words. + /// This constructor initializes a BIP-39 mnemonic object using a list of BIP-39 words. + Bip39Mnemonic.fromList(List mnemonic) : super.fromList(mnemonic); +} diff --git a/lib/bip/bip/bip39/bip39_mnemonic_decoder.dart b/lib/bip/bip/bip39/bip39_mnemonic_decoder.dart new file mode 100644 index 0000000..7137967 --- /dev/null +++ b/lib/bip/bip/bip39/bip39_mnemonic_decoder.dart @@ -0,0 +1,160 @@ +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_utils.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_decoder_base.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_ex.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; + +/// BIP39 (Bitcoin Improvement Proposal 39) mnemonic decoder class. +/// +/// The [Bip39MnemonicDecoder] class is responsible for decoding a BIP39 mnemonic +/// phrase into its original binary entropy form. It extends the abstract +/// [MnemonicDecoderBase] class and provides an implementation specific to BIP39. +/// +/// To use this class, create an instance with the desired [language] and then +/// call the [decode] method with a BIP39 mnemonic phrase as input. It returns +/// the decoded binary entropy as a [List]. +/// +/// Example usage: +/// +/// ```dart +/// final mnemonic = Bip39Mnemonic.fromString("your BIP39 mnemonic phrase here"); +/// final decoder = Bip39MnemonicDecoder(Bip39Languages.english); +/// final entropy = decoder.decode(mnemonic.toStr()); +/// ``` +class Bip39MnemonicDecoder extends MnemonicDecoderBase { + /// Constructor for [Bip39MnemonicDecoder] class. + /// + /// Creates an instance of the [Bip39MnemonicDecoder] class with an optional + /// [language] parameter, which specifies the language used for BIP39 mnemonics. + /// If no [language] is provided, it defaults to [Bip39Languages.english]. + /// + /// The constructor initializes the decoder with the appropriate [language], + /// [wordsListFinder], and [wordsListGetter] for BIP39 mnemonics. + /// + /// Example usage: + /// + /// ```dart + /// final decoder = Bip39MnemonicDecoder(Bip39Languages.spanish); + /// final entropy = decoder.decode("your BIP39 mnemonic phrase here"); + /// ``` + /// + /// Parameters: + /// - [language]: The language for BIP39 mnemonics) + Bip39MnemonicDecoder([Bip39Languages? language]) + : super( + language: language, + wordsListFinder: Bip39WordsListFinder(), + wordsListGetter: Bip39WordsListGetter()); + + /// Decode a BIP39 mnemonic phrase to obtain the entropy bytes. + /// + /// This method takes a BIP39 [mnemonic] phrase, decodes it into binary form, + /// and returns the corresponding entropy bytes as a [List]. + /// + /// Parameters: + /// - [mnemonic]: The BIP39 mnemonic phrase to decode. + /// + /// Example usage: + /// + /// ```dart + /// final decoder = Bip39MnemonicDecoder(); + /// final entropy = decoder.decode("your BIP39 mnemonic phrase here"); + /// ``` + /// + /// Returns: + /// A [List] containing the decoded entropy bytes. + @override + List decode(String mnemonic) { + final mnemonicBinStr = _decodeAndVerifyBinaryStr(mnemonic); + return _entropyBytesFromBinaryStr(mnemonicBinStr); + } + + /// Decode a BIP39 mnemonic phrase to obtain the entropy bytes with checksum. + /// + /// This method is similar to [decode], but it ensures that the mnemonic bit length is a multiple + /// of 8 by zero-padding. It then returns the corresponding entropy bytes as a [List]. + /// + /// Parameters: + /// - [mnemonic]: The BIP39 mnemonic phrase to decode. + /// + /// Example usage: + /// + /// ```dart + /// final decoder = Bip39MnemonicDecoder(); + /// final entropy = decoder.decodeWithChecksum("your BIP39 mnemonic phrase here"); + /// ``` + /// + /// Returns: + /// A [List] containing the decoded entropy bytes with zero-padding. + List decodeWithChecksum(String mnemonic) { + final mnemonicBinStr = _decodeAndVerifyBinaryStr(mnemonic); + final mnemonicBitLen = mnemonicBinStr.length; + final padBitLen = mnemonicBitLen % 8 == 0 + ? mnemonicBitLen + : mnemonicBitLen + (8 - mnemonicBitLen % 8); + return BytesUtils.fromBinary(mnemonicBinStr, + zeroPadByteLen: padBitLen ~/ 4); + } + + /// decode and verify mnemonic + String _decodeAndVerifyBinaryStr(String mnemonic) { + final mnemonicObj = Bip39Mnemonic.fromString(mnemonic); + final wCount = mnemonicObj.wordsCount(); + try { + Bip39MnemonicConst.mnemonicWordNum + .firstWhere((element) => element.value == wCount); + } on StateError { + throw ArgumentError('Mnemonic words count is not valid ($wCount)'); + } + final wordsList = findLanguage(mnemonicObj).$1; + final mnemonicBinStr = _mnemonicToBinaryStr(mnemonicObj, wordsList); + final checksumBinStr = mnemonicBinStr + .substring(mnemonicBinStr.length - _getChecksumLen(mnemonicBinStr)); + final checksumBinStrGot = _computeChecksumBinaryStr(mnemonicBinStr); + if (checksumBinStr != checksumBinStrGot) { + throw MnemonicChecksumError( + 'Invalid checksum (expected $checksumBinStr, got $checksumBinStrGot)'); + } + + return mnemonicBinStr; + } + + /// compute checksum + String _computeChecksumBinaryStr(String mnemonicBinStr) { + final entropyBytes = _entropyBytesFromBinaryStr(mnemonicBinStr); + final entropyHashBinStr = BytesUtils.toBinary( + QuickCrypto.sha256Hash(entropyBytes), + zeroPadBitLen: QuickCrypto.sha256DigestSize * 8); + return entropyHashBinStr.substring(0, _getChecksumLen(mnemonicBinStr)); + } + + /// entropy from binary + List _entropyBytesFromBinaryStr(String mnemonicBinStr) { + final checksumLen = _getChecksumLen(mnemonicBinStr); + final entropyBinStr = + mnemonicBinStr.substring(0, mnemonicBinStr.length - checksumLen); + + final re = + BytesUtils.fromBinary(entropyBinStr, zeroPadByteLen: checksumLen * 8); + return re; + } + + /// mnemonic to binary + String _mnemonicToBinaryStr(Mnemonic mnemonic, MnemonicWordsList wordsList) { + final mnemonicBinStr = mnemonic.toList().map((word) { + final wordIdx = wordsList.getWordIdx(word); + return BigintUtils.toBinary( + BigInt.from(wordIdx), Bip39MnemonicConst.wordBitLen); + }).join(); + return mnemonicBinStr; + } + + /// checksum length + int _getChecksumLen(String mnemonicBinStr) { + return mnemonicBinStr.length ~/ 33; + } +} diff --git a/lib/bip/bip/bip39/bip39_mnemonic_encoder.dart b/lib/bip/bip/bip39/bip39_mnemonic_encoder.dart new file mode 100644 index 0000000..d70936e --- /dev/null +++ b/lib/bip/bip/bip39/bip39_mnemonic_encoder.dart @@ -0,0 +1,63 @@ +import 'package:blockchain_utils/bip/bip/bip39/bip39_entropy_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_utils.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_encoder_base.dart'; + +/// BIP39 Mnemonic Encoder for generating mnemonic phrases. +/// +/// This class is responsible for encoding entropy bytes into a BIP39 mnemonic phrase. +/// It implements the [MnemonicEncoderBase] abstract class. +/// +/// Example usage: +/// +/// ```dart +/// final entropy = List.from([/* your entropy bytes here */]); +/// final encoder = Bip39MnemonicEncoder(Bip39Languages.english); +/// final mnemonic = encoder.encode(entropy); +/// print("Generated BIP39 mnemonic phrase: $mnemonic"); +/// ``` +class Bip39MnemonicEncoder extends MnemonicEncoderBase { + /// Create a new instance of the BIP39 Mnemonic Encoder. + /// + /// Parameters: + /// - [language]: The language used for generating the mnemonic phrase. + Bip39MnemonicEncoder([Bip39Languages language = Bip39Languages.english]) + : super(language, Bip39WordsListGetter()); + + /// Encode the provided entropy bytes into a BIP39 mnemonic phrase. + /// + /// Parameters: + /// - [entropyBytes]: The entropy bytes to encode into a mnemonic phrase. + /// + /// Returns: + /// A BIP39 mnemonic phrase representing the given entropy. + @override + Bip39Mnemonic encode(List entropyBytes) { + final entropyByteLen = entropyBytes.length; + if (!Bip39EntropyGenerator.isValidEntropyByteLen(entropyByteLen)) { + throw ArgumentError('Entropy byte length ($entropyByteLen) is not valid'); + } + + final entropyBinStr = + BytesUtils.toBinary(entropyBytes, zeroPadBitLen: entropyByteLen * 8); + final entropyHash = QuickCrypto.sha256Hash(entropyBytes); + final entropyHashBinStr = BytesUtils.toBinary(entropyHash, + zeroPadBitLen: QuickCrypto.sha256DigestSize * 8); + final mnemonicBinStr = + entropyBinStr + entropyHashBinStr.substring(0, entropyByteLen ~/ 4); + final mnemonic = []; + for (var i = 0; + i < mnemonicBinStr.length; + i += Bip39MnemonicConst.wordBitLen) { + final wordBinStr = + mnemonicBinStr.substring(i, i + Bip39MnemonicConst.wordBitLen); + + final wordIdx = int.parse(wordBinStr, radix: 2); + mnemonic.add(wordsList.getWordAtIdx(wordIdx)); + } + + return Bip39Mnemonic.fromList(mnemonic); + } +} diff --git a/lib/bip/bip/bip39/bip39_mnemonic_generator.dart b/lib/bip/bip/bip39/bip39_mnemonic_generator.dart new file mode 100644 index 0000000..c26dc3f --- /dev/null +++ b/lib/bip/bip/bip39/bip39_mnemonic_generator.dart @@ -0,0 +1,76 @@ +import 'package:blockchain_utils/bip/bip/bip39/bip39_entropy_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_encoder.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; + +/// BIP39 Mnemonic Generator for generating mnemonic phrases. +/// +/// This class provides the functionality to generate BIP39 mnemonic phrases from either +/// the number of words or entropy bytes. It utilizes the [Bip39MnemonicEncoder] for encoding. +/// +/// Example usage: +/// +/// ```dart +/// final generator = Bip39MnemonicGenerator(Bip39Languages.english); +/// +/// // Generate a BIP39 mnemonic phrase from the number of words (e.g., 12 words). +/// final mnemonic12Words = generator.fromWordsNumber(Bip39WordsNum.wordsNum12); +/// +/// // Generate a BIP39 mnemonic phrase from entropy bytes. +/// final entropy = List.from([/* your entropy bytes here */]); +/// final mnemonicFromEntropy = generator.fromEntropy(entropy); +/// +/// print("Generated BIP39 mnemonic (12 words): $mnemonic12Words"); +/// print("Generated BIP39 mnemonic from entropy: $mnemonicFromEntropy"); +/// ``` +class Bip39MnemonicGenerator { + final Bip39MnemonicEncoder _mnemonicEncoder; + + /// Create a new instance of the BIP39 Mnemonic Generator. + /// + /// Parameters: + /// - [language]: The language used for generating the mnemonic phrase. + Bip39MnemonicGenerator([Bip39Languages language = Bip39Languages.english]) + : _mnemonicEncoder = Bip39MnemonicEncoder(language); + + /// Generate a BIP39 mnemonic phrase from the specified number of words. + /// + /// Parameters: + /// - [wordsNum]: The number of words to use in the mnemonic (e.g., Bip39WordsNum.wordsNum12). + /// + /// Returns: + /// A BIP39 mnemonic phrase representing the specified number of words. + Mnemonic fromWordsNumber(Bip39WordsNum wordsNum) { + final Bip39EntropyBitLen entropyBitLen = + _entropyBitLenFromWordsNum(wordsNum.value); + final List entropyBytes = + Bip39EntropyGenerator(entropyBitLen).generate(); + + return fromEntropy(entropyBytes); + } + + /// Generate a BIP39 mnemonic phrase from the provided entropy bytes. + /// + /// Parameters: + /// - [entropyBytes]: The entropy bytes to encode into a mnemonic phrase. + /// + /// Returns: + /// A BIP39 mnemonic phrase representing the given entropy. + Mnemonic fromEntropy(List entropyBytes) { + return _mnemonicEncoder.encode(entropyBytes); + } + + /// Calculate the entropy bit length from the number of words. + /// + /// Parameters: + /// - [wordsNum]: The number of words for the mnemonic. + /// + /// Returns: + /// The corresponding entropy bit length. + Bip39EntropyBitLen _entropyBitLenFromWordsNum(int wordsNum) { + final bitLen = (wordsNum * Bip39MnemonicConst.wordBitLen) - (wordsNum ~/ 3); + + return Bip39EntropyBitLen.values + .firstWhere((element) => element.value == bitLen); + } +} diff --git a/lib/bip/bip/bip39/bip39_mnemonic_utils.dart b/lib/bip/bip/bip39/bip39_mnemonic_utils.dart new file mode 100644 index 0000000..68b4cbd --- /dev/null +++ b/lib/bip/bip/bip39/bip39_mnemonic_utils.dart @@ -0,0 +1,49 @@ +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; + +import 'bip39_mnemonic.dart'; + +/// Retrieves a list of BIP39 words based on the specified language. +/// +/// This class is responsible for fetching the list of BIP39 words for a given +/// language, such as Bip39Languages. It implements the [MnemonicWordsListGetterBase] +/// interface and provides a way to retrieve the word list based on the selected language. +class Bip39WordsListGetter extends MnemonicWordsListGetterBase { + /// get menemonic language words list + @override + MnemonicWordsList getByLanguage(MnemonicLanguages language) { + if (language is! Bip39Languages && + language is! AlgorandLanguages && + language is! ElectrumV2Languages) { + throw ArgumentError("Language is not an enumerative of Bip39Languages"); + } + return loadWordsList(language, Bip39MnemonicConst.wordsListNum); + } +} + +/// Finds the language of a BIP39 mnemonic based on the words used. +/// +/// This class is responsible for identifying the language of a BIP39 mnemonic +/// based on the words it contains. It implements the [MnemonicWordsListFinderBase] +/// interface. It iterates through supported languages and checks if the words +/// in the mnemonic match any of the languages' word lists. +class Bip39WordsListFinder extends MnemonicWordsListFinderBase { + /// find language by mnemonic + @override + (MnemonicWordsList, MnemonicLanguages) findLanguage(Mnemonic mnemonic) { + for (final lang in Bip39Languages.values) { + final wordsList = MnemonicWordsList(lang.wordList); + try { + for (final word in mnemonic.toList()) { + wordsList.getWordIdx(word); + } + return (wordsList, lang); + } on StateError { + continue; + } + } + throw StateError("cannot find language for ${mnemonic.toStr()}"); + } +} diff --git a/lib/bip/bip/bip39/bip39_mnemonic_validator.dart b/lib/bip/bip/bip39/bip39_mnemonic_validator.dart new file mode 100644 index 0000000..6989e92 --- /dev/null +++ b/lib/bip/bip/bip39/bip39_mnemonic_validator.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_validator.dart'; + +/// Validates BIP39 mnemonics based on a specified language. +/// +/// The `Bip39MnemonicValidator` class is responsible for validating BIP39 mnemonics +/// by using the `Bip39MnemonicDecoder` for decoding and checking the correctness of +/// the mnemonic phrase. It ensures that the provided mnemonic follows the specified +/// language's word list and can be successfully decoded. +/// The [isValid] method can be used to check the validity of a given +/// mnemonic phrase. +class Bip39MnemonicValidator extends MnemonicValidator { + /// Creates a new instance of the Bip39MnemonicValidator. + /// + /// The [language] parameter specifies the language used for the word list. + Bip39MnemonicValidator([Bip39Languages? language]) + : super(Bip39MnemonicDecoder(language)); +} diff --git a/lib/bip/bip/bip39/bip39_seed_generator.dart b/lib/bip/bip/bip39/bip39_seed_generator.dart new file mode 100644 index 0000000..2e76a6c --- /dev/null +++ b/lib/bip/bip/bip39/bip39_seed_generator.dart @@ -0,0 +1,47 @@ +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_validator.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// Constants related to Bip39 seed generation. +class Bip39SeedGeneratorConst { + /// The modification string used as part of the seed salt. + static const String seedSaltMod = "mnemonic"; + + /// The number of PBKDF2 rounds used in the seed derivation process. + static const int seedPbkdf2Rounds = 2048; +} + +/// Generates a seed from a Bip39 mnemonic. +/// +/// This class allows you to generate a seed from a Bip39 mnemonic, taking an +/// optional passphrase into account. It validates the mnemonic before +/// generating the seed. +class Bip39SeedGenerator { + /// Initializes a new instance of the Bip39SeedGenerator. + /// + /// The [mnemonic] parameter represents the Bip39 mnemonic to be used for seed generation. + Bip39SeedGenerator(this.mnemonic) { + /// Validate the provided Bip39 mnemonic. + Bip39MnemonicValidator().validate(mnemonic.toStr()); + } + final Mnemonic mnemonic; + + /// Generates a seed from the Bip39 mnemonic. + /// + /// Optionally, a [passphrase] can be provided to further secure the seed generation. + /// + /// Example usage: + /// ```dart + /// final seedGenerator = Bip39SeedGenerator(mnemonic); + /// final seed = seedGenerator.generate("my_passphrase"); + /// ``` + List generate([String passphrase = ""]) { + final salt = Bip39SeedGeneratorConst.seedSaltMod + passphrase; + return QuickCrypto.pbkdf2DeriveKey( + password: StringUtils.encode(mnemonic.toStr()), + salt: StringUtils.encode(salt), + iterations: Bip39SeedGeneratorConst.seedPbkdf2Rounds, + ); + } +} diff --git a/lib/bip39/load_languages/chinese_simplified.dart b/lib/bip/bip/bip39/word_list/chinese_simplified.dart similarity index 99% rename from lib/bip39/load_languages/chinese_simplified.dart rename to lib/bip/bip/bip39/word_list/chinese_simplified.dart index ab83a6a..b7d1300 100644 --- a/lib/bip39/load_languages/chinese_simplified.dart +++ b/lib/bip/bip/bip39/word_list/chinese_simplified.dart @@ -1,5 +1,7 @@ +part of 'package:blockchain_utils/bip/bip/bip39/word_list/languages.dart'; + /// Chinese (Simplified) -const List chineseSimplified = [ +const List _chineseSimplified = [ "的", "一", "是", diff --git a/lib/bip39/load_languages/chinese_traditional.dart b/lib/bip/bip/bip39/word_list/chinese_traditional.dart similarity index 99% rename from lib/bip39/load_languages/chinese_traditional.dart rename to lib/bip/bip/bip39/word_list/chinese_traditional.dart index f58e215..ea409a9 100644 --- a/lib/bip39/load_languages/chinese_traditional.dart +++ b/lib/bip/bip/bip39/word_list/chinese_traditional.dart @@ -1,5 +1,7 @@ +part of 'package:blockchain_utils/bip/bip/bip39/word_list/languages.dart'; + /// Chinese (Traditional) -const List chineseTraditional = [ +const List _chineseTraditional = [ "的", "一", "是", diff --git a/lib/bip39/load_languages/czech.dart b/lib/bip/bip/bip39/word_list/czech.dart similarity index 99% rename from lib/bip39/load_languages/czech.dart rename to lib/bip/bip/bip39/word_list/czech.dart index cbd6df0..4879973 100644 --- a/lib/bip39/load_languages/czech.dart +++ b/lib/bip/bip/bip39/word_list/czech.dart @@ -1,5 +1,7 @@ +part of 'package:blockchain_utils/bip/bip/bip39/word_list/languages.dart'; + /// Czech -const List czech = [ +const List _czech = [ "abdikace", "abeceda", "adresa", diff --git a/lib/bip39/load_languages/english.dart b/lib/bip/bip/bip39/word_list/english.dart similarity index 99% rename from lib/bip39/load_languages/english.dart rename to lib/bip/bip/bip39/word_list/english.dart index ae35b1e..31c8508 100644 --- a/lib/bip39/load_languages/english.dart +++ b/lib/bip/bip/bip39/word_list/english.dart @@ -1,5 +1,7 @@ +part of 'package:blockchain_utils/bip/bip/bip39/word_list/languages.dart'; + /// English -final List english = [ +final List _english = [ "abandon", "ability", "able", diff --git a/lib/bip39/load_languages/french.dart b/lib/bip/bip/bip39/word_list/french.dart similarity index 99% rename from lib/bip39/load_languages/french.dart rename to lib/bip/bip/bip39/word_list/french.dart index 6198928..9247ad3 100644 --- a/lib/bip39/load_languages/french.dart +++ b/lib/bip/bip/bip39/word_list/french.dart @@ -1,5 +1,7 @@ +part of 'package:blockchain_utils/bip/bip/bip39/word_list/languages.dart'; + /// French -const List french = [ +const List _french = [ "abaisser", "abandon", "abdiquer", diff --git a/lib/bip39/load_languages/italian.dart b/lib/bip/bip/bip39/word_list/italian.dart similarity index 99% rename from lib/bip39/load_languages/italian.dart rename to lib/bip/bip/bip39/word_list/italian.dart index 5808702..61348b9 100644 --- a/lib/bip39/load_languages/italian.dart +++ b/lib/bip/bip/bip39/word_list/italian.dart @@ -1,5 +1,7 @@ +part of 'package:blockchain_utils/bip/bip/bip39/word_list/languages.dart'; + /// Italian -const List italian = [ +const List _italian = [ "abaco", "abbaglio", "abbinato", diff --git a/lib/bip39/load_languages/japanese.dart b/lib/bip/bip/bip39/word_list/japanese.dart similarity index 99% rename from lib/bip39/load_languages/japanese.dart rename to lib/bip/bip/bip39/word_list/japanese.dart index 8fdcbe4..0583d18 100644 --- a/lib/bip39/load_languages/japanese.dart +++ b/lib/bip/bip/bip39/word_list/japanese.dart @@ -1,5 +1,7 @@ +part of 'package:blockchain_utils/bip/bip/bip39/word_list/languages.dart'; + /// Japanese -const List japanese = [ +const List _japanese = [ "あいこくしん", "あいさつ", "あいだ", diff --git a/lib/bip39/load_languages/korean.dart b/lib/bip/bip/bip39/word_list/korean.dart similarity index 99% rename from lib/bip39/load_languages/korean.dart rename to lib/bip/bip/bip39/word_list/korean.dart index eae7f7f..d3285ef 100644 --- a/lib/bip39/load_languages/korean.dart +++ b/lib/bip/bip/bip39/word_list/korean.dart @@ -1,5 +1,7 @@ +part of 'package:blockchain_utils/bip/bip/bip39/word_list/languages.dart'; + /// Korean -const List korean = [ +const List _korean = [ "가격", "가끔", "가난", diff --git a/lib/bip/bip/bip39/word_list/languages.dart b/lib/bip/bip/bip39/word_list/languages.dart new file mode 100644 index 0000000..1740a57 --- /dev/null +++ b/lib/bip/bip/bip39/word_list/languages.dart @@ -0,0 +1,65 @@ +/// The `bip39_menemonic_languages` library provides a collection of mnemonic word lists +/// for different languages as defined in BIP-39 (Bitcoin Improvement Proposal 39). +/// These word lists are used for creating and recovering cryptocurrency wallets. + +library bip39_menemonic_languages; + +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic.dart'; + +/// Part for the Chinese Simplified BIP-39 mnemonic word list. +part 'chinese_simplified.dart'; + +/// Part for the Chinese Traditional BIP-39 mnemonic word list. +part 'chinese_traditional.dart'; + +/// Part for the English BIP-39 mnemonic word list. +part 'english.dart'; + +/// Part for the Spanish BIP-39 mnemonic word list. +part 'spanish.dart'; + +/// Part for the Czech BIP-39 mnemonic word list. +part 'czech.dart'; + +/// Part for the French BIP-39 mnemonic word list. +part 'french.dart'; + +/// Part for the Italian BIP-39 mnemonic word list. +part 'italian.dart'; + +/// Part for the Japanese BIP-39 mnemonic word list. +part 'japanese.dart'; + +/// Part for the Korean BIP-39 mnemonic word list. +part 'korean.dart'; + +/// Part for the Portuguese BIP-39 mnemonic word list. +part 'portuguese.dart'; + +/// Returns the BIP-39 word list for the specified language. +List bip39WordList(Bip39Languages language) { + switch (language) { + case Bip39Languages.english: + return _english; + case Bip39Languages.spanish: + return _spanish; + case Bip39Languages.portuguese: + return _portuguese; + case Bip39Languages.korean: + return _korean; + case Bip39Languages.japanese: + return _japanese; + case Bip39Languages.italian: + return _italian; + case Bip39Languages.french: + return _french; + case Bip39Languages.czech: + return _czech; + case Bip39Languages.chineseTraditional: + return _chineseTraditional; + case Bip39Languages.chineseSimplified: + return _chineseSimplified; + default: + return _english; + } +} diff --git a/lib/bip39/load_languages/portuguese.dart b/lib/bip/bip/bip39/word_list/portuguese.dart similarity index 99% rename from lib/bip39/load_languages/portuguese.dart rename to lib/bip/bip/bip39/word_list/portuguese.dart index a17e470..ed75f60 100644 --- a/lib/bip39/load_languages/portuguese.dart +++ b/lib/bip/bip/bip39/word_list/portuguese.dart @@ -1,5 +1,7 @@ +part of 'package:blockchain_utils/bip/bip/bip39/word_list/languages.dart'; + /// Portuguese -final List portuguese = [ +final List _portuguese = [ "abacate", "abaixo", "abalar", diff --git a/lib/bip39/load_languages/spanish.dart b/lib/bip/bip/bip39/word_list/spanish.dart similarity index 99% rename from lib/bip39/load_languages/spanish.dart rename to lib/bip/bip/bip39/word_list/spanish.dart index efac27d..6d47879 100644 --- a/lib/bip39/load_languages/spanish.dart +++ b/lib/bip/bip/bip39/word_list/spanish.dart @@ -1,5 +1,7 @@ +part of 'package:blockchain_utils/bip/bip/bip39/word_list/languages.dart'; + /// Spanish -final List spanish = [ +final List _spanish = [ "ábaco", "abdomen", "abeja", diff --git a/lib/bip/bip/bip44/base/bip44_base.dart b/lib/bip/bip/bip44/base/bip44_base.dart new file mode 100644 index 0000000..418acae --- /dev/null +++ b/lib/bip/bip/bip44/base/bip44_base.dart @@ -0,0 +1,256 @@ +import 'package:blockchain_utils/bip/bip/bip32/base/bip32_base.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_ex.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/khalow/bip32_kholaw_ed25519.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_ed25519.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_ed25519_blake2b.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_nist256p1.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_secp256k1.dart'; +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base_ex.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coin_conf.dart'; +import 'package:blockchain_utils/bip/cardano/bip32/cardano_icarus_bip32.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; + +import 'bip44_keys.dart'; + +/// Enumeration of BIP-44 changes (external and internal). +enum Bip44Changes { + /// External chain for receiving funds + chainExt(0), + + /// Internal chain for change addresses + chainInt(1); + + final int value; + const Bip44Changes(this.value); +} + +/// Enumeration of BIP-44 levels in hierarchical deterministic wallets. +enum Bip44Levels { + /// Master level + master(0), + + /// Purpose level + purpose(1), + + /// Coin level + coin(2), + + /// Account level + account(3), + + /// Change level (external/internal) + change(4), + + /// Address index level + addressIndex(5); + + final int value; + const Bip44Levels(this.value); + + /// Factory method to create a [Bip44Levels] enum value from an integer. + factory Bip44Levels.fromInt(int value) { + return values.firstWhere((e) => e.value == value); + } +} + +/// Abstract base class for BIP-44 hierarchical deterministic wallets. +abstract class Bip44Base { + late final Bip32Base bip32; + late final BipCoinConf coinConf; + + /// Constructor for creating a [Bip44Base] object from a seed and coin. + Bip44Base.fromSeed(List seedBytes, BipCoinConf coin) { + Bip32Base bip; + switch (coin.type) { + case EllipticCurveTypes.secp256k1: + bip = Bip32Slip10Secp256k1.fromSeed(seedBytes, coin.keyNetVer); + case EllipticCurveTypes.ed25519: + bip = Bip32Slip10Ed25519.fromSeed(seedBytes, coin.keyNetVer); + case EllipticCurveTypes.ed25519Kholaw: + if (coin.addrParams["is_icarus"] == true) { + bip = CardanoIcarusBip32.fromSeed(seedBytes, coin.keyNetVer); + break; + } + bip = Bip32KholawEd25519.fromSeed(seedBytes, coin.keyNetVer); + case EllipticCurveTypes.ed25519Blake2b: + bip = Bip32Slip10Ed25519Blake2b.fromSeed(seedBytes, coin.keyNetVer); + case EllipticCurveTypes.nist256p1: + bip = Bip32Slip10Nist256p1.fromSeed(seedBytes, coin.keyNetVer); + default: + throw ArgumentError("invaid type"); + } + final validate = _validate(bip, coin); + bip32 = validate.$1; + coinConf = validate.$2; + } + + /// Constructor for creating a [Bip44Base] object from a extended key and coin. + Bip44Base.fromExtendedKey(String extendedKey, BipCoinConf coin) { + Bip32Base bip; + + switch (coin.type) { + case EllipticCurveTypes.secp256k1: + bip = Bip32Slip10Secp256k1.fromExtendedKey(extendedKey, coin.keyNetVer); + case EllipticCurveTypes.ed25519: + bip = Bip32Slip10Ed25519.fromExtendedKey(extendedKey, coin.keyNetVer); + case EllipticCurveTypes.ed25519Kholaw: + if (coin.addrParams["is_icarus"] == true) { + bip = CardanoIcarusBip32.fromExtendedKey(extendedKey, coin.keyNetVer); + break; + } + bip = Bip32KholawEd25519.fromExtendedKey(extendedKey, coin.keyNetVer); + case EllipticCurveTypes.ed25519Blake2b: + bip = Bip32Slip10Ed25519Blake2b.fromExtendedKey( + extendedKey, coin.keyNetVer); + case EllipticCurveTypes.nist256p1: + bip = Bip32Slip10Nist256p1.fromExtendedKey(extendedKey, coin.keyNetVer); + default: + throw ArgumentError("invaid type"); + } + final validate = _validate(bip, coin); + bip32 = validate.$1; + coinConf = validate.$2; + } + + /// Constructor for creating a [Bip44Base] object from a private key and coin. + Bip44Base.fromPrivateKey(List privateKeyBytes, BipCoinConf coin, + {Bip32KeyData? keyData}) { + Bip32Base bip; + switch (coin.type) { + case EllipticCurveTypes.secp256k1: + bip = Bip32Slip10Secp256k1.fromPrivateKey(privateKeyBytes, + keyData: keyData, keyNetVer: coin.keyNetVer); + case EllipticCurveTypes.ed25519: + bip = Bip32Slip10Ed25519.fromPrivateKey(privateKeyBytes, + keyData: keyData, keyNetVer: coin.keyNetVer); + case EllipticCurveTypes.ed25519Kholaw: + if (coin.addrParams["is_icarus"] == true) { + bip = CardanoIcarusBip32.fromPrivateKey(privateKeyBytes, + keyData: keyData, keyNetVer: coin.keyNetVer); + break; + } + bip = Bip32KholawEd25519.fromPrivateKey(privateKeyBytes, + keyData: keyData, keyNetVer: coin.keyNetVer); + case EllipticCurveTypes.ed25519Blake2b: + bip = Bip32Slip10Ed25519Blake2b.fromPrivateKey(privateKeyBytes, + keyData: keyData, keyNetVer: coin.keyNetVer); + case EllipticCurveTypes.nist256p1: + bip = Bip32Slip10Nist256p1.fromPrivateKey(privateKeyBytes, + keyData: keyData, keyNetVer: coin.keyNetVer); + default: + throw ArgumentError("invaid type"); + } + final validate = _validate(bip, coin); + bip32 = validate.$1; + coinConf = validate.$2; + } + + /// Constructor for creating a [Bip44Base] object from a public key and coin. + Bip44Base.fromPublicKey(List pubkeyBytes, BipCoinConf coin, + {Bip32KeyData? keyData}) { + Bip32Base bip; + switch (coin.type) { + case EllipticCurveTypes.secp256k1: + bip = Bip32Slip10Secp256k1.fromPublicKey(pubkeyBytes, + keyData: keyData, keyNetVer: coin.keyNetVer); + case EllipticCurveTypes.ed25519: + bip = Bip32Slip10Ed25519.fromPublicKey(pubkeyBytes, + keyData: keyData, keyNetVer: coin.keyNetVer); + case EllipticCurveTypes.ed25519Blake2b: + bip = Bip32Slip10Ed25519Blake2b.fromPublicKey(pubkeyBytes, + keyData: keyData, keyNetVer: coin.keyNetVer); + case EllipticCurveTypes.ed25519Kholaw: + if (coin.addrParams["is_icarus"] == true) { + bip = CardanoIcarusBip32.fromPublicKey(pubkeyBytes, + keyData: keyData, keyNetVer: coin.keyNetVer); + break; + } + bip = Bip32KholawEd25519.fromPublicKey(pubkeyBytes, + keyData: keyData, keyNetVer: coin.keyNetVer); + case EllipticCurveTypes.nist256p1: + bip = Bip32Slip10Nist256p1.fromPublicKey(pubkeyBytes, + keyData: keyData, keyNetVer: coin.keyNetVer); + default: + throw ArgumentError("invaid type"); + } + final validate = _validate(bip, coin); + bip32 = validate.$1; + coinConf = validate.$2; + } + + /// Internal validation method for checking the depth of the BIP object. + static (Bip32Base, BipCoinConf) _validate( + Bip32Base bip32Obj, BipCoinConf coinConf) { + int depth = bip32Obj.depth.depth; + + if (bip32Obj.isPublicOnly) { + if (depth < Bip44Levels.account.value || + depth > Bip44Levels.addressIndex.value) { + throw Bip44DepthError( + "Depth of the public-only Bip object ($depth) is below account level or beyond address index level"); + } + } else { + if (depth < 0 || depth > Bip44Levels.addressIndex.value) { + throw Bip44DepthError( + "Depth of the Bip object ($depth) is invalid or beyond address index level"); + } + } + + return (bip32Obj, coinConf); + } + + /// Constructor for creating a [Bip44Base] object from a bip32 [Bip32Base] and coin [BipCoinConf]. + Bip44Base(this.bip32, this.coinConf) { + _validate(bip32, coinConf); + } + + /// [Bip44PublicKey] public key + Bip44PublicKey get publicKey { + return Bip44PublicKey(bip32.publicKey, coinConf); + } + + /// [Bip44PrivateKey] privatekey + Bip44PrivateKey get privateKey { + if (bip32.isPublicOnly) { + throw const Bip32KeyError("The Bip32 object is public-only"); + } + return Bip44PrivateKey(bip32.privateKey, coinConf); + } + + Bip32Base get bip32Object => bip32; + + /// check if is public only + bool get isPublicOnly => bip32.isPublicOnly; + + /// [Bip44Levels] level + Bip44Levels get level { + return Bip44Levels.fromInt(bip32.depth.depth); + } + + /// check level with current bip-44 level + bool isLevel(Bip44Levels level) { + return bip32.depth.depth == level.value; + } + + /// derive default path + Bip44Base get deriveDefaultPath; + + /// derive purpose + Bip44Base get purpose; + + /// derive coin + Bip44Base get coin; + + /// derive account with index + Bip44Base account(int accIndex); + + /// derive change with change type [Bip44Changes] internal or external + Bip44Base change(Bip44Changes changeType); + + /// derive address with index + Bip44Base addressIndex(int addressIndex); + + /// spec name + String get specName; +} diff --git a/lib/bip/bip/bip44/base/bip44_base_ex.dart b/lib/bip/bip/bip44/base/bip44_base_ex.dart new file mode 100644 index 0000000..fde0df9 --- /dev/null +++ b/lib/bip/bip/bip44/base/bip44_base_ex.dart @@ -0,0 +1,18 @@ +/// Custom exception for errors related to BIP-44 depth. +/// +/// This class, `Bip44DepthError`, represents a custom exception for handling +/// errors related to the BIP-44 hierarchical deterministic wallet structure's +/// depth. It can be thrown to indicate issues with depth levels in BIP-44 paths. +class Bip44DepthError implements Exception { + final String? message; + + /// Create a `Bip44DepthError` with an optional error message. + /// + /// - [message]: An optional error message to provide more context. + const Bip44DepthError([this.message]); + + @override + String toString() { + return message ?? super.toString(); + } +} diff --git a/lib/bip/bip/bip44/base/bip44_keys.dart b/lib/bip/bip/bip44/base/bip44_keys.dart new file mode 100644 index 0000000..6fb7787 --- /dev/null +++ b/lib/bip/bip/bip44/base/bip44_keys.dart @@ -0,0 +1,144 @@ +import 'package:blockchain_utils/bip/address/ada_shelley_addr.dart'; +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/address/xmr_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_keys.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coin_conf.dart'; +import 'package:blockchain_utils/bip/wif/wif.dart'; + +/// Represents a BIP44 public key for a specific cryptocurrency coin. This class +/// ensures that the elliptic curve type of the public key matches the coin's +/// configuration, and provides various utility methods for working with the +/// public key. +class Bip44PublicKey { + /// Private constructor for creating a [Bip44PublicKey]. + Bip44PublicKey._(this.pubKey, this.coinConf); + + /// The underlying BIP32 public key. + final Bip32PublicKey pubKey; + + /// The coin configuration associated with this public key. + final BipCoinConf coinConf; + + /// Factory constructor to create a [Bip44PublicKey] from a [Bip32PublicKey] + /// and a [BipCoinConf]. It verifies that the elliptic curve type of the public + /// key matches the coin's configuration. + factory Bip44PublicKey(Bip32PublicKey pubKey, BipCoinConf coinConf) { + if (pubKey.curveType != coinConf.type) { + throw ArgumentError( + 'The public key elliptic curve (${pubKey.curveType}) shall match ' + 'the coin configuration one (${coinConf.type})', + ); + } + return Bip44PublicKey._(pubKey, coinConf); + } + + /// Retrieves the underlying BIP32 public key. + Bip32PublicKey get key { + return pubKey; + } + + /// Gets the extended public key representation. + String get toExtended { + return pubKey.toExtended; + } + + /// Gets the chain code associated with the public key. + Bip32ChainCode get chainCode { + return pubKey.chainCode; + } + + /// Gets the compressed public key bytes. + List get compressed { + return pubKey.compressed; + } + + /// Gets the uncompressed public key bytes. + List get uncompressed { + return pubKey.uncompressed; + } + + /// Generates an address for this public key, using the provided [kwargs] + /// for additional parameters. The exact encoding method depends on the + /// coin configuration. An exception is thrown for special cases like Cardano + /// Shelley or Monero, which require using specific classes to generate + /// addresses. + String get toAddress { + BlockchainAddressEncoder encoder = coinConf.encoder(); + if (encoder is AdaShelleyAddrEncoder) { + throw ArgumentError( + 'Use the CardanoShelley class to get Cardano Shelley addresses'); + } + // Exception for Monero + if (encoder is XmrAddrEncoder) { + throw ArgumentError('Use the Monero class to get Monero addresses'); + } + return encoder.encodeKey( + pubKey.pubKey.compressed, coinConf.getParams(pubKey)); + } +} + +/// Represents a BIP44 private key for a specific cryptocurrency coin. This class +/// ensures that the elliptic curve type of the private key matches the coin's +/// configuration, and provides various utility methods for working with the +/// private key. +class Bip44PrivateKey { + /// Private constructor for creating a [Bip44PrivateKey]. + Bip44PrivateKey._(this.privKey, this.coinConf); + + /// The underlying BIP32 private key. + final Bip32PrivateKey privKey; + + /// The coin configuration associated with this private key. + final BipCoinConf coinConf; + + /// Factory constructor to create a [Bip44PrivateKey] from a [Bip32PrivateKey] + /// and a [BipCoinConf]. It verifies that the elliptic curve type of the private + /// key matches the coin's configuration. + factory Bip44PrivateKey(Bip32PrivateKey privKey, BipCoinConf coinConf) { + if (privKey.curveType != coinConf.type) { + throw ArgumentError( + 'The private key elliptic curve (${privKey.curveType}) shall match the coin configuration one (${coinConf.type})', + ); + } + return Bip44PrivateKey._(privKey, coinConf); + } + + /// Retrieves the underlying BIP32 private key. + Bip32PrivateKey get key { + return privKey; + } + + /// Gets the extended private key representation. + String get toExtended { + return privKey.toExtended; + } + + /// Gets the chain code associated with the private key. + Bip32ChainCode get chainCode { + return privKey.chainCode; + } + + /// Gets the raw private key bytes. + List get raw { + return privKey.raw; + } + + /// Gets the corresponding public key derived from this private key. + Bip44PublicKey get publicKey { + return Bip44PublicKey(privKey.publicKey, coinConf); + } + + /// Converts the private key to Wallet Import Format (WIF) with the specified + /// [pubKeyMode]. It uses the coin's configuration to determine the network + /// version. If the network version is not available, an empty string is + /// returned. + String toWif({WifPubKeyModes pubKeyMode = WifPubKeyModes.compressed}) { + final wifNetVer = coinConf.wifNetVer; + + return wifNetVer != null + ? WifEncoder.encode(privKey.raw, + netVer: wifNetVer, pubKeyMode: pubKeyMode) + : ''; + } +} diff --git a/lib/bip/bip/bip44/bip44.dart b/lib/bip/bip/bip44/bip44.dart new file mode 100644 index 0000000..16fda1c --- /dev/null +++ b/lib/bip/bip/bip44/bip44.dart @@ -0,0 +1,13 @@ +/// The 'bip44' library provides tools for working with BIP-44, a standard for +/// hierarchical deterministic wallets and key derivation in cryptocurrencies. +library bip44; + +/// Export statement for the base BIP-44 implementation and key-related functions. +export 'base/bip44_base.dart'; + +/// Export statement for BIP-44 key-related functions and structures. +export 'base/bip44_keys.dart'; + +/// Export statement for the BIP-44 base implementation, which includes key +/// derivation and wallet management functions. +export 'bip44_base.dart'; diff --git a/lib/bip/bip/bip44/bip44_base.dart b/lib/bip/bip/bip44/bip44_base.dart new file mode 100644 index 0000000..1ed9d20 --- /dev/null +++ b/lib/bip/bip/bip44/bip44_base.dart @@ -0,0 +1,114 @@ +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base.dart'; +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base_ex.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip44/bip44_coins.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip44/bip44_conf.dart'; +import '../bip32/bip32_key_data.dart'; + +/// Constants related to BIP-44 (Bitcoin Improvement Proposal 44). +class Bip44Const { + /// The name of the BIP-44 specification. + static const String specName = "BIP-0044"; + + /// The purpose index for BIP-44, derived as a hardened index (44'). + static final Bip32KeyIndex purpose = Bip32KeyIndex.hardenIndex(44); +} + +class Bip44 extends Bip44Base { + // private constractor + Bip44._(super.bip32Obj, super.coinConf); + + /// Constructor for creating a [Bip44] object from a seed and coin. + Bip44.fromSeed(List seedBytes, Bip44Coins coinType) + : super.fromSeed(seedBytes, Bip44Conf.getCoin(coinType)); + + /// Constructor for creating a [Bip44] object from a extended key and coin. + Bip44.fromExtendedKey(String extendedKey, Bip44Coins coinType) + : super.fromExtendedKey(extendedKey, Bip44Conf.getCoin(coinType)); + + /// Constructor for creating a [Bip44] object from a private key and coin. + Bip44.fromPrivateKey(List privateKeyBytes, Bip44Coins coinType, + {Bip32KeyData? keyData}) + : super.fromPrivateKey(privateKeyBytes, Bip44Conf.getCoin(coinType), + keyData: keyData ?? Bip32KeyData()); + + /// Constructor for creating a [Bip44] object from a public key and coin. + Bip44.fromPublicKey(List pubkeyBytes, Bip44Coins coinType, + {Bip32KeyData? keyData}) + : super.fromPublicKey(pubkeyBytes, Bip44Conf.getCoin(coinType), + keyData: keyData ?? + Bip32KeyData(depth: Bip32Depth(Bip44Levels.account.value))); + + /// derive purpose + @override + Bip44 get purpose { + if (!isLevel(Bip44Levels.master)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving purpose"); + } + return Bip44._(bip32.childKey(Bip44Const.purpose), coinConf); + } + + /// derive default path + @override + Bip44 get deriveDefaultPath { + Bip44 bipObj = purpose.coin; + return Bip44._(bipObj.bip32.derivePath(bipObj.coinConf.defPath), coinConf); + } + + /// derive coin + @override + Bip44 get coin { + if (!isLevel(Bip44Levels.purpose)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving coin"); + } + final coinIndex = coinConf.coinIdx; + return Bip44._( + bip32.childKey(Bip32KeyIndex.hardenIndex(coinIndex)), coinConf); + } + + /// derive account with index + @override + Bip44 account(int accIndex) { + if (!isLevel(Bip44Levels.coin)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving account"); + } + return Bip44._( + bip32.childKey(Bip32KeyIndex.hardenIndex(accIndex)), coinConf); + } + + /// derive change with change type [Bip44Changes] internal or external + @override + Bip44 change(Bip44Changes changeType) { + if (!isLevel(Bip44Levels.account)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving change"); + } + Bip32KeyIndex changeIndex = Bip32KeyIndex(changeType.value); + if (!bip32Object.isPublicDerivationSupported) { + changeIndex = Bip32KeyIndex.hardenIndex(changeType.value); + } + return Bip44._(bip32.childKey(changeIndex), coinConf); + } + + /// derive address with index + @override + Bip44 addressIndex(int addressIndex) { + if (!isLevel(Bip44Levels.change)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving address"); + } + Bip32KeyIndex changeIndex = Bip32KeyIndex(addressIndex); + if (!bip32Object.isPublicDerivationSupported) { + changeIndex = Bip32KeyIndex.hardenIndex(addressIndex); + } + return Bip44._(bip32.childKey(changeIndex), coinConf); + } + + /// Specification name + @override + String get specName { + return Bip44Const.specName; + } +} diff --git a/lib/bip/bip/bip49/bip49.dart b/lib/bip/bip/bip49/bip49.dart new file mode 100644 index 0000000..0f827af --- /dev/null +++ b/lib/bip/bip/bip49/bip49.dart @@ -0,0 +1,8 @@ +/// The 'bip49' library provides tools for working with BIP-49, a standard for +/// hierarchical deterministic wallets and key derivation in cryptocurrencies. + +/// Export statement for the BIP-49 base implementation, which includes key +/// derivation and wallet management functions. +library bip49; + +export 'bip49_base.dart'; diff --git a/lib/bip/bip/bip49/bip49_base.dart b/lib/bip/bip/bip49/bip49_base.dart new file mode 100644 index 0000000..5c72adb --- /dev/null +++ b/lib/bip/bip/bip49/bip49_base.dart @@ -0,0 +1,168 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base.dart'; +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base_ex.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip49/bip49_coins.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip49/bip49_conf.dart'; + +/// Constants related to BIP-49 (Bitcoin Improvement Proposal 44). +class Bip49Const { + /// The name of the BIP-49 specification. + static const String specName = "BIP-0049"; + + /// The purpose index for BIP-49, derived as a hardened index (49'). + static final Bip32KeyIndex purpose = Bip32KeyIndex.hardenIndex(49); +} + +class Bip49 extends Bip44Base { + /// private constractor + Bip49._(super.bip32Obj, super.coinConf); + + /// Constructor for creating a [Bip49] object from a seed and coin. + Bip49.fromSeed(List seedBytes, Bip49Coins coinType) + : super.fromSeed(seedBytes, Bip49Conf.getCoin(coinType)); + + /// Constructor for creating a [Bip49] object from a extended key and coin. + Bip49.fromExtendedKey(String extendedKey, Bip49Coins coinType) + : super.fromExtendedKey(extendedKey, Bip49Conf.getCoin(coinType)); + + /// Constructor for creating a [Bip49] object from a private key and coin. + Bip49.fromPrivateKey(List privateKeyBytes, Bip49Coins coinType, + {Bip32KeyData? keyData}) + : super.fromPrivateKey(privateKeyBytes, Bip49Conf.getCoin(coinType), + keyData: keyData ?? Bip32KeyData()); + + /// Constructor for creating a [Bip49] object from a public key and coin. + Bip49.fromPublicKey(List pubkeyBytes, Bip49Coins coinType, + {Bip32KeyData? keyData}) + : super.fromPublicKey(pubkeyBytes, Bip49Conf.getCoin(coinType), + keyData: keyData ?? + Bip32KeyData(depth: Bip32Depth(Bip44Levels.account.value))); + + /// derive purpose + @override + Bip49 get purpose { + if (!isLevel(Bip44Levels.master)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving purpose"); + } + return Bip49._(bip32.childKey(Bip49Const.purpose), coinConf); + } + + /// derive coin + @override + Bip49 get coin { + if (!isLevel(Bip44Levels.purpose)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving coin"); + } + final coinIndex = coinConf.coinIdx; + return Bip49._( + bip32.childKey(Bip32KeyIndex.hardenIndex(coinIndex)), coinConf); + } + + /// derive account with index + @override + Bip49 account(int accIndex) { + if (!isLevel(Bip44Levels.coin)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving account"); + } + return Bip49._( + bip32.childKey(Bip32KeyIndex.hardenIndex(accIndex)), coinConf); + } + + /// derive change with change type [Bip44Changes] internal or external + @override + Bip49 change(Bip44Changes changeType) { + if (!isLevel(Bip44Levels.account)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving change"); + } + Bip32KeyIndex changeIndex = Bip32KeyIndex(changeType.value); + if (!bip32Object.isPublicDerivationSupported) { + changeIndex = Bip32KeyIndex.hardenIndex(changeType.value); + } + return Bip49._(bip32.childKey(changeIndex), coinConf); + } + + /// derive address with index + @override + Bip49 addressIndex(int addressIndex) { + if (!isLevel(Bip44Levels.change)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving address"); + } + Bip32KeyIndex changeIndex = Bip32KeyIndex(addressIndex); + if (!bip32Object.isPublicDerivationSupported) { + changeIndex = Bip32KeyIndex.hardenIndex(addressIndex); + } + return Bip49._(bip32.childKey(changeIndex), coinConf); + } + + /// derive default path + @override + Bip49 get deriveDefaultPath { + Bip44Base bipObj = purpose.coin; + return Bip49._(bipObj.bip32.derivePath(bipObj.coinConf.defPath), coinConf); + } + + /// Specification name + @override + String get specName { + return Bip49Const.specName; + } +} diff --git a/lib/bip/bip/bip84/bip84.dart b/lib/bip/bip/bip84/bip84.dart new file mode 100644 index 0000000..6d61222 --- /dev/null +++ b/lib/bip/bip/bip84/bip84.dart @@ -0,0 +1,7 @@ +/// The 'bip84' library provides tools for working with BIP-84, a standard for +/// hierarchical deterministic wallets and key derivation in cryptocurrencies. +library bip84; + +/// Export statement for the BIP-84 base implementation, which includes key +/// derivation and wallet management functions. +export 'bip84_base.dart'; diff --git a/lib/bip/bip/bip84/bip84_base.dart b/lib/bip/bip/bip84/bip84_base.dart new file mode 100644 index 0000000..5efb081 --- /dev/null +++ b/lib/bip/bip/bip84/bip84_base.dart @@ -0,0 +1,114 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base.dart'; +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base_ex.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip84/bip84_coins.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip84/bip84_conf.dart'; + +/// Constants related to BIP-84 (Bitcoin Improvement Proposal 84). +class Bip84Const { + /// The name of the BIP-84 specification. + static const String specName = "BIP-0084"; + + /// The purpose index for BIP-84, derived as a hardened index (84'). + static final Bip32KeyIndex purpose = Bip32KeyIndex.hardenIndex(84); +} + +class Bip84 extends Bip44Base { + /// private constractor + Bip84._(super.bip32Obj, super.coinConf); + + /// Constructor for creating a [Bip84] object from a seed and coin. + Bip84.fromSeed(List seedBytes, Bip84Coins coinType) + : super.fromSeed(seedBytes, Bip84Conf.getCoin(coinType)); + + /// Constructor for creating a [Bip84] object from a extended key and coin. + Bip84.fromExtendedKey(String extendedKey, Bip84Coins coinType) + : super.fromExtendedKey(extendedKey, Bip84Conf.getCoin(coinType)); + + /// Constructor for creating a [Bip84] object from a private key and coin. + Bip84.fromPrivateKey(List privateKeyBytes, Bip84Coins coinType, + {Bip32KeyData? keyData}) + : super.fromPrivateKey(privateKeyBytes, Bip84Conf.getCoin(coinType), + keyData: keyData ?? Bip32KeyData()); + + /// Constructor for creating a [Bip84] object from a public key and coin. + Bip84.fromPublicKey(List pubkeyBytes, Bip84Coins coinType, + {Bip32KeyData? keyData}) + : super.fromPublicKey(pubkeyBytes, Bip84Conf.getCoin(coinType), + keyData: keyData ?? + Bip32KeyData(depth: Bip32Depth(Bip44Levels.account.value))); + + /// derive purpose + @override + Bip84 get purpose { + if (!isLevel(Bip44Levels.master)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving purpose"); + } + return Bip84._(bip32.childKey(Bip84Const.purpose), coinConf); + } + + /// derive coin + @override + Bip84 get coin { + if (!isLevel(Bip44Levels.purpose)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving coin"); + } + final coinIndex = coinConf.coinIdx; + return Bip84._( + bip32.childKey(Bip32KeyIndex.hardenIndex(coinIndex)), coinConf); + } + + /// derive account with index + @override + Bip84 account(int accIndex) { + if (!isLevel(Bip44Levels.coin)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving account"); + } + return Bip84._( + bip32.childKey(Bip32KeyIndex.hardenIndex(accIndex)), coinConf); + } + + /// derive change with change type [Bip44Changes] internal or external + @override + Bip84 change(Bip44Changes changeType) { + if (!isLevel(Bip44Levels.account)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving change"); + } + Bip32KeyIndex changeIndex = Bip32KeyIndex(changeType.value); + if (!bip32Object.isPublicDerivationSupported) { + changeIndex = Bip32KeyIndex.hardenIndex(changeType.value); + } + return Bip84._(bip32.childKey(changeIndex), coinConf); + } + + /// derive address with index + @override + Bip84 addressIndex(int addressIndex) { + if (!isLevel(Bip44Levels.change)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving address"); + } + Bip32KeyIndex changeIndex = Bip32KeyIndex(addressIndex); + if (!bip32Object.isPublicDerivationSupported) { + changeIndex = Bip32KeyIndex.hardenIndex(addressIndex); + } + return Bip84._(bip32.childKey(changeIndex), coinConf); + } + + /// derive default path + @override + Bip84 get deriveDefaultPath { + Bip44Base bipObj = purpose.coin; + return Bip84._(bipObj.bip32.derivePath(bipObj.coinConf.defPath), coinConf); + } + + /// Specification name + @override + String get specName { + return Bip84Const.specName; + } +} diff --git a/lib/bip/bip/bip86/bip86.dart b/lib/bip/bip/bip86/bip86.dart new file mode 100644 index 0000000..75a29f8 --- /dev/null +++ b/lib/bip/bip/bip86/bip86.dart @@ -0,0 +1,7 @@ +/// The 'bip86' library provides tools for working with BIP-86, a standard for +/// hierarchical deterministic wallets and key derivation in cryptocurrencies. +library bip86; + +/// Export statement for the BIP-86 base implementation, which includes key +/// derivation and wallet management functions. +export 'bip86_base.dart'; diff --git a/lib/bip/bip/bip86/bip86_base.dart b/lib/bip/bip/bip86/bip86_base.dart new file mode 100644 index 0000000..d457946 --- /dev/null +++ b/lib/bip/bip/bip86/bip86_base.dart @@ -0,0 +1,114 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base.dart'; +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base_ex.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip86/bip86_coins.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip86/bip86_conf.dart'; + +/// Constants related to BIP-86 (Bitcoin Improvement Proposal 86). +class Bip86Const { + /// The name of the BIP-86 specification. + static const String specName = "BIP-0086"; + + /// The purpose index for BIP-86, derived as a hardened index (86'). + static final Bip32KeyIndex purpose = Bip32KeyIndex.hardenIndex(86); +} + +class Bip86 extends Bip44Base { + /// private constructor + Bip86._(super.bip32Obj, super.coinConf); + + /// Constructor for creating a [Bip86] object from a seed and coin. + Bip86.fromSeed(List seedBytes, Bip86Coins coinType) + : super.fromSeed(seedBytes, Bip86Conf.getCoin(coinType)); + + /// Constructor for creating a [Bip86] object from a extended key and coin. + Bip86.fromExtendedKey(String extendedKey, Bip86Coins coinType) + : super.fromExtendedKey(extendedKey, Bip86Conf.getCoin(coinType)); + + /// Constructor for creating a [Bip86] object from a private key and coin. + Bip86.fromPrivateKey(List privateKeyBytes, Bip86Coins coinType, + {Bip32KeyData? keyData}) + : super.fromPrivateKey(privateKeyBytes, Bip86Conf.getCoin(coinType), + keyData: keyData ?? Bip32KeyData()); + + /// Constructor for creating a [Bip86] object from a public key and coin. + Bip86.fromPublicKey(List pubkeyBytes, Bip86Coins coinType, + {Bip32KeyData? keyData}) + : super.fromPublicKey(pubkeyBytes, Bip86Conf.getCoin(coinType), + keyData: keyData ?? + Bip32KeyData(depth: Bip32Depth(Bip44Levels.account.value))); + + /// derive purpose + @override + Bip44Base get purpose { + if (!isLevel(Bip44Levels.master)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving purpose"); + } + return Bip86._(bip32.childKey(Bip86Const.purpose), coinConf); + } + + /// derive coin + @override + Bip86 get coin { + if (!isLevel(Bip44Levels.purpose)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving coin"); + } + final coinIndex = coinConf.coinIdx; + return Bip86._( + bip32.childKey(Bip32KeyIndex.hardenIndex(coinIndex)), coinConf); + } + + /// derive account with index + @override + Bip86 account(int accIndex) { + if (!isLevel(Bip44Levels.coin)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving account"); + } + return Bip86._( + bip32.childKey(Bip32KeyIndex.hardenIndex(accIndex)), coinConf); + } + + /// derive change with change type [Bip44Changes] internal or external + @override + Bip86 change(Bip44Changes changeType) { + if (!isLevel(Bip44Levels.account)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving change"); + } + Bip32KeyIndex changeIndex = Bip32KeyIndex(changeType.value); + if (!bip32Object.isPublicDerivationSupported) { + changeIndex = Bip32KeyIndex.hardenIndex(changeType.value); + } + return Bip86._(bip32.childKey(changeIndex), coinConf); + } + + /// derive address with index + @override + Bip86 addressIndex(int addressIndex) { + if (!isLevel(Bip44Levels.change)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving address"); + } + Bip32KeyIndex changeIndex = Bip32KeyIndex(addressIndex); + if (!bip32Object.isPublicDerivationSupported) { + changeIndex = Bip32KeyIndex.hardenIndex(addressIndex); + } + return Bip86._(bip32.childKey(changeIndex), coinConf); + } + + /// derive default path + @override + Bip86 get deriveDefaultPath { + Bip44Base bipObj = purpose.coin; + return Bip86._(bipObj.bip32.derivePath(bipObj.coinConf.defPath), coinConf); + } + + /// Specification name + @override + String get specName { + return Bip86Const.specName; + } +} diff --git a/lib/bip/bip/conf/bip44/bip44_coins.dart b/lib/bip/bip/conf/bip44/bip44_coins.dart new file mode 100644 index 0000000..85a7328 --- /dev/null +++ b/lib/bip/bip/conf/bip44/bip44_coins.dart @@ -0,0 +1,143 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; + +/// An enumeration of supported cryptocurrencies for BIP44. It includes both main +/// networks and test networks of various cryptocurrencies. +enum Bip44Coins implements BipCoins { + akashNetwork, + algorand, + aptos, + avaxCChain, + avaxPChain, + avaxXChain, + axelar, + bandProtocol, + binanceChain, + binanceSmartChain, + bitcoin, + bitcoinCash, + bitcoinCashSlp, + bitcoinSv, + cardanoByronIcarus, + cardanoByronLedger, + celo, + certik, + chihuahua, + cosmos, + dash, + dogecoin, + ecash, + elrond, + eos, + ergo, + ethereum, + ethereumClassic, + fantomOpera, + filecoin, + harmonyOneAtom, + harmonyOneEth, + harmonyOneMetamask, + huobiChain, + icon, + injective, + irisNet, + kava, + kusamaEd25519Slip, + litecoin, + moneroEd25519Slip, + moneroSecp256k1, + nano, + nearProtocol, + neo, + nineChroniclesGold, + okexChainAtom, + okexChainAtomOld, + okexChainEth, + ontology, + osmosis, + piNetwork, + polkadotEd25519Slip, + polygon, + ripple, + secretNetworkOld, + secretNetworkNew, + solana, + stellar, + terra, + tezos, + theta, + tron, + vechain, + verge, + zcash, + zilliqa, + // Test nets + bitcoinCashTestnet, + bitcoinCashSlpTestnet, + bitcoinSvTestnet, + bitcoinTestnet, + dashTestnet, + dogecoinTestnet, + ecashTestnet, + ergoTestnet, + litecoinTestnet, + zcashTestnet; + + @override + Bip44Coins get value { + return this; + } +} diff --git a/lib/bip/bip/conf/bip44/bip44_conf.dart b/lib/bip/bip/conf/bip44/bip44_conf.dart new file mode 100644 index 0000000..271da46 --- /dev/null +++ b/lib/bip/bip/conf/bip44/bip44_conf.dart @@ -0,0 +1,1315 @@ +/// Bitcoin key net version for main net (same as BIP32) + +import 'package:blockchain_utils/bip/address/ada_byron_addr.dart'; +import 'package:blockchain_utils/bip/address/algo_addr.dart'; +import 'package:blockchain_utils/bip/address/aptos_addr.dart'; +import 'package:blockchain_utils/bip/address/atom_addr.dart'; +import 'package:blockchain_utils/bip/address/avax_addr.dart'; +import 'package:blockchain_utils/bip/address/egld_addr.dart'; +import 'package:blockchain_utils/bip/address/eos_addr.dart'; +import 'package:blockchain_utils/bip/address/ergo.dart'; +import 'package:blockchain_utils/bip/address/eth_addr.dart'; +import 'package:blockchain_utils/bip/address/fil_addr.dart'; +import 'package:blockchain_utils/bip/address/icx_addr.dart'; +import 'package:blockchain_utils/bip/address/inj_addr.dart'; +import 'package:blockchain_utils/bip/address/nano_addr.dart'; +import 'package:blockchain_utils/bip/address/near_addr.dart'; +import 'package:blockchain_utils/bip/address/neo_addr.dart'; +import 'package:blockchain_utils/bip/address/okex_addr.dart'; +import 'package:blockchain_utils/bip/address/one_addr.dart'; +import 'package:blockchain_utils/bip/address/p2pkh_addr.dart'; +import 'package:blockchain_utils/bip/address/sol_addr.dart'; +import 'package:blockchain_utils/bip/address/substrate_addr.dart'; +import 'package:blockchain_utils/bip/address/trx_addr.dart'; +import 'package:blockchain_utils/bip/address/xlm_addr.dart'; +import 'package:blockchain_utils/bip/address/xmr_addr.dart'; +import 'package:blockchain_utils/bip/address/xrp_addr.dart'; +import 'package:blockchain_utils/bip/address/xtz_addr.dart'; +import 'package:blockchain_utils/bip/address/zil_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_const.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip44/bip44_coins.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_bitcoin_cash_conf.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coin_conf.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_conf_const.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_litecoin_conf.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/bip/slip/slip44/slip44.dart'; + +/// A configuration class for BIP44 coins that defines the key network versions and +/// maps each supported BIP44Coin to its corresponding BipCoinConf. +class Bip44Conf { + /// The key network version for the mainnet of Bitcoin. + static final Bip32KeyNetVersions bip44BtcKeyNetVerMain = + Bip32Const.mainNetKeyNetVersions; + + /// The key network version for the testnet of Bitcoin. + static final Bip32KeyNetVersions bip44BtcKeyNetVerTest = + Bip32Const.testNetKeyNetVersions; + + /// Retrieves the BipCoinConf for the given BIP44Coin. If the provided coin + /// is not an instance of Bip44Coins, an error is thrown. + static BipCoinConf getCoin(BipCoins coin) { + if (coin is! Bip44Coins) { + throw ArgumentError("Coin type is not an enumerative of Bip44Coins"); + } + + return coinToConf[coin.value]!; + } + + /// A mapping that associates each BIP44Coin (enum) with its corresponding + /// BipCoinConf configuration. + static Map coinToConf = { + Bip44Coins.akashNetwork: Bip44Conf.akashNetwork, + Bip44Coins.algorand: Bip44Conf.algorand, + Bip44Coins.aptos: Bip44Conf.aptos, + Bip44Coins.avaxCChain: Bip44Conf.avaxCChain, + Bip44Coins.avaxPChain: Bip44Conf.avaxPChain, + Bip44Coins.avaxXChain: Bip44Conf.avaxXChain, + Bip44Coins.axelar: Bip44Conf.axelar, + Bip44Coins.bandProtocol: Bip44Conf.bandProtocol, + Bip44Coins.binanceChain: Bip44Conf.binanceChain, + Bip44Coins.binanceSmartChain: Bip44Conf.binanceSmartChain, + Bip44Coins.bitcoin: Bip44Conf.bitcoinMainNet, + Bip44Coins.bitcoinTestnet: Bip44Conf.bitcoinTestNet, + Bip44Coins.bitcoinCash: Bip44Conf.bitcoinCashMainNet, + Bip44Coins.bitcoinCashTestnet: Bip44Conf.bitcoinCashTestNet, + Bip44Coins.bitcoinCashSlp: Bip44Conf.bitcoinCashSlpMainNet, + Bip44Coins.bitcoinCashSlpTestnet: Bip44Conf.bitcoinCashSlpTestNet, + Bip44Coins.bitcoinSv: Bip44Conf.bitcoinSvMainNet, + Bip44Coins.bitcoinSvTestnet: Bip44Conf.bitcoinSvTestNet, + Bip44Coins.cardanoByronIcarus: Bip44Conf.cardanoByronIcarus, + Bip44Coins.cardanoByronLedger: Bip44Conf.cardanoByronLedger, + Bip44Coins.celo: Bip44Conf.celo, + Bip44Coins.certik: Bip44Conf.certik, + Bip44Coins.chihuahua: Bip44Conf.chihuahua, + Bip44Coins.cosmos: Bip44Conf.cosmos, + Bip44Coins.dash: Bip44Conf.dashMainNet, + Bip44Coins.dashTestnet: Bip44Conf.dashTestNet, + Bip44Coins.dogecoin: Bip44Conf.dogecoinMainNet, + Bip44Coins.dogecoinTestnet: Bip44Conf.dogecoinTestNet, + Bip44Coins.ecash: Bip44Conf.ecashMainNet, + Bip44Coins.ecashTestnet: Bip44Conf.ecashTestNet, + Bip44Coins.elrond: Bip44Conf.elrond, + Bip44Coins.eos: Bip44Conf.eos, + Bip44Coins.ergo: Bip44Conf.ergoMainNet, + Bip44Coins.ergoTestnet: Bip44Conf.ergoTestNet, + Bip44Coins.ethereum: Bip44Conf.ethereum, + Bip44Coins.ethereumClassic: Bip44Conf.ethereumClassic, + Bip44Coins.fantomOpera: Bip44Conf.fantomOpera, + Bip44Coins.filecoin: Bip44Conf.filecoin, + Bip44Coins.harmonyOneAtom: Bip44Conf.harmonyOneAtom, + Bip44Coins.harmonyOneEth: Bip44Conf.harmonyOneEth, + Bip44Coins.harmonyOneMetamask: Bip44Conf.harmonyOneMetamask, + Bip44Coins.huobiChain: Bip44Conf.huobiChain, + Bip44Coins.icon: Bip44Conf.icon, + Bip44Coins.injective: Bip44Conf.injective, + Bip44Coins.irisNet: Bip44Conf.irisNet, + Bip44Coins.kava: Bip44Conf.kava, + Bip44Coins.kusamaEd25519Slip: Bip44Conf.kusamaEd25519Slip, + Bip44Coins.litecoin: Bip44Conf.litecoinMainNet, + Bip44Coins.litecoinTestnet: Bip44Conf.litecoinTestNet, + Bip44Coins.moneroEd25519Slip: Bip44Conf.moneroEd25519Slip, + Bip44Coins.moneroSecp256k1: Bip44Conf.moneroSecp256k1, + Bip44Coins.nano: Bip44Conf.nano, + Bip44Coins.nearProtocol: Bip44Conf.nearProtocol, + Bip44Coins.neo: Bip44Conf.neo, + Bip44Coins.nineChroniclesGold: Bip44Conf.nineChroniclesGold, + Bip44Coins.okexChainAtom: Bip44Conf.okexChainAtom, + Bip44Coins.okexChainAtomOld: Bip44Conf.okexChainAtomOld, + Bip44Coins.okexChainEth: Bip44Conf.okexChainEth, + Bip44Coins.ontology: Bip44Conf.ontology, + Bip44Coins.osmosis: Bip44Conf.osmosis, + Bip44Coins.piNetwork: Bip44Conf.piNetwork, + Bip44Coins.polkadotEd25519Slip: Bip44Conf.polkadotEd25519Slip, + Bip44Coins.polygon: Bip44Conf.polygon, + Bip44Coins.ripple: Bip44Conf.ripple, + Bip44Coins.secretNetworkOld: Bip44Conf.secretNetworkOld, + Bip44Coins.secretNetworkNew: Bip44Conf.secretNetworkNew, + Bip44Coins.solana: Bip44Conf.solana, + Bip44Coins.stellar: Bip44Conf.stellar, + Bip44Coins.terra: Bip44Conf.terra, + Bip44Coins.tezos: Bip44Conf.tezos, + Bip44Coins.theta: Bip44Conf.theta, + Bip44Coins.tron: Bip44Conf.tron, + Bip44Coins.vechain: Bip44Conf.vechain, + Bip44Coins.verge: Bip44Conf.verge, + Bip44Coins.zcash: Bip44Conf.zcashMainNet, + Bip44Coins.zcashTestnet: Bip44Conf.zcashTestNet, + Bip44Coins.zilliqa: Bip44Conf.zilliqa, + }; + + /// Configuration for Akash Network + static final BipCoinConf akashNetwork = BipCoinConf( + coinNames: CoinsConf.akashNetwork.coinName, + coinIdx: Slip44.atom, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AtomAddrEncoder(), + addrParams: { + "hrp": CoinsConf.akashNetwork.getParam("addr_hrp"), + }, + ); + + /// Configuration for Algorand + static final BipCoinConf algorand = BipCoinConf( + coinNames: CoinsConf.algorand.coinName, + addressEncoder: ([dynamic kwargs]) => AlgoAddrEncoder(), + coinIdx: Slip44.algorand, + isTestnet: false, + defPath: derPathHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.ed25519, + addrParams: {}, + ); + + /// Configuration for Aptos + static final BipCoinConf aptos = BipCoinConf( + coinNames: CoinsConf.aptos.coinName, + coinIdx: Slip44.aptos, + isTestnet: false, + defPath: derPathHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.ed25519, + addressEncoder: ([dynamic kwargs]) => AptosAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Avax C-Chain + static final BipCoinConf avaxCChain = BipCoinConf( + coinNames: CoinsConf.avaxCChain.coinName, + coinIdx: Slip44.ethereum, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Avax P-Chain + static final BipCoinConf avaxPChain = BipCoinConf( + coinNames: CoinsConf.avaxPChain.coinName, + coinIdx: Slip44.avalanche, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AvaxPChainAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Avax X-Chain + static final BipCoinConf avaxXChain = BipCoinConf( + coinNames: CoinsConf.avaxXChain.coinName, + coinIdx: Slip44.avalanche, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AvaxXChainAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Axelar + static final BipCoinConf axelar = BipCoinConf( + coinNames: CoinsConf.axelar.coinName, + coinIdx: Slip44.atom, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AtomAddrEncoder(), + addrParams: { + "hrp": CoinsConf.axelar.getParam("addr_hrp"), + }, + ); + + /// Configuration for Band Protocol + static final BipCoinConf bandProtocol = BipCoinConf( + coinNames: CoinsConf.bandProtocol.coinName, + coinIdx: Slip44.bandProtocol, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AtomAddrEncoder(), + addrParams: { + "hrp": CoinsConf.bandProtocol.getParam("addr_hrp"), + }, + ); + + /// Configuration for Binance Chain + static final BipCoinConf binanceChain = BipCoinConf( + coinNames: CoinsConf.binanceChain.coinName, + coinIdx: Slip44.binanceChain, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AtomAddrEncoder(), + addrParams: { + "hrp": CoinsConf.binanceChain.getParam("addr_hrp"), + }, + ); + + /// Configuration for Binance Smart Chain + static final BipCoinConf binanceSmartChain = BipCoinConf( + coinNames: CoinsConf.binanceSmartChain.coinName, + coinIdx: Slip44.ethereum, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Bitcoin main net + static final BipCoinConf bitcoinMainNet = BipCoinConf( + coinNames: CoinsConf.bitcoinMainNet.coinName, + coinIdx: Slip44.bitcoin, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2PKHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.bitcoinMainNet.getParam("p2pkh_net_ver"), + }, + ); + + /// Configuration for Bitcoin test net + static final BipCoinConf bitcoinTestNet = BipCoinConf( + coinNames: CoinsConf.bitcoinTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerTest, + wifNetVer: CoinsConf.bitcoinTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2PKHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.bitcoinTestNet.getParam("p2pkh_net_ver"), + }, + ); + + /// Configuration for Bitcoin Cash main net + static final BipBitcoinCashConf bitcoinCashMainNet = BipBitcoinCashConf( + coinNames: CoinsConf.bitcoinCashMainNet.coinName, + coinIdx: Slip44.bitcoinCash, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: CoinsConf.bitcoinCashMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic legacy]) { + if (legacy == true) { + return P2PKHAddrEncoder(); + } + return BchP2PKHAddrEncoder(); + }, + addrParams: { + "std": { + "net_ver": CoinsConf.bitcoinCashMainNet.getParam("p2pkh_std_net_ver"), + "hrp": CoinsConf.bitcoinCashMainNet.getParam("p2pkh_std_hrp"), + }, + "legacy": { + "net_ver": + CoinsConf.bitcoinCashMainNet.getParam("p2pkh_legacy_net_ver"), + } + }, + ); + + /// Configuration for Bitcoin Cash test net + static final BipBitcoinCashConf bitcoinCashTestNet = BipBitcoinCashConf( + coinNames: CoinsConf.bitcoinCashTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + addressEncoder: ([dynamic legacy]) { + if (legacy == true) { + return P2PKHAddrEncoder(); + } + return BchP2PKHAddrEncoder(); + }, + keyNetVer: bip44BtcKeyNetVerTest, + wifNetVer: CoinsConf.bitcoinCashTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addrParams: { + "std": { + "net_ver": CoinsConf.bitcoinCashTestNet.getParam("p2pkh_std_net_ver"), + "hrp": CoinsConf.bitcoinCashTestNet.getParam("p2pkh_std_hrp"), + }, + "legacy": { + "net_ver": + CoinsConf.bitcoinCashTestNet.getParam("p2pkh_legacy_net_ver"), + } + }, + ); + + /// Configuration for Bitcoin Cash Simple Ledger Protocol main net + static final BipBitcoinCashConf bitcoinCashSlpMainNet = BipBitcoinCashConf( + coinNames: CoinsConf.bitcoinCashSlpMainNet.coinName, + coinIdx: Slip44.bitcoinCash, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: CoinsConf.bitcoinCashSlpMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic legacy]) { + if (legacy == true) { + return P2PKHAddrEncoder(); + } + return BchP2PKHAddrEncoder(); + }, + addrParams: { + "std": { + "net_ver": + CoinsConf.bitcoinCashSlpMainNet.getParam("p2pkh_std_net_ver"), + "hrp": CoinsConf.bitcoinCashSlpMainNet.getParam("p2pkh_std_hrp"), + }, + "legacy": { + "net_ver": + CoinsConf.bitcoinCashSlpMainNet.getParam("p2pkh_legacy_net_ver"), + } + }, + ); + + /// Configuration for Bitcoin Cash Simple Ledger Protocol test net + static final BipBitcoinCashConf bitcoinCashSlpTestNet = BipBitcoinCashConf( + coinNames: CoinsConf.bitcoinCashSlpTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerTest, + wifNetVer: CoinsConf.bitcoinCashSlpTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic legacy]) { + if (legacy == true) { + return P2PKHAddrEncoder(); + } + return BchP2PKHAddrEncoder(); + }, + addrParams: { + "std": { + "net_ver": + CoinsConf.bitcoinCashSlpTestNet.getParam("p2pkh_std_net_ver"), + "hrp": CoinsConf.bitcoinCashSlpTestNet.getParam("p2pkh_std_hrp"), + }, + "legacy": { + "net_ver": + CoinsConf.bitcoinCashSlpTestNet.getParam("p2pkh_legacy_net_ver"), + } + }, + ); + + /// Configuration for BitcoinSV main net + static final BipCoinConf bitcoinSvMainNet = BipCoinConf( + coinNames: CoinsConf.bitcoinSvMainNet.coinName, + coinIdx: Slip44.bitcoinSv, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: CoinsConf.bitcoinSvMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic legacy]) { + return P2PKHAddrEncoder(); + }, + addrParams: { + "net_ver": CoinsConf.bitcoinSvMainNet.getParam("p2pkh_net_ver"), + }, + ); + + /// Configuration for BitcoinSV test net + static final BipCoinConf bitcoinSvTestNet = BipCoinConf( + coinNames: CoinsConf.bitcoinSvTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerTest, + wifNetVer: CoinsConf.bitcoinSvTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2PKHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.bitcoinSvTestNet.getParam("p2pkh_net_ver"), + }, + ); + + static final BipCoinConf cardanoByronIcarus = BipCoinConf( + coinNames: CoinsConf.cardanoMainNet.coinName, + coinIdx: Slip44.cardano, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32Const.kholawKeyNetVersions, + wifNetVer: null, + type: EllipticCurveTypes.ed25519Kholaw, + addressEncoder: ([dynamic kwargs]) => AdaByronIcarusAddrEncoder(), + addrParams: { + "chain_code": true, + "is_icarus": true, + }, + ); + + /// Configuration for Cardano Byron (Ledger) + static final BipCoinConf cardanoByronLedger = BipCoinConf( + coinNames: CoinsConf.cardanoMainNet.coinName, + coinIdx: Slip44.cardano, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32Const.kholawKeyNetVersions, + wifNetVer: null, + type: EllipticCurveTypes.ed25519Kholaw, + addressEncoder: ([dynamic kwargs]) => AdaByronIcarusAddrEncoder(), + addrParams: { + "chain_code": true, + }, + ); + + /// Configuration for Celo + static final BipCoinConf celo = BipCoinConf( + coinNames: CoinsConf.celo.coinName, + coinIdx: Slip44.celo, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Certik + static final BipCoinConf certik = BipCoinConf( + coinNames: CoinsConf.certik.coinName, + coinIdx: Slip44.atom, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AtomAddrEncoder(), + addrParams: { + "hrp": CoinsConf.certik.getParam("addr_hrp"), + }, + ); + + /// Configuration for Chihuahua + static final BipCoinConf chihuahua = BipCoinConf( + coinNames: CoinsConf.chihuahua.coinName, + coinIdx: Slip44.atom, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AtomAddrEncoder(), + addrParams: { + "hrp": CoinsConf.chihuahua.getParam("addr_hrp"), + }, + ); + + /// Configuration for Cosmos + static final BipCoinConf cosmos = BipCoinConf( + coinNames: CoinsConf.cosmos.coinName, + coinIdx: Slip44.atom, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AtomAddrEncoder(), + addrParams: { + "hrp": CoinsConf.cosmos.getParam("addr_hrp"), + }, + ); + + /// Configuration for Dash main net + static final BipCoinConf dashMainNet = BipCoinConf( + coinNames: CoinsConf.dashMainNet.coinName, + coinIdx: Slip44.dash, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: CoinsConf.dashMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2PKHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.dashMainNet.getParam("p2pkh_net_ver"), + }, + ); + + /// Configuration for Dash test net + static final BipCoinConf dashTestNet = BipCoinConf( + coinNames: CoinsConf.dashTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerTest, + wifNetVer: CoinsConf.dashTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2PKHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.dashTestNet.getParam("p2pkh_net_ver"), + }, + ); + + /// Configuration for Dogecoin main net + static final BipCoinConf dogecoinMainNet = BipCoinConf( + coinNames: CoinsConf.dogecoinMainNet.coinName, + coinIdx: Slip44.dogecoin, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32KeyNetVersions(List.from([0x02, 0xfa, 0xca, 0xfd]), + List.from([0x02, 0xfa, 0xc3, 0x98])), + wifNetVer: CoinsConf.dogecoinMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2PKHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.dogecoinMainNet.getParam("p2pkh_net_ver"), + }, + ); + + /// Configuration for Dogecoin test net + static final BipCoinConf dogecoinTestNet = BipCoinConf( + coinNames: CoinsConf.dogecoinTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32KeyNetVersions(List.from([0x04, 0x32, 0xa9, 0xa8]), + List.from([0x04, 0x32, 0xa2, 0x43])), + wifNetVer: CoinsConf.dogecoinTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2PKHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.dogecoinTestNet.getParam("p2pkh_net_ver"), + }, + ); + + /// Configuration for eCash main net + static final BipBitcoinCashConf ecashMainNet = BipBitcoinCashConf( + coinNames: CoinsConf.ecashMainNet.coinName, + coinIdx: Slip44.bitcoinCash, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: CoinsConf.ecashMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic legacy]) { + if (legacy == true) { + return P2PKHAddrEncoder(); + } + return BchP2PKHAddrEncoder(); + }, + addrParams: { + "std": { + "net_ver": CoinsConf.ecashMainNet.getParam("p2pkh_std_net_ver"), + "hrp": CoinsConf.ecashMainNet.getParam("p2pkh_std_hrp"), + }, + "legacy": { + "net_ver": CoinsConf.ecashMainNet.getParam("p2pkh_legacy_net_ver"), + }, + }, + ); + + /// Configuration for eCash test net + static final BipBitcoinCashConf ecashTestNet = BipBitcoinCashConf( + coinNames: CoinsConf.ecashTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + addressEncoder: ([dynamic legacy]) { + if (legacy == true) { + return P2PKHAddrEncoder(); + } + return BchP2PKHAddrEncoder(); + }, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerTest, + wifNetVer: CoinsConf.ecashTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addrParams: { + "std": { + "net_ver": CoinsConf.ecashTestNet.getParam("p2pkh_std_net_ver"), + "hrp": CoinsConf.ecashTestNet.getParam("p2pkh_std_hrp"), + }, + "legacy": { + "net_ver": CoinsConf.ecashTestNet.getParam("p2pkh_legacy_net_ver"), + }, + }, + + /// addrClsLegacy: P2PKHAddrEncoder, + ); + + /// Configuration for Elrond + static final BipCoinConf elrond = BipCoinConf( + coinNames: CoinsConf.elrond.coinName, + coinIdx: Slip44.elrond, + isTestnet: false, + defPath: derPathHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.ed25519, + addressEncoder: ([dynamic kwargs]) => EgldAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Eos + static final BipCoinConf eos = BipCoinConf( + coinNames: CoinsConf.eos.coinName, + coinIdx: Slip44.eos, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addrParams: {}, + addressEncoder: ([dynamic kwargs]) => EosAddrEncoder(), + ); + + /// Configuration for Ergo main net + static final BipCoinConf ergoMainNet = BipCoinConf( + coinNames: CoinsConf.ergoMainNet.coinName, + coinIdx: Slip44.ergo, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => ErgoP2PKHAddrEncoder(), + addrParams: { + "net_type": ErgoNetworkTypes.mainnet, + }, + ); + + /// Configuration for Ergo test net + static final BipCoinConf ergoTestNet = BipCoinConf( + coinNames: CoinsConf.ergoTestNet.coinName, + coinIdx: Slip44.ergo, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerTest, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => ErgoP2PKHAddrEncoder(), + addrParams: { + "net_type": ErgoNetworkTypes.testnet, + }, + ); + + /// Configuration for Ethereum + static final BipCoinConf ethereum = BipCoinConf( + coinNames: CoinsConf.ethereum.coinName, + coinIdx: Slip44.ethereum, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Ethereum Classic + static final BipCoinConf ethereumClassic = BipCoinConf( + coinNames: CoinsConf.ethereumClassic.coinName, + coinIdx: Slip44.ethereumClassic, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Fantom Opera + static final BipCoinConf fantomOpera = BipCoinConf( + coinNames: CoinsConf.fantomOpera.coinName, + coinIdx: Slip44.ethereum, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Filecoin + static final BipCoinConf filecoin = BipCoinConf( + coinNames: CoinsConf.filecoin.coinName, + coinIdx: Slip44.filecoin, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => FilSecp256k1AddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Harmony One (Metamask address) + static final BipCoinConf harmonyOneMetamask = BipCoinConf( + coinNames: CoinsConf.harmonyOne.coinName, + coinIdx: Slip44.ethereum, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Harmony One (Ethereum address) + static final BipCoinConf harmonyOneEth = BipCoinConf( + coinNames: CoinsConf.harmonyOne.coinName, + coinIdx: Slip44.harmonyOne, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Harmony One (Atom address) + static final BipCoinConf harmonyOneAtom = BipCoinConf( + coinNames: CoinsConf.harmonyOne.coinName, + coinIdx: Slip44.harmonyOne, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => OneAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Huobi Chain + static final BipCoinConf huobiChain = BipCoinConf( + coinNames: CoinsConf.huobiChain.coinName, + coinIdx: Slip44.ethereum, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Icon + static final BipCoinConf icon = BipCoinConf( + coinNames: CoinsConf.icon.coinName, + coinIdx: Slip44.icon, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => IcxAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Injective + static final BipCoinConf injective = BipCoinConf( + coinNames: CoinsConf.injective.coinName, + coinIdx: Slip44.ethereum, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => InjAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for IRISnet + static final BipCoinConf irisNet = BipCoinConf( + coinNames: CoinsConf.irisNet.coinName, + coinIdx: Slip44.atom, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AtomAddrEncoder(), + addrParams: { + "hrp": CoinsConf.irisNet.getParam("addr_hrp"), + }, + ); + + /// Configuration for Kava + static final BipCoinConf kava = BipCoinConf( + coinNames: CoinsConf.kava.coinName, + coinIdx: Slip44.kava, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AtomAddrEncoder(), + addrParams: { + "hrp": CoinsConf.kava.getParam("addr_hrp"), + }, + ); + + /// Configuration for Kusama (ed25519 SLIP-0010) + static final BipCoinConf kusamaEd25519Slip = BipCoinConf( + coinNames: CoinsConf.kusama.coinName, + coinIdx: Slip44.kusama, + isTestnet: false, + defPath: derPathHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.ed25519, + addressEncoder: ([dynamic kwargs]) => SubstrateEd25519AddrEncoder(), + addrParams: { + "ss58_format": CoinsConf.kusama.getParam("addr_ss58_format"), + }, + ); + + /// Configuration for Litecoin main net + static final BipLitecoinConf litecoinMainNet = BipLitecoinConf( + coinNames: CoinsConf.litecoinMainNet.coinName, + coinIdx: Slip44.litecoin, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + addressEncoder: ([dynamic kwargs]) => P2PKHAddrEncoder(), + altKeyNetVer: Bip32KeyNetVersions( + List.from([0x01, 0x9d, 0xa4, 0x62]), + List.from([0x01, 0x9d, 0x9c, 0xfe]), + ), + wifNetVer: CoinsConf.litecoinMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addrParams: { + "std_net_ver": CoinsConf.litecoinMainNet.getParam("p2pkh_std_net_ver"), + "depr_net_ver": CoinsConf.litecoinMainNet.getParam("p2pkh_depr_net_ver"), + }, + ); + + /// Configuration for Litecoin test net + static final BipLitecoinConf litecoinTestNet = BipLitecoinConf( + coinNames: CoinsConf.litecoinTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32KeyNetVersions( + List.from([0x04, 0x36, 0xf6, 0xe1]), + List.from([0x04, 0x36, 0xef, 0x7d]), + ), + altKeyNetVer: Bip32KeyNetVersions( + List.from([0x04, 0x36, 0xf6, 0xe1]), + List.from([0x04, 0x36, 0xef, 0x7d]), + ), + wifNetVer: CoinsConf.litecoinTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2PKHAddrEncoder(), + addrParams: { + "std_net_ver": CoinsConf.litecoinTestNet.getParam("p2pkh_std_net_ver"), + "depr_net_ver": CoinsConf.litecoinTestNet.getParam("p2pkh_depr_net_ver"), + }, + ); + + /// Configuration for Monero (ed25519 SLIP-0010) + static final BipCoinConf moneroEd25519Slip = BipCoinConf( + coinNames: CoinsConf.moneroMainNet.coinName, + coinIdx: Slip44.monero, + isTestnet: false, + defPath: derPathHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.ed25519, + addressEncoder: ([dynamic kwargs]) => XmrAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Monero (secp256k1) + static final BipCoinConf moneroSecp256k1 = BipCoinConf( + coinNames: CoinsConf.moneroMainNet.coinName, + coinIdx: Slip44.monero, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => XmrAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Nano + static final BipCoinConf nano = BipCoinConf( + coinNames: CoinsConf.nano.coinName, + coinIdx: Slip44.nano, + isTestnet: false, + defPath: derPathHardenedShort, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.ed25519Blake2b, + addressEncoder: ([dynamic kwargs]) => NanoAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Near Protocol + static final BipCoinConf nearProtocol = BipCoinConf( + coinNames: CoinsConf.nearProtocol.coinName, + coinIdx: Slip44.nearProtocol, + isTestnet: false, + defPath: derPathHardenedShort, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.ed25519, + addressEncoder: ([dynamic kwargs]) => NearAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Neo + static final BipCoinConf neo = BipCoinConf( + coinNames: CoinsConf.neo.coinName, + coinIdx: Slip44.neo, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.nist256p1, + addressEncoder: ([dynamic kwargs]) => NeoAddrEncoder(), + addrParams: { + "ver": CoinsConf.neo.getParam("addr_ver"), + }, + ); + + /// Configuration for Nine Chronicles Gold + static final BipCoinConf nineChroniclesGold = BipCoinConf( + coinNames: CoinsConf.nineChroniclesGold.coinName, + coinIdx: Slip44.nineChronicles, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for OKEx Chain (Ethereum address) + static final BipCoinConf okexChainEth = BipCoinConf( + coinNames: CoinsConf.okexChain.coinName, + coinIdx: Slip44.ethereum, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for OKEx Chain (Atom address) + static final BipCoinConf okexChainAtom = BipCoinConf( + coinNames: CoinsConf.okexChain.coinName, + coinIdx: Slip44.ethereum, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => OkexAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for OKEx Chain (old Atom address) + static final BipCoinConf okexChainAtomOld = BipCoinConf( + coinNames: CoinsConf.okexChain.coinName, + coinIdx: Slip44.okexChain, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => OkexAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Ontology + static final BipCoinConf ontology = BipCoinConf( + coinNames: CoinsConf.ontology.coinName, + coinIdx: Slip44.ontology, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.nist256p1, + addressEncoder: ([dynamic kwargs]) => NeoAddrEncoder(), + addrParams: { + "ver": CoinsConf.ontology.getParam("addr_ver"), + }, + ); + + /// Configuration for Osmosis + static final BipCoinConf osmosis = BipCoinConf( + coinNames: CoinsConf.osmosis.coinName, + coinIdx: Slip44.atom, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AtomAddrEncoder(), + addrParams: { + "hrp": CoinsConf.osmosis.getParam("addr_hrp"), + }, + ); + + /// Configuration for Pi Network + static final BipCoinConf piNetwork = BipCoinConf( + coinNames: CoinsConf.piNetwork.coinName, + coinIdx: Slip44.piNetwork, + isTestnet: false, + defPath: derPathHardenedShort, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.ed25519, + addressEncoder: ([dynamic kwargs]) => XlmAddrEncoder(), + addrParams: {"addr_type": XlmAddrTypes.pubKey}, + ); + + /// Configuration for Polkadot (ed25519 SLIP-0010) + static final BipCoinConf polkadotEd25519Slip = BipCoinConf( + coinNames: CoinsConf.polkadot.coinName, + coinIdx: Slip44.polkadot, + isTestnet: false, + defPath: derPathHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.ed25519, + addressEncoder: ([dynamic kwargs]) => SubstrateEd25519AddrEncoder(), + addrParams: { + "ss58_format": CoinsConf.polkadot.getParam("addr_ss58_format"), + }, + ); + + /// Configuration for Polygon + static final BipCoinConf polygon = BipCoinConf( + coinNames: CoinsConf.polygon.coinName, + coinIdx: Slip44.ethereum, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Ripple + static final BipCoinConf ripple = BipCoinConf( + coinNames: CoinsConf.ripple.coinName, + coinIdx: Slip44.ripple, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => XrpAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Secret Network (old path) + static final BipCoinConf secretNetworkOld = BipCoinConf( + coinNames: CoinsConf.secretNetwork.coinName, + coinIdx: Slip44.atom, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AtomAddrEncoder(), + addrParams: { + "hrp": CoinsConf.secretNetwork.getParam("addr_hrp"), + }, + ); + + /// Configuration for Secret Network (new path) + static final BipCoinConf secretNetworkNew = BipCoinConf( + coinNames: CoinsConf.secretNetwork.coinName, + coinIdx: Slip44.secretNetwork, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AtomAddrEncoder(), + addrParams: { + "hrp": CoinsConf.secretNetwork.getParam("addr_hrp"), + }, + ); + + /// Configuration for Solana + static final BipCoinConf solana = BipCoinConf( + coinNames: CoinsConf.solana.coinName, + coinIdx: Slip44.solana, + isTestnet: false, + defPath: derPathHardenedShort, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.ed25519, + addressEncoder: ([dynamic kwargs]) => SolAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Stellar + static final BipCoinConf stellar = BipCoinConf( + coinNames: CoinsConf.stellar.coinName, + coinIdx: Slip44.stellar, + isTestnet: false, + defPath: derPathHardenedShort, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.ed25519, + addressEncoder: ([dynamic kwargs]) => XlmAddrEncoder(), + addrParams: {"addr_type": XlmAddrTypes.pubKey}, + ); + + /// Configuration for Terra + static final BipCoinConf terra = BipCoinConf( + coinNames: CoinsConf.terra.coinName, + coinIdx: Slip44.terra, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => AtomAddrEncoder(), + addrParams: { + "hrp": CoinsConf.terra.getParam("addr_hrp"), + }, + ); + + /// Configuration for Tezos + static final BipCoinConf tezos = BipCoinConf( + coinNames: CoinsConf.tezos.coinName, + coinIdx: Slip44.tezos, + isTestnet: false, + defPath: "0'/0'", + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.ed25519, + addressEncoder: ([dynamic kwargs]) => XtzAddrEncoder(), + addrParams: {"prefix": XtzAddrPrefixes.tz1}, + ); + + /// Configuration for Theta + static final BipCoinConf theta = BipCoinConf( + coinNames: CoinsConf.theta.coinName, + coinIdx: Slip44.theta, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Tron + static final BipCoinConf tron = BipCoinConf( + coinNames: CoinsConf.tron.coinName, + coinIdx: Slip44.tron, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => TrxAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for VeChain + static final BipCoinConf vechain = BipCoinConf( + coinNames: CoinsConf.veChain.coinName, + coinIdx: Slip44.vechain, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => EthAddrEncoder(), + addrParams: {}, + ); + + /// Configuration for Verge + static final BipCoinConf verge = BipCoinConf( + coinNames: CoinsConf.verge.coinName, + coinIdx: Slip44.verge, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: CoinsConf.verge.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2PKHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.verge.getParam("p2pkh_net_ver"), + }, + ); + + /// Configuration for Zcash main net + static final BipCoinConf zcashMainNet = BipCoinConf( + coinNames: CoinsConf.zcashMainNet.coinName, + coinIdx: Slip44.zcash, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: CoinsConf.zcashMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2PKHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.zcashMainNet.getParam("p2pkh_net_ver"), + }, + ); + + /// Configuration for Zcash test net + static final BipCoinConf zcashTestNet = BipCoinConf( + coinNames: CoinsConf.zcashTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerTest, + wifNetVer: CoinsConf.zcashTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2PKHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.zcashTestNet.getParam("p2pkh_net_ver"), + }, + ); + + /// Configuration for Zilliqa + static final BipCoinConf zilliqa = BipCoinConf( + coinNames: CoinsConf.zilliqa.coinName, + coinIdx: Slip44.zilliqa, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip44BtcKeyNetVerMain, + wifNetVer: null, + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => ZilAddrEncoder(), + addrParams: {}, + ); +} diff --git a/lib/bip/bip/conf/bip49/bip49_coins.dart b/lib/bip/bip/conf/bip49/bip49_coins.dart new file mode 100644 index 0000000..ff8bb71 --- /dev/null +++ b/lib/bip/bip/conf/bip49/bip49_coins.dart @@ -0,0 +1,32 @@ +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; + +/// An enumeration of supported cryptocurrencies for BIP49. It includes both main +/// networks and test networks of various cryptocurrencies. +enum Bip49Coins implements BipCoins { + // Main nets + bitcoin, + bitcoinCash, + bitcoinCashSlp, + bitcoinSv, + dash, + dogecoin, + ecash, + litecoin, + zcash, + + // Test nets + bitcoinCashTestnet, + bitcoinCashSlpTestnet, + bitcoinSvTestnet, + bitcoinTestnet, + dashTestnet, + dogecoinTestnet, + ecashTestnet, + litecoinTestnet, + zcashTestnet; + + @override + Bip49Coins get value { + return this; + } +} diff --git a/lib/bip/bip/conf/bip49/bip49_conf.dart b/lib/bip/bip/conf/bip49/bip49_conf.dart new file mode 100644 index 0000000..810b95c --- /dev/null +++ b/lib/bip/bip/conf/bip49/bip49_conf.dart @@ -0,0 +1,418 @@ +/// Bitcoin key net version for main net (ypub / yprv) + +import 'package:blockchain_utils/bip/address/p2sh_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_bitcoin_cash_conf.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coin_conf.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_litecoin_conf.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/bip/slip/slip44/slip44.dart'; + +import '../bip_conf_const.dart'; +import 'bip49_coins.dart'; + +/// A configuration class for BIP49 that defines the key network versions and +/// maps each supported BIP49Coin to its corresponding BipCoinConf. +class Bip49Conf { + /// The key network version for the mainnet of Bitcoin. + static final bip49BtcKeyNetVerMain = Bip32KeyNetVersions( + List.from([0x04, 0x9d, 0x7c, 0xb2]), + List.from([0x04, 0x9d, 0x78, 0x78]), + ); + + /// The key network version for the testnet of Bitcoin. + static final bip49BtcKeyNetVerTest = Bip32KeyNetVersions( + List.from([0x04, 0x4a, 0x52, 0x62]), + List.from([0x04, 0x4a, 0x4e, 0x28]), + ); + + /// A mapping that associates each BIP49Coin (enum) with its corresponding + /// BipCoinConf configuration. + static Map coinToConf = { + Bip49Coins.bitcoin: Bip49Conf.bitcoinMainNet, + Bip49Coins.bitcoinTestnet: Bip49Conf.bitcoinTestNet, + Bip49Coins.bitcoinCash: Bip49Conf.bitcoinCashMainNet, + Bip49Coins.bitcoinCashTestnet: Bip49Conf.bitcoinCashTestNet, + Bip49Coins.bitcoinCashSlp: Bip49Conf.bitcoinCashSlpMainNet, + Bip49Coins.bitcoinCashSlpTestnet: Bip49Conf.bitcoinCashSlpTestNet, + Bip49Coins.bitcoinSv: Bip49Conf.bitcoinSvMainNet, + Bip49Coins.bitcoinSvTestnet: Bip49Conf.bitcoinSvTestNet, + Bip49Coins.dash: Bip49Conf.dashMainNet, + Bip49Coins.dashTestnet: Bip49Conf.dashTestNet, + Bip49Coins.dogecoin: Bip49Conf.dogecoinMainNet, + Bip49Coins.dogecoinTestnet: Bip49Conf.dogecoinTestNet, + Bip49Coins.ecash: Bip49Conf.ecashMainNet, + Bip49Coins.ecashTestnet: Bip49Conf.ecashTestNet, + Bip49Coins.litecoin: Bip49Conf.litecoinMainNet, + Bip49Coins.litecoinTestnet: Bip49Conf.litecoinTestNet, + Bip49Coins.zcash: Bip49Conf.zcashMainNet, + Bip49Coins.zcashTestnet: Bip49Conf.zcashTestNet, + }; + + /// Retrieves the BipCoinConf for the given BIP49Coin. If the provided coin + /// is not an instance of Bip49Coins, an error is thrown. + static BipCoinConf getCoin(BipCoins coin) { + if (coin is! Bip49Coins) { + throw ArgumentError("Coin type is not an enumerative of Bip49Coins"); + } + return coinToConf[coin.value]!; + } + + /// Configuration for Dash main net + static final BipCoinConf dashMainNet = BipCoinConf( + coinNames: CoinsConf.dashMainNet.coinName, + coinIdx: Slip44.dash, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerMain, + wifNetVer: CoinsConf.dashMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2SHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.dashMainNet.getParam("p2sh_net_ver"), + }); + + /// Configuration for Dash test net + static final BipCoinConf dashTestNet = BipCoinConf( + coinNames: CoinsConf.dashTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerTest, + wifNetVer: CoinsConf.dashTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2SHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.dashTestNet.getParam("p2sh_net_ver"), + }); + + /// Configuration for Dogecoin main net + static final BipCoinConf dogecoinMainNet = BipCoinConf( + coinNames: CoinsConf.dogecoinMainNet.coinName, + coinIdx: Slip44.dogecoin, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32KeyNetVersions( + List.from([0x02, 0xfa, 0xca, 0xfd]), + List.from([0x02, 0xfa, 0xc3, 0x98]), + ), + wifNetVer: CoinsConf.dogecoinMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2SHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.dogecoinMainNet.getParam("p2sh_net_ver"), + }); + + /// Configuration for Dogecoin test net + static final BipCoinConf dogecoinTestNet = BipCoinConf( + coinNames: CoinsConf.dogecoinTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32KeyNetVersions( + List.from([0x04, 0x32, 0xa9, 0xa8]), + List.from([0x04, 0x32, 0xa2, 0x43]), + ), + wifNetVer: CoinsConf.dogecoinTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2SHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.dogecoinTestNet.getParam("p2sh_net_ver"), + }); + + /// Configuration for Litecoin main net + static final BipLitecoinConf litecoinMainNet = BipLitecoinConf( + coinNames: CoinsConf.litecoinMainNet.coinName, + coinIdx: Slip44.litecoin, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerMain, + altKeyNetVer: Bip32KeyNetVersions( + List.from([0x01, 0xb2, 0x6e, 0xf6]), + List.from([0x01, 0xb2, 0x67, 0x92]), + ), + + /// Mtpv / Mtub + wifNetVer: CoinsConf.litecoinMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2SHAddrEncoder(), + + /// addrCls: P2SHAddrEncoder, + addrParams: { + "std_net_ver": CoinsConf.litecoinMainNet.getParam("p2sh_std_net_ver"), + "depr_net_ver": CoinsConf.litecoinMainNet.getParam("p2sh_depr_net_ver"), + }); + + /// Configuration for Litecoin test net + static final BipLitecoinConf litecoinTestNet = BipLitecoinConf( + coinNames: CoinsConf.litecoinTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32KeyNetVersions( + List.from([0x04, 0x36, 0xf6, 0xe1]), + List.from([0x04, 0x36, 0xef, 0x7d]), + ), + + /// ttub / ttpv + altKeyNetVer: Bip32KeyNetVersions( + List.from([0x04, 0x36, 0xf6, 0xe1]), + List.from([0x04, 0x36, 0xef, 0x7d]), + ), + wifNetVer: CoinsConf.litecoinTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2SHAddrEncoder(), + addrParams: { + "std_net_ver": CoinsConf.litecoinTestNet.getParam("p2sh_std_net_ver"), + "depr_net_ver": CoinsConf.litecoinTestNet.getParam("p2sh_depr_net_ver"), + }); + + /// Configuration for Zcash main net + static final BipCoinConf zcashMainNet = BipCoinConf( + coinNames: CoinsConf.zcashMainNet.coinName, + coinIdx: Slip44.zcash, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerMain, + wifNetVer: CoinsConf.zcashMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2SHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.zcashMainNet.getParam("p2sh_net_ver"), + }); + + /// Configuration for Zcash test net + static final BipCoinConf zcashTestNet = BipCoinConf( + coinNames: CoinsConf.zcashTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerTest, + wifNetVer: CoinsConf.zcashTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2SHAddrEncoder(), + + /// addrCls: P2SHAddrEncoder, + addrParams: { + "net_ver": CoinsConf.zcashTestNet.getParam("p2sh_net_ver"), + }); + + /// Configuration for Bitcoin main net + static final BipCoinConf bitcoinMainNet = BipCoinConf( + coinNames: CoinsConf.bitcoinMainNet.coinName, + coinIdx: Slip44.bitcoin, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerMain, + wifNetVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2SHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.bitcoinMainNet.getParam("p2sh_net_ver"), + }); + + /// Configuration for Bitcoin test net + static final BipCoinConf bitcoinTestNet = BipCoinConf( + coinNames: CoinsConf.bitcoinTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerTest, + wifNetVer: CoinsConf.bitcoinTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2SHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.bitcoinTestNet.getParam("p2sh_net_ver"), + }); + + /// Configuration for BitcoinSV main net + static final BipCoinConf bitcoinSvMainNet = BipCoinConf( + coinNames: CoinsConf.bitcoinSvMainNet.coinName, + coinIdx: Slip44.bitcoinSv, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerMain, + wifNetVer: CoinsConf.bitcoinSvMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2SHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.bitcoinSvMainNet.getParam("p2sh_net_ver"), + }); + + /// Configuration for BitcoinSV test net + static final BipCoinConf bitcoinSvTestNet = BipCoinConf( + coinNames: CoinsConf.bitcoinSvTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerTest, + wifNetVer: CoinsConf.bitcoinSvTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2SHAddrEncoder(), + addrParams: { + "net_ver": CoinsConf.bitcoinSvTestNet.getParam("p2sh_net_ver"), + }); + + /// with lagacy + /// Configuration for Bitcoin Cash main net + static final BipBitcoinCashConf bitcoinCashMainNet = BipBitcoinCashConf( + coinNames: CoinsConf.bitcoinCashMainNet.coinName, + coinIdx: Slip44.bitcoinCash, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerMain, + wifNetVer: CoinsConf.bitcoinCashMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic legacy]) { + if (legacy == true) { + return P2SHAddrEncoder(); + } + return BchP2SHAddrEncoder(); + }, + addrParams: { + 'std': { + "net_ver": CoinsConf.bitcoinCashMainNet.getParam("p2sh_std_net_ver"), + 'hrp': CoinsConf.bitcoinCashMainNet.getParam("p2sh_std_hrp"), + }, + 'legacy': { + "net_ver": CoinsConf.bitcoinCashMainNet.getParam("p2sh_legacy_net_ver"), + }, + }, + ); + + /// Configuration for Bitcoin Cash test net + static final BipBitcoinCashConf bitcoinCashTestNet = BipBitcoinCashConf( + coinNames: CoinsConf.bitcoinCashTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + addressEncoder: ([dynamic legacy]) { + if (legacy == true) { + return P2SHAddrEncoder(); + } + return BchP2SHAddrEncoder(); + }, + keyNetVer: bip49BtcKeyNetVerTest, + wifNetVer: CoinsConf.bitcoinCashTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addrParams: { + 'std': { + "net_ver": CoinsConf.bitcoinCashTestNet.getParam("p2sh_std_net_ver"), + 'hrp': CoinsConf.bitcoinCashTestNet.getParam("p2sh_std_hrp"), + }, + 'legacy': { + "net_ver": CoinsConf.bitcoinCashTestNet.getParam("p2sh_legacy_net_ver"), + }, + }, + ); + + /// Configuration for Bitcoin Cash Simple Ledger Protocol main net + static final BipBitcoinCashConf bitcoinCashSlpMainNet = BipBitcoinCashConf( + coinNames: CoinsConf.bitcoinCashSlpMainNet.coinName, + coinIdx: Slip44.bitcoinCash, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerMain, + wifNetVer: CoinsConf.bitcoinCashSlpMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic legacy]) { + if (legacy == true) { + return P2SHAddrEncoder(); + } + return BchP2SHAddrEncoder(); + }, + addrParams: { + 'std': { + "net_ver": CoinsConf.bitcoinCashSlpMainNet.getParam("p2sh_std_net_ver"), + 'hrp': CoinsConf.bitcoinCashSlpMainNet.getParam("p2sh_std_hrp"), + }, + 'legacy': { + "net_ver": + CoinsConf.bitcoinCashSlpMainNet.getParam("p2sh_legacy_net_ver"), + }, + }, + ); + + /// Configuration for Bitcoin Cash Simple Ledger Protocol test net + static final BipBitcoinCashConf bitcoinCashSlpTestNet = BipBitcoinCashConf( + coinNames: CoinsConf.bitcoinCashSlpTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerTest, + wifNetVer: CoinsConf.bitcoinCashSlpTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic legacy]) { + if (legacy == true) { + return P2SHAddrEncoder(); + } + return BchP2SHAddrEncoder(); + }, + addrParams: { + 'std': { + "net_ver": CoinsConf.bitcoinCashSlpTestNet.getParam("p2sh_std_net_ver"), + 'hrp': CoinsConf.bitcoinCashSlpTestNet.getParam("p2sh_std_hrp"), + }, + 'legacy': { + "net_ver": + CoinsConf.bitcoinCashSlpTestNet.getParam("p2sh_legacy_net_ver"), + }, + }, + + /// addrClsLegacy: P2SHAddrEncoder, + ); + + /// Configuration for eCash main net + static final BipBitcoinCashConf ecashMainNet = BipBitcoinCashConf( + coinNames: CoinsConf.ecashMainNet.coinName, + coinIdx: Slip44.bitcoinCash, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerMain, + wifNetVer: CoinsConf.ecashMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic legacy]) { + if (legacy == true) { + return P2SHAddrEncoder(); + } + return BchP2SHAddrEncoder(); + }, + addrParams: { + 'std': { + "net_ver": CoinsConf.ecashMainNet.getParam("p2sh_std_net_ver"), + 'hrp': CoinsConf.ecashMainNet.getParam("p2sh_std_hrp"), + }, + 'legacy': { + "net_ver": CoinsConf.ecashMainNet.getParam("p2sh_legacy_net_ver"), + }, + }, + ); + + /// Configuration for eCash test net + static final BipBitcoinCashConf ecashTestNet = BipBitcoinCashConf( + coinNames: CoinsConf.ecashTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: bip49BtcKeyNetVerTest, + wifNetVer: CoinsConf.ecashTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic legacy]) { + if (legacy == true) { + return P2SHAddrEncoder(); + } + return BchP2SHAddrEncoder(); + }, + addrParams: { + 'std': { + "net_ver": CoinsConf.ecashTestNet.getParam("p2sh_std_net_ver"), + 'hrp': CoinsConf.ecashTestNet.getParam("p2sh_std_hrp"), + }, + 'legacy': { + "net_ver": CoinsConf.ecashTestNet.getParam("p2sh_legacy_net_ver"), + }, + }, + ); +} diff --git a/lib/bip/bip/conf/bip84/bip84_coins.dart b/lib/bip/bip/conf/bip84/bip84_coins.dart new file mode 100644 index 0000000..d699b75 --- /dev/null +++ b/lib/bip/bip/conf/bip84/bip84_coins.dart @@ -0,0 +1,71 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; + +/// An enumeration of supported cryptocurrencies for BIP84. It includes both main +/// networks and test networks of various cryptocurrencies. +enum Bip84Coins implements BipCoins { + // Main nets + bitcoin, + litecoin, + // Test nets + bitcoinTestnet, + litecoinTestnet; + + @override + Bip84Coins get value { + return this; + } +} diff --git a/lib/bip/bip/conf/bip84/bip84_conf.dart b/lib/bip/bip/conf/bip84/bip84_conf.dart new file mode 100644 index 0000000..6952001 --- /dev/null +++ b/lib/bip/bip/conf/bip84/bip84_conf.dart @@ -0,0 +1,95 @@ +import 'package:blockchain_utils/bip/address/p2wpkh_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip84/bip84_coins.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coin_conf.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_conf_const.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/bip/slip/slip44/slip44.dart'; + +/// A configuration class for BIP84 that defines the key network versions and +/// maps each supported BIP84Coin to its corresponding BipCoinConf. +class Bip84Conf { + /// A mapping that associates each BIP84Coin (enum) with its corresponding + /// BipCoinConf configuration. + static final Map coinToConf = { + Bip84Coins.bitcoin: Bip84Conf.bitcoinMainNet, + Bip84Coins.bitcoinTestnet: Bip84Conf.bitcoinTestNet, + Bip84Coins.litecoin: Bip84Conf.litecoinMainNet, + Bip84Coins.litecoinTestnet: Bip84Conf.litecoinTestNet, + }; + + /// Retrieves the BipCoinConf for the given BIP84Coin. If the provided coin + /// is not an instance of Bip84Coins, an error is thrown. + static BipCoinConf getCoin(BipCoins coin) { + if (coin is! Bip84Coins) { + throw ArgumentError("Coin type is not an enumerative of Bip84Coins"); + } + return coinToConf[coin.value]!; + } + + /// The key network version for Bitcoin. + static final Bip32KeyNetVersions bip84BtcKeyNetVer = Bip32KeyNetVersions( + List.from([0x04, 0xb2, 0x47, 0x46]), + List.from([0x04, 0xb2, 0x43, 0x0c]), + ); + + /// Configuration for Bitcoin main net + static final BipCoinConf bitcoinMainNet = BipCoinConf( + coinNames: CoinsConf.bitcoinMainNet.coinName, + coinIdx: Slip44.bitcoin, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip84BtcKeyNetVer, + wifNetVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addressEncoder: ([dynamic kwargs]) => P2WPKHAddrEncoder(), + addrParams: {"hrp": CoinsConf.bitcoinMainNet.getParam("p2wpkh_hrp")}, + ); + + /// Configuration for Bitcoin test net + static final BipCoinConf bitcoinTestNet = BipCoinConf( + coinNames: CoinsConf.bitcoinTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32KeyNetVersions( + List.from([0x04, 0x5f, 0x1c, 0xf6]), + List.from([0x04, 0x5f, 0x18, 0xbc]), + ), + wifNetVer: CoinsConf.bitcoinTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addrParams: {"hrp": CoinsConf.bitcoinTestNet.getParam("p2wpkh_hrp")}, + addressEncoder: ([dynamic kwargs]) => P2WPKHAddrEncoder(), + ); + + /// Configuration for Litecoin main net + static final BipCoinConf litecoinMainNet = BipCoinConf( + coinNames: CoinsConf.litecoinMainNet.coinName, + coinIdx: Slip44.litecoin, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip84BtcKeyNetVer, + wifNetVer: CoinsConf.litecoinMainNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addrParams: {"hrp": CoinsConf.litecoinMainNet.getParam("p2wpkh_hrp")}, + addressEncoder: ([dynamic kwargs]) => P2WPKHAddrEncoder(), + ); + + /// Configuration for Litecoin test net + static final BipCoinConf litecoinTestNet = BipCoinConf( + coinNames: CoinsConf.litecoinTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32KeyNetVersions( + List.from([0x04, 0x36, 0xf6, 0xe1]), + List.from([0x04, 0x36, 0xef, 0x7d]), + ), + wifNetVer: CoinsConf.litecoinTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addrParams: {"hrp": CoinsConf.litecoinTestNet.getParam("p2wpkh_hrp")}, + addressEncoder: ([dynamic kwargs]) => P2WPKHAddrEncoder(), + ); +} diff --git a/lib/bip/bip/conf/bip86/bip86_coins.dart b/lib/bip/bip/conf/bip86/bip86_coins.dart new file mode 100644 index 0000000..b615605 --- /dev/null +++ b/lib/bip/bip/conf/bip86/bip86_coins.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; + +/// An enumeration of supported cryptocurrencies for BIP86. It includes both main +/// networks and test networks of various cryptocurrencies. +enum Bip86Coins implements BipCoins { + /// mainnets + bitcoin, + + /// testnets + bitcoinTestnet; + + @override + Bip86Coins get value { + return this; + } +} diff --git a/lib/bip/bip/conf/bip86/bip86_conf.dart b/lib/bip/bip/conf/bip86/bip86_conf.dart new file mode 100644 index 0000000..fe2edaf --- /dev/null +++ b/lib/bip/bip/conf/bip86/bip86_conf.dart @@ -0,0 +1,119 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/address/p2tr_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_const.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip86/bip86_coins.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coin_conf.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_conf_const.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/bip/slip/slip44/slip44.dart'; + +/// A configuration class for BIP86 that defines the key network versions and +/// maps each supported BIP86Coin to its corresponding BipCoinConf. +class Bip86Conf { + /// The key network version for the mainnet of Bitcoin. + static final bip86BtcKeyNetVer = Bip32Const.mainNetKeyNetVersions; + + /// The key network version for the testnet of Bitcoin. + static final bip86BtcKeyNetVerTest = Bip32Const.testNetKeyNetVersions; + + /// A mapping that associates each BIP86Coin (enum) with its corresponding + /// BipCoinConf configuration. + static final Map coinToConf = { + Bip86Coins.bitcoin: Bip86Conf.bitcoinMainNet, + Bip86Coins.bitcoinTestnet: Bip86Conf.bitcoinTestNet, + }; + + /// Retrieves the BipCoinConf for the given BIP86Coin. If the provided coin + /// is not an instance of Bip86Coins, an error is thrown. + static BipCoinConf getCoin(BipCoins coin) { + if (coin is! Bip86Coins) { + throw ArgumentError("Coin type is not an enumerative of Bip86Coins"); + } + return coinToConf[coin.value]!; + } + + /// Configuration for Bitcoin main net + static BipCoinConf bitcoinMainNet = BipCoinConf( + coinNames: CoinsConf.bitcoinMainNet.coinName, + coinIdx: Slip44.bitcoin, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: bip86BtcKeyNetVer, + wifNetVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + addressEncoder: ([dynamic kwargs]) => P2TRAddrEncoder(), + type: EllipticCurveTypes.secp256k1, + addrParams: { + "hrp": CoinsConf.bitcoinMainNet.getParam("p2tr_hrp"), + }, + ); + + /// Configuration for Bitcoin test net + static BipCoinConf bitcoinTestNet = BipCoinConf( + coinNames: CoinsConf.bitcoinTestNet.coinName, + coinIdx: Slip44.testnet, + isTestnet: true, + defPath: derPathNonHardenedFull, + addressEncoder: ([dynamic kwargs]) => P2TRAddrEncoder(), + keyNetVer: bip86BtcKeyNetVerTest, + wifNetVer: CoinsConf.bitcoinTestNet.getParam("wif_net_ver"), + type: EllipticCurveTypes.secp256k1, + addrParams: { + "hrp": CoinsConf.bitcoinTestNet.getParam("p2tr_hrp"), + }, + ); +} diff --git a/lib/bip/bip/conf/bip_bitcoin_cash_conf.dart b/lib/bip/bip/conf/bip_bitcoin_cash_conf.dart new file mode 100644 index 0000000..4416be6 --- /dev/null +++ b/lib/bip/bip/conf/bip_bitcoin_cash_conf.dart @@ -0,0 +1,70 @@ +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coin_conf.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_name.dart'; + +/// A class representing the configuration for Bitcoin Cash (BCH) based on the BIP framework. +class BipBitcoinCashConf extends BipCoinConf { + /// Flag to indicate whether legacy address format should be used. + final bool useLagacyAdder; + + /// Returns an address encoder based on the 'useLagacyAdder' flag. + @override + BlockchainAddressEncoder encoder() { + return addressEncoder([useLagacyAdder]); + } + + /// Constructor for BipBitcoinCashConf. + @override + const BipBitcoinCashConf({ + required super.coinNames, + required super.coinIdx, + required super.isTestnet, + required super.defPath, + required super.keyNetVer, + required super.wifNetVer, + required super.type, + required super.addressEncoder, + required super.addrParams, + this.useLagacyAdder = false, + }); + + /// Overrides the 'addrParams' getter to return the appropriate address parameters + /// based on the 'useLagacyAdder' flag. + @override + Map get addrParams { + if (useLagacyAdder) { + return super.addrParams["legacy"]; + } + return super.addrParams['std']; + } + + /// Creates a copy of the BipBitcoinCashConf object with optional properties updated. + @override + BipBitcoinCashConf copy({ + CoinNames? coinNames, + int? coinIdx, + bool? isTestnet, + String? defPath, + Bip32KeyNetVersions? keyNetVer, + Bip32KeyNetVersions? altKeyNetVer, + List? wifNetVer, + Map? addrParams, + EllipticCurveTypes? type, + AddrEncoder? addressEncoder, + bool? useLagacyAdder, + }) { + return BipBitcoinCashConf( + coinNames: coinNames ?? this.coinNames, + coinIdx: coinIdx ?? this.coinIdx, + isTestnet: isTestnet ?? this.isTestnet, + defPath: defPath ?? this.defPath, + keyNetVer: keyNetVer ?? this.keyNetVer, + wifNetVer: wifNetVer ?? this.wifNetVer, + addrParams: addrParams ?? this.addrParams, + type: type ?? this.type, + addressEncoder: addressEncoder ?? this.addressEncoder, + useLagacyAdder: useLagacyAdder ?? this.useLagacyAdder); + } +} diff --git a/lib/bip/bip/conf/bip_coin_conf.dart b/lib/bip/bip/conf/bip_coin_conf.dart new file mode 100644 index 0000000..11e5cc2 --- /dev/null +++ b/lib/bip/bip/conf/bip_coin_conf.dart @@ -0,0 +1,130 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/address/encoder.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_name.dart'; + +/// A typedef for the address encoder function that takes optional dynamic parameters. +typedef AddrEncoder = BlockchainAddressEncoder Function([dynamic kwargs]); + +/// A base class representing configuration parameters for a cryptocurrency coin. +class BipCoinConf { + /// Returns the address encoder for this coin configuration. + BlockchainAddressEncoder encoder() { + return addressEncoder(); + } + + /// Configuration properties. + final CoinNames coinNames; + final int coinIdx; + final bool isTestnet; + final String defPath; + final Bip32KeyNetVersions keyNetVer; + final List? wifNetVer; + final AddrEncoder addressEncoder; + final Map addrParams; + final EllipticCurveTypes type; + + /// Creates a copy of the BipCoinConf object with optional properties updated. + BipCoinConf copy({ + CoinNames? coinNames, + int? coinIdx, + bool? isTestnet, + String? defPath, + Bip32KeyNetVersions? keyNetVer, + List? wifNetVer, + Map? addrParams, + EllipticCurveTypes? type, + AddrEncoder? addressEncoder, + }) { + return BipCoinConf( + coinNames: coinNames ?? this.coinNames, + coinIdx: coinIdx ?? this.coinIdx, + isTestnet: isTestnet ?? this.isTestnet, + defPath: defPath ?? this.defPath, + keyNetVer: keyNetVer ?? this.keyNetVer, + wifNetVer: wifNetVer ?? this.wifNetVer, + addrParams: addrParams ?? this.addrParams, + type: type ?? this.type, + addressEncoder: addressEncoder ?? this.addressEncoder); + } + + /// Constructor for BipCoinConf. + const BipCoinConf({ + required this.coinNames, + required this.coinIdx, + required this.isTestnet, + required this.defPath, + required this.keyNetVer, + required this.wifNetVer, + required this.addrParams, + required this.type, + required this.addressEncoder, + }); + + /// Get address parameters with optional chain code inclusion. + /// If 'chain_code' is specified in 'addrParams', it will be replaced with the chain code + /// from the provided 'pubKey'. + Map getParams(Bip32PublicKey pubKey) { + if (addrParams["chain_code"] == true) { + final params = {...addrParams}; + params["chain_code"] = pubKey.chainCode.toBytes(); + return params; + } + return addrParams; + } +} diff --git a/lib/bip/bip/conf/bip_coins.dart b/lib/bip/bip/conf/bip_coins.dart new file mode 100644 index 0000000..8545e2d --- /dev/null +++ b/lib/bip/bip/conf/bip_coins.dart @@ -0,0 +1,10 @@ +/// An abstract class representing a collection of cryptocurrency coins. +/// +/// This abstract class defines a contract for classes that provide a collection +/// of cryptocurrency coins. Subclasses should implement the 'value' getter to +/// return an instance of themselves or a specific type that represents the +/// collection of coins. +abstract class BipCoins { + /// Gets the collection of cryptocurrency coins. + BipCoins get value; +} diff --git a/lib/bip/bip/conf/bip_conf_const.dart b/lib/bip/bip/conf/bip_conf_const.dart new file mode 100644 index 0000000..18de6d2 --- /dev/null +++ b/lib/bip/bip/conf/bip_conf_const.dart @@ -0,0 +1,62 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +// Hardened default path (full) +const String derPathHardenedFull = "0'/0'/0'"; + +// Hardened default path (short) +const String derPathHardenedShort = "0'"; + +// Non-hardened default path (full) +const String derPathNonHardenedFull = "0'/0/0"; diff --git a/lib/bip/bip/conf/bip_config.dart b/lib/bip/bip/conf/bip_config.dart new file mode 100644 index 0000000..9996ba8 --- /dev/null +++ b/lib/bip/bip/conf/bip_config.dart @@ -0,0 +1,26 @@ +/// The 'bip_config' library provides configuration files and information related to +/// various BIP (Bitcoin Improvement Proposal) standards, including BIP-44, BIP-49, BIP-84, +/// and BIP-86. It defines coin names, parameters, and coin configuration data for +/// hierarchical deterministic wallets in cryptocurrencies, facilitating wallet development +/// and key derivation for a variety of blockchain networks. +library bip_config; + +/// Export statement for BIP-44 coin definitions and parameters, including +/// coin names and configuration information for hierarchical deterministic wallets. +export 'bip44/bip44_coins.dart'; +export 'bip44/bip44_conf.dart'; + +/// Export statement for BIP-49 coin definitions and parameters, including +/// coin names and configuration information for hierarchical deterministic wallets. +export 'bip49/bip49_coins.dart'; +export 'bip49/bip49_conf.dart'; + +/// Export statement for BIP-84 coin definitions and parameters, including +/// coin names and configuration information for hierarchical deterministic wallets. +export 'bip84/bip84_coins.dart'; +export 'bip84/bip84_conf.dart'; + +/// Export statement for BIP-86 coin definitions and parameters, including +/// coin names and configuration information for hierarchical deterministic wallets. +export 'bip86/bip86_coins.dart'; +export 'bip86/bip86_conf.dart'; diff --git a/lib/bip/bip/conf/bip_litecoin_conf.dart b/lib/bip/bip/conf/bip_litecoin_conf.dart new file mode 100644 index 0000000..782f55d --- /dev/null +++ b/lib/bip/bip/conf/bip_litecoin_conf.dart @@ -0,0 +1,76 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coin_conf.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_name.dart'; + +/// A class representing the configuration for Litecoin (LTC) based on the BIP framework. +class BipLitecoinConf extends BipCoinConf { + /// Configuration properties specific to Litecoin. + final Bip32KeyNetVersions altKeyNetVer; + final bool useDeprAddress; + final bool useAltKeyNetVer; + + /// Constructor for BipLitecoinConf. + const BipLitecoinConf({ + required super.coinNames, + required super.coinIdx, + required super.isTestnet, + required super.defPath, + required super.keyNetVer, + required this.altKeyNetVer, + required super.wifNetVer, + required super.addrParams, + required super.addressEncoder, + required super.type, + this.useAltKeyNetVer = false, + this.useDeprAddress = false, + }); + + /// Overrides the 'addrParams' getter to return the appropriate address parameters + /// based on the 'useDeprAddress' flag. + @override + Map get addrParams { + return { + "net_ver": useDeprAddress + ? super.addrParams["depr_net_ver"] + : super.addrParams['std_net_ver'] + }; + } + + /// Overrides the 'keyNetVer' getter to use the alternate key network version + /// when the 'usAltKeyNetVer' flag is set to true. + @override + Bip32KeyNetVersions get keyNetVer => + useAltKeyNetVer ? altKeyNetVer : super.keyNetVer; + @override + + /// Creates a copy of the BipLitecoinConf object with optional properties updated. + BipLitecoinConf copy({ + CoinNames? coinNames, + int? coinIdx, + bool? isTestnet, + String? defPath, + Bip32KeyNetVersions? keyNetVer, + Bip32KeyNetVersions? altKeyNetVer, + List? wifNetVer, + Map? addrParams, + EllipticCurveTypes? type, + AddrEncoder? addressEncoder, + bool? useAltKeyNetVer, + bool? useDeprAddress, + }) { + return BipLitecoinConf( + coinNames: coinNames ?? this.coinNames, + coinIdx: coinIdx ?? this.coinIdx, + isTestnet: isTestnet ?? this.isTestnet, + defPath: defPath ?? this.defPath, + keyNetVer: keyNetVer ?? this.keyNetVer, + wifNetVer: wifNetVer ?? this.wifNetVer, + addrParams: addrParams ?? this.addrParams, + type: type ?? this.type, + addressEncoder: addressEncoder ?? this.addressEncoder, + altKeyNetVer: altKeyNetVer ?? this.altKeyNetVer, + useAltKeyNetVer: useAltKeyNetVer ?? this.useAltKeyNetVer, + useDeprAddress: useDeprAddress ?? this.useDeprAddress); + } +} diff --git a/lib/bip/cardano/bip32/cardano_byron_legacy_bip32.dart b/lib/bip/cardano/bip32/cardano_byron_legacy_bip32.dart new file mode 100644 index 0000000..b9b68d3 --- /dev/null +++ b/lib/bip/cardano/bip32/cardano_byron_legacy_bip32.dart @@ -0,0 +1,146 @@ +import 'package:blockchain_utils/bip/bip/bip32/base/bip32_base.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_key_derivator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_const.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_ex.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/cardano/bip32/cardano_byron_legacy_key_derivator.dart'; +import 'package:blockchain_utils/bip/cardano/bip32/cardano_byron_legacy_mst_key_generator.dart'; + +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; + +/// This class provides a foundation for managing hierarchical deterministic keys +/// according to the cardano byron legacy BIP-32. It includes methods and properties for +/// working with extended keys, deriving child keys, and conversion between +/// public and private keys. +/// Constructors: +/// - [CardanoByronLegacyBip32]: A private constructor used to create an instance with specified key data, network versions, private key, and public key. +/// - [CardanoByronLegacyBip32.fromPrivateKey]: Creates a Bip32 key pair from a private key. +/// - [CardanoByronLegacyBip32.fromExtendedKey]: Creates a Bip32 key pair from an extended key. +/// - [CardanoByronLegacyBip32.fromSeed]: Creates a Bip32 key pair from a seed. +/// - [CardanoByronLegacyBip32.fromPublicKey]: Creates a Bip32 key pair from a public key. +class CardanoByronLegacyBip32 extends Bip32Base { + /// Private constructor for creating an instance with specified parameters. + CardanoByronLegacyBip32._({ + required super.privKey, + required super.pubKey, + required super.keyData, + required super.keyNetVer, + }); + + /// Creates a [CardanoByronLegacyBip32] instance from a private key. + CardanoByronLegacyBip32.fromPrivateKey(List privKey, + [Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer]) + : super.fromPrivateKey(privKey, keyData, keyNetVer); + + /// Creates a [CardanoByronLegacyBip32] instance from a extended key. + CardanoByronLegacyBip32.fromExtendedKey(String exKeyStr, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromExtendedKey(exKeyStr, keyNetVer); + + /// Creates a [CardanoByronLegacyBip32] instance from a public key. + CardanoByronLegacyBip32.fromPublicKey(List pubkey, + [Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer]) + : super.fromPublicKey(pubkey, keyData, keyNetVer); + + /// Creates a [CardanoByronLegacyBip32] instance from a seed. + CardanoByronLegacyBip32.fromSeed(List seedBytes, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromSeed(seedBytes, keyNetVer); + + /// Generates a child key based on the given [index]. + /// + /// This method derives a child key from the current Bip32 key. + /// It can be either a private or public child derivation based on the current key type. + /// + /// Parameters: + /// - [index]: The index of the child key to generate. + /// + /// Returns: + /// - A new [CardanoByronLegacyBip32] instance representing the child key. + /// + /// Throws: + /// - [Bip32KeyError]: If private child derivation with a non-hardened index is not supported. + /// + /// Note: This method is used to create child keys from the current key, both for private and public keys, + /// and is determined by the key type (public or private). + @override + CardanoByronLegacyBip32 childKey(Bip32KeyIndex index) { + final isPublic = isPublicOnly; + + if (!isPublic) { + if (!index.isHardened && !isPublicDerivationSupported) { + throw const Bip32KeyError( + 'Private child derivation with not-hardened index is not supported'); + } + assert(!isPublicOnly); + final result = + keyDerivator.ckdPriv(privateKey, publicKey, index, curveType); + + return CardanoByronLegacyBip32._( + keyData: Bip32KeyData( + chainCode: Bip32ChainCode(result.$2), + depth: depth.increase(), + index: index, + parentFingerPrint: fingerPrint, + ), + keyNetVer: keyNetVersions, + privKey: result.$1, + pubKey: null); + } + + // Check if supported + if (!isPublicDerivationSupported) { + throw const Bip32KeyError('Public child derivation is not supported'); + } + if (index.isHardened) { + throw const Bip32KeyError( + "Public child derivation cannot be used to create an hardened child key"); + } + final result = keyDerivator.ckdPub(publicKey, index, curveType); + return CardanoByronLegacyBip32._( + keyData: Bip32KeyData( + chainCode: Bip32ChainCode(result.$2), + depth: depth.increase(), + index: index, + parentFingerPrint: fingerPrint, + ), + keyNetVer: keyNetVersions, + privKey: null, + pubKey: result.$1); + } + + /// Returns the elliptic curve type associated with this Bip32 key. + /// + /// This getter returns the elliptic curve type, + /// which is always [EllipticCurveTypes.ed25519Kholaw] for [CardanoByronLegacyBip32] keys. + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.ed25519Kholaw; + } + + /// Returns the default Bip32 key network versions. + /// + /// This getter returns the default network versions for [CardanoByronLegacyBip32] keys. + @override + Bip32KeyNetVersions get defaultKeyNetVersion { + return Bip32Const.kholawKeyNetVersions; + } + + /// Returns the key derivator used for [CardanoByronLegacyBip32] keys. + /// + /// This getter returns an instance of [CardanoByronLegacyKeyDerivator] as the key derivator for this key type. + @override + IBip32KeyDerivator get keyDerivator { + return CardanoByronLegacyKeyDerivator(); + } + + /// Returns the master key generator used for [CardanoByronLegacyBip32] keys. + /// + /// This getter returns an instance of [CardanoByronLegacyMstKeyGenerator] as the master key generator for this key type. + @override + IBip32MstKeyGenerator get masterKeyGenerator { + return CardanoByronLegacyMstKeyGenerator(); + } +} diff --git a/lib/bip/cardano/bip32/cardano_byron_legacy_key_derivator.dart b/lib/bip/cardano/bip32/cardano_byron_legacy_key_derivator.dart new file mode 100644 index 0000000..d35dcce --- /dev/null +++ b/lib/bip/cardano/bip32/cardano_byron_legacy_key_derivator.dart @@ -0,0 +1,52 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_keys.dart'; +import 'package:blockchain_utils/bip/bip/bip32/khalow/bip32_kholaw_key_derivator_base.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_getter.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/binary/binary_operation.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; + +/// A class responsible for deriving key pairs using the Cardano Byron legacy key derivation process +class CardanoByronLegacyKeyDerivator + extends Bip32KholawEd25519KeyDerivatorBase { + /// Derives the left part of a new private key based on input bytes and curve type. + @override + List newPrivateKeyLeftPart( + List zlBytes, List klBytes, EllipticCurveTypes type) { + List multiPly = zlBytes.map((e) => (e * 8) & mask8).toList(); + BigInt zl8Int = BigintUtils.fromBytes(multiPly, byteOrder: Endian.little); + BigInt klInt = BigintUtils.fromBytes(klBytes, byteOrder: Endian.little); + final curve = EllipticCurveGetter.generatorFromType(type); + BigInt newPrivateKeyInt = (zl8Int + klInt) % curve.order!; + return BigintUtils.toBytes(newPrivateKeyInt, + length: 32, order: Endian.little); + } + + /// Derives the right part of a new private key based on input bytes. + @override + List newPrivateKeyRightPart(List zrBytes, List krBytes) { + return List.generate( + zrBytes.length, + (index) => (zrBytes[index] + krBytes[index]) & mask8, + ); + } + + /// Derives a new public key point based on the provided public key and input bytes. + @override + EDPoint newPublicKeyPoint(Bip32PublicKey pubKey, List zlBytes) { + final curve = EllipticCurveGetter.generatorFromType(pubKey.curveType); + final multiply = zlBytes.map((e) => (e * 8) & mask8).toList(); + BigInt zl8Int = BigintUtils.fromBytes(multiply, byteOrder: Endian.little); + + return pubKey.point + (curve * zl8Int) as EDPoint; + } + + /// Serializes a Bip32KeyIndex object to bytes. + @override + List serializeIndex(Bip32KeyIndex index) { + return index.toBytes(endianness: Endian.little); + } +} diff --git a/lib/bip/cardano/bip32/cardano_byron_legacy_mst_key_generator.dart b/lib/bip/cardano/bip32/cardano_byron_legacy_mst_key_generator.dart new file mode 100644 index 0000000..c1b2ec1 --- /dev/null +++ b/lib/bip/cardano/bip32/cardano_byron_legacy_mst_key_generator.dart @@ -0,0 +1,54 @@ +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_mst_key_generator.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/binary/bit_utils.dart'; +import 'package:blockchain_utils/cbor/types/bytes.dart'; + +/// A class that holds constants related to the Cardano Byron legacy master key generation process. +class CardanoByronLegacyMstKeyGeneratorConst { + /// The HMAC message format used in the generation of master keys. + static const String hmacMessageFormat = "Root Seed Chain "; + + /// The length of the seed in bytes. + static const int seedByteLen = 32; +} + +/// A class responsible for generating master keys for Cardano Byron legacy accounts. +class CardanoByronLegacyMstKeyGenerator extends IBip32MstKeyGenerator { + /// Generates master keys from the provided seed bytes. + @override + (List, List) generateFromSeed(List seedBytes) { + if (seedBytes.length != + CardanoByronLegacyMstKeyGeneratorConst.seedByteLen) { + throw ArgumentError('Invalid seed length (${seedBytes.length})'); + } + return _hashRepeatedly(CborBytesValue(seedBytes).encode(), 1); + } + + /// Recursively hashes and tweaks the provided data bytes to derive master keys. + (List, List) _hashRepeatedly(List dataBytes, int itrNum) { + final halves = QuickCrypto.hmacSha512HashHalves( + dataBytes, + List.from([ + ...(CardanoByronLegacyMstKeyGeneratorConst.hmacMessageFormat + + itrNum.toString()) + .codeUnits, + ])); + List keyBytes = _tweakMasterKeyBits(QuickCrypto.sha512Hash(halves.$1)); + if (BitUtils.areBitsSet(keyBytes[31], 0x20)) { + return _hashRepeatedly(dataBytes, itrNum + 1); + } + return (keyBytes, halves.$2); + } + + /// Tweaks the master key bits as part of the derivation process. + static List _tweakMasterKeyBits(List keyBytes) { + keyBytes = List.from(keyBytes); + // Clear the lowest 3 bits of the first byte of kL + keyBytes[0] = BitUtils.resetBits(keyBytes[0], 0x07); + // Clear the highest bit of the last byte of kL + keyBytes[31] = BitUtils.resetBits(keyBytes[31], 0x80); + // Set the second-highest bit of the last byte of kL + keyBytes[31] = BitUtils.setBits(keyBytes[31], 0x40); + return keyBytes; + } +} diff --git a/lib/bip/cardano/bip32/cardano_icarus_bip32.dart b/lib/bip/cardano/bip32/cardano_icarus_bip32.dart new file mode 100644 index 0000000..da2d0ff --- /dev/null +++ b/lib/bip/cardano/bip32/cardano_icarus_bip32.dart @@ -0,0 +1,146 @@ +import 'package:blockchain_utils/bip/bip/bip32/base/bip32_base.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_key_derivator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_const.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_ex.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_net_ver.dart'; +import 'package:blockchain_utils/bip/bip/bip32/khalow/bip32_kholaw_ed25519_key_derivator.dart'; +import 'package:blockchain_utils/bip/cardano/bip32/cardano_icarus_mst_key_generator.dart'; + +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; + +/// This class provides a foundation for managing hierarchical deterministic keys +/// according to the cardano Icarus BIP-32. It includes methods and properties for +/// working with extended keys, deriving child keys, and conversion between +/// public and private keys. +/// Constructors: +/// - [CardanoIcarusBip32._]: A private constructor used to create an instance with specified key data, network versions, private key, and public key. +/// - [CardanoIcarusBip32.fromPrivateKey]: Creates a Bip32 key pair from a private key. +/// - [CardanoIcarusBip32.fromExtendedKey]: Creates a Bip32 key pair from an extended key. +/// - [CardanoIcarusBip32.fromSeed]: Creates a Bip32 key pair from a seed. +/// - [CardanoIcarusBip32.fromPublicKey]: Creates a Bip32 key pair from a public key. +class CardanoIcarusBip32 extends Bip32Base { + /// Private constructor for creating an instance with specified parameters. + CardanoIcarusBip32._({ + required super.privKey, + required super.pubKey, + required super.keyData, + required super.keyNetVer, + }); + + /// Creates a [CardanoIcarusBip32] instance from a private key. + CardanoIcarusBip32.fromPrivateKey(List privKey, + {Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer}) + : super.fromPrivateKey(privKey, keyData, keyNetVer); + + /// Creates a [CardanoIcarusBip32] instance from a extended key. + CardanoIcarusBip32.fromExtendedKey(String exKeyStr, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromExtendedKey(exKeyStr, keyNetVer); + + /// Creates a [CardanoIcarusBip32] instance from a public key. + CardanoIcarusBip32.fromPublicKey(List pubkey, + {Bip32KeyData? keyData, Bip32KeyNetVersions? keyNetVer}) + : super.fromPublicKey(pubkey, keyData, keyNetVer); + + /// Creates a [CardanoIcarusBip32] instance from a seed. + CardanoIcarusBip32.fromSeed(List seedBytes, + [Bip32KeyNetVersions? keyNetVer]) + : super.fromSeed(seedBytes, keyNetVer); + + /// Generates a child key based on the given [index]. + /// + /// This method derives a child key from the current Bip32 key. + /// It can be either a private or public child derivation based on the current key type. + /// + /// Parameters: + /// - [index]: The index of the child key to generate. + /// + /// Returns: + /// - A new [CardanoIcarusBip32] instance representing the child key. + /// + /// Throws: + /// - [Bip32KeyError]: If private child derivation with a non-hardened index is not supported. + /// + /// Note: This method is used to create child keys from the current key, both for private and public keys, + /// and is determined by the key type (public or private). + @override + CardanoIcarusBip32 childKey(Bip32KeyIndex index) { + final isPublic = isPublicOnly; + + if (!isPublic) { + if (!index.isHardened && !isPublicDerivationSupported) { + throw const Bip32KeyError( + 'Private child derivation with not-hardened index is not supported'); + } + assert(!isPublicOnly); + final result = + keyDerivator.ckdPriv(privateKey, publicKey, index, curveType); + + return CardanoIcarusBip32._( + keyData: Bip32KeyData( + chainCode: Bip32ChainCode(result.$2), + depth: depth.increase(), + index: index, + parentFingerPrint: fingerPrint, + ), + keyNetVer: keyNetVersions, + privKey: result.$1, + pubKey: null); + } + + // Check if supported + if (!isPublicDerivationSupported) { + throw const Bip32KeyError('Public child derivation is not supported'); + } + if (index.isHardened) { + throw const Bip32KeyError( + "Public child derivation cannot be used to create an hardened child key"); + } + final result = keyDerivator.ckdPub(publicKey, index, curveType); + return CardanoIcarusBip32._( + keyData: Bip32KeyData( + chainCode: Bip32ChainCode(result.$2), + depth: depth.increase(), + index: index, + parentFingerPrint: fingerPrint, + ), + keyNetVer: keyNetVersions, + privKey: null, + pubKey: result.$1); + } + + /// Returns the elliptic curve type associated with this Bip32 key. + /// + /// This getter returns the elliptic curve type, + /// which is always [EllipticCurveTypes.ed25519Kholaw] for [CardanoIcarusBip32] keys. + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.ed25519Kholaw; + } + + /// Returns the default Bip32 key network versions. + /// + /// This getter returns the default network versions for [CardanoIcarusBip32] keys. + @override + Bip32KeyNetVersions get defaultKeyNetVersion { + return Bip32Const.kholawKeyNetVersions; + } + + /// Returns the key derivator used for [CardanoIcarusBip32] keys. + /// + /// This getter returns an instance of [Bip32KholawEd25519KeyDerivator] as the key derivator for this key type. + @override + IBip32KeyDerivator get keyDerivator { + return Bip32KholawEd25519KeyDerivator(); + } + + /// Returns the master key generator used for [CardanoIcarusBip32] keys. + /// + /// This getter returns an instance of [CardanoIcarusMstKeyGenerator] as the master key generator for this key type. + @override + IBip32MstKeyGenerator get masterKeyGenerator { + return CardanoIcarusMstKeyGenerator(); + } +} diff --git a/lib/bip/cardano/bip32/cardano_icarus_mst_key_generator.dart b/lib/bip/cardano/bip32/cardano_icarus_mst_key_generator.dart new file mode 100644 index 0000000..11b3260 --- /dev/null +++ b/lib/bip/cardano/bip32/cardano_icarus_mst_key_generator.dart @@ -0,0 +1,60 @@ +import 'package:blockchain_utils/bip/bip/bip32/base/ibip32_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_mst_key_generator.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_kholaw_keys.dart'; +import 'package:blockchain_utils/binary/bit_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/crypto/crypto/hmac/hmac.dart'; +import 'package:blockchain_utils/crypto/crypto/pbkdf2/pbkdf2.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// A class that holds constants related to the Cardano Icarus master key generation process. +class CardanoIcarusMasterKeyGeneratorConst { + /// The password used in the PBKDF2 key derivation process. + static const String pbkdf2Password = ''; + + /// The number of rounds for the PBKDF2 key derivation process. + static const int pbkdf2Rounds = 4096; + + /// The length of the output bytes from the PBKDF2 key derivation process. + static const int pbkdf2OutByteLen = 96; +} + +/// A class responsible for generating master keys using the Cardano Icarus master key generation process. +class CardanoIcarusMstKeyGenerator implements IBip32MstKeyGenerator { + /// Generates master keys from the provided seed bytes. + @override + (List, List) generateFromSeed(List seedBytes) { + if (seedBytes.length < Bip32Slip10MstKeyGeneratorConst.seedMinByteLen) { + throw ArgumentError('Invalid seed length (${seedBytes.length})'); + } + + List keyBytes = PBKDF2.deriveKey( + salt: seedBytes, + mac: () => HMAC( + () => SHA512(), + StringUtils.encode( + CardanoIcarusMasterKeyGeneratorConst.pbkdf2Password)), + iterations: CardanoIcarusMasterKeyGeneratorConst.pbkdf2Rounds, + length: CardanoIcarusMasterKeyGeneratorConst.pbkdf2OutByteLen); + + keyBytes = _tweakMasterKeyBits(keyBytes); + + return ( + keyBytes.sublist(0, Ed25519KholawKeysConst.privKeyByteLen), + keyBytes.sublist(Ed25519KholawKeysConst.privKeyByteLen), + ); + } + + /// Tweak the master key bits as part of the derivation process. + static List _tweakMasterKeyBits(List keyBytes) { + keyBytes = List.from(keyBytes); + // Clear the lowest 3 bits of the first byte of kL + keyBytes[0] = BitUtils.resetBits(keyBytes[0], 0x07); + // Clear the highest 3 bits of the last byte of kL (standard kholaw only clears the highest one) + keyBytes[31] = BitUtils.resetBits(keyBytes[31], 0xE0); + // Set the second-highest bit of the last byte of kL + keyBytes[31] = BitUtils.setBits(keyBytes[31], 0x40); + + return keyBytes; + } +} diff --git a/lib/bip/cardano/byron/cardano_byron_legacy.dart b/lib/bip/cardano/byron/cardano_byron_legacy.dart new file mode 100644 index 0000000..2d3e85f --- /dev/null +++ b/lib/bip/cardano/byron/cardano_byron_legacy.dart @@ -0,0 +1,198 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/address/ada_byron_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/bip32_base.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_keys.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_path.dart'; +import 'package:blockchain_utils/bip/cardano/bip32/cardano_byron_legacy_bip32.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// A class that holds constants related to the Cardano Byron legacy key derivation process. +class CardanoByronLegacyConst { + /// The salt used for PBKDF2 when deriving keys along the HD path. + static const String hdPathKeyPbkdf2Salt = 'address-hashing'; + + /// The number of rounds for PBKDF2 key derivation along the HD path. + static const int hdPathKeyPbkdf2Rounds = 500; + + /// The length of the output bytes from PBKDF2 key derivation along the HD path. + static const int hdPathKeyPbkdf2OutByteLen = 32; +} + +/// A class that represents a Cardano Byron Legacy wallet. +class CardanoByronLegacy { + final Bip32Base bip32; + + /// Constructor to create a Cardano Byron Legacy wallet from a seed. + /// + /// Initializes the wallet's hierarchical deterministic (HD) structure using the + /// provided seed bytes. + /// + /// Parameters: + /// - `seedBytes`: The seed bytes used for wallet initialization. + CardanoByronLegacy.fromSeed(List seedBytes) + : bip32 = CardanoByronLegacyBip32.fromSeed(seedBytes); + + /// Computes and returns the HD path key for Cardano Byron Legacy wallet. + /// + /// The HD path key is derived using the PBKDF2 key derivation function based on + /// the wallet's public key (compressed), chain code, and specified parameters. + /// + /// Returns: + /// - A List containing the derived HD path key. + List get hdPathKey { + final hdPath = QuickCrypto.pbkdf2DeriveKey( + password: List.from([ + ...bip32.publicKey.compressed.sublist(1), + ...bip32.chainCode.toBytes() + ]), + salt: StringUtils.encode(CardanoByronLegacyConst.hdPathKeyPbkdf2Salt), + dklen: CardanoByronLegacyConst.hdPathKeyPbkdf2OutByteLen, + iterations: CardanoByronLegacyConst.hdPathKeyPbkdf2Rounds); + return hdPath; + } + + /// Decodes and retrieves the BIP32 HD path from a Cardano Byron Legacy address. + /// + /// This method takes a Cardano Byron Legacy address, decodes it, and decrypts + /// the embedded HD path using the provided `hdPathKey`. + /// + /// Parameters: + /// - `address`: The Cardano Byron Legacy address to decode and extract the HD path from. + /// + /// Returns: + /// - A BIP32Path object representing the hierarchical deterministic (HD) path. + Bip32Path hdPathFromAddress(String address) { + final addrDecBytes = AdaByronAddrDecoder().decodeAddr(address); + final hdPathDecBytes = AdaByronAddrDecoder.decryptHdPath( + AdaByronAddrDecoder.splitDecodedBytes(addrDecBytes).$2, + hdPathKey, + ); + return hdPathDecBytes; + } + + /// master private key + Bip32PrivateKey get masterPrivateKey { + return bip32.privateKey; + } + + /// master public key + Bip32PublicKey get masterPublicKey { + return bip32.publicKey; + } + + /// Derives and returns a BIP32 base key based on two key indices, 'firstIndex' and 'secondIndex'. + Bip32Base deriveKey(Bip32KeyIndex firstIndex, Bip32KeyIndex secondIndex) { + return _deriveKey(firstIndex, secondIndex); + } + + /// Retrieves and returns the public key associated with the specified key indices. + /// + /// Parameters: + /// - 'firstIndex': The first key index for key derivation. + /// - 'secondIndex': The second key index for key derivation. + Bip32PublicKey getPublicKey( + {required Bip32KeyIndex firstIndex, required Bip32KeyIndex secondIndex}) { + final derive = deriveKey(firstIndex, secondIndex); + return derive.publicKey; + } + + /// Retrieves and returns the private key associated with the specified key indices. + /// + /// Parameters: + /// - 'firstIndex': The first key index for key derivation. + /// - 'secondIndex': The second key index for key derivation. + Bip32PrivateKey getPrivateKey( + {required Bip32KeyIndex firstIndex, required Bip32KeyIndex secondIndex}) { + final derive = deriveKey(firstIndex, secondIndex); + return derive.privateKey; + } + + /// Computes and returns a Cardano Byron Legacy address based on two key indices, 'firstIndex' and 'secondIndex'. + /// + /// Parameters: + /// - 'firstIndex': The first key index for address derivation. + /// - 'secondIndex': The second key index for address derivation. + String getAddress(Bip32KeyIndex firstIndex, Bip32KeyIndex secondIndex) { + final pubKey = + getPublicKey(firstIndex: firstIndex, secondIndex: secondIndex); + return AdaByronLegacyAddrEncoder().encodeKey(pubKey.key.compressed, { + "chain_code": pubKey.chainCode.toBytes(), + "hd_path": _getDerivationPath(firstIndex, secondIndex), + "hd_path_key": hdPathKey, + }); + } + + /// Derives and returns a BIP32 base key based on two key indices, 'firstIndex' and 'secondIndex'. + /// + /// Parameters: + /// - 'firstIndex': The first key index for key derivation. + /// - 'secondIndex': The second key index for key derivation. + Bip32Base _deriveKey(Bip32KeyIndex firstIndex, Bip32KeyIndex secondIndex) { + return bip32.derivePath(_getDerivationPath(firstIndex, secondIndex)); + } + + /// Generates the hierarchical derivation path based on two key indices. + /// + /// Parameters: + /// - 'firstIndex': The first key index. + /// - 'secondIndex': The second key index. + String _getDerivationPath( + Bip32KeyIndex firstIndex, Bip32KeyIndex secondIndex) { + return 'm/${firstIndex.toInt()}\'/${secondIndex.toInt()}\''; + } +} diff --git a/lib/bip/cardano/cardano.dart b/lib/bip/cardano/cardano.dart new file mode 100644 index 0000000..ab7bf57 --- /dev/null +++ b/lib/bip/cardano/cardano.dart @@ -0,0 +1,33 @@ +/// The 'cardano' library provides tools and components related to Cardano blockchain, +/// including key derivation, hierarchical deterministic wallets, mnemonic seed generation, +/// and more. +library cardano; + +/// Export statement for Cardano Byron Legacy BIP-32 related components. +export 'bip32/cardano_byron_legacy_bip32.dart'; +export 'bip32/cardano_byron_legacy_key_derivator.dart'; +export 'bip32/cardano_byron_legacy_mst_key_generator.dart'; + +/// Export statement for Cardano Icarus BIP-32 related components. +export 'bip32/cardano_icarus_bip32.dart'; +export 'bip32/cardano_icarus_mst_key_generator.dart'; + +/// Export statement for Cardano Byron Legacy components. +export 'byron/cardano_byron_legacy.dart'; + +/// Export statement for CIP-1852 components, which relate to Cardano Improvement +/// Proposal 1852, introducing the concept of address discrimination for Cardano. +export 'cip1852/cip1852.dart'; + +/// Export statement for CIP-1852 coin definitions and configuration. +export 'cip1852/conf/cip1852_coins.dart'; +export 'cip1852/conf/cip1852_conf.dart'; + +/// Export statement for Cardano mnemonic seed generation for Byron Legacy and Icarus wallets. +export 'mnemonic/cardano_byron_legacy_seed_generator.dart'; +export 'mnemonic/cardano_icarus_seed_generator.dart'; + +/// Export statement for Cardano Shelley components, which are relevant to the Shelley era +/// of the Cardano blockchain. +export 'shelley/cardano_shelley.dart'; +export 'shelley/cardano_shelley_keys.dart'; diff --git a/lib/bip/cardano/cip1852/cip1852.dart b/lib/bip/cardano/cip1852/cip1852.dart new file mode 100644 index 0000000..890db48 --- /dev/null +++ b/lib/bip/cardano/cip1852/cip1852.dart @@ -0,0 +1,173 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/bip/bip32/base/bip32_base.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base.dart'; +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base_ex.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coin_conf.dart'; +import 'package:blockchain_utils/bip/cardano/cip1852/conf/cip1852_coins.dart'; +import 'package:blockchain_utils/bip/cardano/cip1852/conf/cip1852_conf.dart'; + +/// Constants related to CIP-1852 (Cardano Improvement Proposal 1852). +class Cip1852Const { + /// The name of the CIP-1852 specification. + static const String specName = "CIP-1852"; + + /// The purpose index for CIP-1852, derived as a hardened index (1852'). + static final Bip32KeyIndex purpose = Bip32KeyIndex.hardenIndex(1852); +} + +class Cip1852 extends Bip44Base { + /// private constractor + Cip1852._(super.bip32Obj, super.coinConf); + + /// Constructor for creating a [Cip1852] object from a bip32 object and coin. + Cip1852.fromBip32(Bip32Base bip, BipCoinConf coin) : super(bip, coin); + + /// Constructor for creating a [Cip1852] object from a seed and coin. + Cip1852.fromSeed(List seedBytes, Cip1852Coins coinType) + : super.fromSeed(seedBytes, Cip1852Conf.getCoin(coinType)); + + /// Constructor for creating a [Cip1852] object from a extended key and coin. + Cip1852.fromExtendedKey(String extendedKey, Cip1852Coins coinType) + : super.fromExtendedKey(extendedKey, Cip1852Conf.getCoin(coinType)); + + /// Constructor for creating a [Cip1852] object from a private key and coin. + Cip1852.fromPrivateKey(List privateKeyBytes, Cip1852Coins coinType, + {Bip32KeyData? keyData}) + : super.fromPrivateKey(privateKeyBytes, Cip1852Conf.getCoin(coinType), + keyData: keyData ?? Bip32KeyData()); + + /// Constructor for creating a [Cip1852] object from a public key and coin. + Cip1852.fromPublicKey(List pubkeyBytes, Cip1852Coins coinType, + {Bip32KeyData? keyData}) + : super.fromPublicKey(pubkeyBytes, Cip1852Conf.getCoin(coinType), + keyData: keyData ?? + Bip32KeyData(depth: Bip32Depth(Bip44Levels.account.value))); + + /// derive purpose + @override + Cip1852 get purpose { + if (!isLevel(Bip44Levels.master)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving purpose"); + } + return Cip1852._(bip32.childKey(Cip1852Const.purpose), coinConf); + } + + /// derive coin + @override + Cip1852 get coin { + if (!isLevel(Bip44Levels.purpose)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving coin"); + } + final coinIndex = coinConf.coinIdx; + return Cip1852._( + bip32.childKey(Bip32KeyIndex.hardenIndex(coinIndex)), coinConf); + } + + /// derive account with index + @override + Cip1852 account(int accIndex) { + if (!isLevel(Bip44Levels.coin)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving account"); + } + return Cip1852._( + bip32.childKey(Bip32KeyIndex.hardenIndex(accIndex)), coinConf); + } + + /// derive change with change type [Bip44Changes] internal or external + @override + Cip1852 change(Bip44Changes changeType) { + if (!isLevel(Bip44Levels.account)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving change"); + } + Bip32KeyIndex changeIndex = Bip32KeyIndex(changeType.value); + if (!bip32Object.isPublicDerivationSupported) { + changeIndex = Bip32KeyIndex.hardenIndex(changeType.value); + } + return Cip1852._(bip32.childKey(changeIndex), coinConf); + } + + /// derive address with index + @override + Cip1852 addressIndex(int addressIndex) { + if (!isLevel(Bip44Levels.change)) { + throw Bip44DepthError( + "Current depth (${bip32.depth.toInt()}) is not suitable for deriving address"); + } + Bip32KeyIndex changeIndex = Bip32KeyIndex(addressIndex); + if (!bip32Object.isPublicDerivationSupported) { + changeIndex = Bip32KeyIndex.hardenIndex(addressIndex); + } + return Cip1852._(bip32.childKey(changeIndex), coinConf); + } + + /// derive default path + @override + Cip1852 get deriveDefaultPath { + Bip44Base bipObj = purpose.coin; + return Cip1852._(bip32.derivePath(bipObj.coinConf.defPath), coinConf); + } + + /// Specification name + @override + String get specName { + return Cip1852Const.specName; + } +} diff --git a/lib/bip/cardano/cip1852/conf/cip1852_coins.dart b/lib/bip/cardano/cip1852/conf/cip1852_coins.dart new file mode 100644 index 0000000..ce95ce4 --- /dev/null +++ b/lib/bip/cardano/cip1852/conf/cip1852_coins.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; + +/// An enumeration of supported cryptocurrencies for CIP1852. It includes both main +/// networks and test networks of various cryptocurrencies. +enum Cip1852Coins implements BipCoins { + /// mainnets + cardanoIcarus, + cardanoLedger, + + /// testnets + cardanoIcarusTestnet, + cardanoLedgerTestnet; + + @override + Cip1852Coins get value => this; +} diff --git a/lib/bip/cardano/cip1852/conf/cip1852_conf.dart b/lib/bip/cardano/cip1852/conf/cip1852_conf.dart new file mode 100644 index 0000000..ae91b8f --- /dev/null +++ b/lib/bip/cardano/cip1852/conf/cip1852_conf.dart @@ -0,0 +1,88 @@ +import 'package:blockchain_utils/bip/address/ada_shelley_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_const.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coin_conf.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_conf_const.dart'; +import 'package:blockchain_utils/bip/cardano/cip1852/conf/cip1852_coins.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/bip/slip/slip44/slip44.dart'; + +/// A configuration class for CIP1852 coins that defines the +class Cip1852Conf { + /// A mapping that associates each Cip1852Coins (enum) with its corresponding + /// BipCoinConf configuration. + static final Map coinToConf = { + Cip1852Coins.cardanoIcarus: Cip1852Conf.cardanoIcarusMainNet, + Cip1852Coins.cardanoLedger: Cip1852Conf.cardanoLedgerMainNet, + Cip1852Coins.cardanoIcarusTestnet: Cip1852Conf.cardanoIcarusTestNet, + Cip1852Coins.cardanoLedgerTestnet: Cip1852Conf.cardanoLedgerTestNet, + }; + + /// Retrieves the BipCoinConf for the given Cip1852Coin. If the provided coin + /// is not an instance of Cip1852Coins, an error is thrown. + static BipCoinConf getCoin(BipCoins coin) { + if (coin is! Cip1852Coins) { + throw ArgumentError("Coin type is not an enumerative of Cip1852Coins"); + } + return coinToConf[coin.value]!; + } + + // Configuration for Cardano main net (Icarus) + static final BipCoinConf cardanoIcarusMainNet = BipCoinConf( + coinNames: CoinsConf.cardanoMainNet.coinName, + coinIdx: Slip44.cardano, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32Const.kholawKeyNetVersions, + wifNetVer: null, + addressEncoder: ([dynamic kwargs]) => AdaShelleyAddrEncoder(), + type: EllipticCurveTypes.ed25519Kholaw, + addrParams: { + "net_tag": AdaShelleyAddrNetworkTags.mainnet, + "is_icarus": true, + }, + ); + + // Configuration for Cardano test net (Icarus) + static final BipCoinConf cardanoIcarusTestNet = BipCoinConf( + coinNames: CoinsConf.cardanoTestNet.coinName, + coinIdx: Slip44.cardano, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32Const.testNetKeyNetVersions, + wifNetVer: null, + addressEncoder: ([dynamic kwargs]) => AdaShelleyAddrEncoder(), + type: EllipticCurveTypes.ed25519Kholaw, + addrParams: { + "net_tag": AdaShelleyAddrNetworkTags.testnet, + "is_icarus": true, + }, + ); + + // Configuration for Cardano main net (Ledger) + static final BipCoinConf cardanoLedgerMainNet = BipCoinConf( + coinNames: CoinsConf.cardanoMainNet.coinName, + coinIdx: Slip44.cardano, + isTestnet: false, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32Const.kholawKeyNetVersions, + wifNetVer: null, + type: EllipticCurveTypes.ed25519Kholaw, + addressEncoder: ([dynamic kwargs]) => AdaShelleyAddrEncoder(), + addrParams: {"net_tag": AdaShelleyAddrNetworkTags.mainnet}, + ); + + // Configuration for Cardano test net (Ledger) + static final BipCoinConf cardanoLedgerTestNet = BipCoinConf( + coinNames: CoinsConf.cardanoTestNet.coinName, + coinIdx: Slip44.cardano, + isTestnet: true, + defPath: derPathNonHardenedFull, + keyNetVer: Bip32Const.testNetKeyNetVersions, + wifNetVer: null, + type: EllipticCurveTypes.ed25519Kholaw, + addressEncoder: ([dynamic kwargs]) => AdaShelleyAddrEncoder(), + addrParams: {"net_tag": AdaShelleyAddrNetworkTags.testnet}, + ); +} diff --git a/lib/bip/cardano/mnemonic/cardano_byron_legacy_seed_generator.dart b/lib/bip/cardano/mnemonic/cardano_byron_legacy_seed_generator.dart new file mode 100644 index 0000000..ac02ae1 --- /dev/null +++ b/lib/bip/cardano/mnemonic/cardano_byron_legacy_seed_generator.dart @@ -0,0 +1,84 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_decoder.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/cbor/types/bytes.dart'; + +/// A class responsible for generating Cardano Byron Legacy seeds from mnemonics. +class CardanoByronLegacySeedGenerator { + late final List _seedBytes; + + /// Constructor to create a seed generator for Cardano Byron Legacy wallets. + /// + /// It takes a mnemonic string as input, decodes it, and generates the seed. + /// + /// Parameters: + /// - `mnemonic`: The mnemonic string used to generate the seed. + /// - `language`: An optional parameter to specify the language used in the mnemonic. + CardanoByronLegacySeedGenerator( + String mnemonic, { + Bip39Languages? language, + }) { + final decodedMnemonic = Bip39MnemonicDecoder(language).decode(mnemonic); + final cborData = CborBytesValue(decodedMnemonic).encode(); + _seedBytes = QuickCrypto.blake2b256Hash(cborData); + } + + /// Generates and returns the Cardano Byron Legacy seed as a List. + List generate() { + return List.from(_seedBytes); + } +} diff --git a/lib/bip/cardano/mnemonic/cardano_icarus_seed_generator.dart b/lib/bip/cardano/mnemonic/cardano_icarus_seed_generator.dart new file mode 100644 index 0000000..928915f --- /dev/null +++ b/lib/bip/cardano/mnemonic/cardano_icarus_seed_generator.dart @@ -0,0 +1,24 @@ +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_decoder.dart'; + +/// A class responsible for generating Cardano Icarus seeds from mnemonics. +class CardanoIcarusSeedGenerator { + final List _entropyBytes; + + /// Constructor to create a seed generator for Cardano Icarus wallets. + /// + /// It takes a mnemonic string as input, decodes it into entropy bytes. + /// + /// Parameters: + /// - `mnemonic`: The mnemonic string used to generate the seed. + /// - `language`: An optional parameter to specify the language used in the mnemonic. + CardanoIcarusSeedGenerator( + String mnemonic, { + Bip39Languages? language, + }) : _entropyBytes = Bip39MnemonicDecoder(language).decode(mnemonic); + + /// Generates and returns the Cardano Icarus seed as a List. + List generate() { + return List.from(_entropyBytes); + } +} diff --git a/lib/bip/cardano/shelley/cardano_shelley.dart b/lib/bip/cardano/shelley/cardano_shelley.dart new file mode 100644 index 0000000..0011371 --- /dev/null +++ b/lib/bip/cardano/shelley/cardano_shelley.dart @@ -0,0 +1,90 @@ +import 'package:blockchain_utils/bip/address/ada_shelley_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base.dart'; +import 'package:blockchain_utils/bip/cardano/cip1852/cip1852.dart'; +import 'package:blockchain_utils/bip/cardano/shelley/cardano_shelley_keys.dart'; + +/// A class that represents a Cardano Shelley wallet, including both public and private keys. +class CardanoShelley { + late final Bip44Base bip44; + late final Bip44Base bip44Sk; + + /// Factory constructor to create a Cardano Shelley wallet from a Cip1852 Bip44 object. + /// + /// Parameters: + /// - `bipObj`: The Cip1852 Bip44 object used to initialize the wallet. + /// + /// Throws an `ArgumentError` if the provided Bip object is not a Cip1852 instance. + factory CardanoShelley.fromCip1852Object(Bip44Base bip) { + if (bip is! Cip1852) { + throw ArgumentError("The Bip object shall be a Cip1852 instance"); + } + return CardanoShelley(bip, __deriveStakingKeys(bip)); + } + + /// Constructor to create a Cardano Shelley wallet from Bip44 objects. + /// + /// Parameters: + /// - `bip`: The Bip44 Bip object for the wallet's address keys. + /// - `bipSk`: The Bip44 Bip object for the wallet's staking keys. + /// + /// Throws an `ArgumentError` if the provided Bip object is below the account level or if `bipSk` is not at the address index level. + CardanoShelley(Bip44Base bip, Bip44Base bipSk) { + if (bip.level.value < Bip44Levels.account.value) { + throw ArgumentError("The bipObj shall not be below account level"); + } + if (bipSk.level != Bip44Levels.addressIndex) { + throw ArgumentError("The bipSkObj shall be of address index level"); + } + bip44 = bip; + bip44Sk = bipSk; + } + + /// Retrieves and returns the public keys associated with the wallet. + CardanoShelleyPublicKeys get publicKeys { + return CardanoShelleyPublicKeys( + pubAddrKey: bip44.publicKey.key, + pubSkKey: bip44Sk.publicKey.key, + coinConf: bip44.coinConf); + } + + /// Retrieves and returns the private keys associated with the wallet. + CardanoShelleyPrivateKeys get privateKeys { + return CardanoShelleyPrivateKeys( + privAddrKey: bip44.privateKey.key, + privSkKey: bip44Sk.privateKey.key, + coinConf: bip44.coinConf); + } + + /// Retrieves the Bip44 object for reward keys. + Bip44Base get rewardKey { + return stakingKey; + } + + /// Retrieves the Bip44 object for staking keys. + Bip44Base get stakingKey { + return bip44Sk; + } + + /// Checks if the wallet is public-only (no private keys). + bool get isPublicOnly { + return bip44.isPublicOnly; + } + + /// Creates a new Cardano Shelley wallet with a specified change type. + CardanoShelley change(Bip44Changes changeType) { + return CardanoShelley(bip44.change(changeType), bip44Sk); + } + + /// Creates a new Cardano Shelley wallet with a specified address index. + CardanoShelley addressIndex(int addrIdx) { + return CardanoShelley(bip44.addressIndex(addrIdx), bip44Sk); + } + + /// Internal method to derive staking keys from the provided Bip object. + static Bip44Base __deriveStakingKeys(Bip44Base bipObj) { + final coinConf = bipObj.coinConf.copy( + addressEncoder: ([dynamic kwargs]) => AdaShelleyStakingAddrEncoder(), + ); + return Cip1852.fromBip32(bipObj.bip32Object.derivePath("2/0"), coinConf); + } +} diff --git a/lib/bip/cardano/shelley/cardano_shelley_keys.dart b/lib/bip/cardano/shelley/cardano_shelley_keys.dart new file mode 100644 index 0000000..06662ce --- /dev/null +++ b/lib/bip/cardano/shelley/cardano_shelley_keys.dart @@ -0,0 +1,94 @@ +import 'package:blockchain_utils/bip/address/ada_shelley_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_keys.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip_coin_conf.dart'; + +/// A class that represents public keys associated with a Cardano Shelley wallet. +class CardanoShelleyPublicKeys { + final Bip32PublicKey pubAddrKey; + final Bip32PublicKey pubSkKey; + final BipCoinConf coinConf; + + /// Constructor to create a Cardano Shelley Public Keys instance. + /// + /// Parameters: + /// - `pubAddrKey`: The public address key. + /// - `pubSkKey`: The public spending key. + /// - `coinConf`: The configuration for the associated coin. + CardanoShelleyPublicKeys( + {required this.pubAddrKey, + required this.pubSkKey, + required this.coinConf}); + + /// Retrieves and returns the public key associated with the wallet's address. + Bip32PublicKey get addressKey { + return pubAddrKey; + } + + /// Retrieves and returns the public key associated with the wallet's reward key. + Bip32PublicKey get rewardKey { + return stakingKey; + } + + /// Retrieves and returns the public key associated with the wallet's staking key. + Bip32PublicKey get stakingKey { + return pubSkKey; + } + + /// Converts the public staking key to a reward address. + String get toRewardAddress { + return toStakingAddress; + } + + /// Converts the public staking key to a staking address. + String get toStakingAddress { + return AdaShelleyStakingAddrEncoder() + .encodeKey(pubSkKey.key.compressed, coinConf.addrParams); + } + + /// Converts the public address key to a Cardano Shelley address. + String get toAddress { + return AdaShelleyAddrEncoder().encodeKey(pubAddrKey.key.compressed, + {"pub_skey": pubSkKey.key.compressed, ...coinConf.addrParams}); + } +} + +/// A class that represents private keys associated with a Cardano Shelley wallet. +class CardanoShelleyPrivateKeys { + final Bip32PrivateKey privAddrKey; + final Bip32PrivateKey privSkKey; + final BipCoinConf coinConf; + + /// Constructor to create a Cardano Shelley Private Keys instance. + /// + /// Parameters: + /// - `privAddrKey`: The private address key. + /// - `privSkKey`: The private spending key. + /// - `coinConf`: The configuration for the associated coin. + CardanoShelleyPrivateKeys( + {required this.privAddrKey, + required this.privSkKey, + required this.coinConf}); + + /// Retrieves and returns the private key associated with the wallet's address. + Bip32PrivateKey get addressKey { + return privAddrKey; + } + + /// Retrieves and returns the private key associated with the wallet's reward key. + Bip32PrivateKey get rewardKey { + return stakingKey; + } + + /// Retrieves and returns the private key associated with the wallet's staking key. + Bip32PrivateKey get stakingKey { + return privSkKey; + } + + /// Retrieves and returns the corresponding public keys associated with the private keys. + CardanoShelleyPublicKeys get publicKeys { + return CardanoShelleyPublicKeys( + pubAddrKey: privAddrKey.publicKey, + pubSkKey: privSkKey.publicKey, + coinConf: coinConf); + } +} diff --git a/lib/bip/coin_conf/coin_conf.dart b/lib/bip/coin_conf/coin_conf.dart new file mode 100644 index 0000000..355970b --- /dev/null +++ b/lib/bip/coin_conf/coin_conf.dart @@ -0,0 +1,28 @@ +import 'package:blockchain_utils/bip/coin_conf/coins_name.dart'; + +/// A class representing the configuration of a specific cryptocurrency coin. +class CoinConf { + final CoinNames coinName; + final Map params; + + /// Constructor to create a CoinConf instance. + /// + /// Parameters: + /// - `coinName`: An enum representing the name of the cryptocurrency coin. + /// - `params`: A map containing various parameters specific to the coin. + const CoinConf({required this.coinName, required this.params}); + + /// Retrieves and returns the name of the cryptocurrency coin. + String get name => coinName.name; + + /// Retrieves and returns a specific parameter of the coin configuration. + /// + /// Parameters: + /// - `name`: The name of the parameter to retrieve. + T? getParam(String name) => params[name]; + + @override + String toString() { + return name; + } +} diff --git a/lib/bip/coin_conf/coins_conf.dart b/lib/bip/coin_conf/coins_conf.dart new file mode 100644 index 0000000..a20908f --- /dev/null +++ b/lib/bip/coin_conf/coins_conf.dart @@ -0,0 +1,762 @@ +/// Main net + +import 'package:blockchain_utils/bip/slip/slip173/slip173.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_name.dart'; + +import 'coin_conf.dart'; + +/// Bitcoin network parameters for mainnet and testnet. +const btcP2PKHNetVerMn = [0x00]; +const btcP2SHNetVerMn = [0x05]; +const btcP2WPKHHrpMn = Slip173.bitcoinMainnet; +const btcP2WPKHWitVerMn = 0; +const btcP2TRHrpMn = Slip173.bitcoinMainnet; +const btcP2TRWitVerMn = 1; +const btcWifNetVerMn = [0x80]; + +/// Testnet +const btcP2PKHNetVerTn = [0x6f]; +const btcP2SHNetVerTn = [0xc4]; +const btcP2WPKHHrpTn = Slip173.bitcoinTestnet; +const btcP2WPKHWitVerTn = 0; +const btcP2TRHrpTn = Slip173.bitcoinTestnet; +const btcP2TRWitVerTn = 1; +const btcWifNetVerTn = [0xef]; + +/// A class that provides configurations for various cryptocurrencies. +class CoinsConf { + /// Configuration for Acala + static const CoinConf acala = CoinConf( + coinName: CoinNames("Acala", "ACA"), + params: { + "addr_ss58_format": 10, + }, + ); + + /// Configuration for Akash Network + static const CoinConf akashNetwork = CoinConf( + coinName: CoinNames("Akash Network", "AKT"), + params: { + "addr_hrp": Slip173.akashNetwork, + }, + ); + + /// Configuration for Algorand + static const CoinConf algorand = CoinConf( + coinName: CoinNames("Algorand", "ALGO"), + params: {}, + ); + + /// Class container for coins configuration. + + /// Configuration for Aptos + static const CoinConf aptos = CoinConf( + coinName: CoinNames("Aptos", "APTOS"), + params: { + "addr_prefix": "0x", + }, + ); + + /// Configuration for Avax C-Chain + static const CoinConf avaxCChain = CoinConf( + coinName: CoinNames("Avax C-Chain", "AVAX"), + params: {}, + ); + + /// Configuration for Avax P-Chain + static const CoinConf avaxPChain = CoinConf( + coinName: CoinNames("Avax P-Chain", "AVAX"), + params: { + "addr_hrp": "avax", + "addr_prefix": "P-", + }, + ); + + /// Configuration for Avax X-Chain + static const CoinConf avaxXChain = CoinConf( + coinName: CoinNames("Avax X-Chain", "AVAX"), + params: { + "addr_hrp": "avax", + "addr_prefix": "X-", + }, + ); + + /// Configuration for Axelar + static const CoinConf axelar = CoinConf( + coinName: CoinNames("Axelar", "AXL"), + params: { + "addr_hrp": Slip173.axelar, + }, + ); + + /// Configuration for Band Protocol + static const CoinConf bandProtocol = CoinConf( + coinName: CoinNames("Band Protocol", "BAND"), + params: { + "addr_hrp": Slip173.bandProtocol, + }, + ); + + /// Configuration for Bifrost + static const CoinConf bifrost = CoinConf( + coinName: CoinNames("Bifrost", "BNC"), + params: { + "addr_ss58_format": 6, + }, + ); + + /// Configuration for Binance Chain + static const CoinConf binanceChain = CoinConf( + coinName: CoinNames("Binance Chain", "BNB"), + params: { + "addr_hrp": Slip173.binanceChain, + }, + ); + + /// Configuration for Binance Smart Chain + static const CoinConf binanceSmartChain = CoinConf( + coinName: CoinNames("Binance Smart Chain", "BNB"), + params: {}, + ); + + /// Configuration for Bitcoin main net + static const CoinConf bitcoinMainNet = CoinConf( + coinName: CoinNames("Bitcoin", "BTC"), + params: { + "p2pkh_net_ver": btcP2PKHNetVerMn, + "p2sh_net_ver": btcP2SHNetVerMn, + "p2wpkh_hrp": btcP2WPKHHrpMn, + "p2wpkh_wit_ver": btcP2WPKHWitVerMn, + "p2tr_hrp": btcP2TRHrpMn, + "p2tr_wit_ver": btcP2TRWitVerMn, + "wif_net_ver": btcWifNetVerMn, + }, + ); + + /// Configuration for Bitcoin test net + static const CoinConf bitcoinTestNet = CoinConf( + coinName: CoinNames("Bitcoin TestNet", "BTC"), + params: { + "p2pkh_net_ver": btcP2PKHNetVerTn, + "p2sh_net_ver": btcP2SHNetVerTn, + "p2wpkh_hrp": btcP2WPKHHrpTn, + "p2wpkh_wit_ver": btcP2WPKHWitVerTn, + "p2tr_hrp": btcP2TRHrpTn, + "p2tr_wit_ver": btcP2TRWitVerMn, + "wif_net_ver": btcWifNetVerTn, + }, + ); + + /// Configuration for Bitcoin Cash main net + static const CoinConf bitcoinCashMainNet = CoinConf( + coinName: CoinNames("Bitcoin Cash", "BCH"), + params: { + "p2pkh_std_hrp": "bitcoincash", + "p2pkh_std_net_ver": btcP2PKHNetVerMn, + "p2pkh_legacy_net_ver": btcP2PKHNetVerMn, + "p2sh_std_hrp": "bitcoincash", + "p2sh_std_net_ver": [0x08], + "p2sh_legacy_net_ver": btcP2SHNetVerMn, + "wif_net_ver": btcWifNetVerMn, + }, + ); + + /// Configuration for Bitcoin Cash test net + static const CoinConf bitcoinCashTestNet = CoinConf( + coinName: CoinNames("Bitcoin Cash TestNet", "BCH"), + params: { + "p2pkh_std_hrp": "bchtest", + "p2pkh_std_net_ver": [0x00], + "p2pkh_legacy_net_ver": btcP2PKHNetVerTn, + "p2sh_std_hrp": "bchtest", + "p2sh_std_net_ver": [0x08], + "p2sh_legacy_net_ver": btcP2SHNetVerTn, + "wif_net_ver": btcWifNetVerTn, + }, + ); + + /// Configuration for Bitcoin Cash Simple Ledger Protocol main net + static const CoinConf bitcoinCashSlpMainNet = CoinConf( + coinName: CoinNames("Bitcoin Cash SLP", "SLP"), + params: { + "p2pkh_std_hrp": "simpleledger", + "p2pkh_std_net_ver": [0x00], + "p2pkh_legacy_net_ver": btcP2PKHNetVerMn, + "p2sh_std_hrp": "simpleledger", + "p2sh_std_net_ver": [0x08], + "p2sh_legacy_net_ver": btcP2SHNetVerMn, + "wif_net_ver": btcWifNetVerMn, + }, + ); + + /// Configuration for Bitcoin Cash Simple Ledger Protocol test net + static const CoinConf bitcoinCashSlpTestNet = CoinConf( + coinName: CoinNames("Bitcoin Cash SLP TestNet", "SLP"), + params: { + "p2pkh_std_hrp": "slptest", + "p2pkh_std_net_ver": [0x00], + "p2pkh_legacy_net_ver": btcP2PKHNetVerTn, + "p2sh_std_hrp": "slptest", + "p2sh_std_net_ver": [0x08], + "p2sh_legacy_net_ver": btcP2SHNetVerTn, + "wif_net_ver": btcWifNetVerTn, + }, + ); + + /// Configuration for Bitcoin SV main net + static const CoinConf bitcoinSvMainNet = CoinConf( + coinName: CoinNames("BitcoinSV", "BSV"), + params: { + "p2pkh_net_ver": btcP2PKHNetVerMn, + "p2sh_net_ver": btcP2SHNetVerMn, + "wif_net_ver": btcWifNetVerMn, + }, + ); + + /// Configuration for Bitcoin SV test net + static const CoinConf bitcoinSvTestNet = CoinConf( + coinName: CoinNames("BitcoinSV TestNet", "BSV"), + params: { + "p2pkh_net_ver": btcP2PKHNetVerTn, + "p2sh_net_ver": btcP2SHNetVerTn, + "wif_net_ver": btcWifNetVerTn, + }, + ); + + /// Configuration for Cardano main net + static const CoinConf cardanoMainNet = CoinConf( + coinName: CoinNames("Cardano", "ADA"), + params: { + "addr_hrp": "addr", + "staking_addr_hrp": "stake", + }, + ); + + /// Configuration for Cardano test + static const CoinConf cardanoTestNet = CoinConf( + coinName: CoinNames("Cardano TestNet", "ADA"), + params: { + "addr_hrp": "addr_test", + "staking_addr_hrp": "stake_test", + }, + ); + + /// Configuration for Celo + static const CoinConf celo = CoinConf( + coinName: CoinNames("Celo", "CELO"), + params: {}, + ); + + /// Configuration for Certik + static const CoinConf certik = CoinConf( + coinName: CoinNames("Certik", "CTK"), + params: { + "addr_hrp": Slip173.certik, + }, + ); + + /// Configuration for ChainX + static const CoinConf chainX = CoinConf( + coinName: CoinNames("ChainX", "PCX"), + params: { + "addr_ss58_format": 44, + }, + ); + + /// Configuration for Chihuahua + static const CoinConf chihuahua = CoinConf( + coinName: CoinNames("Chihuahua", "HUAHUA"), + params: { + "addr_hrp": Slip173.chihuahua, + }, + ); + + /// Configuration for Cosmos + static const CoinConf cosmos = CoinConf( + coinName: CoinNames("Cosmos", "ATOM"), + params: { + "addr_hrp": Slip173.cosmos, + }, + ); + + /// Configuration for Dash main net + static const CoinConf dashMainNet = CoinConf( + coinName: CoinNames("Dash", "DASH"), + params: { + "p2pkh_net_ver": [0x4c], + "p2sh_net_ver": [0x10], + "wif_net_ver": [0xcc], + }, + ); + + /// Configuration for Dash test net + static const CoinConf dashTestNet = CoinConf( + coinName: CoinNames("Dash TestNet", "DASH"), + params: { + "p2pkh_net_ver": [0x8c], + "p2sh_net_ver": [0x13], + "wif_net_ver": btcWifNetVerTn, + }, + ); + + /// Configuration for Dogecoin main net + static const CoinConf dogecoinMainNet = CoinConf( + coinName: CoinNames("Dogecoin", "DOGE"), + params: { + "p2pkh_net_ver": [0x1e], + "p2sh_net_ver": [0x16], + "wif_net_ver": [0x9e], + }, + ); + + /// Configuration for Dogecoin test net + static const CoinConf dogecoinTestNet = CoinConf( + coinName: CoinNames("Dogecoin TestNet", "DOGE"), + params: { + "p2pkh_net_ver": [0x71], + "p2sh_net_ver": btcP2SHNetVerTn, + + ///btcP2SHNetVerTn, + "wif_net_ver": [0xf1], + }, + ); + + /// Configuration for eCash main net + static const CoinConf ecashMainNet = CoinConf( + coinName: CoinNames("eCash", "XEC"), + params: { + "p2pkh_std_hrp": "ecash", + "p2pkh_std_net_ver": [0x00], + "p2pkh_legacy_net_ver": btcP2PKHNetVerMn, + "p2sh_std_hrp": "ecash", + "p2sh_std_net_ver": [0x08], + "p2sh_legacy_net_ver": btcP2SHNetVerMn, + "wif_net_ver": btcWifNetVerMn, + }, + ); + + /// Configuration for eCash test net + static const CoinConf ecashTestNet = CoinConf( + coinName: CoinNames("eCash TestNet", "XEC"), + params: { + "p2pkh_std_hrp": "ectest", + "p2pkh_std_net_ver": [0x00], + "p2pkh_legacy_net_ver": btcP2PKHNetVerTn, + "p2sh_std_hrp": "ectest", + "p2sh_std_net_ver": [0x08], + "p2sh_legacy_net_ver": btcP2SHNetVerTn, + "wif_net_ver": btcWifNetVerTn, + }, + ); + + /// Configuration for Edgeware + static const CoinConf edgeware = CoinConf( + coinName: CoinNames("Edgeware", "EDG"), + params: { + "addr_ss58_format": 7, + }, + ); + + /// Configuration for Elrond + static const CoinConf elrond = CoinConf( + coinName: CoinNames("Elrond eGold", "eGLD"), + params: { + "addr_hrp": Slip173.elrond, + }, + ); + + /// Configuration for Eos + static const CoinConf eos = CoinConf( + coinName: CoinNames("EOS", "EOS"), + params: { + "addr_prefix": "EOS", + }, + ); + + /// Configuration for Ergo main net + static const CoinConf ergoMainNet = CoinConf( + coinName: CoinNames("Ergo", "ERGO"), + params: {}, + ); + + /// Configuration for Ergo test net + static const CoinConf ergoTestNet = CoinConf( + coinName: CoinNames("Ergo TestNet", "ERGO"), + params: {}, + ); + + /// Configuration for Ethereum + static const CoinConf ethereum = CoinConf( + coinName: CoinNames("Ethereum", "ETH"), + params: { + "addr_prefix": "0x", + }, + ); + + /// Configuration for Ethereum Classic + static const CoinConf ethereumClassic = CoinConf( + coinName: CoinNames("Ethereum Classic", "ETC"), + params: {}, + ); + + /// Configuration for Fantom Opera + static const CoinConf fantomOpera = CoinConf( + coinName: CoinNames("Fantom Opera", "FTM"), + params: {}, + ); + + /// Configuration for Filecoin + static const CoinConf filecoin = CoinConf( + coinName: CoinNames("Filecoin", "FIL"), + params: { + "addr_prefix": "f", + }, + ); + + /// Configuration for generic Substrate coin + static const CoinConf genericSubstrate = CoinConf( + coinName: CoinNames("Generic Substrate", ""), + params: { + "addr_ss58_format": 42, + }, + ); + + /// Configuration for Harmony One + static const CoinConf harmonyOne = CoinConf( + coinName: CoinNames("Harmony One", "ONE"), + params: { + "addr_hrp": Slip173.harmonyOne, + }, + ); + + /// Configuration for Huobi Chain + static const CoinConf huobiChain = CoinConf( + coinName: CoinNames("Huobi Token", "HT"), + params: {}, + ); + + /// Configuration for Icon + static const CoinConf icon = CoinConf( + coinName: CoinNames("Icon", "ICX"), + params: { + "addr_prefix": "hx", + }, + ); + + /// Configuration for Injective + static const CoinConf injective = CoinConf( + coinName: CoinNames("Injective", "INJ"), + params: { + "addr_hrp": Slip173.injective, + }, + ); + + /// Configuration for IRISnet + static const CoinConf irisNet = CoinConf( + coinName: CoinNames("IRIS Network", "IRIS"), + params: { + "addr_hrp": Slip173.irisNetwork, + }, + ); + + /// Configuration for Karura + static const CoinConf karura = CoinConf( + coinName: CoinNames("Karura", "KAR"), + params: { + "addr_ss58_format": 8, + }, + ); + + /// Configuration for Kava + static const CoinConf kava = CoinConf( + coinName: CoinNames("Kava", "KAVA"), + params: { + "addr_hrp": Slip173.kava, + }, + ); + + /// Configuration for Kusama + static const CoinConf kusama = CoinConf( + coinName: CoinNames("Kusama", "KSM"), + params: { + "addr_ss58_format": 2, + }, + ); + + /// Configuration for Litecoin main net + static const CoinConf litecoinMainNet = CoinConf( + coinName: CoinNames("Litecoin", "LTC"), + params: { + "p2pkh_std_net_ver": [0x30], + "p2pkh_depr_net_ver": btcP2PKHNetVerMn, + "p2sh_std_net_ver": [0x32], + "p2sh_depr_net_ver": btcP2SHNetVerMn, + "p2wpkh_hrp": Slip173.litecoinMainnet, + "p2wpkh_wit_ver": btcP2WPKHWitVerMn, + "wif_net_ver": [0xb0], + }, + ); + + /// Configuration for Litecoin test net + static const CoinConf litecoinTestNet = CoinConf( + coinName: CoinNames("Litecoin TestNet", "LTC"), + params: { + "p2pkh_std_net_ver": [0x6f], + "p2pkh_depr_net_ver": btcP2PKHNetVerTn, + "p2sh_std_net_ver": [0x3a], + "p2sh_depr_net_ver": btcP2SHNetVerTn, + "p2wpkh_hrp": Slip173.litecoinTestnet, + "p2wpkh_wit_ver": btcP2WPKHWitVerTn, + "wif_net_ver": btcWifNetVerTn, + }, + ); + + /// Configuration for Monero main net + static const CoinConf moneroMainNet = CoinConf( + coinName: CoinNames("Monero", "XMR"), + params: { + "addr_net_ver": [0x12], + "addr_int_net_ver": [0x13], + "subaddr_net_ver": [0x2A], + }, + ); + + /// Configuration for Monero stage net + static const CoinConf moneroStageNet = CoinConf( + coinName: CoinNames("Monero StageNet", "XMR"), + params: { + "addr_net_ver": [0x18], + "addr_int_net_ver": [0x19], + "subaddr_net_ver": [0x24], + }, + ); + + /// Configuration for Monero test net + static const CoinConf moneroTestNet = CoinConf( + coinName: CoinNames("Monero TestNet", "XMR"), + params: { + "addr_net_ver": [0x35], + "addr_int_net_ver": [0x36], + "subaddr_net_ver": [0x3F], + }, + ); + + /// Configuration for Moonbeam + static const CoinConf moonbeam = CoinConf( + coinName: CoinNames("Moonbeam", "GLMR"), + params: { + "addr_ss58_format": 1284, + }, + ); + + /// Configuration for Moonriver + static const CoinConf moonriver = CoinConf( + coinName: CoinNames("Moonriver", "MOVR"), + params: { + "addr_ss58_format": 1285, + }, + ); + + /// Configuration for Nano + static const CoinConf nano = CoinConf( + coinName: CoinNames("Nano", "NANO"), + params: { + "addr_prefix": "nano_", + }, + ); + + /// Configuration for Near Protocol + static const CoinConf nearProtocol = CoinConf( + coinName: CoinNames("Near Protocol", "NEAR"), + params: {}, + ); + + /// Configuration for Neo + static const CoinConf neo = CoinConf( + coinName: CoinNames("NEO", "NEO"), + params: { + "addr_ver": [0x17], + }, + ); + + /// Configuration for Nine Chronicles Gold + static const CoinConf nineChroniclesGold = CoinConf( + coinName: CoinNames("NineChroniclesGold", "NCG"), + params: {}, + ); + + /// Configuration for OKEx Chain + static const CoinConf okexChain = CoinConf( + coinName: CoinNames("OKExChain", "OKT"), + params: { + "addr_hrp": Slip173.okexChain, + }, + ); + + /// Configuration for Ontology + static const CoinConf ontology = CoinConf( + coinName: CoinNames("Ontology", "ONT"), + params: { + "addr_ver": [0x17], + }, + ); + + /// Configuration for Osmosis + static const CoinConf osmosis = CoinConf( + coinName: CoinNames("Osmosis", "OSMO"), + params: { + "addr_hrp": Slip173.osmosis, + }, + ); + + /// Configuration for Phala + static const CoinConf phala = CoinConf( + coinName: CoinNames("Phala Network", "PHA"), + params: { + "addr_ss58_format": 30, + }, + ); + + /// Configuration for Pi Network + static const CoinConf piNetwork = CoinConf( + coinName: CoinNames("Pi Network", "PI"), + params: {}, + ); + + /// Configuration for Plasm + static const CoinConf plasm = CoinConf( + coinName: CoinNames("Plasm Network", "PLM"), + params: { + "addr_ss58_format": 5, + }, + ); + + /// Configuration for Polkadot + static const CoinConf polkadot = CoinConf( + coinName: CoinNames("Polkadot", "DOT"), + params: { + "addr_ss58_format": 0, + }, + ); + + /// Configuration for Polygon + static const CoinConf polygon = CoinConf( + coinName: CoinNames("Polygon", "MATIC"), + params: {}, + ); + + /// Configuration for Ripple + static const CoinConf ripple = CoinConf( + coinName: CoinNames("Ripple", "XRP"), + params: { + "p2pkh_net_ver": btcP2PKHNetVerMn, + }, + ); + + /// Configuration for Secret Network + static const CoinConf secretNetwork = CoinConf( + coinName: CoinNames("Secret Network", "SCRT"), + params: { + "addr_hrp": Slip173.secretNetwork, + }, + ); + + /// Configuration for Solana + static const CoinConf solana = CoinConf( + coinName: CoinNames("Solana", "SOL"), + params: {}, + ); + + /// Configuration for Sora + static const CoinConf sora = CoinConf( + coinName: CoinNames("Sora", "XOR"), + params: { + "addr_ss58_format": 69, + }, + ); + + /// Configuration for Stafi + static const CoinConf stafi = CoinConf( + coinName: CoinNames("Stafi", "FIS"), + params: { + "addr_ss58_format": 20, + }, + ); + + /// Configuration for Stellar + static const CoinConf stellar = CoinConf( + coinName: CoinNames("Stellar", "XLM"), + params: {}, + ); + + /// Configuration for Terra + static const CoinConf terra = CoinConf( + coinName: CoinNames("Terra", "LUNA"), + params: { + "addr_hrp": Slip173.terra, + }, + ); + + /// Configuration for Tezos + static const CoinConf tezos = CoinConf( + coinName: CoinNames("Tezos", "XTZ"), + params: {}, + ); + + /// Configuration for Theta + static const CoinConf theta = CoinConf( + coinName: CoinNames("Theta Network", "THETA"), + params: {}, + ); + + /// Configuration for Tron + static const CoinConf tron = CoinConf( + coinName: CoinNames("Tron", "TRX"), + params: { + "addr_prefix": [0x41], + }, + ); + + /// Configuration for VeChain + static const CoinConf veChain = CoinConf( + coinName: CoinNames("VeChain", "VET"), + params: {}, + ); + + /// Configuration for Verge + static const CoinConf verge = CoinConf( + coinName: CoinNames("Verge", "XVG"), + params: { + "p2pkh_net_ver": [0x1e], + "wif_net_ver": [0x9e], + }, + ); + + /// Configuration for Zcash main net + static const CoinConf zcashMainNet = CoinConf( + coinName: CoinNames("Zcash", "ZEC"), + params: { + "p2pkh_net_ver": [0x1c, 0xb8], + "p2sh_net_ver": [0x1c, 0xbd], + "wif_net_ver": btcWifNetVerMn, + }, + ); + + /// Configuration for Zcash test net + static const CoinConf zcashTestNet = CoinConf( + coinName: CoinNames("Zcash TestNet", "ZEC"), + params: { + "p2pkh_net_ver": [0x1d, 0x25], + "p2sh_net_ver": [0x1c, 0xba], + "wif_net_ver": btcWifNetVerTn, + }, + ); + + /// Configuration for Zilliqa + static const CoinConf zilliqa = CoinConf( + coinName: CoinNames("Zilliqa", "ZIL"), + params: { + "addr_hrp": Slip173.zilliqa, + }, + ); +} diff --git a/lib/bip/coin_conf/coins_name.dart b/lib/bip/coin_conf/coins_name.dart new file mode 100644 index 0000000..ad0311c --- /dev/null +++ b/lib/bip/coin_conf/coins_name.dart @@ -0,0 +1,17 @@ +/// A class that represents the names and abbreviations of a cryptocurrency coin. +/// +/// It stores the full name and its abbreviation, making it easy to access and display. +class CoinNames { + /// The full name of the cryptocurrency. + final String name; + + /// The abbreviation or ticker symbol of the cryptocurrency. + final String abbreviation; + + const CoinNames(this.name, this.abbreviation); + + @override + String toString() { + return name; + } +} diff --git a/lib/bip/ecc/curve/elliptic_curve_getter.dart b/lib/bip/ecc/curve/elliptic_curve_getter.dart new file mode 100644 index 0000000..596ec75 --- /dev/null +++ b/lib/bip/ecc/curve/elliptic_curve_getter.dart @@ -0,0 +1,24 @@ +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/base.dart'; + +/// A utility class for obtaining elliptic curve generators based on curve types. +class EllipticCurveGetter { + /// Retrieves the elliptic curve generator based on the specified curve type. + /// + /// Parameters: + /// - `type`: The type of elliptic curve. + /// + /// Returns an abstract elliptic curve point generator. + static AbstractPoint generatorFromType(EllipticCurveTypes type) { + switch (type) { + case EllipticCurveTypes.nist256p1: + return Curves.generator256; + case EllipticCurveTypes.ed25519: + case EllipticCurveTypes.ed25519Kholaw: + return Curves.generatorED25519; + default: + return Curves.generatorSecp256k1; + } + } +} diff --git a/lib/bip/ecc/curve/elliptic_curve_types.dart b/lib/bip/ecc/curve/elliptic_curve_types.dart new file mode 100644 index 0000000..a4dd5e5 --- /dev/null +++ b/lib/bip/ecc/curve/elliptic_curve_types.dart @@ -0,0 +1,23 @@ +/// An enumeration of common elliptic curve types used in cryptographic operations. +enum EllipticCurveTypes { + /// Edwards-curve Digital Signature Algorithm (EdDSA) using ed25519 curve + ed25519, + + /// EdDSA with Blake2b hash + ed25519Blake2b, + + /// EdDSA with Kholaw's 25519 curve + ed25519Kholaw, + + /// EdDSA curve used in Monero + ed25519Monero, + + /// NIST P-256 elliptic curve + nist256p1, + + /// SECG secp256k1 elliptic curve + secp256k1, + + /// Schnorr over Ristretto255 curve + sr25519, +} diff --git a/lib/bip/ecc/keys/ecdsa_keys.dart b/lib/bip/ecc/keys/ecdsa_keys.dart new file mode 100644 index 0000000..e1f7a14 --- /dev/null +++ b/lib/bip/ecc/keys/ecdsa_keys.dart @@ -0,0 +1,17 @@ +/// Constants related to ECDSA (Elliptic Curve Digital Signature Algorithm) keys. +class EcdsaKeysConst { + /// AffinePointt coordinate length in bytes + static const int pointCoordByteLen = 32; + + /// Private key length in bytes + static const int privKeyByteLen = 32; + + /// Uncompressed public key prefix + static const List pubKeyUncompressedPrefix = [0x04]; + + /// Compressed public key length in bytes + static const int pubKeyCompressedByteLen = 33; + + /// Uncompressed public key length in bytes + static const int pubKeyUncompressedByteLen = 65; +} diff --git a/lib/bip/ecc/keys/ed25519_blake2b_keys.dart b/lib/bip/ecc/keys/ed25519_blake2b_keys.dart new file mode 100644 index 0000000..1ae1b89 --- /dev/null +++ b/lib/bip/ecc/keys/ed25519_blake2b_keys.dart @@ -0,0 +1,186 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/ecc/keys/ed25519_keys.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/eddsa/privatekey.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/eddsa/publickey.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +/// Represents an Ed25519 public key with Blake2b hashing, implementing the IPublicKey interface. +class Ed25519Blake2bPublicKey implements IPublicKey { + /// EDDSA public key + final EDDSAPublicKey publicKey; + + /// Private constructor to create an Ed25519Blake2bPublicKey instance from an EDDSAPublicKey. + Ed25519Blake2bPublicKey._(this.publicKey); + + /// Factory constructor to create an Ed25519Blake2bPublicKey from raw key bytes. + factory Ed25519Blake2bPublicKey.fromBytes(List keyBytes) { + if (keyBytes.length == + Ed25519KeysConst.pubKeyByteLen + + Ed25519KeysConst.pubKeyPrefix.length && + keyBytes[0] == Ed25519KeysConst.pubKeyPrefix[0]) { + keyBytes = keyBytes.sublist(1); + } + return Ed25519Blake2bPublicKey._( + EDDSAPublicKey(Curves.generatorED25519, keyBytes)); + } + + /// curve type + @override + EllipticCurveTypes get curve { + return EllipticCurveTypes.ed25519Blake2b; + } + + /// public key compressed length + @override + int get length { + return Ed25519KeysConst.pubKeyByteLen + + Ed25519KeysConst.pubKeyPrefix.length; + } + + /// public key uncompressed length + @override + int get uncompressedLength { + return length; + } + + /// check if if key bytes is valid for this public key + static bool isValidBytes(List keyBytes) { + try { + Ed25519Blake2bPublicKey.fromBytes(keyBytes); + return true; + // ignore: empty_catches + } catch (e) {} + return false; + } + + /// edwards point of public key + @override + EDPoint get point { + return publicKey.point; + } + + /// compressed bytes of public key + @override + List get compressed { + return List.from( + [...Ed25519KeysConst.pubKeyPrefix, ...publicKey.point.toBytes()]); + } + + /// uncompressed bytes of public key + @override + List get uncompressed { + return compressed; + } +} + +/// Represents an Ed25519 private key with Blake2b hashing, implementing the IPrivateKey interface. +class Ed25519Blake2bPrivateKey implements IPrivateKey { + /// Private constructor for creating an Ed25519Blake2bPrivateKey instance from an EDDSAPrivateKey. + Ed25519Blake2bPrivateKey._(this.privateKey); + + final EDDSAPrivateKey privateKey; + + /// Factory method for creating an Ed25519Blake2bPrivateKey from a byte array. + /// It checks the length of the provided keyBytes to ensure it matches the expected length. + /// Then, it initializes an EdDSA private key using the Edward generator and BLAKE2b hash function. + factory Ed25519Blake2bPrivateKey.fromBytes(List keyBytes) { + if (keyBytes.length != Ed25519KeysConst.privKeyByteLen) { + throw ArgumentError("invalid private key length"); + } + final edwardGenerator = Curves.generatorED25519; + final eddsaPrivateKey = + EDDSAPrivateKey(edwardGenerator, keyBytes, () => BLAKE2b()); + return Ed25519Blake2bPrivateKey._(eddsaPrivateKey); + } + + /// curve type + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.ed25519Blake2b; + } + + /// check if bytes valid for this key + static bool isValidBytes(List keyBytes) { + try { + Ed25519Blake2bPrivateKey.fromBytes(keyBytes); + return true; + // ignore: empty_catches + } catch (e) {} + return false; + } + + /// private key bytes length + @override + int get length { + return Ed25519KeysConst.privKeyByteLen; + } + + /// access to public key + @override + IPublicKey get publicKey { + return Ed25519Blake2bPublicKey._(privateKey.publicKey()); + } + + /// private key raw bytes + @override + List get raw { + return privateKey.privateKey; + } +} diff --git a/lib/bip/ecc/keys/ed25519_keys.dart b/lib/bip/ecc/keys/ed25519_keys.dart new file mode 100644 index 0000000..c83a4e5 --- /dev/null +++ b/lib/bip/ecc/keys/ed25519_keys.dart @@ -0,0 +1,145 @@ +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/eddsa/privatekey.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/eddsa/publickey.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +import 'i_keys.dart'; + +/// Constants related to Ed25519 keys, including public and private keys. +class Ed25519KeysConst { + /// Public key prefix: A list of bytes that indicates a public key. + static const List pubKeyPrefix = [0x00]; + + /// Public key length in bytes: The length of an Ed25519 public key. + static const int pubKeyByteLen = 32; + + /// Private key length in bytes: The length of an Ed25519 private key. + static const int privKeyByteLen = 32; +} + +/// A class representing an Ed25519 public key that implements the IPublicKey interface. +class Ed25519PublicKey implements IPublicKey { + final EDDSAPublicKey publicKey; + + /// Private constructor for creating an Ed25519PublicKey instance from an EDDSAPublicKey. + Ed25519PublicKey._(this.publicKey); + + /// Factory method for creating an Ed25519PublicKey from a byte array. + /// It checks the length and prefix of the provided keyBytes to ensure validity. + /// If the keyBytes include a public key prefix, it removes it before creating the instance. + factory Ed25519PublicKey.fromBytes(List keyBytes) { + if (keyBytes.length == + Ed25519KeysConst.pubKeyByteLen + + Ed25519KeysConst.pubKeyPrefix.length && + keyBytes[0] == Ed25519KeysConst.pubKeyPrefix[0]) { + keyBytes = keyBytes.sublist(1); + } + return Ed25519PublicKey._( + EDDSAPublicKey(Curves.generatorED25519, keyBytes)); + } + + /// curve type + @override + EllipticCurveTypes get curve { + return EllipticCurveTypes.ed25519; + } + + /// public key compressed length + @override + int get length { + return Ed25519KeysConst.pubKeyByteLen + + Ed25519KeysConst.pubKeyPrefix.length; + } + + /// public key uncompressed length + @override + int get uncompressedLength { + return length; + } + + /// check bytes is valid for this key + static bool isValidBytes(List keyBytes) { + try { + Ed25519PublicKey.fromBytes(keyBytes); + return true; + // ignore: empty_catches + } catch (e) {} + return false; + } + + /// public key edwards point + @override + EDPoint get point { + return publicKey.point; + } + + /// compressed bytes of public key + @override + List get compressed { + return List.from( + [...Ed25519KeysConst.pubKeyPrefix, ...publicKey.point.toBytes()]); + } + + /// uncompressed bytes of public key + @override + List get uncompressed { + return compressed; + } +} + +/// A class representing an Ed25519 private key that implements the IPrivateKey interface. +class Ed25519PrivateKey implements IPrivateKey { + /// Private constructor for creating an Ed25519PrivateKey instance from an EDDSAPrivateKey. + Ed25519PrivateKey._(this.privateKey); + final EDDSAPrivateKey privateKey; + + /// Factory method for creating an Ed25519PrivateKey from a byte array. + /// It checks the length of the provided keyBytes to ensure it matches the expected length. + /// Then, it initializes an EdDSA private key using the Edward generator and SHA512 hash function. + factory Ed25519PrivateKey.fromBytes(List keyBytes) { + if (keyBytes.length != Ed25519KeysConst.privKeyByteLen) { + throw ArgumentError("invalid private key length"); + } + final edwardGenerator = Curves.generatorED25519; + final eddsaPrivateKey = + EDDSAPrivateKey(edwardGenerator, keyBytes, () => SHA512()); + return Ed25519PrivateKey._(eddsaPrivateKey); + } + + /// curve type + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.ed25519; + } + + /// check if bytes is valid for this key + static bool isValidBytes(List keyBytes) { + try { + Ed25519PrivateKey.fromBytes(keyBytes); + + return true; + // ignore: empty_catches + } catch (e) {} + return false; + } + + /// private key length + @override + int get length { + return Ed25519KeysConst.privKeyByteLen; + } + + /// accsess to public key + @override + IPublicKey get publicKey { + return Ed25519PublicKey._(privateKey.publicKey()); + } + + /// private key raw bytes + @override + List get raw { + return privateKey.privateKey; + } +} diff --git a/lib/bip/ecc/keys/ed25519_kholaw_keys.dart b/lib/bip/ecc/keys/ed25519_kholaw_keys.dart new file mode 100644 index 0000000..f205c3c --- /dev/null +++ b/lib/bip/ecc/keys/ed25519_kholaw_keys.dart @@ -0,0 +1,143 @@ +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_keys.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/eddsa/privatekey.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/eddsa/publickey.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; + +/// Constants related to Ed25519-Kholaw keys, specifically the private key length in bytes. +class Ed25519KholawKeysConst { + /// Private key length in bytes: The length of an Ed25519-Kholaw private key. + static const int privKeyByteLen = 64; +} + +/// A class representing an Ed25519-Kholaw public key that implements the IPublicKey interface. +class Ed25519KholawPublicKey implements IPublicKey { + final EDDSAPublicKey publicKey; + + /// Private constructor for creating an Ed25519-KholawPublicKey instance from an EDDSAPublicKey. + Ed25519KholawPublicKey._(this.publicKey); + + /// Factory method for creating an Ed25519-KholawPublicKey from a byte array. + /// It checks the length and prefix of the provided keyBytes to ensure validity. + /// If the keyBytes include a public key prefix, it removes it before creating the instance. + factory Ed25519KholawPublicKey.fromBytes(List keyBytes) { + if (keyBytes.length == + Ed25519KeysConst.pubKeyByteLen + + Ed25519KeysConst.pubKeyPrefix.length && + keyBytes[0] == Ed25519KeysConst.pubKeyPrefix[0]) { + keyBytes = keyBytes.sublist(1); + } + return Ed25519KholawPublicKey._( + EDDSAPublicKey(Curves.generatorED25519, keyBytes)); + } + + /// check if bytes is valid for this key + static bool isValidBytes(List keyBytes) { + try { + Ed25519KholawPublicKey.fromBytes(keyBytes); + + return true; + // ignore: empty_catches + } catch (e) {} + return false; + } + + /// accsess to public key edward point + @override + EDPoint get point { + return publicKey.point; + } + + /// public key compressed bytes length + @override + int get length { + return Ed25519KeysConst.pubKeyByteLen + + Ed25519KeysConst.pubKeyPrefix.length; + } + + /// curve type + @override + EllipticCurveTypes get curve { + return EllipticCurveTypes.ed25519Kholaw; + } + + /// public key uncompressed bytes length + @override + int get uncompressedLength { + return length; + } + + /// public key compressed bytes + @override + List get compressed { + return List.from( + [...Ed25519KeysConst.pubKeyPrefix, ...publicKey.point.toBytes()]); + } + + /// public key uncompressed bytes + @override + List get uncompressed { + return compressed; + } +} + +/// A class representing an Ed25519-Kholaw private key that implements the IPrivateKey interface. +class Ed25519KholawPrivateKey implements IPrivateKey { + /// Private constructor for creating an Ed25519-KholawPrivateKey instance from an extended key + /// and an EDDSAPrivateKey. + Ed25519KholawPrivateKey._(this._extendKey, this.privateKey); + final List _extendKey; + final EDDSAPrivateKey privateKey; + + /// Factory method for creating an Ed25519-KholawPrivateKey from a byte array. + /// It checks the length of the provided keyBytes to ensure it matches the expected length. + /// Then, it initializes an EdDSA private key using the Ed25519 generator and the specified keyBytes, + /// and stores any extended key data. + factory Ed25519KholawPrivateKey.fromBytes(List keyBytes) { + if (keyBytes.length != Ed25519KholawKeysConst.privKeyByteLen) { + throw ArgumentError("invalid private key length"); + } + final edwardGenerator = Curves.generatorED25519; + final eddsaPrivateKey = EDDSAPrivateKey.fromKhalow( + edwardGenerator, keyBytes.sublist(0, Ed25519KeysConst.privKeyByteLen)); + return Ed25519KholawPrivateKey._( + keyBytes.sublist(Ed25519KeysConst.privKeyByteLen), eddsaPrivateKey); + } + + /// check if bytes is valid for this key + static bool isValidBytes(List keyBytes) { + try { + Ed25519KholawPrivateKey.fromBytes(keyBytes); + + return true; + // ignore: empty_catches + } catch (e) {} + return false; + } + + /// curve type + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.ed25519Kholaw; + } + + /// private key length + @override + int get length { + return Ed25519KholawKeysConst.privKeyByteLen; + } + + /// acsess to public key + @override + IPublicKey get publicKey { + return Ed25519KholawPublicKey._(privateKey.publicKey()); + } + + /// private key raw bytes + @override + List get raw { + return List.from([...privateKey.privateKey, ..._extendKey]); + } +} diff --git a/lib/bip/ecc/keys/ed25519_monero_keys.dart b/lib/bip/ecc/keys/ed25519_monero_keys.dart new file mode 100644 index 0000000..f1d32a0 --- /dev/null +++ b/lib/bip/ecc/keys/ed25519_monero_keys.dart @@ -0,0 +1,178 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_keys.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/eddsa/privatekey.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/eddsa/publickey.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; + +/// A class representing an Ed25519 Monero-compatible public key that implements the IPublicKey interface. +class Ed25519MoneroPublicKey implements IPublicKey { + final EDDSAPublicKey publicKey; + + /// Private constructor for creating an Ed25519MoneroPublicKey instance from an EDDSAPublicKey. + Ed25519MoneroPublicKey._(this.publicKey); + + /// Factory method for creating an Ed25519MoneroPublicKey from a byte array. + factory Ed25519MoneroPublicKey.fromBytes(List keyBytes) { + return Ed25519MoneroPublicKey._( + EDDSAPublicKey(Curves.generatorED25519, keyBytes)); + } + + /// Factory method for creating an Ed25519MoneroPublicKey from an EDPoint. + factory Ed25519MoneroPublicKey.fromPoint(EDPoint point) { + return Ed25519MoneroPublicKey._( + EDDSAPublicKey.fromPoint(Curves.generatorED25519, point)); + } + + /// curve type + @override + EllipticCurveTypes get curve { + return EllipticCurveTypes.ed25519Monero; + } + + /// public key compressed bytes length + @override + int get length { + return Ed25519KeysConst.pubKeyByteLen; + } + + /// public key uncompressed bytes length + @override + int get uncompressedLength { + return length; + } + + /// check if bytes is valid for this key + static bool isValidBytes(List keyBytes) { + return Ed25519MoneroPrivateKey.isValidBytes(keyBytes); + } + + /// accsess to public key point + @override + EDPoint get point { + return publicKey.point; + } + + /// public key compressed bytes + @override + List get compressed { + return List.from( + [...Ed25519KeysConst.pubKeyPrefix, ...publicKey.point.toBytes()]); + } + + /// public key uncompressed bytes + @override + List get uncompressed { + return compressed; + } +} + +/// A class representing an Ed25519 Monero-compatible private key that implements the IPrivateKey interface. +class Ed25519MoneroPrivateKey implements IPrivateKey { + final EDDSAPrivateKey privateKey; + + /// Private constructor for creating an Ed25519MoneroPrivateKey instance from an EDDSAPrivateKey. + Ed25519MoneroPrivateKey._(this.privateKey); + + /// Factory method for creating an Ed25519MoneroPrivateKey from a byte array. + /// It checks the length of the provided keyBytes to ensure it matches the expected length. + /// Then, it initializes an EdDSA private key using the Ed25519 generator and the specified keyBytes. + factory Ed25519MoneroPrivateKey.fromBytes(List keyBytes) { + if (keyBytes.length != Ed25519KeysConst.privKeyByteLen) { + throw ArgumentError("invalid private key length"); + } + final gn = Curves.generatorED25519; + final prv = EDDSAPrivateKey.fromKhalow(gn, keyBytes); + return Ed25519MoneroPrivateKey._(prv); + } + + /// curve type + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.ed25519Monero; + } + + /// check if bytes is valid for this key + static bool isValidBytes(List keyBytes) { + try { + Ed25519MoneroPrivateKey.fromBytes(keyBytes); + + return true; + // ignore: empty_catches + } catch (e) {} + return false; + } + + /// private key bytes length + @override + int get length { + return Ed25519KeysConst.privKeyByteLen; + } + + /// accsess to public key + @override + IPublicKey get publicKey { + return Ed25519MoneroPublicKey._(privateKey.publicKey()); + } + + /// private key raw bytes + @override + List get raw { + return privateKey.privateKey; + } +} diff --git a/lib/bip/ecc/keys/i_keys.dart b/lib/bip/ecc/keys/i_keys.dart new file mode 100644 index 0000000..5c94c84 --- /dev/null +++ b/lib/bip/ecc/keys/i_keys.dart @@ -0,0 +1,113 @@ +import 'package:blockchain_utils/bip/ecc/keys/ed25519_keys.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_blake2b_keys.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_kholaw_keys.dart'; +import 'package:blockchain_utils/bip/ecc/keys/nist256p1_keys.dart'; +import 'package:blockchain_utils/bip/ecc/keys/secp256k1_keys_ecdsa.dart'; +import 'package:blockchain_utils/bip/ecc/keys/sr25519_keys.dart'; +import 'package:blockchain_utils/bip/monero/monero_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/base.dart'; + +/// An abstract class representing a generic public key interface for different elliptic curve types. +abstract class IPublicKey { + /// Factory method for creating an IPublicKey instance from a byte array and an elliptic curve type. + factory IPublicKey.fromBytes(List keybytes, EllipticCurveTypes type) { + switch (type) { + case EllipticCurveTypes.nist256p1: + return Nist256p1PublicKey.fromBytes(keybytes); + case EllipticCurveTypes.sr25519: + return Sr25519PublicKey.fromBytes(keybytes); + case EllipticCurveTypes.ed25519: + return Ed25519PublicKey.fromBytes(keybytes); + case EllipticCurveTypes.ed25519Kholaw: + return Ed25519KholawPublicKey.fromBytes(keybytes); + case EllipticCurveTypes.ed25519Monero: + return MoneroPublicKey.fromBytes(keybytes); + case EllipticCurveTypes.ed25519Blake2b: + return Ed25519Blake2bPublicKey.fromBytes(keybytes); + default: + return Secp256k1PublicKeyEcdsa.fromBytes(keybytes); + } + } + + /// Static method to check the validity of a byte array as a public key for a specific elliptic curve type. + static bool isValidBytes(List keyBytes, EllipticCurveTypes type) { + switch (type) { + case EllipticCurveTypes.nist256p1: + return Nist256p1PublicKey.isValidBytes(keyBytes); + case EllipticCurveTypes.ed25519: + return Ed25519PublicKey.isValidBytes(keyBytes); + case EllipticCurveTypes.ed25519Kholaw: + return Ed25519KholawPublicKey.isValidBytes(keyBytes); + case EllipticCurveTypes.ed25519Blake2b: + return Ed25519Blake2bPublicKey.isValidBytes(keyBytes); + default: + return Secp256k1PublicKeyEcdsa.isValidBytes(keyBytes); + } + } + + /// Get the elliptic curve type associated with the public key. + EllipticCurveTypes get curve; + + /// Get the compressed length of the public key in bytes. + int get length; + + /// Get the length of the uncompressed public key in bytes. + int get uncompressedLength; + + /// Get the compressed form of the public key as a byte array. + List get compressed; + + /// Get the uncompressed form of the public key as a byte array. + List get uncompressed; + + /// Get the abstract point representation of the public key. + AbstractPoint get point; +} + +/// An abstract class representing a generic private key interface for different elliptic curve types. +abstract class IPrivateKey { + /// Get the elliptic curve type associated with the private key. + EllipticCurveTypes get curveType; + + /// Factory method for creating an IPrivateKey instance from a byte array and an elliptic curve type. + factory IPrivateKey.fromBytes(List keyBytes, EllipticCurveTypes type) { + switch (type) { + case EllipticCurveTypes.nist256p1: + return Nist256p1PrivateKey.fromBytes(keyBytes); + case EllipticCurveTypes.ed25519: + return Ed25519PrivateKey.fromBytes(keyBytes); + case EllipticCurveTypes.ed25519Kholaw: + return Ed25519KholawPrivateKey.fromBytes(keyBytes); + case EllipticCurveTypes.ed25519Blake2b: + return Ed25519Blake2bPrivateKey.fromBytes(keyBytes); + default: + } + return Secp256k1PrivateKeyEcdsa.fromBytes(keyBytes); + } + + /// Get the length of the private key in bytes. + int get length; + + /// Get the raw private key as a byte array. + List get raw; + + /// Get the associated public key. + IPublicKey get publicKey; + + /// Static method to check the validity of key bytes for a specific elliptic curve type. + static bool isValidBytes(List keyBytes, EllipticCurveTypes type) { + switch (type) { + case EllipticCurveTypes.nist256p1: + return Nist256p1PrivateKey.isValidBytes(keyBytes); + case EllipticCurveTypes.ed25519: + return Ed25519PrivateKey.isValidBytes(keyBytes); + case EllipticCurveTypes.ed25519Kholaw: + return Ed25519KholawPrivateKey.isValidBytes(keyBytes); + case EllipticCurveTypes.ed25519Blake2b: + return Ed25519Blake2bPrivateKey.isValidBytes(keyBytes); + default: + return Secp256k1PrivateKeyEcdsa.isValidBytes(keyBytes); + } + } +} diff --git a/lib/bip/ecc/keys/nist256p1_keys.dart b/lib/bip/ecc/keys/nist256p1_keys.dart new file mode 100644 index 0000000..4e6fd83 --- /dev/null +++ b/lib/bip/ecc/keys/nist256p1_keys.dart @@ -0,0 +1,171 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deals + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/ecc/keys/ecdsa_keys.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/ecdsa/private_key.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/ecdsa/public_key.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/base.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/ec_projective_point.dart'; + +/// A class representing a NIST P-256 public key that implements the IPublicKey interface. +class Nist256p1PublicKey implements IPublicKey { + final ECDSAPublicKey publicKey; + + /// Private constructor for creating a Nist256p1PublicKey instance from an ECDSAPublicKey. + Nist256p1PublicKey._(this.publicKey); + + /// Factory method for creating a Nist256p1PublicKey from a byte array. + factory Nist256p1PublicKey.fromBytes(List keyBytes) { + final point = ProjectiveECCPoint.fromBytes( + curve: Curves.curve256, data: keyBytes, order: null); + final pub = ECDSAPublicKey(Curves.generator256, point); + return Nist256p1PublicKey._(pub); + } + + /// public key compressed bytes length. + @override + int get length { + return EcdsaKeysConst.pubKeyCompressedByteLen; + } + + /// curve type + @override + EllipticCurveTypes get curve { + return EllipticCurveTypes.nist256p1; + } + + /// check if bytes is valid for this key. + static bool isValidBytes(List keyBytes) { + try { + Nist256p1PublicKey.fromBytes(keyBytes); + return true; + // ignore: empty_catches + } catch (e) {} + return false; + } + + /// public key point. + @override + ProjectiveECCPoint get point { + return publicKey.point as ProjectiveECCPoint; + } + + /// public key compressed bytes. + @override + List get compressed { + return publicKey.point.toBytes(EncodeType.comprossed); + } + + /// public key uncompressed bytes. + @override + List get uncompressed { + return publicKey.point.toBytes(EncodeType.uncompressed); + } + + @override + int get uncompressedLength { + return EcdsaKeysConst.pubKeyUncompressedByteLen; + } +} + +/// A class representing a NIST P-256 private key that implements the IPrivateKey interface. +class Nist256p1PrivateKey implements IPrivateKey { + final ECDSAPrivateKey privateKey; + + /// Private constructor for creating a Nist256p1PrivateKey instance from an ECDSAPrivateKey. + Nist256p1PrivateKey._(this.privateKey); + + /// Factory method for creating a Nist256p1PrivateKey from a byte array. + factory Nist256p1PrivateKey.fromBytes(List keyBytes) { + final prv = ECDSAPrivateKey.fromBytes(keyBytes, Curves.generator256); + return Nist256p1PrivateKey._(prv); + } + + /// curve type. + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.nist256p1; + } + + /// check if bytes is valid for this key. + static bool isValidBytes(List keyBytes) { + try { + ECDSAPrivateKey.fromBytes(keyBytes, Curves.generator256); + return true; + } catch (e) { + return false; + } + } + + /// private key bytes length + @override + int get length { + return EcdsaKeysConst.privKeyByteLen; + } + + /// accsess to public key + @override + IPublicKey get publicKey { + return Nist256p1PublicKey._(privateKey.publicKey); + } + + /// private key raw bytes + @override + List get raw { + return privateKey.toBytes(); + } +} diff --git a/lib/bip/ecc/keys/secp256k1_keys_ecdsa.dart b/lib/bip/ecc/keys/secp256k1_keys_ecdsa.dart new file mode 100644 index 0000000..3e7d977 --- /dev/null +++ b/lib/bip/ecc/keys/secp256k1_keys_ecdsa.dart @@ -0,0 +1,118 @@ +import 'package:blockchain_utils/bip/ecc/keys/ecdsa_keys.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/ecdsa/private_key.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/ecdsa/public_key.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/base.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/ec_projective_point.dart'; + +/// A class representing a Secp256k1 public key using the ECDSA algorithm that implements the IPublicKey interface. +class Secp256k1PublicKeyEcdsa implements IPublicKey { + final ECDSAPublicKey publicKey; + + /// Private constructor for creating a Secp256k1PublicKeyEcdsa instance from an ECDSAPublicKey. + Secp256k1PublicKeyEcdsa._(this.publicKey); + + /// Factory method for creating a Secp256k1PublicKeyEcdsa from a byte array. + factory Secp256k1PublicKeyEcdsa.fromBytes(List keyBytes) { + final point = ProjectiveECCPoint.fromBytes( + curve: Curves.curveSecp256k1, data: keyBytes, order: null); + final pub = ECDSAPublicKey(Curves.generatorSecp256k1, point); + return Secp256k1PublicKeyEcdsa._(pub); + } + + /// public key compressed bytes length + @override + int get length { + return EcdsaKeysConst.pubKeyCompressedByteLen; + } + + /// curve type. + @override + EllipticCurveTypes get curve { + return EllipticCurveTypes.secp256k1; + } + + /// check if bytes is valid for this key. + static bool isValidBytes(List keyBytes) { + try { + Secp256k1PublicKeyEcdsa.fromBytes(keyBytes); + return true; + } catch (e) { + return false; + } + } + + /// accsess to public key point. + @override + ProjectiveECCPoint get point { + return publicKey.point as ProjectiveECCPoint; + } + + /// public key compressed bytes. + @override + List get compressed { + return publicKey.point.toBytes(EncodeType.comprossed); + } + + /// public key uncompressed bytes. + @override + List get uncompressed { + return publicKey.point.toBytes(EncodeType.uncompressed); + } + + /// public key uncompressed bytes length; + @override + int get uncompressedLength { + return EcdsaKeysConst.pubKeyUncompressedByteLen; + } +} + +/// A class representing a Secp256k1 private key using the ECDSA algorithm that implements the IPrivateKey interface. +class Secp256k1PrivateKeyEcdsa implements IPrivateKey { + final ECDSAPrivateKey privateKey; + + /// Private constructor for creating a Secp256k1PrivateKeyEcdsa instance from an ECDSAPrivateKey. + Secp256k1PrivateKeyEcdsa._(this.privateKey); + + /// Factory method for creating a Secp256k1PrivateKeyEcdsa from a byte array. + factory Secp256k1PrivateKeyEcdsa.fromBytes(List keyBytes) { + final prv = ECDSAPrivateKey.fromBytes(keyBytes, Curves.generatorSecp256k1); + return Secp256k1PrivateKeyEcdsa._(prv); + } + + /// curve type + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.secp256k1; + } + + /// check if bytes is valid for this key. + static bool isValidBytes(List keyBytes) { + try { + ECDSAPrivateKey.fromBytes(keyBytes, Curves.generatorSecp256k1); + return true; + } catch (e) { + return false; + } + } + + /// private key bytes length. + @override + int get length { + return EcdsaKeysConst.privKeyByteLen; + } + + /// accsess to public key. + @override + IPublicKey get publicKey { + return Secp256k1PublicKeyEcdsa._(privateKey.publicKey); + } + + /// private key raw bytes. + @override + List get raw { + return privateKey.toBytes(); + } +} diff --git a/lib/bip/ecc/keys/sr25519_keys.dart b/lib/bip/ecc/keys/sr25519_keys.dart new file mode 100644 index 0000000..e529cdb --- /dev/null +++ b/lib/bip/ecc/keys/sr25519_keys.dart @@ -0,0 +1,119 @@ +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/ristretto_point.dart'; +import 'package:blockchain_utils/crypto/crypto/schnorrkel/keys/keys.dart'; + +/// Constants related to Sr25519 keys, including public and private key lengths. +class Sr25519KeysConst { + /// Public key length in bytes: The length of an Sr25519 public key. + static const int pubKeyByteLen = 32; + + /// Private key length in bytes: The length of an Sr25519 private key. + static const int privKeyByteLen = 64; +} + +/// A class representing an Sr25519 public key that implements the IPublicKey interface. +class Sr25519PublicKey implements IPublicKey { + final SchnorrkelPublicKey publicKey; + + /// Private constructor for creating an Sr25519PublicKey instance from a SchnorrkelPublicKey. + Sr25519PublicKey._(this.publicKey); + + /// Factory method for creating an Sr25519PublicKey from a byte array. + factory Sr25519PublicKey.fromBytes(List keyBytes) { + return Sr25519PublicKey._(SchnorrkelPublicKey(keyBytes)); + } + + /// public key compressed bytes length. + @override + int get length { + return Sr25519KeysConst.pubKeyByteLen; + } + + /// curve type. + @override + EllipticCurveTypes get curve { + return EllipticCurveTypes.sr25519; + } + + /// check if bytes is valid for this key. + static bool isValidBytes(List keyBytes) { + try { + SchnorrkelPublicKey(keyBytes); + return true; + } catch (e) { + return false; + } + } + + /// accsess to public key point. + @override + RistrettoPoint get point { + return publicKey.toPoint(); + } + + /// public key compressed bytes. + @override + List get compressed { + return publicKey.toBytes(); + } + + /// public key uncompressed bytes. + @override + List get uncompressed { + return compressed; + } + + /// public key uncompressed bytes length. + @override + int get uncompressedLength { + return length; + } +} + +/// A class representing an Sr25519 private key that implements the IPrivateKey interface. +class Sr25519PrivateKey implements IPrivateKey { + final SchnorrkelSecretKey secretKey; + + /// Private constructor for creating an Sr25519PrivateKey instance from a SchnorrkelSecretKey. + Sr25519PrivateKey._(this.secretKey); + + /// Factory method for creating an Sr25519PrivateKey from a byte array. + factory Sr25519PrivateKey.fromBytes(List keyBytes) { + return Sr25519PrivateKey._(SchnorrkelSecretKey.fromBytes(keyBytes)); + } + + /// curve type. + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.sr25519; + } + + /// check if bytes is valid for this key. + static bool isValidBytes(List keyBytes) { + try { + SchnorrkelSecretKey.fromBytes(keyBytes); + return true; + } catch (e) { + return false; + } + } + + /// private key bytes length. + @override + int get length { + return Sr25519KeysConst.privKeyByteLen; + } + + /// accsess to public key. + @override + Sr25519PublicKey get publicKey { + return Sr25519PublicKey._(secretKey.publicKey()); + } + + /// private key raw bytes. + @override + List get raw { + return secretKey.toBytes(); + } +} diff --git a/lib/bip/electrum/electrum.dart b/lib/bip/electrum/electrum.dart new file mode 100644 index 0000000..af0fa70 --- /dev/null +++ b/lib/bip/electrum/electrum.dart @@ -0,0 +1,29 @@ +/// The 'electrum' library provides tools for working with Electrum-style mnemonic phrases +/// and address keys, including version 1 (v1) and version 2 (v2) of Electrum standards. +library electrum; + +/// Export statements for Electrum-style mnemonic version 1 (v1) components. +export 'mnemonic_v1/electrum_v1_entropy_generator.dart'; +export 'mnemonic_v1/electrum_v1_mnemonic.dart'; +export 'mnemonic_v1/electrum_v1_mnemonic_decoder.dart'; +export 'mnemonic_v1/electrum_v1_mnemonic_encoder.dart'; +export 'mnemonic_v1/electrum_v1_mnemonic_generator.dart'; +export 'mnemonic_v1/electrum_v1_mnemonic_utils.dart'; +export 'mnemonic_v1/electrum_v1_mnemonic_validator.dart'; +export 'mnemonic_v1/electrum_v1_seed_generator.dart'; + +/// Export statements for Electrum-style mnemonic version 2 (v2) components. +export 'mnemonic_v2/electrum_v2_entropy_generator.dart'; +export 'mnemonic_v2/electrum_v2_mnemonic.dart'; +export 'mnemonic_v2/electrum_v2_mnemonic_decoder.dart'; +export 'mnemonic_v2/electrum_v2_mnemonic_encoder.dart'; +export 'mnemonic_v2/electrum_v2_mnemonic_generator.dart'; +export 'mnemonic_v2/electrum_v2_mnemonic_utils.dart'; +export 'mnemonic_v2/electrum_v2_mnemonic_validator.dart'; +export 'mnemonic_v2/electrum_v2_seed_generator.dart'; + +/// Export statement for Electrum-style version 1 (v1) address keys and derivation. +export 'electrum_v1.dart'; + +/// Export statement for Electrum-style version 2 (v2) address keys and derivation. +export 'electrum_v2.dart'; diff --git a/lib/bip/electrum/electrum_v1.dart b/lib/bip/electrum/electrum_v1.dart new file mode 100644 index 0000000..fb7cd64 --- /dev/null +++ b/lib/bip/electrum/electrum_v1.dart @@ -0,0 +1,122 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/bip/address/p2pkh_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ecdsa_keys.dart'; +import 'package:blockchain_utils/bip/ecc/keys/secp256k1_keys_ecdsa.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// Electrum V1 is a class that represents a pair of public and private keys for the Secp256k1 elliptic curve. +class ElectrumV1 { + final IPrivateKey? privateKey; + final IPublicKey publicKey; + + /// Private constructor to create an Electrum V1 instance with a private key and its corresponding public key. + ElectrumV1._(this.privateKey, this.publicKey); + + /// Create an Electrum V1 instance from a seed represented as [List]. + factory ElectrumV1.fromSeed(List seedBytes) { + return ElectrumV1.fromPrivateKey(seedBytes); + } + + /// Create an Electrum V1 instance from a private key represented as [List]. + factory ElectrumV1.fromPrivateKey(List privKey) { + final privateKey = Secp256k1PrivateKeyEcdsa.fromBytes(privKey); + return ElectrumV1._(privateKey, privateKey.publicKey); + } + + /// Create an Electrum V1 instance from a public key represented as [List]. + static ElectrumV1 fromPublicKey(List pubKey) { + final publicKey = Secp256k1PublicKeyEcdsa.fromBytes(pubKey); + return ElectrumV1._(null, publicKey); + } + + /// Checks if this key contains only public information. + bool get isPublicOnly { + return privateKey == null; + } + + /// Get the master private key, throwing an exception if it's a public-only key. + IPrivateKey get masterPrivateKey { + if (isPublicOnly) { + throw Exception('Public-only deterministic keys have no private half'); + } + return privateKey!; + } + + /// Get the master public key. + IPublicKey get masterPublicKey { + return publicKey; + } + + /// Get a private key for a specific change and address index, throwing an exception if it's a public-only key. + IPrivateKey getPrivateKey(int changeIndex, int addrIndex) { + if (isPublicOnly) { + throw Exception('Public-only deterministic keys have no private half'); + } + return _derivePrivateKey(changeIndex, addrIndex); + } + + /// Get a public key for a specific change and address index. + IPublicKey getPublicKey(int changeIndex, int addressIndex) { + return isPublicOnly + ? _derivePublicKey(changeIndex, addressIndex) + : getPrivateKey(changeIndex, addressIndex).publicKey; + } + + /// Get the P2PKH address for a specific change and address index. + String getAddress(int changeIndex, int addressIndex) { + return P2PKHAddrEncoder() + .encodeKey(getPublicKey(changeIndex, addressIndex).compressed, { + "net_ver": CoinsConf.bitcoinMainNet.getParam('p2pkh_net_ver'), + "pub_key_mode": P2PKHPubKeyModes.uncompressed + }); + } + + /// Derive a private key for a specific change and address index. + IPrivateKey _derivePrivateKey(int changeIndex, int addressIndex) { + _validateIndexes(changeIndex, addressIndex); + final seqBytes = _getSequence(changeIndex, addressIndex); + final privBig = + BigintUtils.fromBytes(privateKey!.raw, byteOrder: Endian.big); + final newPriveBig = BigintUtils.fromBytes(seqBytes, byteOrder: Endian.big); + final p = (privBig + newPriveBig) % Curves.generatorSecp256k1.order!; + final toBytes = + BigintUtils.toBytes(p, length: EcdsaKeysConst.privKeyByteLen); + return Secp256k1PrivateKeyEcdsa.fromBytes(toBytes); + } + + /// Derive a public key for a specific change and address index. + IPublicKey _derivePublicKey(int changeIndex, int addressIndex) { + _validateIndexes(changeIndex, addressIndex); + final seqBytes = _getSequence(changeIndex, addressIndex); + + final pubPoint = masterPublicKey.point; + + final newPubPoint = Curves.generatorSecp256k1 * + BigintUtils.fromBytes(seqBytes, byteOrder: Endian.big); + return Secp256k1PublicKeyEcdsa.fromBytes( + (pubPoint + newPubPoint).toBytes()); + } + + /// Generate a sequence of bytes based on change and address index. + List _getSequence(int changeIndex, int addrIndex) { + return QuickCrypto.sha256DoubleHash( + List.from([ + ...StringUtils.encode('$addrIndex:$changeIndex:'), + ...masterPublicKey.uncompressed.sublist(1) + ]), + ); + } + + /// Validate change and address indexes to ensure they are non-negative. + static void _validateIndexes(int changeIndex, int addrIndex) { + Bip32KeyIndex(changeIndex); + Bip32KeyIndex(addrIndex); + } +} diff --git a/lib/bip/electrum/electrum_v2.dart b/lib/bip/electrum/electrum_v2.dart new file mode 100644 index 0000000..75060a2 --- /dev/null +++ b/lib/bip/electrum/electrum_v2.dart @@ -0,0 +1,167 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/bip/address/P2PKH_addr.dart'; +import 'package:blockchain_utils/bip/address/p2wpkh_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip32/base/bip32_base.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_keys.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_secp256k1.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; + +/// An abstract base class for Electrum V2 implementations +abstract class ElectrumV2Base { + final Bip32Slip10Secp256k1 bip32; + + ElectrumV2Base(this.bip32); +// Check if the instance contains only public keys (no private keys). + bool get isPublicOnly { + return bip32.isPublicOnly; + } + + /// Get the master private key. + Bip32PrivateKey get masterPrivateKey { + return bip32.privateKey; + } + + /// Get the master public key. + Bip32PublicKey get masterPublicKey { + return bip32.publicKey; + } + + /// Get a specific private key based on change and address indexes. + Bip32PrivateKey getPrivateKey(int changeIndex, int addressIndex); + + /// Get a specific public key based on change and address indexes. + Bip32PublicKey getPublicKey(int changeIndex, int addressIndex); + + /// Get the address for a specific change and address index. + String getAddress(int changeIndex, int addressIndex); +} + +/// Implementation of Electrum V2 for the standard type wallet. +class ElectrumV2Standard extends ElectrumV2Base { + ElectrumV2Standard(Bip32Slip10Secp256k1 bip32) : super(bip32); + + /// Factory method to create an instance from a seed. + factory ElectrumV2Standard.fromSeed(List seedBytes) { + final bip = Bip32Slip10Secp256k1.fromSeed(seedBytes); + return ElectrumV2Standard(bip); + } + + /// Get a specific private key based on change and address indexes. + @override + Bip32PrivateKey getPrivateKey(int changeIndex, int addressIndex) { + return _deriveKey(changeIndex, addressIndex).privateKey; + } + + /// Get a specific public key based on change and address indexes. + @override + Bip32PublicKey getPublicKey(int changeIndex, int addressIndex) { + return _deriveKey(changeIndex, addressIndex).publicKey; + } + + /// Get the P2PKH (pay-to-pub-key-hash) address for a specific change and address index. + @override + String getAddress(int changeIndex, int addressIndex) { + return P2PKHAddrEncoder().encodeKey( + getPublicKey(changeIndex, addressIndex).compressed, + {"net_ver": CoinsConf.bitcoinMainNet.getParam('p2pkh_net_ver')}); + } + + /// Derive a key for a specific change and address index. + Bip32Base _deriveKey(int changeIndex, int addressIndex) { + return bip32.derivePath('m/$changeIndex/$addressIndex'); + } +} + +/// Implementation of Electrum V2 for the segwit type wallet. +class ElectrumV2Segwit extends ElectrumV2Base { + final Bip32Base bip32Account; + + ElectrumV2Segwit(Bip32Slip10Secp256k1 bip32) + : bip32Account = bip32.derivePath("m/0'"), + super(bip32); + + /// Factory method to create an instance from a seed. + factory ElectrumV2Segwit.fromSeed(List seedBytes) { + final bip = Bip32Slip10Secp256k1.fromSeed(seedBytes); + return ElectrumV2Segwit(bip); + } + + /// Get a specific private key based on change and address indexes. + @override + Bip32PrivateKey getPrivateKey(int changeIndex, int addressIndex) { + return _deriveKey(changeIndex, addressIndex).privateKey; + } + + /// Get a specific public key based on change and address indexes. + @override + Bip32PublicKey getPublicKey(int changeIndex, int addressIndex) { + return _deriveKey(changeIndex, addressIndex).publicKey; + } + + /// Get the P2WPKH (pay-to-witness-pub-key-hash) address for a specific change and address index. + @override + String getAddress(int changeIndex, int addressIndex) { + return P2WPKHAddrEncoder() + .encodeKey(getPublicKey(changeIndex, addressIndex).compressed, { + "hrp": CoinsConf.bitcoinMainNet.getParam("p2wpkh_hrp"), + }); + } + + /// Derive a key for a specific change and address index. + Bip32Base _deriveKey(int changeIndex, int addressIndex) { + return bip32Account.derivePath('$changeIndex/$addressIndex'); + } +} diff --git a/lib/bip/electrum/mnemonic_v1/electrum_v1_entropy_generator.dart b/lib/bip/electrum/mnemonic_v1/electrum_v1_entropy_generator.dart new file mode 100644 index 0000000..a07bbc3 --- /dev/null +++ b/lib/bip/electrum/mnemonic_v1/electrum_v1_entropy_generator.dart @@ -0,0 +1,41 @@ +import 'package:blockchain_utils/bip/mnemonic/entropy_generator.dart'; + +/// Constants related to Electrum V1 entropy bit lengths. +class ElectrumV1EntropyBitLen { + /// Bit length for 128 bits of entropy. + static const int bitLen128 = 128; +} + +/// Constants related to Electrum V1 entropy generation, specifying available bit lengths. +class ElectrumV1EntropyGeneratorConst { + /// List of entropy bit lengths, including bitLen128. + static List entropyBitLen = [ + ElectrumV1EntropyBitLen.bitLen128, + ]; +} + +/// A class representing an entropy generator for Electrum V1, extending the EntropyGenerator base class. +class ElectrumV1EntropyGenerator extends EntropyGenerator { + /// List of valid bit lengths for Electrum V1 entropy generation. + static const List validBitLengths = [ElectrumV1EntropyBitLen.bitLen128]; + + /// Constructs an ElectrumV1EntropyGenerator with a specified bit length. + /// If the bit length is not valid, it raises an error. + ElectrumV1EntropyGenerator( + {int bitLength = ElectrumV1EntropyBitLen.bitLen128}) + : super(bitLength) { + if (!isValidEntropyBitLength(bitLength)) { + throw ArgumentError('Entropy bit length is not valid ($bitLength)'); + } + } + + /// Checks if a given bit length is valid for Electrum V1 entropy generation. + static bool isValidEntropyBitLength(int bitLength) { + return validBitLengths.contains(bitLength); + } + + /// Checks if a given byte length is valid for Electrum V1 entropy generation. + static bool isValidEntropyByteLength(int byteLength) { + return isValidEntropyBitLength(byteLength * 8); + } +} diff --git a/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic.dart b/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic.dart new file mode 100644 index 0000000..aa94991 --- /dev/null +++ b/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic.dart @@ -0,0 +1,55 @@ +import 'dart:core'; + +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; +import 'wrodlist/languages.dart' as languages; + +/// An enumeration representing the number of words in an Electrum V1 mnemonic. +enum ElectrumV1WordsNum { + /// Represents a 12-word Electrum V1 mnemonic + wordsNum12(12); + + final int value; + + /// Constructs an ElectrumV1WordsNum enum value with the specified integer value. + const ElectrumV1WordsNum(this.value); +} + +/// An enumeration representing the languages supported by Electrum V1 mnemonics. +enum ElectrumV1Languages implements MnemonicLanguages { + /// Represents the English language + english; + + /// accsess to language list + @override + List get languageValues => ElectrumV1Languages.values; + + /// accsess to words list + @override + List get wordList { + switch (this) { + case ElectrumV1Languages.english: + return languages.elctrumMnemonicWordsList; + } + } +} + +/// Constants and class definitions related to Electrum V1 mnemonics. +class ElectrumV1MnemonicConst { + /// List of supported word numbers for Electrum V1 mnemonics + static const List mnemonicWordNum = [ + ElectrumV1WordsNum.wordsNum12 + ]; + + /// The number associated with the word list used for Electrum V1 mnemonics + static const int wordsListNum = 1626; +} + +/// A class representing Electrum V1 mnemonics, extending the Bip39Mnemonic class. +class ElectrumV1Mnemonic extends Bip39Mnemonic { + /// Constructs an Electrum V1 mnemonic from a string representation. + ElectrumV1Mnemonic.fromString(String mnemonic) : super.fromString(mnemonic); + + /// Constructs an Electrum V1 mnemonic from a list of words. + ElectrumV1Mnemonic.fromList(List mnemonic) : super.fromList(mnemonic); +} diff --git a/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_decoder.dart b/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_decoder.dart new file mode 100644 index 0000000..66a5a15 --- /dev/null +++ b/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_decoder.dart @@ -0,0 +1,69 @@ +import 'dart:core'; +import 'dart:typed_data'; + +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_decoder_base.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; + +/// A class for decoding Electrum V1 mnemonics, extending the MnemonicDecoderBase class. +class ElectrumV1MnemonicDecoder extends MnemonicDecoderBase { + /// Constructs an ElectrumV1MnemonicDecoder with an optional language specification. + ElectrumV1MnemonicDecoder( + [ElectrumV1Languages? language = ElectrumV1Languages.english]) + : super( + language: language, + wordsListFinder: ElectrumV1WordsListFinder(), + wordsListGetter: ElectrumV1WordsListGetter(), + ); + + /// Decodes an Electrum V1 mnemonic string into a List representing entropy. + /// + /// This method takes an Electrum V1 mnemonic string as input and processes it to obtain + /// the corresponding entropy bytes. It validates the mnemonic's word count and detects + /// the language if it was not specified during construction. Then, it converts the mnemonic + /// words into entropy bytes by considering 3 words at a time, where 3 words represent 4 bytes. + /// + /// Throws an ArgumentError if the mnemonic words count is not valid. + /// + /// Returns a List containing the decoded entropy bytes. + /// + /// [mnemonic]: The Electrum V1 mnemonic string to decode. + @override + List decode(String mnemonic) { + /// Parse the mnemonic into an Electrum V1 mnemonic object + final mnemonicObj = ElectrumV1Mnemonic.fromString(mnemonic); + + /// Get the number of words in the mnemonic + final wCount = mnemonicObj.wordsCount(); + + /// Validate the words count against a predefined list + try { + ElectrumV1MnemonicConst.mnemonicWordNum + .firstWhere((element) => element.value == wCount); + } on StateError { + throw ArgumentError('Mnemonic words count is not valid ($wCount)'); + } + + // Detect language if it was not specified at construction + final wordsList = findLanguage(mnemonicObj).$1; + + // Get words from the mnemonic + final words = mnemonicObj.toList(); + + // Consider 3 words at a time, 3 words represent 4 bytes + List entropyBytes = List.empty(); + for (int i = 0; i < words.length ~/ 3; i++) { + final word1 = words[i * 3]; + final word2 = words[i * 3 + 1]; + final word3 = words[i * 3 + 2]; + entropyBytes = List.from([ + ...entropyBytes, + ...MnemonicUtils.wordsToBytesChunk(word1, word2, word3, wordsList, + endian: Endian.little) + ]); + } + + return entropyBytes; + } +} diff --git a/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_encoder.dart b/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_encoder.dart new file mode 100644 index 0000000..c88eb0e --- /dev/null +++ b/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_encoder.dart @@ -0,0 +1,49 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_entropy_generator.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_encoder_base.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; + +/// A class for encoding data into Electrum V1 mnemonics, extending the MnemonicEncoderBase class. +class ElectrumV1MnemonicEncoder extends MnemonicEncoderBase { + /// Constructs an ElectrumV1MnemonicEncoder with an optional language specification. + /// + /// The encoder is initialized with the specified language (default: English) and an Electrum V1 + /// words list getter to retrieve the list of valid words for the selected language. + /// + /// [language]: The language to use for encoding (default: English). + ElectrumV1MnemonicEncoder( + [ElectrumV1Languages language = ElectrumV1Languages.english]) + : super(language, ElectrumV1WordsListGetter()); + + /// Encodes a List of entropy bytes into an Electrum V1 mnemonic. + /// + /// This method takes a List of entropy bytes as input and generates an Electrum V1 mnemonic by + /// dividing the entropy into 4-byte chunks and converting each chunk into a list of mnemonic words. + /// It checks the validity of the entropy byte length and throws an ArgumentError if it's not valid. + /// + /// Returns an Electrum V1 mnemonic representing the encoded data. + /// + /// [entropyBytes]: The List of entropy bytes to encode. + @override + Mnemonic encode(List entropyBytes) { + // Check entropy length + int entropyByteLen = entropyBytes.length; + if (!ElectrumV1EntropyGenerator.isValidEntropyByteLength(entropyByteLen)) { + throw ArgumentError('Entropy byte length ($entropyByteLen) is not valid'); + } + + // Build mnemonic + List mnemonic = []; + for (int i = 0; i < entropyBytes.length ~/ 4; i++) { + mnemonic.addAll(MnemonicUtils.bytesChunkToWords( + entropyBytes.sublist(i * 4, (i * 4) + 4), wordsList, + endian: Endian.little)); + } + + return ElectrumV1Mnemonic.fromList(mnemonic); + } +} diff --git a/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_generator.dart b/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_generator.dart new file mode 100644 index 0000000..2a28b61 --- /dev/null +++ b/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_generator.dart @@ -0,0 +1,72 @@ +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_entropy_generator.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_encoder.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; + +/// Constants related to Electrum V1 mnemonic generation, mapping the number of words to entropy length. +class ElectrumV1MnemonicGeneratorConst { + /// Mapping of the number of words to their corresponding entropy length. + static Map wordsNumToEntropyLen = { + ElectrumV1WordsNum.wordsNum12: ElectrumV1EntropyBitLen.bitLen128, + }; +} + +/// A class for generating Electrum V1 mnemonics, providing the ability to encode data into mnemonics. +class ElectrumV1MnemonicGenerator { + final ElectrumV1MnemonicEncoder encoder; + + /// Constructs an ElectrumV1MnemonicGenerator with an optional language specification. + /// + /// The generator uses an `ElectrumV1MnemonicEncoder` with the specified language (default: English) + /// for encoding data into Electrum V1 mnemonics. + /// + /// [language]: The language to use for mnemonic encoding (default: English). + ElectrumV1MnemonicGenerator( + [ElectrumV1Languages language = ElectrumV1Languages.english]) + : encoder = ElectrumV1MnemonicEncoder(language); + + /// Generates an Electrum V1 mnemonic with a specified number of words. + /// + /// This method takes the desired number of words as input and generates an Electrum V1 mnemonic with + /// the corresponding entropy length. It validates the words number and then uses an `ElectrumV1EntropyGenerator` + /// to generate the required entropy bytes. Finally, it creates an Electrum V1 mnemonic from the generated entropy. + /// + /// Throws an ArgumentError if the words number is invalid. + /// + /// Returns an Electrum V1 mnemonic with the specified number of words. + /// + /// [wordsNum]: The number of words to use in the mnemonic. + Mnemonic fromWordsNumber(int wordsNum) { + /// Validate the provided words number against predefined values + try { + ElectrumV1WordsNum.values + .firstWhere((element) => element.value == wordsNum); + } on StateError { + throw ArgumentError("invalid words num"); + } + + /// Get the corresponding entropy bit length + int entropyBitLen = + ElectrumV1MnemonicGeneratorConst.wordsNumToEntropyLen[wordsNum]!; + + /// Generate entropy bytes with the specified bit length + final entropyBytes = + ElectrumV1EntropyGenerator(bitLength: entropyBitLen).generate(); + + /// Create an Electrum V1 mnemonic from the generated entropy bytes + return fromEntropy(entropyBytes); + } + + /// Generates an Electrum V1 mnemonic from a List of entropy bytes. + /// + /// This method takes a List of entropy bytes as input and encodes it into an Electrum V1 mnemonic + /// using the associated `ElectrumV1MnemonicEncoder`. It essentially converts the raw entropy into a human-readable + /// mnemonic for secure storage and recovery of data. + /// + /// Returns an Electrum V1 mnemonic generated from the provided entropy bytes. + /// + /// [entropyBytes]: The List of entropy bytes to use for mnemonic generation. + Mnemonic fromEntropy(List entropyBytes) { + return encoder.encode(entropyBytes); + } +} diff --git a/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_utils.dart b/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_utils.dart new file mode 100644 index 0000000..88d40f7 --- /dev/null +++ b/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_utils.dart @@ -0,0 +1,57 @@ +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; + +/// A class responsible for fetching Electrum V1 mnemonic word lists based on language. +class ElectrumV1WordsListGetter extends MnemonicWordsListGetterBase { + /// Retrieves an Electrum V1 mnemonic word list for a specific language. + /// + /// This method is responsible for fetching the Electrum V1 mnemonic word list based on the specified language. + /// It validates that the provided language is an instance of `ElectrumV1Languages`, ensuring that the language + /// is compatible with Electrum V1 mnemonics. It then uses the `loadWordsList` function to load the appropriate + /// word list based on the language and the predefined words list number. + /// + /// Throws an ArgumentError if the provided language is not compatible with Electrum V1 mnemonics. + /// + /// Returns the Electrum V1 mnemonic word list for the specified language. + /// + /// [language]: The language for which to retrieve the word list. + @override + MnemonicWordsList getByLanguage(MnemonicLanguages language) { + if (language is! ElectrumV1Languages) { + throw ArgumentError("Language is not an enumerative of Bip39Languages"); + } + return loadWordsList(language, ElectrumV1MnemonicConst.wordsListNum); + } +} + +/// A class responsible for finding the Electrum V1 mnemonic word list for a given language. +class ElectrumV1WordsListFinder extends MnemonicWordsListFinderBase { + /// Finds the language and associated word list for an Electrum V1 mnemonic. + /// + /// This method is responsible for determining the language and associated word list used to create + /// a given Electrum V1 mnemonic. It iterates through all possible Electrum V1 languages and attempts to + /// match the mnemonic words with each language's word list. If a match is found, it returns the matching + /// word list and language as a tuple. + /// + /// Throws a StateError if the language for the mnemonic cannot be determined. + /// + /// Returns a tuple containing the matching word list and the determined language. + /// + /// [mnemonic]: The Electrum V1 mnemonic for which to find the language and word list. + @override + (MnemonicWordsList, MnemonicLanguages) findLanguage(Mnemonic mnemonic) { + for (final lang in ElectrumV1Languages.values) { + final wordsList = MnemonicWordsList(lang.wordList); + try { + for (final word in mnemonic.toList()) { + wordsList.getWordIdx(word); + } + return (wordsList, lang); + } on StateError { + continue; + } + } + throw StateError("cannot find language for ${mnemonic.toStr()}"); + } +} diff --git a/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_validator.dart b/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_validator.dart new file mode 100644 index 0000000..9858e66 --- /dev/null +++ b/lib/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_validator.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_validator.dart'; + +/// A class for validating Electrum V1 mnemonics, extending the MnemonicValidator class. +class ElectrumV1MnemonicValidator extends MnemonicValidator { + /// Constructs an ElectrumV1MnemonicValidator with an optional language specification. + /// + /// The validator is initialized with an `ElectrumV1MnemonicDecoder` that uses the specified language + /// (default: English) for decoding Electrum V1 mnemonics. + /// + /// [language]: The language to use for mnemonic decoding (default: English). + ElectrumV1MnemonicValidator( + [ElectrumV1Languages? language = ElectrumV1Languages.english]) + : super(ElectrumV1MnemonicDecoder(language)); +} diff --git a/lib/bip/electrum/mnemonic_v1/electrum_v1_seed_generator.dart b/lib/bip/electrum/mnemonic_v1/electrum_v1_seed_generator.dart new file mode 100644 index 0000000..18f342c --- /dev/null +++ b/lib/bip/electrum/mnemonic_v1/electrum_v1_seed_generator.dart @@ -0,0 +1,49 @@ +import 'dart:core'; + +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_decoder.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// Constants related to the generation of Electrum V1 seeds. +class ElectrumV1SeedGeneratorConst { + /// The number of hash iterations to derive an Electrum V1 seed + static const int hashIterationNum = 100000; +} + +/// A class for generating Electrum V1 seeds from mnemonics. +class ElectrumV1SeedGenerator { + final List _seed; + + /// Constructs an Electrum V1 seed generator from a mnemonic and an optional language specification. + /// + /// The generator uses the provided mnemonic to derive an Electrum V1 seed. An optional language specification + /// can be provided (default: English) for mnemonic decoding. + /// + /// [mnemonic]: The Electrum V1 mnemonic used to generate the seed. + /// [language]: The language used for mnemonic decoding (default: English). + ElectrumV1SeedGenerator(String mnemonic, + [ElectrumV1Languages? language = ElectrumV1Languages.english]) + : _seed = + _generateSeed(ElectrumV1MnemonicDecoder(language).decode(mnemonic)); + + /// Generates the Electrum V1 seed. + /// + /// Returns the generated Electrum V1 seed as a List. + List generate() { + return List.from(_seed); + } + + /// Generates an Electrum V1 seed from entropy bytes using a specified number of hash iterations. + /// + /// [entropyBytes]: The entropy bytes used as the initial source for seed generation. + static List _generateSeed(List entropyBytes) { + final entropy = StringUtils.encode(BytesUtils.toHexString(entropyBytes)); + List h = entropy; + for (int _ = 0; _ < ElectrumV1SeedGeneratorConst.hashIterationNum; _++) { + h = QuickCrypto.sha256Hash(List.from([...h, ...entropy])); + } + return h; + } +} diff --git a/lib/bip/electrum/mnemonic_v1/wrodlist/english.dart b/lib/bip/electrum/mnemonic_v1/wrodlist/english.dart new file mode 100644 index 0000000..e005c59 --- /dev/null +++ b/lib/bip/electrum/mnemonic_v1/wrodlist/english.dart @@ -0,0 +1,1631 @@ +part of 'package:blockchain_utils/bip/electrum/mnemonic_v1/wrodlist/languages.dart'; + +/// electrum mnemonic english words list +const List _english = [ + "like", + "just", + "love", + "know", + "never", + "want", + "time", + "out", + "there", + "make", + "look", + "eye", + "down", + "only", + "think", + "heart", + "back", + "then", + "into", + "about", + "more", + "away", + "still", + "them", + "take", + "thing", + "even", + "through", + "long", + "always", + "world", + "too", + "friend", + "tell", + "try", + "hand", + "thought", + "over", + "here", + "other", + "need", + "smile", + "again", + "much", + "cry", + "been", + "night", + "ever", + "little", + "said", + "end", + "some", + "those", + "around", + "mind", + "people", + "girl", + "leave", + "dream", + "left", + "turn", + "myself", + "give", + "nothing", + "really", + "off", + "before", + "something", + "find", + "walk", + "wish", + "good", + "once", + "place", + "ask", + "stop", + "keep", + "watch", + "seem", + "everything", + "wait", + "got", + "yet", + "made", + "remember", + "start", + "alone", + "run", + "hope", + "maybe", + "believe", + "body", + "hate", + "after", + "close", + "talk", + "stand", + "own", + "each", + "hurt", + "help", + "home", + "god", + "soul", + "new", + "many", + "two", + "inside", + "should", + "true", + "first", + "fear", + "mean", + "better", + "play", + "another", + "gone", + "change", + "use", + "wonder", + "someone", + "hair", + "cold", + "open", + "best", + "any", + "behind", + "happen", + "water", + "dark", + "laugh", + "stay", + "forever", + "name", + "work", + "show", + "sky", + "break", + "came", + "deep", + "door", + "put", + "black", + "together", + "upon", + "happy", + "such", + "great", + "white", + "matter", + "fill", + "past", + "please", + "burn", + "cause", + "enough", + "touch", + "moment", + "soon", + "voice", + "scream", + "anything", + "stare", + "sound", + "red", + "everyone", + "hide", + "kiss", + "truth", + "death", + "beautiful", + "mine", + "blood", + "broken", + "very", + "pass", + "next", + "forget", + "tree", + "wrong", + "air", + "mother", + "understand", + "lip", + "hit", + "wall", + "memory", + "sleep", + "free", + "high", + "realize", + "school", + "might", + "skin", + "sweet", + "perfect", + "blue", + "kill", + "breath", + "dance", + "against", + "fly", + "between", + "grow", + "strong", + "under", + "listen", + "bring", + "sometimes", + "speak", + "pull", + "person", + "become", + "family", + "begin", + "ground", + "real", + "small", + "father", + "sure", + "feet", + "rest", + "young", + "finally", + "land", + "across", + "today", + "different", + "guy", + "line", + "fire", + "reason", + "reach", + "second", + "slowly", + "write", + "eat", + "smell", + "mouth", + "step", + "learn", + "three", + "floor", + "promise", + "breathe", + "darkness", + "push", + "earth", + "guess", + "save", + "song", + "above", + "along", + "both", + "color", + "house", + "almost", + "sorry", + "anymore", + "brother", + "okay", + "dear", + "game", + "fade", + "already", + "apart", + "warm", + "beauty", + "heard", + "notice", + "question", + "shine", + "began", + "piece", + "whole", + "shadow", + "secret", + "street", + "within", + "finger", + "point", + "morning", + "whisper", + "child", + "moon", + "green", + "story", + "glass", + "kid", + "silence", + "since", + "soft", + "yourself", + "empty", + "shall", + "angel", + "answer", + "baby", + "bright", + "dad", + "path", + "worry", + "hour", + "drop", + "follow", + "power", + "war", + "half", + "flow", + "heaven", + "act", + "chance", + "fact", + "least", + "tired", + "children", + "near", + "quite", + "afraid", + "rise", + "sea", + "taste", + "window", + "cover", + "nice", + "trust", + "lot", + "sad", + "cool", + "force", + "peace", + "return", + "blind", + "easy", + "ready", + "roll", + "rose", + "drive", + "held", + "music", + "beneath", + "hang", + "mom", + "paint", + "emotion", + "quiet", + "clear", + "cloud", + "few", + "pretty", + "bird", + "outside", + "paper", + "picture", + "front", + "rock", + "simple", + "anyone", + "meant", + "reality", + "road", + "sense", + "waste", + "bit", + "leaf", + "thank", + "happiness", + "meet", + "men", + "smoke", + "truly", + "decide", + "self", + "age", + "book", + "form", + "alive", + "carry", + "escape", + "damn", + "instead", + "able", + "ice", + "minute", + "throw", + "catch", + "leg", + "ring", + "course", + "goodbye", + "lead", + "poem", + "sick", + "corner", + "desire", + "known", + "problem", + "remind", + "shoulder", + "suppose", + "toward", + "wave", + "drink", + "jump", + "woman", + "pretend", + "sister", + "week", + "human", + "joy", + "crack", + "grey", + "pray", + "surprise", + "dry", + "knee", + "less", + "search", + "bleed", + "caught", + "clean", + "embrace", + "future", + "king", + "son", + "sorrow", + "chest", + "hug", + "remain", + "sat", + "worth", + "blow", + "daddy", + "final", + "parent", + "tight", + "also", + "create", + "lonely", + "safe", + "cross", + "dress", + "evil", + "silent", + "bone", + "fate", + "perhaps", + "anger", + "class", + "scar", + "snow", + "tiny", + "tonight", + "continue", + "control", + "dog", + "edge", + "mirror", + "month", + "suddenly", + "comfort", + "given", + "loud", + "quickly", + "gaze", + "plan", + "rush", + "stone", + "town", + "battle", + "ignore", + "spirit", + "stood", + "stupid", + "yours", + "brown", + "build", + "dust", + "hey", + "kept", + "pay", + "phone", + "twist", + "although", + "ball", + "beyond", + "hidden", + "nose", + "taken", + "fail", + "float", + "pure", + "somehow", + "wash", + "wrap", + "angry", + "cheek", + "creature", + "forgotten", + "heat", + "rip", + "single", + "space", + "special", + "weak", + "whatever", + "yell", + "anyway", + "blame", + "job", + "choose", + "country", + "curse", + "drift", + "echo", + "figure", + "grew", + "laughter", + "neck", + "suffer", + "worse", + "yeah", + "disappear", + "foot", + "forward", + "knife", + "mess", + "somewhere", + "stomach", + "storm", + "beg", + "idea", + "lift", + "offer", + "breeze", + "field", + "five", + "often", + "simply", + "stuck", + "win", + "allow", + "confuse", + "enjoy", + "except", + "flower", + "seek", + "strength", + "calm", + "grin", + "gun", + "heavy", + "hill", + "large", + "ocean", + "shoe", + "sigh", + "straight", + "summer", + "tongue", + "accept", + "crazy", + "everyday", + "exist", + "grass", + "mistake", + "sent", + "shut", + "surround", + "table", + "ache", + "brain", + "destroy", + "heal", + "nature", + "shout", + "sign", + "stain", + "choice", + "doubt", + "glance", + "glow", + "mountain", + "queen", + "stranger", + "throat", + "tomorrow", + "city", + "either", + "fish", + "flame", + "rather", + "shape", + "spin", + "spread", + "ash", + "distance", + "finish", + "image", + "imagine", + "important", + "nobody", + "shatter", + "warmth", + "became", + "feed", + "flesh", + "funny", + "lust", + "shirt", + "trouble", + "yellow", + "attention", + "bare", + "bite", + "money", + "protect", + "amaze", + "appear", + "born", + "choke", + "completely", + "daughter", + "fresh", + "friendship", + "gentle", + "probably", + "six", + "deserve", + "expect", + "grab", + "middle", + "nightmare", + "river", + "thousand", + "weight", + "worst", + "wound", + "barely", + "bottle", + "cream", + "regret", + "relationship", + "stick", + "test", + "crush", + "endless", + "fault", + "itself", + "rule", + "spill", + "art", + "circle", + "join", + "kick", + "mask", + "master", + "passion", + "quick", + "raise", + "smooth", + "unless", + "wander", + "actually", + "broke", + "chair", + "deal", + "favorite", + "gift", + "note", + "number", + "sweat", + "box", + "chill", + "clothes", + "lady", + "mark", + "park", + "poor", + "sadness", + "tie", + "animal", + "belong", + "brush", + "consume", + "dawn", + "forest", + "innocent", + "pen", + "pride", + "stream", + "thick", + "clay", + "complete", + "count", + "draw", + "faith", + "press", + "silver", + "struggle", + "surface", + "taught", + "teach", + "wet", + "bless", + "chase", + "climb", + "enter", + "letter", + "melt", + "metal", + "movie", + "stretch", + "swing", + "vision", + "wife", + "beside", + "crash", + "forgot", + "guide", + "haunt", + "joke", + "knock", + "plant", + "pour", + "prove", + "reveal", + "steal", + "stuff", + "trip", + "wood", + "wrist", + "bother", + "bottom", + "crawl", + "crowd", + "fix", + "forgive", + "frown", + "grace", + "loose", + "lucky", + "party", + "release", + "surely", + "survive", + "teacher", + "gently", + "grip", + "speed", + "suicide", + "travel", + "treat", + "vein", + "written", + "cage", + "chain", + "conversation", + "date", + "enemy", + "however", + "interest", + "million", + "page", + "pink", + "proud", + "sway", + "themselves", + "winter", + "church", + "cruel", + "cup", + "demon", + "experience", + "freedom", + "pair", + "pop", + "purpose", + "respect", + "shoot", + "softly", + "state", + "strange", + "bar", + "birth", + "curl", + "dirt", + "excuse", + "lord", + "lovely", + "monster", + "order", + "pack", + "pants", + "pool", + "scene", + "seven", + "shame", + "slide", + "ugly", + "among", + "blade", + "blonde", + "closet", + "creek", + "deny", + "drug", + "eternity", + "gain", + "grade", + "handle", + "key", + "linger", + "pale", + "prepare", + "swallow", + "swim", + "tremble", + "wheel", + "won", + "cast", + "cigarette", + "claim", + "college", + "direction", + "dirty", + "gather", + "ghost", + "hundred", + "loss", + "lung", + "orange", + "present", + "swear", + "swirl", + "twice", + "wild", + "bitter", + "blanket", + "doctor", + "everywhere", + "flash", + "grown", + "knowledge", + "numb", + "pressure", + "radio", + "repeat", + "ruin", + "spend", + "unknown", + "buy", + "clock", + "devil", + "early", + "false", + "fantasy", + "pound", + "precious", + "refuse", + "sheet", + "teeth", + "welcome", + "add", + "ahead", + "block", + "bury", + "caress", + "content", + "depth", + "despite", + "distant", + "marry", + "purple", + "threw", + "whenever", + "bomb", + "dull", + "easily", + "grasp", + "hospital", + "innocence", + "normal", + "receive", + "reply", + "rhyme", + "shade", + "someday", + "sword", + "toe", + "visit", + "asleep", + "bought", + "center", + "consider", + "flat", + "hero", + "history", + "ink", + "insane", + "muscle", + "mystery", + "pocket", + "reflection", + "shove", + "silently", + "smart", + "soldier", + "spot", + "stress", + "train", + "type", + "view", + "whether", + "bus", + "energy", + "explain", + "holy", + "hunger", + "inch", + "magic", + "mix", + "noise", + "nowhere", + "prayer", + "presence", + "shock", + "snap", + "spider", + "study", + "thunder", + "trail", + "admit", + "agree", + "bag", + "bang", + "bound", + "butterfly", + "cute", + "exactly", + "explode", + "familiar", + "fold", + "further", + "pierce", + "reflect", + "scent", + "selfish", + "sharp", + "sink", + "spring", + "stumble", + "universe", + "weep", + "women", + "wonderful", + "action", + "ancient", + "attempt", + "avoid", + "birthday", + "branch", + "chocolate", + "core", + "depress", + "drunk", + "especially", + "focus", + "fruit", + "honest", + "match", + "palm", + "perfectly", + "pillow", + "pity", + "poison", + "roar", + "shift", + "slightly", + "thump", + "truck", + "tune", + "twenty", + "unable", + "wipe", + "wrote", + "coat", + "constant", + "dinner", + "drove", + "egg", + "eternal", + "flight", + "flood", + "frame", + "freak", + "gasp", + "glad", + "hollow", + "motion", + "peer", + "plastic", + "root", + "screen", + "season", + "sting", + "strike", + "team", + "unlike", + "victim", + "volume", + "warn", + "weird", + "attack", + "await", + "awake", + "built", + "charm", + "crave", + "despair", + "fought", + "grant", + "grief", + "horse", + "limit", + "message", + "ripple", + "sanity", + "scatter", + "serve", + "split", + "string", + "trick", + "annoy", + "blur", + "boat", + "brave", + "clearly", + "cling", + "connect", + "fist", + "forth", + "imagination", + "iron", + "jock", + "judge", + "lesson", + "milk", + "misery", + "nail", + "naked", + "ourselves", + "poet", + "possible", + "princess", + "sail", + "size", + "snake", + "society", + "stroke", + "torture", + "toss", + "trace", + "wise", + "bloom", + "bullet", + "cell", + "check", + "cost", + "darling", + "during", + "footstep", + "fragile", + "hallway", + "hardly", + "horizon", + "invisible", + "journey", + "midnight", + "mud", + "nod", + "pause", + "relax", + "shiver", + "sudden", + "value", + "youth", + "abuse", + "admire", + "blink", + "breast", + "bruise", + "constantly", + "couple", + "creep", + "curve", + "difference", + "dumb", + "emptiness", + "gotta", + "honor", + "plain", + "planet", + "recall", + "rub", + "ship", + "slam", + "soar", + "somebody", + "tightly", + "weather", + "adore", + "approach", + "bond", + "bread", + "burst", + "candle", + "coffee", + "cousin", + "crime", + "desert", + "flutter", + "frozen", + "grand", + "heel", + "hello", + "language", + "level", + "movement", + "pleasure", + "powerful", + "random", + "rhythm", + "settle", + "silly", + "slap", + "sort", + "spoken", + "steel", + "threaten", + "tumble", + "upset", + "aside", + "awkward", + "bee", + "blank", + "board", + "button", + "card", + "carefully", + "complain", + "crap", + "deeply", + "discover", + "drag", + "dread", + "effort", + "entire", + "fairy", + "giant", + "gotten", + "greet", + "illusion", + "jeans", + "leap", + "liquid", + "march", + "mend", + "nervous", + "nine", + "replace", + "rope", + "spine", + "stole", + "terror", + "accident", + "apple", + "balance", + "boom", + "childhood", + "collect", + "demand", + "depression", + "eventually", + "faint", + "glare", + "goal", + "group", + "honey", + "kitchen", + "laid", + "limb", + "machine", + "mere", + "mold", + "murder", + "nerve", + "painful", + "poetry", + "prince", + "rabbit", + "shelter", + "shore", + "shower", + "soothe", + "stair", + "steady", + "sunlight", + "tangle", + "tease", + "treasure", + "uncle", + "begun", + "bliss", + "canvas", + "cheer", + "claw", + "clutch", + "commit", + "crimson", + "crystal", + "delight", + "doll", + "existence", + "express", + "fog", + "football", + "gay", + "goose", + "guard", + "hatred", + "illuminate", + "mass", + "math", + "mourn", + "rich", + "rough", + "skip", + "stir", + "student", + "style", + "support", + "thorn", + "tough", + "yard", + "yearn", + "yesterday", + "advice", + "appreciate", + "autumn", + "bank", + "beam", + "bowl", + "capture", + "carve", + "collapse", + "confusion", + "creation", + "dove", + "feather", + "girlfriend", + "glory", + "government", + "harsh", + "hop", + "inner", + "loser", + "moonlight", + "neighbor", + "neither", + "peach", + "pig", + "praise", + "screw", + "shield", + "shimmer", + "sneak", + "stab", + "subject", + "throughout", + "thrown", + "tower", + "twirl", + "wow", + "army", + "arrive", + "bathroom", + "bump", + "cease", + "cookie", + "couch", + "courage", + "dim", + "guilt", + "howl", + "hum", + "husband", + "insult", + "led", + "lunch", + "mock", + "mostly", + "natural", + "nearly", + "needle", + "nerd", + "peaceful", + "perfection", + "pile", + "price", + "remove", + "roam", + "sanctuary", + "serious", + "shiny", + "shook", + "sob", + "stolen", + "tap", + "vain", + "void", + "warrior", + "wrinkle", + "affection", + "apologize", + "blossom", + "bounce", + "bridge", + "cheap", + "crumble", + "decision", + "descend", + "desperately", + "dig", + "dot", + "flip", + "frighten", + "heartbeat", + "huge", + "lazy", + "lick", + "odd", + "opinion", + "process", + "puzzle", + "quietly", + "retreat", + "score", + "sentence", + "separate", + "situation", + "skill", + "soak", + "square", + "stray", + "taint", + "task", + "tide", + "underneath", + "veil", + "whistle", + "anywhere", + "bedroom", + "bid", + "bloody", + "burden", + "careful", + "compare", + "concern", + "curtain", + "decay", + "defeat", + "describe", + "double", + "dreamer", + "driver", + "dwell", + "evening", + "flare", + "flicker", + "grandma", + "guitar", + "harm", + "horrible", + "hungry", + "indeed", + "lace", + "melody", + "monkey", + "nation", + "object", + "obviously", + "rainbow", + "salt", + "scratch", + "shown", + "shy", + "stage", + "stun", + "third", + "tickle", + "useless", + "weakness", + "worship", + "worthless", + "afternoon", + "beard", + "boyfriend", + "bubble", + "busy", + "certain", + "chin", + "concrete", + "desk", + "diamond", + "doom", + "drawn", + "due", + "felicity", + "freeze", + "frost", + "garden", + "glide", + "harmony", + "hopefully", + "hunt", + "jealous", + "lightning", + "mama", + "mercy", + "peel", + "physical", + "position", + "pulse", + "punch", + "quit", + "rant", + "respond", + "salty", + "sane", + "satisfy", + "savior", + "sheep", + "slept", + "social", + "sport", + "tuck", + "utter", + "valley", + "wolf", + "aim", + "alas", + "alter", + "arrow", + "awaken", + "beaten", + "belief", + "brand", + "ceiling", + "cheese", + "clue", + "confidence", + "connection", + "daily", + "disguise", + "eager", + "erase", + "essence", + "everytime", + "expression", + "fan", + "flag", + "flirt", + "foul", + "fur", + "giggle", + "glorious", + "ignorance", + "law", + "lifeless", + "measure", + "mighty", + "muse", + "north", + "opposite", + "paradise", + "patience", + "patient", + "pencil", + "petal", + "plate", + "ponder", + "possibly", + "practice", + "slice", + "spell", + "stock", + "strife", + "strip", + "suffocate", + "suit", + "tender", + "tool", + "trade", + "velvet", + "verse", + "waist", + "witch", + "aunt", + "bench", + "bold", + "cap", + "certainly", + "click", + "companion", + "creator", + "dart", + "delicate", + "determine", + "dish", + "dragon", + "drama", + "drum", + "dude", + "everybody", + "feast", + "forehead", + "former", + "fright", + "fully", + "gas", + "hook", + "hurl", + "invite", + "juice", + "manage", + "moral", + "possess", + "raw", + "rebel", + "royal", + "scale", + "scary", + "several", + "slight", + "stubborn", + "swell", + "talent", + "tea", + "terrible", + "thread", + "torment", + "trickle", + "usually", + "vast", + "violence", + "weave", + "acid", + "agony", + "ashamed", + "awe", + "belly", + "blend", + "blush", + "character", + "cheat", + "common", + "company", + "coward", + "creak", + "danger", + "deadly", + "defense", + "define", + "depend", + "desperate", + "destination", + "dew", + "duck", + "dusty", + "embarrass", + "engine", + "example", + "explore", + "foe", + "freely", + "frustrate", + "generation", + "glove", + "guilty", + "health", + "hurry", + "idiot", + "impossible", + "inhale", + "jaw", + "kingdom", + "mention", + "mist", + "moan", + "mumble", + "mutter", + "observe", + "ode", + "pathetic", + "pattern", + "pie", + "prefer", + "puff", + "rape", + "rare", + "revenge", + "rude", + "scrape", + "spiral", + "squeeze", + "strain", + "sunset", + "suspend", + "sympathy", + "thigh", + "throne", + "total", + "unseen", + "weapon", + "weary" +]; diff --git a/lib/bip/electrum/mnemonic_v1/wrodlist/languages.dart b/lib/bip/electrum/mnemonic_v1/wrodlist/languages.dart new file mode 100644 index 0000000..39282af --- /dev/null +++ b/lib/bip/electrum/mnemonic_v1/wrodlist/languages.dart @@ -0,0 +1,9 @@ +/// Library for Electrum V1 mnemonic language support. + +library elctrum_v1_mnemonic_languages; + +/// Part for the English Electrum V1 mnemonic language. +part 'english.dart'; + +/// A list of Electrum V1 mnemonic words, specifically for the English language. +List get elctrumMnemonicWordsList => _english; diff --git a/lib/bip/electrum/mnemonic_v2/electrum_v2_entropy_generator.dart b/lib/bip/electrum/mnemonic_v2/electrum_v2_entropy_generator.dart new file mode 100644 index 0000000..6e72878 --- /dev/null +++ b/lib/bip/electrum/mnemonic_v2/electrum_v2_entropy_generator.dart @@ -0,0 +1,65 @@ +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/entropy_generator.dart'; + +/// Constants representing bit lengths for Electrum V2 entropy. +class ElectrumV2EntropyBitLen { + /// Bit length for Electrum V2 entropy of 132 bits + static const int bitLen132 = 132; + + /// Bit length for Electrum V2 entropy of 264 bits + static const int bitLen264 = 264; +} + +/// Constants related to the generation of Electrum V2 entropy. +class ElectrumV2EntropyGeneratorConst { + /// List of supported bit lengths for Electrum V2 entropy + static const List entropyBitLen = [ + ElectrumV2EntropyBitLen.bitLen132, + ElectrumV2EntropyBitLen.bitLen264, + ]; +} + +/// A class for generating Electrum V2 entropy with specified bit lengths, extending the EntropyGenerator class. +class ElectrumV2EntropyGenerator extends EntropyGenerator { + /// Constructs an Electrum V2 entropy generator with the given bit length. + /// + /// The generator ensures that the provided bit length is valid for Electrum V2 entropy. + /// + /// [bitLen]: The desired bit length for generating Electrum V2 entropy. + ElectrumV2EntropyGenerator(int bitLen) : super(bitLen) { + if (!isValidEntropyBitLen(bitLen)) { + throw ArgumentError.value( + bitLen, 'bitLen', 'Entropy bit length is not valid'); + } + } + + /// Checks if a given bit length is valid for Electrum V2 entropy generation. + /// + /// [bitLen]: The bit length to be checked. + /// Returns true if the bit length is valid, otherwise false. + static bool isValidEntropyBitLen(int bitLen) { + for (int entropyBitLen in ElectrumV2EntropyGeneratorConst.entropyBitLen) { + if (entropyBitLen - ElectrumV2MnemonicConst.wordBitLen <= bitLen && + bitLen <= entropyBitLen) { + return true; + } + } + return false; + } + + /// Checks if a given byte length is valid for Electrum V2 entropy generation. + /// + /// [byteLen]: The byte length to be checked. + /// Returns true if the byte length is valid, otherwise false. + static bool isValidEntropyByteLen(int byteLen) { + return isValidEntropyBitLen(byteLen * 8); + } + + /// Checks if the provided entropy bits are sufficient for Electrum V2 entropy generation. + /// + /// [entropy]: The entropy to be checked (as a BigInt). + /// Returns true if the entropy bit length is valid, otherwise false. + static bool areEntropyBitsEnough(BigInt entropy) { + return isValidEntropyBitLen(entropy.bitLength); + } +} diff --git a/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic.dart b/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic.dart new file mode 100644 index 0000000..5f83bde --- /dev/null +++ b/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic.dart @@ -0,0 +1,103 @@ +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/bip/bip39/word_list/languages.dart' + as languages; + +/// Enumeration of word counts for Electrum V2 mnemonics. +enum ElectrumV2WordsNum { + /// Represents a 12-word Electrum V2 mnemonic. + wordsNum12(12), + + /// Represents a 24-word Electrum V2 mnemonic. + wordsNum24(24); + + /// The numeric value associated with each word count. + final int value; + + /// Creates an instance of ElectrumV2WordsNum with the given numeric value. + const ElectrumV2WordsNum(this.value); +} + +/// Enumeration of languages supported by Electrum V2 mnemonics. +enum ElectrumV2Languages implements MnemonicLanguages { + /// Represents the Chinese Simplified language. + chineseSimplified, + + /// Represents the English language. + english, + + /// Represents the Portuguese language. + portuguese, + + /// Represents the Spanish language. + spanish; + + /// accsess to words list + @override + List get wordList { + switch (this) { + case ElectrumV2Languages.chineseSimplified: + return languages.bip39WordList(Bip39Languages.chineseSimplified); + case ElectrumV2Languages.english: + return languages.bip39WordList(Bip39Languages.english); + case ElectrumV2Languages.portuguese: + return languages.bip39WordList(Bip39Languages.portuguese); + case ElectrumV2Languages.spanish: + return languages.bip39WordList(Bip39Languages.spanish); + } + } + + /// accsess to all supported languagess + @override + List get languageValues => ElectrumV2Languages.values; +} + +/// Enumeration of Electrum V2 mnemonic types, representing different mnemonic modes. +enum ElectrumV2MnemonicTypes { + /// Standard mnemonic type. + standard(0), + + /// SegWit mnemonic type. + segwit(1), + + /// Standard 2FA (Two-Factor Authentication) mnemonic type. + standard2FA(2), + + /// SegWit 2FA (Two-Factor Authentication) mnemonic type. + segwit2FA(3); + + /// The integer value associated with each mnemonic type. + final int value; + + /// Constructor for creating an Electrum V2 mnemonic type. + const ElectrumV2MnemonicTypes(this.value); +} + +/// Constants and configurations related to Electrum V2 mnemonics. +class ElectrumV2MnemonicConst { + /// List of Electrum V2 supported word numbers. + static const List mnemonicWordNum = [ + ElectrumV2WordsNum.wordsNum12, + ElectrumV2WordsNum.wordsNum24, + ]; + + /// A mapping from Electrum V2 mnemonic types to their corresponding prefixes. + static const Map typeToPrefix = { + ElectrumV2MnemonicTypes.standard: '01', + ElectrumV2MnemonicTypes.segwit: '100', + ElectrumV2MnemonicTypes.standard2FA: '101', + ElectrumV2MnemonicTypes.segwit2FA: '102', + }; + + /// Bit length of a single word in the Electrum V2 mnemonic. + static const int wordBitLen = Bip39MnemonicConst.wordBitLen; +} + +/// Electrum V2 mnemonic class, extending the Bip39Mnemonic class. +class ElectrumV2Mnemonic extends Bip39Mnemonic { + /// Constructs an Electrum V2 mnemonic from a string. + ElectrumV2Mnemonic.fromString(String mnemonic) : super.fromString(mnemonic); + + /// Constructs an Electrum V2 mnemonic from a list of words. + ElectrumV2Mnemonic.fromList(List mnemonic) : super.fromList(mnemonic); +} diff --git a/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_decoder.dart b/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_decoder.dart new file mode 100644 index 0000000..d5681ad --- /dev/null +++ b/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_decoder.dart @@ -0,0 +1,71 @@ +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_decoder_base.dart'; + +/// A class for decoding Electrum V2 mnemonics, extending the MnemonicDecoderBase class. +class ElectrumV2MnemonicDecoder extends MnemonicDecoderBase { + final ElectrumV2MnemonicTypes? mnemonicType; + + /// Constructs an Electrum V2 mnemonic decoder with optional parameters. + /// + /// The decoder is used to decode Electrum V2 mnemonics. It accepts an optional [mnemonicType] parameter + /// to specify the type of Electrum V2 mnemonic, and an optional [language] parameter to specify the language + /// for mnemonic decoding (default: English). + /// + /// [mnemonicType]: The type of Electrum V2 mnemonic (optional). + /// [language]: The language used for mnemonic decoding (default: English). + ElectrumV2MnemonicDecoder({ + this.mnemonicType, + ElectrumV2Languages? language, + }) : super( + language: language, + wordsListFinder: Bip39WordsListFinder(), + wordsListGetter: Bip39WordsListGetter(), + ); + + /// Decodes an Electrum V2 mnemonic string into entropy bytes. + /// + /// This method takes an Electrum V2 mnemonic string as input and decodes it into entropy bytes. It performs several checks + /// to ensure the validity of the mnemonic, including verifying the word count, checking if the mnemonic is valid for the specified + /// mnemonic type, and detecting the language if it was not specified during construction. + /// + /// [mnemonic]: The Electrum V2 mnemonic to decode into entropy bytes. + /// Returns a List containing the decoded entropy bytes. + @override + List decode(String mnemonic) { + /// Parse the mnemonic string + final mnemonicObj = ElectrumV2Mnemonic.fromString(mnemonic); + final wCount = mnemonicObj.wordsCount(); + + /// Check if the word count matches a valid Electrum V2 word count + try { + ElectrumV2MnemonicConst.mnemonicWordNum + .firstWhere((element) => element.value == wCount); + } on StateError { + throw ArgumentError('Mnemonic words count is not valid ($wCount)'); + } + + /// Check the validity of the mnemonic for the specified mnemonic type + if (!ElectrumV2MnemonicUtils.isValidMnemonic(mnemonicObj, mnemonicType)) { + throw ArgumentError('Invalid mnemonic'); + } + + /// Get the list of words from the mnemonic + final words = mnemonicObj.toList(); + + /// Detect the language if it was not specified during construction + final wordsList = findLanguage(mnemonicObj).$1; + + /// Decode the words into entropy as a BigInt + final n = BigInt.from(wordsList.length()); + BigInt entropyInt = BigInt.zero; + for (final word in words.reversed) { + entropyInt = (entropyInt * n) + BigInt.from(wordsList.getWordIdx(word)); + } + + /// Convert the BigInt to bytes and return the result + return BigintUtils.toBytes(entropyInt); + } +} diff --git a/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_encoder.dart b/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_encoder.dart new file mode 100644 index 0000000..a494a78 --- /dev/null +++ b/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_encoder.dart @@ -0,0 +1,64 @@ +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_entropy_generator.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_encoder_base.dart'; + +/// A class for encoding data into Electrum V2 mnemonics, extending the MnemonicEncoderBase class. +class ElectrumV2MnemonicEncoder extends MnemonicEncoderBase { + final ElectrumV2MnemonicTypes mnemonicType; + + /// Constructs an Electrum V2 mnemonic encoder with a specified mnemonic type and optional language. + /// + /// The encoder is used to encode data into Electrum V2 mnemonics. It requires a [mnemonicType] to determine the + /// type of Electrum V2 mnemonic to use, and an optional [language] parameter to specify the language for encoding (default: English). + /// + /// [mnemonicType]: The type of Electrum V2 mnemonic to use for encoding. + /// [language]: The language used for mnemonic encoding (default: English). + ElectrumV2MnemonicEncoder(this.mnemonicType, + {ElectrumV2Languages language = ElectrumV2Languages.english}) + : super(language, Bip39WordsListGetter()); + + /// Encodes entropy bytes into an Electrum V2 mnemonic. + /// + /// This method takes a List of entropy bytes as input and encodes them into an Electrum V2 mnemonic. It ensures + /// that the entropy bits are sufficient for generating a valid mnemonic, and that the resulting mnemonic is valid for + /// the specified mnemonic type. The method performs the encoding by repeatedly dividing the entropy value by the number + /// of words in the word list and adding the corresponding words to the mnemonic. + /// + /// [entropyBytes]: The entropy bytes to be encoded into an Electrum V2 mnemonic. + /// Returns an Electrum V2 mnemonic representing the encoded data. + @override + Mnemonic encode(List entropyBytes) { + final entropyInt = BigintUtils.fromBytes(entropyBytes); + + /// Check if the entropy bits are sufficient for a valid mnemonic + if (!ElectrumV2EntropyGenerator.areEntropyBitsEnough(entropyInt)) { + throw ArgumentError( + 'Entropy bit length is not enough for generating a valid mnemonic'); + } + + final n = BigInt.from(wordsList.length()); + final mnemonic = []; + BigInt tempEntropy = entropyInt; + + /// Generate the mnemonic words from the entropy bytes + while (tempEntropy > BigInt.zero) { + final wordIdx = tempEntropy % n; + tempEntropy ~/= n; + mnemonic.add(wordsList.getWordAtIdx(wordIdx.toInt())); + } + + /// Create an Electrum V2 mnemonic object from the generated words + final mnemonicObj = ElectrumV2Mnemonic.fromList(mnemonic); + + /// Check if the resulting mnemonic is valid for the specified mnemonic type + if (!ElectrumV2MnemonicUtils.isValidMnemonic(mnemonicObj, mnemonicType)) { + throw ArgumentError( + 'Entropy bytes are not suitable for generating a valid mnemonic'); + } + return mnemonicObj; + } +} diff --git a/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_generator.dart b/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_generator.dart new file mode 100644 index 0000000..4bc08f7 --- /dev/null +++ b/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_generator.dart @@ -0,0 +1,87 @@ +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_entropy_generator.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_encoder.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; + +/// Constants related to Electrum V2 mnemonic generation. +class ElectrumV2MnemonicGeneratorConst { + /// Maps the number of words to the corresponding entropy bit length for Electrum V2 mnemonics. + static const wordsNumToEntropyLen = { + ElectrumV2WordsNum.wordsNum12: ElectrumV2EntropyBitLen.bitLen132, + ElectrumV2WordsNum.wordsNum24: ElectrumV2EntropyBitLen.bitLen264, + }; + + /// The maximum number of attempts for generating an Electrum V2 mnemonic. + static const maxAttempts = 1000000; +} + +/// A class for generating Electrum V2 mnemonics, using a specified mnemonic type and language. +class ElectrumV2MnemonicGenerator { + final ElectrumV2MnemonicEncoder encoder; + + /// Constructs an Electrum V2 mnemonic generator with a specified mnemonic type and optional language. + /// + /// The generator is used to create Electrum V2 mnemonics. It requires a [mnemonicType] to determine the type of Electrum V2 + /// mnemonic to generate, and an optional [language] parameter to specify the language for encoding (default: English). + /// + /// [mnemonicType]: The type of Electrum V2 mnemonic to generate. + /// [language]: The language used for mnemonic generation (default: English + ElectrumV2MnemonicGenerator(ElectrumV2MnemonicTypes mnemonicType, + {ElectrumV2Languages language = ElectrumV2Languages.english}) + : encoder = ElectrumV2MnemonicEncoder(mnemonicType, language: language); + + /// Creates an Electrum V2 mnemonic from a specified number of words. + /// + /// This method generates an Electrum V2 mnemonic with the given [wordsNum] by first determining the entropy length in bits + /// based on the words number. It then generates the entropy bytes and constructs an Electrum V2 mnemonic from the generated entropy. + /// + /// [wordsNum]: The number of words to use for the Electrum V2 mnemonic. + /// Returns an Electrum V2 mnemonic with the specified number of words. + Mnemonic fromWordsNumber(int wordsNum) { + try { + ElectrumV2MnemonicConst.mnemonicWordNum + .firstWhere((element) => element.value == wordsNum); + } on StateError { + throw ArgumentError('Words number for mnemonic ($wordsNum) is not valid'); + } + + // Get entropy length in bit from words number + final entropyBitLen = + ElectrumV2MnemonicGeneratorConst.wordsNumToEntropyLen[wordsNum]!; + // Generate entropy + final entropyBytes = ElectrumV2EntropyGenerator(entropyBitLen).generate(); + + return fromEntropy(entropyBytes); + } + + /// Creates an Electrum V2 mnemonic from the provided entropy bytes. + /// + /// This method generates an Electrum V2 mnemonic from the given [entropyBytes]. It first checks if the entropy bits are sufficient + /// for generating a valid mnemonic. If so, it iterates through attempts to find a valid mnemonic by adding a small integer to + /// the entropy and encoding it. It continues attempts until a valid mnemonic is found or the maximum number of attempts is reached. + /// + /// [entropyBytes]: The entropy bytes used to generate the Electrum V2 mnemonic. + /// Returns an Electrum V2 mnemonic generated from the entropy bytes. + Mnemonic fromEntropy(List entropyBytes) { + final entropyInt = BigintUtils.fromBytes(entropyBytes); + + if (ElectrumV2EntropyGenerator.areEntropyBitsEnough(entropyInt)) { + for (int i = 0; i < ElectrumV2MnemonicGeneratorConst.maxAttempts; i++) { + final newEntropyInt = entropyInt + BigInt.from(i); + final toBytes = BigintUtils.toBytes(newEntropyInt); + + try { + final encode = encoder.encode(toBytes); + + return encode; + } on ArgumentError { + /// Continue to the next attempt if encoding fails + continue; + } + } + } + + throw ArgumentError('Unable to generate a valid mnemonic'); + } +} diff --git a/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_utils.dart b/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_utils.dart new file mode 100644 index 0000000..7cf12ed --- /dev/null +++ b/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_utils.dart @@ -0,0 +1,75 @@ +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_validator.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_validator.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// Constants related to Electrum V2 mnemonic utilities. +class ElectrumV2MnemonicUtilsConst { + /// The HMAC key used in Electrum V2 mnemonic operations. + static const List hmacKey = [ + 83, + 101, + 101, + 100, + 32, + 118, + 101, + 114, + 115, + 105, + 111, + 110 + ]; +} + +/// Utility class for working with Electrum V2 mnemonics. +class ElectrumV2MnemonicUtils { + /// Checks if a mnemonic is a valid Electrum V2 mnemonic of the specified type. + /// + /// [mnemonic] The mnemonic to check. + /// [mnemonicType] (Optional) The Electrum V2 mnemonic type to check against. + /// If not provided, any type of Electrum V2 mnemonic will be accepted. + /// + /// Returns `true` if the mnemonic is valid for the specified type (or any type), + /// otherwise returns `false`. + static bool isValidMnemonic(Mnemonic mnemonic, + [ElectrumV2MnemonicTypes? mnemonicType]) { + if (_isBip39OrV1Mnemonic(mnemonic)) { + return false; + } + return (mnemonicType != null + ? _isType(mnemonic, mnemonicType) + : _isAnyType(mnemonic)); + } + + /// Checks if the provided mnemonic is a Bip39 or Electrum V1 mnemonic. + static bool _isBip39OrV1Mnemonic(Mnemonic mnemonic) { + return Bip39MnemonicValidator().isValid(mnemonic.toStr()) || + ElectrumV1MnemonicValidator().isValid(mnemonic.toStr()); + } + + /// Checks if the mnemonic matches any type of Electrum V2 mnemonic. + static bool _isAnyType(Mnemonic mnemonic) { + final h = BytesUtils.toHexString(QuickCrypto.hmacSha512Hash( + ElectrumV2MnemonicUtilsConst.hmacKey, + StringUtils.encode(mnemonic.toStr()))); + for (var mnemonicType in ElectrumV2MnemonicTypes.values) { + if (h.startsWith(ElectrumV2MnemonicConst.typeToPrefix[mnemonicType]!)) { + return true; + } + } + return false; + } + + /// Checks if the mnemonic matches a specific type of Electrum V2 mnemonic. + static bool _isType(Mnemonic mnemonic, ElectrumV2MnemonicTypes mnemonicType) { + final h = BytesUtils.toHexString(QuickCrypto.hmacSha512Hash( + ElectrumV2MnemonicUtilsConst.hmacKey, + StringUtils.encode(mnemonic.toStr()))); + + return h.startsWith(ElectrumV2MnemonicConst.typeToPrefix[mnemonicType]!); + } +} diff --git a/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_validator.dart b/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_validator.dart new file mode 100644 index 0000000..245b1df --- /dev/null +++ b/lib/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_validator.dart @@ -0,0 +1,15 @@ +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_validator.dart'; + +/// Validator class for Electrum V2 mnemonics. +class ElectrumV2MnemonicValidator extends MnemonicValidator { + /// Creates a new instance of the Electrum V2 mnemonic validator. + /// + /// [v2mnemonicTypes] (Optional) The specific type of Electrum V2 mnemonic to validate. + /// [language] (Optional) The language to use for validation. + ElectrumV2MnemonicValidator( + {ElectrumV2MnemonicTypes? v2mnemonicTypes, ElectrumV2Languages? language}) + : super(ElectrumV2MnemonicDecoder( + mnemonicType: v2mnemonicTypes, language: language)); +} diff --git a/lib/bip/electrum/mnemonic_v2/electrum_v2_seed_generator.dart b/lib/bip/electrum/mnemonic_v2/electrum_v2_seed_generator.dart new file mode 100644 index 0000000..ad2bade --- /dev/null +++ b/lib/bip/electrum/mnemonic_v2/electrum_v2_seed_generator.dart @@ -0,0 +1,40 @@ +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_validator.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// Constants and configurations related to Electrum V2 seed generation. +class ElectrumV2SeedGeneratorConst { + /// A salt modifier used in the PBKDF2 key derivation process. + static const String seedSaltMod = 'electrum'; + + /// Number of rounds for the PBKDF2 key derivation. + static const int seedPbkdf2Rounds = 2048; +} + +/// Class for generating an Electrum V2 seed from a mnemonic and an optional passphrase. +class ElectrumV2SeedGenerator { + final Mnemonic mnemonic; + + /// Creates an ElectrumV2SeedGenerator instance with the given [mnemonic]. + /// Optionally, you can specify the [language] used in the mnemonic. + /// The [mnemonic] is validated to ensure its correctness based on the specified language. + ElectrumV2SeedGenerator(this.mnemonic, [ElectrumV2Languages? language]) { + /// Validate the provided mnemonic to ensure its correctness. + ElectrumV2MnemonicValidator(language: language).validate(mnemonic.toStr()); + } + + /// Generates an Electrum V2 seed from the mnemonic and an optional [passphrase]. + List generate([String passphrase = '']) { + /// Create a salt by combining the Electrum V2 salt modifier and the optional passphrase. + final salt = ElectrumV2SeedGeneratorConst.seedSaltMod + passphrase; + + /// Derive the seed using PBKDF2 with the specified parameters. + return QuickCrypto.pbkdf2DeriveKey( + password: StringUtils.encode(mnemonic.toStr()), + salt: StringUtils.encode(salt), + iterations: ElectrumV2SeedGeneratorConst.seedPbkdf2Rounds, + ); + } +} diff --git a/lib/bip/mnemonic/entropy_generator.dart b/lib/bip/mnemonic/entropy_generator.dart new file mode 100644 index 0000000..053fd9a --- /dev/null +++ b/lib/bip/mnemonic/entropy_generator.dart @@ -0,0 +1,22 @@ +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +/// A class for generating cryptographically secure random entropy. +/// +/// The [EntropyGenerator] class is designed to produce random entropy with a specified bit length. +/// It uses a cryptographically secure random number generator to generate the entropy. +class EntropyGenerator { + final int bitlen; + + /// Creates an [EntropyGenerator] instance with the desired bit length. + /// + /// The [bitlen] parameter specifies the length of the entropy in bits. + EntropyGenerator(this.bitlen); + + /// Generates and returns random entropy as a [List]. + /// + /// The length of the generated entropy is determined by the [bitlen] parameter, and it is converted + /// to bytes (rounded up to the nearest byte). + List generate() { + return QuickCrypto.generateRandom(bitlen ~/ 8); + } +} diff --git a/lib/bip/mnemonic/mnemonic.dart b/lib/bip/mnemonic/mnemonic.dart new file mode 100644 index 0000000..5995733 --- /dev/null +++ b/lib/bip/mnemonic/mnemonic.dart @@ -0,0 +1,43 @@ +/// Represents a mnemonic phrase used for various cryptographic purposes. +/// It encapsulates a list of mnemonic words and provides methods for working +/// with these words. +class Mnemonic { + final List _mnemonicList; + + /// Creates a new Mnemonic instance from a list of mnemonic words. + Mnemonic(this._mnemonicList); + + /// Creates a new Mnemonic instance from a mnemonic phrase provided as a string. + /// The provided mnemonic string is normalized into a list of words. + Mnemonic.fromString(String mnemonicStr) + : _mnemonicList = _normalize(mnemonicStr); + + /// Creates a new Mnemonic instance from a list of mnemonic words. + Mnemonic.fromList(List mnemonicList) : _mnemonicList = mnemonicList; + + /// Returns the number of words in the mnemonic phrase. + int wordsCount() { + return _mnemonicList.length; + } + + /// Returns the mnemonic phrase as a list of words. + List toList() { + return _mnemonicList; + } + + /// Returns the mnemonic phrase as a string with words separated by spaces. + String toStr() { + return _mnemonicList.join(' '); + } + + /// Returns the mnemonic phrase as a string with words separated by spaces. + @override + String toString() { + return toStr(); + } + + /// Normalizes a mnemonic string by splitting it into a list of words. + static List _normalize(String mnemonic) { + return mnemonic.split(' '); + } +} diff --git a/lib/bip/mnemonic/mnemonic_decoder_base.dart b/lib/bip/mnemonic/mnemonic_decoder_base.dart new file mode 100644 index 0000000..1502287 --- /dev/null +++ b/lib/bip/mnemonic/mnemonic_decoder_base.dart @@ -0,0 +1,41 @@ +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; + +/// An abstract base class for mnemonic phrase decoding in various languages and word lists. +/// +/// This class provides the foundation for decoding mnemonic phrases into binary data. +/// It allows you to specify a language, a word list, and a words list finder to find the appropriate +/// language and word list when decoding. +abstract class MnemonicDecoderBase { + final MnemonicLanguages? language; + final MnemonicWordsList? wordsList; + final MnemonicWordsListFinderBase wordsListFinder; + + /// Creates a [MnemonicDecoderBase] instance with optional language and required components. + /// + /// The [language] parameter specifies the language to use for decoding. If null, the language + /// will be determined using the [wordsListFinder]. The [wordsListFinder] is used to find + /// the appropriate language and word list. + /// + /// The [wordsListGetter] parameter is used to retrieve word lists by language. + MnemonicDecoderBase({ + this.language, + required this.wordsListFinder, + required MnemonicWordsListGetterBase wordsListGetter, + }) : wordsList = + (language != null ? wordsListGetter.getByLanguage(language) : null); + + /// Decodes the provided mnemonic phrase into binary data. + List decode(String mnemonic); + + /// Finds the language and word list for a given mnemonic phrase. + /// + /// If a language is specified, it is used. Otherwise, the [wordsListFinder] is used to determine + /// the appropriate language and word list for decoding. + (MnemonicWordsList, MnemonicLanguages) findLanguage(Mnemonic mnemonic) { + if (language == null || wordsList == null) { + return wordsListFinder.findLanguage(mnemonic); + } + return (wordsList!, language!); + } +} diff --git a/lib/bip/mnemonic/mnemonic_encoder_base.dart b/lib/bip/mnemonic/mnemonic_encoder_base.dart new file mode 100644 index 0000000..7a24351 --- /dev/null +++ b/lib/bip/mnemonic/mnemonic_encoder_base.dart @@ -0,0 +1,23 @@ +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; + +/// An abstract class for encoding binary entropy data into human-readable mnemonic phrases. +/// +/// Subclasses of this class implement specific encoding algorithms for different mnemonic standards. +abstract class MnemonicEncoderBase { + /// The list of words used for encoding. + final MnemonicWordsList wordsList; + + /// Creates an instance of MnemonicEncoderBase. + /// + /// The [language] parameter specifies the language used for the mnemonic words. + /// The [wordsListGetter] is a helper class to retrieve the appropriate words list. + MnemonicEncoderBase( + MnemonicLanguages language, MnemonicWordsListGetterBase wordsListGetter) + : wordsList = wordsListGetter.getByLanguage(language); + + /// Encodes the provided binary entropy data into a human-readable mnemonic phrase. + /// + /// The [entropyBytes] parameter is the binary entropy data to be encoded. + Mnemonic encode(List entropyBytes); +} diff --git a/lib/bip/mnemonic/mnemonic_ex.dart b/lib/bip/mnemonic/mnemonic_ex.dart new file mode 100644 index 0000000..38e3941 --- /dev/null +++ b/lib/bip/mnemonic/mnemonic_ex.dart @@ -0,0 +1,14 @@ +/// An exception representing an error related to the checksum validation of a mnemonic phrase. +/// +/// This exception is thrown when the checksum of a mnemonic phrase is found to be invalid +/// during mnemonic validation or when attempting to derive a key from the mnemonic phrase. +class MnemonicChecksumError implements Exception { + const MnemonicChecksumError([this.message]); + + final String? message; + + @override + String toString() { + return message ?? super.toString(); + } +} diff --git a/lib/bip/mnemonic/mnemonic_utils.dart b/lib/bip/mnemonic/mnemonic_utils.dart new file mode 100644 index 0000000..de3cc61 --- /dev/null +++ b/lib/bip/mnemonic/mnemonic_utils.dart @@ -0,0 +1,164 @@ +import 'dart:typed_data'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/numbers/int_utils.dart'; + +/// An abstract class representing different languages for mnemonic phrases. +/// Classes implementing this interface must provide word lists and language values. +abstract class MnemonicLanguages { + /// Returns a list of words that correspond to the language. + List get wordList; + + /// Returns a list of language values, typically containing all available languages. + List get languageValues; +} + +/// A utility class for handling operations related to mnemonics. +class MnemonicUtils { + /// Converts a chunk of bytes into a list of three words using a provided word list. + /// + /// The [bytesChunk] is converted into an integer and then divided into three + /// indices within the specified [wordsList]. The resulting words are returned + /// as a list. + /// + /// You can also specify the [endian] order for interpreting the bytes. + /// + /// Example usage: + /// ```dart + /// final words = MnemonicUtils.bytesChunkToWords(List.from([0, 1, 2, 3]), wordsList); + /// ``` + static List bytesChunkToWords( + List bytesChunk, MnemonicWordsList wordsList, + {Endian endian = Endian.big}) { + final n = wordsList.length(); + + final intChunk = IntUtils.fromBytes(bytesChunk, byteOrder: endian); + final word1Idx = intChunk % n; + final word2Idx = ((intChunk ~/ n) + word1Idx) % n; + final word3Idx = ((intChunk ~/ (n * n) + word2Idx)) % n; + + return [ + wordsList.getWordAtIdx(word1Idx), + wordsList.getWordAtIdx(word2Idx), + wordsList.getWordAtIdx(word3Idx), + ]; + } + + /// Converts a sequence of three words into a byte chunk using a specified word list. + /// + /// The three input words are mapped to their respective indices within the [wordsList]. + /// These indices are used to calculate an integer value that is then transformed into + /// a byte chunk. The resulting byte chunk is returned. + /// + /// You can also specify the [endian] order for byte interpretation (default is little-endian). + /// + /// Example usage: + /// ```dart + /// final chunk = MnemonicUtils.wordsToBytesChunk('word1', 'word2', 'word3', wordsList); + /// ``` + /// + /// The method allows for encoding three words as a chunk of bytes for various mnemonic systems. + static List wordsToBytesChunk( + String word1, String word2, String word3, MnemonicWordsList wordsList, + {Endian endian = Endian.little}) { + final n = wordsList.length(); + final word1Idx = wordsList.getWordIdx(word1); + final word2Idx = wordsList.getWordIdx(word2) % n; + final word3Idx = wordsList.getWordIdx(word3) % n; + + final intChunk = word1Idx + + (n * ((word2Idx - word1Idx) % n)) + + (n * n * ((word3Idx - word2Idx) % n)); + + return IntUtils.toBytes(intChunk, byteOrder: endian, length: 4); + } +} + +/// A class that represents a list of words used in a mnemonic system. +/// +/// This class provides methods for working with a list of words, such as retrieving +/// a word's index, obtaining a word by its index, and getting the total number of words. +/// +/// Example usage: +/// ```dart +/// final wordsList = MnemonicWordsList(['word1', 'word2', 'word3']); +/// final index = wordsList.getWordIdx('word2'); +/// final word = wordsList.getWordAtIdx(1); +/// final totalWords = wordsList.length(); +/// ``` +class MnemonicWordsList { + final List _idxToWords; + MnemonicWordsList(List wordsList) : _idxToWords = wordsList; + + /// Returns the total number of words in the list. + int length() { + return _idxToWords.length; + } + + /// Retrieves the index of a word within the list. + /// + /// Throws a [StateError] if the word is not found in the list. + int getWordIdx(String word) { + final index = _idxToWords.indexOf(word); + if (index < 0) { + throw StateError("Unable to find word $word"); + } + return index; + } + + /// Returns the word located at the specified index. + String getWordAtIdx(int wordIdx) { + return _idxToWords[wordIdx]; + } +} + +/// An abstract class for retrieving a list of words based on a specified language. +/// +/// Subclasses of this class must implement the `getByLanguage` method to return +/// the corresponding words list based on the provided language. +abstract class MnemonicWordsListGetterBase { + /// Gets a list of words for a given language. + /// + /// Subclasses must implement this method to return a [MnemonicWordsList] based on + /// the specified language. + /// + /// Example usage: + /// ```dart + /// final wordsListGetter = SomeMnemonicWordsListGetter(); + /// final wordsList = wordsListGetter.getByLanguage(MnemonicLanguages.english); + /// ``` + MnemonicWordsList getByLanguage(MnemonicLanguages language); + + /// Loads the words list for a given language and verifies its length. + /// + /// This method is used to load a words list for the specified language and + /// ensures that the loaded list contains the expected number of words. + /// Subclasses may use this method when implementing `getByLanguage`. + MnemonicWordsList loadWordsList(MnemonicLanguages language, int wordsNum) { + if (language.wordList.length != wordsNum) { + throw ArgumentError( + "Number of loaded words list (${language.wordList.length}) is not valid"); + } + return MnemonicWordsList(language.wordList); + } +} + +/// An abstract class for finding the language of a mnemonic based on its words. +/// +/// Subclasses of this class must implement the `findLanguage` method to determine +/// the language of a mnemonic based on its word content. +abstract class MnemonicWordsListFinderBase { + /// Finds the language of a mnemonic based on its words. + /// + /// Subclasses must implement this method to discover the language of a mnemonic + /// based on the provided mnemonic's words. It should return both the found + /// [MnemonicWordsList] and the identified [MnemonicLanguages]. + /// + /// Example usage: + /// ```dart + /// final finder = SomeMnemonicWordsListFinder(); + /// final result = finder.findLanguage(Mnemonic(['word1', 'word2']),); + /// final foundList = result.item1; + /// final foundLanguage = result.item2; + /// ``` + (MnemonicWordsList, MnemonicLanguages) findLanguage(Mnemonic mnemonic); +} diff --git a/lib/bip/mnemonic/mnemonic_validator.dart b/lib/bip/mnemonic/mnemonic_validator.dart new file mode 100644 index 0000000..2d78da0 --- /dev/null +++ b/lib/bip/mnemonic/mnemonic_validator.dart @@ -0,0 +1,35 @@ +import 'package:blockchain_utils/bip/mnemonic/mnemonic_decoder_base.dart'; + +/// Utility class for validating and checking the validity of mnemonic phrases. +/// +/// The `MnemonicValidator` class provides methods to validate and determine the +/// validity of mnemonic phrases using a specified `MnemonicDecoderBase`. It can +/// check whether a given mnemonic phrase is valid and adheres to the expected format. +class MnemonicValidator { + final MnemonicDecoderBase decoder; + + /// Creates a new instance of the MnemonicValidator with the provided [decoder]. + /// + /// The [decoder] is responsible for decoding and verifying the correctness + /// of the mnemonic phrase. + MnemonicValidator(this.decoder); + + /// Validates a given [mnemonic] phrase using the associated decoder. + /// + /// Throws an exception if the mnemonic phrase is invalid or cannot be decoded. + void validate(String mnemonic) { + decoder.decode(mnemonic); + } + + /// Checks if a given [mnemonic] phrase is valid. + /// + /// Returns `true` if the mnemonic is valid, `false` otherwise. + bool isValid(String mnemonic) { + try { + validate(mnemonic); + return true; + } catch (e) { + return false; + } + } +} diff --git a/lib/bip/monero/conf/monero_coin_conf.dart b/lib/bip/monero/conf/monero_coin_conf.dart new file mode 100644 index 0000000..17f6802 --- /dev/null +++ b/lib/bip/monero/conf/monero_coin_conf.dart @@ -0,0 +1,28 @@ +import 'package:blockchain_utils/bip/coin_conf/coin_conf.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_name.dart'; + +/// Configuration class for Monero-based cryptocurrencies, specifying various parameters +/// such as network versions, address types, and coin names. +class MoneroCoinConf { + final CoinNames coinNames; + final List addrNetVer; + final List intAddrNetVer; + final List subaddrNetVer; + + /// address parameters + final Map> addrParams = {}; + + /// private constructor + MoneroCoinConf._( + this.coinNames, this.addrNetVer, this.intAddrNetVer, this.subaddrNetVer); + + /// MoneroCoinConf from coinConf + factory MoneroCoinConf.fromCoinConf(CoinConf coinConf) { + return MoneroCoinConf._( + coinConf.coinName, + coinConf.getParam("addr_net_ver"), + coinConf.getParam("addr_int_net_ver"), + coinConf.getParam("subaddr_net_ver"), + ); + } +} diff --git a/lib/bip/monero/conf/monero_coins.dart b/lib/bip/monero/conf/monero_coins.dart new file mode 100644 index 0000000..af42755 --- /dev/null +++ b/lib/bip/monero/conf/monero_coins.dart @@ -0,0 +1,17 @@ +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; + +/// An enumeration of supported cryptocurrencies for Monero. It includes both main +/// networks and test networks of various cryptocurrencies. +enum MoneroCoins implements BipCoins { + /// mainnets + moneroMainnet, + + /// testnets + moneroStagenet, + moneroTestnet; + + @override + MoneroCoins get value { + return this; + } +} diff --git a/lib/bip/monero/conf/monero_conf.dart b/lib/bip/monero/conf/monero_conf.dart new file mode 100644 index 0000000..b1ac862 --- /dev/null +++ b/lib/bip/monero/conf/monero_conf.dart @@ -0,0 +1,37 @@ +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/monero/conf/monero_coin_conf.dart'; +import 'package:blockchain_utils/bip/monero/conf/monero_coins.dart'; + +/// A configuration class for Monero that defines the key network versions and +/// maps each supported MoneroCoins to its corresponding BipCoinConf. +class MoneroConf { + /// Retrieves the MoneroCoinConf for the given MoneroCoins. If the provided coin + /// is not an instance of MoneroCoins, an error is thrown. + static MoneroCoinConf getCoin(BipCoins coin) { + if (coin is! MoneroCoins) { + throw ArgumentError("Coin type is not an enumerative of MoneroCoins"); + } + return coinToConf[coin.value]!; + } + + /// A mapping that associates each MoneroCoins (enum) with its corresponding + /// MoneroCoinConf configuration. + static final Map coinToConf = { + MoneroCoins.moneroMainnet: MoneroConf.mainNet, + MoneroCoins.moneroStagenet: MoneroConf.stageNet, + MoneroCoins.moneroTestnet: MoneroConf.testNet, + }; + + // Configuration for Monero main net + static final MoneroCoinConf mainNet = + MoneroCoinConf.fromCoinConf(CoinsConf.moneroMainNet); + + // Configuration for Monero stage net + static final MoneroCoinConf stageNet = + MoneroCoinConf.fromCoinConf(CoinsConf.moneroStageNet); + + // Configuration for Monero test net + static final MoneroCoinConf testNet = + MoneroCoinConf.fromCoinConf(CoinsConf.moneroTestNet); +} diff --git a/lib/bip/monero/mnemonic/monero_entropy_generator.dart b/lib/bip/monero/mnemonic/monero_entropy_generator.dart new file mode 100644 index 0000000..9a700ef --- /dev/null +++ b/lib/bip/monero/mnemonic/monero_entropy_generator.dart @@ -0,0 +1,39 @@ +import 'package:blockchain_utils/bip/mnemonic/entropy_generator.dart'; + +/// Contains constants representing different bit lengths for generating entropy. +class MoneroEntropyBitLen { + /// Bit length of 128 for generating entropy. + static const int bitLen128 = 128; + + /// Bit length of 128 for generating entropy. + static const int bitLen256 = 256; +} + +/// Constants for generating entropy with specific bit lengths for Monero-based cryptocurrencies. +class MoneroEntropyGeneratorConst { + /// List of supported entropy bit lengths for Monero wallets. + static final List entropyBitLen = [ + MoneroEntropyBitLen.bitLen128, + MoneroEntropyBitLen.bitLen256, + ]; +} + +/// Generates entropy for Monero-based cryptocurrency wallets with the specified bit length. +class MoneroEntropyGenerator extends EntropyGenerator { + /// Creates a Monero entropy generator with the given bit length. + MoneroEntropyGenerator(int bitLen) : super(bitLen) { + if (!isValidEntropyBitLen(bitLen)) { + throw ArgumentError('Entropy bit length is not valid ($bitLen)'); + } + } + + /// Checks if the provided bit length is valid for generating entropy. + static bool isValidEntropyBitLen(int bitLen) { + return MoneroEntropyGeneratorConst.entropyBitLen.contains(bitLen); + } + + /// Checks if the provided byte length is valid for generating entropy. + static bool isValidEntropyByteLen(int byteLen) { + return isValidEntropyBitLen(byteLen * 8); + } +} diff --git a/lib/bip/monero/mnemonic/monero_mnemonic.dart b/lib/bip/monero/mnemonic/monero_mnemonic.dart new file mode 100644 index 0000000..3e48c1f --- /dev/null +++ b/lib/bip/monero/mnemonic/monero_mnemonic.dart @@ -0,0 +1,103 @@ +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; +import 'words_list/languages.dart' as languages; + +/// An enumeration representing the number of words in a Monero mnemonic. +/// +/// This enum defines the possible word counts for Monero mnemonics, along with an +/// associated integer value for each word count. Some word counts include a checksum +/// for enhanced error detection and correction. +enum MoneroWordsNum { + wordsNum12(12), // No checksum + wordsNum13(13), // With checksum + wordsNum24(24), // No checksum + wordsNum25(25); // With checksum + + /// The integer value associated with each word count. + final int value; + + /// Constructs a MoneroWordsNum with the specified integer value. + const MoneroWordsNum(this.value); +} + +/// An enumeration of Monero-supported languages for mnemonics. +/// +/// This enum lists the Monero-supported languages for generating Monero mnemonics. +/// Each language is associated with a specific word list that is used during the +/// mnemonic generation process. +enum MoneroLanguages implements MnemonicLanguages { + chineseSimplified, + dutch, + english, + french, + german, + italian, + japanese, + portuguese, + spanish, + russian; + + /// Retrieves the word list associated with each Monero language. + @override + List get wordList { + return languages.moneroMnemonicWorsList(this); + } + + /// list of all supported languages + @override + List get languageValues => MoneroLanguages.values; +} + +/// A class containing constants related to Monero mnemonics. +/// +/// This class defines various constants used in Monero mnemonic generation and validation. +/// It includes lists of valid Monero word counts, word counts that include checksums, unique +/// prefix lengths for different Monero languages, and the total number of words in the Monero +/// word list. +class MoneroMnemonicConst { + /// List of valid Monero word counts for mnemonics. + static const List mnemonicWordNum = [ + MoneroWordsNum.wordsNum12, + MoneroWordsNum.wordsNum13, + MoneroWordsNum.wordsNum24, + MoneroWordsNum.wordsNum25, + ]; + + /// List of Monero word counts that include checksums. + static const List mnemonicWordNumChecksum = [ + MoneroWordsNum.wordsNum13, + MoneroWordsNum.wordsNum25, + ]; + + /// Mapping of unique prefix lengths for Monero languages. + static const Map languageUniquePrefixLen = { + MoneroLanguages.chineseSimplified: 1, + MoneroLanguages.dutch: 4, + MoneroLanguages.english: 3, + MoneroLanguages.french: 4, + MoneroLanguages.german: 4, + MoneroLanguages.italian: 4, + MoneroLanguages.japanese: 4, + MoneroLanguages.portuguese: 4, + MoneroLanguages.spanish: 4, + MoneroLanguages.russian: 4, + }; + + /// Total number of words in the Monero word list. + static const int wordsListNum = 1626; +} + +/// A class representing a Monero mnemonic. +/// +/// This class extends the base `Mnemonic` class and provides specialized +/// constructors for creating Monero mnemonics. It allows the creation of a +/// Monero mnemonic from a list of words, a mnemonic string, or an existing +/// list of mnemonic words. +class MoneroMnemonic extends Mnemonic { + /// Constructs a MoneroMnemonic from a mnemonic string. + MoneroMnemonic.fromString(String mnemonicStr) : super.fromString(mnemonicStr); + + /// Constructs a MoneroMnemonic from a list of mnemonic words. + MoneroMnemonic.fromList(List mnemonicList) + : super.fromList(mnemonicList); +} diff --git a/lib/bip/monero/mnemonic/monero_mnemonic_decoder.dart b/lib/bip/monero/mnemonic/monero_mnemonic_decoder.dart new file mode 100644 index 0000000..1fd97e1 --- /dev/null +++ b/lib/bip/monero/mnemonic/monero_mnemonic_decoder.dart @@ -0,0 +1,79 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic.dart'; +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_decoder_base.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; + +import '../../mnemonic/mnemonic_ex.dart'; + +/// Decoder for Monero-style mnemonics with language support. +class MoneroMnemonicDecoder extends MnemonicDecoderBase { + /// Creates a Monero mnemonic decoder with an optional language parameter. + /// Defaults to the English language. + MoneroMnemonicDecoder([MoneroLanguages? language = MoneroLanguages.english]) + : super( + language: language, + wordsListFinder: MoneroWordsListFinder(), + wordsListGetter: MoneroWordsListGetter()); + + /// Decodes a Monero mnemonic string into a List representing entropy. + /// + /// This method takes a Monero mnemonic string as input and processes it to obtain + /// the corresponding entropy bytes. It validates the mnemonic's word count and detects + /// the language if it was not specified during construction. Then, it converts the mnemonic + /// words into entropy bytes by considering 3 words at a time, where 3 words represent 4 bytes. + /// + /// Throws a StateError if the mnemonic words count is not valid. + /// + /// Returns a List containing the decoded entropy bytes. + /// + /// [mnemonic]: The Monero mnemonic string to decode. + @override + List decode(String mnemonic) { + final mn = MoneroMnemonic.fromString(mnemonic); + final wcount = mn.wordsCount(); + try { + MoneroMnemonicConst.mnemonicWordNum + .where((element) => element.value == wcount); + } on StateError { + throw StateError("Mnemonic words count is not valid ($wcount)"); + } + final lang = findLanguage(mn); + final words = mn.toList(); + validateCheckSum(words, lang.$2 as MoneroLanguages); + List entropyBytes = List.empty(); + for (int i = 0; i < words.length ~/ 3; i++) { + String word1 = words[i * 3]; + String word2 = words[i * 3 + 1]; + String word3 = words[i * 3 + 2]; + List chunkBytes = MnemonicUtils.wordsToBytesChunk( + word1, word2, word3, lang.$1, + endian: Endian.big); + entropyBytes = List.from([...entropyBytes, ...chunkBytes]); + } + return entropyBytes; + } + + /// Validates the checksum of a list of Monero mnemonic words. + /// + /// This method checks whether the provided Monero mnemonic words have a valid checksum + /// by comparing them to the expected checksum. If the checksum is invalid, it throws + /// a MnemonicChecksumError. + /// + /// [words]: The list of Monero mnemonic words to validate. + /// [language]: The Monero language used in the mnemonic. + void validateCheckSum(List words, MoneroLanguages language) { + try { + MoneroMnemonicConst.mnemonicWordNumChecksum + .firstWhere((element) => element.value == words.length); + final checkSum = MoneroMnemonicUtils.computeChecksum( + words.sublist(0, words.length - 1), language); + if (words.last != checkSum) { + throw MnemonicChecksumError( + 'Invalid checksum (expected $checkSum, got ${words.last})'); + } + // ignore: empty_catches + } on StateError {} + } +} diff --git a/lib/bip/monero/mnemonic/monero_mnemonic_encoder.dart b/lib/bip/monero/mnemonic/monero_mnemonic_encoder.dart new file mode 100644 index 0000000..90125d1 --- /dev/null +++ b/lib/bip/monero/mnemonic/monero_mnemonic_encoder.dart @@ -0,0 +1,140 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/bip/monero/mnemonic/monero_entropy_generator.dart'; +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic.dart'; +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic_utils.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_encoder_base.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; + +/// An abstract base class for encoding entropy into Monero mnemonics. +/// +/// This class extends `MnemonicEncoderBase` and provides specific functionality +/// for encoding entropy into Monero mnemonics. It allows you to specify the Monero +/// language to be used for encoding, with English as the default language. +/// +/// [language]: The Monero language to use for encoding. Defaults to English. +abstract class MoneroMnemonicEncoderBase extends MnemonicEncoderBase { + final MoneroLanguages language; + + /// Constructs a MoneroMnemonicEncoderBase with an optional language parameter. + /// + /// [language]: The Monero language to use for encoding. Defaults to English. + MoneroMnemonicEncoderBase([this.language = MoneroLanguages.english]) + : super(language, MoneroWordsListGetter()); + + /// Encodes the provided entropy bytes into a list of Monero mnemonic words. + /// + /// This method takes a List of entropy bytes as input and encodes it into + /// a list of Monero mnemonic words. It validates the entropy byte length and + /// converts the bytes into words using the specified Monero language. + /// + /// Throws an Exception if the entropy byte length is not valid. + /// + /// [entropyBytes]: The entropy bytes to encode. + List _encodeToList(List entropyBytes) { + int entropyByteLen = entropyBytes.length; + if (!MoneroEntropyGenerator.isValidEntropyByteLen(entropyByteLen)) { + throw Exception('Entropy byte length ($entropyByteLen) is not valid'); + } + List mnemonic = []; + for (int i = 0; i < entropyByteLen ~/ 4; i++) { + mnemonic.addAll(MnemonicUtils.bytesChunkToWords( + entropyBytes.sublist(i * 4, (i * 4) + 4), wordsList, + endian: Endian.big)); + } + + return mnemonic; + } +} + +/// A class that encodes entropy into Monero mnemonics without a checksum. +/// +/// This class extends `MoneroMnemonicEncoderBase` and is specialized for encoding +/// entropy into Monero mnemonics without including a checksum. The absence of a +/// checksum means that the resulting mnemonic may lack the ability to detect errors +/// in the entered words or recover from mistakes. +class MoneroMnemonicNoChecksumEncoder extends MoneroMnemonicEncoderBase { + /// Constructs a MoneroMnemonicNoChecksumEncoder with an optional language parameter. + /// + /// [language]: The Monero language to use for encoding. Defaults to the language + /// specified in the superclass. + MoneroMnemonicNoChecksumEncoder([super.language]); + + /// Encodes the provided entropy bytes into a Monero mnemonic without a checksum. + /// + /// This method encodes the given entropy bytes into a Monero mnemonic without + /// including a checksum. The resulting mnemonic may be less error-tolerant and + /// should be handled with caution. + /// + /// [entropyBytes]: The entropy bytes to encode. + @override + Mnemonic encode(List entropyBytes) { + return Mnemonic.fromList(_encodeToList(entropyBytes)); + } +} + +/// A class that encodes entropy into Monero mnemonics with a checksum. +/// +/// This class extends `MoneroMnemonicEncoderBase` and is specialized for encoding +/// entropy into Monero mnemonics with an additional checksum. The checksum enhances +/// error detection and correction capabilities in the resulting mnemonic. +class MoneroMnemonicWithChecksumEncoder extends MoneroMnemonicEncoderBase { + /// Constructs a MoneroMnemonicWithChecksumEncoder with an optional language parameter. + /// + /// [language]: The Monero language to use for encoding. Defaults to the language + /// specified in the superclass. + MoneroMnemonicWithChecksumEncoder([super.language]); + + /// Encodes the provided entropy bytes into a Monero mnemonic with a checksum. + /// + /// This method encodes the given entropy bytes into a Monero mnemonic and includes + /// a checksum word for enhanced error detection and correction. + /// + /// [entropyBytes]: The entropy bytes to encode. + @override + Mnemonic encode(List entropyBytes) { + List words = _encodeToList(entropyBytes); + String checksumWord = MoneroMnemonicUtils.computeChecksum(words, language); + + return Mnemonic.fromList([...words, checksumWord]); + } +} + +/// A class that provides utility for encoding entropy into Monero mnemonics. +/// +/// This class serves as a convenient utility for encoding entropy into Monero mnemonics. +/// It encapsulates instances of both `MoneroMnemonicNoChecksumEncoder` and +/// `MoneroMnemonicWithChecksumEncoder`, allowing you to choose whether to include +/// a checksum in the generated mnemonic. +class MoneroMnemonicEncoder { + final MoneroMnemonicNoChecksumEncoder nochecksumEncoder; + final MoneroMnemonicWithChecksumEncoder withChecksumEncoder; + + /// Constructs a MoneroMnemonicEncoder with an optional language parameter. + /// + /// [language]: The Monero language to use for encoding. Defaults to English. + MoneroMnemonicEncoder([MoneroLanguages language = MoneroLanguages.english]) + : nochecksumEncoder = MoneroMnemonicNoChecksumEncoder(language), + withChecksumEncoder = MoneroMnemonicWithChecksumEncoder(language); + + /// Encodes the provided entropy bytes into a Monero mnemonic without a checksum. + /// + /// This method uses the no-checksum encoder to generate a Monero mnemonic without + /// including a checksum. + /// + /// [entropyBytes]: The entropy bytes to encode. + Mnemonic encodeNoChecksum(List entropyBytes) { + return nochecksumEncoder.encode(entropyBytes); + } + + /// Encodes the provided entropy bytes into a Monero mnemonic with a checksum. + /// + /// This method uses the checksum encoder to generate a Monero mnemonic with an + /// included checksum for error detection and correction. + /// + /// [entropyBytes]: The entropy bytes to encode. + Mnemonic encodeWithChecksum(List entropyBytes) { + return withChecksumEncoder.encode(entropyBytes); + } +} diff --git a/lib/bip/monero/mnemonic/monero_mnemonic_generator.dart b/lib/bip/monero/mnemonic/monero_mnemonic_generator.dart new file mode 100644 index 0000000..2f5ef32 --- /dev/null +++ b/lib/bip/monero/mnemonic/monero_mnemonic_generator.dart @@ -0,0 +1,78 @@ +import 'package:blockchain_utils/bip/monero/mnemonic/monero_entropy_generator.dart'; +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic.dart'; +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic_encoder.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; + +/// A class containing constants related to Monero mnemonic generation. +/// +/// This class holds a set of constant mappings that associate the number of words +/// in a Monero mnemonic with the corresponding entropy bit length. It is used to +/// determine the entropy bit length based on the word count. +class MoneroMnemonicGeneratorConst { + /// Maps MoneroWordsNum to their corresponding entropy bit length. + static final Map wordsNumToEntropyLen = { + MoneroWordsNum.wordsNum12: MoneroEntropyBitLen.bitLen128, + MoneroWordsNum.wordsNum13: MoneroEntropyBitLen.bitLen128, + MoneroWordsNum.wordsNum24: MoneroEntropyBitLen.bitLen256, + MoneroWordsNum.wordsNum25: MoneroEntropyBitLen.bitLen256, + }; +} + +/// A class responsible for generating Monero mnemonics from entropy. +/// +/// This class simplifies the process of generating Monero mnemonics from entropy. +/// It uses an instance of `MoneroMnemonicEncoder` to encode entropy into mnemonics, +/// allowing you to choose whether to include a checksum in the generated mnemonic. +class MoneroMnemonicGenerator { + final MoneroMnemonicEncoder encoder; + + /// Constructs a MoneroMnemonicGenerator with an optional language parameter. + /// + /// [language]: The Monero language to use for encoding. Defaults to English. + MoneroMnemonicGenerator([MoneroLanguages language = MoneroLanguages.english]) + : encoder = MoneroMnemonicEncoder(language); + + /// Generates a Monero mnemonic of a specified word count. + /// + /// This method generates a Monero mnemonic with the given word count. It validates + /// the word count's validity and generates entropy based on the corresponding + /// entropy bit length. The choice of including a checksum depends on the word count. + /// + /// Throws an Exception if the word count is not valid. + /// + /// [wordsNum]: The desired word count for the mnemonic. + Mnemonic fromWordsNumber(MoneroWordsNum wordsNum) { + if (!MoneroMnemonicConst.mnemonicWordNum.contains(wordsNum)) { + throw Exception('Words number for mnemonic ($wordsNum) is not valid'); + } + + int entropyBitLen = + MoneroMnemonicGeneratorConst.wordsNumToEntropyLen[wordsNum]!; + List entropyBytes = MoneroEntropyGenerator(entropyBitLen).generate(); + + return wordsNum == MoneroWordsNum.wordsNum13 || + wordsNum == MoneroWordsNum.wordsNum25 + ? fromEntropyWithChecksum(entropyBytes) + : fromEntropyNoChecksum(entropyBytes); + } + + /// Generates a Monero mnemonic from entropy without a checksum. + /// + /// This method generates a Monero mnemonic from the provided entropy bytes without + /// including a checksum. + /// + /// [entropyBytes]: The entropy bytes to encode. + Mnemonic fromEntropyNoChecksum(List entropyBytes) { + return encoder.encodeNoChecksum(entropyBytes); + } + + /// Generates a Monero mnemonic from entropy with a checksum. + /// + /// This method generates a Monero mnemonic from the provided entropy bytes with an + /// included checksum for enhanced error detection and correction. + /// + /// [entropyBytes]: The entropy bytes to encode. + Mnemonic fromEntropyWithChecksum(List entropyBytes) { + return encoder.encodeWithChecksum(entropyBytes); + } +} diff --git a/lib/bip/monero/mnemonic/monero_mnemonic_utils.dart b/lib/bip/monero/mnemonic/monero_mnemonic_utils.dart new file mode 100644 index 0000000..62dec59 --- /dev/null +++ b/lib/bip/monero/mnemonic/monero_mnemonic_utils.dart @@ -0,0 +1,89 @@ +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/crc32/crc32.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// A class that retrieves Monero mnemonic word lists by language. +/// +/// This class extends `MnemonicWordsListGetterBase` and is specifically designed to +/// retrieve Monero mnemonic word lists based on the specified Monero language. +class MoneroWordsListGetter extends MnemonicWordsListGetterBase { + /// Retrieves a MnemonicWordsList based on the specified language. + /// + /// This method takes a `MnemonicLanguages` object as input and attempts to convert + /// it into a `MoneroLanguages` object to ensure it is a valid Monero language. + /// Then, it loads the Monero mnemonic word list corresponding to the specified language + /// using `loadWordsList` and the number of word lists defined in `MoneroMnemonicConst`. + /// + /// Throws an `ArgumentError` if the language is not a valid Monero language. + /// + /// [language]: The Monero language for which to retrieve the word list. + @override + MnemonicWordsList getByLanguage(MnemonicLanguages language) { + if (language is! MoneroLanguages) { + throw ArgumentError("Language is not an enumerative of MoneroLanguages"); + } + return loadWordsList(language, MoneroMnemonicConst.wordsListNum); + } +} + +/// A class responsible for finding Monero mnemonic word lists. +/// +/// This class extends `MnemonicWordsListFinderBase` and provides specific +/// functionality for locating Monero mnemonic word lists. It facilitates +/// the retrieval of word lists based on the provided parameters. +class MoneroWordsListFinder extends MnemonicWordsListFinderBase { + /// This method attempts to determine the language of a Monero mnemonic by iterating + /// through the available MoneroLanguages and checking if the words in the mnemonic + /// match the word list of each language. It returns the matching MnemonicWordsList + /// and the associated MoneroLanguages if a match is found. + /// + /// Throws a StateError if the language for the mnemonic cannot be determined. + /// + /// [mnemonic]: The Monero mnemonic from which to identify the language. + /// Returns a tuple containing the MnemonicWordsList and the identified MoneroLanguages. + @override + (MnemonicWordsList, MnemonicLanguages) findLanguage(Mnemonic mnemonic) { + for (final lang in MoneroLanguages.values) { + final wordsList = MnemonicWordsList(lang.wordList); + try { + for (final word in mnemonic.toList()) { + wordsList.getWordIdx(word); + } + return (wordsList, lang); + } on StateError { + continue; + } + } + throw StateError("cannot find language for ${mnemonic.toStr()}"); + } +} + +/// A utility class for handling Monero mnemonic-related operations. +/// +/// This class provides utility methods for working with Monero mnemonics, including +/// the computation of checksums for error detection and correction. +class MoneroMnemonicUtils { + /// Computes the checksum word for a list of Monero mnemonic words. + /// + /// This method takes a list of Monero mnemonic words and a specified Monero language. + /// It computes a checksum word for the given mnemonic words to enhance error detection + /// and correction. + /// + /// [mnemonic]: The list of Monero mnemonic words for which to compute the checksum. + /// [language]: The Monero language used in the mnemonic. + /// Returns the computed checksum word. + static String computeChecksum( + List mnemonic, MnemonicLanguages language) { + final uniqueLen = MoneroMnemonicConst.languageUniquePrefixLen[language]!; + String prefixes = mnemonic.map((word) { + final len = word.length >= uniqueLen ? uniqueLen : word.length; + return word.substring(0, len); + }).join(); + + int index = + Crc32.quickIntDigest(StringUtils.encode(prefixes)) % mnemonic.length; + return mnemonic[index]; + } +} diff --git a/lib/bip/monero/mnemonic/monero_mnemonic_validator.dart b/lib/bip/monero/mnemonic/monero_mnemonic_validator.dart new file mode 100644 index 0000000..5ba9786 --- /dev/null +++ b/lib/bip/monero/mnemonic/monero_mnemonic_validator.dart @@ -0,0 +1,18 @@ +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic.dart'; +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic_validator.dart'; + +/// A class for validating Monero mnemonics. +/// +/// This class extends `MnemonicValidator` and is specialized for validating Monero mnemonics. +/// It uses a `MoneroMnemonicDecoder` for decoding and validating Monero mnemonics. +/// +/// [language]: The Monero language used for validation. Defaults to null, allowing the decoder +/// to use the default language. +class MoneroMnemonicValidator extends MnemonicValidator { + /// Constructs a MoneroMnemonicValidator with an optional language parameter. + /// + /// [language]: The Monero language used for validation. Defaults to null. + MoneroMnemonicValidator([MoneroLanguages? language]) + : super(MoneroMnemonicDecoder(language)); +} diff --git a/lib/bip/monero/mnemonic/monero_seed_generator.dart b/lib/bip/monero/mnemonic/monero_seed_generator.dart new file mode 100644 index 0000000..c82a000 --- /dev/null +++ b/lib/bip/monero/mnemonic/monero_seed_generator.dart @@ -0,0 +1,29 @@ +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic.dart'; +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/mnemonic/mnemonic.dart'; + +/// A class responsible for generating a seed from Monero mnemonic entropy. +/// +/// This class takes a Monero mnemonic, decodes it to obtain the associated entropy bytes, +/// and allows you to generate a seed from that entropy. The generated seed can be used +/// as a cryptographic seed in Monero-related operations. +class MoneroSeedGenerator { + final List _entropyBytes; + + /// Constructs a MoneroSeedGenerator with a Monero mnemonic and an optional language. + /// + /// [mnemonic]: The Monero mnemonic from which to derive the seed. + /// [language]: The Monero language used for decoding. Defaults to null, allowing the decoder + /// to use the default language. + MoneroSeedGenerator(Mnemonic mnemonic, [MoneroLanguages? language]) + : _entropyBytes = + MoneroMnemonicDecoder(language).decode(mnemonic.toStr()); + + /// Generates a seed from the decoded entropy bytes. + /// + /// This method generates a seed from the decoded entropy bytes obtained from the + /// Monero mnemonic. The seed can be used for cryptographic purposes. + /// + /// Returns a List containing the generated seed. + List generate() => List.from(_entropyBytes); +} diff --git a/lib/bip/monero/mnemonic/words_list/chinese_simplified.dart b/lib/bip/monero/mnemonic/words_list/chinese_simplified.dart new file mode 100644 index 0000000..ad2fe39 --- /dev/null +++ b/lib/bip/monero/mnemonic/words_list/chinese_simplified.dart @@ -0,0 +1,1630 @@ +part of 'package:blockchain_utils/bip/monero/mnemonic/words_list/languages.dart'; + +const List _chineseSimplified = [ + "的", + "一", + "是", + "在", + "不", + "了", + "有", + "和", + "人", + "这", + "中", + "大", + "为", + "上", + "个", + "国", + "我", + "以", + "要", + "他", + "时", + "来", + "用", + "们", + "生", + "到", + "作", + "地", + "于", + "出", + "就", + "分", + "对", + "成", + "会", + "可", + "主", + "发", + "年", + "动", + "同", + "工", + "也", + "能", + "下", + "过", + "子", + "说", + "产", + "种", + "面", + "而", + "方", + "后", + "多", + "定", + "行", + "学", + "法", + "所", + "民", + "得", + "经", + "十", + "三", + "之", + "进", + "着", + "等", + "部", + "度", + "家", + "电", + "力", + "里", + "如", + "水", + "化", + "高", + "自", + "二", + "理", + "起", + "小", + "物", + "现", + "实", + "加", + "量", + "都", + "两", + "体", + "制", + "机", + "当", + "使", + "点", + "从", + "业", + "本", + "去", + "把", + "性", + "好", + "应", + "开", + "它", + "合", + "还", + "因", + "由", + "其", + "些", + "然", + "前", + "外", + "天", + "政", + "四", + "日", + "那", + "社", + "义", + "事", + "平", + "形", + "相", + "全", + "表", + "间", + "样", + "与", + "关", + "各", + "重", + "新", + "线", + "内", + "数", + "正", + "心", + "反", + "你", + "明", + "看", + "原", + "又", + "么", + "利", + "比", + "或", + "但", + "质", + "气", + "第", + "向", + "道", + "命", + "此", + "变", + "条", + "只", + "没", + "结", + "解", + "问", + "意", + "建", + "月", + "公", + "无", + "系", + "军", + "很", + "情", + "者", + "最", + "立", + "代", + "想", + "已", + "通", + "并", + "提", + "直", + "题", + "党", + "程", + "展", + "五", + "果", + "料", + "象", + "员", + "革", + "位", + "入", + "常", + "文", + "总", + "次", + "品", + "式", + "活", + "设", + "及", + "管", + "特", + "件", + "长", + "求", + "老", + "头", + "基", + "资", + "边", + "流", + "路", + "级", + "少", + "图", + "山", + "统", + "接", + "知", + "较", + "将", + "组", + "见", + "计", + "别", + "她", + "手", + "角", + "期", + "根", + "论", + "运", + "农", + "指", + "几", + "九", + "区", + "强", + "放", + "决", + "西", + "被", + "干", + "做", + "必", + "战", + "先", + "回", + "则", + "任", + "取", + "据", + "处", + "队", + "南", + "给", + "色", + "光", + "门", + "即", + "保", + "治", + "北", + "造", + "百", + "规", + "热", + "领", + "七", + "海", + "口", + "东", + "导", + "器", + "压", + "志", + "世", + "金", + "增", + "争", + "济", + "阶", + "油", + "思", + "术", + "极", + "交", + "受", + "联", + "什", + "认", + "六", + "共", + "权", + "收", + "证", + "改", + "清", + "美", + "再", + "采", + "转", + "更", + "单", + "风", + "切", + "打", + "白", + "教", + "速", + "花", + "带", + "安", + "场", + "身", + "车", + "例", + "真", + "务", + "具", + "万", + "每", + "目", + "至", + "达", + "走", + "积", + "示", + "议", + "声", + "报", + "斗", + "完", + "类", + "八", + "离", + "华", + "名", + "确", + "才", + "科", + "张", + "信", + "马", + "节", + "话", + "米", + "整", + "空", + "元", + "况", + "今", + "集", + "温", + "传", + "土", + "许", + "步", + "群", + "广", + "石", + "记", + "需", + "段", + "研", + "界", + "拉", + "林", + "律", + "叫", + "且", + "究", + "观", + "越", + "织", + "装", + "影", + "算", + "低", + "持", + "音", + "众", + "书", + "布", + "复", + "容", + "儿", + "须", + "际", + "商", + "非", + "验", + "连", + "断", + "深", + "难", + "近", + "矿", + "千", + "周", + "委", + "素", + "技", + "备", + "半", + "办", + "青", + "省", + "列", + "习", + "响", + "约", + "支", + "般", + "史", + "感", + "劳", + "便", + "团", + "往", + "酸", + "历", + "市", + "克", + "何", + "除", + "消", + "构", + "府", + "称", + "太", + "准", + "精", + "值", + "号", + "率", + "族", + "维", + "划", + "选", + "标", + "写", + "存", + "候", + "毛", + "亲", + "快", + "效", + "斯", + "院", + "查", + "江", + "型", + "眼", + "王", + "按", + "格", + "养", + "易", + "置", + "派", + "层", + "片", + "始", + "却", + "专", + "状", + "育", + "厂", + "京", + "识", + "适", + "属", + "圆", + "包", + "火", + "住", + "调", + "满", + "县", + "局", + "照", + "参", + "红", + "细", + "引", + "听", + "该", + "铁", + "价", + "严", + "首", + "底", + "液", + "官", + "德", + "随", + "病", + "苏", + "失", + "尔", + "死", + "讲", + "配", + "女", + "黄", + "推", + "显", + "谈", + "罪", + "神", + "艺", + "呢", + "席", + "含", + "企", + "望", + "密", + "批", + "营", + "项", + "防", + "举", + "球", + "英", + "氧", + "势", + "告", + "李", + "台", + "落", + "木", + "帮", + "轮", + "破", + "亚", + "师", + "围", + "注", + "远", + "字", + "材", + "排", + "供", + "河", + "态", + "封", + "另", + "施", + "减", + "树", + "溶", + "怎", + "止", + "案", + "言", + "士", + "均", + "武", + "固", + "叶", + "鱼", + "波", + "视", + "仅", + "费", + "紧", + "爱", + "左", + "章", + "早", + "朝", + "害", + "续", + "轻", + "服", + "试", + "食", + "充", + "兵", + "源", + "判", + "护", + "司", + "足", + "某", + "练", + "差", + "致", + "板", + "田", + "降", + "黑", + "犯", + "负", + "击", + "范", + "继", + "兴", + "似", + "余", + "坚", + "曲", + "输", + "修", + "故", + "城", + "夫", + "够", + "送", + "笔", + "船", + "占", + "右", + "财", + "吃", + "富", + "春", + "职", + "觉", + "汉", + "画", + "功", + "巴", + "跟", + "虽", + "杂", + "飞", + "检", + "吸", + "助", + "升", + "阳", + "互", + "初", + "创", + "抗", + "考", + "投", + "坏", + "策", + "古", + "径", + "换", + "未", + "跑", + "留", + "钢", + "曾", + "端", + "责", + "站", + "简", + "述", + "钱", + "副", + "尽", + "帝", + "射", + "草", + "冲", + "承", + "独", + "令", + "限", + "阿", + "宣", + "环", + "双", + "请", + "超", + "微", + "让", + "控", + "州", + "良", + "轴", + "找", + "否", + "纪", + "益", + "依", + "优", + "顶", + "础", + "载", + "倒", + "房", + "突", + "坐", + "粉", + "敌", + "略", + "客", + "袁", + "冷", + "胜", + "绝", + "析", + "块", + "剂", + "测", + "丝", + "协", + "诉", + "念", + "陈", + "仍", + "罗", + "盐", + "友", + "洋", + "错", + "苦", + "夜", + "刑", + "移", + "频", + "逐", + "靠", + "混", + "母", + "短", + "皮", + "终", + "聚", + "汽", + "村", + "云", + "哪", + "既", + "距", + "卫", + "停", + "烈", + "央", + "察", + "烧", + "迅", + "境", + "若", + "印", + "洲", + "刻", + "括", + "激", + "孔", + "搞", + "甚", + "室", + "待", + "核", + "校", + "散", + "侵", + "吧", + "甲", + "游", + "久", + "菜", + "味", + "旧", + "模", + "湖", + "货", + "损", + "预", + "阻", + "毫", + "普", + "稳", + "乙", + "妈", + "植", + "息", + "扩", + "银", + "语", + "挥", + "酒", + "守", + "拿", + "序", + "纸", + "医", + "缺", + "雨", + "吗", + "针", + "刘", + "啊", + "急", + "唱", + "误", + "训", + "愿", + "审", + "附", + "获", + "茶", + "鲜", + "粮", + "斤", + "孩", + "脱", + "硫", + "肥", + "善", + "龙", + "演", + "父", + "渐", + "血", + "欢", + "械", + "掌", + "歌", + "沙", + "刚", + "攻", + "谓", + "盾", + "讨", + "晚", + "粒", + "乱", + "燃", + "矛", + "乎", + "杀", + "药", + "宁", + "鲁", + "贵", + "钟", + "煤", + "读", + "班", + "伯", + "香", + "介", + "迫", + "句", + "丰", + "培", + "握", + "兰", + "担", + "弦", + "蛋", + "沉", + "假", + "穿", + "执", + "答", + "乐", + "谁", + "顺", + "烟", + "缩", + "征", + "脸", + "喜", + "松", + "脚", + "困", + "异", + "免", + "背", + "星", + "福", + "买", + "染", + "井", + "概", + "慢", + "怕", + "磁", + "倍", + "祖", + "皇", + "促", + "静", + "补", + "评", + "翻", + "肉", + "践", + "尼", + "衣", + "宽", + "扬", + "棉", + "希", + "伤", + "操", + "垂", + "秋", + "宜", + "氢", + "套", + "督", + "振", + "架", + "亮", + "末", + "宪", + "庆", + "编", + "牛", + "触", + "映", + "雷", + "销", + "诗", + "座", + "居", + "抓", + "裂", + "胞", + "呼", + "娘", + "景", + "威", + "绿", + "晶", + "厚", + "盟", + "衡", + "鸡", + "孙", + "延", + "危", + "胶", + "屋", + "乡", + "临", + "陆", + "顾", + "掉", + "呀", + "灯", + "岁", + "措", + "束", + "耐", + "剧", + "玉", + "赵", + "跳", + "哥", + "季", + "课", + "凯", + "胡", + "额", + "款", + "绍", + "卷", + "齐", + "伟", + "蒸", + "殖", + "永", + "宗", + "苗", + "川", + "炉", + "岩", + "弱", + "零", + "杨", + "奏", + "沿", + "露", + "杆", + "探", + "滑", + "镇", + "饭", + "浓", + "航", + "怀", + "赶", + "库", + "夺", + "伊", + "灵", + "税", + "途", + "灭", + "赛", + "归", + "召", + "鼓", + "播", + "盘", + "裁", + "险", + "康", + "唯", + "录", + "菌", + "纯", + "借", + "糖", + "盖", + "横", + "符", + "私", + "努", + "堂", + "域", + "枪", + "润", + "幅", + "哈", + "竟", + "熟", + "虫", + "泽", + "脑", + "壤", + "碳", + "欧", + "遍", + "侧", + "寨", + "敢", + "彻", + "虑", + "斜", + "薄", + "庭", + "纳", + "弹", + "饲", + "伸", + "折", + "麦", + "湿", + "暗", + "荷", + "瓦", + "塞", + "床", + "筑", + "恶", + "户", + "访", + "塔", + "奇", + "透", + "梁", + "刀", + "旋", + "迹", + "卡", + "氯", + "遇", + "份", + "毒", + "泥", + "退", + "洗", + "摆", + "灰", + "彩", + "卖", + "耗", + "夏", + "择", + "忙", + "铜", + "献", + "硬", + "予", + "繁", + "圈", + "雪", + "函", + "亦", + "抽", + "篇", + "阵", + "阴", + "丁", + "尺", + "追", + "堆", + "雄", + "迎", + "泛", + "爸", + "楼", + "避", + "谋", + "吨", + "野", + "猪", + "旗", + "累", + "偏", + "典", + "馆", + "索", + "秦", + "脂", + "潮", + "爷", + "豆", + "忽", + "托", + "惊", + "塑", + "遗", + "愈", + "朱", + "替", + "纤", + "粗", + "倾", + "尚", + "痛", + "楚", + "谢", + "奋", + "购", + "磨", + "君", + "池", + "旁", + "碎", + "骨", + "监", + "捕", + "弟", + "暴", + "割", + "贯", + "殊", + "释", + "词", + "亡", + "壁", + "顿", + "宝", + "午", + "尘", + "闻", + "揭", + "炮", + "残", + "冬", + "桥", + "妇", + "警", + "综", + "招", + "吴", + "付", + "浮", + "遭", + "徐", + "您", + "摇", + "谷", + "赞", + "箱", + "隔", + "订", + "男", + "吹", + "园", + "纷", + "唐", + "败", + "宋", + "玻", + "巨", + "耕", + "坦", + "荣", + "闭", + "湾", + "键", + "凡", + "驻", + "锅", + "救", + "恩", + "剥", + "凝", + "碱", + "齿", + "截", + "炼", + "麻", + "纺", + "禁", + "废", + "盛", + "版", + "缓", + "净", + "睛", + "昌", + "婚", + "涉", + "筒", + "嘴", + "插", + "岸", + "朗", + "庄", + "街", + "藏", + "姑", + "贸", + "腐", + "奴", + "啦", + "惯", + "乘", + "伙", + "恢", + "匀", + "纱", + "扎", + "辩", + "耳", + "彪", + "臣", + "亿", + "璃", + "抵", + "脉", + "秀", + "萨", + "俄", + "网", + "舞", + "店", + "喷", + "纵", + "寸", + "汗", + "挂", + "洪", + "贺", + "闪", + "柬", + "爆", + "烯", + "津", + "稻", + "墙", + "软", + "勇", + "像", + "滚", + "厘", + "蒙", + "芳", + "肯", + "坡", + "柱", + "荡", + "腿", + "仪", + "旅", + "尾", + "轧", + "冰", + "贡", + "登", + "黎", + "削", + "钻", + "勒", + "逃", + "障", + "氨", + "郭", + "峰", + "币", + "港", + "伏", + "轨", + "亩", + "毕", + "擦", + "莫", + "刺", + "浪", + "秘", + "援", + "株", + "健", + "售", + "股", + "岛", + "甘", + "泡", + "睡", + "童", + "铸", + "汤", + "阀", + "休", + "汇", + "舍", + "牧", + "绕", + "炸", + "哲", + "磷", + "绩", + "朋", + "淡", + "尖", + "启", + "陷", + "柴", + "呈", + "徒", + "颜", + "泪", + "稍", + "忘", + "泵", + "蓝", + "拖", + "洞", + "授", + "镜", + "辛", + "壮", + "锋", + "贫", + "虚", + "弯", + "摩", + "泰", + "幼", + "廷", + "尊", + "窗", + "纲", + "弄", + "隶", + "疑", + "氏", + "宫", + "姐", + "震", + "瑞", + "怪", + "尤", + "琴", + "循", + "描", + "膜", + "违", + "夹", + "腰", + "缘", + "珠", + "穷", + "森", + "枝", + "竹", + "沟", + "催", + "绳", + "忆", + "邦", + "剩", + "幸", + "浆", + "栏", + "拥", + "牙", + "贮", + "礼", + "滤", + "钠", + "纹", + "罢", + "拍", + "咱", + "喊", + "袖", + "埃", + "勤", + "罚", + "焦", + "潜", + "伍", + "墨", + "欲", + "缝", + "姓", + "刊", + "饱", + "仿", + "奖", + "铝", + "鬼", + "丽", + "跨", + "默", + "挖", + "链", + "扫", + "喝", + "袋", + "炭", + "污", + "幕", + "诸", + "弧", + "励", + "梅", + "奶", + "洁", + "灾", + "舟", + "鉴", + "苯", + "讼", + "抱", + "毁", + "懂", + "寒", + "智", + "埔", + "寄", + "届", + "跃", + "渡", + "挑", + "丹", + "艰", + "贝", + "碰", + "拔", + "爹", + "戴", + "码", + "梦", + "芽", + "熔", + "赤", + "渔", + "哭", + "敬", + "颗", + "奔", + "铅", + "仲", + "虎", + "稀", + "妹", + "乏", + "珍", + "申", + "桌", + "遵", + "允", + "隆", + "螺", + "仓", + "魏", + "锐", + "晓", + "氮", + "兼", + "隐", + "碍", + "赫", + "拨", + "忠", + "肃", + "缸", + "牵", + "抢", + "博", + "巧", + "壳", + "兄", + "杜", + "讯", + "诚", + "碧", + "祥", + "柯", + "页", + "巡", + "矩", + "悲", + "灌", + "龄", + "伦", + "票", + "寻", + "桂", + "铺", + "圣", + "恐", + "恰", + "郑", + "趣", + "抬", + "荒", + "腾", + "贴", + "柔", + "滴", + "猛", + "阔", + "辆", + "妻", + "填", + "撤", + "储", + "签", + "闹", + "扰", + "紫", + "砂", + "递", + "戏", + "吊", + "陶", + "伐", + "喂", + "疗", + "瓶", + "婆", + "抚", + "臂", + "摸", + "忍", + "虾", + "蜡", + "邻", + "胸", + "巩", + "挤", + "偶", + "弃", + "槽", + "劲", + "乳", + "邓", + "吉", + "仁", + "烂", + "砖", + "租", + "乌", + "舰", + "伴", + "瓜", + "浅", + "丙", + "暂", + "燥", + "橡", + "柳", + "迷", + "暖", + "牌", + "秧", + "胆", + "详", + "簧", + "踏", + "瓷", + "谱", + "呆", + "宾", + "糊", + "洛", + "辉", + "愤", + "竞", + "隙", + "怒", + "粘", + "乃", + "绪", + "肩", + "籍", + "敏", + "涂", + "熙", + "皆", + "侦", + "悬", + "掘", + "享", + "纠", + "醒", + "狂", + "锁", + "淀", + "恨", + "牲", + "霸", + "爬", + "赏", + "逆", + "玩", + "陵", + "祝", + "秒", + "浙", + "貌", +]; diff --git a/lib/bip/monero/mnemonic/words_list/dutch.dart b/lib/bip/monero/mnemonic/words_list/dutch.dart new file mode 100644 index 0000000..f325fdb --- /dev/null +++ b/lib/bip/monero/mnemonic/words_list/dutch.dart @@ -0,0 +1,1630 @@ +part of 'package:blockchain_utils/bip/monero/mnemonic/words_list/languages.dart'; + +const List _dutch = [ + "aalglad", + "aalscholver", + "aambeeld", + "aangeef", + "aanlandig", + "aanvaard", + "aanwakker", + "aapmens", + "aarten", + "abdicatie", + "abnormaal", + "abrikoos", + "accu", + "acuut", + "adjudant", + "admiraal", + "advies", + "afbidding", + "afdracht", + "affaire", + "affiche", + "afgang", + "afkick", + "afknap", + "aflees", + "afmijner", + "afname", + "afpreekt", + "afrader", + "afspeel", + "aftocht", + "aftrek", + "afzijdig", + "ahornboom", + "aktetas", + "akzo", + "alchemist", + "alcohol", + "aldaar", + "alexander", + "alfabet", + "alfredo", + "alice", + "alikruik", + "allrisk", + "altsax", + "alufolie", + "alziend", + "amai", + "ambacht", + "ambieer", + "amina", + "amnestie", + "amok", + "ampul", + "amuzikaal", + "angela", + "aniek", + "antje", + "antwerpen", + "anya", + "aorta", + "apache", + "apekool", + "appelaar", + "arganolie", + "argeloos", + "armoede", + "arrenslee", + "artritis", + "arubaan", + "asbak", + "ascii", + "asgrauw", + "asjes", + "asml", + "aspunt", + "asurn", + "asveld", + "aterling", + "atomair", + "atrium", + "atsma", + "atypisch", + "auping", + "aura", + "avifauna", + "axiaal", + "azoriaan", + "azteek", + "azuur", + "bachelor", + "badderen", + "badhotel", + "badmantel", + "badsteden", + "balie", + "ballans", + "balvers", + "bamibal", + "banneling", + "barracuda", + "basaal", + "batelaan", + "batje", + "beambte", + "bedlamp", + "bedwelmd", + "befaamd", + "begierd", + "begraaf", + "behield", + "beijaard", + "bejaagd", + "bekaaid", + "beks", + "bektas", + "belaad", + "belboei", + "belderbos", + "beloerd", + "beluchten", + "bemiddeld", + "benadeeld", + "benijd", + "berechten", + "beroemd", + "besef", + "besseling", + "best", + "betichten", + "bevind", + "bevochten", + "bevraagd", + "bewust", + "bidplaats", + "biefstuk", + "biemans", + "biezen", + "bijbaan", + "bijeenkom", + "bijfiguur", + "bijkaart", + "bijlage", + "bijpaard", + "bijtgaar", + "bijweg", + "bimmel", + "binck", + "bint", + "biobak", + "biotisch", + "biseks", + "bistro", + "bitter", + "bitumen", + "bizar", + "blad", + "bleken", + "blender", + "bleu", + "blief", + "blijven", + "blozen", + "bock", + "boef", + "boei", + "boks", + "bolder", + "bolus", + "bolvormig", + "bomaanval", + "bombarde", + "bomma", + "bomtapijt", + "bookmaker", + "boos", + "borg", + "bosbes", + "boshuizen", + "bosloop", + "botanicus", + "bougie", + "bovag", + "boxspring", + "braad", + "brasem", + "brevet", + "brigade", + "brinckman", + "bruid", + "budget", + "buffel", + "buks", + "bulgaar", + "buma", + "butaan", + "butler", + "buuf", + "cactus", + "cafeetje", + "camcorder", + "cannabis", + "canyon", + "capoeira", + "capsule", + "carkit", + "casanova", + "catalaan", + "ceintuur", + "celdeling", + "celplasma", + "cement", + "censeren", + "ceramisch", + "cerberus", + "cerebraal", + "cesium", + "cirkel", + "citeer", + "civiel", + "claxon", + "clenbuterol", + "clicheren", + "clijsen", + "coalitie", + "coassistentschap", + "coaxiaal", + "codetaal", + "cofinanciering", + "cognac", + "coltrui", + "comfort", + "commandant", + "condensaat", + "confectie", + "conifeer", + "convector", + "copier", + "corfu", + "correct", + "coup", + "couvert", + "creatie", + "credit", + "crematie", + "cricket", + "croupier", + "cruciaal", + "cruijff", + "cuisine", + "culemborg", + "culinair", + "curve", + "cyrano", + "dactylus", + "dading", + "dagblind", + "dagje", + "daglicht", + "dagprijs", + "dagranden", + "dakdekker", + "dakpark", + "dakterras", + "dalgrond", + "dambord", + "damkat", + "damlengte", + "damman", + "danenberg", + "debbie", + "decibel", + "defect", + "deformeer", + "degelijk", + "degradant", + "dejonghe", + "dekken", + "deppen", + "derek", + "derf", + "derhalve", + "detineren", + "devalueer", + "diaken", + "dicht", + "dictaat", + "dief", + "digitaal", + "dijbreuk", + "dijkmans", + "dimbaar", + "dinsdag", + "diode", + "dirigeer", + "disbalans", + "dobermann", + "doenbaar", + "doerak", + "dogma", + "dokhaven", + "dokwerker", + "doling", + "dolphijn", + "dolven", + "dombo", + "dooraderd", + "dopeling", + "doping", + "draderig", + "drama", + "drenkbak", + "dreumes", + "drol", + "drug", + "duaal", + "dublin", + "duplicaat", + "durven", + "dusdanig", + "dutchbat", + "dutje", + "dutten", + "duur", + "duwwerk", + "dwaal", + "dweil", + "dwing", + "dyslexie", + "ecostroom", + "ecotaks", + "educatie", + "eeckhout", + "eede", + "eemland", + "eencellig", + "eeneiig", + "eenruiter", + "eenwinter", + "eerenberg", + "eerrover", + "eersel", + "eetmaal", + "efteling", + "egaal", + "egtberts", + "eickhoff", + "eidooier", + "eiland", + "eind", + "eisden", + "ekster", + "elburg", + "elevatie", + "elfkoppig", + "elfrink", + "elftal", + "elimineer", + "elleboog", + "elma", + "elodie", + "elsa", + "embleem", + "embolie", + "emoe", + "emonds", + "emplooi", + "enduro", + "enfin", + "engageer", + "entourage", + "entstof", + "epileer", + "episch", + "eppo", + "erasmus", + "erboven", + "erebaan", + "erelijst", + "ereronden", + "ereteken", + "erfhuis", + "erfwet", + "erger", + "erica", + "ermitage", + "erna", + "ernie", + "erts", + "ertussen", + "eruitzien", + "ervaar", + "erven", + "erwt", + "esbeek", + "escort", + "esdoorn", + "essing", + "etage", + "eter", + "ethanol", + "ethicus", + "etholoog", + "eufonisch", + "eurocent", + "evacuatie", + "exact", + "examen", + "executant", + "exen", + "exit", + "exogeen", + "exotherm", + "expeditie", + "expletief", + "expres", + "extase", + "extinctie", + "faal", + "faam", + "fabel", + "facultair", + "fakir", + "fakkel", + "faliekant", + "fallisch", + "famke", + "fanclub", + "fase", + "fatsoen", + "fauna", + "federaal", + "feedback", + "feest", + "feilbaar", + "feitelijk", + "felblauw", + "figurante", + "fiod", + "fitheid", + "fixeer", + "flap", + "fleece", + "fleur", + "flexibel", + "flits", + "flos", + "flow", + "fluweel", + "foezelen", + "fokkelman", + "fokpaard", + "fokvee", + "folder", + "follikel", + "folmer", + "folteraar", + "fooi", + "foolen", + "forfait", + "forint", + "formule", + "fornuis", + "fosfaat", + "foxtrot", + "foyer", + "fragiel", + "frater", + "freak", + "freddie", + "fregat", + "freon", + "frijnen", + "fructose", + "frunniken", + "fuiven", + "funshop", + "furieus", + "fysica", + "gadget", + "galder", + "galei", + "galg", + "galvlieg", + "galzuur", + "ganesh", + "gaswet", + "gaza", + "gazelle", + "geaaid", + "gebiecht", + "gebufferd", + "gedijd", + "geef", + "geflanst", + "gefreesd", + "gegaan", + "gegijzeld", + "gegniffel", + "gegraaid", + "gehikt", + "gehobbeld", + "gehucht", + "geiser", + "geiten", + "gekaakt", + "gekheid", + "gekijf", + "gekmakend", + "gekocht", + "gekskap", + "gekte", + "gelubberd", + "gemiddeld", + "geordend", + "gepoederd", + "gepuft", + "gerda", + "gerijpt", + "geseald", + "geshockt", + "gesierd", + "geslaagd", + "gesnaaid", + "getracht", + "getwijfel", + "geuit", + "gevecht", + "gevlagd", + "gewicht", + "gezaagd", + "gezocht", + "ghanees", + "giebelen", + "giechel", + "giepmans", + "gips", + "giraal", + "gistachtig", + "gitaar", + "glaasje", + "gletsjer", + "gleuf", + "glibberen", + "glijbaan", + "gloren", + "gluipen", + "gluren", + "gluur", + "gnoe", + "goddelijk", + "godgans", + "godschalk", + "godzalig", + "goeierd", + "gogme", + "goklustig", + "gokwereld", + "gonggrijp", + "gonje", + "goor", + "grabbel", + "graf", + "graveer", + "grif", + "grolleman", + "grom", + "groosman", + "grubben", + "gruijs", + "grut", + "guacamole", + "guido", + "guppy", + "haazen", + "hachelijk", + "haex", + "haiku", + "hakhout", + "hakken", + "hanegem", + "hans", + "hanteer", + "harrie", + "hazebroek", + "hedonist", + "heil", + "heineken", + "hekhuis", + "hekman", + "helbig", + "helga", + "helwegen", + "hengelaar", + "herkansen", + "hermafrodiet", + "hertaald", + "hiaat", + "hikspoors", + "hitachi", + "hitparade", + "hobo", + "hoeve", + "holocaust", + "hond", + "honnepon", + "hoogacht", + "hotelbed", + "hufter", + "hugo", + "huilbier", + "hulk", + "humus", + "huwbaar", + "huwelijk", + "hype", + "iconisch", + "idema", + "ideogram", + "idolaat", + "ietje", + "ijker", + "ijkheid", + "ijklijn", + "ijkmaat", + "ijkwezen", + "ijmuiden", + "ijsbox", + "ijsdag", + "ijselijk", + "ijskoud", + "ilse", + "immuun", + "impliceer", + "impuls", + "inbijten", + "inbuigen", + "indijken", + "induceer", + "indy", + "infecteer", + "inhaak", + "inkijk", + "inluiden", + "inmijnen", + "inoefenen", + "inpolder", + "inrijden", + "inslaan", + "invitatie", + "inwaaien", + "ionisch", + "isaac", + "isolatie", + "isotherm", + "isra", + "italiaan", + "ivoor", + "jacobs", + "jakob", + "jammen", + "jampot", + "jarig", + "jehova", + "jenever", + "jezus", + "joana", + "jobdienst", + "josua", + "joule", + "juich", + "jurk", + "juut", + "kaas", + "kabelaar", + "kabinet", + "kagenaar", + "kajuit", + "kalebas", + "kalm", + "kanjer", + "kapucijn", + "karregat", + "kart", + "katvanger", + "katwijk", + "kegelaar", + "keiachtig", + "keizer", + "kenletter", + "kerdijk", + "keus", + "kevlar", + "kezen", + "kickback", + "kieviet", + "kijken", + "kikvors", + "kilheid", + "kilobit", + "kilsdonk", + "kipschnitzel", + "kissebis", + "klad", + "klagelijk", + "klak", + "klapbaar", + "klaver", + "klene", + "klets", + "klijnhout", + "klit", + "klok", + "klonen", + "klotefilm", + "kluif", + "klumper", + "klus", + "knabbel", + "knagen", + "knaven", + "kneedbaar", + "knmi", + "knul", + "knus", + "kokhals", + "komiek", + "komkommer", + "kompaan", + "komrij", + "komvormig", + "koning", + "kopbal", + "kopklep", + "kopnagel", + "koppejan", + "koptekst", + "kopwand", + "koraal", + "kosmisch", + "kostbaar", + "kram", + "kraneveld", + "kras", + "kreling", + "krengen", + "kribbe", + "krik", + "kruid", + "krulbol", + "kuijper", + "kuipbank", + "kuit", + "kuiven", + "kutsmoes", + "kuub", + "kwak", + "kwatong", + "kwetsbaar", + "kwezelaar", + "kwijnen", + "kwik", + "kwinkslag", + "kwitantie", + "lading", + "lakbeits", + "lakken", + "laklaag", + "lakmoes", + "lakwijk", + "lamheid", + "lamp", + "lamsbout", + "lapmiddel", + "larve", + "laser", + "latijn", + "latuw", + "lawaai", + "laxeerpil", + "lebberen", + "ledeboer", + "leefbaar", + "leeman", + "lefdoekje", + "lefhebber", + "legboor", + "legsel", + "leguaan", + "leiplaat", + "lekdicht", + "lekrijden", + "leksteen", + "lenen", + "leraar", + "lesbienne", + "leugenaar", + "leut", + "lexicaal", + "lezing", + "lieten", + "liggeld", + "lijdzaam", + "lijk", + "lijmstang", + "lijnschip", + "likdoorn", + "likken", + "liksteen", + "limburg", + "link", + "linoleum", + "lipbloem", + "lipman", + "lispelen", + "lissabon", + "litanie", + "liturgie", + "lochem", + "loempia", + "loesje", + "logheid", + "lonen", + "lonneke", + "loom", + "loos", + "losbaar", + "loslaten", + "losplaats", + "loting", + "lotnummer", + "lots", + "louie", + "lourdes", + "louter", + "lowbudget", + "luijten", + "luikenaar", + "luilak", + "luipaard", + "luizenbos", + "lulkoek", + "lumen", + "lunzen", + "lurven", + "lutjeboer", + "luttel", + "lutz", + "luuk", + "luwte", + "luyendijk", + "lyceum", + "lynx", + "maakbaar", + "magdalena", + "malheid", + "manchet", + "manfred", + "manhaftig", + "mank", + "mantel", + "marion", + "marxist", + "masmeijer", + "massaal", + "matsen", + "matverf", + "matze", + "maude", + "mayonaise", + "mechanica", + "meifeest", + "melodie", + "meppelink", + "midvoor", + "midweeks", + "midzomer", + "miezel", + "mijnraad", + "minus", + "mirck", + "mirte", + "mispakken", + "misraden", + "miswassen", + "mitella", + "moker", + "molecule", + "mombakkes", + "moonen", + "mopperaar", + "moraal", + "morgana", + "mormel", + "mosselaar", + "motregen", + "mouw", + "mufheid", + "mutueel", + "muzelman", + "naaidoos", + "naald", + "nadeel", + "nadruk", + "nagy", + "nahon", + "naima", + "nairobi", + "napalm", + "napels", + "napijn", + "napoleon", + "narigheid", + "narratief", + "naseizoen", + "nasibal", + "navigatie", + "nawijn", + "negatief", + "nekletsel", + "nekwervel", + "neolatijn", + "neonataal", + "neptunus", + "nerd", + "nest", + "neuzelaar", + "nihiliste", + "nijenhuis", + "nijging", + "nijhoff", + "nijl", + "nijptang", + "nippel", + "nokkenas", + "noordam", + "noren", + "normaal", + "nottelman", + "notulant", + "nout", + "nuance", + "nuchter", + "nudorp", + "nulde", + "nullijn", + "nulmeting", + "nunspeet", + "nylon", + "obelisk", + "object", + "oblie", + "obsceen", + "occlusie", + "oceaan", + "ochtend", + "ockhuizen", + "oerdom", + "oergezond", + "oerlaag", + "oester", + "okhuijsen", + "olifant", + "olijfboer", + "omaans", + "ombudsman", + "omdat", + "omdijken", + "omdoen", + "omgebouwd", + "omkeer", + "omkomen", + "ommegaand", + "ommuren", + "omroep", + "omruil", + "omslaan", + "omsmeden", + "omvaar", + "onaardig", + "onedel", + "onenig", + "onheilig", + "onrecht", + "onroerend", + "ontcijfer", + "onthaal", + "ontvallen", + "ontzadeld", + "onzacht", + "onzin", + "onzuiver", + "oogappel", + "ooibos", + "ooievaar", + "ooit", + "oorarts", + "oorhanger", + "oorijzer", + "oorklep", + "oorschelp", + "oorworm", + "oorzaak", + "opdagen", + "opdien", + "opdweilen", + "opel", + "opgebaard", + "opinie", + "opjutten", + "opkijken", + "opklaar", + "opkuisen", + "opkwam", + "opnaaien", + "opossum", + "opsieren", + "opsmeer", + "optreden", + "opvijzel", + "opvlammen", + "opwind", + "oraal", + "orchidee", + "orkest", + "ossuarium", + "ostendorf", + "oublie", + "oudachtig", + "oudbakken", + "oudnoors", + "oudshoorn", + "oudtante", + "oven", + "over", + "oxidant", + "pablo", + "pacht", + "paktafel", + "pakzadel", + "paljas", + "panharing", + "papfles", + "paprika", + "parochie", + "paus", + "pauze", + "paviljoen", + "peek", + "pegel", + "peigeren", + "pekela", + "pendant", + "penibel", + "pepmiddel", + "peptalk", + "periferie", + "perron", + "pessarium", + "peter", + "petfles", + "petgat", + "peuk", + "pfeifer", + "picknick", + "pief", + "pieneman", + "pijlkruid", + "pijnacker", + "pijpelink", + "pikdonker", + "pikeer", + "pilaar", + "pionier", + "pipet", + "piscine", + "pissebed", + "pitchen", + "pixel", + "plamuren", + "plan", + "plausibel", + "plegen", + "plempen", + "pleonasme", + "plezant", + "podoloog", + "pofmouw", + "pokdalig", + "ponywagen", + "popachtig", + "popidool", + "porren", + "positie", + "potten", + "pralen", + "prezen", + "prijzen", + "privaat", + "proef", + "prooi", + "prozawerk", + "pruik", + "prul", + "publiceer", + "puck", + "puilen", + "pukkelig", + "pulveren", + "pupil", + "puppy", + "purmerend", + "pustjens", + "putemmer", + "puzzelaar", + "queenie", + "quiche", + "raam", + "raar", + "raat", + "raes", + "ralf", + "rally", + "ramona", + "ramselaar", + "ranonkel", + "rapen", + "rapunzel", + "rarekiek", + "rarigheid", + "rattenhol", + "ravage", + "reactie", + "recreant", + "redacteur", + "redster", + "reewild", + "regie", + "reijnders", + "rein", + "replica", + "revanche", + "rigide", + "rijbaan", + "rijdansen", + "rijgen", + "rijkdom", + "rijles", + "rijnwijn", + "rijpma", + "rijstafel", + "rijtaak", + "rijzwepen", + "rioleer", + "ripdeal", + "riphagen", + "riskant", + "rits", + "rivaal", + "robbedoes", + "robot", + "rockact", + "rodijk", + "rogier", + "rohypnol", + "rollaag", + "rolpaal", + "roltafel", + "roof", + "roon", + "roppen", + "rosbief", + "rosharig", + "rosielle", + "rotan", + "rotleven", + "rotten", + "rotvaart", + "royaal", + "royeer", + "rubato", + "ruby", + "ruche", + "rudge", + "ruggetje", + "rugnummer", + "rugpijn", + "rugtitel", + "rugzak", + "ruilbaar", + "ruis", + "ruit", + "rukwind", + "rulijs", + "rumoeren", + "rumsdorp", + "rumtaart", + "runnen", + "russchen", + "ruwkruid", + "saboteer", + "saksisch", + "salade", + "salpeter", + "sambabal", + "samsam", + "satelliet", + "satineer", + "saus", + "scampi", + "scarabee", + "scenario", + "schobben", + "schubben", + "scout", + "secessie", + "secondair", + "seculair", + "sediment", + "seeland", + "settelen", + "setwinst", + "sheriff", + "shiatsu", + "siciliaan", + "sidderaal", + "sigma", + "sijben", + "silvana", + "simkaart", + "sinds", + "situatie", + "sjaak", + "sjardijn", + "sjezen", + "sjor", + "skinhead", + "skylab", + "slamixen", + "sleijpen", + "slijkerig", + "slordig", + "slowaak", + "sluieren", + "smadelijk", + "smiecht", + "smoel", + "smos", + "smukken", + "snackcar", + "snavel", + "sneaker", + "sneu", + "snijdbaar", + "snit", + "snorder", + "soapbox", + "soetekouw", + "soigneren", + "sojaboon", + "solo", + "solvabel", + "somber", + "sommatie", + "soort", + "soppen", + "sopraan", + "soundbar", + "spanen", + "spawater", + "spijgat", + "spinaal", + "spionage", + "spiraal", + "spleet", + "splijt", + "spoed", + "sporen", + "spul", + "spuug", + "spuw", + "stalen", + "standaard", + "star", + "stefan", + "stencil", + "stijf", + "stil", + "stip", + "stopdas", + "stoten", + "stoven", + "straat", + "strobbe", + "strubbel", + "stucadoor", + "stuif", + "stukadoor", + "subhoofd", + "subregent", + "sudoku", + "sukade", + "sulfaat", + "surinaams", + "suus", + "syfilis", + "symboliek", + "sympathie", + "synagoge", + "synchroon", + "synergie", + "systeem", + "taanderij", + "tabak", + "tachtig", + "tackelen", + "taiwanees", + "talman", + "tamheid", + "tangaslip", + "taps", + "tarkan", + "tarwe", + "tasman", + "tatjana", + "taxameter", + "teil", + "teisman", + "telbaar", + "telco", + "telganger", + "telstar", + "tenant", + "tepel", + "terzet", + "testament", + "ticket", + "tiesinga", + "tijdelijk", + "tika", + "tiksel", + "tilleman", + "timbaal", + "tinsteen", + "tiplijn", + "tippelaar", + "tjirpen", + "toezeggen", + "tolbaas", + "tolgeld", + "tolhek", + "tolo", + "tolpoort", + "toltarief", + "tolvrij", + "tomaat", + "tondeuse", + "toog", + "tooi", + "toonbaar", + "toos", + "topclub", + "toppen", + "toptalent", + "topvrouw", + "toque", + "torment", + "tornado", + "tosti", + "totdat", + "toucheer", + "toulouse", + "tournedos", + "tout", + "trabant", + "tragedie", + "trailer", + "traject", + "traktaat", + "trauma", + "tray", + "trechter", + "tred", + "tref", + "treur", + "troebel", + "tros", + "trucage", + "truffel", + "tsaar", + "tucht", + "tuenter", + "tuitelig", + "tukje", + "tuktuk", + "tulp", + "tuma", + "tureluurs", + "twijfel", + "twitteren", + "tyfoon", + "typograaf", + "ugandees", + "uiachtig", + "uier", + "uisnipper", + "ultiem", + "unitair", + "uranium", + "urbaan", + "urendag", + "ursula", + "uurcirkel", + "uurglas", + "uzelf", + "vaat", + "vakantie", + "vakleraar", + "valbijl", + "valpartij", + "valreep", + "valuatie", + "vanmiddag", + "vanonder", + "varaan", + "varken", + "vaten", + "veenbes", + "veeteler", + "velgrem", + "vellekoop", + "velvet", + "veneberg", + "venlo", + "vent", + "venusberg", + "venw", + "veredeld", + "verf", + "verhaaf", + "vermaak", + "vernaaid", + "verraad", + "vers", + "veruit", + "verzaagd", + "vetachtig", + "vetlok", + "vetmesten", + "veto", + "vetrek", + "vetstaart", + "vetten", + "veurink", + "viaduct", + "vibrafoon", + "vicariaat", + "vieux", + "vieveen", + "vijfvoud", + "villa", + "vilt", + "vimmetje", + "vindbaar", + "vips", + "virtueel", + "visdieven", + "visee", + "visie", + "vlaag", + "vleugel", + "vmbo", + "vocht", + "voesenek", + "voicemail", + "voip", + "volg", + "vork", + "vorselaar", + "voyeur", + "vracht", + "vrekkig", + "vreten", + "vrije", + "vrozen", + "vrucht", + "vucht", + "vugt", + "vulkaan", + "vulmiddel", + "vulva", + "vuren", + "waas", + "wacht", + "wadvogel", + "wafel", + "waffel", + "walhalla", + "walnoot", + "walraven", + "wals", + "walvis", + "wandaad", + "wanen", + "wanmolen", + "want", + "warklomp", + "warm", + "wasachtig", + "wasteil", + "watt", + "webhandel", + "weblog", + "webpagina", + "webzine", + "wedereis", + "wedstrijd", + "weeda", + "weert", + "wegmaaien", + "wegscheer", + "wekelijks", + "wekken", + "wekroep", + "wektoon", + "weldaad", + "welwater", + "wendbaar", + "wenkbrauw", + "wens", + "wentelaar", + "wervel", + "wesseling", + "wetboek", + "wetmatig", + "whirlpool", + "wijbrands", + "wijdbeens", + "wijk", + "wijnbes", + "wijting", + "wild", + "wimpelen", + "wingebied", + "winplaats", + "winter", + "winzucht", + "wipstaart", + "wisgerhof", + "withaar", + "witmaker", + "wokkel", + "wolf", + "wonenden", + "woning", + "worden", + "worp", + "wortel", + "wrat", + "wrijf", + "wringen", + "yoghurt", + "ypsilon", + "zaaijer", + "zaak", + "zacharias", + "zakelijk", + "zakkam", + "zakwater", + "zalf", + "zalig", + "zaniken", + "zebracode", + "zeeblauw", + "zeef", + "zeegaand", + "zeeuw", + "zege", + "zegje", + "zeil", + "zesbaans", + "zesenhalf", + "zeskantig", + "zesmaal", + "zetbaas", + "zetpil", + "zeulen", + "ziezo", + "zigzag", + "zijaltaar", + "zijbeuk", + "zijlijn", + "zijmuur", + "zijn", + "zijwaarts", + "zijzelf", + "zilt", + "zimmerman", + "zinledig", + "zinnelijk", + "zionist", + "zitdag", + "zitruimte", + "zitzak", + "zoal", + "zodoende", + "zoekbots", + "zoem", + "zoiets", + "zojuist", + "zondaar", + "zotskap", + "zottebol", + "zucht", + "zuivel", + "zulk", + "zult", + "zuster", + "zuur", + "zweedijk", + "zwendel", + "zwepen", + "zwiep", + "zwijmel", + "zworen" +]; diff --git a/lib/bip/monero/mnemonic/words_list/english.dart b/lib/bip/monero/mnemonic/words_list/english.dart new file mode 100644 index 0000000..eb711a1 --- /dev/null +++ b/lib/bip/monero/mnemonic/words_list/english.dart @@ -0,0 +1,1630 @@ +part of 'package:blockchain_utils/bip/monero/mnemonic/words_list/languages.dart'; + +const List _english = [ + "abbey", + "abducts", + "ability", + "ablaze", + "abnormal", + "abort", + "abrasive", + "absorb", + "abyss", + "academy", + "aces", + "aching", + "acidic", + "acoustic", + "acquire", + "across", + "actress", + "acumen", + "adapt", + "addicted", + "adept", + "adhesive", + "adjust", + "adopt", + "adrenalin", + "adult", + "adventure", + "aerial", + "afar", + "affair", + "afield", + "afloat", + "afoot", + "afraid", + "after", + "against", + "agenda", + "aggravate", + "agile", + "aglow", + "agnostic", + "agony", + "agreed", + "ahead", + "aided", + "ailments", + "aimless", + "airport", + "aisle", + "ajar", + "akin", + "alarms", + "album", + "alchemy", + "alerts", + "algebra", + "alkaline", + "alley", + "almost", + "aloof", + "alpine", + "already", + "also", + "altitude", + "alumni", + "always", + "amaze", + "ambush", + "amended", + "amidst", + "ammo", + "amnesty", + "among", + "amply", + "amused", + "anchor", + "android", + "anecdote", + "angled", + "ankle", + "annoyed", + "answers", + "antics", + "anvil", + "anxiety", + "anybody", + "apart", + "apex", + "aphid", + "aplomb", + "apology", + "apply", + "apricot", + "aptitude", + "aquarium", + "arbitrary", + "archer", + "ardent", + "arena", + "argue", + "arises", + "army", + "around", + "arrow", + "arsenic", + "artistic", + "ascend", + "ashtray", + "aside", + "asked", + "asleep", + "aspire", + "assorted", + "asylum", + "athlete", + "atlas", + "atom", + "atrium", + "attire", + "auburn", + "auctions", + "audio", + "august", + "aunt", + "austere", + "autumn", + "avatar", + "avidly", + "avoid", + "awakened", + "awesome", + "awful", + "awkward", + "awning", + "awoken", + "axes", + "axis", + "axle", + "aztec", + "azure", + "baby", + "bacon", + "badge", + "baffles", + "bagpipe", + "bailed", + "bakery", + "balding", + "bamboo", + "banjo", + "baptism", + "basin", + "batch", + "bawled", + "bays", + "because", + "beer", + "befit", + "begun", + "behind", + "being", + "below", + "bemused", + "benches", + "berries", + "bested", + "betting", + "bevel", + "beware", + "beyond", + "bias", + "bicycle", + "bids", + "bifocals", + "biggest", + "bikini", + "bimonthly", + "binocular", + "biology", + "biplane", + "birth", + "biscuit", + "bite", + "biweekly", + "blender", + "blip", + "bluntly", + "boat", + "bobsled", + "bodies", + "bogeys", + "boil", + "boldly", + "bomb", + "border", + "boss", + "both", + "bounced", + "bovine", + "bowling", + "boxes", + "boyfriend", + "broken", + "brunt", + "bubble", + "buckets", + "budget", + "buffet", + "bugs", + "building", + "bulb", + "bumper", + "bunch", + "business", + "butter", + "buying", + "buzzer", + "bygones", + "byline", + "bypass", + "cabin", + "cactus", + "cadets", + "cafe", + "cage", + "cajun", + "cake", + "calamity", + "camp", + "candy", + "casket", + "catch", + "cause", + "cavernous", + "cease", + "cedar", + "ceiling", + "cell", + "cement", + "cent", + "certain", + "chlorine", + "chrome", + "cider", + "cigar", + "cinema", + "circle", + "cistern", + "citadel", + "civilian", + "claim", + "click", + "clue", + "coal", + "cobra", + "cocoa", + "code", + "coexist", + "coffee", + "cogs", + "cohesive", + "coils", + "colony", + "comb", + "cool", + "copy", + "corrode", + "costume", + "cottage", + "cousin", + "cowl", + "criminal", + "cube", + "cucumber", + "cuddled", + "cuffs", + "cuisine", + "cunning", + "cupcake", + "custom", + "cycling", + "cylinder", + "cynical", + "dabbing", + "dads", + "daft", + "dagger", + "daily", + "damp", + "dangerous", + "dapper", + "darted", + "dash", + "dating", + "dauntless", + "dawn", + "daytime", + "dazed", + "debut", + "decay", + "dedicated", + "deepest", + "deftly", + "degrees", + "dehydrate", + "deity", + "dejected", + "delayed", + "demonstrate", + "dented", + "deodorant", + "depth", + "desk", + "devoid", + "dewdrop", + "dexterity", + "dialect", + "dice", + "diet", + "different", + "digit", + "dilute", + "dime", + "dinner", + "diode", + "diplomat", + "directed", + "distance", + "ditch", + "divers", + "dizzy", + "doctor", + "dodge", + "does", + "dogs", + "doing", + "dolphin", + "domestic", + "donuts", + "doorway", + "dormant", + "dosage", + "dotted", + "double", + "dove", + "down", + "dozen", + "dreams", + "drinks", + "drowning", + "drunk", + "drying", + "dual", + "dubbed", + "duckling", + "dude", + "duets", + "duke", + "dullness", + "dummy", + "dunes", + "duplex", + "duration", + "dusted", + "duties", + "dwarf", + "dwelt", + "dwindling", + "dying", + "dynamite", + "dyslexic", + "each", + "eagle", + "earth", + "easy", + "eating", + "eavesdrop", + "eccentric", + "echo", + "eclipse", + "economics", + "ecstatic", + "eden", + "edgy", + "edited", + "educated", + "eels", + "efficient", + "eggs", + "egotistic", + "eight", + "either", + "eject", + "elapse", + "elbow", + "eldest", + "eleven", + "elite", + "elope", + "else", + "eluded", + "emails", + "ember", + "emerge", + "emit", + "emotion", + "empty", + "emulate", + "energy", + "enforce", + "enhanced", + "enigma", + "enjoy", + "enlist", + "enmity", + "enough", + "enraged", + "ensign", + "entrance", + "envy", + "epoxy", + "equip", + "erase", + "erected", + "erosion", + "error", + "eskimos", + "espionage", + "essential", + "estate", + "etched", + "eternal", + "ethics", + "etiquette", + "evaluate", + "evenings", + "evicted", + "evolved", + "examine", + "excess", + "exhale", + "exit", + "exotic", + "exquisite", + "extra", + "exult", + "fabrics", + "factual", + "fading", + "fainted", + "faked", + "fall", + "family", + "fancy", + "farming", + "fatal", + "faulty", + "fawns", + "faxed", + "fazed", + "feast", + "february", + "federal", + "feel", + "feline", + "females", + "fences", + "ferry", + "festival", + "fetches", + "fever", + "fewest", + "fiat", + "fibula", + "fictional", + "fidget", + "fierce", + "fifteen", + "fight", + "films", + "firm", + "fishing", + "fitting", + "five", + "fixate", + "fizzle", + "fleet", + "flippant", + "flying", + "foamy", + "focus", + "foes", + "foggy", + "foiled", + "folding", + "fonts", + "foolish", + "fossil", + "fountain", + "fowls", + "foxes", + "foyer", + "framed", + "friendly", + "frown", + "fruit", + "frying", + "fudge", + "fuel", + "fugitive", + "fully", + "fuming", + "fungal", + "furnished", + "fuselage", + "future", + "fuzzy", + "gables", + "gadget", + "gags", + "gained", + "galaxy", + "gambit", + "gang", + "gasp", + "gather", + "gauze", + "gave", + "gawk", + "gaze", + "gearbox", + "gecko", + "geek", + "gels", + "gemstone", + "general", + "geometry", + "germs", + "gesture", + "getting", + "geyser", + "ghetto", + "ghost", + "giant", + "giddy", + "gifts", + "gigantic", + "gills", + "gimmick", + "ginger", + "girth", + "giving", + "glass", + "gleeful", + "glide", + "gnaw", + "gnome", + "goat", + "goblet", + "godfather", + "goes", + "goggles", + "going", + "goldfish", + "gone", + "goodbye", + "gopher", + "gorilla", + "gossip", + "gotten", + "gourmet", + "governing", + "gown", + "greater", + "grunt", + "guarded", + "guest", + "guide", + "gulp", + "gumball", + "guru", + "gusts", + "gutter", + "guys", + "gymnast", + "gypsy", + "gyrate", + "habitat", + "hacksaw", + "haggled", + "hairy", + "hamburger", + "happens", + "hashing", + "hatchet", + "haunted", + "having", + "hawk", + "haystack", + "hazard", + "hectare", + "hedgehog", + "heels", + "hefty", + "height", + "hemlock", + "hence", + "heron", + "hesitate", + "hexagon", + "hickory", + "hiding", + "highway", + "hijack", + "hiker", + "hills", + "himself", + "hinder", + "hippo", + "hire", + "history", + "hitched", + "hive", + "hoax", + "hobby", + "hockey", + "hoisting", + "hold", + "honked", + "hookup", + "hope", + "hornet", + "hospital", + "hotel", + "hounded", + "hover", + "howls", + "hubcaps", + "huddle", + "huge", + "hull", + "humid", + "hunter", + "hurried", + "husband", + "huts", + "hybrid", + "hydrogen", + "hyper", + "iceberg", + "icing", + "icon", + "identity", + "idiom", + "idled", + "idols", + "igloo", + "ignore", + "iguana", + "illness", + "imagine", + "imbalance", + "imitate", + "impel", + "inactive", + "inbound", + "incur", + "industrial", + "inexact", + "inflamed", + "ingested", + "initiate", + "injury", + "inkling", + "inline", + "inmate", + "innocent", + "inorganic", + "input", + "inquest", + "inroads", + "insult", + "intended", + "inundate", + "invoke", + "inwardly", + "ionic", + "irate", + "iris", + "irony", + "irritate", + "island", + "isolated", + "issued", + "italics", + "itches", + "items", + "itinerary", + "itself", + "ivory", + "jabbed", + "jackets", + "jaded", + "jagged", + "jailed", + "jamming", + "january", + "jargon", + "jaunt", + "javelin", + "jaws", + "jazz", + "jeans", + "jeers", + "jellyfish", + "jeopardy", + "jerseys", + "jester", + "jetting", + "jewels", + "jigsaw", + "jingle", + "jittery", + "jive", + "jobs", + "jockey", + "jogger", + "joining", + "joking", + "jolted", + "jostle", + "journal", + "joyous", + "jubilee", + "judge", + "juggled", + "juicy", + "jukebox", + "july", + "jump", + "junk", + "jury", + "justice", + "juvenile", + "kangaroo", + "karate", + "keep", + "kennel", + "kept", + "kernels", + "kettle", + "keyboard", + "kickoff", + "kidneys", + "king", + "kiosk", + "kisses", + "kitchens", + "kiwi", + "knapsack", + "knee", + "knife", + "knowledge", + "knuckle", + "koala", + "laboratory", + "ladder", + "lagoon", + "lair", + "lakes", + "lamb", + "language", + "laptop", + "large", + "last", + "later", + "launching", + "lava", + "lawsuit", + "layout", + "lazy", + "lectures", + "ledge", + "leech", + "left", + "legion", + "leisure", + "lemon", + "lending", + "leopard", + "lesson", + "lettuce", + "lexicon", + "liar", + "library", + "licks", + "lids", + "lied", + "lifestyle", + "light", + "likewise", + "lilac", + "limits", + "linen", + "lion", + "lipstick", + "liquid", + "listen", + "lively", + "loaded", + "lobster", + "locker", + "lodge", + "lofty", + "logic", + "loincloth", + "long", + "looking", + "lopped", + "lordship", + "losing", + "lottery", + "loudly", + "love", + "lower", + "loyal", + "lucky", + "luggage", + "lukewarm", + "lullaby", + "lumber", + "lunar", + "lurk", + "lush", + "luxury", + "lymph", + "lynx", + "lyrics", + "macro", + "madness", + "magically", + "mailed", + "major", + "makeup", + "malady", + "mammal", + "maps", + "masterful", + "match", + "maul", + "maverick", + "maximum", + "mayor", + "maze", + "meant", + "mechanic", + "medicate", + "meeting", + "megabyte", + "melting", + "memoir", + "menu", + "merger", + "mesh", + "metro", + "mews", + "mice", + "midst", + "mighty", + "mime", + "mirror", + "misery", + "mittens", + "mixture", + "moat", + "mobile", + "mocked", + "mohawk", + "moisture", + "molten", + "moment", + "money", + "moon", + "mops", + "morsel", + "mostly", + "motherly", + "mouth", + "movement", + "mowing", + "much", + "muddy", + "muffin", + "mugged", + "mullet", + "mumble", + "mundane", + "muppet", + "mural", + "musical", + "muzzle", + "myriad", + "mystery", + "myth", + "nabbing", + "nagged", + "nail", + "names", + "nanny", + "napkin", + "narrate", + "nasty", + "natural", + "nautical", + "navy", + "nearby", + "necklace", + "needed", + "negative", + "neither", + "neon", + "nephew", + "nerves", + "nestle", + "network", + "neutral", + "never", + "newt", + "nexus", + "nibs", + "niche", + "niece", + "nifty", + "nightly", + "nimbly", + "nineteen", + "nirvana", + "nitrogen", + "nobody", + "nocturnal", + "nodes", + "noises", + "nomad", + "noodles", + "northern", + "nostril", + "noted", + "nouns", + "novelty", + "nowhere", + "nozzle", + "nuance", + "nucleus", + "nudged", + "nugget", + "nuisance", + "null", + "number", + "nuns", + "nurse", + "nutshell", + "nylon", + "oaks", + "oars", + "oasis", + "oatmeal", + "obedient", + "object", + "obliged", + "obnoxious", + "observant", + "obtains", + "obvious", + "occur", + "ocean", + "october", + "odds", + "odometer", + "offend", + "often", + "oilfield", + "ointment", + "okay", + "older", + "olive", + "olympics", + "omega", + "omission", + "omnibus", + "onboard", + "oncoming", + "oneself", + "ongoing", + "onion", + "online", + "onslaught", + "onto", + "onward", + "oozed", + "opacity", + "opened", + "opposite", + "optical", + "opus", + "orange", + "orbit", + "orchid", + "orders", + "organs", + "origin", + "ornament", + "orphans", + "oscar", + "ostrich", + "otherwise", + "otter", + "ouch", + "ought", + "ounce", + "ourselves", + "oust", + "outbreak", + "oval", + "oven", + "owed", + "owls", + "owner", + "oxidant", + "oxygen", + "oyster", + "ozone", + "pact", + "paddles", + "pager", + "pairing", + "palace", + "pamphlet", + "pancakes", + "paper", + "paradise", + "pastry", + "patio", + "pause", + "pavements", + "pawnshop", + "payment", + "peaches", + "pebbles", + "peculiar", + "pedantic", + "peeled", + "pegs", + "pelican", + "pencil", + "people", + "pepper", + "perfect", + "pests", + "petals", + "phase", + "pheasants", + "phone", + "phrases", + "physics", + "piano", + "picked", + "pierce", + "pigment", + "piloted", + "pimple", + "pinched", + "pioneer", + "pipeline", + "pirate", + "pistons", + "pitched", + "pivot", + "pixels", + "pizza", + "playful", + "pledge", + "pliers", + "plotting", + "plus", + "plywood", + "poaching", + "pockets", + "podcast", + "poetry", + "point", + "poker", + "polar", + "ponies", + "pool", + "popular", + "portents", + "possible", + "potato", + "pouch", + "poverty", + "powder", + "pram", + "present", + "pride", + "problems", + "pruned", + "prying", + "psychic", + "public", + "puck", + "puddle", + "puffin", + "pulp", + "pumpkins", + "punch", + "puppy", + "purged", + "push", + "putty", + "puzzled", + "pylons", + "pyramid", + "python", + "queen", + "quick", + "quote", + "rabbits", + "racetrack", + "radar", + "rafts", + "rage", + "railway", + "raking", + "rally", + "ramped", + "randomly", + "rapid", + "rarest", + "rash", + "rated", + "ravine", + "rays", + "razor", + "react", + "rebel", + "recipe", + "reduce", + "reef", + "refer", + "regular", + "reheat", + "reinvest", + "rejoices", + "rekindle", + "relic", + "remedy", + "renting", + "reorder", + "repent", + "request", + "reruns", + "rest", + "return", + "reunion", + "revamp", + "rewind", + "rhino", + "rhythm", + "ribbon", + "richly", + "ridges", + "rift", + "rigid", + "rims", + "ringing", + "riots", + "ripped", + "rising", + "ritual", + "river", + "roared", + "robot", + "rockets", + "rodent", + "rogue", + "roles", + "romance", + "roomy", + "roped", + "roster", + "rotate", + "rounded", + "rover", + "rowboat", + "royal", + "ruby", + "rudely", + "ruffled", + "rugged", + "ruined", + "ruling", + "rumble", + "runway", + "rural", + "rustled", + "ruthless", + "sabotage", + "sack", + "sadness", + "safety", + "saga", + "sailor", + "sake", + "salads", + "sample", + "sanity", + "sapling", + "sarcasm", + "sash", + "satin", + "saucepan", + "saved", + "sawmill", + "saxophone", + "sayings", + "scamper", + "scenic", + "school", + "science", + "scoop", + "scrub", + "scuba", + "seasons", + "second", + "sedan", + "seeded", + "segments", + "seismic", + "selfish", + "semifinal", + "sensible", + "september", + "sequence", + "serving", + "session", + "setup", + "seventh", + "sewage", + "shackles", + "shelter", + "shipped", + "shocking", + "shrugged", + "shuffled", + "shyness", + "siblings", + "sickness", + "sidekick", + "sieve", + "sifting", + "sighting", + "silk", + "simplest", + "sincerely", + "sipped", + "siren", + "situated", + "sixteen", + "sizes", + "skater", + "skew", + "skirting", + "skulls", + "skydive", + "slackens", + "sleepless", + "slid", + "slower", + "slug", + "smash", + "smelting", + "smidgen", + "smog", + "smuggled", + "snake", + "sneeze", + "sniff", + "snout", + "snug", + "soapy", + "sober", + "soccer", + "soda", + "software", + "soggy", + "soil", + "solved", + "somewhere", + "sonic", + "soothe", + "soprano", + "sorry", + "southern", + "sovereign", + "sowed", + "soya", + "space", + "speedy", + "sphere", + "spiders", + "splendid", + "spout", + "sprig", + "spud", + "spying", + "square", + "stacking", + "stellar", + "stick", + "stockpile", + "strained", + "stunning", + "stylishly", + "subtly", + "succeed", + "suddenly", + "suede", + "suffice", + "sugar", + "suitcase", + "sulking", + "summon", + "sunken", + "superior", + "surfer", + "sushi", + "suture", + "swagger", + "swept", + "swiftly", + "sword", + "swung", + "syllabus", + "symptoms", + "syndrome", + "syringe", + "system", + "taboo", + "tacit", + "tadpoles", + "tagged", + "tail", + "taken", + "talent", + "tamper", + "tanks", + "tapestry", + "tarnished", + "tasked", + "tattoo", + "taunts", + "tavern", + "tawny", + "taxi", + "teardrop", + "technical", + "tedious", + "teeming", + "tell", + "template", + "tender", + "tepid", + "tequila", + "terminal", + "testing", + "tether", + "textbook", + "thaw", + "theatrics", + "thirsty", + "thorn", + "threaten", + "thumbs", + "thwart", + "ticket", + "tidy", + "tiers", + "tiger", + "tilt", + "timber", + "tinted", + "tipsy", + "tirade", + "tissue", + "titans", + "toaster", + "tobacco", + "today", + "toenail", + "toffee", + "together", + "toilet", + "token", + "tolerant", + "tomorrow", + "tonic", + "toolbox", + "topic", + "torch", + "tossed", + "total", + "touchy", + "towel", + "toxic", + "toyed", + "trash", + "trendy", + "tribal", + "trolling", + "truth", + "trying", + "tsunami", + "tubes", + "tucks", + "tudor", + "tuesday", + "tufts", + "tugs", + "tuition", + "tulips", + "tumbling", + "tunnel", + "turnip", + "tusks", + "tutor", + "tuxedo", + "twang", + "tweezers", + "twice", + "twofold", + "tycoon", + "typist", + "tyrant", + "ugly", + "ulcers", + "ultimate", + "umbrella", + "umpire", + "unafraid", + "unbending", + "uncle", + "under", + "uneven", + "unfit", + "ungainly", + "unhappy", + "union", + "unjustly", + "unknown", + "unlikely", + "unmask", + "unnoticed", + "unopened", + "unplugs", + "unquoted", + "unrest", + "unsafe", + "until", + "unusual", + "unveil", + "unwind", + "unzip", + "upbeat", + "upcoming", + "update", + "upgrade", + "uphill", + "upkeep", + "upload", + "upon", + "upper", + "upright", + "upstairs", + "uptight", + "upwards", + "urban", + "urchins", + "urgent", + "usage", + "useful", + "usher", + "using", + "usual", + "utensils", + "utility", + "utmost", + "utopia", + "uttered", + "vacation", + "vague", + "vain", + "value", + "vampire", + "vane", + "vapidly", + "vary", + "vastness", + "vats", + "vaults", + "vector", + "veered", + "vegan", + "vehicle", + "vein", + "velvet", + "venomous", + "verification", + "vessel", + "veteran", + "vexed", + "vials", + "vibrate", + "victim", + "video", + "viewpoint", + "vigilant", + "viking", + "village", + "vinegar", + "violin", + "vipers", + "virtual", + "visited", + "vitals", + "vivid", + "vixen", + "vocal", + "vogue", + "voice", + "volcano", + "vortex", + "voted", + "voucher", + "vowels", + "voyage", + "vulture", + "wade", + "waffle", + "wagtail", + "waist", + "waking", + "wallets", + "wanted", + "warped", + "washing", + "water", + "waveform", + "waxing", + "wayside", + "weavers", + "website", + "wedge", + "weekday", + "weird", + "welders", + "went", + "wept", + "were", + "western", + "wetsuit", + "whale", + "when", + "whipped", + "whole", + "wickets", + "width", + "wield", + "wife", + "wiggle", + "wildly", + "winter", + "wipeout", + "wiring", + "wise", + "withdrawn", + "wives", + "wizard", + "wobbly", + "woes", + "woken", + "wolf", + "womanly", + "wonders", + "woozy", + "worry", + "wounded", + "woven", + "wrap", + "wrist", + "wrong", + "yacht", + "yahoo", + "yanks", + "yard", + "yawning", + "yearbook", + "yellow", + "yesterday", + "yeti", + "yields", + "yodel", + "yoga", + "younger", + "yoyo", + "zapped", + "zeal", + "zebra", + "zero", + "zesty", + "zigzags", + "zinger", + "zippers", + "zodiac", + "zombie", + "zones", + "zoom", +]; diff --git a/lib/bip/monero/mnemonic/words_list/french.dart b/lib/bip/monero/mnemonic/words_list/french.dart new file mode 100644 index 0000000..4dc0f84 --- /dev/null +++ b/lib/bip/monero/mnemonic/words_list/french.dart @@ -0,0 +1,1630 @@ +part of 'package:blockchain_utils/bip/monero/mnemonic/words_list/languages.dart'; + +const List _french = [ + "abandon", + "abattre", + "aboi", + "abolir", + "aborder", + "abri", + "absence", + "absolu", + "abuser", + "acacia", + "acajou", + "accent", + "accord", + "accrocher", + "accuser", + "acerbe", + "achat", + "acheter", + "acide", + "acier", + "acquis", + "acte", + "action", + "adage", + "adepte", + "adieu", + "admettre", + "admis", + "adorer", + "adresser", + "aduler", + "affaire", + "affirmer", + "afin", + "agacer", + "agent", + "agir", + "agiter", + "agonie", + "agrafe", + "agrume", + "aider", + "aigle", + "aigre", + "aile", + "ailleurs", + "aimant", + "aimer", + "ainsi", + "aise", + "ajouter", + "alarme", + "album", + "alcool", + "alerte", + "algue", + "alibi", + "aller", + "allumer", + "alors", + "amande", + "amener", + "amie", + "amorcer", + "amour", + "ample", + "amuser", + "ananas", + "ancien", + "anglais", + "angoisse", + "animal", + "anneau", + "annoncer", + "apercevoir", + "apparence", + "appel", + "apporter", + "apprendre", + "appuyer", + "arbre", + "arcade", + "arceau", + "arche", + "ardeur", + "argent", + "argile", + "aride", + "arme", + "armure", + "arracher", + "arriver", + "article", + "asile", + "aspect", + "assaut", + "assez", + "assister", + "assurer", + "astre", + "astuce", + "atlas", + "atroce", + "attacher", + "attente", + "attirer", + "aube", + "aucun", + "audace", + "auparavant", + "auquel", + "aurore", + "aussi", + "autant", + "auteur", + "autoroute", + "autre", + "aval", + "avant", + "avec", + "avenir", + "averse", + "aveu", + "avide", + "avion", + "avis", + "avoir", + "avouer", + "avril", + "azote", + "azur", + "badge", + "bagage", + "bague", + "bain", + "baisser", + "balai", + "balcon", + "balise", + "balle", + "bambou", + "banane", + "banc", + "bandage", + "banjo", + "banlieue", + "bannir", + "banque", + "baobab", + "barbe", + "barque", + "barrer", + "bassine", + "bataille", + "bateau", + "battre", + "baver", + "bavoir", + "bazar", + "beau", + "beige", + "berger", + "besoin", + "beurre", + "biais", + "biceps", + "bidule", + "bien", + "bijou", + "bilan", + "billet", + "blanc", + "blason", + "bleu", + "bloc", + "blond", + "bocal", + "boire", + "boiserie", + "boiter", + "bonbon", + "bondir", + "bonheur", + "bordure", + "borgne", + "borner", + "bosse", + "bouche", + "bouder", + "bouger", + "boule", + "bourse", + "bout", + "boxe", + "brader", + "braise", + "branche", + "braquer", + "bras", + "brave", + "brebis", + "brevet", + "brider", + "briller", + "brin", + "brique", + "briser", + "broche", + "broder", + "bronze", + "brosser", + "brouter", + "bruit", + "brute", + "budget", + "buffet", + "bulle", + "bureau", + "buriner", + "buste", + "buter", + "butiner", + "cabas", + "cabinet", + "cabri", + "cacao", + "cacher", + "cadeau", + "cadre", + "cage", + "caisse", + "caler", + "calme", + "camarade", + "camion", + "campagne", + "canal", + "canif", + "capable", + "capot", + "carat", + "caresser", + "carie", + "carpe", + "cartel", + "casier", + "casque", + "casserole", + "cause", + "cavale", + "cave", + "ceci", + "cela", + "celui", + "cendre", + "cent", + "cependant", + "cercle", + "cerise", + "cerner", + "certes", + "cerveau", + "cesser", + "chacun", + "chair", + "chaleur", + "chamois", + "chanson", + "chaque", + "charge", + "chasse", + "chat", + "chaud", + "chef", + "chemin", + "cheveu", + "chez", + "chicane", + "chien", + "chiffre", + "chiner", + "chiot", + "chlore", + "choc", + "choix", + "chose", + "chou", + "chute", + "cibler", + "cidre", + "ciel", + "cigale", + "cinq", + "cintre", + "cirage", + "cirque", + "ciseau", + "citation", + "citer", + "citron", + "civet", + "clairon", + "clan", + "classe", + "clavier", + "clef", + "climat", + "cloche", + "cloner", + "clore", + "clos", + "clou", + "club", + "cobra", + "cocon", + "coiffer", + "coin", + "colline", + "colon", + "combat", + "comme", + "compte", + "conclure", + "conduire", + "confier", + "connu", + "conseil", + "contre", + "convenir", + "copier", + "cordial", + "cornet", + "corps", + "cosmos", + "coton", + "couche", + "coude", + "couler", + "coupure", + "cour", + "couteau", + "couvrir", + "crabe", + "crainte", + "crampe", + "cran", + "creuser", + "crever", + "crier", + "crime", + "crin", + "crise", + "crochet", + "croix", + "cruel", + "cuisine", + "cuite", + "culot", + "culte", + "cumul", + "cure", + "curieux", + "cuve", + "dame", + "danger", + "dans", + "davantage", + "debout", + "dedans", + "dehors", + "delta", + "demain", + "demeurer", + "demi", + "dense", + "dent", + "depuis", + "dernier", + "descendre", + "dessus", + "destin", + "dette", + "deuil", + "deux", + "devant", + "devenir", + "devin", + "devoir", + "dicton", + "dieu", + "difficile", + "digestion", + "digue", + "diluer", + "dimanche", + "dinde", + "diode", + "dire", + "diriger", + "discours", + "disposer", + "distance", + "divan", + "divers", + "docile", + "docteur", + "dodu", + "dogme", + "doigt", + "dominer", + "donation", + "donjon", + "donner", + "dopage", + "dorer", + "dormir", + "doseur", + "douane", + "double", + "douche", + "douleur", + "doute", + "doux", + "douzaine", + "draguer", + "drame", + "drap", + "dresser", + "droit", + "duel", + "dune", + "duper", + "durant", + "durcir", + "durer", + "eaux", + "effacer", + "effet", + "effort", + "effrayant", + "elle", + "embrasser", + "emmener", + "emparer", + "empire", + "employer", + "emporter", + "enclos", + "encore", + "endive", + "endormir", + "endroit", + "enduit", + "enfant", + "enfermer", + "enfin", + "enfler", + "enfoncer", + "enfuir", + "engager", + "engin", + "enjeu", + "enlever", + "ennemi", + "ennui", + "ensemble", + "ensuite", + "entamer", + "entendre", + "entier", + "entourer", + "entre", + "envelopper", + "envie", + "envoyer", + "erreur", + "escalier", + "espace", + "espoir", + "esprit", + "essai", + "essor", + "essuyer", + "estimer", + "exact", + "examiner", + "excuse", + "exemple", + "exiger", + "exil", + "exister", + "exode", + "expliquer", + "exposer", + "exprimer", + "extase", + "fable", + "facette", + "facile", + "fade", + "faible", + "faim", + "faire", + "fait", + "falloir", + "famille", + "faner", + "farce", + "farine", + "fatigue", + "faucon", + "faune", + "faute", + "faux", + "faveur", + "favori", + "faxer", + "feinter", + "femme", + "fendre", + "fente", + "ferme", + "festin", + "feuille", + "feutre", + "fiable", + "fibre", + "ficher", + "fier", + "figer", + "figure", + "filet", + "fille", + "filmer", + "fils", + "filtre", + "final", + "finesse", + "finir", + "fiole", + "firme", + "fixe", + "flacon", + "flair", + "flamme", + "flan", + "flaque", + "fleur", + "flocon", + "flore", + "flot", + "flou", + "fluide", + "fluor", + "flux", + "focus", + "foin", + "foire", + "foison", + "folie", + "fonction", + "fondre", + "fonte", + "force", + "forer", + "forger", + "forme", + "fort", + "fosse", + "fouet", + "fouine", + "foule", + "four", + "foyer", + "frais", + "franc", + "frapper", + "freiner", + "frimer", + "friser", + "frite", + "froid", + "froncer", + "fruit", + "fugue", + "fuir", + "fuite", + "fumer", + "fureur", + "furieux", + "fuser", + "fusil", + "futile", + "futur", + "gagner", + "gain", + "gala", + "galet", + "galop", + "gamme", + "gant", + "garage", + "garde", + "garer", + "gauche", + "gaufre", + "gaule", + "gaver", + "gazon", + "geler", + "genou", + "genre", + "gens", + "gercer", + "germer", + "geste", + "gibier", + "gicler", + "gilet", + "girafe", + "givre", + "glace", + "glisser", + "globe", + "gloire", + "gluant", + "gober", + "golf", + "gommer", + "gorge", + "gosier", + "goutte", + "grain", + "gramme", + "grand", + "gras", + "grave", + "gredin", + "griffure", + "griller", + "gris", + "gronder", + "gros", + "grotte", + "groupe", + "grue", + "guerrier", + "guetter", + "guider", + "guise", + "habiter", + "hache", + "haie", + "haine", + "halte", + "hamac", + "hanche", + "hangar", + "hanter", + "haras", + "hareng", + "harpe", + "hasard", + "hausse", + "haut", + "havre", + "herbe", + "heure", + "hibou", + "hier", + "histoire", + "hiver", + "hochet", + "homme", + "honneur", + "honte", + "horde", + "horizon", + "hormone", + "houle", + "housse", + "hublot", + "huile", + "huit", + "humain", + "humble", + "humide", + "humour", + "hurler", + "idole", + "igloo", + "ignorer", + "illusion", + "image", + "immense", + "immobile", + "imposer", + "impression", + "incapable", + "inconnu", + "index", + "indiquer", + "infime", + "injure", + "inox", + "inspirer", + "instant", + "intention", + "intime", + "inutile", + "inventer", + "inviter", + "iode", + "iris", + "issue", + "ivre", + "jade", + "jadis", + "jamais", + "jambe", + "janvier", + "jardin", + "jauge", + "jaunisse", + "jeter", + "jeton", + "jeudi", + "jeune", + "joie", + "joindre", + "joli", + "joueur", + "journal", + "judo", + "juge", + "juillet", + "juin", + "jument", + "jungle", + "jupe", + "jupon", + "jurer", + "juron", + "jury", + "jusque", + "juste", + "kayak", + "ketchup", + "kilo", + "kiwi", + "koala", + "label", + "lacet", + "lacune", + "laine", + "laisse", + "lait", + "lame", + "lancer", + "lande", + "laque", + "lard", + "largeur", + "larme", + "larve", + "lasso", + "laver", + "lendemain", + "lentement", + "lequel", + "lettre", + "leur", + "lever", + "levure", + "liane", + "libre", + "lien", + "lier", + "lieutenant", + "ligne", + "ligoter", + "liguer", + "limace", + "limer", + "limite", + "lingot", + "lion", + "lire", + "lisser", + "litre", + "livre", + "lobe", + "local", + "logis", + "loin", + "loisir", + "long", + "loque", + "lors", + "lotus", + "louer", + "loup", + "lourd", + "louve", + "loyer", + "lubie", + "lucide", + "lueur", + "luge", + "luire", + "lundi", + "lune", + "lustre", + "lutin", + "lutte", + "luxe", + "machine", + "madame", + "magie", + "magnifique", + "magot", + "maigre", + "main", + "mairie", + "maison", + "malade", + "malheur", + "malin", + "manche", + "manger", + "manier", + "manoir", + "manquer", + "marche", + "mardi", + "marge", + "mariage", + "marquer", + "mars", + "masque", + "masse", + "matin", + "mauvais", + "meilleur", + "melon", + "membre", + "menacer", + "mener", + "mensonge", + "mentir", + "menu", + "merci", + "merlu", + "mesure", + "mettre", + "meuble", + "meunier", + "meute", + "miche", + "micro", + "midi", + "miel", + "miette", + "mieux", + "milieu", + "mille", + "mimer", + "mince", + "mineur", + "ministre", + "minute", + "mirage", + "miroir", + "miser", + "mite", + "mixte", + "mobile", + "mode", + "module", + "moins", + "mois", + "moment", + "momie", + "monde", + "monsieur", + "monter", + "moquer", + "moral", + "morceau", + "mordre", + "morose", + "morse", + "mortier", + "morue", + "motif", + "motte", + "moudre", + "moule", + "mourir", + "mousse", + "mouton", + "mouvement", + "moyen", + "muer", + "muette", + "mugir", + "muguet", + "mulot", + "multiple", + "munir", + "muret", + "muse", + "musique", + "muter", + "nacre", + "nager", + "nain", + "naissance", + "narine", + "narrer", + "naseau", + "nasse", + "nation", + "nature", + "naval", + "navet", + "naviguer", + "navrer", + "neige", + "nerf", + "nerveux", + "neuf", + "neutre", + "neuve", + "neveu", + "niche", + "nier", + "niveau", + "noble", + "noce", + "nocif", + "noir", + "nomade", + "nombre", + "nommer", + "nord", + "norme", + "notaire", + "notice", + "notre", + "nouer", + "nougat", + "nourrir", + "nous", + "nouveau", + "novice", + "noyade", + "noyer", + "nuage", + "nuance", + "nuire", + "nuit", + "nulle", + "nuque", + "oasis", + "objet", + "obliger", + "obscur", + "observer", + "obtenir", + "obus", + "occasion", + "occuper", + "ocre", + "octet", + "odeur", + "odorat", + "offense", + "officier", + "offrir", + "ogive", + "oiseau", + "olive", + "ombre", + "onctueux", + "onduler", + "ongle", + "onze", + "opter", + "option", + "orageux", + "oral", + "orange", + "orbite", + "ordinaire", + "ordre", + "oreille", + "organe", + "orgie", + "orgueil", + "orient", + "origan", + "orner", + "orteil", + "ortie", + "oser", + "osselet", + "otage", + "otarie", + "ouate", + "oublier", + "ouest", + "ours", + "outil", + "outre", + "ouvert", + "ouvrir", + "ovale", + "ozone", + "pacte", + "page", + "paille", + "pain", + "paire", + "paix", + "palace", + "palissade", + "palmier", + "palpiter", + "panda", + "panneau", + "papa", + "papier", + "paquet", + "parc", + "pardi", + "parfois", + "parler", + "parmi", + "parole", + "partir", + "parvenir", + "passer", + "pastel", + "patin", + "patron", + "paume", + "pause", + "pauvre", + "paver", + "pavot", + "payer", + "pays", + "peau", + "peigne", + "peinture", + "pelage", + "pelote", + "pencher", + "pendre", + "penser", + "pente", + "percer", + "perdu", + "perle", + "permettre", + "personne", + "perte", + "peser", + "pesticide", + "petit", + "peuple", + "peur", + "phase", + "photo", + "phrase", + "piano", + "pied", + "pierre", + "pieu", + "pile", + "pilier", + "pilote", + "pilule", + "piment", + "pincer", + "pinson", + "pinte", + "pion", + "piquer", + "pirate", + "pire", + "piste", + "piton", + "pitre", + "pivot", + "pizza", + "placer", + "plage", + "plaire", + "plan", + "plaque", + "plat", + "plein", + "pleurer", + "pliage", + "plier", + "plonger", + "plot", + "pluie", + "plume", + "plus", + "pneu", + "poche", + "podium", + "poids", + "poil", + "point", + "poire", + "poison", + "poitrine", + "poivre", + "police", + "pollen", + "pomme", + "pompier", + "poncer", + "pondre", + "pont", + "portion", + "poser", + "position", + "possible", + "poste", + "potage", + "potin", + "pouce", + "poudre", + "poulet", + "poumon", + "poupe", + "pour", + "pousser", + "poutre", + "pouvoir", + "prairie", + "premier", + "prendre", + "presque", + "preuve", + "prier", + "primeur", + "prince", + "prison", + "priver", + "prix", + "prochain", + "produire", + "profond", + "proie", + "projet", + "promener", + "prononcer", + "propre", + "prose", + "prouver", + "prune", + "public", + "puce", + "pudeur", + "puiser", + "pull", + "pulpe", + "puma", + "punir", + "purge", + "putois", + "quand", + "quartier", + "quasi", + "quatre", + "quel", + "question", + "queue", + "quiche", + "quille", + "quinze", + "quitter", + "quoi", + "rabais", + "raboter", + "race", + "racheter", + "racine", + "racler", + "raconter", + "radar", + "radio", + "rafale", + "rage", + "ragot", + "raideur", + "raie", + "rail", + "raison", + "ramasser", + "ramener", + "rampe", + "rance", + "rang", + "rapace", + "rapide", + "rapport", + "rarement", + "rasage", + "raser", + "rasoir", + "rassurer", + "rater", + "ratio", + "rature", + "ravage", + "ravir", + "rayer", + "rayon", + "rebond", + "recevoir", + "recherche", + "record", + "reculer", + "redevenir", + "refuser", + "regard", + "regretter", + "rein", + "rejeter", + "rejoindre", + "relation", + "relever", + "religion", + "remarquer", + "remettre", + "remise", + "remonter", + "remplir", + "remuer", + "rencontre", + "rendre", + "renier", + "renoncer", + "rentrer", + "renverser", + "repas", + "repli", + "reposer", + "reproche", + "requin", + "respect", + "ressembler", + "reste", + "retard", + "retenir", + "retirer", + "retour", + "retrouver", + "revenir", + "revoir", + "revue", + "rhume", + "ricaner", + "riche", + "rideau", + "ridicule", + "rien", + "rigide", + "rincer", + "rire", + "risquer", + "rituel", + "rivage", + "rive", + "robe", + "robot", + "robuste", + "rocade", + "roche", + "rodeur", + "rogner", + "roman", + "rompre", + "ronce", + "rondeur", + "ronger", + "roque", + "rose", + "rosir", + "rotation", + "rotule", + "roue", + "rouge", + "rouler", + "route", + "ruban", + "rubis", + "ruche", + "rude", + "ruelle", + "ruer", + "rugby", + "rugir", + "ruine", + "rumeur", + "rural", + "ruse", + "rustre", + "sable", + "sabot", + "sabre", + "sacre", + "sage", + "saint", + "saisir", + "salade", + "salive", + "salle", + "salon", + "salto", + "salut", + "salve", + "samba", + "sandale", + "sanguin", + "sapin", + "sarcasme", + "satisfaire", + "sauce", + "sauf", + "sauge", + "saule", + "sauna", + "sauter", + "sauver", + "savoir", + "science", + "scoop", + "score", + "second", + "secret", + "secte", + "seigneur", + "sein", + "seize", + "selle", + "selon", + "semaine", + "sembler", + "semer", + "semis", + "sensuel", + "sentir", + "sept", + "serpe", + "serrer", + "sertir", + "service", + "seuil", + "seulement", + "short", + "sien", + "sigle", + "signal", + "silence", + "silo", + "simple", + "singe", + "sinon", + "sinus", + "sioux", + "sirop", + "site", + "situation", + "skier", + "snob", + "sobre", + "social", + "socle", + "sodium", + "soigner", + "soir", + "soixante", + "soja", + "solaire", + "soldat", + "soleil", + "solide", + "solo", + "solvant", + "sombre", + "somme", + "somnoler", + "sondage", + "songeur", + "sonner", + "sorte", + "sosie", + "sottise", + "souci", + "soudain", + "souffrir", + "souhaiter", + "soulever", + "soumettre", + "soupe", + "sourd", + "soustraire", + "soutenir", + "souvent", + "soyeux", + "spectacle", + "sport", + "stade", + "stagiaire", + "stand", + "star", + "statue", + "stock", + "stop", + "store", + "style", + "suave", + "subir", + "sucre", + "suer", + "suffire", + "suie", + "suite", + "suivre", + "sujet", + "sulfite", + "supposer", + "surf", + "surprendre", + "surtout", + "surveiller", + "tabac", + "table", + "tabou", + "tache", + "tacler", + "tacot", + "tact", + "taie", + "taille", + "taire", + "talon", + "talus", + "tandis", + "tango", + "tanin", + "tant", + "taper", + "tapis", + "tard", + "tarif", + "tarot", + "tarte", + "tasse", + "taureau", + "taux", + "taverne", + "taxer", + "taxi", + "tellement", + "temple", + "tendre", + "tenir", + "tenter", + "tenu", + "terme", + "ternir", + "terre", + "test", + "texte", + "thym", + "tibia", + "tiers", + "tige", + "tipi", + "tique", + "tirer", + "tissu", + "titre", + "toast", + "toge", + "toile", + "toiser", + "toiture", + "tomber", + "tome", + "tonne", + "tonte", + "toque", + "torse", + "tortue", + "totem", + "toucher", + "toujours", + "tour", + "tousser", + "tout", + "toux", + "trace", + "train", + "trame", + "tranquille", + "travail", + "trembler", + "trente", + "tribu", + "trier", + "trio", + "tripe", + "triste", + "troc", + "trois", + "tromper", + "tronc", + "trop", + "trotter", + "trouer", + "truc", + "truite", + "tuba", + "tuer", + "tuile", + "turbo", + "tutu", + "tuyau", + "type", + "union", + "unique", + "unir", + "unisson", + "untel", + "urne", + "usage", + "user", + "usiner", + "usure", + "utile", + "vache", + "vague", + "vaincre", + "valeur", + "valoir", + "valser", + "valve", + "vampire", + "vaseux", + "vaste", + "veau", + "veille", + "veine", + "velours", + "velu", + "vendre", + "venir", + "vent", + "venue", + "verbe", + "verdict", + "version", + "vertige", + "verve", + "veste", + "veto", + "vexer", + "vice", + "victime", + "vide", + "vieil", + "vieux", + "vigie", + "vigne", + "ville", + "vingt", + "violent", + "virer", + "virus", + "visage", + "viser", + "visite", + "visuel", + "vitamine", + "vitrine", + "vivant", + "vivre", + "vocal", + "vodka", + "vogue", + "voici", + "voile", + "voir", + "voisin", + "voiture", + "volaille", + "volcan", + "voler", + "volt", + "votant", + "votre", + "vouer", + "vouloir", + "vous", + "voyage", + "voyou", + "vrac", + "vrai", + "yacht", + "yeti", + "yeux", + "yoga", + "zeste", + "zinc", + "zone", + "zoom" +]; diff --git a/lib/bip/monero/mnemonic/words_list/german.dart b/lib/bip/monero/mnemonic/words_list/german.dart new file mode 100644 index 0000000..db7042f --- /dev/null +++ b/lib/bip/monero/mnemonic/words_list/german.dart @@ -0,0 +1,1630 @@ +part of 'package:blockchain_utils/bip/monero/mnemonic/words_list/languages.dart'; + +const List _german = [ + "Abakus", + "Abart", + "abbilden", + "Abbruch", + "Abdrift", + "Abendrot", + "Abfahrt", + "abfeuern", + "Abflug", + "abfragen", + "Abglanz", + "abhärten", + "abheben", + "Abhilfe", + "Abitur", + "Abkehr", + "Ablauf", + "ablecken", + "Ablösung", + "Abnehmer", + "abnutzen", + "Abonnent", + "Abrasion", + "Abrede", + "abrüsten", + "Absicht", + "Absprung", + "Abstand", + "absuchen", + "Abteil", + "Abundanz", + "abwarten", + "Abwurf", + "Abzug", + "Achse", + "Achtung", + "Acker", + "Aderlass", + "Adler", + "Admiral", + "Adresse", + "Affe", + "Affront", + "Afrika", + "Aggregat", + "Agilität", + "ähneln", + "Ahnung", + "Ahorn", + "Akazie", + "Akkord", + "Akrobat", + "Aktfoto", + "Aktivist", + "Albatros", + "Alchimie", + "Alemanne", + "Alibi", + "Alkohol", + "Allee", + "Allüre", + "Almosen", + "Almweide", + "Aloe", + "Alpaka", + "Alpental", + "Alphabet", + "Alpinist", + "Alraune", + "Altbier", + "Alter", + "Altflöte", + "Altruist", + "Alublech", + "Aludose", + "Amateur", + "Amazonas", + "Ameise", + "Amnesie", + "Amok", + "Ampel", + "Amphibie", + "Ampulle", + "Amsel", + "Amulett", + "Anakonda", + "Analogie", + "Ananas", + "Anarchie", + "Anatomie", + "Anba", + "Anbeginn", + "anbieten", + "Anblick", + "ändern", + "andocken", + "Andrang", + "anecken", + "Anflug", + "Anfrage", + "Anführer", + "Angebot", + "Angler", + "Anhalter", + "Anhöhe", + "Animator", + "Anis", + "Anker", + "ankleben", + "Ankunft", + "Anlage", + "anlocken", + "Anmut", + "Annahme", + "Anomalie", + "Anonymus", + "Anorak", + "anpeilen", + "Anrecht", + "Anruf", + "Ansage", + "Anschein", + "Ansicht", + "Ansporn", + "Anteil", + "Antlitz", + "Antrag", + "Antwort", + "Anwohner", + "Aorta", + "Apfel", + "Appetit", + "Applaus", + "Aquarium", + "Arbeit", + "Arche", + "Argument", + "Arktis", + "Armband", + "Aroma", + "Asche", + "Askese", + "Asphalt", + "Asteroid", + "Ästhetik", + "Astronom", + "Atelier", + "Athlet", + "Atlantik", + "Atmung", + "Audienz", + "aufatmen", + "Auffahrt", + "aufholen", + "aufregen", + "Aufsatz", + "Auftritt", + "Aufwand", + "Augapfel", + "Auktion", + "Ausbruch", + "Ausflug", + "Ausgabe", + "Aushilfe", + "Ausland", + "Ausnahme", + "Aussage", + "Autobahn", + "Avocado", + "Axthieb", + "Bach", + "backen", + "Badesee", + "Bahnhof", + "Balance", + "Balkon", + "Ballett", + "Balsam", + "Banane", + "Bandage", + "Bankett", + "Barbar", + "Barde", + "Barett", + "Bargeld", + "Barkasse", + "Barriere", + "Bart", + "Bass", + "Bastler", + "Batterie", + "Bauch", + "Bauer", + "Bauholz", + "Baujahr", + "Baum", + "Baustahl", + "Bauteil", + "Bauweise", + "Bazar", + "beachten", + "Beatmung", + "beben", + "Becher", + "Becken", + "bedanken", + "beeilen", + "beenden", + "Beere", + "befinden", + "Befreier", + "Begabung", + "Begierde", + "begrüßen", + "Beiboot", + "Beichte", + "Beifall", + "Beigabe", + "Beil", + "Beispiel", + "Beitrag", + "beizen", + "bekommen", + "beladen", + "Beleg", + "bellen", + "belohnen", + "Bemalung", + "Bengel", + "Benutzer", + "Benzin", + "beraten", + "Bereich", + "Bergluft", + "Bericht", + "Bescheid", + "Besitz", + "besorgen", + "Bestand", + "Besuch", + "betanken", + "beten", + "betören", + "Bett", + "Beule", + "Beute", + "Bewegung", + "bewirken", + "Bewohner", + "bezahlen", + "Bezug", + "biegen", + "Biene", + "Bierzelt", + "bieten", + "Bikini", + "Bildung", + "Billard", + "binden", + "Biobauer", + "Biologe", + "Bionik", + "Biotop", + "Birke", + "Bison", + "Bitte", + "Biwak", + "Bizeps", + "blasen", + "Blatt", + "Blauwal", + "Blende", + "Blick", + "Blitz", + "Blockade", + "Blödelei", + "Blondine", + "Blues", + "Blume", + "Blut", + "Bodensee", + "Bogen", + "Boje", + "Bollwerk", + "Bonbon", + "Bonus", + "Boot", + "Bordarzt", + "Börse", + "Böschung", + "Boudoir", + "Boxkampf", + "Boykott", + "Brahms", + "Brandung", + "Brauerei", + "Brecher", + "Breitaxt", + "Bremse", + "brennen", + "Brett", + "Brief", + "Brigade", + "Brillanz", + "bringen", + "brodeln", + "Brosche", + "Brötchen", + "Brücke", + "Brunnen", + "Brüste", + "Brutofen", + "Buch", + "Büffel", + "Bugwelle", + "Bühne", + "Buletten", + "Bullauge", + "Bumerang", + "bummeln", + "Buntglas", + "Bürde", + "Burgherr", + "Bursche", + "Busen", + "Buslinie", + "Bussard", + "Butangas", + "Butter", + "Cabrio", + "campen", + "Captain", + "Cartoon", + "Cello", + "Chalet", + "Charisma", + "Chefarzt", + "Chiffon", + "Chipsatz", + "Chirurg", + "Chor", + "Chronik", + "Chuzpe", + "Clubhaus", + "Cockpit", + "Codewort", + "Cognac", + "Coladose", + "Computer", + "Coupon", + "Cousin", + "Cracking", + "Crash", + "Curry", + "Dach", + "Dackel", + "daddeln", + "daliegen", + "Dame", + "Dammba", + "Dämon", + "Dampflok", + "Dank", + "Darm", + "Datei", + "Datsche", + "Datteln", + "Datum", + "Dauer", + "Daunen", + "Deckel", + "Decoder", + "Defekt", + "Degen", + "Dehnung", + "Deiche", + "Dekade", + "Dekor", + "Delfin", + "Demut", + "denken", + "Deponie", + "Design", + "Desktop", + "Dessert", + "Detail", + "Detektiv", + "Dezibel", + "Diadem", + "Diagnose", + "Dialekt", + "Diamant", + "Dichter", + "Dickicht", + "Diesel", + "Diktat", + "Diplom", + "Direktor", + "Dirne", + "Diskurs", + "Distanz", + "Docht", + "Dohle", + "Dolch", + "Domäne", + "Donner", + "Dorade", + "Dorf", + "Dörrobst", + "Dorsch", + "Dossier", + "Dozent", + "Drachen", + "Draht", + "Drama", + "Drang", + "Drehbuch", + "Dreieck", + "Dressur", + "Drittel", + "Drossel", + "Druck", + "Duell", + "Duft", + "Düne", + "Dünung", + "dürfen", + "Duschbad", + "Düsenjet", + "Dynamik", + "Ebbe", + "Echolot", + "Echse", + "Eckball", + "Edding", + "Edelweiß", + "Eden", + "Edition", + "Efe", + "Effekte", + "Egoismus", + "Ehre", + "Eiablage", + "Eiche", + "Eidechse", + "Eidotter", + "Eierkopf", + "Eigelb", + "Eiland", + "Eilbote", + "Eimer", + "einatmen", + "Einband", + "Eindruck", + "Einfall", + "Eingang", + "Einkauf", + "einladen", + "Einöde", + "Einrad", + "Eintopf", + "Einwurf", + "Einzug", + "Eisbär", + "Eisen", + "Eishöhle", + "Eismeer", + "Eiweiß", + "Ekstase", + "Elan", + "Elch", + "Elefant", + "Eleganz", + "Element", + "Elfe", + "Elite", + "Elixier", + "Ellbogen", + "Eloquenz", + "Emigrant", + "Emission", + "Emotion", + "Empathie", + "Empfang", + "Endzeit", + "Energie", + "Engpass", + "Enkel", + "Enklave", + "Ente", + "entheben", + "Entität", + "entladen", + "Entwurf", + "Episode", + "Epoche", + "erachten", + "Erbauer", + "erblühen", + "Erdbeere", + "Erde", + "Erdgas", + "Erdkunde", + "Erdnuss", + "Erdöl", + "Erdteil", + "Ereignis", + "Eremit", + "erfahren", + "Erfolg", + "erfreuen", + "erfüllen", + "Ergebnis", + "erhitzen", + "erkalten", + "erkennen", + "erleben", + "Erlösung", + "ernähren", + "erneuern", + "Ernte", + "Eroberer", + "eröffnen", + "Erosion", + "Erotik", + "Erpel", + "erraten", + "Erreger", + "erröten", + "Ersatz", + "Erstflug", + "Ertrag", + "Eruption", + "erwarten", + "erwidern", + "Erzba", + "Erzeuger", + "erziehen", + "Esel", + "Eskimo", + "Eskorte", + "Espe", + "Espresso", + "essen", + "Etage", + "Etappe", + "Etat", + "Ethik", + "Etikett", + "Etüde", + "Eule", + "Euphorie", + "Europa", + "Everest", + "Examen", + "Exil", + "Exodus", + "Extrakt", + "Fabel", + "Fabrik", + "Fachmann", + "Fackel", + "Faden", + "Fagott", + "Fahne", + "Faible", + "Fairness", + "Fakt", + "Fakultät", + "Falke", + "Fallobst", + "Fälscher", + "Faltboot", + "Familie", + "Fanclub", + "Fanfare", + "Fangarm", + "Fantasie", + "Farbe", + "Farmhaus", + "Farn", + "Fasan", + "Faser", + "Fassung", + "fasten", + "Faulheit", + "Fauna", + "Faust", + "Favorit", + "Faxgerät", + "Fazit", + "fechten", + "Federboa", + "Fehler", + "Feier", + "Feige", + "feilen", + "Feinripp", + "Feldbett", + "Felge", + "Fellpony", + "Felswand", + "Ferien", + "Ferkel", + "Fernweh", + "Ferse", + "Fest", + "Fettnapf", + "Feuer", + "Fiasko", + "Fichte", + "Fiktion", + "Film", + "Filter", + "Filz", + "Finanzen", + "Findling", + "Finger", + "Fink", + "Finnwal", + "Fisch", + "Fitness", + "Fixpunkt", + "Fixstern", + "Fjord", + "Flachba", + "Flagge", + "Flamenco", + "Flanke", + "Flasche", + "Flaute", + "Fleck", + "Flegel", + "flehen", + "Fleisch", + "fliegen", + "Flinte", + "Flirt", + "Flocke", + "Floh", + "Floskel", + "Floß", + "Flöte", + "Flugzeug", + "Flunder", + "Flusstal", + "Flutung", + "Fockmast", + "Fohlen", + "Föhnlage", + "Fokus", + "folgen", + "Foliant", + "Folklore", + "Fontäne", + "Förde", + "Forelle", + "Format", + "Forscher", + "Fortgang", + "Forum", + "Fotograf", + "Frachter", + "Fragment", + "Fraktion", + "fräsen", + "Frauenpo", + "Freak", + "Fregatte", + "Freiheit", + "Freude", + "Frieden", + "Frohsinn", + "Frosch", + "Frucht", + "Frühjahr", + "Fuchs", + "Fügung", + "fühlen", + "Füller", + "Fundbüro", + "Funkboje", + "Funzel", + "Furnier", + "Fürsorge", + "Fusel", + "Fußbad", + "Futteral", + "Gabelung", + "gackern", + "Gage", + "gähnen", + "Galaxie", + "Galeere", + "Galopp", + "Gameboy", + "Gamsbart", + "Gandhi", + "Gang", + "Garage", + "Gardine", + "Garküche", + "Garten", + "Gasthaus", + "Gattung", + "gaukeln", + "Gazelle", + "Gebäck", + "Gebirge", + "Gebrä", + "Geburt", + "Gedanke", + "Gedeck", + "Gedicht", + "Gefahr", + "Gefieder", + "Geflügel", + "Gefühl", + "Gegend", + "Gehirn", + "Gehöft", + "Gehweg", + "Geige", + "Geist", + "Gelage", + "Geld", + "Gelenk", + "Gelübde", + "Gemälde", + "Gemeinde", + "Gemüse", + "genesen", + "Genuss", + "Gepäck", + "Geranie", + "Gericht", + "Germane", + "Geruch", + "Gesang", + "Geschenk", + "Gesetz", + "Gesindel", + "Gesöff", + "Gespan", + "Gestade", + "Gesuch", + "Getier", + "Getränk", + "Getümmel", + "Gewand", + "Geweih", + "Gewitter", + "Gewölbe", + "Geysir", + "Giftzahn", + "Gipfel", + "Giraffe", + "Gitarre", + "glänzen", + "Glasauge", + "Glatze", + "Gleis", + "Globus", + "Glück", + "glühen", + "Glutofen", + "Goldzahn", + "Gondel", + "gönnen", + "Gottheit", + "graben", + "Grafik", + "Grashalm", + "Graugans", + "greifen", + "Grenze", + "grillen", + "Groschen", + "Grotte", + "Grube", + "Grünalge", + "Gruppe", + "gruseln", + "Gulasch", + "Gummibär", + "Gurgel", + "Gürtel", + "Güterzug", + "Haarband", + "Habicht", + "hacken", + "hadern", + "Hafen", + "Hagel", + "Hähnchen", + "Haifisch", + "Haken", + "Halbaffe", + "Halsader", + "halten", + "Halunke", + "Handbuch", + "Hanf", + "Harfe", + "Harnisch", + "härten", + "Harz", + "Hasenohr", + "Haube", + "hauchen", + "Haupt", + "Haut", + "Havarie", + "Hebamme", + "hecheln", + "Heck", + "Hedonist", + "Heiler", + "Heimat", + "Heizung", + "Hektik", + "Held", + "helfen", + "Helium", + "Hemd", + "hemmen", + "Hengst", + "Herd", + "Hering", + "Herkunft", + "Hermelin", + "Herrchen", + "Herzdame", + "Heulboje", + "Hexe", + "Hilfe", + "Himbeere", + "Himmel", + "Hingabe", + "hinhören", + "Hinweis", + "Hirsch", + "Hirte", + "Hitzkopf", + "Hobel", + "Hochform", + "Hocker", + "hoffen", + "Hofhund", + "Hofnarr", + "Höhenzug", + "Hohlraum", + "Hölle", + "Holzboot", + "Honig", + "Honorar", + "horchen", + "Hörprobe", + "Höschen", + "Hotel", + "Hubraum", + "Hufeisen", + "Hügel", + "huldigen", + "Hülle", + "Humbug", + "Hummer", + "Humor", + "Hund", + "Hunger", + "Hupe", + "Hürde", + "Hurrikan", + "Hydrant", + "Hypnose", + "Ibis", + "Idee", + "Idiot", + "Igel", + "Illusion", + "Imitat", + "impfen", + "Import", + "Inferno", + "Ingwer", + "Inhalte", + "Inland", + "Insekt", + "Ironie", + "Irrfahrt", + "Irrtum", + "Isolator", + "Istwert", + "Jacke", + "Jade", + "Jagdhund", + "Jäger", + "Jaguar", + "Jahr", + "Jähzorn", + "Jazzfest", + "Jetpilot", + "jobben", + "Jochbein", + "jodeln", + "Jodsalz", + "Jolle", + "Journal", + "Jubel", + "Junge", + "Junimond", + "Jupiter", + "Jutesack", + "Juwel", + "Kabarett", + "Kabine", + "Kabuff", + "Käfer", + "Kaffee", + "Kahlkopf", + "Kaimauer", + "Kajüte", + "Kaktus", + "Kaliber", + "Kaltluft", + "Kamel", + "kämmen", + "Kampagne", + "Kanal", + "Kängur", + "Kanister", + "Kanone", + "Kante", + "Kan", + "kapern", + "Kapitän", + "Kapuze", + "Karneval", + "Karotte", + "Käsebrot", + "Kasper", + "Kastanie", + "Katalog", + "Kathode", + "Katze", + "kaufen", + "Kaugummi", + "Kauz", + "Kehle", + "Keilerei", + "Keksdose", + "Kellner", + "Keramik", + "Kerze", + "Kessel", + "Kette", + "keuchen", + "kichern", + "Kielboot", + "Kindheit", + "Kinnbart", + "Kinosaal", + "Kiosk", + "Kissen", + "Klammer", + "Klang", + "Klapprad", + "Klartext", + "kleben", + "Klee", + "Kleinod", + "Klima", + "Klingel", + "Klippe", + "Klischee", + "Kloster", + "Klugheit", + "Klüngel", + "kneten", + "Knie", + "Knöchel", + "knüpfen", + "Kobold", + "Kochbuch", + "Kohlrabi", + "Koje", + "Kokosöl", + "Kolibri", + "Kolumne", + "Kombüse", + "Komiker", + "kommen", + "Konto", + "Konzept", + "Kopfkino", + "Kordhose", + "Korken", + "Korsett", + "Kosename", + "Krabbe", + "Krach", + "Kraft", + "Krähe", + "Kralle", + "Krapfen", + "Krater", + "kraulen", + "Kreuz", + "Krokodil", + "Kröte", + "Kugel", + "Kuhhirt", + "Kühnheit", + "Künstler", + "Kurort", + "Kurve", + "Kurzfilm", + "kuscheln", + "küssen", + "Kutter", + "Labor", + "lachen", + "Lackaffe", + "Ladeluke", + "Lagune", + "Laib", + "Lakritze", + "Lammfell", + "Land", + "Langmut", + "Lappalie", + "Last", + "Laterne", + "Latzhose", + "Laubsäge", + "laufen", + "Laune", + "Lausbub", + "Lavasee", + "Leben", + "Leder", + "Leerlauf", + "Lehm", + "Lehrer", + "leihen", + "Lektüre", + "Lenker", + "Lerche", + "Leseecke", + "Leuchter", + "Lexikon", + "Libelle", + "Libido", + "Licht", + "Liebe", + "liefern", + "Liftboy", + "Limonade", + "Lineal", + "Linoleum", + "List", + "Liveband", + "Lobrede", + "locken", + "Löffel", + "Logbuch", + "Logik", + "Lohn", + "Loipe", + "Lokal", + "Lorbeer", + "Lösung", + "löten", + "Lottofee", + "Löwe", + "Luchs", + "Luder", + "Luftpost", + "Luke", + "Lümmel", + "Lunge", + "lutschen", + "Luxus", + "Macht", + "Magazin", + "Magier", + "Magnet", + "mähen", + "Mahlzeit", + "Mahnmal", + "Maibaum", + "Maisbrei", + "Makel", + "malen", + "Mammut", + "Maniküre", + "Mantel", + "Marathon", + "Marder", + "Marine", + "Marke", + "Marmor", + "Märzluft", + "Maske", + "Maßanzug", + "Maßkrug", + "Mastkorb", + "Material", + "Matratze", + "Mauerba", + "Maulkorb", + "Mäuschen", + "Mäzen", + "Medium", + "Meinung", + "melden", + "Melodie", + "Mensch", + "Merkmal", + "Messe", + "Metall", + "Meteor", + "Methode", + "Metzger", + "Mieze", + "Milchkuh", + "Mimose", + "Minirock", + "Minute", + "mischen", + "Missetat", + "mitgehen", + "Mittag", + "Mixtape", + "Möbel", + "Modul", + "mögen", + "Möhre", + "Molch", + "Moment", + "Monat", + "Mondflug", + "Monitor", + "Monokini", + "Monster", + "Monument", + "Moorhuhn", + "Moos", + "Möpse", + "Moral", + "Mörtel", + "Motiv", + "Motorrad", + "Möwe", + "Mühe", + "Mulatte", + "Müller", + "Mumie", + "Mund", + "Münze", + "Muschel", + "Muster", + "Mythos", + "Nabel", + "Nachtzug", + "Nackedei", + "Nagel", + "Nähe", + "Nähnadel", + "Namen", + "Narbe", + "Narwal", + "Nasenbär", + "Natur", + "Nebel", + "necken", + "Neffe", + "Neigung", + "Nektar", + "Nenner", + "Neptun", + "Nerz", + "Nessel", + "Nestba", + "Netz", + "Neuba", + "Neuerung", + "Neugier", + "nicken", + "Niere", + "Nilpferd", + "nisten", + "Nocke", + "Nomade", + "Nordmeer", + "Notdurft", + "Notstand", + "Notwehr", + "Nudismus", + "Nuss", + "Nutzhanf", + "Oase", + "Obdach", + "Oberarzt", + "Objekt", + "Oboe", + "Obsthain", + "Ochse", + "Odyssee", + "Ofenholz", + "öffnen", + "Ohnmacht", + "Ohrfeige", + "Ohrwurm", + "Ökologie", + "Oktave", + "Ölberg", + "Olive", + "Ölkrise", + "Omelett", + "Onkel", + "Oper", + "Optiker", + "Orange", + "Orchidee", + "ordnen", + "Orgasmus", + "Orkan", + "Ortskern", + "Ortung", + "Ostasien", + "Ozean", + "Paarlauf", + "Packeis", + "paddeln", + "Paket", + "Palast", + "Pandabär", + "Panik", + "Panorama", + "Panther", + "Papagei", + "Papier", + "Paprika", + "Paradies", + "Parka", + "Parodie", + "Partner", + "Passant", + "Patent", + "Patzer", + "Pause", + "Pavian", + "Pedal", + "Pegel", + "peilen", + "Perle", + "Person", + "Pfad", + "Pfa", + "Pferd", + "Pfleger", + "Physik", + "Pier", + "Pilotwal", + "Pinzette", + "Piste", + "Plakat", + "Plankton", + "Platin", + "Plombe", + "plündern", + "Pobacke", + "Pokal", + "polieren", + "Popmusik", + "Porträt", + "Posaune", + "Postamt", + "Pottwal", + "Pracht", + "Pranke", + "Preis", + "Primat", + "Prinzip", + "Protest", + "Proviant", + "Prüfung", + "Pubertät", + "Pudding", + "Pullover", + "Pulsader", + "Punkt", + "Pute", + "Putsch", + "Puzzle", + "Python", + "quaken", + "Qualle", + "Quark", + "Quellsee", + "Querkopf", + "Quitte", + "Quote", + "Rabauke", + "Rache", + "Radclub", + "Radhose", + "Radio", + "Radtour", + "Rahmen", + "Rampe", + "Randlage", + "Ranzen", + "Rapsöl", + "Raserei", + "rasten", + "Rasur", + "Rätsel", + "Raubtier", + "Raumzeit", + "Rausch", + "Reaktor", + "Realität", + "Rebell", + "Rede", + "Reetdach", + "Regatta", + "Regen", + "Rehkitz", + "Reifen", + "Reim", + "Reise", + "Reizung", + "Rekord", + "Relevanz", + "Rennboot", + "Respekt", + "Restmüll", + "retten", + "Reue", + "Revolte", + "Rhetorik", + "Rhythmus", + "Richtung", + "Riegel", + "Rindvieh", + "Rippchen", + "Ritter", + "Robbe", + "Roboter", + "Rockband", + "Rohdaten", + "Roller", + "Roman", + "röntgen", + "Rose", + "Rosskur", + "Rost", + "Rotahorn", + "Rotglut", + "Rotznase", + "Rubrik", + "Rückweg", + "Rufmord", + "Ruhe", + "Ruine", + "Rumpf", + "Runde", + "Rüstung", + "rütteln", + "Saaltür", + "Saatguts", + "Säbel", + "Sachbuch", + "Sack", + "Saft", + "sagen", + "Sahneeis", + "Salat", + "Salbe", + "Salz", + "Sammlung", + "Samt", + "Sandbank", + "Sanftmut", + "Sardine", + "Satire", + "Sattel", + "Satzba", + "Sauerei", + "Saum", + "Säure", + "Schall", + "Scheitel", + "Schiff", + "Schlager", + "Schmied", + "Schnee", + "Scholle", + "Schrank", + "Schulbus", + "Schwan", + "Seeadler", + "Seefahrt", + "Seehund", + "Seeufer", + "segeln", + "Sehnerv", + "Seide", + "Seilzug", + "Senf", + "Sessel", + "Seufzer", + "Sexgott", + "Sichtung", + "Signal", + "Silber", + "singen", + "Sinn", + "Sirup", + "Sitzbank", + "Skandal", + "Skikurs", + "Skipper", + "Skizze", + "Smaragd", + "Socke", + "Sohn", + "Sommer", + "Songtext", + "Sorte", + "Spagat", + "Spannung", + "Spargel", + "Specht", + "Speiseöl", + "Spiegel", + "Sport", + "spülen", + "Stadtbus", + "Stall", + "Stärke", + "Stativ", + "staunen", + "Stern", + "Stiftung", + "Stollen", + "Strömung", + "Sturm", + "Substanz", + "Südalpen", + "Sumpf", + "surfen", + "Tabak", + "Tafel", + "Tageba", + "takeln", + "Taktung", + "Talsohle", + "Tand", + "Tanzbär", + "Tapir", + "Tarantel", + "Tarnname", + "Tasse", + "Tatnacht", + "Tatsache", + "Tatze", + "Taube", + "tauchen", + "Taufpate", + "Taumel", + "Teelicht", + "Teich", + "teilen", + "Tempo", + "Tenor", + "Terrasse", + "Testflug", + "Theater", + "Thermik", + "ticken", + "Tiefflug", + "Tierart", + "Tigerhai", + "Tinte", + "Tischler", + "toben", + "Toleranz", + "Tölpel", + "Tonband", + "Topf", + "Topmodel", + "Torbogen", + "Torlinie", + "Torte", + "Tourist", + "Tragesel", + "trampeln", + "Trapez", + "Traum", + "treffen", + "Trennung", + "Treue", + "Trick", + "trimmen", + "Trödel", + "Trost", + "Trumpf", + "tüfteln", + "Turban", + "Turm", + "Übermut", + "Ufer", + "Uhrwerk", + "umarmen", + "Umba", + "Umfeld", + "Umgang", + "Umsturz", + "Unart", + "Unfug", + "Unimog", + "Unruhe", + "Unwucht", + "Uranerz", + "Urlaub", + "Urmensch", + "Utopie", + "Vakuum", + "Valuta", + "Vandale", + "Vase", + "Vektor", + "Ventil", + "Verb", + "Verdeck", + "Verfall", + "Vergaser", + "verhexen", + "Verlag", + "Vers", + "Vesper", + "Vieh", + "Viereck", + "Vinyl", + "Virus", + "Vitrine", + "Vollblut", + "Vorbote", + "Vorrat", + "Vorsicht", + "Vulkan", + "Wachstum", + "Wade", + "Wagemut", + "Wahlen", + "Wahrheit", + "Wald", + "Walhai", + "Wallach", + "Walnuss", + "Walzer", + "wandeln", + "Wanze", + "wärmen", + "Warnruf", + "Wäsche", + "Wasser", + "Weberei", + "wechseln", + "Wegegeld", + "wehren", + "Weiher", + "Weinglas", + "Weißbier", + "Weitwurf", + "Welle", + "Weltall", + "Werkbank", + "Werwolf", + "Wetter", + "wiehern", + "Wildgans", + "Wind", + "Wohl", + "Wohnort", + "Wolf", + "Wollust", + "Wortlaut", + "Wrack", + "Wunder", + "Wurfaxt", + "Wurst", + "Yacht", + "Yeti", + "Zacke", + "Zahl", + "zähmen", + "Zahnfee", + "Zäpfchen", + "Zaster", + "Zaumzeug", + "Zebra", + "zeigen", + "Zeitlupe", + "Zellkern", + "Zeltdach", + "Zensor", + "Zerfall", + "Zeug", + "Ziege", + "Zielfoto", + "Zimteis", + "Zobel", + "Zollhund", + "Zombie", + "Zöpfe", + "Zucht", + "Zufahrt", + "Zugfahrt", + "Zugvogel", + "Zündung", + "Zweck", + "Zyklop" +]; diff --git a/lib/bip/monero/mnemonic/words_list/italian.dart b/lib/bip/monero/mnemonic/words_list/italian.dart new file mode 100644 index 0000000..d2b5ed1 --- /dev/null +++ b/lib/bip/monero/mnemonic/words_list/italian.dart @@ -0,0 +1,1630 @@ +part of 'package:blockchain_utils/bip/monero/mnemonic/words_list/languages.dart'; + +const List _italian = [ + "abbinare", + "abbonato", + "abisso", + "abitare", + "abominio", + "accadere", + "accesso", + "acciaio", + "accordo", + "accumulo", + "acido", + "acqua", + "acrobata", + "acustico", + "adattare", + "addetto", + "addio", + "addome", + "adeguato", + "aderire", + "adorare", + "adottare", + "adozione", + "adulto", + "aereo", + "aerobica", + "affare", + "affetto", + "affidare", + "affogato", + "affronto", + "africano", + "afrodite", + "agenzia", + "aggancio", + "aggeggio", + "aggiunta", + "agio", + "agire", + "agitare", + "aglio", + "agnello", + "agosto", + "aiutare", + "albero", + "albo", + "alce", + "alchimia", + "alcool", + "alfabeto", + "algebra", + "alimento", + "allarme", + "alleanza", + "allievo", + "alloggio", + "alluce", + "alpi", + "alterare", + "altro", + "aluminio", + "amante", + "amarezza", + "ambiente", + "ambrosia", + "america", + "amico", + "ammalare", + "ammirare", + "amnesia", + "amnistia", + "amore", + "ampliare", + "amputare", + "analisi", + "anamnesi", + "ananas", + "anarchia", + "anatra", + "anca", + "ancorato", + "andare", + "androide", + "aneddoto", + "anello", + "angelo", + "angolino", + "anguilla", + "anidride", + "anima", + "annegare", + "anno", + "annuncio", + "anomalia", + "antenna", + "anticipo", + "aperto", + "apostolo", + "appalto", + "appello", + "appiglio", + "applauso", + "appoggio", + "appurare", + "aprile", + "aquila", + "arabo", + "arachidi", + "aragosta", + "arancia", + "arbitrio", + "archivio", + "arco", + "argento", + "argilla", + "aria", + "ariete", + "arma", + "armonia", + "aroma", + "arrivare", + "arrosto", + "arsenale", + "arte", + "artiglio", + "asfalto", + "asfissia", + "asino", + "asparagi", + "aspirina", + "assalire", + "assegno", + "assolto", + "assurdo", + "asta", + "astratto", + "atlante", + "atletica", + "atomo", + "atropina", + "attacco", + "attesa", + "attico", + "atto", + "attrarre", + "auguri", + "aula", + "aumento", + "aurora", + "auspicio", + "autista", + "auto", + "autunno", + "avanzare", + "avarizia", + "avere", + "aviatore", + "avido", + "avorio", + "avvenire", + "avviso", + "avvocato", + "azienda", + "azione", + "azzardo", + "azzurro", + "babbuino", + "bacio", + "badante", + "baffi", + "bagaglio", + "bagliore", + "bagno", + "balcone", + "balena", + "ballare", + "balordo", + "balsamo", + "bambola", + "bancomat", + "banda", + "barato", + "barba", + "barista", + "barriera", + "basette", + "basilico", + "bassista", + "bastare", + "battello", + "bavaglio", + "beccare", + "beduino", + "bellezza", + "bene", + "benzina", + "berretto", + "bestia", + "bevitore", + "bianco", + "bibbia", + "biberon", + "bibita", + "bici", + "bidone", + "bilancia", + "biliardo", + "binario", + "binocolo", + "biologia", + "biondina", + "biopsia", + "biossido", + "birbante", + "birra", + "biscotto", + "bisogno", + "bistecca", + "bivio", + "blindare", + "bloccare", + "bocca", + "bollire", + "bombola", + "bonifico", + "borghese", + "borsa", + "bottino", + "botulino", + "braccio", + "bradipo", + "branco", + "bravo", + "bresaola", + "bretelle", + "brevetto", + "briciola", + "brigante", + "brillare", + "brindare", + "brivido", + "broccoli", + "brontolo", + "bruciare", + "brufolo", + "bucare", + "buddista", + "budino", + "bufera", + "buffo", + "bugiardo", + "buio", + "buono", + "burrone", + "bussola", + "bustina", + "buttare", + "cabernet", + "cabina", + "cacao", + "cacciare", + "cactus", + "cadavere", + "caffe", + "calamari", + "calcio", + "caldaia", + "calmare", + "calunnia", + "calvario", + "calzone", + "cambiare", + "camera", + "camion", + "cammello", + "campana", + "canarino", + "cancello", + "candore", + "cane", + "canguro", + "cannone", + "canoa", + "cantare", + "canzone", + "caos", + "capanna", + "capello", + "capire", + "capo", + "capperi", + "capra", + "capsula", + "caraffa", + "carbone", + "carciofo", + "cardigan", + "carenza", + "caricare", + "carota", + "carrello", + "carta", + "casa", + "cascare", + "caserma", + "cashmere", + "casino", + "cassetta", + "castello", + "catalogo", + "catena", + "catorcio", + "cattivo", + "causa", + "cauzione", + "cavallo", + "caverna", + "caviglia", + "cavo", + "cazzotto", + "celibato", + "cemento", + "cenare", + "centrale", + "ceramica", + "cercare", + "ceretta", + "cerniera", + "certezza", + "cervello", + "cessione", + "cestino", + "cetriolo", + "chiave", + "chiedere", + "chilo", + "chimera", + "chiodo", + "chirurgo", + "chitarra", + "chiudere", + "ciabatta", + "ciao", + "cibo", + "ciccia", + "cicerone", + "ciclone", + "cicogna", + "cielo", + "cifra", + "cigno", + "ciliegia", + "cimitero", + "cinema", + "cinque", + "cintura", + "ciondolo", + "ciotola", + "cipolla", + "cippato", + "circuito", + "cisterna", + "citofono", + "ciuccio", + "civetta", + "civico", + "clausola", + "cliente", + "clima", + "clinica", + "cobra", + "coccole", + "cocktail", + "cocomero", + "codice", + "coesione", + "cogliere", + "cognome", + "colla", + "colomba", + "colpire", + "coltello", + "comando", + "comitato", + "commedia", + "comodino", + "compagna", + "comune", + "concerto", + "condotto", + "conforto", + "congiura", + "coniglio", + "consegna", + "conto", + "convegno", + "coperta", + "copia", + "coprire", + "corazza", + "corda", + "corleone", + "cornice", + "corona", + "corpo", + "corrente", + "corsa", + "cortesia", + "corvo", + "coso", + "costume", + "cotone", + "cottura", + "cozza", + "crampo", + "cratere", + "cravatta", + "creare", + "credere", + "crema", + "crescere", + "crimine", + "criterio", + "croce", + "crollare", + "cronaca", + "crostata", + "croupier", + "cubetto", + "cucciolo", + "cucina", + "cultura", + "cuoco", + "cuore", + "cupido", + "cupola", + "cura", + "curva", + "cuscino", + "custode", + "danzare", + "data", + "decennio", + "decidere", + "decollo", + "dedicare", + "dedurre", + "definire", + "delegare", + "delfino", + "delitto", + "demone", + "dentista", + "denuncia", + "deposito", + "derivare", + "deserto", + "designer", + "destino", + "detonare", + "dettagli", + "diagnosi", + "dialogo", + "diamante", + "diario", + "diavolo", + "dicembre", + "difesa", + "digerire", + "digitare", + "diluvio", + "dinamica", + "dipinto", + "diploma", + "diramare", + "dire", + "dirigere", + "dirupo", + "discesa", + "disdetta", + "disegno", + "disporre", + "dissenso", + "distacco", + "dito", + "ditta", + "diva", + "divenire", + "dividere", + "divorare", + "docente", + "dolcetto", + "dolore", + "domatore", + "domenica", + "dominare", + "donatore", + "donna", + "dorato", + "dormire", + "dorso", + "dosaggio", + "dottore", + "dovere", + "download", + "dragone", + "dramma", + "dubbio", + "dubitare", + "duetto", + "durata", + "ebbrezza", + "eccesso", + "eccitare", + "eclissi", + "economia", + "edera", + "edificio", + "editore", + "edizione", + "educare", + "effetto", + "egitto", + "egiziano", + "elastico", + "elefante", + "eleggere", + "elemento", + "elenco", + "elezione", + "elmetto", + "elogio", + "embrione", + "emergere", + "emettere", + "eminenza", + "emisfero", + "emozione", + "empatia", + "energia", + "enfasi", + "enigma", + "entrare", + "enzima", + "epidemia", + "epilogo", + "episodio", + "epoca", + "equivoco", + "erba", + "erede", + "eroe", + "erotico", + "errore", + "eruzione", + "esaltare", + "esame", + "esaudire", + "eseguire", + "esempio", + "esigere", + "esistere", + "esito", + "esperto", + "espresso", + "essere", + "estasi", + "esterno", + "estrarre", + "eterno", + "etica", + "euforico", + "europa", + "evacuare", + "evasione", + "evento", + "evidenza", + "evitare", + "evolvere", + "fabbrica", + "facciata", + "fagiano", + "fagotto", + "falco", + "fame", + "famiglia", + "fanale", + "fango", + "fantasia", + "farfalla", + "farmacia", + "faro", + "fase", + "fastidio", + "faticare", + "fatto", + "favola", + "febbre", + "femmina", + "femore", + "fenomeno", + "fermata", + "feromoni", + "ferrari", + "fessura", + "festa", + "fiaba", + "fiamma", + "fianco", + "fiat", + "fibbia", + "fidare", + "fieno", + "figa", + "figlio", + "figura", + "filetto", + "filmato", + "filosofo", + "filtrare", + "finanza", + "finestra", + "fingere", + "finire", + "finta", + "finzione", + "fiocco", + "fioraio", + "firewall", + "firmare", + "fisico", + "fissare", + "fittizio", + "fiume", + "flacone", + "flagello", + "flirtare", + "flusso", + "focaccia", + "foglio", + "fognario", + "follia", + "fonderia", + "fontana", + "forbici", + "forcella", + "foresta", + "forgiare", + "formare", + "fornace", + "foro", + "fortuna", + "forzare", + "fosforo", + "fotoni", + "fracasso", + "fragola", + "frantumi", + "fratello", + "frazione", + "freccia", + "freddo", + "frenare", + "fresco", + "friggere", + "frittata", + "frivolo", + "frizione", + "fronte", + "frullato", + "frumento", + "frusta", + "frutto", + "fucile", + "fuggire", + "fulmine", + "fumare", + "funzione", + "fuoco", + "furbizia", + "furgone", + "furia", + "furore", + "fusibile", + "fuso", + "futuro", + "gabbiano", + "galassia", + "gallina", + "gamba", + "gancio", + "garanzia", + "garofano", + "gasolio", + "gatto", + "gazebo", + "gazzetta", + "gelato", + "gemelli", + "generare", + "genitori", + "gennaio", + "geologia", + "germania", + "gestire", + "gettare", + "ghepardo", + "ghiaccio", + "giaccone", + "giaguaro", + "giallo", + "giappone", + "giardino", + "gigante", + "gioco", + "gioiello", + "giorno", + "giovane", + "giraffa", + "giudizio", + "giurare", + "giusto", + "globo", + "gloria", + "glucosio", + "gnocca", + "gocciola", + "godere", + "gomito", + "gomma", + "gonfiare", + "gorilla", + "governo", + "gradire", + "graffiti", + "granchio", + "grappolo", + "grasso", + "grattare", + "gridare", + "grissino", + "grondaia", + "grugnito", + "gruppo", + "guadagno", + "guaio", + "guancia", + "guardare", + "gufo", + "guidare", + "guscio", + "gusto", + "icona", + "idea", + "identico", + "idolo", + "idoneo", + "idrante", + "idrogeno", + "igiene", + "ignoto", + "imbarco", + "immagine", + "immobile", + "imparare", + "impedire", + "impianto", + "importo", + "impresa", + "impulso", + "incanto", + "incendio", + "incidere", + "incontro", + "incrocia", + "incubo", + "indagare", + "indice", + "indotto", + "infanzia", + "inferno", + "infinito", + "infranto", + "ingerire", + "inglese", + "ingoiare", + "ingresso", + "iniziare", + "innesco", + "insalata", + "inserire", + "insicuro", + "insonnia", + "insulto", + "interno", + "introiti", + "invasori", + "inverno", + "invito", + "invocare", + "ipnosi", + "ipocrita", + "ipotesi", + "ironia", + "irrigare", + "iscritto", + "isola", + "ispirare", + "isterico", + "istinto", + "istruire", + "italiano", + "jazz", + "labbra", + "labrador", + "ladro", + "lago", + "lamento", + "lampone", + "lancetta", + "lanterna", + "lapide", + "larva", + "lasagne", + "lasciare", + "lastra", + "latte", + "laurea", + "lavagna", + "lavorare", + "leccare", + "legare", + "leggere", + "lenzuolo", + "leone", + "lepre", + "letargo", + "lettera", + "levare", + "levitare", + "lezione", + "liberare", + "libidine", + "libro", + "licenza", + "lievito", + "limite", + "lince", + "lingua", + "liquore", + "lire", + "listino", + "litigare", + "litro", + "locale", + "lottare", + "lucciola", + "lucidare", + "luglio", + "luna", + "macchina", + "madama", + "madre", + "maestro", + "maggio", + "magico", + "maglione", + "magnolia", + "mago", + "maialino", + "maionese", + "malattia", + "male", + "malloppo", + "mancare", + "mandorla", + "mangiare", + "manico", + "manopola", + "mansarda", + "mantello", + "manubrio", + "manzo", + "mappa", + "mare", + "margine", + "marinaio", + "marmotta", + "marocco", + "martello", + "marzo", + "maschera", + "matrice", + "maturare", + "mazzetta", + "meandri", + "medaglia", + "medico", + "medusa", + "megafono", + "melone", + "membrana", + "menta", + "mercato", + "meritare", + "merluzzo", + "mese", + "mestiere", + "metafora", + "meteo", + "metodo", + "mettere", + "miele", + "miglio", + "miliardo", + "mimetica", + "minatore", + "minuto", + "miracolo", + "mirtillo", + "missile", + "mistero", + "misura", + "mito", + "mobile", + "moda", + "moderare", + "moglie", + "molecola", + "molle", + "momento", + "moneta", + "mongolia", + "monologo", + "montagna", + "morale", + "morbillo", + "mordere", + "mosaico", + "mosca", + "mostro", + "motivare", + "moto", + "mulino", + "mulo", + "muovere", + "muraglia", + "muscolo", + "museo", + "musica", + "mutande", + "nascere", + "nastro", + "natale", + "natura", + "nave", + "navigare", + "negare", + "negozio", + "nemico", + "nero", + "nervo", + "nessuno", + "nettare", + "neutroni", + "neve", + "nevicare", + "nicotina", + "nido", + "nipote", + "nocciola", + "noleggio", + "nome", + "nonno", + "norvegia", + "notare", + "notizia", + "nove", + "nucleo", + "nuda", + "nuotare", + "nutrire", + "obbligo", + "occhio", + "occupare", + "oceano", + "odissea", + "odore", + "offerta", + "officina", + "offrire", + "oggetto", + "oggi", + "olfatto", + "olio", + "oliva", + "ombelico", + "ombrello", + "omuncolo", + "ondata", + "onore", + "opera", + "opinione", + "opuscolo", + "opzione", + "orario", + "orbita", + "orchidea", + "ordine", + "orecchio", + "orgasmo", + "orgoglio", + "origine", + "orologio", + "oroscopo", + "orso", + "oscurare", + "ospedale", + "ospite", + "ossigeno", + "ostacolo", + "ostriche", + "ottenere", + "ottimo", + "ottobre", + "ovest", + "pacco", + "pace", + "pacifico", + "padella", + "pagare", + "pagina", + "pagnotta", + "palazzo", + "palestra", + "palpebre", + "pancetta", + "panfilo", + "panino", + "pannello", + "panorama", + "papa", + "paperino", + "paradiso", + "parcella", + "parente", + "parlare", + "parodia", + "parrucca", + "partire", + "passare", + "pasta", + "patata", + "patente", + "patogeno", + "patriota", + "pausa", + "pazienza", + "peccare", + "pecora", + "pedalare", + "pelare", + "pena", + "pendenza", + "penisola", + "pennello", + "pensare", + "pentirsi", + "percorso", + "perdono", + "perfetto", + "perizoma", + "perla", + "permesso", + "persona", + "pesare", + "pesce", + "peso", + "petardo", + "petrolio", + "pezzo", + "piacere", + "pianeta", + "piastra", + "piatto", + "piazza", + "piccolo", + "piede", + "piegare", + "pietra", + "pigiama", + "pigliare", + "pigrizia", + "pilastro", + "pilota", + "pinguino", + "pioggia", + "piombo", + "pionieri", + "piovra", + "pipa", + "pirata", + "pirolisi", + "piscina", + "pisolino", + "pista", + "pitone", + "piumino", + "pizza", + "plastica", + "platino", + "poesia", + "poiana", + "polaroid", + "polenta", + "polimero", + "pollo", + "polmone", + "polpetta", + "poltrona", + "pomodoro", + "pompa", + "popolo", + "porco", + "porta", + "porzione", + "possesso", + "postino", + "potassio", + "potere", + "poverino", + "pranzo", + "prato", + "prefisso", + "prelievo", + "premio", + "prendere", + "prestare", + "pretesa", + "prezzo", + "primario", + "privacy", + "problema", + "processo", + "prodotto", + "profeta", + "progetto", + "promessa", + "pronto", + "proposta", + "proroga", + "prossimo", + "proteina", + "prova", + "prudenza", + "pubblico", + "pudore", + "pugilato", + "pulire", + "pulsante", + "puntare", + "pupazzo", + "puzzle", + "quaderno", + "qualcuno", + "quarzo", + "quercia", + "quintale", + "rabbia", + "racconto", + "radice", + "raffica", + "ragazza", + "ragione", + "rammento", + "ramo", + "rana", + "randagio", + "rapace", + "rapinare", + "rapporto", + "rasatura", + "ravioli", + "reagire", + "realista", + "reattore", + "reazione", + "recitare", + "recluso", + "record", + "recupero", + "redigere", + "regalare", + "regina", + "regola", + "relatore", + "reliquia", + "remare", + "rendere", + "reparto", + "resina", + "resto", + "rete", + "retorica", + "rettile", + "revocare", + "riaprire", + "ribadire", + "ribelle", + "ricambio", + "ricetta", + "richiamo", + "ricordo", + "ridurre", + "riempire", + "riferire", + "riflesso", + "righello", + "rilancio", + "rilevare", + "rilievo", + "rimanere", + "rimborso", + "rinforzo", + "rinuncia", + "riparo", + "ripetere", + "riposare", + "ripulire", + "risalita", + "riscatto", + "riserva", + "riso", + "rispetto", + "ritaglio", + "ritmo", + "ritorno", + "ritratto", + "rituale", + "riunione", + "riuscire", + "riva", + "robotica", + "rondine", + "rosa", + "rospo", + "rosso", + "rotonda", + "rotta", + "roulotte", + "rubare", + "rubrica", + "ruffiano", + "rumore", + "ruota", + "ruscello", + "sabbia", + "sacco", + "saggio", + "sale", + "salire", + "salmone", + "salto", + "salutare", + "salvia", + "sangue", + "sanzioni", + "sapere", + "sapienza", + "sarcasmo", + "sardine", + "sartoria", + "sbalzo", + "sbarcare", + "sberla", + "sborsare", + "scadenza", + "scafo", + "scala", + "scambio", + "scappare", + "scarpa", + "scatola", + "scelta", + "scena", + "sceriffo", + "scheggia", + "schiuma", + "sciarpa", + "scienza", + "scimmia", + "sciopero", + "scivolo", + "sclerare", + "scolpire", + "sconto", + "scopa", + "scordare", + "scossa", + "scrivere", + "scrupolo", + "scuderia", + "scultore", + "scuola", + "scusare", + "sdraiare", + "secolo", + "sedativo", + "sedere", + "sedia", + "segare", + "segreto", + "seguire", + "semaforo", + "seme", + "senape", + "seno", + "sentiero", + "separare", + "sepolcro", + "sequenza", + "serata", + "serpente", + "servizio", + "sesso", + "seta", + "settore", + "sfamare", + "sfera", + "sfidare", + "sfiorare", + "sfogare", + "sgabello", + "sicuro", + "siepe", + "sigaro", + "silenzio", + "silicone", + "simbiosi", + "simpatia", + "simulare", + "sinapsi", + "sindrome", + "sinergia", + "sinonimo", + "sintonia", + "sirena", + "siringa", + "sistema", + "sito", + "smalto", + "smentire", + "smontare", + "soccorso", + "socio", + "soffitto", + "software", + "soggetto", + "sogliola", + "sognare", + "soldi", + "sole", + "sollievo", + "solo", + "sommario", + "sondare", + "sonno", + "sorpresa", + "sorriso", + "sospiro", + "sostegno", + "sovrano", + "spaccare", + "spada", + "spagnolo", + "spalla", + "sparire", + "spavento", + "spazio", + "specchio", + "spedire", + "spegnere", + "spendere", + "speranza", + "spessore", + "spezzare", + "spiaggia", + "spiccare", + "spiegare", + "spiffero", + "spingere", + "sponda", + "sporcare", + "spostare", + "spremuta", + "spugna", + "spumante", + "spuntare", + "squadra", + "squillo", + "staccare", + "stadio", + "stagione", + "stallone", + "stampa", + "stancare", + "starnuto", + "statura", + "stella", + "stendere", + "sterzo", + "stilista", + "stimolo", + "stinco", + "stiva", + "stoffa", + "storia", + "strada", + "stregone", + "striscia", + "studiare", + "stufa", + "stupendo", + "subire", + "successo", + "sudare", + "suono", + "superare", + "supporto", + "surfista", + "sussurro", + "svelto", + "svenire", + "sviluppo", + "svolta", + "svuotare", + "tabacco", + "tabella", + "tabu", + "tacchino", + "tacere", + "taglio", + "talento", + "tangente", + "tappeto", + "tartufo", + "tassello", + "tastiera", + "tavolo", + "tazza", + "teatro", + "tedesco", + "telaio", + "telefono", + "tema", + "temere", + "tempo", + "tendenza", + "tenebre", + "tensione", + "tentare", + "teologia", + "teorema", + "termica", + "terrazzo", + "teschio", + "tesi", + "tesoro", + "tessera", + "testa", + "thriller", + "tifoso", + "tigre", + "timbrare", + "timido", + "tinta", + "tirare", + "tisana", + "titano", + "titolo", + "toccare", + "togliere", + "topolino", + "torcia", + "torrente", + "tovaglia", + "traffico", + "tragitto", + "training", + "tramonto", + "transito", + "trapezio", + "trasloco", + "trattore", + "trazione", + "treccia", + "tregua", + "treno", + "triciclo", + "tridente", + "trilogia", + "tromba", + "troncare", + "trota", + "trovare", + "trucco", + "tubo", + "tulipano", + "tumulto", + "tunisia", + "tuono", + "turista", + "tuta", + "tutelare", + "tutore", + "ubriaco", + "uccello", + "udienza", + "udito", + "uffa", + "umanoide", + "umore", + "unghia", + "unguento", + "unicorno", + "unione", + "universo", + "uomo", + "uragano", + "uranio", + "urlare", + "uscire", + "utente", + "utilizzo", + "vacanza", + "vacca", + "vaglio", + "vagonata", + "valle", + "valore", + "valutare", + "valvola", + "vampiro", + "vaniglia", + "vanto", + "vapore", + "variante", + "vasca", + "vaselina", + "vassoio", + "vedere", + "vegetale", + "veglia", + "veicolo", + "vela", + "veleno", + "velivolo", + "velluto", + "vendere", + "venerare", + "venire", + "vento", + "veranda", + "verbo", + "verdura", + "vergine", + "verifica", + "vernice", + "vero", + "verruca", + "versare", + "vertebra", + "vescica", + "vespaio", + "vestito", + "vesuvio", + "veterano", + "vetro", + "vetta", + "viadotto", + "viaggio", + "vibrare", + "vicenda", + "vichingo", + "vietare", + "vigilare", + "vigneto", + "villa", + "vincere", + "violino", + "vipera", + "virgola", + "virtuoso", + "visita", + "vita", + "vitello", + "vittima", + "vivavoce", + "vivere", + "viziato", + "voglia", + "volare", + "volpe", + "volto", + "volume", + "vongole", + "voragine", + "vortice", + "votare", + "vulcano", + "vuotare", + "zabaione", + "zaffiro", + "zainetto", + "zampa", + "zanzara", + "zattera", + "zavorra", + "zenzero", + "zero", + "zingaro", + "zittire", + "zoccolo", + "zolfo", + "zombie", + "zucchero" +]; diff --git a/lib/bip/monero/mnemonic/words_list/japanese.dart b/lib/bip/monero/mnemonic/words_list/japanese.dart new file mode 100644 index 0000000..0ee0608 --- /dev/null +++ b/lib/bip/monero/mnemonic/words_list/japanese.dart @@ -0,0 +1,1630 @@ +part of 'package:blockchain_utils/bip/monero/mnemonic/words_list/languages.dart'; + +const List _japanese = [ + "あいこくしん", + "あいさつ", + "あいだ", + "あおぞら", + "あかちゃん", + "あきる", + "あけがた", + "あける", + "あこがれる", + "あさい", + "あさひ", + "あしあと", + "あじわう", + "あずかる", + "あずき", + "あそぶ", + "あたえる", + "あたためる", + "あたりまえ", + "あたる", + "あつい", + "あつかう", + "あっしゅく", + "あつまり", + "あつめる", + "あてな", + "あてはまる", + "あひる", + "あぶら", + "あぶる", + "あふれる", + "あまい", + "あまど", + "あまやかす", + "あまり", + "あみもの", + "あめりか", + "あやまる", + "あゆむ", + "あらいぐま", + "あらし", + "あらすじ", + "あらためる", + "あらゆる", + "あらわす", + "ありがとう", + "あわせる", + "あわてる", + "あんい", + "あんがい", + "あんこ", + "あんぜん", + "あんてい", + "あんない", + "あんまり", + "いいだす", + "いおん", + "いがい", + "いがく", + "いきおい", + "いきなり", + "いきもの", + "いきる", + "いくじ", + "いくぶん", + "いけばな", + "いけん", + "いこう", + "いこく", + "いこつ", + "いさましい", + "いさん", + "いしき", + "いじゅう", + "いじょう", + "いじわる", + "いずみ", + "いずれ", + "いせい", + "いせえび", + "いせかい", + "いせき", + "いぜん", + "いそうろう", + "いそがしい", + "いだい", + "いだく", + "いたずら", + "いたみ", + "いたりあ", + "いちおう", + "いちじ", + "いちど", + "いちば", + "いちぶ", + "いちりゅう", + "いつか", + "いっしゅん", + "いっせい", + "いっそう", + "いったん", + "いっち", + "いってい", + "いっぽう", + "いてざ", + "いてん", + "いどう", + "いとこ", + "いない", + "いなか", + "いねむり", + "いのち", + "いのる", + "いはつ", + "いばる", + "いはん", + "いびき", + "いひん", + "いふく", + "いへん", + "いほう", + "いみん", + "いもうと", + "いもたれ", + "いもり", + "いやがる", + "いやす", + "いよかん", + "いよく", + "いらい", + "いらすと", + "いりぐち", + "いりょう", + "いれい", + "いれもの", + "いれる", + "いろえんぴつ", + "いわい", + "いわう", + "いわかん", + "いわば", + "いわゆる", + "いんげんまめ", + "いんさつ", + "いんしょう", + "いんよう", + "うえき", + "うえる", + "うおざ", + "うがい", + "うかぶ", + "うかべる", + "うきわ", + "うくらいな", + "うくれれ", + "うけたまわる", + "うけつけ", + "うけとる", + "うけもつ", + "うける", + "うごかす", + "うごく", + "うこん", + "うさぎ", + "うしなう", + "うしろがみ", + "うすい", + "うすぎ", + "うすぐらい", + "うすめる", + "うせつ", + "うちあわせ", + "うちがわ", + "うちき", + "うちゅう", + "うっかり", + "うつくしい", + "うったえる", + "うつる", + "うどん", + "うなぎ", + "うなじ", + "うなずく", + "うなる", + "うねる", + "うのう", + "うぶげ", + "うぶごえ", + "うまれる", + "うめる", + "うもう", + "うやまう", + "うよく", + "うらがえす", + "うらぐち", + "うらない", + "うりあげ", + "うりきれ", + "うるさい", + "うれしい", + "うれゆき", + "うれる", + "うろこ", + "うわき", + "うわさ", + "うんこう", + "うんちん", + "うんてん", + "うんどう", + "えいえん", + "えいが", + "えいきょう", + "えいご", + "えいせい", + "えいぶん", + "えいよう", + "えいわ", + "えおり", + "えがお", + "えがく", + "えきたい", + "えくせる", + "えしゃく", + "えすて", + "えつらん", + "えのぐ", + "えほうまき", + "えほん", + "えまき", + "えもじ", + "えもの", + "えらい", + "えらぶ", + "えりあ", + "えんえん", + "えんかい", + "えんぎ", + "えんげき", + "えんしゅう", + "えんぜつ", + "えんそく", + "えんちょう", + "えんとつ", + "おいかける", + "おいこす", + "おいしい", + "おいつく", + "おうえん", + "おうさま", + "おうじ", + "おうせつ", + "おうたい", + "おうふく", + "おうべい", + "おうよう", + "おえる", + "おおい", + "おおう", + "おおどおり", + "おおや", + "おおよそ", + "おかえり", + "おかず", + "おがむ", + "おかわり", + "おぎなう", + "おきる", + "おくさま", + "おくじょう", + "おくりがな", + "おくる", + "おくれる", + "おこす", + "おこなう", + "おこる", + "おさえる", + "おさない", + "おさめる", + "おしいれ", + "おしえる", + "おじぎ", + "おじさん", + "おしゃれ", + "おそらく", + "おそわる", + "おたがい", + "おたく", + "おだやか", + "おちつく", + "おっと", + "おつり", + "おでかけ", + "おとしもの", + "おとなしい", + "おどり", + "おどろかす", + "おばさん", + "おまいり", + "おめでとう", + "おもいで", + "おもう", + "おもたい", + "おもちゃ", + "おやつ", + "おやゆび", + "およぼす", + "おらんだ", + "おろす", + "おんがく", + "おんけい", + "おんしゃ", + "おんせん", + "おんだん", + "おんちゅう", + "おんどけい", + "かあつ", + "かいが", + "がいき", + "がいけん", + "がいこう", + "かいさつ", + "かいしゃ", + "かいすいよく", + "かいぜん", + "かいぞうど", + "かいつう", + "かいてん", + "かいとう", + "かいふく", + "がいへき", + "かいほう", + "かいよう", + "がいらい", + "かいわ", + "かえる", + "かおり", + "かかえる", + "かがく", + "かがし", + "かがみ", + "かくご", + "かくとく", + "かざる", + "がぞう", + "かたい", + "かたち", + "がちょう", + "がっきゅう", + "がっこう", + "がっさん", + "がっしょう", + "かなざわし", + "かのう", + "がはく", + "かぶか", + "かほう", + "かほご", + "かまう", + "かまぼこ", + "かめれおん", + "かゆい", + "かようび", + "からい", + "かるい", + "かろう", + "かわく", + "かわら", + "がんか", + "かんけい", + "かんこう", + "かんしゃ", + "かんそう", + "かんたん", + "かんち", + "がんばる", + "きあい", + "きあつ", + "きいろ", + "ぎいん", + "きうい", + "きうん", + "きえる", + "きおう", + "きおく", + "きおち", + "きおん", + "きかい", + "きかく", + "きかんしゃ", + "ききて", + "きくばり", + "きくらげ", + "きけんせい", + "きこう", + "きこえる", + "きこく", + "きさい", + "きさく", + "きさま", + "きさらぎ", + "ぎじかがく", + "ぎしき", + "ぎじたいけん", + "ぎじにってい", + "ぎじゅつしゃ", + "きすう", + "きせい", + "きせき", + "きせつ", + "きそう", + "きぞく", + "きぞん", + "きたえる", + "きちょう", + "きつえん", + "ぎっちり", + "きつつき", + "きつね", + "きてい", + "きどう", + "きどく", + "きない", + "きなが", + "きなこ", + "きぬごし", + "きねん", + "きのう", + "きのした", + "きはく", + "きびしい", + "きひん", + "きふく", + "きぶん", + "きぼう", + "きほん", + "きまる", + "きみつ", + "きむずかしい", + "きめる", + "きもだめし", + "きもち", + "きもの", + "きゃく", + "きやく", + "ぎゅうにく", + "きよう", + "きょうりゅう", + "きらい", + "きらく", + "きりん", + "きれい", + "きれつ", + "きろく", + "ぎろん", + "きわめる", + "ぎんいろ", + "きんかくじ", + "きんじょ", + "きんようび", + "ぐあい", + "くいず", + "くうかん", + "くうき", + "くうぐん", + "くうこう", + "ぐうせい", + "くうそう", + "ぐうたら", + "くうふく", + "くうぼ", + "くかん", + "くきょう", + "くげん", + "ぐこう", + "くさい", + "くさき", + "くさばな", + "くさる", + "くしゃみ", + "くしょう", + "くすのき", + "くすりゆび", + "くせげ", + "くせん", + "ぐたいてき", + "くださる", + "くたびれる", + "くちこみ", + "くちさき", + "くつした", + "ぐっすり", + "くつろぐ", + "くとうてん", + "くどく", + "くなん", + "くねくね", + "くのう", + "くふう", + "くみあわせ", + "くみたてる", + "くめる", + "くやくしょ", + "くらす", + "くらべる", + "くるま", + "くれる", + "くろう", + "くわしい", + "ぐんかん", + "ぐんしょく", + "ぐんたい", + "ぐんて", + "けあな", + "けいかく", + "けいけん", + "けいこ", + "けいさつ", + "げいじゅつ", + "けいたい", + "げいのうじん", + "けいれき", + "けいろ", + "けおとす", + "けおりもの", + "げきか", + "げきげん", + "げきだん", + "げきちん", + "げきとつ", + "げきは", + "げきやく", + "げこう", + "げこくじょう", + "げざい", + "けさき", + "げざん", + "けしき", + "けしごむ", + "けしょう", + "げすと", + "けたば", + "けちゃっぷ", + "けちらす", + "けつあつ", + "けつい", + "けつえき", + "けっこん", + "けつじょ", + "けっせき", + "けってい", + "けつまつ", + "げつようび", + "げつれい", + "けつろん", + "げどく", + "けとばす", + "けとる", + "けなげ", + "けなす", + "けなみ", + "けぬき", + "げねつ", + "けねん", + "けはい", + "げひん", + "けぶかい", + "げぼく", + "けまり", + "けみかる", + "けむし", + "けむり", + "けもの", + "けらい", + "けろけろ", + "けわしい", + "けんい", + "けんえつ", + "けんお", + "けんか", + "げんき", + "けんげん", + "けんこう", + "けんさく", + "けんしゅう", + "けんすう", + "げんそう", + "けんちく", + "けんてい", + "けんとう", + "けんない", + "けんにん", + "げんぶつ", + "けんま", + "けんみん", + "けんめい", + "けんらん", + "けんり", + "こあくま", + "こいぬ", + "こいびと", + "ごうい", + "こうえん", + "こうおん", + "こうかん", + "ごうきゅう", + "ごうけい", + "こうこう", + "こうさい", + "こうじ", + "こうすい", + "ごうせい", + "こうそく", + "こうたい", + "こうちゃ", + "こうつう", + "こうてい", + "こうどう", + "こうない", + "こうはい", + "ごうほう", + "ごうまん", + "こうもく", + "こうりつ", + "こえる", + "こおり", + "ごかい", + "ごがつ", + "ごかん", + "こくご", + "こくさい", + "こくとう", + "こくない", + "こくはく", + "こぐま", + "こけい", + "こける", + "ここのか", + "こころ", + "こさめ", + "こしつ", + "こすう", + "こせい", + "こせき", + "こぜん", + "こそだて", + "こたい", + "こたえる", + "こたつ", + "こちょう", + "こっか", + "こつこつ", + "こつばん", + "こつぶ", + "こてい", + "こてん", + "ことがら", + "ことし", + "ことば", + "ことり", + "こなごな", + "こねこね", + "このまま", + "このみ", + "このよ", + "ごはん", + "こひつじ", + "こふう", + "こふん", + "こぼれる", + "ごまあぶら", + "こまかい", + "ごますり", + "こまつな", + "こまる", + "こむぎこ", + "こもじ", + "こもち", + "こもの", + "こもん", + "こやく", + "こやま", + "こゆう", + "こゆび", + "こよい", + "こよう", + "こりる", + "これくしょん", + "ころっけ", + "こわもて", + "こわれる", + "こんいん", + "こんかい", + "こんき", + "こんしゅう", + "こんすい", + "こんだて", + "こんとん", + "こんなん", + "こんびに", + "こんぽん", + "こんまけ", + "こんや", + "こんれい", + "こんわく", + "ざいえき", + "さいかい", + "さいきん", + "ざいげん", + "ざいこ", + "さいしょ", + "さいせい", + "ざいたく", + "ざいちゅう", + "さいてき", + "ざいりょう", + "さうな", + "さかいし", + "さがす", + "さかな", + "さかみち", + "さがる", + "さぎょう", + "さくし", + "さくひん", + "さくら", + "さこく", + "さこつ", + "さずかる", + "ざせき", + "さたん", + "さつえい", + "ざつおん", + "ざっか", + "ざつがく", + "さっきょく", + "ざっし", + "さつじん", + "ざっそう", + "さつたば", + "さつまいも", + "さてい", + "さといも", + "さとう", + "さとおや", + "さとし", + "さとる", + "さのう", + "さばく", + "さびしい", + "さべつ", + "さほう", + "さほど", + "さます", + "さみしい", + "さみだれ", + "さむけ", + "さめる", + "さやえんどう", + "さゆう", + "さよう", + "さよく", + "さらだ", + "ざるそば", + "さわやか", + "さわる", + "さんいん", + "さんか", + "さんきゃく", + "さんこう", + "さんさい", + "ざんしょ", + "さんすう", + "さんせい", + "さんそ", + "さんち", + "さんま", + "さんみ", + "さんらん", + "しあい", + "しあげ", + "しあさって", + "しあわせ", + "しいく", + "しいん", + "しうち", + "しえい", + "しおけ", + "しかい", + "しかく", + "じかん", + "しごと", + "しすう", + "じだい", + "したうけ", + "したぎ", + "したて", + "したみ", + "しちょう", + "しちりん", + "しっかり", + "しつじ", + "しつもん", + "してい", + "してき", + "してつ", + "じてん", + "じどう", + "しなぎれ", + "しなもの", + "しなん", + "しねま", + "しねん", + "しのぐ", + "しのぶ", + "しはい", + "しばかり", + "しはつ", + "しはらい", + "しはん", + "しひょう", + "しふく", + "じぶん", + "しへい", + "しほう", + "しほん", + "しまう", + "しまる", + "しみん", + "しむける", + "じむしょ", + "しめい", + "しめる", + "しもん", + "しゃいん", + "しゃうん", + "しゃおん", + "じゃがいも", + "しやくしょ", + "しゃくほう", + "しゃけん", + "しゃこ", + "しゃざい", + "しゃしん", + "しゃせん", + "しゃそう", + "しゃたい", + "しゃちょう", + "しゃっきん", + "じゃま", + "しゃりん", + "しゃれい", + "じゆう", + "じゅうしょ", + "しゅくはく", + "じゅしん", + "しゅっせき", + "しゅみ", + "しゅらば", + "じゅんばん", + "しょうかい", + "しょくたく", + "しょっけん", + "しょどう", + "しょもつ", + "しらせる", + "しらべる", + "しんか", + "しんこう", + "じんじゃ", + "しんせいじ", + "しんちく", + "しんりん", + "すあげ", + "すあし", + "すあな", + "ずあん", + "すいえい", + "すいか", + "すいとう", + "ずいぶん", + "すいようび", + "すうがく", + "すうじつ", + "すうせん", + "すおどり", + "すきま", + "すくう", + "すくない", + "すける", + "すごい", + "すこし", + "ずさん", + "すずしい", + "すすむ", + "すすめる", + "すっかり", + "ずっしり", + "ずっと", + "すてき", + "すてる", + "すねる", + "すのこ", + "すはだ", + "すばらしい", + "ずひょう", + "ずぶぬれ", + "すぶり", + "すふれ", + "すべて", + "すべる", + "ずほう", + "すぼん", + "すまい", + "すめし", + "すもう", + "すやき", + "すらすら", + "するめ", + "すれちがう", + "すろっと", + "すわる", + "すんぜん", + "すんぽう", + "せあぶら", + "せいかつ", + "せいげん", + "せいじ", + "せいよう", + "せおう", + "せかいかん", + "せきにん", + "せきむ", + "せきゆ", + "せきらんうん", + "せけん", + "せこう", + "せすじ", + "せたい", + "せたけ", + "せっかく", + "せっきゃく", + "ぜっく", + "せっけん", + "せっこつ", + "せっさたくま", + "せつぞく", + "せつだん", + "せつでん", + "せっぱん", + "せつび", + "せつぶん", + "せつめい", + "せつりつ", + "せなか", + "せのび", + "せはば", + "せびろ", + "せぼね", + "せまい", + "せまる", + "せめる", + "せもたれ", + "せりふ", + "ぜんあく", + "せんい", + "せんえい", + "せんか", + "せんきょ", + "せんく", + "せんげん", + "ぜんご", + "せんさい", + "せんしゅ", + "せんすい", + "せんせい", + "せんぞ", + "せんたく", + "せんちょう", + "せんてい", + "せんとう", + "せんぬき", + "せんねん", + "せんぱい", + "ぜんぶ", + "ぜんぽう", + "せんむ", + "せんめんじょ", + "せんもん", + "せんやく", + "せんゆう", + "せんよう", + "ぜんら", + "ぜんりゃく", + "せんれい", + "せんろ", + "そあく", + "そいとげる", + "そいね", + "そうがんきょう", + "そうき", + "そうご", + "そうしん", + "そうだん", + "そうなん", + "そうび", + "そうめん", + "そうり", + "そえもの", + "そえん", + "そがい", + "そげき", + "そこう", + "そこそこ", + "そざい", + "そしな", + "そせい", + "そせん", + "そそぐ", + "そだてる", + "そつう", + "そつえん", + "そっかん", + "そつぎょう", + "そっけつ", + "そっこう", + "そっせん", + "そっと", + "そとがわ", + "そとづら", + "そなえる", + "そなた", + "そふぼ", + "そぼく", + "そぼろ", + "そまつ", + "そまる", + "そむく", + "そむりえ", + "そめる", + "そもそも", + "そよかぜ", + "そらまめ", + "そろう", + "そんかい", + "そんけい", + "そんざい", + "そんしつ", + "そんぞく", + "そんちょう", + "ぞんび", + "ぞんぶん", + "そんみん", + "たあい", + "たいいん", + "たいうん", + "たいえき", + "たいおう", + "だいがく", + "たいき", + "たいぐう", + "たいけん", + "たいこ", + "たいざい", + "だいじょうぶ", + "だいすき", + "たいせつ", + "たいそう", + "だいたい", + "たいちょう", + "たいてい", + "だいどころ", + "たいない", + "たいねつ", + "たいのう", + "たいはん", + "だいひょう", + "たいふう", + "たいへん", + "たいほ", + "たいまつばな", + "たいみんぐ", + "たいむ", + "たいめん", + "たいやき", + "たいよう", + "たいら", + "たいりょく", + "たいる", + "たいわん", + "たうえ", + "たえる", + "たおす", + "たおる", + "たおれる", + "たかい", + "たかね", + "たきび", + "たくさん", + "たこく", + "たこやき", + "たさい", + "たしざん", + "だじゃれ", + "たすける", + "たずさわる", + "たそがれ", + "たたかう", + "たたく", + "ただしい", + "たたみ", + "たちばな", + "だっかい", + "だっきゃく", + "だっこ", + "だっしゅつ", + "だったい", + "たてる", + "たとえる", + "たなばた", + "たにん", + "たぬき", + "たのしみ", + "たはつ", + "たぶん", + "たべる", + "たぼう", + "たまご", + "たまる", + "だむる", + "ためいき", + "ためす", + "ためる", + "たもつ", + "たやすい", + "たよる", + "たらす", + "たりきほんがん", + "たりょう", + "たりる", + "たると", + "たれる", + "たれんと", + "たろっと", + "たわむれる", + "だんあつ", + "たんい", + "たんおん", + "たんか", + "たんき", + "たんけん", + "たんご", + "たんさん", + "たんじょうび", + "だんせい", + "たんそく", + "たんたい", + "だんち", + "たんてい", + "たんとう", + "だんな", + "たんにん", + "だんねつ", + "たんのう", + "たんぴん", + "だんぼう", + "たんまつ", + "たんめい", + "だんれつ", + "だんろ", + "だんわ", + "ちあい", + "ちあん", + "ちいき", + "ちいさい", + "ちえん", + "ちかい", + "ちから", + "ちきゅう", + "ちきん", + "ちけいず", + "ちけん", + "ちこく", + "ちさい", + "ちしき", + "ちしりょう", + "ちせい", + "ちそう", + "ちたい", + "ちたん", + "ちちおや", + "ちつじょ", + "ちてき", + "ちてん", + "ちぬき", + "ちぬり", + "ちのう", + "ちひょう", + "ちへいせん", + "ちほう", + "ちまた", + "ちみつ", + "ちみどろ", + "ちめいど", + "ちゃんこなべ", + "ちゅうい", + "ちゆりょく", + "ちょうし", + "ちょさくけん", + "ちらし", + "ちらみ", + "ちりがみ", + "ちりょう", + "ちるど", + "ちわわ", + "ちんたい", + "ちんもく", + "ついか", + "ついたち", + "つうか", + "つうじょう", + "つうはん", + "つうわ", + "つかう", + "つかれる", + "つくね", + "つくる", + "つけね", + "つける", + "つごう", + "つたえる", + "つづく", + "つつじ", + "つつむ", + "つとめる", + "つながる", + "つなみ", + "つねづね", + "つのる", + "つぶす", + "つまらない", + "つまる", + "つみき", + "つめたい", + "つもり", + "つもる", + "つよい", + "つるぼ", + "つるみく", + "つわもの", + "つわり", + "てあし", + "てあて", + "てあみ", + "ていおん", + "ていか", + "ていき", + "ていけい", + "ていこく", + "ていさつ", + "ていし", + "ていせい", + "ていたい", + "ていど", + "ていねい", + "ていひょう", + "ていへん", + "ていぼう", + "てうち", + "ておくれ", + "てきとう", + "てくび", + "でこぼこ", + "てさぎょう", + "てさげ", + "てすり", + "てそう", + "てちがい", + "てちょう", + "てつがく", + "てつづき", + "でっぱ", + "てつぼう", + "てつや", + "でぬかえ", + "てぬき", + "てぬぐい", + "てのひら", + "てはい", + "てぶくろ", + "てふだ", + "てほどき", + "てほん", + "てまえ", + "てまきずし", + "てみじか", + "てみやげ", + "てらす", + "てれび", + "てわけ", + "てわたし", + "でんあつ", + "てんいん", + "てんかい", + "てんき", + "てんぐ", + "てんけん", + "てんごく", + "てんさい", + "てんし", + "てんすう", + "でんち", + "てんてき", + "てんとう", + "てんない", + "てんぷら", + "てんぼうだい", + "てんめつ", + "てんらんかい", + "でんりょく", + "でんわ", + "どあい", + "といれ", + "どうかん", + "とうきゅう", + "どうぐ", + "とうし", + "とうむぎ", + "とおい", + "とおか", + "とおく", + "とおす", + "とおる", + "とかい", + "とかす", + "ときおり", + "ときどき", + "とくい", + "とくしゅう", + "とくてん", + "とくに", + "とくべつ", + "とけい", + "とける", + "とこや", + "とさか", + "としょかん", + "とそう", + "とたん", + "とちゅう", + "とっきゅう", + "とっくん", + "とつぜん", + "とつにゅう", + "とどける", + "ととのえる", + "とない", + "となえる", + "となり", + "とのさま", + "とばす", + "どぶがわ", + "とほう", + "とまる", + "とめる", + "ともだち", + "ともる", + "どようび", + "とらえる", + "とんかつ", + "どんぶり", + "ないかく", + "ないこう", + "ないしょ", + "ないす", + "ないせん", + "ないそう", + "なおす", + "ながい", + "なくす", + "なげる", + "なこうど", + "なさけ", + "なたでここ", + "なっとう", + "なつやすみ", + "ななおし", + "なにごと", + "なにもの", + "なにわ", + "なのか", + "なふだ", + "なまいき", + "なまえ", + "なまみ", + "なみだ", + "なめらか", + "なめる", + "なやむ", + "ならう", + "ならび", + "ならぶ", + "なれる", + "なわとび", + "なわばり", + "にあう", + "にいがた", + "にうけ", + "におい", + "にかい", + "にがて", + "にきび", + "にくしみ", + "にくまん", + "にげる", + "にさんかたんそ", + "にしき", + "にせもの", + "にちじょう", + "にちようび", + "にっか", + "にっき", + "にっけい", + "にっこう", + "にっさん", + "にっしょく", + "にっすう", + "にっせき", + "にってい", + "になう", + "にほん", + "にまめ", + "にもつ", + "にやり", + "にゅういん", + "にりんしゃ", + "にわとり", + "にんい", + "にんか", + "にんき", + "にんげん", + "にんしき", + "にんずう", + "にんそう", + "にんたい", + "にんち", + "にんてい", + "にんにく", + "にんぷ", + "にんまり", + "にんむ", + "にんめい", + "にんよう", + "ぬいくぎ", + "ぬかす", + "ぬぐいとる", + "ぬぐう", + "ぬくもり", + "ぬすむ", + "ぬまえび", + "ぬめり", + "ぬらす", + "ぬんちゃく", + "ねあげ", + "ねいき", + "ねいる", + "ねいろ", + "ねぐせ", + "ねくたい", + "ねくら", + "ねこぜ", + "ねこむ", + "ねさげ", + "ねすごす", + "ねそべる", + "ねだん", + "ねつい", + "ねっしん", + "ねつぞう", + "ねったいぎょ", + "ねぶそく", + "ねふだ", + "ねぼう", + "ねほりはほり", + "ねまき", + "ねまわし", + "ねみみ", + "ねむい", + "ねむたい", + "ねもと", + "ねらう", + "ねわざ", + "ねんいり", + "ねんおし", + "ねんかん", + "ねんきん", + "ねんぐ", + "ねんざ", + "ねんし", + "ねんちゃく", + "ねんど", + "ねんぴ", + "ねんぶつ", + "ねんまつ", + "ねんりょう", + "ねんれい", + "のいず", + "のおづま", + "のがす", + "のきなみ", + "のこぎり", + "のこす", + "のこる", + "のせる", + "のぞく", + "のぞむ", + "のたまう", + "のちほど", + "のっく", + "のばす", + "のはら", + "のべる", + "のぼる", + "のみもの", + "のやま", + "のらいぬ", + "のらねこ", + "のりもの", + "のりゆき", + "のれん", + "のんき", + "ばあい", + "はあく", + "ばあさん", + "ばいか", + "ばいく", + "はいけん", + "はいご", + "はいしん", + "はいすい", + "はいせん", + "はいそう", + "はいち", + "ばいばい", + "はいれつ", + "はえる", + "はおる", + "はかい", + "ばかり", + "はかる", + "はくしゅ", + "はけん", + "はこぶ", + "はさみ", + "はさん", + "はしご", + "ばしょ", + "はしる", + "はせる", + "ぱそこん", + "はそん", + "はたん", + "はちみつ", + "はつおん", + "はっかく", + "はづき", + "はっきり", + "はっくつ", + "はっけん", + "はっこう", + "はっさん", + "はっしん", + "はったつ", + "はっちゅう", + "はってん", + "はっぴょう", + "はっぽう", + "はなす", + "はなび", + "はにかむ", + "はぶらし", + "はみがき", + "はむかう", + "はめつ", + "はやい", + "はやし", + "はらう", + "はろうぃん", + "はわい", + "はんい", + "はんえい", + "はんおん", + "はんかく", + "はんきょう", + "ばんぐみ", + "はんこ", + "はんしゃ", + "はんすう", + "はんだん", + "ぱんち", + "ぱんつ", + "はんてい", + "はんとし", + "はんのう", + "はんぱ", + "はんぶん", + "はんぺん", + "はんぼうき", + "はんめい", + "はんらん", + "はんろん", + "ひいき", + "ひうん", + "ひえる", + "ひかく", + "ひかり", + "ひかる", + "ひかん", + "ひくい", + "ひけつ", + "ひこうき", + "ひこく", + "ひさい", + "ひさしぶり", + "ひさん", + "びじゅつかん", + "ひしょ", +]; diff --git a/lib/bip/monero/mnemonic/words_list/languages.dart b/lib/bip/monero/mnemonic/words_list/languages.dart new file mode 100644 index 0000000..f10116d --- /dev/null +++ b/lib/bip/monero/mnemonic/words_list/languages.dart @@ -0,0 +1,60 @@ +/// Library for Monero mnemonic language support. +library monero_mnemonic_languages; + +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic.dart'; + +/// Part for the Chinese Simplified Monero mnemonic language. +part 'chinese_simplified.dart'; + +/// Part for the English Monero mnemonic language. +part 'english.dart'; + +/// Part for the Spanish Monero mnemonic language. +part 'spanish.dart'; + +/// Part for the French Monero mnemonic language. +part 'french.dart'; + +/// Part for the Italian Monero mnemonic language. +part 'italian.dart'; + +/// Part for the Japanese Monero mnemonic language. +part 'japanese.dart'; + +/// Part for the Portuguese Monero mnemonic language. +part 'portuguese.dart'; + +/// Part for the Dutch Monero mnemonic language. +part 'dutch.dart'; + +/// Part for the German Monero mnemonic language. +part 'german.dart'; + +/// Part for the Russian Monero mnemonic language. +part 'russian.dart'; + +/// A function that returns a list of words for a specific Monero language. +List moneroMnemonicWorsList(MoneroLanguages language) { + switch (language) { + case MoneroLanguages.chineseSimplified: + return _chineseSimplified; + case MoneroLanguages.dutch: + return _dutch; + case MoneroLanguages.english: + return _english; + case MoneroLanguages.french: + return _french; + case MoneroLanguages.german: + return _german; + case MoneroLanguages.italian: + return _italian; + case MoneroLanguages.japanese: + return _japanese; + case MoneroLanguages.portuguese: + return _portuguese; + case MoneroLanguages.spanish: + return _spanish; + case MoneroLanguages.russian: + return _russian; + } +} diff --git a/lib/bip/monero/mnemonic/words_list/portuguese.dart b/lib/bip/monero/mnemonic/words_list/portuguese.dart new file mode 100644 index 0000000..cfed231 --- /dev/null +++ b/lib/bip/monero/mnemonic/words_list/portuguese.dart @@ -0,0 +1,1630 @@ +part of 'package:blockchain_utils/bip/monero/mnemonic/words_list/languages.dart'; + +const List _portuguese = [ + "abaular", + "abdominal", + "abeto", + "abissinio", + "abjeto", + "ablucao", + "abnegar", + "abotoar", + "abrutalhar", + "absurdo", + "abutre", + "acautelar", + "accessorios", + "acetona", + "achocolatado", + "acirrar", + "acne", + "acovardar", + "acrostico", + "actinomicete", + "acustico", + "adaptavel", + "adeus", + "adivinho", + "adjunto", + "admoestar", + "adnominal", + "adotivo", + "adquirir", + "adriatico", + "adsorcao", + "adutora", + "advogar", + "aerossol", + "afazeres", + "afetuoso", + "afixo", + "afluir", + "afortunar", + "afrouxar", + "aftosa", + "afunilar", + "agentes", + "agito", + "aglutinar", + "aiatola", + "aimore", + "aino", + "aipo", + "airoso", + "ajeitar", + "ajoelhar", + "ajudante", + "ajuste", + "alazao", + "albumina", + "alcunha", + "alegria", + "alexandre", + "alforriar", + "alguns", + "alhures", + "alivio", + "almoxarife", + "alotropico", + "alpiste", + "alquimista", + "alsaciano", + "altura", + "aluviao", + "alvura", + "amazonico", + "ambulatorio", + "ametodico", + "amizades", + "amniotico", + "amovivel", + "amurada", + "anatomico", + "ancorar", + "anexo", + "anfora", + "aniversario", + "anjo", + "anotar", + "ansioso", + "anturio", + "anuviar", + "anverso", + "anzol", + "aonde", + "apaziguar", + "apito", + "aplicavel", + "apoteotico", + "aprimorar", + "aprumo", + "apto", + "apuros", + "aquoso", + "arauto", + "arbusto", + "arduo", + "aresta", + "arfar", + "arguto", + "aritmetico", + "arlequim", + "armisticio", + "aromatizar", + "arpoar", + "arquivo", + "arrumar", + "arsenio", + "arturiano", + "aruaque", + "arvores", + "asbesto", + "ascorbico", + "aspirina", + "asqueroso", + "assustar", + "astuto", + "atazanar", + "ativo", + "atletismo", + "atmosferico", + "atormentar", + "atroz", + "aturdir", + "audivel", + "auferir", + "augusto", + "aula", + "aumento", + "aurora", + "autuar", + "avatar", + "avexar", + "avizinhar", + "avolumar", + "avulso", + "axiomatico", + "azerbaijano", + "azimute", + "azoto", + "azulejo", + "bacteriologista", + "badulaque", + "baforada", + "baixote", + "bajular", + "balzaquiana", + "bambuzal", + "banzo", + "baoba", + "baqueta", + "barulho", + "bastonete", + "batuta", + "bauxita", + "bavaro", + "bazuca", + "bcrepuscular", + "beato", + "beduino", + "begonia", + "behaviorista", + "beisebol", + "belzebu", + "bemol", + "benzido", + "beocio", + "bequer", + "berro", + "besuntar", + "betume", + "bexiga", + "bezerro", + "biatlon", + "biboca", + "bicuspide", + "bidirecional", + "bienio", + "bifurcar", + "bigorna", + "bijuteria", + "bimotor", + "binormal", + "bioxido", + "bipolarizacao", + "biquini", + "birutice", + "bisturi", + "bituca", + "biunivoco", + "bivalve", + "bizarro", + "blasfemo", + "blenorreia", + "blindar", + "bloqueio", + "blusao", + "boazuda", + "bofete", + "bojudo", + "bolso", + "bombordo", + "bonzo", + "botina", + "boquiaberto", + "bostoniano", + "botulismo", + "bourbon", + "bovino", + "boximane", + "bravura", + "brevidade", + "britar", + "broxar", + "bruno", + "bruxuleio", + "bubonico", + "bucolico", + "buda", + "budista", + "bueiro", + "buffer", + "bugre", + "bujao", + "bumerangue", + "burundines", + "busto", + "butique", + "buzios", + "caatinga", + "cabuqui", + "cacunda", + "cafuzo", + "cajueiro", + "camurca", + "canudo", + "caquizeiro", + "carvoeiro", + "casulo", + "catuaba", + "cauterizar", + "cebolinha", + "cedula", + "ceifeiro", + "celulose", + "cerzir", + "cesto", + "cetro", + "ceus", + "cevar", + "chavena", + "cheroqui", + "chita", + "chovido", + "chuvoso", + "ciatico", + "cibernetico", + "cicuta", + "cidreira", + "cientistas", + "cifrar", + "cigarro", + "cilio", + "cimo", + "cinzento", + "cioso", + "cipriota", + "cirurgico", + "cisto", + "citrico", + "ciumento", + "civismo", + "clavicula", + "clero", + "clitoris", + "cluster", + "coaxial", + "cobrir", + "cocota", + "codorniz", + "coexistir", + "cogumelo", + "coito", + "colusao", + "compaixao", + "comutativo", + "contentamento", + "convulsivo", + "coordenativa", + "coquetel", + "correto", + "corvo", + "costureiro", + "cotovia", + "covil", + "cozinheiro", + "cretino", + "cristo", + "crivo", + "crotalo", + "cruzes", + "cubo", + "cucuia", + "cueiro", + "cuidar", + "cujo", + "cultural", + "cunilingua", + "cupula", + "curvo", + "custoso", + "cutucar", + "czarismo", + "dablio", + "dacota", + "dados", + "daguerreotipo", + "daiquiri", + "daltonismo", + "damista", + "dantesco", + "daquilo", + "darwinista", + "dasein", + "dativo", + "deao", + "debutantes", + "decurso", + "deduzir", + "defunto", + "degustar", + "dejeto", + "deltoide", + "demover", + "denunciar", + "deputado", + "deque", + "dervixe", + "desvirtuar", + "deturpar", + "deuteronomio", + "devoto", + "dextrose", + "dezoito", + "diatribe", + "dicotomico", + "didatico", + "dietista", + "difuso", + "digressao", + "diluvio", + "diminuto", + "dinheiro", + "dinossauro", + "dioxido", + "diplomatico", + "dique", + "dirimivel", + "disturbio", + "diurno", + "divulgar", + "dizivel", + "doar", + "dobro", + "docura", + "dodoi", + "doer", + "dogue", + "doloso", + "domo", + "donzela", + "doping", + "dorsal", + "dossie", + "dote", + "doutro", + "doze", + "dravidico", + "dreno", + "driver", + "dropes", + "druso", + "dubnio", + "ducto", + "dueto", + "dulija", + "dundum", + "duodeno", + "duquesa", + "durou", + "duvidoso", + "duzia", + "ebano", + "ebrio", + "eburneo", + "echarpe", + "eclusa", + "ecossistema", + "ectoplasma", + "ecumenismo", + "eczema", + "eden", + "editorial", + "edredom", + "edulcorar", + "efetuar", + "efigie", + "efluvio", + "egiptologo", + "egresso", + "egua", + "einsteiniano", + "eira", + "eivar", + "eixos", + "ejetar", + "elastomero", + "eldorado", + "elixir", + "elmo", + "eloquente", + "elucidativo", + "emaranhar", + "embutir", + "emerito", + "emfa", + "emitir", + "emotivo", + "empuxo", + "emulsao", + "enamorar", + "encurvar", + "enduro", + "enevoar", + "enfurnar", + "enguico", + "enho", + "enigmista", + "enlutar", + "enormidade", + "enpreendimento", + "enquanto", + "enriquecer", + "enrugar", + "entusiastico", + "enunciar", + "envolvimento", + "enxuto", + "enzimatico", + "eolico", + "epiteto", + "epoxi", + "epura", + "equivoco", + "erario", + "erbio", + "ereto", + "erguido", + "erisipela", + "ermo", + "erotizar", + "erros", + "erupcao", + "ervilha", + "esburacar", + "escutar", + "esfuziante", + "esguio", + "esloveno", + "esmurrar", + "esoterismo", + "esperanca", + "espirito", + "espurio", + "essencialmente", + "esturricar", + "esvoacar", + "etario", + "eterno", + "etiquetar", + "etnologo", + "etos", + "etrusco", + "euclidiano", + "euforico", + "eugenico", + "eunuco", + "europio", + "eustaquio", + "eutanasia", + "evasivo", + "eventualidade", + "evitavel", + "evoluir", + "exaustor", + "excursionista", + "exercito", + "exfoliado", + "exito", + "exotico", + "expurgo", + "exsudar", + "extrusora", + "exumar", + "fabuloso", + "facultativo", + "fado", + "fagulha", + "faixas", + "fajuto", + "faltoso", + "famoso", + "fanzine", + "fapesp", + "faquir", + "fartura", + "fastio", + "faturista", + "fausto", + "favorito", + "faxineira", + "fazer", + "fealdade", + "febril", + "fecundo", + "fedorento", + "feerico", + "feixe", + "felicidade", + "felpudo", + "feltro", + "femur", + "fenotipo", + "fervura", + "festivo", + "feto", + "feudo", + "fevereiro", + "fezinha", + "fiasco", + "fibra", + "ficticio", + "fiduciario", + "fiesp", + "fifa", + "figurino", + "fijiano", + "filtro", + "finura", + "fiorde", + "fiquei", + "firula", + "fissurar", + "fitoteca", + "fivela", + "fixo", + "flavio", + "flexor", + "flibusteiro", + "flotilha", + "fluxograma", + "fobos", + "foco", + "fofura", + "foguista", + "foie", + "foliculo", + "fominha", + "fonte", + "forum", + "fosso", + "fotossintese", + "foxtrote", + "fraudulento", + "frevo", + "frivolo", + "frouxo", + "frutose", + "fuba", + "fucsia", + "fugitivo", + "fuinha", + "fujao", + "fulustreco", + "fumo", + "funileiro", + "furunculo", + "fustigar", + "futurologo", + "fuxico", + "fuzue", + "gabriel", + "gado", + "gaelico", + "gafieira", + "gaguejo", + "gaivota", + "gajo", + "galvanoplastico", + "gamo", + "ganso", + "garrucha", + "gastronomo", + "gatuno", + "gaussiano", + "gaviao", + "gaxeta", + "gazeteiro", + "gear", + "geiser", + "geminiano", + "generoso", + "genuino", + "geossinclinal", + "gerundio", + "gestual", + "getulista", + "gibi", + "gigolo", + "gilete", + "ginseng", + "giroscopio", + "glaucio", + "glacial", + "gleba", + "glifo", + "glote", + "glutonia", + "gnostico", + "goela", + "gogo", + "goitaca", + "golpista", + "gomo", + "gonzo", + "gorro", + "gostou", + "goticula", + "gourmet", + "governo", + "gozo", + "graxo", + "grevista", + "grito", + "grotesco", + "gruta", + "guaxinim", + "gude", + "gueto", + "guizo", + "guloso", + "gume", + "guru", + "gustativo", + "grelhado", + "gutural", + "habitue", + "haitiano", + "halterofilista", + "hamburguer", + "hanseniase", + "happening", + "harpista", + "hastear", + "haveres", + "hebreu", + "hectometro", + "hedonista", + "hegira", + "helena", + "helminto", + "hemorroidas", + "henrique", + "heptassilabo", + "hertziano", + "hesitar", + "heterossexual", + "heuristico", + "hexagono", + "hiato", + "hibrido", + "hidrostatico", + "hieroglifo", + "hifenizar", + "higienizar", + "hilario", + "himen", + "hino", + "hippie", + "hirsuto", + "historiografia", + "hitlerista", + "hodometro", + "hoje", + "holograma", + "homus", + "honroso", + "hoquei", + "horto", + "hostilizar", + "hotentote", + "huguenote", + "humilde", + "huno", + "hurra", + "hutu", + "iaia", + "ialorixa", + "iambico", + "iansa", + "iaque", + "iara", + "iatista", + "iberico", + "ibis", + "icar", + "iceberg", + "icosagono", + "idade", + "ideologo", + "idiotice", + "idoso", + "iemenita", + "iene", + "igarape", + "iglu", + "ignorar", + "igreja", + "iguaria", + "iidiche", + "ilativo", + "iletrado", + "ilharga", + "ilimitado", + "ilogismo", + "ilustrissimo", + "imaturo", + "imbuzeiro", + "imerso", + "imitavel", + "imovel", + "imputar", + "imutavel", + "inaveriguavel", + "incutir", + "induzir", + "inextricavel", + "infusao", + "ingua", + "inhame", + "iniquo", + "injusto", + "inning", + "inoxidavel", + "inquisitorial", + "insustentavel", + "intumescimento", + "inutilizavel", + "invulneravel", + "inzoneiro", + "iodo", + "iogurte", + "ioio", + "ionosfera", + "ioruba", + "iota", + "ipsilon", + "irascivel", + "iris", + "irlandes", + "irmaos", + "iroques", + "irrupcao", + "isca", + "isento", + "islandes", + "isotopo", + "isqueiro", + "israelita", + "isso", + "isto", + "iterbio", + "itinerario", + "itrio", + "iuane", + "iugoslavo", + "jabuticabeira", + "jacutinga", + "jade", + "jagunco", + "jainista", + "jaleco", + "jambo", + "jantarada", + "japones", + "jaqueta", + "jarro", + "jasmim", + "jato", + "jaula", + "javel", + "jazz", + "jegue", + "jeitoso", + "jejum", + "jenipapo", + "jeova", + "jequitiba", + "jersei", + "jesus", + "jetom", + "jiboia", + "jihad", + "jilo", + "jingle", + "jipe", + "jocoso", + "joelho", + "joguete", + "joio", + "jojoba", + "jorro", + "jota", + "joule", + "joviano", + "jubiloso", + "judoca", + "jugular", + "juizo", + "jujuba", + "juliano", + "jumento", + "junto", + "jururu", + "justo", + "juta", + "juventude", + "labutar", + "laguna", + "laico", + "lajota", + "lanterninha", + "lapso", + "laquear", + "lastro", + "lauto", + "lavrar", + "laxativo", + "lazer", + "leasing", + "lebre", + "lecionar", + "ledo", + "leguminoso", + "leitura", + "lele", + "lemure", + "lento", + "leonardo", + "leopardo", + "lepton", + "leque", + "leste", + "letreiro", + "leucocito", + "levitico", + "lexicologo", + "lhama", + "lhufas", + "liame", + "licoroso", + "lidocaina", + "liliputiano", + "limusine", + "linotipo", + "lipoproteina", + "liquidos", + "lirismo", + "lisura", + "liturgico", + "livros", + "lixo", + "lobulo", + "locutor", + "lodo", + "logro", + "lojista", + "lombriga", + "lontra", + "loop", + "loquaz", + "lorota", + "losango", + "lotus", + "louvor", + "luar", + "lubrificavel", + "lucros", + "lugubre", + "luis", + "luminoso", + "luneta", + "lustroso", + "luto", + "luvas", + "luxuriante", + "luzeiro", + "maduro", + "maestro", + "mafioso", + "magro", + "maiuscula", + "majoritario", + "malvisto", + "mamute", + "manutencao", + "mapoteca", + "maquinista", + "marzipa", + "masturbar", + "matuto", + "mausoleu", + "mavioso", + "maxixe", + "mazurca", + "meandro", + "mecha", + "medusa", + "mefistofelico", + "megera", + "meirinho", + "melro", + "memorizar", + "menu", + "mequetrefe", + "mertiolate", + "mestria", + "metroviario", + "mexilhao", + "mezanino", + "miau", + "microssegundo", + "midia", + "migratorio", + "mimosa", + "minuto", + "miosotis", + "mirtilo", + "misturar", + "mitzvah", + "miudos", + "mixuruca", + "mnemonico", + "moagem", + "mobilizar", + "modulo", + "moer", + "mofo", + "mogno", + "moita", + "molusco", + "monumento", + "moqueca", + "morubixaba", + "mostruario", + "motriz", + "mouse", + "movivel", + "mozarela", + "muarra", + "muculmano", + "mudo", + "mugir", + "muitos", + "mumunha", + "munir", + "muon", + "muquira", + "murros", + "musselina", + "nacoes", + "nado", + "naftalina", + "nago", + "naipe", + "naja", + "nalgum", + "namoro", + "nanquim", + "napolitano", + "naquilo", + "nascimento", + "nautilo", + "navios", + "nazista", + "nebuloso", + "nectarina", + "nefrologo", + "negus", + "nelore", + "nenufar", + "nepotismo", + "nervura", + "neste", + "netuno", + "neutron", + "nevoeiro", + "newtoniano", + "nexo", + "nhenhenhem", + "nhoque", + "nigeriano", + "niilista", + "ninho", + "niobio", + "niponico", + "niquelar", + "nirvana", + "nisto", + "nitroglicerina", + "nivoso", + "nobreza", + "nocivo", + "noel", + "nogueira", + "noivo", + "nojo", + "nominativo", + "nonuplo", + "noruegues", + "nostalgico", + "noturno", + "nouveau", + "nuanca", + "nublar", + "nucleotideo", + "nudista", + "nulo", + "numismatico", + "nunquinha", + "nupcias", + "nutritivo", + "nuvens", + "oasis", + "obcecar", + "obeso", + "obituario", + "objetos", + "oblongo", + "obnoxio", + "obrigatorio", + "obstruir", + "obtuso", + "obus", + "obvio", + "ocaso", + "occipital", + "oceanografo", + "ocioso", + "oclusivo", + "ocorrer", + "ocre", + "octogono", + "odalisca", + "odisseia", + "odorifico", + "oersted", + "oeste", + "ofertar", + "ofidio", + "oftalmologo", + "ogiva", + "ogum", + "oigale", + "oitavo", + "oitocentos", + "ojeriza", + "olaria", + "oleoso", + "olfato", + "olhos", + "oliveira", + "olmo", + "olor", + "olvidavel", + "ombudsman", + "omeleteira", + "omitir", + "omoplata", + "onanismo", + "ondular", + "oneroso", + "onomatopeico", + "ontologico", + "onus", + "onze", + "opalescente", + "opcional", + "operistico", + "opio", + "oposto", + "oprobrio", + "optometrista", + "opusculo", + "oratorio", + "orbital", + "orcar", + "orfao", + "orixa", + "orla", + "ornitologo", + "orquidea", + "ortorrombico", + "orvalho", + "osculo", + "osmotico", + "ossudo", + "ostrogodo", + "otario", + "otite", + "ouro", + "ousar", + "outubro", + "ouvir", + "ovario", + "overnight", + "oviparo", + "ovni", + "ovoviviparo", + "ovulo", + "oxala", + "oxente", + "oxiuro", + "oxossi", + "ozonizar", + "paciente", + "pactuar", + "padronizar", + "paete", + "pagodeiro", + "paixao", + "pajem", + "paludismo", + "pampas", + "panturrilha", + "papudo", + "paquistanes", + "pastoso", + "patua", + "paulo", + "pauzinhos", + "pavoroso", + "paxa", + "pazes", + "peao", + "pecuniario", + "pedunculo", + "pegaso", + "peixinho", + "pejorativo", + "pelvis", + "penuria", + "pequno", + "petunia", + "pezada", + "piauiense", + "pictorico", + "pierro", + "pigmeu", + "pijama", + "pilulas", + "pimpolho", + "pintura", + "piorar", + "pipocar", + "piqueteiro", + "pirulito", + "pistoleiro", + "pituitaria", + "pivotar", + "pixote", + "pizzaria", + "plistoceno", + "plotar", + "pluviometrico", + "pneumonico", + "poco", + "podridao", + "poetisa", + "pogrom", + "pois", + "polvorosa", + "pomposo", + "ponderado", + "pontudo", + "populoso", + "poquer", + "porvir", + "posudo", + "potro", + "pouso", + "povoar", + "prazo", + "prezar", + "privilegios", + "proximo", + "prussiano", + "pseudopode", + "psoriase", + "pterossauros", + "ptialina", + "ptolemaico", + "pudor", + "pueril", + "pufe", + "pugilista", + "puir", + "pujante", + "pulverizar", + "pumba", + "punk", + "purulento", + "pustula", + "putsch", + "puxe", + "quatrocentos", + "quetzal", + "quixotesco", + "quotizavel", + "rabujice", + "racista", + "radonio", + "rafia", + "ragu", + "rajado", + "ralo", + "rampeiro", + "ranzinza", + "raptor", + "raquitismo", + "raro", + "rasurar", + "ratoeira", + "ravioli", + "razoavel", + "reavivar", + "rebuscar", + "recusavel", + "reduzivel", + "reexposicao", + "refutavel", + "regurgitar", + "reivindicavel", + "rejuvenescimento", + "relva", + "remuneravel", + "renunciar", + "reorientar", + "repuxo", + "requisito", + "resumo", + "returno", + "reutilizar", + "revolvido", + "rezonear", + "riacho", + "ribossomo", + "ricota", + "ridiculo", + "rifle", + "rigoroso", + "rijo", + "rimel", + "rins", + "rios", + "riqueza", + "respeito", + "rissole", + "ritualistico", + "rivalizar", + "rixa", + "robusto", + "rococo", + "rodoviario", + "roer", + "rogo", + "rojao", + "rolo", + "rompimento", + "ronronar", + "roqueiro", + "rorqual", + "rosto", + "rotundo", + "rouxinol", + "roxo", + "royal", + "ruas", + "rucula", + "rudimentos", + "ruela", + "rufo", + "rugoso", + "ruivo", + "rule", + "rumoroso", + "runico", + "ruptura", + "rural", + "rustico", + "rutilar", + "saariano", + "sabujo", + "sacudir", + "sadomasoquista", + "safra", + "sagui", + "sais", + "samurai", + "santuario", + "sapo", + "saquear", + "sartriano", + "saturno", + "saude", + "sauva", + "saveiro", + "saxofonista", + "sazonal", + "scherzo", + "script", + "seara", + "seborreia", + "secura", + "seduzir", + "sefardim", + "seguro", + "seja", + "selvas", + "sempre", + "senzala", + "sepultura", + "sequoia", + "sestercio", + "setuplo", + "seus", + "seviciar", + "sezonismo", + "shalom", + "siames", + "sibilante", + "sicrano", + "sidra", + "sifilitico", + "signos", + "silvo", + "simultaneo", + "sinusite", + "sionista", + "sirio", + "sisudo", + "situar", + "sivan", + "slide", + "slogan", + "soar", + "sobrio", + "socratico", + "sodomizar", + "soerguer", + "software", + "sogro", + "soja", + "solver", + "somente", + "sonso", + "sopro", + "soquete", + "sorveteiro", + "sossego", + "soturno", + "sousafone", + "sovinice", + "sozinho", + "suavizar", + "subverter", + "sucursal", + "sudoriparo", + "sufragio", + "sugestoes", + "suite", + "sujo", + "sultao", + "sumula", + "suntuoso", + "suor", + "supurar", + "suruba", + "susto", + "suturar", + "suvenir", + "tabuleta", + "taco", + "tadjique", + "tafeta", + "tagarelice", + "taitiano", + "talvez", + "tampouco", + "tanzaniano", + "taoista", + "tapume", + "taquion", + "tarugo", + "tascar", + "tatuar", + "tautologico", + "tavola", + "taxionomista", + "tchecoslovaco", + "teatrologo", + "tectonismo", + "tedioso", + "teflon", + "tegumento", + "teixo", + "telurio", + "temporas", + "tenue", + "teosofico", + "tepido", + "tequila", + "terrorista", + "testosterona", + "tetrico", + "teutonico", + "teve", + "texugo", + "tiara", + "tibia", + "tiete", + "tifoide", + "tigresa", + "tijolo", + "tilintar", + "timpano", + "tintureiro", + "tiquete", + "tiroteio", + "tisico", + "titulos", + "tive", + "toar", + "toboga", + "tofu", + "togoles", + "toicinho", + "tolueno", + "tomografo", + "tontura", + "toponimo", + "toquio", + "torvelinho", + "tostar", + "toto", + "touro", + "toxina", + "trazer", + "trezentos", + "trivialidade", + "trovoar", + "truta", + "tuaregue", + "tubular", + "tucano", + "tudo", + "tufo", + "tuiste", + "tulipa", + "tumultuoso", + "tunisino", + "tupiniquim", + "turvo", + "tutu", + "ucraniano", + "udenista", + "ufanista", + "ufologo", + "ugaritico", + "uiste", + "uivo", + "ulceroso", + "ulema", + "ultravioleta", + "umbilical", + "umero", + "umido", + "umlaut", + "unanimidade", + "unesco", + "ungulado", + "unheiro", + "univoco", + "untuoso", + "urano", + "urbano", + "urdir", + "uretra", + "urgente", + "urinol", + "urna", + "urologo", + "urro", + "ursulina", + "urtiga", + "urupe", + "usavel", + "usbeque", + "usei", + "usineiro", + "usurpar", + "utero", + "utilizar", + "utopico", + "uvular", + "uxoricidio", + "vacuo", + "vadio", + "vaguear", + "vaivem", + "valvula", + "vampiro", + "vantajoso", + "vaporoso", + "vaquinha", + "varziano", + "vasto", + "vaticinio", + "vaudeville", + "vazio", + "veado", + "vedico", + "veemente", + "vegetativo", + "veio", + "veja", + "veludo", + "venusiano", + "verdade", + "verve", + "vestuario", + "vetusto", + "vexatorio", + "vezes", + "viavel", + "vibratorio", + "victor", + "vicunha", + "vidros", + "vietnamita", + "vigoroso", + "vilipendiar", + "vime", + "vintem", + "violoncelo", + "viquingue", + "virus", + "visualizar", + "vituperio", + "viuvo", + "vivo", + "vizir", + "voar", + "vociferar", + "vodu", + "vogar", + "voile", + "volver", + "vomito", + "vontade", + "vortice", + "vosso", + "voto", + "vovozinha", + "voyeuse", + "vozes", + "vulva", + "vupt", + "western", + "xadrez", + "xale", + "xampu", + "xango", + "xarope", + "xaual", + "xavante", + "xaxim", + "xenonio", + "xepa", + "xerox", + "xicara", + "xifopago", + "xiita", + "xilogravura", + "xinxim", + "xistoso", + "xixi", + "xodo", + "xogum", + "xucro", + "zabumba", + "zagueiro", + "zambiano", + "zanzar", + "zarpar", + "zebu", + "zefiro", + "zeloso", + "zenite", + "zumbi" +]; diff --git a/lib/bip/monero/mnemonic/words_list/russian.dart b/lib/bip/monero/mnemonic/words_list/russian.dart new file mode 100644 index 0000000..3583605 --- /dev/null +++ b/lib/bip/monero/mnemonic/words_list/russian.dart @@ -0,0 +1,1630 @@ +part of 'package:blockchain_utils/bip/monero/mnemonic/words_list/languages.dart'; + +const List _russian = [ + "абажур", + "абзац", + "абонент", + "абрикос", + "абсурд", + "авангард", + "август", + "авиация", + "авоська", + "автор", + "агат", + "агент", + "агитатор", + "агнец", + "агония", + "агрегат", + "адвокат", + "адмирал", + "адрес", + "ажиотаж", + "азарт", + "азбука", + "азот", + "аист", + "айсберг", + "академия", + "аквариум", + "аккорд", + "акробат", + "аксиома", + "актер", + "акула", + "акция", + "алгоритм", + "алебарда", + "аллея", + "алмаз", + "алтарь", + "алфавит", + "алхимик", + "алый", + "альбом", + "алюминий", + "амбар", + "аметист", + "амнезия", + "ампула", + "амфора", + "анализ", + "ангел", + "анекдот", + "анимация", + "анкета", + "аномалия", + "ансамбль", + "антенна", + "апатия", + "апельсин", + "апофеоз", + "аппарат", + "апрель", + "аптека", + "арабский", + "арбуз", + "аргумент", + "арест", + "ария", + "арка", + "армия", + "аромат", + "арсенал", + "артист", + "архив", + "аршин", + "асбест", + "аскетизм", + "аспект", + "ассорти", + "астроном", + "асфальт", + "атака", + "ателье", + "атлас", + "атом", + "атрибут", + "аудитор", + "аукцион", + "аура", + "афера", + "афиша", + "ахинея", + "ацетон", + "аэропорт", + "бабушка", + "багаж", + "бадья", + "база", + "баклажан", + "балкон", + "бампер", + "банк", + "барон", + "бассейн", + "батарея", + "бахрома", + "башня", + "баян", + "бегство", + "бедро", + "бездна", + "бекон", + "белый", + "бензин", + "берег", + "беседа", + "бетонный", + "биатлон", + "библия", + "бивень", + "бигуди", + "бидон", + "бизнес", + "бикини", + "билет", + "бинокль", + "биология", + "биржа", + "бисер", + "битва", + "бицепс", + "благо", + "бледный", + "близкий", + "блок", + "блуждать", + "блюдо", + "бляха", + "бобер", + "богатый", + "бодрый", + "боевой", + "бокал", + "большой", + "борьба", + "босой", + "ботинок", + "боцман", + "бочка", + "боярин", + "брать", + "бревно", + "бригада", + "бросать", + "брызги", + "брюки", + "бублик", + "бугор", + "будущее", + "буква", + "бульвар", + "бумага", + "бунт", + "бурный", + "бусы", + "бутылка", + "буфет", + "бухта", + "бушлат", + "бывалый", + "быль", + "быстрый", + "быть", + "бюджет", + "бюро", + "бюст", + "вагон", + "важный", + "ваза", + "вакцина", + "валюта", + "вампир", + "ванная", + "вариант", + "вассал", + "вата", + "вафля", + "вахта", + "вдова", + "вдыхать", + "ведущий", + "веер", + "вежливый", + "везти", + "веко", + "великий", + "вена", + "верить", + "веселый", + "ветер", + "вечер", + "вешать", + "вещь", + "веяние", + "взаимный", + "взбучка", + "взвод", + "взгляд", + "вздыхать", + "взлетать", + "взмах", + "взнос", + "взор", + "взрыв", + "взывать", + "взятка", + "вибрация", + "визит", + "вилка", + "вино", + "вирус", + "висеть", + "витрина", + "вихрь", + "вишневый", + "включать", + "вкус", + "власть", + "влечь", + "влияние", + "влюблять", + "внешний", + "внимание", + "внук", + "внятный", + "вода", + "воевать", + "вождь", + "воздух", + "войти", + "вокзал", + "волос", + "вопрос", + "ворота", + "восток", + "впадать", + "впускать", + "врач", + "время", + "вручать", + "всадник", + "всеобщий", + "вспышка", + "встреча", + "вторник", + "вулкан", + "вурдалак", + "входить", + "въезд", + "выбор", + "вывод", + "выгодный", + "выделять", + "выезжать", + "выживать", + "вызывать", + "выигрыш", + "вылезать", + "выносить", + "выпивать", + "высокий", + "выходить", + "вычет", + "вышка", + "выяснять", + "вязать", + "вялый", + "гавань", + "гадать", + "газета", + "гаишник", + "галстук", + "гамма", + "гарантия", + "гастроли", + "гвардия", + "гвоздь", + "гектар", + "гель", + "генерал", + "геолог", + "герой", + "гешефт", + "гибель", + "гигант", + "гильза", + "гимн", + "гипотеза", + "гитара", + "глаз", + "глина", + "глоток", + "глубокий", + "глыба", + "глядеть", + "гнать", + "гнев", + "гнить", + "гном", + "гнуть", + "говорить", + "годовой", + "голова", + "гонка", + "город", + "гость", + "готовый", + "граница", + "грех", + "гриб", + "громкий", + "группа", + "грызть", + "грязный", + "губа", + "гудеть", + "гулять", + "гуманный", + "густой", + "гуща", + "давать", + "далекий", + "дама", + "данные", + "дарить", + "дать", + "дача", + "дверь", + "движение", + "двор", + "дебют", + "девушка", + "дедушка", + "дежурный", + "дезертир", + "действие", + "декабрь", + "дело", + "демократ", + "день", + "депутат", + "держать", + "десяток", + "детский", + "дефицит", + "дешевый", + "деятель", + "джаз", + "джинсы", + "джунгли", + "диалог", + "диван", + "диета", + "дизайн", + "дикий", + "динамика", + "диплом", + "директор", + "диск", + "дитя", + "дичь", + "длинный", + "дневник", + "добрый", + "доверие", + "договор", + "дождь", + "доза", + "документ", + "должен", + "домашний", + "допрос", + "дорога", + "доход", + "доцент", + "дочь", + "дощатый", + "драка", + "древний", + "дрожать", + "друг", + "дрянь", + "дубовый", + "дуга", + "дудка", + "дукат", + "дуло", + "думать", + "дупло", + "дурак", + "дуть", + "духи", + "душа", + "дуэт", + "дымить", + "дыня", + "дыра", + "дыханье", + "дышать", + "дьявол", + "дюжина", + "дюйм", + "дюна", + "дядя", + "дятел", + "егерь", + "единый", + "едкий", + "ежевика", + "ежик", + "езда", + "елка", + "емкость", + "ерунда", + "ехать", + "жадный", + "жажда", + "жалеть", + "жанр", + "жара", + "жать", + "жгучий", + "ждать", + "жевать", + "желание", + "жемчуг", + "женщина", + "жертва", + "жесткий", + "жечь", + "живой", + "жидкость", + "жизнь", + "жилье", + "жирный", + "житель", + "журнал", + "жюри", + "забывать", + "завод", + "загадка", + "задача", + "зажечь", + "зайти", + "закон", + "замечать", + "занимать", + "западный", + "зарплата", + "засыпать", + "затрата", + "захват", + "зацепка", + "зачет", + "защита", + "заявка", + "звать", + "звезда", + "звонить", + "звук", + "здание", + "здешний", + "здоровье", + "зебра", + "зевать", + "зеленый", + "земля", + "зенит", + "зеркало", + "зефир", + "зигзаг", + "зима", + "зиять", + "злак", + "злой", + "змея", + "знать", + "зной", + "зодчий", + "золотой", + "зомби", + "зона", + "зоопарк", + "зоркий", + "зрачок", + "зрение", + "зритель", + "зубной", + "зыбкий", + "зять", + "игла", + "иголка", + "играть", + "идея", + "идиот", + "идол", + "идти", + "иерархия", + "избрать", + "известие", + "изгонять", + "издание", + "излагать", + "изменять", + "износ", + "изоляция", + "изрядный", + "изучать", + "изымать", + "изящный", + "икона", + "икра", + "иллюзия", + "имбирь", + "иметь", + "имидж", + "иммунный", + "империя", + "инвестор", + "индивид", + "инерция", + "инженер", + "иномарка", + "институт", + "интерес", + "инфекция", + "инцидент", + "ипподром", + "ирис", + "ирония", + "искать", + "история", + "исходить", + "исчезать", + "итог", + "июль", + "июнь", + "кабинет", + "кавалер", + "кадр", + "казарма", + "кайф", + "кактус", + "калитка", + "камень", + "канал", + "капитан", + "картина", + "касса", + "катер", + "кафе", + "качество", + "каша", + "каюта", + "квартира", + "квинтет", + "квота", + "кедр", + "кекс", + "кенгуру", + "кепка", + "керосин", + "кетчуп", + "кефир", + "кибитка", + "кивнуть", + "кидать", + "километр", + "кино", + "киоск", + "кипеть", + "кирпич", + "кисть", + "китаец", + "класс", + "клетка", + "клиент", + "клоун", + "клуб", + "клык", + "ключ", + "клятва", + "книга", + "кнопка", + "кнут", + "князь", + "кобура", + "ковер", + "коготь", + "кодекс", + "кожа", + "козел", + "койка", + "коктейль", + "колено", + "компания", + "конец", + "копейка", + "короткий", + "костюм", + "котел", + "кофе", + "кошка", + "красный", + "кресло", + "кричать", + "кровь", + "крупный", + "крыша", + "крючок", + "кубок", + "кувшин", + "кудрявый", + "кузов", + "кукла", + "культура", + "кумир", + "купить", + "курс", + "кусок", + "кухня", + "куча", + "кушать", + "кювет", + "лабиринт", + "лавка", + "лагерь", + "ладонь", + "лазерный", + "лайнер", + "лакей", + "лампа", + "ландшафт", + "лапа", + "ларек", + "ласковый", + "лауреат", + "лачуга", + "лаять", + "лгать", + "лебедь", + "левый", + "легкий", + "ледяной", + "лежать", + "лекция", + "лента", + "лепесток", + "лесной", + "лето", + "лечь", + "леший", + "лживый", + "либерал", + "ливень", + "лига", + "лидер", + "ликовать", + "лиловый", + "лимон", + "линия", + "липа", + "лирика", + "лист", + "литр", + "лифт", + "лихой", + "лицо", + "личный", + "лишний", + "лобовой", + "ловить", + "логика", + "лодка", + "ложка", + "лозунг", + "локоть", + "ломать", + "лоно", + "лопата", + "лорд", + "лось", + "лоток", + "лохматый", + "лошадь", + "лужа", + "лукавый", + "луна", + "лупить", + "лучший", + "лыжный", + "лысый", + "львиный", + "льгота", + "льдина", + "любить", + "людской", + "люстра", + "лютый", + "лягушка", + "магазин", + "мадам", + "мазать", + "майор", + "максимум", + "мальчик", + "манера", + "март", + "масса", + "мать", + "мафия", + "махать", + "мачта", + "машина", + "маэстро", + "маяк", + "мгла", + "мебель", + "медведь", + "мелкий", + "мемуары", + "менять", + "мера", + "место", + "метод", + "механизм", + "мечтать", + "мешать", + "миграция", + "мизинец", + "микрофон", + "миллион", + "минута", + "мировой", + "миссия", + "митинг", + "мишень", + "младший", + "мнение", + "мнимый", + "могила", + "модель", + "мозг", + "мойка", + "мокрый", + "молодой", + "момент", + "монах", + "море", + "мост", + "мотор", + "мохнатый", + "мочь", + "мошенник", + "мощный", + "мрачный", + "мстить", + "мудрый", + "мужчина", + "музыка", + "мука", + "мумия", + "мундир", + "муравей", + "мусор", + "мутный", + "муфта", + "муха", + "мучить", + "мушкетер", + "мыло", + "мысль", + "мыть", + "мычать", + "мышь", + "мэтр", + "мюзикл", + "мягкий", + "мякиш", + "мясо", + "мятый", + "мячик", + "набор", + "навык", + "нагрузка", + "надежда", + "наемный", + "нажать", + "называть", + "наивный", + "накрыть", + "налог", + "намерен", + "наносить", + "написать", + "народ", + "натура", + "наука", + "нация", + "начать", + "небо", + "невеста", + "негодяй", + "неделя", + "нежный", + "незнание", + "нелепый", + "немалый", + "неправда", + "нервный", + "нести", + "нефть", + "нехватка", + "нечистый", + "неясный", + "нива", + "нижний", + "низкий", + "никель", + "нирвана", + "нить", + "ничья", + "ниша", + "нищий", + "новый", + "нога", + "ножницы", + "ноздря", + "ноль", + "номер", + "норма", + "нота", + "ночь", + "ноша", + "ноябрь", + "нрав", + "нужный", + "нутро", + "нынешний", + "нырнуть", + "ныть", + "нюанс", + "нюхать", + "няня", + "оазис", + "обаяние", + "обвинять", + "обгонять", + "обещать", + "обжигать", + "обзор", + "обида", + "область", + "обмен", + "обнимать", + "оборона", + "образ", + "обучение", + "обходить", + "обширный", + "общий", + "объект", + "обычный", + "обязать", + "овальный", + "овес", + "овощи", + "овраг", + "овца", + "овчарка", + "огненный", + "огонь", + "огромный", + "огурец", + "одежда", + "одинокий", + "одобрить", + "ожидать", + "ожог", + "озарение", + "озеро", + "означать", + "оказать", + "океан", + "оклад", + "окно", + "округ", + "октябрь", + "окурок", + "олень", + "опасный", + "операция", + "описать", + "оплата", + "опора", + "оппонент", + "опрос", + "оптимизм", + "опускать", + "опыт", + "орать", + "орбита", + "орган", + "орден", + "орел", + "оригинал", + "оркестр", + "орнамент", + "оружие", + "осадок", + "освещать", + "осень", + "осина", + "осколок", + "осмотр", + "основной", + "особый", + "осуждать", + "отбор", + "отвечать", + "отдать", + "отец", + "отзыв", + "открытие", + "отмечать", + "относить", + "отпуск", + "отрасль", + "отставка", + "оттенок", + "отходить", + "отчет", + "отъезд", + "офицер", + "охапка", + "охота", + "охрана", + "оценка", + "очаг", + "очередь", + "очищать", + "очки", + "ошейник", + "ошибка", + "ощущение", + "павильон", + "падать", + "паек", + "пакет", + "палец", + "память", + "панель", + "папка", + "партия", + "паспорт", + "патрон", + "пауза", + "пафос", + "пахнуть", + "пациент", + "пачка", + "пашня", + "певец", + "педагог", + "пейзаж", + "пельмень", + "пенсия", + "пепел", + "период", + "песня", + "петля", + "пехота", + "печать", + "пешеход", + "пещера", + "пианист", + "пиво", + "пиджак", + "пиковый", + "пилот", + "пионер", + "пирог", + "писать", + "пить", + "пицца", + "пишущий", + "пища", + "план", + "плечо", + "плита", + "плохой", + "плыть", + "плюс", + "пляж", + "победа", + "повод", + "погода", + "подумать", + "поехать", + "пожимать", + "позиция", + "поиск", + "покой", + "получать", + "помнить", + "пони", + "поощрять", + "попадать", + "порядок", + "пост", + "поток", + "похожий", + "поцелуй", + "почва", + "пощечина", + "поэт", + "пояснить", + "право", + "предмет", + "проблема", + "пруд", + "прыгать", + "прямой", + "психолог", + "птица", + "публика", + "пугать", + "пудра", + "пузырь", + "пуля", + "пункт", + "пурга", + "пустой", + "путь", + "пухлый", + "пучок", + "пушистый", + "пчела", + "пшеница", + "пыль", + "пытка", + "пыхтеть", + "пышный", + "пьеса", + "пьяный", + "пятно", + "работа", + "равный", + "радость", + "развитие", + "район", + "ракета", + "рамка", + "ранний", + "рапорт", + "рассказ", + "раунд", + "рация", + "рвать", + "реальный", + "ребенок", + "реветь", + "регион", + "редакция", + "реестр", + "режим", + "резкий", + "рейтинг", + "река", + "религия", + "ремонт", + "рента", + "реплика", + "ресурс", + "реформа", + "рецепт", + "речь", + "решение", + "ржавый", + "рисунок", + "ритм", + "рифма", + "робкий", + "ровный", + "рогатый", + "родитель", + "рождение", + "розовый", + "роковой", + "роль", + "роман", + "ронять", + "рост", + "рота", + "роща", + "рояль", + "рубль", + "ругать", + "руда", + "ружье", + "руины", + "рука", + "руль", + "румяный", + "русский", + "ручка", + "рыба", + "рывок", + "рыдать", + "рыжий", + "рынок", + "рысь", + "рыть", + "рыхлый", + "рыцарь", + "рычаг", + "рюкзак", + "рюмка", + "рябой", + "рядовой", + "сабля", + "садовый", + "сажать", + "салон", + "самолет", + "сани", + "сапог", + "сарай", + "сатира", + "сауна", + "сахар", + "сбегать", + "сбивать", + "сбор", + "сбыт", + "свадьба", + "свет", + "свидание", + "свобода", + "связь", + "сгорать", + "сдвигать", + "сеанс", + "северный", + "сегмент", + "седой", + "сезон", + "сейф", + "секунда", + "сельский", + "семья", + "сентябрь", + "сердце", + "сеть", + "сечение", + "сеять", + "сигнал", + "сидеть", + "сизый", + "сила", + "символ", + "синий", + "сирота", + "система", + "ситуация", + "сиять", + "сказать", + "скважина", + "скелет", + "скидка", + "склад", + "скорый", + "скрывать", + "скучный", + "слава", + "слеза", + "слияние", + "слово", + "случай", + "слышать", + "слюна", + "смех", + "смирение", + "смотреть", + "смутный", + "смысл", + "смятение", + "снаряд", + "снег", + "снижение", + "сносить", + "снять", + "событие", + "совет", + "согласие", + "сожалеть", + "сойти", + "сокол", + "солнце", + "сомнение", + "сонный", + "сообщать", + "соперник", + "сорт", + "состав", + "сотня", + "соус", + "социолог", + "сочинять", + "союз", + "спать", + "спешить", + "спина", + "сплошной", + "способ", + "спутник", + "средство", + "срок", + "срывать", + "стать", + "ствол", + "стена", + "стихи", + "сторона", + "страна", + "студент", + "стыд", + "субъект", + "сувенир", + "сугроб", + "судьба", + "суета", + "суждение", + "сукно", + "сулить", + "сумма", + "сунуть", + "супруг", + "суровый", + "сустав", + "суть", + "сухой", + "суша", + "существо", + "сфера", + "схема", + "сцена", + "счастье", + "счет", + "считать", + "сшивать", + "съезд", + "сынок", + "сыпать", + "сырье", + "сытый", + "сыщик", + "сюжет", + "сюрприз", + "таблица", + "таежный", + "таинство", + "тайна", + "такси", + "талант", + "таможня", + "танец", + "тарелка", + "таскать", + "тахта", + "тачка", + "таять", + "тварь", + "твердый", + "творить", + "театр", + "тезис", + "текст", + "тело", + "тема", + "тень", + "теория", + "теплый", + "терять", + "тесный", + "тетя", + "техника", + "течение", + "тигр", + "типичный", + "тираж", + "титул", + "тихий", + "тишина", + "ткань", + "товарищ", + "толпа", + "тонкий", + "топливо", + "торговля", + "тоска", + "точка", + "тощий", + "традиция", + "тревога", + "трибуна", + "трогать", + "труд", + "трюк", + "тряпка", + "туалет", + "тугой", + "туловище", + "туман", + "тундра", + "тупой", + "турнир", + "тусклый", + "туфля", + "туча", + "туша", + "тыкать", + "тысяча", + "тьма", + "тюльпан", + "тюрьма", + "тяга", + "тяжелый", + "тянуть", + "убеждать", + "убирать", + "убогий", + "убыток", + "уважение", + "уверять", + "увлекать", + "угнать", + "угол", + "угроза", + "удар", + "удивлять", + "удобный", + "уезд", + "ужас", + "ужин", + "узел", + "узкий", + "узнавать", + "узор", + "уйма", + "уклон", + "укол", + "уксус", + "улетать", + "улица", + "улучшать", + "улыбка", + "уметь", + "умиление", + "умный", + "умолять", + "умысел", + "унижать", + "уносить", + "уныние", + "упасть", + "уплата", + "упор", + "упрекать", + "упускать", + "уран", + "урна", + "уровень", + "усадьба", + "усердие", + "усилие", + "ускорять", + "условие", + "усмешка", + "уснуть", + "успеть", + "усыпать", + "утешать", + "утка", + "уточнять", + "утро", + "утюг", + "уходить", + "уцелеть", + "участие", + "ученый", + "учитель", + "ушко", + "ущерб", + "уютный", + "уяснять", + "фабрика", + "фаворит", + "фаза", + "файл", + "факт", + "фамилия", + "фантазия", + "фара", + "фасад", + "февраль", + "фельдшер", + "феномен", + "ферма", + "фигура", + "физика", + "фильм", + "финал", + "фирма", + "фишка", + "флаг", + "флейта", + "флот", + "фокус", + "фольклор", + "фонд", + "форма", + "фото", + "фраза", + "фреска", + "фронт", + "фрукт", + "функция", + "фуражка", + "футбол", + "фыркать", + "халат", + "хамство", + "хаос", + "характер", + "хата", + "хватать", + "хвост", + "хижина", + "хилый", + "химия", + "хирург", + "хитрый", + "хищник", + "хлам", + "хлеб", + "хлопать", + "хмурый", + "ходить", + "хозяин", + "хоккей", + "холодный", + "хороший", + "хотеть", + "хохотать", + "храм", + "хрен", + "хриплый", + "хроника", + "хрупкий", + "художник", + "хулиган", + "хутор", + "царь", + "цвет", + "цель", + "цемент", + "центр", + "цепь", + "церковь", + "цикл", + "цилиндр", + "циничный", + "цирк", + "цистерна", + "цитата", + "цифра", + "цыпленок", + "чадо", + "чайник", + "часть", + "чашка", + "человек", + "чемодан", + "чепуха", + "черный", + "честь", + "четкий", + "чехол", + "чиновник", + "число", + "читать", + "членство", + "чреватый", + "чтение", + "чувство", + "чугунный", + "чудо", + "чужой", + "чукча", + "чулок", + "чума", + "чуткий", + "чучело", + "чушь", + "шаблон", + "шагать", + "шайка", + "шакал", + "шалаш", + "шампунь", + "шанс", + "шапка", + "шарик", + "шасси", + "шатер", + "шахта", + "шашлык", + "швейный", + "швырять", + "шевелить", + "шедевр", + "шейка", + "шелковый", + "шептать", + "шерсть", + "шестерка", + "шикарный", + "шинель", + "шипеть", + "широкий", + "шить", + "шишка", + "шкаф", + "школа", + "шкура", + "шланг", + "шлем", + "шлюпка", + "шляпа", + "шнур", + "шоколад", + "шорох", + "шоссе", + "шофер", + "шпага", + "шпион", + "шприц", + "шрам", + "шрифт", + "штаб", + "штора", + "штраф", + "штука", + "штык", + "шуба", + "шуметь", + "шуршать", + "шутка", + "щадить", + "щедрый", + "щека", + "щель", + "щенок", + "щепка", + "щетка", + "щука", + "эволюция", + "эгоизм", + "экзамен", + "экипаж", + "экономия", + "экран", + "эксперт", + "элемент", + "элита", + "эмблема", + "эмигрант", + "эмоция", + "энергия", + "эпизод", + "эпоха", + "эскиз", + "эссе", + "эстрада", + "этап", + "этика", + "этюд", + "эфир", + "эффект", + "эшелон", + "юбилей", + "юбка", + "южный", + "юмор", + "юноша", + "юрист", + "яблоко", + "явление", + "ягода", + "ядерный", + "ядовитый", + "ядро", + "язва", + "язык", + "яйцо", + "якорь", + "январь", + "японец", + "яркий", + "ярмарка", + "ярость", + "ярус", + "ясный", + "яхта", + "ячейка", + "ящик" +]; diff --git a/lib/bip/monero/mnemonic/words_list/spanish.dart b/lib/bip/monero/mnemonic/words_list/spanish.dart new file mode 100644 index 0000000..232b68e --- /dev/null +++ b/lib/bip/monero/mnemonic/words_list/spanish.dart @@ -0,0 +1,1630 @@ +part of 'package:blockchain_utils/bip/monero/mnemonic/words_list/languages.dart'; + +const List _spanish = [ + "ábaco", + "abdomen", + "abeja", + "abierto", + "abogado", + "abono", + "aborto", + "abrazo", + "abrir", + "abuelo", + "abuso", + "acabar", + "academia", + "acceso", + "acción", + "aceite", + "acelga", + "acento", + "aceptar", + "ácido", + "aclarar", + "acné", + "acoger", + "acoso", + "activo", + "acto", + "actriz", + "actuar", + "acudir", + "acuerdo", + "acusar", + "adicto", + "admitir", + "adoptar", + "adorno", + "aduana", + "adulto", + "aéreo", + "afectar", + "afición", + "afinar", + "afirmar", + "ágil", + "agitar", + "agonía", + "agosto", + "agotar", + "agregar", + "agrio", + "agua", + "agudo", + "águila", + "aguja", + "ahogo", + "ahorro", + "aire", + "aislar", + "ajedrez", + "ajeno", + "ajuste", + "alacrán", + "alambre", + "alarma", + "alba", + "álbum", + "alcalde", + "aldea", + "alegre", + "alejar", + "alerta", + "aleta", + "alfiler", + "alga", + "algodón", + "aliado", + "aliento", + "alivio", + "alma", + "almeja", + "almíbar", + "altar", + "alteza", + "altivo", + "alto", + "altura", + "alumno", + "alzar", + "amable", + "amante", + "amapola", + "amargo", + "amasar", + "ámbar", + "ámbito", + "ameno", + "amigo", + "amistad", + "amor", + "amparo", + "amplio", + "ancho", + "anciano", + "ancla", + "andar", + "andén", + "anemia", + "ángulo", + "anillo", + "ánimo", + "anís", + "anotar", + "antena", + "antiguo", + "antojo", + "anual", + "anular", + "anuncio", + "añadir", + "añejo", + "año", + "apagar", + "aparato", + "apetito", + "apio", + "aplicar", + "apodo", + "aporte", + "apoyo", + "aprender", + "aprobar", + "apuesta", + "apuro", + "arado", + "araña", + "arar", + "árbitro", + "árbol", + "arbusto", + "archivo", + "arco", + "arder", + "ardilla", + "arduo", + "área", + "árido", + "aries", + "armonía", + "arnés", + "aroma", + "arpa", + "arpón", + "arreglo", + "arroz", + "arruga", + "arte", + "artista", + "asa", + "asado", + "asalto", + "ascenso", + "asegurar", + "aseo", + "asesor", + "asiento", + "asilo", + "asistir", + "asno", + "asombro", + "áspero", + "astilla", + "astro", + "astuto", + "asumir", + "asunto", + "atajo", + "ataque", + "atar", + "atento", + "ateo", + "ático", + "atleta", + "átomo", + "atraer", + "atroz", + "atún", + "audaz", + "audio", + "auge", + "aula", + "aumento", + "ausente", + "autor", + "aval", + "avance", + "avaro", + "ave", + "avellana", + "avena", + "avestruz", + "avión", + "aviso", + "ayer", + "ayuda", + "ayuno", + "azafrán", + "azar", + "azote", + "azúcar", + "azufre", + "azul", + "baba", + "babor", + "bache", + "bahía", + "baile", + "bajar", + "balanza", + "balcón", + "balde", + "bambú", + "banco", + "banda", + "baño", + "barba", + "barco", + "barniz", + "barro", + "báscula", + "bastón", + "basura", + "batalla", + "batería", + "batir", + "batuta", + "baúl", + "bazar", + "bebé", + "bebida", + "bello", + "besar", + "beso", + "bestia", + "bicho", + "bien", + "bingo", + "blanco", + "bloque", + "blusa", + "boa", + "bobina", + "bobo", + "boca", + "bocina", + "boda", + "bodega", + "boina", + "bola", + "bolero", + "bolsa", + "bomba", + "bondad", + "bonito", + "bono", + "bonsái", + "borde", + "borrar", + "bosque", + "bote", + "botín", + "bóveda", + "bozal", + "bravo", + "brazo", + "brecha", + "breve", + "brillo", + "brinco", + "brisa", + "broca", + "broma", + "bronce", + "brote", + "bruja", + "brusco", + "bruto", + "buceo", + "bucle", + "bueno", + "buey", + "bufanda", + "bufón", + "búho", + "buitre", + "bulto", + "burbuja", + "burla", + "burro", + "buscar", + "butaca", + "buzón", + "caballo", + "cabeza", + "cabina", + "cabra", + "cacao", + "cadáver", + "cadena", + "caer", + "café", + "caída", + "caimán", + "caja", + "cajón", + "cal", + "calamar", + "calcio", + "caldo", + "calidad", + "calle", + "calma", + "calor", + "calvo", + "cama", + "cambio", + "camello", + "camino", + "campo", + "cáncer", + "candil", + "canela", + "canguro", + "canica", + "canto", + "caña", + "cañón", + "caoba", + "caos", + "capaz", + "capitán", + "capote", + "captar", + "capucha", + "cara", + "carbón", + "cárcel", + "careta", + "carga", + "cariño", + "carne", + "carpeta", + "carro", + "carta", + "casa", + "casco", + "casero", + "caspa", + "castor", + "catorce", + "catre", + "caudal", + "causa", + "cazo", + "cebolla", + "ceder", + "cedro", + "celda", + "célebre", + "celoso", + "célula", + "cemento", + "ceniza", + "centro", + "cerca", + "cerdo", + "cereza", + "cero", + "cerrar", + "certeza", + "césped", + "cetro", + "chacal", + "chaleco", + "champú", + "chancla", + "chapa", + "charla", + "chico", + "chiste", + "chivo", + "choque", + "choza", + "chuleta", + "chupar", + "ciclón", + "ciego", + "cielo", + "cien", + "cierto", + "cifra", + "cigarro", + "cima", + "cinco", + "cine", + "cinta", + "ciprés", + "circo", + "ciruela", + "cisne", + "cita", + "ciudad", + "clamor", + "clan", + "claro", + "clase", + "clave", + "cliente", + "clima", + "clínica", + "cobre", + "cocción", + "cochino", + "cocina", + "coco", + "código", + "codo", + "cofre", + "coger", + "cohete", + "cojín", + "cojo", + "cola", + "colcha", + "colegio", + "colgar", + "colina", + "collar", + "colmo", + "columna", + "combate", + "comer", + "comida", + "cómodo", + "compra", + "conde", + "conejo", + "conga", + "conocer", + "consejo", + "contar", + "copa", + "copia", + "corazón", + "corbata", + "corcho", + "cordón", + "corona", + "correr", + "coser", + "cosmos", + "costa", + "cráneo", + "cráter", + "crear", + "crecer", + "creído", + "crema", + "cría", + "crimen", + "cripta", + "crisis", + "cromo", + "crónica", + "croqueta", + "crudo", + "cruz", + "cuadro", + "cuarto", + "cuatro", + "cubo", + "cubrir", + "cuchara", + "cuello", + "cuento", + "cuerda", + "cuesta", + "cueva", + "cuidar", + "culebra", + "culpa", + "culto", + "cumbre", + "cumplir", + "cuna", + "cuneta", + "cuota", + "cupón", + "cúpula", + "curar", + "curioso", + "curso", + "curva", + "cutis", + "dama", + "danza", + "dar", + "dardo", + "dátil", + "deber", + "débil", + "década", + "decir", + "dedo", + "defensa", + "definir", + "dejar", + "delfín", + "delgado", + "delito", + "demora", + "denso", + "dental", + "deporte", + "derecho", + "derrota", + "desayuno", + "deseo", + "desfile", + "desnudo", + "destino", + "desvío", + "detalle", + "detener", + "deuda", + "día", + "diablo", + "diadema", + "diamante", + "diana", + "diario", + "dibujo", + "dictar", + "diente", + "dieta", + "diez", + "difícil", + "digno", + "dilema", + "diluir", + "dinero", + "directo", + "dirigir", + "disco", + "diseño", + "disfraz", + "diva", + "divino", + "doble", + "doce", + "dolor", + "domingo", + "don", + "donar", + "dorado", + "dormir", + "dorso", + "dos", + "dosis", + "dragón", + "droga", + "ducha", + "duda", + "duelo", + "dueño", + "dulce", + "dúo", + "duque", + "durar", + "dureza", + "duro", + "ébano", + "ebrio", + "echar", + "eco", + "ecuador", + "edad", + "edición", + "edificio", + "editor", + "educar", + "efecto", + "eficaz", + "eje", + "ejemplo", + "elefante", + "elegir", + "elemento", + "elevar", + "elipse", + "élite", + "elixir", + "elogio", + "eludir", + "embudo", + "emitir", + "emoción", + "empate", + "empeño", + "empleo", + "empresa", + "enano", + "encargo", + "enchufe", + "encía", + "enemigo", + "enero", + "enfado", + "enfermo", + "engaño", + "enigma", + "enlace", + "enorme", + "enredo", + "ensayo", + "enseñar", + "entero", + "entrar", + "envase", + "envío", + "época", + "equipo", + "erizo", + "escala", + "escena", + "escolar", + "escribir", + "escudo", + "esencia", + "esfera", + "esfuerzo", + "espada", + "espejo", + "espía", + "esposa", + "espuma", + "esquí", + "estar", + "este", + "estilo", + "estufa", + "etapa", + "eterno", + "ética", + "etnia", + "evadir", + "evaluar", + "evento", + "evitar", + "exacto", + "examen", + "exceso", + "excusa", + "exento", + "exigir", + "exilio", + "existir", + "éxito", + "experto", + "explicar", + "exponer", + "extremo", + "fábrica", + "fábula", + "fachada", + "fácil", + "factor", + "faena", + "faja", + "falda", + "fallo", + "falso", + "faltar", + "fama", + "familia", + "famoso", + "faraón", + "farmacia", + "farol", + "farsa", + "fase", + "fatiga", + "fauna", + "favor", + "fax", + "febrero", + "fecha", + "feliz", + "feo", + "feria", + "feroz", + "fértil", + "fervor", + "festín", + "fiable", + "fianza", + "fiar", + "fibra", + "ficción", + "ficha", + "fideo", + "fiebre", + "fiel", + "fiera", + "fiesta", + "figura", + "fijar", + "fijo", + "fila", + "filete", + "filial", + "filtro", + "fin", + "finca", + "fingir", + "finito", + "firma", + "flaco", + "flauta", + "flecha", + "flor", + "flota", + "fluir", + "flujo", + "flúor", + "fobia", + "foca", + "fogata", + "fogón", + "folio", + "folleto", + "fondo", + "forma", + "forro", + "fortuna", + "forzar", + "fosa", + "foto", + "fracaso", + "frágil", + "franja", + "frase", + "fraude", + "freír", + "freno", + "fresa", + "frío", + "frito", + "fruta", + "fuego", + "fuente", + "fuerza", + "fuga", + "fumar", + "función", + "funda", + "furgón", + "furia", + "fusil", + "fútbol", + "futuro", + "gacela", + "gafas", + "gaita", + "gajo", + "gala", + "galería", + "gallo", + "gamba", + "ganar", + "gancho", + "ganga", + "ganso", + "garaje", + "garza", + "gasolina", + "gastar", + "gato", + "gavilán", + "gemelo", + "gemir", + "gen", + "género", + "genio", + "gente", + "geranio", + "gerente", + "germen", + "gesto", + "gigante", + "gimnasio", + "girar", + "giro", + "glaciar", + "globo", + "gloria", + "gol", + "golfo", + "goloso", + "golpe", + "goma", + "gordo", + "gorila", + "gorra", + "gota", + "goteo", + "gozar", + "grada", + "gráfico", + "grano", + "grasa", + "gratis", + "grave", + "grieta", + "grillo", + "gripe", + "gris", + "grito", + "grosor", + "grúa", + "grueso", + "grumo", + "grupo", + "guante", + "guapo", + "guardia", + "guerra", + "guía", + "guiño", + "guion", + "guiso", + "guitarra", + "gusano", + "gustar", + "haber", + "hábil", + "hablar", + "hacer", + "hacha", + "hada", + "hallar", + "hamaca", + "harina", + "haz", + "hazaña", + "hebilla", + "hebra", + "hecho", + "helado", + "helio", + "hembra", + "herir", + "hermano", + "héroe", + "hervir", + "hielo", + "hierro", + "hígado", + "higiene", + "hijo", + "himno", + "historia", + "hocico", + "hogar", + "hoguera", + "hoja", + "hombre", + "hongo", + "honor", + "honra", + "hora", + "hormiga", + "horno", + "hostil", + "hoyo", + "hueco", + "huelga", + "huerta", + "hueso", + "huevo", + "huida", + "huir", + "humano", + "húmedo", + "humilde", + "humo", + "hundir", + "huracán", + "hurto", + "icono", + "ideal", + "idioma", + "ídolo", + "iglesia", + "iglú", + "igual", + "ilegal", + "ilusión", + "imagen", + "imán", + "imitar", + "impar", + "imperio", + "imponer", + "impulso", + "incapaz", + "índice", + "inerte", + "infiel", + "informe", + "ingenio", + "inicio", + "inmenso", + "inmune", + "innato", + "insecto", + "instante", + "interés", + "íntimo", + "intuir", + "inútil", + "invierno", + "ira", + "iris", + "ironía", + "isla", + "islote", + "jabalí", + "jabón", + "jamón", + "jarabe", + "jardín", + "jarra", + "jaula", + "jazmín", + "jefe", + "jeringa", + "jinete", + "jornada", + "joroba", + "joven", + "joya", + "juerga", + "jueves", + "juez", + "jugador", + "jugo", + "juguete", + "juicio", + "junco", + "jungla", + "junio", + "juntar", + "júpiter", + "jurar", + "justo", + "juvenil", + "juzgar", + "kilo", + "koala", + "labio", + "lacio", + "lacra", + "lado", + "ladrón", + "lagarto", + "lágrima", + "laguna", + "laico", + "lamer", + "lámina", + "lámpara", + "lana", + "lancha", + "langosta", + "lanza", + "lápiz", + "largo", + "larva", + "lástima", + "lata", + "látex", + "latir", + "laurel", + "lavar", + "lazo", + "leal", + "lección", + "leche", + "lector", + "leer", + "legión", + "legumbre", + "lejano", + "lengua", + "lento", + "leña", + "león", + "leopardo", + "lesión", + "letal", + "letra", + "leve", + "leyenda", + "libertad", + "libro", + "licor", + "líder", + "lidiar", + "lienzo", + "liga", + "ligero", + "lima", + "límite", + "limón", + "limpio", + "lince", + "lindo", + "línea", + "lingote", + "lino", + "linterna", + "líquido", + "liso", + "lista", + "litera", + "litio", + "litro", + "llaga", + "llama", + "llanto", + "llave", + "llegar", + "llenar", + "llevar", + "llorar", + "llover", + "lluvia", + "lobo", + "loción", + "loco", + "locura", + "lógica", + "logro", + "lombriz", + "lomo", + "lonja", + "lote", + "lucha", + "lucir", + "lugar", + "lujo", + "luna", + "lunes", + "lupa", + "lustro", + "luto", + "luz", + "maceta", + "macho", + "madera", + "madre", + "maduro", + "maestro", + "mafia", + "magia", + "mago", + "maíz", + "maldad", + "maleta", + "malla", + "malo", + "mamá", + "mambo", + "mamut", + "manco", + "mando", + "manejar", + "manga", + "maniquí", + "manjar", + "mano", + "manso", + "manta", + "mañana", + "mapa", + "máquina", + "mar", + "marco", + "marea", + "marfil", + "margen", + "marido", + "mármol", + "marrón", + "martes", + "marzo", + "masa", + "máscara", + "masivo", + "matar", + "materia", + "matiz", + "matriz", + "máximo", + "mayor", + "mazorca", + "mecha", + "medalla", + "medio", + "médula", + "mejilla", + "mejor", + "melena", + "melón", + "memoria", + "menor", + "mensaje", + "mente", + "menú", + "mercado", + "merengue", + "mérito", + "mes", + "mesón", + "meta", + "meter", + "método", + "metro", + "mezcla", + "miedo", + "miel", + "miembro", + "miga", + "mil", + "milagro", + "militar", + "millón", + "mimo", + "mina", + "minero", + "mínimo", + "minuto", + "miope", + "mirar", + "misa", + "miseria", + "misil", + "mismo", + "mitad", + "mito", + "mochila", + "moción", + "moda", + "modelo", + "moho", + "mojar", + "molde", + "moler", + "molino", + "momento", + "momia", + "monarca", + "moneda", + "monja", + "monto", + "moño", + "morada", + "morder", + "moreno", + "morir", + "morro", + "morsa", + "mortal", + "mosca", + "mostrar", + "motivo", + "mover", + "móvil", + "mozo", + "mucho", + "mudar", + "mueble", + "muela", + "muerte", + "muestra", + "mugre", + "mujer", + "mula", + "muleta", + "multa", + "mundo", + "muñeca", + "mural", + "muro", + "músculo", + "museo", + "musgo", + "música", + "muslo", + "nácar", + "nación", + "nadar", + "naipe", + "naranja", + "nariz", + "narrar", + "nasal", + "natal", + "nativo", + "natural", + "náusea", + "naval", + "nave", + "navidad", + "necio", + "néctar", + "negar", + "negocio", + "negro", + "neón", + "nervio", + "neto", + "neutro", + "nevar", + "nevera", + "nicho", + "nido", + "niebla", + "nieto", + "niñez", + "niño", + "nítido", + "nivel", + "nobleza", + "noche", + "nómina", + "noria", + "norma", + "norte", + "nota", + "noticia", + "novato", + "novela", + "novio", + "nube", + "nuca", + "núcleo", + "nudillo", + "nudo", + "nuera", + "nueve", + "nuez", + "nulo", + "número", + "nutria", + "oasis", + "obeso", + "obispo", + "objeto", + "obra", + "obrero", + "observar", + "obtener", + "obvio", + "oca", + "ocaso", + "océano", + "ochenta", + "ocho", + "ocio", + "ocre", + "octavo", + "octubre", + "oculto", + "ocupar", + "ocurrir", + "odiar", + "odio", + "odisea", + "oeste", + "ofensa", + "oferta", + "oficio", + "ofrecer", + "ogro", + "oído", + "oír", + "ojo", + "ola", + "oleada", + "olfato", + "olivo", + "olla", + "olmo", + "olor", + "olvido", + "ombligo", + "onda", + "onza", + "opaco", + "opción", + "ópera", + "opinar", + "oponer", + "optar", + "óptica", + "opuesto", + "oración", + "orador", + "oral", + "órbita", + "orca", + "orden", + "oreja", + "órgano", + "orgía", + "orgullo", + "oriente", + "origen", + "orilla", + "oro", + "orquesta", + "oruga", + "osadía", + "oscuro", + "osezno", + "oso", + "ostra", + "otoño", + "otro", + "oveja", + "óvulo", + "óxido", + "oxígeno", + "oyente", + "ozono", + "pacto", + "padre", + "paella", + "página", + "pago", + "país", + "pájaro", + "palabra", + "palco", + "paleta", + "pálido", + "palma", + "paloma", + "palpar", + "pan", + "panal", + "pánico", + "pantera", + "pañuelo", + "papá", + "papel", + "papilla", + "paquete", + "parar", + "parcela", + "pared", + "parir", + "paro", + "párpado", + "parque", + "párrafo", + "parte", + "pasar", + "paseo", + "pasión", + "paso", + "pasta", + "pata", + "patio", + "patria", + "pausa", + "pauta", + "pavo", + "payaso", + "peatón", + "pecado", + "pecera", + "pecho", + "pedal", + "pedir", + "pegar", + "peine", + "pelar", + "peldaño", + "pelea", + "peligro", + "pellejo", + "pelo", + "peluca", + "pena", + "pensar", + "peñón", + "peón", + "peor", + "pepino", + "pequeño", + "pera", + "percha", + "perder", + "pereza", + "perfil", + "perico", + "perla", + "permiso", + "perro", + "persona", + "pesa", + "pesca", + "pésimo", + "pestaña", + "pétalo", + "petróleo", + "pez", + "pezuña", + "picar", + "pichón", + "pie", + "piedra", + "pierna", + "pieza", + "pijama", + "pilar", + "piloto", + "pimienta", + "pino", + "pintor", + "pinza", + "piña", + "piojo", + "pipa", + "pirata", + "pisar", + "piscina", + "piso", + "pista", + "pitón", + "pizca", + "placa", + "plan", + "plata", + "playa", + "plaza", + "pleito", + "pleno", + "plomo", + "pluma", + "plural", + "pobre", + "poco", + "poder", + "podio", + "poema", + "poesía", + "poeta", + "polen", + "policía", + "pollo", + "polvo", + "pomada", + "pomelo", + "pomo", + "pompa", + "poner", + "porción", + "portal", + "posada", + "poseer", + "posible", + "poste", + "potencia", + "potro", + "pozo", + "prado", + "precoz", + "pregunta", + "premio", + "prensa", + "preso", + "previo", + "primo", + "príncipe", + "prisión", + "privar", + "proa", + "probar", + "proceso", + "producto", + "proeza", + "profesor", + "programa", + "prole", + "promesa", + "pronto", + "propio", + "próximo", + "prueba", + "público", + "puchero", + "pudor", + "pueblo", + "puerta", + "puesto", + "pulga", + "pulir", + "pulmón", + "pulpo", + "pulso", + "puma", + "punto", + "puñal", + "puño", + "pupa", + "pupila", + "puré", + "quedar", + "queja", + "quemar", + "querer", + "queso", + "quieto", + "química", + "quince", + "quitar", + "rábano", + "rabia", + "rabo", + "ración", + "radical", + "raíz", + "rama", + "rampa", + "rancho", + "rango", + "rapaz", + "rápido", + "rapto", + "rasgo", + "raspa", + "rato", + "rayo", + "raza", + "razón", + "reacción", + "realidad", + "rebaño", + "rebote", + "recaer", + "receta", + "rechazo", + "recoger", + "recreo", + "recto", + "recurso", + "red", + "redondo", + "reducir", + "reflejo", + "reforma", + "refrán", + "refugio", + "regalo", + "regir", + "regla", + "regreso", + "rehén", + "reino", + "reír", + "reja", + "relato", + "relevo", + "relieve", + "relleno", + "reloj", + "remar", + "remedio", + "remo", + "rencor", + "rendir", + "renta", + "reparto", + "repetir", + "reposo", + "reptil", + "res", + "rescate", + "resina", + "respeto", + "resto", + "resumen", + "retiro", + "retorno", + "retrato", + "reunir", + "revés", + "revista", + "rey", + "rezar", + "rico", + "riego", + "rienda", + "riesgo", + "rifa", + "rígido", + "rigor", + "rincón", + "riñón", + "río", + "riqueza", + "risa", + "ritmo", + "rito" +]; diff --git a/lib/bip/monero/monero.dart b/lib/bip/monero/monero.dart new file mode 100644 index 0000000..e278891 --- /dev/null +++ b/lib/bip/monero/monero.dart @@ -0,0 +1,27 @@ +/// The 'monero' library provides tools for working with Monero cryptocurrency, including +/// configuration data, mnemonic phrases, keys, and address generation. +library monero; + +/// Export statement for Monero coin definitions and configuration. +export 'conf/monero_coins.dart'; +export 'conf/monero_conf.dart'; + +/// Export statements for Monero mnemonic-related components. +export 'mnemonic/monero_entropy_generator.dart'; +export 'mnemonic/monero_mnemonic.dart'; +export 'mnemonic/monero_mnemonic_decoder.dart'; +export 'mnemonic/monero_mnemonic_encoder.dart'; +export 'mnemonic/monero_mnemonic_generator.dart'; +export 'mnemonic/monero_mnemonic_utils.dart'; +export 'mnemonic/monero_mnemonic_validator.dart'; +export 'mnemonic/monero_seed_generator.dart'; +export 'mnemonic/words_list/languages.dart'; + +/// Export statement for Monero base components, including address generation. +export 'monero_base.dart'; + +/// Export statement for Monero key management components. +export 'monero_keys.dart'; + +/// Export statement for Monero subaddress components. +export 'monero_subaddr.dart'; diff --git a/lib/bip/monero/monero_base.dart b/lib/bip/monero/monero_base.dart new file mode 100644 index 0000000..974f6f8 --- /dev/null +++ b/lib/bip/monero/monero_base.dart @@ -0,0 +1,184 @@ +import 'package:blockchain_utils/bip/address/xmr_addr.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_keys.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/utils/ed25519_utils.dart'; +import 'package:blockchain_utils/bip/monero/conf/monero_coin_conf.dart'; +import 'package:blockchain_utils/bip/monero/conf/monero_coins.dart'; +import 'package:blockchain_utils/bip/monero/conf/monero_conf.dart'; +import 'package:blockchain_utils/bip/monero/monero_exc.dart'; +import 'package:blockchain_utils/bip/monero/monero_keys.dart'; +import 'package:blockchain_utils/bip/monero/monero_subaddr.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +/// A class representing Monero cryptocurrency and its associated keys and configurations. +class Monero { + /// Private spend key (optional) + final MoneroPrivateKey? privSkey; + + /// Private view key + final MoneroPrivateKey privVkey; + + /// Public spend key + final MoneroPublicKey pubSkey; + + /// Public view key + final MoneroPublicKey pubVkey; + + /// Monero coin configuration + final MoneroCoinConf coinConf; + + /// Monero subaddress + final MoneroSubaddress scubaddr; + + /// Private constructor for creating a Monero instance. + Monero.__( + {required this.coinConf, + required this.privSkey, + required this.privVkey, + required this.pubSkey, + required this.pubVkey, + required this.scubaddr}); + + /// Factory method for creating a Monero instance based on provided keys. + /// + /// This factory constructor creates a Monero instance from private keys and an optional public key. + /// It constructs the Monero configuration, private and public keys, and the associated subaddress. + /// + /// - [privKey]: The private key to be used for Monero. + /// - [pubKey]: An optional public key for Monero (used in watch-only mode). + /// - [coinType]: An optional parameter to specify the coin type (default: Monero mainnet). + /// + /// If no public key is provided (pubKey is null), it generates the public keys from the private keys. + /// + /// Returns a Monero instance configured with the provided keys and coin type. + factory Monero._({ + required List privKey, + List? pubKey, + MoneroCoins coinType = MoneroCoins.moneroMainnet, + }) { + if (pubKey == null) { + final mPrivSkey = MoneroPrivateKey.fromBytes(privKey); + final mPrivVkey = _viewFromSpendKey(mPrivSkey); + final mPubSkey = mPrivSkey.publicKey; + final mPubVkey = mPrivVkey.publicKey; + return Monero.__( + coinConf: MoneroConf.getCoin(coinType), + privSkey: mPrivSkey, + privVkey: mPrivVkey, + pubSkey: mPubSkey, + pubVkey: mPubVkey, + scubaddr: MoneroSubaddress(mPrivVkey, mPubSkey, mPubVkey)); + } + final mPrivVkey = MoneroPrivateKey.fromBytes(privKey); + final mPubSkey = MoneroPublicKey.fromBytes(pubKey); + final mPubVkey = mPrivVkey.publicKey; + return Monero.__( + coinConf: MoneroConf.getCoin(coinType), + privSkey: null, + privVkey: mPrivVkey, + pubSkey: mPubSkey, + pubVkey: mPubVkey, + scubaddr: MoneroSubaddress(mPrivVkey, mPubSkey, mPubVkey)); + } + + /// Factory method to create a Monero instance from a seed. + /// + /// Given a [seedBytes] and an optional [coinType], this method constructs a Monero instance + /// with the associated keys and configurations. + factory Monero.fromSeed(List seedBytes, + {MoneroCoins coinType = MoneroCoins.moneroMainnet}) { + List privSkeyBytes = + seedBytes.length == Ed25519KeysConst.privKeyByteLen + ? seedBytes + : QuickCrypto.keccack256Hash(seedBytes); + return Monero.fromPrivateSpendKey(Ed25519Utils.scalarReduce(privSkeyBytes), + coinType: coinType); + } + + /// Factory method to create a Monero instance from a BIP44 private key. + /// + /// Given a [privKey] and an optional [coinType], this method constructs a Monero instance + /// with the associated keys and configurations. + factory Monero.fromBip44PrivateKey(List privKey, + {MoneroCoins coinType = MoneroCoins.moneroMainnet}) { + return Monero.fromPrivateSpendKey( + Ed25519Utils.scalarReduce(QuickCrypto.keccack256Hash(privKey)), + coinType: coinType); + } + + /// Factory method to create a Monero instance from a private spend key. + /// + /// Given a [privSkey] and an optional [coinType], this method constructs a Monero instance + /// with the associated keys and configurations. + factory Monero.fromPrivateSpendKey(List privSkey, + {MoneroCoins coinType = MoneroCoins.moneroMainnet}) { + return Monero._(privKey: privSkey, coinType: coinType); + } + + /// Factory method to create a Monero instance from watch-only keys. + /// + /// Given a [privVkey], [pubSkey], and an optional [coinType], this method constructs a + /// Monero instance with the associated keys and configurations. + factory Monero.fromWatchOnly(List privVkey, List pubSkey, + {MoneroCoins coinType = MoneroCoins.moneroMainnet}) { + return Monero._(privKey: privVkey, pubKey: pubSkey, coinType: coinType); + } + + /// Check if the Monero instance is watch-only (has no private spend key). + bool get isWatchOnly { + return privSkey == null; + } + + /// Get the private spend key of the Monero instance. + MoneroPrivateKey get privateSpendKey { + if (isWatchOnly) { + throw const MoneroKeyError( + 'Watch-only class does not have a private spend key'); + } + return privSkey!; + } + + /// Get the private view key of the Monero instance. + MoneroPrivateKey get privateViewKey { + return privVkey; + } + + /// Get the public spend key of the Monero instance. + MoneroPublicKey get publicSpendKey { + return pubSkey; + } + + /// Get the public view key of the Monero instance. + MoneroPublicKey get publicViewKey { + return pubVkey; + } + + /// Generate an integrated address by encoding the keys and payment ID. + String integratedAddress(List paymentId) { + return XmrIntegratedAddrEncoder().encodeKey(pubSkey.compressed, { + "pub_vkey": pubVkey.compressed, + "net_ver": coinConf.intAddrNetVer, + "payment_id": paymentId + }); + } + + /// Get the primary address of the Monero instance. + String get primaryAddress { + return scubaddr.computeAndEncodeKeys(0, 0, coinConf.addrNetVer); + } + + /// Get a subaddress based on minor and major indexes, or return the primary address if both are 0. + String subaddress(int minorIndex, {int majorIndex = 0}) { + if (minorIndex == 0 && majorIndex == 0) { + return primaryAddress; + } + return scubaddr.computeAndEncodeKeys( + minorIndex, majorIndex, coinConf.subaddrNetVer); + } + + /// Calculate and return the private view key from the private spend key. + static MoneroPrivateKey _viewFromSpendKey(MoneroPrivateKey privSkey) { + List privVkeyBytes = + Ed25519Utils.scalarReduce(QuickCrypto.keccack256Hash(privSkey.raw)); + return MoneroPrivateKey.fromBytes(privVkeyBytes); + } +} diff --git a/lib/bip/monero/monero_exc.dart b/lib/bip/monero/monero_exc.dart new file mode 100644 index 0000000..d6327b1 --- /dev/null +++ b/lib/bip/monero/monero_exc.dart @@ -0,0 +1,17 @@ +/// An exception class representing an error related to Monero keys. +/// +/// This exception class is used to represent errors and exceptions related to Monero keys. +class MoneroKeyError implements Exception { + final String? message; + + /// Constructs a MoneroKeyError with an optional error message. + /// + /// [message]: An optional error message describing the key-related issue. + const MoneroKeyError([this.message]); + + /// Returns a string representation of the exception. + @override + String toString() { + return message ?? super.toString(); + } +} diff --git a/lib/bip/monero/monero_keys.dart b/lib/bip/monero/monero_keys.dart new file mode 100644 index 0000000..c11aefb --- /dev/null +++ b/lib/bip/monero/monero_keys.dart @@ -0,0 +1,182 @@ +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; +import 'package:blockchain_utils/bip/ecc/curve/elliptic_curve_types.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_keys.dart'; +import 'package:blockchain_utils/bip/ecc/keys/ed25519_monero_keys.dart'; +import 'package:blockchain_utils/bip/monero/monero_exc.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/base.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; + +/// A class representing a Monero public key that implements the IPublicKey interface. +/// +/// This class is used to represent Monero public keys and provides methods for creating +/// them from byte data or Edwards points and validating their byte representation. +class MoneroPublicKey implements IPublicKey { + final IPublicKey pubKey; + + /// Private constructor for MoneroPublicKey. + /// + /// This constructor is used internally to create a MoneroPublicKey instance + /// from a given public key `pubKey`. + MoneroPublicKey._(this.pubKey); + + /// Factory method to create a MoneroPublicKey from its byte representation. + /// + /// Given a [List] `pubKey`, this method creates a new [MoneroPublicKey] instance + /// by invoking the private constructor [_keyFromBytes] with the provided byte data. + factory MoneroPublicKey.fromBytes(List pubKey) { + return MoneroPublicKey._(_keyFromBytes(pubKey)); + } + + /// Factory method to create a MoneroPublicKey from an Edwards point. + /// + /// This method creates a new [MoneroPublicKey] instance from an [EDPoint] + /// `point` by calling the private constructor [_keyFromPoint] with the given point. + factory MoneroPublicKey.fromPoint(EDPoint point) { + return MoneroPublicKey._(_keyFromPoint(point)); + } + + /// Static method to validate the byte representation of a Monero public key. + /// + /// This method checks the validity of a Monero public key's byte representation + /// by invoking the [isValidBytes] method from the [Ed25519MoneroPublicKey] class. + /// It returns `true` if the key bytes are valid and `false` otherwise. + static bool isValidBytes(List keyBytes) { + return Ed25519MoneroPublicKey.isValidBytes(keyBytes); + } + + /// public key compressed bytes. + @override + List get compressed { + return pubKey.point.toBytes(); + } + + /// public key uncompressed bytes. + @override + List get uncompressed { + return pubKey.uncompressed; + } + + /// Create a Monero public key from its byte representation. + /// + /// This method attempts to create a Monero public key from a byte representation + /// `keyBytes` by invoking the `fromBytes` method of [Ed25519MoneroPublicKey]. + /// If the byte representation is invalid, it throws a [MoneroKeyError] exception. + /// + /// Returns an implementation of the [IPublicKey] interface. + static IPublicKey _keyFromBytes(List keyBytes) { + try { + return Ed25519MoneroPublicKey.fromBytes(keyBytes); + } catch (ex) { + throw const MoneroKeyError('Invalid public key'); + } + } + + /// Create a Monero public key from an Edwards point. + /// + /// This method attempts to create a Monero public key from an [EDPoint] + /// `keyPoint` by invoking the `fromPoint` method of [Ed25519MoneroPublicKey]. + /// If the conversion is unsuccessful, it throws a [MoneroKeyError] exception. + /// + /// Returns an implementation of the [IPublicKey] interface. + static IPublicKey _keyFromPoint(EDPoint keyPoint) { + try { + return Ed25519MoneroPublicKey.fromPoint(keyPoint); + } catch (ex) { + throw const MoneroKeyError('Invalid key point'); + } + } + + /// public key compressed bytes length. + @override + int get length { + return Ed25519KeysConst.pubKeyByteLen; + } + + /// curve type. + @override + EllipticCurveTypes get curve { + return EllipticCurveTypes.ed25519Monero; + } + + /// public key uncompressed bytes length. + @override + int get uncompressedLength { + return length; + } + + /// public key point. + @override + AbstractPoint get point { + return pubKey.point; + } +} + +/// A class representing a Monero private key that implements the IPrivateKey interface. +/// +/// This class serves as a wrapper for a private key, implementing the [IPrivateKey] interface. +class MoneroPrivateKey implements IPrivateKey { + final IPrivateKey privKey; + + /// Private constructor for MoneroPrivateKey. + /// + /// This constructor is used internally to create a MoneroPrivateKey instance + /// from an existing private key `privKey`. + MoneroPrivateKey._(this.privKey); + + /// Factory method to create a MoneroPrivateKey from its byte representation. + /// + /// Given a [List] `keyBytes`, this method creates a new [MoneroPrivateKey] instance + /// by invoking the private constructor [_keyFromBytes] with the provided byte data + factory MoneroPrivateKey.fromBytes(List keyBytes) { + return MoneroPrivateKey._(_keyFromBytes(keyBytes)); + } + + /// Static method to validate the byte representation of a Monero public key. + /// + /// This method checks the validity of a Monero public key's byte representation + /// by invoking the [isValidBytes] method from the [Ed25519MoneroPublicKey] class. + /// It returns `true` if the key bytes are valid and `false` otherwise. + static bool isValidBytes(List keyBytes) { + return Ed25519MoneroPublicKey.isValidBytes(keyBytes); + } + + /// private key raw bytes. + @override + List get raw { + return privKey.raw; + } + + /// accsess to public key. + @override + MoneroPublicKey get publicKey { + return MoneroPublicKey._(privKey.publicKey); + } + + /// Create a Monero private key from its byte representation. + /// + /// This method attempts to create a Monero private key from a byte representation + /// `keyBytes` by invoking the `fromBytes` method of [Ed25519MoneroPrivateKey]. + /// If the byte representation is invalid or the conversion fails, it throws a + /// [MoneroKeyError] exception with the message 'Invalid private key.' + /// + /// Returns an implementation of the [IPrivateKey] interface. + static IPrivateKey _keyFromBytes(List keyBytes) { + try { + return Ed25519MoneroPrivateKey.fromBytes(keyBytes); + } catch (ex) { + throw const MoneroKeyError('Invalid private key'); + } + } + + /// curve type. + @override + EllipticCurveTypes get curveType { + return EllipticCurveTypes.ed25519Monero; + } + + /// private key bytes length. + @override + int get length { + return privKey.length; + } +} diff --git a/lib/bip/monero/monero_subaddr.dart b/lib/bip/monero/monero_subaddr.dart new file mode 100644 index 0000000..3b70f5f --- /dev/null +++ b/lib/bip/monero/monero_subaddr.dart @@ -0,0 +1,110 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/int_utils.dart'; +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/bip/address/xmr_addr.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/utils/ed25519_utils.dart'; +import 'package:blockchain_utils/bip/monero/monero_keys.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; + +/// A class containing constants related to Monero subaddresses. +class MoneroSubaddressConst { + /// Prefix for Monero subaddresses. + /// + /// Monero subaddresses typically start with the byte sequence [83, 117, 98, 65, 100, 100, 114, 0]. + static const subaddrPrefix = [83, 117, 98, 65, 100, 100, 114, 0]; + + /// Maximum allowed index for a Monero subaddress. + /// + /// Monero subaddresses use a 32-bit unsigned integer for indexing, and this constant + /// represents the maximum valid index. + static const subaddrMaxIdx = 4294967295; + + /// Byte length of the index used for Monero subaddresses. + /// + /// Monero subaddress indices are typically represented using 4 bytes. + static const subaddrIdxByteLen = 4; +} + +/// A class representing a Monero subaddress, which consists of private and public keys. +class MoneroSubaddress { + /// Private view key + final MoneroPrivateKey privVKey; + + /// Public spend key + final MoneroPublicKey pubSKey; + + /// Public view key + final MoneroPublicKey pubVKey; + + /// Constructor for creating a Monero subaddress. + /// + /// The constructor takes a private view key [privVKey] and a public spend key [pubSKey]. + /// Optionally, it can also accept a public view key [publicVkey] (defaulting to `null`). + MoneroSubaddress(this.privVKey, this.pubSKey, [MoneroPublicKey? publicVkey]) + : pubVKey = publicVkey ?? privVKey.publicKey; + + /// Compute the subaddress keys based on minor and major indexes. + /// + /// This method calculates Monero subaddress keys using the provided [minorIndex] and [majorIdx]. + /// If the indexes are out of valid range, it throws an `ArgumentError`. + /// It returns a tuple of subaddress public spend key and subaddress public view key. + (MoneroPublicKey, MoneroPublicKey) computeKeys( + int minorIndex, int majorIndex) { + if (minorIndex < 0 || minorIndex > MoneroSubaddressConst.subaddrMaxIdx) { + throw ArgumentError('Invalid minor index ($minorIndex)'); + } + if (majorIndex < 0 || majorIndex > MoneroSubaddressConst.subaddrMaxIdx) { + throw ArgumentError('Invalid major index ($majorIndex)'); + } + + if (minorIndex == 0 && majorIndex == 0) { + return (pubSKey, pubVKey); + } + + List majorIdxBytes = IntUtils.toBytes(majorIndex, + length: MoneroSubaddressConst.subaddrIdxByteLen); + List minorIdxBytes = IntUtils.toBytes( + minorIndex, + length: MoneroSubaddressConst.subaddrIdxByteLen, + ); + + List privVKeyBytes = privVKey.raw; + + List mBytes = QuickCrypto.keccack256Hash(List.from([ + ...MoneroSubaddressConst.subaddrPrefix, + ...privVKeyBytes, + ...majorIdxBytes, + ...minorIdxBytes + ])); + BigInt mInt = BigintUtils.fromBytes(Ed25519Utils.scalarReduce(mBytes), + byteOrder: Endian.little); + final newPoint = + pubSKey.pubKey.point + (Curves.generatorED25519 * mInt) as EDPoint; + + MoneroPublicKey subaddrPubSKey = MoneroPublicKey.fromPoint(newPoint); + MoneroPublicKey subaddrPubVKey = MoneroPublicKey.fromPoint( + (subaddrPubSKey.pubKey.point * + BigintUtils.fromBytes(privVKey.raw, byteOrder: Endian.little)) + as EDPoint); + + return (subaddrPubSKey, subaddrPubVKey); + } + + /// Compute and encode Monero subaddress keys into a string representation. + /// + /// This method calculates the Monero subaddress keys using the provided [minorIndex] + /// and [majorIndex] and encodes them into a string representation. It also takes the + /// [netVer] parameter to specify the network version. + /// + /// It returns the encoded string representation of the subaddress keys. + String computeAndEncodeKeys( + int minorIndex, int majorIndex, List netVer) { + final keys = computeKeys(minorIndex, majorIndex); + + return XmrAddrEncoder().encodeKey(keys.$1.compressed, + {"pub_vkey": keys.$2.compressed, "net_ver": netVer}); + } +} diff --git a/lib/bip/slip/slip173/slip173.dart b/lib/bip/slip/slip173/slip173.dart new file mode 100644 index 0000000..5663c52 --- /dev/null +++ b/lib/bip/slip/slip173/slip173.dart @@ -0,0 +1,25 @@ +/// SLIP-0173 class. +/// It defines the human-readable parts in accordance with SLIP-0173. +class Slip173 { + static const String akashNetwork = "akash"; + static const String axelar = "axelar"; + static const String bandProtocol = "band"; + static const String binanceChain = "bnb"; + static const String bitcoinMainnet = "bc"; + static const String bitcoinTestnet = "tb"; + static const String certik = "certik"; + static const String chihuahua = "chihuahua"; + static const String cosmos = "cosmos"; + static const String elrond = "erd"; + static const String harmonyOne = "one"; + static const String injective = "inj"; + static const String irisNetwork = "iaa"; + static const String kava = "kava"; + static const String litecoinMainnet = "ltc"; + static const String litecoinTestnet = "tltc"; + static const String okexChain = "ex"; + static const String osmosis = "osmo"; + static const String secretNetwork = "secret"; + static const String terra = "terra"; + static const String zilliqa = "zil"; +} diff --git a/lib/bip/slip/slip32/slip32.dart b/lib/bip/slip/slip32/slip32.dart new file mode 100644 index 0000000..5fa6784 --- /dev/null +++ b/lib/bip/slip/slip32/slip32.dart @@ -0,0 +1,203 @@ +import 'package:blockchain_utils/bech32/bech32_base.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/bip32_path.dart'; +import 'package:blockchain_utils/bip/ecc/keys/i_keys.dart'; + +import 'slip32_key_net_ver.dart'; + +/// A class containing constants related to SLIP-32 key serialization. +class Slip32KeySerConst { + /// Standard SLIP-32 key network versions. + /// + /// These network versions are used for standard extended public (xpub) and private (xprv) keys. + static const Slip32KeyNetVersions stdKeyNetVersions = + Slip32KeyNetVersions(pubNetVar: "xpub", privNetVar: "xprv"); +} + +/// A class for serializing SLIP-32 extended keys and associated data. +class Slip32KeySerializer { + /// Serialize an extended key along with path, chain code, and network version. + /// + /// This method takes the extended key's byte representation [keyBytes], the key's + /// derivation path or Bip32 path [pathOrBip32Path], the chain code or Bip32 chain code, + /// and the network version string [keyNetVerStr]. It serializes these components and + /// returns the serialized key as a Bech32-encoded string. + static String serialize( + List keyBytes, + String pathOrBip32Path, + Bip32ChainCode chainCodeOrBip32ChainCode, + String keyNetVerStr, + ) { + Bip32Path path = Bip32PathParser.parse(pathOrBip32Path); + Bip32ChainCode chainCode = chainCodeOrBip32ChainCode; + + // Serialize key + final serKey = List.from([ + ...Bip32Depth(path.length()).toBytes(), + ..._serializePath(path), + ...chainCode.toBytes(), + ...keyBytes, + ]); + + return Bech32Encoder.encode(keyNetVerStr, serKey); + } + + /// Serialize a Bip32Path into a byte representation. + /// + /// This method serializes a Bip32Path [path] into a byte representation and returns it. + static List _serializePath(Bip32Path path) { + List pathBytes = List.empty(); + for (final pathElem in path.elems) { + pathBytes = List.from([...pathBytes, ...pathElem.toBytes()]); + } + return pathBytes; + } +} + +/// A class for serializing SLIP-32 private keys. +class Slip32PrivateKeySerializer { + /// Serialize a private key with a given path, chain code, and network version. + /// + /// This method serializes a private key [privKey] into a SLIP-32 format along with + /// the specified path or Bip32 path [pathOrBip32Path], chain code, and private key + /// network version [keyNetVer]. It returns the serialized private key as a Bech32-encoded string. + static String serialize( + IPrivateKey privKey, + String pathOrBip32Path, + dynamic chainCodeOrBip32ChainCode, + Slip32KeyNetVersions keyNetVer, + ) { + return Slip32KeySerializer.serialize( + List.from([0x00, ...privKey.raw]), + pathOrBip32Path, + chainCodeOrBip32ChainCode, + keyNetVer.private, + ); + } +} + +/// A class for serializing SLIP-32 public keys. +class Slip32PublicKeySerializer { + /// Serialize a public key with a given path, chain code, and network version. + /// + /// This method serializes a public key [pubKey] into a SLIP-32 format along with + /// the specified path or Bip32 path [pathOrBip32Path], chain code, and public key + /// network version [keyNetVer]. It returns the serialized public key as a Bech32-encoded string. + static String serialize( + IPublicKey pubKey, + String pathOrBip32Path, + dynamic chainCodeOrBip32ChainCode, + Slip32KeyNetVersions keyNetVer, + ) { + return Slip32KeySerializer.serialize( + pubKey.compressed, + pathOrBip32Path, + chainCodeOrBip32ChainCode, + keyNetVer.public, + ); + } +} + +/// A class representing a deserialized SLIP-32 key, including private and public keys. +class Slip32DeserializedKey { + /// Raw key bytes + final List _keyBytes; + + /// Derivation path + final Bip32Path path; + + /// Chain code + final Bip32ChainCode chainCode; + + /// Indicates if the key is public + final bool isPublic; + + /// Constructor for creating a deserialized SLIP-32 key. + /// + /// The constructor takes the raw key bytes [_keyBytes], the derivation path [path], + /// the chain code [chainCode], and a flag [isPublic] to indicate if the key is public. + const Slip32DeserializedKey( + this._keyBytes, + this.path, + this.chainCode, + this.isPublic, + ); + + /// Get a copy of the key bytes. + List get keyBytes { + return List.from(_keyBytes); + } +} + +/// A class for deserializing SLIP-32 extended keys and associated data. +class Slip32KeyDeserializer { + /// Deserialize a serialized SLIP-32 key. + /// + /// This method takes a Bech32-encoded string [serKeyStr] representing a serialized SLIP-32 key + /// and the network versions [keyNetVer]. It deserializes the key, extracts its components, and + /// returns a `Slip32DeserializedKey` object containing the key bytes, derivation path, chain code, + /// and an indicator if the key is public. + static Slip32DeserializedKey deserializeKey( + String serKeyStr, + Slip32KeyNetVersions keyNetVer, + ) { + bool isPublic = _getIfPublic(serKeyStr, keyNetVer); + List serKeyBytes = Bech32Decoder.decode( + isPublic ? keyNetVer.public : keyNetVer.private, serKeyStr); + + // Get parts back + List keyParts = _getPartsFromBytes(serKeyBytes, isPublic); + List keyBytes = keyParts[0]; + Bip32Path path = keyParts[1]; + Bip32ChainCode chainCode = keyParts[2]; + + return Slip32DeserializedKey(keyBytes, path, chainCode, isPublic); + } + + /// Determine if the serialized key is public or private based on network versions. + static bool _getIfPublic(String serKeyStr, Slip32KeyNetVersions keyNetVer) { + if (serKeyStr.substring(0, keyNetVer.public.length) == keyNetVer.public) { + return true; + } else if (serKeyStr.substring(0, keyNetVer.private.length) == + keyNetVer.private) { + return false; + } else { + throw ArgumentError("Invalid extended key (wrong net version)"); + } + } + + /// Extract key parts from serialized key bytes. + static List _getPartsFromBytes( + List serKeyBytes, bool isPublic) { + int depthIdx = 0; + int pathIdx = depthIdx + Bip32Depth.fixedLength(); + + // Get back depth and path + int depth = serKeyBytes[depthIdx]; + Bip32Path path = Bip32Path(); + for (int i = 0; i < depth; i++) { + List keyIndexBytes = serKeyBytes.sublist( + pathIdx + (i * Bip32KeyIndex.fixedLength()), + pathIdx + ((i + 1) * Bip32KeyIndex.fixedLength())); + path = path.addElem(Bip32KeyIndex.fromBytes(keyIndexBytes)); + } + + // Get back chain code and key + int chainCodeIdx = pathIdx + (depth * Bip32KeyIndex.fixedLength()); + int keyIdx = chainCodeIdx + Bip32ChainCode.fixedLength(); + + List chainCodeBytes = serKeyBytes.sublist(chainCodeIdx, keyIdx); + List keyBytes = serKeyBytes.sublist(keyIdx); + + // If private key, the first byte shall be zero and shall be removed + if (!isPublic) { + if (keyBytes[0] != 0) { + throw ArgumentError( + "Invalid extended private key (wrong secret: ${keyBytes[0]})"); + } + keyBytes = keyBytes.sublist(1); + } + + return [keyBytes, path, Bip32ChainCode(chainCodeBytes)]; + } +} diff --git a/lib/bip/slip/slip32/slip32_key_net_ver.dart b/lib/bip/slip/slip32/slip32_key_net_ver.dart new file mode 100644 index 0000000..fcce62c --- /dev/null +++ b/lib/bip/slip/slip32/slip32_key_net_ver.dart @@ -0,0 +1,74 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/// A class that represents network versions for SLIP-32 extended keys. +class Slip32KeyNetVersions { + /// Public key network version + final String pubNetVar; + + /// Private key network version + final String privNetVar; + + /// Constructor to create Slip32KeyNetVersions. + /// + /// Initializes the network versions for public and private keys. + const Slip32KeyNetVersions( + {required this.pubNetVar, required this.privNetVar}); + + /// Get the public key network version. + String get public => pubNetVar; + + /// Get the private key network version. + String get private => privNetVar; +} diff --git a/lib/bip/slip/slip44/slip44.dart b/lib/bip/slip/slip44/slip44.dart new file mode 100644 index 0000000..5571556 --- /dev/null +++ b/lib/bip/slip/slip44/slip44.dart @@ -0,0 +1,104 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/// SLIP-0044 class. +/// It defines the coin types in accordance with SLIP-0044. +class Slip44 { + static const int bitcoin = 0; + static const int testnet = 1; + static const int litecoin = 2; + static const int dogecoin = 3; + static const int dash = 5; + static const int ethereum = 60; + static const int ethereumClassic = 61; + static const int icon = 74; + static const int verge = 77; + static const int atom = 118; + static const int monero = 128; + static const int zcash = 133; + static const int ripple = 144; + static const int bitcoinCash = 145; + static const int stellar = 148; + static const int nano = 165; + static const int eos = 194; + static const int tron = 195; + static const int bitcoinSv = 236; + static const int algorand = 283; + static const int zilliqa = 313; + static const int terra = 330; + static const int polkadot = 354; + static const int nearProtocol = 397; + static const int ergo = 429; + static const int kusama = 434; + static const int kava = 459; + static const int filecoin = 461; + static const int bandProtocol = 494; + static const int theta = 500; + static const int solana = 501; + static const int elrond = 508; + static const int secretNetwork = 529; + static const int nineChronicles = 567; + static const int aptos = 637; + static const int binanceChain = 714; + static const int vechain = 818; + static const int neo = 888; + static const int okexChain = 996; + static const int harmonyOne = 1023; + static const int ontology = 1024; + static const int tezos = 1729; + static const int cardano = 1815; + static const int avalanche = 9000; + static const int celo = 52752; + static const int piNetwork = 314159; +} diff --git a/lib/bip/substrate/conf/substrate_coin_conf.dart b/lib/bip/substrate/conf/substrate_coin_conf.dart new file mode 100644 index 0000000..937212e --- /dev/null +++ b/lib/bip/substrate/conf/substrate_coin_conf.dart @@ -0,0 +1,30 @@ +import 'package:blockchain_utils/bip/coin_conf/coin_conf.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_name.dart'; + +/// A class representing the configuration for a Substrate-based cryptocurrency. +class SubstrateCoinConf { + /// Coin names and symbols + final CoinNames coinNames; + + /// Address format identifier + final int ss58Format; + + /// Constructor for creating a SubstrateCoinConf instance. + /// + /// It initializes the Substrate cryptocurrency's coin names and symbols [coinNames] + /// and the SS58 address format identifier [ss58Format]. + SubstrateCoinConf({required this.coinNames, required this.ss58Format}); + + /// Factory method to create a SubstrateCoinConf from a generic CoinConf. + /// + /// This method takes a generic `CoinConf` instance and extracts the coin names + /// and SS58 address format information to create a `SubstrateCoinConf`. + factory SubstrateCoinConf.fromCoinConf(CoinConf coinConf) { + return SubstrateCoinConf( + coinNames: coinConf.coinName, + ss58Format: coinConf.getParam("addr_ss58_format")); + } + + /// Get the Substrate-specific address parameters as a map. + Map get addrParams => {"ss58_format": ss58Format}; +} diff --git a/lib/bip/substrate/conf/substrate_coins.dart b/lib/bip/substrate/conf/substrate_coins.dart new file mode 100644 index 0000000..8d300f3 --- /dev/null +++ b/lib/bip/substrate/conf/substrate_coins.dart @@ -0,0 +1,22 @@ +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; + +/// An enumeration of supported cryptocurrencies for SubstrateCoins. +enum SubstrateCoins implements BipCoins { + acala, + bifrost, + chainx, + edgeware, + generic, + karura, + kusama, + moonbeam, + moonriver, + phala, + plasm, + polkadot, + sora, + stafi; + + @override + SubstrateCoins get value => this; +} diff --git a/lib/bip/substrate/conf/substrate_conf.dart b/lib/bip/substrate/conf/substrate_conf.dart new file mode 100644 index 0000000..5a50a25 --- /dev/null +++ b/lib/bip/substrate/conf/substrate_conf.dart @@ -0,0 +1,92 @@ +import 'package:blockchain_utils/bip/bip/conf/bip_coins.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/substrate/conf/substrate_coins.dart'; + +import 'substrate_coin_conf.dart'; + +/// A configuration class for Substrate coins that defines the key network versions and +/// maps each supported SubstrateCoins to its corresponding SubstrateConf. +class SubstrateConf { + /// Retrieves the SubstrateCoinConf for the given SubstrateCoin. If the provided coin + /// is not an instance of SubstrateCoins, an error is thrown. + static SubstrateCoinConf getCoin(BipCoins coin) { + if (coin is! SubstrateCoins) { + throw ArgumentError("Coin type is not an enumerative of SubstrateCoins"); + } + return coinToConf[coin.value]!; + } + + /// A mapping that associates each SubstrateCoins (enum) with its corresponding + /// SubstrateCoinConf configuration. + static final Map coinToConf = { + SubstrateCoins.acala: SubstrateConf.acala, + SubstrateCoins.bifrost: SubstrateConf.bifrost, + SubstrateCoins.chainx: SubstrateConf.chainX, + SubstrateCoins.edgeware: SubstrateConf.edgeware, + SubstrateCoins.generic: SubstrateConf.generic, + SubstrateCoins.karura: SubstrateConf.karura, + SubstrateCoins.kusama: SubstrateConf.kusama, + SubstrateCoins.moonbeam: SubstrateConf.moonbeam, + SubstrateCoins.moonriver: SubstrateConf.moonriver, + SubstrateCoins.phala: SubstrateConf.phala, + SubstrateCoins.plasm: SubstrateConf.plasm, + SubstrateCoins.polkadot: SubstrateConf.polkadot, + SubstrateCoins.sora: SubstrateConf.sora, + SubstrateCoins.stafi: SubstrateConf.stafi, + }; + // Configuration for Acala + static final SubstrateCoinConf acala = + SubstrateCoinConf.fromCoinConf(CoinsConf.acala); + + // Configuration for Bifrost + static final SubstrateCoinConf bifrost = + SubstrateCoinConf.fromCoinConf(CoinsConf.bifrost); + + // Configuration for ChainX + static final SubstrateCoinConf chainX = + SubstrateCoinConf.fromCoinConf(CoinsConf.chainX); + + // Configuration for Edgeware + static final SubstrateCoinConf edgeware = + SubstrateCoinConf.fromCoinConf(CoinsConf.edgeware); + + // Configuration for generic Substrate coin + static final SubstrateCoinConf generic = + SubstrateCoinConf.fromCoinConf(CoinsConf.genericSubstrate); + + // Configuration for Karura + static final SubstrateCoinConf karura = + SubstrateCoinConf.fromCoinConf(CoinsConf.karura); + + // Configuration for Kusama + static final SubstrateCoinConf kusama = + SubstrateCoinConf.fromCoinConf(CoinsConf.kusama); + + // Configuration for Moonbeam + static final SubstrateCoinConf moonbeam = + SubstrateCoinConf.fromCoinConf(CoinsConf.moonbeam); + + // Configuration for Moonriver + static final SubstrateCoinConf moonriver = + SubstrateCoinConf.fromCoinConf(CoinsConf.moonriver); + + // Configuration for Phala + static final SubstrateCoinConf phala = + SubstrateCoinConf.fromCoinConf(CoinsConf.phala); + + // Configuration for Plasm + static final SubstrateCoinConf plasm = + SubstrateCoinConf.fromCoinConf(CoinsConf.plasm); + + // Configuration for Polkadot + static final SubstrateCoinConf polkadot = + SubstrateCoinConf.fromCoinConf(CoinsConf.polkadot); + + // Configuration for Sora + static final SubstrateCoinConf sora = + SubstrateCoinConf.fromCoinConf(CoinsConf.sora); + + // Configuration for Stafi + static final SubstrateCoinConf stafi = + SubstrateCoinConf.fromCoinConf(CoinsConf.stafi); +} diff --git a/lib/bip/substrate/scale/substrate_scale_enc_base.dart b/lib/bip/substrate/scale/substrate_scale_enc_base.dart new file mode 100644 index 0000000..8cecf4f --- /dev/null +++ b/lib/bip/substrate/scale/substrate_scale_enc_base.dart @@ -0,0 +1,7 @@ +/// An abstract base class for encoding values in Substrate SCALE format. +abstract class SubstrateScaleEncoderBase { + const SubstrateScaleEncoderBase(); + + /// Encode the provided [value] into a List in Substrate SCALE format. + List encode(String value); +} diff --git a/lib/bip/substrate/scale/substrate_scale_enc_bytes.dart b/lib/bip/substrate/scale/substrate_scale_enc_bytes.dart new file mode 100644 index 0000000..ba31fc6 --- /dev/null +++ b/lib/bip/substrate/scale/substrate_scale_enc_bytes.dart @@ -0,0 +1,17 @@ +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_base.dart'; +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_cuint.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// A Substrate SCALE encoder for string values represented as bytes. +class SubstrateScaleBytesEncoder extends SubstrateScaleEncoderBase { + const SubstrateScaleBytesEncoder(); + + /// Encode the provided [value] as bytes and wrap it in Substrate SCALE format. + @override + List encode(String value) { + final toBytes = StringUtils.encode(value); + List lengthBytes = + const SubstrateScaleCUintEncoder().encode(toBytes.length.toString()); + return List.from([...lengthBytes, ...toBytes]); + } +} diff --git a/lib/bip/substrate/scale/substrate_scale_enc_cuint.dart b/lib/bip/substrate/scale/substrate_scale_enc_cuint.dart new file mode 100644 index 0000000..aead495 --- /dev/null +++ b/lib/bip/substrate/scale/substrate_scale_enc_cuint.dart @@ -0,0 +1,54 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/int_utils.dart'; +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_base.dart'; + +/// Constants related to Substrate SCALE Compact Uint (CUint) encoding. +class SubstrateScaleCUintEncoderConst { + /// The maximum value for a single-byte encoding mode (6 bits). + static final BigInt singleByteModeMaxVal = (BigInt.one << 6) - BigInt.one; + + /// The maximum value for a two-byte encoding mode (14 bits). + static final BigInt twoByteModeMaxVal = (BigInt.one << 14) - BigInt.one; + + /// The maximum value for a four-byte encoding mode (30 bits). + static final BigInt fourByteModeMaxVal = (BigInt.one << 30) - BigInt.one; + + /// The maximum value for the big integer encoding mode (536 bits). + static final BigInt bigIntegerModeMaxVal = (BigInt.one << 536) - BigInt.one; +} + +/// A Substrate SCALE encoder for encoding unsigned integers as Compact Uints (CUints). +class SubstrateScaleCUintEncoder extends SubstrateScaleEncoderBase { + const SubstrateScaleCUintEncoder(); + + /// Encode the provided [value] as a Compact Uint (CUint) in Substrate SCALE format. + /// + /// This method takes an unsigned integer value [value], encodes it as a Compact Uint (CUint) + /// in Substrate SCALE format, and returns the encoded value as a List. + @override + List encode(String value) { + final v = BigInt.parse(value); + if (v <= SubstrateScaleCUintEncoderConst.singleByteModeMaxVal) { + return BigintUtils.toBytes(v << 2, length: 1, order: Endian.little); + } + if (v <= SubstrateScaleCUintEncoderConst.twoByteModeMaxVal) { + return BigintUtils.toBytes((v << 2) | BigInt.from(0x01), + length: 2, order: Endian.little); + } + if (v <= SubstrateScaleCUintEncoderConst.fourByteModeMaxVal) { + return BigintUtils.toBytes((v << 2) | BigInt.from(0x02), + length: 4, order: Endian.little); + } + if (v <= SubstrateScaleCUintEncoderConst.bigIntegerModeMaxVal) { + List valueBytes = BigintUtils.toBytes(v, + order: Endian.little, length: BigintUtils.orderLen(v)); + List lenBytes = + IntUtils.toBytes((valueBytes.length - 4 << 2) | 0x03, length: 1); + return List.from([...lenBytes, ...valueBytes]); + } + + throw FormatException("Out of range integer value ($value)"); + } +} diff --git a/lib/bip/substrate/scale/substrate_scale_enc_uint.dart b/lib/bip/substrate/scale/substrate_scale_enc_uint.dart new file mode 100644 index 0000000..7e0be29 --- /dev/null +++ b/lib/bip/substrate/scale/substrate_scale_enc_uint.dart @@ -0,0 +1,86 @@ +import 'dart:typed_data'; +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'substrate_scale_enc_base.dart'; + +/// An abstract base class for encoding unsigned integers in Substrate SCALE format. +abstract class SubstrateScaleUintEncoder extends SubstrateScaleEncoderBase { + const SubstrateScaleUintEncoder(); + + /// Encode the provided [value] as a Substrate SCALE Uint with the specified byte length + static List _encodeWithBytesLength(String value, int bytesLen) { + final v = BigInt.parse(value); + final maxVal = (BigInt.one << (bytesLen * 8)) - BigInt.one; + if (v < BigInt.zero || v > maxVal) { + throw ArgumentError('Invalid integer value ($value)'); + } + + return BigintUtils.toBytes(v, + length: bytesLen, order: bytesLen >= 2 ? Endian.little : Endian.big); + } +} + +/// A Substrate SCALE encoder for encoding 8-bit unsigned integers (U8). +class SubstrateScaleU8Encoder extends SubstrateScaleUintEncoder { + const SubstrateScaleU8Encoder(); + + /// Encode the provided [value] as an 8-bit unsigned integer (U8) in Substrate SCALE format. + @override + List encode(String value) { + return SubstrateScaleUintEncoder._encodeWithBytesLength(value, 1); + } +} + +/// A Substrate SCALE encoder for encoding 16-bit unsigned integers (U16). +class SubstrateScaleU16Encoder extends SubstrateScaleUintEncoder { + const SubstrateScaleU16Encoder(); + + /// Encode the provided [value] as a 16-bit unsigned integer (U16) in Substrate SCALE format. + @override + List encode(String value) { + return SubstrateScaleUintEncoder._encodeWithBytesLength(value, 2); + } +} + +/// A Substrate SCALE encoder for encoding 32-bit unsigned integers (U32). +class SubstrateScaleU32Encoder extends SubstrateScaleUintEncoder { + const SubstrateScaleU32Encoder(); + + /// Encode the provided [value] as a 32-bit unsigned integer (U32) in Substrate SCALE format. + @override + List encode(String value) { + return SubstrateScaleUintEncoder._encodeWithBytesLength(value, 4); + } +} + +/// A Substrate SCALE encoder for encoding 64-bit unsigned integers (U64). +class SubstrateScaleU64Encoder extends SubstrateScaleUintEncoder { + const SubstrateScaleU64Encoder(); + + /// Encode the provided [value] as a 64-bit unsigned integer (U64) in Substrate SCALE format. + @override + List encode(String value) { + return SubstrateScaleUintEncoder._encodeWithBytesLength(value, 8); + } +} + +/// A Substrate SCALE encoder for encoding 128-bit unsigned integers (U128). +class SubstrateScaleU128Encoder extends SubstrateScaleUintEncoder { + const SubstrateScaleU128Encoder(); + + /// Encode the provided [value] as a 128-bit unsigned integer (U128) in Substrate SCALE format. + @override + List encode(String value) { + return SubstrateScaleUintEncoder._encodeWithBytesLength(value, 16); + } +} + +/// A Substrate SCALE encoder for encoding 256-bit unsigned integers (U256). +class SubstrateScaleU256Encoder extends SubstrateScaleUintEncoder { + const SubstrateScaleU256Encoder(); + + /// Encode the provided [value] as a 256-bit unsigned integer (U256) in Substrate SCALE format. + @override + List encode(String value) { + return SubstrateScaleUintEncoder._encodeWithBytesLength(value, 32); + } +} diff --git a/lib/bip/substrate/substrate.dart b/lib/bip/substrate/substrate.dart new file mode 100644 index 0000000..9b4379d --- /dev/null +++ b/lib/bip/substrate/substrate.dart @@ -0,0 +1,22 @@ +/// The 'substrate' library provides tools for working with the Substrate blockchain +/// ecosystem, including coin definitions, configuration data, and encoding utilities. +library substrate; + +/// Export statement for Substrate coin definitions and configuration. +export 'conf/substrate_coins.dart'; +export 'conf/substrate_conf.dart'; + +/// Export statements for Substrate SCALE encoding utilities. +export 'scale/substrate_scale_enc_base.dart'; +export 'scale/substrate_scale_enc_bytes.dart'; +export 'scale/substrate_scale_enc_cuint.dart'; +export 'scale/substrate_scale_enc_uint.dart'; + +/// Export statement for Substrate base components, including key, derivation, address. +export 'substrate_base.dart'; + +/// Export statement for Substrate key management components. +export 'substrate_keys.dart'; + +/// Export statement for Substrate path components. +export 'substrate_path.dart'; diff --git a/lib/bip/substrate/substrate_base.dart b/lib/bip/substrate/substrate_base.dart new file mode 100644 index 0000000..12cedd2 --- /dev/null +++ b/lib/bip/substrate/substrate_base.dart @@ -0,0 +1,170 @@ +import 'package:blockchain_utils/bip/substrate/conf/substrate_coin_conf.dart'; +import 'package:blockchain_utils/bip/substrate/conf/substrate_conf.dart'; +import 'package:blockchain_utils/bip/substrate/substrate_ex.dart'; +import 'package:blockchain_utils/bip/substrate/substrate_keys.dart'; +import 'package:blockchain_utils/crypto/crypto/schnorrkel/keys/keys.dart'; + +import 'conf/substrate_coins.dart'; +import 'substrate_path.dart'; + +/// Constants used in Substrate-related operations. +class SubstrateConst { + /// The minimum byte length for a seed in Substrate. + static const int seedMinByteLen = 32; +} + +/// A class representing a Substrate context that includes private and public keys, +/// a path, and coin configuration. +class Substrate { + /// Private key (nullable) + SubstratePrivateKey? _priveKey; + + /// Public key + final SubstratePublicKey publicKey; + + /// Path + final SubstratePath path; + + /// Coin configuration + final SubstrateCoinConf coinConf; + + /// Private constructor to create a Substrate context. + Substrate._(this._priveKey, this.publicKey, this.path, this.coinConf); + + /// Create a Substrate context from a seed and coin type. + factory Substrate.fromSeed(List seedBytes, SubstrateCoins coinType) { + if (seedBytes.length < SubstrateConst.seedMinByteLen) { + throw ArgumentError( + 'Seed length is too small, it shall be at least ${SubstrateConst.seedMinByteLen} bytes', + ); + } + + final seed = seedBytes.sublist(0, SubstrateConst.seedMinByteLen); + final SchnorrkelMiniSecretKey miniSecretKey = + SchnorrkelMiniSecretKey.fromBytes(seed); + final secretKey = miniSecretKey.toSecretKey(); + + return Substrate._( + SubstratePrivateKey.fromBytes( + secretKey.toBytes(), SubstrateConf.getCoin(coinType)), + SubstratePublicKey.fromBytes( + secretKey.publicKey().toBytes(), SubstrateConf.getCoin(coinType)), + SubstratePath(), + SubstrateConf.getCoin(coinType), + ); + } + + /// Create a Substrate context from a seed, path, and coin type. + factory Substrate.fromSeedAndPath( + List seedBytes, dynamic path, SubstrateCoins coinType) { + final substrateCtx = Substrate.fromSeed(seedBytes, coinType); + return substrateCtx.derivePath(path); + } + + /// Create a Substrate context from a private key and coin type. + factory Substrate.fromPrivateKey( + List privateKey, SubstrateCoins coinType) { + final prv = SubstratePrivateKey.fromBytes( + privateKey, SubstrateConf.getCoin(coinType)); + return Substrate._( + prv, + SubstratePublicKey.fromBytes( + prv.privKey.publicKey.compressed, SubstrateConf.getCoin(coinType)), + SubstratePath(), + SubstrateConf.getCoin(coinType), + ); + } + + /// Create a Substrate context from a public key and coin type. + factory Substrate.fromPublicKey( + List publicKey, SubstrateCoins coinType) { + return Substrate._( + null, + SubstratePublicKey.fromBytes(publicKey, SubstrateConf.getCoin(coinType)), + SubstratePath(), + SubstrateConf.getCoin(coinType), + ); + } + + /// Get the private key associated with this Substrate context. + /// + /// Throws a [SubstrateKeyError] if this context is public-only. + SubstratePrivateKey get priveKey { + if (isPublicOnly) { + throw const SubstrateKeyError( + 'Public-only deterministic keys have no private half'); + } + return _priveKey!; + } + + /// Derive a new Substrate context from the current context using the provided path. + /// + /// This method creates a child context by applying the path to the current context. + /// Returns the new Substrate context after applying the path. + Substrate derivePath(String path) { + final p = SubstratePathParser.parse(path); + + Substrate substrateObj = this; + for (final pathElem in p) { + substrateObj = substrateObj.childKey(pathElem); + } + + return substrateObj; + } + + /// Convert this Substrate context to public-only mode. + /// + /// Removes the private key, making this context only contain a public key. + void convertToPublic() { + _priveKey = null; + } + + /// Check if this Substrate context is in public-only mode. + bool get isPublicOnly { + return _priveKey == null; + } + + /// Derive a new Substrate context from the current context using the provided path element. + /// + /// If this context is not in public-only mode, it uses private child key derivation. + /// Otherwise, it uses public child key derivation. + /// + /// Returns the new Substrate context after deriving the child key. + Substrate childKey(SubstratePathElem pathElem) { + return !isPublicOnly ? _ckdPriv(pathElem) : _ckdPub(pathElem); + } + + /// Perform private child key derivation for the current context. + Substrate _ckdPriv(SubstratePathElem pathElem) { + final secret = priveKey.privKey.secretKey; + SchnorrkelSecretKey result; + + if (pathElem.isHard) { + result = secret.hardDerive(pathElem.chainCode).$1; + } else { + result = secret.softDerive(pathElem.chainCode).$1; + } + return Substrate._( + SubstratePrivateKey.fromBytes(result.toBytes(), coinConf), + SubstratePublicKey.fromBytes(result.publicKey().toBytes(), coinConf), + path.addElem(pathElem), + coinConf, + ); + } + + /// Perform public child key derivation for the current context. + Substrate _ckdPub(SubstratePathElem pathElem) { + if (pathElem.isHard) { + throw const SubstrateKeyError( + 'Public child derivation cannot be used to create a hardened child key'); + } + final pubKeyBytes = + publicKey.pubKey.publicKey.derive(pathElem.chainCode).$1; + return Substrate._( + null, + SubstratePublicKey.fromBytes(pubKeyBytes.toBytes(), coinConf), + path.addElem(pathElem), + coinConf, + ); + } +} diff --git a/lib/bip/substrate/substrate_ex.dart b/lib/bip/substrate/substrate_ex.dart new file mode 100644 index 0000000..06eef2a --- /dev/null +++ b/lib/bip/substrate/substrate_ex.dart @@ -0,0 +1,27 @@ +/// An exception class representing an error related to Substrate keys. +class SubstrateKeyError implements Exception { + /// The error message associated with this exception. + final String? message; + + /// Creates a new instance of [SubstrateKeyError] with an optional [message]. + const SubstrateKeyError([this.message]); + + @override + String toString() { + return message ?? super.toString(); + } +} + +/// An exception class representing an error related to Substrate paths. +class SubstratePathError implements Exception { + /// The error message associated with this exception. + final String? message; + + /// Creates a new instance of [SubstratePathError] with an optional [message]. + const SubstratePathError([this.message]); + + @override + String toString() { + return message ?? super.toString(); + } +} diff --git a/lib/bip/substrate/substrate_keys.dart b/lib/bip/substrate/substrate_keys.dart new file mode 100644 index 0000000..c4d497e --- /dev/null +++ b/lib/bip/substrate/substrate_keys.dart @@ -0,0 +1,97 @@ +import 'package:blockchain_utils/bip/address/substrate_addr.dart'; +import 'package:blockchain_utils/bip/ecc/keys/sr25519_keys.dart'; +import 'package:blockchain_utils/bip/substrate/conf/substrate_coin_conf.dart'; +import 'package:blockchain_utils/bip/substrate/substrate_ex.dart'; + +/// Represents a Substrate public key using the Sr25519 key pair. This class provides methods for +/// working with Substrate public keys, including serialization, address generation, and error handling. +class SubstratePublicKey { + /// The underlying Sr25519 public key. + final Sr25519PublicKey pubKey; + + /// The Substrate coin configuration associated with this public key. + final SubstrateCoinConf coinConf; + + /// Creates a new instance of [SubstratePublicKey] with the given [pubKey] and [coinConf]. + const SubstratePublicKey(this.pubKey, this.coinConf); + + /// Creates a [SubstratePublicKey] from the provided [keyBytes] and [coinConf]. + factory SubstratePublicKey.fromBytes( + List keyBytes, SubstrateCoinConf coinConf) { + return SubstratePublicKey( + _keyFromBytes(keyBytes), + coinConf, + ); + } + + /// Gets the compressed representation of the public key as a List. + List get compressed { + return pubKey.compressed; + } + + /// Gets the uncompressed representation of the public key as a List. + List get uncompressed { + return pubKey.uncompressed; + } + + /// Converts the public key to a Substrate address using the specified [coinConf]. + String get toAddress { + return SubstrateSr25519AddrEncoder().encodeKey( + pubKey.compressed, + coinConf.addrParams, + ); + } + + /// Internal method to create an Sr25519 public key from raw bytes. + static Sr25519PublicKey _keyFromBytes(List keyBytes) { + try { + return Sr25519PublicKey.fromBytes(keyBytes); + } on Exception { + throw const SubstrateKeyError('Invalid public key'); + } + } +} + +/// Represents a Substrate private key using the Sr25519 key pair. This class provides methods for +/// working with Substrate private keys, including serialization, public key derivation, and error handling. +class SubstratePrivateKey { + /// The underlying Sr25519 private key. + final Sr25519PrivateKey privKey; + + /// The Substrate coin configuration associated with this private key. + final SubstrateCoinConf coinConf; + + /// Creates a new instance of [SubstratePrivateKey] with the given [privKey] and [coinConf]. + const SubstratePrivateKey._(this.privKey, this.coinConf); + + /// Creates a [SubstratePrivateKey] from the provided [keyBytes] and [coinConf]. + factory SubstratePrivateKey.fromBytes( + List keyBytes, SubstrateCoinConf coinConf) { + return SubstratePrivateKey._( + _keyFromBytes(keyBytes), + coinConf, + ); + } + + /// Gets the raw representation of the private key as a List. + List get raw { + return privKey.raw; + } + + /// Derives the corresponding Substrate public key from this private key. + SubstratePublicKey get publicKey { + return SubstratePublicKey( + privKey.publicKey, + coinConf, + ); + } + + /// Internal method to create an Sr25519 private key from raw bytes. + static Sr25519PrivateKey _keyFromBytes(List keyBytes) { + try { + return Sr25519PrivateKey.fromBytes(keyBytes); + } on Exception { + throw const SubstrateKeyError('Invalid private key'); + } + } +} diff --git a/lib/bip/substrate/substrate_path.dart b/lib/bip/substrate/substrate_path.dart new file mode 100644 index 0000000..954a194 --- /dev/null +++ b/lib/bip/substrate/substrate_path.dart @@ -0,0 +1,166 @@ +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_base.dart'; +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_bytes.dart'; +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_uint.dart'; +import 'package:blockchain_utils/bip/substrate/substrate_ex.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; + +/// A constants class that provides predefined values and regular expressions related to Substrate paths +/// and SCALE encoders for integers. +class SubstratePathConst { + /// The maximum length in bytes for encoding an element + static const int encodedElemMaxByteLen = 32; + + /// Regular expression for Substrate paths + static const String rePath = r"\/+[^/]+"; + + /// Prefix for soft paths + static const String softPathPrefix = "/"; + + /// Prefix for hard paths + static const String hardPathPrefix = "//"; + + /// SCALE encoders for different integer sizes + static Map get scaleIntEncoders => const { + 8: SubstrateScaleU8Encoder(), + 16: SubstrateScaleU16Encoder(), + 32: SubstrateScaleU32Encoder(), + 64: SubstrateScaleU64Encoder(), + 128: SubstrateScaleU128Encoder(), + 256: SubstrateScaleU256Encoder(), + }; +} + +/// Represents a Substrate path element, which can be either soft or hard, and provides methods for +/// working with path elements, including serialization, validation, and computing chain code. +class SubstratePathElem { + /// The raw string representation of the path element. + late final String elem; + + /// Indicates whether the path element is hard (true) or soft (false). + late final bool isHard; + + /// Creates a new instance of [SubstratePathElem] with the provided [element]. + SubstratePathElem(String element) { + if (!isElemValid(element)) { + throw SubstratePathError("Invalid path element ($element)"); + } + + elem = element.replaceAll("/", ""); + isHard = element.startsWith(SubstratePathConst.hardPathPrefix); + } + + /// Checks if the path element is soft (not hard). + bool get isSoft { + return !isHard; + } + + /// Computes and returns the chain code for the path element. + List get chainCode { + return computeChainCode; + } + + /// Returns the string representation of the path element, including the appropriate prefix + String toStr() { + final prefix = isHard + ? SubstratePathConst.hardPathPrefix + : SubstratePathConst.softPathPrefix; + return "$prefix$elem"; + } + + @override + String toString() { + return toStr(); + } + + /// Computes the chain code based on the path element and its data type. + List get computeChainCode { + SubstrateScaleEncoderBase? scaleEnc; + final BigInt? toInt = BigInt.tryParse(elem); + if (toInt != null) { + final bitLen = toInt.bitLength; + for (final minBitLen in SubstratePathConst.scaleIntEncoders.keys) { + if (bitLen <= minBitLen) { + scaleEnc = SubstratePathConst.scaleIntEncoders[minBitLen]; + break; + } + } + + if (scaleEnc == null) { + throw SubstratePathError("Invalid integer bit length ($bitLen)"); + } + } else { + scaleEnc = const SubstrateScaleBytesEncoder(); + } + + final encData = scaleEnc.encode(elem); + const maxLen = SubstratePathConst.encodedElemMaxByteLen; + if (encData.length > maxLen) { + return QuickCrypto.blake2b256Hash(encData); + } else { + return List.from( + encData.toList() + List.filled(maxLen - encData.length, 0)); + } + } + + /// Checks if the provided path element is valid according to Substrate path rules. + bool isElemValid(String elem) { + return (elem.startsWith(SubstratePathConst.softPathPrefix) || + elem.startsWith(SubstratePathConst.hardPathPrefix)) && + elem.lastIndexOf("/") < 2 && + elem.replaceAll("/", "").isNotEmpty; + } +} + +/// Represents a Substrate path, which is an ordered sequence of [SubstratePathElem] elements. +/// This class provides methods for creating, manipulating, and serializing paths. +class SubstratePath extends Iterable { + /// A list of path elements that make up the Substrate path. + final List elems; + + /// Creates a new [SubstratePath] with the provided list of [elems]. + SubstratePath([this.elems = const []]); + + /// Adds a [SubstratePathElem] to the path and returns a new [SubstratePath] instance. + SubstratePath addElem(SubstratePathElem elem) { + return SubstratePath([...elems, elem]); + } + + /// Converts the Substrate path to its string representation by joining the elements. + String toStr() { + return toList().join(); + } + + @override + String toString() { + return toStr(); + } + + /// Retrieves a path element at the specified index. + SubstratePathElem operator [](int idx) { + return elems[idx]; + } + + /// Returns an iterator for iterating over the path elements. + @override + Iterator get iterator => elems.iterator; +} + +/// Parses a string representation of a Substrate path and returns a [SubstratePath] object. +class SubstratePathParser { + /// Parses the input [path] and constructs a [SubstratePath] object. + /// + /// The [path] should be a string representation of a Substrate path. + /// Throws a [SubstratePathError] if the path is invalid. + static SubstratePath parse(String path) { + if (path.isNotEmpty && !path.startsWith('/')) { + throw SubstratePathError('Invalid path ($path)'); + } + + /// Extract path elements using a regular expression and create a SubstratePath object. + final paths = RegExp(SubstratePathConst.rePath) + .allMatches(path) + .map((match) => match.group(0)!) + .toList(); + return SubstratePath(paths.map((e) => SubstratePathElem(e)).toList()); + } +} diff --git a/lib/bip/wif/wif.dart b/lib/bip/wif/wif.dart new file mode 100644 index 0000000..5ecc627 --- /dev/null +++ b/lib/bip/wif/wif.dart @@ -0,0 +1,134 @@ +/* + The MIT License (MIT) + + Copyright (c) 2021 Emanuele Bellocchia + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Note: This code has been adapted from its original Python version to Dart. +*/ + +/* + The 3-Clause BSD License + + Copyright (c) 2023 Mohsen Haydari (MRTNETWORK) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions, and the following disclaimer in the documentation and/or + other materials provided with the distribution. + 3. Neither the name of the [organization] nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import 'package:blockchain_utils/base58/base58.dart'; +import 'package:blockchain_utils/bip/address/p2pkh_addr.dart'; +import 'package:blockchain_utils/bip/ecc/keys/secp256k1_keys_ecdsa.dart'; + +/// A typedef for Wallet Import Format (WIF) public key modes. +/// +/// The [WifPubKeyModes] type represents different modes for WIF public keys, +/// and it is equivalent to [P2PKHPubKeyModes]. +typedef WifPubKeyModes = P2PKHPubKeyModes; + +/// Constants related to Wallet Import Format (WIF). +class WifConst { + /// Suffix value indicating compressed public key mode in a WIF. + static const comprPubKeySuffix = 0x01; +} + +/// A class for encoding Wallet Import Format (WIF) private keys. +class WifEncoder { + /// Encodes a private key into a WIF string. + /// + /// The [privKey] is the private key to be encoded, and [netVer] is an optional + /// list of network version bytes. By default, it's an empty list. + /// + /// The [pubKeyMode] determines the mode of the associated public key, where + /// [WifPubKeyModes.compressed] represents the compressed mode. + /// + /// Returns the WIF-encoded private key as a string. + static String encode(List privKey, + {List netVer = const [], + WifPubKeyModes pubKeyMode = WifPubKeyModes.compressed}) { + final prv = Secp256k1PrivateKeyEcdsa.fromBytes(privKey); + + List privKeyBytes = prv.raw; + + if (pubKeyMode == WifPubKeyModes.compressed) { + privKeyBytes = + List.from([...privKeyBytes, WifConst.comprPubKeySuffix]); + } + privKeyBytes = List.from([...netVer, ...privKeyBytes]); + + return Base58Encoder.checkEncode(privKeyBytes); + } +} + +/// A class for decoding Wallet Import Format (WIF) private keys. +class WifDecoder { + /// Decodes a WIF-encoded private key + /// + /// The [wif] is the WIF-encoded private key to be decoded, and [netVer] is an + /// optional list of network version bytes. By default, it's an empty list. + /// + /// Returns a tuple containing the decoded private key as a `List` and + /// the associated [WifPubKeyModes] representing the public key mode, where + /// [WifPubKeyModes.compressed] indicates the compressed mode. + static (List, WifPubKeyModes) decode(String wif, + {List netVer = const []}) { + List privKeyBytes = Base58Decoder.checkDecode(wif); + if (privKeyBytes[0] != netVer[0]) { + throw ArgumentError('Invalid net version'); + } + privKeyBytes = privKeyBytes.sublist(1); + WifPubKeyModes pubKeyMode; + if (Secp256k1PrivateKeyEcdsa.isValidBytes( + privKeyBytes.sublist(0, privKeyBytes.length - 1))) { + // Check the compressed public key suffix + if (privKeyBytes[privKeyBytes.length - 1] != WifConst.comprPubKeySuffix) { + throw ArgumentError('Invalid compressed public key suffix'); + } + privKeyBytes = privKeyBytes.sublist(0, privKeyBytes.length - 1); + pubKeyMode = WifPubKeyModes.compressed; + } else { + if (!Secp256k1PrivateKeyEcdsa.isValidBytes(privKeyBytes)) { + throw ArgumentError('Invalid decoded key'); + } + pubKeyMode = WifPubKeyModes.uncompressed; + } + + return (privKeyBytes, pubKeyMode); + } +} diff --git a/lib/bip39/bip39.dart b/lib/bip39/bip39.dart deleted file mode 100644 index 84201a0..0000000 --- a/lib/bip39/bip39.dart +++ /dev/null @@ -1,325 +0,0 @@ -/// BIP39 Multilanguage Support Library -/// -/// This library provides comprehensive language support for the BIP39 mnemonic -/// phrase standard, which is commonly used in cryptocurrency wallets to generate -/// and recover wallets and their associated keys. It offers translations and -/// resources for multiple languages, enabling users to create and work with -/// BIP39 mnemonics in their preferred language. -/// -/// Modules and Exports: -/// -/// - `BIP39`: Exported from 'package:blockchain_utils/bip39/bip39.dart'. -/// This class provides core functionality for generating and validating -/// BIP39 mnemonics, along with various language-specific options. -/// -/// - `Bip39Language`, `Bip39WordLength`: Exported from 'package:blockchain_utils/bip39/bip39.dart'. -/// These enumerations define supported BIP39 languages and word lengths, -/// making it easier to choose the desired language for mnemonic phrases. -/// -/// Key Methods: -/// -/// - `generateMnemonic`: Generates a new BIP39 mnemonic phrase using the specified language. -/// Example: -/// ```dart -/// final mnemonic = bip39.generateMnemonic(); -/// ``` -/// -/// - `toSeed`: Converts a BIP39 mnemonic phrase into a binary seed. -/// Example: -/// ```dart -/// final seed = bip39.toSeed(mnemonic); -/// ``` -/// -/// - `entropyToMnemonic`: Converts entropy bytes into a BIP39 mnemonic phrase. -/// Example: -/// ```dart -/// final entropy = bip39.mnemonicToEntropy(mnemonic); -/// ``` -/// -/// - `validateMnemonic`: Validates a BIP39 mnemonic phrase to check its correctness. -/// Example: -/// ```dart -/// final isValid = bip39.validateMnemonic(mnemonic); -/// ``` -/// -/// - `mnemonicToEntropy`: Converts a BIP39 mnemonic phrase back into its entropy bytes. -/// Example: -/// ```dart -/// final entropy = bip39.mnemonicToEntropy(mnemonic); -/// ``` -library bip39; - -import 'dart:typed_data'; -import 'package:blockchain_utils/crypto/crypto.dart'; -import 'package:blockchain_utils/formating/bytes_num_formating.dart'; -import 'load_languages/languages.dart' as languages; - -/// Enum representing supported BIP-39 mnemonic word languages. -class Bip39Language { - final String value; - - const Bip39Language._(this.value); - - /// Supported BIP-39 languages - static const Bip39Language english = Bip39Language._("english"); - static const Bip39Language spanish = Bip39Language._("spanish"); - static const Bip39Language portuguese = Bip39Language._("portuguese"); - static const Bip39Language korean = Bip39Language._("korean"); - static const Bip39Language japanese = Bip39Language._("japanese"); - static const Bip39Language italian = Bip39Language._("italian"); - static const Bip39Language french = Bip39Language._("french"); - static const Bip39Language czech = Bip39Language._("czech"); - static const Bip39Language chineseTraditional = - Bip39Language._("chinese_traditional"); - static const Bip39Language chineseSimplified = - Bip39Language._("chinese_simplified"); - List get words { - switch (this) { - case Bip39Language.english: - return languages.english; - case Bip39Language.spanish: - return languages.spanish; - case Bip39Language.portuguese: - return languages.portuguese; - case Bip39Language.korean: - return languages.korean; - case Bip39Language.japanese: - return languages.japanese; - case Bip39Language.italian: - return languages.italian; - case Bip39Language.french: - return languages.french; - case Bip39Language.czech: - return languages.czech; - case Bip39Language.chineseTraditional: - return languages.chineseTraditional; - case Bip39Language.chineseSimplified: - return languages.chineseSimplified; - default: - return languages.english; - } - } -} - -/// Enum representing supported BIP-39 mnemonic word lengths. -class Bip39WordLength { - final int value; - - const Bip39WordLength._(this.value); - - /// Supported BIP-39 word lengths - static const Bip39WordLength words12 = Bip39WordLength._(128); - static const Bip39WordLength words15 = Bip39WordLength._(160); - static const Bip39WordLength words18 = Bip39WordLength._(192); - static const Bip39WordLength words21 = Bip39WordLength._(224); - static const Bip39WordLength words24 = Bip39WordLength._(256); -} - -/// Class for handling BIP-39 mnemonic generation and validation. -class BIP39 { - BIP39({this.language = Bip39Language.english}); - - /// List of BIP-39 mnemonic words for the selected language. - /// List _words = []; - - /// Selected BIP-39 word language. - final Bip39Language language; - - /// Helper function to derive checksum bits from entropy. - /// Derives the checksum bits from the given entropy bytes. - /// - /// The method calculates the checksum bits for a mnemonic phrase by taking the - /// SHA-256 hash of the provided entropy and converting it into binary form. - /// The checksum length is determined based on the entropy length, and it is - /// used to ensure the validity of the mnemonic phrase. - /// - /// Parameters: - /// - [entropy]: The input entropy bytes. - /// - /// Returns: - /// A binary string representing the derived checksum bits. - /// - String _deriveChecksumBits(Uint8List entropy) { - final ent = entropy.length * 8; - final cs = ent ~/ 32; - final hash = singleHash(entropy); - return bytesToBinary(hash).substring(0, cs); - } - - /// Generates a BIP-39 mnemonic phrase with the specified strength. - /// Generates a random BIP-39 mnemonic phrase of a specified word length. - /// - /// This method generates a random entropy of the specified size (in bytes) - /// and converts it into a BIP-39 mnemonic phrase. The [strength] parameter - /// determines the word length of the mnemonic (e.g., 12, 15, 18, 21, or 24 words). - /// - /// Parameters: - /// - [strength]: The desired word length for the mnemonic phrase. - /// - /// Returns: - /// A randomly generated BIP-39 mnemonic phrase as a String. - /// - String generateMnemonic( - {Bip39WordLength strength = Bip39WordLength.words12}) { - final entropy = generateRandom(size: strength.value ~/ 8); - return entropyToMnemonic(bytesToHex(entropy)); - } - - /// Derives a cryptographic seed from a BIP-39 mnemonic and an optional passphrase. - /// - /// This method takes a BIP-39 mnemonic phrase and an optional passphrase and - /// uses them to derive a cryptographic seed. The passphrase is typically empty - /// or a user-defined value. The resulting seed can be used for generating - /// private keys and addresses. - /// - /// Parameters: - /// - [mnemonic]: The BIP-39 mnemonic phrase. - /// - [passphrase]: An optional passphrase (default is an empty string). - /// - /// Returns: - /// A cryptographic seed as a Uint8List. - static Uint8List toSeed(String mnemonic, {String passphrase = ""}) { - final String salt = "mnemonic$passphrase"; - return pbkdfDeriveDigest(mnemonic, salt); - } - - /// Converts binary entropy data to a BIP-39 mnemonic phrase. - /// - /// This method takes binary entropy data, typically generated from a - /// cryptographic source, and converts it into a BIP-39 mnemonic phrase. The - /// mnemonic phrase is a human-readable representation of the binary entropy, - /// providing a more user-friendly way to manage cryptographic secrets. - /// - /// Parameters: - /// - [entropyString]: Binary entropy data as a hexadecimal string. - /// - /// Returns: - /// A BIP-39 mnemonic phrase. - /// - /// Throws: - /// - [ArgumentError]: If the provided entropy is invalid. - String entropyToMnemonic(String entropyString) { - final entropy = Uint8List.fromList(hexToBytes(entropyString)); - - /// Validate the entropy length and format. - if (entropy.length < 16 || entropy.length > 32 || entropy.length % 4 != 0) { - throw ArgumentError("Invalid entropy"); - } - - final entropyBits = bytesToBinary(entropy); - final checksumBits = _deriveChecksumBits(entropy); - final bits = entropyBits + checksumBits; - - /// Split bits into groups of 11 and map to corresponding BIP-39 words. - final regex = RegExp(r".{1,11}", caseSensitive: false, multiLine: false); - final chunks = regex - .allMatches(bits) - .map((match) => match.group(0)!) - .toList(growable: false); - - final words = chunks.map((binary) { - int index = binaryToByte(binary); - return language.words[index]; - }).join(' '); - - return words; - } - - /// Validates a BIP-39 mnemonic phrase. - /// Validates a BIP-39 mnemonic phrase. - /// - /// This method checks whether a given BIP-39 mnemonic phrase is valid. A valid - /// mnemonic phrase conforms to the BIP-39 specification and can be successfully - /// converted back to entropy. - /// - /// Parameters: - /// - [mnemonic]: The BIP-39 mnemonic phrase to validate. - /// - /// Returns: - /// `true` if the mnemonic is valid, `false` otherwise. - /// Note: This method will return `false` if the mnemonic is invalid or if any - /// errors occur during the validation process. - /// - bool validateMnemonic(String mnemonic) { - try { - /// Attempt to convert the mnemonic back to entropy. - mnemonicToEntropy(mnemonic); - } on Exception { - rethrow; - - /// Rethrow exceptions to be caught by the caller. - } catch (e) { - return false; - - /// Catch other errors and return false. - } - return true; - - /// If no exceptions or errors occur, the mnemonic is valid. - } - - /// Converts a BIP-39 mnemonic phrase to entropy bytes. - /// - /// This method takes a BIP-39 mnemonic phrase as input and converts it into - /// the raw entropy bytes it represents. It performs various checks to ensure - /// the validity of the conversion, including verifying the checksum. - /// - /// Parameters: - /// - [mnemonic]: The BIP-39 mnemonic phrase to convert. - /// - /// Returns: - /// Raw entropy bytes as a hexadecimal string. - /// - /// Throws: - /// - [ArgumentError]: If an invalid mnemonic word is encountered or the mnemonic - /// phrase is of an incorrect length. - /// - [StateError]: If the entropy or checksum is invalid. - String mnemonicToEntropy(String mnemonic) { - /// Split the mnemonic into individual words. - List words = mnemonic.split(' '); - if (words.length % 3 != 0) { - throw ArgumentError('Invalid mnemonic'); - } - - /// Convert word indices to 11-bit binary strings. - final bits = words.map((word) { - final index = language.words.indexOf(word); - if (index == -1) { - throw ArgumentError('Invalid mnemonic'); - } - return index.toRadixString(2).padLeft(11, '0'); - }).join(''); - - /// Divide bits into entropy and checksum sections. - final dividerIndex = (bits.length / 33).floor() * 32; - final entropyBits = bits.substring(0, dividerIndex); - final checksumBits = bits.substring(dividerIndex); - - /// Convert entropy bits back to bytes and perform validation checks. - final regex = RegExp(r".{1,8}"); - final entropyBytes = Uint8List.fromList(regex - .allMatches(entropyBits) - .map((match) => binaryToByte(match.group(0)!)) - .toList(growable: false)); - if (entropyBytes.length < 16) { - throw StateError("Invalid entropy"); - } - if (entropyBytes.length > 32) { - throw StateError("Invalid entropy"); - } - if (entropyBytes.length % 4 != 0) { - throw StateError("Invalid entropy"); - } - - /// Verify the checksum. - final newChecksum = _deriveChecksumBits(entropyBytes); - if (newChecksum != checksumBits) { - throw StateError("Invalid mnemonic checksum"); - } - - /// Convert valid entropy bytes back to hexadecimal. - return entropyBytes.map((byte) { - return byte.toRadixString(16).padLeft(2, '0'); - }).join(''); - } -} diff --git a/lib/bip39/load_languages/languages.dart b/lib/bip39/load_languages/languages.dart deleted file mode 100644 index 733e77e..0000000 --- a/lib/bip39/load_languages/languages.dart +++ /dev/null @@ -1,31 +0,0 @@ -/// BIP39 Language Support Library -/// -/// This library provides language support for BIP39 mnemonic phrases used in -/// cryptocurrency wallets. It includes translations and resources for multiple -/// languages to enable mnemonic phrase generation and validation for a global -/// audience. -/// -/// Available Languages: -/// -/// - Chinese (Simplified) -/// - Chinese (Traditional) -/// - English -/// - Spanish -/// - Czech -/// - French -/// - Italian -/// - Japanese -/// - Korean -/// - Portuguese -library languages; - -export 'chinese_simplified.dart'; -export 'chinese_traditional.dart'; -export 'english.dart'; -export 'spanish.dart'; -export 'czech.dart'; -export 'french.dart'; -export 'italian.dart'; -export 'japanese.dart'; -export 'korean.dart'; -export 'portuguese.dart'; diff --git a/lib/blockchain_utils.dart b/lib/blockchain_utils.dart index e64856a..bdd1e5f 100644 --- a/lib/blockchain_utils.dart +++ b/lib/blockchain_utils.dart @@ -1,45 +1,60 @@ -/// Blockchain Utilities Library -/// -/// This library provides a collection of utility functions and classes for -/// working with blockchain-related operations and cryptographic tasks. -/// Developers can use these utilities to simplify tasks such as encoding and -/// decoding data, generating BIP39 mnemonics, working with HD wallets, -/// and more in the context of blockchain applications. -/// -/// Modules and Exports: -/// -/// - `base58`: Exported from 'package:blockchain_utils/base58/base58.dart'. -/// Provides functions for Base58 encoding and decoding. -/// -/// - `bech32`: Exported from 'package:blockchain_utils/bech32/bech32.dart'. -/// Provides functions for encoding and decoding Bech32 data. -/// -/// - `bip39`: Exported from 'package:blockchain_utils/bip39/bip39.dart'. -/// Includes classes and utilities for working with BIP39 mnemonics and -/// related functionality. -/// -/// - `hd_wallet`: Exported from 'package:blockchain_utils/hd_wallet/hd_wallet.dart'. -/// Offers support for HD wallets using the BIP32 specification. -/// -/// - `crypto_currencies`: Exported from 'package:blockchain_utils/hd_wallet/cypto_currencies/cyrpto_currency.dart'. -/// Provides information about cryptocurrency symbols and related data. -/// -/// - `secret_wallet`: Exported from 'package:blockchain_utils/secret_wallet/secret_wallet.dart'. -/// Includes utilities for creating and encoding secret wallets. - +/// The `blockchain_utils` library provides a collection of utilities and tools +/// for working with various aspects of blockchain and cryptocurrency technologies. library blockchain_utils; -export 'package:blockchain_utils/base58/base58.dart'; +/// Export for Base32 encoding and decoding utilities. +export 'base32/base32.dart'; + +/// Export for Base58 encoding and decoding utilities. +export 'base58/base58.dart'; + +/// Export for Bech32 encoding and decoding utilities. +export 'bech32/bech32.dart'; + +/// Export for CBOR (Concise Binary Object Representation) utilities. +export 'cbor/cbor.dart'; + +/// Export for various cryptographic functions and utilities. +export 'crypto/crypto/crypto.dart'; + +/// Export for quick cryptographic operations. +export 'crypto/quick_crypto.dart'; + +/// Export for hexadecimal encoding and decoding utilities. +export 'hex/hex.dart'; + +/// Export for tools related to managing secret wallets. +export 'secret_wallet/secret_wallet.dart'; + +/// Export for SS58 (Substrate/Polkadot/Stash encoding) utilities. +export 'ss58/ss58.dart'; + +/// Export for UUID (Universally Unique Identifier) generation and manipulation. +export 'uuid/uuid.dart'; + +/// Export for cryptocurrency address encoding utilities. +export 'bip/address/encoders.dart'; + +/// Export for cryptocurrency address decoding utilities. +export 'bip/address/decoders.dart'; + +/// Export for Algorand blockchain-specific utilities. +export 'bip/algorand/algorand.dart'; + +/// Export for BIP (Bitcoin Improvement Proposals) utilities. +export 'bip/bip/bip.dart'; + +/// Export for Cardano blockchain-specific utilities. +export 'bip/cardano/cardano.dart'; -export 'package:blockchain_utils/bech32/bech32.dart' - show encodeBech32, decodeBech32; +/// Export for Electrum wallet and mnemonic utilities. +export 'bip/electrum/electrum.dart'; -export 'package:blockchain_utils/bip39/bip39.dart' - show BIP39, Bip39Language, Bip39WordLength; +/// Export for Monero-specific utilities, including mnemonics. +export 'bip/monero/monero.dart'; -export 'package:blockchain_utils/hd_wallet/hd_wallet.dart' show BIP32HWallet; -export 'package:blockchain_utils/hd_wallet/cypto_currencies/cyrpto_currency.dart' - show CurrencySymbol, Cryptocurrency; +/// Export for Substrate blockchain-specific utilities. +export 'bip/substrate/substrate.dart'; -export 'package:blockchain_utils/secret_wallet/secret_wallet.dart' - show SecretWallet, SecretWalletEncoding; +/// Export for Wallet Import Format (WIF) encoding and decoding utilities. +export 'bip/wif/wif.dart'; diff --git a/lib/cbor/cbor.dart b/lib/cbor/cbor.dart new file mode 100644 index 0000000..e23de66 --- /dev/null +++ b/lib/cbor/cbor.dart @@ -0,0 +1,62 @@ +/// Library for working with Concise Binary Object Representation (CBOR) data format. +library cbor; + +/// Export statement for the core CBOR data types and decode functionality. +export 'core/cbor.dart'; + +/// Export statement for the core CBOR data types and base functionality. +export 'types/base.dart'; + +/// Export statement for CBOR support for bigfloat values. +export 'types/bigfloat.dart'; + +/// Export statement for CBOR support for bigint values. +export 'types/bigint.dart'; + +/// Export statement for CBOR support for boolean values. +export 'types/boolean.dart'; + +/// Export statement for CBOR support for byte sequences. +export 'types/bytes.dart'; + +/// Export statement for CBOR support for CBOR tag values. +export 'types/cbor_tag.dart'; + +/// Export statement for CBOR support for date and time values. +export 'types/datetime.dart'; + +/// Export statement for CBOR support for decimal values. +export 'types/decimal.dart'; + +/// Export statement for CBOR support for double-precision floating-point values. +export 'types/double.dart'; + +/// Export statement for CBOR support for integer values. +export 'types/int.dart'; + +/// Export statement for CBOR support for 64-bit integer values. +export 'types/int64.dart'; + +/// Export statement for CBOR support for lists (arrays). +export 'types/list.dart'; + +/// Export statement for CBOR support for maps (objects). +export 'types/map.dart'; + +/// Export statement for CBOR support for URL values. +export 'types/url.dart'; + +/// Export statement for CBOR support for string values. +export 'types/string.dart'; + +/// Export statement for CBOR support for set values. +export 'types/set.dart'; + +/// Export statement for CBOR support for regular expressions. +export 'types/regex.dart'; + +/// Export statement for CBOR support for null values. +export 'types/null.dart'; + +/// Export statement for CBOR support for MIME media types. +export 'types/mime.dart'; diff --git a/lib/cbor/core/cbor.dart b/lib/cbor/core/cbor.dart new file mode 100644 index 0000000..91ac041 --- /dev/null +++ b/lib/cbor/core/cbor.dart @@ -0,0 +1,83 @@ +import 'package:blockchain_utils/cbor/utils/cbor_utils.dart'; +import 'package:blockchain_utils/cbor/types/bigint.dart'; +import 'package:blockchain_utils/cbor/types/bytes.dart'; +import 'package:blockchain_utils/cbor/types/double.dart'; +import 'package:blockchain_utils/cbor/types/int.dart'; +import 'package:blockchain_utils/cbor/types/int64.dart'; +import 'package:blockchain_utils/cbor/types/list.dart'; +import 'package:blockchain_utils/cbor/types/map.dart'; +import 'package:blockchain_utils/cbor/types/string.dart'; + +/// An abstract class representing a CBOR (Concise Binary Object Representation) object. +/// CBOR objects can hold various data types and optional tags, providing a flexible way +/// to represent structured data in a compact binary format. +abstract class CborObject { + /// Encode the object's value to its CBOR representation and return it as a List. + List encode(); + + /// Convert the object's CBOR representation to a hexadecimal string. + String toCborHex(); + + /// An abstract property representing a list of tags associated with the CBOR object. + abstract final List tags; + + /// An abstract property representing the dynamic value contained in the CBOR object. + abstract final dynamic value; + + /// Create a new CborObject by decoding the given CBOR-encoded bytes + factory CborObject.fromCbor(List cborBytes) { + return CborUtils.decodeCbor(cborBytes); + } + + /// Create a new CborObject from a dynamic value and an optional list of CBOR tags. + factory CborObject.fromDynamic(dynamic value, [List tags = const []]) { + if (value is CborObject) { + return value; + } else if (value is int) { + return CborIntValue(value, tags); + } else if (value is double) { + return CborFloatValue(value); + } else if (value is BigInt) { + return CborBigIntValue(value, tags); + } else if (value is String) { + return CborStringValue(value, tags); + } else if (value is List) { + return CborIndefiniteStringValue(value, tags); + } else if (value is List) { + return CborBytesValue(value, tags); + } else if (value is List>) { + return CborDynamicBytesValue(value, tags); + } else if (value is Map) { + return CborMapValue.fixedLength(value, tags); + } else if (value is List) { + return CborListValue.fixedLength( + value.map((e) => CborObject.fromDynamic(e)).toList(), tags); + } + throw UnimplementedError("does not supported"); + } +} + +// An abstract class representing a numeric CBOR (Concise Binary Object Representation) object. +// Numeric CBOR objects are a subset of CBOR objects that specifically store numeric values. +// This class implements the CborObject interface, which allows numeric values to be used +// in the context of CBOR-encoded data structures. +abstract class CborNumeric implements CborObject { + /// Retrieve the numeric value from a CborNumeric object and return it as a BigInt. + /// This function is used to extract the numeric value from different CborNumeric subtypes. + static BigInt getCborNumericValue(CborNumeric val) { + if (val is CborIntValue) { + return BigInt.from(val.value); + } else if (val is CborBigIntValue) { + return val.value; + } else if (val is CborInt64Value) { + return val.value; + } + throw ArgumentError("invalid cbornumeric"); + } + + /// Convert the CborNumeric object to an integer. + int toInt(); + + /// Convert the CborNumeric object to a BigInt. + BigInt toBigInt(); +} diff --git a/lib/cbor/core/tags.dart b/lib/cbor/core/tags.dart new file mode 100644 index 0000000..9223fa5 --- /dev/null +++ b/lib/cbor/core/tags.dart @@ -0,0 +1,49 @@ +/// Constants representing CBOR tags +class CborTags { + static const int dateString = 0; + static const int dateEpoch = 1; + static const int posBigInt = 2; + static const int negBigInt = 3; + static const int decimalFrac = 4; + static const int bigFloat = 5; + static const int base64UrlExpected = 21; + static const int base64Expected = 22; + static const int base16Expected = 23; + static const int cbor = 24; + static const int uri = 32; + static const int base64Url = 33; + static const int base64 = 34; + static const int regexp = 35; + static const int mime = 36; + static const int set = 258; +} + +/// Constants representing major CBOR tags +class MajorTags { + static const int posInt = 0; + static const int negInt = 1; + static const int byteString = 2; + static const int utf8String = 3; + static const int array = 4; + static const int map = 5; + static const int tag = 6; + static const int simpleOrFloat = 7; +} + +/// Constants representing the number of bytes in CBOR encoding +class NumBytes { + static const int zero = 0; + static const int one = 24; + static const int two = 25; + static const int four = 26; + static const int eight = 27; + static const int indefinite = 31; +} + +/// Constants representing simple values in CBOR encoding +class SimpleTags { + static const int simpleFalse = 20; + static const int simpleTrue = 21; + static const int simpleNull = 22; + static const int simpleUndefined = 23; +} diff --git a/lib/cbor/types/base.dart b/lib/cbor/types/base.dart new file mode 100644 index 0000000..e23b8b7 --- /dev/null +++ b/lib/cbor/types/base.dart @@ -0,0 +1,93 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/types/string.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// An enum representing different types of base64 encoding used in CBOR. +enum CborBase64Types { + /// Standard base64 encoding + base64, + + /// URL-safe base64 encoding + base64Url, + + /// Expected URL-safe base64 encoding + base64UrlExpected, + + /// Expected standard base64 encoding + base64Expected, + + /// Expected base16 (hexadecimal) encoding + base16Expected; + + /// This property allows retrieving the CBOR tag associated with each CborBase64Types enum value. + int get tag { + switch (this) { + case CborBase64Types.base16Expected: + return CborTags.base16Expected; + case CborBase64Types.base64: + return CborTags.base64; + case CborBase64Types.base64Expected: + return CborTags.base64Expected; + case CborBase64Types.base64UrlExpected: + return CborTags.base64UrlExpected; + default: + return CborTags.base64Url; + } + } +} + +/// A class representing a CBOR (Concise Binary Object Representation) Base-URL value. +class CborBaseUrlValue implements CborString { + /// Constructor for creating a CborBaseUrlValue instance with the provided parameters. + /// It accepts the URL value, type, and an optional list of CBOR tags. + const CborBaseUrlValue(this.value, this.type, [this.tags = const []]); + + /// The base-URL value as a string. + @override + final String value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// The type of base64 encoding used in the URL value. + final CborBase64Types type; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags.isEmpty ? [type.tag] : tags); + final toBytes = CborStringValue(value); + bytes.pushBytes(toBytes.encode()); + return bytes.toBytes(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value; + } + + /// overide equal operation + @override + operator ==(other) { + if (other is! CborBaseUrlValue) return false; + + return value == other.value && + type.tag == other.type.tag && + bytesEqual(tags, other.tags); + } + + /// ovveride hash code + @override + int get hashCode => value.hashCode ^ type.tag; +} diff --git a/lib/cbor/types/bigfloat.dart b/lib/cbor/types/bigfloat.dart new file mode 100644 index 0000000..46d0b57 --- /dev/null +++ b/lib/cbor/types/bigfloat.dart @@ -0,0 +1,81 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/types/bigint.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/cbor/types/int.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'int64.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) BigFloat value. +class CborBigFloatValue implements CborObject { + /// Constructor for creating a CborBigFloatValue instance with the provided parameters. + /// It accepts the Bigint exponent and mantissa value and an optional list of CBOR tags. + const CborBigFloatValue(this.exponent, this.mantissa, [this.tags = const []]); + + /// Create a CborBigFloatValue from two CborNumeric values representing the exponent and mantissa. + factory CborBigFloatValue.fromCborNumeric( + CborNumeric exponent, CborNumeric mantissa, + [List tags = const []]) { + return CborBigFloatValue(CborNumeric.getCborNumericValue(exponent), + CborNumeric.getCborNumericValue(mantissa), tags); + } + + /// exponent value + final BigInt exponent; + + /// mantissa value + final BigInt mantissa; + + /// The bigflout value as a list [exponent, mantissa]. + @override + List get value => [exponent, mantissa]; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags.isEmpty ? [CborTags.bigFloat] : tags); + bytes.pushInt(MajorTags.array, 2); + bytes.pushBytes(_encodeValue(exponent)); + bytes.pushBytes(_encodeValue(mantissa)); + return bytes.toBytes(); + } + + List _encodeValue(BigInt value) { + if (value.isValidInt) { + return CborIntValue(value.toInt()).encode(); + } else if (value.bitLength > 64) { + return CborBigIntValue(value).encode(); + } + return CborInt64Value(value).encode(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// value as string + @override + String toString() { + return "$exponent, $mantissa"; + } + + /// overide equal operation + @override + operator ==(other) { + if (other is! CborBigFloatValue) return false; + + return iterableIsEqual(value, other.value) && bytesEqual(tags, other.tags); + } + + /// ovveride hash code + @override + int get hashCode => value.hashCode; +} diff --git a/lib/cbor/types/bigint.dart b/lib/cbor/types/bigint.dart new file mode 100644 index 0000000..867c6f7 --- /dev/null +++ b/lib/cbor/types/bigint.dart @@ -0,0 +1,80 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) Bigint value. +class CborBigIntValue implements CborNumeric { + /// Constructor for creating a CborBigIntValue instance with the provided parameters. + /// It accepts the bigint value, and an optional list of CBOR tags. + const CborBigIntValue(this.value, [this.tags = const []]); + + /// The value as a bigint. + @override + final BigInt value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + BigInt v = value; + if (tags.isEmpty) { + if (v.isNegative) { + bytes.pushTags([CborTags.negBigInt]); + v = ~v; + } else { + bytes.pushTags([CborTags.posBigInt]); + } + } + final b = List.filled((v.bitLength + 7) ~/ 8, 0); + + for (var i = b.length - 1; i >= 0; i--) { + b[i] = v.toUnsigned(8).toInt(); + v >>= 8; + } + bytes.pushInt(MajorTags.byteString, b.length); + bytes.pushBytes(b); + return bytes.toBytes(); + } + + /// value as bigint + @override + BigInt toBigInt() { + return value; + } + + /// value as int + @override + int toInt() { + return value.toInt(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value.toString(); + } + + /// overide equal operation + @override + operator ==(other) { + if (other is! CborBigIntValue) return false; + + return value == other.value && bytesEqual(tags, other.tags); + } + + /// ovveride hash code + @override + int get hashCode => value.hashCode; +} diff --git a/lib/cbor/types/boolean.dart b/lib/cbor/types/boolean.dart new file mode 100644 index 0000000..40d525b --- /dev/null +++ b/lib/cbor/types/boolean.dart @@ -0,0 +1,54 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) boolean value. +class CborBoleanValue implements CborObject { + /// Constructor for creating a CborBoleanValue instance with the provided parameters. + /// It accepts the boolean value, and an optional list of CBOR tags. + const CborBoleanValue(this.value, [this.tags = const []]); + + /// The value as a boolean. + @override + final bool value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags); + bytes.pushInt(MajorTags.simpleOrFloat, + value ? SimpleTags.simpleTrue : SimpleTags.simpleFalse); + return bytes.toBytes(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value.toString(); + } + + /// overide equal operation + @override + operator ==(other) { + if (other is! CborBoleanValue) return false; + + return value == other.value && bytesEqual(tags, other.tags); + } + + /// ovveride hash code + @override + int get hashCode => value.hashCode; +} diff --git a/lib/cbor/types/bytes.dart b/lib/cbor/types/bytes.dart new file mode 100644 index 0000000..ab3fb62 --- /dev/null +++ b/lib/cbor/types/bytes.dart @@ -0,0 +1,102 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) bytes value. +class CborBytesValue implements CborObject { + /// Constructor for creating a CborBytesValue instance with the provided parameters. + /// It accepts the bytes value, and an optional list of CBOR tags. + const CborBytesValue(this.value, [List? tags]) : tags = tags ?? const []; + + /// The value as a List. + @override + final List value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags); + bytes.pushInt(MajorTags.byteString, value.length); + bytes.pushBytes(value); + return bytes.toBytes(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// overide equal operation + @override + operator ==(other) { + if (other is! CborBytesValue) return false; + + return bytesEqual(other.value, value) && bytesEqual(tags, other.tags); + } + + /// ovveride hash code + @override + int get hashCode => value.hashCode; +} + +/// A class representing a CBOR (Concise Binary Object Representation) bytes value with indefinite tag. +class CborDynamicBytesValue implements CborObject { + /// Constructor for creating a CborDynamicBytesValue instance with the provided parameters. + /// It accepts the bytes value, and an optional list of CBOR tags. + const CborDynamicBytesValue(this.value, [List? tags]) + : tags = tags ?? const []; + + /// The value as a List>. + @override + final List> value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags); + bytes.pushIndefinite(MajorTags.byteString); + for (final v in value) { + bytes.pushInt(MajorTags.byteString, v.length); + bytes.pushBytes(v); + } + bytes.breakDynamic(); + return bytes.toBytes(); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value.toString(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// overide equal operation + @override + operator ==(other) { + if (other is! CborDynamicBytesValue) return false; + + return value == other.value && bytesEqual(tags, other.tags); + } + + /// ovveride hash code + @override + int get hashCode => value.hashCode; +} diff --git a/lib/cbor/types/cbor_tag.dart b/lib/cbor/types/cbor_tag.dart new file mode 100644 index 0000000..6ce9da9 --- /dev/null +++ b/lib/cbor/types/cbor_tag.dart @@ -0,0 +1,40 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) tag value. +class CborTagValue implements CborObject { + /// Constructor for creating a CborBoleanValue instance with the provided parameters. + /// It accepts the all encodable cbor value, and an list of CBOR tags. + CborTagValue(this.value, this.tags); + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// The value as a T. + @override + final T value; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags); + final obj = CborObject.fromDynamic(value).encode(); + bytes.pushBytes(obj); + return bytes.toBytes(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value.toString(); + } +} diff --git a/lib/cbor/types/datetime.dart b/lib/cbor/types/datetime.dart new file mode 100644 index 0000000..13ccd41 --- /dev/null +++ b/lib/cbor/types/datetime.dart @@ -0,0 +1,129 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/utils/extentions.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/cbor/types/double.dart'; +import 'package:blockchain_utils/cbor/types/int.dart'; +import 'package:blockchain_utils/cbor/types/string.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) DateTime value. +abstract class _CborDate implements CborObject { + /// The value as a DateTime. + @override + abstract final DateTime value; + + /// List of CBOR tags associated with the URL value. + @override + abstract final List tags; + + List _getTags() { + if (tags.isNotEmpty) return tags; + if (this is CborStringDateValue) { + return [CborTags.dateString]; + } + return [CborTags.dateEpoch]; + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + List _encode(); + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(_getTags()); + bytes.pushBytes(_encode()); + return bytes.toBytes(); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value.toIso8601String(); + } + + /// overide equal operation + @override + operator ==(other) { + if (other is! _CborDate) return false; + if (other.runtimeType != runtimeType) return false; + return value.microsecondsSinceEpoch == other.value.microsecondsSinceEpoch && + bytesEqual(tags, other.tags); + } + + /// ovveride hash code + @override + int get hashCode => value.hashCode; +} + +/// A class representing a CBOR (Concise Binary Object Representation) String DateTime value. +class CborStringDateValue extends _CborDate { + /// Constructor for creating a CborStringDateValue instance with the provided parameters. + /// It accepts DateTime value, and an optional list of CBOR tags. + CborStringDateValue(this.value, [this.tags = const []]); + + /// The value as a DateTime. + @override + final DateTime value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + @override + List _encode() { + final toString = value.toRFC3339WithTimeZone(); + final toStringCbor = CborStringValue(toString); + return toStringCbor.encode(); + } +} + +/// A class representing a CBOR (Concise Binary Object Representation) epoch float DateTime value. +class CborEpochFloatValue extends _CborDate { + /// Constructor for creating a CborEpochFloatValue instance with the provided parameters. + /// It accepts DateTime value, and an optional list of CBOR tags. + CborEpochFloatValue(this.value, [this.tags = const []]); + + /// The value as a DateTime. + @override + final DateTime value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + @override + List _encode() { + final toSecound = value.millisecondsSinceEpoch / 1000; + final toFloatCbor = CborFloatValue(toSecound); + return toFloatCbor.encode(); + } +} + +/// A class representing a CBOR (Concise Binary Object Representation) epoch int DateTime value. +class CborEpochIntValue extends _CborDate { + /// Constructor for creating a CborEpochIntValue instance with the provided parameters. + /// It accepts DateTime value, and an optional list of CBOR tags. + CborEpochIntValue(this.value, [this.tags = const []]); + + /// The value as a DateTime. + @override + final DateTime value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + @override + List _encode() { + final toSecound = value.millisecondsSinceEpoch / 1000; + final toFloatCbor = CborIntValue(toSecound.round()); + return toFloatCbor.encode(); + } +} diff --git a/lib/cbor/types/decimal.dart b/lib/cbor/types/decimal.dart new file mode 100644 index 0000000..bc21b6b --- /dev/null +++ b/lib/cbor/types/decimal.dart @@ -0,0 +1,82 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/types/bigint.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/cbor/types/int.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'int64.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) Dcecimal value. +class CborDecimalFracValue implements CborObject { + /// Constructor for creating a CborDecimalFracValue instance with the provided parameters. + /// It accepts the Bigint exponent and mantissa value and an optional list of CBOR tags. + const CborDecimalFracValue(this.exponent, this.mantissa, + [this.tags = const []]); + + /// Create a CborBigFloatValue from two CborNumeric values representing the exponent and mantissa. + factory CborDecimalFracValue.fromCborNumeric( + CborNumeric exponent, CborNumeric mantissa, + [List tags = const []]) { + return CborDecimalFracValue(CborNumeric.getCborNumericValue(exponent), + CborNumeric.getCborNumericValue(mantissa), tags); + } + + /// exponent value + final BigInt exponent; + + /// mantissa value + final BigInt mantissa; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// The decimal value as a list [exponent, mantissa]. + @override + List get value => [exponent, mantissa]; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags.isEmpty ? [CborTags.decimalFrac] : tags); + bytes.pushInt(MajorTags.array, 2); + bytes.pushBytes(_encodeValue(exponent)); + bytes.pushBytes(_encodeValue(mantissa)); + return bytes.toBytes(); + } + + List _encodeValue(BigInt value) { + if (value.isValidInt) { + return CborIntValue(value.toInt()).encode(); + } else if (value.bitLength > 64) { + return CborBigIntValue(value).encode(); + } + + return CborInt64Value(value).encode(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value.join(", "); + } + + /// overide equal operation + @override + operator ==(other) { + if (other is! CborDecimalFracValue) return false; + return iterableIsEqual(value, other.value) && bytesEqual(tags, other.tags); + } + + /// ovveride hash code + @override + int get hashCode => value.hashCode; +} diff --git a/lib/cbor/types/double.dart b/lib/cbor/types/double.dart new file mode 100644 index 0000000..53c8bbf --- /dev/null +++ b/lib/cbor/types/double.dart @@ -0,0 +1,86 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/utils/float_utils.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) float value. +class CborFloatValue implements CborObject { + /// Constructor for creating a CborFloatValue instance with the provided parameters. + /// It accepts the double value and an optional list of CBOR tags. + CborFloatValue(this.value, [this.tags = const []]) : _decodFloatType = null; + + /// Create a CborFloatValue from a 16-byte double value and an optional list of CBOR tags. + CborFloatValue.from16BytesFloat(this.value, [this.tags = const []]) + : assert(FloatUtils.isLessThan(value, FloatLength.bytes16), + "overflow bytes"), + _decodFloatType = FloatLength.bytes16; + + /// Create a CborFloatValue from a 32-byte double value and an optional list of CBOR tags. + CborFloatValue.from32BytesFloat(this.value, [this.tags = const []]) + : assert(FloatUtils.isLessThan(value, FloatLength.bytes32), + "overflow bytes"), + _decodFloatType = FloatLength.bytes32; + + /// Constructor for creating a CborFloatValue instance with the provided parameters. + /// It accepts the double value and an optional list of CBOR tags. + CborFloatValue.from64BytesFloat(this.value, [this.tags = const []]) + : _decodFloatType = FloatLength.bytes64; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// value as double + @override + final double value; + + /// instance of FloatUtils for encode and decoding float + late final FloatUtils _decodFloat = FloatUtils(value); + + /// the type of encode and decoding float + final FloatLength? _decodFloatType; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags); + if (value.isNaN) { + bytes.pushMajorTag(MajorTags.simpleOrFloat, NumBytes.two); + bytes.pushBytes([0x7e, 0x00]); + return bytes.toBytes(); + } + final toBytes = _decodFloat.toBytes(_decodFloatType); + + bytes.pushMajorTag(MajorTags.simpleOrFloat, toBytes.$2.numBytes); + bytes.pushBytes(toBytes.$1); + return bytes.toBytes(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// value as string + @override + String toString() { + return value.toString(); + } + + /// overide equal operation + @override + operator ==(other) { + if (other is! CborFloatValue) return false; + return value == other.value && + _decodFloatType == other._decodFloatType && + bytesEqual(tags, other.tags); + } + + /// ovveride hash code + @override + int get hashCode => value.hashCode; +} diff --git a/lib/cbor/types/int.dart b/lib/cbor/types/int.dart new file mode 100644 index 0000000..0dab4f2 --- /dev/null +++ b/lib/cbor/types/int.dart @@ -0,0 +1,65 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) int value. +class CborIntValue implements CborNumeric { + /// Constructor for creating a CborDecimalFracValue instance with the provided parameters. + /// It accepts the int value and an optional list of CBOR tags. + const CborIntValue(this.value, [this.tags = const []]); + + /// value as int + @override + final int value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags); + bytes.pushInt(value.isNegative ? MajorTags.negInt : MajorTags.posInt, + value.isNegative ? ~value : value); + return bytes.toBytes(); + } + + /// value as bigint + @override + BigInt toBigInt() { + return BigInt.from(value); + } + + /// value as int + @override + int toInt() { + return value; + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value.toString(); + } + + /// overide equal operation + @override + operator ==(other) { + if (other is! CborIntValue) return false; + return value == other.value && bytesEqual(tags, other.tags); + } + + /// ovveride hash code + @override + int get hashCode => value.hashCode; +} diff --git a/lib/cbor/types/int64.dart b/lib/cbor/types/int64.dart new file mode 100644 index 0000000..b745494 --- /dev/null +++ b/lib/cbor/types/int64.dart @@ -0,0 +1,66 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) int (64-byte) value. +class CborInt64Value implements CborNumeric { + /// Constructor for creating a CborInt64Value instance with the provided parameters. + /// It accepts the Bigint value and an optional list of CBOR tags. + const CborInt64Value(this.value, [this.tags = const []]); + + /// value as bigint + @override + final BigInt value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags); + bytes.pushMajorTag( + value.isNegative ? MajorTags.negInt : MajorTags.posInt, NumBytes.eight); + bytes.pushBigint(value.isNegative ? ~value : value); + return bytes.toBytes(); + } + + /// value as bigint + @override + BigInt toBigInt() { + return value; + } + + /// value as int + @override + int toInt() { + return value.toInt(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value.toString(); + } + + /// override equal operation + @override + operator ==(other) { + if (other is! CborInt64Value) return false; + return value == other.value && bytesEqual(tags, other.tags); + } + + /// override hashcode + @override + int get hashCode => value.hashCode; +} diff --git a/lib/cbor/types/list.dart b/lib/cbor/types/list.dart new file mode 100644 index 0000000..522e086 --- /dev/null +++ b/lib/cbor/types/list.dart @@ -0,0 +1,64 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) List value. +class CborListValue implements CborObject { + /// Constructor for creating a CborListValue instance with the provided parameters. + /// It accepts the List of all cbor encodable value and an optional list of CBOR tags. + CborListValue.fixedLength(this.value, [this.tags = const []]) + : _isFixedLength = true; + + /// Constructor for creating a CborListValue instance with the provided parameters. + /// It accepts the List of all cbor encodable value and an optional list of CBOR tags. + /// this method encode values with indefinite tag. + CborListValue.dynamicLength(this.value, [this.tags = const []]) + : _isFixedLength = false; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// value as List + @override + final List value; + + final bool _isFixedLength; + + /// check is fixedLength or inifinitie + bool get isFixedLength => _isFixedLength; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags); + if (isFixedLength) { + bytes.pushInt(MajorTags.array, value.length); + } else { + bytes.pushIndefinite(MajorTags.array); + } + for (final v in value) { + final obj = CborObject.fromDynamic(v); + final encodeObj = obj.encode(); + bytes.pushBytes(encodeObj); + } + if (!isFixedLength) { + bytes.breakDynamic(); + } + return bytes.toBytes(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value.join(","); + } +} diff --git a/lib/cbor/types/map.dart b/lib/cbor/types/map.dart new file mode 100644 index 0000000..372ba29 --- /dev/null +++ b/lib/cbor/types/map.dart @@ -0,0 +1,70 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) Map value. +class CborMapValue implements CborObject { + /// Constructor for creating a CborMapValue instance with the provided parameters. + /// It accepts the Map with all cbor encodable key and value and an optional list of CBOR tags. + CborMapValue.fixedLength(this.value, [this.tags = const []]) + : _isFixedLength = true; + + /// Constructor for creating a CborMapValue instance with the provided parameters. + /// It accepts the Map with all cbor encodable key and value and an optional list of CBOR tags. + /// this method encode values with indefinite tag. + CborMapValue.dynamicLength(this.value, [this.tags = const []]) + : _isFixedLength = false; + + /// value as Map + @override + final Map value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + final bool _isFixedLength; + + /// check is fixedLength or inifinitie + bool get isFixedLength => _isFixedLength; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags); + if (isFixedLength) { + bytes.pushInt(MajorTags.map, value.length); + } else { + bytes.pushIndefinite(MajorTags.map); + } + for (final v in value.entries) { + final keyObj = CborObject.fromDynamic(v.key); + final encodeKeyObj = keyObj.encode(); + bytes.pushBytes(encodeKeyObj); + final valueObj = CborObject.fromDynamic(v.value); + final encodeValueObj = valueObj.encode(); + bytes.pushBytes(encodeValueObj); + } + if (!isFixedLength) { + bytes.breakDynamic(); + } + return bytes.toBytes(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value.toString(); + } + + bool containsKey(dynamic val) { + return value.containsKey(val); + } +} diff --git a/lib/cbor/types/mime.dart b/lib/cbor/types/mime.dart new file mode 100644 index 0000000..6fcc3ec --- /dev/null +++ b/lib/cbor/types/mime.dart @@ -0,0 +1,54 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/cbor/types/string.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) mime value. +class CborMimeValue implements CborObject { + /// Constructor for creating a CborMimeValue instance with the provided parameters. + /// It accepts the string value and an optional list of CBOR tags. + const CborMimeValue(this.value, [this.tags = const []]); + + /// value as string + @override + final String value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags.isEmpty ? [CborTags.mime] : tags); + final toBytes = CborStringValue(value); + bytes.pushBytes(toBytes.encode()); + return bytes.toBytes(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value; + } + + /// override equal operation + @override + operator ==(other) { + if (other is! CborMimeValue) return false; + return value == other.value && bytesEqual(tags, other.tags); + } + + /// override hashcode + @override + int get hashCode => value.hashCode; +} diff --git a/lib/cbor/types/null.dart b/lib/cbor/types/null.dart new file mode 100644 index 0000000..d35e1d8 --- /dev/null +++ b/lib/cbor/types/null.dart @@ -0,0 +1,99 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) null value. +class CborNullValue implements CborObject { + /// Constructor for creating a CborNullValue instance with the provided parameters. + /// It accepts optional list of CBOR tags. + const CborNullValue([this.tags = const []]); + + /// value always is null + @override + dynamic get value => null; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags); + bytes.pushInt(MajorTags.simpleOrFloat, SimpleTags.simpleNull); + return bytes.toBytes(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// Returns the string representation of the value. + @override + String toString() { + return "null"; + } + + /// override equal operation + @override + operator ==(other) { + if (other is! CborNullValue) return false; + return bytesEqual(tags, other.tags); + } + + /// override hashcode + @override + int get hashCode => "null".hashCode; +} + +/// A class representing a CBOR (Concise Binary Object Representation) undefined value. +class CborUndefinedValue implements CborObject { + /// Constructor for creating a CborUndefinedValue instance with the provided parameters. + /// It accepts optional list of CBOR tags. + const CborUndefinedValue([this.tags = const []]); + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// value always is null + @override + dynamic get value => null; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags); + bytes.pushInt(MajorTags.simpleOrFloat, SimpleTags.simpleUndefined); + return bytes.toBytes(); + } + + /// Returns the string representation of the value. + @override + String toString() { + return "undefined"; + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// override equal operation + @override + operator ==(other) { + if (other is! CborUndefinedValue) return false; + return bytesEqual(tags, other.tags); + } + + /// override hashcode + @override + int get hashCode => "undefined".hashCode; +} diff --git a/lib/cbor/types/regex.dart b/lib/cbor/types/regex.dart new file mode 100644 index 0000000..ece529f --- /dev/null +++ b/lib/cbor/types/regex.dart @@ -0,0 +1,53 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/types/string.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) Regex value. +class CborRegxpValue implements CborString { + /// Constructor for creating a CborRegxpValue instance with the provided parameters. + /// It accepts string value of regex and optional list of CBOR tags. + const CborRegxpValue(this.value, [this.tags = const []]); + + /// value as string + @override + final String value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags.isEmpty ? [CborTags.regexp] : tags); + final toBytes = CborStringValue(value); + bytes.pushBytes(toBytes.encode()); + return bytes.toBytes(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value; + } + + /// override equal operation + @override + operator ==(other) { + if (other is! CborRegxpValue) return false; + return value == other.value && bytesEqual(tags, other.tags); + } + + /// override hashcode + @override + int get hashCode => value.hashCode; +} diff --git a/lib/cbor/types/set.dart b/lib/cbor/types/set.dart new file mode 100644 index 0000000..352d4bc --- /dev/null +++ b/lib/cbor/types/set.dart @@ -0,0 +1,57 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) Set value. +class CborSetValue implements CborObject { + /// Constructor for creating a CborSetValue instance with the provided parameters. + /// It accepts a set of all encodable cbor object and optional list of CBOR tags. + CborSetValue(this.value, [this.tags = const []]); + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// value as set + @override + final Set value; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags.isEmpty ? [CborTags.set] : tags); + bytes.pushInt(MajorTags.array, value.length); + for (final v in value) { + final obj = CborObject.fromDynamic(v); + final encodeObj = obj.encode(); + bytes.pushBytes(encodeObj); + } + return bytes.toBytes(); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value.join(","); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// override equal operation + @override + operator ==(other) { + if (other is! CborSetValue) return false; + return iterableIsEqual(value, other.value) && bytesEqual(tags, other.tags); + } + + /// override hashcode + @override + int get hashCode => value.hashCode; +} diff --git a/lib/cbor/types/string.dart b/lib/cbor/types/string.dart new file mode 100644 index 0000000..e6c7a60 --- /dev/null +++ b/lib/cbor/types/string.dart @@ -0,0 +1,111 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:blockchain_utils/string/string.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) String value. +abstract class CborString implements CborObject { + @override + abstract final dynamic value; + + /// List of CBOR tags associated with the URL value. + @override + abstract final List tags; + + List _encode(); + + /// Encode the value into CBOR bytes + @override + List encode() { + return _encode(); + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } +} + +/// A class representing a CBOR (Concise Binary Object Representation) string value. +class CborStringValue extends CborString { + /// Constructor for creating a CborStringValue instance with the provided parameters. + /// It accepts a string value and optional list of CBOR tags. + CborStringValue(this.value, [this.tags = const []]); + + /// value as string + @override + final String value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + @override + List _encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags); + final toBytes = StringUtils.encode(value); + bytes.pushInt(MajorTags.utf8String, toBytes.length); + bytes.pushBytes(toBytes); + return bytes.toBytes(); + } + + /// override equal operation + @override + operator ==(other) { + if (other is! CborStringValue) return false; + return value == other.value && bytesEqual(tags, other.tags); + } + + /// override hashcode + @override + int get hashCode => value.hashCode; +} + +/// A class representing a CBOR (Concise Binary Object Representation) string value with indefinite tag length. +class CborIndefiniteStringValue extends CborString { + /// Constructor for creating a CborStringValue instance with the provided parameters. + /// It accepts a List value and optional list of CBOR tags. + CborIndefiniteStringValue(this.value, [this.tags = const []]); + + /// value as List + @override + final List value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + @override + List _encode() { + final bytes = CborBytesTracker(); + bytes.pushIndefinite(MajorTags.utf8String); + for (final v in value) { + final toBytes = StringUtils.encode(v); + bytes.pushInt(MajorTags.utf8String, toBytes.length); + bytes.pushBytes(toBytes); + } + bytes.breakDynamic(); + return bytes.toBytes(); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value.join(", "); + } + + /// override equal operation + @override + operator ==(other) { + if (other is! CborIndefiniteStringValue) return false; + return iterableIsEqual(value, other.value) && + bytesEqual(tags, other.tags); + } + + /// override hashcode + @override + int get hashCode => value.hashCode; +} diff --git a/lib/cbor/types/url.dart b/lib/cbor/types/url.dart new file mode 100644 index 0000000..3fb4e0f --- /dev/null +++ b/lib/cbor/types/url.dart @@ -0,0 +1,53 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/utils/dynamic_bytes.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/types/string.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// A class representing a CBOR (Concise Binary Object Representation) uri value. +class CborUriValue implements CborString { + /// Constructor for creating a CborUriValue instance with the provided parameters. + /// It accepts string value of uri and optional list of CBOR tags. + const CborUriValue(this.value, [this.tags = const []]); + + /// value as string + @override + final String value; + + /// List of CBOR tags associated with the URL value. + @override + final List tags; + + /// Encode the value into CBOR bytes + @override + List encode() { + final bytes = CborBytesTracker(); + bytes.pushTags(tags.isEmpty ? [CborTags.uri] : tags); + final toBytes = CborStringValue(value); + bytes.pushBytes(toBytes.encode()); + return bytes.toBytes(); + } + + /// Returns the string representation of the value. + @override + String toString() { + return value; + } + + /// Encode the value into CBOR bytes an then to hex + @override + String toCborHex() { + return BytesUtils.toHexString(encode()); + } + + /// override equal operation + @override + operator ==(other) { + if (other is! CborUriValue) return false; + return value == other.value && bytesEqual(tags, other.tags); + } + + /// override hashcode + @override + int get hashCode => value.hashCode; +} diff --git a/lib/cbor/utils/cbor_utils.dart b/lib/cbor/utils/cbor_utils.dart new file mode 100644 index 0000000..a4ae54b --- /dev/null +++ b/lib/cbor/utils/cbor_utils.dart @@ -0,0 +1,355 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/cbor/types/set.dart'; +import 'package:blockchain_utils/cbor/utils/float_utils.dart'; +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/cbor/types/base.dart'; +import 'package:blockchain_utils/cbor/types/bigfloat.dart'; +import 'package:blockchain_utils/cbor/types/bigint.dart'; +import 'package:blockchain_utils/cbor/types/boolean.dart'; +import 'package:blockchain_utils/cbor/types/bytes.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/cbor/types/datetime.dart'; +import 'package:blockchain_utils/cbor/types/decimal.dart'; +import 'package:blockchain_utils/cbor/types/double.dart'; +import 'package:blockchain_utils/cbor/types/int.dart'; +import 'package:blockchain_utils/cbor/types/int64.dart'; +import 'package:blockchain_utils/cbor/types/list.dart'; +import 'package:blockchain_utils/cbor/types/map.dart'; +import 'package:blockchain_utils/cbor/types/mime.dart'; +import 'package:blockchain_utils/cbor/types/null.dart'; +import 'package:blockchain_utils/cbor/types/regex.dart'; +import 'package:blockchain_utils/cbor/types/string.dart'; +import 'package:blockchain_utils/cbor/types/url.dart'; +import 'package:blockchain_utils/string/string.dart'; + +class CborUtils { + /// Decode a CBOR (Concise Binary Object Representation) data stream represented by a List. + /// The method decodes the CBOR data and returns the resulting CborObject. + static CborObject decodeCbor(List cborBytes) { + return _decode(cborBytes).$1; + } + + /// Parse a datetime string in RFC3339 format and return a corresponding DateTime object. + /// The method checks if the input string contains a timezone offset. If it does, it splits the string + /// into date and offset parts, parses the date part, and returns it. If there's no offset, it parses + /// the input string as a UTC time. + static DateTime parseRFC3339DateTime(String dateTimeString) { + // Check if the input string contains a timezone offset + if (dateTimeString.contains('+')) { + // Split the string into the date and offset parts + final parts = dateTimeString.split('+'); + if (parts.length != 2) { + throw FormatException("Invalid format: $dateTimeString"); + } + final datePart = DateTime.parse(parts[0]); + return datePart; + } else { + // Parse the input string as a UTC time + return DateTime.parse(dateTimeString).toUtc(); + } + } + + static (CborObject, int) _decode(List cborBytes) { + final List tags = []; + for (int i = 0; i < cborBytes.length;) { + final int first = cborBytes[i]; + final majorTag = first >> 5; + final info = first & 0x1f; + + switch (majorTag) { + case MajorTags.map: + if (info == NumBytes.indefinite) { + return _decodeDynamicMap(cborBytes, i, info, tags); + } + return _decodeMap(cborBytes, i, info, tags); + case MajorTags.negInt: + case MajorTags.posInt: + return _parseInt(majorTag, info, i, cborBytes, tags); + case MajorTags.tag: + final data = _decodeLength(info, cborBytes.sublist(i)); + tags.add(data.$1); + i += data.$2; + continue; + case MajorTags.byteString: + return _decodeBytesString(info, i, cborBytes, tags); + case MajorTags.utf8String: + return _decodeUtf8String(info, i, cborBytes, tags); + case MajorTags.simpleOrFloat: + return _parseSimpleValue(i, info, cborBytes, tags); + case MajorTags.array: + if (info == NumBytes.indefinite) { + return _decodeDynamicArray(cborBytes, i, info, tags); + } + return _decodeArray(cborBytes, i, info, tags); + default: + throw ArgumentError( + "invalid or unsuported cbor tag major: $majorTag "); + } + } + throw ArgumentError("invalid or unsuported cbor tag"); + } + + // static BigInt _BigintUtils.fromBytes(List bytes) { + // BigInt result = BigInt.zero; + // for (int i = 0; i < bytes.length; i++) { + // result = result << 8 | BigInt.from(readUint8(bytes, i)); + // } + // return result; + // } + + static (List, int) _parsBytes(int info, List cborBytes) { + final len = _decodeLength(info, cborBytes); + final int end = (len.$2 + len.$1 as int); + final bytes = cborBytes.sublist(len.$2, end); + return (bytes, end); + } + + static (dynamic, int) _decodeLength(int info, List cborBytes) { + if (info < 24) { + return (info, 1); + } + final int len = 1 << (info - 24); + ByteData buf = + ByteData.view(Uint8List.fromList(cborBytes.sublist(1, len + 1)).buffer); + const int shift32 = 0x100000000; // 2^32 + const int maxSafeHigh = 0x1fffff; + switch (info) { + case NumBytes.one: + return (buf.getUint8(0), 2); + case NumBytes.two: + return (buf.getUint16(0, Endian.big), 3); + case NumBytes.four: + return (buf.getUint32(0, Endian.big), 5); + case NumBytes.eight: + final f = buf.getUint32(0, Endian.big); + final g = buf.getUint32(4, Endian.big); + if (f > maxSafeHigh) { + final big = (BigInt.from(f) * BigInt.from(shift32)) + BigInt.from(g); + if (big.isValidInt) { + return (big.toInt(), 9); + } + return (big, 9); + } + return ((f * shift32) + g, 9); + default: + throw ArgumentError('Invalid additional info for int: $info'); + } + } + + static (CborObject, int) _decodeUtf8String( + int info, int i, List cborBytes, List tags) { + if (info == NumBytes.indefinite) { + final toList = _decodeDynamicArray(cborBytes, i, info, tags); + final stringList = toList.$1.value + .whereType() + .map((e) => e.value) + .toList(); + return (CborIndefiniteStringValue(stringList, tags), toList.$2); + } + + final bytes = _parsBytes(info, cborBytes.sublist(i)); + + return (_toStringObject(bytes.$1, tags), (bytes.$2 + i)); + } + + static CborObject _toStringObject(List utf8Bytes, List tags) { + final toString = StringUtils.decode(utf8Bytes); + if (tags.isEmpty) { + return CborStringValue(toString); + } else if (CborBase64Types.values + .any((element) => tags.contains(element.tag))) { + final baseType = CborBase64Types.values + .firstWhere((element) => tags.contains(element.tag)); + tags.removeWhere((element) => element == baseType.tag); + return CborBaseUrlValue(toString, baseType, tags); + } else if (tags.contains(CborTags.mime)) { + tags.removeWhere((element) => element == CborTags.mime); + return CborMimeValue(toString, tags); + } else if (tags.contains(CborTags.uri)) { + tags.removeWhere((element) => element == CborTags.uri); + return CborUriValue(toString, tags); + } else if (tags.contains(CborTags.regexp)) { + tags.removeWhere((element) => element == CborTags.regexp); + return CborRegxpValue(toString, tags); + } else if (tags.contains(CborTags.dateString)) { + tags.removeWhere((element) => element == CborTags.dateString); + final time = parseRFC3339DateTime(toString); + return CborStringDateValue(time, tags); + } + return CborStringValue(toString, tags); + } + + static (CborObject, int) _decodeBytesString( + int info, int i, List cborBytes, List tags) { + if (info == NumBytes.indefinite) { + final toList = _decodeDynamicArray(cborBytes, i, info, tags); + final bytesList = toList.$1.value + .whereType() + .map((e) => e.value) + .toList(); + return (CborDynamicBytesValue(bytesList, tags), toList.$2); + } + final bytes = _parsBytes(info, cborBytes.sublist(i)); + CborObject? val; + if (tags.contains(CborTags.negBigInt) || + tags.contains(CborTags.posBigInt)) { + BigInt big = BigintUtils.fromBytes(bytes.$1); + if (tags.contains(CborTags.negBigInt)) { + big = ~big; + } + tags.removeWhere((element) => + element == CborTags.negBigInt || element == CborTags.posBigInt); + val = CborBigIntValue(big, tags); + } + val ??= CborBytesValue(bytes.$1, tags); + return (val, bytes.$2 + i); + } + + static (CborObject, int) _decodeMap( + List cborBytes, int offset, int info, List tags) { + int index = offset + 1; + Map objects = {}; + for (int lI = 0; lI < info; lI++) { + final decodeKey = _decode(cborBytes.sublist(index)); + index += decodeKey.$2; + final decodeValue = _decode(cborBytes.sublist(index)); + objects[decodeKey.$1] = decodeValue.$1; + index += decodeValue.$2; + } + return (CborMapValue.fixedLength(objects), index); + } + + static (CborObject, int) _decodeDynamicMap( + List cborBytes, int offset, int info, List tags) { + int index = offset + 1; + Map objects = {}; + while (cborBytes[index] != 0xff) { + final decodeKey = _decode(cborBytes.sublist(index)); + index += decodeKey.$2; + final decodeValue = _decode(cborBytes.sublist(index)); + objects[decodeKey.$1] = decodeValue.$1; + index += decodeValue.$2; + } + + return (CborMapValue.dynamicLength(objects), index + 1); + } + + static (CborObject, int) _decodeArray( + List cborBytes, int offset, int info, List tags) { + int index = offset + 1; + List objects = []; + for (int lI = 0; lI < info; lI++) { + final decodeData = _decode(cborBytes.sublist(index)); + objects.add(decodeData.$1); + index += decodeData.$2; + } + if (tags.contains(CborTags.bigFloat) || + tags.contains(CborTags.decimalFrac)) { + return (_decodeCborBigfloatOrDecimal(objects, tags), index); + } + if (tags.contains(CborTags.set)) { + tags.removeWhere((element) => element == CborTags.set); + return (CborSetValue(objects.toSet(), tags), index); + } + return (CborListValue.fixedLength(objects, tags), index); + } + + static (CborListValue, int) _decodeDynamicArray( + List cborBytes, int offset, int info, List tags) { + int index = offset + 1; + List objects = []; + while (cborBytes[index] != 0xff) { + final decodeData = _decode(cborBytes.sublist(index)); + objects.add(decodeData.$1); + index += decodeData.$2; + } + return (CborListValue.dynamicLength(objects), index + 1); + } + + static CborObject _decodeCborBigfloatOrDecimal( + List objects, List tags) { + objects = objects.whereType().toList(); + if (objects.length != 2) { + throw StateError("invalid bigFloat array length"); + } + if (tags.contains(CborTags.decimalFrac)) { + tags.removeWhere((element) => element == CborTags.decimalFrac); + return CborDecimalFracValue.fromCborNumeric( + objects[0] as CborNumeric, objects[1] as CborNumeric, tags); + } + tags.removeWhere((element) => element == CborTags.bigFloat); + return CborBigFloatValue.fromCborNumeric( + objects[0] as CborNumeric, objects[1] as CborNumeric, tags); + } + + static (CborObject, int) _parseSimpleValue( + int i, int info, List bytes, List tags) { + int offset = i + 1; + switch (info) { + case SimpleTags.simpleFalse: + return (CborBoleanValue(false, tags), offset); + case SimpleTags.simpleTrue: + return (CborBoleanValue(true, tags), offset); + case SimpleTags.simpleNull: + return (CborNullValue(tags), offset); + case SimpleTags.simpleUndefined: + return (CborUndefinedValue(tags), offset); + default: + } + + double val; + switch (info) { + case NumBytes.two: + val = FloatUtils.floatFromBytes16(bytes.sublist(offset, offset + 2)); + offset = offset + 2; + break; + case NumBytes.four: + val = ByteData.view( + Uint8List.fromList(bytes.sublist(offset, offset + 4)).buffer) + .getFloat32(0, Endian.big); + offset = offset + 4; + break; + case NumBytes.eight: + val = ByteData.view( + Uint8List.fromList(bytes.sublist(offset, offset + 8)).buffer) + .getFloat64(0, Endian.big); + offset = offset + 8; + break; + default: + throw StateError("Invalid simpleOrFloatTags"); + } + if (tags.contains(CborTags.dateEpoch)) { + final dt = DateTime.fromMillisecondsSinceEpoch((val * 1000).round()); + tags.removeWhere((element) => element == CborTags.dateEpoch); + return (CborEpochFloatValue(dt, tags), offset); + } + return (CborFloatValue(val, tags), offset); + } + + static (CborObject, int) _parseInt( + int mt, int info, int i, List cborBytes, List tags) { + final data = _decodeLength(info, cborBytes.sublist(i)); + final val = data.$1; + CborNumeric? numericValue; + final index = data.$2 + i; + if (val is BigInt) { + if (val.bitLength > 64) { + throw StateError("invalid int value"); + } + if (val.isValidInt) { + numericValue = + CborInt64Value(mt == MajorTags.negInt ? ~val : val, tags); + } + } + numericValue ??= CborIntValue(mt == MajorTags.negInt ? ~val : val, tags); + if (tags.contains(CborTags.dateEpoch)) { + final dt = + DateTime.fromMillisecondsSinceEpoch(numericValue.toInt() * 1000); + tags.removeWhere((element) => element == CborTags.dateEpoch); + return (CborEpochIntValue(dt, tags), index); + } + return (numericValue, index); + } +} diff --git a/lib/cbor/utils/dynamic_bytes.dart b/lib/cbor/utils/dynamic_bytes.dart new file mode 100644 index 0000000..a9149cf --- /dev/null +++ b/lib/cbor/utils/dynamic_bytes.dart @@ -0,0 +1,113 @@ +import 'package:blockchain_utils/cbor/core/tags.dart'; +import 'package:blockchain_utils/binary/binary_operation.dart'; + +/// A class for tracking and building a sequence of bytes (List) for CBOR encoding. +class CborBytesTracker { + /// Constructor for creating a CborBytesTracker instance. + CborBytesTracker(); + + /// A buffer used to accumulate the bytes for CBOR encoding. + final List _buffer = List.empty(growable: true); + + /// bytes length + int get length => _buffer.length; + + /// Retrieve the accumulated bytes as a List from the buffer. + List toBytes() { + return List.from(_buffer); + } + + /// Append a single UInt8 value to the byte sequence in the buffer. + void pushUInt8(int val) { + pushBytes([val]); + } + + /// Append a 16-bit integer value in big-endian format to the byte sequence in the buffer. + void pushUint16Be(int val) { + final result = List.filled(2, 0); + writeUint16BE(val, result); + pushBytes(result); + } + + List _toUint32Be(int val) { + final result = List.filled(4, 0); + writeUint32BE(val, result); + return result; + } + + /// Append a 32-bit integer value in big-endian format to the byte sequence in the buffer. + void pushUint32Be(int val) { + pushBytes(_toUint32Be(val)); + } + + /// Append a list of integer values (chunk) to the byte sequence in the buffer. + void pushBytes(List chunk) { + for (final i in chunk) { + if (i < 0 || i > 0xff) { + throw FormatException( + "invalid byte ${chunk[i] < 0 ? "-" : ""}0x${chunk[i].abs().toRadixString(16)}"); + } + } + _buffer.addAll(chunk); + } + + /// Append a list of CBOR tags to the byte sequence in the buffer. + void pushTags(List tags) { + for (int i in tags) { + pushInt(MajorTags.tag, i); + } + } + + /// Append a special byte representing indefinite length for the provided major tag. + void pushIndefinite(int majorTag) { + majorTag <<= 5; + pushBytes([majorTag | NumBytes.indefinite]); + } + + /// Append a special byte (0xff) to indicate indefinite length for a dynamic element. + void breakDynamic() { + pushBytes([0xff]); + } + + /// Append a major tag and its value to the byte sequence in the buffer. + void pushMajorTag(int majorTag, int value) { + majorTag <<= 5; + pushUInt8(majorTag | value); + } + + /// Append an integer value with a specified major tag to the byte sequence in the buffer. + void pushInt( + int majorTag, + int value, + ) { + majorTag <<= 5; + if (value < 24) { + pushUInt8(majorTag | value); + return; + } else if (value <= mask8) { + pushUInt8(majorTag | NumBytes.one); + pushUInt8(value); + return; + } else if (value <= mask16) { + pushUInt8(majorTag | NumBytes.two); + pushUint16Be(value); + } else if (value <= mask32) { + pushUInt8(majorTag | NumBytes.four); + pushUint32Be(value); + } else { + pushUInt8(majorTag | NumBytes.eight); + pushBigint(BigInt.from(value)); + } + } + + /// Append a BigInt value with a specified major tag to the byte sequence in the buffer. + void pushBigint( + BigInt value, + ) { + final shift32 = BigInt.from(0x100000000); + final quotient = value ~/ shift32; + final remainder = value % shift32; + pushBytes(_toUint32Be(quotient.toInt())); + pushBytes(_toUint32Be(remainder.toInt())); + } +} diff --git a/lib/cbor/utils/extentions.dart b/lib/cbor/utils/extentions.dart new file mode 100644 index 0000000..31cbcf9 --- /dev/null +++ b/lib/cbor/utils/extentions.dart @@ -0,0 +1,29 @@ +/// Extension on the DateTime class to format a DateTime object as an RFC3339 string +extension RFC3339 on DateTime { + /// Convert the DateTime to an RFC3339 formatted string with time zone information. + String toRFC3339WithTimeZone() { + String year = this.year.toString().padLeft(4, '0'); + String month = this.month.toString().padLeft(2, '0'); + String day = this.day.toString().padLeft(2, '0'); + String hour = this.hour.toString().padLeft(2, '0'); + String minute = this.minute.toString().padLeft(2, '0'); + String second = this.second.toString().padLeft(2, '0'); + String millisecond = this + .millisecond + .toString() + .padLeft(3, '0') + .replaceAll(RegExp(r'0*$'), ''); + + Duration timeZoneOffset = isUtc ? Duration.zero : this.timeZoneOffset; + + String timeZoneOffsetSign = timeZoneOffset.isNegative ? '-' : '+'; + int timeZoneOffsetHours = timeZoneOffset.inHours.abs(); + int timeZoneOffsetMinutes = timeZoneOffset.inMinutes.abs() % 60; + + String timeZoneOffsetFormatted = isUtc + ? "Z" + : '$timeZoneOffsetSign${timeZoneOffsetHours.toString().padLeft(2, '0')}:${timeZoneOffsetMinutes.toString().padLeft(2, '0')}'; + + return '$year-$month-${day}T$hour:$minute:$second.$millisecond$timeZoneOffsetFormatted'; + } +} diff --git a/lib/cbor/utils/float_utils.dart b/lib/cbor/utils/float_utils.dart new file mode 100644 index 0000000..fddb858 --- /dev/null +++ b/lib/cbor/utils/float_utils.dart @@ -0,0 +1,277 @@ +// Permission is hereby granted, free of charge, +// to any person obtaining a copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, publish, distribute, +// sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +import 'dart:math' as math; +import 'dart:typed_data'; + +import 'package:blockchain_utils/cbor/core/tags.dart'; + +// Enum representing different floating-point formats and their characteristics. +enum FloatLength { + bytes16(5, 10), + bytes32(8, 23), + bytes64(11, 52); + + /// Number of bits reserved for the exponent and mantissa in each format. + final int exponentBitLength; + final int mantissaBitLength; + + /// Constructor that sets the bit lengths for exponent and mantissa. + const FloatLength(this.exponentBitLength, this.mantissaBitLength); + + /// Calculate the exponent bias for the format. + int get exponentBias => (1 << (exponentBitLength - 1)) - 1; + + /// Determine the number of bytes required to represent a value in this format. + int get numBytes { + switch (this) { + case FloatLength.bytes64: + return NumBytes.eight; + case FloatLength.bytes32: + return NumBytes.four; + default: + return NumBytes.two; + } + } +} + +class FloatUtils { + FloatUtils(this.value); + final double value; + late final _isLess = _isLessThan(value); + bool get isLessThan32 => _isLess.$2; + bool get isLessThan16 => _isLess.$1; + + static (int, int, bool) _decodeBits(int bits) { + const int mantissaBitLength = 52; + const int exponentBitLength = 11; + const exponentBias = (1 << (exponentBitLength - 1)) - 1; + final mantissaBits = bits & ((1 << mantissaBitLength) - 1); + final exponentBits = + (bits >> mantissaBitLength) & ((1 << exponentBitLength) - 1); + final sign = !((bits >> (exponentBitLength + mantissaBitLength)) == 0); + + int mantissa; + int exponent; + if (exponentBits == 0) { + exponent = 1 - exponentBias - mantissaBitLength; + mantissa = mantissaBits; + } else { + exponent = exponentBits - exponentBias - mantissaBitLength; + mantissa = mantissaBits | (1 << mantissaBitLength); + } + + if (sign) { + mantissa = -mantissa; + } + while (mantissa.isEven && mantissa != 0) { + mantissa >>= 1; + exponent += 1; + } + return (mantissa, exponent, sign); + } + + static int _toBits(double value, [Endian? endian]) { + List toBytes = Float64List.fromList([value]).buffer.asUint8List(); + // readUint64LE([value]); + if ((endian ?? Endian.big) == Endian.big) { + toBytes = List.from(toBytes.reversed, growable: false); + } + int bits = 0; + for (final b in toBytes) { + bits <<= 8; + bits |= b; + } + return bits; + } + + /// Check if a double value is less than the maximum representable value in the specified floating-point format. + static bool isLessThan(double value, FloatLength type, [Endian? endian]) { + if (value.isNaN || value.isInfinite) { + return true; + } + final int bits = _toBits(value, endian); + return _dobuleLessThan(bits, type); + } + + static (bool, bool) _isLessThan(double value, [Endian? endian]) { + if (value.isNaN || value.isInfinite) { + return (true, true); + } + final int bits = _toBits(value, endian); + final isLesThan16 = _dobuleLessThan(bits, FloatLength.bytes16); + if (isLesThan16) { + return (true, true); + } + final isLessThan32 = _dobuleLessThan(bits, FloatLength.bytes32); + if (isLessThan32) { + return (false, true); + } + return (false, false); + } + + static bool _dobuleLessThan(int bits, FloatLength type) { + final int mantissaBitLength = type.mantissaBitLength; + final int exponentBitLength = type.exponentBitLength; + final exponentBias = type.exponentBias; + final de = _decodeBits(bits); + if (de.$1 == 0) { + return true; + } + if (mantissaBitLength + 1 < de.$1.bitLength) { + return false; + } + + final exponent = de.$2 + + mantissaBitLength + + exponentBias + + (de.$1.bitLength - (mantissaBitLength + 1)); + + if (exponent >= ((1 << exponentBitLength) - 1)) { + return false; + } + + if (exponent >= 1) { + return true; + } + + final subnormalExp = -(exponentBias - 1 + mantissaBitLength); + final subnormalMantissaLength = de.$1.bitLength + de.$2 - subnormalExp; + + return subnormalMantissaLength > 0 && + subnormalMantissaLength <= mantissaBitLength; + } + + List _encodeFloat16([Endian? endianness]) { + final Uint16List float16View = Uint16List(1); + final Float32List float32View = Float32List(1); + + float32View[0] = value; + + final int float32Bits = + float32View.buffer.asUint8List().buffer.asUint32List()[0]; + + final int sign = (float32Bits & 0x80000000) >> 31; + final int exponent = (float32Bits & 0x7F800000) >> 23; + final int fraction = float32Bits & 0x007FFFFF; + + if (exponent == 0) { + // Denormalized number or zero + float16View[0] = sign << 15 | ((fraction >> 13) & 0x03FF); + } else if (exponent == 0xFF) { + // Infinity or NaN, represented as infinity + float16View[0] = sign << 15 | 0x1F << 10 | 0x000; + } else { + // Normalized number + int newExponent = exponent - 127 + 15; + if (newExponent < 0) { + // Round to zero if exponent is too small for float16 + float16View[0] = sign << 15; + } else if (newExponent > 0x1F) { + // Clamp to the maximum representable exponent + float16View[0] = sign << 15 | 0x1F << 10 | 0x000; + } else { + float16View[0] = + sign << 15 | (newExponent << 10) | ((fraction >> 13) & 0x03FF); + } + } + + // Specify the endianness when converting to List + final List uint8List = float16View.buffer.asUint8List(); + if ((endianness ?? Endian.big) == Endian.big) { + return List.from([uint8List[1], uint8List[0]]); + } else { + return uint8List; + } + } + + List _encodeFloat64([Endian? endianness]) { + final ByteData byteData = ByteData(8); + byteData.setFloat64(0, value, endianness ?? Endian.big); + return byteData.buffer.asUint8List(); + } + + List _encodeFloat32([Endian? endianness]) { + final ByteData byteData = ByteData(4); + byteData.setFloat32(0, value, endianness ?? Endian.big); + return byteData.buffer.asUint8List(); + } + + /// Encode the floating-point value into a byte representation using the specified floating-point format. + /// Returns a tuple containing the encoded bytes and the format used. + (List, FloatLength) toBytes(FloatLength? decodFloatType, + [Endian? endianness]) { + if (decodFloatType == null) { + if (isLessThan16) { + return (_encodeFloat16(endianness), FloatLength.bytes16); + } else if (isLessThan32) { + return (_encodeFloat32(endianness), FloatLength.bytes32); + } + return (_encodeFloat64(endianness), FloatLength.bytes64); + } + final List bytes; + switch (decodFloatType) { + case FloatLength.bytes16: + if (!isLessThan16) { + throw ArgumentError("overflow bytes"); + } + bytes = _encodeFloat16(endianness); + break; + case FloatLength.bytes32: + if (!isLessThan32) { + throw ArgumentError("overflow bytes"); + } + bytes = _encodeFloat32(endianness); + break; + default: + bytes = _encodeFloat64(endianness); + break; + } + return (bytes, decodFloatType); + } + + /// Decode a 16-bit floating-point value from a byte array and return it as a double. + static double floatFromBytes16(List bytes) { + if (bytes.length != 2) { + throw ArgumentError( + 'Input byte array must be exactly 2 bytes long for Float16'); + } + + ByteData byteData = ByteData.sublistView(Uint8List.fromList(bytes)); + int int16Bits = byteData.getInt16(0, Endian.big); + + int sign = (int16Bits >> 15) & 0x1; + int exponent = (int16Bits >> 10) & 0x1F; + int fraction = int16Bits & 0x3FF; + + double value; + + if (exponent == 0x1F) { + if (fraction == 0) { + value = sign == 0 ? double.infinity : double.negativeInfinity; + } else { + value = double.nan; + } + } else if (exponent == 0 && fraction == 0) { + value = sign == 0 ? 0.0 : -0.0; + } else { + exponent -= 15; + value = sign == 0 ? 1.0 : -1.0; + value *= (1.0 + fraction / 1024.0) * math.pow(2.0, exponent); + } + + return value; + } +} diff --git a/lib/compare/compare.dart b/lib/compare/compare.dart new file mode 100644 index 0000000..a52cbc7 --- /dev/null +++ b/lib/compare/compare.dart @@ -0,0 +1,63 @@ +import 'dart:core'; + +/// Compare two lists of bytes for equality. +/// This function compares two lists of bytes 'a' and 'b' for equality. It returns true +/// if the lists are equal (including null check), false if they have different lengths +/// or contain different byte values, and true if the lists reference the same object. +bool bytesEqual(List? a, List? b) { + /// Check if 'a' is null and handle null comparison. + if (a == null) { + return b == null; + } + + /// Check if 'b' is null or if the lengths of 'a' and 'b' are different. + if (b == null || a.length != b.length) { + return false; + } + + /// Check if 'a' and 'b' reference the same object (identity comparison). + if (identical(a, b)) { + return true; + } + + /// Compare the individual byte values in 'a' and 'b'. + for (int index = 0; index < a.length; index += 1) { + if (a[index] != b[index]) { + return false; + } + } + + /// If no differences were found, the lists are equal. + return true; +} + +/// Compare two lists of bytes for equality. +/// This function compares two lists of bytes 'a' and 'b' for equality. It returns true +/// if the lists are equal (including null check), false if they have different lengths +/// or contain different byte values, and true if the lists reference the same object. +bool iterableIsEqual(Iterable? a, Iterable? b) { + /// Check if 'a' is null and handle null comparison. + if (a == null) { + return b == null; + } + + /// Check if 'b' is null or if the lengths of 'a' and 'b' are different. + if (b == null || a.length != b.length) { + return false; + } + + /// Check if 'a' and 'b' reference the same object (identity comparison). + if (identical(a, b)) { + return true; + } + + /// Compare the individual byte values in 'a' and 'b'. + for (int index = 0; index < a.length; index += 1) { + if (a.elementAt(index) != b.elementAt(index)) { + return false; + } + } + + /// If no differences were found, the lists are equal. + return true; +} diff --git a/lib/crypto/crypto.dart b/lib/crypto/crypto.dart deleted file mode 100644 index 2f13be8..0000000 --- a/lib/crypto/crypto.dart +++ /dev/null @@ -1,104 +0,0 @@ -import 'dart:convert'; -import 'package:pointycastle/export.dart'; -import "dart:typed_data"; - -/// ignore: implementation_imports -import 'package:pointycastle/src/platform_check/platform_check.dart' - as platform; - -/// This function calculates the hash160 digest of a given Uint8List buffer. -Uint8List hash160(Uint8List buffer) { - /// Calculate the SHA-256 hash of the input buffer. - Uint8List tmp = SHA256Digest().process(buffer); - - /// Calculate the RIPEMD-160 hash of the SHA-256 hash. - return RIPEMD160Digest().process(tmp); -} - -/// This function calculates the HMAC-SHA-512 digest of a given key and data using HMAC (Hash-based Message Authentication Code). -/// HMAC is a method for verifying both the data integrity and authenticity of a message. -Uint8List hmacSHA512(Uint8List key, Uint8List data) { - /// Create an HMAC instance with the SHA-512 hash algorithm and a 128-bit block size. - final tmp = HMac(SHA512Digest(), 128); - - /// Initialize the HMAC instance with the provided key. - tmp.init(KeyParameter(key)); - - /// Calculate the HMAC-SHA-512 digest of the input data. - return tmp.process(data); -} - -/// This function calculates a double SHA-256 hash of the provided input buffer. -/// Double hashing is commonly used in blockchain and cryptographic applications. -Uint8List doubleHash(Uint8List buffer) { - /// Calculate the first SHA-256 hash of the input buffer. - Uint8List tmp = SHA256Digest().process(buffer); - - /// Calculate the second SHA-256 hash of the first hash result. - return SHA256Digest().process(tmp); -} - -/// This function calculates a single SHA-256 hash of the provided input buffer. -/// It computes a one-time SHA-256 hash without any further processing. -Uint8List singleHash(Uint8List buffer) { - /// Calculate the SHA-256 hash of the input buffer. - Uint8List tmp = SHA256Digest().process(buffer); - - /// Return the resulting hash. - return tmp; -} - -/// A private field to hold the FortunaRandom instance for generating random numbers. -FortunaRandom? _randomGenerator; - -/// This function generates a random Uint8List of the specified size (default is 32 bytes). -Uint8List generateRandom({int size = 32}) { - /// Check if the _randomGenerator instance has been initialized. - if (_randomGenerator == null) { - /// If not, create a new FortunaRandom instance and seed it with entropy. - _randomGenerator = FortunaRandom(); - - /// Generate 32 bytes of entropy from the platform's entropy source and use it as the seed. - _randomGenerator!.seed(KeyParameter( - platform.Platform.instance.platformEntropySource().getBytes(32))); - } - - /// Generate the random bytes of the specified size using the _randomGenerator. - final r = _randomGenerator!.nextBytes(size); - - /// Return the generated random bytes. - return r; -} - -/// This function derives a key from a mnemonic passphrase and a salt using the PBKDF2 algorithm with SHA-512. -/// It returns a Uint8List representing the derived key. -Uint8List pbkdfDeriveDigest(String mnemonic, String salt) { - /// Convert the salt string into a Uint8List of bytes. - final toBytesSalt = Uint8List.fromList(utf8.encode(salt)); - - /// Create a PBKDF2 key derivator with an HMAC-SHA-512 pseudorandom function and a 128-bit block size. - final derive = PBKDF2KeyDerivator(HMac(SHA512Digest(), 128)); - - /// Reset the derivator to its initial state. - derive.reset(); - - /// Initialize the derivator with the salt, iteration count (2048), and desired key length (64 bytes). - derive.init(Pbkdf2Parameters(toBytesSalt, 2048, 64)); - - /// Convert the mnemonic passphrase string into a Uint8List of bytes and derive the key. - return derive.process(Uint8List.fromList(mnemonic.codeUnits)); -} - -/// A final instance of the KeccakDigest with a hash length of 256 bits (32 bytes). -final KeccakDigest _keccakDigest = KeccakDigest(256); - -/// This function computes the Keccak-256 hash (SHA-3) of the given input data. -/// It resets the KeccakDigest instance before processing the input. -/// It returns a Uint8List representing the Keccak-256 hash. -Uint8List keccak256(Uint8List input) { - /// Reset the _keccakDigest instance to its initial state. - _keccakDigest.reset(); - - /// Process the input data using the KeccakDigest to calculate the Keccak-256 hash. - return _keccakDigest.process(input); -} diff --git a/lib/crypto/crypto/aead/aead.dart b/lib/crypto/crypto/aead/aead.dart new file mode 100644 index 0000000..a7e80c9 --- /dev/null +++ b/lib/crypto/crypto/aead/aead.dart @@ -0,0 +1,44 @@ +/// An abstract class representing an Authenticated Encryption with Associated Data (AEAD) cipher. +/// +/// AEAD ciphers provide both encryption and authentication of data, ensuring its integrity +/// and confidentiality. These ciphers work with a secret key, a nonce (number used once), +/// and optionally, associated data. They produce ciphertext and a tag. +/// +/// Subclasses of this abstract class implement specific AEAD algorithms and provide methods +/// for encryption and decryption. The AEAD interface enforces the following key properties: +/// +/// - `nonceLength`: Returns the length (in bytes) of the nonce required by the AEAD algorithm. +/// +/// - `tagLength`: Returns the length (in bytes) of the authentication tag produced by the AEAD algorithm. +/// +/// - `encrypt`: Encrypts the provided plaintext along with a nonce, and optional associated data. +/// Returns the ciphertext and may write the result into the `dst` List if provided. +/// +/// - `decrypt`: Decrypts the provided ciphertext along with a nonce, and optional associated data. +/// Returns the plaintext and may write the result into the `dst` List if provided. Returns `null` +/// if decryption fails due to authentication failure. +/// +/// - `clean`: Clears any sensitive information or states held by the AEAD instance, ensuring that +/// no secrets are left in memory after use. +abstract class AEAD { + /// Returns the length (in bytes) of the nonce required by the AEAD algorithm. + int get nonceLength; + + /// Returns the length (in bytes) of the authentication tag produced by the AEAD algorithm. + int get tagLength; + + /// Encrypts the provided plaintext along with a nonce, and optional associated data. + /// Returns the ciphertext and may write the result into the `dst` List if provided. + List encrypt(List nonce, List plaintext, + {List? associatedData, List? dst}); + + /// Decrypts the provided ciphertext along with a nonce, and optional associated data. + /// Returns the plaintext and may write the result into the `dst` List if provided. + /// Returns `null` if decryption fails due to authentication failure. + List? decrypt(List nonce, List ciphertext, + {List? associatedData, List? dst}); + + /// Clears any sensitive information or states held by the AEAD instance, ensuring that + /// no secrets are left in memory after use. + AEAD clean(); +} diff --git a/lib/crypto/crypto/aes/aes.dart b/lib/crypto/crypto/aes/aes.dart new file mode 100644 index 0000000..7d761b9 --- /dev/null +++ b/lib/crypto/crypto/aes/aes.dart @@ -0,0 +1,181 @@ +import 'package:blockchain_utils/crypto/crypto/blockcipher/blockcipher.dart'; +import 'package:blockchain_utils/binary/binary_operation.dart'; +import 'aes_lib.dart' as aes_lib; + +/// Represents an Advanced Encryption Standard (AES) block cipher. +/// +/// The AES class implements the BlockCipher interface and provides methods for encryption +/// and decryption of data using the AES algorithm. It supports key lengths of 128, 192, and 256 bits. +/// +/// Key Schedule: +/// - The key schedule is computed during key initialization using the `_lib` AES library. +/// +/// Block Size: +/// - AES operates on 128-bit blocks of data. +/// +/// Key Initialization: +/// - To initialize the cipher with a key, use the `setKey` method. +/// +/// Encryption and Decryption: +/// - Use the `encryptBlock` method to encrypt a 128-bit block of data. +/// - Use the `decryptBlock` method to decrypt a 128-bit block of data (if the instance allows decryption). +/// +/// Memory Cleanup: +/// - The `clean` method can be used to securely zero and release the internal key schedule data. +/// +/// Note: This class should be used with caution, as it operates directly on byte arrays and requires proper +/// key management and memory cleanup to ensure security. +class AES implements BlockCipher { + static final aes_lib.AESLib _lib = aes_lib.AESLib(); + + /// Block size for AES cipher + @override + final blockSize = 16; + + /// The length of the encryption key + late int _keyLen; + + /// The encryption key schedule + List? _encKey; + + /// The decryption key schedule + List? _decKey; + + /// Creates an AES cipher instance with the given encryption key. + /// + /// The `noDecryption` flag can be set to `true` to disable decryption functionality. + AES(List key, [bool noDecryption = false]) { + _keyLen = key.length; + setKey(key, noDecryption); + } + + /// Initializes the AES cipher with the provided encryption key. + /// + /// This method sets the encryption key for the AES cipher instance, allowing it to be used for + /// both encryption and decryption. The method enforces key size constraints and securely + /// expands the key into internal key schedules for encryption and decryption if required. + /// + /// Parameters: + /// - `key`: The encryption key as a List. It must be 16, 24, or 32 bytes in length + /// for AES-128, AES-192, or AES-256, respectively. + /// - `noDecryption`: An optional boolean flag. If set to `true`, it disables decryption functionality + /// by securely wiping the decryption key schedule. + /// + /// Throws: + /// - `ArgumentError` if the provided key size is invalid or if the instance was previously + /// initialized with a different key size. + /// + /// Returns: + /// - The same AES instance after key initialization, supporting method chaining. + @override + AES setKey(List key, [bool noDecryption = false]) { + if (key.length != 16 && key.length != 24 && key.length != 32) { + throw ArgumentError("AES: wrong key size (must be 16, 24, or 32)"); + } + if (_keyLen != key.length) { + throw ArgumentError("AES: initialized with different key size"); + } + + _encKey ??= List.filled(key.length + 28, 0, growable: false); + if (noDecryption) { + if (_decKey != null) { + zero(_decKey!); + _decKey = null; + } + } else { + _decKey ??= List.filled(key.length + 28, 0, growable: false); + } + _lib.expandKey(key, _encKey!, _decKey); + return this; + } + + /// Clears and releases internal key schedule data for security and memory management. + /// + /// This method securely zeros and releases the internal encryption and decryption key schedules + /// to ensure that no sensitive key data is left in memory. It is an essential step for maintaining + /// the security of the AES cipher instance after use. + /// + /// Returns: + /// - The same AES instance after cleaning for method chaining. + @override + AES clean() { + if (_encKey != null) { + zero(_encKey!); + _encKey = null; + } + if (_decKey != null) { + zero(_decKey!); + _decKey = null; + } + return this; + } + + /// This method takes a source block of plaintext, encrypts it using the encryption key schedule, + /// and returns the resulting ciphertext. Optionally, you can provide a destination block (`dst`) + /// to write the encrypted data into. If not provided, a new List is created to hold the result. + /// + /// Parameters: + /// - `src`: The source block of plaintext to be encrypted, which must have a length of 16 bytes. + /// - `dst`: An optional destination block to store the encrypted ciphertext. If not provided, + /// a new block is created. + /// + /// Throws: + /// - `ArgumentError` if the source or destination block size is not 16 bytes. + /// - `StateError` if the encryption key is not available, indicating that the instance is not properly initialized. + /// + /// Returns: + /// - The encrypted ciphertext block as a List. + @override + List encryptBlock(List src, [List? dst]) { + final out = dst ?? List.filled(blockSize, 0); + if (src.length != blockSize) { + throw ArgumentError("AES: invalid source block size"); + } + if (out.length != blockSize) { + throw ArgumentError("AES: invalid destination block size"); + } + + if (_encKey == null) { + throw StateError("AES: encryption key is not available"); + } + _lib.encryptBlock(_encKey!, src, out); + + return out; + } + + /// This method takes a source block of ciphertext, decrypts it using the decryption key schedule, + /// and returns the resulting plaintext. Optionally, you can provide a destination block (`dst`) + /// to write the decrypted data into. If not provided, a new List is created to hold the result. + /// + /// Parameters: + /// - `src`: The source block of ciphertext to be decrypted, which must have a length of 16 bytes. + /// - `dst`: An optional destination block to store the decrypted plaintext. If not provided, + /// a new block is created. + /// + /// Throws: + /// - `ArgumentError` if the source or destination block size is not 16 bytes. + /// - `StateError` if the instance was created with the `noDecryption` option, indicating that + /// decryption is not supported by this instance. + /// + /// Returns: + /// - The decrypted plaintext block as a List. + @override + List decryptBlock(List src, [List? dst]) { + final out = dst ?? List.filled(blockSize, 0); + if (src.length != blockSize) { + throw ArgumentError("AES: invaiid source block size"); + } + if (out.length != blockSize) { + throw ArgumentError("AES: invalid destination block size"); + } + + if (_decKey == null) { + throw StateError( + "AES: decrypting with an instance created with noDecryption option"); + } else { + _lib.decryptBlock(_decKey!, src, out); + } + + return out; + } +} diff --git a/lib/crypto/crypto/aes/aes_lib.dart b/lib/crypto/crypto/aes/aes_lib.dart new file mode 100644 index 0000000..e5b0d4e --- /dev/null +++ b/lib/crypto/crypto/aes/aes_lib.dart @@ -0,0 +1,828 @@ +import 'package:blockchain_utils/binary/binary_operation.dart'; + +class AESLib { + AESLib._() { + initialize(); + } + factory AESLib() { + return _aes; + } + static final _aes = AESLib._(); + + final _powx = List.from([ + 0x01, + 0x02, + 0x04, + 0x08, + 0x10, + 0x20, + 0x40, + 0x80, + 0x1b, + 0x36, + 0x6c, + 0xd8, + 0xab, + 0x4d, + 0x9a, + 0x2f + ]); + + /// FIPS-197 Figure 7. S-box substitution values in hexadecimal format. + final _sbox0 = List.from([ + 0x63, + 0x7c, + 0x77, + 0x7b, + 0xf2, + 0x6b, + 0x6f, + 0xc5, + 0x30, + 0x01, + 0x67, + 0x2b, + 0xfe, + 0xd7, + 0xab, + 0x76, + 0xca, + 0x82, + 0xc9, + 0x7d, + 0xfa, + 0x59, + 0x47, + 0xf0, + 0xad, + 0xd4, + 0xa2, + 0xaf, + 0x9c, + 0xa4, + 0x72, + 0xc0, + 0xb7, + 0xfd, + 0x93, + 0x26, + 0x36, + 0x3f, + 0xf7, + 0xcc, + 0x34, + 0xa5, + 0xe5, + 0xf1, + 0x71, + 0xd8, + 0x31, + 0x15, + 0x04, + 0xc7, + 0x23, + 0xc3, + 0x18, + 0x96, + 0x05, + 0x9a, + 0x07, + 0x12, + 0x80, + 0xe2, + 0xeb, + 0x27, + 0xb2, + 0x75, + 0x09, + 0x83, + 0x2c, + 0x1a, + 0x1b, + 0x6e, + 0x5a, + 0xa0, + 0x52, + 0x3b, + 0xd6, + 0xb3, + 0x29, + 0xe3, + 0x2f, + 0x84, + 0x53, + 0xd1, + 0x00, + 0xed, + 0x20, + 0xfc, + 0xb1, + 0x5b, + 0x6a, + 0xcb, + 0xbe, + 0x39, + 0x4a, + 0x4c, + 0x58, + 0xcf, + 0xd0, + 0xef, + 0xaa, + 0xfb, + 0x43, + 0x4d, + 0x33, + 0x85, + 0x45, + 0xf9, + 0x02, + 0x7f, + 0x50, + 0x3c, + 0x9f, + 0xa8, + 0x51, + 0xa3, + 0x40, + 0x8f, + 0x92, + 0x9d, + 0x38, + 0xf5, + 0xbc, + 0xb6, + 0xda, + 0x21, + 0x10, + mask8, + 0xf3, + 0xd2, + 0xcd, + 0x0c, + 0x13, + 0xec, + 0x5f, + 0x97, + 0x44, + 0x17, + 0xc4, + 0xa7, + 0x7e, + 0x3d, + 0x64, + 0x5d, + 0x19, + 0x73, + 0x60, + 0x81, + 0x4f, + 0xdc, + 0x22, + 0x2a, + 0x90, + 0x88, + 0x46, + 0xee, + 0xb8, + 0x14, + 0xde, + 0x5e, + 0x0b, + 0xdb, + 0xe0, + 0x32, + 0x3a, + 0x0a, + 0x49, + 0x06, + 0x24, + 0x5c, + 0xc2, + 0xd3, + 0xac, + 0x62, + 0x91, + 0x95, + 0xe4, + 0x79, + 0xe7, + 0xc8, + 0x37, + 0x6d, + 0x8d, + 0xd5, + 0x4e, + 0xa9, + 0x6c, + 0x56, + 0xf4, + 0xea, + 0x65, + 0x7a, + 0xae, + 0x08, + 0xba, + 0x78, + 0x25, + 0x2e, + 0x1c, + 0xa6, + 0xb4, + 0xc6, + 0xe8, + 0xdd, + 0x74, + 0x1f, + 0x4b, + 0xbd, + 0x8b, + 0x8a, + 0x70, + 0x3e, + 0xb5, + 0x66, + 0x48, + 0x03, + 0xf6, + 0x0e, + 0x61, + 0x35, + 0x57, + 0xb9, + 0x86, + 0xc1, + 0x1d, + 0x9e, + 0xe1, + 0xf8, + 0x98, + 0x11, + 0x69, + 0xd9, + 0x8e, + 0x94, + 0x9b, + 0x1e, + 0x87, + 0xe9, + 0xce, + 0x55, + 0x28, + 0xdf, + 0x8c, + 0xa1, + 0x89, + 0x0d, + 0xbf, + 0xe6, + 0x42, + 0x68, + 0x41, + 0x99, + 0x2d, + 0x0f, + 0xb0, + 0x54, + 0xbb, + 0x16 + ]); + + /// FIPS-197 Figure 14. Inverse S-box substitution values in hexadecimal format. + final _sbox1 = List.from([ + 0x52, + 0x09, + 0x6a, + 0xd5, + 0x30, + 0x36, + 0xa5, + 0x38, + 0xbf, + 0x40, + 0xa3, + 0x9e, + 0x81, + 0xf3, + 0xd7, + 0xfb, + 0x7c, + 0xe3, + 0x39, + 0x82, + 0x9b, + 0x2f, + mask8, + 0x87, + 0x34, + 0x8e, + 0x43, + 0x44, + 0xc4, + 0xde, + 0xe9, + 0xcb, + 0x54, + 0x7b, + 0x94, + 0x32, + 0xa6, + 0xc2, + 0x23, + 0x3d, + 0xee, + 0x4c, + 0x95, + 0x0b, + 0x42, + 0xfa, + 0xc3, + 0x4e, + 0x08, + 0x2e, + 0xa1, + 0x66, + 0x28, + 0xd9, + 0x24, + 0xb2, + 0x76, + 0x5b, + 0xa2, + 0x49, + 0x6d, + 0x8b, + 0xd1, + 0x25, + 0x72, + 0xf8, + 0xf6, + 0x64, + 0x86, + 0x68, + 0x98, + 0x16, + 0xd4, + 0xa4, + 0x5c, + 0xcc, + 0x5d, + 0x65, + 0xb6, + 0x92, + 0x6c, + 0x70, + 0x48, + 0x50, + 0xfd, + 0xed, + 0xb9, + 0xda, + 0x5e, + 0x15, + 0x46, + 0x57, + 0xa7, + 0x8d, + 0x9d, + 0x84, + 0x90, + 0xd8, + 0xab, + 0x00, + 0x8c, + 0xbc, + 0xd3, + 0x0a, + 0xf7, + 0xe4, + 0x58, + 0x05, + 0xb8, + 0xb3, + 0x45, + 0x06, + 0xd0, + 0x2c, + 0x1e, + 0x8f, + 0xca, + 0x3f, + 0x0f, + 0x02, + 0xc1, + 0xaf, + 0xbd, + 0x03, + 0x01, + 0x13, + 0x8a, + 0x6b, + 0x3a, + 0x91, + 0x11, + 0x41, + 0x4f, + 0x67, + 0xdc, + 0xea, + 0x97, + 0xf2, + 0xcf, + 0xce, + 0xf0, + 0xb4, + 0xe6, + 0x73, + 0x96, + 0xac, + 0x74, + 0x22, + 0xe7, + 0xad, + 0x35, + 0x85, + 0xe2, + 0xf9, + 0x37, + 0xe8, + 0x1c, + 0x75, + 0xdf, + 0x6e, + 0x47, + 0xf1, + 0x1a, + 0x71, + 0x1d, + 0x29, + 0xc5, + 0x89, + 0x6f, + 0xb7, + 0x62, + 0x0e, + 0xaa, + 0x18, + 0xbe, + 0x1b, + 0xfc, + 0x56, + 0x3e, + 0x4b, + 0xc6, + 0xd2, + 0x79, + 0x20, + 0x9a, + 0xdb, + 0xc0, + 0xfe, + 0x78, + 0xcd, + 0x5a, + 0xf4, + 0x1f, + 0xdd, + 0xa8, + 0x33, + 0x88, + 0x07, + 0xc7, + 0x31, + 0xb1, + 0x12, + 0x10, + 0x59, + 0x27, + 0x80, + 0xec, + 0x5f, + 0x60, + 0x51, + 0x7f, + 0xa9, + 0x19, + 0xb5, + 0x4a, + 0x0d, + 0x2d, + 0xe5, + 0x7a, + 0x9f, + 0x93, + 0xc9, + 0x9c, + 0xef, + 0xa0, + 0xe0, + 0x3b, + 0x4d, + 0xae, + 0x2a, + 0xf5, + 0xb0, + 0xc8, + 0xeb, + 0xbb, + 0x3c, + 0x83, + 0x53, + 0x99, + 0x61, + 0x17, + 0x2b, + 0x04, + 0x7e, + 0xba, + 0x77, + 0xd6, + 0x26, + 0xe1, + 0x69, + 0x14, + 0x63, + 0x55, + 0x21, + 0x0c, + 0x7d + ]); + + final List _te0 = List.filled(256, 0), + _te1 = List.filled(256, 0), + _te2 = List.filled(256, 0), + _te3 = List.filled(256, 0); + final List _td0 = List.filled(256, 0), + _td1 = List.filled(256, 0), + _td2 = List.filled(256, 0), + _td3 = List.filled(256, 0); + + void initialize() { + const poly = (1 << 8) | (1 << 4) | (1 << 3) | (1 << 1) | (1 << 0); + + int mul(int b, int c) { + int i = b; + int j = c; + int s = 0; + for (int k = 1; k < 0x100 && j != 0; k <<= 1) { + if ((j & k) != 0) { + s ^= i; + j ^= k; + } + i <<= 1; + if ((i & 0x100) != 0) { + i ^= poly; + } + } + return s; + } + + // ignore: no_leading_underscores_for_local_identifiers + _rot24(int x) => rotl32(x, 24); + // (x << 24) | (x >> 8); + + for (int i = 0; i < 256; i++) { + final s = _sbox0[i]; + int w = ((mul(s, 2) << 24) | (s << 16) | (s << 8) | mul(s, 3)) & mask32; + _te0[i] = w; + w = _rot24(w); + _te1[i] = w; + w = _rot24(w); + _te2[i] = w; + w = _rot24(w); + _te3[i] = w; + w = _rot24(w); + } + + for (int i = 0; i < 256; i++) { + final s = _sbox1[i]; + int w = (mul(s, 0xe) << 24) | + (mul(s, 0x9) << 16) | + (mul(s, 0xd) << 8) | + mul(s, 0xb); + _td0[i] = w; + w = _rot24(w); + _td1[i] = w; + w = _rot24(w); + _td2[i] = w; + w = _rot24(w); + _td3[i] = w; + w = _rot24(w); + } + } + + int _subw(int w) { + return ((_sbox0[(w >> 24) & mask8]) << 24) | + ((_sbox0[(w >> 16) & mask8]) << 16) | + ((_sbox0[(w >> 8) & mask8]) << 8) | + (_sbox0[w & mask8]); + } + + int _rotw(int w) { + return (w << 8) | (w >> 24); + } + + void expandKey(List key, List encKey, [List? decKey]) { + final nk = key.length ~/ 4; + final n = encKey.length; + + for (int i = 0; i < nk; i++) { + encKey[i] = readUint32BE(key, i * 4); + } + + for (int i = nk; i < n; i++) { + int t = encKey[i - 1]; + if (i % nk == 0) { + t = _subw(_rotw(t)) ^ (_powx[i ~/ nk - 1] << 24); + } else if (nk > 6 && i % nk == 4) { + t = _subw(t); + } + encKey[i] = encKey[i - nk] ^ t; + } + + if (decKey != null) { + // Derive decryption key from encryption key. + // Reverse the 4-word round key sets from enc to produce dec. + // All sets but the first and last get the MixColumn transform applied. + for (int i = 0; i < n; i += 4) { + final ei = n - i - 4; + for (int j = 0; j < 4; j++) { + int x = encKey[ei + j]; + if (i > 0 && i + 4 < n) { + x = _td0[_sbox0[(x >> 24) & mask8]] ^ + _td1[_sbox0[(x >> 16) & mask8]] ^ + _td2[_sbox0[(x >> 8) & mask8]] ^ + _td3[_sbox0[x & mask8]]; + } + decKey[i + j] = x; + } + } + } + } + + void encryptBlock(List xk, List src, List dst) { + int s0 = readUint32BE(src, 0); + int s1 = readUint32BE(src, 4); + int s2 = readUint32BE(src, 8); + int s3 = readUint32BE(src, 12); + + // First round just XORs input with key. + s0 ^= xk[0]; + s1 ^= xk[1]; + s2 ^= xk[2]; + s3 ^= xk[3]; + + int t0 = 0, t1 = 0, t2 = 0, t3 = 0; + + /// Middle rounds shuffle using tables. + /// Number of rounds is set by the length of the expanded key. + final nr = xk.length ~/ 4 - 2; // - 2: one above, one more below + int k = 4; + + for (int r = 0; r < nr; r++) { + t0 = xk[k + 0] ^ + _te0[(s0 >> 24) & mask8] ^ + _te1[(s1 >> 16) & mask8] ^ + _te2[(s2 >> 8) & mask8] ^ + _te3[s3 & mask8]; + + t1 = xk[k + 1] ^ + _te0[(s1 >> 24) & mask8] ^ + _te1[(s2 >> 16) & mask8] ^ + _te2[(s3 >> 8) & mask8] ^ + _te3[s0 & mask8]; + + t2 = xk[k + 2] ^ + _te0[(s2 >> 24) & mask8] ^ + _te1[(s3 >> 16) & mask8] ^ + _te2[(s0 >> 8) & mask8] ^ + _te3[s1 & mask8]; + + t3 = xk[k + 3] ^ + _te0[(s3 >> 24) & mask8] ^ + _te1[(s0 >> 16) & mask8] ^ + _te2[(s1 >> 8) & mask8] ^ + _te3[s2 & mask8]; + + k += 4; + s0 = t0; + s1 = t1; + s2 = t2; + s3 = t3; + } + + /// Last round uses s-box directly and XORs to produce output. + s0 = (_sbox0[t0 >> 24] << 24) | + (_sbox0[(t1 >> 16) & mask8]) << 16 | + (_sbox0[(t2 >> 8) & mask8]) << 8 | + (_sbox0[t3 & mask8]); + + s1 = (_sbox0[t1 >> 24] << 24) | + (_sbox0[(t2 >> 16) & mask8]) << 16 | + (_sbox0[(t3 >> 8) & mask8]) << 8 | + (_sbox0[t0 & mask8]); + + s2 = (_sbox0[t2 >> 24] << 24) | + (_sbox0[(t3 >> 16) & mask8]) << 16 | + (_sbox0[(t0 >> 8) & mask8]) << 8 | + (_sbox0[t1 & mask8]); + + s3 = (_sbox0[t3 >> 24] << 24) | + (_sbox0[(t0 >> 16) & mask8]) << 16 | + (_sbox0[(t1 >> 8) & mask8]) << 8 | + (_sbox0[t2 & mask8]); + + s0 ^= xk[k + 0]; + s1 ^= xk[k + 1]; + s2 ^= xk[k + 2]; + s3 ^= xk[k + 3]; + + writeUint32BE(s0, dst, 0); + writeUint32BE(s1, dst, 4); + writeUint32BE(s2, dst, 8); + writeUint32BE(s3, dst, 12); + } + + void decryptBlock(List xk, List src, List dst) { + int s0 = readUint32BE(src, 0); + int s1 = readUint32BE(src, 4); + int s2 = readUint32BE(src, 8); + int s3 = readUint32BE(src, 12); + + /// First round just XORs input with key. + s0 ^= xk[0]; + s1 ^= xk[1]; + s2 ^= xk[2]; + s3 ^= xk[3]; + + int t0 = 0, t1 = 0, t2 = 0, t3 = 0; + + /// Middle rounds shuffle using tables. + /// Number of rounds is set by the length of the expanded key. + final nr = xk.length ~/ 4 - 2; // - 2: one above, one more below + int k = 4; + + for (int r = 0; r < nr; r++) { + t0 = xk[k + 0] ^ + _td0[(s0 >> 24) & mask8] ^ + _td1[(s3 >> 16) & mask8] ^ + _td2[(s2 >> 8) & mask8] ^ + _td3[s1 & mask8]; + + t1 = xk[k + 1] ^ + _td0[(s1 >> 24) & mask8] ^ + _td1[(s0 >> 16) & mask8] ^ + _td2[(s3 >> 8) & mask8] ^ + _td3[s2 & mask8]; + + t2 = xk[k + 2] ^ + _td0[(s2 >> 24) & mask8] ^ + _td1[(s1 >> 16) & mask8] ^ + _td2[(s0 >> 8) & mask8] ^ + _td3[s3 & mask8]; + + t3 = xk[k + 3] ^ + _td0[(s3 >> 24) & mask8] ^ + _td1[(s2 >> 16) & mask8] ^ + _td2[(s1 >> 8) & mask8] ^ + _td3[s0 & mask8]; + + k += 4; + s0 = t0; + s1 = t1; + s2 = t2; + s3 = t3; + } + + /// Last round uses s-box directly and XORs to produce output. + s0 = (_sbox1[t0 >> 24] << 24) | + (_sbox1[(t3 >> 16) & mask8]) << 16 | + (_sbox1[(t2 >> 8) & mask8]) << 8 | + (_sbox1[t1 & mask8]); + + s1 = (_sbox1[t1 >> 24] << 24) | + (_sbox1[(t0 >> 16) & mask8]) << 16 | + (_sbox1[(t3 >> 8) & mask8]) << 8 | + (_sbox1[t2 & mask8]); + + s2 = (_sbox1[t2 >> 24] << 24) | + (_sbox1[(t1 >> 16) & mask8]) << 16 | + (_sbox1[(t0 >> 8) & mask8]) << 8 | + (_sbox1[t3 & mask8]); + + s3 = (_sbox1[t3 >> 24] << 24) | + (_sbox1[(t2 >> 16) & mask8]) << 16 | + (_sbox1[(t1 >> 8) & mask8]) << 8 | + (_sbox1[t0 & mask8]); + + s0 ^= xk[k + 0]; + s1 ^= xk[k + 1]; + s2 ^= xk[k + 2]; + s3 ^= xk[k + 3]; + + writeUint32BE(s0, dst, 0); + writeUint32BE(s1, dst, 4); + writeUint32BE(s2, dst, 8); + writeUint32BE(s3, dst, 12); + } +} diff --git a/lib/crypto/crypto/aes/padding.dart b/lib/crypto/crypto/aes/padding.dart new file mode 100644 index 0000000..944b9f2 --- /dev/null +++ b/lib/crypto/crypto/aes/padding.dart @@ -0,0 +1,113 @@ +/// Enumeration representing various padding algorithms for block ciphers. +enum PaddingAlgorithm { pkcs7, iso7816, x923 } + +/// A utility class for adding and removing padding for block ciphers. +class BlockCipherPadding { + /// Adds padding to the provided data to match the specified block size. + /// + /// This method adds padding to the input data to make its length a multiple of the specified block size. + /// The padding style can be selected from the available padding algorithms. + /// + /// Parameters: + /// - `dataToPad`: The input data to be padded. + /// - `blockSize`: The desired block size for the data. + /// - `style`: The padding style, which can be one of the PaddingAlgorithm values (default is pkcs7). + /// + /// Returns: + /// - A new `List` containing the input data with the added padding. + static List pad(List dataToPad, int blockSize, + {PaddingAlgorithm style = PaddingAlgorithm.pkcs7}) { + int paddingLen = blockSize - dataToPad.length % blockSize; + List padding; + + if (style == PaddingAlgorithm.pkcs7) { + padding = List.filled(paddingLen, 0); + for (int i = 0; i < paddingLen; i++) { + padding[i] = paddingLen; + } + } else if (style == PaddingAlgorithm.x923) { + padding = List.filled(paddingLen, 0); + for (int i = 0; i < paddingLen - 1; i++) { + padding[i] = 0; + } + padding[paddingLen - 1] = paddingLen; + } else { + padding = List.filled(paddingLen, 0); + padding[0] = 128; + for (int i = 1; i < paddingLen; i++) { + padding[i] = 0; + } + } + + List result = List.filled(dataToPad.length + paddingLen, 0); + result.setAll(0, dataToPad); + result.setAll(dataToPad.length, padding); + + return result; + } + + /// Removes padding from the provided data. + /// + /// This method removes padding from the input data, assuming it follows a specific padding style. + /// + /// Parameters: + /// - `paddedData`: The padded data from which padding will be removed. + /// - `blockSize`: The block size used for padding. + /// - `style`: The padding style, which can be one of the PaddingAlgorithm values (default is pkcs7). + /// + /// Returns: + /// - A new `List` containing the input data with padding removed. + /// + /// Throws: + /// - `Exception` for various scenarios, such as incorrect padding or zero-length input. + static List unpad(List paddedData, int blockSize, + {PaddingAlgorithm style = PaddingAlgorithm.pkcs7}) { + int paddedDataLen = paddedData.length; + + if (paddedDataLen == 0) { + throw Exception('Zero-length input cannot be unpadded'); + } + + if (paddedDataLen % blockSize != 0) { + throw Exception('Input data is not padded'); + } + + int paddingLen; + + if (style == PaddingAlgorithm.pkcs7 || style == PaddingAlgorithm.x923) { + paddingLen = paddedData[paddedDataLen - 1]; + if (paddingLen < 1 || paddingLen > blockSize) { + throw Exception('incorrect padding'); + } + + if (style == PaddingAlgorithm.pkcs7) { + for (int i = 1; i <= paddingLen; i++) { + if (paddedData[paddedDataLen - i] != paddingLen) { + throw Exception('incorrect padding'); + } + } + } else { + for (int i = 1; i < paddingLen; i++) { + if (paddedData[paddedDataLen - i - 1] != 0) { + throw Exception('incorrect padding'); + } + } + } + } else { + int index = paddedData.lastIndexOf(128); + if (index < 0) { + throw Exception('incorrect padding'); + } + paddingLen = paddedDataLen - index; + if (paddingLen < 1 || paddingLen > blockSize) { + throw Exception('incorrect padding'); + } + for (int i = 1; i < paddingLen; i++) { + if (paddedData[index + i] != 0) { + throw Exception('incorrect padding'); + } + } + } + return paddedData.sublist(0, paddedDataLen - paddingLen); + } +} diff --git a/lib/crypto/crypto/blockcipher/blockcipher.dart b/lib/crypto/crypto/blockcipher/blockcipher.dart new file mode 100644 index 0000000..a633891 --- /dev/null +++ b/lib/crypto/crypto/blockcipher/blockcipher.dart @@ -0,0 +1,41 @@ +/// An abstract class representing a block cipher for symmetric encryption and decryption. +/// +/// Block ciphers operate on fixed-size blocks of data, typically 128 bits (16 bytes) for AES. +/// They provide methods for key initialization, encryption, decryption, and memory cleanup. +/// +/// Subclasses of this abstract class implement specific block cipher algorithms and provide +/// methods for encryption and decryption of data. +/// +/// Key Initialization: +/// - The `setKey` method is used to initialize the cipher with an encryption key. +/// +/// Encryption and Decryption: +/// - The `encryptBlock` method encrypts a single block of data. +/// - The `decryptBlock` method decrypts a single block of data. +/// +/// Block Size: +/// - The `blockSize` property returns the size of the data block in bytes that the cipher operates on. +/// +/// Memory Cleanup: +/// - The `clean` method can be used to securely zero any sensitive information or states held by +/// the block cipher instance, ensuring that no secrets are left in memory after use. +/// +/// Note: This abstract class serves as a foundation for various block ciphers and should be +/// extended to support specific algorithms such as AES or DES. +abstract class BlockCipher { + /// Returns the size of the data block in bytes that the cipher operates on. + int get blockSize; + + /// Initializes the cipher with the provided encryption key. + BlockCipher setKey(List key); + + /// Encrypts a single block of data. + List encryptBlock(List src, [List? dst]); + + /// Decrypts a single block of data. + List decryptBlock(List src, [List? dst]); + + /// Clears any sensitive information or states held by the block cipher instance, ensuring + /// that no secrets are left in memory after use. + BlockCipher clean(); +} diff --git a/lib/crypto/crypto/cdsa/cdsa.dart b/lib/crypto/crypto/cdsa/cdsa.dart new file mode 100644 index 0000000..21168ba --- /dev/null +++ b/lib/crypto/crypto/cdsa/cdsa.dart @@ -0,0 +1,27 @@ +/// The 'cdsa' library provides tools and components for working with various cryptographic +/// algorithms, including elliptic curve cryptography (ECDSA and EDDSA) and related functionality. +library cdsa; + +/// Export statement for cryptographic curve definitions. +export 'curve/curves.dart'; + +/// Export statement for ECDSA (Elliptic Curve Digital Signature Algorithm) private and +/// public key components, as well as signature functionality. +export 'ecdsa/private_key.dart'; +export 'ecdsa/public_key.dart'; +export 'ecdsa/signature.dart'; + +/// Export statement for EDDSA (Edwards-curve Digital Signature Algorithm) private and +/// public key components. +export 'eddsa/privatekey.dart'; +export 'eddsa/publickey.dart'; + +/// Export statements for elliptic curve point representations, including Edwards +/// and projective points. +export 'point/edwards.dart'; +export 'point/point.dart'; +export 'point/ec_projective_point.dart'; + +/// Export statement for RFC 6979, which provides deterministic ECDSA signatures, +/// allowing for secure signature generation. +export 'rfc6979/rfc6979.dart'; diff --git a/lib/crypto/crypto/cdsa/curve/curve.dart b/lib/crypto/crypto/cdsa/curve/curve.dart new file mode 100644 index 0000000..39cca2b --- /dev/null +++ b/lib/crypto/crypto/cdsa/curve/curve.dart @@ -0,0 +1,125 @@ +import 'package:blockchain_utils/numbers/bigint_utils.dart'; + +/// This class represents a finite field elliptic curve defined over a prime field (Fp). +class CurveFp extends Curve { + /// Prime field modulus + CurveFp( + {required this.p, + required this.a, + required this.b, + required this.h, + required BigInt order}); + + /// Prime field modulus + @override + final BigInt p; + + /// Coefficient 'a' in the elliptic curve equation + @override + final BigInt a; + + /// Coefficient 'b' in the elliptic curve equation + final BigInt b; + + /// // Optional cofactor 'h' + final BigInt? h; + + /// Get the cofactor 'h' value + BigInt? cofactor() => h; + + /// Check if a given point (x, y) lies on the curve + bool containsPoint(BigInt x, BigInt y) { + BigInt leftSide = (y * y - ((x * x + a) * x + b)) % p; + + return leftSide == BigInt.zero; + } + + /// Check if two CurveFp objects are equal based on their properties + @override + operator ==(other) { + if (other is CurveFp) { + return (p == other.p && a == other.a && b == other.b && h == other.h); + } + return false; + } + + /// Calculate the hash code of the CurveFp object + @override + int get hashCode => Object.hash(p, a, b, h); + + /// Get the length of the base point in the curve + @override + int get baselen => BigintUtils.orderLen(p); + + @override + int get verifyingKeyLength => throw UnimplementedError(); +} + +/// This class represents a twisted Edwards elliptic curve defined over a prime field. +class CurveED extends Curve { + /// Prime field modulus + CurveED( + {required this.p, + required this.a, + required this.d, + required this.h, + required BigInt order}); + + /// Prime field modulus + @override + final BigInt p; + + /// Coefficient 'a' in the twisted Edwards curve equation + @override + final BigInt a; + + /// Coefficient 'd' in the twisted Edwards curve equation + final BigInt d; + + /// Cofactor 'h' + final BigInt h; + + /// Get the cofactor 'h' value + BigInt cofactor() => h; + + /// Check if a given point (x, y) lies on the curve + bool containsPoint(BigInt x, BigInt y) { + BigInt leftSide = (a * x * x + y * y - BigInt.one - d * x * x * y * y) % p; + return leftSide == BigInt.zero; + } + + /// Check if two CurveED objects are equal based on their properties + @override + operator ==(other) { + if (other is CurveED) { + return (p == other.p && a == other.a && d == other.d && h == other.h); + } + return false; + } + + /// Calculate the hash code of the CurveED object + @override + int get hashCode => p.hashCode ^ d.hashCode ^ h.hashCode ^ a.hashCode; + + /// Get the length of the base point in the curve + @override + int get baselen => ((p.bitLength + 1 + 7) ~/ 8); + + @override + int get verifyingKeyLength => baselen; +} + +/// This is an abstract base class for elliptic curves. +abstract class Curve { + /// Prime field modulus + BigInt get p; + + /// Coefficient 'a' in the elliptic curve equation + BigInt get a; + + /// Get the length of the base point in the curve + int get baselen; + + /// Get the length of the verifying key in the curve + int get verifyingKeyLength; +} diff --git a/lib/crypto/crypto/cdsa/curve/curves.dart b/lib/crypto/crypto/cdsa/curve/curves.dart new file mode 100644 index 0000000..acc1f7f --- /dev/null +++ b/lib/crypto/crypto/cdsa/curve/curves.dart @@ -0,0 +1,161 @@ +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/ec_projective_point.dart'; + +import 'curve.dart'; + +/// This class provides a collection of predefined elliptic curves for various cryptographic applications. +class Curves { + /// Define a curve for Ed25519 elliptic cryptography + static final curveEd25519 = CurveED( + p: BigInt.parse( + "57896044618658097711785492504343953926634992332820282019728792003956564819949"), + a: BigInt.from(-1), + d: BigInt.parse( + "37095705934669439343138083508754565189542113879843219016388785533085940283555"), + h: BigInt.from(8), + order: BigInt.parse( + "7237005577332262213973186563042994240857116359379907606001950938285454250989")); + + /// Define the generator point for Ed25519 + static final generatorED25519 = EDPoint( + curve: curveEd25519, + x: BigInt.parse( + "15112221349535400772501151409588531511454012693041857206046113283949847762202"), + y: BigInt.parse( + "46316835694926478169428394003475163141307993866256225615783033603165251855960"), + z: BigInt.one, + t: BigInt.parse( + "46827403850823179245072216630277197565144205554125654976674165829533817101731"), + order: BigInt.parse( + "7237005577332262213973186563042994240857116359379907606001950938285454250989"), + generator: true); + + /// Define a curve for Secp256k1 elliptic cryptography + static final curveSecp256k1 = CurveFp( + p: BigInt.parse( + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F", + radix: 16), + a: BigInt.zero, + b: BigInt.from(7), + h: BigInt.one, + order: BigInt.parse( + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", + radix: 16)); + + /// Define the generator point for Secp256k1 + static final generatorSecp256k1 = ProjectiveECCPoint( + curve: curveSecp256k1, + x: BigInt.parse( + "79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798", + radix: 16), + y: BigInt.parse( + "483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8", + radix: 16, + ), + z: BigInt.one, + order: BigInt.parse( + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", + radix: 16), + generator: true); + + /// Define a curve for the 192-bit prime field + static final curve192 = CurveFp( + p: BigInt.parse( + "6277101735386680763835789423207666416083908700390324961279"), + a: BigInt.from(-3), + b: BigInt.parse( + "2455155546008943817740293915197451784769108058161191238065"), + h: BigInt.one, + order: BigInt.parse( + "6277101735386680763835789423176059013767194773182842284081")); + + /// Define the generator point for the 192-bit prime field + static final generator192 = ProjectiveECCPoint( + curve: curve192, + x: BigInt.parse( + "602046282375688656758213480587526111916698976636884684818"), + y: BigInt.parse( + "174050332293622031404857552280219410364023488927386650641"), + z: BigInt.one, + order: BigInt.parse( + "6277101735386680763835789423176059013767194773182842284081"), + generator: true); + + /// Define a curve for the 224-bit prime field + static final curve224 = CurveFp( + p: BigInt.parse( + "26959946667150639794667015087019630673557916260026308143510066298881"), + a: BigInt.from(-3), + b: BigInt.parse( + "B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4", + radix: 16), + h: BigInt.one, + order: BigInt.parse( + "26959946667150639794667015087019625940457807714424391721682722368061")); + + /// Define the generator point for the 224-bit prime field + static final generator224 = ProjectiveECCPoint( + curve: curve224, + x: BigInt.parse( + "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21", + radix: 16), + y: BigInt.parse( + "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34", + radix: 16), + z: BigInt.one, + generator: true, + order: BigInt.parse( + "26959946667150639794667015087019625940457807714424391721682722368061")); + + /// Define a curve for Ed448 elliptic cryptography + static final curveEd448 = CurveED( + p: BigInt.parse( + "726838724295606890549323807888004534353641360687318060281490199180612328166730772686396383698676545930088884461843637361053498018365439"), + a: BigInt.one, + d: BigInt.parse( + "726838724295606890549323807888004534353641360687318060281490199180612328166730772686396383698676545930088884461843637361053498018326358"), + h: BigInt.from(4), + order: BigInt.parse( + "181709681073901722637330951972001133588410340171829515070372549795146003961539585716195755291692375963310293709091662304773755859649779")); + + /// Define the generator point for Ed448 + static final generatorEd448 = EDPoint( + curve: curveEd448, + generator: true, + order: BigInt.parse( + "181709681073901722637330951972001133588410340171829515070372549795146003961539585716195755291692375963310293709091662304773755859649779"), + x: BigInt.parse( + "224580040295924300187604334099896036246789641632564134246125461686950415467406032909029192869357953282578032075146446173674602635247710"), + y: BigInt.parse( + "298819210078481492676017930443930673437544040154080242095928241372331506189835876003536878655418784733982303233503462500531545062832660"), + z: BigInt.one, + t: BigInt.parse( + "566053928361835949852834778149687438525473724399248069152339054586912418998433999863114841018499380965114687248170942704967194566956531"), + ); + + /// Define a curve for the 256-bit prime field + static final CurveFp curve256 = CurveFp( + p: BigInt.parse( + "115792089210356248762697446949407573530086143415290314195533631308867097853951"), + a: BigInt.from(-3), + b: BigInt.parse( + "5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B", + radix: 16), + h: BigInt.one, + order: BigInt.parse( + "115792089210356248762697446949407573529996955224135760342422259061068512044369")); + + /// Define the generator point for the 256-bit prime field + static final ProjectiveECCPoint generator256 = ProjectiveECCPoint( + curve: curve256, + x: BigInt.parse( + "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296", + radix: 16), + y: BigInt.parse( + "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5", + radix: 16), + z: BigInt.one, + generator: true, + order: BigInt.parse( + "115792089210356248762697446949407573529996955224135760342422259061068512044369")); +} diff --git a/lib/crypto/crypto/cdsa/ecdsa/private_key.dart b/lib/crypto/crypto/cdsa/ecdsa/private_key.dart new file mode 100644 index 0000000..458344c --- /dev/null +++ b/lib/crypto/crypto/cdsa/ecdsa/private_key.dart @@ -0,0 +1,92 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/ecdsa/signature.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/ec_projective_point.dart'; +import 'public_key.dart'; + +/// Represents an ECDSA (Elliptic Curve Digital Signature Algorithm) private key. +class ECDSAPrivateKey { + final ECDSAPublicKey publicKey; + final BigInt secretMultiplier; + + /// Converts the private key to bytes. + /// + /// Returns: + /// A byte representation of the private key. + /// + List toBytes() { + final tob = BigintUtils.toBytes(secretMultiplier, + length: publicKey.generator.curve.baselen); + return tob; + } + + /// Creates an ECDSA private key from bytes. + /// + /// Parameters: + /// - bytes: A byte representation of the private key. + /// - curve: The elliptic curve used for the key pair. + /// + /// Returns: + /// An ECDSA private key. + /// + factory ECDSAPrivateKey.fromBytes(List bytes, ProjectiveECCPoint curve) { + if (bytes.length != curve.curve.baselen) { + throw ArgumentError("Invalid length of private key"); + } + final secexp = BigintUtils.fromBytes(bytes, byteOrder: Endian.big); + final ECDSAPublicKey publicKey = ECDSAPublicKey(curve, curve * secexp); + return ECDSAPrivateKey._(publicKey, secexp); + } + + ECDSAPrivateKey._(this.publicKey, this.secretMultiplier); + + @override + bool operator ==(other) { + if (other is ECDSAPrivateKey) { + return publicKey == other.publicKey && + secretMultiplier == other.secretMultiplier; + } + return false; + } + + /// Signs a hash value using the private key. + /// + /// Parameters: + /// - hash: A hash value of the message to be signed. + /// - randomK: A random value for signature generation. + /// + /// Returns: + /// An ECDSA signature. + /// + ECDSASignature sign(BigInt hash, BigInt randomK) { + BigInt n = publicKey.generator.order!; + BigInt k = randomK % n; + BigInt ks = k + n; + BigInt kt = ks + n; + + BigInt r; + if (ks.bitLength == n.bitLength) { + r = (publicKey.generator * kt).x % n; + } else { + r = (publicKey.generator * ks).x % n; + } + + if (r == BigInt.zero) { + throw StateError("unlucky random number r"); + } + + BigInt s = + (BigintUtils.inverseMod(k, n) * (hash + (secretMultiplier * r) % n)) % + n; + + if (s == BigInt.zero) { + throw StateError("unlucky random number s"); + } + + return ECDSASignature(r, s); + } + + @override + int get hashCode => secretMultiplier.hashCode ^ publicKey.hashCode; +} diff --git a/lib/crypto/crypto/cdsa/ecdsa/public_key.dart b/lib/crypto/crypto/cdsa/ecdsa/public_key.dart new file mode 100644 index 0000000..e49c781 --- /dev/null +++ b/lib/crypto/crypto/cdsa/ecdsa/public_key.dart @@ -0,0 +1,82 @@ +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/ecdsa/signature.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/base.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/ec_projective_point.dart'; + +/// Represents an ECDSA (Elliptic Curve Digital Signature Algorithm) public key. +class ECDSAPublicKey { + final ProjectiveECCPoint generator; + final AbstractPoint point; + + /// Creates an ECDSA public key with a generator and a point. + /// + /// Parameters: + /// - generator: The generator point for the elliptic curve. + /// - point: The public key point. + /// - verify: Set to `true` to verify that the point is on the curve and + /// has a valid order (default is `true`). + /// + ECDSAPublicKey(this.generator, this.point, {bool verify = true}) { + final curve = generator.curve; + final n = generator.order; + final p = curve.p; + + if (!(BigInt.zero <= point.x && point.x < p) || + !(BigInt.zero <= point.y && point.y < p)) { + throw ArgumentError("The public point has x or y out of range."); + } + + if (verify && !curve.containsPoint(point.x, point.y)) { + throw ArgumentError("AffinePointt does not lay on the curve"); + } + + if (n == null) { + throw ArgumentError("Generator point must have order."); + } + + if (verify && curve.cofactor() != BigInt.one && !(point * n).isInfinity) { + throw ArgumentError("Generator point order is bad."); + } + } + + @override + bool operator ==(Object other) { + if (other is ECDSAPublicKey) { + return generator.curve == other.generator.curve && point == other.point; + } + return false; + } + + /// Verifies an ECDSA signature against a hash value. + /// + /// Parameters: + /// - hash: A hash value of the message to be verified. + /// - signature: An ECDSA signature to be verified. + /// + /// Returns: + /// `true` if the signature is valid, `false` otherwise. + /// + bool verifies(BigInt hash, ECDSASignature signature) { + final ProjectiveECCPoint G = generator; + final BigInt n = G.order!; + final r = signature.r; + final s = signature.s; + + if (r < BigInt.one || r > n - BigInt.one) { + return false; + } + + if (s < BigInt.one || s > n - BigInt.one) { + return false; + } + final c = BigintUtils.inverseMod(s, n); + final u1 = (hash * c) % n; + final u2 = (r * c) % n; + final xy = G.mulAdd(u1, point, u2); + final v = xy.x % n; + return v == r; + } + + @override + int get hashCode => generator.hashCode ^ point.hashCode; +} diff --git a/lib/crypto/crypto/cdsa/ecdsa/signature.dart b/lib/crypto/crypto/cdsa/ecdsa/signature.dart new file mode 100644 index 0000000..824a172 --- /dev/null +++ b/lib/crypto/crypto/cdsa/ecdsa/signature.dart @@ -0,0 +1,62 @@ +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/ecdsa/public_key.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/ec_projective_point.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/utils/utils.dart'; + +/// Represents an ECDSA (Elliptic Curve Digital Signature Algorithm) signature +/// containing `r` and `s` components. +class ECDSASignature { + final BigInt r; + final BigInt s; + + /// Creates an ECDSA signature with `r` and `s` components. + /// + /// Parameters: + /// - r: The `r` component of the signature. + /// - s: The `s` component of the signature. + /// + ECDSASignature(this.r, this.s); + @override + String toString() { + return "($r, $s)"; + } + + /// Recovers public keys from the ECDSA signature and a hash of the message. + /// + /// This method attempts to recover the public keys associated with the private + /// key used to create this signature. It returns a list of possible public keys. + /// + /// Parameters: + /// - hash: A hash of the message to be verified. + /// - generator: The generator point for the elliptic curve. + /// + /// Returns: + /// A list of recovered ECDSAPublicKey objects. + /// + List recoverPublicKeys( + List hash, ProjectiveECCPoint generator) { + final curve = generator.curve; + final n = generator.order; + final e = BigintUtils.fromBytes(hash); + + final x = r; + + final alpha = + (x.modPow(BigInt.from(3), curve.p) + curve.a * x + curve.b) % curve.p; + final beta = ECDSAUtils.modularSquareRootPrime(alpha, curve.p); + final y = (beta % BigInt.two == BigInt.zero) ? beta : (curve.p - beta); + + final r1 = + ProjectiveECCPoint(curve: curve, x: x, y: y, z: BigInt.one, order: n); + final q1 = + (r1 * s) + (generator * (-e % n!)) * BigintUtils.inverseMod(r, n); + final pk1 = ECDSAPublicKey(generator, q1); + + final r2 = + ProjectiveECCPoint(curve: curve, x: x, y: -y, z: BigInt.one, order: n); + final q2 = (r2 * s) + (generator * (-e % n)) * BigintUtils.inverseMod(r, n); + final pk2 = ECDSAPublicKey(generator, q2); + + return [pk1, pk2]; + } +} diff --git a/lib/crypto/crypto/cdsa/eddsa/privatekey.dart b/lib/crypto/crypto/cdsa/eddsa/privatekey.dart new file mode 100644 index 0000000..6b720da --- /dev/null +++ b/lib/crypto/crypto/cdsa/eddsa/privatekey.dart @@ -0,0 +1,158 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/eddsa/publickey.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// Represents an EdDSA private key and provides methods for key operations. +class EDDSAPrivateKey { + final EDPoint generator; + final int baselen; + late final List _privateKey; + late final List _h; + EDDSAPublicKey? _publicKey; + late final BigInt _s; + final bool isKhalow; + + /// Creates an EdDSA private key from a random value using a provided hash method. + /// + /// The private key is generated from the provided hash method and the provided + /// random value. It prunes the key for improved security. + /// + /// Parameters: + /// - generator: The Edwards curve generator point. + /// - privateKey: The private key bytes. + /// - hashMethod: A serializable hash function for key generation. + /// + /// Throws: + /// - ArgumentError: If the private key size is invalid. + /// + EDDSAPrivateKey( + this.generator, + List privateKey, + SerializableHash Function() hashMethod, + ) : baselen = (generator.curve.p.bitLength + 1 + 7) ~/ 8, + isKhalow = false { + if (privateKey.length != baselen) { + throw ArgumentError( + 'Incorrect size of private key, expected: $baselen bytes'); + } + + _privateKey = List.from(privateKey); + _h = hashMethod().update(privateKey).digest(); + final a = _h.sublist(0, baselen); + final prunedKey = _keyPrune(List.from(a)); + _s = BigintUtils.fromBytes(prunedKey, byteOrder: Endian.little); + } + + /// Creates an EdDSA private key from a private key value for Khalow curves. + /// + /// This constructor is specifically used for Khalow curves where the private + /// key is not pruned. It creates the private key from the provided private key value. + /// + /// Parameters: + /// - generator: The Edwards curve generator point. + /// - privateKey: The private key bytes for Khalow curves. + /// + /// Throws: + /// - ArgumentError: If the private key size is invalid. + /// + EDDSAPrivateKey.fromKhalow( + this.generator, + List privateKey, + ) : baselen = (generator.curve.p.bitLength + 1 + 7) ~/ 8, + isKhalow = true { + if (privateKey.length != baselen) { + throw ArgumentError( + 'Incorrect size of private key, expected: $baselen bytes'); + } + _privateKey = privateKey; + _s = BigintUtils.fromBytes(_privateKey, byteOrder: Endian.little); + } + + /// Retrieves the private key bytes. + List get privateKey => List.from(_privateKey); + + @override + bool operator ==(Object other) { + if (other is EDDSAPrivateKey) { + return generator.curve == other.generator.curve && + bytesEqual(_privateKey, other._privateKey); + } + return false; + } + + /// Prunes the key to achieve improved security. + List _keyPrune(List key) { + final h = generator.curve.cofactor(); + int hLog; + if (h == BigInt.from(4)) { + hLog = 2; + } else if (h == BigInt.from(8)) { + hLog = 3; + } else { + throw ArgumentError('Only cofactor 4 and 8 curves are supported'); + } + key[0] &= ~((1 << hLog) - 1); + + final l = generator.curve.p.bitLength; + if (l % 8 == 0) { + key[key.length - 1] = 0; + key[key.length - 2] |= 0x80; + } else { + key[key.length - 1] = + key[key.length - 1] & ((1 << (l % 8)) - 1) | (1 << (l % 8) - 1); + } + return key; + } + + /// Retrieves the public key associated with this private key. + EDDSAPublicKey publicKey() { + if (_publicKey != null) { + return _publicKey!; + } + final publicPoint = generator * _s; + _publicKey ??= EDDSAPublicKey(generator, publicPoint.toBytes(), + publicPoint: publicPoint); + return _publicKey!; + } + + /// Signs the provided data using this private key. + List sign( + List data, + SerializableHash Function() hashMethod, + ) { + final A = publicKey().publicKey(); + final prefix = _h.sublist(baselen); + List dom = List.empty(); + if (generator.curve == Curves.curveEd448) { + dom = List.from([...'SigEd448'.codeUnits, 0x00, 0x00]); + } + + final r = BigintUtils.fromBytes( + hashMethod() + .update(List.from([...dom, ...prefix, ...data])) + .digest(), + byteOrder: Endian.little); + final R = (generator * r).toBytes(); + + BigInt k = BigintUtils.fromBytes( + hashMethod() + .update(List.from([...dom, ...R, ...A, ...data])) + .digest(), + byteOrder: Endian.little); + + k %= generator.order!; + final s = (r + k * _s) % generator.order!; + return List.from([ + ...R, + ...BigintUtils.toBytes(s, length: baselen, order: Endian.little) + ]); + } + + @override + int get hashCode => _privateKey.hashCode ^ generator.hashCode; +} diff --git a/lib/crypto/crypto/cdsa/eddsa/publickey.dart b/lib/crypto/crypto/cdsa/eddsa/publickey.dart new file mode 100644 index 0000000..da02663 --- /dev/null +++ b/lib/crypto/crypto/cdsa/eddsa/publickey.dart @@ -0,0 +1,181 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// Represents an EdDSA public key in the Edwards curve format. +class EDDSAPublicKey { + /// The generator point associated with this public key. + final EDPoint generator; + + /// The encoded form of the public key. + final List _encoded; + + /// The length of the base data used in encoding. + late final int baselen; + + /// The Edwards curve point derived from the encoded public key. + late final EDPoint _point; + + /// Creates an EdDSA public key from a generator, encoded public key bytes, and an optional public point. + /// + /// This constructor initializes an EdDSA public key using the provided generator, + /// encoded public key bytes, and an optional public point. It calculates the length + /// of the base data and ensures that the size of the encoded public key matches the + /// expected size based on the generator's curve. If no public point is provided, + /// the constructor attempts to create one from the encoded public key bytes. + /// + /// Parameters: + /// - generator: The generator point associated with this public key. + /// - publicKey: The encoded form of the public key as bytes. + /// - publicPoint: An optional Edwards curve point (if already available). + /// + /// Throws: + /// - ArgumentError: If the size of the encoded public key does not match the + /// expected size based on the generator's curve. + /// + /// Details: + /// - The constructor performs initialization and validation of the public key + /// components. It ensures that the encoded public key's size matches the + /// expected size for the associated curve. + /// - If the public point is not provided, the constructor attempts to create + /// it from the encoded public key bytes. + /// + /// Note: This constructor is used to create EdDSA public keys from the generator + /// and encoded public key bytes, making them ready for cryptographic operations. + /// The public point can be optionally provided if it is already available. + EDDSAPublicKey(this.generator, List publicKey, {EDPoint? publicPoint}) + : _encoded = publicKey { + baselen = (generator.curve.p.bitLength + 1 + 7) ~/ 8; + + if (publicKey.length != baselen) { + throw ArgumentError( + 'Incorrect size of the public key, expected: $baselen bytes'); + } + + _point = (publicPoint ?? + EDPoint.fromBytes(curve: generator.curve, data: publicKey)); + } + + /// Creates an EdDSA public key from a generator and an existing public point. + /// + /// This constructor initializes an EdDSA public key using the provided generator + /// and an existing public point. It calculates the length of the base data and ensures + /// that the size of the encoded public key bytes extracted from the public point + /// matches the expected size based on the generator's curve. + /// + /// Parameters: + /// - generator: The generator point associated with this public key. + /// - publicPoint: An existing Edwards curve public point. + /// + /// Throws: + /// - ArgumentError: If the size of the encoded public key extracted from the public + /// point does not match the expected size based on the generator's curve. + /// + /// Details: + /// - The constructor initializes the public key using an existing public point, + /// and it calculates the base data length and validates the size of the + /// encoded public key bytes. + /// + /// Note: This constructor is used when you have an existing public point and want + /// to create an EdDSA public key from it. It performs necessary validation + /// and prepares the public key for cryptographic operations. + EDDSAPublicKey.fromPoint( + this.generator, + EDPoint publicPoint, + ) : _encoded = publicPoint.toBytes() { + baselen = (generator.curve.p.bitLength + 1 + 7) ~/ 8; + + if (_encoded.length != baselen) { + throw ArgumentError( + 'Incorrect size of the public key, expected: $baselen bytes'); + } + + _point = publicPoint; + } + + @override + bool operator ==(other) { + if (other is EDDSAPublicKey) { + return generator.curve == other.generator.curve && + bytesEqual(_encoded, other._encoded); + } + return false; + } + + /// Retrieves the public key as an Edwards curve point. + EDPoint get point => _point; + + /// Retrieves the public key as an Edwards curve point. + EDPoint publicPoint() => _point; + + /// Retrieves the encoded public key as bytes. + List publicKey() => _encoded; + + /// Verifies a signature against the provided data using this public key. + /// + /// This method verifies an EdDSA signature against the given data using this + /// public key. It checks the validity of the signature by comparing it to the + /// data, the encoded public key, and the associated hash function. + /// + /// Parameters: + /// - data: The data to be verified. + /// - signature: The EdDSA signature bytes to be verified. + /// - hashMethod: A serializable hash function for data hashing. + /// + /// Returns: + /// - bool: True if the signature is valid; otherwise, false. + /// + /// Throws: + /// - ArgumentError: If the signature length is invalid or if the signature is + /// found to be invalid during the verification process. + /// + /// Details: + /// - This method verifies the provided EdDSA signature by checking its length + /// and comparing it to the encoded public key, data, and a hash of the combined + /// values. + /// - It calculates a verification key 'R' and uses the hash function to compute + /// the scalar 'k' to confirm the signature's validity. + /// + /// Note: The 'verify' method is essential for verifying EdDSA signatures and ensuring + /// the authenticity and integrity of data. + bool verify( + List data, + List signature, + SerializableHash Function() hashMethod, + ) { + if (signature.length != 2 * baselen) { + throw ArgumentError( + 'Invalid signature length, expected: ${2 * baselen} bytes'); + } + + final R = EDPoint.fromBytes( + curve: generator.curve, data: signature.sublist(0, baselen)); + final S = BigintUtils.fromBytes(signature.sublist(baselen), + byteOrder: Endian.little); + + if (S >= generator.order!) { + throw ArgumentError('Invalid signature'); + } + + List dom = List.empty(); + + if (generator.curve == Curves.curveEd448) { + dom = List.from([...'SigEd448'.codeUnits, 0x00, 0x00]); + } + final h = hashMethod(); + h.update(List.from([...dom, ...R.toBytes(), ..._encoded, ...data])); + final k = BigintUtils.fromBytes(h.digest(), byteOrder: Endian.little); + if (generator * S != _point * k + R) { + throw ArgumentError('Invalid signature'); + } + + return true; + } + + @override + int get hashCode => generator.curve.hashCode ^ _encoded.hashCode; +} diff --git a/lib/crypto/crypto/cdsa/point/base.dart b/lib/crypto/crypto/cdsa/point/base.dart new file mode 100644 index 0000000..4621669 --- /dev/null +++ b/lib/crypto/crypto/cdsa/point/base.dart @@ -0,0 +1,248 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curve.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/utils/utils.dart'; + +/// An enumeration representing different types of encoding for elliptic curve points. +enum EncodeType { comprossed, hybrid, raw, uncompressed } + +/// An abstract class representing an elliptic curve point. +abstract class AbstractPoint { + /// Converts the elliptic curve point to a byte array with the specified encoding type. + /// The default encoding type is 'compressed'. + List toBytes([EncodeType encodeType = EncodeType.comprossed]) { + if (this is EDPoint) { + return _edwardsEncode(); + } + switch (encodeType) { + case EncodeType.raw: + return _encode(); + case EncodeType.uncompressed: + return List.from([0x04, ..._encode()]); + case EncodeType.hybrid: + return _hybridEncode(); + default: + return _compressedEncode(); + } + } + + /// Encodes the elliptic curve point as a hexadecimal string with the specified encoding type. + /// The default encoding type is 'compressed'. + String toHex([EncodeType encodeType = EncodeType.comprossed]) { + final bytes = toBytes(encodeType); + return BytesUtils.toHexString(bytes); + } + + /// Internal method to encode an Edwards curve point. + List _edwardsEncode() { + final ed = this as EDPoint; + ed.scale(); + final encLen = (curve.p.bitLength + 1 + 7) ~/ 8; + final yStr = BigintUtils.toBytes(y, length: encLen, order: Endian.little); + if (x % BigInt.two == BigInt.one) { + yStr[yStr.length - 1] |= 0x80; + } + return yStr; + } + + /// Internal method to encode an elliptic curve point in hybrid form. + List _hybridEncode() { + final raw = _encode(); + List prefix; + + if (y.isOdd) { + prefix = List.from([0x07]); + } else { + prefix = List.from([0x06]); + } + + List result = List.filled(prefix.length + raw.length, 0); + result.setAll(0, prefix); + result.setAll(prefix.length, raw); + + return result; + } + + /// Internal method to encode an elliptic curve point in compressed form. + List _compressedEncode() { + List xStr = + BigintUtils.toBytes(x, length: BigintUtils.orderLen(curve.p)); + List prefix; + if (y & BigInt.one != BigInt.zero) { + prefix = List.from([0x03]); + } else { + prefix = List.from([0x02]); + } + + List result = List.filled(prefix.length + xStr.length, 0); + result.setAll(0, prefix); + result.setAll(prefix.length, xStr); + + return result; + } + + /// Internal method to encode an elliptic curve point. + List _encode() { + final xBytes = + BigintUtils.toBytes(x, length: BigintUtils.orderLen(curve.p)); + final yBytes = + BigintUtils.toBytes(y, length: BigintUtils.orderLen(curve.p)); + return List.from([...xBytes, ...yBytes]); + } + + /// An abstract property representing the elliptic curve associated with the point. + abstract final Curve curve; + + /// A property indicating if the point is at infinity. + bool get isInfinity; + + /// A property representing the x-coordinate of the point. + BigInt get x; + + /// A property representing the y-coordinate of the point. + BigInt get y; + + /// A property representing the order of the point. + BigInt? get order; + + /// Multiplies the point by a scalar. + AbstractPoint operator *(BigInt other); + + /// Adds another point to this point. + AbstractPoint operator +(AbstractPoint other); + + /// Doubles a point + AbstractPoint doublePoint(); + + /// Creates an elliptic curve point from its byte representation. + static (BigInt, BigInt) fromBytes( + Curve curve, + List data, { + bool validateEncoding = true, + EncodeType? encodeType, + }) { + if (curve is CurveED) { + return _fromEdwards(curve, data); + } + final keyLen = data.length; + final rawEncodingLength = 2 * BigintUtils.orderLen(curve.p); + if (encodeType == null) { + if (keyLen == rawEncodingLength) { + encodeType = EncodeType.raw; + } else if (keyLen == rawEncodingLength + 1) { + final prefix = data[0]; + if (prefix == 0x04) { + encodeType = EncodeType.uncompressed; + } else if (prefix == 0x06 || prefix == 0x07) { + encodeType = EncodeType.hybrid; + } else { + throw ArgumentError("invalid key length"); + } + } else if (keyLen == rawEncodingLength ~/ 2 + 1) { + encodeType = EncodeType.comprossed; + } else { + throw ArgumentError("invalid key length"); + } + } + curve as CurveFp; + switch (encodeType) { + case EncodeType.comprossed: + return _fromCompressed(data, curve); + case EncodeType.uncompressed: + return _fromRawEncoding(data.sublist(1), rawEncodingLength); + case EncodeType.hybrid: + return _fromHybrid(data, rawEncodingLength); + default: + return _fromRawEncoding(data, rawEncodingLength); + } + } + + /// Creates an elliptic curve point from a byte representation using the Edwards curve. + static (BigInt, BigInt) _fromEdwards(CurveED curve, List data) { + data = List.from(data); + final p = curve.p; + final expLen = (p.bitLength + 1 + 7) ~/ 8; + + if (data.length != expLen) { + throw ArgumentError("AffinePointt length doesn't match the curve."); + } + + final x0 = (data[expLen - 1] & 0x80) >> 7; + data[expLen - 1] &= 0x80 - 1; + + final y = BigintUtils.fromBytes(data, byteOrder: Endian.little); + + final x2 = (y * y - BigInt.from(1)) * + BigintUtils.inverseMod( + curve.d * y * y - curve.a, + p, + ) % + p; + BigInt x = ECDSAUtils.modularSquareRootPrime(x2, p); + if (x.isOdd != (x0 == 1)) { + x = (-x) % p; + } + + return (x, y); + } + + /// Creates an elliptic curve point from a raw byte encoding. + static (BigInt, BigInt) _fromRawEncoding( + List data, int rawEncodingLength) { + assert(data.length == rawEncodingLength); + + final xs = data.sublist(0, rawEncodingLength ~/ 2); + final ys = data.sublist(rawEncodingLength ~/ 2); + + assert(xs.length == rawEncodingLength ~/ 2); + assert(ys.length == rawEncodingLength ~/ 2); + + final coordX = BigintUtils.fromBytes(xs); + final coordY = BigintUtils.fromBytes(ys); + + return (coordX, coordY); + } + + /// Creates an elliptic curve point from a compressed byte encoding. + static (BigInt, BigInt) _fromCompressed(List data, CurveFp curve) { + if (data[0] != 0x02 && data[0] != 0x03) { + throw ArgumentError('Malformed compressed point encoding'); + } + + final isEven = data[0] == 0x02; + final x = BigintUtils.fromBytes(data.sublist(1)); + final p = curve.p; + + final alpha = (x.modPow(BigInt.from(3), p) + curve.a * x + curve.b) % p; + + final beta = ECDSAUtils.modularSquareRootPrime(alpha, p); + final betaEven = (beta & BigInt.one == BigInt.zero) ? false : true; + if (isEven == betaEven) { + final y = p - beta; + return (x, y); + } else { + return (x, beta); + } + } + + /// Creates an elliptic curve point from a hybrid byte encoding. + static (BigInt, BigInt) _fromHybrid(List data, int rawEncodingLength) { + assert(data[0] == 0x06 || data[0] == 0x07); + + // Primarily use the uncompressed as it's easiest to handle + final result = _fromRawEncoding(data.sublist(1), rawEncodingLength); + final x = result.$1; + final y = result.$2; + final prefix = y & BigInt.one; + // Validate if it's self-consistent if we're asked to do that + if (((prefix == BigInt.one && data[0] != 0x07) || + (prefix == BigInt.zero && data[0] != 0x06))) { + throw ArgumentError('Inconsistent hybrid point encoding'); + } + + return (x, y); + } +} diff --git a/lib/crypto/crypto/cdsa/point/ec_projective_point.dart b/lib/crypto/crypto/cdsa/point/ec_projective_point.dart new file mode 100644 index 0000000..ccc3869 --- /dev/null +++ b/lib/crypto/crypto/cdsa/point/ec_projective_point.dart @@ -0,0 +1,935 @@ +// "python-ecdsa" Copyright (c) 2010 Brian Warner + +// Portions written in 2005 by Peter Pearson and placed in the public domain. + +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: + +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curve.dart'; +import 'base.dart'; +import 'point.dart'; + +/// Represents a point in projective coordinates on an elliptic curve. +class ProjectiveECCPoint extends AbstractPoint { + /// Constructs a [ProjectiveECCPoint] from the given coordinates and optional order and generator flag. + /// The [curve] parameter specifies the elliptic curve. + /// [x], [y], and [z] are the projective coordinates of the point. + /// [order] is the order of the point, and [generator] indicates if the point is a generator. + factory ProjectiveECCPoint( + {required CurveFp curve, + required BigInt x, + required BigInt y, + required BigInt z, + BigInt? order, + bool generator = false}) { + final coords = [x, y, z]; + return ProjectiveECCPoint._(curve, coords, + generator: generator, order: order); + } + + /// Constructs a special [ProjectiveECCPoint] representing infinity on the elliptic curve. + /// The [curve] parameter specifies the elliptic curve. + factory ProjectiveECCPoint.infinity(CurveFp curve) { + return ProjectiveECCPoint._(curve, [BigInt.zero, BigInt.zero, BigInt.zero], + generator: false, order: null); + } + + /// Constructs a [ProjectiveECCPoint] from a byte representation. + /// The [curve] parameter specifies the elliptic curve, and [data] is the byte data. + /// [order] is the order of the point. + factory ProjectiveECCPoint.fromBytes( + {required CurveFp curve, required List data, BigInt? order}) { + final coords = AbstractPoint.fromBytes(curve, data); + final x = coords.$1; + final y = coords.$2; + return ProjectiveECCPoint( + curve: curve, + x: x, + y: y, + z: BigInt.one, + generator: false, + order: order); + } + + /// The elliptic curve associated with this point. + @override + CurveFp curve; + + /// The order of the point (can be null if unknown). + @override + final BigInt? order; + + /// Indicates whether the point is a generator. + bool generator; + + /// List of precomputed values for point operations. + List> _precompute; + + /// List of projective coordinates [x, y, z]. + List _coords; + + List getCoords() => List.from(_coords); + + /// check if point is infinity + @override + bool get isInfinity => + _coords.isEmpty || + (_coords[0] == BigInt.zero && _coords[1] == BigInt.zero); + + /// Private constructor for creating a [ProjectiveECCPoint]. + /// [curve] is the elliptic curve, [coords] are the projective coordinates [x, y, z]. + /// [order] is the order of the point, and [generator] indicates if the point is a generator. + /// [precompute] is a list of precomputed values for point operations. + ProjectiveECCPoint._(this.curve, this._coords, + {this.order, + this.generator = false, + List> precompute = const []}) + : _precompute = precompute; + + /// Precompute values for faster point operations if necessary. + void _precomputeIfNeeded() { + // If not a generator or precomputation is already done, return. + if (!generator || _precompute.isNotEmpty) { + return; + } + + // Ensure the order is not null. + assert(order != null); + BigInt newOrder = order!; + + // Initialize a list to store precomputed values. + List> precomputedPoints = []; + + BigInt i = BigInt.one; + newOrder *= BigInt.two; + + // Extract projective coordinates. + BigInt xCoord = _coords[0]; + BigInt yCoord = _coords[1]; + BigInt zCoord = _coords[2]; + + // Create a projective point for doubling. + ProjectiveECCPoint doubler = + ProjectiveECCPoint._(curve, [xCoord, yCoord, zCoord], order: order); + + newOrder *= BigInt.two; + precomputedPoints.add([doubler.x, doubler.y]); + + while (i < newOrder) { + i *= BigInt.two; + doubler = doubler.doublePoint().scale(); + precomputedPoints.add([doubler.x, doubler.y]); + } + + // Update the precomputed values. + _precompute = precomputedPoints; + } + + /// + ProjectiveECCPoint operator -() { + final x = _coords[0]; + final y = _coords[1]; + final z = _coords[2]; + return ProjectiveECCPoint._(curve, [x, -y, z], order: order); + } + + /// equal operation + @override + bool operator ==(Object other) { + // Check if it's the same instance. + if (identical(this, other)) { + return true; + } + + // Check if 'other' is a valid point (either AffinePointt or ProjectiveECCPoint). + if (other is! AffinePointt && other is! ProjectiveECCPoint) { + return false; + } + // Cast 'other' to an AbstractPoint. + other as AbstractPoint; + + // Extract coordinates for the current point. + final BigInt x1 = _coords[0]; + final BigInt y1 = _coords[1]; + final BigInt z1 = _coords[2]; + + // Get the prime field modulus from the curve. + final p = curve.p; + + // Calculate the square of z1 modulo p. + final zz1 = (z1 * z1) % p; + + // If 'other' represents an infinity point, check if this point is also at infinity. + if (other.isInfinity) { + return y1 == BigInt.zero || z1 == BigInt.zero; + } + + // Extract coordinates for 'other' point. + BigInt x2; + BigInt y2; + BigInt z2; + if (other is AffinePointt) { + x2 = other.x; + y2 = other.y; + z2 = BigInt.one; + } else { + (other as ProjectiveECCPoint); + x2 = other._coords[0]; + y2 = other._coords[1]; + z2 = other._coords[2]; + } + + // Ensure both points belong to the same curve. + if (curve != other.curve) { + return false; + } + + // Calculate the square of z2 modulo p. + final zz2 = (z2 * z2) % p; + + // Check if the points are equal in projective coordinates. + return ((x1 * zz2 - x2 * zz1) % p == BigInt.zero) && + ((y1 * zz2 * z2 - y2 * zz1 * z1) % p == BigInt.zero); + } + + /// Get the x-coordinate of this point in the projective elliptic curve coordinates. + /// + /// If the point's z-coordinate is already one, this returns the x-coordinate directly. + /// Otherwise, it computes the x-coordinate as x * zInverse^2 % p. + /// + /// Returns: + /// The x-coordinate of the point in the elliptic curve coordinates. + /// + /// Note: + /// - The value is computed modulo the prime field 'p' of the curve. + /// - This property is used for coordinate transformation and point retrieval. + /// - If the z-coordinate is not one, the result is the normalized x-coordinate. + /// + /// See also: + /// - [y], [z], [t] properties for other coordinates of the point. + @override + BigInt get x { + /// Extract the x-coordinate and z-coordinate from the point's coordinates. + final xCoordinate = _coords[0]; + final zCoordinate = _coords[2]; + + /// If z-coordinate is one, return the x-coordinate as it is. + if (zCoordinate == BigInt.one) { + return xCoordinate; + } + + /// Get the prime field modulus from the curve. + final p = curve.p; + + /// Calculate the inverse of z-coordinate modulo p. + final zInverse = BigintUtils.inverseMod(zCoordinate, p); + + /// Compute and return the x-coordinate in projective coordinates. + final result = (xCoordinate * zInverse * zInverse) % p; + return result; + } + + /// Get the y-coordinate of this point in projective elliptic curve coordinates. + /// + /// If the point's z-coordinate is already one, this returns the y-coordinate directly. + /// Otherwise, it computes the normalized y-coordinate. + /// + /// Returns: + /// The y-coordinate of the point in the elliptic curve coordinates. + /// + /// Note: + /// - The value is computed modulo the prime field 'p' of the curve. + /// - This property is used for coordinate transformation and point retrieval. + @override + BigInt get y { + final yCoordinate = _coords[1]; + final zCoordinate = _coords[2]; + final primeField = curve.p; + + // Check if the z-coordinate is already one. + if (zCoordinate == BigInt.one) { + return yCoordinate; + } + + // Calculate the modular inverse of z-coordinate. + final zInverse = BigintUtils.inverseMod(zCoordinate, primeField); + + // Compute the normalized y-coordinate using the formula. + final normalizedY = + (yCoordinate * zInverse * zInverse * zInverse) % primeField; + + return normalizedY; + } + + /// Scales the projective point's coordinates. + /// + /// If the current z-coordinate is already one, there's no need to scale the point. + /// + /// [currentX], [currentY], and [currentZ] represent the current coordinates. + /// [primeField] is the prime field value of the curve. + /// [zInverse] is the modular inverse of the current z-coordinate. + /// [zInverseSquared] is the square of the z-inverse. + /// + /// The x and y coordinates are scaled using [zInverseSquared]. + /// + /// The coordinates are updated to the scaled values, and the scaled point is returned. + ProjectiveECCPoint scale() { + final currentZ = _coords[2]; + + /// If the current z-coordinate is already one, no need to scale + if (currentZ == BigInt.one) { + return this; + } + final currentY = _coords[1]; + final currentX = _coords[0]; + + /// Get the prime field value + final primeField = curve.p; + + /// Calculate the modular inverse of z + final zInverse = BigintUtils.inverseMod(currentZ, primeField); + + /// Calculate z-inverse squared + final zInverseSquared = (zInverse * zInverse) % primeField; + + /// Scale the x and y coordinates + final scaledX = (currentX * zInverseSquared) % primeField; + final scaledY = (currentY * zInverseSquared * zInverse) % primeField; + + /// Update the coordinates to the scaled values + _coords = [scaledX, scaledY, BigInt.one]; + + return this; + } + + /// Converts the projective point to an affine point. + /// + /// [y] and [z] represent the current y and z coordinates. + /// + /// If [y] is zero or [z] is zero, the method returns an infinity point. + /// + /// The point is scaled using the [scale] method, and the scaled x and y coordinates + /// are assigned to [x] and [yAffine] respectively. An affine point is then created + /// with the updated coordinates and returned. + AffinePointt toAffine() { + /// Current y-coordinate + final y = _coords[1]; + + /// Current z-coordinate + final z = _coords[2]; + + if (y == BigInt.zero || z == BigInt.zero) { + return AffinePointt.infinity(curve); + } + + /// Scale the point to its affine form + scale(); + + /// Scaled x-coordinate + final x = _coords[0]; + + /// Affine y-coordinate + final yAffine = y; + + return AffinePointt(curve, x, yAffine, order: order); + } + + /// Constructs a [ProjectiveECCPoint] from an [AffinePointt] in affine coordinates. + /// + /// The [point] parameter represents the input affine point. + /// The [generator] flag specifies whether this point is a generator point. + /// + /// The resulting projective point has its [curve], [x], and [y] values set + /// based on the input affine point, with [z] set to one. The [order] is also + /// taken from the input affine point. + /// + /// Returns a [ProjectiveECCPoint] in projective coordinates. + factory ProjectiveECCPoint.fromAffine(AbstractPoint point, + {bool generator = false}) { + if (point is! ProjectiveECCPoint && point is! AffinePointt) { + throw ArgumentError("invalid Affine point"); + } + return ProjectiveECCPoint._( + point.curve as CurveFp, [point.x, point.y, BigInt.one], + generator: generator, order: point.order); + } + + /// Doubles a point + List _doubleWithZ1(BigInt x1, BigInt y1, BigInt p, BigInt a) { + // Calculate x-coordinate squared + BigInt xSquared = (x1 * x1) % p; + + // Calculate y-coordinate squared + BigInt ySquared = (y1 * y1) % p; + + // Check if y-coordinate squared is zero + if (ySquared == BigInt.zero) { + // If y-coordinate squared is zero, return the point at infinity + return [BigInt.zero, BigInt.zero, BigInt.one]; + } + + // Calculate y-coordinate squared squared + BigInt ySquaredSquared = (ySquared * ySquared) % p; + + // Calculate 's' value + BigInt s = (BigInt.two * + ((x1 + ySquared) * (x1 + ySquared) - xSquared - ySquaredSquared)) % + p; + + // Calculate 'm' value + BigInt m = (BigInt.from(3) * xSquared + a) % p; + + // Calculate 't' value + BigInt t = (m * m - BigInt.from(2) * s) % p; + + // Calculate y-coordinate of the result and update Z-coordinate + BigInt yResult = (m * (s - t) - BigInt.from(8) * ySquaredSquared) % p; + BigInt zResult = (BigInt.two * y1) % p; + + return [t, yResult, zResult]; + } + + /// Doubles a point in projective coordinates on an elliptic curve, returning the resulting point. + List _double(BigInt x1, BigInt y1, BigInt z1, BigInt p, BigInt a) { + if (z1 == BigInt.one) { + // If z-coordinate is one, use an optimized version of the doubling operation + return _doubleWithZ1(x1, y1, p, a); + } + + if (y1 == BigInt.zero || z1 == BigInt.zero) { + // If y-coordinate or z-coordinate is zero, return the point at infinity + return [BigInt.zero, BigInt.zero, BigInt.one]; + } + + // Calculate x-coordinate squared + BigInt xSquared = (x1 * x1) % p; + + // Calculate y-coordinate squared + BigInt ySquared = (y1 * y1) % p; + + // Check if y-coordinate squared is zero + if (ySquared == BigInt.zero) { + // If y-coordinate squared is zero, return the point at infinity + return [BigInt.zero, BigInt.zero, BigInt.one]; + } + + // Calculate y-coordinate squared squared + BigInt ySquaredSquared = (ySquared * ySquared) % p; + + // Calculate z-coordinate squared + BigInt zSquared = (z1 * z1) % p; + + // Calculate 's' value + BigInt s = (BigInt.two * + ((x1 + ySquared) * (x1 + ySquared) - xSquared - ySquaredSquared)) % + p; + + // Calculate 'm' value + BigInt m = ((BigInt.from(3) * xSquared + a * zSquared * zSquared) % p); + + // Calculate 't' value + BigInt t = (m * m - BigInt.from(2) * s) % p; + + // Calculate y-coordinate of the result + BigInt yResult = (m * (s - t) - BigInt.from(8) * ySquaredSquared) % p; + + // Calculate z-coordinate of the result + BigInt zResult = ((y1 + z1) * (y1 + z1) - ySquared - zSquared) % p; + + return [t, yResult, zResult]; + } + + /// Doubles a point in projective coordinates on an elliptic curve and returns the result. + @override + ProjectiveECCPoint doublePoint() { + BigInt x1 = _coords[0]; + BigInt y1 = _coords[1]; + BigInt z1 = _coords[2]; + + if (y1 == BigInt.zero) { + // If y-coordinate is zero, the result is the point at infinity + return ProjectiveECCPoint.infinity(curve); + } + + BigInt primeField = curve.p; + BigInt curveA = curve.a; + + List result = _double(x1, y1, z1, primeField, curveA); + + if (result[1] == BigInt.zero || result[2] == BigInt.zero) { + // If the y-coordinate or z-coordinate of the result is zero, return the point at infinity + return ProjectiveECCPoint.infinity(curve); + } + + return ProjectiveECCPoint( + curve: curve, x: result[0], y: result[1], z: result[2], order: order); + } + + /// Adds two points in projective coordinates with z-coordinate equal to one + /// on an elliptic curve and returns the result. + List _addPointsWithZ1( + BigInt x1, BigInt y1, BigInt x2, BigInt y2, BigInt p) { + // Calculate the difference and its square + BigInt diff = x2 - x1; + BigInt diffSquare = diff * diff; + + // Calculate intermediate values I and J + BigInt I = (diffSquare * BigInt.from(4)) % p; + BigInt J = diff * I; + + // Calculate the y-coordinate difference scaled by 2 + BigInt scaledYDifference = (y2 - y1) * BigInt.from(2); + + if (diff == BigInt.zero && scaledYDifference == BigInt.zero) { + // If the difference and scaled y-coordinate difference are both zero, + // perform a doubling operation + return _doubleWithZ1(x1, y1, p, curve.a); + } + + // Calculate intermediate value V + BigInt V = x1 * I; + + // Calculate the x, y, and z coordinates of the result + BigInt x3 = + (scaledYDifference * scaledYDifference - J - V * BigInt.from(2)) % p; + BigInt y3 = (scaledYDifference * (V - x3) - y1 * J * BigInt.from(2)) % p; + BigInt z3 = diff * BigInt.from(2) % p; + + return [x3, y3, z3]; + } + + /// Adds two points in projective coordinates with the same z-coordinate + /// on an elliptic curve and returns the result. + List _addPointsWithCommonZ( + BigInt x1, BigInt y1, BigInt z1, BigInt x2, BigInt y2, BigInt p) { + // Calculate intermediate values A, B, C, and D + BigInt A = (x2 - x1).modPow(BigInt.from(2), p); + BigInt B = (x1 * A) % p; + BigInt C = x2 * A; + BigInt D = (y2 - y1).modPow(BigInt.from(2), p); + + if (A == BigInt.zero && D == BigInt.zero) { + // If A and D are both zero, perform a doubling operation + return _double(x1, y1, z1, p, curve.a); + } + + // Calculate the x, y, and z coordinates of the result + BigInt x3 = (D - B - C) % p; + BigInt y3 = ((y2 - y1) * (B - x3) - y1 * (C - B)) % p; + BigInt z3 = (z1 * (x2 - x1)) % p; + + return [x3, y3, z3]; + } + + /// Adds two points in projective coordinates with z2 equal to one + /// on an elliptic curve and returns the result. + List _addPointsWithZ2EqualOne( + BigInt x1, BigInt y1, BigInt z1, BigInt x2, BigInt y2, BigInt p) { + // Calculate Z1Z1, U2, and S2 + BigInt z1z1 = (z1 * z1) % p; + BigInt u2 = (x2 * z1z1) % p; + BigInt s2 = (y2 * z1 * z1z1) % p; + + // Calculate H, HH, I, and J + BigInt h = (u2 - x1) % p; + BigInt hh = (h * h) % p; + BigInt i = (BigInt.from(4) * hh) % p; + BigInt j = (h * i) % p; + BigInt r = (BigInt.from(2) * (s2 - y1)) % p; + + if (r == BigInt.zero && h == BigInt.zero) { + // If r and h are both zero, perform a doubling operation + return _doubleWithZ1(x2, y2, p, curve.a); + } + + // Calculate the x, y, and z coordinates of the result + BigInt v = (x1 * i) % p; + BigInt x3 = (r * r - j - BigInt.from(2) * v) % p; + BigInt y3 = (r * (v - x3) - BigInt.from(2) * y1 * j) % p; + BigInt z3 = (((z1 + h).modPow(BigInt.from(2), p) - z1z1) - hh) % p; + + return [x3, y3, z3]; + } + + /// Adds two points in projective coordinates with different z-coordinates + /// on an elliptic curve and returns the result. + List _addPointsWithZNotEqual(BigInt x1, BigInt y1, BigInt z1, + BigInt x2, BigInt y2, BigInt z2, BigInt p) { + // Calculate Z1Z1, Z2Z2, U1, U2, S1, S2 + BigInt z1z1 = (z1 * z1) % p; + BigInt z2z2 = (z2 * z2) % p; + BigInt u1 = (x1 * z2z2) % p; + BigInt u2 = (x2 * z1z1) % p; + BigInt s1 = (y1 * z2 * z2z2) % p; + BigInt s2 = (y2 * z1 * z1z1) % p; + + // Calculate H, I, J, and r + BigInt h = (u2 - u1) % p; + BigInt i = (BigInt.from(4) * h * h) % p; + BigInt j = (h * i) % p; + BigInt r = (BigInt.from(2) * (s2 - s1)) % p; + + if (h == BigInt.zero && r == BigInt.zero) { + // If h and r are both zero, perform a doubling operation + return _double(x1, y1, z1, p, curve.a); + } + + // Calculate the x, y, and z coordinates of the result + BigInt v = (u1 * i) % p; + BigInt x3 = (r * r - j - BigInt.from(2) * v) % p; + BigInt y3 = (r * (v - x3) - BigInt.from(2) * s1 * j) % p; + BigInt z3 = (((z1 + z2).modPow(BigInt.from(2), p) - z1z1 - z2z2) * h) % p; + + return [x3, y3, z3]; + } + + /// Adds two points in projective coordinates on an elliptic curve and returns the result. + List _addPoints(BigInt x1, BigInt y1, BigInt z1, BigInt x2, BigInt y2, + BigInt z2, BigInt p) { + if (y1 == BigInt.zero || z1 == BigInt.zero) { + // If the first point is at infinity, return the second point + return [x2, y2, z2]; + } + if (y2 == BigInt.zero || z2 == BigInt.zero) { + // If the second point is at infinity, return the first point + return [x1, y1, z1]; + } + if (z1 == z2) { + if (z1 == BigInt.one) { + // If both points have z equal to one, perform the addition + return _addPointsWithZ1(x1, y1, x2, y2, p); + } + // If z-coordinates are equal but not one, perform the addition + return _addPointsWithCommonZ(x1, y1, z1, x2, y2, p); + } + if (z1 == BigInt.one) { + // If the first point has z equal to one, perform the addition + return _addPointsWithZ2EqualOne(x2, y2, z2, x1, y1, p); + } + if (z2 == BigInt.one) { + // If the second point has z equal to one, perform the addition + return _addPointsWithZ2EqualOne(x1, y1, z1, x2, y2, p); + } + // If none of the special cases apply, perform the addition with different z-coordinates + return _addPointsWithZNotEqual(x1, y1, z1, x2, y2, z2, p); + } + + @override + AbstractPoint operator +(AbstractPoint other) { + if (isInfinity) { + return other; + } + if (other.isInfinity) { + return this; + } + if (other is AffinePointt) { + other = ProjectiveECCPoint.fromAffine(other); + } + if (curve != other.curve) { + throw ArgumentError("The other point is on a different curve"); + } + other as ProjectiveECCPoint; + + // Get the prime field value + BigInt primeField = curve.p; + + // Extract coordinates of the first point + BigInt x1 = _coords[0]; + BigInt y1 = _coords[1]; + BigInt z1 = _coords[2]; + + // Extract coordinates of the second point + BigInt x2 = other._coords[0]; + BigInt y2 = other._coords[1]; + BigInt z2 = other._coords[2]; + + // Perform point addition + List result = _addPoints(x1, y1, z1, x2, y2, z2, primeField); + + BigInt x3 = result[0]; + BigInt y3 = result[1]; + BigInt z3 = result[2]; + + if (y3 == BigInt.zero || z3 == BigInt.zero) { + return ProjectiveECCPoint.infinity(curve); + } + + return ProjectiveECCPoint._(curve, [x3, y3, z3], order: order); + } + + /// Multiplies this point by a scalar using precomputed values. + /// + /// This method is used to multiply a point by a scalar using precomputed values. + /// It iteratively adds points from the precomputed list based on the binary + /// representation of the scalar. + /// + /// The result of the multiplication is returned as a [ProjectiveECCPoint]. + /// + /// Parameters: + /// - `scalar`: The scalar value to multiply with. + /// + /// Returns: + /// - A new [ProjectiveECCPoint] representing the result of the multiplication. + ProjectiveECCPoint _multiplyWithPrecompute(BigInt scalar) { + BigInt resultX = BigInt.zero, + resultY = BigInt.zero, + resultZ = BigInt.one, + primeField = curve.p; + List> precompute = List.from(_precompute); + + for (int i = 0; i < precompute.length; i++) { + BigInt x2 = precompute[i][0]; + BigInt y2 = precompute[i][1]; + + if (scalar.isOdd) { + if (scalar.isOdd && scalar.isEven) { + scalar = (scalar + BigInt.one) ~/ BigInt.two; + List addResult = _addPoints( + resultX, resultY, resultZ, x2, -y2, BigInt.one, primeField); + resultX = addResult[0]; + resultY = addResult[1]; + resultZ = addResult[2]; + } else { + scalar = (scalar - BigInt.one) ~/ BigInt.two; + List addResult = _addPoints( + resultX, resultY, resultZ, x2, y2, BigInt.one, primeField); + resultX = addResult[0]; + resultY = addResult[1]; + resultZ = addResult[2]; + } + } else { + scalar ~/= BigInt.two; + } + } + + if (resultY == BigInt.zero || resultZ == BigInt.zero) { + return ProjectiveECCPoint.infinity(curve); + } + + return ProjectiveECCPoint._(curve, [resultX, resultY, resultZ], + order: order); + } + + /// Multiplies this point by a scalar value. + /// + /// This method multiplies the current point by a scalar value using the + /// double-and-add method with non-adjacent form (NAF) windowing for optimization. + /// + /// Parameters: + /// - `other`: The scalar value to multiply by. + /// + /// Returns: + /// - A new [ProjectiveECCPoint] representing the result of the multiplication. + @override + ProjectiveECCPoint operator *(BigInt scalar) { + if (_coords[1] == BigInt.zero || scalar == BigInt.zero) { + return ProjectiveECCPoint.infinity(curve); + } + if (scalar == BigInt.one) { + return this; + } + if (order != null) { + // Perform modulo operation for scalar if an order is defined + // order*2 as a protection for Minerva + scalar = scalar % (order! * BigInt.two); + } + + _precomputeIfNeeded(); + if (_precompute.isNotEmpty) { + return _multiplyWithPrecompute(scalar); + } + + scale(); + + // Initialize point coordinates + BigInt x2 = _coords[0]; + BigInt y2 = _coords[1]; + + BigInt x3 = BigInt.zero; + BigInt y3 = BigInt.zero; + BigInt z3 = BigInt.one; + + BigInt primeField = curve.p; + BigInt curveA = curve.a; + + // Since adding points when at least one of them is scaled + // is quicker, reverse the NAF order + List nafList = BigintUtils.computeNAF(scalar); + for (int i = nafList.length - 1; i >= 0; i--) { + final List double = _double(x3, y3, z3, primeField, curveA); + x3 = double[0]; + y3 = double[1]; + z3 = double[2]; + if (nafList[i] < BigInt.zero) { + final add = _addPoints(x3, y3, z3, x2, -y2, BigInt.one, primeField); + x3 = add[0]; + y3 = add[1]; + z3 = add[2]; + } else if (nafList[i] > BigInt.zero) { + final add = _addPoints(x3, y3, z3, x2, y2, BigInt.one, primeField); + x3 = add[0]; + y3 = add[1]; + z3 = add[2]; + } + } + + if (y3 == BigInt.zero || z3 == BigInt.zero) { + return ProjectiveECCPoint.infinity(curve); + } + + return ProjectiveECCPoint._(curve, [x3, y3, z3], order: order); + } + + /// Multiplies this point by a scalar value `selfMul` and adds another point + /// `otherPoint` multiplied by `otherMul`. + /// + /// Parameters: + /// - `selfMul`: Scalar value to multiply this point by. + /// - `otherPoint`: The other point to multiply. + /// - `otherMul`: Scalar value to multiply the `otherPoint` by. + /// + /// Returns: + /// - A new [ProjectiveECCPoint] representing the result of the operation. + ProjectiveECCPoint mulAdd( + BigInt selfMul, AbstractPoint otherPoint, BigInt otherMul) { + if (otherPoint.isInfinity || otherMul == BigInt.zero) { + return this * selfMul; + } + if (selfMul == BigInt.zero) { + return (otherPoint * otherMul) as ProjectiveECCPoint; + } + ProjectiveECCPoint other; + if (otherPoint is AffinePointt) { + other = ProjectiveECCPoint.fromAffine(otherPoint); + } else { + other = otherPoint as ProjectiveECCPoint; + } + + _precomputeIfNeeded(); + other._precomputeIfNeeded(); + if (_precompute.isNotEmpty && other._precompute.isNotEmpty) { + return (this * selfMul + other * otherMul) as ProjectiveECCPoint; + } + + if (order != null) { + selfMul = selfMul % order!; + otherMul = otherMul % order!; + } + + // (X3, Y3, Z3) is the accumulator + BigInt x3 = BigInt.zero; + BigInt y3 = BigInt.zero; + BigInt z3 = BigInt.one; + BigInt p = curve.p; + BigInt a = curve.a; + + scale(); + BigInt x1 = _coords[0]; + BigInt y1 = _coords[1]; + BigInt z1 = _coords[2]; + other.scale(); + BigInt x2 = other._coords[0]; + BigInt y2 = other._coords[1]; + BigInt z2 = other._coords[2]; + + // with NAF we have 3 options: no add, subtract, add + // so with 2 points, we have 9 combinations: + // 0, -A, +A, -B, -A-B, +A-B, +B, -A+B, +A+B + // so we need 4 combined points: + List mAmB = _addPoints(x1, -y1, z1, x2, -y2, z2, p); + + List pAmB = _addPoints(x1, y1, z1, x2, -y2, z2, p); + + List mApB = [pAmB[0], -pAmB[1], pAmB[2]]; + List pApB = [mAmB[0], -mAmB[1], mAmB[2]]; + + if (pApB[1] == BigInt.zero || pApB[2] == BigInt.zero) { + return (this * selfMul + other * otherMul) as ProjectiveECCPoint; + } + + List selfNaf = BigintUtils.computeNAF(selfMul).reversed.toList(); + List otherNaf = BigintUtils.computeNAF(otherMul).reversed.toList(); + + if (selfNaf.length < otherNaf.length) { + selfNaf = + List.filled(otherNaf.length - selfNaf.length, BigInt.zero) + selfNaf; + } else if (selfNaf.length > otherNaf.length) { + otherNaf = + List.filled(selfNaf.length - otherNaf.length, BigInt.zero) + otherNaf; + } + + for (int i = 0; i < selfNaf.length; i++) { + BigInt A = selfNaf[i]; + BigInt B = otherNaf[i]; + + List result = _double(x3, y3, z3, p, a); + + // conditions ordered from most to least likely + if (A == BigInt.zero) { + if (B == BigInt.zero) { + // Do nothing. + } else if (B < BigInt.zero) { + result = _addPoints(result[0], result[1], result[2], x2, -y2, z2, p); + } else { + assert(B > BigInt.zero); + result = _addPoints(result[0], result[1], result[2], x2, y2, z2, p); + } + } else if (A < BigInt.zero) { + if (B == BigInt.zero) { + result = _addPoints(result[0], result[1], result[2], x1, -y1, z1, p); + } else if (B < BigInt.zero) { + result = _addPoints( + result[0], result[1], result[2], mAmB[0], mAmB[1], mAmB[2], p); + } else { + assert(B > BigInt.zero); + result = _addPoints( + result[0], result[1], result[2], mApB[0], mApB[1], mApB[2], p); + } + } else { + assert(A > BigInt.zero); + if (B == BigInt.zero) { + result = _addPoints(result[0], result[1], result[2], x1, y1, z1, p); + } else if (B < BigInt.zero) { + result = _addPoints( + result[0], result[1], result[2], pAmB[0], pAmB[1], pAmB[2], p); + } else { + assert(B > BigInt.zero); + result = _addPoints( + result[0], result[1], result[2], pApB[0], pApB[1], pApB[2], p); + } + } + + x3 = result[0]; + y3 = result[1]; + z3 = result[2]; + } + + if (y3 == BigInt.zero || z3 == BigInt.zero) { + return ProjectiveECCPoint.infinity(curve); + } + + return ProjectiveECCPoint._(curve, [x3, y3, z3], order: order); + } + + @override + int get hashCode => curve.hashCode ^ x.hashCode ^ y.hashCode; +} diff --git a/lib/crypto/crypto/cdsa/point/edwards.dart b/lib/crypto/crypto/cdsa/point/edwards.dart new file mode 100644 index 0000000..bd6900e --- /dev/null +++ b/lib/crypto/crypto/cdsa/point/edwards.dart @@ -0,0 +1,636 @@ +// "python-ecdsa" Copyright (c) 2010 Brian Warner + +// Portions written in 2005 by Peter Pearson and placed in the public domain. + +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: + +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curve.dart'; +import 'base.dart'; + +/// A class representing a point on an Edwards curve, extending the abstract [AbstractPoint] class. +class EDPoint extends AbstractPoint { + /// The Edwards curve associated with this point. + @override + CurveED curve; + + /// The order of the point (null if not set). + @override + BigInt? order; + + /// Indicates if this point is a generator point. + bool generator; + + /// List of precomputed values (for internal use). + List> _precompute; + + /// List of coordinates representing the point. + List _coords; + + /// A factory constructor to create an infinity point on an Edwards curve. + /// + /// This factory method creates a special point at infinity for the given Edwards curve. + /// It's a static method and doesn't require explicit point coordinates. + /// + /// Parameters: + /// - [curve]: The Edwards curve associated with the point. + /// + /// Returns: + /// - An instance of [EDPoint] representing the point at infinity. + factory EDPoint.infinity({required CurveED curve}) { + return EDPoint._(curve, [BigInt.zero, BigInt.zero, BigInt.zero]); + } + + /// Private constructor for creating an [EDPoint] with specified curve, coordinates, and optional order. + /// + /// This constructor is used internally to create Edwards curve points. + /// + /// Parameters: + /// - [curve]: The Edwards curve associated with the point. + /// - [_coords]: List of coordinates representing the point. + /// - [order]: The order of the point (optional). + /// + /// Additional Information: + /// - The [_precompute] list is initialized as an empty constant list. + /// - The [generator] flag is set to `false` by default. + EDPoint._(this.curve, this._coords, {this.order}) + : _precompute = const [], + generator = false; + + /// Constructor for creating an [EDPoint] with explicit coordinates and optional parameters. + /// + /// This constructor creates an Edwards curve point with the specified curve and coordinates. + /// + /// Parameters: + /// - [curve]: The Edwards curve associated with the point. + /// - [x]: The x-coordinate of the point. + /// - [y]: The y-coordinate of the point. + /// - [z]: The z-coordinate of the point. + /// - [t]: The t-coordinate of the point. + /// - [order]: The order of the point (optional). + /// - [generator]: A flag indicating if this point is a generator point (default is `false`). + /// + /// Additional Information: + /// - The [_coords] list is initialized with the provided coordinates [x, y, z, t]. + /// - The [_precompute] list is initialized as an empty constant list. + EDPoint( + {required this.curve, + required BigInt x, + required BigInt y, + required BigInt z, + required BigInt t, + this.order, + this.generator = false}) + : _coords = [x, y, z, t], + _precompute = const []; + + /// Factory constructor to create an [EDPoint] from a byte representation. + /// + /// This factory method constructs an Edwards curve point from its byte representation. + /// + /// Parameters: + /// - [curve]: The Edwards curve associated with the point. + /// - [data]: The byte array representing the point's coordinates. + /// - [order]: The order of the point (optional). + /// + /// Returns: + /// - An instance of [EDPoint] with the specified curve, coordinates, and optional order. + factory EDPoint.fromBytes( + {required CurveED curve, required List data, BigInt? order}) { + final coords = AbstractPoint.fromBytes(curve, data); + final x = coords.$1; + final y = coords.$2; + final t = x * y; + return EDPoint( + curve: curve, + x: x, + y: y, + z: BigInt.one, + t: t, + generator: false, + order: order); + } + + /// Internal method for performing point precomputation when required. + /// + /// This method is responsible for performing precomputation on the point, specifically for generator points. + /// It precomputes a set of values that can be used to accelerate point multiplication operations. + /// + /// Precomputation is only performed if the point is a generator point and precomputed values are not already available. + /// + /// The precomputed values are stored in the [_precompute] list. + void _maybePrecompute() { + /// Precomputation is only needed for generator points, and it should not be recomputed if already available. + if (!generator || _precompute.isNotEmpty) { + return; + } + BigInt newOrder = order!; + + /// Initialize a list to store computed values. + List> compute = []; + BigInt i = BigInt.one; + newOrder *= BigInt.from(2); + List coordsList = getCoords(); + + /// Create a temporary point for doubling. + EDPoint doubler = EDPoint._( + curve, + getCoords(), + order: newOrder, + ); + + newOrder *= BigInt.from(4); + + /// Iterate through point doubling and store computed values in the list. + while (i < newOrder) { + doubler = doubler.scale(); + coordsList[0] = doubler._coords[0]; + coordsList[1] = doubler._coords[1]; + coordsList[3] = doubler._coords[3]; + + i *= BigInt.two; + doubler = doubler.doublePoint(); + + compute.add([coordsList[0], coordsList[1], coordsList[3]]); + } + + /// Set the precomputed values in the [_precompute] list. + _precompute = compute; + } + + List getCoords() { + return List.from(_coords); + } + + /// Get the x-coordinate of the Edwards curve point. + /// + /// This getter method computes and returns the x-coordinate of the Edwards curve point + /// using the stored coordinates, considering the base field element modulo the curve's prime value (p). + /// + /// Returns: + /// - The x-coordinate of the point. + @override + BigInt get x { + BigInt x1 = _coords[0]; + BigInt z1 = _coords[2]; + + /// If the z-coordinate is 1, return x1 directly. + if (z1 == BigInt.one) { + return x1; + } + + /// Retrieve the prime value (p) of the curve. + BigInt p = curve.p; + + /// Compute the inverse of z1 modulo p. + BigInt zInv = BigintUtils.inverseMod(z1, p); + + /// Calculate and return the x-coordinate modulo p. + return (x1 * zInv) % p; + } + + /// Get the y-coordinate of the Edwards curve point. + /// + /// This getter method computes and returns the y-coordinate of the Edwards curve point + /// using the stored coordinates, considering the base field element modulo the curve's prime value (p). + /// + /// Returns: + /// - The y-coordinate of the point. + @override + BigInt get y { + /// Create a new list to avoid modifying the original coordinates. + + BigInt y1 = _coords[1]; + BigInt z1 = _coords[2]; + + /// If the z-coordinate is 1, return y1 directly. + if (z1 == BigInt.one) { + return y1; + } + + /// Retrieve the prime value (p) of the curve. + BigInt p = curve.p; + + /// Compute the inverse of z1 modulo p. + BigInt zInv = BigintUtils.inverseMod(z1, p); + + /// Calculate and return the y-coordinate modulo p. + return (y1 * zInv) % p; + } + + /// Scale the Edwards curve point. + /// + /// This method scales the point by converting it to projective coordinates (if not already), + /// performing the scaling operation, and then converting it back to extended coordinates. + /// + /// Returns: + /// - A reference to the scaled Edwards curve point. + EDPoint scale() { + // List newCoords = _coords; + + BigInt z1 = _coords[2]; + + /// If the z-coordinate is already 1, the point is already in projective form, and no scaling is required. + if (z1 == BigInt.one) { + return this; + } + BigInt x1 = _coords[0]; + BigInt y1 = _coords[1]; + + /// Retrieve the prime value (p) of the curve. + BigInt p = curve.p; + + /// Compute the inverse of z1 modulo p. + BigInt zInv = BigintUtils.inverseMod(z1, p); + BigInt x = (x1 * zInv) % p; + BigInt y = (y1 * zInv) % p; + BigInt t = (x * y) % p; + + /// Update the coordinates to their scaled values and set z-coordinate to 1 (projective form). + _coords[0] = x; + _coords[1] = y; + _coords[2] = BigInt.one; + _coords[3] = t; + + return this; + } + + /// Equality operator for comparing two Edwards curve points. + /// + /// This method checks if the current Edwards curve point is equal to another point by comparing their coordinates. + /// + /// Parameters: + /// - [other]: The object to compare with. + /// + /// Returns: + /// - `true` if the points are equal, `false` otherwise. + @override + bool operator ==(Object other) { + if (other is EDPoint) { + /// Create new coordinate lists to avoid modifying the original coordinates. + + List otherCoords = other.getCoords(); + + /// Extract coordinates of the current point. + BigInt x1 = _coords[0]; + BigInt y1 = _coords[1]; + BigInt z1 = _coords[2]; + BigInt t1 = _coords[3]; + + /// Extract coordinates of the other point. + BigInt x2 = otherCoords[0]; + BigInt y2 = otherCoords[1]; + BigInt z2 = otherCoords[2]; + + /// If the other point is infinity, check specific conditions. + if (other.isInfinity) { + return x1 == BigInt.zero || t1 == BigInt.zero; + } + + /// Check if the curve of the two points is the same. + if (curve != other.curve) { + return false; + } + + /// Retrieve the prime value (p) of the curve. + BigInt p = curve.p; + + /// Calculate the normalized coordinates of both points. + BigInt xn1 = (x1 * z2) % p; + BigInt xn2 = (x2 * z1) % p; + BigInt yn1 = (y1 * z2) % p; + BigInt yn2 = (y2 * z1) % p; + + /// Check if the normalized coordinates are equal. + return xn1 == xn2 && yn1 == yn2; + } + + return false; + } + + /// Perform addition of two Edwards curve points. + /// + /// This method computes the sum of two Edwards curve points in extended coordinates. It takes the coordinates of both points, the prime value (p) of the curve, and the curve's parameter 'a' as input. + /// + /// Parameters: + /// - [x1]: x-coordinate of the first point. + /// - [y1]: y-coordinate of the first point. + /// - [z1]: z-coordinate of the first point. + /// - [t1]: t-coordinate of the first point. + /// - [x2]: x-coordinate of the second point. + /// - [y2]: y-coordinate of the second point. + /// - [z2]: z-coordinate of the second point. + /// - [t2]: t-coordinate of the second point. + /// - [p]: The prime value (p) of the curve. + /// - [a]: The 'a' parameter of the curve. + /// + /// Returns: + /// - A list of BigInt values representing the coordinates of the resulting Edwards curve point [x3, y3, z3, t3]. + List _add( + BigInt x1, + BigInt y1, + BigInt z1, + BigInt t1, + BigInt x2, + BigInt y2, + BigInt z2, + BigInt t2, + BigInt p, + BigInt a, + ) { + /// Compute intermediate values for addition. + BigInt A = (x1 * x2) % p; + BigInt b = (y1 * y2) % p; + BigInt c = (z1 * t2) % p; + BigInt d = (t1 * z2) % p; + BigInt e = d + c; + BigInt f = (((x1 - y1) * (x2 + y2)) + b - A) % p; + BigInt g = b + (a * A); + BigInt h = d - c; + + /// Check if the value of 'h' is zero; if so, perform a doubling operation instead. + if (h == BigInt.zero) { + return _double(x1, y1, z1, t1, p, a); + } + + /// Calculate the coordinates of the resulting point after addition. + BigInt x3 = (e * f) % p; + BigInt y3 = (g * h) % p; + BigInt t3 = (e * h) % p; + BigInt z3 = (f * g) % p; + + /// Return the resulting coordinates as a list. + return [x3, y3, z3, t3]; + } + + /// Addition operator for two Edwards curve points. + /// + /// This operator performs point addition on the Edwards curve. + /// It checks if the points are on the same curve and not at infinity, + /// then calculates the result of the addition operation and returns a new Edwards curve point. + /// + /// Parameters: + /// - [other]: The other Edwards curve point to add to this point. + /// + /// Returns: + /// - A new Edwards curve point representing the result of the addition. + /// + /// Throws: + /// - ArgumentError: If the 'other' point is on a different curve or at infinity. + @override + EDPoint operator +(AbstractPoint other) { + if (other is! EDPoint || curve != other.curve) { + throw ArgumentError("The other point is on a different curve."); + } + if (other.isInfinity) { + return this; + } + BigInt p = curve.p; + BigInt a = curve.a; + + BigInt x1 = _coords[0]; + BigInt y1 = _coords[1]; + BigInt z1 = _coords[2]; + BigInt t1 = _coords[3]; + + BigInt x2 = other._coords[0]; + BigInt y2 = other._coords[1]; + BigInt z2 = other._coords[2]; + BigInt t2 = other._coords[3]; + + List result = _add(x1, y1, z1, t1, x2, y2, z2, t2, p, a); + if (result[0] == BigInt.zero || result[3] == BigInt.zero) { + return EDPoint.infinity(curve: curve); + } + + return EDPoint( + curve: curve, + x: result[0], + y: result[1], + z: result[2], + t: result[3], + order: order); + } + + /// Negation operator for an Edwards curve point. + /// + /// This operator computes the negation (negate y-coordinate) of the Edwards curve point and returns a new Edwards curve point representing the negated point. + /// + /// Returns: + /// - A new Edwards curve point representing the negation of this point. + EDPoint operator -() { + BigInt x1 = _coords[0]; + BigInt y1 = _coords[1]; + BigInt t1 = _coords[3]; + BigInt p = curve.p; + + return EDPoint._(curve, [x1, (p - y1) % p, _coords[2], (p - t1) % p], + order: order); + } + + List _double( + BigInt x1, BigInt y1, BigInt z1, BigInt t1, BigInt p, BigInt a) { + BigInt A = (x1 * x1) % p; + BigInt B = (y1 * y1) % p; + BigInt C = (z1 * z1 * BigInt.two) % p; + BigInt D = (a * A) % p; + BigInt E = (((x1 + y1) * (x1 + y1)) - A - B) % p; + BigInt G = D + B; + BigInt F = G - C; + BigInt H = D - B; + BigInt x3 = (E * F) % p; + BigInt y3 = (G * H) % p; + BigInt t3 = (E * H) % p; + BigInt z3 = (F * G) % p; + + return [x3, y3, z3, t3]; + } + + /// Double an Edwards curve point. + /// + /// This method computes the result of doubling an Edwards curve point on the same curve. + /// It calculates the new coordinates and returns them as a list. + /// + /// Parameters: + /// - [x1]: x-coordinate of the point. + /// - [y1]: y-coordinate of the point. + /// - [z1]: z-coordinate of the point. + /// - [t1]: t-coordinate of the point. + /// - [p]: The prime modulus of the curve. + /// - [a]: The 'a' parameter of the curve equation. + /// + /// Returns: + /// - A list of BigInt values representing the new coordinates [x3, y3, z3, t3] after doubling the point. + @override + EDPoint doublePoint() { + BigInt x1 = _coords[0]; + BigInt t1 = _coords[3]; + BigInt p = curve.p; + BigInt a = curve.a; + + if (x1 == BigInt.zero || t1 == BigInt.zero) { + return EDPoint.infinity(curve: curve); + } + + final newCoords = _double(x1, _coords[1], _coords[2], t1, p, a); + if (newCoords[0] == BigInt.zero || newCoords[3] == BigInt.zero) { + return EDPoint.infinity(curve: curve); + } + + return EDPoint._(curve, newCoords, order: order); + } + + /// Multiply an Edwards curve point using precomputed data. + /// + /// This method multiplies an Edwards curve point by a scalar using precomputed data. + /// It efficiently performs the multiplication using the precomputed values and returns the result as a new Edwards curve point. + /// + /// Parameters: + /// - [other]: The scalar value to multiply the point by. + /// + /// Returns: + /// - A new Edwards curve point resulting from the multiplication. + EDPoint _mulPrecompute(BigInt other) { + BigInt x3 = BigInt.zero, y3 = BigInt.one, z3 = BigInt.one, t3 = BigInt.zero; + final p = curve.p; + final a = curve.a; + + for (final tuple in _precompute) { + final x2 = tuple[0]; + final y2 = tuple[1]; + final t2 = tuple[2]; + final rem = other % BigInt.from(4); + if (rem == BigInt.zero || rem == BigInt.from(2)) { + other ~/= BigInt.from(2); + } else if (rem == BigInt.from(3)) { + other = (other + BigInt.one) ~/ BigInt.two; + final result = _add(x3, y3, z3, t3, -x2, y2, BigInt.one, -t2, p, a); + + x3 = result[0]; + y3 = result[1]; + z3 = result[2]; + t3 = result[3]; + } else { + assert(rem == BigInt.one); + other = (other - BigInt.one) ~/ BigInt.two; + final result = _add(x3, y3, z3, t3, x2, y2, BigInt.one, t2, p, a); + x3 = result[0]; + y3 = result[1]; + z3 = result[2]; + t3 = result[3]; + } + } + if (x3 == BigInt.zero || t3 == BigInt.zero) { + return EDPoint.infinity(curve: curve); + } + + return EDPoint(curve: curve, x: x3, y: y3, z: z3, t: t3, order: order); + } + + /// Multiply an Edwards curve point by a scalar. + /// + /// This method multiplies an Edwards curve point by a scalar + /// value using an efficient multiplication algorithm. The scalar value is provided as a [BigInt], + /// and the result is returned as a new Edwards curve point. + /// + /// Parameters: + /// - [other]: The scalar value to multiply the point by. + /// + /// Returns: + /// - A new Edwards curve point resulting from the multiplication. + @override + EDPoint operator *(BigInt other) { + BigInt x2 = _coords[0]; + BigInt t2 = _coords[3]; + BigInt y2 = _coords[1]; + BigInt z2 = _coords[2]; + + if (x2 == BigInt.zero || t2 == BigInt.zero || other == BigInt.zero) { + return EDPoint.infinity(curve: curve); + } + + if (order != null) { + other %= (order! * BigInt.two); + } + _maybePrecompute(); + + if (_precompute.isNotEmpty) { + return _mulPrecompute(other); + } + + BigInt x3 = BigInt.zero; + BigInt y3 = BigInt.one; + BigInt z3 = BigInt.one; + BigInt t3 = BigInt.one; + + final nf = BigintUtils.computeNAF(other).reversed.toList(); + for (BigInt i in nf) { + List resultCoords = _double(x3, y3, z3, t3, curve.p, curve.a); + x3 = resultCoords[0]; + y3 = resultCoords[1]; + z3 = resultCoords[2]; + t3 = resultCoords[3]; + + if (i < BigInt.zero) { + List doubleCoords = + _add(x3, y3, z3, t3, -x2, y2, z2, -t2, curve.p, curve.a); + x3 = doubleCoords[0]; + y3 = doubleCoords[1]; + z3 = doubleCoords[2]; + t3 = doubleCoords[3]; + } else if (i > BigInt.zero) { + List doubleCoords = + _add(x3, y3, z3, t3, x2, y2, z2, t2, curve.p, curve.a); + x3 = doubleCoords[0]; + y3 = doubleCoords[1]; + z3 = doubleCoords[2]; + t3 = doubleCoords[3]; + } + } + + if (x3 == BigInt.zero || t3 == BigInt.zero) { + return EDPoint.infinity(curve: curve); + } + + return EDPoint._(curve, [x3, y3, z3, t3], order: order); + } + + /// Calculates the hash code for the Edwards curve point. + /// + /// This method calculates a hash code for the Edwards curve point based on its x and y coordinates, as well as the order of the point. + /// + /// Returns: + /// - An integer representing the hash code of the Edwards curve point. + @override + int get hashCode => Object.hash(x, y, order); + + /// Checks if the Edwards curve point represents the point at infinity. + /// + /// This method checks whether the Edwards curve point represents the point at infinity, which is defined as either an empty set of coordinates or having both x and y coordinates equal to zero. + /// + /// Returns: + /// - `true` if the point is the point at infinity, `false` otherwise. + @override + bool get isInfinity => + _coords.isEmpty || + (_coords[0] == BigInt.zero && _coords[1] == BigInt.zero); +} diff --git a/lib/crypto/crypto/cdsa/point/point.dart b/lib/crypto/crypto/cdsa/point/point.dart new file mode 100644 index 0000000..8f5c968 --- /dev/null +++ b/lib/crypto/crypto/cdsa/point/point.dart @@ -0,0 +1,204 @@ +// "python-ecdsa" Copyright (c) 2010 Brian Warner + +// Portions written in 2005 by Peter Pearson and placed in the public domain. + +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: + +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curve.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/ec_projective_point.dart'; + +import 'base.dart'; + +/// Represents a point in affine coordinates on an elliptic curve. +class AffinePointt extends AbstractPoint { + AffinePointt(this.curve, this.x, this.y, {this.order}); + + /// Factory method to create an infinity point on the given curve. + factory AffinePointt.infinity(CurveFp curve) { + return AffinePointt(curve, BigInt.zero, BigInt.zero); + } + + /// Represents the elliptic curve to which this point belongs. + @override + final CurveFp curve; + + /// Represents the x-coordinate of this point in affine coordinates. + @override + final BigInt x; + + /// Represents the y-coordinate of this point in affine coordinates. + @override + final BigInt y; + + /// Represents the order of this point, which is the number of times this point + /// can be added to itself before reaching the infinity point. + @override + final BigInt? order; + + /// Overrides the equality operator (==) to compare this `AffinePointt` instance + /// with another object. It returns `true` if the other object is also an + /// `AffinePointt` and if the `curve`, `x`, and `y` coordinates match. + @override + bool operator ==(Object other) { + if (other is AffinePointt) { + return curve == other.curve && x == other.x && y == other.y; + } + return other == this; + } + + /// Checks if this `AffinePointt` represents the point at infinity (O), which + /// is defined by having x and y coordinates both equal to zero. + @override + bool get isInfinity => x == BigInt.zero && y == BigInt.zero; + + /// Negates this point and returns the result. + AffinePointt operator -() { + return AffinePointt(curve, x, curve.p - y, order: order); + } + + /// Overrides the addition operator (+) to perform point addition between this + /// `AffinePointt` and another `AbstractPoint`. The result is a new + /// `AffinePointt`. If one of the points is the point at infinity, it returns + /// the other point. If the x-coordinates of both points are equal, and the + /// sum of their y-coordinates modulo `curve.p` equals zero, the result is the + /// point at infinity. Otherwise, it computes the sum using the provided + /// addition formula. + /// + /// Returns a new `AffinePointt` representing the result of the point addition. + @override + AbstractPoint operator +(AbstractPoint other) { + if (other is! AffinePointt && other is! ProjectiveECCPoint) { + throw ArgumentError("cannot add with ${other.runtimeType} point"); + } + if (other is ProjectiveECCPoint) { + return other + this; + } + other as AffinePointt; + if (other.isInfinity) { + return this; + } + if (isInfinity) { + return other; + } + assert(curve == other.curve); + if (x == other.x) { + if ((y + other.y) % curve.p == BigInt.zero) { + return AffinePointt(curve, BigInt.zero, BigInt.zero); + } else { + return doublePoint(); + } + } + + BigInt p = curve.p; + BigInt l = (other.y - y) * BigintUtils.inverseMod(other.x - x, p) % p; + + BigInt x3 = (l * l - x - other.x) % p; + BigInt y3 = (l * (x - x3) - y) % p; + + return AffinePointt(curve, x3, y3, order: null); + } + + /// Overrides the multiplication operator (*) to perform point scalar + /// multiplication. It multiplies the `AffinePointt` instance by a scalar + /// `other` and returns a new `AffinePointt` representing the result. + /// + /// Scalar multiplication is implemented using the double-and-add method, which + /// efficiently computes `this * other` for positive `other`. It also handles + /// the case where `other` is zero or a multiple of the group order. + /// + /// If `other` is zero or a multiple of the group order, the result is the point + /// at infinity. For negative scalars, it negates the point before performing + /// multiplication. + /// + /// Returns a new `AffinePointt` representing the result of the scalar + /// multiplication. + @override + AffinePointt operator *(BigInt other) { + BigInt leftmostBit(BigInt x) { + assert(x > BigInt.zero); + BigInt result = BigInt.one; + while (result <= x) { + result = BigInt.from(2) * result; + } + return result ~/ BigInt.from(2); + } + + BigInt e = other; + if (e == BigInt.zero || (order != null && e % order! == BigInt.zero)) { + return AffinePointt(curve, BigInt.zero, BigInt.zero); + } + + if (e < BigInt.zero) { + return -this * -e; + } + + e *= BigInt.from(3); + AffinePointt negativeSelf = AffinePointt(curve, x, -y, order: order); + BigInt i = leftmostBit(e) ~/ BigInt.from(2); + AffinePointt result = this; + + while (i > BigInt.one) { + result = result.doublePoint(); + if ((e & i) != BigInt.zero && (other & i) == BigInt.zero) { + result = (result + this) as AffinePointt; + } + if ((e & i) == BigInt.zero && (other & i) != BigInt.zero) { + result = (result + negativeSelf) as AffinePointt; + } + i = i ~/ BigInt.from(2); + } + + return result; + } + + /// Doubles the `AffinePointt` by performing point doubling operation. + /// It computes the new point representing the result of doubling this point + /// on the elliptic curve. If `this` is the point at infinity, it returns + /// the point at infinity. + /// + /// The doubling operation on the elliptic curve is used to efficiently + /// calculate scalar multiplications. It computes the new coordinates (x, y) + /// on the curve that results from doubling the given point. + /// + /// Returns a new `AffinePointt` representing the result of doubling this point. + @override + AffinePointt doublePoint() { + if (isInfinity) { + return AffinePointt(curve, BigInt.zero, BigInt.zero); + } + + BigInt p = curve.p; + BigInt a = curve.a; + + BigInt l = (BigInt.from(3) * x * x + a) * + BigintUtils.inverseMod(BigInt.from(2) * y, p) % + p; + + BigInt x3 = (l * l - BigInt.from(2) * x) % p; + BigInt y3 = (l * (x - x3) - y) % p; + + return AffinePointt(curve, x3, y3, order: null); + } + + @override + int get hashCode => x.hashCode ^ y.hashCode; +} diff --git a/lib/crypto/crypto/cdsa/point/ristretto_point.dart b/lib/crypto/crypto/cdsa/point/ristretto_point.dart new file mode 100644 index 0000000..b5c852d --- /dev/null +++ b/lib/crypto/crypto/cdsa/point/ristretto_point.dart @@ -0,0 +1,337 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curve.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/base.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/utils/ristretto_utils.dart' + as ristretto_tools; + +/// A class representing a RistrettoPoint, a point on an elliptic curve +/// in the Ristretto255 group, derived from an Edwards curve point. +class RistrettoPoint extends EDPoint { + /// Private constructor for a RistrettoPoint. + /// + /// This constructor is used to create a RistrettoPoint instance with + /// the provided parameters, including the required coordinates (x, y, z, t), + /// the associated elliptic curve, and optional properties such as generator + /// status and order. + /// + /// Parameters: + /// - super.curve: The elliptic curve associated with the point. + /// - super.x: The x-coordinate of the point. + /// - super.y: The y-coordinate of the point. + /// - super.z: The z-coordinate of the point. + /// - super.t: The t-coordinate of the point. + /// - super.generator: A flag indicating if the point is a generator (default is false). + /// - super.order: The order of the point in the group (optional). + RistrettoPoint._( + {required super.curve, + required super.x, + required super.y, + required super.z, + required super.t, + super.generator = false, + super.order}); + + /// Create a RistrettoPoint from an EdwardsPoint. + /// + /// This factory method takes an EdwardsPoint 'point' and extracts its + /// coordinates to create a new RistrettoPoint. It inherits various + /// properties from the EdwardsPoint, such as the curve, generator status, + /// and order. + /// + /// Parameters: + /// - point: An EdwardsPoint to derive the RistrettoPoint from. + /// + /// Returns: + /// - RistrettoPoint: A RistrettoPoint created from the EdwardsPoint. + factory RistrettoPoint.fromEdwardsPoint(EDPoint point) { + final coords = point.getCoords(); + return RistrettoPoint._( + curve: point.curve, + x: coords[0], + y: coords[1], + z: coords[2], + t: coords[3], + generator: point.generator, + order: point.order); + } + + /// Factory method to create a RistrettoPoint from a byte representation. + /// + /// This factory method creates a RistrettoPoint instance from a byte + /// representation of a RistrettoPoint. It follows a series of calculations + /// and checks to ensure the validity of the input bytes and derive the + /// RistrettoPoint coordinates. + /// + /// Parameters: + /// - bytes: The byte representation of the RistrettoPoint. + /// - curveEdTw: An optional parameter specifying the curve (default is Ed25519). + /// + /// Returns: + /// - RistrettoPoint: A RistrettoPoint instance created from the input bytes. + /// + /// Throws: + /// - ArgumentError: If the input bytes result in an invalid RistrettoPoint. + /// - Exception: If the RistrettoPoint creation fails any validity checks. + factory RistrettoPoint.fromBytes(List bytes, {CurveED? curveEdTw}) { + List hex = bytes; + final c = curveEdTw ?? Curves.curveEd25519; + final a = c.a; + final d = c.d; + final P = c.p; + final s = BigintUtils.fromBytes(hex, byteOrder: Endian.little); + if (ristretto_tools.isOdd(s, P)) { + throw ArgumentError("Invalid RistrettoPoint"); + } + final s2 = ristretto_tools.positiveMod(s * s, P); + final u1 = ristretto_tools.positiveMod(BigInt.one + a * s2, P); + final u2 = ristretto_tools.positiveMod(BigInt.one - a * s2, P); + final u1_2 = ristretto_tools.positiveMod(u1 * u1, P); + final u2_2 = ristretto_tools.positiveMod(u2 * u2, P); + final v = ristretto_tools.positiveMod(a * d * u1_2 - u2_2, P); + final invSqrt = ristretto_tools.sqrtUV( + BigInt.one, ristretto_tools.positiveMod(v * u2_2, P)); + final x2 = ristretto_tools.positiveMod(invSqrt.$2 * u2, P); + final y2 = ristretto_tools.positiveMod(invSqrt.$2 * x2 * v, P); + + BigInt x = ristretto_tools.positiveMod((s + s) * x2, P); + if (ristretto_tools.isOdd(x, P)) { + x = ristretto_tools.positiveMod(-x, P); + } + + final y = ristretto_tools.positiveMod(u1 * y2, P); + final t = ristretto_tools.positiveMod(x * y, P); + if (!invSqrt.$1 || ristretto_tools.isOdd(t, P) || y == BigInt.zero) { + throw Exception("Invalid RistrettoPoint"); + } + return RistrettoPoint.fromEdwardsPoint( + EDPoint(curve: c, x: x, y: y, z: BigInt.one, t: t)); + } + + /// Maps a BigInt 'r0' to an Edwards curve point (EDPoint). + /// + /// This static method maps a given 'r0' value to an Edwards curve point + /// using a series of calculations and modular arithmetic. The resulting + /// point is returned as an instance of EDPoint. + /// + /// Parameters: + /// - r0: The input BigInt 'r0' value to be mapped to a point. + /// + /// Returns: + /// - EDPoint: The Edwards curve point mapped from the input 'r0'. + /// + /// Details: + /// - The method performs calculations to derive various intermediate values, + /// computes the coordinates of the Edwards curve point, and ensures that + /// the final point is correctly mapped from the input 'r0'. + static EDPoint mapToPoint(BigInt r0) { + final curveD = Curves.generatorED25519.curve.d; + final primeP = Curves.curveEd25519.p; + + final rSquared = + ristretto_tools.positiveMod(ristretto_tools.sqrtM1 * r0 * r0, primeP); + final numeratorS = ristretto_tools.positiveMod( + (rSquared + BigInt.one) * ristretto_tools.oneMinusDSq, primeP); + + var c = BigInt.from(-1); + + final D = ristretto_tools.positiveMod( + (c - curveD * rSquared) * + ristretto_tools.positiveMod(rSquared + curveD, primeP), + primeP); + + final uvRatio = ristretto_tools.sqrtUV(numeratorS, D); + + final useSecondRoot = uvRatio.$1; + BigInt sValue = uvRatio.$2; + + BigInt sComputed = ristretto_tools.positiveMod(sValue * r0, primeP); + + if (!ristretto_tools.isOdd(sComputed, primeP)) { + sComputed = ristretto_tools.positiveMod(-sComputed, primeP); + } + + if (!useSecondRoot) { + sValue = sComputed; + } + + if (!useSecondRoot) { + c = rSquared; + } + + final ntValue = ristretto_tools.positiveMod( + c * (rSquared - BigInt.one) * ristretto_tools.minusOneSq - D, primeP); + + final sSquared = sValue * sValue; + final w0 = ristretto_tools.positiveMod((sValue + sValue) * D, primeP); + final w1 = ristretto_tools.positiveMod( + ntValue * ristretto_tools.sqrtAdMinusOne, primeP); + final w2 = ristretto_tools.positiveMod(BigInt.one - sSquared, primeP); + final w3 = ristretto_tools.positiveMod(BigInt.one + sSquared, primeP); + + return EDPoint( + curve: Curves.curveEd25519, + x: ristretto_tools.positiveMod(w0 * w3, primeP), + y: ristretto_tools.positiveMod(w2 * w1, primeP), + z: ristretto_tools.positiveMod(w1 * w3, primeP), + t: ristretto_tools.positiveMod(w0 * w2, primeP)); + } + + /// Factory method to create a RistrettoPoint from a uniform byte representation. + /// + /// This factory method creates a RistrettoPoint from a uniform byte representation, + /// which is typically used for generating keys or secret values. It takes the + /// input 'hash' as a byte array, extracts two parts ('rB' and 'lB') from it, + /// maps them to Edwards curve points, adds them together, and returns the result + /// as a RistrettoPoint. + /// + /// Parameters: + /// - hash: A List representing the uniform byte value to be converted. + /// + /// Returns: + /// - RistrettoPoint: A RistrettoPoint instance created from the uniform byte input. + /// + /// Details: + /// - The method extracts two parts ('rB' and 'lB') from the input 'hash', + /// maps them to Edwards curve points, and combines them to produce the + /// resulting RistrettoPoint. This is often used in key generation processes. + factory RistrettoPoint.fromUniform(List hash) { + final rB = + BigintUtils.fromBytes(hash.sublist(0, 32), byteOrder: Endian.little) & + ristretto_tools.mask255; + final rPoint = mapToPoint(rB); + + final lB = + BigintUtils.fromBytes(hash.sublist(32, 64), byteOrder: Endian.little) & + ristretto_tools.mask255; + final lPoint = mapToPoint(lB); + + final sumPoint = rPoint + lPoint; + return RistrettoPoint.fromEdwardsPoint(sumPoint); + } + + /// Converts the RistrettoPoint to a byte array in Edwards curve encoding. + /// + /// This method converts the RistrettoPoint to a byte array using the specified + /// encoding type (default is compressed). It delegates the conversion to the + /// superclass method and returns the result. + /// + /// Parameters: + /// - encodeType: The encoding type for the output byte array (default is compressed). + /// + /// Returns: + /// - List: A byte array representing the RistrettoPoint in Edwards encoding. + List toEdwardBytes([EncodeType encodeType = EncodeType.comprossed]) { + return super.toBytes(encodeType); + } + + /// Overrides the '*' operator to multiply a RistrettoPoint by another object. + /// + /// This operator override allows you to multiply a RistrettoPoint by another object. + /// It delegates the multiplication to the superclass and then converts the result + /// to a RistrettoPoint. + /// + /// Parameters: + /// - other: The object to multiply with the RistrettoPoint. + /// + /// Returns: + /// - RistrettoPoint: The result of the multiplication as a RistrettoPoint. + @override + RistrettoPoint operator *(other) { + final mul = super * other; + return RistrettoPoint.fromEdwardsPoint(mul); + } + + /// Overrides the '+' operator to add a RistrettoPoint to another object. + /// + /// This operator override allows you to add a RistrettoPoint to another object. + /// It delegates the addition to the superclass and then converts the result + /// to a RistrettoPoint. + /// + /// Parameters: + /// - other: The object to add to the RistrettoPoint. + /// + /// Returns: + /// - RistrettoPoint: The result of the addition as a RistrettoPoint. + @override + RistrettoPoint operator +(other) { + final add = super + other; + return RistrettoPoint.fromEdwardsPoint(add); + } + + /// Overrides the unary negation '-' operator to negate a RistrettoPoint. + /// + /// This operator override allows you to negate a RistrettoPoint using the unary + /// negation operator '-'. It delegates the negation to the superclass and then + /// converts the result to a RistrettoPoint. + /// + /// Returns: + /// - RistrettoPoint: The negated RistrettoPoint. + @override + RistrettoPoint operator -() { + final neg = -super; + return RistrettoPoint.fromEdwardsPoint(neg); + } + + /// Overrides the 'toBytes' method to convert the RistrettoPoint to a byte array. + /// + /// This method converts the RistrettoPoint to a byte array by computing its + /// coordinates and encoding them according to the default Ristretto encoding rules. + /// The resulting byte array represents the RistrettoPoint in a format suitable + /// for serialization and other data storage or transmission purposes. + /// + /// Returns: + /// - List: A byte array representing the RistrettoPoint. + /// + /// Details: + /// - The method calculates intermediate values and applies encoding-specific + /// transformations to the point's coordinates in accordance with Ristretto + /// encoding rules. The result is a compact byte array representation. + /// [encodeType] works only for [toEdwardBytes] + @override + List toBytes([EncodeType encodeType = EncodeType.comprossed]) { + final primeP = Curves.curveEd25519.p; + final pointCoords = getCoords(); + BigInt x = pointCoords[0]; + BigInt y = pointCoords[1]; + BigInt z = pointCoords[2]; + BigInt t = pointCoords[3]; + + final u1 = ristretto_tools.positiveMod( + ristretto_tools.positiveMod(z + y, primeP) * + ristretto_tools.positiveMod(z - y, primeP), + primeP); + final u2 = ristretto_tools.positiveMod(x * y, primeP); + + final u2Squared = ristretto_tools.positiveMod(u2 * u2, primeP); + final invSqrt = ristretto_tools + .sqrtUV(BigInt.one, ristretto_tools.positiveMod(u1 * u2Squared, primeP)) + .$2; + final d1 = ristretto_tools.positiveMod(invSqrt * u1, primeP); + final d2 = ristretto_tools.positiveMod(invSqrt * u2, primeP); + final zInverse = ristretto_tools.positiveMod(d1 * d2 * t, primeP); + BigInt D; + if (ristretto_tools.isOdd(t * zInverse, primeP)) { + final x2 = + ristretto_tools.positiveMod(y * ristretto_tools.sqrtM1, primeP); + final y2 = + ristretto_tools.positiveMod(x * ristretto_tools.sqrtM1, primeP); + x = x2; + y = y2; + D = ristretto_tools.positiveMod(d1 * ristretto_tools.invSqrt, primeP); + } else { + D = d2; + } + if (ristretto_tools.isOdd(x * zInverse, primeP)) { + y = ristretto_tools.positiveMod(-y, primeP); + } + BigInt s = ristretto_tools.positiveMod((z - y) * D, primeP); + if (ristretto_tools.isOdd(s, primeP)) { + s = ristretto_tools.positiveMod(-s, primeP); + } + return BigintUtils.toBytes(s, order: Endian.little, length: 32); + } +} diff --git a/lib/crypto/crypto/cdsa/rfc6979/rfc6979.dart b/lib/crypto/crypto/cdsa/rfc6979/rfc6979.dart new file mode 100644 index 0000000..acd2515 --- /dev/null +++ b/lib/crypto/crypto/cdsa/rfc6979/rfc6979.dart @@ -0,0 +1,130 @@ +// "python-ecdsa" Copyright (c) 2010 Brian Warner + +// Portions written in 2005 by Peter Pearson and placed in the public domain. + +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: + +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/crypto/crypto/hmac/hmac.dart'; + +/// A class that implements the RFC6979 deterministic K value generation algorithm for ECDSA. +class RFC6979 { + /// Generates a deterministic K value for ECDSA signatures. + /// + /// This method implements the RFC6979 deterministic K value generation algorithm + /// for use in ECDSA signatures. It takes various input parameters, including the + /// curve order, secret exponent, a hash function, data, and optional extra entropy. + /// + /// Parameters: + /// - order: The order of the elliptic curve. + /// - secexp: The secret exponent. + /// - hashFunc: A hash function to use in the HMAC operations. + /// - data: Additional data for K generation. + /// - retryGn: The number of retries allowed in case of invalid K values. + /// - extraEntropy: Optional extra entropy for K generation. + /// + /// Returns: + /// - BigInt: The generated deterministic K value. + /// + /// Details: + /// - This method follows the RFC6979 algorithm for deterministic K value generation + /// in ECDSA signatures. It utilizes the provided parameters to create a secure + /// and deterministic K value suitable for ECDSA signature operations. + /// - The optional 'extraEntropy' parameter allows you to introduce additional + /// entropy for improved security if needed. + /// - The method handles the entire K generation process according to the RFC6979 + /// specifications and returns the generated K value. + /// + /// Note: The RFC6979 algorithm ensures that K values are generated deterministically + /// and securely, which is essential for cryptographic operations. + static BigInt generateK( + BigInt order, BigInt secexp, Hash Function() hashFunc, List data, + {int retryGn = 0, List? extraEntropy}) { + int qlen = order.bitLength; + final hx = hashFunc(); + int holen = hx.getDigestLength; + int rolen = (qlen + 7) ~/ 8; + + List> bx = [ + BigintUtils.toBytes(secexp, length: BigintUtils.orderLen(order)), + BigintUtils.bitsToOctetsWithOrderPadding(data, order), + extraEntropy ?? List.empty(), + ]; + + List v = List.filled(holen, 0); + v.fillRange(0, holen, 0x01); + + List k = List.filled(holen, 0); + + HMAC hmac = HMAC(hashFunc, k); + + hmac.update(List.from([...v, 0x00])); + + for (var i in bx) { + hmac.update(i); + } + k = hmac.digest(); + + hmac.clean(); + hmac = HMAC(hashFunc, k); + hmac.update(v); + v = hmac.digest(); + + hmac.clean(); + hmac = HMAC(hashFunc, k); + hmac.update(List.from([...v, 0x01])); + + for (var i in bx) { + hmac.update(i); + } + k = hmac.digest(); + + // Step G + v = HMAC(hashFunc, k).update(v).digest(); + + // Step H + while (true) { + // Step H1 + List t = List.empty(); + + // Step H2 + while (t.length < rolen) { + v = HMAC(hashFunc, k).update(v).digest(); + t = List.from([...t, ...v]); + } + + // Step H3 + BigInt secret = BigintUtils.bitsToBigIntWithLengthLimit(t, qlen); + + if (secret >= BigInt.one && secret < order) { + if (retryGn <= 0) { + return secret; + } + retryGn -= 1; + } + + k = HMAC(hashFunc, k).update(List.from([...v, 0x00])).digest(); + v = HMAC(hashFunc, k).update(v).digest(); + } + } +} diff --git a/lib/crypto/crypto/cdsa/utils/ed25519_utils.dart b/lib/crypto/crypto/cdsa/utils/ed25519_utils.dart new file mode 100644 index 0000000..cc3f837 --- /dev/null +++ b/lib/crypto/crypto/cdsa/utils/ed25519_utils.dart @@ -0,0 +1,32 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; + +/// Utility class for Ed25519-specific operations. +class Ed25519Utils { + /// Reduces a scalar represented as a byte array. + /// + /// This method takes a byte array 'scalar' representing an Ed25519 scalar + /// and reduces it modulo the order of the Ed25519 curve. The result is + /// returned as a byte array of appropriate length. + /// + /// Parameters: + /// - scalar: A byte array representing the scalar value. + /// + /// Returns: + /// - List: A reduced byte array representing the scalar modulo the Ed25519 curve order. + /// + /// Details: + /// - The method converts the byte array to a BigInt, performs the reduction + /// operation, and converts the result back to a byte array. This ensures + /// that the scalar remains within the valid range for Ed25519 operations. + static List scalarReduce(List scalar) { + final toint = BigintUtils.fromBytes(scalar, byteOrder: Endian.little); + final reduce = toint % Curves.generatorED25519.order!; + final tobytes = BigintUtils.toBytes(reduce, + order: Endian.little, + length: BigintUtils.orderLen(Curves.generatorED25519.order!)); + return tobytes; + } +} diff --git a/lib/crypto/crypto/cdsa/utils/exp.dart b/lib/crypto/crypto/cdsa/utils/exp.dart new file mode 100644 index 0000000..d82994e --- /dev/null +++ b/lib/crypto/crypto/cdsa/utils/exp.dart @@ -0,0 +1,31 @@ +/// An exception class for errors related to square root calculations. +/// +/// This exception is thrown when there is an issue with computing the square root +/// of a BigInt value within the defined constraints. +/// +class SquareRootError implements Exception { + final String? message; + + const SquareRootError([this.message]); + + @override + String toString() { + return message ?? super.toString(); + } +} + +/// An exception class for errors related to Jacobi symbol calculations. +/// +/// This exception is thrown when there is an issue with computing the Jacobi symbol +/// for a pair of BigInt values within the defined constraints. +/// +class JacobiError implements Exception { + final String? message; + + const JacobiError([this.message]); + + @override + String toString() { + return message ?? super.toString(); + } +} diff --git a/lib/crypto/crypto/cdsa/utils/ristretto_utils.dart b/lib/crypto/crypto/cdsa/utils/ristretto_utils.dart new file mode 100644 index 0000000..06b55ee --- /dev/null +++ b/lib/crypto/crypto/cdsa/utils/ristretto_utils.dart @@ -0,0 +1,907 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; + +/// Helper methods for Ristretto255 operations. +/// The square root of -1 in the Ristretto255 curve field. +final sqrtM1 = BigInt.parse( + '19681161376707505956807079304988542015446066515923890162744021073123829784752'); + +/// The square of -1 in the Ristretto255 curve field. +final minusOneSq = BigInt.parse( + '40440834346308536858101042469323190826248399146238708352240133220865137265952'); + +/// The value 1 - d^2 in the Ristretto255 curve field. +final oneMinusDSq = BigInt.parse( + '1159843021668779879193775521855586647937357759715417654439879720876111806838'); + +/// The value (a*d) - 1 in the Ristretto255 curve field. +final sqrtAdMinusOne = BigInt.parse( + '25063068953384623474111414158702152701244531502492656460079210482610430750235'); + +/// The modular inverse of the square root (1/sqrt(a*d)) in the Ristretto255 curve field. +final invSqrt = BigInt.parse( + '54469307008909316920995813868745141605393597292927456921205312896311721017578'); + +/// A mask for the least significant 255 bits, used for bitwise operations. +final mask255 = BigInt.parse( + "7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + radix: 16); + +/// Calculates the positive remainder of two BigInt values. +/// +/// This function takes two BigInt values, `a` and `b`, and computes `a % b`. +/// If the result is greater than or equal to zero, it returns the result. +/// If the result is negative, it adds `b` to the result to make it positive. +/// +/// Parameters: +/// a (BigInt): The dividend. +/// b (BigInt): The divisor. +/// +/// Returns: +/// BigInt: The positive remainder of `a` when divided by `b`. +BigInt positiveMod(BigInt a, BigInt b) { + final result = a % b; + return result >= BigInt.zero ? result : b + result; +} + +/// Computes modular exponentiation for BigInt values. +/// +/// This function calculates 'x' raised to the power 'power', modulo 'modulo'. +/// It uses a modular exponentiation algorithm to efficiently compute +/// large powers while keeping the result within the range of 'modulo'. +/// +/// Parameters: +/// x (BigInt): The base value. +/// power (BigInt): The exponent to which 'x' is raised. +/// modulo (BigInt): The modulus value. +/// +/// Returns: +/// BigInt: The result of 'x' raised to the 'power', modulo 'modulo'. +BigInt _mExp(BigInt x, BigInt power, BigInt modulo) { + BigInt res = x; + while (power > BigInt.zero) { + res *= res; + res %= modulo; + power -= BigInt.one; + } + return res; +} + +/// Calculate values relevant to the Ed25519 elliptic curve for pow(2, 252 - 3). +/// +/// This function takes a BigInt value 'x' and computes various intermediate values +/// necessary for the Ed25519 elliptic curve, specifically for pow(2, 252 - 3). +/// It involves several modular exponentiations and modular multiplications. +/// +/// Parameters: +/// x (BigInt): The input value. +/// +/// Returns: +/// Tuple of BigInt: A tuple containing two BigInt values: +/// - The result of pow(2, 252 - 3) modulo the Ed25519 curve prime 'P'. +/// - An intermediate value 'b2' used in the calculations. +/// +BigInt _pow252(BigInt x) { + final P = Curves.curveEd25519.p; + final xSquared = (x * x) % P; + final xCubed = (xSquared * x) % P; + final xTo4th = (_mExp(xCubed, BigInt.two, P) * xCubed) % P; + final xTo5th = (_mExp(xTo4th, BigInt.one, P) * x) % P; + final xTo10th = (_mExp(xTo5th, BigInt.from(5), P) * xTo5th) % P; + final xTo20th = (_mExp(xTo10th, BigInt.from(10), P) * xTo10th) % P; + final xTo40th = (_mExp(xTo20th, BigInt.from(20), P) * xTo20th) % P; + final xTo80th = (_mExp(xTo40th, BigInt.from(40), P) * xTo40th) % P; + final xTo160th = (_mExp(xTo80th, BigInt.from(80), P) * xTo80th) % P; + final xTo240th = (_mExp(xTo160th, BigInt.from(80), P) * xTo80th) % P; + final xTo250th = (_mExp(xTo240th, BigInt.from(10), P) * xTo10th) % P; + final result = (_mExp(xTo250th, BigInt.two, P) * x) % P; + return result; +} + +/// Check if a BigInt number is odd with respect to a given modulo. +/// +/// This function determines whether a BigInt 'num' is an odd number +/// when computed within the modular arithmetic defined by 'modulo'. +/// It calculates the remainder of 'num' when divided by 'modulo' and checks +/// if the least significant bit is set to 1 (i.e., it's an odd number). +/// +/// Parameters: +/// num (BigInt): The number to be checked for oddness. +/// modulo (BigInt): The modulus used for the modular arithmetic. +/// +/// Returns: +/// bool: 'true' if 'num' is an odd number within the given modulo, 'false' otherwise. +bool isOdd(BigInt num, BigInt modulo) { + return (positiveMod(num, modulo) & BigInt.one) == BigInt.one; +} + +/// sqrt u/v +(bool, BigInt) sqrtUV(BigInt u, BigInt v) { + final P = Curves.curveEd25519.p; + final v3 = positiveMod(v * v * v, P); + final v7 = positiveMod(v3 * v3 * v, P); + final pow = _pow252(u * v7); + var x = positiveMod(u * v3 * pow, P); + final vx2 = positiveMod(v * x * x, P); + final root1 = x; + + final root2 = positiveMod(x * sqrtM1, P); + final useRoot1 = vx2 == u; + final useRoot2 = vx2 == positiveMod(-u, P); + final noRoot = vx2 == positiveMod(-u * sqrtM1, P); + + if (useRoot1) { + x = root1; + } + if (useRoot2 || noRoot) { + x = root2; + } + + if (isOdd(x, P)) { + x = positiveMod(-x, P); + } + return (useRoot1 || useRoot2, x); +} + +/// Constants for scalar arithmetic operations +const scMinusOne = [ + 236, + 211, + 245, + 92, + 26, + 99, + 18, + 88, + 214, + 156, + 247, + 162, + 222, + 249, + 222, + 20, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16 +]; +const scOne = [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 +]; +const scZero = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 +]; + +/// Loads a 3-byte integer from a list of integers and returns it as a BigInt. +/// +/// This method takes a list of integers and interprets the first 3 integers as +/// little-endian bytes to form a 3-byte integer. It then converts this integer to +/// a BigInt and returns it. +/// +/// Parameters: +/// - input: A list of integers representing the 3-byte integer. +/// +/// Returns: +/// A BigInt representation of the loaded 3-byte integer. +/// +BigInt _load3(List input) { + int r = input[0]; + r |= input[1] << 8; + r |= input[2] << 16; + return BigInt.from(r); +} + +/// Loads a 4-byte integer from a list of integers and returns it as a BigInt. +/// +/// This method takes a list of integers and interprets the first 4 integers as +/// little-endian bytes to form a 4-byte integer. It then converts this integer to +/// a BigInt and returns it. +/// +/// Parameters: +/// - input: A list of integers representing the 4-byte integer. +/// +/// Returns: +/// A BigInt representation of the loaded 4-byte integer. +/// +BigInt _load4(List input) { + int r = input[0]; + r |= input[1] << 8; + r |= input[2] << 16; + r |= input[3] << 24; + return BigInt.from(r); +} + +/// Adds two scalar values represented as Lists and returns the result as a List. +/// +/// This method adds two scalar values, `scalar1` and `scalar2`, and stores the result in the `out` List. +/// The addition is performed according to Ristretto255 scalar operations. +/// +/// Parameters: +/// - scalar1: The first scalar value to add. +/// - scalar2: The second scalar value to add. +/// +/// Returns: +/// A List representing the result of the addition. +List add(List scalar1, List scalar2) { + final out = List.filled(32, 0); + _mulAdd(out, scOne, scalar1, scalar2); + return BytesUtils.toBytes(out); +} + +/// Subtracts one scalar value from another and returns the result as a List. +/// +/// This method subtracts `scalar2` from `scalar1` and stores the result in the `out` List. +/// The subtraction is performed according to Ristretto255 scalar operations. +/// +/// Parameters: +/// - scalar1: The scalar value to subtract from. +/// - scalar2: The scalar value to subtract. +/// +/// Returns: +/// A List representing the result of the subtraction. +List sub(List scalar1, List scalar2) { + final out = List.filled(32, 0); + _mulAdd(out, scMinusOne, scalar2, scalar1); + return BytesUtils.toBytes(out); +} + +/// Negates a scalar value and returns the result as a List. +/// +/// This method negates the given `scalar` and stores the result in the `out` List. +/// The negation is performed according to Ristretto255 scalar operations. +/// +/// Parameters: +/// - scalar: The scalar value to negate. +/// +/// Returns: +/// A List representing the negated scalar. +List neg(List scalar) { + final out = List.filled(32, 0); + _mulAdd(out, scMinusOne, scalar, scZero); + return BytesUtils.toBytes(out); +} + +/// Multiplies two scalar values represented as Lists and returns the result as a List. +/// +/// This method multiplies two scalar values, `scalar1` and `scalar2`, and stores the result in the `out` List. +/// The multiplication is performed according to Ristretto255 scalar operations. +/// +/// Parameters: +/// - scalar1: The first scalar value to multiply. +/// - scalar2: The second scalar value to multiply. +/// +/// Returns: +/// A List representing the result of the multiplication. +List mul(List scalar1, List scalar2) { + final out = List.filled(32, 0); + _mulAdd(out, scalar1, scalar2, scZero); + + return BytesUtils.toBytes(out); +} + +/// A constant representing the value 2097151 as a BigInt. +/// +/// This constant is used in various scalar operations in the Ristretto255 library. +/// +final _b2097151 = BigInt.from(2097151); + +/// A constant representing the value 666643 as a BigInt. +/// +/// This constant is used in various scalar operations in the Ristretto255 library. +/// +final _b666643 = BigInt.from(666643); + +/// A constant representing the value 470296 as a BigInt. +/// +/// This constant is used in various scalar operations in the Ristretto255 library. +/// +final _b470296 = BigInt.from(470296); + +/// A constant representing the value 654183 as a BigInt. +/// +/// This constant is used in various scalar operations in the Ristretto255 library. +/// +final _b654183 = BigInt.from(654183); + +/// A constant representing the value 997805 as a BigInt. +/// +/// This constant is used in various scalar operations in the Ristretto255 library. +/// +final _b997805 = BigInt.from(997805); + +/// A constant representing the value 136657 as a BigInt. +/// +/// This constant is used in various scalar operations in the Ristretto255 library. +/// +final _b136657 = BigInt.from(136657); + +/// A constant representing the value 683901 as a BigInt. +/// +/// This constant is used in various scalar operations in the Ristretto255 library. +final _b683901 = BigInt.from(683901); + +void _mulAdd(List s, List a, List b, List c) { + BigInt a0 = _b2097151 & _load3(a.sublist(0)); + BigInt a1 = _b2097151 & (_load4(a.sublist(2)) >> 5); + BigInt a2 = _b2097151 & (_load3(a.sublist(5)) >> 2); + BigInt a3 = _b2097151 & (_load4(a.sublist(7)) >> 7); + BigInt a4 = _b2097151 & (_load4(a.sublist(10)) >> 4); + BigInt a5 = _b2097151 & (_load3(a.sublist(13)) >> 1); + BigInt a6 = _b2097151 & (_load4(a.sublist(15)) >> 6); + BigInt a7 = _b2097151 & (_load3(a.sublist(18)) >> 3); + BigInt a8 = _b2097151 & _load3(a.sublist(21)); + BigInt a9 = _b2097151 & (_load4(a.sublist(23)) >> 5); + BigInt a10 = _b2097151 & (_load3(a.sublist(26)) >> 2); + BigInt a11 = (_load4(a.sublist(28)) >> 7); + + BigInt b0 = _b2097151 & _load3(b.sublist(0)); + BigInt b1 = _b2097151 & (_load4(b.sublist(2)) >> 5); + BigInt b2 = _b2097151 & (_load3(b.sublist(5)) >> 2); + BigInt b3 = _b2097151 & (_load4(b.sublist(7)) >> 7); + BigInt b4 = _b2097151 & (_load4(b.sublist(10)) >> 4); + BigInt b5 = _b2097151 & (_load3(b.sublist(13)) >> 1); + BigInt b6 = _b2097151 & (_load4(b.sublist(15)) >> 6); + BigInt b7 = _b2097151 & (_load3(b.sublist(18)) >> 3); + BigInt b8 = _b2097151 & _load3(b.sublist(21)); + BigInt b9 = _b2097151 & (_load4(b.sublist(23)) >> 5); + BigInt b10 = _b2097151 & (_load3(b.sublist(26)) >> 2); + BigInt b11 = (_load4(b.sublist(28)) >> 7); + + BigInt c0 = _b2097151 & _load3(c.sublist(0)); + BigInt c1 = _b2097151 & (_load4(c.sublist(2)) >> 5); + BigInt c2 = _b2097151 & (_load3(c.sublist(5)) >> 2); + BigInt c3 = _b2097151 & (_load4(c.sublist(7)) >> 7); + BigInt c4 = _b2097151 & (_load4(c.sublist(10)) >> 4); + BigInt c5 = _b2097151 & (_load3(c.sublist(13)) >> 1); + BigInt c6 = _b2097151 & (_load4(c.sublist(15)) >> 6); + BigInt c7 = _b2097151 & (_load3(c.sublist(18)) >> 3); + BigInt c8 = _b2097151 & _load3(c.sublist(21)); + BigInt c9 = _b2097151 & (_load4(c.sublist(23)) >> 5); + BigInt c10 = _b2097151 & (_load3(c.sublist(26)) >> 2); + BigInt c11 = (_load4(c.sublist(28)) >> 7); + List carry = List.filled(23, BigInt.zero); + BigInt s0 = c0 + a0 * b0; + BigInt s1 = c1 + a0 * b1 + a1 * b0; + BigInt s2 = c2 + a0 * b2 + a1 * b1 + a2 * b0; + BigInt s3 = c3 + a0 * b3 + a1 * b2 + a2 * b1 + a3 * b0; + BigInt s4 = c4 + a0 * b4 + a1 * b3 + a2 * b2 + a3 * b1 + a4 * b0; + BigInt s5 = c5 + a0 * b5 + a1 * b4 + a2 * b3 + a3 * b2 + a4 * b1 + a5 * b0; + BigInt s6 = + c6 + a0 * b6 + a1 * b5 + a2 * b4 + a3 * b3 + a4 * b2 + a5 * b1 + a6 * b0; + BigInt s7 = c7 + + a0 * b7 + + a1 * b6 + + a2 * b5 + + a3 * b4 + + a4 * b3 + + a5 * b2 + + a6 * b1 + + a7 * b0; + BigInt s8 = c8 + + a0 * b8 + + a1 * b7 + + a2 * b6 + + a3 * b5 + + a4 * b4 + + a5 * b3 + + a6 * b2 + + a7 * b1 + + a8 * b0; + BigInt s9 = c9 + + a0 * b9 + + a1 * b8 + + a2 * b7 + + a3 * b6 + + a4 * b5 + + a5 * b4 + + a6 * b3 + + a7 * b2 + + a8 * b1 + + a9 * b0; + BigInt s10 = c10 + + a0 * b10 + + a1 * b9 + + a2 * b8 + + a3 * b7 + + a4 * b6 + + a5 * b5 + + a6 * b4 + + a7 * b3 + + a8 * b2 + + a9 * b1 + + a10 * b0; + BigInt s11 = c11 + + a0 * b11 + + a1 * b10 + + a2 * b9 + + a3 * b8 + + a4 * b7 + + a5 * b6 + + a6 * b5 + + a7 * b4 + + a8 * b3 + + a9 * b2 + + a10 * b1 + + a11 * b0; + BigInt s12 = a1 * b11 + + a2 * b10 + + a3 * b9 + + a4 * b8 + + a5 * b7 + + a6 * b6 + + a7 * b5 + + a8 * b4 + + a9 * b3 + + a10 * b2 + + a11 * b1; + BigInt s13 = a2 * b11 + + a3 * b10 + + a4 * b9 + + a5 * b8 + + a6 * b7 + + a7 * b6 + + a8 * b5 + + a9 * b4 + + a10 * b3 + + a11 * b2; + BigInt s14 = a3 * b11 + + a4 * b10 + + a5 * b9 + + a6 * b8 + + a7 * b7 + + a8 * b6 + + a9 * b5 + + a10 * b4 + + a11 * b3; + BigInt s15 = a4 * b11 + + a5 * b10 + + a6 * b9 + + a7 * b8 + + a8 * b7 + + a9 * b6 + + a10 * b5 + + a11 * b4; + BigInt s16 = + a5 * b11 + a6 * b10 + a7 * b9 + a8 * b8 + a9 * b7 + a10 * b6 + a11 * b5; + BigInt s17 = a6 * b11 + a7 * b10 + a8 * b9 + a9 * b8 + a10 * b7 + a11 * b6; + BigInt s18 = a7 * b11 + a8 * b10 + a9 * b9 + a10 * b8 + a11 * b7; + BigInt s19 = a8 * b11 + a9 * b10 + a10 * b9 + a11 * b8; + BigInt s20 = a9 * b11 + a10 * b10 + a11 * b9; + BigInt s21 = a10 * b11 + a11 * b10; + BigInt s22 = a11 * b11; + BigInt s23 = BigInt.zero; + carry[0] = (s0 + (BigInt.one << 20)) >> 21; + s1 += carry[0]; + s0 -= carry[0] << 21; + carry[2] = (s2 + (BigInt.one << 20)) >> 21; + s3 += carry[2]; + s2 -= carry[2] << 21; + carry[4] = (s4 + (BigInt.one << 20)) >> 21; + s5 += carry[4]; + s4 -= carry[4] << 21; + carry[6] = (s6 + (BigInt.one << 20)) >> 21; + s7 += carry[6]; + s6 -= carry[6] << 21; + carry[8] = (s8 + (BigInt.one << 20)) >> 21; + s9 += carry[8]; + s8 -= carry[8] << 21; + carry[10] = (s10 + (BigInt.one << 20)) >> 21; + s11 += carry[10]; + s10 -= carry[10] << 21; + carry[12] = (s12 + (BigInt.one << 20)) >> 21; + s13 += carry[12]; + s12 -= carry[12] << 21; + carry[14] = (s14 + (BigInt.one << 20)) >> 21; + s15 += carry[14]; + s14 -= carry[14] << 21; + carry[16] = (s16 + (BigInt.one << 20)) >> 21; + s17 += carry[16]; + s16 -= carry[16] << 21; + carry[18] = (s18 + (BigInt.one << 20)) >> 21; + s19 += carry[18]; + s18 -= carry[18] << 21; + carry[20] = (s20 + (BigInt.one << 20)) >> 21; + s21 += carry[20]; + s20 -= carry[20] << 21; + carry[22] = (s22 + (BigInt.one << 20)) >> 21; + s23 += carry[22]; + s22 -= carry[22] << 21; + // + carry[1] = (s1 + (BigInt.one << 20)) >> 21; + s2 += carry[1]; + s1 -= carry[1] << 21; + carry[3] = (s3 + (BigInt.one << 20)) >> 21; + s4 += carry[3]; + s3 -= carry[3] << 21; + carry[5] = (s5 + (BigInt.one << 20)) >> 21; + s6 += carry[5]; + s5 -= carry[5] << 21; + carry[7] = (s7 + (BigInt.one << 20)) >> 21; + s8 += carry[7]; + s7 -= carry[7] << 21; + carry[9] = (s9 + (BigInt.one << 20)) >> 21; + s10 += carry[9]; + s9 -= carry[9] << 21; + carry[11] = (s11 + (BigInt.one << 20)) >> 21; + s12 += carry[11]; + s11 -= carry[11] << 21; + carry[13] = (s13 + (BigInt.one << 20)) >> 21; + s14 += carry[13]; + s13 -= carry[13] << 21; + carry[15] = (s15 + (BigInt.one << 20)) >> 21; + s16 += carry[15]; + s15 -= carry[15] << 21; + carry[17] = (s17 + (BigInt.one << 20)) >> 21; + s18 += carry[17]; + s17 -= carry[17] << 21; + carry[19] = (s19 + (BigInt.one << 20)) >> 21; + s20 += carry[19]; + s19 -= carry[19] << 21; + carry[21] = (s21 + (BigInt.one << 20)) >> 21; + s22 += carry[21]; + s21 -= carry[21] << 21; + + s11 += s23 * _b666643; + s12 += s23 * _b470296; + s13 += s23 * _b654183; + s14 -= s23 * _b997805; + s15 += s23 * _b136657; + s16 -= s23 * _b683901; + s23 = BigInt.zero; + + s10 += s22 * _b666643; + s11 += s22 * _b470296; + s12 += s22 * _b654183; + s13 -= s22 * _b997805; + s14 += s22 * _b136657; + s15 -= s22 * _b683901; + s22 = BigInt.zero; + + s9 += s21 * _b666643; + s10 += s21 * _b470296; + s11 += s21 * _b654183; + s12 -= s21 * _b997805; + s13 += s21 * _b136657; + s14 -= s21 * _b683901; + s21 = BigInt.zero; + + s8 += s20 * _b666643; + s9 += s20 * _b470296; + s10 += s20 * _b654183; + s11 -= s20 * _b997805; + s12 += s20 * _b136657; + s13 -= s20 * _b683901; + s20 = BigInt.zero; + + s7 += s19 * _b666643; + s8 += s19 * _b470296; + s9 += s19 * _b654183; + s10 -= s19 * _b997805; + s11 += s19 * _b136657; + s12 -= s19 * _b683901; + s19 = BigInt.zero; + + s6 += s18 * _b666643; + s7 += s18 * _b470296; + s8 += s18 * _b654183; + s9 -= s18 * _b997805; + s10 += s18 * _b136657; + s11 -= s18 * _b683901; + s18 = BigInt.zero; + + carry[6] = (s6 + (BigInt.one << 20)) >> 21; + s7 += carry[6]; + s6 -= carry[6] << 21; + carry[8] = (s8 + (BigInt.one << 20)) >> 21; + s9 += carry[8]; + s8 -= carry[8] << 21; + carry[10] = (s10 + (BigInt.one << 20)) >> 21; + s11 += carry[10]; + s10 -= carry[10] << 21; + carry[12] = (s12 + (BigInt.one << 20)) >> 21; + s13 += carry[12]; + s12 -= carry[12] << 21; + carry[14] = (s14 + (BigInt.one << 20)) >> 21; + s15 += carry[14]; + s14 -= carry[14] << 21; + carry[16] = (s16 + (BigInt.one << 20)) >> 21; + s17 += carry[16]; + s16 -= carry[16] << 21; + + carry[7] = (s7 + (BigInt.one << 20)) >> 21; + s8 += carry[7]; + s7 -= carry[7] << 21; + carry[9] = (s9 + (BigInt.one << 20)) >> 21; + s10 += carry[9]; + s9 -= carry[9] << 21; + carry[11] = (s11 + (BigInt.one << 20)) >> 21; + s12 += carry[11]; + s11 -= carry[11] << 21; + carry[13] = (s13 + (BigInt.one << 20)) >> 21; + s14 += carry[13]; + s13 -= carry[13] << 21; + carry[15] = (s15 + (BigInt.one << 20)) >> 21; + s16 += carry[15]; + s15 -= carry[15] << 21; + + s5 += s17 * _b666643; + s6 += s17 * _b470296; + s7 += s17 * _b654183; + s8 -= s17 * _b997805; + s9 += s17 * _b136657; + s10 -= s17 * _b683901; + s17 = BigInt.zero; + + s4 += s16 * _b666643; + s5 += s16 * _b470296; + s6 += s16 * _b654183; + s7 -= s16 * _b997805; + s8 += s16 * _b136657; + s9 -= s16 * _b683901; + s16 = BigInt.zero; + + s3 += s15 * _b666643; + s4 += s15 * _b470296; + s5 += s15 * _b654183; + s6 -= s15 * _b997805; + s7 += s15 * _b136657; + s8 -= s15 * _b683901; + s15 = BigInt.zero; + + s2 += s14 * _b666643; + s3 += s14 * _b470296; + s4 += s14 * _b654183; + s5 -= s14 * _b997805; + s6 += s14 * _b136657; + s7 -= s14 * _b683901; + s14 = BigInt.zero; + + s1 += s13 * _b666643; + s2 += s13 * _b470296; + s3 += s13 * _b654183; + s4 -= s13 * _b997805; + s5 += s13 * _b136657; + s6 -= s13 * _b683901; + s13 = BigInt.zero; + + s0 += s12 * _b666643; + s1 += s12 * _b470296; + s2 += s12 * _b654183; + s3 -= s12 * _b997805; + s4 += s12 * _b136657; + s5 -= s12 * _b683901; + s12 = BigInt.zero; + + carry[0] = (s0 + (BigInt.one << 20)) >> 21; + s1 += carry[0]; + s0 -= carry[0] << 21; + carry[2] = (s2 + (BigInt.one << 20)) >> 21; + s3 += carry[2]; + s2 -= carry[2] << 21; + carry[4] = (s4 + (BigInt.one << 20)) >> 21; + s5 += carry[4]; + s4 -= carry[4] << 21; + carry[6] = (s6 + (BigInt.one << 20)) >> 21; + s7 += carry[6]; + s6 -= carry[6] << 21; + carry[8] = (s8 + (BigInt.one << 20)) >> 21; + s9 += carry[8]; + s8 -= carry[8] << 21; + carry[10] = (s10 + (BigInt.one << 20)) >> 21; + s11 += carry[10]; + s10 -= carry[10] << 21; + + carry[1] = (s1 + (BigInt.one << 20)) >> 21; + s2 += carry[1]; + s1 -= carry[1] << 21; + carry[3] = (s3 + (BigInt.one << 20)) >> 21; + s4 += carry[3]; + s3 -= carry[3] << 21; + carry[5] = (s5 + (BigInt.one << 20)) >> 21; + s6 += carry[5]; + s5 -= carry[5] << 21; + carry[7] = (s7 + (BigInt.one << 20)) >> 21; + s8 += carry[7]; + s7 -= carry[7] << 21; + carry[9] = (s9 + (BigInt.one << 20)) >> 21; + s10 += carry[9]; + s9 -= carry[9] << 21; + carry[11] = (s11 + (BigInt.one << 20)) >> 21; + s12 += carry[11]; + s11 -= carry[11] << 21; + + s0 += s12 * _b666643; + s1 += s12 * _b470296; + s2 += s12 * _b654183; + s3 -= s12 * _b997805; + s4 += s12 * _b136657; + s5 -= s12 * _b683901; + s12 = BigInt.zero; + + carry[0] = s0 >> 21; + s1 += carry[0]; + s0 -= carry[0] << 21; + carry[1] = s1 >> 21; + s2 += carry[1]; + s1 -= carry[1] << 21; + carry[2] = s2 >> 21; + s3 += carry[2]; + s2 -= carry[2] << 21; + carry[3] = s3 >> 21; + s4 += carry[3]; + s3 -= carry[3] << 21; + carry[4] = s4 >> 21; + s5 += carry[4]; + s4 -= carry[4] << 21; + carry[5] = s5 >> 21; + s6 += carry[5]; + s5 -= carry[5] << 21; + carry[6] = s6 >> 21; + s7 += carry[6]; + s6 -= carry[6] << 21; + carry[7] = s7 >> 21; + s8 += carry[7]; + s7 -= carry[7] << 21; + carry[8] = s8 >> 21; + s9 += carry[8]; + s8 -= carry[8] << 21; + carry[9] = s9 >> 21; + s10 += carry[9]; + s9 -= carry[9] << 21; + carry[10] = s10 >> 21; + s11 += carry[10]; + s10 -= carry[10] << 21; + carry[11] = s11 >> 21; + s12 += carry[11]; + s11 -= carry[11] << 21; + + s0 += s12 * _b666643; + s1 += s12 * _b470296; + s2 += s12 * _b654183; + s3 -= s12 * _b997805; + s4 += s12 * _b136657; + s5 -= s12 * _b683901; + s12 = BigInt.zero; + + carry[0] = s0 >> 21; + s1 += carry[0]; + s0 -= carry[0] << 21; + carry[1] = s1 >> 21; + s2 += carry[1]; + s1 -= carry[1] << 21; + carry[2] = s2 >> 21; + s3 += carry[2]; + s2 -= carry[2] << 21; + carry[3] = s3 >> 21; + s4 += carry[3]; + s3 -= carry[3] << 21; + carry[4] = s4 >> 21; + s5 += carry[4]; + s4 -= carry[4] << 21; + carry[5] = s5 >> 21; + s6 += carry[5]; + s5 -= carry[5] << 21; + carry[6] = s6 >> 21; + s7 += carry[6]; + s6 -= carry[6] << 21; + carry[7] = s7 >> 21; + s8 += carry[7]; + s7 -= carry[7] << 21; + carry[8] = s8 >> 21; + s9 += carry[8]; + s8 -= carry[8] << 21; + carry[9] = s9 >> 21; + s10 += carry[9]; + s9 -= carry[9] << 21; + carry[10] = s10 >> 21; + s11 += carry[10]; + s10 -= carry[10] << 21; + + s[0] = (s0 >> 0).toInt(); + s[1] = (s0 >> 8).toInt(); + s[2] = ((s0 >> 16) | (s1 << 5)).toInt(); + s[3] = (s1 >> 3).toInt(); + s[4] = (s1 >> 11).toInt(); + s[5] = ((s1 >> 19) | (s2 << 2)).toInt(); + s[6] = (s2 >> 6).toInt(); + s[7] = ((s2 >> 14) | (s3 << 7)).toInt(); + s[8] = (s3 >> 1).toInt(); + s[9] = (s3 >> 9).toInt(); + s[10] = ((s3 >> 17) | (s4 << 4)).toInt(); + s[11] = (s4 >> 4).toInt(); + s[12] = (s4 >> 12).toInt(); + s[13] = ((s4 >> 20) | (s5 << 1)).toInt(); + s[14] = (s5 >> 7).toInt(); + s[15] = ((s5 >> 15) | (s6 << 6)).toInt(); + s[16] = (s6 >> 2).toInt(); + s[17] = (s6 >> 10).toInt(); + s[18] = ((s6 >> 18) | (s7 << 3)).toInt(); + s[19] = (s7 >> 5).toInt(); + s[20] = (s7 >> 13).toInt(); + s[21] = (s8 >> 0).toInt(); + s[22] = (s8 >> 8).toInt(); + s[23] = ((s8 >> 16) | (s9 << 5)).toInt(); + s[24] = (s9 >> 3).toInt(); + s[25] = (s9 >> 11).toInt(); + s[26] = ((s9 >> 19) | (s10 << 2)).toInt(); + s[27] = (s10 >> 6).toInt(); + s[28] = ((s10 >> 14) | (s11 << 7)).toInt(); + s[29] = (s11 >> 1).toInt(); + s[30] = (s11 >> 9).toInt(); + s[31] = (s11 >> 17).toInt(); +} diff --git a/lib/crypto/crypto/cdsa/utils/utils.dart b/lib/crypto/crypto/cdsa/utils/utils.dart new file mode 100644 index 0000000..0b0b4c4 --- /dev/null +++ b/lib/crypto/crypto/cdsa/utils/utils.dart @@ -0,0 +1,186 @@ +import 'package:blockchain_utils/crypto/crypto/cdsa/utils/exp.dart'; + +class ECDSAUtils { + /// Computes the modular exponentiation of a polynomial represented by [base] + /// to the power of [exponent], using the specified [polymod] and modulus [p]. + /// + /// This function efficiently calculates (base^exponent) % polymod, where + /// base, polymod, and p are all polynomials with coefficients represented as + /// BigInt. The result is also a polynomial with coefficients mod p. + /// + /// The function iteratively squares and multiplies the base polynomial using + /// the exponent to achieve the modular exponentiation. + /// + /// - [base]: The base polynomial. + /// - [exponent]: The non-negative exponent. + /// - [polymod]: The modulus polynomial. + /// - [p]: The modulus value. + /// + /// Returns the polynomial resulting from (base^exponent) % polymod. + static List polynomialExponentiationMod( + List base, BigInt exponent, List polymod, BigInt p) { + assert(exponent < p); + + if (exponent == BigInt.zero) { + return [BigInt.one]; + } + + List G = List.from(base); + BigInt k = exponent; + List s = + (k % BigInt.two == BigInt.one) ? List.from(G) : [BigInt.one]; + + while (k > BigInt.one) { + k = k ~/ BigInt.two; + G = polynomialMultiplyMod(G, G, polymod, p); + if (k % BigInt.two == BigInt.one) { + s = polynomialMultiplyMod(G, s, polymod, p); + } + } + + return s; + } + + // Calculate the modular square root of 'a' modulo prime 'p' using algorithms from the Handbook of Applied Cryptography (3.34 to 3.39). + // Preconditions: a should be in the range [0, p), and p should be a prime number. + static BigInt modularSquareRootPrime(BigInt a, BigInt p) { + assert(BigInt.zero <= a && a < p); + assert(p > BigInt.one); + + if (a == BigInt.zero) { + return BigInt.zero; + } + + if (p == BigInt.two) { + return a; + } + + final jacobiSymbol = jacobi(a, p); + + if (jacobiSymbol == BigInt.from(-1)) { + throw SquareRootError("$a has no square root modulo $p"); + } + + if (p % BigInt.from(4) == BigInt.from(3)) { + return a.modPow((p + BigInt.one) ~/ BigInt.from(4), p); + } + + if (p % BigInt.from(8) == BigInt.from(5)) { + final d = a.modPow((p - BigInt.one) ~/ BigInt.from(4), p); + if (d == BigInt.one) { + return a.modPow((p + BigInt.from(3)) ~/ BigInt.from(8), p); + } + assert(d == p - BigInt.one); + return (BigInt.from(2) * + a * + (BigInt.from(4) * a) + .modPow((p - BigInt.from(5)) ~/ BigInt.from(8), p)) % + p; + } + + for (BigInt b = BigInt.from(2); b < p; b += BigInt.one) { + if (jacobi(b * b - BigInt.from(4) * a, p) == BigInt.from(-1)) { + final quadraticForm = [a, -b, BigInt.one]; + final result = polynomialExponentiationMod([BigInt.zero, BigInt.one], + (p + BigInt.one) ~/ BigInt.from(2), quadraticForm, p); + if (result[1] != BigInt.zero) { + throw const SquareRootError("p is not prime"); + } + return result[0]; + } + } + + throw Exception("No suitable 'b' found."); + } + + /// Multiply two polynomials represented by lists 'm1' and 'm2', reducing modulo 'polymod' and prime 'p'. + static List polynomialMultiplyMod( + List m1, List m2, List polymod, BigInt p) { + List prod = List.filled(m1.length + m2.length - 1, BigInt.zero); + + // Add together all the cross-terms: + for (int i = 0; i < m1.length; i++) { + for (int j = 0; j < m2.length; j++) { + prod[i + j] = (prod[i + j] + m1[i] * m2[j]) % p; + } + } + + // Reduce the result modulo 'polymod': + return polynomialReduceMod(prod, polymod, p); + } + + /// Reduce a polynomial 'poly' modulo 'polymod' using prime 'p'. + static List polynomialReduceMod( + List poly, List polymod, BigInt p) { + assert(polymod.last == BigInt.one); + assert(polymod.length > 1); + + // Repeatedly reduce the polynomial while its degree is greater than or equal to 'polymod': + while (poly.length >= polymod.length) { + if (poly.last != BigInt.zero) { + for (int i = 2; i <= polymod.length; i++) { + poly[poly.length - i] = (poly[poly.length - i] - + poly.last * polymod[polymod.length - i]) % + p; + } + } + poly.removeLast(); + } + + return poly; + } + + /// Calculates the Jacobi symbol (a/n) for given integers 'a' and 'n'. + /// + /// The Jacobi symbol is defined for an odd positive integer 'n' and any integer 'a'. + /// + /// Returns 0 if 'a' is congruent to 0 modulo 'n'. + /// Returns 1 if 'a' is a quadratic residue modulo 'n'. + /// Returns -1 if 'a' is a non-quadratic residue modulo 'n'. + /// + /// Throws a JacobiError if 'n' is not an odd integer greater than or equal to 3. + /// + static BigInt jacobi(BigInt a, BigInt n) { + if (!(n >= BigInt.from(3))) { + throw const JacobiError("n must be larger than 2"); + } + if (!(n % BigInt.two == BigInt.one)) { + throw const JacobiError("n must be odd"); + } + + a = a % n; + if (a == BigInt.zero) { + return BigInt.zero; + } + if (a == BigInt.one) { + return BigInt.one; + } + + BigInt a1 = a, e = BigInt.zero; + while (a1 % BigInt.two == BigInt.zero) { + a1 = a1 ~/ BigInt.two; + e = e + BigInt.one; + } + + BigInt s = BigInt.one; + + if (e % BigInt.two == BigInt.zero || + n % BigInt.from(8) == BigInt.one || + n % BigInt.from(8) == BigInt.from(7)) { + // s remains 1 + } else { + s = BigInt.from(-1); + } + + if (a1 == BigInt.one) { + return s; + } + + if (n % BigInt.from(4) == BigInt.from(3) && + a1 % BigInt.from(4) == BigInt.from(3)) { + s = -s; + } + + return s * jacobi(n % a1, a1); + } +} diff --git a/lib/crypto/crypto/chacha/chacha.dart b/lib/crypto/crypto/chacha/chacha.dart new file mode 100644 index 0000000..063e706 --- /dev/null +++ b/lib/crypto/crypto/chacha/chacha.dart @@ -0,0 +1,200 @@ +import 'package:blockchain_utils/binary/binary_operation.dart'; + +class ChaCha20 { + static void _quarterround(List output, int a, int b, int c, int d) { + output[d] = rotl32(output[d] ^ (output[a] += output[b]), 16); + output[b] = rotl32(output[b] ^ (output[c] += output[d]), 12); + output[d] = rotl32(output[d] ^ (output[a] += output[b]), 8); + output[b] = rotl32(output[b] ^ (output[c] += output[d]), 7); + + // Ensure all values are within UINT32 range + output[a] &= mask32; + output[b] &= mask32; + output[c] &= mask32; + output[d] &= mask32; + } + + static const _rounds = 20; + static void _core(List out, List input, List key) { + const j0 = 0x61707865; + const j1 = 0x3320646E; + const j2 = 0x79622D32; + const j3 = 0x6B206574; + final mix = List.filled(16, 0); + + final j4 = (key[3] << 24) | (key[2] << 16) | (key[1] << 8) | key[0]; + final j5 = (key[7] << 24) | (key[6] << 16) | (key[5] << 8) | key[4]; + final j6 = (key[11] << 24) | (key[10] << 16) | (key[9] << 8) | key[8]; + final j7 = (key[15] << 24) | (key[14] << 16) | (key[13] << 8) | key[12]; + final j8 = (key[19] << 24) | (key[18] << 16) | (key[17] << 8) | key[16]; + final j9 = (key[23] << 24) | (key[22] << 16) | (key[21] << 8) | key[20]; + final j10 = (key[27] << 24) | (key[26] << 16) | (key[25] << 8) | key[24]; + final j11 = (key[31] << 24) | (key[30] << 16) | (key[29] << 8) | key[28]; + + final j12 = + (input[3] << 24) | (input[2] << 16) | (input[1] << 8) | input[0]; + final j13 = + (input[7] << 24) | (input[6] << 16) | (input[5] << 8) | input[4]; + final j14 = + (input[11] << 24) | (input[10] << 16) | (input[9] << 8) | input[8]; + final j15 = + (input[15] << 24) | (input[14] << 16) | (input[13] << 8) | input[12]; + + mix[0] = j0; + mix[1] = j1; + mix[2] = j2; + mix[3] = j3; + mix[4] = j4; + mix[5] = j5; + mix[6] = j6; + mix[7] = j7; + mix[8] = j8; + mix[9] = j9; + mix[10] = j10; + mix[11] = j11; + mix[12] = j12; + mix[13] = j13; + mix[14] = j14; + mix[15] = j15; + + for (int i = 0; i < _rounds; i += 2) { + _quarterround(mix, 0, 4, 8, 12); + _quarterround(mix, 1, 5, 9, 13); + _quarterround(mix, 2, 6, 10, 14); + _quarterround(mix, 3, 7, 11, 15); + _quarterround(mix, 0, 5, 10, 15); + _quarterround(mix, 1, 6, 11, 12); + _quarterround(mix, 2, 7, 8, 13); + _quarterround(mix, 3, 4, 9, 14); + } + writeUint32LE(mix[0] + j0 & mask32, out, 0); + writeUint32LE(mix[1] + j1 & mask32, out, 4); + writeUint32LE(mix[2] + j2 & mask32, out, 8); + writeUint32LE(mix[3] + j3 & mask32, out, 12); + writeUint32LE(mix[4] + j4 & mask32, out, 16); + writeUint32LE(mix[5] + j5 & mask32, out, 20); + writeUint32LE(mix[6] + j6 & mask32, out, 24); + writeUint32LE(mix[7] + j7 & mask32, out, 28); + writeUint32LE(mix[8] + j8 & mask32, out, 32); + writeUint32LE(mix[9] + j9 & mask32, out, 36); + writeUint32LE(mix[10] + j10 & mask32, out, 40); + writeUint32LE(mix[11] + j11 & mask32, out, 44); + writeUint32LE(mix[12] + j12 & mask32, out, 48); + writeUint32LE(mix[13] + j13 & mask32, out, 52); + writeUint32LE(mix[14] + j14 & mask32, out, 56); + writeUint32LE(mix[15] + j15 & mask32, out, 60); + } + + static void _incrementCounter(List counter, int pos, int len) { + int carry = 1; + while (len > 0) { + carry += (counter[pos] & 0xFF); + counter[pos] = carry & 0xFF; + carry >>= 8; + pos++; + len--; + } + if (carry > 0) { + throw Exception("ChaCha: counter overflow"); + } + } + + /// Encrypts or decrypts data by XORing it with the output of the ChaCha stream cipher. + /// + /// This function takes a key, nonce, source data (`src`), and destination data (`dst`) and encrypts + /// or decrypts the source data by XORing it with the output of the ChaCha stream cipher. The nonce can + /// be used with or without an inplace counter, depending on the value of `nonceInplaceCounterLength`. + /// + /// Parameters: + /// - `key`: The 256-bit (32-byte) encryption key as a List. + /// - `nonce`: The nonce data, which must be either 8, 12, or 16 bytes in length depending on the + /// value of `nonceInplaceCounterLength`. + /// - `src`: The source data to be encrypted or decrypted. + /// - `dst`: The destination data where the result will be written. + /// - `nonceInplaceCounterLength`: An optional parameter to specify the length of the nonce inplace counter + /// (0 for no counter, 16 bytes if a counter is included in the nonce). + /// + /// Throws: + /// - `ArgumentError` if the key size is not 32 bytes, if the destination is shorter than the source, or if + /// the nonce length is invalid. + /// + /// Returns: + /// - The `dst` List containing the result of the XOR operation. + /// + /// Note: This function securely zeros temporary data to protect sensitive information. + static List streamXOR( + List key, List nonce, List src, List dst, + {int nonceInplaceCounterLength = 0}) { + // We only support 256-bit keys. + if (key.length != 32) { + throw ArgumentError("ChaCha: key size must be 32 bytes"); + } + + if (dst.length < src.length) { + throw ArgumentError("ChaCha: destination is shorter than source"); + } + + List nc; + int counterLength; + + if (nonceInplaceCounterLength == 0) { + if (nonce.length != 8 && nonce.length != 12) { + throw ArgumentError("ChaCha nonce must be 8 or 12 bytes"); + } + nc = List.filled(16, 0); + counterLength = nc.length - nonce.length; + nc.setAll(counterLength, nonce); + } else { + if (nonce.length != 16) { + throw ArgumentError("ChaCha nonce with counter must be 16 bytes"); + } + nc = nonce; + counterLength = nonceInplaceCounterLength; + } + + final block = List.filled(64, 0); + + for (int i = 0; i < src.length; i += 64) { + _core(block, nc, key); + + for (int j = i; j < i + 64 && j < src.length; j++) { + dst[j] = (src[j] & mask8) ^ block[j - i]; + } + + _incrementCounter(nc, 0, counterLength); + } + + zero(block); + + if (nonceInplaceCounterLength == 0) { + zero(nc); + } + + return dst; + } + + /// Generates a stream of pseudo-random bytes using the ChaCha stream cipher. + /// + /// This function generates a stream of pseudo-random bytes by encrypting a nonce and key with the + /// ChaCha stream cipher algorithm. The generated stream is then XORed with the `dst` data, resulting + /// in the encrypted output. It also provides the option to incorporate a nonce inplace counter. + /// + /// Parameters: + /// - `key`: The encryption key as a List. + /// - `nonce`: A unique nonce as a List. + /// - `dst`: The destination List where the generated stream will be XORed. + /// - `nonceInplaceCounterLength`: An optional parameter to specify the length of the nonce inplace counter + /// (default is 0, meaning no nonce inplace counter). + /// + /// Returns: + /// - The `dst` List containing the encrypted data. + /// + /// Note: This function securely zeros the `dst` data before writing the generated stream and should + /// be used for generating secure random data. + static List stream(List key, List nonce, List dst, + {int nonceInplaceCounterLength = 0}) { + zero(dst); + return streamXOR(key, nonce, dst, dst, + nonceInplaceCounterLength: nonceInplaceCounterLength); + } +} diff --git a/lib/crypto/crypto/chacha20poly1305/chacha20poly1305.dart b/lib/crypto/crypto/chacha20poly1305/chacha20poly1305.dart new file mode 100644 index 0000000..df35940 --- /dev/null +++ b/lib/crypto/crypto/chacha20poly1305/chacha20poly1305.dart @@ -0,0 +1,197 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:blockchain_utils/crypto/crypto/aead/aead.dart'; +import 'package:blockchain_utils/crypto/crypto/chacha/chacha.dart'; +import 'package:blockchain_utils/crypto/crypto/poly1305/poly1305.dart'; +import 'package:blockchain_utils/binary/binary_operation.dart'; + +const int _nonceLength = 12; +const int _tagLength = 16; +const int _keyLength = 32; + +class ChaCha20Poly1305 implements AEAD { + /// Length of the nonce for ChaCha20-Poly1305 (12 bytes) + @override + final int nonceLength = _nonceLength; + + /// Length of the authentication tag + @override + final int tagLength = _tagLength; + + /// The encryption key for ChaCha20-Poly1305 + late List _key; + + /// Creates a ChaCha20-Poly1305 instance with the given 32-byte encryption key. + ChaCha20Poly1305(List key) { + if (key.length != _keyLength) { + throw ArgumentError("ChaCha20Poly1305 needs a 32-byte key"); + } + _key = BytesUtils.toBytes(key); + } + + /// Encrypts the provided plaintext data with ChaCha20-Poly1305 encryption. + /// + /// This method takes a nonce, plaintext data, and optional associated data and performs + /// ChaCha20-Poly1305 encryption. It generates an authentication tag, and the encrypted data + /// is returned in the `List` `dst`. If `dst` is not provided, a new `List` is created + /// to hold the result. + /// + /// Parameters: + /// - `nonce`: The nonce as a List, with a maximum length of 16 bytes. + /// - `plaintext`: The plaintext data to be encrypted. + /// - `associatedData`: Optional associated data that is not encrypted but included in the tag calculation. + /// - `dst`: An optional destination `List` where the encrypted data and tag will be written. + /// + /// Throws: + /// - `ArgumentError` if the provided nonce length is incorrect or if the destination length is incorrect. + /// + /// Returns: + /// - The `List` containing the encrypted data and authentication tag. + /// + /// Note: This method uses ChaCha20-Poly1305 encryption, including nonce handling, authentication tag calculation, + /// and associated data processing. + @override + List encrypt(List nonce, List plaintext, + {List? associatedData, List? dst}) { + if (nonce.length > 16) { + throw ArgumentError("ChaCha20Poly1305: incorrect nonce length"); + } + + final counter = List.filled(16, 0); + + counter.setRange(counter.length - nonce.length, counter.length, + BytesUtils.toBytes(nonce)); + + final authKey = List.filled(32, 0); + ChaCha20.stream(_key, counter, authKey, nonceInplaceCounterLength: 4); + + final resultLength = plaintext.length + tagLength; + + List result = dst ?? List.filled(resultLength, 0); + if (result.length != resultLength) { + throw ArgumentError("ChaCha20Poly1305: incorrect destination length"); + } + + ChaCha20.streamXOR(_key, counter, BytesUtils.toBytes(plaintext), result, + nonceInplaceCounterLength: 4); + + final calculatedTag = List.filled(tagLength, 0); + final cipherText = result.sublist(0, result.length - tagLength); + _authenticate(calculatedTag, authKey, cipherText, associatedData); + + result.setRange(result.length - tagLength, result.length, calculatedTag); + zero(counter); + return result; + } + + /// Decrypts the provided sealed data using ChaCha20-Poly1305 decryption. + /// + /// This method takes a nonce, sealed data (which includes the ciphertext and authentication tag), + /// and optional associated data, and attempts to decrypt the sealed data. If the decryption is successful, + /// the plaintext data is returned in the `List` `dst`. If the decryption fails (e.g., due to an + /// incorrect tag or nonce), `null` is returned. + /// + /// Parameters: + /// - `nonce`: The nonce as a List, with a maximum length of 16 bytes. + /// - `sealed`: The sealed data, including the ciphertext and authentication tag. + /// - `associatedData`: Optional associated data that is not encrypted but used in the tag verification. + /// - `dst`: An optional destination `List` where the decrypted plaintext will be written. + /// + /// Throws: + /// - `ArgumentError` if the provided nonce length is incorrect or if the destination length is incorrect. + /// + /// Returns: + /// - The `List` containing the decrypted plaintext data, or `null` if decryption fails. + /// + /// Note: This method uses ChaCha20-Poly1305 decryption, including nonce handling, tag verification, and + /// associated data processing. If the authentication tag is incorrect, `null` is returned to indicate + /// decryption failure. + @override + List? decrypt(List nonce, List sealed, + {List? associatedData, List? dst}) { + if (nonce.length > 16) { + throw ArgumentError("ChaCha20Poly1305: incorrect nonce length"); + } + + if (sealed.length < tagLength) { + return null; + } + + final counter = List.filled(16, 0); + counter.setRange(counter.length - nonce.length, counter.length, nonce); + + final authKey = List.filled(32, 0); + ChaCha20.stream(_key, counter, authKey, nonceInplaceCounterLength: 4); + + final calculatedTag = List.filled(tagLength, 0); + _authenticate(calculatedTag, authKey, + sealed.sublist(0, sealed.length - tagLength), associatedData); + + if (!bytesEqual(calculatedTag, sealed.sublist(sealed.length - tagLength))) { + return null; + } + + final resultLength = sealed.length - tagLength; + + List result = dst ?? List.filled(resultLength, 0); + if (result.length != resultLength) { + throw ArgumentError("ChaCha20Poly1305: incorrect destination length"); + } + + ChaCha20.streamXOR( + _key, counter, sealed.sublist(0, sealed.length - tagLength), result, + nonceInplaceCounterLength: 4); + + zero(counter); + return result; + } + + /// Clears and releases the internal encryption key for ChaCha20-Poly1305 for security and memory management. + /// + /// This method securely zeros and releases the internal encryption key used by the ChaCha20-Poly1305 + /// instance to ensure that no sensitive key data is left in memory. It is an essential step for + /// maintaining the security of the cipher instance after use. + /// + /// Returns: + /// - The same ChaCha20Poly1305 instance after cleaning for method chaining. + @override + ChaCha20Poly1305 clean() { + zero(_key); // Securely zero the encryption key + return this; + } + + void _authenticate(List tagOut, List authKey, List ciphertext, + List? associatedData) { + final h = Poly1305(authKey); + + if (associatedData != null) { + h.update(associatedData); + if (associatedData.length % 16 > 0) { + h.update(List.filled(16 - (associatedData.length % 16), 0)); + } + } + + h.update(ciphertext); + if (ciphertext.length % 16 > 0) { + h.update(List.filled(16 - (ciphertext.length % 16), 0)); + } + + final length = List.filled(8, 0); + if (associatedData != null) { + writeUint64LE(associatedData.length, length); + } + h.update(length); + + writeUint64LE(ciphertext.length, length); + h.update(length); + + final tag = h.digest(); + for (var i = 0; i < tag.length; i++) { + tagOut[i] = tag[i]; + } + + h.clean(); + zero(tag); + zero(length); + } +} diff --git a/lib/crypto/crypto/crc32/crc32.dart b/lib/crypto/crypto/crc32/crc32.dart new file mode 100644 index 0000000..325023a --- /dev/null +++ b/lib/crypto/crypto/crc32/crc32.dart @@ -0,0 +1,301 @@ +import 'package:blockchain_utils/binary/binary_operation.dart'; + +/// A class for calculating cyclic redundancy check (CRC32) values. +/// +/// The `Crc32` class provides methods for calculating CRC32 checksums for data, which are often +/// used for error-checking and data integrity verification. It supports various CRC32 algorithms +/// and can be used to generate checksums for different data sources. +/// +/// Usage: +/// To use this class, create an instance of `Crc32`, select the CRC32 algorithm you need, and then +/// use the provided methods to calculate CRC32 checksums for your data. +/// +/// Example: +/// ```dart +/// final data = List.from([0x01, 0x02, 0x03, 0x04]); +/// final checksum = Crc32.quickIntDigest(data); // Calculate CRC32 checksum +/// print('CRC32 Checksum: ${checksum.toRadixString(16)}'); +/// ``` +/// +/// Note: The `Crc32` class can be customized with different algorithms and options for specific use cases. +class Crc32 { + static const List _crcTable = [ + 0x00000000, + 0x77073096, + 0xee0e612c, + 0x990951ba, + 0x076dc419, + 0x706af48f, + 0xe963a535, + 0x9e6495a3, + 0x0edb8832, + 0x79dcb8a4, + 0xe0d5e91e, + 0x97d2d988, + 0x09b64c2b, + 0x7eb17cbd, + 0xe7b82d07, + 0x90bf1d91, + 0x1db71064, + 0x6ab020f2, + 0xf3b97148, + 0x84be41de, + 0x1adad47d, + 0x6ddde4eb, + 0xf4d4b551, + 0x83d385c7, + 0x136c9856, + 0x646ba8c0, + 0xfd62f97a, + 0x8a65c9ec, + 0x14015c4f, + 0x63066cd9, + 0xfa0f3d63, + 0x8d080df5, + 0x3b6e20c8, + 0x4c69105e, + 0xd56041e4, + 0xa2677172, + 0x3c03e4d1, + 0x4b04d447, + 0xd20d85fd, + 0xa50ab56b, + 0x35b5a8fa, + 0x42b2986c, + 0xdbbbc9d6, + 0xacbcf940, + 0x32d86ce3, + 0x45df5c75, + 0xdcd60dcf, + 0xabd13d59, + 0x26d930ac, + 0x51de003a, + 0xc8d75180, + 0xbfd06116, + 0x21b4f4b5, + 0x56b3c423, + 0xcfba9599, + 0xb8bda50f, + 0x2802b89e, + 0x5f058808, + 0xc60cd9b2, + 0xb10be924, + 0x2f6f7c87, + 0x58684c11, + 0xc1611dab, + 0xb6662d3d, + 0x76dc4190, + 0x01db7106, + 0x98d220bc, + 0xefd5102a, + 0x71b18589, + 0x06b6b51f, + 0x9fbfe4a5, + 0xe8b8d433, + 0x7807c9a2, + 0x0f00f934, + 0x9609a88e, + 0xe10e9818, + 0x7f6a0dbb, + 0x086d3d2d, + 0x91646c97, + 0xe6635c01, + 0x6b6b51f4, + 0x1c6c6162, + 0x856530d8, + 0xf262004e, + 0x6c0695ed, + 0x1b01a57b, + 0x8208f4c1, + 0xf50fc457, + 0x65b0d9c6, + 0x12b7e950, + 0x8bbeb8ea, + 0xfcb9887c, + 0x62dd1ddf, + 0x15da2d49, + 0x8cd37cf3, + 0xfbd44c65, + 0x4db26158, + 0x3ab551ce, + 0xa3bc0074, + 0xd4bb30e2, + 0x4adfa541, + 0x3dd895d7, + 0xa4d1c46d, + 0xd3d6f4fb, + 0x4369e96a, + 0x346ed9fc, + 0xad678846, + 0xda60b8d0, + 0x44042d73, + 0x33031de5, + 0xaa0a4c5f, + 0xdd0d7cc9, + 0x5005713c, + 0x270241aa, + 0xbe0b1010, + 0xc90c2086, + 0x5768b525, + 0x206f85b3, + 0xb966d409, + 0xce61e49f, + 0x5edef90e, + 0x29d9c998, + 0xb0d09822, + 0xc7d7a8b4, + 0x59b33d17, + 0x2eb40d81, + 0xb7bd5c3b, + 0xc0ba6cad, + 0xedb88320, + 0x9abfb3b6, + 0x03b6e20c, + 0x74b1d29a, + 0xead54739, + 0x9dd277af, + 0x04db2615, + 0x73dc1683, + 0xe3630b12, + 0x94643b84, + 0x0d6d6a3e, + 0x7a6a5aa8, + 0xe40ecf0b, + 0x9309ff9d, + 0x0a00ae27, + 0x7d079eb1, + 0xf00f9344, + 0x8708a3d2, + 0x1e01f268, + 0x6906c2fe, + 0xf762575d, + 0x806567cb, + 0x196c3671, + 0x6e6b06e7, + 0xfed41b76, + 0x89d32be0, + 0x10da7a5a, + 0x67dd4acc, + 0xf9b9df6f, + 0x8ebeeff9, + 0x17b7be43, + 0x60b08ed5, + 0xd6d6a3e8, + 0xa1d1937e, + 0x38d8c2c4, + 0x4fdff252, + 0xd1bb67f1, + 0xa6bc5767, + 0x3fb506dd, + 0x48b2364b, + 0xd80d2bda, + 0xaf0a1b4c, + 0x36034af6, + 0x41047a60, + 0xdf60efc3, + 0xa867df55, + 0x316e8eef, + 0x4669be79, + 0xcb61b38c, + 0xbc66831a, + 0x256fd2a0, + 0x5268e236, + 0xcc0c7795, + 0xbb0b4703, + 0x220216b9, + 0x5505262f, + 0xc5ba3bbe, + 0xb2bd0b28, + 0x2bb45a92, + 0x5cb36a04, + 0xc2d7ffa7, + 0xb5d0cf31, + 0x2cd99e8b, + 0x5bdeae1d, + 0x9b64c2b0, + 0xec63f226, + 0x756aa39c, + 0x026d930a, + 0x9c0906a9, + 0xeb0e363f, + 0x72076785, + 0x05005713, + 0x95bf4a82, + 0xe2b87a14, + 0x7bb12bae, + 0x0cb61b38, + 0x92d28e9b, + 0xe5d5be0d, + 0x7cdcefb7, + 0x0bdbdf21, + 0x86d3d2d4, + 0xf1d4e242, + 0x68ddb3f8, + 0x1fda836e, + 0x81be16cd, + 0xf6b9265b, + 0x6fb077e1, + 0x18b74777, + 0x88085ae6, + 0xff0f6a70, + 0x66063bca, + 0x11010b5c, + 0x8f659eff, + 0xf862ae69, + 0x616bffd3, + 0x166ccf45, + 0xa00ae278, + 0xd70dd2ee, + 0x4e048354, + 0x3903b3c2, + 0xa7672661, + 0xd06016f7, + 0x4969474d, + 0x3e6e77db, + 0xaed16a4a, + 0xd9d65adc, + 0x40df0b66, + 0x37d83bf0, + 0xa9bcae53, + 0xdebb9ec5, + 0x47b2cf7f, + 0x30b5ffe9, + 0xbdbdf21c, + 0xcabac28a, + 0x53b39330, + 0x24b4a3a6, + 0xbad03605, + 0xcdd70693, + 0x54de5729, + 0x23d967bf, + 0xb3667a2e, + 0xc4614ab8, + 0x5d681b02, + 0x2a6f2b94, + 0xb40bbe37, + 0xc30c8ea1, + 0x5a05df1b, + 0x2d02ef8d + ]; + + /// Computes a quick integer digest (CRC32) for the provided data. + /// + /// This method calculates a 32-bit cyclic redundancy check (CRC) integer digest for the input + /// `List` data. It iterates through the data, updating the CRC value accordingly. + /// + /// Parameters: + /// - `data`: The input data for which the CRC32 digest will be calculated. + /// + /// Returns: + /// - A 32-bit integer representing the computed CRC32 digest of the input data. + /// + /// Note: CRC32 is a checksum algorithm used to detect errors in data transmission or storage. + /// The returned integer is a digest of the input data, providing a compact representation of its content. + static int quickIntDigest(List data) { + int crc = mask32; + for (int byte in data) { + crc = (crc >> 8) ^ _crcTable[(crc ^ byte) & mask8]; + } + return crc ^ mask32; + } +} diff --git a/lib/crypto/crypto/crypto.dart b/lib/crypto/crypto/crypto.dart new file mode 100644 index 0000000..006dae4 --- /dev/null +++ b/lib/crypto/crypto/crypto.dart @@ -0,0 +1,63 @@ +/// The 'crypto' library provides a collection of cryptographic algorithms and utilities +/// for various cryptographic operations and security functions. +library crypto; + +/// Export statement for AEAD (Authenticated Encryption with Associated Data) components. +export 'aead/aead.dart'; + +/// Export statement for AES (Advanced Encryption Standard) encryption and decryption. +export 'aes/aes.dart'; + +/// Export statement for block ciphers, which are used for block-level encryption and decryption. +export 'blockcipher/blockcipher.dart'; + +/// Export statement for the 'cdsa' library, which provides tools and components for +/// working with cryptographic algorithms, elliptic curve cryptography, and related functionality. +export 'cdsa/cdsa.dart'; + +/// Export statement for the ChaCha stream cipher and its variations. +export 'chacha/chacha.dart'; + +/// Export statement for the ChaCha20-Poly1305 AEAD (Authenticated Encryption with Associated Data) cipher. +export 'chacha20poly1305/chacha20poly1305.dart'; + +/// Export statement for the CRC32 (Cyclic Redundancy Check) algorithm for error-checking. +export 'crc32/crc32.dart'; + +/// Export statement for the CTR (Counter) mode encryption. +export 'ctr/ctr.dart'; + +/// Export statement for the ECB (Electronic Codebook) mode encryption. +export 'ecb/ecb.dart'; + +/// Export statement for the GCM (Galois/Counter Mode) mode of operation for authenticated encryption. +export 'gcm/gcm.dart'; + +/// Export statement for various hash functions and cryptographic hash utilities, +/// including SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/256, SHA-1, Blake2b, RIdEMP, MD5, MD4, +/// and SHA-3 (Keccak). +export 'hash/hash.dart'; + +/// Export statement for HMAC (Hash-based Message Authentication Code) algorithms. +export 'hmac/hmac.dart'; + +/// Export statement for PBKDF2 (Password-Based Key Derivation Function 2) for securely deriving keys. +export 'pbkdf2/pbkdf2.dart'; + +/// Export statement for the Poly1305 message authentication code. +export 'poly1305/poly1305.dart'; + +/// Export statement for the Fortuna cryptographic pseudorandom number generator (PRNG). +export 'prng/fortuna.dart'; + +/// Export statement for the 'schnorrkel' library, which provides tools for working with the +/// Schnorrkel digital signature scheme, including key management, cryptographic functions, +/// and the Schnorrkel Merlin transcript and Strobe framework for secure digital signatures. +export 'schnorrkel/shnorrkel.dart'; + +/// Export statement for the 'scrypt' library, which provides tools for working with the +/// scrypt key derivation function. +export 'scrypt/scrypt.dart'; + +/// Export statement for the XMODEM CRC (Cyclic Redundancy Check) for error-checking in data transmission. +export 'x_modem_crc/x_modem_crc.dart'; diff --git a/lib/crypto/crypto/ctr/ctr.dart b/lib/crypto/crypto/ctr/ctr.dart new file mode 100644 index 0000000..8a1ddd6 --- /dev/null +++ b/lib/crypto/crypto/ctr/ctr.dart @@ -0,0 +1,163 @@ +import 'package:blockchain_utils/crypto/crypto/blockcipher/blockcipher.dart'; +import 'package:blockchain_utils/binary/binary_operation.dart'; + +/// Counter (CTR) mode for block ciphers. +/// +/// The `CTR` class provides a counter mode of operation for block ciphers, which turns a block cipher into a +/// stream cipher. It uses a counter and an initialization vector (IV) to generate a stream of key material that is +/// XORed with the plaintext to produce the ciphertext. The class supports dynamic block sizes based on the +/// provided block cipher. +/// +/// Properties: +/// - `_counter`: A byte array used as the counter value. +/// - `_buffer`: A buffer for storing the encrypted block. +/// - `_bufpos`: An internal variable tracking the buffer position. +/// - `_cipher`: The block cipher used for encryption. +/// +/// Constructor: +/// - `CTR`: Initializes the CTR mode with the given block cipher and IV. It allocates space for the counter and +/// the encrypted block buffer and sets up the initial state. +/// +/// Note: CTR mode effectively converts a block cipher into a stream cipher by generating a keystream. It is used +/// for encrypting data with a block cipher in a parallelizable manner. Ensure that the IV is unique for each message. +class CTR { + /// Counter value + late final List _counter; + + /// Encrypted block buffer + late final List _buffer; + + /// Buffer position + int _bufpos = 0; + + /// Block cipher for encryption + BlockCipher? _cipher; + + /// Returns the block size of the block cipher, or null if not set. + int? get blockSize => _cipher?.blockSize; + + /// Creates a CTR instance with the given block cipher and initialization vector (IV). + /// + /// Parameters: + /// - `cipher`: The block cipher used for encryption. + /// - `iv`: The initialization vector for the CTR mode. + CTR(BlockCipher cipher, List iv) { + _counter = List.filled(cipher.blockSize, 0); + + _buffer = List.filled(cipher.blockSize, 0); + setCipher(cipher, iv); + } + + /// Sets the block cipher and initialization vector (IV) for the Counter (CTR) mode. + /// + /// This method allows you to specify the block cipher and IV to be used for the CTR mode. It performs + /// necessary validation and setup for encryption. If the provided IV is not null, it copies the IV to + /// the internal counter, overwriting its current value. + /// + /// Parameters: + /// - `cipher`: The block cipher to be used for encryption. + /// - `iv`: The initialization vector (IV) for the CTR mode. + /// + /// Throws: + /// - `ArgumentError` if the IV length is not equal to the block size of the cipher. + /// + /// Returns: + /// - The updated CTR instance after setting the cipher and IV. + /// + /// Note: It's important to use a unique IV for each message to ensure security and prevent potential + /// vulnerabilities in the CTR mode. + CTR setCipher(BlockCipher cipher, List? iv) { + _cipher = null; + + if (iv != null && iv.length != _counter.length) { + throw ArgumentError("CTR: iv length must be equal to cipher block size"); + } + _cipher = cipher; + + if (iv != null) { + _counter.setAll(0, iv); + } + _bufpos = _buffer.length; + return this; + } + + /// Clears internal state and data in the Counter (CTR) mode instance for security and memory management. + /// + /// This method securely zeros the internal encrypted block buffer, the counter, and resets the buffer + /// position and cipher reference to their initial states. It is essential for maintaining the security + /// of the CTR mode instance after use and ensuring that no sensitive data remains in memory. + /// + /// Returns: + /// - The same CTR instance after cleaning for method chaining. + /// + /// Note: Properly cleaning the CTR mode instance is crucial for security and memory management to + /// prevent potential data leaks. + CTR clean() { + zero(_buffer); // Securely zero the encrypted block buffer + zero(_counter); // Securely zero the counter + _bufpos = _buffer.length; // Reset the buffer position + _cipher = null; // Clear the cipher reference + return this; + } + + void _fillBuffer() { + _cipher!.encryptBlock(_counter, _buffer); + _bufpos = 0; + _incrementCounter(_counter); + } + + /// XORs source data with the keystream and writes the result to the destination. + /// + /// This method XORs the bytes from the source `List` with the keystream generated by the Counter (CTR) + /// mode and writes the result to the destination `List`. It ensures that the keystream is continuously + /// generated as needed, filling the buffer when it's exhausted. + /// + /// Parameters: + /// - `src`: The source data to be XORed with the keystream. + /// - `dst`: The destination `List` where the XORed result will be written. + /// + /// Note: This method effectively applies the CTR mode encryption by XORing the source data with the keystream, + /// allowing for secure encryption of data. + void streamXOR(List src, List dst) { + for (var i = 0; i < src.length; i++) { + if (_bufpos == _buffer.length) { + _fillBuffer(); + } + dst[i] = (src[i] & mask8) ^ _buffer[_bufpos++]; + } + } + + /// Generates and writes keystream to the destination. + /// + /// This method generates a stream of keystream bytes and writes them to the destination `List`. + /// The keystream is continuously generated as needed, with the option to specify whether it is intended + /// for encryption or decryption. + /// + /// Parameters: + /// - `dst`: The destination `List` where the generated keystream will be written. + /// - `forEncryption`: A boolean flag indicating whether the keystream is intended for encryption. If set + /// to `true`, the keystream is used for encryption; if set to `false`, it is used for decryption. + /// + /// Note: This method is essential for generating the keystream needed for encryption or decryption in the + /// Counter (CTR) mode. + void stream(List dst) { + for (var i = 0; i < dst.length; i++) { + if (_bufpos == _buffer.length) { + _fillBuffer(); + } + dst[i] = _buffer[_bufpos++]; + } + } +} + +void _incrementCounter(List counter) { + var carry = 1; + for (var i = counter.length - 1; i >= 0; i--) { + carry = carry + (counter[i] & mask8); + counter[i] = carry & mask8; + carry >>= 8; + } + if (carry > 0) { + throw ArgumentError("CTR: counter overflow"); + } +} diff --git a/lib/crypto/crypto/ecb/ecb.dart b/lib/crypto/crypto/ecb/ecb.dart new file mode 100644 index 0000000..8170f79 --- /dev/null +++ b/lib/crypto/crypto/ecb/ecb.dart @@ -0,0 +1,115 @@ +import 'package:blockchain_utils/crypto/crypto/aes/aes.dart'; +import 'package:blockchain_utils/crypto/crypto/aes/padding.dart'; + +/// Electronic Codebook (ECB) mode for AES encryption and decryption. +/// +/// This class extends the AES block cipher to implement the Electronic Codebook (ECB) mode, +/// which is a basic block cipher mode that encrypts and decrypts data in fixed-size blocks. +class ECB extends AES { + /// Creates an ECB instance with the specified encryption key. + /// + /// Parameters: + /// - `key`: The encryption key used for ECB mode. + ECB(List key) : super(key); + + /// Encrypts a single data block using the Electronic Codebook (ECB) mode. + /// + /// This method encrypts a single data block using the AES block cipher in Electronic Codebook (ECB) mode. + /// The block size is determined by the AES algorithm. Optionally, a padding style can be applied to the + /// input data before encryption. + /// + /// Parameters: + /// - `src`: The data block to be encrypted. + /// - `dst`: (Optional) The destination for the encrypted block. If not provided, a new `List` is created. + /// - `paddingStyle`: (Optional) The padding style to be applied before encryption (default is PKCS#7). + /// + /// Returns: + /// - The encrypted data block. + /// + /// Throws: + /// - `ArgumentError` if the source data size is not a multiple of the block size or if the destination size + /// does not match the source size. + /// - Exceptions related to padding, if padding is applied. + /// + /// Note: This method encrypts a single block of data using AES in ECB mode. If padding is applied, it ensures + /// the source data is appropriately padded before encryption. + @override + List encryptBlock(List src, + [List? dst, + PaddingAlgorithm? paddingStyle = PaddingAlgorithm.pkcs7]) { + if (paddingStyle == null) { + if ((src.length % blockSize) != 0) { + throw ArgumentError("src size must be a multiple of $blockSize"); + } + } + List input = List.from(src); + if (paddingStyle != null) { + input = BlockCipherPadding.pad(input, blockSize, style: paddingStyle); + } + + final out = dst ?? List.filled(input.length, 0); + if (out.length != input.length) { + throw ArgumentError( + "The destination size does not match with source size"); + } + final numBlocks = input.length ~/ blockSize; + for (var i = 0; i < numBlocks; i++) { + final start = i * blockSize; + final end = (i + 1) * blockSize; + List block = List.from(input.sublist(start, end)); + final enc = super.encryptBlock(block); + out.setRange(start, end, enc); + } + return out; + } + + /// Decrypts a single data block using the Electronic Codebook (ECB) mode. + /// + /// This method decrypts a single data block using the AES block cipher in Electronic Codebook (ECB) mode. + /// The block size is determined by the AES algorithm. Optionally, a padding style can be applied to the + /// output data after decryption. + /// + /// Parameters: + /// - `src`: The data block to be decrypted. + /// - `dst`: (Optional) The destination for the decrypted block. If not provided, a new `List` is created. + /// - `paddingStyle`: (Optional) The padding style to be applied after decryption (default is PKCS#7). + /// + /// Returns: + /// - The decrypted data block. + /// + /// Throws: + /// - `ArgumentError` if the source data size is not a multiple of the block size or if the destination size + /// is too small. + /// - Exceptions related to padding, if padding is applied. + /// + /// Note: This method decrypts a single block of data using AES in ECB mode. If padding is applied, it ensures + /// the output data is appropriately unpadded after decryption. + @override + List decryptBlock(List src, + [List? dst, + PaddingAlgorithm? paddingStyle = PaddingAlgorithm.pkcs7]) { + if ((src.length % blockSize) != 0) { + throw ArgumentError("src size must be a multiple of $blockSize"); + } + List out = List.filled(src.length, 0); + + final numBlocks = src.length ~/ blockSize; + for (var i = 0; i < numBlocks; i++) { + final start = i * blockSize; + final end = (i + 1) * blockSize; + final enc = super.decryptBlock(src.sublist(start, end)); + out.setRange(start, end, enc); + } + if (paddingStyle != null) { + out = BlockCipherPadding.unpad(out, blockSize, style: paddingStyle); + } + if (dst != null) { + if (dst.length < out.length) { + throw ArgumentError("Destination size is small"); + } + dst.setAll(0, out); + return dst; + } + return out; + } +} diff --git a/lib/crypto/crypto/gcm/gcm.dart b/lib/crypto/crypto/gcm/gcm.dart new file mode 100644 index 0000000..1502d15 --- /dev/null +++ b/lib/crypto/crypto/gcm/gcm.dart @@ -0,0 +1,252 @@ +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:blockchain_utils/crypto/crypto/aead/aead.dart'; +import 'package:blockchain_utils/crypto/crypto/blockcipher/blockcipher.dart'; +import 'package:blockchain_utils/crypto/crypto/ctr/ctr.dart'; +import 'package:blockchain_utils/binary/binary_operation.dart'; +import 'dart:math' as math; + +/// Galois/Counter Mode (GCM) implementation for authenticated encryption with associated data (AEAD). +/// +/// This class implements the GCM mode, which provides authenticated encryption with associated data (AEAD) +/// using a block cipher with a 16-byte block size. +class GCM implements AEAD { + @override + final int nonceLength = 12; + @override + final int tagLength = 16; + + late List _subkey; + late BlockCipher _cipher; + + /// Creates a GCM instance with the specified block cipher. + /// + /// Parameters: + /// - `cipher`: The block cipher with a 16-byte block size to be used for GCM encryption and decryption. + /// + /// Throws: + /// - `ArgumentError` if the provided block cipher does not have a 16-byte block size. + GCM(BlockCipher cipher) { + if (cipher.blockSize != 16) { + throw ArgumentError("GCM supports only 16-byte block cipher"); + } + _cipher = cipher; + + _subkey = List.filled(_cipher.blockSize, 0); + _cipher.encryptBlock(List.filled(_cipher.blockSize, 0), _subkey); + } + + /// Encrypts data using the Galois/Counter Mode (GCM) with associated data (AEAD). + /// + /// This method encrypts data using the GCM mode, providing authenticated encryption with associated data (AEAD). + /// It uses a nonce and associated data for encryption, and generates an authentication tag to ensure data integrity. + /// + /// Parameters: + /// - `nonce`: The nonce value used for encryption, must have a length equal to the GCM nonce length (12 bytes). + /// - `plaintext`: The data to be encrypted. + /// - `associatedData`: (Optional) Additional data that is authenticated but not encrypted. + /// - `dst`: (Optional) The destination for the encrypted data and authentication tag. If not provided, a new `List` is created. + /// + /// Returns: + /// - The encrypted data with the appended authentication tag. + /// + /// Throws: + /// - `ArgumentError` if the provided nonce has an incorrect length or if the destination size is incorrect. + /// + /// Note: This method performs GCM encryption by combining nonce, plaintext, and optional associated data, + /// and generating an authentication tag for data integrity verification. + @override + List encrypt(List nonce, List plaintext, + {List? associatedData, List? dst}) { + if (nonce.length != nonceLength) { + throw ArgumentError("GCM: incorrect nonce length"); + } + + final blockSize = _cipher.blockSize; + + final resultLength = plaintext.length + tagLength; + List result = dst ?? List.filled(resultLength, 0); + if (result.length != resultLength) { + throw ArgumentError("GCM: incorrect destination length"); + } + + final counter = List.filled(blockSize, 0); + counter.setAll(0, nonce); + + counter[blockSize - 1] = 1; + + final tagMask = List.filled(blockSize, 0); + _cipher.encryptBlock(counter, tagMask); + + counter[blockSize - 1] = 2; + + final ctr = CTR(_cipher, counter); + ctr.streamXOR(plaintext, result); + ctr.clean(); + final calculatedTag = List.filled(tagLength, 0); + final cipherText = result.sublist(0, result.length - tagLength); + + _authenticate(calculatedTag, tagMask, cipherText, associatedData); + result.setRange(result.length - tagLength, result.length, calculatedTag); + zero(counter); + zero(tagMask); + return result; + } + + /// Decrypts sealed data using the Galois/Counter Mode (GCM) with associated data (AEAD). + /// + /// This method decrypts sealed data using the GCM mode, ensuring data integrity and authenticity with the associated data. + /// + /// Parameters: + /// - `nonce`: The nonce value used during encryption, must have a length equal to the GCM nonce length (12 bytes). + /// - `sealed`: The sealed data that includes the ciphertext and authentication tag. + /// - `associatedData`: (Optional) Additional data that was authenticated during encryption but not encrypted. + /// - `dst`: (Optional) The destination for the decrypted data. If not provided, a new `List` is created. + /// + /// Returns: + /// - The decrypted data if authentication succeeds; otherwise, returns null if authentication fails. + /// + /// Throws: + /// - `ArgumentError` if the provided nonce has an incorrect length, if the destination size is incorrect, or if the authentication tag verification fails. + /// + /// Note: This method performs GCM decryption, verifying the authentication tag and ensuring the data's integrity and authenticity. + @override + List? decrypt(List nonce, List sealed, + {List? associatedData, List? dst}) { + if (nonce.length != nonceLength) { + throw ArgumentError("GCM: incorrect nonce length"); + } + + if (sealed.length < tagLength) { + return null; + } + + final blockSize = _cipher.blockSize; + + final counter = List.filled(blockSize, 0); + counter.setAll(0, nonce); + + counter[blockSize - 1] = 1; + + final tagMask = List.filled(blockSize, 0); + _cipher.encryptBlock(counter, tagMask); + + counter[blockSize - 1] = 2; + + final calculatedTag = List.filled(tagLength, 0); + _authenticate(calculatedTag, tagMask, + sealed.sublist(0, sealed.length - tagLength), associatedData); + + if (!bytesEqual(calculatedTag, sealed.sublist(sealed.length - tagLength))) { + return null; + } + + final resultLength = sealed.length - tagLength; + List result = dst ?? List.filled(resultLength, 0); + if (result.length != resultLength) { + throw ArgumentError("GCM: incorrect destination length"); + } + final ctr = CTR(_cipher, counter); + ctr.streamXOR(sealed.sublist(0, sealed.length - tagLength), result); + ctr.clean(); + + zero(counter); + zero(tagMask); + return result; + } + + /// Cleans up resources used by the Galois/Counter Mode (GCM) instance. + /// + /// This method clears sensitive data and resources, such as the subkey used for encryption and decryption. + /// + /// Returns: + /// - A reference to the cleaned GCM instance. + /// + /// Note: Cleaning the GCM instance is important for security to prevent potential data leaks. + @override + GCM clean() { + zero(_subkey); + return this; + } + + _authenticate(List tagOut, List tagMask, List ciphertext, + [List? associatedData]) { + final blockSize = _cipher.blockSize; + if (associatedData != null) { + for (int i = 0; i < associatedData.length; i += blockSize) { + final slice = associatedData.sublist( + i, math.min(i + blockSize, associatedData.length)); + _addmul(tagOut, slice, _subkey); + } + } + + for (int i = 0; i < ciphertext.length; i += blockSize) { + final slice = + ciphertext.sublist(i, math.min(i + blockSize, ciphertext.length)); + _addmul(tagOut, slice, _subkey); + } + + final lengthsBlock = List.filled(blockSize, 0); + if (associatedData != null) { + _writeBitLength(associatedData.length, lengthsBlock, 0); + } + _writeBitLength(ciphertext.length, lengthsBlock, 8); + _addmul(tagOut, lengthsBlock, _subkey); + + for (var i = 0; i < tagMask.length; i++) { + tagOut[i] ^= tagMask[i]; + } + + zero(lengthsBlock); + } + + void _writeBitLength(int byteLength, List dst, [int offset = 0]) { + final hi = (byteLength ~/ 0x20000000); + final lo = byteLength << 3; + writeUint32BE(hi, dst, offset + 0); + writeUint32BE(lo, dst, offset + 4); + } + +// Add and multiply in GF(2^128) +// +// a = (a + x) * y in the finite field +// +// a is 16 bytes +// y is 16 bytes +// x is 0-16 bytes, if x.length <= 16; x is implicitly 0-padded +// +// Masking idea from Mike Belopuhov's implementation, +// that credits John-Mark Gurney for the idea. +// http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/crypto/gmac.c +// +// Addition with implicit padding before multiplication +// is due to Daniel J. Bernstein's implementation in SUPERCOP. + void _addmul(List a, List x, List y) { + for (int i = 0; i < x.length; i++) { + a[i] ^= x[i]; + } + + int v0 = (y[3] | y[2] << 8 | y[1] << 16 | y[0] << 24); + int v1 = (y[7] | y[6] << 8 | y[5] << 16 | y[4] << 24); + int v2 = (y[11] | y[10] << 8 | y[9] << 16 | y[8] << 24); + int v3 = (y[15] | y[14] << 8 | y[13] << 16 | y[12] << 24); + int z0 = 0, z1 = 0, z2 = 0, z3 = 0; + + for (var i = 0; i < 128; i++) { + int mask = ~((((-(a[i >> 3] & (1 << (~i & 7)))) >> 31) & 1) - 1); + z0 ^= v0 & mask; + z1 ^= v1 & mask; + z2 ^= v2 & mask; + z3 ^= v3 & mask; + + mask = ~((v3 & 1) - 1); + v3 = ((v2 << 31) & mask32) | ((v3 >> 1) & mask32); + v2 = ((v1 << 31) & mask32) | ((v2 >> 1) & mask32); + v1 = ((v0 << 31) & mask32) | ((v1 >> 1) & mask32); + v0 = ((v0 >> 1) & mask32) ^ (0xe1000000 & mask); + } + writeUint32BE(z0, a, 0); + writeUint32BE(z1, a, 4); + writeUint32BE(z2, a, 8); + writeUint32BE(z3, a, 12); + } +} diff --git a/lib/crypto/crypto/hash/black2b/black2b.dart b/lib/crypto/crypto/hash/black2b/black2b.dart new file mode 100644 index 0000000..2fa979a --- /dev/null +++ b/lib/crypto/crypto/hash/black2b/black2b.dart @@ -0,0 +1,774 @@ +part of 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +const int _blockSize = 128; +const int _digestLength = 64; +const int _keyLength = 64; +const int _personalizationLength = 16; +const int _saltLength = 16; + +const int _maxLeafSize = 4294967295; // 2^32 - 1 +const int _maxFanout = 255; +const int _maxMaxDepth = 255; // not a typo + +/// Configuration class for the Blake2b hash function. +/// +/// This class is used to specify various configuration parameters for the Blake2b hash function, including the key, salt, personalization string, and tree structure. +class Blake2bConfig { + /// The key used in the hash function, if provided. + final List? key; + + /// A salt value for customizing the hash. + final List? salt; + + /// A custom personalization string. + final List? personalization; + + // Configuration for the tree structure, if applicable. + final Blake2bTree? tree; + + const Blake2bConfig({this.key, this.salt, this.personalization, this.tree}); +} + +/// Configuration for the tree structure in Blake2b. +/// +/// This class defines parameters related to the tree structure used in the Blake2b hash function, including fanout, maximum depth, leaf size, and more. +class Blake2bTree { + /// The fanout value for the tree structure. + final int fanout; + + /// The maximum depth of the tree. + final int maxDepth; + + /// The size of the leaf nodes in the tree. + final int leafSize; + + /// High bits of the node offset. + final int nodeOffsetHighBits; + + /// Low bits of the node offset. + final int nodeOffsetLowBits; + + /// The depth of the current node in the tree. + final int nodeDepth; + + /// The length of the inner digest. + final int innerDigestLength; + + /// Indicates whether this is the last node in the tree. + final bool lastNode; + + const Blake2bTree({ + required this.fanout, + required this.maxDepth, + required this.leafSize, + required this.nodeOffsetHighBits, + required this.nodeOffsetLowBits, + required this.nodeDepth, + required this.innerDigestLength, + required this.lastNode, + }); +} + +final _iv = List.unmodifiable(const [ + 0xf3bcc908, + 0x6a09e667, + 0x84caa73b, + 0xbb67ae85, + 0xfe94f82b, + 0x3c6ef372, + 0x5f1d36f1, + 0xa54ff53a, + 0xade682d1, + 0x510e527f, + 0x2b3e6c1f, + 0x9b05688c, + 0xfb41bd6b, + 0x1f83d9ab, + 0x137e2179, + 0x5be0cd19 +]); + +final List> _sigma = [ + [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30], + [28, 20, 8, 16, 18, 30, 26, 12, 2, 24, 0, 4, 22, 14, 10, 6], + [22, 16, 24, 0, 10, 4, 30, 26, 20, 28, 6, 12, 14, 2, 18, 8], + [14, 18, 6, 2, 26, 24, 22, 28, 4, 12, 10, 20, 8, 0, 30, 16], + [18, 0, 10, 14, 4, 8, 20, 30, 28, 2, 22, 24, 12, 16, 6, 26], + [4, 24, 12, 20, 0, 22, 16, 6, 8, 26, 14, 10, 30, 28, 2, 18], + [24, 10, 2, 30, 28, 26, 8, 20, 0, 14, 12, 6, 18, 4, 16, 22], + [26, 22, 14, 28, 24, 2, 6, 18, 10, 0, 30, 8, 16, 12, 4, 20], + [12, 30, 28, 18, 22, 6, 0, 16, 24, 4, 26, 14, 2, 8, 20, 10], + [20, 4, 16, 8, 14, 12, 2, 10, 30, 22, 18, 28, 6, 24, 26, 0], + [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30], + [28, 20, 8, 16, 18, 30, 26, 12, 2, 24, 0, 4, 22, 14, 10, 6] +]; + +/// Implementation of the BLAKE2b hash function that implements the SerializableHash interface. +/// +/// BLAKE2b is a cryptographic hash function that produces a fixed-length hash value from input data. +/// This class provides the internal state, buffers, and logic to perform the hashing operation. +/// +/// Fields: +/// - [_state]: The internal state of the BLAKE2b hash. +/// - [_buffer]: A buffer to hold input data blocks. +/// - [_bufferLength]: The current length of data in the buffer. +/// - [_ctr]: A counter for block processing. +/// - [_flag]: A flag for last node processing. +/// - [_lastNode]: A flag indicating if this is the last node. +/// - [_finished]: A flag indicating if the hashing process is finished. +/// - [_vtmp]: Temporary storage for variable data. +/// - [_mtmp]: Temporary storage for message data. +/// - [_paddedKey]: Padded key for hash initialization. +/// - [_initialState]: The initial state of the BLAKE2b hash. +class BLAKE2b implements SerializableHash { + final List _state = List.from(_iv, growable: false); + final List _buffer = List.filled(_blockSize, 0); + int _bufferLength = 0; + final List _ctr = List.filled(4, 0); + final List _flag = List.filled(4, 0); + bool _lastNode = false; + bool _finished = false; + final List _vtmp = List.filled(32, 0); + final List _mtmp = List.filled(32, 0); + List? _paddedKey; + late List _initialState; + + /// Computes the BLAKE2b hash of the given input data. + /// + /// This method creates a BLAKE2b instance with optional configuration, updates it with the input data, + /// and then computes the hash digest. After hashing, the instance is cleaned to remove sensitive data. + /// + /// Parameters: + /// - [data]: The input data to be hashed. + /// - [digestLength]: The length of the hash digest in bytes (default is 64 bytes). + /// - [config]: Optional configuration for BLAKE2b (e.g., key, salt, personalization). + /// + /// Returns: + /// A List containing the computed BLAKE2b hash digest. + static List hash(List data, + [int digestLength = 64, Blake2bConfig? config]) { + final h = BLAKE2b(digestLength: digestLength, config: config); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } + + /// Creates a BLAKE2b hash instance with the specified digest length and optional configuration. + /// + /// Parameters: + /// - [digestLength]: The length of the hash digest in bytes (default is 64 bytes). + /// - [config]: Optional configuration for BLAKE2b (e.g., key, salt, personalization). + /// + /// Throws: + /// - An exception if the provided `digestLength` is out of the valid range. + BLAKE2b({int digestLength = 64, Blake2bConfig? config}) { + if (digestLength < 1 || digestLength > _digestLength) { + throw Exception("blake2b: wrong digest length"); + } + getDigestLength = digestLength; + + if (config != null) { + _validateConfig(config); + } + + int klength = 0; + if (config != null && config.key != null) { + klength = config.key!.length; + } + + int fanout = 1; + int maxDepth = 1; + if (config != null && config.tree != null) { + fanout = config.tree!.fanout; + maxDepth = config.tree!.maxDepth; + } + + _state[0] ^= + (getDigestLength | (klength << 8) | (fanout << 16) | (maxDepth << 24)); + + if (config != null && config.tree != null) { + _state[1] ^= config.tree!.leafSize; + + _state[2] ^= config.tree!.nodeOffsetLowBits; + _state[3] ^= config.tree!.nodeOffsetHighBits; + _state[4] ^= + (config.tree!.nodeDepth | (config.tree!.innerDigestLength << 8)); + + _lastNode = config.tree!.lastNode; + } + + if (config != null && config.salt != null) { + _state[8] ^= readUint32LE(config.salt!, 0); + _state[9] ^= readUint32LE(config.salt!, 4); + _state[10] ^= readUint32LE(config.salt!, 8); + _state[11] ^= readUint32LE(config.salt!, 12); + } + + if (config != null && config.personalization != null) { + _state[12] ^= readUint32LE(config.personalization!, 0); + _state[13] ^= readUint32LE(config.personalization!, 4); + _state[14] ^= readUint32LE(config.personalization!, 8); + _state[15] ^= readUint32LE(config.personalization!, 12); + } + + _initialState = List.from(_state, growable: false); + + if (config != null && config.key != null && _keyLength > 0) { + _paddedKey = List.filled(_blockSize, 0); + _paddedKey!.setAll(0, BytesUtils.toBytes(config.key!)); + + _buffer.setAll(0, _paddedKey!); + _bufferLength = _blockSize; + } + } + + /// Resets the BLAKE2b hash instance to its initial state, clearing all internal data. + /// + /// This method restores the initial state of the hash function, including the hash state, + /// the buffer, counters, and flags. If a key was previously set, it will be put back into + /// the buffer. + /// + /// Returns: + /// - The modified BLAKE2b instance, now in its initial state. + @override + BLAKE2b reset() { + _state.setAll(0, _initialState); + + if (_paddedKey != null) { + _buffer.setAll(0, _paddedKey!); + _bufferLength = _blockSize; + } else { + _bufferLength = 0; + } + + zero(_ctr); + zero(_flag); + _finished = false; + + return this; + } + + void _validateConfig(Blake2bConfig config) { + if (config.key != null && config.key!.length > _keyLength) { + throw Exception("blake2b: wrong key length"); + } + if (config.salt != null && config.salt!.length != _saltLength) { + throw Exception("blake2b: wrong salt length"); + } + if (config.personalization != null && + config.personalization!.length != _personalizationLength) { + throw Exception("blake2b: wrong personalization length"); + } + if (config.tree != null) { + if (config.tree!.fanout < 0 || config.tree!.fanout > _maxFanout) { + throw Exception("blake2b: wrong tree fanout"); + } + if (config.tree!.maxDepth < 0 || config.tree!.maxDepth > _maxMaxDepth) { + throw Exception("blake2b: wrong tree depth"); + } + if (config.tree!.leafSize < 0 || config.tree!.leafSize > _maxLeafSize) { + throw Exception("blake2b: wrong leaf size"); + } + if (config.tree!.innerDigestLength < 0 || + config.tree!.innerDigestLength > _digestLength) { + throw Exception("blake2b: wrong tree inner digest length"); + } + } + } + + /// Updates the BLAKE2b hash with the given data, optionally specifying the data length. + /// + /// This method updates the hash state with the provided data. If a specific data length is + /// provided, only that amount of data will be processed. If the hash was previously finished, + /// an exception will be thrown. + /// + /// Parameters: + /// - `data`: The data to be hashed. + /// - `length` (optional): The length of data to process. If not specified, the entire data + /// will be processed. + /// + /// Returns: + /// - The modified BLAKE2b instance with updated hash state. + @override + BLAKE2b update(List data, {int? length}) { + if (_finished) { + throw Exception("blake2b: can't update because hash was finished."); + } + + int left = _blockSize - _bufferLength; + int dataPos = 0; + + int dataLength = length ?? data.length; + + if (dataLength == 0) { + return this; + } + + // Finish buffer. + if (dataLength > left) { + for (int i = 0; i < left; i++) { + _buffer[_bufferLength + i] = data[dataPos + i] & mask8; + } + _processBlock(_blockSize); + dataPos += left; + dataLength -= left; + _bufferLength = 0; + } + + // Process data blocks. + while (dataLength > _blockSize) { + for (int i = 0; i < _blockSize; i++) { + _buffer[i] = data[dataPos + i] & mask8; + } + _processBlock(_blockSize); + dataPos += _blockSize; + dataLength -= _blockSize; + _bufferLength = 0; + } + + // Copy leftovers to buffer. + for (int i = 0; i < dataLength; i++) { + _buffer[_bufferLength + i] = data[dataPos + i] & mask8; + } + _bufferLength += dataLength; + + return this; + } + + /// Finalizes the BLAKE2b hash, producing the hash digest and writing it to the given output [List]. + /// + /// If the hash was already finished, this method simply returns the digest. Otherwise, it + /// completes the hash computation, marking it as finished. + /// + /// Parameters: + /// - `out`: The [List] where the hash digest will be written. + /// + /// Returns: + /// - The BLAKE2b instance with the finalized hash state. The hash digest is also written + /// to the provided [List] 'out'. + @override + BLAKE2b finish(List out) { + if (!_finished) { + for (int i = _bufferLength; i < _blockSize; i++) { + _buffer[i] = 0; + } + + // Set last block flag. + _flag[0] = mask32; + _flag[1] = mask32; + + // Set last node flag if the last node in the tree. + if (_lastNode) { + _flag[2] = mask32; + _flag[3] = mask32; + } + + _processBlock(_bufferLength); + _finished = true; + } + + List tmp = List.filled(64, 0); + for (int i = 0; i < 16; i++) { + writeUint32LE(_state[i], tmp, i * 4); + } + out.setRange(0, out.length, tmp); + return this; + } + + /// Returns the final hash digest as a [List]. + /// + /// This method calls the 'finish' method to complete the hash computation if it has + /// not already been finished, and then returns the hash digest as a [List]. + /// + /// Returns: + /// - The final hash digest as a [List]. + @override + List digest() { + List out = List.filled(getDigestLength, 0); + finish(out); + return out; + } + + /// Cleans sensitive data and resets the internal state of the hash function. + /// + /// This method securely zeros and resets the internal state, including the state + /// vectors, buffer, key (if present), counters, and flags. It ensures that any + /// sensitive information used during the hash computation is securely erased. + @override + void clean() { + zero(_vtmp); + zero(_mtmp); + zero(_state); + zero(_buffer); + zero(_initialState); + if (_paddedKey != null) { + zero(_paddedKey!); + } + _bufferLength = 0; + zero(_ctr); + zero(_flag); + _lastNode = false; + _finished = false; + } + + void _g(List v, int al, int bl, int cl, int dl, int ah, int bh, int ch, + int dh, int ml0, int mh0, int ml1, int mh1) { + int vla = v[al], + vha = v[ah], + vlb = v[bl], + vhb = v[bh], + vlc = v[cl], + vhc = v[ch], + vld = v[dl], + vhd = v[dh]; + + // 64-bit: va += vb + int w = vla & mask16, + x = (vla >> 16) & mask16, + y = vha & mask16, + z = (vha >> 16) & mask16; + + w += vlb & mask16; + x += (vlb >> 16) & mask16; + y += vhb & mask16; + z += (vhb >> 16) & mask16; + + x += (w >> 16) & mask16; + y += (x >> 16) & mask16; + z += (y >> 16) & mask16; + + vha = ((y & mask16) | (z << 16)) & mask32; + vla = ((w & mask16) | (x << 16)) & mask32; + + // 64-bit: va += m[sigma[r][2 * i + 0]] + w = vla & mask16; + x = (vla >> 16) & mask16; + y = vha & mask16; + z = (vha >> 16) & mask16; + + w += ml0 & mask16; + x += (ml0 >> 16) & mask16; + y += mh0 & mask16; + z += (mh0 >> 16) & mask16; + + x += (w >> 16) & mask16; + y += (x >> 16) & mask16; + z += (y >> 16) & mask16; + + vha = ((y & mask16) | (z << 16)) & mask32; + vla = ((w & mask16) | (x << 16)) & mask32; + + // 64-bit: vd ^= va + vld ^= vla; + vhd ^= vha; + + // 64-bit: rot(vd, 32) + w = vhd; + vhd = vld; + vld = w; + + // 64-bit: vc += vd + w = vlc & mask16; + x = (vlc >> 16) & mask16; + y = vhc & mask16; + z = (vhc >> 16) & mask16; + + w += vld & mask16; + x += (vld >> 16) & mask16; + y += vhd & mask16; + z += (vhd >> 16) & mask16; + + x += (w >> 16) & mask16; + y += (x >> 16) & mask16; + z += (y >> 16) & mask16; + + vhc = ((y & mask16) | (z << 16)) & mask32; + vlc = ((w & mask16) | (x << 16)) & mask32; + + // 64-bit: vb ^= vc + vlb ^= vlc; + vhb ^= vhc; + + // 64-bit: rot(vb, 24) + w = ((vlb << 8) | (vhb >> 24)) & mask32; + vlb = ((vhb << 8) | (vlb >> 24)) & mask32; + vhb = w; + + // 64-bit: va += vb + w = vla & mask16; + x = (vla >> 16) & mask16; + y = vha & mask16; + z = (vha >> 16) & mask16; + + w += vlb & mask16; + x += (vlb >> 16) & mask16; + y += vhb & mask16; + z += (vhb >> 16) & mask16; + + x += (w >> 16) & mask16; + y += (x >> 16) & mask16; + z += (y >> 16) & mask16; + + vha = ((y & mask16) | (z << 16)) & mask32; + vla = ((w & mask16) | (x << 16)) & mask32; + + // 64-bit: va += m[sigma[r][2 * i + 1] + w = vla & mask16; + x = (vla >> 16) & mask16; + y = vha & mask16; + z = (vha >> 16) & mask16; + + w += ml1 & mask16; + x += (ml1 >> 16) & mask16; + y += mh1 & mask16; + z += (mh1 >> 16) & mask16; + + x += (w >> 16) & mask16; + y += (x >> 16) & mask16; + z += (y >> 16) & mask16; + + vha = ((y & mask16) | (z << 16)) & mask32; + vla = ((w & mask16) | (x << 16)) & mask32; + + // 64-bit: vd ^= va + vld ^= vla; + vhd ^= vha; + + // 64-bit: rot(vd, 16) + w = ((vld << 16) | (vhd >> 16)) & mask32; + vld = ((vhd << 16) | (vld >> 16)) & mask32; + vhd = w; + + // 64-bit: vc += vd + w = vlc & mask16; + x = (vlc >> 16) & mask16; + y = vhc & mask16; + z = (vhc >> 16) & mask16; + + w += vld & mask16; + x += (vld >> 16) & mask16; + y += vhd & mask16; + z += (vhd >> 16) & mask16; + + x += (w >> 16) & mask16; + y += (x >> 16) & mask16; + z += (y >> 16) & mask16; + + vhc = ((y & mask16) | (z << 16)) & mask32; + vlc = ((w & mask16) | (x << 16)) & mask32; + + // 64-bit: vb ^= vc + vlb ^= vlc; + vhb ^= vhc; + + // 64-bit: rot(vb, 63) + w = ((vhb << 1) | (vlb >> 31)) & mask32; + vlb = ((vlb << 1) | (vhb >> 31)) & mask32; + vhb = w; + + v[al] = vla; + v[ah] = vha; + v[bl] = vlb; + v[bh] = vhb; + v[cl] = vlc; + v[ch] = vhc; + v[dl] = vld; + v[dh] = vhd; + } + + void _processBlock(int length) { + _incrementCounter(length); + var v = _vtmp; + v.setAll(0, _state); + v.setAll(16, _iv); + v[12 * 2 + 0] ^= _ctr[0]; + v[12 * 2 + 1] ^= _ctr[1]; + v[13 * 2 + 0] ^= _ctr[2]; + v[13 * 2 + 1] ^= _ctr[3]; + v[14 * 2 + 0] ^= _flag[0]; + v[14 * 2 + 1] ^= _flag[1]; + v[15 * 2 + 0] ^= _flag[2]; + v[15 * 2 + 1] ^= _flag[3]; + var m = _mtmp; + for (var i = 0; i < 32; i++) { + m[i] = readUint32LE(_buffer, i * 4); + } + for (var r = 0; r < 12; r++) { + _g(v, 0, 8, 16, 24, 1, 9, 17, 25, m[_sigma[r][0]], m[_sigma[r][0] + 1], + m[_sigma[r][1]], m[_sigma[r][1] + 1]); + + _g(v, 2, 10, 18, 26, 3, 11, 19, 27, m[_sigma[r][2]], m[_sigma[r][2] + 1], + m[_sigma[r][3]], m[_sigma[r][3] + 1]); + + _g(v, 4, 12, 20, 28, 5, 13, 21, 29, m[_sigma[r][4]], m[_sigma[r][4] + 1], + m[_sigma[r][5]], m[_sigma[r][5] + 1]); + _g(v, 6, 14, 22, 30, 7, 15, 23, 31, m[_sigma[r][6]], m[_sigma[r][6] + 1], + m[_sigma[r][7]], m[_sigma[r][7] + 1]); + _g(v, 0, 10, 20, 30, 1, 11, 21, 31, m[_sigma[r][8]], m[_sigma[r][8] + 1], + m[_sigma[r][9]], m[_sigma[r][9] + 1]); + _g(v, 2, 12, 22, 24, 3, 13, 23, 25, m[_sigma[r][10]], + m[_sigma[r][10] + 1], m[_sigma[r][11]], m[_sigma[r][11] + 1]); + _g(v, 4, 14, 16, 26, 5, 15, 17, 27, m[_sigma[r][12]], + m[_sigma[r][12] + 1], m[_sigma[r][13]], m[_sigma[r][13] + 1]); + _g(v, 6, 8, 18, 28, 7, 9, 19, 29, m[_sigma[r][14]], m[_sigma[r][14] + 1], + m[_sigma[r][15]], m[_sigma[r][15] + 1]); + } + for (var i = 0; i < 16; i++) { + _state[i] ^= v[i] ^ v[i + 16]; + } + } + + /// Cleans and resets a saved hash state, securely erasing sensitive data. + /// + /// This method takes a [savedState] object and cleans it by wiping its internal + /// state vectors, buffer, key (if present), counters, and flags. It ensures + /// that any sensitive information in the saved state is securely erased. + /// + /// Note: The [savedState] object must be of type [Blake2bState]. + /// + /// Parameters: + /// - [savedState]: The hash state to clean and reset securely. + @override + void cleanSavedState(HashState savedState) { + savedState as Blake2bState; + zero(savedState.state); + zero(savedState.buffer); + zero(savedState.initialState); + + if (savedState.paddedKey != null) { + zero(savedState.paddedKey!); + } + + savedState.bufferLength = 0; + zero(savedState.ctr); + zero(savedState.flag); + + savedState.lastNode = false; + } + + @override + int get getBlockSize => _blockSize; + + @override + late final int getDigestLength; + + /// Restores the hash state to a previously saved state object. + /// + /// This method restores the internal state of the BLAKE2b hash function + /// to a previously saved state, including the state vector, buffer, buffer length, + /// counters, flags, and whether it represents the last node in a tree. + /// + /// Parameters: + /// - [savedState]: The saved hash state to restore. + /// + /// Returns: + /// The BLAKE2b instance with the state restored to that of the saved state. + @override + BLAKE2b restoreState(HashState savedState) { + savedState as Blake2bState; + _state.setAll(0, savedState.state); + _buffer.setAll(0, savedState.buffer); + _bufferLength = savedState.bufferLength; + _ctr.setAll(0, savedState.ctr); + _flag.setAll(0, savedState.flag); + _lastNode = savedState.lastNode; + + if (_paddedKey != null) { + zero(_paddedKey!); + } + + _paddedKey = savedState.paddedKey != null + ? List.from(savedState.paddedKey!) + : null; + + _initialState.setAll(0, savedState.initialState); + + return this; + } + + /// Saves the current state of the BLAKE2b hash function for future restoration. + /// + /// This method captures the current state of the BLAKE2b hash function, including + /// the state vector, buffer, buffer length, counters, flags, whether it represents + /// the last node in a tree, and the padded key (if any), and returns it as a + /// [Blake2bState] object. + /// + /// Returns: + /// A [Blake2bState] object representing the current state of the BLAKE2b instance. + /// + /// Throws: + /// - Exception if the hash function has already been marked as finished. + @override + Blake2bState saveState() { + if (_finished) { + throw Exception("blake2b: cannot save finished state"); + } + + return Blake2bState( + state: List.from(_state, growable: false), + buffer: List.from(_buffer, growable: false), + bufferLength: _bufferLength, + ctr: List.from(_ctr, growable: false), + flag: List.from(_flag, growable: false), + lastNode: _lastNode, + paddedKey: _paddedKey != null ? List.from(_paddedKey!) : null, + initialState: List.from(_initialState, growable: false), + ); + } + + void _incrementCounter(int length) { + for (int i = 0; i < 3; i++) { + int a = _ctr[i] + length; + _ctr[i] = a & mask32; + if (_ctr[i] == a) { + return; + } + length = 1; + } + } +} + +/// Represents the state of a BLAKE2b hash function. +/// +/// This class encapsulates the state of a BLAKE2b hash function at a specific point +/// in its operation. It includes the state vector, buffer, buffer length, counters, +/// flags, the indication of whether it represents the last node in a tree, the padded +/// key (if any), and the initial state. +class Blake2bState implements HashState { + /// The state vector of the hash function. + List state; + + /// The buffer of the hash function. + List buffer; + + /// The length of data currently stored in the buffer. + int bufferLength; + + /// The counter values used by the hash function. + List ctr; + + /// The flags used by the hash function. + List flag; + + /// Indicates whether the hash function represents the last node in a tree. + bool lastNode; + + /// The padded key used by the hash function, if any. + List? paddedKey; + + /// The initial state of the hash function. + List initialState; + + /// Creates a new instance of the Blake2bState class with the provided values. + Blake2bState({ + required this.state, + required this.buffer, + required this.bufferLength, + required this.ctr, + required this.flag, + required this.lastNode, + this.paddedKey, + required this.initialState, + }); +} diff --git a/lib/crypto/crypto/hash/hash.dart b/lib/crypto/crypto/hash/hash.dart new file mode 100644 index 0000000..28193df --- /dev/null +++ b/lib/crypto/crypto/hash/hash.dart @@ -0,0 +1,100 @@ +/// The `hash` library provides a collection of cryptographic hashing and HMAC (Hash-based Message Authentication Code) functions +/// for secure data integrity verification and password protection. +/// +/// Supported Algorithms: +/// - SHA-256: Secure Hash Algorithm 256-bit. +/// - SHA-512: Secure Hash Algorithm 512-bit. +/// - HMAC: Hash-based Message Authentication Code for secure authentication. +/// - Blake2b: A high-speed cryptographic hash function. +/// - SHA-1: Secure Hash Algorithm 1. +/// - MD5: Message Digest Algorithm 5. +/// - MD4: Message Digest Algorithm 4. +/// - SHA-384: Secure Hash Algorithm 384-bit. +/// - Keccack: SHA-3, SHA-3/224, SHA-3/256, SHA-3/384, SHA-3/512, SHAKE128-256 +/// - Ridemp: RIPEMD-320, RIPEMD-256, RIPEMD-160, RIPEMD-128 +/// -.... +library hash; + +import 'package:blockchain_utils/binary/binary_operation.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'dart:math' as math; + +/// Export statement for the 'sha224' part, providing the SHA-224 hash algorithm. +part 'sha224/sha224.dart'; + +/// Export statement for the 'sha256' part, offering the SHA-256 hash algorithm. +part 'sha256/sha256.dart'; + +/// Export statement for the 'sha384' part, providing the SHA-384 hash algorithm. +part 'sha384/sha384.dart'; + +/// Export statement for the 'sha512' part, which includes the SHA-512 hash algorithm. +part 'sha512/sha512.dart'; + +/// Export statement for the 'sha512_256' part, offering the SHA-512/256 hash algorithm. +part 'sha512_256/sh512256.dart'; + +/// Export statement for the 'sha1' part, providing the SHA-1 hash algorithm. +part 'sha1/sha1.dart'; + +/// Export statement for the 'blake2b' part, offering the Blake2b hash algorithm. +part 'black2b/black2b.dart'; + +/// Export statement for the 'ridemp' part, providing the RIdEMP hash algorithm. +part 'ridemp/ridemp.dart'; + +/// Export statement for the 'md5' part, which includes the MD5 hash algorithm. +part 'md5/md5.dart'; + +/// Export statement for the 'md4' part, offering the MD4 hash algorithm. +part 'md4/md4.dart'; + +/// Export statement for the 'keccak' part, providing the SHA-3 (Keccak) hash algorithm. +part 'keccack/sha3.dart'; + +/// The `Hash` abstract class defines the basic operations for hash algorithms. +/// +/// It serves as the base for hash algorithms, defining methods and properties +/// required for common hash processing. +abstract class Hash { + /// The length of the digest produced by the hash algorithm. + int get getDigestLength; + + /// The block size used by the hash algorithm. + int get getBlockSize; + + /// Updates the hash with the provided data. + Hash update(List data); + + /// Resets the hash to its initial state. + Hash reset(); + + /// Finalizes the hash computation and stores the result in the provided `out` buffer. + Hash finish(List out); + + /// Retrieves the hash digest. + List digest(); + + /// Cleans sensitive data in the hash instance. + void clean(); +} + +/// The `SerializableHash` abstract class extends the `Hash` class and adds +/// functionality for saving, restoring, and cleaning hash states. +/// +/// It's useful for hash algorithms that require intermediate state management. +abstract class SerializableHash extends Hash { + /// Saves the current hash state. + HashState saveState(); + + /// Restores the hash state from a saved state. + SerializableHash restoreState(HashState savedState); + + /// Cleans sensitive data from the saved hash state. + void cleanSavedState(HashState savedState); +} + +/// The `HashState` abstract class serves as a marker interface for hash state classes. +/// +/// Implementing classes are used for saving, restoring, and managing the state of a hash algorithm. +abstract class HashState {} diff --git a/lib/crypto/crypto/hash/keccack/sha3.dart b/lib/crypto/crypto/hash/keccack/sha3.dart new file mode 100644 index 0000000..2922f6d --- /dev/null +++ b/lib/crypto/crypto/hash/keccack/sha3.dart @@ -0,0 +1,1024 @@ +part of 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +class _Keccack { + /// temporary space for permutation (high bits) + final List _sh = List.filled(25, 0); + + /// temporary space for permutation (low bits) + final List _sl = List.filled(25, 0); + + /// hash state + final List _state = List.filled(200, 0); + + /// position in state to XOR bytes into + int _pos = 0; + + /// whether the hash was finalized + bool _finished = false; + + /// block size + late final int blockSize; + _Keccack([int capacity = 32]) { + if (capacity <= 0 || capacity > 128) { + throw ArgumentError("SHA3: incorrect capacity"); + } + + blockSize = 200 - capacity; + } + + /// Resets the hash computation to its initial state. + /// + /// This method initializes the hash computation to its initial state, clearing any previously + /// processed data. After calling this method, you can start a new hash computation. + /// + /// Returns the current instance of the hash algorithm with the initial stat + _Keccack reset() { + zero(_sh); + zero(_sl); + zero(_state); + _pos = 0; + _finished = false; + return this; + } + + /// Updates the hash computation with the given data. + /// + /// This method updates the hash computation with the provided [data] bytes. It appends the data to + /// the internal buffer and processes it to update the hash state. + /// + /// If the hash has already been finished using the `finish` method, calling this method will result in an error. + /// + /// Parameters: + /// - [data]: The List containing the data to be hashed. + /// + /// Returns this [Hash] object for method chaining. + _Keccack update(List data) { + if (_finished) { + throw StateError("SHA3: can't update because hash was finished"); + } + + for (var i = 0; i < data.length; i++) { + _state[_pos++] ^= data[i] & mask8; + + if (_pos >= blockSize) { + _keccakf(_sh, _sl, _state); + _pos = 0; + } + } + + return this; + } + + /// Clean up the internal state and reset hash object to its initial state. + clean() => reset(); + + void _padAndPermute(int? paddingByte) { + if (paddingByte != null) { + _state[_pos] ^= paddingByte; + _state[blockSize - 1] ^= 0x80; + } + + // Permute state. + _keccakf(_sh, _sl, _state); + + // Set finished flag to true. + _finished = true; + _pos = 0; + } + + void _squeeze(List dst) { + if (!_finished) { + throw StateError("SHA3: squeezing before padAndPermute"); + } + + for (var i = 0; i < dst.length; i++) { + if (_pos == blockSize) { + // Permute. + _keccakf(_sh, _sl, _state); + _pos = 0; + } + dst[i] = _state[_pos++]; + } + } +} + +class Keccack extends _Keccack { + static void keccackF1600(List src) { + /// temporary space for permutation (high bits) + final List sh = List.filled(25, 0); + + /// temporary space for permutation (low bits) + final List sl = List.filled(25, 0); + _keccakf(sh, sl, src); + } + + // Constructor for Keccak with an optional named parameter digestLength + Keccack([this.digestLength = 32]) : super(digestLength * 2); + + /// digest length + final int digestLength; + + /// Resets the hash computation to its initial state. + /// + /// This method initializes the hash computation to its initial state, clearing any previously + /// processed data. After calling this method, you can start a new hash computation. + /// + /// Returns the current instance of the hash algorithm with the initial stat + @override + Keccack reset() { + super.reset(); + return this; + } + + /// Updates the hash computation with the given data. + /// + /// This method updates the hash computation with the provided [data] bytes. It appends the data to + /// the internal buffer and processes it to update the hash state. + /// + /// If the hash has already been finished using the `finish` method, calling this method will result in an error. + /// + /// Parameters: + /// - [data]: The List containing the data to be hashed. + /// + /// Returns this [Hash] object for method chaining. + @override + Keccack update(List data) { + super.update(data); + return this; + } + + /// Finalizes the hash computation and stores the hash state in the provided List [out]. + /// + /// This function completes the hash computation, finalizes the state, and stores the resulting + /// hash in the provided [out] List. If the hash has already been finished, this method + /// will return the existing state without re-computing. + /// + /// Parameters: + /// - [out]: The List in which the hash digest is stored. + /// + /// Returns the current instance of the hash algorithm. + Keccack finish(List dst) { + if (!_finished) { + _padAndPermute(0x01); + } else { + // Only works for up to blockSize digests, + // which is the case in our implementation. + _pos = 0; + } + _squeeze(dst); + return this; + } + + /// Generates the final hash digest by assembling and returning the hash state in a List. + /// + /// This function produces the hash digest by combining the current hash state into a single + /// List output. It finalizes the hash if it hasn't been finished, effectively completing + /// the hash computation and returning the result. + /// + /// Returns the List containing the computed hash digest. + List digest() { + final out = List.filled(digestLength, 0); + finish(out); + return out; + } + + /// Saves the current hash computation state into a serializable state object. + /// + /// This method saves the current state of the hash computation, including the data buffer, + /// hash state, and etc, into a serializable state object. + /// The saved state can be later restored using the `restoreState` method. + /// + /// Returns a [HashState] object containing the saved state information. + List saveState() { + if (_finished) { + throw StateError("SHA3: cannot save finished state"); + } + return List.from(_state.sublist(0, _pos)); + } + + /// Restores the hash computation state from a previously saved state. + /// + /// This method allows you to restore the hash computation state to a previously saved state. + /// It is useful when you want to continue hashing data from a certain point, or if you want + /// to combine multiple hash computations. + Keccack restoreState(dynamic savedState) { + _state.setAll(0, savedState); + _pos = savedState.length; + _finished = false; + return this; + } + + /// Clean up and reset the saved state of the hash object to its initial state. + /// This function erases the buffer and sets the state and length to the default values. + /// It is used to ensure that a previously saved hash state is cleared and ready for reuse. + /// + /// [savedState]: The hash state to be cleaned and reset. + void cleanSavedState(dynamic savedState) { + zero(savedState); + } + + /// Computes the Keccack hash of the provided data. + static List hash(List data, [int digestLength = 32]) { + final h = Keccack(digestLength); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} + +/// The `SHA3` class is used to compute hash digests of data, and it allows customization of the +/// digest length +class SHA3 extends _Keccack implements SerializableHash { + // Constructor for SHA3 with an optional positional parameter digestLength + SHA3([int digestLength = 32]) + : getDigestLength = digestLength, + super(digestLength * 2); + + /// digest length + @override + final int getDigestLength; + + /// block size + @override + int get getBlockSize => 200; + SHA3 reset() { + super.reset(); + return this; + } + + /// Updates the hash computation with the given data. + /// + /// This method updates the hash computation with the provided [data] bytes. It appends the data to + /// the internal buffer and processes it to update the hash state. + /// + /// If the hash has already been finished using the `finish` method, calling this method will result in an error. + /// + /// Parameters: + /// - [data]: The List containing the data to be hashed. + /// + /// Returns this [Hash] object for method chaining. + SHA3 update(List data) { + super.update(data); + return this; + } + + /// Finalizes the hash computation and stores the hash state in the provided List [out]. + /// + /// This function completes the hash computation, finalizes the state, and stores the resulting + /// hash in the provided [out] List. If the hash has already been finished, this method + /// will return the existing state without re-computing. + /// + /// Parameters: + /// - [out]: The List in which the hash digest is stored. + /// + /// Returns the current instance of the hash algorithm. + @override + SHA3 finish(List dst) { + if (!_finished) { + _padAndPermute(0x06); + } else { + // Only works for up to blockSize digests, + // which is the case in our implementation. + _pos = 0; + } + _squeeze(dst); + return this; + } + + /// Generates the final hash digest by assembling and returning the hash state in a List. + /// + /// This function produces the hash digest by combining the current hash state into a single + /// List output. It finalizes the hash if it hasn't been finished, effectively completing + /// the hash computation and returning the result. + /// + /// Returns the List containing the computed hash digest. + @override + List digest() { + final out = List.filled(getDigestLength, 0); + finish(out); + return out; + } + + /// Saves the current hash computation state into a serializable state object. + /// + /// This method saves the current state of the hash computation, including the data buffer, + /// hash state, and etc, into a serializable state object. + /// The saved state can be later restored using the `restoreState` method. + /// + /// Returns a [HashState] object containing the saved state information. + @override + HashBytesState saveState() { + if (_finished) { + throw StateError("SHA3: cannot save finished state"); + } + return HashBytesState(data: List.from(_state), pos: _pos); + } + + /// Restores the hash computation state from a previously saved state. + /// + /// This method allows you to restore the hash computation state to a previously saved state. + /// It is useful when you want to continue hashing data from a certain point, or if you want + /// to combine multiple hash computations. + /// + /// Parameters: + /// - `savedState`: The saved state to restore. + /// + /// Returns the current instance of the hash algorithm with the restored state. + @override + SHA3 restoreState(HashState savedState) { + savedState as HashBytesState; + _state.setAll(0, savedState.data); + _pos = savedState.pos; + _finished = false; + return this; + } + + /// Clean up and reset the saved state of the hash object to its initial state. + /// This function erases the buffer and sets the state and length to the default values. + /// It is used to ensure that a previously saved hash state is cleared and ready for reuse. + /// + /// [savedState]: The hash state to be cleaned and reset. + @override + void cleanSavedState(HashState savedState) { + savedState as HashBytesState; + zero(savedState.data); + savedState.pos = 0; + } + + /// Computes the SHA3 hash of the provided data. + static List hash(List data, [int digestLength = 32]) { + final h = SHA3(digestLength); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} + +/// The `SHA3224` class represents a specific implementation of the SHA-3 (Secure Hash Algorithm 3) hash function +/// with a digest length of 224 bits (28 bytes). +/// +/// It extends the `SHA3` class to provide a specialized version of SHA-3 with a fixed digest length. +/// +/// The `SHA3224` class does not accept any additional parameters in its constructor, as it's specifically +/// tailored to produce a 224-bit digest. +class SHA3224 extends SHA3 { + /// Constructor for SHA3224 with a fixed digest length of 224 bits (28 bytes) + SHA3224() : super(224 ~/ 8); + + /// Computes the SHA3/224 hash of the provided data. + static List hash(List data) { + final h = SHA3224(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} + +/// The `SHA3256` class represents a specific implementation of the SHA-3 (Secure Hash Algorithm 3) hash function +/// with a digest length of 256 bits (32 bytes). +/// +/// It extends the `SHA3` class to provide a specialized version of SHA-3 with a fixed digest length. +/// +/// The `SHA3256` class does not accept any additional parameters in its constructor, as it's specifically +/// tailored to produce a 256-bit digest. +class SHA3256 extends SHA3 { + /// Constructor for SHA3256 with a fixed digest length of 256 bits (32 bytes) + SHA3256() : super(256 ~/ 8); + + /// Computes the SHA3/256 hash of the provided data. + static List hash(List data) { + final h = SHA3256(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} + +/// The `SHA3384` class represents a specific implementation of the SHA-3 (Secure Hash Algorithm 3) hash function +/// with a digest length of 384 bits (48 bytes). +/// +/// It extends the `SHA3` class to provide a specialized version of SHA-3 with a fixed digest length. +/// +/// The `SHA3384` class does not accept any additional parameters in its constructor, as it's specifically +/// tailored to produce a 384-bit digest. +class SHA3384 extends SHA3 { + /// Constructor for SHA3384 with a fixed digest length of 384 bits (48 bytes) + SHA3384() : super(384 ~/ 8); + + /// Computes the SHA3/384 hash of the provided data. + static List hash(List data) { + final h = SHA3384(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} + +/// The `SHA3512` class represents a specific implementation of the SHA-3 (Secure Hash Algorithm 3) hash function +/// with a digest length of 512 bits (64 bytes). +/// +/// It extends the `SHA3` class to provide a specialized version of SHA-3 with a fixed digest length. +/// +/// The `SHA3512` class does not accept any additional parameters in its constructor, as it's specifically +/// tailored to produce a 512-bit digest. +class SHA3512 extends SHA3 { + /// Constructor for SHA3512 with a fixed digest length of 512 bits (64 bytes) + SHA3512() : super(512 ~/ 8); + + /// Computes the SHA3/512 hash of the provided data. + static List hash(List data) { + final h = SHA3512(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} + +/// The `SHAKE` class represents the SHAKE (Secure Hash Algorithm KEccak) extendable-output hash function. +class SHAKE extends _Keccack implements SerializableHash { + /// The desired output size in bits for the SHAKE digest. + final int bitSize; + + /// Constructor for SHAKE with a specified bit size + SHAKE(this.bitSize) : super(bitSize ~/ 8 * 2); + + /// The `stream` method is used for generating a stream of pseudorandom bytes from the SHAKE (Secure Hash Algorithm KEccak) hash function. + /// + /// If the SHAKE instance has not been finalized, this method ensures that the sponge construction is properly padded and permuted before extracting data. + /// + /// Parameters: + /// - `dst`: A `List` to store the generated pseudorandom bytes. + /// + /// This method is especially useful for producing variable-length output streams, which is a key feature of SHAKE. + void stream(List dst) { + if (!_finished) { + _padAndPermute(0x1f); + } + _squeeze(dst); + } + + SHAKE reset() { + super.reset(); + return this; + } + + /// Updates the hash computation with the given data. + /// + /// This method updates the hash computation with the provided [data] bytes. It appends the data to + /// the internal buffer and processes it to update the hash state. + /// + /// If the hash has already been finished using the `finish` method, calling this method will result in an error. + /// + /// Parameters: + /// - [data]: The List containing the data to be hashed. + /// + /// Returns this [Hash] object for method chaining. + SHAKE update(List data) { + super.update(data); + return this; + } + + /// Restores the hash computation state from a previously saved state. + /// + /// This method allows you to restore the hash computation state to a previously saved state. + /// It is useful when you want to continue hashing data from a certain point, or if you want + /// to combine multiple hash computations. + /// + /// Parameters: + /// - `savedState`: The saved state to restore. + /// + /// Returns the current instance of the hash algorithm with the restored state. + @override + SHAKE restoreState(dynamic savedState) { + savedState as List; + _state.setAll(0, savedState); + _pos = savedState.length; + _finished = false; + return this; + } + + /// Clean up and reset the saved state of the hash object to its initial state. + /// This function erases the buffer and sets the state and length to the default values. + /// It is used to ensure that a previously saved hash state is cleared and ready for reuse. + /// + /// [savedState]: The hash state to be cleaned and reset. + @override + void cleanSavedState(dynamic savedState) { + zero(savedState); + } + + /// Generates the final hash digest by assembling and returning the hash state in a List. + /// + /// This function produces the hash digest by combining the current hash state into a single + /// List output. It finalizes the hash if it hasn't been finished, effectively completing + /// the hash computation and returning the result. + /// + /// Returns the List containing the computed hash digest. + @override + List digest([int outlen = 32]) { + final out = List.filled(outlen, 0); + finish(out); + return out; + } + + /// Finalizes the hash computation and stores the hash state in the provided List [out]. + /// + /// This function completes the hash computation, finalizes the state, and stores the resulting + /// hash in the provided [out] List. If the hash has already been finished, this method + /// will return the existing state without re-computing. + /// + /// Parameters: + /// - [out]: The List in which the hash digest is stored. + /// + /// Returns the current instance of the hash algorithm. + @override + Hash finish(List out) { + stream(out); + return this; + } + + @override + int get getBlockSize => bitSize ~/ 8; + + @override + int get getDigestLength => throw UnimplementedError(); + + /// Saves the current hash computation state into a serializable state object. + /// + /// This method saves the current state of the hash computation, including the data buffer, + /// hash state, and etc, into a serializable state object. + /// The saved state can be later restored using the `restoreState` method. + /// + /// Returns a [HashState] object containing the saved state information. + @override + HashBytesState saveState() { + if (_finished) { + throw StateError("SHA3: cannot save finished state"); + } + return HashBytesState(data: List.from(_state), pos: _pos); + } +} + +/// SHAKE128 is an implementation of the SHAKE128 extendable-output function. +/// +/// Example of usage: +/// ```dart +/// final shake = SHAKE128(); +/// shake.update(List.from([0x01, 0x02, 0x03])); +/// final digest = shake.digest(); +/// shake.clean(); +/// ``` +/// +/// The SHAKE128 class extends the SHAKE class and is configured to provide +/// 128-bit variable-length output. It can be used to generate hash-like digests +/// of varying lengths based on the input data. The `update` method is used to +/// update the hash state with input data, and the `digest` method is used to +/// obtain the final digest. +class SHAKE128 extends SHAKE { + /// Constructor for SHAKE-128 + SHAKE128() : super(128); +} + +/// SHAKE256 is an implementation of the SHAKE256 extendable-output function. +/// +/// Example of usage: +/// ```dart +/// final shake = SHAKE256(); +/// shake.update(List.from([0x01, 0x02, 0x03])); +/// final digest = shake.digest(); +/// shake.clean(); +/// ``` +/// +/// The SHAKE256 class extends the SHAKE class and is configured to provide +/// 256-bit variable-length output. It can be used to generate hash-like digests +/// of varying lengths based on the input data. The `update` method is used to +/// update the hash state with input data, and the `digest` method is used to +/// obtain the final digest. +class SHAKE256 extends SHAKE { + /// Constructor for SHAKE-256 + SHAKE256() : super(256); +} + +final _hi = List.unmodifiable(const [ + 0x00000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0x80000000 +]); + +final _lo = List.unmodifiable(const [ + 0x00000001, + 0x00008082, + 0x0000808a, + 0x80008000, + 0x0000808b, + 0x80000001, + 0x80008081, + 0x00008009, + 0x0000008a, + 0x00000088, + 0x80008009, + 0x8000000a, + 0x8000808b, + 0x0000008b, + 0x00008089, + 0x00008003, + 0x00008002, + 0x00000080, + 0x0000800a, + 0x8000000a, + 0x80008081, + 0x00008080, + 0x80000001, + 0x80008008 +]); +void _keccakf(List sh, List sl, List buf) { + int bch0, bch1, bch2, bch3, bch4; + int bcl0, bcl1, bcl2, bcl3, bcl4; + int th, tl; + + for (int i = 0; i < 25; i++) { + sl[i] = readUint32LE(buf, i * 8); + sh[i] = readUint32LE(buf, i * 8 + 4); + } + for (int r = 0; r < 24; r++) { + // Theta + bch0 = sh[0] ^ sh[5] ^ sh[10] ^ sh[15] ^ sh[20]; + bch1 = sh[1] ^ sh[6] ^ sh[11] ^ sh[16] ^ sh[21]; + bch2 = sh[2] ^ sh[7] ^ sh[12] ^ sh[17] ^ sh[22]; + bch3 = sh[3] ^ sh[8] ^ sh[13] ^ sh[18] ^ sh[23]; + bch4 = sh[4] ^ sh[9] ^ sh[14] ^ sh[19] ^ sh[24]; + bcl0 = sl[0] ^ sl[5] ^ sl[10] ^ sl[15] ^ sl[20]; + bcl1 = sl[1] ^ sl[6] ^ sl[11] ^ sl[16] ^ sl[21]; + bcl2 = sl[2] ^ sl[7] ^ sl[12] ^ sl[17] ^ sl[22]; + bcl3 = sl[3] ^ sl[8] ^ sl[13] ^ sl[18] ^ sl[23]; + bcl4 = sl[4] ^ sl[9] ^ sl[14] ^ sl[19] ^ sl[24]; + th = bch4 ^ ((bch1 << 1) | (bcl1 & mask32) >> (32 - 1)); + tl = bcl4 ^ ((bcl1 << 1) | (bch1 & mask32) >> (32 - 1)); + + sh[0] ^= th; + sh[5] ^= th; + sh[10] ^= th; + sh[15] ^= th; + sh[20] ^= th; + sl[0] ^= tl; + sl[5] ^= tl; + sl[10] ^= tl; + sl[15] ^= tl; + sl[20] ^= tl; + th = bch0 ^ ((bch2 << 1) | (bcl2 & mask32) >> (32 - 1)); + tl = bcl0 ^ ((bcl2 << 1) | (bch2 & mask32) >> (32 - 1)); + + sh[1] ^= th; + sh[6] ^= th; + sh[11] ^= th; + sh[16] ^= th; + sh[21] ^= th; + sl[1] ^= tl; + sl[6] ^= tl; + sl[11] ^= tl; + sl[16] ^= tl; + sl[21] ^= tl; + th = bch1 ^ ((bch3 << 1) | (bcl3 & mask32) >> (32 - 1)); + tl = bcl1 ^ ((bcl3 << 1) | (bch3 & mask32) >> (32 - 1)); + + sh[2] ^= th; + sh[7] ^= th; + sh[12] ^= th; + sh[17] ^= th; + sh[22] ^= th; + sl[2] ^= tl; + sl[7] ^= tl; + sl[12] ^= tl; + sl[17] ^= tl; + sl[22] ^= tl; + th = bch2 ^ ((bch4 << 1) | (bcl4 & mask32) >> (32 - 1)); + tl = bcl2 ^ ((bcl4 << 1) | (bch4 & mask32) >> (32 - 1)); + + sh[3] ^= th; + sl[3] ^= tl; + sh[8] ^= th; + sl[8] ^= tl; + sh[13] ^= th; + sl[13] ^= tl; + sh[18] ^= th; + sl[18] ^= tl; + sh[23] ^= th; + sl[23] ^= tl; + th = bch3 ^ ((bch0 << 1) | (bcl0 & mask32) >> (32 - 1)); + tl = bcl3 ^ ((bcl0 << 1) | (bch0 & mask32) >> (32 - 1)); + + sh[4] ^= th; + sh[9] ^= th; + sh[14] ^= th; + sh[19] ^= th; + sh[24] ^= th; + sl[4] ^= tl; + sl[9] ^= tl; + sl[14] ^= tl; + sl[19] ^= tl; + sl[24] ^= tl; + // Rho Pi + th = sh[1]; + tl = sl[1]; + bch0 = sh[10]; + bcl0 = sl[10]; + sh[10] = (th << 1) | (tl & mask32) >> (32 - 1); + sl[10] = (tl << 1) | (th & mask32) >> (32 - 1); + + th = bch0; + tl = bcl0; + bch0 = sh[7]; + bcl0 = sl[7]; + sh[7] = (th << 3) | (tl & mask32) >> (32 - 3); + sl[7] = (tl << 3) | (th & mask32) >> (32 - 3); + th = bch0; + tl = bcl0; + + bch0 = sh[11]; + bcl0 = sl[11]; + sh[11] = (th << 6) | (tl & mask32) >> (32 - 6); + sl[11] = (tl << 6) | (th & mask32) >> (32 - 6); + th = bch0; + tl = bcl0; + bch0 = sh[17]; + bcl0 = sl[17]; + sh[17] = (th << 10) | (tl & mask32) >> (32 - 10); + sl[17] = (tl << 10) | (th & mask32) >> (32 - 10); + th = bch0; + tl = bcl0; + bch0 = sh[18]; + bcl0 = sl[18]; + sh[18] = (th << 15) | (tl & mask32) >> (32 - 15); + sl[18] = (tl << 15) | (th & mask32) >> (32 - 15); + th = bch0; + tl = bcl0; + bch0 = sh[3]; + bcl0 = sl[3]; + sh[3] = (th << 21) | (tl & mask32) >> (32 - 21); + sl[3] = (tl << 21) | (th & mask32) >> (32 - 21); + th = bch0; + tl = bcl0; + bch0 = sh[5]; + bcl0 = sl[5]; + sh[5] = (th << 28) | (tl & mask32) >> (32 - 28); + sl[5] = (tl << 28) | (th & mask32) >> (32 - 28); + th = bch0; + tl = bcl0; + bch0 = sh[16]; + bcl0 = sl[16]; + sh[16] = (tl << 4) | (th & mask32) >> (32 - 4); + sl[16] = (th << 4) | (tl & mask32) >> (32 - 4); + th = bch0; + tl = bcl0; + bch0 = sh[8]; + bcl0 = sl[8]; + sh[8] = (tl << 13) | (th & mask32) >> (32 - 13); + sl[8] = (th << 13) | (tl & mask32) >> (32 - 13); + th = bch0; + tl = bcl0; + bch0 = sh[21]; + bcl0 = sl[21]; + sh[21] = (tl << 23) | (th & mask32) >> (32 - 23); + sl[21] = (th << 23) | (tl & mask32) >> (32 - 23); + th = bch0; + tl = bcl0; + bch0 = sh[24]; + bcl0 = sl[24]; + sh[24] = (th << 2) | (tl & mask32) >> (32 - 2); + sl[24] = (tl << 2) | (th & mask32) >> (32 - 2); + th = bch0; + tl = bcl0; + bch0 = sh[4]; + bcl0 = sl[4]; + sh[4] = (th << 14) | (tl & mask32) >> (32 - 14); + sl[4] = (tl << 14) | (th & mask32) >> (32 - 14); + th = bch0; + tl = bcl0; + bch0 = sh[15]; + bcl0 = sl[15]; + sh[15] = (th << 27) | (tl & mask32) >> (32 - 27); + sl[15] = (tl << 27) | (th & mask32) >> (32 - 27); + th = bch0; + tl = bcl0; + bch0 = sh[23]; + bcl0 = sl[23]; + sh[23] = (tl << 9) | (th & mask32) >> (32 - 9); + sl[23] = (th << 9) | (tl & mask32) >> (32 - 9); + th = bch0; + tl = bcl0; + bch0 = sh[19]; + bcl0 = sl[19]; + sh[19] = (tl << 24) | (th & mask32) >> (32 - 24); + sl[19] = (th << 24) | (tl & mask32) >> (32 - 24); + th = bch0; + tl = bcl0; + bch0 = sh[13]; + bcl0 = sl[13]; + sh[13] = (th << 8) | (tl & mask32) >> (32 - 8); + sl[13] = (tl << 8) | (th & mask32) >> (32 - 8); + th = bch0; + tl = bcl0; + bch0 = sh[12]; + bcl0 = sl[12]; + sh[12] = (th << 25) | (tl & mask32) >> (32 - 25); + sl[12] = (tl << 25) | (th & mask32) >> (32 - 25); + th = bch0; + tl = bcl0; + bch0 = sh[2]; + bcl0 = sl[2]; + sh[2] = (tl << 11) | (th & mask32) >> (32 - 11); + sl[2] = (th << 11) | (tl & mask32) >> (32 - 11); + th = bch0; + tl = bcl0; + bch0 = sh[20]; + bcl0 = sl[20]; + sh[20] = (tl << 30) | (th & mask32) >> (32 - 30); + sl[20] = (th << 30) | (tl & mask32) >> (32 - 30); + th = bch0; + tl = bcl0; + bch0 = sh[14]; + bcl0 = sl[14]; + sh[14] = (th << 18) | (tl & mask32) >> (32 - 18); + sl[14] = (tl << 18) | (th & mask32) >> (32 - 18); + th = bch0; + tl = bcl0; + bch0 = sh[22]; + bcl0 = sl[22]; + sh[22] = (tl << 7) | (th & mask32) >> (32 - 7); + sl[22] = (th << 7) | (tl & mask32) >> (32 - 7); + th = bch0; + tl = bcl0; + bch0 = sh[9]; + bcl0 = sl[9]; + sh[9] = (tl << 29) | (th & mask32) >> (32 - 29); + sl[9] = (th << 29) | (tl & mask32) >> (32 - 29); + th = bch0; + tl = bcl0; + bch0 = sh[6]; + bcl0 = sl[6]; + sh[6] = (th << 20) | (tl & mask32) >> (32 - 20); + sl[6] = (tl << 20) | (th & mask32) >> (32 - 20); + th = bch0; + tl = bcl0; + bch0 = sh[1]; + bcl0 = sl[1]; + sh[1] = (tl << 12) | (th & mask32) >> (32 - 12); + sl[1] = (th << 12) | (tl & mask32) >> (32 - 12); + + th = bch0; + tl = bcl0; + // Chi + bch0 = sh[0]; + bch1 = sh[1]; + bch2 = sh[2]; + bch3 = sh[3]; + bch4 = sh[4]; + sh[0] ^= (~bch1) & bch2; + sh[1] ^= (~bch2) & bch3; + sh[2] ^= (~bch3) & bch4; + sh[3] ^= (~bch4) & bch0; + sh[4] ^= (~bch0) & bch1; + bcl0 = sl[0]; + bcl1 = sl[1]; + bcl2 = sl[2]; + bcl3 = sl[3]; + bcl4 = sl[4]; + sl[0] ^= (~bcl1) & bcl2; + sl[1] ^= (~bcl2) & bcl3; + sl[2] ^= (~bcl3) & bcl4; + sl[3] ^= (~bcl4) & bcl0; + sl[4] ^= (~bcl0) & bcl1; + bch0 = sh[5]; + bch1 = sh[6]; + bch2 = sh[7]; + bch3 = sh[8]; + bch4 = sh[9]; + sh[5] ^= (~bch1) & bch2; + sh[6] ^= (~bch2) & bch3; + sh[7] ^= (~bch3) & bch4; + sh[8] ^= (~bch4) & bch0; + sh[9] ^= (~bch0) & bch1; + bcl0 = sl[5]; + bcl1 = sl[6]; + bcl2 = sl[7]; + bcl3 = sl[8]; + bcl4 = sl[9]; + sl[5] ^= (~bcl1) & bcl2; + sl[6] ^= (~bcl2) & bcl3; + sl[7] ^= (~bcl3) & bcl4; + sl[8] ^= (~bcl4) & bcl0; + sl[9] ^= (~bcl0) & bcl1; + bch0 = sh[10]; + bch1 = sh[11]; + bch2 = sh[12]; + bch3 = sh[13]; + bch4 = sh[14]; + sh[10] ^= (~bch1) & bch2; + sh[11] ^= (~bch2) & bch3; + sh[12] ^= (~bch3) & bch4; + sh[13] ^= (~bch4) & bch0; + sh[14] ^= (~bch0) & bch1; + bcl0 = sl[10]; + bcl1 = sl[11]; + bcl2 = sl[12]; + bcl3 = sl[13]; + bcl4 = sl[14]; + sl[10] ^= (~bcl1) & bcl2; + sl[11] ^= (~bcl2) & bcl3; + sl[12] ^= (~bcl3) & bcl4; + sl[13] ^= (~bcl4) & bcl0; + sl[14] ^= (~bcl0) & bcl1; + bch0 = sh[15]; + bch1 = sh[16]; + bch2 = sh[17]; + bch3 = sh[18]; + bch4 = sh[19]; + sh[15] ^= (~bch1) & bch2; + sh[16] ^= (~bch2) & bch3; + sh[17] ^= (~bch3) & bch4; + sh[18] ^= (~bch4) & bch0; + sh[19] ^= (~bch0) & bch1; + bcl0 = sl[15]; + bcl1 = sl[16]; + bcl2 = sl[17]; + bcl3 = sl[18]; + bcl4 = sl[19]; + sl[15] ^= (~bcl1) & bcl2; + sl[16] ^= (~bcl2) & bcl3; + sl[17] ^= (~bcl3) & bcl4; + sl[18] ^= (~bcl4) & bcl0; + sl[19] ^= (~bcl0) & bcl1; + bch0 = sh[20]; + bch1 = sh[21]; + bch2 = sh[22]; + bch3 = sh[23]; + bch4 = sh[24]; + sh[20] ^= (~bch1) & bch2; + sh[21] ^= (~bch2) & bch3; + sh[22] ^= (~bch3) & bch4; + sh[23] ^= (~bch4) & bch0; + sh[24] ^= (~bch0) & bch1; + bcl0 = sl[20]; + bcl1 = sl[21]; + bcl2 = sl[22]; + bcl3 = sl[23]; + bcl4 = sl[24]; + sl[20] ^= (~bcl1) & bcl2; + sl[21] ^= (~bcl2) & bcl3; + sl[22] ^= (~bcl3) & bcl4; + sl[23] ^= (~bcl4) & bcl0; + sl[24] ^= (~bcl0) & bcl1; + // Iota + sh[0] ^= _hi[r]; + sl[0] ^= _lo[r]; + } + + for (int i = 0; i < 25; i++) { + writeUint32LE(sl[i], buf, i * 8); + writeUint32LE(sh[i], buf, i * 8 + 4); + } +} + +/// The `HashBytesState` class represents the state of a hashing process that operates on a byte array. +/// +/// It implements the `HashState` interface, providing a way to manage the state of a byte-based hashing operation. +/// +/// Parameters: +/// - `data`: A `List` that holds the data to be hashed. +/// - `pos`: An integer representing the current position or progress in processing the data. +/// +/// This class is useful for tracking the state of a hash computation, enabling efficient incremental hashing +/// where data is processed in chunks or sections, and the `pos` field keeps track of the current position +/// within the data buffer. +class HashBytesState implements HashState { + HashBytesState({required this.data, required this.pos}); + final List data; + int pos; +} diff --git a/lib/crypto/crypto/hash/md4/md4.dart b/lib/crypto/crypto/hash/md4/md4.dart new file mode 100644 index 0000000..1158a5a --- /dev/null +++ b/lib/crypto/crypto/hash/md4/md4.dart @@ -0,0 +1,341 @@ +part of 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +/// Implementation of the MD4 (Message Digest 4) hash function. +/// +/// MD4 is a widely-used cryptographic hash function that produces a 128-bit (16-byte) hash value. +/// This class allows you to compute MD4 hashes for input data. +class MD4 implements SerializableHash { + /// The initial constructor for the MD4 class. + /// + /// Initializes the MD4 hash function and resets it to its initial state. + MD4() { + reset(); + } + + /// Computes the MD4 hash (Message Digest 4) for the given input data. + /// + /// This static method creates an MD4 hash object, updates it with the provided data, computes the + /// hash, and then cleans up the object. The resulting MD4 hash is a 128-bit (16-byte) value. + /// + /// Parameters: + /// - [data]: The input data for which the MD4 hash is computed. + /// + /// Returns: + /// A List representing the 128-bit MD4 hash value. + static List hash(List data) { + /// Create an MD4 hash object. + final h = MD4(); + + /// Update the hash object with the input data. + h.update(data); + + /// Compute the MD4 hash. + final digest = h.digest(); + + /// Clean up the hash object. + h.clean(); + + /// Return the MD4 hash. + return digest; + } + + final _buffer = List.empty(growable: true); + int _lengthInBytes = 0; + + /// store state + final List _state = List.filled(4, 0); + + /// store chunk bytes + final List _currentChunk = List.filled(16, 0); + + bool _finished = false; + + /// Returns the block size of the MD4 hash algorithm in bytes, which is 64 bytes. + /// + /// The block size is the size of the data block that the hash algorithm operates on. + @override + int get getBlockSize => 64; + + /// Returns the length of the MD4 hash digest in bytes, which is 16 bytes. + /// + /// The digest length is the size of the final hash result produced by the MD4 algorithm. + @override + int get getDigestLength => 16; + + /// Clears internal state and buffers, resetting the MD4 hash object to its initial state. + /// + /// This method securely zeros the internal state and buffers of the MD4 hash object, + /// ensuring no sensitive data remains in memory. After cleaning, the object is reset + /// to its initial state, ready for further use. + @override + void clean() { + zero(_state); + zero(_currentChunk); + _buffer.clear(); + reset(); + } + + void _init() { + _state[0] = 0x67452301; + _state[1] = 0xefcdab89; + _state[2] = 0x98badcfe; + _state[3] = 0x10325476; + } + + /// Cleans and securely zeros a saved state object, resetting it to an empty state. + /// + /// This method takes a [HashState] object, usually representing the state of an MD4 hash, + /// and securely zeros the internal state and data within it. After cleaning, the object + /// is reset to an empty state, ensuring that no sensitive data remains in memory. + /// + /// Params: + /// - `savedState`: The [HashState] object to be cleaned and reset. + @override + void cleanSavedState(HashState savedState) { + savedState as SH1State; + savedState.buffer = List.empty(); + savedState.state = List.from([ + 0x67452301, + 0xefcdab89, + 0x98badcfe, + 0x10325476, + ], growable: false); + savedState.length = 0; + } + + static int _ff(int x, int y, int z) { + return (x & y) | ((~x) & z); + } + + static int _gg(int x, int y, int z) { + return (x & y) | (x & z) | (y & z); + } + + static int _hh(int x, int y, int z) { + return x ^ y ^ z; + } + + static int _cc(int Function(int, int, int) f, int k, int a, int x, int y, + int z, int m, int s) { + return rotl32((a + f(x, y, z) + m + k), s); + } + + static const _s = [ + [3, 7, 11, 19], + [3, 5, 9, 13], + [3, 9, 11, 15] + ]; + + static const _f = 0x00000000; + + static const _g = 0x5a827999; + + static const _h = 0x6ed9eba1; + + @override + + /// Computes the MD4 hash digest and returns it as a List. + /// + /// This method calculates the MD4 hash of the data processed so far and returns + /// the resulting hash digest as a List. It finalizes the hash computation + /// if it hasn't been finished already and then returns the digest. + /// + /// Returns: + /// - A List containing the MD4 hash digest. + List digest() { + final out = List.filled(getDigestLength, 0); + finish(out); + return out; + } + + /// Finalizes the hash computation and stores the result in the provided buffer. + /// + /// This method finalizes the hash computation, ensuring that all data has been processed, + /// and stores the result in the provided 'out' buffer as a hash digest. If the hash computation + /// has already been finished, it won't be reprocessed. + /// + /// Parameters: + /// - [out]: The List buffer where the hash digest will be stored. + /// + /// Returns: + /// - The MD4 hash object after finalization. + @override + Hash finish(List out) { + if (!_finished) { + _finalize(); + _iterate(); + _finished = true; + } + for (var i = 0; i < _state.length; i++) { + writeUint32LE(_state[i], out, i * 4); + } + return this; + } + + void _finalize() { + _buffer.add(0x80); + + final contentsLength = _lengthInBytes + 1 + 8; + final finalizedLength = (contentsLength + getBlockSize - 1) & -getBlockSize; + for (var i = 0; i < finalizedLength - contentsLength; i++) { + _buffer.add(0); + } + + var lengthInBits = _lengthInBytes * 8; + + final offset = _buffer.length; + + _buffer.addAll(List.filled(8, 0)); + var highBits = lengthInBits ~/ 0x100000000; // >> 32 + var lowBits = lengthInBits & mask32; + writeUint32LE(lowBits, _buffer, offset); + writeUint32LE(highBits, _buffer, offset + 4); + } + + @override + Hash reset() { + _init(); + _finished = false; + _lengthInBytes = 0; + return this; + } + + /// Restores the state of the MD4 hash computation from a saved state. + /// + /// This method restores the MD4 hash computation state from a previously saved state, + /// allowing the continuation of hashing from the saved point. + /// + /// Parameters: + /// - [savedState]: The saved state to restore the hash computation from. + /// + /// Returns: + /// - The MD4 hash object with the restored state. + @override + SerializableHash restoreState(HashState savedState) { + savedState as SH1State; + _buffer.clear(); + _buffer.addAll(savedState.buffer); + _state.setAll(0, savedState.state); + _lengthInBytes = savedState.length; + _iterate(); + _finished = false; + return this; + } + + /// Saves the current state of the MD4 hash computation. + /// + /// This method saves the current state of the MD4 hash computation, including + /// the internal buffer, length, and state. The saved state can be used later + /// to restore the hash computation to this point. + /// + /// Returns: + /// - A [SH1State] object containing the saved state of the hash computation. + @override + SH1State saveState() { + return SH1State( + buffer: List.from(_buffer.toList()), + length: _lengthInBytes, + state: List.from(_state, growable: false)); + } + + /// Updates the MD4 hash with the provided input data. + /// + /// This method updates the MD4 hash by processing the input [data]. + /// If the hash computation is already finished, it will throw a [StateError]. + /// + /// Parameters: + /// - [data]: The input data to be included in the hash computation. + /// + /// Returns: + /// - The updated [MD4] hash object. + @override + Hash update(List data) { + if (_finished) { + throw StateError("SHA512: can't update because hash was finished."); + } + _lengthInBytes += data.length; + _buffer.addAll(BytesUtils.toBytes(data)); + _iterate(); + return this; + } + + void _iterate() { + var pendingDataChunks = _buffer.length ~/ getBlockSize; + for (var i = 0; i < pendingDataChunks; i++) { + // Copy words from the pending data buffer into the current chunk buffer. + for (var j = 0; j < _currentChunk.length; j++) { + _currentChunk[j] = readUint32LE(_buffer, i * getBlockSize + j * 4); + } + _proccess(_currentChunk); + } + + // Remove all pending data up to the last clean chunk break. + _buffer.removeRange(0, pendingDataChunks * getBlockSize); + } + + void _proccess(List block) { + int a = _state[0]; + int b = _state[1]; + int c = _state[2]; + int d = _state[3]; + + // Round 1 + a = _cc(_ff, _f, a, b, c, d, block[0], _s[0][0]); + d = _cc(_ff, _f, d, a, b, c, block[1], _s[0][1]); + c = _cc(_ff, _f, c, d, a, b, block[2], _s[0][2]); + b = _cc(_ff, _f, b, c, d, a, block[3], _s[0][3]); + a = _cc(_ff, _f, a, b, c, d, block[4], _s[0][0]); + d = _cc(_ff, _f, d, a, b, c, block[5], _s[0][1]); + c = _cc(_ff, _f, c, d, a, b, block[6], _s[0][2]); + b = _cc(_ff, _f, b, c, d, a, block[7], _s[0][3]); + a = _cc(_ff, _f, a, b, c, d, block[8], _s[0][0]); + d = _cc(_ff, _f, d, a, b, c, block[9], _s[0][1]); + c = _cc(_ff, _f, c, d, a, b, block[10], _s[0][2]); + b = _cc(_ff, _f, b, c, d, a, block[11], _s[0][3]); + a = _cc(_ff, _f, a, b, c, d, block[12], _s[0][0]); + d = _cc(_ff, _f, d, a, b, c, block[13], _s[0][1]); + c = _cc(_ff, _f, c, d, a, b, block[14], _s[0][2]); + b = _cc(_ff, _f, b, c, d, a, block[15], _s[0][3]); + + // Round 2 + a = _cc(_gg, _g, a, b, c, d, block[0], _s[1][0]); + d = _cc(_gg, _g, d, a, b, c, block[4], _s[1][1]); + c = _cc(_gg, _g, c, d, a, b, block[8], _s[1][2]); + b = _cc(_gg, _g, b, c, d, a, block[12], _s[1][3]); + a = _cc(_gg, _g, a, b, c, d, block[1], _s[1][0]); + d = _cc(_gg, _g, d, a, b, c, block[5], _s[1][1]); + c = _cc(_gg, _g, c, d, a, b, block[9], _s[1][2]); + b = _cc(_gg, _g, b, c, d, a, block[13], _s[1][3]); + a = _cc(_gg, _g, a, b, c, d, block[2], _s[1][0]); + d = _cc(_gg, _g, d, a, b, c, block[6], _s[1][1]); + c = _cc(_gg, _g, c, d, a, b, block[10], _s[1][2]); + b = _cc(_gg, _g, b, c, d, a, block[14], _s[1][3]); + a = _cc(_gg, _g, a, b, c, d, block[3], _s[1][0]); + d = _cc(_gg, _g, d, a, b, c, block[7], _s[1][1]); + c = _cc(_gg, _g, c, d, a, b, block[11], _s[1][2]); + b = _cc(_gg, _g, b, c, d, a, block[15], _s[1][3]); + + // Round 3 + a = _cc(_hh, _h, a, b, c, d, block[0], _s[2][0]); + d = _cc(_hh, _h, d, a, b, c, block[8], _s[2][1]); + c = _cc(_hh, _h, c, d, a, b, block[4], _s[2][2]); + b = _cc(_hh, _h, b, c, d, a, block[12], _s[2][3]); + a = _cc(_hh, _h, a, b, c, d, block[2], _s[2][0]); + d = _cc(_hh, _h, d, a, b, c, block[10], _s[2][1]); + c = _cc(_hh, _h, c, d, a, b, block[6], _s[2][2]); + b = _cc(_hh, _h, b, c, d, a, block[14], _s[2][3]); + a = _cc(_hh, _h, a, b, c, d, block[1], _s[2][0]); + d = _cc(_hh, _h, d, a, b, c, block[9], _s[2][1]); + c = _cc(_hh, _h, c, d, a, b, block[5], _s[2][2]); + b = _cc(_hh, _h, b, c, d, a, block[13], _s[2][3]); + a = _cc(_hh, _h, a, b, c, d, block[3], _s[2][0]); + d = _cc(_hh, _h, d, a, b, c, block[11], _s[2][1]); + c = _cc(_hh, _h, c, d, a, b, block[7], _s[2][2]); + b = _cc(_hh, _h, b, c, d, a, block[15], _s[2][3]); + + _state[0] = add32(_state[0], a); + _state[1] = add32(_state[1], b); + _state[2] = add32(_state[2], c); + _state[3] = add32(_state[3], d); + } +} diff --git a/lib/crypto/crypto/hash/md5/md5.dart b/lib/crypto/crypto/hash/md5/md5.dart new file mode 100644 index 0000000..776f27f --- /dev/null +++ b/lib/crypto/crypto/hash/md5/md5.dart @@ -0,0 +1,366 @@ +part of 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +/// A class that represents the MD5 hash algorithm, which is used to compute +/// MD5 message digests. This class implements the [SerializableHash] interface. +/// +/// The MD5 algorithm produces a 128-bit (16-byte) message digest of input data. +/// +/// Example usage: +/// ```dart +/// final md5 = MD5(); +/// md5.update(List.from('Hello, world!'.codeUnits)); +/// final digest = md5.digest(); +/// md5.clean(); // Clean up resources after use. +/// ``` +class MD5 implements SerializableHash { + /// Creates a new MD5 instance. + MD5() { + reset(); + } + + /// Computes the MD5 hash of the provided [data] and returns the 128-bit (16-byte) + /// MD5 message digest as a [List]. + /// + /// This static method is a convenient way to compute an MD5 hash for a given + /// data without creating an instance of the [MD5] class. + /// + /// Example usage: + /// ```dart + /// final data = List.from('Hello, MD5!'.codeUnits); + /// final digest = MD5.hash(data); + /// ``` + /// + /// Note: It is recommended to clean up resources using the `clean` method after + /// using the [MD5] hash instance. + static List hash(List data) { + final h = MD5(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } + + final _buffer = List.empty(growable: true); //Uint8Buffer(); + int _lengthInBytes = 0; + + /// store state + final List _state = List.filled(4, 0); + + /// store chunk bytes + final List _currentChunk = List.filled(16, 0); + + bool _finished = false; + + /// Clean up the internal state and reset hash object to its initial state. + @override + void clean() { + zero(_state); + zero(_currentChunk); + _buffer.clear(); + reset(); + } + + void _init() { + _state[0] = 0x67452301; + _state[1] = 0xefcdab89; + _state[2] = 0x98badcfe; + _state[3] = 0x10325476; + } + + /// Clean up and reset the saved state of the hash object to its initial state. + /// This function erases the buffer and sets the state and length to the default values. + /// It is used to ensure that a previously saved hash state is cleared and ready for reuse. + /// + /// [savedState]: The hash state to be cleaned and reset. + @override + void cleanSavedState(HashState savedState) { + savedState as SH1State; + savedState.buffer = List.empty(); + savedState.state = List.unmodifiable([ + 0x67452301, + 0xefcdab89, + 0x98badcfe, + 0x10325476, + ]); + savedState.length = 0; + } + + static int _ff(int x, int y, int z) { + return ((x & y) | (~x & z)) & mask32; + } + + static int _gg(int x, int y, int z) { + return ((x & z) | (y & ~z)) & mask32; + } + + static int _hh(int x, int y, int z) { + return (x ^ y ^ z) & mask32; + } + + static int _ii(int x, int y, int z) { + return (y ^ (x | ~z)) & mask32; + } + + static int _cc(int Function(int, int, int) f, int k, int a, int x, int y, + int z, int m, int s) { + (a + f(x, y, z) + m + k); + + return (add32(rotl32(add32(add32(add32(a, f(x, y, z)), m), k), s), x)); + } + + static final List _t = List.generate(64, (i) { + return ((math.sin(i + 1) * 0x100000000).abs()).toInt(); + }); + + static const _s = [ + [7, 12, 17, 22], + [5, 9, 14, 20], + [4, 11, 16, 23], + [6, 10, 15, 21] + ]; + + /// Generates the final hash digest by assembling and returning the hash state in a List. + /// + /// This function produces the hash digest by combining the current hash state into a single + /// List output. It finalizes the hash if it hasn't been finished, effectively completing + /// the hash computation and returning the result. + /// + /// Returns the List containing the computed hash digest. + @override + List digest() { + final out = List.filled(getDigestLength, 0); + finish(out); + return out; + } + + /// Finalizes the hash computation and stores the hash state in the provided List [out]. + /// + /// This function completes the hash computation, finalizes the state, and stores the resulting + /// hash in the provided [out] List. If the hash has already been finished, this method + /// will return the existing state without re-computing. + /// + /// Parameters: + /// - [out]: The List in which the hash digest is stored. + /// + /// Returns the current instance of the hash algorithm. + @override + Hash finish(List out) { + if (!_finished) { + _finalize(); + _iterate(); + _finished = true; + } + for (var i = 0; i < _state.length; i++) { + writeUint32LE(_state[i], out, i * 4); + } + return this; + } + + void _finalize() { + _buffer.add(0x80); + + final contentsLength = _lengthInBytes + 1 + 8; + final finalizedLength = (contentsLength + getBlockSize - 1) & -getBlockSize; + for (var i = 0; i < finalizedLength - contentsLength; i++) { + _buffer.add(0); + } + + var lengthInBits = _lengthInBytes * 8; + + // Add the full length of the input data as a 64-bit value at the end of the + // hash. Note: we're only writing out 64 bits, so skip ahead 8 if the + // signature is 128-bit. + final offset = _buffer.length; + + _buffer.addAll(List.filled(8, 0)); + // var byteData = _buffer.buffer.asByteData(); + + // We're essentially doing byteData.setUint64(offset, lengthInBits, _endian) + // here, but that method isn't supported on dart2js so we implement it + // manually instead. + var highBits = lengthInBits ~/ 0x100000000; // >> 32 + var lowBits = lengthInBits & mask32; + // byteData.setUint32(offset, lowBits, Endian.little); + // byteData.setUint32(offset + 4, highBits, Endian.little); + writeUint32LE(lowBits, _buffer, offset); + writeUint32LE(highBits, _buffer, offset + 4); + } + + @override + int get getBlockSize => 64; + + @override + int get getDigestLength => 16; + + /// Resets the hash computation to its initial state. + /// + /// This method initializes the hash computation to its initial state, clearing any previously + /// processed data. After calling this method, you can start a new hash computation. + /// + /// Returns the current instance of the hash algorithm with the initial stat + @override + Hash reset() { + _init(); + _finished = false; + _lengthInBytes = 0; + return this; + } + + /// Restores the hash computation state from a previously saved state. + /// + /// This method allows you to restore the hash computation state to a previously saved state. + /// It is useful when you want to continue hashing data from a certain point, or if you want + /// to combine multiple hash computations. + /// + /// Parameters: + /// - `savedState`: The saved state to restore. + /// + /// Returns the current instance of the hash algorithm with the restored state. + @override + SerializableHash restoreState(HashState savedState) { + savedState as SH1State; + _buffer.clear(); + _buffer.addAll(savedState.buffer); + _state.setAll(0, savedState.state); + _lengthInBytes = savedState.length; + _iterate(); + _finished = false; + return this; + } + + /// Saves the current hash computation state into a serializable state object. + /// + /// This method saves the current state of the hash computation, including the data buffer, + /// hash state, and etc, into a serializable state object. + /// The saved state can be later restored using the `restoreState` method. + /// + /// Returns a [HashState] object containing the saved state information. + @override + SH1State saveState() { + return SH1State( + buffer: List.from(_buffer.toList()), + length: _lengthInBytes, + state: List.unmodifiable(_state)); + } + + /// Updates the hash computation with the given data. + /// + /// This method updates the hash computation with the provided [data] bytes. It appends the data to + /// the internal buffer and processes it to update the hash state. + /// + /// If the hash has already been finished using the `finish` method, calling this method will result in an error. + /// + /// Parameters: + /// - [data]: The List containing the data to be hashed. + /// + /// Returns this [Hash] object for method chaining. + @override + Hash update(List data) { + if (_finished) { + throw StateError("SHA512: can't update because hash was finished."); + } + _lengthInBytes += data.length; + _buffer.addAll(BytesUtils.toBytes(data)); + _iterate(); + return this; + } + + void _iterate() { + var pendingDataChunks = _buffer.length ~/ getBlockSize; + for (var i = 0; i < pendingDataChunks; i++) { + // Copy words from the pending data buffer into the current chunk buffer. + for (var j = 0; j < _currentChunk.length; j++) { + _currentChunk[j] = readUint32LE(_buffer, i * getBlockSize + j * 4); + } + _proccess(_currentChunk); + } + + // Remove all pending data up to the last clean chunk break. + _buffer.removeRange(0, pendingDataChunks * getBlockSize); + } + + void _proccess(List block) { + // Working variables + int a = _state[0] | 0; + int b = _state[1] | 0; + int c = _state[2] | 0; + int d = _state[3] | 0; + + // Round 1 + a = _cc(_ff, _t[0], a, b, c, d, block[0], _s[0][0]); + d = _cc(_ff, _t[1], d, a, b, c, block[1], _s[0][1]); + c = _cc(_ff, _t[2], c, d, a, b, block[2], _s[0][2]); + b = _cc(_ff, _t[3], b, c, d, a, block[3], _s[0][3]); + a = _cc(_ff, _t[4], a, b, c, d, block[4], _s[0][0]); + d = _cc(_ff, _t[5], d, a, b, c, block[5], _s[0][1]); + c = _cc(_ff, _t[6], c, d, a, b, block[6], _s[0][2]); + b = _cc(_ff, _t[7], b, c, d, a, block[7], _s[0][3]); + a = _cc(_ff, _t[8], a, b, c, d, block[8], _s[0][0]); + d = _cc(_ff, _t[9], d, a, b, c, block[9], _s[0][1]); + c = _cc(_ff, _t[10], c, d, a, b, block[10], _s[0][2]); + b = _cc(_ff, _t[11], b, c, d, a, block[11], _s[0][3]); + a = _cc(_ff, _t[12], a, b, c, d, block[12], _s[0][0]); + d = _cc(_ff, _t[13], d, a, b, c, block[13], _s[0][1]); + c = _cc(_ff, _t[14], c, d, a, b, block[14], _s[0][2]); + b = _cc(_ff, _t[15], b, c, d, a, block[15], _s[0][3]); + + // Round 2 + a = _cc(_gg, _t[16], a, b, c, d, block[1], _s[1][0]); + d = _cc(_gg, _t[17], d, a, b, c, block[6], _s[1][1]); + c = _cc(_gg, _t[18], c, d, a, b, block[11], _s[1][2]); + b = _cc(_gg, _t[19], b, c, d, a, block[0], _s[1][3]); + a = _cc(_gg, _t[20], a, b, c, d, block[5], _s[1][0]); + d = _cc(_gg, _t[21], d, a, b, c, block[10], _s[1][1]); + c = _cc(_gg, _t[22], c, d, a, b, block[15], _s[1][2]); + b = _cc(_gg, _t[23], b, c, d, a, block[4], _s[1][3]); + a = _cc(_gg, _t[24], a, b, c, d, block[9], _s[1][0]); + d = _cc(_gg, _t[25], d, a, b, c, block[14], _s[1][1]); + c = _cc(_gg, _t[26], c, d, a, b, block[3], _s[1][2]); + b = _cc(_gg, _t[27], b, c, d, a, block[8], _s[1][3]); + a = _cc(_gg, _t[28], a, b, c, d, block[13], _s[1][0]); + d = _cc(_gg, _t[29], d, a, b, c, block[2], _s[1][1]); + c = _cc(_gg, _t[30], c, d, a, b, block[7], _s[1][2]); + b = _cc(_gg, _t[31], b, c, d, a, block[12], _s[1][3]); + + // Round 3 + a = _cc(_hh, _t[32], a, b, c, d, block[5], _s[2][0]); + d = _cc(_hh, _t[33], d, a, b, c, block[8], _s[2][1]); + c = _cc(_hh, _t[34], c, d, a, b, block[11], _s[2][2]); + b = _cc(_hh, _t[35], b, c, d, a, block[14], _s[2][3]); + a = _cc(_hh, _t[36], a, b, c, d, block[1], _s[2][0]); + d = _cc(_hh, _t[37], d, a, b, c, block[4], _s[2][1]); + c = _cc(_hh, _t[38], c, d, a, b, block[7], _s[2][2]); + b = _cc(_hh, _t[39], b, c, d, a, block[10], _s[2][3]); + a = _cc(_hh, _t[40], a, b, c, d, block[13], _s[2][0]); + d = _cc(_hh, _t[41], d, a, b, c, block[0], _s[2][1]); + c = _cc(_hh, _t[42], c, d, a, b, block[3], _s[2][2]); + b = _cc(_hh, _t[43], b, c, d, a, block[6], _s[2][3]); + a = _cc(_hh, _t[44], a, b, c, d, block[9], _s[2][0]); + d = _cc(_hh, _t[45], d, a, b, c, block[12], _s[2][1]); + c = _cc(_hh, _t[46], c, d, a, b, block[15], _s[2][2]); + b = _cc(_hh, _t[47], b, c, d, a, block[2], _s[2][3]); + + // Round 4 + a = _cc(_ii, _t[48], a, b, c, d, block[0], _s[3][0]); + d = _cc(_ii, _t[49], d, a, b, c, block[7], _s[3][1]); + c = _cc(_ii, _t[50], c, d, a, b, block[14], _s[3][2]); + b = _cc(_ii, _t[51], b, c, d, a, block[5], _s[3][3]); + a = _cc(_ii, _t[52], a, b, c, d, block[12], _s[3][0]); + d = _cc(_ii, _t[53], d, a, b, c, block[3], _s[3][1]); + c = _cc(_ii, _t[54], c, d, a, b, block[10], _s[3][2]); + b = _cc(_ii, _t[55], b, c, d, a, block[1], _s[3][3]); + a = _cc(_ii, _t[56], a, b, c, d, block[8], _s[3][0]); + d = _cc(_ii, _t[57], d, a, b, c, block[15], _s[3][1]); + c = _cc(_ii, _t[58], c, d, a, b, block[6], _s[3][2]); + b = _cc(_ii, _t[59], b, c, d, a, block[13], _s[3][3]); + a = _cc(_ii, _t[60], a, b, c, d, block[4], _s[3][0]); + d = _cc(_ii, _t[61], d, a, b, c, block[11], _s[3][1]); + c = _cc(_ii, _t[62], c, d, a, b, block[2], _s[3][2]); + b = _cc(_ii, _t[63], b, c, d, a, block[9], _s[3][3]); + + _state[0] = add32(_state[0], a); + _state[1] = add32(_state[1], b); + _state[2] = add32(_state[2], c); + _state[3] = add32(_state[3], d); + } +} diff --git a/lib/crypto/crypto/hash/ridemp/ridemp.dart b/lib/crypto/crypto/hash/ridemp/ridemp.dart new file mode 100644 index 0000000..fcd3e25 --- /dev/null +++ b/lib/crypto/crypto/hash/ridemp/ridemp.dart @@ -0,0 +1,988 @@ +part of 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +/// A class representing the RIPEMD-320 hash algorithm, extending the `_RIPEMD` base class. +/// +/// The RIPEMD-320 hash produces a 320-bit (40-byte) hash digest. +/// +/// Constructor: +/// - [RIPEMD320]: Initializes an instance of the RIPEMD-320 hash. +/// +/// Static Method: +/// - [hash]: Computes the RIPEMD-320 hash of the provided data and returns the digest as a List. +/// It creates a new instance, updates it with the data, retrieves the digest, and then cleans up the internal state. +/// +/// Example: +/// ```dart +/// final data = List.from([0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x2C, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64]); +/// final hashDigest = RIPEMD320.hash(data); +/// ``` +class RIPEMD320 extends _RIPEMD { + /// Initializes an instance of the RIPEMD-320 hash. + RIPEMD320() : super(40 ~/ 4); + + /// Computes the RIPEMD-320 hash of the provided data. + static List hash(List data) { + final h = RIPEMD320(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} + +/// A class representing the RIPEMD-256 hash algorithm, extending the `_RIPEMD` base class. +/// +/// The RIPEMD-256 hash produces a 256-bit (32-byte) hash digest. +/// +/// Constructor: +/// - [RIPEMD256]: Initializes an instance of the RIPEMD-256 hash. +/// +/// Static Method: +/// - [hash]: Computes the RIPEMD-256 hash of the provided data and returns the digest as a List. +/// It creates a new instance, updates it with the data, retrieves the digest, and then cleans up the internal state. +/// +/// Example: +/// ```dart +/// final data = List.from([0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x2C, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64]); +/// final hashDigest = RIPEMD256.hash(data); +/// ``` +class RIPEMD256 extends _RIPEMD { + /// Initializes an instance of the RIPEMD-256 hash. + RIPEMD256() : super(32 ~/ 4); + + /// Computes the RIPEMD-256 hash of the provided data. + static List hash(List data) { + final h = RIPEMD256(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} + +/// A class representing the RIPEMD-160 hash algorithm, extending the `_RIPEMD` base class. +/// +/// The RIPEMD-160 hash produces a 160-bit (20-byte) hash digest. +/// +/// Constructor: +/// - [RIPEMD160]: Initializes an instance of the RIPEMD-160 hash. +/// +/// Static Method: +/// - [hash]: Computes the RIPEMD-160 hash of the provided data and returns the digest as a List. +/// It creates a new instance, updates it with the data, retrieves the digest, and then cleans up the internal state. +/// +/// Example: +/// ```dart +/// final data = List.from([0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x2C, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64]); +/// final hashDigest = RIPEMD160.hash(data); +/// ``` +class RIPEMD160 extends _RIPEMD { + /// Initializes an instance of the RIPEMD-160 hash. + RIPEMD160() : super(20 ~/ 4); + + /// Computes the RIPEMD-160 hash of the provided data. + static List hash(List data) { + final h = RIPEMD160(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} + +/// A class representing the RIPEMD-128 hash algorithm, extending the `_RIPEMD` base class. +/// +/// The RIPEMD-128 hash produces a 128-bit (16-byte) hash digest. +/// +/// Constructor: +/// - [RIPEMD128]: Initializes an instance of the RIPEMD-128 hash. +/// +/// Static Method: +/// - [hash]: Computes the RIPEMD-128 hash of the provided data and returns the digest as a List. +/// It creates a new instance, updates it with the data, retrieves the digest, and then cleans up the internal state. +/// +/// Example: +/// ```dart +/// final data = List.from([0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x2C, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64]); +/// final hashDigest = RIPEMD128.hash(data); +/// ``` +class RIPEMD128 extends _RIPEMD { + /// Initializes an instance of the RIPEMD-128 hash with a state length of 4. + RIPEMD128() : super(16 ~/ 4); + + /// Computes the RIPEMD-128 hash of the provided data. + static List hash(List data) { + final h = RIPEMD128(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} + +/// Constructs an instance of the `_RIPEMD` hash with the specified state length. +/// +/// This constructor initializes the internal state of the `_RIPEMD` hash with a state of the given [length]. +/// It then calls the `reset` method to prepare the hash for further computation. +/// +/// Parameters: +/// - [length]: An integer specifying the length of the hash state. +class _RIPEMD implements SerializableHash { + _RIPEMD(int length) { + _state = List.filled(length, 0); + reset(); + } + + final _buffer = List.empty(growable: true); + int _lengthInBytes = 0; + late final List _state; + final List _currentChunk = List.filled(16, 0); + + bool _finished = false; + + /// Clean up the internal state and reset hash object to its initial state. + @override + void clean() { + zero(_state); + zero(_currentChunk); + _buffer.clear(); + reset(); + } + + void _init() { + final state = _RidempUtils.readState(getDigestLength); + _state.setAll(0, state); + } + + /// Clean up and reset the saved state of the hash object to its initial state. + /// This function erases the buffer and sets the state and length to the default values. + /// It is used to ensure that a previously saved hash state is cleared and ready for reuse. + /// + /// [savedState]: The hash state to be cleaned and reset. + @override + void cleanSavedState(HashState savedState) { + savedState as SH1State; + savedState.buffer = List.empty(); + final state = _RidempUtils.readState(getDigestLength); + savedState.state = state; + savedState.length = 0; + } + + /// Generates the final hash digest by assembling and returning the hash state in a List. + /// + /// This function produces the hash digest by combining the current hash state into a single + /// List output. It finalizes the hash if it hasn't been finished, effectively completing + /// the hash computation and returning the result. + /// + /// Returns the List containing the computed hash digest. + @override + List digest() { + final out = List.filled(getDigestLength, 0); + finish(out); + return out; + } + + /// Finalizes the hash computation and stores the hash state in the provided List [out]. + /// + /// This function completes the hash computation, finalizes the state, and stores the resulting + /// hash in the provided [out] List. If the hash has already been finished, this method + /// will return the existing state without re-computing. + /// + /// Parameters: + /// - [out]: The List in which the hash digest is stored. + /// + /// Returns the current instance of the hash algorithm. + @override + Hash finish(List out) { + if (!_finished) { + _finalize(); + _iterate(); + _finished = true; + } + for (var i = 0; i < _state.length; i++) { + writeUint32LE(_state[i], out, i * 4); + } + return this; + } + + void _finalize() { + _buffer.add(0x80); + + final contentsLength = _lengthInBytes + 1 + 8; + final finalizedLength = (contentsLength + getBlockSize - 1) & -getBlockSize; + for (var i = 0; i < finalizedLength - contentsLength; i++) { + _buffer.add(0); + } + + var lengthInBits = _lengthInBytes * 8; + + // Add the full length of the input data as a 64-bit value at the end of the + // hash. Note: we're only writing out 64 bits, so skip ahead 8 if the + // signature is 128-bit. + final offset = _buffer.length; + + _buffer.addAll(List.filled(8, 0)); + // We're essentially doing byteData.setUint64(offset, lengthInBits, _endian) + // here, but that method isn't supported on dart2js so we implement it + // manually instead. + var highBits = lengthInBits ~/ 0x100000000; // >> 32 + var lowBits = lengthInBits & mask32; + writeUint32LE(lowBits, _buffer, offset); + writeUint32LE(highBits, _buffer, offset + 4); + } + + @override + int get getBlockSize => 64; + + @override + int get getDigestLength => _state.length * 4; + + /// Resets the hash computation to its initial state. + /// + /// This method initializes the hash computation to its initial state, clearing any previously + /// processed data. After calling this method, you can start a new hash computation. + /// + /// Returns the current instance of the hash algorithm with the initial stat + @override + Hash reset() { + _init(); + _finished = false; + _lengthInBytes = 0; + return this; + } + + /// Restores the hash computation state from a previously saved state. + /// + /// This method allows you to restore the hash computation state to a previously saved state. + /// It is useful when you want to continue hashing data from a certain point, or if you want + /// to combine multiple hash computations. + /// + /// Parameters: + /// - `savedState`: The saved state to restore. + /// + /// Returns the current instance of the hash algorithm with the restored state. + @override + SerializableHash restoreState(HashState savedState) { + savedState as SH1State; + _buffer.clear(); + _buffer.addAll(savedState.buffer); + _state.setAll(0, savedState.state); + _lengthInBytes = savedState.length; + _iterate(); + _finished = false; + return this; + } + + /// Saves the current hash computation state into a serializable state object. + /// + /// This method saves the current state of the hash computation, including the data buffer, + /// hash state, and etc, into a serializable state object. + /// The saved state can be later restored using the `restoreState` method. + /// + /// Returns a [HashState] object containing the saved state information. + @override + SH1State saveState() { + return SH1State( + buffer: List.from(_buffer.toList()), + length: _lengthInBytes, + state: List.from(_state, growable: false)); + } + + /// Updates the hash computation with the given data. + /// + /// This method updates the hash computation with the provided [data] bytes. It appends the data to + /// the internal buffer and processes it to update the hash state. + /// + /// If the hash has already been finished using the `finish` method, calling this method will result in an error. + /// + /// Parameters: + /// - [data]: The List containing the data to be hashed. + /// + /// Returns this [Hash] object for method chaining. + @override + Hash update(List data) { + if (_finished) { + throw StateError("SHA512: can't update because hash was finished."); + } + _lengthInBytes += data.length; + _buffer.addAll(BytesUtils.toBytes(data)); + _iterate(); + return this; + } + + void _iterate() { + // var pendingDataBytes = _buffer.buffer.asByteData(); + var pendingDataChunks = _buffer.length ~/ getBlockSize; + for (var i = 0; i < pendingDataChunks; i++) { + // Copy words from the pending data buffer into the current chunk buffer. + for (var j = 0; j < _currentChunk.length; j++) { + _currentChunk[j] = readUint32LE(_buffer, i * getBlockSize + j * 4); + // pendingDataBytes.getUint32( + // i * _currentChunk.lengthInBytes + j * 4, Endian.little); + } + _proccess(_currentChunk); + } + + // Remove all pending data up to the last clean chunk break. + _buffer.removeRange(0, pendingDataChunks * getBlockSize); + } + + void _proccess(List chunk) { + switch (getDigestLength) { + case 16: + return _proccess128(chunk); + case 20: + return _proccess160(chunk); + case 32: + return _proccess256(chunk); + default: + return _proccess320(chunk); + } + } + + void _proccess128(List chunk) { + assert(chunk.length == 16); + + int al = _state[0]; + int bl = _state[1]; + int cl = _state[2]; + int dl = _state[3]; + int ar = al; + int br = bl; + int cr = cl; + int dr = dl; + + for (int i = 0; i < 64; i++) { + int t = add32(al, chunk[_RidempUtils.zl[i]]); + t = add32(t, _RidempUtils.T(i, bl, cl, dl)); + t = rotl32(t, _RidempUtils.sl[i]); + al = dl; + dl = cl; + cl = bl; + bl = t; + + t = add32(ar, chunk[_RidempUtils.zr[i]]); + t = add32(t, _RidempUtils.t64(i, br, cr, dr)); + t = rotl32(t, _RidempUtils.sr[i]); + ar = dr; + dr = cr; + cr = br; + br = t; + } + + int t = add32(add32(_state[1], cl), dr); + _state[1] = add32(add32(_state[2], dl), ar); + _state[2] = add32(add32(_state[3], al), br); + + _state[3] = add32(add32(_state[0], bl), cr); + + _state[0] = t; + } + + void _proccess320(List chunk) { + assert(chunk.length == 16); + int al = _state[0]; + int bl = _state[1]; + int cl = _state[2]; + int dl = _state[3]; + int el = _state[4]; + int ar = _state[5]; + int br = _state[6]; + int cr = _state[7]; + int dr = _state[8]; + int er = _state[9]; + + for (int i = 0; i < 80; i++) { + int t = add32(al, chunk[_RidempUtils.zl[i]]); + t = add32(t, _RidempUtils.T(i, bl, cl, dl)); + t = rotl32(t, _RidempUtils.sl[i]); + t = add32(t, el); + al = el; + el = dl; + dl = rotl32(cl, 10); + cl = bl; + bl = t; + + t = add32(ar, chunk[_RidempUtils.zr[i]]); + t = add32(t, _RidempUtils.t80(i, br, cr, dr)); + t = rotl32(t, _RidempUtils.sr[i]); + t = add32(t, er); + ar = er; + er = dr; + dr = rotl32(cr, 10); + cr = br; + br = t; + + switch (i) { + case 15: + int temp = bl; + bl = br; + br = temp; + break; + case 31: + int temp = dl; + dl = dr; + dr = temp; + break; + case 47: + int temp = al; + al = ar; + ar = temp; + break; + case 63: + int temp = cl; + cl = cr; + cr = temp; + break; + case 79: + int temp = el; + el = er; + er = temp; + break; + } + } + + _state[0] = add32(_state[0], al); + _state[1] = add32(_state[1], bl); + _state[2] = add32(_state[2], cl); + _state[3] = add32(_state[3], dl); + _state[4] = add32(_state[4], el); + _state[5] = add32(_state[5], ar); + _state[6] = add32(_state[6], br); + _state[7] = add32(_state[7], cr); + _state[8] = add32(_state[8], dr); + _state[9] = add32(_state[9], er); + } + + void _proccess256(List chunk) { + assert(chunk.length == 16); + + int al = _state[0]; + int bl = _state[1]; + int cl = _state[2]; + int dl = _state[3]; + int ar = _state[4]; + int br = _state[5]; + int cr = _state[6]; + int dr = _state[7]; + + for (int i = 0; i < 64; i++) { + int t = add32(al, chunk[_RidempUtils.zl[i]]); + t = add32(t, _RidempUtils.T(i, bl, cl, dl)); + t = rotl32(t, _RidempUtils.sl[i]); + al = dl; + dl = cl; + cl = bl; + bl = t; + + t = add32(ar, chunk[_RidempUtils.zr[i]]); + t = add32(t, _RidempUtils.t64(i, br, cr, dr)); + t = rotl32(t, _RidempUtils.sr[i]); + ar = dr; + dr = cr; + cr = br; + br = t; + + switch (i) { + case 15: + int temp = al; + al = ar; + ar = temp; + break; + case 31: + int temp = bl; + bl = br; + br = temp; + break; + case 47: + int temp = cl; + cl = cr; + cr = temp; + break; + case 63: + int temp = dl; + dl = dr; + dr = temp; + break; + } + } + + _state[0] = add32(_state[0], al); + _state[1] = add32(_state[1], bl); + _state[2] = add32(_state[2], cl); + _state[3] = add32(_state[3], dl); + _state[4] = add32(_state[4], ar); + _state[5] = add32(_state[5], br); + _state[6] = add32(_state[6], cr); + _state[7] = add32(_state[7], dr); + } + + void _proccess160(List chunk) { + assert(chunk.length == 16); + + int al = _state[0]; + int bl = _state[1]; + int cl = _state[2]; + int dl = _state[3]; + int el = _state[4]; + int ar = al; + int br = bl; + int cr = cl; + int dr = dl; + int er = el; + + for (int i = 0; i < 80; i++) { + int t = add32(al, chunk[_RidempUtils.zl[i]]); + t = add32(t, _RidempUtils.T(i, bl, cl, dl)); + t = rotl32(t, _RidempUtils.sl[i]); + t = add32(t, el); + al = el; + el = dl; + dl = rotl32(cl, 10); + cl = bl; + bl = t; + + t = add32(ar, chunk[_RidempUtils.zr[i]]); + t = (t + _RidempUtils.t80(i, br, cr, dr)); + t = rotl32(t, _RidempUtils.sr[i]); + t = add32(t, er); + ar = er; + er = dr; + dr = rotl32(cr, 10); + cr = br; + br = t; + } + + int t = add32(add32(_state[1], cl), dr); + _state[1] = add32(add32(_state[2], dl), er); + _state[2] = add32(add32(_state[3], el), ar); + _state[3] = add32(add32(_state[4], al), br); + _state[4] = add32(add32(_state[0], bl), cr); + _state[0] = t; + } +} + +class _RidempUtils { + static int F(int x, int y, int z) { + return x ^ y ^ z; + } + + static int G(int x, int y, int z) { + return (x & y) | ((~x) & z); + } + + static int H(int x, int y, int z) { + return (x | (~y)) ^ z; + } + + static int I(int x, int y, int z) { + return (x & z) | (y & (~z)); + } + + static int J(int x, int y, int z) { + return x ^ (y | (~z)); + } + + static int T(int i, int bl, int cl, int dl) { + if (i < 16) { + return F(bl, cl, dl); + } + if (i < 32) { + return (G(bl, cl, dl) + 0x5a827999) & mask32; + } + if (i < 48) { + return (H(bl, cl, dl) + 0x6ed9eba1) & mask32; + } + if (i < 64) { + return (I(bl, cl, dl) + 0x8f1bbcdc) & mask32; + } + return (J(bl, cl, dl) + 0xa953fd4e) & mask32; + } + + static int t64(int i, int br, int cr, int dr) { + if (i < 16) { + return (I(br, cr, dr) + 0x50a28be6) & mask32; + } + if (i < 32) { + return (H(br, cr, dr) + 0x5c4dd124) & mask32; + } + if (i < 48) { + return (G(br, cr, dr) + 0x6d703ef3) & mask32; + } + return F(br, cr, dr); + } + + static int t80(int i, int br, int cr, int dr) { + if (i < 16) { + return (J(br, cr, dr) + 0x50a28be6) & mask32; + } + if (i < 32) { + return (I(br, cr, dr) + 0x5c4dd124) & mask32; + } + if (i < 48) { + return (H(br, cr, dr) + 0x6d703ef3) & mask32; + } + if (i < 64) { + return (G(br, cr, dr) + 0x7a6d76e9) & mask32; + } + return F(br, cr, dr); + } + + static const List zl = [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 7, + 4, + 13, + 1, + 10, + 6, + 15, + 3, + 12, + 0, + 9, + 5, + 2, + 14, + 11, + 8, + 3, + 10, + 14, + 4, + 9, + 15, + 8, + 1, + 2, + 7, + 0, + 6, + 13, + 11, + 5, + 12, + 1, + 9, + 11, + 10, + 0, + 8, + 12, + 4, + 13, + 3, + 7, + 15, + 14, + 5, + 6, + 2, + 4, + 0, + 5, + 9, + 7, + 12, + 2, + 10, + 14, + 1, + 3, + 8, + 11, + 6, + 15, + 13 + ]; + + static const List zr = [ + 5, + 14, + 7, + 0, + 9, + 2, + 11, + 4, + 13, + 6, + 15, + 8, + 1, + 10, + 3, + 12, + 6, + 11, + 3, + 7, + 0, + 13, + 5, + 10, + 14, + 15, + 8, + 12, + 4, + 9, + 1, + 2, + 15, + 5, + 1, + 3, + 7, + 14, + 6, + 9, + 11, + 8, + 12, + 2, + 10, + 0, + 4, + 13, + 8, + 6, + 4, + 1, + 3, + 11, + 15, + 0, + 5, + 12, + 2, + 13, + 9, + 7, + 10, + 14, + 12, + 15, + 10, + 4, + 1, + 5, + 8, + 7, + 6, + 2, + 13, + 14, + 0, + 3, + 9, + 11 + ]; + + static const List sl = [ + 11, + 14, + 15, + 12, + 5, + 8, + 7, + 9, + 11, + 13, + 14, + 15, + 6, + 7, + 9, + 8, + 7, + 6, + 8, + 13, + 11, + 9, + 7, + 15, + 7, + 12, + 15, + 9, + 11, + 7, + 13, + 12, + 11, + 13, + 6, + 7, + 14, + 9, + 13, + 15, + 14, + 8, + 13, + 6, + 5, + 12, + 7, + 5, + 11, + 12, + 14, + 15, + 14, + 15, + 9, + 8, + 9, + 14, + 5, + 6, + 8, + 6, + 5, + 12, + 9, + 15, + 5, + 11, + 6, + 8, + 13, + 12, + 5, + 12, + 13, + 14, + 11, + 8, + 5, + 6 + ]; + static const List sr = [ + 8, + 9, + 9, + 11, + 13, + 15, + 15, + 5, + 7, + 7, + 8, + 11, + 14, + 14, + 12, + 6, + 9, + 13, + 15, + 7, + 12, + 8, + 9, + 11, + 7, + 7, + 12, + 7, + 6, + 15, + 13, + 11, + 9, + 7, + 15, + 11, + 8, + 6, + 6, + 14, + 12, + 13, + 5, + 14, + 13, + 13, + 7, + 5, + 15, + 5, + 8, + 11, + 14, + 14, + 6, + 14, + 6, + 9, + 12, + 9, + 12, + 5, + 15, + 8, + 8, + 5, + 12, + 9, + 12, + 5, + 14, + 6, + 8, + 13, + 6, + 5, + 15, + 13, + 11, + 11 + ]; + + static List readState(int lengthInBytes) { + final l = lengthInBytes ~/ 4; + final List state = List.filled(l, 0); + state[0] = 0x67452301; + state[1] = 0xefcdab89; + state[2] = 0x98badcfe; + state[3] = 0x10325476; + switch (lengthInBytes) { + case 20: + state[4] = 0xc3d2e1f0; + break; + case 32: + state[4] = 0x76543210; + state[5] = 0xfedcba98; + state[6] = 0x89abcdef; + state[7] = 0x01234567; + case 40: + state[4] = 0xc3d2e1f0; + state[5] = 0x76543210; + state[6] = 0xfedcba98; + state[7] = 0x89abcdef; + state[8] = 0x01234567; + state[9] = 0x3c2d1e0f; + } + return state; + } +} diff --git a/lib/crypto/crypto/hash/sha1/sha1.dart b/lib/crypto/crypto/hash/sha1/sha1.dart new file mode 100644 index 0000000..2d3f995 --- /dev/null +++ b/lib/crypto/crypto/hash/sha1/sha1.dart @@ -0,0 +1,292 @@ +part of 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +/// A class representing the SHA-1 (Secure Hash Algorithm 1) hash algorithm. +/// +/// SHA-1 produces a 160-bit (20-byte) hash digest. +/// +/// Constructor: +/// - [SHA1]: Initializes an instance of the SHA-1 hash. +/// +/// Example: +/// ```dart +/// final sha1 = SHA1(); +/// sha1.update(List.from([0x48, 0x65, 0x6C, 0x6C, 0x6F])); +/// final hashDigest = sha1.digest(); +/// ``` +class SHA1 implements SerializableHash { + /// Initializes an instance of the SHA-1 hash. + SHA1() { + reset(); + } + final _buffer = List.empty(growable: true); + int _lengthInBytes = 0; + + final List _temp = List.filled(80, 0); + final List _estate = List.filled(5, 0); + final List _currentChunk = List.filled(16, 0); + + bool _finished = false; + + /// Clean up the internal state and reset hash object to its initial state. + @override + void clean() { + zero(_temp); + zero(_estate); + zero(_currentChunk); + _buffer.clear(); + reset(); + } + + void _init() { + _estate[0] = 0x67452301; + _estate[1] = 0xEFCDAB89; + _estate[2] = 0x98BADCFE; + _estate[3] = 0x10325476; + _estate[4] = 0xC3D2E1F0; + } + + /// Clean up and reset the saved state of the hash object to its initial state. + /// This function erases the buffer and sets the state and length to the default values. + /// It is used to ensure that a previously saved hash state is cleared and ready for reuse. + /// + /// [savedState]: The hash state to be cleaned and reset. + @override + void cleanSavedState(HashState savedState) { + savedState as SH1State; + savedState.buffer = List.empty(); + savedState.state = List.from([ + 0x67452301, + 0xEFCDAB89, + 0x98BADCFE, + 0x10325476, + 0xC3D2E1F0, + ], growable: false); + savedState.length = 0; + } + + /// Generates the final hash digest by assembling and returning the hash state in a List. + /// + /// This function produces the hash digest by combining the current hash state into a single + /// List output. It finalizes the hash if it hasn't been finished, effectively completing + /// the hash computation and returning the result. + /// + /// Returns the List containing the computed hash digest. + @override + List digest() { + final out = List.filled(getDigestLength, 0); + finish(out); + return out; + } + + /// Finalizes the hash computation and stores the hash state in the provided List [out]. + /// + /// This function completes the hash computation, finalizes the state, and stores the resulting + /// hash in the provided [out] List. If the hash has already been finished, this method + /// will return the existing state without re-computing. + /// + /// Parameters: + /// - [out]: The List in which the hash digest is stored. + /// + /// Returns the current instance of the hash algorithm. + @override + Hash finish(List out) { + if (!_finished) { + _finalize(); + _iterate(); + _finished = true; + } + for (var i = 0; i < _estate.length; i++) { + writeUint32BE(_estate[i], out, i * 4); + } + return this; + } + + void _finalize() { + _buffer.add(0x80); + + final contentsLength = _lengthInBytes + 1 + 8; + final finalizedLength = (contentsLength + getBlockSize - 1) & -getBlockSize; + for (var i = 0; i < finalizedLength - contentsLength; i++) { + _buffer.add(0); + } + + var lengthInBits = _lengthInBytes * 8; + + // Add the full length of the input data as a 64-bit value at the end of the + // hash. Note: we're only writing out 64 bits, so skip ahead 8 if the + // signature is 128-bit. + final offset = _buffer.length; + + _buffer.addAll(List.filled(8, 0)); + // var byteData = _buffer.buffer.asByteData(); + + // We're essentially doing byteData.setUint64(offset, lengthInBits, _endian) + // here, but that method isn't supported on dart2js so we implement it + // manually instead. + var highBits = lengthInBits ~/ 0x100000000; // >> 32 + var lowBits = lengthInBits & mask32; + writeUint32BE(highBits, _buffer, offset); + writeUint32BE(lowBits, _buffer, offset + 4); + } + + void _proccess(List chunk) { + assert(chunk.length == 16); + + var a = _estate[0]; + var b = _estate[1]; + var c = _estate[2]; + var d = _estate[3]; + var e = _estate[4]; + + for (var i = 0; i < 80; i++) { + if (i < 16) { + _temp[i] = chunk[i]; + } else { + _temp[i] = rotl32( + _temp[i - 3] ^ _temp[i - 8] ^ _temp[i - 14] ^ _temp[i - 16], 1); + } + + var newA = add32(add32(rotl32(a, 5), e), _temp[i]); + if (i < 20) { + newA = add32(add32(newA, (b & c) | (~b & d)), 0x5A827999); + } else if (i < 40) { + newA = add32(add32(newA, b ^ c ^ d), 0x6ED9EBA1); + } else if (i < 60) { + newA = add32(add32(newA, (b & c) | (b & d) | (c & d)), 0x8F1BBCDC); + } else { + newA = add32(add32(newA, b ^ c ^ d), 0xCA62C1D6); + } + + e = d; + d = c; + c = rotl32(b, 30); + b = a; + a = newA & mask32; + } + + _estate[0] = add32(a, _estate[0]); + _estate[1] = add32(b, _estate[1]); + _estate[2] = add32(c, _estate[2]); + _estate[3] = add32(d, _estate[3]); + _estate[4] = add32(e, _estate[4]); + } + + @override + int get getBlockSize => 64; + + @override + int get getDigestLength => _estate.length * 4; + + /// Resets the hash computation to its initial state. + /// + /// This method initializes the hash computation to its initial state, clearing any previously + /// processed data. After calling this method, you can start a new hash computation. + /// + /// Returns the current instance of the hash algorithm with the initial stat + @override + Hash reset() { + _init(); + _finished = false; + _lengthInBytes = 0; + return this; + } + + /// Restores the hash computation state from a previously saved state. + /// + /// This method allows you to restore the hash computation state to a previously saved state. + /// It is useful when you want to continue hashing data from a certain point, or if you want + /// to combine multiple hash computations. + /// + /// Parameters: + /// - `savedState`: The saved state to restore. + /// + /// Returns the current instance of the hash algorithm with the restored state. + @override + SerializableHash restoreState(HashState savedState) { + savedState as SH1State; + _buffer.clear(); + _buffer.addAll(savedState.buffer); + _estate.setAll(0, savedState.state); + _lengthInBytes = savedState.length; + _iterate(); + _finished = false; + return this; + } + + /// Saves the current hash computation state into a serializable state object. + /// + /// This method saves the current state of the hash computation, including the data buffer, + /// hash state, and etc, into a serializable state object. + /// The saved state can be later restored using the `restoreState` method. + /// + /// Returns a [HashState] object containing the saved state information. + @override + SH1State saveState() { + return SH1State( + buffer: List.from(_buffer.toList()), + length: _lengthInBytes, + state: List.from(_estate, growable: false)); + } + + /// Updates the hash computation with the given data. + /// + /// This method updates the hash computation with the provided [data] bytes. It appends the data to + /// the internal buffer and processes it to update the hash state. + /// + /// If the hash has already been finished using the `finish` method, calling this method will result in an error. + /// + /// Parameters: + /// - [data]: The List containing the data to be hashed. + /// + /// Returns this [Hash] object for method chaining. + @override + Hash update(List data) { + if (_finished) { + throw StateError("SHA512: can't update because hash was finished."); + } + _lengthInBytes += data.length; + _buffer.addAll(BytesUtils.toBytes(data)); + _iterate(); + return this; + } + + void _iterate() { + var pendingDataChunks = _buffer.length ~/ getBlockSize; + for (var i = 0; i < pendingDataChunks; i++) { + // Copy words from the pending data buffer into the current chunk buffer. + for (var j = 0; j < _currentChunk.length; j++) { + _currentChunk[j] = readUint32BE(_buffer, i * getBlockSize + j * 4); + } + _proccess(_currentChunk); + } + + // Remove all pending data up to the last clean chunk break. + _buffer.removeRange(0, pendingDataChunks * getBlockSize); + } + + /// Computes the SHA1 hash of the provided data. + static List hash(List data) { + final h = SHA1(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} + +/// The `SHA1State` class represents the state of the SHA-1 hash algorithm. +/// +/// It encapsulates the intermediate state of the SHA-1 hash computation and is +/// used for saving and restoring the hash state during processing. +class SH1State implements HashState { + SH1State({required this.buffer, required this.length, required this.state}); + + /// The buffer storing data to be hashed. + List buffer; + + /// The length of the data in bytes. + int length; + + /// The state of the SHA-1 hash. + List state; +} diff --git a/lib/crypto/crypto/hash/sha224/sha224.dart b/lib/crypto/crypto/hash/sha224/sha224.dart new file mode 100644 index 0000000..08f0094 --- /dev/null +++ b/lib/crypto/crypto/hash/sha224/sha224.dart @@ -0,0 +1,43 @@ +part of 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +/// The `SHA224` class represents the SHA-224 hash algorithm, which is a variant of SHA-256. +/// +/// SHA-224 is a cryptographic hash function that produces a 224-bit (28-byte) hash +/// value from an input message. It's a variant of SHA-256 and follows a similar +/// implementation with a different initial hash value and digest length. +class SHA224 extends SHA256 { + /// digest length + static const int digestLength = 28; + + // block size + static const int blockSize = 64; + + /// digest length + @override + int get getDigestLength => SHA224.digestLength; + + // block size + @override + int get getBlockSize => SHA224.blockSize; + + @override + void _initState() { + _state[0] = 0xc1059ed8; + _state[1] = 0x367cd507; + _state[2] = 0x3070dd17; + _state[3] = 0xf70e5939; + _state[4] = 0xffc00b31; + _state[5] = 0x68581511; + _state[6] = 0x64f98fa7; + _state[7] = 0xbefa4fa4; + } + + /// Computes the SHA224 hash of the provided data. + static List hash(List data) { + final h = SHA224(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} diff --git a/lib/crypto/crypto/hash/sha256/sha256.dart b/lib/crypto/crypto/hash/sha256/sha256.dart new file mode 100644 index 0000000..0ee0475 --- /dev/null +++ b/lib/crypto/crypto/hash/sha256/sha256.dart @@ -0,0 +1,365 @@ +part of 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +/// The `SHA256` class represents the SHA-256 hash algorithm. +/// +/// SHA-256 is a cryptographic hash function that produces a 256-bit (32-byte) hash +/// value from an input message. It's commonly used in various security applications. +/// This class implements the SHA-256 algorithm and provides a standard interface +/// for hashing data and producing digests. +class SHA256 implements SerializableHash { + static const int digestLength = 32; + static const int blockSize = 64; + SHA256() { + reset(); + } + + /// digest length + @override + int get getDigestLength => digestLength; + + /// block size + @override + int get getBlockSize => blockSize; + + // Note: List is used instead of Uint32List for performance reasons. + final List _state = List.filled(8, 0); // hash state + final List _temp = List.filled(64, 0); // temporary state + final List _buffer = List.filled(128, 0); // buffer for data to hash + int _bufferLength = 0; // number of bytes in buffer + int _bytesHashed = 0; // number of total bytes hashed + bool _finished = false; // indicates whether the hash was finalized + + // Rest of your class implementation goes here... + void _initState() { + _state[0] = 0x6a09e667; + _state[1] = 0xbb67ae85; + _state[2] = 0x3c6ef372; + _state[3] = 0xa54ff53a; + _state[4] = 0x510e527f; + _state[5] = 0x9b05688c; + _state[6] = 0x1f83d9ab; + _state[7] = 0x5be0cd19; + } + + /// Updates the hash computation with the given data. + /// + /// This method updates the hash computation with the provided [data] bytes. It appends the data to + /// the internal buffer and processes it to update the hash state. + /// + /// If the hash has already been finished using the `finish` method, calling this method will result in an error. + /// + /// Parameters: + /// - [data]: The List containing the data to be hashed. + /// + /// Returns this [Hash] object for method chaining. + @override + SerializableHash update(List data, {int? length}) { + if (_finished) { + throw Exception("SHA256: can't update because hash was finished."); + } + int dataLength = length ?? data.length; + int dataPos = 0; + _bytesHashed += dataLength; + + if (_bufferLength > 0) { + while (_bufferLength < getBlockSize && dataLength > 0) { + _buffer[_bufferLength++] = data[dataPos++] & mask8; + dataLength--; + } + + if (_bufferLength == getBlockSize) { + _hashBlocks(_temp, _state, _buffer, 0, getBlockSize); + + _bufferLength = 0; + } + } + + if (dataLength >= getBlockSize) { + dataPos = _hashBlocks(_temp, _state, data, dataPos, dataLength); + + dataLength %= getBlockSize; + } + + while (dataLength > 0) { + _buffer[_bufferLength++] = data[dataPos++] & mask8; + dataLength--; + } + return this; + } + + /// Finalizes the hash computation and stores the hash state in the provided List [out]. + /// + /// This function completes the hash computation, finalizes the state, and stores the resulting + /// hash in the provided [out] List. If the hash has already been finished, this method + /// will return the existing state without re-computing. + /// + /// Parameters: + /// - [out]: The List in which the hash digest is stored. + /// + /// Returns the current instance of the hash algorithm. + @override + SerializableHash finish(List out) { + if (!_finished) { + final bytesHashed = _bytesHashed; + final left = _bufferLength; + final bitLenHi = (bytesHashed ~/ 0x20000000) & 0xFFFFFFFF; + final bitLenLo = bytesHashed << 3; + final padLength = (bytesHashed % 64 < 56) ? 64 : 128; + + _buffer[left] = 0x80; + for (var i = left + 1; i < padLength - 8; i++) { + _buffer[i] = 0; + } + + writeUint32BE(bitLenHi, _buffer, padLength - 8); + writeUint32BE(bitLenLo, _buffer, padLength - 4); + + _hashBlocks(_temp, _state, _buffer, 0, padLength); + _finished = true; + } + for (var i = 0; i < getDigestLength ~/ 4; i++) { + writeUint32BE(_state[i], out, i * 4); + } + + return this; + } + + /// Generates the final hash digest by assembling and returning the hash state in a List. + /// + /// This function produces the hash digest by combining the current hash state into a single + /// List output. It finalizes the hash if it hasn't been finished, effectively completing + /// the hash computation and returning the result. + /// + /// Returns the List containing the computed hash digest. + @override + List digest() { + final out = List.filled(getDigestLength, 0); + finish(out); + return out; + } + + /// Resets the hash computation to its initial state. + /// + /// This method initializes the hash computation to its initial state, clearing any previously + /// processed data. After calling this method, you can start a new hash computation. + /// + /// Returns the current instance of the hash algorithm with the initial stat + @override + SerializableHash reset() { + _initState(); + _bufferLength = 0; + _bytesHashed = 0; + _finished = false; + + return this; + } + + /// Clean up the internal state and reset hash object to its initial state. + @override + void clean() { + zero(_buffer); + zero(_temp); + reset(); + } + + /// Restores the hash computation state from a previously saved state. + /// + /// This method allows you to restore the hash computation state to a previously saved state. + /// It is useful when you want to continue hashing data from a certain point, or if you want + /// to combine multiple hash computations. + /// + /// Parameters: + /// - `savedState`: The saved state to restore. + /// + /// Returns the current instance of the hash algorithm with the restored state. + @override + SerializableHash restoreState(HashState savedState) { + savedState as SHA256State; + _state.setAll(0, savedState.state); + _bufferLength = savedState.bufferLength; + if (savedState.buffer != null) { + _buffer.setRange(0, savedState.buffer!.length, savedState.buffer!); + } + _bytesHashed = savedState.bytesHashed; + _finished = false; + return this; + } + + /// Saves the current hash computation state into a serializable state object. + /// + /// This method saves the current state of the hash computation, including the data buffer, + /// hash state, and etc, into a serializable state object. + /// The saved state can be later restored using the `restoreState` method. + /// + /// Returns a [HashState] object containing the saved state information. + @override + SHA256State saveState() { + if (_finished) { + throw Exception("SHA256: cannot save finished state"); + } + return SHA256State( + state: List.from(_state, growable: false), + buffer: + _bufferLength > 0 ? List.from(_buffer, growable: false) : null, + bufferLength: _bufferLength, + bytesHashed: _bytesHashed, + ); + } + + /// Clean up and reset the saved state of the hash object to its initial state. + /// This function erases the buffer and sets the state and length to the default values. + /// It is used to ensure that a previously saved hash state is cleared and ready for reuse. + /// + /// [savedState]: The hash state to be cleaned and reset. + @override + void cleanSavedState(HashState savedState) { + savedState as SHA256State; + zero(savedState.state); + if (savedState.buffer != null) { + zero(savedState.buffer!); + } + savedState.bufferLength = 0; + savedState.bytesHashed = 0; + } + + final _k = List.unmodifiable(const [ + 0x428a2f98, + 0x71374491, + 0xb5c0fbcf, + 0xe9b5dba5, + 0x3956c25b, + 0x59f111f1, + 0x923f82a4, + 0xab1c5ed5, + 0xd807aa98, + 0x12835b01, + 0x243185be, + 0x550c7dc3, + 0x72be5d74, + 0x80deb1fe, + 0x9bdc06a7, + 0xc19bf174, + 0xe49b69c1, + 0xefbe4786, + 0x0fc19dc6, + 0x240ca1cc, + 0x2de92c6f, + 0x4a7484aa, + 0x5cb0a9dc, + 0x76f988da, + 0x983e5152, + 0xa831c66d, + 0xb00327c8, + 0xbf597fc7, + 0xc6e00bf3, + 0xd5a79147, + 0x06ca6351, + 0x14292967, + 0x27b70a85, + 0x2e1b2138, + 0x4d2c6dfc, + 0x53380d13, + 0x650a7354, + 0x766a0abb, + 0x81c2c92e, + 0x92722c85, + 0xa2bfe8a1, + 0xa81a664b, + 0xc24b8b70, + 0xc76c51a3, + 0xd192e819, + 0xd6990624, + 0xf40e3585, + 0x106aa070, + 0x19a4c116, + 0x1e376c08, + 0x2748774c, + 0x34b0bcb5, + 0x391c0cb3, + 0x4ed8aa4a, + 0x5b9cca4f, + 0x682e6ff3, + 0x748f82ee, + 0x78a5636f, + 0x84c87814, + 0x8cc70208, + 0x90befffa, + 0xa4506ceb, + 0xbef9a3f7, + 0xc67178f2 + ]); + + int _hashBlocks(List w, List v, List p, int pos, int len) { + while (len >= 64) { + int a = v[0]; + int b = v[1]; + int c = v[2]; + int d = v[3]; + int e = v[4]; + int f = v[5]; + int g = v[6]; + int h = v[7]; + for (int i = 0; i < 16; i++) { + int j = pos + i * 4; + w[i] = readUint32BE(p, j); + } + for (int i = 16; i < 64; i++) { + int u = w[i - 2]; + int t1 = rotr32(u, 17) ^ rotr32(u, 19) ^ (u >> 10); + u = w[i - 15]; + int t2 = rotr32(u, 7) ^ rotr32(u, 18) ^ (u >> 3); + w[i] = add32(add32(add32(t1, w[i - 7]), t2), w[i - 16]); + } + for (int i = 0; i < 64; i++) { + int t1 = add32( + add32(rotr32(e, 6) ^ rotr32(e, 11) ^ rotr32(e, 25), + (e & f) ^ (~e & g)), + add32(add32(h, _k[i]), w[i])); + int t2 = add32((rotr32(a, 2) ^ rotr32(a, 13) ^ rotr32(a, 22)), + (a & b) ^ (a & c) ^ (b & c)); + h = g; + g = f; + f = e; + e = add32(d, t1); + d = c; + c = b; + b = a; + a = add32(t1, t2); + } + v[0] = add32(v[0], a); + v[1] = add32(v[1], b); + v[2] = add32(v[2], c); + v[3] = add32(v[3], d); + v[4] = add32(v[4], e); + v[5] = add32(v[5], f); + v[6] = add32(v[6], g); + v[7] = add32(v[7], h); + pos += 64; + len -= 64; + } + return pos; + } + + /// Computes the SHA-256 hash of the provided data. + static List hash(List data) { + final h = SHA256(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} + +class SHA256State implements HashState { + final List state; + final List? buffer; + int bufferLength; + int bytesHashed; + + SHA256State({ + required this.state, + this.buffer, + required this.bufferLength, + required this.bytesHashed, + }); +} diff --git a/lib/crypto/crypto/hash/sha384/sha384.dart b/lib/crypto/crypto/hash/sha384/sha384.dart new file mode 100644 index 0000000..4d69cf5 --- /dev/null +++ b/lib/crypto/crypto/hash/sha384/sha384.dart @@ -0,0 +1,50 @@ +part of 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +/// The `SHA384` class extends the SHA-512 hash algorithm to produce 384-bit digests. +/// +/// SHA-384 is a cryptographic hash function that produces a 384-bit (48-byte) hash +/// value from an input message. It's a part of the SHA-2 family of hash functions. +/// This class inherits from the `SHA512` class, and it sets the digest length and +/// block size accordingly. +class SHA384 extends SHA512 { + static const int digestLength = 48; + static const int blockSize = 128; + + /// digest length + @override + int get getDigestLength => SHA384.digestLength; + + /// block size + @override + int get getBlockSize => SHA384.blockSize; + + @override + void _initState() { + _stateHi[0] = 0xcbbb9d5d; + _stateHi[1] = 0x629a292a; + _stateHi[2] = 0x9159015a; + _stateHi[3] = 0x152fecd8; + _stateHi[4] = 0x67332667; + _stateHi[5] = 0x8eb44a87; + _stateHi[6] = 0xdb0c2e0d; + _stateHi[7] = 0x47b5481d; + + _stateLo[0] = 0xc1059ed8; + _stateLo[1] = 0x367cd507; + _stateLo[2] = 0x3070dd17; + _stateLo[3] = 0xf70e5939; + _stateLo[4] = 0xffc00b31; + _stateLo[5] = 0x68581511; + _stateLo[6] = 0x64f98fa7; + _stateLo[7] = 0xbefa4fa4; + } + + /// Computes the SHA-384 hash of the provided data. + static List hash(List data) { + final h = SHA384(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} diff --git a/lib/crypto/crypto/hash/sha512/sha512.dart b/lib/crypto/crypto/hash/sha512/sha512.dart new file mode 100644 index 0000000..8f986d2 --- /dev/null +++ b/lib/crypto/crypto/hash/sha512/sha512.dart @@ -0,0 +1,949 @@ +part of 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +/// The `SHA512` class implements the SHA-512 hash algorithm. +/// +/// SHA-512 is a cryptographic hash function that takes an input message and +/// produces a 512-bit (64-byte) hash value known as the message digest. +/// +/// To use the `SHA512` class for hashing, create an instance, update it with +/// data, and then retrieve the hash value using the `digest` method. +/// +/// Example usage: +/// ```dart +/// final sha512 = SHA512(); +/// sha512.update(data); +/// final hash = sha512.digest(); +/// ``` +class SHA512 implements SerializableHash { + /// Initializes a new instance of the SHA-512 hash algorithm. + SHA512() { + reset(); + } + + /// digest length + static const int digestLength = 64; + + /// block size + static const int blockSize = 128; + + @override + int get getBlockSize => SHA512.blockSize; + + @override + int get getDigestLength => SHA512.digestLength; + + final List _stateHi = List.filled(8, 0); // hash state, high bytes + final List _stateLo = List.filled(8, 0); // hash state, low bytes + final List _tempHi = + List.filled(16, 0); // temporary state, high bytes + final List _tempLo = + List.filled(16, 0); // temporary state, low bytes + final List _buffer = List.filled(256, 0); // buffer for data to hash + int _bufferLength = 0; // number of bytes in buffer + int _bytesHashed = 0; // number of total bytes hashed + bool _finished = false; // indicates whether the hash was finalized + + void _initState() { + _stateHi[0] = 0x6a09e667; + _stateHi[1] = 0xbb67ae85; + _stateHi[2] = 0x3c6ef372; + _stateHi[3] = 0xa54ff53a; + _stateHi[4] = 0x510e527f; + _stateHi[5] = 0x9b05688c; + _stateHi[6] = 0x1f83d9ab; + _stateHi[7] = 0x5be0cd19; + + _stateLo[0] = 0xf3bcc908; + _stateLo[1] = 0x84caa73b; + _stateLo[2] = 0xfe94f82b; + _stateLo[3] = 0x5f1d36f1; + _stateLo[4] = 0xade682d1; + _stateLo[5] = 0x2b3e6c1f; + _stateLo[6] = 0xfb41bd6b; + _stateLo[7] = 0x137e2179; + } + + /// Resets the hash computation to its initial state. + /// + /// This method initializes the hash computation to its initial state, clearing any previously + /// processed data. After calling this method, you can start a new hash computation. + /// + /// Returns the current instance of the hash algorithm with the initial stat + @override + SerializableHash reset() { + _initState(); + _bufferLength = 0; + _bytesHashed = 0; + _finished = false; + return this; + } + + /// Clean up the internal state and reset hash object to its initial state. + @override + void clean() { + zero(_buffer); + zero(_tempHi); + zero(_tempLo); + reset(); + } + + /// Updates the hash computation with the given data. + /// + /// This method updates the hash computation with the provided [data] bytes. It appends the data to + /// the internal buffer and processes it to update the hash state. + /// + /// If the hash has already been finished using the `finish` method, calling this method will result in an error. + /// + /// Parameters: + /// - [data]: The List containing the data to be hashed. + /// + /// Returns this [Hash] object for method chaining. + @override + SerializableHash update(List data, {int? length}) { + if (_finished) { + throw StateError("SHA512: can't update because hash was finished."); + } + int dataPos = 0; + int dataLength = length ?? data.length; + _bytesHashed += dataLength; + + if (_bufferLength > 0) { + while (_bufferLength < getBlockSize && dataLength > 0) { + _buffer[_bufferLength++] = data[dataPos++] & mask8; + dataLength--; + } + + if (_bufferLength == getBlockSize) { + _hashBlocks( + _tempHi, _tempLo, _stateHi, _stateLo, _buffer, 0, getBlockSize); + _bufferLength = 0; + } + } + + if (dataLength >= getBlockSize) { + dataPos = _hashBlocks( + _tempHi, _tempLo, _stateHi, _stateLo, data, dataPos, dataLength); + dataLength %= getBlockSize; + } + + while (dataLength > 0) { + _buffer[_bufferLength++] = data[dataPos++] & mask8; + dataLength--; + } + + return this; + } + + /// Finalizes the hash computation and stores the hash state in the provided List [out]. + /// + /// This function completes the hash computation, finalizes the state, and stores the resulting + /// hash in the provided [out] List. If the hash has already been finished, this method + /// will return the existing state without re-computing. + /// + /// Parameters: + /// - [out]: The List in which the hash digest is stored. + /// + /// Returns the current instance of the hash algorithm. + @override + SerializableHash finish(List out) { + if (!_finished) { + final bytesHashed = _bytesHashed; + final left = _bufferLength; + final bitLenHi = (bytesHashed ~/ 0x20000000).toInt(); + final bitLenLo = bytesHashed << 3; + final padLength = (bytesHashed % 128 < 112) ? 128 : 256; + + _buffer[left] = 0x80; + for (var i = left + 1; i < padLength - 8; i++) { + _buffer[i] = 0; + } + + writeUint32BE(bitLenHi, _buffer, padLength - 8); + writeUint32BE(bitLenLo, _buffer, padLength - 4); + + _hashBlocks(_tempHi, _tempLo, _stateHi, _stateLo, _buffer, 0, padLength); + + _finished = true; + } + + for (var i = 0; i < getDigestLength ~/ 8; i++) { + writeUint32BE(_stateHi[i], out, i * 8); + writeUint32BE(_stateLo[i], out, i * 8 + 4); + } + + return this; + } + + /// Generates the final hash digest by assembling and returning the hash state in a List. + /// + /// This function produces the hash digest by combining the current hash state into a single + /// List output. It finalizes the hash if it hasn't been finished, effectively completing + /// the hash computation and returning the result. + /// + /// Returns the List containing the computed hash digest. + @override + List digest() { + final out = List.filled(getDigestLength, 0); + finish(out); + return out; + } + + /// Saves the current hash computation state into a serializable state object. + /// + /// This method saves the current state of the hash computation, including the data buffer, + /// hash state, and etc, into a serializable state object. + /// The saved state can be later restored using the `restoreState` method. + /// + /// Returns a [HashState] object containing the saved state information. + @override + SHA512State saveState() { + if (_finished) { + throw StateError("SHA256: cannot save finished state"); + } + return SHA512State( + stateHi: List.from(_stateHi, growable: false), + stateLo: List.from(_stateLo, growable: false), + buffer: (_bufferLength > 0) ? List.from(_buffer) : null, + bufferLength: _bufferLength, + bytesHashed: _bytesHashed, + ); + } + + /// Restores the hash computation state from a previously saved state. + /// + /// This method allows you to restore the hash computation state to a previously saved state. + /// It is useful when you want to continue hashing data from a certain point, or if you want + /// to combine multiple hash computations. + /// + /// Parameters: + /// - `savedState`: The saved state to restore. + /// + /// Returns the current instance of the hash algorithm with the restored state. + @override + SerializableHash restoreState(HashState savedState) { + savedState as SHA512State; + _stateHi.setAll(0, savedState.stateHi); + _stateLo.setAll(0, savedState.stateLo); + _bufferLength = savedState.bufferLength; + if (savedState.buffer != null) { + _buffer.setAll(0, savedState.buffer!); + } + _bytesHashed = savedState.bytesHashed; + _finished = false; + return this; + } + + /// Clean up and reset the saved state of the hash object to its initial state. + /// This function erases the buffer and sets the state and length to the default values. + /// It is used to ensure that a previously saved hash state is cleared and ready for reuse. + /// + /// [savedState]: The hash state to be cleaned and reset. + @override + void cleanSavedState(HashState savedState) { + savedState as SHA512State; + zero(savedState.stateHi); + zero(savedState.stateLo); + if (savedState.buffer != null) { + zero(savedState.buffer!); + } + savedState.bufferLength = 0; + savedState.bytesHashed = 0; + } + + final _k = List.unmodifiable(const [ + 0x428a2f98, + 0xd728ae22, + 0x71374491, + 0x23ef65cd, + 0xb5c0fbcf, + 0xec4d3b2f, + 0xe9b5dba5, + 0x8189dbbc, + 0x3956c25b, + 0xf348b538, + 0x59f111f1, + 0xb605d019, + 0x923f82a4, + 0xaf194f9b, + 0xab1c5ed5, + 0xda6d8118, + 0xd807aa98, + 0xa3030242, + 0x12835b01, + 0x45706fbe, + 0x243185be, + 0x4ee4b28c, + 0x550c7dc3, + 0xd5ffb4e2, + 0x72be5d74, + 0xf27b896f, + 0x80deb1fe, + 0x3b1696b1, + 0x9bdc06a7, + 0x25c71235, + 0xc19bf174, + 0xcf692694, + 0xe49b69c1, + 0x9ef14ad2, + 0xefbe4786, + 0x384f25e3, + 0x0fc19dc6, + 0x8b8cd5b5, + 0x240ca1cc, + 0x77ac9c65, + 0x2de92c6f, + 0x592b0275, + 0x4a7484aa, + 0x6ea6e483, + 0x5cb0a9dc, + 0xbd41fbd4, + 0x76f988da, + 0x831153b5, + 0x983e5152, + 0xee66dfab, + 0xa831c66d, + 0x2db43210, + 0xb00327c8, + 0x98fb213f, + 0xbf597fc7, + 0xbeef0ee4, + 0xc6e00bf3, + 0x3da88fc2, + 0xd5a79147, + 0x930aa725, + 0x06ca6351, + 0xe003826f, + 0x14292967, + 0x0a0e6e70, + 0x27b70a85, + 0x46d22ffc, + 0x2e1b2138, + 0x5c26c926, + 0x4d2c6dfc, + 0x5ac42aed, + 0x53380d13, + 0x9d95b3df, + 0x650a7354, + 0x8baf63de, + 0x766a0abb, + 0x3c77b2a8, + 0x81c2c92e, + 0x47edaee6, + 0x92722c85, + 0x1482353b, + 0xa2bfe8a1, + 0x4cf10364, + 0xa81a664b, + 0xbc423001, + 0xc24b8b70, + 0xd0f89791, + 0xc76c51a3, + 0x0654be30, + 0xd192e819, + 0xd6ef5218, + 0xd6990624, + 0x5565a910, + 0xf40e3585, + 0x5771202a, + 0x106aa070, + 0x32bbd1b8, + 0x19a4c116, + 0xb8d2d0c8, + 0x1e376c08, + 0x5141ab53, + 0x2748774c, + 0xdf8eeb99, + 0x34b0bcb5, + 0xe19b48a8, + 0x391c0cb3, + 0xc5c95a63, + 0x4ed8aa4a, + 0xe3418acb, + 0x5b9cca4f, + 0x7763e373, + 0x682e6ff3, + 0xd6b2b8a3, + 0x748f82ee, + 0x5defb2fc, + 0x78a5636f, + 0x43172f60, + 0x84c87814, + 0xa1f0ab72, + 0x8cc70208, + 0x1a6439ec, + 0x90befffa, + 0x23631e28, + 0xa4506ceb, + 0xde82bde9, + 0xbef9a3f7, + 0xb2c67915, + 0xc67178f2, + 0xe372532b, + 0xca273ece, + 0xea26619c, + 0xd186b8c7, + 0x21c0c207, + 0xeada7dd6, + 0xcde0eb1e, + 0xf57d4f7f, + 0xee6ed178, + 0x06f067aa, + 0x72176fba, + 0x0a637dc5, + 0xa2c898a6, + 0x113f9804, + 0xbef90dae, + 0x1b710b35, + 0x131c471b, + 0x28db77f5, + 0x23047d84, + 0x32caab7b, + 0x40c72493, + 0x3c9ebe0a, + 0x15c9bebc, + 0x431d67c4, + 0x9c100d4c, + 0x4cc5d4be, + 0xcb3e42b6, + 0x597f299c, + 0xfc657e2a, + 0x5fcb6fab, + 0x3ad6faec, + 0x6c44198c, + 0x4a475817 + ]); + + int _sigma1A(int ah4, int al4) { + ah4 &= mask32; + al4 &= mask32; + int one1 = (ah4 >>> 14); + int one2 = al4 << (32 - 14); + int one = (one1 | one2); + + int two1 = ((ah4) >> 18); + int two2 = (al4 << (32 - 18)); + int two = (two1 | two2); + int three1 = (al4 >> 9); + int three2 = (ah4 << 23); + int three = (three1 | three2); + int h = one ^ two ^ three; + return h; + } + + int _sigma1B(int ah0, int al0) { + al0 &= mask32; + ah0 &= mask32; + int one1 = (ah0 >> 28) & mask32; + int one2 = al0 << (32 - 28) & mask32; + int one = (one1 | one2); + int two1 = (al0 >> 2); + int two2 = (ah0 << (32 - (34 - 32))) & mask32; + int two = (two1 | two2); + int three1 = (al0 >> 7); + int three2 = (ah0 << (32 - (39 - 32))) & mask32; + int three = (three1 | three2); + int h = one ^ two ^ three; + return h; + } + + int _sigma0A(int th, int tl) { + th &= mask32; + tl &= mask32; + int one = ((th >> 1) | (tl << (32 - 1))) & mask32; + int two = ((th >> 8) | (tl << (32 - 8))) & mask32; + int three = (th >> 7); + int h = one ^ two ^ three; + return h; + } + + int _sigma0B(int th, int tl) { + th &= mask32; + tl &= mask32; + int one = ((tl >> 1) | (th << (32 - 1))) & mask32; + int two = ((tl >> 8) | (th << (32 - 8))) & mask32; + int three = ((tl >> 7) | (th << (32 - 7))) & mask32; + int h = one ^ two ^ three; + return h; + } + + int _sigma0C(int th, int tl) { + th &= mask32; + tl &= mask32; + int one = ((th >> 19) | (tl << (32 - 19))) & mask32; + int two = ((tl >> (61 - 32)) | (th << (32 - (61 - 32)))) & mask32; + int three = (th >> 6) & mask32; + int h = one ^ two ^ three; + return h; + } + + int _sigma0D(int th, int tl) { + th &= mask32; + tl &= mask32; + int one = ((tl >> 19) | (th << (32 - 19))) & mask32; + int two = ((th >> (61 - 32)) | (tl << (32 - (61 - 32)))) & mask32; + int three = ((tl >> 6) | (th << (32 - 6))) & mask32; + int h = one ^ two ^ three; + return h; + } + + int _hashBlocks(List wh, List wl, List hh, List hl, + List m, int pos, int len) { + int ah0 = hh[0]; + int ah1 = hh[1]; + int ah2 = hh[2]; + int ah3 = hh[3]; + int ah4 = hh[4]; + int ah5 = hh[5]; + int ah6 = hh[6]; + int ah7 = hh[7]; + + int al0 = hl[0]; + int al1 = hl[1]; + int al2 = hl[2]; + int al3 = hl[3]; + int al4 = hl[4]; + int al5 = hl[5]; + int al6 = hl[6]; + int al7 = hl[7]; + + int h, l; + int th, tl; + int a, b, c, d; + + while (len >= 128) { + for (int i = 0; i < 16; i++) { + int j = 8 * i + pos; + wh[i] = readUint32BE(m, j); + wl[i] = readUint32BE(m, j + 4); + } + + for (int i = 0; i < 80; i++) { + int bh0 = ah0; + int bh1 = ah1; + int bh2 = ah2; + int bh3 = ah3; + int bh4 = ah4; + int bh5 = ah5; + int bh6 = ah6; + int bh7 = ah7; + + int bl0 = al0; + int bl1 = al1; + int bl2 = al2; + int bl3 = al3; + int bl4 = al4; + int bl5 = al5; + int bl6 = al6; + int bl7 = al7; + + // add + h = ah7; + l = al7; + + a = l & mask16; + b = shr16(l); + c = h & mask16; + d = shr16(h); + + h = _sigma1A(ah4, al4); + l = _sigma1A(al4, ah4); + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + h = ((ah4 & ah5) ^ (~ah4 & ah6)) & mask32; + l = ((al4 & al5) ^ (~al4 & al6)) & mask32; + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + // K + h = _k[i * 2]; + l = _k[i * 2 + 1]; + + a += l & mask16; + b += shr16(l); + + c += h & mask16; + d += shr16(h); + + // w + h = wh[i % 16]; + l = wl[i % 16]; + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + b += shr16(a); + c += shr16(b); + d += shr16(c); + + th = ((c & mask16) | (d << 16)) & mask32; + tl = ((a & mask16) | (b << 16)) & mask32; + + // add + h = th; + l = tl; + + a = l & mask16; + b = shr16(l); + c = h & mask16; + d = shr16(h); + + // Sigma0 + h = _sigma1B(ah0, al0); + l = _sigma1B(al0, ah0); + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + // Maj + h = ((ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2)) & mask32; + l = ((al0 & al1) ^ (al0 & al2) ^ (al1 & al2)) & mask32; + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + b += shr16(a); + c += shr16(b); + d += shr16(c); + + bh7 = ((c & mask16) | (d << 16)) & mask32; + + bl7 = ((a & mask16) | (b << 16)) & mask32; + + // add + h = bh3; + l = bl3; + + a = l & mask16; + b = shr16(l); + c = h & mask16; + d = shr16(h); + + h = th; + l = tl; + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + b += shr16(a); + c += shr16(b); + d += shr16(c); + + bh3 = ((c & mask16) | (d << 16)) & mask32; + bl3 = ((a & mask16) | (b << 16)) & mask32; + ah1 = bh0; + ah2 = bh1; + ah3 = bh2; + ah4 = bh3; + ah5 = bh4; + ah6 = bh5; + ah7 = bh6; + ah0 = bh7; + + al1 = bl0; + al2 = bl1; + al3 = bl2; + al4 = bl3; + al5 = bl4; + al6 = bl5; + al7 = bl6; + al0 = bl7; + + if (i % 16 == 15) { + for (int j = 0; j < 16; j++) { + // add + h = wh[j]; + l = wl[j]; + + a = l & mask16; + b = shr16(l); + c = h & mask16; + d = shr16(h); + + h = wh[(j + 9) % 16]; + l = wl[(j + 9) % 16]; + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + // sigma0 + th = wh[(j + 1) % 16]; + tl = wl[(j + 1) % 16]; + h = _sigma0A(th, tl); + l = _sigma0B(th, tl); + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + // sigma1 + th = wh[(j + 14) % 16]; + tl = wl[(j + 14) % 16]; + h = _sigma0C(th, tl); + l = _sigma0D(th, tl); + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + b += shr16(a); + c += shr16(b); + d += shr16(c); + + wh[j] = ((c & mask16) | (d << 16)) & mask32; + wl[j] = ((a & mask16) | (b << 16)) & mask32; + } + } + } + + // add + h = ah0; + l = al0; + + a = l & mask16; + b = shr16(l); + c = h & mask16; + d = shr16(h); + + h = hh[0]; + l = hl[0]; + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + b += shr16(a); + c += shr16(b); + d += shr16(c); + + hh[0] = ah0 = ((c & mask16) | (d << 16)) & mask32; + hl[0] = al0 = ((a & mask16) | (b << 16)) & mask32; + + h = ah1; + l = al1; + + a = l & mask16; + b = shr16(l); + c = h & mask16; + d = shr16(h); + + h = hh[1]; + l = hl[1]; + + a += l & mask16; + b += shr16(l); + + c += h & mask16; + d += shr16(h); + + b += shr16(a); + c += shr16(b); + d += shr16(c); + + hh[1] = ah1 = ((c & mask16) | (d << 16)) & mask32; + hl[1] = al1 = ((a & mask16) | (b << 16)) & mask32; + h = ah2; + l = al2; + + a = l & mask16; + b = shr16(l); + c = h & mask16; + d = shr16(h); + + h = hh[2]; + l = hl[2]; + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + b += shr16(a); + c += shr16(b); + d += shr16(c); + + hh[2] = ah2 = ((c & mask16) | (d << 16)) & mask32; + hl[2] = al2 = ((a & mask16) | (b << 16)) & mask32; + + h = ah3; + l = al3; + + a = l & mask16; + b = shr16(l); + + c = h & mask16; + d = shr16(h); + + h = hh[3]; + l = hl[3]; + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + b += shr16(a); + c += shr16(b); + d += shr16(c); + + hh[3] = ah3 = ((c & mask16) | (d << 16)) & mask32; + hl[3] = al3 = ((a & mask16) | (b << 16)) & mask32; + + h = ah4; + l = al4; + + a = l & mask16; + b = shr16(l); + c = h & mask16; + d = shr16(h); + + h = hh[4]; + l = hl[4]; + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + b += shr16(a); + c += shr16(b); + d += shr16(c); + + hh[4] = ah4 = ((c & mask16) | (d << 16)) & mask32; + hl[4] = al4 = ((a & mask16) | (b << 16)) & mask32; + + h = ah5; + l = al5; + + a = l & mask16; + b = shr16(l); + c = h & mask16; + d = shr16(h); + + h = hh[5]; + l = hl[5]; + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + b += shr16(a); + c += shr16(b); + d += shr16(c); + + hh[5] = ah5 = ((c & mask16) | (d << 16)) & mask32; + hl[5] = al5 = ((a & mask16) | (b << 16)) & mask32; + h = ah6; + l = al6; + + a = l & mask16; + b = shr16(l); + c = h & mask16; + d = shr16(h); + + h = hh[6]; + l = hl[6]; + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + b += shr16(a); + c += shr16(b); + d += shr16(c); + + hh[6] = ah6 = ((c & mask16) | (d << 16)) & mask32; + hl[6] = al6 = ((a & mask16) | (b << 16)) & mask32; + h = ah7; + l = al7; + + a = l & mask16; + b = shr16(l); + c = h & mask16; + d = shr16(h); + + h = hh[7]; + l = hl[7]; + + a += l & mask16; + b += shr16(l); + c += h & mask16; + d += shr16(h); + + b += shr16(a); + c += shr16(b); + d += shr16(c); + + hh[7] = ah7 = ((c & mask16) | (d << 16)) & mask32; + hl[7] = al7 = ((a & mask16) | (b << 16)) & mask32; + pos += 128; + len -= 128; + } + + return pos; + } + + /// Computes the SHA-512 hash of the provided data. + static List hash(List data) { + final h = SHA512(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} + +/// The `SHA512State` class represents the state of a SHA-512 hash calculation. +/// +/// This class is used to store the state of a SHA-512 hash, including the +/// high and low parts of the hash state, the current buffer, the buffer's +/// length, and the total number of bytes hashed. +/// +/// Example usage: +/// ```dart +/// final state = SHA512State( +/// stateHi: Int32List(8), +/// stateLo: Int32List(8), +/// buffer:List.filled(SHA512.blockSize), +/// bufferLength: 0, +/// bytesHashed: 0, +/// ); +/// ``` +/// +/// It's typically used to save the state of a hash calculation to allow for +/// incremental hashing. This can be especially useful when hashing large +/// data in smaller chunks or when saving the intermediate state for further +/// updates. +class SHA512State implements HashState { + final List stateHi; + final List stateLo; + final List? buffer; + int bufferLength; + int bytesHashed; + + SHA512State({ + required this.stateHi, + required this.stateLo, + this.buffer, + required this.bufferLength, + required this.bytesHashed, + }); +} diff --git a/lib/crypto/crypto/hash/sha512_256/sh512256.dart b/lib/crypto/crypto/hash/sha512_256/sh512256.dart new file mode 100644 index 0000000..0db7d79 --- /dev/null +++ b/lib/crypto/crypto/hash/sha512_256/sh512256.dart @@ -0,0 +1,59 @@ +part of 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +/// The `SHA512256` class extends the SHA-512 hash function, specifically +/// truncating its output to 256 bits (32 bytes). It inherits the implementation +/// of the SHA-512 hash algorithm +/// +/// Example usage: +/// ```dart +/// final data = List.from([0, 1, 2, 3, 4, 5]); +/// final sha512256Hash = SHA512256().update(data).digest(); +/// ``` +/// +/// This class allows you to compute a SHA-512/256 hash, which is a widely-used +/// cryptographic hash function known for its security and is often used in +/// various security and data integrity applications +class SHA512256 extends SHA512 { + /// digest length + static const int digestLength = 32; + + /// block size + static const int blockSize = 128; + + @override + int get getDigestLength => SHA512256.digestLength; + @override + int get getBlockSize => SHA512256.blockSize; + + @override + void _initState() { + _stateHi[0] = 0x22312194; + _stateHi[1] = 0x9f555fa3; + _stateHi[2] = 0x2393b86b; + + _stateHi[3] = 0x96387719; + + _stateHi[4] = 0x96283ee2; + _stateHi[5] = 0xbe5e1e25; + _stateHi[6] = 0x2b0199fc; + _stateHi[7] = 0x0eb72ddc; + + _stateLo[0] = 0xfc2bf72c; + _stateLo[1] = 0xc84c64c2; + _stateLo[2] = 0x6f53b151; + _stateLo[3] = 0x5940eabd; + _stateLo[4] = 0xa88effe3; + _stateLo[5] = 0x53863992; + _stateLo[6] = 0x2c85b8aa; + _stateLo[7] = 0x81c52ca2; + } + + /// Computes the SHA-512/256 hash of the provided data. + static List hash(List data) { + final h = SHA512256(); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} diff --git a/lib/crypto/crypto/hmac/hmac.dart b/lib/crypto/crypto/hmac/hmac.dart new file mode 100644 index 0000000..058c3b9 --- /dev/null +++ b/lib/crypto/crypto/hmac/hmac.dart @@ -0,0 +1,250 @@ +import 'package:blockchain_utils/binary/binary_operation.dart'; + +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +/// The `HMAC` class represents a Hash-based Message Authentication Code. +/// +/// It computes a MAC using a given hash function with a secret key and input data. +class HMAC implements SerializableHash { + /// block size + @override + int get getBlockSize => _blockSize ?? _outer.getBlockSize; + + /// digest length + @override + int get getDigestLength => _outer.getDigestLength; + + late Hash _inner; // inner hash + late Hash _outer; // outer hash + + bool _finished = false; // true if HMAC was finalized + + // Copies of hash states after keying. + // Need for quick reset without hashing the key again. + dynamic _innerKeyedState; + dynamic _outerKeyedState; + late final int? _blockSize; + + /// Creates an HMAC instance with the specified hash function and secret key. + /// + /// Example: + /// ```dart + /// final key = List.from([0x00, 0x01, 0x02]); + /// final hmac = HMAC(()=>SHA256(), key); + /// ``` + /// + /// The `hash` parameter should be a function that returns a hash instance, e.g., SHA1, SHA256, etc. + /// The `key` is the secret key as a `List`. + /// The optional `blockSize` parameter sets the block size for the HMAC. + /// If not provided, it defaults to the block size of the hash function. + HMAC(Hash Function() hash, List key, [int? blockSize]) { + _blockSize = blockSize; + // Initialize inner and outer hashes. + _inner = hash(); + _outer = hash(); + + // Pad temporary stores a key (or its hash) padded with zeroes. + final pad = List.filled(getBlockSize, 0); + + if (key.length > getBlockSize) { + // If key is bigger than hash block size, it must be + // hashed and this hash is used as a key instead. + _inner.update(key) + ..finish(pad) + ..clean(); + } else { + // Otherwise, copy the key into pad. + pad.setAll(0, key); + } + + // Now two different keys are derived from the padded key + // by XORing a different byte value to each. + + // To make the inner hash key, XOR byte 0x36 into pad. + for (var i = 0; i < pad.length; i++) { + pad[i] ^= 0x36; + } + // Update inner hash with the result. + _inner.update(pad); + + // To make the outer hash key, XOR byte 0x5c into pad. + // But since we already XORed 0x36 there, we must + // first undo this by XORing it again. + for (var i = 0; i < pad.length; i++) { + pad[i] ^= 0x36 ^ 0x5c; + } + // Update outer hash with the result. + _outer.update(pad); + + // Save states of both hashes, so that we can quickly restore + // them later in reset() without the need to remember the actual + // key and perform this initialization again. + if (_inner is SerializableHash && _outer is SerializableHash) { + _innerKeyedState = (_inner as SerializableHash).saveState(); + _outerKeyedState = (_outer as SerializableHash).saveState(); + } + + // Clean pad. + zero(pad); + } + + /// Resets the hash computation to its initial state. + /// + /// This method initializes the hash computation to its initial state, clearing any previously + /// processed data. After calling this method, you can start a new hash computation. + /// + /// Returns the current instance of the hash algorithm with the initial stat + @override + HMAC reset() { + if (_inner is! SerializableHash || _outer is! SerializableHash) { + throw StateError( + "hmac: can't reset() because hash doesn't implement restoreState()"); + } + // Restore keyed states of inner and outer hashes. + (_inner as SerializableHash).restoreState(_innerKeyedState); + (_outer as SerializableHash).restoreState(_outerKeyedState); + _finished = false; + + return this; + } + + /// Clean up the internal state and reset hash object to its initial state. + @override + void clean() { + if (_inner is SerializableHash) { + (_inner as SerializableHash).cleanSavedState(_innerKeyedState); + } + if (_outer is SerializableHash) { + (_outer as SerializableHash).cleanSavedState(_outerKeyedState); + } + } + + /// Updates the hash computation with the given data. + /// + /// This method updates the hash computation with the provided [data] bytes. It appends the data to + /// the internal buffer and processes it to update the hash state. + /// + /// If the hash has already been finished using the `finish` method, calling this method will result in an error. + /// + /// Parameters: + /// - [data]: The List containing the data to be hashed. + /// + /// Returns this [Hash] object for method chaining. + @override + Hash update(List data) { + _inner.update(data); + return this; + } + + /// Finalizes the hash computation and stores the hash state in the provided List [out]. + /// + /// This function completes the hash computation, finalizes the state, and stores the resulting + /// hash in the provided [out] List. If the hash has already been finished, this method + /// will return the existing state without re-computing. + /// + /// Parameters: + /// - [out]: The List in which the hash digest is stored. + /// + /// Returns the current instance of the hash algorithm. + @override + HMAC finish(List out) { + if (_finished) { + _outer.finish(out); + return this; + } + + _inner.finish(out); + + _outer.update(out.sublist(0, getDigestLength)).finish(out); + + _finished = true; + + return this; + } + + /// Generates the final hash digest by assembling and returning the hash state in a List. + /// + /// This function produces the hash digest by combining the current hash state into a single + /// List output. It finalizes the hash if it hasn't been finished, effectively completing + /// the hash computation and returning the result. + /// + /// Returns the List containing the computed hash digest. + @override + List digest() { + final out = List.filled(getDigestLength, 0); + finish(out); + return out; + } + + /// Saves the current hash computation state into a serializable state object. + /// + /// This method saves the current state of the hash computation, including the data buffer, + /// hash state, and etc, into a serializable state object. + /// The saved state can be later restored using the `restoreState` method. + /// + /// Returns a [HashState] object containing the saved state information. + @override + HashState saveState() { + if (_inner is! SerializableHash) { + throw StateError( + "hmac: can't saveState() because hash doesn't implement it"); + } + return (_inner as SerializableHash).saveState(); + } + + /// Restores the hash computation state from a previously saved state. + /// + /// This method allows you to restore the hash computation state to a previously saved state. + /// It is useful when you want to continue hashing data from a certain point, or if you want + /// to combine multiple hash computations. + /// + /// Parameters: + /// - `savedState`: The saved state to restore. + /// + /// Returns the current instance of the hash algorithm with the restored state. + @override + HMAC restoreState(dynamic savedState) { + if (_inner is! SerializableHash || _outer is! SerializableHash) { + throw StateError( + "hmac: can't restoreState() because hash doesn't implement it"); + } + + (_inner as SerializableHash).restoreState(savedState); + (_outer as SerializableHash).restoreState(_outerKeyedState); + _finished = false; + + return this; + } + + /// Clean up and reset the saved state of the hash object to its initial state. + /// This function erases the buffer and sets the state and length to the default values. + /// It is used to ensure that a previously saved hash state is cleared and ready for reuse. + /// + /// [savedState]: The hash state to be cleaned and reset. + @override + void cleanSavedState(dynamic savedState) { + if (_inner is! SerializableHash) { + throw StateError( + "hmac: can't cleanSavedState() because hash doesn't implement it"); + } + + (_inner as SerializableHash).cleanSavedState(savedState); + } + + /// Calculates an HMAC using a specified hash function, a secret key, and input data. + /// The `hash` parameter should be a function that returns a hash instance, e.g., SHA1, SHA256, etc. + /// + /// Example: + /// ```dart + /// final key = List.from([0x00, 0x01, 0x02]); + /// final data = List.from([0x10, 0x11, 0x12, 0x13]); + /// final hmac = hmac(()=>SHA256(), key, data); + /// ``` + static List hmac(Hash Function() hash, List key, List data) { + final h = HMAC(hash, key); + h.update(data); + final digest = h.digest(); + h.clean(); + return digest; + } +} diff --git a/lib/crypto/crypto/pbkdf2/pbkdf2.dart b/lib/crypto/crypto/pbkdf2/pbkdf2.dart new file mode 100644 index 0000000..d692ec1 --- /dev/null +++ b/lib/crypto/crypto/pbkdf2/pbkdf2.dart @@ -0,0 +1,74 @@ +import 'package:blockchain_utils/crypto/crypto/hmac/hmac.dart'; +import 'package:blockchain_utils/binary/binary_operation.dart'; + +/// The `PBKDF2` class is an implementation of the Password-Based Key Derivation Function 2 (PBKDF2) algorithm. +/// +/// PBKDF2 is a widely-used cryptographic key derivation function that is used to securely derive a cryptographic key +/// from a given password or passphrase. It adds computational expense to make brute-force attacks more difficult +/// by repeatedly applying a pseudorandom function (such as HMAC) to the password along with a salt. +/// +/// This class provides methods for generating cryptographic keys based on a user-provided password, salt, +/// and the desired number of iterations, producing a derived key that can be used for encryption or other security purposes +class PBKDF2 { + /// Derives a cryptographic key using the PBKDF2 algorithm with the provided parameters. + /// + /// This method takes several essential parameters to derive a secure key: + /// + /// Parameters: + /// - `mac`: A function that returns an HMAC (Hash-based Message Authentication Code) instance. HMAC is used + /// as the pseudorandom function in the PBKDF2 algorithm. + /// - `salt`: A unique random value (the salt) that adds randomness and security to the key derivation process. + /// - `iterations`: The number of iterations or rounds of HMAC to apply, which increases the computational + /// expense and security. + /// - `length`: The desired length of the derived cryptographic key in bytes. + /// + /// Returns: + /// A `List` containing the derived cryptographic key based on the provided parameters. + /// + /// This method applies the PBKDF2 algorithm to derive a secure key suitable for encryption and other security purposes. + static List deriveKey({ + required HMAC Function() mac, + required List salt, + required int iterations, + required int length, + }) { + final prf = mac(); + final dlen = prf.getDigestLength; + final ctr = List.filled(4, 0); + final t = List.filled(dlen, 0); + final u = List.filled(dlen, 0); + final dk = List.filled(length, 0); + + prf.update(salt); + final saltedState = prf.saveState(); + + for (var i = 0; i * dlen < length; i++) { + writeUint32BE(i + 1, ctr); + prf.restoreState(saltedState) + ..update(ctr) + ..finish(u); + for (var j = 0; j < dlen; j++) { + t[j] = u[j]; + } + for (var j = 2; j <= iterations; j++) { + prf + ..reset() + ..update(u) + ..finish(u); + for (var k = 0; k < dlen; k++) { + t[k] ^= u[k]; + } + } + + for (var j = 0; j < dlen && i * dlen + j < length; j++) { + dk[i * dlen + j] = t[j]; + } + } + zero(t); + zero(u); + zero(ctr); + prf.cleanSavedState(saltedState); + prf.clean(); + return dk; + } +} diff --git a/lib/crypto/crypto/poly1305/poly1305.dart b/lib/crypto/crypto/poly1305/poly1305.dart new file mode 100644 index 0000000..eb8a7aa --- /dev/null +++ b/lib/crypto/crypto/poly1305/poly1305.dart @@ -0,0 +1,502 @@ +// import 'dart:typed_data'; +import 'package:blockchain_utils/binary/binary_operation.dart'; + +const _digestLength = 16; + +/// The `Poly1305` class represents an implementation of the Poly1305 one-time message authentication code (MAC). +/// +/// Poly1305 is a fast and secure MAC algorithm used for data integrity verification and authentication. +/// The algorithm produces a fixed-size digest of 16 bytes. +class Poly1305 { + /// The length of the Poly1305 digest (always 16 bytes). + final int digestLength = _digestLength; + + /// A buffer for temporary data storage. + final List _buffer = List.filled(16, 0); + final List _r = List.filled(10, 0); + final List _h = List.filled(10, 0); + final List _pad = List.filled(8, 0); + int _leftover = 0; + int _fin = 0; + bool _finished = false; + + /// Constructor for the `Poly1305` class. + /// + /// This constructor initializes the Poly1305 instance with a provided key and sets up the necessary data structures + /// for Poly1305 calculations. + /// + /// Parameters: + /// - `key`: A `List` containing the key used for Poly1305 authentication and data integrity verification. + Poly1305(List key) { + /// Initialize the Poly1305 instance with the provided key. + _init(key); + } + void _init(List key) { + int t0 = key[0] | (key[1] << 8); + _r[0] = (t0) & mask13; + int t1 = key[2] | (key[3] << 8); + _r[1] = ((t0 >> 13) | (t1 << 3)) & mask13; + int t2 = key[4] | (key[5] << 8); + _r[2] = ((t1 >> 10) | (t2 << 6)) & 0x1f03; + int t3 = key[6] | (key[7] << 8); + _r[3] = ((t2 >> 7) | (t3 << 9)) & mask13; + int t4 = key[8] | (key[9] << 8); + _r[4] = ((t3 >> 4) | (t4 << 12)) & 0x00ff; + _r[5] = ((t4 >> 1)) & 0x1ffe; + int t5 = key[10] | (key[11] << 8); + _r[6] = ((t4 >> 14) | (t5 << 2)) & mask13; + int t6 = key[12] | (key[13] << 8); + _r[7] = ((t5 >> 11) | (t6 << 5)) & 0x1f81; + int t7 = key[14] | (key[15] << 8); + _r[8] = ((t6 >> 8) | (t7 << 8)) & mask13; + _r[9] = ((t7 >> 5)) & 0x007f; + _pad[0] = key[16] | (key[17] << 8); + _pad[1] = key[18] | (key[19] << 8); + _pad[2] = key[20] | (key[21] << 8); + _pad[3] = key[22] | (key[23] << 8); + _pad[4] = key[24] | (key[25] << 8); + _pad[5] = key[26] | (key[27] << 8); + _pad[6] = key[28] | (key[29] << 8); + _pad[7] = key[30] | (key[31] << 8); + } + + void _blocks(List m, int mpos, int bytes) { + final hibit = _fin != 0 ? 0 : 1 << 11; + int h0 = _h[0], + h1 = _h[1], + h2 = _h[2], + h3 = _h[3], + h4 = _h[4], + h5 = _h[5], + h6 = _h[6], + h7 = _h[7], + h8 = _h[8], + h9 = _h[9]; + + int r0 = _r[0], + r1 = _r[1], + r2 = _r[2], + r3 = _r[3], + r4 = _r[4], + r5 = _r[5], + r6 = _r[6], + r7 = _r[7], + r8 = _r[8], + r9 = _r[9]; + + while (bytes >= 16) { + final t0 = m[mpos] | m[mpos + 1] << 8; + h0 += (t0) & mask13; + final t1 = m[mpos + 2] | m[mpos + 3] << 8; + h1 += ((t0 >> 13) | (t1 << 3)) & mask13; + final t2 = m[mpos + 4] | m[mpos + 5] << 8; + h2 += ((t1 >> 10) | (t2 << 6)) & mask13; + final t3 = m[mpos + 6] | m[mpos + 7] << 8; + h3 += ((t2 >> 7) | (t3 << 9)) & mask13; + final t4 = m[mpos + 8] | m[mpos + 9] << 8; + h4 += ((t3 >> 4) | (t4 << 12)) & mask13; + h5 += ((t4 >> 1)) & mask13; + final t5 = m[mpos + 10] | m[mpos + 11] << 8; + h6 += ((t4 >> 14) | (t5 << 2)) & mask13; + final t6 = m[mpos + 12] | m[mpos + 13] << 8; + h7 += ((t5 >> 11) | (t6 << 5)) & mask13; + final t7 = m[mpos + 14] | m[mpos + 15] << 8; + h8 += ((t6 >> 8) | (t7 << 8)) & mask13; + h9 += ((t7 >> 5)) | hibit; + + var c = 0; + + var d0 = c; + d0 += h0 * r0; + d0 += h1 * (5 * r9); + d0 += h2 * (5 * r8); + d0 += h3 * (5 * r7); + d0 += h4 * (5 * r6); + c = (d0 >> 13); + d0 &= mask13; + d0 += h5 * (5 * r5); + d0 += h6 * (5 * r4); + d0 += h7 * (5 * r3); + d0 += h8 * (5 * r2); + d0 += h9 * (5 * r1); + c += (d0 >> 13); + d0 &= mask13; + + var d1 = c; + d1 += h0 * r1; + d1 += h1 * r0; + d1 += h2 * (5 * r9); + d1 += h3 * (5 * r8); + d1 += h4 * (5 * r7); + c = (d1 >> 13); + d1 &= mask13; + d1 += h5 * (5 * r6); + d1 += h6 * (5 * r5); + d1 += h7 * (5 * r4); + d1 += h8 * (5 * r3); + d1 += h9 * (5 * r2); + c += (d1 >> 13); + d1 &= mask13; + + var d2 = c; + d2 += h0 * r2; + d2 += h1 * r1; + d2 += h2 * r0; + d2 += h3 * (5 * r9); + d2 += h4 * (5 * r8); + c = (d2 >> 13); + d2 &= mask13; + d2 += h5 * (5 * r7); + d2 += h6 * (5 * r6); + d2 += h7 * (5 * r5); + d2 += h8 * (5 * r4); + d2 += h9 * (5 * r3); + c += (d2 >> 13); + d2 &= mask13; + + var d3 = c; + d3 += h0 * r3; + d3 += h1 * r2; + d3 += h2 * r1; + d3 += h3 * r0; + d3 += h4 * (5 * r9); + c = (d3 >> 13); + d3 &= mask13; + d3 += h5 * (5 * r8); + d3 += h6 * (5 * r7); + d3 += h7 * (5 * r6); + d3 += h8 * (5 * r5); + d3 += h9 * (5 * r4); + c += (d3 >> 13); + d3 &= mask13; + + var d4 = c; + d4 += h0 * r4; + d4 += h1 * r3; + d4 += h2 * r2; + d4 += h3 * r1; + d4 += h4 * r0; + c = (d4 >> 13); + d4 &= mask13; + d4 += h5 * (5 * r9); + d4 += h6 * (5 * r8); + d4 += h7 * (5 * r7); + d4 += h8 * (5 * r6); + d4 += h9 * (5 * r5); + c += (d4 >> 13); + d4 &= mask13; + + var d5 = c; + d5 += h0 * r5; + d5 += h1 * r4; + d5 += h2 * r3; + d5 += h3 * r2; + d5 += h4 * r1; + c = (d5 >> 13); + d5 &= mask13; + d5 += h5 * r0; + d5 += h6 * (5 * r9); + d5 += h7 * (5 * r8); + d5 += h8 * (5 * r7); + d5 += h9 * (5 * r6); + c += (d5 >> 13); + d5 &= mask13; + + var d6 = c; + d6 += h0 * r6; + d6 += h1 * r5; + d6 += h2 * r4; + d6 += h3 * r3; + d6 += h4 * r2; + c = (d6 >> 13); + d6 &= mask13; + d6 += h5 * r1; + d6 += h6 * r0; + d6 += h7 * (5 * r9); + d6 += h8 * (5 * r8); + d6 += h9 * (5 * r7); + c += (d6 >> 13); + d6 &= mask13; + + var d7 = c; + d7 += h0 * r7; + d7 += h1 * r6; + d7 += h2 * r5; + d7 += h3 * r4; + d7 += h4 * r3; + c = (d7 >> 13); + d7 &= mask13; + d7 += h5 * r2; + d7 += h6 * r1; + d7 += h7 * r0; + d7 += h8 * (5 * r9); + d7 += h9 * (5 * r8); + c += (d7 >> 13); + d7 &= mask13; + + var d8 = c; + d8 += h0 * r8; + d8 += h1 * r7; + d8 += h2 * r6; + d8 += h3 * r5; + d8 += h4 * r4; + c = (d8 >> 13); + d8 &= mask13; + d8 += h5 * r3; + d8 += h6 * r2; + d8 += h7 * r1; + d8 += h8 * r0; + d8 += h9 * (5 * r9); + c += (d8 >> 13); + d8 &= mask13; + + var d9 = c; + d9 += h0 * r9; + d9 += h1 * r8; + d9 += h2 * r7; + d9 += h3 * r6; + d9 += h4 * r5; + c = (d9 >> 13); + d9 &= mask13; + d9 += h5 * r4; + d9 += h6 * r3; + d9 += h7 * r2; + d9 += h8 * r1; + d9 += h9 * r0; + c += (d9 >> 13); + d9 &= mask13; + + c = (((c << 2) + c)) | 0; + c = (c + d0) | 0; + d0 = c & mask13; + c = (c >> 13); + d1 += c; + + h0 = d0; + h1 = d1; + h2 = d2; + h3 = d3; + h4 = d4; + h5 = d5; + h6 = d6; + h7 = d7; + h8 = d8; + h9 = d9; + + mpos += 16; + bytes -= 16; + } + + _h[0] = h0; + _h[1] = h1; + _h[2] = h2; + _h[3] = h3; + _h[4] = h4; + _h[5] = h5; + _h[6] = h6; + _h[7] = h7; + _h[8] = h8; + _h[9] = h9; + } + + /// Finalizes the Poly1305 authentication process and computes the authentication code (MAC). + /// + /// This method completes the Poly1305 authentication operation, producing the message authentication code (MAC). + /// + /// Parameters: + /// - `mac`: A `List` to store the computed MAC. + /// - `macpos`: An optional parameter that specifies the starting position within the `mac` buffer to store the MAC. + /// + /// Returns: + /// A reference to the `Poly1305` instance, allowing method chaining if needed. + /// + /// This method is used to complete the Poly1305 authentication, and the resulting MAC is stored in the `mac` buffer. + Poly1305 finish(List mac, [int macpos = 0]) { + final g = List.filled(10, 0); + int c; + int mask; + int f; + int i; + + if (_leftover != 0) { + i = _leftover; + _buffer[i++] = 1; + for (; i < 16; i++) { + _buffer[i] = 0; + } + _fin = 1; + _blocks(_buffer, 0, 16); + } + + c = _h[1] >> 13; + _h[1] &= mask13; + for (i = 2; i < 10; i++) { + _h[i] += c; + c = _h[i] >> 13; + _h[i] &= mask13; + } + _h[0] += (c * 5); + c = _h[0] >> 13; + _h[0] &= mask13; + _h[1] += c; + c = _h[1] >> 13; + _h[1] &= mask13; + _h[2] += c; + + g[0] = _h[0] + 5; + c = g[0] >> 13; + g[0] &= mask13; + for (i = 1; i < 10; i++) { + g[i] = _h[i] + c; + c = g[i] >> 13; + g[i] &= mask13; + } + g[9] -= (1 << 13); + + mask = (c ^ 1) - 1; + for (i = 0; i < 10; i++) { + g[i] &= mask; + } + mask = ~mask; + for (i = 0; i < 10; i++) { + _h[i] = (_h[i] & mask) | g[i]; + } + + _h[0] = ((_h[0]) | (_h[1] << 13)) & mask16; + _h[1] = ((_h[1] >> 3) | (_h[2] << 10)) & mask16; + _h[2] = ((_h[2] >> 6) | (_h[3] << 7)) & mask16; + _h[3] = ((_h[3] >> 9) | (_h[4] << 4)) & mask16; + _h[4] = ((_h[4] >> 12) | (_h[5] << 1) | (_h[6] << 14)) & mask16; + _h[5] = ((_h[6] >> 2) | (_h[7] << 11)) & mask16; + _h[6] = ((_h[7] >> 5) | (_h[8] << 8)) & mask16; + _h[7] = ((_h[8] >> 8) | (_h[9] << 5)) & mask16; + + f = _h[0] + _pad[0]; + _h[0] = f & mask16; + for (i = 1; i < 8; i++) { + f = (((_h[i] + _pad[i]) | 0) + (f >> 16)) | 0; + _h[i] = f & mask16; + } + for (int i = 0; i < 8; i++) { + writeUint16LE(_h[i], mac, i * 2); + } + + _finished = true; + return this; + } + + /// Updates the Poly1305 authentication state with additional data from the given `List`. + /// + /// This method incorporates more data into the Poly1305 authentication process, allowing it to be computed incrementally. + /// + /// Parameters: + /// - `data`: A `List` containing the additional data to be included in the authentication calculation. + /// + /// Returns: + /// A reference to the `Poly1305` instance, enabling method chaining for convenience. + /// + /// This method extends the Poly1305 authentication state with the provided data from `data`. + Poly1305 update(List data) { + int mpos = 0; + int bytes = data.length; + int want; + if (_leftover != 0) { + want = (16 - _leftover); + if (want > bytes) { + want = bytes; + } + for (int i = 0; i < want; i++) { + _buffer[_leftover + i] = data[mpos + i] & mask8; + } + bytes -= want; + mpos += want; + _leftover += want; + if (_leftover < 16) { + return this; + } + _blocks(_buffer, 0, 16); + _leftover = 0; + } + + if (bytes >= 16) { + want = bytes - (bytes % 16); + _blocks(data, mpos, want); + mpos += want; + bytes -= want; + } + + if (bytes > 0) { + for (int i = 0; i < bytes; i++) { + _buffer[_leftover + i] = data[mpos + i] & mask8; + } + _leftover += bytes; + } + + return this; + } + + /// Computes and returns the Poly1305 message authentication code (MAC) for the current state. + /// + /// This method finalizes the Poly1305 authentication and produces the authentication code (MAC) based on + /// the current state of the instance. After calling this method, further updates or finishing operations + /// are not allowed. + /// + /// Returns: + /// A `List` containing the computed Poly1305 message authentication code (MAC). + /// + /// Throws: + /// - `StateError` if the `Poly1305` instance was already finished before calling `digest`. + /// + /// This method is used to obtain the final MAC from the current Poly1305 state, and it should not be called + /// after the `Poly1305` instance has been finished. + List digest() { + if (_finished) { + throw StateError("Poly1305 was finished"); + } + List mac = List.filled(16, 0); + finish(mac); + return mac; + } + + /// Cleans up and resets the internal state of the Poly1305 instance. + /// + /// This method is used to securely clear sensitive data and prepare the instance for reuse or disposal. + /// + /// Returns: + /// A reference to the `Poly1305` instance, allowing method chaining if needed. + /// + /// This method zeros and resets the internal buffers, counters, and flags of the Poly1305 instance + /// to ensure that sensitive data is securely cleared and the instance is marked as finished. + Poly1305 clean() { + zero(_buffer); + zero(_r); + zero(_h); + zero(_pad); + _leftover = 0; + _fin = 0; + _finished = true; + return this; + } + + /// Computes a Poly1305 authentication code (MAC) for the provided data using the given key. + /// + /// This static method simplifies the process of generating a Poly1305 authentication code (MAC) for a + /// specific data set and key. + /// + /// Parameters: + /// - `key`: A `List` representing the key used for Poly1305 authentication. + /// - `data`: A `List` containing the data to be authenticated. + /// + /// Returns: + /// A `List` containing the computed Poly1305 authentication code (MAC). + /// + /// This method creates a `Poly1305` instance initialized with the provided key, updates it with the data, + /// computes the MAC, and then cleans up the instance before returning the MAC. + static List auth(List key, List data) { + Poly1305 h = Poly1305(key); + h.update(data); + List digest = h.digest(); + h.clean(); + return digest; + } +} diff --git a/lib/crypto/crypto/prng/fortuna.dart b/lib/crypto/crypto/prng/fortuna.dart new file mode 100644 index 0000000..b233062 --- /dev/null +++ b/lib/crypto/crypto/prng/fortuna.dart @@ -0,0 +1,141 @@ +import 'dart:math'; + +import 'package:blockchain_utils/crypto/crypto/aes/aes.dart'; +import 'package:blockchain_utils/crypto/crypto/ctr/ctr.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/crypto/crypto/scrypt/scrypt.dart'; + +/// The `GenerateRandom` typedef defines a function signature for generating random data with a specified length. +typedef GenerateRandom = List Function(int length); + +/// The `FortunaPRNG` class represents an implementation of the Fortuna pseudorandom number generator (PRNG) algorithm. +/// +/// Fortuna is a cryptographic PRNG designed to provide a strong source of randomness, suitable for various +/// security and cryptographic applications. +/// +/// The class includes methods for initializing and generating random data. +class FortunaPRNG { + late final List _key = List.filled(32, 0); + late final List _counter = List.filled(16, 0); + final List _zeroBlock = List.filled(16, 0); + final List _out = List.filled(16, 0); + int _c = 0; + + static List _generateSeed([int digestLen = 32]) { + final rand = Random.secure(); + final seed = List.filled(digestLen, 0); + for (int i = 0; i < seed.length; i++) { + seed[i] = rand.nextInt(256); + } + return seed; + } + + /// Constructor for the `FortunaPRNG` class, initializing the pseudorandom number generator (PRNG). + /// + /// This constructor sets up the `FortunaPRNG` instance with an optional initial seed for randomness. + /// + /// Parameters: + /// - `seed`: An optional `List` seed used to initialize the PRNG. If not provided, the PRNG will be + /// initialized with a secure random seed. + /// + /// Example Usage: + /// ```dart + /// // Initialize a FortunaPRNG instance with a custom seed. + /// List customSeed = // Provide your custom seed here. + /// FortunaPRNG prng = FortunaPRNG(customSeed); + /// + /// // Initialize a FortunaPRNG instance with a secure random seed. + /// FortunaPRNG prng = FortunaPRNG(); + /// ``` + /// + /// This constructor allows you to create a `FortunaPRNG` instance with a specified initial seed for randomness. + /// If no seed is provided, the PRNG is initialized with a secure random seed. + FortunaPRNG([List? seed]) { + _initKey(seed); + } + + void _initKey([List? seed]) { + final sc = Scrypt(16384, 8, 1); + final k = + sc.derive(seed ?? SHA3.hash(_generateSeed(32)), _generateSeed(32), 32); + _key.setAll(0, k); + _generateBlocks(_out, 1); + } + + void _generateBlocks(List out, int n) { + if (n == 0) { + return; + } + + if (n > 65536) { + throw Exception('Size is too large!'); + } + + final tempBlock = List.filled(32, 0); + + for (int i = 0; i < n; i++) { + _encryptBlock(_counter, 16, _zeroBlock, _key, tempBlock); + out.setRange(i * 16, i * 16 + 16, tempBlock); + _count(); + } + + final newKey = List.filled(32, 0); + + _encryptBlock(_counter, 16, _zeroBlock, _key, tempBlock); + newKey.setRange(0, 16, tempBlock); + _count(); + + _encryptBlock(_counter, 16, _zeroBlock, _key, tempBlock); + newKey.setRange(16, 32, tempBlock); + _count(); + + _key.setAll(0, newKey); + } + + void _count() { + for (int i = 0; i < _counter.length; i++) { + _counter[i] += 1; + } + } + + void _encryptBlock(List input, int inputLength, List iv, + List key, List output) { + final ctr = CTR(AES(key), iv); + ctr.streamXOR(input, output); + } + + /// Generates and returns the next 8 bits (1 byte) of pseudorandom data from the Fortuna PRNG. + /// + /// If the internal buffer is exhausted, this method generates new blocks of random data to replenish it. + /// + /// Returns: + /// An integer representing the next 8 bits (1 byte) of pseudorandom data. + /// + /// This method is used to obtain a single byte of pseudorandom data from the Fortuna PRNG. + int get nextUint8 { + if (_c == _out.length) { + final out = List.filled(16, 0); + _generateBlocks(out, 1); + _out.setAll(0, out); + _c = 0; + } + return _out[_c++]; + } + + /// Generates and returns a `List` containing pseudorandom data of the specified length from the Fortuna PRNG. + /// + /// Parameters: + /// - `length`: An integer specifying the desired length of the pseudorandom data in bytes. + /// + /// Returns: + /// A `List` containing the requested pseudorandom data. + /// + /// This method is used to generate and return a sequence of pseudorandom bytes of the specified length. + List nextBytes(int length) { + final out = List.filled(length, 0); + for (int i = 0; i < length; i++) { + out[i] = nextUint8; + } + return out; + } +} diff --git a/lib/crypto/crypto/schnorrkel/keys/keys.dart b/lib/crypto/crypto/schnorrkel/keys/keys.dart new file mode 100644 index 0000000..da8a1e6 --- /dev/null +++ b/lib/crypto/crypto/schnorrkel/keys/keys.dart @@ -0,0 +1,1024 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/utils/ed25519_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/ristretto_point.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/crypto/crypto/prng/fortuna.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/utils/ristretto_utils.dart' + as ristretto_tools; +import 'package:blockchain_utils/crypto/crypto/schnorrkel/merlin/transcript.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/compare/compare.dart'; + +/// The `ExpansionMode` enum defines different expansion modes used in Schnorr signatures (Schnorrkel). +/// +/// Schnorr signatures are a cryptographic signature scheme, and the choice of expansion mode can impact key generation and signing. +/// +/// - `uniform`: A mode for generating keys and signatures with uniform randomness. +/// - `ed25519`: A mode that follows the Ed25519 specification for key generation and signing. +enum ExpansionMode { + uniform, + ed25519, +} + +/// The `VRFInOut` class represents the input and output data of a Verifiable Random Function (VRF) computation. +/// +/// VRF is a cryptographic construction used to generate a verifiable proof of a random value. +/// +/// Members: +/// - `_input`: A `List` containing the input data for the VRF computation. +/// - `_output`: A `List` containing the output data of the VRF computation. +/// +/// This class provides methods and properties to access and manipulate the input and output data. +class VRFInOut { + /// Private constructor to create a `VRFInOut` instance with input and output data. + VRFInOut._(this._input, this._output); + final List _input; + final List _output; + + /// Gets a copy of the input data as a `List`. + List get input => List.from(_input); + + /// Gets a copy of the output data as a `List`. + List get output => List.from(_output); + + /// Converts the output data into a RistrettoPoint point. + RistrettoPoint get outputPoint => RistrettoPoint.fromBytes(output); + + /// Converts the input data into a RistrettoPoint point. + RistrettoPoint get inputPoint => RistrettoPoint.fromBytes(input); + + /// Converts the `VRFInOut` instance into a `List` by concatenating the input and output data. + List toBytes() { + return List.from([..._input, ..._output]); + } +} + +/// The `VRFProof` class represents a Verifiable Random Function (VRF) proof, consisting of two components 'c' and 's'. +/// +/// VRF is a cryptographic construction used to generate a verifiable proof of a random value. +/// +/// Members: +/// - `_c`: A `List` containing the 'c' component of the VRF proof. +/// - `_s`: A `List` containing the 's' component of the VRF proof. +/// +/// This class provides methods and properties to access and manipulate the components of the VRF proof. +class VRFProof { + /// Private constructor to create a `VRFProof` instance with 'c' and 's' components. + VRFProof._(this._c, this._s); + + /// Creates a `VRFProof` instance from a byte representation. + /// The input bytes are expected to be properly formatted for a VRF proof. + factory VRFProof.fromBytes(List bytes) { + _KeyUtils._checkKeysBytes( + bytes, SchnorrkelKeyCost.vrfProofLength, "VRF proof"); + final c = bytes.sublist(0, 32); + final s = bytes.sublist(32); + if (!_KeyUtils.isCanonical(c) || !_KeyUtils.isCanonical(s)) { + throw ArgumentError("invalid VRF proof bytes"); + } + return VRFProof._(c, s); + } + final List _c; + final List _s; + + /// Gets a copy of the 'c' component as a `List`. + List get c => List.from(_c); + + /// Gets a copy of the 's' component as a `List`. + List get s => List.from(_s); + + /// Converts the 'c' component into a `BigInt`. + BigInt get cBigint => BigintUtils.fromBytes(c, byteOrder: Endian.little); + + /// Converts the 's' component into a `BigInt`. + BigInt get sBigint => BigintUtils.fromBytes(s, byteOrder: Endian.little); + + /// Converts the `VRFProof` instance into a `List` by concatenating the 'c' and 's' components. + List toBytes() { + return List.from([..._c, ..._s]); + } +} + +/// The `SchnorrkelKeyCost` class defines various constants related to the sizes and lengths of Schnorrkel keys and components. +/// +/// Schnorrkel is a cryptographic signature scheme, and these constants help manage and understand the sizes of key components. +class SchnorrkelKeyCost { + /// Length of a VRF (Verifiable Random Function) proof in bytes. + static const int vrfProofLength = 64; + + /// Length of a mini-secret key in bytes. + static const int miniSecretLength = 32; + + /// Length of a nonce in bytes. + static const int nonceLength = 32; + + /// Length of a public key in bytes. + static const int publickeyLength = 32; + + /// Length of a secret key in bytes. + static const int secretKeyLength = 64; + + /// Length of a key pair (combined public and secret key) in bytes. + static const int keypairLength = 96; + + /// Length of a Schnorrkel signature in bytes. + static const int signatureLength = 64; +} + +/// A collection of static utility methods for performing cryptographic operations. +class _KeyUtils { + /// Checks if the length of the input bytes matches the expected length and throws an error if not. + /// + /// Parameters: + /// - `bytes`: The list of bytes to check. + /// - `expected`: The expected length of the bytes. + /// - `name`: A descriptive name for the byte data, used in error messages. + static void _checkKeysBytes(List bytes, int expected, String name) { + if (bytes.length != expected) { + throw ArgumentError( + "invalid $name bytes length expected $expected but ${bytes.length}"); + } + } + + /// Divides a scalar value represented by a byte array by the cofactor of the curve. + /// + /// Parameters: + /// - `s`: A byte array representing the scalar value. + /// + /// Returns: + /// A new byte array with the scalar divided by the cofactor. + static List divideScalarByCofactor(List s) { + int l = s.length - 1; + int low = 0; + for (int i = 0; i < s.length; i++) { + int r = s[l - i] & 0x07; // remainder + s[l - i] >>= 3; + s[l - i] += low; + low = r << 5; + } + + return s; + } + + /// Multiplies a scalar value represented by a byte array by the cofactor of the curve. + /// + /// Parameters: + /// - `scalar`: A byte array representing the scalar value. + static void multiplyScalarBytesByCofactor(List scalar) { + int high = 0; + for (int i = 0; i < scalar.length; i++) { + int r = scalar[i] & 0xE0; // carry bits (0xE0 is binary 11100000) + scalar[i] <<= 3; // multiply by 8 + scalar[i] += high; + high = r >> 5; + } + } + + /// Checks whether a given byte array represents a canonical value in the context of Ed25519 cryptography. + /// + /// In Ed25519, canonical values must have their highest bit unset and should be the result of scalar reduction. + /// + /// Parameters: + /// - `bytes`: A byte array to be checked for canonical representation. + /// + /// Returns: + /// A boolean indicating whether the byte array is a canonical representation in Ed25519 cryptography. + /// + /// This method checks if the highest bit of the last byte is unset (bitwise AND with 127) and if the byte array + /// is equal to the result of scalar reduction. If both conditions are met, the value is considered canonical. + static bool isCanonical(List bytes) { + bytes[31] &= 127; + bool highBitUnset = (bytes[31] >> 7 & 0) == 0; + bool isCanonical = bytesEqual(bytes, Ed25519Utils.scalarReduce(bytes)); + if (highBitUnset && isCanonical) { + return true; + } + return false; + } +} + +/// The `SchnorrkelMiniSecretKey` class represents a mini-secret key used for generating Schnorr key pairs. +/// +/// In the Schnorrkel signature scheme, a mini-secret key is used to generate Schnorr key pairs, +/// which consist of a public key and a corresponding secret key. +/// +/// Members: +/// - `_bytes`: A `List` containing the bytes of the mini-secret key. +/// +/// This class provides methods for creating, converting, and validating mini-secret keys used in +/// the generation of Schnorr key pairs. +class SchnorrkelMiniSecretKey { + /// Private constructor to create a `SchnorrkelMiniSecretKey` instance with bytes. + SchnorrkelMiniSecretKey._(this._bytes); + final List _bytes; + + /// Converts the mini-secret key to a `List`. + List toBytes() => List.from(_bytes); + + /// Creates a `SchnorrkelMiniSecretKey` instance from a byte representation. + /// The input bytes are expected to have the correct length for a mini-secret key. + /// + /// Parameters: + /// - `keyBytes`: A byte array representing the mini-secret key. + /// + /// Returns: + /// A `SchnorrkelMiniSecretKey` instance. + factory SchnorrkelMiniSecretKey.fromBytes(List keyBytes) { + _KeyUtils._checkKeysBytes( + keyBytes, SchnorrkelKeyCost.miniSecretLength, "mini secret key"); + return SchnorrkelMiniSecretKey._(keyBytes); + } + + /// The `_expandEd25519` method expands the mini-secret key into a Schnorrkel secret key + /// following the Ed25519 method for expansion. + /// + /// In Ed25519 expansion, the mini-secret key is hashed using SHA-512, and the result is + /// then manipulated to create a Schnorrkel secret key. + /// + /// Returns: + /// A `SchnorrkelSecretKey` instance derived from the mini-secret key expansion. + SchnorrkelSecretKey _expandEd25519() { + final toHash = SHA512.hash(_bytes); + final key = toHash.sublist(0, 32); + key[0] &= 248; + key[31] &= 63; + key[31] |= 64; + final r = _KeyUtils.divideScalarByCofactor(key); + return SchnorrkelSecretKey(r, toHash.sublist(32)); + } + + /// The `_expandUniform` method expands the mini-secret key into a Schnorrkel secret key + /// following a uniform expansion method. + /// + /// In uniform expansion, a cryptographic transcript is used to create the Schnorrkel secret key. + /// The transcript incorporates the mini-secret key to ensure uniform randomness. + /// + /// Returns: + /// A `SchnorrkelSecretKey` instance derived from the mini-secret key expansion using uniform expansion. + SchnorrkelSecretKey _expandUniform() { + final script = MerlinTranscript("ExpandSecretKeys"); + script.additionalData("mini".codeUnits, toBytes()); + + final key = script.toBytesWithReduceScalar("sk".codeUnits, 64); + + final nonce = script.toBytes("no".codeUnits, 32); + return SchnorrkelSecretKey(key.sublist(0, 32), nonce.sublist(0, 32)); + } + + /// Converts the `SchnorrkelSecretKey` into a full secret key using a specified expansion mode. + /// + /// The expansion mode determines how the mini-secret key is expanded into a Schnorrkel secret key. + /// + /// Parameters: + /// - `mode` (optional): The expansion mode for converting the mini-secret key. Default is `ExpansionMode.ed25519`. + /// + /// Returns: + /// A `SchnorrkelSecretKey` instance representing the full secret key. + /// + /// Example Usage: + /// ```dart + /// SchnorrkelSecretKey miniSecretKey = ...; + /// SchnorrkelSecretKey secretKey = miniSecretKey.toSecretKey(ExpansionMode.ed25519); + /// ``` + /// + /// The `toSecretKey` method allows the conversion of a mini-secret key into a full Schnorrkel secret key using + /// the specified expansion mode, which can be either `ExpansionMode.ed25519` or `ExpansionMode.uniform`. + /// Depending on the mode chosen, a different expansion method is applied. + SchnorrkelSecretKey toSecretKey( + [ExpansionMode mode = ExpansionMode.ed25519]) { + if (mode == ExpansionMode.ed25519) { + return _expandEd25519(); + } + return _expandUniform(); + } +} + +/// The `SchnorrkelSecretKey` class represents a Schnorrkel secret key used for cryptographic operations. +/// +/// A Schnorrkel secret key consists of two components: a secret key and a nonce. +/// +/// Members: +/// - `_key`: A `List` containing the secret key component. +/// - `_nonce`: A `List` containing the nonce component. +/// +/// This class provides a constructor for creating Schnorrkel secret keys, validating the input components, +/// and ensuring the canonical form of the key. +class SchnorrkelSecretKey { + /// Private constructor to create a `SchnorrkelSecretKey` instance with secret key and nonce components. + SchnorrkelSecretKey._(this._key, this._nonce); + + /// Creates a `SchnorrkelSecretKey` instance from provided secret key and nonce components. + /// + /// Parameters: + /// - `key`: A byte array representing the secret key. + /// - `nonce`: A byte array representing the nonce. + /// + /// Returns: + /// A `SchnorrkelSecretKey` instance if the input components are valid and in canonical form. + /// + /// Throws: + /// - An `ArgumentError` if the input components are invalid or not in canonical form. + factory SchnorrkelSecretKey(List key, List nonce) { + _KeyUtils._checkKeysBytes( + key, SchnorrkelKeyCost.miniSecretLength, "mini secret key"); + _KeyUtils._checkKeysBytes(nonce, SchnorrkelKeyCost.nonceLength, "nonce"); + if (_KeyUtils.isCanonical(key)) { + return SchnorrkelSecretKey._(key, nonce); + } + throw ArgumentError("invalid key"); + } + + /// Creates a `SchnorrkelSecretKey` instance from a byte representation of a secret key. + /// + /// Parameters: + /// - `secretKeyBytes`: A byte array representing the secret key. + /// + /// Returns: + /// A `SchnorrkelSecretKey` instance derived from the provided byte representation. + /// + /// Throws: + /// - An `ArgumentError` if the byte array does not have the correct length for a secret key. + factory SchnorrkelSecretKey.fromBytes(List secretKeyBytes) { + _KeyUtils._checkKeysBytes( + secretKeyBytes, SchnorrkelKeyCost.secretKeyLength, "secret key"); + + return SchnorrkelSecretKey( + secretKeyBytes.sublist(0, SchnorrkelKeyCost.miniSecretLength), + secretKeyBytes.sublist(SchnorrkelKeyCost.miniSecretLength, + SchnorrkelKeyCost.secretKeyLength)); + } + + /// Creates a `SchnorrkelSecretKey` instance from a byte representation of an Ed25519 secret key. + /// + /// Parameters: + /// - `secretKeyBytes`: A byte array representing an Ed25519 secret key. + /// + /// Returns: + /// A `SchnorrkelSecretKey` instance derived from the provided Ed25519 secret key representation. + /// + /// Throws: + /// - An `ArgumentError` if the byte array does not have the correct length for a secret key. + factory SchnorrkelSecretKey.fromEd25519(List secretKeyBytes) { + _KeyUtils._checkKeysBytes( + secretKeyBytes, SchnorrkelKeyCost.secretKeyLength, "secret key"); + final newKey = List.from( + secretKeyBytes.sublist(0, SchnorrkelKeyCost.miniSecretLength)); + _KeyUtils.divideScalarByCofactor(newKey); + return SchnorrkelSecretKey( + newKey, + secretKeyBytes.sublist(SchnorrkelKeyCost.miniSecretLength, + SchnorrkelKeyCost.secretKeyLength)); + } + final List _key; + final List _nonce; + + /// The `toBytes` method converts the Schnorrkel secret key into a byte representation. + /// + /// Returns: + /// A `List` containing the byte representation of the Schnorrkel secret key, including both the secret key + /// and the nonce components. + List toBytes() { + return List.from([..._key, ..._nonce]); + } + + /// The `key` method returns the secret key component of the Schnorrkel secret key. + /// + /// Returns: + /// A `List` containing the secret key component. + List key() => List.from(_key); + + /// The `nonce` method returns the nonce component of the Schnorrkel secret key. + /// + /// Returns: + /// A `List` containing the nonce component. + List nonce() => List.from(_nonce); + + /// The `publicKey` method derives the corresponding public key from the Schnorrkel secret key. + /// + /// This method follows the process of computing the public key by first converting the secret key to a big integer, + /// performing scalar multiplication with the Ed25519 generator point, and converting the resulting point + /// to a RistrettoPoint format. Finally, the public key is returned as a `SchnorrkelPublicKey` instance. + /// + /// Returns: + /// A `SchnorrkelPublicKey` representing the derived public key associated with this Schnorrkel secret key. + SchnorrkelPublicKey publicKey() { + /// Convert the secret key to a big integer in little-endian byte order. + final tobig = BigintUtils.fromBytes(key(), byteOrder: Endian.little); + + /// Perform scalar multiplication with the Ed25519 generator point. + final gn = Curves.generatorED25519 * tobig; + + /// Convert the result to a RistrettoPoint format. + final pubPoint = RistrettoPoint.fromEdwardsPoint(gn); + + /// Convert the RistrettoPoint point to bytes and create a Schnorrkel public key. + final pubBytes = pubPoint.toBytes(); + return SchnorrkelPublicKey(pubBytes); + } + + /// The `toEd25519Bytes` method converts the Schnorrkel secret key into a byte representation + /// following the Ed25519 format, suitable for use in Ed25519 operations. + /// + /// This method modifies the secret key by multiplying it by the cofactor and then combines it with the nonce + /// to create a byte array in the Ed25519 format. + /// + /// Returns: + /// A `List` containing the byte representation of the Schnorrkel secret key in Ed25519 format. + /// + /// This byte representation is suitable for compatibility with Ed25519 operations. + List toEd25519Bytes() { + final k = key(); + + /// Multiply the secret key by the cofactor. + _KeyUtils.multiplyScalarBytesByCofactor(k); + return List.from([...k, ...nonce()]); + } + + /// Derives a new Schnorrkel secret key and chain code from the current secret key, chain code, and an optional message. + /// + /// This method performs a hard derivation following the Schnorrkel RistrettoPoint Hierarchical Deterministic Key Derivation (HDKD) scheme. + /// + /// Parameters: + /// - `chainCode`: A chain code used in the derivation. + /// - `message` (optional): An optional byte array message used in the derivation. Default is an empty byte array. + /// - `mode` (optional): The expansion mode for converting the mini-secret key. Default is `ExpansionMode.ed25519`. + /// + /// Returns: + /// A tuple containing a new Schnorrkel secret key and a new chain code, derived from the current secret key, chain code, and message. + /// + /// Example Usage: + /// ```dart + /// List chainCode = ...; + /// SchnorrkelSecretKey currentSecretKey = ...; + /// List message = ...; + /// var (newSecretKey, newChainCode) = currentSecretKey.hardDerive(chainCode, message); + /// ``` + /// + /// The `hardDerive` method follows the Schnorrkel RistrettoPoint HDKD scheme to derive a new Schnorrkel secret key and chain code. + /// It combines the current secret key, chain code, and an optional message to compute the new secret key and chain code. + /// The `mode` parameter allows specifying the expansion mode for converting the mini-secret key. + (SchnorrkelSecretKey, List) hardDerive(List chainCode, + {List? message, ExpansionMode mode = ExpansionMode.ed25519}) { + final script = MerlinTranscript("SchnorrRistrettoHDKD"); + script.additionalData('sign-bytes'.codeUnits, message ?? List.empty()); + script.additionalData("chain-code".codeUnits, chainCode); + script.additionalData("secret-key".codeUnits, key()); + final newSecret = script.toBytes("HDKD-hard".codeUnits, 32); + final newChainCode = script.toBytes("HDKD-chaincode".codeUnits, 32); + return ( + SchnorrkelMiniSecretKey.fromBytes(newSecret).toSecretKey(mode), + newChainCode + ); + } + + /// Derives a new Schnorrkel secret key and chain code from the current secret key, chain code, and an optional message. + /// + /// This method performs a soft derivation following the Schnorrkel RistrettoPoint Hierarchical Deterministic Key Derivation (HDKD) scheme. + /// + /// Parameters: + /// - `chainCode`: A chain code used in the derivation. + /// - `message` (optional): An optional byte array message used in the derivation. Default is an empty byte array. + /// - `nonceGenerator` (optional): A function that generates a nonce. Default is a function that generates a random 32-byte nonce. + /// + /// Returns: + /// A tuple containing a new Schnorrkel secret key and a new chain code, derived from the current secret key, chain code, and message. + /// + /// Example Usage: + /// ```dart + /// List chainCode = ...; + /// SchnorrkelSecretKey currentSecretKey = ...; + /// List message = ...; + /// GenerateRandom? customNonceGenerator = (length) => ...; + /// var (newSecretKey, newChainCode) = currentSecretKey.softDerive(chainCode, message, customNonceGenerator); + /// ``` + /// + /// The `softDerive` method follows the Schnorrkel RistrettoPoint HDKD scheme to derive a new Schnorrkel secret key and chain code. + /// It combines the current secret key, chain code, and an optional message to compute the new secret key and chain code. + /// The `nonceGenerator` parameter allows specifying a custom function to generate a nonce. + (SchnorrkelSecretKey, List) softDerive(List chainCode, + {List? message, GenerateRandom? nonceGenerator}) { + final derivePub = publicKey()._deriveScalarAndChainCode(chainCode, message); + final nonce = nonceGenerator?.call(32) ?? QuickCrypto.generateRandom(32); + if (nonce.length != 32) { + throw ArgumentError("invalid random bytes length"); + } + final newKey = ristretto_tools.add(key(), derivePub.$1); + final combine = List.from([...newKey, ...nonce]); + return (SchnorrkelSecretKey.fromBytes(combine), derivePub.$2); + } + + /// Signs a message using the Schnorrkel secret key and a specified signing context script. + /// + /// This method generates a Schnorrkel signature for a given message by appending context-specific information + /// to the signing context script and combining it with a nonce. + /// + /// Parameters: + /// - `signingContextScript`: A transcript containing context-specific information for the signature. + /// - `nonceGenerator` (optional): A function that generates a nonce. Default is a function that generates a random 64-byte nonce. + /// + /// Returns: + /// A `SchnorrkelSignature` representing the generated signature. + /// + /// Example Usage: + /// ```dart + /// MerlinTranscript signingContextScript = ...; + /// SchnorrkelSecretKey secretKey = ...; + /// GenerateRandom? customNonceGenerator = (length) => ...; + /// SchnorrkelSignature signature = secretKey.sign(signingContextScript, customNonceGenerator); + /// ``` + /// + /// The `sign` method generates a Schnorrkel signature for a message by incorporating context-specific information + /// from the signing context script, a nonce, and the secret key. It returns a `SchnorrkelSignature` instance. + SchnorrkelSignature sign(MerlinTranscript signingContextScript, + {GenerateRandom? nonceGenerator}) { + signingContextScript.additionalData( + "proto-name".codeUnits, "Schnorr-sig".codeUnits); + signingContextScript.additionalData( + "sign:pk".codeUnits, publicKey().toBytes()); + final nonceRand = + nonceGenerator?.call(64) ?? QuickCrypto.generateRandom(64); + if (nonceRand.length != 64) { + throw ArgumentError("invalid random bytes length"); + } + final nonceBytes = Ed25519Utils.scalarReduce(nonceRand); + final nonceBigint = + BigintUtils.fromBytes(nonceBytes, byteOrder: Endian.little); + final r = + RistrettoPoint.fromEdwardsPoint(Curves.generatorED25519 * nonceBigint); + signingContextScript.additionalData("sign:R".codeUnits, r.toBytes()); + final k = + signingContextScript.toBytesWithReduceScalar("sign:c".codeUnits, 64); + final km = ristretto_tools.mul(key(), k); + final s = ristretto_tools.add(km, nonceBytes); + final sig = SchnorrkelSignature._(s, r.toBytes()); + return sig; + } + + /// Generates a Verifiable Random Function (VRF) output and its proof for a given transcript. + /// + /// This method generates a VRF output and its corresponding proof for a provided transcript by performing + /// VRF computations using the secret key and the transcript's context-specific information. + /// + /// Parameters: + /// - `script`: A transcript containing context-specific information for VRF signing. + /// + /// Returns: + /// A tuple containing a `VRFInOut` representing the VRF output and a `VRFProof` as its proof. + /// + /// Example Usage: + /// ```dart + /// MerlinTranscript script = ...; + /// SchnorrkelSecretKey secretKey = ...; + /// var (vrfOutput, vrfProof) = secretKey.vrfSign(script); + /// ``` + /// + /// The `vrfSign` method generates a VRF output and its proof for a given transcript using the secret key and context-specific information. + /// It returns a tuple with the VRF output and its proof. + (VRFInOut, VRFProof) vrfSign(MerlinTranscript script, + {GenerateRandom? nonceGenerator, bool kusamaVRF = true}) { + final publicHashPoint = publicKey().vrfHash(script); + final keyBig = BigintUtils.fromBytes(key(), byteOrder: Endian.little); + final mul = publicHashPoint * keyBig; + final vrf = VRFInOut._(publicHashPoint.toBytes(), mul.toBytes()); + return ( + vrf, + dleqProve(vrf, nonceGenerator: nonceGenerator, kusamaVRF: kusamaVRF) + ); + } + + /// Generates a Discrete Logarithm Equality Proof (DLEQ) for a Verifiable Random Function (VRF) output. + /// + /// This method generates a DLEQ proof for a given VRF output, ensuring the equality of discrete logarithms of + /// specific points in the VRF computation. + /// + /// Parameters: + /// - `out`: A `VRFInOut` containing the VRF output to prove. + /// - `kusamaVRF` (optional): A boolean indicating whether to include the public key in the DLEQ proof. + /// Default is `true` for Kusama VRF compatibility. + /// - `nonceGenerator` (optional): A function that generates a nonce. Default is a function that generates a random 64-byte nonce. + /// + /// Returns: + /// A `VRFProof` representing the DLEQ proof. + /// + /// Example Usage: + /// ```dart + /// VRFInOut vrfOutput = ...; + /// SchnorrkelSecretKey secretKey = ...; + /// var dleqProof = secretKey.dleqProve(vrfOutput); + /// ``` + /// + /// The `dleqProve` method generates a DLEQ proof for a VRF output, ensuring the equality of discrete logarithms between + /// specific points in the VRF computation. It returns a `VRFProof` instance. + VRFProof dleqProve(VRFInOut out, + {bool kusamaVRF = true, GenerateRandom? nonceGenerator}) { + final script = MerlinTranscript("VRF"); + script.additionalData("proto-name".codeUnits, "DLEQProof".codeUnits); + script.additionalData("vrf:h".codeUnits, out.input); + if (!kusamaVRF) { + script.additionalData("vrf:pk".codeUnits, publicKey().toBytes()); + } + final nonce = nonceGenerator?.call(64) ?? QuickCrypto.generateRandom(64); + if (nonce.length != 64) { + throw ArgumentError("invalid random bytes length"); + } + final n = Ed25519Utils.scalarReduce(nonce); + final scalar = BigintUtils.fromBytes(n, byteOrder: Endian.little); + final mult = + RistrettoPoint.fromEdwardsPoint(Curves.generatorED25519 * scalar); + script.additionalData("vrf:R=g^r".codeUnits, mult.toBytes()); + final inputPoint = RistrettoPoint.fromBytes(out.input); + final hr = inputPoint * scalar; + script.additionalData("vrf:h^r".codeUnits, hr.toBytes()); + if (kusamaVRF) { + script.additionalData("vrf:pk".codeUnits, publicKey().toBytes()); + } + script.additionalData("vrf:h^sk".codeUnits, out.output); + final c = script.toBytesWithReduceScalar("prove".codeUnits, 64); + final multiply = ristretto_tools.mul(c, key()); + final s = ristretto_tools.sub(n, multiply); + + return VRFProof._(c, s); + } +} + +/// Represents a Schnorrkel public key used for verifying signatures. +/// +/// A Schnorrkel public key is a cryptographic key used for signature verification. This class encapsulates the +/// functionality to create and work with Schnorrkel public keys. +/// +/// Usage: +/// ```dart +/// // Create a Schnorrkel public key from bytes. +/// List publicKeyBytes = ...; +/// SchnorrkelPublicKey publicKey = SchnorrkelPublicKey(publicKeyBytes); +/// ``` +/// +/// The `SchnorrkelPublicKey` class allows you to create a Schnorrkel public key from bytes and provides methods for +/// key validation. +class SchnorrkelPublicKey { + /// Private constructor for creating a `SchnorrkelPublicKey` instance. + SchnorrkelPublicKey._(this._publicKey); + + /// Creates a `SchnorrkelPublicKey` from the given byte representation. + /// + /// Parameters: + /// - `keyBytes`: A byte array representing the Schnorrkel public key. + /// + /// Returns: + /// A `SchnorrkelPublicKey` instance created from the provided byte array. + factory SchnorrkelPublicKey(List keyBytes) { + _KeyUtils._checkKeysBytes( + keyBytes, SchnorrkelKeyCost.publickeyLength, "public key"); + RistrettoPoint.fromBytes(keyBytes); + return SchnorrkelPublicKey._(keyBytes); + } + final List _publicKey; + + /// Converts the Schnorrkel public key to a byte representation. + /// + /// This method returns a byte array representing the Schnorrkel public key. + /// + /// Returns: + /// A `List` containing the byte representation of the Schnorrkel public key. + /// + /// Example Usage: + /// ```dart + /// SchnorrkelPublicKey publicKey = ...; + /// List publicKeyBytes = publicKey.toBytes(); + /// ``` + List toBytes() { + return List.from(_publicKey); + } + + /// This method derives a scalar and chain code from the Schnorrkel public key, an optional message, and a provided chain code. + /// It is used in hierarchical deterministic key derivation scenarios. + /// + /// Parameters: + /// - `chainCode`: A chain code used in the derivation. + /// - `message` (optional): An optional byte array message used in the derivation. Default is an empty byte array. + /// + /// Returns: + /// A tuple containing the derived scalar and chain code. + /// + /// Example Usage: + /// ```dart + /// SchnorrkelPublicKey publicKey = ...; + /// List chainCode = ...; + /// List message = ...; + /// var (scalar, derivedChainCode) = publicKey._deriveScalarAndChainCode(chainCode, message); + /// ``` + /// + /// The `_deriveScalarAndChainCode` method is used for hierarchical deterministic key derivation (HDKD) + /// and returns a tuple with the derived scalar and chain code. + (List, List) _deriveScalarAndChainCode(List chainCode, + [List? message]) { + final script = MerlinTranscript("SchnorrRistrettoHDKD"); + script.additionalData('sign-bytes'.codeUnits, message ?? List.empty()); + script.additionalData("chain-code".codeUnits, chainCode); + script.additionalData("public-key".codeUnits, toBytes()); + final newKey = script.toBytesWithReduceScalar("HDKD-scalar".codeUnits, 64); + final newChainCode = script.toBytes("HDKD-chaincode".codeUnits, 32); + return (newKey, newChainCode); + } + + /// Derives a new Schnorrkel public key and chain code using hierarchical deterministic key derivation (HDKD). + /// + /// This method derives a new Schnorrkel public key and chain code from the current public key, an optional message, + /// and a provided chain code. It is used for hierarchical deterministic key derivation scenarios. + /// + /// Parameters: + /// - `chainCode`: A chain code used in the derivation. + /// - `message` (optional): An optional byte array message used in the derivation. Default is an empty byte array. + /// + /// Returns: + /// A tuple containing the derived Schnorrkel public key and chain code. + /// + /// Example Usage: + /// ```dart + /// SchnorrkelPublicKey currentPublicKey = ...; + /// List chainCode = ...; + /// List message = ...; + /// var (derivedPublicKey, derivedChainCode) = currentPublicKey.derive(chainCode, message); + /// ``` + /// + /// The `derive` method is used for hierarchical deterministic key derivation (HDKD) + /// and returns a tuple with the derived Schnorrkel public key and chain code. + (SchnorrkelPublicKey, List) derive(List chainCode, + [List? message]) { + final derive = _deriveScalarAndChainCode(chainCode, message); + final newKeyBigint = + BigintUtils.fromBytes(derive.$1, byteOrder: Endian.little); + final p = toPoint() + (Curves.generatorED25519 * newKeyBigint); + return (SchnorrkelPublicKey(p.toBytes()), derive.$2); + } + + /// Converts the Schnorrkel public key to a RistrettoPoint point. + /// + /// This method converts the Schnorrkel public key to a RistrettoPoint point, allowing further cryptographic operations. + /// + /// Returns: + /// A `RistrettoPoint` point representation of the Schnorrkel public key. + /// + /// Example Usage: + /// ```dart + /// SchnorrkelPublicKey publicKey = ...; + /// RistrettoPoint ristrettoPoint = publicKey.toPoint(); + /// ``` + /// + /// The `toPoint` method is used to convert a Schnorrkel public key to a RistrettoPoint point for cryptographic operations + RistrettoPoint toPoint() { + return RistrettoPoint.fromBytes(toBytes()); + } + + /// Verifies a Schnorrkel signature using the public key and a transcript. + /// + /// This method verifies a Schnorrkel signature by appending context-specific information from the signing context + /// script and performing the necessary cryptographic operations. It checks the validity of the provided signature. + /// + /// Parameters: + /// - `signature`: The Schnorrkel signature to be verified. + /// - `signingContextScript`: A transcript containing context-specific information for signature verification. + /// + /// Returns: + /// A boolean indicating whether the signature is valid (true) or not (false). + /// + /// Example Usage: + /// ```dart + /// SchnorrkelPublicKey publicKey = ...; + /// SchnorrkelSignature signature = ...; + /// MerlinTranscript signingContextScript = ...; + /// bool isSignatureValid = publicKey.verify(signature, signingContextScript); + /// ``` + /// + /// The `verify` method is used to verify a Schnorrkel signature using the public key and context-specific information. + /// It returns `true` if the signature is valid, and `false` otherwise + bool verify( + SchnorrkelSignature signature, MerlinTranscript signingContextScript) { + signingContextScript.additionalData( + "proto-name".codeUnits, "Schnorr-sig".codeUnits); + signingContextScript.additionalData("sign:pk".codeUnits, toBytes()); + signingContextScript.additionalData("sign:R".codeUnits, signature.r); + final kBigint = signingContextScript.toBigint("sign:c".codeUnits, 64); + final r = ((-toPoint()) * kBigint) + + (Curves.generatorED25519 * signature.sBigint); + return bytesEqual(r.toBytes(), signature.r); + } + + /// Verifies a Verifiable Random Function (VRF) output and its proof. + /// + /// This method verifies the validity of a VRF output and its corresponding proof by comparing it to a transcript and the provided proof. + /// + /// Parameters: + /// - `script`: A transcript containing context-specific information used for VRF verification. + /// - `output`: The VRF output to be verified. + /// - `proof`: The proof associated with the VRF output. + /// + /// Returns: + /// A boolean indicating whether the VRF output and its proof are valid (true) or not (false). + /// + /// Example Usage: + /// ```dart + /// MerlinTranscript script = ...; + /// List vrfOutput = ...; + /// VRFProof proof = ...; + /// bool isVRFValid = vrfVerify(script, vrfOutput, proof); + /// ``` + /// + /// The `vrfVerify` method is used to verify the validity of a Verifiable Random Function (VRF) output and its proof + /// by comparing it to a transcript and the provided proof. It returns `true` if the output and proof are valid, + /// and `false` otherwise. + bool vrfVerify(MerlinTranscript script, List output, VRFProof proof) { + final publicPointHash = vrfHash(script); + final vrf = VRFInOut._(publicPointHash.toBytes(), output); + final vrifyScript = MerlinTranscript("VRF"); + return dleqVerify(vrifyScript, vrf, proof); + } + + /// Verifies a Discrete Logarithm Equality (DLEQ) proof for a Verifiable Random Function (VRF) output. + /// + /// This method verifies the validity of a DLEQ proof for a VRF output by comparing it to a transcript and the provided proof. + /// + /// Parameters: + /// - `script`: A transcript containing context-specific information used for DLEQ proof verification. + /// - `out`: The VRF input and output pair to be verified. + /// - `proof`: The DLEQ proof associated with the VRF output. + /// - `isKusamaVRF` (optional): A boolean indicating whether it's a Kusama VRF. Default is true. + /// + /// Returns: + /// A boolean indicating whether the DLEQ proof for the VRF output is valid (true) or not (false). + /// + /// Example Usage: + /// ```dart + /// MerlinTranscript script = ...; + /// VRFInOut vrfInOut = ...; + /// VRFProof proof = ...; + /// bool isDLEQProofValid = dleqVerify(script, vrfInOut, proof); + /// ``` + /// + /// The `dleqVerify` method is used to verify the validity of a Discrete Logarithm Equality (DLEQ) + /// proof for a Verifiable Random Function (VRF) output by comparing it to a transcript and the provided proof. + /// It returns `true` if the DLEQ proof is valid, and `false` otherwise. + bool dleqVerify(MerlinTranscript script, VRFInOut out, VRFProof proof, + {bool isKusamaVRF = true}) { + script.additionalData("proto-name".codeUnits, "DLEQProof".codeUnits); + script.additionalData("vrf:h".codeUnits, out.input); + if (!isKusamaVRF) { + script.additionalData("vrf:pk".codeUnits, toBytes()); + } + final pr = + (toPoint() * proof.cBigint) + (Curves.generatorED25519 * proof.sBigint); + script.additionalData("vrf:R=g^r".codeUnits, pr.toBytes()); + final hr = + (out.outputPoint * proof.cBigint) + (out.inputPoint * proof.sBigint); + script.additionalData("vrf:h^r".codeUnits, hr.toBytes()); + if (isKusamaVRF) { + script.additionalData("vrf:pk".codeUnits, toBytes()); + } + script.additionalData("vrf:h^sk".codeUnits, out.output); + final c = script.toBytesWithReduceScalar("prove".codeUnits, 64); + return bytesEqual(c, proof.c); + } + + /// Computes a VRF (Verifiable Random Function) hash using a transcript. + /// + /// This method computes a VRF hash by appending a Schnorrkel public key to the provided transcript, extracting 64 bytes, and converting it into a RistrettoPoint point. + /// + /// Parameters: + /// - `script`: A transcript containing context-specific information for the VRF hash computation. + /// + /// Returns: + /// A RistrettoPoint point representing the VRF hash. + /// + /// Example Usage: + /// ```dart + /// MerlinTranscript script = ...; + /// SchnorrkelPublicKey publicKey = ...; + /// RistrettoPoint vrfHashPoint = publicKey.vrfHash(script); + /// ``` + /// + /// The `vrfHash` method is used to compute a VRF hash by appending the public key to a transcript + /// and extracting the resulting hash as a RistrettoPoint point. + RistrettoPoint vrfHash(MerlinTranscript script) { + script.additionalData("vrf-nm-pk".codeUnits, toBytes()); + final hashPoint = + RistrettoPoint.fromUniform(script.toBytes("VRFHash".codeUnits, 64)); + return hashPoint; + } +} + +/// Represents a Schnorrkel key pair, consisting of a secret key and a public key. +/// +/// A Schnorrkel key pair is used for various cryptographic operations, including signing and verification. +/// +/// Constructors: +/// - `SchnorrkelKeypair.fromBytes(List bytes)`: Creates a key pair from raw bytes. +/// - `SchnorrkelKeypair.fromEd25519(List bytes)`: Creates a key pair from Ed25519 key bytes. +/// +/// Example Usage: +/// ```dart +/// List keyPairBytes = ...; +/// SchnorrkelKeypair keyPair = SchnorrkelKeypair.fromBytes(keyPairBytes); +/// SchnorrkelPublicKey publicKey = keyPair.publicKey(); +/// SchnorrkelSecretKey secretKey = keyPair.secretKey(); +/// ``` +/// +/// The `SchnorrkelKeypair` class represents a key pair used for Schnorrkel cryptographic operations. +/// It includes methods for obtaining the public and secret keys. +class SchnorrkelKeypair { + SchnorrkelKeypair._(this._secretKey, this._publicKey); + final List _secretKey; + final List _publicKey; + + /// Creates a key pair from raw bytes. + factory SchnorrkelKeypair.fromBytes(List bytes) { + _KeyUtils._checkKeysBytes( + bytes, SchnorrkelKeyCost.keypairLength, "keypair"); + final secret = SchnorrkelSecretKey.fromBytes( + bytes.sublist(0, SchnorrkelKeyCost.secretKeyLength)); + final public = SchnorrkelPublicKey(bytes.sublist( + SchnorrkelKeyCost.secretKeyLength, SchnorrkelKeyCost.keypairLength)); + return SchnorrkelKeypair._(secret.toBytes(), public.toBytes()); + } + + /// Creates a key pair from Ed25519 key bytes. + factory SchnorrkelKeypair.fromEd25519(List bytes) { + _KeyUtils._checkKeysBytes( + bytes, SchnorrkelKeyCost.keypairLength, "keypair"); + final secret = SchnorrkelSecretKey.fromEd25519( + bytes.sublist(0, SchnorrkelKeyCost.secretKeyLength)); + final public = SchnorrkelPublicKey(bytes.sublist( + SchnorrkelKeyCost.secretKeyLength, SchnorrkelKeyCost.keypairLength)); + return SchnorrkelKeypair._(secret.toBytes(), public.toBytes()); + } + + /// public key + SchnorrkelPublicKey publicKey() { + return SchnorrkelPublicKey(List.from(_publicKey)); + } + + /// secret key + SchnorrkelSecretKey secretKey() { + return SchnorrkelSecretKey.fromBytes(List.from(_secretKey)); + } +} + +/// Represents a Schnorrkel digital signature. +/// +/// A Schnorrkel digital signature is used to verify the authenticity and integrity of data in various cryptographic applications. +/// +/// Constructors: +/// - `SchnorrkelSignature.fromBytes(List signatureBytes)`: Creates a signature from raw bytes. +/// +/// Example Usage: +/// ```dart +/// List signatureBytes = ...; +/// SchnorrkelSignature signature = SchnorrkelSignature.fromBytes(signatureBytes); +/// ``` +/// +/// The `SchnorrkelSignature` class represents a Schnorrkel digital signature and provides a constructor for creating a signature from raw bytes. + +class SchnorrkelSignature { + /// Creates a signature from raw bytes. + factory SchnorrkelSignature.fromBytes(List signatureBytes) { + _KeyUtils._checkKeysBytes( + signatureBytes, SchnorrkelKeyCost.signatureLength, "signature"); + final r = signatureBytes.sublist(0, 32); + final s = signatureBytes.sublist(32, SchnorrkelKeyCost.signatureLength); + if (s[31] & 128 == 0) { + throw ArgumentError( + "Signature not marked as schnorrkel, maybe try ed25519 instead."); + } + + if (_KeyUtils.isCanonical(s)) { + return SchnorrkelSignature._(s, r); + } + throw ArgumentError("invalid signature"); + } + + /// private constructor + SchnorrkelSignature._(this._s, this._r); + final List _s; + final List _r; + + /// Converts the signature to raw bytes with a schnorrkel marker. + List toBytes() { + final inBytes = List.from([..._r, ..._s]); + inBytes[63] |= 128; + return inBytes; + } + + /// Returns the 'r' component of the signature. + List get r => List.from(_r); + + /// Returns the 's' component of the signature. + List get s => List.from(_s); + + /// Converts the 'r' component to a BigInt. + BigInt get rBigint => BigintUtils.fromBytes(r, byteOrder: Endian.little); + + /// Converts the 's' component to a BigInt. + BigInt get sBigint => BigintUtils.fromBytes(s, byteOrder: Endian.little); +} diff --git a/lib/crypto/crypto/schnorrkel/merlin/transcript.dart b/lib/crypto/crypto/schnorrkel/merlin/transcript.dart new file mode 100644 index 0000000..adb6a1a --- /dev/null +++ b/lib/crypto/crypto/schnorrkel/merlin/transcript.dart @@ -0,0 +1,144 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/utils/ed25519_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/schnorrkel/strobe/strobe.dart'; +import 'package:blockchain_utils/binary/binary_operation.dart'; + +/// A transcript object for the Merlin cryptographic protocol. +/// +/// The `MerlinTranscript` class provides a convenient way to create and manage a transcript for the Merlin cryptographic protocol. +/// It is initialized with an application label and uses a Strobe instance for cryptographic operations. +/// +/// Parameters: +/// - `appLabel`: A string representing the application label to differentiate different transcripts. +/// +/// Usage: +/// ```dart +/// String appLabel = "MyApp"; +/// MerlinTranscript transcript = MerlinTranscript(appLabel); +/// // Create a transcript for the "MyApp" application. +/// ``` +/// +/// This class simplifies the process of managing transcripts for cryptographic protocols and is commonly used for secure communication and cryptographic operations. +class MerlinTranscript { + static const String merlinVersion = "Merlin v1.0"; + + /// The Strobe instance used for cryptographic operations. + MerlinTranscript(String label) + : strobe = Strobe(merlinVersion, StobeSecParam.sec128) { + additionalData("dom-sep".codeUnits, label.codeUnits); + } + final Strobe strobe; + + /// Appends additional data to the transcript for the Merlin cryptographic protocol. + /// + /// This method allows you to include additional data in the transcript, + /// which is often used in cryptographic protocols to provide context or metadata for the protocol's operation. + /// It appends a label and a message to the transcript. + /// + /// Parameters: + /// - `label`: A list of integers representing the label for the additional data. + /// - `message`: A list of integers representing the actual additional data message. + /// + /// Usage: + /// ```dart + /// MerlinTranscript transcript = MerlinTranscript("MyApp"); + /// transcript.additionalData("user-id".codeUnits, "Alice".codeUnits); + /// // Include additional data in the transcript with the label "user-id" and the message "Alice." + /// ``` + /// + /// This method ensures that the additional data is properly formatted and included in the transcript, + /// making it available for cryptographic operations + void additionalData(List label, List message) { + final size = List.filled(4, 0); + writeUint32LE(message.length, size); + List labelSize = [...label, ...size]; + strobe.additionalData(true, labelSize); + strobe.additionalData(false, message); + } + + /// Generates pseudo-random bytes based on the current transcript state. + /// + /// This method produces pseudo-random bytes using the current state of the transcript. + /// The generated bytes can be used for various cryptographic purposes. + /// It takes a label and an output length as parameters and appends the label to the transcript. + /// + /// Parameters: + /// - `label`: A list of integers representing the label for the pseudo-random data. + /// - `outLen`: The length of the pseudo-random data to generate, specified as an integer. + /// + /// Returns: + /// A `List` containing the pseudo-random bytes of the specified length. + /// + /// Usage: + /// ```dart + /// MerlinTranscript transcript = MerlinTranscript("MyApp"); + /// List randomBytes = transcript.toBytes("nonce".codeUnits, 16); + /// // Generate 16 bytes of pseudo-random data with the label "nonce." + /// ``` + /// + /// This method appends the label to the transcript, + /// ensuring that it influences the generation of pseudo-random bytes. + /// The generated data is suitable for cryptographic operations. + List toBytes(List label, int outLen) { + final len = List.filled(4, 0); + writeUint32LE(outLen, len); + List labelSize = [...label, ...len]; + strobe.additionalData(true, labelSize); + + List outBytes = strobe.pseudoRandomData(outLen); + return BytesUtils.toBytes(outBytes); + } + + /// Generates pseudo-random bytes and reduces them using scalar reduction. + /// + /// This method generates pseudo-random bytes based on the current transcript state and applies scalar + /// reduction to the output. Scalar reduction ensures that the result is a valid scalar value used in cryptographic operations. + /// It takes a label and an output length as parameters and appends the label to the transcript. + /// + /// Parameters: + /// - `label`: A list of integers representing the label for the pseudo-random data. + /// - `outLen`: The length of the pseudo-random data to generate, specified as an integer. + /// + /// Returns: + /// A `List` containing the pseudo-random bytes of the specified length after scalar reduction. + /// + /// Usage: + /// ```dart + /// MerlinTranscript transcript = MerlinTranscript("MyApp"); + /// List randomScalar = transcript.toBytesWithReduceScalar("scalar".codeUnits, 32); + /// // Generate 32 bytes of pseudo-random data with the label "scalar," and reduce the result to a valid scalar value. + /// ``` + /// + /// This method is particularly useful for generating random scalars used in cryptographic operations. + List toBytesWithReduceScalar(List label, int outLen) { + return Ed25519Utils.scalarReduce(toBytes(label, outLen)); + } + + /// Converts pseudo-random bytes into a `BigInt` with scalar reduction. + /// + /// This method generates pseudo-random bytes using the `toBytesWithReduceScalar` method and then converts + /// those bytes into a `BigInt`. It's commonly used to obtain a random scalar value suitable for cryptographic operations. + /// + /// Parameters: + /// - `label`: A list of integers representing the label for the pseudo-random data. + /// - `outLen`: The length of the pseudo-random data to generate, specified as an integer. + /// + /// Returns: + /// A `BigInt` obtained from the pseudo-random bytes after scalar reduction. + /// + /// Usage: + /// ```dart + /// MerlinTranscript transcript = MerlinTranscript("MyApp"); + /// BigInt randomScalar = transcript.toBigint("scalar".codeUnits, 32); + /// // Generate 32 bytes of pseudo-random data with the label "scalar," reduce the result, and convert it into a BigInt. + /// ``` + /// + /// This method is useful for obtaining random scalar values for cryptographic applications. + BigInt toBigint(List label, int outLen) { + return BigintUtils.fromBytes(toBytesWithReduceScalar(label, outLen), + byteOrder: Endian.little); + } +} diff --git a/lib/crypto/crypto/schnorrkel/shnorrkel.dart b/lib/crypto/crypto/schnorrkel/shnorrkel.dart new file mode 100644 index 0000000..cb630d3 --- /dev/null +++ b/lib/crypto/crypto/schnorrkel/shnorrkel.dart @@ -0,0 +1,14 @@ +/// The 'schnorrkel' library provides tools for working with the Schnorrkel +/// digital signature scheme, including key management and cryptographic functions. +library schnorrkel; + +/// Export statement for Schnorrkel key management components. +export 'keys/keys.dart'; + +/// Export statement for the Schnorrkel Merlin transcript, which is used for +/// creating transcripts to be used in the signature process. +export 'merlin/transcript.dart'; + +/// Export statement for the Schnorrkel Strobe framework, which provides +/// cryptographic primitives for building the Schnorrkel digital signature scheme. +export 'strobe/strobe.dart'; diff --git a/lib/crypto/crypto/schnorrkel/strobe/strobe.dart b/lib/crypto/crypto/schnorrkel/strobe/strobe.dart new file mode 100644 index 0000000..ba26d2d --- /dev/null +++ b/lib/crypto/crypto/schnorrkel/strobe/strobe.dart @@ -0,0 +1,552 @@ +import 'package:blockchain_utils/binary/binary_operation.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +enum StobeSecParam { + /// 128-bit security level + sec128(128), + + /// 256-bit security level + sec256(256); + + final int value; + const StobeSecParam(this.value); +} + +/// Class representing Strobe operation flags. +class StrobeFlags { + /// Flag indicating an initiation operation. + static const int I = 1; + + /// Flag indicating an "AD" (associated data) operation. + static const int A = 2; + + /// Flag indicating a "cipher" operation. + static const int C = 4; + + static const int T = 8; + + /// Flag indicating a "meta-ad" operation. + static const int M = 16; + + /// Flag indicating a "key" operation. + static const int K = 32; +} + +/// enum representing Strobe operations. +enum StrobeOperation { + /// Provide associated data + ad(StrobeFlags.A), + + /// Provide cipher key + key(StrobeFlags.A | StrobeFlags.C), + + /// Pseudo-Random Function (I | A | C) + prf(StrobeFlags.I | StrobeFlags.A | StrobeFlags.C), + + /// Send cleartext data + sendClr(StrobeFlags.A | StrobeFlags.T), + + /// Receive cleartext data + recvClr(StrobeFlags.I | StrobeFlags.A | StrobeFlags.T), + + /// Send encrypted data + sendEnc(StrobeFlags.A | StrobeFlags.C | StrobeFlags.T), + + /// Receive encrypted data + recvEnc(StrobeFlags.I | StrobeFlags.A | StrobeFlags.C | StrobeFlags.T), + + /// Send message authentication code + sendMac(StrobeFlags.C | StrobeFlags.T), + + /// Receive message authentication code + recvMac(StrobeFlags.I | StrobeFlags.C | StrobeFlags.T), + + /// Prevent rollback + ratchet(StrobeFlags.C); + + final int value; + + const StrobeOperation(this.value); +} + +/// Strobe is a cryptographic framework for building secure, stateful, and authenticated cryptographic protocols. +/// Strobe-128/1600 and Strobe-256/1600 for standards compliance. +class Strobe { + static const String version = "STROBEv1.0.2"; + + Strobe._({ + required this.rate, + required this.strober, + required int io, + int curFlags = 0, + required int posBegin, + bool initialized = false, + List buffer = const [], + List storage = const [], + List temp = const [], + }) : _initialized = initialized, + _st = storage, + _buffer = buffer, + _curFlags = curFlags, + _posBegin = posBegin, + _io = io; + + final int rate; + final int strober; + + bool _initialized = false; + int _posBegin; + int _io; + + int _curFlags; + // state + final List _state = List.filled(200, 0); + List _buffer; + final List _st; + + /// Create a new instance of the Strobe protocol with the specified parameters. + /// + /// This factory constructor is used to initialize a Strobe instance with the given `customizationString` and `security` level. It performs the necessary setup and configuration for the Strobe protocol with the specified security level. + /// + /// Parameters: + /// - `customizationString`: A string used to customize the Strobe instance. + /// - `security`: The desired security level, which can be either 128 or 256 bits. + /// + /// Returns: + /// A new Strobe instance configured with the provided `customizationString` and `security` level. + /// + /// Throws: + /// - `ArgumentError` if the `security` level is not 128 or 256 bits, indicating an invalid security level. + /// + /// Example Usage: + /// ```dart + /// Strobe strobeInstance = Strobe("MyCustomizationString", 128); + /// ``` + /// + /// This factory constructor ensures that the Strobe instance is properly initialized and configured based on the provided parameters, allowing it to be used for secure protocol operations. + factory Strobe(String customizationString, StobeSecParam security) { + final int rate = (1600 ~/ 8) - security.value ~/ 4; + Strobe s = Strobe._( + io: 2, + rate: rate, + strober: rate - 2, + posBegin: 0, + curFlags: 0, + storage: List.filled(rate, 0), + temp: List.filled(rate, 0), + buffer: List.empty(growable: true), + ); + List domain = [1, rate, 1, 0, 1, 12 * 8]; + domain.addAll(version.codeUnits); + + s._duplex(domain, false, false, true); + + s._initialized = true; + s.operate( + true, StrobeOperation.ad, customizationString.codeUnits, 0, false); + + return s; + } + + /// Runs the permutation function on the internal state + void _run() { + if (_initialized) { + if (_buffer.length > strober) { + throw Exception("strobe: buffer is never supposed to reach strobeR"); + } + _buffer.add(_posBegin); + _buffer.add(0x04); + _st.setAll(0, _buffer); + int zerosStart = _buffer.length; + _buffer = _st.sublist(0, rate); + for (int i = zerosStart; i < rate; i++) { + _buffer[i] = 0; + } + _buffer[rate - 1] ^= 0x80; + _st.setAll(0, _buffer); + _xor(_state, _buffer); + } else if (_buffer.isNotEmpty) { + int zerosStart = _buffer.length; + _buffer = _st.sublist(0, rate); + for (int i = zerosStart; i < rate; i++) { + _buffer[i] = 0; + } + + _xor(_state, _buffer); + } + Keccack.keccackF1600(_state); + + // _temp.setAll(0, _state.sublist(0, _temp.length)); + _buffer.clear(); + + _posBegin = 0; + } + + /// Adjust direction information so that sender and receiver agree + void _op(int flags) { + if (flags & StrobeFlags.T != 0) { + if (_io == 2) { + _io = flags & StrobeFlags.I; + } + flags ^= _io; + } + final oldBegin = _posBegin; + _posBegin = (_buffer.length + 1) & mask8; // s.pos + 1 + final forceF = (flags & (StrobeFlags.C | StrobeFlags.K) != 0); + _duplex(List.from([oldBegin, flags]), false, false, forceF); + } + + /// STROBE main duplexing mode. + void _duplex(List data, bool cbefore, bool cafter, bool forceF) { + int todo; + + while (data.isNotEmpty) { + todo = strober - _buffer.length; + if (todo > data.length) { + todo = data.length; + } + + if (cbefore) { + // _temp.setAll(0, _state.sublist(0, _temp.length)); + + for (int idx = 0; idx < todo; idx++) { + data[idx] ^= _state[_buffer.length + idx]; + } + } + + _buffer.addAll(data.sublist(0, todo)); + _st.setAll(0, _buffer); + + if (cafter) { + // _temp.setAll(0, _state.sublist(0, _temp.length)); + for (int idx = 0; idx < todo; idx++) { + data[idx] ^= _state[_buffer.length - todo + idx]; + } + } + data = data.sublist(todo); + + if (_buffer.length == strober) { + _run(); + } + } + + if (forceF && _buffer.isNotEmpty) { + _run(); + } + } + + // static void _xor(List state, List b) { + // print("b $b $state"); + // int n = b.length ~/ 8; + // for (int i = 0; i < n; i++) { + // BigInt a = BigInt.zero; + // for (int j = 0; j < 8; j++) { + // a |= BigInt.from((b[i * 8 + j] & 0xFF)) << (j * 8); + // } + // state[i] = (state[i] ^ a) & mask64; + // } + // print("estate $state"); + // throw Exception(); + // } + void _xor(List state, List b) { + assert(b.length == 168); + for (int i = 0; i < b.length; i++) { + state[i] = (state[i] ^ b[i]) & mask8; + } + } + + /// STROBE main duplexing mode. + List operate(bool meta, StrobeOperation operation, List dataConst, + int length, bool more) { + int flags = operation.value; + + if (meta) { + flags |= StrobeFlags.M; + } + + List data; + if (((flags & (StrobeFlags.I | StrobeFlags.T)) != + (StrobeFlags.I | StrobeFlags.T)) && + ((flags & (StrobeFlags.I | StrobeFlags.A)) != StrobeFlags.A)) { + if (length == 0) { + throw Exception("A length should be set for this operation."); + } + data = List.filled(length, 0); + } else { + if (length != 0) { + throw Exception( + "Output length must be zero except for PRF, send_MAC, and RATCHET operations."); + } + data = List.from(dataConst); + } + if (more) { + if (flags != _curFlags) { + throw Exception("Flag should be the same when streaming operations."); + } + } else { + // If `more` isn't set, this is a new operation. Do the begin_op sequence + _op(flags); + _curFlags = flags; + } + + // Operation + bool cAfter = ((flags & (StrobeFlags.C | StrobeFlags.I | StrobeFlags.T)) == + (StrobeFlags.C | StrobeFlags.T)); + bool cBefore = ((flags & StrobeFlags.C) != 0) && (!cAfter); + + _duplex(data, cBefore, cAfter, false); + if ((flags & (StrobeFlags.I | StrobeFlags.A)) == + (StrobeFlags.I | StrobeFlags.A)) { + return data; + } else if ((flags & (StrobeFlags.I | StrobeFlags.T)) == StrobeFlags.T) { + return data; + } else if ((flags & (StrobeFlags.I | StrobeFlags.A | StrobeFlags.T)) == + (StrobeFlags.I | StrobeFlags.T)) { + if (more) { + throw Exception( + "Not supposed to check a MAC with the 'more' streaming option"); + } + int failures = 0; + for (int dataByte in data) { + failures |= dataByte; + } + return List.from([failures]); // 0 if correct, 1 if not + } + + return List.empty(); + } + + /// Set a key for the Strobe protocol. + /// + /// The `key` method is used to set a key for the Strobe protocol. This key can be used for cryptographic operations within the protocol. + /// + /// Parameters: + /// - `key`: A `List` representing the key to be set. + /// + /// Usage: + /// ```dart + /// List secretKey = ...; // Your secret key. + /// strobeInstance.key(secretKey); + /// // Set the secret key for cryptographic operations. + /// ``` + /// + /// This method is essential for initializing the Strobe protocol with the required key material for secure communication. + void key(List key) { + operate(false, StrobeOperation.key, key, 0, false); + } + + /// Generate pseudo-random data using the PRF operation in Strobe. + /// + /// The `pseudoRandomData` method is used to generate pseudo-random data by invoking the PRF (Pseudo-Random Function) + /// operation in the Strobe protocol. PRF generates cryptographically secure random bytes that can be used for various purposes, + /// such as key derivation or secure random number generation. + /// + /// Parameters: + /// - `outputLen`: The length (in bytes) of the pseudo-random data to generate. + /// + /// Returns: + /// - A `List` containing the generated pseudo-random data. + /// + /// Usage: + /// ```dart + /// int outputLength = 32; // Length of the desired pseudo-random data. + /// List randomData = strobeInstance.pseudoRandomData(outputLength); + /// // Generate pseudo-random data for a specific use case. + /// ``` + /// + /// The `pseudoRandomData` method is suitable for generating random data with high entropy, + /// making it suitable for cryptographic applications. + List pseudoRandomData(int outputLen) { + return operate(false, StrobeOperation.prf, List.empty(), outputLen, false); + } + + /// Encrypt and send data without authentication in Strobe. + /// + /// The `sendUnauthenticatedEncryptedMessage` method is used to encrypt and send data without authentication in the Strobe protocol. + /// This operation is typically used for secure communication where confidentiality is the primary concern, + /// and data integrity is not strictly required. The method encrypts the provided plaintext, + /// updates the internal state of the Strobe instance, and returns the ciphertext. + /// + /// Parameters: + /// - `meta`: A boolean flag indicating whether metadata is included in the operation. + /// - `plaintext`: The plaintext data to be encrypted and sent. + /// + /// Returns: + /// - A `List` containing the ciphertext for the provided plaintext. + /// + /// Usage: + /// ```dart + /// List plaintext = ...; // Data to be encrypted and sent. + /// List ciphertext = strobeInstance.sendEncUnauthenticated(true, plaintext); + /// // Encrypt and send data without authentication. + /// ``` + /// + /// The `sendUnauthenticatedEncryptedMessage` method is suitable for use cases where data confidentiality is the primary concern, and data integrity can be ensured through other means. + List sendUnauthenticatedEncryptedMessage( + bool meta, List plaintext) { + return operate(meta, StrobeOperation.sendEnc, plaintext, 0, false); + } + + /// Receive and process an unauthenticated encrypted message in Strobe. + /// + /// The `recvUnauthenticatedEncryptMessage` method is used to receive and process an unauthenticated encrypted + /// message within the Strobe protocol. This operation is typically used for secure communication where integrity + /// is not a requirement. The method processes the ciphertext, updating the internal state of the Strobe instance + /// and returning the decrypted message. + /// + /// Parameters: + /// - `meta`: A boolean flag indicating whether metadata is included in the operation. + /// - `ciphertext`: The ciphertext to be received and decrypted. + /// + /// Returns: + /// - A `List` containing the decrypted message. + /// + /// Usage: + /// ```dart + /// List ciphertext = ...; // Received unauthenticated ciphertext. + /// List plaintext = strobeInstance.recvUnauthenticatedEncryptMessage(true, ciphertext); + /// // Receive and process unauthenticated encrypted message. + /// ``` + /// + /// The `recvUnauthenticatedEncryptMessage` method is suitable for use cases where encryption is the primary concern, + /// and data integrity is not a strict requirement. + List recvUnauthenticatedEncryptMessage(bool meta, List ciphertext) { + return operate(meta, StrobeOperation.recvEnc, ciphertext, 0, false); + } + + /// Process and add additional data to the Strobe protocol state. + /// + /// The `ad` method is used to process and add additional data (AD) to the Strobe protocol state. + /// Additional data is used to update the protocol state without producing output, often for metadata or configuration purposes. + /// + /// Parameters: + /// - `meta`: A boolean flag indicating whether metadata is included in the operation. + /// - `additionalData`: A list of integers containing the additional data to be processed and added. + /// + /// Usage: + /// ```dart + /// List metadata = ...; // Additional data or metadata to include. + /// strobeInstance.additionalData(true, metadata); + /// // Process and add additional data to the Strobe protocol state. + /// ``` + /// + /// The `additionalData` method is a fundamental operation in the Strobe protocol, + /// allowing you to incorporate additional data into the protocol's internal state without producing output. + void additionalData(bool meta, List additionalData) { + operate(meta, StrobeOperation.ad, additionalData, 0, false); + } + + /// Process and send clear text data within the Strobe protocol. + /// + /// The `sendClearText` method is used to process and send clear text data within the Strobe protocol. + /// It applies operations specific to clear text data and incorporates metadata when necessary, preparing the data for transmission. + /// + /// Parameters: + /// - `meta`: A boolean flag indicating whether metadata is included in the operation. + /// - `cleartext`: A List containing the clear text data to be processed and sent. + /// + /// Usage: + /// ```dart + /// List dataToSend = ...; // Clear text data to send. + /// strobeInstance.sendClearText(true, dataToSend); + /// // Process and send the clear text data within the Strobe protocol. + /// ``` + /// + /// The `sendClearText` method is a crucial part of the Strobe protocol, ensuring that clear text data is properly processed, + /// potentially with metadata, and made ready for transmission. + void sendClearText(bool meta, List cleartext) { + operate(meta, StrobeOperation.sendClr, cleartext, 0, false); + } + + /// Process received clear text within the Strobe protocol. + /// + /// The `receivedClearText` method is used to process received clear text within the Strobe protocol. It applies operations specific to received clear text data while considering the provided metadata. + /// + /// Parameters: + /// - `meta`: A boolean flag indicating whether metadata is included in the operation. + /// - `cleartext`: A List containing the received clear text data to be processed. + /// + /// Usage: + /// ```dart + /// List receivedData = ...; // Received clear text data. + /// strobeInstance.receivedClearText(true, receivedData); + /// // Process the received clear text data within the Strobe protocol. + /// ``` + /// + /// The `receivedClearText` method is essential for handling received clear text data as part of the Strobe protocol, + /// ensuring that the necessary cryptographic operations are applied. + void receivedClearText(bool meta, List cleartext) { + operate(meta, StrobeOperation.recvClr, cleartext, 0, false); + } + + /// Generate and append a Message Authentication Code (MAC) to data in the Strobe protocol. + /// + /// The `sendMac` method is used to generate and append a Message Authentication Code (MAC) to data within the Strobe protocol. + /// This MAC ensures the integrity and authenticity of the data being sent over the communication channel. + /// + /// Parameters: + /// - `meta`: A boolean flag indicating whether metadata is included in the operation. + /// - `outputLength`: The desired output length of the generated MAC. + /// + /// Returns: + /// - A List containing the generated MAC of the specified length. + /// + /// Usage: + /// ```dart + /// int desiredMacLength = 16; // Specify the desired MAC length in bytes. + /// List generatedMac = strobeInstance.sendMac(true, desiredMacLength); + /// // Append the generated MAC to the data to be sent. + /// ``` + /// + /// The `sendMac` method plays a crucial role in ensuring data integrity during the transmission process by generating and appending MACs to the data to be sent. + List sendMac(bool meta, int outputLength) { + return operate( + meta, StrobeOperation.sendMac, List.empty(), outputLength, false); + } + + /// Verify and process a received MAC in the Strobe protocol. + /// + /// The `recvMac` method is used to verify and process a received Message Authentication Code (MAC) within the Strobe protocol. It checks the authenticity of the provided MAC and its metadata to ensure the integrity of the received data. + /// + /// Parameters: + /// - `meta`: A boolean flag indicating whether metadata is included in the operation. + /// - `mac`: The received MAC to be verified. + /// + /// Returns: + /// - `true` if the MAC verification is successful, indicating the received data's integrity. + /// - `false` if the MAC verification fails, suggesting potential data tampering. + /// + /// Usage: + /// ```dart + /// bool isMacValid = strobeInstance.received(true, receivedMac); + /// if (isMacValid) { + /// // Process the received data. + /// } else { + /// // Handle potential data tampering. + /// } + /// ``` + /// + /// The `received` method is an essential part of the Strobe protocol for ensuring the integrity of data received over the communication channel. + bool receivedMac(bool meta, List mac) { + return operate(meta, StrobeOperation.recvMac, mac, 0, false)[0] == 0; + } + + /// Ratchet the Strobe protocol state to enhance security. + /// + /// The `ratchet` method is used to update the Strobe protocol state by invoking the "RATCHET" operation. + /// This operation is typically performed to enhance security by deriving new key material and ensuring forward secrecy. + /// + /// Parameters: + /// - `length`: The length of the key material to derive during the ratchet operation. + /// + /// Usage: + /// ```dart + /// strobeInstance.ratchet(32); // Ratchet the Strobe protocol to derive 32 bytes of key material. + /// ``` + /// + /// The `ratchet` method should be called periodically to advance the Strobe protocol's internal + /// state and derive fresh key material, helping to protect the confidentiality of data. + void ratchet(int length) { + operate(false, StrobeOperation.ratchet, List.empty(), length, false); + } +} diff --git a/lib/crypto/crypto/scrypt/scrypt.dart b/lib/crypto/crypto/scrypt/scrypt.dart new file mode 100644 index 0000000..0f6c092 --- /dev/null +++ b/lib/crypto/crypto/scrypt/scrypt.dart @@ -0,0 +1,291 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/crypto/crypto/hmac/hmac.dart'; +import 'package:blockchain_utils/crypto/crypto/pbkdf2/pbkdf2.dart'; +import 'package:blockchain_utils/binary/binary_operation.dart'; + +/// A class for performing scrypt key derivation. +/// +/// Scrypt is a key derivation function designed to be secure against both hardware and software attacks. +/// It is commonly used for securely deriving encryption keys from user-provided passwords. +/// +/// Fields: +/// - `_xy`: A list of 32-bit unsigned integers representing intermediate data during scrypt key derivation. +/// - `_v`: A list of 32-bit unsigned integers representing additional intermediate data during scrypt key derivation. +/// - `n`: An integer representing the CPU/memory cost parameter. It defines the general work factor for scrypt. +/// - `r`: An integer representing the block size parameter, which specifies the number of iterations and memory size used. +/// - `p`: An integer representing the parallelization parameter, which controls the amount of parallel processing. +class Scrypt { + late final List _xy; + late final List _v; + + late final int n; + late final int r; + late final int p; + + /// Creates a new `Scrypt` instance for key derivation. + /// + /// The `Scrypt` constructor initializes the parameters for scrypt key derivation, which includes the CPU/memory cost parameter (`n`), block size parameter (`r`), and parallelization parameter (`p`). + /// + /// Parameters: + /// - `n`: The CPU/memory cost parameter. It defines the general work factor for scrypt. + /// - `r`: The block size parameter. It specifies the number of iterations and memory size used. + /// - `p`: The parallelization parameter. It controls the amount of parallel processing. + /// + /// Throws an [ArgumentError] if the parameters are out of the valid range or not a power of 2. + Scrypt(this.n, this.r, this.p) { + if (p <= 0) { + throw ArgumentError("scrypt: incorrect p"); + } + + if (r <= 0) { + throw ArgumentError("scrypt: incorrect r"); + } + + if (n < 1 || n > 1 << 31) { + throw ArgumentError('scrypt: N must be between 2 and 2^31'); + } + + if (!_isPowerOfTwo(n)) { + throw ArgumentError("scrypt: N must be a power of 2"); + } + + const maxInt = (1 << 31) & mask32; + + if (r * p >= 1 << 30 || + r > maxInt ~/ 128 ~/ p || + r > maxInt ~/ 256 || + n > maxInt ~/ 128 ~/ r) { + throw ArgumentError("scrypt: parameters are too large"); + } + + _v = List.filled(32 * (n + 2) * r, 0); + _xy = List.filled(_v.length - (32 * n * r), 0); + } + static List deriveKey( + List password, + List salt, { + int dkLen = 32, + int r = 8, + int n = 8192, + int p = 1, + }) { + final s = Scrypt(n, r, p); + return s.derive(password, salt, dkLen); + } + + /// Derives a key from the given `password` and `salt` using scrypt key derivation. + /// + /// This method takes a `password`, a `salt`, + /// and the desired derived key length (`dkLen`) as input and computes the derived key using the + /// scrypt key derivation function. The derived key is returned as a [List]. + /// + /// Parameters: + /// - `password`: The password to use as input for key derivation. + /// - `salt`: A random salt value used to enhance security. + /// - `dkLen`: The desired length (in bytes) of the derived key. + /// + /// Returns: + /// A derived key as a [List]. + List derive(List password, List salt, int dkLen) { + final B = PBKDF2.deriveKey( + mac: () => HMAC(() => SHA256(), password), + salt: salt, + iterations: 1, + length: p * 128 * r); + + for (int i = 0; i < p; i++) { + final index = i * 128 * r; + final copy = B.sublist(index); + _smix(copy, r, n, _v, _xy); + B.setAll(index, copy); + } + + final result = PBKDF2.deriveKey( + mac: () => HMAC(() => SHA256(), password), + salt: B, + iterations: 1, + length: dkLen); + zero(B); + + return result; + } + + static bool _isPowerOfTwo(int x) { + return (x & (x - 1)) == 0; + } + + static void _blockCopy( + List dst, int di, List src, int si, int len) { + while (len-- > 0) { + dst[di++] = src[si++] & mask32; + } + } + + static void _blockXOR(List dst, int di, List src, int si, int len) { + while (len-- > 0) { + dst[di++] ^= src[si++] & mask32; + } + } + + static void _blockMix(List tmp, List B, int bin, int bout, int r) { + _blockCopy(tmp, 0, B, bin + (2 * r - 1) * 16, 16); + for (int i = 0; i < 2 * r; i += 2) { + _salsaXOR(tmp, B, bin + i * 16, bout + i * 8); + _salsaXOR(tmp, B, bin + i * 16 + 16, bout + i * 8 + r * 16); + } + } + + static int _integerify(List b, int bi, int r) { + return b[bi + (2 * r - 1) * 16]; + } + + static int _or(int sum, int n) => + ((sum << n) & mask32) | (sum & mask32) >> (32 - n); + + static void _salsaXOR(List tmp, List B, int bin, int bout) { + int j0 = tmp[0] ^ B[bin++], + j1 = tmp[1] ^ B[bin++], + j2 = tmp[2] ^ B[bin++], + j3 = tmp[3] ^ B[bin++], + j4 = tmp[4] ^ B[bin++], + j5 = tmp[5] ^ B[bin++], + j6 = tmp[6] ^ B[bin++], + j7 = tmp[7] ^ B[bin++], + j8 = tmp[8] ^ B[bin++], + j9 = tmp[9] ^ B[bin++], + j10 = tmp[10] ^ B[bin++], + j11 = tmp[11] ^ B[bin++], + j12 = tmp[12] ^ B[bin++], + j13 = tmp[13] ^ B[bin++], + j14 = tmp[14] ^ B[bin++], + j15 = tmp[15] ^ B[bin++]; + int x0 = j0, + x1 = j1, + x2 = j2, + x3 = j3, + x4 = j4, + x5 = j5, + x6 = j6, + x7 = j7, + x8 = j8, + x9 = j9, + x10 = j10, + x11 = j11, + x12 = j12, + x13 = j13, + x14 = j14, + x15 = j15; + int u; + for (var i = 0; i < 8; i += 2) { + u = x0 + x12; + x4 ^= _or(u, 7); + u = x4 + x0; + x8 ^= _or(u, 9); + u = x8 + x4; + x12 ^= _or(u, 13); + u = x12 + x8; + x0 ^= _or(u, 18); + u = x5 + x1; + x9 ^= _or(u, 7); + u = x9 + x5; + x13 ^= _or(u, 9); + u = x13 + x9; + x1 ^= _or(u, 13); + u = x1 + x13; + x5 ^= _or(u, 18); + u = x10 + x6; + x14 ^= _or(u, 7); + u = x14 + x10; + x2 ^= _or(u, 9); + u = x2 + x14; + x6 ^= _or(u, 13); + u = x6 + x2; + x10 ^= _or(u, 18); + u = x15 + x11; + x3 ^= _or(u, 7); + u = x3 + x15; + x7 ^= _or(u, 9); + u = x7 + x3; + x11 ^= _or(u, 13); + u = x11 + x7; + x15 ^= _or(u, 18); + u = x0 + x3; + x1 ^= _or(u, 7); + u = x1 + x0; + x2 ^= _or(u, 9); + u = x2 + x1; + x3 ^= _or(u, 13); + u = x3 + x2; + x0 ^= _or(u, 18); + u = x5 + x4; + x6 ^= _or(u, 7); + u = x6 + x5; + x7 ^= _or(u, 9); + u = x7 + x6; + x4 ^= _or(u, 13); + u = x4 + x7; + x5 ^= _or(u, 18); + u = x10 + x9; + x11 ^= _or(u, 7); + u = x11 + x10; + x8 ^= _or(u, 9); + u = x8 + x11; + x9 ^= _or(u, 13); + u = x9 + x8; + x10 ^= _or(u, 18); + u = x15 + x14; + x12 ^= _or(u, 7); + u = x12 + x15; + x13 ^= _or(u, 9); + u = x13 + x12; + x14 ^= _or(u, 13); + u = x14 + x13; + x15 ^= _or(u, 18); + } + B[bout++] = tmp[0] = (x0 + j0) & mask32; + B[bout++] = tmp[1] = (x1 + j1) & mask32; + B[bout++] = tmp[2] = (x2 + j2) & mask32; + B[bout++] = tmp[3] = (x3 + j3) & mask32; + B[bout++] = tmp[4] = (x4 + j4) & mask32; + B[bout++] = tmp[5] = (x5 + j5) & mask32; + B[bout++] = tmp[6] = (x6 + j6) & mask32; + B[bout++] = tmp[7] = (x7 + j7) & mask32; + B[bout++] = tmp[8] = (x8 + j8) & mask32; + B[bout++] = tmp[9] = (x9 + j9) & mask32; + B[bout++] = tmp[10] = (x10 + j10) & mask32; + B[bout++] = tmp[11] = (x11 + j11) & mask32; + B[bout++] = tmp[12] = (x12 + j12) & mask32; + B[bout++] = tmp[13] = (x13 + j13) & mask32; + B[bout++] = tmp[14] = (x14 + j14) & mask32; + B[bout++] = tmp[15] = (x15 + j15) & mask32; + } + + static void _smix(List B, int r, int N, List V, List xy) { + var xi = 0; + var yi = 32 * r; + var tmp = List.filled(16, 0); + + for (var i = 0; i < 32 * r; i++) { + V[i] = readUint32LE(B, i * 4); + } + + for (var i = 0; i < N; i++) { + _blockMix(tmp, V, i * (32 * r), (i + 1) * (32 * r), r); + } + xy.setRange(0, xy.length, V.sublist(32 * N * r)); + + for (int i = 0; i < N; i += 2) { + int j = _integerify(xy, xi, r) & (N - 1); + _blockXOR(xy, xi, V, j * (32 * r), 32 * r); + _blockMix(tmp, xy, xi, yi, r); + j = _integerify(xy, yi, r) & (N - 1); + _blockXOR(xy, yi, V, j * (32 * r), 32 * r); + _blockMix(tmp, xy, yi, xi, r); + } + for (int i = 0; i < 32 * r; i++) { + writeUint32LE(xy[xi + i], B, i * 4); + } + + zero(tmp); + } +} diff --git a/lib/crypto/crypto/x_modem_crc/x_modem_crc.dart b/lib/crypto/crypto/x_modem_crc/x_modem_crc.dart new file mode 100644 index 0000000..5f6d9d4 --- /dev/null +++ b/lib/crypto/crypto/x_modem_crc/x_modem_crc.dart @@ -0,0 +1,48 @@ +import 'package:blockchain_utils/binary/binary_operation.dart'; + +/// A class for calculating and verifying XModem CRC (Cyclic Redundancy Check). +/// +/// XModem CRC is a simple error-checking algorithm often used for file +/// transfers. This class provides methods to calculate and verify the CRC value +/// for data blocks. +class XModemCrc { + static List _calculateXmodemCrc(List bytes) { + int crc = 0; + for (int byte in bytes) { + crc = crc ^ byte << 8; + for (int i = 0; i < 8; i++) { + if ((crc & 0x8000) != 0) { + crc = (crc << 1) ^ 0x1021; + } else { + crc <<= 1; + } + } + } + + // Convert the 16-bit CRC integer to a List with two bytes + final crcBytes = List.filled(2, 0); + crcBytes[0] = (crc >> 8) & mask8; + crcBytes[1] = crc & mask8; + + return crcBytes; + } + + /// Calculates the XModem CRC (Cyclic Redundancy Check) for the given [data]. + /// + /// This method computes the CRC value for a block of data using the XModem CRC + /// algorithm and returns the result as a 16-bit [List]. + /// + /// Parameters: + /// - [data]: The data block for which to calculate the CRC. + /// + /// Returns: + /// A 16-bit CRC value as a List. + static List quickDigest(List data) { + return _calculateXmodemCrc(data); + } + + /// Returns the size of the XModem CRC digest, which is always 2 bytes (16 bits). + static int get digestSize { + return 2; + } +} diff --git a/lib/crypto/ec_encryption.dart b/lib/crypto/ec_encryption.dart deleted file mode 100644 index 41fd5bf..0000000 --- a/lib/crypto/ec_encryption.dart +++ /dev/null @@ -1,270 +0,0 @@ -import 'dart:typed_data'; -import "package:blockchain_utils/formating/bytes_num_formating.dart"; -import "package:pointycastle/ecc/curves/secp256k1.dart" show ECCurve_secp256k1; -import 'package:pointycastle/ecc/api.dart' show ECPoint; - -/// Define the elliptic curve group order as a Uint8List. -final _rcOrderBytes = hexToBytes( - "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"); - -/// Define the elliptic curve prime field parameter 'p' as a Uint8List. -final _ecPBytes = hexToBytes( - "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"); - -/// Create an instance of the secp256k1 elliptic curve. -final secp256k1 = ECCurve_secp256k1(); - -/// Extract the elliptic curve's group order 'n' and generator point 'G'. -final n = secp256k1.n; - -/// Group order 'n' -final G = secp256k1.G; - -/// Generator point 'G' - -/// This function checks if a Uint8List 'x' represents a valid private key. -/// It performs multiple checks to ensure 'x' is a valid scalar within a specified range. -/// It returns true if 'x' is a valid private key; otherwise, it returns false. -bool isPrivate(Uint8List x) { - /// Check if 'x' is a valid scalar; if not, return false. - if (!isScalar(x)) { - return false; - } - - /// Compare 'x' to the all-zero byte sequence and the elliptic curve group order. - /// If 'x' is greater than 0 and less than the group order, it's a valid private key. - return _compare(x, Uint8List(32)) > 0 && _compare(x, _rcOrderBytes) < 0; -} - -/// This function generates a tweaked private key from a private key and a tweak. -/// It performs validation checks and returns the tweaked private key as a Uint8List. -/// If the inputs are invalid or the resulting tweaked private key is invalid, it returns null. -Uint8List? generateTweek(Uint8List point, Uint8List tweak) { - /// Check if 'point' is a valid private key; if not, raise an error. - if (!isPrivate(point)) { - throw ArgumentError("Bad Private"); - } - - /// Check if 'tweak' is a valid scalar; if not, raise an error. - if (!isOrderScalar(tweak)) { - throw ArgumentError("Bad Tweek"); - } - - /// Decode 'point' and 'tweak' into BigInt values. - BigInt dd = decodeBigInt(point); - BigInt tt = decodeBigInt(tweak); - - /// Calculate the new private key by adding 'dd' and 'tt', and take the result modulo 'n'. - BigInt newPrivateKey = (dd + tt) % n; - - /// Encode the new private key as a Uint8List. - Uint8List dt = encodeBigInt(newPrivateKey); - - /// Ensure that the resulting 'dt' has a length of at least 32 bytes. - if (dt.length < 32) { - Uint8List padLeadingZero = Uint8List(32 - dt.length); - dt = Uint8List.fromList(padLeadingZero + dt); - } - - /// Check if the resulting 'dt' is a valid private key; if not, return null. - if (!isPrivate(dt)) { - return null; - } - - /// Return the valid tweaked private key as a Uint8List. - return dt; -} - -/// This function checks if a Uint8List 'p' represents a valid elliptic curve point. -/// It performs several checks on the structure and values within 'p' to determine validity. -/// It returns true if 'p' is a valid point; otherwise, it returns false. -bool isPoint(Uint8List p) { - /// Check if the length of 'p' is less than 33 bytes; if so, it's not a valid point. - if (p.length < 33) { - return false; - } - - /// Extract the first byte ('t') and the next 32 bytes ('x') from 'p'. - var t = p[0]; - var x = p.sublist(1, 33); - - /// Check if 'x' is an all-zero byte sequence, which is not a valid point. - if (_compare(x, Uint8List(32)) == 0) { - return false; - } - - /// Check if 'x' is greater than or equal to the elliptic curve parameter 'EC_P', which is not a valid point. - if (_compare(x, _ecPBytes) == 1) { - return false; - } - - /// Attempt to decode 'p' into an elliptic curve point using '_decodeFrom'. - /// If an error is raised, it's not a valid point. - try { - _decodeFrom(p); - } catch (err) { - return false; - } - - /// Check if 'p' is in compressed format (t == 0x02 or t == 0x03) and has a length of 33 bytes; if so, it's a valid point. - if ((t == 0x02 || t == 0x03) && p.length == 33) { - return true; - } - - /// Extract the remaining bytes ('y') from 'p'. - var y = p.sublist(33); - - /// Check if 'y' is an all-zero byte sequence, which is not a valid point. - if (_compare(y, Uint8List(32)) == 0) { - return false; - } - - /// Check if 'y' is greater than or equal to 'EC_P', which is not a valid point. - if (_compare(y, _ecPBytes) == 1) { - return false; - } - - /// Check if 'p' is in uncompressed format (t == 0x04) and has a length of 65 bytes; if so, it's a valid point. - if (t == 0x04 && p.length == 65) { - return true; - } - - /// If none of the conditions are met, it's not a valid point. - return false; -} - -/// This function checks whether a Uint8List represents a scalar value. -/// In many cryptographic contexts, scalar values are expected to be 32 bytes long. -/// It returns true if the input Uint8List has a length of 32 bytes, indicating it's a scalar; otherwise, it returns false. -bool isScalar(Uint8List x) { - /// Check if the length of the input Uint8List is equal to 32 bytes. - return x.length == 32; -} - -/// This function checks if a value 'x' is a valid scalar less than the elliptic curve group order. -/// It first ensures that 'x' is a scalar and then compares it to the group order. -/// It returns true if 'x' is a valid scalar less than the group order; otherwise, it returns false. -bool isOrderScalar(x) { - /// Check if 'x' is a valid scalar; if not, return false. - if (!isScalar(x)) { - return false; - } - - /// Compare 'x' to the elliptic curve group order. - /// If 'x' is less than the group order, return true; otherwise, return false. - return _compare(x, _rcOrderBytes) < 0; - - /// < G -} - -/// This function checks if a Uint8List 'p' represents a compressed elliptic curve point. -/// It returns true if 'p' is compressed (the first byte is not 0x04); otherwise, it returns false. -bool _isPointCompressed(Uint8List p) { - /// Check if the first byte of 'p' is not equal to 0x04. - return p[0] != 0x04; -} - -/// This method performs point addition with a scalar value and optional compression. -/// It takes a point 'p', a tweak 'tweak', and a boolean 'compress' flag as input. -/// If the inputs are valid, it returns the result of the point addition as a Uint8List. -/// If any input is invalid or if the result is infinity, it returns null. -Uint8List? pointAddScalar(Uint8List p, Uint8List tweak, bool compress) { - /// Check if 'p' is a valid ECPoint; if not, raise an error. - if (!isPoint(p)) { - throw ArgumentError("Bad Point"); - } - - /// Check if 'tweak' is a valid scalar value; if not, raise an error. - if (!isOrderScalar(tweak)) { - throw ArgumentError("Bad Tweek"); - } - - /// Decode the input 'p' into an ECPoint. - ECPoint? pp = _decodeFrom(p); - - /// If 'tweak' is zero, return the original point 'p' with optional compression. - if (_compare(tweak, Uint8List(32)) == 0) { - return pp!.getEncoded(compress); - } - - /// Decode the 'tweak' into a BigInt. - BigInt tt = decodeBigInt(tweak); - - /// Calculate the new point 'qq' as 'G * tt', where 'G' is a predefined generator point. - ECPoint qq = (G * tt) as ECPoint; - - /// Calculate the result point 'uu' as 'pp + qq'. - ECPoint uu = (pp! + qq) as ECPoint; - - /// Check if 'uu' is infinity (an invalid result); if so, return null. - if (uu.isInfinity) { - return null; - } - - /// Return the encoded representation of the result point 'uu' with optional compression. - return uu.getEncoded(compress); -} - -/// This method decodes a Uint8List 'P' into an ECPoint. -/// It uses the secp256k1 curve's decodePoint method to perform the decoding. -/// If successful, it returns the decoded ECPoint; otherwise, it returns null. -ECPoint? _decodeFrom(Uint8List P) { - /// Use the secp256k1 curve's decodePoint method to attempt decoding. - return secp256k1.curve.decodePoint(P); -} - -/// This function re-encodes a given Uint8List point representation based on a compression flag. -/// If 'compressed' is true, it ensures that the point representation is compressed. -/// If 'compressed' is false, it ensures that the point representation is uncompressed. -Uint8List reEncodedFromForm(Uint8List p, bool compressed) { - /// Decode the input Uint8List 'p' to obtain a point representation. - final decode = _decodeFrom(p); - - /// Check if decoding was successful. If not, raise an error. - if (decode == null) { - throw ArgumentError("Bad point"); - } - - /// Get the encoded representation of the point with the desired compression status. - final encode = decode.getEncoded(compressed); - - /// Check if the resulting 'encode' is not compressed. - if (!_isPointCompressed(encode)) { - /// If it's not compressed, remove the compression flag (first byte). - return encode.sublist(1, encode.length); - } - - /// If it is compressed or remains compressed, return it as is. - return encode; -} - -/// This function compares two Uint8List values by interpreting them as BigInts. -/// It returns 0 if a and b are equal, 1 if a is greater than b, and -1 if a is less than b. -int _compare(Uint8List a, Uint8List b) { - /// Convert Uint8List a and b into BigInts for comparison. - BigInt aa = decodeBigInt(a); - BigInt bb = decodeBigInt(b); - - /// Compare aa and bb using BigInt comparison operators. - if (aa == bb) { - return 0; - - /// a and b are equal - } else if (aa > bb) { - return 1; - - /// a is greater than b - } else { - return -1; - - /// a is less than b - } -} - -Uint8List? pointFromScalar(Uint8List d, bool compress) { - if (!isPrivate(d)) throw ArgumentError("Bad Private"); - BigInt dd = decodeBigInt(d); - ECPoint pp = (G * dd) as ECPoint; - if (pp.isInfinity) return null; - return pp.getEncoded(compress); -} diff --git a/lib/crypto/quick_crypto.dart b/lib/crypto/quick_crypto.dart new file mode 100644 index 0000000..6ff5918 --- /dev/null +++ b/lib/crypto/quick_crypto.dart @@ -0,0 +1,260 @@ +import 'package:blockchain_utils/crypto/crypto/aes/padding.dart'; +import 'package:blockchain_utils/crypto/crypto/chacha20poly1305/chacha20poly1305.dart'; +import 'package:blockchain_utils/crypto/crypto/ecb/ecb.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/crypto/crypto/hmac/hmac.dart'; +import 'package:blockchain_utils/crypto/crypto/pbkdf2/pbkdf2.dart'; +import 'package:blockchain_utils/crypto/crypto/prng/fortuna.dart'; + +/// QuickCrypto provides a set of utility methods for cryptographic operations. +/// +/// This class contains static methods for generating random bytes, hashing data, +/// and performing other cryptographic operations commonly used in various +/// applications. +class QuickCrypto { + /// Calculate the SHA-256 hash of the input data + static List sha256Hash(List data) { + return SHA256.hash(data); + } + + /// Calculate the SHA-256 hash of the SHA-256 hash of the input data + static List sha256DoubleHash(List data) { + List tmp = sha256Hash(data); + return sha256Hash(tmp); + } + + /// Static property that defines the size of SHA-256 digests in bytes + static int get sha256DigestSize { + return 32; + } + + /// Derive a key from a password using PBKDF2 algorithm + static List pbkdf2DeriveKey( + {required List password, + required List salt, + required int iterations, + Hash Function()? hash, + int? dklen}) { + final hashing = (hash ?? () => SHA512()); + + return PBKDF2.deriveKey( + mac: () => HMAC(hashing, password), + salt: salt, + iterations: iterations, + length: dklen ?? hashing().getDigestLength); + } + + /// Calculate the RIPEMD-160 hash of the SHA-256 hash of the input data + static List hash160(List data) { + List tmp = SHA256.hash(data); + return RIPEMD160.hash(tmp); + } + + /// Define the size of RIPEMD-160 digests, which is 20 bytes (160 bits) + static const int hash160DigestSize = 20; + + /// Calculate the RIPEMD-160 hash of the input data + static List ripemd160Hash(List data) { + return RIPEMD160.hash(data); + } + + static List _blake2bHash( + List data, + int digestSize, { + List? key, + List? salt, + }) { + final hash = + BLAKE2b.hash(data, digestSize, Blake2bConfig(key: key, salt: salt)); + + return hash; + } + + /// Define the size of BLAKE2b-512 digests, which is 64 bytes (512 bits) + static int blake2b512DigestSize = 64; + + /// Calculate the BLAKE2b-512 hash of the input data + static List blake2b512Hash( + List data, { + List? key, + List? salt, + }) => + _blake2bHash(data, blake2b512DigestSize, key: key, salt: salt); + + /// Define the size of BLAKE2b-256 digests, which is 32 bytes (256 bits) + static int blake2b256DigestSize = 32; + + /// Calculate the BLAKE2b-256 hash of the input data + static List blake2b256Hash( + List data, { + List? key, + List? salt, + }) => + _blake2bHash(data, blake2b256DigestSize, key: key, salt: salt); + + /// Define the size of BLAKE2b-224 digests, which is 28 bytes (224 bits) + static int blake2b224DigestSize = 28; + + /// Calculate the BLAKE2b-224 hash of the input data + static List blake2b224Hash( + List data, { + List? key, + List? salt, + }) => + _blake2bHash(data, blake2b224DigestSize, key: key, salt: salt); + + /// Define the size of BLAKE2b-160 digests, which is 20 bytes (160 bits) + static int blake2b160DigestSize = 20; + + /// Calculate the BLAKE2b-160 hash of the input data + static List blake2b160Hash( + List data, { + List? key, + List? salt, + }) => + _blake2bHash(data, blake2b160DigestSize, key: key, salt: salt); + + /// Define the size of BLAKE2b-40 digests, which is 5 bytes (40 bits) + static int blake2b40DigestSize = 5; + + /// Calculate the BLAKE2b-40 hash of the input data + static List blake2b40Hash( + List data, { + List? key, + List? salt, + }) => + _blake2bHash(data, blake2b40DigestSize, key: key, salt: salt); + + /// Define the size of BLAKE2b-32 digests, which is 4 bytes (32 bits) + static int blake2b32DigestSize = 4; + + /// Calculate the BLAKE2b-32 hash of the input data + static List blake2b32Hash( + List data, { + List? key, + List? salt, + }) => + _blake2bHash(data, blake2b32DigestSize, key: key, salt: salt); + + /// Calculate the SHA-512/256 hash of the input data + static List sha512256Hash(List data) { + return SHA512256.hash(data); + } + + /// Calculate the SHA-512 hash of the input data + static List sha512Hash(List data) { + return SHA512.hash(data); + } + + /// Calculate the Keccak-256 hash of the input data + static List keccack256Hash(List data) { + return Keccack.hash(data, 32); + } + + /// Calculate the SHA-3-256 hash of the input data + static List sha3256Hash(List data) { + return SHA3256.hash(data); + } + + /// Define the size of SHA-3-256 digests, which is 32 bytes (256 bits) + static int get sha3256DigestSize => 32; + + /// Calculate the HMAC-SHA-256 hash of the input data using the provided key + static List hmacsha256Hash(List key, List data) { + final hm = HMAC(() => SHA256(), key); + hm.update(data); + return hm.digest(); + } + + /// Calculate the HMAC-SHA-512 hash of the input data using the provided key + static List hmacSha512Hash(List key, List data) { + final hm = HMAC(() => SHA512(), key); + hm.update(data); + return hm.digest(); + } + + /// Define the size of HMAC-SHA-512 digests, which is 64 bytes (512 bits) + static const int hmacSha512DigestSize = 64; + + /// Calculate the HMAC-SHA-512 hash of the input data using the provided key and + /// split the result into two halves. Return a tuple containing both halves + static (List, List) hmacSha512HashHalves( + List key, List data) { + final bytes = hmacSha512Hash(key, data); + return ( + bytes.sublist(0, hmacSha512DigestSize ~/ 2), + bytes.sublist(hmacSha512DigestSize ~/ 2) + ); + } + + /// Encrypt the input data using AES in Cipher Block Chaining (CBC) mode with the provided key. + /// Optionally, specify the padding algorithm to be used. + static List aesCbcEncrypt(List key, List data, + {PaddingAlgorithm? paddingAlgorithm}) { + final ecb = ECB(key); + return ecb.encryptBlock(data, null, paddingAlgorithm); + } + + /// Decrypt the input data using AES in Cipher Block Chaining (CBC) mode with the provided key. + /// Optionally, specify the padding algorithm to be used. + static List aesCbcDecrypt(List key, List data, + {PaddingAlgorithm? paddingAlgorithm}) { + final ecb = ECB(key); + return ecb.decryptBlock(data, null, paddingAlgorithm); + } + + /// Decrypt data using the ChaCha20-Poly1305 authenticated encryption algorithm. + /// Requires a key, nonce, ciphertext, and optional associated data. + static List chaCha20Poly1305Decrypt({ + required List key, + required List nonce, + required List cipherText, + List? assocData, + }) { + final chacha = ChaCha20Poly1305(key); + final decrypt = + chacha.decrypt(nonce, cipherText, associatedData: assocData); + + if (decrypt != null) { + return decrypt; + } + throw StateError("ChaCha20-Poly1305 decryption fail"); + } + + /// Encrypt data using the ChaCha20-Poly1305 authenticated encryption algorithm. + /// Requires a key, nonce, plaintext, and optional associated data. + static List chaCha20Poly1305Encrypt({ + required List key, + required List nonce, + required List plainText, + List? assocData, + }) { + final chacha = ChaCha20Poly1305(key); + return chacha.encrypt(nonce, plainText, associatedData: assocData); + } + + /// Define the tag length for ChaCha20-Poly1305, which is 16 bytes + static const int chacha20Polu1305Taglenght = 16; + + /// Define the key size for ChaCha20-Poly1305, which is 32 bytes + static const int chacha20Polu1305Keysize = 32; + + /// A private field to hold the FortunaRandom instance for generating random numbers. + static FortunaPRNG? _randomGenerator; + + /// This function generates a random List of the specified size (default is 32 bytes). + static List generateRandom([int size = 32, GenerateRandom? random]) { + if (random != null) { + return random(size); + } + + /// Check if the _randomGenerator instance has been initialized. + _randomGenerator ??= FortunaPRNG(); + + /// Generate the random bytes of the specified size using the _randomGenerator. + final r = _randomGenerator!.nextBytes(size); + + /// Return the generated random bytes. + return r; + } +} diff --git a/lib/formating/bytes_num_formating.dart b/lib/formating/bytes_num_formating.dart deleted file mode 100644 index b5de9cf..0000000 --- a/lib/formating/bytes_num_formating.dart +++ /dev/null @@ -1,244 +0,0 @@ -import 'dart:core'; -import 'dart:typed_data'; -import 'package:convert/convert.dart'; - -/// Convert a list of integers (bytes) to a hexadecimal string representation. -/// This function takes a List of integers and returns a string containing -/// the hexadecimal representation of the bytes. -String bytesToHex(List bytes) => hex.encode(bytes); - -/// Decode a list of integers (bytes) into a BigInt. -/// This function takes a List of integers representing bytes -/// and converts them into a BigInt, considering byte order. -BigInt decodeBigInt(List bytes) { - BigInt result = BigInt.from(0); - for (int i = 0; i < bytes.length; i++) { - /// Add each byte to the result, considering its position and byte order. - result += BigInt.from(bytes[bytes.length - i - 1]) << (8 * i); - } - return result; -} - -/// Encode a BigInt into a Uint8List. -/// This function takes a BigInt integer and encodes it into a Uint8List -/// representation, considering necessary padding and byte order. -Uint8List encodeBigInt(BigInt number) { - int needsPaddingByte; - int rawSize; - - /// Determine the raw size of the encoding and whether a padding byte is needed. - if (number > BigInt.zero) { - rawSize = (number.bitLength + 7) >> 3; - needsPaddingByte = - ((number >> (rawSize - 1) * 8) & BigInt.from(0x80)) == BigInt.from(0x80) - ? 1 - : 0; - - /// Ensure that a padding byte is added if the raw size is less than 32 bytes. - if (rawSize < 32) { - needsPaddingByte = 1; - } - } else { - needsPaddingByte = 0; - rawSize = (number.bitLength + 8) >> 3; - } - - /// Calculate the final size of the Uint8List. - final size = rawSize < 32 ? rawSize + needsPaddingByte : rawSize; - - /// Initialize the result Uint8List. - var result = Uint8List(size); - - /// Encode the BigInt into the Uint8List while considering byte order. - for (int i = 0; i < size; i++) { - result[size - i - 1] = (number & BigInt.from(0xff)).toInt(); - number = number >> 8; - } - - return result; -} - -/// Convert a list of integers from one bit size to another. -/// This function takes a list of integers, 'data', and converts them from a given -/// 'fromBits' size to a 'toBits' size, optionally padding the output list. -/// It returns a new list of integers with the converted values or null if conversion -/// is not possible due to invalid input. -List? convertBits(List data, int fromBits, int toBits, - {bool pad = true}) { - int acc = 0; - - /// Accumulator to store intermediate values. - int bits = 0; - - /// Number of bits in 'acc' that are valid. - List ret = []; - - /// Resulting list of converted integers. - int maxv = (1 << toBits) - 1; - - /// Maximum value that can fit in 'toBits' bits. - int maxAcc = (1 << (fromBits + toBits - 1)) - 1; - - /// Maximum accumulator value. - - /// Iterate through each value in the input 'data'. - for (int value in data) { - /// Check for invalid values. - if (value < 0 || (value >> fromBits) > 0) { - return null; - } - - /// Update the accumulator with the new value and maintain 'bits'. - acc = ((acc << fromBits) | value) & maxAcc; - bits += fromBits; - - /// Extract and add full 'toBits' sized values to the result. - while (bits >= toBits) { - bits -= toBits; - ret.add((acc >> bits) & maxv); - } - } - - /// Optionally pad the result if 'pad' is true. - if (pad) { - if (bits > 0) { - ret.add((acc << (toBits - bits)) & maxv); - } - } else { - /// Check for potential invalid padding or remaining bits. - if (bits >= fromBits || ((acc << (toBits - bits)) & maxv) > 0) { - return null; - } - } - - /// Return the converted list of integers. - return ret; -} - -/// Strip the '0x' prefix from a hexadecimal string. -/// This function takes a hexadecimal string 'hex' and removes the '0x' prefix -/// if it exists. It returns the string with the prefix removed or the original -/// string if no prefix is present. -String strip0x(String hex) { - if (hex.startsWith('0x')) { - /// If the string starts with '0x', remove the prefix. - return hex.substring(2); - } - - /// If no '0x' prefix is found, return the original string. - return hex; -} - -/// Convert a hexadecimal string to a Uint8List. -/// This function takes a hexadecimal string 'hexStr', removes the '0x' prefix if present, -/// and converts it into a Uint8List containing the corresponding byte values. -/// It returns the Uint8List representation of the hexadecimal string. -Uint8List hexToBytes(String hexStr) { - /// Remove the '0x' prefix from the hexadecimal string. - final bytes = hex.decode(strip0x(hexStr)); - - /// Check if the result is already a Uint8List. - if (bytes is Uint8List) { - return bytes; - } - - /// If not, create a new Uint8List from the list of bytes. - return Uint8List.fromList(bytes); -} - -/// Convert a list of bytes to an integer with the specified endianness. -/// This function takes a list of bytes 'bytes' and an 'endian' parameter indicating -/// the byte order (Endian.little or Endian.big), and converts the bytes into an integer. -/// It supports byte lengths of 1, 2, and 4 bytes, and throws an error for unsupported lengths. -/// If 'bytes' is empty, it raises an ArgumentError. -int intFromBytes(List bytes, Endian endian) { - if (bytes.isEmpty) { - throw ArgumentError("Input bytes should not be empty"); - } - - /// Create a Uint8List from the input bytes. - final buffer = Uint8List.fromList(bytes); - - /// Create a ByteData view from the Uint8List. - final byteData = ByteData.sublistView(buffer); - - /// Use a switch statement to handle different byte lengths. - switch (bytes.length) { - case 1: - return byteData.getInt8(0); - case 2: - return byteData.getInt16(0, endian); - case 4: - return byteData.getInt32(0, endian); - default: - throw ArgumentError("Unsupported byte length: ${bytes.length}"); - } -} - -/// Compare two lists of bytes for equality. -/// This function compares two lists of bytes 'a' and 'b' for equality. It returns true -/// if the lists are equal (including null check), false if they have different lengths -/// or contain different byte values, and true if the lists reference the same object. -bool bytesListEqual(List? a, List? b) { - /// Check if 'a' is null and handle null comparison. - if (a == null) { - return b == null; - } - - /// Check if 'b' is null or if the lengths of 'a' and 'b' are different. - if (b == null || a.length != b.length) { - return false; - } - - /// Check if 'a' and 'b' reference the same object (identity comparison). - if (identical(a, b)) { - return true; - } - - /// Compare the individual byte values in 'a' and 'b'. - for (int index = 0; index < a.length; index += 1) { - if (a[index] != b[index]) { - return false; - } - } - - /// If no differences were found, the lists are equal. - return true; -} - -/// Pack a 32-bit integer into a Big-Endian (BE) Uint8List. -/// This function takes a 32-bit integer 'value' and packs it into a Uint8List -/// in Big-Endian (BE) format, where the most significant byte is stored at the -/// lowest index and the least significant byte at the highest index. -/// It returns the resulting Uint8List representation of the integer. -Uint8List packUint32BE(int value) { - /// Create a Uint8List with a length of 4 bytes to store the packed value. - var bytes = Uint8List(4); - - /// Pack the 32-bit integer into the Uint8List in Big-Endian order. - bytes[0] = (value >> 24) & 0xFF; - bytes[1] = (value >> 16) & 0xFF; - bytes[2] = (value >> 8) & 0xFF; - bytes[3] = value & 0xFF; - - /// Return the packed Uint8List. - return bytes; -} - -/// Convert a binary string to an integer. -/// This function takes a binary string 'binary' and converts it into an integer. -/// It uses the 'int.parse' method with a radix of 2 to interpret the binary string. -/// The resulting integer represents the value of the binary string. -int binaryToByte(String binary) { - return int.parse(binary, radix: 2); -} - -/// Convert a Uint8List of bytes to a binary string. -/// This function takes a Uint8List 'bytes' and converts it into a binary string. -/// It maps each byte in the list to its binary representation with 8 bits, left-padded -/// with zeros if needed. Then, it concatenates these binary representations to form -/// the resulting binary string. -/// The returned string represents the binary data of the input bytes. -String bytesToBinary(Uint8List bytes) { - return bytes.map((byte) => byte.toRadixString(2).padLeft(8, '0')).join(''); -} diff --git a/lib/hd_wallet/cypto_currencies/currencies.dart b/lib/hd_wallet/cypto_currencies/currencies.dart deleted file mode 100644 index 310f04d..0000000 --- a/lib/hd_wallet/cypto_currencies/currencies.dart +++ /dev/null @@ -1,4646 +0,0 @@ -/// copied from https://github.com/meherett/python-hdwallet/blob/master/hdwallet/cryptocurrencies.py - -part of 'package:blockchain_utils/hd_wallet/cypto_currencies/cyrpto_currency.dart'; - -final Map currenciesData = { - "ANON": { - "SYMBOL": "ANON", - "NAME": "Anon", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 220, "HARDENED": true}, - "SCRIPT_ADDRESS": 21385, - "PUBLIC_KEY_ADDRESS": 1410, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018ANON Signed Message:\n", - "DEFAULT_PATH": "m/44'/220'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "AGM": { - "SYMBOL": "AGM", - "NAME": "Argoneum", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 421, "HARDENED": true}, - "SCRIPT_ADDRESS": 97, - "PUBLIC_KEY_ADDRESS": 50, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/421'/0'/0/0", - "WIF_SECRET_KEY": 191 - }, - "XAX": { - "SYMBOL": "XAX", - "NAME": "Artax", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 219, "HARDENED": true}, - "SCRIPT_ADDRESS": 7357, - "PUBLIC_KEY_ADDRESS": 23, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Artax Signed Message:\n", - "DEFAULT_PATH": "m/44'/219'/0'/0/0", - "WIF_SECRET_KEY": 151 - }, - "AYA": { - "SYMBOL": "AYA", - "NAME": "Aryacoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 357, "HARDENED": true}, - "SCRIPT_ADDRESS": 111, - "PUBLIC_KEY_ADDRESS": 23, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Aryacoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/357'/0'/0/0", - "WIF_SECRET_KEY": 151 - }, - "AC": { - "SYMBOL": "AC", - "NAME": "Asiacoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 51, "HARDENED": true}, - "SCRIPT_ADDRESS": 8, - "PUBLIC_KEY_ADDRESS": 23, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018AsiaCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/51'/0'/0/0", - "WIF_SECRET_KEY": 151 - }, - "ATOM": { - "SYMBOL": "ATOM", - "NAME": "Atom", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 118, "HARDENED": true}, - "SCRIPT_ADDRESS": 10, - "PUBLIC_KEY_ADDRESS": 23, - "SEGWIT_ADDRESS": {"HRP": "atom", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 76066276, - "P2WPKH_IN_P2SH": 76066276, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 76067358, - "P2WPKH_IN_P2SH": 76067358, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Bitcoin Atom Signed Message:\n", - "DEFAULT_PATH": "m/44'/118'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "AUR": { - "SYMBOL": "AUR", - "NAME": "Auroracoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 85, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 23, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018AuroraCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/85'/0'/0/0", - "WIF_SECRET_KEY": 151 - }, - "AXE": { - "SYMBOL": "AXE", - "NAME": "Axe", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 4242, "HARDENED": true}, - "SCRIPT_ADDRESS": 16, - "PUBLIC_KEY_ADDRESS": 55, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/4242'/0'/0/0", - "WIF_SECRET_KEY": 204 - }, - "BTA": { - "SYMBOL": "BTA", - "NAME": "Bata", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 89, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 25, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 2752221629, - "P2SH": 2752221629, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 2752284410, - "P2SH": 2752284410, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Bata Signed Message:\n", - "DEFAULT_PATH": "m/44'/89'/0'/0/0", - "WIF_SECRET_KEY": 164 - }, - "BEET": { - "SYMBOL": "BEET", - "NAME": "Beetle Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 800, "HARDENED": true}, - "SCRIPT_ADDRESS": 85, - "PUBLIC_KEY_ADDRESS": 26, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0019Beetlecoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/800'/0'/0/0", - "WIF_SECRET_KEY": 153 - }, - "BELA": { - "SYMBOL": "BELA", - "NAME": "Bela Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 73, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 25, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018BelaCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/73'/0'/0/0", - "WIF_SECRET_KEY": 153 - }, - "BTDX": { - "SYMBOL": "BTDX", - "NAME": "Bit Cloud", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 218, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 25, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018BitCloud Signed Message:\n", - "DEFAULT_PATH": "m/44'/218'/0'/0/0", - "WIF_SECRET_KEY": 153 - }, - "BSD": { - "SYMBOL": "BSD", - "NAME": "Bit Send", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 91, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 102, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Bitsend Signed Message:\n", - "DEFAULT_PATH": "m/44'/91'/0'/0/0", - "WIF_SECRET_KEY": 204 - }, - "BCH": { - "SYMBOL": "BCH", - "NAME": "Bitcoin Cash", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/bitcoincashorg/bitcoincash.org", - "COIN_TYPE": {"INDEX": 145, "HARDENED": true}, - "SCRIPT_ADDRESS": 40, - "PUBLIC_KEY_ADDRESS": 28, - "SEGWIT_ADDRESS": {"HRP": "bc", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 78791436, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": 44726937, - "P2WSH_IN_P2SH": 43364357 - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 78792518, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": 44728019, - "P2WSH_IN_P2SH": 43365439 - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/145'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "BTG": { - "SYMBOL": "BTG", - "NAME": "Bitcoin Gold", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/BTCGPU/BTCGPU", - "COIN_TYPE": {"INDEX": 156, "HARDENED": true}, - "SCRIPT_ADDRESS": 23, - "PUBLIC_KEY_ADDRESS": 38, - "SEGWIT_ADDRESS": {"HRP": "btg", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 78791436, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": 44726937, - "P2WSH_IN_P2SH": 43364357 - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 78792518, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": 44728019, - "P2WSH_IN_P2SH": 43365439 - }, - "MESSAGE_PREFIX": "\u001dBitcoin Gold Signed Message:\n", - "DEFAULT_PATH": "m/44'/156'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "BTC": { - "SYMBOL": "BTC", - "NAME": "Bitcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/bitcoin/bitcoin", - "COIN_TYPE": {"INDEX": 0, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 0, - "SEGWIT_ADDRESS": {"HRP": "bc", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 78791436, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": 44726937, - "P2WSH_IN_P2SH": 43364357 - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 78792518, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": 44728019, - "P2WSH_IN_P2SH": 43365439 - }, - "MESSAGE_PREFIX": "\u0018Bitcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/0'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "XBC": { - "SYMBOL": "XBC", - "NAME": "Bitcoin Plus", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 65, "HARDENED": true}, - "SCRIPT_ADDRESS": 8, - "PUBLIC_KEY_ADDRESS": 25, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018BitcoinPlus Signed Message:\n", - "DEFAULT_PATH": "m/44'/65'/0'/0/0", - "WIF_SECRET_KEY": 153 - }, - "BSV": { - "SYMBOL": "BSV", - "NAME": "Bitcoin SV", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 236, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 0, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/236'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "BTCTEST": { - "SYMBOL": "BTCTEST", - "NAME": "Bitcoin", - "NETWORK": "testnet", - "SOURCE_CODE": "https://github.com/bitcoin/bitcoin", - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 196, - "PUBLIC_KEY_ADDRESS": 111, - "SEGWIT_ADDRESS": {"HRP": "tb", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 70615956, - "P2SH": 70615956, - "P2WPKH": 73341116, - "P2WPKH_IN_P2SH": 71978536, - "P2WSH": 39276616, - "P2WSH_IN_P2SH": 37914037 - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 70617039, - "P2SH": 70617039, - "P2WPKH": 73342198, - "P2WPKH_IN_P2SH": 71979618, - "P2WSH": 39277699, - "P2WSH_IN_P2SH": 37915119 - }, - "MESSAGE_PREFIX": "\u0018Bitcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 239 - }, - "BTCZ": { - "SYMBOL": "BTCZ", - "NAME": "BitcoinZ", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 177, "HARDENED": true}, - "SCRIPT_ADDRESS": 7357, - "PUBLIC_KEY_ADDRESS": 7352, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018BitcoinZ Signed Message:\n", - "DEFAULT_PATH": "m/44'/177'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "BTX": { - "SYMBOL": "BTX", - "NAME": "Bitcore", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 160, "HARDENED": true}, - "SCRIPT_ADDRESS": 125, - "PUBLIC_KEY_ADDRESS": 3, - "SEGWIT_ADDRESS": {"HRP": "bitcore", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 76066276, - "P2WPKH_IN_P2SH": 76066276, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 76067358, - "P2WPKH_IN_P2SH": 76067358, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018BitCore Signed Message:\n", - "DEFAULT_PATH": "m/44'/160'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "BLK": { - "SYMBOL": "BLK", - "NAME": "Blackcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 10, "HARDENED": true}, - "SCRIPT_ADDRESS": 85, - "PUBLIC_KEY_ADDRESS": 25, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 47169376, - "P2SH": 47169376, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 47169246, - "P2SH": 47169246, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018BlackCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/10'/0'/0/0", - "WIF_SECRET_KEY": 153 - }, - "BST": { - "SYMBOL": "BST", - "NAME": "Block Stamp", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 254, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 0, - "SEGWIT_ADDRESS": {"HRP": "bc", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 76066276, - "P2WPKH_IN_P2SH": 76066276, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 76067358, - "P2WPKH_IN_P2SH": 76067358, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018BlockStamp Signed Message:\n", - "DEFAULT_PATH": "m/44'/254'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "BND": { - "SYMBOL": "BND", - "NAME": "Blocknode", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 2941, "HARDENED": true}, - "SCRIPT_ADDRESS": 63, - "PUBLIC_KEY_ADDRESS": 25, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Blocknode Signed Message:\n", - "DEFAULT_PATH": "m/44'/2941'/0'/0/0", - "WIF_SECRET_KEY": 75 - }, - "BNDTEST": { - "SYMBOL": "BNDTEST", - "NAME": "Blocknode", - "NETWORK": "testnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 125, - "PUBLIC_KEY_ADDRESS": 85, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 70615956, - "P2SH": 70615956, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 70617039, - "P2SH": 70617039, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Blocknode Testnet Signed Message:\n", - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 137 - }, - "BOLI": { - "SYMBOL": "BOLI", - "NAME": "Bolivarcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 278, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 85, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "Bolivarcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/278'/0'/0/0", - "WIF_SECRET_KEY": 213 - }, - "BRIT": { - "SYMBOL": "BRIT", - "NAME": "Brit Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 70, "HARDENED": true}, - "SCRIPT_ADDRESS": 85, - "PUBLIC_KEY_ADDRESS": 25, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018BritCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/70'/0'/0/0", - "WIF_SECRET_KEY": 153 - }, - "CPU": { - "SYMBOL": "CPU", - "NAME": "CPU Chain", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 363, "HARDENED": true}, - "SCRIPT_ADDRESS": 30, - "PUBLIC_KEY_ADDRESS": 28, - "SEGWIT_ADDRESS": {"HRP": "cpu", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 78791436, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 78792518, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u001dCPUchain Signed Message:\n", - "DEFAULT_PATH": "m/44'/363'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "CDN": { - "SYMBOL": "CDN", - "NAME": "Canada eCoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 34, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 28, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Canada eCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/34'/0'/0/0", - "WIF_SECRET_KEY": 156 - }, - "CCN": { - "SYMBOL": "CCN", - "NAME": "Cannacoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 19, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 28, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Cannacoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/19'/0'/0/0", - "WIF_SECRET_KEY": 156 - }, - "CLAM": { - "SYMBOL": "CLAM", - "NAME": "Clams", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 23, "HARDENED": true}, - "SCRIPT_ADDRESS": 13, - "PUBLIC_KEY_ADDRESS": 137, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 2831251494, - "P2SH": 2831251494, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 2831314276, - "P2SH": 2831314276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/23'/0'/0/0", - "WIF_SECRET_KEY": 133 - }, - "CLUB": { - "SYMBOL": "CLUB", - "NAME": "Club Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 79, "HARDENED": true}, - "SCRIPT_ADDRESS": 85, - "PUBLIC_KEY_ADDRESS": 28, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018ClubCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/79'/0'/0/0", - "WIF_SECRET_KEY": 153 - }, - "CMP": { - "SYMBOL": "CMP", - "NAME": "Compcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 71, "HARDENED": true}, - "SCRIPT_ADDRESS": 85, - "PUBLIC_KEY_ADDRESS": 28, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018CompCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/71'/0'/0/0", - "WIF_SECRET_KEY": 156 - }, - "CRP": { - "SYMBOL": "CRP", - "NAME": "Crane Pay", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 2304, "HARDENED": true}, - "SCRIPT_ADDRESS": 10, - "PUBLIC_KEY_ADDRESS": 28, - "SEGWIT_ADDRESS": {"HRP": "cp", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 78791436, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 78792518, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Bitcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/2304'/0'/0/0", - "WIF_SECRET_KEY": 123 - }, - "CRAVE": { - "SYMBOL": "CRAVE", - "NAME": "Crave", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 186, "HARDENED": true}, - "SCRIPT_ADDRESS": 85, - "PUBLIC_KEY_ADDRESS": 70, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018DarkNet Signed Message:\n", - "DEFAULT_PATH": "m/44'/186'/0'/0/0", - "WIF_SECRET_KEY": 153 - }, - "DASH": { - "SYMBOL": "DASH", - "NAME": "Dash", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/dashpay/dash", - "COIN_TYPE": {"INDEX": 5, "HARDENED": true}, - "SCRIPT_ADDRESS": 16, - "PUBLIC_KEY_ADDRESS": 76, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Bitcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/5'/0'/0/0", - "WIF_SECRET_KEY": 204 - }, - "DASHTEST": { - "SYMBOL": "DASHTEST", - "NAME": "Dash", - "NETWORK": "testnet", - "SOURCE_CODE": "https://github.com/dashpay/dash", - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 19, - "PUBLIC_KEY_ADDRESS": 140, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 70615956, - "P2SH": 70615956, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 70617039, - "P2SH": 70617039, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Bitcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 239 - }, - "ONION": { - "SYMBOL": "ONION", - "NAME": "Deep Onion", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 305, "HARDENED": true}, - "SCRIPT_ADDRESS": 78, - "PUBLIC_KEY_ADDRESS": 31, - "SEGWIT_ADDRESS": {"HRP": "dpn", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 76066276, - "P2WPKH_IN_P2SH": 76066276, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 76067358, - "P2WPKH_IN_P2SH": 76067358, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018DeepOnion Signed Message:\n", - "DEFAULT_PATH": "m/44'/305'/0'/0/0", - "WIF_SECRET_KEY": 159 - }, - "DFC": { - "SYMBOL": "DFC", - "NAME": "Defcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 1337, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 30, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018defcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/1337'/0'/0/0", - "WIF_SECRET_KEY": 158 - }, - "DNR": { - "SYMBOL": "DNR", - "NAME": "Denarius", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 116, "HARDENED": true}, - "SCRIPT_ADDRESS": 90, - "PUBLIC_KEY_ADDRESS": 30, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0019Denarius Signed Message:\n", - "DEFAULT_PATH": "m/44'/116'/0'/0/0", - "WIF_SECRET_KEY": 158 - }, - "DMD": { - "SYMBOL": "DMD", - "NAME": "Diamond", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 152, "HARDENED": true}, - "SCRIPT_ADDRESS": 8, - "PUBLIC_KEY_ADDRESS": 90, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Diamond Signed Message:\n", - "DEFAULT_PATH": "m/44'/152'/0'/0/0", - "WIF_SECRET_KEY": 218 - }, - "DGB": { - "SYMBOL": "DGB", - "NAME": "Digi Byte", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 20, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 30, - "SEGWIT_ADDRESS": {"HRP": "dgb", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 78791436, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 78792518, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0019DigiByte Signed Message:\n", - "DEFAULT_PATH": "m/44'/20'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "DGC": { - "SYMBOL": "DGC", - "NAME": "Digitalcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 18, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 30, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 2651097266, - "P2SH": 2651097266, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Digitalcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/18'/0'/0/0", - "WIF_SECRET_KEY": 158 - }, - "DOGE": { - "SYMBOL": "DOGE", - "NAME": "Dogecoin", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/dogecoin/dogecoin", - "COIN_TYPE": {"INDEX": 3, "HARDENED": true}, - "SCRIPT_ADDRESS": 22, - "PUBLIC_KEY_ADDRESS": 30, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 49988504, - "P2SH": 49988504, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 49990397, - "P2SH": 49990397, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0019Dogecoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/3'/0'/0/0", - "WIF_SECRET_KEY": 241 - }, - "DOGETEST": { - "SYMBOL": "DOGETEST", - "NAME": "Dogecoin", - "NETWORK": "testnet", - "SOURCE_CODE": "https://github.com/dogecoin/dogecoin", - "COIN_TYPE": {"INDEX": 3, "HARDENED": true}, - "SCRIPT_ADDRESS": 196, - "PUBLIC_KEY_ADDRESS": 113, - "SEGWIT_ADDRESS": {"HRP": "dogecointestnet", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 70615956, - "P2SH": 70615956, - "P2WPKH": 70615956, - "P2WPKH_IN_P2SH": 70615956, - "P2WSH": 70615956, - "P2WSH_IN_P2SH": 70615956 - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 70617039, - "P2SH": 70617039, - "P2WPKH": 70617039, - "P2WPKH_IN_P2SH": 70617039, - "P2WSH": 70617039, - "P2WSH_IN_P2SH": 70617039 - }, - "MESSAGE_PREFIX": "\u0019Dogecoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/3'/0'/0/0", - "WIF_SECRET_KEY": 241 - }, - "EDRC": { - "SYMBOL": "EDRC", - "NAME": "EDR Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 56, "HARDENED": true}, - "SCRIPT_ADDRESS": 28, - "PUBLIC_KEY_ADDRESS": 93, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018EDRcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/56'/0'/0/0", - "WIF_SECRET_KEY": 221 - }, - "ECN": { - "SYMBOL": "ECN", - "NAME": "Ecoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 115, "HARDENED": true}, - "SCRIPT_ADDRESS": 20, - "PUBLIC_KEY_ADDRESS": 92, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018eCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/115'/0'/0/0", - "WIF_SECRET_KEY": 220 - }, - "EMC2": { - "SYMBOL": "EMC2", - "NAME": "Einsteinium", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 41, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 33, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Einsteinium Signed Message:\n", - "DEFAULT_PATH": "m/44'/41'/0'/0/0", - "WIF_SECRET_KEY": 161 - }, - "ELA": { - "SYMBOL": "ELA", - "NAME": "Elastos", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 2305, "HARDENED": true}, - "SCRIPT_ADDRESS": 196, - "PUBLIC_KEY_ADDRESS": 33, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/2305'/0'/0/0", - "WIF_SECRET_KEY": 239 - }, - "NRG": { - "SYMBOL": "NRG", - "NAME": "Energi", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 9797, "HARDENED": true}, - "SCRIPT_ADDRESS": 53, - "PUBLIC_KEY_ADDRESS": 33, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 3621547679, - "P2SH": 3621547679, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 62441558, - "P2SH": 62441558, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "DarkCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/9797'/0'/0/0", - "WIF_SECRET_KEY": 106 - }, - "ETH": { - "SYMBOL": "ETH", - "NAME": "Ethereum", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/ethereum/go-ethereum", - "COIN_TYPE": {"INDEX": 60, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 0, - "SEGWIT_ADDRESS": {"HRP": "bc", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 78791436, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": 44726937, - "P2WSH_IN_P2SH": 43364357 - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 78792518, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": 44728019, - "P2WSH_IN_P2SH": 43365439 - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/60'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "ERC": { - "SYMBOL": "ERC", - "NAME": "Europe Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 151, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 33, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Bitcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/151'/0'/0/0", - "WIF_SECRET_KEY": 168 - }, - "EXCL": { - "SYMBOL": "EXCL", - "NAME": "Exclusive Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 190, "HARDENED": true}, - "SCRIPT_ADDRESS": 137, - "PUBLIC_KEY_ADDRESS": 33, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018ExclusiveCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/190'/0'/0/0", - "WIF_SECRET_KEY": 161 - }, - "FIX": { - "SYMBOL": "FIX", - "NAME": "FIX", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 336, "HARDENED": true}, - "SCRIPT_ADDRESS": 95, - "PUBLIC_KEY_ADDRESS": 35, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 35729707, - "P2SH": 35729707, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 36513075, - "P2SH": 36513075, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/336'/0'/0/0", - "WIF_SECRET_KEY": 60 - }, - "FIXTEST": { - "SYMBOL": "FIXTEST", - "NAME": "FIX", - "NETWORK": "testnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 137, - "PUBLIC_KEY_ADDRESS": 76, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 981489719, - "P2SH": 981489719, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 981492128, - "P2SH": 981492128, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 237 - }, - "FTC": { - "SYMBOL": "FTC", - "NAME": "Feathercoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 8, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 14, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76077806, - "P2SH": 76077806, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76069926, - "P2SH": 76069926, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Feathercoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/8'/0'/0/0", - "WIF_SECRET_KEY": 142 - }, - "FRST": { - "SYMBOL": "FRST", - "NAME": "Firstcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 167, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 35, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018FirstCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/167'/0'/0/0", - "WIF_SECRET_KEY": 163 - }, - "FLASH": { - "SYMBOL": "FLASH", - "NAME": "Flashcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 120, "HARDENED": true}, - "SCRIPT_ADDRESS": 130, - "PUBLIC_KEY_ADDRESS": 68, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Flashcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/120'/0'/0/0", - "WIF_SECRET_KEY": 196 - }, - "FLUX": { - "SYMBOL": "FLUX", - "NAME": "Flux", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/RunOnFlux/fluxd", - "COIN_TYPE": {"INDEX": 19167, "HARDENED": true}, - "SCRIPT_ADDRESS": 7357, - "PUBLIC_KEY_ADDRESS": 7352, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Zelcash Signed Message:\n", - "DEFAULT_PATH": "m/44'/19167'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "FJC": { - "SYMBOL": "FJC", - "NAME": "Fuji Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 75, "HARDENED": true}, - "SCRIPT_ADDRESS": 16, - "PUBLIC_KEY_ADDRESS": 36, - "SEGWIT_ADDRESS": {"HRP": "fc", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 78791436, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 78792518, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0019FujiCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/75'/0'/0/0", - "WIF_SECRET_KEY": 164 - }, - "GCR": { - "SYMBOL": "GCR", - "NAME": "GCR Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 49, "HARDENED": true}, - "SCRIPT_ADDRESS": 97, - "PUBLIC_KEY_ADDRESS": 38, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018GCR Signed Message:\n", - "DEFAULT_PATH": "m/44'/49'/0'/0/0", - "WIF_SECRET_KEY": 154 - }, - "GAME": { - "SYMBOL": "GAME", - "NAME": "Game Credits", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 101, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 38, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/101'/0'/0/0", - "WIF_SECRET_KEY": 166 - }, - "GBX": { - "SYMBOL": "GBX", - "NAME": "Go Byte", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 176, "HARDENED": true}, - "SCRIPT_ADDRESS": 10, - "PUBLIC_KEY_ADDRESS": 38, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018DarkCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/176'/0'/0/0", - "WIF_SECRET_KEY": 198 - }, - "GRC": { - "SYMBOL": "GRC", - "NAME": "Gridcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 84, "HARDENED": true}, - "SCRIPT_ADDRESS": 85, - "PUBLIC_KEY_ADDRESS": 62, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Gridcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/84'/0'/0/0", - "WIF_SECRET_KEY": 190 - }, - "GRS": { - "SYMBOL": "GRS", - "NAME": "Groestl Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 17, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 36, - "SEGWIT_ADDRESS": {"HRP": "grs", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 78791436, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 78792518, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0019GroestlCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/17'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "GRSTEST": { - "SYMBOL": "GRSTEST", - "NAME": "Groestl Coin", - "NETWORK": "testnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 196, - "PUBLIC_KEY_ADDRESS": 111, - "SEGWIT_ADDRESS": {"HRP": "tgrs", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 70615956, - "P2SH": 70615956, - "P2WPKH": 73341116, - "P2WPKH_IN_P2SH": 71978536, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 70617039, - "P2SH": 70617039, - "P2WPKH": 73342198, - "P2WPKH_IN_P2SH": 71979618, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0019GroestlCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 239 - }, - "NLG": { - "SYMBOL": "NLG", - "NAME": "Gulden", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 87, "HARDENED": true}, - "SCRIPT_ADDRESS": 98, - "PUBLIC_KEY_ADDRESS": 38, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Guldencoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/87'/0'/0/0", - "WIF_SECRET_KEY": 98 - }, - "HNC": { - "SYMBOL": "HNC", - "NAME": "Helleniccoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 168, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 48, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018helleniccoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/168'/0'/0/0", - "WIF_SECRET_KEY": 176 - }, - "THC": { - "SYMBOL": "THC", - "NAME": "Hempcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 113, "HARDENED": true}, - "SCRIPT_ADDRESS": 8, - "PUBLIC_KEY_ADDRESS": 40, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Hempcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/113'/0'/0/0", - "WIF_SECRET_KEY": 168 - }, - "HUSH": { - "SYMBOL": "HUSH", - "NAME": "Hush", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 197, "HARDENED": true}, - "SCRIPT_ADDRESS": 7357, - "PUBLIC_KEY_ADDRESS": 7352, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Hush Signed Message:\n", - "DEFAULT_PATH": "m/44'/197'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "IXC": { - "SYMBOL": "IXC", - "NAME": "IX Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 86, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 138, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Ixcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/86'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "INSN": { - "SYMBOL": "INSN", - "NAME": "Insane Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 68, "HARDENED": true}, - "SCRIPT_ADDRESS": 57, - "PUBLIC_KEY_ADDRESS": 102, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018INSaNe Signed Message:\n", - "DEFAULT_PATH": "m/44'/68'/0'/0/0", - "WIF_SECRET_KEY": 55 - }, - "IOP": { - "SYMBOL": "IOP", - "NAME": "Internet Of People", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 66, "HARDENED": true}, - "SCRIPT_ADDRESS": 174, - "PUBLIC_KEY_ADDRESS": 117, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 2922649334, - "P2SH": 2922649334, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 662737247, - "P2SH": 662737247, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018IoP Signed Message:\n", - "DEFAULT_PATH": "m/44'/66'/0'/0/0", - "WIF_SECRET_KEY": 49 - }, - "JBS": { - "SYMBOL": "JBS", - "NAME": "Jumbucks", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 26, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 43, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 58352736, - "P2SH": 58352736, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 58353818, - "P2SH": 58353818, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0019Jumbucks Signed Message:\n", - "DEFAULT_PATH": "m/44'/26'/0'/0/0", - "WIF_SECRET_KEY": 171 - }, - "KOBO": { - "SYMBOL": "KOBO", - "NAME": "Kobocoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 196, "HARDENED": true}, - "SCRIPT_ADDRESS": 28, - "PUBLIC_KEY_ADDRESS": 35, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Kobocoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/196'/0'/0/0", - "WIF_SECRET_KEY": 163 - }, - "KMD": { - "SYMBOL": "KMD", - "NAME": "Komodo", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 141, "HARDENED": true}, - "SCRIPT_ADDRESS": 85, - "PUBLIC_KEY_ADDRESS": 60, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Komodo Signed Message:\n", - "DEFAULT_PATH": "m/44'/141'/0'/0/0", - "WIF_SECRET_KEY": 188 - }, - "LBC": { - "SYMBOL": "LBC", - "NAME": "LBRY Credits", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 140, "HARDENED": true}, - "SCRIPT_ADDRESS": 122, - "PUBLIC_KEY_ADDRESS": 85, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018LBRYcrd Signed Message:\n", - "DEFAULT_PATH": "m/44'/140'/0'/0/0", - "WIF_SECRET_KEY": 28 - }, - "LINX": { - "SYMBOL": "LINX", - "NAME": "Linx", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 114, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 75, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018LinX Signed Message:\n", - "DEFAULT_PATH": "m/44'/114'/0'/0/0", - "WIF_SECRET_KEY": 203 - }, - "LCC": { - "SYMBOL": "LCC", - "NAME": "Litecoin Cash", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 192, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 28, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Litecoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/192'/0'/0/0", - "WIF_SECRET_KEY": 176 - }, - "LTC": { - "SYMBOL": "LTC", - "NAME": "Litecoin", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/litecoin-project/litecoin", - "COIN_TYPE": {"INDEX": 2, "HARDENED": true}, - "SCRIPT_ADDRESS": 50, - "PUBLIC_KEY_ADDRESS": 48, - "SEGWIT_ADDRESS": {"HRP": "ltc", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0019Litecoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/2'/0'/0/0", - "WIF_SECRET_KEY": 176 - }, - "LTCTEST": { - "SYMBOL": "LTCTEST", - "NAME": "Litecoin", - "NETWORK": "testnet", - "SOURCE_CODE": "https://github.com/litecoin-project/litecoin", - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 58, - "PUBLIC_KEY_ADDRESS": 111, - "SEGWIT_ADDRESS": {"HRP": "tltc", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 70615956, - "P2SH": 70615956, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 70617039, - "P2SH": 70617039, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0019Litecoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 239 - }, - "LTZ": { - "SYMBOL": "LTZ", - "NAME": "LitecoinZ", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 221, "HARDENED": true}, - "SCRIPT_ADDRESS": 2744, - "PUBLIC_KEY_ADDRESS": 2739, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066275, - "P2SH": 76066275, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018LitecoinZ Signed Message:\n", - "DEFAULT_PATH": "m/44'/221'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "LKR": { - "SYMBOL": "LKR", - "NAME": "Lkrcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 557, "HARDENED": true}, - "SCRIPT_ADDRESS": 85, - "PUBLIC_KEY_ADDRESS": 48, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018LKRcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/557'/0'/0/0", - "WIF_SECRET_KEY": 176 - }, - "LYNX": { - "SYMBOL": "LYNX", - "NAME": "Lynx", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 191, "HARDENED": true}, - "SCRIPT_ADDRESS": 50, - "PUBLIC_KEY_ADDRESS": 45, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Lynx Signed Message:\n", - "DEFAULT_PATH": "m/44'/191'/0'/0/0", - "WIF_SECRET_KEY": 173 - }, - "MZC": { - "SYMBOL": "MZC", - "NAME": "Mazacoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 13, "HARDENED": true}, - "SCRIPT_ADDRESS": 9, - "PUBLIC_KEY_ADDRESS": 50, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/13'/0'/0/0", - "WIF_SECRET_KEY": 224 - }, - "MEC": { - "SYMBOL": "MEC", - "NAME": "Megacoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 217, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 50, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Megacoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/217'/0'/0/0", - "WIF_SECRET_KEY": 178 - }, - "MNX": { - "SYMBOL": "MNX", - "NAME": "Minexcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 182, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 75, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Bitcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/182'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "MONA": { - "SYMBOL": "MONA", - "NAME": "Monacoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 22, "HARDENED": true}, - "SCRIPT_ADDRESS": 55, - "PUBLIC_KEY_ADDRESS": 50, - "SEGWIT_ADDRESS": {"HRP": "mona", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 76066276, - "P2WPKH_IN_P2SH": 76066276, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 76067358, - "P2WPKH_IN_P2SH": 76067358, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Monacoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/22'/0'/0/0", - "WIF_SECRET_KEY": 176 - }, - "MONK": { - "SYMBOL": "MONK", - "NAME": "Monkey Project", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 214, "HARDENED": true}, - "SCRIPT_ADDRESS": 28, - "PUBLIC_KEY_ADDRESS": 51, - "SEGWIT_ADDRESS": {"HRP": "monkey", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76078564, - "P2SH": 76078564, - "P2WPKH": 76078564, - "P2WPKH_IN_P2SH": 76078564, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 76067358, - "P2WPKH_IN_P2SH": 76067358, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "Monkey Signed Message:\n", - "DEFAULT_PATH": "m/44'/214'/0'/0/0", - "WIF_SECRET_KEY": 55 - }, - "XMY": { - "SYMBOL": "XMY", - "NAME": "Myriadcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 90, "HARDENED": true}, - "SCRIPT_ADDRESS": 9, - "PUBLIC_KEY_ADDRESS": 50, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/90'/0'/0/0", - "WIF_SECRET_KEY": 178 - }, - "NIX": { - "SYMBOL": "NIX", - "NAME": "NIX", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 400, "HARDENED": true}, - "SCRIPT_ADDRESS": 53, - "PUBLIC_KEY_ADDRESS": 38, - "SEGWIT_ADDRESS": {"HRP": "nix", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 76066276, - "P2WPKH_IN_P2SH": 76066276, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 76067358, - "P2WPKH_IN_P2SH": 76067358, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Nix Signed Message:\n", - "DEFAULT_PATH": "m/44'/400'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "NMC": { - "SYMBOL": "NMC", - "NAME": "Namecoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 7, "HARDENED": true}, - "SCRIPT_ADDRESS": 13, - "PUBLIC_KEY_ADDRESS": 52, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/7'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "NAV": { - "SYMBOL": "NAV", - "NAME": "Navcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/navcoin/navcoin-core", - "COIN_TYPE": {"INDEX": 130, "HARDENED": true}, - "SCRIPT_ADDRESS": 85, - "PUBLIC_KEY_ADDRESS": 53, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Navcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/130'/0'/0/0", - "WIF_SECRET_KEY": 150 - }, - "NEBL": { - "SYMBOL": "NEBL", - "NAME": "Neblio", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 146, "HARDENED": true}, - "SCRIPT_ADDRESS": 112, - "PUBLIC_KEY_ADDRESS": 53, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Neblio Signed Message:\n", - "DEFAULT_PATH": "m/44'/146'/0'/0/0", - "WIF_SECRET_KEY": 181 - }, - "NEOS": { - "SYMBOL": "NEOS", - "NAME": "Neoscoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 25, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 53, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018NeosCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/25'/0'/0/0", - "WIF_SECRET_KEY": 177 - }, - "NRO": { - "SYMBOL": "NRO", - "NAME": "Neurocoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 110, "HARDENED": true}, - "SCRIPT_ADDRESS": 117, - "PUBLIC_KEY_ADDRESS": 53, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018PPCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/110'/0'/0/0", - "WIF_SECRET_KEY": 181 - }, - "NYC": { - "SYMBOL": "NYC", - "NAME": "New York Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 179, "HARDENED": true}, - "SCRIPT_ADDRESS": 22, - "PUBLIC_KEY_ADDRESS": 60, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018newyorkc Signed Message:\n", - "DEFAULT_PATH": "m/44'/179'/0'/0/0", - "WIF_SECRET_KEY": 188 - }, - "NVC": { - "SYMBOL": "NVC", - "NAME": "Novacoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 50, "HARDENED": true}, - "SCRIPT_ADDRESS": 20, - "PUBLIC_KEY_ADDRESS": 8, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018NovaCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/50'/0'/0/0", - "WIF_SECRET_KEY": 136 - }, - "NBT": { - "SYMBOL": "NBT", - "NAME": "NuBits", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 12, "HARDENED": true}, - "SCRIPT_ADDRESS": 26, - "PUBLIC_KEY_ADDRESS": 25, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Nu Signed Message:\n", - "DEFAULT_PATH": "m/44'/12'/0'/0/0", - "WIF_SECRET_KEY": 150 - }, - "NSR": { - "SYMBOL": "NSR", - "NAME": "NuShares", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 11, "HARDENED": true}, - "SCRIPT_ADDRESS": 64, - "PUBLIC_KEY_ADDRESS": 63, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Nu Signed Message:\n", - "DEFAULT_PATH": "m/44'/11'/0'/0/0", - "WIF_SECRET_KEY": 149 - }, - "OK": { - "SYMBOL": "OK", - "NAME": "OK Cash", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 69, "HARDENED": true}, - "SCRIPT_ADDRESS": 28, - "PUBLIC_KEY_ADDRESS": 55, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 63708275, - "P2SH": 63708275, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 63710167, - "P2SH": 63710167, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018OKCash Signed Message:\n", - "DEFAULT_PATH": "m/44'/69'/0'/0/0", - "WIF_SECRET_KEY": 3 - }, - "OMNI": { - "SYMBOL": "OMNI", - "NAME": "Omni", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/omnilayer/omnicore", - "COIN_TYPE": {"INDEX": 200, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 0, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Bitcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/200'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "OMNITEST": { - "SYMBOL": "OMNITEST", - "NAME": "Omni", - "NETWORK": "testnet", - "SOURCE_CODE": "https://github.com/omnilayer/omnicore", - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 196, - "PUBLIC_KEY_ADDRESS": 111, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 70615956, - "P2SH": 70615956, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 70617039, - "P2SH": 70617039, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Bitcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 239 - }, - "ONX": { - "SYMBOL": "ONX", - "NAME": "Onix Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 174, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 75, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "ONIX Signed Message:\n", - "DEFAULT_PATH": "m/44'/174'/0'/0/0", - "WIF_SECRET_KEY": 203 - }, - "PPC": { - "SYMBOL": "PPC", - "NAME": "Peercoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 6, "HARDENED": true}, - "SCRIPT_ADDRESS": 117, - "PUBLIC_KEY_ADDRESS": 55, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/6'/0'/0/0", - "WIF_SECRET_KEY": 183 - }, - "PSB": { - "SYMBOL": "PSB", - "NAME": "Pesobit", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 62, "HARDENED": true}, - "SCRIPT_ADDRESS": 85, - "PUBLIC_KEY_ADDRESS": 55, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Pesobit Signed Message:\n", - "DEFAULT_PATH": "m/44'/62'/0'/0/0", - "WIF_SECRET_KEY": 183 - }, - "PHR": { - "SYMBOL": "PHR", - "NAME": "Phore", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 444, "HARDENED": true}, - "SCRIPT_ADDRESS": 13, - "PUBLIC_KEY_ADDRESS": 55, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 35729707, - "P2SH": 35729707, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 36513075, - "P2SH": 36513075, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Phore Signed Message:\n", - "DEFAULT_PATH": "m/44'/444'/0'/0/0", - "WIF_SECRET_KEY": 212 - }, - "PINK": { - "SYMBOL": "PINK", - "NAME": "Pinkcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 117, "HARDENED": true}, - "SCRIPT_ADDRESS": 28, - "PUBLIC_KEY_ADDRESS": 3, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Pinkcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/117'/0'/0/0", - "WIF_SECRET_KEY": 131 - }, - "PIVX": { - "SYMBOL": "PIVX", - "NAME": "Pivx", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 119, "HARDENED": true}, - "SCRIPT_ADDRESS": 13, - "PUBLIC_KEY_ADDRESS": 30, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 35729707, - "P2SH": 35729707, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 36513075, - "P2SH": 36513075, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/119'/0'/0/0", - "WIF_SECRET_KEY": 212 - }, - "PIVXTEST": { - "SYMBOL": "PIVXTEST", - "NAME": "Pivx", - "NETWORK": "testnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 19, - "PUBLIC_KEY_ADDRESS": 139, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 981489719, - "P2SH": 981489719, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 981492128, - "P2SH": 981492128, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 239 - }, - "POSW": { - "SYMBOL": "POSW", - "NAME": "Posw Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 47, "HARDENED": true}, - "SCRIPT_ADDRESS": 85, - "PUBLIC_KEY_ADDRESS": 55, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Poswcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/47'/0'/0/0", - "WIF_SECRET_KEY": 183 - }, - "POT": { - "SYMBOL": "POT", - "NAME": "Potcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 81, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 55, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Potcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/81'/0'/0/0", - "WIF_SECRET_KEY": 183 - }, - "PRJ": { - "SYMBOL": "PRJ", - "NAME": "Project Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 533, "HARDENED": true}, - "SCRIPT_ADDRESS": 8, - "PUBLIC_KEY_ADDRESS": 55, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 35729707, - "P2SH": 35729707, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 36513075, - "P2SH": 36513075, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018ProjectCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/533'/0'/0/0", - "WIF_SECRET_KEY": 117 - }, - "PUT": { - "SYMBOL": "PUT", - "NAME": "Putincoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 122, "HARDENED": true}, - "SCRIPT_ADDRESS": 20, - "PUBLIC_KEY_ADDRESS": 55, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018PutinCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/122'/0'/0/0", - "WIF_SECRET_KEY": 183 - }, - "QTUM": { - "SYMBOL": "QTUM", - "NAME": "Qtum", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/qtumproject/qtum", - "COIN_TYPE": {"INDEX": 2301, "HARDENED": true}, - "SCRIPT_ADDRESS": 50, - "PUBLIC_KEY_ADDRESS": 58, - "SEGWIT_ADDRESS": {"HRP": "qc1", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 73341116, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": 44726937, - "P2WSH_IN_P2SH": 43364357 - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 73342198, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": 44728019, - "P2WSH_IN_P2SH": 43365439 - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/2301'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "QTUMTEST": { - "SYMBOL": "QTUMTEST", - "NAME": "Qtum", - "NETWORK": "testnet", - "SOURCE_CODE": "https://github.com/qtumproject/qtum", - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 110, - "PUBLIC_KEY_ADDRESS": 120, - "SEGWIT_ADDRESS": {"HRP": "tq1", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 70615956, - "P2SH": 70615956, - "P2WPKH": 73341116, - "P2WPKH_IN_P2SH": 71978536, - "P2WSH": 39276616, - "P2WSH_IN_P2SH": 37914037 - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 70617039, - "P2SH": 70617039, - "P2WPKH": 73342198, - "P2WPKH_IN_P2SH": 71979618, - "P2WSH": 39277699, - "P2WSH_IN_P2SH": 37915119 - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 239 - }, - "RBTC": { - "SYMBOL": "RBTC", - "NAME": "RSK", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 137, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 0, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018RSK Signed Message:\n", - "DEFAULT_PATH": "m/44'/137'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "RBTCTEST": { - "SYMBOL": "RBTCTEST", - "NAME": "RSK", - "NETWORK": "testnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 196, - "PUBLIC_KEY_ADDRESS": 111, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 70615956, - "P2SH": 70615956, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 70617039, - "P2SH": 70617039, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018RSK Testnet Signed Message:\n", - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 239 - }, - "RPD": { - "SYMBOL": "RPD", - "NAME": "Rapids", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 320, "HARDENED": true}, - "SCRIPT_ADDRESS": 6, - "PUBLIC_KEY_ADDRESS": 61, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "DarkNet Signed Message:\n", - "DEFAULT_PATH": "m/44'/320'/0'/0/0", - "WIF_SECRET_KEY": 46 - }, - "RVN": { - "SYMBOL": "RVN", - "NAME": "Ravencoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 175, "HARDENED": true}, - "SCRIPT_ADDRESS": 122, - "PUBLIC_KEY_ADDRESS": 60, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0016Raven Signed Message:\n", - "DEFAULT_PATH": "m/44'/175'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "RDD": { - "SYMBOL": "RDD", - "NAME": "Reddcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 4, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 61, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Reddcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/4'/0'/0/0", - "WIF_SECRET_KEY": 189 - }, - "RBY": { - "SYMBOL": "RBY", - "NAME": "Rubycoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 16, "HARDENED": true}, - "SCRIPT_ADDRESS": 85, - "PUBLIC_KEY_ADDRESS": 60, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Rubycoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/16'/0'/0/0", - "WIF_SECRET_KEY": 188 - }, - "SAFE": { - "SYMBOL": "SAFE", - "NAME": "Safecoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 19165, "HARDENED": true}, - "SCRIPT_ADDRESS": 86, - "PUBLIC_KEY_ADDRESS": 61, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Safecoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/19165'/0'/0/0", - "WIF_SECRET_KEY": 189 - }, - "SLS": { - "SYMBOL": "SLS", - "NAME": "Saluscoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 572, "HARDENED": true}, - "SCRIPT_ADDRESS": 196, - "PUBLIC_KEY_ADDRESS": 63, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Salus Signed Message:\n", - "DEFAULT_PATH": "m/44'/572'/0'/0/0", - "WIF_SECRET_KEY": 191 - }, - "SCRIBE": { - "SYMBOL": "SCRIBE", - "NAME": "Scribe", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 545, "HARDENED": true}, - "SCRIPT_ADDRESS": 125, - "PUBLIC_KEY_ADDRESS": 60, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/545'/0'/0/0", - "WIF_SECRET_KEY": 110 - }, - "SDC": { - "SYMBOL": "SDC", - "NAME": "Shadow Cash", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/shadowproject/shadow", - "COIN_TYPE": {"INDEX": 35, "HARDENED": true}, - "SCRIPT_ADDRESS": 125, - "PUBLIC_KEY_ADDRESS": 63, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 4001378792, - "P2SH": 4001378792, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 4001376362, - "P2SH": 4001376362, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/35'/0'/0/0", - "WIF_SECRET_KEY": 191 - }, - "SDCTEST": { - "SYMBOL": "SDCTEST", - "NAME": "Shadow Cash", - "NETWORK": "testnet", - "SOURCE_CODE": "https://github.com/shadowproject/shadow", - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 196, - "PUBLIC_KEY_ADDRESS": 127, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 1992361850, - "P2SH": 1992361850, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 1992359419, - "P2SH": 1992359419, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 255 - }, - "SLM": { - "SYMBOL": "SLM", - "NAME": "Slimcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 63, "HARDENED": true}, - "SCRIPT_ADDRESS": 125, - "PUBLIC_KEY_ADDRESS": 63, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 4016695936, - "P2SH": 4016695936, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 4016758544, - "P2SH": 4016758544, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/63'/0'/0/0", - "WIF_SECRET_KEY": 70 - }, - "SLMTEST": { - "SYMBOL": "SLMTEST", - "NAME": "Slimcoin", - "NETWORK": "testnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 196, - "PUBLIC_KEY_ADDRESS": 111, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 70615956, - "P2SH": 70615956, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 70617039, - "P2SH": 70617039, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 87 - }, - "SMLY": { - "SYMBOL": "SMLY", - "NAME": "Smileycoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 59, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 25, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 508965308, - "P2SH": 508965308, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 508964250, - "P2SH": 508964250, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Smileycoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/59'/0'/0/0", - "WIF_SECRET_KEY": 5 - }, - "SLR": { - "SYMBOL": "SLR", - "NAME": "Solarcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 58, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 18, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018SolarCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/58'/0'/0/0", - "WIF_SECRET_KEY": 146 - }, - "STASH": { - "SYMBOL": "STASH", - "NAME": "Stash", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 49344, "HARDENED": true}, - "SCRIPT_ADDRESS": 16, - "PUBLIC_KEY_ADDRESS": 76, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Stash Signed Message:\n", - "DEFAULT_PATH": "m/44'/49344'/0'/0/0", - "WIF_SECRET_KEY": 204 - }, - "STRAT": { - "SYMBOL": "STRAT", - "NAME": "Stratis", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 105, "HARDENED": true}, - "SCRIPT_ADDRESS": 125, - "PUBLIC_KEY_ADDRESS": 63, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Stratis Signed Message:\n", - "DEFAULT_PATH": "m/44'/105'/0'/0/0", - "WIF_SECRET_KEY": 191 - }, - "STRATTEST": { - "SYMBOL": "STRATTEST", - "NAME": "Stratis", - "NETWORK": "testnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 125, - "PUBLIC_KEY_ADDRESS": 65, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Stratis Test Signed Message:\n", - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 191 - }, - "SUGAR": { - "SYMBOL": "SUGAR", - "NAME": "Sugarchain", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 408, "HARDENED": true}, - "SCRIPT_ADDRESS": 125, - "PUBLIC_KEY_ADDRESS": 63, - "SEGWIT_ADDRESS": {"HRP": "sugar", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 78791436, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 78792518, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Sugarchain Signed Message:\n", - "DEFAULT_PATH": "m/44'/408'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "SUGARTEST": { - "SYMBOL": "SUGARTEST", - "NAME": "Sugarchain", - "NETWORK": "testnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 128, - "PUBLIC_KEY_ADDRESS": 66, - "SEGWIT_ADDRESS": {"HRP": "tugar", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 73341116, - "P2SH": 73341116, - "P2WPKH": 73341116, - "P2WPKH_IN_P2SH": 71978536, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 73342198, - "P2SH": 73342198, - "P2WPKH": 73342198, - "P2WPKH_IN_P2SH": 71979618, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Sugarchain Signed Message:\n", - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 239 - }, - "SYS": { - "SYMBOL": "SYS", - "NAME": "Syscoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 57, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 63, - "SEGWIT_ADDRESS": {"HRP": "sys", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 78791436, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 78792518, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Syscoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/57'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "TOA": { - "SYMBOL": "TOA", - "NAME": "TOA Coin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 159, "HARDENED": true}, - "SCRIPT_ADDRESS": 23, - "PUBLIC_KEY_ADDRESS": 65, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018TOA Signed Message:\n", - "DEFAULT_PATH": "m/44'/159'/0'/0/0", - "WIF_SECRET_KEY": 193 - }, - "THT": { - "SYMBOL": "THT", - "NAME": "Thought AI", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 502, "HARDENED": true}, - "SCRIPT_ADDRESS": 9, - "PUBLIC_KEY_ADDRESS": 7, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 1525405894, - "P2SH": 1525405894, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 4224098317, - "P2SH": 4224098317, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/502'/0'/0/0", - "WIF_SECRET_KEY": 123 - }, - "TRX": { - "SYMBOL": "TRX", - "NAME": "Tron", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/tronprotocol/java-tron", - "COIN_TYPE": {"INDEX": 195, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 65, - "SEGWIT_ADDRESS": {"HRP": "bc", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 78791436, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": 44726937, - "P2WSH_IN_P2SH": 43364357 - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 78792518, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": 44728019, - "P2WSH_IN_P2SH": 43365439 - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/195'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "TWINS": { - "SYMBOL": "TWINS", - "NAME": "Twins", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 970, "HARDENED": true}, - "SCRIPT_ADDRESS": 83, - "PUBLIC_KEY_ADDRESS": 73, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 35729707, - "P2SH": 35729707, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 36513075, - "P2SH": 36513075, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/970'/0'/0/0", - "WIF_SECRET_KEY": 66 - }, - "TWINSTEST": { - "SYMBOL": "TWINSTEST", - "NAME": "Twins", - "NETWORK": "testnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 137, - "PUBLIC_KEY_ADDRESS": 76, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 981489719, - "P2SH": 981489719, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 981492128, - "P2SH": 981492128, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 237 - }, - "USC": { - "SYMBOL": "USC", - "NAME": "Ultimate Secure Cash", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 112, "HARDENED": true}, - "SCRIPT_ADDRESS": 125, - "PUBLIC_KEY_ADDRESS": 68, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 4001378792, - "P2SH": 4001378792, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 4001376362, - "P2SH": 4001376362, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018UltimateSecureCash Signed Message:\n", - "DEFAULT_PATH": "m/44'/112'/0'/0/0", - "WIF_SECRET_KEY": 191 - }, - "UNO": { - "SYMBOL": "UNO", - "NAME": "Unobtanium", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 92, "HARDENED": true}, - "SCRIPT_ADDRESS": 30, - "PUBLIC_KEY_ADDRESS": 130, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Unobtanium Signed Message:\n", - "DEFAULT_PATH": "m/44'/92'/0'/0/0", - "WIF_SECRET_KEY": 224 - }, - "VASH": { - "SYMBOL": "VASH", - "NAME": "Virtual Cash", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 33, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 71, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018VpnCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/33'/0'/0/0", - "WIF_SECRET_KEY": 199 - }, - "VC": { - "SYMBOL": "VC", - "NAME": "Vcash", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 127, "HARDENED": true}, - "SCRIPT_ADDRESS": 8, - "PUBLIC_KEY_ADDRESS": 71, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Vcash Signed Message:\n", - "DEFAULT_PATH": "m/44'/127'/0'/0/0", - "WIF_SECRET_KEY": 199 - }, - "XVG": { - "SYMBOL": "XVG", - "NAME": "Verge Currency", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 77, "HARDENED": true}, - "SCRIPT_ADDRESS": 33, - "PUBLIC_KEY_ADDRESS": 30, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018VERGE Signed Message:\n", - "DEFAULT_PATH": "m/44'/77'/0'/0/0", - "WIF_SECRET_KEY": 158 - }, - "VTC": { - "SYMBOL": "VTC", - "NAME": "Vertcoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 28, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 71, - "SEGWIT_ADDRESS": {"HRP": "vtc", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 76066276, - "P2WPKH_IN_P2SH": 76066276, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 76067358, - "P2WPKH_IN_P2SH": 76067358, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Vertcoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/28'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "VIA": { - "SYMBOL": "VIA", - "NAME": "Viacoin", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/viacoin/viacore-viacoin", - "COIN_TYPE": {"INDEX": 14, "HARDENED": true}, - "SCRIPT_ADDRESS": 33, - "PUBLIC_KEY_ADDRESS": 71, - "SEGWIT_ADDRESS": {"HRP": "viacoin", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 76066276, - "P2WPKH_IN_P2SH": 76066276, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 76067358, - "P2WPKH_IN_P2SH": 76067358, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Viacoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/14'/0'/0/0", - "WIF_SECRET_KEY": 199 - }, - "VIATEST": { - "SYMBOL": "VIATEST", - "NAME": "Viacoin", - "NETWORK": "testnet", - "SOURCE_CODE": "https://github.com/viacoin/viacore-viacoin", - "COIN_TYPE": {"INDEX": 14, "HARDENED": true}, - "SCRIPT_ADDRESS": 196, - "PUBLIC_KEY_ADDRESS": 127, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 70615956, - "P2SH": 70615956, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 70617039, - "P2SH": 70617039, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Viacoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/14'/0'/0/0", - "WIF_SECRET_KEY": 255 - }, - "VIVO": { - "SYMBOL": "VIVO", - "NAME": "Vivo", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 166, "HARDENED": true}, - "SCRIPT_ADDRESS": 10, - "PUBLIC_KEY_ADDRESS": 70, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018DarkCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/166'/0'/0/0", - "WIF_SECRET_KEY": 198 - }, - "XWC": { - "SYMBOL": "XWC", - "NAME": "Whitecoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 559, "HARDENED": true}, - "SCRIPT_ADDRESS": 87, - "PUBLIC_KEY_ADDRESS": 73, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76059885, - "P2SH": 76059885, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76054302, - "P2SH": 76054302, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Whitecoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/559'/0'/0/0", - "WIF_SECRET_KEY": 201 - }, - "WC": { - "SYMBOL": "WC", - "NAME": "Wincoin", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 181, "HARDENED": true}, - "SCRIPT_ADDRESS": 28, - "PUBLIC_KEY_ADDRESS": 73, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018WinCoin Signed Message:\n", - "DEFAULT_PATH": "m/44'/181'/0'/0/0", - "WIF_SECRET_KEY": 201 - }, - "XUEZ": { - "SYMBOL": "XUEZ", - "NAME": "XUEZ", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 225, "HARDENED": true}, - "SCRIPT_ADDRESS": 18, - "PUBLIC_KEY_ADDRESS": 75, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 35729707, - "P2SH": 35729707, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 36513075, - "P2SH": 36513075, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/225'/0'/0/0", - "WIF_SECRET_KEY": 212 - }, - "XDC": { - "SYMBOL": "XDC", - "NAME": "XinFin", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/XinFinOrg/XDPoSChain", - "COIN_TYPE": {"INDEX": 550, "HARDENED": true}, - "SCRIPT_ADDRESS": 5, - "PUBLIC_KEY_ADDRESS": 0, - "SEGWIT_ADDRESS": {"HRP": "bc", "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": 78791436, - "P2WPKH_IN_P2SH": 77428856, - "P2WSH": 44726937, - "P2WSH_IN_P2SH": 43364357 - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": 78792518, - "P2WPKH_IN_P2SH": 77429938, - "P2WSH": 44728019, - "P2WSH_IN_P2SH": 43365439 - }, - "MESSAGE_PREFIX": null, - "DEFAULT_PATH": "m/44'/550'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "YEC": { - "SYMBOL": "YEC", - "NAME": "Ycash", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/ycashfoundation/ycash", - "COIN_TYPE": {"INDEX": 347, "HARDENED": true}, - "SCRIPT_ADDRESS": 7212, - "PUBLIC_KEY_ADDRESS": 7208, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Ycash Signed Message:\n", - "DEFAULT_PATH": "m/44'/347'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "ZCL": { - "SYMBOL": "ZCL", - "NAME": "ZClassic", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 147, "HARDENED": true}, - "SCRIPT_ADDRESS": 7357, - "PUBLIC_KEY_ADDRESS": 7352, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Zcash Signed Message:\n", - "DEFAULT_PATH": "m/44'/147'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "ZEC": { - "SYMBOL": "ZEC", - "NAME": "Zcash", - "NETWORK": "mainnet", - "SOURCE_CODE": "https://github.com/zcash/zcash", - "COIN_TYPE": {"INDEX": 133, "HARDENED": true}, - "SCRIPT_ADDRESS": 7357, - "PUBLIC_KEY_ADDRESS": 7352, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Zcash Signed Message:\n", - "DEFAULT_PATH": "m/44'/133'/0'/0/0", - "WIF_SECRET_KEY": 128 - }, - "ZECTEST": { - "SYMBOL": "ZECTEST", - "NAME": "Zcash", - "NETWORK": "testnet", - "SOURCE_CODE": "https://github.com/zcash/zcash", - "COIN_TYPE": {"INDEX": 1, "HARDENED": true}, - "SCRIPT_ADDRESS": 7354, - "PUBLIC_KEY_ADDRESS": 7461, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 70615956, - "P2SH": 70615956, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 70617039, - "P2SH": 70617039, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Zcash Signed Message:\n", - "DEFAULT_PATH": "m/44'/1'/0'/0/0", - "WIF_SECRET_KEY": 239 - }, - "ZEN": { - "SYMBOL": "ZEN", - "NAME": "Zencash", - "NETWORK": "mainnet", - "SOURCE_CODE": null, - "COIN_TYPE": {"INDEX": 121, "HARDENED": true}, - "SCRIPT_ADDRESS": 8342, - "PUBLIC_KEY_ADDRESS": 8329, - "SEGWIT_ADDRESS": {"HRP": null, "VERSION": 0}, - "EXTENDED_PRIVATE_KEY": { - "P2PKH": 76066276, - "P2SH": 76066276, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "EXTENDED_PUBLIC_KEY": { - "P2PKH": 76067358, - "P2SH": 76067358, - "P2WPKH": null, - "P2WPKH_IN_P2SH": null, - "P2WSH": null, - "P2WSH_IN_P2SH": null - }, - "MESSAGE_PREFIX": "\u0018Zcash Signed Message:\n", - "DEFAULT_PATH": "m/44'/121'/0'/0/0", - "WIF_SECRET_KEY": 128 - } -}; diff --git a/lib/hd_wallet/cypto_currencies/cyrpto_currency.dart b/lib/hd_wallet/cypto_currencies/cyrpto_currency.dart deleted file mode 100644 index 3f07b3f..0000000 --- a/lib/hd_wallet/cypto_currencies/cyrpto_currency.dart +++ /dev/null @@ -1,463 +0,0 @@ -import 'dart:typed_data'; -import 'package:blockchain_utils/formating/bytes_num_formating.dart'; -part 'currencies.dart'; - -/// Currecy Symbols -enum CurrencySymbol { - anon, - agm, - xax, - aya, - ac, - atom, - aur, - axe, - bta, - beet, - bela, - btdx, - bsd, - bch, - btg, - btc, - xbc, - bsv, - btctest, - btcz, - btx, - blk, - bst, - bnd, - bndtest, - boli, - brit, - cpu, - cdn, - ccn, - clam, - club, - cmp, - crp, - crave, - dash, - dashtest, - onion, - dfc, - dnr, - dmd, - dgb, - dgc, - doge, - dogetest, - edrc, - ecn, - emc2, - ela, - nrg, - eth, - erc, - excl, - fix, - fixtest, - ftc, - frst, - flash, - flux, - fjc, - gcr, - game, - gbx, - grc, - grs, - grstest, - nlg, - hnc, - thc, - hush, - ixc, - insn, - iop, - jbs, - kobo, - kmd, - lbc, - linx, - lcc, - ltc, - ltctest, - ltz, - lkr, - lynx, - mzc, - mec, - mnx, - mona, - monk, - xmy, - nix, - nmc, - nav, - nebl, - neos, - nro, - nyc, - nvc, - nbt, - nsr, - ok, - omni, - omnitest, - onx, - ppc, - psb, - phr, - pink, - pivx, - pivxtest, - posw, - pot, - prj, - put, - qtum, - qtumtest, - rbtc, - rbtctest, - rpd, - rvn, - rdd, - rby, - safe, - sls, - scribe, - sdc, - sdctest, - slm, - slmtest, - smly, - slr, - stash, - strat, - strattest, - sugar, - sugartest, - sys, - toa, - tht, - trx, - twins, - twinstest, - usc, - uno, - vash, - vc, - xvg, - vtc, - via, - viatest, - vivo, - xwc, - wc, - xuez, - xdc, - yec, - zcl, - zec, - zectest, - zen; - - factory CurrencySymbol.fromName(String name) { - final lower = name.toLowerCase(); - return values.firstWhere((element) => element.name == lower); - } -} - -/// Represents a Segwit address with Human-Readable Part (HRP) and version. -class SegwitAddress { - final String? hrp; - final int version; - - SegwitAddress({this.hrp, this.version = 0x00}); - - /// Creates a SegwitAddress instance from a JSON map. - factory SegwitAddress.fromJson(Map json) { - return SegwitAddress( - hrp: json['HRP'], - version: json['VERSION'] ?? 0x00, - ); - } - - /// Converts the SegwitAddress instance to a JSON map. - Map toJson() { - return { - 'HRP': hrp, - 'VERSION': version, - }; - } -} - -/// Represents a CoinType with an index and a flag indicating if it's hardened. -class CoinType { - final int index; - final bool hardened; - - CoinType(this.index, this.hardened); - - /// Creates a CoinType instance from a JSON map. - factory CoinType.fromJson(Map json) { - return CoinType( - json['INDEX'], - json['HARDENED'], - ); - } - - @override - String toString() { - return hardened ? "$index'" : index.toString(); - } - - /// Converts the CoinType instance to a JSON map. - Map toJson() { - return { - 'INDEX': index, - 'HARDENED': hardened, - }; - } -} - -/// Enum representing different Extended Key Types. -enum ExtendedKeyType { - p2pkh, - p2sh, - p2wpkh, - p2wpkhInP2sh, - p2wsh, - p2wshInP2sh; - - factory ExtendedKeyType.fromName(String name) { - final lower = name.toLowerCase(); - return values.firstWhere((element) => element.name == lower); - } -} - -/// Creates an ExtendedKeyType enum value from its name. -class ExtendedKey { - final int p2pkh; - final int p2sh; - final int? p2wpkh; - final int? p2wpkhInP2sh; - final int? p2wsh; - final int? p2wshInP2sh; - - /// Returns an extended key value for the specified key type. - String? getExtended(ExtendedKeyType type) { - switch (type) { - case ExtendedKeyType.p2pkh: - return p2pkh.toRadixString(16).padLeft(8, '0'); - case ExtendedKeyType.p2sh: - return p2sh.toRadixString(16).padLeft(8, '0'); - case ExtendedKeyType.p2wpkh: - return p2wpkh?.toRadixString(16).padLeft(8, '0'); - case ExtendedKeyType.p2wpkhInP2sh: - return p2wpkhInP2sh?.toRadixString(16).padLeft(8, '0'); - case ExtendedKeyType.p2wsh: - return p2wsh?.toRadixString(16).padLeft(8, '0'); - default: - return p2wshInP2sh?.toRadixString(16).padLeft(8, '0'); - } - } - - /// Returns the ExtendedKeyType for the given bytes. - ExtendedKeyType? getExtendedType(Uint8List bytes) { - final toHex = bytesToHex(bytes); - final toInt = int.parse(toHex, radix: 16); - if (toInt == p2pkh) { - return ExtendedKeyType.p2pkh; - } else if (toInt == p2sh) { - return ExtendedKeyType.p2sh; - } else if (toInt == p2wpkh) { - return ExtendedKeyType.p2wpkh; - } else if (toInt == p2wpkhInP2sh) { - return ExtendedKeyType.p2wpkhInP2sh; - } else if (toInt == p2wsh) { - return ExtendedKeyType.p2wsh; - } else if (toInt == p2wshInP2sh) { - return ExtendedKeyType.p2wshInP2sh; - } - return null; - } - - ExtendedKey({ - required this.p2pkh, - required this.p2sh, - this.p2wpkh, - this.p2wpkhInP2sh, - this.p2wsh, - this.p2wshInP2sh, - }); - - /// Creates an ExtendedKey instance from a JSON map. - factory ExtendedKey.fromJson(Map json) { - return ExtendedKey( - p2pkh: json['P2PKH'], - p2sh: json['P2SH'], - p2wpkh: json['P2WPKH'], - p2wpkhInP2sh: json['P2WPKH_IN_P2SH'], - p2wsh: json['P2WSH'], - p2wshInP2sh: json['P2WSH_IN_P2SH'], - ); - } - - /// Converts the ExtendedKey instance to a JSON map. - Map toJson() { - return { - 'P2PKH': p2pkh, - 'P2SH': p2sh, - 'P2WPKH': p2wpkh, - 'P2WPKH_IN_P2SH': p2wpkhInP2sh, - 'P2WSH': p2wsh, - 'P2WSH_IN_P2SH': p2wshInP2sh, - }; - } -} - -/// Represents an Extended Private Key that extends ExtendedKey. -class ExtendedPrivateKey extends ExtendedKey { - ExtendedPrivateKey({ - required int p2pkh, - required int p2sh, - int? p2wpkh, - int? p2wpkhInP2sh, - int? p2wsh, - int? p2wshInP2sh, - }) : super( - p2pkh: p2pkh, - p2sh: p2sh, - p2wpkh: p2wpkh, - p2wpkhInP2sh: p2wpkhInP2sh, - p2wsh: p2wsh, - p2wshInP2sh: p2wshInP2sh, - ); - - /// Creates an ExtendedPrivateKey instance from a JSON map. - factory ExtendedPrivateKey.fromJson(Map json) { - return ExtendedPrivateKey( - p2pkh: json['P2PKH'], - p2sh: json['P2SH'], - p2wpkh: json['P2WPKH'], - p2wpkhInP2sh: json['P2WPKH_IN_P2SH'], - p2wsh: json['P2WSH'], - p2wshInP2sh: json['P2WSH_IN_P2SH'], - ); - } -} - -/// Represents an Extended Public Key that extends ExtendedKey. -class ExtendedPublicKey extends ExtendedKey { - ExtendedPublicKey({ - required int p2pkh, - required int p2sh, - int? p2wpkh, - int? p2wpkhInP2sh, - int? p2wsh, - int? p2wshInP2sh, - }) : super( - p2pkh: p2pkh, - p2sh: p2sh, - p2wpkh: p2wpkh, - p2wpkhInP2sh: p2wpkhInP2sh, - p2wsh: p2wsh, - p2wshInP2sh: p2wshInP2sh, - ); - - /// Creates an ExtendedPublicKey instance from a JSON map. - factory ExtendedPublicKey.fromJson(Map json) { - return ExtendedPublicKey( - p2pkh: json['P2PKH'], - p2sh: json['P2SH'], - p2wpkh: json['P2WPKH'], - p2wpkhInP2sh: json['P2WPKH_IN_P2SH'], - p2wsh: json['P2WSH'], - p2wshInP2sh: json['P2WSH_IN_P2SH'], - ); - } -} - -/// Represents a Cryptocurrency with various attributes and settings. -class Cryptocurrency { - final String name; - final CurrencySymbol symbol; - final String network; - final String? sourceCode; - final CoinType coinType; - final int scriptAddress; - final int publicKeyAddress; - final SegwitAddress segwitAddress; - final ExtendedPrivateKey extendedPrivateKey; - final ExtendedPublicKey extendedPublicKey; - final String? messagePrefix; - final String defaultPath; - final int wifSecretKey; - - Cryptocurrency({ - required this.name, - required this.symbol, - required this.network, - this.sourceCode, - required this.coinType, - required this.scriptAddress, - required this.publicKeyAddress, - required this.segwitAddress, - required this.extendedPrivateKey, - required this.extendedPublicKey, - this.messagePrefix, - required this.defaultPath, - required this.wifSecretKey, - }); - - /// Creates a Cryptocurrency instance from a given CurrencySymbol. - factory Cryptocurrency.fromSymbol(CurrencySymbol network) { - final Map data = - currenciesData[network.name.toUpperCase()]; - return Cryptocurrency.fromJson(data); - } - - /// Creates a Cryptocurrency instance from a JSON map. - factory Cryptocurrency.fromJson(Map json) { - return Cryptocurrency( - name: json['NAME'], - symbol: CurrencySymbol.fromName(json['SYMBOL']), - network: json['NETWORK'], - sourceCode: json['SOURCE_CODE'], - coinType: CoinType.fromJson(json['COIN_TYPE']), - scriptAddress: json['SCRIPT_ADDRESS'], - publicKeyAddress: json['PUBLIC_KEY_ADDRESS'], - segwitAddress: SegwitAddress.fromJson(json['SEGWIT_ADDRESS']), - extendedPrivateKey: - ExtendedPrivateKey.fromJson(json['EXTENDED_PRIVATE_KEY']), - extendedPublicKey: - ExtendedPublicKey.fromJson(json['EXTENDED_PUBLIC_KEY']), - messagePrefix: json['MESSAGE_PREFIX'], - defaultPath: json['DEFAULT_PATH'], - wifSecretKey: json['WIF_SECRET_KEY'], - ); - } - - /// Converts the Cryptocurrency instance to a JSON map. - Map toJson() { - return { - 'NAME': name, - 'SYMBOL': symbol.name.toUpperCase(), - 'NETWORK': network, - 'SOURCE_CODE': sourceCode, - 'COIN_TYPE': coinType.toJson(), - 'SCRIPT_ADDRESS': scriptAddress, - 'PUBLIC_KEY_ADDRESS': publicKeyAddress, - 'SEGWIT_ADDRESS': segwitAddress.toJson(), - 'EXTENDED_PRIVATE_KEY': extendedPrivateKey.toJson(), - 'EXTENDED_PUBLIC_KEY': extendedPublicKey.toJson(), - 'MESSAGE_PREFIX': messagePrefix, - 'DEFAULT_PATH': defaultPath, - 'WIF_SECRET_KEY': wifSecretKey, - }; - } -} diff --git a/lib/hd_wallet/hd_wallet.dart b/lib/hd_wallet/hd_wallet.dart deleted file mode 100644 index ce8a1f6..0000000 --- a/lib/hd_wallet/hd_wallet.dart +++ /dev/null @@ -1,628 +0,0 @@ -import 'dart:convert'; -import 'dart:typed_data'; -import 'package:blockchain_utils/bip39/bip39.dart'; -import 'package:blockchain_utils/crypto/crypto.dart'; -import 'package:blockchain_utils/crypto/ec_encryption.dart'; -import 'package:blockchain_utils/formating/bytes_num_formating.dart'; -import 'package:blockchain_utils/base58/base58.dart' as bs; -import 'package:blockchain_utils/secret_wallet/secret_wallet.dart'; - -import 'cypto_currencies/cyrpto_currency.dart'; - -/// An abstract class representing a Hierarchical Deterministic (HD) Wallet. -/// HD Wallets are used to generate a hierarchy of cryptographic key pairs, -/// making it easier to manage keys for different purposes and improving security. -/// Implementations of this class should provide methods to retrieve -/// private and public keys, as well as other relevant information. -abstract class HdWallet { - /// Gets the private key associated with this HD Wallet. - Uint8List get privateKey; - - /// Gets the public key associated with this HD Wallet. - Uint8List get publicKey; - - /// Gets the index of this HD Wallet in the hierarchical structure. - int get index; - - /// Gets the depth of this HD Wallet in the hierarchical structure. - int get depth; - - /// Gets the chain code associated with this HD Wallet. - Uint8List get chainCode; -} - -class BIP32HWallet extends HdWallet { - /// The seed used to generate Bitcoin keys. - static const String _bitcoinKey = "Bitcoin seed"; - - /// Constructs a BIP32 hierarchical wallet from a private key. - /// - /// [privateKey] is the private key associated with the wallet. - /// [chainCode] is the chain code associated with the wallet. - /// [depth] is the depth of the wallet in the hierarchical structure (default is 0). - /// [index] is the index of the wallet in the hierarchical structure (default is 0). - /// [fingerPrint] is the fingerprint of the wallet (default is a 4-byte empty list). - BIP32HWallet._fromPrivateKey( - {required Uint8List privateKey, - required Uint8List chainCode, - int depth = 0, - int index = 0, - Uint8List? fingerPrint}) - : _fingerPrint = fingerPrint ?? Uint8List(4), - _chainCode = chainCode, - _private = privateKey, - _ecPublic = pointFromScalar(privateKey, true)!, - _fromXpub = false, - _depth = depth, - _index = index; - - /// Constructs a BIP32 hierarchical wallet from a public key. - /// - /// [public] is the public key associated with the wallet. - /// [chainCode] is the chain code associated with the wallet. - /// [depth] is the depth of the wallet in the hierarchical structure (default is 0). - /// [index] is the index of the wallet in the hierarchical structure (default is 0). - /// [fingerPrint] is the fingerprint of the wallet (default is a 4-byte empty list). - BIP32HWallet._fromPublicKey( - {required Uint8List public, - required Uint8List chainCode, - int depth = 0, - int index = 0, - Uint8List? fingerPrint}) - : _fingerPrint = fingerPrint ?? Uint8List(4), - _chainCode = chainCode, - _ecPublic = public, - _fromXpub = true, - _depth = depth, - _index = index; - - /// Factory constructor to create a BIP32 hierarchical wallet from secret storage. - /// - /// [encryptedWallet] is the encrypted wallet data. - /// [password] is the password used to decrypt the wallet. - factory BIP32HWallet.fromSecretStorage( - String encryptedWallet, String password) { - try { - final secret = SecretWallet.decode(encryptedWallet, password); - final toJson = json.decode(secret.credentials); - - final CurrencySymbol symbol = CurrencySymbol.fromName(toJson["currency"]); - if (toJson["xprv"] != null) { - return BIP32HWallet.fromXPrivateKey(toJson["xprv"], - currencySymbol: symbol); - } - return BIP32HWallet.fromXpublicKey(toJson["xpub"], - currencySymbol: symbol); - } catch (e) { - throw ArgumentError("Invalid BIP32 Secret wallet"); - } - } - - int _depth = 0; - - /// Gets the depth of this BIP32 hierarchical wallet in the hierarchical structure. - @override - int get depth => _depth; - - int _index = 0; - - /// Gets the index of this BIP32 hierarchical wallet in the hierarchical structure. - @override - int get index => _index; - - final Uint8List _fingerPrint; - - /// The fingerprint of the wallet. - Uint8List get fingerPrint => _fingerPrint; - - /// Indicates whether this BIP32 hierarchical wallet is the root wallet. - late final bool isRoot = bytesListEqual(_fingerPrint, Uint8List(4)); - - late final Uint8List _private; - - /// The private key associated with this wallet. - @override - Uint8List get privateKey => _fromXpub - ? throw ArgumentError("connot access private from publicKey wallet") - : _private; - - late final Uint8List _ecPublic; - - /// The public key associated with this wallet. - @override - Uint8List get publicKey => _ecPublic; - final bool _fromXpub; - - /// Indicates whether this is a public key wallet. - bool get isPublicKeyWallet => _fromXpub; - - /// Factory constructor to create a BIP32 hierarchical wallet from a mnemonic. - /// - /// [mnemonic] is the BIP-39 mnemonic phrase. - /// [passphrase] is an optional passphrase to be used with the mnemonic (default is an empty string). - /// [key] is the key used for hashing (default is the Bitcoin seed key). - factory BIP32HWallet.fromMnemonic(String mnemonic, - {String passphrase = "", String key = _bitcoinKey}) { - /// Generate a seed from the mnemonic and passphrase using BIP-39. - final seed = BIP39.toSeed(mnemonic, passphrase: passphrase); - - /// Validate the length of the generated seed. - if (seed.length < 16) { - throw ArgumentError("Seed should be at least 128 bits"); - } - if (seed.length > 64) { - throw ArgumentError("Seed should be at most 512 bits"); - } - - /// Compute the HMAC-SHA512 hash of the seed using the provided key. - final hash = hmacSHA512(utf8.encode(key) as Uint8List, seed); - - /// Extract the private key (first 32 bytes) and chain code (remaining bytes). - final private = hash.sublist(0, 32); - final chainCode = hash.sublist(32); - - /// Create and return a BIP32 hierarchical wallet from the private key and chain code. - final wallet = - BIP32HWallet._fromPrivateKey(privateKey: private, chainCode: chainCode); - return wallet; - } - - /// The chain code associated with this BIP32 hierarchical wallet. - final Uint8List _chainCode; - - /// A constant representing the high bit for 32-bit integers. - static const _highBit = 0x80000000; - - /// A constant representing the maximum value of a 31-bit unsigned integer. - static const _maxUint31 = 2147483647; - - /// A constant representing the maximum value of a 32-bit unsigned integer. - static const _maxUint32 = 4294967295; - - /// Override to get the chain code associated with this BIP32 hierarchical wallet. - /// - /// Returns the chain code as a [Uint8List]. - @override - Uint8List get chainCode { - return _chainCode; - } - - /// Adds a new derivation path to the BIP32 hierarchical wallet based on the given [index]. - /// - /// [index] is the index of the new derivation path. - /// - /// Throws [ArgumentError] if the [index] is not a valid UInt32. - /// - /// Returns a new BIP32 hierarchical wallet instance representing the derived path. - BIP32HWallet _addDrive(int index) { - /// Check if the index is a valid UInt32. - if (index > _maxUint32 || index < 0) throw ArgumentError("Expected UInt32"); - - /// Determine if the derivation is for a hardened key. - final isHardened = index >= _highBit; - - /// Create a Uint8List to hold the data. - Uint8List data = Uint8List(37); - - if (isHardened) { - if (_fromXpub) { - throw ArgumentError("Cannot use hardened path in a public wallet"); - } - data[0] = 0x00; - data.setRange(1, 33, _private); - data.buffer.asByteData().setUint32(33, index); - } else { - data.setRange(0, 33, publicKey); - data.buffer.asByteData().setUint32(33, index); - } - - /// Compute the master key using HMAC-SHA512. - final masterKey = hmacSHA512(_chainCode, data); - - /// Extract the derived key and chain code. - final key = masterKey.sublist(0, 32); - final chain = masterKey.sublist(32); - - /// Check if the derived key is not private (i.e., not a valid key). - if (!isPrivate(key)) { - return _addDrive(index + 1); - } - - /// Calculate the child depth and index. - final childDepth = depth + 1; - final childIndex = index; - - /// Calculate the fingerprint for the derived path. - final finger = hash160(publicKey).sublist(0, 4); - - if (_fromXpub) { - /// Create a new public key based on the derived path. - final newPoint = pointAddScalar(_ecPublic, key, true); - - /// Check if the new point is valid. - if (newPoint == null) { - return _addDrive(index + 1); - } - - /// Return a new BIP32 hierarchical wallet from the derived public key. - return BIP32HWallet._fromPublicKey( - public: newPoint, - chainCode: chain, - depth: childDepth, - index: childIndex, - fingerPrint: finger); - } else { - /// Generate a new private key based on the derived path. - final newPrivate = generateTweek(_private, key); - - /// Return a new BIP32 hierarchical wallet from the derived private key. - return BIP32HWallet._fromPrivateKey( - privateKey: newPrivate!, - chainCode: chain, - depth: childDepth, - index: childIndex, - fingerPrint: finger); - } - } - - /// Checks if a given BIP32 derivation path is valid. - /// - /// [path] is the BIP32 derivation path to validate. - /// - /// Returns true if the [path] is valid, otherwise false. - static bool isValidPath(String path) { - /// Define a regular expression to match valid BIP32 derivation paths. - final regex = RegExp(r"^(m\/)?(\d+'?\/)*\d+'?$"); - - /// Check if the [path] matches the regular expression. - return regex.hasMatch(path); - } - - /// Determines whether a given extended private or public key is a root key. - /// - /// [xPrivateKey] is the extended private or public key to check. - /// [cryptocurrency] is the cryptocurrency configuration. - /// [isPublicKey] is a flag indicating whether the key is a public key (default is false). - /// - /// Returns a tuple containing a boolean indicating whether the key is a root key and the key data as a [Uint8List]. - static (bool, Uint8List) isRootKey( - String xPrivateKey, Cryptocurrency cryptocurrency, - {bool isPublicKey = false}) { - /// Decode the extended key from base58 format. - final dec = bs.decodeCheck(xPrivateKey); - - /// Check if the decoded key has the expected length (78 bytes). - if (dec.length != 78) { - throw ArgumentError("Invalid xPrivateKey"); - } - - /// Extract the first 4 bytes (semantic) of the decoded key. - final semantic = dec.sublist(0, 4); - - /// Determine the key type based on whether it's a public or private key. - final type = isPublicKey - ? cryptocurrency.extendedPublicKey.getExtendedType(semantic) - : cryptocurrency.extendedPrivateKey.getExtendedType(semantic); - - /// If the key type is null, it's invalid for the given network. - if (type == null) { - throw ArgumentError("Invalid network"); - } - - /// Get the expected network prefix for the key type. - final networkPrefix = isPublicKey - ? cryptocurrency.extendedPublicKey.getExtended(type) - : cryptocurrency.extendedPrivateKey.getExtended(type); - - /// Create the expected prefix for network identification. - final prefix = hexToBytes("${networkPrefix}000000000000000000"); - - /// Check if the prefix of the decoded key matches the expected prefix. - return (bytesListEqual(prefix, dec.sublist(0, prefix.length)), dec); - } - - /// Creates a BIP32 hierarchical wallet from an extended private key. - /// - /// [xPrivateKey] is the extended private key. - /// [foreRootKey] is an optional flag indicating whether the key is expected to be a root key. - /// [currencySymbol] is the currency symbol (default is CurrencySymbol.btc). - /// - /// Returns a BIP32 hierarchical wallet instance. - factory BIP32HWallet.fromXPrivateKey(String xPrivateKey, - {bool? foreRootKey, CurrencySymbol currencySymbol = CurrencySymbol.btc}) { - /// Get the cryptocurrency configuration based on the currency symbol. - final currency = Cryptocurrency.fromSymbol(currencySymbol); - - /// Check if the key is a root key, and optionally verify if it's expected to be a root key. - final check = isRootKey(xPrivateKey, currency); - if (foreRootKey != null) { - if (check.$1 != foreRootKey) { - throw ArgumentError( - "The key is not a valid ${foreRootKey ? "rootXPrivateKey" : "xPrivateKey"}"); - } - } - - /// Decode the key to extract relevant information. - final decode = _decodeXKeys(check.$2); - final chain = decode[4]; - final private = decode[5]; - final index = intFromBytes(decode[3], Endian.big); - final depth = intFromBytes(decode[1], Endian.big); - - /// Create a BIP32 hierarchical wallet from the decoded key components. - return BIP32HWallet._fromPrivateKey( - privateKey: private, - chainCode: chain, - depth: depth, - fingerPrint: decode[2], - index: index); - } - - /// Decodes an extended private or public key into its individual components. - /// - /// [xKey] is the extended private or public key to decode. - /// [isPublic] is a flag indicating whether the key is a public key (default is false). - /// - /// Returns a list containing the decoded key components. - static List _decodeXKeys(Uint8List xKey, {bool isPublic = false}) { - return [ - xKey.sublist(0, 4), - - /// Semantic - xKey.sublist(4, 5), - - /// Depth - xKey.sublist(5, 9), - - /// Fingerprint - xKey.sublist(9, 13), - - /// Child index - xKey.sublist(13, 45), - - /// Chain code - xKey.sublist(isPublic ? 45 : 46) - - /// Public or private key - ]; - } - - /// Converts the BIP32 hierarchical wallet to its extended public key representation. - /// - /// [semantic] specifies the extended key type (default is ExtendedKeyType.p2pkh). - /// [currencySymbol] is the currency symbol (default is CurrencySymbol.btc). - /// - /// Returns the extended public key as a string. - String toXpublicKey( - {ExtendedKeyType semantic = ExtendedKeyType.p2pkh, - CurrencySymbol currencySymbol = CurrencySymbol.btc}) { - /// Get the cryptocurrency configuration based on the currency symbol. - final currency = Cryptocurrency.fromSymbol(currencySymbol); - - /// Retrieve the semantic version hex for the given extended key type. - final versionHex = currency.extendedPublicKey.getExtended(semantic); - - /// Check if the network supports the specified semantic version. - if (versionHex == null) { - throw ArgumentError("Network does not support this semantic version"); - } - - /// Convert the version hex to bytes. - final version = hexToBytes(versionHex); - - /// Convert depth, fingerprint, and index to bytes. - final depthBytes = Uint8List.fromList([depth]); - final fingerPrintBytes = _fingerPrint; - final indexBytes = packUint32BE(index); - - /// Combine all key components into a single byte list. - final data = publicKey; - final result = Uint8List.fromList([ - ...version, - ...depthBytes, - ...fingerPrintBytes, - ...indexBytes, - ..._chainCode, - ...data - ]); - - /// Encode the result into a base58 check-encoded string. - final check = bs.encodeCheck(result); - - return check; - } - - /// Creates a BIP32 hierarchical wallet from an extended public key (xPub). - /// - /// [xPublicKey] is the extended public key to create the wallet from. - /// [currencySymbol] is the currency symbol (default is CurrencySymbol.btc). - /// [forceRootKey] is a flag to force treating the key as a root key (optional). - /// - /// Returns a BIP32 hierarchical wallet instance initialized with the provided extended public key. - factory BIP32HWallet.fromXpublicKey(String xPublicKey, - {CurrencySymbol currencySymbol = CurrencySymbol.btc, - bool? forceRootKey}) { - /// Get the cryptocurrency configuration based on the currency symbol. - final Cryptocurrency currency = Cryptocurrency.fromSymbol(currencySymbol); - - /// Check if the provided xPublicKey is a valid root key. - final check = isRootKey(xPublicKey, currency, isPublicKey: true); - - /// If forceRootKey is specified, verify that the key matches the expected type. - if (forceRootKey != null) { - if (check.$1 != forceRootKey) { - throw ArgumentError( - "The provided key is not a valid ${forceRootKey ? "rootPublicKey" : "publicKey"}"); - } - } - - /// Decode the components of the extended public key. - final decode = _decodeXKeys(check.$2, isPublic: true); - - /// Extract chain code, public key, index, and depth from the decoded components. - final chain = decode[4]; - final publicKey = decode[5]; - final index = intFromBytes(decode[3], Endian.big); - final deph = intFromBytes(decode[1], Endian.big); - - /// Create and return a BIP32 hierarchical wallet from the extracted components. - return BIP32HWallet._fromPublicKey( - public: publicKey, - chainCode: chain, - depth: deph, - fingerPrint: decode[2], - index: index); - } - - /// Generates an extended private key (xPrv) string for this hierarchical wallet. - /// - /// [semantic] is the semantic version for the extended private key (default is ExtendedKeyType.p2pkh). - /// [currencySymbol] is the currency symbol (default is CurrencySymbol.btc). - /// - /// Returns an extended private key string based on the provided semantic version and currency. - /// - /// Throws [ArgumentError] if attempting to access private key from a public key wallet. - /// Throws [ArgumentError] if the network does not support the specified semantic version. - String toXpriveKey( - {ExtendedKeyType semantic = ExtendedKeyType.p2pkh, - CurrencySymbol currencySymbol = CurrencySymbol.btc}) { - /// Check if the wallet is derived from an extended public key (xPub). - if (_fromXpub) { - throw ArgumentError("Cannot access private key from a publicKey wallet"); - } - - /// Get the cryptocurrency configuration based on the currency symbol. - final n = Cryptocurrency.fromSymbol(currencySymbol); - - /// Retrieve the semantic version for the extended private key. - final versionHex = n.extendedPrivateKey.getExtended(semantic); - - /// Ensure that the network supports the specified semantic version. - if (versionHex == null) { - throw ArgumentError("Network does not support this semantic version"); - } - - /// Convert the version to bytes. - final version = hexToBytes(versionHex); - - /// Create bytes for depth, fingerprint, index, and private key data. - final depthBytes = Uint8List.fromList([depth]); - final fingerPrintBytes = _fingerPrint; - final indexBytes = packUint32BE(index); - final data = Uint8List.fromList([0, ..._private]); - - /// Prepend 0 to indicate private key. - - /// Combine all bytes to create the extended private key. - final result = Uint8List.fromList([ - ...version, - ...depthBytes, - ...fingerPrintBytes, - ...indexBytes, - ..._chainCode, - ...data - ]); - - /// Encode and return the extended private key as a string with a checksum. - final check = bs.encodeCheck(result); - return check; - } - - /// Drives and returns a hierarchical wallet (BIP32HWallet) along the specified BIP32 derivation path. - /// - /// [masterWallet] is the master hierarchical wallet from which the path is derived. - /// [path] is the BIP32 derivation path string to follow. - /// - /// Returns a new hierarchical wallet derived from the master wallet following the provided path. - /// - /// Throws [ArgumentError] if the provided BIP32 path is invalid. - /// Throws [ArgumentError] if attempting to derive a hardened path from a public wallet. - /// Throws [ArgumentError] if the path contains an invalid index or exceeds maximum index value. - static BIP32HWallet drivePath(BIP32HWallet masterWallet, String path) { - /// Check if the provided BIP32 path is valid. - if (!isValidPath(path)) { - throw ArgumentError("Invalid BIP32 Path"); - } - - /// Split the path into individual segments and remove the leading "m" or "M" if present. - List splitPath = path.split("/"); - if (splitPath[0] == "m" || splitPath[0] == "M") { - splitPath = splitPath.sublist(1); - } - - /// Use fold to iteratively drive the hierarchical wallet along the path. - return splitPath.fold(masterWallet, (BIP32HWallet prevHd, String indexStr) { - int index; - if (indexStr.endsWith("'")) { - /// Handle hardened path segment. - if (masterWallet._fromXpub) { - throw ArgumentError( - "Cannot drive hardened path from a public wallet"); - } - index = int.parse(indexStr.substring(0, indexStr.length - 1)); - if (index > _maxUint31 || index < 0) { - throw ArgumentError("Invalid index"); - } - - /// Derive a new hierarchical wallet with a hardened index. - final newDrive = prevHd._addDrive(index + _highBit); - return newDrive; - } else { - /// Handle non-hardened path segment. - index = int.parse(indexStr); - - /// Derive a new hierarchical wallet with a non-hardened index. - final newDrive = prevHd._addDrive(index); - return newDrive; - } - }); - } - - /// Converts the BIP32 hierarchical wallet data into a JSON representation. - /// - /// [semantic] specifies the extended key type semantic (e.g., P2PKH). - /// [currencySymbol] represents the currency symbol (e.g., BTC). - /// - /// Returns a Map containing the JSON representation of the wallet data. - Map _toJson({ - ExtendedKeyType semantic = ExtendedKeyType.p2pkh, - CurrencySymbol currencySymbol = CurrencySymbol.btc, - }) { - final Map toJson = { - "index": index, - "depth": depth, - "semantic": semantic.name, - "currency": currencySymbol.name, - "chainCode": bytesToHex(chainCode), - }; - if (!_fromXpub) { - toJson["xprv"] = - toXpriveKey(currencySymbol: currencySymbol, semantic: semantic); - } else { - toJson["xpub"] = - toXpublicKey(semantic: semantic, currencySymbol: currencySymbol); - } - - return toJson; - } - - /// Converts the BIP32 hierarchical wallet data into a secure JSON representation for secret storage. - /// - /// [password] is the password used to encrypt the secret storage. - /// [semantic] specifies the extended key type semantic (e.g., P2PKH). - /// [currencySymbol] represents the currency symbol (e.g., BTC). - /// [encoding] specifies the encoding format for the secret wallet data (e.g., JSON). - /// - /// Returns a secure JSON representation of the wallet data encrypted with the provided password. - String toSecretStorage( - String password, { - ExtendedKeyType semantic = ExtendedKeyType.p2pkh, - CurrencySymbol currencySymbol = CurrencySymbol.btc, - SecretWalletEncoding encoding = SecretWalletEncoding.json, - }) { - final toJs = _toJson(currencySymbol: currencySymbol, semantic: semantic); - final toStr = json.encode(toJs); - final secret = SecretWallet.encode(toStr, password); - return secret.encrypt(encoding: encoding); - } -} diff --git a/lib/hex/hex.dart b/lib/hex/hex.dart new file mode 100644 index 0000000..f68161d --- /dev/null +++ b/lib/hex/hex.dart @@ -0,0 +1,105 @@ +// Copyright (C) 2016 Dmitry Chestnykh +// MIT License. See LICENSE file for details. + +import 'package:blockchain_utils/binary/binary_operation.dart'; + +// ignore: library_private_types_in_public_api +const _Hex hex = _Hex(); + +class _Hex { + const _Hex(); + + /// Encode a single nibble (4 bits) to a hexadecimal character. + /// + /// Input: b - an integer representing a nibble (0-15). + /// Output: Returns a string with the hexadecimal representation of the nibble. + String _encodeNibble(int b) { + // b >= 0 + int result = b + 48; + // b > 9 + result += ((9 - b) >> 8) & (-48 + 65 - 10); + + return String.fromCharCode(result); + } + + /// Encode a single nibble (4 bits) to a lowercase hexadecimal character. + /// + /// Input: b - an integer representing a nibble (0-15). + /// Output: Returns a string with the lowercase hexadecimal representation of the nibble. + String _encodeNibbleLower(int b) { + int result = b + 48; + // b > 9 + result += ((9 - b) >> 8) & (-48 + 97 - 10); + + return String.fromCharCode(result); + } + +// Invalid character used in decoding to indicate +// that the character to decode is out of range of +// the hex alphabet and cannot be decoded. + static const _invalidHexNibble = 256; + + /// Decode a hexadecimal character to its integer value. + /// + /// Input: c - an integer representing the ASCII code of the character. + /// Output: Returns the integer value of the hexadecimal character, or INVALID_HEX_NIBBLE for invalid characters. + int _decodeNibble(int c) { + int result = _invalidHexNibble; + + result += (((47 - c) & (c - 58)) >> 8) & (-_invalidHexNibble + c - 48); + // A-F: c > 64 and c < 71 + result += (((64 - c) & (c - 71)) >> 8) & (-_invalidHexNibble + c - 65 + 10); + // a-f: c > 96 and c < 103 + result += + (((96 - c) & (c - 103)) >> 8) & (-_invalidHexNibble + c - 97 + 10); + + return result; + } + + /// Encode a bytes as a hex string. + /// + /// Input: data - the bytes to be encoded. + /// lowerCase - a flag indicating whether to use lowercase hexadecimal characters (default is true). + /// Output: Returns a hex-encoded string. + String encode(List data, [bool lowerCase = true]) { + final enc = lowerCase ? _encodeNibbleLower : _encodeNibble; + String s = ""; + for (int i = 0; i < data.length; i++) { + final byte = data[i]; + if (byte < 0 || byte > mask8) { + throw FormatException("invalid byte ${byte.abs().toRadixString(16)}"); + } + s += enc(data[i] >> 4); + s += enc(data[i] & 0x0F); + } + return s; + } + + /// Decode a hex string into a Uint8Array. + /// + /// Input: hex - the hex string to be decoded. + /// Output: Returns a bytes with data decoded from the hex string. + /// + /// Throws an error if the hex string length is not divisible by 2 or contains non-hex characters. + List decode(String hex) { + if (hex.isEmpty) { + return List.empty(); + } + if (!hex.length.isEven) { + throw const FormatException("Hex input string must be divisible by two"); + } + final result = List.filled(hex.length ~/ 2, 0); + int haveBad = 0; + for (int i = 0; i < hex.length; i += 2) { + int v0 = _decodeNibble(hex.codeUnitAt(i)); + int v1 = _decodeNibble(hex.codeUnitAt(i + 1)); + result[i ~/ 2] = ((v0 << 4) | v1) & mask8; + haveBad |= v0 & _invalidHexNibble; + haveBad |= v1 & _invalidHexNibble; + } + if (haveBad != 0) { + throw const FormatException("Incorrect characters for hex decoding"); + } + return result; + } +} diff --git a/lib/numbers/bigint_utils.dart b/lib/numbers/bigint_utils.dart new file mode 100644 index 0000000..6493b4d --- /dev/null +++ b/lib/numbers/bigint_utils.dart @@ -0,0 +1,367 @@ +import 'dart:typed_data'; +import 'package:blockchain_utils/binary/utils.dart'; + +class BigintUtils { + /// Converts a BigInt 'num' into a List of bytes with a specified 'order'. + /// + /// This method converts 'num' into a hexadecimal string, ensuring it's at least + /// 'l' bytes long, and then creates a List of bytes from this hexadecimal + /// string. + /// + /// Returns a List containing the bytes of 'num' with a length determined + /// by 'order'. + /// + static List bigintToBytesWithPadding(BigInt x, BigInt order) { + String hexStr = x.toRadixString(16); + int hexLen = hexStr.length; + int byteLen = (order.bitLength + 7) ~/ 8; + + if (hexLen < byteLen * 2) { + hexStr = '0' * (byteLen * 2 - hexLen) + hexStr; + } + + return BytesUtils.fromHexString(hexStr); + } + + static int lengthInBytes(BigInt value) { + return (value.bitLength + 7) ~/ 8; + } + + /// Converts a sequence of bits represented as a byte array to a BigInt integer. + /// + /// This method takes a byte array 'data' containing a sequence of bits and + /// converts it into a BigInt integer 'x' by interpreting the binary data as + /// a hexadecimal string. The result 'x' is then right-shifted, if necessary, + /// to ensure it doesn't exceed 'qlen' bits in length. + /// + /// Parameters: + /// - data: A List containing the bits to be converted. + /// - qlen: The maximum bit length for the resulting integer. + /// + /// Returns: + /// - BigInt: A BigInt integer representing the converted bits with 'qlen' bits. + /// + /// Details: + /// - The method first converts the binary data to a hexadecimal string, which + /// is then parsed into a BigInt. + /// - If the length of 'x' exceeds 'qlen', it's right-shifted to reduce it to + /// the specified length. Otherwise, 'x' remains unchanged. + /// + /// Note: The method assumes that 'data' is big-endian (most significant bits first). + /// Any padding bits will be removed as needed to match 'qlen'. + static BigInt bitsToBigIntWithLengthLimit(List data, int qlen) { + BigInt x = BigInt.parse(BytesUtils.toHexString(data), radix: 16); + int l = data.length * 8; + + if (l > qlen) { + return (x >> (l - qlen)); + } + return x; + } + + /// Converts a sequence of bits represented as a byte array to octets. + /// + /// This method takes a byte array 'data' containing a sequence of bits and + /// converts it to octets by first converting it to a BigInt 'z1' and then + /// computing 'z2' as 'z1' modulo 'order'. If 'z2' is negative, it is replaced + /// with 'z1'. The resulting 'z2' is then converted to a byte array with padding + /// to match the length of 'order' in octets. + /// + /// Parameters: + /// - data: A List containing the bits to be converted. + /// - order: A BigInt representing the order of a cryptographic curve. + /// + /// Returns: + /// - List: A byte array representing the converted bits as octets. + /// + /// Details: + /// - The method first converts the binary data to a BigInt 'z1'. + /// - It then computes 'z2' by taking 'z1' modulo 'order' and ensures that 'z2' + /// is not negative; if it is, 'z2' is replaced with 'z1'. + /// - Finally, 'z2' is converted to a byte array with padding to match the length + /// of 'order' in octets. The output is a byte array suitable for cryptographic use. + static List bitsToOctetsWithOrderPadding(List data, BigInt order) { + BigInt z1 = bitsToBigIntWithLengthLimit(data, order.bitLength); + BigInt z2 = z1 - order; + if (z2 < BigInt.zero) { + z2 = z1; + } + final bytes = bigintToBytesWithPadding(z2, order); + return bytes; + } + + /// Calculates the byte length required to represent a BigInt 'order'. + /// + /// The method converts 'order' to a hexadecimal string representation and + /// calculates the byte length needed to store the corresponding value. + /// + /// Returns the number of bytes required to represent 'order'. + /// + static int orderLen(BigInt value) { + String hexOrder = value.toRadixString(16); + int byteLength = (hexOrder.length + 1) ~/ 2; // Calculate bytes needed + return byteLength; + } + + /// Calculates the modular multiplicative inverse of 'a' modulo 'm'. + /// + /// Returns the value 'x' such that (a * x) % m == 1, or 0 if 'a' has no inverse. + /// + static BigInt inverseMod(BigInt a, BigInt m) { + if (a == BigInt.zero) { + // 'a' has no inverse; return 0. + return BigInt.zero; + } + if (a >= BigInt.one && a < m) { + // If 'a' is in the range [1, m-1], use the built-in modInverse method. + return a.modInverse(m); + } + + BigInt lm = BigInt.one, + hm = BigInt.zero; // Initialize low and high quotients. + BigInt low = a % m, high = m; // Initialize low and high remainders. + + while (low > BigInt.one) { + // Continue the Euclidean algorithm until 'low' becomes 1. + BigInt r = high ~/ low; + BigInt nm = hm - lm * r; + BigInt newLow = high - low * r; + hm = lm; + high = low; + lm = nm; + low = newLow; + } + + return lm % m; + } + + /// Compute the Non-Adjacent Form (NAF) of a given integer. + /// + /// Parameters: + /// - `mult`: The integer for which NAF is computed. + /// + /// Returns: + /// - A list of BigInt values representing the NAF of the input integer. + static List computeNAF(BigInt mult) { + List nafList = []; + + while (mult != BigInt.zero) { + if (mult.isOdd) { + BigInt nafDigit = mult % BigInt.from(4); + + // Ensure that the NAF digit is within the range [-2, 2] + if (nafDigit >= BigInt.two) { + nafDigit -= BigInt.from(4); + } + + nafList.add(nafDigit); + mult -= nafDigit; + } else { + nafList.add(BigInt.zero); + } + + mult ~/= BigInt.two; + } + + return nafList; + } + + /// Converts a BigInt value to a binary string with optional zero padding. + /// + /// This method converts a given BigInt value to its binary representation as a string. + /// Optionally, you can specify the desired bit length by providing `zeroPadBitLen`. If provided, + /// the method will pad the binary string with leading zeros to reach the specified bit length. + /// + /// Parameters: + /// - `value`: The BigInt value to be converted to binary. + /// - `zeroPadBitLen`: The desired bit length for the binary representation (optional). + /// + /// Returns: + /// A binary string representation of the `value`, possibly zero-padded. + /// + /// Example: + /// ```dart + /// BigInt number = BigInt.parse('10'); + /// int bitLength = 8; // Desired bit length + /// String binaryString = toBinary(number, bitLength); + /// print('Binary representation: $binaryString'); + /// ``` + /// + /// This method is useful for converting BigInt values to binary strings for various applications. + /// + static String toBinary(BigInt value, int zeroPadBitLen) { + String binaryStr = value.toRadixString(2); + if (zeroPadBitLen > 0) { + return binaryStr.padLeft(zeroPadBitLen, '0'); + } else { + return binaryStr; + } + } + + /// Divides a BigInt value by a specified radix and returns both the quotient and the remainder. + /// + /// This method divides a given BigInt value by a specified radix and returns a tuple containing + /// the quotient and the remainder of the division. + /// + /// Parameters: + /// - `value`: The BigInt value to be divided. + /// - `radix`: The divisor, typically representing a base (e.g., 10 for base 10). + /// + /// Returns: + /// A tuple of two BigInt values where the first element is the quotient, and the second element + /// is the remainder of the division. + /// + /// Example: + /// ```dart + /// BigInt number = BigInt.parse('12345'); + /// int radix = 10; // Decimal base + /// var result = divmod(number, radix); + /// print('Quotient: ${result.item1}, Remainder: ${result.item2}'); + /// ``` + /// + /// This method is useful for performing division and obtaining both the quotient and the remainder. + /// + static (BigInt, BigInt) divmod(BigInt value, int radix) { + final div = value ~/ BigInt.from(radix); + final mod = value % BigInt.from(radix); + return (div, mod); + } + + /// Converts a BigInt to a list of bytes with the specified byte order and optional length. + /// + /// This method converts a BigInt into a list of bytes, with the option to specify the + /// desired byte order (Endian.big or Endian.little) and an optional length. + /// + /// Parameters: + /// - `val`: The BigInt to be converted into bytes. + /// - `length`: The optional length of the resulting byte list (in bytes). + /// - `order`: The byte order (Endian) used for the byte representation. + /// + /// Returns: + /// A list of bytes representing the BigInt value with the specified byte order and length. + /// + /// Example: + /// ```dart + /// BigInt number = BigInt.parse('123456789'); + /// List bytes = toBytes(number, order: Endian.big, length: 4); + /// ``` + /// + /// This method is useful for encoding BigInt values into byte arrays with control over + /// byte order and length. + /// + static List toBytes(BigInt val, + {int? length, Endian order = Endian.big}) { + if (length == null) { + String byteData = + val.toRadixString(16).padLeft((val.bitLength / 4).ceil(), '0'); + if (byteData.length.isOdd) { + byteData = "0$byteData"; // Add a leading "0" if the length is odd + } + List byteList = []; + for (var i = 0; i < byteData.length; i += 2) { + byteList.add(int.parse(byteData.substring(i, i + 2), radix: 16)); + } + + return List.from(byteList); + } + if (length == 0) { + return []; + } + + final byteData = val.toRadixString(16).padLeft(length * 2, '0'); + List byteList = []; + for (var i = 0; i < byteData.length; i += 2) { + byteList.add(int.parse(byteData.substring(i, i + 2), radix: 16)); + } + + if (order == Endian.little) { + byteList = byteList.reversed.toList(); + } + assert(byteList.length == length); + return List.from(byteList); + } + + /// Converts a list of bytes to a BigInt using the specified byte order. + /// + /// This method takes a list of bytes and converts it into a BigInt value, + /// considering the specified byte order (Endian.big or Endian.little). + /// + /// Parameters: + /// - `bytes`: The list of bytes to convert to a BigInt. + /// - `byteOrder`: The byte order (Endian) used when interpreting the byte sequence. + /// + /// Returns: + /// A BigInt representing the value of the provided byte sequence. + /// + /// Example: + /// ```dart + /// List byteList = [0x12, 0x34, 0x56]; + /// BigInt result = fromBytes(byteList, byteOrder: Endian.big); + /// ``` + /// + /// This method is useful for decoding byte arrays into BigInt values with the desired byte order. + /// + static BigInt fromBytes(List bytes, {Endian byteOrder = Endian.big}) { + if (byteOrder == Endian.little) { + bytes = List.from(bytes.reversed.toList()); + } + BigInt result = BigInt.from(0); + for (int i = 0; i < bytes.length; i++) { + /// Add each byte to the result, considering its position and byte order. + result += BigInt.from(bytes[bytes.length - i - 1]) << (8 * i); + } + + return result; + } + + /// Converts a BigInt to a list of bytes with the specified length and endianness. + /// + /// This method takes a BigInt and converts it into a list of bytes, ensuring + /// that the resulting byte list has the specified length and byte order. + /// + /// Parameters: + /// - `dataInt`: The BigInt to convert to bytes. + /// - `length`: The desired length of the byte list (in bytes). If not provided, it will be calculated. + /// - `order`: The byte order (Endian) of the resulting byte list (Endian.big or Endian.little). + /// + /// Returns: + /// A list of bytes representing the BigInt value. + /// + /// Throws: + /// - [ArgumentError] if attempting to convert a negative BigInt to bytes. + /// + /// Example: + /// ```dart + /// BigInt value = BigInt.from(12345); + /// List bytes = toBytesLen(value, length: 2, order: Endian.big); + /// ``` + /// + /// This method is useful for converting BigInt values to byte arrays with specified properties. + /// + static List toBytesLen( + BigInt dataInt, { + int? length, + Endian order = Endian.big, + }) { + // Calculate the number of bytes needed to represent the BigInt + length = length ?? (dataInt.bitLength + 7) ~/ 8; + // Ensure the BigInt is non-negative + if (dataInt.isNegative) { + throw ArgumentError('Cannot convert negative BigInt to bytes'); + } + + List byteList = []; + + for (int i = 0; i < length; i++) { + final byte = dataInt.toUnsigned(8).toInt(); + byteList.add(byte); + dataInt >>= 8; + } + + if (order == Endian.little) { + byteList = byteList.reversed.toList(); + } + + return byteList; + } +} diff --git a/lib/numbers/int_utils.dart b/lib/numbers/int_utils.dart new file mode 100644 index 0000000..111398d --- /dev/null +++ b/lib/numbers/int_utils.dart @@ -0,0 +1,56 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/binary/binary_operation.dart'; + +/// Utility class for integer-related operations and conversions. +class IntUtils { + /// Converts an integer to a byte list with the specified length and endianness. + /// + /// If the [length] is not provided, it is calculated based on the bit length + /// of the integer, ensuring minimal byte usage. The [endianness] determines + /// whether the most significant bytes are at the beginning (big-endian) or end + /// (little-endian) of the resulting byte list. + static List toBytesLength(int dataInt, + {int? length, Endian endianness = Endian.big}) { + length = length ?? ((dataInt > 0 ? dataInt.bitLength : 1) + 7) ~/ 8; + List bytes = toBytes(dataInt, length: length, byteOrder: endianness); + + return bytes; + } + + /// Converts an integer to a byte list with the specified length and endianness. + /// + /// If the [length] is not provided, it is calculated based on the bit length + /// of the integer, ensuring minimal byte usage. The [byteOrder] determines + /// whether the most significant bytes are at the beginning (big-endian) or end + /// (little-endian) of the resulting byte list. + static List toBytes(int val, + {int? length, Endian byteOrder = Endian.big}) { + length ??= (val.bitLength / 8).ceil(); + List byteList = List.filled(length, 0); + + for (var i = 0; i < length; i++) { + byteList[i] = (val & mask8); + val >>= 8; + } + + if (byteOrder == Endian.little) { + byteList = List.from(byteList.reversed.toList()); + } + + return byteList; + } + + static int fromBytes(List bytes, {Endian byteOrder = Endian.big}) { + if (byteOrder == Endian.little) { + bytes = List.from(bytes.reversed.toList()); + } + + int result = 0; + for (var i = 0; i < bytes.length; i++) { + result |= (bytes[i] << (8 * i)); + } + + return result; + } +} diff --git a/lib/secret_wallet/secret_wallet.dart b/lib/secret_wallet/secret_wallet.dart index 745a5b5..9b0af22 100644 --- a/lib/secret_wallet/secret_wallet.dart +++ b/lib/secret_wallet/secret_wallet.dart @@ -1,38 +1,44 @@ import 'dart:convert'; -import 'dart:typed_data'; - -import 'package:blockchain_utils/crypto/crypto.dart'; -import 'package:blockchain_utils/formating/bytes_num_formating.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/crypto/crypto/aes/aes.dart'; +import 'package:blockchain_utils/crypto/crypto/ctr/ctr.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/crypto/crypto/hmac/hmac.dart'; +import 'package:blockchain_utils/crypto/crypto/pbkdf2/pbkdf2.dart'; +import 'package:blockchain_utils/crypto/crypto/scrypt/scrypt.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/string/string.dart'; import 'package:blockchain_utils/uuid/uuid.dart'; -import 'package:pointycastle/export.dart'; -import 'package:pointycastle/key_derivators/pbkdf2.dart' as pbkdf2; -import 'package:pointycastle/key_derivators/scrypt.dart' as scrypt; -enum SecretWalletEncoding { base64, json } +/// Enum representing different encoding formats for secret wallets. +enum SecretWalletEncoding { + base64, // Base64 encoding + json, // JSON encoding +} -/// Abstract class for key derivators. -abstract class _KeyDerivator { - Uint8List deriveKey(Uint8List password); +/// Abstract class representing a key derivation strategy. +abstract class _Derivator { + List deriveKey(List password); - String get name; - Map encode(); + String get name; // The name of the key derivation strategy. + Map + encode(); // Method to encode the parameters of the strategy. } -/// Implementation of PBKDF2 key derivator. -class _PBDKDF2KeyDerivator extends _KeyDerivator { - _PBDKDF2KeyDerivator(this.iterations, this.salt, this.dklen); +/// A class implementing key derivation using the PBKDF2 algorithm. +class _PBDKDF2Derivator extends _Derivator { + _PBDKDF2Derivator(this.iterations, this.salt, this.dklen); final int iterations; - final Uint8List salt; + final List salt; final int dklen; - static final Mac mac = HMac(SHA256Digest(), 64); - @override - Uint8List deriveKey(Uint8List password) { - final impl = pbkdf2.PBKDF2KeyDerivator(mac) - ..init(Pbkdf2Parameters(salt, iterations, dklen)); - - return impl.process(password); + List deriveKey(List password) { + return PBKDF2.deriveKey( + mac: () => HMAC(() => SHA256(), password), + salt: salt, + iterations: iterations, + length: dklen); } @override @@ -41,28 +47,26 @@ class _PBDKDF2KeyDerivator extends _KeyDerivator { 'c': iterations, 'dklen': dklen, 'prf': 'hmac-sha256', - 'salt': bytesToHex(salt) + 'salt': BytesUtils.toHexString(salt) }; } @override - final String name = 'pbkdf2'; + final String name = 'pbkdf2'; // Name of the PBKDF2 strategy. } -/// Implementation of Scrypt key derivator. -class _ScryptKeyDerivator extends _KeyDerivator { - _ScryptKeyDerivator(this.dklen, this.n, this.r, this.p, this.salt); +/// A class implementing key derivation using the Scrypt algorithm. +class _ScryptDerivator extends _Derivator { + _ScryptDerivator(this.dklen, this.n, this.r, this.p, this.salt); final int dklen; final int n; final int r; final int p; - final Uint8List salt; + final List salt; @override - Uint8List deriveKey(Uint8List password) { - final impl = scrypt.Scrypt()..init(ScryptParameters(n, r, p, dklen, salt)); - - return impl.process(password); + List deriveKey(List password) { + return Scrypt.deriveKey(password, salt, dkLen: dklen, n: n, r: r, p: p); } @override @@ -72,18 +76,16 @@ class _ScryptKeyDerivator extends _KeyDerivator { 'n': n, 'r': r, 'p': p, - 'salt': bytesToHex(salt), + 'salt': BytesUtils.toHexString(salt), }; } @override - final String name = 'scrypt'; + final String name = 'scrypt'; // Name of the Scrypt strategy. } -/// Represents a wallet file. Wallets are used to securely store credentials -/// like a private key belonging to an Ethereum address. The private key in a -/// wallet is encrypted with a secret password that needs to be known in order -/// to obtain the private key. +/// The `SecretWallet` class represents a secret wallet that stores sensitive credentials +/// using a specified key derivation strategy. class SecretWallet { const SecretWallet._( this.credentials, @@ -93,165 +95,143 @@ class SecretWallet { this._id, ); - /// Creates a new wallet wrapping the specified [credentials] by encrypting - /// the private key with the [password] - /// You can configure the parameter N of the scrypt algorithm if you need to. - /// The default value for [scryptN] is 8192. Be aware that this N must be a - /// power of two. + /// Factory method to create a `SecretWallet` with encoded credentials. + /// + /// - `credentials`: The encoded credentials to be stored in the wallet. + /// - `password`: The password used to derive the encryption key. + /// - `scryptN`: Parameter 'n' for the Scrypt key derivation function (default is 8192). + /// - `p`: Parameter 'p' for the Scrypt key derivation function (default is 1). /// - /// using a separate thread for encode or decode secret wallet. + /// Returns a `SecretWallet` instance with the encoded credentials. factory SecretWallet.encode( String credentials, String password, { int scryptN = 8192, int p = 1, }) { - final passwordBytes = Uint8List.fromList(utf8.encode(password)); + final passwordBytes = StringUtils.encode(password); - /// Generate a random salt for key derivation. - final salt = generateRandom(size: 32); + final salt = QuickCrypto.generateRandom(32); - /// Create a Scrypt key derivator with specified parameters. - final derivator = _ScryptKeyDerivator(32, scryptN, 8, p, salt); + final derivator = _ScryptDerivator(32, scryptN, 8, p, salt); - /// Generate a random UUID and convert it to a buffer. final uuid = UUID.toBuffer(UUID.generateUUIDv4()); - /// Generate a random initialization vector (IV) for encryption. - final iv = generateRandom(size: 128 ~/ 8); + final iv = QuickCrypto.generateRandom(128 ~/ 8); - /// Create a SecretWallet instance with the provided parameters. return SecretWallet._(credentials, derivator, passwordBytes, iv, uuid); } static Map _toJsonEcoded(String encoded) { try { final bs64 = base64Decode(encoded); - return json.decode(utf8.decode(bs64)); + return json.decode(StringUtils.decode(bs64)); } catch (e) { return json.decode(encoded); } } - /// using a separate thread for encode or decode secret wallet. + /// Factory method to decode and create a `SecretWallet` from an encoded string and a password. + /// + /// - `encoded`: The encoded string containing wallet data. + /// - `password`: The password used to derive the encryption key. + /// + /// Returns a `SecretWallet` instance decoded from the input data, or throws an error + /// if decoding or password validation fails. factory SecretWallet.decode(String encoded, String password) { - /* - In order to read the wallet and obtain the secret key stored in it, we - need to do the following: - 1: Key Derivation: Based on the key derivator specified (either pbdkdf2 or - scryt), we need to use the password to obtain the aes key used to - decrypt the private key. - 2: Using the obtained aes key and the iv parameter, decrypt the private - key stored in the wallet. - */ - final data = _toJsonEcoded(encoded); - /// Ensure version is 3, only version that we support at the moment final version = data['version']; if (version != 3) { - throw ArgumentError.value( - version, - 'version', - 'Library only supports ' - 'version 3 of wallet files at the moment. However, the following value' - ' has been given:', - ); + throw ArgumentError("Library only supports version 3"); } - final crypto = data['crypto'] ?? data['Crypto']; + final params = data['crypto'] ?? data['Crypto']; - final kdf = crypto['kdf'] as String; - _KeyDerivator derivator; + final String kdf = params['kdf']; + _Derivator derivator; switch (kdf) { case 'pbkdf2': - final derParams = crypto['kdfparams'] as Map; + final derParams = params['kdfparams'] as Map; if (derParams['prf'] != 'hmac-sha256') { - throw ArgumentError( - 'Invalid prf supplied with the pdf: was ${derParams["prf"]}, expected hmac-sha256', - ); + throw ArgumentError('Invalid prf only support hmac-sha256'); } - derivator = _PBDKDF2KeyDerivator( + derivator = _PBDKDF2Derivator( derParams['c'] as int, - Uint8List.fromList(hexToBytes(derParams['salt'] as String)), + BytesUtils.fromHexString(derParams['salt']), derParams['dklen'] as int, ); break; case 'scrypt': - final derParams = crypto['kdfparams'] as Map; - derivator = _ScryptKeyDerivator( + final derParams = params['kdfparams'] as Map; + derivator = _ScryptDerivator( derParams['dklen'] as int, derParams['n'] as int, derParams['r'] as int, derParams['p'] as int, - Uint8List.fromList(hexToBytes(derParams['salt'] as String)), + BytesUtils.fromHexString(derParams['salt']), ); break; default: throw ArgumentError( - 'Wallet file uses $kdf as key derivation function, which is not supported.', + '$kdf which is not supported.', ); } - /// Now that we have the derivator, let's obtain the aes key: - final encodedPassword = Uint8List.fromList(utf8.encode(password)); + final encodedPassword = List.from(StringUtils.encode(password)); final derivedKey = derivator.deriveKey(encodedPassword); - final aesKey = Uint8List.fromList(derivedKey.sublist(0, 16)); - - final encryptedPrivateKey = hexToBytes(crypto['ciphertext'] as String); - - //Validate the derived key with the mac provided + final aesKey = List.from(derivedKey.sublist(0, 16)); + final encryptedPrivateKey = BytesUtils.fromHexString(params['ciphertext']); final derivedMac = _generateMac(derivedKey, encryptedPrivateKey); - if (derivedMac != crypto['mac']) { - throw ArgumentError( - 'Could not unlock wallet file. You either supplied the wrong password or the file is corrupted', - ); + if (derivedMac != params['mac']) { + throw ArgumentError('wrong password or the file is corrupted'); } - /// We only support this mode at the moment - if (crypto['cipher'] != 'aes-128-ctr') { - throw ArgumentError( - 'Wallet file uses ${crypto["cipher"]} as cipher, but only aes-128-ctr is supported.', - ); + if (params['cipher'] != 'aes-128-ctr') { + throw ArgumentError("only cipher aes-128-ctr is supported."); } - final iv = - Uint8List.fromList(hexToBytes(crypto['cipherparams']['iv'] as String)); - - final aes = _initCipher(false, aesKey, iv); - final privateKey = aes.process(Uint8List.fromList(encryptedPrivateKey)); + final iv = BytesUtils.fromHexString(params['cipherparams']['iv']); + final encryptText = List.from(encryptedPrivateKey); + final CTR ctr = CTR(AES(aesKey), iv); + final List privateKey = List.filled(encryptText.length, 0); + ctr.streamXOR(encryptText, privateKey); + ctr.clean(); final id = UUID.toBuffer(data['id'] as String); return SecretWallet._( - utf8.decode(privateKey), derivator, encodedPassword, iv, id); + StringUtils.decode(privateKey), derivator, encodedPassword, iv, id); } - /// The credentials stored in this wallet file final String credentials; - /// The key derivator used to obtain the aes decryption key from the password - final _KeyDerivator _derivator; + final _Derivator _derivator; - final Uint8List _password; - final Uint8List _iv; + final List _password; + final List _iv; - final Uint8List _id; + final List _id; - /// Gets the random uuid assigned to this wallet file String get uuid => UUID.fromBuffer(_id); - /// Encrypts the private key using the secret specified earlier and returns - /// a json representation of its data as a v3-wallet file. + /// Encrypts the sensitive wallet data using the specified encoding format and returns + /// the encrypted representation. + /// + /// - `encoding`: The encoding format to use for the encrypted output (default is JSON). + /// + /// Returns the encrypted wallet data as a string in the chosen encoding format. String encrypt({SecretWalletEncoding encoding = SecretWalletEncoding.json}) { - final ciphertextBytes = _encryptPrivateKey(); + // Encrypt the wallet data and obtain the ciphertext bytes. + final ciphertextBytes = _encryptPassword(); - final map = { + // Prepare the JSON representation of the encrypted data. + final Map toJson = { 'crypto': { 'cipher': 'aes-128-ctr', - 'cipherparams': {'iv': bytesToHex(_iv)}, - 'ciphertext': bytesToHex(ciphertextBytes), + 'cipherparams': {'iv': BytesUtils.toHexString(_iv)}, + 'ciphertext': BytesUtils.toHexString(ciphertextBytes), 'kdf': _derivator.name, 'kdfparams': _derivator.encode(), 'mac': _generateMac(_derivator.deriveKey(_password), ciphertextBytes), @@ -259,45 +239,46 @@ class SecretWallet { 'id': uuid, 'version': 3, }; - final toString = json.encode(map); + + // Convert the JSON to a string. + final toString = json.encode(toJson); + + // Based on the specified encoding format, return the encrypted data as a string. if (encoding == SecretWalletEncoding.json) { return toString; } - return base64Encode(utf8.encode(toString)); + return base64Encode(StringUtils.encode(toString)); } - /// Generates a message authentication code (MAC) for the encrypted data. + /// Generates a Message Authentication Code (MAC) for the provided derived key and ciphertext. + /// + /// - `dk`: The derived key. + /// - `ciphertext`: The encrypted ciphertext. + /// + /// Returns the MAC as a hexadecimal string. static String _generateMac(List dk, List ciphertext) { - /// Create a MAC body by concatenating the second half of the derived key (dk) - /// with the ciphertext. - final macBody = [...dk.sublist(16, 32), ...ciphertext]; - - /// Calculate the MAC using the keccak256 hash function. - return bytesToHex(keccak256(Uint8List.fromList(macBody))); - } + // Concatenate the derived key and ciphertext to form the input for the MAC calculation. + final mac = [...dk.sublist(16, 32), ...ciphertext]; - /// Initializes a counter (CTR) stream cipher with the given key and IV. - static CTRStreamCipher _initCipher( - bool forEncryption, - Uint8List key, - Uint8List iv, - ) { - return CTRStreamCipher(AESEngine()) - ..init(forEncryption, ParametersWithIV(KeyParameter(key), iv)); + // Hash the concatenated data using Keccak. + return BytesUtils.toHexString(Keccack.hash(List.from(mac))); } - /// Encrypts the private key. - List _encryptPrivateKey() { - /// Derive a key using the key derivator and the provided password. + /// Encrypts the wallet's sensitive credentials using AES-128-CTR encryption. + /// + /// Returns the encrypted ciphertext as a list of bytes. + List _encryptPassword() { + // Derive the encryption key from the password. final derived = _derivator.deriveKey(_password); + final aesKey = List.from(derived.sublist(0, 16)); - /// Extract the first 16 bytes of the derived key as the AES encryption key. - final aesKey = Uint8List.view(derived.buffer, 0, 16); - - /// Initialize an AES cipher in encryption mode with the derived key and IV. - final aes = _initCipher(true, aesKey, _iv); + // Convert the credentials to bytes and encrypt using AES-128-CTR. + final plainText = List.from(StringUtils.encode(credentials)); + final CTR ctr = CTR(AES(aesKey), _iv); + final encryptOut = List.filled(plainText.length, 0); + ctr.streamXOR(plainText, encryptOut); + ctr.clean(); - /// Encrypt the credentials using AES encryption. - return aes.process(Uint8List.fromList(utf8.encode(credentials))); + return encryptOut; } } diff --git a/lib/ss58/ss58.dart b/lib/ss58/ss58.dart new file mode 100644 index 0000000..6398207 --- /dev/null +++ b/lib/ss58/ss58.dart @@ -0,0 +1,5 @@ +/// Library for SS58 address encoding and decoding. +library ss58; + +/// Export statement for SS58 address encoding-decoding functionality. +export 'ss58_base.dart'; diff --git a/lib/ss58/ss58_base.dart b/lib/ss58/ss58_base.dart new file mode 100644 index 0000000..83af4c6 --- /dev/null +++ b/lib/ss58/ss58_base.dart @@ -0,0 +1,146 @@ +import 'package:blockchain_utils/base58/base58_base.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/numbers/int_utils.dart'; + +import 'ss58_ex.dart'; + +/// Constants used in the SS58 address encoding and decoding process. +class _Ss58Const { + /// The maximum value for the simple account format identifier. + static const int simpleAccountFormatMaxVal = 63; + + /// The maximum value for the format identifier. + static const int formatMaxVal = 16383; + + /// A list of reserved format identifiers. + static const List reservedFormats = [46, 47]; + + /// The length of the data part of an SS58 address in bytes. + static const int dataByteLen = 32; + + /// The length of the checksum part of an SS58 address in bytes. + static const int checksumByteLen = 2; + + /// The prefix used for generating the checksum. + static final List checksumPrefix = + List.from([83, 83, 53, 56, 80, 82, 69]); +} + +/// Utility methods for SS58 address encoding and decoding. +class _Ss58Utils { + /// Computes the checksum for a given set of data bytes. + /// + /// The checksum is computed by prepending the checksum prefix to the data bytes, + /// hashing the resulting sequence using the Blake2b-512 algorithm, and then taking + /// the first [Ss58Const.checksumByteLen] bytes of the hash as the checksum. + /// + /// Parameters: + /// - [dataBytes]: The data bytes for which the checksum needs to be computed. + /// + /// Returns: + /// A [List] representing the computed checksum. + static List computeChecksum(List dataBytes) { + final prefixAndData = + List.from([..._Ss58Const.checksumPrefix, ...dataBytes]); + return QuickCrypto.blake2b512Hash(prefixAndData) + .sublist(0, _Ss58Const.checksumByteLen); + } +} + +/// Provides methods to encode SS58 addresses from data bytes and an SS58 format. +class SS58Encoder { + /// Encodes SS58 address from the provided data bytes and SS58 format. + /// + /// Parameters: + /// - [dataBytes]: The data bytes to be encoded into an SS58 address. It should have a length of [Ss58Const.dataByteLen]. + /// - [ss58Format]: The SS58 format specifying the address type. + /// + /// Returns: + /// A Base58-encoded SS58 address string. + /// + /// Throws an [ArgumentError] if the input parameters are invalid, such as incorrect data length, out-of-range SS58 format, or using reserved formats. + static String encode(List dataBytes, int ss58Format) { + // Check parameters + if (dataBytes.length != _Ss58Const.dataByteLen) { + throw ArgumentError('Invalid data length (${dataBytes.length})'); + } + if (ss58Format < 0 || ss58Format > _Ss58Const.formatMaxVal) { + throw ArgumentError('Invalid SS58 format ($ss58Format)'); + } + if (_Ss58Const.reservedFormats.contains(ss58Format)) { + throw ArgumentError('Invalid SS58 format ($ss58Format)'); + } + + List ss58FormatBytes; + + if (ss58Format <= _Ss58Const.simpleAccountFormatMaxVal) { + ss58FormatBytes = IntUtils.toBytesLength(ss58Format); + } else { + ss58FormatBytes = List.from([ + ((ss58Format & 0x00FC) >> 2) | 0x0040, + (ss58Format >> 8) | ((ss58Format & 0x0003) << 6) + ]); + } + + final payload = List.from([...ss58FormatBytes, ...dataBytes]); + + final checksum = _Ss58Utils.computeChecksum(payload); + + return Base58Encoder.encode(List.from([...payload, ...checksum])); + } +} + +/// Provides methods to decode SS58 addresses from a Base58-encoded string. +class SS58Decoder { + /// Decodes the provided Base58-encoded SS58 address string into its SS58 format and data bytes. + /// + /// Parameters: + /// - [dataStr]: The Base58-encoded SS58 address to be decoded. + /// + /// Returns: + /// A tuple containing the SS58 format (address type) and the data bytes of the SS58 address. + /// + /// Throws an [ArgumentError] or [SS58ChecksumError] if the input string is invalid, contains an invalid format, or fails the checksum verification. + static (int, List) decode(String dataStr) { + final decBytes = Base58Decoder.decode(dataStr); + + int ss58Format; + int ss58FormatLen; + + if ((decBytes[0] & 0x40) != 0) { + ss58FormatLen = 2; + ss58Format = ((decBytes[0] & 0x3F) << 2) | + (decBytes[1] >> 6) | + ((decBytes[1] & 0x3F) << 8); + } else { + ss58FormatLen = 1; + ss58Format = decBytes[0]; + } + + if (_Ss58Const.reservedFormats.contains(ss58Format)) { + throw ArgumentError('Invalid SS58 format ($ss58Format)'); + } + + final dataBytes = List.from(decBytes.sublist( + ss58FormatLen, decBytes.length - _Ss58Const.checksumByteLen)); + final checksumBytes = List.from( + decBytes.sublist(decBytes.length - _Ss58Const.checksumByteLen)); + + if (dataBytes.length != _Ss58Const.dataByteLen) { + throw ArgumentError('Invalid data length (${dataBytes.length})'); + } + + final checksumBytesGot = _Ss58Utils.computeChecksum(List.from( + decBytes.sublist(0, decBytes.length - _Ss58Const.checksumByteLen))); + + if (!checksumBytesGot.every((element) => + element == checksumBytes[checksumBytesGot.indexOf(element)])) { + throw SS58ChecksumError( + 'Invalid checksum (expected ${BytesUtils.toHexString(checksumBytesGot)}, ' + 'got ${BytesUtils.toHexString(checksumBytes)})'); + } + + return (ss58Format, dataBytes); + } +} diff --git a/lib/ss58/ss58_ex.dart b/lib/ss58/ss58_ex.dart new file mode 100644 index 0000000..edeafb1 --- /dev/null +++ b/lib/ss58/ss58_ex.dart @@ -0,0 +1,14 @@ +/// An exception class for errors related to SS58 address checksum validation. +/// +/// The [message] field can contain additional information about the error. +class SS58ChecksumError implements Exception { + final String? message; + + /// Creates a new [SS58ChecksumError] with an optional [message]. + const SS58ChecksumError([this.message]); + + @override + String toString() { + return message ?? super.toString(); + } +} diff --git a/lib/string/string.dart b/lib/string/string.dart new file mode 100644 index 0000000..eca8f2c --- /dev/null +++ b/lib/string/string.dart @@ -0,0 +1,74 @@ +import 'dart:convert'; + +/// An enumeration representing different string encoding options. +enum StringEncoding { + /// The ASCII encoding option. + /// This encoding represents characters using the ASCII character set, + /// which uses 7-bit encoding and supports a limited character range. + ascii, + + /// The UTF-8 encoding option. + /// This encoding represents characters using the Unicode Transformation Format (UTF-8), + /// which is a variable-length character encoding that supports a wide range of characters, + /// including those from various languages and symbols. + utf8, +} + +/// A utility class for working with strings and common string operations. +class StringUtils { + /// Removes the '0x' prefix from a hexadecimal string if it exists. + /// + /// If the input [value] starts with '0x', this method returns the + /// substring of [value] without those two characters. If [value] + /// does not start with '0x', it returns the original [value]. + /// + /// Example: + /// ```dart + /// String stripped = StringUtils.strip0x("0x123abc"); // Returns "123abc" + /// String original = StringUtils.strip0x("abcdef"); // Returns "abcdef" + /// ``` + static String strip0x(String value) { + if (value.startsWith("0x")) { + return value.substring(2); + } + return value; + } + + /// Encodes the given [value] string into a list of bytes using the specified [type]. + /// + /// The [type] parameter determines the encoding type to use, with UTF-8 being the default. + /// Returns a list of bytes representing the encoded string. + /// + /// Example: + /// ```dart + /// List encodedBytes = StringUtils.encode("Hello, World!"); + /// ``` + static List encode(String value, + [StringEncoding type = StringEncoding.utf8]) { + switch (type) { + case StringEncoding.utf8: + return utf8.encode(value); + default: + return ascii.encode(value); + } + } + + /// Decodes a list of bytes [value] into a string using the specified [type]. + /// + /// The [type] parameter determines the decoding type to use, with UTF-8 being the default. + /// Returns the decoded string. + /// + /// Example: + /// ```dart + /// String decodedString = StringUtils.decode([72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33]); + /// ``` + static String decode(List value, + [StringEncoding type = StringEncoding.utf8]) { + switch (type) { + case StringEncoding.utf8: + return utf8.decode(value); + default: + return ascii.decode(value); + } + } +} diff --git a/lib/uuid/uuid.dart b/lib/uuid/uuid.dart index 38608ff..8d13d2c 100644 --- a/lib/uuid/uuid.dart +++ b/lib/uuid/uuid.dart @@ -9,9 +9,8 @@ library uuid; import 'dart:math' as math; -import 'dart:typed_data'; -import 'package:blockchain_utils/formating/bytes_num_formating.dart'; +import 'package:blockchain_utils/binary/utils.dart'; class UUID { /// Generates a version 4 (random) UUID (Universally Unique Identifier). @@ -69,7 +68,7 @@ class UUID { /// - [uuidString]: The UUID string to convert to a binary buffer. /// /// Returns: - /// A binary buffer (Uint8List) representing the UUID. + /// A binary buffer (List) representing the UUID. /// /// Example: /// ```dart @@ -77,15 +76,15 @@ class UUID { /// final buffer = toBuffer(uuid); /// print(buffer); /// Output: [85, 14, 132, 0, 226, 155, 65, 212, 167, 22, 68, 102, 85, 68, 0, 0] /// ``` - static Uint8List toBuffer(String uuidString) { + static List toBuffer(String uuidString) { if (!isValidUUIDv4(uuidString)) { throw ArgumentError("invalid uuid"); } - final buffer = Uint8List(16); + final buffer = List.filled(16, 0); /// Remove dashes and convert the hexadecimal string to bytes final cleanUuidString = uuidString.replaceAll('-', ''); - final bytes = hexToBytes(cleanUuidString); + final bytes = BytesUtils.fromHexString(cleanUuidString); /// Copy the bytes into the buffer for (var i = 0; i < 16; i++) { @@ -102,14 +101,14 @@ class UUID { /// UUIDv4 string is commonly used to represent unique identifiers. /// /// Parameters: - /// - [buffer]: The binary buffer (Uint8List) representing the UUID. + /// - [buffer]: The binary buffer (List) representing the UUID. /// /// Returns: /// A UUIDv4 string. /// /// Example: /// ```dart - /// final buffer = Uint8List.fromList([85, 14, 132, 0, 226, 155, 65, 212, 167, 22, 68, 102, 85, 68, 0, 0]); + /// final buffer = List.from([85, 14, 132, 0, 226, 155, 65, 212, 167, 22, 68, 102, 85, 68, 0, 0]); /// final uuid = fromBuffer(buffer); /// print(uuid); /// Output: '550e8400-e29b-41d4-a716-446655440000' /// ``` @@ -120,9 +119,9 @@ class UUID { /// /// Note: /// This method assumes that the input buffer contains valid UUIDv4 data. - static String fromBuffer(Uint8List buffer) { + static String fromBuffer(List buffer) { if (buffer.length != 16) { - throw Exception( + throw ArgumentError( 'Invalid buffer length. UUIDv4 buffers must be 16 bytes long.'); } diff --git a/pubspec.yaml b/pubspec.yaml index f82648a..f53db17 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: blockchain_utils description: Simplify blockchain dev with Base58, Bech32, BIP39 mnemonics, Web3 storage, and BIP32 HD wallets in one package. -version: 0.4.0 +version: 1.0.0 homepage: "https://github.com/mrtnetwork/blockchain_utils" repository: "https://github.com/mrtnetwork/blockchain_utils" @@ -8,32 +8,19 @@ environment: sdk: '>=3.1.1 <4.0.0' dependencies: - pointycastle: ^3.7.3 - convert: ^3.1.1 - typed_data: ^1.3.2 + + dev_dependencies: flutter_lints: ^2.0.0 - test: ^1.24.6 + test: ^1.24.9 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec # The following section is specific to Flutter packages. flutter: - # # To add assets to your package, add an assets section, like this: - # assets: - # - assets/chinese_simplified.txt - # - assets/chinese_traditional.txt - # - assets/czech.txt - # - assets/english.txt - # - assets/french.txt - # - assets/italian.txt - # - assets/japanese.txt - # - assets/korean.txt - # - assets/portuguese.txt - # - assets/spanish.txt - # + # For details regarding assets in packages, see # https://flutter.dev/assets-and-images/#from-packages # diff --git a/test/address/ada_byron/byron_test.dart b/test/address/ada_byron/byron_test.dart new file mode 100644 index 0000000..45c3cb5 --- /dev/null +++ b/test/address/ada_byron/byron_test.dart @@ -0,0 +1,33 @@ +import 'package:blockchain_utils/bip/address/ada_byron_addr.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:test/test.dart'; +import 'byron_test_vector.dart' as byron; +import 'lagacy_test_vector.dart' as lagacy; + +void main() { + test("ada byron legacy test", () { + for (final i in lagacy.testVector) { + final params = Map.from(i["params"]); + params["chain_code"] = BytesUtils.fromHexString(params["chain_code"]); + params["hd_path_key"] = BytesUtils.fromHexString(params["hd_path_key"]); + final l = AdaByronLegacyAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(l, i["address"]); + final decode = AdaByronAddrDecoder().decodeAddr(l); + expect(bytesEqual(decode, BytesUtils.fromHexString(i["decode"])), true); + } + }); + + test("ada byron icarus test", () { + for (final i in byron.testVector) { + final params = Map.from(i["params"]); + params["chain_code"] = BytesUtils.fromHexString(params["chain_code"]); + final l = AdaByronIcarusAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(l, i["address"]); + final decode = AdaByronAddrDecoder().decodeAddr(l); + expect(bytesEqual(decode, BytesUtils.fromHexString(i["decode"])), true); + } + }); +} diff --git a/test/address/ada_byron/byron_test_vector.dart b/test/address/ada_byron/byron_test_vector.dart new file mode 100644 index 0000000..6fd55a0 --- /dev/null +++ b/test/address/ada_byron/byron_test_vector.dart @@ -0,0 +1,502 @@ +final List> testVector = [ + { + "public": + "d9f1d038b4f9116c156a03eee15f70b073f8e81ffa85122cc8e993e906e2b537", + "address": "Ae2tdPwUPEZDMm8GdfnY8ibhFPd5GBjyRARL7A5DbatemFheedMwB4WTj7z", + "decode": "a5e1c8d86ae0c7006afea4369c55675bb80853937e0080e17a8117d2", + "params": { + "chain_code": + "f44255b6455b665173b66f7eb3627cfc19f46837c23d6a3948f2462d14a14d36" + } + }, + { + "public": + "f9bb180839657a14a0d683d6fe77905b40c9b971d1d326b6ae5d52460507f055", + "address": "Ae2tdPwUPEZNBMfHAjDRpFo22YzJFhSsHBvxotw2JAHBdJhW2CY9RZzbuqf", + "decode": "fe485adeb74b460a4f1029c9bc42052fa6b02140eedaee76ae33f222", + "params": { + "chain_code": + "aea9ef014e505667182eabadd39f4c00a430f0f4a881624f296e1b12247cadaf" + } + }, + { + "public": + "fbb45558dc3dbf0a65a15b6b202793d0bf4438fb11c994f95ef3be2e6c9eab30", + "address": "Ae2tdPwUPEZMstSiAyzM8hEnz1LrGCn6jdMRSab1wRESkgV2abz8aUUQDRX", + "decode": "fb4398f6f75150c38dedd7e3978bdd5df32917a5b6b95b17aa331196", + "params": { + "chain_code": + "2dac405d28bc78e55597ade8488eaaf285016c24c334322a90c4a123ec197e06" + } + }, + { + "public": + "3ad19d3ed86fb5479cbf24be155532c9f9a90a3d87cc10a5a70a4f8b87e16731", + "address": "Ae2tdPwUPEZEy21nr3SfLXVEPCKJfy9mTebq7NuAcATYb9F4fyadfcm2xm4", + "decode": "b5ff056d52c7c897a41a8827c5eff5588ea23cf3bae863625728a559", + "params": { + "chain_code": + "7c63c5811e5a78e1359e0875b4159eda2afdb97f74ebe3674aeb0f8546664db3" + } + }, + { + "public": + "999fef6f4591f078fe40f407afdd0ac53678542c2d6fc386aa864e88c5dd2cdb", + "address": "Ae2tdPwUPEZ18m6Qzgn2fiQtUCNYapD7m4fNXk6qKKepvEUjmoGoj3p6JY2", + "decode": "2b5ef11478b6566ba54e76c175b1107b741a2e326aafc4ac0a0873eb", + "params": { + "chain_code": + "5efa58051ee1644d60e30ca02f70eb1a1120684b992ebbd6a61952764fa387c2" + } + }, + { + "public": + "9d5173500e5fb25dbb455a1605b922c4a0a2456b4e4ccd1fdc38ee95e1a5c684", + "address": "Ae2tdPwUPEYzLLRy4BJFhhASo2v42qjEsznEvtdERu75ggqSVPcXdbLE7Gk", + "decode": "23594f06c7bf1964ac625f0510232f13596141d846a0c71f0e654f8d", + "params": { + "chain_code": + "04450e54c01669a38babba4790ffa6f49fe66e93560790ffde14e795fe641859" + } + }, + { + "public": + "987938291918aeffb4292a17073fdc7611ed4d26d114b9486552eb9ca5f53c39", + "address": "Ae2tdPwUPEZ7Qag9gGr9uC9UnKSHz3XWwWLe7rqzQ395UhtmetNZ1KxpxEX", + "decode": "6a3ca3ec2e9938c8c1fe81713e4f860761da3606a4c1eddb1a90d2f1", + "params": { + "chain_code": + "e85ae831725605306f0d1f187428219f787099be20bb3116a866746227184d29" + } + }, + { + "public": + "eaea1c9d72045905083d05a020bafc3bfecc9e004d741924ff18f748fc26f6a5", + "address": "Ae2tdPwUPEZHEWc77DL6E1jhdLEk7VbRU9ATVNGpczx9iD5DYG18jFq4yfv", + "decode": "ccb7a66511e07521cb447060114e594ddc8ce998bb9694d3dda55f09", + "params": { + "chain_code": + "d68f292e97f91193a92560898ca1145e074ac9852da01d77776293485e40d632" + } + }, + { + "public": + "b115b76f94825eca7f8df3ddf3d1975c28080406a8a66250d05b6a8e95a09138", + "address": "Ae2tdPwUPEYxELAmuvzgc4gDD7hpfQWihtE6YcURj4X5dd5f9JVoy1gdRX3", + "decode": "0e4467676ea92a4c142c9fdfb7ea0a8366257f14f7a4f268c9029c23", + "params": { + "chain_code": + "f54114cc74b656e85c18c09e8fdf9dfc7478cde48c6b2c65091cdced40721dfd" + } + }, + { + "public": + "11f6472701d5c2d5fe17034e2ca945cddf4718523d0bef7b6d7478ae84b32e5d", + "address": "Ae2tdPwUPEZCpuddeJxeerdT61gyKSsngxmnLq3yW7UNBZnNGiUQz9YR28t", + "decode": "a08cfa69eb80189a7eaf6105d98552ee4fb9c8defd994380888bf579", + "params": { + "chain_code": + "32631c8778cbb39c274e01cf43dc4760c191fb563f424366839eb9cc6d41ea58" + } + }, + { + "public": + "7c743513555e64331d03a4b55691acb68993eaef85b31099e0b5ef65519fc93e", + "address": "Ae2tdPwUPEZ24XBS3WFWSkWRWWc56NoJx1igE2qbhSGxT4Dyk7BVRHTq5us", + "decode": "34a90924a3fc5e7d37b29afd064fbb60bad367913bfe0277182b87c2", + "params": { + "chain_code": + "92ffca86d076fa4c41f9d7d23f75fee3a32b91870681734aa6cad7cc4aadfb8e" + } + }, + { + "public": + "61521acfb9a17a589debeb77057ea7101082e1d5200596e736881292eb7229d7", + "address": "Ae2tdPwUPEZ9KcG4c3zwvVNTLQe922aeCbMzcMAgu2YYeQfz9i8Js3jdHgr", + "decode": "7d6bf73db5847da29803769c1de80a9264db8fb661edf3b176237c70", + "params": { + "chain_code": + "fbb90416911b4d7c2d7585f388fe66c8e90e241dfbb8a4120d79216a6d075446" + } + }, + { + "public": + "c4cdc8685570a32fed671388024c858b5fb32d807af69456424982df0d127620", + "address": "Ae2tdPwUPEZ8rn5Viqa9aogt1n8WmXZ8jmF2fAHNnGSFnGUDqQcPARiBG8M", + "decode": "78c919d202232cacff321cf405e91ff34cdfd1f814e4b3ea29d5f5c4", + "params": { + "chain_code": + "663c9cb0fa1095132584c14b56e322685e8473a0c78985a104a0d1ebc6cbf197" + } + }, + { + "public": + "6dddf0b2c73e4bd52391af63b9575706fe705daf938d135cc50fab7d3c1e27e4", + "address": "Ae2tdPwUPEYvt1bUdEduFA7ViMJNEdmkG7BuHhELkByJWVKyVgF1jvEh37b", + "decode": "00bbe2afa6b50094bb1f34abe87c1ec65373b8c6937f5543e0804c5c", + "params": { + "chain_code": + "0849a59f1caed2d9370bf7c3c492b090da09154e0052379b83eb1f0b2e82e416" + } + }, + { + "public": + "42ee6559b972100ce125fd8533d88f77f476bac3066eb4f951bb45e44ca2f0db", + "address": "Ae2tdPwUPEZ7YzLdbDLexjgSvpjdFmWNvZCvAw93XM6UvCjFW5a1S5XAXm8", + "decode": "6bb091f955688a50d71cc55ef6330e063d23006d782b79e5d64faba3", + "params": { + "chain_code": + "81459090d4b9fc14268f7369c4e6f2c01f3da7ea7be9b711656a2dbad64e7655" + } + }, + { + "public": + "35397f737868358ddebec3d11461636012234e7900c4fb433edac28be6696fc8", + "address": "Ae2tdPwUPEYx79kLwZ78RaJc8Q84JEHT8sh8Rux35j3SaBcq85YxDBNvRP9", + "decode": "0d06cf13437965231f01c7e4ce9ce3c3feaef5eaac5f6d4c65def5e8", + "params": { + "chain_code": + "617526c47985b120aa562d9c56d02f2fdaaff42145a1738f2fd91a5599853b96" + } + }, + { + "public": + "1fe62e298255b107896f96f09f7ed8411a987b02172e81cb173666afd708f928", + "address": "Ae2tdPwUPEZ8BECmLsupFCQLuW8oyXBjnNB5sj5Do2wjxnqvXhbzfLvHs1F", + "decode": "71f39d55603c375ea713ab04b5bf606504def2409b05815c9bbb274e", + "params": { + "chain_code": + "e17cba140b299aba41de30b6c5a112f3051338148439145087f8bd1a012dd1d9" + } + }, + { + "public": + "76c9ed9002bb38c2717c43d27a90a0c4e2b5cc1d49c69736b719508c88a5fccb", + "address": "Ae2tdPwUPEYxpgp9t7ypGdLHVDZMY8PkXoymPiGJyhRUU2S4s5Q9Mk4okU9", + "decode": "14342613e31cf5ded745f7827bb83b8598ade49e4379fa0b80971df7", + "params": { + "chain_code": + "a5bdecaeb3b71c9c1bad854b3bc578fe8ff7e96ba7cd86e5bec951ac1cb6b3ec" + } + }, + { + "public": + "a98b2d1211bffdb339990ef63f7bf26e46e4a8b0a38f1dac42336b36f9c2b6e1", + "address": "Ae2tdPwUPEZETuFE3uFQZtDkPWZYbzHupdHCJ3XtfP3tsK6yuPRZnGrnUga", + "decode": "b0f70929f133112bdd20dcdc791fe62a8f679cb7076f4be2d06c27a6", + "params": { + "chain_code": + "30c5c2705a32b148805010cbff0b0ee4e635fd4e1950cc6e48e8bd107ab07bf4" + } + }, + { + "public": + "9a5f8febbe02a7588c86b1bc6950e880c279288b885607364ed22ba3cc8e5f4c", + "address": "Ae2tdPwUPEZEoZAcm6gPEiBVhsnfSJK84QVLWmZG9SdiND2njebKds7tWam", + "decode": "b45c6d6951ece491bc4f73daf2752c7be86fc6a74c0ba4afdb1e4105", + "params": { + "chain_code": + "e89a3878e81da329ca421b1b3842490376ea0ffeba86b67cf805b5bcfd0d1a83" + } + }, + { + "public": + "a136d45d73fcd0643c5ce83b8daf31571d5077c00c4a2d6d38386cfe43e2be50", + "address": "Ae2tdPwUPEZ4XFwGNnGRbj9TLSmsWJGsREx82ghJMPJCnHTdNawh6uNhKU5", + "decode": "4d530e28125252a0be8c16a2e97a8b9effe938745589ef4cd4234ec3", + "params": { + "chain_code": + "fcee610777a3140e7af4be4e44de504c43b32743f5856be6514adb3973179698" + } + }, + { + "public": + "49c3f95ef814a374edff1d43947dac0cf7057896983fefb0531eca4d232540c3", + "address": "Ae2tdPwUPEYyfLdBw4gtcaEuLgHWg3fFvuLVqphECuDdgTNboEobiGK8RyW", + "decode": "1c9c47b2d1fdfb5034d3c74fb8cfe76d0288f3fed70afba695969d0e", + "params": { + "chain_code": + "e440e0e8187f23d5f21ec46f7f137ff09a2b88b41226cf417254ac3c8505dc10" + } + }, + { + "public": + "48563142938263a448df2ac1f61a3441fb9ad4ab014cd44e9e3b51a9779efa35", + "address": "Ae2tdPwUPEZAdCh9wPfhcq3BqHK5pdWUjqB1UDBqS6aeswXSKKrQRy2n1vw", + "decode": "8a7bdf8f923e3258bc3c4efde901fe0b93cce7a3eb559eba9292b6fd", + "params": { + "chain_code": + "07ad324a19ed757ad2a44f8c0490020e747b46e1e827bfb796c99a57ed11dff3" + } + }, + { + "public": + "da19610d698e265c896565ec3a70e97d8bb2c9103dbef159e38228708d29948d", + "address": "Ae2tdPwUPEYySjBhFiTX9akED3K5H7qgXRM3Y7bS5euXEpG7fPY91Lp6zky", + "decode": "1a6e6d7c66961d6f6f899586e2386f91e87c173433287c4f04e1670d", + "params": { + "chain_code": + "df1e0f93492ad5f9d4a83dd9421e3f779bce275603b4d32191cd90abacf6ee15" + } + }, + { + "public": + "5058a85e17761ae5ad64ff760f4deb37456090cd32652c6d87da2ffb3455c928", + "address": "Ae2tdPwUPEZMRgPaaaSTUCF9F75PsDzyHdrRYhgvh7LNzEgrhKpAdKEAuPY", + "decode": "f6bc496914d459b474529b9b3370cfb7c97d28d173e2ab947c61e087", + "params": { + "chain_code": + "dcad2715489aca3eb3cc9cf53f84bf7075f3b7858e2c579f86030b2aea6d2bd7" + } + }, + { + "public": + "b0f6344cafe61c83ad7846bf46d4e1829c93ce692979980bc8501adf411747f0", + "address": "Ae2tdPwUPEZCGxHwqm4XqP9UYGULEdh7FWfVZwxoFwPYaL3RBo9BG53m5kM", + "decode": "9b077a68de029e44af51e05943d7cdab031bc82522c452d57d3eea12", + "params": { + "chain_code": + "17ad9119ae9dd1dc349d4c3733e2276781b1c2911b4e2229851f0f0c62bb9c98" + } + }, + { + "public": + "9d9d118b06ed7f01faca867585d506d44ebfc17051a6b9452c565f04d50822f9", + "address": "Ae2tdPwUPEZ1gJXSdRY5MqWqVoKsmKDU1HjtZomCK2DqMmBfuCtNSg2ctWY", + "decode": "30d2352d45ef9687393146e823fedec9f2900d7bab1c415b8f618bf1", + "params": { + "chain_code": + "1144a25433bfaf16f01896d98bde94fd81dc3829c20f4016e5efe76fdfeee98e" + } + }, + { + "public": + "3e2b721263961834c764ef34834793e1a70ad637e0a915f7ccfb95438f41b255", + "address": "Ae2tdPwUPEZ1E2v7YQjQHd2Tau3Citntq7jQpmxtpHR6zTbC2WNEaq6s4Sb", + "decode": "2c482f7f6b5eba0a27d00fa950a658f36b472207f79c6d5caca2caec", + "params": { + "chain_code": + "afbb062e0950a5e89ed57726ec0c01b8240013e5cd066693dd199ba8ddf3f259" + } + }, + { + "public": + "081722cef15a57142e0f10405dafbdea6588d694a965e75b9b0145cf102faf4f", + "address": "Ae2tdPwUPEZ44YwYA5dFiSs55AG3HkZmuZ73keEgCyS1EvVC3h65yucqMe8", + "decode": "48b5abf0ebd2d76a245424ffa55ab4ee752783783abbcf986fb32076", + "params": { + "chain_code": + "58cc19b99bebde4801e1ce8c0fa9121e6a62e95d9df05ac0000d241a8876f067" + } + }, + { + "public": + "eecd293f366f545fa65fa7924c3bb8550c490d01ffbba895ef922358883c600c", + "address": "Ae2tdPwUPEZD3MbssGNT6ddaPagS8QBN7cknh6sL2F4UMzNPYXF9EQLSqWr", + "decode": "a2b39bb04946bed62a0740a157563d90b02eb5a3d5896cbf56cca1fb", + "params": { + "chain_code": + "a7c7c9db2c1ce6b60bd751f53f9c4bbf9648aa28bb9da90ccee553094602509b" + } + }, + { + "public": + "78b463c1733668736fdba7c4994a6d3f3b1e7d60af100ccb94bbc8791f94b15f", + "address": "Ae2tdPwUPEZKG2p5NDgP75FUjTTjbk8HFRbCBtXAjucTTnstkJyG7NihCSw", + "decode": "e106375d8f87ff991aecc304667bbe5cd277a784e430ee95fa1bffaf", + "params": { + "chain_code": + "25ec09884170e345c32ab01891cad4932ca116997ecd03e29c54bb0670f5a485" + } + }, + { + "public": + "3dce09b2a83fadf7eb16cba73708b39bcbb8c69641a20a182199b1e6953470f7", + "address": "Ae2tdPwUPEZ1EcEFSWJ5Wrh4rWtz5CP8Pvnt1YA7QbXN3FSyrxm6r8XBXGE", + "decode": "2c6197a5dbe3f57784d7438a09a52822e5914e626c5e0479daf38041", + "params": { + "chain_code": + "fde934078c1490d9fce681c468eb34f890d736f76723f239d2dfa7b675a9e5e5" + } + }, + { + "public": + "4597bc5cdfe476a1de3881545c49bb51ecf53269723964a60e013bbeee32c914", + "address": "Ae2tdPwUPEZ2ygyfkRY94Pjriwwt3Ww14DCbrSnAG2oSSouuKDY2eeD17qA", + "decode": "3dd8fa5ebaf2b843e64273bb8e42a2a8f0442579d394f6b5f931ab33", + "params": { + "chain_code": + "9eceaa42b53eb12d55bbb1c5b0456fbbf8828944cee028ffbdba41aad9142587" + } + }, + { + "public": + "6b1b72edab027b7be42f904b81e3e9c3b271a97205fa0a0ee6e0342a80c109b9", + "address": "Ae2tdPwUPEZ5ZsYZni9yKLgP3kZBFU9brT7tbVkvHCM6EEHukU2hbsPBH2d", + "decode": "57cc54957fed5f0fa391d1148287d32b5502b995e8854cde5cf5ad3c", + "params": { + "chain_code": + "aefd5251d265275ae2dcab8e96de2acedcac234448d00d029189288d5a7fb927" + } + }, + { + "public": + "9d6bc90f717f79008fbb75ae189a841dd3d427983f8312cc1c2029425565f3ea", + "address": "Ae2tdPwUPEZ4vuDSb8hTXYg7zZu3kAFqdJo3T5BkvBiWnA7tyTtEUsF7NT1", + "decode": "5168e60f394ace4d0b4a3417509ecac0c4bde674fdeb044e2eb1a120", + "params": { + "chain_code": + "2edc77f433f6004ae70d030fd4c60056021019bfe720ede1ef20843c4a9abcc1" + } + }, + { + "public": + "6247741e3ebba01bf1e5bce77aef23897438296830f1da9a6b9fac07658cede2", + "address": "Ae2tdPwUPEZChnPchbu4pwMAcELMV4s2zGkxGPoSsYKBwMVamyBpa1m217v", + "decode": "9f51cee0f92929455b46b8e2ffce625603e7669235b4c9b957fd5623", + "params": { + "chain_code": + "d8e32804de13b33c354ffd3c4b8647908994556c11df38b4252d66ef55a59b84" + } + }, + { + "public": + "0e4e00332dc5f560c51a4ff4b7825b8fa3aff88ec78450002c258a8652b66943", + "address": "Ae2tdPwUPEZHMcUksdYFgQkDRNaon7RE7hLPTN3p1ifYHBxERYwsFySBuzM", + "decode": "cdf1c6c34e6e7c7e92e4cde1ae0ea12618c8b7eea63c7648a702b8bb", + "params": { + "chain_code": + "bc8cc5d368abe58143a8fab279920ce394e710d1ce5e87ce8bd10b9ff554943a" + } + }, + { + "public": + "863f844051f9dd168a74e6c215bb678e73111b5a47ee78ab9ad8ef680cba52d1", + "address": "Ae2tdPwUPEZJVHg7vFin6CBtZMfhmQqzh57kAz7Ldv8c2B18aeecwvaAKV5", + "decode": "d94af6c24684a2bc92c56b2d0052f4dbef083e8716966898278fbb44", + "params": { + "chain_code": + "777239c39034ebcb3a5f8192128ee787757b0e2287af00c36350fbe3adac632a" + } + }, + { + "public": + "288d44e5bd03f02274c07f4827be33469e1f8be3c10972363e8c1ea53a1ed332", + "address": "Ae2tdPwUPEZBt1QZugs6J3nPHTcpivvwBGKedv8D9U15LoDbRPBhYReHTNK", + "decode": "971071114d9d8ac5382053197ca6de175e33eee64fd6c572bc7580b7", + "params": { + "chain_code": + "c2dfa6e90a5ffca1665f614f011da51379e544c476cbe55699b83260e2680a84" + } + }, + { + "public": + "edffb2ed0786191fa622bb4a0d522a9af2299a749bcd123156409c79784808ff", + "address": "Ae2tdPwUPEYy7QqNaYsQPMwLukvBy39716gSHSqvacyxkFM7eRMxVaugshU", + "decode": "1717f6392036ffa290dc63802691e7c6706b92bc279a9167eee79898", + "params": { + "chain_code": + "86e57804471b4511bdffde283c17148578cdf86e480cb3644ab16d549c906108" + } + }, + { + "public": + "968f6813498affe678ab6175767a95162c376eb69b87668389631ee28de8d614", + "address": "Ae2tdPwUPEZFaCF7SYBDMP4wgEruomiqRJX3uzwrYqqt13Hh97pJT88ZuQa", + "decode": "bc130ee4a0a2108f821f4214c50b11da83048f6e92ed9153222ac4f5", + "params": { + "chain_code": + "e18f264c2e540ec0eb2684c801186f5215e2b35d862e5dac5b44caeb2e8cabb0" + } + }, + { + "public": + "44e249ca82551f1e2b68d75de38aef8341cff0c9065d13fc88616f4581e8748a", + "address": "Ae2tdPwUPEZ1FghJ2X8yZkdnSUVnKZNFpLsHboHrKfdTr4MVXTPwJLnk3N5", + "decode": "2c913be7368c15a69265bc74ef2750cbf0d50ec3e4023deb3c8d065d", + "params": { + "chain_code": + "6a94fe6d1628c06796dd59cb3e17411ef53f236133517cbd252f80bcd5036870" + } + }, + { + "public": + "9e73b450556832f6f97e76d89caaa90b6bbb6c11e37e975158a1980392c90611", + "address": "Ae2tdPwUPEZFCA4bik6LMjABZDC3aHTuFkfBFELr3XFoGY9Ea2hJxVH4Zai", + "decode": "b84437e0da18750022ce7de10720bdb73d02114c7f87dcb46f4751f9", + "params": { + "chain_code": + "9cf855d308bf3fdfaca29f5ce4384d2aa7657c521ffdfcbf264c2c1e69f278aa" + } + }, + { + "public": + "a4f6f63d4a9db8aa241c5e023a80f0b86d730038f78b8c7c0e629ea9ef438ba3", + "address": "Ae2tdPwUPEYwcBnuMaKzdfZaoTJNBe7G1Kk3aMS6ftSLNeVAV81GeHbreNG", + "decode": "08058b68ea70f6286731b8e071b8c6a53c202d817987a1d697e6b355", + "params": { + "chain_code": + "28e07a691fbbebf131f03f66b55cc351c912edf3f1516a5d66357ff5f9d5761d" + } + }, + { + "public": + "5ae55612857ccf7d04f1aa45ac203808b0f6a142594f3645419aa3bf9b13980e", + "address": "Ae2tdPwUPEYyFbbmKJJXiTM7Q4h55C8zSwmveyGgWTvEBC9ewvKrWfKAk7j", + "decode": "18820dfb4eaa61b1a74d7002b4be269d41ed7229c31b9093a2c7f35c", + "params": { + "chain_code": + "1d7763a33baf7cec31af28aad2b5146f1460b08da2ec1daad9332a56ba5b5822" + } + }, + { + "public": + "0aca18a1dbd8bcaffc719d2abb7ae854692227401d9d44c8f6d7d2b0865a2fc6", + "address": "Ae2tdPwUPEYygFRgCVnBbDS7tLpJf5xHDFvqPzAHhKAAhzrwdGwj8kyEKiX", + "decode": "1cc48cf32cae72abe76295cef41125890b76d794cda89833ec836862", + "params": { + "chain_code": + "6d53fb827d7c2bbcb9d9b4805bbb0db082a3ec3cd53400558812248b10cee156" + } + }, + { + "public": + "167c26738bac568a8913940f56d2fe3577109207570fe028fae3db7f52793a5f", + "address": "Ae2tdPwUPEZDaszGss1SVVYz8iqsFt79UXkwbZiQ1JTXuiocWNTWTixZQbV", + "decode": "a82613ae912cb2a2fc51bb3202e583dee29f3c9d836a7dc92b3b9038", + "params": { + "chain_code": + "ba89bd2919af4c98353f20efcc68a13c7380948c857348df95be87bb3f7d9775" + } + }, + { + "public": + "94bdcd79f3fa5009ca125e3c40d28c90518950b98d19cc07d00ff8477865a035", + "address": "Ae2tdPwUPEZFdJxV41t3VF7AxTvsXNbnQ8Qy2ZZNfmmMgXyvr6yz6L1ojKp", + "decode": "bc9ce256a7de18bdf2bd4bb15d260220160b7ed9b85c35dcb5b6115b", + "params": { + "chain_code": + "74ccc9189e7c64da265c6675c5ea3cde7b355a9b1a44f91b38d954d62d87e333" + } + }, + { + "public": + "45b45b7305cce695cae0c833ea565689f26b7cce2d7af06efaa5ca396b1ff189", + "address": "Ae2tdPwUPEZHPJugkoh6iF9mDNUJR3XRhx6Kp5MaW7YXUxJrwPQxYH7nReC", + "decode": "ce3cd8bb26867d069901901456acc631198ce390fe04158cf84e5cec", + "params": { + "chain_code": + "b0b5c8047fb7b1b2d2bcebe350995a0aedfc42a3747fd045b1de28efad418d52" + } + }, + { + "public": + "7e37479e5528a08dff3b34c541ffa5bac83282c61d4e6fbbb9ba96c4b5b28728", + "address": "Ae2tdPwUPEZ9DDv8t1qErwrZ7ikBTrxacq3B9HJgoTwmTmdwvzQWLoJ4FAg", + "decode": "7c51835d12c7db098351719d6d1d2bed590dbc70495842ad6d29bba0", + "params": { + "chain_code": + "fd69ea829e70ff7a14590e024f1a4ddccf1a8f7359b3735bced3d191e6bda466" + } + } +]; diff --git a/test/address/ada_byron/lagacy_test_vector.dart b/test/address/ada_byron/lagacy_test_vector.dart new file mode 100644 index 0000000..920e2d9 --- /dev/null +++ b/test/address/ada_byron/lagacy_test_vector.dart @@ -0,0 +1,752 @@ +final List> testVector = [ + { + "public": + "6896f2724fc2f6c89a84f164f9e03a0e17eca230b81716a68f813f135623ce0e", + "address": + "DdzFFzCqrht4ybJ28wRbUNyjGGYESYGJDdB1i1NYbdxGazyhLYvqURa7GNQ1w5k7sx6tuuoGxYt8SQmZdmjrRyKFXCcbkmHaBZTtf3pD", + "decode": + "c09682fbb719e83cf941effa2b0d404eabdd7d24d0fbb832c28da9f1680474276b5a180ad52369740096dc377fc1de25fad3a10b62c6067f", + "params": { + "chain_code": + "48c932406609d757c276c427cecf00a7db1705171d9deab7e89129d0964be097", + "hd_path": "m/0'/11'", + "hd_path_key": + "756aedcc43e5e6dacdf24b1c6ea89f38ce6cdbe03010d1f62546dd856752c66e" + } + }, + { + "public": + "3a8ee4df2a5e22f0794c5f93dcc4ff9bbe24a5c8826091939b37c5e59a181baa", + "address": + "DdzFFzCqrhst6Kx5uWZcUiq5X2FtW6bAcmiXoMDoQJzP7DJn1bd97divPeKfFwbfmDokhyuPg5kKTgSKuPYkXFZxbdTjh21CddYMVaWR", + "decode": + "6d6561714fe7a7daf422fa7e5ede8176022a3cfb0a2f2e7ad149c98fa76550a251feb83ef8f583de06c8de7ba2e3dc9e4b42427a85a66752", + "params": { + "chain_code": + "f0a94212a4bcdaade91793b6f23e2efd2b538e27d74ffc3e469eca77d4bab08e", + "hd_path": "m/0'/11'", + "hd_path_key": + "bba4447d0853882504f682664ff481a93796801b4f0d6efa2670a37bce574630" + } + }, + { + "public": + "8c73fe96968b12da0e3fa75f9bb6e39313547d11c5cdc0c053e47ee77f5de42c", + "address": + "DdzFFzCqrhsqaLLpF6W5mqDTn2BqyALGY6fPdSCekie14uT7fjm8zue96RiuLmkfH53MjfqRmUASVYR8ykP2ofvvSEA6xNaCfydd1Hw8", + "decode": + "5a27f845e653ed875eb8100e7242beeb6588fec03c943d2c9aa0241372a842c700d2c51e32eb3f70bae6c845701d2d316b047b27e6ef80ab", + "params": { + "chain_code": + "5e55f08486a473154820f6274a033af81368ff2eb5551aaa28b4a8f1d41ca4c2", + "hd_path": "m/1'/1'", + "hd_path_key": + "0e63602bc7e85d52a254cf4bd1c90b1a220ff356bb4ab6259a5a976010ca1bfd" + } + }, + { + "public": + "5cb95e384a9c2c35cebaafb4864007ee0acfab27e01bb33acc9eda9024b752d8", + "address": + "DdzFFzCqrhtCX8ontAJdyGRSLgrzZCfutGA2KVZuc4kik21SBAnxJnPqK5v6qGCbePruw2eZGi5SvYbWQTd9XynKN1iwQhsogSE1wfM4", + "decode": + "fa400572c47f4d29bbe11b6d58ea8f93f119669c72c155b3f20b18ed20a0efbe05bd711a789a7163031b96e0050ba5897217baee1bc528ce", + "params": { + "chain_code": + "d0affc3a9bbc4b148e82d3d347c30befc669390be833ef4deaa75650b462c97f", + "hd_path": "m/1'/1'", + "hd_path_key": + "73bffcb793bcb7a1b1db56e28b9ce005371468851085a971566c1c6812280de9" + } + }, + { + "public": + "c709831619f26880e1e04383b004db1517c967197ee42c1d4ff7ebd72cae92a8", + "address": + "DdzFFzCqrhshcQdjAD2GQHrUxFwS2RUATWiH6HBdQaQ1tZFBCGKR7kwPeKofbESRrbbVqVUFzeU8tUhuxANzKcsnYteW6HbASvb6ckPo", + "decode": + "1d47db13623b80750523cb975923f1e27d27b74fa39f3483b537b91cdc2c5289dd9c1134ac15fd71dce3ddac302d2bf0de8008ba36e9edc0", + "params": { + "chain_code": + "e4fb2dc087ac8424b838dc4f945913843193fc043998b6c4faf85d2773b8e0a8", + "hd_path": "m/0'/11'", + "hd_path_key": + "3b0adfa8f3b31417f983a68a01b0f8260f175e0375e3bca7a9ae2d755963b8c4" + } + }, + { + "public": + "d39afdfd30d8e2187a3bb6a0d59c81600acfc9c65ffb55f7af64ccf92ee65b9d", + "address": + "DdzFFzCqrhsmM5ij3s5BfJVdxXxNXcs3iWP16kFfwKssSAquiCsmebfdT2hPk8XngqRaqj24qjyi1F3ihb99GZnFWKH1Rb1EunguhQiM", + "decode": + "39d5d672ec42fae037cadd158dd8f50206b542c833ac260387698ab4f74cd79a561e10b66ff376598552b525ea908152e46af0ecc674ac92", + "params": { + "chain_code": + "7a4304a087bffb979b128e7e5db91d9df138f2b6f60a461d9634efce9a5a97df", + "hd_path": "m/0'/1'", + "hd_path_key": + "c0ef8cb8b1a34ba31616c6a30a1193561b48ec63a1b064a59635c108eb3a6c22" + } + }, + { + "public": + "1a871940fc381289b452a65184477656130b7f94858c005c656ee66989516046", + "address": + "DdzFFzCqrhskua5XWydcemVaCsu588HHJHRXNkhyXzAHfkzxCuz6ZyM49vkj9FJrpksnUDX7EW6n76s3AbDTDy7qx9WKUNtnyDBFdrnB", + "decode": + "36792a2a0e31d579d058c810824ee0298adafb9d1a82e1dd1aeb2cdb0ac98cb1e645745499071a10e8c33fa0789a9252922b445bf9cb2d73", + "params": { + "chain_code": + "9f160ec221b39e1715a5a045a3ebf7e4827f5cc030d1b0b53eaf005234be380a", + "hd_path": "m/0'/2'", + "hd_path_key": + "d06a976ab36a1ad387b1954a4a012b042491b63f691f0b3fa8b3b7b575c11e46" + } + }, + { + "public": + "e45b2935714aab0ea06f9b1f95d280b268b08143b83453231d727dbc84f6083c", + "address": + "DdzFFzCqrhshw8DbJCatYG5dT3YYgrn8xHtvnJT9fZrK41Y8DeBDdHHi1mEgfiwXNEvzaZVFsvEiqx7DT15rGATVamNba1W7X81ypY1j", + "decode": + "1fbf508e24fbe42510c91f1e11466ba14544b4c92ae9873e72b6ab332755a6cab50f26a393f7133c9e515f0377fecd71aa3ea7098caff636", + "params": { + "chain_code": + "e30c5bbfa136f3daba55829e6deb9e3d83619d6362d40f539402d85e44410c73", + "hd_path": "m/2'/1'", + "hd_path_key": + "d3538db1fb02cb9d9cb5888ab6bcd38d3b2a8477abb13c4f0d30fc7232e898e8" + } + }, + { + "public": + "98ed4cf702b0e4381fd8cf439d8974155fd722fb22c6e38f56b88c06f88e07b0", + "address": + "DdzFFzCqrht78X5UN41QszG7aRxnKAnvnobhAXeUC9saThj27ecZfu5ZUdMAzRef2394tGqk2yP78t7FXyGP2w7V73eNL6L1rz5Hdy2M", + "decode": + "d10d3730fa89062efde04d54e2bcc8fb2fa6aab2a04a6c285c1d1fb4079f73095463f0ea234bc158ff0950734c44a762f28086f8cec3d806", + "params": { + "chain_code": + "61125511f0b3e33395dcf5d4633485d04283bb592562756ac8e7905362b056ff", + "hd_path": "m/0'/11'", + "hd_path_key": + "a7dca4cf0c90614e47485372ddcbc0aabd272c619ee2211bbe697952d4bcdbd8" + } + }, + { + "public": + "da5c2604d910e1bec1df0f6048e936b5a26868d4dbabc2119524526726410bc2", + "address": + "DdzFFzCqrhsxVdcHMA4XjXbHdUNbp9mZwDjdeQif1W23Y2vtidNBVv7DUBkT1Pv4Xbmdveqws82Y82z3qAW1W4sFeofynzn4bK388pnz", + "decode": + "8f0aa6c54e6c25c281b08c7332e7f9ce55bc0c26d4bf970dde3141a2330b9b96b181b53ebdd757ea6154fc2f89f81b6e0c7289ed2848338b", + "params": { + "chain_code": + "2700d7880121e9ff795955eb0dc07ec22904cfe18e0b1e087c691ad17461dd70", + "hd_path": "m/0'/11'", + "hd_path_key": + "ca041e347f126d982f8d52e4054d530697dd11e2a351e8af2ad60161dadebb7f" + } + }, + { + "public": + "cd241edd5d2b7d5dd8e171fd307dcbe8b6a41f3ed3262bed668f53449932fd02", + "address": + "DdzFFzCqrht9frBtQfdiW3iBWVQnre8gq6MRf6jjyd5V83WLKBbHvYhfvbnrd2L2yDDWhZELeVgGyRn778pmHXxHXUXS8UfNrZiRGYLd", + "decode": + "e477b532e5f75fe79605e98d4fd87c82da7add8642921b646e3fd785339c88ea99fca1846fd67f765f90f8df11ddeeab7e5eb23e6b1c2648", + "params": { + "chain_code": + "f769bd1d8cb065899c180dc5f86fac158c5a7944032e7f73c5bba3f463cc3bb1", + "hd_path": "m/0'/11'", + "hd_path_key": + "003c03f2326b91d90b8a88ba239b977037d832424753fe49442c927478d7af8a" + } + }, + { + "public": + "d85dd932cb456e4f62504c204c80e7bacba12b633810da2ffe6d6cafa64cb590", + "address": + "DdzFFzCqrhtC5wLdPpbczXuqJugVdLdzp37MkaACtX6i7uCnoPZbumWC14RMym92TnV3oTKBsiBvUC7a49Bx5DnteXG3aEWqPvA3uiEF", + "decode": + "f6edeb4b6e391f1549e88533d21214c49daa4756c5671c0c2fee60b05031e7822b7fb0cea6bb202e1f2f32e207870e9b2cba6c0c961e3517", + "params": { + "chain_code": + "e2a6fae39b74d13f111e1de9c4fd72971a046fe9317849fb0fb0963ea85d9c4e", + "hd_path": "m/1'/1'", + "hd_path_key": + "aac05c6446a615be806f17b88ef661e83d41cead5177268c69de478be7adb439" + } + }, + { + "public": + "3f12947851f907985b41a3f9cb96d34a8f1d88acdab5a1e4932c62472320015e", + "address": + "DdzFFzCqrhsuGfUTNVyphoAFPnD8nZA7fjhAK8vGCyL67cJo2QF77n8DBLf7PHaXPSZMuQyVL39U9kUSXVApH1gsz55goWU3JzJHtJ2Q", + "decode": + "7666dec57ad144f8975509f4b9856f9fb71df4c1dea0e17ad0ac02c1142da037067b62b00a4f4923ea77702d956e1a1bd2f6c8b8a6ef0268", + "params": { + "chain_code": + "f86368c224f8149adbc190cc4abe032af27bd6fd185a3fe98f547426237573ca", + "hd_path": "m/0'/1'", + "hd_path_key": + "bd1cc400fb5aab07b02717259b284d93e44e1f5f6a36ffb123103eefe5dd9839" + } + }, + { + "public": + "083c03082f655ed58eab586de01eb7dd4fe5cd1a23938d30dd13f6ce301e5a0c", + "address": + "DdzFFzCqrhsiTdN6ufizgNjtofxacJbGx2pQAZ8i44Ti26DhEUkgYQ4xNNg5KxWhBdz22Kn2M6ARAyY5fM45pes5m7yMR31vpZkW9bSy", + "decode": + "23c462de325637db9628049b20c31f67c10b24aea109ee2834d2b59934dc8ebac60b2c05d21f4bbe609260a77aaff03d769e7f0e743bcdf3", + "params": { + "chain_code": + "9e1395f492ba5acac8689429ccc964aa089d398a72c749cdd8e51da8707deb0d", + "hd_path": "m/0'/2'", + "hd_path_key": + "b3a39781fca5b49411a2abba29221928bd4d9ff7312503ed456aaa94d2198cb8" + } + }, + { + "public": + "b0a52d38e20adbc961c2dcb9a3ea6b66c0f766340bd0e8eb689645cc7eb913ab", + "address": + "DdzFFzCqrhseYT1HYSR9PECvFCZhxHz3FQ3c1nFa3FkGo1ReK8RZejG9yYx9TjFAkHkgi5Ub1NF4xgYbo17DkRGQMw7RPhVdjBcrU9Wx", + "decode": + "05d401262e9c96def09157a28d8393b705ff7c7f3fb72e0997c6a550c697bd80bdf77d6d4158be364c44a98176f17de2bc39fedd2d6bab61", + "params": { + "chain_code": + "73b9a8ca07cad75f334c51d28e335c4396284a1eda2f1e79b871262ef2aaaca8", + "hd_path": "m/0'/0'", + "hd_path_key": + "e0a1658f52f50aced2ae0769d6646c62c039fd2048d4908817386e34fb11a5cf" + } + }, + { + "public": + "85235cc4841536f5ce658e620bf02cb0f03ed1f68b305c4a466442832355a9aa", + "address": + "DdzFFzCqrhsik2W5tsK4xbH9Qdn7RN7ZUM7Zh4aBXMxQ9LPVaVpuBwwWZHQgSErAKLtaVkJYn4Xkc2Qbmr1CAf4QABwHZ8jpqMZVxyng", + "decode": + "25eda40f0a951631f8ce78d99b3e4b656a5ce9266b95c084ca99b37859b80364f03e9bca8040a1298848aa2a15d2d0acf6f52d7d5969a660", + "params": { + "chain_code": + "4e6cef80fa2dbfb38325b9ed89add322f928096b34a7660c8022a5909ab65af2", + "hd_path": "m/1'/1'", + "hd_path_key": + "4d1617b4020d13649216becbe7408e5acd172e3a37ad3e5eae4f019b239b7f54" + } + }, + { + "public": + "bf11ce66866a720003177061705f558772da30396b5b88cbbe5104b4e8df4b54", + "address": + "DdzFFzCqrht5aA78WJFCZNvwjbyZMpCqunJkKGuQMszi4Awcn4YbZCUputKjysY5VB4cbEfSQKRx1HbtVTiv1m7ab6HH4BdDdmL72W7j", + "decode": + "c524aa11c48a7f42548787a0a988556bd2e39d8356409207c7ceec317c9fbe5711c5185a4004c314aa12377cb068c2ae8b3f0627a15c053b", + "params": { + "chain_code": + "e837d9e0a416424235959f17b517e5f6a38ef037f31b1dc1aef154f11fdb9cfd", + "hd_path": "m/0'/2'", + "hd_path_key": + "1a28686c3fe0ee17f57d27d5aac96af5fd68cf381a9288daf5efe85745f493de" + } + }, + { + "public": + "a732e08fff354b561943811d775ffdd83b5a01dbd57324a4605997721e653c2b", + "address": + "DdzFFzCqrht68CrjXRCFP2rEm2T6bWw4WQP7L8tZuUQKPYm35CMNKtCMQtaTHtpqM3xPKEkmn8r8uDHRcpFXe988EVifQfSvUeGbHLH1", + "decode": + "c95ddb675b9925b6007b03c4c2f057f1d388c4debce5f2275053e2441f2d18b643db15a6e276709c9df1a32b0ec9f0df27522f662491e68a", + "params": { + "chain_code": + "c21fa8bb17b9e04124c56dc297e4f3473eb4cf36fc75ce69a0bae3c2eda08b6a", + "hd_path": "m/0'/1'", + "hd_path_key": + "44575d4f180ca7e3a4c4d711033fc50af3cbea77c412415b8e4e31bf0a49764c" + } + }, + { + "public": + "b6798689bae2d9cc943a4e921f02e05b83f2d8e2ebc95c5f6c485812f30ddfe7", + "address": + "DdzFFzCqrhsz1GCVbYhnhkQQKY69uoFVhQ8D11AEk8xWLkFoMEhpBXZufMurgjAiDhdH17Qfd8twRfHWfdabRiXUscDTLnGRvJMWUpJS", + "decode": + "9a97136959afa55fedb22af60369ea89c81afd876c7fba4fffb6ce79738ffce1cbff5aaa8e99665e570a42a711c359594dc51835c6643c30", + "params": { + "chain_code": + "4e54f9e5e4cb25b3e079dbf4dc1b17746ae31885f7cbc1cf14d4f8e52615f62a", + "hd_path": "m/0'/2'", + "hd_path_key": + "3ad45fddc19285a5f9b3fe96d6707bd1bf26bde24e40a187357db8979aac7d82" + } + }, + { + "public": + "856443e17a1166bfab244b6be6091ae76b578281d65509acfe0e517386493f89", + "address": + "DdzFFzCqrhtCh8msfr9PBNLiFWNyfcUZYTvifonQ24XCiorvwhuavXWsnK4ftXn3HpqVmpJe95waKMiQnGCh2SoKYuZHL5nhvdhNggK2", + "decode": + "fb915fe3e89ba638338fb67c0a84d6efbed7470ff6421fcbce1a8cadd9f833892c171761333fd63b34633c7f23fe8901ab10b204eba3ac9f", + "params": { + "chain_code": + "fd3541ae2f3f46286623a86a95097941decfef1d06c63b9c31a00c4299487d99", + "hd_path": "m/0'/2'", + "hd_path_key": + "fd03a4eb6a29a73e9ed285e2c78acfb4db79a9d2225133b3bf731251ddea58ef" + } + }, + { + "public": + "8c732f85046ffb4eb2903b6579560e1a47a62cb81abaacaddfca987f3f617c6f", + "address": + "DdzFFzCqrhspQgiSZD5dLsZVzXdZ64bDYe6uDUBm8eoDmsBGiwbSQeGf54FiKWJ1FA6Qd1HqzzpB9Y8VB2xPWp3hJ4gh1tkNp9X6smyP", + "decode": + "513dafe666d0a49f8f70f8364f3e7222b084d6a7a22ae12b40614c9c3e96e9c886eb4be1e33a8dd912c3e13cc7c43110dbd8270599a3c9ba", + "params": { + "chain_code": + "a287b81a94f1b6e979d84a69dcef736ee14e8777fd9945b441e76ac155911f25", + "hd_path": "m/0'/0'", + "hd_path_key": + "fbccfe5be23ae5446a8143aad3b582e1e24af26336b6a5f580b8f101ebcef5f3" + } + }, + { + "public": + "014dceb89ccdcd181bac5d01a4d59d03f8c757aecca7baec3ab9aba52ea2bc1a", + "address": + "DdzFFzCqrhtCZZ8GFQBxohxHTsfRBhBaNGVmnYNhr6EJQctBPoJmRpm6UHwNjEPydeF4crSgDuoqu2En3EkuZwV9Sig35mArkKuU614r", + "decode": + "fa91a42af924a02742085dec42042a17b69bdc347d0dffd0cc437f04b49abbac7ff491a21f814a738c938f3ecc232124618bd38eb3605ffb", + "params": { + "chain_code": + "e865387bbf1d784e93a9aa435435e3445daa5e09b149f03d3d51fd8e6926deea", + "hd_path": "m/1'/1'", + "hd_path_key": + "fbfaf79dfb36162e058deb7671a42ceb17bdd00bdb5e2f336d76c42763d480a6" + } + }, + { + "public": + "d7fb78eed78070f4bdfdb902d20d56370d3541aca19d312e86e0256caaa24413", + "address": + "DdzFFzCqrht5zxsvnABrxFzrxA4Kqrm5d81raB6HVHVDVy8kdWArrFv3SYgfn49g3GteFgPic8JU4xiHHHKyJYng58TDHE4kfiwVqd3v", + "decode": + "c86990959db618c21a53f10a6d19cc37958cb75e7fdad587f8a047d6ee85a5ba960fcf147e476e0cc20caa4fd35cbcf6653e5571deaacc7c", + "params": { + "chain_code": + "8f8ecfc4cedafd008da7bc0ae3c9193241bb3468d2fb58113e6057d91cd01ccc", + "hd_path": "m/0'/11'", + "hd_path_key": + "725e013caee6b9862311deaeb6a15a87b4e848276836674fbce85da9a2fd7474" + } + }, + { + "public": + "ac50d8602355af69db79f49b75a1c4aee347f9138c4d7b59b5406d336c848b3f", + "address": + "DdzFFzCqrhswK9Xky8uYspPC15sSrx1gg2XYmHb67uemT64qpf6mgQZmFvRxKLP4tkQSdamEeHTu6CNRHnEFSfx2eErb483ZXjVZvyKg", + "decode": + "86042f9dd4ac1eb88e10d04cf9ccd8172e459c31fb7250b228cc5f090182f479ac2943b4da564516379cb21626a6b59525de3ddc059e40a3", + "params": { + "chain_code": + "effc7d3780e9297eefa45f1d6fc21b40bda601dc10d3703981b2ba5cb379265d", + "hd_path": "m/2'/1'", + "hd_path_key": + "3cd28ed664d0b51c7296f32ff52d4806092e824950f621aa07a6aa37c0d720a4" + } + }, + { + "public": + "b9b19b69914cb9e4cfb8b720e188ae3f6c6d4038723aa29fe71ab94d910de686", + "address": + "DdzFFzCqrht7CAevG8BDoBp4WuUDSxPHHGBrVmqJw1stAQJMvti4qo6nVczS2bzp8GRMd2PRYmrz7bZ26NZgjgchTaEX9Bkk9fUN99R9", + "decode": + "d18848e9e2e3b29a1ccb18416118eaf48cfcca5711e362fe0574afb1a1e431fad75b7adb3a05606fed7a3a67574cf3ca14f385a6787638a3", + "params": { + "chain_code": + "b2a74ffe406a969fbdbb4809edab0268b9bd6794f94fb40dcab65fee0fc43030", + "hd_path": "m/0'/0'", + "hd_path_key": + "5acd08199a61e2310a4a2e74c14d363a034d0f010d6e70acfdfd2e419b85b51b" + } + }, + { + "public": + "17806b7ad06419f7a08401a5dda1830b75c50fd3cd35640a9199d1b932162250", + "address": + "DdzFFzCqrhsrByhrW1NaVSfKE5Q9rGLD5r3B4met99KCL6MaB4M5BqQbwFcSzBQXMvWwJwfJGfkswrhmByHpB49bkLfbktYRBfj9XmzR", + "decode": + "5eda81b51fae62ebb5d496f64e514dcf411ec158c29d0659bfd3da907265c85849af3366c8cd1cef369e754c7165ddcd61698c174bce16cf", + "params": { + "chain_code": + "5b42af9e271cbb33e183b36b69e3d6ec8ebaf6247a3942ad1fb5a6296b7226b3", + "hd_path": "m/0'/11'", + "hd_path_key": + "0ff1f5877a7d87edbb673a81a74d4d29f31ddf31be700b61fd43b9533deca3da" + } + }, + { + "public": + "992737b831f3b2fafd6fbb4767ebe641b4eec35f4389306f8efcde433e8703bf", + "address": + "DdzFFzCqrhsi4pTYTUSSgHYaW2eReBU8dSncXCs89WFLdt2RH34qyNWUZMk6Zga2DYN7MMf5quVc2FcdvaYUXHCweFBckGSN2sxon7e7", + "decode": + "20c2e1e604f0ae62f1168a982e574c9b6c1de7809c7f1ac09f0507c1b354daec8b4e3629f5275da14ab18f5bb3ddf44d286368b77a35c80b", + "params": { + "chain_code": + "a91f9e98fb9ceee04871070452ff43ffab5f753386ff8cbf79df8c9a7d9bf64a", + "hd_path": "m/0'/2'", + "hd_path_key": + "6ee6a823c9e377bddd0206eeccdf3c15f802588a45ec3f02ff6b0a81269c2c8c" + } + }, + { + "public": + "73c603617cb8933f5333f37be1bc40b1d91ef09c17d1b737790bcc8d69fdcd67", + "address": + "DdzFFzCqrht9V9LtNY62M5yZYuPR7U73RBTK1tmn3HatuU9MUZYRMu4TkdaWhGHk6deyACt5yHQmkVQzuRQrFj3DTKNnDH2YpxHYAy46", + "decode": + "e30e93a8e485e418dc2867d063b6e92125fbf9d52ffc63eecbb081904ae81b7e9e5c5c60decf2a2c4860340966a37d5f401e570453cb399c", + "params": { + "chain_code": + "287dc109aea44788c0d01776f032293c29b3f9fc8a1a4664e2642f8448376ccf", + "hd_path": "m/2'/1'", + "hd_path_key": + "542a0b81000d938e1ee535af0d47af0c053cd6aa2dadefdda9f15039bef83086" + } + }, + { + "public": + "bcba74792d5e3838fc6ababdab74666cd09fed62491aa8c1144b29e0339e2fa7", + "address": + "DdzFFzCqrht8TnXe31C4HtsRsqJFo2fGDrCXfNgb2rLxmZocXx7yjiM4Y3v8nVuS84RetYCEFMX5nH1LUbWWzqJzCMbrhYqCCLX5H9n1", + "decode": + "db3bf8b844143de053559b2f9730b9bff3884945ccb39c730dad024be5b9045cc69cb12c9d21841d8ada94d0beaa2f8849d3f53f506b8690", + "params": { + "chain_code": + "085f5a4c479db27b006bd117fc866f257f54f7e6755944bd32444ff4d2ac2b6a", + "hd_path": "m/2'/1'", + "hd_path_key": + "f5dd9ecd8d9a5b2b8e7c3d642f8ee462175f052b1522aa2210f3eda7eca249c1" + } + }, + { + "public": + "43e3b670cfc4beec48c7ef98e3ed78b3214cdfe7a4b8ec5c996b8bbbddfa95ad", + "address": + "DdzFFzCqrhsuZ6Z13paBwWHPt4KKfB4NXK395SRYxTEkxctJVsrF618zVScno2UNZX2YrmzpkNUSQr4QJjr4mG13S64F4vzNqSptM2nt", + "decode": + "789140f54dc7a65598cd1f877af2e63f571ce5f36e2e439d4528834e5f262e9713020a3159dd094040c4208c9e5dd4a314aa3085ba453fe7", + "params": { + "chain_code": + "66e3e07d1510f1d39478304c6b2349b839c39c37a20da4d32cc976840a300d2f", + "hd_path": "m/0'/2'", + "hd_path_key": + "e67f36e40497e2eba2c64136a0e31ee31bacadc158ee1f79138c07455736a522" + } + }, + { + "public": + "d08b6cebf89dc520729897f1f4ae98367f563bef112013a505dffd83d4899fa5", + "address": + "DdzFFzCqrhssdqWMBbLmXH6pFhZxeCZrVNrM8ZTE1wAgmD6UrE9M9upiH2dByidwYeXet5gh8eSnUhEMLb1JPZcTmWZRBSGiBnJSsgQZ", + "decode": + "69e7aac24830d029c43e9b9cc81b89108a27a19f2339acb4ce9b9cb452512bd69a30a3e20b4105b8f9f3bfc7d72de179c814a577fdf4ab9d", + "params": { + "chain_code": + "e2555f39f0cbd63badb39a3f1316cea271a94663bac04977646bcb7a6c5b8178", + "hd_path": "m/0'/11'", + "hd_path_key": + "142e186bade936bc033a115abefebefa48c63ee1ce80c3d858d804df6e599047" + } + }, + { + "public": + "cacf1b257981d687bcb15c39880e37697678f2b389932aa059550b34afec7775", + "address": + "DdzFFzCqrht2bQWeymXZWqUQJkK3MFjyiA2HBM4NvuP31G2HJAVzys6PfsaSe2tokArjrjbSSaCCgho41jGSRSv7vxBJQk2oZPhx6nCK", + "decode": + "ae607fc95924c2eb609b25bbcc42b58a71875cf555d9c8587644e0b0ea3801fff04f48517bb9404d70b3267dfb6b88f12fb1e743b1a2c3d7", + "params": { + "chain_code": + "c23bcc5a2364d3ae243ecfc64d8423e7c9a351a27b9a6fd9ad21f02daca54dd1", + "hd_path": "m/0'/0'", + "hd_path_key": + "b65d81c8ab2a20a56e2f4a7b5b656a9bcb2d6d241a99b591b2f9c7c30a0f6842" + } + }, + { + "public": + "35ca3cd1e155a90b6447a908ce8d28aa7f4413428877b09c096ee98df0ba043f", + "address": + "DdzFFzCqrhsftXGydfTakrZTJhdH9rDeoQaCDfo3hGbf8t8NCrnR8PcyeMPtahcaHXhUaDLh5sfizXjiS2DNBeei91JqbGd8KVC6JDv3", + "decode": + "101dfe84767967458df99543068e494de85642e88290234bc354fb924dd171b44ef872fd94e439d1db7a1d998bfa1d0f6dde54e2bd656011", + "params": { + "chain_code": + "b82a8872ea4643078b7a81b77783117c20b7e63acdea12aee7f9c238a2fc6f30", + "hd_path": "m/1'/1'", + "hd_path_key": + "32c087d483969a53731ea2db8d1b76e03685fc48fd929c53485a607ada023e45" + } + }, + { + "public": + "0fa670d75fb89a271cbcd88e38022fd8ddcaef5de455ea62ee5798bbd25bad9a", + "address": + "DdzFFzCqrhsfv9iW4yanyo9SwKquVAXAGwVXweZLk4BkYXiN4hyHKghL42pETQNdsdGvVKbQ2XKGk5Uhzhvg5Dqwmg6td19r4CAKVYhU", + "decode": + "1054ed84eb0090eef577a286653edd598eb9a82457b5b7f37ae49388c3b5083d2254b71353957080ceb061d596bd3bea993d554e6cbe41ec", + "params": { + "chain_code": + "c85e1e031cc1c8ef98d789a7d92a53d5c95a6082602fbd193b248e6ec2b60dd6", + "hd_path": "m/2'/1'", + "hd_path_key": + "5ef711903585b1533aa35e37147a640997368df5176a5632a5a56b6d00f6275f" + } + }, + { + "public": + "c4ff2c11beb20542e8961f6dbddae5f7690d1c96873a385c45e43be4e56bb560", + "address": + "DdzFFzCqrht1S9mGauMgxhMtNjJjq5uWJjHR8EXMDqH7sytBWHXMoMPeec4ZLRPuBsicYrXfMqQtPWhqgMkEvQ5WFYMbavNbsnQ5ajQC", + "decode": + "a5838652b94616ec137f266ef341b4c74235a81897855d1daa230d9fecfd748f57e86af8ae328253b657a7a6295528947da41c6abf666fb6", + "params": { + "chain_code": + "a180d8eddb6699bca2b67b9f84a6977e890fb2683288d1e0cfd99bba5d75a2eb", + "hd_path": "m/0'/0'", + "hd_path_key": + "facd03873fe91bcfb44c74ef224d84e19e37057e997f5a421fefb8ec831b1536" + } + }, + { + "public": + "9a83e487c28ed98dbe8958625d5d72204151d1b55a185f03b123b9c5886a41ce", + "address": + "DdzFFzCqrhsr6FcPU9dbRWuWPAEsNkJ4xivjZeDqFPVZ921341Rdm44pdkGkdVMsF5e92dNuQk3frKjZLnPVB8Qh7b2rGbCJBSAHaQJV", + "decode": + "5e1955cd92cf1d0ff2f4ac4e421be901c0f12d51d65a0d7bed50294a9d6eb365c080eb6f30961ae9782ba5db23a48919f8ff3397841f4fc0", + "params": { + "chain_code": + "f76673e7554170c120d2bc20d17afd0b95b7400ff3319f49fc5fdb7b0069b5e3", + "hd_path": "m/1'/1'", + "hd_path_key": + "f529ec53382e48fe724ad0d7b7a69e6a7698a7838cc5569e36e57af2b2715876" + } + }, + { + "public": + "7b2af195cb3543c4821d0e79a2a56832806621e7ee47054f9113f8e4d458ad57", + "address": + "DdzFFzCqrhsjGjF31SiPvFfQr2WEyFhd1U1jCYYXqBJNuRST4tzcswjF14PUXxPGPe64mm9E9qDLW5pj4qd51Ryh6JvJV9kcebQDE6YC", + "decode": + "29f974cb2f2890e600a22ab1cd40ad58d5b0bb468553125f06d31f5c29273ab0f428d8ad7b8c43a94177ad3d4180952c3b66c948759042e0", + "params": { + "chain_code": + "394fd785484205a0bcd35b8450dbe1088bcf57df3a360353b98bf7a535a770d5", + "hd_path": "m/0'/2'", + "hd_path_key": + "ba6ae1af5a7ed0e4d151cd9c976ac5d6998f41917ee9457ed170208166e9a05d" + } + }, + { + "public": + "a062401c6334b5e3e6c00bd527d6d0bdab0dda09b514af8241ee1c863cecef7b", + "address": + "DdzFFzCqrht3xFTLAbBpbbZKNtaXp6jsJ8VKQuxCWcXdqj6XB2YR6MeYcYR4bGaufs2VU9D7q77YfVUzvEWC6XKSByrAiJcF8rDqe7LL", + "decode": + "b8c479401bfa6c8c7c7cc7b5eebe698b586233f8be889f8055e73a8e7369035baadef2b90a60a268fcb765028ed9139d9d5a6c4e08768ea1", + "params": { + "chain_code": + "5640f11c330c653fa8baa939c852f939fcf16046dfe4704e0a0833681950d74e", + "hd_path": "m/0'/0'", + "hd_path_key": + "f9d3e43d1cb2f1a646077735630df9be4267303d0792cb148fa245a1ca8ba64b" + } + }, + { + "public": + "5f92bd00f315f60c933a68dd61e4920ca1763773574413c970e30ab81ec577a7", + "address": + "DdzFFzCqrht75wJaUuEkWFhsrHZGHzFi2AYxAVNtaGtsdA49LfyJ6hdJ3ejn8Spsi8kzvAdAosxa2RqFmmWJUJe1M2C4L7Tj9JNBgsE8", + "decode": + "d0b618736e15918394d5bd6b93e5c2c51c5440bbf09ec47505bf102b152eaa8df9ad73031eb61bc52a1c7efd139d9022e2077b21b8a6a9bd", + "params": { + "chain_code": + "148dca6fbe7bf7b0c06a6afe442b035dd5c21abe649396e6d52d2e1873df4972", + "hd_path": "m/2'/1'", + "hd_path_key": + "2b9b8768a4e6ac2a9c92ffb58d36cb44ef2a384e0914c3eaae14d2fb55d4759e" + } + }, + { + "public": + "e559cd6d8054c27eeb5c0a8596f64ad382d5ed37d794a1681490d06bf417eabf", + "address": + "DdzFFzCqrhtAmntNxXA3TbHBLVMtLZEfRrYmDS4PWuLbCpo5RQxsmsdhgMLYgR28do4u8vrFf22BECt2c4u25G9CkWkNgSHhsoDEoqTb", + "decode": + "ece4f8a810c7ae22961a92f130c1e6aa9bc0d9bd72bd5623937def309e9021cebca6bb2467eab9ed92aa9410b5fef3efce749b28d78fb4ed", + "params": { + "chain_code": + "f5e060265258224ae5ffff7ad784b110e52462427d2a36474938fc0fa74938ae", + "hd_path": "m/0'/0'", + "hd_path_key": + "4797ead8a9f13e5650a06bf2380fc74dacf99d83054522780876c01d4636994e" + } + }, + { + "public": + "2a8368d8fdb1ba4d635846f27127d3f96ded22d8dffc754372587a727e5054ca", + "address": + "DdzFFzCqrhspotFAxPFNs2xMyWDibGe7oMw3rtepi5GfwbcWjxfJxfZJ3sX8RK7qC7141njwuPhKi6g9WfmtUvWGNgNfUGMpgHDtAi8i", + "decode": + "544c59bd5e941a8d2aafa37c32b55f010ad6556714fe4bd81316414c906c897e3b8ce29aefac6033479ee876c9ec0024940bc0299594a6c2", + "params": { + "chain_code": + "0c8702598aa0f42c784afb8d15d4a38d7d7982374df254fcd2b582a1c6a41885", + "hd_path": "m/2'/1'", + "hd_path_key": + "ded88a94cb42d1a73366494c4372782cfc08f20a8ce118e96e0fe6ee672daba3" + } + }, + { + "public": + "e0a5894ea14cddbbedbff5e49a0567f8f5bb3a024ecb9641a5c5c566427b5f9a", + "address": + "DdzFFzCqrht4HJuU2LBAFNyUzQydrYRJPgt7Hx5JqywdcsRZvakU4aDJtJVtU86m1dzTttmkkUF6YL1gQFipqZZP7sAXwEC8swnneiF6", + "decode": + "bb477d1253fa01b3b82d98c501ac0238eac2b9c040264b9fef941852bba394220d959f2d79ace248c55f7d45e354c914ebf14f6f2edabda9", + "params": { + "chain_code": + "660e501bfba8749e9e0dd0e45765ccc8d8bad1d0eb749669dfcdf7b77ca57740", + "hd_path": "m/0'/1'", + "hd_path_key": + "7c09517376d1c04c8b8f37c8643f38671212ed1c9e92622db719775f631c7ef0" + } + }, + { + "public": + "eb9298062649c87d3ce7593caa57fcf05d819c7583ce8daccea2ac5c071bbb3f", + "address": + "DdzFFzCqrhtBzkviHZ7v1Rs2XqnvAa75FeKct33mhhkS9tnGcDwDAXY7jtFT4JWz7ykvYh5k5GJB99ebjBjT22AdarYzResDevSEga4k", + "decode": + "f63f2d1e60baed2fb4982d702e5afb5813a069d9e99bd26c5d3470be20ff51845b091a36f40e250e993d08b27723a298980e4b637afe1cf8", + "params": { + "chain_code": + "6d94be740793d2c602e1338351b105201a84abb8c6a5604c40cc60d77ffafb55", + "hd_path": "m/0'/2'", + "hd_path_key": + "f6ddcd9f40ebff1ab1feb2652b2ab56f1b19ab67eb34b78c3c56d221828e8e8b" + } + }, + { + "public": + "3c87fb0fd1d3cb89012116500b20765a01d66f6b649e4253a8f08e4a3110c57c", + "address": + "DdzFFzCqrht5ReRKcXLqXsEYrNwrTztpnGEjNCR5Tvy3pm7XFJfHfzJEJpDT1gJs7poLD3mkQZYydPYFxogUWDxjSw6NJLhxf4BGaT5k", + "decode": + "c4057f9add47f707f8d410faefc4cdfcc81d353367705028949f72e1a6ef5bdec98e8dc009d5debacd95730f0e7f57fc412bfd257e9e6880", + "params": { + "chain_code": + "01b972d87722adf9ca36ac4a90fd671f030ca2ac5e486c979212c66f548f1ce3", + "hd_path": "m/2'/1'", + "hd_path_key": + "5b3bd35cd1e691affe5a286e561bf0a3f1d69b389074795c4fb9f7673a8ed80a" + } + }, + { + "public": + "40f4fa089112ea3b9bfe41bfcf4bf5ee163235b32296ce890ae06cb03dd6c27b", + "address": + "DdzFFzCqrhsfWgMPbxEKrAgPeXaUU3m5kbKZomJNJN15VwoYEGYuniFNGKnpskdfMbeBhNWVFxfhrobsaKZeitDCzVCGwMRLDWont471", + "decode": + "0d3d0dd4277d75cf4368dbce1cb527a02de696cc9689969bb6b59e6989c88f2cb93bdb26e5f206765fa629bb06e4fd3b57313ab85e5f4b7c", + "params": { + "chain_code": + "c91a7c7756e8040ad5ab38792ca74e6e324b2ba377638671d9d8103b6f61e02b", + "hd_path": "m/2'/1'", + "hd_path_key": + "0bb24a0d91f5ecd7d43dee3ece03457510c99159348c29bcb634388e3a664e3b" + } + }, + { + "public": + "c033cea1a425d746dc4968a95be9a1edffca0d25bd43daa705498de69341fbc0", + "address": + "DdzFFzCqrht5JUeqv1cTg2KCazJWZS9LLZktxmgV3aBcuh1jNHH8uedQzEh7MRYEdRe1n8dTgpjiWjVC7nqjFZuzgiRzdKVdiPTvVnvd", + "decode": + "c313a81318067bc69c1c3157f912b2bf9fc0b387ee242977095917c6bbcf014cae2ab37f01cc0f8bebfe4b7ee02c1899d0d0eb200b0b5e2e", + "params": { + "chain_code": + "d6462f5e3f0b0e544df3941a8cf6a003d9e3c4db6cb0b57b4b187fd2f477f414", + "hd_path": "m/1'/1'", + "hd_path_key": + "1f15f33d1cce9d09675d65ca7e9cd86730a345620b1c8df3d4cb2141ff853fa5" + } + }, + { + "public": + "58006f25f4d55958e90b6f596cf3a58db1a8491eccd805c2668947ead08afb24", + "address": + "DdzFFzCqrht9vUUAeQHciz9VhDh1TwqCiu2SFCnqj6JVZvv68r4TrRtXdT7ZULBME5f2gDxZnsyGodvjMjZmQiaGFJ7qL9JG3NQQnyQR", + "decode": + "e665220a2ad4c379ed1f5d19fd2dc7ef962e54050cf5003212f8ec8c2af9acbdba2afbd84cd34cccd2a7211735f96683cc995654f87bbdcc", + "params": { + "chain_code": + "e05145876af5252202950e50c3ff37fe87d0041d016ca8e26816c42a57772bd7", + "hd_path": "m/0'/0'", + "hd_path_key": + "87341ca500e8600bf13973e3275a370eb946584569f7f837943b543d0ce6b728" + } + }, + { + "public": + "70ef1ae48bb0a16624da9677ed2907912d253aa0341e6547a38cca622a8ad615", + "address": + "DdzFFzCqrht75wEKUbkkw57yVosL2zx3mN7YZntgLXNQC6Cu1hhng6mjAdAamp5HE33e6H5Gu2iZFNXPazNuwFWcjVjQDx5ZQLQnkzxB", + "decode": + "d0b60d845f7d3253204ab6b07e899b4900662c58b120310692688bdd2b2357aee4d4f7d7ea23bf1dadc15810f2ac5657b39255fce78171d1", + "params": { + "chain_code": + "6cfcb154da2766155b5c2c1b0c729ea58b8492b4d8adfcb59d144d61f3a2fb81", + "hd_path": "m/1'/1'", + "hd_path_key": + "020e957ad0c105f15796052a0c0ef098845a66d8fd2f26541993614cd62ad6d0" + } + }, + { + "public": + "4155584b0d3a9fcd40c0a7e828a448c735e43dce718c62611a65bf299fe9e3ec", + "address": + "DdzFFzCqrhszKbAzfr4qUjqmWTH7HZe2KLmA2XPbwwGUWJeddLmaSap8zNZntT3raW38CmZAUACWrcfeqxKRYeMqdVLeQBBsPyeaNGYg", + "decode": + "9d0162189cad20acbc01a4dba5915d7a9a70e8256fa294da83b7765a8745ef7ead252100b52bd0527905868960098a153a1bc14901679fc0", + "params": { + "chain_code": + "ce74178ce4ea6f4732f27c6f6cfe4d44be7302a7d89baf4545e58d396a2c97de", + "hd_path": "m/2'/1'", + "hd_path_key": + "e5ad6e06ba6518a0a4f72a16296bb029fd798595a23dd25a3852f9bc6a2101f3" + } + }, + { + "public": + "f4287790abc78c303668ae3324b05dd3d559861fd8c7d09d700140fee81df16b", + "address": + "DdzFFzCqrhsofPoukNkX8BGB9LYSTkrPc7VySyc12dbzTtatkYuPzPYqh5RVLGVC1JmwcceHC5Kai57gSL47jcTnJWMsMuCEkVyRgWuV", + "decode": + "4b8926d08fcd55c37ae35c52e5b02be53ab848ab2625e42a0e3f321cd918790c61558307d845d978193fe47f0ee164ef0275038f25266135", + "params": { + "chain_code": + "d35fa122057869ed6ba208e2136b23ea6a31ed8d59d9ddb84f43d3799865d9e7", + "hd_path": "m/1'/1'", + "hd_path_key": + "e4f32cdde26bff830942e7b55cd86f8c722ec5c0af43f3bb5d5f8977b3fd3b6b" + } + } +]; diff --git a/test/address/ada_shelly/ada_shelly_test.dart b/test/address/ada_shelly/ada_shelly_test.dart new file mode 100644 index 0000000..6e088fb --- /dev/null +++ b/test/address/ada_shelly/ada_shelly_test.dart @@ -0,0 +1,36 @@ +import 'package:blockchain_utils/bip/address/ada_shelley_addr.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import '../../quick_hex.dart'; +import 'test_vector.dart'; +import 'stacking_test_vector.dart' as t; + +void main() { + test("adda shelly address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + params["pub_skey"] = BytesUtils.fromHexString(params["pub_skey"]); + final z = AdaShelleyAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = AdaShelleyAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); + test("ada shelly stacking address test", () { + for (final i in t.testVector) { + final params = Map.from(i["params"]); + final netTag = AdaShelleyAddrNetworkTags.values.firstWhere((element) => + element.name.toLowerCase() == + (params["net_tag"] as String).toLowerCase()); + + params["net_tag"] = netTag; + final z = AdaShelleyStakingAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = AdaShelleyStakingAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/ada_shelly/stacking_test_vector.dart b/test/address/ada_shelly/stacking_test_vector.dart new file mode 100644 index 0000000..54013b1 --- /dev/null +++ b/test/address/ada_shelly/stacking_test_vector.dart @@ -0,0 +1,376 @@ +final List> testVector = [ + { + "public": + "18f2282a3ab33651115651ae2bc3ce5d48bb9eebe2c49938451dd3309e6b580c", + "address": + "stake_test1uqdtnhxhkxhchyhvx2zn5v0dep3fwwejmuz78j92zn926aqyacsm3", + "decode": "1ab9dcd7b1af8b92ec32853a31edc862973b32df05e3c8aa14caad74", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "1ee801e7654c577641d53de7e6207cc4347101cd7c7dd8ee7812f1394fcf7cf7", + "address": "stake1u8gewvp4tf0jzte2dy2sm8r4u65vrm0queuk60mtqs055wgwv96gu", + "decode": "d19730355a5f212f2a69150d9c75e6a8c1ede0e6796d3f6b041f4a39", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "1a7d81414598f99fb5204f21c13ee88decf0fcec035f4ea805de8a84bebadcb5", + "address": + "stake_test1upzq76wys42z5r566lg85vquslcm9q35j7u2nprqpcj33ys82wdza", + "decode": "440f69c485542a0e9ad7d07a301c87f1b2823497b8a984600e251892", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "e9635d28823f9b6719df5c6e8d7db0a5242af0319dcfceb3d0992d378119bab8", + "address": "stake1ux7dz3vl6fzs77ldgscwjhrztp3naqcv482lsprctu9665gq5xqzy", + "decode": "bcd1459fd2450f7bed4430e95c6258633e830ca9d5f804785f0bad51", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "87e9c2d1d3c26a0f065b3ea5ae879781c4ebb0e678f8017c575ef349acae95a8", + "address": "stake1u8j7kevyq85nuvwsmujzt7e0pjwawmnn2kek0ldypwx2pdq4x7qmw", + "decode": "e5eb658401e93e31d0df2425fb2f0c9dd76e7355b367fda40b8ca0b4", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "a2a168527a083a19f60d73afb1af340ae4dfe5efc6d108286db9b0c40e1c0cc2", + "address": + "stake_test1urhqj6v0u59at0wknm38jqqpwqt57h4v26cwhdnw9mkrlpggpregu", + "decode": "ee09698fe50bd5bdd69ee279000170174f5eac56b0ebb66e2eec3f85", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "a86787aa7f3606d9b361b2017739455eafd3e3d0cbfe6675a25ceddd952bedcd", + "address": + "stake_test1upv65gezp52lc7pvg92yjqmj8lsfmh0qru8fagtpu4076wq7rhcea", + "decode": "59aa23220d15fc782c41544903723fe09ddde01f0e9ea161e55fed38", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "ed8b3483d404ace4f819d2d196036f2ca3dd1be93f3ef14ff6c3c12fa629006b", + "address": + "stake_test1upz68679g473ey9r3xfuyad7sr4vrygs5l7vgdhclrrezqq6zfld9", + "decode": "45a3ebc5457d1c90a38993c275be80eac19110a7fcc436f8f8c79100", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "c0e60d4a4656fb61388889f71c683b60e69dddc6f83cb5c878543f57f7a79891", + "address": "stake1ux0pndrng94tny44nk6t4pcu2wnnxw52ch0xtjs2fac4k6q86dw4j", + "decode": "9e19b473416ab992b59db4ba871c53a7333a8ac5de65ca0a4f715b68", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "231231c1dfb0c5bc9086009944c4e434789f197c8f944d4a2c39c8ff89cf1169", + "address": + "stake_test1ur7a6p59zdp03999cxwp4e7nm42aucf5kchh8nfwsg4zvccx379xa", + "decode": "fddd06851342f894a5c19c1ae7d3dd55de6134b62f73cd2e822a2663", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "c0df57e0c18d73dc7122d225bd6eedde251b9ef6ed67ac7d0ad790b57eab77e1", + "address": "stake1ux587g57dv8js3h6wsque4zvd3glz52t6n5zvkw4pkc97lqw4nga3", + "decode": "a87f229e6b0f2846fa7401ccd44c6c51f1514bd4e82659d50db05f7c", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "6708a851209064febfd47c9e9f7849f1574f70531f05f7c84fb0ace6290e635b", + "address": "stake1u8uy93p7cvmcjqew864z54jgjvsqv9ugn67lxuathxjudgg0ttazt", + "decode": "f842c43ec33789032e3eaa2a564893200617889ebdf373abb9a5c6a1", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "24213dc3f9ea12ce9b468be059cd3a5ff01dc95cf92073e1cfecde47c67905a4", + "address": + "stake_test1up3qu8tv46l4sck7wds8a5vxf6tnh7eaj2ggsje4uqldrageyzu7p", + "decode": "620e1d6caebf5862de73607ed1864e973bfb3d9290884b35e03ed1f5", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "6af7d3459a5a13340f095f28cf4beeb6c0393d4991e1541148b082b26e5da800", + "address": + "stake_test1uru0z2k47fxauhmg9t89gk9hp6j5ap329tshgzfe44ukvmsypq0cv", + "decode": "f8f12ad5f24dde5f682ace5458b70ea54e862a2ae1740939ad79666e", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "557ac71b0820beabf5be7be17ebeb7069c56d0df956a8f916cf7228fa2263a69", + "address": "stake1uxrseh4wup5zezdrhd93x0sncqvltyn8r5xrqw5kd8vg85cpuj4ry", + "decode": "870cdeaee0682c89a3bb4b133e13c019f592671d0c303a9669d883d3", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "6cf3a1fd0c019bda49488edebcb80e9bbf9b0bab34588a3edf6c7270777245c8", + "address": + "stake_test1uq7wfweajh2nck9r4eagcgu2c46uftl3zj7kvd6jpzqvlzqmr84at", + "decode": "3ce4bb3d95d53c58a3ae7a8c238ac575c4aff114bd6637520880cf88", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "cd53c88f6a640ce25be09845adcf648edc6033a0f2beba4ac1d4814abe2789f3", + "address": "stake1uyw8hkecc76an9gny38gdfsr723p9pr2tvh5zv50py4nrsgquc0t2", + "decode": "1c7bdb38c7b5d99513244e86a603f2a212846a5b2f41328f092b31c1", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "b7c6a51a616df6d1e0bbad73a5d74798ccd9c9d8221d864870a64fae186bc756", + "address": "stake1ux5d5telcr7s8trde5rw64zcl2l6ntee973acp8sn5qhvpcexrxhr", + "decode": "a8da2f3fc0fd03ac6dcd06ed5458fabfa9af392fa3dc04f09d017607", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "921207fd93c5f8a86c4c176ef03e0b201b11cd4f774a9021e4a13e4aebbb83b8", + "address": "stake1uyue5h9lc4u26jznq7p6geqvxdsftsj2w4zecvzp8x55phqqarrmq", + "decode": "399a5cbfc578ad48530783a4640c336095c24a75459c304139a940dc", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "feee9e6c4f26a98a779d0519acc71bd4e955d1c8008c94a621456f76fd32f211", + "address": "stake1ux65tfjgzpsarl5sf36n6x7lp945h6ghlpmqdrnssrzwgkqxjxuj3", + "decode": "b545a6481061d1fe904c753d1bdf096b4be917f876068e7080c4e458", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "8780b8d9a34e8c511525fde22440fdc13f411c670d7509361762f6a413790331", + "address": + "stake_test1ur23qmnj9394qtyyeawsmup4efweehukpnyn3gcsfdan7zgdsr52e", + "decode": "d5106e722c4b502c84cf5d0df035ca5d9cdf960cc938a3104b7b3f09", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "102cea59a163b2942ab176ad1b8be2ed5772becb4d608c276ec909927b5b8d79", + "address": + "stake_test1updc29ypk5wt56rf47yulnhafkv9jqt2wwrg63f6rce6m3g3geeyc", + "decode": "5b851481b51cba6869af89cfcefd4d9859016a73868d453a1e33adc5", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "e96b9f26c383fdc9b462c2f3fe0525291a0338ebfddfe4236cbd787ac8fdefcf", + "address": "stake1u86tad0407777ju8m8h6vx2wxrrt8k8jgned386pkfjtxycgqud6c", + "decode": "f4beb5f57fbdef4b87d9efa6194e30c6b3d8f244f2d89f41b264b313", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "cb27ad39a189d1df909995eda407433de5a956a3bc8e4c7b17451cbdd99bdbb7", + "address": "stake1uxlnj7j4yce4w6pf05ys78ra80a7yr77t35mpr9zq4l6qtqljkuf4", + "decode": "bf397a5526335768297d090f1c7d3bfbe20fde5c69b08ca2057fa02c", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "eed8ed4b51500dc200a163ffe0d7c8f19ce5e95f9a35045ddfdc97c2bfe9e1bb", + "address": + "stake_test1urrjdm7nv885l4avj9weegzsahv084cw28cknu5jnzvgggcf6dqag", + "decode": "c726efd361cf4fd7ac915d9ca050edd8f3d70e51f169f29298988423", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "ae27d2d0ce06e48c481a9d3f0a642036d4e772c487dd7d7530d60bb08d8ab5c6", + "address": + "stake_test1ure4u4syru2nah64fh5law52d6jh9zsd8l3weq9x96ppfac84srgn", + "decode": "f35e56041f153edf554de9feba8a6ea5728a0d3fe2ec80a62e8214f7", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "2e75ac99a2ba7de0bc2c4da337832186c4be2d6f519385180a2ac66be6eca315", + "address": + "stake_test1uzcwk63338yzyz965fpqh2zftqjnae4v3nha5wteychpz5sjvyn6c", + "decode": "b0eb6a3189c82208baa2420ba84958253ee6ac8cefda3979262e1152", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "318c616137d3ca26b7fa88072a1c50c47d6adcb82cd060826932d84495a9fc3d", + "address": "stake1uxz42sc0cr0hef2y2qjpj5cwj0mesvu4w5tj3ll77cx64dq5dl3yg", + "decode": "8555430fc0df7ca544502419530e93f7983395751728fffef60daab4", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "29e46ff03a1927b68f8b27ab5facfb6f853966cb232962037db906e696de109a", + "address": + "stake_test1uqxk6yhv8awk00z4kvusf0ay7ufj0g7eal07xmyczlve3rchpx6u3", + "decode": "0d6d12ec3f5d67bc55b33904bfa4f71327a3d9efdfe36c9817d9988f", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "b28f8bc68a02dc6c10b69d5aa32435b00dad12c67b99d6e17150c5cc05e6aa4b", + "address": + "stake_test1up94aw0wmf666k02xcanjycac5weppppp3la3v0076hd4eqtka0ld", + "decode": "4b5eb9eeda75ad59ea363b39131dc51d9084210c7fd8b1eff6aedae4", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "be375c76cc16ee6b2033e9164c33cd54e8aca003c98a2da564ded671be6ef8c0", + "address": "stake1u9d68zfmkd58ngl3ned3u37twnjsal7eeutss8ypm87l4dgtkel3r", + "decode": "5ba3893bb36879a3f19e5b1e47cb74e50effd9cf17081c81d9fdfab5", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "3bf951d5eee2e8cff0ae4af6d4d67ac3b3e8854675478f67a855d9ced495151d", + "address": + "stake_test1uqkchzmarptc5whj29xd3vrpgae5xcchypw85ry6z7pv7gstju7rs", + "decode": "2d8b8b7d18578a3af2514cd8b0614773436317205c7a0c9a1782cf22", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "d2c8e57650d2c38fc47bfbb11dd6e88c68e8826cbaf42aa4b174a11cadb63421", + "address": + "stake_test1urgrca69wua9dptd3vd948k248xygcacywt080qha994dngrktrlt", + "decode": "d03c7745773a56856d8b1a5a9ecaa9cc4463b82396f3bc17e94b56cd", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "212c5a56f728993954e59bd3911c926c356315f78d91bc29fee5bb02f8518a62", + "address": "stake1u9kj3km8yzgn9zc589guyvlh8vxmdflxs8j23ewzsem0enc4pqq4x", + "decode": "6d28db672091328b143951c233f73b0db6a7e681e4a8e5c28676fccf", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "d1dce7e04569cebed0e5f7a98590726f53238e643f87f1ef47f84188fbb7f214", + "address": "stake1u83w5z8m0mcllp49hsh5s47cdug7wqal79yhj3ls4cflggcxzjd75", + "decode": "e2ea08fb7ef1ff86a5bc2f4857d86f11e703bff1497947f0ae13f423", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "f27c45cb67a1488e0cfaec6f3ba2da404d05ad18e4ed55e44a91b15947fef74a", + "address": "stake1u9ptu7pzzmk5se7nrtxka3a9480p4wks0zsx5grentlpq3sdmsj8q", + "decode": "42be782216ed4867d31acd6ec7a5a9de1abad078a06a20799afe1046", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "b4f5dce79a22f20adf025b80debc5b6a48fce01dcde3ec96b9adaf0caf6a296c", + "address": + "stake_test1up49gpj89k3mwjkzla972990qk8y48krv777paylggz84lc9acxq5", + "decode": "6a5406472da3b74ac2ff4be514af058e4a9ec367bde0f49f42047aff", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "bec1b55a0d6910fc96be6e9a036c7de194a6e26e8773be19330ace4bc5671020", + "address": "stake1uxr8qajkqklypgrj5msxjy4xyg7tvg9r0uaamly4nwrmp3geh56rh", + "decode": "8670765605be40a072a6e06912a6223cb620a37f3bddfc959b87b0c5", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "166c071261833209403325aeb321a5e43bee9b333c7c9a89d32eab24c4075fb6", + "address": "stake1ux5edj5vaxqchw7fcgcnu4fkpmksgs5l6z69qa3n8f8u6zqtyu557", + "decode": "a996ca8ce9818bbbc9c2313e55360eed04429fd0b45076333a4fcd08", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "c22e1d61b2bb0d9327e1b38dd78e5fa681b32a6200860a1cac15a9a50e6cd1e2", + "address": "stake1ux4x5mvu2dt20yez0wr9jeuqzemlasndn2gtstjqu3v30pqk8z5vl", + "decode": "aa6a6d9c5356a793227b865967801677fec26d9a90b82e40e4591784", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "2a8c8aa4804fb8a85c82fe1914c167c25b6351ac55621fe774907f3a857a775e", + "address": "stake1uxxt464getljjsw8t8a8kk5exkqhy9dadte7dgpm4zy2tlcxehcaa", + "decode": "8cbaeaa8caff2941c759fa7b5a9935817215bd6af3e6a03ba888a5ff", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "897b35ff0e818dee6b9b502f18a6065494f061c0ffefe02f8b77a0280a34fc85", + "address": + "stake_test1urf40da0kvmjv0jasa730neru6pdvqpltkycpecrrv4m0qc86vw0y", + "decode": "d357b7afb337263e5d877d17cf23e682d6003f5d8980e7031b2bb783", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "8e5d3a50ed51658851041be9fefc98147919f3707f6b28ecc6d98a693d09f754", + "address": + "stake_test1urf6thhznzny2wytmp9w5fgf7xk9sx44yyvhxhrwcapyzmgypn4zx", + "decode": "d3a5dee298a645388bd84aea2509f1ac581ab52119735c6ec742416d", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "f091351691f0b685fba000c0ad08978194a990761190c7bebd7b145605041693", + "address": "stake1uynq2j4a0naweztw3j3rphmkgk0yjd8z4jfn4ek3ga3hjkq8hs4cr", + "decode": "26054abd7cfaec896e8ca230df76459e4934e2ac933ae6d147637958", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "7d31b12963a86b2c9d8c814fed4f87cc33e44612eacca606f019199a01bc69e2", + "address": + "stake_test1uz6ujcj9ma2xytgcuc8wlpcvchnalt3fs6aemf2tumpaezcqfauj9", + "decode": "b5c96245df54622d18e60eef870cc5e7dfae2986bb9da54be6c3dc8b", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "9e351fcdcf91e8229c1a6603d97e7774ee639f65e6f72b57855dec903f4f5d80", + "address": + "stake_test1urqpq93853er7s48zd4qcn3zvy4zk2x56su4z4zwsgz6k7qll8y8m", + "decode": "c0101627a4723f42a7136a0c4e22612a2b28d4d43951544e8205ab78", + "params": {"net_tag": "TESTNET"} + }, + { + "public": + "3fb8d107482a3773ca4f9f3ca43c770485c3cf276a08f03a11185a9a595959b0", + "address": "stake1uxdr38q9ct8u5rn58vkkzp496ey7cjuzff2l397k9utuewgfp0rcr", + "decode": "9a389c05c2cfca0e743b2d6106a5d649ec4b824a55f897d62f17ccb9", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "4c312ab998f4f0b17470eb4fa6a1076d6f2e7fddcf664da6e44bc6688c21465e", + "address": "stake1uy6auhr037cgaejlhs0a9qfx4ef50d582wg3ac0nvvxc6vg93ultl", + "decode": "35de5c6f8fb08ee65fbc1fd28126ae5347b68753911ee1f3630d8d31", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "87ebf0ad140e39ee74002d273c1dc01922f10efd52327a9f154f7f7f351877a1", + "address": "stake1uy5ga2ua09uwggnjdrqscsjzehyfxg3zdsmrksd9hcfsu0sqjcqcy", + "decode": "288eab9d7978e4227268c10c4242cdc89322226c363b41a5be130e3e", + "params": {"net_tag": "MAINNET"} + }, + { + "public": + "3def8c8fc18ed55af54337b50acddeef3de5299a17fd22b753f0d4b10935c913", + "address": + "stake_test1uzkcudtzms2fnx5fwdejy7jd63y2k6c7pat6xhhmnzwchaqhz699s", + "decode": "ad8e3562dc14999a897373227a4dd448ab6b1e0f57a35efb989d8bf4", + "params": {"net_tag": "TESTNET"} + } +]; diff --git a/test/address/ada_shelly/test_vector.dart b/test/address/ada_shelly/test_vector.dart new file mode 100644 index 0000000..3020aa1 --- /dev/null +++ b/test/address/ada_shelly/test_vector.dart @@ -0,0 +1,602 @@ +final List> testVector = [ + { + "public": + "f7469f7093f4f905c350ab69b8c3bd6a6b213fd985476027b699e8c060fa81c2", + "address": + "addr1qyde5c27cv89usps9npzf2yd73gy4ygzfqasjd7ptry7rmc9rx7lxa5azuahsxtcuq99f69rg5t2z7fajv5zkeufp08qpmlakv", + "decode": + "1b9a615ec30e5e40302cc224a88df4504a9102483b0937c158c9e1ef0519bdf3769d173b781978e00a54e8a34516a1793d93282b67890bce", + "params": { + "pub_skey": + "dcd7603a96eed0d3a030fed42246081f1aae27a3d678aae492935060467601ab" + } + }, + { + "public": + "7a165ae05b9cb31cc14cc243e7bbf4d24b1b51c99d2eea3062abfc2dd669ccc3", + "address": + "addr1qxqy3628gfqsma9znxqpnc97fshxd7te9c8rjkqq2naddsnnqnw2gqe4qn7xh7uwskvdgh44mj6eykdvukh658v8s8wq28vntg", + "decode": + "8048e94742410df4a2998019e0be4c2e66f9792e0e39580054fad6c27304dca4033504fc6bfb8e8598d45eb5dcb59259ace5afaa1d8781dc", + "params": { + "pub_skey": + "7fab18bd346af316d3dbd2e32389f51b01468d93f2635d0d1685769b074dda2d" + } + }, + { + "public": + "f1721ff5d9a5f4d6e254aae86531b4243c65c848a42f53784a5d029b2db80511", + "address": + "addr1q8zygp3mvludzzw2vac4q7329qz4f840d7z7tlve296x895syss2kdnn7dlqakdt63aqjssvdqeyu6scsqnnawyd630qvuevlw", + "decode": + "c444063b67f8d109ca6771507a2a2805549eaf6f85e5fd9951746396902420ab3673f37e0ed9abd47a09420c68324e6a1880273eb88dd45e", + "params": { + "pub_skey": + "f2c69474f8b082500b87e85903cab66d64f4d1dd42bf620a2bf02b180b26dbbb" + } + }, + { + "public": + "d497f6c43601ab54b3145cf46e352695bb8bca5efa81e324be85838d3e386b06", + "address": + "addr1qxs5wmv6swsk50n3rj4fwat6jypr4v65n2z3clgffxcunhfmn7743krl8rma2ddx56hvt3kxuwdta5xvkeksgmjfledqlyd94a", + "decode": + "a1476d9a83a16a3e711caa97757a91023ab3549a851c7d0949b1c9dd3b9fbd58d87f38f7d535a6a6aec5c6c6e39abed0ccb66d046e49fe5a", + "params": { + "pub_skey": + "e1723141fabd0a4c0583dfa8aa9b5cb6bb194777ad0b2e4b8219af328fe47e12" + } + }, + { + "public": + "3bc03a4b72eab18ff34c0d2117759247917473ef429aeb038bc625b727d6fe5e", + "address": + "addr1qytpar57ser7j2wpwfzmqn0xkanzv4u3s5padvj7seyhvm5m3s6nsu8vmwdfdyxtq83h70xypxkfx229rx8xtgm6xhcs3984jy", + "decode": + "161e8e9e8647e929c17245b04de6b7662657918503d6b25e8649766e9b8c353870ecdb9a9690cb01e37f3cc409ac932945198e65a37a35f1", + "params": { + "pub_skey": + "e120e84a019844cec58f39ce31bbc1b03a3a4edcd38cf6a9e4122bfbb7badbb9" + } + }, + { + "public": + "1e1d97fe7ae52e16dea75b1d75a3901c3ca21e9f2509c686d906a9534dd35146", + "address": + "addr1qxsdwkex8w8ujjprff6mn6pzhxyhc50ga780cyatf9hgrymylhm4q3le38qw3w29ecl9c40nwwlf06ruvhpfhdc8mqdqm4804d", + "decode": + "a0d75b263b8fc948234a75b9e822b9897c51e8ef8efc13ab496e819364fdf75047f989c0e8b945ce3e5c55f373be97e87c65c29bb707d81a", + "params": { + "pub_skey": + "ccb27fe0dcccf7734d539c882c55a36bd0d8de579a267121f46abf4a627053a6" + } + }, + { + "public": + "d2ad13f847200d8dce24447ca4ae06727f4d56ef95654481bfbf9e07d4f45a2a", + "address": + "addr1q93q9kstth3l4nvtymgghspt27xc8yaneu7v7nvynxua99nrapveqqwhrlussvce5nc65s9psaxxj8zjj9xsvudgvkps5fu97m", + "decode": + "6202da0b5de3facd8b26d08bc02b578d8393b3cf3ccf4d8499b9d29663e8599001d71ff9083319a4f1aa40a1874c691c52914d0671a86583", + "params": { + "pub_skey": + "50b5a299632a078b3e3347da7c6b0059554301534fee18cbc41862b7da787023" + } + }, + { + "public": + "02b05d9719ed11a3663b51be7e54ad5292e7c3fe82daba0bc6eaf0acebc5940a", + "address": + "addr1qyx0f05fzx8z0vsz3wysgv7npnxshjegauw9z0j73sp0nrr9v4hgr32sxs3y0lcjqap032g6f4qp757xqnc3cauw6y9smh86qa", + "decode": + "0cf4be89118e27b2028b890433d30ccd0bcb28ef1c513e5e8c02f98c65656e81c550342247ff120742f8a91a4d401f53c604f11c778ed10b", + "params": { + "pub_skey": + "2c122b1866d449817daf0f9e441e94dfa41e17f822449f3884a926c9b61926e2" + } + }, + { + "public": + "652d746f6db536942b6712cdc131b17d9bd47916dc9ff1be01fe629964795391", + "address": + "addr1qxe9yx9qmuup7p3wkn647pa389wunl4mc034q6h3hyce8fj6pq76fw7ljlmpfkkgj3zsl7xtqus8mcy9n22p3v0exx6sz0pd24", + "decode": + "b25218a0df381f062eb4f55f07b1395dc9febbc3e3506af1b93193a65a083da4bbdf97f614dac894450ff8cb07207de0859a9418b1f931b5", + "params": { + "pub_skey": + "6ee64587aa384231f2c160cd7171ce0292b24347d20aeb0013c3bdfcb64218c5" + } + }, + { + "public": + "42dc390b01ffa81dc618f39c997b0d8569ced191877206eabf1733c79878ecb7", + "address": + "addr1q8zh5e9mhu6sw6ffc9eh48skwr68msgpfvzyk6gzr75wcua4wavvxjxxwmngje0vl2r266mx3c9mw3t5s796pmxzy8xqa0jlmn", + "decode": + "c57a64bbbf35076929c1737a9e1670f47dc1014b044b69021fa8ec73b57758c348c676e68965ecfa86ad6b668e0bb74574878ba0ecc221cc", + "params": { + "pub_skey": + "7ca58ecc4e71640ee7b0359b59f61261cd1baaa3be424f4f5d5e49404b45e341" + } + }, + { + "public": + "903bf7d876db2f8aa39fe5ac3fa1c3b98b4af132a6ca2787fb0472cf562f1388", + "address": + "addr1qxvzwv2n3s7jhvkwdrvmm9ngyazvk08z35700hnhje34gwkenjeg99r2hkqlpcfgxvxy2aaq2xx3frn3dyx3w7q5c2hslqmy06", + "decode": + "982731538c3d2bb2ce68d9bd96682744cb3ce28d3cf7de779663543ad99cb282946abd81f0e128330c4577a0518d148e71690d177814c2af", + "params": { + "pub_skey": + "85c67a13e9ce021408ca491b4d60e332f3c65b92f74263573e3bd0a9be6cff6c" + } + }, + { + "public": + "aef4faf884ff4a117555d9577dc3acc5356d565cd7aef26c516a1e970c4ea4e2", + "address": + "addr1qx76t2xcq7mz8ge0zxqdfkllkazsv3d46z6gcqrmuxcmhugvj7h3mecntaaxg788dkc97dama74uks4y53hz457zewrszy95vm", + "decode": + "bda5a8d807b623a32f1180d4dbffb7450645b5d0b48c007be1b1bbf10c97af1de7135f7a6478e76db05f37bbefabcb42a4a46e2ad3c2cb87", + "params": { + "pub_skey": + "1c9fd5270c201798d855a7448705eb72da7b8b125b04a48c51eff2670de215cd" + } + }, + { + "public": + "1a88e001f5a36afeac3d4b15239bfc0a6d4182a2ba87d040930c69d76e7b2deb", + "address": + "addr1qyfs4jpzjhn3euqzmwdcmfjsl0la0drv0z4vx5sm8lrha6mrru4s6yq9p5uvshujudjdlc82c9s0tp6djgkts0dx9scqvctjms", + "decode": + "130ac82295e71cf002db9b8da650fbffd7b46c78aac3521b3fc77eeb631f2b0d10050d38c85f92e364dfe0eac160f5874d922cb83da62c30", + "params": { + "pub_skey": + "c78446007e76048e2b7aaea77884cfcf8378dcc0b9615dd9470bbdf0a0e26c61" + } + }, + { + "public": + "35ab4de9ad8cdc31670bba6e3098b090b9edea3f5b27079d1e5390dd04545eec", + "address": + "addr1q94yg4a7tru80d37uz9y584d3ncwfdmgz330lw7ejmsuf3v0wzvuze2wjahl2wqn0vk898hsk6fcsv7acgnad93uzktsw27jz5", + "decode": + "6a4457be58f877b63ee08a4a1ead8cf0e4b7681462ffbbd996e1c4c58f7099c1654e976ff538137b2c729ef0b6938833ddc227d6963c1597", + "params": { + "pub_skey": + "f3be073481b6857f5cffa83fddf5c178266898b44449c2f26af764d6260190fa" + } + }, + { + "public": + "dfe8407920e70af6dba8f50f51ad87df820e0d66e92cd33d529b321a2aba71f6", + "address": + "addr1qxtfnk9mhrhc04d3t05k653d2ll5ryxgxez9pprzfsmldtpanrnmhnt6c7y48lq2acq6hvf63k3jsklvzf0smn025syqmrfuup", + "decode": + "9699d8bbb8ef87d5b15be96d522d57ff4190c836445084624c37f6ac3d98e7bbcd7ac78953fc0aee01abb13a8da3285bec125f0dcdeaa408", + "params": { + "pub_skey": + "a5b14e8dc6362679c989f89a12bd9c022ab5590e59269445333b759755af8b73" + } + }, + { + "public": + "054d5fe658d5e27852b65a920c1f425c9e46676fec5d868a70b5f2d4964afe08", + "address": + "addr1qy4du08tjwnt28zs9xh5tnt93jzffmyvjnygynzkw239vyfn4jm0ju5vcgpt4xtt3msrcmlqadcpvxjc0snaj8yvd8wsrms6al", + "decode": + "2ade3ceb93a6b51c5029af45cd658c8494ec8c94c8824c5672a2561133acb6f9728cc202ba996b8ee03c6fe0eb70161a587c27d91c8c69dd", + "params": { + "pub_skey": + "3dfc0ae1cc7c3e146698d1aba163d9383ab6a570b1237ca4302b744f4efb2da1" + } + }, + { + "public": + "8240599af8f08644282bae9162cc8819a79fd1576ff81948c70293f87285c859", + "address": + "addr1q9kayuywjwzqcvgsaexhxxq2z3c7u6nvsp2k74dtskdsk3dr5dfpr2ttd46wutzvxpvamjjcqvcfaf0x3pamsfye253s37n35p", + "decode": + "6dd2708e93840c3110ee4d73180a1471ee6a6c80556f55ab859b0b45a3a35211a96b6d74ee2c4c3059ddca5803309ea5e6887bb824995523", + "params": { + "pub_skey": + "399e6fad68977617943801a812f36ae8e4814e206eb91c781f85a58f61ade913" + } + }, + { + "public": + "2cb004542f805bf50d8e7c298baec8e393515ff54557e9fdb01633b8e2d31e5d", + "address": + "addr1q96r7wjk97gz4005s47pvvl0zk820rh2ah3ppl8gpkwsjuvkrm2zvvejz6vfdfkt04khfmv2qx8ydytkc30n4xjl86gs8uc68d", + "decode": + "743f3a562f902abdf4857c1633ef158ea78eeaede210fce80d9d0971961ed4263332169896a6cb7d6d74ed8a018e469176c45f3a9a5f3e91", + "params": { + "pub_skey": + "656a260aa99f4b8e42e34b16c7c5ee01ea4cf808bd637cd8841e437d1f40a2d0" + } + }, + { + "public": + "acd71bc172133fc22f0374ad8879b640ce48736838c31179f4ad8cfb9dfb45d7", + "address": + "addr1qy30vchtvh58azfn2t6md66m7fkyjkjm4n2audx8ug4fp6lucmpgktgvyqt08kx80tyqs7m9nkjhy0p2y088axnt2mysjdu4yc", + "decode": + "22f662eb65e87e893352f5b6eb5bf26c495a5bacd5de34c7e22a90ebfcc6c28b2d0c2016f3d8c77ac8087b659da5723c2a23ce7e9a6b56c9", + "params": { + "pub_skey": + "f4a624462c99a23e645f13a0296db7403f6314f759e895c83cb5dabb01eab47b" + } + }, + { + "public": + "6d614253c8f163ef96780f53ed0a83825dba6eae59d596f72bdab3e800aa15a6", + "address": + "addr1qytrv2n7xm9cx5xf3cty9anzfr0ehsfy4g7502dzch3z7slf040eqjflmgf3vxpavkha0lx4tn9y8yphglyk46njke7s8lmm36", + "decode": + "16362a7e36cb8350c98e1642f66248df9bc124aa3d47a9a2c5e22f43e97d5f90493fda1316183d65afd7fcd55cca43903747c96aea72b67d", + "params": { + "pub_skey": + "87f46a45e5ca99f40f15a76b00951c7b795e2531725e1072f936a7ab5cb5558c" + } + }, + { + "public": + "1e39b327c32ba1b42f3db72f141151704b5d57be775d0d0712df42584ec491c0", + "address": + "addr1q87q3sqa4h3hpym0sywe0xk7ery4zmg30pzcmg0uqdaw740zxq4dve6e2akm40x4ad85y958ma2u803vs5huqh30w04se5a9c3", + "decode": + "fc08c01dade370936f811d979adec8c9516d1178458da1fc037aef55e2302ad66759576dbabcd5eb4f421687df55c3be2c852fc05e2f73eb", + "params": { + "pub_skey": + "0f52e1e12c4681eef4486044f06d4d1dd6660059e6dfc9f8a73e7c97bee398c8" + } + }, + { + "public": + "e3d14ff3ef62a3ca2a8f3714803fc4cf5692164f166b195cdc395ce6b6ed620d", + "address": + "addr1q9eexdwdlhv9kalhfw0365n0v3x5n6kghqu8e332m7whxg2600l9cayd0cmz0xauje55aqmjjdffl9njzqahn8prt5kqq3k4tn", + "decode": + "739335cdfdd85b77f74b9f1d526f644d49eac8b8387cc62adf9d73215a7bfe5c748d7e36279bbc96694e837293529f9672103b799c235d2c", + "params": { + "pub_skey": + "5fba78323d1986fc1bc4d44b699de4853b85d24d0aad50679a23c6274f378aa2" + } + }, + { + "public": + "b09ef913894f2e69f4af35e333291265d4a86a709bcd2f31a03b2d8113ca3502", + "address": + "addr1q9mqjt2zfefa0ks7n6zkyr33tzdc0z3p247hl00fqntlpgn94yes0hhtylfte8aahehrr3jrqcdqjjwv8u8jplllg2lqu39tlm", + "decode": + "76092d424e53d7da1e9e85620e31589b878a21557d7fbde904d7f0a265a93307deeb27d2bc9fbdbe6e31c643061a0949cc3f0f20ffff42be", + "params": { + "pub_skey": + "2eceecdf062e8c139951aacf58c15866a794480bee007e5c7789e5d136f01f0c" + } + }, + { + "public": + "13363bb747aeb58c86577fcffcd8fc0fb05c7b257b4edaafb8b4d4c90f90d152", + "address": + "addr1qym3h6gn2efnx8zrddpyl6973fmu8el7f2k9mfc6r9sucp4kn5xkp5wtjjk8ghj0ltr0q7asx4pg4x252h97e59hlwxss0ghg8", + "decode": + "371be9135653331c436b424fe8be8a77c3e7fe4aac5da71a1961cc06b69d0d60d1cb94ac745e4ffac6f07bb035428a995455cbecd0b7fb8d", + "params": { + "pub_skey": + "9e2c3a39f5afa67fecc822068674cf3cbe871580c69ce52402182bec5e47fd4d" + } + }, + { + "public": + "0f68ac5064b3184f9cd753918a73d4b6d5f04808369f85f7c3eb6a222d7ba007", + "address": + "addr1q8a9tgfcvj2ekr7djydl6g4fnjcm4msy0akqt0s3mr9a0u4qrw3j3v4nhxa3rkdhnn20gys2vu98v97fsqzt9nuvegkqtl09s9", + "decode": + "fa55a13864959b0fcd911bfd22a99cb1baee047f6c05be11d8cbd7f2a01ba328b2b3b9bb11d9b79cd4f4120a670a7617c98004b2cf8cca2c", + "params": { + "pub_skey": + "a2452b1d5ce858c35258bf2564cadae8a8c57ffccfe5469e0ef32a816669ac7a" + } + }, + { + "public": + "cdec90c01f6be766505ee6cb91c1aa621cd3af8c4eb5136256f2ddebf4f05ee2", + "address": + "addr1q9d897cuaewy4dswjzphprgd648gu69a3j5guzur3ng7vdsk9rtn285ggk684adm0ymf80sxj6vtmqeqjh5fpzhd8zlstj6myh", + "decode": + "5a72fb1cee5c4ab60e9083708d0dd54e8e68bd8ca88e0b838cd1e6361628d7351e8845b47af5bb793693be069698bd832095e8908aed38bf", + "params": { + "pub_skey": + "eee4cad30465a764b7de4206edda9fadeb6383e8003c73e657465a1a3eb0db25" + } + }, + { + "public": + "115542b2c7e81d465366cb0844ad5a20bfc1e2ccf2435c2fb6e10e0b27a33fd2", + "address": + "addr1qypkpcsggv02zh3cnugk8l89hkpe4ladeakresmtyznedvcl3jarh8jk4yfy0u944ma2kxk4kgew8v3j6xkn54emhjcqkdpqdh", + "decode": + "0360e208431ea15e389f1163fce5bd839affadcf6c3cc36b20a796b31f8cba3b9e56a91247f0b5aefaab1ad5b232e3b232d1ad3a573bbcb0", + "params": { + "pub_skey": + "4589800b569c23c5ee4c4a5650d06b96fe3529cc30d9a10d5b0fb2e150059d78" + } + }, + { + "public": + "a0398765ac4cb8b351ae10086a9b3595b8e06b35bef36a21db1b5aff2f244e78", + "address": + "addr1qxqjs32za29c3xn94hr5v70euls76l5m08xuade4vdz8fh62rs003efwmc0n3mhuzqk7crgck5ghmh80h57cuyjz0dssxevjf4", + "decode": + "81284542ea8b889a65adc74679f9e7e1ed7e9b79cdceb735634474df4a1c1ef8e52ede1f38eefc102dec0d18b5117ddcefbd3d8e12427b61", + "params": { + "pub_skey": + "2a448aacd1a484270f37a233288b9b0317da3899c8766fea6e0f26cbf6839aa6" + } + }, + { + "public": + "1eab4d8a6641dcd433b08ff3ecfc88c7fddbae30aae396514973a0406c9940cc", + "address": + "addr1qxcrturckhfuxxn0qf2gs6q3wsg46hrhmhayrug2pq7h6lmfrk8396kfnx788t0f7su8nm383a3rcv70gvm2vzk0hgmq7kyp0d", + "decode": + "b035f078b5d3c31a6f025488681174115d5c77ddfa41f10a083d7d7f691d8f12eac999bc73ade9f43879ee278f623c33cf4336a60acfba36", + "params": { + "pub_skey": + "64664906f85e780f6fe55b094dad03ec55b23dcf99083ad39a107c49e71e90d5" + } + }, + { + "public": + "e391cad5bd7c848ce886411a5cdb0a8fbbd90be60d2e5d45b0d7db13e672cbeb", + "address": + "addr1qxqudun05uwheye88whrz6nwdaalq5mzp2taa3w4vceud9j6n8mx3nx7sdpqtd3fgkm0atdt4jyhwju4uejwwrj4y6dqrdv6aa", + "decode": + "81c6f26fa71d7c93273bae316a6e6f7bf053620a97dec5d56633c6965a99f668ccde834205b62945b6feadabac89774b95e664e70e55269a", + "params": { + "pub_skey": + "e9943b9c7d57954f229c55c3c2ebce1eed71b9206269102f0e827347884dbe7e" + } + }, + { + "public": + "90f2e6952af0d7eaac419ca746d473115a4d49aae50558da8b7acd7fc8c10a37", + "address": + "addr1qysalmnyglg0f2wpepud54df6yvuws3adl7epznp95xr5tqeuj49lmvp4fvhwup4v83c0rpz63aaf0w3d9akdzsx5evspj6jaw", + "decode": + "21dfee6447d0f4a9c1c878da55a9d119c7423d6ffd908a612d0c3a2c19e4aa5fed81aa5977703561e3878c22d47bd4bdd1697b668a06a659", + "params": { + "pub_skey": + "1e894119be800af11296edc885f99ef80caa55d4a0f28b72e37eb27a58ffcf49" + } + }, + { + "public": + "81d8aa37da4dc3f3eac71a2ef081ac50198c524ec7cc3a49aa8544cd81a0c4f9", + "address": + "addr1qxym9akjdsskl08qfa4waqeeg3tagyjnhfsemtqgrgf2vwkeqv4zw2dqmt9t8a2me5mzjq2q93zyryx7hejv6jy62qcsn7s9ey", + "decode": + "89b2f6d26c216fbce04f6aee83394457d41253ba619dac081a12a63ad9032a2729a0dacab3f55bcd362901402c444190debe64cd489a5031", + "params": { + "pub_skey": + "a9da443ebfe8665619687e31a2c27e3f65bfc903f3b160c2dd1f51a323c07240" + } + }, + { + "public": + "90a313d2a25465912da784d6b59740aec571b14c0fd53724e4d5657aaa0d647a", + "address": + "addr1qx3clk2732vjww9pn3g0e2xhqw2mmkrurtj6sezc5dexf8l06zqlhp02j9d2dx7wdutwhcyvavzjajfghdtrk32s3v7q6e994g", + "decode": + "a38fd95e8a992738a19c50fca8d70395bdd87c1ae5a86458a372649fefd081fb85ea915aa69bce6f16ebe08ceb052ec928bb563b45508b3c", + "params": { + "pub_skey": + "5f337dabe10cbbb5a79b35da8c890f3e6a00e1a01622e2785fdc9c9a6a4cee8b" + } + }, + { + "public": + "51ebb0c406fd719f62b556af657cef110cae2e8509d34abb739ff0382ce2ba44", + "address": + "addr1qx46rfsvansxnyua7jjjn5sgllvac2627kc0mnppfae6w6cdw8zu0qet4qgkmeyjxj0e56vhtwn90a4utqyp7qhctfrsq7a2p6", + "decode": + "aba1a60cece069939df4a529d208ffd9dc2b4af5b0fdcc214f73a76b0d71c5c7832ba8116de492349f9a69975ba657f6bc58081f02f85a47", + "params": { + "pub_skey": + "bdf1f3b954995f20f83ee28600f5a87f3340936e4c4972aa3a0d42339442304a" + } + }, + { + "public": + "376e98f7576fabebb26d5f322e17d2b425c35d33b0958883ec013173f630b6b8", + "address": + "addr1qymw5dqmfcusd2runguv0vyz8nmwzf6hfvca6fwyj2jsch669tmhvhhn6caggyek46mw7g5jzpudmm53zkejejl38gyqtd6hvf", + "decode": + "36ea341b4e3906a87c9a38c7b0823cf6e127574b31dd25c492a50c5f5a2af7765ef3d63a841336aeb6ef22921078ddee9115b32ccbf13a08", + "params": { + "pub_skey": + "6bc1cc68ba111887d314defc23e88121deaa0cbae7c3f99ec72ede2c720de7fb" + } + }, + { + "public": + "61d1dc9b06c339110d485cfe2eabb61ecf835f84713971e03e7768c8330f2b69", + "address": + "addr1q84aknctfnrrp95wrj3x04q5zznmuhfdejtvw59v08kp5mrd4twnk30zpq4q0af0vljllzamardnwmy0qr9j9hq7xglqdpyeej", + "decode": + "ebdb4f0b4cc630968e1ca267d41410a7be5d2dcc96c750ac79ec1a6c6daadd3b45e2082a07f52f67e5ff8bbbe8db376c8f00cb22dc1e323e", + "params": { + "pub_skey": + "97c233617c4b2305ebe50afb08c491d3a4e29e0869dc970ad8f46433198dab65" + } + }, + { + "public": + "35e47f14734a9e430c67af2658dcb780d87504dbefcdc9e02330850ea9edb1f8", + "address": + "addr1qxrlvku5r0c56pfzqrl5s96xsp0q3kx65xnfea52ncl0wcvrectnlzmzuwxpgen38pd4avj6t3zfdsyq2wqjdqwaa3fqxrryfn", + "decode": + "87f65b941bf14d052200ff481746805e08d8daa1a69cf68a9e3ef76183ce173f8b62e38c146671385b5eb25a5c4496c08053812681ddec52", + "params": { + "pub_skey": + "c205f68266fffef99bcf7cf5e39c425ffc6724cfec6107df04057ed4e3bb8638" + } + }, + { + "public": + "6de0fe97c5fd772cf39f41fb1420de47301c89c215dd9d6676ba1eb14decf392", + "address": + "addr1q9xmeh8mdfvwr9rj9wtjdmq4murjyflrd6kagyvssx9n2gf0syplju0nvrx4lmej6hvh5wtsd6qnqsynk3409ssz2pgqqdpcmt", + "decode": + "4dbcdcfb6a58e194722b9726ec15df072227e36eadd41190818b35212f8103f971f360cd5fef32d5d97a39706e81304093b46af2c2025050", + "params": { + "pub_skey": + "f4a126b4256c5c77437a5ac36bffc304c6d2f1365dbc257644dce0a53e3e170b" + } + }, + { + "public": + "dbf10dccd770c065258662d4b777197376cb53a85f27ce5ac221ab7fcddce415", + "address": + "addr1qyg25td0s5dljlkny75u5ls98znvz7h7e95qdz8gyqucwmz89x6lhangcjacex0qc4dlz0wmt0z0ecu8l9pq9fj6xe5s33tztg", + "decode": + "10aa2daf851bf97ed327a9ca7e0538a6c17afec9680688e82039876c4729b5fbf668c4bb8c99e0c55bf13ddb5bc4fce387f94202a65a3669", + "params": { + "pub_skey": + "3f8a9b7500c70399d2ab59fa39bf0d020cc3bf7ed66a3f0a7ca519db0f626105" + } + }, + { + "public": + "04bb6d652a9fc69b84a3d85ddbf8ed65573a76e52e68e763c6facc8f5a08c73c", + "address": + "addr1qy462lpqskqmwr6n6y3hfnekf38kh7cl3022238dgapfd8ajy8wa90vygqt5kcx9x7dts723e0z7ruwk7g7gw2wdv66syc36ar", + "decode": + "2ba57c208581b70f53d12374cf364c4f6bfb1f8bd4a544ed4742969fb221ddd2bd8440174b60c5379ab87951cbc5e1f1d6f23c8729cd66b5", + "params": { + "pub_skey": + "f81b87f9b8f81e79c9949aa1b07c409b03a1bc7f0f87f9df571d22fc18bd1bd1" + } + }, + { + "public": + "b33498f60bc74a9e74b534e094750d573ee878e738c9b8d0d0ec8d73c9b7a60b", + "address": + "addr1q8uwcarmwke0m34ganqstf05hx0fzermzn865qylgjw53ruuqc5f59um6xs4c24xg0pd03eu55ta568203353uy3tjvqaz0wax", + "decode": + "f8ec747b75b2fdc6a8ecc105a5f4b99e91647b14cfaa009f449d488f9c06289a179bd1a15c2aa643c2d7c73ca517da68ea7c6348f0915c98", + "params": { + "pub_skey": + "342dcf7517ee6e1f9145297cd152bc1c54c69aca46f62764fcf68138ac5660a8" + } + }, + { + "public": + "287916320fa7fef15da1bd93e0066a931dee86abc51d166556a16cb0f20c36f8", + "address": + "addr1q9w7a2nhjsr99st946pm4rqt9z5e6yzuxkfwukf4znjmpe0l3vqkqy05r7gucy95gnk05t9hsvjphtgj7wzqm0yyztesn78m84", + "decode": + "5deeaa77940652c165ae83ba8c0b28a99d105c3592ee593514e5b0e5ff8b016011f41f91cc10b444ecfa2cb783241bad12f3840dbc8412f3", + "params": { + "pub_skey": + "5115c879916570865b75157e3dfc34439f2f1160f62df161ec97eb34d9ec3401" + } + }, + { + "public": + "38a1af48910975fa40c3b5f76570c64ac2d223403f452a2a762c288e6606958c", + "address": + "addr1q8th7fy7ahx3k7ha5rlxxf9afagw4p8n0x9svygdv72u64qf2mh0rwp389kehcuudyvh30xhh6ts2z0kak7qyyjq42ks9ngx83", + "decode": + "d77f249eedcd1b7afda0fe6324bd4f50ea84f3798b06110d6795cd540956eef1b831396d9be39c691978bcd7be970509f6edbc021240aaad", + "params": { + "pub_skey": + "632bf9309f10673964c4ec8707bf61df107b4b10554eed7ce2ff94fc1db12eec" + } + }, + { + "public": + "d23f90a005bbf43bdbdec53713575287918ba08cf024481628aac131cf0e44ef", + "address": + "addr1q8d6sxt84yr2dg8g8etkpmjqm7t7jgdcle8ft4nfczrqth9yn0gknjm25wmunhwppakluq4ke8a95nrp6drgdh5f5yqqmtsf0l", + "decode": + "dba81967a906a6a0e83e5760ee40df97e921b8fe4e95d669c08605dca49bd169cb6aa3b7c9ddc10f6dfe02b6c9fa5a4c61d34686de89a100", + "params": { + "pub_skey": + "bf3ebd048ec9a1084e5ee044984b5e33532aa0df141a595bdc8f49b67869c356" + } + }, + { + "public": + "f33e5adf7dbf5369f580d22ba1aa982d1fc0c495284f72f8e8a6665697b700a7", + "address": + "addr1q9zls9yx5flvxeamd703prhkel3qxdls05fm67cqn7a4n3gm5azrxmw56nckf9fcr63fnp4nn2retcet9qwsu4stwe2skzaetr", + "decode": + "45f81486a27ec367bb6f9f108ef6cfe20337f07d13bd7b009fbb59c51ba744336dd4d4f16495381ea29986b39a8795e32b281d0e560b7655", + "params": { + "pub_skey": + "a710036c3a85d08669990deaef13081358c8319bbe6f40463e779ef90363f767" + } + }, + { + "public": + "a5ecc6a0d6e00c76a8a1855a0802520880ab7ace365958526b17c6d21845280f", + "address": + "addr1qyya27wtyrdkejgwzqd5ylw9vvwn7396cucwccxrf6jxuj8690z3cuqtgswyajcwn700yatx8mml6z9trj43upxnh5pqsu75ry", + "decode": + "09d579cb20db6cc90e101b427dc5631d3f44bac730ec60c34ea46e48fa2bc51c700b441c4ecb0e9f9ef275663ef7fd08ab1cab1e04d3bd02", + "params": { + "pub_skey": + "1004f438252048b2b9415c37848e178b8eecc46cb411251b69fb7f9b04d9fcd2" + } + }, + { + "public": + "dd697f23664454eca751503c193c1da047255a36f79e8424703363e0679e28fb", + "address": + "addr1q8m438ryc8fjf2pmly9xye3auq95st6pmcmulkt8faaaeww2wy7h6ux865g6jtzh4judftg5kkj9qjp9frtjtu0wsjeqfv9hqe", + "decode": + "f7589c64c1d324a83bf90a62663de00b482f41de37cfd9674f7bdcb9ca713d7d70c7d511a92c57acb8d4ad14b5a450482548d725f1ee84b2", + "params": { + "pub_skey": + "8cbc8322cb36c80a0e1a738180e277616b7fa901d479c0d872ce391bedfac121" + } + }, + { + "public": + "16ebc9df00d4e5cda1406b1d34c890dd5ba0dd70af794a47f2fa09fa1535b72c", + "address": + "addr1q803afm6e2ptxs8t3huhekr3mv3gd927gyerlp9hngr79r54yu5upcut3fwuss8935su3nqnnh6fc4r5jpkjjmsvg2ystw8czy", + "decode": + "df1ea77aca82b340eb8df97cd871db2286955e41323f84b79a07e28e952729c0e38b8a5dc840e58d21c8cc139df49c5474906d296e0c4289", + "params": { + "pub_skey": + "cbbbfc1bddd06268b10e5d8a26f64ba86ae33bb59342f5c370dc2689f07762c4" + } + }, + { + "public": + "81855a0a7ee0595f7fb853e74e49dc735dfe79ec7092f9ac5616193a93587f3e", + "address": + "addr1qxml0dpcax87g0hgnt7rjjlys8f25jucqflk369t0jy83rak4e4zs6tuecwfkmj4lxg3durh6cxen99umffa44n502rq4t5ar4", + "decode": + "b7f7b438e98fe43ee89afc394be481d2aa4b98027f68e8ab7c88788fb6ae6a28697cce1c9b6e55f99116f077d60d9994bcda53dad6747a86", + "params": { + "pub_skey": + "d0f5df4969dfb0fbf0d51e93c4f3075211a71281f1121a1b361e2ac933c619e2" + } + }, + { + "public": + "e8fcda1d9359a9547384ecccb833bd6c3b427f4cf1f1bdd701eca78278a7ef8b", + "address": + "addr1q8x2thcyggffy3360dx6nzrjz9cqmnms55c2x072z8c9768638g57228c46s3fv9km8pd4cvhf8q57ujd06gz5rz37nsf7nwzh", + "decode": + "cca5df04421292463a7b4da9887211700dcf70a530a33fca11f05f68fa89d14f2947c57508a585b6ce16d70cba4e0a7b926bf48150628fa7", + "params": { + "pub_skey": + "8c6964abd96775e8269c4e5b90db129697d500519d262168150fa68c72c25e16" + } + } +]; diff --git a/test/address/algo/algo_test.dart b/test/address/algo/algo_test.dart new file mode 100644 index 0000000..0c97e0c --- /dev/null +++ b/test/address/algo/algo_test.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/address/algo_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("algo address tes", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = AlgoAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = AlgoAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/algo/test_vector.dart b/test/address/algo/test_vector.dart new file mode 100644 index 0000000..409b18f --- /dev/null +++ b/test/address/algo/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "ac07e9862bf04fe680c879286f273413d35b87667cce4a76d355fa319a51d82e", + "address": "VQD6TBRL6BH6NAGIPEUG6JZUCPJVXB3GPTHEU5WTKX5DDGSR3AXNKBN5FQ", + "decode": + "ac07e9862bf04fe680c879286f273413d35b87667cce4a76d355fa319a51d82e", + "params": {} + }, + { + "public": + "a647141e1a870958ab16e0dfab9356d18a541d98d3bd5ac2d7cfd72e1d0b52ef", + "address": "UZDRIHQ2Q4EVRKYW4DP2XE2W2GFFIHMY2O6VVQWXZ7LS4HILKLX45W3WGA", + "decode": + "a647141e1a870958ab16e0dfab9356d18a541d98d3bd5ac2d7cfd72e1d0b52ef", + "params": {} + }, + { + "public": + "40effadd7e8cb7950aa69f15078e952eead7456c1b0b4a2ec5e6b76d35d167b7", + "address": "IDX7VXL6RS3ZKCVGT4KQPDUVF3VNORLMDMFUULWF423W2NORM63ZCZMIOQ", + "decode": + "40effadd7e8cb7950aa69f15078e952eead7456c1b0b4a2ec5e6b76d35d167b7", + "params": {} + }, + { + "public": + "d1a7ad6749ac80fec8ac6f2b46058243244343fd01057f71ce62cf80f5711b09", + "address": "2GT22Z2JVSAP5SFMN4VUMBMCIMSEGQ75AECX64OOMLHYB5LRDME7YB2RNA", + "decode": + "d1a7ad6749ac80fec8ac6f2b46058243244343fd01057f71ce62cf80f5711b09", + "params": {} + }, + { + "public": + "9b5cfce4077d32f1a52f618b138d14e6013098d90798c139ce3424425aa975ce", + "address": "TNOPZZAHPUZPDJJPMGFRHDIU4YATBGGZA6MMCOOOGQSEEWVJOXHKB5R6XQ", + "decode": + "9b5cfce4077d32f1a52f618b138d14e6013098d90798c139ce3424425aa975ce", + "params": {} + }, + { + "public": + "898f8a06f400334867c2153258e38045ddd85ce6d28732ef30816498f965023b", + "address": "RGHYUBXUAAZUQZ6CCUZFRY4AIXO5QXHG2KDTF3ZQQFSJR6LFAI5YXWXHZQ", + "decode": + "898f8a06f400334867c2153258e38045ddd85ce6d28732ef30816498f965023b", + "params": {} + }, + { + "public": + "b979142865bac003b5b67958638e86914142e3e7692db028966db25be8056c62", + "address": "XF4RIKDFXLAAHNNWPFMGHDUGSFAUFY7HNEW3AKEWNWZFX2AFNRROBRSQTQ", + "decode": + "b979142865bac003b5b67958638e86914142e3e7692db028966db25be8056c62", + "params": {} + }, + { + "public": + "b7e2a390d7c6f641a92059469d69f60fcea49643d6568b9b5d5b20777fe43551", + "address": "W7RKHEGXY33EDKJALFDJ22PWB7HKJFSD2ZLIXG25LMQHO77EGVIQPZNZEI", + "decode": + "b7e2a390d7c6f641a92059469d69f60fcea49643d6568b9b5d5b20777fe43551", + "params": {} + }, + { + "public": + "5703776f57533028b1a540e7b69407009e58afcb1ea9d8e360b3be53311035c5", + "address": "K4BXO32XKMYCRMNFIDT3NFAHACPFRL6LD2U5RY3AWO7FGMIQGXCSOPCK7E", + "decode": + "5703776f57533028b1a540e7b69407009e58afcb1ea9d8e360b3be53311035c5", + "params": {} + }, + { + "public": + "dffd6cee29db0bee16bab350f5dd4e30df3a93b7c6400522ec1e9e4b1449230a", + "address": "376WZ3RJ3MF64FV2WNIPLXKOGDPTVE5XYZAAKIXMD2PEWFCJEMFIPGF7SQ", + "decode": + "dffd6cee29db0bee16bab350f5dd4e30df3a93b7c6400522ec1e9e4b1449230a", + "params": {} + }, + { + "public": + "cfe1453c19bdbb82c1c8c331005a79d12fc3ebe0e549d12df828813f7550cb2a", + "address": "Z7QUKPAZXW5YFQOIYMYQAWTZ2EX4H27A4VE5CLPYFCAT65KQZMVEYQZCVM", + "decode": + "cfe1453c19bdbb82c1c8c331005a79d12fc3ebe0e549d12df828813f7550cb2a", + "params": {} + }, + { + "public": + "252fcb9c7d0470d7db150ab078c9884b2cf1385a9ad116c572d124e3eb340297", + "address": "EUX4XHD5ARYNPWYVBKYHRSMIJMWPCOC2TLIRNRLS2ESOH2ZUAKLXGZR3VA", + "decode": + "252fcb9c7d0470d7db150ab078c9884b2cf1385a9ad116c572d124e3eb340297", + "params": {} + }, + { + "public": + "e287d09e9f2dc6c1962c88b2f2f1e772e7e0bd81470754ec792763cb9096ff5a", + "address": "4KD5BHU7FXDMDFRMRCZPF4PHOLT6BPMBI4DVJ3DZE5R4XEEW75NFYMBYVA", + "decode": + "e287d09e9f2dc6c1962c88b2f2f1e772e7e0bd81470754ec792763cb9096ff5a", + "params": {} + }, + { + "public": + "8e562644dd53eafbcbf3fab355669135f4c82ab4f2013b95a8c34038e0562ee3", + "address": "RZLCMRG5KPVPXS7T7KZVKZURGX2MQKVU6IATXFNIYNADRYCWF3R56WCQIA", + "decode": + "8e562644dd53eafbcbf3fab355669135f4c82ab4f2013b95a8c34038e0562ee3", + "params": {} + }, + { + "public": + "8caa49e1ccc4325923314c207480a5ea3453be6143421483d2fed1510e47b4f3", + "address": "RSVETYOMYQZFSIZRJQQHJAFF5I2FHPTBINBBJA6S73IVCDSHWTZ4NJBVQI", + "decode": + "8caa49e1ccc4325923314c207480a5ea3453be6143421483d2fed1510e47b4f3", + "params": {} + }, + { + "public": + "bb390c7ff3c8d30f7551877948418053100f60730bc19252bf5232dbfb781cb0", + "address": "XM4QY77TZDJQ65KRQ54UQQMAKMIA6YDTBPAZEUV7KIZNX63YDSYNMWPF6A", + "decode": + "bb390c7ff3c8d30f7551877948418053100f60730bc19252bf5232dbfb781cb0", + "params": {} + }, + { + "public": + "95b6ee3e033941783c2ea5e78709a8b76c7389ff08db00f02511e522df169620", + "address": "SW3O4PQDHFAXQPBOUXTYOCNIW5WHHCP7BDNQB4BFCHSSFXYWSYQOZ26J7A", + "decode": + "95b6ee3e033941783c2ea5e78709a8b76c7389ff08db00f02511e522df169620", + "params": {} + }, + { + "public": + "92913f3b0e1930f084283b7a22c4c1a6100d0813edb5a4a61f0c14dcb4eccd6a", + "address": "SKIT6OYODEYPBBBIHN5CFRGBUYIA2CAT5W22JJQ7BQKNZNHMZVVC4EKVY4", + "decode": + "92913f3b0e1930f084283b7a22c4c1a6100d0813edb5a4a61f0c14dcb4eccd6a", + "params": {} + }, + { + "public": + "5fdf99abe3a82bce43f26933a1053208b6452b2e2431a0331447da8a9c610ab2", + "address": "L7PZTK7DVAV44Q7SNEZ2CBJSBC3EKKZOEQY2AMYUI7NIVHDBBKZLYHZHTI", + "decode": + "5fdf99abe3a82bce43f26933a1053208b6452b2e2431a0331447da8a9c610ab2", + "params": {} + }, + { + "public": + "36e5e10be697e7bda0583bf5667d076660f81e252e5fc721792bc6eb5e0baa6d", + "address": "G3S6CC7GS7T33ICYHP2WM7IHMZQPQHRFFZP4OILZFPDOWXQLVJWXVNZNFY", + "decode": + "36e5e10be697e7bda0583bf5667d076660f81e252e5fc721792bc6eb5e0baa6d", + "params": {} + }, + { + "public": + "e51612b59232a1c249cf680438caf2fed5afdb6183ecd962109a6d17bc312d9e", + "address": "4ULBFNMSGKQ4ESOPNACDRSXS73K27W3BQPWNSYQQTJWRPPBRFWPDLRQF6E", + "decode": + "e51612b59232a1c249cf680438caf2fed5afdb6183ecd962109a6d17bc312d9e", + "params": {} + }, + { + "public": + "ad9e47101ff0ae2b30936314b4f490a2c9e23e63877d35efe4518a3f4de1defc", + "address": "VWPEOEA76CXCWMETMMKLJ5EQULE6EPTDQ56TL37EKGFD6TPB336MLU2W7U", + "decode": + "ad9e47101ff0ae2b30936314b4f490a2c9e23e63877d35efe4518a3f4de1defc", + "params": {} + }, + { + "public": + "9b4aed9338c5a2285421bbe537b8c9df661ab1a54cf3bdfb2f69dbbbde701537", + "address": "TNFO3EZYYWRCQVBBXPSTPOGJ35TBVMNFJTZ336ZPNHN3XXTQCU3WEZZ2AE", + "decode": + "9b4aed9338c5a2285421bbe537b8c9df661ab1a54cf3bdfb2f69dbbbde701537", + "params": {} + }, + { + "public": + "20ec9294d1f81ea7575248ac2f27a042d0f55132b89c9f261521011d70cc148a", + "address": "EDWJFFGR7APKOV2SJCWC6J5AILIPKUJSXCOJ6JQVEEAR24GMCSFJDOC7XM", + "decode": + "20ec9294d1f81ea7575248ac2f27a042d0f55132b89c9f261521011d70cc148a", + "params": {} + }, + { + "public": + "cfca1715d023980176f987ff5b896aad48f8df0169068191d281a54aceb12174", + "address": "Z7FBOFOQEOMAC5XZQ77VXCLKVVEPRXYBNEDIDEOSQGSUVTVREF2F4PXFME", + "decode": + "cfca1715d023980176f987ff5b896aad48f8df0169068191d281a54aceb12174", + "params": {} + }, + { + "public": + "3c70fe81d4b3b3cbbb80af94704bcbf5bd688639240520dda69e8c923104c9c5", + "address": "HRYP5AOUWOZ4XO4AV6KHAS6L6W6WRBRZEQCSBXNGT2GJEMIEZHCQPZELWY", + "decode": + "3c70fe81d4b3b3cbbb80af94704bcbf5bd688639240520dda69e8c923104c9c5", + "params": {} + }, + { + "public": + "bffcf091ef7f5c81d171b7333e924fa858f49e99dfe872f0aa43e2943876c56a", + "address": "X76PBEPPP5OIDULRW4ZT5ESPVBMPJHUZ37UHF4FKIPRJIODWYVVAOJU7KA", + "decode": + "bffcf091ef7f5c81d171b7333e924fa858f49e99dfe872f0aa43e2943876c56a", + "params": {} + }, + { + "public": + "873087a8e6706255997d63b808cf9fbee884ff59229385a3f8433512c000f740", + "address": "Q4YIPKHGOBRFLGL5MO4ART47X3UIJ72ZEKJYLI7YIM2RFQAA65AD2PCH5I", + "decode": + "873087a8e6706255997d63b808cf9fbee884ff59229385a3f8433512c000f740", + "params": {} + }, + { + "public": + "e8daec3b4116826d491aabb6fad8ca90baa8329c3e1e23faf8588714c19f30be", + "address": "5DNOYO2BC2BG2SI2VO3PVWGKSC5KQMU4HYPCH6XYLCDRJQM7GC7M5LCPO4", + "decode": + "e8daec3b4116826d491aabb6fad8ca90baa8329c3e1e23faf8588714c19f30be", + "params": {} + }, + { + "public": + "1e1d0ce86ce5fd5ffe20ab9fb4af8afc03e6d78998c68d9ccaf9550cb04c168c", + "address": "DYOQZ2DM4X6V77RAVOP3JL4K7QB6NV4JTDDI3HGK7FKQZMCMC2GF75DKVI", + "decode": + "1e1d0ce86ce5fd5ffe20ab9fb4af8afc03e6d78998c68d9ccaf9550cb04c168c", + "params": {} + }, + { + "public": + "3ad4daa1f5b2a8d2e7698ba9e69314c7ca35aaf69518abedd2a70f2ab9eafc1a", + "address": "HLKNVIPVWKUNFZ3JROU6NEYUY7FDLKXWSUMKX3OSU4HSVOPK7QNI4VRYTA", + "decode": + "3ad4daa1f5b2a8d2e7698ba9e69314c7ca35aaf69518abedd2a70f2ab9eafc1a", + "params": {} + }, + { + "public": + "0c14edf90cb28dae3d2dfbdb1930f6cab08c5efc4f2d62310ac7eedb94aa81f7", + "address": "BQKO36IMWKG24PJN7PNRSMHWZKYIYXX4J4WWEMIKY7XNXFFKQH3TSEE3CU", + "decode": + "0c14edf90cb28dae3d2dfbdb1930f6cab08c5efc4f2d62310ac7eedb94aa81f7", + "params": {} + }, + { + "public": + "40c9f71f7ffd161c52a650fe882b57b2a9c32f4052b5f75bcf7fb442c4325bea", + "address": "IDE7OH377ULBYUVGKD7IQK2XWKU4GL2AKK27OW6PP62EFRBSLPVPMY4XGE", + "decode": + "40c9f71f7ffd161c52a650fe882b57b2a9c32f4052b5f75bcf7fb442c4325bea", + "params": {} + }, + { + "public": + "20682c97a13fb23d2dad247097a36d182f9c6e7c590969eeb029c11b540ff7ab", + "address": "EBUCZF5BH6ZD2LNNERYJPI3NDAXZY3T4LEEWT3VQFHARWVAP66VUNJTH7Y", + "decode": + "20682c97a13fb23d2dad247097a36d182f9c6e7c590969eeb029c11b540ff7ab", + "params": {} + }, + { + "public": + "4de6721f8af916dc5a7e3dfd510104432e09e7730aee709f2952dee2743347c8", + "address": "JXTHEH4K7ELNYWT6HX6VCAIEIMXATZ3TBLXHBHZJKLPOE5BTI7ENOYIE6Q", + "decode": + "4de6721f8af916dc5a7e3dfd510104432e09e7730aee709f2952dee2743347c8", + "params": {} + }, + { + "public": + "5342b0c287231fd38dc7356c05e47c8d614bdfa566325cc1e6a2d9f50590da43", + "address": "KNBLBQUHEMP5HDOHGVWALZD4RVQUXX5FMYZFZQPGULM7KBMQ3JBRXKLN3M", + "decode": + "5342b0c287231fd38dc7356c05e47c8d614bdfa566325cc1e6a2d9f50590da43", + "params": {} + }, + { + "public": + "bb0d45386bae94c1c03681d0af1d2117e3eaac39be64d715e816cca11a29845f", + "address": "XMGUKODLV2KMDQBWQHIK6HJBC7R6VLBZXZSNOFPIC3GKCGRJQRP3XLHMAE", + "decode": + "bb0d45386bae94c1c03681d0af1d2117e3eaac39be64d715e816cca11a29845f", + "params": {} + }, + { + "public": + "7f30293b474bd21066baae9a07cd3dba4f0364e7e10298815dbf3735438e1476", + "address": "P4YCSO2HJPJBAZV2V2NAPTJ5XJHQGZHH4EBJRAK5X43TKQ4OCR3M4TSOBA", + "decode": + "7f30293b474bd21066baae9a07cd3dba4f0364e7e10298815dbf3735438e1476", + "params": {} + }, + { + "public": + "88b92936b0841979b4e5c3588685c72a88625d807ebba5d38564dc138b8686b4", + "address": "RC4SSNVQQQMXTNHFYNMINBOHFKEGEXMAP252LU4FMTOBHC4GQ22PPPX2ME", + "decode": + "88b92936b0841979b4e5c3588685c72a88625d807ebba5d38564dc138b8686b4", + "params": {} + }, + { + "public": + "fd509568f3d5529b9fe430973316a71f0b907367f39f1b89b612b8ebf08391d9", + "address": "7VIJK2HT2VJJXH7EGCLTGFVHD4FZA43H6OPRXCNWCK4OX4EDSHMTRUGQCY", + "decode": + "fd509568f3d5529b9fe430973316a71f0b907367f39f1b89b612b8ebf08391d9", + "params": {} + }, + { + "public": + "8379f80f0d751c2be8d467f414674de4abcaec33a98ea13be2d5fe9011f41ad4", + "address": "QN47QDYNOUOCX2GUM72BIZ2N4SV4V3BTVGHKCO7C2X7JAEPUDLKOODV3BU", + "decode": + "8379f80f0d751c2be8d467f414674de4abcaec33a98ea13be2d5fe9011f41ad4", + "params": {} + }, + { + "public": + "4d5872414ea2faff9a43cb35e3050a3979c8913b963fb1aa97b605605967f0d6", + "address": "JVMHEQKOUL5P7GSDZM26GBIKHF44REJ3SY73DKUXWYCWAWLH6DLJNORDDQ", + "decode": + "4d5872414ea2faff9a43cb35e3050a3979c8913b963fb1aa97b605605967f0d6", + "params": {} + }, + { + "public": + "52474b92fc3b7cbabc6bb9269a9151bbe70a07311cfff4c4cd273cd70cf6615b", + "address": "KJDUXEX4HN6LVPDLXETJVEKRXPTQUBZRDT77JRGNE46NODHWMFNTO7MVEA", + "decode": + "52474b92fc3b7cbabc6bb9269a9151bbe70a07311cfff4c4cd273cd70cf6615b", + "params": {} + }, + { + "public": + "a9401fa071f2af30318999319ea2159d4ca8e3d12fbc7a2cf0b004f5c765a948", + "address": "VFAB7IDR6KXTAMMJTEYZ5IQVTVGKRY6RF66HULHQWACPLR3FVFENDDVRXM", + "decode": + "a9401fa071f2af30318999319ea2159d4ca8e3d12fbc7a2cf0b004f5c765a948", + "params": {} + }, + { + "public": + "91ff0b0fb3124642f86b3e08405383e58dcf175f42b3d8eff5fb8c81580fb61e", + "address": "SH7QWD5TCJDEF6DLHYEEAU4D4WG46F27IKZ5R37V7OGICWAPWYPORL6F5A", + "decode": + "91ff0b0fb3124642f86b3e08405383e58dcf175f42b3d8eff5fb8c81580fb61e", + "params": {} + }, + { + "public": + "9610f571af751ddfc58f73c076c708531a9cd20c0f1972b956751a5df03b9e58", + "address": "SYIPK4NPOUO57RMPOPAHNRYIKMNJZUQMB4MXFOKWOUNF34B3TZMMCWSWZQ", + "decode": + "9610f571af751ddfc58f73c076c708531a9cd20c0f1972b956751a5df03b9e58", + "params": {} + }, + { + "public": + "0761e56dccd65290356471ad159ba5f5ffa89483c1c80d337b6773fca9349273", + "address": "A5Q6K3OM2ZJJANLEOGWRLG5F6X72RFEDYHEA2M33M5Z7ZKJUSJZ2OBI6UY", + "decode": + "0761e56dccd65290356471ad159ba5f5ffa89483c1c80d337b6773fca9349273", + "params": {} + }, + { + "public": + "a5278b06fd016abb9aa3fb782c629dfa92a33b172a975bf465f4ae3d0a3b27dc", + "address": "UUTYWBX5AFVLXGVD7N4CYYU57KJKGOYXFKLVX5DF6SXD2CR3E7ODZD6PKA", + "decode": + "a5278b06fd016abb9aa3fb782c629dfa92a33b172a975bf465f4ae3d0a3b27dc", + "params": {} + }, + { + "public": + "6d73e7ba12134869bd90e43c16be932027249affb7db3d4b0ad88ee7ea1c04da", + "address": "NVZ6POQSCNEGTPMQ4Q6BNPUTEATSJGX7W7NT2SYK3CHOP2Q4ATNPEO6WQA", + "decode": + "6d73e7ba12134869bd90e43c16be932027249affb7db3d4b0ad88ee7ea1c04da", + "params": {} + }, + { + "public": + "3981bb75b190067fa7cc5842d89172b4b0508fd407df6f16ba939ea928a5647b", + "address": "HGA3W5NRSADH7J6MLBBNRELSWSYFBD6UA7PW6FV2SOPKSKFFMR53X5NMPM", + "decode": + "3981bb75b190067fa7cc5842d89172b4b0508fd407df6f16ba939ea928a5647b", + "params": {} + } +]; diff --git a/test/address/aptos/aptos_test.dart b/test/address/aptos/aptos_test.dart new file mode 100644 index 0000000..181780a --- /dev/null +++ b/test/address/aptos/aptos_test.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/address/aptos_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import 'test_vector.dart'; + +void main() { + test("aptos address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = AptosAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = AptosAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/aptos/test_vector.dart b/test/address/aptos/test_vector.dart new file mode 100644 index 0000000..748672c --- /dev/null +++ b/test/address/aptos/test_vector.dart @@ -0,0 +1,452 @@ +final List> testVector = [ + { + "public": + "e67841fd8e598fab26975610360943e3b6526167d16f9544571d9ce61f40c1cb", + "address": + "0xf39c7ccfdc836e0ba4ef24cd9c1d30887aabe35710d8c5384464f3985f8387c3", + "decode": + "f39c7ccfdc836e0ba4ef24cd9c1d30887aabe35710d8c5384464f3985f8387c3", + "params": {} + }, + { + "public": + "5b9ce4031d097d2ee8aabd1f80d6c18e1674547a3fa5f7e26d68286ad85df5af", + "address": + "0x98ee38d6d1f85c8896d02776767b815944f1f6d96d6cca798048f5d91e01d0b8", + "decode": + "98ee38d6d1f85c8896d02776767b815944f1f6d96d6cca798048f5d91e01d0b8", + "params": {} + }, + { + "public": + "9eeb30e77347a0d9c49fe62dc23331cc07ba676faac7c7a658febbc53ff79aa3", + "address": + "0x1910f6ee98c26187f1b13fde6485d5db24c1b5efe85c864b1b8b72cca854c32e", + "decode": + "1910f6ee98c26187f1b13fde6485d5db24c1b5efe85c864b1b8b72cca854c32e", + "params": {} + }, + { + "public": + "4f9262f9ad9c7ce699d3ff5c463db13cca79d37eeb1b2074b4a80c702b167ccc", + "address": + "0x2274299cf6bd650007094e982d2575eb31b10e56cf5d76353334d600eb20a6d5", + "decode": + "2274299cf6bd650007094e982d2575eb31b10e56cf5d76353334d600eb20a6d5", + "params": {} + }, + { + "public": + "38752a8c0a8c3b717c1dca8b9065f9986f8e9a53460c6c1c44fc3ed73c1c4123", + "address": + "0xa923c0b56623e687d1b0dd7bb701c700b1bc084eceb021f8368d557f8240ba9", + "decode": + "0a923c0b56623e687d1b0dd7bb701c700b1bc084eceb021f8368d557f8240ba9", + "params": {} + }, + { + "public": + "8644d03ba2639475b88c9bb9598d56e63601178c55ca23e86e30599298b6a08d", + "address": + "0x1012560fc50723abcf4e1d940fb0f41a33191331d57499d9b684d39b756a4720", + "decode": + "1012560fc50723abcf4e1d940fb0f41a33191331d57499d9b684d39b756a4720", + "params": {} + }, + { + "public": + "2d24c0cc3683ad48348797eeb5281befa42a6333e8f170a757d39e5f50d29532", + "address": + "0xbf642bc1f8961d3ed20db39c7b36b2bb624100716d32487f6244c4e2b853dc27", + "decode": + "bf642bc1f8961d3ed20db39c7b36b2bb624100716d32487f6244c4e2b853dc27", + "params": {} + }, + { + "public": + "88c5e7f64849fccab3c58407ef712305733a683a955083f6e73daa125a10ca14", + "address": + "0xdc252daf66db6c05442fd575a7e5207c103c2cfbcc0c106dfe35d8fee5221313", + "decode": + "dc252daf66db6c05442fd575a7e5207c103c2cfbcc0c106dfe35d8fee5221313", + "params": {} + }, + { + "public": + "41c5276e6ce3e8c6badf713c693c9e4f78de9e515d14ac1143b9602631c11429", + "address": + "0x9bfe44d5d53a267dbf5d162cbe56f7a1a31352b6960480a2d174907fe40ddd95", + "decode": + "9bfe44d5d53a267dbf5d162cbe56f7a1a31352b6960480a2d174907fe40ddd95", + "params": {} + }, + { + "public": + "3c0f44698560df1cb37250fee715bc9cd62e230a4bf84ac13dfa4190c11be847", + "address": + "0x6753016be1d064735025334a19506b3415bab3ea5e659f3df28bf5994b254ef8", + "decode": + "6753016be1d064735025334a19506b3415bab3ea5e659f3df28bf5994b254ef8", + "params": {} + }, + { + "public": + "71af63034d2f877b0a1cb69c8d0ebc10ca2b19606fe6125aefb5f7d5a3106985", + "address": + "0x116e4cdd327f38ddee4089e7291c58a2ac4b330b0ef730d115d60ac7ff476c37", + "decode": + "116e4cdd327f38ddee4089e7291c58a2ac4b330b0ef730d115d60ac7ff476c37", + "params": {} + }, + { + "public": + "557195a7c17ca46e5311d1de92c20d3ac7d0d9ad90851ab954084047463dea55", + "address": + "0xf8e13f8efce20024371dd660b81a98cb27309eb4e176c397546ef8327536c7f8", + "decode": + "f8e13f8efce20024371dd660b81a98cb27309eb4e176c397546ef8327536c7f8", + "params": {} + }, + { + "public": + "120840a6c622dbeda5cdf1c6b5ccd53b616e09d7662bf7ff1f91a7464211612b", + "address": + "0xf9e88b9495306b3f345289320b2ca2e9f4956b2b76fc025fd516fe08d84c9663", + "decode": + "f9e88b9495306b3f345289320b2ca2e9f4956b2b76fc025fd516fe08d84c9663", + "params": {} + }, + { + "public": + "fa139e91e77dd80a38d409250e8fba8ad6b4688bffaaf3bf8b2399aa220e8e7f", + "address": + "0xcbbfab3681739b3cf263f745d33f637f6b4465de0c90c88d0ae8fea9e7122059", + "decode": + "cbbfab3681739b3cf263f745d33f637f6b4465de0c90c88d0ae8fea9e7122059", + "params": {} + }, + { + "public": + "116f85f8c624e5ed8cc7a4369ed7756d694f02ba7069df368ae107985f4fb566", + "address": + "0xf83c19123beaf91286b96c0e3259bfbaef15f50a46a2fc6bdc2555d87c61076f", + "decode": + "f83c19123beaf91286b96c0e3259bfbaef15f50a46a2fc6bdc2555d87c61076f", + "params": {} + }, + { + "public": + "9e96098d352bc8eaa62b542e8588514eecd653cbc49fe4aab3324eac4cc5d73d", + "address": + "0x6f44def0c81db8319246c16a29b348b3506d429c2d1dd871b4c63deb16008ab1", + "decode": + "6f44def0c81db8319246c16a29b348b3506d429c2d1dd871b4c63deb16008ab1", + "params": {} + }, + { + "public": + "cda197513567ef77f21cc0bd7b5a35604bc67614627f85c448eea60cacbcfeb4", + "address": + "0x68fa887ecb6a689dea71dff43cc6a2153a081704eaf3563aa6a2eb851ece36af", + "decode": + "68fa887ecb6a689dea71dff43cc6a2153a081704eaf3563aa6a2eb851ece36af", + "params": {} + }, + { + "public": + "9fc5ab70b856d9005bc3ab15dd6c1adc848798350b6a7733ac97802ced1e529d", + "address": + "0x1e27e46d96dd5b0ebf42d7e11f08079971cd02750e67abb8d3492ab1aaf092f2", + "decode": + "1e27e46d96dd5b0ebf42d7e11f08079971cd02750e67abb8d3492ab1aaf092f2", + "params": {} + }, + { + "public": + "6848e083bd803dca8c24f4c67256757455c3764500f4ee9b53fb78f16178087c", + "address": + "0x7157876ab507a961add80c50a475a54f832749281ddfafdc0c8e9f11542586b8", + "decode": + "7157876ab507a961add80c50a475a54f832749281ddfafdc0c8e9f11542586b8", + "params": {} + }, + { + "public": + "3db90648932db68accfd07d4a3988d9966a62905e9490b2bd3c68d74d8c6321e", + "address": + "0x915759ae52add12a97b81472cbe3b5a2221eb36f5073bc6effb763c31339b70e", + "decode": + "915759ae52add12a97b81472cbe3b5a2221eb36f5073bc6effb763c31339b70e", + "params": {} + }, + { + "public": + "7d44013390ef402a07e4a35e6ed07a9b014d12d963c255b3fc46988642746c17", + "address": + "0x3517b7672a5bfb18d666cb896d983941742cf0cb51c9bd0039baf3fedcd948ce", + "decode": + "3517b7672a5bfb18d666cb896d983941742cf0cb51c9bd0039baf3fedcd948ce", + "params": {} + }, + { + "public": + "79b46ceae90bc5c0e8318625fae58ef813c63c587b38c4542960809063d74936", + "address": + "0xea45a2b7c9f87eac49be463c43457b3f35df1a1f513b12c54aa59e3af6ccc26c", + "decode": + "ea45a2b7c9f87eac49be463c43457b3f35df1a1f513b12c54aa59e3af6ccc26c", + "params": {} + }, + { + "public": + "4dab74c69a5a264a84e149f50c22427d8f2e82d78d3f614c272e62c2c5f0dbe4", + "address": + "0x46e6d91c3be17cd004f45ffc640aed9a4a294d440be8504f736c93a44f96373c", + "decode": + "46e6d91c3be17cd004f45ffc640aed9a4a294d440be8504f736c93a44f96373c", + "params": {} + }, + { + "public": + "35ee8df971a2b7b457810169d0a7a5a97346c7d0282eff27a31d99092e9188c2", + "address": + "0x53be4d72818da00ee3da708abe3dfea628c594b3087361a2a972251137fae26f", + "decode": + "53be4d72818da00ee3da708abe3dfea628c594b3087361a2a972251137fae26f", + "params": {} + }, + { + "public": + "ef80ac03e72554fe1b6d2f28b38bbbb446e2cfcbec9e595d7e77c4faed1c4366", + "address": + "0x41328650be16e9c75716e8668e1057a7dbb54cfdc4db369c298cb3a3cb444077", + "decode": + "41328650be16e9c75716e8668e1057a7dbb54cfdc4db369c298cb3a3cb444077", + "params": {} + }, + { + "public": + "6ba1ac39bc3b9bb2e19d28522477a3ada7795494477ee2f5e61461c68a15b9eb", + "address": + "0x4872713fd2cb17a5e41f7c6272c180b01ecc25b2415f682e41f812ca3768c8fd", + "decode": + "4872713fd2cb17a5e41f7c6272c180b01ecc25b2415f682e41f812ca3768c8fd", + "params": {} + }, + { + "public": + "7bb8a4cc00d8d8109630068401a49bad1bc0f5476180a7f6783d45dc3d5b232b", + "address": + "0x9fa67a3ed77b0b19e1ddfb70a8a9c46b3f95a27974033c87844c7337cf40dcb", + "decode": + "09fa67a3ed77b0b19e1ddfb70a8a9c46b3f95a27974033c87844c7337cf40dcb", + "params": {} + }, + { + "public": + "a8c845bcdbfac62df3db573929b99964eba8d84a353fd475b16042f0a294ac45", + "address": + "0xdb5cccc4557104389f3ca48fd673f22e5136fa7cc347696d5e32a00352c304f1", + "decode": + "db5cccc4557104389f3ca48fd673f22e5136fa7cc347696d5e32a00352c304f1", + "params": {} + }, + { + "public": + "8a24ed4cc937fbe89e7dc60a89d7714a8b585a3757859a528ff632f63c4aed08", + "address": + "0x5b6be634717e70e1fba3e5db43bf9c40677728f0f384214e65c827df6591d7cf", + "decode": + "5b6be634717e70e1fba3e5db43bf9c40677728f0f384214e65c827df6591d7cf", + "params": {} + }, + { + "public": + "32bae6e66838177b7e8371fca25531a442675f408fb8aa66a6be60eff6f99958", + "address": + "0x483c1e10a3ea5a6e2eefe5db21b29b603f6cee1c8deefe1c57a8d8c0c198127d", + "decode": + "483c1e10a3ea5a6e2eefe5db21b29b603f6cee1c8deefe1c57a8d8c0c198127d", + "params": {} + }, + { + "public": + "3d8ed99c19994d2d56d8dbf31704ffbc2ae5b63ce9281452a54d85a7d57ede2d", + "address": + "0x5f8be6c2924d35cbf3a0be5a0ac5c25dd23d9323e8bfa127c68d46fbdb062227", + "decode": + "5f8be6c2924d35cbf3a0be5a0ac5c25dd23d9323e8bfa127c68d46fbdb062227", + "params": {} + }, + { + "public": + "0a26b3b33ffb6433f67f5a425495395f1e8c691c950c25ab8b6e7fdb151c0f78", + "address": + "0xf01abe9910ae8109969ced1a82d4d7d8d646270ee3e3044418ec5b33daaad06f", + "decode": + "f01abe9910ae8109969ced1a82d4d7d8d646270ee3e3044418ec5b33daaad06f", + "params": {} + }, + { + "public": + "344fa0bf572750712f3db3f530d23117bc689cb8dc708784e6f41693d911efec", + "address": + "0x7c62620ec2abe12923a0ad3a7ea3f5f583c2598181cad626e92b6ea7a58e3d0b", + "decode": + "7c62620ec2abe12923a0ad3a7ea3f5f583c2598181cad626e92b6ea7a58e3d0b", + "params": {} + }, + { + "public": + "cf77b09e0e16944e76a0ba34f284501af2811d35d4f1231c40e0b994130f0ef6", + "address": + "0x1dd66b3990f8c31d75dc126ba1ecb71a005775ca2a5c4c706919aa9da7294392", + "decode": + "1dd66b3990f8c31d75dc126ba1ecb71a005775ca2a5c4c706919aa9da7294392", + "params": {} + }, + { + "public": + "74a10cadce3cc3e73ab7a01b14424c33c0cfde30cdaba3d38b269bc8ed0f9d99", + "address": + "0xe52076f80c89768adf04bbeff980c8580704795bb03d556ba16569220bb77789", + "decode": + "e52076f80c89768adf04bbeff980c8580704795bb03d556ba16569220bb77789", + "params": {} + }, + { + "public": + "afad36f58efcaae56b58999399c2bd305f9ed8096e1bcc283e92c7a48ef174f2", + "address": + "0x4eaf1f44d08af221fe6fbc61a7bf03930dde262e345990c7073004280f40c4e9", + "decode": + "4eaf1f44d08af221fe6fbc61a7bf03930dde262e345990c7073004280f40c4e9", + "params": {} + }, + { + "public": + "d6f16ecf465f585e7d9837efe1dafcfcb8e68ddc386aed21568fa2d41c13b6a8", + "address": + "0x3f6870ba5b9cab84eff9014b7bbba3f3722dd6b0b6a7ec9851592d5b9c3fa6cf", + "decode": + "3f6870ba5b9cab84eff9014b7bbba3f3722dd6b0b6a7ec9851592d5b9c3fa6cf", + "params": {} + }, + { + "public": + "abbaf9a9894dba919865e052a7e1eaebf615a10559c981d48b5b53412cb2faa1", + "address": + "0x5b18c8a82b5ed99bc7ee10ceb37ad711520aa699492dbdca65a0de3625e65af7", + "decode": + "5b18c8a82b5ed99bc7ee10ceb37ad711520aa699492dbdca65a0de3625e65af7", + "params": {} + }, + { + "public": + "6bef3ea9514538df126ef144cccbc4cd1c517b294e2362919ba59157f6f3c8b7", + "address": + "0xe697b59d18a5bb620a25e215b172d0a271d64dc2f5900d33fde9a39c83ca3644", + "decode": + "e697b59d18a5bb620a25e215b172d0a271d64dc2f5900d33fde9a39c83ca3644", + "params": {} + }, + { + "public": + "7805d62a5a234b617ec3830e309162e28bd6775de7a7d9441c7ce7f48b58de8a", + "address": + "0xeda8ff565ec8ff73ea8a9fe270acf7f69b188b425f631c81f5638dab785281fc", + "decode": + "eda8ff565ec8ff73ea8a9fe270acf7f69b188b425f631c81f5638dab785281fc", + "params": {} + }, + { + "public": + "95ddaa7acb5e6fa8e68b86337cc72ee2591b194dba56e96a6f161eb6df81c31e", + "address": + "0xf53845b5fad157d538b400a349c12304d9af56eb3c455e256a66d8ced38189fb", + "decode": + "f53845b5fad157d538b400a349c12304d9af56eb3c455e256a66d8ced38189fb", + "params": {} + }, + { + "public": + "a22c89a2b2e6e2bc853d841464fc328f65099ce6c108dfbe7a9e025f9f305da6", + "address": + "0x96fed221a80f4d2d2da943da0be03761e9d7bc12822fd332f848310954f6acf9", + "decode": + "96fed221a80f4d2d2da943da0be03761e9d7bc12822fd332f848310954f6acf9", + "params": {} + }, + { + "public": + "b094bc2b2c6ba977f3b26fd9db377b85c01f758b0e07786c74b968b8b8365792", + "address": + "0xfb6ab725919733b2c66f2032293bfa65bf3dec956e578d4a3a5e5e5075aeba46", + "decode": + "fb6ab725919733b2c66f2032293bfa65bf3dec956e578d4a3a5e5e5075aeba46", + "params": {} + }, + { + "public": + "e93c9702642ac49dba5bbc4a42b728c15c091f3a5c18ccda1bdf870dc9acacc1", + "address": + "0x54d4da0d6aed744c1cb1808fd1769deb27b878240456e2a776a0a6565a2ba196", + "decode": + "54d4da0d6aed744c1cb1808fd1769deb27b878240456e2a776a0a6565a2ba196", + "params": {} + }, + { + "public": + "0136e0495a98bdaecc3429650273089f14a259404ee807d479d0fb6c988f7e51", + "address": + "0x676a73d2a779e53e67885cf7c69433c509ed1d9fd96537dd8d9d381afb3d657", + "decode": + "0676a73d2a779e53e67885cf7c69433c509ed1d9fd96537dd8d9d381afb3d657", + "params": {} + }, + { + "public": + "8d5b116da13aafae5b938c1c123d3faf265e598674418f3b2e5a3d7c71c6434f", + "address": + "0xcb4f45beb798260e2a6c90a65c681c1e359a709b1a4f29ac9b1e75987f6f5aef", + "decode": + "cb4f45beb798260e2a6c90a65c681c1e359a709b1a4f29ac9b1e75987f6f5aef", + "params": {} + }, + { + "public": + "332047591796545a280ba18261838d887f6b899ecc43e60626b3bd13137da5ab", + "address": + "0x6172597e923a51f09bd060a2c58e24e71177cd3e1010f2ad67fe4d14017bd653", + "decode": + "6172597e923a51f09bd060a2c58e24e71177cd3e1010f2ad67fe4d14017bd653", + "params": {} + }, + { + "public": + "6c2eedf159fe915259ae502b427206323e94b698dfbed7b9a8ed55372e2938dd", + "address": + "0xd967e0b4e298358cc34f9b356c04bf7fa93f111ac15cd9e1bf790f12ccbfa1f5", + "decode": + "d967e0b4e298358cc34f9b356c04bf7fa93f111ac15cd9e1bf790f12ccbfa1f5", + "params": {} + }, + { + "public": + "26631a3347e731c0c05a8c082a1f42f9641cbdf853b32ca666899479b62fcc6b", + "address": + "0xa47561ee3065b4ee9c273b17309b50a4d7c3cee55759d44b92c59ec033eabe33", + "decode": + "a47561ee3065b4ee9c273b17309b50a4d7c3cee55759d44b92c59ec033eabe33", + "params": {} + }, + { + "public": + "e007c4a308f44e420ebb8ea9a0a919de4fde93c897488c1fa6a7c7fab22feebf", + "address": + "0x7d439eba2cd32a21e0d7b62d95b3d366429872c34ae32e81212e4afcce78f50", + "decode": + "07d439eba2cd32a21e0d7b62d95b3d366429872c34ae32e81212e4afcce78f50", + "params": {} + } +]; diff --git a/test/address/atom/atom_test.dart b/test/address/atom/atom_test.dart new file mode 100644 index 0000000..44fe643 --- /dev/null +++ b/test/address/atom/atom_test.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/address/atom_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import 'test_vector.dart'; + +void main() { + test("atom address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = AtomAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = AtomAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/atom/test_vector.dart b/test/address/atom/test_vector.dart new file mode 100644 index 0000000..4f659a8 --- /dev/null +++ b/test/address/atom/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "03c749da3b0e419662625f6438d631e126ec86fee785e853fc695ba50c1e54a750", + "address": "band1tpedaeatr9qsv5sg38dmhnuwpvhjmuesql2rn9", + "decode": "5872dee7ab194106520889dbbbcf8e0b2f2df330", + "params": {"hrp": "band"} + }, + { + "public": + "037e0d8ced96c90b516a7cfb221a4f4bd23544d5abd956abaf9da9744fbafd97a1", + "address": "band13w324sqm8dpfwfvq4yns907uus0f0f2ngxruq2", + "decode": "8ba2aac01b3b42972580a92702bfdce41e97a553", + "params": {"hrp": "band"} + }, + { + "public": + "030cf11aa206ad2275f4164f3e1a1ed4d3190be4b148e1d93a64ea0b2a9a51882c", + "address": "bnb1vhvnd7v8900adfytj2yl9sldapa6p9ghcnaqtz", + "decode": "65d936f9872bdfd6a48b9289f2c3ede87ba09517", + "params": {"hrp": "bnb"} + }, + { + "public": + "022a8752ce8480844725834ddc8b62ab42b05ff4f220336ea41c15a8ad0d155a0a", + "address": "terra1dz5atdvdmfugpgum0mj0flq3asruycfyzh2waa", + "decode": "68a9d5b58dda7880a39b7ee4f4fc11ec07c26124", + "params": {"hrp": "terra"} + }, + { + "public": + "03f673cd0859c23f6d9ddf7355ce9c6090a06d447dcbf5d6664a7ece8c6f932d8b", + "address": "bnb1kme4srd0p3lgeq5hanas7gwaf363umy2fy5gkx", + "decode": "b6f3580daf0c7e8c8297ecfb0f21dd4c751e6c8a", + "params": {"hrp": "bnb"} + }, + { + "public": + "03d342f242345809c7058658d43b78cc505c68faed387a09291072e3ea26f1bfc7", + "address": "band1jw4glhhctpyjttdnn494rfpg6t5uqy6q4q2md9", + "decode": "93aa8fdef8584925adb39d4b51a428d2e9c01340", + "params": {"hrp": "band"} + }, + { + "public": + "021bfef173aad1e49fd8b5d5567cb525273082817c3f0360bf8b660605b2f59c5d", + "address": "bnb1gsp2dzj8jrkvgghlfmnk72hwx87e2farfk6t6j", + "decode": "4402a68a4790ecc422ff4ee76f2aee31fd9527a3", + "params": {"hrp": "bnb"} + }, + { + "public": + "03fe66781921f06b1b36dbbf6119fa05d4535f91220b51ec5fe582a498e1e0b6b3", + "address": "iaa184ka4frf3sn29tt2446h7y3cz6wkr43y07h6wx", + "decode": "3d6ddaa4698c26a2ad6aad757f1238169d61d624", + "params": {"hrp": "iaa"} + }, + { + "public": + "03d98b2d702dbbea3b70bbbb3b7a7cc564383ed8b1c28ac5ca627c0c41c04636e8", + "address": "band1jam4x5tpn8mnwez6q84nqljxul4fv9fldxwajw", + "decode": "977753516199f737645a01eb307e46e7ea96153f", + "params": {"hrp": "band"} + }, + { + "public": + "039941cbf4a0ace1d5b6b41bbace0d707cec9191a5174683df2e20ac1c3ffe2e84", + "address": "bnb18thwf5nkrjf5vtklsjt7e0m4uzumhm4atpvmcu", + "decode": "3aeee4d2761c93462edf8497ecbf75e0b9bbeebd", + "params": {"hrp": "bnb"} + }, + { + "public": + "034e8ac2baf954de18d19a0329eb8fe0097ada6e645477e5b73cb45395ac9f639a", + "address": "band1jcfzktsg859j5qww2862za5935esucggtvwt3k", + "decode": "96122b2e083d0b2a01ce51f4a176858d330e6108", + "params": {"hrp": "band"} + }, + { + "public": + "03b3fbe325c4c467908d2395d8e08157822f4f3fae3953d53412d94fc5de64293e", + "address": "cosmos1qckcmp3uw7qa5407qy3dlw8fzzc9c67yvrf7c6", + "decode": "062d8d863c7781da55fe0122dfb8e910b05c6bc4", + "params": {"hrp": "cosmos"} + }, + { + "public": + "02f24146c2ff6451356bccc13437f9faae7aaf56b4ac14a40b2386be45f3ab4d36", + "address": "cosmos1c3ewg38x59jg882y4hz3ngf3wwpumrs8308xla", + "decode": "c472e444e6a164839d44adc519a1317383cd8e07", + "params": {"hrp": "cosmos"} + }, + { + "public": + "02452e273852ab09d05bb9c86bf4f78e90ff58a0687ac0afeb1fff3ac4dd066b43", + "address": "bnb1mmlqhg872ph909zsfdtg32ctrwhc8swy2vkzfn", + "decode": "defe0ba0fe506e5794504b5688ab0b1baf83c1c4", + "params": {"hrp": "bnb"} + }, + { + "public": + "0355a5127653257f836a5f07b7eba95975377133ca5268898a07a29060bcd9bfb6", + "address": "kava1q4ulv0y83zfrf9yzgc8gt7fvkqf0xd97wks2x0", + "decode": "0579f63c878892349482460e85f92cb012f334be", + "params": {"hrp": "kava"} + }, + { + "public": + "0294b60018ee2dae40988820e0c24863a8c08b523d632fb4178660012261ce7429", + "address": "iaa19wkfavccprtqk23q0w7hnusf2jppvfakpee4gp", + "decode": "2bac9eb31808d60b2a207bbd79f20954821627b6", + "params": {"hrp": "iaa"} + }, + { + "public": + "02b733515be85ead1d501d62c3961e1c1c5d9dccd398fa13499c1baf88a32173e3", + "address": "iaa1ajehdmaa0fat46g8mp05wavv7jkg235fa6e3zy", + "decode": "ecb376efbd7a7abae907d85f47758cf4ac854689", + "params": {"hrp": "iaa"} + }, + { + "public": + "02e4a0de19b0d341a5af6218f17d29b6bb7d613d702196add5bf757ddb6503aa18", + "address": "cosmos1lxcd7dp7tfh06xymksknfcfwrtsht5lrp5qank", + "decode": "f9b0df343e5a6efd189bb42d34e12e1ae175d3e3", + "params": {"hrp": "cosmos"} + }, + { + "public": + "036c2c95de71c5b19e3b17dce875d6bb6e9383f738b1fb135019fc30f5576db3b2", + "address": "kava1kvzj2ql6a66xt355rdptfehxse00hpu56xdf4x", + "decode": "b3052503faeeb465c6941b42b4e6e6865efb8794", + "params": {"hrp": "kava"} + }, + { + "public": + "030928baae4024a4017d2820d293bbf6ab2b2ad548f91bcef4c5175f507d9cc538", + "address": "terra1967ugs57k9r8dq8mjnejhsy8ycey0rnz4lhrtw", + "decode": "2ebdc4429eb1467680fb94f32bc0872632478e62", + "params": {"hrp": "terra"} + }, + { + "public": + "024884bd320b10b97565be25dfcd1d9f81d961021406bacffb1326efd54333b076", + "address": "cosmos1ras9j25mh73qu5azxa9wuj7jg84meacfngkqrx", + "decode": "1f60592a9bbfa20e53a2374aee4bd241ebbcf709", + "params": {"hrp": "cosmos"} + }, + { + "public": + "020a587fcc7b48f53622180bf2e1cbdcbe2a8e7669af1522edfd504356f746c314", + "address": "cosmos1gts9wck04rffppp2jgjf7cjyej4jyfz9s0xqcu", + "decode": "42e05762cfa8d290842a92249f6244ccab222445", + "params": {"hrp": "cosmos"} + }, + { + "public": + "03e338e025f2e7e38e473a6f2ef54d76851778ecc10ac745c1973a35321a8e546a", + "address": "bnb1lpfapvngqxtfprqqselj3a7p3jejavlcjvk2qg", + "decode": "f853d0b2680196908c00867f28f7c18cb32eb3f8", + "params": {"hrp": "bnb"} + }, + { + "public": + "03256f2332f9564a62de0bcdf30a10610c6f91f218b482f8a70f31a58fa2a547b5", + "address": "bnb1ca97yfn67csrddwgrztyurvpkhye6e0fv8shy4", + "decode": "c74be2267af62036b5c818964e0d81b5c99d65e9", + "params": {"hrp": "bnb"} + }, + { + "public": + "02aa4a7b2a06dc8561a0867471f22525695b45053f97ac8c638e6a4c0f5923fb9a", + "address": "bnb1fr75x4449n46ekzxlyadf0q59xjs8l8y4gf357", + "decode": "48fd4356b52cebacd846f93ad4bc1429a503fce4", + "params": {"hrp": "bnb"} + }, + { + "public": + "026f382ffc9562ac9d40d7bc868c63857795c348ced5f6aa181d57685cc118a8df", + "address": "band14jdez6vcyl50gpzs2tfv287m6khw7te2s92yl0", + "decode": "ac9b91699827e8f4045052d2c51fdbd5aeef2f2a", + "params": {"hrp": "band"} + }, + { + "public": + "032a223634e8ab12d4bf381f2ad55aaaa701f9dea9db7864a03b271498d5a12a87", + "address": "terra1eyqqs4e734xg6rtxap2058ngq7xhkk5yfz05sx", + "decode": "c90008573e8d4c8d0d66e854fa1e68078d7b5a84", + "params": {"hrp": "terra"} + }, + { + "public": + "029ecd4d4547a51ec31ce3a924ffafb84a7e6061d31774cf46a149989fa05c886f", + "address": "cosmos1cn5vtyxuq6854u8ayflgrkv4g2a08udjywke7g", + "decode": "c4e8c590dc068f4af0fd227e81d99542baf3f1b2", + "params": {"hrp": "cosmos"} + }, + { + "public": + "026c56c349124cb47b31e127c55c9a74e9e6b8cbba4cfabd9873c7d0994595cd75", + "address": "iaa1r960r6z4mt6qwfzy5e5txccp6jx6ys8xu7cxgk", + "decode": "1974f1e855daf4072444a668b36301d48da240e6", + "params": {"hrp": "iaa"} + }, + { + "public": + "03f17eeef9d13459c17cd06c4130498c28190937c538cba4825c8c01d88e6c64aa", + "address": "cosmos1xkd5t0wt23mcp7yc8dv4d39saypgmfwre5vrps", + "decode": "359b45bdcb547780f8983b5956c4b0e9028da5c3", + "params": {"hrp": "cosmos"} + }, + { + "public": + "0206053ce98dd5c619632614b5a8c0c8fb9e60758e029054175dd22e3dfc4a32c6", + "address": "band17rw67juv9mufu28wnqcjmgyhjnp6ujjm6da42u", + "decode": "f0ddaf4b8c2ef89e28ee98312da09794c3ae4a5b", + "params": {"hrp": "band"} + }, + { + "public": + "036d93bbc1be5424800c3e11be0c85ff6aed370f605f2286b2e589957729599566", + "address": "bnb1x0xgakg25wejpu6swr7swkmd75snfn0mp4q855", + "decode": "33cc8ed90aa3b320f35070fd075b6df52134cdfb", + "params": {"hrp": "bnb"} + }, + { + "public": + "02e7ce20d8e622ec53335dd6f62e9246db8ec94dca1b63e74a14ec1266418a8801", + "address": "kava1puzp6mvs5ggawq9zf0hgddmyp95ldc95mhwcmm", + "decode": "0f041d6d90a211d700a24bee86b7640969f6e0b4", + "params": {"hrp": "kava"} + }, + { + "public": + "031679ee4be650d8a15a3cd4410c86e6a4c6ef6f0e5a886df384a38e5815401bef", + "address": "kava13sg433veafecl0zfsuemdjpp30u30rzsq7tdes", + "decode": "8c1158c599ea738fbc498733b6c8218bf9178c50", + "params": {"hrp": "kava"} + }, + { + "public": + "03ff9249cf11cab15ed179c564b889ad0015e0615e9a6595e26bf3228f58c6198e", + "address": "terra1qdz4urx4tm3mrts3cvhucnyfcksfjts3j8p6d0", + "decode": "03455e0cd55ee3b1ae11c32fcc4c89c5a0992e11", + "params": {"hrp": "terra"} + }, + { + "public": + "02bb6aa3296fe7b5a7855e0dcbd2385cac5954a18a30ec1c7943b0b9d4865e1e55", + "address": "iaa1ekvm4cqmy2mv0jlhtjnxefw3yvkrd9pz85mdu8", + "decode": "cd99bae01b22b6c7cbf75ca66ca5d1232c369422", + "params": {"hrp": "iaa"} + }, + { + "public": + "03625ad1c2f55b4fac8f15d6b289550e1083bfc6f15b967c05c846b4db5ea5946f", + "address": "band1yzjaxz06506sp0pgqgnqffj4qnnlf0090asgrg", + "decode": "20a5d309faa3f500bc28022604a65504e7f4bde5", + "params": {"hrp": "band"} + }, + { + "public": + "02688ccc09bb380b64c84617b558b4b095277486896dadc5839bb59dc8dd00a565", + "address": "bnb1kce28xme76hkrd57k3p37xspgy8ll9z8f095nr", + "decode": "b632a39b79f6af61b69eb4431f1a01410fff9447", + "params": {"hrp": "bnb"} + }, + { + "public": + "032c9d27142f0e9d200f3621b2d50931bc0a7a61253d953eb07a2a371038fec698", + "address": "iaa133q2uylzk5un2r8wkhpsfshn9t6xkt96ua8vva", + "decode": "8c40ae13e2b539350ceeb5c304c2f32af46b2cba", + "params": {"hrp": "iaa"} + }, + { + "public": + "03182689e4dd496071286ce3833ddbf900f96610c3bcc4de7ce3b783d74d7a6e4f", + "address": "terra1awltqcc7ev5glgljdg3nhn3ak96f6v82q9g3g2", + "decode": "ebbeb0631ecb288fa3f26a233bce3db1749d30ea", + "params": {"hrp": "terra"} + }, + { + "public": + "032965b1b6b36977d3b5ac5a14588ce805a8351747fa2ccaec6a2f347837eb8ce9", + "address": "band1djyj3ewk4tzjee0sz2ygrusum7henrtlxmtkep", + "decode": "6c8928e5d6aac52ce5f0128881f21cdfaf998d7f", + "params": {"hrp": "band"} + }, + { + "public": + "03744e304ecb795a978bde470aa7f98b36920747a792155b334e34792ea49679fb", + "address": "iaa19tan6n6hr7lj8spq25untwwd2gv5cx269czsrm", + "decode": "2afb3d4f571fbf23c020553935b9cd52194c195a", + "params": {"hrp": "iaa"} + }, + { + "public": + "024ad353c3a5708386e73fd390cb969abaf7ebac7cfba64e3db907a0b4c8540376", + "address": "terra153g4n6plre5emaffg38m2jw8uuwgzh2cau0j0q", + "decode": "a45159e83f1e699df529444fb549c7e71c815d58", + "params": {"hrp": "terra"} + }, + { + "public": + "03ef224ef0aaebace2a187f0019a1fbd3c9b8c98b31940db046aa47469d77e9875", + "address": "terra1h2fygsdezt65whzf5smwj4ryw2cd3quyrjgfh8", + "decode": "ba924441b912f5475c49a436e9546472b0d88384", + "params": {"hrp": "terra"} + }, + { + "public": + "0381efd2bd38a6feeb0bd8dbc26c245c54aff4c9ebe44dcec515a365a4815e7b16", + "address": "terra1vrljt6gltv4nd76qzd8fpq9v53894h7gz72zrx", + "decode": "60ff25e91f5b2b36fb40134e9080aca44e5adfc8", + "params": {"hrp": "terra"} + }, + { + "public": + "036e48f95e4418c78e0e09bafbd58c12d4d54781194cbe39e47cdc000719a8af45", + "address": "iaa1c0n739t9k3xtgqc0sj7e7mf0pjeklxte795n93", + "decode": "c3e7e89565b44cb4030f84bd9f6d2f0cb36f9979", + "params": {"hrp": "iaa"} + }, + { + "public": + "024cf3e95511a3504a5ddd48fdddfe2849c69cc70025b8971475746e9e51c1dec8", + "address": "bnb1nyuve3jfmu224dnqhnmg8e4njn5avh0scfx8tu", + "decode": "9938ccc649df14aab660bcf683e6b394e9d65df0", + "params": {"hrp": "bnb"} + }, + { + "public": + "03f9f1c4459c531ee720646f53a22dc6292e4e33cc98c8533315555399e8bfd2af", + "address": "kava1e7me359n44gda60r2a2sev06t50pce0tutrphr", + "decode": "cfb798d0b3ad50dee9e357550cb1fa5d1e1c65eb", + "params": {"hrp": "kava"} + }, + { + "public": + "03cd6c7c79f12b48ffd595e93e17bc7df1bc7ffd62c8c7c09a2bd18db363c496c6", + "address": "band135ych6sr0h4ah63z73v9wg3nzh406ea7kcnhak", + "decode": "8d098bea037debdbea22f45857223315eafd67be", + "params": {"hrp": "band"} + }, + { + "public": + "020bcdf3a0fd3dfa34e3d62feecda219c48da02335e09e0625408ec5721c9c0445", + "address": "band15mg5wcrsa4pg4yuvxrntrccmaz2qf7tpkuxl0d", + "decode": "a6d1476070ed428a938c30e6b1e31be89404f961", + "params": {"hrp": "band"} + } +]; diff --git a/test/address/avax/avax_test.dart b/test/address/avax/avax_test.dart new file mode 100644 index 0000000..3f0d9cc --- /dev/null +++ b/test/address/avax/avax_test.dart @@ -0,0 +1,32 @@ +import 'package:blockchain_utils/bip/address/avax_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_p_vector.dart' as p; +import 'test_x_vector.dart' as x; + +void main() { + test("avax P-address test", () { + for (final i in p.testVector) { + final params = Map.from(i["params"]); + + final z = AvaxPChainAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = AvaxPChainAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); + test("avax x-address test", () { + for (final i in x.testVector) { + final params = Map.from(i["params"]); + + final z = AvaxXChainAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = AvaxXChainAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/avax/test_p_vector.dart b/test/address/avax/test_p_vector.dart new file mode 100644 index 0000000..455ca3f --- /dev/null +++ b/test/address/avax/test_p_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "03d477959fdf9e3dd62fad8127e9589be6572145b992f6825eab60a87891f855ff", + "address": "P-avax1crd8dgf44zajru3975vwe3xzqy70n0afu3kk9m", + "decode": "c0da76a135a8bb21f225f518ecc4c2013cf9bfa9", + "params": {} + }, + { + "public": + "03543de007adc67822cc961e6e6e3582d25ccc551268e88eefef2c23b7f97ae32b", + "address": "P-avax15aeuzqj7pst2r2npmewarfme62rw8y4w2yz4n3", + "decode": "a773c1025e0c16a1aa61de5dd1a779d286e392ae", + "params": {} + }, + { + "public": + "02a1c9ca6b18383f52bee9a6f2350584d8b593e9222085c11b90c36da4f6844808", + "address": "P-avax105mehs44pvp3j8kn95aqgzqs80uuyjj5cww5mh", + "decode": "7d379bc2b50b03191ed32d3a0408103bf9c24a54", + "params": {} + }, + { + "public": + "03fe78857c74f950c62793df27409dd3530617b2a47c94330a45e2b0db584dd8b7", + "address": "P-avax1z6arfthw9rwlkaqmnkt64jmf2ns2gwcl0pg489", + "decode": "16ba34aeee28ddfb741b9d97aacb6954e0a43b1f", + "params": {} + }, + { + "public": + "036082aed990fbfc5a5036601960a7cc25a63cad72ede5ad028a61536b83c9ae05", + "address": "P-avax1vlvu7sldjmf05r5xhsm5mmgqayh4pf2ezr0y6t", + "decode": "67d9cf43ed96d2fa0e86bc374ded00e92f50a559", + "params": {} + }, + { + "public": + "021aa7212eefd599b0dc053f632fed2b48822070a20bbed8cad5fa80e616a1b7db", + "address": "P-avax1jkr05a524rnk47aukwgnhkgk979dwhwn2zhqqw", + "decode": "9586fa768aa8e76afbbcb3913bd9162f8ad75dd3", + "params": {} + }, + { + "public": + "039c9b513626974a85626b14a043172ad2b73fa17aaec281828331a5a9dbb0db4b", + "address": "P-avax1qrnwnhmychyqmqx5xe0s786fvhtd675q9cr557", + "decode": "00e6e9df64c5c80d80d4365f0f1f4965d6dd7a80", + "params": {} + }, + { + "public": + "023553760aa055a713b6540af75e7d19c41070a7f08166d6248cbfe49d6ed869eb", + "address": "P-avax178rh343jhcggxn60ee75qs4f0xnhh9nplw6d2w", + "decode": "f1c778d632be10834f4fce7d4042a979a77b9661", + "params": {} + }, + { + "public": + "02f3d0c8751f308abec684eb03eb2fd4fa2ed3b8fe22cfdf48c5ec000a3a61a2d5", + "address": "P-avax17q0qsfgsccml28gzv62ff8p7kd7rs3jsk9hlyf", + "decode": "f01e082510c637f51d026694949c3eb37c384650", + "params": {} + }, + { + "public": + "02cc53371dd68ea486cf654e84296209bd931b598c823219b9625528e112798d73", + "address": "P-avax1fuqse3nhmg5sqkm290cfsg8xc9vwzsryy9ert9", + "decode": "4f010cc677da29005b6a2bf09820e6c158e14064", + "params": {} + }, + { + "public": + "035133069ee60d5a604f9187a4c7f45f7536ced14ed4d8a0c4f6e91746cce0b9b7", + "address": "P-avax1kv9rkwqk74ucwmx5cur28u959tq4daf7wc0qns", + "decode": "b30a3b3816f579876cd4c706a3f0b42ac156f53e", + "params": {} + }, + { + "public": + "025d3238fb481af4f671b29c7a890d508ff3ab3b567ce51d48178acf1d554154bb", + "address": "P-avax1xst5rsm2sr4gw4dd945nppu69qll20muc47rm6", + "decode": "341741c36a80ea8755ad2d6930879a283ff53f7c", + "params": {} + }, + { + "public": + "026a35defa8ac86c66dccb175fd5b794eafc9e762420a80e4e23bc14121ab85b0a", + "address": "P-avax17xf2dddft2e7nmw36c7uajqrr86zmkh9xq93jr", + "decode": "f192a6b5a95ab3e9edd1d63dcec80319f42ddae5", + "params": {} + }, + { + "public": + "0387475e2885f799c9794581d9f0d57172334bd8e414d1a4beefbd3b6829609c98", + "address": "P-avax1ydem70lcwc69z62fwshw3xk0u7xyf9yg66l96v", + "decode": "2373bf3ff87634516949742ee89acfe78c449488", + "params": {} + }, + { + "public": + "03ba5405a4adf6f68f3f2aa6a286f3624e1ddc1174cc9740e0e65236c2a611286c", + "address": "P-avax1qt6fhqtmrj3sddljnjtmyjxnu0chgp0kp5hsuj", + "decode": "02f49b817b1ca306b7f29c97b248d3e3f17405f6", + "params": {} + }, + { + "public": + "02e0bd0bd7d12c9cac72c1b93a3bcf621ad154e1a12f7a241be4f0543b325d08a3", + "address": "P-avax1r3k5mwlg9cw2z4yd28qxt2zelx9rftyxsqs43q", + "decode": "1c6d4dbbe82e1ca1548d51c065a859f98a34ac86", + "params": {} + }, + { + "public": + "024cf58ee042bb2037f8659125f0a1b0093967d04921d055a81f88f7245fc9dfde", + "address": "P-avax16nr6chcszukfv84ef5qku65gccz79g0qgk7zv9", + "decode": "d4c7ac5f10172c961eb94d016e6a88c605e2a1e0", + "params": {} + }, + { + "public": + "03f5226fd3d855f97999774d2feca51ad4a9f234fcce7894dadc6eabed80a3613a", + "address": "P-avax1mfyw6eq2hkmuhga3hdtxeqg2gd3zar4ezl3nlj", + "decode": "da48ed640abdb7cba3b1bb566c810a43622e8eb9", + "params": {} + }, + { + "public": + "0281aca6d7e500f3692655eb83c67e7ac660c371110ac6b8d7aeb75fd56273724f", + "address": "P-avax1msrrg4qnxg473tlcps5dpw3wrf9rm2yjvelnw3", + "decode": "dc06345413322be8aff80c28d0ba2e1a4a3da892", + "params": {} + }, + { + "public": + "0313204e28e1ae9eda56be7d3a2e0791a288210c1ee43f5ae944e36ebc04afb40e", + "address": "P-avax1yqlj2k5vf2u4qfgnsl78qp0s7z9r6wll6eug2n", + "decode": "203f255a8c4ab950251387fc7005f0f08a3d3bff", + "params": {} + }, + { + "public": + "031d6ce80e5f2b497d18501f4f5502b43c91ced6ef83d0e4f8620b47b13de38cd7", + "address": "P-avax1wsc7qh6x95fyrh3uc7xur59y7qqvxmjv3u4te3", + "decode": "7431e05f462d1241de3cc78dc1d0a4f000c36e4c", + "params": {} + }, + { + "public": + "021c08ab87368d07ac6cba3928627c3163a10f4d8ac85fa945e5d354e36af249fe", + "address": "P-avax18rnxnutd4yms0drxwhpryjf59zdmj2p4nl945p", + "decode": "38e669f16da93707b46675c2324934289bb92835", + "params": {} + }, + { + "public": + "037f916b87f9f4a7a5c16089e1998361f60a7a6d6745930ce5dfe6932019df3b03", + "address": "P-avax1zg4xuds4d9hdx5z8fm6x664uyg3e05t6nf95zs", + "decode": "122a6e3615696ed350474ef46d6abc222397d17a", + "params": {} + }, + { + "public": + "026ca8f5a6201889d05c1f7f9137d47592645931c197196d45010badcdd240f75f", + "address": "P-avax13z06rmzuead4pvl3t3fnfqqve8vjhnwa6p7fjs", + "decode": "889fa1ec5ccf5b50b3f15c5334800cc9d92bcddd", + "params": {} + }, + { + "public": + "0204392816abf9e1df62e05df4b9211002970cd60b0536166a0fcb59d120ee5c1a", + "address": "P-avax1t82m0jvud7anmwu8hkh398gj06728rnh7g52ld", + "decode": "59d5b7c99c6fbb3dbb87bdaf129d127ebca38e77", + "params": {} + }, + { + "public": + "024e4a00b36d8a204fbbab7c157952ef1a2f5d72d5bba637408776b811239bf665", + "address": "P-avax1rxrqrzfh8gt8h6v9truz5am4a3rknldl64uvdk", + "decode": "19860189373a167be98558f82a7775ec4769fdbf", + "params": {} + }, + { + "public": + "039f8925426fbf7bd9678b62f0388f0bd971c9b7dff43dd59f50d014777229c4e7", + "address": "P-avax1uy0fd8r64z55h507jeyzz4jwmm4da7ek9m3xgk", + "decode": "e11e969c7aa8a94bd1fe964821564edeeadefb36", + "params": {} + }, + { + "public": + "02835ddd3c8b0513763c3f3805217ae9b1e47d1deff5f686bcd1473e1a3fee05d1", + "address": "P-avax1j4nxg7zkdfnpt28ytcwt97ea0mzyvjwp4306uc", + "decode": "95666478566a6615a8e45e1cb2fb3d7ec44649c1", + "params": {} + }, + { + "public": + "03ffa21e0b8ae1574b63831acb22785f5d396f7c2ce176aa47e256768563aff0b6", + "address": "P-avax1kctuggqdsv7w87e532pfwdghx322lchmqrr7cc", + "decode": "b617c4200d833ce3fb348a829735173454afe2fb", + "params": {} + }, + { + "public": + "028778b1da934572ee59fabeace95358bf68c9d6b2746fae6e07e22f31d587ac7c", + "address": "P-avax1je9sf53aydtu7sdd8dsqa5gksc8g5nygaulwep", + "decode": "964b04d23d2357cf41ad3b600ed116860e8a4c88", + "params": {} + }, + { + "public": + "02bf85a2b5a7dfe482dd99f9577d0906157f95b370e6873d5d097fea90462be4a3", + "address": "P-avax1hjp3up24vrexpc7kktjg2nj0g6dsq2pg2dlemj", + "decode": "bc831e055560f260e3d6b2e4854e4f469b002828", + "params": {} + }, + { + "public": + "03e190dec5058758d89c0b2232f64d02bafa8a91104d4f5ac77c8b2676ff22d6db", + "address": "P-avax128relrckw2eznw0qpvmmwfj5e58mcf2zauxtfl", + "decode": "51c79f8f1672b229b9e00b37b72654cd0fbc2542", + "params": {} + }, + { + "public": + "0252dee22c13b6604169e1cb209c34b6ccb5df8db7fd65f0cdd1132b08ef3a5e68", + "address": "P-avax1f0p669f5yx787qsuytasc4emc8vlyrfq9p0jr0", + "decode": "4bc3ad153421bc7f021c22fb0c573bc1d9f20d20", + "params": {} + }, + { + "public": + "0211f2928ad4c5dc7ee59533dc893e388d131d0de7e0870a7e36760c9413634296", + "address": "P-avax1zjnwy33n4zl6xkyhjc48464tc70nvz2r4h2ru7", + "decode": "14a6e24633a8bfa35897962a7aeaabc79f360943", + "params": {} + }, + { + "public": + "036cfb0e31ac0b13bfc611f0fdd9d9b13427fca4264a51c4624ecad00194c247fd", + "address": "P-avax1m4kudjah7wsdnz4pfga6z6te4l67tthup5pa9x", + "decode": "dd6dc6cbb7f3a0d98aa14a3ba16979aff5e5aefc", + "params": {} + }, + { + "public": + "026279e42c6644e001e2f8f480551876fecdfb299a9f173ea8d2b349cda9c38b82", + "address": "P-avax1vp5w6l39mmhxh654pfl205j49hg2qcs9dz9cjm", + "decode": "6068ed7e25deee6bea950a7ea7d2552dd0a06205", + "params": {} + }, + { + "public": + "02a757fb3aeb9c1b23b18d75b70c4ecba84e46e0977287de72ce02c134e4dca9df", + "address": "P-avax1vqhxnwh6964ezjjz4cwp8n7rkyw4fpw4d3suep", + "decode": "602e69bafa2eab914a42ae1c13cfc3b11d5485d5", + "params": {} + }, + { + "public": + "02fb53a890664aa137100975ab92b3bf449bd220782d1e27c01fecdbcf93405b7a", + "address": "P-avax1zxpwgl743ajy4dzdtj2kapz34jhp05hweu7ajd", + "decode": "1182e47fd58f644ab44d5c956e8451acae17d2ee", + "params": {} + }, + { + "public": + "02e6bad24ac4ba6a7e05316652e94d26957cae9ed52d203be4ef572cf52f6aaf2d", + "address": "P-avax1hpsdlrkyzwjcd3rue0mxd7d2l9c4enudfrdqhd", + "decode": "b860df8ec413a586c47ccbf666f9aaf9715ccf8d", + "params": {} + }, + { + "public": + "021370937c6f62993fefe00a60ec3b25fe26d7a5374ca800135380346d2ef2c7b6", + "address": "P-avax1caza48gy6jt58phhq2e6aljy8ue0wvv2tvm28z", + "decode": "c745da9d04d4974386f702b3aefe443f32f7318a", + "params": {} + }, + { + "public": + "021f91522ae7020181d69d5c021716b27ce148b19acb76b01a5e7da191545600b2", + "address": "P-avax16n4srm2nqety3fpw7khdp32e24xtdwsax0hgq5", + "decode": "d4eb01ed53065648a42ef5aed0c559554cb6ba1d", + "params": {} + }, + { + "public": + "02a9bc0e2e771a1bdd60eec8765ed27e366f049b527ed2e24b86677fc918cc2734", + "address": "P-avax1l5e27ccgkf9f0elusyx4ev8jsgptqu393pk0ss", + "decode": "fd32af6308b24a97e7fc810d5cb0f28202b07225", + "params": {} + }, + { + "public": + "0200bac563b13ce359f9e6d9475f3d1b05ae2b40152d1417e72826b2c6cd5b4dec", + "address": "P-avax1x2qc05my4939ckvheha23scax8sgkuu0l0hrty", + "decode": "328187d364a9625c5997cdfaa8c31d31e08b738f", + "params": {} + }, + { + "public": + "033c8d4a7c1d9370915014c2b3d7f29aac562bb6f45fdf5a9635172eb362cb1a59", + "address": "P-avax1l59dryljhwlsrl4f6jqlak8pdh8yulfpjzr8qf", + "decode": "fd0ad193f2bbbf01fea9d481fed8e16dce4e7d21", + "params": {} + }, + { + "public": + "020e6e13e282ca0e03ba436427d963ea55fcf2a28af2e3987008c68ad7336644f7", + "address": "P-avax1z22q054l2jq8u2zl0uzyjcxsa9yz6d3e6zs7ah", + "decode": "129407d2bf54807e285f7f044960d0e9482d3639", + "params": {} + }, + { + "public": + "02b5409b57d9c61dce7622a26f175a94e7d4fdbbfbd8297207d892722edda1242d", + "address": "P-avax16kx6lepcmtduufucjd9l93t428mvnvacx4nf6w", + "decode": "d58dafe438dadbce2798934bf2c57551f6c9b3b8", + "params": {} + }, + { + "public": + "02b356a1d108fa15809d480686e8c4a4c413ecf85c06e9539faadc314a08d724b1", + "address": "P-avax16yjc44kgau24wemwadd2dwwfethgy6mu82tqgy", + "decode": "d1258ad6c8ef1557676eeb5aa6b9c9caee826b7c", + "params": {} + }, + { + "public": + "023bbb5010846ae4fa5ac8495b1d3ce53c18f5085e3ce4680df4d5f1fc65f30615", + "address": "P-avax1nr2x0pgemfzgzhkmuv606lh3x3s9xa22d59nw9", + "decode": "98d4678519da44815edbe334fd7ef1346053754a", + "params": {} + }, + { + "public": + "039c77f2c1edfe0a29a18b965d5ab5579937a890da0918018f71b32ae6050781f9", + "address": "P-avax1pucwzkajs968kssu4t2y6wxa3x7y56f9e878we", + "decode": "0f30e15bb281747b421caad44d38dd89bc4a6925", + "params": {} + }, + { + "public": + "02c51f5717bd0e0c619f3a562df0efa771d8992b0b8e74e74127c0f13b0ab0b6ef", + "address": "P-avax1usfmram00qnrq33vd28suv42zpcv0dv2d3yraw", + "decode": "e413b1f76f782630462c6a8f0e32aa1070c7b58a", + "params": {} + } +]; diff --git a/test/address/avax/test_x_vector.dart b/test/address/avax/test_x_vector.dart new file mode 100644 index 0000000..a0d5fe0 --- /dev/null +++ b/test/address/avax/test_x_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "027d80103e31c010ea0f3e6779a6dccb90b4d47e3a6ff19d9db496164fc3c44047", + "address": "X-avax1yqd9uxve4h4myx0ageuz6afh0sszl2elgdfqr5", + "decode": "201a5e1999adebb219fd46782d75377c202fab3f", + "params": {} + }, + { + "public": + "0202d9ca232cff17d485b88fb13d9d127b22450bca7758a68df5c49b3835bdee49", + "address": "X-avax1vax0zz3h0yey4wh5ylu9n6t9gqyfuav06gauwu", + "decode": "674cf10a3779324abaf427f859e96540089e758f", + "params": {} + }, + { + "public": + "02081aa885fa5e3041356f6cc48e3eddd09469806ab29800c72b89b71c5838ab3a", + "address": "X-avax1qm6p2n7q9dr596cwppdwp56jrqtf837jeh57m9", + "decode": "06f4154fc02b4742eb0e085ae0d352181693c7d2", + "params": {} + }, + { + "public": + "02cfa04f12ee5b3108bd1e1d61c06cc4aaedf3901c1200c6482c536e01a640b37b", + "address": "X-avax1mq76vw6dpny3t2cufqm3rr8fp8z0fkh5f53dkn", + "decode": "d83da63b4d0cc915ab1c4837118ce909c4f4daf4", + "params": {} + }, + { + "public": + "0258720104997d800aac8b66f1df99688fbad1327db3531061753f8124dfa454b5", + "address": "X-avax1g70raacw3hpqjvda7dq9p3a2y8lvh8kulx25d9", + "decode": "479e3ef70e8dc20931bdf34050c7aa21fecb9edc", + "params": {} + }, + { + "public": + "0269416b0db6980fb1ed4ad492baaaf244f39054067c27e41a9ae0906df698ac18", + "address": "X-avax1dw58aelxj9t382sltpt02qnxq8taeea4ndnle2", + "decode": "6ba87ee7e6915713aa1f5856f5026601d7dce7b5", + "params": {} + }, + { + "public": + "030c51ff7353318087e628f9951748458bfa836e097fc3b85436652965b3c5d3cc", + "address": "X-avax1nmwu3m5j72lxp6j5vhukayqvm6hd8ex60ns4hy", + "decode": "9eddc8ee92f2be60ea5465f96e900cdeaed3e4da", + "params": {} + }, + { + "public": + "0334be013c13a0616cd66dcd1dfe281087484e70b93ab9c7411512aad3642fbfc1", + "address": "X-avax1ng0vukytklh0qnmw2akz6nhtqf0apcgxe5gkjr", + "decode": "9a1ece588bb7eef04f6e576c2d4eeb025fd0e106", + "params": {} + }, + { + "public": + "03ac66bfeaa099560a4f7db970f8b4f71827377bcc257416cc0e02bc70e61b215e", + "address": "X-avax13dz4q6hv2ajllmrl8sfjvk85wpnmcjt2tq8d59", + "decode": "8b45506aec5765ffec7f3c132658f47067bc496a", + "params": {} + }, + { + "public": + "021f545dcd5f9d6f37ca996d7b0e9220c46c8a5fecd4d8a8609505598b40589201", + "address": "X-avax1ysvh95tczszdf5jws9umc3tu9vqw24xl8s52q8", + "decode": "241972d1781404d4d24e8179bc457c2b00e554df", + "params": {} + }, + { + "public": + "0320b54c40884c0faa59e6ee096eb1ead6e261e83ef1b3c8ce206957b4bdb3a96c", + "address": "X-avax1duu6y9h9fypagvp9hckkcw6w3m0urrjv83sjzm", + "decode": "6f39a216e54903d43025be2d6c3b4e8edfc18e4c", + "params": {} + }, + { + "public": + "03dbb35b43444f5f2616cf31eb03cf4c712bd64dc58b574b8df6ad5f8b3f761d3e", + "address": "X-avax185fh56e3a2prtluh39fcr7q43zhmyehu0vw6j2", + "decode": "3d137a6b31ea8235ff97895381f81588afb266fc", + "params": {} + }, + { + "public": + "03576fc5ad142c6a1a84f277236fde4049025e1bbfc4a8ad12de588b4f620056e1", + "address": "X-avax16e6fmgux8sy4tj04jvwh8xvx48aec7uwqlvyje", + "decode": "d6749da3863c0955c9f5931d739986a9fb9c7b8e", + "params": {} + }, + { + "public": + "02bb374ac82c8cf73af0bec8c2fb6f9bf9ded099f65cf7ba00c26e0cade902f656", + "address": "X-avax1m47qwtr5ldgrctz2f37wppcaycwm20rmptvj8k", + "decode": "dd7c072c74fb503c2c4a4c7ce0871d261db53c7b", + "params": {} + }, + { + "public": + "02c52b8dcd4103904b023ff129ecb1c03763e93f721339c546c828940d5d060f2e", + "address": "X-avax1p45ejsvv8fzemegv86gw0qzuynqw8a2lqe07qv", + "decode": "0d6999418c3a459de50c3e90e7805c24c0e3f55f", + "params": {} + }, + { + "public": + "022f1fadebdaf887aaaa26ce0d24f46a1c027bfefbe65c40e5cd518b3e0f8598f0", + "address": "X-avax1gs2exzdcrwvg4aptldwhg6m77m9xlh2dxl2jaq", + "decode": "44159309b81b988af42bfb5d746b7ef6ca6fdd4d", + "params": {} + }, + { + "public": + "028e8161eea25c5db3335a5b792af5617ea4dbc7c189488d81fda219ca22d16532", + "address": "X-avax1tt47s9s5948ks59t2x6pamzprnr5ncdcudmegv", + "decode": "5aebe816142d4f6850ab51b41eec411cc749e1b8", + "params": {} + }, + { + "public": + "034ae015aa71e18edae30652c77bf926e9f463b2d2ca9d90046465fa555af38c12", + "address": "X-avax1cl2xkvyym769c9vyxtpwmg0skza74prn663k5a", + "decode": "c7d46b3084dfb45c158432c2eda1f0b0bbea8473", + "params": {} + }, + { + "public": + "0237a94c25eb04c8e811bfabedba718ecf184dc121c9403ed55f98ee56e1d0b51c", + "address": "X-avax1j0ykkezxhjljg0rjflsuxdg9g2n2zenrr7vfpf", + "decode": "93c96b6446bcbf243c724fe1c3350542a6a16663", + "params": {} + }, + { + "public": + "02626358dab161b7f3901307579268314678945649c47c1f51d5b054cade421fde", + "address": "X-avax168wwq7jufq0qrk95xk6mj8ez2tz43z773uel89", + "decode": "d1dce07a5c481e01d8b435b5b91f2252c5588bde", + "params": {} + }, + { + "public": + "03d2f0d055559f2e27db1e05e7688f739928c74fd39261b342085474f87a4cf9fb", + "address": "X-avax1rl3ge3dmtkkfd0ad4rz89jqjunxwa9y0d7p52r", + "decode": "1fe28cc5bb5dac96bfada8c472c812e4ccee948f", + "params": {} + }, + { + "public": + "027422afe7630de6394f7b48f0908aac9f4cd8f87d89172a379e3f3f709d7973a8", + "address": "X-avax1tqr909rz2ayu8rp6lhlnt479cs2rd47c7ymdyu", + "decode": "58065794625749c38c3afdff35d7c5c41436d7d8", + "params": {} + }, + { + "public": + "0321fcda33dfe5546e8a01f904bffc30203b94c949310d75251d2a4ebe98e4a6df", + "address": "X-avax14ctvrp2wr0h4fajcp9yv9qk6u7pqmx6ppvcwz6", + "decode": "ae16c1854e1bef54f6580948c282dae7820d9b41", + "params": {} + }, + { + "public": + "0335a9fd2ab4b529cb96870ce66ad98f6965635f4f0df8f16b2c605643db397987", + "address": "X-avax1tgj5mkym2k36pzx9chztc3jhj9484wjvmm9ax7", + "decode": "5a254dd89b55a3a088c5c5c4bc4657916a7aba4c", + "params": {} + }, + { + "public": + "02408e74f6552345d93a62de7287411b3d7c4964ad881cab57f73be4f84deab673", + "address": "X-avax1sty2k339yus6jakp5nghm5aart8ksz0pq9464n", + "decode": "82c8ab46252721a976c1a4d17dd3bd1acf6809e1", + "params": {} + }, + { + "public": + "025452aecdad4f0c361de5f0ec1ce45841433b0804a7847fd5661750fbc9b909a7", + "address": "X-avax1thagh3evnysjkn6f9y8zwy5x25syu50afn6yeg", + "decode": "5dfa8bc72c99212b4f49290e27128655204e51fd", + "params": {} + }, + { + "public": + "03b38b26081f1c9e12645eadecee10b6a4661e227498932cf04535341dbfd55f3b", + "address": "X-avax1h97cg4j2sy6r32cmt8xhvgnclzvkxwwuklk8nv", + "decode": "b97d84564a813438ab1b59cd762278f8996339dc", + "params": {} + }, + { + "public": + "03c6af3c0e9591ce6cbb8725ad7fc8ae3dee08205d02591340a6d50f110eec32e6", + "address": "X-avax1y9tjwstz6a6wrgkvr889v5jqk3z6ekl4mxlv34", + "decode": "2157274162d774e1a2cc19ce565240b445acdbf5", + "params": {} + }, + { + "public": + "024b9c0f9bace4c0da4cf3dad2d59a1f525f38e2c9a11a201e4c57b5fedeeb38f0", + "address": "X-avax1ucrvqhq4mc8kg66xu560hlmp9wz9y4zxna6g2n", + "decode": "e606c05c15de0f646b46e534fbff612b84525446", + "params": {} + }, + { + "public": + "02e1097ea220b913a7302c96710a6e82b4714b3d8f1d4ab763a88ecd25e5149f10", + "address": "X-avax1zlmscefauyu5gmq92g9m4zpx90wazejsg7wgsh", + "decode": "17f70c653de139446c05520bba88262bddd16650", + "params": {} + }, + { + "public": + "0393e8928fe6fcf588e5b8eeb6f8a2b5875c13fc2bdd66d1bf94fe7dee0562805e", + "address": "X-avax13yqffe30jj8rh37rnpqrcfgwx7t9en4pk0u22q", + "decode": "890094e62f948e3bc7c398403c250e37965ccea1", + "params": {} + }, + { + "public": + "0227545239e112a6e6a829193e3b4ba8f17adc5b0846bbe45620dc87c691516a62", + "address": "X-avax1u934nn2prauktxd946c6sum08t5faykpxxl336", + "decode": "e16359cd411f796599a5aeb1a8736f3ae89e92c1", + "params": {} + }, + { + "public": + "03944395f383d8a3cf62c15bb923563eddc3e42d97c1df30dece48e258405ed40e", + "address": "X-avax1atd944mhe4n5q64qazz97rshpn5t6stfj8pez7", + "decode": "eada5ad777cd67406aa0e8845f0e170ce8bd4169", + "params": {} + }, + { + "public": + "03ceb268faa727d2f7fa661f078df4e0bf650b95e4eb49cc4b1abdfe6d568b99c2", + "address": "X-avax189tjv90sykfhltk6d24matzdklg6qpp9hve837", + "decode": "39572615f025937faeda6aabbeac4db7d1a00425", + "params": {} + }, + { + "public": + "02e854d331a9213a0cb03b1a5ff924f07c8c605d00b732ca3ac16ef7260950cd6a", + "address": "X-avax1rs66wh0cxx93l8d3m35dwww3yd3vqkzuqg4ajy", + "decode": "1c35a75df8318b1f9db1dc68d739d12362c0585c", + "params": {} + }, + { + "public": + "02aeb6c56ce1d09354534236343921b199773acd11daf2669ede06d6e251ee53cc", + "address": "X-avax1a6uqjd45dzze6qqaa73jan6uz50annw46p649y", + "decode": "eeb80936b468859d001defa32ecf5c151fd9cdd5", + "params": {} + }, + { + "public": + "02b3952f097b18637a6d0c05affafa4e46117e74a627eccd61a199fe83b622aef9", + "address": "X-avax15fxskvdgy7zhnhcqal3nzcf95xfr39jahuwdkc", + "decode": "a24d0b31a8278579df00efe3316125a19238965d", + "params": {} + }, + { + "public": + "03743302f2cab55bee7f724ef5df65561c9b0e8d18b8db559d6155bc17f8e337a2", + "address": "X-avax1l6ku3lz44nz7grmqexa2d2w0gr60c74c0tuqp8", + "decode": "feadc8fc55acc5e40f60c9baa6a9cf40f4fc7ab8", + "params": {} + }, + { + "public": + "0355b2642c92d691f1c8a7ef478a3c7229e59f2dac2ea957d7a80f772f8290f54b", + "address": "X-avax1srzn9u08h5tqd4345mklqaytncpykmhe4lp0uj", + "decode": "80c532f1e7bd1606d635a6edf0748b9e024b6ef9", + "params": {} + }, + { + "public": + "0232633f2efe8fb0853a422a04f9352491f8d5ab6bfdab3f18e52499cfb4c93419", + "address": "X-avax14lhtlvge2zpr7t6squjw3sqqvr36hnsaszmch3", + "decode": "afeebfb11950823f2f500724e8c00060e3abce1d", + "params": {} + }, + { + "public": + "024fd1284b0eda1b1994d026a164d36a5e6bce877d95874d1d85571c47556edb1f", + "address": "X-avax1fppzl6szs5h90v8h7gplspr9nwuj06rgsdd9zv", + "decode": "48422fea02852e57b0f7f203f804659bb927e868", + "params": {} + }, + { + "public": + "02920b40aa280081243e4b322f872b5ed15a901afc5d0f4115e85894b1ac959419", + "address": "X-avax1gv03d2ju3u47x5zsu92yf4udgw2cgneuv7w3kn", + "decode": "431f16aa5c8f2be35050e15444d78d4395844f3c", + "params": {} + }, + { + "public": + "028ac160f428ef8ec295390f9738a5dc6a3c253d64d1b2b662f3a754ced29e6719", + "address": "X-avax1akvdjwcx9kdapfhxr895jv2r0kcvdln8hg7wd0", + "decode": "ed98d93b062d9bd0a6e619cb4931437db0c6fe67", + "params": {} + }, + { + "public": + "029ebbff9d95dda341c3d83b56dbaf2ad105ed8176890947840208cc3c330c2e48", + "address": "X-avax1wdk3mkskdsjatuadnrf490xxfzgqh4h6jysfm0", + "decode": "736d1dda166c25d5f3ad98d352bcc648900bd6fa", + "params": {} + }, + { + "public": + "034f5b8cb566ff2c436d077a3c338d02042edcf6b4be94dda30e10878e3a033c0d", + "address": "X-avax1dsuxt8v884s2temyn33ujju5ecj8ce38d92dpv", + "decode": "6c38659d873d60a5e7649c63c94b94ce247c6627", + "params": {} + }, + { + "public": + "03c29844989750aff3a18838e4384df6e376c38a546d4e5b7b58755c96824ce340", + "address": "X-avax1s3x60y5vgumsup5pc29auqxu8udvf9dk66gc0x", + "decode": "844da7928c47370e0681c28bde00dc3f1ac495b6", + "params": {} + }, + { + "public": + "03bdb3f45382faf573ebd01195fed5b53cb21c265df6ed19b6c30c08182999ee95", + "address": "X-avax1hj0x2k8vk7eyrhmrqyj2pkr2lgsdnstqzrkgfv", + "decode": "bc9e6558ecb7b241df630124a0d86afa20d9c160", + "params": {} + }, + { + "public": + "0227447104bd27dea8b3cfbfd14b4c54c373b04165f31c26e3012aa98c1e19dbd1", + "address": "X-avax19cuz6p4u6qshkmfjgk5948h3gw9anef6eemyfu", + "decode": "2e382d06bcd0217b6d3245a85a9ef1438bd9e53a", + "params": {} + }, + { + "public": + "025b68b3bdd3cbf8960cd06dad50972930356137662128537d3a65301693cddbe0", + "address": "X-avax1psrd2m72kj567vvt25vfe2q27elh57yfm3c4as", + "decode": "0c06d56fcab4a9af318b55189ca80af67f7a7889", + "params": {} + }, + { + "public": + "0224c884d5966664893be1b828929686d1353a2abfe82e05d3535cee1d8eeeb9f5", + "address": "X-avax163dgqgs27e3t762g29g58l8akm5vg3p4ld6g8f", + "decode": "d45a80220af662bf6948515143fcfdb6e8c44435", + "params": {} + } +]; diff --git a/test/address/bch_p2pkh/bch_p2pkh_test.dart b/test/address/bch_p2pkh/bch_p2pkh_test.dart new file mode 100644 index 0000000..5e4f28c --- /dev/null +++ b/test/address/bch_p2pkh/bch_p2pkh_test.dart @@ -0,0 +1,21 @@ +import 'package:blockchain_utils/bip/address/p2pkh_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("bch p2pkh test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + params["net_ver"] = BytesUtils.fromHexString(params["net_ver"]); + + final z = BchP2PKHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = BchP2PKHAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/bch_p2pkh/test_vector.dart b/test/address/bch_p2pkh/test_vector.dart new file mode 100644 index 0000000..3d9da7f --- /dev/null +++ b/test/address/bch_p2pkh/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "03109285de2c13e86379c3626b3b8935b3d1033bc88e294a094dfd61086501525a", + "address": "bchtest:qpf29h80q4kzprl84jmwhf9du3jsu2tvw509nqz5cy", + "decode": "52a2dcef056c208fe7acb6eba4ade4650e296c75", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03b387fdcd526c72aaa0631d2ebdc0d584da6c0d6ff7b471f2605ce65d8964482d", + "address": "bitcoincash:qp7ps3x5k2dslw25rmgk89zfpywxj4yjkvyz09t2qm", + "decode": "7c1844d4b29b0fb9541ed1639449091c695492b3", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "026fb23b09069ce156ee077df425ccecb60bd50bfc4a3be517413d2e2f9fecc54a", + "address": "bchtest:qrss79kdht7thacfzdzqsjvwnx5cx7y8wqgjasp5xe", + "decode": "e10f16cdbafcbbf709134408498e99a983788770", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03660663e4d472c22bda8e8cdf666b839d3c4bfcda1536bf011c7f35078d08e638", + "address": "bitcoincash:qqcxlm6zehp0x2uufutgle9hc6vn4y33xg5gnmdv38", + "decode": "306fef42cdc2f32b9c4f168fe4b7c6993a923132", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02509d659578ac43bca0c7b57b86b951a67ea2a1fc3f3f96fff2b9769db51cf7f0", + "address": "bchtest:qztfs92shgk45u2yjh4yjyvay3fj43l93uh9lgk8ay", + "decode": "96981550ba2d5a714495ea49119d24532ac7e58f", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "0395d1651d48838823f89e7d1195cfce8ae1b4d1f7ec5cede506ef06d42c1b032a", + "address": "bitcoincash:qpqvcm2amtjuy5z2cr7wk3vwefzhmv4c5c7zn58227", + "decode": "40cc6d5ddae5c2504ac0fceb458eca457db2b8a6", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "021d539f92ecbfed623511ebba42012edb1105d9833af03282d95b5399c76700ef", + "address": "bitcoincash:qr2n8hq8mjv36vujv6axv7rt4e0xl8quwcemxy4xla", + "decode": "d533dc07dc991d339266ba66786bae5e6f9c1c76", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "027df4e181b0c361a1681e4935a543a87c7f894b0f31a1ca5053469f5b48c07491", + "address": "bchtest:qzrwdz64xx28w038s2dcxf4shsqrzlv9hvklehtgxg", + "decode": "86e68b553194773e27829b8326b0bc00317d85bb", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "021eb6980a142391d05782deaaac06512afddf8f10f7e43beb7cbf767d2e84321e", + "address": "bchtest:qr0sdp77y9rxavhnlh4ejehxv2yt3c3s8s865smgxz", + "decode": "df0687de21466eb2f3fdeb9966e66288b8e2303c", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "0368a2de2340f78caa2cc69e01a475a2e50ded4a9d68c566b46d05e3b28006b0e1", + "address": "bitcoincash:qpgkytzkp8vhydzxmr7sdvdqz9y4ddafnchjq5w45q", + "decode": "51622c5609d9723446d8fd06b1a0114956b7a99e", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "03f82304c959359a92dc5c10522792f09fe7aeb4b6e7372d94731c6f289619f995", + "address": "bchtest:qqa8d4tqnqe4fszu9zng7c3q69vr033sryfcu8tjhu", + "decode": "3a76d560983354c05c28a68f6220d15837c63019", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03e134c7e2fdabafda2dd60885b4a124303a0cf95d4794f672e30a30632256a311", + "address": "bitcoincash:qq7g75u40phtcu0vt2xquhr9de4z2p8ctukeqfgxrx", + "decode": "3c8f5395786ebc71ec5a8c0e5c656e6a2504f85f", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "039943e825caf52429ece9abfb1c5b16bafc18a913d663ee1c60a565ed073329e2", + "address": "bitcoincash:qr5atmnyy62nd089srd8zxy2t0ehmy32ycmywc0e84", + "decode": "e9d5ee64269536bce580da71188a5bf37d922a26", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02f2d99f97f4ecb6f2d21c067d03d2d29f262a60cb719618a2667c57283644401f", + "address": "bitcoincash:qzf4dre3wlfthltxvlusufannz0k95t7xydvcs4gmy", + "decode": "93568f3177d2bbfd6667f90e27b3989f62d17e31", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "031c7aaa93102a6780d1a3a5ebf03b5d06412d4b2341b1741c4b865f9964ba7296", + "address": "bitcoincash:qqmyvnvkwmrt0h69s8w8mj6jupkdla634cnrysflxx", + "decode": "36464d9676c6b7df4581dc7dcb52e06cdff751ae", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02f66ee42b5d4464d2d619e388c2c5e3b5aa450cf670ecb4674b5cb76b1e3939dc", + "address": "bchtest:qpygv3gr8meph5w7rv5cd09lmdgw9flzns4n6mwmdv", + "decode": "488645033ef21bd1de1b2986bcbfdb50e2a7e29c", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "023c1893ddce2856fb5d92ae0d5481dc9ae30f1c34cd178103bdfe65c4aed6c7d9", + "address": "bchtest:qz92m2nqp37rwk74gezhshc90cfxfn769q8hsgjjsa", + "decode": "8aadaa600c7c375bd54645785f057e1264cfda28", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "027ad748912c9d92f8945d273875c165c2b2d8a4097ef126d34f55806104fff77b", + "address": "bchtest:qq6u5xa4k0e3kxju97luflgfpa5uqaz4du9xwcda2a", + "decode": "35ca1bb5b3f31b1a5c2fbfc4fd090f69c074556f", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "0373617fc796a481c40713d14c9d09900419d2fa00d11abb87867e3477575f2d23", + "address": "bitcoincash:qpdg3r48jdgygghyup60afjx0j7ymaxt9ygdqkm9k9", + "decode": "5a888ea793504422e4e074fea6467cbc4df4cb29", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02c57cf6e5bca5f80b5da715a50ca00816b31ccb5923b58db32958dcc80469dfca", + "address": "bitcoincash:qpg9mycp4av50hxtf7guwgdyp00a0f3rgsyqyjcwu4", + "decode": "505d9301af5947dccb4f91c721a40bdfd7a62344", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "03a048f0282291a0f722416c5212cda766e071befdd0dbe821e990d54d703cdcbe", + "address": "bitcoincash:qz2c7z3u76hvzjpc6ua0nn7n8guwpm4mecsuwfn3kt", + "decode": "958f0a3cf6aec14838d73af9cfd33a38e0eebbce", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "028a2ac0c6169730f730d274f6e3b31a8d0b7ad9388cce7898f17e33f6485c5159", + "address": "bitcoincash:qpuha3g2ll0tn0eh2v42ruz2p8v655hk85cdluerfr", + "decode": "797ec50affdeb9bf37532aa1f04a09d9aa52f63d", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02addf94dc46ac1ddcc307d0bda589b11cdb31a0e7d6c69db13df96c508e35d4ca", + "address": "bchtest:qqxqz8uc7df499anf7z7glrcq6rp09v8acgafkvjpx", + "decode": "0c011f98f3535297b34f85e47c780686179587ee", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03cdbda4f98d51b81fdf306f2830062aad759c5f330b0f8ea6036d5489142fc182", + "address": "bchtest:qp0yxyqcxar84kt306vh3jvsdad3c4eq7yl2tnfsav", + "decode": "5e43101837467ad9717e9978c9906f5b1c5720f1", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "033e4fbe9a0caeb553f80c3cb19404cd94ed843b2839b1cb284d012e94b3d1b9bb", + "address": "bchtest:qq0dzzc8uft37ssjmu0d0ykzx6rp43f08cq9f22w4a", + "decode": "1ed10b07e2571f4212df1ed792c236861ac52f3e", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03631ed6d3d8e56c58d58da09fdb515718ce18b4ac3049355a2eb85a4028762671", + "address": "bchtest:qr5cfxx6qc69jzx8fm2r4uzyx9ypfku4yuuavzu67w", + "decode": "e98498da06345908c74ed43af044314814db9527", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03af460b75705a46f5c485462089b4b48de599662906ce1efe3093dda8c965393b", + "address": "bchtest:qqn557svcy2xmr8lsg8a7chzxcj09jhf8gk66pn5uz", + "decode": "274a7a0cc1146d8cff820fdf62e23624f2cae93a", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03e0d95923b40d0d9cfd0a8ceab70fc41384d9411c982aac888fd9cd28d05444f1", + "address": "bchtest:qrhv0cw6cyl4z30j2fwq7t2nfpnn9qt56ud3755snt", + "decode": "eec7e1dac13f5145f2525c0f2d534867328174d7", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "0316b8bd5072361f8dee90f690e6e1d52e7290307c25cbfe0a135c5d4398b855d9", + "address": "bitcoincash:qrr523daz0sngjvfny5zs4ddw79e3meeauwuzkhz3v", + "decode": "c74545bd13e134498999282855ad778b98ef39ef", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02b6532f2186c40b4c7e4861ce36089a8d19261a22e9c580df2b5b117edcdae2c7", + "address": "bchtest:qzd30t50tcdg6acngcxq0qfyplg3xwkwrvrpj84r5l", + "decode": "9b17ae8f5e1a8d7713460c0781240fd1133ace1b", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03d3356e5c6aecdb4fd9896a119c656da6849bc79e282d2a20294d1f3924a07a89", + "address": "bitcoincash:qp80fvjyx86r7r9fyewsk3xtxh2sp3mlhqs6c30t2e", + "decode": "4ef4b24431f43f0ca9265d0b44cb35d500c77fb8", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "03763f99284faf3686771144e214e571e0920bcd1a1da3aea180be48aad507f1c6", + "address": "bitcoincash:qq094h6md3g5vzuzjh9wrg53esh0mc29f5frlszkxs", + "decode": "1e5adf5b6c51460b8295cae1a291cc2efde1454d", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02213e732b379a466b80f64aea2c6ad90ac6275b94adde182c20eaa6d21083799c", + "address": "bitcoincash:qqazw4e4xhzkywkdrfnerpwl7hqgg5atgy3ffv62z8", + "decode": "3a27573535c5623acd1a679185dff5c08453ab41", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "024703ff52171ca6799f4f9d0ed3119394a0567cbfc9e2029597a55b3b9816e066", + "address": "bitcoincash:qzqejrlzch7dpw4k6tf8dr53ktuqptw3uvw8tfaf8e", + "decode": "81990fe2c5fcd0bab6d2d2768e91b2f800add1e3", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "028e56650d22fda15275daa19ae3b55eb39265d9e4e4f8cdd49b29e97306cad8f2", + "address": "bchtest:qpmhjedrc2kqey2nueyvnhehxwe989vznctsynswhy", + "decode": "777965a3c2ac0c9153e648c9df3733b25395829e", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "0206a1c86f630b34760e3c90130d3aeb8b859df36f094755aae0784837a4e835c9", + "address": "bitcoincash:qrxqzwqlzqm2eygyle05ps88lz99x2gnxv539vl5pj", + "decode": "cc01381f1036ac9104fe5f40c0e7f88a53291333", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "03ec9b60926f4463453c886026af77dabfd5db3dc955fa793d32d8a525c6f6d05f", + "address": "bchtest:qqkr4r2j0vcnh0hgklfzwk8f8tnycar7ugv2v3dqdm", + "decode": "2c3a8d527b313bbee8b7d22758e93ae64c747ee2", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "030d91049b8ffd27933a23336fd89b2dbccedab9672b0ce2c499660139b2321056", + "address": "bchtest:qrjwyfrs7xn4lza05kquepk5jpm87xd7g5cfnh60r4", + "decode": "e4e22470f1a75f8bafa581cc86d490767f19be45", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03cd8f9c38c413581986f53691e02505cc5a05c7a4f33bf345b08945b4f35c6150", + "address": "bchtest:qzeyg8ve260ewag2j7yysyn0u8ac40rr0qcvacg34q", + "decode": "b2441d99569f97750a978848126fe1fb8abc6378", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "033a3e0766d38096659902f549e1e3ddbcbcbb6ef5681f9612bb6873566316d539", + "address": "bchtest:qrzrtsy43c0lc2quucz4xa3p5xwe54d8gggc9acyy6", + "decode": "c435c0958e1ffc281ce605537621a19d9a55a742", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03c76411d6212d7a1d8d9396a072b1cd6d19155850579cc8f7d1956929ec2d6d39", + "address": "bchtest:qrycx2revjjw6ley966kkflwh7hpvpyrvyst8qlryd", + "decode": "c983287964a4ed7f242eb56b27eebfae16048361", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "03b7c1fa9d3764ad4590168140b5aadbc8beea42eacfb09360cf35e8a1698a6b25", + "address": "bchtest:qzqmpg5pfc9v7a69wda76jf6pxryhtxvgsluhgdfku", + "decode": "81b0a2814e0acf7745737bed493a09864baccc44", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "037e82ba351548f0d58b3b47ad35bf1472dba73181437f965d1308e4ba3ea162c1", + "address": "bchtest:qrtca0xdd570n9fjqca3rshyv9q9825ysuuw7g9n6u", + "decode": "d78ebccd6d3cf99532063b11c2e4614053aa8487", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "02b89b386a2e179ef6373250f31bfe225584393c2bfc4cb30632b24a27702c57d6", + "address": "bitcoincash:qp46pqpcxrk8sv75mewjmryuaudph2s32vnq7h2rn4", + "decode": "6ba0803830ec7833d4de5d2d8c9cef1a1baa1153", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "03197c5651d12e35a2e630659b7d9f4038e58de288c37a4f6654bb9270ecbbe46f", + "address": "bitcoincash:qptkmdaxavulkf3x72fa0v0fu2zz24c43ye0gf42f7", + "decode": "576db7a6eb39fb2626f293d7b1e9e28425571589", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "032b5bcb9d5cc8d97dae44eba9fe32d5a4aa93132f230eb1fbc8f46018ee9b4218", + "address": "bitcoincash:qr6hachh00zymnhdu37qwnzkl9sk8d8lgqfw9de85a", + "decode": "f57ee2f77bc44dceede47c074c56f96163b4ff40", + "params": {"hrp": "bitcoincash", "net_ver": "00"} + }, + { + "public": + "02815d3070abc131737a3f027f62d5a13934370602be3d657d91e956a3337c338a", + "address": "bchtest:qpqn6jfu4s4vxf0qhw8lzxdmxfqu2rhd6sfdudkuwn", + "decode": "413d493cac2ac325e0bb8ff119bb3241c50eedd4", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "035487d97ddc944e941c13002371182ac9cbaa1f3e226e54d45e8475d81b7ad776", + "address": "bchtest:qrz7dqj65e74v0h4g50tq3wugnswx8dh3s247447zv", + "decode": "c5e6825aa67d563ef5451eb045dc44e0e31db78c", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "02e51c555aa26e623a398b947479d3aa665d7b245c0e762a28b810577ed2ef7405", + "address": "bchtest:qzzkjn6n7jwwqzv8f0tmmpntwg687hxukyfcsn4tal", + "decode": "85694f53f49ce009874bd7bd866b72347f5cdcb1", + "params": {"hrp": "bchtest", "net_ver": "00"} + }, + { + "public": + "033f7a5fd0a9137048c7ad9ecd68b2e8c5c626e18b14d8b66911423492f365c863", + "address": "bchtest:qpr7enh0r0kfgu3y3j8a64dvfuwcqvv2dgzngfn62d", + "decode": "47ecceef1bec9472248c8fdd55ac4f1d80318a6a", + "params": {"hrp": "bchtest", "net_ver": "00"} + } +]; diff --git a/test/address/bch_p2sh/bch_p2sh_test.dart b/test/address/bch_p2sh/bch_p2sh_test.dart new file mode 100644 index 0000000..81c5c60 --- /dev/null +++ b/test/address/bch_p2sh/bch_p2sh_test.dart @@ -0,0 +1,21 @@ +import 'package:blockchain_utils/bip/address/p2sh_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("bch address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + params["net_ver"] = BytesUtils.fromHexString(params["net_ver"]); + + final z = BchP2SHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = BchP2SHAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/bch_p2sh/test_vector.dart b/test/address/bch_p2sh/test_vector.dart new file mode 100644 index 0000000..a37f5b1 --- /dev/null +++ b/test/address/bch_p2sh/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "037ace6824c6476b420d6375f344c04e0964e2e97d7273d12b9f19ab141eaa85a8", + "address": "bitcoincash:ppn87szlp75e3f5akyjlkkwp7qn93w5yx5mvzwlu3y", + "decode": "667f405f0fa998a69db125fb59c1f02658ba8435", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0277844c5d1cdab2a286addaa740b07e3c47f06ce9dc7f1aea627620ebe69ce7a8", + "address": "bchtest:pzq56ujqs245j5fclyyj94veuxfmy8dl8u4qqvjvpx", + "decode": "814d724082ab495138f90922d599e193b21dbf3f", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03a8cb1267d5c8af3f6ac1bfc3374b78cea8f58485a96a71fb236a52ba3837631b", + "address": "bchtest:ppr7jtgg2lsqhanzlrhjpl69wk5hlp342s7fne8cv0", + "decode": "47e92d0857e00bf662f8ef20ff4575a97f863554", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "027301674f1622008abc09e3c77de3e4430f4453903a446d5cff22626eaf02b3b1", + "address": "bitcoincash:pr429p7glnngm9y7upy30ne83ns8xgqh0q7umrqgkq", + "decode": "eaa287c8fce68d949ee04917cf278ce073201778", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "022c862216cf069c6b5a1d5e11604d83e76554aafc4582cb886e9fe5036c8b7ea6", + "address": "bitcoincash:pqrmmyt739kg52sar2vhkn2g0y2x5yxm3vj6f8ht0z", + "decode": "07bd917e896c8a2a1d1a997b4d4879146a10db8b", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "022f9e7344d01acde9fe7d0d22e0ccf4ba1a7c667f719371d9ebfd420084fad85b", + "address": "bchtest:prgku3ns5cdsca23dknjsvfq7gketpcurqsu8w9rqs", + "decode": "d16e4670a61b0c75516da7283120f22d95871c18", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03a8857149b6fd550962aa77611555fc3eb12bbcdb5a790307608eebc23c6eb2cc", + "address": "bchtest:prpv6xsadcaywys6kya708qxf9d3zmdqyquy2gzemk", + "decode": "c2cd1a1d6e3a47121ab13be79c06495b116da020", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "024e3b13325e05d94056adae5febdcf3a3ac119c79d5007c13a7483232077bfd15", + "address": "bchtest:ppjrjp2gt3gccasjgrna5ew3h0jd86e525x77xeehk", + "decode": "643905485c518c761240e7da65d1bbe4d3eb3455", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02dc59742000de4d55d4fedda0290228a6c3340e9427c4afbaa02d736d7fad3272", + "address": "bchtest:ppwwpm7dj0l5f653mshadnm4un0st9h78scrsm3hl5", + "decode": "5ce0efcd93ff44ea91dc2fd6cf75e4df0596fe3c", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "027745d3ce9677b2da51cca69a64caea8f684ddd11190418f0622fc968e2494133", + "address": "bchtest:ppg326d3wmqf8aawdj0yw7ucpw6sa8rl4qv2h5dmf6", + "decode": "511569b176c093f7ae6c9e477b980bb50e9c7fa8", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "025148ba98da6da6133128e15144e3acd4f2e76cfcf19f1c62c2912f2a52417b62", + "address": "bitcoincash:ppngxlg7xj4wjgccv02ara7afhwq2slqls4zanh4fm", + "decode": "66837d1e34aae9231863d5d1f7dd4ddc0543e0fc", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0241acdbf99a0ec15094c9dfa37bd9be4ebfb6ed691d6e9f00d06a710a8c43f68e", + "address": "bitcoincash:pqqjcuhmdgmpr82z34vpjqt0ghapf3qc5sw4cquwzf", + "decode": "012c72fb6a36119d428d5819016f45fa14c418a4", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "022e7654f45e0b803fb56d191107a097068320fb828d4f3b39c1be3747f0f4376f", + "address": "bitcoincash:pqkwh9dr5yqavjhet92ywqe0rntdstk73qapl3tw9a", + "decode": "2ceb95a3a101d64af9595447032f1cd6d82ede88", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0207061f0745b8c761fafec55ccbcf3a3afd9c5769b0459959b3148ecafe207449", + "address": "bitcoincash:pr996v0xsu5n383lwcke73ryqdr5v6yafvgdtx00v0", + "decode": "ca5d31e68729389e3f762d9f4464034746689d4b", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "03e9fa60f77be6f0581ae748dad995b9e04f095d51ff352e439d9d7323a5baa423", + "address": "bitcoincash:ppt73gz4a7kprxzh8fqu6tnt5wen5zy9wgx4ay38xd", + "decode": "57e8a055efac1198573a41cd2e6ba3b33a088572", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "025fc0257a2fe3e48c9898ce4fa1d46ac8711e1643e59893816788c08456f03795", + "address": "bchtest:ppyd497un25l27y3nnqahnmfhy9wscld5yqvzwf8df", + "decode": "48da97dc9aa9f578919cc1dbcf69b90ae863eda1", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02d7f13b7a6b9f7324baf59b344ea224690b7d2cd4157aa5659484379cdf801782", + "address": "bchtest:ppujnylr4mkmrpghc3xwxd50cg07ruv8judmmcxh79", + "decode": "792993e3aeedb18517c44ce3368fc21fe1f18797", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03cff703b7b7ad87661e68ece245e704a7c9d4a4728a2bf323521a52040c72f898", + "address": "bchtest:ppkqca5ucuswud2t4mt88v65c86ws969ggkfa6ynkx", + "decode": "6c0c769cc720ee354baed673b354c1f4e8174542", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "0271125b2594124f56bd7f31e19130f05175744b0658f6b84c6d38adc93b2129b6", + "address": "bitcoincash:prv4lwhzw7dm5h8q9wulpxg3argz5yp48u45jru9ge", + "decode": "d95fbae2779bba5ce02bb9f09911e8d02a10353f", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "03dedd0ac09e48a5dfeef0d4e5d489d265e623dac5a8514d51aff880ac6ca50245", + "address": "bchtest:pqtdpu6xzptawh5s8ml6cdzxjfwg9nwptyun67nr8c", + "decode": "16d0f3461057d75e903effac3446925c82cdc159", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02ddb29898fe1fde6c91a33d7a86b0353d0227ebf39199c672e061028b4c30a3d1", + "address": "bchtest:pqmemldll9jysj5h6vmjvxxq63unwfl925axxgpym3", + "decode": "379dfdbff964484a97d3372618c0d4793727e555", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03ba76b42de668fb5eca3d2552ea4f87c253e0e60a6965954c9b2b05f79ffba126", + "address": "bchtest:pzs4jmhh8d2nxzvv9ma2qgq5e2z7tmdhyqztftxf6f", + "decode": "a1596ef73b5533098c2efaa02014ca85e5edb720", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "0251bcb37d146e311fcab90753aab00961d2068648e44b932351f16cfe476b92fb", + "address": "bitcoincash:pr86jy09uq4crter7rw8nslw695klt38ese0d42yqw", + "decode": "cfa911e5e02b81af23f0dc79c3eed1696fae27cc", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0289205261946570c46884375aef80a7b460b79b4dbde4cf862833b753909601e9", + "address": "bitcoincash:pzssap4rz0skmw2cx4ldfefftyx2akyapu5tvw3m9t", + "decode": "a10e86a313e16db958357ed4e529590caed89d0f", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "03ca28fe954bc0026418295d7660e2b2b5a48d74c0aa20cba6a818faa085e6ba17", + "address": "bitcoincash:ppxnmjawmg88chu9k49uezpfh9zmtj6n9qnc5tqm27", + "decode": "4d3dcbaeda0e7c5f85b54bcc8829b945b5cb5328", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "02f30444d1fa463adaa2f56bf3300bfe6e5b47350c10263ab3b8c111f9806a21e4", + "address": "bchtest:pqk4e6k8609k7h8wsl7rtelje6qrwkrtmc5gj9krse", + "decode": "2d5ceac7d3cb6f5cee87fc35e7f2ce8037586bde", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "0306ace5858994dba4ea033a5e58184378fc74479e15b033b72a1aa07411ee0acc", + "address": "bchtest:pq5ke933tmlcue7nlrurfhqpgxfde4lz5unane5ve2", + "decode": "296c96315eff8e67d3f8f834dc014192dcd7e2a7", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02967b6d02ba003b17974997c833e7cfddf01d8108dfefa5dd305237deda305a03", + "address": "bitcoincash:pppc0eqwywc3rgaxf0vvq9y7ed276xhgxsvvfmxkxz", + "decode": "4387e40e23b111a3a64bd8c0149ecb55ed1ae834", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "02fde5e4269fc335bfc486f5067b68ee5e00ed682b54ac7fe91d4d08ba17c0f17f", + "address": "bchtest:pzlnnvh0gfzn3sday5l0zxnlv7q469lqcy624x3z6h", + "decode": "bf39b2ef424538c1bd253ef11a7f67815d17e0c1", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "039997b8a83e0e3a42c783c801f9b9fbcac345b6149a0e28ba0df5e3941a026b64", + "address": "bchtest:pqw8e0xyvp8gnpt0swu2z9v87z7lwz7fyvs6jppw52", + "decode": "1c7cbcc4604e89856f83b8a11587f0bdf70bc923", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02b2015dbdfabca3aa427f0228ae8e45daadbb90233d14f8de41a7182c8e91faed", + "address": "bchtest:pqxdmm8u2qrdh73cxt7t97pf5dqvcgpqkgetk7l3kg", + "decode": "0cddecfc5006dbfa3832fcb2f829a340cc2020b2", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02aac8c244db86747aea25a41c446ba822d51b494a71be39602366c12d84d52b14", + "address": "bchtest:pqar3cujmjn05kcdu2qv3dvm3g9m5tqz2qkmlqmeu4", + "decode": "3a38e392dca6fa5b0de280c8b59b8a0bba2c0250", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "0315549ca7ac094fc7b844c55aae2db7cdb061671db6133adaf0a23b107945aacb", + "address": "bitcoincash:ppz50cwxyu5xfwl9ez2jferu8gc45fe6nqj2a5et20", + "decode": "4547e1c6272864bbe5c89524e47c3a315a273a98", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "037404bea9f9699352290d469618e879bc098fdc3dcb3ccf98fb990d6a517350e6", + "address": "bitcoincash:pp6wdsvyxj4c5cnzetgsqvpdhy4lnnl6eumhr08jlr", + "decode": "74e6c18434ab8a6262cad100302db92bf9cffacf", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "02e13718715961c0b9c555a0d6142ecd006b85da2533e9becbd2d241ff4a0b1d1f", + "address": "bchtest:pr2zp774p9yef47kxh6v0qp965rhnwyrcyaur3ayu8", + "decode": "d420fbd5094994d7d635f4c78025d50779b883c1", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02a04d0f95465e223040f59c243e64e523ccafb09eabd706d296c04bce2824c6d0", + "address": "bchtest:pqj44l8xw7r7vw8y8zaxc37yrtupzx4fn5ps734y5l", + "decode": "255afce67787e638e438ba6c47c41af8111aa99d", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02acf3427afd6fb9cbc12bd325dac0be314f19a73772c9b9d9b4af195be33bc053", + "address": "bchtest:pptg2nu88z2pspdp4frdan6aphk9mkxs3c2nvugh4a", + "decode": "56854f8738941805a1aa46decf5d0dec5dd8d08e", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "02c658bef0afaf19c2be3934419379301375d711ee5b7546ce3b0636408b6b7b25", + "address": "bitcoincash:przw7z09kehe0222ue7gnwstvqv4mtv8rvt5r444lv", + "decode": "c4ef09e5b66f97a94ae67c89ba0b60195dad871b", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0343436614ac7e1eea9e43186657b1f6db6ad6f48c6a1242fca7764bfa68d7825d", + "address": "bitcoincash:pzcmzvkc9xlwksw48dcqwk3nkqn8ggz9fsksp30cdj", + "decode": "b1b132d829beeb41d53b70075a33b0267420454c", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "027ea39c8bdd5d652a99e520d064babc68b949ea620808426b36dc2dfee15ec707", + "address": "bchtest:pr0yrtglrr0wva05et9t4qv6cjat6l5hryunzrrg3h", + "decode": "de41ad1f18dee675f4cacaba819ac4babd7e9719", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03be0ad04cef314d4d965fa2f42f16fd343b1de368e0e4caea97aabce8dfcac470", + "address": "bitcoincash:pzeu2zd04745e3kn2jq4g40nfsp6yh4knqc5ypt23v", + "decode": "b3c509afafab4cc6d354815455f34c03a25eb698", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0204db99c3054f53fb4cca8dbb6e149f423a8492f57f0ca8727047bc568c76a4ff", + "address": "bchtest:pq5e3ncgenl5kmy934mr83smnn3e72lr4vls594chg", + "decode": "2998cf08ccff4b6c858d7633c61b9ce39f2be3ab", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03f4fa03a62131a06c2f3df80e9b272c2d627c79d4c0b77da7ccaa63deea3a4d8c", + "address": "bitcoincash:pzssekcjvs8967qn3ggvp4qmwdjh6uzp8gz78w3m24", + "decode": "a10cdb12640e5d78138a10c0d41b73657d70413a", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "03f91a884715c1b3b76eaae97bdc58a84a00df02405d2c92fbac041a076c1ddb77", + "address": "bitcoincash:prdthutdzche4qp7klxky463rdn287kdsswte8zdy4", + "decode": "dabbf16d162f9a803eb7cd6257511b66a3facd84", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + }, + { + "public": + "0291dfdf32791e8e21f55ecab0672d2f21b34d3a1c56c8e4f107acced3341c9c9a", + "address": "bchtest:pq2d63n2rvjwwsmfj6gavt3vjzpd3g46xgcu4tyyz5", + "decode": "14dd466a1b24e743699691d62e2c9082d8a2ba32", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03e916703fb1f0f4f9112816d687f164fb9c78eb2f9df0da803719eec3bcf50347", + "address": "bchtest:pzydhdyn0nggf90mwdqlq7l655gx3pq9agej8xyy3u", + "decode": "88dbb4937cd08495fb7341f07bfaa510688405ea", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "030f5fafdb0a6261c97c6bf83ebcedf312022652dda2873cd01119b776ad98d675", + "address": "bchtest:ppa8y54kpt4m35eyhx8esfx604cjnvjtxqrk4cdutj", + "decode": "7a7252b60aebb8d324b98f9824da7d7129b24b30", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "038ccc6ee0c086b4feca6dcfacf4af9739fce8feca7b37a153c2df42297f81f9ef", + "address": "bchtest:pqhcyucg27y3l3rq6wuzfv8s0qzk0chp9swqgsmr2x", + "decode": "2f82730857891fc460d3b824b0f0780567e2e12c", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "03b2f928d447e091491f884175970403fb0e3968d31b0dba7d87ad5e385401ba3d", + "address": "bchtest:pzhlq9mqytt8cpw0sf60q4zv63e4avx8puquxlp5vp", + "decode": "aff0176022d67c05cf8274f0544cd4735eb0c70f", + "params": {"hrp": "bchtest", "net_ver": "08"} + }, + { + "public": + "035198c765569a279c01327e50eec64db06c08094963431368adee464039f33910", + "address": "bitcoincash:pq6ylczkdxfe7lkaa53lkfs8pfm8ms8nqurzmzc22p", + "decode": "344fe05669939f7edded23fb26070a767dc0f307", + "params": {"hrp": "bitcoincash", "net_ver": "08"} + } +]; diff --git a/test/address/egld/egld_test.dart b/test/address/egld/egld_test.dart new file mode 100644 index 0000000..cda242b --- /dev/null +++ b/test/address/egld/egld_test.dart @@ -0,0 +1,20 @@ +import 'package:blockchain_utils/bip/address/egld_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("egld address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = EgldAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = EgldAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/egld/test_vector.dart b/test/address/egld/test_vector.dart new file mode 100644 index 0000000..9bcfeac --- /dev/null +++ b/test/address/egld/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "cd4f76c78ecfc32b44046e4c79c38f492234431d051ad13d60013ed5839223a8", + "address": "erd1e48hd3uwelpjk3qydex8nsu0fy3rgscaq5ddz0tqqyldtqujyw5q8qr682", + "decode": + "cd4f76c78ecfc32b44046e4c79c38f492234431d051ad13d60013ed5839223a8", + "params": {} + }, + { + "public": + "23928fe823d4359ff4d002fe188fa0f58ff860114a4fe456a810ea3f9590cd0c", + "address": "erd1ywfgl6pr6s6elaxsqtlp3raq7k8lscq3ff87g44gzr4rl9vse5xq3hzawe", + "decode": + "23928fe823d4359ff4d002fe188fa0f58ff860114a4fe456a810ea3f9590cd0c", + "params": {} + }, + { + "public": + "4abcca53fd9d236600181407e5deeb72dcfe4d8eed420d12194014433dd2483a", + "address": "erd1f27v55lan53kvqqczsr7thhtwtw0unvwa4pq6ysegq2yx0wjfqaqplwr3x", + "decode": + "4abcca53fd9d236600181407e5deeb72dcfe4d8eed420d12194014433dd2483a", + "params": {} + }, + { + "public": + "966406f8cd61300367112d795195b1ed77e90c90a2df12435cbf182696b9d133", + "address": "erd1jejqd7xdvycqxec394u4r9d3a4m7jrys5t03ys6uhuvzd94e6yes7tkp0q", + "decode": + "966406f8cd61300367112d795195b1ed77e90c90a2df12435cbf182696b9d133", + "params": {} + }, + { + "public": + "9d6123d778b159d23e376120a8f9482c4be56bd0cf84e168bfd0879c5ffffc75", + "address": "erd1n4sj84mck9vay03hvys2372g9397267se7zwz69l6zrechlll36srxt4dk", + "decode": + "9d6123d778b159d23e376120a8f9482c4be56bd0cf84e168bfd0879c5ffffc75", + "params": {} + }, + { + "public": + "632d7fbf334e837e54b1d7a6a3811b5ccd55c73d4af4cfbf2da2b5cc5acc8ace", + "address": "erd1vvkhl0enf6phu49367n28qgmtnx4t3eaft6vl0ed526uckkv3t8qcz0fus", + "decode": + "632d7fbf334e837e54b1d7a6a3811b5ccd55c73d4af4cfbf2da2b5cc5acc8ace", + "params": {} + }, + { + "public": + "2fc436b956838c63722159f2d6aa1b80616b2d70af5541752fa3b6615efdba58", + "address": "erd19lzrdw2kswxxxu3pt8edd2smspskktts4a25zaf05wmxzhhahfvqk56u2c", + "decode": + "2fc436b956838c63722159f2d6aa1b80616b2d70af5541752fa3b6615efdba58", + "params": {} + }, + { + "public": + "441b8ba30913a8c34f16df2bff51b79f39ac4338030ffee8fd0e0a187dece314", + "address": "erd1gsdchgcfzw5vxnckmu4l75dhnuu6csecqv8la68apc9psl0vuv2q8vvcu0", + "decode": + "441b8ba30913a8c34f16df2bff51b79f39ac4338030ffee8fd0e0a187dece314", + "params": {} + }, + { + "public": + "e0625f9c520487863eb73d1a424bacdd5ef5d874129f9f088091713034a9e3c3", + "address": "erd1up39l8zjqjrcv04h85dyyjavm400tkr5z20e7zyqj9cnqd9fu0ps4ltx2a", + "decode": + "e0625f9c520487863eb73d1a424bacdd5ef5d874129f9f088091713034a9e3c3", + "params": {} + }, + { + "public": + "acbd5b8741c16882d6217f0e7b4da96266dd578bd1e92e49c03a493d7d150027", + "address": "erd14j74hp6pc95g943p0u88kndfvfnd64ut685jujwq8fyn6lg4qqns0nz33s", + "decode": + "acbd5b8741c16882d6217f0e7b4da96266dd578bd1e92e49c03a493d7d150027", + "params": {} + }, + { + "public": + "e6e466ab5994386b94a7b5dc0f563117835b27845137d8066174c209cc5f8a46", + "address": "erd1umjxd26ejsuxh998khwq7433z7p4kfuy2ymaspnpwnpqnnzl3frq8phgmj", + "decode": + "e6e466ab5994386b94a7b5dc0f563117835b27845137d8066174c209cc5f8a46", + "params": {} + }, + { + "public": + "f65b8df6b8babc872be002de77cba4163604a21a08f5cc399be341b993a509d1", + "address": "erd17edcma4ch27gw2lqqt080jayzcmqfgs6pr6ucwvmudqmnya9p8gs7lls2m", + "decode": + "f65b8df6b8babc872be002de77cba4163604a21a08f5cc399be341b993a509d1", + "params": {} + }, + { + "public": + "3b30fd57cc1e7384bbf4b0cf854c8399961d56bc5642c7a2c0bdc4e3bd39f6b6", + "address": "erd18vc0647vreecfwl5kr8c2nyrnxtp644u2epv0gkqhhzw80fe76mq5k6gd9", + "decode": + "3b30fd57cc1e7384bbf4b0cf854c8399961d56bc5642c7a2c0bdc4e3bd39f6b6", + "params": {} + }, + { + "public": + "cd82054a83ad6cfa03f8b768d461204f94f91d4597947b7b43b1f0ba672a6aa3", + "address": "erd1ekpq2j5r44k05qlcka5dgcfqf720j829j728k76rk8ct5ee2d23skpqfr5", + "decode": + "cd82054a83ad6cfa03f8b768d461204f94f91d4597947b7b43b1f0ba672a6aa3", + "params": {} + }, + { + "public": + "e8124fd13836ddea7742e26579940ae51760c760758fca546ddeabf208e41001", + "address": "erd1aqfyl5fcxmw75a6zufjhn9q2u5tkp3mqwk8u54rdm64lyz8yzqqsgezdau", + "decode": + "e8124fd13836ddea7742e26579940ae51760c760758fca546ddeabf208e41001", + "params": {} + }, + { + "public": + "cd75e5e6ce2d87f40741e31ad10998ad6c31415b51f7c11e08287c2296a857b4", + "address": "erd1e467tekw9krlgp6puvddzzvc44krzs2m28muz8sg9p7z994g276qfd93wz", + "decode": + "cd75e5e6ce2d87f40741e31ad10998ad6c31415b51f7c11e08287c2296a857b4", + "params": {} + }, + { + "public": + "b7bc4165208e368251e93f7c3cc743a2c77a9da2cbcc0a3afeec9596ae2da269", + "address": "erd1k77yzefq3cmgy50f8a7re36r5trh48dze0xq5wh7aj2edt3d5f5sprj0jj", + "decode": + "b7bc4165208e368251e93f7c3cc743a2c77a9da2cbcc0a3afeec9596ae2da269", + "params": {} + }, + { + "public": + "00ef1c9a1e38cbe2739475e2696639983bec7e09a2746ecce47df31019d5822a", + "address": "erd1qrh3exs78r97yuu5wh3xje3enqa7clsf5f6xan8y0he3qxw4sg4q6ftpxd", + "decode": + "00ef1c9a1e38cbe2739475e2696639983bec7e09a2746ecce47df31019d5822a", + "params": {} + }, + { + "public": + "5b8e78fc648cc22d7b77d0af9d3ff362bd51fc1c41c02e9de732741e25c76e8d", + "address": "erd1tw883lry3npz67mh6zhe60lnv274rlqug8qza808xf6pufw8d6xs6347qd", + "decode": + "5b8e78fc648cc22d7b77d0af9d3ff362bd51fc1c41c02e9de732741e25c76e8d", + "params": {} + }, + { + "public": + "ce08ebd63b44869e1c46267f8a2ca4419833ac97e2f9edc444279ca689939421", + "address": "erd1ecywh43mgjrfu8zxyelc5t9ygxvr8tyhutu7m3zyy7w2dzvnjsss3zstgv", + "decode": + "ce08ebd63b44869e1c46267f8a2ca4419833ac97e2f9edc444279ca689939421", + "params": {} + }, + { + "public": + "457220f987488b87d41fbf4ec6cb3b1a9d1ef0d519910ed21d3eacb81aee4d4d", + "address": "erd1g4ezp7v8fz9c04qlha8vdjemr2w3aux4rxgsa5sa86ktsxhwf4xskmf427", + "decode": + "457220f987488b87d41fbf4ec6cb3b1a9d1ef0d519910ed21d3eacb81aee4d4d", + "params": {} + }, + { + "public": + "ea5c9e97c9481a68945a0cdfacc3b401aca71748183f8f4e40b248cd75c139c2", + "address": "erd1afwfa97ffqdx39z6pn06esa5qxk2w96grqlc7njqkfyv6awp88pq2z9w5k", + "decode": + "ea5c9e97c9481a68945a0cdfacc3b401aca71748183f8f4e40b248cd75c139c2", + "params": {} + }, + { + "public": + "6c027a476adda4c2fa65f35a3af89323380a4d747a5feb7627f784cb74a27822", + "address": "erd1dsp853m2mkjv97n97ddr47ynyvuq5nt50f07ka3877zvka9z0q3qgeg9ry", + "decode": + "6c027a476adda4c2fa65f35a3af89323380a4d747a5feb7627f784cb74a27822", + "params": {} + }, + { + "public": + "26b032f9c40dfdcd9aab8201ea6d11ff693066f2ed98d82789d430f99be9cc48", + "address": "erd1y6cr97wyph7umx4tsgq75mg3la5nqehjakvdsfuf6sc0nxlfe3yqj0e44r", + "decode": + "26b032f9c40dfdcd9aab8201ea6d11ff693066f2ed98d82789d430f99be9cc48", + "params": {} + }, + { + "public": + "e3e2406a1d33e50c72d6bbfc2022d3e361a0607a56bf9b677ab243f1360e30d8", + "address": "erd1u03yq6sax0jscukkh07zqgknuds6qcr626lekem6kfplzdswxrvqcx3g20", + "decode": + "e3e2406a1d33e50c72d6bbfc2022d3e361a0607a56bf9b677ab243f1360e30d8", + "params": {} + }, + { + "public": + "65b3aaba230f0e3c6c8e17ba8935b96e587c2f2a8c45f1127d271838566b9e49", + "address": "erd1vke64w3rpu8rcmywz7agjddedev8cte233zlzynayuvrs4ntneysk5wge2", + "decode": + "65b3aaba230f0e3c6c8e17ba8935b96e587c2f2a8c45f1127d271838566b9e49", + "params": {} + }, + { + "public": + "473ee5fa072d43c6a798c4a9714e6d2fc8a4a0f18220aaca09807e27484adc87", + "address": "erd1gulwt7s894pudfuccj5hznnd9ly2fg83sgs24jsfsplzwjz2mjrs8xj5v6", + "decode": + "473ee5fa072d43c6a798c4a9714e6d2fc8a4a0f18220aaca09807e27484adc87", + "params": {} + }, + { + "public": + "fd31daa0559701149dea2d7b49dd4aac4355e640cddf316def624d047c04a3a2", + "address": "erd1l5ca4gz4juq3f80294a5nh2243p4tejqeh0nzm00vfxsglqy5w3qrk9ava", + "decode": + "fd31daa0559701149dea2d7b49dd4aac4355e640cddf316def624d047c04a3a2", + "params": {} + }, + { + "public": + "50d13d3dfaccac8555dda2f1257c4c2a6731663ab2dae4b104691f11b3381bad", + "address": "erd12rgn6006ejkg24wa5tcj2lzv9fnnze36ktdwfvgydy03rvecrwkstf55h3", + "decode": + "50d13d3dfaccac8555dda2f1257c4c2a6731663ab2dae4b104691f11b3381bad", + "params": {} + }, + { + "public": + "6517ba1e33422b1d9c9ffbc3fb31c52ca7c5d95eb26395adb157c60fb5403ef8", + "address": "erd1v5tm583ngg43m8yll0plkvw99jnutk27kf3ettd32lrqld2q8muqcf7r8u", + "decode": + "6517ba1e33422b1d9c9ffbc3fb31c52ca7c5d95eb26395adb157c60fb5403ef8", + "params": {} + }, + { + "public": + "b8eb01078c4f85436e27e4aad579b7e22d6bb3e150a0e2ec0f70fca8aad17ed1", + "address": "erd1hr4szpuvf7z5xm38uj4d27dhugkkhvlp2zsw9mq0wr7232k30mgsdp48q8", + "decode": + "b8eb01078c4f85436e27e4aad579b7e22d6bb3e150a0e2ec0f70fca8aad17ed1", + "params": {} + }, + { + "public": + "0ea9b593737f3f032eceebdc137624f41ba6d4d419e5cb6512516743b3a7b8de", + "address": "erd1p65mtymn0ulsxtkwa0wpxa3y7sd6d4x5r8jukegj29n58va8hr0qy7n2ms", + "decode": + "0ea9b593737f3f032eceebdc137624f41ba6d4d419e5cb6512516743b3a7b8de", + "params": {} + }, + { + "public": + "a29ba3a4a0416d92b68fe83d72170d96f295a8c443fcbc4cf8591accdbe6f837", + "address": "erd152d68f9qg9ke9d50aq7hy9cdjmeft2xyg07tcn8ctydveklxlqmspa85wz", + "decode": + "a29ba3a4a0416d92b68fe83d72170d96f295a8c443fcbc4cf8591accdbe6f837", + "params": {} + }, + { + "public": + "b603aa568a50d7e90ebefe0024e5df600beee868c8f43ac7f896e72275cefb34", + "address": "erd1kcp654522rt7jr47lcqzfewlvq97a6rger6r43lcjmnjyawwlv6q3z3x74", + "decode": + "b603aa568a50d7e90ebefe0024e5df600beee868c8f43ac7f896e72275cefb34", + "params": {} + }, + { + "public": + "945d5e5e47a5e3e7f06393aec5fd053c44fd80d42ad89d9c024937b1a6a11bc6", + "address": "erd1j3w4uhj85h370urrjwhvtlg983z0mqx59tvfm8qzfymmrf4pr0rqwnfxhq", + "decode": + "945d5e5e47a5e3e7f06393aec5fd053c44fd80d42ad89d9c024937b1a6a11bc6", + "params": {} + }, + { + "public": + "b5dab4c3e7bcd1455d32703c4eed92d3f43ca8baf01a676f69a6b3c28ce19d58", + "address": "erd1khdtfsl8hng52hfjwq7yamvj606re2967qdxwmmf56eu9r8pn4vq0tl2wf", + "decode": + "b5dab4c3e7bcd1455d32703c4eed92d3f43ca8baf01a676f69a6b3c28ce19d58", + "params": {} + }, + { + "public": + "fc18d39001db178561ecd42680924fc8017a96343ce53618b105022e4c6028f6", + "address": "erd1lsvd8yqpmvtc2c0v6sngpyj0eqqh49358njnvx93q5pzunrq9rmqa3mhdf", + "decode": + "fc18d39001db178561ecd42680924fc8017a96343ce53618b105022e4c6028f6", + "params": {} + }, + { + "public": + "4184aa80a66f836a03b2a519c468edf583dd21b1e08d7e95bee3c84f2192195c", + "address": "erd1gxz24q9xd7pk5qaj55vug68d7kpa6gd3uzxha9d7u0yy7gvjr9wqsmcxzl", + "decode": + "4184aa80a66f836a03b2a519c468edf583dd21b1e08d7e95bee3c84f2192195c", + "params": {} + }, + { + "public": + "4fe363204fabf7d479811b6f08f3e4bbd6769e1038e9ad2073e53ad3380cce28", + "address": "erd1fl3kxgz040mag7vprdhs3ulyh0t8d8ss8r566grnu5adxwqvec5qn3d78v", + "decode": + "4fe363204fabf7d479811b6f08f3e4bbd6769e1038e9ad2073e53ad3380cce28", + "params": {} + }, + { + "public": + "9415f020073dccefed105ae88e5c584c1abb1a4cab9e34ce8a51f5b422886676", + "address": "erd1js2lqgq88hxwlmgstt5guhzcfsdtkxjv4w0rfn52286mgg5gvemqgwxjw2", + "decode": + "9415f020073dccefed105ae88e5c584c1abb1a4cab9e34ce8a51f5b422886676", + "params": {} + }, + { + "public": + "1757a3c9f8084ec6ce48403fb8ec81f3c60914060c6d4b634740d69eea9a0706", + "address": "erd1zat68j0cpp8vdnjggqlm3myp70rqj9qxp3k5kc68grtfa656qurqkpa6nm", + "decode": + "1757a3c9f8084ec6ce48403fb8ec81f3c60914060c6d4b634740d69eea9a0706", + "params": {} + }, + { + "public": + "aeb5fa35581b6e75047910e9653cc14f59d915a4415ef1bb8d80b11954caa6a8", + "address": "erd1466l5d2crdh82prezr5k20xpfavaj9dyg900rwudszc3j4x2565q49uesu", + "decode": + "aeb5fa35581b6e75047910e9653cc14f59d915a4415ef1bb8d80b11954caa6a8", + "params": {} + }, + { + "public": + "6f5e7d823921857a3fefe07a75b5a1f49d4bdac919dbc15f2fe497b32fccf3d3", + "address": "erd1da08mq3eyxzh50l0upa8tddp7jw5hkkfr8duzhe0ujtmxt7v70fsyadtnc", + "decode": + "6f5e7d823921857a3fefe07a75b5a1f49d4bdac919dbc15f2fe497b32fccf3d3", + "params": {} + }, + { + "public": + "5e8f63f52b90ea16977b591a30e50aeaedba45b2891486bf11b1ab1cfb1a9cf6", + "address": "erd1t68k8aftjr4pd9mmtydrpeg2atkm53dj3y2gd0c3kx43e7c6nnmq87fsvf", + "decode": + "5e8f63f52b90ea16977b591a30e50aeaedba45b2891486bf11b1ab1cfb1a9cf6", + "params": {} + }, + { + "public": + "15d3c8e08b61023b6ad1371c6ac9d59f98839668a0a42574aaa4470db77bfc91", + "address": "erd1zhfu3cytvyprk6k3xuwx4jw4n7vg89ng5zjz2a9253rsmdmmljgsgjdx5h", + "decode": + "15d3c8e08b61023b6ad1371c6ac9d59f98839668a0a42574aaa4470db77bfc91", + "params": {} + }, + { + "public": + "b1592d958263a8c2487f9cd1baeae42d886981bbf828692703136e28b244bbd5", + "address": "erd1k9vjm9vzvw5vyjrlnngm46hy9kyxnqdmlq5xjfcrzdhz3vjyh02sm3zy50", + "decode": + "b1592d958263a8c2487f9cd1baeae42d886981bbf828692703136e28b244bbd5", + "params": {} + }, + { + "public": + "43f93ea654a2b174860be6d966ba884dbbe5a81d7fc34988582b4c5e1832d759", + "address": "erd1g0unafj552chfpstumvkdw5gfka7t2qa0lp5nzzc9dx9uxpj6avsdvldqa", + "decode": + "43f93ea654a2b174860be6d966ba884dbbe5a81d7fc34988582b4c5e1832d759", + "params": {} + }, + { + "public": + "4a3a13496c420b6fc92e4748a4ffa85b28e4c3a1d00ba7372718ae9c7d5493fa", + "address": "erd1fgapxjtvgg9kljfwgay2flagtv5wfsap6q96wde8rzhfcl25j0aqzmwhgg", + "decode": + "4a3a13496c420b6fc92e4748a4ffa85b28e4c3a1d00ba7372718ae9c7d5493fa", + "params": {} + }, + { + "public": + "aa5ca6c08bff4355836b9cf0c4381bb75605dfe0de5319b92467831c5a775ed5", + "address": "erd14fw2dsytlap4tqmtnncvgwqmkatqthlqmef3nwfyv7p3cknhtm2srv3es0", + "decode": + "aa5ca6c08bff4355836b9cf0c4381bb75605dfe0de5319b92467831c5a775ed5", + "params": {} + }, + { + "public": + "d4295fd901367db10bdf20e2d2ae5abf50b7b09affe5b410cdec58eb4dae3dff", + "address": "erd16s54lkgpxe7mzz7lyr3d9tj6hagt0vy6lljmgyxda3vwkndw8hlsjqy223", + "decode": + "d4295fd901367db10bdf20e2d2ae5abf50b7b09affe5b410cdec58eb4dae3dff", + "params": {} + } +]; diff --git a/test/address/eos/eos_test.dart b/test/address/eos/eos_test.dart new file mode 100644 index 0000000..f38a174 --- /dev/null +++ b/test/address/eos/eos_test.dart @@ -0,0 +1,20 @@ +import 'package:blockchain_utils/bip/address/eos_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("eos address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = EosAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = EosAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/eos/test_vector.dart b/test/address/eos/test_vector.dart new file mode 100644 index 0000000..380abe1 --- /dev/null +++ b/test/address/eos/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "03d3ed3f3a267b1b73f7bbe4f7b6ce6f2f5660f5f3887175d5d5834a2dd0a7de68", + "address": "EOS8SZuz6wVaz2f6TtpWpd7HbK9s9XTwXu4C1NCwUvVyH1PyeHRwd", + "decode": + "03d3ed3f3a267b1b73f7bbe4f7b6ce6f2f5660f5f3887175d5d5834a2dd0a7de68", + "params": {} + }, + { + "public": + "0259b1047c07e50fc37294eda4596e2a16c6ab036accf8a52446d87d8077d61179", + "address": "EOS5ZzQGXAH9e9ZSGtjQtvBU6fJwHx5gyFTaAJtKMkvhrbCw4rxqs", + "decode": + "0259b1047c07e50fc37294eda4596e2a16c6ab036accf8a52446d87d8077d61179", + "params": {} + }, + { + "public": + "03524a0a7ee08de55870d0593b02b35a1465459399925f87721383ffbe1d8213d9", + "address": "EOS7TUVprVpShZ1np3pckNtbsouwwqMbA45d2oQ4mxjsBFn2K1h2C", + "decode": + "03524a0a7ee08de55870d0593b02b35a1465459399925f87721383ffbe1d8213d9", + "params": {} + }, + { + "public": + "033da66782519366f84a70ad3c9344bee817dbec3262e46f657eb96bf5b892c516", + "address": "EOS7JPJBL9BUF5Sq22XKVh3PBwb94YyjeUdh3rrEDSj6s4R4mbGnh", + "decode": + "033da66782519366f84a70ad3c9344bee817dbec3262e46f657eb96bf5b892c516", + "params": {} + }, + { + "public": + "03f9477067547ea51d2c49d04510d9b6e2dffe5cb1d85b14afb0e5ff0a03623a8d", + "address": "EOS8j22dxLQmsqAzoEeHTbkaLPmQen3AMDr9KXeMWJfN8QCjpq7PL", + "decode": + "03f9477067547ea51d2c49d04510d9b6e2dffe5cb1d85b14afb0e5ff0a03623a8d", + "params": {} + }, + { + "public": + "038f2d6c17e1e52d0fcead511fadc5eabb3b6380ca651e428e1021c9a81ac4244b", + "address": "EOS7vHofTbCdkJg3ceZ9ghfGH8697WK43zX3NBs6gMPFQHUAMdqLC", + "decode": + "038f2d6c17e1e52d0fcead511fadc5eabb3b6380ca651e428e1021c9a81ac4244b", + "params": {} + }, + { + "public": + "03053615dc54b3b0dc3e5c7144c9b6a6cc9ad6b8697791fa4012ea7aa055b14168", + "address": "EOS6sXeMxNYe4dbpxFXKwXjd5ZLgxprTLMds8p8JRofLfLPNesnwp", + "decode": + "03053615dc54b3b0dc3e5c7144c9b6a6cc9ad6b8697791fa4012ea7aa055b14168", + "params": {} + }, + { + "public": + "03fd7e2f3cf9bbe89f2baac05c39a08dc3ac18ea70977445e8c7f850b09c43fc41", + "address": "EOS8ksfbFYbvBytwxGCmbBWufL16aZmoQiDFk3gqqZJ4SALmSLULz", + "decode": + "03fd7e2f3cf9bbe89f2baac05c39a08dc3ac18ea70977445e8c7f850b09c43fc41", + "params": {} + }, + { + "public": + "021bac95c8115d8979885c66edd4a18bacef083d373fe3a74304598123ed8b8236", + "address": "EOS56gFd6jc3SRv6cQyRCJKxywiEbfMSVfb1Rfke2sriNB9L1JLGL", + "decode": + "021bac95c8115d8979885c66edd4a18bacef083d373fe3a74304598123ed8b8236", + "params": {} + }, + { + "public": + "0272684e398ed57abbcaf7ea4232b3f17ab737f44fe28e34c13455a41be8592a64", + "address": "EOS5ksjmgPUZ8XmJ58vZGeuZvghpb9AjrxNeGZeiB9wUuPwHGPB8W", + "decode": + "0272684e398ed57abbcaf7ea4232b3f17ab737f44fe28e34c13455a41be8592a64", + "params": {} + }, + { + "public": + "02ea2a8d404e379c7225c4cc5d0ddac2e299b30cff578fe5bd9eac734159f0c060", + "address": "EOS6fcpFE2K87fHjbaiGLnYGvQDxRhMQbFrAWBUBBAQkYn3j1FAsM", + "decode": + "02ea2a8d404e379c7225c4cc5d0ddac2e299b30cff578fe5bd9eac734159f0c060", + "params": {} + }, + { + "public": + "03f64308980a76e5088b21250119583a330259e94d17edcd7ec1eb594e07500e70", + "address": "EOS8hgxYcGwaBzgwworVZebh8DcPeyZPgPsHRdXGdWxRA9crCY9Yv", + "decode": + "03f64308980a76e5088b21250119583a330259e94d17edcd7ec1eb594e07500e70", + "params": {} + }, + { + "public": + "02795257c448f1971e8e223d50656fd36c2aa876df0a9e312e6380deb038aa3408", + "address": "EOS5ovMPjYgrX6vksJ6A8x37Btkxo3Fn7wBM6sgLgw1fy2xL2ogug", + "decode": + "02795257c448f1971e8e223d50656fd36c2aa876df0a9e312e6380deb038aa3408", + "params": {} + }, + { + "public": + "02c87719daa0ee38d1222173e79fd3a52f52579ac4ae3cd799501c0148f203daab", + "address": "EOS6QmyAJNH4mm4xQeij3gUq8CQao3xeq1r9ZZGyJkcf8iGBgYxss", + "decode": + "02c87719daa0ee38d1222173e79fd3a52f52579ac4ae3cd799501c0148f203daab", + "params": {} + }, + { + "public": + "020c801cd90b59a28c209315009da3a8c3f3c1e964829d133007c88abe9bea298d", + "address": "EOS4yzfGY2kqMtbPSLUQ36at3q7TGgx5izNh8xGM9HjBLFTwtwq3B", + "decode": + "020c801cd90b59a28c209315009da3a8c3f3c1e964829d133007c88abe9bea298d", + "params": {} + }, + { + "public": + "025e11e4ab97be59320d43548d58e70057f35c031e883c6e9827fc74e3e0610f2a", + "address": "EOS5bvF3FX1pKR4AWZaKhTuPva6gbXKDjBAtjtpiGMfHUka3trs7F", + "decode": + "025e11e4ab97be59320d43548d58e70057f35c031e883c6e9827fc74e3e0610f2a", + "params": {} + }, + { + "public": + "0378f6686580ee5cefce063541c4fd6f69654b2b13c4da1b50a110500c149b95ef", + "address": "EOS7kWMaJTSMqdTRjSBghuvqQC5CNyKg5Hz7qqUaBLevaKk6v3Tew", + "decode": + "0378f6686580ee5cefce063541c4fd6f69654b2b13c4da1b50a110500c149b95ef", + "params": {} + }, + { + "public": + "03354192ab13ef546d21b8e43e998b1cc9a1918d83b7592239e8863aee071df438", + "address": "EOS7EgtPNprutpTZcaqWj42LM7aQnoQXtkSdyzGcFYbUSzxVi1mMb", + "decode": + "03354192ab13ef546d21b8e43e998b1cc9a1918d83b7592239e8863aee071df438", + "params": {} + }, + { + "public": + "02cc15a69fe16323a465df6ff689f73cd075976f32cc63a85c369da44f47f7b77b", + "address": "EOS6SNRKh2MDte83zKZZ4sUqMD3CKjb1bQvHTQRCm2DoAxmaBpM5L", + "decode": + "02cc15a69fe16323a465df6ff689f73cd075976f32cc63a85c369da44f47f7b77b", + "params": {} + }, + { + "public": + "03e435b79950722d6e7161021ae1875900f46c26a097206a6d4c07481e24bf5d0f", + "address": "EOS8ZjquGKTHXJNHshdjcgMnUDokPiBTUADgsfUtZgoxaYB3ETTP6", + "decode": + "03e435b79950722d6e7161021ae1875900f46c26a097206a6d4c07481e24bf5d0f", + "params": {} + }, + { + "public": + "03654767a3d2a929ee476e9e146fb5f78a3ff31e7d48593fa4b4b993562f41a3c5", + "address": "EOS7bqZgSREfZ7eGqwD914VnggV9GUEqYcBHQFjzFAZVRCjYARJWw", + "decode": + "03654767a3d2a929ee476e9e146fb5f78a3ff31e7d48593fa4b4b993562f41a3c5", + "params": {} + }, + { + "public": + "027b1f6c6e4a22b0381fa515437a8057f69458f6072501276d79faf3224d25a314", + "address": "EOS5piMmvAhdqAv2mHLfaLrABCnC3KAYweAf2a4zT31XpRSip8dzH", + "decode": + "027b1f6c6e4a22b0381fa515437a8057f69458f6072501276d79faf3224d25a314", + "params": {} + }, + { + "public": + "028949acf820b1320db2952a4019ae303055e2bfddd8dba54587e3c005cfd41d82", + "address": "EOS5vxBkMSgCAQaBhhsUUVrr6yZvNr9pQt2wLLBDkENwqBqCUR5kf", + "decode": + "028949acf820b1320db2952a4019ae303055e2bfddd8dba54587e3c005cfd41d82", + "params": {} + }, + { + "public": + "02823ebcfaa1cec626718801255b42b9b6c47b2b0d9068300e1ca0216f08c8a6f7", + "address": "EOS5srHj2uWypBdvsox4uAWJeXRmaM5ue93MDAiHZygJ86SEM7iTa", + "decode": + "02823ebcfaa1cec626718801255b42b9b6c47b2b0d9068300e1ca0216f08c8a6f7", + "params": {} + }, + { + "public": + "039dce5f05fabe35036a29136081b31187ad957dfc223667b5447519c27f7d84e1", + "address": "EOS82jUZdg2WG2EUb3yQp9FJYfCF8nDYVCU1aYRZEFhWQBRiJyQ9C", + "decode": + "039dce5f05fabe35036a29136081b31187ad957dfc223667b5447519c27f7d84e1", + "params": {} + }, + { + "public": + "0349e088721b65291fac8035bdf591c85af347d48d975a4440295c7774e280629a", + "address": "EOS7Pmcy9xmNQRa38tfjuVCtPBbAaMGpu6SuMp9wd5KsbfYqaZ92k", + "decode": + "0349e088721b65291fac8035bdf591c85af347d48d975a4440295c7774e280629a", + "params": {} + }, + { + "public": + "03f4a2c32fe5722e50a135d51937bd6acc7602734a6d6841ab3d9dfcb99b64982e", + "address": "EOS8gyRVCWE5v6VGJnVzupCgHHuZBZ7zEndLjJ8kmChU9QMEJgK9a", + "decode": + "03f4a2c32fe5722e50a135d51937bd6acc7602734a6d6841ab3d9dfcb99b64982e", + "params": {} + }, + { + "public": + "031420f5b4cf4c6c46a979e87d78b92c6c0f0fa7b8fb30f777bca602694171a412", + "address": "EOS6z6h5vFYacgh6hiyQBJNeetyAUe6pjHSGsVKu7y8v1YCNdKKNB", + "decode": + "031420f5b4cf4c6c46a979e87d78b92c6c0f0fa7b8fb30f777bca602694171a412", + "params": {} + }, + { + "public": + "02622296eaa35857b413e8e6d8d98a13b9002f6f8c430239b0b5eee640667c59d6", + "address": "EOS5di5nybQ8NnsH1B14WgwErSPQf4PZdfAYGSjNhnMrTadinhAT9", + "decode": + "02622296eaa35857b413e8e6d8d98a13b9002f6f8c430239b0b5eee640667c59d6", + "params": {} + }, + { + "public": + "02a5b37b88c6f299fb20c1944c87dfab97436ec95242103a312fdc29bddfd18e5f", + "address": "EOS69TxygEYykRaDLvmijcHRPbBUUUZE4eGBRimroGMVPVAvZSkXs", + "decode": + "02a5b37b88c6f299fb20c1944c87dfab97436ec95242103a312fdc29bddfd18e5f", + "params": {} + }, + { + "public": + "035bb9c9da82735dcf810709cb02019feb52239d90493c01039a46c1f0d0dfb13d", + "address": "EOS7XdYKm6ysrjC4pGwGuEM6RnWHAKxhxjP3dJKMhaXmcB2e8B4yb", + "decode": + "035bb9c9da82735dcf810709cb02019feb52239d90493c01039a46c1f0d0dfb13d", + "params": {} + }, + { + "public": + "029c6d5ee0a6c6f0f4ebfd72487a83923f93b04e37dd54c3e10e09dd3f9ffd34a7", + "address": "EOS65P5S9JpU2UveQSnHZ1Gm2ATmT4gcmXHEqaw41LXdEwrdVfQbz", + "decode": + "029c6d5ee0a6c6f0f4ebfd72487a83923f93b04e37dd54c3e10e09dd3f9ffd34a7", + "params": {} + }, + { + "public": + "0288521fc00321211c149167958c2f0ac2c531f2c1601322066627edec30ce6b98", + "address": "EOS5vXV7GBBTSQwknU675FKqDujwivGzgdFkmxsTTQbfaKAznkNpA", + "decode": + "0288521fc00321211c149167958c2f0ac2c531f2c1601322066627edec30ce6b98", + "params": {} + }, + { + "public": + "03c3735669cde2fcfcaaeeccdd17386ae069b029f721e7bb07ac47cd537bbef2ae", + "address": "EOS8KK3xBun81RCGUWbuvCaC1ELtRPwKbYyRG7e7wRa9HqHjMZku1", + "decode": + "03c3735669cde2fcfcaaeeccdd17386ae069b029f721e7bb07ac47cd537bbef2ae", + "params": {} + }, + { + "public": + "026b4fe7dfc5a3b9aac4d49b81674e81065c404bc48a58ab5891e6bfd1d4c976c1", + "address": "EOS5hkVqbRaADPNqSCtB5mMKHipqZgV62db48LLLn1LS6aNzq4X66", + "decode": + "026b4fe7dfc5a3b9aac4d49b81674e81065c404bc48a58ab5891e6bfd1d4c976c1", + "params": {} + }, + { + "public": + "034644538c865b495c62162d8d326811a9f8c6c5b49bcbf063c963421aab4808dd", + "address": "EOS7NBQNJS3PjHkuZ7FKHQvq7SVRdnQdLX6LNAxbabpKqjNpNeWUa", + "decode": + "034644538c865b495c62162d8d326811a9f8c6c5b49bcbf063c963421aab4808dd", + "params": {} + }, + { + "public": + "0240d3da2b2cff8cd88964c12c71b4378f66342535dd43b082cabc966461e5343a", + "address": "EOS5P3HZVsrZvWzWwYSg25oYdLtRTfrpTy1YsPGsiAg1p5zbGDTQa", + "decode": + "0240d3da2b2cff8cd88964c12c71b4378f66342535dd43b082cabc966461e5343a", + "params": {} + }, + { + "public": + "02c228b23ceb2a4c9481435843274fd9149c350559f80459e603fb407638b7d0a7", + "address": "EOS6MztDoPhG6ZpqG2MVPCHP6EtnYYMPLLj32WytHumjWKvbxrZdB", + "decode": + "02c228b23ceb2a4c9481435843274fd9149c350559f80459e603fb407638b7d0a7", + "params": {} + }, + { + "public": + "02843838871b3615c74cf0b07d421da660819985d10c5ef8cc08c5cffac37cbeca", + "address": "EOS5tij594T1Jj54caC8rqG5dqXT5SKkYG7QqCcckqncGf7ro8Ge8", + "decode": + "02843838871b3615c74cf0b07d421da660819985d10c5ef8cc08c5cffac37cbeca", + "params": {} + }, + { + "public": + "03d533cb3d442b52070c60e1c266f3dd302ca4f606cd684fc4bee53a282cdaf2ce", + "address": "EOS8T8VniqRiU1Hqsr8ez3rwAJZWuDFAQWQBoBwXMdFDYRW2GsgW5", + "decode": + "03d533cb3d442b52070c60e1c266f3dd302ca4f606cd684fc4bee53a282cdaf2ce", + "params": {} + }, + { + "public": + "021213cbd44d0323b626ca685817ae8f80f55a8f1e740f222a05b2d78946f8eb53", + "address": "EOS52T7cFrmvLZopF13wQuhxbmfRe8GBSppBU4ivuWGBmMjNgTGCX", + "decode": + "021213cbd44d0323b626ca685817ae8f80f55a8f1e740f222a05b2d78946f8eb53", + "params": {} + }, + { + "public": + "02abb70d7c6d798563d9ca1fb59661c97be37d699374f1ff68a2fcbb690b0ff0d5", + "address": "EOS6C7aqDN6TySkWsCs88wCw4z8AmJVWYc8dxtGrUn9kMwSiQqZbN", + "decode": + "02abb70d7c6d798563d9ca1fb59661c97be37d699374f1ff68a2fcbb690b0ff0d5", + "params": {} + }, + { + "public": + "02428be60faab2a2f6761fd71619ed7fe362ad480c37a55c30f1797abee678346d", + "address": "EOS5PoCDL1jcrfwnJsywMSpGXPTUZRkv9ZA7jZXXFFWN5kqmVGx9D", + "decode": + "02428be60faab2a2f6761fd71619ed7fe362ad480c37a55c30f1797abee678346d", + "params": {} + }, + { + "public": + "0255a862f91e2273f76dd7026a53cd475916617aee053db545a65ba5138bed1dfc", + "address": "EOS5YDNC1oiAWtjFveXkRyhq5SBMJ7QK4BRM9VxxEYTLB3tGQC69C", + "decode": + "0255a862f91e2273f76dd7026a53cd475916617aee053db545a65ba5138bed1dfc", + "params": {} + }, + { + "public": + "033cea8592ef63a078ca4f3dbf0d6137775d790ad08224c28559e72291db0b2416", + "address": "EOS7J4YrjvHJxHPm4nReQDXqWZTQQvcipENEj2VfNL9y1Fm43xWwC", + "decode": + "033cea8592ef63a078ca4f3dbf0d6137775d790ad08224c28559e72291db0b2416", + "params": {} + }, + { + "public": + "022994c7898875726a2f0d31e517ac43481210a7ffe7021b74a1ab4fb87cc66aa8", + "address": "EOS5CoVJcksh6AB3AwoPns7cYF4DUM9sWx5GQH6NWAbYwppQ2Ttos", + "decode": + "022994c7898875726a2f0d31e517ac43481210a7ffe7021b74a1ab4fb87cc66aa8", + "params": {} + }, + { + "public": + "02dce38ece727ec2f3ca3553306ee5662d5b55d66c25fd812b0eb5d2dfd22ff506", + "address": "EOS6ZmfUBi1TprWgiiT2mTaxpA513JoDkKbwMQ7H3sVmRxYtK6QuA", + "decode": + "02dce38ece727ec2f3ca3553306ee5662d5b55d66c25fd812b0eb5d2dfd22ff506", + "params": {} + }, + { + "public": + "0329d66a387e4c2b1c021b4643bbda96029d475f4628c15a935dcd8b3a5ddce0ef", + "address": "EOS79fDPFKdhtMzyrSnFF1va4BMBrnrWMBoMVpKadChjARVK7PQNn", + "decode": + "0329d66a387e4c2b1c021b4643bbda96029d475f4628c15a935dcd8b3a5ddce0ef", + "params": {} + }, + { + "public": + "03d91d744ab734afde32002051f4cf93ec86c5100722c5f248b6b080034da54bfe", + "address": "EOS8UrSdffc5qTC1pjFdKyNkqiK6ZzZ2kjovqt16B8tb3bQJNmemK", + "decode": + "03d91d744ab734afde32002051f4cf93ec86c5100722c5f248b6b080034da54bfe", + "params": {} + }, + { + "public": + "026c25080356fe90925524b3708fbba0dba2c7f97ca59b9d95397891050567437d", + "address": "EOS5i7mFEaafhBpyiaUWeQyiK3Ry3QrXufxCZpUzL9CgUu5puowg9", + "decode": + "026c25080356fe90925524b3708fbba0dba2c7f97ca59b9d95397891050567437d", + "params": {} + } +]; diff --git a/test/address/ergo/ergo_test.dart b/test/address/ergo/ergo_test.dart new file mode 100644 index 0000000..5681032 --- /dev/null +++ b/test/address/ergo/ergo_test.dart @@ -0,0 +1,22 @@ +import 'package:blockchain_utils/bip/address/ergo.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("ergo address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + params["net_type"] = ErgoNetworkTypes.values.firstWhere((element) => + element.name.toLowerCase() == + (params["net_type"] as String).toLowerCase()); + final z = ErgoP2PKHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = ErgoP2PKHAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/ergo/test_vector.dart b/test/address/ergo/test_vector.dart new file mode 100644 index 0000000..8ee3f4e --- /dev/null +++ b/test/address/ergo/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "021a6043ed0124584cc3e7dd440a6ffbccf4719d4ca45a1375fc6ed752f2152386", + "address": "3WvopqY4wWMLA248gTt9f3knuRDqDJJMB5NewqgRCaohrPcRygfw", + "decode": + "021a6043ed0124584cc3e7dd440a6ffbccf4719d4ca45a1375fc6ed752f2152386", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "02f4bbc30c682adca755cea7f0730cc77fb8f6bf381bc4df9173b3a52990f7d338", + "address": "3WxTzV4MNKeeX2MHFVPXsugKUNrMrto5DeCMctSEW8e2UATdZ99G", + "decode": + "02f4bbc30c682adca755cea7f0730cc77fb8f6bf381bc4df9173b3a52990f7d338", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "0364ed484e5254d376d01d91020d8f9dbd7b8f9db8a422a770d5e3f6e8ddf5c9f0", + "address": "3WyKQKFHFK32uBYt7w2Zf3SbDGk7XGUQq17mKPHwwUxVe6FwnCM5", + "decode": + "0364ed484e5254d376d01d91020d8f9dbd7b8f9db8a422a770d5e3f6e8ddf5c9f0", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "02605204b4d653219eb9f3a7351ac475702ba4fbbac885ac4e7bbdb12b10b411d3", + "address": "3WwLdULVfE6Fy4LQZc9QwRsDmtJzuBMAYL4xKHVE5Qm5ceBV4jhr", + "decode": + "02605204b4d653219eb9f3a7351ac475702ba4fbbac885ac4e7bbdb12b10b411d3", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "0282ef477dd7883c37a436fcc600711f835cbdf67bb494956ea75105cbf874c318", + "address": "9fWj4meAF1bnGA5FiGfh2ZXyaXXjEUZ4hTaX7vzrGo4BZdqpLFX", + "decode": + "0282ef477dd7883c37a436fcc600711f835cbdf67bb494956ea75105cbf874c318", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03cbafc588a235464dadce5800a1e4d26193932cdd31c6a1add30049ab9bc1d3ee", + "address": "3Wz6fB5gFBhJYaDNXwiQELs8cMzQtVihoDweToBm7fGfnYt7WgXC", + "decode": + "03cbafc588a235464dadce5800a1e4d26193932cdd31c6a1add30049ab9bc1d3ee", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03a218339aa4de3123a116c4eec488e24b3699ea69cae1743d27d040192e4cb5a8", + "address": "3WynLm6GXBqzdYAKJG8hUX1AWisbafWyqQqW8wMo7qbFNvhh4U5d", + "decode": + "03a218339aa4de3123a116c4eec488e24b3699ea69cae1743d27d040192e4cb5a8", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03331cec8a4e7b3f462ebbc910fc1d23d6d0f5d6df1c2b849fc3b44d6e0c755590", + "address": "9grKJayfgF6A1YHKaL19MF3S8Pe4MzFMosZ1GdazX7NwuZhggsB", + "decode": + "03331cec8a4e7b3f462ebbc910fc1d23d6d0f5d6df1c2b849fc3b44d6e0c755590", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "025563e2461f498f336f2d927af36e0327b01f6007b43058b19effb4e9ed69aba8", + "address": "9fAfh7K6tJBpXe1RcyabhKkYWWWaUszWnBCmXyAKhPZLRFX8k3o", + "decode": + "025563e2461f498f336f2d927af36e0327b01f6007b43058b19effb4e9ed69aba8", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "0339c316fc3d207d9781e41038480c545f580f63b88adb081a6b3e4b491673cd66", + "address": "3WxzPjBiGLKXv1vLwzeiuYnLNiLnkfA2H6nJ3D69wjLa5Zp9yh69", + "decode": + "0339c316fc3d207d9781e41038480c545f580f63b88adb081a6b3e4b491673cd66", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03dcca284919b7e30fc49a84d0c7ef76b6d948023a19e2e83af9d642eda629d781", + "address": "9i93U4cxR1hFDw9ZWD4nGkDY9eTyhxbYQqAbCkdXgTWbtCPLDpT", + "decode": + "03dcca284919b7e30fc49a84d0c7ef76b6d948023a19e2e83af9d642eda629d781", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03f51a864b263d69815b249d65d0b841f81e1e916b4a7b0f3ac936437a40450fa4", + "address": "3WzQu7hog2ymFyKUiEBtLikG8PKUfBC8G2XigT2J2wjB8E5xMMie", + "decode": + "03f51a864b263d69815b249d65d0b841f81e1e916b4a7b0f3ac936437a40450fa4", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "020999f5ae57edcf6222d451bc7e1e546c1e04ba14098247100463a57a815439d4", + "address": "9ebHmcdrk36YwBFt9m62bnBAQGaMb3YckhwvpdveVBA1ShSR4d7", + "decode": + "020999f5ae57edcf6222d451bc7e1e546c1e04ba14098247100463a57a815439d4", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "021fa62981999d6ceb6c82dd8658f2d18658fbb42ebf22f5370eb84a86ce4509e7", + "address": "9ekzwwXwdRZBc7VivZoBUP5mrxb4pnP6YcYb7WUjyk5wETWv9P6", + "decode": + "021fa62981999d6ceb6c82dd8658f2d18658fbb42ebf22f5370eb84a86ce4509e7", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03a6a1becd49aebc5e35ec3e7647c1dff4c3f7d768da4aa758989bbdd581f66b7e", + "address": "9hjC5TDXAh6t5pKRCULYYDXCJSq62SHnJe82pkQTN8UNKEMUx4K", + "decode": + "03a6a1becd49aebc5e35ec3e7647c1dff4c3f7d768da4aa758989bbdd581f66b7e", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "02b21509c3c2fe44fb66348332e3c3b13889fd477ffe8ae2d9da455beccc5b3353", + "address": "3Wwxdy4pfmZLn3fM5buwf895GGU8vnE4pHxKqoyu8dQT3V8Gf4DM", + "decode": + "02b21509c3c2fe44fb66348332e3c3b13889fd477ffe8ae2d9da455beccc5b3353", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "035daa3a68e0aa99267e8aa695ae4952a9b2b6296efeb4fb1dcc59d975ac62a558", + "address": "9hB4EhR9DXPKxoXJ4CJ1b1ZzEHxBg6R4yckB82A1tCeWSxXiMHm", + "decode": + "035daa3a68e0aa99267e8aa695ae4952a9b2b6296efeb4fb1dcc59d975ac62a558", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "02b9d9fa693af356a2741680e8ad579b0abe36cbcf02699b98c383a50c37f7cd17", + "address": "3Wx24RXhBZeasvd5k8vjNQ2gUcaSaYUCWwh6UsCSQrhBREX4DQ2u", + "decode": + "02b9d9fa693af356a2741680e8ad579b0abe36cbcf02699b98c383a50c37f7cd17", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "0320979ec1ed82638a90b0ccfb7ca8b4dd2d38aac3737c25f69fa3f006818a30ba", + "address": "9giADYgyrwUC2hiNs69jQa1284W24asno85DpytW8z97LCCPEyP", + "decode": + "0320979ec1ed82638a90b0ccfb7ca8b4dd2d38aac3737c25f69fa3f006818a30ba", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "034cc4dfb26fd492076e1bb328af29f708bb8c36079b87c1e2abcc00289af632de", + "address": "3Wy8mEcyVXoCByTn3WCxff6TdKaEuyiRbhMpqgcxxcXWsEGPg4DC", + "decode": + "034cc4dfb26fd492076e1bb328af29f708bb8c36079b87c1e2abcc00289af632de", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "0377a2a1443b8f8c407622b6e53c4431852e018cc7a2c6f69a1136f5fc040aa11d", + "address": "9hNVcZVbLjsE4Jdd3Dop9imp96JSbDipsqTSHWoBiZXn9L3gTLn", + "decode": + "0377a2a1443b8f8c407622b6e53c4431852e018cc7a2c6f69a1136f5fc040aa11d", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "031bbfdd55a9ca633d9b9dee5027c43f7c911885e895aad573d8d67a132580f071", + "address": "3WxmB6ZC7jy89J3hUg4HnyvkY9QpP2kBYa6CKQHpS6BKBRPfEszK", + "decode": + "031bbfdd55a9ca633d9b9dee5027c43f7c911885e895aad573d8d67a132580f071", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "02d1478b45b696ad1882dc41e89b1db2829a2f9b9f7579594ec3882e8616209f0f", + "address": "9g7EH62uTQB5TuRVNtahrtHvwAa3oMTpNBten3prf3MjbLDRgHi", + "decode": + "02d1478b45b696ad1882dc41e89b1db2829a2f9b9f7579594ec3882e8616209f0f", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "032444889080fe0923f7e4c3fb07a0556263d90bbf963a575fd49c410707235e94", + "address": "3WxpvgbhHE7SgPQcZFu9WnquGkPSyCSaMhpzmwfnBRnhgMGdzNN2", + "decode": + "032444889080fe0923f7e4c3fb07a0556263d90bbf963a575fd49c410707235e94", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "027d12eab3a7f39310f71e71e1668fc9916a1c9c08bfdd27ad341111f9051129f9", + "address": "3WwZHwavmU4XMpeVxQNDeDfLHea8gVJmfetPQ4K5B9bkSxfvcTwG", + "decode": + "027d12eab3a7f39310f71e71e1668fc9916a1c9c08bfdd27ad341111f9051129f9", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "033c55882501ec9c04371c8f0e622a69be7e40bd4a363b88ceca435dc3d305977c", + "address": "3Wy1XRk7sPyaR1wT1RmDApP7ffAaP71LLRQgYhABjCkySn2XtDQ2", + "decode": + "033c55882501ec9c04371c8f0e622a69be7e40bd4a363b88ceca435dc3d305977c", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03a244a249b7b460e2cc8f27370c6564e9a3bcdbd17ed7ee1bebff5293d42301d1", + "address": "9hhGcU2NLE1iqShmnmuvMXNCETM1rqnT8nDCdzetuFVC4PtJrr2", + "decode": + "03a244a249b7b460e2cc8f27370c6564e9a3bcdbd17ed7ee1bebff5293d42301d1", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03b57fc07d5d91e44e8a063740b4ffce25d3254f1bf551a98e791177dbd738b62c", + "address": "3WyvtRUNU4WZ1VjGt1P8VpSVZHZP8bwR7Nwn4upjyAdda6we1i3K", + "decode": + "03b57fc07d5d91e44e8a063740b4ffce25d3254f1bf551a98e791177dbd738b62c", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03d73b4c6cbb1d0146f8e8783b66a270b6fa64075503ec1561b973e429d3d07f8d", + "address": "9i6bVeMSYgi9WcWg5tuhBi3LBLULx7y5PiznpdnkCUECDH4C6vM", + "decode": + "03d73b4c6cbb1d0146f8e8783b66a270b6fa64075503ec1561b973e429d3d07f8d", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03d59cdd12076226e4076b02ef7ccf7a2d951ad6b6a6469e603337552158592792", + "address": "9i5t9DGAn6UPRnBjquujqpeqhpLrMBoAAgcYeZjduiUTuXZkqQY", + "decode": + "03d59cdd12076226e4076b02ef7ccf7a2d951ad6b6a6469e603337552158592792", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03193ee4f17e6cc205d9265c68cd709e2cba6c07365623e6df96e971050ae965b8", + "address": "9gevZLxFgy8XLpvRDMYR2BZKjw1NDpaRsF4a8grVsFgQCKDaB4E", + "decode": + "03193ee4f17e6cc205d9265c68cd709e2cba6c07365623e6df96e971050ae965b8", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03ebf5db00eb5d6e6c492c3bbf3108a3021287c09cec511a62cee3c76cbbfd18e0", + "address": "3WzLsZhgafNbtf4EeJt88nZTCN3Nk8dLvT6DJERBZznLEfYrys7L", + "decode": + "03ebf5db00eb5d6e6c492c3bbf3108a3021287c09cec511a62cee3c76cbbfd18e0", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03cd051a5de068e57880cf5c287487e299451c5aedf81ad8f4b13391b89dba6889", + "address": "3Wz7FESqksfd5DD51EJktK57w3tWDBC4cgrjQEMfazdft1PVa8PF", + "decode": + "03cd051a5de068e57880cf5c287487e299451c5aedf81ad8f4b13391b89dba6889", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "0380ec5b1b54ae05a4930e04f115d2f1e43f9b90fb29d708106571be95358f6a02", + "address": "9hSas26mQSwQB45ght6tetgkj27yMN3UXr7MGNU6nSVFWLjYEN6", + "decode": + "0380ec5b1b54ae05a4930e04f115d2f1e43f9b90fb29d708106571be95358f6a02", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "02e5e9471ad1f7ea4e4baf53f7a59c19a3a33cac4a7f36533e1de28bccc18f90d3", + "address": "3WxMTsVD2GTA6w4qoGRjvn5mG1KfGZY4pz41n4T5sSaeJK3AXsFc", + "decode": + "02e5e9471ad1f7ea4e4baf53f7a59c19a3a33cac4a7f36533e1de28bccc18f90d3", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "03105f9802d59aa66e625cdff6bce7604780b38bccfab92b58b85670ba0cdf67ba", + "address": "9gb1vo4hZb5EZCfkU35pwsULBw4aZzx9QSgPhAjTaEstC4vX5Yy", + "decode": + "03105f9802d59aa66e625cdff6bce7604780b38bccfab92b58b85670ba0cdf67ba", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "039fd1d0f4a1d8a37636feb4c9a5397e53fef6faf103bffed3415170b5cf778ab0", + "address": "9hgC4vdGqTCWJDChKdNLAsMtWRFDk87JLm1sMMpEyJnxYCi91TR", + "decode": + "039fd1d0f4a1d8a37636feb4c9a5397e53fef6faf103bffed3415170b5cf778ab0", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "020cd5d4c6bd7bfab63ed085bde0754f0b2dc3f46a3c3a9390a5363ca73ccde957", + "address": "9eciNhfYtbgP3tjuf7y5qv8C2bgKY9s5FrgJYkdjKnQHBRpjK5S", + "decode": + "020cd5d4c6bd7bfab63ed085bde0754f0b2dc3f46a3c3a9390a5363ca73ccde957", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "02eaff1c0315cb52f118b82cfe181c2bed1ef68da9136e32cbced88ba430295d5f", + "address": "9gJZBj9f9HRheQKgyBCwHjziAtisMmEhxH3nTrjzrinntB3X73b", + "decode": + "02eaff1c0315cb52f118b82cfe181c2bed1ef68da9136e32cbced88ba430295d5f", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "0314c2d6640445e0e8a9bc52aa02cfe8e83a7b29eec7e7b898f111002e50717dc2", + "address": "9gcx1GcpHjaB6KS4zjjYwimdKmd9ttsHsQXKKUwDm6gx8wBjr5x", + "decode": + "0314c2d6640445e0e8a9bc52aa02cfe8e83a7b29eec7e7b898f111002e50717dc2", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "0201fb16c1379ef6b438d18ba00dfdfbb4fb6045bdf37b4d2118edaef2d7be7bc2", + "address": "3Wvd5hETYU31qid1QkRrQbnNizq2iYZiFDu6YG5VTEtqKneDQQwp", + "decode": + "0201fb16c1379ef6b438d18ba00dfdfbb4fb6045bdf37b4d2118edaef2d7be7bc2", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "0306bb0518a0ee78a987672c18861affd0d9934b45ff61b24914f0fda5838fc9f7", + "address": "9gWmcaUCKKH3NgR3gfZK6DmGW9HjXD1EBciRXdmcPDzEPgBcPyP", + "decode": + "0306bb0518a0ee78a987672c18861affd0d9934b45ff61b24914f0fda5838fc9f7", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03557f0161a63620d33fed197b6e076d4dd0764b77ae9180bcb4dea828a6b7577c", + "address": "3WyCcA4kaMr74g7rifSe8XVGagQ8mVryEodUBSBqahNjJKbGgSEH", + "decode": + "03557f0161a63620d33fed197b6e076d4dd0764b77ae9180bcb4dea828a6b7577c", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "027324b2ab3708da3f618b96d8431edee249ead374fd5cb12dd77ffb2f1d37a8d2", + "address": "9fPmhQHi93vTHVVBZPurs4XvBTRrt2hW28rpYeETSGb1K9KEmGU", + "decode": + "027324b2ab3708da3f618b96d8431edee249ead374fd5cb12dd77ffb2f1d37a8d2", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "027f18325549fc4d4c97917feeb736e152525b2247bbfb52c31af66a05bd644f89", + "address": "9fV2ySV1yoicH22vZw3Gr8PcaGaU5faSTFvEGtMggJvq6D6vMUb", + "decode": + "027f18325549fc4d4c97917feeb736e152525b2247bbfb52c31af66a05bd644f89", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "02e61314192c78452968f0d5501ef13b612b86f1bbd21b529fd23d7274570fbaab", + "address": "9gGPTde9TtTQe8mLxxx9vxNay3V6ZJsLNH1rWVK4Rii3kq2WLjJ", + "decode": + "02e61314192c78452968f0d5501ef13b612b86f1bbd21b529fd23d7274570fbaab", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03b7ec356e027c4d43ed3f5af2588135eee2c72c56c2b9572aeacdcf9ea94ce14e", + "address": "9hrokSGy55auFwuRUfYvcmUVAAJwTc5e9EHfGmrzDU6yCke6wQK", + "decode": + "03b7ec356e027c4d43ed3f5af2588135eee2c72c56c2b9572aeacdcf9ea94ce14e", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "0281723e9ecf4b0cf310f24c14537d8472b9d318061902deec3b5092372b2403b4", + "address": "3WwbDdQ5qjv83XV963q9R5yMZRWW7LbqsbjqG6QfbELKa8bEQwUD", + "decode": + "0281723e9ecf4b0cf310f24c14537d8472b9d318061902deec3b5092372b2403b4", + "params": {"net_type": "TESTNET"} + }, + { + "public": + "024745c2eb624d2cb059224439a968cbdfd5e393a0b7b1b26ed0ce1c740dac0f0f", + "address": "9f4T5LJVyibM41bU7Vfrz6FmYbg1jeahHFzkzTbhvsHHRZQFhKX", + "decode": + "024745c2eb624d2cb059224439a968cbdfd5e393a0b7b1b26ed0ce1c740dac0f0f", + "params": {"net_type": "MAINNET"} + }, + { + "public": + "03e4e5ace045f01cbc533cfa6162c472e1f70a7bc397ac6c2827a69e969f2013db", + "address": "3WzHm9LbLihLn3Q9Vdx3WMSyuhXEWJaLah9ZzRN5zmfKES1pBVvm", + "decode": + "03e4e5ace045f01cbc533cfa6162c472e1f70a7bc397ac6c2827a69e969f2013db", + "params": {"net_type": "TESTNET"} + } +]; diff --git a/test/address/eth/eth_test.dart b/test/address/eth/eth_test.dart new file mode 100644 index 0000000..11db3d7 --- /dev/null +++ b/test/address/eth/eth_test.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/address/eth_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("eth address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = EthAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = EthAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/eth/test_vector.dart b/test/address/eth/test_vector.dart new file mode 100644 index 0000000..144d6c8 --- /dev/null +++ b/test/address/eth/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "0205e780acb0ae40c49deb690683cd3d1a619f998ada63aaf3330d7d59700a5156", + "address": "0xe720947F2A6Faf66d639E11D4466B61D637587af", + "decode": "e720947f2a6faf66d639e11d4466b61d637587af", + "params": {} + }, + { + "public": + "03f90a8fc2b2430b93e06ee9d19366102c142001b729d497b952de066e45871efa", + "address": "0xde42e41b5825944cDE383643C1771D592759C348", + "decode": "de42e41b5825944cde383643c1771d592759c348", + "params": {} + }, + { + "public": + "03cebb1df4566c826863518282ee01b80c6e9ca674d83b2e7ec68d3a5e8047d405", + "address": "0x0f3Ef3e74a93Ff31B6B2d281C3E3c4671486058a", + "decode": "0f3ef3e74a93ff31b6b2d281c3e3c4671486058a", + "params": {} + }, + { + "public": + "02ae2fd676fd13b148026243f91cea5026da8114879a00d628aee560f21d87c5d0", + "address": "0x77c004043696b09E4F01bA48a78D12a9472cCB7C", + "decode": "77c004043696b09e4f01ba48a78d12a9472ccb7c", + "params": {} + }, + { + "public": + "031c5e7207ea7697395cd004710e26e2032e6ae8fcb86513b3ef87de62fe1f3bd1", + "address": "0x30Ee2e87D6adBFcc4d3918b4C7e49BcaFb9E6D47", + "decode": "30ee2e87d6adbfcc4d3918b4c7e49bcafb9e6d47", + "params": {} + }, + { + "public": + "0220e0d55c8fd6c684d21855bf4339cac942063cf544f9ef4184a310d7fce5d9cd", + "address": "0x613c8B79f137112f60EC15cC1077B9b1460d6bAB", + "decode": "613c8b79f137112f60ec15cc1077b9b1460d6bab", + "params": {} + }, + { + "public": + "02fc06c1632074c4c56c2f87a623fe74dce6697a9b4bad6c5145a46c145b34283d", + "address": "0x64199038F6c9fb36c108dc30c3DdB916f188EBD1", + "decode": "64199038f6c9fb36c108dc30c3ddb916f188ebd1", + "params": {} + }, + { + "public": + "0215e88ec21c6444300088b8b184f7a7daf3633ff41f26aba7fe3b01a8323afbe2", + "address": "0x2f5Da8C538630Aae8DDcc316f5b07E9b5Cb3b8BA", + "decode": "2f5da8c538630aae8ddcc316f5b07e9b5cb3b8ba", + "params": {} + }, + { + "public": + "03868fb2f349cad0e6f1bdbaa14da0a019facd1bcbbd6596e429f830c8cf957d7f", + "address": "0xA8CF55157F862b4f2F8F6C9C8D7a87E6fe582DE5", + "decode": "a8cf55157f862b4f2f8f6c9c8d7a87e6fe582de5", + "params": {} + }, + { + "public": + "0221b47c711708e48d475eb2031c328e0d0ae0517ce92148a41630b6f55825083e", + "address": "0xB1fb358B357cA0C99A12C19aF8183d56F2E9125f", + "decode": "b1fb358b357ca0c99a12c19af8183d56f2e9125f", + "params": {} + }, + { + "public": + "039ce2c88f082e5b2a85cc31386cb2f7a4ca122f2d907eaa850d8d16979642a079", + "address": "0xD11110E35B29C82cf7E4aaA16579503a1F8B0d97", + "decode": "d11110e35b29c82cf7e4aaa16579503a1f8b0d97", + "params": {} + }, + { + "public": + "024eb0fb1e6936d9cf3012c00089e2fde2a203922fb94932cadfd7b61bd2c1ed88", + "address": "0x74Ae5C4A8a3788eD850741a5A9B316a283030C4C", + "decode": "74ae5c4a8a3788ed850741a5a9b316a283030c4c", + "params": {} + }, + { + "public": + "02148d2509660d051935ea819925cd232e78d10586cd9003e589838d4df07ac44d", + "address": "0xC34a2F5Cd2b4139936f8A693bE46948EcBa7cc16", + "decode": "c34a2f5cd2b4139936f8a693be46948ecba7cc16", + "params": {} + }, + { + "public": + "02b78419391343067ca0e01a58ee76c0baaa8c31a145a8e5d6b275f7b557eff6f0", + "address": "0xA7128F92D1439D4B32bfAee1Bf8bD6Ca74f658eC", + "decode": "a7128f92d1439d4b32bfaee1bf8bd6ca74f658ec", + "params": {} + }, + { + "public": + "037ba8399bd554121b9f059b94de04fb3473bb0b2c68abbddbbf3758596df7fb00", + "address": "0xad5494f7492cda30aAD2f62baa5DbFae04Ee3d43", + "decode": "ad5494f7492cda30aad2f62baa5dbfae04ee3d43", + "params": {} + }, + { + "public": + "031d297bc012e20d6e2a1a1fd8fcaf51d008fef40d1e084834a73c682633845be6", + "address": "0x0fC47f1fF8d17197B3c30D199EB547657271614c", + "decode": "0fc47f1ff8d17197b3c30d199eb547657271614c", + "params": {} + }, + { + "public": + "028053e7dd4b0888f603d8f7f0b72ac1b85f7df6530b239c7c81c64755ee9e4fa4", + "address": "0x4C99dFea70c82b235c00756BE806E4d8102C76aB", + "decode": "4c99dfea70c82b235c00756be806e4d8102c76ab", + "params": {} + }, + { + "public": + "0236714c7bf23fe6782b4867e2eece1efd86ba497ee3e30d2928c106e186e80f0f", + "address": "0xC5010Fa6E34284Ac8E57aCC7220c46283aa75c5A", + "decode": "c5010fa6e34284ac8e57acc7220c46283aa75c5a", + "params": {} + }, + { + "public": + "025b4a9c7d38c2599cb7526cf4d993824e638a5e4b0018f3833a058f8d1fcd8e24", + "address": "0xA1150a32b4C8207F40A7704CB4430A6ABF14Ef98", + "decode": "a1150a32b4c8207f40a7704cb4430a6abf14ef98", + "params": {} + }, + { + "public": + "03064746bd56d9459c70ea9251fe2a2911a39f81e6604502754089675daf1a76d3", + "address": "0x74C050b2518A0450660cc45c54CC589a496f3B79", + "decode": "74c050b2518a0450660cc45c54cc589a496f3b79", + "params": {} + }, + { + "public": + "02bb57467d8aa3d3dfd161dff73fa441e46159bc6dea8dc3bc9edfc4f35120730f", + "address": "0x4c933109B4Dc48d9e231C66EA893c6b926B4D7b1", + "decode": "4c933109b4dc48d9e231c66ea893c6b926b4d7b1", + "params": {} + }, + { + "public": + "03d58a23c68065f273bbd397531c7c6cddd82c7f7492ce3b2fb39d52f6c2c2365a", + "address": "0x6b128570f36065541D9b34c40Ca886A08210d1c7", + "decode": "6b128570f36065541d9b34c40ca886a08210d1c7", + "params": {} + }, + { + "public": + "03fa8d1a6d458f142123d08d00e000e1a64546f9b829f864a0e529290ac48c55e9", + "address": "0xC74A762c02800653c1757F0698bc54f84EC7D100", + "decode": "c74a762c02800653c1757f0698bc54f84ec7d100", + "params": {} + }, + { + "public": + "0305fb3eca8b3265fbf1d91f9561c48b5c8fa2b5f0121eb6a8ed8cf291144a67a0", + "address": "0xF7e80774877A2fC1FE382812EF4Faa9c926c441c", + "decode": "f7e80774877a2fc1fe382812ef4faa9c926c441c", + "params": {} + }, + { + "public": + "020c925010e9577ec76b34bf11182a635f757ef3297951a6e7b5591d22c1856f53", + "address": "0xD7CE2041c83204bB18df5A0E79e775dBCAfeef31", + "decode": "d7ce2041c83204bb18df5a0e79e775dbcafeef31", + "params": {} + }, + { + "public": + "02c8aba885eefb47786c94a9f044c78969052f71e5bd900d29254f7fe350989102", + "address": "0x32211Eda9E8d538cAff4E619d0674f30DFb72bB5", + "decode": "32211eda9e8d538caff4e619d0674f30dfb72bb5", + "params": {} + }, + { + "public": + "030a5e5d26901f2c67354f297cef39f5c312d1ef57b63178311e26cddb4529c895", + "address": "0x12a63935DDBAbfa5A06Ff23649B3409F6a589B39", + "decode": "12a63935ddbabfa5a06ff23649b3409f6a589b39", + "params": {} + }, + { + "public": + "025ebde8f9974a6c937a945c1d179294b5ed1fffe28cae40756fffba228e797ccc", + "address": "0xF0A69b31f41e95f97A664F94Ae53a5a747B21898", + "decode": "f0a69b31f41e95f97a664f94ae53a5a747b21898", + "params": {} + }, + { + "public": + "02439f97f507de86b14854072389d3774ebcd4cb5cb64ae230563173be731436ea", + "address": "0x0a49e30C7b906bEc5B451D70C6A4a7117b66E6aB", + "decode": "0a49e30c7b906bec5b451d70c6a4a7117b66e6ab", + "params": {} + }, + { + "public": + "02c2efe213ac98a760ad8ee0f339cdc7145f487451992716a1bc5cedda1d9187cd", + "address": "0xC12D81Fc49D06396cdEF51d16C4395656f6B7ccB", + "decode": "c12d81fc49d06396cdef51d16c4395656f6b7ccb", + "params": {} + }, + { + "public": + "02adf9888899b3d66bd28c6f396354e76f29c4e04d1ab0e8363b6dbd5983502ae4", + "address": "0x0dEf39cA275f0D5192aF9A860A66a74C4dEf7fc5", + "decode": "0def39ca275f0d5192af9a860a66a74c4def7fc5", + "params": {} + }, + { + "public": + "02a8aa9cd1b6b897bec39fd9a67f5b91e503f1779e090b64b0984906d7d368b3a2", + "address": "0x2bCD792d526A1A2Fe900340D5da6579B468A5Eba", + "decode": "2bcd792d526a1a2fe900340d5da6579b468a5eba", + "params": {} + }, + { + "public": + "0314090ef2c8743ae8c7b360112d35b2a861e7fbd8077499dc3e6b217cbe2575cf", + "address": "0x649706D8541D330577c660a7b733B744a489b7eE", + "decode": "649706d8541d330577c660a7b733b744a489b7ee", + "params": {} + }, + { + "public": + "024007f509fb73203056e05794e244327d054a59ef53c96775cd5f6cd6376474e1", + "address": "0x7A4C9EBC8F440245aF0Ab49AE972A38397b2aa3E", + "decode": "7a4c9ebc8f440245af0ab49ae972a38397b2aa3e", + "params": {} + }, + { + "public": + "03ffed2b5a1caabac0cfc3737c99faa3960a7c395cb9f4f39688b26696256f2183", + "address": "0x1082c55981C2bDb1450ed6E9846BbdE02aEF90b4", + "decode": "1082c55981c2bdb1450ed6e9846bbde02aef90b4", + "params": {} + }, + { + "public": + "024096150e403ec9fe9deaaf3b97260d791d38855afcaf50e0f39a83e2e310e74a", + "address": "0xb62B3B1B5f897968cE8355d64EBd9881eE0c7A7F", + "decode": "b62b3b1b5f897968ce8355d64ebd9881ee0c7a7f", + "params": {} + }, + { + "public": + "02002bddba64b1212a7f30f20b2a9c640dd104bd41894c9bb3fb85edd7d8003891", + "address": "0x7fE6F0FC035FC21B3287D306Da8d7BE3b2D092eb", + "decode": "7fe6f0fc035fc21b3287d306da8d7be3b2d092eb", + "params": {} + }, + { + "public": + "033775875ca0fd011274dfc6f2f898d63d7a091be6c12b61a2d02d9afdc7dfbb97", + "address": "0xb0847D84684667Fa1f716c9a955A5448B054eA05", + "decode": "b0847d84684667fa1f716c9a955a5448b054ea05", + "params": {} + }, + { + "public": + "03f26ef51d10a3c82e75233a78a512c41ba20e4135fb0a885168d93b3a9d862e7b", + "address": "0x86E69340bAF3A19028a7F139d2784478a9Ea1026", + "decode": "86e69340baf3a19028a7f139d2784478a9ea1026", + "params": {} + }, + { + "public": + "020dec644d80a11fe926d9e1dae363874af66bb18124c288b742cdec46538a1e63", + "address": "0x62692564B39614563f0d4472FEd420980A0751AC", + "decode": "62692564b39614563f0d4472fed420980a0751ac", + "params": {} + }, + { + "public": + "03179d01d227365cbe97cd9bb37470d4366e8ce1dd35a9b486932603c4d82c663f", + "address": "0x1eA95b2115B536EAE27E677A933C2620B83959aB", + "decode": "1ea95b2115b536eae27e677a933c2620b83959ab", + "params": {} + }, + { + "public": + "02c2ff7b312e03816a93a931e9c491716c369440639ae94d72ece58aa7af587a37", + "address": "0x9fe941Bc9429d5199D203A9ed9b95E45c73B03D4", + "decode": "9fe941bc9429d5199d203a9ed9b95e45c73b03d4", + "params": {} + }, + { + "public": + "023e2e841b83b095157a28284301049b13c038a6504ca2bdba4eaa526429c2025f", + "address": "0x4F7676aF83C62679365fCd4831b1d051b94A6d7d", + "decode": "4f7676af83c62679365fcd4831b1d051b94a6d7d", + "params": {} + }, + { + "public": + "039d081ce2ed7cddba38a977b61047e38906f243c12e111eca7bc56dc3f3a35863", + "address": "0x7eeDa30AF56Ba0d6D5C8d8c85b35EdDCc0BDf024", + "decode": "7eeda30af56ba0d6d5c8d8c85b35eddcc0bdf024", + "params": {} + }, + { + "public": + "03092e7e1c0eb868a33d92dd6bf4866536e30f3858a65395536db4b41e7fe44134", + "address": "0x091473B00d099768D5F6e985483234f6eA878565", + "decode": "091473b00d099768d5f6e985483234f6ea878565", + "params": {} + }, + { + "public": + "02be7dafed193df0680605ae729d340c7cff660797d954bbfa4871f1bc386977da", + "address": "0xE33891474F57CdA0F8f19ff7Cee05f2e5EDA94c1", + "decode": "e33891474f57cda0f8f19ff7cee05f2e5eda94c1", + "params": {} + }, + { + "public": + "031d2fe011e33ca742a3344ecd14816c6c41ffaace854a4ae59c4e5ec6a70ab35d", + "address": "0xbFcc87543DECeE5DC0EAd1B92741109865eAb611", + "decode": "bfcc87543decee5dc0ead1b92741109865eab611", + "params": {} + }, + { + "public": + "03b318160a3f114a2a30223323cedfcb6ceab2f31b5e536d271b49963636aa02e4", + "address": "0x0135c6fe4ED8CE7557145C6427B7a829bF6A2A89", + "decode": "0135c6fe4ed8ce7557145c6427b7a829bf6a2a89", + "params": {} + }, + { + "public": + "02c309d34d08097bcb934976d2c9885ee0be7bc4aba7f322bf247d2c98d917bfcc", + "address": "0xcB564091C19Bf5A7DF20B6d1B00Dbbb60C28Ca51", + "decode": "cb564091c19bf5a7df20b6d1b00dbbb60c28ca51", + "params": {} + }, + { + "public": + "02242aae46687498de91837b0251dc809d965158db5ad78ae261a41a433cc60c69", + "address": "0x60bcD0f99653F0134277f1164e5D5D446b9CfcDC", + "decode": "60bcd0f99653f0134277f1164e5d5d446b9cfcdc", + "params": {} + } +]; diff --git a/test/address/fil/fil_test.dart b/test/address/fil/fil_test.dart new file mode 100644 index 0000000..752a8fc --- /dev/null +++ b/test/address/fil/fil_test.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/address/fil_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("fil address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = FilSecp256k1AddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = FilSecp256k1AddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/fil/test_vector.dart b/test/address/fil/test_vector.dart new file mode 100644 index 0000000..e5fa4b7 --- /dev/null +++ b/test/address/fil/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "025443142c2df234552323b4dd99322f89254a41c418dc85add626ac17fcf50519", + "address": "f1g5xuyyekh7lfnect34c7kwh655mcqd66qwhn4ki", + "decode": "376f4c608a3fd6569053df05f558feef58280fde", + "params": {} + }, + { + "public": + "0309d33aeeb92228f69e769b17493c25393c24d3f227e43ba1c64c803e4ec4d707", + "address": "f1zzu6fr3wbenehaumm4m4gmetvkrmbnbofbjhwoi", + "decode": "ce69e2c776091a43828c6719c33093aaa2c0b42e", + "params": {} + }, + { + "public": + "0295fcd67cdd596a34c5ff5a0b744c0454f9aaaff0aeeb420cf1f5821af079c2fa", + "address": "f1vrtguzm3hloryv636qq45iizcbshe43ij6lghla", + "decode": "ac666a659b3add1c57dbf421cea1191064727368", + "params": {} + }, + { + "public": + "02d7014e077637149256b9f1b31b2e267e00c7fc762d045724ae94a5f57947063b", + "address": "f14bgqzov6aqhdcmts56z5m4ktvqdgrj55v6brrgq", + "decode": "e04d0cbabe040e313272efb3d67153ac0668a7bd", + "params": {} + }, + { + "public": + "0337abf8980d818c4efd1030dca5116fd075535a216f7bb67f16aae37473c73e09", + "address": "f1a6qy2kjtgy5hqeqay7qdgm5hs2bftkeuxhgwfxi", + "decode": "07a18d2933363a781200c7e03333a7968259a894", + "params": {} + }, + { + "public": + "02fce6b5a89548e824adb9236c3e051477470225b5f5f97566622493007323d09a", + "address": "f1xszhqtrzgv5pvubppi25pheyjq3tcr4m4g6pd7a", + "decode": "bcb2784e39357afad02f7a35d79c984c3731478c", + "params": {} + }, + { + "public": + "03eb8343ea623539e843728c0151241a31e55eba872b6c8df8143567429653063a", + "address": "f1ks6sv7dprwdiuh45tc7k2n2eryxiwlxchhdmp6q", + "decode": "54bd2afc6f8d868a1f9d98bead37448e2e8b2ee2", + "params": {} + }, + { + "public": + "02ca9b7c28ce89678af8dc73d2c566e8920af5a03135bffa0df540bcdb7c8705ab", + "address": "f1ck3sgwrxciyohmd5epx2udf4l2vnfos4ds7uc4q", + "decode": "12b7235a371230e3b07d23efaa0cbc5eaad2ba5c", + "params": {} + }, + { + "public": + "03f7f83851dd96242964d8a5b36ab8412d7648883bb275fda5a33702e9edae014d", + "address": "f1g3fjsqxcxzzs4xng4f45ngh4x767wd23manrzfi", + "decode": "36ca9942e2be732e5da6e179d698fcbffdfb0f5b", + "params": {} + }, + { + "public": + "02dfaaae3fa5d235df03357034cb5a2f17ca2b24644a87bd1efc1321d800019c9e", + "address": "f1rv4zfwbernmbjwj4sx4ngr44fi2muoozyhprtla", + "decode": "8d7992d8248b5814d93c95f8d3479c2a34ca39d9", + "params": {} + }, + { + "public": + "03c2e1b10d4c2cae9b827d342b1234f3581bcac1f7f4c7cecb24e74ad473932478", + "address": "f17k6e3c22mquyqz7mkquz7r4k2kd4fntkonobfrq", + "decode": "fabc4d8b5a64298867ec54299fc78ad287c2b66a", + "params": {} + }, + { + "public": + "0391856cfbb6b9fb962bd00493b51ab16a9a91e4595db489443ad25d02e2194c07", + "address": "f1z52xippkyrkocswn3zdqrwszgo4bijut4yp67ca", + "decode": "cf75743deac454e14acdde4708da5933b8142693", + "params": {} + }, + { + "public": + "0228189fc506973c0ef8d35fa78f35f8573a0d27913c936bf6936c0823adeef846", + "address": "f1vprcpgpvxhky7cbj4rwapemoezf2lapzt4ei7pa", + "decode": "abe22799f5b9d58f8829e46c07918e264ba581f9", + "params": {} + }, + { + "public": + "02f9bc5344aa23f142eb94d3c21013eac3a66d78cbf2fc5f37566f25b1be53ff2d", + "address": "f1yat55tsokkmal6g5c3qsrbrgm6vvguz3l7nsvfi", + "decode": "c027dece4e529805f8dd16e128862667ab53533b", + "params": {} + }, + { + "public": + "03391718bac23f8459584a4ccd459efffce4ecd62164eac7d57915843b9b8dfac0", + "address": "f1ggjtlxersu7l2h7jzop5ualcfhgsdfvwado4ota", + "decode": "319335dc91953ebd1fe9cb9fda016229cd2196b6", + "params": {} + }, + { + "public": + "03f4e9f9e6828a70833b67a15b817650325e7223ef045a223037187711de05395d", + "address": "f1cv2bh6bxijvtkpwtgnumcmtbdo3wcrkuemgmmcy", + "decode": "157413f837426b353ed33368c132611bb7614554", + "params": {} + }, + { + "public": + "02142c0ea1befd530e276780d30a5e32be9fd4fac4f848dce4e39fc2d002b0b764", + "address": "f1mqgsxo2okwqjrid7zixcyu2klklk57sxg6hnnoa", + "decode": "640d2bbb4e55a098a07fca2e2c534a5a96aefe57", + "params": {} + }, + { + "public": + "0264b275547e83ee6c8b5ba4cd581c9dce01295fa002ab818b27ea3d69c4daab87", + "address": "f1if6b46anmc2b7b75cktn27g5xdniyduniicm4oy", + "decode": "417c1e780d60b41f87fd12a6dd7cddb8da8c0e8d", + "params": {} + }, + { + "public": + "02ab05c347466a25af4eefbdc2b146da51228dafd436a90a95644ced5c33925809", + "address": "f1me6zkosdvu3tpj3o2rzaov3ktqlanc3f5bsusvy", + "decode": "613d953a43ad3737a76ed47207576a9c16068b65", + "params": {} + }, + { + "public": + "0293a97eadaf89e42b85b4e1f80ed232760aa36f3052fe976c11e7d226506029cb", + "address": "f122z2qasianxjr6ehnonfh32yqy2rczr6reofcoy", + "decode": "d6b3a80248036e98f8876b9a53ef58863511663e", + "params": {} + }, + { + "public": + "02ce6298be7bd642bc4300cd3b4cd25f53751e9ba8522c83ad06b397aefe537526", + "address": "f12sla54hi543kcvtzzstae4wtxlrgtvynx2wbelq", + "decode": "d4960ef0e8ef36a15679cca60272d3bae269d70d", + "params": {} + }, + { + "public": + "0360fecbceb38daa1b36b0a015bdf2e8c9dba2a3760eaf7df3afc1791f86cecefc", + "address": "f1kpfkleohhl7pmot365pac35573uf2hvfeuvnuai", + "decode": "53caa591c73afef63a7bf75e016fbdfee85d1ea5", + "params": {} + }, + { + "public": + "02ad6402f2d4cc8cc9d70401087724c3973129d506ea2e93614bad9d3fe5b18615", + "address": "f1x7ggtx2c6sszsvyzirprljlqp4shvx5ff655kdy", + "decode": "bfcc69df42f4a5995719445f15a5707f247adfa5", + "params": {} + }, + { + "public": + "03a39e0f8a9be7f57ecfc3046a15c9379f8fc42aaf52bbcdce6317182f530de022", + "address": "f14czwhr3zlkrzsrsnznfn2rcwtxw4npgndicfy6y", + "decode": "e0b363c7795aa399464dcb4add44569dedc6bccd", + "params": {} + }, + { + "public": + "02d46bea4630becaa676465283276e1407f0f258e00e64ef4e6f6d7cf3456c9f47", + "address": "f1ankl5gq3shlypmcrsbp65puy3khhxthcdrb42fi", + "decode": "0354be9a1b91d787b051905feebe98da8e7bcce2", + "params": {} + }, + { + "public": + "025ce2ae12d746099d4ccd58de7384f87cfd4de5bf30c692762cd7b69ed38d98ba", + "address": "f1vpk5m77guddyfv6rhot2j2btqhnc2yuzcqlzq7q", + "decode": "abd5d67fe6a0c782d7d13ba7a4e83381da2d6299", + "params": {} + }, + { + "public": + "028c1fbcfdf64082143759ed5b8fed08cd1d909e69db8406929cb33d231a859ee7", + "address": "f1mqnqiosm6dt7a5pjph7ghnmuegga3fowzgrwlvq", + "decode": "641b043a4cf0e7f075e979fe63b594218c0d95d6", + "params": {} + }, + { + "public": + "02fe259c9fd421832697a0af33f6fb8a4e2192961dbb05358b29da920d4a7ebea8", + "address": "f1urtigmtcpoczctpkuqw72yaj5mmyvvyrps4wnzi", + "decode": "a4668332627b85914deaa42dfd6009eb198ad711", + "params": {} + }, + { + "public": + "03ed56dc4e50bfa6c6d147d8a61024249b1d6b345c9b4e618bf1dda88c0881e02f", + "address": "f1rmezm2wqfzlwibkxqz2pczanhipfvvgein7jm3a", + "decode": "8b09966ad02e576405578674f1640d3a1e5ad4c4", + "params": {} + }, + { + "public": + "0335db0cb8e276b3703ce576cc48174013740575828e5a520fd9ff4be9f1946fb8", + "address": "f1nq3fcfqgj2edz57k42fn4xm3ondp6mllkcacbni", + "decode": "6c365116064e883cf7eae68ade5d9b7346ff316b", + "params": {} + }, + { + "public": + "03d8c4989fa8afa348701a040b79af9c27599324b77896544c60ebee3d4e877f3a", + "address": "f1nswigmayixzgkev2ncojzncowcv4wh6hehkahpq", + "decode": "6cac83301845f26512ba689c9cb44eb0abcb1fc7", + "params": {} + }, + { + "public": + "031b38636b0d2bf26803d26ebc0d925d56a2dc8fa26a3dbdb8496d7f394195657e", + "address": "f1b53afwfiludghvj2raonnw4az3pynvf3d46jgyq", + "decode": "0f7602d8a85d0663d53a881cd6db80cedf86d4bb", + "params": {} + }, + { + "public": + "03b4f0a9df5c42204edcb464cf2e20176c4448ef9c19d920f64eca4048fb5b3c55", + "address": "f13ndee3t6mk7abebwoh4jm2tkhrxrp6t2alnkwua", + "decode": "db46426e7e62be00903671f8966a6a3c6f17fa7a", + "params": {} + }, + { + "public": + "03cc50e91bac15c4434a68f681a408f22707f193d5829e3e8c5ac1e7f35d6acb2c", + "address": "f13un4atkzsjz5g6eb5nh37r4i7wnzgtewb6gvbwi", + "decode": "dd1bc04d599273d37881eb4fbfc788fd9b934c96", + "params": {} + }, + { + "public": + "03a38f04d3f1af5d7b8f49f620618b995f2858df202e3652a65b8d79b79e9da2d2", + "address": "f1ywk6i54om6kbn7bjese4vapsod4tevmc2yq5g3a", + "decode": "c595e4778e679416fc292489ca81f270f9325582", + "params": {} + }, + { + "public": + "02eb2f929daecf39246262bff73828ad7a5246032ca7fbc23449ca65b54376e524", + "address": "f1lljm7dz3kkqtrs57kb2ihoyavf5e5kytkceesfa", + "decode": "5ad2cf8f3b52a138cbbf507483bb00a97a4eab13", + "params": {} + }, + { + "public": + "030163c336e93fd2acbcf94fb48c3e4d8ea4796b2c884f598e20c2016d55f00356", + "address": "f1isvk6rviqwk6mxcbkz2s5zloj5qo3hfbzj37k5y", + "decode": "44aaaf46a88595e65c4156752ee56e4f60ed9ca1", + "params": {} + }, + { + "public": + "031a31cfd0ab4df8a267b9590fb0528bcb0728020683eff976f817bc49137c3f57", + "address": "f176ly46wvefqrodhj4yljegkkukyoohjqqktgfhi", + "decode": "ff978e7ad52161170ce9e61692194aa2b0e71d30", + "params": {} + }, + { + "public": + "03832af7d2c99098b68a8e70b5b79bd80df4b7d61c3ffa0b30a66d3e90c4129990", + "address": "f1hngprocmphqcfcdgkhbahhdjs66u5fhomibzzca", + "decode": "3b4cf8b84c79e022886651c2039c6997bd4e94ee", + "params": {} + }, + { + "public": + "02b79beb26e67662d2705a0d925fd2939a57e2ed8aaaa7c4fbb70a73a7a757ad70", + "address": "f1bnloit2rto7nhziwkmlzz54ocxxtpicctkbmpvq", + "decode": "0b56e44f519bbed3e51653179cf78e15ef37a042", + "params": {} + }, + { + "public": + "03fd3f6eada40ddfd58655cff445be40314849be37a532f431b83b996a31faf409", + "address": "f1glym6zlxvgcqzuhisv7dhq3vofp7jernxz7733a", + "decode": "32f0cf6577a9850cd0e8957e33c375715ff4922d", + "params": {} + }, + { + "public": + "02cb199afc17b501c18ce40c8e4429cd54c995c842a7cb9af2255c50acd4ccced6", + "address": "f1s4npyoj56phvksdmpc2s3snhqi4ohljg7nj347a", + "decode": "971afc393df3cf55486c78b52dc9a78238e3ad26", + "params": {} + }, + { + "public": + "02f2ea206d348e9f836a85ccd4c557bbcd38717d1140caec598de2c0f7529fc699", + "address": "f17qig5th23rlugsip6drjxtxtkrd4xc27xgttxky", + "decode": "fc106eccfadc5743490ff0e29bcef35447cb8b5f", + "params": {} + }, + { + "public": + "030ed0396ef05287fdc31cf8dc9b164ba21683c29c47d2f223306d97fbceaf1e54", + "address": "f1lnhewqe4bmcgddrl4fvrfuxelk6plpi7c56xv4y", + "decode": "5b4e4b409c0b04618e2be16b12d2e45abcf5bd1f", + "params": {} + }, + { + "public": + "039bba0880443633548a3632517ba30a7ea59556b9ca079d99aef57dc8a5588aef", + "address": "f1iz5bpt6z57yzwq564f3mipmnr27opb65447szyy", + "decode": "467a17cfd9eff19b43bee176c43d8d8ebee787dd", + "params": {} + }, + { + "public": + "02d262f40bcdd4e970d88f366f9273dced5ba9215d1c043ddf2b7476e8f6860298", + "address": "f1bcfbwwrpplgts3be6gzbf7gibultwvtcffdsm4y", + "decode": "088a1b5a2f7acd396c24f1b212fcc80d173b5662", + "params": {} + }, + { + "public": + "026ca65da3aeb99de12119119f783d75cbf0f66f44ebddcb9f7a4c8bfb90fb6556", + "address": "f1ar3zgs5mq64q2jbjtxgtnwj2lvt7ydwddoor5fa", + "decode": "0477934bac87b90d24299dcd36d93a5d67fc0ec3", + "params": {} + }, + { + "public": + "028369666997b563e56e537651a9fde1aba703cd0e00f99cdd0e3dc94bdcf846cd", + "address": "f1a3tylyt7t6z5slrd7uqyoejkwjww4yocrov3mzy", + "decode": "06e785e27f9fb3d92e23fd2187112ab26d6e61c2", + "params": {} + }, + { + "public": + "030fe5c13ab4d36f21f70e400ea7cf6acf62ab17824e9c489af3a7ef3979c6e482", + "address": "f16ug3tolqcb63vt6mcanqn3xrzqoiajtswad3eha", + "decode": "f50db9b970107dbacfcc101b06eef1cc1c802672", + "params": {} + }, + { + "public": + "0281d89c5cc92cd3f6abd28eddef58b093bc350d53e1e80dbbeeb434b015c9b4da", + "address": "f13zouqcctgxe5eyulqqy7ryixrw4rjululkspzxy", + "decode": "de5d48085335c9d2628b8431f8e1178db914d174", + "params": {} + } +]; diff --git a/test/address/icx/icx_test.dart b/test/address/icx/icx_test.dart new file mode 100644 index 0000000..088d0a6 --- /dev/null +++ b/test/address/icx/icx_test.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/address/icx_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVecotr; + +void main() { + test("icx address test", () { + for (final i in testVecotr) { + final params = Map.from(i["params"]); + final z = IcxAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = IcxAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/icx/test_vector.dart b/test/address/icx/test_vector.dart new file mode 100644 index 0000000..09a4c97 --- /dev/null +++ b/test/address/icx/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVecotr = [ + { + "public": + "023a51f1e74620da7e73b958835d98c2348bff89c6105746f0fdbc94185205e116", + "address": "hx618cbff1d4cb828b4b043bd02a75f7a12fb4e33c", + "decode": "618cbff1d4cb828b4b043bd02a75f7a12fb4e33c", + "params": {} + }, + { + "public": + "03aa3cb38b9f578912ad2e2dad5dcdf6a83df09c6096f0493d9586d455571eae04", + "address": "hx177e75c5c4ec18836c1f03b93e4c2f08f4be4b96", + "decode": "177e75c5c4ec18836c1f03b93e4c2f08f4be4b96", + "params": {} + }, + { + "public": + "028d1ebddcbdbab47774625ad08d1435e09cd9c235d558ac8d525e8b3aa700329e", + "address": "hx5590e49f8156478dfd976fc20f9d933992bb3787", + "decode": "5590e49f8156478dfd976fc20f9d933992bb3787", + "params": {} + }, + { + "public": + "034d9578006242fa0a39a2d7877d4c98ce82d974750c6b667420631520f6df87a5", + "address": "hx7026f25879cd3129722c8ad48f1d5306c0ab29a5", + "decode": "7026f25879cd3129722c8ad48f1d5306c0ab29a5", + "params": {} + }, + { + "public": + "02159626b7adb4198d74fda9f8a67a4eb62c07367208dfb49e66954953bef549cf", + "address": "hxa06a7b199ab49a2395bb9025b4c23100ff5c267f", + "decode": "a06a7b199ab49a2395bb9025b4c23100ff5c267f", + "params": {} + }, + { + "public": + "0329a6081e5dfedfafc1f5fe5f7dc6e2d6e0e720cde51a4e5b9de105b56ea13084", + "address": "hxb7d7f4cdd0b107c8c833b3854a62dafe3e268a8a", + "decode": "b7d7f4cdd0b107c8c833b3854a62dafe3e268a8a", + "params": {} + }, + { + "public": + "0227f5a195763ee93b2b120a6a3772afb911bb8bfa7714c5f73d18b562d4d6b2a4", + "address": "hx5a829f5158ab8a80b469079aae7fcdc5dadce9a8", + "decode": "5a829f5158ab8a80b469079aae7fcdc5dadce9a8", + "params": {} + }, + { + "public": + "02d40a6821e8414e48bfdc0f0195099c9944564dd4eefb92ddba24758ab96e2893", + "address": "hx943cdebff39db7b35cc23ada42e1e2265dad79ec", + "decode": "943cdebff39db7b35cc23ada42e1e2265dad79ec", + "params": {} + }, + { + "public": + "0238c3875c8999d7d36581fa3baee377d0ba20fe2affd0997fb493b751af004533", + "address": "hxb20dca53942ab0e2e9555204eac391c5212added", + "decode": "b20dca53942ab0e2e9555204eac391c5212added", + "params": {} + }, + { + "public": + "03023a38b4f900d173bf36556c06cfe8893393e3d4561b60a85f5bc537bcb2f182", + "address": "hx2509a4abeb626f8327a0bc91bbe1a062760321db", + "decode": "2509a4abeb626f8327a0bc91bbe1a062760321db", + "params": {} + }, + { + "public": + "02f627c6ddf14d29a626fbb328e566f8d63b7abce60ed2718120600db4dbeb67da", + "address": "hxce8276fb975a99b9a74e7e7a431cfccf317b5ed7", + "decode": "ce8276fb975a99b9a74e7e7a431cfccf317b5ed7", + "params": {} + }, + { + "public": + "038d28cfe77dadaba05a3548432c28732678798df1c12d2141af9c9eeb4d75cf3a", + "address": "hxabadfcb916096a07c0817a55557ae25b40829914", + "decode": "abadfcb916096a07c0817a55557ae25b40829914", + "params": {} + }, + { + "public": + "03f6e3e2331252dd5675d5e62014fbe1df7405cde9208772585a6b8bf46605e1d5", + "address": "hx73048fc30000e5bbc734c9d621373adf404558ba", + "decode": "73048fc30000e5bbc734c9d621373adf404558ba", + "params": {} + }, + { + "public": + "03b291286add6b897e8fd24a78b3edc58c26fdaf6defdf4ec5616897fa52006f26", + "address": "hxb4f7cd3c35e49f2a4557e42ccc021f71fc0bd7f2", + "decode": "b4f7cd3c35e49f2a4557e42ccc021f71fc0bd7f2", + "params": {} + }, + { + "public": + "0230c3ae2f8a89126d291102abf7f755e9c46208ed7b3d746781044d1680b6e7e6", + "address": "hxa9854668cd934dc374ddd8fd87b1d62ba873243b", + "decode": "a9854668cd934dc374ddd8fd87b1d62ba873243b", + "params": {} + }, + { + "public": + "0241a5684239f9b5082f21b0d52bc58497196a4978949968b468953337d81b9377", + "address": "hx10267a6b2caf95eef0a9cde06270ebc871054233", + "decode": "10267a6b2caf95eef0a9cde06270ebc871054233", + "params": {} + }, + { + "public": + "032af54d3fd3730ff9668f3be7a7d322b25c0e332c3a2497fdc9d0eb7524b7ad44", + "address": "hx0794e5fc0731f55751124738d765fd3879da5e7c", + "decode": "0794e5fc0731f55751124738d765fd3879da5e7c", + "params": {} + }, + { + "public": + "025958a3082f0ae94e7928616380c379beab4cf01f46132bb784301cdc29cd0110", + "address": "hx27596e89384e0d99c67613aa673fe906695cbf76", + "decode": "27596e89384e0d99c67613aa673fe906695cbf76", + "params": {} + }, + { + "public": + "0355b1440e14c7a1d0ceb43551f87c0c90a5ee34a2447e45d99c1379180c82a5c7", + "address": "hx9b4b32b4967ae55bfd5e51289da72b6326120229", + "decode": "9b4b32b4967ae55bfd5e51289da72b6326120229", + "params": {} + }, + { + "public": + "0307e39449e76e6d05645389a172e103e4e8f505a90ab9247d7f74700b9a2f4b18", + "address": "hxc38d3a88a57417f764d43456855d935d8b6b28d4", + "decode": "c38d3a88a57417f764d43456855d935d8b6b28d4", + "params": {} + }, + { + "public": + "022dfcc750c75528b756dbfaee3faa80f6f8f80b51b35d253dd23c687b6c7c5eb2", + "address": "hxd9910b43070dd8bb121c4e399642ab87dc6b2bb1", + "decode": "d9910b43070dd8bb121c4e399642ab87dc6b2bb1", + "params": {} + }, + { + "public": + "02ad3c53a07532d23e1ea383040bc058ab0116033c79c209b4050247d45caa9fb1", + "address": "hxfb14e9a762ae7d072bd316816d083840960b8074", + "decode": "fb14e9a762ae7d072bd316816d083840960b8074", + "params": {} + }, + { + "public": + "02092fc336fcff8a9047c39faa3118a7211d63724501cb1761175fb08334e96d24", + "address": "hx247a94eaef48b8a87adca43e9d298d8b409e7ba0", + "decode": "247a94eaef48b8a87adca43e9d298d8b409e7ba0", + "params": {} + }, + { + "public": + "03d1626245b49482222cc3edfcd0887aba1db254d848e184cc18e8f4f304994fbb", + "address": "hx8f75b553dc909347d6722cb795a4b76990c8cd50", + "decode": "8f75b553dc909347d6722cb795a4b76990c8cd50", + "params": {} + }, + { + "public": + "03763eede8af4e9ad0a05e2c3ae9fac92e88981cb58802e32f8490795d0d593784", + "address": "hxefd20a32148fc8446b07ba0c65df86718f6d81a9", + "decode": "efd20a32148fc8446b07ba0c65df86718f6d81a9", + "params": {} + }, + { + "public": + "03219b83ce661a5cc894f30ee1542bc977aba85d8de690c9aa0691304ff68913d2", + "address": "hx2cc69d5540999e1aedc5afeda362dddb9475e07c", + "decode": "2cc69d5540999e1aedc5afeda362dddb9475e07c", + "params": {} + }, + { + "public": + "02f19319bc79c81cd39238ee8afb1b70ac1cfc143291247bc0c07587ceba06ed3b", + "address": "hx7908887c9533097d2ff2a5279f44b7b95a42e595", + "decode": "7908887c9533097d2ff2a5279f44b7b95a42e595", + "params": {} + }, + { + "public": + "024c072ee31347b399f0822930aa76ab83c30dd9a8a26b99dd0b03612ffd6dea55", + "address": "hx9defa27e60a532c7edcd3a6728f03ceb06e8e270", + "decode": "9defa27e60a532c7edcd3a6728f03ceb06e8e270", + "params": {} + }, + { + "public": + "02646289015d06c7560570a51117ef481ccd7144a835765263175a5b7d1030092e", + "address": "hx642815daa94d5dd9ee2b5fd451fd91e3f85e67ff", + "decode": "642815daa94d5dd9ee2b5fd451fd91e3f85e67ff", + "params": {} + }, + { + "public": + "03646bddb350f11f16b7623424b30167bbe0aba1039d4125b8943648053ceed655", + "address": "hx2210a9e78d8e5747adef8d775577d70218daa418", + "decode": "2210a9e78d8e5747adef8d775577d70218daa418", + "params": {} + }, + { + "public": + "03344e6a58d5d23414ff2757a5044b0492d27812438a0540ea2113ea0b09936a91", + "address": "hxb806361099f7afd42293d0406ca36299ab2af4d2", + "decode": "b806361099f7afd42293d0406ca36299ab2af4d2", + "params": {} + }, + { + "public": + "02b2798e956b17fd5328f3866f19bfc6bba007cf81b8054465a7ee31febdc82584", + "address": "hx24a8bda757c90a9f8d704b3c199e1149fa404897", + "decode": "24a8bda757c90a9f8d704b3c199e1149fa404897", + "params": {} + }, + { + "public": + "036698263e395fdea719a4cd88567ecfb292223e22a788c57b4774847581bba890", + "address": "hx4fc2ff63306a7d335e216aeae9090568e336761d", + "decode": "4fc2ff63306a7d335e216aeae9090568e336761d", + "params": {} + }, + { + "public": + "020ad80bc0195519a07f1b80c7589abbf4f7c8afa191c4e5eaab8d410df1507d97", + "address": "hxffcab0021ccecd6d5139d6f49e4e63d618eb399a", + "decode": "ffcab0021ccecd6d5139d6f49e4e63d618eb399a", + "params": {} + }, + { + "public": + "036ac32dcd313fbdfcf4276c1caf5890caa39f53ba2382c2740a2cfa68374e2ee7", + "address": "hxb80185d2f37417a76c27d530ff427f659079f3be", + "decode": "b80185d2f37417a76c27d530ff427f659079f3be", + "params": {} + }, + { + "public": + "02eadd7d846b9633b0dc16c04d1b3d4f840617e3f13a24849709354c105e6d8e78", + "address": "hx98b83feda5442b8e4872062b827eda1f8c872531", + "decode": "98b83feda5442b8e4872062b827eda1f8c872531", + "params": {} + }, + { + "public": + "02c262ac3344bcdb946751601b241607ea315f59aacb5d05bf22647d53c7d068ab", + "address": "hx9f3e511e1978be92e2a69d7d5c6a23f666eebb41", + "decode": "9f3e511e1978be92e2a69d7d5c6a23f666eebb41", + "params": {} + }, + { + "public": + "03fd21e191b4d725a4f5cf1125d7756432f90a41e74076103dda362d8439d7d2c2", + "address": "hx6554e4c775fce44c662a392fe72ddf2bcc3ed481", + "decode": "6554e4c775fce44c662a392fe72ddf2bcc3ed481", + "params": {} + }, + { + "public": + "02d527032c9896bedf7677803c689e33048884b17ae71165f892f0ebe6d793d5fe", + "address": "hx7aa3043f3a326d82b3191a8988de13104562cb4f", + "decode": "7aa3043f3a326d82b3191a8988de13104562cb4f", + "params": {} + }, + { + "public": + "02efcda087ad31650d424c819e5c6f796ca589d6d9a0aa24f5af325de820dadcea", + "address": "hxe57d2a582167539242819d993a1698082ffb3a91", + "decode": "e57d2a582167539242819d993a1698082ffb3a91", + "params": {} + }, + { + "public": + "03e9285976e67b23e68cb42757aa44bf66b5e97b5f30be4f6536e76b508e0c6cbd", + "address": "hx0ae6043f2963fecc0fff535b3354bea85af67723", + "decode": "0ae6043f2963fecc0fff535b3354bea85af67723", + "params": {} + }, + { + "public": + "023fee76319d71770f1c59305584d3d142ba2808dd308eaca58918e2c2d250eefe", + "address": "hxb525f95c577553b423d2e979eefb2e94d81766aa", + "decode": "b525f95c577553b423d2e979eefb2e94d81766aa", + "params": {} + }, + { + "public": + "0251b2a1ab635cfe8a1edf5e159f871c571d665325d7e0c155db77e53f2a3b69c9", + "address": "hxe033ac7ff731ab803071b5323ce4380b286cc14d", + "decode": "e033ac7ff731ab803071b5323ce4380b286cc14d", + "params": {} + }, + { + "public": + "021015f7c2d6af27a1bbbfbbced85d8e38da94823441295057a3878c6fc5343cce", + "address": "hx72bc309114a50a194f79f7392b17c3a0e4fc4102", + "decode": "72bc309114a50a194f79f7392b17c3a0e4fc4102", + "params": {} + }, + { + "public": + "027ac4c04a0fb4a32c867ac5dd495deaa97105413bbb36371bbc7d83933b014a54", + "address": "hxbda7d46043096d81fd91465bdaeaf80270847b6d", + "decode": "bda7d46043096d81fd91465bdaeaf80270847b6d", + "params": {} + }, + { + "public": + "02cf16694f452d2e2b1a679b1b02b327a8a79b17acf74d1d0cec0f2e5db79cf006", + "address": "hx1070c3e710c2fbb3b8ff9a2f3dc9412dd751d8ff", + "decode": "1070c3e710c2fbb3b8ff9a2f3dc9412dd751d8ff", + "params": {} + }, + { + "public": + "0227d56c207392ce9e28ca3e9b6d28a671f594ee129cb5554826317bbdc3d9bb6d", + "address": "hx03c9d9d667b02db9e8a57c14da97579ad6e19939", + "decode": "03c9d9d667b02db9e8a57c14da97579ad6e19939", + "params": {} + }, + { + "public": + "02c54aa95a365f203ee4e0a14b85402b85a71cf6ccb8e3f00983828d2ef40cc7c5", + "address": "hx248da6f4924302f33cc875689ae205db21d4330e", + "decode": "248da6f4924302f33cc875689ae205db21d4330e", + "params": {} + }, + { + "public": + "03f8c50b5a3e1e2982e4145b42f1de520d872d27f039165ae7291c958e68e76b68", + "address": "hx0840e08ae3ffebcc54ccf33dff623ff6e04496cf", + "decode": "0840e08ae3ffebcc54ccf33dff623ff6e04496cf", + "params": {} + }, + { + "public": + "02556b576abfffb582916c86c2c20094ff2f0aab0f830dc00fb227a3d5daee3813", + "address": "hx27da67e03fc76e5c890e20a61ff4c13b8e59d74d", + "decode": "27da67e03fc76e5c890e20a61ff4c13b8e59d74d", + "params": {} + } +]; diff --git a/test/address/inj/inj_test.dart b/test/address/inj/inj_test.dart new file mode 100644 index 0000000..f1843b3 --- /dev/null +++ b/test/address/inj/inj_test.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/address/inj_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("inj address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = InjAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = InjAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/inj/test_vector.dart b/test/address/inj/test_vector.dart new file mode 100644 index 0000000..2402028 --- /dev/null +++ b/test/address/inj/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "028774cc5f11996a24f89b2ab8e8cc72070fa903bbdf6f1aafc7b2ff6bdad160f8", + "address": "inj1mpu4l7dk2huhssfdrv3etchpxd62udeduyltcg", + "decode": "d8795ff9b655f978412d1b2395e2e13374ae372d", + "params": {} + }, + { + "public": + "02202dac31a5d5ce4fcddc46cc5df5dc4fa44aa051a253ae0a49aff3d9bc38f70d", + "address": "inj14t9p8qgmxrsmyzgxwlkpdt786md26mahcr3ead", + "decode": "aaca13811b30e1b2090677ec16afc7d6daad6fb7", + "params": {} + }, + { + "public": + "0209ca06a08de7d67fe0a4bcd3f3a1c2fd260be51ecc9e77af1a9f1c47c0f4026c", + "address": "inj1t0mtl277wy80u8fnndpxphr3qm74szm654j7nz", + "decode": "5bf6bfabde710efe1d339b4260dc7106fd580b7a", + "params": {} + }, + { + "public": + "027ff286058558b41a6cb325e20d701c99f53006fcd9a4dd4db8a755b530760329", + "address": "inj1vd4rzp8e028v6fj3adqf3lj25duurkgdav6zc4", + "decode": "636a3104f97a8ecd2651eb4098fe4aa379c1d90d", + "params": {} + }, + { + "public": + "030b1491a7015db773f0e9c4a82fb74a20420fddd684ea9ba8ddb4f9af0508294f", + "address": "inj1njz5304rwcksw60hurur98hxachj7lemv32ejh", + "decode": "9c8548bea3762d0769f7e0f8329ee6ee2f2f7f3b", + "params": {} + }, + { + "public": + "03ef104b4fea3f73c6fe414c630036eb46d91e3afdede325b8ca9fb425aec5aa0d", + "address": "inj1cmqul3c04tlhtal34ujc4xmdryhdj35t4rdfrp", + "decode": "c6c1cfc70faaff75f7f1af258a9b6d192ed9468b", + "params": {} + }, + { + "public": + "03a805669a7dfc31efb6c17e82f614a7bf1a99435d3edbb13c5478af8fb1097113", + "address": "inj10ldj0xeguxaztz5eukrkewweue6r9jhkw87lxx", + "decode": "7fdb279b28e1ba258a99e5876cb9d9e67432caf6", + "params": {} + }, + { + "public": + "02a9a4e32a99540f162887a1ba12c705b5c53d3eaea96c0a821870095f1081b4af", + "address": "inj1dkqglrnvg685ulzn6d6xnxnalzacgeke3huc4r", + "decode": "6d808f8e6c468f4e7c53d374699a7df8bb8466d9", + "params": {} + }, + { + "public": + "032a3455ed7fc28d4553931328c5b436e1e1d79a2c21c775282954a35b23cbd81a", + "address": "inj1g7crg48uwdzu5jk08765ruz5agrkqnxauuf2yf", + "decode": "47b03454fc7345ca4acf3fb541f054ea07604cdd", + "params": {} + }, + { + "public": + "025c8825044a081e20b941331fd75627425ac60f43d149f67a694b06b1a75d040d", + "address": "inj1u9qvg0fyf4je5up4yqeulv7grxg7ynx59gsc66", + "decode": "e140c43d244d659a70352033cfb3c81991e24cd4", + "params": {} + }, + { + "public": + "028cececf369e7e0f4cc2160a1a3fe88bb5b1983889db16405d17730b61d8ebe1f", + "address": "inj1w5qxwh46vrk787c9jjz0gnzy2p52w97d4vsx6n", + "decode": "7500675eba60ede3fb059484f44c445068a717cd", + "params": {} + }, + { + "public": + "0290f1596f36d76c6686394fa31d3e50b601dcee85edba8c69d38d716d2c43642f", + "address": "inj1q4hglwse39c9xzp2rrpxvmr0cp33efwrrrzvzg", + "decode": "056e8fba19897053082a18c2666c6fc0631ca5c3", + "params": {} + }, + { + "public": + "020cb3ec97a9d22081cf9a54bc4ea7d7dcd262c8a0428fbbb583f7159c0b21c1f9", + "address": "inj1wseh8pru3d06sn4rge4e7e03g292wfwqtcslac", + "decode": "743373847c8b5fa84ea3466b9f65f1428aa725c0", + "params": {} + }, + { + "public": + "031233b729a5d70452ac9d782be1dfafb74ee2edf9d87d87a890e37d716123fe5e", + "address": "inj1z52sc5ftt9vkd4n3vxqgusqejr23q55t9l4hqa", + "decode": "15150c512b595966d67161808e401990d510528b", + "params": {} + }, + { + "public": + "020d2e8675eab2f5b9b0acb9e5dfd1d224ee0cf5624bf23a4d48a45b9196181235", + "address": "inj160vwepf5ay2lput33q97m85x2ue3j3rs6vxt8w", + "decode": "d3d8ec8534e915f0f171880bed9e865733194470", + "params": {} + }, + { + "public": + "02e47aafa16cd56393905f7a6d8ae1ec1730864671466683346bc7a253189f5c9f", + "address": "inj1ya9s5ztma3e85pdl8td09ms4jk364fg85alh54", + "decode": "274b0a097bec727a05bf3adaf2ee1595a3aaa507", + "params": {} + }, + { + "public": + "023c9860c49e81dde2a89e23f219937108d4cda99e8a1c02c19b19761030103bab", + "address": "inj1sq04l3kufq00xyr2t5kst68yhsnn89vka2hv69", + "decode": "801f5fc6dc481ef3106a5d2d05e8e4bc27339596", + "params": {} + }, + { + "public": + "02f4f575fe363bb651eaf5be3aca335677d32d3d9dd420f26f3180835da75fae07", + "address": "inj172xsrkc5x68guhqvav8cpmxaqnyma8763448au", + "decode": "f28d01db14368e8e5c0ceb0f80ecdd04c9be9fda", + "params": {} + }, + { + "public": + "0235cc003f5460993019a4b2c9d48d949c3b3e5bffd9619e20036d3c2061c3146c", + "address": "inj149k2qayzq90gfgfyd9476u63msfz9ea5h4fkhh", + "decode": "a96ca07482015e84a124696bed7351dc1222e7b4", + "params": {} + }, + { + "public": + "0347a0e2ab24f013c4f3950eff2b6bc660e7cf8d7c9b2a6335a5629cae9da1eb96", + "address": "inj1kx3hxajkrnkgf9h3eqnhfh309ugqqnmel05mgh", + "decode": "b1a37376561cec8496f1c82774de2f2f10004f79", + "params": {} + }, + { + "public": + "02f64f8b331101855d7458a8077774c76da5c8391980fc5fa62b15d593dce100ca", + "address": "inj1md77eagzc9qvhk57pvyvx5h8arpwyt9egj5m2f", + "decode": "db7decf502c140cbda9e0b08c352e7e8c2e22cb9", + "params": {} + }, + { + "public": + "020c8d64e6b345f226cda32f23369cb998cfb31ad487f29c5d80abb3ac1dd5039c", + "address": "inj1p3sekk7n49yvq46tgls5hkakmp678egzktdsjd", + "decode": "0c619b5bd3a948c0574b47e14bdbb6d875e3e502", + "params": {} + }, + { + "public": + "0340b9c727e98b8f933389c6463e0b7a15127431c7a2920b6ca5a81f0b62d69679", + "address": "inj1d6z0dhljl6ygmy24aql8ehgd6tvncxjfdlr0xu", + "decode": "6e84f6dff2fe888d9155e83e7cdd0dd2d93c1a49", + "params": {} + }, + { + "public": + "0389573bc8d1916edb2e58d5b1baa3dde47211ed7dc15dda9506277a383635ad74", + "address": "inj1sxxhkv0zech2quzcpnxz8umqj4t8e0znvgwcse", + "decode": "818d7b31e2ce2ea070580ccc23f36095567cbc53", + "params": {} + }, + { + "public": + "02efaae9c2a3a0646cba02c812824f443c522a900b6a7c1e75aa1804558f0da84a", + "address": "inj1p4qwraz3hmgtp2djgsap04792fxgf6hupstw07", + "decode": "0d40e1f451bed0b0a9b2443a17d7c5524c84eafc", + "params": {} + }, + { + "public": + "025e590f052c1d1e7d614e470bac01057515e1eeb12d596b3de714ba4a8a0a27c2", + "address": "inj1kwg855c9r7w56nekyze4963s345kgun8fr2ga6", + "decode": "b3907a53051f9d4d4f3620b352ea308d69647267", + "params": {} + }, + { + "public": + "023e34dd60f48b8abb7b619d6ab5fd452edad10d7abc0e0430926f8656a589da27", + "address": "inj1zp2jlcdn7z0a2l057xydl57xgu5nlm3mh2cjk0", + "decode": "10552fe1b3f09fd57df4f188dfd3c647293fee3b", + "params": {} + }, + { + "public": + "02d8cb3dfbd9019256c5e6c5147f608a2f3b593d27cfe4e346d7045a906d6aa43f", + "address": "inj1fyxpv9tdjm35hfwzlc5egpxucr6hfnrv27ncxw", + "decode": "490c16156d96e34ba5c2fe299404dcc0f574cc6c", + "params": {} + }, + { + "public": + "031ec18142d31907e8d77ec9054973de812e13ae9f1f1d1526a96d50fe983df99d", + "address": "inj1cneqc4zy5spphgn2ffn8tqfm5sgks4f227h90s", + "decode": "c4f20c5444a4021ba26a4a6675813ba41168552a", + "params": {} + }, + { + "public": + "02a46f12dc219199a24e80eebd7b74316c3b3051b96e7f3cdd81a67f45218235ab", + "address": "inj1mc7f8hycx4ltnm7zncauaur0qf454wssl5an9t", + "decode": "de3c93dc98357eb9efc29e3bcef06f026b4aba10", + "params": {} + }, + { + "public": + "021c21e88fc4da3b2806dd2e22fc1eca978a2c25f984ebd8e61daf0336befe4f34", + "address": "inj1hqs62e68vj690c5r0y57ywfv7hg4vjkah5779l", + "decode": "b821a5674764b457e2837929e2392cf5d1564add", + "params": {} + }, + { + "public": + "02376c5030d263d1f83aca8e05bc12d111c6d6fa0d2c51390bd7a51ff93a4490fc", + "address": "inj16cchpz9sm2f9l3jnmjesuxgwq0euzqtnctun34", + "decode": "d6317088b0da925fc653dcb30e190e03f3c10173", + "params": {} + }, + { + "public": + "02b54f1089d2a7e9c9a1b082e4fb5e9663031f7369d00ff5bfef63493a534f289d", + "address": "inj1l9laefd8pydptndrlutacylcpn9gp6m24ugcce", + "decode": "f97fdca5a7091a15cda3ff17dc13f80cca80eb6a", + "params": {} + }, + { + "public": + "033cf5906febd9dd9941d9664857b4d11e86c06341edfa339bfa7a1678f627e9d3", + "address": "inj14jfeapjd4ll4q8gesrd0vl0dwadh5y4lu9kk33", + "decode": "ac939e864dafff501d1980daf67ded775b7a12bf", + "params": {} + }, + { + "public": + "025c67c83ecdefaa4d2cab7ed15df7ffdf1194ab8fced9298f665b709d476e338c", + "address": "inj1fvk4n0ujjg82t2974v5yj3c80hred37shx75nn", + "decode": "4b2d59bf92920ea5a8beab284947077dc796c7d0", + "params": {} + }, + { + "public": + "024fa40126861223b9f85125a9e7a87771ef4730f4d2e773d3e911ccf9a7a31ef1", + "address": "inj1zugaudlg63hkk32kxd6gqgzqq6nhu0avzjkc5u", + "decode": "1711de37e8d46f6b4556337480204006a77e3fac", + "params": {} + }, + { + "public": + "039ba491e836745a0e29775c5c717f5a747e7bc6d18bd7e7e133747276249b7e71", + "address": "inj1hnln9rmsl4w22z0h99qvhncydphkcltc66tsa7", + "decode": "bcff328f70fd5ca509f72940cbcf04686f6c7d78", + "params": {} + }, + { + "public": + "02eb127248855ccf8e6d6c33393bda1003f5a02d0effb21db3f672dfe2ef6e4406", + "address": "inj1r6p4xmpgfre090a5nvj9ps3vmghj7kvlfgz392", + "decode": "1e83536c2848f2f2bfb49b2450c22cda2f2f599f", + "params": {} + }, + { + "public": + "03fce4439955d6d82c11b49ea010ab4422acb72fed9bb51ba30a17af58354b9097", + "address": "inj199m42ll0ty78t46k6kxs6uqkh3y4nn4862wacd", + "decode": "2977557fef593c75d756d58d0d7016bc4959cea7", + "params": {} + }, + { + "public": + "03f46877cad8f954973b7e539948cecd62270d5791478109bb7d491063fd15a41d", + "address": "inj1zg200gp6jju8z7jz22tkyhgyu20dmkjvdhu3uc", + "decode": "1214f7a03a94b8717a425297625d04e29eddda4c", + "params": {} + }, + { + "public": + "0360202fb3af4063098639acc562f7ae3740b3ef11a0b8b6dcbbbe7d28c43f0c81", + "address": "inj1ngmcf0vaghnuu0g4460tdngsxhr2e53gz750v3", + "decode": "9a3784bd9d45e7ce3d15ae9eb6cd1035c6acd228", + "params": {} + }, + { + "public": + "02c365a40b9bf1513c2caa9e3d6cdcebc6662cf6a8a487658f56e753be4db5dd0e", + "address": "inj1gztwfevkm78vqjslal5je72p4q0qqjppasz4ca", + "decode": "4096e4e596df8ec04a1fefe92cf941a81e004821", + "params": {} + }, + { + "public": + "030a698ce8a49e4c6bd02071d5c78bd45b7e8fd6009eb2a9d1d7239656c3421e75", + "address": "inj1y07hjn3q00yqfekd8ej6u7gj6d4ym3dv5f0g5l", + "decode": "23fd794e207bc804e6cd3e65ae7912d36a4dc5ac", + "params": {} + }, + { + "public": + "035f2c0cdcaeb88f929b5607248b27cc19dc5002a53909e8ffbad3502b3c742f58", + "address": "inj17r94a350v8tt2kxy0kl634q3yfkxttndex7r07", + "decode": "f0cb5ec68f61d6b558c47dbfa8d411226c65ae6d", + "params": {} + }, + { + "public": + "02056e9ae45bf3d33a59a71f4fabbb122289f5028e2b39b459a83d61bb0349ec09", + "address": "inj1jqamqumyn30cpl3e5ur6s52pw8ek7qzt69x9vn", + "decode": "903bb073649c5f80fe39a707a8514171f36f004b", + "params": {} + }, + { + "public": + "029c02afd3cfa47ae808aedfcfac45ceef3823c7ccc60956c5eab96e80cf970e9c", + "address": "inj1hvp5dzl36f73ku9vsfwwkavtxyju0eewhargft", + "decode": "bb03468bf1d27d1b70ac825ceb758b3125c7e72e", + "params": {} + }, + { + "public": + "03b37d3ba04cc5239485b4122c5b242c22422abe65c7df5a1d20f88c20a3aed1db", + "address": "inj10r4e9t4laz46yxgqgjfy6ngkylakr6jdkfshxq", + "decode": "78eb92aebfe8aba2190044924d4d1627fb61ea4d", + "params": {} + }, + { + "public": + "02c2251955b8c08f60f48e23522b4ffc5668d64724e910f9c347600344563ce04b", + "address": "inj1cptw85w2hxhvk5hgh23jtf4vuh9r2al672wczl", + "decode": "c056e3d1cab9aecb52e8baa325a6ace5ca3577fa", + "params": {} + }, + { + "public": + "02c74b667fe53869c78249b108329758698f8037bb62f085b861e1f26781db79e7", + "address": "inj1rr7vjq89kvykqalt2cz87usw6na2hfuu38qzf3", + "decode": "18fcc900e5b3096077eb56047f720ed4faaba79c", + "params": {} + }, + { + "public": + "027ea82601a2448af77c89ae0c6fce4f5beb8d86a7fc7c088cb7e3a3c53f8995b3", + "address": "inj13rx5cw6ccj3p42hy3nywecepc9f0gnkwny7dkm", + "decode": "88cd4c3b58c4a21aaae48cc8ece321c152f44ece", + "params": {} + } +]; diff --git a/test/address/nano/nano_test.dart b/test/address/nano/nano_test.dart new file mode 100644 index 0000000..5689244 --- /dev/null +++ b/test/address/nano/nano_test.dart @@ -0,0 +1,20 @@ +import 'package:blockchain_utils/bip/address/nano_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("neo address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = NanoAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + + expect(z, i["address"]); + final decode = NanoAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/nano/test_vector.dart b/test/address/nano/test_vector.dart new file mode 100644 index 0000000..b4d2ba6 --- /dev/null +++ b/test/address/nano/test_vector.dart @@ -0,0 +1,452 @@ +final List> testVector = [ + { + "public": + "2e9386294287e55fea33edc1f0fd549cf28e835fb15e847a1da11d1e3ea14422", + "address": + "nano_1dnmirnn73z7dzo59ug3y5yob99kjt3ozecyijx3uaax5rzc4j346jbhnrxj", + "decode": + "2e9386294287e55fea33edc1f0fd549cf28e835fb15e847a1da11d1e3ea14422", + "params": {} + }, + { + "public": + "1870b986883bb889f3a85ba2cf49f643b3ff48eeaf65bc1a2f97a7ed6494757d", + "address": + "nano_185iq85aigxrj9stipx4sx6zeixmzx6gxdu7qif4z7x9xokbaxdxo3os5cq7", + "decode": + "1870b986883bb889f3a85ba2cf49f643b3ff48eeaf65bc1a2f97a7ed6494757d", + "params": {} + }, + { + "public": + "566006eb2d1b0332ec6c4c739ea4ccb514ddc1df2832fc90e8c36183a79754ab", + "address": + "nano_1om11uokt8r58dp8rm5mmtkesfanuq1xyc3kzkagjiu3igmsgo7d594pgysh", + "decode": + "566006eb2d1b0332ec6c4c739ea4ccb514ddc1df2832fc90e8c36183a79754ab", + "params": {} + }, + { + "public": + "976d0b3f4db4a4e151d2992e042bf33487d5da96c5294dc439cd2302a4191923", + "address": + "nano_37uf3eznuf76w7ax78bg1ioz8f69tqfbfjbbbq45mmb51ck3k8b5n4ftxp5a", + "decode": + "976d0b3f4db4a4e151d2992e042bf33487d5da96c5294dc439cd2302a4191923", + "params": {} + }, + { + "public": + "6b7a9ae70ba18edd5017524dd36569a573cd799ab111fb8010243323407795e0", + "address": + "nano_1tutmdmiqaeguoa3gnkftfkpmbdmsowsoeajzg131b3m6f19h7h1x4osj6hh", + "decode": + "6b7a9ae70ba18edd5017524dd36569a573cd799ab111fb8010243323407795e0", + "params": {} + }, + { + "public": + "357af4ddbe703992a6cf3d13872d27410962d6916a0ca329cc6486d6f45ec21c", + "address": + "nano_1fdtymguww3skcmeyhamiwpkgiabeddb4tienenwrs68tut7xiiwutxcc4hy", + "decode": + "357af4ddbe703992a6cf3d13872d27410962d6916a0ca329cc6486d6f45ec21c", + "params": {} + }, + { + "public": + "5cb316ce896e0b57c9cf5a57ff0fafb440f2d3537707fa0657923b139abdd4ec", + "address": + "nano_1q7m4u9akuidcz6wypkqzw9tzf41ydbo8xr9za57h6ju4gfduo9eapc5rmo8", + "decode": + "5cb316ce896e0b57c9cf5a57ff0fafb440f2d3537707fa0657923b139abdd4ec", + "params": {} + }, + { + "public": + "0b630f804db02c0d127a98c143cc81948911d593d17dcfeb754127bc180b91ee", + "address": + "nano_14u53y16ue3e3nb9o883ah8a576b49cs9ndxszoqcib9qie1q6hguekxbaza", + "decode": + "0b630f804db02c0d127a98c143cc81948911d593d17dcfeb754127bc180b91ee", + "params": {} + }, + { + "public": + "26b2d54b4ca1cc8896aca6578a6411321787435efed2fff74028b77a057a1e47", + "address": + "nano_1bokto7nsagej4dcsbkqjbk34eiqix3oxzpkzzun1c7qha4qn9k98dhixk9h", + "decode": + "26b2d54b4ca1cc8896aca6578a6411321787435efed2fff74028b77a057a1e47", + "params": {} + }, + { + "public": + "b0dc40fcd5cf21b21e2076817cb4b6ce1a1cf00ed036ce18757446229f3fd166", + "address": + "nano_3e8wa5yfdms3pah41xn3hktdfmit5mr1xn3psre9cx486chmznd8fhwsr9sc", + "decode": + "b0dc40fcd5cf21b21e2076817cb4b6ce1a1cf00ed036ce18757446229f3fd166", + "params": {} + }, + { + "public": + "5c7024849358bdba4c23a61bdbad9fc62bab1bc9c4f0b2f7e8a774e29e386919", + "address": + "nano_1q5i6k4b8p7xqb849biuugpszjjdoefwmj9ipduyjbunwch5itaszyrce5un", + "decode": + "5c7024849358bdba4c23a61bdbad9fc62bab1bc9c4f0b2f7e8a774e29e386919", + "params": {} + }, + { + "public": + "f7f1c73c7e36aeec079e87bacb177501a0a60668442e4ed9b5b92faed8a8c23c", + "address": + "nano_3xzjrwy9wfogxi5sx3xtsedqc1f1nr58ij3gbueudgbhouecjijwczxy4xa7", + "decode": + "f7f1c73c7e36aeec079e87bacb177501a0a60668442e4ed9b5b92faed8a8c23c", + "params": {} + }, + { + "public": + "129f69b1ccd1861d59768875edc512a2d4bf71846d9da046c8f946d47883aba2", + "address": + "nano_16nzf8rwsne85oeqf45oxq4j7apnqxrrauexn35ejyc8tjwa9cx4enazxsk7", + "decode": + "129f69b1ccd1861d59768875edc512a2d4bf71846d9da046c8f946d47883aba2", + "params": {} + }, + { + "public": + "879d015d50068d5f60e456889eead0bc4624b3c24bc283a45ad129a44236df43", + "address": + "nano_33wx17go13nfdxigaonamuof3h486ksw6ky4igk7onbbnj35fqt5rhmaxehp", + "decode": + "879d015d50068d5f60e456889eead0bc4624b3c24bc283a45ad129a44236df43", + "params": {} + }, + { + "public": + "dcd29f4055bb3ca6a4b1de47105aba18e8952c777f95456ab33b4ae6aa93df6c", + "address": + "nano_3q8kmx17dgswntkd5qk943fdn89aknp9gzwoaood8gtcwtob9querjwkc3gy", + "decode": + "dcd29f4055bb3ca6a4b1de47105aba18e8952c777f95456ab33b4ae6aa93df6c", + "params": {} + }, + { + "public": + "cc124f7e1b20b65e1f746bb3ab48c5bf031eee0555376eba0f06d6253142ed59", + "address": + "nano_3m1kbxz3pa7pdrhqatxmof6edhr55uq1cobqftx1y3pp6nrn7ucsekcbwfbz", + "decode": + "cc124f7e1b20b65e1f746bb3ab48c5bf031eee0555376eba0f06d6253142ed59", + "params": {} + }, + { + "public": + "a728ae93ca520016c5ef221c0a5c56a003fb8e7d1a48ded2d0a8d16599f33240", + "address": + "nano_3bsaotbwnni14u4yyaiw3bg7fa15zg99t8kauubf3c8jepez8ek1i69dkaj5", + "decode": + "a728ae93ca520016c5ef221c0a5c56a003fb8e7d1a48ded2d0a8d16599f33240", + "params": {} + }, + { + "public": + "0ae79bd0d4ad7aa47689f3b94fe074c344ea7d5be21b01c0703732a956abc4a1", + "address": + "nano_14q9mhafbddtnjuamwxsbzi9bit6xbyoqriu19191fsko7dcqj73ps9nz3om", + "decode": + "0ae79bd0d4ad7aa47689f3b94fe074c344ea7d5be21b01c0703732a956abc4a1", + "params": {} + }, + { + "public": + "64725cc2adeee18b7c00580bdb618c11afb765f240f8fd3914c1cb7aa7d139c0", + "address": + "nano_1s5kdm3cuuq3jfy11p1dufirr6fhpxkz6i9rznwjbigdhcmx4gg1ekypetyt", + "decode": + "64725cc2adeee18b7c00580bdb618c11afb765f240f8fd3914c1cb7aa7d139c0", + "params": {} + }, + { + "public": + "befd101af706dcd803fd7fa056e16ccd672a2201a3ee07500231ae0d494b0575", + "address": + "nano_3hqx41fhg3pwu13ztzx1cuipsmd97aj15azg1xa16efg3o6np3dog144g3ch", + "decode": + "befd101af706dcd803fd7fa056e16ccd672a2201a3ee07500231ae0d494b0575", + "params": {} + }, + { + "public": + "745c696be8067c47791024a9f36e3ac06699772d165e67884e397dba7c8b9808", + "address": + "nano_1x4wf7oyi3mwaxwj1b7byfq5oi58m7ukt7kyey66wgdxqbyaq81a3q4xhba3", + "decode": + "745c696be8067c47791024a9f36e3ac06699772d165e67884e397dba7c8b9808", + "params": {} + }, + { + "public": + "ec6a991ed5dc148083355ff7223cd92981b3d8842b9e6a2da9869e881639abc0", + "address": + "nano_3u5cm6hfdq1ni43mcqzq6ayfkce3pheaacwyfaptm3nyj1d5mcy1bq37j8hj", + "decode": + "ec6a991ed5dc148083355ff7223cd92981b3d8842b9e6a2da9869e881639abc0", + "params": {} + }, + { + "public": + "0f42fed49982d6740610b25181f8d8dfebdf7709944e0d9fd1b9a2962f9c37d5", + "address": + "nano_15t4zucbm1ppgi533ekji9wfjqzduxuim74g3phx5gf4krqsrfyonb3esed8", + "decode": + "0f42fed49982d6740610b25181f8d8dfebdf7709944e0d9fd1b9a2962f9c37d5", + "params": {} + }, + { + "public": + "89834b064e3026f3537d3e7a7d1281a30b0cded142ac2d49791d56d6e018ec39", + "address": + "nano_34e5be56we38yfbqthmthnba5ard3mhf4ioe7o6qk9cptui3ju3s1zhun5k7", + "decode": + "89834b064e3026f3537d3e7a7d1281a30b0cded142ac2d49791d56d6e018ec39", + "params": {} + }, + { + "public": + "cb9954a67bfcf8734500c8562f9eb23be761a7a78d00b2dd9e2275ac50ed05f1", + "address": + "nano_3kwsckm9qz9rgf4i3k4p7yhd6gz9e8mth5a1pdgswamoojagt3hj5p7oj4b5", + "decode": + "cb9954a67bfcf8734500c8562f9eb23be761a7a78d00b2dd9e2275ac50ed05f1", + "params": {} + }, + { + "public": + "3bc8b52d1fe2bec87d17f9544f3792770defa3612bf18c9cca29dd55de009c96", + "address": + "nano_1gyapnpjzroys3yjhycnbwus6xrfxyjp4czjjkgencgxcqh1396peqdt61x9", + "decode": + "3bc8b52d1fe2bec87d17f9544f3792770defa3612bf18c9cca29dd55de009c96", + "params": {} + }, + { + "public": + "802c3e5c9f1980a307a4143d255ba343075e666f2637d4361d260b0e5e60b4df", + "address": + "nano_313e9sgby8e1ne5ta73x6oft8ir9dsm8ybjqtiu3tbid3sh83f8zzumrtrw8", + "decode": + "802c3e5c9f1980a307a4143d255ba343075e666f2637d4361d260b0e5e60b4df", + "params": {} + }, + { + "public": + "52263c85de8f5596b16e98221bb4920f1aa968471cbb8b29dc52dbffe24814eb", + "address": + "nano_1nj89k4xx5toktrpx8345gtb65rto7n6g97ujenxrnpuzzj6i79dzb19uf18", + "decode": + "52263c85de8f5596b16e98221bb4920f1aa968471cbb8b29dc52dbffe24814eb", + "params": {} + }, + { + "public": + "9fd04917706c9484b1312f74b5ec2b2c65810809da9319b4ec3b26d152fb10af", + "address": + "nano_39yib6dq1u6nikrm4dunpqp4pd57i661mpnm58tgrgs8t7bhp67hi6eknfbi", + "decode": + "9fd04917706c9484b1312f74b5ec2b2c65810809da9319b4ec3b26d152fb10af", + "params": {} + }, + { + "public": + "bbf6c7c61c5828d3679659ac4c41404a2387abc51a5c0c3f0e3fcb5d210df1a5", + "address": + "nano_3gzprz53rp3atfmsepfebj1n1kj5iyowc8kw3iziwhyddniiuwf7zinns4oj", + "decode": + "bbf6c7c61c5828d3679659ac4c41404a2387abc51a5c0c3f0e3fcb5d210df1a5", + "params": {} + }, + { + "public": + "83a060edfb0a780126db1c475693bb9ff65d6af7811b69d5e80e25c0f32c9865", + "address": + "nano_31x1e5pzp4mr16mfp949ctbuq9zpdoohh1auf9cyi5j7r5sks857zsy9ud7s", + "decode": + "83a060edfb0a780126db1c475693bb9ff65d6af7811b69d5e80e25c0f32c9865", + "params": {} + }, + { + "public": + "46d579cfa7027af52c55eb8ecd05792a2e92ca8b24640aec88144ab219800bb9", + "address": + "nano_1jpoh99tg1mtynp7dtwgsn4qkcjgkd7apb563dpai74cpaer14xsszu8x1ao", + "decode": + "46d579cfa7027af52c55eb8ecd05792a2e92ca8b24640aec88144ab219800bb9", + "params": {} + }, + { + "public": + "2cac3566515306e690ba0348a87e172c16c46d2f8fa8a865ec73726086698910", + "address": + "nano_1d7e8om74nr8wtadn1tao3z3gd1prjpkz5xao3kyrwuke458m4ai7eh3xm65", + "decode": + "2cac3566515306e690ba0348a87e172c16c46d2f8fa8a865ec73726086698910", + "params": {} + }, + { + "public": + "0a0075bd5f398317c7c48ea7770cd2f5bb2864241aa0affb66c65260a65fc532", + "address": + "nano_14i1gpyoyge54z5wb5o9gw8f7xfu73k4a8o1ozxpfjkke4m7zjbkdspbf7iu", + "decode": + "0a0075bd5f398317c7c48ea7770cd2f5bb2864241aa0affb66c65260a65fc532", + "params": {} + }, + { + "public": + "61d7273c960f34e564f919224f9b29161e34f571432259949b865ec266e87ab2", + "address": + "nano_1rgq6wybe5snwokhk8b4byfkk7iy8mtq4is4d8cbq3kyrbmgiyokmbdfbnd9", + "decode": + "61d7273c960f34e564f919224f9b29161e34f571432259949b865ec266e87ab2", + "params": {} + }, + { + "public": + "1d9069a9bf1c9bc1a3ced7fe0b9ceae28663ecee13154c67107555e6755a65d8", + "address": + "nano_19eif8nuy96ur8jwxozy3gggorn8ehpgw6robjmj1xcowstonsgrw7ymq11d", + "decode": + "1d9069a9bf1c9bc1a3ced7fe0b9ceae28663ecee13154c67107555e6755a65d8", + "params": {} + }, + { + "public": + "5098dc3efd6ae6567412ec6aae3b4efb0e18eecb719a01ec0875b161ff35d46c", + "address": + "nano_1n6ruizhttq8cst37u5corxnxyrg55qepwet19p1ixfje9zmdo5edajzxsfn", + "decode": + "5098dc3efd6ae6567412ec6aae3b4efb0e18eecb719a01ec0875b161ff35d46c", + "params": {} + }, + { + "public": + "49c2e9b03896eddc3df200597c60d361d69c4fcc99cbcfc5546b1c8b806fed91", + "address": + "nano_1kg4x8r5j7qfuiyz614shjif8rgpmj9ws8gdsz4oatrwjg18zuejfy6sj5ic", + "decode": + "49c2e9b03896eddc3df200597c60d361d69c4fcc99cbcfc5546b1c8b806fed91", + "params": {} + }, + { + "public": + "7eb528bd1ac42d09ac2d0c1b237e8d87025663ca35e7993685d31a3dd642353e", + "address": + "nano_1zoo74yjoj3f38p4t51u6fzau3r4csjwnfh9m6uadnrt9qd66fbyuqprkcke", + "decode": + "7eb528bd1ac42d09ac2d0c1b237e8d87025663ca35e7993685d31a3dd642353e", + "params": {} + }, + { + "public": + "1e384b7fa57677e1407cdbb679e86be7d42d5591a155e088ff62944216e8a7f1", + "address": + "nano_19jrbfztcxmqw719spxph9n8qsyn7ocs5acow46hyrnnaadgjbzjgafnte77", + "decode": + "1e384b7fa57677e1407cdbb679e86be7d42d5591a155e088ff62944216e8a7f1", + "params": {} + }, + { + "public": + "0cc952c9abe963a0d96f1af8ba3cb8097f7ae06cfc510b0fbc27b304c66360a7", + "address": + "nano_158bcd6tqtd5n5epy8qrqaydi4dzhdi8sz4j3e9urbxm1m588r796um4d7md", + "decode": + "0cc952c9abe963a0d96f1af8ba3cb8097f7ae06cfc510b0fbc27b304c66360a7", + "params": {} + }, + { + "public": + "5de93828f8368f8353c6394dbb61ebbebe9e3c1bcde907db130015a9101bc21a", + "address": + "nano_1qhb91nhifnhifbwegcfqfiyqhoymry3qmhb1zfj811oo6a3qiit3ri84hi6", + "decode": + "5de93828f8368f8353c6394dbb61ebbebe9e3c1bcde907db130015a9101bc21a", + "params": {} + }, + { + "public": + "c3087267c4da6422da34d6eee16d4198eb0dccf4c33d512445a99d5731d7af93", + "address": + "nano_3iragbmwbpm66df5boqgw7pn589d3q8hbisxc6k6dcexcwrxhdwm3hkkqhrq", + "decode": + "c3087267c4da6422da34d6eee16d4198eb0dccf4c33d512445a99d5731d7af93", + "params": {} + }, + { + "public": + "13c49f96880102d79b18d3849280a3f6ba930254a70824a2c8e24f01b7fdb1fb", + "address": + "nano_16y6mydai1a4tyfjjnw6kc1c9xotke37bbra6kjejrkh18uzuehuhs65141i", + "decode": + "13c49f96880102d79b18d3849280a3f6ba930254a70824a2c8e24f01b7fdb1fb", + "params": {} + }, + { + "public": + "7a7bb28247f6e9a4dbb2275aee747e60eac44987fe54d24fd9e6321a19352546", + "address": + "nano_1ymupc36hxqbnmfu6bttxst9wr9crj6rhzkntb9xmsjk5aemcbc84umc7mf4", + "decode": + "7a7bb28247f6e9a4dbb2275aee747e60eac44987fe54d24fd9e6321a19352546", + "params": {} + }, + { + "public": + "119597dffe8029d4485ba1658d9a78a5948f1b3d36d2775784ec366b150301c5", + "address": + "nano_16eokzhzx13btj67qad7jpf9jbenjwfmtfpkgxdrbu3pfeci81g76a33ftii", + "decode": + "119597dffe8029d4485ba1658d9a78a5948f1b3d36d2775784ec366b150301c5", + "params": {} + }, + { + "public": + "1ff2d8134d37a46f541ffd69db8f14946690d85b33ab4fc32200f30fff8b3094", + "address": + "nano_19zku1bntfx6fxc3zzdbug9jb758k5e7pexdbz3k619m3zzrpe6n4xwbrzmr", + "decode": + "1ff2d8134d37a46f541ffd69db8f14946690d85b33ab4fc32200f30fff8b3094", + "params": {} + }, + { + "public": + "98e9a19f587b272512dfb289a9687366a7850bec40b6d8249386b5a6bf975454", + "address": + "nano_389bn8hoiys96nbfzenbo7n98so9in7yri7pu1kb93oontzsgo4nw34rkdpd", + "decode": + "98e9a19f587b272512dfb289a9687366a7850bec40b6d8249386b5a6bf975454", + "params": {} + }, + { + "public": + "5e3df48a82936104c031fc2ea023bcb8cebe6bfec779ea5a158c4798a8016372", + "address": + "nano_1qjxyk7a76u31m155z3gn1jusg8gqsozxjusxbf3d549m4n14rukqtdttp8j", + "decode": + "5e3df48a82936104c031fc2ea023bcb8cebe6bfec779ea5a158c4798a8016372", + "params": {} + }, + { + "public": + "e60544a35edd3ba9e503bb98e8bde31bd24caad3f2c57b37685599211acacfb9", + "address": + "nano_3si7akjoxqbuo9ki9gwrx4yy88ykbkof9wp7heupioes66feomxs6iga7zo3", + "decode": + "e60544a35edd3ba9e503bb98e8bde31bd24caad3f2c57b37685599211acacfb9", + "params": {} + } +]; diff --git a/test/address/near/near_test.dart b/test/address/near/near_test.dart new file mode 100644 index 0000000..704461e --- /dev/null +++ b/test/address/near/near_test.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/address/near_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("near address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = NearAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = NearAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/near/test_vector.dart b/test/address/near/test_vector.dart new file mode 100644 index 0000000..d98ff2e --- /dev/null +++ b/test/address/near/test_vector.dart @@ -0,0 +1,452 @@ +final List> testVector = [ + { + "public": + "eb6c9bf48528ec10dc3d3989b58776bd75a6520e156260b3ef09aca8b18ae972", + "address": + "eb6c9bf48528ec10dc3d3989b58776bd75a6520e156260b3ef09aca8b18ae972", + "decode": + "eb6c9bf48528ec10dc3d3989b58776bd75a6520e156260b3ef09aca8b18ae972", + "params": {} + }, + { + "public": + "21b1fcf19915a73d9b9ad09875ce3b1d74161c0a55d4392bd95df0d1cb6d582d", + "address": + "21b1fcf19915a73d9b9ad09875ce3b1d74161c0a55d4392bd95df0d1cb6d582d", + "decode": + "21b1fcf19915a73d9b9ad09875ce3b1d74161c0a55d4392bd95df0d1cb6d582d", + "params": {} + }, + { + "public": + "7f24d3bb179e4d870db4273e574c0c4432ff43fa6eda6d07bfca7dd761c2afdc", + "address": + "7f24d3bb179e4d870db4273e574c0c4432ff43fa6eda6d07bfca7dd761c2afdc", + "decode": + "7f24d3bb179e4d870db4273e574c0c4432ff43fa6eda6d07bfca7dd761c2afdc", + "params": {} + }, + { + "public": + "a15d22efb3e536e2634928960266461a145f8c65c433a857abb99d0a3189437c", + "address": + "a15d22efb3e536e2634928960266461a145f8c65c433a857abb99d0a3189437c", + "decode": + "a15d22efb3e536e2634928960266461a145f8c65c433a857abb99d0a3189437c", + "params": {} + }, + { + "public": + "9d97758fd7e3fed4321886c9b86f7558ed89ba42006e13e7b751053af76571f0", + "address": + "9d97758fd7e3fed4321886c9b86f7558ed89ba42006e13e7b751053af76571f0", + "decode": + "9d97758fd7e3fed4321886c9b86f7558ed89ba42006e13e7b751053af76571f0", + "params": {} + }, + { + "public": + "6140ee2abfd1873f181bfb71fcc31091abb8c1925c00d7575570f0b9b279e54a", + "address": + "6140ee2abfd1873f181bfb71fcc31091abb8c1925c00d7575570f0b9b279e54a", + "decode": + "6140ee2abfd1873f181bfb71fcc31091abb8c1925c00d7575570f0b9b279e54a", + "params": {} + }, + { + "public": + "7dbbdb506b1b8e4b97a91dfa8475b51b44cdfece88c44f86491795ff9780d0eb", + "address": + "7dbbdb506b1b8e4b97a91dfa8475b51b44cdfece88c44f86491795ff9780d0eb", + "decode": + "7dbbdb506b1b8e4b97a91dfa8475b51b44cdfece88c44f86491795ff9780d0eb", + "params": {} + }, + { + "public": + "bf05e261c1a34bd7da453a97cd0da15707efe5824aacce643b97b669d84ec188", + "address": + "bf05e261c1a34bd7da453a97cd0da15707efe5824aacce643b97b669d84ec188", + "decode": + "bf05e261c1a34bd7da453a97cd0da15707efe5824aacce643b97b669d84ec188", + "params": {} + }, + { + "public": + "73affe3adc34ef2162e9f0b21d1b7b7451efa8a2d58bec4b016b85814bf3f941", + "address": + "73affe3adc34ef2162e9f0b21d1b7b7451efa8a2d58bec4b016b85814bf3f941", + "decode": + "73affe3adc34ef2162e9f0b21d1b7b7451efa8a2d58bec4b016b85814bf3f941", + "params": {} + }, + { + "public": + "5132ca44b82102119d043359b23a695d63b64cc95cf24888cdcf04f80ab1be1b", + "address": + "5132ca44b82102119d043359b23a695d63b64cc95cf24888cdcf04f80ab1be1b", + "decode": + "5132ca44b82102119d043359b23a695d63b64cc95cf24888cdcf04f80ab1be1b", + "params": {} + }, + { + "public": + "a17d0f125ce46fddbec157c2b2d48c6246b8f3518ab6d1c58814d72f06124026", + "address": + "a17d0f125ce46fddbec157c2b2d48c6246b8f3518ab6d1c58814d72f06124026", + "decode": + "a17d0f125ce46fddbec157c2b2d48c6246b8f3518ab6d1c58814d72f06124026", + "params": {} + }, + { + "public": + "6227302a8ea0b32474a744428e413ff18a069762db39e6908820ebde8064ca4b", + "address": + "6227302a8ea0b32474a744428e413ff18a069762db39e6908820ebde8064ca4b", + "decode": + "6227302a8ea0b32474a744428e413ff18a069762db39e6908820ebde8064ca4b", + "params": {} + }, + { + "public": + "cc2a3d58e92b0c90a69e43376565d04b64964f12952833f9545324b8e64c4d69", + "address": + "cc2a3d58e92b0c90a69e43376565d04b64964f12952833f9545324b8e64c4d69", + "decode": + "cc2a3d58e92b0c90a69e43376565d04b64964f12952833f9545324b8e64c4d69", + "params": {} + }, + { + "public": + "b859b9f55f616c6440ae8e46a00fd3f723f871e92de6f0c64034e19e29f7e061", + "address": + "b859b9f55f616c6440ae8e46a00fd3f723f871e92de6f0c64034e19e29f7e061", + "decode": + "b859b9f55f616c6440ae8e46a00fd3f723f871e92de6f0c64034e19e29f7e061", + "params": {} + }, + { + "public": + "632a8b994520c0c75d74b62332b771db46694b15df63f339c13ae5c439f30ce8", + "address": + "632a8b994520c0c75d74b62332b771db46694b15df63f339c13ae5c439f30ce8", + "decode": + "632a8b994520c0c75d74b62332b771db46694b15df63f339c13ae5c439f30ce8", + "params": {} + }, + { + "public": + "27e5817a972c25bdda2613ed6628a10fc463be697734cc44f3b67013dba65915", + "address": + "27e5817a972c25bdda2613ed6628a10fc463be697734cc44f3b67013dba65915", + "decode": + "27e5817a972c25bdda2613ed6628a10fc463be697734cc44f3b67013dba65915", + "params": {} + }, + { + "public": + "fa5056466204cd2adae6793aa9c8c7e2b0102982a42c6e9ce6070fae089f6db9", + "address": + "fa5056466204cd2adae6793aa9c8c7e2b0102982a42c6e9ce6070fae089f6db9", + "decode": + "fa5056466204cd2adae6793aa9c8c7e2b0102982a42c6e9ce6070fae089f6db9", + "params": {} + }, + { + "public": + "81f8e69f745c9ee6038f2f831035378ac7db30bc75ee3da0a40dc3298516119f", + "address": + "81f8e69f745c9ee6038f2f831035378ac7db30bc75ee3da0a40dc3298516119f", + "decode": + "81f8e69f745c9ee6038f2f831035378ac7db30bc75ee3da0a40dc3298516119f", + "params": {} + }, + { + "public": + "380613e059899759b52bef92655815b20a65098cd7a69e011183b58f9949fc19", + "address": + "380613e059899759b52bef92655815b20a65098cd7a69e011183b58f9949fc19", + "decode": + "380613e059899759b52bef92655815b20a65098cd7a69e011183b58f9949fc19", + "params": {} + }, + { + "public": + "2a4cfd082890fc6e06f2620577a0aee7479389ed56855021e76e9d2b01990c85", + "address": + "2a4cfd082890fc6e06f2620577a0aee7479389ed56855021e76e9d2b01990c85", + "decode": + "2a4cfd082890fc6e06f2620577a0aee7479389ed56855021e76e9d2b01990c85", + "params": {} + }, + { + "public": + "c34c78180a566849137cca149789bfd12fee15706f142ffcff8dd65f6ef8b959", + "address": + "c34c78180a566849137cca149789bfd12fee15706f142ffcff8dd65f6ef8b959", + "decode": + "c34c78180a566849137cca149789bfd12fee15706f142ffcff8dd65f6ef8b959", + "params": {} + }, + { + "public": + "e3e023e388e27c53e0b3f7bf3bff6a49432ea49e731e3cc5d01327ecc4f434d3", + "address": + "e3e023e388e27c53e0b3f7bf3bff6a49432ea49e731e3cc5d01327ecc4f434d3", + "decode": + "e3e023e388e27c53e0b3f7bf3bff6a49432ea49e731e3cc5d01327ecc4f434d3", + "params": {} + }, + { + "public": + "d9358c69ad57250211c11964137d0a64c1ce53c0d869e41822ea561b0725cd83", + "address": + "d9358c69ad57250211c11964137d0a64c1ce53c0d869e41822ea561b0725cd83", + "decode": + "d9358c69ad57250211c11964137d0a64c1ce53c0d869e41822ea561b0725cd83", + "params": {} + }, + { + "public": + "e4d25cb6879fbb19acc333e6967c33c88b14571e151ae68f38794c95f0d2e82e", + "address": + "e4d25cb6879fbb19acc333e6967c33c88b14571e151ae68f38794c95f0d2e82e", + "decode": + "e4d25cb6879fbb19acc333e6967c33c88b14571e151ae68f38794c95f0d2e82e", + "params": {} + }, + { + "public": + "796152b956d621c53a60c8d4ed51549ef7a3edf3e59243ba52b4cde3982a3476", + "address": + "796152b956d621c53a60c8d4ed51549ef7a3edf3e59243ba52b4cde3982a3476", + "decode": + "796152b956d621c53a60c8d4ed51549ef7a3edf3e59243ba52b4cde3982a3476", + "params": {} + }, + { + "public": + "e0361f3807da1a5100eb2fb7766bae5b1e6c704d93d414b2be8811b8ad54afaf", + "address": + "e0361f3807da1a5100eb2fb7766bae5b1e6c704d93d414b2be8811b8ad54afaf", + "decode": + "e0361f3807da1a5100eb2fb7766bae5b1e6c704d93d414b2be8811b8ad54afaf", + "params": {} + }, + { + "public": + "85055a14bd7c36f62195e56b695c0a8c4d5a18fcc51100ebefe4521748d66ec1", + "address": + "85055a14bd7c36f62195e56b695c0a8c4d5a18fcc51100ebefe4521748d66ec1", + "decode": + "85055a14bd7c36f62195e56b695c0a8c4d5a18fcc51100ebefe4521748d66ec1", + "params": {} + }, + { + "public": + "dc5dd65762c90ce994558c02dd33a4233eaae22cc4818b061b4daf5ac2f866d1", + "address": + "dc5dd65762c90ce994558c02dd33a4233eaae22cc4818b061b4daf5ac2f866d1", + "decode": + "dc5dd65762c90ce994558c02dd33a4233eaae22cc4818b061b4daf5ac2f866d1", + "params": {} + }, + { + "public": + "7f84d4b1dcedddffcad8fd2a44c27464e832a18d3d56cbff06de31c6eee631b8", + "address": + "7f84d4b1dcedddffcad8fd2a44c27464e832a18d3d56cbff06de31c6eee631b8", + "decode": + "7f84d4b1dcedddffcad8fd2a44c27464e832a18d3d56cbff06de31c6eee631b8", + "params": {} + }, + { + "public": + "70cc6840f2a6521ac0917a95bdc6a7c4f3ba3183babebe5aa6b1fd4872c42315", + "address": + "70cc6840f2a6521ac0917a95bdc6a7c4f3ba3183babebe5aa6b1fd4872c42315", + "decode": + "70cc6840f2a6521ac0917a95bdc6a7c4f3ba3183babebe5aa6b1fd4872c42315", + "params": {} + }, + { + "public": + "d9cf2685d564e0d620705aa869fb9b116b7bab74464932c10e1125c5325621c3", + "address": + "d9cf2685d564e0d620705aa869fb9b116b7bab74464932c10e1125c5325621c3", + "decode": + "d9cf2685d564e0d620705aa869fb9b116b7bab74464932c10e1125c5325621c3", + "params": {} + }, + { + "public": + "3173c4e3b42ee99ef17c6e8861a8942730bcbcfbaa9ad68099120e3efe396f4f", + "address": + "3173c4e3b42ee99ef17c6e8861a8942730bcbcfbaa9ad68099120e3efe396f4f", + "decode": + "3173c4e3b42ee99ef17c6e8861a8942730bcbcfbaa9ad68099120e3efe396f4f", + "params": {} + }, + { + "public": + "be851533c35bd03f1506b4bc333930a57b396015e5aeb578a9f3817ecab92719", + "address": + "be851533c35bd03f1506b4bc333930a57b396015e5aeb578a9f3817ecab92719", + "decode": + "be851533c35bd03f1506b4bc333930a57b396015e5aeb578a9f3817ecab92719", + "params": {} + }, + { + "public": + "c017014db6c7fda8007efb73941a28424df43b6424ac1a077a76503496fd09de", + "address": + "c017014db6c7fda8007efb73941a28424df43b6424ac1a077a76503496fd09de", + "decode": + "c017014db6c7fda8007efb73941a28424df43b6424ac1a077a76503496fd09de", + "params": {} + }, + { + "public": + "35b23f1661253e1b31813e25a09e39e1728960f17ad6673b6eaa128a303ac7f4", + "address": + "35b23f1661253e1b31813e25a09e39e1728960f17ad6673b6eaa128a303ac7f4", + "decode": + "35b23f1661253e1b31813e25a09e39e1728960f17ad6673b6eaa128a303ac7f4", + "params": {} + }, + { + "public": + "f2644ee3f4906251c697d2194647496f9febe8073321042c714955b3b29cf08d", + "address": + "f2644ee3f4906251c697d2194647496f9febe8073321042c714955b3b29cf08d", + "decode": + "f2644ee3f4906251c697d2194647496f9febe8073321042c714955b3b29cf08d", + "params": {} + }, + { + "public": + "b510fd180491dc9939f21ba363d1e51a6a4888583fd09d2f23b880d777874708", + "address": + "b510fd180491dc9939f21ba363d1e51a6a4888583fd09d2f23b880d777874708", + "decode": + "b510fd180491dc9939f21ba363d1e51a6a4888583fd09d2f23b880d777874708", + "params": {} + }, + { + "public": + "40dadcb14f56219c6ee159f38d6425ecfde869f4f79847c83600ab3b9258ff52", + "address": + "40dadcb14f56219c6ee159f38d6425ecfde869f4f79847c83600ab3b9258ff52", + "decode": + "40dadcb14f56219c6ee159f38d6425ecfde869f4f79847c83600ab3b9258ff52", + "params": {} + }, + { + "public": + "9bb78132d3530410a138f541d5bd21b0098ec5700b90f8d667b43afb09973dc3", + "address": + "9bb78132d3530410a138f541d5bd21b0098ec5700b90f8d667b43afb09973dc3", + "decode": + "9bb78132d3530410a138f541d5bd21b0098ec5700b90f8d667b43afb09973dc3", + "params": {} + }, + { + "public": + "30697e5cae5200c6bcc1e951a48c8d9f9cb6bf7d7162899718e63a8baedc5548", + "address": + "30697e5cae5200c6bcc1e951a48c8d9f9cb6bf7d7162899718e63a8baedc5548", + "decode": + "30697e5cae5200c6bcc1e951a48c8d9f9cb6bf7d7162899718e63a8baedc5548", + "params": {} + }, + { + "public": + "0b104cb400f48326d3955b11c7a98549083c5fa75f7f42fe369fe9c763a8a79b", + "address": + "0b104cb400f48326d3955b11c7a98549083c5fa75f7f42fe369fe9c763a8a79b", + "decode": + "0b104cb400f48326d3955b11c7a98549083c5fa75f7f42fe369fe9c763a8a79b", + "params": {} + }, + { + "public": + "16ac41fa07bf6e4d36cc0d6257329cbd02af301f22ddeb04cffbaa51a9764213", + "address": + "16ac41fa07bf6e4d36cc0d6257329cbd02af301f22ddeb04cffbaa51a9764213", + "decode": + "16ac41fa07bf6e4d36cc0d6257329cbd02af301f22ddeb04cffbaa51a9764213", + "params": {} + }, + { + "public": + "050050c584f9099ba663578d3cef6771068f55202028ab0e477b855a0b1410f5", + "address": + "050050c584f9099ba663578d3cef6771068f55202028ab0e477b855a0b1410f5", + "decode": + "050050c584f9099ba663578d3cef6771068f55202028ab0e477b855a0b1410f5", + "params": {} + }, + { + "public": + "f093e4c60542dde6ac5194c3a3fce8fcd177d61934eeefe04c1facb8d0f563bd", + "address": + "f093e4c60542dde6ac5194c3a3fce8fcd177d61934eeefe04c1facb8d0f563bd", + "decode": + "f093e4c60542dde6ac5194c3a3fce8fcd177d61934eeefe04c1facb8d0f563bd", + "params": {} + }, + { + "public": + "a1a509ce0fb5d7bc17c22143680b996c08929da2c1ce012798994a0c7a502e41", + "address": + "a1a509ce0fb5d7bc17c22143680b996c08929da2c1ce012798994a0c7a502e41", + "decode": + "a1a509ce0fb5d7bc17c22143680b996c08929da2c1ce012798994a0c7a502e41", + "params": {} + }, + { + "public": + "110dd72a0ade56313214adaf6dd1de3785e9243b0a8030024a2d7b6a57ebae6f", + "address": + "110dd72a0ade56313214adaf6dd1de3785e9243b0a8030024a2d7b6a57ebae6f", + "decode": + "110dd72a0ade56313214adaf6dd1de3785e9243b0a8030024a2d7b6a57ebae6f", + "params": {} + }, + { + "public": + "a2d2ebc65100902af449e64fdca8bf0e4f12e15502dfa56a24d7a4e1e736fb75", + "address": + "a2d2ebc65100902af449e64fdca8bf0e4f12e15502dfa56a24d7a4e1e736fb75", + "decode": + "a2d2ebc65100902af449e64fdca8bf0e4f12e15502dfa56a24d7a4e1e736fb75", + "params": {} + }, + { + "public": + "969f0a9750432fad383048a6ec4ef0148b4a42b1d48d4d0c301357b1e3b54f47", + "address": + "969f0a9750432fad383048a6ec4ef0148b4a42b1d48d4d0c301357b1e3b54f47", + "decode": + "969f0a9750432fad383048a6ec4ef0148b4a42b1d48d4d0c301357b1e3b54f47", + "params": {} + }, + { + "public": + "4605ac9af5bff29286ceb8211c59eeacf66bba64dff96c959158e9963b00fd8b", + "address": + "4605ac9af5bff29286ceb8211c59eeacf66bba64dff96c959158e9963b00fd8b", + "decode": + "4605ac9af5bff29286ceb8211c59eeacf66bba64dff96c959158e9963b00fd8b", + "params": {} + }, + { + "public": + "9ffb5ccb5b5c964784f96318539d685ef5aae05dcfa1591fe319d2e8751fcf16", + "address": + "9ffb5ccb5b5c964784f96318539d685ef5aae05dcfa1591fe319d2e8751fcf16", + "decode": + "9ffb5ccb5b5c964784f96318539d685ef5aae05dcfa1591fe319d2e8751fcf16", + "params": {} + } +]; diff --git a/test/address/neo/neo_test.dart b/test/address/neo/neo_test.dart new file mode 100644 index 0000000..1f4db1c --- /dev/null +++ b/test/address/neo/neo_test.dart @@ -0,0 +1,20 @@ +import 'package:blockchain_utils/bip/address/neo_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVecotr; + +void main() { + test("neo address test", () { + for (final i in testVecotr) { + final params = Map.from(i["params"]); + params["ver"] = BytesUtils.fromHexString(params["ver"]); + final z = NeoAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = NeoAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/neo/test_vector.dart b/test/address/neo/test_vector.dart new file mode 100644 index 0000000..4933358 --- /dev/null +++ b/test/address/neo/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVecotr = [ + { + "public": + "02bf923ce2e5b42f4a048fc6a7c9401e42b45c49c08bceda0fd04890759fc041cd", + "address": "APuBj1UXKoFaZv3Up2eZh2MAubzt9nTBBd", + "decode": "592302315694fa8d25a5b97340779693d3ea1a10", + "params": {"ver": "17"} + }, + { + "public": + "02a9c3a14fdce99b9a91fe95e5029b346883a9fab98cbf028257c35121b5d2928b", + "address": "Acr83VBQMyLjFb6Wm64Xtow7et3DKCWSWC", + "decode": "e72852a15f611df1c74d6acbf46c2ec3862eef9f", + "params": {"ver": "17"} + }, + { + "public": + "02327024176425ff1d253975d095f7bc0eb20339bb40ac653a498b960ec6d7a251", + "address": "AM3Ltc12TAT8iS1SMrP39W8Dzk9942yhUo", + "decode": "39c59c1dbd78916ef81052463c8a0bb0890c7921", + "params": {"ver": "17"} + }, + { + "public": + "0252d8ad6a99832a32047ffb0054a22630682c009be145aadd1258d28e53c7eeb6", + "address": "AR6euctGTgDsQtRmPycV4WgtBXLUi6FMZi", + "decode": "664666aec3c68b07032ae28b46accbf342fed598", + "params": {"ver": "17"} + }, + { + "public": + "03496dcdf1e890db15c3d8b664052530995246e5d19b6e22279d596592a14ac72b", + "address": "ATzKG6vdGU2aBfEaerEDshNsx7h3nea1j9", + "decode": "85fbe1e07641d882a33b0cab9e830503af318381", + "params": {"ver": "17"} + }, + { + "public": + "0257e4a6f5bf831fa70a4f8edbf8cc8d62a1bff718fa97c5de410fff3cd72198bf", + "address": "ALT1qpPLnJCZE6XiCnLehMkE1goYBpPEQE", + "decode": "3347910e30725baa1439bdcbb491db4f5f95029b", + "params": {"ver": "17"} + }, + { + "public": + "020af20770dff8e88cab0c639022e91ccf27dfc7aad49d61753a67390f8ee90067", + "address": "Ab1Ydak2RdWXcfa2rmSMTo8M5AFLuBPzkx", + "decode": "d30056fb896dda24d1da81a084eb904471ed0bdc", + "params": {"ver": "17"} + }, + { + "public": + "03465119b8c7a823a374adc847b2079282fce6634deb3abe2d93693d320190ca87", + "address": "ANjHn2igQJz313P5beMepT4VaQCo84Vogg", + "decode": "4c4bc673545d9524d0eacdfc76b559075ec38e18", + "params": {"ver": "17"} + }, + { + "public": + "02b9a839a0583ec31d2005b71f2853cd1a1ca90c9016393c4495176596514912e7", + "address": "ARTyD5imBQC3EvemgZsg657byaezSpw2N4", + "decode": "6a4e69cc5fe81fdc290ac995a34dbefa68af11b5", + "params": {"ver": "17"} + }, + { + "public": + "029739be53e626ff78f0644b12d9343e57b319242efb609c776267f5559b591031", + "address": "ALm13oT9vbpZcdCUHd8iEUZ1HmbpscKaZJ", + "decode": "36ae64436b04707d73c777bb0f5681ee02c54cdd", + "params": {"ver": "17"} + }, + { + "public": + "0246e817612ea98743c5c7a522e2f4be5ae632ee3bc7cb3b47e2098ba261b7ae8b", + "address": "APGTXkLhSuVefqeFCLP3XPEUXSGLA3wxRe", + "decode": "5230cfe181d5cba0f2a30fc38ab519f88d98405c", + "params": {"ver": "17"} + }, + { + "public": + "02fa307f547c48bc3e469ee70978780ee972ad4262c7548a2d748e7ecdfcf5da62", + "address": "AWPa1ZqzjHcQ5X8qtEQVzoh9uxSBJ5bHZt", + "decode": "a052036003bb230dcc38573c6ec6e1eb72ac11e0", + "params": {"ver": "17"} + }, + { + "public": + "03372c59de8abe2f812c249529da3362cc526a96a1d5c70d51bada7e7833af7aed", + "address": "AcR2rK87YRHNDoE8VgLP97AyzDJa5QoES4", + "decode": "e26996d1222a975237627caf71cc0c754104fd24", + "params": {"ver": "17"} + }, + { + "public": + "030089d92159390165c857ee876a19e71bf4a29ca36cd6161c50f022ae4b61ee4f", + "address": "AV9muDRwJcpLJGT9aWRM2orEtjhLLqsRMa", + "decode": "92bdfd571c0f2a9101bbc005bb11c0d3398f14c4", + "params": {"ver": "17"} + }, + { + "public": + "0249fe94be3a3c4a2cb4618e1c85dd60e09010dac9c8e8f4ded4c4aec6648c8986", + "address": "AYr98XFBNptQXy5vUw1zGDg3GZ7gXuqVkM", + "decode": "bb48ba144934eb5865ad87978b775b11ac922899", + "params": {"ver": "17"} + }, + { + "public": + "025c58dbe3398f2e74beca67f417b999028a125f5a49b5a31748783c74689eca8e", + "address": "Aekf1BZ3CiNEM7sBbrnvaHFCuNsagL1Uu5", + "decode": "fc0fec43cf4698fe53f2956cc536b40f86cc11c4", + "params": {"ver": "17"} + }, + { + "public": + "024e9f19021db2484591280aadb40a3da66b85116f4dfe7e69db6b02fac9625207", + "address": "APWqbMMe58G3h3PZ23agt8SHwzDsvD8Nk5", + "decode": "54e90d529198b982d08b81c432bc6e553f862da2", + "params": {"ver": "17"} + }, + { + "public": + "03d5cd31b50e806cdf9e81814c231b1e63685771364d49b4c6d8e854ac3caafc18", + "address": "AKrjJobCgxUd2q3xvaYRm6PJicBR6QUkht", + "decode": "2ccb9f16425084525476165579a6ce948596f5b8", + "params": {"ver": "17"} + }, + { + "public": + "03f660d19cefe4462b42e69066374affd44d0dc2edd499a5afc88e501a687465fe", + "address": "AdZUCf9s8tE6SYSnZC8NG4uiTjdipvUGfG", + "decode": "eefa3451d60578a8907eee93b8c77fefbb0d27f9", + "params": {"ver": "17"} + }, + { + "public": + "0314c34b72d4b71a1cf004110cfc81ad38d7d155754a8ccd9bb04f15959c7d671a", + "address": "AbdoT8m35d83bkJFuQfCnU7hE4zFkNE1Dm", + "decode": "d9dbaf7642e1e937a002594b6e2c8ef5a109dbd5", + "params": {"ver": "17"} + }, + { + "public": + "02e92d9920ad419a435ee642ec64083e1a2afbf6e122eccfec6a52f000be83f542", + "address": "ASBCsWDLAeomagniBARxa2XARoVP9ckksS", + "decode": "721adf5f6ae7b13fedae3d3550898ec094bc5f3c", + "params": {"ver": "17"} + }, + { + "public": + "0351d1c90cceed77443d82e97cb8afc705010925a84eeec10cddc1e5105ae02eb6", + "address": "APBb2xmchLSiWywGxCZmh4dJWSG6Lq5AkY", + "decode": "5144fef984547d86d50b16785ef16dbe332cc1ea", + "params": {"ver": "17"} + }, + { + "public": + "02ead1ff57893d44849a80d1f38146d692cb30ffbaceebd05ba2e33048b2dcfb00", + "address": "AYi9tbHYYaXfKcqRDxH1YkESLTxWZRdZ1V", + "decode": "b9c6088fdb5caea48e842afab825887afdab69fb", + "params": {"ver": "17"} + }, + { + "public": + "03694f613900443c1aec1480f8ccee1a63fa4c834a32e770dc576a0fddfd2deb1d", + "address": "AWEu5bxK78EXmd1PMaUSx8kWPgJwW2rgiM", + "decode": "9eae302232a5edbccce51e81cbb84919fba5a15b", + "params": {"ver": "17"} + }, + { + "public": + "039897508554b744a4d0f85c24b9458df356ecd0fd527177f7d6106dc714f57837", + "address": "AbD4yZD6aFjU5chtPZ9FDcxhEKKXQWboSY", + "decode": "d52e3edd1ad4c74de216d60598a1eebb80ce85e5", + "params": {"ver": "17"} + }, + { + "public": + "029da7a631189b219c413eb3d80df2c5611b9c716212ff875d3ecd7d4ca0652744", + "address": "AQsFHzdDGTo1pQVfkAg7AGUKGNCzfah9MT", + "decode": "63bd480c40819ee67eb83936864a63acf620a987", + "params": {"ver": "17"} + }, + { + "public": + "0394be69812406fc9da65305d0964f016fa4ab20b25429538ef0b03a94ca46f676", + "address": "ANHCyRmdBFvxrAwdzLTEAo8yEQDvnPiXTK", + "decode": "475cf34fd7941aca62b46d0026db8818685d5725", + "params": {"ver": "17"} + }, + { + "public": + "03faf24da36059918dd6efee3ff37ace5c523ce7caf49b638a4b8cb39efc4ff574", + "address": "AP5WyUmT3GNojUwbr1rEjguQfGBQS53B8w", + "decode": "501f1c6ed8239381237bd6adf1fa69b4d1b0e845", + "params": {"ver": "17"} + }, + { + "public": + "02532973440c262a695e899c36f0d7c38bbe683caab614dfbab8a616604f9587aa", + "address": "AZnoaGEaWL7mmLpihibbg6ra5exxnCQA9q", + "decode": "c59f47b3de328bbe13a54d61a8b04c2b62571916", + "params": {"ver": "17"} + }, + { + "public": + "0236bdcfe528e7eb17cb49aa026c216bf82211762276c92bdc8c6f3c9b0d71da5d", + "address": "AduXQJKyLsJunkmjRM3usrcTa3njwFuMUb", + "decode": "f2c53207510726b65a01d43bc468433f5a079e34", + "params": {"ver": "17"} + }, + { + "public": + "03debfcf18174c09db941da69cec6a78c3623461b558a4c78bca1562624d1d3a66", + "address": "AR1msp7UjjKWVQF9Kf2ppdakHZTmwGeCg3", + "decode": "655a237b716a987e8405cdeac35955c85d0babab", + "params": {"ver": "17"} + }, + { + "public": + "02dc627ea6d1405ec5aa6a818c4de954a1e1d625f019756f503387c9fc92d32810", + "address": "AHytRz83ZbwRfbTxNSDnFDCAwSPMGTd7TE", + "decode": "1835e5d4ea369c2a38978f62075b92bbd39195ce", + "params": {"ver": "17"} + }, + { + "public": + "0356bf29dfd06bbb9341d7598cd99b52169ff203421fc8c01d13a3599e4e99ff6f", + "address": "ALfJjBP1BnCSbLtsEmZ3ThhSnEpHLivrEe", + "decode": "359aa74c98bbd0e6df6e56ed875a15caaaf4dd42", + "params": {"ver": "17"} + }, + { + "public": + "02e42bf6f1229f8b5f35e5286306e551bd0803716346f1fcb04ebcbad0df4d461c", + "address": "ASV53dLRNGsAV9qCNpgAxAHGZSmQJX8Mdu", + "decode": "757bd3d6578a01d9f791614ecfa879901e42d331", + "params": {"ver": "17"} + }, + { + "public": + "02af1d809ba2aa9d07b72d9f15d1b816b004dfb386ff3251cb9950a68c8ffa2150", + "address": "ASfdLswdY82MYmp4SXpKkjRwEZTpxaKemW", + "decode": "777af299a83733a2bba1ad01b069ebcfd94f2bb4", + "params": {"ver": "17"} + }, + { + "public": + "039bda8d8d292c5b8ca407d2209a93299b00454b069d2196ff959a8192bfe815cc", + "address": "AQSAkBsQMBfnaLjLGWDibwifqLZwxK3jQs", + "decode": "5eff15e986618ce6388cd2bbc1699bdecbf5b907", + "params": {"ver": "17"} + }, + { + "public": + "0343f65e06cda7e992364a4fa8899e035fe18ee629973aecd57c9d968cd9140843", + "address": "ANwfiP1UQwfScR4FwdLDuM64povXbY9XuL", + "decode": "4ea314316c70af91538148a9bc5731aba42d2a62", + "params": {"ver": "17"} + }, + { + "public": + "03dded18d8b206e12936a05e7a394a4f0f9b95481eb2a1a5318f3044a59695a8e1", + "address": "AGCmq1zqd5CpfNVBo2Yza1s1xeRdo3g447", + "decode": "04b58ab9f8f1f9d71833ca1fb9d49f1672732a87", + "params": {"ver": "17"} + }, + { + "public": + "0306dc08ca9384fa8dbabe8683fa39880722e31c31213b4d4de78540b52f031567", + "address": "APwRPHCC9zJabK4B6UcsQHYo8zXqbazymT", + "decode": "598f3e3f4ab651ef75bd5182a2806a00d97fb854", + "params": {"ver": "17"} + }, + { + "public": + "03da935017f66b4b13563ac24adadb81fddc7d2043afee4a5e03aadcd406bb08eb", + "address": "AcJNYiWtynTvimTtevAkpyhyf22Q6P3HNv", + "decode": "e1271e8a44e12476687cd333d95ad6d4546c4341", + "params": {"ver": "17"} + }, + { + "public": + "03cf366bfba8fd22cb5c84edf91c1c9cf18d9e62d98933baa18fc901f10c542d90", + "address": "AG8u5XFDSYzPFBu2tnxM4d2KwpjmEHWjKM", + "decode": "03f9ee1baccdd879f1e4ccc1793c827b480860c3", + "params": {"ver": "17"} + }, + { + "public": + "03d0ffe60a89993df22a832d17ef53ea7e132d40288bb9d4694b9d36bb7db7231c", + "address": "ALkGsL9VY3j1hFjomzX1dmg31oB1xbqfdx", + "decode": "368b2e5de27fd29ff1630a04b40347c709f25eec", + "params": {"ver": "17"} + }, + { + "public": + "03daedf6f92df2ab063b8158675d962d6b5eae242d7bde61124168afde9e510cf6", + "address": "Ad6uv46TwTr87Kj6rc7uCTsLzsS5qwUypL", + "decode": "e9f470299972c9cc59703bcfa09e85c2ddd35edc", + "params": {"ver": "17"} + }, + { + "public": + "035d4837f7d1571fbbb7be5066b50e793d573eec40244c0b54f4aecab4260c00a5", + "address": "AXPQZXeV89PzaawywD2N8FFBiKBphsf6kk", + "decode": "ab42405ba7e53547fac32655299a842df919276a", + "params": {"ver": "17"} + }, + { + "public": + "025087a1edcae6eac6d12bfb5ee6f3e6c9a50a91e6fb0ad4c220986850f39b0493", + "address": "AV1GbznDhQ83ky8kD1acumKGuroKaPk1Hh", + "decode": "912234c4a7374b66da9dc0bf570ed4e7bbf0da6b", + "params": {"ver": "17"} + }, + { + "public": + "02d39af7eb3c16c78926cf303b1727f8e28516048c8069f1e8a484a111a49c9af3", + "address": "AbtpSLJH3MARLDizn8Xv3SHxx59ZroEAMM", + "decode": "dcb2bf807697c82a4d3fe4697f667ecab1428665", + "params": {"ver": "17"} + }, + { + "public": + "031073a929b2a4a745dd473778b98540443f65f7d5ececc2f64d2cff7e46b14cc8", + "address": "AeX6uhp2fopzARKmbKzcgaRbU28Lx9AjQN", + "decode": "f97fb96c1bb454ca278ab78d9453301baa28ae52", + "params": {"ver": "17"} + }, + { + "public": + "0273923a49e92cef302aad1de0521916d014a12b08096c08c3de6defab62347405", + "address": "AYaQeM6y8u1HvUeThNXHdqH2mEkBxgWUPu", + "decode": "b84f05a8d86420af7077e2792cce4071e9d68396", + "params": {"ver": "17"} + }, + { + "public": + "03b750fe85bc80b174fc1909685227d7754c7c363135291510e61637bf0bd93807", + "address": "AQtAT6ea1mYiJMzRVdpQLDGvwGrgh6kQZc", + "decode": "63e9a796290608b140ceb484b1197081275b4ca8", + "params": {"ver": "17"} + }, + { + "public": + "02a5d23f32ba3da45b1027dc43fbdadb5c429b64d53f95e65e24ac88c0989cb377", + "address": "AGafuGtMfHorD4CewoDtk87eugVFG5fp7K", + "decode": "08d9beeb28f0d258915a73fde00bf0b3a5302ce7", + "params": {"ver": "17"} + } +]; diff --git a/test/address/okex/okex_test.dart b/test/address/okex/okex_test.dart new file mode 100644 index 0000000..08e6f4f --- /dev/null +++ b/test/address/okex/okex_test.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/address/okex_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("okex address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = OkexAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = OkexAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/okex/test_vector.dart b/test/address/okex/test_vector.dart new file mode 100644 index 0000000..6ea1940 --- /dev/null +++ b/test/address/okex/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "0342b72b4ae5829ecec2d1196a1f0a5ac2bfbebf1e54c11d042a5af93fd1bb84cc", + "address": "ex1hyp84n3a3cqjhewpvvxc20s77frhjwuhrxscyq", + "decode": "b9027ace3d8e012be5c1630d853e1ef247793b97", + "params": {} + }, + { + "public": + "022ec8581699d764bbc88cbc376d8baa91255937eb709dd18a95e19c9d551e8af7", + "address": "ex1xptl4lncw4qyvy4gunavpz04agqw6c7azgp8wu", + "decode": "3057fafe7875404612a8e4fac089f5ea00ed63dd", + "params": {} + }, + { + "public": + "037fe0d6534f8b5ff099eedc688f0fdd737ea183317a2b7c1611d23815bbe205f8", + "address": "ex1qj4h0p732j2fcha60ezur0wgk8nz58508m6dxz", + "decode": "04ab7787d154949c5fba7e45c1bdc8b1e62a1e8f", + "params": {} + }, + { + "public": + "02d6192c0ec8165908fb9246fdc283a4ab4850189462c2691635fc726ee1390554", + "address": "ex1sjvrfdnctk5jr49jur9k2p6atc325dfn7epyna", + "decode": "849834b6785da921d4b2e0cb65075d5e22aa3533", + "params": {} + }, + { + "public": + "021e161b4fc349c2e476f11b104bb758c676bb08dffc07b91ad04d616fab83dbcc", + "address": "ex1xlwmyzstnr7hajzwldxdlmz7xmcxc5207znmq9", + "decode": "37ddb20a0b98fd7ec84efb4cdfec5e36f06c514f", + "params": {} + }, + { + "public": + "02e3edd127a233b23b13349feeeb3db2c3f560b07838ae9e19dc5b7df1de653d3e", + "address": "ex1f6t8fj0m3qfve0hmj4g8yptt9wk8het480w78w", + "decode": "4e9674c9fb8812ccbefb955072056b2bac7be575", + "params": {} + }, + { + "public": + "03da1cb5f5afdd07ecb0c41ec265b7a799438f99b157cc5562aa04ec678bec5316", + "address": "ex1yrp055rcwxfplhhn5m65wqyf2jus6jnkhdy5uq", + "decode": "20c2fa507871921fdef3a6f547008954b90d4a76", + "params": {} + }, + { + "public": + "029fdab2b779227db583a3302c4548067c8c6cc684aeb549e317481bdd6f459f8f", + "address": "ex1k0kg0lk98hxwskc9fk5xng6guzhj3yp7lc7djp", + "decode": "b3ec87fec53dcce85b054da869a348e0af28903e", + "params": {} + }, + { + "public": + "0209d3cb126ecda17db8a7f7060263a1a29825fc947aaaeaf09f08ce22239ffb2f", + "address": "ex1l9ur3en767plfyenrecqlysz24465qsdzhedld", + "decode": "f97838e67ed783f493331e700f9202556baa020d", + "params": {} + }, + { + "public": + "0341cc76fde5f25e41c2d8be01447156db0a6ea081b9201ca2d20402927a03a60f", + "address": "ex1m8xzhejgss2g004gh4mhpf6jy2anjx23ydqnv0", + "decode": "d9cc2be648841487bea8bd7770a75222bb391951", + "params": {} + }, + { + "public": + "032ae166924f28c84627c66d45617faaf445092ce0a51d66b65af51cfdf09acc3c", + "address": "ex1a6lwldlfpa0spqqes6d33ywdvgwns0vyf75g70", + "decode": "eebeefb7e90f5f008019869b1891cd621d383d84", + "params": {} + }, + { + "public": + "030b107177fe56eeb85bbdfdb0f61fc230fbe3dd396698dc88b6e75b5ca9d28a2a", + "address": "ex1w8tgfkej4u00rv94p8v0qzxzvw5fn99l2ntxc3", + "decode": "71d684db32af1ef1b0b509d8f008c263a89994bf", + "params": {} + }, + { + "public": + "026eba3b4f5fc7656c5d4be5e618f2bbba90b2d5abc32b1c2f203451fbf152896a", + "address": "ex1jk2vsh5qlx3n5r2n0nf3ardgsyqpnuf87qhfk5", + "decode": "9594c85e80f9a33a0d537cd31e8da8810019f127", + "params": {} + }, + { + "public": + "033d2530e4d25cd960ad21e4795c7af179efa9a710f2fc9db242d3635eabcd7d84", + "address": "ex1fqzpywcx0hs3qkzwhpcsn9k4mevkvay7v8tcyx", + "decode": "4804123b067de110584eb8710996d5de5966749e", + "params": {} + }, + { + "public": + "03f8adcdacc931093b1e94ddd075daba9074436246388199da2bdddc265d5e74c1", + "address": "ex1j0n6azghmp8t6nr0j0z3grvux39gjvncpeduda", + "decode": "93e7ae8917d84ebd4c6f93c5140d9c344a893278", + "params": {} + }, + { + "public": + "030f19509347652b3d888de74e3f41c72e8cfc88c55f6e4645f8ff56dfdede9e7d", + "address": "ex1ed4z68zhfzl0wec7thkdm5g9j05a6rgn8lvgep", + "decode": "cb6a2d1c5748bef7671e5decddd10593e9dd0d13", + "params": {} + }, + { + "public": + "03e2c7f9bc12ca67cb135703ac975eaec55f0fbf56369154672d01c7cd9a64cecf", + "address": "ex1czw88gyru2fyxa574lnl2y4qyqz4dsj544zfyw", + "decode": "c09c73a083e29243769eafe7f512a0200556c254", + "params": {} + }, + { + "public": + "02fddd34f9e0b5891bbbf75aa964ec4171e0c3c3194c28156df227f75f4c54e29c", + "address": "ex1j2gct5ag54pmuzpmu2kgmf6uua00y8l82arctr", + "decode": "929185d3a8a543be083be2ac8da75ce75ef21fe7", + "params": {} + }, + { + "public": + "03d4abc33215f475d463a8314b7b46e0a14bad2bbfcfe2335ccc18224476eceac3", + "address": "ex1ueu98gukk2pen4vtx68ftqep0hjrmm4hgwxzq4", + "decode": "e67853a396b28399d58b368e9583217de43deeb7", + "params": {} + }, + { + "public": + "02b60f16ebdd558567865041e6d8c167c069740808dae04536957f49985950d915", + "address": "ex1r5jt8d5zn6ykpnajdlmx0shz5cwfug2778ahfr", + "decode": "1d24b3b6829e8960cfb26ff667c2e2a61c9e215e", + "params": {} + }, + { + "public": + "02a4902ff5da9360ef92c05ecbb7a569cd6e1dde59efbb02ce07465b8b4e00ff8e", + "address": "ex17ldhrcutny5zssudda9gm7wwkq7ljwq083v97l", + "decode": "f7db71e38b992828438d6f4a8df9ceb03df9380f", + "params": {} + }, + { + "public": + "02e05291983359818d0a7a0a4a1e92a59a89526a8794246d668d9ba82ac6ee8231", + "address": "ex1w5m9s2q99kmcn232mnpkxkv2shkn3xe9yk7u4c", + "decode": "75365828052db789aa2adcc363598a85ed389b25", + "params": {} + }, + { + "public": + "0272316ee900232cc38a10ae7eb005c46b853d7646129a15e0bce7fd4f24578d16", + "address": "ex1l989tkt2vfkaqqvl9cpyqz3aa57qypjuxx5k5l", + "decode": "f94e55d96a626dd0019f2e02400a3ded3c02065c", + "params": {} + }, + { + "public": + "0262acb56b1e8a2ac6051de0f430e408b936a03afbaf20de8cefd47a79d8d17d8c", + "address": "ex1257jd9m0vvdx29whek4j4ffrn5629z8hnp6a3l", + "decode": "553d26976f631a6515d7cdab2aa5239d34a288f7", + "params": {} + }, + { + "public": + "03544953c006512cc85c5780e6b0770118b6ad88c0ee702527b86a4bf5902c65a6", + "address": "ex1wqaj9hm6u6mlhs398tx2puexz7vamlzhfcqw8y", + "decode": "703b22df7ae6b7fbc2253acca0f3261799ddfc57", + "params": {} + }, + { + "public": + "033893fb1feaaf308cba89574c64e55468b7ffb454de285b9fa59f72f45e758922", + "address": "ex1jsack4vl9rqwwy3lvfm4fftqxpnqwarhwf73ka", + "decode": "943b8b559f28c0e7123f627754a5603066077477", + "params": {} + }, + { + "public": + "0309e8dd87dfd209a972cb42bd2671d15a1bb75c72b7e13c08eb740b8e02850453", + "address": "ex1g5jyhrtg5ww8tkraus7rkqh6walcn40h4gfcgv", + "decode": "45244b8d68a39c75d87de43c3b02fa777f89d5f7", + "params": {} + }, + { + "public": + "02c0210e6d27a12658a71ef53c76585a4a0851399b2c344041dde28598e54fb25e", + "address": "ex1ajfk6e0vjquat5r9gc5pt0uzn9gfxlnrx9v7kv", + "decode": "ec936d65ec9039d5d065462815bf829950937e63", + "params": {} + }, + { + "public": + "0256f5e29c2754abc3c4abb8e2f2f91dc98b236b43a9b7fac0945f6df1ee4d08be", + "address": "ex19vfjpek89z9k6kwv8j8muph7j6n08cp2fgvdkj", + "decode": "2b1320e6c7288b6d59cc3c8fbe06fe96a6f3e02a", + "params": {} + }, + { + "public": + "03302cf82fa93e774cb8d56d62b60e7de8c8e221bc49f04d8641636b2f2e443109", + "address": "ex16pdx9f07pkt9dmqztxf05sphmlhx6zr6vqe8l7", + "decode": "d05a62a5fe0d9656ec025992fa4037dfee6d087a", + "params": {} + }, + { + "public": + "022c477c27f9f5a7201a6961ddc5a28d0801f3caeb29a2bb78e7c41c27b74641f0", + "address": "ex1c9xhgpx60kmpf65r56kkk6ruyntm4sxsfnskpt", + "decode": "c14d7404da7db614ea83a6ad6b687c24d7bac0d0", + "params": {} + }, + { + "public": + "03eb5256a89177ea9c4e5c050cf139e2f5ffd1308631924c364a556598ab8cd726", + "address": "ex13ajle2za5znmlc3q4tnwj8uhegkx0qte3jmza8", + "decode": "8f65fca85da0a7bfe220aae6e91f97ca2c678179", + "params": {} + }, + { + "public": + "027e2333ff2d8eb86852fe794b4c180a20aae2e9dc46f1be36fb768a8fd7a0715a", + "address": "ex1s4s3uf5mc98wtvcs2hnmzvvgstm0ajmwsj6tk0", + "decode": "85611e269bc14ee5b31055e7b1318882f6fecb6e", + "params": {} + }, + { + "public": + "03c02b43ff967a2e8039f8b5e92f88dee24ed66790e208bac44964eb3f1239d771", + "address": "ex14wjfhl4hj0t074cueke9mrk56nl4nk807eywvr", + "decode": "aba49bfeb793d6ff571ccdb25d8ed4d4ff59d8ef", + "params": {} + }, + { + "public": + "03aabcb9e4d0cbc783978c32690519e502cfa6491698cc843f27450c1eba456adf", + "address": "ex1azmdsea30r9kq9xemgq5ua7vj0kap44fj70tlz", + "decode": "e8b6d867b178cb6014d9da014e77cc93edd0d6a9", + "params": {} + }, + { + "public": + "0281ab3f1babd1cb915add7fc1e956f4aa8ffd6d7a88a0241665c677eab34fa3d4", + "address": "ex14h4lp7hd3vv8lzv2qz798tuq762g8nyn5vdg8s", + "decode": "adebf0faed8b187f898a00bc53af80f69483cc93", + "params": {} + }, + { + "public": + "03a74e6d54eb7301c45f4f61fb4a538a1cd6d86e06daa1b7b387c31d466194cf63", + "address": "ex1kf7864y3lr72gh9r8tsz4ptaz3spkz6xh9lrvf", + "decode": "b27c7d5491f8fca45ca33ae02a857d14601b0b46", + "params": {} + }, + { + "public": + "0341fe436825250f2ef4bc2f697f5b9bb437b4ae722e8dbc05b8b0d037348f10ae", + "address": "ex1xklvrwdmjw2gum0c7d5y2ajhhlr6c8ngsh54al", + "decode": "35bec1b9bb93948e6df8f368457657bfc7ac1e68", + "params": {} + }, + { + "public": + "03e09ae388f708938b57e6c1bf3733c81036609a75c13f93b153fb71b83586c9d1", + "address": "ex1g7ycs2q3h2rx4zmykae7df06xem5vkv420trw0", + "decode": "4789882811ba866a8b64b773e6a5fa3677465995", + "params": {} + }, + { + "public": + "02147ca6cc7f58f20729e2a4b2382820374315d40ae11c51efe0308fc9d7b9e2e0", + "address": "ex10uskhjcxkkngpjf8sehvke03l582mvmchcf5e4", + "decode": "7f216bcb06b5a680c927866ecb65f1fd0eadb378", + "params": {} + }, + { + "public": + "03c0ccdcf7f1f40d02c44571e311d2762f11cf02fb409bd0f9a80490d040a921d0", + "address": "ex1glh427qdgelnranzkep3cm49068pg2cj5t3qu6", + "decode": "47ef55780d467f31f662b6431c6ea57e8e142b12", + "params": {} + }, + { + "public": + "0245d1f16ecef9731548b2d677c798d49cb0a8fe77c046494d853dd4607ec0b13b", + "address": "ex1af4lhmtnmvkgspwc6rhmzx044ff0j4pywfvtdt", + "decode": "ea6bfbed73db2c8805d8d0efb119f5aa52f95424", + "params": {} + }, + { + "public": + "020a535b609789bbfb4d52461cd1bcfc726527bf3b79a3aab085ec78bb202cb72a", + "address": "ex1m3dqt02pgyz37df0xkn3ddr2tkqv3emfth033v", + "decode": "dc5a05bd4141051f352f35a716b46a5d80c8e769", + "params": {} + }, + { + "public": + "0343e5108f35283a4ffe723da48b323cc6376b74ad18ff52e014d461f253800022", + "address": "ex1774n2w79sycglqrc0h9lv9mk4dvqdzap97mdp7", + "decode": "f7ab353bc581308f80787dcbf61776ab58068ba1", + "params": {} + }, + { + "public": + "03e1a22c444f103660f5fcec07f44cf1f7cda4a60c95980962b2171a36425103de", + "address": "ex18x5ep6svvma05s62yrrkqksn6mpdrj6mcc3unw", + "decode": "39a990ea0c66fafa434a20c7605a13d6c2d1cb5b", + "params": {} + }, + { + "public": + "02f6f0dd9be4efe7d3aa46c4accd03864608cb5dbc05a04d536c4a088f99381c1e", + "address": "ex1hlnwupd8e2xza7vzngrcszak4smxpd8xz46g99", + "decode": "bfe6ee05a7ca8c2ef9829a07880bb6ac3660b4e6", + "params": {} + }, + { + "public": + "024f27dc811246716199a0da84fdf62f26b07dfce550b88ffcd2b695dab9599cb5", + "address": "ex1c6vtqk8gpxya7wd699jcpd5jr53mzw5atmeuxj", + "decode": "c698b058e80989df39ba296580b6921d23b13a9d", + "params": {} + }, + { + "public": + "02bd9c967bf60b066b0841f4c5bae45f5b91136a49f8c994ef8c710dd1517cb0a5", + "address": "ex1ehd0y7s3e3cc76uwvtw7qw9as2ug4myys3ueaf", + "decode": "cddaf27a11cc718f6b8e62dde038bd82b88aec84", + "params": {} + }, + { + "public": + "02786e112bd8105d43ab1e0d1f489b398c58ae5400036104443d418d97e2ef6384", + "address": "ex1ranqeyhwhkg8wucajqe3c3c2na9hjun89d56p3", + "decode": "1f660c92eebd9077731d90331c470a9f4b797267", + "params": {} + }, + { + "public": + "0321721939243398e9726d710c58d73dc9d1cef70b7246e62deca69280922f1ff9", + "address": "ex15x57u3ze2vgt0m94q5mnvc5yqr94hlw4kunrsy", + "decode": "a1a9ee44595310b7ecb5053736628400cb5bfdd5", + "params": {} + } +]; diff --git a/test/address/one/one_test.dart b/test/address/one/one_test.dart new file mode 100644 index 0000000..a092818 --- /dev/null +++ b/test/address/one/one_test.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/address/one_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("one address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = OneAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = OneAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/one/test_vector.dart b/test/address/one/test_vector.dart new file mode 100644 index 0000000..24d191d --- /dev/null +++ b/test/address/one/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "0310317b6146aeb0bb9ede84aaa9207cda5ec39f9b99458e293c1477d38420b36f", + "address": "one19hwuxvg6e9fgl9fem6gxspff0uyc0s3wwzjdx2", + "decode": "2dddc3311ac9528f9539de906805297f0987c22e", + "params": {} + }, + { + "public": + "026128c9236b4c2871ef6f6c055a84a7c7698047efbffeadbebeceab2ff6502b75", + "address": "one1umtfxs80t2a4dr9cx8avjw4003qv9ywegk3pjz", + "decode": "e6d69340ef5abb568cb831fac93aaf7c40c291d9", + "params": {} + }, + { + "public": + "03f5e4cbb34282e6434587d4d2d2a8392a3b01f1f045a951a588049e1ca53572bd", + "address": "one1a0hcq5utvkpuvd32ny33d2uzfvgjyptxza4zya", + "decode": "ebef80538b6583c6362a992316ab824b11220566", + "params": {} + }, + { + "public": + "03db51611a1351705781d39024e44946fd56fdc74c94731b1b4d44e40131cb13b3", + "address": "one13s4zpavdhjaef72ha4pykjprvrvycx4lf8u2cm", + "decode": "8c2a20f58dbcbb94f957ed424b482360d84c1abf", + "params": {} + }, + { + "public": + "02b186095654a4c80d37ea535a47aae25913d073eb079a580b1a2dada160ba0553", + "address": "one1ghykwrw9xg0u974ua2sxla6mxtpg0rj9xzlmxx", + "decode": "45c9670dc5321fc2fabceaa06ff75b32c2878e45", + "params": {} + }, + { + "public": + "03aef98539ea17deb59350127c2d5dfa31104173ba3a2458510d96e59c4afdeeff", + "address": "one1vr7zxr8umanpr5jg6pru54hzsg5nsc3u2xf6a2", + "decode": "60fc230cfcdf6611d248d047ca56e2822938623c", + "params": {} + }, + { + "public": + "036bcb9f1db975e99744ee16cb5c9488f1bb1b506cf08d5f0076ecbdf78d17fe17", + "address": "one1p8nd6d6j4w960qn4ytasz4l5rq0n7t3duyc52x", + "decode": "09e6dd3752ab8ba7827522fb0157f4181f3f2e2d", + "params": {} + }, + { + "public": + "03380333bb82ca8193333a4e2d3ffd04658ce1f1e4cd7adb94e2917d67ea852eeb", + "address": "one1cvpucx8xpuy05jjy0lk6aph5y79ylkqj56teqg", + "decode": "c303cc18e60f08fa4a447fedae86f4278a4fd812", + "params": {} + }, + { + "public": + "0258a3cadce01f6c1dbfe55811a2120fed50ccd084d148bb376fb4aaae06c025a8", + "address": "one1qkwkqkxu7ux5kgtysu0mu2d275jy7k59tdmc8x", + "decode": "059d6058dcf70d4b2164871fbe29aaf5244f5a85", + "params": {} + }, + { + "public": + "026e19fa29205cc6b27ecadd439a014ad44f8e8956328197882d42cd40307038fb", + "address": "one1dfahaw9x4m4pe3refxun7hdz8pf3ruumqwc4kg", + "decode": "6a7b7eb8a6aeea1cc47949b93f5da2385311f39b", + "params": {} + }, + { + "public": + "032649a6e6cfc642eb0465db2375e90057998a725564330b28a410e7f4b23f6849", + "address": "one1zk8mnjcfvgd7cu5uvt8068rhrnzyapcas356fg", + "decode": "158fb9cb09621bec729c62cefd1c771cc44e871d", + "params": {} + }, + { + "public": + "0234ab85858d13233478b914c0c1d731bb6bf30e3bebcb15a9a20bab7f54153854", + "address": "one1qvh7x2q2mejdqppn64hkhuqujg6n29sy0tvfmc", + "decode": "032fe3280ade64d00433d56f6bf01c9235351604", + "params": {} + }, + { + "public": + "02a7df7015ad405e3dbacfcf00568d82c3ff490b83aeec320f9f315b770aec0b71", + "address": "one1p8vkf8xt88w6jcflcwl6aa54r3wj9pucmmrfpm", + "decode": "09d9649ccb39dda9613fc3bfaef6951c5d228798", + "params": {} + }, + { + "public": + "032cf2404f853b525d22e24d2dcad57a7cf6ddf6668bbc1a4be9f71bcbb522d5fc", + "address": "one1spvvvlmknm08vtx9j0utxla9jkcrp9svm33z20", + "decode": "8058c67f769ede762cc593f8b37fa595b030960c", + "params": {} + }, + { + "public": + "026762c2f0f2ba38c2396347958a17bb83b9bb60d46e19b37f8cab1044bd68bb15", + "address": "one1z4h6dkgfrdhgv3lqk97ph9sel2ra6cc53mk7nl", + "decode": "156fa6d9091b6e8647e0b17c1b9619fa87dd6314", + "params": {} + }, + { + "public": + "032aa137c6556a4f9e6385454764c314ce04d36e5fb8b1e32be8c344525168b701", + "address": "one1muzzjd5qlkfv85seny83259wv22nnskp33y5kk", + "decode": "df04293680fd92c3d219990f1550ae629539c2c1", + "params": {} + }, + { + "public": + "0222d6257f494beeb19624eafaf774d5f66bed9425e404ff8b1f94e5dd6b6adcdb", + "address": "one1mfn3udjfcvhld2lzsctuv4cwdcgsnjt4a4glaf", + "decode": "da671e3649c32ff6abe28617c6570e6e1109c975", + "params": {} + }, + { + "public": + "033d01aa5e0e663ed73c4bc14b67606dd6f97bdf26b01772682c9f8672df073a14", + "address": "one1mgsmtuase7z9x9mrk285whrv53wkh26pdhhstj", + "decode": "da21b5f3b0cf84531763b28f475c6ca45d6bab41", + "params": {} + }, + { + "public": + "02e9544673e0f78acb403dc5681ae2036e4e86e9a878b604225301093e1977b8c3", + "address": "one12gc7lvvh646eefe6jf9cuzgtdc3rc6t4rhfhtr", + "decode": "5231efb197d5759ca73a924b8e090b6e223c6975", + "params": {} + }, + { + "public": + "03f5bcbe52a0b2cb8942f340dd1021d83c7017a907e1ade045f351c2dada625243", + "address": "one1w4m8423rfmn092qrw037j8pdhxcqjqsfmytknh", + "decode": "75767aaa234ee6f2a80373e3e91c2db9b0090209", + "params": {} + }, + { + "public": + "028d1c55e9e641e626b2c03034188336f1518612ea4511f51c0ff105328b211873", + "address": "one14dtpz32frrp5xdaxctknnrxxv74w64hsvflpsx", + "decode": "ab5611454918c34337a6c2ed398cc667aaed56f0", + "params": {} + }, + { + "public": + "02968250c6fc669f8f1beb2375e27d123c4dde3fe376d1fa28a14ceb105efb76fc", + "address": "one1ga7p5e7j53a29wqjvnnaery4mjzh4npkvzr6rc", + "decode": "477c1a67d2a47aa2b81264e7dc8c95dc857acc36", + "params": {} + }, + { + "public": + "039e533f71b013a9207c64000a847d1e0a9459c7e0f683daceaa95200f1b0a934c", + "address": "one1lu6zjqd35e8js280wfmgyj6t6hjrmp9wnmavv3", + "decode": "ff342901b1a64f2828ef7276824b4bd5e43d84ae", + "params": {} + }, + { + "public": + "02bf1dbb281062138c3abd0208272a5e86266c803122b9c1e7aefa282b278dec83", + "address": "one1748ul4glwzs7aqcgq4yhru9593za35hhhk6j5y", + "decode": "f54fcfd51f70a1ee8308054971f0b42c45d8d2f7", + "params": {} + }, + { + "public": + "033f49d6e70ae809d581dc6c5cad532f4866accddb136b1af347532b54c0d6b267", + "address": "one19kvv4ncpjv6jlxcrug5upexl6dnl6g96mmr8sx", + "decode": "2d98cacf0193352f9b03e229c0e4dfd367fd20ba", + "params": {} + }, + { + "public": + "025f8186cf21cd5b17a90633e0974fe0dc9f424d96c13756a8077349b8062f3bee", + "address": "one1tyjnwzrehtvr00s8ctl5t63wj9quqcc5l79cmj", + "decode": "5925370879bad837be07c2ff45ea2e9141c06314", + "params": {} + }, + { + "public": + "02930f873fe93b341c5b128e695acafeb8a65ae65f12e3681b6e15d3f7b163d3bb", + "address": "one1jc6v97fzrk804w9v7459wmxkcytxu003fzkgl8", + "decode": "9634c2f9221d8efab8acf568576cd6c1166e3df1", + "params": {} + }, + { + "public": + "02139e5aa80970872db59e6646fe0d63f4239ef3db64761f5e77b6af1ca55a460e", + "address": "one1fr2qczddtxf4ekep2gtmdysjp4na04kzxfl836", + "decode": "48d40c09ad59935cdb215217b692120d67d7d6c2", + "params": {} + }, + { + "public": + "0331c415275ad2145f46b8c5f52bbb1293b115ad3d814deb09949c13e6b20d5548", + "address": "one1znn2mx6nvwyjzf2w346wplcnvaran5tqvcnge0", + "decode": "14e6ad9b53638921254e8d74e0ff136747d9d160", + "params": {} + }, + { + "public": + "02e6c50621b2d212d9d7415637ea3490a10d3d7f7e7748f02071cc2cf5aba62c9f", + "address": "one17akgszz62dt55mdj49t94w707c6jh5nuckza0a", + "decode": "f76c88085a53574a6db2a9565abbcff6352bd27c", + "params": {} + }, + { + "public": + "02a8c2a22b28a8f2e75abb6c3a662cf8f792b4df4cd201d91af93d637d90b00651", + "address": "one1fnms3xnp2k33kk0ecf7kh9d5dlsjrnv6amf3n6", + "decode": "4cf7089a6155a31b59f9c27d6b95b46fe121cd9a", + "params": {} + }, + { + "public": + "03010aef51394de967afcc36c952e385d92d24c233903262fee720a1a10b955c69", + "address": "one1k86wkgcz9wlp74cr6s3l3cag9e4sjqt8whwak0", + "decode": "b1f4eb23022bbe1f5703d423f8e3a82e6b090167", + "params": {} + }, + { + "public": + "02057b4b35a5540f9fa0de9b83abd375d9dce68a1476769892931f8c32d336548f", + "address": "one1uwef7an4r23w6grrv3v9vanttzgyjmq9q8td0h", + "decode": "e3b29f76751aa2ed2063645856766b5890496c05", + "params": {} + }, + { + "public": + "02a82630f09feeae5ba271da2e08a9bcf2509c923796386a7ff216247b62b5a39b", + "address": "one1hq3hyjhhnttchz99suhcpldswhvgrhrxldnekh", + "decode": "b823724af79ad78b88a5872f80fdb075d881dc66", + "params": {} + }, + { + "public": + "029bdc5417024f8929961cc93838067eeb7b44e88d608a18d4685e2eee94daacdc", + "address": "one1v90ecw38slqzn97lhwzf63wfy7enymmstkm890", + "decode": "615f9c3a2787c02997dfbb849d45c927b3326f70", + "params": {} + }, + { + "public": + "03ae0b45bbf9f036f39433d82710b9d3da59cbce4df09d3ea1cbc916e795e4d585", + "address": "one1vmq4rxjkvll29vcat9aakfxnskvawc8g6z6u73", + "decode": "66c1519a5667fea2b31d597bdb24d38599d760e8", + "params": {} + }, + { + "public": + "023a2d3198153ba7829b0da5130f843fd363b5c4320211700b37d3b081e44ee554", + "address": "one1nsc6w8hzpgtsm8n48nrxssf28ug77mf9f360u3", + "decode": "9c31a71ee20a170d9e753cc668412a3f11ef6d25", + "params": {} + }, + { + "public": + "024fa62c1ef9b470a4fd109aa3e2ffd662620592c9982c432cdeae5420f39adbd4", + "address": "one1mvh8dmza30u2l3dtld24rm5l67qcmtcfu8c27u", + "decode": "db2e76ec5d8bf8afc5abfb5551ee9fd7818daf09", + "params": {} + }, + { + "public": + "0397bde944273b9a9fc429a536b0b07f5119c6a050bceebeb0b323116e250a3c32", + "address": "one1fv8tzynqvhkgjzpmwuke4kwy0lr6n3qsx5ztx8", + "decode": "4b0eb1126065ec89083b772d9ad9c47fc7a9c410", + "params": {} + }, + { + "public": + "027cc6e5fae1b444cf962af5f16fbbe9ed4b793f1ee1b8949d854b8d430e2b7764", + "address": "one1rpglkf6ruxl6x4psw539d8j9tuckmr9naexewc", + "decode": "1851fb2743e1bfa354307522569e455f316d8cb3", + "params": {} + }, + { + "public": + "0335fb38ff3e1e66295eeed242646bbbf48a1192f4b2d5f915b89b8e70d160bfdb", + "address": "one1urr7rgqxl4lv59du5jtjaanrw2twnkwjfql8as", + "decode": "e0c7e1a006fd7eca15bca4972ef6637296e9d9d2", + "params": {} + }, + { + "public": + "02d6fef4e338276c354fadc6b13c502692993ef2a78a9a7e9b317bef9ec881ef0b", + "address": "one15jrszvvd2j7xn7h8jfjwemj8hl68a5gkfs6pl2", + "decode": "a48701318d54bc69fae79264ecee47bff47ed116", + "params": {} + }, + { + "public": + "0364d4ebe206238556e6c74d0ae56458417564bfc6ee71e423e73e711de8d70197", + "address": "one1l05hvlpdz4zyk8zwfc0fze7sq237d57juk7kh8", + "decode": "fbe9767c2d15444b1c4e4e1e9167d002a3e6d3d2", + "params": {} + }, + { + "public": + "031ed09f31cf9362c5395b411dac61486ce30d670b33494356110f6fa1a5cd92a5", + "address": "one1s8mutlnggvx5yvjcsd77hvg8s0nrcdpe36m3f7", + "decode": "81f7c5fe68430d423258837debb10783e63c3439", + "params": {} + }, + { + "public": + "0333dfb6a6525474afcb43a85c9917c167d7cb2ea31d576a8df552fdaebe245965", + "address": "one1cjfekxlpwq2r54esecqfqu3nyqw3hj0m7kmt5s", + "decode": "c4939b1be170143a5730ce00907233201d1bc9fb", + "params": {} + }, + { + "public": + "025b43d4ca2917fe796d18d162049cbcb5833dd6abb6d038b7fe611f11bc430ca0", + "address": "one16xyayg5jqmdgstt3xftkdtqgkky4277znjg2kx", + "decode": "d189d2229206da882d71325766ac08b589557bc2", + "params": {} + }, + { + "public": + "03bbb19f8defd0666b7cf52f52537dc17f1137b434be5e40f0b7ae8e5995d42251", + "address": "one1f2y44tpwqns09cf090gdn4elvjxcpuanu40cll", + "decode": "4a895aac2e04e0f2e12f2bd0d9d73f648d80f3b3", + "params": {} + }, + { + "public": + "03521e97f1c9a70293de8c95efb1f5b4d1db50909e60278ee77de01ad9661b66d5", + "address": "one18lwgzcmnfd9f8xk3e5f2xt2ujn4pz2gs4ycxuu", + "decode": "3fdc8163734b4a939ad1cd12a32d5c94ea112910", + "params": {} + }, + { + "public": + "03b463e4423e7a3d84fb0e5b86e34dfbb7f4b95397c31f4d428aeaebde1f42e201", + "address": "one1lrsnnn4degtyffv8dat9ugtu8rm4vkl47fz8qn", + "decode": "f8e139ceadca1644a5876f565e217c38f7565bf5", + "params": {} + }, + { + "public": + "024d47a38a60f96f1330a3042855bf26517d862303aa3a3d02596698f3a2fdac99", + "address": "one1u4cygrw5c057d5986t6jvtnncgzttnwysug7j3", + "decode": "e570440dd4c3e9e6d0a7d2f5262e73c204b5cdc4", + "params": {} + } +]; diff --git a/test/address/p2pkh/comperesed_test_vector.dart b/test/address/p2pkh/comperesed_test_vector.dart new file mode 100644 index 0000000..8d58743 --- /dev/null +++ b/test/address/p2pkh/comperesed_test_vector.dart @@ -0,0 +1,352 @@ +final List> compresedTestVector = [ + { + "public": + "0357acbdc4c68d1128be4ed9f0eaf6b9419ee79055899777fb8bb32963a894eb18", + "address": "mx6uP6SkwNgbVqwEaTqd7oRNuAJgit3ER6", + "decode": "b5edb9383e884742a4e979424818e5135a523cbf", + "params": {"net_ver": "6f"} + }, + { + "public": + "03a802079ebc9894ef7be16e05f87749147301d5421d36ba8576fe513c2e50aaf8", + "address": "XnXBaoFQb6VwHUypKtSf66f1AX1L9pbPPS", + "decode": "81cdd63f26eee01dcb4ea28706e686e0ba023775", + "params": {"net_ver": "4c"} + }, + { + "public": + "0339e96876afb67763a77c0d0b7f7d8b3659a17fd56a56e09c71cae6fc5ac8883e", + "address": "DRq8DVXBXNHTPyBctM1Wdx39wUxU47Fwyt", + "decode": "e2f48db73c94b96b19aed20115133a8448be1eb2", + "params": {"net_ver": "1e"} + }, + { + "public": + "02fb1e9298039bdbe45b7598b4474fddeed4b351398435157b8ad09bc5b6e4baf4", + "address": "n2yL1XPqEwtyh7avPp5cNXt3Xpsdmh9jTk", + "decode": "eb57954faa730cb8f99f6e760e9d6eb5d44f205c", + "params": {"net_ver": "6f"} + }, + { + "public": + "02393aea8482bda16d62dda0df7f0e71bde0dd03cc568006c32bd308c0c66d6bec", + "address": "t1bQVBWqSRNUgfxRDGJLdSJBRZ25RnZafwq", + "decode": "c051561a95b7cc17d4c76e5d64885eae9f9a882c", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "03717a3d0543a730f2c054dc3beeb3c62c732a7fa0d5e35bbce584a1ba8d09b572", + "address": "mnB8NoJVZXMX57CjCHqq1jEu81JuCA14wX", + "decode": "4908fa24c4a763deeef68ce0b964a3715894b751", + "params": {"net_ver": "6f"} + }, + { + "public": + "03de14f79791c3de9a1739911c43f67a59f3f3173798ebc64387382729a40e3946", + "address": "mjoLqaxHRhNA3NN1dMatM25aHzjvcXpSqF", + "decode": "2ef9fa1e204e61abff4cca29bee16430e63b5614", + "params": {"net_ver": "6f"} + }, + { + "public": + "03b196ccf54634ad4e87a4cfce8075b07a36b4f321b2a4ac0eab59fdaeff64e599", + "address": "yRqbG81v9EHrKKmzf9bDXB3DeiGjkxCrF8", + "decode": "3c8c214d28234534e09b089b0ee8f217e69437bb", + "params": {"net_ver": "8c"} + }, + { + "public": + "03462f5f976de0fd8b89de10a5dfeeae441b64240e3e745c326b65e11297936885", + "address": "tmKupsDfg18XXwMXPxDipw5ab1E4RSXosGB", + "decode": "6fdcd1985f5140cc167357d88eae94bc64e1dc59", + "params": {"net_ver": "1d25"} + }, + { + "public": + "035903aaf5988df09ad1fc018a841eaccfa835960cd71ee6307fc0c81536df366e", + "address": "nWQvRZTkyPzDmB5MnnwvRxDYdbpxXaHRgk", + "decode": "185a1b2cf050856ba2d6350ebf662541a686b554", + "params": {"net_ver": "71"} + }, + { + "public": + "033d1d9d5bc38c506480ebebd53a768c980029902bf82010702f54507104d40bb0", + "address": "1HWTXYq89RczCD7ywiQLbo57kh2womH5L9", + "decode": "b5143803def48ae6e4941e453797cb88ae784b75", + "params": {"net_ver": "00"} + }, + { + "public": + "036cdae6c6aec8d0a4a340754aa9fa1315cb6adc11d329c7c88d0ee6c818472a08", + "address": "mtyeHbh1zZ7yneNXvDUAuzCYavqWqcUcfT", + "decode": "93a5d57eabfb0932e7f77252d682a527767ea13a", + "params": {"net_ver": "6f"} + }, + { + "public": + "034d91dc3abac85d33eb99d42e028ebfa7651568922e543258a4c093e371843a54", + "address": "t1f3Ccx473nPJBzWvJP81wJNN7zsrHeLtJH", + "decode": "e82b478adc76f9798621fa00ea59453ff5fc37f4", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "0374a0bfc34965833084a139b334a54f927d3eb76035f1f69bf283906f720700d0", + "address": "14h3JXGHwoRKv8qfYeQJAt8qwCjqY8pzdo", + "decode": "287af0013f2958929f08b08f64e730085a6d194e", + "params": {"net_ver": "00"} + }, + { + "public": + "038cbd9bb6a2785a41e38ee5e375231af664310ac1a5bf48bbb4bb32b746cd5d8b", + "address": "t1QhDwj571FMtQUYZhvZQeDraTcqnvEAgUL", + "decode": "4ad24de30838147aef770814cbba6fc7b2b032f8", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "02f35e1f05f0359f3e9bd1dd297d163b241601c478f0ec8b419d69154a085668a3", + "address": "tmSsKaAhFgCgJsDKUvKRv1pQzDc4eh2wRAa", + "decode": "bc2c69f5afc1c9f5c175a87306581eed8613c180", + "params": {"net_ver": "1d25"} + }, + { + "public": + "02f386a8c508472f9b407185bc1447dc43357b9dc00cebb98858d187f9d38dc32a", + "address": "1N8Bn52kNusuM8w3v49PxcVnZGeAatKhzD", + "decode": "e7b68ca759c794dbd900665c405335f3dfa8a3d2", + "params": {"net_ver": "00"} + }, + { + "public": + "0266b95cb7073c74b2c5f6f79d74205e0be066c58f0e47dd69451ba9920faae802", + "address": "msM5c2QRGiQgvWXmfLgf4t5xeE4tDP4vyU", + "decode": "81c373a523da3d1fcddb5c1f1881bf32f5c32ad2", + "params": {"net_ver": "6f"} + }, + { + "public": + "0209593e958644b6d177472faa1402b150507e64a3a034d0966c75684af6a50394", + "address": "mzsjA85yw91fQSLqSYG8XCLc8tn4LG8gmm", + "decode": "d45828ba15453c2350907fb0910dee3229ab8d59", + "params": {"net_ver": "6f"} + }, + { + "public": + "02d12d2f6ffa0aaafe6da9c6995e281b8b264531edbbc040ee6e62077456925dfb", + "address": "ycp4EeWABsVCj3auzCpHe2dmM9Kkn6w4bv", + "decode": "b4eb32f36da7c8f50d2ad6aff1f6aefdebd81332", + "params": {"net_ver": "8c"} + }, + { + "public": + "03ffaf2246eb295252975442880c2fac35bcc2e6b57e7f495245566de33b75a429", + "address": "t1SWp6z6etqmmxVDWnJAt3aAfQE7hVkk8cF", + "decode": "5eca7ec9a399073f4f0816aa05e4a51400c8ff8e", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "0319b8498377a852dd912910e5b01f2ccb0f47caa4e8cc083b1ba700a977752164", + "address": "miYfmKGvkfqkewutS2v5fHeJrDpd8LFdaE", + "decode": "213b6927183789e84a7fb730a50a48998a5fb8b2", + "params": {"net_ver": "6f"} + }, + { + "public": + "03fee3b5d179109d29994f224d19000a1455da9c2fa93bafd5085bc821ddf83eb4", + "address": "ygmML7E5NB5zaFtsKWBwi82ZGzfuMpXXah", + "decode": "e048b94801fa6769bc1eaca253d00a89bb33ceee", + "params": {"net_ver": "8c"} + }, + { + "public": + "02028e045d589a2a917f883e7560200268e00beb7fa47ad0a8356afc9c6929021e", + "address": "XvvyZTcnkBeCNezVuvFVa7UmTjxqfMEWYH", + "decode": "de0eca368e4fd7471ae84c2841920a6e4ca0e5fa", + "params": {"net_ver": "4c"} + }, + { + "public": + "02c5426f260d1966637675e7494605eda90874405631aaf38dfc20b4565f3189fb", + "address": "1H4TwKiCTcFheGtBmhvEZMaKisZN1Ld9Vg", + "decode": "b029bef7813c5bf378e56d0aef3a75b33bcb14c0", + "params": {"net_ver": "00"} + }, + { + "public": + "030a6965e76aecc7d8f87e62632b7e65752f727fbc07f63031fa5ea6bd4ac3498d", + "address": "t1JGNAmbyg4UhsuXXgKihryuwJjT5jMRCvy", + "decode": "044e042ba701618cc3d9255783fe054cbffe9f77", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "037da941e8c850b6119ebc5efb948b798355385d5bc3d4cb93d3edaf35d3495f32", + "address": "t1gD4TrvvbJkgMdPuNz5QLJwQh2hJPBqZZb", + "decode": "f500c18911316ce99ba209deb6e94fb488dd7bf7", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "02ce43889af64bfd96d3800b11212faccab6b4ef71bf45a250a59ac3e948ee6e42", + "address": "DNZp4h1dMXjif7L8GQa5KwYnnkv9DnLC8Y", + "decode": "bf26c8d364d24e329ca92f11619bda8f97a6faa6", + "params": {"net_ver": "1e"} + }, + { + "public": + "032a076f453f422b317adb0efc5e9f6b5d996d696bfcabc4eda99833d95d3cb3a9", + "address": "t1eh7H7QuvVmBQMXgLdWZ4FG8LtLEgSyiFG", + "decode": "e45e803bc0cdff703222e25b12087be2d64037d0", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "028e69493d3b1c716da8141016f6851642835253d28b16e404c121a1dc83963826", + "address": "yLSUwfRymmgpfrDze8APdmcMaoENTEocs7", + "decode": "0154a8eb02e7e672370516b85425f043e8da20f7", + "params": {"net_ver": "8c"} + }, + { + "public": + "0250520b4a9648dc84472c33c34d7591fc6d00e8ed2d639033f3e898c7959f27d1", + "address": "tmStXFFESwoB2gc7TWgweFvYe2qbcHKj63u", + "decode": "bc66931b2b130b0bb4f6452ab5f046a73258ee80", + "params": {"net_ver": "1d25"} + }, + { + "public": + "035ca8cd12372f68788a510a5f0e6cd43d57f7db318dea7653e46adc8f4ff608c4", + "address": "nbD3dEvDuaCGViR9RrVwhBAFPL2AraNJVz", + "decode": "4cf3c1440d3001c0e26bc3799c1e511a64bea38b", + "params": {"net_ver": "71"} + }, + { + "public": + "03dbd05384681a18268badcbfffd22e13d49d087b79d7e55546595dc3ee192a324", + "address": "1DcPWvcRaBWANXd6hppFDpMzjQW5SmQCaS", + "decode": "8a52dd0970ead2dba82cc676efee6bc3d4b6b445", + "params": {"net_ver": "00"} + }, + { + "public": + "03ba15217b95a9502a93eb701d2bbac64e8cdcb6ed05336024a1d8776cb7c09fc7", + "address": "ydoyFcArbuZaNvNfvmj2U6mEPXhMkiYFRc", + "decode": "bfdf2a32963a6898a19bd26099bb759fc2b69e40", + "params": {"net_ver": "8c"} + }, + { + "public": + "0227271ed29eee6b146980d51e4cecd89a775b63aa3d08a5419a7177ad5986bfc6", + "address": "tmDCYjnyiFkPvtEFD5hS1KUBukw7cXZwam5", + "decode": "263d8beda27350b356e0170fdf2f9b97cc390a4b", + "params": {"net_ver": "1d25"} + }, + { + "public": + "02ebad0a30e7af5f3e8f2f2f75e7409dfbb9c226e0d24a308656b4cfaa14f067b6", + "address": "yee3cUayqfzX7jG38FwB1eWySTPErU9js6", + "decode": "c8f6c53849b9c360d936f1c8e6f7e4013b3ba975", + "params": {"net_ver": "8c"} + }, + { + "public": + "02979259f3c6a4e907abe9a847b57ad6cef26a83bbc1e3fad9dffdaed828c0ff66", + "address": "XimXpyUWMehbqGwJa72PPBUcKU2emgVFa8", + "decode": "58a40e719cd50c7f2c09a717fa8e9dd24616abec", + "params": {"net_ver": "4c"} + }, + { + "public": + "03a256146c83c2f76f05d6a984234099c44fa16ffa58eb7f270cec3fa09bd28f50", + "address": "mmoS66C2UpEmhsAMgJgmasofB156JwAKDd", + "decode": "44ee9c72dfc17655a1c0b5eb67e3b5502cc3521b", + "params": {"net_ver": "6f"} + }, + { + "public": + "0376a8e1d16844a3d0188ea455ca50d015cefd4545280204147761db159842a602", + "address": "tmJdAEkaAxf8S7mYbe8HJy6WfyXyPQEwrr2", + "decode": "61bdcaba6ee1785f68c2dd1580eadf4c33f520fd", + "params": {"net_ver": "1d25"} + }, + { + "public": + "02f70fa8798d28cb5909a6cc99f9d07c44a5661c23d9d8a15b6d3272f305398561", + "address": "yegDe9M8SgnumN3z4nLnQiZr9EyptSZpbf", + "decode": "c95ff951c72f41887de979fbd7306f6c0c8d39a6", + "params": {"net_ver": "8c"} + }, + { + "public": + "033fa475f91eb9c6adf4596dc304f9a96fd1118d996d706776804523a25ef8e176", + "address": "yY1FCXy3cyBoCVSUpKL7du8b1h6CMNjv7c", + "decode": "80304c30bad90b27940ceeb7cc172c2d9c2eb3e7", + "params": {"net_ver": "8c"} + }, + { + "public": + "02f17750605ff45711a06449c67b7a60297a2a506fef5428f56aede3fe2ebe8c8a", + "address": "niPeWWxsevRWBPRCDNyUQgoR4AhraDAw48", + "decode": "9bbdea31293853940c92a30b71b4035e308dcf6c", + "params": {"net_ver": "71"} + }, + { + "public": + "03f19460b7a40887c95454ac9fb5f23980a7045aaaa56a72b34155dbceebe8851a", + "address": "my6oXTf6vRaqLoGeqZceoi8r17q3a8mdFb", + "decode": "c0e0f60e256935ec1c8fbab3816f3d08aeffe99b", + "params": {"net_ver": "6f"} + }, + { + "public": + "02a72c06050bb98d7746d2a7498ef7b67e8c32c6890ee413fce10fef42482802aa", + "address": "1CTWgQeuTmjh6GAtHgcRhXGjHm7mB2ig7h", + "decode": "7dacf949ba013ad131e5f98a12e99424bb21b675", + "params": {"net_ver": "00"} + }, + { + "public": + "02dd89785fdacee5a77b83cddd9c2d273b725f8803e86f6351c8cdeb2d4dd35667", + "address": "XsmSX141ARjsBmsR1uJ5x4STurj5BbYsFu", + "decode": "bb58c18a20d386d4b160eee80dda3a1031a9e2dd", + "params": {"net_ver": "4c"} + }, + { + "public": + "03363be2a7ebdf178f7a61d056c571953e2014a31ffe04aeae3d4aa0d022f50caf", + "address": "1CX2r3Mn1hTRe1TkeJkJRFUvtuQmiCq6BZ", + "decode": "7e57672df3bf9c3d6e83abe85fc7abace7829919", + "params": {"net_ver": "00"} + }, + { + "public": + "03d959448dea44162543d713a0f0968bc9d4f6ac2e8989a1c0d5611b7f6e34a1a4", + "address": "1Bw7XnLQNd5mnPjuWRpsZMDdKdq22f8Y1p", + "decode": "77ed2bdd2335ea8ff5725c30374ffb105c19324c", + "params": {"net_ver": "00"} + }, + { + "public": + "025907dde5d6d66b68d2b95e799089edc3409a10db2446677a0d05e17d7dcc6e2a", + "address": "mmg5DGm98dWEbrT7q77o9rZRaPiue7ggi6", + "decode": "438a45d95bea9d3544d16fd2deee8086ff398162", + "params": {"net_ver": "6f"} + }, + { + "public": + "024981a796bdd9bd42a84632405a04f2f901f9ffddb6a09b3d4da2f3a54193332a", + "address": "n4ArdQEN48epw8BvxHSBYLpgZKakPG6Yic", + "decode": "f87dd7fc8b802e9a5c8cc8cd0f211f48d8aa4583", + "params": {"net_ver": "6f"} + }, + { + "public": + "03bd05fbc5fc6a484d3eecf00ee31e19081f59fc18531b0e49303655ebf387453b", + "address": "t1KCueY6PVrrfxEjvEsJ7xMF1mRS27NkxWw", + "decode": "0e9ec15f2f444ef0a433333d575baab969e7aebc", + "params": {"net_ver": "1cb8"} + } +]; diff --git a/test/address/p2pkh/p2pkh_test.dart b/test/address/p2pkh/p2pkh_test.dart new file mode 100644 index 0000000..0dc82c2 --- /dev/null +++ b/test/address/p2pkh/p2pkh_test.dart @@ -0,0 +1,34 @@ +import 'package:blockchain_utils/bip/address/p2pkh_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'comperesed_test_vector.dart' show compresedTestVector; +import 'uncompresed_test_vector.dart' show uncompressedTestVector; + +void main() { + test("p2pkh address test", () { + for (final i in compresedTestVector) { + final params = Map.from(i["params"]); + params["pub_key_mode"] = P2PKHPubKeyModes.compressed; + params["net_ver"] = BytesUtils.fromHexString(params["net_ver"]); + final z = P2PKHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = P2PKHAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); + test("p2pkh uncompressed publickey address test", () { + for (final i in uncompressedTestVector) { + final params = Map.from(i["params"]); + params["pub_key_mode"] = P2PKHPubKeyModes.uncompressed; + params["net_ver"] = BytesUtils.fromHexString(params["net_ver"]); + final z = P2PKHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = P2PKHAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/p2pkh/uncompresed_test_vector.dart b/test/address/p2pkh/uncompresed_test_vector.dart new file mode 100644 index 0000000..df8937a --- /dev/null +++ b/test/address/p2pkh/uncompresed_test_vector.dart @@ -0,0 +1,352 @@ +final List> uncompressedTestVector = [ + { + "public": + "03ec7436a15f325c3885e5760f5845f2180ee76d29df480f6a1ef09d540705dd2f", + "address": "mprm2RLyQysz2QWxArXAY2pUJTAXA5VpBR", + "decode": "66780b40434f0c50e68fc36934c9770019efc301", + "params": {"net_ver": "6f"} + }, + { + "public": + "0279d743c3764353b8e96d7d58c3bad4d9c1114f58798e02f4e1a33738e872848b", + "address": "1EpEabvo1pKbjo96hTbFpUMzK9R9hLQ8ir", + "decode": "978885573ab2855e71bf9113f3ee1ff08b465048", + "params": {"net_ver": "00"} + }, + { + "public": + "022931fa9ea47c1d5a59fd1240b25588b52e51eff3127e9c58942cc30d1697f0a4", + "address": "1CKwBBJLyLChkeH1WeCbrFsf65oZ3R5kWK", + "decode": "7c3e1826df3740614f0bd743aac05b570d25042f", + "params": {"net_ver": "00"} + }, + { + "public": + "027f259faffb135ae7ae30243c924dccd6f5a620de03a831ca424f2bd691f00e79", + "address": "DEcv1vHTzKxxmSuVZpszTiqNNpCxojHDu8", + "decode": "67fbfea8441efbf9ea365c83ee78619cfbd70173", + "params": {"net_ver": "1e"} + }, + { + "public": + "02b00c48b9d50e585a0ca288831f2777ce0418d8e0e0aae231f6d5fb2679b4652c", + "address": "Xxbx7Yrqiri5oqbKoKVoQZ6BP7g96cGz8p", + "decode": "f065ee372f394b550b7e391580655c3fb4b20db1", + "params": {"net_ver": "4c"} + }, + { + "public": + "03d2dd32f7a80810a1fa5ae02151701c9fff138484e7f85ed747bcd8c36e395a8d", + "address": "nVGr9WPCdA5RumWeik1FEEipYEsGZ8nm5t", + "decode": "0bdb1525707c251108ece9e7f7dc05405b46108b", + "params": {"net_ver": "71"} + }, + { + "public": + "02040e47fd1a77f8740704466e22825110466cb224a6dc6593b44b18a3802f537b", + "address": "mgRZCVq3mc25eZbHEp18hGqGG8Los21JaG", + "decode": "09f2c43e47889c950337b46e36ee0096424d3ede", + "params": {"net_ver": "6f"} + }, + { + "public": + "0206aa3cfd9bb92fada7940c0a7920e84209360527e3c50d10e37d37390e6afac0", + "address": "nhZzH5grkboNXEhPt6DCiCkWcPcEnWF3LT", + "decode": "92ba734f92a9d4fe4e6f2dde992e7517375318b2", + "params": {"net_ver": "71"} + }, + { + "public": + "03d1300e5fc7994109d71a020167b41085819bbe7abf8f16f9bc083d38288db5b5", + "address": "n1ET3wPd2UKjc35xMjjcT6ZDkDHRBnZZj5", + "decode": "d84372fb929a062b4fd6713ebcf466c793986c7c", + "params": {"net_ver": "6f"} + }, + { + "public": + "026680f1a5cdfcf8c493b2c60377701513e2203785fe6f080456d3749ecd52f2be", + "address": "tmYgZqFUL4WKj9EaeD988b86v4vc7qaUezv", + "decode": "fbf47f286e794bc6fb34a7763b696bbf59e99f7a", + "params": {"net_ver": "1d25"} + }, + { + "public": + "0284c6ce068943f75c0aaf1af17bd3c8435e7354b67623d5ccd58dde22f3b3b126", + "address": "t1Yt5LztGpEF3tzE1HZxKzfV7p5WHDR6XtC", + "decode": "a4a0b54e10668c5b9d260cd0b26753c9c2c6c697", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "039436a25bef889c82c766b68d9313c60d19bed7100cd010a6b7f685bfdbb98cea", + "address": "tmUSgv8aPyFfVAbP9ZR34aDBhBGmCcgE7Sk", + "decode": "cd74156b35016514903b1533fa5fdab23fe0604a", + "params": {"net_ver": "1d25"} + }, + { + "public": + "02857e47e53b502e5a7dc4d6b1b9b67ca995dfb9cb2608341c65f61e537a0b8dd2", + "address": "D8wyF6ApXaDV62ABucqF3xDQks98JWsCZm", + "decode": "29c5d64fbc9d24d2d08c4f9464a8cf2eca886d75", + "params": {"net_ver": "1e"} + }, + { + "public": + "02a6c0d8a94689460176f9a88b36c4aa96e76a48bc2b52acaf1c6071a13f4098a8", + "address": "yQ2n5BFFGM9jMS7W76DKUWX8T4mtmz1gu8", + "decode": "28b97a9a685ca0c908ac7843e7c9f816937138c4", + "params": {"net_ver": "8c"} + }, + { + "public": + "025a2d40033c3333b40d4d4943358ab89a6c8a9902188bb04eea736e4f42f0cccf", + "address": "LbLGpa71Q5VGeMHvPaBnKzsuXcEyDh9zhJ", + "decode": "b0b3ffea7159919e2a315a2ebb4823ac5b1b79e6", + "params": {"net_ver": "30"} + }, + { + "public": + "03eb9ff49ff60b189362a1d180027e29038dd1553c52ca992bdc4028618f34e2fa", + "address": "t1Sa6a5aaQStMZeuShEaXHFJi3LbB9nh1pr", + "decode": "5f697d3e4572d4ce19dc6bec3e31f02b81223733", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "025b14aa143eecb479c94626ad9aa9088f390e4e5416c759e11200ef9ede7c4a61", + "address": "tmJzSKeQMwk7fyAoV6pB7ENLYGDhSZuswzz", + "decode": "65c3f4234688d5c496aed3c144d2135ee99abe28", + "params": {"net_ver": "1d25"} + }, + { + "public": + "0350b8aaa8b4ea1e89e7ae8cf82540859ec48e5f562c74e6a16d6877fa0a72e4f6", + "address": "mi9bTPArZ6oRmU2drohSMYYGB1HTRbtWu3", + "decode": "1cde3f1adb99861bb6a1a47968aff3f295e7c90e", + "params": {"net_ver": "6f"} + }, + { + "public": + "03af98c71f5ec11de826aa82e9a3f9b45a56e63710429d01c23029d8fa3c7dc26d", + "address": "LUQJV6i3HmX6VFT8zf25PgkYwEboTyN3vY", + "decode": "64ae2c1b7b68110c6a3fb4170c5f259d9f427d81", + "params": {"net_ver": "30"} + }, + { + "public": + "0250bd546df092b026beb36d3290c3b888b9dde636d4e8c8feb4401fcdb55ce8eb", + "address": "LWmoHutX9BmJKCJTr32AQBHqKxibYfMvtc", + "decode": "7eaf34bf0060ab1dfa6923bdfe729342f189dfd9", + "params": {"net_ver": "30"} + }, + { + "public": + "0331ea7939e1a7fcf222d115297f106d06cc2ea150cd1f6eb5096ada65b5803738", + "address": "XiUE9rP8X3EXjoTojpsj7ASthcSyLdiPRx", + "decode": "555e3b2ad8c7508c7e1150bfa941cf7de2b944a8", + "params": {"net_ver": "4c"} + }, + { + "public": + "0278f75b5486f9149ec8198083f4c7af4d32603e9db0d4a0d1fc5e16651c2d03f1", + "address": "yYtS3uXzP1TrB37ufJ9JP1HYZMeFpEyRPx", + "decode": "89de91e03ed8b4b8695f8f25642a8646c0d321d5", + "params": {"net_ver": "8c"} + }, + { + "public": + "037f4a6e00dd23d119909c9cdd0aa162971bafdcb9c1c4c260c686f39b6df82c38", + "address": "LXYG8EWuC5XTzmrFrqdus7XBFNYeo2snrp", + "decode": "8717e85356171f05661ea9dd9c73b516ce03076b", + "params": {"net_ver": "30"} + }, + { + "public": + "03614536bd5bfdbc9aad580662f8b33e1c6f17f041e0f450bc77bb05f29e4e981d", + "address": "LeDp6cipHvbCAtpbFK9j5MeHyePKPfZ515", + "decode": "d06392deefb1918478a55178f5396b3825eb3ac2", + "params": {"net_ver": "30"} + }, + { + "public": + "023e24d032da696bf0dea3fff819758cbf1d2d0da79f656db6ddc29bd29829e608", + "address": "mrCz3wZCsCaE7jZi9gQq4y1teVAt97pHUQ", + "decode": "75435cdaa81f3ee8b68defd88d4ab9498bf3dedf", + "params": {"net_ver": "6f"} + }, + { + "public": + "02bb460cb5b59fe08e69d96841fdea0bee7aeb90d143a56b446d0e855910eb8c72", + "address": "19CcE4BLs3xHUQ6TpgJnT2XT5yUvU7w3aF", + "decode": "59f2fc7c122dfbdc0f0b7faa21355da0ccfb07bc", + "params": {"net_ver": "00"} + }, + { + "public": + "0277afb90c933aaaad6da09d8411205b3646a7d165a61a6f1ac1a5ee93517d02e5", + "address": "t1MuMsbeUzeE9qgWeakj14RSjqGb49ZFuzL", + "decode": "2c35897e9042059e3635316e82a1c2fd0a33af72", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "03175f7c9acb0d383d3cf2e41ae49b1c5a6da91e01ceb2e002551ba5378313e5fa", + "address": "t1PM1SugoiVd1vXsY9wj2o5HkDP2r3hB5fM", + "decode": "3c076d69245525ced91e0e7a5c82e77ae354d02d", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "0282a8b42f38504e36d0c637eb6afbe62c83c93cbde29a904533be7493bdd828e2", + "address": "ns423XcAxf758tMhFMJFFvnypk8rTob6GD", + "decode": "fac0b430e9e9b719098abd80872b4d55ee6c293a", + "params": {"net_ver": "71"} + }, + { + "public": + "0244c974487dc8b7a4e4ef813431d0b08d3c069a0180b68d472e44c4fc461c8c5d", + "address": "1JVqdfzGyViDdwjV9cyYFsd7grc3RvR7f3", + "decode": "bfee61a5d52646a412d76c716556ffb62b04672c", + "params": {"net_ver": "00"} + }, + { + "public": + "020b8e1631b57212e0dbee4d6b02c942d5000250157ca0bc93d423e63de12f2d84", + "address": "tmDsqp3sc3Wty4jakaUyHmNJ7SgZnG4nbVn", + "decode": "2dac0570ff51b3b414f058a7401c5fbbeb136152", + "params": {"net_ver": "1d25"} + }, + { + "public": + "03d97a311c6ba2fc63cba5c41023611f35a65e88057abccc4395f5393a7419f466", + "address": "t1gxpfUyUTxDW856uxFJbNLxHdAijd4EkkE", + "decode": "fd4789f9a0a62fbbe3ae8a7aaf72a620bf118d17", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "02fc52bda300a22cda5b8fafa5553a5340f5fd369284f344e2db9adca9e2b14958", + "address": "182Ehq4tDd7DJq75hdm7LsDV8eyGKQFYhv", + "decode": "4d04bc658b20d994cd5293732748a755f4f8e683", + "params": {"net_ver": "00"} + }, + { + "public": + "0392535f617bf6b842debcc8a310732e0e321bc72402b21a019b0b260546a4a89b", + "address": "muAE8ngKC7DgVTTaQLkacjkCFZBweSZBjr", + "decode": "95a63fa0d5692f4f1592634ef359899cb15b2b85", + "params": {"net_ver": "6f"} + }, + { + "public": + "02253e03924198a9b8fcd94db996dbfe962a318b7fab3935196f696b6d825fabac", + "address": "noC2h2AmmKQ4tErXyx5CGTzg9wnLSyKGmd", + "decode": "d064116ad04dc8573843dda003231336d27a83ba", + "params": {"net_ver": "71"} + }, + { + "public": + "022188cb83e3363e4b07d3d82277c60b79775a93e29f90a015ad67a5f7270c173d", + "address": "t1cyaDNdnZPGCHVdiLkDLfJDjYKWKijZ9d3", + "decode": "d18b63b014b9b88a6ca60a09c02eb6d5871cb504", + "params": {"net_ver": "1cb8"} + }, + { + "public": + "03716b054e70c06ea1d51274e43151eee2c8adbfd8bf49a99903afe0077184611b", + "address": "XhWvBPS5Y5Miz8bRPkPLd1u6r23adsiRLT", + "decode": "4ae85984842cd726f06ecc9879dfc5c3fe84d2fd", + "params": {"net_ver": "4c"} + }, + { + "public": + "03d869731fa67ec63ab578cfc4ba0811b9bd19b3a1b13b5a5f9aed4c5057ef0cab", + "address": "XwP1pxkV3tJsRaWjnGL2gfR3AtYbjcWdoy", + "decode": "e2fb7f5e450f96965de824d0dd08b8f9d9368999", + "params": {"net_ver": "4c"} + }, + { + "public": + "025f0504a4bfdd6bfc83edff839f7f16fd3a908676a912be6d5900086c36df7701", + "address": "njYCrJY4fuKjPrpJiU8BupoA7TgJ3FWtZp", + "decode": "a8545d84e767e45e5afdeebaa6fe5094dea2673f", + "params": {"net_ver": "71"} + }, + { + "public": + "0270d82d6146a84dd09a1f8c840e3d67ddfd131138e45fa1b54afd551b27b579b8", + "address": "mu9HW5kh6sHgbTYWUPpvJ6DHLg2sFutLUe", + "decode": "9578a4b1bda7ccbc8708cc8b8d0862b931df9d85", + "params": {"net_ver": "6f"} + }, + { + "public": + "0302b81b5b699fa1190e127a3f7dc00658f1b2d68dd65cd092b03471748f7d032f", + "address": "DNTXkLkZxpRgeUGdnfpdyByqzJC3k92RQx", + "decode": "bdf6ab21fccb4d44e2f4a168d891b2fb16248b7b", + "params": {"net_ver": "1e"} + }, + { + "public": + "02423d3d566559a3cd96c8c62a513fef543c8b4f901d57294a33e3ffd4c8224ce2", + "address": "tmUnuNEt8h92w4CvCd8CmoqVD4Rx6tXsWqP", + "decode": "d146cbb741acbc19602bb6294078102d926b02a5", + "params": {"net_ver": "1d25"} + }, + { + "public": + "02b7b11fb892c628de434a810b8bf7e804b14ce333e9325414ec604e98f084091b", + "address": "mvho7nHrnRRhassRSKNDHYSu2PmgGJ16KF", + "decode": "a696cd3a567608b0e7245f5faf0ab124de0513b9", + "params": {"net_ver": "6f"} + }, + { + "public": + "033005720649875e74a458e7fdbc8b498d13c5b35cae223f1ab50cbc142972107c", + "address": "18WdmZkYNMMthxMLtSqk6fdgkHYYHirsvA", + "decode": "5263a2d499bb74dede2444f59c621776ed4186a0", + "params": {"net_ver": "00"} + }, + { + "public": + "02c0ca7b04cdfc6941463f02517d40511b983ce594916bd2c5b66822799e015234", + "address": "tmZ2KNeREn2zHENPssxvGiX1ij7hL1VexgY", + "decode": "ffb0bf165b33bdca91fbd35b0dac5e654b05fd71", + "params": {"net_ver": "1d25"} + }, + { + "public": + "038ce8e084f9221f9c6da7af9fa34ac912818226c84e8c160612f4fad4bfad24a3", + "address": "XufAjF9PtnQztnuQMt3o7854Au3qQJ6UBC", + "decode": "d01954f6ad2ae07e5daa42e1e8e9532d51f170ad", + "params": {"net_ver": "4c"} + }, + { + "public": + "02554a34d7b160d0fdb87d1087c9edc7911e1f2b181524b19b0f3ae941e5857845", + "address": "XnK8qDUakaoXKw2rEwk2WTuyJc5e2jUT83", + "decode": "7f868c7074171c3618108b02654ec16466ef1af2", + "params": {"net_ver": "4c"} + }, + { + "public": + "03a75aaa5a13bd41e582fa25f300ffe296fc325d5c6cafe642f2fda73eeaa154bb", + "address": "mfYTNfiHujaJFymx1tUPGx7z3yf6WbWBqW", + "decode": "0048b0baf2dc0e140de04e0e9e53716c9d9917b1", + "params": {"net_ver": "6f"} + }, + { + "public": + "02abf1cda0b4f04f3081d37a77ec3f13d5a9620880b5c9f5020fccf5190f1beac8", + "address": "mj5FJS8qgzXz8taiM7Hg521wE7ufPFQVLZ", + "decode": "2703e26da1dc200813e4ace9ca89d6a44de38ce1", + "params": {"net_ver": "6f"} + }, + { + "public": + "0376268da362d6ecc8a0d364aa2363b5cc4ebcec284497f82fce7b01bcfeb335e2", + "address": "mpZ3nfJ1BP6AbbRDZkv3k4aFk4mxZ1dmD8", + "decode": "631e8cab68931729dce1bb31f04936ad4920a160", + "params": {"net_ver": "6f"} + } +]; diff --git a/test/address/p2sh/p2sh_test.dart b/test/address/p2sh/p2sh_test.dart new file mode 100644 index 0000000..d6a79ce --- /dev/null +++ b/test/address/p2sh/p2sh_test.dart @@ -0,0 +1,20 @@ +import 'package:blockchain_utils/bip/address/p2sh_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("p2sh address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + params["net_ver"] = BytesUtils.fromHexString(params["net_ver"]); + final z = P2SHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = P2SHAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/p2sh/test_vector.dart b/test/address/p2sh/test_vector.dart new file mode 100644 index 0000000..61a3eda --- /dev/null +++ b/test/address/p2sh/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "02ccdc1d593a12fc65e91cc302ab1ac57838bc3c4262ab6b720d3b45da6cf3cf62", + "address": "37xLrhtoYnTJ3womrCBAvjaD8mMCh6vhUf", + "decode": "44b6cc9e90c2c92039d1e4be34f62f21e6a5637e", + "params": {"net_ver": "05"} + }, + { + "public": + "03e779f46adeb1008619fb3e5c0b9ff9a30f89205fb915a09a9790503f6a0b7003", + "address": "3EnqecARRLK1e2DRfWYpauSRRXgn9jUacm", + "decode": "8fb38dd3d20714f4f7c61add905bb860546924c4", + "params": {"net_ver": "05"} + }, + { + "public": + "03e76f0e474e34ac1a2c93fd7e665eb95c58b6c3e4847014e8c76cfd2c91b19685", + "address": "t3UTk6K3icSd7Bwaxe6zt6ioCrYbYB8TJZj", + "decode": "6c94bdbb85c467959cf573bb377698089ec01b6b", + "params": {"net_ver": "1cbd"} + }, + { + "public": + "026383cf3d5374c64e7c2f715207b71cab4947afa29880cf6b7382b6f76529dc50", + "address": "MN9Lj8PUwww1VXCa1H5kDzwHgS3cCe37BX", + "decode": "9c4058553359f83d190ee0dd7d49b00885e1070d", + "params": {"net_ver": "32"} + }, + { + "public": + "03df4ad622016ca624a1cc91b75107a1f0cf6fe8a9c744d5b44d25d4e7a65585c9", + "address": "QNQPGRSHMXGoQ5kQGRoJB89mpfpabBbjzV", + "decode": "13be973c54455b5cd9338df0ce0c9df2dbfbfb7d", + "params": {"net_ver": "3a"} + }, + { + "public": + "02dac8e0b9ecee9f35b3305d8bae9ea53447018d2bc43b82144ddb7cffe651619d", + "address": "QRcSebQxEbeahEYSZcfWNsRdoVwYbjWwTU", + "decode": "36eec8753fb8319258c2acef62a2e304ec6bb6ed", + "params": {"net_ver": "3a"} + }, + { + "public": + "028f49c2881d12c5493e9215b234f34b860db152b2f466eb33919d780878733550", + "address": "QXYDzzDotW1o7u5VBvc3xd9JePS9vM34Xx", + "decode": "77f350c7c5f672c8336bb57269ab5b0b2f2aa3a0", + "params": {"net_ver": "3a"} + }, + { + "public": + "02f5248e217c6e8b455ccd4a33fb069c0af3058fa4765337e24e58b66049eee73d", + "address": "2NCefBbdbkb9sxfEHW3UbU3VQPVwWBa25YB", + "decode": "d4d8fd21c6d1e4ed13efb47a1a8180f633a570bb", + "params": {"net_ver": "c4"} + }, + { + "public": + "03c4da1c1744b4da7bb386887c427cf605cd4e70e041b809b0b326a60b7384dce2", + "address": "MErgWxwmUKjTg5UxZmK4ZzV4sa1qVpoGty", + "decode": "4c50e9cf6084fcdc8f26749919abb99c9bf10c7b", + "params": {"net_ver": "32"} + }, + { + "public": + "0393207cf9edc03b54cf776b0545565032bfd9172481f925208f1e8115003a7064", + "address": "3C1pJkSRoZxGyAfpRCSmgXRkYcGtZfiB7c", + "decode": "713f76af5e35a48e94a78554797bbad8cafc4d30", + "params": {"net_ver": "05"} + }, + { + "public": + "02bdd089b15c922b1bfff4fe754ac9417112fd81ac29548cabc98eba4f318007cd", + "address": "3QK5TVrLPmYQg8F784jMmb8JR4zDsCe1Fu", + "decode": "f824b10ffb2cd0076a362089f5ccbd7668a149cd", + "params": {"net_ver": "05"} + }, + { + "public": + "029e02d5ce1869a2699caf3d94ea47d7d9f9846beffe427fe69807f7bc671c8d07", + "address": "36MNKtrnPWCMcz476g119cKJkTzjZ6UkMJ", + "decode": "332157469d67e16e04db76de842cfb663405c5ab", + "params": {"net_ver": "05"} + }, + { + "public": + "0368769bb4514a267df4459c1bf30f9daf0e4590687155fb548cb80a5378ff84a5", + "address": "39kdVX8nWqrwCHpcbkEs98avS2BZonwFCP", + "decode": "586ff1feef1606118026e99872927bb330c745a1", + "params": {"net_ver": "05"} + }, + { + "public": + "03f60d87ce5906e9e1093dafb99d6ce17cc039aa8c93f4c5f2082f3c848611f798", + "address": "MWSqSixMJT1vqCjNHX4QbA3ub1aAZ72ZS4", + "decode": "f7506501cc519a7cc70ca9da9a9e00634afe48c4", + "params": {"net_ver": "32"} + }, + { + "public": + "029b9ce546e1f9fe4d1d1559e54573f27f47d21bf408ca4bbc1d450e5502109bd7", + "address": "QdJPLdz3QgWReZzPhTjACQXF9T2xn1Xsae", + "decode": "b7260adce992e56117149dd52d844b770419278b", + "params": {"net_ver": "3a"} + }, + { + "public": + "0207775b7e89d67010819e226998846743ae2f8323a125e39a071bdcdd3c406718", + "address": "3FhF7ByvxYrjGCCu9G83ctUebawHasEJv1", + "decode": "999cc41c138fc36b44bfbde2f58aeaca5cbb67a4", + "params": {"net_ver": "05"} + }, + { + "public": + "030be94d2a66669051f19c16893b6b16a6e682f685f68bd1b4cf2b41b7033eaf1a", + "address": "3EhcMSqu5XhdcfKvd31y3o3CUvufqA1cKy", + "decode": "8eb660181cf3801d6976f0f7e57e0558339761ea", + "params": {"net_ver": "05"} + }, + { + "public": + "03f6dbcd73570cf2129ca02e53b476eae096b730970528acf992c50b48e3ee0d6b", + "address": "MPatqPy9rdRwpUzzMScy1dBxYMziQ1Dcck", + "decode": "ac0dac1f61a2bf7a06aa66395506d44a3e6360b5", + "params": {"net_ver": "32"} + }, + { + "public": + "02c801e9bee8213d477f192b00a157bd5ee4499b6fa61585e3337971c3d047b770", + "address": "91s6PeYcBLnuVsXAUo7wUqwm3TYr4ocmra", + "decode": "eb33a95820f2b5857176632f765e4893784073a9", + "params": {"net_ver": "13"} + }, + { + "public": + "032d8f5f66bb0b6e52706c1b9c0cf3b64e89f281ceaf0de86bf5e0898abaad189c", + "address": "t2JD1GDRk468LuYK9PMeWo8X4mAzpPCVVVi", + "decode": "7fe29cc0d695b5791facb652a5409ddee7a30101", + "params": {"net_ver": "1cba"} + }, + { + "public": + "028da77e770ac70f3526445780b8e9d24bf24b894c88a2cf2dc2cc09e18abd4834", + "address": "t3S8MBpCHMbgfVQYD9hXANLn5cd9Cyf4aTn", + "decode": "52f9774fe207bcfda14342028e743a35c3b5cb4b", + "params": {"net_ver": "1cbd"} + }, + { + "public": + "02bc9e06022e6cf32c964c072ec0a088329323a9568ce289690af83e438d7249be", + "address": "2NEt3yDjuz63csWzZiMRePYRjaEaJxHEAiu", + "decode": "ed51ab4e0fb976f5f780f01516b5fc7648c7b136", + "params": {"net_ver": "c4"} + }, + { + "public": + "02e057611dddd6330a67753c132215081f39ff09de3ce93da038b694ff4447df81", + "address": "2Mw6CMmyUK5G8SisWkdodLPAyryPE851QSp", + "decode": "2a2b6637bcfe1f266790921a3eee004ca07368d7", + "params": {"net_ver": "c4"} + }, + { + "public": + "02f0f8f1b5b40bd5448c2cb01c3c9ae2f12219e80bcf998fda47a2b9730a104402", + "address": "MNrhQGCmqc7ZpNNboUiUPTDANhAci51Xu2", + "decode": "a412a86b22c4ac689705306d39db4bd11cdc97be", + "params": {"net_ver": "32"} + }, + { + "public": + "027cc7876a8c36861a1fbe53e4a404df2bb4e0d6efd78bb99534344c79fe44964e", + "address": "2MwWApRp452PzkvVeo8MSeNYop39HYnTbKE", + "decode": "2eb418b0b058ddbfbc154c7a85b0e00a11e960d6", + "params": {"net_ver": "c4"} + }, + { + "public": + "0340f5bdf883464ce5da3fe4eea5cff6600078144d3510950db13210bf87451a5b", + "address": "t3aPztbwSP7Vp1tW8yEV8SbcWK7Z3bNzzt1", + "decode": "adb02f525e6a3395d1dfeef38b11d65908992ceb", + "params": {"net_ver": "1cbd"} + }, + { + "public": + "03faffbcaf9668a9bf09444f0feca91c0c464fe482d30517021ff101f8e218fad2", + "address": "QZCmVGVLmWKvCPBVQn6SxMVcXMLVtVFX6T", + "decode": "8a35884b620d3c369d30fbd715369839e0cf979e", + "params": {"net_ver": "3a"} + }, + { + "public": + "024483ab3a0ac71f028cc9371b2228eb48c747e2913121b9366d0a441d0e7d74b4", + "address": "35MkZoJviDLn2XrvwJ3BXkfnajCnXArsa7", + "decode": "283bc7a96be63696f4ce387f79b4d9d523f1e3d6", + "params": {"net_ver": "05"} + }, + { + "public": + "025f6ed0892340caa82757d07bbad629809ddc9876985170bbdc378c937ad9c185", + "address": "QQ43vgZisvvkw1S2u2Q4GG5BZS7gJYcoJv", + "decode": "25d660ec026fabd8b0d7c64759894b364c911c56", + "params": {"net_ver": "3a"} + }, + { + "public": + "02ef00917950ead56f390d3663713eace9d09217f36f53f273571fa46ac5128d29", + "address": "2NDUmLNB8vowiC6crUCEJoG1XpvUEPv9gae", + "decode": "ddf216f6c0145d8a743b73cb4d81a3fc6b086210", + "params": {"net_ver": "c4"} + }, + { + "public": + "03410593aa02b4e9a40877ffd607840d9f2ead053eff167a690ae3fe8bfe246a0e", + "address": "t2UduyygNCPYd3JDdDVUnGEL1gpXXz9zgVH", + "decode": "f249dc99b99e157e81c82806be2b7a266ae30caf", + "params": {"net_ver": "1cba"} + }, + { + "public": + "02de42c4ba4d83681671b9a87fd5c0ed98f049436c9328f4da90bee38d526c14aa", + "address": "8n2XBXc84Q9njiM5YMCbpiSd15xYWaxpjE", + "decode": "536a56b538f30bee757bdfd7e7444e498b932252", + "params": {"net_ver": "13"} + }, + { + "public": + "02d0006a2cd68eeb612d5c233cb549b45b61226a8a9f3ae4c332949514bca17a6e", + "address": "8miJhmeVvpRDbMCX8Fdmr459UkYpzSdPih", + "decode": "4ff86f4e90f5cd15e5fe5ac03babf9565112bb1e", + "params": {"net_ver": "13"} + }, + { + "public": + "039c724d440527a2ad24569fd834bb5f48e67a7753d787fb06d445aa754dde135f", + "address": "33T53jizvmj6oLPDLqfRjGPb6EBLyuyvSn", + "decode": "134d0931708623ee771c90ab433e81b0fcf05c18", + "params": {"net_ver": "05"} + }, + { + "public": + "030131cf76cbf890f56f8f8423daddda3cebab612388e05f752a9c6f8be04edc07", + "address": "34DhswesCBSVGtUHjUsrKwA6J7tp2LWYPi", + "decode": "1bbe1553d186b041e8ab05955ab048c601e4eba4", + "params": {"net_ver": "05"} + }, + { + "public": + "0326bfc6fe2449e0b2a249f8e99dafbb1b76ff59166606c69905543c204dca9a38", + "address": "2NFwAi4vUF1PWcF2uvjDytHWDQTikvDubch", + "decode": "f8e0ab060a99355a8f9733fd52b374389c45b451", + "params": {"net_ver": "c4"} + }, + { + "public": + "039f979dd74d53528168aeca46bd880c922786569bbbca90fc92df2ebf1f0f2d7a", + "address": "t26u34rZtbkASdKmfQGkNgUAcXbMvoR43fT", + "decode": "03d33f5615b2f962e7bb5e03e0dc3c4d71266101", + "params": {"net_ver": "1cba"} + }, + { + "public": + "02f4b6728ce1ed36cb0d3a3aa4c39345ee70008d110be1ed699ec6b8a248776ad7", + "address": "8ynAXX6wPYbUPmJ1BanGQqu7838xGvH33Z", + "decode": "d454c84e8c0406c7fdea5af96e75cfa8f1bac1b3", + "params": {"net_ver": "13"} + }, + { + "public": + "02c7b0861189ff8895dc261e168abcd0c120aa257b19ad1e3e63004f119b88b6d9", + "address": "2MxtBeMX5WNhyDCJLW6poiB2sw94L8abvhA", + "decode": "3dd6102b22472194da84c3746cd8fa6d5255f20d", + "params": {"net_ver": "c4"} + }, + { + "public": + "03a9a97494cfc1982257473f67ec9cb6af395bc99d6aaffbf4261f721241e1d0b9", + "address": "8h79GoXND143B7WTfWX4zeoJi1eoPgnBT2", + "decode": "1d7180365c824c6e1857f1ee9a247d034c722a4e", + "params": {"net_ver": "13"} + }, + { + "public": + "0387e1a2f2c70b5b134e51c077508c41bafda3139749a784ee0d5facc6c0ea7f57", + "address": "t2RPQoTtTqLGjZhJ27kvMNA1ZGHqikhV4tP", + "decode": "cea34d361e11a2a77676990261b6477bf62e1899", + "params": {"net_ver": "1cba"} + }, + { + "public": + "02df92646a7849009059a926b48194db72802ee4569fe94d5d9e4f3743da332a97", + "address": "t2MZPe9g4hVeXcqep5LBuuZkSpdBr9Yxvst", + "decode": "a4a5fd41815e50bc4cbedc7f44aa3f8c899ea16b", + "params": {"net_ver": "1cba"} + }, + { + "public": + "03057bb586c5d12cf2e574a2f85257cbb950fe847b962668395c7f3807e41dfb0e", + "address": "2NBnTQbKMJd35BGi91qDghEF3kRbQH9v33L", + "decode": "cb5a5c528a958fe1157ddcf43bdc3e7a3af76143", + "params": {"net_ver": "c4"} + }, + { + "public": + "02ea78437b2c1cfc720a1e4be7f5ca4c958db2534e1cd41d95471629dd71719803", + "address": "2N2ueyEYzSDSEDAWJKtJYxoGZdyUj3wSgFf", + "decode": "69fdcaddc48bd00f613e423287ff3407a1416f08", + "params": {"net_ver": "c4"} + }, + { + "public": + "032adaf28fabdd082999e10ca543b0aacc5123668773016cff70b3990b70b42549", + "address": "2MsFNgs71nTRTxk9XeNZCji4JnqA8LY3wdh", + "decode": "0007431a161db479d3d1c1a46df43a1bd808e4ac", + "params": {"net_ver": "c4"} + }, + { + "public": + "03bac7936f1bfa326864082144f772f02b415c6a655ec16a1a47757cd55e73711f", + "address": "t3d2Ja6AcUq7vrM9AUq6mdfRoPSS5a7PDBr", + "decode": "ca7e2b9486f5f6b4d5561ff3fb0bef8eafad719e", + "params": {"net_ver": "1cbd"} + }, + { + "public": + "03185ba9437480273a8956018ecd2a19954bd28e1e768478204549b061493ae6e4", + "address": "8ykmyk7XYXycP1N3DvZMyyW9GYZfydemNL", + "decode": "d4118b634b57ddb1a01f89e30fde1e3eb56488d4", + "params": {"net_ver": "13"} + }, + { + "public": + "03535c75518b60524cd18e326ea0a82a656b23d5ad239f3730f23c654a9a067a3f", + "address": "39KmMmVzHKLWAyARaYpF22oi67k2Ff37Tt", + "decode": "53bc1cdc967b41f93b962b0a6d7ea2c9e7d66e38", + "params": {"net_ver": "05"} + }, + { + "public": + "03ff8a80b959a857db35649244e6e956e86aa3d1728976c6ca2ed6192bfb709178", + "address": "38dNiP2ae1kWCzhy7La3RheASibEb9mD3b", + "decode": "4c18924dce4bb10e4cd46581c2d81e7df905f3da", + "params": {"net_ver": "05"} + }, + { + "public": + "0294d4157a6d75cc5b43639765ec8fdc78f30c5b0e811d7dd28d181b168389636f", + "address": "t2Nk4VzrfYBjxw95oTqLoCptTAxqkpznCDq", + "decode": "b1a2b681a98e62bd081315bd6600e7b3ce30f8c2", + "params": {"net_ver": "1cba"} + } +]; diff --git a/test/address/p2tr/p2tr_test.dart b/test/address/p2tr/p2tr_test.dart new file mode 100644 index 0000000..158bf28 --- /dev/null +++ b/test/address/p2tr/p2tr_test.dart @@ -0,0 +1,20 @@ +import 'package:blockchain_utils/bip/address/p2tr_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("p2tr address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = P2TRAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = P2TRAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/p2tr/test_vector.dart b/test/address/p2tr/test_vector.dart new file mode 100644 index 0000000..64f5a53 --- /dev/null +++ b/test/address/p2tr/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "0335fbc4a5f614084b632eb3cdfff8aadfc84b1cd3421fe5cbbddcf92aea6b5a0e", + "address": "tb1pnn5zg97ugxlwejly6u67x0cctfgvvzvpa3nn9yzq9udqw78avl7s48vrqh", + "decode": + "9ce82417dc41beeccbe4d735e33f185a50c60981ec673290402f1a0778fd67fd", + "params": {"hrp": "tb"} + }, + { + "public": + "028d0609564086d0e2366b26984a655543fdfd2d25ec89c26e928023f3840a52af", + "address": "bc1ph4lmxwklchcvvh2wchzassw86yvahdt902mpe0velxzuz2c70sps70mzj4", + "decode": + "bd7fb33adfc5f0c65d4ec5c5d841c7d119dbb5657ab61cbd99f985c12b1e7c03", + "params": {"hrp": "bc"} + }, + { + "public": + "022287351728e9b36f06d6a404e85d0845dfc26fd12a5ff5d955bc3cad2bc0e99d", + "address": "bc1p72fn7dd7u9gey7y2lc7dar59a9ejprzjmdfz0szamcp269ajtu6segrcgj", + "decode": + "f2933f35bee15192788afe3cde8e85e973208c52db5227c05dde02ad17b25f35", + "params": {"hrp": "bc"} + }, + { + "public": + "039de79538f3a7a4fb6987c540a752d0e51fe97f4fce89f0fb5b3b8e6fc09ce7f7", + "address": "bc1p92kklw7ddg5v4a6az4a0dpddj6lnh5qct4ewm8a7agu3ysn59rzqzd0uny", + "decode": + "2aad6fbbcd6a28caf75d157af685ad96bf3bd0185d72ed9fbeea3912427428c4", + "params": {"hrp": "bc"} + }, + { + "public": + "026fc73ba29751d60a0568871b35a3bfd88ce780b3caf76c1ed2476a08076e9e17", + "address": "tb1px3dw3ac8242a0f5xh0z5aj7duf7ldgqsm8elprsx4tqkzcv00pjs3x5rxw", + "decode": + "345ae8f7075555d7a686bbc54ecbcde27df6a010d9f3f08e06aac161618f7865", + "params": {"hrp": "tb"} + }, + { + "public": + "02c0903a58a2c38c4f4150faefcca341bdb82e7ff1fec47955c8723e7aa017ba64", + "address": "tb1pzmlg38npwl9l8g4jvsmdhz0ktd5g9j8udp7dcg9fqqamdh57g6cq4nafdx", + "decode": + "16fe889e6177cbf3a2b26436db89f65b6882c8fc687cdc20a9003bb6de9e46b0", + "params": {"hrp": "tb"} + }, + { + "public": + "02aa3f42b3504caab6c5d1b26278972214e90b1eeccdd0ed5d6e2b7ef50aa3ccf7", + "address": "tb1ps5fthu46utt2lzjrdp4sxa395fmt275f3jdr3lfy340ehgu23prsn6jftc", + "decode": + "8512bbf2bae2d6af8a43686b037625a276b57a898c9a38fd248d5f9ba38a8847", + "params": {"hrp": "tb"} + }, + { + "public": + "029cd54874be43a0d4e3efa58b6a86a14099aee00a9ec69f4299a4a249e788ff66", + "address": "tb1pkzq87z39lh079cgrdkycs9nzmxlrkjd6u84dkadz0mlvdcsrx4ds873wpa", + "decode": + "b0807f0a25fddfe2e1036d89881662d9be3b49bae1eadb75a27efec6e203355b", + "params": {"hrp": "tb"} + }, + { + "public": + "03ed2800b32bfd2a988517ee4a2f2342388262dca513c2515293f831306653bd50", + "address": "bc1pjt9f3fc2mvzktty5450xfn70xlne2wspf0rngxljd75fywffsygsnavcyg", + "decode": + "92ca98a70adb0565ac94ad1e64cfcf37e7953a014bc7341bf26fa89239298111", + "params": {"hrp": "bc"} + }, + { + "public": + "03f68d2c6d4b3fbe2017b59ff59b143ccdf0969a95371d17c8a10b5604752e430e", + "address": "bc1ppakvqszxfusvly2rav7jw7x3pm9u6r3ghsr8dgk8tag5qe6g8mssy8zwkt", + "decode": + "0f6cc040464f20cf9143eb3d2778d10ecbcd0e28bc0676a2c75f514067483ee1", + "params": {"hrp": "bc"} + }, + { + "public": + "03a4fc578f89d80d1b767a169e6fdc06aa66c9e602470faf791088dbfcc81d2446", + "address": "tb1psetachce3vm36nv38etzyutt5677n2dfg7zqn5xtx2sa3l8a8hmsyrwad9", + "decode": + "8657dc5f198b371d4d913e5622716ba6bde9a9a9478409d0cb32a1d8fcfd3df7", + "params": {"hrp": "tb"} + }, + { + "public": + "0277aba064f4075b05d71b0a7bd85b88b6b3561bf0c6b2c1c2d2a41d435bf4a4d3", + "address": "bc1p9ksmx0dezdxamm6gx3je9frnumv96zhfatgvuv7rudnxkrrpeztsv3ata2", + "decode": + "2da1b33db9134dddef48346592a473e6d85d0ae9ead0ce33c3e3666b0c61c897", + "params": {"hrp": "bc"} + }, + { + "public": + "020973d357e8a93d06ac8eb1d140bd1898f5b49651845710be12f1544b08912d10", + "address": "bc1pk3lm4fxd8nx46mv0fcv95zwwp8qsd5dlz46u0kgqfndv6u5mmhhqclt8x2", + "decode": + "b47fbaa4cd3ccd5d6d8f4e185a09ce09c106d1bf1575c7d9004cdacd729bddee", + "params": {"hrp": "bc"} + }, + { + "public": + "03279ad9c382483f91879eabfab7e6949dd0447fa2c7cdd611a5f955e44b96e83a", + "address": "bc1pcqrl7jmx6nspvj9ej2y78220u2ywa5hfgvhmg0280vspf0zy5z4shvxuml", + "decode": + "c007ff4b66d4e01648b99289e3a94fe288eed2e9432fb43d477b2014bc44a0ab", + "params": {"hrp": "bc"} + }, + { + "public": + "03a6f9826c66156ffc2bd8bda7f9d36754d2690a4ce6150feb8d0605d5aea75d99", + "address": "tb1ppmra0kmluady5weq46rms53s400825tvlml9uxdsecg787f7jf4shpsjrn", + "decode": + "0ec7d7db7fe75a4a3b20ae87b85230abde75516cfefe5e19b0ce11e3f93e926b", + "params": {"hrp": "tb"} + }, + { + "public": + "02f44902803377a8b573a167fee62d10c7100e67547d376504ad305a9ff07c1f0b", + "address": "tb1pye2cytztjm7qzx8tc8ztlxgl3zxt7z6a3xvaj43xhqpl4lcnr05qsgjht7", + "decode": + "2655822c4b96fc0118ebc1c4bf991f888cbf0b5d8999d95626b803faff131be8", + "params": {"hrp": "tb"} + }, + { + "public": + "03819a5e9e539e55ad47ebc76c0533d3829abd7e7b635163cb1647036a8a2d1620", + "address": "bc1pdlpq0xqnm9ynnksatx64hsdj7y0hemt7504pqw6vaa6rny2n0gmse5zx8g", + "decode": + "6fc2079813d94939da1d59b55bc1b2f11f7ced7ea3ea103b4cef743991537a37", + "params": {"hrp": "bc"} + }, + { + "public": + "02ddbe628fb71820b718ff133c979260d61c82c42deb29b30b2f716f80abf3b677", + "address": "bc1pscqnau0mznpkvwtx52zecsm9ztaa8m4u07lxm3tk4nnnjuund4xqpnq34h", + "decode": + "86013ef1fb14c3663966a2859c436512fbd3eebc7fbe6dc576ace73973936d4c", + "params": {"hrp": "bc"} + }, + { + "public": + "03d05eb23083b9283848cd973000a36dd523e80def6a238fb4dafc9502830bda41", + "address": "bc1p4yuht6arl4rdgwmdazy3tgzw5uqya7ku8wvfdsrfjm260t5cfwqqz04lwf", + "decode": + "a93975eba3fd46d43b6de88915a04ea7004efadc3b9896c06996d5a7ae984b80", + "params": {"hrp": "bc"} + }, + { + "public": + "024bc99ff716eff749801bf1321a8875cb51ea8416de4d6d9e58f1d43ca63d6ab7", + "address": "tb1pmex4mm4gee5rhx4xzjxvqryayczteulyjj4cwp4lnpkkmnmyphmqw52hcw", + "decode": + "de4d5deea8ce683b9aa6148cc00c9d2604bcf3e494ab8706bf986d6dcf640df6", + "params": {"hrp": "tb"} + }, + { + "public": + "0363f43c45241e78c9a174204929c75610354e27d468c73d83660246d4554d22b4", + "address": "bc1p5z7wyrg9pvnyw5lqjptpa8vu6pkh98r2aukhahnfqcaasx4ql0xqvs44n8", + "decode": + "a0bce20d050b264753e090561e9d9cd06d729c6aef2d7ede69063bd81aa0fbcc", + "params": {"hrp": "bc"} + }, + { + "public": + "0393b9f90c6fc7dbd91d1a6fe2b22df698e77fa5ccee4071b73e94690838352ef6", + "address": "bc1p9lcpkledwra8aqnf4ltjck9qmu2k3053lgzxcjt4gk7t7xnmszcs34j0z7", + "decode": + "2ff01b7f2d70fa7e8269afd72c58a0df1568be91fa046c497545bcbf1a7b80b1", + "params": {"hrp": "bc"} + }, + { + "public": + "032f74d1b20a024f29c4a7d478ffc22232c7fb714d1244d2da4d7739cf82b00094", + "address": "tb1p8jfdkqy09zudh2lkte9d6uwdtgej9535h337rg9yfu5zy0tmq42q7axyv3", + "decode": + "3c92db008f28b8dbabf65e4add71cd5a3322d234bc63e1a0a44f28223d7b0554", + "params": {"hrp": "tb"} + }, + { + "public": + "032307fa49aa0755685aee527f538b5ca83f9b83f9cf6e3db86948efd5192b4b8f", + "address": "bc1p0z8j28nwk0kp9yc5ckf9h409r6x3dtqmh45q78hq57hx5s0jcufssvnhvw", + "decode": + "788f251e6eb3ec129314c5925bd5e51e8d16ac1bbd680f1ee0a7ae6a41f2c713", + "params": {"hrp": "bc"} + }, + { + "public": + "03702a65456ccbfe22e9a308087a230ba122baf0be147726caa90c135d5d94d0f3", + "address": "tb1p8f83j74m7l22gl4xhaj59at2zc8hr0gw4257zpn0nfxs7av4kcgqs9t9tr", + "decode": + "3a4f197abbf7d4a47ea6bf6542f56a160f71bd0eaaa9e1066f9a4d0f7595b610", + "params": {"hrp": "tb"} + }, + { + "public": + "029a2ffbdb50be2d518b03abe3ef4c15e5647295616beb6bcba5d6a6c3d16d9a76", + "address": "tb1ppqpsxn5rjy7vu48d8hltvavt0e4qdpl8s9y4g32hqragyhwf3a6q5w5sy5", + "decode": + "0803034e83913cce54ed3dfeb6758b7e6a0687e7814954455700fa825dc98f74", + "params": {"hrp": "tb"} + }, + { + "public": + "037ecdbf3439737cbd17d00248eff60f83c1e60ca956546086f8deb5a258ce3a7a", + "address": "bc1pva50d72cgdx79u5ff36mpxfmk7drrmnm33nlk8elyktyr6n67cask8f9kf", + "decode": + "6768f6f958434de2f2894c75b0993bb79a31ee7b8c67fb1f3f259641ea7af63b", + "params": {"hrp": "bc"} + }, + { + "public": + "038e44c08de04290314775b418092ffce292c68a6d81055f8cf9d7e40a4cac514f", + "address": "bc1pzj62q9wvqq275adjfsyhfd973pku28dujzkuj42hfwkt5e9302aqca5me7", + "decode": + "14b4a015cc0015ea75b24c0974b4be886dc51dbc90adc955574bacba64b17aba", + "params": {"hrp": "bc"} + }, + { + "public": + "03e04969ff20660d081433f241a93001c953f4626b7e93665c10362a78c5d8a53f", + "address": "tb1p3f0tc232m3emsy2funddpezw799rjp5v7dpz904t9gv96g3hhseqmzmum6", + "decode": + "8a5ebc2a2adc73b81149e4dad0e44ef14a39068cf34222beab2a185d2237bc32", + "params": {"hrp": "tb"} + }, + { + "public": + "03b2a721215d5efa90a5624fa61fb6e01d61950e91b56b93079fcf5f59259ab61e", + "address": "bc1p3ce3uz68tde3xsqx48lhnvs3q3mcacqafhcs9wtj6k9hyus2v3xscws49c", + "decode": + "8e331e0b475b73134006a9ff79b21104778ee01d4df102b972d58b72720a644d", + "params": {"hrp": "bc"} + }, + { + "public": + "03b3b87a3d8b5871850d2b793b5a922d4e8e1c79f175ee55c28cc3782472bc9cee", + "address": "tb1pxyxeh5r2ldhny7sw5zszeywwuu2vtarvxh64lajy7cu2vaef5u8qc2l5af", + "decode": + "310d9bd06afb6f327a0ea0a02c91cee714c5f46c35f55ff644f638a67729a70e", + "params": {"hrp": "tb"} + }, + { + "public": + "02fdca089e548fe9308ed0d532fd7c64976780e3636a4ab0de0dd77a3b9a7eabf8", + "address": "tb1pl75cv3eyqhgj6v3fqjgntpnle7mjcfsthh4n65k7tr7smlx5esasq7356y", + "decode": + "ffa986472405d12d3229049135867fcfb72c260bbdeb3d52de58fd0dfcd4cc3b", + "params": {"hrp": "tb"} + }, + { + "public": + "02b671540e1f9fc30b8350be25f08a9cbcf680d5c3f2ecab9a2131e72ab2786d1a", + "address": "bc1ph7vc0gm04u2nppw5cxq48ccg8xtsvlt4rcecjzdda54q8ulryfpqtrd3m8", + "decode": + "bf9987a36faf153085d4c18153e3083997067d751e338909aded2a03f3e32242", + "params": {"hrp": "bc"} + }, + { + "public": + "036e48195680b36ee85b79f4d7599afb23f754278f5f899fdbf412ebaeae4d436b", + "address": "tb1puvm4vsxrm6cqu00rcryfsgl5749jtpez09yhqt2u8af8n7w5zgxs02fx9h", + "decode": + "e3375640c3deb00e3de3c0c89823f4f54b2587227949702d5c3f5279f9d4120d", + "params": {"hrp": "tb"} + }, + { + "public": + "03a1f9cd67c76390cb44a47125c82f781f68be17b4c4b534b9cd5993ac66a97abd", + "address": "bc1phd6p0h22u9eprpdauzl0ll043209y80eczukr56yzyf67psr0hys4efe48", + "decode": + "bb7417dd4ae1721185bde0befffdf58a9e521df9c0b961d3441113af06037dc9", + "params": {"hrp": "bc"} + }, + { + "public": + "03994336f9c8c1e12cb957a46c59af8dfe5041d5bff73c47f2f59859907af79dae", + "address": "tb1p9gs6l6agjdmsrfj6vqwl8uay6mf2790yvzku3dja86cuplryuldqkhmfda", + "decode": + "2a21afeba8937701a65a601df3f3a4d6d2af15e460adc8b65d3eb1c0fc64e7da", + "params": {"hrp": "tb"} + }, + { + "public": + "0273ef562f0fc4f2b6226bec2670191059c67068cbdfb228b93bfda2f28a531e8e", + "address": "tb1pxxrkqz73yuz6esjngg2sqgmun4aj4cq8l7lr04vnepgh3xdjw33scumlph", + "decode": + "3187600bd12705acc253421500237c9d7b2ae007ffbe37d593c8517899b27463", + "params": {"hrp": "tb"} + }, + { + "public": + "02ef3169c65252e65cfe6ce4c66c03399784a6d5f4bf96d174c26174d1ac75afba", + "address": "tb1pukdmvylpwlhn3zhc0dl2wmp5uhrq0spq8cp4taf0chdjpfflyrzs2z57ac", + "decode": + "e59bb613e177ef388af87b7ea76c34e5c607c0203e0355f52fc5db20a53f20c5", + "params": {"hrp": "tb"} + }, + { + "public": + "02ee389b2b23290d22d87351629a7e4b89c205072646b246d391421bf586a193e5", + "address": "bc1pzue0z4j0xga4963swwduwfa3qwhmx4ugn5944t9yq4pnclz9xa7sdxr9vl", + "decode": + "1732f1564f323b52ea30739bc727b103afb357889d0b5aaca405433c7c45377d", + "params": {"hrp": "bc"} + }, + { + "public": + "024fcf8ba24267f76e0ce122fc67aac70e51f776a96974e0847a31f80d19eeaa5d", + "address": "tb1pdn0jt950yy75rzle5uszgm99yf3d4mzf0q62kpn7rvl0th322eqqwx6w0r", + "decode": + "6cdf25968f213d418bf9a720246ca52262daec497834ab067e1b3ef5de2a5640", + "params": {"hrp": "tb"} + }, + { + "public": + "034a770b18dfa387767450108b01dcaa573c7e82e61845aad1a2a1397348f9cffc", + "address": "tb1pp5xldv8r3uj0uwwvyp2ghfxkwh4dmmfqehr4takqnjke4dve0kxslgn52w", + "decode": + "0d0df6b0e38f24fe39cc20548ba4d675eadded20cdc755f6c09cad9ab5997d8d", + "params": {"hrp": "tb"} + }, + { + "public": + "03b61aa5b552c48e42bbfccda66f658dad3eeafa36bd112f30defdbacd00c69e86", + "address": "bc1pkx663cw5fdp29fh995vj99lsxfal5hxgvp2a0d427ha03xujfqjs0jrpfk", + "decode": + "b1b5a8e1d44b42a2a6e52d192297f0327bfa5cc86055d7b6aaf5faf89b924825", + "params": {"hrp": "bc"} + }, + { + "public": + "036f2255a9023e91d50682cf03470755943462d33b8e802db8742d411bad15b302", + "address": "tb1pppja0y96g4j9x8h2sner77xyyr4rurfe2gqtnkwlej6tfsy5g3qs7kcw5j", + "decode": + "0865d790ba4564531eea84f23f78c420ea3e0d395200b9d9dfccb4b4c0944441", + "params": {"hrp": "tb"} + }, + { + "public": + "0251550d1f46d76e36017fee35851c6a0c16d3e8a30e7b685defa461bad73163c9", + "address": "bc1p3u08zuheux079q8kx2e946a8haks3m9rtde7xvc80twf0y5fz3uslv7ujf", + "decode": + "8f1e7172f9e19fe280f632b25aeba7bf6d08eca35b73e333077adc9792891479", + "params": {"hrp": "bc"} + }, + { + "public": + "02cb2128050b6cd1b6bd84f62c2767664885fc2f20a89f8211ef36950bbecb7497", + "address": "bc1pvnp8nyapgq6mg9hyrmk20kurucwz7zh5gappv3x6h90rq8rvwpkqkgcf6f", + "decode": + "64c27993a14035b416e41eeca7db83e61c2f0af447421644dab95e301c6c706c", + "params": {"hrp": "bc"} + }, + { + "public": + "03bfdada3de0c4532f6480e4a2abb3befef9379a55d9c4ca8d0e0b599e53950e9a", + "address": "bc1pt952kv3u8fl2vg52d2q7s9jkxw97l5hey04fps6sjjrev8f7krus47wkch", + "decode": + "5968ab323c3a7ea6228a6a81e81656338befd2f923ea90c3509487961d3eb0f9", + "params": {"hrp": "bc"} + }, + { + "public": + "036da11ee5134e64492d7cca25734482b69d6604ef03aa6776554d279fd01369a3", + "address": "tb1pr0q52n8mtv5xshm6qk0y4ujendvdfgqt9s4nevvxqmfyvut9kw3spu9z0r", + "decode": + "1bc1454cfb5b28685f7a059e4af2599b58d4a00b2c2b3cb18606d2467165b3a3", + "params": {"hrp": "tb"} + }, + { + "public": + "03c74a8da8331063c403ffbdb01edee1c4cc60c7726c6f36cd32bb1243749369f3", + "address": "bc1p3vqvnq5dvklwxa6ng0vuhe0yvctg2529t6eqcca76u66x93ft6xsqz5740", + "decode": + "8b00c9828d65bee3775343d9cbe5e466168551455eb20c63bed735a316295e8d", + "params": {"hrp": "bc"} + }, + { + "public": + "0218668de04643f8e91b4fae19d1c5dd445cba6be6762a1ef2368fd6a866b77d37", + "address": "bc1p35e2un233pqdm47vr27dwmplgqa048e7t9dwvnvpw3yktgr4xh2stm85k8", + "decode": + "8d32ae4d518840ddd7cc1abcd76c3f403afa9f3e595ae64d81744965a07535d5", + "params": {"hrp": "bc"} + }, + { + "public": + "03c6d93112b6d6f07a2efac0c7e00dd3c2468faf22ca6bd8e478bfa0a851c1213c", + "address": "bc1pfdtdkw34xm45xacdauzce6w9vlj0wa2a72plrnz6rv9xjxvrx6esdfc8t7", + "decode": + "4b56db3a3536eb43770def058ce9c567e4f7755df283f1cc5a1b0a69198336b3", + "params": {"hrp": "bc"} + } +]; diff --git a/test/address/p2wpkh/p2wpkh_test.dart b/test/address/p2wpkh/p2wpkh_test.dart new file mode 100644 index 0000000..b24bad4 --- /dev/null +++ b/test/address/p2wpkh/p2wpkh_test.dart @@ -0,0 +1,20 @@ +import 'package:blockchain_utils/bip/address/p2wpkh_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("p2wpkh address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = P2WPKHAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = P2WPKHAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/p2wpkh/test_vector.dart b/test/address/p2wpkh/test_vector.dart new file mode 100644 index 0000000..178747d --- /dev/null +++ b/test/address/p2wpkh/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "028efec1adeed24fb240c439c48f11c9018b75132f476401548d39a82ea6cd8ed0", + "address": "bc1qkh36n40ywuyaeqxgc9ax2xayyjjvsyxwpx4g5q", + "decode": "b5e3a9d5e47709dc80c8c17a651ba424a4c810ce", + "params": {"hrp": "bc"} + }, + { + "public": + "0249554d1011db5c812eb0cfe299034f8130103d87eedc4b4733baae391cc5fab8", + "address": "bc1qef20f8sqx7pva87kwzywfh3pysfufwtfcex4ef", + "decode": "ca54f49e003782ce9fd67088e4de212413c4b969", + "params": {"hrp": "bc"} + }, + { + "public": + "03bd504f903a999015e1721281e983141b02af6e86675b94020d790cbea7a95d6d", + "address": "bc1qu9dj3xyq5yp4snfpgn2qj43we4zxl8cyrn4kun", + "decode": "e15b289880a103584d2144d409562ecd446f9f04", + "params": {"hrp": "bc"} + }, + { + "public": + "027b57aded3e1c7c218cd5680ac720d6e46e202216d2343e1a223d8e25cb10d356", + "address": "bc1qkzu9fwgsgh7zv4r4s034gcugp38h9dgktv68s7", + "decode": "b0b854b91045fc26547583e35463880c4f72b516", + "params": {"hrp": "bc"} + }, + { + "public": + "026759a817d8674f69b8c50c74bf225a7c4ae7f3e14afa40a9f241c2b8c2a04b52", + "address": "ltc1qx88q7zjd74lxwgkjmmwlqv5pd3vujuehexfttt", + "decode": "31ce0f0a4df57e6722d2deddf032816c59c97337", + "params": {"hrp": "ltc"} + }, + { + "public": + "023d1f7513a8383d521301d12d77d398fb862b304fe970dcb44d7d52d24ca78015", + "address": "bc1q0asdwxud4qcxqwmfa76maswczsp79suydg2heq", + "decode": "7f60d71b8da830603b69efb5bec1d81403e2c384", + "params": {"hrp": "bc"} + }, + { + "public": + "03a33cbfd1b90cfb4f2a45b17c2fdcd1db0d7dd22de861f84c34625e5bcfdb1088", + "address": "ltc1qudhthew8h03vzc7x99m3qg0z8wjq2f759hp4ej", + "decode": "e36ebbe5c7bbe2c163c629771021e23ba40527d4", + "params": {"hrp": "ltc"} + }, + { + "public": + "02f7e6ab3c731cd65a13349670db2cd7a98958a33403116ffc176b00c989bca78e", + "address": "bc1qzzl2swkm9xd7x02aga02xzuxd7slu93cw5czg7", + "decode": "10bea83adb299be33d5d475ea30b866fa1fe1638", + "params": {"hrp": "bc"} + }, + { + "public": + "020228d8cadc5b64ef29b974a9a4213d715e9621046e0956b09e5bc4bfd332e81e", + "address": "ltc1qyytdmyapc4ffsk0nj3q4zmnd5w6cleevwptw88", + "decode": "2116dd93a1c5529859f39441516e6da3b58fe72c", + "params": {"hrp": "ltc"} + }, + { + "public": + "0263d7015232e5a3b44de9c875262acd6f7de8509ec358937b55b7c3a0422afb24", + "address": "ltc1q5cdcer2sktddd9v4uvsrqlkxeflmxh9840ttz6", + "decode": "a61b8c8d50b2dad69595e320307ec6ca7fb35ca7", + "params": {"hrp": "ltc"} + }, + { + "public": + "03ef91c1165161d8c172e4758245db02d1907a9debe89688cb575c9efa434de9e7", + "address": "tb1q6yzgr3x23fswfcdldlemhfmx8kv5hyfy4hfl78", + "decode": "d10481c4ca8a60e4e1bf6ff3bba7663d994b9124", + "params": {"hrp": "tb"} + }, + { + "public": + "02c196e34c556fcbaced7e8754bd04e964381f291f3b5b43b9123833f91b10dffd", + "address": "tltc1q0fe74v45kj7uwckn97vt9srn2356p085j486rq", + "decode": "7a73eab2b4b4bdc762d32f98b2c0735469a0bcf4", + "params": {"hrp": "tltc"} + }, + { + "public": + "0203018254b4c0282371323bf774d8e0c8940f51275d652bd7c44e68e593e2299d", + "address": "tltc1qwgwzjpxpdedqcsa6qv4apjmxwteat35n2wccj2", + "decode": "721c2904c16e5a0c43ba032bd0cb6672f3d5c693", + "params": {"hrp": "tltc"} + }, + { + "public": + "037863b917404e7012ed9f944dbcd087ce52a17ffc1f9aed7b708a2ba3ce06949b", + "address": "tb1q9k3e9ffauahajlft5pc0z0h2dm7eq8jzz59qs8", + "decode": "2da392a53de76fd97d2ba070f13eea6efd901e42", + "params": {"hrp": "tb"} + }, + { + "public": + "024c09eb9fc65bdd5bdd528621a670dbf6d2f4ca88b22c5ffbaa10c0a1e94a5745", + "address": "bc1q3zq2w6gg38d66jm9e7syg79sxwlq9r4tt0qx3c", + "decode": "8880a7690889dbad4b65cfa04478b033be028eab", + "params": {"hrp": "bc"} + }, + { + "public": + "029d910fa3e98cc721a1103e16f636ce2039dd66e23e1346c331a2ba3970af7cff", + "address": "tb1q8ld3y37dtkt4j7zdcnsfc69mhm3zgffnz66ly7", + "decode": "3fdb1247cd5d9759784dc4e09c68bbbee2242533", + "params": {"hrp": "tb"} + }, + { + "public": + "03ef804de2ebadf94822f038f033a6c57c09f580227b7d241eac55205af56dedac", + "address": "ltc1qj7t3v6z2gk7tc3mfm3fepyjtf5408gwuf65zsx", + "decode": "979716684a45bcbc4769dc5390924b4d2af3a1dc", + "params": {"hrp": "ltc"} + }, + { + "public": + "020095a4bcb039e1500d1f3674d2a6d6bdd7b215d904ff76901c9ad3e508a7de89", + "address": "bc1q54aeaw0vtaleca2quw28hh3yh4g0taml5ejvp4", + "decode": "a57b9eb9ec5f7f9c7540e3947bde24bd50f5f77f", + "params": {"hrp": "bc"} + }, + { + "public": + "0336fa578b42af27b3b2e6ad818f84d91a4e5e70d360c0f483448d8cf1aa5be518", + "address": "ltc1qvcslk7yqy2ehr3zftt4plt883kzy7vjezhef4h", + "decode": "6621fb788022b371c4495aea1face78d844f3259", + "params": {"hrp": "ltc"} + }, + { + "public": + "03ba59b8888d6eeb91483f15e5930204cd6101c1dc4b7c17e5d0e0444ee96559d8", + "address": "tb1qlhaexk6w67zn4h6h04yydaxgzcgpuwdg378sqe", + "decode": "fdfb935b4ed7853adf577d4846f4c816101e39a8", + "params": {"hrp": "tb"} + }, + { + "public": + "029cd1d17c9dea6cbac2e1e0ebf13e1e6b885332e395e37de274ab38414764be9e", + "address": "ltc1qwyeugkrs82eslc4m79436lclzucum9ypf8z8s7", + "decode": "7133c458703ab30fe2bbf16b1d7f1f1731cd9481", + "params": {"hrp": "ltc"} + }, + { + "public": + "02ff7f29be70cc3cd0f8a7946a41a296ffaa8763bb799d0413e5a612e9cb0825e3", + "address": "bc1qhkxh4rzmv43a55c2gw4ktrpzfy4tl7hencjhhl", + "decode": "bd8d7a8c5b6563da530a43ab658c22492abffaf9", + "params": {"hrp": "bc"} + }, + { + "public": + "0256a7c62310d921a3c467d8bfbc18b1338ed4fa70efbeb2158372f39a3cab9c75", + "address": "bc1qkw3yqmysdt6prsrpzz2sdl0kn9mhcte5rt6lle", + "decode": "b3a2406c906af411c061109506fdf699777c2f34", + "params": {"hrp": "bc"} + }, + { + "public": + "036413367ddf0858f7a4d7f22059575d50453a8a039de7e95267f38fb0c987d6a5", + "address": "bc1qewwp2f63u3p3mt5n9avg44hs7raclhv4g943qw", + "decode": "cb9c152751e4431dae932f588ad6f0f0fb8fdd95", + "params": {"hrp": "bc"} + }, + { + "public": + "02e93a572d5738cf73072582d2e0c810a843703bfec3a70b63005bdec953d26801", + "address": "tb1qhympd6w4wehggamalpz029allsnu8c58cwn66y", + "decode": "b93616e9d5766e84777df844f517bffc27c3e287", + "params": {"hrp": "tb"} + }, + { + "public": + "02fc2f282a18675a2f229c7e9b4e2ac04949980f759df68759d5b5a6dbda49fa85", + "address": "tltc1quux6h8ek7lp0tndnp6gwfe4cy6zm7z34ltxlmd", + "decode": "e70dab9f36f7c2f5cdb30e90e4e6b82685bf0a35", + "params": {"hrp": "tltc"} + }, + { + "public": + "037e42ede83d3632d09049261868ae2042c89d138a2454aec5925e0e95938b56eb", + "address": "tltc1qt5m68ax3zscw9yyluu3a2ez7c84l2wxg72mp90", + "decode": "5d37a3f4d11430e2909fe723d5645ec1ebf538c8", + "params": {"hrp": "tltc"} + }, + { + "public": + "0380ff1292e8d9a171f66adc27172cfb22f1dbf8ce61a6cf9ae0f1d8c0108b6bd6", + "address": "bc1q4ccajukr2ymmem0dxccsee4nv6lzj2ehnckqgm", + "decode": "ae31d972c35137bceded36310ce6b366be292b37", + "params": {"hrp": "bc"} + }, + { + "public": + "02f07114bb0d3a4261cd306ea447d4de90e4d977c1b5d8f1429a25632c6db31870", + "address": "bc1qu82lzq6kmss52q5vkkcnaspcp8gjgm0rdtz0ep", + "decode": "e1d5f10356dc2145028cb5b13ec03809d1246de3", + "params": {"hrp": "bc"} + }, + { + "public": + "03504f8a3ef299e5e06d8cefb8ff79d80349013076ceb8c8f61f742ffc5bb26b87", + "address": "tb1qhj4nxhp2t66t3gacsnv9uz6evy53eec9u9fvqd", + "decode": "bcab335c2a5eb4b8a3b884d85e0b5961291ce705", + "params": {"hrp": "tb"} + }, + { + "public": + "0290568953609d8cd7e42722cdfce12ad1ab5fd5c53107ae835e8d8d6ca9d11c38", + "address": "ltc1q0ymzzw0kv56cyudc9hl9plc00w6skm55rmhqur", + "decode": "79362139f665358271b82dfe50ff0f7bb50b6e94", + "params": {"hrp": "ltc"} + }, + { + "public": + "03e7735e7e610c0781f3c2b2d936d33fda446f4938bb4832ed71ea1f657d1490c7", + "address": "tltc1qhrkmhs0nsr232gn9kmpn9g2rprlrs4p6x52uxy", + "decode": "b8edbbc1f380d5152265b6c332a14308fe38543a", + "params": {"hrp": "tltc"} + }, + { + "public": + "02457e3144f8c8c7dba8cd8a65119c74deec0e3002869130dc107bfa9be767343b", + "address": "tb1qk4n0lputv7r8c0c8d848ny2ahhpw20ypuwhcgt", + "decode": "b566ff878b67867c3f0769ea79915dbdc2e53c81", + "params": {"hrp": "tb"} + }, + { + "public": + "0305e4bfa64725e4ee25f1ca0c9326ecb7ff34e9ee1ff95b884ce41e9a73a4cc35", + "address": "bc1qp3khm8wcqrx58yy33yhz6mk5jqlxn8ljfkwuf0", + "decode": "0c6d7d9dd800cd439091892e2d6ed4903e699ff2", + "params": {"hrp": "bc"} + }, + { + "public": + "0351db15bc19b0bf05b7f2b829a50ad54d71474b6372d99cddde55b21491ad92b6", + "address": "tb1q53raf83njz0aspsdtw344m6k080g2n02veng58", + "decode": "a447d49e33909fd8060d5ba35aef5679de854dea", + "params": {"hrp": "tb"} + }, + { + "public": + "0339c5b6a90f0009167835908074b85a07113c9ad792fda8e3cdf552652ef12a0b", + "address": "bc1qvzu45n9pzkjvntd0wu6vqzlyxpczqxenrm38wy", + "decode": "60b95a4ca115a4c9adaf7734c00be43070201b33", + "params": {"hrp": "bc"} + }, + { + "public": + "0235d0c18f04e3f91fcfbbf97cb7473b37348a56956891257b1bc6a69a34cd3906", + "address": "tb1qumn22lmedl5wk4j3lqe0emj6rtedpeequn7wg7", + "decode": "e6e6a57f796fe8eb5651f832fcee5a1af2d0e720", + "params": {"hrp": "tb"} + }, + { + "public": + "02a6be130e9970a279a4a4b33253fe6a6d38fc5e25d6d4a0b0ab1855539f3fce31", + "address": "ltc1qn5qcfta92xx5yu3l4ggnqvh7mmfu7sqgvv4v39", + "decode": "9d0184afa5518d42723faa113032feded3cf4008", + "params": {"hrp": "ltc"} + }, + { + "public": + "037199cf697320bd6fe17a9563a972873ae7fee1153647d8cf00fbcef1f616d271", + "address": "tltc1qv6k55xkj0p4hhjuf3yzkarlrc4dl3v8vwvpete", + "decode": "66ad4a1ad2786b7bcb8989056e8fe3c55bf8b0ec", + "params": {"hrp": "tltc"} + }, + { + "public": + "03546c5ba43d5ca0064be0ac7c3f39398a006c2e19d9168028c9866a780d67fe95", + "address": "tb1qdat80n8gv20uas8s9fsf228n9q8k8e072su9na", + "decode": "6f5677cce8629fcec0f02a609528f3280f63e5fe", + "params": {"hrp": "tb"} + }, + { + "public": + "032acb8ff0ce4026f79bf1477f618606f449505a16ae9cf97ea14a92384c82e624", + "address": "ltc1q44yws9cu993wk542ddq3uy2gka5emdmzy2tjs9", + "decode": "ad48e8171c2962eb52aa6b411e1148b7699db762", + "params": {"hrp": "ltc"} + }, + { + "public": + "034563d9e27601c38fa6cf66d5a1bdd00657099ec93340e0af229e4ddadac3618c", + "address": "bc1qjqtkgkssqeh3vszduyt6sp34rv3jsulx9gyejp", + "decode": "9017645a10066f16404de117a806351b232873e6", + "params": {"hrp": "bc"} + }, + { + "public": + "0276c376839b910f5faa7c8ff2733673f2135ffb45ce0e3ad04ea09c19cb2ed941", + "address": "bc1qfzsamdd0e22k47wxxgw30zgstph542fse8andf", + "decode": "48a1ddb5afca956af9c6321d178910586f4aa930", + "params": {"hrp": "bc"} + }, + { + "public": + "0257d7a54660413ee1340b4647abca42a47c3242b18f6b3d7e3a88a11a25f317bd", + "address": "ltc1qrey2uash2maht77ducs5unu779sxl2jzjxc00e", + "decode": "1e48ae761756fb75fbcde6214e4f9ef1606faa42", + "params": {"hrp": "ltc"} + }, + { + "public": + "021d3797c3c592772c9709ed6c7b1b291a6eb7873926183c4a414c6e980e101589", + "address": "ltc1qjpy9lrcws9gld563zw9qcac2e7qd6l59qpzpts", + "decode": "90485f8f0e8151f6d351138a0c770acf80dd7e85", + "params": {"hrp": "ltc"} + }, + { + "public": + "03164135caf6e3da39a983a75db9b2faebede9cada1da22f753920e3fc54106a30", + "address": "tb1qngyt450xgmywl4qz0867tu9zur5p8uwtrp5mly", + "decode": "9a08bad1e646c8efd40279f5e5f0a2e0e813f1cb", + "params": {"hrp": "tb"} + }, + { + "public": + "0332f46f6116935dcca1d7301d78a08a9b987bf80afd4c90a43c7bb668d6c89b8a", + "address": "ltc1qjjlvkwzeghe3kl0etxqp9mz68jter9un5d9zgr", + "decode": "94becb385945f31b7df9598012ec5a3c97919793", + "params": {"hrp": "ltc"} + }, + { + "public": + "020466b4cdd799b8a55a0e3947036e82b21f45d462f8703466bdf462e940785032", + "address": "bc1q7y9tczuljlurjzjytd60ss4t6swt30h4c0jn29", + "decode": "f10abc0b9f97f8390a445b74f842abd41cb8bef5", + "params": {"hrp": "bc"} + }, + { + "public": + "03489154cba41b15fa942526f080b3cf4525272125abadd483504dc4f80dccdbfb", + "address": "ltc1qyln79za4p20x8eapsle2wk9lqu5uzcs452v8w2", + "decode": "27e7e28bb50a9e63e7a187f2a758bf0729c16215", + "params": {"hrp": "ltc"} + }, + { + "public": + "035ee63852ba6fd18b542e7c2257c5a7b40be1c435128564b0cdf0f8557a3fa24e", + "address": "bc1q9u7n4qh0zgpx5da2ecekx3wpx7zwpzza8mn8kz", + "decode": "2f3d3a82ef12026a37aace336345c13784e0885d", + "params": {"hrp": "bc"} + } +]; diff --git a/test/address/sol/sol_test.dart b/test/address/sol/sol_test.dart new file mode 100644 index 0000000..b12d4eb --- /dev/null +++ b/test/address/sol/sol_test.dart @@ -0,0 +1,20 @@ +import 'package:blockchain_utils/bip/address/sol_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("solana address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = SolAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = SolAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/sol/test_vector.dart b/test/address/sol/test_vector.dart new file mode 100644 index 0000000..035aa76 --- /dev/null +++ b/test/address/sol/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "f98bc0832e705e2ba354fb4df4e521e622480fa08663280d3992e57df21001db", + "address": "Ho87cuS3aSRgUMCeMrV7uNCCWx6Fj2ytnufYQ1W7KCLr", + "decode": + "f98bc0832e705e2ba354fb4df4e521e622480fa08663280d3992e57df21001db", + "params": {} + }, + { + "public": + "a9ed356dbef8a0b4375b60269a60c257effd3131f2b96cf389761fce35f79a23", + "address": "CSKgzVRhq6PKFUtiEFtWdTYhQTd12ohN3fc6yjxYnwHL", + "decode": + "a9ed356dbef8a0b4375b60269a60c257effd3131f2b96cf389761fce35f79a23", + "params": {} + }, + { + "public": + "310558c12e34393a685337e38bed17240ea106415d2965ae9128ac4854ab160a", + "address": "4JMhwSEujEZEfMp4X8ZrqYcDNaYy7UFaCXvoSzWQJLQq", + "decode": + "310558c12e34393a685337e38bed17240ea106415d2965ae9128ac4854ab160a", + "params": {} + }, + { + "public": + "7a52687d6600b8ce6fe392886d0931b51d9624a07da915dbb6839e4083943bfc", + "address": "9EVd38qiDV6UAmGjkSrdYJRiZNQt2WKVETqLRpGuuHhm", + "decode": + "7a52687d6600b8ce6fe392886d0931b51d9624a07da915dbb6839e4083943bfc", + "params": {} + }, + { + "public": + "442104865a3be3fb13d4da041b1aceb730b7e78e9e7733232367d1601b0ac9e3", + "address": "5awvcqhNEe6YA9keaifwmqDiGujJbHnNj9owfMs6jCUS", + "decode": + "442104865a3be3fb13d4da041b1aceb730b7e78e9e7733232367d1601b0ac9e3", + "params": {} + }, + { + "public": + "4f539d31b1dffd89364a4a6a6a3384a4d361e2566bf34cd4291f718eac8107e9", + "address": "6LfA6VG1F2g17FUASkchdvEH9ct9HLbo524Ra7giAGoA", + "decode": + "4f539d31b1dffd89364a4a6a6a3384a4d361e2566bf34cd4291f718eac8107e9", + "params": {} + }, + { + "public": + "687dadaa4625e062e93d8a303cfebc84273b3d5ca7bca5d15bc2218a5bf0c1f0", + "address": "82tYy7XPrAetkZbHJKoB1XsqxZ2xpjF1iizRF71GsxgX", + "decode": + "687dadaa4625e062e93d8a303cfebc84273b3d5ca7bca5d15bc2218a5bf0c1f0", + "params": {} + }, + { + "public": + "2733d65c4347962c76e3c235c172ea3536de6adf05a4a2e611106eb8a0104a29", + "address": "3e2kEc711izrXJm7nKbVW5gA9MaFZcdgL49PRejKBwnp", + "decode": + "2733d65c4347962c76e3c235c172ea3536de6adf05a4a2e611106eb8a0104a29", + "params": {} + }, + { + "public": + "47b57fc55102729aa08aa9cae78cfc82c834a2be5005d8b967a7becc66952655", + "address": "5pvTzAc9XRhdzaHemPBz6p8pmTdqyatKjT4Z9ao8Z5Ux", + "decode": + "47b57fc55102729aa08aa9cae78cfc82c834a2be5005d8b967a7becc66952655", + "params": {} + }, + { + "public": + "52c6da6b720fd2cdeb071ef6005779356828a2e8560a8252d5ed4ae7f78a69a9", + "address": "6a8JHTfD2EyJqYEjYFzH8oeLqKV9frtMMdwktm4e9Mua", + "decode": + "52c6da6b720fd2cdeb071ef6005779356828a2e8560a8252d5ed4ae7f78a69a9", + "params": {} + }, + { + "public": + "e9b7609bf8f04f01df7d973201e023f43f8ee5bd372aad9be8c21492d2213e7d", + "address": "GjLB4XgBHsL9YCdKcEsscGyPiwK6QvRmG3wzuQ4ZuU9a", + "decode": + "e9b7609bf8f04f01df7d973201e023f43f8ee5bd372aad9be8c21492d2213e7d", + "params": {} + }, + { + "public": + "9108e28b6e66257d22cc0db0afece159de97ee5e70af8be1c42ed616b822ca3a", + "address": "Am9yVk4z2VGvts4a64rYThAraKsJDBqmEEenQA3g7zDX", + "decode": + "9108e28b6e66257d22cc0db0afece159de97ee5e70af8be1c42ed616b822ca3a", + "params": {} + }, + { + "public": + "2c0ceafba69fa0404d963a497226846158c8fc9d1f7ae8c17622d4fbfe73c227", + "address": "3xxN5LsKFcwUY9wfNGTR29GWDWejAyQ4D7V963RhA39g", + "decode": + "2c0ceafba69fa0404d963a497226846158c8fc9d1f7ae8c17622d4fbfe73c227", + "params": {} + }, + { + "public": + "8b272d1496e0f543166f4883c7050e508effd7676e99821c4a67029c1c959d4a", + "address": "ANCKRAAygamGgfSCeh26duBMGYhP17Wzuii61HohgPuK", + "decode": + "8b272d1496e0f543166f4883c7050e508effd7676e99821c4a67029c1c959d4a", + "params": {} + }, + { + "public": + "68bf531dacac930ec02fbdff2546eda27de03429135cd8a4dc6a3d2686234e97", + "address": "83tcKw9ioAvbRFziqwZYEGxSipXniMNiXuxs8biuo1aE", + "decode": + "68bf531dacac930ec02fbdff2546eda27de03429135cd8a4dc6a3d2686234e97", + "params": {} + }, + { + "public": + "ee4ac61666ca36b5813dabdb8ec81ff30cf916fe239799178ade36fb9cacea6f", + "address": "H3CAREdshTJ35HNroBFDj96HXoNNxrBn62WVuLrvSkyU", + "decode": + "ee4ac61666ca36b5813dabdb8ec81ff30cf916fe239799178ade36fb9cacea6f", + "params": {} + }, + { + "public": + "d6fe5f2f9c4ea9b5954b75597a4af887820638d16b74edd7a56a4a5bc8cb9e5a", + "address": "FUFDURVPNToo7vduxVB9UEcH7uhSt6eAkH2t3wMbgzzu", + "decode": + "d6fe5f2f9c4ea9b5954b75597a4af887820638d16b74edd7a56a4a5bc8cb9e5a", + "params": {} + }, + { + "public": + "ceb65b33c5d56704fbd8b18e8b5bac11f0c5eb9c1e4d964e9f829345c37ed5c0", + "address": "EuvGEBQfCJD7fmvGaa3xFSqCgP5brYgie1iEnrYfisu9", + "decode": + "ceb65b33c5d56704fbd8b18e8b5bac11f0c5eb9c1e4d964e9f829345c37ed5c0", + "params": {} + }, + { + "public": + "f532e46cac1777811611417b6e56027d0f52e97cde1342b873fe69cc1e6dbdeb", + "address": "HW9tvwWTwQJYeWpDxKDvo5BdBuFbSnHGQbnLML6ZSgH8", + "decode": + "f532e46cac1777811611417b6e56027d0f52e97cde1342b873fe69cc1e6dbdeb", + "params": {} + }, + { + "public": + "b70af8d35a0ffec7e57382bb5491bd160b731619832eb8ddc5e3be88821ef69b", + "address": "DKXK7nJRoczxqnsoBEf7N5nikNWjayVDCNiNGjovoYTU", + "decode": + "b70af8d35a0ffec7e57382bb5491bd160b731619832eb8ddc5e3be88821ef69b", + "params": {} + }, + { + "public": + "1c29ad55384cc9c62a348b900a98579da31010e5b96933025c73cbecdeb97bfa", + "address": "2twGwxun5FWqgdtoMTMRj7spSxyocmow5s6iySFn8Gky", + "decode": + "1c29ad55384cc9c62a348b900a98579da31010e5b96933025c73cbecdeb97bfa", + "params": {} + }, + { + "public": + "1e2f8893166e7988ba440db203f7a1608cf83fa4d74887dcde42103ed36e35c0", + "address": "32qGebUyatMSntkK67zww7cRVkp6dT7aoevPC1a8PV91", + "decode": + "1e2f8893166e7988ba440db203f7a1608cf83fa4d74887dcde42103ed36e35c0", + "params": {} + }, + { + "public": + "679139ef2c139f0a08c4da8d0cb359ced06e935f4990183ee3d42708194c280f", + "address": "7yHS3Qgh7pQJoVPFnPWCqM4i4V7ERF2JxKdJTzHj6rLv", + "decode": + "679139ef2c139f0a08c4da8d0cb359ced06e935f4990183ee3d42708194c280f", + "params": {} + }, + { + "public": + "9f1b602232f12e2fd8c36ea8e9954a710b2759e6398743e2c110773fae5bbaa7", + "address": "Bi632ipA1VzcU2Ev9hLaoR8WkmmsRSmapiVJuQyFbwEn", + "decode": + "9f1b602232f12e2fd8c36ea8e9954a710b2759e6398743e2c110773fae5bbaa7", + "params": {} + }, + { + "public": + "ad78e328e24098370e16fd53eb5d70da922f7ac1c3c651b511090a5f5ba94fd0", + "address": "CgASpHexjuYuvaSYVrNuEc6KZj7zFUMncCNoHnJyMVLK", + "decode": + "ad78e328e24098370e16fd53eb5d70da922f7ac1c3c651b511090a5f5ba94fd0", + "params": {} + }, + { + "public": + "dac7b71bc101e9dcb8edd4f28639ae45688576c5be4f97f379ecb5b91d1cec77", + "address": "Fj2WRadcfM1QeTFLBMfMZy3EnybyKc4TBzFhYu9TZx86", + "decode": + "dac7b71bc101e9dcb8edd4f28639ae45688576c5be4f97f379ecb5b91d1cec77", + "params": {} + }, + { + "public": + "86213fbbfb7fd83fd8389566858a22cda7508f1c93bb6b4234b8afa7fcfa3b80", + "address": "A2b39e2mC2PRBtdv4RVDqKDnAqfjoM7ogKnt53J4P93m", + "decode": + "86213fbbfb7fd83fd8389566858a22cda7508f1c93bb6b4234b8afa7fcfa3b80", + "params": {} + }, + { + "public": + "c207f9a6c3253ee01b7bcbc83e7ef762de7bd178f6e89f2806ac83398233a457", + "address": "E4R9WQojaALo26JDK8vZ8i2FmaHTf3PBBJ4EoDm2ekTG", + "decode": + "c207f9a6c3253ee01b7bcbc83e7ef762de7bd178f6e89f2806ac83398233a457", + "params": {} + }, + { + "public": + "ab86e7d6b3cec93ad7a63d6f996a07f67ceac1c23796c11a02c4c3107276152b", + "address": "CYa2bcgLbM7p7otjrgNabR8kXAXZW3zBgg1sRUWauNKL", + "decode": + "ab86e7d6b3cec93ad7a63d6f996a07f67ceac1c23796c11a02c4c3107276152b", + "params": {} + }, + { + "public": + "5e0460b9523995338799b1037b184ed86387751cb78ab6cc14077c1fe40bac3e", + "address": "7L1CLCbVTJsb6JPJtuL2quRTNi7nvHvxEqVs81A3hMXb", + "decode": + "5e0460b9523995338799b1037b184ed86387751cb78ab6cc14077c1fe40bac3e", + "params": {} + }, + { + "public": + "5fd79163fca72899ff4c3be71bc6acc2720e7bee06a1790f5ee7f8d5da0db5eb", + "address": "7T8P5YAKuvA98qooRa578zRbz8pMwiHRbBaUcQjLVwFQ", + "decode": + "5fd79163fca72899ff4c3be71bc6acc2720e7bee06a1790f5ee7f8d5da0db5eb", + "params": {} + }, + { + "public": + "49a8fb343936f83a9edbab557c8bcd1eaff8bf4276bf3e6f0bda8af57da809fa", + "address": "5xYDArHGPPoW7CBqpqrheAMUX6eKX9ALtntdJxjLDXhb", + "decode": + "49a8fb343936f83a9edbab557c8bcd1eaff8bf4276bf3e6f0bda8af57da809fa", + "params": {} + }, + { + "public": + "8a87027778a62f9e45f2ab9f8ebbe7439b6125aee8ceca0865529fb07a50ae8f", + "address": "AKkfbjUBZefu4wcpe6Ge6nMWj2xGoCRxB1nwYDMy436n", + "decode": + "8a87027778a62f9e45f2ab9f8ebbe7439b6125aee8ceca0865529fb07a50ae8f", + "params": {} + }, + { + "public": + "f0dc8df36a6e2bd8c2bdac99b7179b181dcc60cd858851eb9cd228d26dbb0050", + "address": "HDDuc51oBE29uqjXeveEYTsro6Bv63pzENBTuYd99Usq", + "decode": + "f0dc8df36a6e2bd8c2bdac99b7179b181dcc60cd858851eb9cd228d26dbb0050", + "params": {} + }, + { + "public": + "c802c2fb1487832b90b31a3281bc723160e3e5f30f6c375dd1cc553c7929164b", + "address": "ETkyxKwmgvBNUbyWMzKbaKSdonGqX6iU1G9sUmRLaL8r", + "decode": + "c802c2fb1487832b90b31a3281bc723160e3e5f30f6c375dd1cc553c7929164b", + "params": {} + }, + { + "public": + "7e6899f0d17a327229349f305c1e7895004c56086026954ed3f52c6a3b1d11d8", + "address": "9WSt2sFoFPApuhZJ8JtvEDYqz472hm8vfRNPEoxNhyJo", + "decode": + "7e6899f0d17a327229349f305c1e7895004c56086026954ed3f52c6a3b1d11d8", + "params": {} + }, + { + "public": + "e829fa43a9bc9cf6d79696ee81891224cfd5ab9e2fefbe9d7bf667b0bfd69010", + "address": "GdGiF4vkDPEoXwKrU6h74ACBc8VRWdXg4dRbFtPScHwD", + "decode": + "e829fa43a9bc9cf6d79696ee81891224cfd5ab9e2fefbe9d7bf667b0bfd69010", + "params": {} + }, + { + "public": + "43c398d9bca176d141c882ffb15923e238ab038061a8813c513903f32e9eb457", + "address": "5ZXJZbRsoFskJcgXyuKUHqcsRu9DXmCPAUSaLTfT8PkA", + "decode": + "43c398d9bca176d141c882ffb15923e238ab038061a8813c513903f32e9eb457", + "params": {} + }, + { + "public": + "ec320564f8d74bb3b21326bbdc2963070f170a996b95ad61c5e50e6393ea010c", + "address": "Gu1TRWUKa9yUJBqRL3nxTGA1r5y2ooZAAw5PFRT35CLs", + "decode": + "ec320564f8d74bb3b21326bbdc2963070f170a996b95ad61c5e50e6393ea010c", + "params": {} + }, + { + "public": + "dddf0f1a46deaf67f3dbd0631c0b6ba2c57c3add229b91664f938a020ab54fd0", + "address": "Fw6Nnti9GUzj8XSppxVWpdF9GAdFAj21HkktrLy85Qw9", + "decode": + "dddf0f1a46deaf67f3dbd0631c0b6ba2c57c3add229b91664f938a020ab54fd0", + "params": {} + }, + { + "public": + "7091a8c523a2b5a5c0ddc7bc2f1eb04a6a11ae6261a3e0f4aa3e4d18868295ac", + "address": "8aRV4xdVfKqJCG4uMXFaJC9W5jVST83sLrujuXkVsfsH", + "decode": + "7091a8c523a2b5a5c0ddc7bc2f1eb04a6a11ae6261a3e0f4aa3e4d18868295ac", + "params": {} + }, + { + "public": + "1161d520bb6d8a316c7685b308b103e9e801480a2c4227d884a6478e31637ec2", + "address": "2ArTMmGV5ZorDoyYRKkjziBHq4vpngFD8yi9PjzZkuMK", + "decode": + "1161d520bb6d8a316c7685b308b103e9e801480a2c4227d884a6478e31637ec2", + "params": {} + }, + { + "public": + "a0c8563fcb4d68298a71d13744d40787f664ca0d656963e6b992a365a099b312", + "address": "BpdQpLATfeSgQfATHF5KTHRNXr27F34NeyU77mxo9aJM", + "decode": + "a0c8563fcb4d68298a71d13744d40787f664ca0d656963e6b992a365a099b312", + "params": {} + }, + { + "public": + "36dab4a36bdeab350706b5a7a73cb6eef5959dce205e1fd5dbacb9b23544a080", + "address": "4h8SXHUvxSWVu3wDtaE5cD267myLWDt1HZwApegQGteB", + "decode": + "36dab4a36bdeab350706b5a7a73cb6eef5959dce205e1fd5dbacb9b23544a080", + "params": {} + }, + { + "public": + "30a423af39e252a3e37a648aab188d658b69684582e5992df2b2561254571443", + "address": "4GsjeDzg25waHcXiMtQELkh7VesmqM4foRaxvaQp6RES", + "decode": + "30a423af39e252a3e37a648aab188d658b69684582e5992df2b2561254571443", + "params": {} + }, + { + "public": + "5b571fdffe009537d56a6a4bf2441b14919a3dfb6eef3465deb47dbcb91405d8", + "address": "79Z9va9odQ9fWSnEqVq4kgfADFmnfRt8mbwzML9WmMCT", + "decode": + "5b571fdffe009537d56a6a4bf2441b14919a3dfb6eef3465deb47dbcb91405d8", + "params": {} + }, + { + "public": + "3fcfde72c4efb66d78e9a508b2a9a6e18052c2249a8a9ea68dc3cf6956664e9f", + "address": "5J6XU7keXhJKWdDkQ2BpxhdDhzqRcpqUVuRcqB7yRQSz", + "decode": + "3fcfde72c4efb66d78e9a508b2a9a6e18052c2249a8a9ea68dc3cf6956664e9f", + "params": {} + }, + { + "public": + "e06d37a5c7fb0564b0c229a3d443e8b6de4de5b5ae1f758d736901f002998315", + "address": "G74vAmd7QkXJSx9L2U5pJsfcnowkNKN1GM3R7iRW7C3N", + "decode": + "e06d37a5c7fb0564b0c229a3d443e8b6de4de5b5ae1f758d736901f002998315", + "params": {} + }, + { + "public": + "866bc4be4e3d6a5e8065c349c89deebc619039512e09bd9fc253b0e7d7a5782b", + "address": "A3iwfgYVghajWRpVjfsW5F6PuW5WCvm76ihctDCvAgev", + "decode": + "866bc4be4e3d6a5e8065c349c89deebc619039512e09bd9fc253b0e7d7a5782b", + "params": {} + }, + { + "public": + "735f4884aeee982fe1a04fdca5e63353c6cd61f3950868c10e60b70e2ecbd2ad", + "address": "8mN9wujRQpXhFJ9rZ4nrgDCjjJfqdHvPGWb7uKQh475N", + "decode": + "735f4884aeee982fe1a04fdca5e63353c6cd61f3950868c10e60b70e2ecbd2ad", + "params": {} + } +]; diff --git a/test/address/substrate/substrate_test.dart b/test/address/substrate/substrate_test.dart new file mode 100644 index 0000000..c012caa --- /dev/null +++ b/test/address/substrate/substrate_test.dart @@ -0,0 +1,31 @@ +import 'package:blockchain_utils/bip/address/substrate_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("substrate ED25519 test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = SubstrateEd25519AddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = SubstrateEd25519AddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); + test("substrate sr25519 test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + + final z = SubstrateSr25519AddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = SubstrateSr25519AddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/substrate/test_vector.dart b/test/address/substrate/test_vector.dart new file mode 100644 index 0000000..1bff485 --- /dev/null +++ b/test/address/substrate/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "79d1b9f483f005398e8a9ffa6378990a6d302b882848220dfa68a50b6f2090f2", + "address": "23dKgUghw8q96xGPCybiSRDkbNJMxNK7riGoEvo4GyxFdSAe", + "decode": + "79d1b9f483f005398e8a9ffa6378990a6d302b882848220dfa68a50b6f2090f2", + "params": {"ss58_format": 10} + }, + { + "public": + "4ac158b2e3460471eb04d92950f11337b267088fd91d48052275baf7d0b0b20d", + "address": "28MGpiZD5TT4sg7LRPgL9aSsUUgd8EjhnGTUUyFLSiorkxoe", + "decode": + "4ac158b2e3460471eb04d92950f11337b267088fd91d48052275baf7d0b0b20d", + "params": {"ss58_format": 11} + }, + { + "public": + "67ea0d6b7afce2a7328ab537decba8c6eaa998fc61c07908e74fca438b658195", + "address": "68VteHnLQhPF2qFiB1EbuHSSUjqVV1cU8rskmAuwXirJHARU", + "decode": + "67ea0d6b7afce2a7328ab537decba8c6eaa998fc61c07908e74fca438b658195", + "params": {"ss58_format": 51} + }, + { + "public": + "c0922153608d966efc4fedb67825a8bb79ed689689dda2592f446e4d997842a7", + "address": "6xoQrYS9PWW2vQqBHbVaxaEDf82enqsatyNpa2xspJaCFqYS", + "decode": + "c0922153608d966efc4fedb67825a8bb79ed689689dda2592f446e4d997842a7", + "params": {"ss58_format": 59} + }, + { + "public": + "51e5a6beae03719e2e9335a3994f8da03be34d6c71fac792c375b81e6faf3330", + "address": "ERhckLKG8dSw7uSH3pixNMkE3LvRRh6wB47BxRteGgcbzjb", + "decode": + "51e5a6beae03719e2e9335a3994f8da03be34d6c71fac792c375b81e6faf3330", + "params": {"ss58_format": 2} + }, + { + "public": + "446b851030cdfe955cacdb564f089419da17ce24de78b9027d7d0eb60d12ec9c", + "address": "42AVx9HAkErLQ7HEwPycg5ffboteYe3DtZzQs5kAY11eWTf3", + "decode": + "446b851030cdfe955cacdb564f089419da17ce24de78b9027d7d0eb60d12ec9c", + "params": {"ss58_format": 30} + }, + { + "public": + "4714f02d7bb16dfc3fa8f9ed6174e7cc03597dd0949b6211f4b603dc57d074bd", + "address": "6v47sUonfCtkMaAer7PtkQnJvLK7z9itxRCEmKrANigYRBzq", + "decode": + "4714f02d7bb16dfc3fa8f9ed6174e7cc03597dd0949b6211f4b603dc57d074bd", + "params": {"ss58_format": 59} + }, + { + "public": + "5c4d80a7ef3fafc1de96c36b9057e945166058de330747f3b54b1cd0de93bfbb", + "address": "4q16FYva7AMRpi8hdFfBVCc1ADZBTe2aNkpwERNX6UibBjmf", + "decode": + "5c4d80a7ef3fafc1de96c36b9057e945166058de330747f3b54b1cd0de93bfbb", + "params": {"ss58_format": 38} + }, + { + "public": + "7d0b6986c749600240592292d959922dbac407a85b4021256117703775fa9c41", + "address": "dLQEKZp2GLJrzVNxsTCaDMvsc7vkdDas7ykYMkWcxtkNEVoxQ", + "decode": + "7d0b6986c749600240592292d959922dbac407a85b4021256117703775fa9c41", + "params": {"ss58_format": 74} + }, + { + "public": + "d3b0d53b00d8c6aad6a9c543c4038988b48e32f496f78b55445618850f420b0b", + "address": "45QMPY78X8NjnD31Aa2MsYXLcp7T3JKLfBX1zUfhtukXLDDd", + "decode": + "d3b0d53b00d8c6aad6a9c543c4038988b48e32f496f78b55445618850f420b0b", + "params": {"ss58_format": 30} + }, + { + "public": + "b7e2de21cca3810b604ceb43e021b9302b7ef01ee37972f02f55e2bd922229f7", + "address": "54eVVmkRFSj5DoXvj9SXu6skwqhtw3HBE1kFj1oDJu9jdVFx", + "decode": + "b7e2de21cca3810b604ceb43e021b9302b7ef01ee37972f02f55e2bd922229f7", + "params": {"ss58_format": 40} + }, + { + "public": + "b71b74b78761d0d2029ccb3f5cd90597ccf1a322a9f0c3859783371c12f8380a", + "address": "dmy5KHJG5PREmFLUqwho7rP2LqkRtPhWciK7GsNdg7H4NeJHf", + "decode": + "b71b74b78761d0d2029ccb3f5cd90597ccf1a322a9f0c3859783371c12f8380a", + "params": {"ss58_format": 78} + }, + { + "public": + "7c6a30de786130f5b39edd624968946c3fbd29faf7366490244387aac720e63c", + "address": "3weFynUUw1LdbNUjHRQj9BamG1aSW5fdjc1eEyY7wmgai4hd", + "decode": + "7c6a30de786130f5b39edd624968946c3fbd29faf7366490244387aac720e63c", + "params": {"ss58_format": 29} + }, + { + "public": + "af97eb1036b912f0bc149337b7c7a166cceb5b2d2314460a398c113e8e0d904a", + "address": "4fJypEdiHRcEKhEHwqgsrg28pPm8NbUAhUTc4558bDuZ99hB", + "decode": + "af97eb1036b912f0bc149337b7c7a166cceb5b2d2314460a398c113e8e0d904a", + "params": {"ss58_format": 36} + }, + { + "public": + "69674d0887057d0e3e51b1129d8a3daf0d2f4997923e1f1bdbffd92fe7812bee", + "address": "cZh7471h4FZXckXD6nbDVLXn8YTEoBxHQuAoj4923v91a64vi", + "decode": + "69674d0887057d0e3e51b1129d8a3daf0d2f4997923e1f1bdbffd92fe7812bee", + "params": {"ss58_format": 67} + }, + { + "public": + "06a2f8561943afdcbf999c71cece77705735879da9f57964725086216bf5273d", + "address": "QJLjYPC9x4pepgzVkq15CFHku6HUkK2JxRT4RKEoU142qA8", + "decode": + "06a2f8561943afdcbf999c71cece77705735879da9f57964725086216bf5273d", + "params": {"ss58_format": 4} + }, + { + "public": + "70dad652a56bca7a48b2cef29a1a0e3683775c5b8a97506d263f053706ca4a13", + "address": "fRjESswa8rNv4GtHeaqC67SYr6U98BCKD5tk8yRahAjEyTVg1", + "decode": + "70dad652a56bca7a48b2cef29a1a0e3683775c5b8a97506d263f053706ca4a13", + "params": {"ss58_format": 93} + }, + { + "public": + "ea01f56a8c3b3ef3f7c677208051b6f7cc8b8bec843a5bea79b4a32cb1da40bb", + "address": "6sx5nBQuV4YHr7MvHNZjrMXfVR61P4mYHupYPLMjgZda6qtt", + "decode": + "ea01f56a8c3b3ef3f7c677208051b6f7cc8b8bec843a5bea79b4a32cb1da40bb", + "params": {"ss58_format": 58} + }, + { + "public": + "41279082602c93de0d9172850a729723e3d7c624ca9a2ca09a36c8d2bfe4a1a6", + "address": "4ibqRuxcmauheUzLf98hDxUXuPw8ZGfv2YTiX5Vmke9L6S8r", + "decode": + "41279082602c93de0d9172850a729723e3d7c624ca9a2ca09a36c8d2bfe4a1a6", + "params": {"ss58_format": 37} + }, + { + "public": + "27c3b8e574362206ff0bd7bc53adb3cd45533364d472f1101af53b92f9a49ec6", + "address": "iQkpUbP2uuPzQoqeDBuhyBQKCNeZrLwCXpm9t9kajjhceWf", + "decode": + "27c3b8e574362206ff0bd7bc53adb3cd45533364d472f1101af53b92f9a49ec6", + "params": {"ss58_format": 7} + }, + { + "public": + "1ea79c751d94a7a1d3d78d2647456e13bf22eaabaf2395b5017795ba359e57d0", + "address": "7JHkWhGtVUxobP3irBnLuppRWt8VafryoK61GDcKrazq6fG3", + "decode": + "1ea79c751d94a7a1d3d78d2647456e13bf22eaabaf2395b5017795ba359e57d0", + "params": {"ss58_format": 63} + }, + { + "public": + "92338af9aa5f9f3495b6c956d83602afd21adf832ace1590c5ec3d4cc93baa92", + "address": "fyfuFXRfvTjKrWrAEqxMKj2Uxov6Dd9iFgMaPjwzHdNY9cmKj", + "decode": + "92338af9aa5f9f3495b6c956d83602afd21adf832ace1590c5ec3d4cc93baa92", + "params": {"ss58_format": 98} + }, + { + "public": + "031a6a0de3b41b0cfbc1ce682934179364b4bc0a2e905ba7f1a6f0396ed82f40", + "address": "bo2YPjCQfFKU2og9wKW7GdfckcnnCWynV1aHJ4uKPBDdAc8", + "decode": + "031a6a0de3b41b0cfbc1ce682934179364b4bc0a2e905ba7f1a6f0396ed82f40", + "params": {"ss58_format": 6} + }, + { + "public": + "7ce744746a899ff7f8b1eedb8bd810dcb3e2afcf713d2a4b8a8b10e4c89a345f", + "address": "d7dThk4bzSxKajTDokuyKMooEXqHY6yLmJQSPgnQPntFja42v", + "decode": + "7ce744746a899ff7f8b1eedb8bd810dcb3e2afcf713d2a4b8a8b10e4c89a345f", + "params": {"ss58_format": 72} + }, + { + "public": + "fd4d51e45357608572ad8bdcc1c6c78dab803b6018ac569b397b786613786f9d", + "address": "emU7JLHupaFcMSKL7a8MaupKLakcjhSwQCsJWs8TuqZQRCmWd", + "decode": + "fd4d51e45357608572ad8bdcc1c6c78dab803b6018ac569b397b786613786f9d", + "params": {"ss58_format": 87} + }, + { + "public": + "fda9518b15bc4675cb3d9cb7679829153cbe190f3b989793a391ee18f3e0aa6f", + "address": "cnXDstVxXrMmScBeGF4tDnBYxLHXR1Dz7Yqp2rSgDRuN8u37W", + "decode": + "fda9518b15bc4675cb3d9cb7679829153cbe190f3b989793a391ee18f3e0aa6f", + "params": {"ss58_format": 69} + }, + { + "public": + "99ea0cc100034bccf0910fa79814a35007f57612081885b708f24a6565433547", + "address": "3A1fHM9VQAChiZG2RBrAJrPXKWCNQR3GWsBSvSZMYKWFzUgD", + "decode": + "99ea0cc100034bccf0910fa79814a35007f57612081885b708f24a6565433547", + "params": {"ss58_format": 21} + }, + { + "public": + "f78cbc2782cfa95a57c003cb3a1a3459d01094c60b791cba5423e3f2c7216642", + "address": "dLSzwpph5WifaRtcyWEGDfK2nTdQWYXEGM9sqwyLCKkFjTk7h", + "decode": + "f78cbc2782cfa95a57c003cb3a1a3459d01094c60b791cba5423e3f2c7216642", + "params": {"ss58_format": 74} + }, + { + "public": + "22e9ae4870d4405e84918c5b1c1098a1d5698c05e8a13b662298786111d64de6", + "address": "f6YKbvaWGrjaFniRbKAGCBf2nYX5KdZ461zRwigj5AarmMTQK", + "decode": + "22e9ae4870d4405e84918c5b1c1098a1d5698c05e8a13b662298786111d64de6", + "params": {"ss58_format": 90} + }, + { + "public": + "9cc28100bbdc84bc31acb50b58a0d24287d9a9a8f9f90e9a804dbb473aca6380", + "address": "d7eBUMWw1i3ipxCYhBn9oKjBe16M1CixphArVFc83L155LBhW", + "decode": + "9cc28100bbdc84bc31acb50b58a0d24287d9a9a8f9f90e9a804dbb473aca6380", + "params": {"ss58_format": 72} + }, + { + "public": + "a06fa03a1865d4c346f540c6df7bd81c1f0afa58f49b9f16bb92718af6e0df9b", + "address": "fKMvcnYuD9R4FmSRa8CkcXBpgu86MK8oH6MDYVzXobtNLhHbd", + "decode": + "a06fa03a1865d4c346f540c6df7bd81c1f0afa58f49b9f16bb92718af6e0df9b", + "params": {"ss58_format": 92} + }, + { + "public": + "664dff069b1af9828a6ed0dda6d78c0aa7bcd57b0a4f9ff0df85808f2fb6be28", + "address": "6pyQ3ftY94PTzf6QoJGzepfoH6neHfRe9RUo4CqpNd9MXDvv", + "decode": + "664dff069b1af9828a6ed0dda6d78c0aa7bcd57b0a4f9ff0df85808f2fb6be28", + "params": {"ss58_format": 58} + }, + { + "public": + "8281018cb8edbdfe8558fd1267214f7bd14424b87cfa862f6e8507f1366dbfb9", + "address": "7Em1aHR8kuBYZ9zaZg1PH97rnxq4v7PSAHU5Yg52KPkByzTC", + "decode": + "8281018cb8edbdfe8558fd1267214f7bd14424b87cfa862f6e8507f1366dbfb9", + "params": {"ss58_format": 62} + }, + { + "public": + "7ea05d97892b0c102e6252ccfa46db114f9971804e27b49dbd9d72af041d91a5", + "address": "4jzSEgf6RMrgiebBUeAAf3HxGTYQrhLfri8VZasDHZZevB4X", + "decode": + "7ea05d97892b0c102e6252ccfa46db114f9971804e27b49dbd9d72af041d91a5", + "params": {"ss58_format": 37} + }, + { + "public": + "4060b22e41cd6fe51fd9f6adb3393490662097fbec2ae862cf1f6355d822d11a", + "address": "ezAc28DCan48isb1F2bsPmxSUdqJ9yrW3kpSRHWQBYmXBR1rc", + "decode": + "4060b22e41cd6fe51fd9f6adb3393490662097fbec2ae862cf1f6355d822d11a", + "params": {"ss58_format": 89} + }, + { + "public": + "9311bb662ce2386b3baa24f672b586d2efa86993e6deff8bc79c46b5deb2bab1", + "address": "fyfvPXf1jkLZXC3LG8QDNd1ikaG1EZLHNpYPydb9Z4R24Dqm1", + "decode": + "9311bb662ce2386b3baa24f672b586d2efa86993e6deff8bc79c46b5deb2bab1", + "params": {"ss58_format": 98} + }, + { + "public": + "a146f2b45dcd0ca7b92e8b05651b38c8a6a4faacb81dbd6466a2c527d73ad297", + "address": "dfaCUc4BQspER1B2Gu2jjL7AjGCAWbz1oBkMmC7RuZQFjJTEQ", + "decode": + "a146f2b45dcd0ca7b92e8b05651b38c8a6a4faacb81dbd6466a2c527d73ad297", + "params": {"ss58_format": 77} + }, + { + "public": + "a44401332b58adce5bbbd687c889e2f30958db240efc959fc0be9cf250c5ba83", + "address": "6TE11kG33cNWFr2VnBxyNz1ZFZhFM9jbWW8QDDwk6NQt44md", + "decode": + "a44401332b58adce5bbbd687c889e2f30958db240efc959fc0be9cf250c5ba83", + "params": {"ss58_format": 54} + }, + { + "public": + "a5049d07d93b9958ad54acd01bb518a9acdf6129ccfc3098ef1e38d15bc70e51", + "address": "4A8pHVvDCNup1u2rRyaeCbdUGttGSZRg3U57wjfU5AQC4xtn", + "decode": + "a5049d07d93b9958ad54acd01bb518a9acdf6129ccfc3098ef1e38d15bc70e51", + "params": {"ss58_format": 31} + }, + { + "public": + "1eb867a3b182e1a8e9059c5a48c40837f154181f3e78778b09fb372836baefe2", + "address": "6Cdaf8XLg1utqys8o2cigsaFEUnL3tVMpbiQXwMKEpHmSf51", + "decode": + "1eb867a3b182e1a8e9059c5a48c40837f154181f3e78778b09fb372836baefe2", + "params": {"ss58_format": 52} + }, + { + "public": + "ffe1a34dd5fe983933448402e9eb2cd184e806a951553512db6edb86f685fea2", + "address": "7625kPgQ4fao3pGMewDmBxnm49dFnELaPWunGCfE9iuQcK3y", + "decode": + "ffe1a34dd5fe983933448402e9eb2cd184e806a951553512db6edb86f685fea2", + "params": {"ss58_format": 60} + }, + { + "public": + "0ea5cf25d025f0a8006974815f8e748d2b59104e21052026211d8b1df4c1123f", + "address": "2W96obBN5LP3m6Uj8SVc8xfLKBcfAykbpmJuaagNUhbcEu7m", + "decode": + "0ea5cf25d025f0a8006974815f8e748d2b59104e21052026211d8b1df4c1123f", + "params": {"ss58_format": 15} + }, + { + "public": + "e6a0357aa705fb10b04dae1f4b55d0178d420d70d1d3569e43fd4dd0178e7392", + "address": "zJKw3fXGy2vSMVmbK5zPAarhcGRUQ6uECNsz4396RiJC9hC", + "decode": + "e6a0357aa705fb10b04dae1f4b55d0178d420d70d1d3569e43fd4dd0178e7392", + "params": {"ss58_format": 9} + }, + { + "public": + "698200198233d9f83711c969828132063191662a6a59086037a12a5f15b795df", + "address": "eKsEeiwMYV14LaoyxkADWBBH6adpCZHxJSKWKYkWN3XrPLZTt", + "decode": + "698200198233d9f83711c969828132063191662a6a59086037a12a5f15b795df", + "params": {"ss58_format": 83} + }, + { + "public": + "a7edaa2c84bb2f0058de1aca05e6474600ca1bc48843ab857208add82993698a", + "address": "dmxjQxg6tqiYgJGkhZPco8cx5B1XxM6BEUXXWJqgzc4LK6rDA", + "decode": + "a7edaa2c84bb2f0058de1aca05e6474600ca1bc48843ab857208add82993698a", + "params": {"ss58_format": 78} + }, + { + "public": + "c4a971758d5b893f69c72b81c9d40c22933199b60b73413ca94c289cbb7100d8", + "address": "5GWZaTfBHVqf2pCGYnpZSVnU92QRmgaTeTnkw7NoXyn4BHCU", + "decode": + "c4a971758d5b893f69c72b81c9d40c22933199b60b73413ca94c289cbb7100d8", + "params": {"ss58_format": 42} + }, + { + "public": + "37ae8e89a33f0cc00f6c1b7c25ab4ae0856d8f6e853459c041798d050a3181f6", + "address": "fRhwUzhcvQrrYHTSMu7oirUb3jp5V4bPnhSU527oboeF1yyBS", + "decode": + "37ae8e89a33f0cc00f6c1b7c25ab4ae0856d8f6e853459c041798d050a3181f6", + "params": {"ss58_format": 93} + }, + { + "public": + "ae59b25f0c068154553c60afafa4a1aaad75a8614f89cad401f25bcc0f25d12e", + "address": "cZifTNFeKLxHf2CC3Th7Wc1zaBxyVtmL1Z3cC1braX4zqZoT7", + "decode": + "ae59b25f0c068154553c60afafa4a1aaad75a8614f89cad401f25bcc0f25d12e", + "params": {"ss58_format": 67} + }, + { + "public": + "969f9fe1a21bf68affb258b09479900e96752f1f4ca1dab252f38b17175d6a52", + "address": "ctsGzcuaHTLdu5trKYtZxbSkLeX6QhZjxDMunR7RbsxydvpLc", + "decode": + "969f9fe1a21bf68affb258b09479900e96752f1f4ca1dab252f38b17175d6a52", + "params": {"ss58_format": 70} + }, + { + "public": + "ff330a0aaadeb5c0da776de030a7798729b9e322f22c0ddcca5e093c01db4289", + "address": "6PVa5BWJf8XXMcQvCGDuyt9hyiJu16b9G2oXGue6EZwSM7pa", + "decode": + "ff330a0aaadeb5c0da776de030a7798729b9e322f22c0ddcca5e093c01db4289", + "params": {"ss58_format": 53} + } +]; diff --git a/test/address/trx/test_vector.dart b/test/address/trx/test_vector.dart new file mode 100644 index 0000000..651d6c2 --- /dev/null +++ b/test/address/trx/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVecotr = [ + { + "public": + "0311106644fa69df8dc8aab0d476ec34d9083436ed396a3c6e1cfd792bce08d344", + "address": "TDCEx9fU3UVuMPPXpGeX6BXjwsVo4vGuNh", + "decode": "235f6999f99545ea37965e68031050af8a0cbd6a", + "params": {} + }, + { + "public": + "03b0ed109cf36bf261906a3dbbf3be8d27e0676d97e0c1b2d39c1b3fb390c3b75d", + "address": "TToBpczGoKTbom3DtQR4BhZxvs8hmBi96y", + "decode": "c38d1e981ee3126804e7db1efeedb0cc00548e3f", + "params": {} + }, + { + "public": + "02710dc0308710ddfe6bab2caeafcf9b71e579bb874264d5eb11cf3ff40814ad77", + "address": "TTj497PF6M4eCQXRirihoAiwsZcC2fshQ7", + "decode": "c2c50b306122f1419625311c9de0d842213cce76", + "params": {} + }, + { + "public": + "03c13fb7ca977c4a9365f24b0a9c7bd865f6fe4ea2970c62c75fbc5bc956892b9c", + "address": "TFkyDS2Lv9sYbmemHSLhj3ZCiWVEKCe2DG", + "decode": "3f80412f7295e3002a82a61e0432aa5dbef9228c", + "params": {} + }, + { + "public": + "0259890d36b28489d7fe21ae86f3a0fcd661c4ec9cbe81fde7f662805c2d1b4cbe", + "address": "TQdakaPoAGSHLNUYuAG9gcGwXM6LzNpySn", + "decode": "a0d3b948499417a38042661f74bd99504ddfa880", + "params": {} + }, + { + "public": + "0310b330b29d625b82da6329ce3df142f440f4e54e7a80375dd976ec8866c4b893", + "address": "TQYk4S413skufWdZv94GbBwjnK2UWmFu9J", + "decode": "9fe969ec7fecae4ff4071c1041c8190fb43f06c6", + "params": {} + }, + { + "public": + "03f86e65345d35641fb0623b96ee763ce33fa89a55fd0486af3b90001a6410825d", + "address": "TKv6EENv2hPC8xSRJ53SctaZDrCNycMm7s", + "decode": "6d1a5b31e10d110b3cb8f90367428fffad3ecef0", + "params": {} + }, + { + "public": + "0362ae8d03cac3d50365d4ba9fa5cbd23404f101a0403f2078ed89fa9efb287409", + "address": "TRN3T1rascS98QZtJiPYCQmYQQPzhkugnU", + "decode": "a8db7ad913104874fcfc187a8f1f752d3dd4b541", + "params": {} + }, + { + "public": + "027e5310c3e4726300f39c28e57aeb20000c2997c8b2e6a550a161afc65b0d43b0", + "address": "TBxzCFh2qkdpfQiCzoye1beNG4XRMPNaa4", + "decode": "15e58f931648c932de8720070d2a5b7182e9fa5b", + "params": {} + }, + { + "public": + "026d2c1798b96566f8d29566edc32d733d44364d7937eca1f91767cdded6a0561f", + "address": "TDf9vkbYP9BLmhePBuY6Xov2PkKfu8YPW6", + "decode": "28767316dede3537b87e61de9ddf4c43b519622e", + "params": {} + }, + { + "public": + "03dd45c179760c8a2bc9a9cf724661b8736cc7ed8f4f8a1dc9b05170d97d5044c1", + "address": "TNSmmai2ox5aAeB8ZTnSyt9f82oM4jctNL", + "decode": "88d817ea5fa666d44d23d2dcbed8feef8a6801fa", + "params": {} + }, + { + "public": + "0232425e5dac928999bdc9cc474e6eb4f89558c84aa85eec8e936f937cfb13b1dc", + "address": "TTkhJLgszJvA5dhC59wjxBZpRsGnDK9kh9", + "decode": "c3147a81fef3aaf489ec767ec547b1ad9af7fb0a", + "params": {} + }, + { + "public": + "029f69a7291ea4eec531f7058924493a4431227405c69909b894029a9b116388a0", + "address": "TDFnsj3rgu6R5V2JWWgDD1vBf4R55eBufW", + "decode": "240b4f188fe2d151176a612140f1d63daf5983d7", + "params": {} + }, + { + "public": + "02bd99d5ddd43c43feaa560df77234e2ef554ded81705d61f2e332bd9f67e861ef", + "address": "TBRMF3bjC1X4pbbp7kb8AF4hqetpYwUVb8", + "decode": "0fe9d1f5a9c2d29c35b41dd1e59689ace60670a0", + "params": {} + }, + { + "public": + "02147cb6d6f6493b6311b4503c2bfa0a26225a538d81c6effb7cb160a185dd37a6", + "address": "TMTmDXRPSdaMHmiFp5vSHcnGCdMGeF8yt6", + "decode": "7e0fec170526890dfe2b5df5ff31d0c6a0f92dfb", + "params": {} + }, + { + "public": + "03fb74f7b0202be574d7f74d38423b811f38edced99e8e0f36cd4dab28f8a2246c", + "address": "TQWCsPrGr513yFtzSjvp3h8A3VefZnjzS2", + "decode": "9f6e8ba4b40c170910d81b08bc827d1959b23428", + "params": {} + }, + { + "public": + "0269e81a9250d45d59ffd1c199450c439f1d9fae687f95c7c880642f1165a27e13", + "address": "TX7t2cw1jpibN1UBwxuTx9KNTmPR6wRLzi", + "decode": "e7fe8c1455ccda33f93f205b8ddf3ccd6f94b6cc", + "params": {} + }, + { + "public": + "0221df5327a803d6b09fdea867b9fcf7715d65b55d4cd2d77fd8606686432adce2", + "address": "TMDXRbVLgfFrPWdQPpTZYx7uMM6radjgaf", + "decode": "7b5e95fb6e33d4fafbc7c8d83058f2f1446d62d5", + "params": {} + }, + { + "public": + "0319071f5e95e4d05edaed5010972e73eca1764c23fbd50bd9446d6ccb74654324", + "address": "TXm26aJTTE22rDAGxoDEyWUcrkLzB5U8US", + "decode": "ef04ac3979cef1f1b4c06a7ff94255f7e28af506", + "params": {} + }, + { + "public": + "0237ce721037e2cf7da03ea81052e416abe7ca57ab99b789b513402be63c6e97b4", + "address": "TRN6cPbnhbXQbNhWy9hvftzrv8hvM2Cu2Y", + "decode": "a8de1e7bc323ca398fe65100fa10c1733ba79971", + "params": {} + }, + { + "public": + "03776f914f3d2c8569e8c2f58d9a0643e94e3f34fa570008c039edc726b530586c", + "address": "TA9ULfRLKR8hszmtpfm6Je6GBtQ7YdjvbV", + "decode": "01f0f690426188393dadc8fb102a198bcf16115b", + "params": {} + }, + { + "public": + "02b743ac8c367d16b4f91ce0f357af42e131c8027345740b54a707090f4c0f148f", + "address": "TXUaWzMdTchXp1wqrYKATUgcRXUVnBg8s7", + "decode": "ebe8aa4039b445fbfba0bbdb62ce45dc8e4964d2", + "params": {} + }, + { + "public": + "033f9ba5693c714c1b746050d5999b215947cec29a6e8765f6e08acd9f0ee98228", + "address": "TVDi8E36VxpJmBdxktQ42qVQMZgZHBpVqP", + "decode": "d328864470d125a29a2b2727f6fce7ad4345660a", + "params": {} + }, + { + "public": + "02f1e9640d18de5fc7cb0dadb62769a2e801de884b4b44dc65bf53adc9742f5852", + "address": "TPy9LjjjWdsVDJEvu6NH7w8mHV3RmfAPKe", + "decode": "998eb4859c5f50980aabd49546c5cf99001f7ad3", + "params": {} + }, + { + "public": + "02f7d99292969ec54dab5d126673167dcfd7b9e158559220368f2ae22a3688b845", + "address": "TAbDeDC2kD2z9tjpifq8WZmJw18PQKXTmD", + "decode": "06cf826372c0f2a5b5d724ba310c3981d17ed7f2", + "params": {} + }, + { + "public": + "039ec6daaef7e05dd828f9da1d48a19d04ca65b6fa510f41d00009b66b2010dc9d", + "address": "THMY3HZEsfLc9R8vbiGTKyCkkggxueHhv2", + "decode": "5101ec91fe827613b88760eb846e88e2ad32bcbe", + "params": {} + }, + { + "public": + "0226bd6a110dc99af29cfa4fb6cf626784197859336c6f9174dfe6e08a0b374fab", + "address": "TTPkvm4ZUHifwD4SdPVrgxhCt8Mkct6N6M", + "decode": "bf1ec594705a014e07e9090545d298052d4e8e5c", + "params": {} + }, + { + "public": + "02f24c3906e7b78beadef7cd16bcd597b52a7b05cbdd40a08b0307f026fdb82f7e", + "address": "TJuzjGX6TjAVbbWMDLhjeCxXED8cHJWgCF", + "decode": "621da3ca7e7175fef1649cc2002eaa6b5ad56ddb", + "params": {} + }, + { + "public": + "0383b6a6ab70c2153e9c351ad849927a96cf7a6169afd4d647a72cd42cbb4d82b2", + "address": "TL4RmmTiy65TXKZQ57zvMSf4LSDggmEBiw", + "decode": "6eadff8a2e5f9373835a1c701e677f7a78fdee8d", + "params": {} + }, + { + "public": + "03bd5cb8bf42d82a4ba83a1d228339794449f44ed30381f89e87de9996f5fb6b18", + "address": "TFYoawKt5moTWGERoqQe5dVfyMU4nLBvMT", + "decode": "3d33399aee980c38c7a8538f67c82503b839f8c7", + "params": {} + }, + { + "public": + "03f05d765972ed87b49c6b5d95719ac97087bda56ffef144fdc6659690083e3e2b", + "address": "TTbLJ5aDgb3HdnzLYrHZmEaKaaLM7ArWWk", + "decode": "c14f33834ae10b8bed492d9f688fcfc55607bbe1", + "params": {} + }, + { + "public": + "0229b0883dae8b6a39f96ae68bd739da9f3e095f1115fbeb20d9e105cc21e375cb", + "address": "TCsHTME2CfnBeW6XG8XWcBTT7o8bRwn81W", + "decode": "1fc99957c4daf51c947b9c524d3a492bf6a85b39", + "params": {} + }, + { + "public": + "02c14d1aebf817f569704c8697ee3ef915bfd4c67d865dbba4d2b14d3ff9613c72", + "address": "TVtkjDaP2qdFUFiXcBMpu5bPdkPdtZEjK4", + "decode": "da8aeb8d68c5bfb5124506f7fbf7c5175d105bbd", + "params": {} + }, + { + "public": + "03715d431589a48695c45b7fba50c7ab3272e07834fd40f05324432ee57bf190c6", + "address": "TPwQ2Y29GzWsL1Dje9ps6WcvJL9dEqqpf9", + "decode": "993a21f4a54a1f4c65f55132971b591bba80e71e", + "params": {} + }, + { + "public": + "038069f94a08c8a3e925869ed7cbdb3fde87f1078a2272a90392b5abae9c4ca076", + "address": "TDm2Zqdta6ha8RD55isr28A2CnyyTqpfRX", + "decode": "2992cd113099e87a84f827cbbeeeba3bc0577083", + "params": {} + }, + { + "public": + "03715cfd009ae31314184417aa0d65a8341fef4164869a3a156cd7b1f99963e6d9", + "address": "TJfCRtxhxdr8foWGD2S8tziPXEkjrRpJLj", + "decode": "5f512ade7a146f6d437b47ed635abd08f5201c42", + "params": {} + }, + { + "public": + "033fc169d968ea6a3bcb226acc6817e8604451d8eb81ca609dfad59c753be74824", + "address": "TWiYk7G44LAimR2XgCF1dPZnzSjy97zpep", + "decode": "e394e1cc3068e70725cc935f0a7e08576c33befb", + "params": {} + }, + { + "public": + "02fbb6dbbaabef8a2ed85d74692c2974e7999f4f7b9022d36d3a70d1537a263bc2", + "address": "TKo81mbUjZVY3f2GdpBHvf3b3piBxpgGv2", + "decode": "6bc8ef45c86a09c7940ce237f4f88e9ef158da20", + "params": {} + }, + { + "public": + "03809ea2cc0b6617a42cc35e3a974f7f1cf7fede6f1d610e80d09f5b9f03b28b07", + "address": "TV17H8xf6TszEc7YxWBT77z4RjdtEntA9s", + "decode": "d0c671d6c52b5aca4bcfb9f203dd079fe0a4c1a5", + "params": {} + }, + { + "public": + "031c4ca154cba0b945ae99c41ae3c5c8c7489d8e2dccfc5d29f5e08296581f8e51", + "address": "TGC9KxiznmWLTpXBFnpVN4fyDxVzME78VL", + "decode": "44431860ce14032928f11ae283c458d6ff3d2ef8", + "params": {} + }, + { + "public": + "032e6c07a2f98944c5c68bcebeeaee21e7603d523d91e5d6401c493f435d25dbfa", + "address": "TDSZG3WTzVxgErEL6Ep42FCHMn9WqmFuUq", + "decode": "261484e6fbb6959ad8ceb0686206b248bde6a54f", + "params": {} + }, + { + "public": + "02ab5d35e41ccc44aa95bbd745b861b5b0fafb2546461fac2d23ba5184354e3481", + "address": "THvBsbHPndRnxR5QntsjtvPpuifZzGm6Tr", + "decode": "572ed0efb301724abb5fc23740601b29582e60ef", + "params": {} + }, + { + "public": + "02ef6ddd8f00ff7257bea4b6de006d1807dd225222d3fc0827c7c084188a2271f3", + "address": "TGm1wFYrtHX7bQtWAJwMWcsxAqHC9kVWsp", + "decode": "4a7aa6dd12ea556e5c5b4cde6d38272a6571d799", + "params": {} + }, + { + "public": + "03215735ca74ff0932f78516060a9044faca8f7b815ae88eee33259b32bd32a027", + "address": "TXwu9UKrAyjCxxDQohYQs8PsUa7JYVVY9r", + "decode": "f113725c4102ed69bbb31d5e620f78b4ea35053a", + "params": {} + }, + { + "public": + "02d71eeee94f2f7aae2449c1431539afe0d968315db47aa4f757b0a353ee6c739b", + "address": "TM2m8tpVq1w2vYYJ6CAWVZVXuoALFjGFGs", + "decode": "795574df1eb81ced137e42c7935d28bfae985576", + "params": {} + }, + { + "public": + "02635c905fd480df0e20ff283aad09f72fff57f921b55db8d44e071767b94b3397", + "address": "TGKMWVUS8zpN3sFosD1pvUuoACttiJXg1K", + "decode": "45a02cf4b8b46882e15083df0912b3562310a504", + "params": {} + }, + { + "public": + "033c76a8acada7a150e84dea1a55d490d5c01d9196d6203f38b119888d3215bc4e", + "address": "TKhEyg2uHEufhEwHyr48X7dS2MzWkVmAUU", + "decode": "6aac4084f3dad27f256cc0d42acbafe77390c9ca", + "params": {} + }, + { + "public": + "039c2d0c7188271d8f7f7601fd5712e1b4256e9daaec62824d832831a9a6f1f3aa", + "address": "TC34q8yzoVTevDB5tdFP6RaSm6WFfqctqJ", + "decode": "16ab1835c926d5936c94e7bf05b349ba7fa4edcb", + "params": {} + }, + { + "public": + "0281b8b540e11794dc62e3692cf7bfff102816584932e62c5c7f2d0b2eb551db8f", + "address": "TYxufGo79fSH75LRXNyGXgZeXgpg4hqqps", + "decode": "fc3c6ad92740af0d8e9bfbe4f2c005efdc7a9ca5", + "params": {} + }, + { + "public": + "03c190fd0a61b7710c8f49d4954707b0a4b6e8a5b04470aa6b15b55360315bb160", + "address": "TYc1FGBQ67LTbhebDxjykCHXnjpZKpGLPt", + "decode": "f848585c2a61359e10bf54d21bba116afb2da6f4", + "params": {} + } +]; diff --git a/test/address/trx/trx_test.dart b/test/address/trx/trx_test.dart new file mode 100644 index 0000000..a26534a --- /dev/null +++ b/test/address/trx/trx_test.dart @@ -0,0 +1,20 @@ +import 'package:blockchain_utils/bip/address/trx_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVecotr; + +void main() { + test("trx address test", () { + for (final i in testVecotr) { + final params = Map.from(i["params"]); + + final z = TrxAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = TrxAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/xlm/test_vector.dart b/test/address/xlm/test_vector.dart new file mode 100644 index 0000000..6c2e30c --- /dev/null +++ b/test/address/xlm/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "public": + "7b07983499c93f4eb256d7f6a42acf13ef098b20022e904f6c82f13805166c9f", + "address": "GB5QPGBUTHET6TVSK3L7NJBKZ4J66CMLEABC5ECPNSBPCOAFCZWJ6KSN", + "decode": + "7b07983499c93f4eb256d7f6a42acf13ef098b20022e904f6c82f13805166c9f", + "params": {"addr_type": 48} + }, + { + "public": + "40de01bb8215216a18f08ea068a1c2adaf41d11b7c5558de355c8c3a7f6841ed", + "address": "GBAN4AN3QIKSC2QY6CHKA2FBYKW26QORDN6FKWG6GVOIYOT7NBA633GO", + "decode": + "40de01bb8215216a18f08ea068a1c2adaf41d11b7c5558de355c8c3a7f6841ed", + "params": {"addr_type": 48} + }, + { + "public": + "3248f7acd7b13fdfc8271e4af486300cdabfa8d0d406eb1485a9b93858f73836", + "address": "GAZER55M26YT7X6IE4PEV5EGGAGNVP5I2DKAN2YUQWU3SOCY644DM6NS", + "decode": + "3248f7acd7b13fdfc8271e4af486300cdabfa8d0d406eb1485a9b93858f73836", + "params": {"addr_type": 48} + }, + { + "public": + "faa34f613bfce260627acd14cd173e58cd3af0fb081375000602abcf7b065397", + "address": "GD5KGT3BHP6OEYDCPLGRJTIXHZMM2OXQ7MEBG5IAAYBKXT33AZJZOOKJ", + "decode": + "faa34f613bfce260627acd14cd173e58cd3af0fb081375000602abcf7b065397", + "params": {"addr_type": 48} + }, + { + "public": + "37cce7abd3c2a2d20894479d4d39f1ec758b447451425f786ab65240efd8dcdb", + "address": "GA34ZZ5L2PBKFUQISRDZ2TJZ6HWHLC2EORIUEX3YNK3FEQHP3DONXU77", + "decode": + "37cce7abd3c2a2d20894479d4d39f1ec758b447451425f786ab65240efd8dcdb", + "params": {"addr_type": 48} + }, + { + "public": + "cb73637019a80f9d59d4dec589b6632a38e62ce7a0bb93e2fbcfa28f590c8533", + "address": "GDFXGY3QDGUA7HKZ2TPMLCNWMMVDRZRM46QLXE7C7PH2FD2ZBSCTGB4P", + "decode": + "cb73637019a80f9d59d4dec589b6632a38e62ce7a0bb93e2fbcfa28f590c8533", + "params": {"addr_type": 48} + }, + { + "public": + "f795e66cfe7cc82ab8e79fa0169d68865c3e77d8bdb75b13aec3c5c55a746435", + "address": "GD3ZLZTM7Z6MQKVY46P2AFU5NCDFYPTX3C63OWYTV3B4LRK2ORSDKW22", + "decode": + "f795e66cfe7cc82ab8e79fa0169d68865c3e77d8bdb75b13aec3c5c55a746435", + "params": {"addr_type": 48} + }, + { + "public": + "c2b22e349c2df74b6196773aa140ad7223d05d38791c2a18107d41a6e63cdb06", + "address": "GDBLELRUTQW7OS3BSZ3TVIKAVVZCHUC5HB4RYKQYCB6UDJXGHTNQMSNC", + "decode": + "c2b22e349c2df74b6196773aa140ad7223d05d38791c2a18107d41a6e63cdb06", + "params": {"addr_type": 48} + }, + { + "public": + "7d6672f2b9d362f756d707c096ce728cb6217c11f88d4ba2d135cd30cdce3cc5", + "address": "GB6WM4XSXHJWF52W24D4BFWOOKGLMIL4CH4I2S5C2E242MGNZY6MLFAG", + "decode": + "7d6672f2b9d362f756d707c096ce728cb6217c11f88d4ba2d135cd30cdce3cc5", + "params": {"addr_type": 48} + }, + { + "public": + "8ddad2c7cb52da6e7b9c6422f1bf4d822a5e4500d0ad83e2c8e3b0002bde5251", + "address": "GCG5VUWHZNJNU3T3TRSCF4N7JWBCUXSFADIK3A7CZDR3AABL3ZJFCSYU", + "decode": + "8ddad2c7cb52da6e7b9c6422f1bf4d822a5e4500d0ad83e2c8e3b0002bde5251", + "params": {"addr_type": 48} + }, + { + "public": + "e5a25f5195b1155806ad036f8133340b8f3338b56118031a3994ffdad10d6222", + "address": "GDS2EX2RSWYRKWAGVUBW7AJTGQFY6MZYWVQRQAY2HGKP7WWRBVRCFUG6", + "decode": + "e5a25f5195b1155806ad036f8133340b8f3338b56118031a3994ffdad10d6222", + "params": {"addr_type": 48} + }, + { + "public": + "afe1a328dc5cdaee0036eeb310b04873e0dd328d4492f17d0bc6fe980c145cc6", + "address": "GCX6DIZI3RONV3QAG3XLGEFQJBZ6BXJSRVCJF4L5BPDP5GAMCROMNYHH", + "decode": + "afe1a328dc5cdaee0036eeb310b04873e0dd328d4492f17d0bc6fe980c145cc6", + "params": {"addr_type": 48} + }, + { + "public": + "b97a2be5c987082aeed3cccdd54396e80b40c333f936e199033c2361ee943da6", + "address": "GC4XUK7FZGDQQKXO2PGM3VKDS3UAWQGDGP4TNYMZAM6CGYPOSQ62NCLF", + "decode": + "b97a2be5c987082aeed3cccdd54396e80b40c333f936e199033c2361ee943da6", + "params": {"addr_type": 48} + }, + { + "public": + "fb14d733cb207bd87f48cba5c42697cc2b3a68d6b7b93e5687868b4d234bdff4", + "address": "GD5RJVZTZMQHXWD7JDF2LRBGS7GCWOTI2233SPSWQ6DIWTJDJPP7JFI6", + "decode": + "fb14d733cb207bd87f48cba5c42697cc2b3a68d6b7b93e5687868b4d234bdff4", + "params": {"addr_type": 48} + }, + { + "public": + "4ab38df1428beff0e2d099b638f51a6ffda510d938d3a4d4aaa538fa85d8ae96", + "address": "GBFLHDPRIKF674HC2CM3MOHVDJX73JIQ3E4NHJGUVKSTR6UF3CXJMP3I", + "decode": + "4ab38df1428beff0e2d099b638f51a6ffda510d938d3a4d4aaa538fa85d8ae96", + "params": {"addr_type": 48} + }, + { + "public": + "9615e6c1ba1a1db25bc63b71d47a902a70653ad3f958f49bcd4eaca9f4a0d638", + "address": "GCLBLZWBXINB3MS3YY5XDVD2SAVHAZJ22P4VR5E3ZVHKZKPUUDLDRPD7", + "decode": + "9615e6c1ba1a1db25bc63b71d47a902a70653ad3f958f49bcd4eaca9f4a0d638", + "params": {"addr_type": 48} + }, + { + "public": + "d3478ca7ffeb8fac5b1d210f6bdf2eb990cd57f6bde4f0c8a0e9f0d355216c42", + "address": "GDJUPDFH77VY7LC3DUQQ6267F24ZBTKX6266J4GIUDU7BU2VEFWEFHZA", + "decode": + "d3478ca7ffeb8fac5b1d210f6bdf2eb990cd57f6bde4f0c8a0e9f0d355216c42", + "params": {"addr_type": 48} + }, + { + "public": + "c61b1734e48e5cd977a55aee4c38a0b59f523c1a11b864ab56022804bb23c2e7", + "address": "GDDBWFZU4SHFZWLXUVNO4TBYUC2Z6UR4DII3QZFLKYBCQBF3EPBOOEOL", + "decode": + "c61b1734e48e5cd977a55aee4c38a0b59f523c1a11b864ab56022804bb23c2e7", + "params": {"addr_type": 48} + }, + { + "public": + "4f4852eee9bbadea1c7f99d23db84a340e867e6f4fb1bbc734252f72b9daf291", + "address": "GBHUQUXO5G5232Q4P6M5EPNYJI2A5BT6N5H3DO6HGQSS64VZ3LZJD7H6", + "decode": + "4f4852eee9bbadea1c7f99d23db84a340e867e6f4fb1bbc734252f72b9daf291", + "params": {"addr_type": 48} + }, + { + "public": + "daaa18cd912e322fdda21ad4152a422fce3f0c74f7fe01d91a35792679d787c8", + "address": "GDNKUGGNSEXDEL65UINNIFJKIIX44PYMOT374AOZDI2XSJTZ26D4R6QF", + "decode": + "daaa18cd912e322fdda21ad4152a422fce3f0c74f7fe01d91a35792679d787c8", + "params": {"addr_type": 48} + }, + { + "public": + "f0a1bee9422119af8ccdbc365ab6e581fef4e17909e22eebad8fdfad5254dc87", + "address": "GDYKDPXJIIQRTL4MZW6DMWVW4WA755HBPEE6ELXLVWH57LKSKTOIOTNX", + "decode": + "f0a1bee9422119af8ccdbc365ab6e581fef4e17909e22eebad8fdfad5254dc87", + "params": {"addr_type": 48} + }, + { + "public": + "027996479ec25f1705393b17badb24afbd45601aad6d926348d42a7ff29093c3", + "address": "GABHTFSHT3BF6FYFHE5RPOW3ESX32RLADKWW3ETDJDKCU77SSCJ4HQ74", + "decode": + "027996479ec25f1705393b17badb24afbd45601aad6d926348d42a7ff29093c3", + "params": {"addr_type": 48} + }, + { + "public": + "10448d9f63362844568aa15e91d3aea4411fa712c5ab5ca6b3262fc34b55175a", + "address": "GAIEJDM7MM3CQRCWRKQV5EOTV2SECH5HCLC2WXFGWMTC7Q2LKULVVMDE", + "decode": + "10448d9f63362844568aa15e91d3aea4411fa712c5ab5ca6b3262fc34b55175a", + "params": {"addr_type": 48} + }, + { + "public": + "e0abb05e1424468139dc53712f2cb8a2c9700ded474b69e31b7ab3542f1da8e2", + "address": "GDQKXMC6CQSENAJZ3RJXCLZMXCRMS4AN5VDUW2PDDN5LGVBPDWUOF5LB", + "decode": + "e0abb05e1424468139dc53712f2cb8a2c9700ded474b69e31b7ab3542f1da8e2", + "params": {"addr_type": 48} + }, + { + "public": + "3b24061ac7ef39a710700b91a54bef95d1489f9c16305cb05b7f6448093667fc", + "address": "GA5SIBQ2Y7XTTJYQOAFZDJKL56K5CSE7TQLDAXFQLN7WISAJGZT7YBXL", + "decode": + "3b24061ac7ef39a710700b91a54bef95d1489f9c16305cb05b7f6448093667fc", + "params": {"addr_type": 48} + }, + { + "public": + "ee8a3ed5b90eeb8717a9ee0a81d8decd4240cd836bd1086e6ea7f505d6b4652c", + "address": "GDXIUPWVXEHOXBYXVHXAVAOY33GUEQGNQNV5CCDON2T7KBOWWRSSZ4Q4", + "decode": + "ee8a3ed5b90eeb8717a9ee0a81d8decd4240cd836bd1086e6ea7f505d6b4652c", + "params": {"addr_type": 48} + }, + { + "public": + "6105ac585064f885dfdd76927ac05510017d82945862914c8184f10b47902062", + "address": "GBQQLLCYKBSPRBO73V3JE6WAKUIAC7MCSRMGFEKMQGCPCC2HSAQGFR4K", + "decode": + "6105ac585064f885dfdd76927ac05510017d82945862914c8184f10b47902062", + "params": {"addr_type": 48} + }, + { + "public": + "4d7aafca55cb79346c282db5b88157fc9aedd62ea4d867481fdfc9c3e7b9c1cc", + "address": "GBGXVL6KKXFXSNDMFAW3LOEBK76JV3OWF2SNQZ2ID7P4TQ7HXHA4YBFF", + "decode": + "4d7aafca55cb79346c282db5b88157fc9aedd62ea4d867481fdfc9c3e7b9c1cc", + "params": {"addr_type": 48} + }, + { + "public": + "ebc8fa83db3f806fe38f4f6d5a3434836ce07011bd5530f73d30bfac8e3484e9", + "address": "GDV4R6UD3M7YA37DR5HW2WRUGSBWZYDQCG6VKMHXHUYL7LEOGSCOSO2V", + "decode": + "ebc8fa83db3f806fe38f4f6d5a3434836ce07011bd5530f73d30bfac8e3484e9", + "params": {"addr_type": 48} + }, + { + "public": + "6ca26aa13d3e6f583bfe863f4187ab9140ce30a3c5255720eb2d14c3b0a1f8a5", + "address": "GBWKE2VBHU7G6WB372DD6QMHVOIUBTRQUPCSKVZA5MWRJQ5QUH4KKQ6V", + "decode": + "6ca26aa13d3e6f583bfe863f4187ab9140ce30a3c5255720eb2d14c3b0a1f8a5", + "params": {"addr_type": 48} + }, + { + "public": + "995ce6fd8a001234d3febaae1467563d409e55f49cc750dc2f02685a955b1902", + "address": "GCMVZZX5RIABENGT725K4FDHKY6UBHSV6SOMOUG4F4BGQWUVLMMQFWFQ", + "decode": + "995ce6fd8a001234d3febaae1467563d409e55f49cc750dc2f02685a955b1902", + "params": {"addr_type": 48} + }, + { + "public": + "1dc0da54380eca4672369f77a2d6921ea5b00a09b3c54b49ceeb836af4303513", + "address": "GAO4BWSUHAHMURTSG2PXPIWWSIPKLMAKBGZ4KS2JZ3VYG2XUGA2RG2SY", + "decode": + "1dc0da54380eca4672369f77a2d6921ea5b00a09b3c54b49ceeb836af4303513", + "params": {"addr_type": 48} + }, + { + "public": + "1bac2d83f80bfe942bf77c023e9937024c5c3ae0f72cda12282c8698a1466e95", + "address": "GAN2YLMD7AF75FBL656AEPUZG4BEYXB24D3SZWQSFAWINGFBIZXJKDNH", + "decode": + "1bac2d83f80bfe942bf77c023e9937024c5c3ae0f72cda12282c8698a1466e95", + "params": {"addr_type": 48} + }, + { + "public": + "e79c8dcccb4623af0cd1aea5454bf000d534bd5ab30bf25fbf9cd7b72f193293", + "address": "GDTZZDOMZNDCHLYM2GXKKRKL6AANKNF5LKZQX4S7X6ONPNZPDEZJGTOX", + "decode": + "e79c8dcccb4623af0cd1aea5454bf000d534bd5ab30bf25fbf9cd7b72f193293", + "params": {"addr_type": 48} + }, + { + "public": + "12718dc88cfafc4fd2322b5c96d2f9bea7b7a803ca278ce2ca4c42c8f28f2991", + "address": "GAJHDDOIRT5PYT6SGIVVZFWS7G7KPN5IAPFCPDHCZJGEFSHSR4UZDJRF", + "decode": + "12718dc88cfafc4fd2322b5c96d2f9bea7b7a803ca278ce2ca4c42c8f28f2991", + "params": {"addr_type": 48} + }, + { + "public": + "345bd4b677907b2ddde6c8fa1bc3733c79b9fcf6c142a6f94e797d1b8891ec3e", + "address": "GA2FXVFWO6IHWLO543EPUG6DOM6HTOP463AUFJXZJZ4X2G4ISHWD5KSX", + "decode": + "345bd4b677907b2ddde6c8fa1bc3733c79b9fcf6c142a6f94e797d1b8891ec3e", + "params": {"addr_type": 48} + }, + { + "public": + "c687478dae1993adc05316a0b5c71a28f98a1486abfa5386589e86d03b064349", + "address": "GDDIOR4NVYMZHLOAKMLKBNOHDIUPTCQUQ2V7UU4GLCPINUB3AZBUTYXL", + "decode": + "c687478dae1993adc05316a0b5c71a28f98a1486abfa5386589e86d03b064349", + "params": {"addr_type": 48} + }, + { + "public": + "54602c78446cf3aa28e43e6afdabae5caa0db0b4b3cd071e410aa754b815f921", + "address": "GBKGALDYIRWPHKRI4Q7GV7NLVZOKUDNQWSZ42BY6IEFKOVFYCX4SCB64", + "decode": + "54602c78446cf3aa28e43e6afdabae5caa0db0b4b3cd071e410aa754b815f921", + "params": {"addr_type": 48} + }, + { + "public": + "10ed4a885eee9a219522c9cb0ba657a07a2ca16199bfa8d6eb6770e426a74315", + "address": "GAIO2SUIL3XJUIMVELE4WC5GK6QHULFBMGM37KGW5NTXBZBGU5BRKHSG", + "decode": + "10ed4a885eee9a219522c9cb0ba657a07a2ca16199bfa8d6eb6770e426a74315", + "params": {"addr_type": 48} + }, + { + "public": + "cd65593849c76c4e8fb292a88227cbdd01b4bb61c4f251919d1440e0227e4d83", + "address": "GDGWKWJYJHDWYTUPWKJKRARHZPOQDNF3MHCPEUMRTUKEBYBCPZGYHCFA", + "decode": + "cd65593849c76c4e8fb292a88227cbdd01b4bb61c4f251919d1440e0227e4d83", + "params": {"addr_type": 48} + }, + { + "public": + "665656d93affb7687aceb94f96677596977efdc126f42c4fe26fe570e604e9ed", + "address": "GBTFMVWZHL73O2D2Z24U7FTHOWLJO7X5YETPILCP4JX6K4HGATU6226H", + "decode": + "665656d93affb7687aceb94f96677596977efdc126f42c4fe26fe570e604e9ed", + "params": {"addr_type": 48} + }, + { + "public": + "f47316458549c73c55008a0d1d953faa449d16f6038a1d3a856055119730fb14", + "address": "GD2HGFSFQVE4OPCVACFA2HMVH6VEJHIW6YBYUHJ2QVQFKEMXGD5RIGQM", + "decode": + "f47316458549c73c55008a0d1d953faa449d16f6038a1d3a856055119730fb14", + "params": {"addr_type": 48} + }, + { + "public": + "9dbac8f7736c0a0c5629befcb955718b2752d0f08e074b0ed8889daccaaf42a1", + "address": "GCO3VSHXONWAUDCWFG7PZOKVOGFSOUWQ6CHAOSYO3CEJ3LGKV5BKDIKN", + "decode": + "9dbac8f7736c0a0c5629befcb955718b2752d0f08e074b0ed8889daccaaf42a1", + "params": {"addr_type": 48} + }, + { + "public": + "ab216891c5685182d24c3161924c3e54afa25f31a5c56041271e92be03a1786a", + "address": "GCVSC2ERYVUFDAWSJQYWDESMHZKK7IS7GGS4KYCBE4PJFPQDUF4GVYFZ", + "decode": + "ab216891c5685182d24c3161924c3e54afa25f31a5c56041271e92be03a1786a", + "params": {"addr_type": 48} + }, + { + "public": + "98f6ea7c8ce1dd16b0948de91693c01b5b8bd0de59536dc52a9c4faf2cad0668", + "address": "GCMPN2T4RTQ52FVQSSG6SFUTYANVXC6Q3ZMVG3OFFKOE7LZMVUDGRFQZ", + "decode": + "98f6ea7c8ce1dd16b0948de91693c01b5b8bd0de59536dc52a9c4faf2cad0668", + "params": {"addr_type": 48} + }, + { + "public": + "73318105c0e72d015455a97c48c9021d27e85bd5b62c369a942c29a1db0dad0a", + "address": "GBZTDAIFYDTS2AKUKWUXYSGJAIOSP2C32W3CYNU2SQWCTIO3BWWQVP6W", + "decode": + "73318105c0e72d015455a97c48c9021d27e85bd5b62c369a942c29a1db0dad0a", + "params": {"addr_type": 48} + }, + { + "public": + "f7dcff7ee6cadab65703c22ed3bf132ba40c3ba656ceda84d4afeb6374c32455", + "address": "GD35Z73643FNVNSXAPBC5U57CMV2IDB3UZLM5WUE2SX6WY3UYMSFKYIZ", + "decode": + "f7dcff7ee6cadab65703c22ed3bf132ba40c3ba656ceda84d4afeb6374c32455", + "params": {"addr_type": 48} + }, + { + "public": + "ad03baae1e9df37d77b7393ee9f8c76db2b160427029301afdf43ce15a20c6be", + "address": "GCWQHOVOD2O7G7LXW44T52PYY5W3FMLAIJYCSMA27X2DZYK2EDDL4REJ", + "decode": + "ad03baae1e9df37d77b7393ee9f8c76db2b160427029301afdf43ce15a20c6be", + "params": {"addr_type": 48} + }, + { + "public": + "2daffde117c97775659cbc5f818ec9f36c98ef6de3adf721fdb22a0560afd201", + "address": "GAW277PBC7EXO5LFTS6F7AMOZHZWZGHPNXR235ZB7WZCUBLAV7JACVX2", + "decode": + "2daffde117c97775659cbc5f818ec9f36c98ef6de3adf721fdb22a0560afd201", + "params": {"addr_type": 48} + }, + { + "public": + "a9cc3d3b3d6165349077b21f7d56e0efbc5ece6c87db686938c0b6573d6a65e3", + "address": "GCU4YPJ3HVQWKNEQO6ZB67KW4DX3YXWONSD5W2DJHDALMVZ5NJS6G5IG", + "decode": + "a9cc3d3b3d6165349077b21f7d56e0efbc5ece6c87db686938c0b6573d6a65e3", + "params": {"addr_type": 48} + } +]; diff --git a/test/address/xlm/xml_test.dart b/test/address/xlm/xml_test.dart new file mode 100644 index 0000000..98c3837 --- /dev/null +++ b/test/address/xlm/xml_test.dart @@ -0,0 +1,21 @@ +import 'package:blockchain_utils/bip/address/xlm_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("xml address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + params["addr_type"] = XlmAddrTypes.values + .firstWhere((element) => element.value == params["addr_type"]); + final z = XlmAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = XlmAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/xmr/test_vector.dart b/test/address/xmr/test_vector.dart new file mode 100644 index 0000000..2efacef --- /dev/null +++ b/test/address/xmr/test_vector.dart @@ -0,0 +1,654 @@ +import 'dart:typed_data'; + +final List> testVector = [ + { + "public": + "23e98445b5dfe3240a15ca5dfd00f62334d2eef0e4a94d3c0c4c32e08323cb32", + "address": + "42z3MVZMRgE72dPA89MtCD6tYeWke8cV2B3YPYg1pe5x9X7VVqee6MWhjPrjCMiUFwejWkh8KL6MpN8cwX7B5WuZAxw2YbQ", + "decode": + "23e98445b5dfe3240a15ca5dfd00f62334d2eef0e4a94d3c0c4c32e08323cb32eecbb34bdf8671f383ab7d6feeacb6e1973c3f4c890c637e5612f5377bb57c58", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "eecbb34bdf8671f383ab7d6feeacb6e1973c3f4c890c637e5612f5377bb57c58" + } + }, + { + "public": + "8e19cf96ffb31025a1bfb74ecf18bc0982d5c1ab03d0a1c76dcb5ba38f5ead34", + "address": + "471SLbc2E2j7J5QMCEAV6K2bGd3C3TjrGaMiBQxAnR7z9ozebfZdbjJWbGWq7fuBWWj6nfj2PK8xJVCT6eVu9b7oKxCaZrA", + "decode": + "8e19cf96ffb31025a1bfb74ecf18bc0982d5c1ab03d0a1c76dcb5ba38f5ead34ac48be40f72bbdb0e9754ffdfbffd7fbb2ba26d66540d3a894d13b24bcfa12a7", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "ac48be40f72bbdb0e9754ffdfbffd7fbb2ba26d66540d3a894d13b24bcfa12a7" + } + }, + { + "public": + "6d51ad1391438723e12ae80210090bc7ceefa5e5131aeb2c12c569e5a2913624", + "address": + "45mPJPfAqJe715SyK5n57QaRPh6WsAtHx8NZrZwr657s773aSMqd76qeQAxDxM9EHyTwRVxNFVSSSTJxJiJn9ft1Lm6rSJU", + "decode": + "6d51ad1391438723e12ae80210090bc7ceefa5e5131aeb2c12c569e5a29136247ea573b8b9ce0adf98d90a8ffa4a0ca10dbdb43a05e1679d4b63610bd19756af", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "7ea573b8b9ce0adf98d90a8ffa4a0ca10dbdb43a05e1679d4b63610bd19756af" + } + }, + { + "public": + "811a20969a67c1e837897b59b5ae14df9f4d3602ad4147e62590fa4a02520b54", + "address": + "46WsFRPkXDzfqo87wKrssqeQR8xRgzBFUfViHB9umxxzF81gT9EJJYYBo7mBe7YTM7LpNPpZbbaiRYwg5PbxXSgwH7qbwC7", + "decode": + "811a20969a67c1e837897b59b5ae14df9f4d3602ad4147e62590fa4a02520b546c5d25f8be2401408a2e25fa115a0e7679f10c147f1836bef8fe2ecd9802708e", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "6c5d25f8be2401408a2e25fa115a0e7679f10c147f1836bef8fe2ecd9802708e" + } + }, + { + "public": + "5381e6ee5b4957c8de2f38565ada954ee0f4f1d8a72809eb927b0a2ebc6dd4b0", + "address": + "44nepe755wkabfsyV6V7aLECDuhVHjEmngQM2hSUfDVDWYTJL6kZbyo6dHy8kkGV32bt1nzWAPbsMMz14moFuWXAA64Xe63", + "decode": + "5381e6ee5b4957c8de2f38565ada954ee0f4f1d8a72809eb927b0a2ebc6dd4b09f33292efb0bb621a251fdf9d6f00dd087fb78f38705107d72a52d2a11fa2950", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "9f33292efb0bb621a251fdf9d6f00dd087fb78f38705107d72a52d2a11fa2950" + } + }, + { + "public": + "b99863e7814e01f097b74b2bd1ddb89f748da8baf5e5ddd690ee484dc75bcbfa", + "address": + "48f32veKzithF3uB6f8YKqTfv8VkTf5dvctZVqDoXvnNiw2btyjPxEJ3rHMfY5yt7HXhkpkVGDEQ4VKh2rCLydhoAzq2zmF", + "decode": + "b99863e7814e01f097b74b2bd1ddb89f748da8baf5e5ddd690ee484dc75bcbfab12eeb34de598f110984beb4bb3c78b78f312cf951789da953e022921e69de58", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "b12eeb34de598f110984beb4bb3c78b78f312cf951789da953e022921e69de58" + } + }, + { + "public": + "1c13a9d806b7ff5cc1c2fa452d190093535c93df2357fee9bade5fd598d590c5", + "address": + "42gpVpsap22GWrm7eKJ3L3ReF72ko9pzyg6UTMehwt6sZyYMWUFC2qXRV3ZwYqKzCrDWHx5MCmPQ929dnBEp417U4CqXQad", + "decode": + "1c13a9d806b7ff5cc1c2fa452d190093535c93df2357fee9bade5fd598d590c524c7bee28d4cda92609e32daabd3634ac342f5368491e606de5d36495ffdff1c", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "24c7bee28d4cda92609e32daabd3634ac342f5368491e606de5d36495ffdff1c" + } + }, + { + "public": + "330b05541129753e1f23256734867b4414c6ec977de481b79c3e765f1280bf75", + "address": + "43ZJFDz9yB2BPf9G8UaQQJCPUQcgrSNc8XiFWcZ3cihLLiuD19FSnN8YHQ5V2q7STT221mc8Lq3nj3ijDE3PBDrJ1RFMLJT", + "decode": + "330b05541129753e1f23256734867b4414c6ec977de481b79c3e765f1280bf75e9a17ad1b94de5bb06f4fd49e2a012061543227e4f027410422cc1c578e44b03", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "e9a17ad1b94de5bb06f4fd49e2a012061543227e4f027410422cc1c578e44b03" + } + }, + { + "public": + "3c19152be2de5b8f9c8b639b245ce7e912d33745bd039a4f8bda1323df3cb3a9", + "address": + "43uCaCQcL66R2DGN5soknSfz7759mmF5TEJhXVFVxy8eVQc7vEjPnyZ8g2yfZP3uHxXhvjPaF5onET1sg6KsWhnA9MZ28e9", + "decode": + "3c19152be2de5b8f9c8b639b245ce7e912d33745bd039a4f8bda1323df3cb3a9d59508994ccc942ddfb6811effe357b793b32344108f579b88addf5e46d3834a", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "d59508994ccc942ddfb6811effe357b793b32344108f579b88addf5e46d3834a" + } + }, + { + "public": + "c0812a2df78774503bcf60d02caa3961996a353151822577651b6c632b76763e", + "address": + "48vDqDGxoJTERNGjVHteCGHKqSkzKk6fWLyHGr1qfDchBUMBBD6vXWrH6oAB8uS4qRe76DmJaxY6DGhr2MgQMSEkKhjYTYX", + "decode": + "c0812a2df78774503bcf60d02caa3961996a353151822577651b6c632b76763e9ae7909d9f41936041538c64dd4becddd617cf106b7bd25de3b2b12e97b311a5", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "9ae7909d9f41936041538c64dd4becddd617cf106b7bd25de3b2b12e97b311a5" + } + }, + { + "public": + "3faaa18b36f802d6ec839ca39467364ceeac5c23f8ec79628d35799476d7b024", + "address": + "4433Vab4gFbcx2nvQD79wBDsLiFeEfU4YHV5HkJgMQ3H75hdsEWxNU41HaLodGgZsrh1WvjhA4upnjWe8wET2UyuNwZShee", + "decode": + "3faaa18b36f802d6ec839ca39467364ceeac5c23f8ec79628d35799476d7b0245b2f77b0ce871d01b5620745b5628def32935d83918b2bfe282a87da547098c2", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "5b2f77b0ce871d01b5620745b5628def32935d83918b2bfe282a87da547098c2" + } + }, + { + "public": + "fd20edfb56c7da849554de67d9dd029b0bca34ef9587bc36f0022c3718ae79a3", + "address": + "4BDUDowyJh7PBE1hSWgJYHSw9B8th27f1ABxrAE38tvtUGjfsups7uB53vUfbGx1Xh6c3xKtLRsYD419c1pSgaMMQuQC4Xf", + "decode": + "fd20edfb56c7da849554de67d9dd029b0bca34ef9587bc36f0022c3718ae79a30b630c8314846a1837340428258abc21818e55d8ca08ea11f37c86b1e0d4c8d3", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "0b630c8314846a1837340428258abc21818e55d8ca08ea11f37c86b1e0d4c8d3" + } + }, + { + "public": + "56f2a92004887a31ac1ab5c83da038b26d49b1372dc8077624d06522e09c119e", + "address": + "44vDQyjyCDP9JtEdhgMfyZWqxwYxNPeXgLm9HiWqSueQTUQgJPpMevPBC68RuXKfsW24zwsSoD8zqYtzJYURS6NU57wwH9a", + "decode": + "56f2a92004887a31ac1ab5c83da038b26d49b1372dc8077624d06522e09c119e44e1c454be5fdc3cedd84c6f29cc7906640d85d10dd2f6beb21edb06b28d1924", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "44e1c454be5fdc3cedd84c6f29cc7906640d85d10dd2f6beb21edb06b28d1924" + } + }, + { + "public": + "016879c5e2dd6c9ec0c446f4361f3eb8624bcbb84d0537c20070ebb6fa2c9ea3", + "address": + "41gCku8TDLoTZ6yCaqzhL9XqkpPynfg9kZT4Tw1kYte9UPmhSQUUdo7UHxv6b8oPuzf8sfWTXHj2iGFc9qknwKo9LWqq5yP", + "decode": + "016879c5e2dd6c9ec0c446f4361f3eb8624bcbb84d0537c20070ebb6fa2c9ea3c5070a960f2c0aa32bcd29c87889b9e3ffae5681d2492b5b2f4a47ce3bf41cac", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "c5070a960f2c0aa32bcd29c87889b9e3ffae5681d2492b5b2f4a47ce3bf41cac" + } + }, + { + "public": + "936786e498fd3c3dfa4749b0f13e2477ce12a1ee7c6976487a42ff86d9c9ff1b", + "address": + "47D6SZrS7asBNG8UnSFZxFM3FyvW2RUiqD889zN2tCqk5ZQHvZFeAXf16BugtzS47RLS4RYLgJHYp5KNd9Shiw5YB687S9E", + "decode": + "936786e498fd3c3dfa4749b0f13e2477ce12a1ee7c6976487a42ff86d9c9ff1b411ec083b1aa1e0088e79d09efeff8742d38d5da1a652d19ceec9472d7a32759", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "411ec083b1aa1e0088e79d09efeff8742d38d5da1a652d19ceec9472d7a32759" + } + }, + { + "public": + "a299d28d19f5a6d7f52e280b65390d52bd72b6bd576d7a63cb1d0169d586b9ff", + "address": + "47nVhGpNwsbd84WhtdAxB6EqgZ5tQsEaDHh82NLkDkVejpLCXpFCDRK3aGYGsrSqDcHJwetdeSJYmSgqpA24vzKt4fAvgNE", + "decode": + "a299d28d19f5a6d7f52e280b65390d52bd72b6bd576d7a63cb1d0169d586b9fffafebca2bec22a0f62eeeac31dd5136181d9fd788e758e9992743608e0682320", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "fafebca2bec22a0f62eeeac31dd5136181d9fd788e758e9992743608e0682320" + } + }, + { + "public": + "2ccba4c6598b6f29b2537ebc1297b9881e7d9113c040eae4e1266483bc6f3a61", + "address": + "43KZoXMBsQa7yWXgYhWPGLPmXVqYouNRffHREQjykCkyHN7sZDF74FAhQCbDYAAjiD5GmnFQPbMZi4vgmXGfX58JQWVMCQx", + "decode": + "2ccba4c6598b6f29b2537ebc1297b9881e7d9113c040eae4e1266483bc6f3a61d5aa6640041ef1f1892a3b6a3c8196198a4b7b951c6a4917783f55c7a3da27d0", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "d5aa6640041ef1f1892a3b6a3c8196198a4b7b951c6a4917783f55c7a3da27d0" + } + }, + { + "public": + "683ea8053725734bd27bb390c9a4002bfd1532e07441e0bdd0e567bb3568a784", + "address": + "45aERhsdfDcDga5Z6Yp5cT8MkBjBAC7XuYkTGpM86JFYPF2raGh4AXcQd4UGEUNgDh3iYysmbx32Y6mW4Revehat3fhhkpu", + "decode": + "683ea8053725734bd27bb390c9a4002bfd1532e07441e0bdd0e567bb3568a784f9cf033c71904b8d399c74b00b82b4103d8538de512259227aed9ed653d00517", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "f9cf033c71904b8d399c74b00b82b4103d8538de512259227aed9ed653d00517" + } + }, + { + "public": + "88f031c1841dc965a1a4e3c678a4e9b8419de1325b8fbbaf4da97c089ebe31ee", + "address": + "46p6DGGmHbeHzxDt3vS7ptXpWzR2jsa3LWKfQqPEiFMzgq3EC9WtMUfNGAMbcYNzR2Ccq7F4WRy5FUtdqMbYshJ5RgTAAXQ", + "decode": + "88f031c1841dc965a1a4e3c678a4e9b8419de1325b8fbbaf4da97c089ebe31ee1e170589c8961c7f1d15e07d846b0d45753e5ffc9090c6a6beb63af6f1347eda", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "1e170589c8961c7f1d15e07d846b0d45753e5ffc9090c6a6beb63af6f1347eda" + } + }, + { + "public": + "aa59bad4e8699eaa03127c62236b3fc5185fb9b84ee6a3b0ab06e1901c44d071", + "address": + "485Xd6KjLvZVSL71kh8amkZy55wgcwHuUWYuJ3eCo9tbL4id486bBg8gPdHW3bLwwreFG87oXMdL7dydeknsadNNMFomyWo", + "decode": + "aa59bad4e8699eaa03127c62236b3fc5185fb9b84ee6a3b0ab06e1901c44d071fa0ec2b8e46e05eb7f7cea1290e39ddeadb486dbbbb124dd1149517697cc8fb3", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "fa0ec2b8e46e05eb7f7cea1290e39ddeadb486dbbbb124dd1149517697cc8fb3" + } + }, + { + "public": + "313b220a47b1abec2ef412f7cc75d4f6f163f986bf8e63fb600f3ce3e992e1f3", + "address": + "43VKF5FF3rzgWGwvxqFEPuiJf31q5EW9xj3eyDGe4RiGhefkwG1as47Y9RtauPmBcd3ZQpAcW9QeYdr4uctVXkm8EyrfGct", + "decode": + "313b220a47b1abec2ef412f7cc75d4f6f163f986bf8e63fb600f3ce3e992e1f306f6572b7cd244ba34acb7e199f7fa0f4c4f32213a9c6ddc49aba76e6a561b7b", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "06f6572b7cd244ba34acb7e199f7fa0f4c4f32213a9c6ddc49aba76e6a561b7b" + } + }, + { + "public": + "7ec5485f28c7b961c07885d75867845516822488233937e1bcfb5ead9cac4dd4", + "address": + "46Rk3AzabexHMKHdPCiPaTFETeZao8pRLekwiePb64x4cWcRS4x9Stz7Kxt9TeHAR79SLfzF7D2dSirDLNatWxCt41CjMX6", + "decode": + "7ec5485f28c7b961c07885d75867845516822488233937e1bcfb5ead9cac4dd44db7b556baee1b25d38f0fc81ac04a3270d9d439af9ca5fa321fdccb6784851a", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "4db7b556baee1b25d38f0fc81ac04a3270d9d439af9ca5fa321fdccb6784851a" + } + }, + { + "public": + "09d2d91b8cce1845f010d878c51a6db39c258fdd513160e2067ba90ba41fd139", + "address": + "41zha9DmZjuChV4g7wQnEpX3ScA9FAEoReojGcFV3gwAAbo49aB27BVY2eoPEwJTfn9Y2kicLP7bPA1YSd1jK5NdMi9oEyg", + "decode": + "09d2d91b8cce1845f010d878c51a6db39c258fdd513160e2067ba90ba41fd13964df82eeb90f20b981d4813e62bd19330707514cca4de235dd0565b1127f66b7", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "64df82eeb90f20b981d4813e62bd19330707514cca4de235dd0565b1127f66b7" + } + }, + { + "public": + "3dc6e7bdfd047632324b7d5567f1c0d8fbbac5bd57064878c4557e72c713e265", + "address": + "43xtcTr4d739PyBKC6qjRydJ1adEYjGETMCbFRiVqSVfHzBsWcQRFA7jF7VpJ7XEjyCFJ5nf13KsRbSmSCzscyso1Rj1eo2", + "decode": + "3dc6e7bdfd047632324b7d5567f1c0d8fbbac5bd57064878c4557e72c713e2658d772f95af6558fc8e669066d7a900433cf90eaf2bae44cdedbdb59f1785da03", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "8d772f95af6558fc8e669066d7a900433cf90eaf2bae44cdedbdb59f1785da03" + } + }, + { + "public": + "7a50b48a158d452cb85c38ba413ae1f45c6730db36ca793f75b87d847b6213b6", + "address": + "46Fx4fZG3Cg8UqoxEVjikphscDzRXqskLBce7yC2qbg6XTLNPSBigJPFwajXV1zyFB3qcBmbiMTW9Pd3EXww8tAiFh1LxXa", + "decode": + "7a50b48a158d452cb85c38ba413ae1f45c6730db36ca793f75b87d847b6213b612a10ff9ffe9145953a77c983a5cfe10f7b27032a52532873e8644fa1cee9782", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "12a10ff9ffe9145953a77c983a5cfe10f7b27032a52532873e8644fa1cee9782" + } + }, + { + "public": + "b29a2ee93cb399a775901b5c0d4688399b48a428576ee4c22f0682bc6c1491ea", + "address": + "48PfZcs6WD6V1ZjJmw1L4FAdreSxjj83dZUprXYwRsPEgE6xEDVJzQFVPXthAgjDvk4V9k48FJkK4aPFXPNK4oK2A3YT57B", + "decode": + "b29a2ee93cb399a775901b5c0d4688399b48a428576ee4c22f0682bc6c1491ea843148bf68e5f0a9b9452b06f82ffd14d66c53a8bd264bc7967189323192c550", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "843148bf68e5f0a9b9452b06f82ffd14d66c53a8bd264bc7967189323192c550" + } + }, + { + "public": + "8e01629147c5bd16941f91b73c8ccd4072eb4bbfd0400ca48d8c0c167c44a1f2", + "address": + "471EB82kEDA4n3N9MvFgpkBnEdqmcBpF5UXNRmzMwEGQhZ6kMu826cMaWznNXdsjKAEiy87Z5bYH6hWsJ8LpoAh8G5X35Xo", + "decode": + "8e01629147c5bd16941f91b73c8ccd4072eb4bbfd0400ca48d8c0c167c44a1f27400815528894ec862d7de6dae9195520c44b08ff3e191f2391ad8aaff759b85", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "7400815528894ec862d7de6dae9195520c44b08ff3e191f2391ad8aaff759b85" + } + }, + { + "public": + "2e8cb23659354b7be1979bb54e06dbc17aec3cdf4410d72a2fd5c8938bb38b6c", + "address": + "43PRRCHv1KGMioaKuoRtM8ZMzzx4uA9Nn84GPdNT6VTpK7YNdQgH5GsSXp1HQGH69aAajV2aF2F4oa89RwnVw8jNMATZkLm", + "decode": + "2e8cb23659354b7be1979bb54e06dbc17aec3cdf4410d72a2fd5c8938bb38b6c4a092b465d49f898a422dd50bf1e753948dc2a740ec7bcc607d88778bd1465b2", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "4a092b465d49f898a422dd50bf1e753948dc2a740ec7bcc607d88778bd1465b2" + } + }, + { + "public": + "1fd2d4e42145ae74563356c5e23273ac39e18ceadfe536a294978f28ab7c8773", + "address": + "42q48pBey8qLTcVWGvJMcWVoov6sPz1JMUCEZqxgBDGJLKtQPFoY9AdgqMYomRUgj3T5bwgzqjsWm1y1JiV33aNj4CXPism", + "decode": + "1fd2d4e42145ae74563356c5e23273ac39e18ceadfe536a294978f28ab7c87738a5549c28b2bc6ee266ce8faecd23a9beb134c15c4c2b605c5e2e2cf3505401c", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "8a5549c28b2bc6ee266ce8faecd23a9beb134c15c4c2b605c5e2e2cf3505401c" + } + }, + { + "public": + "765ccc031de7461051cc8020f80ab55640203e2c52c1d90b5f27746783932121", + "address": + "467GARKYg1K3jKYyrqXTw2FRjo1NXSQCx2uKYT7548xx6cC7rW7hqyvD5PcKhE8HFyKe3EPp35hWq1iEYFpC7cZN2xV48NQ", + "decode": + "765ccc031de7461051cc8020f80ab55640203e2c52c1d90b5f2774678393212185454013afd9a5483220b8905c458c6f6ed0d44d568d82044014fa47626c4111", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "85454013afd9a5483220b8905c458c6f6ed0d44d568d82044014fa47626c4111" + } + }, + { + "public": + "7ff1abe262aa047321bd9e81ab9d35535a4f387b9979953d5d38a090959cc29b", + "address": + "46UKd6Hz9kXLFvWtC3rKpYEwdKrQURKJcBGJvjhyf9F7T3q3yAZ6BmGXwUX1jj9hD53JRYSQdrSkp3RQgjw175qc6HLaCxj", + "decode": + "7ff1abe262aa047321bd9e81ab9d35535a4f387b9979953d5d38a090959cc29bbc4337e69d73d7b8f935d256fafc7c0dc0d0d7487637790e7924f43de2db432e", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "bc4337e69d73d7b8f935d256fafc7c0dc0d0d7487637790e7924f43de2db432e" + } + }, + { + "public": + "1c23f92b42d5d402b2b71ab0d9fc3044953ec1f0dabd5422bbe2b5e519632872", + "address": + "42gxctjDRHu1TB9k1VDyTDCULmoA276Ls6oxqE85d93MLATB1YGaVCRZwbrhGcwRJGfsXrHKi3KLn3DHuenKKqCREcGJJjM", + "decode": + "1c23f92b42d5d402b2b71ab0d9fc3044953ec1f0dabd5422bbe2b5e519632872915bddd325ccfec4f198f102e40bc9e8655d6b252872a30d396693de71e1a678", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "915bddd325ccfec4f198f102e40bc9e8655d6b252872a30d396693de71e1a678" + } + }, + { + "public": + "e4a5348225b0f86aae9aab63ccb7eb454f82bd8ce9361a6971566e2cd8b44a33", + "address": + "4AHf5UPcGEsJqx57DYp8tSCbQB2YLjmxMJdvjoR5mFfP9Y97FTeKCgPXSXWLdpD45nJCtKmj7ixXPGR3UqWeX8ds5LDXXyS", + "decode": + "e4a5348225b0f86aae9aab63ccb7eb454f82bd8ce9361a6971566e2cd8b44a3309eb628731aa58b5fd4ed065635a1166dc87d2fb4f89a65c284efd9d8c40f626", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "09eb628731aa58b5fd4ed065635a1166dc87d2fb4f89a65c284efd9d8c40f626" + } + }, + { + "public": + "6b428b4ce2658f6e3701460010a9823d4a5d071e9c70efa133434da4f3333112", + "address": + "45groc5FwtSKSDtbSh5UzDBFbUjWCXdwcTxqyGE2DAPa4ANXk75z6Mye3tosfAouGbSayxCyari7NezwRfQdwdL8Ph2kP4K", + "decode": + "6b428b4ce2658f6e3701460010a9823d4a5d071e9c70efa133434da4f3333112e6dcd74a0ac21cdd81bc6283eb83d898f7d3a99fa0442de32e4918257a46f5c9", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "e6dcd74a0ac21cdd81bc6283eb83d898f7d3a99fa0442de32e4918257a46f5c9" + } + }, + { + "public": + "9b1553ede0100e5ceeeb7e97ce90b8444d72551787f2d68ad761f0fb48fd317c", + "address": + "47VyMRxLYQMGYa1v2jEjwDCRcxt6F3vHsQDwE1HuKH2gMsnKHWtpyFPgAeD1sDpSjXcgoDpVVWhEDAGffFgNkcESNRfHzXF", + "decode": + "9b1553ede0100e5ceeeb7e97ce90b8444d72551787f2d68ad761f0fb48fd317cce83ad4307afcaea28dbf79fed5e7ed55a83bfcf5d2626376c215144a867dfbd", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "ce83ad4307afcaea28dbf79fed5e7ed55a83bfcf5d2626376c215144a867dfbd" + } + }, + { + "public": + "34f96da7dfd1bec84c904288783f9aaafefc871539c98eea5d4006710a53c92f", + "address": + "43dYSrVwfDXaW9p99czaZXVbsoAsnSJTFgCdMq2Vz3Yt8tyWje5XXnEFBta2gSDFGwP3gUNLCCVkfjA6U7ioTVaE3GQPBGB", + "decode": + "34f96da7dfd1bec84c904288783f9aaafefc871539c98eea5d4006710a53c92f352f6b4786f28754d2ae9bd368772483ce436318ad55dcfc09fd98d8bec70714", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "352f6b4786f28754d2ae9bd368772483ce436318ad55dcfc09fd98d8bec70714" + } + }, + { + "public": + "83fb0b11d4338899f2193b321dba5a7acb5b5f0b0231dbf70246468b8bd65a7b", + "address": + "46dCDFdpeoHSkU2ys5zSufMYG2kB2kSEWiKJ9PqzzokmMeissXZxWSXUrrRDQpwdeRLZipswdwPejM3j1EzzkSYoSiBPDyu", + "decode": + "83fb0b11d4338899f2193b321dba5a7acb5b5f0b0231dbf70246468b8bd65a7b75e6d01a7a2cb4a68fa910573c7b4a74f76993ea528f1477da5e0b40a2ece0e3", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "75e6d01a7a2cb4a68fa910573c7b4a74f76993ea528f1477da5e0b40a2ece0e3" + } + }, + { + "public": + "e84f76f9aa4ef8242a335ec035cd6ebabda1137119647094dc047293dfd307ab", + "address": + "4ARiJaJXUzb73qyGJWLBg9YEcuctB8PzPRu88zQBtZbUVfk4P9DufrzKVAuXy4JkgS3p9X6dvJDFdULtfo5FGfxCADsADLb", + "decode": + "e84f76f9aa4ef8242a335ec035cd6ebabda1137119647094dc047293dfd307ab6504f54890f88b6e84cffdf074435310d12d12c1600cb8a37908ccfb7e911151", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "6504f54890f88b6e84cffdf074435310d12d12c1600cb8a37908ccfb7e911151" + } + }, + { + "public": + "abe9647de0bf228dc323429d10f788e238f18f50a777ccabdd07285b1051680d", + "address": + "488xeGqyCy7QiGkDvzJCKHeqeBLybzEmyVkHq97LjWbZ3GtxfNRYwpmPhv8tbzGvJhN9w1bjshjedYcFTfC6SbX3SCdK6wY", + "decode": + "abe9647de0bf228dc323429d10f788e238f18f50a777ccabdd07285b1051680d98836a60818ae287bf3cb54d97d1de7e78af135d992e8ebcf86a2ce424392edf", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "98836a60818ae287bf3cb54d97d1de7e78af135d992e8ebcf86a2ce424392edf" + } + }, + { + "public": + "e7a39f63d025092c14c34716b9b3928e7dc2fdaf7155be0609d9da71b2a316d9", + "address": + "4AQEjNsqUsi8NeETzgm2sjQqLw9CyvDwj21agtnMeBdXdLfEvTGXJKscowwjUzPJWxfYhfTjjjNLL87jv9e3TvfxJE6q6pJ", + "decode": + "e7a39f63d025092c14c34716b9b3928e7dc2fdaf7155be0609d9da71b2a316d941a4002322624ad617339d13d9218de6747381dc8ccb452a8b86166a77841798", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "41a4002322624ad617339d13d9218de6747381dc8ccb452a8b86166a77841798" + } + }, + { + "public": + "eaba117c6f22c506047326daa048868805bf2f45e786ac516aa52fe3bf8be03b", + "address": + "4AX2MGk7nNp21NpMB4VZMoPkb7VzHd9ddEcqtKdDw6LoAzyBC5pyAxtYGsfgasXyxqT9o8fjq15R248MZwJx93mVLyZ6ayk", + "decode": + "eaba117c6f22c506047326daa048868805bf2f45e786ac516aa52fe3bf8be03bc868f4e4954bddbaf91f0351ac8ab69c59b8353ecd364112b1a5f0a257eb2cb1", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "c868f4e4954bddbaf91f0351ac8ab69c59b8353ecd364112b1a5f0a257eb2cb1" + } + }, + { + "public": + "4e5f35bde9b01d80d077a7c22e2c7e60a02793cee5976948accb87d34622a7ba", + "address": + "44bN9JLQJNGNYfJKH2qi1jHAPavqMRmeQDA3E1FYKFtaY96mcghx2zJCvFw5UMayFjgBNNcJWrCk9CjybUkaTvpUM3JDXbL", + "decode": + "4e5f35bde9b01d80d077a7c22e2c7e60a02793cee5976948accb87d34622a7ba2bf9bde13e6857474123dafbc7fb7eea3c0b1609a7d2aa4631d2c5ca0071f5b1", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "2bf9bde13e6857474123dafbc7fb7eea3c0b1609a7d2aa4631d2c5ca0071f5b1" + } + }, + { + "public": + "d4f369a67ad6e534fe74f92df47afe3efef92d694247161f320c3ea11467b2e4", + "address": + "49hALN1U7VW9s7G2W8xhBsBY97zw3gGDB6DdrZCHHu3FfF3CvCQhNmChrmpQo1SzNtDGmPmkWJmJD55iHwsNEhseESBQSEX", + "decode": + "d4f369a67ad6e534fe74f92df47afe3efef92d694247161f320c3ea11467b2e4a25a2a144e9347f446612652aa65e1495e4f7ed37e3b6e18666fa67f02733177", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "a25a2a144e9347f446612652aa65e1495e4f7ed37e3b6e18666fa67f02733177" + } + }, + { + "public": + "5e4801276a24d33ccbde270e8837585f7f2e149db7aa6392c2f4c6123d52d2bd", + "address": + "45CLGzu5WEEBAoT1PfmfcKGySSJ8co8NeRYmi9L8UJe5YcvWRRuwtZNPSRiQShdn7SJ61CAM9JQr4J1bAUCUWB92UQCdJK7", + "decode": + "5e4801276a24d33ccbde270e8837585f7f2e149db7aa6392c2f4c6123d52d2bd0a2e288d675db186267b0ee1689dc96626efefe81060c165b273877557b791f2", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "0a2e288d675db186267b0ee1689dc96626efefe81060c165b273877557b791f2" + } + }, + { + "public": + "1aebb3bc0ca26aec4c4a7b66ff615313d94a7fc9598bc110c3b97b6f4575504f", + "address": + "42eH7nAVrXjgXPRts51ANE4KZNduiPphN3odxHnWfUrBENHffHPm14H6FaqRaBzVxu6gHprFYw9JPDbE9jtPHwK8NW5qULp", + "decode": + "1aebb3bc0ca26aec4c4a7b66ff615313d94a7fc9598bc110c3b97b6f4575504fea8ccec86b9b7e1f65736315670ac221f16b9ab3b28ef04b45799287caa5f3be", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "ea8ccec86b9b7e1f65736315670ac221f16b9ab3b28ef04b45799287caa5f3be" + } + }, + { + "public": + "48e2a09335f235fdb04fd2f0ce02d57676e1818b9db4b07b8a176af5add426d9", + "address": + "44PJhiJACPNjS6hquewXQgLpFfe62ftPhMfVFgkq2uqodTHfgGMytLM8vG5CZ8tuEiULxPTg7LsgM8tDhj5kyjHUAR944C3", + "decode": + "48e2a09335f235fdb04fd2f0ce02d57676e1818b9db4b07b8a176af5add426d9f08b3a4839abae2f571b97534a6f93a37ab9e3b22edf2a2f2140b0dc950d1353", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "f08b3a4839abae2f571b97534a6f93a37ab9e3b22edf2a2f2140b0dc950d1353" + } + }, + { + "public": + "0d45bb8969aa7759d59eb40c34f9fd76380f5186d6d46eacff245822fd1e5468", + "address": + "428HDt95p4nG2WPcwgt62gLmsbBRabBcyVwHV2VAwdRMJU3Xp3YXUpDfVATBR9JfWZhqk3u7aufFFaZLZH99vfLVJ9EmP41", + "decode": + "0d45bb8969aa7759d59eb40c34f9fd76380f5186d6d46eacff245822fd1e54686c8b802083231ee61715f12b412eb2f42b2fdfe130fc82c8a09ddce09be28a97", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "6c8b802083231ee61715f12b412eb2f42b2fdfe130fc82c8a09ddce09be28a97" + } + }, + { + "public": + "0617474a78be5a777968f0539072f5a919595ed4fb6aa6bb172c37894c025346", + "address": + "41rVj67mL8yLz3u4FBB72tVHUPsQPdJBXYJ1ig4DRv26Cs9TWWSxRV8Ryqdqaiajz2BRxN62tn424edpg4KyY49eHJhbkjD", + "decode": + "0617474a78be5a777968f0539072f5a919595ed4fb6aa6bb172c37894c025346ef0768b83f88479558736c94717b2b3e5bbfc55554fb41e1010ef39157ec3990", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "ef0768b83f88479558736c94717b2b3e5bbfc55554fb41e1010ef39157ec3990" + } + }, + { + "public": + "c5bc45b6bc113520c52f023aac95ef0efae6d823b4c4ae780e20ca9edb745c80", + "address": + "497ifj6n9GQ6UuvX1UE2Tp3WKtHCi1KrVM5gmj9R7xpBNZyTUeP9R7h5R35xPYHzt2TqYeQhuN5utQKz4gGxyS5L3h8rf88", + "decode": + "c5bc45b6bc113520c52f023aac95ef0efae6d823b4c4ae780e20ca9edb745c80f31dfa4facf3641a645d75fe9a4f83a072a97e0cf369538b77012012e5514f17", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "f31dfa4facf3641a645d75fe9a4f83a072a97e0cf369538b77012012e5514f17" + } + }, + { + "public": + "3dfcbc65fe13a63dd93151e42a8fc7be3a281f2b5c94963dfb1e3b47a60a0df4", + "address": + "43yMRDbvwKKBM1QgaSUmTCYpSdVfKVezyBNHyWrVMjnthvUJfJfKRckYejGm4wHh7dUrRi2htha4hJ95k9Rc58yqUU8h76b", + "decode": + "3dfcbc65fe13a63dd93151e42a8fc7be3a281f2b5c94963dfb1e3b47a60a0df4a7f70972b9f749bd39d85b6e894c60a6846b03ac99d6aa66782c4e392b0f2cf3", + "params": { + "net_ver": Uint8List.fromList([0x12]), + "pub_vkey": + "a7f70972b9f749bd39d85b6e894c60a6846b03ac99d6aa66782c4e392b0f2cf3" + } + } +]; diff --git a/test/address/xmr/test_vector_integrate.dart b/test/address/xmr/test_vector_integrate.dart new file mode 100644 index 0000000..6793ab7 --- /dev/null +++ b/test/address/xmr/test_vector_integrate.dart @@ -0,0 +1,704 @@ +import 'dart:typed_data'; + +final List> integrateTestVecotr = [ + { + "public": + "041e74983374c95f1ae1be43916e3374c1d5efc1e049b143d69cc3d4856c189c", + "address": + "4BUqMSeJfNQGudzEJNvzQ2LXh4tbUdW4YCM7mq55edxBT7t1297vwCMZSnJwGvEKEKbH8hGmhZZAGhdHbp2te6AA38ZMi4knaCKLprMPni", + "decode": + "041e74983374c95f1ae1be43916e3374c1d5efc1e049b143d69cc3d4856c189c2728614da40b12c1f9174b1969b744ccef87b9e92dde59f2e27e3390249e1f0c", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "2728614da40b12c1f9174b1969b744ccef87b9e92dde59f2e27e3390249e1f0c", + "payment_id": "bc7ce989aa900caf" + } + }, + { + "public": + "3ee333eae72465e73882f06d86ca6f08978e8f2dc57c0c5e195c62086b8d7d02", + "address": + "4Di1CSUY6fnfg8bL2tDrvS2SMVfKaZZfZGjsyKsSih641LUNchchhAr3fP9zQy8oVM7MjWhK7TrbCZ8AY2VPmxNrjkTTVvgctWPJPxL5vz", + "decode": + "3ee333eae72465e73882f06d86ca6f08978e8f2dc57c0c5e195c62086b8d7d0201d5143f3e708b0fe9e28ed4a5f91c260240ac3718dbd3c00dd311ec0cde2fff", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "01d5143f3e708b0fe9e28ed4a5f91c260240ac3718dbd3c00dd311ec0cde2fff", + "payment_id": "94be6ffede8fdc9a" + } + }, + { + "public": + "80cc00277cff37205335e299bbee394475683cc2d844446d1372eb4359a5946f", + "address": + "4GCsMkRThYa6QbRAQ2WQpYCT8o5LV1mVVKFB4sef478oKfAynpiuUzFaUPuZW3j5Kj9R8NpPFWygmhK1gpeSp6hUE5fwrhak8AVEWXEz4V", + "decode": + "80cc00277cff37205335e299bbee394475683cc2d844446d1372eb4359a5946f8cbab39dcc2214c81e32edd165f29e3250de42af074b4af1004335195912274e", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "8cbab39dcc2214c81e32edd165f29e3250de42af074b4af1004335195912274e", + "payment_id": "3415a7f77d7e2a77" + } + }, + { + "public": + "3ba11ee03b36a4ccf16a3f938a3be5b426e942dd8e38dea473ee5359daecf822", + "address": + "4DaqrDsxq7HbHCqZ879wwJX8hbvVemhQRUWQ8DsEfW796jzhNQwLedoV9BYdsFdm9QRx2vBceuv6LPGxr293XWrTBP2Q9bMwRXDLkDbZAZ", + "decode": + "3ba11ee03b36a4ccf16a3f938a3be5b426e942dd8e38dea473ee5359daecf822532e36727caa82a83e939beff972579528ce9d817be3f9852cc2d786687dd83e", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "532e36727caa82a83e939beff972579528ce9d817be3f9852cc2d786687dd83e", + "payment_id": "0e6b8d66e6b3a8af" + } + }, + { + "public": + "e4e8e96a0f35db6580b2458052a826f266df55567006270f3bd01dbbb772cf1b", + "address": + "4KzuoodnoykHyhogpqGiqBhYbtbWGERta3YnZCLHxsaN5eshfdrdvKT6EZE32AxdjG9xmf5aVaK4C587uC5TYCCMNS41Q15ew1MGCaymmM", + "decode": + "e4e8e96a0f35db6580b2458052a826f266df55567006270f3bd01dbbb772cf1bd188466d368a521f4a546e9824676b3593de4f9e60edc918a5f421cfb73ad680", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "d188466d368a521f4a546e9824676b3593de4f9e60edc918a5f421cfb73ad680", + "payment_id": "2214a37021527486" + } + }, + { + "public": + "f163b9059acc39a6d70e3338b9b6e4bce95a4b8532c91241678184b421289bd8", + "address": + "4LULjK6nbptUuZLhFgnsrBYbgMYUYXn7bBwWDtuRMqqUdBsF86W5BFJXNRNjNLagBALFP5EweDTCwGgPwq1xhNNH6fbvkLfDzBFNe8a8XB", + "decode": + "f163b9059acc39a6d70e3338b9b6e4bce95a4b8532c91241678184b421289bd8599b545b4bbaf5b590f708e1ef154173136f78e443ae8c5dbd71e43c87887621", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "599b545b4bbaf5b590f708e1ef154173136f78e443ae8c5dbd71e43c87887621", + "payment_id": "df448a6e02bfb6bf" + } + }, + { + "public": + "94e43d6ac7703921e9b08abd9dfc3b001c2f9cf1f902bcf776bc645228d996bd", + "address": + "4Gy33F52e726fzqLNFsSEv124xAYbRvQKiPi7xGzqWdjYmrLiqwcxpJ5Km9dKY3NdLR2S6J94EiBsjnxSzs5g97mJW8gkyR7FdH5oVvgiQ", + "decode": + "94e43d6ac7703921e9b08abd9dfc3b001c2f9cf1f902bcf776bc645228d996bdf5c78916c50d0b19d92c3056af4faf8fa26150e691f732ffd6b5f8d099d00068", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "f5c78916c50d0b19d92c3056af4faf8fa26150e691f732ffd6b5f8d099d00068", + "payment_id": "a3aaa9dcab14e02a" + } + }, + { + "public": + "eb4f2715b0569c6904158ae9ecbbb23f4a2a46dc92bb3ff56c209ab7dddb6e7f", + "address": + "4LEybynX7fhJZnc7SYt25XBazPVK5gSvai3uTYTQzmgHNPdpzvcroV1KPkWw3Fkr6SRRqeMfY6UQ1aGfE5ttVTpCj8bS8jALF4wB8GW2Cy", + "decode": + "eb4f2715b0569c6904158ae9ecbbb23f4a2a46dc92bb3ff56c209ab7dddb6e7fe24d94aa916d886df5c62d6566dcf7920c0725230bd6fac6e8823922435749fb", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "e24d94aa916d886df5c62d6566dcf7920c0725230bd6fac6e8823922435749fb", + "payment_id": "e2647dbea37de459" + } + }, + { + "public": + "34ae525d83f216160a023526a1d7db77c2c3d5532574a850ab7da4892d7aae54", + "address": + "4DKa4Qi32Ld4gooDDxiQhxM2q8Q2KZR2FEVbjrFvxYe9FBgxHmWvNbSDaZrNrFvPsqShhwUNGaQpZaRgzikXu1fvd3yjGPBKfe4LziWVx9", + "decode": + "34ae525d83f216160a023526a1d7db77c2c3d5532574a850ab7da4892d7aae54cd65a356c900d94b340cbe3b63012499a94289c1f63dfac7d6cf13b4a55471d7", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "cd65a356c900d94b340cbe3b63012499a94289c1f63dfac7d6cf13b4a55471d7", + "payment_id": "897359c4e063adb1" + } + }, + { + "public": + "15b4f3c77857a58f745ddb59bd80bc157670264ed3e649fcc6d6c6a7bec0023b", + "address": + "4C9VTw7YzYcQzgxUCG2LHy4bDSqnwakPSjHFYbyTPJCHB2tAXX4KPK5NgUzSGb4Qas5qWxnwyTDao4aSqxGk4SmCPbtnfxSPZXVF7sV1uX", + "decode": + "15b4f3c77857a58f745ddb59bd80bc157670264ed3e649fcc6d6c6a7bec0023bfae81726c67af0819ee25a9ad6fca01cea5e4d8c6040681562254a493605cf87", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "fae81726c67af0819ee25a9ad6fca01cea5e4d8c6040681562254a493605cf87", + "payment_id": "204b2312da9bc87d" + } + }, + { + "public": + "1014cc00fd08aa581cc0ba55e64a806a92a8a62f59a1a3d518991b584660a018", + "address": + "4Bw8Jve3NhfFjoPeqAdJ8PJpteccVMCYJceJLjuSxjA755wGnM9vZoYePuqPTwZhQoDm2JoW21ST3N19vooXVUm9G36ttUBUk2aQuLiabe", + "decode": + "1014cc00fd08aa581cc0ba55e64a806a92a8a62f59a1a3d518991b584660a0186c577525ba3713df91f8391b2a71244c47f842e100899a7d9110d9e4f85bcc59", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "6c577525ba3713df91f8391b2a71244c47f842e100899a7d9110d9e4f85bcc59", + "payment_id": "e5518c7f484d5fd3" + } + }, + { + "public": + "45a0f53a30327b5173b1a4936240bed1f01c7fd2b88b9a7bb75c2d1b318a56a6", + "address": + "4DxpaE9GKQ6EdBmrDBM1hoc7fLRiaSc3bMhCkYpfDQhjUsGGE15G28WFgHWSMPcUJj1dhXHkhbtYuEtkwktQrdoJb9QSrzifzPjSnjdkQv", + "decode": + "45a0f53a30327b5173b1a4936240bed1f01c7fd2b88b9a7bb75c2d1b318a56a69a825b07e6e92f57bffdec584554e803c86ab7d2b99a16530e9c620d9c1145cc", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "9a825b07e6e92f57bffdec584554e803c86ab7d2b99a16530e9c620d9c1145cc", + "payment_id": "23970599a4c40ae4" + } + }, + { + "public": + "581e7417b969de630d75372a918cf27999b531d6b3082ebfc9dfee8e04c60eb0", + "address": + "4EfTiVfEEboHZwAzgcygVFMLgESA4SyXBZ5bBknbbRdwWa5VCG87aZRNBty8gVEsEYeifzQJKfQnzBGuyma7bbwqj5BeTXnLmwD5reAtae", + "decode": + "581e7417b969de630d75372a918cf27999b531d6b3082ebfc9dfee8e04c60eb0ca0d6992c6927c7eac880278550401e1810c9de11a9f973d6d2b42b0c11d84fb", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "ca0d6992c6927c7eac880278550401e1810c9de11a9f973d6d2b42b0c11d84fb", + "payment_id": "8867a5853735002b" + } + }, + { + "public": + "6774a20689bacfb8d7216387a47f8b7629e4e52b446390e92795b837097746ee", + "address": + "4FFAqcNFf82XvBcVzqeuUvLmLTKxWbzM5fztjYGq5w9Xgy5K9jZY9kjT9BD2kxXZeXUbrytYAJk8pAFbGBNFrsbGG1LtoNuEk2L9XxkQMa", + "decode": + "6774a20689bacfb8d7216387a47f8b7629e4e52b446390e92795b837097746eef225411f918b209c495ff38c211440a504176f6d28a329374fbdac7449a57359", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "f225411f918b209c495ff38c211440a504176f6d28a329374fbdac7449a57359", + "payment_id": "b6e92860e8dcc14b" + } + }, + { + "public": + "8f5604aa3b4b5016be6f1b71bb43cb54d826a93bcd2807cf9a4509d0943f925b", + "address": + "4GkppCdg33V4oeMwA3P1YNFC6bDRRKBBCbj1KG7bgdSZGJo59BMFLxSEGpfYS8yQbBas38vK78cFkRpwRhSFVkcyfzuzn1qufEQ43dqiJY", + "decode": + "8f5604aa3b4b5016be6f1b71bb43cb54d826a93bcd2807cf9a4509d0943f925b836c4a9c1bd1eb4f5a52b9fc3ee08aca73ae6732c448bb946d9722500cff12e9", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "836c4a9c1bd1eb4f5a52b9fc3ee08aca73ae6732c448bb946d9722500cff12e9", + "payment_id": "2828ca51ee1f411a" + } + }, + { + "public": + "8b8ef2f7f4bad9aa72ac0ef319816b48ac647d2a008480fdcc009b2454090659", + "address": + "4GcXF1pSoEQVWZPptcCd94DA2LhAt51CKjT9ZrHEaENyG3G2Xn6vp61HRTwK5uic2nKn594jKLQSSDLKVinzXvu3GEqJFMHSaWuENfzaEk", + "decode": + "8b8ef2f7f4bad9aa72ac0ef319816b48ac647d2a008480fdcc009b2454090659e97926e1442876622df5a546808bfb7042ca67484a011749bc14d12421e0de5b", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "e97926e1442876622df5a546808bfb7042ca67484a011749bc14d12421e0de5b", + "payment_id": "1ae1e430df8fd276" + } + }, + { + "public": + "870d3cb30491144eca2412009219cc7242caecef90af7b9c726529dd1def69d4", + "address": + "4GScj9nCndHEBMm7ZqZGhZL7UVMRY1gzeTAjNKyvZMrpcZKcj6DpXUtXYuP3f5rmXJZnT9K1X2fCxUX9p9Ni9gxQdVY8Xsp8Y73PVG2URi", + "decode": + "870d3cb30491144eca2412009219cc7242caecef90af7b9c726529dd1def69d4953c99b1853ac1b6a59710e9187a35c400234effc38895a487ced269531b79da", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "953c99b1853ac1b6a59710e9187a35c400234effc38895a487ced269531b79da", + "payment_id": "2be69b86d1bb02c7" + } + }, + { + "public": + "d5988006432e226c2f10c82f86fc86478a55d372938176a65ad229e99c563cb7", + "address": + "4KRFZGuSFjXK6X6Sni7P5fCy2p3Gkdiv1UprHDLrdNHRXhytYcidh8QG6WfE6iEbCNGr4b9dw59ok1M8pyFFQCBvNYz1iri4Da7PfQ5ffo", + "decode": + "d5988006432e226c2f10c82f86fc86478a55d372938176a65ad229e99c563cb79522f13905629d5a3f4bb53522b4535ebc858bee3e1837021353f6f7e70cbd80", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "9522f13905629d5a3f4bb53522b4535ebc858bee3e1837021353f6f7e70cbd80", + "payment_id": "d8fb507bc7c218c8" + } + }, + { + "public": + "23b1990d4a7c8cd2f2345cb83107f5c4cb82acbf3169ed5fa3251133e40f952c", + "address": + "4CgEXEd2YWPcHScHUpWbwSZvA9M5sLAEYGzoV78zMRja8PKb1qwnGDnZ2Li84L42kh5ruYWMbe91EEpTmnXoNnU6D2daucJvPG9UxSWAr2", + "decode": + "23b1990d4a7c8cd2f2345cb83107f5c4cb82acbf3169ed5fa3251133e40f952c26aafa7e8f3f69bf741f92d7d8c5d21d0f07d231c35655529d3ea85718579f47", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "26aafa7e8f3f69bf741f92d7d8c5d21d0f07d231c35655529d3ea85718579f47", + "payment_id": "e9523f71074f3ef7" + } + }, + { + "public": + "3a40dd48e63ed7ed639366fbc0255261c59acfb43f2398ebbacd81565e8e3a3b", + "address": + "4DXpSFWo58rghyHGnzXEnmHMWa74qn4nKgRsez3d4xN5Au2ndzkgznYWPBgELMYj43Any9TWeX4zwF5kHH7nvQCqYzTHsC47VZPS2fYLJZ", + "decode": + "3a40dd48e63ed7ed639366fbc0255261c59acfb43f2398ebbacd81565e8e3a3b2bb90f3b329c3dafaa98d4bd1538503a8bbc7aaf26402c543094b0da6b9fc2bf", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "2bb90f3b329c3dafaa98d4bd1538503a8bbc7aaf26402c543094b0da6b9fc2bf", + "payment_id": "425756ef6729c6dd" + } + }, + { + "public": + "469df2fab4046fbe668e775a3069ad65dcf152302775b119765992e5d12a9f15", + "address": + "4DzzZCPgAiAYr8DbuBwmwrJ3CZHuwDHy25G1weyo2j2v4Y4gPetQDg4P4kDvaw3vdhbbWJxChxRVPatHYe75NdS58YPqtifozBDJiBbJ1y", + "decode": + "469df2fab4046fbe668e775a3069ad65dcf152302775b119765992e5d12a9f152348db0ce9327183ea5bb04a8b9a54ced45acbcff91c06ca94a012514908c62d", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "2348db0ce9327183ea5bb04a8b9a54ced45acbcff91c06ca94a012514908c62d", + "payment_id": "16197dc24cd8449c" + } + }, + { + "public": + "862d3ff9b5372163e6f88c45f3f71bfe2b774836998426087aad07c61caddedc", + "address": + "4GQhBtJFZuzHiBFfjQBFwgjWmPbbqF3c12RG1uA1ZkhbdxYF3DViM2wd8rVfKoq5qdCv9ZphoknimJ9gGYbrP5Vj2gEvcdst7fKRm1hcv2", + "decode": + "862d3ff9b5372163e6f88c45f3f71bfe2b774836998426087aad07c61caddedcf46fe95b2ced68d80a19cdaa0f8fb4473e3e5636a283226687e16c92d8d4120a", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "f46fe95b2ced68d80a19cdaa0f8fb4473e3e5636a283226687e16c92d8d4120a", + "payment_id": "060130636c735edb" + } + }, + { + "public": + "efe357a3a9f2b12fd384966c8f4c8037e30cb052eb538ae4b65466f8274f7460", + "address": + "4LR3KX9HWnk8zyX51yQB9qAMB3ASq5VcmfFo7fBQSYXuH7L8vqtjZtCGvnPEaFiYNf6mNQEqeQngnKp1KcYBysWQbVhNAXU2dHY56sQHN3", + "decode": + "efe357a3a9f2b12fd384966c8f4c8037e30cb052eb538ae4b65466f8274f74604f6bb2eb8ce6995f39172351dfd06c227771a0a03786ff7075d4872bc6b731ce", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "4f6bb2eb8ce6995f39172351dfd06c227771a0a03786ff7075d4872bc6b731ce", + "payment_id": "3b0df30462fd2724" + } + }, + { + "public": + "684b0e9ebdb6d091f7a6e241ee7d436ccd638e758e095371edc4f15798311442", + "address": + "4FH1cg9t95qRR4rp1dK52iKCX5b2C4MvzL4FcXeYgPuDC3mjUPkcaxVHrWMY8sHA9DLH1sPePJcLCeDiedAQSvvvcYrr9FVJGFwB9JKwvD", + "decode": + "684b0e9ebdb6d091f7a6e241ee7d436ccd638e758e095371edc4f157983114420ce48092ac4cde64c2c4a52d0e29e0733e9094ea6b6eedde84ff3ece87dc23d4", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "0ce48092ac4cde64c2c4a52d0e29e0733e9094ea6b6eedde84ff3ece87dc23d4", + "payment_id": "890ec7b1dc192659" + } + }, + { + "public": + "1e235c4b196a08e486b251e554ee9f08d98ca238c8fa5afb2c11acf6efc0b66e", + "address": + "4CU2Hjy7EXyfDzRMxozvEJ2UrYR9WMsboj1ghSRQzZWDKRovPREcFWsF3WoszFLW1n83EyCYDSdosUJBimALHWw7KSVzphi1XpQ9XrBVu3", + "decode": + "1e235c4b196a08e486b251e554ee9f08d98ca238c8fa5afb2c11acf6efc0b66e2c19875a973f0453f5acb13fccba392a14ccd6d4e97a76a331a08bc30578266e", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "2c19875a973f0453f5acb13fccba392a14ccd6d4e97a76a331a08bc30578266e", + "payment_id": "3e55583207b7c54b" + } + }, + { + "public": + "647575369bae567150014ef09d4019991e617b15d4dbb94256c455e5d0a2d91f", + "address": + "4F8aopsCV1oKxGrfde67HAScSh65xWa2cC6a71kSg9Yk6CbkEM133LZNtKwm94kLwKb79XHRsP6423rCto8VR7kaDZrZ5YSf19ZC7tz2Fw", + "decode": + "647575369bae567150014ef09d4019991e617b15d4dbb94256c455e5d0a2d91f16b32e7383ac4682d76db94c5f5ce2cbe805fa3ceaa0f311077ce5a32d95974b", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "16b32e7383ac4682d76db94c5f5ce2cbe805fa3ceaa0f311077ce5a32d95974b", + "payment_id": "21429ff60b32d062" + } + }, + { + "public": + "0b0dbfa8573302717aff92c080b85246e0e94e7cbaf7561d5d4b30cdbdd14304", + "address": + "4Bk5Q1EZn1XKyuMTwfGzBKCrcRnts1TZo5usZY2kUpBU1pBobgKWWXMgRhFzH4C5HnczbQdWFYEcqHFJSyA62iMzPKHWobfXADNTfYsdn7", + "decode": + "0b0dbfa8573302717aff92c080b85246e0e94e7cbaf7561d5d4b30cdbdd14304dd2ade0125987cebb612994e60c485d73021476efc324a6121c24f7c0bff1d85", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "dd2ade0125987cebb612994e60c485d73021476efc324a6121c24f7c0bff1d85", + "payment_id": "6a08110a958561ec" + } + }, + { + "public": + "e376616c1c82700891cef397a577e5fea2c17967c1d2888378ada26a307c4692", + "address": + "4KwjJ1TtNtP2S8rqttgUwvjbHaj1gD6xFNzSMx9ghAMBRSUkvx5fsdPNYrz6iCa48qBx4k83aJKzGb4P9qQ6zkMc51hmKcWbwPZFVexVnL", + "decode": + "e376616c1c82700891cef397a577e5fea2c17967c1d2888378ada26a307c46921ce9d60a9bc89680d5c8bef0ca2f6a41764d58143e80b9cb9f0f462484ab4f17", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "1ce9d60a9bc89680d5c8bef0ca2f6a41764d58143e80b9cb9f0f462484ab4f17", + "payment_id": "fca47c4927aa3480" + } + }, + { + "public": + "1ae5147f11a2f3c8be00b6f5b74ab35e68258a5630dbf373044b6844167c56dc", + "address": + "4CLtqKwbyCeaaT9ST9eLUaGns8yeXHZR4LEoo5FQ4X33duyasgMYinMgLVWB8Rx3eG3a6VDzs8F5RgGSwWCJGTPq1KerTCE4wdnCsZ1ZJx", + "decode": + "1ae5147f11a2f3c8be00b6f5b74ab35e68258a5630dbf373044b6844167c56dcb0cd5019c9a382eb2cc855c0ec07310f5e5c10e2eee5d0eac2101d9f21f65c01", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "b0cd5019c9a382eb2cc855c0ec07310f5e5c10e2eee5d0eac2101d9f21f65c01", + "payment_id": "ec3649ef32321569" + } + }, + { + "public": + "a23c90ab530080446064c8cc055a7bf7125c9966190883f69e6468c24808bc73", + "address": + "4HUNGbNPpMVCSLcGL4No2riKuWCXfX5gEiFWcM97vgh9LPeaQaGsRZi5YybYz47LSqctxiB777iJc1dUsvDkuJVeJbyK9azy3nsCNY5rNN", + "decode": + "a23c90ab530080446064c8cc055a7bf7125c9966190883f69e6468c24808bc73ed98766f3283691b35e2559e0da906d69b7df0cfec69d103c2a9ffa59aa67169", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "ed98766f3283691b35e2559e0da906d69b7df0cfec69d103c2a9ffa59aa67169", + "payment_id": "3dbb82b38dce9c64" + } + }, + { + "public": + "7f88a387cd7e474bf936c2f903a99e233b63dae1bc8e743775a0762a0389abec", + "address": + "4GA6LKCoUzrDi3Cxu6BXyP6to5ZeTDYZyAH2XtjCByj8gVJnjJSJZvBC3BeKm29a7H9pK6oGjAE45AxwYnSbCuzwGRNjRepXVtKQtpPt3w", + "decode": + "7f88a387cd7e474bf936c2f903a99e233b63dae1bc8e743775a0762a0389abec1567204734076441fd621749b207e034b4addd8c410bee3b92e48a1740ffa85c", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "1567204734076441fd621749b207e034b4addd8c410bee3b92e48a1740ffa85c", + "payment_id": "3111449ea62250d3" + } + }, + { + "public": + "4360770780e1b9dccc677d94f73ae6d1a5fbc2ea1052795bd87d8a5d253c8765", + "address": + "4DssVnGY9pCdw2FdBgKMW5c4rQZmMyNLxGN23aMGTfo4J3EZTMNT9v3bmcNYfMjpF8AhbWwmeqSbC1Rg3cDnfAv9BL29KUMgJRrLg9sK7h", + "decode": + "4360770780e1b9dccc677d94f73ae6d1a5fbc2ea1052795bd87d8a5d253c8765ddda97ddda7784cfdeff03373c539f39fdf425ee330a93028b15a94bcd1a4e3d", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "ddda97ddda7784cfdeff03373c539f39fdf425ee330a93028b15a94bcd1a4e3d", + "payment_id": "bf2385f9d549bdae" + } + }, + { + "public": + "ff5e64b415a04bac103bcc8df0ac091f9ad10b3aaabe00e93a75cb5a677ae721", + "address": + "4M14oaCTX8WVnENruJVh8c6Hc8Xj4XYVmg1cDmjcqXHY6aRzec83h8a6YwMwzhJGrHSAKvgxjvAZbaJsL9crfX9Wb2dv1eeS4sgJbf1weq", + "decode": + "ff5e64b415a04bac103bcc8df0ac091f9ad10b3aaabe00e93a75cb5a677ae72156ce91088f97b7212f64372131bb8e966d34a99108f22ec722cae7e759ac85cb", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "56ce91088f97b7212f64372131bb8e966d34a99108f22ec722cae7e759ac85cb", + "payment_id": "70ffc5ce9c96bf9b" + } + }, + { + "public": + "195281b2979b4bc0b22f10b0612683bf0d4c69b5ea24e9996ee265a917a2c14a", + "address": + "4CHSN5VibK8ZEPneFzPj1UYxShxUaLzhnSfVdj7ZDgcxDRXd7M7eUBdeDetr7C1YFG5m2Dm6xwwwK1JfjpiS6WeFS79QCxGuPrD8feT7qY", + "decode": + "195281b2979b4bc0b22f10b0612683bf0d4c69b5ea24e9996ee265a917a2c14a458a68988ea95cde8349eab64946c71c73bcfcf2918ae601d23a088679e43c96", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "458a68988ea95cde8349eab64946c71c73bcfcf2918ae601d23a088679e43c96", + "payment_id": "194078ee7483ee43" + } + }, + { + "public": + "fb40db0d8597dc153918d9577ca7eb38c392de6b1f69cc09a42d76370e5cda06", + "address": + "4Lr2AyW9Ytb4Ytd4FvMj1LAVgXcqCr4nP2cXua3RkzU1283qDSSPTnv9ZTF7opMJx19RCkGgDWak9D7peQpZiALSfHu2rWfPWLSP1iEWZV", + "decode": + "fb40db0d8597dc153918d9577ca7eb38c392de6b1f69cc09a42d76370e5cda06b487d3273201af332c8f1c2252d22a3252db3b94ebb65248724b908cbf34b3e4", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "b487d3273201af332c8f1c2252d22a3252db3b94ebb65248724b908cbf34b3e4", + "payment_id": "edcc6c2b1e6d2bc3" + } + }, + { + "public": + "86eb38396f39e24b237e3a91c71e63891a1183b29b70cd862f931dbf85e8a770", + "address": + "4GSKnebC5cmDZwTinMctEnPw4T85PoEhSPSmhi8UfYPGKkGfxVsC2H9c2yGYiwiAE6NShqaMvhrkZb2rsqjJzYHEezwW8WGvY9i1Um6kXo", + "decode": + "86eb38396f39e24b237e3a91c71e63891a1183b29b70cd862f931dbf85e8a7701342ceb32d76e4d1745422ed925ee380334ae0c40a1512cb76e58ed69b2441e3", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "1342ceb32d76e4d1745422ed925ee380334ae0c40a1512cb76e58ed69b2441e3", + "payment_id": "2e5210ab64caed04" + } + }, + { + "public": + "296ea68d916cb61e4a9f1eaf8eb839b278bfea2e9541ae14ff0aa1cab067c00d", + "address": + "4Ctr4sCt7y764sCDNVTwKWWrQ8i4vAwyF4Wh27AAPAJ33C9RmaDbvGrV9GtYsUMF5KfW1WJmYMDMYiixYHKaCqM7gMrRgJgnb4F1q3Hmdx", + "decode": + "296ea68d916cb61e4a9f1eaf8eb839b278bfea2e9541ae14ff0aa1cab067c00d1b276300d618bba84101f66de8c642e62d6762114e5ea7f972acc611f7bdd6eb", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "1b276300d618bba84101f66de8c642e62d6762114e5ea7f972acc611f7bdd6eb", + "payment_id": "50b0a5b3b8ca5c07" + } + }, + { + "public": + "7f8244f784fc542e5becbf22254ba4cf3566e8a3ff545ccc1e0e5ef8973a71b6", + "address": + "4GA3AMNTwGw8kjzG83J6GbbfBcbTyEvcsb9CHQrL1B36Xb7g3LPmZtrhNyQnjb3kp3CLEitHxYMqq5cDxJrMVs89DpyZ4BM1bBt36XfsQb", + "decode": + "7f8244f784fc542e5becbf22254ba4cf3566e8a3ff545ccc1e0e5ef8973a71b6dff5b2c514015ff168c7bb0458e12443bf62bea1f619681b8b94e1ff28ada64c", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "dff5b2c514015ff168c7bb0458e12443bf62bea1f619681b8b94e1ff28ada64c", + "payment_id": "b045216b686f7f12" + } + }, + { + "public": + "636ef51ca8547b1c09d01812711516de4e27b32c24e5590cb37e6c55cf21e7f7", + "address": + "4F6L6D6PwXQ5h1QLfuTGCmeBe7LiRZ5gL38Db8sWBUpNiNxtpX2dSdQf98sFUZbxjVVpGidUkRZ86CdU6bHQVfrNSXZfAfyzRV4Q4Ns8XJ", + "decode": + "636ef51ca8547b1c09d01812711516de4e27b32c24e5590cb37e6c55cf21e7f76311b103c84e73e4069901e534530cac461346741147eb4586128e80c0d95798", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "6311b103c84e73e4069901e534530cac461346741147eb4586128e80c0d95798", + "payment_id": "9d9bd9cf0cdd23cc" + } + }, + { + "public": + "a2cba949364df17d06d62bab00e8fc837b68a0a87a8a39e8539022d437a4f891", + "address": + "4HVbXYJJUjAMuv7GsAZeQ3NzYN2ge7RGLfrritVirFTdRNUmeoRzVb68hdY8AfXSENEDDuHXbJVo6ewEsDsRbWZMEtmNUKrm5Xi9HoNGih", + "decode": + "a2cba949364df17d06d62bab00e8fc837b68a0a87a8a39e8539022d437a4f891b35d9eba7039112e09d32ca050107b4efb578809bcf9e9e2ccaacaf029257853", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "b35d9eba7039112e09d32ca050107b4efb578809bcf9e9e2ccaacaf029257853", + "payment_id": "0ece036bb972f549" + } + }, + { + "public": + "185d81c08907bfc075df390f2d2e2f04672c8199ce24dfa1da01efb695291a8e", + "address": + "4CFLMvHR1wcZC7E41URxbG1jiTiKQ4tdcU5ATxdCKQKBQpeubMrENH3Sphw9iaxwxF7BjL8bjJg1cBsu8NHFVVmWECAceqeD1SNCKC5QpH", + "decode": + "185d81c08907bfc075df390f2d2e2f04672c8199ce24dfa1da01efb695291a8e6b8cf8ee3039ae9a61f9ce6948316424fa494bbddeda6741085f9fcd0464054e", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "6b8cf8ee3039ae9a61f9ce6948316424fa494bbddeda6741085f9fcd0464054e", + "payment_id": "df754bde4de2af64" + } + }, + { + "public": + "fb3dc8b9804ddb804b3fcc0f9e25956aed70c2af292fb8b9a111a832be23459f", + "address": + "4LqzeG3nQ2WNTcVbD3ZpHzJtLBWcuZSDVY3qTjSK76QkTixMkrdUzzKYwi4XsTmc6bSnTvTGWB6LWXxFoVU7q9qmEiLLBSVXL5qHCjRmj9", + "decode": + "fb3dc8b9804ddb804b3fcc0f9e25956aed70c2af292fb8b9a111a832be23459fc4bb7b76e57dd8bef9e5680397b4f09a26d2f49dbdc9dfb90dd02ef45d1fec51", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "c4bb7b76e57dd8bef9e5680397b4f09a26d2f49dbdc9dfb90dd02ef45d1fec51", + "payment_id": "fb876eaf906cd48f" + } + }, + { + "public": + "4cb4889cef10aea7f7c7e0de66a6504787b546bd118fdc909183d32228119376", + "address": + "4EENgiF3zW9V6VwYjHdSvjCxw38VF5aePRBVhKqpm4DYLkAWj8MyiFwSXYFUD5jkAdEGb4vWYxiKsYLFv8NECuE22gtvPjeMXhMMdFKjvb", + "decode": + "4cb4889cef10aea7f7c7e0de66a6504787b546bd118fdc909183d322281193760afb9421ffbd86989cf7ca28baa44a4f54230f821fac72bb5268aaf564ae2b0a", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "0afb9421ffbd86989cf7ca28baa44a4f54230f821fac72bb5268aaf564ae2b0a", + "payment_id": "174ab469e7d10cb6" + } + }, + { + "public": + "76f4a98d9e89f1a367b80a4345c4617552132a1f89fac55b4c46ad20b675f163", + "address": + "4FqEoT4YVSGULEcQj1nv2kLdA6aL61ThWGGhryu2YuHSHhMGMNfiPycPLVAEBbLkoacYu2NfJefiRV8MGoMComACCKM71Wq9XP18sEN5Qg", + "decode": + "76f4a98d9e89f1a367b80a4345c4617552132a1f89fac55b4c46ad20b675f163d1233b2df733538589b7d5d1e296b1d48a0c4571a24c12a8289d1e21958ea543", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "d1233b2df733538589b7d5d1e296b1d48a0c4571a24c12a8289d1e21958ea543", + "payment_id": "a7e69809cc199445" + } + }, + { + "public": + "2ee17ed09781403d7ce18616451579aa1c3c2a29a6431640fcda9d8a85444285", + "address": + "4D6pfCZ2H5HBHWWjoxCZJxVTHQnHxhk3fBsTor75TTQMPHmnzDoePhTHCTMGChZw7xPePdp5LPgLRadffSUVjdZuXc58Zu6ntbP2AQX5zi", + "decode": + "2ee17ed09781403d7ce18616451579aa1c3c2a29a6431640fcda9d8a85444285421ef7b96ccf2a60d6a4db702dcc4b876231e2abf1c2c2c912dce191c0bdf4b6", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "421ef7b96ccf2a60d6a4db702dcc4b876231e2abf1c2c2c912dce191c0bdf4b6", + "payment_id": "f930f774e4c04e0a" + } + }, + { + "public": + "844d8fd0a73ab7285f8b4e9243fd87d695d51d94f6ebca33e43afe86fc6e9069", + "address": + "4GLaKPLjgtn7kfuaUdHXVQctkGhhJQcpH9gQweVm9T1hJah5nMqJmomTb8Nc2zHh2NaPgMES8CDDMGVjbqyg4T7YXgAgsjjDvdN9X3z3FK", + "decode": + "844d8fd0a73ab7285f8b4e9243fd87d695d51d94f6ebca33e43afe86fc6e90691bf5b0b5e7b6309ef62e94f00de8dfc7a1bcf662f4c2845ca41da300348d0bb7", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "1bf5b0b5e7b6309ef62e94f00de8dfc7a1bcf662f4c2845ca41da300348d0bb7", + "payment_id": "6545dfa45694714b" + } + }, + { + "public": + "ad60ff0f9ab04177c861d812be0a5981bd5bdc5877b39577f10f78a572e9bdf4", + "address": + "4HtrhPGQkVNM33UV6A3FuSNhdyMmyv8i8M4atAf92m2khx9kz7W6ffrg73uDgBe4EDCZRptEGwJvki8SHw55dVAUHeV4bXy5XywG5fD56w", + "decode": + "ad60ff0f9ab04177c861d812be0a5981bd5bdc5877b39577f10f78a572e9bdf4d44dc05767c13de9ca15e8b810c732451b7c670af4dd51f5e3b59fddb936f563", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "d44dc05767c13de9ca15e8b810c732451b7c670af4dd51f5e3b59fddb936f563", + "payment_id": "858528095035fe85" + } + }, + { + "public": + "157c8aac2cf5723745502b1e1588d24d0a192da3ac1f3c97ce9c2ba9521b6b5c", + "address": + "4C91NfbwJoKAFCLquBnaedDtNzR4qkRtwSPigrkHdWh8GQqZpKACARb6n7h3XmHL2eXZMtCt9bbY3ebMW2ehfw3MBPr7pF5inrC397WU7m", + "decode": + "157c8aac2cf5723745502b1e1588d24d0a192da3ac1f3c97ce9c2ba9521b6b5c22e3514fa72e1e228b23b3480d008bb6b1a5e96ff2bec0e0bfeb3771f6a5703e", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "22e3514fa72e1e228b23b3480d008bb6b1a5e96ff2bec0e0bfeb3771f6a5703e", + "payment_id": "242170fb20c7a112" + } + }, + { + "public": + "82413032baebf59412cf9800cbef5c760c2554d6499fa77df099e1de99109293", + "address": + "4GG5CGcXforRmVu5vSsyJbLkD4zuxKkYNN4muhG6Pde1RbcXW3Jgcz5Bmm67Pnd5B67QW2hH4qwoNLCeaAx7xPmpDPJKXXvbTyw2mMvteL", + "decode": + "82413032baebf59412cf9800cbef5c760c2554d6499fa77df099e1de991092930df1654aedc582406662d0345db209264b488c0d96c84972cb5269774a7f574a", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "0df1654aedc582406662d0345db209264b488c0d96c84972cb5269774a7f574a", + "payment_id": "0ab61f29520e6e0f" + } + }, + { + "public": + "ec51428806233390a327fa2c2490e9c15c162526ee680569c0cb526c684cabd7", + "address": + "4LHC8iDMqMkRCAUEjw3NZ6ZLqDvU7HoszJgwNyGiSQmYd56Ni2WDUN4fPt1cW8FjCV6i4M6hHk3zGBgnnwCFTDjaNJcMGquVYnCRMCw8yh", + "decode": + "ec51428806233390a327fa2c2490e9c15c162526ee680569c0cb526c684cabd7a6dccae1b42ba1e58ba9f44aa7c902222010904f6d10393fe3382f87ee29257f", + "params": { + "net_ver": Uint8List.fromList([0x13]), + "pub_vkey": + "a6dccae1b42ba1e58ba9f44aa7c902222010904f6d10393fe3382f87ee29257f", + "payment_id": "5db059823c53f9d7" + } + } +]; diff --git a/test/address/xmr/xmr_test.dart b/test/address/xmr/xmr_test.dart new file mode 100644 index 0000000..a9666eb --- /dev/null +++ b/test/address/xmr/xmr_test.dart @@ -0,0 +1,42 @@ +import 'package:blockchain_utils/bip/address/xmr_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; +import 'test_vector_integrate.dart' show integrateTestVecotr; + +void main() { + test("xrm address test", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + if (params.containsKey("pub_vkey")) { + params["pub_vkey"] = BytesUtils.fromHexString(params["pub_vkey"]); + } + final z = XmrAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = XmrAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); + test( + "xmr integrate address test", + () { + for (final i in integrateTestVecotr) { + final params = Map.from(i["params"]); + if (params.containsKey("pub_vkey")) { + params["pub_vkey"] = BytesUtils.fromHexString(params["pub_vkey"]); + } + if (params.containsKey("payment_id")) { + params["payment_id"] = BytesUtils.fromHexString(params["payment_id"]); + } + final z = XmrIntegratedAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = XmrIntegratedAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }, + ); +} diff --git a/test/address/xrp/test_vector.dart b/test/address/xrp/test_vector.dart new file mode 100644 index 0000000..50624ed --- /dev/null +++ b/test/address/xrp/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "02e0025c284743e385087e4615a840b2f6424497bfe6779e8ed4296417b0aab124", + "address": "rP3DVaCaoGegwdz4XgFCwVWPUmLafNNra9", + "decode": "f2b019b7d85d7e53b954a4d52ba4ceafaeca062c", + "params": {} + }, + { + "public": + "03d873236359f10765099ecb1923e1c475ede63e71f1170dacab03ef98e2400799", + "address": "rPzDeP3bV6129kgoGjVAE3PxhUSREkPEdU", + "decode": "fc25083c50678edaf11f1f5462922eb043a071f3", + "params": {} + }, + { + "public": + "0397d5c00fda5578061a4c7e71aa93540fab9076b549fded164da02b0a29bd24c3", + "address": "rDhi61ih71Mps6WnnuS2X51LQy4JPk7TL5", + "decode": "845c3fada0a9524119e22f451312440895007445", + "params": {} + }, + { + "public": + "02b455cf07f42fb94d4b98ea381dd86b3fea586c044ce2d0d26ae32d929e41342f", + "address": "rHZj4RxZTkMt12URQhmzB8mHCY8phFXSj3", + "decode": "b5b2b10bba9f816a87363cdfb8233ce462fafb44", + "params": {} + }, + { + "public": + "0360ca0bde5dfe66945e32c3848d863ea13080cebb83d88cd943025bb908af023a", + "address": "rUV63ytDkN2wRwoCCBw4VU9WDZJWJehaKZ", + "decode": "7e168925bb919a84e9d51c3f04394ca5ca8a1045", + "params": {} + }, + { + "public": + "0228dfeadb412520a70095a4c40ec7dd3d83b219b0e11b95377d55323eaa94fabd", + "address": "rp5aiSmGeoHSKyJVPDXH7xWsXqYQxneQmR", + "decode": "12be10cce6361d8a9360cac311dc5f8a381a8cdc", + "params": {} + }, + { + "public": + "03cc91b7dce0ccf478daeaf548aae2a2a1cbcaa93df8744f518dfd2539349bf1fa", + "address": "rssVmXjwpyF8bqmXNY31sv7Q7cnNLrEdee", + "decode": "166918fc89a170e62a8feb24a5a0246f20e19c49", + "params": {} + }, + { + "public": + "033b5f3faaa2074074ac50dff3d3e7b5c0c9709df037ff8fb5f077c0a4a9396393", + "address": "rf9caCqedZj5wMtsGxT56o4wcijVH2A5b5", + "decode": "4371616a18e41c8ed33430a571c3e030fb2e1f10", + "params": {} + }, + { + "public": + "03916db62133fec2d5e449095025f950acaf1f69aa9bd57efe1ae1b0662b715025", + "address": "rB1r94c6LiW2Rk8FFvaiY8oCjDgKk1EgN2", + "decode": "77262d2a8490ffc16b7fe2288a9be6b7fffd3b08", + "params": {} + }, + { + "public": + "036e5694a82b2819f857bc072ee6b6be9d161a0ad9b2c6bada2f5673913b1dae79", + "address": "rHEm84gL4hZmHACDhLs9yiZvxeyxNy9xJq", + "decode": "b24d37e88ca31471cf8aeecf1cdf838ee725a072", + "params": {} + }, + { + "public": + "033920155b58601d857cc0ab24e0369b6fd11f9dcbb323cedb2646bbd9f47d6b42", + "address": "rKTzqeJVCa6qvowLFHziVHmajMx6qQpbS2", + "decode": "ca8d5c43bece23746fe27f2c8ec52b72503f7a1d", + "params": {} + }, + { + "public": + "02d3d8344bce074e2c6e606a02e8619635675ae9b426e52599ab4b52d0d947b03a", + "address": "rHMP6uaGQyXBz2FQPwADrNkYnxMKsYAh6Y", + "decode": "b35d48fa842cb0808f871055a8ded14db4a44707", + "params": {} + }, + { + "public": + "0207dcd7c989f940df60a4e1573c3b7242fc3318d73c38171861b40abaf1f351fb", + "address": "ra8XS6cgfnEtX4E9cEqPuEqbnu88Uooatc", + "decode": "3f74c283f72953148be515edb7c1b728a36dddfd", + "params": {} + }, + { + "public": + "022e8eb895ca511e234c266b0e6283766eafee2bcb694771f55a8e9ce849c9494c", + "address": "rwTz3rfE4obxbRHYJ5QyjmVKEnRCTgsFai", + "decode": "67d3a1089dd60fa4fe02ad99b58e8b77fc92763d", + "params": {} + }, + { + "public": + "03602fff4e0c256a98685f5efc668f2fdeaf009b413fc7f46e7c7939d332f1746a", + "address": "r9GMrd7W72YFFnAwUNrt1ndPHxwi3oqwE7", + "decode": "5aa7f32d1e12a52b8e1850577519bedafd7415c8", + "params": {} + }, + { + "public": + "02c2ea92d72895387f384409fe67d832b73a33acdc7efd6cbc89c31a64f6327481", + "address": "rwNRiT4qWPfTDfR8kmNucZMYRtusqjxLiT", + "decode": "65434917d80428db0bcb0d09dae8caf229e3cc4a", + "params": {} + }, + { + "public": + "03024ba4a8065c80c6a136c28247c24920a9319b57420193e65b70f4729d696780", + "address": "rB1v3P5mmK6sq2t2kMfeTAvW3gYPbbneRu", + "decode": "7752678c3f746832dff56f066312c02614e82453", + "params": {} + }, + { + "public": + "0272074967a7ba35a32a3d3f4b906273aaae32bb03ec0e0d09f881a25a6ac2fb24", + "address": "rnzQcC1S67bVHSzAzHs5hW34jJRk5Xey59", + "decode": "36bbecff2ebfee7ab5eaa32df2e120443b6ca2c9", + "params": {} + }, + { + "public": + "03fe594867a5bb368e2d5aeea7a750fbf29681c53b0556eb50621bf1405b2f1603", + "address": "rU4YF5tNwzN6zHWZtnHgyPTuLCvFhT8NGK", + "decode": "7cbcaee2f91a6e90b7f2d581fa63b1fae1b2f2b8", + "params": {} + }, + { + "public": + "0386d57c37a56912bea505b7bff2ebb5e073362746df79838c5cd052e947330044", + "address": "rfkn7XfrN5jtR2u7aUaY7CWpr2uLWEmkGb", + "decode": "49f6604bbd600759b040b0a681f9e417a3d0c5ed", + "params": {} + }, + { + "public": + "029a9c63cf703ea43a0e058b0a6246d8601be195efdd55fc228e3c62def5d819b1", + "address": "r46gZbiqKLvugwGLijvhk9fFcfp6WKg2xe", + "decode": "ee0c4e00aa391f32ef6250b86b693a1ab144f71b", + "params": {} + }, + { + "public": + "03a8b0e2b0bcfd620a2671347c5942249986d46863cd1ec5cdb39acd8be9837790", + "address": "rpLdXd65yqNyzDa1f9p3pK9s2CEGYroixK", + "decode": "0eae856ee21570277e2036b0b6158f642117d461", + "params": {} + }, + { + "public": + "03f771502e74904a814858421bbf72bf8cf6af37a34979bed6cc57bdf301c704d4", + "address": "r9TgTDQNsWwE2WPa4T8GfEPqzNY4WF8yBy", + "decode": "5cccc10dc2587ce83bad114b4f182ba32003087a", + "params": {} + }, + { + "public": + "03d968f30ccb52dd4624517939ae58c5bf4d2b2bb340d31f81d062162b567ad581", + "address": "r3Yug4iu2o757rokCZtV4Duvz6u2636YPD", + "decode": "52d1bfdb833f8b56c211a863e94be120dfefcdff", + "params": {} + }, + { + "public": + "03d81bb6831b0cbfe8bb05d4fb381dca14fc7f217ffe0437d3e25b6120bdecfe4f", + "address": "rLCqWtqMHiKAgViQK6gJc36NZnUXPcMGRQ", + "decode": "d7c2b1efa87dce39fe6791ef7a3dd22bc65cb53d", + "params": {} + }, + { + "public": + "035f604be993a4d78d481ce7fe38ffca6bcb3a095ce1f2ae107fddc215a7ac2745", + "address": "rNGVX2mJaNoMLFX56HSCWY6tqg2vmexWhF", + "decode": "9187b02003ef4b125a38ebb7e23b398bd76ed4d9", + "params": {} + }, + { + "public": + "03c2e9ac10748bebb80b8600b631854226b8faba79a118350ee4acc4aa2076c96c", + "address": "rDhwtyh7zUMaz51Kpfmfm2J7EQjT4yUPJL", + "decode": "843b049deb54a671383e2caa876f159026620a1f", + "params": {} + }, + { + "public": + "02b5e65c4ee6378b12d2dbc2c55305965563e22d6bc81fddcd6aa40af941074376", + "address": "rGnL1EgXfuBHpyRCxjYBJtShX63SGc75Cq", + "decode": "a55c225f54a315310aef0ccb8e5a47bc332eec81", + "params": {} + }, + { + "public": + "038fdd7fe88778c818cc11a7a57fe8c7ec02f3a2e51dc3cdca6b7b73dda5fb85d9", + "address": "rPmypiikpzwcC9zPauK4wU7c5iA7zfqkE9", + "decode": "f9d3d7bfe768fe7452c1ed284ccbc9e7738e4a0b", + "params": {} + }, + { + "public": + "03fe720253010949114da5fd866c6508ef72766ec8859d6050cff1ebf4e3916144", + "address": "rN7iqbC8nmY3TeymHVyXrhTKbsM8ejJ3ay", + "decode": "93de77fefca6317c6c0982685b2e9a26992acd2d", + "params": {} + }, + { + "public": + "03a9f3daa31587f6fd75fbee189a572524fd46c70818079915bfb6f359a5fcb8cc", + "address": "r47ckhKC2o2Y1c6Y4DNWLSMN1GW5dWMptU", + "decode": "eb93b56a46678815a41d08c051d81255f4a6475e", + "params": {} + }, + { + "public": + "02da6ab112cfafcd6d718bebc58ba7b282f6d25ef6e5dba0a6d0f72f18039170a3", + "address": "rBXXux5TAALno1Yarv4vUQgspg9q6dVJw2", + "decode": "73778aaa2fd9ac7e0e04ba6f7316c89aed386279", + "params": {} + }, + { + "public": + "03929b02093a4b79252aa2487fee7823067afbd364117e46cb0a3d391d796d8844", + "address": "rNXrprWRRqo1kMg1vxLFUaRirx4RmmniSm", + "decode": "944620e9605624c452a9d76016d1fefde57c366e", + "params": {} + }, + { + "public": + "027686d0b123039fc9320b694b0f8b6c55a3127559a51cf24530673504995e25a5", + "address": "rUpCLf1rzSdyv8vvr1Mf7BgdLnVvdGCe7U", + "decode": "78f9cba8c4a0de4357362861fee945b031bbb986", + "params": {} + }, + { + "public": + "038dd0970aef9cc56d6e3ec2b4facffef31fbadcd0789d30aeeb91eadf9b2dcc64", + "address": "rJRypKpiNFMDjJUPTRCsxhtduJke9dw13T", + "decode": "bf32e300139364da225bd6114acbd1fd73fa8479", + "params": {} + }, + { + "public": + "02328a534fd57cca306ec5099035f546acddaa52bcdbba190f52e7188037f583bc", + "address": "rwwnm3HsWQF9KVV3x8QmPDiwrxxtRtMFdJ", + "decode": "6470d98d4bd8b71b712debec26088b1fa86796ba", + "params": {} + }, + { + "public": + "039e586ff2ce1c255f7300d8600a37955a4e40058887f775fc62a0a6f4a374f8b0", + "address": "rn8L8JzFaRbgMyMdRv3YgXYTRhwzdJEDTC", + "decode": "3473bbe3798643b0e41e6c26ca1855acb19e6cf2", + "params": {} + }, + { + "public": + "02ce1934576d850d75366890fab8b9600f8c6228532df2b161fe036dedeb38a84c", + "address": "rDCjrCrk1ZEy2FFdTctg7wUmVyEzSL7zAy", + "decode": "8af4629dceabc05f2be35fa65f5a5c361e8967fa", + "params": {} + }, + { + "public": + "0257624cc8914d5b1d9192170c5e1c74b0b756877fe638e293b5c4e7042fb519e2", + "address": "rrU1kJ4hBmUvKifZHtU1JhYrTCyjCcF5i", + "decode": "0009e9a6c5fe0bc8dae3c92ff4f13ae8042859ad", + "params": {} + }, + { + "public": + "0356701cf83cf8c765ec71d642b598aef6cd5c07edb118108e753214e0f3e1fd5e", + "address": "raLVWkSJse3hyjRt2hfPRTBAexrcRkTSdP", + "decode": "3a8855650e0fce33005e64936fc80639d9808edd", + "params": {} + }, + { + "public": + "020a6073310bd9e8b4841a44014940dcf98c42be7f3f8150cbea0ab73ef051f5e1", + "address": "rPHa48ediGZ82X6RroBodCHRYNjD3Uj8en", + "decode": "f45de8f50a4310cf22b266a1597f8bf3b4fbf5a0", + "params": {} + }, + { + "public": + "02d50908a66426dd433c0c4ba49554199438dfca460e6027ca49c97305b1fea040", + "address": "rB9gA3Qk1jCVJa4y6BJybsDZb5BwjWLaB", + "decode": "01eb699415e9c8a47005bce7f73ab645f5fbd911", + "params": {} + }, + { + "public": + "034a30db39d95f089acc8760952dc10fa8313cb63b724f92a9549bd115246e908a", + "address": "rLH9icSG2xV53Dnsw2waPKZvfDA9qj4bv4", + "decode": "d3786ff7133933bed9f55967e1d0f3bd3ceea080", + "params": {} + }, + { + "public": + "028d0e332a6579369e3236e57889fafa86c46367eda97eebfdb743c840291e3998", + "address": "r48jweguvCxHxwj96Kwqht53BGAQogtXtF", + "decode": "ef008ef71672b1b9523335b341255d81842ce998", + "params": {} + }, + { + "public": + "03064a5bb036afc18f3b432d14bc28e2a21c1276bb5d15235b4188ab70521c64e8", + "address": "rLymqNNQcroiNJbXNXR4fC59LaSgfHHC8b", + "decode": "db271b72c03aed903830227976e1bee020c37b8a", + "params": {} + }, + { + "public": + "03b6e7fad86b5c04465fe10ed888d1f92a5cb0417ee9dce06622e4625ecdf39e1c", + "address": "rJByYXHvHzAuyoTnG415N3FK8hGoJ6qNHG", + "decode": "bc8d7f8169b588bb7fc45dd7910b0b467b305a22", + "params": {} + }, + { + "public": + "03af9838c348ff39b6fbdb2d9102aa82d7e7faf0d9eb8b11e364752b52f20d838b", + "address": "rL9VME3M2nTYU1oKHbAjsEcrZHrRkxtFSA", + "decode": "d20561d55fd03946f14fe4c909b0c547ea3f8710", + "params": {} + }, + { + "public": + "037afb8f26b1c01986d9f6b47118a91d86b9a274dd8e1e2e8c8d417faadda79896", + "address": "rwDTEk63EjuJkqqm6ABEKUuq5d5ju5jXcr", + "decode": "65140a25b1993f6a0f97cf6a6f3672330adcbc89", + "params": {} + }, + { + "public": + "032b7a96eeb01fa4717402b731256c53d257284ee314716f21c1fd66d4f4cba4e2", + "address": "r4e7NrMN9Sw8WGyBGu8mizjtDCoWsLWhd5", + "decode": "ed70c1f87e6382d25dc2876b88597de760041f68", + "params": {} + }, + { + "public": + "022a67f5e38d835a895983771724265f700bbf207899204281b5b611a034df8b19", + "address": "rDcm1vwWRYGxArdZj3zbLbWoDa6McM9bdB", + "decode": "8a6587bd1f93ef830808e9f1369826986e27e9ce", + "params": {} + } +]; diff --git a/test/address/xrp/xrp_test.dart b/test/address/xrp/xrp_test.dart new file mode 100644 index 0000000..70b3e25 --- /dev/null +++ b/test/address/xrp/xrp_test.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/address/xrp_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("xrp address", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = XrpAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = XrpAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/xtz/test_vector.dart b/test/address/xtz/test_vector.dart new file mode 100644 index 0000000..ca56381 --- /dev/null +++ b/test/address/xtz/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "248503f098cb4a2b9a3ea179b48075d927d357b2f9dfec7bce764baa3d547d0e", + "address": "tz1L3tHJsTq9qj1shvYQsryfUjwNqRqtbZmx", + "decode": "0482f65b712f82ca5ffaed567a4ee48cdd89e93b", + "params": {"prefix": "TZ1"} + }, + { + "public": + "bbcedea4fb56ca2bc7dc80fcd76034e490a237a4f2162c602430462b66760494", + "address": "tz1YzR9HTAJbu1H9MaBVSGj9N9wxNxncWKCm", + "decode": "9274b2181caa77b8d480efb8bc17809f7b414eca", + "params": {"prefix": "TZ1"} + }, + { + "public": + "63f8c103108f9a91de2ca1f280c73668c55331805e5b822f8ff3d6b96a93648b", + "address": "tz1cFUC9RhZ8AaRL8zM3D61vTPapJsz2y8cE", + "decode": "b635dba0870ccdcdad43e0911a92ce11dbd352f3", + "params": {"prefix": "TZ1"} + }, + { + "public": + "6a87b69f98f01f49d1201ee021324082328824e898f4d38fc94d680292152caa", + "address": "tz1Y9Y6PGDtLK9yL7ADDMJUq65zSpk9V8zJe", + "decode": "89361d78ba5816c64c5b81b151409f731c63542a", + "params": {"prefix": "TZ1"} + }, + { + "public": + "9eff89f786a9525e967b8a63cddc70e10b0b568c0fdeb675ad2febd54dbcee2b", + "address": "tz1f4monATLFToiHJnEpJhfNts6TU7xiZq45", + "decode": "d5185d0964b76d2a57f194e1fc773baae255d5a9", + "params": {"prefix": "TZ1"} + }, + { + "public": + "c15ef001fe5f318ce39b9e8d212efda413965515496abee5b5eac5147147051c", + "address": "tz1U9EL5iejcmM6rmeUBfsuTSg7UaKCpbvt2", + "decode": "5d46c892750607cab8c2de809ddeec053fa80399", + "params": {"prefix": "TZ1"} + }, + { + "public": + "5aa0b2bad70a91810803c20348cf86a729bdd3556b3a67012a628303ef14e387", + "address": "tz1eaA5mZq1y123EXSabTMrPqZwfZcJedy5i", + "decode": "cfaee534db2b8994dd2a7b1815f1012c84c034ca", + "params": {"prefix": "TZ1"} + }, + { + "public": + "798a47963c7d9822b3ae37a28c787b45d7e215783f57d00501ee97cc0e10f27e", + "address": "tz1S5JqJDFQjdFEL9cmndvwu3SfVxN7Wxhgg", + "decode": "4698a0a92551501ea30145b53dcbfb1830242c0c", + "params": {"prefix": "TZ1"} + }, + { + "public": + "83d2d5f6b4a18db4c450260490b65903d19961550b362972eb683b660cac4aaa", + "address": "tz1P28FdpV1oBfuo1h4qqs3mcwmqoaGQ5tvC", + "decode": "25162b9813a3c1be1d5a20e490835082ac758342", + "params": {"prefix": "TZ1"} + }, + { + "public": + "0ce298284c36cf909eafcba0442b773df41edda0a6737e919fcf253597fd4e5d", + "address": "tz1RzQV4xGURVDuX4FNN1hEaYfopthfVoy2Z", + "decode": "45ab43e2fbaa4574c18661208471d5f026afb16c", + "params": {"prefix": "TZ1"} + }, + { + "public": + "67495c48dc924d5557b2dce6c75f13f5e9042cbff0929a98f62ec89fe043fb7c", + "address": "tz1aYrkwPmJ1T4L1MdYKhS8ucj6985XJ8haN", + "decode": "a38f83abb3a603c935b8ff8c5b976531c1a4a000", + "params": {"prefix": "TZ1"} + }, + { + "public": + "3a06bc3121e016d402a9ccabd1cde6903c21cbc6e299423c24693c85d83dc228", + "address": "tz1YnfCGxoV5JbkNUix5ASwCkLp6bpGt88Ba", + "decode": "903b6f0decac2fb8e4f02a3b549160a47b44e635", + "params": {"prefix": "TZ1"} + }, + { + "public": + "5dcfc5dcf5584359c6869362681cb870e8f7400468a8f32cd5caee5a9d527331", + "address": "tz1iMEvCXCKHDkGqKMw4M2F2SqASMzWoEfHR", + "decode": "f91e06eb4e713d23555704dc5254e2dbb8a5fa25", + "params": {"prefix": "TZ1"} + }, + { + "public": + "260b0b04ba32adedd408347e838074e320955650b6d5cd372912d2c1f7f9e626", + "address": "tz1bt5s5ZAkxStq8VQU1Rx41hMMMgZio3f6E", + "decode": "b22a7bcf27259aa160d242b9255ad26b5fe9de4d", + "params": {"prefix": "TZ1"} + }, + { + "public": + "93e026493578b212f4fa927eaee53ae559df6ad241633335cd9bd1ba24855457", + "address": "tz1dR2o39XaGA5efynZ726gVJandiqXwZe6y", + "decode": "c2fcf11905c444ab37470f369e405fe70eb34f23", + "params": {"prefix": "TZ1"} + }, + { + "public": + "eda658b350027fd80d7644e5fb72fe7c3c4a11b04b34352687ed3470ed453a79", + "address": "tz1UtXzHk7Sj3qDsMAwqEQUGoxmx5eLNVuJh", + "decode": "6577691e7c411e1acda8d54992103bff5190312b", + "params": {"prefix": "TZ1"} + }, + { + "public": + "ec346796fa3e10440d0818ceaba4548b845df49eb9d6c227cd206d2d8a210dc6", + "address": "tz1M5bBhGUKcEpfo7gg3T1gkb1PQfarPCHUS", + "decode": "0fcda5facca413b680a1dc0af30a4e84d05b4fdf", + "params": {"prefix": "TZ1"} + }, + { + "public": + "34e0f7bc3b890c4fe0aef066875a2ffb27a453a244395badf654ebcf72f2d903", + "address": "tz1dhFPHdyrdarKnn9njnRRi2fE8hwUcPbPp", + "decode": "c60e1b720a42eda547da82cfb16cd903b08ad7f2", + "params": {"prefix": "TZ1"} + }, + { + "public": + "d9504466db6262bf468ae7c520ce0dddb69a5c5f58c0ef2be3f6f75c94479cbe", + "address": "tz1KtMhjYXwuVWyKj3xbBMar6AJ4bdP3gw16", + "decode": "02b5b1561229cbe323ebdd5b2ba336c4b0f4aee5", + "params": {"prefix": "TZ1"} + }, + { + "public": + "d693b00d33925809c5e63d66bfb2204586e0a4b134233a64db23d43a2c823d98", + "address": "tz1gMjkFrjGKT9nMswkwvF7wFdt2eBRGqWgH", + "decode": "e345d720e2c99e503de19f73f5b9ed4a70fe710c", + "params": {"prefix": "TZ1"} + }, + { + "public": + "8238c239ec33bc30402ea961e98278474e1984cd9f26787cbbad9446cb2c00fd", + "address": "tz1XRnBnLEwDUJQsL9eBBhMxSoKPrpAmYQNg", + "decode": "815068b5efd2c376e89556b62d2f18e0c489fd1e", + "params": {"prefix": "TZ1"} + }, + { + "public": + "d4ec23f9a51a3afbb5d5e0609cc6f2172c9c3d24d948adb694830bff698a9411", + "address": "tz1bzPPTsiyCEatT9NYhq8i66NRh7d5B9FDR", + "decode": "b35b9b8b63b3cee4e9e409af038c765b8d502112", + "params": {"prefix": "TZ1"} + }, + { + "public": + "721bbf62093412db0894790148ce76f44f8e75b14c30d532c6d4cf9fd536cf70", + "address": "tz1Lf6DZ1HKqmaLekvgpPmnt8hyc1hZVgxwv", + "decode": "0b2b7be951ca59f693d53bf5e3cb5aff7b60116e", + "params": {"prefix": "TZ1"} + }, + { + "public": + "385f451b62217ed7996e922028fc9cdee01dd9e86bfd360a955a8c8fd33d15c4", + "address": "tz1ap26NGPtFq2ZSYoPBmH4pyMWibgSG2iTz", + "decode": "a66d8bd4b6658e724fccf2f186b858acad4c6569", + "params": {"prefix": "TZ1"} + }, + { + "public": + "19aaf406d4dfb7eaf32c3f0ba25473ca1ad9682f888d8aedf1c90c9372f05466", + "address": "tz1X7JwWviARyrYpF3j7yMgunYjXRSPrFDDQ", + "decode": "7dd22d8d0150a6019960605c2a1e905a6ab3c6c9", + "params": {"prefix": "TZ1"} + }, + { + "public": + "24bafd1b8a673ad0b3720d35e91b05eb715ab1346e06f0eb7979b3f291082202", + "address": "tz1fTHr68AmCGD1uVC9EAtZsBnxvUtYSyVxd", + "decode": "d95a972f3a2fecf69bf63eabfe39b2e81566b95f", + "params": {"prefix": "TZ1"} + }, + { + "public": + "15d0d30af88a77c7ca3758cb3f808b75d11a60cde44f78cff7228e83a4d6cc35", + "address": "tz1VkVbFp59YcktsxDNZ7c7Xovssy8AZ9js6", + "decode": "6eea352b3b2f362811d1e2830d32ba7014986dc7", + "params": {"prefix": "TZ1"} + }, + { + "public": + "94b0bf03f55939c27018e44e1aee06458e810d7705a8afec7bb4fd805f3f9e45", + "address": "tz1gi1KZ1PMNNPF8TTfsBusVpzFkfqvVkUaM", + "decode": "e71b28ffe6d63aa070cea079588689ccefdaf862", + "params": {"prefix": "TZ1"} + }, + { + "public": + "6bdb3235efd6246b3bf73f94dc7bdf04be43d8eb51838a5fb79b06d92d49d38e", + "address": "tz1MmxUb1W7C4szD1iauWbUsHFzSZM1Mogzh", + "decode": "17700f5346ac56d553fcd2b5247cc6cdad486237", + "params": {"prefix": "TZ1"} + }, + { + "public": + "bdad0028a40bfbb93f53db9daf61468d053a886c880db0e4c197a38e9e65f5d0", + "address": "tz1ckRsFv5ryHXa5S75FSwNaX9ADmPYxXG8M", + "decode": "bbaffabd302d0cfff720ead5576085baa98e531c", + "params": {"prefix": "TZ1"} + }, + { + "public": + "db28f4a83b66e3668bf790ea67037fca74523393c82b5a08e7623d175ffe9eab", + "address": "tz1Qe1BXSknTyFVsEszP9i7hRxVxysNJk7Pg", + "decode": "36d75e4500465e3ab4cb23cdfbc483fbbceb6e27", + "params": {"prefix": "TZ1"} + }, + { + "public": + "3b6448347fa64617f801eefe87606741aeaed49d2adbe622844d0f08b3c4fced", + "address": "tz1MP3ha7nPuGjbjNr9Ua1LXrXwi7BLFHzcA", + "decode": "131ada794201cfed06274f7b30987fe751e666f0", + "params": {"prefix": "TZ1"} + }, + { + "public": + "7e7b34bd3674f8f030f55a30808d7ed1d66a6ef87879de0b600ee229626a8c12", + "address": "tz1cH571JB1j87hDLasCa48ScmWb38Sp2uQv", + "decode": "b6836a9b1e2c66dbe86f5cf959c1f2650aa4e51d", + "params": {"prefix": "TZ1"} + }, + { + "public": + "832b9cc21a2df1c105631dc0487d8c9c2d80e2c8d8d91535f80867135bfe4b71", + "address": "tz1dwULej4H3JkeVaJejw8PMjgvuSfiaarwD", + "decode": "c8bebe9cfe619cf69e9d58251546ec005f34fc6f", + "params": {"prefix": "TZ1"} + }, + { + "public": + "9cfffe37206e78021ef0f5b2bade1ad288ce730204521054e938e6ebd402257f", + "address": "tz1a5oiMBQ2n1sEn3X9meft983hCojiwEXEh", + "decode": "9e71bde80ae02614ecf99d59b807fdd1884904a1", + "params": {"prefix": "TZ1"} + }, + { + "public": + "b2224cbc32ac8f0084bc217ffe0401802e68e8da6ffe1fc1e6ac5963417a68ea", + "address": "tz1ZbWmMTxYykRPumDLEpa7snuJVA7Xeuk1s", + "decode": "9917f27f44ebbf06d3ef748febcd82690b173646", + "params": {"prefix": "TZ1"} + }, + { + "public": + "f0f398702228858184d7aff3cd3234e52b34cec17045d1e889d9554acfc7e687", + "address": "tz1LZsZiqvuqjGR72WsrJzSJSt9yDStTCAru", + "decode": "0a2ed7b844fb1c0cdafb1327c4f38dcd241f6f3b", + "params": {"prefix": "TZ1"} + }, + { + "public": + "e424913af66c4d9079e8947d1bb1baebe38f81aeb2924c71c3a5b7b4ce82c2f7", + "address": "tz1hqtkhzdNbahDkKKFpcAuTAYgD2AJPDfWF", + "decode": "f39121e2c78fc1fca7fde3d7a513817ac94bd002", + "params": {"prefix": "TZ1"} + }, + { + "public": + "db4da9e4e239cfe9cd37fc08c74d5db1ec20682462f3e7c93d4307497ae72944", + "address": "tz1YuE2RvbofjGsowVusVPeLNwcTJPtPPfpQ", + "decode": "917955bb5669da6e15e6fd5b9ae55dd21fe2baa8", + "params": {"prefix": "TZ1"} + }, + { + "public": + "36a13786ac771f8ddda09c20875c4ff76f9ffea4a575a14f5f25855742571b00", + "address": "tz1YjXo6h5qfmQ4Z36x3hWZGthMkKNPd4uHu", + "decode": "8fa402508ee052357162b39351bc1be97922fd96", + "params": {"prefix": "TZ1"} + }, + { + "public": + "f3641b3d39394a7bf33c1470de0be8c1be470c964eda0fab42c552d65ba68de9", + "address": "tz1WGCYAtEfEuJeQFUWBQrizuJggNYaNmyEc", + "decode": "74887385b8e068e55c9a6727281d4ef7235a39d9", + "params": {"prefix": "TZ1"} + }, + { + "public": + "cdf3b42b1c5d6aad3e7b232bf89668776059977b1c5efe39949b33dd6b019f03", + "address": "tz1LbomsytznhWd8WyzdCK2W591Q8hJJLH6d", + "decode": "0a8c82b1a4fb475af076db30cb4fe595ccc4c4ce", + "params": {"prefix": "TZ1"} + }, + { + "public": + "d4575dadd21bc6180269ee1617a60c9a4c03daec8380bc56e2130b12db5b0fe5", + "address": "tz1Urab5Z8XChnpdpq9jjVex5zNPzQcCX1LM", + "decode": "6518bfb95f3a2d3e8db57e4aa0c70679c0bf08f0", + "params": {"prefix": "TZ1"} + }, + { + "public": + "9fe53a2576837af478b41358046aa0d5577c4c1d086e570076b8b60e43cc63e1", + "address": "tz1SX8pPwuGxR1B73fYb3Q4ZkJ7dSpDaEUeD", + "decode": "4b7b15007cd0296137be2429bab04737b26a4fb2", + "params": {"prefix": "TZ1"} + }, + { + "public": + "6721ebf01801cb9d252a3fcb269089fdf19e7ca122f3032e8be9f18b45d15402", + "address": "tz1g89XFcJ2eA29MeB8rmEVSZqgdxNsCkv37", + "decode": "e0b3dd292246971183c7c5701d9b0bdae815f14e", + "params": {"prefix": "TZ1"} + }, + { + "public": + "50356a761dd22ad372c0a0ee0a0c2bce9993e024c9061df62e534a441667c05f", + "address": "tz1e8n8rxLwa1WC4ZdJcw1kkuCQyZkVb2Joi", + "decode": "cae22d16fdba91a06e4c5f7c5338c1060e1fb90e", + "params": {"prefix": "TZ1"} + }, + { + "public": + "523db295cffbfdd65102df87c7f3de4ae739a77c2dc47a0e75714be19ebe4b3e", + "address": "tz1gFzr3kC339pWF27fy33kSg6JRPqDXNAj5", + "decode": "e22ff304da74dc6d96ff727826252813afa14f03", + "params": {"prefix": "TZ1"} + }, + { + "public": + "22b57287e05afdd0855732a0768c1c759984ad10028b17e28cec1c657ff1df3c", + "address": "tz1Lwd7w3XugsHRAw8bjYn1DpmYMp6re6s1B", + "decode": "0e4bef9f972d435ce3f3145dec840b1cbcc16dad", + "params": {"prefix": "TZ1"} + }, + { + "public": + "568c0fae6813ef0af775af04e3a4866c6eb6d92f42aa0a82ead13eb51a17261e", + "address": "tz1c6UfAKUcDUWoU7wGe5VnCtqhTgDdxMhtb", + "decode": "b48280c9b5ad5a1e3367cffad4a48b71624e9390", + "params": {"prefix": "TZ1"} + }, + { + "public": + "14607b36da666b3fbbd4107ff8443d3a9a9b7a705f834231982953f5654249c7", + "address": "tz1Z8bbaSJBSGJG1Vz12S2fvAtr7xL2TQdHn", + "decode": "9400bfd6c664947492f459866f1ef89a7018f266", + "params": {"prefix": "TZ1"} + } +]; diff --git a/test/address/xtz/xtz_test.dart b/test/address/xtz/xtz_test.dart new file mode 100644 index 0000000..1241c07 --- /dev/null +++ b/test/address/xtz/xtz_test.dart @@ -0,0 +1,20 @@ +import 'package:blockchain_utils/bip/address/xtz_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("xtz address", () { + for (final i in testVector) { + final params = Map.from({"prefix": XtzAddrPrefixes.tz1}); + final z = XtzAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + + expect(z, i["address"]); + final decode = XtzAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/address/zil/test_vector.dart b/test/address/zil/test_vector.dart new file mode 100644 index 0000000..94d78c6 --- /dev/null +++ b/test/address/zil/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector = [ + { + "public": + "032e5c8ffd63d76eb9f3c3e8b3cce025362daa478b42266e113c709752de52a797", + "address": "zil1fjhduvl5fhg2qas70p0fgxex34deh474qntc6x", + "decode": "4caede33f44dd0a0761e785e941b268d5b9bd7d5", + "params": {} + }, + { + "public": + "0358755d3d35aacf5ff657fc42988765526ea931383d7d3ee23eb3cd9469d696a6", + "address": "zil1dk8e0l96ym96qzzce3nuz46tqq6nwcajppxgs8", + "decode": "6d8f97fcba26cba00858cc67c1574b00353763b2", + "params": {} + }, + { + "public": + "02a365224cd84ba7603a589a1e45f6540f379063fd2cba15981f91c1b948b589d0", + "address": "zil122pvcm272s0y6ery4lhj2pfrmyfter8c8vzvxd", + "decode": "5282cc6d5e541e4d6464afef250523d912bc8cf8", + "params": {} + }, + { + "public": + "03a9da9830661c50fd865bdf50651343b51ed09f9420d04c85e2ecd15dea02e8d0", + "address": "zil1ysufc0jj4fc60ldu6ethlmgu94hyymuckf58hn", + "decode": "24389c3e52aa71a7fdbcd6577fed1c2d6e426f98", + "params": {} + }, + { + "public": + "023ac94c7d265e5116f4c61588534e0fef6d8497d2c262db481c595c8eeeef4275", + "address": "zil1alk0ypy3z6dwe3npcuvtj64h8fty4f56t5t9e2", + "decode": "efecf20491169aecc661c718b96ab73a564aa69a", + "params": {} + }, + { + "public": + "027a34bb3b36d9bc4cd34d8204503dae00cea920bea1450f0d692f53ad35a88f46", + "address": "zil1xsd9a6eh45jmu4y3al58fcp5yu889xz2pjw0nd", + "decode": "341a5eeb37ad25be5491efe874e034270e72984a", + "params": {} + }, + { + "public": + "02ed38306c8d106bf1062ed4bc8c12c0a323533f90cb3ff791d6a49e42b7805007", + "address": "zil1xl690cwet2upy6px9neyrmqcwpec6xhvqs2grs", + "decode": "37f457e1d95ab81268262cf241ec1870738d1aec", + "params": {} + }, + { + "public": + "02abe07329cd57eb5f4aa4a86231775a135a99bd31109015f9370c030efec84edb", + "address": "zil13r8qkqflcqrlt69cg3mp7mf6qjuhtdj7klrdsz", + "decode": "88ce0b013fc007f5e8b844761f6d3a04b975b65e", + "params": {} + }, + { + "public": + "0215414ebf08233cd41973298337a0ba85da26dfc38b482c40625b80e3ab512cd0", + "address": "zil1z0tuqd5n8dunl9046fyavh034z48ldvnte5mw2", + "decode": "13d7c036933b793f95f5d249d65df1a8aa7fb593", + "params": {} + }, + { + "public": + "02e7ae0b407f38eab68e0a236596ce0c31f685c539ca5a50c26f470b7f18eea917", + "address": "zil19q05nv790gske52zldlwnfcfq74mmrs2e296hz", + "decode": "281f49b3c57a216cd142fb7ee9a70907abbd8e0a", + "params": {} + }, + { + "public": + "02a29290a2e97e6c0d749f6d1a597e9f5a82246d80768f7c9ff1d4bd419f53318c", + "address": "zil19thl6znj992nj5dl0j8fzaanjyuegpw45kfh3j", + "decode": "2aeffd0a7229553951bf7c8e9177b391399405d5", + "params": {} + }, + { + "public": + "02daea1f46d525b4a56fa94364573dc7e3155cb3647804b75062328191c3794c0b", + "address": "zil1xhx9yudztlk94pqxmv6kguhgkgfn2f6m8nmwsz", + "decode": "35cc5271a25fec5a8406db356472e8b21335275b", + "params": {} + }, + { + "public": + "0366fe207b646e2259b06a940e5532ce47f1c83c5f0152ef2065da9e6ee7d600f0", + "address": "zil1c3zj4kpenqckm2t6h5mfp8zzr9gvfaldtmnn96", + "decode": "c4452ad83998316da97abd36909c421950c4f7ed", + "params": {} + }, + { + "public": + "02bdfaa35d701c1baf21db2a0028caeb386212e8728206a61da380b526524215a9", + "address": "zil1swwuffelmnv546d8prr9z8mr4ex5z2u9yxp52f", + "decode": "839dc4a73fdcd94ae9a708c6511f63ae4d412b85", + "params": {} + }, + { + "public": + "0232b2d9e7631da9eb5cbf6360ae4e026144d406d935c1893b0a89d7e64e2e677e", + "address": "zil1pmesf3mr0zz6cslwu3lwr2c9vk6d0pwpj89k6v", + "decode": "0ef304c7637885ac43eee47ee1ab0565b4d785c1", + "params": {} + }, + { + "public": + "03e35f85547ab43f10496f35680f3131cd1d5b96561271a3fc3733a8b7d3abbe5b", + "address": "zil19xypw2j24dwe80f3vcf0wnw7z3n7hzhun52kyj", + "decode": "2988172a4aab5d93bd316612f74dde1467eb8afc", + "params": {} + }, + { + "public": + "0274ec53c75825c1c89360759dc2dfd6317935158e2be25aed26d8cadacb575349", + "address": "zil1e4q59gnd2m7nnhxrqrg45ctncqn7e2qr0mcfw9", + "decode": "cd4142a26d56fd39dcc300d15a6173c027eca803", + "params": {} + }, + { + "public": + "03f65e668ad9d23e198f87537e4d9a164495ebbd91d65838dc6d4ac63a2f99d0ea", + "address": "zil19dd7aadfd6fxtzk9eh4uu49wr60e777wkwtwln", + "decode": "2b5beef5a96e92658ac5cdebce54ae1e9f9f7bce", + "params": {} + }, + { + "public": + "0321a1491baa123f3735f41d3fcd87079ae0824938e7e14f0e92185e52880eb88e", + "address": "zil1c5qr0de0s85jqpwf4w00fvgkgfknm9enwkhl5p", + "decode": "c50037b72f81e92005c9ab9ef4b116426d3d9733", + "params": {} + }, + { + "public": + "0399a382ca0d380b709be13357f388914d1c410a6428a57a974dae837790adca62", + "address": "zil14m2dl5k6x8t4msyxqtuj8tqszef8yzaerkfsey", + "decode": "aed4dfd2da31d75dc08602f923ac101652720bb9", + "params": {} + }, + { + "public": + "03cb703ac208ea45ccdf669e6efae72a7814a7bdf9919ecc00e36224f71d2df456", + "address": "zil1zetpayqtlnag3aazv2z5y80qntjvm3t780pdz9", + "decode": "16561e900bfcfa88f7a26285421de09ae4cdc57e", + "params": {} + }, + { + "public": + "03b31c7980536ef753e491c0a1bcb37e568badf5976a950b00cbdb4783aa94c1cf", + "address": "zil1mf5gypvef48ll90wevntd5z3lzr4jklla4wuhf", + "decode": "da688205994d4fff95eecb26b6d051f887595bff", + "params": {} + }, + { + "public": + "0313b964befbfee5c960708bf2bfac777ab285d48c0c36be44819f788d8b0c4241", + "address": "zil1g9w2k6h9epk2hrxfxrs23f9dmwgettv3uzq773", + "decode": "415cab6ae5c86cab8cc930e0a8a4addb9195ad91", + "params": {} + }, + { + "public": + "032f0888c0fe535f87e744fd7cc8e72dff8150148c080e90564fd68c0cdeba8a8f", + "address": "zil1rjnzearg89jdjgxzey4wcdwy9s55xskqecm7z3", + "decode": "1ca62cf4683964d920c2c92aec35c42c294342c0", + "params": {} + }, + { + "public": + "03e50a093da2a6ae86bee419a954a9ef0fea409fca67eed952a2a0f7d9fde5390b", + "address": "zil1gelzdtu268nsw54g5p7pgqu2muztlsu74htz5l", + "decode": "467e26af8ad1e70752a8a07c14038adf04bfc39e", + "params": {} + }, + { + "public": + "038c0a8d6ca1078dc2c90e146948db761eb2672e3275623cc4a2f55f90a317a319", + "address": "zil1rh4h328eytz65eufpptw9c0sqmzggncgjvw8hp", + "decode": "1deb78a8f922c5aa67890856e2e1f006c4844f08", + "params": {} + }, + { + "public": + "03b8a1941eabacbb82a1e6b364924b3aab563150a42e8c8473fbc476e724139f3d", + "address": "zil13jd33m4nllply283rfudldmhzmt7qtg5j9uyp0", + "decode": "8c9b18eeb3ffc3f228f11a78dfb77716d7e02d14", + "params": {} + }, + { + "public": + "030a1969d1a9a2213bff27850b8880f76c6f6ad106f4d1542f033249ea7988a434", + "address": "zil1z4yfv4jn6k62zz44xv9exq50vp5sktyl5ud35y", + "decode": "1548965653d5b4a10ab5330b93028f60690b2c9f", + "params": {} + }, + { + "public": + "03bd773fd07106b9b940324c515c772b6e70aaabc7c34a08682ad8d4103e80edd5", + "address": "zil13hcr2qfsxal7aks3kjzqmv4cnl3z98nhu0y9wq", + "decode": "8df0350130377feeda11b4840db2b89fe2229e77", + "params": {} + }, + { + "public": + "0224160a03fe6875071f8165033614934400828bfc03018724a93682f07f02f91c", + "address": "zil134msau9w5ms49c2k22y40yzqhcmp87ag08dkuj", + "decode": "8d770ef0aea6e152e1565289579040be3613fba8", + "params": {} + }, + { + "public": + "02be0d5bee6c9e5a8e76da1169b59dd904ae2dc08fa10d343956d7806c655cf996", + "address": "zil1em68a3twyr2rfskp2ls6rwf5fnsgvmkkrplr85", + "decode": "cef47ec56e20d434c2c157e1a1b9344ce0866ed6", + "params": {} + }, + { + "public": + "02d0ac1a8ad6bc50190766305c897f1aec7063a595f82ce6feeea733131edf4518", + "address": "zil1r85wqnpplt772yl46ul7p45r77p0h8q6p2n2ga", + "decode": "19e8e04c21fafde513f5d73fe0d683f782fb9c1a", + "params": {} + }, + { + "public": + "03e81ae4bcd7002174359138883f159476f5e4a2b488640023898a3766f2f9ff0b", + "address": "zil1q450cnq40xpx0wxzjwyew0k7rg2qcpw4v0twq6", + "decode": "0568fc4c15798267b8c29389973ede1a140c05d5", + "params": {} + }, + { + "public": + "02e9bdf38ed451d28fdbdafd83e24d64075e5eb552150b33928cea72992d432e54", + "address": "zil1rpwf2upwlf50wct95xne2xnz05eetfcq3hnd6g", + "decode": "185c95702efa68f76165a1a7951a627d3395a700", + "params": {} + }, + { + "public": + "02813b32b80f46c87787c6fa72798e69e4abbe48832213d451a5385df3778ba824", + "address": "zil1vyucndr2uncy2r3cxdddx0945qplad77wmtcv9", + "decode": "613989b46ae4f0450e38335ad33cb5a003feb7de", + "params": {} + }, + { + "public": + "03933d16d4b26ca025d698a52146add44f68c4a4302431bd9f50895cf219eebe76", + "address": "zil1rm9z2zscswc4y4pll9fzary8vqn2kt09j3auar", + "decode": "1eca250a1883b152543ff9522e8c876026ab2de5", + "params": {} + }, + { + "public": + "03984f39e7825867094daa0ea4834e75669944034b59fdb3bfdd76b1d47b01e06f", + "address": "zil1xw5800pc45c32jhrf0ddca4qj8xpdcsgl8e7en", + "decode": "33a877bc38ad31154ae34bdadc76a091cc16e208", + "params": {} + }, + { + "public": + "02d130b849c0a62788a83e1313435db3417d40464ea05a5ef0d76ab81d10c86210", + "address": "zil1ymnr9gxjzqr6u8pdm7tvqkxlg5h09fdhjzfnej", + "decode": "26e632a0d21007ae1c2ddf96c058df452ef2a5b7", + "params": {} + }, + { + "public": + "03c401c97a4ea344a178b61236ae3e8ba7e32cc0540777ec2389278c49c07354ba", + "address": "zil194s8knsapnkmchrmamrt53jevx4z9mwtvqfg3p", + "decode": "2d607b4e1d0cedbc5c7beec6ba465961aa22edcb", + "params": {} + }, + { + "public": + "020f61bb9142d001ae86d17bc92f53399cc1f317fe112664a3d78799abb1ee90dc", + "address": "zil1ce0rpvdsf5px7j7066v6cm2fgfp5hl36gnmkkh", + "decode": "c65e30b1b04d026f4bcfd699ac6d4942434bfe3a", + "params": {} + }, + { + "public": + "020c41c98dda63ef56714badb671cff041e2e301540c40338361471dba6a3a2849", + "address": "zil1k44zaycctajlgshnc333zvtdn9kv0qxfra0q8m", + "decode": "b56a2e93185f65f442f3c46311316d996cc780c9", + "params": {} + }, + { + "public": + "03d2ebcda6be3bce847418d339cf01f31fb6518ca58e8ddd679d9c588ca314eca1", + "address": "zil12ve6yeq48wqqy89ypj83jduspwmk4qrlykpcvc", + "decode": "5333a264153b80021ca40c8f1937900bb76a807f", + "params": {} + }, + { + "public": + "03fa1f55652b1a510e3914baa24f06e1418ee19acb84200f4cbae3f56d049605a1", + "address": "zil1qf56u6nt7zukwel2rqvhf2yp72sgvx2hwcu7gk", + "decode": "0269ae6a6bf0b96767ea181974a881f2a0861957", + "params": {} + }, + { + "public": + "03ec193861a2d58234276f091a004fbd0ff9843fc6070be615da791102a839d967", + "address": "zil16lu4z2kaqq0d6t8uqf0zeshd8wn9qs4cvrlf8y", + "decode": "d7f9512add001edd2cfc025e2cc2ed3ba65042b8", + "params": {} + }, + { + "public": + "029e00a3e803744bacd4a12e9ad524c68a8d6dbb513f19dbe9b96ec495a1eda966", + "address": "zil12z30plt93adrwea4mdgxu9yxgxqjsxyu6n2ffm", + "decode": "50a2f0fd658f5a3767b5db506e1486418128189c", + "params": {} + }, + { + "public": + "035c105390d4b7bacc4429cfa22ab8849f40f0bf2aa6191a568777423a06b02e39", + "address": "zil1m3jp78dxq9yyuan78f9hqnyxlnvcg9rtyuucs8", + "decode": "dc641f1da601484e767e3a4b704c86fcd984146b", + "params": {} + }, + { + "public": + "03c96ca2d1213419894273a1dda300667d45d24a133955ee8b05b9afce1e0d3b37", + "address": "zil1elgkz3ha376c0agn4w6nhmqdtwn8zhckr36esu", + "decode": "cfd16146fd8fb587f513abb53bec0d5ba6715f16", + "params": {} + }, + { + "public": + "02659f2f385f8e4cc4da827690ec67af9908306d3896cc3bcd360f276ff090c69d", + "address": "zil1739dtz6z6280rlz3wjrtvr7u2tr0mrz5dcl8qa", + "decode": "f44ad58b42d28ef1fc517486b60fdc52c6fd8c54", + "params": {} + }, + { + "public": + "0242e3bc4023ccdc37106850484f5e2749535a718444acaf7b6f4246399c301d81", + "address": "zil1yne79m3daexfu48dkf679rj25v6y80ggjc5ap2", + "decode": "24f3e2ee2dee4c9e54edb275e28e4aa33443bd08", + "params": {} + }, + { + "public": + "02866b88d53851547082450c95695091881ee50a3e5fed96151a2f9e62d213ab07", + "address": "zil1047fjvzevls8ply93w5qt9q36q96x79swa4z3t", + "decode": "7d7c99305967e070fc858ba8059411d00ba378b0", + "params": {} + } +]; diff --git a/test/address/zil/zil_test.dart b/test/address/zil/zil_test.dart new file mode 100644 index 0000000..33d7068 --- /dev/null +++ b/test/address/zil/zil_test.dart @@ -0,0 +1,19 @@ +import 'package:blockchain_utils/bip/address/zil_addr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart' show testVector; + +void main() { + test("zil address", () { + for (final i in testVector) { + final params = Map.from(i["params"]); + final z = ZilAddrEncoder() + .encodeKey(BytesUtils.fromHexString(i["public"]), params); + expect(z, i["address"]); + final decode = ZilAddrDecoder().decodeAddr(z, params); + expect(decode.toHex(), i["decode"]); + } + }); +} diff --git a/test/algorand/mnemonic_test.dart b/test/algorand/mnemonic_test.dart new file mode 100644 index 0000000..7d46c56 --- /dev/null +++ b/test/algorand/mnemonic_test.dart @@ -0,0 +1,28 @@ +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic_generator.dart'; +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_mnemonic_validator.dart'; +import 'package:blockchain_utils/bip/algorand/mnemonic/algorand_seed_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip44/bip44_base.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip44/bip44_coins.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import '../quick_hex.dart'; +import 'test_vector.dart'; + +void main() { + test("algorand", () { + for (final i in testVector) { + final mn = AlgorandMnemonicGenerator() + .fromEntropy(BytesUtils.fromHexString(i["entropy"])); + final valid = AlgorandMnemonicValidator().isValid(mn.toStr()); + expect(valid, true); + final entropy = AlgorandMnemonicDecoder().decode(mn.toStr()); + expect(entropy.toHex(), i["entropy"]); + final seed = AlgorandSeedGenerator(mn).generate(); + expect(seed.toHex(), i["entropy"]); + final bip44 = Bip44.fromPrivateKey(seed, Bip44Coins.algorand); + final address = bip44.publicKey.toAddress; + expect(address, i["address"]); + } + }); +} diff --git a/test/algorand/test_vector.dart b/test/algorand/test_vector.dart new file mode 100644 index 0000000..11ea732 --- /dev/null +++ b/test/algorand/test_vector.dart @@ -0,0 +1,402 @@ +final List> testVector = [ + { + "mnemonic": + "canal cause father input health sort hand promote crime erupt snap bronze trick happy solution because farm escape address can law uniform crucial absent tube", + "entropy": + "082149a74a17353e1b2dac9c39939acb31f4a3d9d9139942d3060ef2beb58fa6", + "seed": "082149a74a17353e1b2dac9c39939acb31f4a3d9d9139942d3060ef2beb58fa6", + "address": "LT74JRUCTFB35LZT4NJV23ZHVWNIOGDMTUJ4ASCXDXDDP5ZQFURIZAHIXA" + }, + { + "mnemonic": + "hat wife olympic claw endorse push where pool unveil law because dolphin cram use same toe eyebrow despair label mandate casual head among above wisdom", + "entropy": + "4cbbbe34a1e2a4ba4a1fa8737f9f270c1499bedf97e38a024ff870d811a8fd80", + "seed": "4cbbbe34a1e2a4ba4a1fa8737f9f270c1499bedf97e38a024ff870d811a8fd80", + "address": "4RQA7QQCWRW3NYWXPJBTD55GIATY7YYFVMUHG6ECRGPAL4EDINHJOVBUPU" + }, + { + "mnemonic": + "food loud valve eager acid coffee wash tomorrow birth diagram anchor pact next iron leave flame neck catalog ahead winner entry they attitude above panic", + "entropy": + "d60a21e24ff480b4ec3ee4b538cf10eaa94ad9dd4f589dfc480abedf2582d781", + "seed": "d60a21e24ff480b4ec3ee4b538cf10eaa94ad9dd4f589dfc480abedf2582d781", + "address": "5GGUFBFT3KZ3JO7MFM6Z7B5QQOL7XAL2B5VAL5JJ6P6CDQRPIOAAEPCZTM" + }, + { + "mnemonic": + "silent frost also beef replace hurt village seven soft skin trip symptom simple pulse custom slight tackle remove front prevent wash urge myself above loop", + "entropy": + "435e970e40615bbf81bec472a6b2d1c98d64b6d2a6cbe87eadbaa4bafbbd4b92", + "seed": "435e970e40615bbf81bec472a6b2d1c98d64b6d2a6cbe87eadbaa4bafbbd4b92", + "address": "I5TURDC5ZOPNSPY2EJMETPLZ3XGNGQJVHOVSTSSOFTY2C5Q3JF7CLAVYEA" + }, + { + "mnemonic": + "coyote before equip cross truck attitude cool regular coast blind city spirit venue bonus opinion poverty hamster visa budget total elegant scheme attitude absorb enjoy", + "entropy": + "8d0945984093f43af8c5b466f1c552203df9656c13a9452b3d3b5ccea302d7c1", + "seed": "8d0945984093f43af8c5b466f1c552203df9656c13a9452b3d3b5ccea302d7c1", + "address": "IZHKX6QJU7UGRPKXWXA5K4LUDU6R47QBRYKOTRWQXF6KTKAKDJK6AON2DQ" + }, + { + "mnemonic": + "response wrestle tuition balance salad bomb civil defy enact lazy race physical sting fossil rich belt explain insane limit siren scatter vintage update abandon empty", + "entropy": + "bd957fd41b21df6430a5394b9adf603ffaea6f29f714843add03973ce0d0d31d", + "seed": "bd957fd41b21df6430a5394b9adf603ffaea6f29f714843add03973ce0d0d31d", + "address": "2IYVLRHPRJZZJ4GEMK6YUAWARL32GC3JS4DZDYKHIBLVZ4FZ5UVQ756J3Y" + }, + { + "mnemonic": + "moon ginger job toward bread snake discover attract seven few maximum monkey file wash taste hire price treat hedgehog error fever return hospital ability craft", + "entropy": + "7c8418f060be8d34dfc70e2566d512f318abddc71b6c53f539d5ccb4aae0be2d", + "seed": "7c8418f060be8d34dfc70e2566d512f318abddc71b6c53f539d5ccb4aae0be2d", + "address": "7AJOJTZV6WK7BHI4PXONZHNY4DPSZL6NOBJSCOZS463YCMWTAHOH76UMTM" + }, + { + "mnemonic": + "unlock maple accident labor aim fit grass motor energy morning rule narrow scissors own destroy earn broken final tourist favorite tonight label spin above that", + "entropy": + "70e7e102c4a7025fbd6c9050fa637a31896078864745e4a0d5cb4145f2f03d9a", + "seed": "70e7e102c4a7025fbd6c9050fa637a31896078864745e4a0d5cb4145f2f03d9a", + "address": "XE4ZH775COKRUIJTUAC3PS6TTPMRBK4G7UXLILIKGCIM2JW37C3H6NZQGM" + }, + { + "mnemonic": + "upon alley mutual age toddler remember light plug open broken resource unhappy wedding morning hope pole pizza speed course drama talk stuff please abstract mouse", + "entropy": + "77a741244db0f1d632d0a6d924076fd57efc3fae8da72d45b46222c46e5ecff4", + "seed": "77a741244db0f1d632d0a6d924076fd57efc3fae8da72d45b46222c46e5ecff4", + "address": "XGZINQRCNXL5D53NKNBDEUQDSGXNSWTF7GCC3AORABSVHOQ62DDEQ3U27E" + }, + { + "mnemonic": + "major toilet spend bird brown debris olive honey image inject vicious annual gaze happy build skate book object flight tonight wrist blouse craft able black", + "entropy": + "33f4b8a269818ee144336d8a031de79750b0a3b903cacc00e6b1483eff604046", + "seed": "33f4b8a269818ee144336d8a031de79750b0a3b903cacc00e6b1483eff604046", + "address": "VXYJDRGMRR244GBZHZC7OUOVBGLYKBE3EN4BG4YGFIGEU7NGCBEBJRO5S4" + }, + { + "mnemonic": + "message great essence replace nation witness obscure camera bachelor choose tenant write credit one enjoy inner follow network more remain system ten talent absent sketch", + "entropy": + "5f8c999a6cabc9f20bb32089100abee98f996a566974d532a51f596bee7bafbb", + "seed": "5f8c999a6cabc9f20bb32089100abee98f996a566974d532a51f596bee7bafbb", + "address": "NM2KS3EPB5S4JA4SJRDYCNXFPFRQLMMAHMVR4MUTIJU6KRRFOATB6NNVMQ" + }, + { + "mnemonic": + "detail destroy above wash swing embrace joy regret view world knife gauge wine lawsuit swarm pen nothing pyramid exhibit draw accident horse spin above general", + "entropy": + "e2090f01760f6e2211afb49f6f7ff708c6fdf86d7ba2b6c42b9f26b400b73d9a", + "seed": "e2090f01760f6e2211afb49f6f7ff708c6fdf86d7ba2b6c42b9f26b400b73d9a", + "address": "6FZXW46QBVPR6J3NVMEUCII7PXNYU42XLQWBMWOP4YLKWSDMJG5K6FE77I" + }, + { + "mnemonic": + "ill kiss empower candy object bag gift rifle awful bless income nest arrive drift okay main smile flower cat anxiety soft decide short able early", + "entropy": + "87b31e9214024c4638acb985e805e54849060b3d538665669647a02067e3d858", + "seed": "87b31e9214024c4638acb985e805e54849060b3d538665669647a02067e3d858", + "address": "SISS4GO5LM3WMPV32IIS7NQBJTCFZNO57WTPRCRJODBZSO5FKNJDEHDRYM" + }, + { + "mnemonic": + "child purse angry always attack zero battle silly frog law pretty vibrant axis category obscure candy measure dirt bring october need cat fabric ability eternal", + "entropy": + "3fa1eb11783087fe6ba2c8e97a5f54377f88900853214fac4f3890e9498f2c2a", + "seed": "3fa1eb11783087fe6ba2c8e97a5f54377f88900853214fac4f3890e9498f2c2a", + "address": "KTRZUA7LGB2GQVAEF7RTE6Q4S3KPLGJ2OBDPRFJ76RCCX2NXC7DE5APAKI" + }, + { + "mnemonic": + "train action quality noodle patient delay resource venture zero april mountain scrap bonus trend disagree arm labor pencil length accuse vessel path polar ability erosion", + "entropy": + "38a7405e6189d0e7f056f2fdbf022117bc0ca0dba70be2ab28001b80f983ee34", + "seed": "38a7405e6189d0e7f056f2fdbf022117bc0ca0dba70be2ab28001b80f983ee34", + "address": "6MVVGQBVHPOEO6BU7ZFSBILTPS4RU6G76CU4RTL7J2TEU5ZJQZC6ZVETDM" + }, + { + "mnemonic": + "manual miss practice vital bridge accuse can junior zero dress input puppy negative stone crew rice pool case unusual army garbage dilemma square about usual", + "entropy": + "3b74e35251ef8d061c2479fdaf50e9e0fa49596b26b940cd88dcc1c0aff86c7a", + "seed": "3b74e35251ef8d061c2479fdaf50e9e0fa49596b26b940cd88dcc1c0aff86c7a", + "address": "D542VSQM37ZRR3KKG5I4LCBMC2GJD7I3NMIOF6KE6XTVO3OQO7HA6WWDFQ" + }, + { + "mnemonic": + "happy mad forget circle pony roof symbol argue diesel gaze citizen friend head canal spawn camp six market secret toy left void frost absorb put", + "entropy": + "476ba1b692f2d3ee8e9b0bec299852ce05358414da204e0e2285679e3fd6afcb", + "seed": "476ba1b692f2d3ee8e9b0bec299852ce05358414da204e0e2285679e3fd6afcb", + "address": "WDQES2PFO2YEGWUQ4FJ2OXV2S3V3JXUFP5TOR6SGJY2KWTOQ4J2YHX5MIY" + }, + { + "mnemonic": + "hockey robot lamp brown female fringe system outdoor kite robust rebuild letter jeans music ready wall phrase stomach laundry inflict wire over hen absent fire", + "entropy": + "63cbaef9d0712a74993b9dd9d3ae6609d8bb475ab6f61e8d75fb3617fe7766ad", + "seed": "63cbaef9d0712a74993b9dd9d3ae6609d8bb475ab6f61e8d75fb3617fe7766ad", + "address": "ROCX26GFATDJS4KWLBZQ7PUQ7KNEGH62EID35WPZMPUULM3BCE2UVB7R6U" + }, + { + "mnemonic": + "region cheap team obscure aware ordinary tube hollow sustain attract high uncle engine wrong mammal divide glare humble purpose eight resource brass airport absorb luxury", + "entropy": + "a4bd49bd8529087142fd6cd7b603d7c83ea5fad7f03f16bbdb5c6fc4db6cb0c0", + "seed": "a4bd49bd8529087142fd6cd7b603d7c83ea5fad7f03f16bbdb5c6fc4db6cb0c0", + "address": "DR7R2MTGDFZU6TCLFSPXXEABXBC4GGWVIJNMPON57QGE5ZXUK3MJMZX4DQ" + }, + { + "mnemonic": + "depart forum bar blush silent tomorrow fire adult battle arrange observe face security square say slab abstract various actual dream cry game metal able south", + "entropy": + "d6e9d6248831e490e7ca039a10c3301965e14dfff7ca0760fc0528949a7c8151", + "seed": "d6e9d6248831e490e7ca039a10c3301965e14dfff7ca0760fc0528949a7c8151", + "address": "T47VSJODYMYVZJHZDZLGETNGBA3F7NGWZWXFOZPC2Y2MYYGFKGNSVNZYBU" + }, + { + "mnemonic": + "key fit hip company divert fold indicate anger vapor crazy sock include flash song biology vast unfold process wrestle ostrich convince region dumb absent skill", + "entropy": + "d0f3d5d7e8e21f6a5dae088bb70c9c2737ac3ccfa2f169e7aafccfc917d27ea8", + "seed": "d0f3d5d7e8e21f6a5dae088bb70c9c2737ac3ccfa2f169e7aafccfc917d27ea8", + "address": "7NSDTADTR3BXGPJ3B7U7XKAFCCDVVF5JONQRCEKSHOBBPB46KYIDFW4WLY" + }, + { + "mnemonic": + "ring radio hunt huge hair version morning equal olympic emerge door trap elder filter limb exile stick spin captain kit lecture question wrist abandon flat", + "entropy": + "d035ecdeea2634cbff114cd22cd28274aea35939b04fad7e7444ae873fbece1f", + "seed": "d035ecdeea2634cbff114cd22cd28274aea35939b04fad7e7444ae873fbece1f", + "address": "U47B3M6UHEC2HNFCMINVQX4WG7IDIP23WFPMCVGBZMEJT7GDO2EQRXEAAY" + }, + { + "mnemonic": + "river candy fork annual current isolate change glow eternal miss increase final position guess soda vote rely weekend empower feature ozone better sea absent style", + "entropy": + "d655c8b696001bdac5c4636c7263e56835d49dc5f9f5ab453e9242454f563cb8", + "seed": "d655c8b696001bdac5c4636c7263e56835d49dc5f9f5ab453e9242454f563cb8", + "address": "APRN3YTQV4OFMCBBUDPFPERDGUBZUD26IMCCVMOIJSS6SU4JZRV5PZ7H3M" + }, + { + "mnemonic": + "quote fly foot loyal athlete pilot camera dice icon pigeon enhance sugar assist gasp render weekend game fame extra derive chicken panic vocal absent furnace", + "entropy": + "807dd6b54818879316643d822b29958ced8680c116f9f99a14a2b6d3937eaabe", + "seed": "807dd6b54818879316643d822b29958ced8680c116f9f99a14a2b6d3937eaabe", + "address": "AXF23DW7ZZMBXZNOKSK3PR6HFX6GZPQQMRNNTWL4U6LSQ5R6IETKUPHCMQ" + }, + { + "mnemonic": + "onion steak twenty loyal bind panel become hungry book expose fold twice reduce vast december bleak kitchen length bulk happy sad truth term ability traffic", + "entropy": + "d64475d649280b7e7e426fcc2814b5b40edac6178717d803203c8ed65ea7ef3b", + "seed": "d64475d649280b7e7e426fcc2814b5b40edac6178717d803203c8ed65ea7ef3b", + "address": "HOHMFHBZ2IUVUFJUATRJ2KZWVELFYNJZCIJIJZE3MKRC5AO6OP3QISBDSY" + }, + { + "mnemonic": + "lawsuit impact fall car loan test chronic dice rate cluster window reward abuse acoustic allow dignity grunt broken globe recycle happy allow remain abandon mango", + "entropy": + "f1735ca42482417e0f653d911dcbf68b9b0008d4003e392387c63e7bb41ab016", + "seed": "f1735ca42482417e0f653d911dcbf68b9b0008d4003e392387c63e7bb41ab016", + "address": "5P7Z4PHBWRTGSJX4F2RBFW6OO4XLB2VPYXYTHO6SUFL6MZ6A2DBOVFQOSY" + }, + { + "mnemonic": + "tragic scatter better spend tree coast strong increase breeze witness dream cash junior object shiver want lab obscure arrow space evil because fossil ability vintage", + "entropy": + "371f302b14fd73b3e4ba72dc283f8534923c60c6f8f6e013661904fd264f7c2b", + "seed": "371f302b14fd73b3e4ba72dc283f8534923c60c6f8f6e013661904fd264f7c2b", + "address": "6G6S46NOCSPMZM5EQNHEFRXXY3G62KDUMPXNXIHOF6NUKYNCY4UCNZ34QY" + }, + { + "mnemonic": + "wave aware camera traffic easily vacant void snap click mad amateur fatigue autumn blossom promote fee current knife layer reopen gauge trade bubble absorb obscure", + "entropy": + "bf1744416ccea2c1b35ecd5569610f3cd50760849554b0e99efc664bb09aabc3", + "seed": "bf1744416ccea2c1b35ecd5569610f3cd50760849554b0e99efc664bb09aabc3", + "address": "LEJYGDND5RETNCWOQLIQGO4MGGBTYCT3VQVUHHNEFLM7UFIOBFW7G4KIKY" + }, + { + "mnemonic": + "curtain assist love buyer digital toddler hurt elegant street task fantasy area crumble educate census powder gun impact heavy sweet spin water clerk ability tank", + "entropy": + "b171c308f7f19e8dfb8d47b78637a6b4601a1aa924a93f73dcd4bafd68df4f25", + "seed": "b171c308f7f19e8dfb8d47b78637a6b4601a1aa924a93f73dcd4bafd68df4f25", + "address": "YOUWJUBEEEAKVJQC5TGQ3CCCU5O52CI3TYQ62WPAN6CAOOCD5M6THWNHF4" + }, + { + "mnemonic": + "hill machine item document fire erode crucial huge skirt spice angry type reveal banner spider rookie cereal shift similar onion fame idle emotion abandon hospital", + "entropy": + "5d63a1ed06942b328da66e5566f411bc3e5c4934dabb2c71f191ad39a9c21909", + "seed": "5d63a1ed06942b328da66e5566f411bc3e5c4934dabb2c71f191ad39a9c21909", + "address": "2TINSQW3E227QO3OUNC3VQZJGWU4GB22YSFGBGREVU3WDMBRSC34AJMKAA" + }, + { + "mnemonic": + "name six coach infant joy vendor grant lawn amazing buddy pilot margin term staff cross curious winner loyal carbon pigeon net oval goddess about issue", + "entropy": + "967472593447bcc8b70c7e3e58c7497fb86f5083e635df27e1444a5aca76866c", + "seed": "967472593447bcc8b70c7e3e58c7497fb86f5083e635df27e1444a5aca76866c", + "address": "2RQN2CNPP4FTT3SBSMGGLSL2IING7TK3SGQFTEMDWVWJURRMXWVEORADDM" + }, + { + "mnemonic": + "ready oval raven final drink typical season elite situate sock double equal genuine crisp blood mass stumble machine wreck panel rebel will chief able smart", + "entropy": + "966de7646985a1af4718484d867383c0a4b0cefc8288bd6661fcf999d9ecfb44", + "seed": "966de7646985a1af4718484d867383c0a4b0cefc8288bd6661fcf999d9ecfb44", + "address": "OVBD33FQJ4JI5DVOQVHSSBTVK7FX3CRCFTVIO4HTVZUZEKNWNP5YSYV2OY" + }, + { + "mnemonic": + "sand flee divorce embark spare trim joy shoe attract level tray grit pizza resource local betray lounge hammer another loop dignity purchase violin able race", + "entropy": + "f93516808434e8a2136fc6762860cf6bd652de6a701522241a133e089fb88a5e", + "seed": "f93516808434e8a2136fc6762860cf6bd652de6a701522241a133e089fb88a5e", + "address": "CXDEEY6AQL2W2LN2XMR3V4TDEMIGO3TAPCBEMZ2FWC26RQMAHCQYGPNJHA" + }, + { + "mnemonic": + "police position detail example busy prepare kid jealous travel adjust cabin cannon zone immune parade myth siege romance suit cabbage dose that other abstract patient", + "entropy": + "3d1daa78e6948fa74a8f773ce7803f16e2ffc601949240e62eb2fbc1a07fa3f3", + "seed": "3d1daa78e6948fa74a8f773ce7803f16e2ffc601949240e62eb2fbc1a07fa3f3", + "address": "XB7EEUFDHSVBAEWWFBNXPCUCTO2IEOMGSA7SX3527DBVP7R5B2ODT7E2TI" + }, + { + "mnemonic": + "sail rather avoid expose quality logic wing mention actual march lamp expose settle behind crystal more million fan ceiling scheme estate minute cloth abstract involve", + "entropy": + "f1952c200a95570e761f8b17f0a1f90a356252a8c68f65b4d4490abc26357ae5", + "seed": "f1952c200a95570e761f8b17f0a1f90a356252a8c68f65b4d4490abc26357ae5", + "address": "RND3EVXK6NC4BKLJB4UZ2RKA4CTDEPSZJB5MH744LRE3XGG4POJBUF534Q" + }, + { + "mnemonic": + "battle practice curtain regret beyond timber belt tackle execute chimney okay already future pitch enact wheat cupboard foster lizard gentle quantum pepper sadness ability crouch", + "entropy": + "9a586a6c4aeb8a889f02dd7902ca3373402f962ee9f9ae01970513a6d78bbe37", + "seed": "9a586a6c4aeb8a889f02dd7902ca3373402f962ee9f9ae01970513a6d78bbe37", + "address": "EKEXZKRMAJAKK4L3BWQV2QO2OHR2Y4CJDSCQ46SXTLL5VFAZ5BMHIKR6OU" + }, + { + "mnemonic": + "clarify photo master same bundle pig margin text evolve secret coach gaze obscure ripple spirit domain journey fog agent else clever rebuild endless about alter", + "entropy": + "4fe96811ef2b0f92feb0df71a270590a264ce942fa40c393d609824415cd3669", + "seed": "4fe96811ef2b0f92feb0df71a270590a264ce942fa40c393d609824415cd3669", + "address": "L5I5HZQTHWAKBIPJGIYCOXKYW7W65L2I4YESKGHPH4U2PHCC3PQWRSWHXU" + }, + { + "mnemonic": + "swift frog urban bike fork wing enforce frame vendor blanket radio merge chapter health erosion science voice space orbit pupil chunk bridge possible absent spawn", + "entropy": + "de4e97de63b1adee47895c91d78561b73893a895e9c0ab17f437df5a146f10b5", + "seed": "de4e97de63b1adee47895c91d78561b73893a895e9c0ab17f437df5a146f10b5", + "address": "JLGGNDD5N2KW65LOKARIMBPANJPKO5BESH5NLTTZPALLA26VXUYTJDRTTI" + }, + { + "mnemonic": + "skirt service sausage waste climb purchase pretty access offer interest island window method journey glance depend critic such cactus dynamic picture august vanish ability click", + "entropy": + "550e717f7b8f95b8465501cb6cddecb61fc6e155ec3a9e1936404c24d23c283e", + "seed": "550e717f7b8f95b8465501cb6cddecb61fc6e155ec3a9e1936404c24d23c283e", + "address": "47BOCJI5JLEH3ERUNQIFP46OW74TIW3XD63ZTUFHXXYMLVGF22MVOKP7IU" + }, + { + "mnemonic": + "legend debate endless blush hair struggle sell scissors crisp mind clerk vapor tiger code gasp library story planet occur cement pet frog ozone absent comfort", + "entropy": + "fc134e938821345d6f18c19d39e35416ff70b4040c81b47ea93153b2d174d1b3", + "seed": "fc134e938821345d6f18c19d39e35416ff70b4040c81b47ea93153b2d174d1b3", + "address": "5TATMXKPKFZUAYPTEEZEOBYZECUZV4HPN3COBQYIUKT3CK75V56RE3D2TI" + }, + { + "mnemonic": + "trust across denial gesture lazy bid aim verb bring uphold polar apart trial drip wine belt people ahead cigar coffee version toilet town above load", + "entropy": + "4d97c07416363f58a880f2e1b0fb4ea510f40c71ff14164dc151d262798fcb9c", + "seed": "4d97c07416363f58a880f2e1b0fb4ea510f40c71ff14164dc151d262798fcb9c", + "address": "RD5WR2C2EGC4MLN6LPPKVIWFAIWHUTKZA3ZB4BGFKRCTHVL64PEFAJ4R3M" + }, + { + "mnemonic": + "bridge verb rebel faith throw crazy spirit age absorb behave foam shift carbon author shock fringe toy bleak surprise obscure album person oak abstract nephew", + "entropy": + "dea07c6621a570cb40da04061805b45c3c913dc8185d33e7c5b485f9028dfaf2", + "seed": "dea07c6621a570cb40da04061805b45c3c913dc8185d33e7c5b485f9028dfaf2", + "address": "3DMWSGU5U5MMOE2QXLFZTIGLNOIJSFRF2PSCGNGDY3OAADLFJP6KYWRHGQ" + }, + { + "mnemonic": + "tired family illegal recycle unknown effort boost lazy useless artist exist submit walnut toy walnut job thrive velvet power source meat recall picture absorb near", + "entropy": + "15a714e23efbf61a35637e8047839f806dfb99db1e780987bc52010dc5cd8ad4", + "seed": "15a714e23efbf61a35637e8047839f806dfb99db1e780987bc52010dc5cd8ad4", + "address": "S2HL3BMVIQPDKT7BZHT2YTJCIFTQ6DLL2SEL2BMJP3E5V37ZMYV4KSK5SQ" + }, + { + "mnemonic": + "satisfy wise garlic consider leader alpha trick bracket upon write shallow tilt dance pool harvest pipe perfect cart type unhappy slim minute camera about tunnel", + "entropy": + "fa1dbfbff4423f1c0cdd1a77a73f8a21ae1ba02e4da518c588d7d5ee65351664", + "seed": "fa1dbfbff4423f1c0cdd1a77a73f8a21ae1ba02e4da518c588d7d5ee65351664", + "address": "XOA4MOFRPRULQV5BB6JYMKN3XGB7NVAQAMWVF7U26X5ONREZJZTMBRV4OE" + }, + { + "mnemonic": + "depart mesh asset toast satisfy capital will orange tribe hammer kangaroo digital gossip try erase chuckle oxygen minor shell jeans sport faculty dream about pave", + "entropy": + "d6f1621b30ae5f8864df9b42271af3de73b2a78f8928f24ce38a7b57e9465168", + "seed": "d6f1621b30ae5f8864df9b42271af3de73b2a78f8928f24ce38a7b57e9465168", + "address": "DJAUHUUREQSMSTSOASUMJJWW34AFDRJ756HOYA4A74W3FAX2J7HF3QDCQE" + }, + { + "mnemonic": + "pause that milk inner assault calm eternal easily answer supreme scale desk van exchange onion render violin supreme glue lamp old figure romance able join", + "entropy": + "0bfd371947c70682b089454d783680bf93f83a5913b6a27ff6c7cc074d587157", + "seed": "0bfd371947c70682b089454d783680bf93f83a5913b6a27ff6c7cc074d587157", + "address": "L4Z7SI2J42ZDCXHYAF7HCX44GK37RK5XIRKA6AH5YYNP4DAQWMR7JBXM2E" + }, + { + "mnemonic": + "viable layer market dune rocket raven fatal curious robust stadium person three february auto garden goddess garden merit absorb run hazard primary maid above choice", + "entropy": + "9a975f1041b4ddc972ea35dafdb446112e2a3ef42b64fde2a201d4fbb4aac290", + "seed": "9a975f1041b4ddc972ea35dafdb446112e2a3ef42b64fde2a201d4fbb4aac290", + "address": "O7Q4DGOFPAPH7S663KDLP6BXZ4AQICZKJNOB7XT3AZ5PDFQ2VSOJ53GBNU" + }, + { + "mnemonic": + "parrot dance grit prefer chalk legal cigar flavor human congress scan before snap economy warm rapid latin cruel eyebrow legal mushroom fog conduct ability script", + "entropy": + "03d54dcd9cfa92fd1da55876c34b8043a1e618e5feb1eb238da2f6e74869d925", + "seed": "03d54dcd9cfa92fd1da55876c34b8043a1e618e5feb1eb238da2f6e74869d925", + "address": "RQS6LDD6DM7STGSFDFGCESV3LL5YA6GHZARMOLFLMTENC6RFDQ4I6N7FS4" + }, + { + "mnemonic": + "undo assault already disorder food belt tree develop produce multiply slim vacuum icon exclude edit buddy trip spread rookie online ocean switch convince able vault", + "entropy": + "6767430ef663ad53fc9c3c5d5da497092fb83bcd681d46c7b477af79cc70f345", + "seed": "6767430ef663ad53fc9c3c5d5da497092fb83bcd681d46c7b477af79cc70f345", + "address": "SMRZN6X44N47VTZB42V66SLDWZ4TEU7WUEN4C5WY4KEFKE2BRMLBAZWRKY" + }, + { + "mnemonic": + "police fence rabbit step grid click assist forum estate senior sell gadget tooth night avocado river venue swim real ranch item dance gas able grain", + "entropy": + "3d455560573db3aab8a15b6beaf086eb657256fec1ba93fff665196b3bdd004c", + "seed": "3d455560573db3aab8a15b6beaf086eb657256fec1ba93fff665196b3bdd004c", + "address": "LXLBCZQV7LG6AYZVS7ZY2XVLYZC57TQK6GCZ6L3LYJPBL7N4AKOHMJUJSQ" + } +]; diff --git a/test/base58/base58_test.dart b/test/base58/base58_test.dart new file mode 100644 index 0000000..0980965 --- /dev/null +++ b/test/base58/base58_test.dart @@ -0,0 +1,143 @@ +import 'package:blockchain_utils/base58/base58_base.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +final List> testVectBtc = [ + {"raw": "", "encode": "", "check_encode": "3QJmnh"}, + {"raw": "61", "encode": "2g", "check_encode": "C2dGTwc"}, + {"raw": "626262", "encode": "a3gV", "check_encode": "4jF5uERJAK"}, + {"raw": "636363", "encode": "aPEr", "check_encode": "4mT4krqUYJ"}, + { + "raw": "73696d706c792061206c6f6e6720737472696e67", + "encode": "2cFupjhnEsSn59qHXstmK2ffpLv2", + "check_encode": "BXF1HuEUCqeVzZdrKeJjG74rjeXxqJ7dW" + }, + { + "raw": "00eb15231dfceb60925886b67d065299925915aeb172c06647", + "encode": "1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L", + "check_encode": "13REmUhe2ckUKy1FvM7AMCdtyYq831yxM3QeyEu4" + }, + {"raw": "516b6fcd0f", "encode": "ABnLTmg", "check_encode": "237LSrY9NUUas"}, + { + "raw": "bf4f89001e670274dd", + "encode": "3SEo3LWLoPntC", + "check_encode": "GwDDDeduj1jpykc27e" + }, + {"raw": "572e4794", "encode": "3EFU7m", "check_encode": "FamExfqCeza"}, + { + "raw": "ecac89cad93923c02321", + "encode": "EJDM8drfXA6uyA", + "check_encode": "2W1Yd5Zu6WGyKVtHGMrH" + }, + {"raw": "10c8511e", "encode": "Rt5zm", "check_encode": "3op3iuGMmhs"}, + { + "raw": "00000000000000000000", + "encode": "1111111111", + "check_encode": "111111111146Momb" + }, + { + "raw": + "000111d38e5fc9071ffcd20b4a763cc9ae4f252bb4e48fd66a835e252ada93ff480d6dd43dc62a641155a5", + "encode": "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz", + "check_encode": + "17mxz9b2TuLnDf6XyQrHjAc3UvMoEg7YzRsJkBd4VwNpFh8a1StKmCe5WtAW27Y" + }, + { + "raw": + "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff", + "encode": + "1cWB5HCBdLjAuqGGReWE3R3CguuwSjw6RHn39s2yuDRTS5NsBgNiFpWgAnEx6VQi8csexkgYw3mdYrMHr8x9i7aEwP8kZ7vccXWqKDvGv3u1GxFKPuAkn8JCPPGDMf3vMMnbzm6Nh9zh1gcNsMvH3ZNLmP5fSG6DGbbi2tuwMWPthr4boWwCxf7ewSgNQeacyozhKDDQQ1qL5fQFUW52QKUZDZ5fw3KXNQJMcNTcaB723LchjeKun7MuGW5qyCBZYzA1KjofN1gYBV3NqyhQJ3Ns746GNuf9N2pQPmHz4xpnSrrfCvy6TVVz5d4PdrjeshsWQwpZsZGzvbdAdN8MKV5QsBDY", + "check_encode": + "151KWPPBRzdWPr1ASeu172gVgLf1YfUp6VJyk6K9t4cLqYtFHcMa2iX8S3NJEprUcW7W5LvaPRpz7UG7puBj5STE3nKhCGt5eckYq7mMn5nT7oTTic2BAX6zDdqrmGCnkszQkzkz8e5QLGDjf7KeQgtEDm4UER6DMSdBjFQVa6cHrrJn9myVyyhUrsVnfUk2WmNFZvkWv3Tnvzo2cJ1xW62XDfUgYz1pd97eUGGPuXvDFfLsBVd1dfdUhPwxW7pMPgdWHTmg5uqKGFF6vE4xXpAqZTbTxRZjCDdTn68c2wrcxApm8hq3JX65Hix7VtcD13FF8b7BzBtwjXq1ze6NMjKgUcqpGV5XA5" + } +]; + +var testVectXrp = [ + {"raw": "", "encode": "", "check_encode": "sQJm86"}, + {"raw": "61", "encode": "pg", "check_encode": "UpdGTAc"}, + {"raw": "626262", "encode": "2sgV", "check_encode": "hjEnuNRJwK"}, + {"raw": "636363", "encode": "2PNi", "check_encode": "hmThkiq7YJ"}, + { + "raw": "73696d706c792061206c6f6e6720737472696e67", + "encode": "pcEuFj68N1S8n9qHX1tmKpCCFLvp", + "check_encode": "BXErHuN7UqeVzZdiKeJjGfhijeXxqJfdW" + }, + { + "raw": "00eb15231dfceb60925886b67d065299925915aeb172c06647", + "encode": "r4Srf52g9jJgTHDrVXjvLUN8ZuQsiJDN9L", + "check_encode": "rsRNm76epck7KyrEvMfwMUdtyYq3sryxMsQeyNuh" + }, + {"raw": "516b6fcd0f", "encode": "wB8LTmg", "check_encode": "psfLSiY947721"}, + { + "raw": "bf4f89001e670274dd", + "encode": "sSNosLWLoP8tU", + "check_encode": "GADDDedujrjFykcpfe" + }, + {"raw": "572e4794", "encode": "sNE7fm", "check_encode": "E2mNxCqUez2"}, + { + "raw": "ecac89cad93923c02321", + "encode": "NJDM3diCXwauyw", + "check_encode": "pWrYdnZuaWGyKVtHGMiH" + }, + {"raw": "10c8511e", "encode": "Rtnzm", "check_encode": "soFs5uGMm61"}, + { + "raw": "00000000000000000000", + "encode": "rrrrrrrrrr", + "check_encode": "rrrrrrrrrrhaMomb" + }, + { + "raw": + "000111d38e5fc9071ffcd20b4a763cc9ae4f252bb4e48fd66a835e252ada93ff480d6dd43dc62a641155a5", + "encode": "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz", + "check_encode": + "rfmxz9bpTuL8DCaXyQiHjwcs7vMoNgfYzR1JkBdhVA4FE632rStKmUenWtwWpfY" + }, + { + "raw": + "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff", + "encode": + "rcWBnHUBdLjwuqGGReWNsRsUguuASjAaRH8s91pyuDRTSn41Bg45EFWgw8NxaVQ53c1exkgYAsmdYiMHi3x95f2NAP3kZfvccXWqKDvGvsurGxEKPuwk83JUPPGDMCsvMM8bzma469z6rgc41MvHsZ4LmPnCSGaDGbb5ptuAMWPt6ihboWAUxCfeASg4Qe2cyoz6KDDQQrqLnCQE7WnpQK7ZDZnCAsKX4QJMc4Tc2BfpsLc6jeKu8fMuGWnqyUBZYzwrKjoC4rgYBVs4qy6QJs41fhaG4uC94pFQPmHzhxF8SiiCUvyaTVVzndhPdije161WQAFZ1ZGzvbdwd43MKVnQ1BDY", + "check_encode": + "rnrKWPPBRzdWPirwSeurfpgVgLCrYC7FaVJykaK9thcLqYtEHcM2p5X3Ss4JNFi7cWfWnLv2PRFzf7GfFuBjnSTNs8K6UGtneckYqfmM8n8TfoTT5cpBwXazDdqimGU8k1zQkzkz3enQLGDjCfKeQgtNDmh7NRaDMSdBjEQV2acHiiJ89myVyy67i1V8C7kpWm4EZvkWvsT8vzopcJrxWapXDC7gYzrFd9fe7GGPuXvDECL1BVdrdCd76PAxWfFMPgdWHTmgnuqKGEEavNhxXFwqZTbTxRZjUDdT8a3cpAicxwFm36qsJXanH5xfVtcDrsEE3bfBzBtAjXqrzea4MjKg7cqFGVnXwn" + } +]; + +void main() { + test("decode btc base58", () { + for (final i in testVectBtc) { + final decode = Base58Decoder.decode(i["encode"]!); + + expect(BytesUtils.toHexString(decode), i["raw"]); + final decodeCheck = Base58Decoder.checkDecode(i["check_encode"]!); + expect(BytesUtils.toHexString(decodeCheck), i["raw"]); + } + }); + test("encode btc base58", () { + for (final i in testVectBtc) { + final encode = Base58Encoder.encode(BytesUtils.fromHexString(i["raw"]!)); + expect(i["encode"], encode); + final encodeCheck = + Base58Encoder.checkEncode(BytesUtils.fromHexString(i["raw"]!)); + expect(i["check_encode"], encodeCheck); + } + }); + test("decode xrp base58", () { + for (final i in testVectXrp) { + final decode = Base58Decoder.decode(i["encode"]!, Base58Alphabets.ripple); + expect(BytesUtils.toHexString(decode), i["raw"]); + final decodeCheck = + Base58Decoder.checkDecode(i["check_encode"]!, Base58Alphabets.ripple); + expect(BytesUtils.toHexString(decodeCheck), i["raw"]); + } + }); + test("encode xrp base58", () { + for (final i in testVectXrp) { + final encode = Base58Encoder.encode( + BytesUtils.fromHexString(i["raw"]!), Base58Alphabets.ripple); + expect(i["encode"], encode); + final encodeCheck = Base58Encoder.checkEncode( + BytesUtils.fromHexString(i["raw"]!), Base58Alphabets.ripple); + expect(i["check_encode"], encodeCheck); + } + }); +} diff --git a/test/base58/base58_xmr_test.dart b/test/base58/base58_xmr_test.dart new file mode 100644 index 0000000..ab7ac12 --- /dev/null +++ b/test/base58/base58_xmr_test.dart @@ -0,0 +1,88 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'package:blockchain_utils/base58/base58_xmr.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +var _testVect = [ + { + "raw": "", + "encode": "", + }, + { + "raw": "61", + "encode": "2g", + }, + { + "raw": "626262", + "encode": "1a3gV", + }, + { + "raw": "636363", + "encode": "1aPEr", + }, + { + "raw": "73696d706c792061206c6f6e6720737472696e67", + "encode": "LJe5Z59G5Zz6RYrqDjxxeX3vd16N", + }, + { + "raw": "00eb15231dfceb60925886b67d065299925915aeb172c06647", + "encode": "19uhT2BqLZuRUjnQGCByg4RUm1bZ2jT3j2E", + }, + { + "raw": "516b6fcd0f", + "encode": "ABnLTmg", + }, + { + "raw": "bf4f89001e670274dd", + "encode": "YzxHqptA9nj4p", + }, + { + "raw": "572e4794", + "encode": "3EFU7m", + }, + { + "raw": "ecac89cad93923c02321", + "encode": "gb2yYxwXgzj3g4", + }, + { + "raw": "10c8511e", + "encode": "1Rt5zm", + }, + { + "raw": "00000000000000000000", + "encode": "11111111111111", + }, + { + "raw": + "000111d38e5fc9071ffcd20b4a763cc9ae4f252bb4e48fd66a835e252ada93ff480d6dd43dc62a641155a5", + "encode": "113MMjnNqJN6MKY7uez1h2WA1ztnozdosJpK3JiBzMSWD3zwwYxy5pX16phr", + }, + { + "raw": + "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff", + "encode": + "113DUyZY2dc2LxFSMtsQ5k3gsHPkECmXt52nKM8ZY8z26NhMJWtsWSA7icPFuECstJ94XRDHZYFLSAQSTAftscnaBkMV84ECzEiD6GX5SZYMgrESBZ2ptsj8zFn6azDED6b8H81cwbZYU3GJTvetytsqVQKoqgrNEDCwYM9kiokZYaPgNVfkm8tswqpPqaniXEDKHxRBVpfuZYgk6SXQrdHtt4CETsKtagEDReNVDEvY4ZYo6WWZ9xVSttAYeXu4zSqEDXznZEz2QDZYuSvaau4MbttGu4bvp6JzEDeMCdGj8GNZZ1oLeceADkttPFUfxZCB9EDkhchJUE8XZZ89kiePG5uttVbt", + } +]; +void main() { + test("base58 xmr decod ", () { + for (final i in _testVect) { + final decode = Base58XmrDecoder.decode(i["encode"]!); + expect(i["raw"], BytesUtils.toHexString(decode)); + } + }); + test("base58 xmr encode ", () { + for (final i in _testVect) { + final decode = + Base58XmrEncoder.encode(BytesUtils.fromHexString(i["raw"]!)); + expect(i["encode"], decode); + } + }); + + test("invalid decode", () { + expect(() { + Base58XmrDecoder.decode("237LSrYONUUar"); + }, throwsA(isA())); + }); +} diff --git a/test/base58_test.dart b/test/base58_test.dart deleted file mode 100644 index 1ea7180..0000000 --- a/test/base58_test.dart +++ /dev/null @@ -1,50 +0,0 @@ -import 'package:blockchain_utils/formating/bytes_num_formating.dart'; -import 'package:blockchain_utils/base58/base58.dart' as base58; -import 'package:test/test.dart'; - -// This main function contains tests for Base58 encoding and decoding. -// It defines four Base58-encoded strings (t1, t2, t3, t4) and their corresponding -// hexadecimal representations (decodeHex1, decodeHex2, decodeHex3, decodeHex4). -// The 'Base58 Decoding' test checks if the Base58-encoded strings can be correctly -// decoded into hexadecimal representations, and the 'Base58 Encoding' test verifies -// if the hexadecimal representations can be correctly encoded back to Base58 strings. -void main() { - const t1 = "Vr7RY7xKg9p2DveTGK9wdmt3hF7ZL1Dv9RZhMkzg"; - const t2 = "4j3d1LQWwz4WUD7FWM9zQW6tQZ74G41UGueXhEfq3"; - const t3 = "K2EawqLkz9T7VdQYfUhK6t3LZwWM9K7Q7vuF1jpF"; - const t4 = "3f64DM2pZUE7hA9pKRzHwtGw4m8CfGLMkXQz7nZKR"; - const decodeHex1 = - "027b6eb76c60909f75e67542491ea985c1f67c3c38018af38cda09d8babd"; - const decodeHex2 = - "129704839210baee4aba7fc7abbc914d88926f400f0420044741284d43c2"; - const decodeHex3 = - "018cf8799dc5b96f6ddc9d38c78c9a89c352e505e0b5408158bb8f07733c"; - const decodeHex4 = - "0d4236b22ce2293fe49a6c360821ea3f31128896fa852af79a5cff7a2274"; - - // The 'Base58 Decoding' test verifies the correctness of decoding Base58 strings - // into hexadecimal representations. - test('Base58 Decoding', () { - final decode = base58.decode(t1); - expect(bytesToHex(decode), decodeHex1); - final decode2 = base58.decode(t2); - expect(bytesToHex(decode2), decodeHex2); - final decode3 = base58.decode(t3); - expect(bytesToHex(decode3), decodeHex3); - final decode4 = base58.decode(t4); - expect(bytesToHex(decode4), decodeHex4); - }); - - // The 'Base58 Encoding' test verifies the correctness of encoding hexadecimal - // representations back to Base58 strings. - test('Base58 Encoding', () { - final decode = base58.encode(hexToBytes(decodeHex1)); - expect(decode, t1); - final decode2 = base58.encode(hexToBytes(decodeHex2)); - expect(decode2, t2); - final decode3 = base58.encode(hexToBytes(decodeHex3)); - expect(decode3, t3); - final decode4 = base58.encode(hexToBytes(decodeHex4)); - expect(decode4, t4); - }); -} diff --git a/test/bech32/bch_bech32_test.dart b/test/bech32/bch_bech32_test.dart new file mode 100644 index 0000000..181a756 --- /dev/null +++ b/test/bech32/bch_bech32_test.dart @@ -0,0 +1,66 @@ +import 'package:blockchain_utils/bech32/bch_bech32.dart'; +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +final List> _testVect = [ + { + "raw": "751e76e8199196d454941c45d1b3a323f1433bd6", + "encode": "bitcoincash:qp63uahgrxged4z5jswyt5dn5v3lzsem6cy4spdc2h", + }, + { + "raw": "30ea99599334801bf09d753af38ba546800bea8b", + "encode": "bitcoincash:qqcw4x2ejv6gqxlsn46n4uut54rgqzl23v4y77ks69", + }, + { + "raw": "18abaed50b7c1176308baa094b054383b775f12c", + "encode": "bitcoincash:qqv2htk4pd7pza3s3w4qjjc9gwpmwa039s9cgntx7v", + }, + { + "raw": "29595a3c78760fe90fe883b922f353b67441d28d", + "encode": "bchtest:qq54jk3u0pmql6g0azpmjghn2wm8gswj35af22xyv3", + }, + { + "raw": "b819a85f25b116c2f7e64416a55b8d49b744d209", + "encode": "bchtest:qzupn2zlykc3dshhuezpdf2m34ymw3xjpycg0fwyaq", + }, + { + "raw": "904c82e2c1a8508ba784e4e53e195b5047682e87", + "encode": "bchtest:qzgyeqhzcx59pza8snjw20setdgyw6pwsulf9dv498", + }, +]; + +void main() { + test("bach32 decode", () { + for (final i in _testVect) { + final hrp = i["encode"]!.substring(0, i["encode"]!.indexOf(":")); + final decode = BchBech32Decoder.decode(hrp, i["encode"]!); + expect(BytesUtils.toHexString(decode.$2), i["raw"]); + expect( + bytesEqual( + decode.$1, + CoinsConf.bitcoinCashMainNet + .getParam>("p2pkh_std_net_ver")), + true); + } + }); + test("bach32 encode", () { + for (final i in _testVect) { + final hrp = i["encode"]!.substring(0, i["encode"]!.indexOf(":")); + final decode = BchBech32Encoder.encode( + hrp, + CoinsConf.bitcoinCashMainNet + .getParam>("p2pkh_std_net_ver")!, + BytesUtils.fromHexString(i["raw"]!)); + expect(decode, i["encode"]); + } + }); + + test("invalid decode", () { + expect(() { + BchBech32Decoder.decode("bitcoincash", + "bitciincash:qq54jk3u0pmql6g0azpmjghn2wm8gswj35853zv6sr"); + }, throwsA(isA())); + }); +} diff --git a/test/bech32/bech32_test.dart b/test/bech32/bech32_test.dart new file mode 100644 index 0000000..d4296fb --- /dev/null +++ b/test/bech32/bech32_test.dart @@ -0,0 +1,46 @@ +import 'package:blockchain_utils/bech32/bech32_base.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +final List> _testVect = [ + { + "raw": "751e76e8199196d454941c45d1b3a323f1433bd6", + "encode": "cosmos1w508d6qejxtdg4y5r3zarvary0c5xw7k6ah60c", + }, + { + "raw": "30ea99599334801bf09d753af38ba546800bea8b", + "encode": "cosmos1xr4fjkvnxjqphuyaw5a08za9g6qqh65t36srck", + }, + { + "raw": "18abaed50b7c1176308baa094b054383b775f12c", + "encode": "band1rz46a4gt0sghvvyt4gy5kp2rswmhtufv49nfef", + }, + { + "raw": "29595a3c78760fe90fe883b922f353b67441d28d", + "encode": "band199v450rcwc87jrlgswuj9u6nke6yr55dxjrx4e", + }, +]; + +void main() { + test("bach32 decode", () { + for (final i in _testVect) { + final hrp = i["encode"]!.substring(0, i["encode"]!.indexOf("1")); + final decode = Bech32Decoder.decode(hrp, i["encode"]!); + expect(BytesUtils.toHexString(decode), i["raw"]); + } + }); + test("bach32 encode", () { + for (final i in _testVect) { + final hrp = i["encode"]!.substring(0, i["encode"]!.indexOf("1")); + final encode = + Bech32Encoder.encode(hrp, BytesUtils.fromHexString(i["raw"]!)); + expect(encode, i["encode"]); + } + }); + test("invalid decode", () { + expect(() { + Bech32Decoder.decode( + "cosmos", "cosmis1w508d6qejxtdg4y5r3zarvary0c5xw7khxen85"); + }, throwsA(isA())); + }); +} diff --git a/test/bech32/segwit_bech32_test.dart b/test/bech32/segwit_bech32_test.dart new file mode 100644 index 0000000..e04a7b0 --- /dev/null +++ b/test/bech32/segwit_bech32_test.dart @@ -0,0 +1,66 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'package:blockchain_utils/bech32/segwit_bech32.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +final List> _testVectors = [ + { + "raw": "751e76e8199196d454941c45d1b3a323f1433bd6", + "encode": "bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4", + }, + { + "raw": "30ea99599334801bf09d753af38ba546800bea8b", + "encode": "bc1qxr4fjkvnxjqphuyaw5a08za9g6qqh65t8qwgum", + }, + { + "raw": "18abaed50b7c1176308baa094b054383b775f12c", + "encode": "bc1qrz46a4gt0sghvvyt4gy5kp2rswmhtufv6sdq9v", + }, + { + "raw": "5788df3047dd2c2545eee12784e6212745916bb7", + "encode": "bc1q27yd7vz8m5kz230wuyncfe3pyazez6ah58yzy0", + }, + { + "raw": "3a3eff6f41ce759a8dd95fc1a2d762077f4f3b64", + "encode": "bc1q8gl07m6pee6e4rwetlq694mzqal57wmyadd9sn", + }, + { + "raw": "37552063bb0baa42b910712df06b814b928a88f0", + "encode": "bc1qxa2jqcampw4y9wgswyklq6upfwfg4z8s5m4v3v", + }, + { + "raw": "f9ce94eab4ed454dd0077e3dc24bdfb8d5df4008", + "encode": "bc1ql88ff645a4z5m5q80c7uyj7lhr2a7sqgtss7ek", + }, + { + "raw": "29595a3c78760fe90fe883b922f353b67441d28d", + "encode": "tb1q99v450rcwc87jrlgswuj9u6nke6yr55drpxuj0", + }, + { + "raw": "b819a85f25b116c2f7e64416a55b8d49b744d209", + "encode": "tb1qhqv6she9kytv9alxgst22kudfxm5f5sf2lgpc6", + }, + { + "raw": "904c82e2c1a8508ba784e4e53e195b5047682e87", + "encode": "tb1qjpxg9ckp4pgghfuyunjnux2m2prkst580chf9n", + }, +]; +void main() { + test("test decode", () { + for (final i in _testVectors) { + final hrp = i["encode"]!.substring(0, i["encode"]!.indexOf("1")); + final decode = SegwitBech32Decoder.decode(hrp, i["encode"]!); + expect(decode.$1, 0); + expect(BytesUtils.toHexString(decode.$2), i["raw"]); + } + }); + test("test encode", () { + for (final i in _testVectors) { + final hrp = i["encode"]!.substring(0, i["encode"]!.indexOf("1")); + final decode = SegwitBech32Encoder.encode( + hrp, 0, BytesUtils.fromHexString(i["raw"]!)); + expect(decode, i["encode"]); + } + }); +} diff --git a/test/bech32_test.dart b/test/bech32_test.dart deleted file mode 100644 index c6db33e..0000000 --- a/test/bech32_test.dart +++ /dev/null @@ -1,55 +0,0 @@ -import 'package:blockchain_utils/formating/bytes_num_formating.dart'; -import 'package:blockchain_utils/bech32/bech32.dart' as bech32; -import 'package:test/test.dart'; - -// This main function contains tests for encoding and decoding Bech32 addresses -// using the 'bech32' package. Two Bech32 addresses are tested: one for the 'tb' -// (testnet) network and one for the 'ltc' (Litecoin) network. The tests verify -// that the addresses can be correctly encoded from hexadecimal data and decoded -// back to their components, including the version, data, and human-readable part (HRP). -void main() { - // Hexadecimal data and Bech32 address for 'tb' (testnet) network. - const String decode1Hex = - "7a712853f4301a463734e7b8bf406f40ba60d484e9f6c7e9aa222d9e1d5fd50d"; - const String address1 = - "tb1p0fcjs5l5xqdyvde5u7ut7sr0gzaxp4yya8mv06d2ygkeu82l65xs6k4uqr"; - - // Hexadecimal data and Bech32 address for 'ltc' (Litecoin) network. - const String decodedHex = "20c7b72622ffb2ab9f8a0cac6c542e26ce37b38a"; - const String address2 = "ltc1qyrrmwf3zl7e2h8u2pjkxc4pwym8r0vu26yczn9"; - - // The 'Encode Bech32 Address' test verifies that the hexadecimal data can be - // correctly encoded into Bech32 addresses for both 'tb' and 'ltc' networks. - test('Encode Bech32 Address', () { - final encoded = bech32.encodeBech32("tb", hexToBytes(decode1Hex), 1); - expect(encoded, address1); - final encode2 = bech32.encodeBech32("ltc", hexToBytes(decodedHex), 0); - expect(encode2, address2); - }); - - // The 'Decode Bech32 Address' test verifies that Bech32 addresses can be - // correctly decoded into their version, data, and human-readable part (HRP) - // components for both 'tb' and 'ltc' networks. - test('Decode Bech32 Address', () { - final decoded = bech32.decodeBech32(address1); - expect(decoded?.version, 1); - expect(bytesToHex(decoded!.data), decode1Hex); - expect(decoded.hrp, "tb"); - - final decodedx = bech32.decodeBech32(address2); - expect(decodedx!.version, 0); - expect(bytesToHex(decodedx.data), decodedHex); - expect(decodedx.hrp, "ltc"); - }); - test('Decode Bech32 Address', () { - final decoded = bech32.decodeBech32(address1); - expect(decoded?.version, 1); - expect(bytesToHex(decoded!.data), decode1Hex); - expect(decoded.hrp, "tb"); - - final decodedx = bech32.decodeBech32(address2); - expect(decodedx!.version, 0); - expect(bytesToHex(decodedx.data), decodedHex); - expect(decodedx.hrp, "ltc"); - }); -} diff --git a/test/bip/bip32/ed25519/ed25519_test.dart b/test/bip/bip32/ed25519/ed25519_test.dart new file mode 100644 index 0000000..cb7ae06 --- /dev/null +++ b/test/bip/bip32/ed25519/ed25519_test.dart @@ -0,0 +1,29 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_ed25519.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("bip32 ed25519", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + Bip32Slip10Ed25519 w = Bip32Slip10Ed25519.fromSeed(seed); + expect(w.publicKey.toExtended, i["public"]); + expect(w.privateKey.toExtended, i["private"]); + expect(w.chainCode.toHex(), i["chaincode"]); + expect(w.fingerPrint.toHex(), i["finger_print"]); + for (final c in (i["child"] as List)) { + final index = Bip32KeyIndex(c["index"]); + w = w.childKey(index); + expect(w.publicKey.toExtended, c["public"]); + expect(w.privateKey.toExtended, c["private"]); + expect(w.chainCode.toHex(), c["chaincode"]); + expect(w.fingerPrint.toHex(), c["finger_print"]); + expect(w.parentFingerPrint.toHex(), c["parent_finger_print"]); + expect(w.depth.toInt(), c["depth"]); + } + } + }); +} diff --git a/test/bip/bip32/ed25519/test_vector.dart b/test/bip/bip32/ed25519/test_vector.dart new file mode 100644 index 0000000..510d090 --- /dev/null +++ b/test/bip/bip32/ed25519/test_vector.dart @@ -0,0 +1,1322 @@ +final List> testVector = [ + { + "seed": "99556d9cfdf8874f7258c66cafb0802112fd870df1b5ef724c805d5c11e15984", + "private": + "xprv9s21ZrQH143K3a6krN5Z7PjMzCHRjjiEwgmeVxHRxAjFgcYt23qUHvXcNXYg6XQ4VDeQc64R1fxGrgGLsrS6c9NNRBh59SMd4kRe4cwAKN5", + "public": + "xpub661MyMwAqRbcG4BDxPcZUXg6YE7v9CS6JuhFJLh3WWGEZQt2Zb9iqir6DiY7NoNahP4Rj8V4PHmLqLBUwtrrohGvp5f4samHY1LkWiyxAyW", + "chaincode": + "97f2ec2ba821b6a14db3b17da0456abeabd152f46da8192223aae22c7f1ac9a8", + "finger_print": "9e2b0507", + "child": [ + { + "private": + "xprv9v4aHnGMxUqN3Pnskd8HBxM44ZqmTbJursXmuNdtHWMwpQDfUxN8n6rQfXszdpUGHEqyvUYvyBcFGcpEHb6Wdr1UGapNYrm1dxy7vhwvxpU", + "public": + "xpub693vhHoFnrPfFssLrefHZ6HncbgFs42mE6TNhm3VqqtvhCYp2VgPKuAtWiDpo3VbZ14eFgb66jUa54yeToE9YagAWoCMUb4KZSJwvZyuuPP", + "chaincode": + "70a7dd1aee603e5605866a00f34ffbe43186316606df3e48b562d707341db1eb", + "finger_print": "a646e88a", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "9e2b0507" + }, + { + "private": + "xprv9x1AefcScpbLBUCGSt8M4fFbkBfevKVu3NA6ZtHJR3tTDWrzgJYiiMHiRsBwwKjJcvVHcXpWLzgvdcGnd3tPhKNHNEQRJYpantHAzEj3UjK", + "public": + "xpub6AzX4B9LTC9dPxGjYufMRoCLJDW9KnDkQb5hNGguyPRS6KC9DqryG9cCH56D2tcXWTNgpCvXbtpHtU7R8hR1wwKc9yEMAwPMDRHHGsrDxoJ", + "chaincode": + "71cce19737c6c69d864039b7598eac905f228696f8eb393d3fa7583893b856c0", + "finger_print": "5e382062", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "a646e88a" + }, + { + "private": + "xprv9yMaoq3CrtHzw34SLfnmxfySAscmKjmddDfD7rCFaazb9Eoe7Hmvuf2qVnm5eV3zCUBg9B6A68tfdGNu74YHj3xEJ6xuc8qVP7qzLKjPXRp", + "public": + "xpub6CLwDLa6hFrJ9X8uShKnKovAiuTFjCVUzSaovEbs8vXa238neq6BTTMKLxsLZ6aEFnykrL5MU71TckVnFvtZHuyASEo2VKjnMrAB8qVxHeK", + "chaincode": + "ab9dffa4c2d6dc7b130caf8d8cd9bf3526944a57d27d5d530f9de5d776ec9a95", + "finger_print": "0545e9b9", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "5e382062" + }, + { + "private": + "xprv9zaoPBjucVxDGqQ5xN1NsgFZCqryz6Peqs3qkvpKhZtAHeM73cUn9q9EPBmRXUPVu9BZc4z8ezW6qJNxrJpbKCmKFSLouvtCXfqPb8Z7a21", + "public": + "xpub6Da9nhGoSsWWVKUZ4PYPEpCHkshUPZ7WD5ySZKDwFuR9ASgFb9o2hdTiEQ2VABoVLZ4EWCHR8BGwwB4RkzsJk2xcuP6JyPwPmTekqo13aju", + "chaincode": + "5808bba5c9e4fe48c66ce7c00be9e4d646784ab2876967ef8c9137540038a003", + "finger_print": "80617672", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "0545e9b9" + }, + { + "private": + "xprvA3NRCeriivQPAz1nZZuxapsu57G8XURHei2js5rDWfFgRcgofkah75Z6dsGezSmsnCH8FQMvemHoumNCkMu7ehcxYiXgPVpcK26N1qaqgRz", + "public": + "xpub6GMmcAPcZHxgPU6FfbSxwxpdd96cvw991vxLfUFq4znfJR1xDHtwessaV4Vw5xEjgG1FjzgHBzAqfWg4hkYzdLukhuepkq7EcC46k2pBQy1", + "chaincode": + "72ce212062d70c03b8a2967b4a6bd4ff3a3b58a91754713b93ca664c254cc7eb", + "finger_print": "3827b307", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "80617672" + }, + { + "private": + "xprvA4imD2wjpwAG3QtJxsuvs5K4p8GrG4wbPG9LqHAQ648Gz1zTCG6brnPYDkR2tGr4cYZ7niPLVpP34nU3haJCqag1FwTP5GGm7ac6n8miYMx", + "public": + "xpub6Hi7cYUdfJiZFtxn4uSwEDFoNA7LfXfSkV4wdfa1ePfFrpKbjoQrQai24vVUL3ujHEhAF6HWBQc2CBpz8G9faKAYD4j7Yyg96Su8c1q3cqX", + "chaincode": + "0b524b84a471474c90956554244583ed97888497f59b3fb09547b21cb1e391f5", + "finger_print": "dde339df", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "3827b307" + }, + { + "private": + "xprvA7pYyFRaH7t8DEe2bhBTcawXMBz3ZmMhHEmYPCwKqgg6JfT2KhMe1ganMAZPKbfoThWE97WsGgpN1ww5nZMhXbidwzxtL4KZjmNYtEBDfRf", + "public": + "xpub6LouNkxU7VSRRiiVhiiTyitFuDpXyE5YeTh9BbLwQ2D5BTnAsEftZUuGCNfnkEGsiJtssis7TKY17KgXbxbUnq1sqWbq8LmWC2J6VuhRQ5k", + "chaincode": + "cde2d08c22ff412879cc64c1f751ee9c7149b4762cb8c854e0cd072838a17f9e", + "finger_print": "22657a2c", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "dde339df" + }, + { + "private": + "xprvA8KkvJ59d6UdtnTZG8b3XRTv5UnmFH19CGbGg2k1tB4GPiEaYEY4UB9tLaoD5amLwZZSWvfkqQNd4NoK494hrbKU7admAbLMSHvxgv4av92", + "public": + "xpub6MK7Koc3TU2w7GY2NA83tZQedWdFejizZVWsUR9dSWbFGWZj5mrK1yUNBnNMPrBVjTDikPvcXYAvgQLKycvKzXYhEhHbZcsqP1ppfVJFEhE", + "chaincode": + "0a1a7f88b616b00b21f5385418f004aa1d0f8b4cb3174919ef4cb6fcb514cddc", + "finger_print": "fa52727d", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "22657a2c" + }, + { + "private": + "xprvABnwkvAdT7nD7ym9NYWDiVQCmKwApbLwHH8wN89g23mDqNGJxjG8MPpHZ71S3BFMGPhrAw7rr4WAfkyonGnRLSwRscsPT86CHReYLsoeeQc", + "public": + "xpub6QnJARhXHVLWLTqcUa3E5dLwKMmfE44neW4YAWZHaPJCiAbTWGaNuC8mQKKgXCSupBA3XApTBTNhHnfhP4NpwdqoRaQ72FEcYMU5xoiDr6C", + "chaincode": + "8e55187ddda0ca1c435b115727e92236e0bdebf3dea68872228d3e4c29172255", + "finger_print": "be672208", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "fa52727d" + }, + { + "private": + "xprvADEY4565jWsncMLazBo4AQiLAJM4h9eSFhsHDycBerv7GpA1HJkk4bwmasvSg18tqhgXTKi7kQmbnV8q2AgbT8qCZwQgZp8ET3uRQw8mrqh", + "public": + "xpub6SDtTacyZtS5pqR46DL4XYf4iLBZ6cNHcvnt2N1oDCT69cV9pr4zcQGFS3tRBgjhJ8NhmgM47SeaP6deYizDaZoWer753PZhwpDePMnkTac", + "chaincode": + "64740cb74f5826300f578b9c8487b4cbfcecf96a13842ab20cd14a2869acc305", + "finger_print": "1e68837d", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "be672208" + } + ] + }, + { + "seed": "acfdfa5ca3af821a372328a2d05fed5d465cfa4be36fef86b793916301648011", + "private": + "xprv9s21ZrQH143K2Pg6hTUyhZBSD4mfSZJYGYDy5zQ5gNaMjyeLxUUiu7RWithD7pUF9W58oTUZFLUinbbCcxxmVjZHE5bKBgUxbhY8ygT3pNa", + "public": + "xpub661MyMwAqRbcEskZoV1z4h8Am6c9r22Pdm9ZtNohEi7LcmyVW1nySujza5kBU42Gjjj8mGzyDw7vb846tSJTUCxR5obJ9LsB9c1wogMqx1F", + "chaincode": + "21741ae03fa1446357cccef5f844f88acc2686cb30f0d42027a9e2fb0749ec22", + "finger_print": "7ec0b050", + "child": [ + { + "private": + "xprv9uqBWkb4dfcqShGBJBnMA3BnRd5WsP9KTLtM7ePvaLMVAcako7pJnNuyGaYVBUDekcNJWKoyCwr29eN9LL163vw414u1pjnRhApq4cXeFkG", + "public": + "xpub68pXvG7xU3B8fBLeQDKMXB8Wyev1GqsApZowv2oY8ftU3QuuLf8ZLBET7mQnwmfF47TTRR1XhHVacBHtFDUbTLxnJbJNa9GFpv2mbyqqq5e", + "chaincode": + "ce448fc56c72195c39c1e4a771e5a23375120313592334cda865c2c1b87a3cbd", + "finger_print": "6baee462", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "7ec0b050" + }, + { + "private": + "xprv9waBrn7byDiLxbFz578e2WGQtz3cP3kREx3MBySXeQma8E2dybbq6YpPrk4eFngBGBpjmu7a8PYbkmpbvzBDt6GUAVwhBVXtxCJEZz9KfPb", + "public": + "xpub6AZYGHeVobGeB5LTB8fePeD9T1t6nWUGcAxwzMr9CkJZ12MnX8v5eM8shwEqKMLXjr8UkqUnghDQwzzRteYpjrDzE6yyFVi2L57MovzebTB", + "chaincode": + "04285ecc5d2ac326b05558ec80f27765eb9c99dd4938dc8c7bc33cd79fd4b7e4", + "finger_print": "7bc3976e", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "6baee462" + }, + { + "private": + "xprv9yaBLFuJydkxtDMBekyZvPvUoVzjwgS5CWbetBUBBBQrxWMCqUpdT4ungwcsRfFqoPtwJruMgWXKyz7LNGWwf8oLeUf8mBH4om7QvUbR6de", + "public": + "xpub6CZXjmSCp1KG6hReknWaHXsDMXqEM99vZjXFgZsnjWwqqJgMP28szsEGY8CYaZgmTEwPxdZuCbrfp7Umsi7Hjb4w2HKRuAPv4skoKbJ6bAm", + "chaincode": + "1cf9a5a50dbb512851569b7314662daf857182b9c81c6f6f6fffe46821fe7750", + "finger_print": "b52caca7", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "7bc3976e" + }, + { + "private": + "xprvA1sniuGWFGUo8w9GMyDEFdtUpjjyqzMkumRduM5sVYjoCiBiKrXq4WMY1amNaRoHFws6rwMgLYJeBzAh3LL1fRq7wbmHpKVj6WvvMzLL6EN", + "public": + "xpub6Es98QoQ5e36MRDjTzkEcmqDNmaUFT5cGzMEhjVV3tGn5WWrsPr5cJg1rmkZyvCZsaTkhUbYLKwE1KJHA5BBMJtjJhjADrSFkVnJM3TFZ2X", + "chaincode": + "a8ca9aacab8e65e3a68eaebff0af4ba45f23301d418fd20df3d4afcdbfa721c3", + "finger_print": "5809c422", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "b52caca7" + }, + { + "private": + "xprvA35Dh37wcJKeoi1MWDm1QJcypfka7C88fwZ8sRsSNJ7BTmCe3sQg5YJ7tBWw3hJwbQePWvNRWCaLK56RYxRXj2jc7drbZU2mvjnxhBaFFSN", + "public": + "xpub6G4a6YeqSfsx2C5pcFJ1mSZiNhb4Weqz3AUjfpH3vdeALZXnbQivdLcbjN5ZwY4CkdxgkX3z9KmN5fY1FojHpzUoSmCYTDMFyHBQgFDJQLm", + "chaincode": + "41eeab7db1b50edb42390bc35e60326c3f0ad616cdf14859fa8a6792bb0e9f9a", + "finger_print": "3bba8f15", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "5809c422" + }, + { + "private": + "xprvA4kHa4k8CtxNqMTdHHH2t7Zw8ACJL5SjFYKCu6X4M1KmSsjXhYCVxTGkv5QnYcY6raruCjGKo2tpEmWaeaenFSQBLA5DSjmx35GdHVCfBMp", + "public": + "xpub6HjdyaH23GWg3qY6PJp3FFWfgC2njYAacmEohUvfuLrkKg4gF5WkWFbEmGbx1UzjG5Ss8p6R5R9dviyTJnaztqmejQPQMejzNRhPAvxKPC6", + "chaincode": + "0871a88534c4af021483c6c7dc89324a5dfcd7d83949ffad1eea1804e6d3747f", + "finger_print": "05cafbf2", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "3bba8f15" + }, + { + "private": + "xprvA6ERp19Nb8K3ddkyNgaMR88ZEbRT86TtZ82KLchE9cpANce8RRpCELrdG77nTKgEkqej97zr8iptcv3XgnkQMhMPBmFhDuGtwiCeuSNn3TL", + "public": + "xpub6KDnDWgGRVsLr7qSUi7MnG5HndFwXZBjvLwv916qhxM9FQyGxy8Sn9B77H4SSkZWAQS9ynj8uXnTC8R6AiSaXT14i2hAKviLRL4mDqGhEd8", + "chaincode": + "e8d1489058b5596fa5855df98d7a6812941c7f4b7716d8c138e7ad63355096ce", + "finger_print": "2a41ffaa", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "05cafbf2" + }, + { + "private": + "xprvA8P7JQuu1dLsYZadU3uNu1BTz5zhLwoJYSZPEBCBqCVnQBcg6kcTFNsTtpPzk7vEKWn682c1rSoTY6S5GmVRzh9DsNBvEAuJhVXA4Evf83F", + "public": + "xpub6MNThvSnqzuAm3f6a5SPG98CY7qBkQX9ufUz2ZboPY2mGywpeHvhoBBwk3JhqPXuszKNP7pqyW8iAVYBRuo6uPYqSzTAqSXnyATDvtPdd3X", + "chaincode": + "bb88c2e4ba514166f4a7db01edfa2f3a58df0272e8c5a7ea2f28bf97bd58c30c", + "finger_print": "eb5041cb", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "2a41ffaa" + }, + { + "private": + "xprvABgYf27Bgsc5DPnj412qsX4r444XBPhMWmG64Q5ZkYcbCsV6U9TeeyGyZ5Fk8MLSQLiLRR4iRNTbuaJGPgLQoT8ZisaEVwVmZdwV15Rb15P", + "public": + "xpub6Qfu4Xe5XFANRssCA2ZrEf1ac5u1arRCszBgrnVBJt9a5fpF1gmuCmbTQFa8VSUsPpTzMeQP2yjmBzKjH4VGKHMswxjS4bELzQgfEeDrz4t", + "chaincode": + "5df2b959736c9560db81c1d496a6d86501e0b6def2be882f08035a2ee8ae6813", + "finger_print": "301646b4", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "eb5041cb" + }, + { + "private": + "xprvACBs9hcQh421HNBGHNiv9g3XjV89uSw6L63KTcGXogDrJ13J6DwCnoNJq2i94pDftVP3sBH5DRSyJguyhvF5Ud8ZpMXETViVn2iMtG57KgB", + "public": + "xpub6RBDZD9JXRaJVrFjPQFvWozGHWxeJuewhJxvFzg9N1kqAoNSdmFTLbgngDZMVvN3bw9nhqQ334VH638ieELAehfWcieqkEPz8dp9udFhmB1", + "chaincode": + "23673796a76d4b4663cd341ec2df4d66a10c59e4816b25059592a1339c364d6f", + "finger_print": "4df0cb9c", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "301646b4" + } + ] + }, + { + "seed": "e90ebcdce475576db6b691548400aab65f3bad01081e68f457d7bf2ccc5111d9", + "private": + "xprv9s21ZrQH143K3QPckh2My6N7dLfRxEXCDcZJyddoq9oJVCJy9ud5KHqeGaNWtjXPykCGGAK445jqxU7bSNrSdRNAtz2HJobvkaXLdAEghRB", + "public": + "xpub661MyMwAqRbcFtU5riZNLEJrBNVvMhF3aqUun23RPVLHMze7hSwKs6A87nfdByBg74PqW4uCvPc7WnwPnDUFsnYKvN7AxVGgt7ZB9pEiu9b", + "chaincode": + "872282bfd655986f0af583273c374573b0b17fb852a0f8661652a2d0c0cb8082", + "finger_print": "8695b5e4", + "child": [ + { + "private": + "xprv9utXArg24zhK6XJxA7hUiFMPKXnzmkhXfjwbv48mAfMvzjdwrND7bRDvRHCd9shcZ4Hm77Lz7m2SkeUx7xst38qQLuvGEoA8FwRRAW8trAX", + "public": + "xpub68ssaNCuuNFcK1PRG9EV5PJ7sZdVBDRP2xsCiSYNiztusXy6PuXN9DYQGTwCHkZU2N61dFdQCuGAH6r7PXRnSfp37Q1g2mTc1wjDXANZicC", + "chaincode": + "4e7996dc4de069ca7eb343057400d8122b30360a262126525a9ef4caec7d2016", + "finger_print": "d0dd8ad8", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "8695b5e4" + }, + { + "private": + "xprv9xKKh5HExHUNxVveb2nwbdbT8gTnFdUfz421Up7FzCuFAzcpyDrZcSbaaCJtJgAyruFvKnuMNn3XbjrT68Jsu4NdaFNcXs7KGqz3pzzuhp2", + "public": + "xpub6BJg6ap8nf2gAz17h4KwxmYBgiJGf6CXMGwcHCWsYYSE3nwyWmApAEv4RNN7kf27VKbCMfEaY8WmJ3CjwD7FW6du6EqQ5g7UJ59ADgrdK9s", + "chaincode": + "c7be3c834a63c4a9aede712d4298e3072682be5097343b1fc786cfa324758d08", + "finger_print": "834ffb1f", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "d0dd8ad8" + }, + { + "private": + "xprv9ydPyUdGK7u4xwPryC1zkNoF4MWgJEAXekhfQpdKZnKMhnNyHfdtMxbfsDpRzrK41MekcDaFRzoXxjabkJfNEKMD5VQjCtTqWJfhoeFPiBe", + "public": + "xpub6CckNzAA9VTNBRUL5DZ17WjycPMAhgtP1ydGDD2w87rLaai7qCx8ukv9iR3zwtmthd4mT4XiD6eqCKWqKgudkaXsTpS1tGGiWznoXxcJLEM", + "chaincode": + "5989f1c1dac355223bbe896bbd0df9b627ab0a9ac57e41dfc0b9f220e6df2690", + "finger_print": "0670336e", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "834ffb1f" + }, + { + "private": + "xprv9zbJCC2KZThXq7Hfoymo34aDAo8SriPnm3gLU1adZTgzTYiji4Kj3MPTVX65TtDuZvxeU4vVDcVyPNLH65wbLBWxiAmzJyuoaVwwSdcsvec", + "public": + "xpub6DaebhZDPqFq3bN8v1JoQCWwipxwGB7e8GbwGPzF7oDyLM3tFbdyb9hwLjeeHGCRLVd5fb5mpkHUxVVMVovsrcE1EVjwpdHrGN5zjQAE3hL", + "chaincode": + "fbc5a79b06e508e76536939ca757fcd3009bf15406b8f5b9d713148f413af51b", + "finger_print": "3034b152", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "0670336e" + }, + { + "private": + "xprvA2nEoAoFgMYzqF7GoexQtFBSKzvcLgscsgdUyM3B9DQ4ktCK5qBGnosHqG643DXH81PaLiomWJpiqwgsYVcdwR5Zv2tFka8sQmUhnsDcWhT", + "public": + "xpub6FmbCgL9Wj7J3jBjugVRFP8At2m6k9bUEuZ5mjSnhYw3dgXTdNVXLcBmgThrG7vLFbB694RsuQ95oDY4YD2WQXiHFcQskwtBUswExbC9F7Q", + "chaincode": + "b42a076814bd9749d331b6cafde302848c676b1014c0a04e531a2ece41fc4b6d", + "finger_print": "e753b4c2", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "3034b152" + }, + { + "private": + "xprvA61SWZ2udvKQQ9PfoH2SzpQYoXfs9oYymhLKux5uerHnZuLJbUfSuz1NoJEs1AKEnRzWbancrgfVRthqzGA4kiqfbvWQm9U3816RNLowobx", + "public": + "xpub6Jznv4ZoUHshcdU8uJZTMxMHMZWMZGGq8vFviLVXDBpmShfT91yhTnKreWXHjxvUnwUxn9YmrdMuX3RwKaJdzzbKYXeoKEvoakuoyzbZrMX", + "chaincode": + "75298caa1b422444fd03b8ee08c53b22309824312ad663c32f6a38d7f03f34c8", + "finger_print": "e84b0e04", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "e753b4c2" + }, + { + "private": + "xprvA7tzFyttL149rUHMuPacNTSoEZCWxptHfJWozkP5a6Q5wBzxysRWfLLkDDf8iUFGWNw5KaZ5F4mJFHgGRgiYMcLgz2RTuNF8DKooCDKAE53", + "public": + "xpub6LtLfVRnANcT4xMq1R7cjbPXnb31NHc92XSQo8nh8Rw4ozL7XQjmD8fE4QinaRbVnXycDAtbiMhfq4ZEm1VqKwRWtL5nCa9qo5BjwcFvMtn", + "chaincode": + "17defe1965df75c14a98c4dd95a8cafdee1bacbc17db9c40fab485e0966ad850", + "finger_print": "39c00bc7", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "e84b0e04" + }, + { + "private": + "xprvA8ViNA2dac92ZeafBDFWSebS5UbpmUCe3RhFoqNiRVNb1ni8r5ZVfG6KP4nUvbfMM6D2izd8CyRPaXnpThcUcPSMPxg3P57E4ktV2KijckZ", + "public": + "xpub6MV4mfZXQyhKn8f8HEnWonYAdWSKAvvVQecrcDnKypuZtb3HPcskD4QoEExbFN4XwBrfjN7LCsgFRqztwf1RstcPtcCx19LJSEJxpuE111F", + "chaincode": + "8a27a65346ebbc274029fe00511eda91c1f566bc282d6824f539b2f6cc562348", + "finger_print": "6eac540d", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "39c00bc7" + }, + { + "private": + "xprvAAmQoEc7UyknpYmXKyDneQvyYBXoF4bZSq9AcqyhvsXGuJgBneGek9t9cQ5LM1Fdxanq4t7apwfH2FvogbpsEm37idvVExdWxi3cxDNo5GB", + "public": + "xpub6PkmCk91KMK632qzRzko1Ysi6DNHeXKQp44mREPKVD4Fn71LLBauHxCdTbp2AywpUATxWjPDBPoMrf4sfKuQQbekqb2JC3yFAi2AoGUy8Q4", + "chaincode": + "78568b044e6b91904263aae72f673857375302584510772cb2b67b6dfa19fb3e", + "finger_print": "ce6a5065", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "6eac540d" + }, + { + "private": + "xprvADMMydQ3p6XtrCKbZHuRXdKzwi9uRnvaXcyfw2x5n3BYacjru7n1qqXuBNrb7iPMDQjaS8KpXZoqxoZrSmojarmXmdz42oSrLB4Wgh4VPCq", + "public": + "xpub6SLiP8vweU6C4gQ4fKSRtmGjVjzPqFeRtquGjRMhLNiXTR51Sf6GPdrP2ZXYGdii9tyiW84DdPd1J5d9EFhmeyXP8QdZctkjvrrsz436K5T", + "chaincode": + "df18330689c5e9c0059376a8396f1784b642fe9e4f1d9d651e5e9a3f3d5d59f7", + "finger_print": "dbf23ebd", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "ce6a5065" + } + ] + }, + { + "seed": "f8fc12d907f75678313e39e422d77714941b4029fd19d365685acbb752483e05", + "private": + "xprv9s21ZrQH143K3xhe5xqsHzXZVCfhp4C6xcMSZjpajkGiAZeqK7UKLLt7pZs63LdwVfwTpLcsEj15qEmL6AbgpdKtseexWjuTvRCp8saKY3E", + "public": + "xpub661MyMwAqRbcGSn7BzNsf8UJ3EWCDWuxKqH3N8ECJ5oh3MyyrenZt9CbfmCzCsojfabemYf6AFYJrSRGsLpiz8vVqRub92noEhbHaT1zAjG", + "chaincode": + "bf16c91442480e2392b6a64eca60c137fb41d4fc1f6422f252f784d4b2d56eb9", + "finger_print": "0119e1ca", + "child": [ + { + "private": + "xprv9tucejfkxos5kGAfHektWEsvaJdCnRJXLKxbuQ2kZYvZe7b6PaFL1daDUw7SLqEsBjRsZzu2KrG9gCoFUfk6KQ1xwE6ieVkYFYcdkhcC4bz", + "public": + "xpub67ty4FCeoBRNxkF8PgHtsNpf8LThBt2NhYtChnSN7tTYWuvEw7ZaZRthL9H6GMqUX4Bhqqotvjf6etuQVhAUfpDJq6BGx9LBQofi4weHn4x", + "chaincode": + "e0c4eb765f17fb4fa18a0e5ff531486d4518d93612998708881ce45403beff7d", + "finger_print": "f0df8e86", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "0119e1ca" + }, + { + "private": + "xprv9xYy7qDnRYXzjd13VC4MUaz4i6i5Zu5nwiYPwhV4yPz7HZYpswFPkdVapUXdUx22YuM5rRwFPUSGRBu1Vzh4eci34SnTpgp7gtqgFBk1MMu", + "public": + "xpub6BYKXLkgFv6Hx75WbDbMqivoG8YZyMoeJwTzk5tgXjX6AMsyRUZeJRp4fgr9hTk6voPF4b4azfTCyBzaM3yiE3jrDd4Kv2nhsnHuRBZBSZV", + "chaincode": + "b311a1840f4d8622b535bac8f691cf93f483be45df71c414ebd13f7692724650", + "finger_print": "6d93f93b", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "f0df8e86" + }, + { + "private": + "xprv9yU8ZyyHfxG9B12sv8CCkAwRR4KSdq2Zx6WXwrHQDQhUKdycfUi2VfuK9agxboFZ1x6zMQ2dahuV8jYuYiqqmfnGMgdjmCgEp4oLSxGcexD", + "public": + "xpub6CTUyVWBWKpSPV7M29jD7Jt9y69w3HkRKKS8kEh1mkETCSJmD22H3UDnzmHzthN4ffjN98v9sX4DqW1sNx3JJ8yYxe3Tv8s9Lce3gdegLom", + "chaincode": + "ec83ddccbfc0729ac333a7b4a767e3185dcba0ffb1618820a6a29e81b3add1c2", + "finger_print": "36853d1d", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "6d93f93b" + }, + { + "private": + "xprv9zwo5Fh9grLFnWtb4Fj6S9buanC61u5LGnSAMeQhFqJYDeuRQ6QoUkwz6Jq7JCrsaD38nmgsTp6uivjYA8bVUH6Vvw7z4JaonqGZszSBKVQ", + "public": + "xpub6Dw9UmE3XDtYzzy4AHG6oHYe8p2aRMoBe1MmA2pJpAqX6TEZwdj42ZGTwWTG2dMvin8vJyjeNQWkBx4U3a3cpyAd8EuTPecfFFWZTZbfjJz", + "chaincode": + "979f50f7386c6401e538027c80a1e12efd0ae18db7c2ac672c865cf9f85344cf", + "finger_print": "2f78e2f1", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "36853d1d" + }, + { + "private": + "xprvA2mvf5iYDxSmujp1V56jKKTaXg4axkXU7wyShZLQ97PspZAmBxLP7PoFURro9DXotmbjkfJw7zd2fRXhFEnUdvwcfEaRx93fhTdg81e8Mnr", + "public": + "xpub6FmH4bFS4L158DtUb6djgTQK5hu5NDFKVAu3Vwk1hSvrhMVujVedfC7jKe2t52XKFyPam5bU2ZwZXXuKH5QeQT3aKY8D7qVhgrx6nNGv6pZ", + "chaincode": + "f4f951dff5f85f221d28da70cab621dac9b0fa740a47c4131954676605e44ab0", + "finger_print": "a1d74220", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "2f78e2f1" + }, + { + "private": + "xprvA5VpPuhbZ3zFxs3GuFBZy8fx9UMeePDSMVdiJBSHtvSEajNpazyWRnaUJDiLLkJdMEutC687k5XU9uhJgHTFtTxXqKRbJDarQk8s37JpisG", + "public": + "xpub6JVAoREVPRYZBM7k1GiaLGcghWC93qwHiiZK6ZquTFyDTXhy8YHkyatx9SCeTZZNTWyY1oryPduHu7vYKZV1wpfZXTwXgz4qwEUas13jbtF", + "chaincode": + "38fdd3cf12e31f4187dcc98d48b9d14fc9d8fc29476491dd7f1cb383fc661863", + "finger_print": "9ca0f009", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "a1d74220" + }, + { + "private": + "xprvA7LjNr8gsLaEKbUVYSLiPsGTByJnCbGcZaVobqk1zsxUmvFng6jYK536THBNvU7gHs7eSTbXzJVRWXbyBbcg4tEY4L3J3PTBy48y2mcUDvv", + "public": + "xpub6LL5nMfahi8XY5YxeTsim1DBk19Gc3zTvoRQQE9dZDVTeiawDe3nrsMaJTVgYRBd9Nfi6jkTwvNoQC4PvEkR6DsXk7jzbVYuZKZK8p4CJTC", + "chaincode": + "8b83929175d9ec5636e5dbe3c8a13d1d36752806ab8bae8e9247d74a44bef20a", + "finger_print": "4a0eeebd", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "9ca0f009" + }, + { + "private": + "xprvA8cfbpCE7wzzQCcarWvuizC4X8AByYZPAM1hmLcyVedvAgrBvaMXuASCZSMfX9po5KdPC9T8392cknvqx8UBU2avTa1vg5Birnqiv8DnHvo", + "public": + "xpub6Mc21Kj7xKZHcgh3xYTv688o59zgP1HEXZwJZj2b3zAu3VBLU7fnSxkgQdXzU5roG37MJzjYcTsUBiXeqRUArYxa2Uy7H2JAWNEjUFA6HZm", + "chaincode": + "a9c0267a1e89d28341c4faf9eb7d613b545f0b6384f9fcd0806a5234f4bc51e7", + "finger_print": "1c35e757", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "4a0eeebd" + }, + { + "private": + "xprvAAAFpvSoY6ch1jxAqD1GLCMiJmSqaaffscLso4yUBp9dPmnxWG74SANEwx1FeeD6g7VwTGbtwv4jHRB88fqKNmmxLwvDjNDXs74SUAXT6ZN", + "public": + "xpub6P9cERyhNUAzEE2dwEYGhLJSroHKz3PXEqGUbTP5k9gcGa873oRJyxgio7up3vxgs1vanYZXxQr3U5TmKV4xZxenp8GNFWQWZHc4ybqmVTN", + "chaincode": + "a1e86563b73b8bf5bcc5136a404d2fcac1935127a57cf5771fa9c814557d7434", + "finger_print": "07fde01f", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "1c35e757" + }, + { + "private": + "xprvABtmkfecrhLHjDaJx27PPWVKNgDPkq5sjYCxDSbomJoJbJDdkiCtAffeUQRyXzoTG8pohdqt1wqzzwZLmGS1QWbQDGmqF7AP1tW9LdKdGBo", + "public": + "xpub6Qt8ABBWh4tawhen43ePkeS3vi3tAHoj6m8Z1q1RKeLHU6YnJFX8iTz8KbXxsRpLKZPXwxpnvk8onmKYx9SERVrByX7jKAz74AeEpfsEebM", + "chaincode": + "70dcd857738a2b1755480bdc0808cbaf68716bc935f18af7a7c965f1d7d78a94", + "finger_print": "940a4eda", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "07fde01f" + } + ] + }, + { + "seed": "8e830a5c7a1310f3795659ec060e4069d9f5279d1fc489025622c5548494d257", + "private": + "xprv9s21ZrQH143K3n3uay3S1J7iZJ1zjLzm2KbshhzbG7ZpobaQ6HKnZt7BSTw6EyUbaRw7pdT5N7fuarZSSzFS231bE4TCfVqhk7enVHEQodd", + "public": + "xpub661MyMwAqRbcGG8NgzaSNS4T7KrV8oicPYXUW6QCpT6ogPuYdpe37gRfHeCwEnNxZ3Am2ufaewHFeE8bEZ1tGHRXNX8WX6ML9rFsHPyPJQq", + "chaincode": + "aca515f3b1c8b23a87c76fd867fa08bb1bb097e6e850c224ac0eab8fdf21a7ab", + "finger_print": "cfaa8f15", + "child": [ + { + "private": + "xprv9vRgBaAuCWEEk19xpWq2f3eLUNFqrLjJ9udcykJV2hh7uWXwEdHB6S9k4ByQ24Gn8h4oKMNjE3QNXouyWffMYhxxAudTKbd4aEcc9j2Pew2", + "public": + "xpub69R2b5ho2snXxVERvYN32Bb52Q6LFoT9X8ZDn8i6b3E6nJs5nAbReEUDuNsc5RnS461LdAxAuT7svgvAdHdYYv1stHMo8jnNninz5ztzahq", + "chaincode": + "43e654293f3afbf56719af0e59a2424e36e09e76f92b30fa1f0194083fa093dd", + "finger_print": "8e443cc4", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "cfaa8f15" + }, + { + "private": + "xprv9wpvy6gniCsCLFd7WTm7wDuyaCU1yahEdbHH1RokjFM4T1V6poFR3qhDGDeeU1tmJdqZ7pjtDqV8EVU8bfUHFYB5XaeNFqiBEyLPkbiGq4U", + "public": + "xpub6ApHNcDgYaRVYjhacVJ8JMri8EJWP3R5zpCsopDNHat3KopFNLZfbe1h7SDoTArAjdqmjp5hvBeZDuFZLcz42pJSGfdHbQfKTV9bZ4LBdA4", + "chaincode": + "1fefcf53bc79951ba839211b4df3fb5b280d88e88719e75106ee92541b4d9054", + "finger_print": "cd5fd6cf", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "8e443cc4" + }, + { + "private": + "xprv9zAyEM1bAxbBKhJEjSFo724brKma466JD3oMHnTrTz3qm5Pd7Rs86Q69W5sHDLZwFKaGrbQtjsRMgcW2LtmPbdBWrvphyPQcTKxvrg2sv3E", + "public": + "xpub6DAKdrYV1L9UYBNhqTnoUA1LQMc4TYp9aGix6AsU2KapdsimeyBNeCQdMJpoHSVFfkBWeds9FPdkZ5qchw9fEs8qkfV8wPJpRyk5tiPPevK", + "chaincode": + "96b91649ad498fb057f4179b7c239fdec7b0c657ea21d0a5a46c9591b61d64cf", + "finger_print": "b8b02fe3", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "cd5fd6cf" + }, + { + "private": + "xprvA1uHbxcGf6DKYLcDzcS6KSHbmPm5bg5FEqNdyuJiP2osRRvEYLRTe1o1VjHzfpf6Pb5Tc1xkefXoKowfd7ke2U5TPBftqsnYGPdK6yAgMkg", + "public": + "xpub6Ete1U9AVTmckpgh6dy6gaELKRba18o6c4JEnHiKwNLrJEFP5sjiBp7VLwRDfbePCLvGi2Ag8KQYfNXJMLsLC2u7ZQr5THAxsq9E78kKSam", + "chaincode": + "98472fdad8c583922662e16cb11128f3e06509a8b89456e7f158238f2e839a0c", + "finger_print": "b438f5c3", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "b8b02fe3" + }, + { + "private": + "xprvA3kX3QGFV4n32gmPgRJsLEoyKEAgJeAuku7rHxEqLofbt7GjctqnAGwDHhVyWXoEtzhoUdhXP4QHkySkvrCjhGcMbpLgPizig23X9U1P1SF", + "public": + "xpub6GjsSuo9KSLLFAqrnSqshNkhsG1Ai6tm883T6LeSu9CakubtASA2i5Fh8tH4WYBWqPpFFZJzo63qea7jY2x3HxjQ1WQjX4vs71hAqvrTsRy", + "chaincode": + "f607e7c8284a73802ebcbf6b9f65d2b2068d3cb8d0f5a860125279fd5a5bcec5", + "finger_print": "399d094e", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "b438f5c3" + }, + { + "private": + "xprvA4jPGTpgYCB4sH4TQjwec3QQw2pnZsGni797JCFiYDpiQE69tBgeukFsYztcvsu1M2Dxr4hUNw7ij5LvTpbgYxLncwdAjN6FyUipRKHheo5", + "public": + "xpub6HijfyMaNZjN5m8vWmUeyBM9V4fGyKze5L4i6afL6ZMhH2RJRizuTYaMQCW83BFUmGZbzk4tYvxJi5N5HGbAa1bLTMZs5ycQydaxDesStdZ", + "chaincode": + "6fc18d67a22bb93a0d5e28c64a406257cce3eae39f279b256c140962b0f0f49d", + "finger_print": "dfeb7d32", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "399d094e" + }, + { + "private": + "xprvA7qRDknRyo4qvm9S4uoBro96dzqVCfHYtpmgM98TGNPaM45NTSfuvmC618bX16D5c1YugsbBuepyns5oxEYYT3VsWV7L7RxqvmqSq1mzmgP", + "public": + "xpub6LpmdGKKpAd99FDuAwLCDw5qC2fyc81QG3hH9XY4phvZDrQWzyzAUZWZrLemjRQ4eZPyVw2H5Ek3SbwyEXdJbJwZDJSXbZzyRHAoXxmmqcW", + "chaincode": + "5158b154eda1af056a25103b7d40d60cae58a66e1ece63c0d0efe8b238504476", + "finger_print": "c949d6a6", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "dfeb7d32" + }, + { + "private": + "xprvA9YuVb5epYTf2wSLB4gMHAsrVSsMXyqp5tgKsLo1t6LFiZDStVJgByGX7FEoamxPGfT9dhusKm17EPk8sjYqM9zGpeHv6Eem15xaH6EUbaT", + "public": + "xpub6NYFu6cYev1xFRWoH6DMeJpb3UhqwSZfT7bvfjCdSRsEbMYbS2cvjmazxRQ2oo3XrSWs8g4GdTkBufNxEYGjfeqTmmri8cwc8WvyDeP5VnP", + "chaincode": + "17c160939913c764633c0f0763da05314d64c50d5221403adabc59f349c39876", + "finger_print": "7573dc75", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "c949d6a6" + }, + { + "private": + "xprvAApJRfdXwLAgwQyi9tdsHQPEL96TwbKjqNcqRmcMvLehd79A7p2eCktSSUoCghj8nuNpwSq1kMpd43FQBVkekuNgDK5rZopHNYu7S4n9rPY", + "public": + "xpub6PoeqBARmhiz9u4BFvAseYKxtAvxM43bCbYSEA1yUgBgVuUJfMLtkZCvHhmqynJEYW6u41kHD4EjhLyw9LQpQ9tu6qTTEH7kZkmy9cCVhqh", + "chaincode": + "1a2a201e94ec1d6f190a23efb91faa5e6365c70e29372f5d9d04f283a702eca4", + "finger_print": "c47f789d", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "7573dc75" + }, + { + "private": + "xprvADH8m4iLJ5CdZ7fUVMJmuXb6k19LDRuh7E53mocZEYypf7YbE9Kaigg9WfwQNgC2oeic641MbrPCYqMpbU8g9S1CSXsaU5ZnVX5MroR19zG", + "public": + "xpub6SGVAaFE8SkvmbjwbNqnGfXqJ2ypctdYUSzeaC2AntWoXusjmgdqGUzdMrmpCBAQYkYjU79BtYH8dVzQ6g1WCV2NDCjf2JK1JvtU3htJpQs", + "chaincode": + "c83c015e3a17fbfcfa6fd52076be8150f3135da163bce0f9d17f1558fbf57e29", + "finger_print": "51472458", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "c47f789d" + } + ] + }, + { + "seed": "9e002e2b88ef0099384c8e8598715af51e3063756846554d8fdbdf5ee591b29f", + "private": + "xprv9s21ZrQH143K45tudQdx5uh5S1gc58YK5WzRWP1fk8WeodWEuf7SBmXuykRgeqMq6siMEApxDkzj2vjSXcerHe7q9psbsS311gPiZzvQQZE", + "public": + "xpub661MyMwAqRbcGZyNjSAxT3doz3X6UbGASjv2JmRHJU3dgRqPTCRgjZrPpvymB2fMjVnmd7QKRezXzKaAVcMCz7L5FhSRRXKLb4bdVuzDt5p", + "chaincode": + "cb8c369a4ad84520247cb64b41432761b9326ea6e6fe9df6f64d42818622f43e", + "finger_print": "1daea7cd", + "child": [ + { + "private": + "xprv9u7oMChPCgbXCgu3u25Gc7LBxDnA4YzoUBqkACt13jsncUke1dyD4S4StCVWM2RUyVvcZoV36UWJfaDeg5aK79Z38BduxkYLRG17ePRgVN6", + "public": + "xpub6879kiEH349pRAyX13cGyFGvWFceU1ieqQmLxbHcc5QmVH5nZBHTcENvjQvDx6Snod4fvNMJey77MXg1mwc1AKQukgKQLb5zHEEroYqTLBJ", + "chaincode": + "99341cfd852efce9aa05e80c5dcaffa6f67771ad565b01ca49641ace10790f66", + "finger_print": "9f75864b", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "1daea7cd" + }, + { + "private": + "xprv9wxG53sJXBGvJDFSy2V4ZoLKJkEXGLhni9x4ChY9W2Jp2Hm3VCeKEYCfrHgWX3nrzZN1q133VTAwnkNbEyAqRF3JCiaTF4tcoDAXEeMwbXj", + "public": + "xpub6AwcUZQCMYqDWhKv5424vwH3rn51foRe5Nsf15wm4Mqnu66C2jxZnLX9hUddUut5vsi9Pt5oZGddDwW8yvzAqPawVmAxd1tZjqPwCGk4rFL", + "chaincode": + "d82ba76928abe8e78fc36f4bbf3dc24f3a8f4ec95b2893378621a423a3dfc220", + "finger_print": "9d5d07f1", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "9f75864b" + }, + { + "private": + "xprv9ypW7QTw1hjNeSqt38Kqf4bCXHduvPeKz2B3LxirSWDbK72GHaZML3fZaNGJaSEYU397Nx8fHrYmpuBYnEqMSa2TA58aobir7V958CmJ6gB", + "public": + "xpub6CorWuzpr5HfrvvM99rr2CXw5KUQKrNBMF6e9M8TzqkaBuMQq7sbsqz3RabeFvgCGP7fqugrWzvATEBiUEX1nvjYXHQvuCriYo1YB6kPZ5B", + "chaincode": + "ff47e0ca35c8a1298f615a48a639dbc59fc4be2924b2f04536590dca6361869a", + "finger_print": "5bbed459", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "9d5d07f1" + }, + { + "private": + "xprvA1DfVtiop9pPgJB1HPqp38MfJYiK5akXJZ6wfvDrYrk6pFZfpX7n1GfwosAq7QiUxfACdfUY9EuKtY5c5DxMsYiaJGEcwQiTsueLcc9LTNq", + "public": + "xpub6ED1uQFheXNgtnFUPRNpQGJPraYoV3UNfn2YUJdU7CH5h3tpN4S2Z4zRf4EijDQ1GSRnPjcB3w7RNDnoYx7GrKrKc4xv6AQcdBasYBvt5oE", + "chaincode": + "46f939773635c5e28bafa2c2bc6bffdfb7c369baa73c0fd390b2996822f7bdab", + "finger_print": "97826bda", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "5bbed459" + }, + { + "private": + "xprvA3YH5nQ7c8XdtKRcGJBEBQxEj5XMrW2cpzLjGDe5H6Hm5cxdk2VeFCgTLg85cRLWdyrpNWyFFKisfSRzS4jvetiifEfhZfHUXmPGPn3fiP2", + "public": + "xpub6GXdVHw1SW5w6oW5NKiEYYtyH7MrFxkUCDGL4c3gqRpjxRHnHZotnzzwBrC6gNf4UuWoTyg6Azk3ttv1mMWxR6QYvdJDL25krb53ryuLCCT", + "chaincode": + "96b0e853791461a24dd663d875c8a1f735cd27f807c02308a60d46d348bcea0d", + "finger_print": "989bb1d7", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "97826bda" + }, + { + "private": + "xprvA5Rt7FvPvmMLhnT6uoVP4k5WnDdEsFWuVZG84QCqetd9tmAY4nwZ519oPQkdxL98SqYAzg5M9iyuR4NvjgpMAgUWu5UvWYxiq5pz1Yj41b2", + "public": + "xpub6JREWmTHm8udvGXa1q2PRt2FLFTjGiEkrnBirncTDEA8mZVgcLFocoUHEahLEQQ72mLr7VNAVHVQGD6PxiYvFL9re21dU2VJ84rShsVQ3w9", + "chaincode": + "016899e867ffc2d871c71d7a7b0d52d0254de4f80343f14e9f6ba90b64734627", + "finger_print": "56778be2", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "989bb1d7" + }, + { + "private": + "xprvA6ppZNr53T33FcDA8yKox5xDLVFUPuUAoHu6K2mVK4YbcksGcsTZmMB5pByPcRVAsKhjccDY23vohWA6Pfyes6KJ46YvTy5w19kHJns9jap", + "public": + "xpub6KpAxtNxspbLU6HdEzrpKDtwtX5xoNC2AWph7RB6sQ5aVZCRAQmpK9VZfNYxCWBvX5EnKRHSmT9szUHkKbfgbYdMEuEhVv8eMHRM6QmppEy", + "chaincode": + "48be883c7a99baf4cab5880bb44f2c6ef0db00c4cad7514bbc7f1ab4667cc599", + "finger_print": "ccaa11f3", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "56778be2" + }, + { + "private": + "xprvA9aLy16ExcVsdpQjimPWTn2fUDt7yoMUtTa54Mxh6WZAieH6CYzGaU33gPbWJz8B3UaHX8WR7crWmWW9kmTyu8PjBAdDaaisTHkEQxXeuYM", + "public": + "xpub6NZhNWd8nz4ArJVCpnvWpuyQ2FicPG5LFgVfrkNJer69bScEk6JX8GMXXaqSTLLJeFQfuujMGExhCeiNxynnpAhZew9pBtrJKYioxWnhXFf", + "chaincode": + "6fc3f4201f0c944859c8f50285e6d906d3869d718dd44e3df4d20ebb75e3f2e7", + "finger_print": "f4b571e7", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "ccaa11f3" + }, + { + "private": + "xprvABkYxrG18HWCcczoVorWX1kzsh3r3dFzpDDfnx1ZXNzfTNbq7SCMxScjkxehWd6bDenM5HHYhDozVvGNsFsuNucNAqAch2EXRgAxkfLVReJ", + "public": + "xpub6QjuNMntxf4Vq75GbqPWt9hjRitLT5yrBS9GbLRB5iXeLAvyeyWcWEwDc9RUMRgEq24952CYVxKEmTMFFjthxqyvFUixke9XT94DwoRjJJN", + "chaincode": + "a854c33d78d02df74da7929a039205241da78259b5fca0d95dda6539eda277f1", + "finger_print": "9fe56193", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "f4b571e7" + }, + { + "private": + "xprvAD1Xjwuhu9SvcPXFqzpjjFhXWoPtovM5WRMoj5K4gHptkXJSDpfRByuJkDvwncE2GnUZn7SHbXVmoLwgvJ7cN6hEUhn36ig4GqBNcqHv3iK", + "public": + "xpub6Rzt9TSbjX1Dpsbix2Mk6PeG4qEPDP4vseHQXTigEdMsdKdamMyfjnDnbPxx5q4KGju6KXShyCiNXu6TZX1HDcj9JzVaYHHmfYwkA7x8A8P", + "chaincode": + "27fe046f11761c7d14c643d16468b48507ac5201d04ec61a71abb5d4ace1e3c5", + "finger_print": "3716d625", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "9fe56193" + } + ] + }, + { + "seed": "70020868281bbe02c5970f302a0c145407bf80a575e663fe9aea3c772e7aee8f", + "private": + "xprv9s21ZrQH143K48mNWhfHUGTE5i5ktt3cEcDjnGkQEPkURnNRVY1AFiWkvGExuiNRFmw8peo9rvR2BxsjH89obYNY5yhDtQQptwqpzs7dzDF", + "public": + "xpub661MyMwAqRbcGcqqcjCHqQPxdjvFJLmTbq9LafA1njHTJaha35KQoWqEmSdRExv86aoyQ2gGRP7AWV84ZWdjJL4KPmJPqwxYa7cG4XeY39E", + "chaincode": + "d08497de5fe29d5fa8e94a6ba4b98123316a6b6a89ffc3ad415cff6aa10f8d02", + "finger_print": "2468ec78", + "child": [ + { + "private": + "xprv9uAfhKrGryiJs6HpXjGF5E6ksw65inze8SUL4nm7sRofjMge2hWJZBfzXoNh7LjzKBHCYoMPTkMP4LNE5Mjyw4mdSioj89cM8fbvh9wvSKA", + "public": + "xpub68A26qPAhMGc5aNHdkoFSN3VRxva8FiVVfPvsBAjRmLecA1naEpZ6yzUNzeayab7rhqL8uTjnDtwZoMbM5J7MRC7mxXFV9iE7us199JCNG8", + "chaincode": + "e7f9570e0d28acaccc493e7d54b0511536b99c723fc4f8f9a7aa2576bc428402", + "finger_print": "ff659650", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "2468ec78" + }, + { + "private": + "xprv9xfAEBskGWWw3kQvRej5YhLNxXzCfpS5R9keBqSFyb3iTRwrtWXHhkSwdXL5Coa55PkvH8pWrzjsZwYW398iKUWgboSQEKwRAyJ9bea5wH3", + "public": + "xpub6BeWdhQe6t5EGEVPXgG5uqH7WZph5H9vnNgEzDqsXvahLEH1S3qYFYmRUhmMvm5wUnmcuR5wpDAtQARPXrcFSJpGypceWaQSyX8FkV23LXk", + "chaincode": + "a6f21b34db6f51b6f83ed9cfe07692633035790ea5ca0733f43f159efdc82574", + "finger_print": "ee3d1050", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "ff659650" + }, + { + "private": + "xprv9zQyq7hPKtEtVRx3rAEL5H36tGUFCH9Lofsg34vt1mw3pifc94qUty8oU87R4MeCPYGMfgpCrSMG4kPc6J7D2Mf9E6Z4XMt91VXJiJPRdK5", + "public": + "xpub6DQLEdEHAFoBhv2WxBmLSQyqSJJjbjsCAtoGqTLVa7U2hWzkgc9jSmTHKJcoR8LZw3CDvrmX2S8bkSvURpePWWi31j6fFYGiLbttJ9yHTEP", + "chaincode": + "2e1248f58391abced0f84d3a9845708e927b1373533073047a4e9ce131116315", + "finger_print": "fef659c0", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "ee3d1050" + }, + { + "private": + "xprvA2RFCcTQqdF4Ee7prQQsmkuVendZLwJsasLdqtpqNbbNpFAG3YFtVEz7Vgs2B1JybXgsBkCYnpNtgc8bvBtS3QM74cfQqv8wJixtpnzsnwC", + "public": + "xpub6FQbc7zJfzoMT8CHxRwt8trECpU3kQ2ix6GEeHESvw8Mh3VQb5a933JbLrsUxSkQsivMEoMtQ8Qzuqcep3PPUQq9pVbsUGEZDmibAGoJmHD", + "chaincode": + "2b8d4950352c8ace84da0a7f86d0d46c40fca7be03cc88f5b3b66fccd15ab092", + "finger_print": "02ca1904", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "fef659c0" + }, + { + "private": + "xprvA2Ssq9Ctd6XeoEcYororLLCCoJPytfpKjnTvHmqa1iPASCTJM6YXtKq3D2xW4NoKbpGXUTcXZ8P714f7aR2kuoi1xSKEuw3GMuK8heXGxeg", + "public": + "xpub6FSEEejnTU5x1ih1utLrhU8wMLEUJ8YB71PX6AFBa3v9JznStdrnS89X4EGrjZNp59PUgkEFtU6uQmNS18fgHEC4hhgDECVok2noYgizU2M", + "chaincode": + "7b2d0dba3ca8888b1d866d1ead6543ff67e6a2dc010f93097b3d1b3fa84b7733", + "finger_print": "fd8cd02c", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "02ca1904" + }, + { + "private": + "xprvA6AuzrV4h7Xu3gK1tfsQ5BzfDicvu4QST2oX7qNUtTJv8h53aV9fRP33ec3bbs4sabn75SMx7XGCMw6fXTsU6bu3JNgVzqQnt5RCJo5cDUu", + "public": + "xpub6KAGQN1xXV6CGAPUzhQQSKwPmkTRJX8HpFj7vDn6Snqu1VQC82TuyBMXVo54VqWhvvRyYikGHJt5Ao9CtzhPYnGqwEf54VrM6cTKjGy6ZLn", + "chaincode": + "cc956c00de0124b31988a880990a8f4fd5810746ffaaa53e79a1615903e6ede7", + "finger_print": "2ea6bd68", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "fd8cd02c" + }, + { + "private": + "xprvA6Xr5QvAcLcEJSdDa3H53GsVKemniurCiQYcMVqFdoVeJ3epn48jFRjkFVbie6jNGNjyp23Y3rTtNzuRFBHHnWG8yCGAriE62VmXSoEYWLC", + "public": + "xpub6KXCUvT4SiAXWvhgg4p5QQpDsgcH8Na45dUD9tEsC92dAqyyKbSyoE4E6hN4ojZcShVDV5JcafxPjXGiqPix7wNbzw44m5H7HxzL287kncS", + "chaincode": + "8863684d43ea0a5419bd7362fed487d7ec76c9ec61764c5aea91fdda84ff9c87", + "finger_print": "dc12db96", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "2ea6bd68" + }, + { + "private": + "xprvA9guyecfVbHpK5558XThzWFnbv2jNAtHNTj8ybwQ2XCtVwYxpS6GxUtjPoFLn8D7t3dkcnAuRPirXtZCVhjdrvufLu871QKxFPD2MX9RPGT", + "public": + "xpub6NgGPA9ZKxr7XZ9YEYziMeCX9wsDmdc8jgejmzM1arjsNjt7MyQXWHDDEznUocVgPNcmoUtf8g2JzQnRy1zxDSL4C97QgSDCHu6NygipLSe", + "chaincode": + "fabdc6df406474ae3c0198c0b79acecaa120557388ee7ef0d25eb4e1bab8efbf", + "finger_print": "a552a3c4", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "dc12db96" + }, + { + "private": + "xprvABAi4mdoqMKWsyV6QefBuQVuiXyHmpckSaaZJVnTpbj2y89QnwD8xrnxTQeJxvqjKwHYpQEVTcwjjh61aBQgL7Ths7jkqAgRcneT22WH85B", + "public": + "xpub6QA4UHAhfisp6TZZWgCCGYSeGZonBHLbooWA6tC5NwG1qvUZLUXPWf7SJbpWR363QoiLDBQ47TU9QBtHbb7so6TQW18AWLJyjVYaDM1t7zS", + "chaincode": + "46699fa65f157e5dd8dfd50134cc0dcc8854d8ff15808f3244c7d3b0dddf3e49", + "finger_print": "786fd17f", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "a552a3c4" + }, + { + "private": + "xprvACii58TgNDTSsMjS98TJhiDCEdVN9VBhHLoF3CsqAh5Jjre8He76uFMAhKS8E3be2Rz2neM9hK7R2akwrCfr57y8DE1wLz8Zgfz3q48eJyA", + "public": + "xpub6Ri4UdzaCb1k5qouF9zK4r9vnfKrYwuYeZiqqbHSj2cHceyGqBRMT3feYVsVuHkVZKfe5QXyv6iiujyyCVZofRbZcjizDANWPZRJBoiscM3", + "chaincode": + "0363cb4d876f7068cd65078de0df6959d571a8be97e4b25d2460fa8c5540e24f", + "finger_print": "d8e6cef6", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "786fd17f" + } + ] + }, + { + "seed": "354799b1236e65b417ded2b1792e31834e0baf4bb073a99e3a2c9252520ead6b", + "private": + "xprv9s21ZrQH143K2oQ3xfJs3YTnN84iW4gB6gCCAc1i5NBLiuH6yLccS3HVdFsVzNVWNcCUuNNhjKbVBRGTJfxzA7XvhTMJ1131os9ptCryvbw", + "public": + "xpub661MyMwAqRbcFHUX4gqsQgQWv9uCuXQ2Tu7nxzRKdhiKbhcFWsvryqbyUTmZLHgMJbco11PebxV2cUmrWcDJw6VaVgzKW423UUHsiViE39n", + "chaincode": + "4a89551b436f7fa36e4157e657f414441f2383ed91ca135e495f94d8721e57e9", + "finger_print": "b3e00234", + "child": [ + { + "private": + "xprv9vDq1xXgg6cCrF9khN8qU5oAiAKaXDd8WGpzEDPaZBUzoxRFYzGidqNcjkfbY18eoa1uhJQZC5er7Eh8LJ72NqE9JX4JGurFnfn55aqL5gZ", + "public": + "xpub69DBRU4aWUAW4jEDoPfqqDjuGCA4vgLysVkb2boC7X1ygkkQ6XayBdh6axD17mUtxxZE8PRE39ZXuKReYfCoojejeY1X7nYvDVP6zHfxHGA", + "chaincode": + "0c6ea4750a57a23996e5b78c6c2436f080550649e804daeb9cf35d860d32a4d1", + "finger_print": "58321803", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "b3e00234" + }, + { + "private": + "xprv9wRt1bdojS71Wc9UHoF1tJSqLCXFhJ6zMhGda9Ej7dyy2NmmeZ51q11hY8fPWY8757BYAtkSSfwKaYpRam9zXfGvPbKgivkgYkbq7NCDuiZ", + "public": + "xpub6ARER7AhZofJj6DwPpn2FSPZtEMk6kpqivCENXeLfyWwuB6vC6PGNoLBPKCcXMWgpLzptCzTXxYoTeoWLsQoaSnwuDzp33zLoU1CgWDTD2M", + "chaincode": + "2b191fa50ef6931705043845f8ce92e9caae374616619ba6ce3d845db64ee319", + "finger_print": "446a89fa", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "58321803" + }, + { + "private": + "xprv9yAaoR9cqtbuoL2FRHg61NvJJDWeYLGX883bhnKpb26xCdt5sooxPH9jZRvUtSbtxkX8uUqMx6mWLiGaST16E9oRdt1xwNqGEcAEGB8P5to", + "public": + "xpub6C9wCvgWgGAD1p6iXKD6NWs2rFM8wnzNVLyCWAjS9Mdw5SDERM8Cw5UDQdKRjqLJ1WnoRHfmhvnebt2gE3ca7JSsJQwhmpqG1rRXoEEM66P", + "chaincode": + "20cd6e9659d7f5e723cf3666bd91fb592022f624f794346ec257554fd373b56c", + "finger_print": "ae46b741", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "446a89fa" + }, + { + "private": + "xprvA1prA2TJUCu8S9N6Te3c9mUSGWBP3o5aKPXV1oFhE8GobizAG6NdZd9PQkbTEpKwHrof4nrZmQc6KTMpyjxkFyqdK5aZqLGRdKAsRqtupK1", + "public": + "xpub6EpCZXzCJaTRedSZZfacWuRApY1sTFoRgcT5pBfJnTonUXKJodgt7RTsFxLRreTyLuhdNKKrMmRtDWBfDthNmMNFVXMW3j82P7Kp8QeCBGJ", + "chaincode": + "e065f83f910931906176b5d233f76b8c636e244726618aa6d1b8f0e9dcb61e3b", + "finger_print": "745e65ab", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "ae46b741" + }, + { + "private": + "xprvA3HJCBH7qC6cgx6oNcLgBowMvqVZqAdtZXjV3CxDS5PGCVHbyZUxQtpR2BXpEAyJDqihVTGCms2DvMfvzDsp4ZFn2g1pCggTe1w2wxQ9g2G", + "public": + "xpub6GGebgp1fZeuuSBGUdsgYwt6UsL4EdMjvkf5qbMpzQvF5HckX6oCxh8tsNp5FiH9WgrPBeEpWegk5wgUa57BHMBmbZNok8LA5uHXT8QaUjz", + "chaincode": + "976262bf5e45ccef3a76c8f6c111985e823a08849ef3a5969065e97eeb0fd6d2", + "finger_print": "c53185ff", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "745e65ab" + }, + { + "private": + "xprvA5ktXNY5rrSbo2DcXgC7P2jNrk84ts8c3hqLqMUrbyXsAFrvaoeNV7vm3QjJY3XVKarWiV5q2hzJEwQpqb87UBg2xPpCMeNZkhDgEBmLfra", + "public": + "xpub6JkEvt4yhDzu1WJ5dhj7kAg7QmxZJKrTQvkwdjtUAK4r34C58Lxd2vFEtcLSXMaAPCzHhQgypb85mVY8gdi9zJi48bUeiCk17CU8L2wYDbB", + "chaincode": + "6ed0f4bac730233b74ac2992365a3a43279b14db4719b32990c9963ca60f7c6e", + "finger_print": "ae9926d1", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "c53185ff" + }, + { + "private": + "xprvA7UPhBeeJWNjYTyRj8iADx6HAXjgYKRuyFZ7iBKHGxcBb1bmdxyqRT7VFBitxGK6J5gyoY45H1hK8SgCWa2faCQ5e6RptLDAk8ByfN227mn", + "public": + "xpub6LTk6hBY8sw2kx3tqAFAb631iZaAwn9mLUUiWZitqJ9ATovvBWJ5yFRy6NCJ8JhPeURv74u3BqZmpHTjV8Wx1DzhArkz9yW5qNiM8Dk549m", + "chaincode": + "7fc80d1c441cedd7842a8baac173cc1b935637e4e7f832e60e8edb1c2e83d740", + "finger_print": "1aa0b58d", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "ae9926d1" + }, + { + "private": + "xprvA8GSqF5EXvUaD97URXnzN8tcpgd2DwWpa8JGjvPQzPYDnCpHsgYyoZ91T2pgXY7Yh6VzQTmMwXnb4JAeHqcYoHWzTx5rorwSpboAd6eaS2T", + "public": + "xpub6MFoEkc8NJ2sRdBwXZKzjGqMNiTWdQEfwMDsYJo2Yj5Cf19SRDsEMMTVJF3vixdBFYc5QkrMutyVDJC2T7ogoU5iuEKodywBBXFk4HL8hQ4", + "chaincode": + "77f201ade0d00caba6037b2d8b3362e2f6a025c2198a77e6569a16bbc00ddd9b", + "finger_print": "5a508dea", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "1aa0b58d" + }, + { + "private": + "xprvAAcjQwwrwbRbPjsJ4rPsGYfiHsGp8iQSnt6xqXUdSKNSe8WQ9tf9bjLNFWHtdWyCw9WdGqkWGaGky5XJQHig6mw5ediE8KzHc5D5Q8iHrxp", + "public": + "xpub6Pc5pTUkmxytcDwmAsvsdgcSqu7JYB8JA72ZdutEzeuRWvqYhRyQ9Xer6hBbPfq7VcEtj8U5RjvKjoMdc8tNSjqkX8ZdbLGs1VGgwos4Lwy", + "chaincode": + "a0757a422ee86b4335519a13082475f34da786756529d22d805449e79bed937b", + "finger_print": "558a86f9", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "5a508dea" + }, + { + "private": + "xprvACTqExG8rLobNP4ZScr6GkfeMUcXtyocsYhMpeqwLHbGg9L3w8cyhUnyAwHdxSG2e17q9MTfYU9VYYAZ4XszNd9MYWFTVjUxuG6rDdkWGJn", + "public": + "xpub6RTBeTo2giMtas92YeP6dtcNuWT2JSXUEmcxd3FYtd8FYwfCUfwEFH7T28dUhXmUkZAVUtswQX1LFaEdhBEcWgLMdxwErjq62oCSnVNNqPf", + "chaincode": + "6b2b88043693b5708afd93bd6f28358e0abce4dc8cfaacdead3e880a218150c0", + "finger_print": "5abe8e8a", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "558a86f9" + } + ] + }, + { + "seed": "2e23682ab2d404e7c9cc2c9ab5288f188710d453d6c4d5559bf9a138cbc01806", + "private": + "xprv9s21ZrQH143K2GEMQL7Lxgg4XsBvBMgbGB3f8agkpfe1iFvsJnqEGiwe5RAkK1dgpW5p9N3EdFpUYyVuBpUfQgm1xrRL7j8KEKGKQr71e8Q", + "public": + "xpub661MyMwAqRbcEkJpWMeMKpco5u2QapQSdPyFvy6NP1Azb4G1rL9UpXG7vcPDu5F7YXraXXLsgzVQiixDQFD9uNHarVhUsfm8tBYFeKUVpam", + "chaincode": + "14900263982ed55c5c4c4a77486dbeb41a972cca3b2b9ac4c269fb5a83d16345", + "finger_print": "146c7efd", + "child": [ + { + "private": + "xprv9u3rRbqbp69jWRuhx4EysnM8wZ88JtdJ5osU9xTAxr717W3YufejUvqNtK1rCfLr5hJ4jFt82Ho9JNezcZyNixz9Z85jVA5pzd2Y3N2LQT3", + "public": + "xpub683Cq7NVeTi2iuzB45mzEvHsVaxciMM9T2o4xLrnXBdyzJNhTCxz2j9rjWuaHrcBSeeT54CY8mpL6vGykZDPjvgjyXXFT4qWqr1ocbXkdTj", + "chaincode": + "3ae9c5471e20e267de23ff5c28602d313a04eff1ace06e847abc1060a8666e8e", + "finger_print": "a5c9d492", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "146c7efd" + }, + { + "private": + "xprv9wzxZysASHYPUxd6e9tThpBWUKeb4Bqq3SJSqYYb1rRk4zRz2tJb2SnvmqfXJoKBsrbbneGbd1D7ZocTHom7cgg9UhChkbQtzYsLxRrYZqr", + "public": + "xpub6AzJyVQ4Gf6ghShZkBRU4x8F2MV5TeZgQfE3dvxCaBxiwnm8aRcqaF7Qd1fnB6qQ4uvMNhASHmPHjQZcYTXA9TMqw34mPRVZBJYvELydVpv", + "chaincode": + "73bcb3179ba75304d78d2ba029c9669ae4b49cc8fefa59c2c62f900aa7d3b0a4", + "finger_print": "cdd8324b", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "a5c9d492" + }, + { + "private": + "xprv9zBArawymQu9vMrf7LDDcdeMdnRkfm222vMKHMqWKfGYp913d39ZQBdZW2ugXFrE92y3APLv76vC4FuBgZxJpEWjaG6fS6hVkmcmxiLByw5", + "public": + "xpub6DAXG6UsbnTT8qw8DMkDymb6BpGF5DjsQ9Gv5kF7szoXgwLCAaTowyx3MEpNbJb5xH6mbg2TtvfXgySJKWhutk3Sk37chisuakyYQ5dygrS", + "chaincode": + "5ddd3e442cdb3e340d0622f10a5f1ac2b875620e3cab79e0f54d780ec3900e35", + "finger_print": "9480ee14", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "cdd8324b" + }, + { + "private": + "xprvA1druKT3gVak7qqyZn3tVAafjqc6MoQnbQddkXT8u9UYyFy4u9eTYRaeYCzpS2ZnNf8YroGCf51TXTwjCJjGZ54R8HpbdXvT8pBUKHSTKJy", + "public": + "xpub6EdDJpywWs93LKvSfoatrJXQHsSamG8dxdZEYurkTV1Xr4JDSgxi6Du8PQXauV3NjifzeSkCy9Gjnyn6PTB5WGxfDK5aL75vB9XKnKSZDJ1", + "chaincode": + "a8b804e3f6d0c6432428196da4f6f1cdf72e4e99e2aca854de1567ebba4cfd3d", + "finger_print": "b9f55677", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "9480ee14" + }, + { + "private": + "xprvA3nxsEXxxRBpvAQTE34hZ2mB2ducXSxazNm9QBKvkvitgFiUXt6KE1KVXkXroji82DUQzg3K9UK3pTwigQGcTCZMb4uwifdZ6hz5QSx7wF2", + "public": + "xpub6GnKGk4rnnk88eUvL4bhvAhuafk6vugSMbgkCZjYKGFsZ43d5RQZmodyNx74Hnaqk44Ud3nkk68bFqK2Z6pgb69MwgRdEAGrPbcvfKKow6g", + "chaincode": + "4baede6f81611d7a437d17a01f11f4d2d3f736c476b5c6a47d67b930c777ebcb", + "finger_print": "0df2cdfb", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "b9f55677" + }, + { + "private": + "xprvA4QmcAFtUhURTBauYQCPCpyS2oHnCUvCmARx7FFgihrMgzTeGtbByvw9M3KGbZbtwxYckQPkYD6piPSm8jq8uU2vBtsZqVhx22iptKsAzL7", + "public": + "xpub6HQ81fnnK52ifffNeRjPZxvAaq8Gbwe48PMYudfJH3PLZnnnpRuSXjFdCEUbPhYZcGAwbgWA2BhTrH2XSWg6UBErweDpP3X8RtYWyfzLyaa", + "chaincode": + "689fe15d42da2686319c52e023bcfd9caf8f283724c3117cdd00da898e30e04b", + "finger_print": "4c5d1c88", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "0df2cdfb" + }, + { + "private": + "xprvA6kWkCmqocef7roGp39MVND4Eg1zHcxwY7Tfq3RkfeciGppCMGN7o6X4vtiBykWCMZvVv5dH1pMC8Bm941um1s8WGPhxivBbacWYN4LMDc6", + "public": + "xpub6Kjs9iJjdzCxLLsjv4gMrW9nnhrUh5gnuLPGdRqNDz9h9d9LtogNLtqYn46qHU1hdzqChJga8SgtpgMrA5ArdGitEPBKSE3dP7pTWCmoTDf", + "chaincode": + "7261417adfe2afc7da6b5a860241cb0f3fec470b6896c47ba46397453ca6fa7d", + "finger_print": "36ccbc29", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "4c5d1c88" + }, + { + "private": + "xprvA8UTQuzU3LpMpaaYqUts94HYoh9kagoSRua2W7Rp7xzePeaV5NGLAYF1UHKZs4tDgtyUEQxDtUCB2pQP3hfGcpxfJjcYkVHqDWaL6hyaLGr", + "public": + "xpub6MTopRXMsiNf34f1wWRsWCEHMizEz9XHo8VdJVqRgJXdGSudcuaaiLZVKUiYEvfmd3XueTauLYA7GcRjqxuEzo25ZrEHodoLC8tpdXJLqhk", + "chaincode": + "f7a23ce611db320403cad3a861f2fa73cc76bcf1bf220e41c61a5b0667991d1f", + "finger_print": "5dffbc72", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "36ccbc29" + }, + { + "private": + "xprvAAeJWe3xFtCRkcWRVva1V7RzPdWZ8SyUoL9dBsuwCmhdfh4zzYuSpHUaG8vcXxz8qaGebdufHzCQMHAQnL4R1f5rrNxE6UAJkspZNe1AyWT", + "public": + "xpub6Pdev9ar6Fkiy6atbx71rFNiwfM3XuhLAZ5DzGKYm7EcYVQ9Y6DhN5o47K2snHTp1CvoMUbAmvaDXQcHsNyzrDxKpC54S33Ku6vyUs8ytk3", + "chaincode": + "faed723c930f967e80ab3c6c7eaa433a2433df28a6641e90c77d609888b53a75", + "finger_print": "f3b79c39", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "5dffbc72" + }, + { + "private": + "xprvADdGJf2RtuiMDfvGy7UZ1G3xUnpn4QQD2qbEQUKP9QYSW5WGdabfsVivDwonAsmBccacCLRccF2B18mVcvzMYLam4ez4q8knG6ixzMe54ob", + "public": + "xpub6ScciAZKjHGeS9zk591ZNPzh2pfGTs84Q4WqCrizhk5RNsqRB7uvRJ3Q58ftiMyFYXTYyvNoQQFphGiaJVetPZLwFTrPDyWzgY2dw6aic1C", + "chaincode": + "493953794bfdc58f05bdf188937f81406618376365f39f6c9e41e85fbb73aa48", + "finger_print": "94d7be07", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "f3b79c39" + } + ] + }, + { + "seed": "635ab6e725c33104641ac6956be71f9cfbf72ff9b7125233d79f1cfe33581562", + "private": + "xprv9s21ZrQH143K2XZJiTTRTeSrjkFZee5UQrcZmFNdktJncf1R5o4rLK5yTjqG6vs9s4V7vZLS3RRSnwxQiKpvQp11eujv5Xw6sqXnTBHXZJE", + "public": + "xpub661MyMwAqRbcF1dmpUzRpnPbHn6446oKn5YAZdnFKDqmVTLZdLP6t7QTJuKvtd9Nv7TPaMmaEMcx65K4UHsTUcMeRmBuasE2qLBcy6fYMoU", + "chaincode": + "2f1acfe7243c83c5db074d9e3c2639dfb1db3689b0d64761aec1dcec1156252c", + "finger_print": "7a1606de", + "child": [ + { + "private": + "xprv9uoC8Gm8MU6Pr5LcX92hzFnDUBWrFscKPoK3U1z9C1p4KMYWWcjmUSG1CjizMhybvB7ddCj7HTHr4z5Viif9eTjz8HyfXZqk5PCzDg8EHxP", + "public": + "xpub68nYXnJ2Bqeh4ZR5dAZiMPix2DMLfLLAm2EeGQPkkMM3C9sf4A422EaV3vuzizXLQoTy9ecRod64ukA7jASVdc6Z8CkjwXrmbzzNtEvKvtU", + "chaincode": + "8c9b431baa9f12c0bbfa74e1e5fb28d222086316a21525c71761fefc90f3a9a8", + "finger_print": "08df0882", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "7a1606de" + }, + { + "private": + "xprv9vr4dih1wMFiBVeeJDGaZMkfrJYHYLN2FQRfUWS8fH51TbxGhjxxq2hUmZuowKaTfpG1a8x2LuEeX4tm6k5bF91VwvqwBSrNypCsTBMzZJo", + "public": + "xpub69qR3EDumip1Pyj7QEoavVhQQLNmwo5scdMGGtqkDcbzLQHRFHHDNq1xcjruKMoHYJ8QjJ5H9zkHwVcZ58FDjvBpXPS77tZsXKSDW9NiWZY", + "chaincode": + "3438d400cfdba6a66c4821795d4efdbea9557c4eae900e7ebb2b0c2284e38eef", + "finger_print": "f2a892ba", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "08df0882" + }, + { + "private": + "xprv9zSs7pKtuV7ovp8A7eUHYMswb1jYcjVLesgBFPh6p48XhVXc2sZ4PHg7t8akFXg9KZo6R2EEv9vz8v6cd7cboRT4zNCodVP8wGLBTUwewsv", + "public": + "xpub6DSDXKrnjrg79JCdDg1HuVpg93a32CDC26bn3n6iNPfWaHrkaQsJw5zbjJgaAg1Mrxh2uYwcUEExX1YV1mrC19qZP6VtCvYKibSobytkwoY", + "chaincode": + "3c8a22fb8900b669d981f1ab8005fd069db8ea02f044425584b75d70ef5a3749", + "finger_print": "10e09066", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "f2a892ba" + }, + { + "private": + "xprv9zfkJjUR3qCoP7j5tFdj6sXuRZzVT7tErb3smQcKsz6LYa6dNteo1tKWf3PihbTbE2jEjYdgfxvxpHDcUsCyoMGF1Utas48Nh59toPRU33S", + "public": + "xpub6Df6iF1JtCm6bboYzHAjU1Udybpyrac6DoyUZo1wSKdKRNRmvRy3ZgdzWFT1i7iLx8v58M7q8xuHuuwnRtbrHkYJCFeXpqETaGUuAJpTy1S", + "chaincode": + "c47f97d030c59d7ba6d38a6d2e0b39ca3c15cd632fd986cea020dda9e5e2b507", + "finger_print": "cf6812b2", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "10e09066" + }, + { + "private": + "xprvA3x7CFxzEHsZrJ55kwW72kGB9EthJKS8XZG6GRnC5TCk863LytgeLJRngnRR9hySV1KBp5wWxUbRtSbRaMbPWsk85WnTXhTiayDHZ7YPHn8", + "public": + "xpub6GwTbmVt4fRs4n9Yry37PtCuhGjBhn9ytnBh4pBodnjiztNVXRztt6kGXzDSs7U33tV8DadeTowwXHkTQ5LPpTqSRZLLpzg2PpjkqNW2ELj", + "chaincode": + "10f34240b0abb2cd2313c8b62774a5c8168ee086ff52c472826e3582d041a7ab", + "finger_print": "731dd146", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "cf6812b2" + }, + { + "private": + "xprvA59u65atx6dMBpHwBn6F4iGokUgxv9QAodZjgNqgG4VgPuGAkmDvYV4H4GvM9AiyH9pqGSjGHp5WgYde5VtzB5HrvFyZneGNLvjWCs596En", + "public": + "xpub6J9FVb7nnUBeQJNQHodFRrDYJWXTKc82ArVLUmFHpQ2fGhbKJJYB6HNkuUeXsvaRsY6Ticw7zzbrUL2AfHsq2d9FG88TvKRaPUaAMvdgBNp", + "chaincode": + "2e7d06f48e62a4b3421b86102085e56648802dbea77fbcdd46ac6e64f2ce7375", + "finger_print": "4d248e59", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "731dd146" + }, + { + "private": + "xprvA6kr1VMgpVgT7PRTdLhKzkxTcGoGbPVE6o8EvPWakqukgXFzY1LPmdocEb3bkuLtk4G8YQtpdBVnRvaw4cYsSoAo53KbNGZX4Cy8NhyuwrM", + "public": + "xpub6KkCQztaesEkKsVvjNELMtuCAJdkzrD5U23qimvCKBSjZKb95YeeKS865nZmq2DHWysF3KZpgXG9JKuS5UnazHB1QiugMXq1tXNvxbziu1N", + "chaincode": + "05c8e622b7cb0a3d310bdce57aa555cd5459c4f8f6f38f6f74fb482b3e635978", + "finger_print": "118c5149", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "4d248e59" + }, + { + "private": + "xprvA8CaL2rgjfGWe9Yzvy2YXA8H1aTCyLgvcnWJf8yz6D1sfte4g4T75jwEtsA6JCga47yy9ZwzJjry5QspjEWcdfhEwXY2sx22tKN3dEcbLbe", + "public": + "xpub6MBvjYPaa2porddU2zZYtJ51ZcHhNoQmz1RuTXPbeYYrYgyDDbmMdYFik3fLtnpVGfCYqByrA8Xn6fqhjCVoEDWS73qcgz84YA9hrCHddYo", + "chaincode": + "9dcb1382e63e26f2efea0d73bd4e8208dbc7ca71a97de4307f21eb433c3cbb8e", + "finger_print": "d0b9eff4", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "118c5149" + }, + { + "private": + "xprvABVDG7HSjrssg1BCUt8UbvCczc8xd9Z2SbTThP2zRykDnvzaqciKEKP6Be64ngahifoHrDLkkXReZigtvRC7DKiveCjRUTnMf2hzVUaUXW9", + "public": + "xpub6QUZfcpLaESAtVFfaufUy49MYdyT2cGsopP4VmSbzKHCfjKjPA2Zn7ha2q4HEhRjMMgQ8LpqzgDGkxGqvoeUS9VfeKHcjU7z6VoMcCaSD3y", + "chaincode": + "9fa2025c28cfae1173abcdea2ae5aaddb20031faf97c6657196ffcd82a72341f", + "finger_print": "95dd64a8", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "d0b9eff4" + }, + { + "private": + "xprvACwFi7YqAHLZHWf9vZedpLxYcamerAKqhztXgyVs3NWrWZWvb4xmwet5rc7o2RUNBzUGgkozWQhN7U7H1rt7rGgZqQCDBzzfJ3BeNwFLvFS", + "public": + "xpub6Rvc7d5izetrVzjd2bBeBUuHAcc9Fd3h5Dp8VMuUbi3qPMr58cH2VTCZhoYgZQvnq7K6iFGvb8erHGsQ3tTZ9X3VKXYXs91omvPp3Ytq4sb", + "chaincode": + "0d06ad89228543e2b3865a9c3a60096104945b1c3aab2d94c987da00afbaf9fe", + "finger_print": "748266d8", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "95dd64a8" + } + ] + } +]; diff --git a/test/bip/bip32/ed25519_blake2b/ed25519_blake2b_test.dart b/test/bip/bip32/ed25519_blake2b/ed25519_blake2b_test.dart new file mode 100644 index 0000000..5fa2802 --- /dev/null +++ b/test/bip/bip32/ed25519_blake2b/ed25519_blake2b_test.dart @@ -0,0 +1,29 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_ed25519_blake2b.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("bip32 ed25519 blake2b", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + var w = Bip32Slip10Ed25519Blake2b.fromSeed(seed); + expect(w.publicKey.toExtended, i["public"]); + expect(w.privateKey.toExtended, i["private"]); + expect(w.chainCode.toHex(), i["chaincode"]); + expect(w.fingerPrint.toHex(), i["finger_print"]); + for (final c in (i["child"] as List)) { + final index = Bip32KeyIndex(c["index"]); + w = w.childKey(index); + expect(w.publicKey.toExtended, c["public"]); + expect(w.privateKey.toExtended, c["private"]); + expect(w.chainCode.toHex(), c["chaincode"]); + expect(w.fingerPrint.toHex(), c["finger_print"]); + expect(w.parentFingerPrint.toHex(), c["parent_finger_print"]); + expect(w.depth.toInt(), c["depth"]); + } + } + }); +} diff --git a/test/bip/bip32/ed25519_blake2b/test_vector.dart b/test/bip/bip32/ed25519_blake2b/test_vector.dart new file mode 100644 index 0000000..f001c4e --- /dev/null +++ b/test/bip/bip32/ed25519_blake2b/test_vector.dart @@ -0,0 +1,1322 @@ +final List> testVector = [ + { + "seed": "e7e86fbdbbc537ff8a29c05bd2f62c108a8059591c9003cbf17364f4f8fd9efc", + "private": + "xprv9s21ZrQH143K3gNKD3uuE5NGmgbYsG8KuFkZKjPxfsG91wY2GrNJTxRuRdvKEhm4yCKWVKTm15AoTgc8yoPoCRTxFvKF7BD26BpWyT1M9eQ", + "public": + "xpub661MyMwAqRbcGASnK5SubDK1KiS3GirBGUgA87oaECo7tjsApPgZ1kkPGrFhCLFBieQaYBdQkUrx6S7FnhLe5RzmSoaKozy88ER5NYxhCEU", + "chaincode": + "a2cdcfe5969311ebfd22fedc0b78bcf69dd13d22e3c9e082d0f783375650d31b", + "finger_print": "a10a700b", + "child": [ + { + "private": + "xprv9v5oKammupCBPD4ixoMW2W4nyWDvhS89r8iY8M1aeqd3LxB1pXHVDete5N6sSttVt7iTXLcQfivjr5M9S2Q8go7tWTrbU73f9U2oUiDfhy9", + "public": + "xpub6959j6JfkBkUbh9C4ptWPe1XXY4R6tr1DMe8vjRCDBA2DkWAN4bjmTD7vZ8N9xo3MzkWn81Z38ZCDmXKoGiKGkyqWBqfTa69EbmggQ5iTiK", + "chaincode": + "f2c5817b51034a49167b5b9254c3708e9691ea590fdc31436f33576cf4c97a26", + "finger_print": "502ec229", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "a10a700b" + }, + { + "private": + "xprv9wNTt3Zqi9f4scXxcNw3cUVRHNVYeLMo9LnPqRTdPq8BeDfz6tp2G7776UFRm7CxSSULkXW4YhouQBG2ZDfzhucoQyyjTpQoihWNmU4tfhP", + "public": + "xpub6AMpHZ6jYXDN66cRiQU3ycS9qQL33o5eWZhzdosExAfAX218eS8GouRawfrs5pDoLYbvjmz2F27t586eJDVUy5QgUjg96ZPCY8jXEFHScN8", + "chaincode": + "ef9d5d3ee0eb75852d9d1aa1dd94b868227225058ce5d59aee1e6a26bc5c9d35", + "finger_print": "2e905291", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "502ec229" + }, + { + "private": + "xprv9y1GUh7QKgndprkHHBU5KHmQ7QeZ8Xy7sZT8ZhcE6VLKuhLtSDZhJ5AooJaSsrvBeTzBz42HNiStDQXdrQuDRDgXBsRgvWe575J8SPBcarN", + "public": + "xpub6BzctCeJA4Lw3LpkPD15gRi8fSV3XzgyEnNjN61qepsJnVg2ykswqsVHeUFaFQMLBp7MeeuEYydrz7zjYKu7EZb14oHZYi45uNqKna8kWCA", + "chaincode": + "0dec43502c78bbd36e13aab5d833864621d4df6449298bc3a12166fa9b2acbf2", + "finger_print": "95149ca6", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "2e905291" + }, + { + "private": + "xprvA1e7AdYvDAknHWRPUGXw2GnBHoTZH3JtjvvaDYDAUxZBYovaqNqpTCoW8ibvSoTk8uBymVtiWqeR4zmMvwysSbSWkYM18Uaue36JFWLoSqn", + "public": + "xpub6EdTa95p3YK5VzVraJ4wPQiuqqJ3gW2k79rB1vcn3J6ARcFjNvA5117yyuzLXUBNFH6WLveDnWo48FxjTrYMZrft4qeuvLFnoL4rejsDXFj", + "chaincode": + "ba5f2daeef5831d043eedf464e1a8298135a3ab49af05ea448b2fc75a2e64709", + "finger_print": "6dda4302", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "95149ca6" + }, + { + "private": + "xprvA3EX5Ji7pBzXatc4Tr9xwyTJ97JAqt2Amwt5CiVtfkzq42H4q4ZvDL5MdN5iREKmRZeh6C4vrkb9ZxLWxXiTYxYydpMQmhmYnRcyqzs7Y3x", + "public": + "xpub6GDsUpF1eZYpoNgXZsgyK7Q2h98fFLk29Aog16uWE6XovpcDNbtAm8PqUYybbshX8pUDCpHmvNmQoLjhuMV3VXvNm4g7gL3eZ2v7bxuE19Z", + "chaincode": + "64b26b3a1215b4226d6347a815b46512849cba552c24cc0af47e314a59912b41", + "finger_print": "9f80c5f1", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "6dda4302" + }, + { + "private": + "xprvA5UpbCngeTn8amnVfYvbNhbPA6PaWu8Lp23eUhEo4EvJZtbQoeGDduX3i4gYqLdidYgTqUU6yEthTUinRLksc5cYCd4DRXFVa7yn73N5TL6", + "public": + "xpub6JUAziKaUqLRoFrxmaTbjqY7i8E4vMrCBEyFH5eQcaTHSgvZMBaUBhqXZFjamVq1RFHYSM4bisdZauecQwpbAYDUHRhdNguh4EZKtjCBifS", + "chaincode": + "0922a22e33bf95c184aa3752892ae993fb55bde1de96ee5ba94175bbfa32e397", + "finger_print": "125844bc", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "9f80c5f1" + }, + { + "private": + "xprvA6KnAn7aVvArm86KojgZ4u18aEJDD4SVA6RfHPHvY9F9P8B9H4L4rbQ969QNrGMaSNUma8vUW6cvrYb1f96wqmeBhn68tRx5sk8c6ujMkW8", + "public": + "xpub6KK8aHeULHj9ycAnumDZS2ws8G8hcXALXKMG5mhY6Un8FvWHpbeKQPicwKiWf2cYwNYgFx2pZe8cA5BFRD1NJULb8Ur4EWVJ2tcNnyoyumP", + "chaincode": + "1e9ac81a80c8e9023ff4e4ca0590439fb2ac7723911fa62fe0d9fb12b2e0fbbe", + "finger_print": "743ea98a", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "125844bc" + }, + { + "private": + "xprvA8vehkgn6j2LUWAFuuSSqCydbKS1Nphd4LxhxjozWAk5K3RsA51Kwa2wEb7zqhDCkQWNP9MNo5TWPGoMZirLYYisba2gBqJTmSjLcNAJECg", + "public": + "xpub6Mv17GDfw6adgzEj1vyTCLvN9MGVnHRURZtJm8Dc4WH4Bqm1hcKaVNMR5mfevdPtuW4BxfAoQT5j4ar7Mf4X9BYc5eNdcYPvbZyn4ymM8xu", + "chaincode": + "f44234720e933a0818b9678eeccadb7422cac35d9a2156b5833d4e13cede4799", + "finger_print": "6f52f6ae", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "743ea98a" + }, + { + "private": + "xprvAAmgtiwVz5o7xFRszwnbGVhYdfCEtKekP6fpUjoEwaNuMaBjjaGaoN1sijMcT2fRuQFRaaqMWGXytRnqN4FQ6dvzgv9kM7qM9G1DaBG6sVB", + "public": + "xpub6Pm3JEUPpTMRAjWM6yKbddeHBh2jHnNbkKbRH8CrVuutENWtH7aqMALMZw79PpUuJWkxaB1aFdjDWkkTD7mZ4uuANCVBvfbSp5id296Vb3B", + "chaincode": + "fb96a05b76e19eb071356f52752a4f04793351a8b3e6e5aa27938c80699317e8", + "finger_print": "adde2feb", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "6f52f6ae" + }, + { + "private": + "xprvAD7VDAcHXDrLFB4kEZd626ArigdDLB6ztWetsJ81BD1zcNBd7bQyAL4jcvGY1RoeKGHXZ5ZeAZcTXKhtoqMwgMQGRqMyhg1Vrtikn4FZ4Rs", + "public": + "xpub6S6qcg9BMbQdTf9DLbA6PE7bGiThjdprFjaVfgXcjYYyVAWmf8jDi8PDU7jrHsfdyg1HvJNk89bB9D975cEzjybkEziP7BDMiTK98FDmNBz", + "chaincode": + "1d1330056a02b5edcea542340b216475f51235cb2d875fd57df3eacd98581ada", + "finger_print": "9895377a", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "adde2feb" + } + ] + }, + { + "seed": "8835ad1eb7c77239957ecc005b193a461e775e5ea6fb641a15590abdaafd8f47", + "private": + "xprv9s21ZrQH143K4GxyAbaRp1L8Rfun8ToqMnEbK3DLvZ3f4Tu9GnccsobSEqdbQ19deeSJ9goSMN9LiDU8SLvdPdCSdwMZySkM3FpZ54Y62Eq", + "public": + "xpub661MyMwAqRbcGm3SGd7SB9GryhkGXvXgj1AC7RcxUtadwGEHpKvsRbuv62qD2s3S5bGpz1mEv8g5S8C5tXTuJYvmEWbCiEsoJ4U4gDzVyY1", + "chaincode": + "deb7de447334a6f19f4e4fcd913f2ef3e2fc80c9d5ba92640e09b6ec30a0d80b", + "finger_print": "d53744e0", + "child": [ + { + "private": + "xprv9vU3QNWRmNW6d7nMSTp2Sz6oPdvf2b1nZ6x8j8wt1h5ewKjZYh1pbWfZWfeRzW7htozSSCznHAgk3anMTuX6VpDssvW2SwSJZXLbVrBxbXP", + "public": + "xpub69TPot3Kbk4PqbrpYVM2p83Xwfm9S3jdvKsjXXMVa2cdp84i6EL59Jz3Ms6TPBmGdSWvZcvafVtHYyuvtUbyn5xcRXDyGskHET5tDcc4Cw6", + "chaincode": + "59577c4087cd0eee731ebbdab7ce11d1ba1dd0ae3df58edfc3cf92b8752a135c", + "finger_print": "025fa441", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "d53744e0" + }, + { + "private": + "xprv9voHyRSqUpoJe9g4o2UYY6Dka8tyTrVb5dqvk7Mxerb4crBTkMeEissXziN5VGxRQPtMRdsRXgH1YkJktVStcfMxujjRQgKkqZLZmkDyQmH", + "public": + "xpub69neNvyjKCMbrdkXu41YuEAV8AjTsKDSSrmXYVmaDC83VeWcHtxVGgC1quc1cuRwAQ3U1s48PyJissCA8H9sYeAjo369Z5EJomUWqeKiqh1", + "chaincode": + "bee05ddbefc7d35006463fc40638bc6d61f05282abd7e0b295dcdad15bf0fa43", + "finger_print": "4389519b", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "025fa441" + }, + { + "private": + "xprv9yAD3jgPMXXhVPfbKh7DWCCfr8Jy1YXsHDn6WNCmGumd3x4RmW9sCXR7AEcUNF4FnVnpXPdgReFG5BJznaa3RkiL4RLhfya7DQ5D6iQgk7Y", + "public": + "xpub6C9ZTFDHBu5zhsk4RieDsL9QQA9TR1FieShhJkcNqFJbvkPaK3U7kKjb1SKpJxMZAenYSXPeVG7TUvsqc6AaAvis4kBVnFr58ceyQwkDEGB", + "chaincode": + "e4fa77baccf6dd42c090ae1073e218e454a1400e41bd6032e0b34c1ccccfe6f7", + "finger_print": "fabf8b81", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "4389519b" + }, + { + "private": + "xprvA2PT1A618cuMZbjmfoxF1htBdsh5hsaFrCeKm4Be8HDd3cKBpdDX5xnPcTcgNLs9iG9AUhpyHiocR9Nbujo2KgAfAUQZmdsmLSEesA4eg6Y", + "public": + "xpub6FNoQfctxzTen5pEmqVFNqpvBuXa7LJ7DRZvZSbFgckbvQeLNAXmdm6sTfg8Ua9e45SJWQNw6ahZMqgF5WNj9QZ56GXmCotWM3y2NecBYh5", + "chaincode": + "e63719391c92c658d0a1eaa3941bdd7ddf870872cbcec067ba47da38037a9f3d", + "finger_print": "87d75164", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "fabf8b81" + }, + { + "private": + "xprvA3RbfdtVE1i6EbCUxXQ4S4PMyzPQHax17zzXjcAiEm4vVpYGSgY1dsTWxmffbmm13qPGPYKuW5wUtUHu9m8eD4D7iYKZ1zXsGLhvbN52dEX", + "public": + "xpub6GQx59RP4PGPT5Gx4Yw4oCL6Y2Dth3frVDv8XzaKo6buNcsQzDrGBfmzoxMwLEUCpdJtMUn67FMJxmnGWdmZdzZqXnT8Qx8kmCov6vRCJXJ", + "chaincode": + "0728c614bc5b01aaa66a748052faf87ea46ca800ce13cfdc60b79580c1a3aeac", + "finger_print": "d9657d5e", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "87d75164" + }, + { + "private": + "xprvA5uW4f5MeEBbXZeGSXUVR7zFEfDHgettk1eEzSQdyDiRbNYDR4gfFc9BxHwbRt5K4gepzakB7YUcAzYzoNCoMY4vNMaiDbXHm9qTnZL6CP3", + "public": + "xpub6JtrUAcFUbjtk3ijYZ1VnFvynh3n67ck7EZqnppFXZFQUAsMxbzuoQTfoVU4KMHy2s9Qk5ukfYC9vcoBNquETcwmErk74dUXHEtFocXE8v2", + "chaincode": + "9de89dc44a924d73ae2dffaa568301d6a8a9b0d88969bdc2d48de212f6e55e21", + "finger_print": "794ee42d", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "d9657d5e" + }, + { + "private": + "xprvA75g3Ri5qi7SEgaF3aSZfFN1RF1wWDBkR88zauqHW4kcfaY78a6RKsnM9RJPF5fgRqhM6DFCJ7pKkCbfdyqf7FBMXNDp8PbtvPsGJFEsRKU", + "public": + "xpub6L52SwEyg5fjTAei9bya2PJjyGrRufubnM4bPJEu4QHbYNsFg7Qfsg6pzccDaqqSCYkmjYebCkZ5YktxxsDxknvdt2HfjCWZMm65PvWgzJB", + "chaincode": + "61e3fe100a20d5613b939510a023bee7593a86c4cae39fd6fda1c7f3d4bd141c", + "finger_print": "e2ba7263", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "794ee42d" + }, + { + "private": + "xprvA9jkX8d5dtJuDnMsmLJicDXK5UfVfTzm6tNmcbFEZU9jxJesdf6ADwPFBuUTRrqxQZK6QTwVgUWg9zcqJA9sHUaCveUojRaAFKuAvYXEjZs", + "public": + "xpub6Nj6ve9yUFsCSGSLsMqiyMU3dWVz4vicU7JNQyer7ogiq6z2BCQQmjhj359UAJ848udH8LywMb37snJvMAYLA1sxtXZb7PHKfgQVtpY4m7g", + "chaincode": + "88d4bbede40dfc9e292671d71182a9bfbf95f8101305d2223bf570b41e64fbf5", + "finger_print": "871d20de", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "e2ba7263" + }, + { + "private": + "xprvAAwq7k9FNcAkR4yMQ56us4sAKjm1SNKyd9kb1HZdrj19wUfHJ6tHMuNgdGTPeSqwtAzS75hehssZocJp2ELfJjF7MgvNMJ7GyZrSEcQkeL7", + "public": + "xpub6PwBXFg9Cyj3dZ3pW6dvECotsmbVqq3pzNgBofyFR4Y8pGzRqeCXuhhAUTeJ7tZMAK8j8VNFArirGPBxw5hxc6iiFwsM5hfp7XGaRMAnj7p", + "chaincode": + "850a496bad45addd54d75ee981f31a02929cc2a3f222013e704fb44ab2303d59", + "finger_print": "45d51753", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "871d20de" + }, + { + "private": + "xprvACM8pvUj2naFZFysVMj8gvCTXb53v7rbcqvAy7QXxyLhWtUVEcQv6ymmxUBiDuFQ8H31MwKadMSMC9xLET3vKWJqEH6BDKymBUkxKxpwmyA", + "public": + "xpub6RLVES1csA8Ymk4LbPG9449C5cuYKaaSz4qmmVp9XJsgPgodn9jAen6FofTxmwkMEd82cXtQi9fkE6jMRQnRwCbdQqiLSJfLHucssMDVx4m", + "chaincode": + "8ebb424a49b29587a7f197609104dea7c20ee6270c45d64b655601e9b6ba28bf", + "finger_print": "80f79b5d", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "45d51753" + } + ] + }, + { + "seed": "45cc66b7b48f7a07f9f724b9455cb8a64e867e047f3cd58551895336c21170bb", + "private": + "xprv9s21ZrQH143K3KJBHJ3eaxqboAtiFtEqgMS899LEYv1MhK6BPX1hzhVm9Aotnud9z67Z4KPbGMvv2eZR118fWVMhb1YfWHMfaUtRVYSrAsa", + "public": + "xpub661MyMwAqRbcFoNePKaex6nLMCjCfLxh3aMiwXjr7FYLa7RKw4KxYVpEzMZcCpRimcAf8s4sR4W9yq9cqCaUzU6XhuWdBioQ7TXRi1DLRqm", + "chaincode": + "7e504b00a90beb45bfabfb3bc5fd8765ab64b823457aba9dfb6cb8d190fb95cb", + "finger_print": "51812c38", + "child": [ + { + "private": + "xprv9uVti413dE6qX56k8Uy1YAfqb5hBWEfGj5JuCxLLfiq7SG4wd5UqNpJ9bo1NNeQSdJ78YpjwPHKf2m9vUoVHmMfbC2ZEZ3fycwVttF8kV8a", + "public": + "xpub68VF7ZXwTbf8jZBDEWW1uJca97XfuhP86JEW1LjxE4N6K4Q6Aco5vccdSyKeadyZT5BkTR4jFZ5y5PV1ZoyNzeDEuEGQZXby7Q99WFtRnYu", + "chaincode": + "4e761b63b41e96d8272ab569db4bbd1dca012b281035f52442cbbbba37bdeafd", + "finger_print": "20d7f575", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "51812c38" + }, + { + "private": + "xprv9w2HNhBfpMYe4LLvEKN6vnzpk9xXQZH9Kp6xVQZEFKvMQa8ufySGBP13F3CbkU3k2xCauw8We91JS3totdSZUjbhUUFpC6DYn8sfQhsNKUG", + "public": + "xpub6A1dnCiZej6wGpRPLLu7HvwZJBo1p1zzh32ZHnxqofTLHNU4DWkWjBKX6FS9VNcWwEHm6MNMCDuSeMntoRvu6Q8m5qQwYyhz1BcyduRGGae", + "chaincode": + "49df99af76f98fa315efb132519234f2f3d073d89597b8d6b25fec147e4749f5", + "finger_print": "1b7a6be1", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "20d7f575" + }, + { + "private": + "xprv9xs8ZwVrTPQHsZ1Q3g331rzqnt2kBCXWXneYtYnu3zqvjs5VC6P4K7xLtUkuUrThhjJn4SwVNhCGrYbv2y4MDPUirpB9xYdQNgVGabw99Qt", + "public": + "xpub6BrUyT2kHkxb635s9ha3NzwaLusEafFMu1a9gwCWcLNucfQdjdhJrvGpjfqQhZwhQpDBkgrvy6GrnKajgXwRagcKxBPY169JJpg3XgSqZZY", + "chaincode": + "226529867f38c2103c63a633d92ea85dd0f409b19696c1508a7483c6ebeaccbc", + "finger_print": "a6aa7e46", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "1b7a6be1" + }, + { + "private": + "xprvA1mbz7J8m5iBnhhth8qHXMFnyDDiWuSd98mBA1EFr5tEpY4Br9AuX1cKz3jCW3CGBVULG5mRtwEPbGhG8VA2C6PPdoGu8Cxt7omhdsDirkG", + "public": + "xpub6EkxPcq2bTGV1BnMoANHtVCXXF4CvNAUWMgmxPdsQRRDhLPLPgVA4ovoqEg4fPKn2r8Z2vUnXE1BEGsyv5Nf7e8Z77Vihc4vEhjQ4TH5gw3", + "chaincode": + "7b0602130d7064c1697c331a1e8ca4f09663328e686018c9135dd00d6351e0c0", + "finger_print": "d06b0035", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "a6aa7e46" + }, + { + "private": + "xprvA3xYCmYMZg1CXRvLYavn4Y8hTmtD8swUNC9pz6dXyWZeh1V5fvbxLxTp1FVXAWL7pd5SqHz8UNLwyJ7xzuarwFK4ynVQPWakc7UNbodugAS", + "public": + "xpub6GwtcH5FQ3ZVjuzoecTnRg5S1oihYLfKjR5RnV39Xr6dZopEDTvCtknHrShzUHg1BRZyUKukgKFG6Z9eNA6v98X1RbJz3ifvJYRQWk9Ppr6", + "chaincode": + "7b07a04cfb0618fd65585b0777934eb4644bba8ce99a0ab4598dbbe0ee7a91f2", + "finger_print": "488ac552", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "d06b0035" + }, + { + "private": + "xprvA4qkPmVGLeddV9thoHsfwk83kof1qwkmCK9d5CCkd1KQHA18nyQ7oWTD6X7Drej2bmQe3o4BgVEq3kjAPt7apoQAwN4DQ63fZoDZwyCBXos", + "public": + "xpub6Hq6oH2AB2BvhdyAuKQgJt4nJqVWFQUcZY5DsacNBLrP9xLHLWiNMJmgwhqucn9i3uMopGXPRkQgtWBYXobnVHF2MbGhW5KX6Vv4MvPNQND", + "chaincode": + "0f69414b13b93e4580a96b7dfb59828a32654f3cd39ef49e08fce79a0ec05d72", + "finger_print": "f19a088d", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "488ac552" + }, + { + "private": + "xprvA7xxRPv6euTcYMz9A7uav8LVJcd7RFr3So5CCVrDxztBmkKkMW9AGn14fepxDEzbDksDEiP4VKY4m2rHLojHRMgeJ1KoAuoaSqJfVq2eyT2", + "public": + "xpub6LxJpuSzVH1ukr4cG9SbHGHDreTbpiZtp1znztFqXLRAeYetu3TQpaKYWs1WwoAffM3MmAj5S8ufY76xYQEiEr8VtD2j4jH9k4HqUxAXK9L", + "chaincode": + "901d1452f06427bc163ce0203a31352aafcef7480f1191a798030599e716415d", + "finger_print": "8fa38b45", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "f19a088d" + }, + { + "private": + "xprvA98L3pfp6TLNWErtF55VmobafPraJ1xF9doKhC68DCu5EfU8DFjfBZtrYkifX2NMFLvBX6bZwuHT3zBLSFxXNSHbcmhFRQCZzWyoHXDRcYA", + "public": + "xpub6N7gTLChvptfiiwMM6cW8wYKDRh4hUg6WrivVaVjmYS47ToGko3ujNDLPwjhL3jYuLxgmRmjenjRq3mUfzTM5g6i2wZeBhoARs8KAuaipg4", + "chaincode": + "8f53b7b041f1f212b4d723a507c3a1b6b81557ba50b923ba38f246135595bbbb", + "finger_print": "531cc4b6", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "8fa38b45" + }, + { + "private": + "xprvAAZfL5qbwYvWGvB5zUjj93unvfFfuWCwSUTProEpomrWFtQgaE7ricPEkqJtv6VG3KcPjF9opwymLW5q4kcYWPiawW9Ua2BYn5epZx7YapK", + "public": + "xpub6PZ1jbNVmvUoVQFZ6WGjWBrXUh6AJxvnohNzfBeSN7PV8gjq7mS7GQhic34jYKEiGVC9LQmGSEVjtUX5JAoNjr1ia42amXZdeP5NCcaG4Pa", + "chaincode": + "bb8adb680c694a481c6fc197d38be7361c8ba566253ef194c4e484f5538d9614", + "finger_print": "b7bb52fd", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "531cc4b6" + }, + { + "private": + "xprvADBh6x39SDgGD8MM8yFHga2E98f8Duvs5bDQFPM2H3Qzq6yF4exyiWiCYhyQBQemzREkZT8J7cPKKUqgBmYnTYVjT6xc9QjLrx8hY2cF2c1", + "public": + "xpub6SB3WTa3GbEZRcRpEznJ3hxxhAVcdNeiSp913mkdqNwyhuJPcCHEGK2gPsnkNAkgrSyAG6i2Cpak9XcHA6PHynmWMm8xZCLr8Yrfw7CQp4Y", + "chaincode": + "294016a3c7d6522eb8ff59bc1129e121cf57542a6ae2b9d7a1d49e73a77e5bf7", + "finger_print": "a915dbb1", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "b7bb52fd" + } + ] + }, + { + "seed": "f495e30c85816a71783d64ea98f692b789fe64ecc06ebc8c8e122888e583ce76", + "private": + "xprv9s21ZrQH143K3dEwaYzpzrL6AD3KgqEuyJjnWjwsPehrZSUV7uFGeMnUpSvM1MWuDy1dRxH98KKijrt2QTQbM4P3iyMVgWnQ5HVhF9Zy339", + "public": + "xpub661MyMwAqRbcG7KQgaXqMzGpiEsp6HxmLXfPK8MUwzEqSEodfSZXCA6xfeVUgAcnhuwsoemEgDtWHn8hSPaJNgjJU5eHZQAhciJSa9mrDAz", + "chaincode": + "9d6378838e2f688363d28c3f0f29e44112649e47428ef205f5a3302a95e17d63", + "finger_print": "ef438be4", + "child": [ + { + "private": + "xprv9vf9TyHykNwAV1ETgH5oLgmaxPbX1tJLLDLdchED8b6vrfZSZo2oepKhCMkuPZdp73krJY6FJ1gXJqAzFe6HmQBxuNFELZAH8X367jDv68p", + "public": + "xpub69eVsUpsakVThVJvnJcohpiKWRS1RM2BhSGER5dpgvdujTtb7LM4CceB3YZXL6TfsrYV5syALKkMo88f6ML4kWGW5fCVgrQxZnWCxDMHvog", + "chaincode": + "0ccb5ff30657ff9208e5a3140912faf48a5865a2ccd8fe384100156090367b2f", + "finger_print": "bc8cfb6c", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "ef438be4" + }, + { + "private": + "xprv9xAfPc8ev6i9TzdRcZBNg9po1cyDJBYQPLK84fujgy1rvzJ7gCDQ3T7zExYX5wvQE7fmXsm2fYqa3xfERYqNv8gY8AGTJbANndpf4xT4pYn", + "public": + "xpub6BA1o7fYkUGSgUhtiaiP3HmXZeohheGFkZEis4KMFJYqondGDjXebFSU6ARCotBofb7cfXB9Fm8hiMieBXnTdR6mfjd2Zn4anujTn68xJT9", + "chaincode": + "c32a2615c30b38ba6590d6e01fd910aa03c9bb9297690a37d8cb006f78a0c83b", + "finger_print": "12fd230f", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "bc8cfb6c" + }, + { + "private": + "xprv9xoWfEK735UyMBApKzB9FRQ5hQgJLvpiUphCHTpE9xEphyA4qUxTERAkpFK11aV5BcTjcW4jywjaeF66TGwfGj5BW6KwJw7Nm6VC1aCHCPs", + "public": + "xpub6Bns4jqzsT3GZfFHS1i9cZLpFSWnkPYZr3co5rDqiHmoamVDP2GhnDVEfRqGV4pUj6U6XJaqEgXwrhtGmUiQ8Ni2WKrhmp6fYDZkmadeaAU", + "chaincode": + "d526aaf791840e42760547d6829efdf97e0809c6a691f8413e8a5e045f2e4990", + "finger_print": "9f78200b", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "12fd230f" + }, + { + "private": + "xprvA1iY3BsbpRriG8CERxVHqURZtR1mPQTokEFW7m5m8z7HmBL7dGaaGyr6nDYXuJCchFDyNwXCiovgQYoRDM271QLu9M8KHu67meozghYiaXw", + "public": + "xpub6EhtShQVeoR1UcGhXz2JCcNJSSrFnsBf7TB6v9VNhKeGdyfGAotppnAadQa98q6akrxzKLBFjkcxzU5XyQwSowwT5J6y9SibRzpyiDtLa78", + "chaincode": + "1e1e8a1662df070ea1af70fb15261c7ff8220922066706c223f4d346132695f7", + "finger_print": "0a61ca84", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "9f78200b" + }, + { + "private": + "xprvA2W7ZgkXHPZ8hgBMohcVYmjPcpYXP3Y54WUbg2iqzMuPoyJc7mdoC7jZJTwbH9xhmhYdrTy1WmHCqpsrkDKZRhMzyhgnvh7o32gJV3M2t5z", + "public": + "xpub6FVTyCHR7m7RvAFpuj9Vuug8ArP1nWFvRjQCUR8TYhSNgmdkfJx3jv439g2q67amL8gocDdHTun2jGQERX4jXXMbeFzFQ9xGKLEbwFofhXD", + "chaincode": + "cd5987bcb2e5fc299aaaeb344f6d2bbf2b9895de0eb173293b4b75f57f4d6502", + "finger_print": "df306ba3", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "0a61ca84" + }, + { + "private": + "xprvA5wyJ1qSSXZRXKkgTtXVCTt3ZLQwTy67ncVkXo4G7YP27YF4yHMFHq13tGNsB4dWgXByYD23PH85MURnxJFF3Tws3UibuZSU95QNG3wPVwu", + "public": + "xpub6JwKhXNLGu7ijoq9Zv4VZbpn7NFRsRoy9qRMLBTsfsuzzLaDWpfVqdKXjSRKbGQ7rxLy5h66XKVnqKgZrXeDScZgfkTYg54bpQHi4nS9LG6", + "chaincode": + "fea2a2fa1a5aad397dbf8638b479ac27b4d85c79cdb44943f2c475d99db61d90", + "finger_print": "7621a91d", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "df306ba3" + }, + { + "private": + "xprvA74KVigEyf8jYxmqq38EbdVphTnyVhomVLp6cUU3a4gFqR6VNa8ewRqQWvcefBEkhpZPGnVeUQzkb3oaYt2ZxSjA5sjBNDwqCpE6hzRoM1i", + "public": + "xpub6L3fuED8p2h2mSrJw4fExmSZFVdTuAXcrZjhQrsf8QDEiDRdv7SuVE9tN62KCbizFYsMqouKCZYDtqEUnnm51jLWWuYjq3NuoovFK7iYM2c", + "chaincode": + "758784f9ee6bb5357f4d01d91f62fdf543d12f57d63be225ca98ec18bf34fea6", + "finger_print": "fa55071f", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "7621a91d" + }, + { + "private": + "xprvA9up9b8ApnRLyrq18StCrokvFgwHNAtsXLZujuTHWro2j5wXTz4wUrJaydDD7MNnzUQyvpmHkatZrb8gzHQumEcXmuEHo9PZRkNMTc2ggEu", + "public": + "xpub6NuAZ6f4f9yeCLuUEURDDwheoimmmdcitZVWYHru5CL1btGg1XPC2ed4povYNivYjAPnfDCpzhN1D65XepVQHEVGbVemLchTpvE86Suqzfh", + "chaincode": + "1f21336135ee24e3122b1808d4f38578a46a929b26b5f9795c54400f030f2946", + "finger_print": "e616066f", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "fa55071f" + }, + { + "private": + "xprvABeKQGDCRKhuMnb5muQFNafKJF2C7igec7HgPbHbtn9Rg8VNZCdJX1LWXrTWNtPre1WEQqhY3RBTy1aHSemZPCcwj8ZZi3StV5eho6kCryH", + "public": + "xpub6Qdfomk6FhGCaGfYsvwFjic3rGrgXBQVyLDHByhDT7gQYvpX6jwZ4oezP2KU7Cz9KGCdUvD9ZsUv3pqfYKVpaDTPjR36m6TrjxpjzMMA5Wt", + "chaincode": + "462a155a40058b50d5c4fd8cf5280a49db1a3e07fa49a2ab8b9060aefea2f936", + "finger_print": "5656537f", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "e616066f" + }, + { + "private": + "xprvACUAvddajqwGhVYY8YvKPPAp9yXzpjEnskGAwvoEJDPsJGMY72HLjAwc4wstiHjqPo83uZMgQJYy62M54ERtdiFbxdkNWYB6o2hGRaebaVf", + "public": + "xpub6RTXL9AUaDVZuyd1EaTKkX7Yi1NVEBxeEyBmkKCqrYvrB4ggeZbbGyG5vAXutF5iAUx9oa31BE6zL95kUfkuz5bBdtz5eUrqzrpJkKvnKUE", + "chaincode": + "5d545a370f2d07dd2ccb220c22cec17c1edbcd88e3e514ae499c8f4582fc04fe", + "finger_print": "9d82a5f3", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "5656537f" + } + ] + }, + { + "seed": "a6809ad85d93edea68eff8be0eeaab3ae02a7176927e31ee78db7ad6885dc9ea", + "private": + "xprv9s21ZrQH143K43pjkP1oQ9EEFu8b8fESYMn2Dcqwus3mEwzMvT36K9uBZso2ud8jKJdWYKq2vyWMcUppvhMC87sjixMTPHdDGp2aJBu8MUv", + "public": + "xpub661MyMwAqRbcGXuCrQYomHAxovy5Y7xHuahd21FZUCak7kKWTzMLrxDfR598UoDoJ4Sjg5A1xPC2A2impLozi3JY3g4MheVsmWDWTRQcFUb", + "chaincode": + "c7f5ae033436370a783865c752b0401289c3ff4e472ffea682272e62b8e289e8", + "finger_print": "c96e8403", + "child": [ + { + "private": + "xprv9vP22ZSNU3mn6j2Ym1YaaqxdtrdKFzTh1JNfyzw41wGqrzLatXjJJbHc1T3HWdKhi7V9188xVqqV3mz5KAczQHsN3qaMmnB9C7dYaF7Yt5W", + "public": + "xpub69NNS4yGJRL5KD71s35awyuNStTofTBYNXJGnPLfaGopjnfjS53YrPc5reHViGgtF8FLcvsA2PGzw5jg3eEBbLbo9GU9n2h2764BgoYJaGp", + "chaincode": + "1d5ee90daf35e1e73be8b5a93cbc5a34fcb5e48cd283ead8508866a4a008e35f", + "finger_print": "b9e2c54b", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "c96e8403" + }, + { + "private": + "xprv9x9XVsFnzYjQkzf215aRfAJEJDUPCgjk43VcGVKTCSkNxKHfBJLeSqoFEroyBEgQMWnF1wZMDkEDVhfXyBn6eZogyLiFXrrTYn1shbBe67H", + "public": + "xpub6B8suNngpvHhyUjV777S2JExrFJsc9TbRGRD4sj4knHMq7coiqetze7j63CCau57oVNkBkNfcE1XrywW8NoHga9M1r47SSmrLgtGVYUoVVg", + "chaincode": + "d1ae21f8695c14047e27135f028bcdb86409650b189f11260d42794639631882", + "finger_print": "cd185d7f", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "b9e2c54b" + }, + { + "private": + "xprv9zArKx4V6JSoLLp4xp5jzharzocxcaXudXfyhJy7WUpSPuapXr2KqdA5LxacNNtnndXQ7qVtrtvQEQGQnTt6g6DR9FugBGjN16WmAjaFhVV", + "public": + "xpub6DACjTbNvg16YptY4qckMqXbYqTT23FkzkbaVhNj4pMRGhuy5PLaPRUZC8JpwZLGGLMA5SzftMm8omufsUnvDVEEtemo2Jc8rrz3qyw9hbV", + "chaincode": + "8dbece8d45c09617db23cd6665997984fe8b14f1ecad8d81d52d572f58d04e6d", + "finger_print": "7dd72268", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "cd185d7f" + }, + { + "private": + "xprvA1UCXjngZJX7evJjV63Fjcv368ejxmUfS5xJw5S8DSsgytSp9GbF6o2niuLNM3c4Xp9rtKXyi77SzFnBhWVdy7CUYNhSgxuLiPNKZTShB5N", + "public": + "xpub6ETYwFKaPg5QsQPCb7aG6krmeAVENECWoJsujTqjmnQfrgmxgouVebMGa732NfWp4q5FSGx7z2ayUgCDjauTxEYQheGdfAJWsGxeQcBBHWT", + "chaincode": + "a524c538905236c8a6cfcbf6dc1c4b116870297da74360f3a87e5ef8ae9aebad", + "finger_print": "2e9d7099", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "7dd72268" + }, + { + "private": + "xprvA2mZTkAE1sAU3EQh33A1NH1KtmDQPNoCbG7bJQ4d9tRLcFpXMzC7Qbeq57kdN5CsSeNhxJQBnBNKZqF3JTmSE4Z4ER98EiJkXYcGREBRztt", + "public": + "xpub6FkusFh7rEimFiVA94h1jQx4So3tnqX3xV3C6nUEiDxKV49fuXWMxPyJvHa42ajGzhFPedFbnnu7gCyEYPAuniKJkUvKaEW543H64MgurYW", + "chaincode": + "aff48d3e046cc8f0984c1b081961578de6cff41defb1d51e1ba0a489691e58cb", + "finger_print": "31f5b00d", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "2e9d7099" + }, + { + "private": + "xprvA4g82DdquaQ4xqAUtw2xXJ2MFv4wLYgaL1cL6ToYGQL8BRobtAG83f43DHdEADugVcUZogE3ubm3atsBdu33snn1stWVaDZmViWMKfjLs6K", + "public": + "xpub6HfURjAjjwxNBKEwzxZxtRy5owuRk1QRhEXvtrD9pjs74E8kRhaNbTNX4UZ8MxCbd886QSVxW1jjadb6SZBpsof81iL8hUqCE4H3XyNrfNv", + "chaincode": + "5a4c7bd84d453d1f30aa877efbf770dd2942c58320900b70456c612c4600dc29", + "finger_print": "95fe12d6", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "31f5b00d" + }, + { + "private": + "xprvA7HuHqMQF9i8tEYKC15YJyycpWweRUzqWgu7e8sBnDSxdCWzPkr1HfRuG6eQeQYLHEzBWBVBEKWjLryfioJSNeGNP6ig7RysRcGimFHKDw3", + "public": + "xpub6LHFhLtJ5XGS6icnJ2cYg7vMNYn8pwigsupiSXGoLYywVzr8wJAFqTkP7HymxoBqQbgbx1SceFb3sC6Rjz4CU4DKURWxjy3VqYECSrEsGez", + "chaincode": + "c1e6f200f80085e0ed24f2a7e4d521d3ec55a52cfbd0c1c921e0ceaa32d85d49", + "finger_print": "581f2d09", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "95fe12d6" + }, + { + "private": + "xprvA8ifLL2yaC6aEZUULbUS1WQ3xGXDGJcpYAdruXxKPuE1JTrqsdja71n7qt1a7THTMEkCrsCfK6PMMweMtAa5bQW244f1PCi7sKL5zK9sw6k", + "public": + "xpub6Mi1jqZsQZesT3YwSd1SNeLnWJMhfmLfuPZThvMvxEkzBGBzRB3pep6bh4ziXihNPLJ1XBxgSKsSboBjj154D8dQ8hwxfo1qYDoyqsgQBkk", + "chaincode": + "8ff9c5f996ea5fc3645c4a90a3d5b40feb1ef4fa64906c6e66d6e9cb08492db3", + "finger_print": "8529f6cb", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "581f2d09" + }, + { + "private": + "xprvAAvzuS3sEEZbWdgECugaBSjsYLEpsDBY2u6PV4664Js3CufSWdL83Gg5pKxyJti31aKiAHMcXErpo5f6NVFq6zK46AWxNMsj5ziNxjRkynn", + "public": + "xpub6PvMJwam4c7tj7khJwDaYagc6N5KGfuPQ81zHSVhceQ25hzb4AeNb4zZfXrD8n93E8F5H5sEdg5VKvEEed29YaApKjU6vsfCHBL2tK3FA4A", + "chaincode": + "098757228453114f92cca97fae06fed81e3ade66ac58ac6d64fdd7a16095bcfa", + "finger_print": "cd7c63e9", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "8529f6cb" + }, + { + "private": + "xprvADLxznM3FQ3aiAvofyxtbpFhppZPppAYYhG8zANzxptpKXebfiUrvuBoV9u3LuJ6cLfzZeEfn7rd6aSiRiK8ATHyqPtZ8dCrdbGfTfK3fbd", + "public": + "xpub6SLKQHsw5mbsvf1Gn1VtxxCSNrPtEGtPuvBjnYncXARoCKykDFo7UhWHLM9uKayznUFR2HeEfwDX3DM2sfbqDjJz8u6S9CzLEwjkt3HjwZU", + "chaincode": + "b4bceecdbb38f16b408e148cc93ee1b5fb7d3f440d7b3f3d04255f93dc908da9", + "finger_print": "f21f1d2e", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "cd7c63e9" + } + ] + }, + { + "seed": "abed6fe622cab2503ae2c929ff138f4c91c86f19c3cbf80d40e2b9b81f3ad767", + "private": + "xprv9s21ZrQH143K2JbbNiaXk48vQUEgzTxLANMQ9ZDufQUy7G2fBwYk9TH22qa35VqRxVAgEAQWQNpcH3CPb1W7YueaMMg5SFTKUaN2gTa1ruT", + "public": + "xpub661MyMwAqRbcEng4Uk7Y7C5exW5BPvgBXbGzwwdXDk1wz4MojUrzhFbVt3RzwdfofKxqjuBThE6V58RxxENYuBjqsNgqj1eqHMhNnV7zWmG", + "chaincode": + "18a905f9dda44a917e9cb4629c29ac682f4299fc517a14bda1f13aeacf6ed288", + "finger_print": "07ac9286", + "child": [ + { + "private": + "xprv9txRB9NWTVm2yiYcsbF4sn4oE698nythFaVHbTnDUa5qWWKEokzrcZ6vo2nz3Dd2V7ZjCuaEX25zZHCdWs6zRFZJxQ9DgRf4Eex7r9A3QvP", + "public": + "xpub67wmaeuQHsKLCCd5ycn5Ev1Xn7ydCScYcoQtPrBq2ucpPJePMJK7AMRQeEHYqan547yV9rWt99ozW3AwFp2T8Zku2CDWLCp5FLcLpxTZLH7", + "chaincode": + "95cc704bdae823cba8fa47b71e2bf1828b59cc68c541e0df2d15f2307f229e44", + "finger_print": "35b55d5f", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "07ac9286" + }, + { + "private": + "xprv9wBBHBEa5h4RF51wxb7vmNPLvfb67eSin9LCVKrYwtaFuLsyQhM8hPbAVQB1ndVWPkLhfJHSDDtKEhHa4w8fUphJFnmzGCiFZb4dXq4kSTD", + "public": + "xpub6AAXggmTv4ciTZ6R4cew8WL5UhRaX7Aa9NFoHiGAWE7En9D7xEfPFBueLZpR5xUBQCaKyMsZy7HamB13WJHqB8Qnb6k3nCNh8KFLLA4gz6F", + "chaincode": + "61e32ec7b68169a059ea3c54c5115105b2bc50922834caca6f336fd1c5349d0a", + "finger_print": "358c9079", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "35b55d5f" + }, + { + "private": + "xprv9y4FCQ5ysjtKbyuKuAyLYNYuGAwRrCBmTBgAPBFNfBDGcxFohn821nwXNTCfJpshujtM1EUoxuS1AKxx1sbyxb714QNj9n1kFvbNs7tbZjX", + "public": + "xpub6C3bbucsi7ScpTyo1CWLuWVdpCmvFeucpQbmBZezDWkFVkaxFKSGZbG1De5wVWGiXUBhV4unQAhPjV4BdEni13nY2DzKAbezgjuMZjJjvex", + "chaincode": + "9ed2eefcf9a417856729501bffe7a91abcd0b9e2b03ee96f0dba7990dbf04b0e", + "finger_print": "0a42e252", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "358c9079" + }, + { + "private": + "xprv9zcvim5J3PikuY9FX1bPHaeGekChiZBJpbGBdQazdqFZpLaWSr6Zn8fC1poeCnHN5KkUg3Zd7b3cTvbobHiAHjKEJjD4bx6eu6Vp5P1f81c", + "public": + "xpub6DcH8GcBsmH482Did38Peib1Cn3C81uABpBnRnzcCAnYh8uezPQpKvyfs21YS9ufNXcSFjZd2UacBoq2j8NA6rfentX7dszPi7wdF8G4ahg", + "chaincode": + "a930d52696b27391121842278ff8d1876033edaa3348d01fdd17641a18f5c4a3", + "finger_print": "2c7cfc74", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "0a42e252" + }, + { + "private": + "xprvA2kesisYrzgtS12a879bDzatfGFe3NRYMFjmBbcvTvUX7USWRQbtsGTbYSZn3yKgC3pHA6PPcAEXh1qKpJew99hCz8J6Ap2JMeuzRXqwnvV", + "public": + "xpub6Fk1HEQShNFBeV73E8gbb8XdDJ68Sq9PiUfMyz2Y2G1VzGmexwv9R4n5PfKt5BombEvGEVivLVtLwNhtgpcQjmsVsVDHUA9uw9q1kgfxPRB", + "chaincode": + "e0464b39f988bacd357b666177413f2e648b7bb09486d5f98a097624bc30dc7b", + "finger_print": "434704b9", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "2c7cfc74" + }, + { + "private": + "xprvA4oWDgFPL21fvsHuxysFGCDp2T79h9KUmFDu77Q44SjRgtjA9KKekV4eJLn9Q7cFfCm1kWa8Md4afMdKvU3CJeskdw7Uy61LPD8g8y3Su8L", + "public": + "xpub6HnrdBnHAPZy9MNP51QFdLAYaUwe6c3L8U9VuVofcnGQZh4JgrduJHP89ZPghgGpe22bMTNKHqHTu2ngz3HoYJCcg9Whf7mYEhXLwgCfPuE", + "chaincode": + "f9021ec9c204f747c6c62c2f851c75c83f396beb2bcd9388518e2a347fd578cf", + "finger_print": "73eacfa7", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "434704b9" + }, + { + "private": + "xprvA73NkEfVCDWgN3XBUndoAvvYjq2N9PojnRNxvpv2hKM2GYWJjHokti1wHfcsT2JdY4aTdnvdrHgZqgKvPiMkUG57pBKFXr572wts85CYHNx", + "public": + "xpub6L2j9kCP2b4yaXbeapAoY4sHHrrrYrXb9eJZjDKeFet19LqTGq81SWLR8s8HuK2goRoTX9Fq88HzTXobyGKjHrzE61sJ2zcDXhWGUh5CEXa", + "chaincode": + "51fe7e8703765e481d58ebfe0367f641bbf2c0722174dd038c805b3add7fff94", + "finger_print": "afabd23a", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "73eacfa7" + }, + { + "private": + "xprvA9Mz5fVNsEkZr6UUrNvrw6UTWuHqDzpu3MQoKFT4PKAS4VUP8CEtd1JXBEr1VsZMmJ13wpQH2rbLLHR231Srzphx7LGuS3PrGmLFmCtjW9g", + "public": + "xpub6NMLVB2GhcJs4aYwxQTsJERC4w8KdTYkQaLQ7drfwehQwHoXfjZ9Aod12SSHzJEBZWti7xzLBSwmHoEM39wHnocdohHnLE3xrA8eNmRQdmn", + "chaincode": + "a421f86e5f891f283092944cd71b99a66a6a7d206103708cda382288ddbd16ba", + "finger_print": "d068b229", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "afabd23a" + }, + { + "private": + "xprvABV5QzixmZ1JQ5NetzZX5C7p8NXvMqi4CHMTygNoxUgTm3Hxhc9JE2DNy1obTz2gt9fG3M5WVTQJT4NKGZBTXQfPGxjsnF6Z93EfF666SfK", + "public": + "xpub6QURpWFrbvZbcZT8126XSL4YgQNQmJRuZWH4n4nRWpDSdqd7F9TYmpXrpD5bF2GuzVCKa6w1PnZF8DeEJUDhzWNQHw3oTgXJPb2xvDeSxoW", + "chaincode": + "ccefbc47883c2c708f1229fd918174102ef5f3d6f699f77263e4b1f4d42a6d0a", + "finger_print": "6511caf1", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "d068b229" + }, + { + "private": + "xprvACaTCLWLMjafFZvp3sVXCYBzCe9c4FZo9yFBcU2fwHG4dGfz7hmHm9HxyJ8UtqrXX55ay2GY6AVDpZ154sqJxrPzU38mMmNZJY821a9hUyV", + "public": + "xpub6RZobr3EC78xU41H9u2XZg8ikfz6TiHeXCAnQrSHVco3W518fF5YJwcSpUh7A8TrrhAayUwRJE2D1VdjpbHvAfU9pHX3tHCG1pgwXbDXNeC", + "chaincode": + "415961a7d511381aa8fb2eee8e93533ffc0187cecc6623d7019e5ec99818b9f9", + "finger_print": "caa73e1a", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "6511caf1" + } + ] + }, + { + "seed": "7d96160c018d9f5fc20c1c269744be05c1d2e69fa8a571ab8cc5bb2b595ed28e", + "private": + "xprv9s21ZrQH143K2peRN85Y1edosTYd3LipNpnPZVGyWizww1hjNeTMPectgqyLC9r9CdjQxTWUTVPNdEc84GRb1kAF6mB6quDr4fyEo6Qhwss", + "public": + "xpub661MyMwAqRbcFJitU9cYNnaYRVP7SoSfk3hzMsgb54Xvop2svBmbwSwNY2Jo9pg8Nw7n77YVdAikqjMVeHcgd9TLqp8FY4H1RhjhE2bQJNY", + "chaincode": + "4cb27dffecb226ef3d7f4ecaeba5192d6dabdfdffdc8ac926285463f3c1ee4f1", + "finger_print": "7b2bd855", + "child": [ + { + "private": + "xprv9uoexc8RvpDTmuMWZMcfPAkcUtCnUL2dfa6HKuVhPjVZYMR1VexRGccVX9WKxHAG47e17pqc72hSpe8XwJdeHzCExCxYP16c5WFUgxb3hRe", + "public": + "xpub68o1N7fKmBmkzPRyfP9fkJhM2v3GsnkV2o1t8HuJx52YR9kA3CGfpQvyNMRjvP9B6U6qSBJFrK8PWPybUobNsWxGNsv5dnBw6BNSgKj6Lse", + "chaincode": + "0c0c2c7b470a999bf44f382b4fe7a0ba856ce1d08a443c80ab87b8fa61b37932", + "finger_print": "f42391bb", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "7b2bd855" + }, + { + "private": + "xprv9xaMsAQoPi4z7vYgtjvEcatrCZCduSgkXyY14z3JpXGcSyhTeDKJU1hKNPXWjuDqoa29Japtb4tzgZNLpw9M9uXqJXQCZJ7nQqv5fpNLKky", + "public": + "xpub6BZiGfwhE5dHLQd9zmTEyiqakb38JuQbuCTbsNSvNrobKn2cBkdZ1p1oDbtS9KL8jdrZLtC8qwR4fNRQRfYHm7stGBrBY1PWhmNu8xF7YLU", + "chaincode": + "26a04046248278591a52357d2d980d18e713ec155fa8f8f46859bd543567aad8", + "finger_print": "e27fc26a", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "f42391bb" + }, + { + "private": + "xprv9zKyZScDGW65w2YpfhxpnjjBwb1cVod3oJikMf4c7UKP35JwPtMZSEvvLXJN1f7QBdFB1RMpFNQAy1pz53cXQyq7P5wUDotdz4MTGeqQCjp", + "public": + "xpub6DKKxx976seP9WdHmjVq9sfvVcr6uGLuAXeMA3UDforMuse5wRfoz3FQBi14UeueJybUM89yLH8o1kYJB33m8uJsSbCf275onADzMpuursQ", + "chaincode": + "9587a7bd456f52029136feb2af2ddc3e5a77633c2ec8fcca79a97312b3036555", + "finger_print": "e46ea5d1", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "e27fc26a" + }, + { + "private": + "xprvA2DwDarsdkRyhmJnK9qJimzE22XYiDfJvEM9nJk9fgsrxqsVydwPwRUDCM1iE4ThgHrL69ryV1Z7o3LvekNhPdQc8j5f5Mtek1MjxrQwY8E", + "public": + "xpub6FDHd6PmU7zGvFPFRBNK5uvxa4N37gPAHTGkah9mE2QqqeCeXBFeVDnh3Xt59n2namUN4ndNndYfjd6b7u1KqHWkQJmadGrKsvW9UN5idi2", + "chaincode": + "f0e0cdd53a9425ead8a49d48d43f5466006902b77a51c4213937ad90661c9a4e", + "finger_print": "78967c2f", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "e46ea5d1" + }, + { + "private": + "xprvA3K6WpHdWv2KWXzRgaYicvwsg87jFfu17QE1Nh5tQoHuxyomUhEgYVpnpxbwQdH9dHebWu8Eqyp7yVtxp3uzEJ84BzkFbxfXsyXgYjCcMof", + "public": + "xpub6GJSvKpXMHacj24tnc5iz4tcE9xDf8crUd9cB5VVy8ptqn8v2EYw6J9GgA87U1BhXrYQhEZemk4GTTQ4RyiWFk8bC2SnTmavTvSr2DRLVpb", + "chaincode": + "57371efbe802216a94c9f7f9404dd7a52bb4794e7eeaf9ce28619dd8c0653539", + "finger_print": "6700c12b", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "78967c2f" + }, + { + "private": + "xprvA54jZy4cLjgfu3p3TkFaRzgGARVTUvRtUPdF3kwmxnFb1RKeQiAxz2u3rrZsaWaeup1Lj3K5j8o2WucqVQ2ABnHUDKSooBT2sp2RvjnEHwu", + "public": + "xpub6J45yUbWB7Ey7XtWZmnao8cziTKwtP9jqcYqr9MPX7nZtDenxFVDXqDXi43Lftq33NgWQTsVSqfaycfChdD2bdwFTa6HjPfqLRQ4EQqUky8", + "chaincode": + "6c3266368a1284bc9c9dce36e1a6242904da76051a0b633596abb8e8d63b2582", + "finger_print": "1018d8bf", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "6700c12b" + }, + { + "private": + "xprvA6JpbGokvMbh81FNj4vA5uBR1nfPvVSB7iY3onBM1BHjJ3Toqc3fzXxWftgAihWvbdFnwPqyde2VNSFddx8rb84WkppH8xtXh36Zv7dLyxG", + "public": + "xpub6KJAznLekj9zLVKqq6TAT389ZpVtKxA2UwTecAaxZWpiAqnxP9MvYLGzX62yTEys8JgJ6CdHBecvkVfv8iYbfM5HQ7Tfwo7f9okczoSjMo7", + "chaincode": + "fcc78f50744278c6928cfcba46968b0aae35cf7688f3b9822f660153d8df606e", + "finger_print": "5d9cc677", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "1018d8bf" + }, + { + "private": + "xprvA8m16UeLr5v4X7Qddz6u5rjSQrt4StANhUEAE5SnkMmWnpgvyCWq7soGkCantox8w6z3aZCwiMv2B1ZUxDHSricfwZQmEN4vz2ADucRpWPH", + "public": + "xpub6MkMVzBEgTUMjbV6k1duSzgAxtiYrLtE4h9m2TrQJhJVfd25Wjq5fg7kbQ1oovWgevLYp89s4h8ab8pdosSZ662L7X8gjHxEEq4SjurJBvD", + "chaincode": + "d2fe968ce479581934fd4c91f6e0b17acc11e8c1ad3ce412c8c76294e617665f", + "finger_print": "12df37f6", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "5d9cc677" + }, + { + "private": + "xprvAA6GvLVTFLd8mQfi3RVYsrYMvj7CTrog4a8VHZQ7kqGJyQDkM38X7xkMYcTNc2gMWnuRp9K8mM7xsRg7JLfWqcP4F6gkqKa7F8FgTvp1pDH", + "public": + "xpub6P5dKr2M5iBRytkB9T2ZEzV6UkwgsKXXRo465wojKAoHrCYttaSmfm4qPpBnRGHdY4YCrJJ2aVDQiSdwN3CE5abwVna9NXnHiZdh92qoyt7", + "chaincode": + "bc99f7f1f62a6fd31606978933912922118edd057737b94ccccfac5c52269f43", + "finger_print": "050aa360", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "12df37f6" + }, + { + "private": + "xprvABsWoqZd8ewybmXP1rGFkZxwqHh2bQF448BfDbK6VcKbkmJ5cDJKPykNXjzU7CLg3HSUJjfKPsrSrCKCKu1JisgmjK5kjoJiijj5hUtp4CE", + "public": + "xpub6QrsDM6Wy2WGpFbr7soG7hugPKXWzrxuRM7G1yii3wradZdE9kcZwn4rNvzmKLFEKWjCxjUc4pBsrAiZhaeXT9iSYkCRTjdKyEhT1EbBMPy", + "chaincode": + "1bb0d596a25bfa7e2847e97df13817d33050adf96f2fdae7a66181b87f88f125", + "finger_print": "af7302af", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "050aa360" + } + ] + }, + { + "seed": "2763a10425c016db32f7faa10849004e0ac27e9faa75865cbaf29caf7c01fef0", + "private": + "xprv9s21ZrQH143K2NFqt2XKHfqjGECEbJvyHfFgEfFR3oYYH1Zk9yKHfjjyJP2bjERmzPrQ78QTCpzuKq6VyXwgA6iiXaYPHWYF9jxJ3FVsMyZ", + "public": + "xpub661MyMwAqRbcErLJz44KeonTpG2izmepetBH33f2c95X9otthWdYDY4T9ayrhnWjaGrP2pJhbfCBSGortYWEWvUSfutHnkaW65PS281UQqt", + "chaincode": + "1eff609868b4f9a09b24871bf0ecbc6d55898fda7e3f80dfbdd1e0abb5f5897d", + "finger_print": "734b919b", + "child": [ + { + "private": + "xprv9ukJDTHkqBFuFn6gxvcjPENkcktDhUQwVD1HxsHYNxg4Hh3cySsWabV44WRzJhRHnjdGHJ8RZawVVgD4gm3cXSvbhg91vSFAdXz3yE4xY3g", + "public": + "xpub68jecxpefYpCUGBA4x9jkNKVAnii6w8nrRvtmFh9wJD3AVNmWzBm8PoXuifdPEMXeiX58Feh9QbVoj7HuGBktxDD9VsQ2v92uaqGTqU9Pn2", + "chaincode": + "0db7a185431be0695ba20406f69db04b86472e98ca65fbb5d9dcd4b7389b6fff", + "finger_print": "d4f977d8", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "734b919b" + }, + { + "private": + "xprv9xM5HwyL52EHf7ek85rkKRAmaTTNpHaKdjTndmyTARoAVdCJDBWeXmxagF81vCec1XEbjfTdReMKgcFa5NwpuoUsFrfrhFJkAj512erFsAr", + "public": + "xpub6BLRhTWDuPnasbjDE7PkgZ7W8VHsDkJAzxPPSAP4imL9NRXSkipu5aH4XSoR2XsC2PbEgmV654gSF69eU4J2hgHao89QnCe34qtSwviH2Yd", + "chaincode": + "f41c87e86f7da86089d6662610f193358eae0e8ca1a45bb3bd33b5273858ccea", + "finger_print": "eedf4cd1", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "d4f977d8" + }, + { + "private": + "xprv9zRFVxkevQm452v5UKqmvapPk6qu6gT8oQKRkBCdPToHksfgUeKKBHdxy6n2JjgomqrSSqSAGGcBJ3MiDsnppsWUP74L4A8vehi5pn8T1ak", + "public": + "xpub6DQbuUHYknKMHWzYaMNnHim8J8gPW9AzAdF2YZcEwoLGdfzq2BdZj5xSpJwejv3W3s4mmRwZAvrkxXLAgKXsNaq6j3rXA33cZ3KECgxtS4v", + "chaincode": + "d7b7df123782c0f32bd9f7fb7c15ef9dc7ce8c428e79def69825de28c76d57ce", + "finger_print": "c1ce50f7", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "eedf4cd1" + }, + { + "private": + "xprvA1yB3ihjGetxXEL3gds1J47HxpNguC62jBDmu8FMhcqsk5MFhdNcjpGdurCwyZpVxcXNRrX1WxRmTBYtGnkFpDMX6dQgGv6WNyeeHi6r4qZ", + "public": + "xpub6ExXTEEd72TFjiQWnfQ1fC42WrDBJeot6Q9NhWeyFxNrcsgQFAgsHcb7m1gqAxEC5bxE92895mtUsbXiCE7PAFvSBrd7c4zVV6YWmSDZ8CP", + "chaincode": + "fe9942c7cbbe7a4f3cc0f29c554038ce119e65714de10717c6b42240e124bf93", + "finger_print": "4f6166d6", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "c1ce50f7" + }, + { + "private": + "xprvA31XczbJ2pHG462SNyohdaQaG9uLzTJJK1kofHNPaBcYh8uPsDuCorraRi5YP9Zd3diqSdYt33Zfc5tXyWNkTWZA36vmnFVJCqkngbfvWBk", + "public": + "xpub6Fzt2W8BsBqZGa6uV1LhziMJpBjqPv29gEgQTfn18X9XZwEYQmDTMfB4GvB746ptD2VoqwScFHtKW9acdxNG2KkRRz2Ay3WM22MEW42KCUt", + "chaincode": + "f8df0c225031297e65b5aeee72898ce1a6601c7c1169a1bae89f0dd87d079ba0", + "finger_print": "e7329b39", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "4f6166d6" + }, + { + "private": + "xprvA61PK8RTBvLE5ATcy5FTCcEKjmVevrR6z8DRV8Ya7hAox52zjWUoNv4EKDvBRv3LAErSc8nqHSKcJy8be9iEwiyHvVUsJd2QL4jg1iuktGP", + "public": + "xpub6JzjidxM2HtXHeY656nTZkB4HoL9LK8xMM92HWxBg2hnpsN9H3o3viNiAQJTao7w6Lmqg1jQCf27pR3qp4XJq6mNir3mk9dkPsZkZkJAYCp", + "chaincode": + "763bc83a8841810cff305905852138ba72747f2ca1804a175d344350c231fe39", + "finger_print": "ddbbe531", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "e7329b39" + }, + { + "private": + "xprvA7pVAvFnJ4sWPNACA7HF9RDGJWyu9XM4vwCDhgefDCwfe3W9B573vZVBkCH44mchdBwWoUxePoStaPxrt8usB1YMDtsuX2aC8efceZ2gNoS", + "public": + "xpub6LoqaRng8SRobrEfG8pFWZ9zrYpPYz4vJA7pW54GmYUeWqqHicRJUMofbQSk5d4B3ADdxJded9pqf4ocjBcLYHVBNPnX3tKoo6X4PN2Gc4D", + "chaincode": + "03ef3cde8bb9ca8d408a2d0b4fe06b1b1cbae3dbe8ac2f166356727da4c3d5bc", + "finger_print": "a83fd9af", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "ddbbe531" + }, + { + "private": + "xprvA9Jpa43eN59bbpBTLidfrFY7jimNnftphfDoTnaDuvhukSq25M9ngEQCfY5rxrfzjmKL8EUpbm2GXHro5ZyjqBr2dxoa8Azn3MXbTUuYwP6", + "public": + "xpub6NJAyZaYCShtpJFvSkAgDPUrHkbsC8cg4t9QGAyqUGEtdFAActU3E2igWjtPeoSJWVY3Dnt7XN6jNW8UWVCxXdtDua4T5kWAZ6DTfw6Hsdo", + "chaincode": + "1ff8c3847d1869b89bcb5c8e7f3601898eca101559f8b02578491d8c04bc1fb1", + "finger_print": "bece6f35", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "a83fd9af" + }, + { + "private": + "xprvABMaAynjzmtYe9YJegbc3WL2MryTb2EbMMZAtd1u7qaVeA4BLrVJFfy4uQqoT9LeHyoTV3vviQLTtW1MzvYKH1yJRr2ei6XHSJhuectkoiH", + "public": + "xpub6QLvaVKdq9Sqrdcmki8cQeGkutowzUxSiaUmh1RWgB7UWxPKtPoYoUHYkcSTcsfzdCeSdBPR9YowqNnpbJB32Hh3wWSHv33eHnKux12aAXt", + "chaincode": + "41b313e41eb2d7dde823bd69f0ce4f241d2d2f8bf137801ad4844cec7e615ae8", + "finger_print": "93b39a1c", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "bece6f35" + }, + { + "private": + "xprvACvLDnN2U83aZCaTiHsFzxwmLswwcsWUV1aafojZzfyaQDdqTL2dozoX3b9Nu2MpFcLYyUzYsp4Vx6GzhmJQDdJVr3rHyNJgQet99Pjd1WK", + "public": + "xpub6RugdHtvJVbsmgevpKQGN6tVtunS2LEKrEWBUC9BZ1WZH1xyzsLtMo7ztoDG9Ne7wqY6XJGhEZjzyxfZSjqWWLNzUbM1Xz8YgDD1UnExj6i", + "chaincode": + "cb71b09663f4458d7090671d5c9501b08e72981e656390cea27577738ddad14e", + "finger_print": "b4459ef5", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "93b39a1c" + } + ] + }, + { + "seed": "9676983d8a212969072fa90a55ca1761fe9c113f84ec0cc266a71687946d1aee", + "private": + "xprv9s21ZrQH143K4VTeESaxxaMEaLAtgqHcsCav6qbNxL6NRQkSZ7dKPRAeE7sjFPt4uSDJhWYAFCMwJCjZhJioKqV8Q44yBUc17zWqsyhtjav", + "public": + "xpub661MyMwAqRbcGyY7LU7yKiHy8N1P6J1UERWWuDzzWfdMJD5b6ewZwDV85KzuXcc9ANumZnruhDCLH3j6X2Cj9s4coAg4pEr4AVK3aNmxxbH", + "chaincode": + "f45afaf01d907797389fcc2c7fe3e2cb49f02bbd64d928d75950162aede3f6f8", + "finger_print": "00d151d2", + "child": [ + { + "private": + "xprv9tuVeF3mDyJQH1VRk4N9HsUQw6wkKXtYfmFDteLgM996ZFwPNGMYCjoXPFrhyVbnGUCTCAuQsFJNWta665S7vLMZ18MfYZw88LYAeNqBYTP", + "public": + "xpub67tr3kaf4LrhVVZtr5u9f1R9V8nEizcQ2zAph2kHuUg5S4GXuofnkY81ETVLfPowJk2L8XuF772pnGHfohmZ792oDNGh6LZ9THuXmQ5ijVS", + "chaincode": + "929f43680dd32b928641705f3a6c0b2ff4a702ffb20d3584da4a8d26cbc8f5ec", + "finger_print": "95cf05f7", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "00d151d2" + }, + { + "private": + "xprv9wt9TLQw7yaJApCYiadhfSNLf8YeF1vrNNf5P9iaa9y8aigi855pHuTJdo3mczg7SUEKwxRZacNic3vYxy8MdbpusbkLgDmeB6WyhLnJrcL", + "public": + "xpub6AsVrqwpxM8bPJH1pcAi2aK5DAP8eUehjbagBY8C8VW7TX1rfcQ4qhmnUzGEMgyk7cqpG79VG4iUdQbEX7i9WJbi9pMwzP9pCvCrTJbp2Ch", + "chaincode": + "7c861bdffa79586ff77f332a1958464b28c4eedc0c3fe4daa7aaa79be8501a7e", + "finger_print": "362cd479", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "95cf05f7" + }, + { + "private": + "xprv9y4WgCpu9NGArKJg8fd5J7qQR5dDbo2SFeR9AQ1ctwG2dYk9qzNc31xzRLs6Cn3xvtnFEVDg9tcWXACJUnq8MSSUGDoPJ9ttxvLifLCVGrU", + "public": + "xpub6C3s5iMnyjpU4oP9EhA5fFn8y7Ti1FkHcsLjxnRETGo1WM5JPXgrapHUGWwEV9R3sZ8hg8dA9sEqkFPHqQDCKUWgP5sxd2Ye9Up2hN9m7Fu", + "chaincode": + "54be215241b741076c81f52aa93b3d69f097c141b15206a4a1b84df5cd230569", + "finger_print": "40748fd5", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "362cd479" + }, + { + "private": + "xprvA122iv54w4roVJPuXEQ2soMCAXH5V3q1WuAhQNo5JhiW3MhVU9i4JhwVq1PgdaSuAUQkS8K7btqc54Ac19M2JxKncSGS9J57eEr4JK3j5Es", + "public": + "xpub6E1P8RbxmSR6hnUNdFw3EwHviZ7ZtWYrt86JCmCgs3FUvA2e1h2JrWFygCYH4vHKBTWrHrg7MhhdcrGvT2hEpTaAGzAszi2Tq13t7nBz42B", + "chaincode": + "e0f7ed07e1fdd3fa262f8ac394ff7e1a1ba17cad2a8ad306ec4a4cbdbce7a37f", + "finger_print": "bcd9c0ca", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "40748fd5" + }, + { + "private": + "xprvA3pCP2jtoX421B1cj5BinvuheM4j3vDYwUjfRW7cSGPGFeH7owgoUwZGdoSqqV45FhBYfcUK5aMgBU8pxPFMvtBoL1RRN5RiznHrpV5buhU", + "public": + "xpub6GoYnYGndtcKDf65q6ijA4rSCNuDTNwQJhfGDtXDzbvF8ScGMV142jskV28aUHveGqistYjKTNMcAxEc2R9MN67eSnVn3kgz6PjnUcsba1r", + "chaincode": + "b6bc0a1f7ee94694445a0ca15de12ae53a03c20b9f5c8a1e5ca41c97403a3892", + "finger_print": "204d1919", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "bcd9c0ca" + }, + { + "private": + "xprvA4YbPwGvhjh1c2zfcGkEs77Qjf8N1wfw4eAHBDE4zN6EEeEMXQebq7AAyDjxAdZnfP9LwX81pK5BfEn1jwiJa5Nq4oy9q3Enyv3aALVwboz", + "public": + "xpub6HXwoSopY7FJpX58iJHFEF49HgxrRQPnRs5sybdgYhdD7SZW4wxrNuUepPKMqUwZyu783SXB8HweNWtQhA7AWrJ9tA2pSUqREsvEF45U3bR", + "chaincode": + "367c3d659d5c31f4b06ca7dab32a2997a55fb3bec5b8f7bb04165dbe33f2f392", + "finger_print": "c8acd525", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "204d1919" + }, + { + "private": + "xprvA7fWUFxygD5QeLdxuUuXD728FYGyu5Gyu94bn56rftkUc4h7sQh7p1vLerqUJEX4S2tAwVqFv17uqzZshgB9ut2zVfkhb1KuB6GQ3AzqheW", + "public": + "xpub6LersmVsWadhrpiS1WSXaExroa7UJXzqGMzCaTWUEEHTUs2GQx1NMpEpW4qHjjE9KtL2wt3KUy6Fuh8EqyYxHw1hmjY33eNPY2xdcZj1wbB", + "chaincode": + "73cea348c1589e2e4ad070ff05963d0cdf1e152d3f85b8eb74e282ddb0697ac1", + "finger_print": "bdb3be9f", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "c8acd525" + }, + { + "private": + "xprvA9Ty1a4LiJwCDzeQGr4Mn7VqREz2P2YR2HyzekxDkLosMqk25Qv3M2TtPmZs15fc88sU9Viirwm1bcWx6DXFBwEGdBR1W3f3z4kQHqpq9aK", + "public": + "xpub6NTKR5bEYgVVSUisNsbN9FSZyGpWnVGGPWubT9MqJgLrEe5AcxEHtpnNEyUnNieQX9ZRv4twLrCwxjUQwZSMu3SunvTNxGvxeZeVJ2WMDKN", + "chaincode": + "615899b88a7d050215423e70b12b6cff3d65d2abeec91294330139744751ce60", + "finger_print": "cce788ec", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "bdb3be9f" + }, + { + "private": + "xprvABTam7SJFjcQAd3HoJ7kcVDYV9s1FZ5gJ59Eza7vxDuxpEgosXot88X3zQGFqavMf1edKS6dyc8znTA3NgKvgBcswirEKvkZWDeMwe6tWh1", + "public": + "xpub6QSwAcyC67AhP77kuKekydAH3BhVf1oXfJ4qnxXYWZSwh31xR588fvqXqbwsinRpeBAFGjZnGRHs5s25r9FnC4ctSQX7YW9E8kNYkK7r61b", + "chaincode": + "3067184e5e4111107eab453ff3fdc195c20565b984b6b35d13b8413a08ae60a4", + "finger_print": "a7bf91bd", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "cce788ec" + }, + { + "private": + "xprvAD4stzcyhY6RhfwGxcmqqd9X8VFx4YPAtqRFCVMwtAG9Y5C7kz6D5SDCbKrskmSbcHKGeiT1vSkcyyYriQvyrX6A47iKPQK4onpbTfJVUKi", + "public": + "xpub6S4EJW9sXueivA1k4eJrCm6FgX6SU172G4LqzsmZSVo8QsXGJXQTdEXgSXbbWfCVezypAEeQfeW5XxmkSRnDMBA12HPJxynz4AYNYgCBdpo", + "chaincode": + "d4768d1433db97abc0227eab286b94051d06ec979c093e493d5fdcc2bb5ccf92", + "finger_print": "9e1866bc", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "a7bf91bd" + } + ] + }, + { + "seed": "5d37dab56688819497a455f725ddf35e0398cfb1ea3b3b7565bf74b8a6b7532b", + "private": + "xprv9s21ZrQH143K3CBRXaYNzY7jfYY1H2dBHgMyYqCEHeWtLxbsBcQkWNVkWzPsY6UKpu5W2k6AmX6GJioZToWtShhKhMF2NTcny7wp23EBdbZ", + "public": + "xpub661MyMwAqRbcFgFtdc5PMg4UDaNVgVM2euHaMDbqqz3sDkw1j9j14ApENBoKeXuf8BmcNS7HEcn2r8vgQtjh1vLsextMNWnMGK1oGBMANMm", + "chaincode": + "71fd5d80571b27ba5c1336aa86cd276f228a5b44000bce4712e15435ea9dbb52", + "finger_print": "24823e34", + "child": [ + { + "private": + "xprv9uAi9AU6cfgR8cbghQvwp1qBg1vKwPMd44SXEkYWRmFmwKk88d9QHhQHzCEpp8nQmLvtM8cSDdyWegF4KGZYPcWK5xF4U2eAYUdkcBaUdvw", + "public": + "xpub68A4YfzzT3EiM6g9oSTxB9mvE3kpLr5URHN838x7z6nkp85GgATeqVimqQqjfsiVtcBbHLayScLHQ3xo6g27XwvpGWxtbzvhU5NhMVLNm4X", + "chaincode": + "422ef02aed6cf900c665fbb9dfd09b2ce4267962cf57dbe79a9d67ac5cd89e3d", + "finger_print": "1bc1fb94", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "24823e34" + }, + { + "private": + "xprv9vz7d3LuQquThRsQoxxNzDUjDE6pz3ECfRUuZ5G8YebsdLqx1GQyEM3FMNqZPEHYtEaNc1aVaHY7baQMg7ZPghESGghidxxSm6JgmzCR6nh", + "public": + "xpub69yU2YsoFDTkuuwsuzVPMMRTmFwKPVx42eQWMTfk6z8rW9B6YojDn9MjCZog2m6F7tTGB9vF2yPhCUoZ2zVqV1TDiUshJhFKuAJ3B2SEjk6", + "chaincode": + "dbd71a6dc50768e0d54fb7f28f23989bb340624926a3c77145d409649bd286ba", + "finger_print": "3e2a114b", + "index": 2147483649, + "depth": 2, + "parent_finger_print": "1bc1fb94" + }, + { + "private": + "xprv9y7vDbdjKdVn2JtrYSAkwwxUJwYMJ4RTH6x7TuMfEqYsNFgYZkwXAbzv768ABU3B6i4jXTcqvjpedyngjeXHTewKyFXtq5PCKLyYqj6ZZgh", + "public": + "xpub6C7Gd7AdA145EnyKeThmK5uCryNqhX9JeKsiGHmGoB5rF41h7JFmiQKPxHcgmWXnBEMUHSEtg44LFqAUua5bSKGopMK6VeP1TpRFQ4MrBgC", + "chaincode": + "92265fc8561b1f3c234f033030dc1ac1b97526bff5062fbb71b2ffd812b6b202", + "finger_print": "384cbd08", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "3e2a114b" + }, + { + "private": + "xprv9zxZ4xUAvkikG1U6g9Bf1A8SZbYs1ZjqHbfvDWv16qoywci86HcVb5zQ9Lug64Ur4LKGwB4MA4TzyuEgT4vSaxVTz6upM2ck1GsisJ82dZ8", + "public": + "xpub6DwuUU14m8H3UVYZnAifNJ5B7dPMR2TgepbX1uKcfBLxpR3Gdpvk8tJszYoYA6SPTg8qUfWa55zjDLsuMBu65Cp2AtkNCsNARwyaGMzB9r2", + "chaincode": + "db572d51542e825b5ede77c93321bebf58504f4856fd98bfb4e88b81265ade51", + "finger_print": "6c67c689", + "index": 2147483651, + "depth": 4, + "parent_finger_print": "384cbd08" + }, + { + "private": + "xprvA3DuHr6jAXLrFa8FvYdMFQ7qvFhieLRnf9GEmFfSsqgsr8ge5eNPL5QqdjCURBWVQ8ctQv5URJ9LLY1ZNRN7SSkk8tSwozsM4YjfRZVFpbi", + "public": + "xpub6GDFhMdcztu9U4Cj2aAMcY4aUHYD3o9e2NBqZe54SBDriw1ndBgdssjKUts1vBVxEK5PtDCHaHewK16BGvh99bvZRTsJ7qvUUaUGs3isvAf", + "chaincode": + "47bee46d56b038fc4841de186d8bc1d3ee3f7abc0b8578cc768760e42cadad5c", + "finger_print": "0426b458", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "6c67c689" + }, + { + "private": + "xprvA4LbMpMsSJZ9jLc6nm9jb9YN3baXaWar4k76EUMHDpweEWKEVxDTqiuc24dH7h7fazR4awBUejaYDpQcjK3U5amVfjdx5Appbm6aSSKPtNZ", + "public": + "xpub6HKwmKtmGg7SwpgZtngjxHV6bdR1yyJhRy2h2rktnAUd7JeP3VXiPXE5sFjkJY6c7gWj8e9vD8YzmdV75Jdne5VSsoSnaPJorzhqLA6pyQx", + "chaincode": + "7e3cae6066fedfd3c7c4b0654a745c28a8be262c4993cf50e46440e0ae00f66d", + "finger_print": "d0ee83ab", + "index": 2147483653, + "depth": 6, + "parent_finger_print": "0426b458" + }, + { + "private": + "xprvA7j2d5KWgY7HKTctJjtxEtJ8T9M6ysjnRgYbbDsBaxoNAV1mQBQPxEvQk23au95euvMaepTGfAZrWTSxiHYJAboAYFhBnJdcdbbYfSZ6tDu", + "public": + "xpub6LiP2arQWufaXwhMQmRxc2Es1BBbPLTdnuUCPcGo9JLM3HLuwiieW3EtbDS854oPYAp2a48D49uyH2kyzLPgLHAngBu9LcJvUNKV5LpCjqm", + "chaincode": + "c0edb6184f0f503740bdf4c35163f36079924f3a8262cef5ff36441f8a7c75c9", + "finger_print": "23e61232", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "d0ee83ab" + }, + { + "private": + "xprvA8LQ4nTojxkunochH9y7wCxQHJaUM397sM8PgZb9BwyTuYexSv2nBCzM3yMM6uq8mfZMhG7Q311qAmw2deN29eKzmNrMvY2ARUorGXKoFVR", + "public": + "xpub6MKkUHzhaLKD1HhAPBW8JLu8qLQxkVryEa3zUwzkkHWSnLz6zTM2j1Jpu9WWyS59Yy9wtzTHigp3FymTiZmCHFxhvHbdZVkR6HVbW6tzqEP", + "chaincode": + "1b9916eae1e2f2bdf960d158e07c8f17ee375949cefca8db84f3605a3cbb52ca", + "finger_print": "00450f84", + "index": 2147483655, + "depth": 8, + "parent_finger_print": "23e61232" + }, + { + "private": + "xprvA9xLxnuTbHrG5zX3XfWzqV8KaPvWsDWcdbizARMT6i6BwhdizR2i1m18fs7PqBfafjjXhktw5h44kCUTcePetWDtkwG96CW1AqFE5BqawjN", + "public": + "xpub6NwhNJSMRfQZJUbWdh41Cd548Rm1GgETzpeaxom4f3dApVxsXxLxZZKcX5MUm5Fk3CF1wwx3r1CBDvQd2tS84mp9dikorZR5G3eiuSgEUPs", + "chaincode": + "b5f28fd47a834ba8af2623eee42c760e5562c0ca739c0912aac6edddf3432d3c", + "finger_print": "5039fb45", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "00450f84" + }, + { + "private": + "xprvACRZqCFwaKDVKFjSVuSq741qvDqAsYPyowVSdMpMfeZVKonbRqa9wbu4FTKj3MgrDXL94dHZaVtoJsbFmbBwvypFGoVv2CFiQiV6y8uFJbL", + "public": + "xpub6RQvEhnqQgmnXjoubvyqUBxaUFffH17qBAR3RkDyDz6UCc7jyNtQVQDY6cmwe7ZqZkCbx7DrjxQhoNQh9oiXzaEGNz6XP3AHqHQyxbBv6ok", + "chaincode": + "297075d3043f624d2a12d827eb1b9c74d650892b445358e45748ae4481580ca4", + "finger_print": "a8d11d4a", + "index": 2147483657, + "depth": 10, + "parent_finger_print": "5039fb45" + } + ] + } +]; diff --git a/test/bip/bip32/ed25519_khalow/ed25519_khalow_test.dart b/test/bip/bip32/ed25519_khalow/ed25519_khalow_test.dart new file mode 100644 index 0000000..8d14e40 --- /dev/null +++ b/test/bip/bip32/ed25519_khalow/ed25519_khalow_test.dart @@ -0,0 +1,29 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/khalow/bip32_kholaw_ed25519.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("ed25519 khalow", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + var w = Bip32KholawEd25519.fromSeed(seed); + expect(w.publicKey.toExtended, i["public"]); + expect(w.privateKey.toExtended, i["private"]); + expect(w.chainCode.toHex(), i["chaincode"]); + expect(w.fingerPrint.toHex(), i["finger_print"]); + for (final c in (i["child"] as List)) { + final index = Bip32KeyIndex(c["index"]); + w = w.childKey(index); + expect(w.publicKey.toExtended, c["public"]); + expect(w.privateKey.toExtended, c["private"]); + expect(w.chainCode.toHex(), c["chaincode"]); + expect(w.fingerPrint.toHex(), c["finger_print"]); + expect(w.parentFingerPrint.toHex(), c["parent_finger_print"]); + expect(w.depth.toInt(), c["depth"]); + } + } + }); +} diff --git a/test/bip/bip32/ed25519_khalow/test_vector.dart b/test/bip/bip32/ed25519_khalow/test_vector.dart new file mode 100644 index 0000000..139af96 --- /dev/null +++ b/test/bip/bip32/ed25519_khalow/test_vector.dart @@ -0,0 +1,1322 @@ +final List> testVector = [ + { + "seed": "8ac1f6329a891479acf0cb8110344846c945cfbc841a19f1e895ad12e3964761", + "private": + "xprv3QESAWYc9vDdZvAJvgPXCYEzreQmg8avfRK9SHe7s4TgdPqvA5Vn22R3fda84NWyjCxRW1cFWdLmzzyM1VR4LtHZBBiPopMzEgZzCsJWddpmqHJLGvzFXYP83RVYMKRAQK8YWTV8xULm5vpaojQePBi", + "public": + "xpub661MyMwAqRbcGjVEFHVdeMVrdgD7WvULeXcvvSqd8gWuYMXyJA31SvBbB7wVho1f6oUhL88GCJniZbLCH96T7GPcEKdnuWEyzBFPQmNSrzq", + "chaincode": + "dc065c2fe5a1d110247b2962138a16e513cd2e2f3ae7f396e45d812cd655f7b5", + "finger_print": "162caf98", + "child": [ + { + "private": + "xprv3QqfQDYS652mUCwC8hmdgaHrsAcTWGLEMs1YzRhehFZXjEocChzxCvgRmAateHWZuDndi5AUWq4WVuEibUMCFFY2YkmGuWahMGdhkWjm67yQMXPsrbuUhJbv5n92d27V6FTwRS1iBgS7YRZYgC8MrmC", + "public": + "xpub683x7s5TdYtk5RjrbGrDawvu5HoqZ7StKyBZpFSzrRwui3idskbLhw9ziicVy463SWQZNnCZ1wpUYPSrhBNusAf6dSB1xWfb4iCjbTxKVzm", + "chaincode": + "381e75b3aa5a747da2055734f2e958e794df971a0e0d8d1fba059855bf44ff62", + "finger_print": "2d99eeca", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "162caf98" + }, + { + "private": + "xprv3RT3qP5FMj2YyzHyQ5K3KzUHJYXUeLoruQbHpR7AMYDc83ezp7FTFRrqUZywiuwyMwnkj3z5k726KobVbjvHcJdKLacGbDJafTcgxmuc2cQMbkTHH5aaSdCLJU2CLk7daRAvGgUv5mo4EtiyMbHdp9V", + "public": + "xpub6A75E9LsqMyL2fjLJtKrxY1ANknuwSAfF3vTcbYx6EzYe67pqqu3vWL1Z72KWhKspyZLmmgoGytvvVriutCsWp97xxmSAWocu8utD8khd59", + "chaincode": + "e5134aeaeca3d5a0cbd8310a60d42d939b99b95f47356e7d8da22a57c231b8df", + "finger_print": "10a0689d", + "index": 1, + "depth": 2, + "parent_finger_print": "2d99eeca" + }, + { + "private": + "xprv3RwoNXBezqZastyffosb4bicxV1ZvL93h555DckBY2mSuLnxBDn994LDLrXqaXrUA6Q7w2nCLW2dMsJaJRf6WTosDptp3RHuSo8jPhRn5xRmiD5GhviZwYKSZTY1hEE839EuU4ipY3GeXYiKN6vdCtV", + "public": + "xpub6Bmrf4RHKTdroWnnV3JokTuJDj31JLegnJkgT7UrfTJGghMwy5KoxSh1Jsg24Ve1EsupWvMc6P4xqYYpAqQqV4yQkZy7R83ckFmewWjWYhH", + "chaincode": + "45833f3e0bb5e25e3eff42112b6895c5f09bd9a7be016f6b0fab426ab758d1f6", + "finger_print": "ad2521e1", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "10a0689d" + }, + { + "private": + "xprv3Sr3PJy4KkWRcenKRQGY7kCTuYxeVgtXkJ3f9GS3ma344uAF1bGbWh8bziwNPgbEGj2wWLfi98fUtqDtfrtwq7bsdv9EHkyf5eANhGE5vszRWKkKQEUsMwbuM7sEB6GYY4JFEcUVe8hQSEdUbPzwvgh", + "public": + "xpub6EoibHuBw8aKNnkJyQu7bYvANco2NfWSLRfbfVC61QWi1dm5VLAj8JZCd5YjgD7S3svV5QC3yYZ5RzMXRP68CfiDT176Z2PxTDG2cayDdjc", + "chaincode": + "a390ae5b1a0f3e894ff5d750f2a6072ade291e852a1407315ac198366c004d68", + "finger_print": "8f3033ca", + "index": 3, + "depth": 4, + "parent_finger_print": "ad2521e1" + }, + { + "private": + "xprv3TLfi5PEEWHXoyD1Xf7497CsaBWAaZUdFvhVUsGTa77AkUyZMVNTRPy67aPbrm2EcRcpDre1cSkjf7iBnBp4wD8xMfk5z8L4x39DA2QwzTn35KfNzL4medfumHuncjWgtfwA8Z2c4711A4CojYsrDV3", + "public": + "xpub6GU5jqNQePfXJ16fV7Y3PoV6dKbceJdTG6TgYxxCadhg1oDqxwatC2WpNdoNYFfgxneD9AphZy6i6a48B2Pv5Zs29KZmUorzewCTm8MAGkR", + "chaincode": + "e7a85fc74788e866eefe6996c9d78915849cdbdfd9d1902a1d050af2dcfc9171", + "finger_print": "1b4fa32d", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "8f3033ca" + }, + { + "private": + "xprv3TeQw5a2LB4rGXkfZqburZdJRNUFAtzYuUxhNqWqDEj2Mfgi8Q6cPbjkNbAZf73jxdAHiBwKXu6fXMkJ7vxhPb1xobcyAouMLsdVeUgv2U5aULEfbUxVYRiDno4eB8NaiZeaFQtKbAyHWnKGjF6oosb", + "public": + "xpub6HVpR8Qis46KEf7tzrD51Cp8R1C8zRDGzPyfY6F2WhtYw7ZW8SchTqffqa9NiCek9AJv6ktZhKBya7vcX1wQkKyLkHRBCcbVx24A6HE8qvE", + "chaincode": + "b2a7c198dce6eda5e588a442093a8f7d02109a76e34a601fbdafdbf34dd09252", + "finger_print": "233c5d68", + "index": 5, + "depth": 6, + "parent_finger_print": "1b4fa32d" + }, + { + "private": + "xprv3UDqW5h5GK648qjxrfuwNJbywhYVfretwYKCs7himGwhsZYaxrMPQ6BzcEznS2FXqkBgUWKgwZYrXatwDa54ZCJU8aK2TP24L7SYzXCAJ4RzPs5jgam4gqiWyAUGAjPiyEbTXi583ecQxKCfVvYuJZn", + "public": + "xpub6KSLDpMD7MuXyyFRstEuz7a6Rv8GvPP9j4uA7mN4FuwLXJjK5XHtasgXUjrsoEoAFcEyaKFdrbNn99FvGC8ckoj7WEQdNzqoZ6Xgivwf9Py", + "chaincode": + "6f09935dfb733010e2df4e5b73b59c712705c66735a41ddb8aafe9b42ebc08df", + "finger_print": "813b6646", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "233c5d68" + }, + { + "private": + "xprv3UzAHCh757VKxwSqBo1Ak6Nv3JTebQSh8Tx1VzdRBUCCvN8tDmY7fXtz2TvE6viwG5Ms1GtUXEj6XAi3LWso5KykqbEq6zytXuhR4fAqt3vAYvRCiLH4ui4v6Ya9GQfv8LrWa1LVobJ16aMzA1xBYo6", + "public": + "xpub6N1YEPw3CpxDWfUcdRb6VioZ8rhZqvNTAie3uC53Zg9rVvKTEeKYoETKdXpHeuM3DqShUUQPutTVoUkUq6vq43w4VDwpcVzy9EcWMaVmQtp", + "chaincode": + "3f7f7fe839602e3793141f3e745dcd7eb16f2c3edfe15cbdad7c1acadf736dae", + "finger_print": "5c34db96", + "index": 7, + "depth": 8, + "parent_finger_print": "813b6646" + }, + { + "private": + "xprv3VTtgXRXFatVKaCQJzuNLH9v25LEjyWsQdun8aByjWA9ZGR4MCbrgKNxpNkHPWQD2aZXZZoYBD81xhj4hXkJh9CaGsYLvkzDXbhjp5bT8ydBMWZyJtEv4aeXx89tzKt9ampSBAA8R5B4QYPN9vFvuwT", + "public": + "xpub6PctbX2NYRdWe6NjoyffDfh2w5xz58YJL7xdS2iQdRvM3DxpJ7Leqra8kt8tW8QHewVtZdV1Wmcf8V9da4bxkFKQZ1Keie9howxbYeqw2fP", + "chaincode": + "054bf43d0e1adbf7ae2f718642b0066c05205734792bd0b7028e4ea60bf8d1a1", + "finger_print": "d45518ea", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "5c34db96" + }, + { + "private": + "xprv3WHXPQM7MMcsP3fzgU7FjDwZ8CUsqtGVREnUqwwVmA9XChAZbcgcNkzNpS2fR824Fb6LHQ6BUAEcgJT6yhoqSeba7LWXe7bcnJNNQP7ke5kUw7YgvVUzJMUPX3okgPhX9AggsabZacZrszYt1ucGtqq", + "public": + "xpub6SPEgw4cAXTfS5XZ87BtydTXQaPxKrE7xxUuoESGt2JdWqqKPUSByXSy4DHW6nZXW8BkGwVbUPwK7vw3ao8VvQYLNcAMgcggqu1KfPJCFF8", + "chaincode": + "99db806d124729b3bce08006ef6a6e6b0f1f9a37130a3c70cbd63385c9a8288e", + "finger_print": "823fd437", + "index": 9, + "depth": 10, + "parent_finger_print": "d45518ea" + } + ] + }, + { + "seed": "1c63d3f563faee1c81f06dcbcb831cb0539d9720d3b3e46e5da57dbdbeeffe25", + "private": + "xprv3QESAWYc9vDdZJ9oRpu38SyGxJZ33Eqb3pHUW5r3HPBmNp9DECE7QZKBf4CBJivq66SAo76fFFsAgVaW5K2VgvZZZZuAMZA6yT6nj6BhiyTtYLR5mee2YS6GFxWwxLuderPjR4snQ5qfo1bdBBSB1ao", + "public": + "xpub661MyMwAqRbcEeGgYbAKTasBZgjP7KQHFn9StXJYabWvG6zhqLVPkXuC1w2TTKueWDbcyuTPzJLiL54nTUDTLkB1L3JMKteTt4wx2Ju3aFd", + "chaincode": + "0a1bb3939f2750fbaf8de0569dc0eb9ac323ce7f350eed21bf87d25ca2c8e8c2", + "finger_print": "3004d8b9", + "child": [ + { + "private": + "xprv3QtwEREb9U2eERXKSmGmqmxA3LBoSxHh75e1wpN4R3CncpXWqwSpG2aXvwUZpYZbU8fg3S6rHgDnPsQSp39QuZ9yvUPumzbswSShGC2gNv2WHsbzxxmDzamXcpnRPyxmhNRTZKy6JviKZxGHoTcLP28", + "public": + "xpub68Ey9WLeutLW2SDqBoq49TVFWLQSMVcaPpWzP76i1fhHjnJjQB6gUd46rSoRx8H7mBEHpcZaacEMwVMr3Fpt2nVxXMq39cHBoemVnkv7DKB", + "chaincode": + "a6059872fc95b57102254be9f0175f3fff7e6574d5ccd45ec12475d53864d638", + "finger_print": "c2ca8879", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "3004d8b9" + }, + { + "private": + "xprv3Rmwf85eZaEezoEatk6szGyuXwvJwk1isJwf7FLF5TVHoQm7YJYCTpQ5XwuP8ENhVGLETCmPhbn8XCm3WJWDuspT95hqxWTYCxXJdj4Cdw4TtjFK9wNHTQ4YqNppsU8aSvPChFgrhrGaJPsAJVCVV8P", + "public": + "xpub6BCg6aHM72fLpLT4aYtyfT3ET3Z3LMXRXJ9skexB4xqay5jo4GZTJmrhSSmJXmBvFAPPihjBzrwgxh9CtVYKY388UeaaR8Yk5fu9xnRero9", + "chaincode": + "87e9b54720802b8f9ca9307c8982fea5fdba395d0ae916ea5ea5e03c0a319afe", + "finger_print": "8b0f03d7", + "index": 1, + "depth": 2, + "parent_finger_print": "c2ca8879" + }, + { + "private": + "xprv3SDJevusmhp7ZjAT2vwE5FDxG5ncQZFkD65r9Bz9Ag8Ud7F9qtbVoJX4BCe1VgoR6LbCcSUH4TVGvdRFQHPPECRd46hGFWYCpiPqQWZ7JktwqCdeKSfHnAMFEKeefusg1ZkzvduU5ZxuyjNcYsC4XP6", + "public": + "xpub6Cg3uv6VYXccJ8S8jDyu7eSwqgoA5mutwp4RcNYzfvgD1enHqNUacyuTQVWm7KqrzKjP3TejvJQqFNHutoZAUM68sqnnEUpt42tajbHvmVm", + "chaincode": + "65ae0e45dd26beb9d9e2891cb96420dc35564d4a7684ade1330ae3c8d4de135e", + "finger_print": "2b4e0ced", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "8b0f03d7" + }, + { + "private": + "xprv3SZbguTpZph5X3scDXuH22mZXmPhWHvy6gvdoM4FYtCTGrmgbcCRgygLW5aJUYYmD7XWZCUKExsD3GAdB84qxVXBKyqbCWWQV9kWk56KCzxvB6ssoA7omNWykwksWqAQAVgyFCaNZiBSh8SVib3FS4h", + "public": + "xpub6DrNAQUuV9tcnpm98CF5zM3P67zaxUoQeT6mjkufZbVZYmMQ5gUi5WVbQJYNEqe3rVzvNEADTFufMcBKtbd8qPwMqVdB3TMfWEh6TLrD2ff", + "chaincode": + "8515f64a3e22d4e452d2241d7279fa31221c9bdee3f44a4483fef5d16a59b244", + "finger_print": "6b1874ce", + "index": 3, + "depth": 4, + "parent_finger_print": "2b4e0ced" + }, + { + "private": + "xprv3TG6bsHUYapcMYs5CS3aAZfnTt9eFG6om6qfG7mZYSNwyay3HEnT73fWyRmZgeCtu2rwMtdxvTWJ411QDaVrw2BDTXVPyj8ErPGYqN2PMxC35z2YTyGLty484YV4EaHYHRRJeMkLRuQJMEuozpfS7LN", + "public": + "xpub6GChJuJXKBfUiAxxR5YQHjt6rog6JpB16MyZDCrpWtHSZXDUYoTRUmkqAqkPbBFj21NCAxrqzehKRZ4Zq5kb6mAiQ4vHxeo1b19iRoD68os", + "chaincode": + "ba6a38e3619d595930412d9226237b1e3abb64699c043eb2ac1c0ab6f196e6e8", + "finger_print": "11bd725f", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "6b1874ce" + }, + { + "private": + "xprv3TdCddDfLKEcrii7jvnHRLBgNMyMfLqHGe7RD4UYMEhZNZefy7dgLQDLPbqpTmo5JQJDuVdogvknHMruz2QnJQGRFsmgGJJXq5MEC1GFT9hVKwZfrCRDf6pErGks9WafEPbWvMyxTmiSAt91ex2jBDh", + "public": + "xpub6HRjmCC1WWR8HCHmfscWfBYuV8LqoJgEAic3Qt1C3dJ3K75ke1CHQeQvBaE2zPV3Xwy1dBsWkJjK2okgBFywgcq7DUkDqdTkqx2eL92kizE", + "chaincode": + "f06eda517367bc6a1d8823ff5c56c6cc8c0b6b4094fe26fe5fc3053ec694dedb", + "finger_print": "a9b3a20d", + "index": 5, + "depth": 6, + "parent_finger_print": "11bd725f" + }, + { + "private": + "xprv3UWsB8qG8RQMGBR6XoDoQAiyrfEjP5X8NyXHqY2XWiQvvFCxctHN4Ke79T7x5chmwnjfwbEBNeJQFuBoryhj686r7QvQPS9JY84BRQLh1tgso1ve7BYmECJtyaGah4R5d7KDQWzSv1swAyXKLsm1EvD", + "public": + "xpub6LRf2VurscGFMw4EgNdwrR6MK2h2TRW8PNkmDb3RWnXcPJP16zXYaGeWyuaFDFzsEgfhthReYesmLtSiUGZNc8fGF9dLssbmbLvrs7cXGvW", + "chaincode": + "4281e784564b71a40104ef13bb2f0f51f180231e11a2797262a4afb844fc9fe3", + "finger_print": "44cc73f5", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "a9b3a20d" + }, + { + "private": + "xprv3UrWPRFDq7hVw6vU3DvP7z4PEojx8j2yxj14o8Hcceb8SeLyMASCdGdanNc9Fp65xW7xW2RbZhi2612FqjPZwswtFP36dmEUUcjn7SDAif38BoetXHvNnJMVa6fdgbHFGLRdGodXrGUCQDJ73UPwqw1", + "public": + "xpub6MZmxN1ckHMqLSxFCcZBhEA8jY5ESNGNiUznN54oqEuXcYUmVP77fMkcP9XyPppMU9ayg5QZUPx5eJNbAZ2HNj8PCvrmphr2cY5Hw6YUVV1", + "chaincode": + "b191959db0562d4e27a520edf78d880d76185f96c17f460af64427b5ed33cf65", + "finger_print": "b234d7be", + "index": 7, + "depth": 8, + "parent_finger_print": "44cc73f5" + }, + { + "private": + "xprv3VenN9r4akqY21v2i44UhPRBRJ6ftuN1G6Bw5syNUYdcJoyHysTH4PiD23TY6Pjn2jxSQbWopL4WuVD3sx7V7z26EDApnUgky9wHB2s4g1TevYxZmBDfGrmjQALLLdvZi5U9RzqqoobR5bW2AAhF96B", + "public": + "xpub6QFZ2mWqHAvksH9yUcrDZ5BttCwWvkLfGHMRkhs5Sm3EUBDthJJzD17cBnATGJNFuo7RKTvgUjNtZr6eTwFrGQ7e1t4H1CSjGvYMPA4NbVa", + "chaincode": + "251e6f4622face4357bb974c4d73e33ccf319f71e40bf1e905bfb4742772e89d", + "finger_print": "285f0a82", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "b234d7be" + }, + { + "private": + "xprv3VukJeNUaTBCRHLpRTEwc81uhoVrzNk2d5frW5zCgSePJNVPpKep5fQ7ztwHgwCVz6g8cS116ab96SCK8CxuihFJngtjHtCvZRSaJk3epSJf75DdkdbDVy46yc6YzMbgKAVhy5Hwkhp2sqSeHngYhbR", + "public": + "xpub6R7vmyC7HVyAqk9ePh9scUiGWNFTUBtVPHydxUagcgZztrRkW7ke8HTmQt31LqainyaAmP6Rp2tKnhVUA2YWFBs8bHN63Wfo1rPeGMSsfnE", + "chaincode": + "145e22e6cd54a7b56c33906b87f239b872ad59cea638aebbcb56d2d9eb6df54b", + "finger_print": "9870ba3a", + "index": 9, + "depth": 10, + "parent_finger_print": "285f0a82" + } + ] + }, + { + "seed": "62e4d5f182a52a39f3aefbb429e3e2ff9c14acba70710fab3c4648a622a51569", + "private": + "xprv3QESAWYc9vDdZKk9tM8LL5iRKQfuCBnArUno7dqBQZeJfqmAabPxguA2jkgeTAD1QzN7qnmmSM9j9u4mTAi65xQNcBN1cc3d4MW7JzsvEhP9oUz7XekZCD32WSfFKSGxLRUBMVvLnCZRzg1BzhGZVHe", + "public": + "xpub661MyMwAqRbcEjdZzFgDGenMW26FooECCBxtSX4SG5LgfwprkLRQTFVcUHUKye1bvqRntQ49Eud6EAwLm65JnLvTdi9XZek9Y5aKPY23Piz", + "chaincode": + "1363fee4c28c2ac62f655fc9b84959c09c9b5e598ca1c61888b2e042e9f95d74", + "finger_print": "560f0e65", + "child": [ + { + "private": + "xprv3Qyke92sTxmuZkyMtZFbEa2GJ97zkkDq7Bso8mYKGYU68SGvmDaYQzpYdKexL29gLdZxAxBKZmJEnMR9FvE7cRcGZeMd5CygMukJ9gW22a5uD5PAYNXtKfBCnJhtQ8dMPN5qHEaeMp97QH7nHbPDwTo", + "public": + "xpub68XBippcpyc7DhDfW5nKL7xHFMGo7HQAk3vXwkkUmYffuzoxErhT4id7vQByvcGjT7DLBsDJrsLPXwd4UsjaMcGv3bPK2NWtGiSa6PKvSpg", + "chaincode": + "71ceda9c058d58539b62be4faa46291539cc016b19a37e418c0f02d832f37ab5", + "finger_print": "744c901d", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "560f0e65" + }, + { + "private": + "xprv3Rc17zVPctdBHtYYBPfEPHsfM8c3VZjWGBKuoUDWwDD9XcMBtjKttiULJTthPho5eos93uzd1bEm4vKcM2Usii8fGc1NjHRMaqx2kWSGgQfJyG6p4CF9QtmhRfyJ7hd13zuFYn88ePmwpzCxbucfVnj", + "public": + "xpub6AdDJReseD2gkF2tRxoRHhWChdrmcAXVQ4qseRpmRCVx9ivpeDqd5m4maCaijPJ6fRb7s79gdAZe5iNddPxw5kVxb7sGBvN7JPdqebiVmb3", + "chaincode": + "4fdea5468e63c769b41d889c96e11efc774c52975b2d8f667cb09f92d073fd7c", + "finger_print": "f775c830", + "index": 1, + "depth": 2, + "parent_finger_print": "744c901d" + }, + { + "private": + "xprv3ST2t2NqjDbSUk4GmcCM2g9Ry3T4pioRwqEwtDTd4s8ahuJT7TUJwvKZrQecP63QTq4GQLT43DMRbWVpMCDL4LqPYNEG8H3u1ZhRYLSjLzCpMmrhNne3zc8AKNmqiwGCtQGtyT1bPHyf4pZhF5zRCt7", + "public": + "xpub6DUGFLWaoKJY3bghNYVTaxjntfMxRfY2ifJjepZKH4CpTvKW9xbqfdkpLzwUuWAhhxa4yPDZ88zfkrZqyHksnpR4CrCeKSAeWAe52tJoy7Y", + "chaincode": + "5cfa90dfb7edf1d38789cc6a9cc1cdde12b6bf50d80e5ba6cf31bd58fa061653", + "finger_print": "9fe85b40", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "f775c830" + }, + { + "private": + "xprv3SpN9vPPsSY413THvwYK85egKnvzWwzgmjGtPL4FVckZADeKUSUCGj3Zoo2YQmUmv97AuY5VSPrH9nDWH2XZ34uEgG3M2dj6eP21LUwsGCtMzGohnz4QVd2o8geg2fTxVyPNNtHBNNQXnoBHSNiFDnV", + "public": + "xpub6Ei5HR42eweaBCWXaNRReCzJ27KKdMWhwai9RvtAseQiLYC7p2rkMDoUhepnCumNMKFuhkY35wg4w6FVAfuziDYbXzKmaNc2bF5ts5sVH3b", + "chaincode": + "13859f84dfcdd18a2b0f8a94225289bf518ce74dd06bb924b175a5e95cae59fc", + "finger_print": "f3aab04c", + "index": 3, + "depth": 4, + "parent_finger_print": "9fe85b40" + }, + { + "private": + "xprv3TZPjqF8EvkM56CFth7hJq8BYL5sz6ggqBVLukU12eE54WjwuKwFpbEdYXbk4wXbvJ1NM4pPS8eSaf1tgEAkoW3kfkW7Kw2CMVwhnSr7yaPfXhET2KYAAusdsa6NaaDphVByBqV93NwahEqc2hhihNA", + "public": + "xpub6HCvArYtA9bbtZtfhMoYZ954eBLzhNd2wg6AuCmFU3URcbT2CG5z9SNjDNWTWpkcQ1zmcBom46547xUH1Eygdqhqw1z1ZstkDbTHXQciXi9", + "chaincode": + "c5d3a4bb9725a2c64a14ab9157f256595fe585cd7f7650ce1ffc7d4473198ac7", + "finger_print": "562eba3c", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "f3aab04c" + }, + { + "private": + "xprv3TmsMSsrFvtKd1WdB1MAQ4AsEiEKoiwygVL1G6Vpb2SffDNxGP7Y6hrsm14YyGB8SEko2Hrkv1AbwPGb8Sbq7LHstZ4KVTS7QCELvvJuZeVcEvNrWKLK1c9Dr5nKT52qK9ELm6GuRtw998Jx8hHLYxE", + "public": + "xpub6Hvv5AstKJTWAXQTxx1Rt7xNXG989mkMbV3SdGg4SMPEkhXFC1bovA4Yhvhnc18nJGpZSefNs5AzRGgs1PRgo5fvpi7XBVroyEiyHKrAUxS", + "chaincode": + "3c9913ea51914cea7e4a1c39ef424b4e6207c4c2e78d60aa2c1d5282a3cedbd2", + "finger_print": "de8f30d5", + "index": 5, + "depth": 6, + "parent_finger_print": "562eba3c" + }, + { + "private": + "xprv3UdZRWWaNqhfRRQWks6seYofmDBbG5ZnpEnXXiSJsiPxWAGnywaNXKgfNwSLwKaHcnaZQQ288xwHK14Si3o4hRGbfj5Bf6zwbJhJoyiNewoE9Gde15g2NWPCYW3zCkzQ6FJUyni5Hrhcv6Dxb94Cm9E", + "public": + "xpub6LpBz6uFe5W4ZzfUURzkswp3DsjWYZpgmr1Qzz8WTnvCeJWrayQboDsXFxMC5fkq9QrQc9UWtdZjQf7iVB6UVBCqsZsLirn623J9tLdebWH", + "chaincode": + "3d4df8295d7ea16398d3bb8233dd1da429d0e7e8b65383b2ea1440be2bd79729", + "finger_print": "1715d1f8", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "de8f30d5" + }, + { + "private": + "xprv3UkicdNNgT8CvZDUTbUeF2AtEvWLRKpr83ch9fxU7as5safbu3NwtXPoB6Nx1Rh3JHftxP7XVD7VhCfk4mZMcE5RyvbcB5qGLEyezuhbbGzWJRnazUFg4LYRJgzaRPYb1QsnzCdagPCGaWat9H6L1KW", + "public": + "xpub6MEHeNa9FHXhimcPr3avFadspntYpbqAGRh3VV6FpDYRz1J6WFgCVv8rG4Wmqaev3psnNoDUSPG8sjKvfKozPwtLc7H4hHL7q2taySWGmS1", + "chaincode": + "cb9c8ec75e41f9cba35e4135fec4a38414729b167f1477b3376cb12c0d16957b", + "finger_print": "b8f341e6", + "index": 7, + "depth": 8, + "parent_finger_print": "1715d1f8" + }, + { + "private": + "xprv3Vfdu9MbFpyuyXP5PwdbJmsg9G5ZExcP6AKxUUpRtcKkG1jDmsX7K2NUtHWBtuV6rozqzfPpQwdbDRES1mZqsnFq1fSMLTUoy9kBVtZyv3U2ty3AF3z8UmQcZkMLb5yksDrv8tHsten5ofFVnCLUzRD", + "public": + "xpub6QJRn7uhd7KjzCzNQ2f14jUXmYe7CZcsY7GtLKrVjCwyRQ9XEZTcpRaQY9QyaD1daduGz2Hro9qfm3dbfmRJuffw3VgTHJV59ZgMo3aamsr", + "chaincode": + "a06910183f9ac97e22fa878e2895819fe0d1fcc70ed2bb6220b82733f07adda2", + "finger_print": "f3e8d906", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "b8f341e6" + }, + { + "private": + "xprv3WMXKsmsJws7PaJjRCbw5wmia4njtPaB6PYU62c6Jev8XnPhGtX7abyJ47hJSexadNmn2jHcbD3QNtZyuZ2Q1XEWDiBcaqzMBFdqB9AZgNbrFQcQ438focs1uc47acaCeCQznAG5ZVUBViFZ28GLpsQ", + "public": + "xpub6SchTzZz5tq1vfCyAuPSoVjjSTSTmdGuSjctAasC5UJt5kQfcGE5bgB9ENCJgUFpqvjK9gE8V56325ZRnVm8n11DgwhCf1HtptcQyxWJvXH", + "chaincode": + "a257803dc14998abc8ba4d8aa788e700a57176af393d37b5c33609fdba5b7c65", + "finger_print": "2c3cf235", + "index": 9, + "depth": 10, + "parent_finger_print": "f3e8d906" + } + ] + }, + { + "seed": "1ae7cf2e45e7ac4fd7fd3989d9235b9b77b00daad761e40ba8bbb4a9ea10468e", + "private": + "xprv3QESAWYc9vDdZGtSyY3NqWndPgEEuDrg8j95SspSRaYsowzoezJJBxHifJ4p8qJwiwyU3ekAKohzcavKLRMf788rN9wAaGzinVN6BLvjnb1QZfDTAUSCEQuJrYD9jFTk1uoE38C3viiZdJvjnPHUWtU", + "public": + "xpub661MyMwAqRbcEa1kn8vqA9QDhxccqT93GKc3vfDyKv6H4fkNiquYjZUMjqjXVNyJMCX7YMvnhQFxR2uMRA6qVYMcMMhiQ8heFUFJoidRvh2", + "chaincode": + "02bc4a891818755b5b20d9258855261c59ab458e0579422834ceb7ce9dad1d24", + "finger_print": "47fbfe10", + "child": [ + { + "private": + "xprv3QwyG9PVdoyyMAC1sCUmrnAeHbJn4HQKEuWkMyYSywCX7gsJYHS6HjKy67AoShmCaWzfnowNXbWWFDsoptCSDJy4ici33pWAGouo5qfVmMbH9RxUCjEykJpbFgXP242AA8bkBiPTqN2zGyGfH1uVHeJ", + "public": + "xpub68RBiWaG23AP1LuRtB49DmECNAcrnP9nwmTw6ZbnhTPJmsWenzCxBVt6npTTVaAHGYAJj97TdCFppBDdB8z4DYEKK1sQQRjTKw9WruPHawv", + "chaincode": + "01e15f40d5f87d17597424dc7b3270365f3c25ecb2df5b3fc73a7431bc52b203", + "finger_print": "9dc54bfd", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "47fbfe10" + }, + { + "private": + "xprv3RhFjhRqxBwN2JbKfx3uff3mcXd2ALXpvD1Qex5VFhEAPiUCfqVVSNQZiXmGLnYgcwxguGvATH1Nyx8xcH6ZWjEtZt7bRTAWb8ysDji8ixYpH5FHEU3V4TC55y93LmgSgwgJcbzpFrxJbMezrgYz7w6", + "public": + "xpub6AvtjE2QskqCVwAsGXm1dKRnyz2s7rbcUfWQbCYuXWjzmf18MWeoEBxGbYwDzdP7s3rHdheBRLT2DK3cxTy7LpxBb4i1NTjFw2EXGpRwC5w", + "chaincode": + "6484c9dc665951d5a12be2d114000821b8944c1f4ac09b0284df9c46b0aca71c", + "finger_print": "7d156432", + "index": 1, + "depth": 2, + "parent_finger_print": "9dc54bfd" + }, + { + "private": + "xprv3SBY1GkhVPBLwJqbUTdyTrWMwTd7JQ9r2rUriHkL2NTeYeLueuxvhJvR9jGwW3eyVeMs9GpRs97g2yDmUtzi9BDc1oGfjpLsNZYAQ1SpxPbia45CfWuFDTBnzn1Wjwyum4XgqafEKuZBR8aLuywgZWf", + "public": + "xpub6Ca6N7kXcM2wZo9ErWs4ZDJF8wsqhwsvJ7G5DC5GEgvYvi88G87LU7Tf2b4r7bPe7zCEvmpkTrsaWmcUhFoHjMzuA1F7UAkQZrrx4oZQVzm", + "chaincode": + "ba6d920d746330211f4bebb444aae868aebe3818aca13891043c797f3e1ee25a", + "finger_print": "7be09f49", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "7d156432" + }, + { + "private": + "xprv3SjoWMkDLacmjTc436oXVy91txhrdshWNaJ6tZJ24KKttCTRjtmgDNXedWUMtJhkMbNUNa4oBcduDjMzL2V8AYfE4SWqbkurT7XmWamaM7XvaYYjEA9gA8gx4ZrER46EyMVzNV7U52WHiJ3Q96WsWN1", + "public": + "xpub6ESiQBTk18PYTe8mHjwrU7wpxGMhiAQc2n5vjdRZoLVcQxwPVVWqRLfhx7MJcBV9pJomtDnns74zqBsRyhDH2DYzTKs9MDULuLs96wVHiGP", + "chaincode": + "c0b6f672303edf17e420b8911d3ea00180998fd6ff174901a3e4ed9ee1117e81", + "finger_print": "a0132a1b", + "index": 3, + "depth": 4, + "parent_finger_print": "7be09f49" + }, + { + "private": + "xprv3TNok5c3wWKCbb2VHVnkMyDRnMBFkg9i3rxKjzaYZ6ugsx7eaJn1MLbPCQx9SZSnugEhJe3mjrXpezTzzUz9cxfPkKLDQeVQ5ypiDxGtujpYDUrjkuK9r4pRxyCSkBaMcTW67zvxvadB37DnxRWw73m", + "public": + "xpub6GbHH1Z2uf7r3trwTSvrzZyLGwUVQBatR6FpMDoCBRTgzDtwuwQukoaNB1xy2StFLgUYaNJhHK46WNZwJqbfqeV7vkcSLi36rZ7979ZyeWN", + "chaincode": + "d5e80455980d8af2962642606c54549c6e23a66bb915bd8d5cc84c073eef698d", + "finger_print": "da474895", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "a0132a1b" + }, + { + "private": + "xprv3U4bcrBMn8TLsnfW66b9GxYFogfYFJozuE1nqLZHrqAQ9XujGmUrDRK9iNJjXtHMJWfuWzBCnnSc5je9w1hwvGkYZZUXUu2vKMHpvTv4QJDhQRisTJ66zfpwuMPAe4TuBmvCEpMWZjeGqMWYpuHNJrZ", + "public": + "xpub6JuEH4T35v6MjGHH5CYsW1WH9wCTKBrJWy6WGamy2zuKJJo91VsDF8ekhPtryYiMLWQQqvR1eWd9QgsK1TdzDT3hu2QAH1bFa1RHcEFyGu5", + "chaincode": + "bbb468089c4cba4ba2b20d026f424d27dd9ffe909f2b29975b383c93455bca30", + "finger_print": "ed2a5921", + "index": 5, + "depth": 6, + "parent_finger_print": "da474895" + }, + { + "private": + "xprv3UfQhyucPBgGRLAVeyTqkaa8eTEh1K4BpfHqMBJn5MtuxURKPvuFcTsAMzPivWWgp9rpaEHVVMZc3NSSJNCqgzpGotPr8u3YZYzVseGrDBGFYvASBM6dJsHfrbBdmkhMeQUDUzEbkLVhr7BAtmPzxLj", + "public": + "xpub6LvR8p2xvBBnRgTCFSEQDUM7ZJDaAjn5FTpmeUoFyvo21J7xWPt781FFNRr75aLcYcuP3QdCDWu9z5qUepX4r6VJY6vY4CcJ62XjN7w4Hba", + "chaincode": + "55ee7d966477f579f37cf75ccfb1e7f67ad2b3fb723ea59ae1577797770911f0", + "finger_print": "69ad509b", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "ed2a5921" + }, + { + "private": + "xprv3UwBGK3axKM95CKaYjscXGCwszVMSpffNLjBNg5Cks1eHk2rES1f9Eq49jKG5bDDFxQUUhj1hMgb9vkZqhKQeJNWYqcLWNvrExdVV1WL1P3ehEMmZ4GzF9bkP4szz9Nmtwxm5z6KP8N2LRdZMq1rKc7", + "public": + "xpub6MqVowgkjkRRFQqXZbh7trT6eJxDYUEYrPT5EnwjA2L6XVJqnDrYLsq7yBR18kaEV4JqAubZwMYHHRck87JKL5uFXkCzXNZjd9cP4G2jEVi", + "chaincode": + "40698f4e426c112235a45f6f1645db5bff8de06a8981e13873770dc4d9292769", + "finger_print": "823350fd", + "index": 7, + "depth": 8, + "parent_finger_print": "69ad509b" + }, + { + "private": + "xprv3VYhkh1YUmY4EdHMvczcejTBSRxsiNB6voAUQLQCPG6ZXZ6uV1LkJdPkMQx3mXwzLGiCwDrQFXJFAFiExVnWYVTNVwczfBL5sSTFiVBbLuipcsAE24AbhT1TDGRh1eEVuNwY6U49S8qgNPx3r4Kce1a", + "public": + "xpub6Pu631QmyUwU9yX6ZHwQBnQhfTUwNbgFcKeQy4JQmnqXWgoA5uN7hH9vngw3fgPVVe9hPgfnVYc3Z7WG2cXnbkRwguDxqSPGKeV3GLXU53Y", + "chaincode": + "fb16b0f0ecf085ad84bf275f3da1e9d9e665db23b84dee5c883a646b37383b3f", + "finger_print": "c6c14180", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "823350fd" + }, + { + "private": + "xprv3WFof8CaKkiiHJ3RSA4fioxw8VLXGLQn9H43cYhwdhVkMrEcDjcNquX4yfo3V32ziJMhaGAPPvL6hshfJpu2c2pyiRmZh8BMmLbY9u5w8GwoKeckMM1zBrLYrc9ETA4EVMA5zCbHtwP7Ed98gKz1aHU", + "public": + "xpub6SHSyKHf5ca3t9RVbdDck7djr6ZvV8z2kNJU9gAYJQx27yzTc4nm9ShCBn3CRSKbg9q6k7VNdEKZ3TV2MSQ5QzKKfX4som6vQZ7G7VFPWkd", + "chaincode": + "f8bcf449b000b31109423818773a23651017a5c438c6ab07195306d5719c007f", + "finger_print": "b6565fd9", + "index": 9, + "depth": 10, + "parent_finger_print": "c6c14180" + } + ] + }, + { + "seed": "934636092f17709b8fdcb28c0e649de04c5627b579c41695770dd93a4f1b8963", + "private": + "xprv3QESAWYc9vDdZMbA27PFsrRcvx3ACaUbEQe4FdnfH6QLaATK9PGwmp7h5xUcTEzynXWCzBP8FZ542NPBuw8rYgKKPzDm1aDGzuB3KNRLdR7sc5A9CjYrwLq5Y1CCPfMjbG69FYmWZmWbdydGT9mofgb", + "public": + "xpub661MyMwAqRbcEqqmhNBp8qRkWvTDbwqdUqir5ekb4A2biGUj9fW3xYWLvowDGJyMcFi6hxgxesRt5bxUDod1dXrcxixsSQA4XahA4BiUUgo", + "chaincode": + "1e253bbc9e106030d109333d9dbb2d59b18a3e87ec5ae0a25984fff56461d4e4", + "finger_print": "d9446f15", + "child": [ + { + "private": + "xprv3RGNPV5qgG8ETJBdDyJohDCj7ayeKkzeo1u5W3h38jJSha9pdWUrK9iMyhWwSos5McukSRiGyvMLboTKLA7Fx8yUoz6sj9rqhjVcAry2zTaTNqhxERVZaFiexhmzMrV1N99d7Tzdyf8i4wVzgfUMQjo", + "public": + "xpub69V7z4gqqtthsxhvzfBfa72xDvyYFwVbPk4hrq5oRzeXGcvqSWjERV42B5knnsCAfTE8vBZXbgEMvGaAemhzCK6XDz1dDZZPwQLxyoMa3km", + "chaincode": + "265a9e93e93b510e1579616c9044de71339e3d4c085ea97a2b91182418775a1a", + "finger_print": "bff0fb81", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "d9446f15" + }, + { + "private": + "xprv3Rmaj3sC1dy4QgLirn7vzTqLFi8FFPDAhcFuGXgMU9b72xnqRKTZJgK6yhhFzkS7Jjkw9PSJWdoFRVgMEiySx6nYB5WLXE9oQDA64sSq5GDPaR6szyNvZjnUC8oRRrQrXAkYwFi4yFuw8trKt43f4xF", + "public": + "xpub6BBTdeB1xVVwtkMzLrtAhrdxDVTbVXKMEngbuuKZv9f2oPZM3VqFT4TzUG2MtLXA789ansVrbRzYG8mkAyg1gk8KByvarDLAUJXizws2faC", + "chaincode": + "eb0d87b6555aeb3392a596dbc6f181d10fd1dce41c6d03f116c4625bf7d337c5", + "finger_print": "191041da", + "index": 1, + "depth": 2, + "parent_finger_print": "bff0fb81" + }, + { + "private": + "xprv3RxsLoj5HLzhziUcHWS5PbvR5hDXX3qW1rrYStQCAQfwp4fNFUXvNYBwAfYFeYYP4Hta38QF522QSuaSB8FS4jdZWJQkRPWu6B6joHYaNfqkSS5TxiY7jcGi2nazgojuJ8J73ZgcSWgPjrPkzx8AaxE", + "public": + "xpub6BqTGW619kMXqaokwGcPpLYHgBnaDvesPvkJ16PGz4Rwe9ctQMoScjorp6KbQ9jcYm5YFk7f5g1nYHgodmDmrnKyzj2DogPXYV7dpxLg55s", + "chaincode": + "801d24a828349c39b3093f4ea5bb0125be0428255df4f1e29b03ee899d6b9d72", + "finger_print": "aff4d4df", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "191041da" + }, + { + "private": + "xprv3SrQ2zKR8ihjhWxdZarQEdVDZZKyqfMxiE2ShDSnJzkHaeduxsGgNT8Qzto5y8B41vnssrjNtQqQaxHLgTx2pjQVK4A1uTwbfC6SHFkNj19Fh7po8TqRTVbJW97B4HUqKEAjWtrK4ymjQ3NcRkfnecj", + "public": + "xpub6Epv737jhsTQ81B8iUGZyh27qiXbEFSn3BXzj64WY2L2Qk2X5wYtRYmMgYeFYMeV4WzTSF96VK4qidLvKNZEH2Pw5qWtDVet28kJv6XZtgE", + "chaincode": + "2845f749fc326e967052010d279978b14ae9863da06d18fe58d43265713d56f9", + "finger_print": "e2dbd128", + "index": 3, + "depth": 4, + "parent_finger_print": "aff4d4df" + }, + { + "private": + "xprv3TXGHGAHNTd8nF96gHzR9jQ9LFeGE8KtVUyX77Srouj77buNxX7QUQk7mqEsqfsu3JbkwSRosqbmveJcE9ofuWXdNsaBDm1V7118m2HWNBtbF99E3QXVmahTYLiQtvdgjqPS7757y259YiQYRYQcTbB", + "public": + "xpub6H5kaE5xcDyNRyUR9ijJzMHkxaQF9N8toBYXYfkQ88DYihVVKRG76cMKBHcr62pjXXYRkgwTs8258nptTno6umomwUJjkDKfLdy2gCC2Pec", + "chaincode": + "9845e896326b6089a36096f0c811162e4789a6898b169f4bcb0b4d4542a69c1b", + "finger_print": "6d6a3bfd", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "e2dbd128" + }, + { + "private": + "xprv3Tpozv7nkyNpo8NAZZFcQ2SM913Tv7dY9BKsKpyB14opBuWct44PU8FdJ9cy3HdUWPgc76HDGH6HRZh6hBTvCoxQX4h9ihcLXXxCwdF1VhPRoBYncRj7HRJiokqLYf78i68BgY6PjCwaFSiuPjt4QbC", + "public": + "xpub6J6pX2LvMapbvvNbxKPQwjZo6HBiy1iduPiyUwTfPLGxX9g6s1vGzdeiumUW2qR6PexdvHyMEeQRucnj4gV2N3vVQcMxtewgkoWsdPPMGRk", + "chaincode": + "7a4899fccfc3b8d750b2c53bfb091a48f5f6385c84f92e4bfa0766b624e53e71", + "finger_print": "31125a51", + "index": 5, + "depth": 6, + "parent_finger_print": "6d6a3bfd" + }, + { + "private": + "xprv3UFb8SJ3nWaJrQngCeE9gdK1aNKpWGLqyFwRDzDcfgxfETM2zJLGnWeVJdUX28KjiJuHLZh3XYyfW62ZV1cikDpMxBxpkEnyu6rZN5nToy3n1CFxg92zYY7gB6YK2WMFboMe9vBW3ZvcphPWEx1kYDh", + "public": + "xpub6KYEKz7pkqsvJDfV6zreAkYE2Aa5fcv8kkeFohwNsJZbwF2jXqXG3tnZW8Sw4oaGghCj8uzWi17Lx6Nix2eb4x9pc1Y6jv7QeRYnCXhGeut", + "chaincode": + "eff04141291a0e685fc6e1a2cbf846673a7d9d310ae9a1dc1453f263d9499234", + "finger_print": "c0909b67", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "31125a51" + }, + { + "private": + "xprv3V8BUD9sohHxdipNuYS5h3uG9WufVwFoAWsnN6zti4nykazFKrix3mQeYF4VJAP97pfML2No5sVSHip3UAT1jD5HkUM1vXb1AwdQohpB9y4iN6VufsYcTmypetTnd1Stqk4yN6iMaExM2UymB33maG8", + "public": + "xpub6NUYCZjxGtCFVbmdGCzYchzTbwGLAZTLuNnC76DejDUZzgigK55ncGQCAu8rjAJFtDugnqJ1hHydDzMKSicgdVQR9oDPFQeP9xu6JtYxWaw", + "chaincode": + "6e4d5316d694531b1b2a164c3e9509aac5b6843ee8fda65a617db4c2e2405446", + "finger_print": "1c068785", + "index": 7, + "depth": 8, + "parent_finger_print": "c0909b67" + }, + { + "private": + "xprv3VKmGCTkZ6CeNWnMPBy22jNtAq9YTbmWHWszdozjddNhheYrwakTBhcHzzM91ob4ewGkJpngWzcNfMYiES6Ad57cGtsJDRyRtpw4B4mxD1JqPM9xHotJcXHrLowxYGmku5rAueHkFLeQkghCCGkEsc7", + "public": + "xpub6P9Xf3M9EfvpyA9KqmZiL8q6Qxo7CaBR18mcVKUZsyxyUgXByWH9k9HiAsEDvcqzF5cwQnd5KipfdYc7sPPyGkcrTinHqkqqKuHXomhoUae", + "chaincode": + "844596a5c72cc1396cd3ed6adda2ecf7bd4c973cdb5052a29dfd2d20557e72e4", + "finger_print": "354ce9a7", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "1c068785" + }, + { + "private": + "xprv3VwPGj7hHecXLAxmGGJEKMAbPaEmL9Bgt6jwGiEeHXNc2NhjLxfgKzmfgMq3h5HEi6A34XtegHs6JBwBWkgzyZQhcktPfxLsYmdpvPepxdwBEZr2CtUrnTChmrD7j1EA7jY66NxSTVRRYcBDHkxcG5f", + "public": + "xpub6RDSTprSP3HJHUc8ebxsskvvZLYxhG7mCwkxPEskpZddetSJRDoVGBgaQiFRHjs8zsV5jVRdEdS8tsJDMqSqrcfzptPfh3QeQYy7465Pe9N", + "chaincode": + "48e55908589e737eba14ce8c01cb48e0d07eb3df714ab86ed522d32be4d2c79f", + "finger_print": "4bbdfc4c", + "index": 9, + "depth": 10, + "parent_finger_print": "354ce9a7" + } + ] + }, + { + "seed": "df8e3972622c94678d802c4e5324967fa2e1c1e7f148498076996e2ea60772a8", + "private": + "xprv3QESAWYc9vDdZhTmoDAdcZXqAZaBJGJeM8gg5d1nBJBaNrkVTWgwPPogtFrRgmdg4uSQfekYwfKKDv1uC7uYZ981SRVCtHmd2i6pPQhiPkU2e2753jxPF3W5VLSPVjKKvVP7e9cxHWwXojAEMJ2Kzdd", + "public": + "xpub661MyMwAqRbcFzjpqiG4wGpS9uvFMkZkZ7TsBNeDNEF7qiBZEt2sKJXCzwagBGRBhmFZyWRx9gjkRbqALscfMUVbYnowfDCjJw58Rjm8Abm", + "chaincode": + "91feccf7bdbfbfb28a382a38f1d2687b742181f2fc2090daf9869a81da48681d", + "finger_print": "3574d67a", + "child": [ + { + "private": + "xprv3QudAtCYtkh45DPNSUd3Cu9BY82kJRoj5EQjxyquA2JDjmd5PostTwSZrL3jwi5RDcNJkmzFvaU9djT7GS5pKRDKMN5PTVRpknwavYRdcxbx3Ve9Mo963tWUncGjx9wmaXiNXbVPYfnJCtMVJdksQ3E", + "public": + "xpub68HHbRU6Qkhq3mySNP5QnvLBf7i6cgotAPcxW3aNCLnt2HxCyUJv8oPqbAgaGXRncQysnJAPsj8LPr3oBkrujX4i8AvgdJRYfy7C5fzGMYS", + "chaincode": + "de822fb6695cfe46c1941a813e74ca3093b0073323dd6571cb50d8f64bfeaf6d", + "finger_print": "57ea8462", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "3574d67a" + }, + { + "private": + "xprv3RYQeHtt2bMZyxGnURnAazc3LxwxxuqEpokSsxs9wwcSxvpJyk5r4oSwBAc19adY5utKWLfAT6rEoSnwuCkqKxiyFyDcrPLY7GV6SUc6wSni1Rf11WJYQjUCWFhPMz6t87Vcu6JKrtp83xnyZUZTBdM", + "public": + "xpub6AR7W8pCuefQF9dNRkFHd3kjQnPZVqCqnTxT2uZrXmWTb9pDurxEfD6RyXGvsXVrfxSwyHGE1q4PFTR8AcqDLtd8wSXvfHdwcEfDAjNVCCa", + "chaincode": + "db6bdc8431051edb5015866fcfe452909d0c61d999d494a2f3e114ed1a4d2198", + "finger_print": "5068c311", + "index": 1, + "depth": 2, + "parent_finger_print": "57ea8462" + }, + { + "private": + "xprv3S5ss9WtbgJ2feTm7xpGy7k2xCU6FDYC6sLDbHwu2EqvkN1qj6LyuRnSkGLW4k3B9W3dRxBFqpVp6tvN9iCS5ME9NZbSBH1VHrCAMyUViMHhFc7xcRobc7QwR3eHd3GvTNsPrnzBA9xpbKLSy98Loig", + "public": + "xpub6CF3kGrFToV5bTmjUnr2fW4F6ZGPn6prwVeYmzBEwbjZYCu2G7GxvKkvqUL2mfWQFTZtw2XbkY3fU7kGi6knxT5NirMVJX9o6KsftiknBym", + "chaincode": + "abf87e713998c3d601ddd1599768ec997aff477bf0ecf7441e938cc4dadc219b", + "finger_print": "2402c39a", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "5068c311" + }, + { + "private": + "xprv3SYg7V1s15Sz4kUsjqizyDVzkKXdBqsg72mkvUW1ZWHKwDG7EQwuJuJ4HWfcRQDx7W488WR9zA79vjAD8BobihQvqdMyMhkedWfs7mrRXasEzqSXLSLK1rFyWrYK6bourGaNTfBDpU75SDEn6CVjQhj", + "public": + "xpub6DoFotiJ5DjW9AgceFKQV4z5U93xctW6LdQGLCVN89HhQXC1Gwa8ccaBCM1bwfz8CcXHQskjhxf6M83Kyzm42L1SvU8V76wA9XXRgmxLQcC", + "chaincode": + "873a0fd8ce48f61741be907408e93f94a32506984738690eb7219ba6bb578382", + "finger_print": "dab0801f", + "index": 3, + "depth": 4, + "parent_finger_print": "2402c39a" + }, + { + "private": + "xprv3TWEH2L8NcY5TnFGZZ7Tpt3poWtrbJGMgfFG3MHfoHRTDVsornS8iYQm8VdLkanf74qyo6ZQic8YESuj9TdHYk4QEDhQDZd3bDmXTZPzzfFPNWAcmTVJr4WqyvYAKEb7DaS33nrTqTuE7uBRoYCs5uF", + "public": + "xpub6H2GahXFMe3vsaWWcmCpEyuEsiM9FFYCmpj1ePfL1KU5jMdQ14BSjzMh33gX8HWDVyULdSzurr1RU2m2mLojuG1faA7auoJBWMweLEraTzn", + "chaincode": + "1a2f30ac73bdfe8d13db52c876bab69740e1f9caa7ea2f9ea8f00d6240a0f85c", + "finger_print": "de692d1e", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "dab0801f" + }, + { + "private": + "xprv3U57yKxo5mnjB9wo6dQAjuuRysVDeqMLuwgWMJbaoJcDkGaE2rBbyE4u6LXzwne7cwBfF3EfdmeMy4ceVHoZAnwHdPSHuCoJ3JZHRXStJAfkYNcd2UwDM3sLP3CrcKK6ifNbFcMxFTTJX9LEz5TqAyR", + "public": + "xpub6JvzTMtVVaya16mrtqCBk2JB35kRyBDWhigaTN3TBW94KCGPPowMn2suVs6oJhju7ygcgFEY3M868pBHqJvDcESfFiCaehPA4UcYBCuNokq", + "chaincode": + "fc7366b536a576a3007c9e9de241399ee3a064a2c7af6ecc481fbeba789a6c25", + "finger_print": "fd1e572b", + "index": 5, + "depth": 6, + "parent_finger_print": "de692d1e" + }, + { + "private": + "xprv3UhRtJmMRAxYC91BFKD7VeNSjD7YapRUWsZBg2j6E9Ka8kGXdt4PCMsaUDHLQiPnUP4xJtcmfzakD5av9rNwqrGVC2KXi6e4YRF8SvRZ1JNXtcbxKxJB5gC6VmHvcj3MwucvKGe13JtPFHaqz9KhFNZ", + "public": + "xpub6M3DbHHNhqWhWSxpxhG6jyehxEbpXRFKWYiqa4k1f3RSvNrJDsxDeGVkBcXxvZuqb3JgBCpMSUn5XFdRm78Y1KAVXiWjM3Suwna5GKxuWkU", + "chaincode": + "e5d316ff27d11e2f91b47d83c4932cb23361c91fcfbfa0064ac86b3e70211d36", + "finger_print": "9f65bce0", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "fd1e572b" + }, + { + "private": + "xprv3V3yrEdJcr8TXHNDALXmcB4oh5eyCd2sGgtCSs2Gk5RcCzep9459bbkRez37157m2Dek3wXLXoKQUAJKszqUZfg1Dteb25yJQNs39rW4WBkfgvH4pUrGonssBYsVFSgeBb1kZV4zjdzRrsMttUapzJH", + "public": + "xpub6NEQ6q8qcAaPZHHgGGU7jU16pKp7xLuqW4hWPsZBXPZUHUAvvd6nTxPjXnqwXwbCM93wJVHf2D8CL1hdaxzCoFNemJttyd3dSW3GRRFdyHN", + "chaincode": + "f36d804009820f136d6a29cbb7018d139833272b366b44253a9e9d4bb6716297", + "finger_print": "c3b20b21", + "index": 7, + "depth": 8, + "parent_finger_print": "9f65bce0" + }, + { + "private": + "xprv3VgzpqApMoFka8yEfXG1XwpY5TAADsEk7RP9qPs6S4J6CaHmc2Ehmjhp7UE3caETzgJpEes4VKs88YPcDyHD1CFURzLVFSd83FNgTsy2zZX41CHZTb23RJG6EZmfVv8q4PkH6ebcJH2g88CdP9N1SX6", + "public": + "xpub6QP1Tz9mCW7LCYeA4jsi74d8FH4quMHqAknF7wCpE3M2hhQaeZnwTgnrSGkqfAJrhNRJGL7ot5KCEAL5f3Py2ShYDkxEdQL2ySyQm9mnSuz", + "chaincode": + "74847fc67b200a7b9c4875468ed69df692140b740ec600884bd49b7893b4c82a", + "finger_print": "2fab4f4e", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "c3b20b21" + }, + { + "private": + "xprv3VvfuhdbB6cvPt4DahGRLUBXZYneBxusCpy9TFESwstownZ2KvnyMaMUMDYLSudh9Ag41ob6tJ9yHdBXxKT8izqkxdPskzy4PxGXS1MrFCR68AzKr9hexJMTy4au3rRk3ptkEaAZc7Y1rcTTYTe33BZ", + "public": + "xpub6RB3Dz8Xao9yuv7xypdhHNr39wGFdkhGuij3r56hvre2QV4BRGBW2buWHvTs2zJcLpajUTRNtYSx4TMHp2No6ZZr2WLDyf7fEbMX9Kizhgq", + "chaincode": + "2199528f2a8c14f6435b847173c307cb63e6399264353e24b5b9237d6783f522", + "finger_print": "280fa82d", + "index": 9, + "depth": 10, + "parent_finger_print": "2fab4f4e" + } + ] + }, + { + "seed": "8f3ee372eb13884d25c41791b1360db4fc76b74cfe1bef6ffada79eb1ed5048c", + "private": + "xprv3QESAWYc9vDdZwgn6N4wQ4etGFPZZ48QzVH5tTjVxNeYjrnbn73zKn9qVUpU92eTgFMe5ZsBom7oQg8My12U383tSKd7NNXsskdX8oFewS6EahnqDW2Cbk9FxjFPC1yWH8qSmqx2uu7jCW3nebXHgnW", + "public": + "xpub661MyMwAqRbcGpd3J488kWDNP1S2kNdBYi7GJ9D1JyMGobGVfuF65P9hVZ2cjHUtfdzgFeJRV58qMbMMA5MavrB5nyUqqmb3NnpgX6ne6Kp", + "chaincode": + "e4eab55990c08e23711be2018b1bcd23e913dc1c55f342b968005da5cb72421e", + "finger_print": "dab5e650", + "child": [ + { + "private": + "xprv3RGYzKukgFifSDWDdL6EySmzbxXsamzgmy5xNVmoP8A1Zzo9ERUN1kss7HdFzXYqMpqceiRL9QXCwbFS5mrDygtecvE2s8hUq8xTSuBcyBrUCfKS6Furx4omAwqxj4GdgHvyH6trMHdbTaKWKdmWpX1", + "public": + "xpub69VjfojFiyjtBdkAijoVdKPVq7Vt3GqGxtm517cD1Y6rNcmaPGgrHk7eVDeyJuCrqTKtroMq6z7nhgurVUGSxAHTyMT4CPRQrNybtwBaY6Z", + "chaincode": + "dc0eb99ce5d7a2ad337ad676d44e0d518c4bf37975bc4a5f2892567291ab4977", + "finger_print": "d6d8ea89", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "dab5e650" + }, + { + "private": + "xprv3RpUySdSnSNYAdkuP7nXvQYkc9BRNxtwCKrqYAYHTLS9ah5urS5q67Rqi8Jrzv4MFCdZtjQkSodrVFe5YPqiHM3Ccq2Use1rJtczFpf46K6jHrgAUzvrqSY9KHkYmD78GUhEMYB6RkYjuP2FcxW98Ku", + "public": + "xpub6BME1KTRbrhKyC5mP6zbD28sEfw4dy5fD89CyUAiqAK9XXcbgdfdJJrVz3jckJHwEtmGdBr9AWEcMCK5UTLNosk3W9KuRpM74jE4xHTsWmD", + "chaincode": + "fe6a349e409571a2cf5f90388b0ab3b342e3de30128f4a0b2c15d733c00b3af2", + "finger_print": "37e45990", + "index": 1, + "depth": 2, + "parent_finger_print": "d6d8ea89" + }, + { + "private": + "xprv3S2mnLLzZ8qFDrsAjhQZnLgQqdoUYmmtrxYomnezJQMWrQjMyxUpGzRaAfupjti32gupm7GwE6YC63Q7M9oKt1NRHEgkGaSCFFjBmsPoxjZDxyExH8Uw79XZoGS5WYEw3ok8vjEL7MusV89HiAB6TdF", + "public": + "xpub6C4bXu4DUep98XhRFyG6Jq6Q4w3mioWRePnJkvfLiWmUwHRzfhunsQZreYh32kaBsFBN5obhCNBkVCUSycEoeEH6vjrSMo5Wbv964S5DKSX", + "chaincode": + "c632769f91044b529780567cc2eb46e778eeb6431970d4c8a635df1d4a12bd15", + "finger_print": "e757effc", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "37e45990" + }, + { + "private": + "xprv3SyQryLF1bCf17R5JiMa8fVd933BPM8b3gGhPrRBZW7ZLc4bJ6qpZL4B5gz3Fd99NbQSp23fTQ34JdGpAqo4yid46fsCwzBbt95VfqV1PinnJbueWcJYV3Wocu8HSw7AyqKww1iqF7nbjKe75Z3tgN8", + "public": + "xpub6FEXcCMpvC39wbiMv272q2fUwmM8guZiLjA93xSMJ8xskN3i3ghyApT4CfNvtfKEWNzYEZ8bxdVWSpVcemMrHh9zsajnepEti7r6QyrcsYz", + "chaincode": + "715a08b5a605026bf132e8a856b24e07509eed08178a41c91eee1d5b2423362a", + "finger_print": "e8da88a4", + "index": 3, + "depth": 4, + "parent_finger_print": "e757effc" + }, + { + "private": + "xprv3TY2KEzKDhyHSye6Fbw4SqYyYQUzMzYxdRvKRgPcaCDMyK8Pwa5xH8jKauCXYJ86k4zBNQkaL7R2LVq78wErbwpgAFrwPZT2rDKL63pFSxTEyPsQzFoVNqWdBwcPWeK15Fp5BD48T8ATfUsQ52qu4go", + "public": + "xpub6H8JoguQ14vuvgvDWivBTNfeRYmJyyXticF1rjCXo6gtBXah1DdZ3J4WfLNrViYeAMvB5aBguEpExnpoeGTTSA5JXJcBRR4qzpEdEHv3T6a", + "chaincode": + "040e320b1007aa048e857cce9bde03b39ab877505526f79528cf9110f6c8a0c1", + "finger_print": "fb909c84", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "e8da88a4" + }, + { + "private": + "xprv3U8p7Wa7X249F5fJ5s1dNKJynBEeqaS5E1NkfDBAAJvRKxKsmbsjK2ye3Rmg2VrK4KqBUCXDMYjC2yYCtS7RuFVKNRff91CALb236XhMc5U6AgJ8s6jnKVBudmfHU1XXBhS7jsNa2Zg7RngX2J3b3eB", + "public": + "xpub6K9RKRXKfV6btjHQXRwK9TrY59hsyXbu9EsW8xeKSccMyxG3h2bKbsKmSSiFcsJafvWZJ4pqcVz2apokov18nUZZHEagPoY2H8ZfYUbwy63", + "chaincode": + "e28c05670d112250e62ec6a96b447119e972b22511ba992cbe1bfdcf7ec14350", + "finger_print": "9cd037a5", + "index": 5, + "depth": 6, + "parent_finger_print": "fb909c84" + }, + { + "private": + "xprv3UVEWTJSXpssPMBTqFncfu4MUx8dfzLBwNhnjya8YM26nMAGFcLQsFGtvxzL34FrSwyCzPWbdP6kYczRNM4qopdL9dR5fuayTcLWnsWFnsaqWE3dRDgJ1nswYmHzmZbzENdHy9hizS11kGmtyiKNViR", + "public": + "xpub6LLAMDZt5seFWM6dPp1AgzHUdQge9DHj9DiqNs127JQEVEDELAFsrqH6944V8eSppX79K3QFtTAoWhuJ6PLTNWoMtBDuMtr15VvDvFxKf1n", + "chaincode": + "1c62987f61bf088a81eb7b0e7318a951e9be607281cd774cb4aed2deb4a55c81", + "finger_print": "af44cb81", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "9cd037a5" + }, + { + "private": + "xprv3V5zRipVerrb3SvKQVVQk27bZTBo6VHnbLHSch1nUTrMutR62XeAAhoeUPX5xHTFfbx7eoZecqYWHwaYvM3zJJqbvBqAJCzqzUGwY9d7aRDf2AycRTF3fmFfqUtSdLpdgkHVohhk3agpdqgevrzrpQJ", + "public": + "xpub6NMAY2DkmqQWuckvApjdSvWy3FsmuiifuaN7yuRMLbS8m8BSNAsunSZEqLsBr5b6HyWtpk6UijcYbdb1BujnyKiCuiGDjGd5cxTaajbtapM", + "chaincode": + "411be650f2565737d44fc0a97a321310e526f679642c0311276845bbacaf34a7", + "finger_print": "cfc70bf8", + "index": 7, + "depth": 8, + "parent_finger_print": "af44cb81" + }, + { + "private": + "xprv3ViXa1nR2Ry3LhGzSTzLds7Noq1fmcd1RMFjggcn2kdJpmAehVcaMHanMaVz9RqEg2a5twqx9rv7vyXNe4T6d1VGv4Sb91nAVqZTAkUeLSf6K9tM5nqHsYeNN83fHrRWJTRPGPvrgVbMU4vpk2SDEfH", + "public": + "xpub6QUACwydbx8qgfijnBBaAYDWBQxeErcXdTn1FvWtJ95uaRfpseEs7REn7JVsb4rnNDBAMH3L6uncvVBEKiYaMNUyuw5UMYnjX9fGq8YJQwb", + "chaincode": + "c55d8bda93347f98696cec9ad92916c39c0a8867f6fac402bcc6354aef1b64de", + "finger_print": "5ad383d3", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "cfc70bf8" + }, + { + "private": + "xprv3W28uSAj8Q4VhcfcJTDAcz2LJ24RGZ968NMaYKyDYihwyVD1HU7bBn5hVV9c8pDQ5EvDurRB4k56WhJzRH74MTeB5EkQBug6T2pkCSd2ZZvUprcEQof5mCJdWiuzAZwAfK1R3CKdg1kXtKiiydAFka5", + "public": + "xpub6RVSKt5ggi3crRznJtDMzfvfxCD22vxg2ZVuuy2bMwiy7GJp3ifQCfXT3BGMpDXFmpHhqsvKMFXB96qJ9qaifpqPu18JtRQYJeKcunSZJGC", + "chaincode": + "80c7bbf69ec57a2555026e75b5eaa69cd5c6c360047d2a864fa1263f8c9245c6", + "finger_print": "b9c2fffc", + "index": 9, + "depth": 10, + "parent_finger_print": "5ad383d3" + } + ] + }, + { + "seed": "ecd065f7ffd274ded6e68e6929c0239309d53c8bb52872e446b0243c58d29315", + "private": + "xprv3QESAWYc9vDdZPx3vyYiVp1kSKHesjivwjPH4mPPxuChQT9bXydBWrheiyHbGPX1gWEWKVQTyzE4ntAxvvNyrPsc4zogCWx1gy9WyVb9uck1SpvgaooaxV9qdxbrnyMZuy8yXpqhxZzW7c6dbfrrmyk", + "public": + "xpub661MyMwAqRbcEynbpbCHpbSGZGA1a5j7RTQUpxZ7fJ1tqvgUEUzYDsEuxqJWYF4EEKgQ3ZJjs4t2d5PEyt6zeMUfrHATa2TNMxW6MwQG2oy", + "chaincode": + "2be7a13517f26ae8155390afc626204c61a4495f90813317f22ec0dc02e1930d", + "finger_print": "34e09d2d", + "child": [ + { + "private": + "xprv3QuYvDe17XaV9LttjPaggxCLkqSQd78UTZuc6NrP8X28KiESfQrxyTbUCnwW23csQ9XKjbWSrCjmVSzKjJjnhpNYizrmxEJJpYVrEVGviJW6tUxb5h2ZCBvCmUrqhbCFaErLzQkRoPiKAQzAAT8o4rv", + "public": + "xpub68H3H5HmoHi2Nnq5wLCjzj8taT3C5rfRQTsxcB4S3H9W8itN6pAL16j1sz6ZaszoMHqXxq9FXsUxGnwG6cFzLcEwPxAVEoGWuLXxtVCs6ce", + "chaincode": + "8b264abd68236cd8c433d628c7e9cc5d65052a51570e0de2e40c4715a161403a", + "finger_print": "cfcdaa9e", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "34e09d2d" + }, + { + "private": + "xprv3RobEb1M1ymng1HjgXHDy2eGmZGVCw2RCKjyGaanct536JmUuG4oreN3gSbW3VzV3B4o1TwsCTdk6AXiSikaEYVwZBvohHNfujZxeWQMugeEXuqPM6c17vyAHBQVg1da7FCvCNd94oMB8u9UEM5dFoE", + "public": + "xpub6BJDqYCX6d5G8cpNwNHHGhuMW26rFcmrrthz8UBHZjiK96YX7qL9ffA7jmTSDW3z1K8VohqHsDmgHxpo6PTzQzcUqEUiWTXzVVcVketQQLb", + "chaincode": + "91a97350936da5c85f338495e0048a2846281449ee58a27f86c8e0807adb1445", + "finger_print": "9c4ecec2", + "index": 1, + "depth": 2, + "parent_finger_print": "cfcdaa9e" + }, + { + "private": + "xprv3SFVMR8SVXL7yhCtLZwNxDPMtVwGLLP4x4wkfMtBCPLMWfEEUoSkJigtVpmSCLENeseCF95ZoxyjXPWkDYwMfHrc9VLu7nKQvbm7Hb8gNmZHXast1Udwf4kguuBUcubwax86J9HMfpW9SC3oB2xTrA8", + "public": + "xpub6CoQR8K56iQHHRHehYXEFe4GvzTjzyJ7wS836SEKB94cFeHd2VKugW3U8BPqRKvKPPmtwBZwz9V46c8Rnah7cmX9BxSEfDZZxpgULmRWvR3", + "chaincode": + "88d690e6a65032dcf873d37ed974dd9880f38f3b8996c71559d7b4d183a07b66", + "finger_print": "d8224916", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "9c4ecec2" + }, + { + "private": + "xprv3SwV9Q8FVpnxhDtznVgzmJZa4z95orLJeFKaQMCN2jKZMnAuDEKa1GRthY84qMkxUa7u3wW5bQHLAqhYzkGx3bdJn3fz8vHjr1mC5nvKakMoVkfU5UJRVGe2ifEZU5YJYRRY5LZb3v3vPYVSjoLTeFY", + "public": + "xpub6F83Y1bpUoqcG7x93cFkYew2gZH6z89MU3gQ3xUxACKHERgLYfEahuJ26tTf8XT62gZ3psxxXg3FRzYnwAeWzYL4GfM4MsSPbB3omWo6Vca", + "chaincode": + "fda8e7a4f2482b7eb37343b5dba4ab955214d7d3d9ded110986e0dfda4780469", + "finger_print": "c8429215", + "index": 3, + "depth": 4, + "parent_finger_print": "d8224916" + }, + { + "private": + "xprv3TTtujqaWjLkBY8Q5cbJgyixdL6r1uiDb5XK7JwqE5KYzoBecnemvwwRqyJCjB5oJqgpdATo1H5EHBCTBgLriyxsV4T3grcTACJMkM1UWddtS51LWGnUme6mzHor72Z2HcnDtzQY3a82sH1HonPLSRj", + "public": + "xpub6GtQtvLNpPEg3rjw1dZbzj893QJSZtE5pxphUK7NXYSEpzU8dnmuxe8ZjeHMVmeNwm9vb9a9GStNWQe23ZZT35Qa3PFwqg6BE2zadRr9miL", + "chaincode": + "746a46911f2d63f87ab16c66482976b21fa3a116f80c9e302cc816fd750c454e", + "finger_print": "e384c576", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "c8429215" + }, + { + "private": + "xprv3U5mVM1oDqVEKBjwZvdjp2Ka5rWFZpmFM9kPKN4Du7zygrCgP9eMenEsccHbuKBVgeQLbQXQzKhCNhXuDEbpw1DnZik27sMqrbwcaREFiuET6VUFKmwYvGbqXnxzZbcTpTUFmRVetuDNxscFzm7DA4Z", + "public": + "xpub6JyAkVRqZiuEN2cQpWN75RwKn5yXRhyNiY6PrEVav5te1Pn2qw1CY5KQjks2W34uyMDz1kToNZYkM5oEAGh55NqttWHeXyenft36TBzUcBF", + "chaincode": + "bcc76c8edd4224a3bb469fe9df1e9d59cac93dc95d3ee9ba390f6eeb559e4d85", + "finger_print": "625f86b0", + "index": 5, + "depth": 6, + "parent_finger_print": "e384c576" + }, + { + "private": + "xprv3UMqFogpeWWVPgRAKDRzsgyjDM9E13BwXwxPeAvzpNmvF1cVVNb1Qpoc23bxPjy8Zw7ubimoGUbHt7661Ttf4fbThmjXeTkUehWa4cPxhzbRPw17nLTUFk4SCVBCywSUUsVePZZeSCnTmokqCDVgs7t", + "public": + "xpub6KuFMdMrRj3hjRfEXM8AKbVgkBajRivuQZGFLA55gcdVZUdUqX1Q4n8J5U6mVvdgwUX96U1SnwYMvqQH2tvtPvVbCehFnJxbgPo1mMYtHVd", + "chaincode": + "11343ce4c0c2e5323e14d978e9a8c29f8e620976028dcc70e838a2fba48dc437", + "finger_print": "531794c0", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "625f86b0" + }, + { + "private": + "xprv3UtKNiDTTWRaJje6DohiXBjm9eBMXgib6MbscqSR6ABWSwXexhT8XZx4hdTHbVL8PvSesnPA3op43LTU42T6z42UysPp6wY7hqKRRgS4zkhUJJJQFz2CzTZC4GRP35sScZttnWprWLXG3Aww3dnxavo", + "public": + "xpub6MfsNkQLpXJJDXx7DWAAub7QUeUWoUevJCFj5ZyGFpTRa2LEarVdzRcqPX1bxE47nouHF8dcz7rmgyKQWMoBWXiG5MejTPP9pXEegusx2Ca", + "chaincode": + "c4c62bfeb9258fb47105f7855c2a9f141a4a63ba541805f4601e75dd3ca40f57", + "finger_print": "81a27d95", + "index": 7, + "depth": 8, + "parent_finger_print": "531794c0" + }, + { + "private": + "xprv3VYdbgRgWv921VGjRWaQn83uCRR3eny1mUi24WnNW5YadFZGf5gGri7QGxbRy8owqpuscJ3PaXmPBV9dwPjvdNS3tnLkYR7svJnGcT3A2kqmSo4jzVTmeEAdEquKNH4BDC58zgryfJZSAqW3APBZDZ3", + "public": + "xpub6Ptr3hJXUokgoYs4kZcQjgZBjc8R8zJfwMnY1a9d7tzxJaenjdX6hS4h4XDF7xmhA4zuUr1CWh9Uw8uYXtayz5ZC9A2XPEP6WEWUvkP6Mk6", + "chaincode": + "19fe35802cf17e7f82ff3d765337c4754618e5d3951751b06eadc3ac0bb52f7c", + "finger_print": "c20f3cba", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "81a27d95" + }, + { + "private": + "xprv3WFDAoPHgKpmuDcD62fy5ueRML3YDLhL3vv7GBj34oP12VLChLV9QB4BCUgEAUQYa1EoXmzMTFTA8DqsaZcsnsXTKySJ44HRpnSfAwwWyGZbV3XorNt6SprbMP9m8ftfvyhnHK9L1ytE9ScQ7G5e6aK", + "public": + "xpub6SFSsd99mM3AhueFLsLVYSMkChJWK45LvCkS16jWBMTWY6sVrGBKJn9cWhK7xUHVyx8QMCZkVLR99ReXzaacwbWqMrKVJB7dgr7fnHRMKq5", + "chaincode": + "e33109a4381ac6fef584b005faaae61e334d3d6c3fc2e36b3d1176dc714f291f", + "finger_print": "80e11593", + "index": 9, + "depth": 10, + "parent_finger_print": "c20f3cba" + } + ] + }, + { + "seed": "baa698d929db3fbd7aeb192d1a0c81ef0e1e9e72da7de0345f8f1bf8a12dbef1", + "private": + "xprv3QESAWYc9vDdZsSwkjr8D3TbpqecpXfKGZj3CCFkLs3LfcnESGZuGH2EZJuniWfpZ2rkjDbQJSC33F61Pj5bH8NWh5k7ikdP4mTfyiqdmbR5Z57QT4oPBhwMY7CHnan2wQJTEKbuZe8XbrvoHRP6QuN", + "public": + "xpub661MyMwAqRbcGaMVT1xX7fasPEsKvihi57TPCYeTjyprxWri5uNBzshVq6sHzFGp8jZ2FHbjh4j8bUkHg7jnEeeEBe6S47yN3fBA6wbFnSE", + "chaincode": + "cc3541f27bd675cc95918367a96022a878ec02d552e5a9f81ed2780977736042", + "finger_print": "b0ee8565", + "child": [ + { + "private": + "xprv3RBG7kBnRKrnioBnCevckDqPH4To4HqaxamxDFUZDwA1qSGvAuJ4r216WPVxxw3h1T9pkrpLLNNMEVAQDwSi9gqVcUfzddkTBBvwNMSrXL9Q2pPNaYmMZGFJ9czveKvrKXiFqHvwZhjFjFKaMC3qhNb", + "public": + "xpub69BveSVsobvgaWbr66XesiyaLLcdd41rfVLXDaL8V6CghTrZsa5Ezdh8p26xqkV5ytALbisG476CScqSgUcNpBXRWy7RfwwQDtmjGDweUsx", + "chaincode": + "a08e7a500ba3615f124860aaf0862f8cd7096c4b6757e0ec0451d66b21b06a01", + "finger_print": "aec365c3", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "b0ee8565" + }, + { + "private": + "xprv3RjQYs4KgykPtJL8ZYqUWq7USF5GU62nPVoevXFay7Gpi8h82676adb8Q1fmLMEfGsGnVT7E88bBDgkvkwNgxf3kRc2osvWNbp4GMHAfGiSw5jLmWeyRwKpCRv6tUabMSWpV99YHh8sUdMJPeywaVfZ", + "public": + "xpub6B48tRvPDiTxF7V98bZb2y9faLzgYeQeD9nLExBfon81ykLc4ppQB9eGy2AiekqrAMgPBmS1CLs9DeCbsBuBWwpuEWAduuPJ4r3HVuovFRi", + "chaincode": + "3e6b5a372c1016ebd7cdfec72c510b3827a045bb53ce17d33bebbfee931c30c6", + "finger_print": "6170c25f", + "index": 1, + "depth": 2, + "parent_finger_print": "aec365c3" + }, + { + "private": + "xprv3S82xnN9GSj5Q4y5ffFEPhQzS2dgvwexb5BVg1K5gY6BUPGc3gpbjLE6hcSa2qfeQz4wiSTtfXXVVKwotHaYkduy3XtJ4SPz6qgH7zGCobFqh2QxT5ZdwX6rkm5DKbsjaGBDSU3wfpyL89jHZK29Rn4", + "public": + "xpub6CNJrvJax2CEAmCfBLR1TCWF8f23PGPp1rcwUHvjapp92UNMkh5XQMgvTBcDW47TWwC5yDRzaPBrjtB3YxwZq5NaNEvfJV5WWLRuVNrA7qy", + "chaincode": + "b71bcec151bcd040533960146de918d6884e4ae44d6a00ffecc5855ae2d5a98f", + "finger_print": "ff3dfec5", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "6170c25f" + }, + { + "private": + "xprv3T2SQG9E3vpUo7Sr36HCfXTZHJ3Xao24E3k1sYuHvRDxDMYF3rHd37B9Bd844ufUPamS8PESCkmw13m9q5s8UxpiwVhWbDipTvkwty5S7QBjVaKNQKdLHZwxzsuWhpoatGzzZxbEJkX8GF93pgCytAV", + "public": + "xpub6FQiXUQhUSwVuaWbVFXSSMTqRHfwq1taJc2PRVEFJRZWKTfxdRpJDFmuYUgrebe3xKRSrP3icyCTxKQ2j7Uuud3v7Cc2kirqfAdVhn1eo14", + "chaincode": + "6c3b52e0a80831db95be2717aa9da17a852818081ef549b9e9d79f06fbb1f982", + "finger_print": "60264269", + "index": 3, + "depth": 4, + "parent_finger_print": "ff3dfec5" + }, + { + "private": + "xprv3TEiCdJScdXdT3zKHJ9Zgu8LA46E5Mw1gYcBHx9fEwP8igqB6T3utnZhqMZDako122WqXnBC5crZ7nz6oe65TTqNE4uBCYh5JXLmwAxaj7T6kXu1w4MvnQqNTZQZsvtz4yLGT88U1ipq2FL4HGHL6dn", + "public": + "xpub6G82f2ukW3Sg3X16vsftTVZaY8ZTiq8DWkFW5bfr8QLfgwpEEWd3mV6zC4qywCyWi7kjavL7rynu8oQQmABzW5i6mBgT9qa7oDRzib5XQf2", + "chaincode": + "b53ecb89fd8a172035a639342505fd50cddb7be5a39fe2a0fffceb7e3864c342", + "finger_print": "10a1f98d", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "60264269" + }, + { + "private": + "xprv3Td4VtWe5bf4Ms1KEdtagDmfJGfByaH5CJ32swHiaTWxczNs4UHn4szrXv6DVBzZiy8ZsKAoyyFhoeibgQPqYL4v7n8H6zJHrDsWzvv2DyDV5zx1w58FbByLMiJ7j36aK63hrqsjjpqX7rW8fHmaFXC", + "public": + "xpub6HRGPBqexHWdTp6dqAT214vxx5N9vAUtf1m5FRAyQf5HiAfHT1QmGP2jovS8ynLNaWwicjhyup6ZXxfidVMgunZfx3eqgtmV9VK76zSnchX", + "chaincode": + "af4c501b5e8241e6deb49823ef311c59705a15d2c93ac806913949c8e4490469", + "finger_print": "c522285a", + "index": 5, + "depth": 6, + "parent_finger_print": "10a1f98d" + }, + { + "private": + "xprv3UaLfamN3bV1PGinkW1ervCBuhkgsaGL7HJPGTXHmxQAaZKhCKErKhVccoKxzTACk6e77gDnCCyp1VzRcWmfKiQzfVU3kPoTnDvfR2H4BwhD1tfcPcP4d7QHBdZuASbsaReunAb5Yqn19MUrmGJu7Zy", + "public": + "xpub6LdMJb1FWNmvhzyYmkdaQEUHPJcZh49sE7SJd34fFtVwZi8txrZXXkbWQGBtga6GHSqhbapkV2pg63QqHRaocTpHRcV44jYhYG74KVrvuWt", + "chaincode": + "8a3218539e8be0ab75863cd3bc333876dfac5087e96950fb1f7d8b4926bb207e", + "finger_print": "4fe40fec", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "c522285a" + }, + { + "private": + "xprv3UsurvGitL73XkVzGzrCgVQN39LQUrejgQJWZLNUF1tsD8gNajrGKPri7hxPMp3ydHywyGv65WaAHEB8VRrsZYmX9u4xhqx6fhxGn62ihY7E4gmfZHPqY7SQBixztB23QfurFK8wm6fRmspjXtQyyE8", + "public": + "xpub6MeWDpFrMtDR7RYsfdurZpLBDJDyDA1ugYeSzhNgkaAj7ixEKLFdig1FbuYRNRFbT8QzJoTjdwMiTbTwYnHANxAt2bevCngtdf6pNkTrqqg", + "chaincode": + "6addc06bc64c23ea0ddc0d9ad293de6c63a500844b82e700bf549ba68c95b363", + "finger_print": "106d9ac2", + "index": 7, + "depth": 8, + "parent_finger_print": "4fe40fec" + }, + { + "private": + "xprv3VJJ5VtusVxm7at6ffXMu5Y461eRrTAvCEm3tYVCf6ZRmPpzcA7aZXYKgaJCgoTnu4kSKKUmHpmX8qxsjkXWzSHPHphARbuBMPWqdaiT6BPBXyTSnypQo2KD8v3HYE3LGKfaJGSWN4ZEVuV66KsuX8H", + "public": + "xpub6P4auAVXDa9eqry457xWH5XFN1PPchRSNAzDbXiioVHPqTHuDhNMzwd7otprgwrgv8uV2bmpf6qDGMPHXgJrW8v3T26R5yiptkVDPocr4J2", + "chaincode": + "f61c86f2746cd391625f60984ebd8b6bf82c2681528c4fd1c22b4cadb92eee6c", + "finger_print": "1eb519a1", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "106d9ac2" + }, + { + "private": + "xprv3VtXKfeDfqtK8qdTztK7WwiXeGsqwxCPMxtEjz5Hxi8Vx3TJKmaqjuYieaPFihMF1Wt7R2iBwF7YsVyxUHxCF99XdmAkFPuPZWivZAe4pZ8VQJxyixuf9AMJQFnPqtCc84B8euoyrhrrNEybxcU4SZ3", + "public": + "xpub6R3opz9DxfGzH22oAri6odnQZTAWgg6KzFS7tdHzTETSezXrfbDL1KqUKLQdSTAzj7RkGGrDNpfCDL7hzeUZhkYmHWgJMnnoFZFAFZoE5Ds", + "chaincode": + "184fd214d70ab249af1a90d56ba4d86adf7de273c8ade973848e0a2a1a77a0a0", + "finger_print": "2d51d0b5", + "index": 9, + "depth": 10, + "parent_finger_print": "1eb519a1" + } + ] + }, + { + "seed": "f48e678e669e162a08e695232246f2609e8082eb9f94f8667b2aed720acc4974", + "private": + "xprv3QESAWYc9vDdZi8KF9q2u2QHbVfhPdU8Khc5zcYRkGURxeDbQdG9EYefTyYpxyMoUkWQsKv1PYQsZhjgGuVitk29mZxxdC5gzaBixvUX1YnPyDt6A7Hk7V33jdhR8gc3UMUoHEuBkqC5Xfy8MUWhCEX", + "public": + "xpub661MyMwAqRbcG2ya2XAwKXDiiPfNNGf6nfstPNaoJQrQTv4JZLtPhWJA7MUDz3FbH8Zkv4mJasgWUygrPsn2RGfgekVPK2cnWrXvKRLdRhP", + "chaincode": + "95de84134ed6afb1e148fd97b3e46d7a81ed475b424528569a2360a913cff7fc", + "finger_print": "d0b424c2", + "child": [ + { + "private": + "xprv3RFHVDGQ1dsCXPQrD5VatdfCJYN2EmkQuzZRXrz2X8qwVqvTEAZpXfC65vvXoRffTonrfTmwz4HbgJRFLvu5pw8HEr8VFXbK793iHkbymLXBTQwxWVKw2buSZ6wk9xqQr8YCtKcs3SLBesBDgHCe7ad", + "public": + "xpub69RUEtCpVaTSBWbw11jr5jmzUPh6NLNmXa5gLWvL1F9vrzg5zAZZ1uAZwr7FP4rHRN67bFoE77cGNrnm3QVwyTJeCduJoegsPhDcyX3AUTy", + "chaincode": + "ec6a6853b5e176c8297e2892c0732cff2df412eeee4aa4d61c7e89b66a00e15d", + "finger_print": "70b0f3d4", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "d0b424c2" + }, + { + "private": + "xprv3RbYcydBicBidixrvxbP5KAPNKFoTa2aK7JbESKhoMR6KnyGboqkotuqXuHkLQM71GtaFaPmgvdNYv9Z68U8tXKvaG81SnspEdZ46JzyLqB7NRpRFPcxoxN1btw9AHNncFRa4aNPf3NS8GmTJ6Q8rJr", + "public": + "xpub6Abg6NZ3ug4qgJyEvWFkwmmCi2Hf4YYg4fVofY6vTz3STcPDv4eALVzWFoMf9JDzcawMBucfTDq7y4bH3X9JDPGuGcRstgJk95sjMY6poTb", + "chaincode": + "91dc2a738e45c4510cb1357ae798a85c6d3b99593db6b5d7a99a8c5064134868", + "finger_print": "50d1e8d0", + "index": 1, + "depth": 2, + "parent_finger_print": "70b0f3d4" + }, + { + "private": + "xprv3S5vt8LzRjHkUbpcGSC4sqQVMNWJYtHgRBywWd2bwePqwoChadRit9y7wv2NxinGZg4Ho8JqxE9bhxXY6Dt2ZqJ9zMyK5noYHbgSqVHSUZjG5eo5MH8B9FcMoSooKfQLJajkXqBTGiXuNLnWoraLjvN", + "public": + "xpub6CFDuJrXwgNygUp5KtmZedLw6heVZribW9p2ro7XsLR6AMTsoXaY2RHZM3VThqV2byKtbS8mBAfq4VfcjFmiqHxoiiJq9guxT2DfX4RRNtR", + "chaincode": + "828dc67cfb18b0b6fe9f362efae3ae21ed691d5e7032196dfd896deefb9cb8d2", + "finger_print": "cc0629bb", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "50d1e8d0" + }, + { + "private": + "xprv3SuxCNNEP2oz8ih9dB4fWM8khBu7YvKjLdDcFnN4vzN1v7uGDTA51HTgjhPyDTj4vPEtWNrWKnxdMtjamGCVU7R2e59tJfoNCGwEN9wYRuGAk4fqrjgw25v2VudY4e6XKG9XW3NQbeN8v1VrpTm2Zod", + "public": + "xpub6F2t7Ae1RNbACsa9xcLG6gzyr8PDair2ZFPeHnkQxo1aL9g9d8zzhy2hRwqR9Y24vaxEyTEQJuHDAGYFSFxXwEAUkg68aChtokg5ANcfmwi", + "chaincode": + "0f84980ba9187d082c7d39aa3bbc9e5bc665dd94b4499b4edcdb41529b7fe41e", + "finger_print": "74e4edad", + "index": 3, + "depth": 4, + "parent_finger_print": "cc0629bb" + }, + { + "private": + "xprv3THLaJxz1Kx7s8KBQJkC9zSgDX9t5tvgVD4f7do5QJqqtWskcr28CciahMhzksaQ9KKaEgPAVm5xKuvNZLq7F3piCT8q1zCuQoPFyxXEUvJqYmxUSLVR54VPeqHF1Zkf2wVxLrcwxHwrNtXQN4L2cM3", + "public": + "xpub6GGsbL55zfYPSaJTACaeGNgtVXUSf4LoLjfTDXYu4zVXGy4FboYreR9ZYkEnAQcW7J1WWycGGwMowZHAEEb74WRxa4FpN3i1CwnBL9MZnHB", + "chaincode": + "cbae14dc615c8763321fc3c780606bb51333381dd94921103c4418b310d70c2b", + "finger_print": "53bd3a67", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "74e4edad" + }, + { + "private": + "xprv3TmZQXhBSo7MSbue5eRT5wohUUAeFCdHBr7gg6vUHHHxcmzXiB1U2UYSgJ63PyJ6wgiVi5vn4mbLXGEE5XWhnJRJfmQtbubhL6i7UTUZKRD6zeK6MMAdALsdCKhwqK9WFdH7NNCjVn8EErhTwsLxycW", + "public": + "xpub6Husf8dAx5q8d1ppmgVusijSjLqsTJMX7jK3M3Qq4PrwSQPWXPNnqvnsusZnFLQ3e195A25VEaE1eTh4PmZ4X6aWGBQ1381PYN6CdwjKZAo", + "chaincode": + "e6c1f66bd994a67478ae9e7fea4e3020c06c2fbe4985ef8836417472bf63ff7c", + "finger_print": "87644ffc", + "index": 5, + "depth": 6, + "parent_finger_print": "53bd3a67" + }, + { + "private": + "xprv3USXAUujAcVRh3tXMFPgZYb4KTfKSu3w3j2joCquv2uRvjnUBHpdAGE4qhaMjCDqV5xsXnnsjf1oLiMTg4JLhUwRpxSLnYqTCNzuaD6tWy8BrKXXER62JoDLeHDfQ88vTic9m4Je9U3CTLGX1oTpfSZ", + "public": + "xpub6LB2gTRRNdBGCEG8YvfDMui6J4i6AJzeg7MWEEBvaYDcmeWdfzVigFHZmhNAch83jBc882oYVH7fUhivrM6j4y6ZZdqnJdBvgab5yt94y1p", + "chaincode": + "188d2ddb3bcc190680215311d48a79fb53f3dcb871fe798602e7873f4d6a5342", + "finger_print": "68e21706", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "87644ffc" + }, + { + "private": + "xprv3Uw5S7n9pRRWjQoEgkjQxFeW1L6ARGMY5NxxedUMfXhgyTiWadHQXMvZMNckDsTGdwRfX4UxhEouS5wAVV1ritvbkaMQByZbeRXSbcmoEzvU9TcHKD8CgoAVeWMT4uR3PwHZsayPhYgx3HULGde8PWG", + "public": + "xpub6MqABUpCG5oPdBFGR3KuZrqnVQiq4UqKvH8LUtFqZAccnPm7RqdE9W2nsf3Jns61Pgfpnn1v2u5RAg46vtzZWo2o9BmiyidYBkuz4vL7kGh", + "chaincode": + "e761d2fdc42b3bbbad498a356d36c6d0101f21459b7b05c69b824440b9f94cd2", + "finger_print": "2ba7235e", + "index": 7, + "depth": 8, + "parent_finger_print": "68e21706" + }, + { + "private": + "xprv3VMk3m95e1y5xMzWUBm2buqRBas1b8mZfaPvjTh2szcGSuCgV4PuRNfG4rw4VeGi8VNQRtHR2miQG1YiSKgvCpHjk6GXwXyTZkjm63rbZq7RaavVs4K5HmSZKcu8y9Mq1iUFoj7HwreVYJan4D27KxQ", + "public": + "xpub6PGC4Q1V7tT8pUyrC3qR2mTnU52ixkveJZdL7a4jNTyXqSMaVm9ya8sUqdaLKhUW8CfC72F4oCZAzUXiy7BoqTSoP34Zhfifh4t31ykgrSa", + "chaincode": + "e893695d2120dbac925e44f15dbe61797fc47a563d230368de79878850d8aa3b", + "finger_print": "d497026f", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "2ba7235e" + }, + { + "private": + "xprv3WHZH6BzbkJrNx8p9Eg2BQHsizBTjgKbNNHDLB96MEu1U4vPWrdc36cVicM34uNLAfsV8uhrRnKnTNs4dcr1BXEaYwDq75KnKU4qQLDQhrGe8yeXqjka9Dxh1bvDFNty2xR9ZsAnC2BNFDoqtKDSrqc", + "public": + "xpub6SPM4AwBTNHUxnsxbxYaqBdnL1FZSNsAMQ5GTqxrZCPRTry4RkaiJhz8K6xYa5yxqtsEDZJP3nKc78owcm4fjDQ3gRCiRWACUihmFePW7Cm", + "chaincode": + "2d597b4d11d925e2966c21ea108243d9abc561a67d158a211a7cd1657a433a47", + "finger_print": "247c222a", + "index": 9, + "depth": 10, + "parent_finger_print": "d497026f" + } + ] + } +]; diff --git a/test/bip/bip32/nist256p1/nist256p1_test.dart b/test/bip/bip32/nist256p1/nist256p1_test.dart new file mode 100644 index 0000000..6e6ab81 --- /dev/null +++ b/test/bip/bip32/nist256p1/nist256p1_test.dart @@ -0,0 +1,30 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_nist256p1.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("nist256p1", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + var w = Bip32Slip10Nist256p1.fromSeed(seed); + expect(w.publicKey.toExtended, i["public"]); + expect(w.privateKey.toExtended, i["private"]); + expect(w.chainCode.toHex(), i["chaincode"]); + expect(w.fingerPrint.toHex(), i["finger_print"]); + + for (final c in (i["child"] as List)) { + final index = Bip32KeyIndex(c["index"]); + w = w.childKey(index); + expect(w.publicKey.toExtended, c["public"]); + expect(w.privateKey.toExtended, c["private"]); + expect(w.chainCode.toHex(), c["chaincode"]); + expect(w.fingerPrint.toHex(), c["finger_print"]); + expect(w.parentFingerPrint.toHex(), c["parent_finger_print"]); + expect(w.depth.toInt(), c["depth"]); + } + } + }); +} diff --git a/test/bip/bip32/nist256p1/test_vector.dart b/test/bip/bip32/nist256p1/test_vector.dart new file mode 100644 index 0000000..0f971ad --- /dev/null +++ b/test/bip/bip32/nist256p1/test_vector.dart @@ -0,0 +1,1322 @@ +final List> testVector = [ + { + "seed": "e08dd6e310c1d176fea25e4bd8d0bfb8627acb45c4f078d89f91aa1fb67da86f", + "private": + "xprv9s21ZrQH143K4bvBcRDqsx6QbQa7sY513VK9S8fdruT8keUycwbipAbp43zKWPL84kamcgLT4fAqczt1od64pWkpu1JYG2PSCPeqvaZ5irQ", + "public": + "xpub661MyMwAqRbcH5zeiSkrF6399SQcGznrQiEkEX5FREz7dSp8AUuyMxvHuKnkZeGLAtmT49QNqkJBG2zigWxwYh4hqCSUZ6E4CVvCn7eVQ6C", + "chaincode": + "ff89d20b3bdf4df717994169c582c532728b284d50111a2e15ae10a8b768c638", + "finger_print": "45fa7fc4", + "child": [ + { + "private": + "xprv9uQyiREtxVYD6XrTQt5iQyY2xZv8or6KNQkRVpwqzFJvikgs2pSTHfB9wjFCSomRy62TVbxHqpPoBmDbV99HWn7KbALEEA3hfMA2afqcM9y", + "public": + "xpub68QL7vmnns6WK1vvWucin7UmWbkdDJpAjdg2JDMTYaqubZ21aMkhqTVdny39HfARhR74NayqNCnMRNznE1KA3AG6NMbFkHzPngNbHpHmNzT", + "chaincode": + "51965e39403c326c4f64239c50857594b591394e63f76005e8ceeccf2a3f6967", + "finger_print": "62c08741", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "45fa7fc4" + }, + { + "private": + "xprv9wWP2bjQRoknJLMdCUof9NxBwHJLTvHvE3YSdZtCHzMXnThMsKJb7b9vnssV6XjgkUNAwdB2s9otkx2jkPNQVFtyESqeQ5U369mxL2WG1gk", + "public": + "xpub6AVjS7GJGBK5WpS6JWLfWWtvVK8psP1mbGU3RxHorKtWfG2WQrcqfPUQeA2qPWuAT1yxStzZZ9uegHeuKWmscFeKzaAJDdizDHYxYh4XGne", + "chaincode": + "7776550c1d8cce8b9c8a93f08d24cc0a4642cb6d389d671b11a1a9670b21f0eb", + "finger_print": "87301252", + "index": 1, + "depth": 2, + "parent_finger_print": "62c08741" + }, + { + "private": + "xprv9yf3o9xqnviyUcNpMz3Qo9UEfLbCAWN7F71j9nLv73ZtLJoyXt2PDePNTpWLwiJt1WiCxwN197PSbwr4tvnQo3BAQm2zXKakkCgFvg1AaBB", + "public": + "xpub6CeQCfVjdJHGh6THU1aRAHQyDNRgZy5xcKwKxAkXfP6sD7985RLdmShrK57ihQSowD1YkBXDh6M7hEKfqfBA1ChLJiGKV41zxQXYqqoCpkc", + "chaincode": + "3470fe7bf5375de81f3fad4031827e98b94784011b13fd34a17f6d60a2dd75d1", + "finger_print": "ed63f251", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "87301252" + }, + { + "private": + "xprvA2HkicYFP4H7wsNUw6xpa9DGqSxmmJaXG7m9ahAE9o7LPy1M1gTwsqHwLibA6158UKmHYWfXssn4cexeKqdHtmcaicDMvnMBwgiaeYgMgvM", + "public": + "xpub6FH78859DRqRAMSx38VpwHA1PUoGAmJNdLgkP5Zqi8eKGmLVZDnCRdcRBxvTsMDZot11qrTnaAzpV8MKSLbrtURmtpxhWju1G5KSLSU1b5D", + "chaincode": + "7a839ab2eb42118104e21d2d8d51204cdda172662f9f8c0eeb3850c99c9c986b", + "finger_print": "032b0ad2", + "index": 3, + "depth": 4, + "parent_finger_print": "ed63f251" + }, + { + "private": + "xprvA2T3CDxvPNAWYPqjrKmWpqUA7i43RWk8g4QGbfSTPyU1YR8vN3GKKMyBfoB8hA8qryxc8tEXWNURiSQW1Ae5F2YAq4rp261Ck9d6GyhtoVb", + "public": + "xpub6FSPbjVpDjioksvCxMJXByQtfjtXpyTz3HKsQ3r4xJzzRDU4uaaZsAHfX6rDHqey6gxHgoZZTL9yfs2CvNqxhEn8AEgp8ZsDEaWkbJfAmPT", + "chaincode": + "4f83c1e2111fd2890b0576ad2e86f44835a9bc6c6d00069a80435dd30ff077b3", + "finger_print": "a07e7728", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "032b0ad2" + }, + { + "private": + "xprvA5VF6PFprY2kLD3V2JC7DcAMjN87aQPFANbHDQEQwEQQgtFDbXGjfqh68XL9njpJah6Vw73eRVhr9iMuJPZPnLDck6XMRkKNEnFNkiwwKdh", + "public": + "xpub6JUbVtnigub3Yh7x8Kj7ak76HPxbys76XbWt1ne2VZwPZgaN94azDe1Zyoq66wku6aL3UGD7sy3yA7u2VVyJMZ8NWDcjpKyHw5WQTKrzJ1t", + "chaincode": + "5d1d9f8cadef2fdb8aaf3e799385f10413a69a6c0729a1166a95fef0b060e370", + "finger_print": "cb4aeee0", + "index": 5, + "depth": 6, + "parent_finger_print": "a07e7728" + }, + { + "private": + "xprvA7gdC9pLZ16tUCNjHBHYTgt3MJ1hg55FPvfw31dzepWHyAJxjyMxMyAgidkja918UqE32QPhJcLwxLbACvaCqjbBTzfBn81p5FMcHHbC3WY", + "public": + "xpub6LfybfMEPNfBggTCPCpYpppmuKrC5Xo6m9bXqQ3cDA3Gqxe7HWgCumVAZuqHs6Md5T4LBb4X4kQEft5KHqVmu9oJD5v6Q1c5gqNL9oNbjbT", + "chaincode": + "b80179db9f40edfc7bc854bd1dca1d573be89e369cd4f9469f704d7d9d688e98", + "finger_print": "5b70121c", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "cb4aeee0" + }, + { + "private": + "xprvA8k5KpsjekcVfFS5qhYkiy7UMLcDDgNcVwJDsANQsZcb6htas3Tzsy6aWzfR4wqE4P5z1qJa8KKqXYvHkefUF5WKaE7boiFTEvZd3biBhox", + "public": + "xpub6MjRjLQdV8AnsjWYwj5m674CuNShd96TsADpfYn2Ru9ZyWDjQanFRmR4NEhyS8jNkDovDoY2gYgBH7vnZ8cq3MKmiHvbe69X4Ak8P7NWRVP", + "chaincode": + "b841faed5b8ba088af208dda898446a21c0392ede3913b909a89205a763c6a57", + "finger_print": "ce2594f4", + "index": 7, + "depth": 8, + "parent_finger_print": "5b70121c" + }, + { + "private": + "xprvABU7UokBcnf7JJMS8tKoL1o54qqVB5qivumCYsy7U91DWthF2zYc9T9pbiVM3Te11kUzkKAS7syiutmD5wvjPEFmD4NXaaL1WjeUM7XvJ8E", + "public": + "xpub6QTTtKH5TADQWnRuEuroh9jocsfyaYZaJ8goMGNj2UYCPh2PaXrrhFUJSyLdw9Zh1DZz2DXtHMgZeQFJjAx31AE4os9UYFJtkJJBiXSD5Dt", + "chaincode": + "4d0a49f37b25b3b4080806c18e84df61da86326f4a9c5afff29adc8a338f993f", + "finger_print": "ce47d63c", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "ce2594f4" + }, + { + "private": + "xprvADMJeVETCvBdoessEzfSM6Pz8QtHZggkKYNQPYkANtpcqihMVj1S4K2gczkkWankrgyRZxPocE6QcsUCdYPiNtn5oF7QzpbA9JXCsL9RmRA", + "public": + "xpub6SLf3zmM3Hjw28xLM2CSiELigSimy9QbgmJ1Bw9mwEMbiX2W3GKgc7MAUHrPsqwC3e1XKkuTjygxrpJY3osXbhiUJj1nXefNsxLGSQydFf8", + "chaincode": + "2dcf6e8ffc883832aca9f66eb42c49561efc5b5b1a53463e69db156fb82f0921", + "finger_print": "18c747ea", + "index": 9, + "depth": 10, + "parent_finger_print": "ce47d63c" + } + ] + }, + { + "seed": "272ffbdf42df22fb882695987afbb5537ad7076df39fa8c5caaa3803f03532e8", + "private": + "xprv9s21ZrQH143K3E7DyrEoCMMDYWaWg3z1FN1X2gbVWnRPh9XgzQtoBd6UiXJGb86psiuAs4v9hp4wBqUXJfrrXDqKfZ2TAKi8vYmV4d1J8Rq", + "public": + "xpub661MyMwAqRbcFiBh5smoZVHx6YR15Whrcaw7q51757xNZwrqXxD3jRQxZnrKgBMwt5FXhTuueyPGKJfJ9C3GuSUwivC7snYDoNscXARVnZY", + "chaincode": + "7553ed1fa2c0c13ae7f5a6a0bb7e1f47724bc85520b3a8343f9b7297bd060a33", + "finger_print": "1acdd8bf", + "child": [ + { + "private": + "xprv9u6aBcJenW5XXQ3bZHJmapTBJTVo9YY9woWYagpnCWiEkCpLKbrKWoubRC1EoraVHgpLpNVdxxMUCyEDFd6eR3jZUbKqXG9RLcVwtZR4MRV", + "public": + "xpub685vb7qYcsdpjt84fJqmwxPurVLHZ1G1K2S9P5EPkrFDd19Us9Aa4cE5GWDVKYGJkMcxgUK79i4cHRkujjDs7sAznDJC1GjCD5yiNQnwn6u", + "chaincode": + "76aa97cde2400c2dc18b75a04a9c806871257e2c9c77fab40592b9c67941e854", + "finger_print": "775f0764", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "1acdd8bf" + }, + { + "private": + "xprv9wfArgsEB6qFxngXVbZj4hrTJjX1DmyP1rJEUYQwKLfv54aQvyRre8MfHEHPyDG9hhUCxqkBy9AVpszF5zhCyVPtbcAfNHBHb8q2rBsVkQM", + "public": + "xpub6AeXGCQ81UPZBGkzbd6jRqoBrmMVdEhEP5DqGvpYsgCtwruZUWk7Bvg98X7WCBVJoYYg1b2o6FWUAN1Pm6fqwHkdqxAGhnSze9UFEUoXoWv", + "chaincode": + "e89af61edda1e9b26227d93146c4cef53ca34946b386fe4c9e0a84440173ad14", + "finger_print": "4e67ad76", + "index": 1, + "depth": 2, + "parent_finger_print": "775f0764" + }, + { + "private": + "xprv9yEqnUPbgGANvryh6dcKwY5XHApjfp6sUM2nxpCmHLisiXLs9FLF4WpCPtxUGaRPGXXEhiCJY9wPCYr7qdfR7WV7tjJq9quu7rUjxcqtcRL", + "public": + "xpub6CECByvVWdig9M4ACf9LJg2FqCfE5GpiqZxPmCcNqgFrbKg1gneVcK8gFC4VRW9GLU1Tknt67h9evA1YhfoijXzNFQV5Ei7zyb5GSqZjbbH", + "chaincode": + "4419961f8067e6f7b88919fba7a2df8ad900a20650b197d9da680ce9f0082e35", + "finger_print": "32389342", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "4e67ad76" + }, + { + "private": + "xprv9zuxmMNdSGMLwBWd7D4NBWb7zVFNWhTJxF27XzN8ea6vx3brpftwQoFLN8kxTHbbB1qhsSymEzEp68qQXBbygLpX8qgHQUR35nD7y8Kb41h", + "public": + "xpub6DuKAruXGdue9fb6DEbNYeXrYX5rvABAKTwiLNmkCudupqw1NDDBxbZpDNSZ7NprR2xTJo1LtknGZ6DrpTqAvRtny92sWiNiG7enhq5Xjz8", + "chaincode": + "47021ac1d9d4bc56649ef967ff73095e3fe87d9faf982ba8efa04bbc0466fe5b", + "finger_print": "62ce1ea9", + "index": 3, + "depth": 4, + "parent_finger_print": "32389342" + }, + { + "private": + "xprvA39ov6MF35Zbyk1QFx7Cuc5jEFUx8QKJdTWAkFf42vjZD9NoKA3u67vUyKCuqqrBBJ2ewLfXwaLSxDyCyhPvUH5xxpmsXQKCvdo7t7dpvX7", + "public": + "xpub6G9AKbt8sT7uCE5sMyeDGk2TnHKSXs39zgRmYe4fbGGY5whwrhN9dvExpaSq4pPA9ai4nAg6NsG3Aamz2tuy2BcLyQVKnTDX28Z3N6GSeFL", + "chaincode": + "dc1786c34ecdcc5524af97ae8366659c27a833f1b2a626421577b4de95f7f654", + "finger_print": "7854c481", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "62ce1ea9" + }, + { + "private": + "xprvA5C82TBpkKSavc3PudGRbanzaFBdmsKVo163XGE3LXy26M2N5jYy95JuQwH6SUv7GZw8wenyGCt8XGco8fswN2uc69oCskhCx87t7mG48cx", + "public": + "xpub6JBURxiiagzt967s1eoRxijj8H28BL3MAE1eKedetsVzy9MWdGsDgsdPGB61eABL6VuQkLxGAHWCE5konJfsssB6JXWgAwFbJMG5fT4q94D", + "chaincode": + "c932a17dcd01b24cba87ab88cfc674f43cd41258c7714d08f6608cdedee75cd2", + "finger_print": "5738dbb0", + "index": 5, + "depth": 6, + "parent_finger_print": "7854c481" + }, + { + "private": + "xprvA6q9EJmhJVnzjnFq95sSGfn6sTZs5XuPLmj7khPvo9hYAPKRMyN3FWujYFL4PMbKd4xkFsBAQg2PgP9BRYLAVb6n9ki8Ak1TywNeA6yKKuP", + "public": + "xpub6KpVdpJb8sMHxGLJF7QSdoiqRVQMUzdEhzeiZ5oYMVEX3BeZuWgHoKEDPXFdG7jHTyhdRwUBPd9M2grNzRpPvzagVZmkcadTxdA5a54Fsmm", + "chaincode": + "784e960271fe3e853c851658cb2426dd3ea0c450d30924b7dd79a2d6555e3771", + "finger_print": "02fa9a59", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "5738dbb0" + }, + { + "private": + "xprvA86N6DqN6wKUEZb4s8UtLr54qWyJVU1uPwqG9ib3qRhZW8cv7hZT1nD74DoE18JszpNh5Pxz81Gp4V1p6rpLbL4WADm1gVwJ5cCRc7gVbMH", + "public": + "xpub6M5iVjNFwJsmT3fXyA1thz1oPYontvjkmAkrx6zfPmEYNvx4fEshZaXauVDP9CMeizot4ZJKYRJzxJG5n4KptL1Etpi2UoJhxpH2Q5cCTyT", + "chaincode": + "5e810ed93dfe2fe06c15f1b31c57767a8f8fc90fbc4ba10857147978fa88ca5c", + "finger_print": "d53f0f4b", + "index": 7, + "depth": 8, + "parent_finger_print": "02fa9a59" + }, + { + "private": + "xprvABX92HxtUPP3PWB7b3vyLAB2BrqnSwkDz9PB3sVCtsa7p5ezmR6bcyL51aK478zzuNBk33GbyTN9LiGo96vJzLsStuCWVUKUwzRnaGY752k", + "public": + "xpub6QWVRoVnJkwLbzFah5TyhJ7kjtgGrQU5MNJmrFtpTD76gsz9JxQrAmeYrqabh5Nr4xCqg9okQXNHcs5xBsLKQnPSg9XerQrBzkB41952hPY", + "chaincode": + "39a51157e32a5fc2a25316b507c021850c335ebd0b0e638db1d8d6d5aba56b5b", + "finger_print": "dce5c53f", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "d53f0f4b" + }, + { + "private": + "xprvADTY4kQSkyVedqSgGQ6qEQtbp8bhpeTYsVSZnXfqHG4CWheQwLafQpZR1bZw1HNKPdCaADKbiFbeFnarfs9Mm4U7MvQRExdKP8fBcju5igi", + "public": + "xpub6SStUFwLbM3wrKX9NRdqbYqLNASCE7BQEiNAav5SqbbBPVyZUstuxcstrtseP46SQpTpehx7H7kXW21TWueydZ7tLeoV52DyNSh26GruGZi", + "chaincode": + "25b6c4115769a9793aa492c53a9e2986292c00c67c44c269398d508e32eb4ed0", + "finger_print": "d8b4ff86", + "index": 9, + "depth": 10, + "parent_finger_print": "dce5c53f" + } + ] + }, + { + "seed": "6e86bb95af63a72823f599c54e02a48167d734f58da24d38c386630c4b8e8515", + "private": + "xprv9s21ZrQH143K3gUhLGd83w4RqFGLRLQwvj5gobVb1L2JFhEWKSHctQ7bfpoyUR7CohnvVK5pAdhDSDFpMk5uGPsGgzWAhQ3apZyZeVaaXec", + "public": + "xpub661MyMwAqRbcGAZASJA8R51APH6ppo8oHx1HbyuCZfZH8VZerybsSCS5X6vgAmFqvNJpW35RjmeHr9V2JpeDBx1NwDSWBFkgoH8opQaH8k9", + "chaincode": + "a2fe96e115c77694dedfe7e9e70236cd5273950cabf64e16f57032768b7a9362", + "finger_print": "0491efe0", + "child": [ + { + "private": + "xprv9tw6RcFu5v5E351Fyxu1BhsEiJ2urBehTvvDDuVPVohuu1xCQzfKVuNquMhjDLqbR6XhV7DZmH4g7nV6Vyg2MA1aWVh3iHecGENxNdLdn87", + "public": + "xpub67vSq7nnvHdXFZ5j5zS1YqoyGKsQFeNYq9qp2Hu149EtmpHLxXya3hhKkdCLnccVHkhcLJk6sTvPGbjbWi8McE4H1z5QjdYhDunr1GUmtv1", + "chaincode": + "b77ac865d2e66a3b4bbaf4ee74eefd8e6d26686fd47a0115848ca1b6c4d6953b", + "finger_print": "25d88106", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "0491efe0" + }, + { + "private": + "xprv9w4R4Ho4Qtsyat8UPMPNDr5Uin9m5eCFtE9WbdDPfHuD8KfbWoFuZYLVmF1zqwmCz5x2xpFanZ6tNayozuPqcEbW8q4Ybm2sLXtfaRtkqLq", + "public": + "xpub6A3mToKxFGSGoNCwVNvNaz2DGozFV6v7FT57Q1d1DdSC17zk4LaA7LeycWHJ8oN75uL9sRwCMeoJKCRYEGzP7dzPYQW1RvXJRUfPrFL6GPK", + "chaincode": + "e4cb49a9c9f99a8a6ee783982a04855a7573bd4e8a206426002498b07685ef26", + "finger_print": "8ce0eb5f", + "index": 1, + "depth": 2, + "parent_finger_print": "25d88106" + }, + { + "private": + "xprv9yhUWPznuF47xAhMp7s5xzwXe6z5RTe987MET5fT8xbGaNBPAtGRvDSgQzxVtvqiWuBiJAHxoQVruv4QEsL5DXQ7PxrNoAyPP2TRHCEpyot", + "public": + "xpub6CgpuuXgjccRAempv9Q6L8tGC8pZpvMzVLGqFU54hJ8FTAWXiRagU1mAGFX7aatBwpqnXo1Z9bEDwKtHiysFudM2U1TLgFdjbM45ymM8P8G", + "chaincode": + "018d646b75077bed67442c2f6812623831b1cb2157c5e56981746027ef075ec3", + "finger_print": "e5bfa0e1", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "8ce0eb5f" + }, + { + "private": + "xprvA2EVmM23wTSuKnzG2Lzzahevkn9itdxjXcB3Fy8AV4pYsFYJi2UUudin6BbTDiFaQRycEeF4XjhaNU7dGcKbzmCv2XVeaHQiinJrXkuND7K", + "public": + "xpub6FDrArYwmq1CYH4j8NXzwqbfJozDJ6gatq6e4MXn3QMXk3sTFZnjTS3FwT4Sj5ZArwnKAHgY8qQ2JYWTU5kPcCSJXsG2NZaKLcJsQtSsxY9", + "chaincode": + "84022d65ec9554102ec479d5b74a7b6d69dee865c7028c1198325d6ed0f593ee", + "finger_print": "5296523b", + "index": 3, + "depth": 4, + "parent_finger_print": "e5bfa0e1" + }, + { + "private": + "xprvA32tumq9g1SeqoJnsTZAqzL37geL8awWorMu8uGyk3fS5seJ5TmjKTy8nar9fHiTdbvt7QAHXbLVgdUjTEKRbHnxkEuJLrVdgWPCWW5B8WR", + "public": + "xpub6G2FKHN3WNzx4HPFyV6BD8GmfiUpY3fNB5HVwHgbJPCQxfySd15ysGHcds5gBQzzsfTHyKCgwYfiDAaAxjDUGZNMjjRMpdm9yokwfmybdnN", + "chaincode": + "716ddacf87f9c236f338a346c3e826b02ff4216044ecdc8a7864fb6fe337a14d", + "finger_print": "aabbccfc", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "5296523b" + }, + { + "private": + "xprvA5ZcH4y4tyXZbHQKpEKzNxeMauCbXh7CC1Mqysf66p3kiTRH2gNZubQEiRKjYBGh56zUBhTWkBwHagNV4NvXPmXtVUZaKDGvLBsDvMEGLtq", + "public": + "xpub6JYxgaVxjM5romUnvFrzk6b68w35w9q3ZEHSnG4hf9ajbFkRaDgpTPiiZi7kTNDXu2mbHhURKftFMHEvYoZZYt4jsBpJ3AXt6rtTHRvyRXp", + "chaincode": + "cdd34e233698dfa5404c1589f4149d51af7133faa30f4a6675ad8b30d054af6a", + "finger_print": "cdb070e7", + "index": 5, + "depth": 6, + "parent_finger_print": "aabbccfc" + }, + { + "private": + "xprvA7heT1sfcHRjfnJFKKGcrxxWJfyDGDLDnSLGT9bquvKdNok2T6prK49ofpVhXW7otCgj3Ejqid6kzJwimwerdyYdx5vs8R9qvbwjEc9aqbp", + "public": + "xpub6LgzrXQZSez2tGNiRLodE6uErhohfg459fFsFY1TUFrcFc5Aze96rrUHX7cS4RESfS4w7FZbzW55cuqbvgeSpPNQvzLe87GARTkekhsvfAg", + "chaincode": + "613985b00397c206cfde1fe51a3b93933ab51440d0772a1c83d4d1acda8ca9a0", + "finger_print": "50669f55", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "cdb070e7" + }, + { + "private": + "xprvA8fNRhich3N62Qow39s2ekHfkrWy8CrY9EoR7UpUd5YAU5UuEZPMKy7uPrDCebxLGb4EoAjBcBwKzGAu5UwwZPN4Wp8nV6t5q5FGVFcVMjD", + "public": + "xpub6MeiqDFWXQvPEttQ9BQ31tEQJtMTXfaPWTj1usE6BR59Lsp3n6hbsmSPF9no6LyuiiNpwKh4d95o6djpRXftoGakhAduzVh9y5PqtNWA8qu", + "chaincode": + "62156e1f9aad42b94230a7e3b14f4c04e9f26d7959002ec07972198350e6817f", + "finger_print": "5ea893fd", + "index": 7, + "depth": 8, + "parent_finger_print": "50669f55" + }, + { + "private": + "xprvAAeapVNhd7B3fK218S7vU7jHdST6BRxtVD9eeoLs18yZ7WWxrtjCZRmRqkACF5EVaKAT7cboGqZgjwS7CTr9Qo8ck2xwVnMSY5T1CoD1Nbe", + "public": + "xpub6PdwDzubTUjLso6UETevqFg2BUHaatgjrS5FTBkUZUWXzJr7QS3T7E5uh2Hp5rpWtjcUkML4to9JhriRV3FKC15kjCxee6FXSBmEVY91vsw", + "chaincode": + "845c73494a45d5789f7cc46ed2875c87d9b846f86dcfc268d21649619c460c92", + "finger_print": "36bffe04", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "5ea893fd" + }, + { + "private": + "xprvACEhu6i9jhthGXpBNyHtCGtWfGkiPTW938HmbEJuMhRoLfrzeDEBWhjFFXjAQubZ54ipnt1yDNHYg28VcC7sHd5qVcMeWeeATfZ2Sb8szYy", + "public": + "xpub6RE4JcF3a5SzV1teUzptZQqFDJbCnvDzQMDNPciWv2xnDUC9BkYS4W3j6nFDE2TUh8DQAwdzgTFH8CqQamN28xceCSxFEPgFnB3MX8up6G3", + "chaincode": + "de2aba97d8a28a4f0ae8719849f9ae5e0a02316e51163190d4c51e064e011fb7", + "finger_print": "e1294534", + "index": 9, + "depth": 10, + "parent_finger_print": "36bffe04" + } + ] + }, + { + "seed": "028b30ec4fd7b43c411588f1e03a2a966bb40151c13b747c96ce37ac9adccf6c", + "private": + "xprv9s21ZrQH143K3gqWnU6gQVYjcu1whKddJDKmihGs7SZY9SW9hJJr1fMbBf8VpGVtPtDKwz8ukxMorgwWQgNERMZsMKsiG1xaWb9mFtaPazT", + "public": + "xpub661MyMwAqRbcGAuytVdgmdVUAvrS6nMUfSFNX5gUfn6X2EqJEqd6ZTg52yNTUcHudpEBFxKN2AqXfUn93snGUvJfuLKQMg9DVE1rk5EpiEd", + "chaincode": + "a39db6fb1f24e8aa411c3ee8a97db66f792b4fc9e2fb871a7d6329a2e6f6d746", + "finger_print": "fc43d2c5", + "child": [ + { + "private": + "xprv9vkgvw645RbTksVUp6w9D59LLuGh5ET6eM8iRsaZLxrSF6XngHvMPVeSG4rqb5b2RXaethdAt4Jig6tveA454wqzJK5KHhwJ5eWZXpWspyL", + "public": + "xpub69k3LScwuo9kyMZwv8U9aD64tw7BUhAx1a4KEFzAuJPR7trwDqEbwHxv7L5z3bYmnmfqbHvKSQufsdFkefPAvQuKcAfmTaZKgTcY8scqk6E", + "chaincode": + "ac946d5aade406fba6d1fcd852ab371f8be1f8d2a38b1dfa167df7375156d763", + "finger_print": "85dd1e06", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "fc43d2c5" + }, + { + "private": + "xprv9wmMCZ3EUD8YzhKY3Q4b3rtLLqybXmDdEuYaByX7berVgUnXJrTfYef2B32EhSMsVCk4T8gkFWq8bivPtR8HW43FhEgnCt7SThaivsnQqWP", + "public": + "xpub6Akhc4a8JagrDBQ19RbbQzq4tsp5wDwUc8UAzMvj9zPUZH7frPmv6SyW2JzFW8SE8sEbYMCEbv5GTZerB9xp6rdF4oGsw45nyofL6zgdXL2", + "chaincode": + "30223ed1e86ab0c144fd78ea6821bbcd969203e4415265e79effaa8d8826aeff", + "finger_print": "4be131a5", + "index": 1, + "depth": 2, + "parent_finger_print": "85dd1e06" + }, + { + "private": + "xprv9yDmLt1kwnXYWPvGFzfTWEHGoqJwbhMpAiw9TV8FEcsHD7Cp4hv74wrtZVHzRyy1tctUtdCRDUScaKuqTZLnPKh3bWxXH7fh5AxXDPPTBgw", + "public": + "xpub6CD7kPYenA5qiszjN2CTsNE1Ms9S1A5fXwrkFsXrnxQG5uXxcFEMckBNQmwQPvKhC4Jyw1Pi8HYrmuSZPAHkzo9hQkyNLaaea3qCaJXDmWL", + "chaincode": + "4a80ba2c4d863b6bf5f0d89814b9fb5eec71b3eef86448f235a954d4b7dd70de", + "finger_print": "752920b5", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "4be131a5" + }, + { + "private": + "xprvA1QVv62EHpUoqoBqVXJYQ3XdcYxrSMomjWJHzL3H6JE2VpsoYbrTEojyUwBZ3g7LuXMxxKtF9zQwnFJZarkZBbom3CPZBATEfaEhixXQpy5", + "public": + "xpub6EPrKbZ88C374HGJbYqYmBUNAaoLqpXd6jDtniStedm1NdCx69Ahnc4TLD4DtJrGFkUwfhqFPfxwp4gN7vVa2mc5ivzhxN1onHviwaKM9Bj", + "chaincode": + "7b4a1f324972b9d8bb6abc3450778b025500e53dae0dc23a5f398b13894f30a3", + "finger_print": "feb56028", + "index": 3, + "depth": 4, + "parent_finger_print": "752920b5" + }, + { + "private": + "xprvA4JGnQcfEeTj5fEvEm9gX34gHeejq5YdDBQVnDqYdEm4i3Ux76hP3hWkFMxkm2HXcockwF4qEEAUFzGgnNd8HgbqftEukoLNgnrrCHC2qDz", + "public": + "xpub6HHdBv9Z5222J9KPLnggtB1QqgVEEYGUaQL6acFABaJ3aqp6ee1dbVqE6exk7pYzoZryQKCLuwCe5tm5kZGVHQ2AUzT3MYGyxmp8RxYMm6u", + "chaincode": + "5e9751d793ffea0ba47f8cad529e4ed90b11629a4f838df5a62e8ddb4b94a28b", + "finger_print": "812b04a4", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "feb56028" + }, + { + "private": + "xprvA5FtXYogSe9H366c5iguZ8dqLMYaZbm9YccZveVwVepgihx6QmgkSKKwmgihaJZi7xeKfmjWy9FrkjSmATjuAvR14UEngbYPhbiSoEYuZwJ", + "public": + "xpub6JFEw4LaH1haFaB5BkDuvGaZtPP4y4UzuqYAj2uZ3zMfbWHExJzzz7eRcxu197y5WTWRgX75iNFZg794HGfikCtDNkMnJQthvNL2fPsNzZD", + "chaincode": + "720318ce73407c4e01e64e30ffba7a39b81d5c40b90dc83f2119aa06e70e467c", + "finger_print": "0f9c7175", + "index": 5, + "depth": 6, + "parent_finger_print": "812b04a4" + }, + { + "private": + "xprvA6JcaNE42qLFyQnELhU38a193k2Jb2xgMjZsyyb4jxnTMUnp5hQYheWujv2fYGKvkHLfh4nFWVgsicHBQD5zVaJsNmAHNBEpjmz6BbuiwV6", + "public": + "xpub6KHxyskwsCtZBtrhSj13VhwsbmrnzVgXixVUnMzgJJKSEH7xdEioFSqPbBic4gHLDHjVZM28ykR9NQaFFbHXifECT9bRTnqRiwe1PkrRvxP", + "chaincode": + "d0afaa78b4ebd7816193c80adbc2e0ae0e7d3782d72934d01a043737a3990aa7", + "finger_print": "9807b897", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "0f9c7175" + }, + { + "private": + "xprvA9BuXt4yusDxdf5GyUR9oJR9LKPpQZnCZ7WwWedEpMAcgCVoQ18jcYX8CFpQhMjV5iFHGPS9FeGChG8jjZKZgi2fuDfXe93974Nb3MhQ9aD", + "public": + "xpub6NBFwPbskEnFr99k5VxAASMstMEJp2W3vLSYK32rNghbYzpwwYSzALqc3WfpE7DGAYNy6fSxKFSwjGS52GssSDmziFw88Z8wm24dqFfsbXp", + "chaincode": + "9ae88f0456a3824bfd2b0060d146984aaab2aedbc656a1135dbe1796bba419fb", + "finger_print": "0ce8b2f7", + "index": 7, + "depth": 8, + "parent_finger_print": "9807b897" + }, + { + "private": + "xprvAA3jUo5JKog1hx7xgYHLDb2UhHp8q87R8UUTi7mFquQ7gquvWWRLpZhvLDKWLSDe73GgMQqBnijVNnfy8vfWWrdvGSXEtc16o8bd7r782oY", + "public": + "xpub6P35tJcCABEJvSCRnZpLaiyDFKedEaqGVhQ4WWAsQEw6ZeF543jbNN2QBVmia7BV1ne3HEBmC51766kVFaLU3WRVDU1RLE1s1QAoAaYJSrM", + "chaincode": + "ad42b676612385d7e98eaf2c08ef941e6112a6ed207be118b162511598aef165", + "finger_print": "72584f7d", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "0ce8b2f7" + }, + { + "private": + "xprvACg7Snde1bfDzoFmFeBHwLo8UWu1HfApHVVQStnWQhDPqgBtbgXZopcUiC6BEXHe5mfx5C3wqppLh2VCdwMNmvVQBZzCv2zn1GqyVap2wKv", + "public": + "xpub6RfTrJAXqyDXDHLEMfiJJUjs2YjVh7tfeiR1FHC7y2kNiUX39DqpMcvxZWfAAvras4PknvgwJ41jCUiCPTwhBtZe6bUCJ74YiudyYf952Vg", + "chaincode": + "ff38ce6f7cc18a56e1d77dffa7de47af6303f003ba0be5be90be1d40b4689267", + "finger_print": "4ca5f728", + "index": 9, + "depth": 10, + "parent_finger_print": "72584f7d" + } + ] + }, + { + "seed": "163a8ff89b0f3dfbb5e2ffcd3d1559041efa21c11738eb86621e0133c3c19a10", + "private": + "xprv9s21ZrQH143K2kDnRyXWJb9f6vVTfBVpcY91X9q5k3vKNa3GZUrz9HRCofkvYwScdoLRvwC1A4mdHcC6Juo9wLkEWJmh9evBipnq6qYSrv8", + "public": + "xpub661MyMwAqRbcFEJFY14Wfj6PexKx4eDfym4cKYEhJPTJFNNR72BEh5jgewadGYkjKsa5QC2DPsiATmPM6qn4aZaxftJSc7u5a2afqLjp6um", + "chaincode": + "4508dd3f0ea0a4b881b4fd75eb6265b404ca64b7cf7ecd4ba141a1a0bb23a8fe", + "finger_print": "fe1d7fab", + "child": [ + { + "private": + "xprv9vmUgTRjX1KVo6U4nSsRc4eAdmk765toFehEv3iuyZwrghVPATqaEgDbAmCpvgxAyZ4GMXL87r1AYe2FEbrH3KTCRuZ72AyED1vYgy3dkaT", + "public": + "xpub69kq5xxdMNso1aYXtUQRyCauBoabVYcecscqiS8XXuUqZVpXi19pnUY521MU2y3SJ3pyG1F2sveL7rjcGWZ2Zyq8iJHQzfW6qE6Ww9R5cEo", + "chaincode": + "363e81851564f6165cb2d54eb19be0b3ab7d3dfad3310b4ab6aef242d0e7b00f", + "finger_print": "3d1ba5b1", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "fe1d7fab" + }, + { + "private": + "xprv9wELEvSN23FfiBfchZ49Km6xEakqbwiT1UBPiVaP1fEJKaY45hQGcMCVKU79vduZGuPU1jW9xmiYAiA5MeoJHino6jmt2VrYJwKjNN4nHiG", + "public": + "xpub6ADgeRyFrQoxvfk5oab9gu3gncbL1QSJNh6zWsyzZzmHCNsCdEiXA9WyAk5VhTVXzCfNHeLqFWa2AXayVXi9gy9F9QzpZHZcDYUWVEcGxoF", + "chaincode": + "d13f9ac4a781219f3cb1617d99d7f536089ba10731f3e0763f31bfe7a898bcf6", + "finger_print": "ef3379cf", + "index": 1, + "depth": 2, + "parent_finger_print": "3d1ba5b1" + }, + { + "private": + "xprv9zRPdWjcounWV45DnYu1Q78njLey2BHu9YCyvMvL4jA9QYxAsBRQtbjgxTysJrbCoRi6WqJQCYAGHm5Rg1omfskFjfDJduS2vQpqNvGHr33", + "public": + "xpub6DQk32GWeHLohY9gtaS1mF5XHNVTRe1kWm8aikKwd4h8HMHKQijfSQ4Aom4vJ54N2gRAdgFv9sYcEDL8JKQi4QLhdHDDwQN6wLAHpwi5f1f", + "chaincode": + "9ab300ab2406e7362fe64c564ab29e8e5796e733f5f2eae538f64aa5043a48c4", + "finger_print": "0b023785", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "ef3379cf" + }, + { + "private": + "xprv9zdFCc1iq1HFAGEL17AamJUoo537o9wfJbySczR6ZmvH5EY8svYTEmjFG4KgT3sqCxyYmZkZkFUuzZ1JxMzWoVDv1yupzLoKxBU261W6zT8", + "public": + "xpub6Dcbc7YcfNqYNkJo78hb8SRYM6scCcfWfpu3RNpi87TFx2sHRTrhna3j7N7riNvwHA5C2XgGyi5Wy1hREdZgByZGCayzm7YAz8XZP35X7SS", + "chaincode": + "029c9e6422b1eaa1d1fbf72800665cce5a5c2ca710e0c5f62ba07c4ea84d360e", + "finger_print": "fd6e18e9", + "index": 3, + "depth": 4, + "parent_finger_print": "0b023785" + }, + { + "private": + "xprvA4HjAzv1nT4ADCZpuwFYAuiHtLTmgRFKM71TTvNGLFwvZ1YN3Q7QU6mJE3HQnTde7gK847w8163UCbdXWCuDt3F4Wy7pFYgc9P7R8hc5xWL", + "public": + "xpub6HH5aWSucpcTRgeJ1xnYY3f2SNJG5syAiKw4GJmstbUuRosWawRf1u5n5Kwvnq3n11GQxcbHnjfkErUPg9VvRqqKudSU3v2Zk1ddUCxjV7D", + "chaincode": + "6066d926290e00c7c5ca606d595441f7a912818d3b7150adc3d6c93c886a930e", + "finger_print": "9177e6bd", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "fd6e18e9" + }, + { + "private": + "xprvA5NqZz3ZZYbRvzAmGGv8DWbr1J9eFekX1fypJGYxwGqVDeUsaY3jiMnFNMxi4xrFuxcygrm2YdcsLDGfPyFBNukJuTLawCZReq1U5fc4VpP", + "public": + "xpub6JNByVaTPv9j9UFENJT8aeYaZKz8f7UNNtuR6exaVcNU6Sp285MzGA6jDduh3Q7beNA5VrN5hooY5GxqW9JokigvMFTaxnzDeNUDfYv8z7R", + "chaincode": + "a7921012a37c38eb81e48e4587ccc7516baeb47d36252aa8d4ce33ddcf2e4f79", + "finger_print": "4fdc7064", + "index": 5, + "depth": 6, + "parent_finger_print": "9177e6bd" + }, + { + "private": + "xprvA6n1DpKqJiJ4pxZWyn3aBc6ttgB5jArePKyiEiTdseb73x1t5EMPwkm8VpiNRbNTJHunqDqt8jEb2cUDjUgAh8FZgZMMNT9AwdXBF8b9Knq", + "public": + "xpub6KmMdKrj95rN3Sdz5oaaYk3dSi1a8daVkYuK36sFRz85vkM2cmfeVZ5cM5JDH5PtFUE9oVbTBaiQ9n6GVKVCQFDwqWv8BoVjm2wZ1VPfQvJ", + "chaincode": + "f1a0c19c7e091a973492a3754b4342df915090e7408fdc2019f6efeb21e1a520", + "finger_print": "6778da29", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "4fdc7064" + }, + { + "private": + "xprvA8qCtKeAi3KZdgtPTk11weLdqNvfUp8WZHBbZ5WxT3gVC5kexw3mxMByaH9LH4rPsKNregeDkjXmgnu5kbvHya1HUBxR6ZxhRRwC6A8tbfQ", + "public": + "xpub6MpZHqB4YQsrrAxrZmY2JnHNPQm9tGrMvW7CMTva1PDU4t5oWUN2W9WTRZv36fyTBPMucuwBp65Zv7fbcJkaYuxEaz5KDiq1PdGAbP6eJdg", + "chaincode": + "8613c3875861a6fcdba7765e2d782e18ed069656e945e55b33170b9e91f8fce5", + "finger_print": "65a737bc", + "index": 7, + "depth": 8, + "parent_finger_print": "6778da29" + }, + { + "private": + "xprvAAhZmdSF1xRnUaqD1AFohDTePP3rQhYhKVUxPpDhgPpTggzREW3znocQVcqJkxG1dLf5oXxxNQS1xDK9HgLUN8Zwo6VqkVghRaN7Makg6jF", + "public": + "xpub6PgvB8y8rKz5h4ug7Bnp4MQNwQtLpAGYgiQZCCdKEjMSZVKZn3NFLbvtLvDRaLFgbGPj14ji8CTy9Y9fXxHn4wWe56qTgN3BAutEzZsGWvH", + "chaincode": + "1133a2e9e01a3bf9ad060433d7e47b8bb0a8b0aa4fa9024d8aa1a5e9546503ea", + "finger_print": "07e2eecf", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "65a737bc" + }, + { + "private": + "xprvABtj9jaSyb23Qs81cd6Hv3mYfFECyngF5K1TmdXWWVNrXqieW8kkyf5p94f1Yo3PN6xi48jPiipuWtgwTCkefWiCeamYoNN8FA5jE9FaSsb", + "public": + "xpub6Qt5ZF7LoxaLdMCUiedJHBiHDH4hPFQ6SXw4a1w84puqQe3o3g51XTQHzLDWq3FifTXemm8AummMWiWfpjt9Tcahi5mrAecWPXLhCScTcKp", + "chaincode": + "03aafc6630b8640424e81a72faa7cb9ad27638033ae386a0c5edefafb6d14308", + "finger_print": "b062415d", + "index": 9, + "depth": 10, + "parent_finger_print": "07e2eecf" + } + ] + }, + { + "seed": "ccc192135891e95a5a10b2b2d63d802a26897acc7ec03c8e7b22d918a47616ff", + "private": + "xprv9s21ZrQH143K3RZg4WJznfm2TuejKNrLGUCnFhRzDQQQY7HDSw3gZBVTsgoHQivVwP6nbZ5rUfmJhrSGJB8hvAtTfgu7H24conLmYSwfJrs", + "public": + "xpub661MyMwAqRbcFue9AXr19ohm1wVDiqaBdh8P45qbmjwPQucMzUMw6yowizhan7gutWMZQn8z9thaP4xEV7G4cZLruBSY84wJxnzDcfqs3Eb", + "chaincode": + "892ab60b98b74b53ccbdeab45ebc73c4c0819edf631fcd5de0619943f767cb1d", + "finger_print": "eec48a95", + "child": [ + { + "private": + "xprv9vewCVQBCXkGhNonHBcvavCVCKL4eJz7nx7UbcPXr3KDi4okWVpH8d4CbwoZNpFzbvHhoH2tPv5xdXFx8NCs4thJkCaJitGNwVikEN8D3rW", + "public": + "xpub69eHbzw52uJZurtFPD9vx49DkMAZ3mhyAB35Pzo9QNrCas8u438XgRNgTEfERhngqFp4W2KQGiBbAnCGGk12ugiqS8u7tbPDY9TNb3mXYQC", + "chaincode": + "36497d99b3c96457de75278737dd8c32ff50b53491f80be3370f0f1d29da0501", + "finger_print": "c2060f06", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "eec48a95" + }, + { + "private": + "xprv9xCziRDydZYcmF5tyWPRZa6txsRX22WvF2sMRgpr58nXcn9hQJGUpjEqZyPpKzi1gEvSFBoufGuqZT8zrBJgE7S6gSQ2ZBq3dezVVuq27yF", + "public": + "xpub6BCM7vksTw6uyjAN5XvRvi3dWuG1RVEmcFnxE5ETdUKWVaUqwqajNXZKRHHrpdXD53bkNWg3xTMRViTLs4dizJ1K1hYX2sug5GvsmqHy4Ty", + "chaincode": + "5099bd218790f23a66ed2dd5cf1038502d2726754d11f3677ec9e9335fc7095d", + "finger_print": "ee754aa0", + "index": 1, + "depth": 2, + "parent_finger_print": "c2060f06" + }, + { + "private": + "xprv9zR5G6xbZV2DSAwTWAxYWNNAHWXW6Buu39WgF56fCmthcGGdqt63Nc5CbHwh7rahyKoozEqyGdzoSuw5uXEUohomCskPR5BWtfAXxnV3dFj", + "public": + "xpub6DQRfcVVPraWef1vcCVYsWJtqYMzVedkQNSH3TWGm7RgV4bnPRQHvQPgSXgmB3qqawr7CA8nAQdw7DjisALjL7BNtDqDRLP7LKudpFkY8a8", + "chaincode": + "98adb45e032fdd001fc5229f45e59ae1c711a16e84261cffa868c9a56e2eeebb", + "finger_print": "2144a8aa", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "ee754aa0" + }, + { + "private": + "xprv9znjbCWYnwdwzA48weHgCUqHqfBc9SUyLDt3JXcZXWRfCKibFY9QTQTyz6eofR93xaugJCqWAfeA2tVCgrgJerjoVYCHtjkTEGHRUyksYkf", + "public": + "xpub6Dn5zi3SdKCFCe8c3fpgZcn2Ph26YuCphSoe6v2B5qxe583jo5Tf1CnTqMdhNw4LXgxxB2kjRwepT4iW7E1FMMhB1yaWJZCsHSWjT4pS3d5", + "chaincode": + "89e571ebdc03fb37248080f02d096c134d209b103dd1f2cf0a1f2fce751643c1", + "finger_print": "5d32ec2e", + "index": 3, + "depth": 4, + "parent_finger_print": "2144a8aa" + }, + { + "private": + "xprvA37RJ8ws8pe7srqbVN3pdi9UVF4uoRyh7L7RXrYpStRG7c263f5Gu63AP5Fc7Pgbjfa8apay5F3QXvYmDCEe4oSM6nx2sfk4WNPvr1BdtF3", + "public": + "xpub6G6mheUkyCCR6Lv4bPapzr6D3GuQCthYUZ32LExS1DxEzQMEbCPXStMeEMpeYWeKAhnbV91AAtzZZD6sMzc7kySkx3ey6QASBnS65GazWPC", + "chaincode": + "af0306c68f5e75f8bd09dddb5125e82c70ce42b7e6685221e76c2fbb9a797ee0", + "finger_print": "e9836d82", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "5d32ec2e" + }, + { + "private": + "xprvA62Na77yLx2scPJRDtok64R8UULP8y5Sik6Y4jgVwu9cr3hZkvtSrdT7BAJxLRwhGBK27B43ftWN9kH4vk2n1KEM31gJ4yhhtAmqeswDNCJ", + "public": + "xpub6K1iycesBKbApsNtKvLkTCMs2WAsYRoJ5y28s867WEgbir2iJUChQRmb2Uf5WKDPw7oYo7Y4jK86yPKerWXyNoj6NVxv9cMaHLsfwTFhMi2", + "chaincode": + "23c91e1c74215013b07d8029464b492fc55b270f4280efbffaa82ac073a9dd0f", + "finger_print": "959e77a2", + "index": 5, + "depth": 6, + "parent_finger_print": "e9836d82" + }, + { + "private": + "xprvA7Hk4FRWLoifyGH5nwSPp48VS2gqN9L66teRPauojkKtcvdPNcfuoZ35nVzUDiGJ3nFenpyUT1MNEB7L4X9hYVyzcW1KNxChJhNnAb9uLMK", + "public": + "xpub6LH6TkxQBBGyBkMYtxyQBC5Dz4XKmc3wU7a2ByKRJ5rsVixXv9zAMMMZdkT9ErWmKNj7zxneEfBR7eDk6tPcMQFG5NUttZdvU7QTdDLGZjQ", + "chaincode": + "ed7f7d1c58669cb1dbb37e9a7fb8010e3db2163326d22abfc8671d713c0dfc3c", + "finger_print": "d5cda655", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "959e77a2" + }, + { + "private": + "xprvA9eEwJ6xmhuVQ2ax44HPTcW2xmXyvJG6Gz7zRE9z14gECJ1XippVffY4qFyKfTCB3MaumQMqSbof96hmfyavi4vwVo3PNDxHJx7eX5CmU3Q", + "public": + "xpub6NdbLodrc5TncWfRA5pPpkSmWoNUKkyweD3bDcZbZQDD56LgGN8kDTrYgX7xweDFLt7eoof3L8Bkq9kMFzeKmvqcWTq6UDf1C4CChe3b4pG", + "chaincode": + "47ded0718cb5cb5a786c2452c4f10c984f87dd138c2d11e64c30a8e7a1651210", + "finger_print": "b10ad746", + "index": 7, + "depth": 8, + "parent_finger_print": "d5cda655" + }, + { + "private": + "xprvABFhqrerrhLhuKinuMdbfupAbPYwCrwoA9ADn5JqST8xRdwFx7qaSz5QCeJmcEDrmLcWaQdYbDLuTwdsjfSjoi7SDow89jkGCSryeVWjCFT", + "public": + "xpub6QF4FNBkh4u17ooG1PAc33ku9RPRcKfeXN5paTiSznfwJSGQVf9pznPt3wQEH2G2vntWHWUyiHAy8n9UxVUrnm24GXB4qB9sNDimcUszpiZ", + "chaincode": + "e5a0b487e8e22413049cc91f6b534c0e9d730d950a57fdb4f6e0f8cc55edcdac", + "finger_print": "d1d31b92", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "b10ad746" + }, + { + "private": + "xprvADNpH1LJzPtw2dJsa4wZMZNQuZsN45eWq6VWXZs816q9cnqnyzdSoUAu5tdWuD1Ufzcan6NB2PTmgqwDK24m6RgT9yVhKNVHztkyybduarL", + "public": + "xpub6SNAgWsCpmTEF7PLg6UZihK9TbhrTYNNCKR7KxGjZSN8VbAwXXwhMGVNwC4FCRgLMByLXXuXYu6SpJUbXL8XfrWiGug35qF1gv3A4MEuW4N", + "chaincode": + "9c5db856ca8fd6e115ce3962dcf5c687b6eced420f95c40fe332c9de870078ba", + "finger_print": "81a1adf4", + "index": 9, + "depth": 10, + "parent_finger_print": "d1d31b92" + } + ] + }, + { + "seed": "7a649084c8e86261e374d22add80a298321d26e50bd2c9dfada110dad8e215d4", + "private": + "xprv9s21ZrQH143K2pGATwrxPQhbU54LeRuCDtGaxSh2zPob5thjTxeEB1VFvdnWDk74s9PXQAyHD3omKAJ4WikjPVobKjfR6yDBUytMUitBXHx", + "public": + "xpub661MyMwAqRbcFJLdZyPxkYeL26tq3td3b7CBkq6eYjLZxh2t1VxUioojmtCBnrxoaiPFikCWcacKgj8rGZrFyoPbAEy893sgiyMo7Nn3jdR", + "chaincode": + "4c085e98599020a289bb0350818dfb827ec816302dca7232079d86c52a89f648", + "finger_print": "03432518", + "child": [ + { + "private": + "xprv9tvY67Cu6kxAb9pqCMJLHsjHHevNZ5D2TRfPQDW28HaizY5tzPhFUEh4mPbuemusAz7LERNSDgRfzV9oqqdYoEFNyGc4NPfhBw8eyzhAKg3", + "public": + "xpub67utVcjnw8WToduJJNqLf1g1qgkrxXvspeazCbudgd7hsLR3Xw1W231YcetQbJeMigCsKEqUFPrKbfSfYK4Z1DaJ5bTE8Dp5GZPYB8sPWcr", + "chaincode": + "c8088d89a30767a14792c8ca51dcf970de9948deb5a223b4bef5b782b0dc300e", + "finger_print": "6bc41c0e", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "03432518" + }, + { + "private": + "xprv9waDudzQ6DRSb2snThjMzJqtkfs5tQECvWP6CWZ7MzVySYC2ensk67nyXzebnVhtzAb2pGSuQGySDzqxMeRBmgxyn4qk6hajM64cKVsodmi", + "public": + "xpub6AZaK9XHvayjoWxFZjGNMSndJhhaHrx4HjJgztxivL2xKLXBCLBzdv7TPJuUTv4FDVs8Wtu8DzpyyPeTPfbKVU6uuwoWdhrwED82vUes5M3", + "chaincode": + "4733662d0b2f0d50f362a787c7ac3d2abc16c7ebd8da69366b5d546f1e6f47a0", + "finger_print": "df2cae6f", + "index": 1, + "depth": 2, + "parent_finger_print": "6bc41c0e" + }, + { + "private": + "xprv9zJZMiQCsnWEkToBxNgqEgxe4eWwHh7p8L5HL3wzXWWJ2ckZYpMTFzKH8RLmWaCvjJ53PGheB6cif2hnXkkUGBru3xJG3GomaiVuKmKj6Ng", + "public": + "xpub6DHumDw6iA4Xxwsf4QDqbpuNcgMRh9qfVYzt8SMc5r3GuR5i6MfhondkyhcNojbzzKNYAaaEXbyqz2qrqQRGtJRRZA9getSi9YNxo3q1Rf9", + "chaincode": + "6d3abb4f0b431ba43735566da2bde6ad4e98377c262b59e5a2cc0b835f7d1280", + "finger_print": "ae4ad13c", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "df2cae6f" + }, + { + "private": + "xprvA1prZ161BffXK3BY8jpwodpf79faZypren3r3EXhsVQtaHWbFZsjesPrH3KMB96eV5JotuNjfUsngisos9MP5ys2j6GtM4dCBAp8LWBBBwB", + "public": + "xpub6EpCxWcu23DpXXG1EmMxAmmPfBW4ySYi1zySqcwKRpwsT5qjo7BzCfiL8MhF9rSaNXoepmr9FeWY2kSRG6WRHHUXppetWPNPDKVmrurCRFf", + "chaincode": + "d1828846cbee46fa68d1b8e974e301237dda4e6073c0dfcd983667a7bace5f49", + "finger_print": "ddd28ca5", + "index": 3, + "depth": 4, + "parent_finger_print": "ae4ad13c" + }, + { + "private": + "xprvA44FeFtP7CypQFW4uoZAoAq4uRSZZ8yFgMdiuFj7QasFytSmrBU7Q6VBqazbHDRiy8ZbW3wSkM5TauNhiK7TuZSDG3Y9Wt4MZLyXAggQvBv", + "public": + "xpub6H3c3mRGwaY7cjaY1q6BAJmoTTH3xbh73aZKhe8ixvQErgmvPinMwtofgrX9vNTgDfFe94HZFM3cYuu7PWgW5ppJ35zT1CpyfeCEKESDobT", + "chaincode": + "3e0bf386ba4c0df97cbf6372b274258c20c56aef43032461c4e364bf90c50b06", + "finger_print": "0d7d7a83", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "ddd28ca5" + }, + { + "private": + "xprvA4QaGuEfKN342CT1U7b1joZ9zDk2jUnP6F7MWGetvfhaeX8ibcTTKrSAg9UViwx9tSGEyPoEDMr1nWMnnwxrFe7Y3f7v54CehjioKMp4oyA", + "public": + "xpub6HPvgQmZ9jbMEgXUa9826wVtYFaX8wWETU2xJf4WV1EZXKTs99mhsekeXS9sKv9EVckrGWzxfqm12oB5ZqZEU6JUMouY9jmKeBwZiZqDt6s", + "chaincode": + "5647227d33fa78d8a9fd58b553c0bab1ecffdce4c2555a31aad2cd86d7769c29", + "finger_print": "d42576e7", + "index": 5, + "depth": 6, + "parent_finger_print": "0d7d7a83" + }, + { + "private": + "xprvA7kQ7ELeoKvECgH2T42TndC3obDfW6EYCd6wdojnyLHskdgh7eQ5CGnDfY2j6GmDzYDV1MikLK4S1yHVv6fv5xcfXUr1wFLxUu64EzTtVte", + "public": + "xpub6LjkWjsYdhUXRAMVZ5ZU9m8nMd49uYxPZr2YSC9QXfprdS1qfBiKk56hWqjMjDiKmELe4Cqy4324ev39ge2u5Zzfwj2Ndex3MPgW6ruYp5Y", + "chaincode": + "01806dc7539b3cb9b37f217e56a715cd8c4b2b581804902f89d3cfed0a6e94c0", + "finger_print": "e822908f", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "d42576e7" + }, + { + "private": + "xprvA9n4Cwa7wJrqkLbdU7TdgZvp3vDkzCXLp1Xx6Qpq4ap1sNMjLnSXDcymwYGBmpFNXLVdXLM2mmcueo2qyyrnMguHboXzyYoNjP2CQW1C1Ep", + "public": + "xpub6NmQcT71mgR8xpg6a8ze3hsYbx4FPfFCBETYtoEScvLzkAgstKkmmRJFnpscd4bFdDHgosPb37nxYwuncFBv5orsb4obz124zEjub1aMSHe", + "chaincode": + "5571ead789257818afee04c716679042a341612dc3a8af85199eb62d18a5ba45", + "finger_print": "09bfbe61", + "index": 7, + "depth": 8, + "parent_finger_print": "e822908f" + }, + { + "private": + "xprvAA2PM39pYkEiKHBzCQVyxmBnWzEzYKZJ4HfkuQirM1ViX6zLXbRuvZUcxv85ViCnoU9SJqc7pBgiBQJc6FMJTtPyzLLJXgMQtH97apyyQVd", + "public": + "xpub6P1jkYgiP7o1XmGTJS2zKu8X525UwnH9RWbMho8TuM2hPuKV58kAUMo6pBXcQf32ThTbof9teE9Raxb7yCBxcJoSqr3A2V8NjeejWtHrqEV", + "chaincode": + "886468821d086bf7c6ff504810ed44d3f33de76bb37803bfeb04b878afa2f573", + "finger_print": "e2390ac7", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "09bfbe61" + }, + { + "private": + "xprvADVojn6HKPmQAB38onnBY7xT6gJUnVcT1gcJQWwvTjTHXrrLSNcuqZa3p5MzHoUdewNDYz7Q8F1SPtga4PxPpucx8HD3RiBtbCoNj4CaBxL", + "public": + "xpub6SVA9HdB9mKhNf7bupKBuFuBei8yBxLJNuXuCuMY24zGQfBUyuwAPMtXfMUr6Z7B2utQgqWdU8cfg1yxjrQTePUA7aPworc3dwxdRpWFXim", + "chaincode": + "f6d668d15926d747bf92962be3bab07c792ec78deb4ee411fe68df4998521394", + "finger_print": "471152dd", + "index": 9, + "depth": 10, + "parent_finger_print": "e2390ac7" + } + ] + }, + { + "seed": "6af5b490723fa9f885eeb39d6c54bf2b0d91f335b5fa632c6f9120eed2d4252f", + "private": + "xprv9s21ZrQH143K4Vhj4thJcpYJj5MRtpMy1d3QB75kbRozFkPQC3TdkSTgpKBgJxJxBuig7FowWNgn1dy3Y3ToUkfFefZfENDfMR4ET13eQrE", + "public": + "xpub661MyMwAqRbcGynCAvEJyxV3H7BvJH5pNqxzyVVN9mLy8YiYjamtJEnAfciA5aNmSe7ZPqkTJbnsKtCiv4autaBcUuwfZHcEfNkxt7AQibf", + "chaincode": + "f4c6a0b7c333c762a8b0cfde25c07b4a797952dab17a14144bebc71e91749439", + "finger_print": "bf1dff40", + "child": [ + { + "private": + "xprv9vJczQmcQAHzjmLXJvaAeWrX21pCY9wqWvqyteQFzL347Jp87ikartwqReK6hQFQzauTf3NuNBTkWxMV53LDNEnx5frVwqjAGm33wAm9k6f", + "public": + "xpub69HyPvJWEXrHxFQzQx7B1eoFa3egwcfgt9mah2osYfa2z79GfG4qQhGKGwkSTnHFHEK1a82uNJfx2pJJG6CGxqAscm1rdE3WTvRpmSdMywu", + "chaincode": + "d1895165d9698531fda73ae784dd5f8310944922b150128385693e22052f8421", + "finger_print": "d01c152e", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "bf1dff40" + }, + { + "private": + "xprv9xK11KJWPGGdNyqWEezK56hAKpkm7qKnXkyGFzfLmN78iNgVX2c3pxqe8egFn8gfye6zvx3iQuYamJh9wFa9dnmHmwnE3zgfVN9KKT8Hwdm", + "public": + "xpub6BJMQpqQDdpvbTuyLgXKSEdtsrbFXJ3dtyts4P4xKhe7bB1e4ZvJNmA7yuVfFScA5D1LQVFquxebxSmyUo8h7jYZ5XV8WpbnNms2BC8Ys31", + "chaincode": + "f2c2130f8d7e16505b9d38d57b5103817b23a895d77558b931deeb91a2b0d9f7", + "finger_print": "f7fe8c3e", + "index": 1, + "depth": 2, + "parent_finger_print": "d01c152e" + }, + { + "private": + "xprv9zV93zHCLUXEXHqAkqGy5ADfPMNikZdVopaYbhN42BPsKHR44WicweXP8KNLpYRMZYNpVeWokPYPmo1QeLMCzVAESALYMFZJ2cC9SGJtBoU", + "public": + "xpub6DUVTVp6Ar5XjmudrroySJAPwPDDA2MMB3W9Q5mfaWvrC5kCc42sVSqryZhAZ2c6cNmKgHjZH31T6GMWPBQ19QDFbdwcqhvxL2jYJGfmru1", + "chaincode": + "8688485ce094d2fe37e28a309a9a0bbe5330808d8cfd480d5a92e2479d21d32a", + "finger_print": "d77b8356", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "f7fe8c3e" + }, + { + "private": + "xprvA28R2FA9WUv6WhYwvLCGQ3jb8BQnoonGezbnVt2tiv7CBX2KhSveNiR3ghegDmKhcYCRz3pfZ4EfDn5DTfDojhofPYHHcPMjBNVP6MhLuB1", + "public": + "xpub6F7mRkh3LrUPjBdR2MjGmBgKgDFHDGW82DXPJGSWHFeB4KMUEzEtvWjXXzSMAhycXcZ7TbmN3KEPRFuwA8fwTLKEzsDCrvijJaYukizRfGB", + "chaincode": + "dcfc4e509382e9bdb2f2e712d3a341de92b7150d75c018401dca1cf2de0010d4", + "finger_print": "58b41c21", + "index": 3, + "depth": 4, + "parent_finger_print": "d77b8356" + }, + { + "private": + "xprvA35W9JPfokEFqUGe4LVFSs5AtBGhSJbihUtmp34nw98jNdiVcd9bRvRm3A9pPBdaCDfh18dvaRcRYx7VgibjbdVEEDGQVgenDrjX9fPs31Z", + "public": + "xpub6G4rYovZe7nZ3xM7AN2Fp11uSD7BqmKa4hpNcRUQVUfiFS3eAATqyikEtQLRAdaQoXqhyhtwzzBy7zhtgRmkTMykKgdNFBH46GLinX4StGg", + "chaincode": + "ea0d6c75dc5c60715800972b3028042d15bab396dc55f39c866f4699d64d3a17", + "finger_print": "b7b51d0b", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "58b41c21" + }, + { + "private": + "xprvA5f9521KErnCrMHbDogLW9MPd18LCvYMx7JPqaLn8bGJJVBZH6shTBSbPuNgsoq7JSymA8mYUmaGU5uzEMkL7uw6RMrJVFhPvVXrM9wskRm", + "public": + "xpub6JeVUXYD5ELW4qN4KqDLsHJ8B2xpcPGDKLDzdxkPgvoHBHWhpeBwzym5FAhfJCTCcn5R9iY8kMrZnUmeJDpaZfrpp8RoQsZCkjgmRutugVP", + "chaincode": + "f4b33d86af82148ba3e05748d1966215d167037dd8c49992af8e7dbab470aadf", + "finger_print": "b1af83be", + "index": 5, + "depth": 6, + "parent_finger_print": "b7b51d0b" + }, + { + "private": + "xprvA7Vi2ncPTYd1b33BaCDewMMMHoUMmMy8B2rqdTtkMPvfRTcV7p1F9JzBoeTorq1s1En48znW9t1YMKx5uGq688tCnG8YHKaSas9S8tNQwDD", + "public": + "xpub6LV4SJ9HHvBJoX7egDkfJVJ5qqJrApgyYFnSRrJMujTeJFwdfMKVh7JfeukfnK6Ng9rUJ5GvGrtradMV3H7STkcHjkYgtdWLi7Qij3oeY8m", + "chaincode": + "0674130fe339bad6c3bb1d45b071056443552dc8a5e7a6d70061d62fc7a5a5cd", + "finger_print": "b076a497", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "b1af83be" + }, + { + "private": + "xprvA9NKfsMVNB8Tg8Yrc8vQo5uUiGeSR5j1iboNHjrTopS6nfFSiwd8VwFQ8oaXzuBAQaXgZPTzSeTvteThrmd8Fpqw5Z241ogoBMTocnNXNXq", + "public": + "xpub6NMg5NtPCYgktcdKiATRADrDGJUvpYSs5piy68G5N9y5fTabGUwP3jZsz742YfiwTg7m6scLAmsH3LJhrZwhRBLTgGAyWukd85ddT3yzd13", + "chaincode": + "217be2f14da7de7516d6c1915d2ad9123cf72529650a74f0e2a3c4af6306a294", + "finger_print": "d1b00b3d", + "index": 7, + "depth": 8, + "parent_finger_print": "b076a497" + }, + { + "private": + "xprvABVd2o4HfXHwanorYo4v8a2X2wY9qpUhM8m4VmBwEfj2m4wHS4n5iiq9ZSC9GhD1tMfiP3LiCDnSHb5AUfiea67DdaJ91KUUgzcB5pKuFww", + "public": + "xpub6QUySJbBVtrEoGtKepbvVhyFayNeFHCYiMgfJ9bYo1G1dsGRyc6LGX9dQhXAJrJV5ZGHD2JMJmNf73EZbBx1S4ocjEYEL4qyVUZFQgLs4Rp", + "chaincode": + "0d18eb18e8ea19f59383990b755330f685e4a3382014615c02081adea95547ab", + "finger_print": "29f0354b", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "d1b00b3d" + }, + { + "private": + "xprvAC9F7nxrJyMHibzDQMyGiV5wjiip4qnUaVf7dRERLrzwYST5esMSHfAn52CD8GfWwYEwRLZsGjZ3yNUQc564PRCmxQQ2tNjwkPCZBa1iZeR", + "public": + "xpub6R8bXJVk9Luaw64gWPWH5d2gHkZJUJWKwiaiRoe2uCXvREnECQfgqTVFvJ4hzBVgXdEqHf6EKh5YvNgqegZms2ugxuiUKL6xZm8nXeHnmAu", + "chaincode": + "e509bc17ac27da3a0081939c14bbd386e347543d90cf5cf08d9f79b2ddbdf669", + "finger_print": "8aefc67e", + "index": 9, + "depth": 10, + "parent_finger_print": "29f0354b" + } + ] + }, + { + "seed": "9d9f798132a8b95915668d6871ec0ca1770e8d3133fea28b842ccbcc3359e9df", + "private": + "xprv9s21ZrQH143K3R2yYg6SfRHRLz3NLptoibWa6uHcCFRmE1SynGNqv3UzMc8uiDccygGXePfxRiiLty8bdC7Sjzkmcup5TxofuTmwgSGjvQJ", + "public": + "xpub661MyMwAqRbcFu7SehdT2ZE9u1srkHcf5pSAuHhDkaxk6on8Koh6TqoUCrbcXUpyc9h4c1Q1E4E3Sg2JWcNMe7HR8xZhbuphiudxYjhm9Xi", + "chaincode": + "884010627f73c6f85e36e0643a1071b0cf7931ac3ddb1be0d1f9337c195142da", + "finger_print": "bb9705e0", + "child": [ + { + "private": + "xprv9vH7mxjqjFRrYmv5yQkk4qB9cyz3tnuWHgUDKNHZx3aQ3R7bi5Jodo8iNdtoynUNaS2JjpTmer2i7GyBqYo3nQyhbxanCfCheSuMVTE2ejD", + "public": + "xpub69GUBUGjZcz9mFzZ5SHkRy7tB1pYJFdMeuPp7khBWP7NvDSkFcd4BbTCDsoL8yxdcPoNbBndBR6ZaQrUvGMkWT17Y49uo2MHcauhzD9UZfP", + "chaincode": + "49b5938c3c320d82073af1e626427d71a5bac8b044866fea54c41f664ddf774d", + "finger_print": "9273cdb6", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "bb9705e0" + }, + { + "private": + "xprv9wriTzquTdULS9c8p9qsb1QuJQ9PWV7WatCHuGv7Y8UvX8L1wKtUrgVJsFsgnbX3zBd3USAdD75J22b8o7Z9JSeWVVJvv9CMFVYBegBMkEG", + "public": + "xpub6Ar4sWNoJ12dedgbvBNsx9MdrRysuwqMx77thfKj6U1uPvfAUsCjQUoniZc4i4KNJBSumCFrPLMMYdF3cScJAkP4kPekLFeKPcCYhP65fFn", + "chaincode": + "bdb7df553e3ceecc1e10b3063a11c2743be8ceb9e13e8bf0cb9cd180b5873c28", + "finger_print": "9f911c19", + "index": 1, + "depth": 2, + "parent_finger_print": "9273cdb6" + }, + { + "private": + "xprv9yqSbNEDJsESo6qfxyQwxnWgVDinGf6ahjNBVEhZSWsLUFQRpnHRM9QSjSH25ZaVywiukeCEKGmGF2f7GASPSWdjn9XBbMxaJF4W4vTKXbi", + "public": + "xpub6Cpnzsm79Enk1av94zwxKvTR3FZGg7pS4xHnHd7AzrQKM3jaNKbftwivairCXCvjS9Lhoe8UzEuSfSsVxDt871u2PbLfFKm5JKfV4HDMD4Z", + "chaincode": + "4478ae7b41bd74c8ac7d41fd5ff57739f46e494baed3e5e87f86e1a77c06ef7e", + "finger_print": "196efba4", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "9f911c19" + }, + { + "private": + "xprv9zjPsRuLh8jjoSsB41YeWicjBDYwjJpuBDxsuGBoXytMp8suXafy1sZJvwNNF6Cd2jbkqP3CCR2PVNP1kwxMHenh2kDeVNziXeBUgnHFy1s", + "public": + "xpub6DikGwSEXWJ31vweA35esrZTjFPS8mYkYStUhebR6KRLgwD457zDZfsnnErPV3ybj4rTrXCqzVYm7vVYda46t7qzdpgbpGs4zYeNoiV7r17", + "chaincode": + "92fdfd46f35c3cb6f2a357e0f089c0625081e3ef70f53ea11cf67de8d84a064b", + "finger_print": "ebe1ad4e", + "index": 3, + "depth": 4, + "parent_finger_print": "196efba4" + }, + { + "private": + "xprvA4AFGXCPAnMRFqvHkw5iEmDCFMSQnwpreZxzjcrKw6f6RpYGryt36yKcsYz9ZUaS9Gz5diHcWoq82PZKgG1xNGmE5XrjRTn9tF2AtMSGXo4", + "public": + "xpub6H9bg2jH19uiUKzkrxcibu9voPGuCQYi1ntbY1FwVSC5JcsRQXCHeme6iobUMLC9xg7A5g8gjhctuF6PqckPnEHW3cgpUKM7ynmuSRwCo9v", + "chaincode": + "38176ee2528e18423ac520b271addd60e0cbf395d0dc5e973f201ca8e81bec1d", + "finger_print": "d84e8ab0", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "ebe1ad4e" + }, + { + "private": + "xprvA5u37zdmDQd9gPB9QLUBnPiTwt3b5PCRtNjHSa5PsQ2qdipyt5eYaQkdDzHemCsBzZdSSmcNYNgB6VK7Ucbgf3MEEfi7iMk6xPkwNkp1Bar", + "public": + "xpub6JtPXWAf3nBStsFcWN1C9XfCVut5UqvHFbetExV1RjZpWXA8Rcxo8D575Gxs2cVKpACUMMszxKjQPbKe6XEqkqRNATsxoQ6YRihNVAgrBS6", + "chaincode": + "7e61a2daf3f3868ea39cb65dd68c8765588107af10f10df95187047d51fd3c02", + "finger_print": "013bd064", + "index": 5, + "depth": 6, + "parent_finger_print": "d84e8ab0" + }, + { + "private": + "xprvA6CV5XovffVvKjPyspaNYrNGSa4L5WStTQdLwvs2PbXPF22XksBwyLCRuddPRh3JXrjqYff3RMnN8eKtwWGoKGKoUnBJjEUS81mm5p1KRV1", + "public": + "xpub6KBqV3LpW34DYDUSyr7NuzJzzbtpUyAjpdYwkKGdww4N7pMgJQWCX8WukwmiHQGCWyXMsmoqninrhKvKC5wBVoxvhVZNkr1aXJ23zxczrEC", + "chaincode": + "69374fbf5c1f84432a91bda556e1f3f1af5e67621d0fce79b4a331a12b2dc0dd", + "finger_print": "5f044e12", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "013bd064" + }, + { + "private": + "xprvA8mbpZKD5jkHjtdKcNXTcUY2MwGrRvzesvU6a5K7PPFKwDnrCkrah81KmbwnWHqEWf1Q7Qwt6vjkfCwqaz4dCk3JiKwivheFyDDDfJKVTX2", + "public": + "xpub6MkxE4r6v7JaxNhniQ4TycUkuy7LqPiWF9PhNTiiwinJp27zkJAqEvKocsvWgTeX4HnT2ToxyZxTGZsyk33qKMZnG33hvEGzE8JT1zuZh4x", + "chaincode": + "ec7b01d7c2311cb6f64d36d93f8ee01ebda536f18d6d5f1790b34d0a5f2bcf6a", + "finger_print": "cd279628", + "index": 7, + "depth": 8, + "parent_finger_print": "5f044e12" + }, + { + "private": + "xprvABTgwvoogcfrST6UE9CdMRFbrv43MFjtWGRnXd8TaizahBXCtr3DGQAMxN6ruUqbtSZXhQTo679uF4JSVW8q3iPQ7KjEHgHuimRT1mF8RJ9", + "public": + "xpub6QT3MSLhWzE9ewAwLAjdiZCLQwtXkiTjsVMPL1Y594XZZyrMSPMTpCUqoccPL4paP26cKSPmMQzPmuPHNesiLV5XuJcbK8vU4dfSK6W1qTE", + "chaincode": + "a6c63dce39a947849eaba44a46366e1afadd99953686714fd00f4ef5f0cae26f", + "finger_print": "fc0fa721", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "cd279628" + }, + { + "private": + "xprvADgpcjmGRH7UXBa3j55oGQTe4AhY5kkL8fTiBY2D8jwirCKYvfhHtzVMGofHk51VTaRiSQcPRF4kq4KF7BFJukEgfdXygR8hsxCZ6QRNJfy", + "public": + "xpub6SgB2FJAFefmjfeWq6codYQNcCY2VDUBVtPJyvRph5UhizehUD1YSnoq86JLKrosdKPriBzQNDUSffuLrSj9jJNTHxiAH2rtiNqPFxULgNV", + "chaincode": + "c0873c4c9e9b1e9df5d2233843612e66a5b0907e220fbd06cc84419cc34e0bde", + "finger_print": "11322904", + "index": 9, + "depth": 10, + "parent_finger_print": "fc0fa721" + } + ] + }, + { + "seed": "ed0a2ed1f0582d83777a276eb575610b6e438fc97d90fcdf6d59b3ad6c2b077d", + "private": + "xprv9s21ZrQH143K4T7rG3ruHrSBTMC7tbQWFcNC3JbgrYin6sjJaYRJT6npsAvegX6MZsujix4urKF2MBWfQeQPvWWZj63pWzSPSp27DBq63hH", + "public": + "xpub661MyMwAqRbcGwCKN5PuezNv1P2cJ48McqHnqh1JQtFkyg4T85jYzu7JiUc1dGQXbUK5wDUBYBHpFgDUY7wP1WWgz5MpDRRwHK5RNVQPmqV", + "chaincode": + "f04d09470cd7eb771ac267e6c815a985fb0400b3a9d422f8b9b9fde8c5989a31", + "finger_print": "f9fc0ae3", + "child": [ + { + "private": + "xprv9vjiYbptMjU7nNnQUuwU4t5kuAsBLXQbavXcTYGohj1GFAoySsmzh5ouAnoBe1jhemDnYGDwWWnao2bQeXY3KEeUqH4S4ihmHx4oNcXfXzW", + "public": + "xpub69j4x7MnC72QzrrsawUUS22VTChfjz8Sx9TDFvgRG4YF7y97zR6FEt8P23P6Nuq7LQY7dAJdPpSauYG2uQYxo2xAUHZYAPS1MQSBmf6ufSD", + "chaincode": + "8f350482a3e3053a38eadaed786dc814f7baf0c53056112374a72f6a4bcea94c", + "finger_print": "fe4bc18f", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "f9fc0ae3" + }, + { + "private": + "xprv9xeh1NfrH7tRCRNTTFRVZNPSBFvRTDmM6VUGJ2tySwvsiD8rrpVekZcZz49QKQpgrXR22jrpypEzFFsMoLpugQanU1oMRYewjua5xHSPTsp", + "public": + "xpub6Be3QtCk7VSiQuSvZGxVvWLAjHkurgVCTiPs6RJb1HTrb1U1QMouJMw3qKZ8AYSsjhCBdDKDm5W6SsWrJe2LLyEXUSfzA5acvk2KGmKA2FM", + "chaincode": + "0ed1cb40b54ce221309ae2e6b8b64644594e92a0de76658c0521704426394d53", + "finger_print": "c0535b1d", + "index": 1, + "depth": 2, + "parent_finger_print": "fe4bc18f" + }, + { + "private": + "xprv9z5Qb1CX76eX978Ri2maB66xDQoKiuxEZsXvNketU81YM7hE78rbNgX5fDvFUiRFRupCk7o1QqXH3tdcNhSinAY4N5RbDAXo8UGA9ZJUaGx", + "public": + "xpub6D4kzWjQwUCpMbCtp4JaYE3gmSdp8Ng5w6TXB94W2TYXDv2NegAqvUqZWXvWp76hBGP3ritzv8LsYjLQHvyrZLAyjBH5S7fL2CskPEtFJc1", + "chaincode": + "e908ca6df2b585b0eb42dbbc67fa3001f19cfd3233f6eff06028a1f828241cd9", + "finger_print": "c7e636e9", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "c0535b1d" + }, + { + "private": + "xprvA21miFNEzrKCtZv6gtz5xnYAyMbR8tsqYBubVi8dinbRJPzTnkx4sQ33WRxc9x5Zg9EmtGdiUEVNwVXCHUv9ojvgHg85npd1AHUGVH9rScb", + "public": + "xpub6F187ku8qDsW73zZnvX6KvUuXPRuYMbguQqCJ6YFH88QBCKcLJGKRCMXMhXi1GDRJMqcMNSHorn9wXV5xtK1XEuW4LDF7Fx76HwCfS2uqHd", + "chaincode": + "5bb6bc5524cfa3ac4b1ff4617a317907bcb3af79f744d962715f3c9cf26a13a0", + "finger_print": "57b81e97", + "index": 3, + "depth": 4, + "parent_finger_print": "c7e636e9" + }, + { + "private": + "xprvA355oet3nDWTgbMnuh8D6K4tpm6CUc6iSdekdgHzUNEuyUgHiWFcHDsXCbrtuBhEuGkZgyy7V2JVngveWgw7x4gNNFVMPWcDiehkhWBpc4Y", + "public": + "xpub6G4SDAQwcb4ku5SG1ifDTT1dNnvgt4pZoraMS4hc2hmtrH1SG3Zrq2C13sQ1auTEg6CLVGpGujnJNep2Fg5gadfVboLUo2AauLujkBECRiw", + "chaincode": + "3b514e48e4ab5b4d77c9b86ad0f3ea8e729c44fcaca8793e0deefe5f497d1af0", + "finger_print": "5ee20d17", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "57b81e97" + }, + { + "private": + "xprvA51Go6gv9xExQyMs1Te5UHjADuhY77QLncMxQP2qo8wxZWBSBLT3j3tMNbEQEGvsxVNZaAgY4sBaLkQzAzYfvXDie6eU9DGe2b75e5CVJwu", + "public": + "xpub6HzdCcDozKoFdTSL7VB5qRftmwY2Wa8C9qHZCmSTMUUwSJWaismJGrCqDtSEjGDWUtgeGgPfXRe3qPqWgGLX6mXNkwNmNuH7NPfoYSUfb2b", + "chaincode": + "2d1e8da4f03396713e5178b883eeff0dd5f0478b986bdd38494b3a3da05554d8", + "finger_print": "ccd5da4e", + "index": 5, + "depth": 6, + "parent_finger_print": "5ee20d17" + }, + { + "private": + "xprvA7hHLVDeuPqctHGfBk5xTSDqPNioFRQ3AC2Vu6ibJbGD3yaCJHTZr7vHZYk3Eh3t1ck9yyHnuiY3SGtVrMCBVPSmAqyjd4vHJtxpfP83NEd", + "public": + "xpub6LgdjzkYjmPv6mM8HmcxpaAZwQZHet7tXQx6hV8CrvoBvmuLqpmpPvEmQqbbFeAoGAGzqHMzAh6YWwEhEG8a6vPEcLkxGjYUssXGLUVMk1Z", + "chaincode": + "672e80df1eaa69ac5578c116f241d59586f038d47f62d58191c963db757efeb5", + "finger_print": "43c8c1b6", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "ccd5da4e" + }, + { + "private": + "xprvA8ZzU3D2f2sSoMr92MgokRHR5E4FY5PdYmjq7trZ5bhTPjmzjjyPd7Ncm7SKAxF5jSMZdCGJn28dYx6ap58nwxHBe2vvesHwRWkJMZ5RbBP", + "public": + "xpub6MZLsYjvVQRk1qvc8PDp7ZE9dFtjwY7UuzfRvHGAdwESGY79HHHeAuh6cPoYdJXGXqjG1N3eVg7Cp8CHYZLNKR1ttiJkwErjKBk4kjHMyR8", + "chaincode": + "36e716ebcccb4146d6c25e0171f68bfa2723e3161adebb73b1db70eb00efe552", + "finger_print": "77d5f568", + "index": 7, + "depth": 8, + "parent_finger_print": "43c8c1b6" + }, + { + "private": + "xprvAAqKMRaSEtMjueKQhSHu2dZWomrbnwVsCxz7kJWkDFvywQ8SZD8yNEQZYjLBxtxByYcj1TmRuMndgibczqaBuucXScXecs3VfRdTuA8xbGt", + "public": + "xpub6Ppfkw7L5Fv388PsoTpuPmWFMoh6CQDiaBuiYgvMmbTxpCTb6kTDv2j3Q2CkQMBUPoyscpqsHrCJhie14obkf8eiE5jcbEdv2KAng1JvQhL", + "chaincode": + "b461a78ba38044a990cc387aaafb9219e61e73f910d818d8ec5edd745bdb70a7", + "finger_print": "9cb5a5ef", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "77d5f568" + }, + { + "private": + "xprvACzAxDrTPJ8S2hc2FVZCuE5NggZySThUfeM8N9ZWnP6fzUnKGh17MbcrhURTzKCoAjNnrrsh82mNutZDZ3M9pLa2kkPb5EWJh81zWUb1wDf", + "public": + "xpub6RyXMjPMDfgjFBgVMX6DGN27EiQTqvRL2sGjAXy8LidesH7TpEKMuPwLYkMrWa2p7WYJZ8qrWnJog9PmrV6dF6F6bmu9SF5A7BxGq4jg2Kd", + "chaincode": + "2e492340a9c571ff9f5c1c91d29fd663f8f5412c77cbabfdc266f5a79b10e7e8", + "finger_print": "0cc2c10f", + "index": 9, + "depth": 10, + "parent_finger_print": "9cb5a5ef" + } + ] + } +]; diff --git a/test/bip/bip32/secp256k1/secp256k1_test.dart b/test/bip/bip32/secp256k1/secp256k1_test.dart new file mode 100644 index 0000000..8ae8dd6 --- /dev/null +++ b/test/bip/bip32/secp256k1/secp256k1_test.dart @@ -0,0 +1,33 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/bip/bip32/slip10/bip32_slip10_secp256k1.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("bip32 secp256k1", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + Bip32Slip10Secp256k1 w = Bip32Slip10Secp256k1.fromSeed(seed); + expect(w.publicKey.toExtended, i["public"]); + expect(w.privateKey.toExtended, i["private"]); + expect(w.chainCode.toHex(), i["chaincode"]); + expect(w.fingerPrint.toHex(), i["finger_print"]); + + for (final c in (i["child"] as List)) { + final index = Bip32KeyIndex(c["index"]); + w = w.childKey(index); + + expect(w.publicKey.toExtended, c["public"]); + + expect(w.privateKey.toExtended, c["private"]); + + expect(w.chainCode.toHex(), c["chaincode"]); + expect(w.fingerPrint.toHex(), c["finger_print"]); + expect(w.parentFingerPrint.toHex(), c["parent_finger_print"]); + expect(w.depth.toInt(), c["depth"]); + } + } + }); +} diff --git a/test/bip/bip32/secp256k1/test_vector.dart b/test/bip/bip32/secp256k1/test_vector.dart new file mode 100644 index 0000000..beb5300 --- /dev/null +++ b/test/bip/bip32/secp256k1/test_vector.dart @@ -0,0 +1,1322 @@ +final List> testVector = [ + { + "seed": "a4e110279ab79800c8f6dda3127fa6256f95af99715bd01af0ccefed95843abc", + "private": + "xprv9s21ZrQH143K3L5giUemUfbrA1iXRUymQHhtDXsCBAmF1M4Kpvj7tb4eC1J4hK4EuwBMGdKnqUV31RGLS3LQSDdoWWBfsfKBvxGSXAWcJ4i", + "public": + "xpub661MyMwAqRbcFpA9pWBmqoYai3Z1pwhcmWdV1vGojWJDt9PUNU3NSPP83Hgm7LLAz81oZU6RFvXsdYzwzNfb5HG5ehd4DNB7AJTe27gUMKd", + "chaincode": + "7fac224232cbde6f0551556a076cd43a4588a5e3be1c1fe0e74028d1b4d82d36", + "finger_print": "e4d1645d", + "child": [ + { + "private": + "xprv9vahBPqjXwiJQt9ge6ryz3z7NxdAjxdo6w1Eib6Wtzhdddf9CAX44iFbAFCDSg5U2Nx2FcgYaEkKAWdbALhJYyk3b4LnHFcB94rEeEVb3wa", + "public": + "xpub69a3auNdNKGbdNE9k8PzMBvqvzTf9RMeU9vqWyW8TLEcWRzHjhqJcWa51WTZb7UibLQnXzFonQesSgKVmGs5j35wT7apAkYRumtiacBcHAS", + "chaincode": + "48e607fe5049b880de77ceaf4903a5356378a7adbc84956912b7a5cd538b7174", + "finger_print": "35a338e7", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "e4d1645d" + }, + { + "private": + "xprv9wB9XYUM5i6wxhPUTDHMUzx1S33YhevQdBMYwM3kVRFTL1CdoAH75ruqmwxkLBRun2FykiWuPCnQtdk71ospuYtUZHt3X3XXoKVkdaTRT3y", + "public": + "xpub6AAVw41Ev5fFBBTwZEpMr8tjz4t377eFzQH9jjTN3knSCoXnLhbMdfEKdEhj4cjXEysXsjQGhxPQSXMYF4wogUAcHuZjmeSC4zUr1PdhcQC", + "chaincode": + "9980d2e09138c28172583eaeada70a0ef79c259a36f2d5e3c4b8f880d55ed93e", + "finger_print": "2eef91fe", + "index": 1, + "depth": 2, + "parent_finger_print": "35a338e7" + }, + { + "private": + "xprv9y1RgGZEgttqWuGBFDQJ7YjHmAaqURY2jm86orwUHkQkRjb49edFRCJuNu6NYFzozBN8SyBLUnX5SZaK5Fcu7cJyKLDbrcGb9RnfbEw5BKR", + "public": + "xpub6Bzn5n68XGT8jPLeMEwJUgg2KCRKstFt6z3hcFM5r5wjJXvChBwVxzdPEBJjsWKrUckBpo5VZhv3roi3z6fCZAv8GS1zK5qQMydzyFyLjf7", + "chaincode": + "b9826840adbfb34fb7c9feba1469fb6821b530d8b962911cf131a1ed6c198c45", + "finger_print": "e5f3da1c", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "2eef91fe" + }, + { + "private": + "xprvA2EaouFHDRcErLvJn54kFg9v3inzzzwD46yEBGLpvoALL1qfbQPL4c42fazPcyR3jhRNWRKg7XKQW3DVHouA8XTpFA9yDfSogQmAmidUbfn", + "public": + "xpub6FDwDQnB3oAY4pzmt6bkcp6ebkdVQTf4RKtpyekSV8hKCpAp8whacQNWWtAZqkrDYPCXQYwgFSTArH4pdTs1v1GGF3eky4MsjL1pgn6J7KS", + "chaincode": + "7db04cf1d1b3b38bc4b3b298b519d6e04cbe397416512103aeb8bca0d3ee4ce7", + "finger_print": "8f9cc7a6", + "index": 3, + "depth": 4, + "parent_finger_print": "e5f3da1c" + }, + { + "private": + "xprvA3UupaLt6PduQRFeCL8aruYouZwR8MKPY4gwqYK7Vkz7yMUeMif7Ma29RBEsDKKzX5TQjr4sryGrJcGV2Cupkbm3cxb99dmedo4R4ofoDEf", + "public": + "xpub6GUGE5smvmCCcuL7JMfbE3VYTbmuXp3EuHcYdvij46X6r9onuFyMuNLdGRGKz1A6T9abEJM1a36uBueWYRkiVquThr8tnUah38dQXQ9RGny", + "chaincode": + "c8633ec29f0817ff79e19611965b0dd01e859f1d4c317b4588615b9e5a699642", + "finger_print": "a0b2d7c6", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "8f9cc7a6" + }, + { + "private": + "xprvA5VL9oUTEMeLPbMJzAzWc5R5hb7Nd4Zkn7gjDz4MV6ua9crcSW45gHUaCM7TnZjDeYZkzLqSDCdNSgE4NJi6mSisMqiQc56jHAswMA9iYw7", + "public": + "xpub6JUgZK1M4jCdc5Rn6CXWyDMpFcws2XHc9LcL2NTy3SSZ2RBkz3NLE5o43bZEjAsPnNdgdY4M3i8vmUksFxiZtXqNGuGubq8CjGVpUPCSXE7", + "chaincode": + "0ade2b80328b39631e360019ea3e89d3d58d48eeaf5419c556b48739ae6565fb", + "finger_print": "e81878ed", + "index": 5, + "depth": 6, + "parent_finger_print": "a0b2d7c6" + }, + { + "private": + "xprvA7tuNcuiqmzaFN4i4uaRYb4zkuTvjUskmvH1iWyWnfPPS5xCGFy4ZViBXLvMBb45vzjbqHxvWM1Zi4LWn4UQP8J6ZDwSk63EtAtJ7o4kSUp", + "public": + "xpub6LtFn8Scg9YsTr9BAw7Ruj1jJwJR8wbc99CcWuP8LzvNJtHLooHK7J2fNf1WzPZykL58U4MgvaMCCbnRC1MLrdHyFwuo5aFxJ5j6d2nXZTG", + "chaincode": + "bbdec7bf0bb6ba1f38901786989e28c52fb1efb6115166be2006d07faa10bd18", + "finger_print": "df1e4156", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "e81878ed" + }, + { + "private": + "xprvA9iDFphwVKbniGuoeXrssMEpQckaNz96jP5f9HotJq1t8YTCa8iJEuPb1sG5Q9s2pKaQKia8MG822zk8bnxys5EBbxC23vvRaNRfCnUqBWj", + "public": + "xpub6NhZfLEqKhA5vkzGkZPtEVBYxeb4nSrx6c1FwgDVsAYs1LnM7g2Ynhi4sAJpweMVgv8YfZr8JphiUeE47FBbs9C6ooL7WB3i39WSvJNyNoN", + "chaincode": + "27285c03ae52b22b8ae7750b7536863075ad5e3caee19a21e1d40baef9319c3c", + "finger_print": "d7748af8", + "index": 7, + "depth": 8, + "parent_finger_print": "df1e4156" + }, + { + "private": + "xprvABY5e82hQKXHnSW3xRbmAMfjNvGpXEhLxEwqcPw9GqX7gghuZW7v3kdCZqzTmiFs3KkD5AwoFW3dHKzmGeuYRSKpM9GZymDcjaQnMkwVi8n", + "public": + "xpub6QXS3dZbEh5azvaX4T8mXVcTvx7JvhRCKTsSQnLkqB46ZV3473SAbYwgR96fToNDcFXyhjFbUchUnWXZvwNU3F8iBzgHM7A3tbZ8JFDboUv", + "chaincode": + "09b2734da1e700eaf0fd42c3539748ba1591740d591cc1ea38948abec3ab30b2", + "finger_print": "a292d8bb", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "d7748af8" + }, + { + "private": + "xprvAD2fwv4Zs22vdH2jTYyjQAHNMHJXBXTvv7xva9VmWyYiD2KboCEvJRii6EbBkRqMRbEubHJCpZ6zPuVLjP6kHaEa6jytQXRKEK5Q97jnYFw", + "public": + "xpub6S22MRbThPbDqm7CZaWjmJE6uK91azBnHLtXNXuP5K5h5pekLjZArE3BwYXR3eLYHomJUJVvtu2muC6ug9iU1N4i8Yyk1KMP16ctgcnbjRH", + "chaincode": + "af7f45d0b943663d7df442a34a5f4690154530f325863caf8b8924d21a2143a5", + "finger_print": "75c800b5", + "index": 9, + "depth": 10, + "parent_finger_print": "a292d8bb" + } + ] + }, + { + "seed": "d60037197962e37e30934edaca02eb945178d322c03642e6501d69e0ade39ce7", + "private": + "xprv9s21ZrQH143K2bFKQhAtLfsHT5J2y5sNJPUTW1Lt1Y7VWpgwX7RrrKn7dahisMT6pzZrsKcHP9h1v2uVXbJzZQUwr6pveM5McfDgTGqWr5t", + "public": + "xpub661MyMwAqRbcF5KnWihthop2178XNYbDfcQ4JPkVZseUPd264ek7Q86bUqDHCs7jfsrGD2pyJk5o8RbwxLrUVY8oTGVjwdARtDqmePH9TZo", + "chaincode": + "357ea213f2ceed715ffdad446d37ba618b9315843399f55d02880797cb03663d", + "finger_print": "0534af0e", + "child": [ + { + "private": + "xprv9twN9KAgZLSm5nLmeDXK4zreXB4qNH27c62bzvz5trJJgpcoD3EeoGcmLXC7mLXMqJ2wpm4ujscEgZ7W7JkS6Bnm9vMjnNefrjr7eynCmFT", + "public": + "xpub67viYphaPi14JGREkF4KS8oP5CuKmjjxyJxCoKPhTBqHZcwwkaYuM4wFBn5A78wEY9mvenEHut5SzLNXV8iwjCxzzPkKyXMCgwoSvzLuPAz", + "chaincode": + "dad3acef45013692543d0e352d7e2a4a1d4b8c6870242f653737cb54dca69306", + "finger_print": "8907c15b", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "0534af0e" + }, + { + "private": + "xprv9wnhVjfV2axxo2AYoj47jg5kLSEDRKxzfWjhq3boKm5JQrdCBALb8tgUc4YQfTTNodL8x92w7JwFjZdGGsKWmRTyZZxmjMQqRqgFGxHCpq7", + "public": + "xpub6An3uFCNrxXG1WF1ukb86p2UtU4hpngr2jfJdS1Qt6cHHexLiheqggzxTJsFdbTUmxBjxDwhfEiKjV5D3uJ1PdDbHT2xu9xW22myDh6hTMB", + "chaincode": + "a2a71b1480bf8c3ab6234d84116d7da785840aacbbcf362425b93f72b78e7c50", + "finger_print": "81aa3623", + "index": 1, + "depth": 2, + "parent_finger_print": "8907c15b" + }, + { + "private": + "xprv9ychEjJpWnEnZB4eeWq5t13BLSWYvTBRfnxV7gSFgEXAxmp4KUVmZDMPMBsEAR5g1bHZoqhdA1LB4h2WPBvwqC8aA6kF4vhSm7AG3X7P8BB", + "public": + "xpub6Cc3eEqiM9o5mf97kYN6F8yutUM3KuuH31t5v4qsEa49qa9Cs1p271fsCTPoyYTvi6bbbtxbv6LstCCp6YAWh9giEHX6JJEuNKCwoDFL8cE", + "chaincode": + "4c5b85320a0338f044f2b96f1e3b2f64691e586281e75cb05940c50a296639f6", + "finger_print": "1ac621c1", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "81aa3623" + }, + { + "private": + "xprv9zjy1kCHB5e2UswaNtD8LGoT1h75Au5gvZnkUJKSeEjrGFQ1SSTgv4RP2AwfGtHfYaCteoS5xNrK4bSwsSaiZsag9ca1HuRqaLQN1CaBtJC", + "public": + "xpub6DjKRFjB1TCKhN23Uuk8hQkBZiwZaMoYHniMGgj4CaGq93j9yymwTrjrsTWEtBAU7nJSBH2cAS5iv6mibqQ4biwWqRtVoVdqM4uwCzviRxT", + "chaincode": + "52f4704f7e1d3c7025ed6c7ca3325c7dca25126952977620a77c8a8627c04d65", + "finger_print": "06339b83", + "index": 3, + "depth": 4, + "parent_finger_print": "1ac621c1" + }, + { + "private": + "xprvA2ULCXpAXc7xR4QasgHQsRgDG1GWTku2Wiu7uCY4StD1gkKGds8Cr7AWgfXH2Bmsm5GzZFomKAUTrAWcwDjFix6rSLHWmJqhk3U1QZ9Qo18", + "public": + "xpub6FTgc3M4MygFdYV3yhpREZcwp36zsDcsswpihawg1DjzZYeRBQSTPuUzXy3ZTD4jicdcBdWG837DvzLHLPc7WzUFgzUdA6dTaD4m4BA88ix", + "chaincode": + "7c5b37f48564530acb9727407a018cca4e8d0f95c0731935a9c9ae18f3472e0d", + "finger_print": "0f67940b", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "06339b83" + }, + { + "private": + "xprvA4RPcS6Wjvpjrt3hh7k7Zx1cbpHMA4JXjRGtea1iHKhz1GniMXjiLh5XJxpjKF9h2bhM8FJ1fGGnG9FqUZmxMgFirBhSfNbLnmnQYaByZUJ", + "public": + "xpub6HQk1wdQaJP35N8Ao9H7w5xM9r7qZX2P6eCVSxRKqfExt57ru53xtVQ1AEdnQ5u5RwLyBgqQC7PJTBw1azFm57bUFsbB54Kf81zXg7WYXCN", + "chaincode": + "90fa18a32e90d9f32812179be275b71d861ec31b806e6463ce76ef6bc173bd36", + "finger_print": "96433ecc", + "index": 5, + "depth": 6, + "parent_finger_print": "0f67940b" + }, + { + "private": + "xprvA7J1yLJDNzFSDEumDnSbNYqQsW2ueXUtK9dYL5q2Rt6m1rts3hVpA1PjoLW37ZtGnMZdseojxBN85E9eHEpnVk6aNKHvqpYHGYGhDiQvDZV", + "public": + "xpub6LHNNqq7DMojRizEKoybjgn9RXsQ3zCjgNZ98UEdzDdjtfE1bEp4hoiDeeTkUMcGpNYv9yYJsALw1F5kC8EdE9UBdr38Tkz8WSQ2WjctF6b", + "chaincode": + "71da91e07d22e2b858289ea77e369fcc66862d388c935fef2f13d066500c7351", + "finger_print": "4dbeea51", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "96433ecc" + }, + { + "private": + "xprvA8eEmzYQyfVZcRXEZSg2Qzjg7eWK8C8Gu9MM6Zq9jvdAj6qCH59cfGpbWdBUXfLr5E7bbkJYaUKqM6CXZzgpkzb2NoSpjuxmZQE39YkWE3F", + "public": + "xpub6MdbBW5Jp33rpubhfUD2n8gQfgLoXer8GNGwtxEmJGA9buALpcTsD595MuaDZJRyvibaAbfCRZ3wnWfrkeX1wdcMgPc36rWxGLk2ERQwU2V", + "chaincode": + "a35f2f10df4127ff13657b00fc1dbd740c79002fd575d021798812ca851c0bff", + "finger_print": "4b987cad", + "index": 7, + "depth": 8, + "parent_finger_print": "4dbeea51" + }, + { + "private": + "xprvAAWTUHYBgo2CXMcPqDy8xue4H6Bsv6tW6F4RSPA1oyaMFDfqvX4sUf83Mr5Q2eBG3uSPn6gbcai2mj72ijL7pCsYqp5GVykkGqEs5fQoTms", + "public": + "xpub6PVoso55XAaVjqgrwFW9L3anq82NKZcMTTz2EmZdNK7L81zzU4P82TSXD8U2edZKpvdv2RayEdXZFeeZh3GgAbWkzWuvKg3aZ9B5ErUEaCx", + "chaincode": + "42625b569d4b3c23709fd87c17f372f4783fb8303d2381a3e307b14ec4dfe12e", + "finger_print": "2ae6994e", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "4b987cad" + }, + { + "private": + "xprvAC9ev53MmRb9w65zNGu3rGbSqoGawvUik987edZLLzjDFwYGsvPvkMViaC2ut6NJedXxj4jaT9A7HnbC1FmGiapXKpbnKyYkTbEtqJ9Aekf", + "public": + "xpub6R91KaaFbo9T9aATUJS4DQYBPq75MPCa7N3iT1xwuLGC8jsRRTiBJ9pCRRkpkeb9TRcHqehuJ6FBNDbS82SKFmXySsk9twa3uMaNDSMvYac", + "chaincode": + "54f7953570f5bc9cd3fe809ff9888beeaf7888982bf18bddd82f617cacfd7b13", + "finger_print": "952458af", + "index": 9, + "depth": 10, + "parent_finger_print": "2ae6994e" + } + ] + }, + { + "seed": "cc11a8f97ae11b12caf6ffb051c98216e9830052ba289b1b9f1fe028715df47e", + "private": + "xprv9s21ZrQH143K4ZsX1Cb7d5arAzU3Kvf6uAv6hcrPML9tEW9rT2g1ktv6a4sHiV8yXaxPwmSijgoMTFPLp1oXyoUuGqiPDDNw1Z6zsYoM57k", + "public": + "xpub661MyMwAqRbcH3wz7E87zDXaj2JXjPNxGPqhW1Fzufgs7JUzzZzGJhEaRK7HUeYywq8TzXqQKUKfPsTp7qn5RjtpFaVUFXKYMmSLT2EDY8T", + "chaincode": + "fbfec9ca801cd24f3ded72650a94ec5736ec8a0b04b597ade67fc20594b6a0b9", + "finger_print": "8eff86cc", + "child": [ + { + "private": + "xprv9ux7CWGtrhPxB3gCHoCpizxfg8bznTDRhaNvLZirsQPNDN4c7rWRThkVvY5FBaRMQMsGhvZGeU6vrGEzJPATLWqjzzjUzvQcfEJgKxYBzPL", + "public": + "xpub68wTc1onh4xFPXkfPpjq68uQEASVBuwH4oJX8x8URjvM6APkfPpg1W4ymowcGkkcBHHUvLJHL66aQVazBBND8XXatE7tQoSakW3Ttme4cuQ", + "chaincode": + "d63e4c760607b11fad019091d901c47cd2ee4b2a287dddd460f133287d104d72", + "finger_print": "e4d6ead5", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "8eff86cc" + }, + { + "private": + "xprv9xTqa8bkcf8vNQNdqnMm7S6Ejg1CtFAKDGuxajZe9AVyVczNBZxEXMq68J8s4poGvJgiprKrJN83DUbwY3cS8K64VxRApp4unBDpoTpmnwz", + "public": + "xpub6BTBye8eT2hDatT6wotmUa2yHhqhHhtAaVqZP7yFhW2xNRKWj7GV5A9ZybDBab8jiGAJSxfhfuj5C21QPE3YH1tTfjkuk1hrMm9U14dkLcP", + "chaincode": + "979df9b978415ece9b0117bf375f895c729df74514edfb2c9062406eea1e4c21", + "finger_print": "0c7d8544", + "index": 1, + "depth": 2, + "parent_finger_print": "e4d6ead5" + }, + { + "private": + "xprv9xkjyg3GRy8PoQEo7B8ymaUeMXSs2T1v7hupmr6mzHQt3a1D74oKzk9pUUDwvpY6YZQ2aBXEfhnsvKeKh2cthvFejda8RWa1bDC7wNyjZBT", + "public": + "xpub6Bk6PBaAGLgh1tKGDCfz8iRNuZHMRujmUvqRaEWPYcwrvNLMec7aYYUJKjFw1Br7DwsSRWNBfu3M3pzTjT2bvAyBh66yhK2qh23rR3nQ6Sk", + "chaincode": + "572be7811df5324e09c749bc1c9e2c2442fb167f78621ff64055c7d38b5d40d9", + "finger_print": "c7d04d0e", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "0c7d8544" + }, + { + "private": + "xprvA21jbVLZpxeC3h5H8ER9iNgeEHSTA6rn2nBxeB3r42CDLadYWLZdrLAA1CkujJCit52Xwf4uRWKyqGCGF4DQ2CmYU2NiBkDp31qTJWHsqkz", + "public": + "xpub6F15zzsTfLCVGB9kEFxA5WdNnKGwZZadQ17ZSZTTcMjCDNxh3sstQ8UdrWDRKWwwbvLEzTmvQsorMNo1PqG75vFhCDMbk9q51sMQ7NZicrA", + "chaincode": + "be79c64765868c4ddaa5c72e0061e2c0db56fd1745793e315674fd5416a571c2", + "finger_print": "95bcc72d", + "index": 3, + "depth": 4, + "parent_finger_print": "c7d04d0e" + }, + { + "private": + "xprvA3XXGUoPBQnJ4hm7xkfY4beSnNFSjsX6uD5dBfScnszE6QQ9jLhM5FnRyP4ZhS5yjwNxpu7tVxs11GkGbRLBeBhV7WrDfaQ12hCwLgFkNaw", + "public": + "xpub6GWsfzLH1nLbHBqb4nCYRjbBLQ5w9LExGS1Dz3rEMDXCyCjJGt1bd46upfp7VStmJRtxpBbmYuX9LHEmP4tNsaaaCehAKQpHPgwadpAxgRW", + "chaincode": + "9a0d0fdae934b8641744810fa82893d6e2ee7a5ee90a9a072e107e16a782740d", + "finger_print": "44c20b7d", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "95bcc72d" + }, + { + "private": + "xprvA4p8pyhY37yzGK8GqPe1rYsodCxm6cw9fG88V4u4G1UdP6CaPwPbsgGk8jng72MnXKfBipo4ntYorLKxRA9HCwC3o3RxwPPowftrte8J8hQ", + "public": + "xpub6HoVEVERsVYHUoCjwRB2DgpYBEoFW5f12V3jHTJfpM1cFtXiwUhrRUbDz2cjX4cjz4ziyj8huWDGAfkPpv44Sg5EanxZi5wM9QnqZJYfcRj", + "chaincode": + "f7bd57389696ee5d4bfa15f26d785cc0fb128ab1ec337c2e43ddd49e8bd3a31a", + "finger_print": "79e844cb", + "index": 5, + "depth": 6, + "parent_finger_print": "44c20b7d" + }, + { + "private": + "xprvA75vreN3G4rsaJNrhpm2ReYA86G3gjUmttN558A5gBu9QVAkZWpoerNjuwRs3z79msJVayDd8Ztno8MKEiMRQMwbUxqKw7BUrRs85dM2nrd", + "public": + "xpub6L5HG9tw6SRAnnTKorJ2nnUtg86Y6CCdG7HfsWZhEXS8HHVu7494CehDmBLZ9dbwZmtTuNwHVPNpYUp3wY7upvkfNDsCsV53APyeoTtTmvZ", + "chaincode": + "d41b985654a2b35964da4d2c7132f5679c62aad3f5fe7c18c5035c291dddec89", + "finger_print": "1f4762b5", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "79e844cb" + }, + { + "private": + "xprvA8JRqPwsXD8wE6Ham7fvFBogd52sdpD27eih8NyDidqEu5GUh361DXZkRD7FubghxMf38iAzK93BqsZCep9cWXSkwLxroSQ4njLULeLRUjE", + "public": + "xpub6MHnEuUmMahESaN3s9CvcKkRB6sN3GvsUseHvmNqGyNDmsbdEaQFmKtEGVXZWfhfNiXA5pBJ2va8UpVda6vfyq41Cxaok3gWAD2ziATGs4K", + "chaincode": + "e9843d0edc2d23b8e85c9d2d2352dc493eed30362554756dbd369b6f69ca0d38", + "finger_print": "ccf8cfea", + "index": 7, + "depth": 8, + "parent_finger_print": "1f4762b5" + }, + { + "private": + "xprvABTcRu6h2DGZBNaT2qHj8NJvBvGAmw7oG6kpYKVXWbhKMhizbUL3kjARXwbJx9tRG7eAnFvUuEi2AH7A5CcaWXm69mXyCcFrEynw6kTt7gu", + "public": + "xpub6QSxqQdaraprPrev8rpjVWFejx6fBPqedKgRLhu94wEJEW4991eJJXUuPC4D5gvumbg8oMhM5H7SHzKzymHSRK1SJFJuff86mFwg9R9A1Jg", + "chaincode": + "a89758a766e29f1802f4eecb0a6f6dddb854ac3daca86d657ea31e1573d82bba", + "finger_print": "3b50d962", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "ccf8cfea" + }, + { + "private": + "xprvACGeo26sZEdmhvoSPCGD98FSMuizsMhdpUwBcHcW4Wnynqbu6ULUe1mnx7tu7n2RFihDcDoYSqWjK7grvAWK2LEWCpHMWpnPbUhyaZH8NRn", + "public": + "xpub6RG1CXdmPcC4vQsuVDoDWGCAuwZVGpRVBhrnQg27crKxfdw3e1ejBp6GoQoZX4vdbRtGeoLcgGNPaL2jc6ERgvegZf1EqRGNUQwUaezn7XW", + "chaincode": + "4b87b7556791e9cb0b46f478b4d9579a4c08534989ba7155a9b91b104462d3d3", + "finger_print": "c7634158", + "index": 9, + "depth": 10, + "parent_finger_print": "3b50d962" + } + ] + }, + { + "seed": "3d7ea5c89a4a0ab4c9bc837fa1ae5b7b72e98c9d547521ced9d484c3ae457c04", + "private": + "xprv9s21ZrQH143K4TNxbZWYAND3wSrXKAGjBv6aZD23apfjFuVJtsALzjkxGShoF3bR6ehfvksKfk8Ske31ZdrCo7hvdhj18vzZjDJNKLGpr8b", + "public": + "xpub661MyMwAqRbcGwTRhb3YXW9nVUh1iczaZ92BMbRf9ACi8hpTSQUbYY5S7hzff6aq3pDayLkhUmWFQbDJxYj6ukKuT9n7QYfxXghtFbosWkV", + "chaincode": + "f0c086759b019a74a9aa1f509d24a56658be2b1b4744eb9de2e911f9d9691e7b", + "finger_print": "9c4f189d", + "child": [ + { + "private": + "xprv9v3nKfUuLXwd2P39tNYiut75hQ1WzhE2XSAYJvQsVJU5behHVCsQPHfwgrXtXDrXKu9WdEd9KWAuKY8a7YsdCkjfBkMAmPj7AcJJKK3cmeF", + "public": + "xpub6938jB1oAuVvEs7czQ5jH23pFRr1Q9wstf697JpV3e14UT2S2kBew5zRY8isgokME1mUPSvTRhSLziwnejiECFydxTaVHmMnqKnNusWHRLw", + "chaincode": + "90af2cde5debec2e1bf6f47c5bb62fcb0ad2330b9fee0d74fecdfd53a4817ba2", + "finger_print": "27ba90db", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "9c4f189d" + }, + { + "private": + "xprv9w5Dco2Fu2UvkensiYb5SoZvqvwif6DyJG3dkCbGA3LdwZxevt1nvmaY9vu9Nu4CBfhE4WYN2XwjsLHG6acnSKg1dskQsK2UBpdQwngebyD", + "public": + "xpub6A4a2JZ9jQ3Dy8sLpa85owWfPxnD4YwpfUyEYazsiNscpNHoURL3UZu21F5RpprVfeCtmgDvZAMbqRSagapKpwkPaSFrCkyNGYgV2PRmxKT", + "chaincode": + "a0450fb7b579818a58f6314f3aa98b478a21d303e331c255253ff5fb49791e97", + "finger_print": "31699957", + "index": 1, + "depth": 2, + "parent_finger_print": "27ba90db" + }, + { + "private": + "xprv9y2Uv68QLU7WBgWnN8QkiEMXqtF3gWe42KVJrJfpjFUpYFUcGaZPXemmEMR4nZpsdfzkDnhV788TFEYEp2fDdgmfx8Y5rdqQmtC1qUAcaFf", + "public": + "xpub6C1qKbfJAqfoQAbFU9wm5NJGPv5Y5yMuPYQueh5SHb1oR3okp7se5T6F5eQ6kFNSiQH5VpeS4eKXbgK4ekYS2qCTn1kfb3fqE2BiHMUKBzk", + "chaincode": + "08231616c6c56a6348232c3fd9c6959eea2d0e5409dcc9a1b978974131501c24", + "finger_print": "974038f2", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "31699957" + }, + { + "private": + "xprvA1f2q9s7dyCg2J7XWDaZhuJvfwPjAtBBULqRBbJmXCxeune6Jm7sUXmYiUBkK2hkMC4n83VSrsdmUyjSFZ1UNZfeg8pQBWqLwi3Bsc7eoFq", + "public": + "xpub6EePEfQ1ULkyEnBzcF7a53FfDyEDaLu2qZm1yyiP5YVdnayErJS82L62ZkVbJcgdz9WKmyNX2U4qiaJyY7dL5DvNZi4Y6jgCm3fRwfZE52q", + "chaincode": + "2f33d56abe8be11be9c1e83ef355d48f9d133ca646486b55bd5ae91582ea2a0b", + "finger_print": "a3d86adc", + "index": 3, + "depth": 4, + "parent_finger_print": "974038f2" + }, + { + "private": + "xprvA3dY6qPUrqVsZmt81KjYRDfp32q6dzG22QEnNtgaxJrTR7xs5ifQnZBt6stNNELuxuCz9ui4LrciHoVgt5Z4edFTz4Ubo2Jm92h5gto9z3o", + "public": + "xpub6GctWLvNhD4AnFxb7MGYnMcYb4fb3SysPdAPBH6CWePSHvJ1dFyfLMWMx9nCS3YFx3EVnrRe8ZFF7qARH9EYibQMoYuzEPY8LaQyUWm1SsG", + "chaincode": + "d1717496f07e6491b448703445b2fe876425080d0fa2aa103497ea1870f459ce", + "finger_print": "15f8131a", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "a3d86adc" + }, + { + "private": + "xprvA4UBvYvHW34JCKVihirxwxKpYFVgUpG1BJQG66TJWLch416qHzeN7e8wW28hWa4K73WzExYvjGTygV1zkBMnWZwygyZUjC6zr4xfZk2jj34", + "public": + "xpub6HTYL4TBLQcbQoaBokPyK6GZ6HLAtGyrYXKrtUrv4g9fvoRyqXxcfSTRMKH214HU4pL3D1Rw8bnc3D7giNN4hW4CpHFCNiXC4PyA2afqDgj", + "chaincode": + "fcfd8fa8780bb2982de056792442cf01579313fe42e70c3a5e2eb9d10e640ee3", + "finger_print": "8906571d", + "index": 5, + "depth": 6, + "parent_finger_print": "15f8131a" + }, + { + "private": + "xprvA7CNejVnAruZACGGLDyzp8swisNxEVULZoAYda9uLrGmoynBuHvKCpWXtWnonUywmkVtwiU1kwvGJXgb6WPy9xoYBUuiTUhbZ9YQYikwFpQ", + "public": + "xpub6LBj4F2g1ETrNgLjSFX1BGpgGuDSdxCBw269RxZWuBokgn7LSqEZkcq1jkL8wUKD84b4gWSj8d2Z26sXeandXaN1gnCfVsgRQfbyS5X6r2s", + "chaincode": + "84ece77dc83d73fbf3130252c50f0934fba7c0210c13a59f268cedaaf2c7a1c3", + "finger_print": "754fbc13", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "8906571d" + }, + { + "private": + "xprvA8w75W4aussBBYZJ4sHDbsMYkNcYdb2u2unx64ZMVbSWXKLmyxXSMr5jdaQKP6tJZFE1hVKAADrUDDKb5XHn5i4KF46H97Rd43D2WcWNtRa", + "public": + "xpub6MvTV1bUkFRUQ2dmAtpDy1JHJQT333kkQ8iYtSxy3vyVQ7fvXVqgueQDUqiCPbvJo36j1hdXvveMWDvYfSPAKkb4aSD9wuBNpX9xdMKLmxJ", + "chaincode": + "4ac49ac080dd230fc9dbac13603b9bafdc0b18695278665e0c87fd9f5cd3296a", + "finger_print": "73db3348", + "index": 7, + "depth": 8, + "parent_finger_print": "754fbc13" + }, + { + "private": + "xprvAAocxMWFaVv1Cc5iTjitwtJipzhuvqCLvNsQ8MzzDHNc4L9u5JeHFmfzKRNgGtcTb7e1uVUgKwnCgt766kx3PRAeHYmZ5mHkcm67YNFgo3u", + "public": + "xpub6PnyMs39QsUJR6ABZmFuK2FTP2YQLHvCHbnzvkQbmcuaw8V3cqxXoZzUAhzyZMKnXUf8pkzdy4xM4cxoEG8D7D7HUnRJ7EsLbwNJDNd9pCw", + "chaincode": + "38eb9b8243cf2096e3d2888e8be89c4c0fcb7229229625b6034bc8b6b283d122", + "finger_print": "2ae30975", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "73db3348" + }, + { + "private": + "xprvAC9ea7iy3njB9upkbxNDXMZZhe4igTnRAkPDdDYyizM8rKGKPRoiXxtpYEi2gvEc4GN8BNafETMn6r48q3BjVsypBLgrs7NjXFZW2dRuaHN", + "public": + "xpub6R8zydFrtAHUNPuDhyuDtVWJFfuD5vWGXyJpRbxbHKt7j7bTvy7y5mDJPVrfydrK9n4o75MWRtQzg38KxkAf4ktX45jBQGwcDc28neuJu7Y", + "chaincode": + "e383d2bd8661bb3f92be5850b72be350f5b7178a00ca578f01adb115038759fd", + "finger_print": "cd88d2f4", + "index": 9, + "depth": 10, + "parent_finger_print": "2ae30975" + } + ] + }, + { + "seed": "5d6ef00d6a1ea58db7f393fadd8ca8fb16519e41197aedb1e3ae317653fd2b70", + "private": + "xprv9s21ZrQH143K43EQ9bvV2YWY9BhuRhgkmHGWxXL4vRadnGCm69RbmyKwjX8TYVAqRfhxHiGQE9cZnbEAUvx5Fw2udHQTxynXddVND6ZqrA3", + "public": + "xpub661MyMwAqRbcGXJsFdTVPgTGhDYPqAQc8WC7kujgUm7cf4XudgjrKmeRaonM5SHVok5aCRinaMmaMFMQ9nPKh4N9EPvc9GLpUVGqkmXSC81", + "chaincode": + "c6ef36ea2f064ec1621aacb8e474f681b4ef068477a2b7d5ef0b5b073c6ed8a7", + "finger_print": "a9b898f1", + "child": [ + { + "private": + "xprv9v9Vx6HgPhtnWy1DdCgx545bzAbnRBPVVsKaEMWzUtgN8TPG2EvKPZNA7KjPiptiqTWjPEUcGSGDRH66jM2cJsoe2tPtYDQ52CZCvQSjUPv", + "public": + "xpub698rMbpaE5T5jT5gjEDxSC2LYCSGpe7Ls6FB2jvc3EDM1FiQZnEZwMgdxaNd8XMX8p13uYm5PCcukfcXuhTZSfz5bKFVafvqp8xdacUUGZC", + "chaincode": + "709534df02b94f35474d9876e82df16297890df2d6740f4973111f40ad846a90", + "finger_print": "6d3867f6", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "a9b898f1" + }, + { + "private": + "xprv9waqsEnoiEWGu3JZuM5NiYXzH8B23VdiAY8tJ5TnNiUShAMHQ3B1eyUVk73w3HbtLfzgYsCDkTF4LFF6WAa9hGqMKJi1Uy32MpJApDG8hKY", + "public": + "xpub6AaCGkKhYc4a7XP31NcP5gUiqA1WSxMZXm4V6TsPw41RZxgRwaVGCmnybPXobN29qQVHVx1TpMmF8Kuhg9dKbs9ZhLe6VPEtnaCKP2XSyTr", + "chaincode": + "fda9bd05129adfa1d18451b59067d933ec706a9ea79c62d9c711862fcf6c5b78", + "finger_print": "e5684022", + "index": 1, + "depth": 2, + "parent_finger_print": "6d3867f6" + }, + { + "private": + "xprv9zMDU56AvSocMKdmdNXKQN7mpWX4YmJmkUacE2q6VmdMNgok6uyeogmKTcVh44Tqv33zxJqj13dkqdgapCTmUvDe8X5EnEyFGKyYTRrYjig", + "public": + "xpub6DLZsad4kpMuZoiEjQ4KmW4WNYMYxE2d7hWD2REi47ALFV8teTHuMV5oJucgXYZpwytdviTdJvUwcHNhyobCznVJHjVCr7ndaVWsiPAnU7g", + "chaincode": + "9a6520c200c02b9bc5f55e53359f4a1393c39bc9c4330bd91eb7a00f8378558f", + "finger_print": "934a77b5", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "e5684022" + }, + { + "private": + "xprvA1dLv7VcpAgvL1Anc8VzHhWcir57XptLQynu5eSuDFxeaGoNB6NCQWHKdcc1L9ND9WpytYaNytp3mXibe2zPDRuPZxH8cmgS52dn6VqB5u6", + "public": + "xpub6EchKd2WeYFDYVFFiA2zeqTMGsubwHcBnCiVt2rWmbVdT58WidgSxJboUsTtLrYpsJsRYLkd36eF7htJWDSuyXsbeJxf23ALub42aDsQzgk", + "chaincode": + "a462215a8f58ee611b3c9da6fb7e3956f079aceed2ed201631109771552470e5", + "finger_print": "2ea5ee48", + "index": 3, + "depth": 4, + "parent_finger_print": "934a77b5" + }, + { + "private": + "xprvA2maHJzuZjtxqQPnGEx9H43RpdtsyWjfvJA6Nte3DfqvLNDe7rwaRhSrMtHrYB3DD1Q566fpzVPEzv8m3r2HkDkSLSMz2qmYrK1sdX3APG1", + "public": + "xpub6FkvgpXoQ7TG3tUFNGV9eBzANfjNNyTXHX5hBH3en1NuDAYnfQFpyVmLDC6oAUtcaspGaeN4xt1NDRhAz4jTWQnEY1HMgieQTTS6iefpZK6", + "chaincode": + "257921a94c1b97836808b9c312344187c98f7891b6794a8d9fbab75922882fad", + "finger_print": "0a1bcb1d", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "2ea5ee48" + }, + { + "private": + "xprvA4P8fLxd7vn3hJWA2zAuVzKRtn6sv7i9YmUUxSFWyUcdxoFTiLXq6yj9yUHgZGxQA3EWfuSTGWKvY8uGbAjCPFz34EP7kEYRjdo5ksVkgYn", + "public": + "xpub6HNV4rVWxJLLunad91hus8GASowNKaRzuzQ5kpf8Xp9cqbacFsr5en3dpkXAwDLhQhYkXFxKVPSSgospYVdNRCSNBqCD8sLvHE9yBfGchV8", + "chaincode": + "99957b9846c333e9364ec8cc32732dc437982165087a68784fdc8f8835c19bea", + "finger_print": "0015f436", + "index": 5, + "depth": 6, + "parent_finger_print": "0a1bcb1d" + }, + { + "private": + "xprvA6BzhLCYbGufAyojAQt367dH5RhzNx4aqoMBugXF5d1yMN7GkQT3smdtf61Uxg7f8akxqCBwPmi7uHKeH9axL2UkZDq1SX49wCmAE7WZjnC", + "public": + "xpub6KBM6qjSReTxPTtCGSR3TFa1dTYUnQnSD2Gni4vrdxYxEASRHwmJRZxNWLierCkJgVAB842WeCDEuq3fvAnQ6MNQUc6eRcVwufVZje7Hx5k", + "chaincode": + "cd43b5837fc0f5965b21dd7ec5ad20056e19480750a19c6f82b2dbb409256d38", + "finger_print": "2afe2f81", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "0015f436" + }, + { + "private": + "xprvA8PRUdgvGqZwMiDQdMTsBCfJsyZWtSHo183AqUJt4QmjApZ9ktuHxxFoAf5y7h28Jbn7kFhvjfNGpqyr1uVqvZnf7v6GC2SE7zw911NKR5W", + "public": + "xpub6MNmt9Dp7D8EaCHsjNzsYLc3S1Q1Hu1eNLxmdriVckJi3ctJJSDYWkaH1uNxAVoqGa54ytVBu7EMBxg48dxn7vuk7YMhYmEuM9z3a76fU26", + "chaincode": + "5131e74272a3d4d8f1dc3482bac3f61539c4ad6b8a56fa710a2bc3befee0ac8a", + "finger_print": "e7bc942e", + "index": 7, + "depth": 8, + "parent_finger_print": "2afe2f81" + }, + { + "private": + "xprvABf2DQLSF79qwJqUCZvDenFQ1shEzee54QCfo48hQ1Hb9yboML5BMuHwkpQfR25TbRG2QViCeurm73eJSkAZwFfexouxG6QQDXwe8KsjRNM", + "public": + "xpub6QeNcusL5Ui99nuwJbTE1vC8ZuXjQ7MvRd8GbSYJxLpa2mvwtsPRuhcRc65tKaKsKAMKzUtHritXKSMNU1bVyvNuhoLX32CJUKEaaqexD4G", + "chaincode": + "da5beb3d49738b95d008a46a0b7226f031f196506977250d809c482e5703225c", + "finger_print": "170e05ac", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "e7bc942e" + }, + { + "private": + "xprvAC1CCkNgfpAgDaHXyCebgXrusnQkxVGo9h8TcfbqidDgUMAMF5nP2LirqrHBaY1a3T1QCUiye8p7goHfKBinyUi2JwMxuXvXenM2KtoFVVd", + "public": + "xpub6QzYcFuaWBiyS4N15EBc3foeRpFFMwzeWv44R41TGxkfM9VVnd6da93Lh9j9VP7tT7EahafzMCDcLcCAycven2Ny25VHACu44cjs6GKwW3Y", + "chaincode": + "65a0b4567451034677648b7ad2d55c5c1df49349bb629890d6a82bafbbbad150", + "finger_print": "4eb2d75a", + "index": 9, + "depth": 10, + "parent_finger_print": "170e05ac" + } + ] + }, + { + "seed": "efb38eb39656df5f4f77fa93c605215e3ebd42bf0479082bb88041db8d3aa0a8", + "private": + "xprv9s21ZrQH143K3RVbxum6hBMtDNN98Upp8PCbZMK15E83xRi54qE7QpkVoYkXtNxNCiLDGZ8bnmhpv2p5aeuZK9jnw9hrUbtX9XhAXWViSVp", + "public": + "xpub661MyMwAqRbcFua54wJ74KJcmQCdXwYfVc8CMjicdZf2qE3DcNYMxd4yepiP1GFkwK9T5HDCFF1veAJukRdoZ6WGjLcW34ZH9LUMnuzi8RH", + "chaincode": + "890b98cc8966ad399f509886844519a753f57cd16b87902ec04e14d287fc8ac7", + "finger_print": "362357c8", + "child": [ + { + "private": + "xprv9uJE3VJ8czirzz9Mx1ze2zJcPpzBHSj7FJLYqW92ggrGuNYKSQ9YSaBoPvWpxwDSE8kk96ajyXgWRuaNpTP4FZxnR6QucFWqD9h5cSL91Nc", + "public": + "xpub68HaSzq2TNHADUDq43XeQ8FLwrpfguSxcXG9dtYeF2PFnAsTywTnzNWHFDc1m2cRHMRj3kiUVdZs7sWmyD8yXQVzXDjTRxq1pRMsaR8Hkcn", + "chaincode": + "f0edab80e5032f0b8178a4ecff3e458c90af7224b0e8221011263e7416ca448a", + "finger_print": "d189a4d9", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "362357c8" + }, + { + "private": + "xprv9xKcKBhXDUyCFzE5duCS7KgDHVuBoJd9NhTXFdmB92TJiynSePs39681HEbbo6eAAFwJZ6QMsGDms14kqERtznGVXX2Nh1MSgTsUVDEktTG", + "public": + "xpub6BJxihER3rXVUUJYjvjSUTcwqXjgCmLzjvP842AnhMzHbn7bBwBHgtSV8W33VpTeD2dTrodgvNR1fiZBrmf8pQNue9Xs3hNkXB9BHEW5KYf", + "chaincode": + "6a777135f8e997774a274161dd4f5b7d11bd39d59684ba48f6026005e5256238", + "finger_print": "66c25289", + "index": 1, + "depth": 2, + "parent_finger_print": "d189a4d9" + }, + { + "private": + "xprv9yRDxsMMYWT79H9t2Bk8uUz3DuhtDt8hsuk7ck7GGBviatCkXJ1wCaafxAzmdtNon1n3wk74kgA6drfENdb3PXhuFUJ77s4r5r3a5epWgjw", + "public": + "xpub6CQaNNtFNt1QMmEM8DH9GcvmmwYNdLrZF8fiR8WspXThTgXu4qLBkNu9oS6wuPgn2emd5SX9gFFijNZHczuQNXPi7wfKDAndxQouGQDVhar", + "chaincode": + "9922d42aee23ca4b4fcc5510aa506da2bfe1e4e6debf78f8dcf1420e19db437e", + "finger_print": "6869182b", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "66c25289" + }, + { + "private": + "xprvA1K4f1vVZTDqRu4a9ZHk5Yop4Lwjkv79XuTZaXiVrzdK9msxFaWZDKAsqK5tSPnMvre7nCrNozDQGteoUk5uaEvG5xvJYVEPBrUb1vZMHz3", + "public": + "xpub6EJR4XTPPpn8eP93FapkSgkYcNnEANpzu8PANv87RLAJ2aD6o7pom7VMgZE3g797p6caSF71JP1SnEwyRRvnQQKfTRL5WjCjJsMaDS6cUD5", + "chaincode": + "bb13194c0e61297c2d01359a9143f5d02f036ee42e5edc9a14a8d246dfd5824d", + "finger_print": "8590d170", + "index": 3, + "depth": 4, + "parent_finger_print": "6869182b" + }, + { + "private": + "xprvA3QdQUqQVSGDatR4kDZ8xXNrmHA7FFBqfY1M6Gs6TJAYbGZCVePKCbEoJ9Nni5RMRRBJKMKYBMXL1LykAist6EgRjAWRp3sLmP4Ueu68cYZ", + "public": + "xpub6GPyozNJKopWoNVXrF69KfKbKJzbehuh2kvwtfGi1dhXU4tM3BhZkPZH9SsvbRdUnP5oYsayfK2VYYuSEmTtMMScB7FUJEnrP43PbGgfAN2", + "chaincode": + "d46414357339511b6d046eb6bbe9bce8ff97557a40858fab47ee4705ba329338", + "finger_print": "ab29b263", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "8590d170" + }, + { + "private": + "xprvA5ZnthtBvXo2f1jbQJnnXCR2mH3y9NMKmcDm3gWzzdoXYScNYrQAEp42vqpXerY5JCTUMyNdeeD8GwTjJE9syXrkDUX5B8EqSvf8St5NTPr", + "public": + "xpub6JZ9JDR5kuMKsVp4WLKntLMmKJtTYq5B8q9Mr4vcYyLWREwX6PiQncNWn9pFcrX2ksCe8AJjv73U5uXVfqZeVYdnaFXqtrjgT4iRT7rwxx5", + "chaincode": + "b248bab6a6fa5cdded1ac9ccf792e0d3cdfd932880c8471966c1064c9faefeb1", + "finger_print": "ce99243d", + "index": 5, + "depth": 6, + "parent_finger_print": "ab29b263" + }, + { + "private": + "xprvA7i2vbpMvKHLoEenmj5P9hubrvFMQpHFZ7TfXAWjy9P7ALtsUkzdU57VdX389aQH37MSHNHaUhb2nAGBV6TnY3KMEzs8AEJtdsoSJRn1ZaV", + "public": + "xpub6LhPL7MFkgqe1ijFskcPWqrLQx5qpH16vLPGKYvMXUv639E22JJt1sRyUmcNr6j6Dp6ZVaRm8rEcW2es4K4YrgBiw6LEiGHcmeMxRbHTPgM", + "chaincode": + "81b3444defedd198c4742ff94a180d2d89d60cacb205803a4999d0d5701eab66", + "finger_print": "6ee274a2", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "ce99243d" + }, + { + "private": + "xprvA8tNAfrt5JnTtd2c7A1MXNq5zVSb8GHjtxeMMUXWTLDQPM2ZZJybCzv7ScaWGpoJvgqSHQ54FXaTgL5A8uqVKNqx29JVHnH6bJimvKD2zxk", + "public": + "xpub6MsiaBPmugLm7775DBYMtWmpYXH5Xj1bGBZx9rw81fkPG9Mi6rHqkoEbHrzepEkbAvrWBDh64Yp6WuqCY7CZFCPiWeaP34JduBuBBWWD13b", + "chaincode": + "530411871fed3837cb76afeb8c9b0866072cde672c9b8d6976c1294b1006d17e", + "finger_print": "6cfd50f4", + "index": 7, + "depth": 8, + "parent_finger_print": "6ee274a2" + }, + { + "private": + "xprvAAkhAiDYTZNHcm53tVBzMwXntfSTzmwq5KH932jXErYGuWx68kVBy7YQMT5E5TNGsMnZpV4uL5RM4K2Brxnw3gdfRDXiQegM4CSyvWUsdJs", + "public": + "xpub6Pk3aDkSHvvaqF9WzWizj5UXShGxQEfgSYCjqR98oC5FnKHEgHoSWurtCi9T6JDN98DBiakQW4eLCCkEcGWR4JSF18MCH7rZD6PFzAQ7sZg", + "chaincode": + "5b2a2274ba6ef0164d8da2df1f9b9270ed6c2ae183416a3ce7374d7462ef6b63", + "finger_print": "699d6438", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "6cfd50f4" + }, + { + "private": + "xprvACcPaoSPTQmw5kNWszSGzbP9nZExCCVV2nPnPxEcgrYbp6tun2exXsos7w1DijE763dkJafWcvwLfCn7AaFWMf6cPXXv3Yv5w3ZmEVHRd9Y", + "public": + "xpub6RbjzJyHHnLEJESyz1yHMjKtLb5SbfDLQ1KPCLeEFC5aguE4KZyD5g8LyEqCTAtAXQJsRCVNrWYqgHfrhKjhUaLyJ8kHZvggm2WprAb9aR8", + "chaincode": + "f628c3cfb24f2db587d6be6115c7e394e125f57dc405ecb4eb876fead1402889", + "finger_print": "8f189842", + "index": 9, + "depth": 10, + "parent_finger_print": "699d6438" + } + ] + }, + { + "seed": "fd13256213a32a4ea1394c8ea21e85f9bfa310aa664c1dc527d59329cd863297", + "private": + "xprv9s21ZrQH143K43X7urbApJu36pWcjh4ZMWwibPNwQzw8trrm5uVyuWkpQSVjitJjVBfF1ky6PH7GiQK8yT8fnfMgnqdA1CreMMBHBdGes1q", + "public": + "xpub661MyMwAqRbcGXbb1t8BBSqmerM799nQijsKPmnYyLU7mfBudSpETK5JFjbetiB8iwuK8bHqPrf2WiNtdXoB4UU9FLrzvSdkhfCNfJBUjME", + "chaincode": + "c76f040d7fa70732d38af6a17dbff8a084640f47cab7761546f60cf0ba90cf34", + "finger_print": "7d72eb1e", + "child": [ + { + "private": + "xprv9updGyYM62GkFZJ5R5zFN4BmmqDdEu86cNxQHu3UZRph245orYhfhA6q5q8fkhMdjPAZ1BKQVBeB5dRJVjVivuss18hU1bCL4yqrPYTGTrh", + "public": + "xpub68oygV5EvPq3U3NYX7XFjC8WKs47eMqwybt16HT67mMftrQxQ61vExRJw79hq1w8EqHtXj8KUGNQ84jcEutSBbLjfDh2C2rAnaHCLJpeCUj", + "chaincode": + "f149f20d9389d16469397ed180193c09cb6788a48b497dded279789c59d035fd", + "finger_print": "c2ee4288", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "7d72eb1e" + }, + { + "private": + "xprv9xDP9CvnPN32rfnFdeJHcch1AqeXdPCvq95WKCY9v1rJtdS5KtkqNz43oDS49vMSiVMTv6HcwRR9CvbQeD2KQr4cJ6F73c67K9jj4mgtTbU", + "public": + "xpub6BCjYiTgDjbL59rijfqHykdjisV22qvnCN177awmUMPHmRmDsS55vnNXeVRhb3T9E2ZgFBREbSfT1iTw2TWfB4e52MYufU3ATt6GxZEsRtV", + "chaincode": + "cf9eb1bbce8ec9a12f3b14b727c46f41c5dfe30b9bb09a0fa2bf87d345361aee", + "finger_print": "bcb05b82", + "index": 1, + "depth": 2, + "parent_finger_print": "c2ee4288" + }, + { + "private": + "xprv9z3rfZdnyrnq7o9WfpHuFHrkAwoSKryoCN3f2vWVcRVrmvCnG3nLGzkb8QCVUSpZ8H1yu8NvJpmMjpLssCKMjfXqaHav4vLppUYRTvtjAdF", + "public": + "xpub6D3D55AgpEM8LHDymqpucRoUiydvjKheZayFqJv7Am2qeiXvob6apo54yffKe976GAmovif3YnqdCdXV8mDbidmDQYLT8c3uqwnQQz99ux2", + "chaincode": + "593e4c862ace14774c72a24837eac50106680af06aa2df06ce0715276d81d7ac", + "finger_print": "7b338609", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "bcb05b82" + }, + { + "private": + "xprvA1T5GyYqexCUr9LqanAVjZkzt617k1nBW81nxT2eUkEHetBUMrD8JUy8J6Ro23LD4wKnoFW34cwSqCVcrsavNL3pMgHzXkYiLErkqcku9gF", + "public": + "xpub6ESRgV5jVKkn4dRJgohW6hhjS7qc9UW2sLwPkqSG35mGXgWcuPXNrHHc9MgjLqAwGyg4tPeo31B4AjaxaNmv4SvgZGkfvZRJ2hnXiEwKivU", + "chaincode": + "38c97cc69307bbaec7e666edf4af5df6e328dd7fdba8fa9beb1c88597bd7ad9a", + "finger_print": "8269ab38", + "index": 3, + "depth": 4, + "parent_finger_print": "7b338609" + }, + { + "private": + "xprvA3PHSqkSZyjELSntXygtL7FEdU9bTAY3h6SCjbYtoPF5nQj4mkNoRmL2jB6Ya58Q6h89ZdDPjGuwD2r5DNjPcZovHEY3aoWL9fMv2QDJ5vp", + "public": + "xpub6GNdrMHLQMHXYvsMe1DthFByBVz5rdFu4KMoXyxWMin4fD4DKHh3yZeWaTZubvMDYkvcFvkHiHwmRxBbqszvqs7RPeiu1WCZHnuVo5zU7fZ", + "chaincode": + "100cdf1a123793e1ecbe408aa7492b6a8fc11a9946d52325117164b84f82b422", + "finger_print": "9c064ca4", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "8269ab38" + }, + { + "private": + "xprvA5TLanHmJXUTEj1ShceF9zsJdeXKZzJDrQ78b23KEZVeheJQ8wNhAtTP2QHjnhVhhW8B3NmoaQ8ZFYhadhfWUDz4CVSBxHc7dHMPVmDvKJR", + "public": + "xpub6JSgzHpf8u2kTD5uoeBFX8p3BgMoyT25Dd2jPQSvnu2daSdYgUgwigmrsdzMFEzAf9vnkjRYcr2ZPFWcnVFVuyGaVZGShu1R8MwggFh5WMQ", + "chaincode": + "761d6eb275fb470673c6f4b9a9618d3745e7ae8b9da1537a838bea65120d939f", + "finger_print": "85984721", + "index": 5, + "depth": 6, + "parent_finger_print": "9c064ca4" + }, + { + "private": + "xprvA7AuqqeiKtkTYj6EiDRDanPDvn8cKgr1dyvm7TKWaMP7AT5EUKMbsiYhiTMnyk93MB6g1dfiQyzAPi7qgAGYhu84ne541r5i274LWCfryR8", + "public": + "xpub6LAGFMBcAGJkmDAhpExDwvKxUoy6j9Zs1CrMuqj88gv63FQP1rfrRWsBZj4hbZnoZTWNmDewVcLU4Cv9sRUVHtEdCpjLWQvmwVHFDTUSNYd", + "chaincode": + "24e9172a145a60932d025e86ef923e85b5691af5baea51072da250b07294d6b5", + "finger_print": "88148d46", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "85984721" + }, + { + "private": + "xprvA957A2GdFynRjUXu6exxqoqsRNFahwU7YKFsa3waAtofmuJKMCFa3R4YWgQiqFZibS3dnNAFNaM41zh5tgJUcTvqN9zGa7phtNgHoAiPLAP", + "public": + "xpub6N4TZXoX6MLiwxcNCgVyCwnbyQ657QBxuYBUNSMBjELeehdTtjZpbDP2MxkcHSoXXo5XeFoQ2QfYwGd4rkTJVPr5GmJ9CXpEbvWF16kThT8", + "chaincode": + "c4630bd156063bda2c1657d307945d3cd3d732f9f65d8cecc7236256af30cbae", + "finger_print": "79a3b6b2", + "index": 7, + "depth": 8, + "parent_finger_print": "88148d46" + }, + { + "private": + "xprvAAr5xAp9ssyUuCopEVQHWRP2bqM4WUpYxLiMhL39RKRpWdAERDBZnFeAu7pWcfEE5bZ4nTPTZqurSLudhLYbsgnY9M648PWvEwvTxtUmyc2", + "public": + "xpub6PqSMgM3iFXn7gtHLWwHsZKm9sBYuwYQKZdxViSkyexoPRVNxkVpL3xekQ8gTh3RVpgsmqCWXLcT3GD5d5YxC5ZZw27hCd9Kih8eqYDZdA9", + "chaincode": + "20a9b5aebbfaccf0645bd936122ac6c42bb91852912c3ec86b146192e7b97812", + "finger_print": "d45d3144", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "79a3b6b2" + }, + { + "private": + "xprvADPu4mkykkiLeMyNaTkPv9mZNioxv1sjUGtvGEFA29oN943cRK6aCk3AgkSBmoYHsJGNExMwcsh1NzsXTEwaWGnU2uQf3xfpGhPxFixmsRE", + "public": + "xpub6SPFUHHsb8Gdrr3qgVHQHHiHvkeTKUbaqVpX4cemaVLM1rNkxrQpkYMeY4RvB3q9S8Jxjmdh6HLW2urNS7RNd86jKVYFjdLeHdCFr8HSNZ5", + "chaincode": + "ad969dd1916666bde1145a212a4e691d0c3f000407315c0ff06d3edfa804d3ee", + "finger_print": "5de7cd0f", + "index": 9, + "depth": 10, + "parent_finger_print": "d45d3144" + } + ] + }, + { + "seed": "93a5db07440045213b194ae6c14989f7fb9aae8033f396fd6f71902b83819b5a", + "private": + "xprv9s21ZrQH143K2kV1dgDZaKEZahWcMk7GK8GSUp6Co9NG9hStHUmeGsZj9T3BT1aB3iLS4QmgEzoFFLnfvtY4AfdXZt3tTjYzqqnPwz7vYYm", + "public": + "xpub661MyMwAqRbcFEZUjhkZwTBJ8jM6mCq7gMC3HCVpMUuF2Vn2q25tpftCziD7nhQSLFZE7kMc6u3abuE85F7ASc38gtn6c6ad1HE5s4tb5Sh", + "chaincode": + "457d420bd7a802b1aa0f2ed7be5cce5886e380da4bfb81c07da2ae057d64ea3d", + "finger_print": "3e3172d0", + "child": [ + { + "private": + "xprv9uMfDNn2hAkbgwpunb4RABQfENXYEAwNMJvigYNQcpub7mEaPZo8kXwfGiCjPKKxNzHWNwPGFizRpAAGr2c94MNh9tbYm9QFsXRnGwdtfb1", + "public": + "xpub68M1ctJvXYJtuRuNtcbRXKMPnQN2ddfDiXrKUvn2BASZzZZiw77PJLG9812Zxh7J6MHZbrhtPf7JqBf57D6LagzRWh2nMAfmVfmLhdMZJZt", + "chaincode": + "2649f0c60847b4bfd464e8a77d447a52f748868e9a2dd11a10cda00aa81a6525", + "finger_print": "ef97e29d", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "3e3172d0" + }, + { + "private": + "xprv9xYRUDkkTdHBuVZTqp9xD5VYV4mCte3wdiKYUktY64ELdCScyUq3cN41vfkzDLU8kHGArRXiWE9ex4dzeNtzvxYwmhy9HfoaisPApd2MABL", + "public": + "xpub6BXmsjHeHzqV7ydvwqgxaDSH36bhJ6mnzwF9H9J9ePmKVzmmX29JAANVmxUnmBrm56tGR6tbrLt8kkuDYhGLj3AGy3hvdNSVEySiNCWpyNF", + "chaincode": + "86dfddb071169b2a477373d17cd7bd0cfb652fe2fb1200e65fc0c2cbdd59252f", + "finger_print": "2e006d5e", + "index": 1, + "depth": 2, + "parent_finger_print": "ef97e29d" + }, + { + "private": + "xprv9y12abLRwv713FQe3dXf1qJ7KGT7wG6EgidoRMfMKev8Tgw6YfYnGh7itwcuVTVGYjXyuyxsVBiAXV6BbpTL6tRhiAppxWebpcawmf7shxP", + "public": + "xpub6BzNz6sKnHfJFjV79f4fNyEqsJHcLip63wZQDk4xszT7LVGF6Cs2pVSCkFruojm2rLgN944dvy6TCQTjibhpLt2ZQiJuowMtkQV5X2oVnFz", + "chaincode": + "bc33b37a890adf283c5b4f7ea541609707287ebf361159df02ff25676673e250", + "finger_print": "ee37f463", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "2e006d5e" + }, + { + "private": + "xprvA2J7CHC8gHa1KCWdDcGqQ6nhEivL2oZ68xrfTzcd367mdtWxy7ibx2dZEfwK9zffkR2UVtrzYASkUi8fxJnUrQ3gFRVM3JasDifMDRQBADx", + "public": + "xpub6FHTbnj2Wf8JXgb6KdoqmEjRnkkpSGGwWBnGGP2EbRekWgr7Wf2rVpx35xP9q4F93te6wx8Fhyahnzf98s3s566deZAcc5QRMWG92EayG6x", + "chaincode": + "3ce501a84dd71b79a88c178a9b828f12a5393e750d0c0a3baa55b7ece0b537b0", + "finger_print": "c86ddc50", + "index": 3, + "depth": 4, + "parent_finger_print": "ee37f463" + }, + { + "private": + "xprvA3u8fvNQECvXVtRN8TkHNGby8evjxu5GgduLgd2QnkHVYiZDZvChGquLz8xgq5bJosurHvG5ErWWEc4m6KmA9asNo5RhXdRwbvDYghG1SDJ", + "public": + "xpub6GtV5RuJ4aUpiNVqEVHHjQYhggmENMo83rpwV1S2M5pURWtN7TWwpeDpqSH4m9nNhKjC7aZoBmcHSSf8rLBd7CSHWYddwjvAVhA8SAAMrrv", + "chaincode": + "57eb28098af8adc5facd40b2c2f64d535c8b6727253b25729fb44e76822f46e0", + "finger_print": "ff41f05d", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "c86ddc50" + }, + { + "private": + "xprvA6BeDdHgRoCQFTUqm2L9x4cnrBwLRBJatqGFrahx8PvMPifRcPgDTP2gyizKpF8bT1jQn1PoypCDnvKszS89yv1W4YctfTPTGXTJSuR3z8h", + "public": + "xpub6KAzd8paGAkhTwZJs3sAKCZXQDmppe2SG4Brey7ZgjTLGWza9vzU1BMAq11rUk6ML6Nj94tFcZv8qC5WeuvTiV3hPrCPv5SbreDxXHawCHq", + "chaincode": + "56fa1d7786e07c36b9d56283a98a1f7a6bbf2d306bc10de27080481424514c27", + "finger_print": "d3325e5f", + "index": 5, + "depth": 6, + "parent_finger_print": "ff41f05d" + }, + { + "private": + "xprvA7jzdQonGcUQ8BKo4rbFP7FHKjr56GTEV5HknYWq8zCKVdGTFxC4wpoRyNGA1Vo3GGTi4ifNxh7aGeNVrmw8Xsbgz3eLY3Y4ZQWLFsqP1E7", + "public": + "xpub6LjM2vLg6z2hLfQGAt8FkFC1smgZVjB5rJDMavvShKjJNRbboVWKVd7upgt3DwzCZUdREp229mFTfRTSBfiEE96GKtkKAiJq36eE5T4HaHw", + "chaincode": + "a6857184633f92fb4eeb03dfb9edaefab185b0cfec55f0b0e68ca0025f0f21c5", + "finger_print": "eb5785f0", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "d3325e5f" + }, + { + "private": + "xprvA9oRVwUxkoXaiVUSCA5VsQjRGTBZt3DQwHNkv8rBhKps8a9w6z1EAPZg3eLkxxykDZtzreNFcN3fYMeu28hLmmtV5FVKb8bJTQoJdfKyJYU", + "public": + "xpub6NnmuT1rbB5svyYuJBcWEYg9pV24HVwGJWJMiXFoFfMr1NV5eXKUiBt9txAGppMJjd4JnVASNwYotLbcXrGqHxfwGaHDYnPEtb56mgTSX1r", + "chaincode": + "e19c4d52a9667c086e2d2475bd0ed2c5db20203b876677151d80d9e22d83fab6", + "finger_print": "54382456", + "index": 7, + "depth": 8, + "parent_finger_print": "eb5785f0" + }, + { + "private": + "xprvAAa8hYDEsHzQSvsbDnY7bRazBJvz5WNWUsQLuh4xx71L7ZjxQ2Bjo3zRZFEbXQ65GDTnjR5jg2Ss6bZHLkCv1g5HeuRQhHYfZtb7oRr7C2d", + "public": + "xpub6PZV73k8hfYhfQx4Kp57xZXijLmUUy6Mr6Kwi5UaWSYJzN56wZVzLrJuQW9T9kV6vrg8SwqRvBes9paub9iqBhVgdcwX3aGa8AC6j8WM69W", + "chaincode": + "090f12b40fe2b424b8a7872d6b83ef2c96f0871de9458e0f10715618caa942b5", + "finger_print": "614f72ae", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "54382456" + }, + { + "private": + "xprvACYrFJ3btEiAnUvMM2x536AJK2THsy9xMJbu2SEt4aBjLTTgeyacVc9ZU2eF3hTCf1rAA1rKh1RwXq5sGhzZw1F2htGXXzCHzKKQubeRdj9", + "public": + "xpub6RYCeoaVicGTzxzpT4V5QE72s4HnHRsoiXXVppeVcuiiDFnqCWts3QU3KHxBRxcD5hyGkRk8oAwhiRCLdsaFcsWqhkj28ftTZHyVBATqQuw", + "chaincode": + "2c0156cd7989e74499f7264e7c22c80c4d8c44c2d803f77c2f36104b68f9e3a1", + "finger_print": "6ea865fd", + "index": 9, + "depth": 10, + "parent_finger_print": "614f72ae" + } + ] + }, + { + "seed": "44badd1dc27921e79129f5d129bfb69ffb6b5b1d542908cad0b7be095f832fcb", + "private": + "xprv9s21ZrQH143K3Xg2iG1em2KghS1e6bxEaPmoQqq2JmjYcgbAGWAB4MhSRwNY4zdsxQqGaXTw6hQnVxyEh6TFByNvuwXoDaFpe1DzdEX9cNU", + "public": + "xpub661MyMwAqRbcG1kVpHYf8AGRFTr8W4g5wchQDEEds7GXVUvJp3URcA1vHCVnLuSvVbDY6PTR5KfVnD23bxMAx86u8Xq5KVWBWomG389PXRP", + "chaincode": + "93bf4401a1e94ea036ca0994f612b39bf303677fcd7a9542dd23a576f763ec43", + "finger_print": "b4eb9301", + "child": [ + { + "private": + "xprv9vEGrrg1THyFF2uTqHxfxd3frXrzVP9prekcCN9wTk5qic9grDdrFxEmkcWkJGMzuWRqGueGfyAC4JWrKmck4NTYTryXsvsJfCyhrB53JwZ", + "public": + "xpub69DdGNCuHfXYTWyvwKVgKkzQQZhUtqsgDsgCzkZZ25cpbQUqPkx6okZFbtyJdprpiJVso7prHFqRPm3aRNF23JZG5hgEgbsaVfvskyDuS6h", + "chaincode": + "b770f2e37e4625098e1557faf7d3bd369362ba06e98cd3b2a5919e28509e9173", + "finger_print": "3852f5f9", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "b4eb9301" + }, + { + "private": + "xprv9wCHxFC9G7afoBbyTZAP3xmjuK113fisrVNK6hq2d4yjA5eGGitF69ffBwU2D81pYYJH7nQgZTuVpQBePz4YfW3xKF11twnXURAi9mDmHpZ", + "public": + "xpub6ABeMkj36V8y1fgSZahPR6iUTLqVT8SjDiHuu6EeBQWi2syQpGCVdwz93EVncyegGFrmtwj7kcqkMLfmSxB4yqUZuVyF7S5Bex4uaDtLbGj", + "chaincode": + "dd82f2dbfe7cd31366d18756c90e87da8bef1496d6675cb958018a3c31272695", + "finger_print": "dda73612", + "index": 1, + "depth": 2, + "parent_finger_print": "3852f5f9" + }, + { + "private": + "xprv9zHujuckhXtHghxuCPoD8MTeCRnrreRnju4CDCmAWjJHPNtiAy7yteHRca2GPTJRn8X1easMVGqZYHHYstn8FRz5g3pxnKMkiAyjejCoaH5", + "public": + "xpub6DHG9R9eXuSauC3NJRLDVVQNkTdMG79e77yo1bAn54qGGBDriWSESSbuTpJjr4SLjyq8tzN1aQEEKmP15LnJTcZ38aBdoZe6rMFS2TdmsLY", + "chaincode": + "93973584473622cd88a53608a835c6a7399ac81fd52ec1236e199153b2106cee", + "finger_print": "87905f32", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "dda73612" + }, + { + "private": + "xprvA1YLxQugT5PemQ6coRwTKASwUiThFfLNSy4LH1hPtSPdv8cQmhFpvh21UQdp9pGv8NzbkwZoyXvW5v89vYnwPD79KxYVh3UAMhA3WzWCBya", + "public": + "xpub6EXhMvSaHSwwytB5uTUTgJPg2kJBf84DpByw5Q71SmvcnvwZKEa5UVLVKfzZdni2hujybbuCKBLdF3yUtghhuMVYMyHh25SdRky8WWtbMkp", + "chaincode": + "a55ed490db7abe96356855aaf538ea8c413e57d539f75421b53ad0066397f44d", + "finger_print": "615288ba", + "index": 3, + "depth": 4, + "parent_finger_print": "87905f32" + }, + { + "private": + "xprvA39BFfBqc47xFNeoGDM5z2NdYmoKgykknF2A18zXZWfdhXcC5rC9vkKduQTVXUqCytAYHGQqCHs9v2CivKDmaBFLBpVQ1Y3g5ywUPvBujFX", + "public": + "xpub6G8XfAijSRgFTrjGNEt6MAKN6odp6SUc9TwkoXQ97rCcaKwLdPWQUYe7ki3pver1mjZo7nobomsDVoZBfJzf9SrCA3NNjmQ2ucTFAoJ3bxr", + "chaincode": + "e89527808df393873ee04b2c6c3856fb4dee2c822d86fd845d3659deb4b377cc", + "finger_print": "093879d6", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "615288ba" + }, + { + "private": + "xprvA4Nkhv3ncdUtPNCdRaJgpG2un6vuXMDPZReLQnfraLsCEfefKWykdajTBXW7R3MJ7Yea4jMM8mNSANn2kBZ9t6B5DGrWWx7YhgtEPMnDodv", + "public": + "xpub6HN77RagT13BbrH6XbqhBPyeL8mPvowEveZwDB5U8gQB7Tyos4J1BP3w2q7UJpzaX5p1iHPX3YTw9S6Wqy6eghGLgKpxdfc13ch1CFQQ6p6", + "chaincode": + "a0ca6d2ebd093899ab5e52c19f078c651bd5222188824ee5878abfda7d71fa68", + "finger_print": "6e95a132", + "index": 5, + "depth": 6, + "parent_finger_print": "093879d6" + }, + { + "private": + "xprvA716tWS4VyoxPf9D6vuaigg3DVZWdV28Mqrg9Qo2usKZ4uGnAdqpR8fNLsEDefRrPob1LQDxFHmMJP9EX51DJseaJhN1RtRJsuY7PSNFsvN", + "public": + "xpub6KzTJ1xxLMNFc9DgCxSb5pcmmXQ12wjyj4nGwoCeUCrXwhbviBA4xvyrCAp9KfMMLtAeN5aFy8MaX8pbeSkJuNHK1fVZS7nxCNDUzfcUwB5", + "chaincode": + "94baace443a9e5c2e29ed7495c76ddd1c7e7cb5d3630c06023c5d8b5b4119f0a", + "finger_print": "ff0003d0", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "6e95a132" + }, + { + "private": + "xprvA9woZtc1NT3MPmRXxupRgrRq9m9bzhacpXX9XAwE7DvyFWPAiu8mgFksDBByiS7U8SiLmPgcr3ok8DY5Gj6p6dmeaSRcVgPZveUReEhYDaj", + "public": + "xpub6Nw9yQ8uCpbecFW14wMS3zNZhnz6QAJUBkSkKZLqfZTx8JiKGST2E45M4SJQjew8kMRY2Yw59WDfxTtBWdLMrjYSpSao56iNPx6phH6um7z", + "chaincode": + "14fd629ac7480fb9323877caab3605ae73a38ab44632aec53eee42e1d4e7c9e4", + "finger_print": "38b6a0fc", + "index": 7, + "depth": 8, + "parent_finger_print": "ff0003d0" + }, + { + "private": + "xprvAANQb5UPKJM87G7r9TBZnG4Nntk55umnPaRQTfEvjgNN7cH3jvSLxCD1W7xfMawGCcdrRnNmy6F5Cipiw2TUSydj2knCcoLqxHpMnjt2JQB", + "public": + "xpub6PMkzb1H9fuRKkCKFUia9Q17LvaZVNVdkoM1G3eYJ1uLzQcCHTkbVzXVMP3DFQyk5aNWw98wB9o3iNY88csAyaur3teWaitbZBsh9i6qbZ4", + "chaincode": + "ab778a52ea973dbfba9c7cd86e09af05265c056351a3bcf849cf72f6c02ef617", + "finger_print": "f5d52b2f", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "38b6a0fc" + }, + { + "private": + "xprvADeAcTbmPrYvUzBVgQNh9WLKDWJAsa7H6dzUCrVoJyrMn4frWabD8wZcQBNa4riGHoBvdTpVM23uWTbtEcF4RPpdYwcFD3772yYuHFazpsh", + "public": + "xpub6SdX1y8fEE7DhUFxnRuhWeH3mY8fH2q8Trv51EuQsKPLes1147uTgjt6FTLgfvnEiemF8t4LxsjnCQfh1S7iggvr3SjKtfxt3KgnvyqYh1h", + "chaincode": + "4361c548dcac7b01b50e33c8e5b7ec60831075e2dca0c5afcd0fc7af69b5f3dc", + "finger_print": "b4f1aa50", + "index": 9, + "depth": 10, + "parent_finger_print": "f5d52b2f" + } + ] + }, + { + "seed": "ff2b58dd549cd1ab8ee05d920c3836f411cbd7eab6aa667bf04c47bb6ff994c4", + "private": + "xprv9s21ZrQH143K3eLvtZWvMYP8LrJJ5S1Xdk4CNMeFdqZ4qgkmkHu2Ra9tiUQmFkxefEbxXjPbwTPab8cpxWU7q8V69PABSHga8WUMwroap2j", + "public": + "xpub661MyMwAqRbcG8RPzb3vigKrtt8nUtjNzxyoAk3sCB63iV5vHqDGyNUNZnJCQpArJykRgjsuAxgVA1cKuMTz7NizzJoV9iTchX6AEMC2BNS", + "chaincode": + "9f4c91ee5784eb850c919c85b8ed727c8edeca15288c542288365a84135dcb21", + "finger_print": "d08e44b8", + "child": [ + { + "private": + "xprv9vS4BCTYzDYaCUSEzT1q3L35WJ6UPjJL1WKLH95nH7kddZETtydHzQ29rp6PJSCLm4q8hkcTwX2E54m83KJPVrUy25NrFWAGhaHidcGkk9s", + "public": + "xpub69RQahzSpb6sQxWi6UYqQTyp4KvxoC2BNjEw5XVPqTHcWMZcSWwYYCLdi4NNf3btmuAiLJZX6sYn3fBWwTMvEFiEdRaKLvMbBRUk4tpWCip", + "chaincode": + "cb037fb8a2430772631011cddfbe48b25d782e51b3cddc16756c26d57b3fc987", + "finger_print": "7d44cefa", + "index": 2147483648, + "depth": 1, + "parent_finger_print": "d08e44b8" + }, + { + "private": + "xprv9whggTEu4HzUHnXkbTuiFv2Mo2pJ4S2FDJxGAEn8GYn7dzNBYqDVoiKYgzkcqN2MYzkg5QJFZs8CghF3GC2BYLw8QBcfkXrE9qwoDjY3k5M", + "public": + "xpub6Ah35xmntfYmWGcDhVSid3y6M4enTtk6aXsrxdBjptK6WnhL6NXkMWe2YEwhJG2bG5ALLsPu2xq87w4Wben2SD7KQATGReC2fNtpWqDykmK", + "chaincode": + "cc6b65fccd878b7a4333d476e0ff7038c019d6ab889a2b17d01cbe9f274623ab", + "finger_print": "8112b783", + "index": 1, + "depth": 2, + "parent_finger_print": "7d44cefa" + }, + { + "private": + "xprv9ycSc4Q3dhRtVVEabdwm7BMyqcv8Md8XNfhiaSZbuAKU8bjJghna3S9zd1T5hLYqFFdfQkcTRVMXArFgH7gzNr8f7s9dTssHzbRCHito1ek", + "public": + "xpub6Cbo1ZvwU4zBhyK3hfUmUKJiPekcm5rNjtdKNpyDTVrT1Q4TEF6pbEUUUJSuFfff2FmaDaXcqP2W4QLLf3qvRkhkxaQeJaoN72vtEYhPUiz", + "chaincode": + "b1e79bba7fd11f4430a219ac6c760dbea649738202341636376b4291286ba58d", + "finger_print": "89556cff", + "index": 2147483650, + "depth": 3, + "parent_finger_print": "8112b783" + }, + { + "private": + "xprvA1Z6iR1xduGdvCK6WVGSZEjrSk5HXAYhPMwQoGwMoXHasPErfwr4G5gaaQ9h3NMrNRkHpfwirpwQNFsGjKLrRZgVfT57i7qdCpcPANVrp98", + "public": + "xpub6EYT7vYrUGpw8gPZcWoSvNgazmumvdGYkas1bfLyMrpZkBa1DVAJot14RhccABkDyiH9WXrJVsFcXxQgJxzRkfFhb9XG6QxxFCcxu3FT4mq", + "chaincode": + "b27157941e80a123448a7c2f47956ac58a2840aa11dc6f8c216795025f4f12f9", + "finger_print": "ea535cce", + "index": 3, + "depth": 4, + "parent_finger_print": "89556cff" + }, + { + "private": + "xprvA49aoAmfmy8QKMzNtr7s28pXqKrAvhy2WaHsEib2wZZcyHb5yphgGSbzrpbumZUZJ62QeGBoJNQpQ1guYhH8CRybiE1nYbAUJ5oEnJR9f3c", + "public": + "xpub6H8wCgJZcLghXr4qzsesPGmGPMgfLAgssoDU36zeVu6br5vEXN1vpEvUi58JBTcPQYpE8c2oyQXSgscbs1NUx6uuUBrwRnk1izYGnVLXkKa", + "chaincode": + "f2fda57c2e1b6dc695ea837c7c5329933bc0e62a9682c1d051f46609994be74f", + "finger_print": "6f380907", + "index": 2147483652, + "depth": 5, + "parent_finger_print": "ea535cce" + }, + { + "private": + "xprvA58EiWxhq74z6kuDu56Fas2Pjd5MEUhMHZtnBU97Uuh8mzsiQ8Q7coC7wwJr2xSALqSde8iKXGJGdbiUzDL7ZDsfTcnhGmRQoutfDFFLCVV", + "public": + "xpub6J7b82VbfUdHKEyh16dFwzy8HeuqdwRCenpNyrYj3FE7eoCrwfiNAbWboCXqT9NRn12NVC8ptCiUrmzaKNwJhhX6oqN4XULyuty6iypwBGG", + "chaincode": + "5cb6838a5e172cb7cdc5dce81bb630aa11ef2ca3f3af9e5b2cb1e26933de0451", + "finger_print": "a96485a3", + "index": 5, + "depth": 6, + "parent_finger_print": "6f380907" + }, + { + "private": + "xprvA7SAyp1nqwHzmuTRrsKwkQQpNXGrLTiUi7CXYwYZFCAjc6zoBziPcoGjdS169pjM59b7dqzC6EVVJ4xGtqc4Dxzbtgj4EP8nProuLDAvcLt", + "public": + "xpub6LRXPKYggJrHzPXtxtrx7YMYvZ7LjvSL5L88MKxAoXhiUuKwjY2eAbbDUgtGXbvaKEp4aAAAbLqxqZYEMEwjr6yLDPDur4Hf9qG57yEPp7z", + "chaincode": + "6a5ebda89f70e2b24cf829fc38976d19b6517e46e2dec7c03b76fcb09689511b", + "finger_print": "b862329c", + "index": 2147483654, + "depth": 7, + "parent_finger_print": "a96485a3" + }, + { + "private": + "xprvA9RhWCkCkFkEiGQDuMn7nii2wcqtkmCrEvT9wk5GZ95THuuaJi2z5daQmRUAY7PodLZ4CCZbbx9tT5LkQV5jG3HpLMGU9pbY5g6cP86Y1Hf", + "public": + "xpub6NR3uiH6adJXvkUh1PK89remVegPADvhc9Nkk8Ut7UcSAiEirFMEdRttchsQpW7dnYJaTkmJwYm2MQkk6HscBVQp4jSoVkgAjVDHr3GJSmD", + "chaincode": + "ae7188398371990da8f2cdf5503937c8b2ba87c49adccac8370feebf3cd7586e", + "finger_print": "59c60dc2", + "index": 7, + "depth": 8, + "parent_finger_print": "b862329c" + }, + { + "private": + "xprvAAcW34zSRjAPEva8i3ra19LebjuTcJ841usCTQ7gQqmc5uH76LHLq8XbeJAH5ZDjJKYXfryAd7DjxmT31uLcnTpzTMJkGNFjUo6h1iQuFD5", + "public": + "xpub6PbrSaXLG6igTQebp5PaNHHP9mjx1kquP8noFnXHyBJaxhcFdsbbNvr5VYu1dKAGGJx81jRBDevhjrLgg83K231EFiCY2dGHLuUG8Z6nxDX", + "chaincode": + "bb8647cc1b6357dcd18bfb825b34f631da643ba28753804d08e250fb8c05896c", + "finger_print": "c2378b9e", + "index": 2147483656, + "depth": 9, + "parent_finger_print": "59c60dc2" + }, + { + "private": + "xprvADGAMvLynCbVCNxzQyyyPWYSpJJmCg6BssxxTYEWafcg8is1p51EkKkCQCMQyTq2qHjT31Xk1gpXn7TzJAStcfpFdQF1byMSr2p8ygDR6bq", + "public": + "xpub6SFWmRssca9nQs3TX1WykeVBNL9Fc8p3F6tZFve8919f1XCAMcKVJ84gFVgzeiDQrhSCPX19bTNN4LKF9zjtNacZo7UtUdcJagao7KwynKT", + "chaincode": + "f3628126d9d6ea7130adea47ad619dc6469abe11274789858b1736fb59a977d8", + "finger_print": "b18a5671", + "index": 9, + "depth": 10, + "parent_finger_print": "c2378b9e" + } + ] + } +]; diff --git a/test/bip/bip38/bip38_addr_test.dart b/test/bip/bip38/bip38_addr_test.dart new file mode 100644 index 0000000..5ad128c --- /dev/null +++ b/test/bip/bip38/bip38_addr_test.dart @@ -0,0 +1,43 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'package:blockchain_utils/bip/bip/bip38/bip38_addr.dart'; +import 'package:blockchain_utils/bip/bip/bip38/bip38_ec.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +List> _testVector = [ + { + "pub_key_mode": Bip38PubKeyModes.compressed, + "pub_key": + "03aaeb52dd7494c361049de67cc680e83ebcbbbdbeb13637d92cd845f70308af5e", + "address_hash": "a374deb6", + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "pub_key": + "03aaeb52dd7494c361049de67cc680e83ebcbbbdbeb13637d92cd845f70308af5e", + "address_hash": "6a531625", + }, + { + "pub_key_mode": Bip38PubKeyModes.compressed, + "pub_key": + "02b5cbfe6ee73b7c5e968e1c515a964894f306a7c882dd18433ab4e16a66d36972", + "address_hash": "97c1e671", + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "pub_key": + "02b5cbfe6ee73b7c5e968e1c515a964894f306a7c882dd18433ab4e16a66d36972", + "address_hash": "8805ef61", + }, +]; +typedef Xpubmodes = Bip38PubKeyModes; +void main() { + test("address hash", () { + for (final i in _testVector) { + final result = Bip38Addr.addressHash( + BytesUtils.fromHexString(i["pub_key"]), i["pub_key_mode"]); + expect(BytesUtils.toHexString(result), i["address_hash"]); + } + }); +} diff --git a/test/bip/bip38/bip38_ec_test.dart b/test/bip/bip38/bip38_ec_test.dart new file mode 100644 index 0000000..15c4593 --- /dev/null +++ b/test/bip/bip38/bip38_ec_test.dart @@ -0,0 +1,85 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'package:blockchain_utils/bip/bip/bip38/bip38_base.dart'; +import 'package:blockchain_utils/bip/bip/bip38/bip38_ec.dart'; +import 'package:test/test.dart'; + +import '../../quick_hex.dart'; + +List> _testVectorDec = [ + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "TestingOneTwoThree", + "priv_key_bytes": + "a43a940577f4e97f5c4d39eb14ff083a98187c64ea7c99ef7ce460833959a519", + "encrypted": "6PfQu77ygVyJLZjfvMLyhLMQbYnu5uguoJJ4kMCLqWwPEdfpwANVS76gTX", + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "Satoshi", + "priv_key_bytes": + "c2c8036df268f498099350718c4a3ef3984d2be84618c2650f5171dcc5eb660a", + "encrypted": "6PfLGnQs6VZnrNpmVKfjotbnQuaJK4KZoPFrAjx1JMJUa1Ft8gnf5WxfKd", + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "MOLON LABE", + "priv_key_bytes": + "44ea95afbf138356a05ea32110dfd627232d0f2991ad221187be356f19fa8190", + "encrypted": "6PgNBNNzDkKdhkT6uJntUXwwzQV8Rr2tZcbkDcuC9DZRsS6AtHts4Ypo1j", + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "ΜΟΛΩΝ ΛΑΒΕ", + "priv_key_bytes": + "ca2759aa4adb0f96c414f36abeb8db59342985be9fa50faac228c8e7d90e3006", + "encrypted": "6PgGWtx25kUg8QWvwuJAgorN6k9FbE25rv5dMRwu5SKMnfpfVe5mar2ngH", + }, +]; +final List> _testVectEnc = [ + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "TestingOneTwoThree", + "lot_num": null, + "seq_num": null, + }, + { + "pub_key_mode": Bip38PubKeyModes.compressed, + "passphrase": "TestingOneTwoThree", + "lot_num": null, + "seq_num": null, + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "TestingOneTwoThree", + "lot_num": 100000, + "seq_num": 1, + }, + { + "pub_key_mode": Bip38PubKeyModes.compressed, + "passphrase": "TestingOneTwoThree", + "lot_num": 100001, + "seq_num": 2, + } +]; +void main() { + test("decrypt ec", () { + for (final i in _testVectorDec) { + final dec = Bip38Decrypter.decryptEc(i["encrypted"], i["passphrase"]); + expect(dec.$1.toHex(), i["priv_key_bytes"]); + expect(dec.$2, i["pub_key_mode"]); + } + }); + test("encrypt", () { + for (final i in _testVectEnc) { + final enc = Bip38Encrypter.generatePrivateKeyEc(i["passphrase"], + pubKeyMode: i["pub_key_mode"], + lotNum: i["lot_num"], + sequenceNum: i["seq_num"]); + + final decrypt = Bip38Decrypter.decryptEc(enc, i["passphrase"]); + + expect(decrypt.$2, i["pub_key_mode"]); + } + }); +} diff --git a/test/bip/bip38/bip38_no_ec_test.dart b/test/bip/bip38/bip38_no_ec_test.dart new file mode 100644 index 0000000..eb24baa --- /dev/null +++ b/test/bip/bip38/bip38_no_ec_test.dart @@ -0,0 +1,49 @@ +import 'package:blockchain_utils/bip/bip/bip38/bip38_base.dart'; +import 'package:blockchain_utils/bip/bip/bip38/bip38_ec.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +List> _testVector = [ + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "TestingOneTwoThree", + "priv_key_bytes": + "cbf4b9f70470856bb4f40f80b87edb90865997ffee6df315ab166d713af433a5", + "encrypted": "6PRVWUbkzzsbcVac2qwfssoUJAN1Xhrg6bNk8J7Nzm5H7kxEbn2Nh2ZoGg", + }, + { + "pub_key_mode": Bip38PubKeyModes.uncompressed, + "passphrase": "Satoshi", + "priv_key_bytes": + "09c2686880095b1a4c249ee3ac4eea8a014f11e6f986d0b5025ac1f39afbd9ae", + "encrypted": "6PRNFFkZc2NZ6dJqFfhRoFNMR9Lnyj7dYGrzdgXXVMXcxoKTePPX1dWByq", + }, + { + "pub_key_mode": Bip38PubKeyModes.compressed, + "passphrase": "TestingOneTwoThree", + "priv_key_bytes": + "cbf4b9f70470856bb4f40f80b87edb90865997ffee6df315ab166d713af433a5", + "encrypted": "6PYNKZ1EAgYgmQfmNVamxyXVWHzK5s6DGhwP4J5o44cvXdoY7sRzhtpUeo", + }, + { + "pub_key_mode": Bip38PubKeyModes.compressed, + "passphrase": "Satoshi", + "priv_key_bytes": + "09c2686880095b1a4c249ee3ac4eea8a014f11e6f986d0b5025ac1f39afbd9ae", + "encrypted": "6PYLtMnXvfG3oJde97zRyLYFZCYizPU5T3LwgdYJz1fRhh16bU7u6PPmY7", + }, +]; + +void main() { + test("encrypt decrypt without EC multiplication", () { + for (final i in _testVector) { + final enc = Bip38Encrypter.encryptNoEc( + BytesUtils.fromHexString(i["priv_key_bytes"]), i["passphrase"], + pubKeyMode: i["pub_key_mode"]); + expect(enc, i["encrypted"]); + final dec = Bip38Decrypter.decryptNoEc(i["encrypted"], i["passphrase"]); + expect(i["priv_key_bytes"], BytesUtils.toHexString(dec.$1)); + expect(i["pub_key_mode"], dec.$2); + } + }); +} diff --git a/test/bip/bip39/bip39_test.dart b/test/bip/bip39/bip39_test.dart new file mode 100644 index 0000000..d98315d --- /dev/null +++ b/test/bip/bip39/bip39_test.dart @@ -0,0 +1,29 @@ +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_mnemonic_generator.dart'; +import 'package:blockchain_utils/bip/bip/bip39/bip39_seed_generator.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import '../../quick_hex.dart'; +import 'test_vector.dart' show testVector; + +const String _passphrase = "MRT"; +void main() { + test("bip39", () { + for (final i in testVector) { + final lower = (i["lang"] as String).replaceAll("_", "").toLowerCase(); + final lang = Bip39Languages.values + .firstWhere((element) => element.name.toLowerCase() == lower); + final mn = Bip39MnemonicGenerator(lang) + .fromEntropy(BytesUtils.fromHexString(i["entropy"])); + expect(mn.toStr(), i["mnemonic"]); + final decode = Bip39MnemonicDecoder(lang).decode(mn.toStr()); + expect(decode.toHex(), i["entropy"]); + final decodeWithChecksum = + Bip39MnemonicDecoder(lang).decodeWithChecksum(mn.toStr()); + expect(decodeWithChecksum.toHex(), i["checksum"]); + final seed = Bip39SeedGenerator(mn).generate(_passphrase); + expect(seed.toHex(), i["seed"]); + } + }); +} diff --git a/test/bip/bip39/test_vector.dart b/test/bip/bip39/test_vector.dart new file mode 100644 index 0000000..7370982 --- /dev/null +++ b/test/bip/bip39/test_vector.dart @@ -0,0 +1,425 @@ +final List> testVector = [ + { + "mnemonic": + "\u6bc1 \u503a \u6851 \u73a9 \u53f0 \u66f0 \u5f1f \u4f46 \u9042 \u5c11 \u601d \u7092", + "entropy": "b3ddc37fe5442ffd23b097f9036c90ea", + "checksum": "0b3ddc37fe5442ffd23b097f9036c90ea9", + "seed": + "30e77cdf0387aecf052f7649e81bd47a9ebaf91a672e02d38334ae2043e0b67c755c4d9235c7b5f2b19a6ed9af5514654f20c4a5cd8ad34f9a98192712ddaf2b", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u5362 \u63a7 \u6d4b \u6025 \u66f4 \u6bbf \u5316 \u5bb3 \u8fd0 \u5e74 \u53ec \u5bbf \u7f5a \u6cab \u5e7b", + "entropy": "f3ea9d61b1d269f6426a421da099f3fccaf3f8fd", + "checksum": "1e7d53ac363a4d3ec84d4843b4133e7f995e7f1fab", + "seed": + "f6b084050cca851adfd90c970a358e87eabea0a73bffdcb287c37fa8a576e5ac506c814794a518d6163a3ef83f3586bf49fc9706e948bc4d77d5cd4121ff1a79", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u6dc0 \u9879 \u9009 \u60e9 \u7bad \u7acb \u88c1 \u8861 \u6ee9 \u561b \u6cc9 \u5cad \u5211 \u63a9 \u6027 \u57ce \u65f1 \u8bc1", + "entropy": "c9a838def57fa62c5f5ba6cd1c07396835a3ae033264d2c4", + "checksum": "326a0e37bd5fe98b17d6e9b34701ce5a0d68eb80cc9934b12d", + "seed": + "00ca30dfc2598126d0dee35b2353515db9eeae566be14e70e4e4c953cf60e86948f1a0302708e94ddecb336f1924e927cb0fc5fa17de941d7dfac8fc6edd7b21", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u6842 \u6811 \u6d59 \u5dee \u6234 \u65a4 \u6742 \u4ecb \u5c1d \u6027 \u593a \u96c4 \u5fb7 \u4ed7 \u718a \u7d2b \u4e43 \u7248 \u916f \u821f \u51b6", + "entropy": "bd08b32c251b5cca13c34efee199efc483ebd53e4dffc7b2e3a4599e", + "checksum": "5e845996128dae6509e1a77f70ccf7e241f5ea9f26ffe3d971d22ccf30", + "seed": + "28f7cc58805137ca6fc8522930e76022c617d465c5ba67f91039af097d4220aa52223f838008b1c6691b1f4dcfcf476d710bcef7a4f21bb18ed6d7b6843226be", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u72d7 \u5428 \u4f3c \u663e \u624b \u6676 \u4e0e \u987d \u5f26 \u6b23 \u7238 \u4fe1 \u67ef \u96c5 \u9633 \u90ae \u74f7 \u8fc7 \u5be8 \u8282 \u7c73 \u74f6 \u5c4b \u7845", + "entropy": + "d6b13d2ea011d0e8c41f506adcea2595cbbdd9d3f768c620b60495e2c1821d66", + "checksum": + "d6b13d2ea011d0e8c41f506adcea2595cbbdd9d3f768c620b60495e2c1821d6675", + "seed": + "a0aaeeaa1cde92890940261aa0690b3fe1f79973c79f28c8d0e79cee7597dcc7dfdf677d6f25243527691a0d4bad1c0eabaf834be1a7bbc5be8059ff4f79ec09", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u8396 \u4f4f \u627e \u5c0e \u5229 \u52de \u7a3f \u53d6 \u6d3e \u51fa \u843d \u5eab", + "entropy": "e307895591612869b3c9003a40750c3d", + "checksum": "0e307895591612869b3c9003a40750c3de", + "seed": + "5f4b20795ec0b75dca2cb021b379a5df1dd0107c04d102bba76a9d86f118c57fe857b54935f8740af4d9bb37f8c2f6326e01101293fc80b571e7799e6af4eeca", + "lang": "CHINESE_TRADITIONAL" + }, + { + "mnemonic": + "\u53f3 \u80b2 \u4e95 \u5bb4 \u624d \u77ee \u660e \u6574 \u925b \u4fdd \u8266 \u984c \u8ab0 \u9999 \u5de6", + "entropy": "4d6765b7f6e2b3ff847961b7242b100b96bcd351", + "checksum": "09acecb6fedc567ff08f2c36e485620172d79a6a3e", + "seed": + "6a9bd537ebaaa32cce5b69b9b452ca05ed5450ee076beccbce0f14767ed124ef310c4eece60e1b31ec823c2a9aa4152ae8c9b72398259f587a3ac52d1476eb9c", + "lang": "CHINESE_TRADITIONAL" + }, + { + "mnemonic": + "\u7e8c \u7be9 \u5c46 \u6f02 \u64cd \u5006 \u539a \u9664 \u7bc0 \u5148 \u8a72 \u66f4 \u6ef2 \u9187 \u6490 \u6e9d \u6c41 \u6db2", + "entropy": "4879aed275d70befdd21af2bc3f0f6934e09dd7eb562ec67", + "checksum": "121e6bb49d75c2fbf7486bcaf0fc3da4d382775fad58bb19f3", + "seed": + "2ff51526e415f09282d71da785192ed3c0fd9f760c47a85f37957b2b9618844795bbcf4290d7b9c0d9fc528eb9dbd34c910c799e050d21c5e1f6c19978313743", + "lang": "CHINESE_TRADITIONAL" + }, + { + "mnemonic": + "\u5dde \u5049 \u6b23 \u7def \u696d \u8352 \u65f1 \u6c27 \u6b8a \u9060 \u7537 \u6b21 \u9738 \u7576 \u5bbf \u8a69 \u6488 \u806f \u5175 \u7ad9 \u9130", + "entropy": "550f1b9d70f0c57c34b2138f48864c8c8ca017be6398f7649924a91c", + "checksum": "2a878dceb87862be1a5909c7a443264646500bdf31cc7bb24c92548e10", + "seed": + "a7eac628d956bbf3d39a85f71e3f32e064dfa1235335a45666e0ba67eeddac1683b0584084023d4a5f50ef55c43b4c6fc91d8c203ed6dce535dcba46c0688bf7", + "lang": "CHINESE_TRADITIONAL" + }, + { + "mnemonic": + "\u62ec \u5fc5 \u73fe \u7522 \u7c89 \u5377 \u65bd \u662f \u6f2b \u8cc7 \u8a13 \u5d17 \u7686 \u69ae \u5c08 \u8349 \u65c1 \u5d07 \u9176 \u5ac2 \u5230 \u5bf6 \u4f4f \u4e95", + "entropy": + "5dc3e82a830570f1115002db635990700c89290eba998e3b37a67d0033200f13", + "checksum": + "5dc3e82a830570f1115002db635990700c89290eba998e3b37a67d0033200f136f", + "seed": + "69204d975e7ed077ce6292b878847bbb6be12192f8a4ab3400cb7aedf5334f33383123fec89383966269e74b99173d0fda84817fb66deeab6ad0bc221c21694f", + "lang": "CHINESE_TRADITIONAL" + }, + { + "mnemonic": + "poprosit okrsek cedr koukat diktovat dusno biograf kvestor nutrie koprovka hrozen ostuda", + "entropy": "a1510844a921ca4bc222c87c6a10e9c6", + "checksum": "0a1510844a921ca4bc222c87c6a10e9c6f", + "seed": + "4f95dc9996e8cd25392e25d8cadbede7416f45fd911249422090f362a98218a60740687892da9b6457eb31ba1c695064bc1e1034291c3c11e8ab59ef94754c56", + "lang": "CZECH" + }, + { + "mnemonic": + "sediment seznam kujnost export stezka pavouk vrhat atol koalice osoba datum netvor spornost kazajka veskrze", + "entropy": "b9b7955d14bc97277a50184c51a86b3c8c729038", + "checksum": "1736f2aba29792e4ef4a03098a350d67918e520717", + "seed": + "31e08563ec889b78963661c2f534f57142f1b062067cde935bb56f587fd0b91e83d206eae4c1200311dfc441133dd2556ad85ac81aeb00aca54c7a1b1850fb3f", + "lang": "CZECH" + }, + { + "mnemonic": + "otrok nominace obec pohanka teprve posila kabaret legenda koza ulice usednout doutnat tapeta kaple etiketa poskok smilstvo chrt", + "entropy": "8eef55f4cead254510cae352fb6f74918d0a8c8a2515c2c2", + "checksum": "23bbd57d33ab49514432b8d4bedbdd246342a322894570b0af", + "seed": + "ed1172f42440147017e177da28130a7de83d8ef1ef503425920cb20642d6c059f39b1686b68236f9d3e28bd4f93cceca1ffba086a634b0f392a398e5c234403b", + "lang": "CZECH" + }, + { + "mnemonic": + "kresba duhovka most zrychlit bezinka guma dosud vydat napnout vizitka uplatnit putovat tlapka rokoko patent racek vzkaz dopustit kormidlo velryba krejcar", + "entropy": "5424b5b67f30785fc89754747c9f71d63d376464dd68f0a42d43f125", + "checksum": "2a125adb3f983c2fe44baa3a3e4fb8eb1e9bb2326eb4785216a1f892a0", + "seed": + "04b59318c24f57105adfd3a34e5f6dafe0a474f9ce390066a362419b7c79a85cc9fd482b948a1e0ad53481184f7fc7b9f6abb1a2c60e1bc9da08865645b193dc", + "lang": "CZECH" + }, + { + "mnemonic": + "teprve mocnost hospoda hanba rozhodce inovace adresa zajatec asistent narychlo snaha chudina vyrvat rokle molekula brepta ovanout spustit cyklista posudek expedice oschnout rytina kazeta", + "entropy": + "d24d78df184b4a7b001797024ea30f8b2edf641b18688f58f06951a29318add2", + "checksum": + "d24d78df184b4a7b001797024ea30f8b2edf641b18688f58f06951a29318add241", + "seed": + "6bdc491d7d960ce7cfac4e3b10c60ff7f8768b05aaedd4330b802a01751ed390fac62d0a90440a8e6ee3f74fed08e5a0d59f25599d2020417a82c5d0db004983", + "lang": "CZECH" + }, + { + "mnemonic": + "visit vast trick initial someone tide twelve oak town right level define", + "entropy": "f4de37a1b9fcf1c3bac4bee6573a029c", + "checksum": "0f4de37a1b9fcf1c3bac4bee6573a029cc", + "seed": + "9923a19b1fba760a821727c076ceba260ccc05ead752c201420511a9ff60684ac30691382948ab15dea21c6ab8e2244eea15f02ae2fc19808db8705e0b0eb6f7", + "lang": "ENGLISH" + }, + { + "mnemonic": + "outdoor rapid thrive ramp ribbon catalog celery curious few impact broken patch yellow hair pencil", + "entropy": "9d363f84d8bb9047c941af558e3872506ff0d0a8", + "checksum": "13a6c7f09b177208f92835eab1c70e4a0dfe1a1515", + "seed": + "53e265a29c5272aa52b4b1a5e2a49d931882d0c80bc2525fef1bc5a340bbe09d29cf7a36badd3d22d9811c77e2ae0dd0a303099972b14426efb554abfd30577b", + "lang": "ENGLISH" + }, + { + "mnemonic": + "lumber edit bargain column awkward wrist pattern forget animal output ignore know gold brain loud please sauce brush", + "entropy": "84e8cc4a96e10dfce852da0913adc33df64435e10d33bf83", + "checksum": "213a3312a5b8437f3a14b68244eb70cf7d910d78434cefe0e9", + "seed": + "8d8573a0475522703a47723b84770c35ea0f773886225d84c1bd9e56f87ab0c03757ed2194f5c02edaa834daaeb8dcc3bbb8f285d98f2e3cd9d8e1138f31a41d", + "lang": "ENGLISH" + }, + { + "mnemonic": + "morning man present silver employ dentist oven verify letter trust spirit drink clip welcome clog day joke youth waste bridge alpha", + "entropy": "8ff0daa864648e75277795809d37482182b5f28ae1c0785fefde8de0", + "checksum": "47f86d543232473a93bbcac04e9ba410c15af94570e03c2ff7ef46f038", + "seed": + "e8059f1e055add2647cbc2af17f8e0579ff2ce15384fbab0532ec2969b9d22edd49cabe46fae7e324f898a027baef0c4833c402d5a1c1f7d7cc8787263ed0188", + "lang": "ENGLISH" + }, + { + "mnemonic": + "code fatigue lend tip expand blind depth diamond depend vote ribbon sense scene whisper situate throw scale trial script device fame you still label", + "entropy": + "2d0a79fff145022f8ec9e93afebee461ec09f5326f0ac01d07069e5527fe7573", + "checksum": + "2d0a79fff145022f8ec9e93afebee461ec09f5326f0ac01d07069e5527fe7573e1", + "seed": + "3b82678c322dc6171e9422a74c6f8c11ceb5968259ee15279fb7a15000afab9fcbbabd0b972c24d9aa949fb46f404b52aa5b7016e47a46af01f52493b9feec90", + "lang": "ENGLISH" + }, + { + "mnemonic": + "destrier exaucer herbe toboggan tribunal soucieux e\u0301jecter chapitre niche nocif impact bateau", + "entropy": "446bdde5f61effc113e171a4d4adfc8d", + "checksum": "0446bdde5f61effc113e171a4d4adfc8d5", + "seed": + "6b8e991b93f2bb026542f852cd65e3d774dd2b3d23fcaec8bb1e504c0479327c9134fa18a13e4c5a96d7963197cb5b27f17bb06564fc6f1855d0bcf5790e0ce4", + "lang": "FRENCH" + }, + { + "mnemonic": + "faveur ne\u0301gliger pavoiser se\u0301cable chiffre biotype de\u0301brider ruiner cimenter ivoire migrer e\u0301toile exage\u0301rer nappe avarice", + "entropy": "63f47ad1ec52fa3bcfc69d3150b26f2e75ed4445", + "checksum": "0c7e8f5a3d8a5f4779f8d3a62a164de5cebda888b1", + "seed": + "83a38afa640d0c6480f873f744f566438a509d703abae100d7fdc2ec3c36924947a62c10723bfcca4c0da1d4375cf0c61ec50237550d18e290e38725e8f7bfba", + "lang": "FRENCH" + }, + { + "mnemonic": + "bancaire fossile ve\u0301loce marron exceller tremper e\u0301jecter louer creuser adepte joyeux abrupt gicler cubique baudrier intrigue fouiller stimulus", + "entropy": "190d5fdfcb55f1ded3e4893aa09a2100c7227846bc206b5c", + "checksum": "064357f7f2d57c77b4f9224ea826884031c89e11af081ad714", + "seed": + "a831b76f4fc21b9fd1ea0ff9b9fd225b47a015e71d69ca1e9c81ec712fc8a25d1dd41810dd32c5a9ed1a1a8f293791a80a350366a918add32a44fad5c04f27c2", + "lang": "FRENCH" + }, + { + "mnemonic": + "parler skier limite e\u0301loge mondial fe\u0301de\u0301rer caverne inhiber ravin jauger parler immuable be\u0301lier syllabe irradier fiasco position se\u0301datif amovible forcer armement", + "entropy": "b2dbc23ba859dcc8caec10c7b0cecb3f81b5cb614330be9b2430b531", + "checksum": "596de11dd42cee6465760863d867659fc0dae5b0a1985f4d92185a988a", + "seed": + "12b7d26b413574d1738d82235deb6acedcce3fe795eb22e8d21b01194c2bca8b2d4954acdac887df86d027f054ccf62fbf0b9a80b1a8339508067d6fafeff71e", + "lang": "FRENCH" + }, + { + "mnemonic": + "seigneur cirer recevoir pieuvre sternum boussole se\u0301nateur myste\u0300re frayeur totem parvenir pe\u0301lican chausson torpille tirelire ze\u0300bre cosmique fortune me\u0301duse tribunal te\u0301tine strict projeter louve", + "entropy": + "d9663b21dcae264436950e6c3dbace5a92ebdabadffc38ad5a62f7fea5c5b0a4", + "checksum": + "d9663b21dcae264436950e6c3dbace5a92ebdabadffc38ad5a62f7fea5c5b0a48c", + "seed": + "f8fd603b733984340546ae4112048460900987fd949e50ae03d0b69e17c1f72cffce09a155a46b71ba7e2f9c81d00082f727a4c74d8263f71ed96802825a6dfc", + "lang": "FRENCH" + }, + { + "mnemonic": + "olandese ghiaccio parvenza sbloccato sereno vetrina cespo batosta posa organico barlume sfamato", + "entropy": "8f4bb668e16cb1f18aa0d1a6325066e6", + "checksum": "08f4bb668e16cb1f18aa0d1a6325066e62", + "seed": + "18751aa235605763b9792781f367cbd37fda5cf17c2df5daf83c2b716b69149c14fab8da3b2244e13b3fc29aeca5d04d1dede4516e4282f18a0021befd34a03d", + "lang": "ITALIAN" + }, + { + "mnemonic": + "candela appoggio digerire attivare montato solido pendice sbendare innesco soppeso pattume dirotto russare sonetto anticipo", + "entropy": "24e1d8ef0a8831a926fe1469babe6b9e8be3ab03", + "checksum": "049c3b1de151063524dfc28d3757cd73d17c75606f", + "seed": + "d62684e5204faf71ed15667698952170ea75aa00674ebf4b91f282b8bed0a3c890eba95ca1886a3f1a609f7fd4360ad2737d1e05b7caa2cc227ad09d88ef4b34", + "lang": "ITALIAN" + }, + { + "mnemonic": + "edile oste obbligo topologia governo recepire cervello simulato rifasare gazzella osmosi macchina isotopo sgrassato mestolo baita fortezza simpatico", + "entropy": "42b2a63374660b600a9682b4eb8651bb46d19ddf68c1561a", + "checksum": "10aca98cdd1982d802a5a0ad3ae1946ed1b46777da30558681", + "seed": + "eb04ff1cb8c294042b522a57f22d53f6bd34481cc689d61e12610b0111ece7e15f35cd1461976c448a6f8e8ed51cb8d55cf06a236551e205308d5b852ac552e0", + "lang": "ITALIAN" + }, + { + "mnemonic": + "tentacolo zelante malumore sopire spezzato allegro inalare omega algebra presenza sorriso tannino equatore labirinto vetusto rivolto sarto agire preparato staffa mucca", + "entropy": "e4ffc9e16aed8e0ed9b48306d50b59f12476dbfe3dd4c0a09aa0eda8", + "checksum": "727fe4f0b576c7076cda41836a85acf8923b6dff1eea60504d5076d424", + "seed": + "bcd4203e52daf1d888b95a7e50512203a3d360cded0f358354f8c1ea14c724fbc623b4a2e19dbe696d1f1554bcf3b908ac74c6cdef456339e1287adfefb42412", + "lang": "ITALIAN" + }, + { + "mnemonic": + "favoloso deforme maiolica vessillo fare bradipo artefice riverso piattino vanvera musica deforme marsupio starnuto rigare spelatura origine crostata badessa selvaggio oblio sopra locanda cellulare", + "entropy": + "4f4719de7c34e23f8485d29fbea6191c67a5b7ad5ec392a69c5f64c8d1ac1cf9", + "checksum": + "4f4719de7c34e23f8485d29fbea6191c67a5b7ad5ec392a69c5f64c8d1ac1cf94a", + "seed": + "96b6e377ed1dbb90a8084d57253cf97c23a2e434dec107df307af9abe9a9aba1042f8f846b46b3a03fe5e0e3882e9f3b6d8a1dd349b014b585f80bb85e465115", + "lang": "ITALIAN" + }, + { + "mnemonic": + "\u1102\u1162\u11bc\u1103\u1169\u11bc \u110b\u1175\u1105\u1169\u11ab\u110c\u1165\u11a8 \u110e\u1165\u11bc\u1107\u1161\u110c\u1175 \u110c\u1165\u11af\u1106\u1161\u11bc \u1109\u1165\u11af\u110b\u1161\u11a8\u1109\u1161\u11ab \u1109\u1161\u110b\u116d\u11bc \u1112\u1167\u11ab\u110c\u1175 \u110b\u1175\u11af\u1107\u1169\u11ab \u110b\u1161\u11ab\u1100\u1162 \u1106\u116e\u1100\u116a\u11ab\u1109\u1175\u11b7 \u110e\u116e\u11af\u110b\u1167\u11ab \u1112\u1162\u11bc\u110b\u116e\u11ab", + "entropy": "2714c3515da692be7dc55f8447f7677a", + "checksum": "02714c3515da692be7dc55f8447f7677a9", + "seed": + "bee083cbb7e10a63a25d3d8f72cd5fa7226124de49fb4968891adbf9035fc1825ddc58e3bfa9b7b4575ad3c3d7bc405e4e1baa8a74aec4054c7c4473ac257295", + "lang": "KOREAN" + }, + { + "mnemonic": + "\u1112\u1167\u11ab\u1100\u116a\u11ab \u1107\u1161\u11ab\u1109\u1165\u11bc \u110b\u1163\u11a8\u1109\u116e \u110b\u1175\u11af\u1112\u116c\u110b\u116d\u11bc \u1106\u1161\u11ab\u110c\u1169\u11a8 \u110e\u116e\u11af\u1111\u1161\u11ab \u1110\u1169\u110b\u116d\u110b\u1175\u11af \u1100\u1169\u110e\u116e\u11ba\u1100\u1161\u1105\u116e \u1109\u1161\u1102\u1163\u11bc \u110b\u116f\u11af\u1100\u1173\u11b8 \u110b\u1167\u1112\u1162\u11bc \u110b\u1169\u1109\u1175\u11b8 \u110b\u1165\u11ab\u1103\u1165\u11a8 \u1109\u1161\u11b7\u1100\u116e\u11a8 \u110b\u1167\u1103\u1169\u11bc\u1109\u1162\u11bc", + "entropy": "f628ea1e56d387b478a0795d93ee394b589cc2e3", + "checksum": "1ec51d43cada70f68f140f2bb27dc7296b13985c67", + "seed": + "6e6114cd6f3c313586cda71adc4860ada44cdcc8ad4aa2fde9bd386c0d485c36010bf3be245c819e1b09c1a6ed56a5a75326788bb0351533e847c1705bcea09c", + "lang": "KOREAN" + }, + { + "mnemonic": + "\u1100\u1167\u11bc\u1112\u1165\u11b7 \u110c\u1175\u11ab\u110d\u1161 \u1109\u1175\u11a8\u1105\u116d\u1111\u116e\u11b7 \u1109\u1161\u11b7\u1100\u116e\u11a8 \u110c\u116e\u1109\u1175\u11a8 \u1109\u1165\u11af\u1102\u1161\u11af \u1100\u1161\u11b7\u1109\u1169 \u110e\u1175\u11af\u110b\u116f\u11af \u110e\u1161\u11ab\u1109\u1165\u11bc \u110b\u1165\u110d\u1165\u11ab\u110c\u1175 \u1111\u116d\u1106\u1167\u11ab \u1106\u1169\u11b8\u1109\u1175 \u110c\u1175\u1100\u1161\u11a8 \u110b\u1161\u11ab\u1107\u116e \u1110\u1166\u1102\u1175\u1109\u1173 \u1100\u116a\u11ab\u1105\u1175 \u1112\u1161\u11ab\u1106\u1161\u1103\u1175 \u1100\u1167\u11af\u1109\u1175\u11b7", + "entropy": "0c999def30bc56d10106decfd133a61fcc970a7870a0f0c1", + "checksum": "0326677bcc2f15b44041b7b3f44ce987f325c29e1c283c3052", + "seed": + "a956817afa58bf08a68ee22ba15690221cd55aeb00e06cb0808ee17ceef558baee1f9593c78b317495c44fe1b0e461ca50fd4c46f32c0d105d1f30f3bc26d2cc", + "lang": "KOREAN" + }, + { + "mnemonic": + "\u110b\u1169\u1111\u1175\u1109\u1173\u1110\u1166\u11af \u1109\u1161\u1105\u1161\u11bc \u1100\u116a\u11ab\u1105\u1175 \u110e\u116e\u11af\u1111\u1161\u11ab \u110b\u1161\u1111\u1161\u1110\u1173 \u1109\u116e\u110e\u116e\u11af \u110b\u1175\u11b8\u110b\u116f\u11ab \u1109\u1175\u11ab\u1112\u116a \u1102\u1169\u11bc\u1103\u1161\u11b7 \u110b\u1161\u11b7\u1109\u1175 \u110e\u1171\u110c\u1175\u11a8 \u1100\u116e\u11a8\u110c\u1166 \u110e\u116c\u110b\u1161\u11a8 \u1107\u1161\u11b8\u1109\u1161\u11bc \u1100\u1167\u11af\u1100\u116a \u110b\u1175\u11ab\u1100\u1173\u11ab \u110b\u1172\u11a8\u1100\u116e\u11ab \u1110\u1173\u11a8\u1109\u116e \u1100\u1169\u1100\u1162\u11a8 \u1109\u1169\u1106\u116e\u11ab \u1100\u1173\u11a8\u1107\u1169\u11a8", + "entropy": "978bb8506d1834e66bb3f22950b76c0ccd7e94426d49a23ca0373661", + "checksum": "4bc5dc28368c1a7335d9f914a85bb60666bf4a2136a4d11e501b9b30e3", + "seed": + "cb483c7a2d2b68071348c2e89ddf6fc485fad2552a2b0c4b7d650279c096e886e2d5c69eb1203c18feba1f1b28fcaee349e14a2a78e793d73ab073e83458e0a4", + "lang": "KOREAN" + }, + { + "mnemonic": + "\u1100\u1167\u11bc\u110c\u1166 \u110c\u116e\u1105\u1173\u11b7 \u1100\u1175\u1107\u1169\u11ab \u1100\u1173\u1102\u1173\u11af \u1112\u116a\u110b\u116d\u110b\u1175\u11af \u110e\u116c\u1109\u1165\u11ab \u1110\u1161\u11a8\u1100\u116e \u110c\u1161\u11bc\u110b\u1162\u110b\u1175\u11ab \u1100\u116e\u11ab\u1109\u1161 \u110c\u1165\u11bc\u1107\u1161\u11ab\u1103\u1162 \u1112\u1169\u11bc\u1107\u1169 \u110b\u1175\u1103\u1162\u1105\u1169 \u1107\u116e\u1101\u1173\u1105\u1165\u110b\u116e\u11b7 \u1109\u1169\u1102\u1161\u1100\u1175 \u110b\u1175\u1105\u1167\u11a8\u1109\u1165 \u1100\u1161\u11a8\u110b\u1169 \u1100\u1173\u11af\u110c\u1161 \u1100\u1175\u110b\u1169\u11ab \u1107\u1175\u1106\u1167\u11bc \u110b\u116f\u11af\u1109\u1166 \u110b\u1165\u11bd\u1100\u1173\u110c\u1166 \u1107\u1175\u1102\u1161\u11ab \u1112\u1169\u1100\u1175\u1109\u1175\u11b7 \u110b\u1173\u11b7\u1107\u1161\u11ab", + "entropy": + "0bf88c810dcfa5af7825a719f7bfe652c550d8a978121de4256bcfd8b8b47e1d", + "checksum": + "0bf88c810dcfa5af7825a719f7bfe652c550d8a978121de4256bcfd8b8b47e1d18", + "seed": + "b75e9ef05e3218e2744da72fa72ce727f05366d99b10d802bad67ce62c06395f41fcf9dd9b7e2d1d8c60a7f283b6788385d039c76f453fab0a2c848fef635029", + "lang": "KOREAN" + }, + { + "mnemonic": + "adjunto recordar pancada roupa fungo acanhar cupido banho teclado pluvial surfista pote", + "entropy": "069986d26ab6ec051120fae8f7d393e0", + "checksum": "0069986d26ab6ec051120fae8f7d393e05", + "seed": + "a1dbecdef1b42185a32c5680a1e8aee7e2d5f93ad40558ba7bb143bbee600b217f28ff47bb7914664d203dd0ff26c66a73b9864094a9bc906603c762fe69966a", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "nominal borda justa textura traseiro pinote pegada rebelde golfe presilha terno baleia sabor coruja atracar", + "entropy": "a8e5062af58efd78edfe5b75b84fa90f5d688086", + "checksum": "151ca0c55eb1dfaf1dbfcb6eb709f521ebad1010d0", + "seed": + "4c0d251a0a77e7d3e25e5ade983cf5d91179a793da398b216d3f216c44b11003b02dda4027cbc345f7830c3a12ca82406b9e23ca3118e43343ffd5aa9b630342", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "titular maluco curto glacial hidratar sanfona sincero vazio poupar inibido pacato reaver enxame topete soberano gemer tubular enguia", + "entropy": "ec52e1143a77bbb237a7bac0d062c9e595a7daf7db96f26a", + "checksum": "3b14b8450e9deeec8de9eeb03418b2796569f6bdf6e5bc9abf", + "seed": + "91c880ad9c15e32c37ae14c59c8e466b49f832438a43042e5465aa1b606268290c7991d6e427d56d90a519f56f959de0164da1de6a2cafe9e0a44743a4de1342", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "pote omitir insistir inimigo jato recheio fabuloso agulha ilustrar navalha omitir trama vedar bienal flacidez tutelar papiro suco isqueiro tostar adubo", + "entropy": "c0b5c211c1a88397d8d0507eb4cab877bf78475a7f9bb57c661c7720", + "checksum": "605ae108e0d441cbec68283f5a655c3bdfbc23ad3fcddabe330e3b9038", + "seed": + "ebe89fe62e70f83e9473724cc7683d0935e6d611b5b458e130c4e650344a37d2715b1bdb6b44b5d1739b4ef8c41a8cf8a97f7a4030c53d7bccb46e8a85d9c26b", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "cruzeiro robalo piquete raio menos glacial desmamar possuir remendo proibido anotado limoeiro banho orvalho batucar sogro rigoroso tijolo neblina tampa pontaria mostarda alocar lareira", + "entropy": + "433a6af3e429cce9d2c603ced87847c8b1f5614846fed29d729af37c0146034c", + "checksum": + "433a6af3e429cce9d2c603ced87847c8b1f5614846fed29d729af37c0146034c66", + "seed": + "752e2b05fab8a2bad28702829a7143009c9795fa98911fc8068d238e1b31c6ac067fec602ba816f1ef13e2a17338e0f19178ebed49705da8703bcbe6e9c79273", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "feliz aroma lata a\u0301cido trazar yema matriz aplicar setenta hostil cacao aceite", + "entropy": "56e251ee013eddfca2b87cd6edc49800", + "checksum": "056e251ee013eddfca2b87cd6edc49800f", + "seed": + "08b1ae7affa885bbbd6ac8d5b349da560d51cd605d21b01a5172acaafdabc3d769eff955028f2fa19834d60a646a5858985984b28021779f09611450840f9002", + "lang": "SPANISH" + }, + { + "mnemonic": + "e\u0301xito asado espi\u0301a necio ganso baile colgar marea lienzo mambo nutria fresa destino blusa sello", + "entropy": "53227540cc7618358d8c497f30e677af14203df5", + "checksum": "0a644ea8198ec306b1b1892fe61ccef5e28407bea5", + "seed": + "bb6665b9c53a20e959399cf8e9a165b3ac030f737feb3fbc29d03bd5c93b902804efdac03a8341c29dada9f36d0042e151832a60011436bba1d32d7dd5d12297", + "lang": "SPANISH" + }, + { + "mnemonic": + "nacio\u0301n geranio letra trote funda bazar bocina escudo barba milagro pe\u0301talo higiene e\u0301poca suegra coco oton\u0303o siete vuelo", + "entropy": "972c65f8f7e5f63ac7e27b1bf1dec8b624e9b94d3539d7bf", + "checksum": "25cb197e3df97d8eb1f89ec6fc77b22d893a6e534d4e75efed", + "seed": + "b7edb04dad3fa2864ea692dff281c54a4c582218ad6b308802b5d3ec3eae4e024b1501ea23ebc9bb02bd88ad650f9f6240c5ff58d1c6710c1cb0c74363882f99", + "lang": "SPANISH" + }, + { + "mnemonic": + "geranio tanque ensen\u0303ar sulta\u0301n monja silencio poseer crimen olla hebilla fianza sermo\u0301n sepia envase toque novio humilde atajo samba terror pijama", + "entropy": "633c1937eeb929b0ae49d3a2ad555feb2d5c9cbab4e46f82bb4772db", + "checksum": "319e0c9bf75c94d85724e9d156aaaff596ae4e5d5a7237c15da3b96d9b", + "seed": + "eb3e2fadedcddd898cb3bb3043e9ff5657bed24205ee01bd052fe899ebe9500397bb1f2fd163d6a910ff22fb440e5d9b4aa89989403d65cd4aa944d2c412ce94", + "lang": "SPANISH" + }, + { + "mnemonic": + "junco sirena cocina detener rumor horno logro mazorca demora pe\u0301simo sanidad ronco regla arbusto punto guardia bondad clamor ganga pobre bozal campo riesgo urna", + "entropy": + "77bb18d2a13cf2dc20dc5a40d63f49e67c52226f9b4120866985db621c51b27f", + "checksum": + "77bb18d2a13cf2dc20dc5a40d63f49e67c52226f9b4120866985db621c51b27f9a", + "seed": + "c6be51d4ea02f2c72a5dc05229b379d40def9b77013203a5446434fb6c3bbd093953f4b5f6b550861c9b28159950643a621624302e25cb33d6f6fbc2009e6c7b", + "lang": "SPANISH" + } +]; diff --git a/test/bip/bip44/bip44_test.dart b/test/bip/bip44/bip44_test.dart new file mode 100644 index 0000000..40a0692 --- /dev/null +++ b/test/bip/bip44/bip44_test.dart @@ -0,0 +1,38 @@ +import 'package:blockchain_utils/bip/bip/bip44/bip44_base.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip44/bip44_coins.dart'; +import 'package:blockchain_utils/bip/monero/monero_base.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("bip44", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final coin = Bip44Coins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).replaceAll("_", "").toLowerCase()); + final b44 = Bip44.fromSeed(seed, coin); + final coinInex = b44.purpose.coin; + expect(b44.privateKey.toExtended, i["master"]); + expect(b44.publicKey.toExtended, i["master_public"]); + expect(coinInex.privateKey.toExtended, i["coin_private"]); + expect(coinInex.publicKey.toExtended, i["coin_public"]); + final accounts = (i["child"] as List); + for (int i = 0; i < accounts.length; i++) { + final accountInfo = accounts[i]; + final account = coinInex.account(i); + expect(account.privateKey.toExtended, accountInfo["account"]); + expect(account.publicKey.toExtended, accountInfo["account_public"]); + if (coin == Bip44Coins.moneroEd25519Slip || + coin == Bip44Coins.moneroSecp256k1) { + final addrClass = Monero.fromBip44PrivateKey(account.privateKey.raw); + expect(addrClass.primaryAddress, accountInfo["address"]); + continue; + } + expect(account.publicKey.toAddress, accountInfo["address"]); + } + } + }); +} diff --git a/test/bip/bip44/test_vector.dart b/test/bip/bip44/test_vector.dart new file mode 100644 index 0000000..d5043fa --- /dev/null +++ b/test/bip/bip44/test_vector.dart @@ -0,0 +1,3805 @@ +final List> testVector = [ + { + "coin": "AKASH_NETWORK", + "seed": "488c7fa2dd9b0f387220a0207804dce266b36759fa3644e66aa44873af507a5d", + "master": + "xprv9s21ZrQH143K2gduUNDq5PdLmV2edBLttLLihfxvMnAhvWFejpR1ztHFaz4ofcMvHeTtSeN1hFJ3kTNieGfKBiMf5xXRAT6HUF7v5rKSuXH", + "master_public": + "xpub661MyMwAqRbcFAiNaPkqSXa5KWs92e4kFZGKW4NXv7hgoJaoHMjGYgbjSFBeAts8ATjs4vthHkMLK13d7nXS1iCM1U6eWJrHCygm4ZNoPUt", + "coin_private": + "xprv9xYdLQKCZwerkjnq6irtvh5961nXZnwwRi36rNEAdXXF2DiCTVFRQsbPYTiKnUh6WBiqDjhDEQy8UUh63NZHDonrQ4FEyietNZPUTkZZSZj", + "coin_public": + "xpub6BXyjur6QKD9yDsJCkPuHq1se3d1yFfnnvxhekdnBs4Du23M12ZfxfusPk76NRUnnTXkrFMtLZYPCbcFwmKRuh2HYcUWzaSGCEYD5cGw2rW", + "child": [ + { + "account": + "xprv9xqEYSXndzdV2oQSr7t6pYghYQraPauiSLzyTkQEoqHnmsRytK8o7xWJNEEGCEPYWtQK9FimiLk22p5eAZMB6zCk3HV2nWsDtvPNiZaRaHo", + "account_public": + "xpub6Bpawx4gUNBnFHUux9R7BgdS6Sh4o3dZoZvaG8orNApmefm8RrT3fkpnDYVpp8QnoyQNer6DS7UDGrdR99u3MRWcCgFeaBfvsVGGEaHLg9b", + "address": "akash14dscck3wg0axujsgldypfzm5ad2gr2xn8fql73" + }, + { + "account": + "xprv9xqEYSXndzdV4SQTSgYhGCr86yFW1MWMKb79JrCbwPoVMtj2JdRK2inmXmNfXp74xa6qHxqXzZ8XZRv2HLTZWVy3iYgun4mh54S5XvHGftb", + "account_public": + "xpub6Bpawx4gUNBnGvUvYi5hdLnrf15zQpECgp2k7EcDVjLUEh4ArAjZaX7FP1qoJhTTUMr1cgzs4EGBThPiAKVrsKX5xP5q2rmiHuUMM3t4CFP", + "address": "akash1kuamvrclz8ga54q94hgl4sk4wt98hv6xkvn9s6" + }, + { + "account": + "xprv9xqEYSXndzdV7YsVgyLJgpEACwzYRCBqccrinAKGAMAu6AdFERYKM9jqZkwKQno6MZAzDBYb485i9vBKGbfX9B33Le4vJ5baQqSXBUgZgU9", + "account_public": + "xpub6Bpawx4gUNBnL2wxnzsK3xAtkyq2peugyqnKaYisighsxxxPmxrZtx4KR4c1sPzfTDjuk8BV56DD7sqtPxkzkco1wQbUNbx6wzZTGB5kNYf", + "address": "akash1dazahrvz7yygj02ypaux5atm6w0pkrlutvqp9k" + }, + { + "account": + "xprv9xqEYSXndzdV9vFiHLt3zCu1PMddhDD9nApsnrPDothZDBhGAx9wREvLmZvCNxcjYiDWuZFYKj4MuTbKTWoY8k6N8pFuwVVseuptXdYtFEm", + "account_public": + "xpub6Bpawx4gUNBnNQLBPNR4MLqjwPU86fw19PkUbEnqNEEY5z2QiVUBy3Epcqw5i3wuDbukS6fFcXEjy3oAKA3mDouzNCBoXwyA4E9DeMG7TWh", + "address": "akash1nj5094uqqr8hpl4nyapgahd7f7sxehcx992y4s" + }, + { + "account": + "xprv9xqEYSXndzdVDPBLuM9ofFAToWXpChd92ywNNUWLqXQbhSyPKC8HpYRoPQ5aDHNmQo3Zus1DcRA3nkSScRXfxcsPLxdoyh9S91AXPCXrgSv", + "account_public": + "xpub6Bpawx4gUNBnRsFp1Ngp2P7CMYNJcALzQCryAruxPrwaaFJXrjSYNLkHEdtSXaGwr4UbPJySiuEdzzcqDskoL2jHpEMfKX8BM5iVQovtaDw", + "address": "akash1zvnes9gg9gly99wc68hacfw5m84meaxhafru8l" + } + ] + }, + { + "coin": "ALGORAND", + "seed": "cc7ac93b150ee5e97e3c38f1926fcbfebc075df8576a91f1b7d6f4f60ebfb98b", + "master": + "xprv9s21ZrQH143K2ufh6mxeZi8MH4FcqJ1iaYGdK4yP3gf8gnfDtVGE9uHD3C8ZV6hJBTizgFLZRNBShwSKhDjv3Gvq6yn1sgKNBjjYDDUAGQX", + "master_public": + "xpub661MyMwAqRbcFPkACoVevr55q667EkjZwmCE7TNzc2C7ZazNS2aUhhbgtQwre9iwZuhumA158x7yadvwYWAZs5tAU4Er7zJcQMCA1ed2KRy", + "coin_private": + "xprv9wNfpL8iARJVp63iYjHgGVjqkBPfwTPLbBKA1RYUyoJw8b7a6nVhmZXpaaC1BYQRFRUDs1bmASzTY7Up2uqwget1PQ5ivw7AkYDm89P6U8F", + "coin_public": + "xpub6AN2Dqfbznro2a8BekpgddgaJDEALv7BxQEkoox6Y8qv1PSieKoxKMrJRjvdHnYccSRVwZvD71a72WZcdXUp2eXi6iRLmjNBMGxsL1mWz43", + "child": [ + { + "account": + "xprv9yUZBdgcDHpYveBXEGAxyfrguz2wwRGvxoFPGGJYFHxDpboniiucctCGaxcPXxWfoRg8QT6G8of16w5YYVYKJtf5TQC3xgsKHMhaCigeGa8", + "account_public": + "xpub6CTub9DW3fNr98FzLHhyLooRU1sSLsznL2Az4ei9odVChQ8wGGDsAgWkS9m5u6srJXLPt6X23MG1TEZUjhfpjxJt73QNU7fzDF6DySvFjQL", + "address": "S6L3DFRFB4H6E7MNEODAIDURIPTKGNP2LNVCCVBHY3NWP37QMUJ5AFSS3E" + }, + { + "account": + "xprv9yUZBdgcDHpYyKYshy6ShUAbgRUvHugDw7DNoTS4sZmPfsPwgE7JNyezcxDY8jSpsJmJeYnD6kt8rsFuYKWQgnGhGa5agi8ZYutxacKM2d9", + "account_public": + "xpub6CTub9DW3fNrBodLozdT4c7LETKQhNQ5JL8ybqqgRuJNYfj6DmRYvmyUUAduKfSA9vqoNpZr2Cd5fkeWNVELAMb1csqS2ZE3maz53T3u4Sy", + "address": "W4PBSAXJMB5XDHN3ANNBD2HEUVXGY2H4CZFH4ERLS6CLWAUBFL46KD6FNA" + }, + { + "account": + "xprv9yUZBdgcDHpZ1ejhb7iW1BYseCFv81kayLJrNV69mGEHZRAUhGpvyEwPvhvgo1MGGVjd5UhhNyNnYi6uo9sBNQm8c3UnrCjws5Sr6Rqrwgc", + "account_public": + "xpub6CTub9DW3fNrE8pAh9FWNKVcCE6QXUUSLZETAsVmKbmGSDVdEp9BX3Fsmtk5VktoZbt8Qhg9hwmWjqMxbYSSKqAjvUDJYDYSC67TqRYQcUf", + "address": "QDW2QLSPZX3N5RLUVVAOUX6APP5OQPW2B2P2AX2F5DBQ424YO2GNOIKTYE" + }, + { + "account": + "xprv9yUZBdgcDHpZ5B9msKojv7puujZz3ANvyviR1bcHzGAxSLbD15LEqoimXaSoZSBo7WAN3QHzvduxczPq9oAap7oTnvs7Z3oLrJYU4Akcuww", + "account_public": + "xpub6CTub9DW3fNrHfEEyMLkHFmeTmQUSd6nM9e1oz1uYbhwK8vMYceVPc3FNmuXt4QGw9DUR9RzLWBcfXLsf8LFeCNTt6YUa6ZqGq83HBy2hX8", + "address": "NRHPP47Q4JBMEQBL2G5H4E55IAJ2PMXIE434ZQDETMAGHFHTU4ZLWVOAKI" + }, + { + "account": + "xprv9yUZBdgcDHpZ5oHrRPBR99SEsnuopCgBaEYxfNbt4RLJjvUyC5HgJxWJqWc2zPHK1ZqTBSHTJAGKLAJTVhwq262kAZG1uDJkLPD5c5KmKAU", + "account_public": + "xpub6CTub9DW3fNrJHNKXQiRWHNyRpkJDfQ2wTUZTm1VcksHcip7jcbvrkpnghiEkEtWPiFsRrhzuWo5SVbpExYsxkeXYd7qSE5PiNC7a14uztz", + "address": "IVDRY2WZAQPS7JDVJKKLYLRRB5FPVF6QWMIRU7TGCUXUVGLFNNVGF2M2UQ" + } + ] + }, + { + "coin": "APTOS", + "seed": "10e7c8f5e2444268a470807545a6f6fabce98680ec4bf8409e321dc757c68ddf", + "master": + "xprv9s21ZrQH143K26S6zMJWJj1nzi7Sog89qWqQ2zvdHH1wbnyVpNkY8YsNjScrThp4XsVsFuHiQTj9CeL3Lw8P2nHBNBrS2CJpdr2uweyM4oJ", + "master_public": + "xpub661MyMwAqRbcEaWa6NqWfrxXYjwwD8r1CjkzqPLEqcYvUbJeMv4ngMBradKPSwtpjk6ZLtu3tHLfPtsP4han4AVtKmDQiMk9XQguyQcbmxn", + "coin_private": + "xprv9xf5enTkzmZBiAPd7JtfR2JcnFcWm2iN53zNFC2r6JsXLQkBYE495EEVScNSu7wMj5eBz9LxBh48Z6cQh4zAK9Nxxmmgkzduhqpi3CGt73c", + "coin_public": + "xpub6BeS4Hzeq97UveU6DLRfnAFMLHT1AVSDSGuy3aSTeeQWDD5L5mNPd2YyHpSSHcmyTVAk2vcCVT6s1s2prGhad1qWVwCSbxP7k1CycPpenAE", + "child": [ + { + "account": + "xprv9zY7EeL6bhYMiKUZ1nFfUPnSUvp7WaFBv4tyMSXEt4WFU8Q46teAAtao1MnWbbX3uVn9nFFWyPJgCJGmKfRW8LPGqfb3uiAkc6CAhdxvPhJ", + "account_public": + "xpub6DXTe9rzS56evoZ27onfqXjB2xebv2y3HHpa9pvrSQ3ELvjCeRxQiguGrZvq45x5p4wPqy4c5LbfxTTnUJRPS8StDynffZ1B4i4Yfadwefc", + "address": + "0xb21d4cdbb6adafd47d8ba7a1f64991a6db72b2f8fbb17d98c787576716d33da8" + }, + { + "account": + "xprv9zY7EeL6bhYMkbCyYDcXuvviTGweaLawSwbV7P9tDaNbtz8gNkREmBLcayiCd7bWGjEn5iQvty8ruS3mvpyC2pHvL9cfqj4NXVaNVdecXW9", + "account_public": + "xpub6DXTe9rzS56ey5HSeF9YH4sT1Jn8yoJnpAX5umZVmuuamnTpvHjVJyf6SB1rSFTHxvJMe53ENu9CehFg55WiGJXJSUAokHytLyGd3ZyFokt", + "address": + "0x2d5251a4b661ae05d2c728894f2982e714d60bdacfef3f8a72f863d80081a99d" + }, + { + "account": + "xprv9zY7EeL6bhYMmr9kfZVCn7HmqpEsoCBnrBJMiXbZHZuBddt1Xka9PXTCiL7Xd5fBFggvPcjGxApNd1e2enUzBw6nXcyPpacTK8FacN9v6W6", + "account_public": + "xpub6DXTe9rzS56ezLEDmb2D9FEWPr5NCeueDQDxWv1AquSAWSDA5HtPwKmgZWbLtbvyiB924SNvUTVLJQmM9NYQ6e373zixmdAmugmZtNiGNaX", + "address": + "0x2f961b62e1ff88d77cb469c3a7bb3f9b3c2a7a68426d5240397fae3a4726ec5" + }, + { + "account": + "xprv9zY7EeL6bhYMpsyVibfuNYtUqWFwiGx6tMKAf2wF6mC7xCnxqt8QTm9DYH8esMpt1kQ6djB6ojKd8u9eCFQC7nbVP1oEMm7Kj3x3W9rS1D8", + "account_public": + "xpub6DXTe9rzS56f3N3xpdCujgqDPY6S7jfxFaEmTRLrf6j6q187PRSf1ZThPUNcfXhFPioEkM8rVBujQ8w65km5TE1m4XnPYpVUdqN7xLA6j2q", + "address": + "0x7d6c8f6f117dade388b4421c0cc46a0825379a1861834033249b530003f90cd6" + }, + { + "account": + "xprv9zY7EeL6bhYMrX8cLi9B8g7XNp5VQgfCY2yTCn8ctj6n6u4NNQ1Cxc6feB8rWUwgoUNxu76rexwFoh3QBDkp6yN6A5Zf6jFVoHSzV59sQGx", + "account_public": + "xpub6DXTe9rzS56f51D5SjgBVp4Fvquyp9P3uFu41AYET4dkyhPWuwKTWQR9VMm1T5aS1AXuKv54ZrcNowPX6c6G89CTE8v1V1ZaigKVmsX2XHd", + "address": + "0xad0f10b7b30bb806da5e1a2826b517715fe0636f038347f714ac5a1b0d99572e" + } + ] + }, + { + "coin": "AVAX_C_CHAIN", + "seed": "17bc2a69e6c2043d3007a4359e8e5074ac00a82dfc97f1ba3147ed944b906424", + "master": + "xprv9s21ZrQH143K35s3dMciZbbePGdJ9ey3WUnVUToZyXXHtoZJhhiAtt7DJ1qFp4yiYvAKhZdWvZ5SM3oAjeNpQqpJCuybNSmEEc8fgjvvYMt", + "master_public": + "xpub661MyMwAqRbcFZwWjP9ivjYNwJTnZ7gtshi6GrDBXs4GmbtTFF2RSgRh9L83xRN8x8TK4EsHbSut5mVN3i8zhwNkm16XDMEhNerLrWLnSVw", + "coin_private": + "xprv9xLFyCr9xEepmeUMx3Gd6U9iUsLNvYq7Mh5gyrcao9MpVHFBi3TQ2jhGQtAf5ijrGNjW7QEBPapY3TCgNHMruTNJ27kXMyVn9LUAvSVgWCt", + "coin_public": + "xpub6BKcNiP3ncD7z8Yq44odTc6T2uAsL1Yxiv1HnF2CMUtoN5aLFameaY1kG9Xp691ZJzHiUDLLrQRxMJXB81xt8NR7NkjUNijDqQJMZNhLWPM", + "child": [ + { + "account": + "xprv9yNuCcBqSZRDNq7vcL5662Ze5X4tmWqe9C5ZyPkSdDLDtc8zZiwUaaiYi7GAaZV7CkKtpSRamQmc2GDqFKQcUNX3wZLXDzp3JfjXBcNT9if", + "account_public": + "xpub6CNFc7ijGvyWbKCPiMc6TAWNdYuPAyZVWR1AmnA4BYsCmQU97GFj8P32ZMoq95sGcUkGHmRKRp7o42Rxap6c8mPvMCWxeEkQ1Hbd56L4bV3", + "address": "0xC5CA9E4B7ae71117321D3358B43970641dAC882a" + }, + { + "account": + "xprv9yNuCcBqSZRDQrPL5bCAVymimVFZMni8Yd71hoBa7RviyPY1xYonmsN2esNbdJb8KdJppKvmUcQ4zw7NRGyHrLBHSuqTSyxjH1ocA5bR6Wd", + "account_public": + "xpub6CNFc7ijGvyWdLToBcjAs7iTKX63mFRyur2cWBbBfmThrBsAW683KfgWW91YitvREV98TeKwNtUsbC1DYAzsrwFAooxLFd1Q1bvR8vR2E2p", + "address": "0x6Cf4D72058E5Da389b634571aFA9ac54937be5EE" + }, + { + "account": + "xprv9yNuCcBqSZRDUzHwxHnfVVN39gFqGJjXvDNKSvPFRjqVof7m2ErvrFkTsRuGJgyBSjFY7sFtPKWm1hJpjvzgbFhhDJ324S992h19D5GnUjh", + "account_public": + "xpub6CNFc7ijGvyWhUNR4KKfrdJmhi6KfmTPHSHvFJnrz5NUgTSuZnBBQ44wiiqGK5dY4Yq3ZjLHbHfkEeK31SguNiY2riKq5wHxD2NtFp2P3uA", + "address": "0xbFb7a972AAAB3204B6C4517d32C2b666c4A3af92" + }, + { + "account": + "xprv9yNuCcBqSZRDVgLm4FWxXeMT9azkRRAbCeijypyty3Q9ukHortZCzJtVhArrMuzcAT2UHraZYnVmgjxQY7aiuFbcE2UgA76mz5mYfHfCcCy", + "account_public": + "xpub6CNFc7ijGvyWiAREAH3xtnJBhcqEpstSZseLnDPWXNw8nYcxQRsTY7CyYRvTMhYJuU4zxw7gErb8BrPtaedVVBtubS1bqvGvq8Su3hBD6gd", + "address": "0xd6Cb99fCB8688b4f9b8ED37fe58aA5669c34A740" + }, + { + "account": + "xprv9yNuCcBqSZRDYvU8kegoSyX9xctd7nk7KSCoAGtXG6iXiAJV77Dkpf9MwqMUc3TE8aAub8ix2YcEJz8XpL3somMpqsX513ykmTU4h5fhUS6", + "account_public": + "xpub6CNFc7ijGvyWmQYbrgDop7TtWej7XFTxgf8PxfJ8pSFWaxddeeY1NTTqo6dsjSfEuvSbgE4ZWja2CtBUcPresMkL8QyQxcUgwGyapm6xTSt", + "address": "0x112Ff03a6d58395b447d03a5FA4A4f998e8fAccF" + } + ] + }, + { + "coin": "AVAX_P_CHAIN", + "seed": "233fa4eb1e21059608dc847b04d58ad601cf1d654da831b10c19e543dc38b33b", + "master": + "xprv9s21ZrQH143K2oruMTW5HV85KGaRaZ1pGFM1cWQhkQpHDjdscgpdX2pvVbsip2m3BcWfcUkWAs6r1hcgotwN5ooQUJEph2SbBDqpMjjBsfN", + "master_public": + "xpub661MyMwAqRbcFHwNTV35ed4osJQuz1jfdUGcQtpKJkMG6Xy2AE8t4q9QLtnQ6rwWtvJFpknSDD53wiiwRKDsp44fvpxX6ovZQSJrUNoYDxF", + "coin_private": + "xprv9xFUCpCH2MkiFgKJe3EU17ipjsVTLKScf89eXN62ALv9WHwxYbWrE6rwaGmyzqqz3bMmgMtWinGCrDL1g8PMLKkF2v3PQ7rCuKmqbvcT2n8", + "coin_public": + "xpub6BEpcKjArjK1UAPmk4mUNFfZHuKwjnAU2M5FKkVdigT8P6H768q6muBRRZd3KbDzaTxzPi7qrPZ4uiQcWpiKQypaUaRX1QfRK1ZqDrZLiFg", + "child": [ + { + "account": + "xprv9yTqsAwBNkcU1hAziZN3tdbsJpunWfnpGBb6MJeGaU5fYcMW7hasKMrthYsuXaQrPSY1yDaCXtPHEZQS6Rs4YKCDhNBbF8dKUDRhrXS3jZC", + "account_public": + "xpub6CTCGgU5D8AmEBFTpau4FmYbrrkGv8WfdQWh9h3t8oceRQgefEu7sABNYqU1Ni2B8ppWEud6sSReSPUFTy86N1tcFPYz7YfjeqQgAmrGH6G", + "address": "P-avax1cutsycecjkqhfmy0m7d3rnw4qqns62eyd4k7ep" + }, + { + "account": + "xprv9yTqsAwBNkcU43YEDsQkcvGMMAwyoW72qwQ64KprZzzRCWsPYNDeDYnoWrWTp4addqdNprAtZHCaJUwz7VV17cCSAS3JY1Qy9rFLuAf76w9", + "account_public": + "xpub6CTCGgU5D8AmGXchKtwkz4D5uCnUCxptDAKgriEU8LXQ5KCY5uXtmM7HN73n2wJc5YJJQRK3YRsCeoiAqayZBvKRpsVuwq4LMNsVexToc5K", + "address": "P-avax1wz4afz8yd0cafmje8kt3c2gv6reye6w7fa468x" + }, + { + "account": + "xprv9yTqsAwBNkcU6NBQUBhkBJhSxR3TLpzafBzYdHAah2917ZXVeEYyXcnx4EDPVdhx8mnb5iPhA9jLEuVGEsMw4jcG8GoWcp9opp66zARGeKD", + "account_public": + "xpub6CTCGgU5D8AmJrFsaDEkYSeBWSswkHiS2Qv9RfaCFMfyzMreBmsE5R7RuWo7cQPESd1tJGLtNyuGCywPmwNs7XUiBdrxdEVKvtMmTpbEv6r", + "address": "P-avax1h39g67yqlyyvqwkyn8l9ewhemk8kujl44ruw5a" + }, + { + "account": + "xprv9yTqsAwBNkcU9muBiU9rbTEfigi13bKqAg3fPDJgESoYNDr7XHLUj4rBCxtUpGiezubATh4enDsuWS1dAhAiTfXs6FQ4eoLKusERBgec4xv", + "account_public": + "xpub6CTCGgU5D8AmNFyepVgrxbBQGiYVT43gXtyGBbiHnnLXF2BG4pejGsAf4F1J5Zgv6iYWeBa8GEMWRifZ1fr15NVDJWJieCtqgkfK8Xqcpxn", + "address": "P-avax1yfn6ak7tdp2dcym762dsdps40dnpv40pf8es2t" + }, + { + "account": + "xprv9yTqsAwBNkcUCXLjNyCEPfbQsGtehxmsHtn2S4vZ3EqKurwgm717tLdLU8cr41cHGVYsuu1knvyd744bUFmHEi1mMpUitFA246Vrty6zi2o", + "account_public": + "xpub6CTCGgU5D8AmR1RCUzjEkoY9RJj97RVif7hdETLAbaNJnfGqJeKNS8wpKQPeFP8myYGnRpkS4FZ2MoC4Wi3mMJC3Uj6BLDQu2o9m7vachQq", + "address": "P-avax1ggt8uxespxghgxw88992thf9serhntpzeuwmry" + } + ] + }, + { + "coin": "AVAX_X_CHAIN", + "seed": "e4c8691392ce774e15d33b676fcc627155b81e9e729d8e9baee5b12e208fcd1c", + "master": + "xprv9s21ZrQH143K3LXUGAhKQefLyJ66LMYyxW8EtezEPfk32SGCPhFjQNqCWmGcsQM2hVuu1jb5WjggQYfFLW4eXSfnzHVfqHnu1Ut67GAK7kp", + "master_public": + "xpub661MyMwAqRbcFpbwNCEKmnc5XKvajpGqKj3qh3Pqx1H1uEbLwEZyxB9gN4f4o4dysTYXoM3J2Cu7N51i4RCVaTcnrLGxUkXuaskMUrVVBXF", + "coin_private": + "xprv9vq4qE2wFSy2dVib4C4CQJ6tHkoDXaqo5XC98JhcSHHNSxTJFXM6VDngF4Sd8gD51gMg9XiqHU4uQc8q4cAgu2mwvEXzkveW2HbxzVryioL", + "coin_public": + "xpub69pREjZq5pXKqyo4ADbCmS3cqndhw3ZeSk7jvh7DzcpMKknSo4fM327A6LaVRUSzvpvbeouLaGX8ot3uiRoqmnvYE3Zs1cNwDBTDFTVmoB7", + "child": [ + { + "account": + "xprv9ynwiuyaSoKuTYj9wXsUR2cox3ot64tfGQC11X4rFPRVn6rcbWwEnjZzRZcyF166WydZ4AeF6PauXjAfeQWJceCLRpgtzG7zqSkVC4gLSGo", + "account_public": + "xpub6CnJ8RWUHAtCg2od3ZQUnAZYW5eNVXcWdd7bouUToixUeuBm94FVLXtUGq7hri6m7tqyanEg3TTqw8UPcbYBgQ71ycAvTD4QXraYN9sGGNc", + "address": "X-avax1yzqqgcdg2css0x38ng02usghs23cpqw2r9xaw3" + }, + { + "account": + "xprv9ynwiuyaSoKuVvKH7fGNT3pFcSWYCgQPES4MFSnGqJvRp26GW6wWC1fHwnGrYfZfThYSWKrhY25vo69dfceVNmX3hjm98VhrGMdp29XPUPC", + "account_public": + "xpub6CnJ8RWUHAtCiQPkDgoNpBkzAUM2c98Ebeyx3qBtPeTQgpRR3eFkjoymo48yaYuWtuf31vUvgDuLq4sns1hVNU6c4rNGm9cpmRiZ1Uqdfqg", + "address": "X-avax14scmhsx5wu0xg597gpm8429qpsxa39muh7w4yj" + }, + { + "account": + "xprv9ynwiuyaSoKuXbanbjuhLHi621B2H3pEjGieftrsasazhNUrpj1K94exXHpitafaMHoNabLUTtMqCRA1PShtEmhxvmZhbqk3kupR4PFEEaC", + "account_public": + "xpub6CnJ8RWUHAtCk5fFhmShhRepa31WgWY66VeFUHGV9D7yaAp1NGKZgrySNXfp6J35qsxySQ7KQpXq8YZ16gaCRc5geJfM5Bg34dRZRD9yCq5", + "address": "X-avax1dnfygf5e6htptknmtltncvevrhk0yxa2rupqjw" + }, + { + "account": + "xprv9ynwiuyaSoKub2NR3UcqRX5WdtjC29Nve89S2VaXBpeUd7WJk2EczuV8g74GRGC6kmkPW4h8vCLTfiewFMdcQ8qVfRnsQa9E2T9cbp5hzhu", + "account_public": + "xpub6CnJ8RWUHAtCoWSt9W9qnf2FBvZgRc6n1M52psz8kABTVuqTHZYsYhocXNoibQx1CazTuaMQWrV15FRTsF4DHcm41aG9p3dn2yUGFcbr3Ro", + "address": "X-avax1m4uaknwz46388qmj79gfjm9vnhz8e4sl8d7uex" + }, + { + "account": + "xprv9ynwiuyaSoKucZs2CogB1anLnTWD6DxAnB9BaPjR36YmfmiY3LJNGbH5JNoTJdPz6QQfPBi3mUkMLrJnyRQk9odNQHRp7u1yjammMfjieBZ", + "account_public": + "xpub6CnJ8RWUHAtCq3wVJqDBNij5LVLhVgg29Q4nNn92bS5kYa3gasccpPbZ9g9Hy8CaX5gQLLBhJfR6gjhAV3dj5QnctYR73z9yKxZY1gYYe3B", + "address": "X-avax125ztwwwcl3jmuwlaqfa7hrmyckl7fj3axxa2kp" + } + ] + }, + { + "coin": "AXELAR", + "seed": "c65620db7b271367a334b4b14edfb97b808bad121c36d755c7e2a69738325959", + "master": + "xprv9s21ZrQH143K2G1DuYMfDQtojWtFV2A34ncMARJsThLAYaVrBTHeXLtLJw5D8cYu5yymKtQdsmvFmVJU6xwy4CLUEd53iAdpPsGEp12YoVq", + "master_public": + "xpub661MyMwAqRbcEk5h1ZtfaYqYHYijtUstS1XwxoiV22s9RNpzizbu59CpAAoSbHf8piSAUNXZ1SqfWctVmv5K17HGSz1WmH7ahDbd4EkndGY", + "coin_private": + "xprv9wQ3XNiqZ6jvx68o2o2Be1h66nFoTGp2USUpNbbJfPMhdjRnpabnQHvsEzf1cKrGAXY2LJeXzf7zDiwm9RsaF2vspB8XZ1QqZDFiQtFNbAF", + "coin_public": + "xpub6APPvtFjPUJEAaDG8pZC19dpep6HrjXsqfQRAyzvDitgWXkwN7v2x6FM6GPWEqpuyrzg1nxy1JfsUAv2w4fdgRXLLvwGufiVypkuNpV5Wv5", + "child": [ + { + "account": + "xprv9yPzseD8EYQWCPJ3ZSYiUv1cVig2mb3J9q5kihXHVHfxpTWqRV5qH7SxPRvHBZJzDHmAjPAQpLSxxWrzR8JsUeHadwUKYxhHqs82MU5s9S1", + "account_public": + "xpub6CPMH9k24uxoQsNWfU5ir3xM3kWXB3m9X41MX5vu3dCwhFqyy2Q5pumSEgLDh7krK5Vxb7RCr87YqWUHMpJSfm5et5FyCGcoNvsMDkAXgkK", + "address": "axelar1vqdx5avsnyxks2q9ct8a2te3kg8dwkupyqpllx" + }, + { + "account": + "xprv9yPzseD8EYQWEtis3VafrEYsbyN2BGeoaDrEPehuKg68dvksfY7NFDy6tBRcEcBuwfqTijjnxMz1yRrXSSCYZkbE3rRPHWgoqambUko2iTY", + "account_public": + "xpub6CPMH9k24uxoTNoL9X7gDNVcA1CWajNewSmqC37Wt1d7Wj62D5Rco2HajUiCX4bA8122yncWZGg5CFk8HX35TnBnR3ePerZGsBoFYjEujyw", + "address": "axelar1zgut4s2fl935kmcwp2tvxyd37a3qkn6xaqx37e" + }, + { + "account": + "xprv9yPzseD8EYQWJvKHg6JGTFLVrx3wo7TXd5Uy17P5Y6ZHppLMNtmPDo89SZRfJGJLinBvbEACx2bxcuAHuEer4LwMvkV3peoaHa2V4vfTz8m", + "account_public": + "xpub6CPMH9k24uxoXQPkn7qGpPHEQytSCaBNzJQZoVnh6S6GhcfVvS5dmbSdHrcArJCeChaJsFjWSWddwD763uRGUZDpXAPWBpgTwekb33nSiiZ", + "address": "axelar1ylhputzvr09mjlq6he6vkx7ccg5ygz67g76ts0" + }, + { + "account": + "xprv9yPzseD8EYQWMsbwQKZz9Lce5DAXv5umZa8ta611UnyXpg3hLcrpqRQBKrCU6e9GjkrSQMa33E73Wb8GvcDPrGWyrgjKCsteskBLhqc8tZc", + "account_public": + "xpub6CPMH9k24uxoaMgQWM6zWUZNdF12KYdcvo4VNUQd38WWhUNqtAB5PDifB7acRyQtLjkG896GoJTvjqhnLtux1LhTY8bt83HyCCJspyCmQUG", + "address": "axelar18u9atx7h2j9aplcpv6edc406xqjl07k5vtmrjl" + }, + { + "account": + "xprv9yPzseD8EYQWNXnSx4TAYFEjAdUqF4ohLx2jAAaawG57maSqJYXBCU88DRgbCCU1rYYLykpXWnAehoDXmxVE1rVgCRLw2REjt9iDEi755Zt", + "account_public": + "xpub6CPMH9k24uxob1rv45zAuPBTifKKeXXYiAxKxYzCVbc6eNmyr5qRkGSc4fcRUYtPKJ1HCi63xXmgq7m3vZfE1XjC3qoEZhoKMiCKVk7tauG", + "address": "axelar1mkjuspganc97wp2tpgzj5jnnym8jl6wahyfaps" + } + ] + }, + { + "coin": "BAND_PROTOCOL", + "seed": "e2cc9a523c45fb1ab2b906f312a0a3830f005b13d78683fba5f69029382ab67c", + "master": + "xprv9s21ZrQH143K4SQGF4xp4u3ifDfMEDbMm6fqZE1gWZQp4zN69Ry9AhrfqXoadNFDSyLCzJwnSM392guXzMuiSYoBxSVknWNL2GPj2WAuEHc", + "master_public": + "xpub661MyMwAqRbcGvUjM6VpS2zTDFVqdgKD8KbSMcRJ4twnwnhEgyHPiWB9gpaL5yUs7i9zHCzTFF2LZn7bzZjSBiWUBXDwtpdQVLNQ9M5zCQM", + "coin_private": + "xprv9wEVrTMhJuQ2NKxiUsaLLYuZTe451vTdGGqqQq1nwvGnAtBnzJik6VBT45Pg1jM8BMxymmx9yGwT9JksJYTTrX78S9QNZyHvdWsj4Fraahi", + "coin_public": + "xpub6ADrFxtb9GxKap3Bau7LhgrJ1ftZRPBUdVmSDDRQWFom3gWwXr2zeHVvuP3SbUPJE6QRERpph33FEQXnptuRbq9Vz8UJuSMGPYuzHdKh36o", + "child": [ + { + "account": + "xprv9zMpAvgXqNww1AzQekLDtZPfYc11SX9DYGwdLuUS62BxaWAZdPdagYfCipnZ61uMNiyPgReiL1az23j7Nui4sr7QyVnPGw8XcZzauCNBYF7", + "account_public": + "xpub6DMAaSDRfkWEDf4skmsEFhLQ6dqVqys4uVsE9Ht3eMiwTJViAvwqELyga79XbfUGWvCXG4zooRWoEKWf395txPmGonRMDNQ4ZCePgfK52j1", + "address": "band1pxwuvw33serrv5yed5j0qf707va7w3ylvggtqk" + }, + { + "account": + "xprv9zMpAvgXqNww3EDADLMhVkrXTQzBCz6Hx1gAQRfJfbPoKd4KLYFvpPoFpEy8jePJAtZCc3VvQ8YpfftFN9yC8qDVRrqcWoT4j1BurqH8gec", + "account_public": + "xpub6DMAaSDRfkWEFiHdKMthrtoG1SpfcSp9KEbmCp4vDvvnCRPTt5aBNC7jfVGU5CNSDY77sLcTP7LKJqVU96ngnUfjpycFryuKMNiCxSTVeYq", + "address": "band16hmz8kqxxklcugkh0p0lmwx2kgktyhtnfyftqw" + }, + { + "account": + "xprv9zMpAvgXqNww6AC3n4ewdSqia9pCEhuAKU6SisuG7DkW3wNGUGXeXBz5Q7f6oXp9U2EdAUFzuFz57uR4XRxzckL2LFWBy43Pm4ek1wWZJJx", + "account_public": + "xpub6DMAaSDRfkWEJeGWt6BwzanT8BegeAd1gh23XGJsfZHUvjhR1oqu4zJZFRdoXHYPiAFfaDqQoXwzTVxoRX5n3DgyZcmttb9cmfo1BmMSTEQ", + "address": "band1e2kxrfpdncnnxr2kt9zchwff5hjd9fsqzn934w" + }, + { + "account": + "xprv9zMpAvgXqNww9X8oeBQwtv8YEdsb9D2RodoN97oeS45y4URf6bNHZuhBjWFap8Kq9LMvkpi2JhxaoapzBVd4ibTGAHh8asTWaZy7QLHNS8C", + "account_public": + "xpub6DMAaSDRfkWEN1DGkCwxG45Gnfi5YfkHArixwWDFzPcwwGkoe8gY7i1famb5cYv9eYD84eCaLcEMpvZhLzohSjXrv1hYDxncaLZWtcibbpP", + "address": "band1d3uqppya6ypnk6ttkwfks2ntl0z0sxl93y6c92" + }, + { + "account": + "xprv9zMpAvgXqNwwC2ngtsYN1hLfMCeGfyeyfKXFQXspmJR5LxtgrQLZxEBQqzep3KRgmiAins4SQoUXgZZQENDXdFkKqFMZ8i5qDdi21TRRyxV", + "account_public": + "xpub6DMAaSDRfkWEQWs9zu5NNqHPuEUm5SNq2YSrCvHSKdx4DmDqPwepW2VthJzGpESkZ2mEUAqctrhRBxoBdx9hxiJXRdBJwSK29Ds1w29nneL", + "address": "band17dcm92zv8rquv0gy2grupgmwgu0kuvsnnn5sjq" + } + ] + }, + { + "coin": "BINANCE_CHAIN", + "seed": "2c63325383aa461fc4f191bcecad5566acf0ae45e8a3e8ec37101df42705ef28", + "master": + "xprv9s21ZrQH143K2T5hUfjpvYF61bFFRKNddqgkXbNw29JMPq2z4JGXoxrXWuWx3vHYfowekc8YgrrurvmAKpTAyX2iiKLU9AitJK9tyLNBo5G", + "master_public": + "xpub661MyMwAqRbcEwAAahGqHgBpZd5jpn6V14cMKynYaUqLGdN8bqanMmB1N9tDGqhbZC8iWZftWA3FycBpv2X7PeXAqGTHBdvKZMzKNzPuUs3", + "coin_private": + "xprv9xMPiZazYZV8XeuMQmGjF4Et9h8ME2CEukfJ3oiBQjChAFeMYC5CVXysWhcxeL1v228hjeucLr9QHzWEnWA2LTRDyLzxDeiQo75Jj99xkvG", + "coin_public": + "xpub6BLk857tNw3Rk8ypWnojcCBchixqdUv6GyatrC7ny4jg33yW5jPT3LJMN1X6Zvc4uwuW3PoioBYaFZFSdWbVB6qqm6k3N8gWVGcwJ1Ujr2D", + "child": [ + { + "account": + "xprv9xxkXuYRD4MgdDzU6xjm6H7wd4JTnN4W8FNVRsHdae8cmqjoUjv1iFZKCtcRWxYYNYuLLrFnVEepGoSQcjQXAmXe65hdr18Wj4KCZVq8TAd", + "account_public": + "xpub6Bx6wR5K3Ruyqi4wCzGmTR4gB68xBpnMVUJ6EFhF8yfbee4x2HEGG3so4BH6YJGrzCSayVmDkK1Mnn1r3oTTK7cyro446gEXwvPq5ut4mu2", + "address": "bnb1mgmavxpc7nfuqayr24tdnrluqztfa60xaur8mm" + }, + { + "account": + "xprv9xxkXuYRD4MgfzCue2nDMjYTrs5JPcqZEuPkHYe4W8Bhj7GMn3sQXYQ6fDYnLq5QJ6Eqb5oe33q6ArXSypruQrJsKSyi3e4VmCgdESURx9A", + "account_public": + "xpub6Bx6wR5K3RuytUHNk4KDisVCQtuno5ZQc8KM5w3g4TigbubWKbBf5LiaWUoPVo1FHYfauCx2ghvSQWN8nbsj4mF4pikjoh7sCgq49Rdjaop", + "address": "bnb1gjqdvhytyny6fdfckppljv8fd849xwg6g404c7" + }, + { + "account": + "xprv9xxkXuYRD4Mgiu1CNWjkSgEbJu8Bdm7izkDM2BLrkSBWmfDCsUq5Cha52EsSYTNgKoBs7tBkQczsstgPE48fA9MucLSfhG9LddMXXQLYHi3", + "account_public": + "xpub6Bx6wR5K3RuywP5fUYGkopBKrvxg3DqaMy8wpZkUJmiVeTYMR29KkVtYsW69mzvzkru3igggzMG5tuxdTZ6K6HU9hUVYfSekJpFBwEbv82C", + "address": "bnb1cc304fs4gcylkeuu44l0x2mkctsl78rn0cjl5p" + }, + { + "account": + "xprv9xxkXuYRD4Mgo1kj92cPt7TYgfPZTXUpwjVg3eWh142SexJXEV8HDqtw7wW3oq3Uy114YkkaeBUYSRdRw5gSo6E82MEBzA2sHwFw2jbvHmW", + "account_public": + "xpub6Bx6wR5K3Ruz1VqCF49QFFQHEhE3rzCgJxRGr2vJZPZRXkdfn2SXmeDQyCSh1wDL1HmPb4a4YZCyDZZ3jAD344yh7RDLgAbYYm2UrqRALxK", + "address": "bnb1ww74z6fssjf88fyzuum5z6gmspwxclhzej2ven" + }, + { + "account": + "xprv9xxkXuYRD4MgoPiHzZoWyRSXJU1jNByP5rpMn1ekC6wxc2pwdRAbj1owdUdvD5yHFRN2RBeBRVShpUNXofSjQp3cZjLFDD7vVbXx73U5D2Q", + "account_public": + "xpub6Bx6wR5K3Ruz1snm6bLXLZPFrVrDmehET5jxaQ4MkSUwUqA6AxUrGp8RUo6518WHbw99bvZg7Ugg7renT6roeYzq6mcpRAraqdo1yFyEW2C", + "address": "bnb1eu42fw952mg4uercrce4lnpynhwlg4hh6ae6wq" + } + ] + }, + { + "coin": "BINANCE_SMART_CHAIN", + "seed": "4c7a4d1d4cd33b8c87f9809288a3ce77e51b90a8c5ba8dbf9624eca2207fa09b", + "master": + "xprv9s21ZrQH143K2AkvY45v5FFbrS9W3AHGgy8WRhDGYWXCNNGVAnmhXYr5EJpUMBrbCvWn7tEMw5KDbKuVAFMkHp4tdhrTGZsKJXFncuNdSE5", + "master_public": + "xpub661MyMwAqRbcEeqPe5cvSPCLQTyzSd184C47E5ct6r4BFAbdiL5x5MAZ5ZvNApWvJ4x43mEQb5firiEwgovuNYSbrYFfGCS28bsCKFsbYgq", + "coin_private": + "xprv9xY8zrBtZCYk11jiuF1DuEsg7JF9Qk6F94MnPHq941mRnUHZ6Dc9QFC44sNPv5SAdodWPmaHHpDNFRp8RoX8BgumuyyUFWxRXtrmmja7kDd", + "coin_public": + "xpub6BXVQMinPa73DVpC1GYEGNpQfL5dpCp6WHHPBgEkcMJQfGchdkvPx3WXv9gvs2jC54r5pAnor5wS92hAaZ4PB351tFykQBpLaoiq59yYqYT", + "child": [ + { + "account": + "xprv9ymSAv4y2cYccsE8ecLBrNLMY2ihWe4gBnMbvDAEP8MMK7Y9uY7USUGTGQYRTHCu6kGuVFo7ReknfH7rTiMNEFVthMC2niP8phxvqoUsMEz", + "account_public": + "xpub6CknaRbrrz6uqMJbkdsCDWH664ZBv6nXZ1HCibZqwTtLBusJT5RizGaw7fjHMVWEibzyX4Pwdaa6WDLTTf3AioyE5cgJmZK9ALJusAfdEJw", + "address": "0x53337c41CDD601d031b147D1D559832c7C8FB205" + }, + { + "account": + "xprv9ymSAv4y2cYcfgxkPggMgEP9MVa65mNqZLXkdirVNmyvk2Nmk6C3kDMDSFEajNjTdF9WE1Rk67Xj6iEed2qyHGywSJmyFe4gKn6MGLknEZQ", + "account_public": + "xpub6CknaRbrrz6utB3DViDN3NKsuXQaVE6gvZTMS7G6w7WucphvHdWJJ1fhHUtyHzQpdTH4SW6XTJT3Px8pvcijBgix3ZJ2JWor2yPzSnPqu5a", + "address": "0x5860de2723558BF03d16bE71DC8825aFdc83c04D" + }, + { + "account": + "xprv9ymSAv4y2cYcgZ1LVGENk22DBsBZ1xVwVCqMmMnaU82wF1AWkTvScqVxNV7SGogxfBvaqxPnofxjZBpSgymfTdTHfXvkmrMv6VWjhbzAgn6", + "account_public": + "xpub6CknaRbrrz6uu35obHmP79xwju23RRDnrRkxZkCC2TZv7oVfJ1EhAdpSDjPrXUpijVEYZzGLuCckeAxEhLxztXJ1uPej38UB7K7jPmTXa3Z", + "address": "0x02c7d489BA6d1d3EF306EDe7c0E5c5f22F92e881" + }, + { + "account": + "xprv9ymSAv4y2cYck1JVstEpXryqjUWrRv9CkfHvTfec2BmReuNmybWnftd6aAY7tyGbFxnMYKfdiQ1CuNqkQp1BiJNgiR4xMNc3oziqekdcrLj", + "account_public": + "xpub6CknaRbrrz6uxVNxyumptzvaHWMLqNs47tDXG44DaXJQXhhvX8q3DgwaRS9xBBA13VWwYjcw8vieNxFN4oaQHRN6qSKW31zeqHD7xiogsdj", + "address": "0xF8293138A7c5e11431d5E22d30ea54f9f1E99506" + }, + { + "account": + "xprv9ymSAv4y2cYcmPAUjgixV9hKw82xH9B9oQJK9ugmDbo9SKRbzCEwkrcMrmXVYv2YLv672NcvDTP8aNEEWsxkzRes5GA2otYzZN7Lx5UKcNy", + "account_public": + "xpub6CknaRbrrz6uysEwqiFxrHe4V9sSgbu1AdDuxJ6NmwL8K7kkXjZCJevqi36BjZ2sLfUvQMo4944VigQAvdPSPNY85UMHJCLcvaNNv9RCmwm", + "address": "0x7f3feD01E6c1f39f03Af7Ce722E91A7Bc603DBfF" + } + ] + }, + { + "coin": "BITCOIN", + "seed": "6ccb0af7d2de48e19fc847aacf0a2b2883e2124fc7fe972241f59b80e26b20ba", + "master": + "xprv9s21ZrQH143K2j8gb8pSQx7N2cbwPZEJNUAzcivS3ySr7XfEJPok9W7NuUwHwa1hepoL9Rcv6x6cQdMV5G38tR4umXptoFoTtd4ncs2EoVJ", + "master_public": + "xpub661MyMwAqRbcFDD9hAMSn646aeSRo1x9jh6bR7L3cJypzKzNqw7zhJRrkm8JZD9KtmHnaZihi5AouXU3eJ744op95pt7RSmQxCLE8Z7aYYZ", + "coin_private": + "xprv9xRnAyGByh2NNWyEHqQ5HMHvXbheXbDPk2rcqzjHzhWVAxSwcmbuztQPjQkQEXaPQpvMUwoeeVmt9pPJ6vzMrKs3nRDNaWBvGX25YgYPTYu", + "coin_public": + "xpub6BR8aUo5p4afb13hPrw5eVEf5dY8w3wF7FnDeP8uZ33U3kn6AJvAYgisagKKF7EAeNNazUxoUFmruCBdFjqipSe2hv3tZizpDtojtRC88zv", + "child": [ + { + "account": + "xprv9xyLHNMA2WNUjUh7VPXCveQ7cFwJPbPobYKwe7T4fHiDKpEntuFaNQoGkQpJnb8z1Z3UQ2kEBfe8tYzSxUZpQfjNq13bcmdRiCNYzdbYbie", + "account_public": + "xpub6Bxggst3rsvmwxmabR4DHnLrAHmno47exmFYSVrgDdFCCcZwSSZpvD7kbgUSUW5BGUywJ54ov5WBACM3Y9Q5CYf9N7QRcvep9PcfLkww78A", + "address": "17nFTRsq9ubfZHFfyBgHyov97gye24Zqpv" + }, + { + "account": + "xprv9xyLHNMA2WNUno49qxeyVnfTyrjmAnchVvmGwk4u3eD3Kt5BLjPwMQ5Gna8HHjSrDBw5WzuaHT9KExjCAZc4gU3ZRNe4TFVSorpcwQpEasP", + "account_public": + "xpub6Bxggst3rsvn1H8cwzByrvcCXtaFaFLYs9gsk8UWbyk2CgQKtGiBuCPkdogFkkkd9P8LsanMK5C86d1L1GoXTCgcFUKcfr6rNjeBbvm5d77", + "address": "14LkYv2oBr347rTdCkBxzU7VrZxgUJhvu2" + }, + { + "account": + "xprv9xyLHNMA2WNUrnyRCL6hYJ1Zr4a7JMWZTVmQ7sv6qMJF14oQSUtMFbzZwW3hBm4gRHf9HvPrhZpd1SCa51sbUmTayQZ6uSMTMK4A529nM2b", + "account_public": + "xpub6Bxggst3rsvn5H3tJMdhuRxJQ6QbhpEQpigzvGKiPgqDss8Yz2CboQK3nmQVDxX6kMA1Z8ythL955GHk24idWLYDg2GBwpP18hcFUmjhd6Y", + "address": "1owbuoi8o5HDuNEkKY9ixcZkACFmdgtbE" + }, + { + "account": + "xprv9xyLHNMA2WNUtoCxe6ev9Fz1mVvcDnad2xonbV2tfzuHwiTuPtxxJjqDop8fuuqGENi39tFix3PNUs2o4Q4gAU7rmLNqJsJjH182ygZq65Z", + "account_public": + "xpub6Bxggst3rsvn7HHRk8BvWPvkKXm6dFJUQBjPPsSWELSGpWo3wSHCrY9hf7EZMU6KmdLCkQAuRoMRbKvzGNY3cbRHzUkurpwpvg9TQLcw8Ls", + "address": "1HAtZTK9Dw9gC8V97fPBdMY3MbZ4ZJpQpr" + }, + { + "account": + "xprv9xyLHNMA2WNUvgb9DsJwF4nP9STVR5Y9dVtz9LrMW3pidfwv6sf7hg23XMn3ym3Zzvdwn5KR9NC5d595vuwNEYfhtKwm3U2ikvS8y8bdw3U", + "account_public": + "xpub6Bxggst3rsvn9AfcKtqwcCj7hUHypYFzzipawjFy4PMhWUH4eQyNFULXNeiVJaKutHJqTie1LYNNu21rFZ5p7PDvgmLnpt9CLuGb2wHs2uu", + "address": "17m8Qqc5CAqbooZ8o5Fk7o8fby5NKTbJWk" + } + ] + }, + { + "coin": "BITCOIN_CASH", + "seed": "1d87dcafa904647a552fb3fa80e945a3499468c8805900ff923659dffe905cc4", + "master": + "xprv9s21ZrQH143K3hWy6URTCQbhfqLXrHH8ioZRgnwie7rJvEC2vvizdNWoVYV5VargGjTgn89E6Yiv5317TasZigffcBegVLsnqdKdn6Xngec", + "master_public": + "xpub661MyMwAqRbcGBbSCVxTZYYSDsB2Fjzz62V2VBMLCTPHo2XBUU3FBAqHLorvQP5mGhTjABYJLFGm9oZWkVWjWBPqsN94ncUXSSimteA2c34", + "coin_private": + "xprv9w8UceYoj9gY1WmxW9EBWUstLH93gJtfJmYiEuo3F256oD1UTTfjn3B1ZZW3Y1sxCpWNx84Cd6fThJc2g9vHPFgTmJBSVo9r2Zw2gcezAcs", + "coin_public": + "xpub6A7q2A5hZXEqDzrRcAmBscpctJyY5mcWfzUK3JCeoMc5g1LczzyzKqVVQoTvXNjw2bAq4T9HEFTCS4X4VL5TWLd3r1WKTSnDqZBhN7YGW7X", + "child": [ + { + "account": + "xprv9ySu67KbMCogrnCS8JpgtBAH31MeNaXwpx7CgNGATWp6uCsKwdooXKvKW5ASbYEoi8QwPUhg3rsMShuk6tsX9A7bcZexpNrckw8RncJ4XdR", + "account_public": + "xpub6CSFVcrVBaMz5GGuELMhFK71b3C8n3FoCB2oUkfn1rM5n1CUVB8458EoMNCirCK3XphQeEAUmfKg9C7KCdvVPc8Kk5AiCoBazw3MYyGUSMu", + "address": "bitcoincash:qpw6ud66ddcp9qw5w422wtfe695zdusjcqqwzqzjme" + }, + { + "account": + "xprv9ySu67KbMCogvrxuCaBbQoMhbALPmzwTnaRrdTWNbaz2KW5k1yJVXuT1Sr4Suqd5HQRrWXCdu3JU7FEdZbLAVtdbfmYwfng4WbxFEAHh5fj", + "account_public": + "xpub6CSFVcrVBaMz9M3NJbibmwJS9CAtBTfK9oMTRquz9vX1CJQtZWck5hmVJ8s8d1VsqYom6vCF5feiHLS1AGfUY6YpqqnCypm89edDmrU3TJx", + "address": "bitcoincash:qp3kv66psavc3x8azdhkrscejsr3g3uxwgjnjkan3z" + }, + { + "account": + "xprv9ySu67KbMCogytfuEVXSTipNmuJcQr9b2pdz9uCfBxhydpM6zQmWkKYLDNWBjjRN4rX5NESMiRv6K3XmDfRYR6Y3iubdGwac8Rtu5F4GDvr", + "account_public": + "xpub6CSFVcrVBaMzCNkNLX4Sprm7Kw96pJsSQ3ZaxHcGkJExWcgFXx5mJ7rp4d4kbvjRQSyZ2AA8sfQ6KhVMfHdLrswSe5317RNDrj8ozXKGsvL", + "address": "bitcoincash:qqr96x0d95c2kf0c8hq5py8a3whzdjux7vewra2n20" + }, + { + "account": + "xprv9ySu67KbMCoh2TLkzTx6GTZjMVtybecaB9E9PVgiBnCSFE8FUnYmXBnS4Q27L96P69CA6qc8HUX86bY7tycATB2keot4RnL1e1eeDTBw415", + "account_public": + "xpub6CSFVcrVBaMzEwRE6VV6dbWTuXjU17LRYN9kBt6Kk7jR82TQ2Ks24z6uudJLuBzq4hcRLwptGvbN3GMGKQTWxo8vFbERTqEUE6tzxBG3TRC", + "address": "bitcoincash:qr3eeewr0t632n4w38wxq3vwu3txxnhfrsdt0mhn79" + }, + { + "account": + "xprv9ySu67KbMCoh3XpaG8C9wED3V42mbtk1Th9zLrKuW5DGkLMcjKGvdeXRZUANYpMPYAnjJco1cWVVVmxVed57RNP32DmTxBgVQPiLjvfjcm4", + "account_public": + "xpub6CSFVcrVBaMzG1u3N9jAJN9n35sG1MTrpv5b9EjX4QkFd8gmGrbBBSquQjjUyvPbz98qBuXGZvUTTqWaCJV23TvTcHJHbK1qwGurHxVTXcs", + "address": "bitcoincash:qqyav6zj0xq356gp0srr2yla0drw00mfwqrg3k5eqa" + } + ] + }, + { + "coin": "BITCOIN_CASH_SLP", + "seed": "656d1ee2481ce60d9d5f1ebebfe70684deb67d467e44fe36a9d8845b8f4b22c4", + "master": + "xprv9s21ZrQH143K2zwzmDvXvyJoRTfN221xBK8gDhhNRjSgCCDLwS7tBWAnutoZgoRs3VnNFu758UYQEGS35Ry9B5vczw8NqmVZxQTsSPyooJh", + "master_public": + "xpub661MyMwAqRbcFV2TsFTYJ7FXyVVrRUjoYY4H266yz4yf4zYVUyS8jJVGm8FMqh1MeZbPRe2s5DwaD35QgszeYije1sE6dbpty17Z5Y3hUJw", + "coin_private": + "xprv9wBExcNGz2peVdFXUm1d3CrDdR94gugfx5uDLpXZLLv7cmyUfw2JjXGwYhDDAnca4v5NaF7FCu7t58YMG2y9J1mXYwCkq8gd77au7JD784R", + "coin_public": + "xpub6AAbN7uApQNwi7KzanYdQLnxBSyZ6NQXKJpp9CwAtgT6VaJdDULZHKbRPx4NgVVsTU9fakLn4ua4swt8DP2Z2nxfHurae4tktqKyaByMzBF", + "child": [ + { + "account": + "xprv9yksBSiZb9mU6AsS2zoMCYB4R2EUKLxZxFF3MJPNoxvC9XwFHP7UaS7V23gLxsemoUELUYhvMnz6mvTWHWpgxVhE5nG3L8m9GmjfAuQRGZT", + "account_public": + "xpub6CkDaxFTRXKmJewu92LMZg7ny44xiogRKUAe9gnzNJTB2LGPpvRj8ERxsLw1YmQgH1en96RYD3iNyycBvw4uQjT2f8YX4ZEoXXbuEg8HFF3", + "address": "simpleledger:qpp0p2je8tr5kpl99xxha250wac309zrlvwx3yw4q4" + }, + { + "account": + "xprv9yksBSiZb9mU7sx4XWPiVt3pNHtwdZRYxU6WCFvU4mnoiuvqUh8LxaZxQbHD6y2htYD5RZ4ZLy4JQjUzZokjow98FPmfD15H1i1Ein3ZY7m", + "account_public": + "xpub6CkDaxFTRXKmLN2XdXvis1zYvKjS329QKh26zeL5d7KnbiFz2ESbWNtSFsQnfp6qfhayVjagMHSy9LsqLjtTfh94NBytQ3HX4p81gNdUkrc", + "address": "simpleledger:qrxvrlhz85pvzy29wrn50jxw8hyfpjc5uvpw9w2x95" + }, + { + "account": + "xprv9yksBSiZb9mUBPkVGsiHTBBgBbfTLrM99gwPPdUb7D8UG4RsfFogLfejiXJ3MtSvCNU7GmM2LEvLQNSxhZdY8uwX5cjMk6cAwXBFFBnup8y", + "account_public": + "xpub6CkDaxFTRXKmPspxNuFHpK8QjdVwkK4zWurzC1tCfYfT8rm2Co7vtTyDZouRjX1iRr3KnmB7jxh1n9kmXEEJhKogTbF4PGq3GfWVngPEJsw", + "address": "simpleledger:qr8xu2jpl5g7jdh4wr6uvfzzqfswyjf0kylglwzqzw" + }, + { + "account": + "xprv9yksBSiZb9mUDJ3wSYfunxne98yaWzhhpQD6u7URfqke4gNg7GxK2vCaBYuB6uS5XEf39YZ8Rz1476yWhxSSN53G6vNW2JuGzGY1z8rGnkY", + "account_public": + "xpub6CkDaxFTRXKmRn8QYaCvA6jNhAp4vTRZBd8hhVt3EBHcwUhpepGZaiX42pFLZMcCL52YzYRekiaKcwR962fdiVZN3vv2xE2DHni8VYKB7v1", + "address": "simpleledger:qp3hc6pdsa6e40jvfv2trpncu5krkdj6lu7j07t4nm" + }, + { + "account": + "xprv9yksBSiZb9mUGPzcDiM52WW5P5oCX9YnTNz3bnx9YLdsY7J9kvJ7arSfT9bjvdx4Eb3wnAgPHHphvqiaxVhe5jxVWh5KJ6pDPKkC8Denq3s", + "account_public": + "xpub6CkDaxFTRXKmUt55Kjt5PeSow7dgvcGdpbueQBMm6gArQudJJTcN8em9JRJQkBGQzL88SmEM5wGfAN9ShgA76SEJRUd9yP7gpdmbfdbUjdE", + "address": "simpleledger:qzkgstc5sp73tj6cm6sw59faxszpaq4r5yqu6gjc8z" + } + ] + }, + { + "coin": "BITCOIN_SV", + "seed": "0efc73b2edc448f7c043d39e089903d08bdefeecd323efd3f8ce72e58d816fa3", + "master": + "xprv9s21ZrQH143K2qtGHLGFENiCeafbjBMhJRRCqgcdpiaphc48msYKmsZ1JLZcqmTUs4LckAN5keRUpF69chYsAm9kviiEB6LGrrxEyB5rCzt", + "master_public": + "xpub661MyMwAqRbcFKxjPMoFbWewCcW68e5YfeLoe52FP47oaQPHKQraKfsV9e7o82S28xtWqWJ2fVjTNHVMYiqymvd6QstxJixM26Aw4K2SXns", + "coin_private": + "xprv9wsnprnPJT3ZLTR5FYtLcq1vmX2Jfe7Rs3EQBzGvg1yS8h6KXypwYGQQ4VPfER5Td32QwMbJ1g9vFAzFrCfoG959kdjayLqEYMdYB6VWqoS", + "coin_public": + "xpub6As9ENKH8pbrYwVYMaRLyxxfKYro56qHEG9zzNgYEMWR1VRU5X9C64isunwwSg2SWBtUyEqUEC82wbt14USbvc2BSjxUDmH4ZZwbdEBuScT", + "child": [ + { + "account": + "xprv9zUjd8sJnCjKvt5qgHsj6ZxmudianR1U3KwBuAQFddhq37MKoPgVPGZTwypYS4PGNws2Bjhcmz2R9oQPQrZnmGyZ44vndY3D9StRYjJEvcR", + "account_public": + "xpub6DU62eQCcaHd9NAJnKQjThuWTfZ5BsjKQYrnhYosByEouugULvzjw4swoGHCnSUCLBJELbVZgR7M6nDvu56yDMjpjUKTsaBoqUy47EivUtP", + "address": "17JVMBUB98RQJ5N2QfXqYsppVJAZCjQSoH" + }, + { + "account": + "xprv9zUjd8sJnCjKwiYjxHJeEXa5r1nauAfWjVEbBYVQVwSdTcmaWZ8gwEQcAiieBRZJYKqwtEnPrseRa1WjTUH1tqf6bQdrXgPoqf9R9fk6ZmJ", + "account_public": + "xpub6DU62eQCcaHdACdD4JqebfWpQ3d5JdPN6iAByvu24GycLR6j46SwV2j61yEPheVCtyMovLBuLStak9RuKnomfpY8t5BnxXdrMWkzFNRLoRg", + "address": "1GRVxyd4X8N6Z2zSXRhNnnxhKw9BMhX9ez" + }, + { + "account": + "xprv9zUjd8sJnCjL1TGcaGYxZxnqg1RvsC8yR5DHxsgKMWkLrFB2qgoRTYubCD7RgJfhgVnmwVU6kpqMuqnCy7AM8Pj7wNwEnQpPGY55TB594Yb", + "account_public": + "xpub6DU62eQCcaHdDwM5gJ5xw6jaE3GRGerpnJ8tmG5vurHKj3WBPE7g1ME53WdJSwxcdK2f85rRBJBb2avFQizDKJH1UctJNoQpudbNo9qLbRd", + "address": "1YtPEQR3UvyZp6UQqj5YDFfWAJK2UAwAB" + }, + { + "account": + "xprv9zUjd8sJnCjL3j77456sXYs6X2GPzs4aawav7yaVU3zbpWWK2kHfiyFyLQNEkKpypLuGCGfeLmXM5dbPrpWv4BDakXzMvFrY9ZVpMDNoo2g", + "account_public": + "xpub6DU62eQCcaHdGDBaA6dstgoq546tQKnRxAWWvMz72PXahJqTaHbvGmaTBgL9x5GGEGoY8JGzG3fAPSSxevHvH6qgBhwaMVhR7GD7cHdGM6B", + "address": "1KFXnppEdKVnev4YKUyX3efwabqX7jFLVo" + }, + { + "account": + "xprv9zUjd8sJnCjL6WnQUxJA6p1YkQFZ7PCvZN74bFvGfXt1G76mHx9BQhTEMswvHGF9BmCKxFTMR1nNUGtgCwUa9tvxnueRcqH5kbuGA7JEfo2", + "account_public": + "xpub6DU62eQCcaHdJzrsayqATwxHJS63Wqvmvb2fPeKtDsQz8uRuqVTRxVmiD9ezJr2P1AucgW6DMT333XVvixx7Ub3GyoBohYM3hFNcFWhsLBM", + "address": "16ocahU2fNYHRuwD5CypDTqLSxKZG7ZgrC" + } + ] + }, + { + "coin": "CARDANO_BYRON_ICARUS", + "seed": "e7b0120f1e16d8ea9220aee520a3fd15f468ec735a5298c971b6a4cf644fe4b1", + "master": + "xprv3QESAWYc9vDdZRQdfZ245xMtSWX47BBBFMZnozhXSF4ikNBPHf4bnKWxTUvvz84C1jmJ4D2NMKnEry5uEXZgaFfDpM693Gvx36pHonLQXdxcUfmXsvRSHpfx3rwJ9M9rzkFk98hLvgTBtzJWqSqgSGu", + "master_public": + "xpub661MyMwAqRbcF4hKzdGFzjShJJcZzA94342vqp17VBG892S9aVw8JUP4kyDVURGCXfyJQGz9ERf7uUb5xT2LSdb15d7y69MeL5dRmwnbeAU", + "coin_private": + "xprv3RTmBdnAeca5emLEbJcGhUEzQdpRCnfdoUUSMHwmnP4HGAXHGWkUWCazvCmAahxVC5UQ8cZhd6yNkm1A45Tg9kLAMGCXja32bmXbtvgbWzuCYwPQk1ExrYrEusRnWfqUFqFhgpvL6j4HvRdM4He1zYC", + "coin_public": + "xpub6A9URPKstRi3MFHQG3epijQjNhJoLS8rHEcpKPYr7LpmJwStQaDpK7sUxAKCv7a7S1a8VNtaaPxMv13FMC2HtG9HbN4ku2xP51ajVGB9vRS", + "child": [ + { + "account": + "xprv3RxrA8A6tN98BNSqPnLy6YxvG89AUErX63a1gie7zGzsh7Nx1E3edKHmMTwLPa97vQbT3w1gKNUgUvdXjk86j7BNAJEUDsHxfp7StVwNshMaccoXP3puJQyNCBcZe9ZwxuWMev3QHv5dgMDpMoWNji8", + "account_public": + "xpub6BqPHJCZcGcuzZxyiD4meuk8WmkxNWVfeAGeQK97wJvt1NpnwQSLiMKhQ7Csc4gbyQDxgHjQEKPaSDfvFLtSuH3LTHTGxwJAG4sb3yb8pgd", + "address": "Ae2tdPwUPEZDHRcbfcVkzyB83cXWj4TDPgb5LQkG8DQ2aWsyvYVL9qTnTF4" + }, + { + "account": + "xprv3RxrA8A6tN98CG2FovZBVR5oUfmBYZkrGtR7RqjdinjujHHZayGh3dU6w6xaZYBdTjVYJVrnTweiJdREdHCAwqzBroBvR3Wuwd6BZFUa2psiPA3gaHuWMRFTPTFDHUaz5pMJxEZrVpFLs42fypuCrGw", + "account_public": + "xpub6BqPHJCZcGcv3Zazud9s8KyPeaHz21STRsetQHMjxR4nnqkDTmGsz89DT2Xm6EHP9mDFEzSRyXkt64qR5ZKNT7gG42FGYfkQGar5Qv6nZgT", + "address": "Ae2tdPwUPEZEDLmENzy6bDFetXqKDHzRRBLb8A3WUNYPMxgAWayVsKv7dwh" + }, + { + "account": + "xprv3RxrA8A6tN98CxWifm7GL2Nb3nXRd7nhSMGvrnWzeqW6zXxD1NeeaPTABpfL41fLrBdMfJ13ztJCBKsyi7aNFTMHpsmotQvkoNxdTYcBHWLj9TrpNNDTPvg2gQUbXHkwXqWYcNWGpjcFyAzKgrSmpen", + "account_public": + "xpub6BqPHJCZcGcv5utdXvFeQMTUwS8gjK4hGCy6WM6FtsskHfCLVcgGb4HZDeHnk2U9iHS8PqmjQGSkNKBibvBmd5SXZ9MY9DxhvR1TFk6DegK", + "address": "Ae2tdPwUPEZDrzyVer8KYefK6w4jUWADncaRH4hg8viraYziEm5FM38WH9U" + }, + { + "account": + "xprv3RxrA8A6tN98DpStYUg4JzLbkNijJvs15jMeAFCoVF2eCTtN7wuHF7hbBRaaCAHhz5iVPTzrCPqNLZHPAazvLp6xbUcyJ3eUkddb9P2CsJ3t3XsTNe9kXDmVTvbHzyhu7LQP66k368LKBtBx9XEz1PF", + "account_public": + "xpub6BqPHJCZcGcv8oz1TwBBBPugqw5Vam97GnhiXWbHZP6xEvmekggibWdjYTcJbyRJ8HXofMLa2HPvyuMdnVqSzg1S2Bsra57FEAbddPqgM7e", + "address": "Ae2tdPwUPEZHXUMLUkyJ4FYJ2pMoabvzjerbH1FMkMbLfrNv2pDPkE5KfZW" + }, + { + "account": + "xprv3RxrA8A6tN98EboNwJWuACTo3uxkESmoQeYDoGdLyYUijzBr3yyMyFcxnxRkZ7urxi8nV2FqA9SCNi5i1uRbwR26mfmFo8sYSe7MnU9sJwS8qxk8bCNA1G2enxPuuKf8UTPeu4ZgM8UHZivBCD1bbqD", + "account_public": + "xpub6BqPHJCZcGcvBSf2Td5c7BzNan7PTRA8mGAYdrfYwcth6QUtgTD193RAwZqM3zxqusHis5VuvW26uQrLuNKJAhPYCWZ1TEgakiFq5rrWNrQ", + "address": "Ae2tdPwUPEZA8MK6prV9QaoAqqtsMtnoJmjmxi35pQh43ic8fqNNSkBx837" + } + ] + }, + { + "coin": "CARDANO_BYRON_LEDGER", + "seed": "90c83834f36770a3e279ed0ebfa184156483e3910ba9cc4c1ce6d83554006fc6", + "master": + "xprv3QESAWYc9vDdZyE8E7ks6pVFfdxu8ZN2y8ngduDEfUwctGLskotiMD77h3TpyUWB7B996BpqMXy1wP2Cm5UHakMKEA7ryqN9XcErJWKS5jyLFYYNYVSa2fMATVy9WBrwVQWMAe6rXH934zjdvETW6Vt", + "master_public": + "xpub661MyMwAqRbcGuoouqfRA2XtTGTsstj1hm8FWRzEzydoSfAZrQwaBkaXFirXhXDRQ65Ea7b5h1s5CAxiLEggT4WnCCsUBmpmSRzkn96mQnV", + "coin_private": + "xprv3Rsmd5sTHq1zLgFnHVUS4HLzpLy9vvPK8BjQqHPEMmMTN48mohb8iyVRax9p8xxdmoyvKEdqURiSw12TdcbF9N3LjnuzaZGhsMa8TKcxqpbDGogG8yAGmZMfrc6v1CbrrDwQp3Qcaf9GqmCNdxwsSvr", + "coin_public": + "xpub6BYHnfFxBFNYJehwqupuboSuGmSaL5KiZUSLht71dPtcXVEGFq3BwiBevFLzsYL2XhnEmWwxQL8BnGjM5Uhw3qGo8HrEZdgDoUQyvM7CjFh", + "child": [ + { + "account": + "xprv3SMpyXwqHg2b1HR254t4Etv2qZHbnG2pGzqGtYXCS97k6GgkqP8MbxWMsjmbr7eCxrFfukGwaCbCKmRdapjnEAF94fGigAfzmcaE17mw9Crv2QZKs3N6o1x79wBzW7rMcNgR13gPj4Y8K6Me1Jhet9L", + "account_public": + "xpub6DAjwmmmU6pbrMjsrV7V76kiTiDLjiM1JNKpZZw8KVkVaH43NGrxxrdxgwD9oUkxMSnisfQcnnxxMLSYBmPXSHtW2mdwvwZ4fZSLHdzvaww", + "address": "Ae2tdPwUPEZGf9NRpr13BsVCE5cNBS4CBZHV3T4ezmhGN8y8PnJS7ojDiTc" + }, + { + "account": + "xprv3SMpyXwqHg2b29esK2nzCYA8HD3s8FQF8ePcSpbYKHae1Z7JpiU2QK3eJsEdNQj4oguXGGEMRj4ZYnfgf25CdcEkpLJseTZzN5KLWjpcQntkPETSb1Vg5wvM1W7oyD9UxgGE2XPPXnNPGxck61AwuGR", + "account_public": + "xpub6DAjwmmmU6pbuGrmUZmvUcofPwdoedyJTuNtseZUXsnjiTJYCdBcFLr31SymYPVdJNyH7cpuno8RcdANSBvGQZLwStTccN59FUKBtcHmWsV", + "address": "Ae2tdPwUPEZ2qso4o7bs29ZTTukez2kuQaXyNU3usdSN2K3eGivd3L3KR4y" + }, + { + "account": + "xprv3SMpyXwqHg2b2ybdZXwKuhtG3aE8zusLrdZAbgoMrKdw9ey1zDeW59ySZvtjoTeJ9yimHQvpyk5sNNS2iuWbrrqbbGfKM2GP8CXs7j1BLaKddmdVq9MuMzPZtR4kzhmm5LmewU6UhyEgu1VWS8nnYQ8", + "account_public": + "xpub6DAjwmmmU6pbx4FefBYk1S2SYJtunPaMvHS7MMa6Na7D6C9ZL9JJ8QHY76wgqWF8BVbqh3SKNFV9vDEj4TfhCbmv8SBZrvyBCydqY2gi65m", + "address": "Ae2tdPwUPEZ9Vxhq4o8nkhEvVxn81Xe2rLzRGBPSLARLHugcr98NvKcPE5Q" + }, + { + "account": + "xprv3SMpyXwqHg2b3hWgctfx1ovrMWBWuJSEJU1rbX7QagK51w4G4SSJGKFrU9UY6jHtsx2YxyLQmuXyez5ZeNCgTBqWwJJDT9hT732rWML3thUZrNTfVfjgoTM5k4JJizaxfzR84mtckZAtnNpU6wHykQr", + "account_public": + "xpub6DAjwmmmU6pbzVMJXkBqXpr9NiRmeXmnjjqesAM6GyV52PTJemfKqjDQS1zrX31XdnaTWrdB7NESDTWzGWHnNMMb9isGrbrpZ57L8riEgxF", + "address": "Ae2tdPwUPEZ1LnJw2hfc6y3sVdMRwr7CwYHnuxKpKJWXYesqKB9z8tpT6sy" + }, + { + "account": + "xprv3SMpyXwqHg2b4Ykkgz5EbxtWAvfgjH6vYFYMdR7brECgCmoYchmjrEEuodgj9YgCMizW7dnvH1ycWwKYuaYMxc8AvYWSxUYLnneWJX8XBT68d3JirKirDVLkjaqxRJRHhSvFu2iTUUTAPsiH64T4bhP", + "account_public": + "xpub6DAjwmmmU6pc3M7h7FJf7E8iE1UCvbeyWnwdCq5gpY7QFVBhtZm3vKgNkPFd36kXsuwXswBAqjx8AMWFFkzz4jEyP1WrMZ7atmHq1a6Ju7K", + "address": "Ae2tdPwUPEYynr8sUuyMDR9vj6nkDFXhSEQQWPYNp5K2LxQ4EWSCdvrM4ex" + } + ] + }, + { + "coin": "CELO", + "seed": "80cc926d1f272f315d0f3007fcb7a4d80114b9e602004ffc4047f543b9b09390", + "master": + "xprv9s21ZrQH143K2XrcUS68mFnCxPL4ydj7xyhhXD98m61dASwEA1sFvr8oHvNQzLdyVhHyjMP3mN1z2YvEWvvjth692CqAUsp8fNJRkaRMYSf", + "master_public": + "xpub661MyMwAqRbcF1w5aTd98PiwWRAZP6SyLCdJKbYkKRYc3FGNhZBWUeTH9AvucxR57v9YNtJMk1Q2UQFzS5TRU7h81RxUAvwstTyzEeSRYwx", + "coin_private": + "xprv9xdQiPMuptHXjk8u73WyG97pijqy6iMirJGgtQBJ8WDc1vE4kMyLaoFCw8cTzeKdALoHMQgzTXQpzJnX7AmuPZms3j9Am3xP8qnemELMXpM", + "coin_public": + "xpub6Bcm7ttofFqpxEDND53ydH4ZGmgTWB5aDXCHgnaugqkatiZDHuHb8bZgnRj5tnHo89gDE3UQVXXyhs7kreLwpwhLJNkSjySkQmnQkLE4n59", + "child": [ + { + "account": + "xprv9xkLCNSZgiCW65wQkrKJ7vKcHYJtTKsJPZaLXHxngTDa6AWTkDgw3iynhmJuEbpShkWomzuaw3hpmyJ4EGq3px9EwP7r6GP8VHeJX2JocLU", + "account_public": + "xpub6BjgbsyTX5koJa1srsrJV4GLqa9Nrnb9knVwKgNQEnkYxxqcHm1BbXJGZ3Uh5ZVdTb7v26g1CXCdhhy62vE8muzomDiuWRsaR9J7RiqhPcn", + "address": "0x0fBa8A61a7939aaa326177Ff6F65D01F7Cea55E2" + }, + { + "account": + "xprv9xkLCNSZgiCW8y4Sm5XMUf7Y43WcYyGSfHaJqYTVqbyxoR7dKruyor6GH842VRNwq7J63hMJwQqLFVs1o149cvBnyNKPMkWSEmUvNxZnn1r", + "account_public": + "xpub6BjgbsyTX5koMT8us74Mqo4Gc5M6xRzJ2WVudvs7PwWwgDSmsQEEMeQk8SdYgx8HQ1jXRDTzvyHZq6pcqV4otikbjiu45tGvi8ZEimiw3F7", + "address": "0x0Fa89ed46EC3c33F8afa8D128Cc4aea30b9683F9" + }, + { + "account": + "xprv9xkLCNSZgiCWBxhBaoofyhXeXEgZSQX4bufAb2EAvmEMr81VRGMk1UF9R7UnYp3PaKgvVv7Vfc8y77ZTyqyf53ctUf9KeA8ob2jtjL3Ds2Y", + "account_public": + "xpub6BjgbsyTX5koQSmegqLgLqUP5GX3qsEuy8amPQdnV6mLivLdxofzZGZdGPdVfpe2dDtpyc4wBuqVvJ1M7SyrK1HdyzkyHeSgTMgcx57QxNK", + "address": "0x96E09D162D7c14C494C7Af6F422edC88520AC2e8" + }, + { + "account": + "xprv9xkLCNSZgiCWECJ4oi46BFxmE1EXukZXSJyaM4x7UUjpu1nQkorosqQCcCSLY6EwVZiuzSJT42TDWFzqxSfg3bxVHPQDg8mqrmG9Jk11Mbp", + "account_public": + "xpub6BjgbsyTX5koSgNXujb6YPuVn352KDHNoXuB9TMj2pGomp7ZJMB4RdigTSh6qFWQ8xyaj8Hzew4KQ711gydwXW2hcmjeKEdb6Kyo3jvMgr4", + "address": "0x42E10cb9709D93d6252B50935687A6840AFcfe9b" + }, + { + "account": + "xprv9xkLCNSZgiCWH3i8MsLanrHAEdbXXrWmQ3fFVv79ggJHDpaftDv19Xjz1yys6QecQ6Kuo3fSePwjKMTg4otqWnKENTSKDZWe2wjHojevzo7", + "account_public": + "xpub6BjgbsyTX5koVXnbTtsb9zDtnfS1wKEcmGarJJWmF1qG6cupRmEFhL4TsGWrTzZhkk9XjDaUPitCU2gJJeJhrjh6sLaaPQYspdcyr7YJTPt", + "address": "0x5D19d343959e0F4F92759Ee4341eE369bAEFEa5F" + } + ] + }, + { + "coin": "CERTIK", + "seed": "20a51277d10a1c4de6cd4cf7c758209987dbe122a183715891e5f958f3804b70", + "master": + "xprv9s21ZrQH143K25JmJAzrjbDarfiqNLHjRtYcLnwnfEi6KxVwBs3Uco3bP3PD4d1bDdFFUiWDFhuZnKMvpRp8gwKNWMR2DvoLaSHsd24zE8i", + "master_public": + "xpub661MyMwAqRbcEZPEQCXs6jAKQhZKmo1ao7UD9BMQDaF5Ckq5jQMjAbN5ELJnQbLvbaRhpXjSDaUnEF6FjDutz4LkUEVFWEqzV28AkZLfojB", + "coin_private": + "xprv9wGm7csa9mjV7r3HYGP8RhVThMLvVK3Y51Y7cuFS3d58ycvPxhBq2ahke31ikqY9txhdU4XiUUQV8jtHrcGJHsWu9g9WEQrBz6URtpxzX9M", + "coin_public": + "xpub6AG7X8QTz9HnLL7keHv8nqSCFPBQtmmPSETiRHf3bxc7rRFYWEW5aP2EVKZFc26SwakWVBUyH7UNHf4DWY8vpoGAJBtgpGqWjzSqdfuX3KQ", + "child": [ + { + "account": + "xprv9yFPWixsbRWYPUx7jqmkRkKfxv72qKVMKpz9kt5kfqBptztMsnefHyJaL3nkrdUn4srN9BeUCMTKrK4q6zz95Lz2rJ9eKsmHVCN42u5yrMo", + "account_public": + "xpub6CEjvEVmRo4qby2aqsJkntGQWwwXEnDCh3ukZGVNEAiomoDWRKxuqmd4BKnDERRY9RJUubcMa85R8GvZqXBUirkLtBKrvHmZ4XJ1UwMEbRM", + "address": "certik1wkjp8cdkyfjea5rysh9gwx9vep6qpym7cuvcwc" + }, + { + "account": + "xprv9yFPWixsbRWYSWuiU2Er3BN827MSLV84Sed3HRKK88JzimFMVAw3jYtYXLDS58nLts8d4vEeeH9RskTzFqLJdtTmnCdQvad7c3P2FuBvmVL", + "account_public": + "xpub6CEjvEVmRo4qezzBa3mrQKJra9BvjwquosYe5oivgTqybZaW2iFJHMD2NcME1qBYctBFnJqwcD2b4xPRCtT9XsKZXVWsgY5uqg3WddnTGT2", + "address": "certik1gn47gas379j350n0ev7vdut33auad8js2dkxhk" + }, + { + "account": + "xprv9yFPWixsbRWYWQ9VdV5DbLyCtThegFuxnz7HEj3UiEhmkJttpe3sTGqeyMy51WWKxWwPx4dxXaiy1FfwhqoRommDxtRci2hsrCGxiAx96ri", + "account_public": + "xpub6CEjvEVmRo4qitDxjWcDxUuwSVY95idpAD2t37T6GaEkd7E3NBN815A8peqLZMkiFCaWFxEuFAj8q4xjQvRxg34jrsMianqYMM8h5yVuXrK", + "address": "certik1sq7tuafqcnj7z0wk4a6d4myfdhp4nsltmdz7fd" + }, + { + "account": + "xprv9yFPWixsbRWYYz3HSsMvr2r7n69CZyz67uPAiUV2kmzMn1xdVHTmU7pfSqPbLuBDDwrq5nKQsWHiXNGcoueLWYoLdqEHQ4qyHkJNXTzUvMD", + "account_public": + "xpub6CEjvEVmRo4qmU7kYttwDAnrL7ygyShwV8JmWrteK7XLepHn2pn21v99J8EALJmuSnLPSvszAkMkKRySTVyZebiFTUbhsBLkC5rdKJeMFki", + "address": "certik1rycaenaxnm2empusukuenqqemafe9n926akp3l" + }, + { + "account": + "xprv9yFPWixsbRWYahjk81RB1pPtaNy3mrH4SQ9PcgX7A5BxuUTtnFgtWEAeJ6Crh1LRnb586UzQt6WDyvNZwG7MSfuLEuYH6d2wqaX8DXQr87p", + "account_public": + "xpub6CEjvEVmRo4qoBpDE2xBNxLd8QoYBJzuod4zR4viiQiwnGo3Ko1942V89Pv8F8Vv5gSsKawA6xSp7SXRif3D6K4bfs3LjLguJGgtu1VwSUQ", + "address": "certik1uuyemsr450aev32xumftes2e4m7lplp3ptanyf" + } + ] + }, + { + "coin": "CHIHUAHUA", + "seed": "59bf3fbee273ae5c67b88ee804b9e31826f5fd8b6cfc3af40226fdc8520d1e10", + "master": + "xprv9s21ZrQH143K3maRPsmKf5RA9cnwiGiNhKb5VKkScKCcCvfU5gMcUVsQyG7k47dRnkU3MY3VQwWdqg56SHZFBRtsZtgnQVJXpbm1wuvFu5d", + "master_public": + "xpub661MyMwAqRbcGFetVuJL2DMthedS7jSE4YWgHiA4Aejb5izcdDfs2JBtpXiof4yzY1kXLKV895LrM42rpfi6m7R5jnFFTZTYNPhKYF2hQFH", + "coin_private": + "xprv9x8YBDy926ny3uVLGHDvRv2jj7Xi2kppbeYw2id1ex9rNBjHXgpoLazt6sVpv2rkkW6MJ4vucMeei29cy7BuscqJFa8fAmeP9UDhaPCGoDp", + "coin_public": + "xpub6B7tajW2rUMGGPZoNJkvo3yUH9NCSDYfxsUXq72dDHgqEz4S5E93tPKMxBowJcNSe43Ey2Hhz8keYYrp4Y5QuxK2gcDmoShTeY14M4Rpy5h", + "child": [ + { + "account": + "xprv9zG1HFpTvqwz1ebS26FGBTpzz2jWX2H2GyggxV9AX4TCTYqcybLNgJgzAytnA4McxUf6EUmMAAqEhU7ggD1QLphZr7TdKWh1Uymnaq58KZM", + "account_public": + "xpub6DFMgmMMmDWHE8fu87nGYbmjY4ZzvUzseCcHksYn5PzBLMAmX8edE71U2HM1qTpGKFZSLtjg5XdJG1zTRwcE4mDVSBgaNgbM5q1R8M5frzq", + "address": "chihuahua1zee6hjjjq5sayhna7ew83mtydwzuydn3mamuqc" + }, + { + "account": + "xprv9zG1HFpTvqwz5sf35qHwbYEECLiC28EJtVAKt7tLRckKJb7PCk3nQryi7r93LUzga5GvhLd1F4cYHRdhVKagdm6b7xRvzSAwrn2GSMX276g", + "account_public": + "xpub6DFMgmMMmDWHJMjWBrpwxgAxkNYgRaxAFi5vgWHwyxHJBPSXkHN2xfJBy5rAJEEE3UkdWuxZWb5EfiyiRYDwbvq7HC79e8QTLDNRBDZvmmi", + "address": "chihuahua1vgl8x7gczkfkjfpmdamk9zjdn2h6cctjzejwln" + }, + { + "account": + "xprv9zG1HFpTvqwz7dQDM2tV8Z37nHQnWmRewuGATGHQkhJu7RGHufE3UdRgzdYRnuGvme2c8B1cAtUG3AS3YLwoQwzGudHYukLeexXQj7vdwyi", + "account_public": + "xpub6DFMgmMMmDWHL7UgT4RVVgyrLKFGvE9WK8BmFeh2K2qszDbSTCYJ2RkAqw5giQruD7VeR2WR8fnC9v7CPDdtK9rLKnhSJEBw5vacyA5QBSQ", + "address": "chihuahua1zdkcsd8qd3qwdvpmcqjts69pgtqj8xzky52de8" + }, + { + "account": + "xprv9zG1HFpTvqwzAvSnWNsuMZgvGyxtwBti6jFMJ4yFi2W6SwBjL14SqXW4FkNuBw9r9GUKLCDK6g5FMM597JZquxkndaMK442djYYFmamiMD1", + "account_public": + "xpub6DFMgmMMmDWHPQXFcQQuihdeq1oPLecZTxAx6TNsGN35KjWssYNhPKpY72nLUvd7WvbyHa3LwPngsxE8LoCiWuHk2oPwAfPoLFJdFW3hjab", + "address": "chihuahua1d9jcjylaprdfm3yd63r97vslr25vu2rrxlylkz" + }, + { + "account": + "xprv9zG1HFpTvqwzCEDkxQfdViKQsAc8NbRPZYvWFS1XQErgwUZcmu5uu3qfx5p3TGKzny2uDEuUYyPx1iSMYfEPcy23E4CeNwaQYDX3j2ezrJM", + "account_public": + "xpub6DFMgmMMmDWHQiJE4SCdrrG9RCScn49Evmr73pR8xaPfpGtmKSQASrA9oNkHHK27q3E7nXSsTMnBkgHYbupcFzZbrmHGX4eJnuSYf5pf5zB", + "address": "chihuahua1kakqlhfezyz5jzcal606q66q5ywly2slvk5lu3" + } + ] + }, + { + "coin": "COSMOS", + "seed": "ebcd54534f899db6b3ba10902b15af782b0e5e1c2cb0c673124c7d7ed9ab0973", + "master": + "xprv9s21ZrQH143K3FHLfWoLGMq4sAzbs4h8MsU15HGQNn4EvaCGmWz9XPFjBATn2ydMWkRvPJVgWQMiV16m1kuGVN4HJhRjT67vdKYQhwBtue9", + "master_public": + "xpub661MyMwAqRbcFjMomYLLdVmoRCq6GXQyj6Pbsfg1w7bDoNXRK4JQ5BaD2TgCyzJ6xajnBmsHuZrutj9cccwm8s9c7kTd7AcHCGf3oeFiBTn", + "coin_private": + "xprv9w9KkCNHM86fmSYgGM6BYeGhY8pAdiwHUjZ4KSVP6xrpGAX7aSqoh2ospSnXr5s1n6Fz6aWBk94PRp5xtWdvysutBgdtHbaRbPRgqorY7eP", + "coin_public": + "xpub6A8g9huBBVexyvd9NNdBunDS6Aef3Bf8qxUf7ptzfJPo8xrG7zA4Eq8MfijJdQFF1Cz1YcQh88yPqoz5RkRUiJTGJ3pEyejrR48zRdwcD6r", + "child": [ + { + "account": + "xprv9yjWemSbebyCLsQTas8omSj3c9H5MSMekh6hE7h3qyhkFrc4tZtrxmrJ8AcM13d6DLuwBMqi6zo78K7a7W1oNFs8ow3jL15NUrAPaRyK5kW", + "account_public": + "xpub6Cis4GyVUyXVZMUvgtfp8afnAB7Zku5W7v2J2W6fQKEj8ewDS7D7WaAmyV1XMd5GK4pAG9bxgbAh9MiN6Z5yY7vUJdkFKa8TejzGGD3MYei", + "address": "cosmos15xhgg03ercmrslu7nmelppyhcnp67p7ap6xjhz" + }, + { + "account": + "xprv9yjWemSbebyCMW2UWSGq4EHMk3sk4U7tk3wmkMKgLu2GTBckg6u2gAhwcBrpAZytyN15JBTn6sfSrUKdWvohCwKv4apa1NWAEW3zAPUZ8vp", + "account_public": + "xpub6Cis4GyVUyXVZz6wcToqRNE6J5iETvqk7GsNYjjHuEZFKywuDeDHDy2RTUi1RarHWUWXvW1ipc4B6UUc8kUTEnWCii9NMjy1tyywDUS9pKK", + "address": "cosmos18qg8dpfzw7qmjzjx00n2mqccdt3ghndetpvk86" + }, + { + "account": + "xprv9yjWemSbebyCR663u8aGfvr1e2bYZrGC61kVBrKfoYNje6bpGdWbZZGqa4FP8HzCF6xUSzfmrxSUGaNuP6D3hjQEBdGzVjtWMsZbbhNJbDL", + "account_public": + "xpub6Cis4GyVUyXVdaAX1A7H34nkC4S2yJz3TEg5zEjHMsuiWtvxpApr7MbKRMee6XnzqHtByyHMDe2Ez2gAFdxCvAK1r8qNKHATHRQTD9jQzbv", + "address": "cosmos1c69spnlt9sgt8pe0sf833kh5x0xdwkwxz24vyn" + }, + { + "account": + "xprv9yjWemSbebyCSVqKrZxrmrUbZo7NeX2ipLfUQ7DuXpmRFG7PQ2LuofnS9cFK5Z6nrfz2stzFzVJqxBqDmJMC4M1Nv7KBbihQ1Hxa1gYx6ys", + "account_public": + "xpub6Cis4GyVUyXVeyunxbVs8zRL7pws3ykaBZb5CVdX6AJQ84SXwZfAMU6uzv5oefRev9UKWRWkezzVSoxTVGmuVyeYQbVg3jaDhWsFtaRDDpn", + "address": "cosmos1xywjdktj9qumyzr5f3ykwm5zwhep6m22jvsxhr" + }, + { + "account": + "xprv9yjWemSbebyCW3w1jp1FYz2sBxUhYyn6ir5uhdGw4GzQto2Nrq5meeHQQVQmvyA1gjZ5gGmM23S8Yfc1oEpoXjbV4VxoD2c9vAtqA9seQ3x", + "account_public": + "xpub6Cis4GyVUyXViY1UqqYFv7ybjzKBxSVx651WW1gYccXPmbMXQNQ2CSbtFkXjfDRDnSiws16GJa2pDUTbtrF4Z9tDUhj15VQB1nNRtWTaY5E", + "address": "cosmos1l32ypl290k57ead8gxdns8kn4fdv5dgdzkt9ek" + } + ] + }, + { + "coin": "DASH", + "seed": "5e223cf6e5168e1d6b17cc1e2b3c3d76597ee4e0280d6396f2989801d9ab6e6f", + "master": + "xprv9s21ZrQH143K3WNEJK8G7LtVKTfC76PRHU5K67vMiqAoiGvUxrW2ooxsFjXaPZt7qTiM4b8pyhNsjKNZz27PMBFPmfjAguHGySh4sN1R3r8", + "master_public": + "xpub661MyMwAqRbcFzShQLfGUUqDsVVgWZ7GegzutWKyHAhnb5FdWPpHMcHM73T9xhCADZAJdmJ1ADGnfBZaypsJqTDL6hyPFk96ioudTruGYW9", + "coin_private": + "xprv9we182XF4hXLvr57LWA5n4mG6nV7iB8xEQWQDBV7Md5dtTSbZwBqUf55btc8r9meYMJgBFbGcvmDWKM4pimhL5QbFoAK6UkJvfuupLxSG6z", + "coin_public": + "xpub6AdMXY48u55e9L9aSXh69ChzepKc7drobdS11ZtiuxccmFmk7UW62TPZT8ouAj5p2hGtEkkykBX6WhmsNv5ZUSnuUBRaH7hpBw16sycc52w", + "child": [ + { + "account": + "xprv9zPvwa7pjNbRwwGE6MjvS4erkNJ6xCboRfNTM7brtSkwt9ryJYDkZwtPJME75rEwq58qhpHb11cTNPjgG5jR9DZeRbJjmRwJzd2sA4aKCZ7", + "account_public": + "xpub6DPHM5eiZk9jARLhCPGvoCbbJQ8bMfKentJ49W1USnHvkxC7r5Y17kCs9cNLRGosTBB6dWWNivKR8qP9cXNEYZYL9iHmRZzCV1q3KCyH4WN", + "address": "Xv3QyjYnsPxnbW74GM98dxLyUZjS8fc6Bb" + }, + { + "account": + "xprv9zPvwa7pjNbS2qsLEcsUeEwQkuGYxbHLJTF6ygsbEwMzWePXEyE9QBfCJYwzRbEbanKcWakiJpDWKY2kFddVZWMdcaETDMoJJ3Qvaoknq4p", + "account_public": + "xpub6DPHM5eiZk9jFKwoLeQV1Nt9Jw73N41BfgAhn5HCoGtyPSifnWYPwyyg9pSMra6Hrit2mXB19VfgC3ZMZEGHEdYc2ccLG6F5GmyovXxs4mq", + "address": "XrYm44pYQEMQ8gjAFsWuhu6bfVv1omDXoM" + }, + { + "account": + "xprv9zPvwa7pjNbS5TK4CfNZCyi8T3AGFfF1mupDdagD2QnF3LGCXfJMdegtbuwjqi4Usin9eAyY4uqtnqeFCvL1YzFcauV39CRET8PAZT3t7fT", + "account_public": + "xpub6DPHM5eiZk9jHwPXJguZa7es14zkf7xs98jpRy5pakKDv8bM5CccBT1NTB3LtdL69gMcaaeHRqz9jQDNVNDWfCvS4hV3iDNfvQqLB8jgr71", + "address": "XpVikuffbotroYtf4DSHvwDschufgD7gMj" + }, + { + "account": + "xprv9zPvwa7pjNbS6P71L7L3teQYihRtZr1bmi4aFkuMompfipqiMssFzB28MCGuMvFjkgiSZgk1gtGFYeacwsuoWHo1xMPKRDrrWSYY6nKhaDR", + "account_public": + "xpub6DPHM5eiZk9jJsBUS8s4FnMHGjGNyJjT8vzB49JyN7MebdAruRBWXyLcCSZJpUfg4kJNGzbAS9uRGHuCkXr46uCqjf3g8fFwVxAtVYFFxN5", + "address": "Xmxw5rpBhgQadxDbKvCEEkD1mMtFzDpeDM" + }, + { + "account": + "xprv9zPvwa7pjNbS8rXcvFTWqF7zEeFumYgRT3VRpHaNm4e6CvdLdY7hBR2UFJ17HnXYwBDEeJxXgeSYVfZA4ULa3B5E48LzEf5GqmAJMVxVnYH", + "account_public": + "xpub6DPHM5eiZk9jMLc62GzXCP4ing6QB1QGpGR2cfyzKQB55ixVB5RwjDLx6YsL9i6rMaseiMVpyUJT3Hu8Sh3PmDQa93t3ncPQzZoLzkrvxDk", + "address": "XbPGmsNYKwNk8cG4CH9VWYepPTRkvQRPXg" + } + ] + }, + { + "coin": "DOGECOIN", + "seed": "6e8d6a129c2cde9774296201c38919911154a1fca854f79090c17a8272453d3f", + "master": + "dgpv51eADS3spNJh981fTBLoGx7TRXNRg8FyhnvoXBMHEHBZs8THHVinSmVeQTLR2fft5CV2RMoJCQ6cci5E2rSFUMuZU1GadSUs4k8mTYdZvkY", + "master_public": + "dgub8kXBZ7ymNWy2RyfpVQxmPof3t5k4WFHgzPi1gHkG2QEaRBZyhGGZ64uHyiNCY9XJE1Qxa9MEGJXRXf74H2TYkcLJ7oH9sDU59unesrcGxoC", + "coin_private": + "dgpv56TQqH3ZeHxUhUMjSe6n63yM3hZMJFdjE5qPqN9G24rnGxY5JoBKmJpyxy77QhceAh1CgaNo6C9T9AVUqc4Hnkcsjsdc6hfWw59SN5J8zhn", + "coin_public": + "dgub8qLSAxyTCScozL1tUsikCuWwWFvz8NfSWgcbzUYEpBunq1emiZj6QcEdYCrPJEZWvRjWe5W1PNvxCu8h59iBCwzbewyKo6Rh4QoEPQkYbCs", + "child": [ + { + "account": + "dgpv58fCGx4pXbRNY7fhSsPRmhBP6Q6XKmH23zQJtXuaBZ4BrR1bRP9iNaBGT7aWpB4Hmi2r3uiMbFd3FSXb4TjV71GdUiNb4cB7HEfsk5HB1wx", + "account_public": + "dgub8sYDcdzi5k5hpyKrV71PtYiyYxUA9tJjLbBX3eJYyg7CQU8Hq9hV1sav2LGeELQFTacbkkVGhQEyyayDbaE91xYZDsBESvaHJHyU9rLgPgW", + "address": "DP6tmf1S3NCJ6EChUebhLwrvoLPWJMYDCw" + }, + { + "account": + "dgpv58fCGx4pXbRNZJPDFGzR9N7Mduj7HKbBh3FrJrVQWeXqnVxdUuwFPXeAifjpd2zbYMJVokqxGHLatjJLb1xQcJW5UAgdMUzvPBHamnckpob", + "account_public": + "dgub8sYDcdzi5k5hrA3NHWcPGDex6U6k7Sctye34TxtPJmarLZ5KtgV22q3pHsZcLFZxPKWQruq6DcQPeVTDZEccMwFuhCVYHa9HEo5uTwekRxe", + "address": "D5T7UKKMxY4nUoMA4iYwxnGHgTdXrSPuDx" + }, + { + "account": + "dgpv58fCGx4pXbRNbyxzwSCweycYG3oQjb1xmGicoCJpvazKAVX1fEwdik1uTETawFqopwNkhj9YHfrhmMqzeqtm9rDAJdiHbKgJfoRPCSw3d8i", + "account_public": + "dgub8sYDcdzi5k5htqd9yfpumqA8icB3Zi3g3sVpxJhoii3KiYdi51VQN3RZ2VgZ21GhV9TLDJFYySxMJPcGPHivbgbMYgfbF2heddEZoZE1HV9", + "address": "DCvQrB5XpRJ7mYSEd5q2B78AC5ekkSdYg2" + }, + { + "account": + "dgpv58fCGx4pXbRNfnVH3L6qaQrRYMgyW82ELP2TBcdkKvZ8VTD8bfTJe72KGLQdcKdc3mFtto6ip5H4aXpattTjzj9GGndwnrVDxRRxiBAYy3p", + "account_public": + "dgub8sYDcdzi5k5hxe9S5ZiohGQ1zv4cLF3wcyofLj2j83c93WKq1S15HQRxqbj8i2dMJA1dfxmpfi6kexsYyjSFFezSXVP3XCaX6i8pov6JjFa", + "address": "DNbz7wMohofoMFfd2k1cVxAEPJRfwCoN59" + }, + { + "account": + "dgpv58fCGx4pXbRNhCsLjmEvJKb6ujfBdAhbvDKrbz8ns3Fbduueip7wd2s8e8LDrg4KQdjnz9MFbnRPugUPDS2QnwHMisWxifjf3yQ1CVCYiqC", + "account_public": + "dgub8sYDcdzi5k5hz4XVmzrtRB8hNJ2pTHjKCp74m6XmfAJcBy2M8afiGLGnDP4MfHdQrr6FibM4mw4wPterjzngXcsjw2SvCbtfNsvZ74PVU6f", + "address": "DPwD9j8NjH3NTbvM52Janq7xJwfTpzx4HW" + } + ] + }, + { + "coin": "ECASH", + "seed": "28513d8356ba6ab768c4f88485fc3a764e8aa2dcf62e4460cd22e7588325f1aa", + "master": + "xprv9s21ZrQH143K3Yg1JyBUGYxWoDQDXcyAmaLVJMCf5cxeGTPc7or8frAb1LxwcD3an78me43oFfmc8nkRkvDkAA1Jn8R7gjTUot4BoNTDh4P", + "master_public": + "xpub661MyMwAqRbcG2kUQziUdguFMFEhw5h28oG66jcGdxVd9FikfMAPDeV4rd2GcfRYMMq11ZdwyBvV6ZiiPy7kxEfoCm4Pj2hPWxYHxbwLkgt", + "coin_private": + "xprv9wQwrseWWFgg239uNCo7zh32DWqnEExNSKsrFcTPBgdy4qiVNyJc5b2xsFg9t5w5pYR5PPh6HQw8MNKkhTAEam1aLXqkgqD1immondymwEz", + "coin_public": + "xpub6AQJGPBQLdEyEXENUEL8MpykmYgGdhgDoYoT3zrzk2Awwe3dvWcrdPMSiVn7BvYJkrzb86pomSNjqJgATKxCWE5BLptowzLqB2gEEfgT9Ln", + "child": [ + { + "account": + "xprv9zMPWqf5vVZ2WRRCuEkucTTPYoJE4XzMd6fmYefMPwfgP3W9csJ345C4pKcm9ippnYRP2guUBZPC3GjFnxHAxv9yRMJLY5cKir9dCDsnvxb", + "account_public": + "xpub6DLjvMByks7KiuVg1GHuybQ86q8iTziCzKbNM34xxHCfFqqJAQcHbsWYfaJcZNfwaCBX1nht1tnn4AkYzsM2MT5z7ukvZJJhPAmmTxuwQR1", + "address": "ecash:qz6x9xg5mt0thykkkaajrs0s0a3qkjsdjv3e8vyh6s" + }, + { + "account": + "xprv9zMPWqf5vVZ2YBTuczggLMuSLqLb3tY44oJ1t91D2KHUCx2x7N7S9huFuHBHFcJejpYVUXoQnYDanUaAzosM38BX4cewnYNriZJv8WLuH7P", + "account_public": + "xpub6DLjvMByks7KkfYNj2DghVrAtsB5TMFuS2DcgXQpaepT5kN6euRghWDjkaUsNB5SFr52xqPKQZuADzMekLr3iMTEfYzQWyCiGLeU18CoZNJ", + "address": "ecash:qqd6gjjkxkcwd8nrw23tkvg7eh40d5lxlg6k0nag58" + }, + { + "account": + "xprv9zMPWqf5vVZ2a7zTv5WswoBfoxcnHQRS2ataSq98FXidfgfzQPGycTGegDzkcKRqMBoQCemArrnu2UQQBVukyz1x1qL89X62UHBwNTmc4Ty", + "account_public": + "xpub6DLjvMByks7Knc4w273tJw8QMzTGgs9HPopBFDYjosFcYV18wvbEAFb8XVPomF2492nL5LKRUpjSFu2tobHqEnFopMeUsQJfUZY4eR9RjYS", + "address": "ecash:qplnm2lfa5z55e2m8pukn8u566faqsvm9up3xnrydp" + }, + { + "account": + "xprv9zMPWqf5vVZ2ciA6aDkhQH8YoUZ18eHfaw2LW13B78feMM7Zu5VauDCjotwB3cmxgg4aZMYdZCT452FbjDCmioZiEZeKLgWpHKCdPfT7dMF", + "account_public": + "xpub6DLjvMByks7KqCEZgFHhmR5HMWPVY71Wx9wwJPSnfUCdE9SiScoqT1XDfDDWKrF7tHpnnRWGnMAZCzWuuGFG4D21yCAorvMmspsTTtGTkkT", + "address": "ecash:qzqw96f37pde8cvrhllv5nkwn7d9xl97rg54rq3653" + }, + { + "account": + "xprv9zMPWqf5vVZ2ey5mzTpXC2bZXie5dV5SxQyWkgBwCmRm1DazxhH1xrHrcisdaji4RjoD3eujRWH4mmWcgkExGrGTQHqnA2JhZiVuXfrRnzn", + "account_public": + "xpub6DLjvMByks7KsTAF6VMXZAYJ5kUa2woJKdu7Z4bYm6xjt1v9WEbGWecLU15Uo8APiGp83bnKdg3cnDFqxhvB5nYhqbMU712YGeabi9qJLnt", + "address": "ecash:qz9pcsatg07rafj9m4vmwpn75det9qu9jsmvn0mqxr" + } + ] + }, + { + "coin": "ELROND", + "seed": "6377f45e6579ecf04b788b64498470ca405f0e0ae8ff9ef22f3d4663bd7a5cec", + "master": + "xprv9s21ZrQH143K2ZCFUnip5zCgPWR2kXzozVZq9jVrKZopkjWqqAFXpgXRufH4Em92BTqYpyJ2WjLJCJhhrce9ZA92QbnTTmbsC2YpsKaLw3D", + "master_public": + "xpub661MyMwAqRbcF3GiapFpT89QwYFX9zifMiVRx7uTsuLodXqzNhZnNUqukr7U2iWbcGsqEfLjddYDLHbrdFEkg38qDEbpCT37fNqVPpBvhNJ", + "coin_private": + "xprv9wiDVsCDhXQ6EjEzBtskmQZssvFvxPam2nnPKnmobaVbeYPiiRd7WsKxT3D4FR3Jb7LxcDB3Mkxte64swNcZPiHCHnNYqKzHSsRFYaRyWjR", + "coin_public": + "xpub6AhZuNj7XtxPTDKTHvQm8YWcRx6RMrJcQ1hz8BBR9v2aXLisFxwN4feSJDBPnNLquoV4D9oz6q2Yx4Th24qkhYptZjjsuHyD1pvkVpNa3kG", + "child": [ + { + "account": + "xprv9xrW9V3iMJ8kbJnsXxB8VWcoMkK4GgsbXi5jW8RdMV2NQJPacoQKgsB4UrmAm1tkRVeRrwajEsTrzyTuGuHRvXVZYcbsoZRqE4gpvtwzSWe", + "account_public": + "xpub6BqrYzacBfh3onsLdyi8reZXun9Yg9bStw1LJWqEupZMH6ijALiaEfVYL3ELDTVqUgj3cSGSSYwF9Bb2D5cEVgnUTyvwd3EbPQ6vBUVCqpj", + "address": + "erd1y9c5nwcte79ezpkkyq4u2egw2k5sfw5mhp2xsws7wqqff2tha6nqx53h9x" + }, + { + "account": + "xprv9xrW9V3iMJ8kcx6miDDT5NPqdZ4qbB4BNjvDvZDZBUThTBX8K1JCPxHVwhmMqCydSDCcpPa3EzV8hJ2M7hrV5SiwYZu7jsziFjqjdfxDpxS", + "account_public": + "xpub6BqrYzacBfh3qSBEpEkTSWLaBauKzdn2jxqpiwdAjozgKyrGrYcSwkbynsP3bgGS27cZMqcwcG65xcNpar4Ys9ouUVgGgiYFyeTWCrV22Lr", + "address": + "erd1r4xp6chtg7kz48cn2nsey0zz66mmk7aru9ycarvvu8ex606wyy6s8tfl52" + }, + { + "account": + "xprv9xrW9V3iMJ8kg75hPphzkw79KxooMHkmuv7aQVGQ8uB8nduuzCf9aEWk8AQ7RZCeugefwFaD8wDk9NMrQnETsCiATCzSfvLSCCFXLTtdedf", + "account_public": + "xpub6BqrYzacBfh3tbAAVrF1853sszeHkkUdH93BCsg1hEi7fSF4XjyQ82qDyNSjkxKHVAfSuxzG1ucHSvJ4ei18sgSxYbpi3xodYkgv5XVgDDQ", + "address": + "erd1jclhqq8n5n0rvvv0eytd453z7j72kggruzdhak8h6zd9jjv7wjxqzsn8jd" + }, + { + "account": + "xprv9xrW9V3iMJ8khzC4xQNCZbcVtxXG3nKq2hgJd9KCdWnDpWpw1dczqZrQsRjoDLahtXGTcLEaS86mhRB3haAh8jSZGdyCy7UMrHyAEHntAqn", + "account_public": + "xpub6BqrYzacBfh3vUGY4RuCvjZESzMkTF3gPvbuRXipBrKChKA5ZAwFPNAticZhZB5R2ZiAKq7CPWadShifFDFC73VqoNGVZuBfyZs1zB4TGUk", + "address": + "erd146d0z2hgt99s4qdt30hrm3ldpu8n976dgy3fn3whec7kcqsdv52snh0jle" + }, + { + "account": + "xprv9xrW9V3iMJ8kjzYJniTKH8VqKo6cjBq7cqNVZUDzY4BX2PFrHLjEb8rwvdFPkePGPqZ2Mj4KtaZatbAvR3k7uQgJb4Bk6dRZ9CDjrBCkURk", + "account_public": + "xpub6BqrYzacBfh3xUcmtjzKeGSZspw78eYxz4J6Mrdc6PiVuBazpt3V8wBRmpPKtRBF8qyYX52QZZYxeTetB9Z4UESNzb4XMa1R4sE242oaEox", + "address": + "erd1uc9scr5xh35aqtay92s9an83uzdn9vyp575etdh9d9sw40lc0x6q9k9zgr" + } + ] + }, + { + "coin": "EOS", + "seed": "746033970121a6281df740087b27d54d8739f3ea10eac679b5e1816e039ff765", + "master": + "xprv9s21ZrQH143K26w4E4X78VNfrZ538Cr4yJBAV8iG9w3xzaVU4GjrL4K74Tc5zko1hXS4YGipGWLH9fbTstMgSiVYuwprsiDrMe18wf1wvUP", + "master_public": + "xpub661MyMwAqRbcEb1XL647VdKQQauXXfZvLX6mHX7siGawsNpcbp46srdaukDg2apVKEgc48VHzNTxwPE28hxoTNTJ3VWQumJzgMyXGMguUbT", + "coin_private": + "xprv9wnWFdHtAtbaw525ZQtSCTH4q3eKgo1VfYmSo3YokTsRjNkAme7QUZcmuB3EbSijvWEGqLmctSNYwnhvANvs9qWEXHWWecXr1bz6xTyRvmE", + "coin_public": + "xpub6Amrf8pn1G9t9Z6YfSRSZbDoP5Up6FjM2mh3bRxRJoQQcB5KKBRf2MwFkTXQDip2UEq53VUd5GVk9sLYPCEMWqgLMDeMC17hJu2iAezFFH3", + "child": [ + { + "account": + "xprv9yyicCqChnwjiWo1RH1hZnX9pATnHcLwSHPhZSPiqbx2AY7SJzo8aToS9sv2TqA6phWK91GVR2396R48MhVdtwWXLCprLWHimQRSFFw7MuP", + "account_public": + "xpub6Cy51iN6YAW2vzsUXJYhvvTtNCJGh54noWKJMpoLPwV13LSarY7P8G7v1AjXPet8guweBjxxCg1vMd1q9deRdx4FeAWGhkKzYw5AYXmUQXZ", + "address": "EOS7fu3TrwU7tDTbKy3xgzv4eCxLbEueZfXGX2qx6FSz1TqUEC4hR" + }, + { + "account": + "xprv9yyicCqChnwjmAzoT9Ahu7WqMEEBcL3BeaEhkgSagQbL2ymWYXcMv7x46So4fYdyNioTYbECCRHFnhXorg7fLJNM2zC11FpD7m5EJ5Ln2in", + "account_public": + "xpub6Cy51iN6YAW2yf5GZAhiGFTZuG4g1nm31oAJZ4rCEk8Jun6f64vcTvGXwjBGg3pUEgW2jnMWhrJH7HbUzLkRADBr3F78RRjKqRsrRCiV5mx", + "address": "EOS7awfCCfokpM1xZh4hBLcN8LEPu3HFggqA8vNdCzmxL99MZKU2p" + }, + { + "account": + "xprv9yyicCqChnwjnK9mZ1SeCM7ZeJHEffwyTAfF8Qywe7xwdkbuq1R6mhhkbxECNzz3U2er6wS1b2f9szjhU98bE8kBpNSGcMcdd7QUkUnZYhv", + "account_public": + "xpub6Cy51iN6YAW2zoEEf2yeZV4JCL7j58fppPaqvoPZCTVvWYw4NYjMKW2ETDS1cKf2A9UzWxLrnDBQwUuGEaQ6w9wNZ6sfuQEuPHXToES71VH", + "address": "EOS5EkgwNW2cn7E6UCBxbnVuu76XiHxQV7wFucvk14cTrRpgpVwMi" + }, + { + "account": + "xprv9yyicCqChnwjqJbUPcX5xgoSduCqsyszMZ2bYtUSK6e38Mc9EKgsYjezSVs9TRsKYVyCd5KQZC1Yf1DNX2QPZkxwKkbJtHbfKcqAFZGxxJt", + "account_public": + "xpub6Cy51iN6YAW33nfwVe46KpkBBw3LHSbqimxCMGt3sSB219wHms186XyUHkpRJJxwk2BDgu63hxQ5Y6zJ9WxPRGqJkQvPExdKbaMK5nwErb7", + "address": "EOS4wNrABeRaDKedQFZAeYz9YhaMRVEpKqcMzUdeVstV3qecQZMXp" + }, + { + "account": + "xprv9yyicCqChnwjtwgiq628RMyyzijEFtF3arH1Qr6a1KVNZ9k8tpa1h74tbpuTdcx7qRYqy5tfLXstAkqj34GusXbA7Jta4nnEu8apSbLupqS", + "account_public": + "xpub6Cy51iN6YAW37RmBw7Z8nVviYkZifLxtx5CcDEWBZf2MRx5HSMtGEuPNT6BioRETQpzp7beV35DQiRskHBQykxjb52rdMaghtMuseJFg5dS", + "address": "EOS6gGQ9HWYWKvfC5jtCLzNjECaK1SMr8U4TRANekdfFFjRZyT9d2" + } + ] + }, + { + "coin": "ERGO", + "seed": "0a1b77d62ef94186bde95decc1fc000e3cb719e686208633babef96826c2cb00", + "master": + "xprv9s21ZrQH143K3J1fkLN7rZbNv7VUmfXckYDCwbY3az523gB5bBd8hpLEh16kGLJRR48Nv1rNTvJ5XdroRCg2n9XeBBXPBfEg5prB2DyMijh", + "master_public": + "xpub661MyMwAqRbcFn68rMu8DhY7U9KyB8FU7m8ojywf9KbzvUWE8iwPFceiYKJsGEF3mTKhTpXVUyd4fRKDRswgrMT4g6wqSbv3WxQQpfFeoHB", + "coin_private": + "xprv9xQjVAFLNvbJzebax5GWGyCXVsPpjkmr9NUTcYLUs24LuZJq3orMwiJMfgSBphDanMst3DdZMuXjBwPB6a2BqBZnkwDuogWdXx8mAMNmDmU", + "coin_public": + "xpub6BQ5tfnEDJ9cD8g446oWe79G3uEK9DVhWbQ4Qvk6RMbKnMdybMAcVWcqWy7w6PgCQoRQpijEMMsDTV3tg3HssBmGxgDnijMQuWUhFwzDdKe", + "child": [ + { + "account": + "xprv9ydbv3yDPuFb8jtYF2kmbYEme2eFX73tWcp4F2g4JP3djPFrTmjxRkR1kUfsjs4oiXoujiiKjqq6t3gXDVBbrmrSSCV6NJaJGMmu3BwngZ5", + "account_public": + "xpub6CcxKZW7EGotMDy1M4HmxgBWC4UjvZmjsqjf3R5friaccBb11K4CyYjVbm6iXWaikdBaVWjhGhmmxFq3FJ5qmdTQzfmo1FysRc4ANYBpFHe", + "address": "9gSJXbbY1kYLy7bhfp9wcgFNEzie6nNvsquQ9t4ewFc4AVrYFds" + }, + { + "account": + "xprv9ydbv3yDPuFbBg2wfBt7cUfjsYRZd176mEj3kzUnuTYseJtsi9hK6sow1zWv64pbSu7WLDkiZbtXELkrgSwJBkAxQPYzn4ZokyBo8szqrQL", + "account_public": + "xpub6CcxKZW7EGotQA7QmDR7yccURaG42Tpx8TeeZNtQTo5rX7E2Fh1Zeg8QsHUKT2EFTf6zA8wRf8UX2D64aHNYp2tekSm16cDQc9y4XED43sL", + "address": "9gptHBWyRCejnD6okGFJ4CGF3XLAunLhY8KRmwWmAuGon7SWhTu" + }, + { + "account": + "xprv9ydbv3yDPuFbE2mNydAPXbtjMGatdKjeB6sRy1juheJhd95AMbftYaomtGEt3a1sWReiqU7rKyjFwMqku4PT2tKhQLJ5SigFvf9Q2aJ8tez", + "account_public": + "xpub6CcxKZW7EGotSWqr5ehPtjqTuJRP2nTVYKo2mQ9XFyqgVwQJu8z96P8FjYAhWYDrqSDXY8xNW2vVaS7uN2vd8o8c6RzJwz96Gtd9Fz5egrw", + "address": "9h52er3eFUpVE2eLGuiFkZA4p7sCUwe4hNCvgyPsPwZ6WchVb8c" + }, + { + "account": + "xprv9ydbv3yDPuFbH78pSkYmCBfs2zDV8yycRRzxS2Lgr1dnGGuj2nJpArAN1seAW42cLdwQMXmek7WivsmrEjwxz4JVxwT4DdzgBiXUEasMG9H", + "account_public": + "xpub6CcxKZW7EGotVbDHYn5mZKcbb23yYShTnevZEQkJQMAm95EsaKd4ieUqs9zoiRLU8ewfdzTJoqjxYTKqPFW1LUqDzmvZiPrZSuMzKakRZSg", + "address": "9g8QRTetTs1sREhEFMFKisDkkgk77Wqb1vJn6AS9DhcfCpYP4Ea" + }, + { + "account": + "xprv9ydbv3yDPuFbKpt4MVBbpQa2vs2uECtuaXbk2ZGfvVv3BEt6gAASRUX3LrBUREtSf6TcE3RZhu1qXCKyW8yA4r42LujcqU981YjDBX3VFM5", + "account_public": + "xpub6CcxKZW7EGotYJxXTWicBYWmUtsPdfckwkXLpwgHUqT243DFDhUgyGqXC9ja1xAbfs8FbqDFVS99bNjp5GWSjSvMaFCS4JTznEjJdzKNJyN", + "address": "9hM3wzTn6MGfe6UUtAVw4MvUqCF4mxHGtnz5WpC8E9od4y8BY71" + } + ] + }, + { + "coin": "ETHEREUM", + "seed": "6fb506e04eca74a4e6e71d622bd40aa7a6ca11417fbca37440ce99f8d9157462", + "master": + "xprv9s21ZrQH143K3TQe2y6GZEKiJsoxR3FNX5AiNxiBYDy4c9cf73DfZRTkMtTDWeMW1YaayetQZ5ecPozpbfTtEoGUjWfcAbqMnvrFsbWg8Yv", + "master_public": + "xpub661MyMwAqRbcFwV78zdGvNGSrueSpVyDtJ6KBM7o6ZW3UwwoeaXv7DnEDC1TNHYUN6tPHXXLkfwN8RdtWTwMjtkKqk6iHAuwzzapBHEzdVe", + "coin_private": + "xprv9xV8oVRuNS6hJJXnUsYjXCSe3m2CXwFeqtt8FpjHHJ582wA9qPCYXPEg6VjtCrXL7D1ovMdFhsYGDRUQi1cjqza9THRRjgDJ3b4jsUXGdSk", + "coin_public": + "xpub6BUVCzxoCoezWncFau5jtLPNbnrgwPyWD7oj4D8tqdc6ujVJNvWo5BZ9wnk9DS9KhAukYZuT6j9WauHMVS79C53etgXuVQSMg1Xihs2UZJM", + "child": [ + { + "account": + "xprv9ycSg1cCimk4DWeaYWzgzkfV2Lmf1MgSc1pbwehu6xVfgPHTDQf2kuJH1qnDdjhr3NMrhTzZ8w3wPfUxgg8ErFii1zMRFktYpU3UJKqnXcb", + "account_public": + "xpub6Cbo5X96Z9JMRzj3eYXhMtcDaNc9QpQHyEkCk37WfJ2eZBcbkwyHJhcks719tWEoEFTorxGb9BtTPeU9rJyRJaPtia8peTdumrwMNgFoZPF", + "address": "0xB9c2BC4DFe9D532c114C6Af8AB54883CE2089eE0" + }, + { + "account": + "xprv9ycSg1cCimk4DiLf9FsPrDH3yjweDR8qVBTatLvEwjxX16jUzqXNJP9oFMA98DnscxNHfbzofgMNdwDKBqqqhQ6HvdsApAv43uKGDmUHp2g", + "account_public": + "xpub6Cbo5X96Z9JMSCR8FHQQDMDnXmn8csrgrQPBgjKrW5VVsu4dYNqcrBUH6dbyhtRKzmbBQMfR79CwDA3fU5R6p8RYCpNoMvGQ9bGuPAmFtvu", + "address": "0xBcE0dE02dc24ff43f291EeD40Ee1Ad0c35574dEd" + }, + { + "account": + "xprv9ycSg1cCimk4HuDgiYCVJC9YWYrUoRMdW6gEd9TTU8rkkv8UReZeraYD2ZzdDSdX72NgWvSshmiGqutqsbnCsacyeX886fdFE2YrzeBCwsm", + "account_public": + "xpub6Cbo5X96Z9JMWPJ9pZjVfL6H4agyCt5UsKbqRXs52UPjdiTcyBsuQNrgst13VRBCaYSFxVQYBCkY6MijxL7wBk3hCRw8Yi3drmrwYtV2DVV", + "address": "0x4504561956F202cab8d4F246DdC36ADE0313957f" + }, + { + "account": + "xprv9ycSg1cCimk4KiM9m1ituLUhKhpPBVF3vsFHffXn9vRhkgVRtGS9Wug9KfQ17L7zVDnBFKjM8EykJeC1EsYPX545cJd1LuU5EgtJrHJEkf3", + "account_public": + "xpub6Cbo5X96Z9JMYCRcs3FuGURRsjesawxuJ6AtU3wPiFxgdUpaRokQ4hzdAxcLNACFFoXBTuYFfUGskXSZJpGjPgmanXUBXQhzSzMTibCGYPk", + "address": "0x494616cEaa05400899Cc594f0aAD2309291b0AAe" + }, + { + "account": + "xprv9ycSg1cCimk4NiRgnRWfvktFMvxaua3njQc9DjMAiMFpdE9ub5xAU2jMJB9NEsfrQtJaaUMLsKwD2pqoXHCky36pQY5jwqj7T2prF5p9E6z", + "account_public": + "xpub6Cbo5X96Z9JMbCW9tT3gHtpyuxo5K2me6dXk27knGgnoW2V48dGR1q3q9SQoSRG4FMwP2ZSzP8AHywrT73DAP47xkrEQ3H4UQdPDsBu4hjW", + "address": "0xD1821Ac849B0B33fBa0F146128d62545aFbe01C2" + } + ] + }, + { + "coin": "ETHEREUM_CLASSIC", + "seed": "bedf75f7cfef1db5058df19f7a0a4a276c5e815238f603e5a3d916d9f5af6a5b", + "master": + "xprv9s21ZrQH143K3WDXUrgqvEeL2Y5HrPXxUYv7yXusFU5DxP25wXZKu2YUgQUFZgiYQW16ELrVZ2wzw7bNQssdepAhPPgs9u9AUXSAB7H9QiG", + "master_public": + "xpub661MyMwAqRbcFzHzatDrHNb4aZunFrFoqmqimvKUoocCqBMEV4saSprxXfTzsP5U6QkDeTkLp9gM8MVbAUUQHNEqypHq1brkdqXiaTTAXZT", + "coin_private": + "xprv9vwj7h95pqhyBUThWuFv3R1F2tBuRHLHZnyADTusASNmPTLa7j2vFgWaoD2MFYi1yMY4nFz3NP9T2D5LFRXxYLrJkTEev7jj9QWBrMSoVRo", + "coin_public": + "xpub69w5XCfyfDGGPxYAcvnvQYwyav2Ppk48w1tm1rKUimukGFfifGMAoUq4eX42XByNNpDLRGzK3gYe9TUrxZdmgZDuCieJjx8SBvD5jnEJkjx", + "child": [ + { + "account": + "xprv9yEfZRCFcKSnHqKAzbjYWrU2qcNgvzZPpDScGJhSgAWxioSoi3v9C7dcatDaJGdptzdoCyfdR7qbqmZFRLZwLcZ9oi5E8KPn1Rjat3c6CrN", + "account_public": + "xpub6CE1xvj9Sh15WKPe6dGYszQmPeDBLTHFBSND4h74EW3wbbmxFbEPjux6SASioK7GSniZPkRX75yAhANVP2Pcfe4BVuLRmHL3crGZE3jmqTq", + "address": "0x67478991210E714bd3d572a277EEE72D9a3aAa9a" + }, + { + "account": + "xprv9yEfZRCFcKSnLiBUzWMGaHvVrnhE2LBuy2jSrznFK9i4k2HQfgGZotLMSqgLFmdkhHVnqitBufpcYCKYxfBesPzPGD8AEcZ2cbMsYC9Mbxg", + "account_public": + "xpub6CE1xvj9Sh15ZCFx6XtGwRsEQpXiRnumLFf3fPBrsVF3cpcZDDapMgeqJ5kiKstnhDcAHGB48KnMn27HhqevzWyheXF9Z8YcydQ873t5iVq", + "address": "0x3b901A4d41ACccC74625e246EE6c6f4d7461Da42" + }, + { + "account": + "xprv9yEfZRCFcKSnN8ysRg4A4VzoSSZtE6AgTbJtfQjk3h354gSHtvTLJAf1QRFM2mSd3wEHnBiVDNhk42v7zMJKVJ4Sx1uGC3GtgULCW49o3T8", + "account_public": + "xpub6CE1xvj9Sh15ad4LXhbARdwXzUQNdYtXppEVTo9Mc2a3wUmSSTmaqxyVFfxe38RtPWrj98iKUjhcJH2wT7LYLUnFayiT9xAtWhs4U8XenQ1", + "address": "0x2C8A92A1215fd8372d2b22DC81A48b6CCDfF5fE5" + }, + { + "account": + "xprv9yEfZRCFcKSnQUN5kadBA18rxPAcFDA9MmuF72ZtebHeugYp2dyuXchYyoWHc8c6VNxR8jupw9DgiwBECzJJCpwSn6kSubBF3i4KocC4H7f", + "account_public": + "xpub6CE1xvj9Sh15cxSYrcABX95bWR16efszizpquQyWCvpdnUsxaBJA5R22q4boncwjFpGz5omJxhEcmf2WmSgnqKqVZ2Nw5DwsbHojVHvH4ef", + "address": "0x730CE7AF69197E5d90b4a0Fb2C81d06e28A08d03" + }, + { + "account": + "xprv9yEfZRCFcKSnUSBVJF3KhrbZPRNxBtgRQUsMP1D86GGSWWsrY2JrQiNcQP9kJqbrwjg5vr2mLgeMBB3pNjXgzkKnLSJyi2RjUgLytAgcSm1", + "account_public": + "xpub6CE1xvj9Sh15gvFxQGaL4zYHwTDSbMQGmhnxBPcjeboRPKD15Zd6xWh6FdkhqY1bKD2th2RQyNG8asww5faYUYHyDr5mkC65KdfbN85ZjFX", + "address": "0x69c504230d1dCefFb830fcB3e3eEB1f5AAc0eaeb" + } + ] + }, + { + "coin": "FANTOM_OPERA", + "seed": "b83c60f7eec6e180155ca0c489343571ce1a5b517a2032b5cfac22345360c1a0", + "master": + "xprv9s21ZrQH143K4HNpw6v3a1wvLQqdYtL5uNHugGNNQ3wECg4ijoSC2AVRjvJiDYTgQnucc8xRfCDMKeDCTpN9HQHude8vHxBkWBhC8jn2Je6", + "master_public": + "xpub661MyMwAqRbcGmTJ38T3w9tetSg7xM3wGbDWUemyxPUD5UPsHLkSZxoubBXxEuVXud6evGJGDTGuGaxjw2nnqRr7s1MmXnJ5po9mQ2GnCTw", + "coin_private": + "xprv9vrv8TfXge99TWfLAKNDZ9RfD2SS8VBk1RD4VLf7QgGCSY5NNofqzpQwqGWQEVWfsAwZpAkQV1RzZrxQWHdEDgeCGeiWqM6NBtktxmHKvKv", + "coin_public": + "xpub69rGXyCRX1hSfzjoGLuDvHNPm4GvXwubNe8fHj4iy1oBKLQWvLz6YcjRgX5F9Xeo4sKdDHgdL6u3PGuLSBDPHszxn6n8qwWfvUMmVyDMZ5H", + "child": [ + { + "account": + "xprv9yhtVGRStZsXUGPKWp4Wg6pssjxJotyiwMGTKWL7SbtZnrvLtpzon7yohj4DJag1dhnkfP3zCQurjzd2w4HfhZmmv3Z5VC4Srq62uKo6aJb", + "account_public": + "xpub6ChEtmxLiwRpgkTncqbX3EmcRmnoDMhaJaC47tjizwRYffFVSNK4KvJHYzot4PmLLeq4AbiMZHgh5THy8DxUznDVMJre4jTyLTPDCi2yD3q", + "address": "0x0592c0828D4c3D477d52cC275282842D23cbfc2F" + }, + { + "account": + "xprv9yhtVGRStZsXYgFtmCnx7y5eMYjKJdyEJr3iuCb63Z3AyR4xBL9qXNYQZCzbEREQNbN6UnR12uwGBko79EPFaxyZLNarZ7ouGvS3PjJVvZv", + "account_public": + "xpub6ChEtmxLiwRpmALMsEKxV72NuaZoi6h5g4yKhazhbta9rDQ6isU65ArtQVEg9B9LJsgmyK6LnhC2BU7xgtgYqArkt6EjhDbCKjAkhoP97rA", + "address": "0x9522ca04E89c1De32974A686CC24f03b23692f9a" + }, + { + "account": + "xprv9yhtVGRStZsXbEP38F1LnG7csktyj8k1zubjYWyVvQjCbqqmtu2WAbiGLeVcfNBmZjNkv2rTGwZFnciuLLgeEJupiAyGHeQ8NFcWBnhJZRS", + "account_public": + "xpub6ChEtmxLiwRpoiTWEGYM9Q4MRnjU8bTsN8XLLuP7UkGBUeAvSSLkiQ2kBwK4Uj6mdzDw7QRUjB5NBkmYyp5mQxhGWat2yW3npAkpxKGwbpK", + "address": "0x853328666AcCfD7D7E984bA9EB9b50cf9F4Ee870" + }, + { + "account": + "xprv9yhtVGRStZsXc2TQncNUHRp1jrsV7jd2mesGtdqfe8TEvJaBEmJcoVmgXR7WYPciB764nABKYH7gvaWZyN2xB5aM6ktec9epR1ic2KfZbJn", + "account_public": + "xpub6ChEtmxLiwRppWXstduUeZkkHthyXCLt8snsh2FHCTzDo6uKnJcsMJ6ANhF84H4ksML1SjXHjX3yqHTjerFmmv426qbnswZG7JmsJHxVF3a", + "address": "0x0f533E1B149Cc0fA19bfC06665Aaf86C26dFEcA5" + }, + { + "account": + "xprv9yhtVGRStZsXfiHecnAUevLdjC2jWV9b8Hh537tEYmsGQ453E1irieBJLow1xuVbHR52uqkJfvFsAd5JPbuGQZuqNM2QUoaGiK9G5QDtoQC", + "account_public": + "xpub6ChEtmxLiwRptCN7iohV24HNHDsDuwsSVWcfqWHr77QFGrQBmZ37GSVnC7QAKuwJHgJRSc2CFQSkGnxeuX8jCHWMwLE7J5aTrAANadraHmx", + "address": "0xafdC504bE82aF2dfB223a3C7A0d89CcA61A328A7" + } + ] + }, + { + "coin": "FILECOIN", + "seed": "f1bcc9f0fd01f407401d494cffbb62dbc58f7154093308ac5e0c4fc588abe556", + "master": + "xprv9s21ZrQH143K4RGgJndcFaY5hrJjouMFNrMp2omgK3ccRmvZS6tfyG529bo9KYEoVzFiVtbWuaUoGWRrZ535UyjyBWqzSTg5XRZkvahY3vF", + "master_public": + "xpub661MyMwAqRbcGuM9QpAcciUpFt9EDN56k5HQqCBHsP9bJaFhyeCvX4PVztMCs3TSCQQKWd1NEKr72cqKKBhskX2tDnixvCxEdU7VrXEPBmE", + "coin_private": + "xprv9w5fk6cUNuTFBGdW9h7EnxZwHn8eVLA8MccD1Jx39NcjYupTBSuXTCwzam2L4ETkobvS7zt2cWYGsh2ZBdL5B6Bkb8WN6FvzMW4bTg4jPRv", + "coin_public": + "xpub6A529c9NDH1YPkhyFieFA6Wfqoy8tnsyiqXoohMehi9iRi9bizDn11GUS3oCLWHSnLNq243nBNr5ZCp3LKbqdevfERu66sfeZPhhVHEQZp8", + "child": [ + { + "account": + "xprv9y2tLxdZ54qadcLEHDUtaSfEFv1URNJb5yo9Er3TNWtnFTSXcHUSgZ5qXzBojb5umBLT2brjaB5fj4F7NTTiUUrxCy4btD8FAUMcNJ3Fj5m", + "account_public": + "xpub6C2EkUASuSPsr6QhPF1twabxowqxpq2STCik3ET4vrRm8Fmg9pnhEMQKPH8b1aNQfMc5wo7PSaddeyJsFEqEHE1KJK6XYSP8BrKFBvKCTmD", + "address": "f13wtcm2ecwxtmb3mvwsjc2zhukyp6tg5vt5r5aua" + }, + { + "account": + "xprv9y2tLxdZ54qaekbarySg4JJ5aksJwjZJbghJXgnDmbWiEogcj79S4duKArsQASo5fvjdS5NzNAvzSTzZBH9k5ZT9DqUhcQxLZQpnvREe1B9", + "account_public": + "xpub6C2EkUASuSPssEg3xzygRSEp8nhoMCH9xucuL5BqKw3h7c1mGeTgcSDo27jDZSzu4VKN3WFL23qJqPbtxNfZJAVcwDxxWG3GwmrNVQWSkG7", + "address": "f1bbj2ckhm5uhswtrb3ejkcbfajorjfo3cvq3x5bi" + }, + { + "account": + "xprv9y2tLxdZ54qainHnebkMhQRyF4PRRKJ9vxLM5RqaNsBNqD286onenqvnrZnXL9ggrNjEsAT11ZSpRPGBWkAXe87zfE43tEsGtF2i1SHorQE", + "account_public": + "xpub6C2EkUASuSPswGNFkdHN4YNho6Dupn21JBFwspFBwCiMi1MGeM6uLeFGhrhGv7TLMmXmjdY5QhZCjQ7VHBGEbzK4LXbvVmH6WEnqoeYZitp", + "address": "f1x5p4yxvptca5evmdbutqfylyrio7s4scckvclvq" + }, + { + "account": + "xprv9y2tLxdZ54qakfLb1XvnDSvAjYvniZUfCtKhFAwUi8D4kmfNMS8ZgtpCuzajMxK1mXnySy6fT4RXLP6TpqY9bMUQw4yizWp6DPUQ7iHmVnP", + "account_public": + "xpub6C2EkUASuSPsy9R47ZTnaaruHamH82CWa7FJ3ZM6GTk3dZzWtySpEh8gmGFV9nWeokaLJmRoNDdAEBDm2wXMA5oCrvBEVZqxWSiZRTNqg3E", + "address": "f153db7qs7admh3s6wewogqoinpvimpgwo5kf4ycy" + }, + { + "account": + "xprv9y2tLxdZ54qanFdGHSZeH7DksTHJKDz5Cq6MxPpEYgiDGeHNGuLLSz4qYFQvU7MUcfEGwaS7ZwFgHxdfkFpzMgWf9B18haYY3ooXoyX21GV", + "account_public": + "xpub6C2EkUASuSPszjhjPU6eeFAVRV7nighva41xknDr72FC9ScWpSeaznPKPXvTMnyqbaHxGFXNLR3emCGNBEw7UqEseVfayqexgfEzkmohkCh", + "address": "f17ky4sf5faaf2jd37ywylaswbnb5h2r54aacidfq" + } + ] + }, + { + "coin": "HARMONY_ONE_ATOM", + "seed": "1e599bfd283dd1ed030f2905d00dcb956863332fd9abd1dff369f604b4c5bc87", + "master": + "xprv9s21ZrQH143K3vT8yaTiEwrsHNKEwLRJbWFTkdHcDk5nAKF3WsLgYMvEc4vU7iRJpE2pQ1HrFRUug64nuwNvB1MgcvxjDwhhj2Ejc2H3BNB", + "master_public": + "xpub661MyMwAqRbcGQXc5bzic5obqQ9jLo99xjB4Z1hDn5cm37aC4Qew6AEiTMMEryzJyJq9zGKzBYsLVqYuUoyFfseaheFwwYL7K9Z9Pq9r8QN", + "coin_private": + "xprv9wezypNXJmjk6gGQh2Bmmae87RHt46VwxpjWqA3qADCESEZkeZ8V8oW9uk8aGGQFYKjxA2WgtmgXg3dC1XfQy1QX5KtApDtq5z9hUnPVUgh", + "coin_public": + "xpub6AeMPKuR99J3KALso3in8iarfT8NTZDoL3f7dYTSiYjDK2tuC6Sjgbpdm1T4Ka7um2JaGnsJpfFtoSQqpikLhnvebTYkHJ9oH4GptgvtRAs", + "child": [ + { + "account": + "xprv9zUqs6rqMqDaczkLZ4wgVxYcES5BdEFjj6rwukvKctjP96hcRCVve45K9Uv5NTDvGvynQHDihnwJqyUqDDnsfD2nkv6ZT229Sbb9Ur7uZ2Y", + "account_public": + "xpub6DUCGcPjCCmsqUpof6Ugs6VLnTug2gyb6KnYi9KwBEGN1u2kxjpBBrPnziV3YNQdzAfLJ95HFg6wJePDZZ6skCDsM6xjD9h4xLt2qnrdDwv", + "address": "one1z82p43zxx2x5uywg9cljvemt4gygufwfkjrhsl" + }, + { + "account": + "xprv9zUqs6rqMqDafG8U3aoTqFtEdmnFRQ2HPmbgSD2CUzDTTgsMLLL5vh98j9gF5VQ5VQVQKooqPnYN1HBMZVoFZCm3VDQRvDPSMerjLBiinBC", + "account_public": + "xpub6DUCGcPjCCmsskCw9cLUCPpyBocjprk8kzXHEbRp3KkSLVCVsseLUVTcaP9fzu2dQCqHMaFFnmJ5GFn2Z2hNsXiKW2zQp62A1uz825BeAzt", + "address": "one1ne6253vt9s2vmqmwk2sxsrp6edmvkxkslnqmjt" + }, + { + "account": + "xprv9zUqs6rqMqDajS5VV9V6yJMpXVWwtW8JVZpephMy6Hb7sLgu32CKq8W2dQ6zjeYVxAhunT3RJ9N9iUvytgtV16pXoQ87gX6zXbMoTZsdUVU", + "account_public": + "xpub6DUCGcPjCCmswv9xbB27LSJZ5XMSHxr9rnkFd5maed86k923aZWaNvpWUetWE3xhHQQAMamvK8oUhqjr554GzobZTUPcAHFy5kEUhk1qvw1", + "address": "one12tzxp7gaw5cg65x28vw60eev5a6p0auclq7zzv" + }, + { + "account": + "xprv9zUqs6rqMqDakht7TzfTj1s7vWQQiyW6KVcvi5WBDE8ot6dVdBDHESb3WWfh7f33GJT75BTk4wXXGx1kRi4qn6Bixtwq4AZysFysoC4t7ZG", + "account_public": + "xpub6DUCGcPjCCmsyBxaa2CU69orUYEu8SDwgiYXWTunmZfnktxeAiXXnEuXMmhMHLuuTy2bzAp1eHmRcgypyXJ2G5U2LKgb38L35Lq6rWV9Bi3", + "address": "one150x4ddtmfrewwwydjz3kfkmrz3hlgthpk5qas0" + }, + { + "account": + "xprv9zUqs6rqMqDaok3Mu5M3fh6utbzdufUwdxpyEw1G9iDyHiTT6NxkjE2nqykuhgCgQsSt4QvJU7yHcbqx5hHitj2pLGgoV3iv59RCLsKpoS6", + "account_public": + "xpub6DUCGcPjCCmt2E7q16t42q3eSdq8K8Co1Bka3KQsi3kxAWnbdvH1H2MGhGjTegFydRTpGwaR8jiB8y2xWux5Vv4KPRfAUE2yciiNqsCHXxE", + "address": "one12n7l92r2vhcug8svdnhcxv5tdkplltng3f2k9q" + } + ] + }, + { + "coin": "HARMONY_ONE_ETH", + "seed": "ff25f8cd749db070c75ef0381ab9f2afc3cecd21e4c9562ee5979388565d47a3", + "master": + "xprv9s21ZrQH143K43y3Y8GZNLnc1C8a5V2pnfc1qihoSd9Q65968HAbY4K7qKFwkJCR8T7k7zxHYCUHNDqUpxBjj3yZDRATsFHwXEL59kVoeTz", + "master_public": + "xpub661MyMwAqRbcGY3We9oZjUjLZDy4Uwkg9tXce77QzxgNxsUEfpUr5rdbgasjBuFUkkRB2ywV9NGchjrrjFXZwfprQr4zU1TqPb4vyyM7fjk", + "coin_private": + "xprv9xViHAJvc5Mymfnar1BQEM4k5ynbAfZyoFTy4MwZwpn6hm63Dw3hea4nVGjZqwqNEsZa9X5dMbabwuKJLTYNtss7uJEvxgRot8NN5vsNQiF", + "coin_public": + "xpub6BV4gfqpSSvGz9s3x2iQbV1Ue1d5a8HqAUPZrkMBWAK5aZRBmUMxCNPGLaQz26kFWmDUKYPt6bvcq2HeQU5Cb57k1ydWb7ZmGvFaWJzMD1R", + "child": [ + { + "account": + "xprv9xh8PUGMsREnDZ6XYwi39Yy99cNSKwfwTwHqGpHsygd3dEutwcht3GMcmfUKNj8CXfphhoouhzkaUgzodrcpeFxjTrJDVSRRNnvr32Stvzw", + "account_public": + "xpub6BgUnyoFhno5S3AzeyF3WgusheCvjQPnqADS5ChVY2A2W3F3VA28b4g6cup8E3xwBhXJeT2spjXCcAcKwdccR4Y75rVDpraeNQGKh9yuEBa", + "address": "0x87c6b26B35C71e16ecdf1368Fd2fEf584B6FA32b" + }, + { + "account": + "xprv9xh8PUGMsREnFFWUxn9V3TBvMFJervXKnibeSCtr4LE1t8HKmcuQKFJ25gyHf8CZaQg75kouWBev3Qxp4rDz8z8cWnxnBAtEzLbyVE5LRum", + "account_public": + "xpub6BgUnyoFhno5Tjax4ogVQb8euH99GPFB9wXFEbJTcfkzkvcUKADes3cVw1BAGGohPQU93McLQVXDVUbGBqZt2kkzAWw3Sgvv22Zuhrkufxj", + "address": "0x0827298448EC69c0a73F2f4066037E83a0D7d5C9" + }, + { + "account": + "xprv9xh8PUGMsREnJREYxQNdftr1Py5miuXCxSe9PzzF28kPEQG2arsoBnimUpYxE9CYeD265hnd6WMKpbrS6kJWsoLsiWiWUcbj3RF7QoV1NJU", + "account_public": + "xpub6BgUnyoFhno5WuK24Rue32njwzvG8NF4KfZkCPPraUHN7CbB8QC3jb3FL7SSwg8r9W6qtVTxJjhFrsqSYBJMXD5wzX6uZi1ysk6xKq3JvTZ", + "address": "0xc6B164342e344c7C03516F1d2287B24499EfD5CE" + }, + { + "account": + "xprv9xh8PUGMsREnKrCxXR5BpXFzKuSe2mxWAq6cuqfjn8gyBg7E7NaTfV4TSrBoCH3fPnmezXUdGk68Hbbp2pKWqWbtmEazp8Ut4FTqqMfUnAJ", + "account_public": + "xpub6BgUnyoFhno5YLHRdScCBfCiswH8SEgMY42DiE5MLUDx4USNeutiDHNwJ7ubGjvtbt3oRXnH3gux9Ni1REB35Sn3TLQi5XW4W4MHG1sYcsp", + "address": "0x18d328bfB26a0359A22e0C2AE022090217c939cf" + }, + { + "account": + "xprv9xh8PUGMsREnN7jt4dYfGG1n5FDYXfZ2SiS7d4bfDtRtrEAbkpp5wVdabQdvWRJKdQKkec4jouDY5DhmxzmbqK1fhFesxdgiDGzVKrPA9q1", + "account_public": + "xpub6BgUnyoFhno5abpMAf5fdPxWdH42w8GsowMiRT1GnDxsj2VkJN8LVHx4SePZ7yJrbtdPNR1iaBSvj4oeJoMN7VvSraEMEH6jxKM9Ee5nVSy", + "address": "0xb324b6DeB42600612157e1Eca7Da121ce66c45BA" + } + ] + }, + { + "coin": "HARMONY_ONE_METAMASK", + "seed": "41047d47a7207dccd2eff5c9bd68816211892300da76c9d1cee94bbfff7462f5", + "master": + "xprv9s21ZrQH143K3TZoiTWYoATg1ZihhRBjvTnLsignJ1bCvpF9QPDWEA3JAHkbWHCyJs8qfPbNeHrYqL3feKEvJqtPqYLJ36EVtzR6TdWk38z", + "master_public": + "xpub661MyMwAqRbcFweGpV3ZAJQQZbZC6subHghwg76PrM8BocaHwvXkmxMn1Y6d2oqocZ4A7r8tKXAWKNMBzcn2491rTNBBnXDbGpAj5kYYc9b", + "coin_private": + "xprv9xAV9y1ajUUhaDpgwqr341guz4jFcZqyGtiQmazXxemXNvwAXcGGC93NT3tk5wuAzjzCdE32R6Wd45BZdveCsWveTgVdT1TQJmXbTT1v3EF", + "coin_public": + "xpub6B9qZUYUZr2znhuA3sP3R9deY6Zk22Zpe7e1ZyQ9WzJWFjGK59aWjwMrJMyjWnMSmZbzyivBzRwLBsBLRSViJi4Qw6yX1DTKtkGJ8oj5oSb", + "child": [ + { + "account": + "xprv9zJUj4sb92tr8xbyznBZ5xoGr1HDYtT5AK5hLCkATExK4hctpqctD5xpNwJGD8wxDHEdmX8NrCVkwcca8y2XSpRVzzfr9zjbzwuY3UxcQnS", + "account_public": + "xpub6DHq8aQUyQT9MSgT6oiZT6k1Q37hxMAvXY1J8b9n1aVHwVx3NNw8ktHJEEg27CUFR3xkCKRoHbmpKEYNGfju5hUjra7hfoY4CwHvMuJtEv6", + "address": "0xD5fcF4107dE9d7851197D80EC9f4EDBffd1d2Ca6" + }, + { + "account": + "xprv9zJUj4sb92trD1qpeJk4dqDfKgth7fpiD2EVg2mZgDLzGq3g5ZfsLPxtgBVZV1f2HUh1MXj86Wv9SNafa8uvTWZRH3xCkVu2xr7Heuf6LJj", + "account_public": + "xpub6DHq8aQUyQT9RVvHkLH4zyAPsijBX8YZaFA6URBBEYsy9dNpd6z7tCHNXUtTWdZ27Nxm9ckvuSU4mPUNQQ3mbuS9W3iLUTaRR1BiscY9KhM", + "address": "0xa0Cb1BB7273ec2611C5795736564BC96f46bcDA0" + }, + { + "account": + "xprv9zJUj4sb92trF1snyAS7v6uYGFDPsbmqD4F5pQwE4jwjnCF9ZwEupTiX3WvUhaE1TVrBNLM5cN1kdL7GNRwJAYCmtrPbVb7sgJ5bSwbRKXw", + "account_public": + "xpub6DHq8aQUyQT9TVxG5By8HErGpH3tH4VgaHAgcoLqd5UiezaJ7UZANG2ztotWW5U8KgpWWLpXaHqJrEJXs9dm8HcoGBuDd17USnFrrmxusCU", + "address": "0x098A4E8f21EBe3E072Db28Cb610cb74cE99Ef9aB" + }, + { + "account": + "xprv9zJUj4sb92trGzHDMnmUSH4thGeXNNz5xpGRBKnh9ntpkhLBaJt12mW56BNvSkhJALYWRy7hLeD8RdQWyjA6mrVT6dr75i8Yqj6gd1v7DR1", + "account_public": + "xpub6DHq8aQUyQT9VUMgTpJUoR1dFJV1mqhwL3C1yiCJi8RodVfL7rCFaZpYwTLuSqDvFL8X9edu7G2K37uHZvGRLzZHCxhXQ6vjffxBfwP1DmM", + "address": "0x0C86cEEafA07D40F67923B2783d04DdA5313A668" + }, + { + "account": + "xprv9zJUj4sb92trLucqdBbWVPe3CcNG6GUvXPiecx64FDhEb8pmP2SLtmLyCWbGeBmFRrbMdtPTi5nvGyfFKR2bhSnm1aVBDD3x5iM7tpcpzv9", + "account_public": + "xpub6DHq8aQUyQT9ZPhJjD8WrXamkeCkVjCmtceFRLVfoZEDTw9uvZkbSZfT3mun5HN1mvUp7rTpGxo4u7Z4ypDgBwZyiGz9WKtgfLXjc87p86C", + "address": "0xdE2e8dBC743D269D3962551F127F7a5257C8e486" + } + ] + }, + { + "coin": "HUOBI_CHAIN", + "seed": "aef09beeb3d1ec05703b717bf70f614afa60202fa1b57635c3c6d33debe9ec50", + "master": + "xprv9s21ZrQH143K2prYkU6ETB9zu6xWsB8Avq5irAdYNTzoniEi4wQDofzaoFBns62xBNzwHyXqQqmbowiNs5qxysP3zbSvyHpyHa3iG3T7fEH", + "master_public": + "xpub661MyMwAqRbcFJw1rVdEpK6jT8o1Gdr2J41KeZ39voXnfWZrcUiUMUK4eZWRyAw6rt6dWxjgDgzc7a2MRZofK8BQmZdy2n9LasKTtkifEV6", + "coin_private": + "xprv9xWN6YxRk73aZqLXxpsxv9MJ2hgmmnHygsm2VrXwTcWWhKBWABax6K1QrFfuf5uXwajthKxisgwpPikDmVEbbWiVQB3TnVHzQjnVToTTDy3", + "coin_public": + "xpub6BViW4VKaUbsnKR14rQyHHJ2ajXGBF1q46gdJEwZ1x3Va7WehiuCe7KthXPCjrDrD6azePLHWc28m6S4AnJFx44cVMwVheHTKRu2YCq2965", + "child": [ + { + "account": + "xprv9yAHRTxNBhCRPyqDYqXTCEyS9d6nQY48ZjvUaCJ5RerdEV7juVx5BQ3EEnxSXD6KuJMo1i2r8gtJf57jANRoBVAVmBUk9Z2dH3yKp8eUUrU", + "account_public": + "xpub6C9dpyVG24kicTuges4TZNvAhewGozmyvxr5NahgyzPc7HStT3GKjCMi65WcHXTXUE11EvygcA4iQPL6qnQS5khhUsviqhADAqMSz1pAV7h", + "address": "0x9489ea3f5ac71a4438701B0EFcA576444177c227" + }, + { + "account": + "xprv9yAHRTxNBhCRTPAK9CspAUPhK3Y3yFVGPVhFh2AzGizrPNXtVwYjoBV7NUHrGzwaXyAjFA6fmQQP7NyXRBPNdqvBNcDSbcQAgUqQFg1ynZU", + "account_public": + "xpub6C9dpyVG24kifsEnFEQpXcLRs5NYNiD7kicrVQabq4XqGAs33UrzLyobDjqg9ydxzCP6us2icFcuPkJwfJJ2VMNs8rqTKcXZ2tRZYA11qBi", + "address": "0xf2a10721cEA159b11354B63cB29Af75521704e3e" + }, + { + "account": + "xprv9yAHRTxNBhCRWMKxydAvzCCsuTz9LwYqFAuvTzAYHEWfLzQBgnEa7BwDjQByim4QvwHLeM3iftr8qfvAVSi8bosQQ9NiBDw7wU7RTyNPSMa", + "account_public": + "xpub6C9dpyVG24kiiqQS5ehwML9cTVpdkQGgcPqXGNa9qa3eDnjLEKYpezFhagBmjyVv3AFfRPyFCrkdgi6T5GAwDqMun1XC3ZJFwCZ5iTSDQhe", + "address": "0x8D58BB4E60e4f5A4F0344618298BE081D774F638" + }, + { + "account": + "xprv9yAHRTxNBhCRXJbNeDW8cctniBrpTmUW3GmcDZndqPd8M5mBJcf88UCymv2qqNaKK6obckXzjvAdvaCPCiknjpFqufpLH4y6XoZuGv8weJJ", + "account_public": + "xpub6C9dpyVG24kijnfqkF38ykqXGDhJsECMQVhD1xCFPjA7Dt6Kr9yNgGXTdDKLx6WRDaiUWYD3zMdssgdPWxChNtZUM8hpo9i9q1Mrf8rn75Y", + "address": "0x189F38558da377d9E29e0B5DBD3895e67c3CC01f" + }, + { + "account": + "xprv9yAHRTxNBhCRaBnAbgNxiGR65TWZVJwA6tZEdRRqek4JjbBGqaQ9FM565pR6AGy7dMVvyekMuieWYK3ijyizQbmVQpqLSnx5zZ9nPdUCVYJ", + "account_public": + "xpub6C9dpyVG24kinfrdhhuy5QMpdVM3tmf1U7UqRoqTD5bHcPWRP7iPo9PZw6jWNmVrTgfTp9dsv8uYdLn52PMXGe5R7euoW4AwMwYtQcHrNNa", + "address": "0x7603541D8dB67Ea0B680858dbeF298f226A17b7e" + } + ] + }, + { + "coin": "ICON", + "seed": "cc47830d8202c964a614343702552e1455a6a89a2ea249d81d0fb535f26de3a7", + "master": + "xprv9s21ZrQH143K2jDzk1wMC1yBx8DK3bCXiam6j6fz7Betewc3sTgn4fbDaUdfYbNeeQW8Cbp7E786viJdiSBkeCsxuNAWsojX9btcQ1FCUdA", + "master_public": + "xpub661MyMwAqRbcFDJTr3UMZ9uvWA3oT3vP5oghXV5bfXBsXjwCR112cTuhRkZ9a6AVbVS5PD77g7FDSZFGoFVMRfU1e3edknUEDWUFGrV1f64", + "coin_private": + "xprv9wNjis4oAhA1bJCf1YRALbnPzcRKxWTZNtZPH456AMtMv8B7JqRLXMRxzGnKw24twFzc7B6Rv23MtkFuZwEY1tWQ9EwKcgoauwEpgctzmDd", + "coin_public": + "xpub6AN68Nbh14iJonH87ZxAhjj8YeFpMyBQk7Uz5SUhihRLnvWFrNjb59kSqYnRif9N7TasnkUzVj75bUwmJUo2i4NE7gzdt59EhwNi4Z2geEy", + "child": [ + { + "account": + "xprv9ynJadbwzqbGsXNgRvqZRrT2StQzQFMbKxJEALeMzxJQmNMeNCzCWdfnQvsaGHRyWBj1ikY8rNdQ9vRyccZgNCgFSzWLzYxY9Nrxm1N2ZMN", + "account_public": + "xpub6Cmez98qqD9a61T9XxNZnzPkzvFUoi5ShBDpxj3yZHqPeAgnukJT4RzGGDaf5byM7ZLAirdfCCMreKSXex3ybcWWWpLnT2VhpXtJDGtiVDg", + "address": "hx7bb8a1af3badca636219abe3c3df14233bdcefd7" + }, + { + "account": + "xprv9ynJadbwzqbGvQgK9bfnjD3kHUv7s4EZ5hhb1vAyGsk63SkqHxEFiaa3FGj56aAsbo43jVfiAtz9RJQ6mRMeHGwdXtHxPSFa2SntdZFkiaw", + "account_public": + "xpub6Cmez98qqD9a8tknFdCo6LzUqWkcGWxQSvdBpJaaqDH4vF5yqVYWGNtX6XC6rX68XTXiaD9GBGQ5AjcsKYBxEHRU4DG3pU9wBjquVSBr9gA", + "address": "hx14f78241b53994d6649041ff81d9165b2ca9d0bc" + }, + { + "account": + "xprv9ynJadbwzqbGxeqGGPSS3QDEDjiwQuUFVdrme8f2xkJcbQCdhPcPUxmwPeogmW4wreDYB8ybp22MGJajm5H2CUYHdkj9YuK6NFh6GEKTLEz", + "account_public": + "xpub6Cmez98qqD9aB8ujNQySQY9xmmZRpNC6rrnNSX4eX5qbUCXnEvve2m6REvtTXvQqtFAeJW4yEYVcHP95yMhxmTjMCmaHSzEuozHgnTAR6ei", + "address": "hxa4b5f55f03e8748a5d6bf3bc856026512a99d2e7" + }, + { + "account": + "xprv9ynJadbwzqbH12k1U48s3vbeSCA5Z7jcb7DFSLY7ZsWPehbtPLkCtuCuop6wEGmQzqhxDMQjLMEVx8WixmAY9DQDNv8QXbz2Byid5JSRPBF", + "account_public": + "xpub6Cmez98qqD9aDWpUa5fsR4YNzDzZxaTTxL8rEiwj8D3NXVw2vt4TShXPf6y8v6XQri6hyLbT4Z4hRCPhb7Ud8WZgm9NAoTM7tPZkFD2W48m", + "address": "hxdc67d9756f86265632f3dd3ec3dcba6aa8ea853b" + }, + { + "account": + "xprv9ynJadbwzqbH36gxCY7wwZJ9QGWT4tPAfUvcxXx2Dtb51LvBhUruwee5Gz2JoU8QsceAY8rutBHy2Ldb6EKvR8pno8VRqe1ok398obEas6N", + "account_public": + "xpub6Cmez98qqD9aFamRJZexJhEsxJLwUM722hrDkvMdnE83t9FLF2BAVSxZ8GhSvPyvQ2fFmt9KnLEfWcpr5zLbkrG65tRXnY7XCsj9PQkRxMd", + "address": "hx7d63096ac062c4cbcebf0ef42b778a6463807d41" + } + ] + }, + { + "coin": "INJECTIVE", + "seed": "77e18692d6d5db92233b37b36e92570b090e872e06a7589348d43cb454b5084d", + "master": + "xprv9s21ZrQH143K2GQkoWm2f4cJvQFSYpffK18kLRzYe58BxJfVeUikA3G7xj7q4TvciirjUtVmGwuJ4butng7a7gmcfe4LNYsV68Bw8vddyu3", + "master_public": + "xpub661MyMwAqRbcEkVDuYJ32CZ3US5vxHPWgE4M8pQACQfAq6zeC22zhqabp29Zw9ZJzoqMTpSP3uKfjuyHEqprDYFNGJrKhjwQnfX5eQWtHpQ", + "coin_private": + "xprv9wKu1YJyYcWeHg79gy26xkYWNVqaGFtiw63iTRyDUZDpoeVxq81TYBjN6A1sceFNLA93uZ6GGR2VkdSzPbvoFXEpHKP4r8wL3ELTMVn4SWD", + "coin_public": + "xpub6AKFR3qsNz4wWABcnzZ7KtVEvXg4ficaJJyKFpNq2tkogSq7NfKi5z3qwR1ataqBkGzofF7SZRYKA87qKV9B7prBoQu5vy19JiXBB7vczA1", + "child": [ + { + "account": + "xprv9yzMkdcXBKomWVqnzAvyMz5kdseNsNraxZQNtNgxa2YLaBveivvxwwckAutBS23TsCsTQmB7UoKsvrPUZWBty86sNBxP79zsJ7U7b92jVfA", + "account_public": + "xpub6CyiA99R1hN4iyvG6CTyj82VBuUsGqaSKnKygm6a8N5KSzFoGUFDVjwE2DvDgZBRB886a75YXeskxUzgvucRMzqf6MZL8m341KNbG4HtNor", + "address": "inj1uwrpd0gpmzetu6n4h0t5qnde24destp9syx9j7" + }, + { + "account": + "xprv9yzMkdcXBKomYekLnK9JyfS8VcdYwDVG6gcoD1xu6Z8THS6k2S94pFc9Rhaq5LbYRmvcCoqF3z6uiU9o7XbhW2EqHwfb82giLF7nkXJj1c2", + "account_public": + "xpub6CyiA99R1hN4m8potLgKLoNs3eU3LgD7TuYQ1QNWetfSAERtZyTKN3vdGz1KqasYo1osBvrFV9Jrvfxge32d72SMDoy9jVcx3T7UEwc1PrH", + "address": "inj1t44a4xrpamefq6lxrhq70yuvvmdc7e0vgzkd3n" + }, + { + "account": + "xprv9yzMkdcXBKomcSEFR7nEwhX3MKk9itJaCczRqJvUWLHa345eetjN2cxwGMnNG681B1U1eM7ijGr6G6dVcvKUzhU2DhA95dX86EWZGU3TDKj", + "account_public": + "xpub6CyiA99R1hN4pvJiX9KFJqTmuMae8M2RZqv2dhL64fpYurQoCS3caRHR7cmaMojH8JXeg3PTVtJLHqQM3xLQSH8KHBRajzCREKqsocAaLtW", + "address": "inj1899ewa04lhjkrgdm5gsffs889qxkpcm2etjefs" + }, + { + "account": + "xprv9yzMkdcXBKomexsf6dNqGrehBEiTVpyBeYoETFncmNP9B5HeJP5nKnbNQ73ezVMU1ofvUqAnpiLNdPUATAQ9kG9UgtFdWfsuikoTXp2vc8j", + "account_public": + "xpub6CyiA99R1hN4sSx8CeuqdzbRjGYwuHh31miqFeCEKhv83scnqvQ2saurFM9jMVe6Ay1FBLHKi1QKfF4ic2S25TRuCb2BBm9f6MNcB31TvUR", + "address": "inj130a6dxwz0y0y33g9u5748geqfek2mu8tvqxnhx" + }, + { + "account": + "xprv9yzMkdcXBKomfeVmTBNzsEbuoi2DvDdJKwJqG666RRm4dvNLFgcAuCUn3YZAVKfTjAkzpqKjb4XCEk8B5hLv3UPdLsQr2kLFuDUmYaFhZta", + "account_public": + "xpub6CyiA99R1hN4t8aEZCv1ENYeMjriKgM9hAES4UVhymJ3WihUoDvRSzoFtsNFMV66oBMGFpLqMr4yAkQq7FzzD7JYrLK9MjNzGueow1hrTbq", + "address": "inj1wdcf9y448qjr2hjnadzwwerlwtcsssgpyasf6j" + } + ] + }, + { + "coin": "IRIS_NET", + "seed": "2ebc3f78802656f7765ca8677a6b9c160af0b9ba7a92e7c6e8b9db2c27dea038", + "master": + "xprv9s21ZrQH143K2U2gSC3T6wHq4dVVHoq6siZUdf6JMq4B8D1mQHgyoAykrMpKjsrWYK6vv53v8s8QjKNVkC1C7N5Y4KrtR5P3BacHGMifubq", + "master_public": + "xpub661MyMwAqRbcEx79YDaTU5EZcfKyhGYxEwV5S3VuvAbA11Luwq1ELyJEhgHXKoMPtD6KhF3rNnYjoWxqytdn7hbwDQwXPcrL6LG8V5sdkaL", + "coin_private": + "xprv9w6V6miKezCtaYRFyXPjVkf4Xfy38Q3cXWyH2xYzyK73uUxJZ9f2MbQcdaYAfkc4TjVaZi5gZw1LVEHK9UUASWDkvF7z9dJswE9FwMrb6sb", + "coin_public": + "xpub6A5qWHFDVMmBo2Vj5Yvjrtbo5hoXXrmTtjtsqLxcXee2nHHT6gyGuPj6UqRYXVJQDNgEmbrKK7ok5G3heEQRnUpbC6qjfz9qFHTNDuoQdyH", + "child": [ + { + "account": + "xprv9y34yheALngUpg64Wr3qrwEcYbjPgurLXPejkGtzYitugUSLgHnvGvbZ6kAYZjjQLYa5ZpE9wVBboC6Lt6XFmHBYRo4Zrat3oCCsbP4TQKs", + "account_public": + "xpub6C2RPDB4BAEn3AAXcsarE5BM6dZt6NaBtcaLYfJc74RtZGmVDq7Apiv2x3QMAFHJfkAhbjpA4B1DxG4MaF5hfszT9YMwWgq7c9Ctkxh5xAy", + "address": "iaa1z570nhnckjlv2mzvh2hgrf65ludzc33t8r80p0" + }, + { + "account": + "xprv9y34yheALngUrYVA8yoaQBFNwho2TrEdatpWf5fEK7QY7m9QFgVuoMC6HwSTjH7Ms2LwA449tev8VjvUDHB3Lk3MiM7iAJDcbEwafBMNC1t", + "account_public": + "xpub6C2RPDB4BAEn52ZdF1LamKC7VjdWsJxUx7k7TU4qsSwWzZUYoDpAM9Wa9CCp4XosxSwNRkXHdaLkGqwoStHrmHfZD65zF1veJgG14YXut3u", + "address": "iaa1ud6epsxkrqlzmlxs7vsvzxesxqk759lhwy9jc8" + }, + { + "account": + "xprv9y34yheALngUuYQnzVXjf8ZfthyN9ENMKgMhy3Jjyd9BSERN8gisFv3kRxNEUe1fjnGNsi5xQjxLPm7ZFRKHX8ScvVFvwZtbp5pFQZTt9np", + "account_public": + "xpub6C2RPDB4BAEn82VG6X4k2GWQSjorYh6CguHJmRiMXxgAK2kWgE37oiNEHDzeVKqPdQSuHp9w6BWgU3r3QSQRyk2HJ5F5QYypM5msjTL89cC", + "address": "iaa1nkp6lua4ratdgatqte5g3x5hgy56r4u2xshajx" + }, + { + "account": + "xprv9y34yheALngUwvrzCnWq17xm79Y6NXSZNch2ZhRfEM6JzJcx4o4dqaypB7Muuyetchky39Jj3pvRYjabbkK3Ffde8HpiFGPPwFz5Tyuwztk", + "account_public": + "xpub6C2RPDB4BAEnAQwTJp3qNFuVfBNamzAQjqcdN5qGngdHs6x6cLNtPPJJ2MtzriSP4UzaffEAZn1JosUCiX5UduvjTYAHuNy2fqakcG4w27D", + "address": "iaa1lkpqvmqzp53tuqrjethk4fd78anzknk9n4hkxm" + }, + { + "account": + "xprv9y34yheALngUz1XRwkEBRBkj2CD3qyKPDmQQxdoJzLyGBYdqCS3As2dEPV3e3yp1uRGJDfbboeJBKJMNrrHrD4tSzi5TfRy5H4DLuYfXN8o", + "account_public": + "xpub6C2RPDB4BAEnCVbu3mmBnKhTaE3YFS3EazL1m2CvYgWF4LxyjyMRQpwiEmUVgZNPHVm9tA6w8W3ZpKsBDn5xMZkAddNyFyKCFRCGF9DCTeP", + "address": "iaa1s3hzrwgyeq26nqh00yuc6qkd5skr7jgc4hfw3q" + } + ] + }, + { + "coin": "KAVA", + "seed": "e6a08b5b971c94131c95192e77906980e2c5e2e91ef4fe83ec88342a53239582", + "master": + "xprv9s21ZrQH143K3geZiF85N8byLfUHDkFcm5JFcoxnGS9QdLLJJRknU9hXWa14vFdRpmx4qztGXLhUcUE3Xppa44yMPyfayWDBS7ewbaHjCLJ", + "master_public": + "xpub661MyMwAqRbcGAj2pGf5jGYhthJmdCyU8JDrRCNPpmgPW8fSqy531x21MpXKYrT9pst6NPk8QXCuEtmHZepZRHiV6LHP6FDPwYGGk4qmUf8", + "coin_private": + "xprv9wntE5iWNakTSaVd72ie6PMGHQH3YtiavyEKn8UrdxZ9crKb4WLsw71EcTkErsxhnE8d5ec8YA5jm1dKHkgL8mn64nosF6HzQwdcZGKT2LL", + "coin_public": + "xpub6AnEdbFQCxJkf4a6D4FeTXHzqS7XxMSSJC9vaWtUCJ68Veejc3f8UuKiThq4j13viBBQybEaoziiWUeKFX9ovCovM3bzgTHV9HLkUq57afM", + "child": [ + { + "account": + "xprv9yzqsoxkWgBYVa8RbndeCWz1KcnvzX63AGTa6rwmgqA68ZRiNEyzKReL1uZfk5CjpDgdCDmW1EjQJL3aEPGipEnYpNzigfUoLnRnNuQoaYr", + "account_public": + "xpub6CzCHKVeM3jqi4CthpAeZevjsedRPyotXVPAuFMPFAh51MkrunJEsDxosAgP98wU8GJLJhzTaNx2tRerLa9C2zTb1zwmr3Lzr1ZSc2tLsbR", + "address": "kava162cdszu5c208n6fh2q32mh8gpg7yuweutfjz8y" + }, + { + "account": + "xprv9yzqsoxkWgBYXycFKQgu7KvG68R3ophhzPUsWa96STdZ3gUJLL6y9ifS1JnkQuuXgYm9oSAnKkhSwSXZvFkGXj4j3XXKerEDP9jKEvfrSpW", + "account_public": + "xpub6CzCHKVeM3jqkTgiRSDuUTrzeAFYDHRZMcQUJxYhzoAXvUoSssRDhWyurabzyheo5Q3A6cNAGDdRpUXYQRFTJcA9AUCPDejX8jGotG2P7st", + "address": "kava14n9lp7s5txnnqywnv29xx03rm89uh9s2h8zc5c" + }, + { + "account": + "xprv9yzqsoxkWgBYaZ3y8CBcPFjS8tLqNgE6inPVoQRPS7BbMfoxRsDfX1LXXKGWqpszGvnKx7eWznCAg8Nx8rAH26g7Wz4Bssov2feGP5SaCb7", + "account_public": + "xpub6CzCHKVeM3jqo38SEDickPgAgvBKn8wx61K6bnpzzSiaEU96yQXv4of1NbwMdiCks8VoAQnzeb4YELVARvJxiP3LYmEx32KtnADHXqcjm5v", + "address": "kava1jtcyc3pmn6halruszkmhdt88d6527vjfx8cpw6" + }, + { + "account": + "xprv9yzqsoxkWgBYdzE3ogTaNwq8oqNpEzatrkGRBPWf7hJqR1Yak8LUL4ywvGw693J2CJFQWoPUTLDdXyNACrC5zneKyzW2WaMD4WzH3Kpxip4", + "account_public": + "xpub6CzCHKVeM3jqrUJWuhzak5msMsDJeTJkDyC1ymvGg2qpHosjHfeissJRmZ7qbNvwYLnMrRLwT3RdbqnxGWGVfJouXRgi8vERCwCDTAeQTGp", + "address": "kava1fcq3zkj69ft0r3ev68j89aun6dneddez2z3kzu" + }, + { + "account": + "xprv9yzqsoxkWgBYh7jCd1suQKWMXMwh6GWQNJm8wbaS4D1Xg2KKVRTS2nooAcyAsurg2e11oyPb1z7zq6NHQhekm2DthCeKmt5NURCmc8joMTm", + "account_public": + "xpub6CzCHKVeM3jqubofj3QumTT65PnBVjEFjXgjjyz3cYYWYpeU2xmgab8H1ufPsHnrANRzoc3iXFuAaqZx9AEJsB6jUJd9NrLJ7LTLdaXZQeW", + "address": "kava190q9mna6r75e625k3p348wjah4qqvtvz6j8m3s" + } + ] + }, + { + "coin": "KUSAMA_ED25519_SLIP", + "seed": "b5a628d5afe2833afb683ba278c5c7f36430afd9e977eb7927518ea30ba6b82a", + "master": + "xprv9s21ZrQH143K2CME4iXGV7X5Zxc8gDc9AstCzmP9ztsbYp34egLnkoSssQM5sTY6WTX4w8DEyZec3rZ96FpuvJDyrvhLeniCBJSJGUCGvVK", + "master_public": + "xpub661MyMwAqRbcEgRhAk4GrFTp7zSd5gKzY6ooo9nmZEQaRcNDCDf3JbmMibTBpdK2ykmnpigiRseEy3cQNc7qCVmXXqmwrMamFiPAa5zMsfG", + "coin_private": + "xprv9wMHpxVcBzwQW87ZvaHZ7jLG6mvhBqp2NytxWCQF1Dm4RQj5LKqsakY4FvrTyg6ZUFCbUswDzuaVrcd1DbF9hQrdk9d6SfiHbSuFgCHp6B9", + "coin_public": + "xpub6ALeEU2W2NVhicC32bpZUsGzeomBbJXskCpZJaorZZJ3JD4DssA88YrY79gygHURNVxEbyHGZ6DaYm9iP1MupDUq6v9MmcBihprJi17r2Cr", + "child": [ + { + "account": + "xprv9yzEcKQaPsoU6uGqFUfF6SqhVNYJe4ARhenCa5JpPv2Em6EWGLpHYNZRRVr8DzZUX7snphzto36kBksACFpw8BSSqxaFkcUakxeZb6qB2Vh", + "account_public": + "xpub6Cyb1pwUEFMmKPMJMWCFTanS3QNo3WtH4shoNTiRxFZDdtZeot8Y6AsuGhFpEM51QA8zd1BdB3KtibGofm729aP6y46ouctkTSsmQ9YkZLW", + "address": "EvkupahjtcRe1SfZvuLSXZNQtKdQUgGuf53afatZyewpg2s" + }, + { + "account": + "xprv9yzEcKQaPsoUAfUMdoRP1H1Bf855PVzVvgYWSNBuDnpBJG8isk8fp5QWL27zwvqGgScaGwWGBn6umo5AX8Mz17gM371vinWYWAso5LDttK4", + "account_public": + "xpub6Cyb1pwUEFMmP9YpjpxPNQwvD9uZnxiMHuU7EkbWn8MAB4TsRHSvMsizBEUAehHT4XaTnDstatj7PYrf1wcjcSGgLqH6krPqqLHPEeaXWD2", + "address": "GXWpHeaLv3CkYx4FRMVk3KgWCbKyfywdCuAgFe8KSm4HQ8G" + }, + { + "account": + "xprv9yzEcKQaPsoUBxMZbGkDHFP5Dvb7cboWrX4W9twDTWff1zWY2jDpCVV1wvfHgUXnhy9rSKYL9tVz51xh4gTexveyeQbG8PL6ryZomJZ2zzq", + "account_public": + "xpub6Cyb1pwUEFMmQSS2hJHDePKomxRc24XNDjz6xHLq1rCdtnqgaGY4kHoVo6kf73enhHwcQ9q4AowR1jWyTafREgaSXZTs5U6GWCMkj3jTwSv", + "address": "CeYyV1KT7eo1mhVXYiG12c9MRYaiVhvUY5fUC5CWf3q2PTt" + }, + { + "account": + "xprv9yzEcKQaPsoUF1P2YpQXxQkZdxxgNPUK1AcfAwefp7TDfeYToYGcTXuJahyxLLzPiZ8EVoHhgT8XRBASnMvjJaptpG5ac261uupuzQLxmBz", + "account_public": + "xpub6Cyb1pwUEFMmTVTVeqwYKYhJBzoAmrCANPYFyL4HNSzCYSscM5as1LDnRtapBBoF2fiKJRoViCSdrfFjTQwvjqYxWpNP66Yf6FhZyz1RJP3", + "address": "D4ACvDqVaXJAH8PkahouVsTgWA1wkFcp5Sc2y8NZSvaRLA5" + }, + { + "account": + "xprv9yzEcKQaPsoUHvuyRW3VZVbB23No2HY27znPHLgSCefUttXXLsVMW8FWN1Lzw98Rs3FLBSb46cr4tvrYEMxxfyyick4jdd4jtqP5ZnpVYgq", + "account_public": + "xpub6Cyb1pwUEFMmWQzSXXaVvdXua5DHRkFsVDhz5j63kzCTmgrftQoc3vZzDBqmaoBhATjrsNxZTZMmmvBNjEKQdjA54j5qVWpWNpS8z9wTzwY", + "address": "E8Ub9akyJnLzmHnFTmVwmQ7BtjfBYKtNYGsPkXQ6zHPfbyC" + } + ] + }, + { + "coin": "LITECOIN", + "seed": "86f1a6aee1cbdfbf28b211b59f8fc6479385d1963ffd03a7b21da2819f8c89e8", + "master": + "xprv9s21ZrQH143K3QBzupnMa8HBeq5KJWWc1J1FSpGKzLrCt4tNBZJ1Wb8AYu3HkKcgZRWfdmHF3u4C6HhNVdHJXT2qHSLxbH4nN1hUvH355HN", + "master_public": + "xpub661MyMwAqRbcFtGU1rKMwGDvCruohyETNWvrFCfwYgPBksDWj6cG4PSeQ9pMyro3zybBc2JDDwuBCifcxReeUCyrr4X3oHBGiVUr61q8nF2", + "coin_private": + "xprv9w9J364EYwqTVQdFMEJVqRzFFXLVShyrKEojTGxewpd3XBQWsPPYzZ3YUVrDNnWZd3n7DdrK6aBVuarz8brXggCn6GVR2TKmRcy3aPKXTwy", + "coin_public": + "xpub6A8eSbb8PKPkhthiTFqWCZvyoZAyrAhhgTjLFfNGWAA2PyjfQvhoYMN2Knnp4vY5QtJxmZkEyUgm3XoqLRZ1HaeS3ti5Q3KsQ5pGwe9KaoL", + "child": [ + { + "account": + "xprv9ynMFw4ExNgFPYyGP2wPQ7C2MXZp1yZdESzw4DUa5myQQDmJj8CTtmsFLgtGCxrGqEsjbUXBmgnZhD7dmSCwwQ11QfpdRXJD17HU9XPkpZD", + "account_public": + "xpub6CmhfSb8nkEYc33jV4UPmF8kuZQJRSHUbfvXrbtBe7WPH26TGfWiSaBjBxivFjC5FC16Kx7cNeSk3H5mxiNEPG96RXS9HkQFYEruEvb19X3", + "address": "Lc1P6jRU4Eatyw6ntzFKnFkV7ZxguBybkv" + }, + { + "account": + "xprv9ynMFw4ExNgFU7ebYkJCiysv1RCbT31HoytHgjtnNGA44W9T4N1WkC1gCxA3g5s2dR9qsCDtw6xmd1S2pvMdJxt1hkqi1poiFcBm5o2R4XB", + "account_public": + "xpub6CmhfSb8nkEYgbj4emqD67peZT35rVj9BCotV8JPvbh2wJUbbuKmHzLA4DiA5t4bCHYJNpGPBELQsthUCVMZPiUMBtCbf9bW7WeEFaXjvVq", + "address": "LbpGcQAuGQcvGMGZ3goDq8fWiz6p3xeswU" + }, + { + "account": + "xprv9ynMFw4ExNgFVqsojA6sDmLS3rShevDwHNwk3Xw9tcbVArWD95fqZc4EPSjXj7epfMbgKJSX7dNgF13Smk3rHKCkbN1SS42EgdcTtY4vg1Q", + "account_public": + "xpub6CmhfSb8nkEYiKxGqBdsauHAbtHC4NwnebsLqvLmSx8U3eqMgcz67QNiEhvoesVWLdpbhD5TKhXt5yXhtVdQrg8zWsm2BEfMUbSFv6qTFUK", + "address": "LMDwHBwSw6tGw4wEvVnVB9TzguSTTUrFhH" + }, + { + "account": + "xprv9ynMFw4ExNgFXiA2LjVsGEoPBKijUZARNBhcFkw8UowwLSmWtTwCzvZArK56NF3EkEcGPnUhZgKyTuUVX9dc7mbVZ6Czkp51hp1aVozZ6v6", + "account_public": + "xpub6CmhfSb8nkEYkCEVSm2sdNk7jMZDt1tGjQdD49Lk39UvDF6fS1FTYisehYYSKVfLjBRJ8rQcQVvKVtSXU3kE6YqGZhh59eQkWdKdhdBh2Ha", + "address": "LQDUMGFevV7mVFfMzfS6qGgGuRBV6XNK9J" + }, + { + "account": + "xprv9ynMFw4ExNgFaoCWWhBTSmSWuSrBNEKKsy599gDC7h98X5ScmM1SqTrpW3ENLaZKmWnKgjNMwkc8ednWYDGE6gmVbaoC2MYs6EFYt2qKZUX", + "account_public": + "xpub6CmhfSb8nkEYoHGyciiTouPFTUgfmh3BFBzjx4cog2g7PsmmJtKhPGBJMHRRimcEybPudyWpDHosdVetKQaGBzhwL1iENUHEmhD9ZAhCVWJ", + "address": "LPKq82YpTnM6pvx76ocEgUxxZAS5yWMoHy" + } + ] + }, + { + "coin": "MONERO_ED25519_SLIP", + "seed": "89a07f2a87844b648f7c79c8ef15f6f0db55eae9738241b66f130754898926dd", + "master": + "xprv9s21ZrQH143K2rWFnWibFQdjs8MGQVSSAuMiAKdmEy8F1JCXi8bjpsvskkYPoCRiuQFz5f2FD1cPuxmBgwC79kq6Ebkt4W3oqJhFfimjVHx", + "master_public": + "xpub661MyMwAqRbcFLaitYFbcYaURABkoxAHY8HJxi3NoJfDt6XgFfuzNgFMbvJf79LPiZ3iMNtDVDayEx9o2Un6zuxBmB36DawNSiFRCLgbSq5", + "coin_private": + "xprv9wKZpZTUCXkvNBEGKoP4VZ5a1LrfQYydw6d6Q4JGPhLQuvrwmafmEoXKeGYC1unRQcV4rYXexUFdQq3ZmKj3VQvCzk5yympKw4rqMjhW7PH", + "coin_public": + "xpub6AJvE4zN2uKDafJjRpv4rh2JZNh9p1hVJKYhCShsx2sPnjC6K7z1nbqoVRv9W16Hrn27SQX9UD1DDPs63HMs4bZXk7tRHdzgKdZuBVpksbw", + "child": [ + { + "account": + "xprv9ygTzMoaw1XoBcgyNnvficPE6vHbEkZgZ41apdSdQqbkCnC8KeY8WhvXjtKMCgQKUhh7Htgn1NHjjd6Gp21erCaEeEthmtj8aH4VMLbySr3", + "account_public": + "xpub6CfpPsLUmP66Q6mSUpTg5kKxex85eDHXvGwBd1rEyB8j5aXGsBrP4WF1b4WRUXj7vEVqzYbf1hcCkdD5HhBJ4dKsvS15t32Ags8KKMQaGkL", + "address": + "47icyfb2ib3WN54FBsRoyiXMQtceY1b8a6rf7kBM4heA3gEazjcRYF85JDf4xXbPfz9SmJ2Tov6PdM2W9RVEtRKs4NEpAjE" + }, + { + "account": + "xprv9ygTzMoaw1XoECh2AUprcPeoN32A15F1yKbJAY3qzLce8WpXsRVzvpDmXUisieAYU28Z76zoPMvYRggo2xvQJr8qn5vbdLWv9EY7h5sLSNg", + "account_public": + "xpub6CfpPsLUmP66SgmVGWMryXbXv4reQXxsLYWtxvTTYg9d1K9gQxpFUcYFNg2uGWf2fRTVQg9qgPanC1kXJXPNY2cK1qdR7FmkCACxRn19fys", + "address": + "48cvhCgSpuRdtNxKaGzrTiit36yPeEUruKuZoMdA7cPTM75VEdiPKjYfNZJniAeBnuRR5dkuQwsQwdwYpmpqfpRq3hqXBZp" + }, + { + "account": + "xprv9ygTzMoaw1XoHSK5skoAiUzQ4MjHFHXwBhoyzTM8hNFpTvBM2nrqUiHNxkt3pJknY9TyzSGWLRYneK9uZfzsr6TGnnw9ZPNDEcss2vdGMsJ", + "account_public": + "xpub6CfpPsLUmP66VvPYynLB5cw8cPZmekFnYvjanqkkFhnoLiWVaLB62WbrovbU4J4vpzkPjAS5VVopm9yAHYLrYKLTfaL6xBwE6fTWo9JLm9E", + "address": + "483UVe9cwS84Brfz83FZ61WZVHcv9biCQNgNfJUdLFrha2PKgKVTxAnDzS7bg8UXbJUJELBwEdp5yJ16jbX3T6vDRbJ8HWc" + }, + { + "account": + "xprv9ygTzMoaw1XoK5PhXA9dgjMWwCjjrzPWyf5MCxtd9tZRVAZd1SvEFYJzSXdz9YXrLWStf8NJatp594yuyT1vYKppSAF6fjqby3ye2TjXctF", + "account_public": + "xpub6CfpPsLUmP66XZUAdBge3sJFVEaEGT7NLszx1MJEiE6QMxtmYzEUoLdUHirXC9CeWboHA9JiqgU2LXYsFkV2vnedLWNTN8FXdzbudYnCTxv", + "address": + "494eVVq7gj6EstspXDzjCwW9c2dGdWnM7PZ6fDaeM7xXUEM4522FuTcFa9Gr7V2Yd6eBh4CwvAtXKRaY2stxt1EE67Eoz4B" + }, + { + "account": + "xprv9ygTzMoaw1XoMQJtmDzJPyQvHxubtu7uxrMXf6vrUfV5BZ95qRjmvn1Ne8ebqyJ3NgNBvU8rNWVK3xdeK8ZXXyhGWpZbd1y6nq9n447topL", + "account_public": + "xpub6CfpPsLUmP66ZtPMsFXJm7Meqzk6JMqmL5H8TVLU31244MUENy42UaKrVLF9b18aFRam81T3EVWGGbKF6cuVWW6mNonNwce81peNCGdPVAv", + "address": + "41hhtPhGpw8hwgzsDFZECo6GY7hMRKh8wBdRRVB1fTWwK1SSsZbU6X74f4fpA12Rhc3UFZkFvvZvk9NtFHhVecQu7qGan6u" + } + ] + }, + { + "coin": "MONERO_SECP256K1", + "seed": "2c42c427297f9ffc920b25e87735cda300c2448a276fdaf0ca90450be80265da", + "master": + "xprv9s21ZrQH143K2ViCt8HbgUjuuia3S2y9mpR93q7cu8kxUTEPBiXZrrhhyEc9K1z9JoMW1svHvCymoPPkdrnACr1WgdN8BKGRhVCUiCgcMTw", + "master_public": + "xpub661MyMwAqRbcEynfz9pc3cgeTkQXqVh193LjrDXETUHwMFZXjFqpQf2BpXUofn1LCQZxX1SM6aVSrrjs3j6v5i8CXVz98gGn58KVDcKXB4N", + "coin_private": + "xprv9wjjb2rBSufAf3HeBWoyynrkFg3sRgb6X2TrGLEQchnJe1bKdz4EDoNHZVkixSJ86Qn7unXAJa1MJeyyMFyF5bPdjViH7quuaW7AxCtaZhX", + "coin_public": + "xpub6Aj5zYP5HHDTsXN7HYLzLvoUohtMq9JwtFPT4ie2B3KHWovUBXNUmbgmQmJMuz9G4czEy5CPUotNqdNS7nEBGq3r8GNwvFiSfXn8uJZy5kK", + "child": [ + { + "account": + "xprv9yGLu3rUru26WRexR18T47P7HmC9cL9Wkv5CwZmbtsFXGF4sdL6ZsTZPx6AYYjtEXSNFUqvXsshWsq5ei1HZ4Da3DADGC1ddMUVG9UVDdgf", + "account_public": + "xpub6CFhJZPNhGaPiujRX2fTRFKqqo2e1nsN88zojxBDTCnW93Q2AsQpRFssoPS9ZvQDxwS3h4zCZREDkD5jQVNBKtXt8cTD5Vxubzu4LoXJtQT", + "address": + "4A2HThjyb8RG4rUxUKsnwJ3eHuqGCZtaJYo5jFjLozUfKTgQSeXkEyg42HdNVNAMwaJigjc3XeLpAeWCqZjV2aejRYz6oLW" + }, + { + "account": + "xprv9yGLu3rUru26ZzvgmaP3yPFeJKERGj3gVk7o5MeChrYBfd6aiQNKsQC7pr763eAHzkUSRHu5GLFyWToGJRPYzSKK4KHCDKqe2gszgrNmXqr", + "account_public": + "xpub6CFhJZPNhGaPnV19sbv4LXCNrM4ugBmXry3Psk3pGC5AYRRjFwgaRCWbg7ALrKjigbsYucppWDW3u2jGRjcoy6HCtZ8zT4C5R3CyJzSL9NM", + "address": + "42fw13wJeLNU3RgdTryzikDyP5pgqJVYpChHPLaeN7b5AJEHMxLHccKXu6SE7fkbZh4vB3AmSTJ3gNwf6UimMq4f1iW9GbX" + }, + { + "account": + "xprv9yGLu3rUru26dZjd6dSDZiSADrV8qakVmpTwTck5XrgffeCXGPH3wXp4jdn9PGhgVa1Z9mui6a8Aeu5Jdqs3AEUTRr1iuDxg8fjCbtX9JYS", + "account_public": + "xpub6CFhJZPNhGaPr3p6CeyDvrNtmtKdF3UM93PYG19h6CDeYSXfovbJVL8Yatwk5ck75vy8hQyyUYLDpMM1ZZzHsZnFCQKQxftZarZH1UvCkRs", + "address": + "49xpcaqU4NTd6MweSUo74nj23mGvM3L4BSR6XBsU2eZoEKgq4jyqUCHSFxcbzpzc9TKR65Y7z8STU9xBFgExER5bEMtnPHw" + }, + { + "account": + "xprv9yGLu3rUru26gDdpabQi9fPmuJKyLpHmMoWT4iyzr3Xet4erwbXmyF1fSp7zYrYSWZTdVDjwcLiyBVictzCHFKYLrAwMGAqrw3njqu5PcwK", + "account_public": + "xpub6CFhJZPNhGaPthiHgcwiWoLWTLATkH1cj2S3s7PcQP4dkrz1V8r2X3L9J7TLmWge564uYquZUYweVppzwjCvZPGW2L1vjkw5dH8xMExkzUc", + "address": + "46k1dsmg7ZhEaiLXv9D6YzFG5oCkKkCsefhfK7ySwCWy4fmJk7LKVsvAhHdDCsJZwDUVTETVvJuj88nxQSZP5BP9FN1LYq2" + }, + { + "account": + "xprv9yGLu3rUru26ikHGkFAZUVKLyqLHg1BnLLvU69cwB4GSF1xyksHQQbCq4HJo1kkSCHxFCPZymzJvD9GKhCgsTLATgjGG2fsqzaPzhGXrGYP", + "account_public": + "xpub6CFhJZPNhGaPwEMjrGhZqdG5XsAn5TudhZr4tY2YjPoR7pJ8JQbexPXJuZp2fXADnuekCFL4Z1Wnvd5bgDPxwyY29qtEmSpt9uXgeKeRfa8", + "address": + "43BgE2EK2PPPKf8hrpxMuifqwizsaf1hycocRSHAD2SvgdMqC2GawheLRrAGCdiKmDSN7ThQ1qUYBCPFfvw1xUVoSA1askv" + } + ] + }, + { + "coin": "NANO", + "seed": "45dbe3a39420d94a8d143872e2cad3559a32217130909e347b0cb57025f68e88", + "master": + "xprv9s21ZrQH143K2Ku9M2cxuXVfAN7oo5NJuc9EGjgP2wAZFjqiP8dKszNa5So8SSTddGtwoLsXrmByWkf3FPGqrHWtsEXLAnk6hR8ER6pstKt", + "master_public": + "xpub661MyMwAqRbcEoycT49yGfSPiPxJCY6AGq4q585zbGhY8YArvfwaRnh3vcVU8WuBxDYRB9JEf2c7G2f169NFNR8mYf7GCsSCUo1N83PC9oS", + "coin_private": + "xprv9wGGDepiHnvPk6EWFQV59WaomfzqZUp6yZUApzfAhg166Horxs7WkATQFiBQRaB1NjQfi2oGimzVZg3HWbpmzcJqctC6XnvFPLv7xYKci1v", + "coin_public": + "xpub6AFcdAMc8AUgxaJyMS25WeXYKhqKxwXxLnPmdP4nG1Y4y691WQRmHxmt6uRPwsVA6CGZGvbh2ABvLPTxynpvkBt5RtTWboR2UW8GyD6Bxib", + "child": [ + { + "account": + "xprv9yLFAURrgTghkzoS5p2Du6fGKxdPEmGt6bNsPwdCeYwAydpFNGnXya1tt5Mtwp7yG371fkXHb1QxwWCC619Ba9pEehvEe9jZD5Vux4qZt6u", + "account_public": + "xpub6CKbZyxkWqEzyUsuBqZEGEbzszTseDzjTpJUCL2pCtU9rS9Pup6nXNLNjFkK3hdV5pFXhQfbWHULo1U1PFStstsVBKJmjpQYsabmHLYeqa1", + "address": + "nano_19io3kzqnxeo368yhir8awad35c55nj9x1nzsa96pyf1ztw8z7nmrtm65qbd" + }, + { + "account": + "xprv9yLFAURrgTghnVXo6TDA27etjJrUXgrM3tX8nMT5GCwo4nv9zQ4HAxHSQTA4SnkUpgadNo65Az4GwxnDfnUGVgiAiZBtAx6tWEvau3syhHe", + "account_public": + "xpub6CKbZyxkWqEzzycGCUkAPFbdHLgxw9aCR7SjajrgpYUmwbFJXwNXikbvFegENiZzepxRY5MaiDzKg8NnemR6EKMsNTCYRvmPeZMHdTRJJkJ", + "address": + "nano_3fm7s31fn8q41gtd1g18m5b3gnwxgcshsg3q9yinmdoco4j5shsdp4g9jpnj" + }, + { + "account": + "xprv9yLFAURrgTghr45Pr3VsR3GgyQMGLUm3Hg7E5kRjWm6hg5XnWKSaDPhBvVXxVCSXLphgkL1k4BoPGS2J4hqpa4CsEJuDRphkxNzsz8yQDVA", + "account_public": + "xpub6CKbZyxkWqF14Y9rx52snBDRXSBkjwUteu2pt8qM56dgYsrw3rkpmC1fmgnorZegUk6dw3b3oFttdZ4GQ39FrhLzKffQTvdCGYWybVaZa6z", + "address": + "nano_3nw79wur9ax33qnmgt7ys9cgjwmsyr3ipkp46d1c68argp83d87uh6fhmy5j" + }, + { + "account": + "xprv9yLFAURrgTghrpJT57A7EhNk63SCLhrJCMAcggNK7YqHh7j6fbBz8sSwoaTWftr1khURuHcTrR9FLxNuDrMtpmbxuAJAsJacSqYRSU5ZA7v", + "account_public": + "xpub6CKbZyxkWqF15JNvB8h7bqKUe5GgkAa9Za6DV4mvftNGZv4FD8WEgfmRen6Mk6eH7Ufbz8ovrtrcRdUAijCg9gDaSj4bjSJTbgkA4ZmFVGM", + "address": + "nano_1k9dfkbhybsfn8xhaobmd4ba48q145ryyddgok7c6symck8waxzsfw6yip4i" + }, + { + "account": + "xprv9yLFAURrgTghvqQQ7TcYJmkUgtTqG1jpRBwLD56rBLgv3B68nFm7HRBAqbUCYReqZV8ZEFnmfsLGnKM1dR45oHZczV89ERHkrMmFKxEBTqR", + "account_public": + "xpub6CKbZyxkWqF19KUsDV9YfuhDEvJKfUTfnQrw1TWTjgDtuyRHKo5MqDVegnCwntFxYPLQ2KacjcDQBPiLfM3gbEBaThfffPSdBkJVmYH3s8y", + "address": + "nano_1m8kb1fza36t3e6smr3fujj59xub4ry1zdaohb9q89xe336fnh1etao9mo4x" + } + ] + }, + { + "coin": "NEAR_PROTOCOL", + "seed": "4c08489f7649f5aca04f5b45ce20bfbcd5070a2f93945f78bdb3019eb427f3a2", + "master": + "xprv9s21ZrQH143K2cJubmv44oJR441LngFtyzx3KgN2ZhPueZoodapHceDnPrjpjv6AXMqcZcGsAH6TXwJMUdmVSeDVeEb6HBfkNrSEZSjdt34", + "master_public": + "xpub661MyMwAqRbcF6PNhoT4RwF9c5qqC8ykMDse84me82vtXN8xB88YASYGF3Fo77WWpV3SXoz2muE3XtyvQtvQXHZuqhHBPtgUDCzbUi7P5ze", + "coin_private": + "xprv9xcdjtn5GwkzWVBTJqiUxkWseGJydyj8t6fTf3b17FcZG8g6W7dLxSvmEPiGjNNZ2dfEaH22CeKeC2rCwNwsWnyTLabQUUJFNagxcv9VcyP", + "coin_public": + "xpub6Bbz9QJy7KKHiyFvQsFVKtTcCJ9U3SSzFKb4TRzcfb9Y8w1F3ewbWFFF5c6dRxApbAhJoY1NJHizu5ZwdBR8rPNJYbZWm59HSVx8vHCqEVp", + "child": [ + { + "account": + "xprv9zWzahTxJBmsiRL2Vf3B5oGiLg53a3vkZxsxhj5adBqktSEdfHY1BLsYhGpgb1zmjZBx2TLESSRmJStuYbbi1MbWNcYhFhKrQDRisRjmrmN", + "account_public": + "xpub6DWLzCzr8ZLAvuQVbgaBSwDSthuXyWebwBoZW7VCBXNjmEZnCprFj9C2YT8KmwA8oBXrfMBtpHhyZ5S4WTz6HvYwH7FuvvXUMuH4rm9JSJ7", + "address": + "2c5e1c4d8f9af0404207f6c13913eec236213d31c534af87e801d5d15416d2e2" + }, + { + "account": + "xprv9zWzahTxJBmskgeL91KV16Ds2UidB15wC3m2Qd5yieLVBh23TEHkz6ia3MvSz9x464KEJFvCeK8oKAZQ9qQNkvyk1rzNStemwUwG1eNieq1", + "account_public": + "xpub6DWLzCzr8ZLAyAioF2rVNEAbaWZ7aTonZGgdD1VbGysU4VMBzmc1Xu33tXZjBSgVp4m2c6V8WkmYbKVuZ95bpsD352dG5tr4sjqctNdGXCC", + "address": + "1718467d956a93d54a1ffd875798990f5adf7689791fe220e29269a57d03394f" + }, + { + "account": + "xprv9zWzahTxJBmsqf9muM15kahQExD8ncZYgAsJU9UUZNKoC3FNHuh24vANqGxAHoa7fkDMsQj3TjHtbJMtTY2WFgF9CSdvNh75nqPnYHT8Eit", + "account_public": + "xpub6DWLzCzr8ZLB49EF1NY67ie8nz3dC5HQ3PnuGXt67hrn4qaWqT1GciUrgTQmxxURapuoV8ur2KMBF5b1fAKJfMYjsgMYgfvCttgQNGhd5sg", + "address": + "1d9b5ba6b44be7422266bc0e58cf3121f9ed50fe3f09b2774d680a0c88a2fc19" + }, + { + "account": + "xprv9zWzahTxJBmsrjda3fKNo5SzzMiRYyBCm91juzkijKHyiy43gfzkgKUxKXmQpYpcWRNydnyCUBVV6WFxd2pTCAjmQAyiQpsAgRzAm1VfN9b", + "account_public": + "xpub6DWLzCzr8ZLB5Di39grPADPjYPYuxRu48MwLiPALHepxbmPCEDK1E7oSAhie2ZkD1CHYS4jLiJ1fSgux6rJFK5UajmbvMvNDEUyDvKaCmsr", + "address": + "1892a2d2ff929a48ef829663e93c0f66d42be9219cc98cd5ecb7c1dba58db65a" + }, + { + "account": + "xprv9zWzahTxJBmsvbuEyoGb1kjaVE28k891b7wuApZYvE4yMiCoZHjcYqB5KgB3ZFZ7AunyFQgyXvZn6bPxD4ddCBuBUHqyuLrdBS989pL8ubh", + "account_public": + "xpub6DWLzCzr8ZLB95yi5pobNtgK3Frd9arrxLsVyCyAUZbxEWXx6q3s6dVZAt7sSb2o84UzMvm78FN2FHph8kVPDFyQVCmt3p8hAxaK5jEQ7u3", + "address": + "b8566c42674e7a59bf1859c1a677ffe12d0ec2e452240058719da3b243e438d0" + } + ] + }, + { + "coin": "NEO", + "seed": "902ef0525479e1767337a7b8191eb3a67edca4c58694f28f0484582035dc9f43", + "master": + "xprv9s21ZrQH143K3kYHfWoKPUSri5kRPXrqagYTf7F8hxwQtVS54CRtVv3sTWQRoCoe28D8E72sMZfzRUjr6ukLUAJL6BK6iFypb4zom8nuNQt", + "master_public": + "xpub661MyMwAqRbcGEckmYLKkcPbG7aunzagwuU4TVekGJUPmHmDbjk93iNMJnVQp9tQWJSEXqSpqyN6se49TZ1rP2XbVtPkKovYsf52SRNLs42", + "coin_private": + "xprv9x3QMfeRGZT6azWZ1AUerQxHFxmDhjR8LmPMQ7ugZH8aWxASn2PYzgwmCyTPcmrHSsChuLRMuDBQiv8BZ13hshXiLua3A8jo44MFq4ZoUSr", + "coin_public": + "xpub6B2kmBBK6w1PoUb27C1fDYu1ozbi7C8yhzJxCWKJ7cfZPkVbKZhoYVGF4GQCcn7gZA6P2jDCaJZjKaz6EN9jaSJRd5PrNprTZJC3fYny9nH", + "child": [ + { + "account": + "xprv9xpkLzjnEQGiM1gEbjV975Rh3BMWR3CMveevFECbMgYGrLU63Jmn73oLgUSmiZ43P9CHLHQUUtYmRR8Aaf1fgUQFycPLMXzUmqsnfJpzegk", + "account_public": + "xpub6Bp6kWGg4mq1ZVkhhm29UDNRbDBzpVvDHsaX3ccCv25Fj8oEar62er7pXm5kpoy4ny74HQpXVXSuo5hmXyftserWThquRHqMby8HhbrZ2aq", + "address": "Af2hcWsjzijnWRHFTMTVEv6523PDeXiFFf" + }, + { + "account": + "xprv9xpkLzjnEQGiPGAsBuWTyi8BkG3YjsxSYeBPxxU9t8R8w7iTS29qLYmLzQf8thwAkoom81whNsgxtbunUhHxSiJKKtbxL222eFPKn9agDXS", + "account_public": + "xpub6Bp6kWGg4mq1bkFLHw3ULr4vJHt39LgHus6zmLsmSTx7ov3byZU5tM5pqgQjPnhxWJcMkMFE7HJaZLZ2rMomjnwXEecgNFGH668jnfs7bM6", + "address": "AGVGtsibmeHRYSYHv7Eby1gbfhhnRutBfy" + }, + { + "account": + "xprv9xpkLzjnEQGiS5gqtKE38wQ4GCKRg3yLqqjwGW9aY3XsLWwrQQedBF6a85KriSfGA5a4Ha4S6MypeM89V5spF5SsxZWGGceVD57BkMtCkLa", + "account_public": + "xpub6Bp6kWGg4mq1eZmJzLm3W5LnpE9v5WhCD4fY4tZC6P4rDKGzwwxsj3R3yNjxpUPKKykF1VfTcRh73jmygsWuP2qLfimBNKbycnwpqr3Y57L", + "address": "AL6XhX2shMgnEV8McdsWn1RbveJiVXestq" + }, + { + "account": + "xprv9xpkLzjnEQGiTgcrGbxi24XUX7BHqbWyj55Jer1sv5EHioKPS9JoTXYXmjeaj7fwcL11gpG2XJ6qrcx8HwzWtdrweQo8NoH2PYBngSbfKvE", + "account_public": + "xpub6Bp6kWGg4mq1gAhKNdViPCUD591nF4Eq6HzuTERVUQmGbbeXygd41Ks1d3DB5jr4TkeQhAZCeeGNrYH5VPL2UML2JLMjfZDm91aWj1JjqkZ", + "address": "AZ2NCSpAQBEXthoLkRY4JegavQCWQpgkh8" + }, + { + "account": + "xprv9xpkLzjnEQGiXjwjEazcGMesWPRhLfYc1NpsgduZ9KpkSRoY8Q9Q3HeJ2KuJTLWFgUPnjofeUrb6r3V3so436FMUwyFiUyVjAAu1x1WfcyB", + "account_public": + "xpub6Bp6kWGg4mq1kE2CLcXcdVbc4RGBk8GTNbkUV2KAhfMjKE8gfwTeb5xmscGAX8m7LwYZqL5UuSxpnaUcbtrDuf5V7L2hm7nwyPJfn6MeKbE", + "address": "ANJFzka22H86d5pTgZ4yDHmkMNtNhNGouL" + } + ] + }, + { + "coin": "NINE_CHRONICLES_GOLD", + "seed": "a22273f19f4b68df16512f842e1ad0a2fb34316250388edd0056dbd77fd0b79c", + "master": + "xprv9s21ZrQH143K3qoPzfZzVWLvwLreqvfke2ev8LJdNpXxPaPRm75TxNRZzo1GiJ7N9dSQ4zXsYPJs1YYvBqcwC81R1wPcJWN8ZkNtSHqor26", + "master_public": + "xpub661MyMwAqRbcGKss6h6zreHfVNh9FPPc1FaWviiEwA4wGNiaJePiWAk3r4ksMuVFvJuYbQca4xgt6dHdLKw2ymqmXvRak41an6AobZRohqx", + "coin_private": + "xprv9wzw8omcybYqsLs7Cu9MGjRJR43EgEfe91tUBEc9twMkBPHN1Jjq1fDq2p99ceWzxhniEpdfPB5fVQqBt22ev4Wqq6mpiiRDeiKq1Z3zxmX", + "coin_public": + "xpub6AzHYKJWoy795pwaJvgMdsN2y5sj5hPVWEp4yd1mTGtj4BcWYr45ZTYJt7LNPGJx5fk3Ee2nUwNazE8Qd8qZtyqph1FFVnJBDdspPuSXo5m", + "child": [ + { + "account": + "xprv9xtNwto3ofE9Xp4d1qFvG22j4WwXP9J6r1avruKsTfhTokDgAJiTFYYq4UGVD2JnMNdSo8AksCbab5uugKcWdZ9duj8gnDaRAneep1UDaf9", + "account_public": + "xpub6BsjMQKwe2nSkJ967rnvd9yTcYn1nc1xDEWXfHjV21ESgYYphr2hoLsJui9CbozRyzTbZsQszi6ibxG5bfpSuoqMLGoCXqWv6DRyvuVUFkT", + "address": "0x9C3807724781aC8a46A3B2C7C42E958283557a7a" + }, + { + "account": + "xprv9xtNwto3ofE9Z8Au3ip2BJcuL5hfboB25bmXSuoQLuYwhz5MvpBFUY7z4yw9GNuKnBVjXYmSi9pdoVsrgkt1gQvJ2ZbjqwxMMM8XqX2ryz1", + "account_public": + "xpub6BsjMQKwe2nSmcFN9kM2YSZdt7YA1FtsSph8FJD1uF5vanQWUMVW2LSTvHApN63CnHWMq6915BvZM13AvWhjJdamWfzMxWnBQcD9XvfHGHX", + "address": "0x217D857a6734eF1890635c97C8155EF5ae90D90D" + }, + { + "account": + "xprv9xtNwto3ofE9cZ8LwAqctXvz5RR1UoqKm5oJiHKXpEEyxF5Z43JeAFXjKQitqGqamnmfNzf7ckYdNwhaySPDmhmH9nC5SVkWdNHPGEsdivj", + "account_public": + "xpub6BsjMQKwe2nSq3Cp3CNdFfsidTFVtGZB8JiuWfj9NZmxq3Qhbacti3rDAiKuK9JEBcsykvvYLdzpmmApfrweKa8QAABUM5UNboSkvtmciJM", + "address": "0x0D8e154D1BAD71f7a0889b0FbCeeDfe3743B5Db5" + }, + { + "account": + "xprv9xtNwto3ofE9eZLE8Sziv49MSZz6pByNQDAn9BVKWFfGJKPqPE2nFiesrufahdpjaPZDy3AxQC28AEVdJomtPZ9Qd8xTvzeVgFRthbKLxbd", + "account_public": + "xpub6BsjMQKwe2nSs3QhEUXjHC65zbpbDehDmS6NwZtw4bCFB7iyvmM2oWyMiCMY8cVRBVSyTeiaCMX9k46dbeSGGNMJkjScNABQ6jAfVX8TSwZ", + "address": "0xD542fA0eb6197e3f2295233d8A1689b981499a31" + }, + { + "account": + "xprv9xtNwto3ofE9giC5WzT8XmN9j3FvwVDCVeTAqnpv6XrcxK6STmUSgjG261KL99wvYig87jdRLMN4poVQuiBRiPNNdMsEVkYW5T2dF8ARjap", + "account_public": + "xpub6BsjMQKwe2nSuCGYd1z8tuJtH56RLww3rsNmeBEXesPbq7Rb1JnhEXaVwHWGx5PKtzWZu2YBCWpM3EJN2HQQgqw2MtZqXov7g4o9wW38gh6", + "address": "0x60Aab718fB7B1AC26fC007533d5336Ec9aeCB609" + } + ] + }, + { + "coin": "OKEX_CHAIN_ATOM", + "seed": "5057477178863f5e8d94110253c79c982e73e50eeb9af22a86c8ea7fd7c153fd", + "master": + "xprv9s21ZrQH143K3GhstXNvRgNWwPbHgJh7tvTtE3VrvwjGkh9T7DGSJxBvhfhqwZ8eEJ48zEwpwgryE4PGBd8VVgTHsZiP8gmKh2KUVkYCWsP", + "master_public": + "xpub661MyMwAqRbcFknLzYuvnpKFVRRn5mQyG9PV2RuUVHGFdVUbekagrkWQYzPALUSJfsFjSWfJKhJ5N4kjVtyYHdL95ihbrVZrWxUNqFUxnte", + "coin_private": + "xprv9xFTkta1bkAKbmg5XfnC1hRe8wakyn9WtfzZKnWh87rHXg4HtmKgw2hNeZYVxD7Hp4xULsShJT3HENyQg8Y1rWffTtRfqpEjU74fv4KQRFB", + "coin_public": + "xpub6BEpAQ6uS7icpFkYdhKCNqNNgyRFPEsNFtvA8AvJgTPGQUPSSJdwUq1rVrgkmD1jwtpn5o5TNVyPgkc1Yepb4rFhJ1hAkxDwknQqz1mWfud", + "child": [ + { + "account": + "xprv9yLdyfwLEMxhHn7LzrHdWiYPH2NkbfW8bLHQbFAGULouXNbTwkUoLVFfVPba4ZsUsnftuz9yXM8nAv4Pr8MEXJ4w9p446xvjnAP3rFuTv4f", + "account_public": + "xpub6CKzPBUE4jWzWGBp6spdsrV7q4DF18DyxZD1PdZt2gLtQAvcVHo3tHa9Lg7yCB2kMeGMTC15tcGdaiW2ErvT28vCkXi6jw1CQGGzS73AgVb", + "address": "ex1qpua6g9pa9alzgkr4d0vvwx6rnrsfpgsc0qx5z" + }, + { + "account": + "xprv9yLdyfwLEMxhLMXUtRjRgifvBjfHyffhNxXu9wXbmTt7h1QwxXnrCQzguDr7ZkeaCgVj5znf1Vn9jBSMDFHFELaEgdDzTF3DrokDfteWdNW", + "account_public": + "xpub6CKzPBUE4jWzYqbwzTGS3rcejmVnP8PYkBTVxKwDKoR6Zok6W576kDKAkWwwrfvcSfzYAqG4v6uvaxGk6FHzH6KyfUajVBDWpTK7aHMSYe7", + "address": "ex1gfyk4w6yz3l3wjv2v8gf9ruwsefhyguhve0s3q" + }, + { + "account": + "xprv9yLdyfwLEMxhN75RXnynVWMiz2bezertf3bBD4KuGJ3sXPcT7Q4s5p4FiYkkgGK7zVZen5CjhW76rxFi5asfuLt3NJBLNVH4rbEVQiLr6pN", + "account_public": + "xpub6CKzPBUE4jWzab9tdpWnreJTY4S9Q7ak2GWn1SjWpdarQBwbewP7dcNjZri3L65XnzeUChNxL4n5Nf93HSyemBJa1EAsgfvXmE8xuon5C8T", + "address": "ex16tx3acxuseqmvqmq695eraezejjtjmccrzq55m" + }, + { + "account": + "xprv9yLdyfwLEMxhRLdcWabushyfQon8AcmRoa2KRxMqGMN79e2EfXJ3oKMQKUgVpMGUtdmNWssLrw4XNo26tXcV1RgJ6A1mT1fPNvQnDfgH1mZ", + "account_public": + "xpub6CKzPBUE4jWzdpi5cc8vEqvPxqcca5VHAnwvELmSpgu62SMPD4cJM7ftAjpNie7WbbR7p6ekQq9e7MX2LGdVLaVMK7ZuoKbbUpDZA4CW9yJ", + "address": "ex1v5y5qrjwwszn50lezxjfkd806pasqu0j6ckm7e" + }, + { + "account": + "xprv9yLdyfwLEMxhT6vg1MUsNzdm66xCSscYSkfBYR1LAffrEgEGrfxE5M1bGvh2csZP8sYRVzvQnQNF5abpNKD6SF6duXv73LeVtyf7b7qdhMy", + "account_public": + "xpub6CKzPBUE4jWzfb197P1sk8aVe8ngrLLPoyanLoQwj1Cq7UZRQDGUd9L58EJPxBNTpjprarprDQ2HRjvasTYWx8xAmL2nTtRsNBKgtoyxYAL", + "address": "ex1f0w8sw4twwu38fj69mcju8wlvfwj4kvzqglh4p" + } + ] + }, + { + "coin": "OKEX_CHAIN_ATOM_OLD", + "seed": "e82dec161c460a05b1649f01244a9b68c950fcf26da8c887bb0d72953a9cd592", + "master": + "xprv9s21ZrQH143K2GEpvpteRiF8jSTCNDweXbEZMHscJ1WQtzhJepE9KMFupTLsWVF3EAvEADLy69qefFabxurH9wsvEMiauwwHi2C9aQVvKJ1", + "master_public": + "xpub661MyMwAqRbcEkKJ2rRenrBsHUHgmgfVtpAA9gHDrM3Pmo2TCMYPs9aPfjcbVx9jUit1Swku4gLYRR2xXoacReqtxn8wCfmVDerpWFmpcGE", + "coin_private": + "xprv9xH8D54Z9nrTuVNdA89YWAJMiFsEarfpvoQaGbnMEPd8HyNyxBijPQwUvfe4MWutySH32STcZDkbxEmHanqNoeP91gDQcCmztupsjSLdYUF", + "coin_public": + "xpub6BGUcabSzAQm7yT6G9gYsJF6GHhizKPgJ2LB4zBxnjA7Ami8Vj2ywDFxmxjXwzSCGYJ197JZtxZGsi979YfzDpMAKzHno7hseL2YEApx9kx", + "child": [ + { + "account": + "xprv9zNLbbzdJu9QFLeLx144SwWG1XaYYvWWrzYGaTAuhrhvQ7dY7bKM1fhM9Pn9Ev7kQVVo6CH6MVjpshM4aDzrhkngDZEyeH9UV6gfqMnFRvR", + "account_public": + "xpub6DMh17XX9GhhTpip42b4p5SzZZR2xPENEDTsNqaXGCEuGuxgf8dbZU1pzg1f1qqQNqkvJQYDpjhT9HS2C3TWbaLv8EwUnoseCy6coNbnp5f", + "address": "ex1y9wghw7k3ns5760shmy3d8ush42he97ntaym9t" + }, + { + "account": + "xprv9zNLbbzdJu9QHCGoZNayYSnPn7Y1i5S45rnGvk27rnuHeSweuYkqoLofiPm9Uo12mgFQXetkn1z2PCUmPYU5UsgGgDJ8aHfUJhv8aWx6KH8", + "account_public": + "xpub6DMh17XX9GhhVgMGfQ7yuaj8L9NW7Y9uT5hsj8RjR8SGXFGoT656M989ZfPpZjrAtkpJuLSKybcE772owmP4NZeNt81Qy9NsDTiAGQTF1D9", + "address": "ex1vw5l5tqjg5356k200plmf7le5xnqj0vyqq2r9j" + }, + { + "account": + "xprv9zNLbbzdJu9QL1NHB8LDUo6RGWbiBEMHg3pZ34rXB2KDzbzEo4yEjNsc9EXMBhJB8RzCz6tbdQ1AerHu2x2cJF5Tvj5kHrLqya8x3NJyBKN", + "account_public": + "xpub6DMh17XX9GhhYVSkH9sDqw39pYSCah593Gk9qTG8jMrCsQKPLcHVHBC5zVednw3BwycHzsEhPMuHnMJwnaJ6XBJaWumoLoioz6xy83YbP1G", + "address": "ex1zxa3lalhxzfruffawvgyzya5h5p8msv5wtkjy4" + }, + { + "account": + "xprv9zNLbbzdJu9QNpQuFg4VP7oQzpLyjCXUdpvEKNEXpJX9Ym7fTw7bFPQpdrc4GbApu1JWn5sDqymU7XzXdEmnw7G2WQw8AeziLFLDJTcz3pJ", + "account_public": + "xpub6DMh17XX9GhhbJVNMhbVkFk9YrBU8fFL13qq7ke9Ne48RZSp1URqoBjJV9N45ExgBUhZR81ZbPSePGrxsrTC8tsr9kYDc2QaEFRBjdkteXx", + "address": "ex1xt24hnws22a0evurk2jdx5uj0ukz5pe9mmevt4" + }, + { + "account": + "xprv9zNLbbzdJu9QQu7bnxT1SxRcVN6Tnra4mQ3y3rhxcQzHXoNEdj47aSzb3FfutR3Sxr3m2w1hPYH5xx6AkgSQKmSXAv57cHfAcPtpyEn3HXf", + "account_public": + "xpub6DMh17XX9GhhdPC4tyz1p6NM3PvxCKHv8cyZrF7aAkXGQbhPBGNN8FK4tYSGZHoc4w9zUtaLSpmFWwZu6W3enbB5XqDsMdjBA1sqw3quiHp", + "address": "ex1q62h3hyzkj7x6na6y4h59ag525gee80w43kl4w" + } + ] + }, + { + "coin": "OKEX_CHAIN_ETH", + "seed": "8d38c8bf6c59802304a6439b34cb43bb815bc7429abae6c1ae0ab08166811771", + "master": + "xprv9s21ZrQH143K2KzBiGBYmsZNaNertfg98jT1FnbmnU3T4MQw2SULqodmAYhVvjDH6syik9pTJMbFLocAeUk7UatK5ZLs3SUgEsBFGE7MJiV", + "master_public": + "xpub661MyMwAqRbcEp4epHiZ91W78QVMJ8PzVxNc4B1PLoaRw9k5ZynbPbxF1oJKpdbfNr1jcVGGw8qE355P6tSJcGTvRpSYtRTrvuNDaUKzRyR", + "coin_private": + "xprv9wYXmiKJGcQm1GTvCW3c24bPGJgMwuYcivvKUD27mqGK6QnZ1Mqgz4r5zL7tCSeeRVmGFUYuhznXeFYoGpUiVJxUrCM833amYybMAdzN8X5", + "coin_public": + "xpub6AXtBDrC6yy4DkYPJXacPCY7pLWrMNGU69qvGbRjLAoHyD7hYu9wXsAZqdQy5BxnAJr84Rm3JesJT9kJ1Z1zvunrdpCgtvRi5JnRssgBZU1", + "child": [ + { + "account": + "xprv9zB7nNr2w56HH3A54rVVHmqTaAqonjixZjCt7AGnsMz6dnABichrPMsA176QM6r8tH8uWC7ZTiRfdGjxTSu8uVp9amdwvagWAmhjfZLxC8p", + "account_public": + "xpub6DAUBtNvmSeaVXEYAt2VeunC8CgJCCSovx8UuYgQRhX5WaVLGA26wABdrMG2PHKUquGZM8RPxn2AXFvydpt7BBhi1GvS4RcNxcxUx3bMbBp", + "address": "0x6Bd5Ec51B87753cbe764a0C5E6af3B16084eFAA0" + }, + { + "account": + "xprv9zB7nNr2w56HKKdr4W9GLY8kVPrsZK3KJaqGPF2dmphqrQdvX2tpSEyhQcK2VRRtwnqq3Th3jX94eaifqdu4RmJiDtmSuLfvkSywLT8tZ9D", + "account_public": + "xpub6DAUBtNvmSeaXoiKAXgGhg5V3RhMxmmAfoksBdSFLAEpjCy54aD4z3JBFqzt9UnoJNmEEgct9oZJA78WgcrXRivNkxpRMco5TQqznajcoyU", + "address": "0xd556BfEd03B31758C05BCFb4C4ba83311F77778a" + }, + { + "account": + "xprv9zB7nNr2w56HPV5kxhhyKVYHjT7rGAYPm85ssfhBjJKsekA2C5DASsr8JD93qKST67RF7RDCoLGdvHa5DSVAdBUeevVBwt2HdCYdXEC2p25", + "account_public": + "xpub6DAUBtNvmSeabyAE4jEygdV2HUxLfdGF8M1Ug46oHdrrXYVAjcXQzgAc9TkJMKd5TZjRDeZDhs7F3JjoHRe1gejTJZ4gc3ifP43Fbcnb3Kt", + "address": "0xbC29602899eB13ad24Fb1a150F1831995A4c976a" + }, + { + "account": + "xprv9zB7nNr2w56HQ8e62W3nSXDW4NUpch6zf2NP53Z3L8oBiviP91z3peSgFZS9BLRvBUAw2ACDzfVVWxDvevSFVszCJ1gqokdhTyEUm3NEhHt", + "account_public": + "xpub6DAUBtNvmSeacciZ8XanofAEcQKK29pr2FHysRxetULAbj3XgZJJNSmA6rKqgAXV5se4wEiB5vgP39FUxanMRrEwBbAJKfe2txum1RU2agM", + "address": "0xC5C97376f8b88b860bd461bd2D62a5947D2fE4Fa" + }, + { + "account": + "xprv9zB7nNr2w56HSdKtAsRrv2eU3LpmqA8wP7LKxtuPVh6oYhMVMLm3u8BGhBLEk1NPN6wTjbmUNxTrZS4R6WLJshkferWbmGPA1VU5TzCkFse", + "account_public": + "xpub6DAUBtNvmSeaf7QMGtxsHAbCbNfGEcrnkLFvmHK142dnRVgdtt5JSvVkYTpodaEVTAbDsA92vw34FoRsnsn1PwpFpKcYoH8xXChUzq5oaXc", + "address": "0xe2f5dFA3DC901dFA67Ca0F8d0ECaabF5dC1E4Ccb" + } + ] + }, + { + "coin": "ONTOLOGY", + "seed": "b9c9118075e9730986b04e8a7b7f5d4ef07552429aacdd496d60eb9b4f016ad0", + "master": + "xprv9s21ZrQH143K46FCQnAT9jMbYvvap3UcJkZfaaxEfMHkbQDsy9FP1vnGEMESThfAuf1RGvJqmamoDtqgugUwQhvg9wUywWfA9pni54tbEwt", + "master_public": + "xpub661MyMwAqRbcGaKfWohTWsJL6xm5DWCTfyVGNyMrDgpjUCZ2WgZdZj6k5c4D2mwJWduUwKc7wq1yDEinKTt42MsqoTgFbuVG9yifNPSvKwf", + "coin_private": + "xprv9xc2DmjUr5xDm2RUERY9uJtzxb4DLUimwBtU3pn85m44oqPH9xnuiFWiyLSQYAkZmwgofa4P53W32syv8b2KCjWQDARQdAJAwk9eLAV4b2R", + "coin_public": + "xpub6BbNdHGNgTWWyWVwLT5AGSqjWcthjwSdJQp4rDBje6b3gdiRhW7AG3qCpc94yiLouw6zaLhTqKW5oVJ5qHifC7bnifBaujnA8S1xLY8b4x7", + "child": [ + { + "account": + "xprv9ygLDD4LmtFiyP3jssaBRwaZKBAwVjvkP5r1wCLm4TAYU57uNhRJDn5QPThExn3Mze94DY7ZWdgVB1QWfMFPouzbpA25r7Pxfuzj44UcPt2", + "account_public": + "xpub6CfgcibEcFp2Bs8Cyu7Bo5XHsD1RuCebkJmcjakNcnhXLsT3vEjYmaPtEichBk6Lv8twUFCx3ke2bbrSBcmBd5xpAr5ax748k26np4CYiPK", + "address": "Ac1upC4K5tofxU88x5a1uVzG4nFm6eQeTv" + }, + { + "account": + "xprv9ygLDD4LmtFizryH4bCRsC5f2NhdeCYERLHND1EB665pZ14gdL5diuRR9oifZ72u14gjmiyvBaxUmn3erK53HEVMa4wNRmyBM2KyJDmzyKq", + "account_public": + "xpub6CfgcibEcFp2DM3kAcjSEL2PaQY83fG5nZCy1PdneRcoRoPqAsPtGhju17Errxzw1r3op86j6PdoRWpeRkmwG78SZSBigUZNmBGhSkMkT3B", + "address": "AZFqkbt2TrY7dw7tT1vrEjV1EMJd35UDwo" + }, + { + "account": + "xprv9ygLDD4LmtFj36eJ3BE9cKgG7rCLUNzUEjExDDVitnmHz9katcLtB3u6KcMDj6oq791q6AGruKBuu558on8Y6TapScuaMA16sYrMQddT3EQ", + "account_public": + "xpub6CfgcibEcFp2Faim9Cm9yTczft2psqiKbxAZ1buLT8JGrx5jS9f8irDaAs5V3VxQxGAbKZHSsuKBM1gj4q4hKNM8BoXmhua9Ppzy7ubaLvF", + "address": "AXso8tR4Tq5bPf9wxRCbQdUoYn7PZQQN7W" + }, + { + "account": + "xprv9ygLDD4LmtFj59jdp4zBTHZDmE5F7wTMcaQnjT1woLw6VE9NR1VjMG2w28fEZaT8raipjXNXGHiwZfCcgDVrRe9JCxccon2T2fd8ENpcH2f", + "account_public": + "xpub6CfgcibEcFp2Hdp6v6XBpRVxKFujXQBCyoLPXqRZMgU5N2UWxYoyu4MQsNi1QjLZcieD9nSL3tBJHsjzd28DTZoNUBsE8xUuKoNyhtKuGE7", + "address": "ATWCTe3226ttMS3PsFViHeerKYWYVjixuc" + }, + { + "account": + "xprv9ygLDD4LmtFj8vTNiXcvqACpc9dyMZJjQetevs9Lv9CQDCQvaKy6e3yzvJrpkAefrP4dJ1X74wy9wttMRcdnVunignxFfcSJHvES2aGtEsh", + "account_public": + "xpub6CfgcibEcFp2MQXqpZ9wCJ9ZABUTm22amspFjFYxUUjP5zk57sHMBrJUma7QfGX7DMYYBYatqDSwhWuvPN8HeJYApzgReWLMvuAAYeJgFtE", + "address": "AKNNLPpsT7zuSJhpszNMy3tTee9rVnza6K" + } + ] + }, + { + "coin": "OSMOSIS", + "seed": "016d6ca33de419d57d946859b226df9db318e34069b99865893080c7f82b5cca", + "master": + "xprv9s21ZrQH143K3PTsDUenxcexSS23r8myi4ME9nynexoQpunXJ2oKw5ayZq8ThXdrTMvtJkCAT7gZiTLtton9LFayGHeF1v619SdmG4x8cNU", + "master_public": + "xpub661MyMwAqRbcFsYLKWBoKkbgzTrYFbVq5HGpxBPQDJLPhi7fqa7aUsuTR7EWDhc31shD4WWjVzp6Dr6KgYAzafUBgn5ZEtTDK1X1gMkLoWf", + "coin_private": + "xprv9wS6ZahUq1mMcP11wnn5QQpw3fk4pKiAEgtErctVxKMSiPqFSvccT7fzPBefSty1s4TsjikJvTcQ1gDVvs3CFkHbEm9Li8nG1tmN77LXxgL", + "coin_public": + "xpub6ARSy6ENfPKeps5V3pK5mYmfbhaZDnS1buoqf1J7WetRbCAPzTvrzuzUERbpqXn2kX5rNe3UABA3j68ZxdoMs5Z14BMupc73eTzfEopVkr6", + "child": [ + { + "account": + "xprv9yXGNFDpkRXyUpipPrPWQoLbvxUQF4JTZj5WqKxSwokNGmuKRsyuJQfXJ6D1gAo5KtfKNV9AxBKFJmqTm9Lfj8Phf3ykceGmiKgJQU5n8Dg", + "account_public": + "xpub6CWcmkkiao6GhJoHVsvWmwHLUzJteX2Jvx17diN4W9HM9aETyRJ9rCz19NL7mcE3U5kZUCcMbDgd9RQ6yqRYEzHxuehfh1tYEv4w9zc7QrN", + "address": "osmo1lqn22purjgz4qlapa8v4a3g5faxru2qpdvvqgw" + }, + { + "account": + "xprv9yXGNFDpkRXyVt2zC6mZHVykuyZ9pcg1dEGLvZQ2T5u4f9jNuv48c7yRRVyinVG9vvLQnkJhQFs7JMvkL8PHeLMrzd6Vo8msFw5CiYbu6fX", + "account_public": + "xpub6CWcmkkiao6GiN7TJ8JZedvVU1PeE5PrzTBwiwoe1RS3Xx4XTTNP9vHuGo2bYKE1kA58S6d4Ry2uzJC9GYqMYsjLpzuHu8ynfbyUgAUbxfW", + "address": "osmo1dsxj8eu530raatgka82sja7s432y9z8lxlpas9" + }, + { + "account": + "xprv9yXGNFDpkRXyYZbifLVYdHgZ2V2UTocqHzETTJmsdeUbd5pRgqBpYSCUxLr4fr8nZZHMrotVqCSsentp7e3wwtTKZ1vErCugSEq4aQkJ7n4", + "account_public": + "xpub6CWcmkkiao6Gm3gBmN2YzRdHaWrxsGLgfDA4FhBVBz1aVt9aENW56EWxoa7HtRTWpjmGDVy7naTFsgVWqXK5aFBTLUoxMjd2sz7hQshi49e", + "address": "osmo1zjjcr34v30m5f2s0var37fy4np8f9dssc6xlg2" + }, + { + "account": + "xprv9yXGNFDpkRXyd3decoAWKxFDmXTAe2yCTpbqcz9mqKbT3bSRxwx8yuRy2dkHYebgwAEgjA6m2jSXWBBZrUhqrts9VoYWCwWnP1dPZfY6qSQ", + "account_public": + "xpub6CWcmkkiao6GqXi7iphWh6BxKZHf3Vh3q3XSRNZPPf8RvPmaWVGPXhkSsvCABbeayMdCps1HZDvKGkvN7aKfCfRNKCKMQYBhcMm34ncWHuj", + "address": "osmo1v4amas2qltv0tctgd5taqatrgdtflhut53z52t" + }, + { + "account": + "xprv9yXGNFDpkRXydfsx82zuLGPbuaUbdXQA19hZsTNFdunhZjS8P1BrsUkoZBFHW1HakTLbV7AqPgpsQB1daYgSZRjikmadoytBdGJ6NmWPtEc", + "account_public": + "xpub6CWcmkkiao6Gr9xRE4XuhQLLTcK62z81NNdAfqmsCFKgSXmGvYW7RH5HQVEyf21rxPm3HKMRdTiZA7AzLJLEdDMoCcw8kikz4wkejkHMQLp", + "address": "osmo1v7zvh3cx3734thxyaxtp2gmw5qsxsh5qd0st5a" + } + ] + }, + { + "coin": "PI_NETWORK", + "seed": "ab5b733f8424b6e46c4f7fa128cfa56ac310b657ddf2acc06df33c7e611c78f1", + "master": + "xprv9s21ZrQH143K3uXn3tfjHwMwCkGjPfLDccS6PSjQVD25uuE8CRrSdzD9DjZviK4zdR763PtcL1g4Nzs4XNHtw9P86KEAcib4uQASB2GwoWu", + "master_public": + "xpub661MyMwAqRbcGPcF9vCjf5Jfkn7Do844yqMhBq923YZ4nhZGjyAhBnXd4wN9SFvskx6GMoLTCDBLiAUjmTjAyXn5ky3h2Mw51mQ9yF1KEwW", + "coin_private": + "xprv9wUpWbFCK8KkCkP5xmcBik3WuAdw3kVuj5YcPwQProSE8m2soi4Jn14Vq8962PAet6zt5zJVJeXrtrDLxFzbgm23UJHJhqU8wdbHA8ekN5p", + "coin_public": + "xpub6AUAv6n69Vt3RETZ4o9C5szFTCURTDDm6JUDCKp1R8yD1ZN2MFNZKoNygKYz2Wgn3ujXg4C4cmrTpKnnPAz3ZnuvDWTRCPCYCvZakWKpt4Q", + "child": [ + { + "account": + "xprv9yj8quGrtk2Wzq4yfE4SamXJEzZb1M6eyzqQUdJ6MfS4uU1FKyiyQndGX5Rz35EDaAcxkMt2YH9n2nf1B9NSrswhjdnp188UmHMjMp6ZWQq", + "account_public": + "xpub6CiVFQokj7apDK9SmFbSwuU2o2Q5QopWMDm1H1hhuzy3nGLPsX3DxawkNFYEUXBUfbnueioXB9pY1odYykEeM7dPxeVKN3DCzTjVekpUxCq", + "address": "GBKWMWBSHLCIS5AC2YG45KBS2NTTS5TMM7ZCD534ITI4TG6IY6UAOM3J" + }, + { + "account": + "xprv9yj8quGrtk2X2qbrzcWN8kKJNVTvw3C6ThQGP2zjUrwV4Z3cgwMyNyJuPigmNLW6n8JMiEY9gzcPsnsykYngm6YVV9xDyHLww6geGNySCTv", + "account_public": + "xpub6CiVFQokj7apFKgL6e3NVtG2vXJRLVuwpvKsBRQM3CUTwMNmEUgDvmdPEvrAjQBBupu5HWSLxcw1X2LxuXUa87q1bkXSvr3FGbEDrBmb4oN", + "address": "GD64KUZVV4BYZXSBUT3NSFBKBXM43IF7LTUDBT3AUQNXAVDVA45QTFS3" + }, + { + "account": + "xprv9yj8quGrtk2X6NUaL7JT6N7YZG52hdJMLN6TnMbuM61osAvkbpT8ZNHm9a3MCJdDVgcwCjWs4JzJvoZAp3EJGVGHRt97Z41cjHFNzuS4WNJ", + "account_public": + "xpub6CiVFQokj7apJrZ3S8qTTW4H7HuX762Chb24ak1WuRYnjyFu9MmP7AcEzn7kkspyQpzXeZmQkgPWhfCWhRXoYwLqcNDFoUhRGPfX5Sgn1rt", + "address": "GCPFRPZUK4G6365VWXH55NVG3CY64RS7SWDC2JJVM4DVZDBLIK5XVASR" + }, + { + "account": + "xprv9yj8quGrtk2X7NHLGERN4o1uyAsW4o8fHxZxB4Gnygk8wc7fUzphCSzUzpKQsPoKndogah34g7iFUL5PZBDvTipitcytc891GZs1MStzoUw", + "account_public": + "xpub6CiVFQokj7apKrMoNFxNRvxeXChzUFrWfBVYySgQY2H7pQSp2Y8wkFJxr2HSvTTVsMo81Qs6LBjpyntJtePhJ7i8FRHWHSaKEmMzcZ6xAj9", + "address": "GCIX5KBGEQTHX2G7S3VXIRY5MNOLFEAKJEHA3LHXKXIXUM7ZZYR3D6WJ" + }, + { + "account": + "xprv9yj8quGrtk2XA2rg4ig67aMJwh4q4gas3AEQ1C3r96ZYeNbVpqE6RaALci8kGvjxAKqDVvsYFPE54oPTwpfWuHzEQe5535G6xzm3uziRbUv", + "account_public": + "xpub6CiVFQokj7apNWw9AkD6UiJ3ViuKU9JiQP9zoaTThS6XXAveNNYLyNUpTuE9N271agM7VoNcnLnaNSr5x8jp9y8j2uummNkQJnV2WfwGDBK", + "address": "GA5IPHVFLZX6ZNWDHZQPXBEBZKBBX73PSYEZB35E22SPWI6NXCI7TXIK" + } + ] + }, + { + "coin": "POLKADOT_ED25519_SLIP", + "seed": "a541f35edc64b9b9bba12f3317c77ee823108abe1747cd8eb46336960c6587f7", + "master": + "xprv9s21ZrQH143K4Tg3Ugn3WPSMkScrY2spg5nDBVddsXrigeVwfd6gr9iz6mxqyGLnizb4X15C6eMkUa6kF7UYRoKAW69yqHG8UE2Hpih1wHs", + "master_public": + "xpub661MyMwAqRbcGwkWaiK3sXP6JUTLwVbg3Jhoyt3FRsPhZSq6DAQwPx3TwzW7qskBejUn3uyd5WDHjKsz5RfYTEDwAEsyYGy9WxdzDmR5CwC", + "coin_private": + "xprv9xPgAuwEFh7SbHX4m8eUeGDowyPnf1CYwjpggtwRz7XrMJLL3TeC5cEFkR1RPJjd3BRRt6qf3pfmsGDf2AUy8NsEpMxz3bJmV53V9p1k9U5", + "coin_public": + "xpub6BP2aRU864fjombXsABV1QAYW1EH4TvQJxkHVHM3YT4qE6fUazxSdQYjbcD4UmY6SouRd4aUnjFWWfD3NGmJdkjyjKiKN6CKQQ8jicTj2BT", + "child": [ + { + "account": + "xprv9yA7W8NAB8MEYFdPWWJABxSVyVFK3xZ8RFzpWoYoQ2MtNu9jCkzqdJT1wej76kwVRXb4WLz8xyF6xDPtUUmsy1LWGsHLqPDXi1GuhKEcRVo", + "account_public": + "xpub6C9Tudu41VuXkjhrcXqAZ6PEXX5oTRGynUvRKBxQxMtsFhUskJK6B6mVnr4diDKjQCTuWKz1opeFF7NrtAhf1c3xGQs6UzhMbTVtyiwEESM", + "address": "15jtEjLB7ktrficAmtE2PyrGT7NachHDTw5JeGpvzTxVkcKU" + }, + { + "account": + "xprv9yA7W8NAB8MEapAbHG4NtWWgFedqgUDofWyZwXLr8ibeqdFDFvUPcNCTpMpve24XQPC7FgZyok3r6sVyC4WffVRHR7BRMe1sUF1Pz2Dd2v1", + "account_public": + "xpub6C9Tudu41VuXoJF4PHbPFeTQogUL5vwf2juAjukTh48diRaMoTneAAWwfZDV9BkQP6F85Cf2ZPSTEwKamNJ6tG9BDTKJTiMgrpS7pJKnQuL", + "address": "12cBZiytGbWnTaTponJAEUpk3dW9UttZtqKxjBB2KqgHXiJN" + }, + { + "account": + "xprv9yA7W8NAB8MEdLeiA9WUr8zTfPC5GJDUKAKp8cVmsnG8qc729BURNPJDoAFpZAoEFRNrNt5KPbtDSxjcmaUuEd6n6YdT5C4orGN2wp3K9nH", + "account_public": + "xpub6C9Tudu41VuXqpjBGB3VDGwCDR2ZfkwKgPFQvzuPS7o7iQSAginfvBcheNHGcZyQzQd4kfHffbYU7YZrjVRGs1WH2haAPxHJBWzkUGD9XtP", + "address": "14v4ixzFsUaKnPdQvpKJC7ZBe3HGsiqJBt3SEW2mV1M9M7Fv" + }, + { + "account": + "xprv9yA7W8NAB8MEgDE2n11Xi4wgs9xUTN89cdbDS9fbye6vmX5UBmgp2mj5XjzN93HXs7Nz2G9YxFY8tSPxG3uSxh3HAWuT5q2btt2NhLeQzYe", + "account_public": + "xpub6C9Tudu41VuXthJVt2YY5CtRRBnxrpqzyrWpEY5DXydueKQcjK14aa3ZNvbjvPbto1dJupk3uN9srCJVc9EhtRYvhPjTuuuJ5zJXEtd79am", + "address": "12ty5G49pFW2MnGPc128RVDmVWg5LYRYkuk5kojY7qK2jCwp" + }, + { + "account": + "xprv9yA7W8NAB8MEizQzR9XTgRbQtoUmxkdLWoFdc3U9QUMTav8x6wfW53MQdHYj3c6wZ48V3HjJqi8KYY5E2tPJ3BZtw6PfKBe7dcRVAXWJEG4", + "account_public": + "xpub6C9Tudu41VuXwUVTXB4U3ZY9SqKGNDMBt2BEQRskxotSTiU6eUykcqftUUphRUTFeWVw9hSe2dCEvzA9iC2qGB7DRwiyp9N6rJJMCUyzc7N", + "address": "15uBoNatiptfs9PZqHN63h6btEicQ7MdsJEh89rST3JD43i2" + } + ] + }, + { + "coin": "POLYGON", + "seed": "4d85603d1fd29377b8d64c9741ce9555adfeaf199d2945848a838ad8548f304e", + "master": + "xprv9s21ZrQH143K2nL1jbfByzx55yMkHsjqT4D7gKQumsi4no86qVbSyeF1g1HsinKHnNqJvuf2oXvpULpe62QhLuLuaxeYX5ESEVpsp7WXiQV", + "master_public": + "xpub661MyMwAqRbcFGQUqdCCM8toe1CEhLTgpH8iUhpXLDF3fbTFP2uhXSZVXHTC6gL29XP9JFWTe8VkS5VA2x3C5hPSSF7rwwAwWVRAvQxeTMm", + "coin_private": + "xprv9wxPiucWinsgA3WEfxU9STP9atHos3L1NBKdUVzYiuBCaCCrLexNn6BpSNLU2KH9mY3UxPXC84KoKxpVrVp4f4cfgtJABd1pnQsvUMkTgcS", + "coin_public": + "xpub6Awk8R9QZARyNXahmz19obKt8v8JGW3rjQFEGtQAHEiBSzXztCGdKtWJHegaWZpZc9wP7HsBXw9Se6cZ8bLuNehUpr21YTKbvz7KYxoB8s3", + "child": [ + { + "account": + "xprv9yoZGggWU1vQ43DdRSWkXFyz5dSXaS2RRPoGKLZ8UPb4bYaZVD9ULnHRdXVoFdPZEMKjr2MqxcfuXc95jzeaU9WuAutNB9g5HAJqpYWTAkm", + "account_public": + "xpub6CnugCDQJPUhGXJ6XU3ktPvidfH1ytkGncis7ixk2j83ULui2kTitabuUpg7HjAjJBYHuUFXJY4hDQRepYf4SQvirRpwW74bVYCEtYoRPpD", + "address": "0x83fDa59E4C261bfa7f4534b634824cDd056ddC12" + }, + { + "account": + "xprv9yoZGggWU1vQ5HYqmryCqs3CuE5N5DQnpzVSyEWXYcvXcPEbJgUyHGnpbjg8uzKXjnJqqmoM7QTHsLm8cWGRbh2QFATwA7B56oVujnqnA74", + "account_public": + "xpub6CnugCDQJPUhHmdJstWDCzywTFurUg8eCDR3mcv96xTWVBZjrDoDq57JT15H2qjHGhRXvRsLK5cRipHbvjXcb6ua1ba5bFWbiYK9bZvj67c", + "address": "0xdf2Eeb83394944C92B7e64794893c7541ABA15B5" + }, + { + "account": + "xprv9yoZGggWU1vQ9eM8qZBuZsKgLi5QzRNTMJwJe6qCRFn6jSzC2ZYDzR4zFwuj2kv5JEF7qvL2NPhmJ3Lc7pDSyYsoLQMLfzaFJ1g5sFSww2M", + "account_public": + "xpub6CnugCDQJPUhN8Rbwaiuw1GQtjuuPt6JiXruSVEoybK5cFKLa6rUYDPU7G2cM1JcLvVxeeVPPKDCj3GBxAnz9cc3PxADg5RQARHLXihv2rY", + "address": "0x3A20E6ac00887Ec14b5E241195CCD931bA445824" + }, + { + "account": + "xprv9yoZGggWU1vQCTJhbnrJhNh4Qwdi2UM8Ws3ycrfa3DVZjnZULCXry7rcYTzHJTM4A6kcqWwiXCDa1xBS9VWUSY41cBPnAGphLRGeUXQyHXL", + "account_public": + "xpub6CnugCDQJPUhQwPAhpPK4WdnxyUCRw4yt5yaRF5BbZ2Ycatcsjr7WvB6Pjm1DehM12ZHVD3jywnBnPPrGSKErSDHZowcSQh66i6WSmZnkSN", + "address": "0x468504D5e38030b9F9c4d1d9E952ab4DF50065e0" + }, + { + "account": + "xprv9yoZGggWU1vQEfyR7mU5VwSf586zEEAwhkSKF45ERLMN7t7qMMKubDJsS9Woj8pc561bjtfcaTEXdeodbJm35cusEPCUu6M1LrmJWXjCMTy", + "account_public": + "xpub6CnugCDQJPUhTA3tDo15s5PPd9wUdgto4yMv3SUqyftLzgSytteA91dMHRsHtD5AE5p4B2QUeN4hx2wiSUWomPL6rGcGELcSmwnq1cBxCrd", + "address": "0xCe64228AB146658CB29f282d080beA6D216c609a" + } + ] + }, + { + "coin": "RIPPLE", + "seed": "8f32e6a5122da3a48c2a32d8328b576505fad481755cdc567a1afd312e0e739b", + "master": + "xprv9s21ZrQH143K3PsK56GP1ydbf6xaiydKttdCiowrqCbDFaYCuHBCSHqi666ejvkGVghBiJP9xAMYxaWu8BCzM8xCihAEiTVhdKSEZktECDZ", + "master_public": + "xpub661MyMwAqRbcFswnB7oPP7aLD8o58SMBG7YoXCMUPY8C8NsMSpVSz6ABwL5UmSmueRduaqgtVBkykB5vCmKkofzatbAEjNzReaBHMEw9zAv", + "coin_private": + "xprv9wk9RvEEcMWtdGdjDbZ9ni2EJWGCaTwzGEpJT5i1hstPxWA8CRLDTTtUL7eSphmmaaeJuJqRejqpXQc1NqtNfhmLc6hprowmC8siTFQsDux", + "coin_public": + "xpub6AjVqRm8Sj5BqkiCKd6A9qxxrY6gyvfqdTjuFU7dGDRNqJVGjxeU1GCxBPXeoGj9EDfomK9ivAoUexP9hfzArTNZbMSJGjzHyroxPRh68DH", + "child": [ + { + "account": + "xprv9ygNbmUBupwCQ67mB1SsPW8gqwqx4gLWcbXizTuDnBYrNyKpcyW9o5QTH73XJauNkvGq4XTkYmp6FVWMDvSE2FmAfW4HuQKdeQ8AMwyDegd", + "account_public": + "xpub6Cfj1H15kCVVcaCEH2yske5RPygSU94MypTKnrJqLX5qFmeyAWpQLsiw8NNZXfcxC78KfUmYX6eMe7LB5p1sdBHPjDAsfjeTjJZsaunFoSK", + "address": "rJVk15y98mizKfy4egabdF6Y2JrVkFr2vy" + }, + { + "account": + "xprv9ygNbmUBupwCTsFdWyTJENr1BR6KyoCGmYF6WWznTasfqjSRDThMd7xrdxDqbgLivdioDEsZTaqqEUXUxioCjY8xShvF7SmNULdfsMPpPqw", + "account_public": + "xpub6Cfj1H15kCVVgML6czzJbWnjjSvpPFv88mAhJuQQ1vQeiXmZm11cAvHLVCbjuyECFBJRUbx9SpuqyuPxsz7Gof7719YT9zjoMCPi7oW6mZ9", + "address": "rJa7x1fyQiPFKdvcknwdVhY3pe7C8aTpUR" + }, + { + "account": + "xprv9ygNbmUBupwCUaWYgZ2SZKNvzitL9sAbXPjERmqsebViPNwm8AYXAkZPKP5y82KgD7AFS1RCqNZ9Qxf2VGhdN6WpCvi4qQqGHK91PaVCogn", + "account_public": + "xpub6Cfj1H15kCVVh4b1naZSvTKfYkipZKtStceqEAFVCw2hGBGufhrmiYssAfSz4GQeHfAonHL6qDb883Y9DuGXq74QGkNKY9FkNFJ8F6Yt4qA", + "address": "rU1tZAGyVNpd2PZMid7YUaGcrEnhNzVCtV" + }, + { + "account": + "xprv9ygNbmUBupwCXuBxEbSJMKTw7G5R2kA8AA44AtjKhJUo3qC3XN9Gs5QWgUSYHytb415wtJ1hamowZAnKw4JjRShFRC2uWrzDXdvHHWXpJvN", + "account_public": + "xpub6Cfj1H15kCVVkPGRLcyJiTQffHuuSCsyXNyeyH8wFe1mvdXC4uTXQsizXjJxYuLt7NHLXq8SHbKsnxQfcJyCmLrq1pzXEqazG4vpXj7gRD5", + "address": "rfTAfetQ8p2kQpfBSwLynyMjQGvV6m9oL8" + }, + { + "account": + "xprv9ygNbmUBupwCbgtJtotMLYuN1AKkD1JwZbgkJZH5oLRjg8EdcvTWJqtW1wB2YKtnEGVf5dL3Jfe9SfLnoqRQ8vmny2QkYg8GMFmdRRvG4ed", + "account_public": + "xpub6Cfj1H15kCVVpAxmzqRMhgr6ZCAEcU2nvpcM6wghMfxiYvZnATmkreCysF6WnkvoBsQ65AHfFgFxDAenAZvuE64TJuQ5P8o7AMRactmQmUL", + "address": "r9vBfMicEg4RSY9GZH9tkUHUBXbMPb3s3a" + } + ] + }, + { + "coin": "SECRET_NETWORK_OLD", + "seed": "fe59933947ffa95436e1f39c27b5421ac9027c8f6b3a0b8f556c768142001bb5", + "master": + "xprv9s21ZrQH143K38JXPGzqaDaE4FZiKw3sYFEUMV9zeoGPtFDpgBACpMdjqY6hqJPNw9JN9m1KZ5fmUds26HeqaLZPaB4Tamqj2PWjst6dXc6", + "master_public": + "xpub661MyMwAqRbcFcNzVJXqwMWxcHQCjPmiuUA59sZcD8oNm3YyDiUTN9xDgnS29tudGRic4YZkWbc74i1m5sR8XVCbP2JHp2q5svsdqS2wTUk", + "coin_private": + "xprv9xQ152xdV7XajBJyrpQ4pBa8qYKnotfTnazvE7J9NwmXq1f5NR22gAff9zfbMcdtD1VYa5AXw7RRxLdfNW4S9zbPJyMJZhHSDaCh3LvJaHy", + "coin_public": + "xpub6BPMUYVXKV5swfPSxqw5BKWsPaAHDMPK9ovX2VhkwHJWhozDuxLHDxz91J5XGVTNvPQxEVkS8CMp4yTgKeiQNHwnBkpBt84TkstoitHsQDL", + "child": [ + { + "account": + "xprv9xjvfxm9SbxBadqzp74Evhn17Fsh7L161FP1cWXTvXTvoXiUDhWsBKjv6Tx5jBmQZk4ksia3gnKxoaGRi1mXYBuGygxwYmcfkTD2HiWWWdv", + "account_public": + "xpub6BjH5UJ3GyWUo7vTv8bFHqijfHiBWniwNUJcQtw5UrzugL3cmEq7j84Pwi5uMi2vwkNP9kPQ6HrQEPpxS2sYU3pDmZJkkdTDTQbSnq467hA", + "address": "secret1y2cfdlcd9twmwz2vjkm5l3up0t8fa3g2qczwd6" + }, + { + "account": + "xprv9xjvfxm9SbxBe1F3P7yq2ynH2qUvajNEBpZ36UuZiuXUPjp4RVF51SLTykphpXk5X7eRx8d9EuJ3xzYncTJM7Eq1bAnLdXtbG7fFsvzK37Y", + "account_public": + "xpub6BjH5UJ3GyWUrVKWV9WqQ7j1asKQzC65Z3UdtsKBHF4TGY9Cy2ZKZEewpzvz3RhahQMNfafBt7wojpS428yQrtpeUUo5pcLnkxvGWPoUnZL", + "address": "secret1h352fjdqv6mv7sq4qggzelxdvpwu3wfqlqsmym" + }, + { + "account": + "xprv9xjvfxm9SbxBgfUqoittMk1hKjpDJ29BuZ4bhUgon35KBmiociXRWhBGhgTm2o4rceFH2wg8t9iMDcP13DXNPfcs2mM3gTeP7Lam54esGQf", + "account_public": + "xpub6BjH5UJ3GyWUu9ZJukRtisxRsmehhUs3GmzCVs6RLNcJ4a3xAFqg4VVkYvWn13Ngp4oegctJcGdjfCoAEbXbbSRanuRJfT4yY4W5ojdkFNE", + "address": "secret1mpmrytlkvtcf5h6rr95mu5annslkv6n9e0g5dc" + }, + { + "account": + "xprv9xjvfxm9SbxBi8BXdqsNKRVEw5eRTULhuTpcKNTGhrCcUkdUn2afNGSJRx9GXE3B4S3SfCNvW5e9B5sogqfmcdud59X4uYrT9cgqo4G97Mu", + "account_public": + "xpub6BjH5UJ3GyWUvcFzjsQNgZRyV7Uurw4ZGgkD7krtGBjbMYxdKZtuv4knHE6gLC9XC2GJ2BgUbsU2t4UBwAYC16wEMWEx8JZsJwzZyKbPFgw", + "address": "secret1gy0mlktg4jju0nr8rwxa3at3h6cy2zc59gpvhn" + }, + { + "account": + "xprv9xjvfxm9SbxBmtAzvG5A8zbASyZh4y8Xqp2QmoQoYcMZAnthckWWwKhsBVKbCGd3VXeESPRhD2o7zShiYHrGN5MCfxjAaLwB1RhAGruwqBp", + "account_public": + "xpub6BjH5UJ3GyWUzNFU2HcAW8Xu11QBURrPD2x1aBpR6wtY3bDrAHpmV82M2kWrm38XYm6esmF2FgVKmAt4NvryKkP6vowsjC5PSxSZaQPcKwC", + "address": "secret1kj6cm40aw0sdhfntuulfs7m35a0ad3ssa5d0ux" + } + ] + }, + { + "coin": "SECRET_NETWORK_NEW", + "seed": "e1e0db226718f18cdfb7ca9f189330fce659ecc18fc6ec5a060a29e37c70e6be", + "master": + "xprv9s21ZrQH143K2uoDqofdZ8nzrJZwiVG7qQugcuA1bEbCCH9bMibZGEMSNmAWBpukAt2PZaw2Qqm9knuq27CsiyqfNWSgHrkGfKfR8tcNgzK", + "master_public": + "xpub661MyMwAqRbcFPsgwqCdvGjjQLQS7wyyCdqHRHZd9a8B55UjuFuop2fvE4psTp96JTsh3jG9oW3AT3WCKWD7XF2mhKL8oCK1pXacytZn6iR", + "coin_private": + "xprv9xB8kdhx5QEqcNSt2DcwsyRnHDjW2TWpRgse8HKdKjZdGcsBiMzHMkVfFNevVpkZjsWNJ1ffttPYJiMNA3WAcaKJozHrDXS2LNW2z2jxR7U", + "coin_public": + "xpub6BAVA9Equmo8prXM8F9xF7NWqFZzRvEfnuoEvfjEt56c9RCLFuJXuYp96eLgFh9ZzkqArKC2SYG7qxhfkfFPpvvsA5FtE5JZ9pvbwEsMJdJ", + "child": [ + { + "account": + "xprv9y9pYADR48xdnzxiQP8Tr5NsgvyTKLFzNvD3kCNbZ2XW3MmwTBKz5F43GcLTsnECf8i7UpHvugUxwQqdL6ALSxJSHBa69FMXtxQb7AAhZ1p", + "account_public": + "xpub6C9AwfkJtWWw1V3BWQfUDDKcExowinyqk98eYanD7N4UvA75zieEd3NX7uaamakvA6ZJeM83Z9sEnYdBBt6wCmuUW7fx3G8pWobrDQeKnGA", + "address": "secret14ux9x7f85ul4c4e4gygzq8dapu97yds87emmlp" + }, + { + "account": + "xprv9y9pYADR48xdphmmXjiQdduQDDm6QS2uhENia66QKiEXPPPmgHdGB5xnfj7AkBFrb3a5Y3DeETr9ecZxJw9YkkAoQp2Zk6jjVNzwgV7rrGN", + "account_public": + "xpub6C9AwfkJtWWw3BrEdmFQzmr8mFbaotkm4TJKNUW1t3mWGBivDpwWitHGWzRu3XiXkZCA7FeGyuVk5g4xR1v4KoybhpShB55t9Sorh9kFZXz", + "address": "secret1gk9kldlnf4lxy0aectlvr9dmw85wnr7tsajh2z" + }, + { + "account": + "xprv9y9pYADR48xdsi8A7SwSPVm9xVcVPSrBQDSeg8GsDbwcGSxyGKxuLjZZdMJcPicSaJf7kZrcrnGSTuwCEnacWpkRT4EuHDh8sKabaESSe4i", + "account_public": + "xpub6C9AwfkJtWWw6CCdDUUSkdhtWXSynua2mSNFUWgUmwUb9FJ7osH9tXt3Uc27JHEdex2ALPdLzdirCoi8N89Rgom9Ua1FDpkGFcAUHQa9tff", + "address": "secret1fh9mvza2dhs0jmnw8j00zmq5rpz4s3a0xppsfa" + }, + { + "account": + "xprv9y9pYADR48xduZMx9vf4pkqCtFkd1pffKiXBzBLiSY3WYjPyQZ8js5sZvT7d7M9zKaoC8hnq7oV2Xc385wdKe2hejqFjr2bq5EDWhgafuUi", + "account_public": + "xpub6C9AwfkJtWWw83SRFxC5BtmwSHb7RHPWgwSnnZkKzsaVRXj7x6SzQtC3mm4WSBQDYqKCuRFoS1pucsKgVe1n6tgVFRbhBmqDCxPhow2BsLN", + "address": "secret1m8avffeujev9dwx96k23qrzswllf4x0dga6j0k" + }, + { + "account": + "xprv9y9pYADR48xdwfprN4TSKSsGiEoqA26QpqeBNpD2683PE3b2mRsEx7VKLpDninruS8sicWmqK1AUsVWp93MCUcCVz6XAk3MxBMpkA9XW519", + "account_public": + "xpub6C9AwfkJtWWwA9uKU5zSgap1GGeKZUpGC4ZnBCcdeTaN6qvBJyBVVuooC81k2318SmAr23Tm5DCeo5DyBuZEYmt1ZuUWwURS1192KffPdkt", + "address": "secret1ffuaysznamhef7cfdln3l4y6fppjuwmkp7dlx4" + } + ] + }, + { + "coin": "SOLANA", + "seed": "be2cdbf79bf3f12ee62961b9d1c1a6dc6b5c903aada231012ac878cca1ca189d", + "master": + "xprv9s21ZrQH143K3Gup1FZNVf4aYKUELbDDgdY46WwmFQLE2vEJeHtr43bacnJbz31YpznA2eXUK4qPixmCm3MA1uCNGXjSZx3617mdvXTtwHi", + "master_public": + "xpub661MyMwAqRbcFkzH7H6Nro1K6MJik3w53rTetuMNojsCuiZTBqD6bqv4TxNpwXM7BPZnhaMH5dgsLB9jiP951ARdiJgDYEQ9P7pstARBWEb", + "coin_private": + "xprv9wXSp8V9nZNP3JiSmw1GnWNCKhiTMfh5tKqxGUfV4empFJnfC8xiFoH9yU2TWVaRvLTvfZhugL6q7qbjtS9PFQnPmfe6BFdSsz8wBCYUKki", + "coin_public": + "xpub6AWoDe23cvvgFnnusxYH9eJvsjYwm8QwFYmZ4s56czJo877ojgGxobbdpeDCQ82CVwVqBEaVv8G7nEmZubwx93VcJHsxixFmNKG3qG1o2PG", + "child": [ + { + "account": + "xprv9z5CxT3fEnwTxCCyRg1FyXhpHUDUpiUctYm3Rc1SxQyTWX1p97cdyLbuPBkNc7mP1KZK71riHhXpVHvGWXf9aREEwm3GTuwwLhW8SEEcdEf", + "account_public": + "xpub6D4ZMxaZ5AVmAgHSXhYGLfeYqW3yEBCUFmgeDzR4WkWSPKLxgevtX8vPEPRwLhBzv7oDBJEgbAmokJ4rkJdJsSsN42iz8ARKkKer4yxexQ4", + "address": "GybA2k1jMUdcur9moyXimCpHsJvr8pJreaLwUfXd67nA" + }, + { + "account": + "xprv9z5CxT3fEnwTyPppmLTZQxRw3ZCwM29mTmnSAok6jnuM9uJZRsNWKAUjdfnFgBVTgkiSoxghZpCTzZeM8t5P3H9AQ4vvp3jQDXxpHgH7CNW", + "account_public": + "xpub6D4ZMxaZ5AVmBsuHsMzZn6Nfbb3RkUscpzi2yC9iJ8SL2hdhyQgkrxoDUsZpNoBZJshePFnQ51rDZCv5ZeTyyoV1Ws6TSubaZR4at54wzNo", + "address": "E9PSMxKLEAksRDGMyQUdN44yVrsGiWg2G3G26M13sQop" + }, + { + "account": + "xprv9z5CxT3fEnwU3pRDyZ36BHbqCkdKu22CJEezAP5TPL36N4YCdXcFcGhXznEJ4xSHicB657JN5MobHxZG3y3vetVm75e43r3fk5u8LXvWa55", + "account_public": + "xpub6D4ZMxaZ5AVmGJVh5aa6YRYZknTpJUk3fTaaxmV4wfa5ErsMB4vWA521qxGxY4U9DNYryd7rWzRKh5AE59NngRoPYNRrb6KSJjpbTZvtwDX", + "address": "3VAbJM5e3VzqER9h43By3uzGH4AVZtdQsCsMQPeotbKH" + }, + { + "account": + "xprv9z5CxT3fEnwU6k6ujif1rUWHYS8YaHuvUr6KWWebTGeiuCLRgNRKaor8Cxh4283Wv37Dqb1JGBAoyYkNCZ3DGb4HqyBx1v5PCUUeHHZ1BHr", + "account_public": + "xpub6D4ZMxaZ5AVmKEBNqkC2DcT26Ty2ykdmr51vJu4D1cBhmzfaDuja8cAc49jjNeeA2imMyaKRhFY7tJfy1MCWH7kgrqG6XDq8zdxtoStDEad", + "address": "4yruwsB78XF3ArTkVgUyGiqGQegVNKp1Jfa1aKQ3i2Jw" + }, + { + "account": + "xprv9z5CxT3fEnwU9GSwjCftizth8FjmWUcDXdHv6cT6ZNmtGUk18KABk4JBiiAfwhDKyuTvi4WN5FpBXHetzmb8aPPkucjTqdhXgwoj5wabChG", + "account_public": + "xpub6D4ZMxaZ5AVmMkXQqECu68qRgHaFuwL4trDWtzri7iJs9H59frUSHrcfZtXEjP9CEbhPfJPbiDE5NkXBsqeRFbMPv9YP1xTqFzqj1i4achG", + "address": "45L49VhncarWwy1P2UkexVZJp3nj7p2TVpuJL1LsiAYt" + } + ] + }, + { + "coin": "STELLAR", + "seed": "18c524c2c967ec22fcfde8b772aba811924c4aac252604c98ae107f647b3283e", + "master": + "xprv9s21ZrQH143K2grnkVfxhkGP2xSzZqG2AsyjqqCwo1XBQKpquiYwNRmZPk6UQfmi5iJZXD9jpND4srzCkiBaxQuyBdeHCgGhLVgnxheaWkR", + "master_public": + "xpub661MyMwAqRbcFAwFrXCy4tD7azHUyHysY6uLeDcZMM4AH89zTFsBvE63EvR4KxQpggeT8GEJVfkv5KxyZggVWp8afhPni18eJ4Caf7FB9vA", + "coin_private": + "xprv9vsiLiX9rDNQ9USbk3mkyqNfGZ84L46wFWmb5yMNb8yGS5QEgWtPfA6LAKZZiK5CEoJfqK32RLTPXkNvC359prbnSbxbEN3nFcdNQwP7eN7", + "coin_public": + "xpub69s4kE43gavhMxX4r5JmLyKPpaxYjWpncjhBtMkz9UWFJsjPE4CeCxQp1VFEMzLc9KjtBKaD1KyaeXceFMMZyjn9TzatTwLH6sRRezQhuPw", + "child": [ + { + "account": + "xprv9yfo6MT5oYtrEAESGt2SKmpRkf9jqpVr557FDEyd76pwv4iXcoT1WcbRxHXidRwe44B5DmMUC7NEuwKJkVP5QnezWQqQPA4ANcjRgAM5MPg", + "account_public": + "xpub6Cf9VryydvT9SeJuNuZSgumAJgzEFHDhSJ2r1dPEfSMvns3gALmG4QuuoUqHfHbW7SNx8bZNsC983Ah8SDedDEprm6gSkuiEwyTN3SBZs9G", + "address": "GCKVUFI2WEUEQSZ4FK2OXFX5SPFITSU36WPGN3GUUAGHUDJGLDWY3UIX" + }, + { + "account": + "xprv9yfo6MT5oYtrGnNiXgRpK8rYFTZ1N71Hj4BEYfLxk3tb1A3Z78oNg1MR93m9fn5tQ3GUdinL7us8qyKYUKHZFdVCDaexmQv2aWwDpMdPuLP", + "account_public": + "xpub6Cf9VryydvT9VGTBdhxpgGoGoVPVmZj96H6qM3kaJPRZsxNheg7dDoftzG9rqzp22thaRiX1ZZok98i65aeiTgweddfLypz2LeTK5Bodzmp", + "address": "GD6S6CPZ5ZIGL4S7ZUR5N67AKA5JK7JGTYWPEWSCZEXXMX2KVL72POI2" + }, + { + "account": + "xprv9yfo6MT5oYtrJvuHr8opkyL7wXesWRD3GAjkKUS1nEPbKxtwkcVaGz2J7o3rrJeU7fdpRC6hQExYY37PsPdRRHCqTKkionKV3iNywHYnaNz", + "account_public": + "xpub6Cf9VryydvT9XQykxALq87GrVZVMusvtdPfM7rqdLZvaCmE6J9oppnLmxyr4G4aytefMaT4vWYaWRub8mg4bGo3gKhPtTNeU3RPe6qgyiAg", + "address": "GB6ZZ2VOWITNIEPSZD3RJY6PGHLW6ZSADDIUS3V4IWDZWXUM3UHQO2YD" + }, + { + "account": + "xprv9yfo6MT5oYtrLjhHyMJuxDsC4BVm1BiQd65gTfZzjC5AYd4HEJ7fgY7T7GnEps2pt3e9qVutAQL9EEe7QzTCTy1sgaCtd9rvDHwbSv7HeX5", + "account_public": + "xpub6Cf9VryydvT9ZDmm5NqvKMovcDLFQeSFzK1HG3ycHXc9RRPRmqRvELRvxSGhC5nszeMuqcBgY53T9C1TibsmJucRCSysGfZbyAc5a15Yuij", + "address": "GARMRZMGIHTRTRQLTK5LUFCGZIHRZJAYWXVCSEL3NCMSVCRQUNCA7MUN" + }, + { + "account": + "xprv9yfo6MT5oYtrPEZVvvsEAuy5WBoB7SBAT6oBKmdq7QaovcoCxfbcWPUp2GAZxNHVXr27FLCfSKMTW9jDadLyhdUDjNcuuyUFeXhfGhepMq4", + "account_public": + "xpub6Cf9VryydvT9bidy2xQEY3up4DdfWtu1pKin8A3Sfk7noR8MWCus4BoHsTAT3EBn6tp1kqrWvCo2wjUPXBimxkKP1yCq7HZePq2ibtqN1Fb", + "address": "GDNZNBAHYBRSK566BKQ4LA46LEZ3EZSBHPJAB77THBRFUD74I5LEWZUV" + } + ] + }, + { + "coin": "TERRA", + "seed": "eef6563e40e891db1fca8cee1086824b7ae7ae275133727460c85d7a192cc21d", + "master": + "xprv9s21ZrQH143K3HHzHXQKnFdriPrrrn5htnbanxrwoVBWtqpx6khH7VVHdtSXQ6QsEF9SmMJvhJ2P797kdjNbyqmpbJJkiyTcmDLe3sPBVMQ", + "master_public": + "xpub661MyMwAqRbcFmNTPYwL9PabGRhMGEoZG1XBbMGZMpiVmeA6eJ1XfHomVBW1e8FF7vqvyNBQXphSQtzgfzcJ5zw38MQiTa9gpgdiibv84fq", + "coin_private": + "xprv9vyUWym3VzYLiszTYj89nkzHxxdwvhN2RpjBi6jdA5u7JNNyzhYWGFp1sVt82Bg9ysJ2Gpm5ooCWTmHtQi1dLjnq56ipuQ4D4jdBNz3U1gY", + "coin_public": + "xpub69xpvVHwLN6dwN4vekfA9tw2WzUSLA5so3enWV9EiRS6BAi8YErkp48VinaV1J3YvuhScfWWjcDWqGDpWYNUJhDaTGBgMAgFSjayx8KWjom", + "child": [ + { + "account": + "xprv9y5VfXoAvgweYhJjWGyaVbR9o3LQUDxmGqkLk92U8rBm4rqMfSBLRoTzLvE2t6tenb46bonZg7RSCxgAW5tkV6AWRtLMwstPW8gzDfpRKjd", + "account_public": + "xpub6C4r53L4m4VwmBPCcJWarjMtM5Atsggce4fwYXS5hBijwfAWCyVaybnUCDthJpW3F35V5avnfUWZP5iKUwmAvYARaagoWDjD6UFb7rWh9VK", + "address": "terra16djgdtzcuvtnea4ls3a4njhjqlpymzpgcjfzr0" + }, + { + "account": + "xprv9y5VfXoAvgwebWsKD5EyVpM9dTcBCaPh25MWhRdLiCDHcixCgjQjcD414HDPFkm2SuvmSZTPGb7acrSxA4qE6tAeC7BHMT3Rv7AmqDP3Xkn", + "account_public": + "xpub6C4r53L4m4VwozwnK6myrxHtBVSfc37YPJH7Vp2xGXkGVXHMEGizA1NUuXYX3pvK8hDLzevwWgQcPYBtqAAXfZUZJ61LGFyqZrt4ShAPXtv", + "address": "terra1clm50u8ljc6vyztdedkyw8ww6ue8l6d85njvlu" + }, + { + "account": + "xprv9y5VfXoAvgwecrFZ9D47BZL9ZKVxTKUR3GPam6aS9uiCWWUymWN97VpP4V8jweWzFSpzuAMTMvh4r5ZyxapBRzcHGQ1nh8SF95JcHBo4x6V", + "account_public": + "xpub6C4r53L4m4VwqLL2FEb7YhGt7MLSrnCGQVKBZUz3iFFBPJp8K3gPfJ8rumkk8NGARaWYpLn5RPi3Ywp7w4Jmo8JQ9adsWYP3QFgkGTRnMvz", + "address": "terra18wmfca7vjlnmx3thqc72ac0j5tylcmg8vxneac" + }, + { + "account": + "xprv9y5VfXoAvgweh8ZPZ8vot7CwsTFM92SVJ8bvTsySEE2hr1Td7vySEf4ysVizqqgJXXN1v4re35iD12hzv49KppZ537GKBoJ7qUiaUioPwnX", + "account_public": + "xpub6C4r53L4m4VwucdrfATpFF9gRV5qYVALfMXXGGP3nZZgionmfUHgnTPTimJEC3EdkzP94m7akmEYMmpiJQSPGnVJCBxz7T5qsdhTCr14FSq", + "address": "terra1v9tv6fjq0jjd8cqsrfv2rsx69wpayt0gt38s4n" + }, + { + "account": + "xprv9y5VfXoAvgweiJ95vmuFTwp6QtwNkSPpGsN1bKeW11uDpJTT5rZxchy8urYYHk8QFm6u7ok7qBgxe4ARM2ZSrkgcfCBWx4NHNEFjqErViEu", + "account_public": + "xpub6C4r53L4m4VwvnDZ2oSFq5kpxvms9u7fe6HcPi47ZMSCh6nbdPtDAWHcmA1C9ufYy6XGfEyWMneXEvPLnVgy13RtgegVqTTgPeFMd1JDKUW", + "address": "terra1k63xtqgssj86y5s7ldmr3yvy739c0ecpz9cagr" + } + ] + }, + { + "coin": "TEZOS", + "seed": "2d26584bd480090ef14b5d03298029f4f999395f9dde99b0e6e40a1490b225bf", + "master": + "xprv9s21ZrQH143K2RgvRsRcDZaWAGPPd1kTsC8HpfDqCD34afjpXT6xsL1xxHV8s1EbCRA5XFa8CvMLtqGjKsHTQZqoLcJ34cscR2Cwe5ditH3", + "master_public": + "xpub661MyMwAqRbcEumPXtxcahXEiJDt2UUKER3td3dSkYa3TU4y4zRDR8LSoTtqUYxrnC9VdNVNupr1wKUoPhiAmmPq1ykuFxjcRst6BNPgosu", + "coin_private": + "xprv9wY98DX72akBudgxeJwNQ1bRzcwh6pAtKV7KZ4eaLTh1WpqLPeQLxnLYKrNo7aqAgaS9TeXqKJF5snqY8DWLFT2VCAphLy31QN7s8VZ3DTs", + "coin_public": + "xpub6AXVXj3zrxJV87mRkLUNm9YAYenBWGtjgi2vMT4BtoDzPdAUwBibWaf2B3MFwC7VyudAw26LH5AimqUMPEA1fLj1LpLdhKd4mftBdim2GCe", + "child": [ + { + "account": + "xprv9xne6jCqSbQVWnSzExSdNV6yiYGdCrmQyKTdgLMiPmMsxoqGrA2dpeeQgQFwvvHScgD2W1BqH2TLdnzuEy2jBhJfMmb8biT4Eu5YnR2vNuL", + "account_public": + "xpub6BmzWEjjGxxnjGXTLyydjd3iGa77cKVGLYPEUimKx6trqcARPhLtNSxtXca1qXfqBLXu5MJHosrtygM7qLsjdniufRfx2cwZZbYz1J2W2KY", + "address": "tz1dmwim2ZonfuXFPcowxfSfMrJTsQyvxpZU" + }, + { + "account": + "xprv9xne6jCqSbQVZUrXZcD62vttbqLb3bgo8dhUtTGPx6NXQSxhZZtFJ9gdWgfE1DgQ2nfgdt95KqoDDqeR34pKttmZQMQCQVtuC5NTfjLNh36", + "account_public": + "xpub6BmzWEjjGxxnmxvzfdk6Q4qd9sB5T4QeVrd5gqg1WRuWHFHr77CVqx17MtEnyPzfEEodVoPKpyEjLxgArDDjD3nHkRCzcsDy92LTEm2fZaQ", + "address": "tz1Y5Uhnqwz2BTFiwmU7Sf6vvCb6P6CyPHkF" + }, + { + "account": + "xprv9xne6jCqSbQVbGWnfosGQvWdgWaU4L36TTnYBEGYvfRBTwHN5kj3pUcE83YFTsWh22fJaEjE7KyF7Jgjptdeb9WKQLanAnn8DQKABRTfW3e", + "account_public": + "xpub6BmzWEjjGxxnokbFmqQGn4TNEYQxTnkwpgi8ycgAUzxALjcWdJ3JNGvhyF8n3naHsAmtA1w9a2M3D2i2JEz3YQJFjB3GaQsCunhkSeqh7V1", + "address": "tz1dWNZ9EgW9eTZ4www6ifyA5oQ7o392ieZ9" + }, + { + "account": + "xprv9xne6jCqSbQVfL3gLHvCAkrLJPmXtGsd6URhnQovqUGTocuESbGKAq1EXQ2wGmJFc4t2S1hBA8sMEgn4PoEDGH9kAhmtPWECyQ5mRWrfMuc", + "account_public": + "xpub6BmzWEjjGxxnsp89SKTCXto4rRc2HjbUThMJaoDYPooSgRENz8aZidKiNaayuUWGNrSqdM9CaDVJuskvNBa1fZeGhfXaSnbgauEEzv3krb9", + "address": "tz1VX3XZVLHG5mrqP9UBxBYt3QQ5TFAByKeZ" + }, + { + "account": + "xprv9xne6jCqSbQVi7Ss4bRvRjGAGVjAEz5oVV6r7zASU412yo4oi6r3yfd1NSkDTN5zPE7zRHev9Vc41jzdq8GepAoBWmBcPmchhskmx2ewatn", + "account_public": + "xpub6BmzWEjjGxxnvbXLAcxvnsCtpXZeeSoeri2SvNa42PY1rbPxFeAJXTwVDdNfh8xwr1AHoKs9ux6PfFJBanzzKjZ2twCns2nmG3GAjyqTFAn", + "address": "tz1fojmeyQG5dSFZDPdZFKa8oSPFNsHwbzhJ" + } + ] + }, + { + "coin": "THETA", + "seed": "cf0435128621f6ebc0b4111d117ac7e3f64bee33634f05725f438dd3ba92fb9c", + "master": + "xprv9s21ZrQH143K2KbFg2bWtmdN2GQe8Yrfemzd8nMHMCLGHXRmGEQnSW7yqdKKm5H88W7A31NvHef6HiArDVgKRMuLTYsfRbob695duW3dBjs", + "master_public": + "xpub661MyMwAqRbcEofin48XFua6aJF8Y1aX1zvDwAktuXsFAKkuomj2zJSTgvd14XtYo9eVn8HVvrDZzNErGDXUgKfPPY75yh6MWq28VJ9GGyg", + "coin_private": + "xprv9wtz1no4aXGiKGPH1f97jMCiAtNuFqdEEz6TADcJEvRQKAJiWybHvhyix4VJk4GJQaSbQd4R4YKmod45j1mJTn9SpRA5rJtBaS4xPGwR5HR", + "coin_public": + "xpub6AtLRJKxQtq1XkTk7gg86V9SivDPfJM5cD23xc1uoFxPBxds4WuYUWJCoKSLNPmMBvcMSzsjS8HjDzUH7kpa8ixaxHRrknfsxHsuNTuZZQR", + "child": [ + { + "account": + "xprv9ywuR2doJdWW9eerJa5LBnTuhsMe9a8GwVhZVyty7Cbj8kCPQPDyJVKWYT3ZZVaD7TMqzkAxaRYW1wiWTpwnKaxVamVa4cwmEpvcg8rNY8p", + "account_public": + "xpub6CwFpYAh914oN8jKQbcLYvQeFuC8Z2r8JidAJNJafY8i1YXXwvYDrHdzPkekV1ehJQn3CoQDNTwD67Ne5X2ivJ5AsHJPDCDdaeE9MKaPXZs", + "address": "0xC4336723371b4929558186Ae7975769804c523E3" + }, + { + "account": + "xprv9ywuR2doJdWWCSATsASARqkhciizeKECajCoBY2tdKvaRpnbfD9odTVghem43EnR28M7rXsXbgVkYkVxAwejLwRagQEehZJxKyeTfr8j1UU", + "account_public": + "xpub6CwFpYAh914oQvEvyByAnyhSAkZV3mx3wx8PyvSWBfTZJd7kCkU4BFpAYtbyu4MPZaksvqV9p5qMaZhPzoVDHfoKae3KgvB3BoEKxZ2UM3E", + "address": "0x1AC2C9077DBE544498b0F72737e7878927586a1d" + }, + { + "account": + "xprv9ywuR2doJdWWF1cWWE1arfwHs9jQi79b6hafXJAyy3gqNs6g78UB12fqqNjrNx9U4p9K5tGMtnurFLGvpHofphidsWQRe5MtSzWcs7QuC7P", + "account_public": + "xpub6CwFpYAh914oTVgycFYbDot2RBZu7ZsSTvWGKgabXPDpFfRpefnRYpzKgfwXGcBCSuTMPGfixbVLVRnwCuMkEZGRSbUH6aXEHyTYJUppVXg", + "address": "0x7f6D3Dd475A9Fd7aa7364a819b569F2d745c419c" + }, + { + "account": + "xprv9ywuR2doJdWWFwSzqoq2ENLm97fvyQjSB5AAhNQ5uQ6gwRDX7mSFAtZmZJ4feprGUbQ9tjUArBdKMNgijsLGWjbXx9PKHh9b7szwPd6x54U", + "account_public": + "xpub6CwFpYAh914oURXTwqN2bWHVh9WRNsTHYJ5mVkohTjdfpDYffJkVigtFQbozLA4pMabjKw39WMQ7Ydnkw5qeD6MQyJU1u63qQT5WKuVHSmw", + "address": "0x8607A3AC393A471ddd4D0E20a6177011e0F7511b" + }, + { + "account": + "xprv9ywuR2doJdWWLB5nYgSX8kxE5xGjCTUG3QgSaUe4qugiWFz4GYnQVcM6TQMTE3iLjcKEh1eGvJuZMus31YgfXDXtTbnLvykJPAeVUxTEzdc", + "account_public": + "xpub6CwFpYAh914oYfAFehyXVttxdz7DbvC7Qdc3Ns3gQFDhP4KCp66f3QfaJe9QQmmzTW2F73usyP44LW6fujFVrs5yQD776vxxboFRiXxWaCe", + "address": "0xfb477F3d5fCed48e2f510d5e323f4c8655c6bac7" + } + ] + }, + { + "coin": "TRON", + "seed": "3308d93ac0a44c64bd302b1119bd799a646fdc1bcb6ee7663226a7e43b004797", + "master": + "xprv9s21ZrQH143K3e1BiQBsvc9HsKSmgnEGcuv3kG6qt6ySztt1ZzDhmwto3vC6e6EeREGfNER4fW2srjGqnY4bHMCq4ZaE6bfZMk4ydAsXyrE", + "master_public": + "xpub661MyMwAqRbcG85epRitHk62RMHG6Ex7z8qeYeWTSSWRshDA7XXxKkDGuEEzu8vKDPdaHZQH3TKZPBUQM7CXaD5TFk4M111xHbqCG4YUVLp", + "coin_private": + "xprv9wuBkWNCjYiKVgXT6XTaVCa8AYxgUCixcJTX6TCjfmBMtoy48JQCxyG4JVQDqdXKpuU4oR69JS1KhGuYzYfZJWPpGxi45mN7yKj5otc3inX", + "coin_public": + "xpub6AtYA1u6ZvGciAbvCYzarLWriaoAsfSoyXP7tqcME6iLmcJCfqiTWmaY9kREdeW9TPow1PXqJPU4WvWhLuTsz5PbRRrfSkRRUZE2hmLsPCz", + "child": [ + { + "account": + "xprv9zJypnft4L92ZnmWstNeC7ifHzyzDoJgJYWU2FwuanNJQbEfqeB6ATARFmujKsvNPnQrWfgYPEm1xs42WqaEBYB4oMHnixdyZpc2sVdqKwY", + "account_public": + "xpub6DJLEJCmthhKnGqyyuueZFfPr2pUdG2XfmS4peMX97uHHPZpPBVLiFUu71BXa2QTe9Hcrq1LdHq1SrkrYru7uhDPF6Fj2FxzuSUWTZjSziG", + "address": "TSkfyVbt13T6uBojrHyXEwoMFdLbmQTo5u" + }, + { + "account": + "xprv9zJypnft4L92cVEx5BLqjTKouFa6NGUbi67kHzW6R6Ug8wdagu5b6QDfkdVhsvXiDutJBWU4VojVj6g8MyCKQWLo1HA19qrdwvqzDFXHkoE", + "account_public": + "xpub6DJLEJCmthhKpyKRBCsr6bGYTHQamjCT5K3M6NuhyS1f1jxjESPqeCY9bv5wNsHVW8YTrWUrzmj7jqN53Ja24cucgsXD2ZxEaXg1Br9GHif", + "address": "TAmzsZC5nLF9Yyir7yLfpRuLVvvie8KXvS" + }, + { + "account": + "xprv9zJypnft4L92fmESVfeKtFTaarS8CQyiT9Lb5xY5TXBv5bpZ59ifhvBFMcCCM1Y7RbspPwGZ32dL352NcapN2rj1mJt8XMEGMdY75tAMMVV", + "account_public": + "xpub6DJLEJCmthhKtFJubhBLFPQK8tGcbshZpNGBtLwh1ritxQ9hch2vFiVjCuizsctBTtLRczvuW9CnGxgT3DgK854piG6gqrnzE5YAU6zhuXk", + "address": "TAjojFkjqL5sornMS5jeDgaby4x1CxN5dE" + }, + { + "account": + "xprv9zJypnft4L92ieDbHBUnhNJxfWjLgh29ufDbVSzoSrmhR614KbPLRVNsJmLFTg95QKWg586vhmvhkyzb9eUofrZQMqc17JFJXR3XqXKgLht", + "account_public": + "xpub6DJLEJCmthhKw8J4PD1o4WFhDYZq69k1Gt9CHqQR1CJgHtLCs8hayHhMA2UcDAKjeCgRpaMXPpZufcjdWunjpn8VFCgpZcmUPZfJxf4P6Ro", + "address": "TU6Fk8d8wkBqCXiNkXEVD1J3FkyxAK7VZa" + }, + { + "account": + "xprv9zJypnft4L92m3WxEww1sutw5ww3zWaNbWbGekMKmdLjphxHEHtJyuwH5feJXnQt19XUragNdaqHgwGwS6PYDxAjwubPz4tfBkYPA6HEm11", + "account_public": + "xpub6DJLEJCmthhKyXbRLyU2F3qfdymYPyJDxjWsT8kwKxsihWHRmqCZXiFkvvhnrMrgdcfCHV6WwjAadCGJAaoEisYLGTdhudmSh7KmvN9Vbu7", + "address": "TEfRySWVkNCEBoNBtC4arCY79KF7MwK8vg" + } + ] + }, + { + "coin": "VECHAIN", + "seed": "6d57423b9989e14badafac9ea512cb69b7a66c05d3c7b0894c88292a58b92a46", + "master": + "xprv9s21ZrQH143K2oPbiEYFiBXGBA3Tfgq3YrQ491eV83UrxX5SXaB2EtRGqVvG9PEttsfxa1VGD2m3BiZ97G14ae5yxHh6EveLLnn5tNf8fGc", + "master_public": + "xpub661MyMwAqRbcFHU4pG5G5KTzjBsx59Ytv5KewQ46gP1qqKQb57VGngjkgnciYRF2rnRZhxzozvaEwoTvJ4v3vY8CiQta1WUuSgaaQfu71Ab", + "coin_private": + "xprv9wQjKKB6hJjB2jA35V7irxEfPZ2PN7SuryPBkQsXbmfFnnEpZN28KALEu6xzBAum5xWGH6zWVY9UHfgwVQCWHprcoE2sPUVZDcmeDxcfc8B", + "coin_public": + "xpub6AQ5iphzXgHUFDEWBWejE6BPwarsmaAmECJnYoH9A7CEfaZy6uLNrxeikLyr549KyXbpMKfkErx4sRQpUGF7gATduDKT1FfFBiBkXzJF3Za", + "child": [ + { + "account": + "xprv9zLrrh5DaCGDqRQ6wcz61cDgaB2eaCZFfLoQuUf72N7TYQBEoeX9EguvXV8N8doE2BJmTRrZeqzCpJuxotaAt81hFpEVrZFkozK7r3fEC2v", + "account_public": + "xpub6DLDGCc7QZpX3uUa3eX6NkAR8Cs8yfH72Zj1hs4iaheSRCWPMBqPnVEQNmc5QEygSurF3L3BygEDsPYPxv6dEBTir59EHY4JPuN2zCRiMC3", + "address": "0x8cB1269C592840d30C160da806CD2Bd61746B628" + }, + { + "account": + "xprv9zLrrh5DaCGDtZ13tuVZckFWf4eXEr5cNzNjzQevye4fns7w9ZQ15F84fkaY5C8vMcipAi4iAd42JBCfUJ9kN7orrBVbrwaKsXw1qp3gcQq", + "account_public": + "xpub6DLDGCc7QZpX735Wzw2ZytCFD6V1eJoTkDJLno4YXybeffT5h6iFd3SYX399Kuv3AUi95ALkpUJPL1V1r78WoVugS6zaGSxnX9MHSYGRcg3", + "address": "0x5f7130A29f9D7dbff3ffD78Bb27f9E0801598A81" + }, + { + "account": + "xprv9zLrrh5DaCGDuxMZ8yA1GSiQReBceBgwL9hogHvLGHw49Vusk1jYcyYb85N8bRW1o4dkucZfeWMMFHEQacAbgsPYjE9so35PMCjG3TxDGwo", + "account_public": + "xpub6DLDGCc7QZpX8SS2Ezh1daf8yg273eQnhNdQUgKwpdU32JF2HZ3oAms4yLnfQVARyzSw7FYW7Vyri6rQu7iKb7EPdigKcvzAxZfg5zMDWJx", + "address": "0x29d0253faA3395B073a5Bc9AeaD9f3751F07d02b" + }, + { + "account": + "xprv9zLrrh5DaCGDy9G8aZxkSUsKr79LNLrgUKCSNbH4fX5Uo5BzhvZ4vu4V9xazbx4GctQXHRd6phCyH1mSrujBbArZNCVxDPoWB3aBmarnQZq", + "account_public": + "xpub6DLDGCc7QZpXBdLbgbVkocp4Q8ypmoaXqY83AyggDrcTfsX9FTsKUhNy1EPo33Tsh45YvULYqwVDvdNL9D4vgwZ4HchAi6oDontUeg3D4NC", + "address": "0xF37AFB99D29CbA0a5752c7a613D54eeea3141D38" + }, + { + "account": + "xprv9zLrrh5DaCGDzwRyYcrYzkaJXqBtPmxxoB7VtLvaJCPiKSzu2TkKYvKy6fYAFQtw73qA1b1qk9HsvDXdnEExd4r6rRbYRSWVKNwmXaTbZh3", + "account_public": + "xpub6DLDGCc7QZpXDRWSeePZMtX35s2NoEgpAQ36gjLBrXvhCFL3a14a6ieSwxekrn9E1XdMAUEm8ZnwWmiMYcJYRKNmt8AsXiWeiK9gyG4FwvF", + "address": "0x70c7aC42Fbc71cdcaEA80403bc9Cd550E5D35748" + } + ] + }, + { + "coin": "VERGE", + "seed": "035cc8cd907889eed4d91858524a32404f5ea38ee826f5f142e610ce267afd88", + "master": + "xprv9s21ZrQH143K32A1kwugwADnq1PJVW1d8ZZGxbh33aKNBce1nWWLHjBgqTrpnC81XZhgWxEPchW7KcVKwyxydJD5CibFyjUiTY2GDmWwVfL", + "master_public": + "xpub661MyMwAqRbcFWEUryShJJAXP3DntxjUVnUskz6eburM4QyAL3paqXWAgkPMTFVWabrcPXywwaWcXVrGJdvJtXv9rwvR1sAepJ5tax2gGUV", + "coin_private": + "xprv9wkW1NSsD9KZq95jyHFsxkbnnvWSpqVn2bsrHxuhytsSbYvQgo259jaXJJLfZFYviPPNdQkoTj32c12awgaQyhJQsBA4bwDWSp8drq4uu9c", + "coin_public": + "xpub6AjrQsym3Wss3dAD5JntKtYXLxLwEJDdPpoT6MKKYEQRUMFZELLKhXu19ZNdLNT4TUD56ALHopEP5r8hzygqBnzMFsPdhhhWCdMQcSBGyGh", + "child": [ + { + "account": + "xprv9zHw1hipHjcmbfjiaSwEebv45CSropqWvkDoEqTDJqY9ib5LCdVsycc1sQkTAsXz9hewuEWL6LpoXKcrfFsDsgvMf4CXuNoTpUio8ES4hwX", + "account_public": + "xpub6DHHRDFi87B4p9pBgUUF1jrndEHMDHZNHy9Q3DrpsB58bPQUkAp8XQvVihFQY3v6dmtZxJJVULMC7wCkkoyiEoaR1DrKEC1oyQ9GMu8Bdoj", + "address": "DSSMYqDzJae4S2d5VWw5cXeADDJLtyLGtN" + }, + { + "account": + "xprv9zHw1hipHjcmcZjTAGjLpGgZhjZLnQpkiMMxsZgQLrcqeHqSuAxJnRVcLKhDzcirhiw5PXbEWTuEUmWmv8EsNfrKvuQ4NVYrvuTYPiSvx5j", + "account_public": + "xpub6DHHRDFi87B4q3ovGJGMBQdJFmPqBsYc5aHZfx61uC9pX6AbSiGZLDp6BchcAB3QQ5NKGJTuCbSEBJcsVEcrFc9Z72pFnXkjGPghvX462fb", + "address": "DBS35KfUqvncti8EczKF3gaScCphWbgzbe" + }, + { + "account": + "xprv9zHw1hipHjcmgpWsPR71UpwJQf4x2vNVeFzejQJ8QWduwdSbMfeizGyKq8S1v6QKPbMaGsVbsb3C63ZUVoNAwnnGYfoVuKfTUpPoPPVksDo", + "account_public": + "xpub6DHHRDFi87B4uJbLVSe1qxt2xguSSP6M1UvFXnhjxrAtpRmjuCxyY5HogR4vky28BmxopCyaNazn19aNkHPqm7gX8R2ZVdD9Hy9VAQoiztc", + "address": "DKEJwHorhviwTGuYW7WoU6rQNy2s7nQStn" + }, + { + "account": + "xprv9zHw1hipHjcmjKHzzSSYoUDp8nEsHhJWJBQJUMHwywuULeSQaajRiDVZRwqZ3u7CGXFJ12dbTfLtBzenBSZuwjyXtBV91ggkk7YDvjfAs8Z", + "account_public": + "xpub6DHHRDFi87B4woNU6TyZAcAYgp5MhA2MfQKuGjhZYHSTDSmZ883gG1p3HF6BtWK6vErHetZFK5u5MujGHpLfM8PNkRNwMPZ5uDc5y45uWKc", + "address": "DQrN1EQtTrbM6vr4FywKqSi2hh3vfiEX44" + }, + { + "account": + "xprv9zHw1hipHjcmmhtUyLKprUNZ3QWzpvwdkWicas6caTesgCzu1kY68VNrsE3t7WkornCpMrG4CrzdWHWkZj8jidFd7wPaLkY9vk7ohR7KFv7", + "account_public": + "xpub6DHHRDFi87B4zBxx5MrqDcKHbSMVEPfV7jeDPFWE8oBrZ1L3ZHrLgHhLiUto7zEowA3TNubL989HwUg5p8TSk9BZ9Nzf82PTXcAfja5yZvg", + "address": "DQsmVYZ6ddcEVZ8TWGib3xcM28Csa7kzev" + } + ] + }, + { + "coin": "ZCASH", + "seed": "ebd61537112ea14af0b1e1146c1727c2794d190f066cdbeb0e60ad7029e9a1bd", + "master": + "xprv9s21ZrQH143K3EQ9eiK5pXu4aoMR4BLLQH8iLNnH8wwqxdvjRwrDhykvmfnzYccnVyFDdt5m5YZ5JRYXA3NXHDLUFp3XDuqMCFDErDdPX6y", + "master_public": + "xpub661MyMwAqRbcFiUckjr6Bfqo8qBuTe4BmW4K8mBthHUpqSFsyVAUFn5Qcy1gQmuDqNG6te6w4cLV3qEc75qTycdcHA9vwYBYaRdQ2qX2n97", + "coin_private": + "xprv9xBDdiya3U7N11YcQ4Lieh471ipqt9y1oaX5TMmNqDyhKywEu9PQfnfGJvcVwA6YcnFwNZYyHfJZpR9sX3V5JVx7NxDfQk7NonN8LH3wLys", + "coin_public": + "xpub6BAa3EWTsqffDVd5W5sj1pzqZkfLHcgsAoSgFkAzPZWgCnGPSghfDaykADuK7DsqDsDFSuXGfT493jTg3d9HU6vacxZeYeMcE22XuNi9tDp", + "child": [ + { + "account": + "xprv9yc2TR4GKiTd5F6MaKofMxwuzjaFnjoHN5JY4CuadBdY9B1v471unEKKbkZq3ZuZtWAqhnJhWbw8NPaieFmaER6DET7Qv2CTKDytGK8mLwK", + "account_public": + "xpub6CbNrvbAA61vHjApgMLfj6teYmQkCCX8jJE8rbKCBXAX1yM4beLAL2doSzdA5RL89ZLbjvfosLTiJWh8h9soFdnTJqzRKBuTDF49wjMqGqa", + "address": "t1ZQ5iC5Jn4wtpwmyhL9jUXBMYvCCDMW1wZ" + }, + { + "account": + "xprv9yc2TR4GKiTd5mHWgj9AD3GTKBPCSC1RxuHBYNPNWhv6dcb4K3NaTZUoTi1ZhR2mFpvhAVxR8q8v6WQpinpkPRFUiovCVZh1PJx9b7r8Dte", + "account_public": + "xpub6CbNrvbAA61vJFMynkgAaBDBsDDgqejHL8CnLknz53T5WQvCragq1MoHJzXwRiiYmQJirRCM1TwnyQAzePg7ggTNh7euQ9Ltw7jYk31KFHh", + "address": "t1X633zTsRtHyA1CUzucwRtF4Tzb52g1Md2" + }, + { + "account": + "xprv9yc2TR4GKiTd9duPujQKN1xs5ysY96pSyrL2HNqrWRJynhLaSqryWSoocWXHJ7UeLPXAbjUZZvorsRFJKKF8Diz4s8kcCQZAFmJhbFQ1zD9", + "account_public": + "xpub6CbNrvbAA61vN7ys1kwKj9ube1i2YZYJM5Fd5mFU4kqxfVfizPBE4F8HToYF71bW63J1siqvmhkp2LHvvkFB8UCuZkLXGt9KS3iGzi1y4j7", + "address": "t1ZyBJhRMjSprmtH1pCgQgYSNFcjtK6sEou" + }, + { + "account": + "xprv9yc2TR4GKiTdCzyCqJsF1GexLRbPQ3i2dWMkGhSWFrPJJymj2sqYiQ6cu1BYKhYSdntvrfWtyTVeR7n1Yyjwri6QVMNcVfqPaPTHU4zs3Pj", + "account_public": + "xpub6CbNrvbAA61vRV3fwLQFNQbgtTRsoWRszjHM55r7pBvHBn6saR9oGCR6kKQnLCFfxMqWYfP5A4Md4aziYXTe3vt2NVTGqFYuXE7SLY8R5H2", + "address": "t1XGiyQax6TRJVx8DUoeyWrTei3Xfbd5bNf" + }, + { + "account": + "xprv9yc2TR4GKiTdFSVPBpFbwaj5ckbGDJdkru5V5uJHwj6MTbyXpetXdT5zQdosztaD8FHp3zAu4KCSxiE47dYwDSweu3BncMeprCnc3WVtbmv", + "account_public": + "xpub6CbNrvbAA61vTvZrHqncJifpAnRkcmMcE815tHhuW4dLLQJgNCCnBFQUFucHbdeRySUmhrCRtY73hJB2sjxkzJpL2iZtQSyFdeWu7D5scf8", + "address": "t1fL1KmxyW35MWYyvbWXxbz3tpXX4oEEKWA" + } + ] + }, + { + "coin": "ZILLIQA", + "seed": "7d0e4ebc53521377a4cd876d2c6f4f8586ec463307b563107a6589b5c4fff9ba", + "master": + "xprv9s21ZrQH143K2xyujfqxj9tG6HXnBJd7GY2cQY9f35KvwmKB1G1jBZmtpkZ6dec9Ey7Epejf5xx2XQ1imGjmoX45zMjyoRsqVgzqaZVwa9u", + "master_public": + "xpub661MyMwAqRbcFT4NqhNy6HpzeKNGamLxdkxDCvZGbQrupZeKYoKyjN6NfzNGqandUTUWcuUj9CvFXQxNfgwkiKZWCcNkNCoGctG9axGn9QF", + "coin_private": + "xprv9wKFyqRz9p9mqSitK8Ju3cGzr5jhxW9yNgMNnXsBKx1SBfH8sE2KGM8wp3Qd8pBguNNzedp6K5rJLa43sRJ4vy8ZSrKVqNKjHKnd3Zwdgvn", + "coin_public": + "xpub6AJcPLxszBi53voMR9quQkDjQ7aCMxspjuGyavGntHYR4TcHQmLZp9TRfJ7hwPt3YdsHKp5LL7YkUcoybnwLLNZa22jsXhzMCaZTTp4Vc5p", + "child": [ + { + "account": + "xprv9z3Vd6rQhtkQXxBXJDJyn5Ae2EezDqr5UfvVqfGGob171FTURWVpe1gSvqMJFDkSxqxmQi5r27hef1x3WuEXYbuvqAGvMNuh3nbjrbSevWC", + "account_public": + "xpub6D2r2cPJYGJhkSFzQEqz9D7NaGVUdJZvqtr6e3ftMvY5t3ncy3p5Bozvn6kJYxrNGPrEzuDAw7mBoCLf82238KLsekMy5FAXQCj3PNZJmLd", + "address": "zil1y5yrxkjxky7nnx2key8tuqjcz7zlf78wkseeu2" + }, + { + "account": + "xprv9z3Vd6rQhtkQaAUyHA8pMdwRVE27tiNuBxg3bccYZKH9BSDJJVRh99ASuDafJynWFqsoNE2CSNcyirBsXBdQb7jZZakp1kLwCM6to5gbea1", + "account_public": + "xpub6D2r2cPJYGJhneZSPBfpimtA3FrcJB6kZBbeQ12A7ep84EYSr2jwgwUvkUpV1Stsbz6GvRHdUVenoHvxhGZPBRGnyk5JXCXrsfhX6LxBh8z", + "address": "zil127hljwhmv2eptzxgk3wk282mlnt70h9fz53n0r" + }, + { + "account": + "xprv9z3Vd6rQhtkQcfp9yFPHHeReJQWefUVygRvZrtPBYZrokbQTxKgKe1ryF3pp92NfhputZGdpkwmJxBjNCRCdZeRzKwcXX9xeSJBEQxV3xHW", + "account_public": + "xpub6D2r2cPJYGJhq9td5GvHenNNrSM94wDq3erAfGno6uPndPjcVrzaBpBT6MSpeV9DrDHEhZnbjZNKEKZ8VaAp1dvxZCXhsagWMBHvXKmsdex", + "address": "zil1y2scpg56enxq60u9fjr0kfccs5rcfvufs78ey6" + }, + { + "account": + "xprv9z3Vd6rQhtkQdzq4v1c9dHWuEoZvwFNy9yDcUq9cYmxx6X6fvM4ERqLtT9wEwVaE4qrqqwBw5E62NsGMiQfW569MWdDRgjJcTBra5gz3e7x", + "account_public": + "xpub6D2r2cPJYGJhrUuY2399zRTdnqQRLi6pXC9DHDZE77VvyKRpTtNUydfNJRrFLPdBT7XaMpGSpEhUHzm3dNoZgNwfkoeFqgiWReU1zx7VhRA", + "address": "zil15sg0sra3u38l4u8urqca8dqej974n45yfgn6xq" + }, + { + "account": + "xprv9z3Vd6rQhtkQgVuP8CYQXwrTiaKg3Ay7wKTamhjhZbYextnXqxGm1VBjmJWhaXRQnwZa8sptU2mNeC9UJd9PDvTSG8xq4wT3Sv58A8qVigv", + "account_public": + "xpub6D2r2cPJYGJhtyyrEE5Qu5oCGcAASdgyJYPBa69K7w5dqh7gPVb1ZHWDccDjYJqYqRGtxrFVTivwbL9ZqfChLEUzGHvUUSfBnsuCxTFSaVu", + "address": "zil1w90kle5sxz6r3qeht4way54s3a4vqhjf76cvse" + } + ] + }, + { + "coin": "BITCOIN_CASH_TESTNET", + "seed": "3bd320e1d471e0bc5894bd43c3fd50598e2dc4029b0f1f7bc69e9b8c62024f0a", + "master": + "tprv8ZgxMBicQKsPf9ZAcP7dVaR356UiVo1hCVSXCHZbau9X3NhZghfh5uoZt38To3g1pVKGRD5ATCDBPMRXDvFB3CawM1Z5WkNw7kTYNM9D8PF", + "master_public": + "tpubD6NzVbkrYhZ4YcaxW2nDtz59e7zef8Cbmo3JUobu1AwusrxLK6VHGQRS498zgNkzRGx3Ur8hx9ZibSmiEsb5kc2niArLZuqipatnpUkU7hg", + "coin_private": + "tprv8exHa1dDB2t2Pb7EYje1Ay5Ju7pdigC6ef4D3jGRNSTkX1M2UR11T3AtC6htG7k8DG2oMLGAa5mPSd4y3GKuN5bTpuCU64UwpD2cqjDyvSh", + "coin_public": + "tpubDBeKiRfTKQZhH492SPJbaNjRU9LZt1P1DxezLFJiniG9MVbo6opbdXnkNGqMMiFYhk8X8kBez5eERwG3bqYRQjaLNEc5YoG7eqJAhp49kH7", + "child": [ + { + "account": + "tprv8gNP6y4kSzhAcqmumZR61dmTyH8kecSFGawHX9eCxPnQb5owF5mctY2jTLAoCcvCzJEtmJtGbjyuzvR1PVtuQM2xXTzXgW1ReK5WVNzntYq", + "account_public": + "tpubDD4RFP6zbNNqWJohfD5gR3RaYJegowd9qtY4ofgWNfaoRa4hsUbD52ebdVDgyMEFx2ZpGv3ZXs8656X7TDncikKGe8pZHsGYi8K99zGoG7L", + "address": "bchtest:qpm5yv5muak4fsjqkqymfyvaustwr2rjn5ng3xynjc" + }, + { + "account": + "tprv8gNP6y4kSzhAgx3GkKo9miByKzPW2zPCLVTB1Ch1Yaqv2YTx3HQv9X1x1PAbPExUuhmr8c62YtAppHavh5Pc5ayhX8pDdZxMBvjmnUnz6nJ", + "account_public": + "tpubDD4RFP6zbNNqaR54dyTkB7r5u1uSCKa6uo3xHijJxreJs2iifgEWL1dpBV69aDwSMEWpwk3vnLwPPkuVmczvR6THmZc15cqU9ExRx8pzC8H", + "address": "bchtest:qrydznx2udc8ktjc4xqkme03vgr6ujctvghccjj2z5" + }, + { + "account": + "tprv8gNP6y4kSzhAjEbyELgPavrh2w3qfNmdCwUnuNgzxDACjMGNiwVBrj6msiRHfnYPzzymNTuNjoM9muphnADRhQamFfvkDYerUNDKEnLGUU9", + "account_public": + "tpubDD4RFP6zbNNqchdm7zLyzLWobxZmphxXnF5aBtjJNUxbZqX9MLJn3Die3tjaDgVe71jQ5TntWmMnny24D3HEeGpWidUQW5JxycyAJgLXSP8", + "address": "bchtest:qphx4p9cm39umf67fr38tfp0aan0ex3ew5nc2urm9d" + }, + { + "account": + "tprv8gNP6y4kSzhAmKs3sPhY23GTeADZdMQfSu3UcGmxvazxWfWHLPNRBmN1aswGT7PqDre6w8r5yjtn37AacjYv2wwtdor2rvkNtLbKBEAQeCh", + "account_public": + "tpubDD4RFP6zbNNqentqm3N8RSvaDBjVngba2CeFtnpGLroMM9m3xnC1NFyskzkDwB73xgd2m9QiejuTDQBbtfsYhCorZa8zNsxrJsdQ52fGguw", + "address": "bchtest:qrrphv0dg3vr636dpusu2s53540ryk3sdc9s642pk7" + }, + { + "account": + "tprv8gNP6y4kSzhApa8X6HXtf7Ku68WpTZGraps7KVVkxyF68PzPHZLgHPae9TjkRkwnGVZWyRjsByT3Hxdpb562yegRPyBHuThbpGEduuo1xJc", + "account_public": + "tpubDD4RFP6zbNNqi3AJywCV4Wz1fA2kctTmA8Ttc1Y4PF3UxtF9uxAGTtCWKaiDaYxsekmvtM5bKKpQxuWxAHCEWGTVi21SfaoZDZZzKhU3F7q", + "address": "bchtest:qpve4cu3zvsggvdxefe44r5xp3s2gj2a3v2luftazf" + } + ] + }, + { + "coin": "BITCOIN_CASH_SLP_TESTNET", + "seed": "94a574ed808090e7cf141d0ea4fe8fc65ec0a56ee42790eb98b0973b0c2951b8", + "master": + "tprv8ZgxMBicQKsPd2aLPAXHKDxu9orTCKuruU62ctBnSMKew99QpfpUXrYaBu8iV1SQiZWbM71gNHDKHpwZCPBdcjR9UBYY8PqdjnYGNwCMhta", + "master_public": + "tpubD6NzVbkrYhZ4WVc8GpBsidd1iqNPMf6mUmgouQE5rd83mdQBT4e4iMASN1rKfE2e2KE3D49AucsdEXofMYwaYhGpAgW6UhjRXVEFDHJku5s", + "coin_private": + "tprv8fEiCH7wzyydL5hgkRpc1XpxNJ9NBm1bdSNycixBPDTUFJ5SD7LjrKA8Jp2Am7XndYHKGUbvgaCwJ9rSP4BReamqrEixfYf1pPfjsv4UTgB", + "coin_public": + "tpubDBvkLhAC9MfJDYjUe5VCQwV4wKfJM6CWCjykuEzUoVFs5nLCqWAL2omzUvj8zrZkYcEdGXaWhbrAqcvJd6DpCvRHWnR6qDnXYKpntBx224K", + "child": [ + { + "account": + "tprv8gJVGaUV9iSrfJBGd9DzS57kyPgsQ2SU8KrgZbvuc6sHb5thQiAHXpqbPCTS8Dx2oZvsT5oB3CgMwy2yQHm5MqbNaaegbC5aLwJVYBau8cw", + "account_public": + "tpubDCzXQzWjJ68XYmD4WntaqUmsYRCoZMdNhdTTr7yD2NfgRa9U36ysiKTTZNpDERBEX6x736jFDSRjmatqqw9KnRXBMXNFEeGg5QXBDJRz1Kr", + "address": "slptest:qq448jmunkdud0aygmtvalk52uefxfq3qv0vlhx8xe" + }, + { + "account": + "tprv8gJVGaUV9iSrg6KkxpMPLJv54paMmyJwh47ALGXjCN8wLSgTYg2rMChmExhH8nM6htBEgTqmyaE3BxBQq1Mxvq4xnJJnQWbKwJyJm7hV8RJ", + "account_public": + "tpubDCzXQzWjJ68XZZMYrU1yjiaBdr6HwJVrGMhwcna2cdwLAvwEB4rSXhKdR7jgCz2jVX1yBRa91thiE9sHxXRj4K9i159g7AtJ9knDkLxmLzi", + "address": "slptest:qza70ddz8py2thk9slxg8vcdgp33546azgqrw20zgz" + }, + { + "account": + "tprv8gJVGaUV9iSrjejB7HrsmPsKcPz92M35unaTr7hup8dLaqVvtp4pajXUGooQyekmRNs5ErACmbFt94bzf79AcKYqdeB3WcQbEH2uh8ivjR8", + "account_public": + "tpubDCzXQzWjJ68Xd7kxzwXUAoXSBRW5BgDzV6BF8dkDEQRjRKkhXCtQmE9LSxCV7d2VaEkJXsp2Xi83wX5dMTG3pooSnzVTLZFyScH63tBAu9n", + "address": "slptest:qzrcfh0yjs06q7hz4h7cnj9f78cwsc3xwyhv9eqnny" + }, + { + "account": + "tprv8gJVGaUV9iSrkmP18PCW9R79RxSciHDrKgqWhrn7eQv9HK1MVrt5jcruYpZPPMzoTbLQrD8a1qsgL79yjd4FobDNhsGSBihbCfNXRwe2bVW", + "account_public": + "tpubDCzXQzWjJ68XeEQo22s6YpmFzyxYscQktzSHzNpR4giY7oG88Fhfv7UmixcB3oRfY6TXXzsbw8rGgps9btbEFUNKSat5eFJSjtudKhB9eQJ", + "address": "slptest:qrm64va46ydtutzjwcj7js60swhsensl759hqd3xjn" + }, + { + "account": + "tprv8gJVGaUV9iSrp5HVPNJuQLvb1JBwYEvAWiHU2PiPJRWfVU6Td9LT1RGyUrPsSLKSiiNNcxpmdqfLi7Rkceov5nPbPAJpqGzCwi8znQrB5kn", + "account_public": + "tpubDCzXQzWjJ68XhYKHH1yVokahaKhsha7561tFJukgihK4KxMEFYA3Butqf27vWVj6gQPPRjr49FiZHDWM7SovyLcoeLPhBoMqRr76AcvLc1t", + "address": "slptest:qq6ge700c7k2xvatu4j5exwunrv8fphtlg6amr4smf" + } + ] + }, + { + "coin": "BITCOIN_SV_TESTNET", + "seed": "0bfe426efb860714aca8e88b950346f6f6ed11158b1375935a6fa52f3b7bcc2c", + "master": + "tprv8ZgxMBicQKsPdktACBUa1RK5vfdTqzWskdVdRrujtfvSaRUFgUdHtyAjNEpg5qrTQJBSTbv1S4JfazgX2j7Te8hTGgYv2RSUQqkHmbs58Sj", + "master_public": + "tpubD6NzVbkrYhZ4XDux5q9AQpyCVh9Q1KhnKw6QiNx3JwiqQuj2JsSt5TnbYMuL2tx8T6YhQXyePqo3F1uYF8tuPqewR3codcRgUZG4SCoqC7V", + "coin_private": + "tprv8ejt4iXRNQerxa6ffN1aaK1EF2fc7SLMDegVShFYwkFmvuVGgRW5GfZ6EurySzNbu7Pm8GLrrF2aqccwkvAHd3CVKD3S6KxZieTkb58Vdtn", + "coin_public": + "tpubDBRvD8ZfWnLXr38TZ1gAyifLp4BYGmXFnxHGjDHrN24AmPk3JpKfTAAxR5VK6gYerA98VveJR2bB8m995AiKpDYdhCSP3inRp1ZAaGgY53i", + "child": [ + { + "account": + "tprv8fmh2qXG7NPrTGQBvSxaqyyzKkU23E2DezagvZo65YAV97k8eRGt1RPJzFF9L5MEx4Q2eEp3zGvZ6DnNSi717tmn1w1ZMSZS5qtBLARGSPi", + "account_public": + "tpubDCTjBFZWFk5XLjRyp6dBFPe6tmyxCZD8EJBUD5qPVoxsybzuGp6UBv1BANqksuCD7q9iNetnY47AGnTBQ9UR7M9hm9a9i3wWfNppnDnPpEz", + "address": "moUuDexRxhF6RrNWTLGEpooK9dyFM5PbQY" + }, + { + "account": + "tprv8fmh2qXG7NPrVKtyNiweJ7KRNjAjpujtNR6K2afzRh8gPMEXEyR1XruUhA4JsZaD4Smyj8HwxkxHYjpMLdzCcihD634a61fCYzvrKi42Pjs", + "account_public": + "tpubDCTjBFZWFk5XNnvmGNcEhWyXwkgfzEvnwih6K6iHqxw5DqVHsNEbiMXLsGoFHbAB9QpHtdbAUkf5tAvt3TfoDZTWUZduvDtUqsX1b3rX9AQ", + "address": "n3E8otZwCrmfMPm74oiRpqgoMVu9ed4KpY" + }, + { + "account": + "tprv8fmh2qXG7NPrY1oik4x1fY3b6KNbpmwfv645bzJDamKAxtYEYVfgW6d3GTTxUgLzeKnGFjapFyiS59fiqT9HwC37nSjn3p4m4pesU2zrNFF", + "account_public": + "tpubDCTjBFZWFk5XRUqWdicc4whhfLtXz78aVPertWLX137ZoNo1AtVGgbEuSbuLtj4R8xjaokoUocR8u21Xe8jEi6yjiVvc7y88UdsKq1RF2kx", + "address": "myyys6M33DRxpKYM6sgFLq3gNpQxHDQU5k" + }, + { + "account": + "tprv8fmh2qXG7NPrbT4nhY1HqmdeqBwd4zSYMa5Aq2eSwQY4DRKaC7kZZNT1zsE5cWB7aRoGFnGsTmLAcqhLx5D1HRQMLEw7KxSEVAqTH3JLZJu", + "account_public": + "tpubDCTjBFZWFk5XUv6abBftFBHmQDTZEKdSvsfx7YgkMgLT3uaLpWa9js4tAzqNyj6fRPJMv98eEzpXMtw7cbUYN72TiioBVn7pa2Kz9EACSUT", + "address": "mxuPPvRkscYUFg43d9W3tiArvvG34WocE9" + }, + { + "account": + "tprv8fmh2qXG7NPrdHa2TjPJk7VSzN8mVfaWZSP8rn9LmEM379JGZH4vgDrmVyfdp7q2AxY8zTum3DjAisGYUScTBsr1RSERFPgjHKHhf4D2qDr", + "account_public": + "tpubDCTjBFZWFk5XWkbpMP3u9X9ZZPehezmR8jyv9JBeBW9RwdZ3BftWriUdg6voqGPPfkgBGhLFRNvuWW7GFyjfyow7dYYtcLXF5DF8ojCPB1E", + "address": "mtLj2XtN78tEwGNwt2dgeRCjJkXaa8KSPQ" + } + ] + }, + { + "coin": "BITCOIN_TESTNET", + "seed": "6d2200e8a69e9062b16a64d5e62216414332dfecf9799eb6fdd7b249b55e2a2c", + "master": + "tprv8ZgxMBicQKsPe5erJGmvkR58WP1ABS7v4V1QAvGPqtG1UkWagfN5eShT75rMvJn2RZRudhBFoZ3YxRzjjBG7v9kauCDBcdncoFuKyR5t8Eu", + "master_public": + "tpubD6NzVbkrYhZ4XYgeBvSX9pjF5QX6LmJpdncBTSJhGA4QKEmMK4BfpwKKHFKwfmTZU5jahm9wGoaTsWpgb5Yd764pCCYcBR9tCkpocMNTxwK", + "coin_private": + "tprv8eMJRKg4EdNDsiP7uUUGQcuPRYbWqT5FaV6kAFLsgjauuGeGr4n8YDgcU877WRdtf5rCfzNGH2UQNSmnTQyntVdyN9i2JzhwB4GvZVortCZ", + "coin_public": + "tpubDB3LZjiJP13tmBQuo88rp2ZVza7SznGA9nhXSmPB71PJjku3UTbiiiJUeDQoebXByuzGZNnCWgswWJJuo1vJ5NGysTSPzthyjFm2ucUqs1F", + "child": [ + { + "account": + "tprv8gjrtRuZeCtcCb9bnW7LpsgunErREvg5nKH1kE5MFzGHWnhbSrPYgNKAXaH3eEvQfLaWykhCckYSczPVzuBJwr4roJjBzWTjAtLRTwXRifb", + "account_public": + "tpubDDRu2qwonaaH64BPg9mwEHM2MGNMQFrzMcso2k7egG4gMGxN5FD8rrw2hiznA3pi2SQKnQRjR6uD9t1Vbv9jtAEKhWHqoUDKmW1NWJMFbZS", + "address": "mpfUSU9YASGcrQfc2F185nQfvcVbN4Abd2" + }, + { + "account": + "tprv8gjrtRuZeCtcF8LmYGQgrPgQca4KKeybsLnjic8KTn6ARhgEanHxEr4kRS1siPJxcpfURDmg4vduko98aXqcqEtsxt4J2G4Z7qZYgDXjvgh", + "account_public": + "tpubDDRu2qwonaaH8bNZRv5HFoLXBbaFUzAWSePX18Act3tZGBw1DB7YRLgcbZhyhXv4sFJsSHadADtY1TTBSfoMQeu5VPueFDW8rjaGkRPW1TX", + "address": "mtLPd8cRhBTddenZUGtPi1sZaLFZ847uAi" + }, + { + "account": + "tprv8gjrtRuZeCtcGH9unPcjBn3tar5svUU4VwKyULtD5DuVdDmrs1uPwRwu4ghgwDrmMbf4xNqMW2cCtr3g4xmm9gtCtcHaxSsqsP6qTs6yeim", + "account_public": + "tpubDDRu2qwonaaH9kBhg3HKbBi19sbp5oey5EvkkrvWVVhtTi2dVQiz7vZmEpxFgQa1RSGhh11u99K8wDc7CRQgfDQwyubH46MkapttUqmkimk", + "address": "moqfZoQ4LLSF6HHyW8RuYXaE2HnUMghKs7" + }, + { + "account": + "tprv8gjrtRuZeCtcKqh7YikzkjZMbYdbCFaEwFxdfz3CiQSH2mnMbQYmpnxbKXsP6uhdf8RuYiS4YHRmFYvFWcjQW6EePtNKzVhc4DUo2XEWr8U", + "account_public": + "tpubDDRu2qwonaaHDJiuSNRbA9DUAa9XMam9WZZQxW5W8gEfsG38DoNN1HaTVeoXLyxiNNsdV8R26PaPSdPbdvikfKCMRsHwF7YRqBvuNYGNr64", + "address": "mnf4o3YRx5VPdC1N6Xhyuuc1UZjyJuUPpH" + }, + { + "account": + "tprv8gjrtRuZeCtcNn5wcSskqceMWQiQMEF6c4aQKAhhBPyPejZeYHiTwgFhyddpfqbV6yVc35tnMDZjr1x1PcFbGZc15ZSxce5JrnoYDa5NS7J", + "account_public": + "tpubDDRu2qwonaaHGF7jW6YMF2JU5SELWZS1BNBBbgjzbfmnVDpRAgY48Asa9myvAWo7D81HWyLEgix97CFR6YN2aKUjn2MkLWhidP3ykWn9JwH", + "address": "mn2MBYrMqJKbRSchoiTFGchVUBWPvLcb36" + } + ] + }, + { + "coin": "DASH_TESTNET", + "seed": "8b71ee55c7dc7708bb928dbdbbfd9c9633a74fb9abd7821754441f3f7eb740fb", + "master": + "tprv8ZgxMBicQKsPdjkX27gNYXs4JHtSUErTsZueai99shBshgP3d4rxhW35BpXjvFyL9Tjqv8KnrtxZtngWttpZoD5WQRov9kgCqcuG9YmT3yi", + "master_public": + "tpubD6NzVbkrYhZ4XCnJumLxwwXAsKQNda3NSsWRsEBTHxzGYAdpFTgYszewMy9cQGoaYk7zcfEusdJPUFmx7ie22TTRSrYeGn9gG6SDAw3VhNa", + "coin_private": + "tprv8dUDKDQtV2crxhCm9vjVep95BUnwpQ4sZsQ1Fa225uzSQFVpgqeKSxRJ3TJN1xUWrs6UFwAAQDK5Zigz4bBadjf14kS9VR8L5aNk9Qgch6x", + "coin_public": + "tpubDAAFTdT8dQJXrAEZ3aQ64DoBkWJsyjFn9AznY64KWBnqEjkbKETudT3ADaiXkebW5YrsK8o9ZDZg3jFctMzASkZC4wPzW8yKtoWMbZ37S3U", + "child": [ + { + "account": + "tprv8gAEHkSj6QNCZ49TN2KSRZ4M36XeDf6A2r4j2ji8qS7bViBkHxAUWQnVrZtDwpfnpoVyQeUKCBRpTUwjPT6CAKr5BnjHMLHtd4SgR1c6KBk", + "account_public": + "tpubDCrGSAUyEn3sSXBFFfz2pxiTc83aNzH4c9fWKFkSFhuzLCSWvLz4guQN2iyeDX3T2m3NbeEyLSviLiptwW1vKzYBW6muF7YAN2nm8cuAwTX", + "address": "yPVKdD9FmC52jhF7U1sp35yTjwP6YMRh3F" + }, + { + "account": + "tprv8gAEHkSj6QNCbhiBr5jNkuSDBHPdrRJ3BHCrqPT6SjyxhejaQr7yiD5ERZu39eW7uECFD2UL1dcG37FZiEaTywJq7Snbj1aL8RcB3Rqroun", + "account_public": + "tpubDCrGSAUyEn3sVAjyjjPyAK6KkJua1kUwkaoe7uVPs1nMY8zM3EwZthh6biZ1AaBHspxcWSRXvN29kej7UnKcqiT51RqhSpRDVn1dtwa1ckn", + "address": "yRZzbLFDdm6dJN5CdA8SRz4Xg6GPMYCxi4" + }, + { + "account": + "tprv8gAEHkSj6QNCeSipgxQu7csqzZhwfEb5fn3ZRUUJxmbG6Akz4AA7q6QX9H39resDmA89Gmbq2jS1cXEBzpWDNWf6KwEdgsCRWBqfMiR1L5Z", + "account_public": + "tpubDCrGSAUyEn3sXukcac5VX2XxZbDspZmzF5eLhzWcP3Pevf1kgYyi1b2PKSuv8qJW8atQTw61kGr76wVenDSsk6zvrxqeViLFsTm8DtAzAiu", + "address": "ygtb5YviVVvHkxFLWkgQD1b7aUnodTd6Nn" + }, + { + "account": + "tprv8gAEHkSj6QNChZ1MhNRBosUBBcwhY8znQLjfutDV1p6hqiEaeNSBUFAjCoXuyVAXe6nnTADG9y5Qg13f9QRqezhcyY31decias5YR9Ak2Jn", + "account_public": + "tpubDCrGSAUyEn3sb239b25nDH8HkeTdhUBgyeLTCQFnS5u6gCVMGmFmejnbNwWPMs9XGPvBiiQCiyqwVMRerDUnVFa95m1AiqVwM7q8wZ7vvTU", + "address": "yiWFtZoPF78DRLn1Hytqj8rRLgmbFwGRJY" + }, + { + "account": + "tprv8gAEHkSj6QNCkoXVjozCwTMt7SoZsQQYHPtJAFxV3jBou1Yo3xtPpsJn4Nf1wpH3EngznhLJKM8E1WvrpzAuMEENB6L7FZU3bku5MBBcEcy", + "account_public": + "tpubDCrGSAUyEn3seGZHdTeoLs1zgUKW2jbSrhV5SmznTzzCjVoZgMhz1MveEWnFmrUou2QcqeEWUMskMMZMBe3vwrtjPcHQ4KpGykNiJgF7ezN", + "address": "yUWnbSRBghEbVxwhfCxuxUDX4KBnpE9eAN" + } + ] + }, + { + "coin": "DOGECOIN_TESTNET", + "seed": "51cfbc0d958af094f992a714eb12531376a4a69c3f3b0f7c29500c6d93a2c42d", + "master": + "tgpv1aRS3XcGkbKXEH8JjYfMnHGn5tokyC2WiavuY51FssHCM4UeewFJHFvzrZQrt7oiGVysEWPA6AadaH1aToPnBEaBQ8Ftjs2gDcCmmr2h26i", + "master_public": + "tgub5KJTPDYAJjyrX8nTmnHKu8pNYTBPoK4E1Bi7hBQEfzLCu7bM4ho4vZLeRqJXEQxJVFda21VZPW5qrVGaxizEUTRCT78mZVp1uRgpvVscFxS", + "coin_private": + "tgpv1edMWD4RX37FdSa1MYcfTqCQbBTBhG96AVrvmVET4yM9A4HSMevgdu6dCt2YQUYXncCekA9RkMta7Rccnfb88aqPnnyF747j2LtGj4xRVau", + "coin_public": + "tgub5PWNqtzK5BmavJEAPnEdagk13jppXPAoT6e8vbdRs6Q9i7Q8mRUTHCWGn7LepYSwDge3RnrobU4pCgQawVgk2KhSZRGtyH3EsRKEuCuhJ64", + "child": [ + { + "account": + "tgpv1hsmyQYiRvMrPTuoEf6Rqy7e56fNHUPaFTv2bqqzpFgFTffk5so7gBV9G8PZnHC6ANE7YcS5qhSejqGuAmcPNM2cvv5yW9A9WQyujQsdHL8", + "account_public": + "tgub5SkoK6Ubz52BgKZxGtiPxpfEXf317bRHY4hEkxEycNjG1inSVeLtKUtnqM8hGfZ9KRTiUQr4D3pHiiimKMXvPWcge7zxY8BkRg7TxwxNsrQ", + "address": "nhwnCMqpSVEBiLKEiP3ZNppp2sGMWyuNAK" + }, + { + "account": + "tgpv1hsmyQYiRvMrRcEezYoqDVcnYCBSdjv2SARuVfn2GRwpTQgn2Hz5roA4AU2Z5dKuJkQZ84Ce6vMw8x8tZgryxSyjtR2pSKUnz2Jrp1NNVro", + "account_public": + "tgub5SkoK6Ubz52BiTtp2nRoLMANzkZ5TrwjimD7enB14Yzq1ToUS4XrW6ZhjjR4ZsJ5BLuvRFbiLkDweGG8qL5JB76Lux3iJsAaCZx2qxby9xa", + "address": "np2E5rF9yqdRjg9VXzgbPdLidXHTpgHpNn" + }, + { + "account": + "tgpv1hsmyQYiRvMrVVcfDr4DsxGDgD4BDmnYEnBPdvXUSsPq9VVy4pA4PKu186pz9jodxKMTHXdNKq4JdnA4Nbv35Jt5FGNECPgsz5ojj9Zypck", + "account_public": + "tgub5SkoK6Ubz52BnMGpG5gBzoop8mRp3tpFXNxbo2vTEzSqhYcfUahq2dJehKLpcAHGzJU1UkgD8ip264yuTb7g2hKhitZZ4xVyGvCCSeCs4iE", + "address": "naDshjGWF2xgJt1n8VoffKe8Z9aNMewUKX" + }, + { + "account": + "tgpv1hsmyQYiRvMrYuyvXpUSrpqfCQYSrkjp9HUbEgVpQKNsnPDkWFnUgthbbfJSoa8mHU1J8Hds89Nzqstihkc2Z32K37Jvr8qXZfQrXocPsak", + "account_public": + "tgub5SkoK6Ubz52Bqme5a46QygPFexv5gsmXRtFoPntoCSRtLSLSv2LFLC7FAsTiTxyjaaXKhcoMecVgbWzarh6ZKbqbh5ejswdMFpRbtckueRW", + "address": "nrriusE82Ji2b5GDkbD9qgYLaSLA3X4PJV" + }, + { + "account": + "tgpv1hsmyQYiRvMrbbXqCpuZhBPcKLNvzpAieZAHbqwTHTALGmx7aKTQaiTdr8NrBGnvaZJn6v5DXFRpLkc3FXt2HBRHb8iE2uZv2xVZhNmZNcf", + "account_public": + "tgub5SkoK6Ubz52BtTBzF4XXp2wCmtkZpwCRw9wVkxLS5aDLpq4oz61BE1sHRQFNsFmEZkewSumSencfak2rD1R5UjAvUCgqVSxuUWQTYyVJ8v8", + "address": "nWk85meZAuVr6hY4oQo1LVQRYd4DqFkKqM" + } + ] + }, + { + "coin": "ECASH_TESTNET", + "seed": "09bacd080e25c9dea579c7398567876ded0967ca79ba6e95c1d1140887a868cd", + "master": + "tprv8ZgxMBicQKsPe8jfStvnPfxhuZRV11zxi9x5XAYKNK5FH3NUfy1VvroBYASUZHgGgy6rFXk3Gzir9nCSMPSs7orB8LeoGEzkTxZzr1iJAcJ", + "master_public": + "tpubD6NzVbkrYhZ4XbmTLYbNo5cpUawRAMBsHTYrogacnase7XdFJMq67MR3iHWGdaUFmNHyWPoTd1XdW6A1vKH3CDeARwA47nKx3FytJ2Vkw27", + "coin_private": + "tprv8evVAyCFP6kTTT56trq9Q8Cv8uRrLcbmA55Ji9Fwawnht26qEnuKb9wLRbN1AG4mBiJGGGmYHpSqGiD7opywdnAym9XyjXoegWbESkNqjXK", + "coin_public": + "tpubDBcXKPEVXUS8Lv6tnWVjoXs2hvwnVwnfjNg5zfJF1Db6iWMbsBiumeZCbkKmCGndw7kpMYhFoUsXQ5Zvt3T85kaijDXidukLbkwvhieqz5V", + "child": [ + { + "account": + "tprv8ggsjtTrka4ckBTFwm6MqACjLgdYz2u8dCsyu7LpGWRmayoL9vKR7d6A48xGUUnzUC57u753872pSD7ZrFJvd6qtsAy2QyzQzSrSJgyZbpy", + "account_public": + "tpubDDNutJW6twkHdeV3qQkxEZrqui9V9N63CWUmBdP7gnEARU46nK91J7i2EFZbtWXoVGhCwgaGR9MiGesy5yHDcjmXshFbJQrBVAeAqrPjDcL", + "address": "ectest:qq8van6jpur7aur7q7zs32hvpwq9fad47g40aerasy" + }, + { + "account": + "tprv8ggsjtTrka4cmbZQio1Jv5Ks2YhvHNW8vWmYjKXwNEmMSVZDXBW5dE2naQj78owovfzRUaa1X8DFfqicKygo9uVTizk8hYnrEwXyi92JEp4", + "account_public": + "tpubDDNutJW6twkHf4bCcSfuKUyybaDrShh3VpNL1qaEnWZkGyoz9aKfoieekYLDWvTPpToQQuhtzKmSy33osNjyhKe8rdXENvhhVQSEwrEz7DH", + "address": "ectest:qqhl8vksgpltpx6wlxhnr9lczxulva7kugnaff78uc" + }, + { + "account": + "tprv8ggsjtTrka4cqdkYiEY4Vzb2DfvCU7bqGET3qQRG4ZW5wfhtehfqgKRFo7JbKWRsvmgQKDVUkMMAtJ9vgQCXnc6wV4XdFvocSEddMbbF6ye", + "account_public": + "tpubDDNutJW6twkHj6nLbtCeuQF8nhS8dSnjqY3q7vTZUqJUn9xfH6VRrp37yFmJ8bn4JKLXLJg8c3hhdid2YB6xMZcZfxLqAtFjkFSnC1ZV1Lg", + "address": "ectest:qp4vm8xg8jlljl0svpl78s02c9899dspkcj8f9kcgg" + }, + { + "account": + "tprv8ggsjtTrka4crQWm5AbPV31xULJFTNJgBe5VeVdy912g1CwiySEeUVffVTCQMHXwBRvBZLBpKutQUYkGjZCUiZ2gfa4XSVZZxhs8CJLKzBC", + "account_public": + "tpubDDNutJW6twkHjsYYxpFytSg53MpBchVakwgGw1gGZGq4qhCVbq4EezHXfcm36iDGatVJGeosJmQ2Zmg2c11bjV1iuRbxZyyKkeuLXk9zER9", + "address": "ectest:qz0lsg89gj9w03tgad3eddhavlkdsu8znuswrqljre" + }, + { + "account": + "tprv8ggsjtTrka4cvjM2hzJ8vfL3MdR8L3awkSnZsj6iSJH4gnKzH9r2QJLTfgFJV9cfzgTvACdW8jPPHTUf3PJFs7qvJgmQMVgGNTZS1EuK3ks", + "account_public": + "tpubDDNutJW6twkHpCNpbdxjL4z9vew4VNmrKkPMAF91ra5TXGakuYfcanxKqqvw62HGM2FA9ZzK5z7YLBwTAxtmeEPqfrhhkRMZo6qebAKnWbD", + "address": "ectest:qqptqfw2pq4jvmvucr5addqv3v26u2lkjcy8tfe53s" + } + ] + }, + { + "coin": "ERGO_TESTNET", + "seed": "5fb1f577e121da3ede82a44b0d201e91bb97debf51f98418b708d1459bc9a593", + "master": + "tprv8ZgxMBicQKsPe78E1RUrtVS3FbRY3nXU9SrtCv3mkUMNiyx9yDSmZaxioLMmn1pSDQ1GBmBt6DT3XooSzmSgK1fxtBwrm2mXSFrcFJPVUeY", + "master_public": + "tpubD6NzVbkrYhZ4XaA1u59THu69pcwUD7iNikTfVS65Ak9mZUCvbcGMk5aaySaB3JLvi8wtyjVL89SSnapvuqXZFFDFnNYjeXi5DFMgywVG1qc", + "coin_private": + "tprv8eCejhdkfoYBMGJitTAgCkhK9siV6v7T8iHWao9E9PnbhVMsmEGDzJyoUVNGbvTaaanveLStuoLvsTKZvt6WDv2gEsnjZ4dzE2uDn8D8Hoe", + "coin_public": + "tpubDAtgt7fzpBDrEjLWn6qGcAMRiuERGFJMi1tHsKBXZfazXycePd5pAobfedqdUbFY1qoq1LSM5xe1MDZDfFPrGQ7GEXWF7zi9iF6QZu6hxLX", + "child": [ + { + "account": + "tprv8fifF32cDZdpxU79miMEXK84HGWGvecw1oh72RDj2JM46dhYBsHpSGRZsFCGUmabYQuPeo9gbvBL2pRCQWeiLDp3o92RFZQenXN4wji2zaU", + "account_public": + "tpubDCQhPT4rMwKVqw8wfN1pvinArJ2D5yoqb7HtJwG2Sa9Sw7xJpG7Qcm3S3Q8gv3LQC6DRhTH7MWAfqBZrM7G3EMRftmGfbhqHQbAUWzbAsQX", + "address": "3Wy9ie83iaQmvxbeGyqkeNJZ24RocgifHexWF74RjPsFXFM1eyKn" + }, + { + "account": + "tprv8fifF32cDZdpyNTrmYUz97ExwZcB7Lq9qA62Hc1GW588wXtuqaFuRbwub1LgPmqBwD2Yf3Nuv7UDsgViwr6zhxfPKK9418CGkMUeVC2CgK9", + "account_public": + "tpubDCQhPT4rMwKVrqVefC9aYWu5Wb87Gg24QTgoa83ZvLvXn29gTy5Vc6Zmm9wqxn4DLnvwmMRU8os151KWgHuV8PDYwBz3Rndqwv3o4Eyn1qV", + "address": "3WxSRfu8tw2d26HTdsHFZasTok2a5HrB63ZQbYS5v3eckjvm1zz1" + }, + { + "account": + "tprv8fifF32cDZdq38vzoVmJc8DkJpCxnSLfRqnTBmcfnTbkohGgqkgH1tNvpr7Txq5DZx586ZJjjhEs4Npe95jBnKPFgrwxc8NPFY4ZqKptHet", + "account_public": + "tpubDCQhPT4rMwKVvbxnh9Ru1XsrsqitwmXa19PEUHeyCjQ9eBXTU9VsCNznzykxvZrTfZdLKjHeJaSWmoR9mvyTzNkPo2kTxoo6RFugC7CtB3t", + "address": "3WyC9BYVTwER44ZP5kgDxzDZjmeD5J7piuCj6VCjXeg9Lx2TipDF" + }, + { + "account": + "tprv8fifF32cDZdq5SsBQGtG9B5nQA6MeVFYwP4S3iQy8gaXQq2Q4e8WBXYhiVWdMQMmtu88SGFA5zQ2LPvgoRwpbKba2vpmFcgGhygLhjT43z8", + "account_public": + "tpubDCQhPT4rMwKVxutyHvYrYajtyBcHopSTWgfDLETGYxNvFKHAh2x6N2AZtciKCFFgmiVtxNY5baDePds563bJ4zzRtAXq27iqJJ9CQvBUBcV", + "address": "3WxC5ZppSuLc6WV7CtdRJ71Ct6NsucQfXLKHC6Tja9tvo386ubr2" + }, + { + "account": + "tprv8fifF32cDZdq6mpgVPXf7zcxdYbV7tD14SK1LrkvXpAXmbcx46UjEDSMbLsXnTdYnKJBeAW38T7DpQZdyWK7fGhq86e3NTe8eY3vzzZuP7q", + "account_public": + "tpubDCQhPT4rMwKVzErUP3CFXQH5Ca7RHDPudjundNoDx5xvc5sigVJKQi4DmWYkmavaQrWXq3ZrhVqqncnDjizwXcs2HrP6VsrPSr3GHwH4QYc", + "address": "3WzMJcSpifMkc9xycCoYqCWGghVohNiQ4JouQYpeQKuxFpW58YE7" + } + ] + }, + { + "coin": "LITECOIN_TESTNET", + "seed": "bc3f7c32b167398e2e451fa5dc18c16d6b94d24f24bdd7416a1a3e8a34b36a55", + "master": + "ttpv96BtqegdxXceQs9E1qy8EMxZ32n8J98RcweV3xhRMsr6XFn8QXFqEUbvUFF9WAJsFdaMvTCvb95aY4BoVcZx1iE1oaa4unq96uVkPefsmWH", + "master_public": + "ttub4XNESS7BCg9c2jr4GTTWJwnmUbUKNPh5hTkWiwTiJ4dh7cyCjSJGF5iBibZKuosvHzLVELkgLZB8LStwAqUqzNxukpdum3fQH31TnaobCyR", + "coin_private": + "ttpv9AprXuBoBrgsYEaZJ6pnTUyvKtwn6vb8iuTNWhPR1kcZVo8rUy37gr8wPP631o7jqp6E84T4vsDoUQHWC3qNkpJLptSZgvBWe2f7yCtTcS3", + "coin_public": + "ttub4c1C8gcLS1DqA7HPYiKAY4p8mTdyBB9noRZQBg9hwwQA6AKvot5YhTFCdkv9JBnj6psU4oACVYyvgV42ggZFMGLb88FZTgbR3QVBCSHfVwR", + "child": [ + { + "account": + "ttpv9D9s5abwhoPjVbf2d7tYaR9xDuyH9HicdSUGMkGJSuB1zvTqhFLaQ6oPivS14P4QyLwc5gb5dLPVjWqB2jUVZyxwEYMUVrc6N5tfrQ7i2mu", + "account_public": + "ttub4eLCgN2Uwwvh7UMrsjNvezzAfUfUDYHGhxaJ2j2bP5xcbHev2AP1QhueyH6SfCmqK3AHqHAGq3Hugu8kurd9ySUCbm5226ipb8YNupDLZu3", + "address": "n3SWKDcjPKDxB2BQxVfCjDpx15DatDPGme" + }, + { + "account": + "ttpv9D9s5abwhoPjZBsLCtMhdFWyvXWhN1msHgvAe8DTFQPZENsy1uoKK4zxGu4u2gpHbRCKbJ6Hd2mJZzEYkaj5oyHEeVLPuoa5XuCEaFJdFVc", + "account_public": + "ttub4eLCgN2UwwvhB4aATVr5hqMCN6CtSGLXND2CK6ykBbB9pk53LpqkKg7DXJKrofJnRtJBop4mEWL4i4nYhuTp5U2BSDDpfr38u23UBCCdsPL", + "address": "mtiUj7GqFG9MtA6zzNH1wU96xdESrZLGHB" + }, + { + "account": + "ttpv9D9s5abwhoPjajFkKyAkW2zgKqv5uieKNWeuozZU5FW6Ds3SmVmRBorqPubEDs8inu6wNJCnkCkjTGorKCaw3XyTnuFi8zkLkWAPDmhnkCG", + "account_public": + "ttub4eLCgN2UwwvhCbxaaaf8acptmQcGyyCyT2kwUyKm1SHgpEEX6QorCQy6eHjR7KmsMg363jVtdhSNgofu8X13okMY5H1w2tttByEHxds7bYq", + "address": "n2K4rzAryuCSbrXijmMkLmwNma9hRgdnCP" + }, + { + "account": + "ttpv9D9s5abwhoPjfMsFFEMWkrPqK4bCEvoZRBHvDgiTL519CGr5tJbVGYxLkdda7uQk7EnhJAf97LjuwYyW1wJhPm1hhD1gFBfJBEbMkpksKRQ", + "account_public": + "ttub4eLCgN2UwwvhHEa5VqqtqSE3kdHPKBNDVhPwtfUkGFnjne3ADDdvHA4bzzPENJWqXZ3LhiYHmnHBSTL1t9KHtPJpYALnEVRazihR4S6pPci", + "address": "mhZAeurbejTbtV9rkLQvSJTVMyxXz4miz2" + }, + { + "account": + "ttpv9D9s5abwhoPjhCFMqYpqGufU8JDvyrf5fMiLGKxMX6JqxW1vWLWxMaWAUjK3yYmequkQhsc6natXxkiRbE5ayjiERSJXjyTeZdT88AZHtRX", + "account_public": + "ttub4eLCgN2UwwvhK4xC6AKDMVVgZrv847DjjspMwJieTH6SYsCzqFZPNBcRj5Z3RjdJTXgsq9V9zEVfXq2cesmq4bU358RGXgbdTM8gUuXu4BU", + "address": "n1yTTYae1A2xkxfvqZwidaboSgPG5Xi7EC" + } + ] + }, + { + "coin": "ZCASH_TESTNET", + "seed": "18f835c036580f254daa9b56469465efefada6f3f6a4c193fb3ad13054535d7f", + "master": + "tprv8ZgxMBicQKsPepbuMLF8Dc8GSLnXQuaDnXcU919a4qm9Ms2GVvNZAczjDHvAtXyrLdPTtrWu79mHgoMRKeCDX6oYZv4MkcRJ4uDssnPcbJP", + "master_public": + "tpubD6NzVbkrYhZ4YHdhEyuid1nP1NJTaEm8MqDFRXBsV7ZYCMH38KC9M7cbPS8AXQWDCjWiFahjqViVyjkyfzejPYdHTyh7jiLvNDt2fzLb27B", + "coin_private": + "tprv8dY2FFmKobuRSNo523nUAyVaDXhBzsuC5spv8qwUaNU4uayUj2ckNfMHK86xQ2qWdQKt2HvFzLH1HxKJte3P9vgdJBPxEXBfz6H7Sd3y2jX", + "coin_public": + "tpubDAE4PfoZwyb6KqpruhT4aP9gnZD8AD66fBRhRMymzeGTk5EFMRSLZ9y9VDtwuZjeAmaja5RPjyLPfm9AW8BN7476RWwJWzFQBYBcSSwx8wq", + "child": [ + { + "account": + "tprv8gyHLnFu8sN9Esw5h7T7cGJd5KRmAadfYEtfAanv4X1BqGw841AcVxPvu9SWRuU5GpiBTCq76bxGmuinUzXMAfQzQ1XeeDyX1H7VARMRGG7", + "account_public": + "tpubDDfKVCJ9HF3p8Lxsam7i1fxjeLwhKupa7YVST6qDUnoafmBtgPzCgT1o5K8mSeve33qb71tDH2vYfqV2mBSGAmgSxuK5qegJ1paUwfzemPF", + "address": "tmDpZpucmyLEnwZNhdhDd4RFsJBCB1wvqAy" + }, + { + "account": + "tprv8gyHLnFu8sN9HYBP5yqM2Hf5AKMVro6zv5FFL4ymo6VGij8pGCVg9oiLdd29jZFzjPJmRVAdgUNm8vhJwD5mDc31RUwkZDS5Hom5Qr3Jw2E", + "account_public": + "tpubDDfKVCJ9HF3pB1DAydVwRhKBjLsS28HuVNr2cb25DNHfZDPatbKGLJLCok7XHi3mrUroMF4P1T2MwQQeB9iYCJHXYkwndnBSiDzkXztGW9W", + "address": "tmYGBfWCeGPYuG3WqbtH4Pbpdihcs3n9obG" + }, + { + "account": + "tprv8gyHLnFu8sN9MaNzXDrBeXTvvMVvtvHy7EAdeu1Whvpw2QssJSLpawJhK8DRoqvLLheGpKm3qxca3UZ6ZFsC39gqfHPtPDnjaHcB28zGipM", + "account_public": + "tpubDDfKVCJ9HF3pF3QnQsWn3w83VP1s4FUsgXmQwR3p8CdKru8dvqAQmRvZVH8wJbLb4pAAisWd8vgyS3YzLJu9ZxVXjZGeRJkuec9viNkgK6a", + "address": "tm9wE5QXkd5cenAKjP42mkQKBrx6q3NN1f4" + }, + { + "account": + "tprv8gyHLnFu8sN9PE93gqXuYxyJF9uJ5RZ2BfWFbQz1STQS3VDHpq8bixSK9AwqNKUnmSQ38tBXRwhQg7ezRbkKYnQnyoeZGqkHU91D2Vzv9x1", + "account_public": + "tpubDDfKVCJ9HF3pGhAqaVCVxNdQpBREEkjvky72sw2JrjCpsyU4TDxBuT4BKK53wmmeLGRMMayEfhbxhierfkhxuDEgzAaxYY7rCJt7bvSVxxU", + "address": "tmUzh8gzofSrg9uDVriJnH75iPKG2MRiNFQ" + }, + { + "account": + "tprv8gyHLnFu8sN9TJuP96M9dcHCSgpoHE2a7LR4QXCHq3LA8SikNHrbfa6QDDrd8ErUbhZgddEqUYhDbnjh7szr2NswJmnays71s16esQGeRcc", + "account_public": + "tpubDDfKVCJ9HF3pLmwB2k1k31wK1iLjSZDUge1qh3EbFK8YxvyWzggBr4iGPKmvjq6nYw3suRujUkb3hZfa1tfdvPciFddA6XFUfus1KpRKcee", + "address": "tmFBFmCtbVrrVRuSaPeN1g4hSuBA8WhK4B7" + } + ] + } +]; diff --git a/test/bip/bip49/bip49_test.dart b/test/bip/bip49/bip49_test.dart new file mode 100644 index 0000000..c070166 --- /dev/null +++ b/test/bip/bip49/bip49_test.dart @@ -0,0 +1,30 @@ +import 'package:blockchain_utils/bip/bip/bip49/bip49_base.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip49/bip49_coins.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import 'test_vector.dart'; + +void main() { + test("bip49", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final coin = Bip49Coins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).replaceAll("_", "").toLowerCase()); + final b44 = Bip49.fromSeed(seed, coin); + final coinInex = b44.purpose.coin; + expect(b44.privateKey.toExtended, i["master"]); + expect(b44.publicKey.toExtended, i["master_public"]); + expect(coinInex.privateKey.toExtended, i["coin_private"]); + expect(coinInex.publicKey.toExtended, i["coin_public"]); + final accounts = (i["child"] as List); + for (int i = 0; i < accounts.length; i++) { + final accountInfo = accounts[i]; + final account = coinInex.account(i); + expect(account.privateKey.toExtended, accountInfo["account"]); + expect(account.publicKey.toExtended, accountInfo["account_public"]); + expect(account.publicKey.toAddress, accountInfo["address"]); + } + } + }); +} diff --git a/test/bip/bip49/test_vector.dart b/test/bip/bip49/test_vector.dart new file mode 100644 index 0000000..37e22a5 --- /dev/null +++ b/test/bip/bip49/test_vector.dart @@ -0,0 +1,884 @@ +final List> testVector = [ + { + "coin": "BITCOIN", + "seed": "d749602cbce28b98e7e286c44ca0284330c3837a1454482ef57a02d32c4a26bb", + "master": + "yprvABrGsX5C9januGBZnscpXUA3rTxRoLfFnKVmPReJejTo7H2xqvNYjhTmWeZM4SaP14RWmxxJDqaKe2EAVfjwjuv59zzjMTGSQKcStgaeYxR", + "master_public": + "ypub6QqdH2c5z7967kG2tu9ptc6nQVnvCoP79YRNBp3vD4zmz5N7PTgoHVnFMumVSTCrsUeaaReZMxSusAwNvGRBdBuHdK6usnJ5HDKZvp2nPCS", + "coin_private": + "yprvAFzGv68pop2ZEcX9K9cv4qEUju4uVie73UZ7LZyH1VADXaaL6cnfg7gxjLDCN4Chehvg1FTjnhcAx4YWndrKrzFDFrkqVSbCe1BKYKqSjqj", + "coin_public": + "ypub6UydKbfieBarT6bcRB9vRyBDHvuPuBMxQhUi8xNtZphCQNuUeA6vDv1Sabspq3CFfL9Bw2dyMQ58WW5N234iv9RGK8t1GxuSuEbnzEfus3E", + "child": [ + { + "account": + "yprvAKN9QUupnwt51HxSNemdukUiras9rbhJoiKierjDG1sJxDh2btnvZJWTUFQ5Uhp9ZqVTMfQpGC4PNYV3bVeU3igCdExVMdWC2BStTTKFj5c", + "account_public": + "ypub6YMVozSidKSNDn2uUgJeGtRTQcheG4RAAwFKTF8ppMQHq22B9S7B76pwKYkcLmA3ShRf6wDtZ4DvnSjRZdbNsA8YpEGvvnLnYggTHJmBz5K", + "address": "36zFCqmRkE4H3NYK5Le7mYQVLCGQJujVwW" + }, + { + "account": + "yprvAKN9QUupnwt53QBVVtgc5tpfVM6QbzHm2a1UpYHQbp5d6XxWyTmKV22yyXvLhcDB9mTugww2hZSBJfVUiqPqimCVBuUJtXETqoFDQbeqYKH", + "account_public": + "ypub6YMVozSidKSNFtFxbvDcT2mQ3Nvu1T1cPnw5cvh2A9cbyLHfX15a2pMTpqHeX7P2idT81roJ7HU4Arwd94vpTxndkrwpRqgb7xgLN9w8xWM", + "address": "3JYYWFQyNtqHLUsaZQQR1BqvfSWqY26yfu" + }, + { + "account": + "yprvAKN9QUupnwt55V9sgeqCDuRAJ8xNZGKfLY7VQ6xRsCKGkV3qcur8mapbmSkDJweybSdGZEYBdwaoWoMtuCbhJkkNsaG9EShTCLU11UgpTCQ", + "account_public": + "ypub6YMVozSidKSNHyELngNCb3MtrAnrxj3Whm36CVN3RXrFdHNzATAPKP95cirZmFgoHBfqXpKTBrgsCWkh6ZiXTsTERem7YQyW6gsitcnuBev", + "address": "33TptDL7EZweWvjMJPjmkMxMNoTpsfoPzX" + }, + { + "account": + "yprvAKN9QUupnwt56YVfoSXdhGEsvnWVDyehCf6H5hxGaGMZ15ia4T7Pgii86vzHRPGDa5UxH4x6nkkVCD3v7d8hitVFECTQfR7sHDzLGim7Qgw", + "account_public": + "ypub6YMVozSidKSNK2a8uU4e4QBcUpLydSNYZt1st6Mt8btXst3ibzReEX2bxDZsmzK7G437QakVuHiQqk5qxwonybBtQhcvteVwSZkhMm6RzsK", + "address": "3GBUpE267GRDs4BCwgGtu53kxHjnkz3CiR" + }, + { + "account": + "yprvAKN9QUupnwt5BHfAJ161SiddJS1BvUgsGQS2ZsSSmZQNsCGs5gzPJZXBRA9rHoK39oScBwUfzVuotezt8N3CGb1stnd9ZM1fCAriHf65VW2", + "account_public": + "ypub6YMVozSidKSNPmjdQ2d1oraMrTqgKwQiddMdNFr4KtwMjzc1dEJdrMqfGQmvdAT8ThoqdE7uiEfA8H9mpiTkdyBTjgm17ggD4tNMfXziSJZ", + "address": "3AuwFzLF4F9YD95wh2yeLWp5sM6PWwoqyh" + } + ] + }, + { + "coin": "BITCOIN_CASH", + "seed": "b0299c2a89d8bbaeb6cd8c741e4de0adca6d52e7384867711ef87632132860ab", + "master": + "yprvABrGsX5C9jantwEsTgrPPzM99i3WkwS6jFPuFBZq3q1wnDZ4XAZchwF6qKTdusLfGurgEjnisEissGqhr5y6dsrBXcWwehq8mqpCqVR3ZhZ", + "master_public": + "ypub6QqdH2c5z7967RKLZiPPm8Hshjt1AQ9x6UKW3ZyScAYvf1tD4hssFjZagbPNdJzbjKSq5L29XHktgf61a9A1prJhbqYuPJGQKz2jHgf5bYx", + "coin_private": + "yprvAGqcwDhKwxdG42oMFb8t4eJfFo6KD5DaWoLdNuaU9N16YEZMXnASbP2rVuAJVKwRnWABTrgMinwE265xdebpFjNZXTPKFPMzwFwxXcEDAhP", + "coin_public": + "ypub6VpyLjEDnLBZGWspMcftRnFPopvocXwRt2GEBHz5hhY5R2tW5KUh9BMLMCAUHNHEa4KiZSzYFa52LM5Qp3HZsq1hZxjzKeWY4fceB4Rf31k", + "child": [ + { + "account": + "yprvAJ14SkJbmorp1BoKHUf7MBrinZ34HEFwosPvTcbtPinFYq9HKRrRz3nS74fnbRuEwXf3yu14bThxZ7pwe9hM6RTuNMoM2dMusDY5ujffxec", + "account_public": + "ypub6WzQrFqVcBR7DfsnPWC7iKoTLasYggyoB6KXG11Vx4KERdURryAgXr6uxJfxajPNEp34UWYrYfoZZdjLer2jAT8VqYTCrQsDdyxJ12BgVPb", + "address": "bitcoincash:pq4q59s9uhy05pjzddvjhshq2nptjqalfudgf607hc" + }, + { + "account": + "yprvAJ14SkJbmorp3qB9jz7EY2zH5F8VkQkREzgNCdyQCMUuXhn75911kZiygZy54VhBXw3opzryt8WStLiBwH9HZDRpX3kEsLYMTS4opqEET5i", + "account_public": + "ypub6WzQrFqVcBR7GKFcr1eEuAw1dGxz9sUGcDby12P1kh1tQW7FcgKGJN3TXpTZRRFptdYEuUe4PHJXuqmm2cqxjV8NTfCmdQ6FkXhXaFKGQTG", + "address": "bitcoincash:pzts870lmy8qx5d0wkzjdpgts6qwm248cqy0lqw9z9" + }, + { + "account": + "yprvAJ14SkJbmorp68rP71fucWVJWKTciJvvg1viVCPe3aACLbBNcMDrVV1CEtnoE6z5LQsgQ7G4D725H3SBXBiXZBWjyfpBQzkxkXUYZuXvTds", + "account_public": + "ypub6WzQrFqVcBR7JcvrD3CuyeS34MJ77men3ErKHaoFbuhBDPWX9tY73HKg69oFDSgCc5ZRDRT7XjAf7PqbWyiHiS3QuPbfjprCpA8CyCWD4w2", + "address": "bitcoincash:pqwvglqcxz6s43k26lx0373rwrq5drf23qld37vz90" + }, + { + "account": + "yprvAJ14SkJbmorp8kd6nyVffPr959m5QrM58wvMimvNHjN5Hb2mrRPnUtro9gGADWTrJWiM2WqLYPxX4Ja9Z9QEi7v2eGodqqEYvwbB6oMHab8", + "account_public": + "ypub6WzQrFqVcBR7MEhZu12g2XnsdBbZpK4vWAqxXAKyr4u4APMvPxi32hBGzxG7nwmTdT13jax1VuDj6qYasd8RaKwRrhGo4XhjmJp3cNjcerB", + "address": "bitcoincash:pqz9kvqlnscqzr966n2nsfe6wu283ke34yvrxk5ggj" + }, + { + "account": + "yprvAJ14SkJbmorpC29VyUSPTedjTCSdJerqNVQqSiLzqoixiff5SYRvbFwS5pPMGjfSDcB15QxmiGNFxJ6oWrhu6W23967C6qDVVoYMuZVpjoM", + "account_public": + "ypub6WzQrFqVcBR7QWDy5VyPpnaU1EH7i7agjiLSF6kcQ9FwbTzDz5kB94Fuw5fs7Shrxb8xD15gDe9m1nTpf7aLf2YXf5As8ZSxdU1wWfmxuCk", + "address": "bitcoincash:prnhc0cvyx7zujqwxjhu3jgxsf0eg7lgug0q9da3ds" + } + ] + }, + { + "coin": "BITCOIN_CASH_SLP", + "seed": "bfde1afc949d9394863a3845643f88ba767f26c074e85f4a153415af69b22aa9", + "master": + "yprvABrGsX5C9januG41gXFCCaSLdfh5nQp9dUPLoqqYKQfCBU75WqVpq9raun2UP4gECtptSSG36uUwYxzuY5ZVvo9z9yUKphbeJji7reT1GSP", + "master_public": + "ypub6QqdH2c5z7967k8UnYnCZiP5BhXaBsXzzhJwcEF9skCB4GSE4Np5NxB4m3yWj6U5oZHf5mXZmbrA3zwkKUtQ27u9uqJD8ns691FPqoWqZGr", + "coin_private": + "yprvAH65YX7V2RkTkvdrfAubFpxJjG5hiFEk9AnoSRi3hKRHxcLqqRosozPFb6HZsxtctAVZXEqXneKPLf458NU321eYhXEQeZ5278DdHdHckVX", + "coin_public": + "ypub6W5Rx2eNroJkyQiKmCSbcxu3HHvC7hxbWPiQEp7fFexGqQfzNy88MnhjSLiZ1chcrvyg7NfQbGD8XRKVzWWoNLhFxwRzYP1ig9X5qBrK9kh", + "child": [ + { + "account": + "yprvAHa2Rzo5ys5xrQSr2RtshSpBXRiE2etcLuTsxJLKkF5qXQVseeYRpF9p9AmNCMrHDsWptkucoWnvMyAudhKPkcFdHQHGgiYzgaP2uTmTy2z", + "account_public": + "ypub6WZNqWKypEeG4tXK8TRt4akv5TYiS7cTi8PUkgjwJacpQCq2CBrgN3UHzT8F5ec39BwwxYFviRmKYJ5nQAvB4weqgEk7M4x4eB38X6PSXAt", + "address": "simpleledger:pzk9jlfc2f7kpz3tyn5hfx2dmu0mhxczyv0xvyz3s5" + }, + { + "account": + "yprvAHa2Rzo5ys5xuDMCuPfvdtFJG4LnrHJ9czjnjJep5s7CfUWL9eQVbSzBuzr7V3xjwiQRzqEz5ZjhRQDVaLVJj9XRW4yV2bQz1S2z5wDWFBM", + "account_public": + "ypub6WZNqWKypEeG7hRg1RCw12C2p6BHFk1zzDfPXh4ReCeBYGqUhBik9FJfmK2tgyGsuutyuEucpo9APnFzg86L88mkm8au75FLFbxjNbNfoRA", + "address": "simpleledger:pr96meexekvhucvfkhr2jhxfvv225paqzvf2e23657" + }, + { + "account": + "yprvAHa2Rzo5ys5xwQPkiWZS66ASA1PCzrih4Pd4H7diAfXqBMhzhfokjrqKZTYMjum1FcmTnW9tG5F7r91VNMJGPLd3aqHuGrMSatPxzqLnvKC", + "account_public": + "ypub6WZNqWKypEeG9tUDpY6STE7Ai3DhQKSYRcYf5W3Kj14p4A39FD81Hf9oQmPtMGTJtF8XiZsDagULrdab16w5rjiC4n9uXDCstsanfMjUKJz", + "address": "simpleledger:ppn6pwqz5as6752wahcntxm58anp6379muze7z4ze2" + }, + { + "account": + "yprvAHa2Rzo5ys5y1mC56Qia9iJCF6swbuc4v34ww6691kL5KQ5T4qiSy1ZfVywb8fkxoHDVBKCy5siJHeGKhaRxtMcna9uAmSKAMfmz1h7gF22", + "account_public": + "ypub6WZNqWKypEeGEFGYCSFaWrEvo8iS1NKvHFzYjUVka5s4CCQbcP2hWot9MET97zyXAs1RF371kTz7FZtWTXbxTRaTJECFyDRbx39VVPhyPyZ", + "address": "simpleledger:ppmcrck7kgjxtraed022yn5xfkq7tfq87v47qxfd8l" + }, + { + "account": + "yprvAHa2Rzo5ys5y45D4VtYVBRpYkv5s3eqrRpoTAaNNZE1pAfgKh8vAcMgmcjMEjEke1wMjvM7M6pEnq6jzKKPJFUkmfRvmJzvDKqQT2jWXX9M", + "account_public": + "ypub6WZNqWKypEeGGZHXbv5VYZmHJwvMT7Zho3j3xxmz7ZYo3U1UEgERAA1FU1u5WRDaQKFaz7Ni19TNKSeUceMYfkv8zkxk3zkwKYfS6gMMcif", + "address": "simpleledger:pzgww9ngwkm69fr36ekvgcd235w5phung5zvp50rjm" + } + ] + }, + { + "coin": "BITCOIN_SV", + "seed": "0104fb4b0cba0730690f4a7c1c7c2d4ff5bfd39fb00b50549333e72690b928b3", + "master": + "yprvABrGsX5C9jantrcs95sTF6kvSBcufjTh9bBxTQ8NNyqzq8FhUPhqsQoUP6JQmAQj3W4Ek2xSYvg4TxtD6A6FiCr3M1PDtV5Kc7mhS97yWkq", + "master_public": + "ypub6QqdH2c5z7967LhLF7QTcEhezDTQ5CBYWp7ZFnXywKNyhvar1w26RD7xEN5hpUBQ7cBPA1m5f376s87pXNvfkMLLrhVrJnXWV765XMvQbBr", + "coin_private": + "yprvAHB9NGSK4EdVfTxwiHMiK8b3yGTnhvA9YWvYGgBv2vgZsihiJcLN3ZuAv6d7iwKE16Pwmm3UWSjb5t8HkxRUEh8XBocijjVrYWLW7RuytGq", + "coin_public": + "ypub6WAVmmyCtcBnsx3QpJtigGXnXJJH7Nszujr954bXbGDYkX2rr9ecbNDemNC3m7XetmEJU9TGHuS4MfrSwrXktZWf3zuTVXqief3bDEbJxNm", + "child": [ + { + "account": + "yprvAJUA1kthfD2he7fpZsyubKJHboZ39JF5z6idCFFfAQxnMrmz74xU1xu3K6sZS45THdzweeQnvKth7Q82JwH4u53ayHLZgAmPXc4ujiAF6pX", + "account_public": + "ypub6XTWRGRbVaazrbkHfuWuxTF29qPXYkxwMKeDzdfGikVmEf78ecGiZmDXAPQTPBuoCyof2i8dKgSXhhkUDaA3CyrQTGrz8KZAHpwk8nPbNbL", + "address": "3JV4WL1sZmHJKLGQFCC8kiPqYdb9D1NmjU" + }, + { + "account": + "yprvAJUA1kthfD2hgdDHNnSaHjmvNVdZesFd2hkkpScvW1DUVtVdd3jTVbeXHRFP5F8qr9sfdu1whN7aYtLNMdEmFYMF8tKGbvdK33VzXdjwXCn", + "account_public": + "ypub6XTWRGRbVaazu7HkUoyaesievXU44KyUPvgMcq2Y4LkTNgpnAb3i3Py18hJ6Xjr4fyN36XNF5WSkJojrSw2xh5KZpAsyZHiLZYzm61yd3Vk", + "address": "3BExsxzUiQbT7ysQVdnVhBW264bLqQTaLY" + }, + { + "account": + "yprvAJUA1kthfD2hhr2QZF7Sy46ocvUHRpeXdBiKUm8baYqjA7iRFNHpewmC6swHWuhNQC2SCMSNJz27AfbsTZaMQ5FiVZ2C51ATjdJDivM8yYq", + "account_public": + "ypub6XTWRGRbVaazvL6sfGeTLC3YAxJmqHNNzQdvH9YD8tNi2v3Znuc5Ck5fx9QeDtvDeTgBUAYfvDkCyhyVmyPPfibz6WxBMexP617DBpWbFtw", + "address": "337xeGbhX3cfU6RNVYyd3wPparXJdChXxp" + }, + { + "account": + "yprvAJUA1kthfD2hmozJ6R3w3fyZjT4DSpE6dFLz3Zrs6jx6on4zsKkF3LygSFbNzHxpsBqvz9TyHmbF9mhi2veVjwQ6mdJT3KLXgAnfUCXzH1E", + "account_public": + "ypub6XTWRGRbVaazzJ4mCSawQovJHUthrGwwzUGaqxGUf5V5gaQ9Qs4Vb9JAHYkVTKC2JsFvtWjpae9G2LzY3jeWWmQe5ktcEYEeTM5UJy8kJzE", + "address": "3PhaqDcxnvhAeyQ7VJxmFKX9QAEfRk6Y8K" + }, + { + "account": + "yprvAJUA1kthfD2hnda6eVVokAsokTaXZg14UZ4REFqm3fm8ZBVuDSJCSx9yvsi8iDzdbrFxUkKX3EyZUhBKpydNbkxTPx2WD6dkHFYjstjsqj5", + "account_public": + "ypub6XTWRGRbVab117eZkX2p7JpYJVR1y8iuqmz22eFNc1J7Ryq3kycSzkUTnApgYFkbvCGLgrqCJJSgsWWthrLZnPik4yf3H7XZsbG3pUcQuZe", + "address": "3DWKPqqKSC1vvZYRWrP7kWGKY75C61KoxY" + } + ] + }, + { + "coin": "DASH", + "seed": "1e830da2773c3c5a1d5727ddd371adaf0e492e0f844d32cb0f3aafe0404ce948", + "master": + "yprvABrGsX5C9jantADvDvK4X5sissTBBCppzL1YtnnTbBnc3NnLz19wBpmShGpQ947GiiqaRJ5YDMKDupsUomxxwpMSEqUpQkQxMiSWytN5ewh", + "master_public": + "ypub6QqdH2c5z7966eJPKwr4tDpTRuHfafYgMYw9hBC59XKavB7VXYUBjd5vYXawAfRm7qTHEeVmoR2PJmLAVy6CAFx79cCBeEAvh5YSDNoHSGL", + "coin_private": + "yprvAGNX8ahnADKhq2GiJVnwMtEwQ6wpRTVeTMqE2U7mPvmWS8NK7zyCTDHpj9zzEWUSk1bPKCxYcJJ4iSt24y6b8pswRPoUVTUiLScaA6uYBfR", + "coin_public": + "ypub6VMsY6Efzat13WMBQXKwj2Bfx8nJpvDVpakpprXNxGJVJvhTfYHT11cJaRcPtWMKqfuPKyAP7En6J7XH43GUTXoMfvDT3nrzxm9gzvWcSjq", + "child": [ + { + "account": + "yprvAJtEaReNYoJ1xXkwkkPZ5JCs7SNaKLk3oaNstaNgDjoiXsXeUGaxYKLWnTzCsZZVxX9Lp1sL1Y9nxUWppReGDCBAAXyUMiSS4a7gGE2fV92", + "account_public": + "ypub6XsaywBGPArKB1qQrmvZSS9bfUD4ioTuAoJUgxnHn5LhQfro1ouD67ezdjZrpZeiLZujUvz2q66QVe4Vg6RjUqKQGVyDPyWWtWqsp2ohbVQ", + "address": "7dL2L922xkw9ckJvVrJRm4vQfMdQGHBh1G" + }, + { + "account": + "yprvAJtEaReNYoJ1zgfF8aq21gQnFxohcUwsGG4QKZ6hMGyxj1QWHPo8rJ3QWwkXunHZv5dg6pGGyCd6u1BY4GxLCZ3sD2mHgg3qBiC9fq8ete3", + "account_public": + "ypub6XsaywBGPArKDAjiEcN2NpMWozeC1wfidUz17wWJucWwbojepw7PQ6MtNE95zUz8wvbxs1fSiTahv2wFh8RbV7EbfhFy6fK2imPfjrWTr2E", + "address": "7kVsWv4ZSoXNcmFsmBHrg3duCBK1estnJS" + }, + { + "account": + "yprvAJtEaReNYoJ24qa48PRW2nnyyiaiCkbWiZmyAHBphBzH832zhGmyySSUYnWejicm3dTrD6mrENPgFz5pvWVBSs9ahXecU2g8Sd65b3rqKJN", + "account_public": + "ypub6XsaywBGPArKHKeXEQxWPvjiXkRCcDKN5nhZxfbSFXXFzqN9Ep6EXEkxQ39edSKuxUYk1tG1rK6hoZZhWPG9o7FYgD2qotZTvXseiRKgEqK", + "address": "7VxnA4MpYXZUhk7JFR1TEpdA8C1NxcTgKq" + }, + { + "account": + "yprvAJtEaReNYoJ278PYs5rDc4k7yVVECn2nBL7QqMAeq1mdifAihMbWXGwEguEVPoV3KKgyyYMXa6K1YPh5vCi57FaHDDxhAjjbcXr9tvApZh7", + "account_public": + "ypub6XsaywBGPArKKcU1y7PDyCgrXXKicEkdYZ31djaGPMJcbTVsEtum55FiYBDmpxypwfCppZAL1qoMqBxDXA8f3EFUCZznyKbTxRMuVCZ56BH", + "address": "7V5Q5V1Zfc3QaFatx6aXbdEPHH5aPKybHb" + }, + { + "account": + "yprvAJtEaReNYoJ29KjeMm8CrizoXEzUWQ1cbzMs3JtzggQPdR1UFUaTauYuiGa4athk3ZBPSjarbYXMcMRL64AR8S5RJNokAnbEh1oGKDU7oyH", + "account_public": + "ypub6XsaywBGPArKMop7TnfDDrwY5GpxurjTyDHTqhJcF1wNWDLco1ti8hsPZZBmavQqL2sgMZiTkDSEUwf2SVrs3HhABjeRcX6JrnynjHcjhfj", + "address": "7fHeEq6P15gsax1fyRw2T17kSRnvEXqAEK" + } + ] + }, + { + "coin": "DOGECOIN", + "seed": "0a832b067349fbdbae35aa2cf0bfa9534f3bc36e1f1867e31d42b2e9d9d0a6dd", + "master": + "dgpv51eADS3spNJhASSisemwHxvWTLyuiApXp4w8uQL67NfVNqgWaVqT6pjrMxkFRUuCg7R7mjEYmDMuXKUog8M3nVUSNNrjbFSpjEoSGWYy9Bt", + "master_public": + "dgub8kXBZ7ymNWy2TJ6sutPuQpU6uuMYYHrF6fiM4Wj4uViVvtoCzGPDk89VwDFU9CH7ppvXs6YLbrp4PhMZ74gWBZLA8HHXyHfoBBt3onw56WV", + "coin_private": + "dgpv56hBih3n6FFDmChWqvw1GD7HoCvkXvWCx12eQEpvUi4i35dsYSYMhey9qwwj24JdWYWj3kmh6bpQvctVXAWZq2N4GfQsK9gVTPfPic7mSxZ", + "coin_public": + "dgub8qaD4NyfePuZ44MftAYyP4etFmJPN3XvEborZMDuGq7ib8kZxD68LxNoR9RaekbD1LrnBdacNvKRVv64SaYzbx7XnF6LGBBkDCbbgUqZjvL", + "child": [ + { + "account": + "dgpv58kgjbroxF2NkVt6d4QEu8m51SRTxoxBu55H2QbVfSR1CsofgT3H4Af5P3rGbDmQAfd38MQCJeGSGTzq7vE3UyGfsaeaueSKEjRAmhUhLuN", + "account_public": + "dgub8sdi5HnhWPgi3MYFfJ2D1zJfTzo6nvyuBfrVBWzUTZU1kvvN6Db3hU4ixHUdtS4WUZTKSPaV2AoGpd4RXZXij8hvaDAVjUkegKGSufdCzdz", + "address": "AEjBVnqGtF9VPMcjvmXyBY5vxcNsFb5T44" + }, + { + "account": + "dgpv58kgjbroxF2NopgvtN5J66BNKmyFxtze1tqQ17xwDneHkcCtudTZBi3w5TvC6puUQVuae5Av42u7MfwcDV1jnZmtFdHjowp61s69L1ebgK5", + "account_public": + "dgub8sdi5HnhWPgi6gM5vbhGCwixnLLto22MJVccAEMv1uhJJfKbKQ1Kq1Taei9184QWrSYzh3mtRdEbqCNuaqwoAC91xH458exvLHdmWLmCAKU", + "address": "A7ETWZvkoUd9zHs7KL7W7v1mv9rU9M51M7" + }, + { + "account": + "dgpv58kgjbroxF2NqPTx1agG4er3F5gT1JpTSY8nQXJeEz1CyPQfey6WGxwsmbvoqkS8t8dPSbGtDhe6NVYMFVdC92oTT4tNNSGDqREe2icdGje", + "account_public": + "dgub8sdi5HnhWPgi8F873pJEBWPdhe45qRrAj8uzZdhd374DXSXN4jeGvGMXLpZqxyHdtPUPNomFA6AkEPMMH9gDVsHs9xw3ENfoCY1SyQNE8St", + "address": "9u1e59muS1WmdXuF1LCNHaweXTmGDfyjiW" + }, + { + "account": + "dgpv58kgjbroxF2NtZDrvfJFx8vdv3FCwJaFpQLjPzpiTuLNJp5gjguqVVAMx4dxDFrWKAboH9CFjVoC3SHLjMnSqmTQUTTuJkGsqnmG4gBvyog", + "account_public": + "dgub8sdi5HnhWPgiBQt1xtvE4zUENbcqmRby717wZ7DhG2PNrsCP9TTc8na1XHmhLJtnhi7Zy6MrytSFbi8kiqLcdMujStdNsKnQcPKALqrHA7G", + "address": "9wrckdPjKNN4swFYDMWPccJnFeD2J7j9VX" + }, + { + "account": + "dgpv58kgjbroxF2NvYZF1oZ1jZgFpc1Z7rQBtq1VBdsgppeVkUJgZDK7QmgitH4u1ai1doFAvNWCtctZXdzyuoiS791jG2yQeMXKXsPPbN8U8GA", + "account_public": + "dgub8sdi5HnhWPgiDQDQ43AyrRDrHAPBwyRuBRnhLkGfcwhWJXRNxyrt456NTYTSftwgRQLkf5z5kpeoEwvaQiExYR7QgECuPmRzK3mczLkBeZU", + "address": "A3Aa9L3k3RiSeE6ExqNUje3ciPHKb1efEn" + } + ] + }, + { + "coin": "ECASH", + "seed": "7625dd88bae78bea44b75275e7697d54d592b1d0ab853567c2931a2c40e74582", + "master": + "yprvABrGsX5C9januNsmmS8nPrFJey85GFk1Q9XkjDFFistCkZRk2XKoyVqcz6Uf1mg5kW6MfxvCFtxZGKH6ciJWRarTXSytW8DUaMGKEkTGt76", + "master_public": + "ypub6QqdH2c5z7967rxEsTfnkzC3CzxZfiTrmNTMXbesHDRBdMkta4e4XJA6qPjR1VvmWYGjnXwFgq7tWyZ1WMGY4BmFyrEVW5CycmeKdt8hWSo", + "coin_private": + "yprvAGPmogPo6XH8YkqxnYkkQJAXEUUXiHhYwhZNRzab7gZiytEDjAZBxUaCJbYmewec6XodmWUgZHEhbJRZUx8gUBzYwW9hXML8wDBV1AWpR9T", + "coin_public": + "ypub6VP8DBvgvtqRmEvRtaHkmS7FnWK27kRQJvUyENzCg26hrgZNGhsSWGtg9rTjh1uFFKgGxHx98F54mowyYtv9ywbbw2qgMG9wVBSjXwDeqUp", + "child": [ + { + "account": + "yprvAJHnE2XPJk24QMiwsYVMfWAkj6UnFJY97PHiAqiGXS7KbmnHqX61HxtMW3RsAgaquPQE4gFkvy3YQw3Q8PpiT3KMWCQ6zbBE5uybVHG8uSK", + "account_public": + "ypub6XH8dY4H97aMcqoQya2N2e7VH8KGemFzUcDJyE7t5meJUa7SP4QFqmCqMLijYrBomL84AWT62EYCkHAzdwfjoPQeWfsiZXXuqxkT4Vb7B7B", + "address": "ecash:ppqgv26vz0eppuzs2a9w7r9snwa93s4dludmkp47td" + }, + { + "account": + "yprvAJHnE2XPJk24SMnLa9g7dciK3JAPbtWbsLQ14kydHhkxNGrBrePMsHnMSeYBgU1m2hw5XLWXmFvUH199vsuvPzq5UPU3JcEhbhzDZGcSaf6", + "account_public": + "ypub6XH8dY4H97aMeqrogBD7zkf3bKzt1METEZKbs9PEr3HwF5BLQBhcR66qHu9cnKBmiNrTQBUsN1btSU451gpvAM1xeHh6j5iLa9AYEKFgcr4", + "address": "ecash:ppm0f0zzpzrsys6l59eptr456y55gnykmsxwsf2n57" + }, + { + "account": + "yprvAJHnE2XPJk24X4Qb1X45GAca5gb21HT2eAY3VwvSTcAn18Zf8KRxhZBs5DHkoFW5VV8mdM29g9n5CJ2Xe1Utk1rA81Z8LjLpVNR4P2oafud", + "account_public": + "ypub6XH8dY4H97aMjYV47Yb5dJZJdiRWQkAt1PTeJLL41whksvtofrkDFMWLvUNt2aBUGdLbbkpjHwAtPvsBKLAxDeJphkkdEvZUWZyzL5pdCuK", + "address": "ecash:ppzxerh85uml2sl00y6twzv52cccf5av4vm5657mfd" + }, + { + "account": + "yprvAJHnE2XPJk24ZUmiwCJTY8yFdE6LJ3TMaS7Yozpv9CnAxJb2HSq9tg8G6qN8tFm1MDyHMHXthighhZSVmkMyg5bLy1tL8tFpofGFsF72eyc", + "account_public": + "ypub6XH8dY4H97aMmxrC3DqTuGuzBFvphWBCwf39cPEXhYK9q6vApz9QSUSjx9Pok3WDnLay7Eb3ZQUcRtecViLXyDa2sTpKcKpZwRazVPPa5f9", + "address": "ecash:ppja0zc7dkxge6uprue9czu5fkp2meh94cu4wpdy3d" + }, + { + "account": + "yprvAJHnE2XPJk24c8ZA9sLGNEhtUFtJnccQA34fPi8dvBo4eM9Ppcf9Y7UHUmYayGx66S9PPeViqZESEKiGTWDNVbibHyoNeEbLYs35rX3d2pt", + "account_public": + "ypub6XH8dY4H97aMpcddFtsGjNed2HioC5LFXFzGC6YFUXL3X9UYN9yQ5unmL2N9PNWETjYnqm4KC6gRBBXMack9YZtgQxoFjG9hcjkHLD5rpFs", + "address": "ecash:pqrnwa3l27kaayjawvh7fcgv0tlnw4vueu5jc3kvvg" + } + ] + }, + { + "coin": "LITECOIN", + "seed": "56648355e9dbcb155cffd457fa034a08231d904e9d733f202bfd507a88a8feb9", + "master": + "yprvABrGsX5C9jansudiua8KbjfrQU38uDqkzAuisRABCYiEdFwPewGL4st3z3iBfcQbP2FbZPksHQTmghkbrLQddNZrMnM3yR8LTM1ESdMTvaq", + "master_public": + "ypub6QqdH2c5z7966PiC1bfKxscaxVsdJgZcMPqKfoZnktFDW4GYCUaacgCXqKaDtr7VmkbhpGtLdDaXWUdJ1iDDoNDpvj6eEcBoindTstUSqCn", + "coin_private": + "yprvAG3rxkK98mkawL3mCCC79qZuHfzJNif6YJvR4kBjd9nQQDbQRyVheDq1s8Ki6hMSkMAjPQSrTVA9S7jwxLXbAw1TCEApCD9MdJfuDXUnk99", + "coin_public": + "ypub6V3DNFr2y9Jt9p8EJDj7WyWdqhpnnBNwuXr1s8bMBVKPH1vYyWoxC29ViPK8bvVLBm23V3zMSym1RmNv7aEYmQFusz1jHK4iJLrzHd9q8J4", + "child": [ + { + "account": + "yprvAK8VPYqY8ofBHDUMZVfVRSFF4TvnwjKpSCChaySeyKXRP1JVboHty1JUQogYzHmTY764osG6HLSzMBqnBEDy49fMHCGFjcM5yqCHENirtNd", + "account_public": + "ypub6Y7qo4NRyBDUVhYpfXCVnaBycVmHMC3foR8JPMrGXf4QFode9Lc9WocxG6Wbpq3CQrsZa6WU6c5J6kiMKVkqi47JnDMTW9GQCCqJYfT52MD", + "address": "MAZ1YjbnCQrRMLZ9FDXc5vSAGAUGrHMxoW" + }, + { + "account": + "yprvAK8VPYqY8ofBLNrHBdByJoKE37e2PvtocGtsYYTi4zCNHAs16MccnzqoyLUYob9ecZWobWhSuqUFaUaZtfCHZohPACNrTPxtAMp2zjQjMse", + "account_public": + "ypub6Y7qo4NRyBDUYrvkHeiyfwFxb9UWoPceyVpULvsKdKjM9yC9dtvsLoAHpaeKoL8ELQbfsCdQM6eBdVV6zTaPXa5PaE5uPYuHU2mJzYK4Rsu", + "address": "MAUkdAePs2VUvWM632cFwYJfEswSiCCHtV" + }, + { + "account": + "yprvAK8VPYqY8ofBNG2koyiA1CSL4udjK5me3RhicTd5DvnKXaeiF35EukFa6HLjGuseYY44umMZxkvw1RECUFZqHL1PruLDDd2DApPPusFFCFV", + "account_public": + "ypub6Y7qo4NRyBDUak7Dv1FANLP4cwUDiYVVQedKQr2gnGKJQNyrnaPVTYa3wYg6iB8iSqkJ77BuXb59EyiKrKXKWZFdWwANmizj1dcBJHMy3uS", + "address": "MSygp7Qgu5TNAg3TyVZTRYj8tEvybYAvAv" + }, + { + "account": + "yprvAK8VPYqY8ofBRXnwS6oC5gN1fxYg7nqnfLGoDRsAEEJzKaBibuDd3DnttahVF4EcJmVQ6kbEmyCjiCfUJ3nr7nKz5ASaByRzPwVeFmGDx5x", + "account_public": + "ypub6Y7qo4NRyBDUe1sQY8LCSpJkDzPAXFZe2ZCQ1pGmnZqyCNWs9SXsb27Njrgfg1KhgQSfpHmQ8Jz68Qe2cQn8U1z9ih8N5eEVckdWZAb7d44", + "address": "MTePV7xEdSH5boPdiqXMfMaxYvq4B71mT9" + }, + { + "account": + "yprvAK8VPYqY8ofBUT5fAuNzZ6EdQ59wyYLQ9sLQZX3upHEmgKJLuHYhaMXSmg1owDXpnh5onJgdf9GURHogNhKkZqjPKWKT8125CWXgiX2UG3B", + "account_public": + "ypub6Y7qo4NRyBDUgwA8GvuzvEBMx6zSP14FX6G1MuTXNcmkZ7dVSprx89qvcy96C1xqDrXnitHyzWiEvo1GNdoBTxDuF8PpzbmAmZcjRjWXJaD", + "address": "MT16VDEyVJC2tyHh2qPhYyZeHeSHrveUSa" + } + ] + }, + { + "coin": "ZCASH", + "seed": "cbb8ca11d0c1ff1f7760ac6c63cb9ae41d4eae87877ea48a1bd31fa54d3f5c3b", + "master": + "yprvABrGsX5C9jansdRNPNbVfD5gr4Bi57xR2Sm4m1CBUgj432cdXXA4J84x5UPTDepvrtN8JZzkvGsjJPh3JYKHjXkZutZsmVt68MT4cgBCtrq", + "master_public": + "ypub6QqdH2c5z79667VqVQ8W2M2RQ62CUagGPfgfZPbo32G2upwn54UJqvPRvksxVkvS1e2Uy5jQRSeJgVTrVmbsu2zitNRmi9sHRSeqF8Uv1yj", + "coin_private": + "yprvAGDQDWyucfvN1P4kmDiDgG5TvnQTfYPEF5eef8tqEr9pzvUoXnFmVzd78MMQfuFb6gMKULqR258yXwAL5Mc41y3EdY3yvGk81bhxK7WwfrZ", + "coin_public": + "ypub6VCkd2WoT3UfDs9DsFFE3Q2CUpEx5175cJaFTXJSoBgosiox5Ka23nwayc2inB7f3eArHoe8roAXT2GT2cdWBwZLEVRcwMMija7k8CGA5hK", + "child": [ + { + "account": + "yprvAJs3bQrvpdHwNqEnQViJtQDhtvjeVAEfjBVFXcDAJeaRcNcGoXhnR5f4FJon2UaUuNLdSgXZGJNJ5WuWpmvSfEmkrTzer8PSMhqdKjbw3tT", + "account_public": + "ypub6XrPzvPpezrEbKKFWXFKFYASSxa8tcxX6QQrKzcmrz7QVAwRM522xsyY6aA5nVSzGU5wfP8rD6Qt6VmoKbRHAyhrFLJ86WynbxXx4C86PDs", + "address": "t3e8pLStQfEvrHYde5yqHpSyCo1SxcYCjGC" + }, + { + "account": + "yprvAJs3bQrvpdHwPKQUajoddDEGLxrenYeLLQZadd4C5wrP3dNBKfzJWBrx37A7FPqVGGLkcW72jwQ7mViY5xNo9iCeiPYfH37dWMuHKJvocAz", + "account_public": + "ypub6XrPzvPpezrEboUwgmLdzMAztzh9C1NBhdVBS1ToeHPMvRhKsDJZ3zBRtQxNUTeyeazk9xh6XriLVCa4v47V5SXFRQVmHSJ229svs5SKzPw", + "address": "t3PCCijAgCnaJAaM4C5iJmFm2tc9ez9zxEn" + }, + { + "account": + "yprvAJs3bQrvpdHwSkh7WhvuwiY7NheqTgqjuJajPe27AY4smSpMabbhcMksiSBxojhytHgusBFU4L7jrjVqCHbFH7et4fKWeUxbGtA9DxF71bq", + "account_public": + "ypub6XrPzvPpezrEfEmacjTvJrUqvjVKs9ZbGXWLC2RiisbreF9W88uxAA5MZiS1jGN8qnXuKZYqMKKAg4LAFytASdjUGZqfVoxK4BsD9u1ivRj", + "address": "t3Jr352XtKCPRZoZbu7vhpNekq1TeVgLXdh" + }, + { + "account": + "yprvAJs3bQrvpdHwWdJooDUCoFUzc6r49pNFsLqtXzhGM2Didb4GiQq9oH3mkMBbm1fjySqe3M9izso4PkaTJ777jEmPmdL2vVoMpNL6HckuFFj", + "account_public": + "ypub6XrPzvPpezrEj7PGuF1DAPRjA8gYZH67EZmVLP6suMkhWPPRFx9QM5NFbfKSBrr5hq35beP3ZTapq95eHzrc2i1prrb5UY78KC3QN7cxAkH", + "address": "t3MGkZ9Qy4u7ZTYETNAei7P3R7S62R46Kvt" + }, + { + "account": + "yprvAJs3bQrvpdHwZBMJVpCgxVHdyputBiu577k8k2XmFWFAfZ6BcfT4ns7hMNc8W6JWenidccNR2hYK1TiVUFuczWaBTQdyMvuvYGoHNuQt953", + "account_public": + "ypub6XrPzvPpezrEmfRmbqjhKdENXrkNbBcvULfjYQwNoqn9YMRLACmKLfSBCfXidPRLBeyX6pMoxrhYj2wfAzzVqTeDsHiHLgXpMxarQj6AZMx", + "address": "t3bitAv7yDvdRK9on4FWEkimyTafB5geK3V" + } + ] + }, + { + "coin": "BITCOIN_CASH_TESTNET", + "seed": "64196ce250735490aa36aa34eae1a661fb9774460baca2c6567d873a33d6aab9", + "master": + "uprv8tXDerPXZ1QsUgfaHAr5E1o5d3LSE1nKtY86DSxcxXmxeUytBVCLQr7PTmQ8LKn2VtVaGwZcNBtEd78E2UZERjQCnr9zb7kZn4GNBBuPnbL", + "master_public": + "upub57Wa4MvRPNyAhAk3PCP5b9jpB5AvdUWBFm3h1qNEWsJwXHK2j2WaxeRsK3BPy5GEhTSAYJhD8T7VQQ83uaXvG7NXwXgtFHnH5UupZxbTUaE", + "coin_private": + "uprv8ydM4u5V4t8WW9w3kp15nSqoWgHKmJUrGkiE2YC1bKZvsc85gSpGJghERUesex7bj9XaXGvb6DS2yRy4FWdQ7boFcKCozAvcKWxqAfUA7zN", + "coin_public": + "upub5CchUQcNuFgoie1WrqY69anY4i7pAmChdydppvbd9f6ukQTEDz8WrV1iGjCXTARE7exPDw9h9VbYNZJ7DFv5d8nKMFNiqgkWBwfxea1u8CS", + "child": [ + { + "account": + "uprv8zU8NRJpSvnHC5GMXJkaMmavYykZnLZ3qgCbNoqisbCiaGDGXS89wZKDmNm5AYKBBJAA3JSWaZiCBQnKXR6WXHpekYDEhRXsmW41H5uC5n5", + "account_public": + "upub5DTUmvqiHJLaQZLpdLHaiuXf71b4BoGuCu8CBCFLRvjhT4YR4ySQVMdhcgSoogRwf1TtfJmJj4pUpyVLdHnvmje6JfQ2xHZEkiA4h4JKNfn", + "address": "bchtest:prjkmhwcscfwxadh3xwfjem3qj8sa56tls3hr79ncp" + }, + { + "account": + "uprv8zU8NRJpSvnHEmDp81EtoW7LSCZbcxHMjgqeTQLFtjbca2DuMdBX8ywAB7GzfVHk3EvRpfQjQxydX1PayfTyX8rPnZy8yJzJrQdLtyCHVN2", + "account_public": + "upub5DTUmvqiHJLaTFJHE2muAe44zEQ62R1D6umFFnjsT58bSpZ3uAVmgnFe2P4KgUbaV1PwBkpHVuCFJ52vmnUYTUZfRY3gHW7HGDqdUqmnPkw", + "address": "bchtest:pqq9yr47nj23n3l5kl04yf04vw863eycmqf54evxtf" + }, + { + "account": + "uprv8zU8NRJpSvnHFc5pG1qZmTWDF5x5xMmK7EGSfnYKR3tNd7ZZpvqxcZeK11Mz2nQ9WLpKMyYc19rzevnEzJ2pEREyEoBoG9VqwogASCMt7Ff", + "account_public": + "upub5DTUmvqiHJLaU6AHN3Na8bSwo7naMpVAUTC3UAwvyPRMVutiNUADAMxnrFhJiCBKVXXQeVvqXH3LsHUupdFAZupRu6eeEdJGiPAenHfMe6s", + "address": "bchtest:pzedvr7q0pzckj5lgxrvtfr5znqmlt5efggnvjl3u9" + }, + { + "account": + "uprv8zU8NRJpSvnHKEaYx4ngMyfF2iBM2pFNaR4q58FzF3BhgbnbkTPFCoYhJWDmbhSmwJkBSbZw76E3ZBwbfLosJJDZHH9E86vdaWWjPLajMER", + "account_public": + "upub5DTUmvqiHJLaXif246Kgj7byak1qSGyDwdzRsWfboNigZQ7kHzhVkbsB9ktmBSe41DZ5U6eFEb8CHCbbpGtbVNAXZdG3iQ7pVDJsXLV8SWS", + "address": "bchtest:pzsx4afqzah28z8ctmr8al7vf2sg988gkyehpu22xq" + }, + { + "account": + "uprv8zU8NRJpSvnHLMkjVnTCxkKQLqn4v7cbPRcXyMo2AZy2AkpW7hRzmhN5WcGiAXVpc4aEAxxSpX2DndRd3qHJHXCkCjNiBkEfAhfRTz3DTVg", + "account_public": + "upub5DTUmvqiHJLaYqqCbozDKtG8tscZKaLSkeY8mkCdiuW13Z9efEkFKVgZMt8rAUgWuJaiXFpPtfP3GpiDBJ2ut38rseZZfAn4Kyz2guPvLVe", + "address": "bchtest:pqht43u6fag4ga3eus5f0kym5dugr6ncku24e49ekr" + } + ] + }, + { + "coin": "BITCOIN_CASH_SLP_TESTNET", + "seed": "9f52fdfde7d751d417d978e054451fb8b48cd1da9fa03987541a802fd96996c0", + "master": + "uprv8tXDerPXZ1QsV8G7XPn2CDg4LwJqsWJV6TodzKpmpcyw1cFDVSyZcrfHCTZy86CmvrSfbJHBX3WQiQY4wKvkjNLMKyKFbKZNh1TTFYwMELw", + "master_public": + "upub57Wa4MvRPNyAhcLadRK2ZMcnty9LGy2LTgjEniEPNxWutQaN2zHpAeym3mdHpC5c9bQG3E4ZWSq8trTxzLUyRLzQ2uRKBzZnn3TA65vRXFz", + "coin_private": + "uprv8xvzZRrbG56DwuTBJqdD6QPynpTAhU94sPPcYn2U4UxMA7DNMvDgYaicV9CZ6n2uvpxdQ4p8PkPyXFAqoUJJ3XNrf1pPnUgQZE2u87TVSzs", + "coin_public": + "upub5BvLxwPV6SeXAPXeQsADTYLiLrHf6vrvEcKDMAS5cpVL2uYWuTXw6P36LQnWcX9jCMbiUvdjYu1mPMLUnmFG29KsV1Cu3o31rtJWepbjF3W", + "child": [ + { + "account": + "uprv91L9GMJB3kcJYgB5dmmdh3nauTaQTiiSWg9govcnLFXkZKhmMU7DNdLz5uMmbgV6H6UtrF8fsqomQUa4xZiPVE2y8jVjj1C2V62vQAr844v", + "account_public": + "upub5EKVfrq4t8AbmAFYjoJe4BjKTVQtsBSHsu5HcK2Ptb4jS82uu1RTvRfTwCpL2A3TqGr4Pd2er9jpJPiBBag4SCVxCjvUdP1wR7DT85i3BUj", + "address": "slptest:ppfs2h890ywl68emv8jyxjlrzaemgyuu3yr0ph53ly" + }, + { + "account": + "uprv91L9GMJB3kcJbCzYJtkntwNY6Ee58uD8e62M3hPQjR1XaKCXHjLk84kKhW3KA5ijrGKdQkHNZNQ55RNYeAn5mvxiZnsFfhPRApza2ZT2PNx", + "account_public": + "upub5EKVfrq4t8Aboh51QvHoG5KGeGUZYMvz1Jwwr5o2HkYWT7XfqGezfs4oYnGbJCGieAvpF7v6RWpnwSiN1kPLyCsNkJgH5RkpxqinQMayqYt", + "address": "slptest:pps3dsecf0xv4tqelguqvxvuqu7e6m4cpvrx7sr9r9" + }, + { + "account": + "uprv91L9GMJB3kcJe5Mx8Xi7As5ki73eMW2UCsDmiMRJUJWp5GE8M6hLP241aMn8DRj2M3dfqC4haoy2uju6NFxtSMtXKaKzKBcaKfDknuigyR3", + "account_public": + "upub5EKVfrq4t8AbrZSREZF7Y12VG8t8kxkKa69NWjpv2e3nx4ZGte1avpNVRcDfFE4pCjwVivjkwscDD4R1LZ53DLfCE6GwWypb5jQeMUtcuWv", + "address": "slptest:pzg2yqwjxl2p93wnr69v70m2mrgyqgl4nqj2tzf6js" + }, + { + "account": + "uprv91L9GMJB3kcJgSvCjUhnYd5TXxQCc1kfYxcgq74TC9bUJyWyRDsF7J6xQ9EcEYqn3ouuoyfgjwMZRRhnd2Gh4siJaaZK18K43B9WZDFJN8g", + "account_public": + "upub5EKVfrq4t8AbtvzfqWEnum2C5zEh1UUWvBYHdVU4kV8TBmr7xmBVf6RSFSrJywUMQQYQPSHL7TUfkNk8uZwaCVL1VV1rp5nz8ZP3ChdvKay", + "address": "slptest:pqn75tdsvq2gfkjdx9ctzg0ssn7yprndmqac3ggwge" + }, + { + "account": + "uprv91L9GMJB3kcJhVnXXZifN3pWWBQTJjFrCiB9L8cZZZT6gHB6kGWaNJt9vfq64jzhDuhxcxP62izozAPWAzxrRvtZChkMsRZE7TNT49wFCwv", + "account_public": + "upub5EKVfrq4t8AbuyrzdbFfjBmF4DEwiByhZw6k8X2B7tz5Z5WFHoppv7Cdmw6R3pe2bLbjj3bRQbPmVnYPZ8Qc3kvconfzaGa3H5yUTcBRV8j", + "address": "slptest:pzf0d34emnan67f53yky5q2u4m753sl6ncerjmru44" + } + ] + }, + { + "coin": "BITCOIN_SV_TESTNET", + "seed": "47ff3729891f2239299c18436e17d7ab853e3c4d162bc6c9038c707b665d4397", + "master": + "uprv8tXDerPXZ1QsWc3E1h4TcvFkmz1tgjok8HiX2q2miiByQAS8wE5Ld85U3zK6TKrHcyTnyJgQHET9yNGHhdJxyNkiPtqGC2NexTeZ2TXArev", + "master_public": + "upub57Wa4MvRPNyAj67h7ibTz4CVL1rP6CXbVWe7qDSPH3ixGxmHUmPbAvPwuHRs6aFAUaXhYJNkbqGzejudgpTfFLNuhT5xvuSFrUL1KvdYjhU", + "coin_private": + "uprv8xonpo2bKhQ1JDDqbz924WDie5uQoBXtNwZyCoyFTjQpuEWXoW3nfBwT8vRDmTjLiG9diMMS86sHEEYSDtGsoWyqYiJP766JF5ccwEkFwnw", + "coin_public": + "upub5Bo9EJZVA4xJWhJJi1g2ReATC7juCeFjkAVa1CNs24won2qgM3N3CzFvzBfEitbieb1WTVSJw3HahfaetDFJHymz8oYdx9yaP2nX1XtEG6T", + "child": [ + { + "account": + "uprv8zoYDDPrP8ZTyqj11yJXWnu3sm5w7CETZFDdRBo375zLuScKLddpwdYqJ86ejHqwBBT3ERmdP2hHpBmuTCe47SqoARJ3XBb5bYP61gDSr5X", + "account_public": + "upub5DntcivkDW7mCKoU7zqXsvqnRnvRWexJvU9EDaCefRXKnEwTtAx5VRsK9S14khPFUeSL6nmz1N74CVsX4n4xuwcsdxwsJB3bfECdBbt4ph5", + "address": "2MuZdZJk7fZszBrybLMdiGQGCHxPYYsukoe" + }, + { + "account": + "uprv8zoYDDPrP8ZU1MwXsdN81amfGmSDEquQeWgFj8jb37hY5YTkwGqkFqgjdSs8WxYkwFXaHksAmjtoNr4y2iBmU56nTDe1EDPqdXaBzi4m71C", + "account_public": + "upub5DntcivkDW7mDr1zyeu8NiiPpoGheJdG1jbrXX9CbTEWxLnuUp9zoe1DUgFudDU5RQDMrfbEUDR12YawWP9k6RPCoEUkKyKGCvzTSvQ6ywD", + "address": "2MsTV7TyoMRPxB962uSoqzUpf13xrEUxZKu" + }, + { + "account": + "uprv8zoYDDPrP8ZU5R8QDwvd96gegwgPqW7Nst85cT7DukqeXCtnYp8mRH5SxFerKiVVTj5Kf8X6vkNejzK5xZhgHAaVC83Zd3Y4XdWAFCjtPft", + "account_public": + "upub5DntcivkDW7mHuCsKyTdWEdPEyWtExqEF73gQqWqU6NdQ1Dw6MT1y5PvoVr9MqvELKUKoLZaRYdzRMwokYaZuV7VktTdYF3i4Nk5Sgunxi8", + "address": "2N9oVo9t2r2k8CvzQtrwsTLXLEWJ1AwTtFy" + }, + { + "account": + "uprv8zoYDDPrP8ZU5uoo8ZdwNNHHZysyMRcGVyUKE2vNNWT9TeQPagSptpmsKfEbYvNGviMP91oPD4a8Gd3GSajHdNjEu8qt3NATo4RQAERe5aS", + "account_public": + "upub5DntcivkDW7mJPtGEbAwjWE281iTktL7sCPv2RKyvqz8LSjY8Dm5Sd6MAwrXJoreMuXSw94uCsTb9WpnGSdhVm2Cjhdh2Xnv4MBLBK3XVui", + "address": "2MwyRuj9ScZu1goW7YAbqSAcGa7fAEiLfS6" + }, + { + "account": + "uprv8zoYDDPrP8ZUAPWZT9yL4QrJ3B7byAYVCPueaYFrvvGkfCzkSRNd1kV4fTCGQUAYz1Qua8XmVxpUDYVHDs1mdARD2XvXiGAFxt5BcEv8LjU", + "account_public": + "upub5DntcivkDW7mNsb2ZBWLRYo2bCx6NdGLZcqFNvfUVFojY1KtyxgsZYoYWjWH8Cindwd2gTHByR5cmZcVHXNRm37trPEKF7crCpmLTpaqcHK", + "address": "2N3zj4YmDQTWq1zZoGUWTPURvBAnizzgvan" + } + ] + }, + { + "coin": "BITCOIN_TESTNET", + "seed": "1de733adb74150bb485f593ad4bb19829d0d8de0c0cda83fe0494d4386fa671d", + "master": + "uprv8tXDerPXZ1QsW4xAV8XtbyRNj3pCUAEEEyz6WZ65LFD6uvvBjiZCsnFvRme1q8UNdvZij7gUaQs85dUqF6bpsnhB35Bv9FVXfdP6fVJEdrq", + "master_public": + "upub57Wa4MvRPNyAiZ2dbA4ty7N7H5egscx5cCuhJwVgtak5njFLHFsTRaaQH2CHxBZBQ3BT3GMFznC3eYWyLwAYcR3pqNpnjJzFyqwmJhMWFpP", + "coin_private": + "uprv8xsf5xWPC5JzVciv1vPkPyjZ9qVwgu6VDQgv8nk8gvg2BhmrdpbNsgRV5KEw7Cti25bjVYq1QAMyWgJHddKtSALErzCELWzyKYuHB3CDjqD", + "coin_public": + "upub5Bs1VU3H2SsHi6oP7wvkm7gHhsLS6MpLadcWwB9kFGD14W71BMudRUjxvZyFkhgVrqnTnLcRTJcWezgdQqCTdgD7GeSSorDxTjPHkMM6bBA", + "child": [ + { + "account": + "uprv8zohfWGWRqiEdS4QtkVv1raUEwHBPkAqNJSbkLqDgrmwKyUEkf1AePmw1QbQH1mdvdnYJQJSoWVdddwSuhUejx6TZVdehtkS9CQRFLe9iUr", + "account_public": + "upub5Do451oQGDGXqv8szn2vNzXCny7foCtgjXNCYjEqFCJvCmoPJCKRCC6Qrh52YNAaXkxcjSrqzjGhXvXdjz29ct3ULeJtmyVkQ6UnNheHzrx", + "address": "2MyYyphn1b6obbWSarbQCJTiNnqfNKtqH7P" + }, + { + "account": + "uprv8zohfWGWRqiEeeTFnD8ZC9Zq9nWVB1VRUGy8JawcYJmjdqjQYHLPn8RkYJXaZnSnc6RPU6ikiQzVU1BHpHhXp4d9LyYZmQ858om9PupKFS6", + "account_public": + "upub5Do451oQGDGXs8XitEfZZHWZhpLyaUDGqVtj6yME6eJiWe4Z5peeKvkEPcQhffEmmZLSZEA73SoSBQ1qDwgdgwC1rv5DgdUmpUwpK4SqgnW", + "address": "2NEKxGfuFaNZbeGfFh4fQ2tgxfQdacVrQtY" + }, + { + "account": + "uprv8zohfWGWRqiEiyBUTmNeowvfd1GzoY4nVdU7VxZ96suj8thAZQdBeZpN8QPaqatVHYSYftpyduEWWZwsSRBeHk4EgVUzA6cvTsMUq9RM27Q", + "account_public": + "upub5Do451oQGDGXwTFwZnufB5sQB37VCzndrrPiJLxkfDSi1h2K6wwSCN8qyeuG3nt48o7N84CY1aBtabenPpK3dXWg85KKSLdJ7ZYFhYwST8x", + "address": "2MtSXqTTAVXvxvm4DK8MJBRKohRMNcAhZL7" + }, + { + "account": + "uprv8zohfWGWRqiEmLS3sqkLsJ5o8ELPMTk9ESHA82jvMxFbdMawD5vHr1xjqr54qq5J2gkbXtKruSZVDpE58yja8mfU4PpJoWHmN8RP88tdYb1", + "account_public": + "upub5Do451oQGDGXypWWysHMES2XgGAskvTzbfCkvR9XvHnaW9v5kdEYPpHDh6sWvXSz5VAMwyaqQQVi1kPbgPydNmp7bEeJt4dR8fKQLNC49Qf", + "address": "2N4pXjq4uFKJuNVb4RXqnS2AHPM2GGkaULV" + }, + { + "account": + "uprv8zohfWGWRqiEnd9TqrwA6Uw5YBrPGmVwhFZoybxPbkHfgVb3UX6YUU9t7Y3mkWXJ9YqUXokJv6A5CZUV7KAwqw8DepfmAjcfZeCNrtbHLvA", + "account_public": + "upub5Do451oQGDGY17DvwtUATcsp6DgsgEDo4UVQmzN1A5peZHvC24Qo2GUMxoZ5qh11ab4pTgAf73Zqm2CryhMdNkjEn9rY2qavc42mjfTHyiH", + "address": "2N7KTB2VynaewAvcgYoFeLPMbiy1Ts2Gz1o" + } + ] + }, + { + "coin": "DASH_TESTNET", + "seed": "8a54fe4e0ed088c6c14dbef22fcfcaa05dae58882cfda38b265530a7de4c93df", + "master": + "uprv8tXDerPXZ1QsWP1oMEQbNGPkrr4K6zMVc3CVknq9cka3CWXUxup1WAKw964KPco22JfRsx93V9qH1t2Z3h1ULVXcPxZWPo5vzg9xNfzYkTM", + "master_public": + "upub57Wa4MvRPNyAis6GTFwbjQLVQstoWT5LyG86ZBEmB6725JrdWT8G3xeQzNcsiLeth2f91w3kNa8AsL3xxbC3vz1Pz31uWRTZNsPjYKGxScW", + "coin_private": + "uprv8xj5H2MKV1dRUEoJrik71LxheLUyuKKjVCXhKSsftJBEiUEFQqKJGUheG9L8npCm8hKcoNTHWxuMmx48r8DCqZ7VzbvGCd5DfGU5hm8p1Wj", + "coin_public": + "upub5BiRgXtDKPBigismxkH7NUuSCNKUJn3arRTJ7qHHSdiDbGZPxNdYpH287Qm8AKyoAY7j8LRdixaE4mXLZJwVNGgevpV8FBckwijvKjDUizm", + "child": [ + { + "account": + "uprv91ZR53para9XLNiqJ16ZSa9zT4f2dFPjcvybKX2V3UpKW8kgyLCwsi439W6URcofeEzBsUoRQbVFhcGpgAbUunSe1HU6GDMKMmM3HfTSKii", + "account_public": + "upub5EYmUZMUgwhpYroJQ2dZoi6j16VX2i7az9uC7uS6bpMJNw5qWsXCRWNWzksqqZHFKpNSJY5sSDVgczR1az7TEZA9rMvQD8EEuYJ4rQnaQvZ", + "address": "8qRPwCwfkRb6qSBjT6wC474aupdXNy4Tsm" + }, + { + "account": + "uprv91ZR53para9XPqdR8nqFULsw74pzthCu5qLaxqTFQCwnQAQgrJPwwCr7gmgwuUek7aqy7Q82ZXhALNV8hM16mm8p8kqGv6xGrgRb8FyAFrK", + "account_public": + "upub5EYmUZMUgwhpcKhtEpNFqUpff6fVJ9vkT4GBmDrrxYUmGxjqPqiCV1AbY3M2Tk4zFQxPzz4cEewv8K1yQYHWyxW9WgroRpuUVy4isPWXVyN", + "address": "91c8K258R5WumKfTNcJdGCv4SqF8a5YhYu" + }, + { + "account": + "uprv91ZR53para9XRBviYDtiD4WzX6ekmVNtCqY4ZdN54RsYXJgrvWJZ9kFftvk2bVHnLLwvkSt34owpe59Jap7A648mVHpLZj3RewvNNXMNLf6", + "account_public": + "upub5EYmUZMUgwhpdg1BeFRiaCTj58VFAx6ja4TfN1mgcmQXQ721U3cohYa9kB934brMq7J2NmpBy5MoHMNSNVGkR5CTDgQ2tJXjayHbNv56Qdc", + "address": "92h51JcD2HPStcTtqQST9efLp2B2qfhDKq" + }, + { + "account": + "uprv91ZR53para9XUALn6oChDVp6kkXHUFjSbfBAZsd1LV9gurpBMMzTbukMMZ3dSVWDhoDbGGoWFCoMjtjgd5vJPj9xFJyBWqUsQXPvW4NgehJ", + "account_public": + "upub5EYmUZMUgwhpgeRFCpjhadkqJnMmsiTHxt6mNG2ctpgfnf9KtuJi9i4qCoxki7zBeumzYSaHgXAT1Q9ax5hJduYp7ySAV7TBEHKkbbzpXva", + "address": "8vQ5BoyJn9uZzB3syFy8z7gvcBJfZbGuT4" + }, + { + "account": + "uprv91ZR53para9XX8ET5dDcALpoHUbu8AULJyw8fPCu2J35mr3sQj4wZsT1KuHGFptpT5JTx2pJgrxwqAS1XQQwcekKMgJq64yxXnDR4c2Lfq6", + "account_public": + "upub5EYmUZMUgwhpjcJvBekcXUmXqWSPXdCBgCrjTmcWada4eeP1xGPC7fmVBAuoaECszNAcZuvAgd7ZhkYRQdLCog8MRn9esAPBeYadmYzf5eK", + "address": "8t4dkvcEHmkWLsgi9LqguQvWECiheqDCWR" + } + ] + }, + { + "coin": "DOGECOIN_TESTNET", + "seed": "8acddef479733d351ca27ba6b17422a8d8292988f331fd879b13d58ba4bb8e44", + "master": + "tgpv1aRS3XcGkbKXD5Mzk8pczAHhntY8GYzP5EiyH9C92NwNTEx7cvSC8rpwVKLQLpUMAzbbarvB3FjGd7UNZHXJouprEdoRBpbr2K3mn2Zx2FR", + "master_public": + "tgub5KJTPDYAJjyrVw29nNSb71qJFSum6g26MqWBSFb7pVzP1J4p2gyxnAEb4ZFpWgV8Yaxqi3HAHrNphPN1SEZAtGQ8YFF6HcSqXWEs4QWxymF", + "coin_private": + "tgpv1g1xs21iY33k9RQFXoEUU2DmNd1HBtsw4N8CteUSoTJXj5LULdUt1fY8Zr8KGDrywNQ5y26qEA79Q2xzUwm2R2okN86LsW5BayQgWWPKWzC", + "coin_public": + "tgub5QtzChwc6Bi5SH4Qa2rSasmMqBNv21ueLxuR3ksRbaMYH8TAkQ2eexwn966Stozq8P3mz72rD6E8Wp45gYVzpjrxCgweDYn4EGkCqJXnEzQ", + "child": [ + { + "account": + "tgpv1hvUtQ94N2xWc35pudBbag3QNFXbGpeVgpxHZYwrN5rwtAJrdKj9HJp9iLH5Suikw1GNzjUkduQqvfL1QUKwe7Du6RLbPQwsVkddjpDvoZV", + "account_public": + "tgub5SoWE64wvBcqttjywroZhXazpouE6wgCyRjVifLqACuxSDRZ36GuvcDoHYFHbxqD9X7LFxfyvjnK28686oCqaicEpEQ2Bo9NZ2KQtugDAAy", + "address": "2NCAGK3uF5hvzYd94K2ewz9NRNkpMs9NoXc" + }, + { + "account": + "tgpv1hvUtQ94N2xWf1TxWt55aHYvnxWVhAH6nnqP9R4Tdb2tQXTiwAQC8ThwZxR3Zmv5V2ASV1psNaKbybasSSFXDHn3wvEVdpgJyG9KGcCYAjd", + "account_public": + "tgub5SoWE64wvBcqws87Z7h3h96XFWt8XHJp5PcbJXTSRi5txaaRLvwxmm7b9CVFUvSyHBsTQy4q8W6GZCdCiJvfvX9eWQUqtzEYmpfnvPnbi7N", + "address": "2N5v9YHBRwW7FdE7HXd5u8hsZxakNyv8AdZ" + }, + { + "account": + "tgpv1hvUtQ94N2xWgkjcU4xoaGSnbnogZUFNb2r8dEUN6VzVyjc54sKnix9xmwMQwP2kWMxKFpTPUNiswiXgbL74sR3WeoFd2s2uCWEECvYs5Cn", + "account_public": + "tgub5SoWE64wvBcqycPmWJamh7zP4MBKPbH5sddLnLsLtd3WXnimUdsZNFZcMBkWg3y7EPiVHeXTS466XtMpMZ7x6RzPKkUdaNwKEkrk61nSvox", + "address": "2NFCASPS3yt23J6Cgc5mMXG1nmHXU4t5r3J" + }, + { + "account": + "tgpv1hvUtQ94N2xWj1FPvkmubcGREe7VwXjdpQ7Kq88WQJ85ECiKM8LSxzctVVwDBnbvxvb8WCX3mzxHz9Tx7EbV8kZWv5BhHWr1jEUQQQRQJmx", + "account_public": + "tgub5SoWE64wvBcr1ruYxzPsiTp1hCV8memM6ztXzEXVCRB5nFq1kttDcJ2Y4iWu43t3GJEu1RPanCVHLi9hturw9GSaX4P6MKJyb8W6QYfQfYQ", + "address": "2NCFVKo6R56D4snXSQoBNLGgso8N3UGuLDc" + }, + { + "account": + "tgpv1hvUtQ94N2xWoHEGZyBMovcGwNkr44ERFk2j88okLiqYrmRoE7VuJf6LNEoYKCiSarfKF4eLWuMCeV9CqZEh84c2ururUaQDRfwJT3udKim", + "account_public": + "tgub5SoWE64wvBcr68tRcCoKvn9sPw8UtBG8YLowHFCj8qtZQpYVdt3fwxVywV4fq669DPfnWSSrEbvd97LqMkvqcaQUXspSbSQdNryWPzNFTYh", + "address": "2N3JSJ5JniM1Z3BJ4NYeCWnfRY75Q6CfcBM" + } + ] + }, + { + "coin": "ECASH_TESTNET", + "seed": "f052903b534b85ef2a1827b5edf45d8cef7782f5af3982cc7d005cc5f783699a", + "master": + "uprv8tXDerPXZ1QsVN2XjDFWCW4wL5JDjjhqVBm7AkLKJ4fT7AVvpD38HmGSLSQAe14eGCnNhN53vMQEXPcjtQC7BtqcxYszt4vNyWN6YMGxDcg", + "master_public": + "upub57Wa4MvRPNyAhr6zqEnWZe1ft78i9CRgrQghy8jvrQCRyxq5MkMNqZavBjAjvytXfRMZBB7cc5qqtdjC8VtNTcVN8ufiDvWox2Pjc5HWrWF", + "coin_private": + "uprv8yPBPsDnmkVok18wN1D7uTdhdGbDrvZ2G3kX36MRarwEhy7DHfEiu6nETzQQYtXqNLkeafvYf5xvJ2qWHZJpPYjYcFoM1SbbefUZYpP9yQt", + "coin_public": + "upub5CNXoNkgc846xVDQU2k8GbaSBJRiGPGsdGg7qUm39CUDamSMqCYySu6iKJBfsjafRbgtzZvKdLKz3XDmrfx2YW1FUvviHx47hy9CPDTJqmm", + "child": [ + { + "account": + "uprv8zAvK8PVEHCdoZehRcuoJhh8s6YepdYj68gfpCjBnGHSvrm1yNpj1wuLDmUCa3eovtuxXukmHFJGYoyuJzThqFC8AqytV5hmo9y5gj4YxzY", + "account_public": + "upub5DAGidvP4ekw23jAXeSofqdsR8P9E6GaTMcGcb8oLbpRof6AWv8yZkDp56BFZ6Jz8Zkfhr8QYoZ9yChSeKnUx9xHosC8RGoi15TjGg3Dj3u", + "address": "ectest:pzs28m9t2clq58vvm3a8a0hpmw57x73slyrjrk5qnp" + }, + { + "account": + "uprv8zAvK8PVEHCdqF3JjGeDJ82PcTtWkY6cQyxNPueo1An8NazmK7GKRZX1fSdfMND6dLANaw2GZ444YYR8bJJs5SLsNHUAe6puSc1q5L7PsBv", + "account_public": + "upub5DAGidvP4ekw3j7mqJBDfFy8AVj19zpTnCsyCJ4QZWK7FPKureaZyMqVWhc4NUtkYrKx851Ex6XFwUQi2vnogJi8Ub34frZggR5xipzmgwc", + "address": "ectest:pq4p3dmh6a2gmfef4cnxll3dapan6adqjgkqr585yn" + }, + { + "account": + "uprv8zAvK8PVEHCdrkj4xQ9YLbRYyy28dCD1zNLJS4xa1nkxRvXZJKKQMaVkToTR1wwuSdkFEH3s8Rve7knmVoMnEnRM3pDN5MdwfZ5Au7LS32A", + "account_public": + "upub5DAGidvP4ekw5EoY4RgYhjNHXzrd2evsMbFuETNBa8HwJirhqrdeuNpEK4zwpsuJMFSd8j84oFb6bSEURNcdoj6WxpRPomL9npdCXMuyuSv", + "address": "ectest:ppz40zkmr0jmt9ytf8hzl2vy33md8va97s55nfn3g6" + }, + { + "account": + "uprv8zAvK8PVEHCduf5MvHWcATYkN5KQnovFAChrACfSsdGJXjjfdVGf9bhQUMdXYU9tLoJvZcfvPnkGdZd5bkvAJP6FFTHL86229pFGZ818SAf", + "account_public": + "upub5DAGidvP4ekw899q2K3cXbVUv79uCGe6XRdSxb54RxoHQY4pB2auhQ1tKePuMA3dTuJVya6AGY3keSR1dqBnRdS8UQhfY5D5YSHmYg2VxSq", + "address": "ectest:ppzv4tpan5dnyz9u4va2cv2uvtdzsd9k6qudj4hysw" + }, + { + "account": + "uprv8zAvK8PVEHCdyzGsWwghJRtRRG2hsRLVhZzyStdv2ryEFPdAFyi4mrCtpXQ825e174MzJ2WXvkYyDRYfLTagXn38Kqqy8CWhjpcFbFTi9Wm", + "account_public": + "upub5DAGidvP4ekwCUMLcyDhfZq9yHsCGt4M4nvaFH3XbCWD8BxJoX2KKeXNfm2d61nVj2KrD2r9T1SZDubGDaKGbQfCc2dF3ay3eMe4QyuCZQ4", + "address": "ectest:pqe4nqvx84352pxj33fsgjtlx99tyrz7kcvduy2atl" + } + ] + }, + { + "coin": "LITECOIN_TESTNET", + "seed": "8faf3529e7502ecde16f6e70185a53428978c3a502f5600134f1ed9f08898fd8", + "master": + "ttpv96BtqegdxXcePcjg2nktTvge6Gn4hpb1tp87d8xSY1ffMnE9Sz7iQLo9Egpxz32cjpd2cchHomNVY16GddxwZNmiHhYjCxFKJMNP9utbnyP", + "master_public": + "ttub4XNESS7BCg9c1VSWHQFGYWWrXqUFn59fyLE9J7ijUCTFx9RDmuA9QwuQV67yKpJYHVjGqVzaXZyHDnuGm4TPqpZak4TTzkkGaWFp5QmJHzd", + "coin_private": + "ttpv9BPwUKywnR76EStK28LKaXHEJgAGfsHHXMMxC1cNAxbBoEnn4L9rn9YnaDrv6JT2ENf6wV5PwYF6ykCa4moi6mTkFTWmqTjiwnHLRKH5WXk", + "coin_public": + "ttub4caH57QV2Ze3rKb9Gjphf77SkErTk7qwbsTyrzNf79NnPbyrPFCHnkf3pcKMaCpQjJzNfzKHkB3VKRBfVXGRoiBPEaBNzsunoacudL1DebJ", + "child": [ + { + "account": + "ttpv9CVKumxWLHQUVdqhipQrsK2iHmfWexRGWyGL9pzTXrAQVXuVEWSmiTPGGnnQqqDZJEoBmTWVYpSGdtDrmf2Mnc4K75BXMdwzfypi4RZuesH", + "account_public": + "ttub4dffWZP3aRwS7WYXyRuEwtrvjLMhjCyvbVNMpokkU2x15u6ZZRVCj4VXXA3myTgesL6aVoPC7ZgrGU229Q8by31kyPpd5ZHBx8ZoCMpKWi6", + "address": "Qe5dSbr53mnBnPDTSimdrXvJreD8huihzg" + }, + { + "account": + "ttpv9CVKumxWLHQUYDXnyqsowaauY5RvWmAeTiESAeoi7JSwCThcecVBDrzD3jpKjAiRPsBBCo1Gp1mV2jzQYusFYyhH5y2oCVqsqxaMK2nNz3f", + "account_public": + "ttub4dffWZP3aRwSA6EdETNC2AR7ye87b1jJYELTqda13VEXnptgyXXcEU6UJ6QNjUzLS3NfmaWR9vzw8jkDo2Vp7hCSNXnAUZurfgrgpkHVbTv", + "address": "QVoGxzgxeSKXS5QULNRVE4roGWPS2imG2w" + }, + { + "account": + "ttpv9CVKumxWLHQUYsUi5nhbLvpUhQAKrkEf6DZnzrbNEbmF5ts448uh4eNuL5MH2Vi7B2krvcH5owvcP2k5DgLhaLweRrfvefqJweg9b9Fp1xJ", + "account_public": + "ttub4dffWZP3aRwSAkBYLQByRWeh8xrWvzoKAjfpfqMfAnYqgG48P3x85FVAaU3hLWZwFL4mRa5xfyR7svFTjjXgKoMN5Zfb9KiiiXYyAcwRxdo", + "address": "QVp2oMHyTcgHjcGsFBoApaUp5QdoyrvnG3" + }, + { + "account": + "ttpv9CVKumxWLHQUbcquJ7sDRopVaufuTm8Z7RPj8pDSbuN4AdtrNnPYFvTwrVZp429GSqnGxy1tb2QJ5j9M2DDe75CBGvjmDYV3wtucGhZpL3Y", + "account_public": + "ttub4dffWZP3aRwSDVYjYjMbWPei2UN6Y1hDBwVkonyjY69em15vhhRyGXaD6rseeTNgUrGjpQUNqCtSGyeAkJRDRMeP7A9NkGH3AvpdpMqGKgY", + "address": "QWF2heaWwxo8mE82nPE147QJBMpquPJ6SJ" + }, + { + "account": + "ttpv9CVKumxWLHQUerNyh1HxgEkz5XJMQ4BxL64HisgBPFsmgYktV6gdUxTZdTcA9sjPg11bnyJSahDP1i9nrwheKjKW84E2tzAt5pnpwEkPXs4", + "account_public": + "ttub4dffWZP3aRwSGj5owcnLkpbCX5zYUJkcQcAKPrSUKSfNGuwxp1j4VZZpsrBqTAe8JVT5x7wmSFp7xMfkNHWZfRRPeUMrfZW9fn4UiPq1V8B", + "address": "QdfPeEbcPZJpLYW9A2CtNmF9HXHUdXvKsu" + } + ] + }, + { + "coin": "ZCASH_TESTNET", + "seed": "57e613de8ff7a67f48a985bd87689ce3e66504743d8a90a8048ef90032719ea0", + "master": + "uprv8tXDerPXZ1QsV1qTayu5MvjUifptSFANVRLJbv1zpZH7ruBSfbXwp7te3M2Cq54Ksa224PtPpcBPy4JiaXfZc6rVCSawDPL7suQGQghinrQ", + "master_public": + "upub57Wa4MvRPNyAhVuvh1S5j4gDGhfNqhtDreFuQJRcNtp6jhWbD8rCMvD7tecAz68oQMYxKgNnStJ7dy4QKVEEfnun2qveNmSCzAESUxEXn4f", + "coin_private": + "uprv8y517TG1CvGC9DbJzWVoMdPqsuSx9X9ETc8ngcUPgRy31aJSxM4r3PXqqBQzgWZpkMmJwbHjWyjjtkPiN1wbQ7u2qDqFAeHQiEghJk41TnS", + "coin_public": + "upub5C4MWxnu3HpVMhfn6Y2oimLaRwHSYys5pq4PUzt1EmW1tNdbVtP6bBrKgQvRY5wMzerxtJXnDVw6TBysrR1nEdSd1YB4TyqC4ELVBHAk9jU", + "child": [ + { + "account": + "uprv91n6HmhTeqrkGDZ5ZgY4g5SxyQWCnAKSTRYb7rQfUe94htEgxMeq1UCoHNy4S9tJb1f8bkggLiyrz4wCxkFSAL1JknD9RcEMhi5QQLACtAb", + "account_public": + "upub5EmShHEMVDR3UhdYfi553DPhXSLhBd3HpeUBvEpH2yg3agZqVty5ZGXH8cNgpjtRHnviS6tv41B9ZEFQKHupkVANqXiWZVmcSjDrGSnyud8", + "address": "t2QPuCCUpamXQzRVF5fLwC7NTKM5TMAJLra" + }, + { + "account": + "uprv91n6HmhTeqrkJQPMn6WV3PAWMT6RYT2D6d6U2PtTmPfRcBMHvaK5me9LtoTiCEHFRAH92GPAXEcnBz72k7WPeTmaoBPbAgrHyhCcGiv4uN3", + "account_public": + "upub5EmShHEMVDR3WtTpt83VQX7EuUvuwuk4Tr24pnJ5KjCQUygSU7dLKSTpk4g59z1NHwxAzoNDLJdeYPjqkitX6D316xApstCcasEYotYVSsj", + "address": "t2BZiAkHzsaXYwaRCZcr1i8MGLEKLoTUw5o" + }, + { + "account": + "uprv91n6HmhTeqrkM88tfrChf9TqryLaz6UhBAF1ho9rijwtsqUArB374qNSrmmscR7buMvvksm4L6TM1fybFLhXxsBSMf6J97Aa6214meYkmzz", + "account_public": + "upub5EmShHEMVDR3ZcDMmsji2HQaR1B5PZCYYPAcWBZUH5UskdoKPiMMcdgvi4n1CToVykNsVk1C7qki5A2y5V37Zh63oKtq6km5PLQK55nTcdg", + "address": "t2NyFa7h3tgdSanyyfmMu4tDNQ1qDEiX32A" + }, + { + "account": + "uprv91n6HmhTeqrkQD4y1QtAvMSP1YDvquNQVGf3TNErh69CFXorXYvwBupDPWq8SJvZkPZctHT4hyXb8rKR1chqLDA9W2a7wt1sCRwWSBb2rTD", + "account_public": + "upub5EmShHEMVDR3ch9S7SRBHVP7Za4RFN6FrVaeFkeUFRgB8L9156FBji8hEobcjjv64jpBjLcwf9dVD8SH8BQGf5Gp4eBtkJ1f9t8R9QPZid9", + "address": "t2PTLztHa2N251MKKAj5L2gfP6XdGjMyHAG" + }, + { + "account": + "uprv91n6HmhTeqrkRx7EiZgWqHnUXyCJp6iyxuqxwCNBK6dHsLpFV2QeityrQs2WH2A9T5ToStkBuwoEKYN8Nr27rSPjroNcQuVneKo7iRfeRad", + "account_public": + "upub5EmShHEMVDR3eSBhpbDXCRjD612oDZSqL8mZjamnsSAGk99Q2ZiuGhJLG8mQLKRy2WMJfBwVome8MVqaG1gDPtZkhgS4AQtxstna6SELU3G", + "address": "t2FQbJYznYg23XiefMvJffWRWbCPPwThVkT" + } + ] + } +]; diff --git a/test/bip/bip84/bip84_test.dart b/test/bip/bip84/bip84_test.dart new file mode 100644 index 0000000..59f21c5 --- /dev/null +++ b/test/bip/bip84/bip84_test.dart @@ -0,0 +1,30 @@ +import 'package:blockchain_utils/bip/bip/bip84/bip84_base.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip84/bip84_coins.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import 'test_vector.dart'; + +void main() { + test("bip84", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final coin = Bip84Coins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).replaceAll("_", "").toLowerCase()); + final b44 = Bip84.fromSeed(seed, coin); + final coinInex = b44.purpose.coin; + expect(b44.privateKey.toExtended, i["master"]); + expect(b44.publicKey.toExtended, i["master_public"]); + expect(coinInex.privateKey.toExtended, i["coin_private"]); + expect(coinInex.publicKey.toExtended, i["coin_public"]); + final accounts = (i["child"] as List); + for (int i = 0; i < accounts.length; i++) { + final accountInfo = accounts[i]; + final account = coinInex.account(i); + expect(account.privateKey.toExtended, accountInfo["account"]); + expect(account.publicKey.toExtended, accountInfo["account_public"]); + expect(account.publicKey.toAddress, accountInfo["address"]); + } + } + }); +} diff --git a/test/bip/bip84/test_vector.dart b/test/bip/bip84/test_vector.dart new file mode 100644 index 0000000..11bea4f --- /dev/null +++ b/test/bip/bip84/test_vector.dart @@ -0,0 +1,198 @@ +final List> testVector = [ + { + "coin": "BITCOIN", + "seed": "f655b0d02d09ecd9a591991332fe06b64711dcd7c16b3b89567c10d1186c4a49", + "master": + "zprvAWgYBBk7JR8GiyEWPaPAfgWRzqCS4nAZi15uqmvXJUBvn3DBUZvj1CLvxqJtJEEffZcGDtNeLc98qREhcZx5WQHRvoLbtpznHrC3K7cDf7i", + "master_public": + "zpub6jftahH18ngZwTJyVbvB2pTAYs2vUEtR5E1WeAL8roiueqYL27EyYzfQp7YBQRwuCP55CBgondg6zovZnHp5NTQTYwtnnqfoy3vTW3rxznL", + "coin_private": + "zprvAcHZ8xB7hm6yxBJtnXNGF2qnukPRWQjAvsjWMahTCR6skSedM4Xns2izNnTELTd4WuXdVrGyCaBYWfa8qcg2P84ZA9mZW3DAJohS36Sbymx", + "coin_public": + "zpub6qGuYTi1Y8fHAfPMtYuGcAnXTnDuusT2J6f79y74kkdrdEymtbr3Qq3UE2Gego6QVWMyfw6Ls1VkyVXf5reRsx6jb8CXnLuRXBHSNWGKx2y", + "child": [ + { + "account": + "zprvAe721jePhot8QdAANRQSfZkQzmYbdTEC4FyM51vtwobgXEoUxHE6vCC6vA1hqsoG1ZZT5gxZn9LCiBQPA28Udvyh12ZMogCkZD1NGQDDEdf", + "account_public": + "zpub6s6NRFBHYBSRd7EdUSwT2hh9YoP62ux3RUtwsQLWW98fQ38dVpYMTzWamPby8nLgzm1GJgWKDcUyBdUaejsqsFCuhWa59SUfJ82WRTJ3kGq", + "address": "bc1q45wn2mqgspa82hkxch4zuhzxepkeq8elpyym3m" + }, + { + "account": + "zprvAe721jePhot8R1BMRoWsMGxXoVD2iG1qeUbmbHuWqrbj5SAcfq5FkfgZg38g5GiiRARxB5nHuKE3LmcNrFqUxpWmnk2q6NCwKQWvqLDYKPR", + "account_public": + "zpub6s6NRFBHYBSRdVFpXq3siQuGMX3X7ijh1hXNPgK8QC8hxEVmDNPWJU13XGV1yGTguaoTbUAD4H4ewZtLbFcR1vD6CPmXjfKh5hxEjcECbNa", + "address": "bc1q29nltkttxeu9sa4fvh8e8q37rzpfdwjvawffkh" + }, + { + "account": + "zprvAe721jePhot8VVbvMM7Wk48gq3hYmxPRzCPcYXq3LxjTsVqgCMtiyCVZ88NiMLFyswwiSn6p6fntzZVPEfYGd8Y3j1ag53KiQTuDz2gky9j", + "account_public": + "zpub6s6NRFBHYBSRhygPTNeX7C5RP5Y3BR7HMRKDLvEeuJGSkJApjuCyWzp2yT7hy1TzEjUZGpkTkWfT9ntLmhzdd2a4ejrtyB8YhixjXGPU9Fx", + "address": "bc1q447vxh4yh5aj53fru2kjjcsx5rsl8hg5vut5u6" + }, + { + "account": + "zprvAe721jePhot8Wazot1KtxsJSbxU6VAKL3XdSiK9ZGEp2supFEUoUd3uy2dzK6uhx1vcCC3AmBYqJp4cdmZaci7KDMFhuU3eY5Sr4drsWq5r", + "account_public": + "zpub6s6NRFBHYBSRj55Gz2ruL1FB9zJatd3BQkZ3WhZApaM1ki9Pn27jArESsuVU4vskEbgGPqJMgzxus3eHNwy7Dp1HcfxM1t5QdYxG9djWYaB", + "address": "bc1qvxujhwntq4pe8llhz70g7asysqh4sfdctfl9rn" + }, + { + "account": + "zprvAe721jePhot8ZGemExwquqLvP64f5pM4WWovQKGR6hc7VCxZDMaxkHrK1dmtGmJMG2p6F1RLotcCVbymD84nmje57jQCdA7qMnXv7TG5CjV", + "account_public": + "zpub6s6NRFBHYBSRmkjELzUrGyHew7u9VH4usjjXChg2f396N1HhktuDJ6AnrsxZvpYRpmjHDSEN67G3sHDTkwb1BAtpCFRpRGkxSuikryqGZKF", + "address": "bc1qxc9are6lxnt87u7qmqrr8lv7earsqrtwmc5uwm" + } + ] + }, + { + "coin": "LITECOIN", + "seed": "57dee1b055bcc363718c4a596f54a1ea196a25edc6fd99332978a4a5dfc93f64", + "master": + "zprvAWgYBBk7JR8Gkud7maVG8KASyBqYwsaE6Xm9CC2Zan9qB8RNb9Ae6hdrCLygJ8Y97VA13gr3WWGLwQVxinzD3Hq3Uie4mrpE2ui19gQpo8H", + "master_public": + "zpub6jftahH18ngZyPhasc2GVT7BXDg3MLJ5TkgjzaSB97gp3vkX8gUteVxL3cYLwSaPkbtxEHEq6WjXy2rHCBXQaYt1KFbkiS4F9DebuMTDzLG", + "coin_private": + "zprvAbBjEank7Gwz6bnqqRH56SJZUXBCFGbAThqtqAzg4AbVMW3GcgAoYUqBcPrnvvFa37ASQyCaJPjgLPBy5xKaCcpdQQyWhXmoLHefmPZ7xfy", + "coin_public": + "zpub6pB5e6KdweWHK5sJwSp5TaFJ2Z1gejK1pvmVdZQHcW8UEJNRADV46H9fTgjikMxKgNFLShRVhHgaQ6cUbnBeW3Z9ChNdsRP1Ab7QQh2Xxc2", + "child": [ + { + "account": + "zprvAdsjdqnjVfuXKZTbEhZh6tpUnphF8DTT8nc1kdA8tmdwFoYMaXoPhmHjoPAMEdju1CjmVNjhc6Zyhtf9qWuoBGLMmhXBUdwuvVdrK4exa7w", + "account_public": + "zpub6rs63MKdL3TpY3Y4Lj6hU2mDLrXjXgBJW1XcZ1ZkT7Av8bsW857eFZcDeei5cBD8p5n7iMEi2DUYdjGKwwmLQNk4WouRe6RjF2Ptm3hecp3", + "address": "ltc1qvu9t03w66u29efw6gakp6c063kkmhxfumnprg4" + }, + { + "account": + "zprvAdsjdqnjVfuXQ2sDtC71ox1mWdV3xwGzNpdePGFdGo91mpkmPnWq8TnT1VgqvQdGqdCeyZmAhUquLcq8Wj8MHWC8edmyw6uZ1Zsiz54DeDL", + "account_public": + "zpub6rs63MKdL3TpcWwgzDe2B5xW4fKYNPzqk3ZFBefEq8fzed5uwKq5gG6vroBbo1sqi6rgbdi6SUnL3PTdAn6VfsRHucHF1x9S2RzXZvQeeUh", + "address": "ltc1qtylxue446us0mdy75kxa7yhrmjxltmxsex6c93" + }, + { + "account": + "zprvAdsjdqnjVfuXRi5eCisxryZCZBuC5jCeYWHEb6LyGHBsWc2XLLXojvTxSfodWNuA3zAwHnYqt9uVkB3z2VXEyqosy3Fjcm6SkdWfcfk88w5", + "account_public": + "zpub6rs63MKdL3TpeCA7JkQyE7Vw7DjgVBvVujCqPUkapcirPQMfssr4HinSHx13vfD5pJRpKvQ5sUqkhZxUY2uPCLEYAFXdLndH5VmFNntCBUS", + "address": "ltc1qr3af5g8dsjxpg4cgns3xlu5jryvnn30p9exnga" + }, + { + "account": + "zprvAdsjdqnjVfuXTEfNNpJC8irUiqcxgGsmtubCvENRrxMF5y4i9pDYya28BUunp6RNXoGHvpCptj98rEUFbXhfNVjwLKu7jCsYhG7ysmLiszZ", + "account_public": + "zpub6rs63MKdL3TpfijqUqqCVroDGsTT5jbdG8Woicn3RHtDxmPrhMXoXNLc2kyCkBouUW3bR8CSuJBKwVXoPPw9V2iNWLND37dWkzDMYwiPK7a", + "address": "ltc1qnzs3yevwq6s5fmhqu6gc7ca3ekma7vnmwe3aps" + }, + { + "account": + "zprvAdsjdqnjVfuXVkLzwbAL9m4nc3Q6d4dtEHzy1oB33a3EuMs4q723zzeDkwLcMth4XCxBiDrmZusb7dC43zGz8bakD2tXU1kKJWzGxF3p3Fy", + "account_public": + "zpub6rs63MKdL3TpiERU3chLWu1XA5Eb2XMjbWvZpBaebuaDnACDNeLJYnxhcB14vpUVXAXqfPFmyB9ZQ1eNXmHjs2LzYZJYbAPn84Rd8BSxkox", + "address": "ltc1qpc4cpvyr4cwxrnuv4ru8504ypqw4h2ged9n6e0" + } + ] + }, + { + "coin": "BITCOIN_TESTNET", + "seed": "263e544993738b2f5fc93a79d13bed9a26a0664520739e69f75f48bc718b1c33", + "master": + "vprv9DMUxX4ShgxMMi4Qq48rJ7ahq9kZPEn1FYuBTmhEVQQXF8vV9wb1oXSVXJrjszySXoee59oaKEY6Aw1KPZLxiRkZwyLSRvj9ZfdUXpStoRb", + "master_public": + "vpub5SLqN2bLY4WeaC8sw5frfFXSPBb3nhVrcmpnGA6r3jwW7wFdhUuGMKkyNbregjT1xq788cZB87rxWQhCBfQvKx9AjPWMmbmXJfbfoy9B6KZ", + "coin_private": + "vprv9HQgaSKgrU4ifDhKA3EimhivLaAsa5qd4aUUMgZZ3eqfHCKHb2BnnpfGhVcCbTPbrn8GNRvRJ6XNbY8YbDYt45BqaNHsmSnVzw7oDh1Qqe5", + "coin_public": + "vpub5WQ2ywragqd1shmnG4mj8qfetc1MyYZURoQ5A4yAbzNe9zeS8ZW3LcykYmLSfYbuqTMbZQUrkmAA51CGGrqzs9G8cwsCRt7S3KqxkVjvTma", + "child": [ + { + "account": + "vprv9LTrXrkVrmcL3Y1htKdbyYmkZ2gGfaujjGb93iosUc3aMwTmmJ6SHezAe2zw6fEmudv23JdveavCxtxu85QTQb3PJ1uo14H5LgiyeDkXSBa", + "account_public": + "vpub5ZTCwNHPh9AdG26AzMAcLgiV74Wm53db6VWjr7DV2waZEjnvJqQgqTJeVJKqMDJnrYGtq63fq5wXDRyNThmmY9xhLKdn7522Qy8phZfV4wm", + "address": "tb1qkgkqhul343y2s5nrvleddad7ha48r95d9eg8ug" + }, + { + "account": + "vprv9LTrXrkVrmcL7CLwrQPBZrmbVgvcCmxg4CoFGGj9WXQUdPQhwNyTK3gqeWM62y9bbJHXNCPAfUbPPVQvFCCD64gs7jMsjuUdcJUxcZND74P", + "account_public": + "vpub5ZTCwNHPh9AdKgRQxRvBvziL3im6cEgXRRir4f8m4rwTWBjrUvHhrr1KVnarzxRfa5MgKb9DvyWtUiT8KgJPX3KHbHoJszFD2xTiQ3YpM51", + "address": "tb1qqh9d2p4t64wruwt08uzt6uny294f76c4xchj6w" + }, + { + "account": + "vprv9LTrXrkVrmcL86zHYCqhVxNobzBVr947rQAqddw9zqZtW2W7tXi99Z21aeCiDsKLptsWF5vVCv3LZpZfC8UKHFPBcEonSUx23RJKoiA8X1C", + "account_public": + "vpub5ZTCwNHPh9AdLb4keENhs6KYA21zFbmyDd6SS2LmZB6sNpqGS52PhMLVRwj2CmujRs8pXgsk2DMaMbCmVCa7HXdetcL12tpmWsyg1LoXdF1", + "address": "tb1qy8dfq9nwn8pghk0f3pwlsyc7la3qse06xpverq" + }, + { + "account": + "vprv9LTrXrkVrmcLCAjCYcFPiVcHYwKuWdC5wKdsVS3Y3ANWLcVvEjqnvixA4QaFGJkAXt4epTpd8KNpb199gHb3VCMfZheaLY3rkesvfRHTpWQ", + "account_public": + "vpub5ZTCwNHPh9AdQeofednQ5dZ26yAPv5uwJYZUHpT9bVuVDQq4nHA3UXGdufnPALTGVe6NwfwoHXg3iEfy75oVrvYzZKdoDL3Jia9bDiufo2A", + "address": "tb1qyvuuygssylrmjwxr5yvc8uakqu0armqks5j7tc" + }, + { + "account": + "vprv9LTrXrkVrmcLDwbN3Jxr2zL62MYxaXPsXPhAADHu5rCexdwxe6RXVGvYJCu1SPUTYutTPi7kWFC6iiGxb6pHiWbvseNYqTJR44NuroqVeFo", + "account_public": + "vpub5ZTCwNHPh9AdSRfq9LVrQ8GpaPPSyz7itcckxbhWeBjdqSH7Bdjn35F29UkeLmkLmfhyokX4PgWzifac3XRGK5LtqNbgzSquT2fq6MuVxeY", + "address": "tb1qjqy4fyqmunh0pr6552j72qyahr05cnkcy4ydy3" + } + ] + }, + { + "coin": "LITECOIN_TESTNET", + "seed": "9e46e117a0eea6829b3b7ac29a7430ab0e6a547c0ea443ba56a0eeb16a7d18e4", + "master": + "ttpv96BtqegdxXceQMpENJrTC8XbEm4nXYu424LcUfsUM6Sxb8TJo1RLcpBTvGeurTQR8EheMk5mvMfPJzcQqNA3XQAwzUnYwuCHzpZBZ8HLc1D", + "master_public": + "ttub4XNESS7BCg9c2EX4cvLqGiMogKkyboTi6aSe9edmHHEZBVeP7vTmdRHjAe8EfC3WrbEuQP1Y7QGeKsJ5Z53LXkTvzA4CgZDDiFp6NkJUTjh", + "coin_private": + "ttpv9BfqaVWAdKgPkgVApup3mMGKNcrXrWXnfMeBWTdbGdEF58ko69Roz6cxmtCcc2DC4EUS19JyCp9j387gBZQbCNhi2rRFzBroEu4nvnorYgg", + "coin_public": + "ttub4crBBGvhsUDMNZC15XJRqw6XpBYivm6SjskDBSPtCp1qfVwsR4UEzhjE2Eah6qTFRrGDftcstt2xxscFyrcXNjZepiWB5ynx4R96zKPZvBK", + "child": [ + { + "account": + "ttpv9C9MqzBadEL9x3Y5nJgzBE4vgStQTLxNBhgPeRyXcfyp8JiBUnhtd4Hg7A7dzEae65Du6N5aCVegEDLevhhwgUxmFFiH5aU22r58NoxDuHe", + "account_public": + "ttub4dKhSmc7sNs7ZvEv2vBNFou981abXbX2GDnRKQjpYrmQifuFohkKdfPwMXfg8FbmqJWAahy9kJKcoehQtcjHQDyuxGG2wzNjTvpCBY3bHhZ", + "address": "tltc1q47hqht7vrae6mtxcaunr2fa57uqvl9dshf8e6q" + }, + { + "account": + "ttpv9C9MqzBadEL9y4bMhn7Au2ax83hGxP1MGnpZHjeP7RciP5UuhfnTzSo7CLnaW2Bf9KLgUev9xwykiAVXfbCqAxMUJfTYHniZT6jHn6VuE78", + "account_public": + "ttub4dKhSmc7sNs7awJBxPbYycRAZcPU2da1MJvaxiQg3cQJySfz2apu13uNSkHEr8tLuuJEBadjT8UP4U9sbW1Ft67Z1pKfqvDs2QY4Kcoq83n", + "address": "tltc1qwesf498ukykh9w9sxcs54tvdp9yxte89c2kdg7" + }, + { + "account": + "ttpv9C9MqzBadELA1ayCYdtn4eiR6kkxXYiMBn1iatuK1ofSopBogFyi2evf42GZEFnDr4mubD864ZKx7i89N4WAjPfqGP3oX8kWTi7jccqHP4G", + "account_public": + "ttub4dKhSmc7sNs7dTg2oFPA9EYdYKT9boH1GJ7kFsfbwzT3QBNt1B293G2vJPXSWQjZsofjrWqrHm2fw7F2yqZDWscZaW15Ku9YT5he7g9U32s", + "address": "tltc1qek06hp3wqp85u2qwdduxkg5g4yyk6q7mvdu2xn" + }, + { + "account": + "ttpv9C9MqzBadELA3sNkZwUsH1xxkPMdmNsyYy3bC27AXtUF7c3aQj5KnKvjg3qLUSCEEDqM1TXFiVAFQqGQzDKLZatkUpShGHukEUXTjE9n9eX", + "account_public": + "ttub4dKhSmc7sNs7fk5apYyFMboBBx3pqdSddV9crzsTU5FqhyEeje7knw2zvTPk83aa87FBAHkhmpBpiZ76jPJoM262k76MY81oPeLM4b3frAr", + "address": "tltc1q6fq5g443tl2h9h3vtp5hj5ahjnynt54797pvr3" + }, + { + "account": + "ttpv9C9MqzBadELA7PK4vvhpt22WVRxW2tC69ZxpdnM5LSpnrADosXVwSyoTXz8CFtDkXEk5nvX7zKuLArsKvYJSgESsCAgjpqVXuox5xDb9uYk", + "account_public": + "ttub4dKhSmc7sNs7jG1uBYCCxbrivzeh78kkE64rJm7NGdcPSXQtCSYNTauinNw8BCqyGVuYGLp8HR1amMww15phQauhJSSZmC674yZNq7hnE5m", + "address": "tltc1qz7wysa7e6rvz4lumuk5pk7fdzy5lplx9sp8pcp" + } + ] + } +]; diff --git a/test/bip/bip86/bip86_test.dart b/test/bip/bip86/bip86_test.dart new file mode 100644 index 0000000..33515a9 --- /dev/null +++ b/test/bip/bip86/bip86_test.dart @@ -0,0 +1,30 @@ +import 'package:blockchain_utils/bip/bip/bip86/bip86_base.dart'; +import 'package:blockchain_utils/bip/bip/conf/bip86/bip86_coins.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import 'test_vector.dart'; + +void main() { + test("bip 86", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final coin = Bip86Coins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).replaceAll("_", "").toLowerCase()); + final b44 = Bip86.fromSeed(seed, coin); + final coinInex = b44.purpose.coin; + expect(b44.privateKey.toExtended, i["master"]); + expect(b44.publicKey.toExtended, i["master_public"]); + expect(coinInex.privateKey.toExtended, i["coin_private"]); + expect(coinInex.publicKey.toExtended, i["coin_public"]); + final accounts = (i["child"] as List); + for (int i = 0; i < accounts.length; i++) { + final accountInfo = accounts[i]; + final account = coinInex.account(i); + expect(account.privateKey.toExtended, accountInfo["account"]); + expect(account.publicKey.toExtended, accountInfo["account_public"]); + expect(account.publicKey.toAddress, accountInfo["address"]); + } + } + }); +} diff --git a/test/bip/bip86/test_vector.dart b/test/bip/bip86/test_vector.dart new file mode 100644 index 0000000..245d279 --- /dev/null +++ b/test/bip/bip86/test_vector.dart @@ -0,0 +1,110 @@ +final List> testVector = [ + { + "coin": "BITCOIN", + "seed": "a7cf3b467f3a0803502d4dd0968418b27079e7212e737b650da5efc0d058a3f8", + "master": + "xprv9s21ZrQH143K2tCmsnhYj9a2A3sTnhQDafVXPhce9Nz5wRp3vV5oVrwg7RsxqN8jsbeZVawKc8wV7SeyLsXP7qoXRhGkyTZt8N7dgi5RqLm", + "master_public": + "xpub661MyMwAqRbcFNHEypEZ6HWki5hxCA84wtR8C62FhiX4pE9CU2Q43fG9xit8bFLECAYA9nJ9mNGEuZkdHzkGN5374oZpXuCSA1ezwFD4Ptx", + "coin_private": + "xprv9vq6jtRWu3kLk4dnhxUXpUpYCjWRMziPXRfNirwmHfmWVu2Q41Lj9fpn2665umKJbkuJ8qFq179pe8rMor7oTXR9qsZVtyicJHd89GRjKSE", + "coin_public": + "xpub69pT9PxQjRJdxYiFoz1YBcmGkmLumTSEteayXFMNr1JVNhMYbYeyhU9FsNzcdAoDo5EMdBQjsAd9nbA5MkPwCGCh2TLdb4yofiJdMB2n4ws", + "child": [ + { + "account": + "xprv9zTTu3DvPFUqLHj6c68A1uKpxqPcGw3bUTfyi3fcXjhTL53eAwfA2WSdCPx4fviTfmtEi4K7B7fhS8GXn8iUh1NSFAe7iF2wQs7jYiazHZ6", + "account_public": + "xpub6DSpJYkpDd38YmoZi7fAP3GZWsE6gPmSqgbaWS5E65ESCsNniUyQaJm73fEEofyg4yADjXfeoHLHhMf7VQHYBie6hMjxg75h8jXGkP1E1UT", + "address": + "bc1pjmud00nke2yq8mp8xum5scwyfhcalgc5x0auswcs5gerakw3c55sk4yj0t" + }, + { + "account": + "xprv9zTTu3DvPFUqQAWye4ZeMURxC9rxWKjtoT5RAq9tTFxqXUHrxhAPVgjbRRiE7a9pjVkXSYeYszgSq5pDPrUbgCicaYWigii5L2Yfoi2KUj8", + "account_public": + "xpub6DSpJYkpDd38cebSk66eicNgkBhSunTkAg11yDZW1bVpQGd1WEUe3V45GhQqEEBiDoM1cQMscKUZAnrjVibUMcNx1MoEqTXrXxCppsyq2w8", + "address": + "bc1p6p6kvpvna62ptuhdt5aflvptr5km3kgswgrq9r306zhsqtzrzdrqgw4g9k" + }, + { + "account": + "xprv9zTTu3DvPFUqQFXhuxFV91VjbZtN9NewgqRThdMZX8bhB5ApugiNfbvTURazWczk9BUy1o9CmgehsgvzoiTKVAEkmMwqG5BRbC5pXmazM7c", + "account_public": + "xpub6DSpJYkpDd38cjcB1ynVW9SU9birYqNo44M4W1mB5U8g3sVyTE2dDQEwKheJPRjbRSL7oNCco5esFRDL2BmXWNoAScqhwjKfYQdNg476sgb", + "address": + "bc1p0w05wxxc6r02kywuf9uzd4pcq9mevqmv7uwpm5knztxzph2qzxwslnwwz6" + }, + { + "account": + "xprv9zTTu3DvPFUqSuk4TQdvEVL1yVGVonJ4LSaF24yeKD4HT6anKSabhoSwwbBCXXE2VPtidLdCaHfYpv5gCmyGz9XVVfXLtUjtZcG373JBJVx", + "account_public": + "xpub6DSpJYkpDd38fPpXZSAvbdGkXX6zDF1uhfVqpTPFsYbGKtuvrytrFbmRntrvvu8x9LXgmcvWHzBUjocot4fJLDngqx7QGRUL27U4975gURb", + "address": + "bc1pmeq4fqx8wxl69c9pfg70vyqvk8s8w6je3g83chsyvqxrx6zshseq6jmh3n" + }, + { + "account": + "xprv9zTTu3DvPFUqXp9gXky6aiAcRX8HUFvZGnvpsegZJM98cEs4Acg1RRQUrR2rVLdLvSydUZ3gKnV9ynhU1Tmkf7tiuypKFvZXvsPb5qPX3ab", + "account_public": + "xpub6DSpJYkpDd38kJE9dnW6wr7LyYxmsieQe1rRg36Argg7V3CCi9zFyDixhgqxsKRT8vhkasf58b5UV8taviNe8ij5vhP6ebwUXQ3XdhfG9Rs", + "address": + "bc1pfnlpdrasrwpz8wj4g2h27krayq5wz24rvrg6fsl7mp67f8hm7vws2fwyyv" + } + ] + }, + { + "coin": "BITCOIN_TESTNET", + "seed": "45e5926b0250dc0a9aa8a0b5af48f647cad390faaa8ece326ecc5971b18b3853", + "master": + "tprv8ZgxMBicQKsPdcyuPEsPgy88CSRfRgY54G6YWjstK3zaFWMWFxxDND5qVraWQqMAAxVp5gA83MtRJbfzcZajoet8QcQxUfiyzdoMP5VVjfz", + "master_public": + "tpubD6NzVbkrYhZ4X61hGtXz6NnEmTwbb1iydZhKoFvBjKny5zcGtMmoYhhhfyzqeymUw7pNe5fsHusxZsDJfKyPu1kReeapmLxUHsLJccsebuw", + "coin_private": + "tprv8doyTLBZcyy7rEc86BgMtK2Ut6SxxgUVwPzbkvEfWHyk2tmfJpF5pdFfFaWnPk1i7d31YS7Sf6wYwrAkgnWzjrKmoG7UoXa7XFn5Stf7bB2", + "coin_public": + "tpubDAW1bkDomMenjhduyqLxHigbT7xu81fQWhbP3SGxvZn8sP2RwD4g17sXRjA5Ko1Bx4EQ8zCEaGYXDPuk5tJpRB9cCwcpmycwvykGd65huWZ", + "child": [ + { + "account": + "tprv8fkrus51aVMCdPVDFgnxdTG7MkLRqtH1vkS14LX6L4WPVXKPpB3PvNcrtXbGQ64eNCRd2BbYxhSY64BNju2pnmfBdYs3gogHFQQ15w8WjkD", + "account_public": + "tpubDCSu4H7Fis2sWrX19LTZ2rvDvmrN1DTvW42nLrZPkLJnL1aASZrz6sEj4i3dEqhmzK18aaq7bgE6dFdDp4vcKjGjJFLnJMLuUbwBS3NPMgC", + "address": + "tb1pptkx7numcax3amffd4l32v7vev7v4try44qkt0yyfq3ptmrppp0spk2y9g" + }, + { + "account": + "tprv8fkrus51aVMCenpbr7buyL13yGYDgAeP4sC4cXH1KNV4eZRCso1XWUCPRfJWPSkDjyVCW1JNPSwmVvhEJzGZswYGGRmdhfuuYaBsHdym4KY", + "account_public": + "tpubDCSu4H7Fis2sYFrPjmGWNjfAYJ49qVqHeAnqu3KJjeHTV3fyWBq7gxpFboKbBQCvJ7aMGZdrPYVEqYxycKUGmhUTZcqUzrMu1nXMfShH3qP", + "address": + "tb1pctzukpnr673l0uphjvv2gw6ervunyhxjlnng9hscrpdmx9xeldvsxmyl7r" + }, + { + "account": + "tprv8fkrus51aVMChXgMEGpLyTRFqJeuRCASYeYGHLjyRD9frw2RhsVTd2NgjFnexnUzyYJkjWCmjRrN59rSQhFDM4e4duCnRKfatqwVrEXNZC1", + "account_public": + "tpubDCSu4H7Fis2sazi97vUwNs5NQLAqaXMM7x93ZrnGqUx4hRHCLGK3oWzYuMVQVnGVa7Z9dr9Wp6pmF6juNpDgLXGJfS99XbfmjVpkQCZJx8P", + "address": + "tb1p8ald9w9rwpxz0f67390j8s807trvc2xz86nkj8gd93m28rmqu0ss9cp5xl" + }, + { + "account": + "tprv8fkrus51aVMCjwC6JsrMDc68pUXU8Tps11mL6zF3omeMRH2NaWELwi8Wd4s8XDcdnaHcmQ6fJAa16eHqPqGrFdZisjkoNbuCLhC4rMPeKKc", + "account_public": + "tpubDCSu4H7Fis2sdQDtCXWwd1kFPW3QHo1maKN7PWHME3SkFmH9Cu3w8CkNoBwv3asfVQCoDaATHtfdAgcKnUZi6Yf1XWGGH4TChk4XBHBSBKL", + "address": + "tb1pctetrezv5aq5szjgce54t7ldzz0t5kv8q496xk09q5n4a04dk28s9mwlva" + }, + { + "account": + "tprv8fkrus51aVMCo2FaHH6XJLXeGodQBErNReD5PbgKgTqJbKDQjb3CM5n5UB7HMiA3U7UzVUHLUZoQXBv2ftdhspFc5brcZdrvdwXYTu2yZZk", + "account_public": + "tpubDCSu4H7Fis2sgVHNAvm7hkBkqq9LLa3Gzworg7id6jdhRoUBMyrnXaPweHstYnM3jGckaWQTxR4ap2R8Ehmtnz4sz8GNJS7Ama9jHbMsuTL", + "address": + "tb1p4pp8n4580su05t0392gcy5hmufed8urwq8sk6556sz0m7t33j4astdympf" + } + ] + } +]; diff --git a/test/bip39_test.dart b/test/bip39_test.dart deleted file mode 100644 index 4024118..0000000 --- a/test/bip39_test.dart +++ /dev/null @@ -1,19 +0,0 @@ -import 'package:blockchain_utils/bip39/bip39.dart'; -import 'package:test/test.dart'; - -void main() { - // Test case for generating and validating BIP-39 mnemonic phrases. -// It generates 24-word mnemonic phrases in Chinese Traditional language, -// converts them to entropy, and then back to mnemonic phrases. -// It ensures that the generated mnemonic phrases match the originals. - test('test', () async { - for (int i = 0; i < 1000; i++) { - final bip = BIP39(language: Bip39Language.chineseTraditional); - final gn = bip.generateMnemonic(strength: Bip39WordLength.words24); - final entropy = bip.mnemonicToEntropy(gn); - final back = bip.entropyToMnemonic(entropy); - expect(back, - gn); // Verify that the regenerated mnemonic matches the original. - } - }); -} diff --git a/test/cardano/bip32/icarus_test.dart b/test/cardano/bip32/icarus_test.dart new file mode 100644 index 0000000..22d8e51 --- /dev/null +++ b/test/cardano/bip32/icarus_test.dart @@ -0,0 +1,51 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/cardano/bip32/cardano_icarus_bip32.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'icarus_test_vector.dart'; + +void main() { + test("bip32 cardano", () { + for (final i in icarusTestVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final w = CardanoIcarusBip32.fromSeed(seed); + String public = w.publicKey.toExtended; + expect(public, i["public"]); + String private = w.privateKey.toExtended; + expect(private, i["private"]); + String chainCode = w.chainCode.toHex(); + expect(chainCode, i["chaincode"]); + String finger = w.parentFingerPrint.toHex(); + expect(finger, i["finger_print"]); + for (final c in (i["child"] as List)) { + final pathIndex = Bip32KeyIndex(c["index"]); + CardanoIcarusBip32 child = w.childKey(pathIndex); + String public = child.publicKey.toExtended; + expect(public, c["public"]); + String private = child.privateKey.toExtended; + expect(private, c["private"]); + int index = child.index.toInt(); + expect(index, c["index"]); + String chainCode = child.chainCode.toHex(); + expect(chainCode, c["chaincode"]); + String finger = child.parentFingerPrint.toHex(); + expect(finger, c["finger_print"]); + for (final c2 in (c["child"] as List)) { + final pathIndex = Bip32KeyIndex(c2["index"]); + child = child.childKey(pathIndex); + String public = child.publicKey.toExtended; + expect(public, c2["public"]); + String private = child.privateKey.toExtended; + expect(private, c2["private"]); + int index = child.index.toInt(); + expect(index, c2["index"]); + String chainCode = child.chainCode.toHex(); + expect(chainCode, c2["chaincode"]); + String finger = child.parentFingerPrint.toHex(); + expect(finger, c2["finger_print"]); + } + } + } + }); +} diff --git a/test/cardano/bip32/icarus_test_vector.dart b/test/cardano/bip32/icarus_test_vector.dart new file mode 100644 index 0000000..175a3a9 --- /dev/null +++ b/test/cardano/bip32/icarus_test_vector.dart @@ -0,0 +1,3232 @@ +final List> icarusTestVector = [ + { + "seed": "c19f5da62a30d6dc5cf17f04f3c9baeb872284a099695bbc71276efaf21dad36", + "public": + "xpub661MyMwAqRbcGeNLDYrMDnfGvivN9r2QBhoiwhjGUojWiTTDjuFvSi2YM7RiD9pfiyWCDc1R7Eh9wLw1MvrznMDQxbDYGrMiaVuwEUX3jXT", + "private": + "xprv3QESAWYc9vDdZte7WUKHrFuFEnKfvNGbeZcf7HC2Pc4jiBQYsde1qp5zh8tEzaVRWzDHWXCtcZoBYdtUanZazRutW17b3Hc9fCagG5ofp4zbEjNoWtw4YW5SNgf8ktD9pgSZJRDXfJX2ah4Y8a7eC9s", + "finger_print": "00000000", + "chaincode": + "d328ffb34588dc6ccd1bdf75cc2b9f158bc8e5a683faa28be488348401d2d5e1", + "index": 0, + "child": [ + { + "public": + "xpub68VqfyFB66PzBZ696QUu5JRWEoC5dVhWpo7aY8sWakYPm5Gya7HUZNpM2ebRm7NpHycppUwtUw6djhUqS6THmqVVdenLX9ZHTwesf51ZYzm", + "private": + "xprv3QyMTP99GMEhbmtNwEjSiFTmdMBAQvBXLkb13gH2djbuq58DQhXf7vrnQXJkWQCym3VQmaxFDJ4XR8h4TKqx98ge1CBkvvgPdre7hqNqzexGt5EZPJGtuLxEUwTXPNUtB679xxqnKTBiWeZ8rSvg9NB", + "finger_print": "52e6f9d8", + "chaincode": + "e665de8ac56f45d48154ee3cde881ca6b6443330f53c4e0e30988f200630cbb9", + "index": 2147483648, + "child": [ + { + "public": + "xpub6AetkrQQxKTrjTxLJV5QXhay3FmuDcaD94LCiN4hLKX8cFnnRshUCCm1xrzGkjmSVUt35o3WKK2jhKY3UXg5q9KJiXAjT4X7kHZCmCyM2Ek", + "private": + "xprv3RcW57Y2BKmEXRfp6tgboA652kH6A6nrt8sej5Cc5TBa9qAPPfnk58ffQj67vqu5h3AvLsunE8iXUCambRwR82ZztjYkfg4ABf6b7Cmi8XcgRkK1fjiCwDXHebhq6jPRXtNMe9Mx2X5Z2tdyGBGfbvi", + "finger_print": "783d9123", + "chaincode": + "00703b73228cc09f47c72db8a85adfdee0324b1c25b86fbea8a1d4da12a20a60", + "index": 0 + }, + { + "public": + "xpub6DQSSFKFpLyQKKgTwpzqbjEdg9q7BvurBVkakHwvyUBAq6fue3JunM4UAJhnC5p8KQxFFVxLxZLTXa2RadWkHcRnhGec1R9ikWeA8arHAom", + "private": + "xprv3SRtzJ3XsAYBJo9gKotxeWDWrkv1y7gsFJVaDxMFYpkioDpGHWKxrPaaQEvyqvnZRRd89QKEzBA6wXJekJ6N74teLGc5yzEocFSPj4hRFF8khiC8ieQVFfRsbSvvFWvyRJJu3gyvDZuEpwPrfP6Jism", + "finger_print": "ee7d425b", + "chaincode": + "761ffeea2e9c1aa6f57ab7ef47b5a953d2ff0f5c4a9aa9ba6cd918ac6dd28841", + "index": 1 + }, + { + "public": + "xpub6ENHehxryxFLh4AsCuB91RniUWuCdV5VzugBwnmMKkyiCQ7tJkXNFAuFXmxgDd3WqyjGTvRBgHYdvUBEBCY1RgPHrgynsJcJgHW8M7xw73x", + "private": + "xprv3SiVEfcwCN5j8FqiWJs863oaHacg4xNGfWp3Xuv91yqnYu1wsqVPAbEE8ty1QhYBpLA99owXQBQoNtW28QntjQUF258sxg3rdYzpm5M66Uc1GBD9MrbMUWajPS9y6PKgJKTP6r555bEjb8KHXv72KkD", + "finger_print": "717e5f94", + "chaincode": + "a0cf84026cdeef0e6641dd4ea53660b70853a31208eebb30a9344bae168e1f3d", + "index": 2 + }, + { + "public": + "xpub6G5hzhrs46VEUFtr5qCHb2Z8prpAWuBosbNA4PY27Wci48zEYGmDjorBbPbbnxtvQmsZsHH6LeMMM4GAM3fRZW4LXGs1kiuRZFoYsAcyGqm", + "private": + "xprv3TE2CUUXFyS1VxsXuA9JfPWNXLyYricjGAqoYky1mpJj1tF5sPUjK4jRbYf26y1iggXqavSLeqyJMsR1qXBuRkykVKvAUrtCdtyq51F55yNHZGs5azUdBYB2QQNc47cZYu31mdNFdsQkcHrsmGwsoF8", + "finger_print": "5ab40d6f", + "chaincode": + "a0a0a70eca6e5850565408867ed78c229170f2c169d123a4e7ed4e439d69503d", + "index": 3 + }, + { + "public": + "xpub6HNxzcVDtRqBn5qQ5iqHLZzVwvECUfMhncn5xhBwEmBYkehtrUL3UPLmtsmg8J1PTKH3Xkyz44sgaACoDGZo1L8Ct5htCsR186teQ2KDtG7", + "private": + "xprv3TcNseRjRKAbN2LQFTJHacPdWpxsMqsEeFD4gjfmuaspxFpt64KSNDhZ4y48evgyRE5txwpihbg6R4xZu9UbSGckBZBXovvewc2pzQDCL1Tqb8Z8v5A1xeGT4gfUBTijLePfsaPQ4HsttdG9zNzxphx", + "finger_print": "0b3ceef6", + "chaincode": + "caddcd1317b6458982b82526a066b714d297a4cb6076735d8b32e2607e72ef93", + "index": 4 + } + ] + }, + { + "public": + "xpub68VqfyFB66PzCxCb4wW51tPbemFTBH5dnsfyqoaNQ8zRWSrZRyH97HCZ86bpSXtNsFEbYTrf9h1MWaF7Uti5GuG2XUpraHqztWTKm25Rk5Q", + "private": + "xprv3QyMTP99GMEhcBytgh9nVxS5a9HqtXmjKqzRCXTouAJ9vHBoDYsg4QzWHHrMC3uUHi7p1gbQNdK9c6me4zNuyKrphZhigAvJgq9K6TuGoEyZefeJ4EBLGUUTNKgmKQEZtqJWBkZgBusV5WusiS3dHLv", + "finger_print": "52e6f9d8", + "chaincode": + "72dcc4c3d5e9bb626b53dfef5da0782ea58575f87ef6c82bfea887dd8b268b41", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BNinjfrofT2v3jpvZANb69pXmwyiihD4pqHgwGN62dGVSxNPVnf3mHw4GU3aMUfe3vbozksLk8UDphemSwBKT23oDnMRwVNuX2cank9pAm", + "private": + "xprv3RpvkgPmzZD93AcDPaw4RP8WqLzYXQsCCYog2JfdihfSWdW2E1ThPRbgvcgBnah3mNiMh1YiL45Nf8JpU8XW6nvqcQbxjh4P4vEeafT9AMbbBnUHMjsKKzKuTv2KMwkphr8wf9mNBPaSJgxjkH39CmK", + "finger_print": "da5b6c07", + "chaincode": + "e2792be4513ae46f381f23b2a8a03e08ca537d6c888b7adacfe12368f96de126", + "index": 0 + }, + { + "public": + "xpub6BoENnvvxxCHq94Vy7i3ADPevKJvBq1nQmNYRTwkiCyX3HhBjqozNdasRffCvKHrYGfitToaiFK4rWjs5pvQHm9MjMwJ4yew5PyUbuESQnj", + "private": + "xprv3RxD44FNYtapNTb7PQYciBySKSX8WnFmrxWNUdaD8ef4G8KbJdKuSf4WBasU97Bgv3Sfpzu8Ts1XpWygRtMQD7iUSQGqRrfe3ch1b9tnQT1ydhdohgXFHgiKgwYLwrPPBhPyuQEMDxVSiidtaZTrQ8m", + "finger_print": "13d9c850", + "chaincode": + "40f01970e8b2c7dea65d8f1d552256b7304db3d12465232e4780314747cff7ae", + "index": 1 + }, + { + "public": + "xpub6FHbjHfS4JUMGc4GdZFBDgTLcDBWmv9W6c2W2763mLqsrVN9dgn7pRqRQsoUZ2RRnajgJkSAhQ5b7ThBnhRQ23R8TxEU5kKKRZjcDhmZ6aQ", + "private": + "xprv3SzKmwtotA9T2jyv3ZcYoEG3mTb33eRBv8GKjQ27272CJjvCTz1Smqrnr4JxEzsUhifwTfCHB1LV17vtipAFjQTYQ3kGfqmHSGFmDmu2TyHc6PKoxmgxauYsqFxgCKg8ZAHPa4NZWxbikUDRHAJNpeK", + "finger_print": "ee8c1efb", + "chaincode": + "ea2976dfa4b28502d95235adeb6139bb55f99e0ea184d71774eb8a2c7554af89", + "index": 2 + }, + { + "public": + "xpub6H1qTHH8V8Wp7UwjgmYMwZADZJYJAuq81HU7Sg8niPAtyDWivCzv7WTT2dmBSth3EP1uq9nG6rpFkwHwiYUS9HDN93HwoJaETRF2XQzLSSs", + "private": + "xprv3TW6p5bwWhxyWXY9zMK1MAUyc937SgQuiBXxufX1SqxHLqPegBFwe11m3XMV4TYTiYW5uA31ZkHnp5EdgJoaygr5C8VoyRc6gvmvqP9JK1rmo6CSpmAT5CYnH9KF2dHtT8yejdfC5etB5Za4GkLZHMb", + "finger_print": "d9ac56ed", + "chaincode": + "3d3f8347b342658b224bb3e73a59385f59ebb250cd6b0af6144ab821bc457aa5", + "index": 3 + }, + { + "public": + "xpub6JURSEdXZpTgD61YVDNTLjtGB4kbaViUsbRREDvnZVXQ288wF3zaUTwgR1YTZrcfWjzjNEjKhwJSVisVEZejgbiVZuGMEg49G22djvpexi3", + "private": + "xprv3TwECBVHn57uvLwrCFvVzPogyKFSaJU2c3pW5n57TtbnaGwpZCWpby1Fwhn2DUis4MmhNjMjQkbKqgMGsKaVh8qfwS51NEnVwxAqQF2Qt8hWS7WNS1UckSvRX1EosguoVPphEouHBWeU5EMngMoviwK", + "finger_print": "a016471d", + "chaincode": + "38b904b3797f2491fb48bbb0145bccfdd579f0a58a57a00d18118366c7ff9ac0", + "index": 4 + } + ] + }, + { + "public": + "xpub68VqfyFB66PzG6PZZv9ue6vN3cCL3HtyqCVKFyCDdXjtBao8M4teSRKCAdZJXtCVEbW3YdpLn1dgSW7LhgsbB9fmEiBCCF2is9Es2PYct3h", + "private": + "xprv3QyMTP99GMEhd86wQnC33yosqE94pkGpvKTzQf5GtxhWHmdu7JQvpgYrktwJF1xMuAeKwd2QJbj7rjbAVGiFdPxhDXhL2n1yY5RHWCwgJ5nayGJivSg8KgWKZp5tRj6SmdSBDiYJki13M47Ce6cqSr2", + "finger_print": "52e6f9d8", + "chaincode": + "ae5e73814ee8157d86af927fd4cf2b2f756f6b175d2bca9813971e3409a293c6", + "index": 2147483650, + "child": [ + { + "public": + "xpub6AKbuQzvGVRJRdfLDAm7QxyTDtNJoe67eY68usLuaESyKWFL8aWRutnrA8o5sF8WpuiSy964qQJNfr1QeqD7SMnG57dqacjjxn3raEG8tNr", + "private": + "xprv3RWmhjdRNHf4yxYpdZGVb8zqEncnfryXmZYVVYszVqCKYHW3vFRpw86zc9XM3Mm9VZf9iB6mL4Dx2EEX5JMSnvsBDDAQ7WN9PvikKNrZZB2hVrahh4TEgaVMpXgGsZ7wxSFHGXFLUCknxCUvdx6Am9x", + "finger_print": "4afd8fe9", + "chaincode": + "c106b820be14320c3b16b376cb6e8ab2c0f84969ea74a06fe9e43f6c8d767282", + "index": 0 + }, + { + "public": + "xpub6DK1PtuQwf4JpTX8T7erNw85pqNYa4N3DJanggYoWkpA29yJXmc6zLKsknAZVvj2wAnYiNnRJs6g7syHi9mgWDmUQUJ8BkxAcN8t7Ttzztp", + "private": + "xprv3SQHQGkUdvBALQfWW3kA2fjkYAyDshgoW4DnCC8Dw5ZNcCY3otjNZxGPYRMG3sNAUgFebs6KwPgTMDGi8J4jC6aDrUF5vUH75FhnmQgsD5neV68yvWeGfEqKk6CjNAhv1Wm9Y7xbUp33tiUEVp8zacE", + "finger_print": "e1bf7f0a", + "chaincode": + "e4950aaaf58fa716fc8691bf4a4fc0856c753e08459581b223d278cfa62dd2ec", + "index": 1 + }, + { + "public": + "xpub6Dys2k1cRMkGmovb8wkjRu1ixXqLF5jY6D4DduezBJ8v4XEEKPxmGZebCU7urKPgmToc7UHzRU57YUcJ7E93uc68Fv8MvBFnKXy8URkLjmS", + "private": + "xprv3SbpsWCzapX6uZBdeuiQoYK3trdiFbVuYSnjFQHu17tme7yiqS65UN4uYpjjEEeVbUckpsETsJNt1GbG9DsZ8ipWKybfoW9M1MtU3ALUXgfFTj9nhznmCjPhcHKGaF6x9pA71YortWUPSGR3jeEwAoF", + "finger_print": "3ce4712c", + "chaincode": + "2d49c2636ab0f32335376535da715e78f47f8cc8f0b2c4af3333212cde6a8479", + "index": 2 + }, + { + "public": + "xpub6FStS2nUXnvFVQHZ42XTXd53y9mmwtk4YmCKfuGVBcHMSWanb2johYo48mcqZC41UftSe47pKvt5gxbQ6S9B8KqoyFDbj3j9eDqNhYkmh6K", + "private": + "xprv3T35oaHqiBM57xqzw9yGueApPb9HZzgi6XBAWqNCpWd6j1qLCisnQDFWx8ryof3oUTMQxSsvouDtSAxZvKBAhvE5VEq3TVC5nimoiGoqR9V6zgBGwdxqUUAK1wsnYiTJr3L4efMqfCkHxD5PSb48tLm", + "finger_print": "04558fa0", + "chaincode": + "9f8b081139ef8117b5466fff14d2f1b4629022fe632ce6c0680e8931ad41bfe1", + "index": 3 + }, + { + "public": + "xpub6Jw8AbEFPJebPzvD9AdMboMzrkVFHiQ1tDetTny8iC8NWxHNNjFpfAZSRoffkH1Vwkwq7EaVCsi5RezD49XfpS8CBAHfNkCHgWBakLGg29K", + "private": + "xprv3U5AGBZEGibXgvyhNPYUBvawn7S4LV9dkMqw2d17THLwStKcYxtFbwgQFaE78af5KhriDUjoD6tBDVZiEpA6CPcvr45jHMXViii9Ljtz9H6CpnWwQivyXV4xj2BmR1GPbLau9mJiVPTZ3BbcoppS4px", + "finger_print": "deb902ab", + "chaincode": + "27b91ac8eb2d5ce7b9f9373872df3512efd4a5ef9f242369700a927190c7d78a", + "index": 4 + } + ] + }, + { + "public": + "xpub68VqfyFB66PzH8wQLp2C5Ha65pPYznGykue42cDxfZ4FpVj8qn9W5FCPCV7FtjWqBgy3VTstvDoQ3NsJ4BfiZRt4QWHaLjcNBPZcXLzVoz7", + "private": + "xprv3QyMTP99GMEhdS6B2CB8FsebBKx4gujfHuRnxD6FyGeWyyctuM1HWvYsa4Ga2vWUzsaee7R6bRPcERdLULsHYrxGH5yqZdinasDCM8Gua14PHqmFPu6kVwBfmitwYS3FsZG7fvYrK9UNe8ZZpfdypq2", + "finger_print": "52e6f9d8", + "chaincode": + "17398b81ba321ad04516de2a069c6b34c54967afe15c672e66c356aba9d2c3f2", + "index": 2147483651, + "child": [ + { + "public": + "xpub69o9gz7mdoTy9yWq59HnYS7gWK5FKUU5ZMhgWXzSVs7q2jYcxZBpfsAnUeCEDBT33hAKKMaifN5cCKtbWr5KExdjWWnWKVCtSWCjMiUBJEL", + "private": + "xprv3RMj2a8PUVAdSHAHqEYuPKEgkcBVBcy4mUYRtFnrLPtxmofgi4ZhKXfysyFMrHwEuL2RKwHGPJikW4b4YgJbY6Eh61QBauKH6RsU9A87Th2qne1Sd4TvKxn6u1pr4GVrN7SarCeemiGAWDEqQURaiRb", + "finger_print": "038f1d75", + "chaincode": + "5b4717d4e23c95a0995619bbf83df65a7e42ac571b0a8d7a19f5b5c6f6dfd846", + "index": 0 + }, + { + "public": + "xpub6CxPukEzLpMRXfcnBnPrUwrUpMs85M5jamQ2FSA8SWpqWzMskuhRi3ELPwkhNNRP897fRs4MuRjtqLWFMwPenyEwA9JTnnTVrb1116RaqoH", + "private": + "xprv3SJAGYFTYWrEgT3V8uSHXLjU7CdEnyQy66x34HrzAe9tq4LrWMhqrCpZkdLc4Y4wRuaxJhkxJHKjttzVfwJ66yMgD62egoLQawvhMXVAuKDPJS8PEEbYveVLqqPTaFeWGnVQMDXe8xQUxHf4JkJn3mW", + "finger_print": "b166130f", + "chaincode": + "99590fb72894860a44a67c8dc31a3b1aa729e0f7efabbbd0b7841d7a664b1a67", + "index": 1 + }, + { + "public": + "xpub6Dmag1cHS8wgz6qdxcqdQ3X5LVXdC7Zz9UPoAGagf91HtcKezDfXfoRC2AbovqjUTmVYtspt6yVfx71dd1fFi5c9NZHx8yKPehNQwmZmUPb", + "private": + "xprv3SYBFsWCYGZ5TvbBy9LPzkDVLgFcGUYhWvDYFSL8uWU4R9h6w2iitXLZnkH8EaWaLE1s7CRx5cW2SqpFUgJMtu93Wbfv5cNh5fSaGWEuveLMX3qc3Bi8MhNUc2JLymNZr4YVJtaSux5z5YHdTSEoNwr", + "finger_print": "20151214", + "chaincode": + "a38bdbe2cc4bd2d77a7ef35fb9b6ddc7c5ec711c519f461266fa84f942b63212", + "index": 2 + }, + { + "public": + "xpub6G9WyV8pHxj2oaDqi4dqQAvqJXDTafzmJs1Qw9bisxSWXcaH9ijuRGnGH9sJ547vT5wy1yNFY4fVUw5pbUUTvqzTinmAn2JLPfWCfuihDEq", + "private": + "xprv3TF9qrTsKVD77s5RSWNxwVVbwovie1vc6ef1kS2Qx8TJFhviZKo6Dc2mR85ogu8VV4guiLGWBEvkF3wNTdJ5Q9jHbRAC6X6bhTZfjorXPsrwYxECtZDztTHitTNzg4RdaG5PdUgDB31gq1JkrwdKPGf", + "finger_print": "63a3f3a4", + "chaincode": + "87fc8d2e1892f34576e8c59df947b7ff134ae352442c897ba4e9bb43bd78358b", + "index": 3 + }, + { + "public": + "xpub6HLnHQmB7AVpDGhBtCbSBdh9LN8Gt566s1HfBr9joNsSckyRBFgTj1rNF2sczV8LhV13iWN94Qg2szpxNSYSpdVDojmVPNLBuWzjEB7YJYK", + "private": + "xprv3TbjEUd2jHZU9J53JaAYSfMF9QVoEMK7F1td94A3SE6xs5A8aRXzYpvpoSnHFZgAHUri5XwhViRi4GcgRSXhpnNenVjdKpY7u74rrXC28xg2egSPbajEWxCGbi1CLahkNacNoh94FT8Ds7o5zVufJRe", + "finger_print": "061d0a91", + "chaincode": + "c11d7f9173fe2cc66fce2bb39e1d5f00f8558dd75dca2f0f2c25f3dd2fa012bb", + "index": 4 + } + ] + }, + { + "public": + "xpub68VqfyFB66PzLCKBHqn4bNBn5qM858sEiU5mqYro4n2FVVfspjAs8cQbBTrqPEWFfw2FwsVgGX2Ae4VJf5v4QoKhYoSRqfrh675JuVXd2ZK", + "private": + "xprv3QyMTP99GMEheLnHFtuAJFm3QaqbmVidTg2oVwY9Y51jTDjVmc998a8Kyvax2aCw3q5kwh2LUGH8fW2ytXcxYkQTvqCZrqHv6E9mbNgek4pfF8Pu2hYjt1GDQymaUa51fpfxSNKwcs32qjDHAYrEJRV", + "finger_print": "52e6f9d8", + "chaincode": + "4a65245834c7e9ba836309ebfdcca229473bd06e639b5ab28368d0625e93de29", + "index": 2147483652, + "child": [ + { + "public": + "xpub69zYPBEP9F325zprvzhHkLS4toCdVuJhgQSrcmcuF7AQNmtcywipHeGTT9EkHAXWxpgmpTUcpFX3pizMbcXQv1GfRyTVxmkZnC9u2swc7o7", + "private": + "xprv3RR7J3fAJiszuXJaSKtYSKxmn3a6VLSZiVDTmv2v36SkKQWnrXV56Mgp7gHdcjmXeVpfNSjdCxe8QBex3QbxojiFRegFPWmSEozptvkD9A6K95hXDADmNAwpZTNR642D7y9YsPnvuBUSficEGHL7u6d", + "finger_print": "1e479477", + "chaincode": + "b4123a1a9626e9a8da6c39b43df58fe7035d8d6b82c10b7dc20b9c976c8ef5b3", + "index": 0 + }, + { + "public": + "xpub6CymWC392Cdt2hqQgrXq3LdAZyuXwetcHk7bdLepUsPqhSeAnPjb5YXhmc6RRpoEFvPMg94Pmmz64GWEdmdntuHNmuTstNDCk2hdTRorDgY", + "private": + "xprv3SJZuujxR5czpEXQirfbrSdoqHpC7rHXXUMyiY4y8nPHdQq9h1S7graNke6SmG1xkUUhM4efWxGy8JnhqhzERokYZ2e9jSgCbSB8oxegZHupFVikqBXxzf4ubpU5z8MyZhvP4wmjQJUFnf5sRKwcU5A", + "finger_print": "b49e25b3", + "chaincode": + "cbc1b4acf7538b5b7ef000c22fc5908b9dad1a93ba0c08424a8b4f598916f643", + "index": 1 + }, + { + "public": + "xpub6F3rdHjcpdCJxYzewL35wEhgvbaZZuY6p3y6Uh1e76T4qxVYmvX2n3pAqUE7iRXkrJm9DXCxgFcYB472mwnF3dD8rmviAL6fhWU3G5AW2s9", + "private": + "xprv3SvEzB6mBDc3mFT87aXjhKDTy33oMwYqYdFsUA2sK33idwXerVZErcZarta6JALoJZiTja15u3PUpJUy9Ewf7dYsyZEnVRZEJxUZSJzFU7WrDqSjAs9MFeonZ2e3VM79eS9cwzkwB9gLPg2mXpEsDVz", + "finger_print": "ce4f559d", + "chaincode": + "89a22b47433584757b9c8e19491b8a3f92d61c87edbe8fa5a4e15a82652c847c", + "index": 2 + }, + { + "public": + "xpub6GPF6Q2rZWj3T2qkQiKoHKTi37ap3fgPYh4zmF5nWMNCgj6rP6Grucdo4xvWvYqBd7SWz2R8Ev5Mq3q853CJvTBQnKFwKJmJ8MXB2d9g1mr", + "private": + "xprv3TKELfgBjByofVRMABKDoKxSfMarbqaLq59B2hFy62MgnvSAdHfWVdFYfx2RdZYoagxaEm2Z9ej2YXx7LUqCWwT4GjDhaJ6Zg6BSUa24i5cArgF92sqiZBBvcRJj1re8vaPVGtENqmPcTzMBPspjUg1", + "finger_print": "83d68c41", + "chaincode": + "c3f758088fb25f6da5a90e38c9f0318bcf4ad1254425da9396599e2beb18fb5e", + "index": 3 + }, + { + "public": + "xpub6HaqtfaEoopULQZAnmvQgyuPNs3JAPZhyPVrvCt4zE7ShXx4267PHLKWey91LPyg6Td49PDyHZbZQHq9GxHx4rT3xYE5S56RfPjfAgASS6V", + "private": + "xprv3TfuX5CNZPQtGkprppvXLvSVmMbvYaUugsKjGWuSNWXi2pbGuAE4S5SXZHPWXvdrJkw8noMJrULJ3yfCd6rdke7BMnGw2nwYmaaJfnWnqMwZuYmGC3hCF9wsLcukfyEVVgV9c2dv8jRZKGBUjwkjBsE", + "finger_print": "271969b2", + "chaincode": + "9e2e9495512b02c5566221c640db51def63132f60bcd530f75efee47504befbb", + "index": 4 + } + ] + } + ] + }, + { + "seed": "5dabffdf4ac286336ab50001925acfb5e50645f8308466c5c8eb495b439847b8", + "public": + "xpub661MyMwAqRbcGwDaoeNciirgutHDM49A1f7GpyvRQyNBkTsQY2seYYwE5r7HhZDPtnNcrS4XSZQPv3vpRgcPjx4Wp2TzR5t33AfG3PPGfsU", + "private": + "xprv3QESAWYc9vDdZyeRAGJLA1DuruPmHDg4rvzFJm77MfnfGDSXSNKcR4AzufB6E8hwx1WEmV3PDbEqsk8KYvZNda7RPSMrzQka6vGGF5Uia41Chn59t5gigsWSDLwAf4CSEHghXjA9yAdmHsdesii75bY", + "finger_print": "00000000", + "chaincode": + "f056b6f83631e6784f4e31a10c3dd6b6cfd57ef964356b74f5a97b18d9a77fd5", + "index": 0, + "child": [ + { + "public": + "xpub68tMYzxkoZ2KZvzS4L5s58Np1ae95UNaHurTG1P9ux6zGY8WvBkYk5WtcoWWPc7o7CVXyPFmUZjqwRMnuzFBJwfVoNRsJTurtqjMAgvUES9", + "private": + "xprv3R63PAhYfKw2Bhwn7ANaUB97o625L8gYRcYSBuHeqb5z8VZkCEYErJfdzvmM6kgSrp1byQiqygihVNPfoodubkMd5vgLz6BNLUpuMk3aR4siFUYAYj6zPMJBnEKxJbNrJdNUi8W1D5hY231tRzjx54C", + "finger_print": "87b75d21", + "chaincode": + "0b4ba4b94b329366880fea9389390209b513ebef2b23fc7d033a876dc0a1c610", + "index": 2147483648, + "child": [ + { + "public": + "xpub6A5dGvZFcmyGcAQcAvFjLBUSihLKnNMLRoxxme4165hvfWb7PYYLKrXFLmLPZkrZ7wkM4ryHFwXR2rr5tnu2gkiatmZHFh2XwtrpSuqnRJj", + "private": + "xprv3RSctvMktFMeUTPyG6S1RasMW8dF2mhzhjNCAUaf5SytMM5V11Z4UnyZa65vahkc1X7HComsKgag48cxtRbVK3a9pYjC9phAxkfvz2FmnP3ADuzp7DedXR4K5fgWnMEUnDsJvpsaF1Ei9v9tc6cV9XK", + "finger_print": "2a34bcc9", + "chaincode": + "217733df46d7f7b325cb75a82ae2b37220104dc8febcf551b72b465cbe827f04", + "index": 0 + }, + { + "public": + "xpub6BjC2acbYdWkPzqsn8anLNkKdVDtBKZy4wR2MKFp3ZcW9VXzq9ZdfzdczhMHeGbREL4sn85AXoKAg8Bi5tNCWEvRScaJtpFay5WK53dYNDf", + "private": + "xprv3Rw1SKt7HeCV4JAhNz3SCNUy5B66ySPxiaTooLiMQHtWNXzarJtdqj2ikqKCwENSsCmMpY7yg8MkxL1GGSPTQiw6ucFmptMrddH3iVhF3NBf1bBHxSQgUpMK8Pgi6EDGnx5MJy7cDhJ8MNomU2UzETp", + "finger_print": "0a5f765e", + "chaincode": + "d91567968cc944029c605eba26c289d83ea5ae6641956631c40b44d6af3d6c95", + "index": 1 + }, + { + "public": + "xpub6ExFhiTfBQnAAbGRtRmPxujFn8pVKZCAHZyy6uv3akJqTAWREBdV4VnTuEaj8HjzrPGAmMang1rrpUPhMi5MftG9ag14surukVrkUZ5Pk62", + "private": + "xprv3StaTsRaHfhLAX328pPYHhn4VWASdy5ZWZw21R1LAxrHw9r4VuYN4yGcaQ3s1gobKWymd3YX995SyTaQfUFjtWrTGohJWaoASY8pcqiZUyfmCWw3f78YXMmuAP5oDxkqjEzHuzsF4oQSgfVKyrTb1PD", + "finger_print": "c12b3f2a", + "chaincode": + "69d1a8ce97ed7c8a011b6156e4d15dfd3cdbef3ff14c8b87439a6c5298d971c1", + "index": 2 + }, + { + "public": + "xpub6GBCGTDzytwvQFsF4jq1ybFpCCvgv9zzNLABR2NMmZB4KFmaRMgi6R71tyTJqoXpvYFEbTJSoJhPnjvsead3YqpPihzLLzV9aYjY6YHJB2C", + "private": + "xprv3TFekAXHTSdGNa5yguURDiF1uvjayedsnnT59fxJbwqKtnDvRLcFggqWtAeV66bAzJQZLf1UeassryF4i2ZVfBu33LVSz4qET2bf6oAuGsKi69aSy116smpvt3wUy3CVqAAKDYUokB6QSupY6yGuBh2", + "finger_print": "67934460", + "chaincode": + "16b20e1f03c039111d04aa24e31e0d6a56baa9ef44948751092b059e2ce695f0", + "index": 3 + }, + { + "public": + "xpub6JwUjTusSPJTeaco9qD7qJXNpRjTDqAKHbqCEPR4QdnR1PzXSUP2yWP6LvJarU5WgB5TMxfXdWBYqpmQRAzdXc2EVghGQyQ5ekeWM3R9q5n", + "private": + "xprv3U5GNYJ2ZScqnVWxQ4TT5yWgzPxSfKDyqFS6c8o6BegVR5mcStLgXYfsq5BRWk3sYGEjV72Khb531dE7pPL1rKYQAborzrXq5wssdUcUFyYCEWGoJKF9GFUR8Y4MzcUcdSnyrAfXLXJoWeAuJxwysxf", + "finger_print": "df8df2b5", + "chaincode": + "2de488a9cd7a824a8400b94415dd9701da69a43df4a153c2eafe937aa40b7654", + "index": 4 + } + ] + }, + { + "public": + "xpub68tMYzxkoZ2KddhRkqriqwRwZfeqX1U2FU5BQNgpwYQYfz5XnW9DsVUQDj87zACUay3wHCD5JruBr5d6aj8Zkp7qj8Eqd9o2kLkFJQ4JsYj", + "private": + "xprv3R63PAhYfKw2Coj6DGW25gjmgxCFqpFBJHokTUR36Fyjtw4iBRTpTiXucGmFhxdMXUzD2e5fuHVNPZVTirMDr6ybK72n4M6tp3TKx9u4APxxPuMEHKjVPQLdMe9N3F826HhpF6cP8mBjbipvj4X34uk", + "finger_print": "87b75d21", + "chaincode": + "7f1d4e6bcadaf7a87e3ec12171a63fcd0866143a4ce80cb97f3090442133dc9c", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BL4nx5pFCACHwnyf6SKoXFArLavy4WEkBfWZzZEoZ21E7SoCL3J3hVvTaZvuBGgFapXnmPMZhuSwt69q4PQDv2rBxKkN9ehNpguwqqRhuD", + "private": + "xprv3Rp91PJa72D4CrfN3YjKmjJdJkAzWsazEiHS5FChWmUrG7Yx94fco69F2M2corEhYrTnbe6geVvvWypAoKXJinP91R1qX5mm78jXmUB84QXqLReMzo9Khp3qrAKM68msUD83MyvHv5nwpjF5g6e2wGm", + "finger_print": "d4210699", + "chaincode": + "94d1796cb5c01d2a603ac773df6b79608d04737f94bedf35e949dff9ec9a9080", + "index": 0 + }, + { + "public": + "xpub6DCnCogCNNbJNxFo4diMmbE4VWAYuD3LZKq4FmHmbToimvZZ6mE13urNvksPR3JBkiYH8xdNebZxGqH7ZJBfRutgL6nUXgedFycXM2CS345", + "private": + "xprv3SNS76L855ZLXxkGXxxfW56MJSaS2spvVRA1UkXR9J1fJfB4WqvFbFcGDnYi5Rbg7LMrGcZyMEckHVuZP2UejvFsW4Jaod667qWkrapj6mPQmkeYrrrBY7i9kLjKhL7eYE5gX9ygZsJ9JYfKeZdxNQD", + "finger_print": "d323e9f0", + "chaincode": + "ac8d1441f330f8091362e1ca0c7e22cb244d0f8945a48141360b79b6efa76669", + "index": 1 + }, + { + "public": + "xpub6Dwp9xRutNurW6zWd7iL8YShg9ghTVt72zueFVskYv4z5q2ixrvWJJa1fwiT2xfBCzhPJ3esCWd12Q472rU7byB77a2NM1Xe7rAi6C4FCAs", + "private": + "xprv3SbDZKp5cQNHRumKbH4PgxeyXyvs5gBrCvBXpXQCgW2Ur4Y7dvWbMXGfJdHVrdXGykUez5UpAGyiRh5duKByGcFpyP1xWErCV9Nex4Wae1ugV3RsoRcjJBsijY8CvdkF3F2HhBHtGVhjLH2cvStsCFo", + "finger_print": "3815aaba", + "chaincode": + "038f6e061310388de62d1eaebd3dea64fed5bc821b0a72a8ec25614d08b6f0d7", + "index": 2 + }, + { + "public": + "xpub6FwnQNHwWZzf8zEasJJi2kcfEp2u2TuHuCtNrbL9XbW1pKVEvcaZ7haZ4ab8yyBrDgVM31adgUnyV5uvziz6FLfr4dsmwFQqMs39LSpbm36", + "private": + "xprv3TBfftUVZKKPYNViiLKZFwga7mtdyvRf1VamLzUC3dA92KaWkEncvnV6iBpnXeEV2CaThCmmyiEYeLPjj5VZgcsN987wRPuPJZDT4SYEw8crdymuvmSV6JFqaW7DFBQqMHR5L9Gp86CpspA1VRdNes8", + "finger_print": "481dae1e", + "chaincode": + "241ebc0c0b8cb514242355948cd1a27daa6744fc884ab7346e38c81f77b0a297", + "index": 3 + }, + { + "public": + "xpub6JJfmymtqM3FTNLbNR5x6VprdVpXUnpFDSLpDZ2icxhKyfUJVWHTedkfZJCcqKXnLpnyeGwtyU1YTtzB8YSn8RHRUQ5RdeptMdDZGUwUjR7", + "private": + "xprv3TtLA6Ptew7wXvgD9fQzpECdYqYspdL1u8hqdzyrMoP37wGX28GESgFf8W9NLtJU9k7rRZmmsy4gK6G6jMihs4TmJmSF46gWEVrHsnPpNyhEvJCdbNDbR4uHRf4avkTrwLArRWKJjDpAXo55afAwyv2", + "finger_print": "8935bcf3", + "chaincode": + "8a2c2691bebb77d6d400d5409c2652bd5786be2b1cbf446c319a4ae64207e4b5", + "index": 4 + } + ] + }, + { + "public": + "xpub68tMYzxkoZ2Kg4M2Zz6kFG4BYnokZjt4hSJGL3XeEi2cNRvau7vGDXdUU4YatPoPPDVVGPFfvd6xxDuzY1iZTD71ytETLmryaxpPZ9e7Fd2", + "private": + "xprv3R63PAhYfKw2DXWQPgiJyC1J4J2GWB4AK7HiBe8bwVzTzbcPau2y7fA6ZwdKd7kY6HxYoEPB2TtHwZnJsTmFPi452FHGY8Jn2evQKMeCAFe6kbQg9M25gqQQkTgBEEm76aEvZA6ekzMAZ8iJ4PzqC3V", + "finger_print": "87b75d21", + "chaincode": + "72aeb533309d34651aae6b431d18dbfc3f3546be79342b6ef967c83434cba469", + "index": 2147483650, + "child": [ + { + "public": + "xpub6AN6NDGgpRKHD61VSqc6ZvCTL8vtQJ1V1JjPsdTkzMdxyCQaYmFmNNEQMRvQmGK8QYo5W8ma8su5vvnxFByQUTbDqJ1Ln2jFTo4pjZ6R3uU", + "private": + "xprv3RXWckxGjAsU1X7X26obvWJAxfkf4H2CHVTtMVX1d7kyThQUS5nVV379JzSCVvFHUb3BcM7dqDKAyUCNoorQvC5sKP6JnzWgzk4z3rNuiMrpYkZq5vdSkopivAWKgnBAUMiSFBzKxc6tzaxr1TbKWch", + "finger_print": "50d53ed8", + "chaincode": + "0d7e250efdafaef60146cdf2de8f177f72ccba7695d602aac1188d5dba8fe73c", + "index": 0 + }, + { + "public": + "xpub6CZwhbMR9XAm3A8xFDWXepYk5hEusm8Xcin6xEVXJw7fTBdTCY9Nt6oCfJTNVQhAmssvxb3cHk5EwjdR27q8TySqYtEyADQKUHiGk2Y2oj9", + "private": + "xprv3SBVRzTwjTgjzBbvdkgq9Q58gc1DQv4Mn8tRySRoFww8Bmgq8fPU6oe4mx2s8vDKsS9R1sSA2NoTLKuPZtMeZ8zLfSzEPVVonLDz8q3EgNnmZLpnJvfv6TjQo4Dw9rjx8F5mToChVqwTMRGyZEE9Jft", + "finger_print": "7cbbafd0", + "chaincode": + "c26a6db11277251f9c36ceb79da90e8ea70c82dd364d6a4b72179e28a3dd25f5", + "index": 1 + }, + { + "public": + "xpub6EsNN8nyGT3Lu6R5yDqjmxGbSNTFo3ZgzAGXPuccxgyVGq7p9LiiVRjoWH7jtxQ7R2AFGy4WByGViD68uuXwTvnp7JXTYQcp3BU2cmRkhmX", + "private": + "xprv3Ss8J5Rbk3f7a4MqRzAdGBNSsfZxGbsiG2PhLmf6a6npBmTtyibMhyJMXKbnc3MJ2rLjPSMvNrvd449n3JGY9Qd4AWU6RVM2Db9WEaKXCJuj1stzsv5CHgT5yHv5X8ttHvqBL7XKEDdBjSHGvvK87W7", + "finger_print": "b5b5b82a", + "chaincode": + "82bd2bc51dd41963b998b4496cef072276dbe06e46c3f08ffaaa2ab6abed5cc0", + "index": 2 + }, + { + "public": + "xpub6FTnawtmWFYhxoB97igRhX62iQsRjFsziv51LCeNqfigsccAMHpXdixj172MigvZnwedkubFm2tagMHJSghHetDhdaiTtSeBACZebm6CiKk", + "private": + "xprv3T3MJANghA7Xqdvm49vQssVxUeTUCBWAQyBrriCX9CkbEDZZ6KuXchFiU3Tn6Eg3zYgZpmmom66mvYDjfkaYkRAocQZCy238sRFfFXmg8KoupXEwkWGts88e1vD7LrKU8Y1Ccopk8j7qsB732rb2WY2", + "finger_print": "06718873", + "chaincode": + "9897b617ce23e5e348cde23ab2784c649f70533a5c28d4e10150d7c4d769b1e3", + "index": 3 + }, + { + "public": + "xpub6KAthSxXxZSY2dwkwja2WwJ7j9VtRwpuFtzneyPoEm529o262Q1t8tyheAD7eMzreZMTeWBPViS1AH9iqNem9RnHJfhK2kC7XYSAi6L5a1L", + "private": + "xprv3U9FUZyJa74YN6yrmZV6N3Yg2ghXR9j7apyJVGni3txDTBFDo7PoivZY6xvp2M5XbFcc8KiNDBEhn2kmNch2aL1SPs2oJPTvq3uoF8VwwUedPnLWzcv8c6FDvPKSvm3MKVxbuBzxTJNPQqRhPAw75sq", + "finger_print": "ff049684", + "chaincode": + "7a1429e1b375bd609bc94b5ca3016b8f24276d9bf25b215544c56a63ad7cb35f", + "index": 4 + } + ] + }, + { + "public": + "xpub68tMYzxkoZ2KiMqyqSJu3DpUuNAhc2YXwjAxZhjzYPxMTkk9DZcTjM2Pi2AYWTAveDgTXetpLL9FUrBvuXerH3FVX4dxa8kq3FXmz4wTwgd", + "private": + "xprv3R63PAhYfKw2EDAYN4kqVnMYTFWaExajjACMTvJ7oTeb1t1Xg8yZYf5Er3RrxZN6hdERDoUqSssQBhdyyyXSLwwzeT4YFG2QDf8Z4DNdpZH6C2cguvjeRxNu56GBxkfsvgHZeCZBeJc5xc7apbBS3Lw", + "finger_print": "87b75d21", + "chaincode": + "59deb65ff1ff9d7215f388512b9608ecb1db7d8f786a39fd82b2d6ff1d4aa32e", + "index": 2147483651, + "child": [ + { + "public": + "xpub6BA3JNJ7AUNihdvvjcVuTkjnHP5vfFuapsW2m9BxKRGfHjcTGVLfe7PEoACd9fCNfQgUCfcdF93TPt6bNQorKhEXasSrk5yZK7RmT81gdyJ", + "private": + "xprv3RmAGVpDMWziVR48fvuKrcdu6dsLaVHjYLxSqtuGa3ZrEuwfYUowKzFVGBujboU8PPPyD3zSkUA3CWBSVxRmjZBZxkSXkAiR9xXMP3RX5hXw1zae8RiWZRkLg6uQi6KZfs2bqcj7jqxxqvPgrpr7Nqt", + "finger_print": "bc9c8eaf", + "chaincode": + "c73ab7f8a9465c3f68459bbb5e5701b4e38c814c2a052798be49c8704978e944", + "index": 0 + }, + { + "public": + "xpub6D1kJS7R7XSvuJSthrgwiomrSNRsYMonM86PPFyUvsJ1XzFZWF2yDtfEczBtqkzWeehMoKtnZ6kHn45tYyxhW5EXYaXoSHk8PhXb5RijWFy", + "private": + "xprv3SKA1pbGBYqcjgzaZsFCna3CHXya5XyKKr1ZWnzazcoKBttDC97hpKqNLTyEoLZkTB484YYSrhD4Wb416xJzCT9KjswPfHQzpbm4msD8jPFgjyc9QNZp9z5PvuaR5JG4EXn77Nxt1Yn5t6r3XA2DJhN", + "finger_print": "b942b293", + "chaincode": + "7109e4138c85f03332a4b899a037a65c5081a70f21cfc88a5d22b1abd411a9d7", + "index": 1 + }, + { + "public": + "xpub6DbUCMRdo8U82rkKSinsESQ8Udx7KJf9fVSiNbsMuryVCF4qzwqDvYQwuRUuqtnTAmdK7tzTABvdU8zhezVuSRbuWdGbin4EpEWoFULJJXm", + "private": + "xprv3SVB37Ma9spgWf5kG6aocEAa1kD9H2d1KuKuxEfa33zpyXiAMSCjLpos3xLSjGv1gw7Bh3w4qL6CSb9jsfhzZb6aJEDFiTxcp8sn3LJCgfJq8DEDPpSm1pbN1DJKWNQKWmuxXUcqXdzAVAPoQU71qZK", + "finger_print": "085cfff5", + "chaincode": + "71381ebfc4ab2210ec86891a16562f02b8eeb43443c8c579fe60125ad0eeef42", + "index": 2 + }, + { + "public": + "xpub6Gq7JmuJMB6kQ1V4sDDoXSyLxbaejHPBnSxecSXfojAd2t6UyJc57M6sfhYqzJimntviJhoGwgNHUCuTExogizThrEHuta7eri75qgX6GSv", + "private": + "xprv3TSuzk2jWJdk5JZfN44CrvTjDUEEEPLpkQVCCcuH8gEibaWshCm1DDymkB8fKBNZwgGvEqpSJiH1BPttToDTPiw7jx8nVSrqrxW1vZd9AGn1TPsJFHMDR73VTCdhtqNqGAoubTuFcHPQUNJrn5k7vGH", + "finger_print": "c082f66d", + "chaincode": + "98433ef50151d86961808512dcfba4b9c9444fb8c28e4fc608b7639cdca6303b", + "index": 3 + }, + { + "public": + "xpub6JJPbhYaUn5yDarx9aZ8wJ8LWDgGMzVGTipgnE9tsBjT62uq8kxXkhTv4mkvCPtE6yCNZFxHW18Py2tvFZBv99h3YfwQ6VHkUvqRAVFraYM", + "private": + "xprv3TtFMNDAW4MycgmVvsp32vHvA12B5fGaqEjv3QTgdL4gQHpREUcCYTb5u8mtKN95tG2NTv9Zr9ybYJX2PW9LyxBXBwgv9FgWEDB8GNEdoDKM1efUY4cENEb2e6gF2RePTqkZmFn85wMU78HtpZ4hsrn", + "finger_print": "888e3f5e", + "chaincode": + "163d6ca7659b273cfa090343b8a065017af79ca4a34872c7509e383c65081296", + "index": 4 + } + ] + }, + { + "public": + "xpub68tMYzxkoZ2KkxVGra3uRSUTcZKVTTDKej1eYy3mNfGAS6XLomnqN4m6CnHihMPR6sHed8XropKUGsNgQPeiSjKs2q8YKzWY1BiorbDZqYD", + "private": + "xprv3R63PAhYfKw2Eyv4RcqXTJRpP6vZkGzuh7sp9TXTSduF3UbErrnUpS99BdDjW98DQX4M4jmJWdXM28pkAPGZKKXAqhwjJe1RZe2qPucSgrnUVvGsUzjDqFTDvUXXic7HdzUVWRSyfjss5jd6b3UGTEx", + "finger_print": "87b75d21", + "chaincode": + "5ebf0e02ff0782d1ceb97fb97540c3b50810cf6bcefd792ad09fbd02b48bae5d", + "index": 2147483652, + "child": [ + { + "public": + "xpub6BCWE2K5tbhCdNHuB2FnPmpkG382sLCztcrNm6PRPF7b4E5xSWfsKx1NmKV5Pmbq5FSHid84JdKGbK2NPnGhfBAuzPJn5MeDWxXCYVzGGma", + "private": + "xprv3Rmtj3FeNHxsbU7REhfzAWQ6fKLrDNwn75QdNKSewwAetd92wWPK7sxgETmtS4eWYfUS3JqLYf5sMGwQQL5F4bAt2h64dmwwdAPh5pRFGEXkSC2R1AGEVEMQ8jvRPCX1r8CAdv1EwF23MRAkXEzGbut", + "finger_print": "c26453fc", + "chaincode": + "0a21c65258eeab9ca0fb8618a16ecee97995c420e580bef4edeb18154e04d7c2", + "index": 0 + }, + { + "public": + "xpub6CgyrQHEnczf7eAkNTej84AatZTvj85YG9D4wH5AJVi1eLHpBHHjUWFWiRyd5iegBW7rg8ets5zLcMwMykCW9WtRR9aDT3S79xiBZCZcLmY", + "private": + "xprv3SDagHUF6vHcygHPMjGCLHRbUgsNQJ5t2BBWgLJ5NX24fN32TjsB4bBVUrTwCCDUXxAYm3pBkU8jD2THNLQAq7Vpts3Fj63pwAzEKyBWdCcFDxBPU9fBKgA2jdwuohZwK85KN51ZJTWCZeS2pZzjDEH", + "finger_print": "8d3d79a1", + "chaincode": + "0022765fe7f44e3ab3c4f38de1d8de913d66d7be48dd5aa15bf2a9d462e6cc0f", + "index": 1 + }, + { + "public": + "xpub6Et1fGXaPqfmkAs9eweX8ndVjTZ3LdM7GGQVEhLAxFQcsfzJHAw59BpntfienvQsPWuAsva7MV4wfLUqazXiAs4shHs7kxKDPEkbNLmAVDv", + "private": + "xprv3SsKNfLxhoLX7oU351efuffbEnJdaBgXFJDuNJaYTGUeJo5ZbfSjpvVtTumQNdQjTRthLA7WHjD4DhdqoucqK2py453bR7tVKRCNCqZ4sNBBmMKrPjGWSx17iYQBBCv91NkwhnQkmu5Cg7o7VGas2kr", + "finger_print": "b737db32", + "chaincode": + "3dfa39800ea714b24b4caf44605b7a28b25584bf06d6d87f454fd3a28fc48a19", + "index": 2 + }, + { + "public": + "xpub6GCbwwgyPZV2zb1wphzsmCjBfUSnt2oDqP78uFzgnkQnh8FRYdWezMkpmB2TP3wbWVkvG6CsuqFMViRvULwqQ9dP2JMAUYc7a7w6sQpHmUs", + "private": + "xprv3TG51Vb6iCHB4mU8YxAgDdMTfg3Ad1ieFbkw8eaFv36Mqw1mBHE5ZTAh9iLEDxvzBV2Usy15mV5BLbdENRX57SpAj4A6NqyZhNxT9nnhxB8FZ8erBjq3w7fjgS6PbHeLVFV7Pymd4r2YPyNcSP2Poe8", + "finger_print": "6ae0f296", + "chaincode": + "71471e21fb3650cbf38b07c617644ab83363f9597b62464fe92342400e42dd91", + "index": 3 + }, + { + "public": + "xpub6JPimmrb4dRkUKVbEwHd6dmR2hNA3L7FVDHLPm3JG5EefyhTRX24Aniub9g7MvpJkBRKAmVPB9VWM5JsbuqdSca5htpBqt69S3PwKaYb4uV", + "private": + "xprv3TuqCJf8A1RXhQbLPnfJ4kQTDTKcB6k1KMn1NK3EWD2KtWXREsa12crdtHSYC7Pqc875QBEwPMYae2CE5HGTc8rBFsTEvbzASWCjkcGiYRXTXZE1MGrpYoH47k1AYFfaMT3RA9D6XrxQTh6Cj1aHU77", + "finger_print": "950f44a7", + "chaincode": + "390d758f7f6100f499c6ad3bffd2f8b9e82cbda7857a72ec21c6d0156ff0917b", + "index": 4 + } + ] + } + ] + }, + { + "seed": "daccb27d961ad8cd11ccf4754cbd6a256694673add507834061a86eee1bbd626", + "public": + "xpub661MyMwAqRbcFXZ5o4ruYo61FhvbQD3k2BgywUzszzwj2GyszkqkKJneRhi2ccoWCUWeDL2KHo5MXgFWbdRrmKd4TRFxgUy7JtqSEF2gyFM", + "private": + "xprv3QESAWYc9vDdZZPPANsRZCAcGzKd6YiZJMKLqrbzgfx6iMB2j3GBDg72irGKCVzveECS9BkR3xZ4V55JHBL9XSA4kbS2QTRmfBENpAYgoYqdXsZrbYgNQiDdM4Q7RK1zsrjVey8zPhtajBMbthxJ51Y", + "finger_print": "00000000", + "chaincode": + "62ead201cf220fd81e4c914ce1baef6c216c7cc889117207205bfae792577c6d", + "index": 0, + "child": [ + { + "public": + "xpub689ewHx3ZoeFfERiU8FxopHph7iBSWUqP3bpVLxx3s1KdAV9scMAcj8bxAM4WQzuV16K5nxKhaqk2KZNaX4N5Nky416QmkRjzMR6p4dpHE5", + "private": + "xprv3QsMg5FAU8rHdRTeYCkuXR6avEXB6vCkXfgfYL3LnMr7RYKhxrF98daPEjVGvAtymWHJfqtVF8gxr6xg1oxzKV7Vi6epdXdPft8vizkWccsJpaYfsDh43mG3KTZv71WuzoQ61Chc6zAUt7Zn25PaxUz", + "finger_print": "238dcc2a", + "chaincode": + "67245d39e0526bd72394ac320eac86644e60c044ae43de4e5477f79c0d998941", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BZtKt5x7X3UGtaQiaQNsShueuvZs7z9PQXa1EYsXHexmjWDqaHcHhfwk1LtQm8z8cXBLqSLgyLJi7PVzrySpM4T325yA6o4xvqdPr2tHkR", + "private": + "xprv3RtF7UwPFL7WtQ24C3VY5PW9FKp95V6Ab7B55QmGfzydwmmGWExm7REN9CkChYuUyzqZiuX3VRV5TxFWXkLCPhc1vGZbmCXXJT6eJDLWwSTmXt78HhRiDMWZun2sXf8TPxJjHTzXWL39pMcBpwuXrX9", + "finger_print": "f48bad47", + "chaincode": + "16a72c96e58cf29e97e6f01068fd0037d84c48cbe0f17093011589a224694a0f", + "index": 0 + }, + { + "public": + "xpub6DXNycKiPsiwyRtNjf6mg2i9NsMDLcXrzVAkLhhnmoDA89dsDbiV783PLxLvz5BLuXsC2z1WLUv84q9YrCREQCQmj7yCHtorrJCTjwSezy9", + "private": + "xprv3STxZujJSNZ7m3WJR6zRCVXA6rCcnKS8NojWPEHCrKnFKCSNXtfVrXoNHyxpKbZ7ukDowtGikE9ggkN4npDymDyzJuSeSkfjnTtH86uc9PUu3y1xD8WFAaaeam8zkaHE5c52Ytudi55bUoyjzRwNcxS", + "finger_print": "fec4f3e0", + "chaincode": + "02aedace08c98b2191031ba3ac420645fb8e71350c20a00d908e70fd66d6a762", + "index": 1 + }, + { + "public": + "xpub6ENF98zDjKv9TygXKkYipNFoqZ2CSHdWWXM2VEqz3wo6ma9BSTQAWFcVysvvx21cjX8LzYvKDC2C3vY6PVX3aAkBy92vM98eefUiHbUq85V", + "private": + "xprv3SiUVRXqPxLaFwRk8wXBbRjehJAmUPq7skqXGWMYiH5quspr3s7JLwRYvStVDQchJ7wn16PPCP5NfjenMoFX3qb6jtRTvhLf15Kp7tRywUjQ9DVBTPfpQyiqoYnuJWT8SiNuC1J8Z2YGFdLaDGBtuYA", + "finger_print": "71646360", + "chaincode": + "0f169f4d02871bd32bb90998ffdb97e6a8d2d86c81a7287260e323e9937ab833", + "index": 2 + }, + { + "public": + "xpub6HCN9E2m7o4nQ3gHK4C86VH6kqqNxedjUra4x2cL6bcAFZhCr1TP5HvSseahcxuZH7RKCGVokn6Qsa3wdi3HoX1GKUfSAzk3vqanz8ALMpi", + "private": + "xprv3TZEE12jc398nwoBqfFSNhMda6x8FoAmKvRqgvDsaXb1UoMRp3WgV9jPato4p1eZdBaRYsXKUa2kVNwkfcZN7NX4B18vXhGGpymrK6zomHdrCmBmfs1bEiwVTq9mzjymAeZb61WM6hiAJJf3SMWwZ9t", + "finger_print": "f25f1633", + "chaincode": + "b735ec7aaa0c9ab6fdc6b43cd5138f820e4a104ca25ffb9b5aac8cd892968080", + "index": 3 + }, + { + "public": + "xpub6JB9V7gRX93pan9D43woKoEDZh7DjBXvEXKus73i2fc46W4xJWgjfcYAxsHZUNNg8TNZR23jJ1T9aKJd9qnwcVb92YQfLRqziwgktR75o6r", + "private": + "xprv3Tr6Yyk8DLq9DzQRE7pDX6NYuh7zKTqVLt18C8ngYLxLmrepvGYs2MbzKkWSdmLgWiQ44W2FA8A3Z9aFFyxHi779RDVdtAogSPWsQS3mGFvLseoMKkicNmPe3gn17PyTJXfWrrS16F3tvx4GkixBiw6", + "finger_print": "77909d61", + "chaincode": + "35f3c2045f111f121ef779b645ecb62f585bf6d0e0dbb1d0155368f3478d2436", + "index": 4 + } + ] + }, + { + "public": + "xpub689ewHx3ZoeFhX2ueh4uHhVmw9Srohf5J6mEjzSTjtBxrWVELJyGGk8ueQVnh9Yyh9WTDvRVqPGEGKHRDez7oakgwPaAjvKkcwtnNTLPYJ6", + "private": + "xprv3QsMg5FAU8rHe6rQhsmwQfVcstizJgyYJpKkG4Yc6PAgKN3UFPjQGZHd2Sw3m87o8VyXLp6MJBxe4ciFdBusqHwmsUNYLB4EHW7cZaBsNGuth6JjKv1EaZnA2zBcXctNvy1Rc5K4Ug7Ry23fyXt8Gym", + "finger_print": "238dcc2a", + "chaincode": + "4cc8bc541bb048d8c639b489403687b10e0289bb10684ed8df1dbcd5b6c20d11", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BGcLaUSRmPPakbSW3tF2DJMMLmS71yZwPwvc513NSzmgnoEWokHkjP1sZuEdQDdWLP7D7geAWm1sUgaza9knH2uJgTuERWT1nAf9QqEDZH", + "private": + "xprv3Ro7TdZt2aA71Lu2wVqz6MerXP8G5XF2vBeTF9UwWbxdfxasgn5jj2bUBWezE8BHbsG7EXrQfZvcwsm1BMApqb1FqUxsp76PKEYq8dEm2Dgm6u3NHGnWviZcgd57LLz29SM7kpHZeiToTbtuqf2XMn6", + "finger_print": "cc059fbf", + "chaincode": + "3c62a323cdd9316d30e2ee1c1667a2b5f3e39b25e16400bb64a6e778a92e22d0", + "index": 0 + }, + { + "public": + "xpub6CpLMdCMxAMU84J4UG9pV8E4xeQskhGAofR64X98q1mecPAfqay4gKqNFCpGqdESKq1daAYLSCBGwhx9Qr1EHGAzQmioY7RL3EjSuc1n9cj", + "private": + "xprv3SFmNmtrQ2bVbaKDvrWVBcrcLKC17rpa8MtgmzKfhzP1gkjgTixx69ov2uZLEE68iDuc6bsspucsSC7ByKjxkwD55h9wgfAJPt6KtUbKuiZJDxnGcZfmPmCaZDDEsbvECyi8852WyDQHp7XaKNdNyF9", + "finger_print": "9e7d4519", + "chaincode": + "e4c1679f9b5b1eb543b3af874aebc8b4291a5a529f2ac9f552d0aec6743d56b3", + "index": 1 + }, + { + "public": + "xpub6DgRecSFHRnMftaKaHK39fQMctQ3D4Qo8r8rumZHHrd7Je4yUeVstG8h61rGTA2DGs8EYRQbyP1JpWXLqebZWLbYBKEoomAxjC6ji2vaS26", + "private": + "xprv3SWeRogoYBBPZLWb7AxfyLf7FaFXh2z6L9Xmxg3Uo2j6Q3Gr95c4jsWq9CPN771bNmeVQtQ9qqnHDkMCatgry4BaWjoPA4MH5WMu1ze2xvszmnjv9EvR34K54U1VjExeZp9t1TtZb1KscMkQZXa6CMy", + "finger_print": "13fd2219", + "chaincode": + "37f9a09b80222ecf9b7773a0396799fc6abd607fc8a51a91da8cdcd445438784", + "index": 2 + }, + { + "public": + "xpub6G6XvFnp8aM69PZrBMpXFDno3CGEhNKe1kgfUbMSRmDdYMRHZRyFb5wreEUVFrtkr3vYmERpSEnwiwp9g7jGLYrut8WE5FjBxNpcvAg9Qne", + "private": + "xprv3TEGSB1sabDU4UFbna5Snx4uhvwYzER7AABnS1tdr9ZzWeCiiN3BbK8hXdKANsqrJuT1L5bAGu5buyaNbPE5QxyUTv9PWvDLreP7sYkH3QqQ3M85fn9pfQF46kAvzzvwaPosiCYFCSknxFNon6pb3kt", + "finger_print": "5ca4398b", + "chaincode": + "6341698838ca43a36b2318654a88528b64046e47431ef4a3703e6089ce684a22", + "index": 3 + }, + { + "public": + "xpub6J9sYrwWykiFeivvo659rAahvwwVQKnCK9E6GBNjVX1RwEfkuesz8uhfVbbcT6aCmKcJFfo2Ea8ZuDjw9UdmaF4RtKwd7VKXCh6wwjqbBWm", + "private": + "xprv3Tqib6r1HCcuoiiuwwoEfhMbt2MU9DbRh6VTM4jwNTzd3SNAki3zN7N3TzwPsU3KrUM6sPLkCBtLwpu5yFPoUYkkzE39efcJZyjSiMCncXFNteBZqymz22eDYAQi1iEqf7istGzrKJDZNqHyNbUkE5T", + "finger_print": "7493206b", + "chaincode": + "3327db04cb8f62d1ce3f8193a42f3d0719511c0107cf30d9379ff410b119de35", + "index": 4 + } + ] + }, + { + "public": + "xpub689ewHx3ZoeFmDM3zD88bv8tgLQ67tJ6Zzg8ju9AcmSyyS6hsfqatjm5ooSMaUHKrr17a1wwYcjfP2eMvBcf9mazkrykRfSaXeEUhSbk7Dy", + "private": + "xprv3QsMg5FAU8rHfCWw6XVWdnCYcthZnShiRE3MgqDMF8noyU1ytmSWFpns7swo2tmThZg7AxXTTDmLrLtyqvffGEvZRiDMqAW7Dqrtp9NRQCUc26NBVvZpjBPjzXYHMo3xS7xqLVnWr4bpq6yRZWvMwGw", + "finger_print": "238dcc2a", + "chaincode": + "bfebbbf465c0a5dd6528ec9ff87cbb883459d6118d86eace44438c68a036bee7", + "index": 2147483650, + "child": [ + { + "public": + "xpub6BLAV9qCQ8qhykPdciUnyC3qEnuGtZSr14bXL8mW1RdH68GJJqUyYvjV8LVaDhVkWnXpY4q7xx3gYPyTux81dZUoxnJ1ytpjryt7vqSxCyy", + "private": + "xprv3RpAhUZWMDxy7wrUu7BVdcReFdv4hXknGPv4mTHVJHv66D9PFqGm9pJVjDnrXBZFwk8KY4uBCRzX37uH9crRJKv8Uer7e5mP57D8tRXAZrn4ZZ9thBpVUYHWACw2vqMUAWCESHfGBCmnKs3fFQH6Ysw", + "finger_print": "d45bf838", + "chaincode": + "0ba439877405d543c692b72f7ba66690ec506879d0212ff69bff2e3daac98d1d", + "index": 0 + }, + { + "public": + "xpub6CActWv4L424X4U7YqcgYA4k1geLRxTkibwYokBrbZdws5Cmcrd5Rrwx56CoSvi1dNuP3VkhsVom6RGiwcUEpkZNLmSgiPh2wsq8ddVYcQ6", + "private": + "xprv3S4ZZb8X3Yqhv6Yfo8E1HyQZcjSNGJACh24HBDT2KeW7jQ4hxAW9yKcQJ9GUeiVeysoe4MDk5Bvczgit2yvEWCKjEHuhc6SodnB5xDhp3nrirbbZV2EhZcuZAkPTSe465RUxLpsw1pUe8RAk8kbUR5M", + "finger_print": "46056439", + "chaincode": + "33a9451ea1c73b55263e4ab65f08ce69cc810ee28a2eea706a4afcb11e41aca1", + "index": 1 + }, + { + "public": + "xpub6FEGo9NtSEj6EKxiGLSthgvjMour9KRK1FNkXFSLghT5hMGfFJ9chbPDkfX3x6ioCkrAdYSFW9xANPmHHFUgZJMxFXhwzkXZKZBYDzqJpV8", + "private": + "xprv3SyLTnDny37zYonaypp1SNuHsbo6EbdWSThFsDFKUnjCh8N1DwcamMCejhTMJtSFt2dJjzDmB3jtA3FSQ8vnweJe9Ds22i14Ehh8CS1kjiZyyPdAxBmCWtgQ4u9jeFqMK1KZrrnD2hCbC5W8KNvhCK3", + "finger_print": "e6be96fd", + "chaincode": + "65f6b28afeb11ebf910b6d3d844b2f28a5ba617a6236e6a18d5c08a18ce21fc2", + "index": 2 + }, + { + "public": + "xpub6H32FnqkpN8MvRMgrTwZJLAAFNepVnmJPFkM8pYSu44gPpnPHCs367g1RZzKe9VsfMupam1gfMNhtTvrBAb8Aq7iboARDmr75XzXdPs59vW", + "private": + "xprv3TWTFWV4e3S1eW6Bb4eedecchLj7A2qUkdAGqaVcpqg88HmjJrTx21M1aSEioWLd6D5ewixExn7Vvmwcym3zAKpDxBx4KLRmGeZmfAoeBHzE4ps4dvPse1kduEQ3qy995kDi8Pybxzkzui75XNG5YJE", + "finger_print": "dc74ad8a", + "chaincode": + "1a1f0b8d41045b0ac450d22a8a3b3d3b5376c77e31ed4e78be078a16463151e6", + "index": 3 + }, + { + "public": + "xpub6HQCFZ71vtvGK4eyAjwMSVLFVpf5b1QmoNsqEcDFCdx6EqgBpMVQ66PsUJpF68v5ACjMxwgJFiR2ooa9AAkJfk6bQ5zMbFxvH3y62hjQ9C7", + "private": + "xprv3Tck3PMWffS4xBfUQ51h8yX2RZocTZf2ivPVYWM1c23TLXEP4kwuinR3weAoNWCow7kf9qYTNPgpCPfgHjiFu2ESZ9m5F4f3iGUqBLwmJQ5HjJTb1CZ43TLJzEqYw48JKJi3SyVVWkdsfP3HetehVRT", + "finger_print": "0e1eb271", + "chaincode": + "6398830cca7349142b2f653a9af8b5144549033dcd9e9bda44c1ba979677db85", + "index": 4 + } + ] + }, + { + "public": + "xpub689ewHx3ZoeFo6z2rfqTyKrG87xaq7ArsW8aVR3i9JhZpZPxNg6fc92HWQ7WghwvGxp1YwfiLi9zfb3v6aJi8215XorkYaWxNDdgiXfx8WM", + "private": + "xprv3QsMg5FAU8rHfm5wnB6ChZraKMp8iAUnaSqc81qJNUEP8RefoVUf8fH3PPxKSMHCWCDFMbDF5kqDDM5TxxYbbiNDPS2QyBUiE45tx4Dt8H7dgekoPnQjq9S3JqJMCwsyh3urS8XfEcunonv92J56aNC", + "finger_print": "238dcc2a", + "chaincode": + "7dc9368c0d659640866bb58ec0ee89521cc8d5e1d3094a5cae76b39b22065274", + "index": 2147483651, + "child": [ + { + "public": + "xpub69xNW7ffJRfhzqc3S9zyLCBcGruPgB5oGPZxupqYV7jAGJY8WhZvSZmgShkUbzHWg9kkQYi44iQZB88JvY8jM38pmT6nVt97N3q2ZtMpqGz", + "private": + "xprv3RQTuBJGdeFuMNm4UpvCkABTtGsJSHMYRk2s4vmGGw6oCTU2vrLGE4xx5GtupYoP9DxXZ13ydkaWBsdXbsChki4PSnHB4xxLEpMbzgQfJ1Tw3eQ2p4rngmSCszkXg5Wir3gkVQXGBmQsRaSXQ2HUDCz", + "finger_print": "19304802", + "chaincode": + "3fa583fa934bc7a76a850fdb3c4a65a872c0abddeea694bf9e5ea02ccc7b8dc8", + "index": 0 + }, + { + "public": + "xpub6BxkEd5w1sbCWgAa26GpKDVeyJJC3bCVxcfKHXHxqgqv6aEfgVFHB63hGfgPs33u2QdGhUNPNv9ZFrJtuaFe5k3oKHimXGcCJD7zRtNkqf4", + "private": + "xprv3S12zNKoVMv8dDQrCoiLGmLeF9HsjwDTdun1YbXSQipMiJRYjJjzbQCaWVgN2pSY8t4Pcb3SUCmr9Jf327cftUq8Eg9QQ6H2qYzMHTyUgs7dRCdj7fm4H5XLHg2aAiBTvPPY2KwHEKGQ55JKNVLb4mR", + "finger_print": "2a2b708e", + "chaincode": + "24aa725a2e713743fcc676477166a08713fbba016afe4e176b6abacf85ae6a69", + "index": 1 + }, + { + "public": + "xpub6ExQ36CQ1s5szAFzPBU6ZgCv5K71w9ehrnNBGT66qTqDXuoTLCsMHC3FUe3y5bzFz1EsaqsrZ6G2koh8dj3UkA9V1ixij4xXjeSSc3PBJjK", + "private": + "xprv3StcwTn5KXpq2fvGWMzzezdrxbzTJqE1djGBn6KyjjYokaBamK6JidVMygbqY2VtxFArBGJpEBjwEBsHPRYyk3v6qnQUBXGTgeMr4UfUZzXFREUdzjMTcwzorEZvMNNN2rV268Mo5KL1jn5v6Ds9Bty", + "finger_print": "c1818876", + "chaincode": + "789ed5f6c23b3aab219e00bccdc8a0207b8b0551888ae6d1f1ff0d3eae8e7d2e", + "index": 2 + }, + { + "public": + "xpub6GJ7sZSTR29JNZSWwxY41P7JbDeEDp2Pk3WQeM4L8dmxjvko35FUqRcz9iTDCmu2vaNd6iGXR5ddnTuzC2TT1DLGninCniQLBErfdTLvM8C", + "private": + "xprv3THi3fR4ybDN9SwRjiPHarNr3isC3VGDq7L22UjUkAiVmRPq4MQ791p7N9hVuEq3AqPKm8ZRCD79Pvfnxad2Tu5dUC2RxXCHYMBvjeufava3ctrCtrdcbLNVbagMsoJVseoGiQYADYEfmGMY2NFvtjs", + "finger_print": "77d1468b", + "chaincode": + "d9d7eabed57368649a6a49939f10568e99ba55fe0e3847ddfaa412cd58a30bbd", + "index": 3 + }, + { + "public": + "xpub6Hqmu3mLAsYnW8MxNa7np5e6NsnhrbXD5fiCzTL9RS6eLa9VgzqrC5nzWVnEzDXjaA8VdYMHCjLuxa9Szsu2kZUEQC73NAqSMDjcMBj3LBx", + "private": + "xprv3TkLn25gVYuyGu2wqLtyR6Hz9QHC9m7ioQVKyDzF7CkwFv4h29vFN6tExJS7gjL35PasSvZq6U3mLgat2YB8so4TDEDEvxQrSDCQLFkxzKxz9kMCvtLpKEz3jpRzHt4FXkAXu1AzC6tQpP5vmFAhMsY", + "finger_print": "4a1f961d", + "chaincode": + "6ee29c678371761db465c7a310846f0b4b405c811407671917682025e20def07", + "index": 4 + } + ] + }, + { + "public": + "xpub689ewHx3ZoeFq1gRqsAmowJJAZMEL2ym72t4d5Qm5m6EAYEE6HVzoxCXWkM2TBPmye6x4kBU2z2aLS63obSMRxNf8Z1dRv4CBAvjfE7APUC", + "private": + "xprv3QsMg5FAU8rHgKyCdewJ8i7x8BdCTZwXGkzetreBn3sbJhc1Jzs9mkGsqZNBFMFAGGotLjE3QM59RLf5DDC9QDxCqR82XgokiUkMsM4oEHHm1n8CJExjRMAjRwLyyfMqJgtkB7fanfQmbUKuXhocuMb", + "finger_print": "238dcc2a", + "chaincode": + "3d7c2125f01909c5bb4d859f62526495539fa3bbe9084a119c001ed3446a749f", + "index": 2147483652, + "child": [ + { + "public": + "xpub6BMeyrHNjAhhQ13m1VoirVbXSHfPLZtF9Mxc5WXUex3WoW7GeMHUzw1hGmbrdRzYYDV5gmCSVx5gwY6VQjsiinkZwJpxmyD1mxLmZv3RPQX", + "private": + "xprv3RpcPkFD7yGsQH2QUYdmrdajPhb6gZ8KYjuVMjQYR7jEXZKnTqiqsV7MapSfSjuLua4gdBYmkGpoBQyRVjqFEshXw9cJXE1PRGrDyb66V2jb9TLMdCJrrGNdVp6C5LEhUUafqb2kkd4wGmkLbYy9bpK", + "finger_print": "d7db7da3", + "chaincode": + "e5bf515496630eb8e1a9674e1a6bfbf92cf2ae9a474b54b3a085ef29a7762a10", + "index": 0 + }, + { + "public": + "xpub6BmmEkhjogpBcJmW2sUCkwfC7x8W3U8ed6T9rw5oDo7dewL4LcgT5DcguL4Tz79MbPbXDRvMq3GxYtFCRjjUEGpZXKBeFQkMtHBaNHb27sX", + "private": + "xprv3Rwmm9pxTjSqtGBGPm92N1iF882ThE5x6464X41StSeLw3WfyTrogMDX66RMkXWwYsBD65yi6n3hngTWnNj37FvNMstnN24cxJff5XbCfb5HUTV8s7eMwhfKsShjVV73aUXrkuvQ7ov6vTxFtefNbgC", + "finger_print": "10684d76", + "chaincode": + "8661ac36020aceec235e27e5b0eacfc54806532e4264bb6e84f9c58b9fd36d79", + "index": 1 + }, + { + "public": + "xpub6DpWvA6Zx2fP8n6dS4wHGqohzbHxKhww6kexiYanrhMWz3qJTZeQeeg2KVH7Lppx9T6qhhoUPe9vR1a7F8PykQKasW683QQpXN6UAtw5mUc", + "private": + "xprv3SZ3q75syhq17aLW9nsgqdyF8PydGgtMDVeGgWtEvBS44L1NQvNkFW6zaZh9k9W2GLBkGVX3cxqr5iBUq6MK746uRNbcr5UBbcMik5yVYULUDgrNpJew9vZZHNH2uNsEvK6M2KRNV85b1Kcw5umm2ho", + "finger_print": "26f7af90", + "chaincode": + "3e4c627710a7b29c511d58379022310f95febc95714ad4bfc121c57465b3809f", + "index": 2 + }, + { + "public": + "xpub6G8ZgrdTjVo11CwAuJjaMdduQPCerEHbUu5xec1LP4s1PG4qcuBfMmxSQoTFvX71ueAUaqazwknh6ZtsexST1cD5znVLGJ5CmwkFS8guVyE", + "private": + "xprv3TEsRHXRvPwixmPZFAr9j9rNQLSPQZafByWKzgs9zJvmZERxxzwRVD3iZ7HvfFKdodM3HY1yUS6V37Tf8Fi8YtToVwHjVcGbZqUFGQ2wBW8KMMqypkopg61zZBv4bif7vG1L6Dk8x5TwfYkGY8eUvVU", + "finger_print": "61678ad9", + "chaincode": + "4a7b2a868c2ebee8cba613c710e3dcfab5c038490fd90724a956e969fcb20cb0", + "index": 3 + }, + { + "public": + "xpub6HtEs1C5QWVx1zv52XCscRt4unTv93niubUfAXcUMQxjYGJmU3yQJU83cLt5oGa2AdPSY9y7FpvngFJuoKofsM8t3ynqJ6PnCvVFZkCKm2z", + "private": + "xprv3Tm5FF9i8mpWJNm5YVRBQhoa1pqNbV2D1A9ack6FNqthV9WRDWD4i1X4PfJpNm7wZpNgvtHVpsrorAfQUUxCh8hLsxZD26GcDVqxofyY3eb1SvzEtkeqvvwcQrFMy7AsDy2rEBVPmpvDTyJUaB5yTZX", + "finger_print": "4fe7c487", + "chaincode": + "4251152066e71e37b330e86d7f1e72d5db47257234430b1fabe13c408e1baa6d", + "index": 4 + } + ] + } + ] + }, + { + "seed": "a754f05d00c49fe005a483a49c6f252ffb0baa877dfe27af36cf4f74acf2dbf2", + "public": + "xpub661MyMwAqRbcGkezMSDahPHJB8kU2jMTD9wVc67exgoAL9GCjPonrnnxQTW6tECjhUuQK3NLZHb66NMVP1KJkrcEUSA7LuT2x3GYESEueLD", + "private": + "xprv3QESAWYc9vDdZvWSQq8HR53pZ6NtoSe4TBGTFogyCs9bh6rUQa9bK8dnFrsCpf5CzFz4HUFUFjQHhU1NjQT5odPsffTKivV5qiioPUX5saBHUbWkP79TZdKuBTdWtPohxJEnmiFd21btqG8xypfoi5Z", + "finger_print": "00000000", + "chaincode": + "de0c4b2a20531455cfb8995b934de63832b2f3817bd0dedbd49d7a04db9dd3e0", + "index": 0, + "child": [ + { + "public": + "xpub69YXnebuS79yGZ7w9PDpqmuuYaBcprGHPddQxUWFNVWxBRqoJa1HHGWCnyn6c299p5AAvdLpkSbdMmjVafZzeiU5omVxeko6QtGASiqX9Wo", + "private": + "xprv3RHP9Z7mCMvVyMEJL3z1Lwe38TeMVudTQ2UuR4UndjoZKtH2eUAGqMB6Yr8tgadTSQ2TfX89kRfrFELbpkG1Ss8J2pXQMxQ4ynu7ciq12fKEUqZD8FaGiq7itFzyXdGVhELudLEpSqQczPLuxtGrJiX", + "finger_print": "e1446220", + "chaincode": + "19b8555b152c1c13a77837c563d091385830e353de65dc0c44577a68e04fcff0", + "index": 2147483648, + "child": [ + { + "public": + "xpub6AQhH6jwk9vY3H9pw17YupJWNtMjyFEwxB65UekYHvWSci4asrHcSBZLZ18TSyjAv354dP2Gx7WKBFR65MYbx39Vzj3eJU2T1HTBPH6gBpR", + "private": + "xprv3RYHSuh9EwEGGJn7Mge3rDt5s2TSMd8kmu86eSUqdusYiX92AfRsanqtdf7suGJQq1TGt6e5x49vzYxaLDrUuJV3iL3MkBPt1mBdUdFRpyBbjwSfDLejEfkgKax3HvWhs6hFLJnhPVkYqdFyJzf9AKy", + "finger_print": "56efb4f4", + "chaincode": + "ed366a984ee79ba1a0f6789be4770bcadfef6289acfea8ac085a17308cb2eab0", + "index": 0 + }, + { + "public": + "xpub6CEeMkwLE7SN3UySkegsgMR72Yy9beRAvTEMEgEDPnRpDvqbT158orbEKhC5Ni8xod9sfNifAmd6GMpVJQJrhNR5KWvmR91YQcDSEfkmpv5", + "private": + "xprv3S5kvBJ26AKFnyaUdKauSSAHYWqmn9VAR4Tr6ZnheWtCFpsEvc1FrGh9h6Avwov6vMn3Jy3AW5h27gPM21spHzc3Xd659tsF2bFdxCnTxDE4LaiGHcwJ5wtbpxXMgkCNuBGp1FvsekVWX2dgVQZdkp9", + "finger_print": "4f769ce9", + "chaincode": + "fe8dbba564f0bd05650de6e8322bb71d75d0cb96d38eaf45937f3ec0ae24314f", + "index": 1 + }, + { + "public": + "xpub6Dk1fkf5kvDTtXHYqCnEnh3ryEsgXcT38917xPspwSKLaZAmZaMFiUb4yQfVeahUzPtXJb8X66BEzKvE3P3UYAEGPu5HsjJxh3psnydEdrv", + "private": + "xprv3SXiDuErqhbR4TbCEcrgJGMFAuFUg4PWuA76BNytT3VHJPJBm1ifqidDG99MqGj1bHo6WR3aHXe3pAYfgxsx3k2dt2sQydYKrWSRrqXgPJbeXWY46dRDvyXRnEhcTH3TkBkaCfKTMNSN4b3rD5j5Sat", + "finger_print": "1c66dbdb", + "chaincode": + "3fb638297dd71943b5bda213d1b2c6cc44e4b6e6308d2ed6cc91cb7eb42bc7c9", + "index": 2 + }, + { + "public": + "xpub6GXYhnLj5JUe4hqEbj88gG5jf18VHomoLKpWnECvpJxKGL1mwBD56S4aYa3cruTcT9vi7viVGnRMLZFS2cLN4akHgKSJ3RfAirfUdJAqZbK", + "private": + "xprv3TMhQcguKrUTTVYScz1j9TznnWkxKeAHpH9WLUxNLYLLxkk9ZAjBABtCRJW9YPxoZFEJi89a715gK5xXRK9BXGa4VGuUqxqTEp7Xv1gZkXqY954W4Bi5st5TCtJxYJzN38NyfZhD1A3JvPQER6cs7jE", + "finger_print": "9750e22c", + "chaincode": + "5906b293843d65c4848c98acf62f738d7a6aaef4c743e8e1c47980a6b8ef9570", + "index": 3 + }, + { + "public": + "xpub6HvrFZ47mqHL5y9vU8zVmXtDZpzocuqtufqPywj8utt3fFnBdydujzUkhXzh5BzzMrZabC9Q5x5LTVessgbb1XKf71bKSQA2i3tNgSar6yy", + "private": + "xprv3TmrDcVdEvduVJo6T9juLW2JCiCm2zZG8okkj2Fb1ToMWGzfnyXFnVmvZ1m8SpRGZVaVGdPh1jco7ajoRDoh1wUb139djFsU9RrCPw1SiB8HZ1ygY9qjv4Zm8WTxSkdLucmgZTYjVqpDWEmA35bXRXL", + "finger_print": "56072abc", + "chaincode": + "3100daaca9146091302cf9e5fa893d3eca65d4c88d96c472c8f0a8925bd8a475", + "index": 4 + } + ] + }, + { + "public": + "xpub69YXnebuS79yLRZQsBgMxcUJmC6mjAHDwDLKw98FdXbpPAn1wzrasxb3QuF6b67Sipz2AQfCzPHLvKmtiS1iVMaEmPEM9XnzxzXrBzUitmT", + "private": + "xprv3RHP9Z7mCMvVzVuJFcCYqCChfP1tKVjwtyaCsq2EPPW2TCUTd2591iEbUykfggHMy3TQ4M3dPkNZTY4ejK8f9ZfBUcED9bw82Wm7qo9WmspZnUD7TeKnZkrEreRN4sjRns6dBMABUF9SoCAWdW2TvUY", + "finger_print": "e1446220", + "chaincode": + "9e64ad6dc64025f1cc1dd50bbb99f25c9548ad1a964d4c9373a1d8bc78515814", + "index": 2147483649, + "child": [ + { + "public": + "xpub6Av8gSsEFC4AeQtnk56TFarFdAjeU3hzWfcZHe7AWVgFYymRh9N9XWZM35LGBk2Y9yG7pLPXc5kUJUJU98BbBoYKZHiwgSJCtWme26owD1k", + "private": + "xprv3Rh2emcqtoSfe4taAd5Cj1YJCvAQ6cDeXhBU2NrToaek5X99DRt2B7pv3MqxW3bFfU5GxgHk8pYLXoW9gJk6K6nVEYZSvTdgY8VFLvacWK9JK9koUoLt3FQXTBi6y3TByQ2M45kzV3no5f3c1CzTDwd", + "finger_print": "9bfd3f86", + "chaincode": + "4669d359ff828bdb913f9f913d8acf3dcbd2eb27435685e4b5fc0298f94ef76d", + "index": 0 + }, + { + "public": + "xpub6CBaeGUrrN7T4fySXeAnYjaURN8po4TQqmsxnKoJn5WAeHSY7UD5BjXgtQtyRTLy3LFiCUCoXcsGGT9CGHeK3LUEh1hkkVfv1M4GzLFk7mZ", + "private": + "xprv3S4r8DN94v97SZ8dDH5kW1aVgW5NMXbgxKvLEugVMqjeDippxu3nrj9WFgbVGGEvvSRoDWuaUdDXbRLqAYGusJU54ZdNqhKQqvvaHvSWRK5pc4RuveBG1NK8puZjuicT56CcQPrg9wY6Czwy3zRFrRG", + "finger_print": "4846a46d", + "chaincode": + "0bf68b466c74b49d5e8a55bc101efda0903d77468f93e523193214ddfd4608f3", + "index": 1 + }, + { + "public": + "xpub6Dx9D6mz4hbhXMYcGisKXRWrx2Z8QvQzsGi51wktB4fWP4QTJWE8Q3YL1ePeiReyYVz7y7dSkdgRkJUBG3JfUoqpgTLGSsXxty7bCGYh67V", + "private": + "xprv3SbKDczsXAWo1nd6CVBMgryD38c5KnhyihHaWTF1sSWB8BsMe1WvbZFpGmNFHtjMpegAxpTppT5tpkLnJaw63HUoqnHaJQ5siSuBGdKANnV6zh2xiccxYa4FStQeCdhwxzukFyQ7yYJcBi2NmfbRiPG", + "finger_print": "38daf1ad", + "chaincode": + "9461dc0d99147415b3fab8e71910be473680bd087de5e7666e571bb3a87526d7", + "index": 2 + }, + { + "public": + "xpub6FkWLVLTfYsaE91Nbur7ZbGKEgEU8rfYm9ABP3H8QqRjJTxmTpuhLauUrvSihT5BpP2CFLaS72G2Fag1JSrRMUNVNXxLMek8h7mUzPzkme9", + "private": + "xprv3T8KNaWC6DzCbxYVQ6sJUdL8PWmerynjTrNXFA3ckcauMJ64YfiEkxeZpt8qXw2FHS8D5nTyXeKYE5AdkkTXFQBsXFN2eu9MCbHqGkhptP9u3cao5YxynYDtpJo7HKf6pJyNdMNriFByb3GmCWrF6gu", + "finger_print": "2da9d17a", + "chaincode": + "f26b6136096bf513fd4eca5c5f42b6af4e423b99f64c547ed781de5e764f3c7a", + "index": 3 + }, + { + "public": + "xpub6K3qqtB6tHxgiF7DFGoFsvn9hYeB1fRh3QkGC6eqwrqpF5ZjvPPAb8ZhZ4JHi82DwguPsgCgbuiesM6nRW341WKZKcWXaqvuzX9kjbyqrJJ", + "private": + "xprv3U7A2Akiypi81PaPTTh9s5LxgssHtAfvPPSTM9n3HpxD9civSdrTuNzS8fa1kYAp22BHAHpumuF8DWNrrSmVCLB6w1eiEQgA1iWjLs7NCw2TYTBw2n6KBTS1S5HhCVDErn4zVYC5iTWVSgwLbcbmDkJ", + "finger_print": "ee7b8639", + "chaincode": + "6046ac9c0c7ce4759d2d12b363daecae0193427f596954616d88dc874a95f5fd", + "index": 4 + } + ] + }, + { + "public": + "xpub69YXnebuS79yPLezFEPGKomVqGDoJj3ZvonCkw3pcv2197HAjRVHdjfcr5pp3HXhknwxw6Jt8P9kwMQyghUS3VJFiHV2yyyGFxBnvWnyo4A", + "private": + "xprv3RHP9Z7mCMvW1N8kqxF9ivzyEsFZ1NembxQbZSJeUsG2jPUw2VYjviBheMxvg214ETi6FsPHv3xZHX5QCJjgjYRSQ8Q5HYtTcDcDzevjQE1XR9vo4yF6adXCDu5vh9bB5fmogabnEh5E5GB5rdDprsD", + "finger_print": "e1446220", + "chaincode": + "c339d2e0e656ef249d8e0628344cba893e9252d03e8da2850262fa5cc58946c0", + "index": 2147483650, + "child": [ + { + "public": + "xpub6AdkwHjg3qnVMUCR5PyTAGt4HAQw8Q7oV943zh5ZuroW75MCKsTi5FhjnrcyMmQK2q3ZpLnraP9XzJFcVWJsEmkX7heqWL4v6VWaFmXRqQu", + "private": + "xprv3RcAX4TBtbPsidF1yYL7CT5LFs6gVPXAXTZi34miUd1SCmqbTrn5YUfMdWxwbhE3aSgNT22V29TQWN7cjcPFuNYdCQp2WrUz2YiAUGqe8VzufyfS73C4r2onLsLYVmxgr298qg4jqSdS6SEsY3EDFPz", + "finger_print": "759419d8", + "chaincode": + "0126e550bd78637a6240a8b61e147586f928c75b8ca0419bbbac9e1d1c2740e9", + "index": 0 + }, + { + "public": + "xpub6CCqABVsyjmnXvjjb9rw5ogFpAscqoMMvHGwitd7MxCnb5DJLcpT73SwYApviow9BJnfBaoe6Q65jbhZTxiCWy2bzHWh6jXkMtfgB4wq4xg", + "private": + "xprv3S5DfdaUuVBCt4etVT7ykaUXWsvKcH6HrffNQA6qbPCVVNkSWaJNwmFxpEbQxBmwbcQXhFWgnsq6s2pGPVjcZxXNhwuPxdGfRFLq1Rjvzau6dGLuoMwZmiMinz2CaFgEsFAXREW51hK29odc7Pkhf6z", + "finger_print": "4b356e9b", + "chaincode": + "e2c27fc76600cda878ba8ca60a6b951a0042999650698082a5b5681acafebe8d", + "index": 1 + }, + { + "public": + "xpub6DoxXNmHBCEdWfXtcSn9LdHYZxxNUnzZhmkTsuRANQx48SmA4BUQhhkvtcYR1gTBApZn1Q4C5ekFxvE1UWa3dNmaBfZpwDZxtShNheehBgQ", + "private": + "xprv3SYtCzRzLrV6msHb9YxaXijmi7iQdrPRSApuN2PhKBSqnRFoyWANeisiCMpmV8mBCVWxP3Q8pjCNtKnJy91p4MibJGEowMs5aJ5Y95EdtofdpNQbLsdj23bxHH5zs48ssqpexD4rGghr2QKY7kaF2v1", + "finger_print": "25a84edc", + "chaincode": + "33de248962c0896ed75fda04ea3ca9f39f1e2de5125b5663b432d4799d0d2a20", + "index": 2 + }, + { + "public": + "xpub6GwuyhnJf5cRhTgnjJYKAJ3yxkNEG5aijHnmgfMsK4HvSh9hcKpWYhP6Q7iCN2xkJyJgamod14ea9TYkBRAppaS72HC1z7Cpvx1bD7wWWaZ", + "private": + "xprv3TUwEmZ7k5VvrEZvofNqWL1bwiqc1Y8jk7qeougipxzucGmnvF88R6LspSCsR5umfhWgP4yNvBz3k5EqK7oYrtRgvmzq8YmkWN51vFE1F94RJP4KD1jRrAYBfPnyLKpBZtqHnJ21cMive8o5fR1TmRc", + "finger_print": "d0792dd3", + "chaincode": + "5e2250245bcb5987b48f03b32d6dad0fed78fcd101a1dfe294c04a358ba5e270", + "index": 3 + }, + { + "public": + "xpub6HV7rE3m2JufRib6ZBEDsNf1bsLcdRbHg5FtgcrQQ9mwa88496UzWhnt6Q7Byz8y8SS8rZGnXtcqELP5tUGtAPx4Q9njKV3FJTDN8f7b5cY", + "private": + "xprv3TeCt7zty2GEDFjCzqjynFqJG5BESmQDbeHsx1tdYKQUdefpQ5cGZTvpqUP6U5vVntnvA4CziCjz7jTBwb1eZJN2PzaqrQVk6X97znp3uKwoRTY6TvxMy9AhGGpnb2k5PtDtCX5bhLcXZchPxcE4She", + "finger_print": "19aba00c", + "chaincode": + "1ffbd623f7e504f8453efac16ac1379ce673fb905c6637d8e0a3d20f3fe11355", + "index": 4 + } + ] + }, + { + "public": + "xpub69YXnebuS79yR5Ed3DdWLtsewSSZKhHZ6JtdrASEYY55FZN1Ym2UaLLwDvcUPjCxzumVjR1AapDAks2DchWaMauwt2La3aZCFo3Fcy3q3H1", + "private": + "xprv3RHP9Z7mCMvW1t1i2PrKuZQhzPFfjgpLuTeGZ5aDSwTejLvpQ86UHPH48UUawMnDnbVg1vn36yUotDbqTRxke4EKCAqDqGhJPiGK9uKLovanRnG8thbwExyhEmN6Us3J4LbkG15sFp7CGC7av24DJew", + "finger_print": "e1446220", + "chaincode": + "7167c4cdc401c655aaf1f97b96ef0bb09521c4af50734fe6784752ae279fec74", + "index": 2147483651, + "child": [ + { + "public": + "xpub6AnZz66eBoRCDVQYH3DoYBCzVkLxJJFpRE9MQm5ZNrDecW696BdjtzN6ho7kq42Z1U7axnswT5c8FSQtKHxtALHEK9qL4fCxh1ygSAVJ49c", + "private": + "xprv3RenLDY17HDeBSRpqnPrsJT93LeostYqpXVv2RBCZ5M3VWbBzkAhs5ySJsS8BjPvMCuVSTy5KRa8u7hAKTcxyHkyVqTn6kVAg9zSTVZgTfP7i2u6LvC67rUB7YqMSSvrPtcsb7WZ5nyCsZJX5gpt85i", + "finger_print": "8a3f3954", + "chaincode": + "61cc29fd0b5a9118e59cb1cbfb585147c76aeda022f865be4a02a910adc54852", + "index": 0 + }, + { + "public": + "xpub6CH1aiA9v7MbCCXMqwbQiAHkpaHuJGcAbLvhPzh6dm5CKCc565rd4duyErvwvTiTJ71w3cTeYcCfHDefNzZKYeA9QDYhT8yKPi5dijX3DLJ", + "private": + "xprv3S6TgUr2t3ZUUuMkmmsbinSLs6ExUAqZNnUzd5uTe3H8hmwPSTT3ArkMv3TYdbm5H2Uee8V2UmDoN52w4fjaYPKLNaeGVaKc4XAoFTw8MEZmi15H2p7RY8boHxg6AN2GeMPG79KS2wECWbk14xhPCpX", + "finger_print": "550359b4", + "chaincode": + "b3b25db171d50f1dcd8977606a2d04a6b14149f42423ef9f45a302e0deeebf94", + "index": 1 + }, + { + "public": + "xpub6EXjU6XfJfuFohM8Ho34LZsKaudPVrBSLPxBiGuw8Eazsn7kU5YaAynnNXwH5JBLjVTWkqxCk6MzeDMw7zATw6hs9b1QH92FiW2CG2ZHWCE", + "private": + "xprv3SmHyLNMCbCs8v85iATESt3FpBzLxpa24uujp2zwVjVmpkua45d6C2kdWPEJHaNKoYipoAyDZGcQYPGba4BEuJMhXU3c1QtCcuUyEehoryrFUKG3W8h4GjnUo8n12XCmb9uZfEPqXHs68xtx4oHJMJf", + "finger_print": "87a62e4f", + "chaincode": + "993f4f29b39c2faf242202db27fdd2dc21ff0338d20f852f007cc6fbb2c4aa70", + "index": 2 + }, + { + "public": + "xpub6H8FeUHZFuv5reBC3c11NQJqSsJxckguPHhmSXppiDGKvH119XAp6iaQC5t8RMHRuxmo4iASN4z2ihhdkUVsQTysunqcK94LXsVpRVWyGu3", + "private": + "xprv3TY1NpDx5VwA9R5HCtnyAWMx7WakqPenNWQvJzRyktgMEG4YitXa6RBGC255L4yozvN4zRjY7Qiua8hwtK5cAqthN7YDmftFNXyNwDtJCukPNNCkJezobBK7GdxSEZV32ZAoY1Ggv5ji9bhdGxEFoYj", + "finger_print": "e8b9d3f4", + "chaincode": + "f9aa26a595ba69e967497a04a9328653969bf5bacd7c1860e1a951b1f86695b7", + "index": 3 + }, + { + "public": + "xpub6JEhk4fhtxS7ewttqUmj1XXH5MzvwYMyzQQwA1DHa85oaJPdLVWjMVPZrJF68wRJr4vk9nmmf4gHJSGYsDgtjKJnTU8aL92gRNtmfJ5fM1d", + "private": + "xprv3Ts9piYKi1d8TeJqSaam4oZr3f3V4qgwVhzTsoK7GuMYhWsfszsGa5iuuynbUz3VS8sKtYpQK2PZ67FuMugZndAfB6JpQxi1VdY3R73zHE56Pew3Hyqwj2rohmEKVrHcJMxjw88DrjQeunEKsX8LAqj", + "finger_print": "7fe81915", + "chaincode": + "bfd701ec75a0164ad11830ae35de08802094fb9c97b0e08346ccf3e297b9770f", + "index": 4 + } + ] + }, + { + "public": + "xpub69YXnebuS79ySZ3Mm1htLVh2KDqBTsny5kF5FAvfaaVYE2ojBXfbukNRkdrssUmsHmFF1VQpHsFmifMB9rxTV4H2eYNuSTYW6QzootNDxNL", + "private": + "xprv3RHP9Z7mCMvW2KW7CXVd9roEyPurQfVEPgY9pU9Dc61eG2AYv99nwV9hbunfYuBTgiXkTDjiY4sH6m5bstns1LH2mDzoM9rUBWHthPVKQKguvxgtA5GiVLgz4RDVFzdGxjMZp7rnTUi6CP2kfEHU5Qe", + "finger_print": "e1446220", + "chaincode": + "05ffeedf1e40664476794eb3e67f21672f808b7960602f7b01e42b1f3fd0f1db", + "index": 2147483652, + "child": [ + { + "public": + "xpub6AzgXyphfr2EaSZi1BQ6TjXNNRDDZN2dMmj6GkUEfsijw8ymW9EGUgL8tSrADW7VpoV1o6VLUxZGYRhR4h2EoZ6hL8CdudbcGkd9BJnpMdD", + "private": + "xprv3RiP2sNCseQzp897jiyyxgELNuwcBQuuMu8E1PzkKWZQHEm4tDCMMXm3HN5uKAT7H3yQZzMPXsGX9UkKyTdKrFNFmGajYwtjoSQ3ai2DH5s1ya9r2nEuo1Ufd8s1aua2f9cB5pL7NahECRYYQaLVrkD", + "finger_print": "a6a90d90", + "chaincode": + "33fc6104860e120e716843d2e49aa7e6a6764b1f7b769b9ce84472e79271da00", + "index": 0 + }, + { + "public": + "xpub6CiLn3jbQ3r5LgDQ55pXRoaqVZDubpWytPvNAzdJhZDDeQy3U6gjUPgirJdGX2jZCoE5RxtsAXRz5YXomfFLGyFEMFdNcPWNcrYBFPLekAY", + "private": + "xprv3SDz88UGGpV2y8BcgHKfyEmZnjvqq2ovF6bhSLRpLejFes4MHSA1oQpxsvQ27rKPm69p91MuxbwrF9PeXSZh9dadJMSqhZ4RXk7gpwCD81YxDD9BXQBGiuUxaBzdP6M4fbJQjQzmwsyxpC4JuhAp2Kt", + "finger_print": "906e9f3b", + "chaincode": + "a1678c3effd33e068c4769b8c3c212bb1b16cfffb56236a3538d614d3cce341d", + "index": 1 + }, + { + "public": + "xpub6EEKgtQg2rmub1pdzsRZHxdtdfHpTgtPJSfYhnghB5dgTS5ASh8kzoRwYoqPcRujpNtx1fMKmkFZVps3HnHw9t6MFr6GmJGztEB13zBXJps", + "private": + "xprv3Sg81ErJWCYSyTQxMSUeBkPyo2op6B9pyQzjzNhFs4GpVUAVRb3YpABxQPK1RpnnDnXhArH7mQuPs383S7sFYirTQTBSqG1U1WoSqmUTCfSyUkzLEvQRwSCVdsUJC3mvEQGqVwp8ZB7TdaTnyF7BQsJ", + "finger_print": "5ecf7593", + "chaincode": + "5e04f3354be58322701807fa653b1f70b5231564499a4588a0e29ccbc7308b19", + "index": 2 + }, + { + "public": + "xpub6GLGpHwsxhaVnVjKqfVStCoWyciibRGwKzLSPYiS6RTGyDtsNu4ZbBbcGVkZKpzEwNKFfK5G1bn1vkSahEWo3QPGCfBy1P2q6ZopTpH8Evj", + "private": + "xprv3TJMAPiWnt42KVgAgRtdcPf6tFVdk7y8yS618VSeDV6WGoFLU8viUgu4e9tyX6TMsSMtmhqstVkvEshSJda7Ggvj7eaVRriqccdbYfC7jp7Wd2evZ2qyBXnE8H8JzfhNNNShccEcuWd3uT85RUThkdf", + "finger_print": "7cdee04a", + "chaincode": + "06169bef25ad39c95e68324689057c5b6d0be34a5cd92bdbbb6235a4a3942d32", + "index": 3 + }, + { + "public": + "xpub6HSGbqGiFkBdtGACQJDTTzpHcYNuoxLBUmcrjAdVY5VAVg4k7i3n3MM7qCgH2j1L4vVUdGKk8e5PbHab5zp3z2pkKiFrVPoXWJ6wECqEbiG", + "private": + "xprv3TdMnxkskp8XFAzQPNdhzduhQSJ2cNi2o2g99eeSTUbivCJresYDsjtovR6vhAYD6PLvtPaomvvLYXPvx1gBjnFEHXV4B1U36BLzuk5qSphLQiiYoSTa1QLL1nXdYJkTeQehtGuqDotx4g1Gd5e4ZEa", + "finger_print": "12fcbbbf", + "chaincode": + "24111d62a647b04946f1d6fab316f5ba3121659159440d61cf0e4997d92c9f6a", + "index": 4 + } + ] + } + ] + }, + { + "seed": "086ff0be7cead584210071627b33590201334cbbb0deb8603288399b75009718", + "public": + "xpub661MyMwAqRbcGm5yTh9e9s5TYvHAYKiqnJUCgtXYgSmDgz6JwhmNfXiCm8befg2tsF9cHTdQ7KsagjFdf2GfFgj5sfwvHs9atdCGKxkQjB2", + "private": + "xprv3QESAWYc9vDdZvdrtNtViuAggd4FmB4zSRZoipiVQtauYN4AEXkpbYmXJ1TZswimSfBHiLtwLearTVCziUuygHqHqL4sbKQq1UTaqYwxuJN1QKA9QRNkqZmAx2f7YhAg3xS7xYo5WVjtviYMudALegF", + "finger_print": "00000000", + "chaincode": + "decb441514ffa9d258c2a04d7dd6bc4f74223f56cc8cb9fd0d51ee4d20ef4731", + "index": 0, + "child": [ + { + "public": + "xpub68kfwPSJepJPj2GTXVHEu7ejqYbuMZ6NJNrnBT1jhDk79ZSBCaFc5xQk5c6xxakLp2RFn3BFTyK4QqBd7zRGo6XFUcC2sh5uaeVMSA7KrMs", + "private": + "xprv3R3m1RAT4tYzLe1C2ygWGXG5f2HVoaiqBtEtqrvCPZiXDMr21woP7SPK8oXthY2BB6ZYeyv673dr35sVSzW8vS4D8dpdFfKnuyAFkCmTqwsirdi5irZRyxr8Z7JEZHPj8RUzj9Y2SNRDjFf7qcjt2iX", + "finger_print": "75b1b661", + "chaincode": + "2f22f203fedd2484bf17813a9c96a32ebd574979157adc7518fc9c25a90c3738", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BTj2dLg5BaxNfFemcu3gFJT5JE3ErcekYu9wXgKNHiiik3ZXzZF2iT8ZNPSWHi7QC7vKULrP5dbpABcuxibiQfR1H4XKjEUka51GMwP5EE", + "private": + "xprv3RrQyPacg79PGGJcUkV49Adhm7xz8qgnVuucZKjgd9bKCuLddggA4gDurgri8AK8S2VTmiqGixtBKuVVrupzsaaTLahLywScb2DPfgmcjHA6YdMEwXjz2iDNPkLd4mAD2k32ggjheFQvopMhyKxvBZ4", + "finger_print": "e6186871", + "chaincode": + "f4332c5c2987a98123ae019c8b70a87469cbe430232f511abf54844d18ef6b05", + "index": 0 + }, + { + "public": + "xpub6BpinFQ5Nbx4gHyKEMTmBD2LEbGhZV4XAGUUYVmLjLecVKFq4yrtLQVe83JVdf6PAhzr8Bx8D7HCbF7B2ZwVgGZR6t76KUVbdbK57nWo8bA", + "private": + "xprv3RxeimdZhCKMhSDnxSuaiC3s2VNJjkvUGHzXWsSaypFQji9kPezDN631guMPWM5NyZmHYTnvAkhJgjiUrcWFmeobGj8jDESmYvyCidNVmQuXbB2xmLwrJHa497LUNULwzqxiZZ2UqjFy68Lm7X1C3kX", + "finger_print": "17585e39", + "chaincode": + "a111a578e0f2dcde5773aac316b13c98c8351b0a48207807fb033042e5429300", + "index": 1 + }, + { + "public": + "xpub6Eb7J141Ri2JZdkMWaMRjNcLuSFWfeFj5AZbfYAJ38PYmdjZQvznM96SF2nxXMMa7ttQ5gMCydqB1aEHZTwZtN2nYesbT7mYiUNyHd8qxsL", + "private": + "xprv3SnJ9LXTkCNGUuDqA6h1vS1jdBbvmFPeh54gxV6fqA4fgNi4NJyB9HBuTBpVXG89qLSZ6HP8YV1sBoQfNUL8F5GXjXtC5GbeAdxxQmnRh8Jx6tx7x67ociHzHRgXcf5C1wmnGbysJHojszyc4EMEmu6", + "finger_print": "8f91a8bc", + "chaincode": + "146efc8983987a840b8af811dfce91d155fe1c00e68274fd1876c05a1b6c8d66", + "index": 2 + }, + { + "public": + "xpub6GdnFwwcAAYsD5o5rxZzw1ijmX7WsBZtVcxYsMivJHg8knuWSdbWkQs8sR6fXHqAEdvEJqbynbgwLNkipM9KKDwqw1cZBC5v4zaA2RrJDSH", + "private": + "xprv3TPYp4EGCm6xJP4fKnLeYvqLc6CFfR5GxoQp4hVtr7MZqgf9JHsHPdzfm94CWvf4tCDoND5oKWbTP5nxfXXcH8Fe4cav29CrjdmCJ52ifqEBFbydjSYLs8xKFmWcY9rtrK4AtwopNJXhHz9mKwxaG2W", + "finger_print": "a5f03a61", + "chaincode": + "7206145e3bb8f1f3250021ced3ec02cbc825d8d54dcdd57539ff6a28a239eea1", + "index": 3 + }, + { + "public": + "xpub6HXCehNLXSFoAHt8QWohjhjGWiCvTuSGxz6skWT7uKQLZbPUbRQz6creZ1nRGTFxQ68HUuPtyfC3seJzhwZrBkWRyCi2Z8Se2NB3FpPxFEj", + "private": + "xprv3TepmUgfDT82omwV8gT1bXm21YLU2ZBo9AWT8LiYYtUEvs9W4fkAXo5CNk9BF1ZYi3PsfFFLmn8qWKmhnrJtd2Kxf7sqpCCdwee1YyxDwUfeUyQUquqcZQKtbom6K4g3VMP5HStiFKhN5eL6k3qCKx1", + "finger_print": "1e8e564a", + "chaincode": + "0e01e55205657145e3b343c941e0911ea2a6e4c4cfe4507f5bf87bf6534cbc2b", + "index": 4 + } + ] + }, + { + "public": + "xpub68kfwPSJepJPocgyPGFY21rHamsUi8qrntQvyFoYcta4sbccSczR9Up1cJ8XQ1SeYDgghtahkeyEEQ7r7CLKU1MfAim3igGzewxSGebxqd8", + "private": + "xprv3R3m1RAT4tYzN19YfcQLbL9zgzhz224NWj44dPmJdj5sVfwqMgqWpJYzCBxb2mSytd3cTYZzYsAXnYHtjtFSMDxGM4aC5QCj2qyK4JG7QCuSQ3JscHj8eeDRdcJ7N2jF9iUoKGmh9uHHDP2TbZtvHpp", + "finger_print": "75b1b661", + "chaincode": + "fc83ba49177cbb565579a733d14f4b9bd3520210798cb8b68a5d59936b76b0cf", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BVyDYXmVYkzodr9qxvsEwiqMrN4U7XbBi8vr7Nq3CUkFT8ednPRw1SXh3usRwhaywcMdaCG2YBaNFSBztxf5AEJHxuKcU4UEo6rCTxFMa7", + "private": + "xprv3Rs5eUrRq8XR36692PAjz1cfMxBcasMyfD4bqwV7tEAj23JdfXJa2dbJMYkVRZiUghKratCT4pjkDsjgcn7CKjtAKWWNySKAdQR453TGambDRD8kKNjyEJwmGkuJgS76pqifHzdAhUXCjDrrumLc63P", + "finger_print": "eb5c4ed2", + "chaincode": + "cf2abe915b11a112c6b99ae5f0b0f3a2ec23cc0afaa9629527276e11cdb404ac", + "index": 0 + }, + { + "public": + "xpub6CDh7R6KnWtWGDf9mUTdTL3XLWKtYFij1gHrzES3X2nG84YXSQSeC7c24gEQxs72qoemu8Qn1c73WjQSThXoBb6QEB1Zhjpq2va3HQ6EWbm", + "private": + "xprv3S5UWHmHCfLErWPoEcTbcfKQ8uCbgQZxMgJfUzbCHKNuCeh4gBKuNUGp8pQGkkUfj7aQWYbZffzjdx4xbyeEF3d86CvEeWfWqejA3bzT18LNAQ1C3b5izEzsmtv2RSibUfDE8To6bmFa1iPBTFErcJx", + "finger_print": "4d3a9ca4", + "chaincode": + "72643d34bc4194c53f18d114dad82c02d1ba80ada1cef3ad6b66e489d835e180", + "index": 1 + }, + { + "public": + "xpub6F7mKcwfZvcRfLvpcEyDAv6ifJ4ioSjW6ec2JkynC3thsrEyXku2pAXNLQVKZCBE5LKSTEY6MUrJq4KruMfmVUnxxJgXnKSGRgdTJmo6cnU", + "private": + "xprv3SwQL3a8mWc4kQkskwyLDUqch9pufKCDwUKp5BKsiNHxsvbtpkKPfPfEDtchnJ7TKZtZBErwRpCe5Am9mpaxDTde3o4zcdpPzWyn5vhovZnMxBnBHWSAmsJHJ2VKFTzGvCZE32E8U7ruZWEVt2TMyBq", + "finger_print": "d77a6b0b", + "chaincode": + "93cad9ffa74b5c96aa6505f303569aaa09939b320677a772d9168c5a20451685", + "index": 2 + }, + { + "public": + "xpub6GpwtgkJNZepL7rnRfCdBGVmfJL2s3uMKE5WyNHfvKY2wFdgq4BjDkqn4XbhdytacaeeStVjkMksK7auteBTz5oq855yujukZf61xgNZ2kB", + "private": + "xprv3TSsCX8yW13nXcEhdHdndUpwfn27NKoKbHbSdG4uGiCPCCDu3oSyLdxwuAe2eVdXWyzj2VPXK38XxbGt6ouUoM9S5eEnNMYHAjttGMW2JnAtHyZRmgBCQaizGXX57mVCZX1bqi7vq84raYVKaWNJ66w", + "finger_print": "c0217b37", + "chaincode": + "93aec8998fdae52e09212b250c83dadc4fdb4447e5139ea70d35e54d6e49deb4", + "index": 3 + }, + { + "public": + "xpub6JQyR7SSuCMXsRQdnnBsqx7QZ6ks6XrHHxx5diERg1KLwydvAXkof1oS1oFRA4KJ1i3Lhxrbx168BgYfrj1fFqUaFx7f8G4xpGYehNm9e1D", + "private": + "xprv3TvCmvmx1LibGhpwPhG1WBw2juVWyf9pX8ErVaEyx7oYu6NAY5McJrZhrWfW7FvFHpAsGQvLaoe92WsyjcorV4isT1nkFbH7uRJREkX2kpb6UDVug5dA4iBHHP2TUSUrmPRwL8Ck6LXJBJXbFfZNdNr", + "finger_print": "97ff6213", + "chaincode": + "8efd84cb91e1e67a53f33569803ad01b960ffeca440d7c0f3b3b1c94ebe65f46", + "index": 4 + } + ] + }, + { + "public": + "xpub68kfwPSJepJPqM6PBDtC9G5cvjkz9UAaqo7vZWjuMCnNrDohjeywh73AeKaW8hqSaK7RhFUq7G54SUgijxkNydtHp8vUzjqAH26CDrR7fjT", + "private": + "xprv3R3m1RAT4tYzNWyTgthw1keL8ibvfqYNiCFGdWZj2RTEdpyAvWaggjgJWHdAKr4GtaK9WDxjJqP8v1LKpd8VJUUW4iWs834bfJsr8GWkAsEbqXPxWBcdKDcLnFgxX4TrPqMqQ9jXdrRri6rqkrFhj1c", + "finger_print": "75b1b661", + "chaincode": + "aa63860114aaf9f2c4ddf33e5b4310dfbe5d7ef9976316d906e32a86f7ff7fba", + "index": 2147483650, + "child": [ + { + "public": + "xpub6A6WDVBoyR8TWXv353ann3dkspxQW7qrhUAQwWnoWdZyNRRjRzSKAeM6e9bxw41xtrnH5FhLX8eVgnKaYRYri5EUxpUMLuCfZDL4Xcq5vZW", + "private": + "xprv3RSt2cHbjEXmLXqvqAhGHBKXb4WxKqDz3L9WHp3r2sLUTYNGD7n8HYBuFdkTwVAmEL3bKnRWbQZuk8jEWgvfDmyknuwEZiwgu12y5cYdMs583J23vMFnUYiyZpdntLAuuAhsEtiVnXdR8g2FajD8CvN", + "finger_print": "2c44269c", + "chaincode": + "1b187dd053e5f433990bbce780f87096b7c642283ebfe3d4417442d1f8275a83", + "index": 0 + }, + { + "public": + "xpub6DLwBkbhPHsZcPwGP5MA5LrYPLxHKAEupncfz9ptkRLRDwQU63Y3koY74Lm91NVN9hCGzmdfchUZgYjQRLNHozDTRZxcN75bPYkmgWk1hEp", + "private": + "xprv3SQrcP15zw1EdxWBrBU5Rfx44YEguMYTBPgibNTyVUj2Ucyv5UdNzTWVxhfGFE9a5aopg8P2tDCBrmGjKREu4j3EvQK7HhgedEQEfhXP2c5xJaueyJeTUieP57ikcTu3FqnmM1hHgTKU6HvaQXMFnwc", + "finger_print": "e644ead1", + "chaincode": + "2984c4d0315e379488f509354c7bf084fe3b9821aca23f643e3dd615d5be12bf", + "index": 1 + }, + { + "public": + "xpub6E33rDd5dDycDUpMRLRjMchpK4YAZcf7kZp4jcCjL9d8XqacVKavjaCAJgEqMDb2XA56btQsDgMPz42biDABGev53g7J8zXJD5ZF2bjc7Fk", + "private": + "xprv3ScmmrUp17HRATSAkq1J9ToFXe6nFhoJM2WvjRJ8ez6RiS5vf8x6i6uvFuG7hbptwYqkt9zh4FX9ELX9ZVDXfKYVLVP5UbjvGq3nF6FJF6cQjCCo8zhTuqVgocKEHFSR1sWZB1JDFpetyeMFiEcSYxa", + "finger_print": "445df499", + "chaincode": + "4ef75df0adc0b32ca35c89d085f508c94effe143793004a9ebb3e41f9940a8b6", + "index": 2 + }, + { + "public": + "xpub6GDN3qKxErN27T3mmsSvuvpGTtunxaKnNb25ncYrHqrojcNikxP9ze68yoh7C8n13TSeWA2CqZXnWYuDUbBug2PmFScVrm6EpgrBjwxSYq6", + "private": + "xprv3TGJ7M1giBxXCrkXwsBcf8pqpxomEXW9PrPYAsvxt6cRannj2mpXXAteuGrLouJzrm4fXWUdpsfL3JhGArZS44waP5QB5V9ZxZosucdfvupteXTi5XGcP6Afpnq3qyDJicFty4VQWBgkZbS8NjdK4LX", + "finger_print": "6ca98d40", + "chaincode": + "bb3a099251e5256ebb837974cd91d263e8031fafcbf6acf2a6fd6db058f8d84d", + "index": 3 + }, + { + "public": + "xpub6Hqk3Uaw9qNhRru6QTbzxBbshHoEtgrTU3f6wDJy3TyG3iRpkXNdqeNvAafMZRonnuHpicuxrBUP7v9NKDCfN4NcHCN8LvGWL4WNQizQ57a", + "private": + "xprv3TkLE4f8FTGFAfuv2LfSopr7VQphbMTi5c9D6oAkhps47Vr4bQBWWciPXbtx3ZrTxP2zsyJHya2d8C4X3PZmwD17EEV2h47j2pscgc8Ez6aaSyL3G97h1TcZg1dhw2a7MZuXQNQe6X8WSDY22SS2AcB", + "finger_print": "4a0c6247", + "chaincode": + "390a2b89720721eade3f79510857b3d30f8e9b580d8f1ff3a94daa684077aec0", + "index": 4 + } + ] + }, + { + "public": + "xpub68kfwPSJepJPtGA76cNRYBgUsPdX489TQt5b3SXAh6MPZBG57son4DByJEQNocYw9DX2TW9h2jK749kDF1VqUtKvhtPKULomLoKembJi1Ya", + "private": + "xprv3R3m1RAT4tYzPPCNMkY9nrdgu8WDousoYo5nDn1KbXri6hG9cSVVVpvPUmADZmaGmdV7wMJiLhurni9ZYuoyQm6N4D1QPpiCLpq6nS9g4MJYcaroC8Cu7DQSTP1MVDwApPnR9dhxcE7q9xvMvv2soef", + "finger_print": "75b1b661", + "chaincode": + "cf2a820fa3c76d1d5addf3c49340c9bfde6eed731b8199d51ab62ec0a41bc582", + "index": 2147483651, + "child": [ + { + "public": + "xpub69xt1F7DX6cDdfkDBVvsV5vj55gPmfGwRrFmkcotiCPcB1A2WhwBPBUyXoxddvzhnDcytGXkffK2bxvCbTCDVn48q8kbSWAyM3CDRUZmDaf", + "private": + "xprv3RQcfVMQJY8cKkDW61ab8T6c3RvjzwdbN38LLWkvN9TSvwzNE3XKYZ43qyKDvUV6rehrcJbstKHijWb6RuznZPb7iupyT1A1EU5x1dU5ujt3Jo2nL5TymGXk72DYUr3J8EKrF9xzFEgzPkHad7RH5tv", + "finger_print": "1a61bb47", + "chaincode": + "4e76c82d66286f2bee71f332dd8fb4ce58bb527c0e46dc97cf0d062cbfa97b52", + "index": 0 + }, + { + "public": + "xpub6CSou9RfrAKZdE2yfFB3mGyMbak7htXrwu7XqvF5A8nM8mG2xMUVJZTvL8zwAzJoYSgcEVMfH2akkYETevcKKX6BhgUZyfEyTReb543FzDD", + "private": + "xprv3S9NWNPbjmArHQbAiAbm32477i5QxPDX1T47Ubq2afD8hWQQf5t5xDacbXHBDcuQp2Mp2SGGG3RJnHHxFDb3BrXCJKvr9nTUB2dkcs8pUkwq5hYZsxGA3nQggwpvz9L1AXKj3n244Uk4i3MTgmFoDfA", + "finger_print": "6bff6993", + "chaincode": + "64223d989495b0073f069ebbde53c596bf0bee4cbd3e8b8a18f344ccf8d3ffce", + "index": 1 + }, + { + "public": + "xpub6DvoGBBZ1cAhD2BTuoCTm2yWKiZLzfdADYt77Jx2UeHAS3PM3jSJwDVNJoV6pdYq82138fQFaonLjDNm6SKX7YDKQWst4E4CttdWoJXb58b", + "private": + "xprv3Sav4dHqFYuXtW2eyW3gaSfW1PyXSmQKMSYsiCovZDkXMgYtCBCgc5sSVkB1TNrpyKCVqpgtzeSTPUjxtNRdFYXd2AnBPLYRN4ejAvi3dFNH2HyyarFm8BfuH9GAHjuiaY3vYZMntu1b19mAzVBr4Py", + "finger_print": "35b3ec26", + "chaincode": + "4f3e6423fad42d7997a6911b96d481b14f31cba50588372c7b8b5e48f7ce3ac8", + "index": 2 + }, + { + "public": + "xpub6H6HpBxqpyaekCGnLTAAbZhoNbCQio2MWuXuuZEyYFC5Ay6S8Fhy8ZFpjzqhW5DGUfeBkScXBG72GcBsXHhsqB4U1pWEu4vPzqXbMSZZzik", + "private": + "xprv3TXRZXZdh5smEuPsA2DryPLpMPy7MkPQaq3FDNTrQGqTunqNxY25Ek7FV8MycbhHCpev5phPirX9SyinEfGB1uGVmr3iTRBm4nEhk8D1251gUhR6RsAMnfBun2tvUrze6FkLFMtkR2WMUzUeq3vRXKT", + "finger_print": "e41f4466", + "chaincode": + "75c00fdc4da7f1ae99499af62971e0fd3bf687a7b66bdb4875e3a91e0d5683ac", + "index": 3 + }, + { + "public": + "xpub6HqsGbLmJ9Fem5yt7trWyWVs24QkzwD7Fgarpf9eHf4WFViFpjBFrNBzH8cAVSeduEC78gmi46jnatt9WD9s6B5y9HHuZxHu2eZwxCmBJNY", + "private": + "xprv3TkNNZsEcm3f3ZH9YbP64xM7bXzU9H73TR6t8GwmoGCgxdwq8FNFxR67B3jUqoprizUWPuCk4SayaYz88yNqQwc7QZpfkaZNBGpMnuRN5U5nachjVCUc6it3ZdZjfku8djGoDLaXekZLo1hPV8bzuhU", + "finger_print": "4a573318", + "chaincode": + "b9cbcbbcbcdc81f074c0e052df25bd131f1d0e644c42bd95456c6b1a20d65089", + "index": 4 + } + ] + }, + { + "public": + "xpub68kfwPSJepJPwJAAyXLm68ksFGXtLziANQpR9YJqkw4dHeu87nayMRcT5ggvkhRu8own2FiuMfgbf4SXrBcuByUomsnNCDznXXHUmAZ3hXb", + "private": + "xprv3R3m1RAT4tYzQHUoFo4cFV7zE5mjja6qUY97J9rHwuqfzVPuq5DCWRGMNShgSZWTEpqsDLzMp1kyPERMkhsE7aeT9tkMwkT3uRpXVZ2P2rqgP9deF1LXXA2xkg9V3n9fH9iS2jX4vw9ogNZBpwGL3Ug", + "finger_print": "75b1b661", + "chaincode": + "fff4d9304d2476343c8319dbe11a597c61167357b79457248e693272297beef8", + "index": 2147483652, + "child": [ + { + "public": + "xpub69xuZiq2Niqdj3exXmgDNDL2pCYFuBgD8NohDGzC4uNWJ2ToyWKSDWWG7beuxuFiCXCFdSioQLvwsAwy8Lar5Pf7YicJJtLpbCLSmbd4YBF", + "private": + "xprv3RQd8NFXYWJjVPfwZL6JSdwjnyrBW8NerH9fCD9o58sBt1CFmcPbUF9QFLY6gWmZbWn97svbMu6MLRu4xjnrvwVXAkgZVFsPvRf5keSzCcZ1rNpnMGd85iF3uZ2VmPjZ3sA1P5WHTeu5gbxm8D4gEhJ", + "finger_print": "1a71e1f2", + "chaincode": + "019a2bfc417234e32282cdf3312c76de301a49e83a034b5ae93847b316c650b8", + "index": 0 + }, + { + "public": + "xpub6D2WfwLrRVd9APB8oUoGEKw3WQZWjDxo79RW2fRiTtXTUht2ST8M5RdGnniZFNy1Lvt9UGNWL5JCjdH8VE9LJsosDs8EE4y9d6vPwwSnoUM", + "private": + "xprv3SKPCK2sVdCfhvc9SiNZAdxufJHZYPogUD9UAsS5eDBgyx7fFSx5QFcxtrhWCcsJiYQxAm38M6kLPMufWvMCtDWFtbs6JCATsQ8Y213CPXXS9rK9Q7GxqscamtXUEUm96ump2XBq58y8vK15Pwc2QhP", + "finger_print": "bb0e16c1", + "chaincode": + "346c1efe23c914fd0a81a362dc3e4e4bbb787d15cfbe46170ecde6255ff707fa", + "index": 1 + }, + { + "public": + "xpub6FKqjy1QpCkxDxYqz1J8CpQ7PDS1MP5JCTxw9XfB63abUCXuXdjpgAV5SxjsE4oJGkkKHZJ2CMf5dM5Z6ZfzuRF8JcwFsr6Pv68YXfqrvH6", + "private": + "xprv3SzzPzksz5QsofSikKVdT2cMnicMu8Pc8rZWmfdHKtNpVFoYWBDnPAMoDNZTK17X8rWkiCfgci5vRGzm79cRwiCZsAxxcLkDEtScgAcST4u2yQFAfLqG8hg7b23z2E7rVR3KM2MzWRJDuKHtmAtdd7p", + "finger_print": "f3ce3178", + "chaincode": + "27d9a8b7f038ffe01385812f7abf97e7d236fd0d5fee1cd083463d4e63b40a8a", + "index": 2 + }, + { + "public": + "xpub6GJGFT93fPxZMuf1KNBtFAgePD3gQ4ofEGEjR3jNbUn8XS1eLGTs5zVLRXKn8RRribVgMXwYoHeC4kJiPwoNiqdNvPLMQaqcbteDMCr11es", + "private": + "xprv3THkY18TEyPvwrHan2PNs3DBYTEMsh3hnACkrN4pNJS8EHhQPVhRnDyZuGQrSw4r8gtCiD65BXDrdbUGuueuKEDuDQRoPoojR1nBodCywsCjxRi3PAJmvpdLjdT2wHQfWSe2Bi5VdsxWT5YEaTjHXuf", + "finger_print": "782802d8", + "chaincode": + "7638f0cb65aba00cede0b59525e579e227f7ee8961a1c42a7a8ac1f2d74342ed", + "index": 3 + }, + { + "public": + "xpub6HwiufqBDgP72RpRrjGiZR3h956nvZnMgYsawEQg966uUcE4QMqfdqfS1osK9mDdSSoKhuti5WydfAtf9LFGBgB6k8qxmrUW3TZofDRWD6n", + "private": + "xprv3Tn7GR4xQ58Xm4d6RSQRuTep1mmtBDrFHn66Sb2saSaSMaNW54Rhy4NBhx4M9BKDQXEt95Loj1P5U4taRkB4YEoXs5Rx7sQxX9J4ov2NXYU5sRb7JT5irjnKSCxtBssum8bZse84Ft2EHHnodBeJReM", + "finger_print": "5813a505", + "chaincode": + "a3b2de10cabcf6e1a09d449017c679dec078e7632ab0b8613d7e945a9731fc75", + "index": 4 + } + ] + } + ] + }, + { + "seed": "78b46372c4f2b0379b7d6802606e571ced8c2e4566237fc66b5e47ad0873b77c", + "public": + "xpub661MyMwAqRbcFwu4LLGFZDUHRQkK46ykcywrFkBjaRBVzommq9onGQyiLsKPHAuQ65kZ7xv5fBqv2JjabEUmqYiZ8HqAddV9Qu4PxZasuGp", + "private": + "xprv3QESAWYc9vDdZgcpvSFjqziWjBSHkb3zPaJUvsaAd1uUMEJKKPbkgCmRDHxd767krp72HrJoKWH4QgVpSNHPLTiYv6GMHiBbDYyiF9nefbpUmEUNpjvXfc1kCbj4LHNjYo8uZ7FQqqYDSmxrgATzacC", + "finger_print": "00000000", + "chaincode": + "8d1362b3116804b1fb0a7ec929005fba8c2feb183357615c35edf38868d97fc4", + "index": 0, + "child": [ + { + "public": + "xpub683odPswegdykd8gVLh5Q3F1KSujNjLf5PZnrMaq1rLcLqoV8y6HVyJgGQRn4nbh2Yr15zGpeikkU7RE6tvvmBARtAaS9oQ8epMrUUqGjuU", + "private": + "xprv3QqcsvVykpUoyonVG2jpgFjRQ5gEdWFzZo6fU6gPCaEfGhkAwUymUa9CfmoyTDD5LNEfD6ARkhiWxvzGHQHHL1XVYYaWnxrymyN5q99A8uYnKFQTDENoRbymZtFQYNSGWEeybRMSEvgFmGEMqUhjRiD", + "finger_print": "15d4c6b6", + "chaincode": + "d4155bfd9e9f87e394a5e7adebfbd55b4c429d45201e35037ad5584600ca2222", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BcYKoRSWqS4zghjmXnCRHMq43cXYmrqAJyAWeN9zhdkfNzwxSPMS4xJ2sy2CEGrgsEqQgSPhNr7crLdY5qYFMPWGhtmUBqVw95SMNTuLnm", + "private": + "xprv3Ru2rpL6uL3tsKAn4WJqtxmJ64x98VWQHVRiYw1xZ1N2yfBoEiLSEEHutVsxHbZFv2Bc7QeZk8G6zVzTC7E3aECnRPsQ5rY4XYN4sNF81azBECihRRYta5Jhpjzy1sZcWWD6Xzc1dX92wMDe4cGtp1h", + "finger_print": "fac618d0", + "chaincode": + "4c405b6148646d366ed327e4b1e7aa31d0918aef9b7b209ecc916a04811ac6b1", + "index": 0 + }, + { + "public": + "xpub6BtvivRPAtTJYsmjd7PGRsErHu1orkjtU85UqCkBCydKJaThm1nTNy22eYvMa1T8SCuSPoUFGYgEuJ2LJr7nfkXp1RNA2maR3PYv7nrsjs8", + "private": + "xprv3RyuBob5C7ADTHuo6rooFmLGApdhqvXrGxUjqJ36EaXSaFSzcCwpTUhQUdorc8sKJ1ifPkuYm3Wb8WZcEFD7Vj8AtJEhxauSaoCqz6yPRby84fFoALAVTrv7XMsJkvPStkitTwnXnj2TS9iPJJeKhvk", + "finger_print": "21360557", + "chaincode": + "4b8405c99980e177d287580c8e1e9a40d5bf95e9087e68b378ce81b4e66516f5", + "index": 1 + }, + { + "public": + "xpub6EYK5LMmtSCyMau62hWFVdTF8igxM5HW9jpApuKt8k6nsiuQniYF3NUtosgb8q6LfRqz61NFwQdDVm1rkaQGMSVRF6sPRRkxjgVUh4pYdw4", + "private": + "xprv3SmTxNxweRW6MqKjziKcX2KB4jSqntwgPjrqgfsgnfdnFwizkgFS6zMsJsiWeLPNc7A3aGaNbRYC2ZK5tY6Sh76p5w3zuJwCJWuRueqvrMWY71MNajpcZa11WSVkZ1gmjFY9nQzBwfqC9dAEa8tzcYg", + "finger_print": "890222c1", + "chaincode": + "2fc3d8d5ad63e3c9b00ae22a0d98691d37c1249143381706372f9c66d534079e", + "index": 2 + }, + { + "public": + "xpub6FVR1MW2JpVTo5VGUTcuaD8zthpAdZaMQHt8q54WYT2HHKcTZbGdACumBU2uiddFFwKDH9VX84yAAe8HAmXw6SGFgG8JPEwFhpE5Eg8BKYr", + "private": + "xprv3T3qLzfsxssrKHpncCBafH3wScC6NrtNX2cyFpGL3xAE67mdRwDWURDJKn1MXRemyVUEzkj7ZPVofCbfTUPi3QDS95846DacuTkGXEijR5HxeqD3jJEGSQUSeYu73EXuTZPbfHg1jKD3bQEEfXUVYX8", + "finger_print": "0a431db6", + "chaincode": + "79c3c9a300b56393f6a5a34bf3abf1c2b4be4fb5373d2bab47e9eece63eab7e8", + "index": 3 + }, + { + "public": + "xpub6Hk7kG6ZnoBAPhb6JK7JkzDfq8CsTk9BWbSbkpMUofryst9s8Zekj428WjuAoFFM6kmCfLCzieKB4Fy3VBKv6F8qb3fqtj9isqhnj3jkmf4", + "private": + "xprv3TifJ6njZULDTZw7FT39wAFAvkVZebRYDBDxNM8EmerSasEtAnv23Mw5hVu2Zrwc9hPHVSPh3F1H7ga1VFYPuC69Vwx18gspA4jHEpFW3MGUnG2WNL9xerrZsBnm7w2GzHFbPGoNbrXDrZL5poMnbNj", + "finger_print": "3cda145c", + "chaincode": + "840d6653e2951372117cce688b32eeb7fd092269e2db56b5334db8386f30f3b5", + "index": 4 + } + ] + }, + { + "public": + "xpub683odPswegdyn1PdQuMwnBhtCRko12vqaum4vSBgVQ8y4AjL2z2AdKcmERmq1yU4SQNib4crBu2e4f8heRHuyecBHJbJ3NipiT6QaDZSNLK", + "private": + "xprv3QqcsvVykpUozDdJ8Rca8dQyLTLdBMftxUqQpzFANfPTxq2AtfoWGzNswBBEXK2SvWEits87XWAqbgRp3LKnhUD6Y2okYZA5hYaf9SxtyxJ2gj8cftkgXagg951zAWnZwduhLTNb738ALQRNqrTCm3f", + "finger_print": "15d4c6b6", + "chaincode": + "5f11e4d5c001ac1cc70d4373bef174b433b3af1f662259333b879cf8ca926dd2", + "index": 2147483649, + "child": [ + { + "public": + "xpub6Bdjt6JBbw3CCMZLmkSMgT1EEhJXxZq9533drbJMzBWXZ7Nnh6e1uf1nURp3sG3DSBnqR9EA1sB2Nqi5Gk5AquJXZf95Si3SypxzXWf4dGL", + "private": + "xprv3RuPXFYZMo4tGaGFucF9Kajd1vwvbNSbAw86Dus9cz5WqF3vySrZLu9DfgqF5bkJHJgbqagL6gTYJstNCgEiinQGHrUYnPe2h77Y1oVVt6CAJHXCfc2nWxHAXP3ySn4hZajLrJc2A2BHCNk2ARx4Txo", + "finger_print": "fd964025", + "chaincode": + "613bd3013eb83761f4b31ce4116f1117b6b07db09f2096d92abbb88aa6b00c92", + "index": 0 + }, + { + "public": + "xpub6DFNk5epTvVsCC45AHKPeXRdF3QNe78t5asDk6J8drz9nZkkDN8o31C6E7dsTJfsDoddkwQ7TwooWkVkimbVEQUqrhxqo3AG5pAF6ahgwJh", + "private": + "xprv3SPCpphoLzzuty1fHWAuM19BU2jRo4oGZcQLGApfrVnHrg3pPWNesNjrrgsqZVD85LSF8uZL1sDWhGP8wwsHRzsgEWa6Q6dbfj21jXET4tiiv5VJcX4xgYnk2TJEzUtjGm87kq1wmocfp9k4hJ15AFp", + "finger_print": "d93a846c", + "chaincode": + "c36d261544b117398ac12425e61bc038b754fbc9660fe8888ad12341ca2158e8", + "index": 1 + }, + { + "public": + "xpub6DuU9NeKgeZmLzbhZ3wqMtvaB4uXAFYStw8mND9c2YefqxUvEZTPYpCp2EYb3XhDxQk11qZFbnMJr3fiHVziFVjfbRY6XjnwPyT56dBk435", + "private": + "xprv3SaX9vhZAMCdmqEwsMK5qetZfV7cKwJFsv72EewEDMddyWuQ8VAc3dnNtMU79fL1T17tRefTvEmHmRWpc71DXL9y5J3aYgWYBCPQJUqV7o9HyRh6KBNvLZZyJP7WdGYXm3RS6YRnAi1qp3H2NP4ySXd", + "finger_print": "32957db0", + "chaincode": + "5f6562947625756b5f1216d5777b116826b3df5d1b5a393916c2e00e868426f7", + "index": 2 + }, + { + "public": + "xpub6GCVJrX9RMjiRgYusocVkCqicEALzWDF9DVR2m9DRFRL3Am42rTfU6q82Ks2bYHWWQGhvmRtjXeEQhisbgPaDjpVnYgnqipD1TJY6eX6FPs", + "private": + "xprv3TG336f67uXoHsPmSpxFK8RJ1pfdvrgG3V64LXTY8V7ggXnZTaWzC6MziKgqqfFuFprAojbmfPQn5TEUbC8cSZtMuyN1cQaAt4ShisuwimRZ93zJNnsKWgoY2xYq5kNBGtypoh8qo1hFZSHr4tDKxUt", + "finger_print": "6a9c34c1", + "chaincode": + "d3784cefa76fd4efbfc29305735f1ceafe13636f87965c4b282b775aa40b3854", + "index": 3 + }, + { + "public": + "xpub6HKfVgzwHE5eT4D31Dy7AMQepCkTvNg1E3t1sKwjJFCXTWBiNRdRbnr2sxdggzQGkCps1HhEa6CAx48e6LtuY3sjbJM2fSKsNspw6oeDgwK", + "private": + "xprv3TbPzCcW67DnRUbnE5RZ5vPCbza5qw67PxwTQu3nVfrK8H53cwC6fq8fxVpkmBR5HeL7BT4p8YexbXrG2VmUk1dqR9jk88PTTeVjCXz7D7t2tUnLfQLNmRuRHbRpSh5vUbKf82pHh7NsmyZuu5tfATE", + "finger_print": "037e41fe", + "chaincode": + "f51152ccf645fe9986849fbd7fe6120a16cb93a0063a67c0b65078afccef02be", + "index": 4 + } + ] + }, + { + "public": + "xpub683odPswegdyr595b4151aH4Ch9NDo9fgVR5fyDNnRJWdk8MeU8BV2vTLPtiiN1rwSdTkkZeKe2h3qgUNnmyJfwPhFwvQGj4PMMrAJgtxoa", + "private": + "xprv3QqcsvVykpUp1RfAD8HxVfocJV2CTuhFkwYDWVBfmNarYpWvhN2Mp8N42LRM8RWtFM2hWNfL4ht1j2F19FMwsS23rkdY9wGjoBHZEq26ieHdvMd5mGA6Lo2wZ4ef2wQ6GPYM58SmL81gYZat4J9d53t", + "finger_print": "15d4c6b6", + "chaincode": + "f7543bb82042e22bf925e43ffdbbe48df6abbc4a6a0a2f5bdf44305a7a65c694", + "index": 2147483650, + "child": [ + { + "public": + "xpub6BeeJxAuBNTpkcoW63n8GvEaHvavGWncRFrdfWQDF9ZZ87pL39kkDVurJJwm4KcJ5QptSDvLeQwqXg3je1WpJGVQbJdjovsNyhjvxkzb4qo", + "private": + "xprv3Ruf6aLkR54J6W5634RYCDN4oudwzHZ9c5z5MGi51UenJh9rCh7MLbP3D1ao84kitE5PLqrFUEE5nbqqdJT31ABhXBp2fecJhYKb9R3vBdH7VFr2fHwPuE1yLK2AQkd4L63jRmq1NyupLvDiRrqrNHh", + "finger_print": "ffb51197", + "chaincode": + "d594f404b64aa772a2445b70c3369237255cec659ffa37cb7e76d8ad295b5511", + "index": 0 + }, + { + "public": + "xpub6D7bmWJJtm9EEtjoAgq1foHRdsYJ71SLaQ9G2XzCvEZ7Q2R9iB4yfoiUknBU8tpzvbQsh6syAJB7aYFM96b4x4FJA88RY9cdnpJwAuhkfB6", + "private": + "xprv3SLtrhQcQADWQpToR6Ftudgvg1m1o1fnXt52dmh7gaWTbvw2o7XzRPGUB2k4vDiT6khaLkow5GhJuT5YqAp6V7aRJP3TAzVafbwuZ6ezazWyRzKwSknuBdEH99h13yqoddnRd3vfmxxLscGnF4nyq9T", + "finger_print": "c6fd5b48", + "chaincode": + "41d00aba344a6cd96bec93bf87733d62c9b20859012ccb954d92685415a56239", + "index": 1 + }, + { + "public": + "xpub6ETvbUgZiBY7dxVWCqwNULdYRRUxTYWCci7pnpbLXSXP31vxHwQrhUnLeg3zqrw9DHRwUqgHE9skB62nbZXW6hummxMz9wNcy2BVkn8qpEK", + "private": + "xprv3SkAMnZMUM33KRmL84WVnLmPBeUxcST1hj3XVYFgca2e6uW3GvSXz3LTageJF2jVMRGFZs2tmApNXHUnAtfrLpBwTbym5v36zbyKjhyRwLby4dhGWzkiYJTbKqArnDZQhgYXpEm2zwYZxJCVXgqZmfp", + "finger_print": "7eb761b8", + "chaincode": + "253c2e4d4b49d63ba3ab3faf8ffc0ee0b365bacafa768329d84130fbed46a118", + "index": 2 + }, + { + "public": + "xpub6H7zJRQM7fw7wtoxVyg3yw2Bj6c973hNC94QZosppnfUzuMBWAVc1nDdjSVosLdi3JjrWUv5XnFChLNPKpn1yBbXo8oMDpSpyHMCGxuxCVm", + "private": + "xprv3TXvpR2PGeCM117868QdjGqV27rr94pEi6gj6N8ZqvUEsKwzskfSWFuNudcAhPBjtNQEUhVjfFS9AaMTN4e8fKq96tcX6DdtmneuiQGnpZWwicqv5x9ZXdzrcq1GcU66HgJ88NdWoBCEykcgHxP2tBh", + "finger_print": "e81af265", + "chaincode": + "d4a2c055f664c6330b442f73cf40401098c1704562f6e188605cc125f1749276", + "index": 3 + }, + { + "public": + "xpub6HLBWXaB1CxwtryLBTwHcG55qyCu949m5VpWWwpQ3fXjK8PwR6nHEav4syFLkS71a7nicKRZacwtrPq7Tfw3H6CFnTcAyNhyiYp4gHMZfJq", + "private": + "xprv3TbYuLYWqUFvdaTM1chUqR9c4b4YRmwWgXsCt1W7uTkqBYyhfHCeT1Y384upkfXBUkXHCX5qzfFoo9Hoij7uVkbBSpWrftUm79xnV5XQwVKmfcmJHg2v5SGR5iCtAxf4yJkAXJGQ1eZ2td35ET8o4sK", + "finger_print": "04b502ea", + "chaincode": + "4adc3936b3200ef9d5279134b75eb9b35e808f7924c05f9affeba7ac8abddbd7", + "index": 4 + } + ] + }, + { + "public": + "xpub683odPswegdyrbf6ik9u6dMd9UErXxASL1mDErbcjvkuoW2kyzVzxsgaTQYLTZehET7m77iAYE5YZDxioXVx6RKvM5ATpuezTBkDSf4mB5g", + "private": + "xprv3QqcsvVykpUp1aixwG9ubMyeYcjnUpJ8MhtLVcbKhNkgQcqr9mKjDQkWdRdqhQwnui5Gh2t4oRmL29c7rrAWftJ5St4jvxuUyD39EoDqHxQHqbPyr4L8HgPGJ8ZfEfKo2dCFtfFSsJaNgXNimQccZ4p", + "finger_print": "15d4c6b6", + "chaincode": + "2c2d8c35a52100d267709bd806eb2e4cf39442cebe1e08dc6309d2bde5e4ceed", + "index": 2147483651, + "child": [ + { + "public": + "xpub6A2WPH5mF6JBkckqRRc4TJzPG3G9erFfHY4RZM2dz3vPpyiKHLbxPtr26vgDWdNxpFY6DjqQimeBovVXUkvrkvSv9aW9iF9Jbe5nCJ2KQ21", + "private": + "xprv3RRhAFWEHoy9S2LpBQM2aKDmBFQPF4Fj6BVnwiXtcFBZc4gT8xiHzP6AdiPst5XtL1QWdoMjy8MrpAnCVP9sfymQpL32MYK8bC6CsZiyU6LfsEKbLoWpFsy4cKUsYgHRdAKo2ts4e1GS2xnrycaEaqL", + "finger_print": "22e3e4c0", + "chaincode": + "eb9df9d9f90771416ae07efffde0ab583189c3fd976edce6d02fa402cb2a5ccb", + "index": 0 + }, + { + "public": + "xpub6C6CqdmGBVLN3TmkjA97oCdUM6dGSiNLgmgBPEmahaVK8DSGcGNMoHahndyUVjV2S4uXLb4XJFtBJ4TXofrNbQiZn2LjfA1gfcBgFqGhWFo", + "private": + "xprv3S3FVxPgY5RhuxzL7mLcCKJPVw9rZHLdEGwpQZpNq29mhq5VZ8QExCCACQtYLgRLDoY1Y2bo4xR4mAfQco5kLtKtos74PFXTkwS1dmowC581eCfBAVfN9d6QDAUHQ8mhKfiRZSuN9YZmQAjTaCjicGn", + "finger_print": "3baa6380", + "chaincode": + "192f1c61baf7d72df0dbc85937e6091ade2d10594482bff18f53be3ad00e5106", + "index": 1 + }, + { + "public": + "xpub6EcAQbNpRdx2gDmZ5EeoHpV2YKzsXQWs3q7BLMP3qRrznCUgq5ZS5Gr8YtQfTKZi3RqZG7bHEjigT2KZMqRdwknR7SpuEtPFUa7YC7K5zeK", + "private": + "xprv3SncJJRN7NBMh5ZDMGRLyJ2GaTcEMU7YRzi7YyGxxLUKh874e4QqS6ogGEzQN5vGvcXFKDHNbwbZydMij2X9Hebxo6sjZ1FvdCfHBMA5FSascqc622RCHJ3y3UD4ybxQhz2iMK5N1YH9G53v7YEtr37", + "finger_print": "920a65c2", + "chaincode": + "667793e4b836b7233745b922bc6c3f8723368455194166aa748be46f37476175", + "index": 2 + }, + { + "public": + "xpub6G4DxTCRbq6Tk6t1HcqroXh2YGTKrDJFngH5R3V4Zh7a8eqbxfhWd7dsUeJGUhYREeVaW1h33X3Zcwoeea4gUTLCbAaV1m5cEZjKbkojKKF", + "private": + "xprv3TDae4RP7NiJPaHvN9aBLGqQiz6KGWh7srJhUtnB5aLYKsTKo6P265K89Y96jKbi2M2mJDYxwmj746WaAq4upjPoQVAV3Ze5UrjLVishdewpFn9mEizHjHuiTbB4oWhBxEfEL7QAZix3SyG7ftYmGBA", + "finger_print": "5739407c", + "chaincode": + "2f91209eda00e2f852fa7c80dfa92801c777093a051cf5ab0fc58131718d10da", + "index": 3 + }, + { + "public": + "xpub6HNHw1RNvtk2epNB55iVKynrofyAwuGsAvk1xK9ykyLKuu594JDaKBtLYgmQiL26BULgsQmotBMx4TKKvSP4HhCyv4Y7NY7R4uwnXH6TwrN", + "private": + "xprv3TcBGcy9dcvz3662XGkwwPvgu9F5141L4Kyv4guHVZTAFX3mQMXA9SCJ69rXRgm8TuYRKkmWWGMuHV7E4ifcRicnyt7sQ9CraDWD2xcuWuBsPPzuzYrQyCURankCPzQb8C3ESwULQGCurEHnmUodS6q", + "finger_print": "09a88131", + "chaincode": + "d368bbc31706e5308b1374aa106648715c34eab4aa8e6c1db7f5fcd9bc2066f0", + "index": 4 + } + ] + }, + { + "public": + "xpub683odPswegdyu58E6ApzyAteQyEQGbgSrahT3DPuZLzsgBbpJiEUKfHcpKgpu4BYR4qkmoUviNb92pLY4M7jib4Uuo4DYtJZAoDDjk8s578", + "private": + "xprv3QqcsvVykpUp2KLrcnWUwoL8Z371WjQByGE6AJwYAMeGVLuZKJc2Xs53P3yYXijvK32uNcLZPNkVWGNEJ9LJXJGgJVx9bjdG8qaDaH3Lb7DFtANSatVhKnH6T5UUVQ3vLsqfxLUw34ujmKzQd5Ge91f", + "finger_print": "15d4c6b6", + "chaincode": + "24a0e1dd2166d7ce4fe46ccb70c0bf408d34bbd3351c94c73100ce75f5cec866", + "index": 2147483652, + "child": [ + { + "public": + "xpub69wFtvNzRbpAig7tSWjmkfovhDUFe4nb36nJFA9gJ6frK2W81UKsgpbuQfj1f21pCHD4bvVbiWC4TCC5y7urRVnyd5Pu3Joghccmytp9quM", + "private": + "xprv3RQ8i2dzBpR9qHn5oFoBpncT783RCW5p6NyMwqr2f5kp1T83Jq4u9AGvwMs1ywRU2XNcpDgxb5MdHWWCeyiJ2LRBvSUXjbzAEdiFVRQ88aSrXT8TPBzWEM5Ri3LzfgZ4c8CRJ5jtvgDTkvLE2uM6JsK", + "finger_print": "1693606d", + "chaincode": + "79fefcb1c6319369eadd63d3d94ce3d02a4d9fad49d0caec908c9a207e57558c", + "index": 0 + }, + { + "public": + "xpub6D7ezVgHfdugypdGU6Q5xj9gKQwqTCvgN3CCANfecQvzjBvGDBHA6VviGuwtFcAB13iPRbAHBZZjmVJnjznz9DvyiaoTrmfkYqM9wPCLAnU", + "private": + "xprv3SLupFA95Sw6Pfufbe3nR5ysb8fWeFDhptULDWd9c1oSJR45yABvxKzb2yoFHA6884xVqkYNvRfoC1qeMDYB44knaLSh8AfJhftezTxxXbbShkKbpZu82VDmM531bEEauaEWoGc32gvPCXTU5LmKB4a", + "finger_print": "c71ebc55", + "chaincode": + "68f4a8b586f3af172a763c00e201479cd868f0e8802b39af1e0f9e7c85ba921a", + "index": 1 + }, + { + "public": + "xpub6EbUtEQWt4MKVaUE6yn1C22eHjphZNPdEosLvtZMqkaAa5k1CmCEEhSiw5LGUFxE97eganU98YVaVQLyn6E2LaCMU5FfNvNtDgt7tngaqVG", + "private": + "xprv3SnQZKx6EH2q6xLJdG23mm6kTxdNfScoeWn7yT6h36pvbC3Vvgtsr171tYYhnkcGKUtEQxj1PRGL5LnVzDgrHuZE8MiYq4QNv4zfAhLDNMjfE4fp1GjqQJvLcfwidDEJmAktMS5DKjsfXfzdqXmADSq", + "finger_print": "9071313f", + "chaincode": + "7a9f7318302ca0be3e32a51bbe6dd725915ce436e63cb81d4a1c18167c9cdd5d", + "index": 2 + }, + { + "public": + "xpub6G3myTnugVeYUT6ATZBGF3HYLhHGtpeEbYi8ErgmbYr5eceA2tzJufbMDeCGfm3id3sghQXiG3UTkpBCudKzPFs7XiBEvtMzHPZTgWxu3Mc", + "private": + "xprv3TDSvPbJiwoELVQKiECDKxesuVtjhFYvCnHzpXstFkrjDaWp7WJecvRTsMbe5jUWtH9SudsVc2LZFVA79BJ1fudjuJRQiAiR9VHKN42HZDDJ9zBL5PtaCerkp9h7KskNRRhV5paB1j9MmWY7PLhCNu6", + "finger_print": "562c3df4", + "chaincode": + "6cc968039258519296b1be3c296991fc4c275a2524b32a509b09d21950dfb92e", + "index": 3 + }, + { + "public": + "xpub6Hv2Y36USMxsJxohWAAe6LJ6rC6GFviMBYmMHEaJD1y8iy1d6VNxR1ZtnynnQPa2Rrcj4hBZu1YhwBFwKszNncND3pWWSRqCrd4NSShRJTF", + "private": + "xprv3Tmc3VJ2p3zJM8e6rva6nZKR5YWZa5NBzhhEpaBmyfGQYR7LeEu52UFJpoP4T9F6bz8c4hK9ptcKRTzigAL5cxbKNwBz4RbEYa7KZdwsBHGoaDVzUGSPXifQftiQQLnKzR8xksXh15CLLFiBJS8wnUf", + "finger_print": "5419248e", + "chaincode": + "292d8448f14b35374ff2905923fd6944c0c68829236881e5eaca3761d617cc09", + "index": 4 + } + ] + } + ] + }, + { + "seed": "518d0c30ec82a5a58f1006a32b7d97ab2b9d7f676b81b6d0ba3b2906722f229c", + "public": + "xpub661MyMwAqRbcFEwJugTnvJWAWpJs7yd7a78dn5QfnYZUmJp7wHL8o3rAAcNmmUxJTZ7bjVgBB3m6CoDx5R9fFMEQRLjZvhkVCJNPTFP4kuJ", + "private": + "xprv3QESAWYc9vDdZUT5izf3xc4TNdy5WExy7zMUzjtsYPv1uPZmYhBLZy3maVM4Zvj8gR45aQgyZC3zUNh1esoeAZ9pWv83v4jZRpdEKsBbwdvJcxLHYXqLULLovf5VeQidMiPDNGhyNggkGi3y1K72ZBp", + "finger_print": "00000000", + "chaincode": + "46241f36031fbe889a139450cefd9a3ee3afcfce2db5e9e913e71fa11d987e64", + "index": 0, + "child": [ + { + "public": + "xpub69Fxve3bGoZBgnP4eEdjTzd3T61KURnX6VCnzHu41KMuMAnJyF5YfK4sWketfV1Hnk6JF6M2spbXgEiksiwjtrqhRdXFaZRwUxbKzdbHttM", + "private": + "xprv3RCTiHQXREyNaBzVPPdJBqenZ11W5wkdMasFN6DkqeBS61ED9ac4LcB8hGxUS61iDqxJiQ4rtqPr6HPDJeWYQYHHMb16bPPSrJQZ7rit5tDQUPeKAhEvErvDrdTpruxhu6N7e1yo7deE4TKUATmzcEk", + "finger_print": "ba681ff1", + "chaincode": + "58d2722fe4bd1172ce91bbe73a95f8274c8da78a54cc3a548485ad797cf4b1fd", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BCsrbjmz179Uq2HHdNyYvjQmq3ueAg1aQazt82W6zPQoBX8N5z5BnQhF4mzVE7bGC1vNCwS1sq4QLjWvyQnWS95s1oFBjQWY3gzfbMK7DF", + "private": + "xprv3Rn19j6k1MCHAp97wqdwb7tzmJKGUjzfXLaEV9AVAheemahtV7nY7N1vvbrZZPuQVtFpn8SYJDKCoYNj2MwVoLTqxxoFmHeJnZpfmNBptwbXJ78XWF7AAF54s38Dx9U6xmAeXbH3v5KPu4wuuDAQEKR", + "finger_print": "c34447b5", + "chaincode": + "1e584984bf56515a4d80da4e1400baa04ffaba5f7c93d9ff591a731835e70265", + "index": 0 + }, + { + "public": + "xpub6DAo8v5tip9QkQcMTUrfqqkCtpkm19mYjiLewJei4JwymMizLuDBQNLpmaqBbmih1WfGrziLcFP9sbdvhT8ihJKmZ7FhLHd7khkttfVgGh8", + "private": + "xprv3SMqvXteg9Jvusz5NrLYsrTBHS9M7Cci3SLVY37xumBmgjxgXvUvHmXvgm7Z8F2YLQY14UwEsTwrzMrr7QVTJnrGT86NvwwpLDitDSXwMUWyyxHgPZiLuUQZyLvqAS8qf7BaKRSp1W1YUfWPdLju9gT", + "finger_print": "ce7c9208", + "chaincode": + "11016697f64bbbadaeac8c4095f33fbb3ab6552882a6de4b6f8988d07a941dbd", + "index": 1 + }, + { + "public": + "xpub6FPC19nB7EYTetHmRmGubPGcMbSHnXhbMBgGbCssDT7oASngpiukrTVxPEURxKbeeQfVbon86JHqUdYCNDjkzvzJudQLamMbgCQLg2GxPjy", + "private": + "xprv3T1z73r8GMihadrqMZPrC6rrBmNUrZs2Y8rRCR3vQYk7A6xGyQDtFmvnWxYT3MhEdimfxAxWce3QtwZUBXeiw3TSxEtmbBQvqvbv1H7wpq87NF4EJvXnMy6dZAK3mF3JByft6epigFSZ3CaxiT5nQni", + "finger_print": "fba97a2c", + "chaincode": + "b5a188b61c112535ee4de9720818759a21e07207809b20784b3d161757d42b80", + "index": 2 + }, + { + "public": + "xpub6GCjJm9dQAarBcs4yGoA6VewQJ4YBQpdU5cWdRw8t3bWbu4kUjcPtG5XzL8efbfapPUMq5iNWTWc7GTsRQ8r5DM695RCD3WHZcuF15CpT47", + "private": + "xprv3TG7CHVjkCkEaKEjKMMb8pXuXi8rKFrzmGAxoWRRAUv5xxuTQExoTdesq97MJxKc9Ez2QNckPmxzxqfLfKvSpjoEVrdnk7XYG9EkamM7Bfd5dbBuhuzJvVHA9aWCsFCVtFU76J2GupBSB3TGgTmTjVg", + "finger_print": "6b2d235c", + "chaincode": + "4c8db07325af2f987d96f15b5f4394dfaf651731ee8ef55b6111a4a640d540c7", + "index": 3 + }, + { + "public": + "xpub6JJPXjUg5q2g74kACSq6jyEBcRifbqrf2xWUVpfy3CFMAkAHhrpJ5Z5XceqmYjcH4HPfdqAPTvhNmvjvuT8tSPo34oSTSPApEjbzRnHj1QD", + "private": + "xprv3TtFLBsCQ7DDCLoYodfeobKTJaTDpMpfXPQjKYPGAyeC23crfzRstZvV6mvihjdsJQtbgFSdVM1a4k7pkqQbBHc8Sp9vsPrnVPaYPVBuzwNWB6JX8ioc434N9vNUgNioDfp4QPwasxZkL4MSfBU9YVV", + "finger_print": "888d8a19", + "chaincode": + "7d4e13544af0fdd2881b8342a373faab78da6a12e273a312edd94700331fcf3f", + "index": 4 + } + ] + }, + { + "public": + "xpub69Fxve3bGoZBjsDbFA3z7qfY5ayUnHZuP7b6ggWMdtTECwpog8jKaPEJnijuxJQofDiBCxGAuiMJtAJ77k3exguqeW9MLz9p4HjnRr6uZSg", + "private": + "xprv3RCTiHQXREyNb77mspwnzwqUCu8zLZ27ovBdZoKNET6ze8QKthXTZ4h7Cn59XdWFbwMCTPHyJAvurWSzMM17D3vbpFV4mEcrxDTqn2smmbkZk8hfXAD8Mx6ebuL5Npqh63rF8xgN6jBxdmwWy51AvRk", + "finger_print": "ba681ff1", + "chaincode": + "8e85dba876dcbac5c9eb4b685c206d56bde11b9faffa18c9e83e6aeec45e519a", + "index": 2147483649, + "child": [ + { + "public": + "xpub6ANZVWcfL5wsA7B13Quc6FfEuxq2gwaozJGKKBhLiRg8T564tPVUVZpXekB2QMNZDDRyrsfpr6HTXqVjrUKMHDonsxSSfvE8xzAuCRJchqj", + "private": + "xprv3RXeg8GLFw3JLorFzQA5yLyb6jR7FCZNYjaDP8UHKNS4DpYCaGP2xAuzVzB3cwvFgkxUpNv1fbgiPom3rduEPreqUDHwN4FFejF6hbisRbt1QLJ8tQtLyhyCaJ17qazc7ian6H2TtrUzGM4ziEon8K6", + "finger_print": "51ee1795", + "chaincode": + "05ffc6ddf752deacabda49f4079dfc1711fc59442f754594136f4b56c693a6a8", + "index": 0 + }, + { + "public": + "xpub6DG9hoYwTmXEW3zvsxsifAavrSe3YBap6ppPsiAKecNNafGGAFQMYQKbZ7rjijX7GcmVjB2TEanbhN8VG1uvJYrAw6CBViaS38Dx9c82vbf", + "private": + "xprv3SPSBUiRaEdjr2MZKwLgH5nmYCxARTVuR4k36rJ1p8xTNJMuFmdNaxDQaxjhuryiFapi7rxgrFrw7iqg9dxM7sLQiQkhecPQeMwmyhiJXACWgJi8Hy2QzXiSHYEKmg6sLqPfH31KKovU1c5LRBqupbs", + "finger_print": "db0c0451", + "chaincode": + "4310e320215cf3d10f63ea7d7e74f8ef05d966e040581a4facf5476044158b30", + "index": 1 + }, + { + "public": + "xpub6F5eHnt32sXAsocy65wNpsqJXQB9o7tb85wZQkt3vzzunzCMRfgMmFwJVa4LzBQp1BmL8Rcb8Cd3ukGDRB3XFrCQgKre3TyCn8x4yUNo1K5", + "private": + "xprv3SvmnG78bkymCYBMrohUWhJrVvRcifBf2PfrMbYPUHKozkEXYLsQ47iyh85tNqfx9UpJepWHHynMw2nZMEnvwMJh5nAdkxFXwVrr5uD4o6SkKSXpMb24yU75XqP25c7wqN4H4eeWveCLA9X62Hfxm94", + "finger_print": "d2809d68", + "chaincode": + "da9527d851fc98fc3f64953fc7e20d2df3b46fd5e8ce40013f4e26d1aad7ee28", + "index": 2 + }, + { + "public": + "xpub6GGXkcSmLnr2j3kc5BGgQdeSG22Skisa67R96aPpsJpxvdm4nWqmEVTTprKwKVYyXNNhtKe21qaToj89r5xLq2bn8aDwtweVdW8mqBQWQfX", + "private": + "xprv3THEgUZXzXrZwmi1oDLLnqmCpraKGKUBE8yASfAsY46F9Mio1A9HCiA54M94mXuBPddZQpceWff2o7jJUvEae6DXBCP4DYCtmamka95aKyugMYpmY3Ypiz3rkqKLpysJu21P9GVds7j6n6hRuyWGMfV", + "finger_print": "74178418", + "chaincode": + "d2a701da3a2b34601d69f8b2dfd0005eb2398bfef39cdaa7c5ad43dff4e4ef1e", + "index": 3 + }, + { + "public": + "xpub6Jew7PtsCafpac3Ns9cyQo2NCTdcTfcC4zVhAnDsDd5AHh8DyisYbrLrQd51ZVqDPCs7vAVqinfnf7dyiXuzCNDBpyepq5q6ekGaHDgwjuE", + "private": + "xprv3TzMJe5yeC8GMvF6xJWNa1YBYGqf8FRaZ9Ph9pMucNuzdnU5WCnjGkpu5dwJCDMDYKUeeWJ5S3BZWr5X6d63wdCktxssmxr66Gxy61DyWrFdwpKWDhPGbXaEJGTeZyn7ERWi4YURLg7pDLZ8RSRFstd", + "finger_print": "b8be880f", + "chaincode": + "aae4f877c1373971285f345ba20eb940763f2770061d194d5988a503984461e5", + "index": 4 + } + ] + }, + { + "public": + "xpub69Fxve3bGoZBoKCy7CGSYanzbMRDhZ1Z4h9o87kGYKMQEQepoGv2xukR51Mdm9CCzpvUvNv2e7zNWy6wLS6v5fk2WE4CK1KUYafTyqB6qCm", + "private": + "xprv3RCTiHQXREyNc8XWVKdqkRFAB9b9GtC7fwzsoEHE3Xo9FbeCRcFJcyNwNeW6FJb8uxcJoxcdT7JxBWfpUxhmTqzv4AuFWcqGphYwYBjvS7hzjQaEMQjgqednLBLh9E7ZU2hYUaSWxWaFbhYidMZNXyB", + "finger_print": "ba681ff1", + "chaincode": + "e8dacf8e08e0c8b3830ace685a806d61f16f62fedc1e7fab1dbff202beb6ce06", + "index": 2147483650, + "child": [ + { + "public": + "xpub6BEXKfz6SNsxBmKqo9qsh3q8qm9sGmDEhJAPS5mCTucPvUbp4kY1oApCxxzp4NxcBJEAGsybPF4eyNbpf5pyZ73CGptqKy7hZfQBFKf2uwu", + "private": + "xprv3RnVWaeg8aDi3ChRCHwdeu37S9fJzfxcnJoR5TtYgB9ThK8YMogjQ2nX3xYfgisrC1K2AhCAwTLeAVQqv1FYNqXMxafQ6r2giRe9oW8i52QbHvCVSa4Q3nmdUGgqAJ3gbAi7uZmCq5NAspNWVjEaZCi", + "finger_print": "c720b14c", + "chaincode": + "88ca0bdda9f98b7729c88a5f020adf79ef84bb182d294fb6f56cfa2f004edffa", + "index": 0 + }, + { + "public": + "xpub6DBvi9VTefHCAzXKkgBGHsJVMWXjYPD9dAYs8F613dqSuatdrHH4115XEuearYEho2R6d3Jz3oLKBsRefmSSgThCuAYFSfpiU2RmVfxV8QL", + "private": + "xprv3SNBQL3BMF5cNoCzPJfLqseURuqZei2EWzYxLE39qX9hYS1xuE4RVueKPYf3VAdXTF7RDqTEGBZH3H1GfVLtNPYmSJkJndXT63ofgfuG7YVAF7ZQEgQzDL3eKKDgBRWZRty181ez82oR51K9Rs8tpwg", + "finger_print": "d1237a60", + "chaincode": + "4f23039745de70ac678db21d6570813e9342940ae2cafa5d75c072a19dedc78c", + "index": 1 + }, + { + "public": + "xpub6DZemZjywSThejoRydJNwRknhK8iPi2eLirATG2hzZJSco1mbvvHYTSACZg47bKKmFzodtfrMFJzHw5tpg55GUvLeiRGY8M9Xm8TyriTLjs", + "private": + "xprv3SUdie1wgrKFivN9Qq2CvecttQtQNLcHgCNwfX6yvpSmqL4sqNEPycprRdJKbkftMEUMFi9KuFeyPXJYiu5var3BPqdDH1ZATuDJwmPjRvQ89Jd3sc7kcEMNA6emZ4vtrSh9UHBugjnV5aoaG8oKh1m", + "finger_print": "041975ee", + "chaincode": + "dffb39fd0384c59e522af53ca6a1b16e2250146bdaff1a0874c97a87e62260c6", + "index": 2 + }, + { + "public": + "xpub6G3gDsYw6wc6Qb3hbfgtki4i3JKQZ4HcnjKWkwed1GUzFS6NBn2qKuBWGgxZkyz8Y5kg7abDkkaHH2W4nizASLqwTV7dvk7WeeVqHeCU2NR", + "private": + "xprv3TDRDHxsk7bMPnMQx5eBuUpJfR1TSoENspnnhNmHzNxTRkLCvAT5A2gs2gmyvwzKzHsYn876ebsPSaiv9toQjPW5Wh8QrsnQQvrfFqxWv4AHBUrbJPzythuTwba3UPdwVfkU3JcVDGVci588vAKCSUf", + "finger_print": "55f0b184", + "chaincode": + "d54442c5e47c4d305f1ec9d7533659fb7568bcb41dc590b4e50ff8068fc953a3", + "index": 3 + }, + { + "public": + "xpub6JAJ1zNN6ib1P3BsaCP1XrzrVhhsaBvGdDarddFxnaAghS5LUDo4AciiB7H2CrdHp61MVYmFXwzESpn5hK3ZKJMtU7bNmcifsczGtoozgGa", + "private": + "xprv3TqqrfrSX3pogpja4jDWHdreqHTYY57a6uLNf2FYQCqF1hp54ypWXyqc7WccPFew2YqUgjENxiJvqHydxNCbCz9k944MvJoqbBgbAyYym53PkojfifTob2dibbHo8JzhURLm6QWmg6skuo4xGZ9LhUu", + "finger_print": "759073d7", + "chaincode": + "5539e4558060a1800f04ea58670f2dc10b5d9ae0bcd636764a086aff9152a2f3", + "index": 4 + } + ] + }, + { + "public": + "xpub69Fxve3bGoZBqDyvkdjGeZyvv1RUbFx2eF6LBbdtX5rW2mwrzx2tR9ZTMKjijx4Yh8Sej7RXx5t9cnCXUdjFtSgdxSBtdXo4fBBmYhyWn58", + "private": + "xprv3RCTiHQXREyNchS7xn2GLXtRhDSgHSm4fJPduVuzNqVtuDm6eUFHkQBCFx1v9W4LZ3DAiMh2YmaJXHqUYoQDRjkLjBNQzaVDB9EhDxZSJ8Ap4UL354w6e25JA6C4ZCGsjGdSaeBwPcpmVHUFqXJcWZn", + "finger_print": "ba681ff1", + "chaincode": + "a8b09b092e0510938e8516ff816f95952fc9e231d78ae34b7fa49b1cead692af", + "index": 2147483651, + "child": [ + { + "public": + "xpub6BPgqZ7EWBmCxm768AgKfyti3p7aSXMCMWi1UQZqYupTyUYwDkndYKoqgxYyuKWNqP8u3mJYhGCz6MT3EAwmoYZLRbGt8AT4NHxsss4JGTU", + "private": + "xprv3RqDQNgVbvKTcj889o1jgidNVGHTJ3QMsWVKYLGqnFhvUVKaGMFCF85a2kXDSZYGBxzcm9AgSXx4RWpZY4Xr5Uuv5SxZHynFqEKdkhQqeFAKjaGvmNTuw4m8Z764uVwswpjBQM4Br9z1YveRfsheBEZ", + "finger_print": "dc9fb826", + "chaincode": + "70199e92e367e0919f15d53041abffa6e50fe7c54cdd1345afa4a95034edb187", + "index": 0 + }, + { + "public": + "xpub6C2boZzHUD7h9bhZo4eNiqL6NkRgnc18PmRxMxoZbuUUTgDNN1PgozQSStutfARGchyTaJvbiaDNMAV8Cwej19x7DV68jyADM2PzMRLXJAB", + "private": + "xprv3S2BQMcYA3ySTFZDmNZnoTqvqsi7qRNAZX8bn4hjtjRx3JE7E68P5qJCJ1zAebho5rjo75VfWeAxctnt7xYu1ndJDYJWECPnPzCMTuhHZKkKYiEriPZ2PnMgh2ojKC59qehKdajqa4dHkDULNae3ZEB", + "finger_print": "3336250f", + "chaincode": + "b41da50ac8d2032a2ae4a91d67339d46e4fce2499a21de1c38dc55605632b8a9", + "index": 1 + }, + { + "public": + "xpub6Duw3ZT54PzATfkDWJXg4BqvhVkfa6aY29QRSD8cD6zfWbYzz8bYACqP4FmhvFpLCGoHMNB7y9oK5LFuav9SFe3VXVjsHCYhYzHJ8MHpHFu", + "private": + "xprv3Saf9Q5qxH7kY4pavUjpLZGnZyk4TicoUWF5e1xscJiHhftn8Ms7nzpbBrUcmyyBiyNtPbtNVHySRKSt8y52z3eroEViP5ktG4V93CFYvifkih9e3XUkr1Q8C2XZvfYx5h7eZ9xmb9ip23XbMcwRxMj", + "finger_print": "33abff33", + "chaincode": + "c4e5ca56b04ae3f6651229aa8f4f4eadcb51c28982e737ad8ab314040430c511", + "index": 2 + }, + { + "public": + "xpub6FkTcehHotWavC4Pj82DxcS49QLtLp3h6oCBJcobphoF3nXDhx6kC2Kas2HgAcVGmi5Z3poX5kwAvwDfP1cCAmN4UHA1fbrGfd4j8r3ebXu", + "private": + "xprv3T8JZh1QGy78sSrhjm64AU48TeQcbK8wyPy3XtSHhhtWzV2tjjSwFSUggRKEuCn55btpVsfrJbLbmMjDfXQFb3C7bt36utUMnbJ3DdrCCdTqUtBkjbDZYHUYHJ7q4bYben5uysFAbnFhjLvkGgW9Lm9", + "finger_print": "2d8da48e", + "chaincode": + "1f9ef83cc2c9ea1601216f84c7e7634b3eeefb3f2fb4b9dd561484d8955b83fb", + "index": 3 + }, + { + "public": + "xpub6K2d6rso5DfuP6CA7xmSMy5jHaNWtKXKaKgXns7M12RrHyA7hc4KgRFBwKA86sXhE1nu6P1SnskKHQg232KncvB8seQsQSmk48KJ1xFGgwj", + "private": + "xprv3U6o1KKnncvVDFuRcmpxDqt8nkgTutj1rPJshhAuaSXq874PxyBkR9Nr8TWm28sj6Xga41fbkAP7GmAgU9YKeYj5ciye3Rafk2cKGv4zUvzV7LEyGtCbyi5TVzZhwXqGoDuiDz8VJwKcfXsozE1FBEE", + "finger_print": "eb9f19ff", + "chaincode": + "227a45ab37952d91350ad21883c8f22a8628118ee574c9053d22727eab8af1b0", + "index": 4 + } + ] + }, + { + "public": + "xpub69Fxve3bGoZBro8hNxJ7FsE5gyeGUtXgtQP7wMewUJjihoL9naDFXKtgUxY5f8567kb3FfK18t8bemdGwr2UR3k7QhyP2UDyykhbc5omRVn", + "private": + "xprv3RCTiHQXREyNdAWcsvscj2ZbUinP5TnsLwgRTpdwZiWChm21Zb9p3axkhgHD6H2k2GVUDDkznSWrTWTT5kiHeMLetKd3uG1crenTUpZ7zSa98mYppfuCS7TAwwZRnqyrsHVD7oxKkUE2i8CYshrzXUR", + "finger_print": "ba681ff1", + "chaincode": + "468a892ecb1eb4574f8a090579a348407f477adea60349adab3118fa473511cb", + "index": 2147483652, + "child": [ + { + "public": + "xpub6B4sQ4Y6hQj8cVafE2jykYrKxatqbGJyaVLvVAyXod3rTkcXxJogqCjLn2T7ahG3VX1EvRcxKZFJn2e76Fb8DgawPJ5J1GRrmZNXKrkPqsX", + "private": + "xprv3RjdBJtx3aBbrBLDTDo2Jtxso2L75k2ctgJuDFSDzYsTMTCY4hASUY3PZunQt4Lnp5TZM2ZcQrxPdnvpcwzKDbyPd4y8xvfzrz6CMFFxKNYGvb1XuErvGBGrhCUiZV24LKgELHHb8puCLUXbvU8QyRf", + "finger_print": "b07b885e", + "chaincode": + "d163e01600cabebaa5a47a742f8d00fecfc9eda4a520963ef58762493184ae37", + "index": 0 + }, + { + "public": + "xpub6DQ8TcaVb5jV7QVBfMJv94h6E5XCFfe5yuwXigy5deGSUzJFAz2Z2hJWo8NQzWDmvnphAk1wGBW43aEA8Q35ZPxeKvJ87HaHEmmkZfZwcZT", + "private": + "xprv3SRoeZtXVGhdppVBGhXGXQb8szKqEFWAuBf7WEoYhrXV1tpuU4KokQer4hfesYxn57UJHs5aRjs6DQy43C2HD2pQCBvBH7V2fSzNEzjqkvEq83AZEx6Ji72dFnLPcURtaoTgxfbcxLZEEjbFUEdvCzk", + "finger_print": "edc32404", + "chaincode": + "3cf7ef34f6073aa0ad16aeefa3ffd87a034a26f200cd8a7706b174bf02d2471c", + "index": 1 + }, + { + "public": + "xpub6FFRkxJS7n9ptMnS4QQygFcjRcg3o4kvcbsqxoecUPdzaDPT5Qdu1nyyeM2dfvPA8EUdq86ZRfn6X8oRV8Dv9FHm4sBuCJEDtLw5k7WX42V", + "private": + "xprv3SygMWh9G6hqAsHQ1Utm6KQumRTVZqy2La9ULNtSMLRGJEH7vzUBoz8kwjbShYpEFKRb1H26QuNiULMKJrbf7zpx2zfeunewKqYZJiKVHeW9rrb72XNNmbCGyCmeaLmAgZKstLECfmwrpT9KMfXQnAP", + "finger_print": "e973e196", + "chaincode": + "9bc55f741d0a817a33c2006cf0b6704d75a6307fd7b753c06e4299a90743bdcc", + "index": 2 + }, + { + "public": + "xpub6HHpeFvr1AXwNpLCmCSc9XpBQrFJAjHMwbevvngiEZbi4ZRpK17Ae4Rhr8i7BPqmccy6ZgzNHaq5RmpW9VjK1vFY657s9YLQqCnDWrU8ui8", + "private": + "xprv3TarFBLjuigdF5VWT1nyoq3h9hcVcWoqHNAHdUZnW75KXx97niuVXXktk9Te8xJXVaDtg6K63enGT9CMUibWvwLBMapMbWw31tB94YAamjNFG1eiwHPoj4H6QshXCEryKMLLzZTvQH5KcLxTCpiScF3", + "finger_print": "ff2bf744", + "chaincode": + "ddedd61b3f5826f80af6b2adee3f908bdc80d079bba1c1064dc4d32c086e73fc", + "index": 3 + }, + { + "public": + "xpub6K35JQcbJsNJcFa1VogpodEfYgiuYh3Pt7ZnsAikLKZHA6b6sor89YNKCJQ9F8xqtgf24QuyZ35zaexSRrwu3CatvJ1neQK1J3ikC4Exk66", + "private": + "xprv3U6vniWjxzrKLhUw14dAPoBCQfsTxzyxqGCNBQ7scFYsHdoe7VZfAZB1GtXnA1G17UqkeibVQSwyg1n9J8B7fy4ZCQb5m4sL4aJVXPpXe9bzuDW6uRQLXEPvH25dv8nJoVexxuntYfBSrVedUcBXQW3", + "finger_print": "ecae5a61", + "chaincode": + "3bf02a64732d2589324e588de124820d4114bb8e95957acb9425641e301db9a1", + "index": 4 + } + ] + } + ] + }, + { + "seed": "0cccb71dae334031be56a0e77e020b50acf8679639fdc8be8b948b87cceaf91a", + "public": + "xpub661MyMwAqRbcExAQH7t6vaLzmRU5TnwwqX2NtSWrxJbxb971FzxGDHKncYgvpRm7bwt5HnDhBJTBgiJjppzC7uihKtpmrTNSFfiutxVizjD", + "private": + "xprv3QESAWYc9vDdZPU4vKzZUdQ1nRp75pv7iJj7skf1Y1xh9jmSksJZZ6fKZwLt3G81hBvzJaV3iF4TqQRD9wUsQf7qQ3qPbJ9xdMQKXCNS2VxT6ebjajgzGcXNDdEZMysfdmBscZWmPDKpgYyeoDLroWG", + "finger_print": "00000000", + "chaincode": + "29179c4b6040f23e7031e3a1ca9d5a7dcb6d30cea3e90d6d31c90c1a4a1be7c7", + "index": 0, + "child": [ + { + "public": + "xpub69gcGqHYHTyWmuMTjSq8eCT2b7wKtE5euuENhSjdBu8nay16f7Sfnp8VDE3zrDEYuyjokW5qrBsGatbJvW8s7Psmk7wFH63df4Ljipx1KsH", + "private": + "xprv3RKnKNx9wR587qXqdNgEcmvcUZcQeq6RvCLv1xcgXoXnAM9ksrXUo8CrWJ4z9p4zCKZpBUV6Ez3t7xTv3T3aEi19mgAGhb6Tk61G68mgjGJVPDpYyDftHKWU4yG9QcfB4C64jnSLJcEtjTfYCzM7m25", + "finger_print": "f436d6a6", + "chaincode": + "10c54ba6edba5c6ffef738fc647a3169ce45bf1f433a8d63c1aaf0735829c99a", + "index": 2147483648, + "child": [ + { + "public": + "xpub6B23uPd2LTGvwusYMcmsxiANXHwryf4WKKCZrehgXWnfcvaVv63Y66NyLZv1ECaV1EQaMTU6JND12woGNZ5tHQ24CsF9YhiKs7kviD1Xb9D", + "private": + "xprv3RincNHBG5jG1vuoxoy2yW1UgmKrqUQN4GVbo5RsAejAbCWrs9h2xrbQYwpMkgn6EaGnFKaYTjCaZf11BLNG8yZh1hJJrn3QqyukYkymk1QSFStZoPvT2Q5jk5W5a2vaJyLXzhUPgdsq77DNpfCCrRQ", + "finger_print": "a9decc8e", + "chaincode": + "24f4b1568b052e7a4cad9d4acb8b0157b3452f97edb8abe43ce05feb090ff55d", + "index": 0 + }, + { + "public": + "xpub6CV6FaPgvHPRfTdvjdMGbXSboem9AFdx13F65GfGF1cpfnqPgQYSYJqTK7PJH88WSF22Rp6Cm7rbLTyHSaC5gCX9d9Zr7GkpDFfDJeGRKt5", + "private": + "xprv3SA3pkD1SuBC3UM6NpmH5eBLdmdPvDWaNtaQvbEkoXmwhqoJjV7tz9qwLduT5c5yJb62Dhzth2FUAYTejQ2fij3vu2r4a1EAPorj8TPBAdoxDyHn6oUE5qHjUxhpPiqqVx3tC6uV7CgUDgWmnfDkBvF", + "finger_print": "7159b7ac", + "chaincode": + "9fc8757c98f9f7e9947ad1fa7469f46565c179296e7f319ca80994dc67125b9c", + "index": 1 + }, + { + "public": + "xpub6ET32Ry9kKBpdy114NzkYPai4kZgRbCvMPGJv6uPbqRuhTG81aKNo7W44XFAty4TZmn7vJctZ4FmLAsQVS8ZE3QjeTjygbyKMhPoDYz35eA", + "private": + "xprv3Sju3G2Em8cFubH7SQGYmcjLUmjTMbpDW3fzPrkFdZRGUvP1qKBLJymHp6AjRqqW6GqJyTaVSWDnJJ8rLtNnfydQidoRqzTpwYZhkyrbA3ZZLXKjyr3DZ2AGnqQrr4VXWTbhNcokabUdduwBJWebJ7U", + "finger_print": "7ca174a3", + "chaincode": + "754f579bd6bbd3d4a55361cc8fd4d98aa7ba30559bfe68670249d0cdbe7a059b", + "index": 2 + }, + { + "public": + "xpub6GPQkUUUXCDo9qpxXEPMxMaFkGhmzPaFpewNUVLNb8bffdgJNn3TrB74kLUGcjbPRjVaiSq71Gv8gVSvcKpmwxzwrTRQ6QMMoiCmiuzLSwd", + "private": + "xprv3TKHD3a5y8RDrWDVES6ayM4ZE5Xoh5g6aKnEqc57oXgjAyxQz9N1QUVqw784a9JeHoE2d6oUtgEeD5hZp2BigZDR9ZBmZD51JdihsYhuNHfcvi38fPRPQR39FignTZGkFzWafu68LNvmm7bfT9W6Qvx", + "finger_print": "843a86ad", + "chaincode": + "c489dcf540510a60c426e316ccd88ca14049018058284555e1321130434a1f71", + "index": 3 + }, + { + "public": + "xpub6K3U6r1RHVdZj1Q1Lzozfw3yQhSexvHGhMuKYhovCqHAURFVm282CAqLEF81beewVa4BtB3BJR5BZkpciJEXmDAioFxYfAHP7MUq36zmQvP", + "private": + "xprv3U73ZZazA2kgyD18SS54UWMt7AwoRYfHviQxZKyq6U5YyxznfGkoipMLhovD22oc7MsXbYEWaHbxEL8Axx7Hhq1DXttLDdf4ipyLkP9anS1BYiboDzGVADwPtpEc1vKqYXRnYFLgTDGjWrVi5AC6qjz", + "finger_print": "ed9a6b3e", + "chaincode": + "8d1b1bb1e90fb93c280438bbf6db1caaf7823b2591d4abe22c88929a55e6d126", + "index": 4 + } + ] + }, + { + "public": + "xpub69gcGqHYHTyWpefG1rnc8g9sjzbBnxYVvf64k4Q5QD4LWrEUXzR9zdxAEejQzwrSeC5AULwAg5UczTod5kmjRy6Dhvn8CaCVXgiZPr3bhvM", + "private": + "xprv3RKnKNx9wR588erde8FyPmZtS4JwBGT6RPC9vmWvryvSsPut2YikSdHw296whncbuA8YyTxHG2jJGoxDQ1m5UvxxhoZdWA3z4LCPxbLPcCi7y1Vfz1jZRc4xzYUo7Dw5GRfKdnDRovnJE3PRe4uJGc2", + "finger_print": "f436d6a6", + "chaincode": + "24a694620aaa66457023da06651804acd4708517fb9557561bb1395e1823d826", + "index": 2147483649, + "child": [ + { + "public": + "xpub6ADCkL5Uru8mpirBrrdbjVLAtTNKjGfF2KmdpNfQDALCys5NDM1ou4jaz4JGFYde2CyV5FYjQD8FV7gsbRCosjoE5aNwoVFuJguFnbrZKDX", + "private": + "xprv3RUsSrbGu9f1kzqwbEmsQGUMc1kEBc9vEMo6Z8cwHNRoUM68FYHejhsznuw7iQmkCdcA4umFmJYgk6tW2MDyHg3NbLch9dSbnLrHzzUm2Jo7suiA2eVJL8i4qXYkkToFnrMJvaKuHq4q7Ls94GsjsHm", + "finger_print": "3bfacd90", + "chaincode": + "6f4d74e2062c456eb0519ad8fb21e52fbc9a7a4b158bfe243bf993a93a9147f3", + "index": 0 + }, + { + "public": + "xpub6CSTtgBzYkrncJq6s6Ewu56qssHA3oA2Dd2cBe4bCC88kgv5DKGyJeczAJ7sXCDE5Dpz6Qq85DQy6irEsC621eX9U7ifvF7eekkouFsof2E", + "private": + "xprv3S9GZdxvbjh2Zvmc5gsFzhbS5m9iVyMSDkBeF9WTHTDaFdKRnzZPzXiEY8qCHdqemsgss6pYf5HMgrqBKNvXyEXwwMfAnVFuKaWU89WYDoL1ABvkNJ7a9fokAF4QZrsmDtWJzeDdFkGQGiHGPEJqXhY", + "finger_print": "6b304259", + "chaincode": + "03e555df54d5fb65f4f1ee0fa397146622478fb5e3c012fd57ac097ab82ec7e8", + "index": 1 + }, + { + "public": + "xpub6DgoM9BRP9167gYuw1YFkeGVywgo5Y3asmXpWPz3TNHYn1Nbu3qZQrgVLVugcF7auYqrDpDuhCAztQPrj4rUDPKvYHjqWyhU84b5BDwRPb6", + "private": + "xprv3SWksfeyAKuYs5TTdTWPVr14ZxmGDHgTCtj1EDcmqFDqQ5Ao6Xbc55HATPd6Ndd6jUen61XFZi4PV3xb9xQAg8Z4cBmX1L9hkZaZYYU1Fh1eRiEG3W3A9MWdeJZULy3jNWJEGQqVi46K9nwiczzArcU", + "finger_print": "14ddca80", + "chaincode": + "244775d351ed394e448cc0af51c6c09eb420292930c05a0066af136f3c1004f3", + "index": 2 + }, + { + "public": + "xpub6GPUP86rDxfRUSCU4w7BAJfoRAQFS1HKvpVqtnv1KoogYpKtJbSeCnPZzhmVgfSAKBqBWdqz7WQiQgy8HRqM8uJVE28ad4wx4TTfbSxMMKQ", + "private": + "xprv3TKJHcxuEQpJkvHgxnoiU5UVCcNBy5nxxFZzBb9WMXha2KbHM5FZqvtoXHJ3ECyjfzLYLJZb3aaxWYwgrkppPFNtRgvvbx4KQUX2CFZ9PEShkZNLU4AoxspS8vminyfnZBLaSmigBnEKGKsTjGXHFYr", + "finger_print": "846020eb", + "chaincode": + "493bae714e5d9fcf19c9921a9e278f2c74f71b821e35eb4d4255ff2276a3b712", + "index": 3 + }, + { + "public": + "xpub6JQB15storbRetwg7wy2xs4J8fpuZHyKBrbax1PDwY3rxdzafHJRweRDVVahQrWEuTJQ7VzQaaqBMBR7tQzBBtwto7RXxauBqyadmHup9E9", + "private": + "xprv3TuxzEEQ5hhNf2Ljdgp7YGRqAECwpRPgUqh6oSJMhoEcCVSJ4c6bSi5XYQMinESShdiXp8y7QLPYkYPAXth5YUaB24J2tCGV9sHW663RaMwHAMxK6YgCK9cvKouRKGddsWJV7HGMMgwttP6Pt6rcjz9", + "finger_print": "961ed5a0", + "chaincode": + "bb92b798ab6c0e4fd49878d72a5094123f52a399289958bbafb448fd42f24cb8", + "index": 4 + } + ] + }, + { + "public": + "xpub69gcGqHYHTyWruQKK1G62NxHWiKMyEhkydgzecSisPdZyxUko3jMPyVK62PFbvys8Hrf863cM1BrADmNRPXnGYrF1DVaiFydSWkpdLZUQ1o", + "private": + "xprv3RKnKNx9wR589KhGfi6MqxbaoyHAEQrRTYhnybvkNiGsfWuAza9UBnwqppykxTWGTYRwanKoEgsa2N3cw7dT7yhGg44uzS4bYLSyqbu2cdC7wXknvNECfKp2B8fozBh3KwsAPMT7Mg18wdjggXHMYCz", + "finger_print": "f436d6a6", + "chaincode": + "07106744f056bac7d09f3f0a139503832cae2469d9592d2a8235c800935968ad", + "index": 2147483650, + "child": [ + { + "public": + "xpub6A3FknbJvukNbtd4uBaRX1cDVg6hRp9ZDQjCJwhRVF7PUHtF6e3n9rMApQEFi2aqLR8rNmMNBUVbddn5ot6Ho6vpsKH3j5StNCEfSTxavpQ", + "private": + "xprv3RRv3WiFg2sQmKdDobiGzkghbzAzqzUZMGXwVyGKaQpeDhCMGuaj6MsFg44b3mWSTreGBWZT9UPsyfZ8BnSp6rSdtxLzdSzoNrhALSYxpvDLFMz2okcQhb4CZbU3g2Fbv4S5ttukFqYi8H3bw9PF9LT", + "finger_print": "24a4eea9", + "chaincode": + "bcbe3ca71fab56e5362e33d13cfb290b9ae4127a5510ac8380aa1b2c354c6022", + "index": 0 + }, + { + "public": + "xpub6CNB6uPuP7rVcuGAZ96NviKQYVoz98RFqWAo375cJmnKNGn81wqshsgRssx7Ce4bhxRmXUqRMY4Abj8bQmWJ7h4AELAYMsfBPUhQC2KJpop", + "private": + "xprv3S7zf6mxntEbjfsFQxNHygKY4Nm4js8wPsu9CFc8M8Rz4bnLDcGAsmabSm1vcmQE6kWFJ6p4JJNFkLJWmjjw4anQ6cDxvjJ6T9FoQetszgt5yZPJF9WLWEy9xTHWZPAvjGjdj948fCRhjp8k4tGpZ8y", + "finger_print": "61206d86", + "chaincode": + "5e0d97cb614e055f82ae13c448b8f9ea492f6a7cf2288aa80d516ada347dab78", + "index": 1 + }, + { + "public": + "xpub6DdkANwgtpdt7vk7sTqHvKkYS3JQzxLNXn3tSNAGPmjzU7ZoqmG4bZPfTsnVEUhXkG5L4XM4JHD6cPE1y3kywHXqvSS8QXDtfd5PTVGSd1X", + "private": + "xprv3SVrEqA24G7phamuEsWen9AQ8996Vqh7fLUPD9jhNRyMb8CJfroMR7UoH8VsoVYHNyoEmYNv1XQwyXDSgiQCytNgQHNG6c5XesUW417pcFeopwd81sKfeNu6hMBM8L9RQqXtBqzmojDhozH4EeaDRmo", + "finger_print": "0db34e39", + "chaincode": + "bcb5b22f5a58e8ee0d86afc884feac3dba04f705246cbc8df4e0299f680cfacb", + "index": 2 + }, + { + "public": + "xpub6G7g8WTf8CahBixAfvvgNaRpCiitorKrQ3dkB8n26HjnE1tmJoy723mUk3p4vVLkgJ6Vq63hdpoos89MkpXfAvohibUM6gajDbaCnGcGgYJ", + "private": + "xprv3TEc6y2tVyP8uRS64kqXiEkVaJhbHG6F4SpPGD4v6WQYEu2bZgdp5aHuKWMr92k2TEUbMf6FLrzHXVieR6RGQHfZrQ1Jddda7E2qhU4KL7NA3wbHbgfqY4JAMsd5bS7Es8KZJ6AhPZxLoStMMfr5aiN", + "finger_print": "5f51bdb6", + "chaincode": + "313b63a5a64fd55b19b8054abf784f173a1752a46900250ac28bc91d9e95d474", + "index": 3 + }, + { + "public": + "xpub6HeHC8sGDJiSAQp9kx9kDvTQohigwjJyMHzu3huUL1Lo4Q6gZ63QQa2CFUyyJjvy3z7Cuvc1v73iMcP9h9TPwg32nnoko8GiHVwEdKjkeqf", + "private": + "xprv3TgvixEmWQJJMFDRCrJCWCDCDNUGNinQpU8pyknywibWbWuSdCTCXPz1T4ZyjrmPyFKBf1CTmGWKetHGgLmqq1tmJfABykD9NkefpuDwkUr6WxCqsTDKxTL5MR7M6UVVoiuM67oVJUdZ8EfqHNGieB8", + "finger_print": "2f28df41", + "chaincode": + "5b12039912e15bef176a66924fe09062a8728db4bd5e789c074768c796ca06e4", + "index": 4 + } + ] + }, + { + "public": + "xpub69gcGqHYHTyWvcfAj3DEEZqdV4UUKUE36HNRAcAH7HfiMbti9pFmGP7GFL76re4vXTNLKJe4T3VoxQm9U7qDXLgdprcNx3HwBqaZwj8PgHc", + "private": + "xprv3RKnKNx9wR58ARe3fDcH7Grgg3w3EuxH7r8sAqeTfZZQkjtkiko7aZPZP4vNETxUDidixBkYPRUDPMQD9tPumxRTcbro37EvKy1QWW9KoFG66FNndJ1RxTyYiJC4Xse4d3ziyXp4aBWWcioYFfezgPe", + "finger_print": "f436d6a6", + "chaincode": + "7bd591d27a5140f7f700415381bfc029d9fbd036f4d8b39a0991e0f3a1a8fd0c", + "index": 2147483651, + "child": [ + { + "public": + "xpub6B3Hi7epqCBvBxkrFeTFgUqZGPBNSjpqE2SQtqT6Dfz8GziCMMEAgC78F1N7AuQwsrh2f4EKbJSkJMAYhzwDtAAhMVmkEDd546T2c3FRHjA", + "private": + "xprv3Rj9wYpEtuMMoEHusmUKHdrD5AWTPhCfa74J7HBWP42E1CuL97ESMes9iFX48G7rpaAr1yvK8QdADdTJJth9MRwRahfCiCtSpwZwNpRbfv2DcXquqhfkGpoktWMfV2xgWfaaiMYyGDWajSQEUghHHzS", + "finger_print": "acc63c75", + "chaincode": + "e342563fd9bb5cb9e48eb7d33bc407bc372fe63d3f1019035033ecd0121ad130", + "index": 0 + }, + { + "public": + "xpub6DPXz3dPk59FiF6GebJhdzBYxPoFCxf293QP5VHHF4Eq51Cmn2RcyYHJ26BVsCMQUSVj25sUz3z9sSthHEfthQC8ag3T6HRhQ5J4cYj3LTH", + "private": + "xprv3SRdQa8f74ZrmLYH8HN2d7zdir66R3zXqfLZ72H2jqdGJTARzcfzUS5QFN5ZNyste5cFv8mCNQyqX3bM8a5GQPxEUEBCw4uz4EGsqvHhdxma1b7V1Wu3YDLTgHBoNDync2hDvjscHHMjWv1PLdpCq5E", + "finger_print": "ec5e339a", + "chaincode": + "67e7bdfa78e63768826f085f6d2531b3191738d558c40ac5d27bd8612f0bc854", + "index": 1 + }, + { + "public": + "xpub6EKpmUky9AuhZarcw33ufysAodtuLA6GQNpoG9vEetEZg3pPNuFag7ge5n6jeKzUNLBJksxrnXQeq2f13PkgGfP7UNw3cwfopqX93NCqDas", + "private": + "xprv3Shknr1dmXwDbXnVEKRUQJ8yZjqFxfnTubrn8mJcTw6q32Ft8Nj8aeG2cv8Zqoej2FwcvJdeExV3RrYEnCvK8x6Z5T9L9G9Xmxzg8NJA7PkSY4LJgT292S8udYd7KE1UUbM6G9jASyq8LovC2sjMNDt", + "finger_print": "6bb70939", + "chaincode": + "2aebc94b5f4dfdac6208ddf823cfeb2f675310c906174bf0bd3eb7a1c8c1b75e", + "index": 2 + }, + { + "public": + "xpub6G52xS3PHv4kyitJgxo9nnAcxBQdR2qiJiB5nmnFkhk21ZCTmqubTHmf3TyLc5LsPuZCjAQuxgw7geRBjiUzWfqFNEz7LMVk3u9GNMqUBqr", + "private": + "xprv3TDpbqxtNSvSS5rqdmqB7gNyxQ4Uw88WsWjmjfatyXXuNzA8LUxUjdjvRX5DAAXpfiLV7bowY3qTBtAcUdZrVrvgCRCZ2AGGNFhvw2Wxky4H8n4NQd2m3Qza9QLwPJJQeunLkmLpnFuhmgpjhy1MwFm", + "finger_print": "591fdc87", + "chaincode": + "3df0f2e9ae0e544d19899174fd56e59338136a52b68067b8f7637ea82ae36449", + "index": 3 + }, + { + "public": + "xpub6J2eHB2eTUEyubiLw3HVohT9Y95hLufvABW4sbfotXVixNp7ufQ7AEoutnH2waFuvJZEgnw8JN9ZPFMhjKEiZh5wcVRkXy9p9aKZihfL7Zb", + "private": + "xprv3Toa3EqJSqZtwUvenSBy8wwRmqvVJHoBKukXBckrgKzVSAHhiKcvKXfqi5zN6j8ZWsMkZzYPDYoaHSidjdHBDMqWScw2MsMvCASBSLijM2UB2bMg24ridMyDpe7Kw3HewpAvQ5PwX4qwV39fkajBAjc", + "finger_print": "639e38df", + "chaincode": + "20488320f909dff90e3367efafce81eab8b09eb0bccb48b7e9a4657a985f5323", + "index": 4 + } + ] + }, + { + "public": + "xpub69gcGqHYHTyWxEmuMB4VJwTrmcWAbPWm1etzmGQQN5ng9L853X4dKcYvKA55FUrHooHk8DWFXAfakR3VwTEk4u3GR43TU6zwbRuVk8ZTNUe", + "private": + "xprv3RKnKNx9wR58AubdULPce2nPvDHSeDRis4ge799C6EPLajf5V1VMJXen7FrnqW53s6x9JrxdarMv5AjmNERgmxZyrVQTzEYsUDh8uPGLWsKy9RDixXASCnr4DAHVuK6jHk3UZNzKC1HZcrwBJWQJmUG", + "finger_print": "f436d6a6", + "chaincode": + "1ed1ef3641d02e79f72f12f2d9a3b4bf1d64cc5917cdd851c6f612bdfa0658a2", + "index": 2147483652, + "child": [ + { + "public": + "xpub6B7hyjBmmTihAih2qh4k1Yf59ZPbh3G95pNrUUY9A8QSS9nBD2yNyh6AUm6LST7PSmgfZKbMLzpwuLnuhNqz9KNmAKfH4c8yfJjtrtyetfs", + "private": + "xprv3RkU4xu6pHEQqC9tcNpXTb3cxZMPr3UPbvgPawV2wUJ98s4nDAPBtqxpmvWdXiEgwBaJ8jCrE1c4RSMRgNWQRmdmQmMGwgeJRSZUGN3NdQLSRBZ6xAhuEx1aWpmE29mLtRpMtCTRYYMmyMQ4hBnKPyW", + "finger_print": "b72382f3", + "chaincode": + "30156af72bc98a805f71577b471bad5c944a236650dcd4b268a486aa218382fa", + "index": 0 + }, + { + "public": + "xpub6C53a6tAJEDgYAAeGcErucXEnZG7D2fjwz3W8QKZgEXV7yE97aCRvqnbYAwcHFpeb7jzSpa83ZuDBkBtGesSKe15veJ8jUqFgBBqPde2jXr", + "private": + "xprv3S2uWxZ2m8ephBZkpynK5inyi7p5HWf7dJbRQc1W27SSEpSQJAxwc87wEizQ541VsXLeKuvzSRBNDjU2J5zFxGyf5phiByG8avhpTRUKuCcfHt9qR7t63rcQdj94GmoKEJyPGcRRqFz9mC2kwJ9QQHV", + "finger_print": "38f1eefa", + "chaincode": + "7cdcde79bcda1ff0ab1e962b839b12cf8b85a47f28459fd758a3015d55f46e01", + "index": 1 + }, + { + "public": + "xpub6EvKZBFLBmHvxWH6mVkpz89ZoKr3EFvWiRKgX8MLpNvTijFCc6qweJhMEXCnqZsjAtzxRD2GJhjDTqZk9M8BLF2SAZqKMmW7LCxsKTGgfF6", + "private": + "xprv3St19cqkWoS7YcfmMqCUXE9NmMLCtTuwZ3nz6Zw9ZRV4CNnTVXA394pzNpAf45cSPW9yxCoaUbmcCzGDaeWL5BJMX3vJydcnVRPx8n9Bi3EubYN5waLn8nZ4sTL6FhbyiN84ToeMjF9jp2pHuzAiJqw", + "finger_print": "bca2224a", + "chaincode": + "fdf634a67f5ba72ee10967c832e9bd6a9a071bc92a256e3814e8ea5fd9c299c4", + "index": 2 + }, + { + "public": + "xpub6FU5MGiB1LLvW1QDzZB4T1yLMw7wXST92gwX4uAzM1pFzbJzXjYsETcUVZp1ZrbniVU2fWCSP9A8f3nLSkvbnSTnVUteDeX6xoo3FbyZHsQ", + "private": + "xprv3T3SH18mR6a6G53A7axsrPxaRDMxic1TmaMdAknWuvnP8VFMhReRZtk3UA18xPNZFoHyoYmbhufEm71JxoN1rAkNVZgidDFqfSgUWeKcSU2Mqxury7yfEcAzSDeWL6HUXTdcUH9u5imNLgjRhKuMoAD", + "finger_print": "071f19ce", + "chaincode": + "39d8569c554bdddaf20f97f64ec337e8de028d5ebe77d79e13c9d5dac8e72335", + "index": 3 + }, + { + "public": + "xpub6JNGYjZWxN1W5vcUtXykbj58EFriQCkySiQHR4PQYFeovLsqLMRwqQeAjpfsQVakMt3SqcZQu56UGiwag4ndZn9nr1UVpFRUWoZz3WdD7bD", + "private": + "xprv3TuQB9PLtPWKYytZZfx9qdghoxbUwidxFZwroNe8LXw1BAx6PTEhKocXhT6DoM1N4riemmEqXMvV6kprEu1eV7kbBVVCqhPBiWXdGxwr8Yu3Gfjv1aZXkupeKrSqp2CUEuAHpXP78Ttaj9mmpnfQGu6", + "finger_print": "91a73fbf", + "chaincode": + "96945f13a539ca5fe3fd1a1f6c615dc19a5a01d7a5d19d423e31e0190e9fd002", + "index": 4 + } + ] + } + ] + }, + { + "seed": "a9d64951590b3ba9f0b373680099d7350500d8cb0e31603e33979d5cc7f86573", + "public": + "xpub661MyMwAqRbcFjB756ZJ5x1DAPp6mhPtCheTbwdD8RzvVNjjPRbpaa2PJs9Wote3u6ZgzLmNsfQ79zqrTjEpdwijaqzz6ySKiDN1hJ6nJmN", + "private": + "xprv3QESAWYc9vDdZcqcHrAdqvvbS5RMaEUJsne5t1d6NZBWsJ9NeYUdajCWFxdg7pkS5fCcDmzHWcD1xJkq7yNj1uWZpmXLE3Svuqy35Dj1es1FcBghjkGX9oTqhn7MbKo1Drtukp8ZsoHCVB4s5qiBaxi", + "finger_print": "00000000", + "chaincode": + "770ac5b8097723f98fc356f45dfcf6c1307df653cf9baa0f4f5669c28f61dca9", + "index": 0, + "child": [ + { + "public": + "xpub68QwnfASxkuEjKrKDki565eigVMc42xrWX3vRVyKHMqWZ6u6NR3epVSZs5Tmm4GgngBzuD8fJYonCY4V4ArsyY1rahcnJ8xk7M6ccSCJV4S", + "private": + "xprv3Qwu8ARZm39iqwgfeShrL5RhnL6anV2f8n59kX8zkzBpzofVwM1d6Jve61FTDYhFKyLkzSBSMra8qou2aB1NUb7Zd4cXZYCkALkRmWLo5v9tKy2Qxs48ptExmtgDTkpzDRG9pGgDqZipdi4VXsvUQ8o", + "finger_print": "476bc8c9", + "chaincode": + "d61da187b36dc095a4dc93579416a8a7121adc199a3b3c00d96cede2f48c6a84", + "index": 2147483648, + "child": [ + { + "public": + "xpub6Ayyb2ZPq3F1zU7GinNgPRera35J8HK6naGwF4niFNL2xqpV7qDCJfVu4uCryoiG5AePpj1AR5aVCPf1bonkLg6TyP4LCQ4iCsAbmHMxEgT", + "private": + "xprv3RiAsMt6qkb5ci8YPX5RTAK7EPazP3GzTocCATSvrsQS8B9tFcBYpSqhvSvKTa6wNJz7PngCoXJhF8nwMkoU5sHh2vRVH9WHTt8x3uH2Wxx31gWEPvXEMvDTMSYmfXExFjt76pLvYHX5GPGJjUsT9zF", + "finger_print": "a5011aca", + "chaincode": + "712ac3877febe15634f38af022ab381c2d990229c0429dcce84d6b7057ef8524", + "index": 0 + }, + { + "public": + "xpub6CECcNhNgw9iXvAHdKdUv4bbMJs3tHZTiBhxmHjzZvdvKgmxPqSwS8otuuDo4YmpTXu56xykHd2rW9aVdAi31u1JMeb2UXW8WdVbhTpcJr8", + "private": + "xprv3S5dGYtwHwGgas2pLSFmk8ya5eWMjkoAWwSFxgx4ReAMW5yoCWqfbbDcQCzMWeCTeHgHcSC4AcgBKQYpUkJApacxR26BQjfa6tJaTRVMeZkeBJLjSYvZDoM9TCkFLanZ3Z1J9SfFL616pbN9xGyPDpJ", + "finger_print": "4e6c0829", + "chaincode": + "386319356565026d2bc003d7f40eab50bb6d1a76e295d896140275d5da9e9a39", + "index": 1 + }, + { + "public": + "xpub6EGA1XJGdp88U8hHDzYDNjbtshDk3QEMsikrsZqRT4ppz16kAUgywGxQmSVhgqfqCuUTMfBDdXZNPxZeyY2kGgnyzzBmCAs51kyJitdkCNF", + "private": + "xprv3Sgfb7WtBSDHY3FAQacFN97dpULiq1jcSp1S9b1faMGhvwonK25bGasxjnsBwb8D2yhSKTTvwSW3CSHw4857Trswbx9ZRm7fZkkaJ5ZbjDmeDt318nxqtM1GYHFY6unB64s78SSY2oJE4oMrVswZk25", + "finger_print": "631c40f9", + "chaincode": + "fc5b69fa7e55a09946a6c89bc8d21c54b1681cec476af1eccc977b975a9d839c", + "index": 2 + }, + { + "public": + "xpub6HCh73Spedu93djGMQi4aCvMXwfiTTMgcMrUec1ojMs1HVSnUXw2MHQaToDPT9F7HRehpxvkrrrJB2cTec9BJBgzzNjRr9q8MLq9SwXkupG", + "private": + "xprv3TZKriSmNQdGJhriJL7G4pTGiqz3uSGpbCs6WmmKt778yxd6RP59NzNpGVwUDzvResKY4RNjyzNqQbkb2nDxHYkYQGuogX1jT7gpC4z2rCrtT8q9jXyfSV3hYAaz66Ar1suhWTVwViRghHyHHM3vy7M", + "finger_print": "f32369be", + "chaincode": + "cef07f5f36cfc3adafaa72d06fdd05f08f2b45780bb3baa20d5393677a473730", + "index": 3 + }, + { + "public": + "xpub6J1tnTF72SoXxLrNVQGstVc1SgFfxkofTYJeKhgqmUoWWSeCnUmWF214ioeYDf2tuH4cZFHnxGXoEqTUdbFJggVrYPWWXtE1sfPC78q9aoR", + "private": + "xprv3ToM7qNZ529BGVby4KepaSfe4hRv59kKGGWABUSaY2xnAFe4CqpkmqKadVmrGRqvN2MTg7md9bWgyYZdgkEvKBiW6dz5PbuvFX1UUzuK5AvfWwosYtVExvgpdAEqqtnAwZwx1YuPzHqb3Ge8pfSxEyr", + "finger_print": "61dbe567", + "chaincode": + "959187e5356a56e35ca672563f8f99db16cecc4812016af85ff7195546b08db8", + "index": 4 + } + ] + }, + { + "public": + "xpub68QwnfASxkuEkkrTj51iSdpQrUDcrDGG8kKJwaUd3zDSjmAgmvWqNh9gbLL48zUGWMeHAqQqJAzQp6aXMwXCBeux8uaHXL1YWBtNsXSZ6o1", + "private": + "xprv3Qwu8ARZm39irNLmTkXr9EK8b4ddse25d5318BxUt2rsZBu1xgAJMVx32shDHb7e4q92u9ph8vAfara2LA3SHjjVNza6ZgVuQmoAoFNV9PhGZjKRAgMebtG5AjSEpLVtcPvhNJEg4rAaa6QymgRm9Vu", + "finger_print": "476bc8c9", + "chaincode": + "65db060dcf174e6237a52fd1cb46ec78eb55d846ecd1e769255b354f9ad4432d", + "index": 2147483649, + "child": [ + { + "public": + "xpub6AmBPgL7FKNXTLF6uP1T8mnXogk3KJsG4xSGQxxLxUJgPpsrVbGbLSZgxq4CLFNjqD4FeWjq77QJFPvk9959wE9Wxf1Fwe4r6cYmPQEtNQw", + "private": + "xprv3ReNPdL5DmJfXUXhaukJ2kLv23HSxA4VCvyfREy4rAn5h7ba12CyYAigAJN3x2qWzZ6VcJsU99tyMheUVHxwoPVB32n9PRvKYPDvViVpC2Hz6P1tvCshX6bBPKD174crnGvDDotp62ghzvHeQY6rtAq", + "finger_print": "86fccdcc", + "chaincode": + "663bca48cd0932a8114a60fa34a5f8ce33dbb39889cfd51e389f67991479af30", + "index": 0 + }, + { + "public": + "xpub6DLFvUN7vD5H8WvZPiyvwirooFETKu26Trzr3fYfoucqZNx193WisYhcJEqkRdswK5N4CWmBenWWSCUobByufxTMNE6Jx6NWXpX8xpX9Pbo", + "private": + "xprv3SQewtPB6423HPybhQkRjVuhLzsFm9E7GNo6GojFKEUMQEoGdLEDHjxFiYeWnvqrXtzAbx1yi8jZoCrnraJRnx4XjLMaaZBR7CC7tKsouGZy2m5m4cyCEQJUcHLZ46zcZskA7hLbRERXTQ1NBpgBwpK", + "finger_print": "e4ae6782", + "chaincode": + "b6dbf0f9343381910f2416168986efffb69e1c6b58c7469cfb2b5af98d443d0f", + "index": 1 + }, + { + "public": + "xpub6ExVk7FcRoVeSUS9tq8BvdJBjUE6cN9BdqV5oFQ6LbDSjkoqNNuY9gfHwtN4mfegXMgYz8KpNciR2wbWJdgk9ViKSFXNEi8uph8V9ZmaC3F", + "private": + "xprv3Stedo66h1n7nQvy6yhQaAZUZrmu54PxUomVQkGQy2u1zwt3jBvWWZHhwqN33YWpgErWhWYqy8mxr9fb7ZJPLSwHpBapELy729Wr5Z8k6niA36qmHgipZGXs6wcDV1izN4MFgSiJfTQ3uQKrYuHgajL", + "finger_print": "c1bc9f5b", + "chaincode": + "3f985b7919fb317aac1b11363624626b5f1636274b64dcee843596c39fa661fa", + "index": 2 + }, + { + "public": + "xpub6GMbsi7zVbarW3HnUsYkicyFmFv4HJpsVzY4RQrf2XJymwdrpx6Ky8PpuRkKHvJPGcTJpuLcTMbNxfS9qm3Fw6DrxJoKiRciY4TSJ8mnaPi", + "private": + "xprv3TJk45yWxjA8uFkx8NsGDiByQzoWBSURUUqypScz1xMoqjNs3ji3zuyFxTnXkU3gyeReTkhcoWd51tEX1p3uDBYy1gj6d7CVn4BC35fpB9L5zUCYrg73U536K6ozpELmFNi6uKi9JUhhfQi4pvxpsAb", + "finger_print": "7ffcb409", + "chaincode": + "36e1a547a97ab70a7e3cc7829cbf0ab87056668533323513cd89b220898980aa", + "index": 3 + }, + { + "public": + "xpub6JXKhfP5t2vt7BdyMEnezNTi1AX2H3Vy1NZfgQVxqAkys6QRxTAJd14iU1SQMqKuKUTPyzibcunUqGWR3a2mozvdhJ6RKt148sMGynHgRsu", + "private": + "xprv3Tx6BLVkoK4eM5hPmEESnJfHKCRJr6TmGcXyHg2MkNvRecZ4GMTDA9yCAUFTdJ7sAbR6YVcSu3JerCA3w6azHXYwwmkDVirAbwW78oanfr2t4WLUYEyQso3wCr8kBttsTrq5mpehCLgwnezRm2PTZK8", + "finger_print": "a6e46a22", + "chaincode": + "d4c69187c59aed7444e5885a82b1deef2663acc486cfa33fb01a8bfd3aaf5c5e", + "index": 4 + } + ] + }, + { + "public": + "xpub68QwnfASxkuEpHHJK9HLUj3gpixeo3YXcTL369uoMcToo7AkUTCirrWHwSJ2ru6syQzyPch8VFFkoKq6Pu5q1BoFtfsR7ufAXpXaC2x3ZsX", + "private": + "xprv3Qwu8ARZm39isR4z26xoGWXqQyXze9PPpvKqYuNKVp2NAgZXY857fNuQbCnhQ7sNwCu8eqZ1gYkkWr33NfiPYf1rrLpHKJMudaWmZJNgyJzYQBVSgokH9WyJTAXoBDxRELiLeKEHc9fSUAc6eXWn7Hm", + "finger_print": "476bc8c9", + "chaincode": + "c7dfe70c0140190c62b9f0a986937ed5fc20f8d132b6ed916f2b3ab24cca18dc", + "index": 2147483650, + "child": [ + { + "public": + "xpub6ATfoAVWbXvTNHCcL6rumVhYkruSWfYXvW6bDu5Lsnsp75tQGWEU3msHz2aPB3VF7u88Wt4V3HJrs4fMX72yo8nP2bbWHeC79ctKTaTiyUq", + "private": + "xprv3RZAhLB2KFY7cad4bv9Bzj4JYggkwC3LrjfSzi9QEUVYmtsrms6WeJVQKNUzPHPt3TShE2ZBM4qGuyT1pBTE2PyAv3J6akHPkrmJcq67yhesgrFopeJuSqcUj95RmUVjbDA7NtNp8ubwUK1P5AKtcSv", + "finger_print": "5de9deda", + "chaincode": + "8fc93ddadff5d80bf729dbd09687034d81d361054648fe1082e34b383cd842f9", + "index": 0 + }, + { + "public": + "xpub6CiLggjPK9croiaDu2ZHFNiKkFc5tQSydqC7z72jSfhopFpjAfzhn37ghPHNMFqyqQMNrkFzc3oQNNqHXsDnsx5N3bvyCdqk3Zr4PanbwPu", + "private": + "xprv3SDz6Y5oBLt8ZmFe4qgVEJ3dbEe29e1YtfJH3NYQf5UCCbKNJjkNvbdgJgDw2Fh5YGbqoCUUecddhUXn5Tfob3x7Ca9BMmumr4SYum2DNy9w3Qs1DPsAxZ5FLEBjVaPDZ8PcxYz5ybDngBB7g3r52nW", + "finger_print": "906daa31", + "chaincode": + "be5a239e70fa381a811bd2f6bb944b674491297c687ff4aa4859b8cbf27f6535", + "index": 1 + }, + { + "public": + "xpub6Dfpyi6kUcLDRWmVie9cktWqiff3GeUR3TEcvZLrZ824JvqwRaGEcgUSaifQ4SP8y2tczQEfbjiU7wtFd5Q9nxXk4VboDNLC6AWXueyGr77", + "private": + "xprv3SWU8SeSBsGUSQSR1zWLYQCV8JnRZU8SisjtRQqzBpWh7DJMbtT3WpDqXxa36Kpq6eq6F5nBT94bZ8NLQUED1smocpTxfw39SuxyTNL9fgRq9AUc5VEesCR5eATivq9q87APsmVp2jz8Gv3prFU4DfC", + "finger_print": "12962bbb", + "chaincode": + "fe9f0902c4ae6d9029375e0cfaa7394ac23d4920a2eefc2e09e98fb3d0d387fd", + "index": 2 + }, + { + "public": + "xpub6HHxGLY64ezBhf37FHZ3uDZ7L2z47XAB8YWwCebcWeQfgosFpDvQXvi9MCaAhsEbkSiUo7e5BiBFAPwtVvsFJb8s3Gw9wGJDfu1LGESUuzi", + "private": + "xprv3TatWWC8CvsnAez7n7WAy53xZb8rqiZBRiFLDfdHuXvJaYyMBCk4cm6Q2AopZEcb8CoaYL2bLKDZp63gJ4qhFU24xNUoL939bUrodWnjYtfT2QTXcnUm5jsD32bNKGN7xmgYYychDETTvxLWdJx2vwc", + "finger_print": "ff7ae172", + "chaincode": + "355bd11b7cd40e04dd3bf7124eccdbe7aa585645c5b8f5da2f82c4c02c25dbdd", + "index": 3 + }, + { + "public": + "xpub6HycS4AMdFXnehjnzzkXbXdbX8BopkGnwXQ8VDNDnQ83gFYWJGnsHSXBt4EWd2zzHMp1CcU2DxuPP7njxNy6ph5MRDKjQjrntka681huy2G", + "private": + "xprv3TnfoU7c3QzQNJdYXFjH2zukEngLmzR46pE5zs99eLkZjRdnsmTc2nmUxwWJwY2qkr5fVpRXLJDa5nqHVEqpsZTapBTDeDCxzGCdcxjf2JAc1sY2QF6LwLoPFrA3FtFv9RhayWgCdYMmHgSpMqbSGxW", + "finger_print": "5c8198ca", + "chaincode": + "cd6884bfc659c3fceb5bde05c7337e75b15003f0ead768857b20397b4981f0a7", + "index": 4 + } + ] + }, + { + "public": + "xpub68QwnfASxkuEsJnKWdNeUtTPqGj9TBx6oVSDn8wLqueeaEYmFL2dzMqxq9t85UcShbQPEJReWUbFrP4wEsPZYq99BGys7uFR3ya7KswLLq8", + "private": + "xprv3Qwu8ARZm39itKCnTnm6dgYLTa4yxaaYMFbkoS9oZWn6dWRRz9Ws9ArBg3rdETGErXad4nCVhCoGHabAdY3AFN6GGzrhnSumACpcYxJov8skk11Bcvkjn81Ydz8CdZW1NPJrAHEhz9AvMacB7t5DoYY", + "finger_print": "476bc8c9", + "chaincode": + "f7cc39b5179c91588bc38e277d2b898753d90ba5e89307a412a93e2de08b6c9c", + "index": 2147483651, + "child": [ + { + "public": + "xpub6APvqbJxTsW4CTywR6WcZp4S3q4QjBxMsSavAMA5aVvmLF8D9h8bWBAMuCNDcUrvfKaeLCLyWzVQdJktAPU4NfmgC8Egks37cnzNnKNZ6he", + "private": + "xprv3RY4FEGqRYY9XoqkGnzNqkGPZRgnNvKweY1Vw1Mn3qiC6KXL1vwNkE3nGuyF4sCpnP4VmALqECwbzA3RhkSTDm9z5kA9RGnL9QmtY8X2irCfsA1bhP7MdbUHddu6eTt2gwjQEM68fYsx2hQFvceQwFd", + "finger_print": "552399d3", + "chaincode": + "e7de356fab14ebbeac7df3fec8436ec7679a77c35bd8ce12fce795e13b04e1db", + "index": 0 + }, + { + "public": + "xpub6D3XCvfwLq4UNxMhLTjaKAyvkQq1W5TC6cjU5CcpFEb9yVj6Px7yxLCCdomNwDQRCL8sQrg44YWA96ZmrxiQKvwuLeBQ8kgVsYjPc2NwtM4", + "private": + "xprv3SKgaqKdHB1ZgUaommgUmDTTnwJ7abPc4QtCSyWaRZs3AQ85RX7JRZUj1VfJyqbT6knDfpGt8tPtq2ruyoKHLmNp6FmcQ5FF4Wj1GHXap81RQCTMYYveQNLiod3SVLfR4FBVxawxjFSzwXoYMt85bNe", + "finger_print": "bd6c1f31", + "chaincode": + "10eed999d85557acc8bce2099f70c4a277ad4ea8a964f1a87a2df20c6fc45c6b", + "index": 1 + }, + { + "public": + "xpub6DhckVoXQz9MGPwnumaiCMkfgcezSN41ADhUmnGbC952DSuaQ1pfPyxZhPVwp7N6wc3sAzdcGUQMvrPoSU8kvaXbSwxG2vzLEbAQNonmsUi", + "private": + "xprv3SWzxPwzQZNvca9LfAKbpTfcYVjsNNtYwQT533YaprGaHjsZoEikzLWmUHVmdxcFjNtYSL8939BAcTQtFYUqcT5zZ2QSGzm7A2kFyNQs38Wv2xLqw6p4pE64VZPRQveqgc6VkWoPFzhjuyaXBtNZRZF", + "finger_print": "16c892c2", + "chaincode": + "1b79549c6f95a861d79a7b51dcdac212b56f3b55023df2f7fc85c52e138ed42d", + "index": 2 + }, + { + "public": + "xpub6G9QP8WwPPqfVyByNFhjAaYjGbkbgRtpGK4gkRFJAdWUi1whxkHsxQbT7x85xpgXb9w8VPiU9EZyMjfpWxZyfJJTtDuytbHrwnYcEM6LSrQ", + "private": + "xprv3TF7tGddFHSC3xpcKcAnhJDo6Uj4ZvUXvSNffT5VAVH5Hv7GtuDDcNXwCYjUuqdnfjH7pDNxWKQgVZnLPetVbfLRF1ro8RCpnBz7J8aqoe7kKTWSQQ7S7YjVKKnZaJXjwEL7V2EmcBN6iBbrbDRrPD4", + "finger_print": "635fb2bb", + "chaincode": + "38b850873072ed927fd87b0718f74b2fedd2f5e77dda22dba56d8900d04917d3", + "index": 3 + }, + { + "public": + "xpub6JJSPZfVFaD1Y4VPHKt1ZGsJ3kyYGqzLY64XqG8bT6oVsLPPy4WkjZNNRfPTgF7XSFHiMbdV8ciTx5uiD3e1rXNhhEXZpsLr2LpgTtjUhfP", + "private": + "xprv3TtGBT4h4egHW5rqXmCeXcncRWYZR344ki9CtcPRbLE1WN65LqNU9q4sipyXsKPaeNYawFW3BtHoQDkQG2pvBSaNWxsJhEiZWcySiqpVM8Mxjx3kPtGcDA5YdAt4b43Sa61i7EqNKPsaMmZVVqtcKVV", + "finger_print": "88ab243f", + "chaincode": + "5600cc057dc1ac40f61b320f3f66ecdd9ac5f8be003f7917827e5d46d060bf0e", + "index": 4 + } + ] + }, + { + "public": + "xpub68QwnfASxkuEthidEKBYMsJFYSedeCuwhxCd91TqArv2Dp1paAB3wTarfiw2dCQi7PdCUXaEvWjoJDqPu8Z4Q9pnGAA8LL3b2YL98VD7ZL4", + "private": + "xprv3Qwu8ARZm39itjFHTq7BKuVi4gUKYZnPczU6nikG3kEtZZQ8c9ce5pGhK9JsxiBShgqSK7xryCN4amPDiJMe9Hf9WWqQbYXoR1a7gyK73TQs8gx4KRmC1b1MSXkrLH6oad14dQC2roD5EtraMFzezWv", + "finger_print": "476bc8c9", + "chaincode": + "83f599ca0772b1e20d22c13c84eed6727d584921bc2f2f23504b61379c52020a", + "index": 2147483652, + "child": [ + { + "public": + "xpub6AfUcEDECTpDQhhdVeDF9WxyqJuz8TyPwrJT7PxdLSjWpmibEMnsZDDTJcTjvsNPEcrgB1XmLdjnKJtuVJQCBET41VWVwofPU8JJjzhMggQ", + "private": + "xprv3Rcg8MiVy2GzydiPDaNWnjxUXRdutbx3BC8FQ4Uf3tHhv1fFE9tTzm9pBmujjJRqnu9ZkoDcwXtoyZp73fvvzwaXwE1S7pyELRTKrfFLVCyUXhYRY94SH786sBYC7UMAU5srCT9mAaXLAWya7jNJBMr", + "finger_print": "799c0ba4", + "chaincode": + "4514af052ed2f489a81e9fa6e0c8c8c01b1e15c2a6053ec53797997322f72c18", + "index": 0 + }, + { + "public": + "xpub6CvxQ3MQFQwoJdPAd2H84p5giqo1RTKPgmrkHq81W3jdzEQaqYfZBetcB9PGwpqP2YU4Hti8gB8ezFo3RxVr2aXUZtKHdNwHSg55R2GpqB1", + "private": + "xprv3SHjTfA16FxJ2vdGK31kTkQVXPsJ5qQdtHBWwiMKvJfAuU6ta7KabbXm9vhndDEfkywRFkVxYw5pRFGtBi9tEBCbNgpiwV5712FU9uogjycJgiFk6QczqjYtJ82YZA5fNLVbisCAvNjpXdBHTY2ZBmU", + "finger_print": "ae056f10", + "chaincode": + "6da31aec6f7df724808b30ce74ff76f4ed08ab62aaf24bcf7bd965b0ecd12374", + "index": 1 + }, + { + "public": + "xpub6F2WajvmL1GvTNqF66AmdV5Z3VQw8UDDXgFb15SwYoAuP71HKK1CAEJ4UrAd7JtKNgC4F7B5D15CgY6d6BTfGdyz4gcx3Z2YNVKSuKrqSNK", + "private": + "xprv3SuqoWVBdtLYQn3wFfrSCryK9BVmjXUBPEtvMmWsRYvy6STegEmfCWvHFXbDSgWJbhj5vfre16D94kSVztiBMv5W71mLqdJ8b1JSNE8JwkUaBdYufuzefhEjNxykQvK6vFPTPPanZAcTpEVhwhjr8p8", + "finger_print": "cb274f10", + "chaincode": + "259784d719339cb5924a13d68407618dc0d391b1c7845c5e70fb64e01248533f", + "index": 2 + }, + { + "public": + "xpub6GdhQnLqK1eLQWTsRDAZidDm219npB71SSzfJNiCqwfDZ9JxAbRQasZSxvpLDVmv5GhraDFFBTTynRodwjkmjaLkDmBNDn76HavGTsYd3y4", + "private": + "xprv3TPXNXrs5UYUX9KiLVudQ7QQw3fRoda6Bu8Xiex2oc9UnmLCcsZNuGBbWk8RUNRpmrLpAvxYvantuL3N817ozH6pqyKjCzZEM18vrNPyEhEnfmqMFZ2THHzertCUvbc52p75RpCsUExd8PUTE3mB2Hy", + "finger_print": "a5be09a8", + "chaincode": + "6a775d293e9f44e08b51e0b0ea8e10752073105548e8097e508e99d3cc9a3478", + "index": 3 + }, + { + "public": + "xpub6HuUXYAFQTubXEw6Vu8umgd5ZbPfo6m7tft1jXE7K3HJTjCfUf8dsEBsvxV5EFAcYRrgsN4XfRytSBWBusLhVr15xaKEvKeNpbgmtmK4qCi", + "private": + "xprv3TmSXzZdnnDAdER13n89Ns1Wx3Q2nVsss7LDK52ZhjejmxVpWTZ95HJQTqviout3sQCHshkkSk44wfzyXtbeqBRrpc6CxDnmY9xw3QNNJnxcy96NeFyzLRFmdzRPY4Nu81ckwSkjVX9yLbk248nSdMj", + "finger_print": "52cdbe21", + "chaincode": + "0ac0475dcab90e100e1864f1d1e9f8bdb5a21bea8b695bbf97bb254f30d3107f", + "index": 4 + } + ] + } + ] + }, + { + "seed": "29c6df1a5a3aff4c4cc4984c21d005add6f9e4c922ed4219d9d026c5f9ba519f", + "public": + "xpub661MyMwAqRbcExkF2h38Z5k6haczmH9QX4Mtz72U74pHaVinkdkMfDJZUZVAoibdh6ZgjABPkwfKg5aX7ZkXXK75wWvbeXrnMxKqJZ45uxm", + "private": + "xprv3QESAWYc9vDdZPe7yk9cGoE8DexrLSgf2PhnM2nppz8S9nNgNGJ2rEzAeAjArbPNdwifyn6hzeT8Tgv7sbf55L9fzf8c1hea6g7zZrZDKymdqQJnQtrt5j9CR4dtwkepKHNgu63kELNEwpcM6SqBD1n", + "finger_print": "00000000", + "chaincode": + "2a1a462093b461a017874ed2139b03122ba774541508f7a9f15478d50c86c216", + "index": 0, + "child": [ + { + "public": + "xpub69Q4nscR1UE3uuFzDXYqFeqBzo1PsyMhUR711e8CvHsukfoyAkTB8Qvq3uyXDq3jkKQozpGo7V6f7ZoxCod4mL8wVH6NRHPxecjHkpAsEey", + "private": + "xprv3REsHtTvPSJSWHyYQ7MbGX7Xdj3v4ZBLTTqsFWeqBPWU1EAio4JoXfWP5w81edwqd1qZin3Zgqw1M95P2MR9d2Mzo49oZ2ha5wKBiSZ7SJxMta2Nxob3LquzgER6YykS4Age42kF5AmNFJUTM9DEg5H", + "finger_print": "cd68de95", + "chaincode": + "b0d691c7021ee93cb86e323d4c50ec5fdb42e1bebbdd661e9638e4e6639bd7dd", + "index": 2147483648, + "child": [ + { + "public": + "xpub6B8oXrPq27oMUJggrgGLFNcfXj3G22U9zRewFVRDcS132jB7MXmx9YwYiDAPHve54gcooZFKn7ueYp7yoqCuhv9nLoAujLZa1q9qaiBXweV", + "private": + "xprv3RknwyLmtJEPnQZDMpxS33rMUZ29VPs4YBFayqXJLxDEZ2vb4idqNX2qMase3psiTkwwmBQuoCrDrHtW9q5mmgeiFD5wzJBhyjFRNgBtxoTxMVKKSvRRHJRo3moeW75pU6y3exkKw5uZGGRRkmiperK", + "finger_print": "b9b583bc", + "chaincode": + "1f4e89ffa9d0ea5b46a0a52d9e6bb5371d72d58f4bd58c4583d7c7831f540d2f", + "index": 0 + }, + { + "public": + "xpub6D1tzNFr8Z5kmjHxDUJJ5qKkG7T6ZCYbW89vatE5jou8pykBTcUhf3pV5RUekrDcm1KqrJGaYgncbCJ8w5StZhGDvQ4y1exQ3tdULwyPrLk", + "private": + "xprv3SKCbXAUyp23yCa8ebaYiQMziDeG7Gg4pVh57NLyh9YqhPZ3aLGtibHyWvA1N38FLVfkK8vMt5JTjLmFAPMxb6XovGKWguK8Q2DaNTccieM5jan97QMgum6JEuMBr92Yn1zac7vCEekbpW2hyfQ11Pj", + "finger_print": "b99ca75e", + "chaincode": + "b95ad52a07e870feff39f0689cf4377610e9e9ee6698d7a22249e8cb04171b74", + "index": 1 + }, + { + "public": + "xpub6ERkQnDszJngg1iaJA1C2avcTXenfVoG9c77Ks8NUB5m2F9bcznwEhRoTZRuJ6rvpMwcVHzt5gPdkc4UMGtMb6csYzZAstkKJXGA97XsEjV", + "private": + "xprv3SjWsgLNnY6f2c7YGLus5mXhPyGuYKoAzchC1KPKA63KdCNDSTto92vSXuHjZvyTv7gfSKPWPo2p6GPSv673PyrNQDZwCMwYYgnMb5BN6YqsyE2kwiGPys6Z4LVqM1K4tubxWmYV6hrvgdjWFa3Eubs", + "finger_print": "799cef53", + "chaincode": + "ae26ace06a16a611b174c4a3fe03989cafeba4815e896ac61c1a665d7c348d8b", + "index": 2 + }, + { + "public": + "xpub6GFzCoVYXtc2aAipy8UP7rhyExkBDjB44TeHysthsY9ak2sYYwZdtEXRuJoxjRja7KPmiTdUuiTGpaietEDqkNRgABSJhbPe9xnz1VthJNW", + "private": + "xprv3TH5JugG7Xzy37ZymwqiECJyMwdDc6WfFejkrzxNNMJcbUbbh3w3nr6CyVNE1AYhhjCvMjoQx6mS1Kje5HkqvA1Fb7QjAAPiuZV7aLSoNvQpxpvhATUrZDxafn7nDLvHyDUtwVCNBmuL1x4hH2SBU9S", + "finger_print": "72d0e152", + "chaincode": + "914f35f9ad6b8663edb273cd8e91e740fa37b5386e28fe5a8acd05fbccbb9472", + "index": 3 + }, + { + "public": + "xpub6J6M2aVTp9yDYkMWG4TUaYKjJcV41CWjac5wSHqvh1nvzpmHPH9HjA7L9bXRYAmbGNqSQLjhoPzK7EhJGDpzAeDhXsJJSE1hkRHfja595Rq", + "private": + "xprv3TpfqGTUvgguDqpnoYNeFzMcJiHWMuJteUWfnaY1T7LTNoGAowtC3DshLAzietWdqGLzT77sp25BmtGqP4MaVa2Z9Byw6mBoAR1visUpR66BshBz9rQF96mFFErtyvBpL19zTgguwJU2edJj6EhhHGk", + "finger_print": "6c4d9ce3", + "chaincode": + "20ca035607b7da0d752f37d824a515f7f3882cc9c607e0c35f7f09cf21694792", + "index": 4 + } + ] + }, + { + "public": + "xpub69Q4nscR1UE3wcCLkKybbqEupwFrKYmuqH1NzNZEWcy6b5psMZ4GmGrRjE1MixAtHtEYe4eAhFXpyzdis8JwzDksZ9JfcmffVmrR7JHixxS", + "private": + "xprv3REsHtTvPSJSWoNBwH2XqKMkxbKn6xggYBb2ZM2GN7wAnLLmHXoYyiEqDydtXxoKuC6BsXB2qfkPzhQ2oVUoASYrTdtEiCG8mtfQCpjDkcPdH6S4nYDh5UtqRNSfP4XehQEYhxrLQPRBvawkurn5jKh", + "finger_print": "cd68de95", + "chaincode": + "5c2c3ad0a7cf5787db58177f1d5efcb7a4def352ddac9007ccc687838986feae", + "index": 2147483649, + "child": [ + { + "public": + "xpub6Ac3Z3DhxKwMtJryPVG2xnY4WJDP4P5SMAifmjfyW7mgx4HAhqv6dtbCd5cHAQ1h6ABu8NWskHfGDLyGvchoz9ugm5Rt46bpM7snPkZYdVT", + "private": + "xprv3RbezijQqiAvDguVfyAxEvoA7kLDR1b9GybvgiZs1yd6wUSrS7pWxCrWxBMbKyoibn9ARdY4doCboVrGLfR9JzL4hdBukCkYeiiGAHUfkPicXkdJtaRxF5uSEMhUZv6qH52mqNN2SJc1zBx766HLUR2", + "finger_print": "718f22b3", + "chaincode": + "1a679e3f4c47a4149a0bd9e859682b0efbfb13709dc8da0dca307032348fdad6", + "index": 0 + }, + { + "public": + "xpub6DPV4YN7y2YE3hzKFuqoJTMTArwsvYhWkszY1X5kLNxggTw6ddxtiGet7YGHPrtje6Qgr9TSjfKstRGriAwrssPrvFymSX1gqBXbsgn2tqN", + "private": + "xprv3SRcYDdw9rSpTpXK9WRkfKAcY5fKai3naxXNiReTzkHUiAgmu9LwgjLDhJMPM4nPym4ceC5Lbjq4toS1nd19FgkYz44fpiCAf4Tnn4oQMf6Xg9VT3cZKkqxmZ5PuQw13Wvh8NKvveaqbXQASuNDCZyS", + "finger_print": "ec3ff192", + "chaincode": + "31bc8c152ef3659173ecad790200edb0137788c5d0369c29f6c199b0b73b1750", + "index": 1 + }, + { + "public": + "xpub6EB4Xb7PJ53qswS5m9iAUXWLonUXaeudCtNL7RaDbaaeav9jCF8wdDBhs5ZXUVRAeLujDHzHjhQyFM1kwbZAsLTbMW3tG6YgB4hCW1HL8SX", + "private": + "xprv3Sf9p5nN6aLPq5CYrs2RzemPnoKpHTPsA1P9igfLV6xes6fUXruFZwF1PBiw4sirNh3MXaUqT7QKrpPpwUMBcbNUYvbQUWK1yTjUfbsdELXHdg5cjYyFxXVxbPHwgVnm4biqK398crfGEzxC2YHNX9E", + "finger_print": "5728fe5c", + "chaincode": + "5e5dbc2cf0ae175a76a07d7f5506443005d2bc08c95ca07d35a38fc69b79590f", + "index": 2 + }, + { + "public": + "xpub6G9yvxX797XMM7bmQoR4w1NpJxd5ixMchijgUWmnvosYsEtXFSk4UvMZPLUyrSoeeBQ3ChVm3TDtgtmgdGCECQUY3ZMEgtV56NyBKE28oH8", + "private": + "xprv3TFHrJTkDYdK7UKPu2UNArpydE3fuNeVDLuYs5fNPJ3yAnuwoUeX5hZnan8evbmCVZvb4BZSnrVznLhVcfcA9dDWpqe5sJ3AAEdqvunvUfYvNayAAirVEzCRWT4WvRoe2pzyVvfHu6Xxm6AcNn42S4e", + "finger_print": "64bb0b4f", + "chaincode": + "a0cfe0e9ca1953cc6e8ecb5f28f89509c721ae37ef44d76f49fabb19fe0d49f8", + "index": 3 + }, + { + "public": + "xpub6HvssSuQpZGwb2Dk7HuKL1rNB1FTnidbGaKGQMTvKXrUqNTeGD1AdW4JQRwGMPduxtXMw82irPkHcYV2S4vGZhcSW6hGi794ANdtozf9ZbL", + "private": + "xprv3TmrhWFSBDnq4tZJEFLvmRipE8j2KjHD2Zx9ZYyVtHhk3cGKx89yaMLHEPUrK31mHSPSp8KsinKgNyiguuVfPCf3ZYZH7Hy8Y2fpqp971yZjpYWyBW1eduKMzsdmaUsW82CpTNcRhcQFrHreePYmHbJ", + "finger_print": "5617ed82", + "chaincode": + "e7686d1212834e075e55ae13369535a96fcbb2a88566e268438d4456e1e0c568", + "index": 4 + } + ] + }, + { + "public": + "xpub69Q4nscR1UE412HRw8tooA2RYHUcqfisQ2q39zXE2ZidHBoFNUc8Jb8Bi4qfNKfYgnn6uAfYr4qQw8QArvqBbKAoGMuBNZKdK7hjf5Z6dnp", + "private": + "xprv3REsHtTvPSJSXpDALbybAiamSqVYaYWsr8fsJpkvjAmU2JmBt7Wq3h9GfP1u8vqW3VuhHwTU9JbHVQyaSVmwFWgpz3VXWqpvMH8yhoJtH4hm58WNQ3W4Z3VpDVMaMPyZF5eNn4GHCCGPoNRrBPo7o82", + "finger_print": "cd68de95", + "chaincode": + "b336306e14c661fbe166c5ea72a8616f47bc38df8ea12e77e1461747695026a7", + "index": 2147483650, + "child": [ + { + "public": + "xpub6BWd8YbyFq9hkFGN7xw5EjDBLnHaaLrXqB9BHyMF5H6jCnPE9eUZtjx4HBsX7pF5F1d8yyJeAQTwY1zVWcmzd1UKXSXJAETzfrDY6HacJs3", + "private": + "xprv3RsGuimBFa5sQjwCfe5nd6PEjfsMKmRWoNA7ovhb66wFY8HcFMgTvf44fcydmNrUtB7G3oopbMrNf7BsEVXUG5URbn77WLKD2qovDaFZPmZaQNC1QAThLS5FKZGbKh1BgAzrNv79xcTofVRYWd4xFz9", + "finger_print": "ece4d8f2", + "chaincode": + "f04d011706e5f24a59e18e55636e29f92e8edded711604cbb1e99e5f0241ea87", + "index": 0 + }, + { + "public": + "xpub6CJqXh5LeW4YovL8ExEEDN3FvFYMKsAjK2oSzKtn9MsXyacapbNZGcnGme17p4kaAJgDk3tNbB3H1MDeT1fN317Ju61NY2N5XZj4ZhHUrGY", + "private": + "xprv3S719vQi775mLxrYBto3x6wkeNBxj69BojmdmcUARN3Mf4rZ2dkwHJj2NYcWPjxarLZYBc4qLmqgooUxYk5VrqVfwpa9QZ7jiNwibRwSc4YYTdZzirjhtKmTCP12kFQe3M7MyKkVKW5aMLhndNdEsey", + "finger_print": "594c4786", + "chaincode": + "b1de389a3b0586ac268149c339d7f9a2c596c7499eba91af5eb57b8a46829220", + "index": 1 + }, + { + "public": + "xpub6EpiFxtS3qPGNjqxVKbLz7ndJAT2yZHmdRPzc5Hp2yiWVnVyLXdyQFL7CNTfkbHPhLsY68xJSn8zTcGUPypSRqzdeu8JH1CFMouLGuJLwzL", + "private": + "xprv3SrLWtKx1vFfwBgrZFDEktUtn7dnk5TZHrGUm2wXHxJbBh5VxjSmE5ynx6tn6VaJMw4CCYXE4yheGgJgmmnvKYJG2aDdYde24dGL7KhUkKuqsvztXU5vMxXvJawFSFiPLtUpXBK34dmZw7LjRWEqK9G", + "finger_print": "af7a2ef6", + "chaincode": + "a75017f72c1d2edcf4ce5c212e3475c051cf4e4a693a7320dd53dd33d9d0eb63", + "index": 2 + }, + { + "public": + "xpub6GNhsJMbG5xLgo88Gs52oidfPdyAZLqUMj1Xp8wXQzHFXANYZLv5MouhUy1UuQkXb5nhrvgPmbSiJiM2gMU5jr2qh8VVdFTRbH5YT9A5NAc", + "private": + "xprv3TK54fBmSTUQAxq5g8mS8H2ovKRUpSTJS2tPsspYuyBuEpt1JSPJU2o7wghrUggzsVXtE4HwAkygHdLe5cZnpip3Aeqdn2PYiGqVUxRXGe4r91GrBwRmDrTJJxm5NZAXghtWw37NdSuBuLkixupTT5A", + "finger_print": "82934091", + "chaincode": + "892862fc477970dd7f64b19f95f4db9870143922840d57669c23c9996cbd3b4a", + "index": 3 + }, + { + "public": + "xpub6K7NUB2faw2mp9Y85CgWab4cXYNJ5RCC9pz4DUZtxJrE7fyWLdDLkfepJHYBApCGDHDBj7aZeXfu4aqGoBMrWmLnt7PRew7dqz8DJu6BkRQ", + "private": + "xprv3U8Cone8cUtk71ZZyC85MpUwihYfDE6wE1zRhRvKeYNutBJinAEZBv2CtjUZ3jop2D2P9SkfXzRSdLqnkb42hVjUZMMgqTnLZPjMR11G1MKnG6UWfrTp1dHAY6MgscbcSFouiW2cCB2gnevJb1XCWnR", + "finger_print": "f6c21c43", + "chaincode": + "ef22544e21510bd5437ad5c2573a5f1e0ead225a0f1077898d6c7e42028d10c5", + "index": 4 + } + ] + }, + { + "public": + "xpub69Q4nscR1UE42uWAqU6KLKWvuHenYP57JfaU8U8yuFgWtnXgUx1ksEXDMf5pqhvGrkNMbvv9hx9FTfFQvnsUTAb32vnmJ7zagSFyoEDdo8j", + "private": + "xprv3REsHtTvPSJSYNeyMzUM1WYGmk9kCMwDBc9mRu9JQhGnaAuo3riU6S3TbNLNUCLYws5SX7J4SHykSDa5AZkUXRDyP3huCp198YSQ3UCXgqhDLyiuwQXQ1iHvDeEB3FbqHTQ5Cqwp33T8i8m7YVPFRLA", + "finger_print": "cd68de95", + "chaincode": + "705a6188c480eb58c90399dbeb9e0fece38aeb985d4c0f0843a10cc13dac098e", + "index": 2147483651, + "child": [ + { + "public": + "xpub6BB6jjWVzYFvdmN4cjdvKP6dCzz2kBfi33drZFeF3FSFrkqvFQCSic3zKhDjvZrB9U7wPbpr2DaXzu7vZ3AuCApzzXnuY68wKj6GafTYuPA", + "private": + "xprv3RmUX3BF5xat5oyBFH3kSMvQGkQxB9qhNCv3A4nyuRQX6ngf7WqwdVhdfTYqA3eMbRzMxrjZvyXxfgMwGf8DQZdwdrFuM4XF7oy3YJvyiJjp7rWfUVp57FBAiV6sS1uwWKUkZNadpgbDJUqojsvg9F1", + "finger_print": "bf18a5a4", + "chaincode": + "e5a9ea6d73481f367b077330f6683acfe178e189641aacf4335b819b3c79ae57", + "index": 0 + }, + { + "public": + "xpub6DBQCftikhojrYqkj5DrsuohK5zAvqV4btrFz6hbt4wD1MEzqik39J53DygU5EGGrs2dNSk9Een6xboG21XQBP2MN8EnmBnpL7bYTSRs2o5", + "private": + "xprv3SN2LggMcLA8rmn8dbLYtcWVz12GBALY3YkAUsKYyf16vg2m9CWkZHSW6aB8xyo6abvwDjzFz8qyNg7HKnpbY1Enr3PFx6NP2PjZ2Wdz1D8aw3FbQgg78XVjmDDyQQ2u1S3JjCEMeM8aQbj6zcwUYWP", + "finger_print": "cfe79cbc", + "chaincode": + "e5b7422e9da67201662709114f353531580d7ee600c19bc4c2738ea5e6c8d373", + "index": 1 + }, + { + "public": + "xpub6EJYysW4bWpXXRcYUYpfJ8mY5bs9y5FQEVXCjjsgoQFkxFqo78s4y4hXf5DyGasEpRjkW8BBcuJDkKdw7UxizLv2bNr2kXCHBk1W44bCmXA", + "private": + "xprv3ShNsY5rws6gpq1u4MUf2ac6aY2di9FAaASSnfAfHfxJVpZMYR93RszPSxDH2WsDmtqWoUAHj6SJfyCJTQdXEcX9N2EqyTqgjAXZXTU1CQNd9sUSLhyKdTmrd4G248oKUS3Xg2xPVm52WHBgMYvMLe3", + "finger_print": "68bb1761", + "chaincode": + "4188cd3d556dc0a292db46fde810d61679ed4c4157c584f6b73fd653cf1d6b1c", + "index": 2 + }, + { + "public": + "xpub6GQx1fcPPgbrrLpRQ2jbprBU3t7qm4YL614R5hKQaaCTtgT4vmeK2AiNTeEL3vz9WvBUkpkKUybZUMtYrMvX9BNqbDgFUb7ACCcSvqmDWtX", + "private": + "xprv3TKjizWhW1b8fNp5u98KXEVAqDmPv3kKaeHTmjoAVEfNEEgmv6Zs3R2Vw3K84e7TnU52wcyVhuUxjtrNRpJprZ7YMnom1A9jaKQxyTfhdFWJ4eiwucoqH3i1VzZRHjdAnUzVYcEcm11U9LQhfnZU27S", + "finger_print": "87d6b263", + "chaincode": + "cd150f24c291922d08cb1e31862828f24e86147218a24c47919fe276a9298855", + "index": 3 + }, + { + "public": + "xpub6K1VoBX5mzJHgzSjNUZxUDE1bZxt7Ndt5k9sKzjUyQ5hDpAWdvMKGJhkeyUsNXq475X3bW7KgjZxuG6h57qjw7fccHnMHbypoJUssEtrHte", + "private": + "xprv3U6Tc99D1b2384mUgcpq9dQ8s7rUjdJ8cd5MrfnBCEzx4MkPxb7aKwBb4sZ7QQDNWyxPx7tHwkvjY5Rxnyf4vt6PtjA4QnhevdumegYPyW6mb8LVPopYSdcLpTY1aCNkvTT4GWHWnKQUhX7Lb8i15qi", + "finger_print": "e8faf860", + "chaincode": + "e37e1b82dc00c5e8c74c45f7194b144cc6eb9036454cb81d859264e872c62142", + "index": 4 + } + ] + }, + { + "public": + "xpub69Q4nscR1UE45RXYGuAcsjaL6dEXeqhqZA2fA7hNyriRvdiseuJk9tbMbkP3t4M8UJvdmFcJ2pMuPugHHRkPzcWT4CgHTaqSQ65igrq88yW", + "private": + "xprv3REsHtTvPSJSZ82uCo9jHb6hCozbpEkLYeezC74Vphh4dFY5ECkaTZVFrJSos6YBb1mTbHk7x6fU4Ka1ikg688ja6ZPezfe99TBuEBMpDjjPRG7kpEQBh4Mt1dVqBRW4NuDuz2Gue4b9auP9HcYZayD", + "finger_print": "cd68de95", + "chaincode": + "6d3ad269325c2fd787f284b8e6b4c9fcda4087e6951c98a85daf6e40102611fc", + "index": 2147483652, + "child": [ + { + "public": + "xpub6AHdhetRkFsWFBWMP45gEHJUFYCVobiaeA9J2QJyiViE1v7qwAv2SypoDvRKy8PFrtZARhmF7Y6GBSzMZi6k29ftP7MqHbd1oeYQhmGmFY2", + "private": + "xprv3RWBn4tevHSR6f9RUqKhn5U2K957ym7XrHD5Qr7kTdGvaPueQuJdmi5CR17HQYYxJsifDeQAsbcHq4j637psWbPiQxqhkbDEh6gWGkykwoJNPQbFAtpBacKRm5tKTLX1L3FVkENcET2LTk73SLzMXT8", + "finger_print": "465f2acd", + "chaincode": + "4479057a703bdb3b11ae81333b8c4c45f44a8ab52f06ec1918072d6912812e45", + "index": 0 + }, + { + "public": + "xpub6C7GtCph1ywqeahcrJrq8tGGZ24iihnUuYHp9XHU4aLoMPFgB1ZW1wodwYfvo1MXSvbAfZHAvrT8oLU9xRkFvDTkGXuV7tqWS1AvobaMvJX", + "private": + "xprv3S3ZvxJta5DzKPDoLDvyU6YQzh4rfpAMV4CRYnRWHK45u9z8AJXeCRjM55Eujf2VNcAQoEDR9QfUeAVXLAjhGwrWKE5rStSvYqyciSFEnPbN81CMbNdoUP9nutKSGGttFE6n9ogHdnnXiKSLkKqePQ8", + "finger_print": "3e2cc339", + "chaincode": + "ccf1c1537a07747af3ea80eb32c024606ba9b82e07b198c994f3c6eb67a36c07", + "index": 1 + }, + { + "public": + "xpub6ErsSPnVgBXVGcekUBN1TXrx8GPwSfxYwLE4TfE6GxAPqXXq6XgPDo6kbLwR3NKznSZUss8wfBpX5rk5sZ7BZcPpjc3RykZeK1R6JcG3E8v", + "private": + "xprv3SryhgcRPLVU4rjHvtAp3n38GkEjsU72kiChcM5Q3PJNfX6T96Nhq2QJM8Gfy5qZ46TZxz92NzCVWAYRhfKTJwHVBpd9ER4XigYcH8vLkRUEy2AU1kyys7jxX5MUaAG6jMa47jvAqJi22SYgYUcb2dV", + "finger_print": "b48a3a9b", + "chaincode": + "506b4c49316ce3b9b0ac96a39668848fa0de31a5d484a2c9b567df09d9dc43c2", + "index": 2 + }, + { + "public": + "xpub6H9wB2d6tBjsfJTUvJzveMazgRZKWsYeEUqxp2Pdqr3DQv2EFoPc52Y6spBzeJoS1Rs2F9YwA9wgEeQYZ2xtaaCYRhoKj1dbsaJjzUvqQAF", + "private": + "xprv3TYWMASZEgE75FaAkCNVYZBziK7tJ2YNrvqf9dyV4LZ6bV9zFDWtCrsjXqDoiWSC76zEPtNAhwaN9534ZxMSwBxMjdFWBDdmaLibeNv1GF7HYvpiYo4wVbKdAky5Gea6EHmUoAKCNQx1wTRYki5wn6w", + "finger_print": "ecab91bf", + "chaincode": + "3a3e6ea5b56fa0cc7351e7d9a22ddde4b3c0eb336c3b529dc31bf9b7d1e6db64", + "index": 3 + }, + { + "public": + "xpub6Hhkf9pCGAEPxnFoguzbpVNPL2kz8eDq3ZTnoXfR1iZ9iXhCKUz5p5BuW1ZupYazPirXDAACvE44FwcsdDVKBmvRv4iJY58iUdX9mhEAfD5", + "private": + "xprv3Thxa8P8jhyn26gzwRRbgd5pzdEGAtmtv15yVGGpMPjGu7UjdAMuHd7j5YS1mv7djRUqsyGAs7W2DaJmxdr7p1gfCxcGMHdDEU4kwe7evWNcECJts8i2m2bSc1sKJWUKQ6XsGyAxaB9dDYMQigmnVwN", + "finger_print": "374ebe03", + "chaincode": + "8f134462d43911fce334a6733feb3e16e71a87c8dabc0c029c8a654df2f88898", + "index": 4 + } + ] + } + ] + } +]; diff --git a/test/cardano/bip32/legacy_test.dart b/test/cardano/bip32/legacy_test.dart new file mode 100644 index 0000000..01e1f24 --- /dev/null +++ b/test/cardano/bip32/legacy_test.dart @@ -0,0 +1,51 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/cardano/bip32/cardano_byron_legacy_bip32.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("bip32 cardano lagacy test", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final w = CardanoByronLegacyBip32.fromSeed(seed); + String public = w.publicKey.toExtended; + expect(public, i["public"]); + String private = w.privateKey.toExtended; + expect(private, i["private"]); + String chainCode = w.chainCode.toHex(); + expect(chainCode, i["chaincode"]); + String finger = w.parentFingerPrint.toHex(); + expect(finger, i["finger_print"]); + for (final c in (i["child"] as List)) { + final pathIndex = Bip32KeyIndex(c["index"]); + CardanoByronLegacyBip32 child = w.childKey(pathIndex); + String public = child.publicKey.toExtended; + expect(public, c["public"]); + String private = child.privateKey.toExtended; + expect(private, c["private"]); + int index = child.index.toInt(); + expect(index, c["index"]); + String chainCode = child.chainCode.toHex(); + expect(chainCode, c["chaincode"]); + String finger = child.parentFingerPrint.toHex(); + expect(finger, c["finger_print"]); + for (final c2 in (c["child"] as List)) { + final pathIndex = Bip32KeyIndex(c2["index"]); + child = child.childKey(pathIndex); + String public = child.publicKey.toExtended; + expect(public, c2["public"]); + String private = child.privateKey.toExtended; + expect(private, c2["private"]); + int index = child.index.toInt(); + expect(index, c2["index"]); + String chainCode = child.chainCode.toHex(); + expect(chainCode, c2["chaincode"]); + String finger = child.parentFingerPrint.toHex(); + expect(finger, c2["finger_print"]); + } + } + } + }); +} diff --git a/test/cardano/bip32/test_vector.dart b/test/cardano/bip32/test_vector.dart new file mode 100644 index 0000000..1a37207 --- /dev/null +++ b/test/cardano/bip32/test_vector.dart @@ -0,0 +1,3232 @@ +final List> testVector = [ + { + "seed": "d11db8045368164b79270139219d26620298436a4cfacaa601b4dd6a0bf09532", + "public": + "xpub661MyMwAqRbcGDGJtXqJYqw3hd4HVJ2JvDVaKAW7b5N86E18dELPWj5zhcorDS3vNvjmd3jyUvfPBAf2iZbMzWrMQRC5urPUoJmQPkm41AT", + "private": + "xprv3QESAWYc9vDdZmBapRhfSpER32jQ4oXDtwbmPiap5JpLoYQKe8pRJDQqEVw8aL83KgQ6trpAqcA5bBMbnAoJ6m8JYs7YyW3RGbAHLE3uFdY6aXPAMkvwviskVtcKu7hkqZb1JeLFF3ferDVDKnpfqWR", + "finger_print": "00000000", + "chaincode": + "a7afbf742404ef0985b1cf364980df6957c10757e358270362a99abbe87e157d", + "index": 0, + "child": [ + { + "public": + "xpub68Jv9d3qt62dc5GdRgATLeob7YHjQB7WBfT7M5kMe3Tyfhchgjdxa7GqbfzoauNgEAqLLykf54c2htmmJYghMHwP1ssx3HvtAbi4TbZuaJQ", + "private": + "xprv3Qv7G2m5PJqzXgX8Q2BAAQiRjc9KY6EDstP31CQmE8SV1s9D7dHNgbw1dNQ4kc2Mzh54bRbqTQGpHFrKNXd4uVw41MUqgNBvJRCx6fd1d4T6FLn2bSXTCZK8qHU3CkN172eYi8bqMvxtXpyuBc1iqDK", + "finger_print": "3947cfd9", + "chaincode": + "8b6231b42eb76719956b65660cd6a8be39b86790f64b7dc1aecffa0e56117830", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BA2W4TMhD8mirKxyq5cAjTKv39RsSRUQhTtSoXKKoP1xcSBjymxmurceaKabD4QDyXopmrtuY2iAMNGRErVWnKKjY1tYBMMTjEMS5Az7jQ", + "private": + "xprv3RmA2jxFzD8pqMCTUXM8AtTekdz4w9vvTVntP25riXg4urHFhZnAr2dNHtFVS6dLrvt5gwgRMUnsZxmAmNm25EgaK3ZrzzKqxpTUhvDMw8Tj1SNpcPcYb3Muaiv2ypM7whspRgumE6atnAKnAdypg85", + "finger_print": "bc944a84", + "chaincode": + "e94d68bdadd0ae3cb165100906863784e2cd68add922ca3777efd3b500c759d2", + "index": 0 + }, + { + "public": + "xpub6C5DknZw5nAaNHknRg4zgktEpS7XFPkfyHHVCCERvKZBeYfkS3V5eh8awuEdKYoMcHSR5RwqdD5NamzdVn3Z9Y3CpGYhGjp6Uq4GNUF3Yfx", + "private": + "xprv3S2xYRog3RdSqxAxCBEzKu4z2PpLL4YfgCAV6Gi7rxZeLi8j5xUyGbiPTQmU8jHEwAAZYZZYpFenCcMMADSAv7DAgEL9cWQ6ev1H2rb46HJtJn8QKr2GUs98jT8PcrCnYv3timkHZtNPnZxuyQzVkyc", + "finger_print": "395b601c", + "chaincode": + "b044282bcafb7c5b73188708fa2583070bc25e48272697756841a3cbbff52c5a", + "index": 1 + }, + { + "public": + "xpub6E5qqwzSspRGryXeYsHs3QvecP7axNniYZf43xc2D8yDBqLy9or6JQg3775KJn5wbdxmXWXQXcaWanRDAJ9Hiwdaqcxv7nvmuETV77JhzF9", + "private": + "xprv3Sdbty9XUn13vBpReX1tBz7ezrR2msDNbMW69hCtBgp29jFRYVn7vzxTaaHgmg2yRvFtaUFeF6NTQXKTVk1iV91za6jG6YNVoURuL6QSYFQ5GoWUG5UBR8Y6DneRoSscrjgJ7TraGGAt8VsT8zyydF2", + "finger_print": "4aeb2b66", + "chaincode": + "1d9793ddc1d26c9da92e14a2d5f2f06d63b1ee255e16de159a494f47ad618ef2", + "index": 2 + }, + { + "public": + "xpub6FWRVWvbqTkirGCJcAkqC5Dx9Gpf5WzTe2YFkT3dy6JMoXJmwPMk1PtYNcoGW8yyQeL4Xuq5govAKtCD4NzWc9RCFDKDfoVRZ9L5RdPFrbt", + "private": + "xprv3T48igGcT9LTzUUTbAsX6tgjksVXdafN8GeTRWc8m55FeJ68SAvDuMUGZaaxNaqhyvunxaxSk35ayDdaBngjDps1hkx6D3DEsuhXecrc6nbubFogbptWP6MNDmUHctenF6Anv149JY31kgKCCdvpij6", + "finger_print": "0ca0a502", + "chaincode": + "75ab01fa555f0ff3601a46829a47fcc8932402f7587fde5b334e7be6daa07bbd", + "index": 3 + }, + { + "public": + "xpub6HsXTLxq5cTubWsDc3zqkFotTzszcu62FXeYwCCiEUrg4xiZKS3t9v1ERh3rqi7q9u7oSW1YodboXr7xHX8dMJsJ1YVYNBoVW722iXsSgJU", + "private": + "xprv3TkrwoXZyz9krziwNXuZiRLm3xLPXCuxS4Tcnitii8eN7UJTbBty8ALHXWcx95i4JVzbEdGu5e8oGDDMgLDN7WBDTeBycyppg7ZpWt539gYdDMdN7fZkFBHXTP7v6hdc8JcfckgqJdckoYbyry6B8Ex", + "finger_print": "4e3b0d54", + "chaincode": + "75001965910b59c8c1bf61b8e4805edc48c8a06b7ba2adf48a5fde6cdf2cec19", + "index": 4 + } + ] + }, + { + "public": + "xpub68Jv9d3qt62deeBzm8iqC3snvcgACuEcR6MFFUjVgxyHtaJE61WW48dWeorntPWD8LdQWnborGmW9WU362QbRwTHh2CL3k9BXYZvdvpNoPe", + "private": + "xprv3Qv7G2m5PJqzYSkxnGBbmJJbXLRe9732x5VPizqUKYvZ6gZzCHrJhvPhbADK8bFQ9eoQwoa5bDHhUeK3cSYgmuiGigXm7JTT6ULnSNQWgR5PFG8sFCee8ms4Vo4zNdtwtBEXGS9DRT85BcLyNdDb99H", + "finger_print": "3947cfd9", + "chaincode": + "8d46bee34159d3c2c7804d5afcd7eef08d0dd44400b640d666874b8a6d2403fb", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BQYbRmrTuuZajbdg4ZQLowdRD1cDtGuWKDp2BTfYRZ9NccQ21G7kqPe47zH73yrNiHZD2AcxNVfRktvtEGq6TLm9aBNiRWche7pJPbqiEr", + "private": + "xprv3RqUBf8E75Czu2SHuhN2pt3Z1g8mPovxSMtNh2Lu9Ryp4Dpv8Ec7tEmPqYcbTs7vKyJDC2rLWDpAWBGDu7CgkcCuc5GDvB4xje3yuNcgBmytL6FV8YbA81ZS8s7WAGAtoQmCZYXEkPKp2kpDooiMHAZ", + "finger_print": "dea2df04", + "chaincode": + "71a87f8b909d26584fe36cdcee5922a904180cf5c555c5c03146d32bf0ad7d8e", + "index": 0 + }, + { + "public": + "xpub6CepE64LNCsev3knDsNkWx6yFzBgViEqFBCfzKSjvVLFunigFUDshBr8RqL2zNYFP5eMgVRu1QatjRBBqCfayy3QHjVRsMofamdKzuWdyBv", + "private": + "xprv3SCwMoCYgnPxAteMWHMmbUKduw8eFjfeij5RivFgXRxTY4n9FTjJutWySQZKMy4hVGw2Xk4KPQuiarNzCnKD7vSeyE9uqSGuWnakzAWEMC31SDuzHHPHsAvwBkDq6LPNJDSwmDAfMhpf1A26G6wDZ7Y", + "finger_print": "8828cf18", + "chaincode": + "dde42cc0b896100a8906e197ef78d6a20eba9e18226fa6bf2789c7d187d8435f", + "index": 1 + }, + { + "public": + "xpub6E13B7eypW1fkii9U9rkem9fJr9H6ncAnJHdP2pqBhy3pGX2ZyqLNUEKY1Mdb13SV5wuXxo6ezsxrRKrprLNTb4nAztTza4gVHHvKST3Ybz", + "private": + "xprv3ScB7c1eodUKRBYADZFNTgn2fLHnPAPYSUu7NMT1ATMoM2Dcw8wGerfnvdfrDYLjptCdmM9VSHJLL11XV2CFc4CDa1neZviFH7zcWkm1BtFMVFoW5FAk5am12GXeCgnw3J8g1swQttcX3mGCVcuX2JR", + "finger_print": "3fa5f905", + "chaincode": + "02e242fab2d07a77aa3e3bdac84181fb8e5b9581ba8ccaa317487bc9a929f17b", + "index": 2 + }, + { + "public": + "xpub6G9a5CqpqS1HaT9jEFJTapbtastuxgqkxxxb2wRiRMQ7JHz2PFN9itXLrwsG8wstXxiMGxbCoLupuwRNrzKR9mMXKxoBwLJ2MZSHeE6K2FS", + "private": + "xprv3TFAmExADsBCmQ84F4S8fLRfGEuupTN9GtTZH8hU47cum7cjW9sbdJMLCxn7X2VWG6QeCSyZqC4BsuFhKEDq8ohU5BnaREqa5E1aGyRhzimwwdpTvZjRveYLupYTNyNcDLUL9h9PenGFqPqnmmeK7e8", + "finger_print": "63c40875", + "chaincode": + "725ed37edd2a6d5a78fd71138b71bf50f355b17584faffc70ce43caa1f282b46", + "index": 3 + }, + { + "public": + "xpub6JBFPL3cJLjtSNMeMyHViD9W3evLtK5JwymziVxu7cBFXfVmJXZkDGPJGWLAGq9XL1WGvTCbgqYWADFq7pv5Q4wsoWweaxhkbWKtLTPyCHC", + "private": + "xprv3Tr8JdwVnvKWRtLLKv8DSoXmKj5gbfTa5ZQg9wpUtDQjbhwCfrFth1YiRuYDaM6GSkf87B4x6Tkd42gv3qpTfGaQRnotpSyi4QWyoPkzs6g6ZvJ1HjFxd83T2cQSkvVLvtWVxTAwUYiHfyxDMsoqymb", + "finger_print": "77cdb3dd", + "chaincode": + "9540b6e74e1e7bbc441d3a6c4e3b4c3f1dedfb0b110639f83c5069cd4a330d1f", + "index": 4 + } + ] + }, + { + "public": + "xpub68Jv9d3qt62dgkBc49gwE63nthGQLtyMeQyRoMEHK5cZ6XvnDk77svK6f4wy1CkAdDFzbanMtrLC15vEvZqPNEEpFNWrqqYc6RssPkZc99U", + "private": + "xprv3Qv7G2m5PJqzZ4zrgFeN1W3REf989bUvicbJA9mFnaAqf1VRk4w8ucWR5iSh2eHj1wwg98iFxVJscVdg6WtHa43cVB3aBFapy94AA6b73ThVN2ZoWATcSM82FAV8UnpmXmJbSQCJi7iHqNvsjY6Yujh", + "finger_print": "3947cfd9", + "chaincode": + "6089d6e6b770eae655ba0377f1340354ab4f2c1b434f5f5209cb374f429ccba2", + "index": 2147483650, + "child": [ + { + "public": + "xpub6BLQAZEUcMAoqdb5Zpp6zX7MbkG4kxQbF6m4HwbNmgwnS4ipKhRwEiyB2pkZHoVAsUPHQN4CkDtDoHCy7Jt5UBJuGG64DSKwP6rw1MRxikG", + "private": + "xprv3RpEmAasdwvoZcsaGatbfZFc4ZvJhpAGcq68RT7y321nbLqADDQzscmHjUtdEFrjszRrK5AwukUzprsWxBvHZpVWiuZrL1irqMBNLr5ZZB6r5XtV3PfyqyJs4Y1GfQwCjAEc4NhU8H985r7KSYArjJQ", + "finger_print": "d4e9993b", + "chaincode": + "258964ec1a0241a210c9433afaade6064adf1381e594b156b2cd220baa852acc", + "index": 0 + }, + { + "public": + "xpub6BwMR7sS7oGWttQdxNDgTNzP2VE35bS8sFMsTi8hRpp2xK9j1fMMetEkx1ymTcAdHMmbNM8UdD5xkQLXGGTMegGe5zbF11fmhCgPFfKJVBN", + "private": + "xprv3RzcytWtqUmfK3GvMnsT6GEcgnCRJmwjsjn4VcmMnopB7iKgbuvrrPVhLTmYWGQGz4cVGbSz6bYWgtmouXe9Yqtbk2BcRSyfnxn5m84n9dveXZ12LhtHog7LPVEZe3c5MFjWGB369zZwe4obZiQtdDB", + "finger_print": "26e6aea8", + "chaincode": + "3fcdac897da296b617d8da750a2a5c582dec68ad443bc086f5a7bd65c44688a2", + "index": 1 + }, + { + "public": + "xpub6E7Mmhofq66bKCi3fstJPuwQBMJhEEykzoGcWVBgBM2q9Q95jG17tCZ9m62rVx78JhLajoXAL7R2Ns1ifFbiy8RHAk4wEngqkeAYfAUL1Li", + "private": + "xprv3Se41utTZi4Ki6hRLdB4Yj5cckGwBjZLhEy5zGTaVvGfpA5nycSQcHWnFmM2mu7JyeWJY9Zwb5cvWy2Hskoz3yg4nnLQHrxaAnEVQqbMxL43wz536NKgUduZmTxBFCt3cMjXT4orU1usRGmMwkAstfD", + "finger_print": "4e798468", + "chaincode": + "b87b26a364704930af7e28ba0b47d6a590ff50c31c6d9c155945aa93d96b7c28", + "index": 2 + }, + { + "public": + "xpub6FopKu5HEq4WvAJt3URpxMorVCFHgWDfJbx219Dvdeg9nyLwWzVtkqmKbdFHLxiHk1HYfQYCA6E6wiuLs8T12PZkMPupdRX2nkUotRbQNKH", + "private": + "xprv3T9JQV935gnR2SDRhzzSHQwvXqqS4C4DaWJqDF3Q3j2k6yZWXTa7REAWGPSbhwPGbR3epeMXQnKABTFNXPNVxcUA7eDdNo5eV1aFGJo1GdGMcz7i1zBv4b1kWgaEJZqGSCoeSWAoncgcKMqfd4UioAc", + "finger_print": "356d9440", + "chaincode": + "4b5a29be3e5f964b73b3acfc082ab3b59eec12f2186980fa6623c4e18b0e58d0", + "index": 3 + }, + { + "public": + "xpub6Hck8xzY7pAkhBHg2UNjKGY7kD2EaTPm5Cgy45h5BsPsLg7CYXg4apZDZJ3HmErdUDdTFbeWK7RQgjQZSfKC49ou5LzkKwbwVcTchL5ex66", + "private": + "xprv3TgUGaRhPG6kGpqDgf8oEcoNyW2sYcJ57KgkoS77uZEZfQTUYcAaSqWJKy6bFMxZgrWh1PD3J8KP1y1vK2DiLP5mEifCrJjvZyYGEkJ8T3tYSYXEs6h7HN5GMSm9gtQbePmUjDiNi4XFyVgz2PJ1Red", + "finger_print": "2b8ed8ea", + "chaincode": + "a04734e5a832940cbc9fa10fd9e77e1c4c0d803942837c2f1f9e1834a90d556f", + "index": 4 + } + ] + }, + { + "public": + "xpub68Jv9d3qt62dihABkLc94e5fqKzbVAmSqduYxRmVQ2XgvkboatNjGGikwxeWpxWgeWDXaVsSsx9AUErFBSmY2uCdcNDAp6BA8EgKX5KeePm", + "private": + "xprv3Qv7G2m5PJqzZeZP21sWS7YQjZYZTyuCCaxet8QnkMzLzD41Pqy72SeSGsVfou2JLnygLtk8ryhphJpmvFhhxVspxJESZm3W5PAbfhJjfhQq8wpkVj37JTKk1iZ81tQsZFQrTZTGLpuSL5aR6DQ6pZX", + "finger_print": "3947cfd9", + "chaincode": + "242f1f1eb129ecf763e0aff83d70b4778d9f97b3df2bbd85efb1d33b4fcaae29", + "index": 2147483651, + "child": [ + { + "public": + "xpub6APHKATVAzoZwPEbTaPzDgtWfQFYVEH1BUBLyyp8H3KyyJbrKBvzrqwjPmtK4xFTFq8zQP7dXtX7XwQWt9AUZ9LxNU1s2vHQytuhCDBXsid", + "private": + "xprv3RXs6hHQyqhZifQiQXSwyGZV7kBeFurc5K1fbZiPpP7hxSEMt7vu3cVGzVjrLWeGaFjuahVjWy3tnmyjVQ7YSWvbcmm1va9Y4DuHsgw2V7JJYArTQnL2NxuvpGC9ARJLT9qv4pU9PE27eNZ9s1mQc6h", + "finger_print": "539f173b", + "chaincode": + "6c6bba4af5fa47c8e75da25109966706d8d93b6cef25301e1ad55a6b1d6165ec", + "index": 0 + }, + { + "public": + "xpub6CfdiMijNFkHzPkZCUXHEipfoXWQcH3hmJbrQ8AD2qDRzM4rirwvsg27tFvfZ4APyhxTLUNBv9X4ynC6Dih1JQuZni4zn82CSN2CDXiqepJ", + "private": + "xprv3SDBTzAgheUv5QihCjXoTsyJ4KEnD38rPh8B13Z3zCfEKcLdgvdj5ZkQUy54511sDFVEhEx6f5f6TqV4S4H6rzRu33Jq5ZRykmsnVUMrjndJaTATfTqge2YuuXWAQyh9kQiEi2u99HFJ2dZZgN7ryG1", + "finger_print": "8a1477ef", + "chaincode": + "0b3a0767167c23a66cb2d2b48836e742c217c0e66bd20b1dae5a2289f1022a54", + "index": 1 + }, + { + "public": + "xpub6FK5amfcZt6KDEy38T8g5QspkdaBqnJjwJEWnB3pMsqzU9arKSwdH9E5aPhCoH9C7oTSTNBVRvriEyKDCnJ2uSLTr5JpkWuPrfoLQJY84Zo", + "private": + "xprv3SzmHAPKDzQWmujKTKz8GXEJDdEnEqk9YaAhm5wFbdAW3h5WnzDc2BmqzVEoGUHidRdoGvYNb3z7CvDxSdo6SnbCcJfbMWepBvTNP73nheQhvpEWxs18bKG67159U1RPAzmYXXSGuJAkLakMFceixAZ", + "finger_print": "f204ffc3", + "chaincode": + "5e7f6d1747d92316d448d8bd9a47a8375a85d7d5fcb86a90175eaca0313b8c7c", + "index": 2 + }, + { + "public": + "xpub6H6kACZhcA85V65LbWfapNu9nPvNxYxy85YmETDtnaXVBarMcmPgJyX2yiPyLLATKuWu6Nonh5jWy9kVq5gnUhirQH6eitT6KGfx5Rtmhpu", + "private": + "xprv3TXZPSZxbxnKLLKpc4JmXKYShqKTK6y3B4NsDxE15YzinVhG66kKFyHA4jDZJVaA92n3AZ66yJVaMzTZbmhNDFo13BkJvLUGQ8ZUAaUHi1WxkbbUynN3keQ84LHnsuBBpgTVBy2ShyMNJ62bEQX8Syg", + "finger_print": "e5300788", + "chaincode": + "433350d6bed182af50601d7f136ca77809bb2c28f932cfb680c7a5e4db549e8c", + "index": 3 + }, + { + "public": + "xpub6Ht65duuTj6GKhJZyXC2feH6vJCrUxKbNk9t86aBSDnXsB21A9bt5bSN9Htz1Y3AuEkAHRzgqo3aXo3xHMTEKhRoSkdACP38ZXiJy3iM8UR", + "private": + "xprv3Tm2dvxsCwDZjrUaR6JRjvjhLAJRPbtJ6vU3rATkv8CwFiXmeKRhMg1daGYtKXtwQMoX2tq3AVcGVB8LD1Y5Ne8vzBybqfi831zDNgKcXMq2yaocmHrJLhtWEGPap9MBdTSZ7a9pqqVNhmdkdg1S8Cp", + "finger_print": "4f8cd771", + "chaincode": + "7923416c23fcb73044809e685db1ccad31b5aadc75d1864f28e5a3dbe6d6d7d2", + "index": 4 + } + ] + }, + { + "public": + "xpub68Jv9d3qt62dmHnaQpkmCxiYXDteTuH4wDCuji3wzd87VGhAZ9vgFaRzaBQqdamRWCpBhJFKrrbTpWHNWmDNH42nk7g6X7u3XYbNiGNru3a", + "private": + "xprv3Qv7G2m5PJqzaRJdXVit32NrXAfoE8Mn8rpQ3zt9sdcLDFXBpguMUDBDzPnpLg4d3h6DaJBtEJjtp18iMkohHKXNNyxrSaD1ZjD3uct8TRZiuExXyqoZcfKEnXsTWtvrC3BHoKBxtbt6tvppdX4roVB", + "finger_print": "3947cfd9", + "chaincode": + "29089068beb914b4ab8e07498754d2a4e51b367380cfaac36c2e641832253128", + "index": 2147483652, + "child": [ + { + "public": + "xpub6A8fKCek2BTAQXA5XsduVDWnCTacbeymtJ6Ly8bDks2EoxZx4M4TPHFAfQ4oJv8g1UuroYTtEdcue4wSkAqEfdRTKbcswgt5n1PiTqpKjmP", + "private": + "xprv3RTXC1LvdyA4fmU2Xvf7QLhGbRw2RWEvSn7C1QHDpRC3sQwpFypEPH5bpRmcGyRoHFeXVCqSDQZQDBZBdFiDTQNxqBYDzKWjowLgxh8fQy8hxAE4LenCZr2BcjmWZULeU52w9hp2KouR5X4JqQKvULL", + "finger_print": "31535ad1", + "chaincode": + "df5f64551a852b133dd4ad3676f6e25ff5476d6ac92c2b4ebb99761840518bfc", + "index": 0 + }, + { + "public": + "xpub6DP65fkpV6jecS3ZKDyNeMS4i5Mr1E7nW2G6mb2KbTAUmszmA7ScSWqpNxKVPL8VrUsDR2SeGv1Ejmo4PN4YUfwSQQh4RPBwFJWPvden6kT", + "private": + "xprv3SRViGn5QtNrUubyNgqRx9dHsRohPikmxoQGihiasX669LJJNMJgkHGAcqGvyeXX6mhaNmzTmNniCACRq8VQvZdVsigSu91Mp5WYspKye3ANkwZT8V2w46fybLa5EuJn8s6KUkKbtgzf8rZmZpK1bsA", + "finger_print": "eb5203dc", + "chaincode": + "781209d7e60918eb3afe8de5cc20b2a27fbd8a38bf8980a7c08cbe42d7a07d5f", + "index": 1 + }, + { + "public": + "xpub6EakB22DKqJZmkxStxe1Jr2Tzujq9z4DLMiTopYJ6x8FhfJQJR4riAR838Vhmgs5MKXe3YoKvNNhuKgQCRrKjRRLU8f51YVsWRQbQNiVJN9", + "private": + "xprv3SnBsSZA7uQBveLhigLq5pA7wpa3UDh7b3rfUJBKmnrMGMpFCNWsP4LVoXYCoSDPwMKok1BUu2erYBFXAsbTqMBBXLibNnU1nhY58UyZcDcZqrtmGFihekwT38FSCzkZfoWrEFgu48qG1mJa5xvUwn5", + "finger_print": "8eb6fd5b", + "chaincode": + "0b8f67d9e23ba2bc4d8171ed58b5760255ea903865950cbba829c25424371be5", + "index": 2 + }, + { + "public": + "xpub6Go4pbM17GfftZz3TBoXH2BDMP8vPEqkP5UbTiaqht2cfh71RdeVH3eqfyR2wiCNDP8DL8uc8ojErpdo4PFRMyUVhYCkgyWSVJVPPTDsTAE", + "private": + "xprv3TSJoH6EvT5L2jV2pbLEPmRLppKARjCUnNzKw9BmBnx2m9ijGSfjsQdkYeAcnQ9hvGi1XX9rx5xW9rsS4MaMLsy9cyBRhy4n5Vej5ZPBQRXmi1KL3T5aswsxdfUgRs1QMhtn1kvMEBxAhV41ANHaSRg", + "finger_print": "bbb838ef", + "chaincode": + "f930109d85099f18e499fab9822be2a5443f9be6cc16bcb59ef343ac97f7f0c5", + "index": 3 + }, + { + "public": + "xpub6HvqGjfrqGEwHE2jE2fdcDZSMj9ruE9RBhJLeZcSKKXhmukQhJj1cC6RWeGKsfjSf38pTRZ9m56DXwtWnJL6XsdhAUs64qgq4VckwXJYDJ8", + "private": + "xprv3TmqvjZV7KLEZU4NHyoEviWpTje57Wc8CE965suSjDYRXELsNvqGDtkP83uQo2bgbMShnyMefBLvk1KiK1x9MswNUS8fQ9ACou75HvjgVSxZyH2yeuAvoczptRAeFta2sKH383R7n9Yy8TWAyFv5fJQ", + "finger_print": "55fd064f", + "chaincode": + "7e712fb36d4462f851022c5f2c5b98afecd57859c412565502889fcb93602c87", + "index": 4 + } + ] + } + ] + }, + { + "seed": "98c24476237e774b4a36c5add8820c287e9a027881d3b37c87dbd7359f6d5e98", + "public": + "xpub661MyMwAqRbcFTtPGGZfaSd9PkesxLnPFPLmc9hSBMKp4qbnv3ZquhZaQY84pESwDJ8pHmiTpGRZEdeBu2D2NoJZS9vxTamNztNt7JwU3NH", + "private": + "xprv3QESAWYc9vDdZYJCStzBjE4uCo5cuRMd6P8yDwZ1Apv5JWTZQ8KoXihjhe5Wi7SwHsbjfmZg7qR5pGvSiGSjpKYb6gSNRDEfAemTipwh76aLqJh39XfKc3G8sQnTHdWt7VCSJsDVEBoFQPY6umtT2ww", + "finger_print": "00000000", + "chaincode": + "5c91095a6a56849c9ef23413b8e065cb2a1413c13d0a7f20bb3f976d86612506", + "index": 0, + "child": [ + { + "public": + "xpub69Yp7coaBSS6Nxtor7FdA1LSFXcZRqHJz1z328d1Dz7QTRAmhYq8SwiUM1FqKLbcQA9bzxBRPFavTHzC3wpmZDGRy8Y9uTiSPNvZZva4zg3", + "private": + "xprv3RHTzs1iakf7rCSQ7gMFq2Y5AoivQieTK2ySaJm6ZNbNU6pEoC8UU1NJtrTh4dzHdCp9RujUZvLDBZQQz3abtNHdA5u73bajWfCrdjidgZboaQgKP6FZFLbkPqwXQeaukcE8YVJKB8VQC4t75BMsC2M", + "finger_print": "e1ed6cc9", + "chaincode": + "f331013d6f4701b3f128f409550e5949abe5f4edb72d158b8fe8de893fe33977", + "index": 2147483648, + "child": [ + { + "public": + "xpub6Bcthc44uxBctfX4UfzQSEGZn8gQginqZWpDWEXN74QbVyE6697aXF2AcdXPpPHU9SdfZ9RvQheTm5PWMM2mWLUoAtkE8iY7T1GQoLGjxhg", + "private": + "xprv3Ru8utLcG7WmxoYuQg6aEHN48woAeHEejU2XUzCxRVaXafZXagLNpqks79Q68uXKdRtgZHA4YzzZAC3c3TBkhCwc7eshbFZ34K9tbmpfNb1jZWesUuh3c2gPfyAf7aF4FcYn1F5R9o1CgYxJSzWB6Wq", + "finger_print": "fb990efb", + "chaincode": + "a636c8ea65ffa2b54d391ac2c750f342c50c5f5f77acc136913b0edb7bbee224", + "index": 0 + }, + { + "public": + "xpub6DEqPY5wQXLVqSTGi7pdQX5ufUNGN975LzAgXkp1fJjZi8o4Neqb5RfNSi761SH8sKM3jeEuNnUt5zgQA8xzJkzkfcnHCanQ9H9WaZ7vnoZ", + "private": + "xprv3SP3Wbv6DGx2ctkS8EhXYuMQTb2hpVMuP2KWgE3fRiRoEEA9hpCKesGfSFoG6wsECzLSdcCTZrNTwdebGPZqrwZgc7EJxwJscXht4ZxyGtd2RNMLF2VKN2JBdCWxufZH5pKAUjD3cNQEymRtiMnB9PL", + "finger_print": "d7f5e473", + "chaincode": + "c3b30376d0cbe92d46ee4b5e330402d8241a72fffa07b56145d6d248c9578e23", + "index": 1 + }, + { + "public": + "xpub6EtGKKu3sK8dDsmbz6SqDMRk1Uf1NiQBTfDX7bFv725KDimrHwVm9G8LTXD4LXd7o5872XEPRebDjkEdWKB42RwxicQcBAokPtQm1HFyxdC", + "private": + "xprv3SsPjBWFfq21Ue4of6HNvoJ3U9hB4EShffHmSW3JgvEtPksgGz7Qtb3AwWUieBhzYRqAkwu6Xo115ZkCmeRXgtp1kp8zo7KBFfwmquKVVynJ1us7zUEfSC1B9um2usnU4Q82JEUgQKxgAg3uWX4wres", + "finger_print": "b7cf9937", + "chaincode": + "b95952d13ea16e955904406db08d0fa679812b3f1b0b6214a627d1493c8a3282", + "index": 2 + }, + { + "public": + "xpub6GcneySVE8Sm5AvPWLrnmYxnBc6H4mrVZaWtgURnZwEXw2qEhooAw5E8P15Uu8GLuuCbHTHJ7fNmU7xV2DKDwbS59c8F4zDdtJemERfCYgR", + "private": + "xprv3TPFhaarrYy2rQ2w7nGdcDkNfY9XhPfb2RZzhhizKmB8PZbiYV73cmXQoSRfxbY2f8bQCf5XRdut7F4b1RQTiK3hjnAmqugp7iwLhPkfUJYjv1w1J9DWPBoRCGZx1sedhvgAXYJZ1AJD4DnsUicnhuQ", + "finger_print": "a39bd64a", + "chaincode": + "9bfcc723d18999b8a67cbb79cfaa00f4f5e2861c767fd170af54980d8df0ebc7", + "index": 3 + }, + { + "public": + "xpub6JrHtKGMf4GwrRFAkThyrL1BFfmwFxyq9MkbKbrTN2h7sAmi4K4VDcUiwFbqixiB6CjBUiG49xgP7TLAYGugJA4NdiZRXGJRFxfUFbc4AYj", + "private": + "xprv3U3j14TLcfbYqsp1xnuEx6pTKWWB2guV7Rr6WBcSaEXftCXJ5Y7gGvmcmC6ejoPvmugt57cUAUzejEDM9farmX8LkcVkptJRN7zCEgwRsg1Ry7agiUaRQ6Ysrn5ZzPXSCNANR5s1ZorxzygrVkuaomg", + "finger_print": "d363222d", + "chaincode": + "7b2d3c36003cfcc56317f72ce4fa5f1d975d447f37b2edd4c0e5c3891730690f", + "index": 4 + } + ] + }, + { + "public": + "xpub69Yp7coaBSS6Q1wJAyNfeyR2YdAdL9PjZxpkPGX5CCwTCB8Ap53kt8DcPV3DcfxBwHNHjNehMhEgViUwqeMDvbTBmqR3LZA8KNU5j3StmrB", + "private": + "xprv3RHTzs1iakf7rWa9JxG21xYcbQdsFKt9aTcQBajSYjFQxPMLhVRgbjgu16LHDfDaeZdcS9NpnjdthEZHDHRqkZjJdxEgDwdvF8AuyTCB4rN17BbJLB6bsEMPRv2pbt61yR99BHyh6a3g4fujmBQgHoP", + "finger_print": "e1ed6cc9", + "chaincode": + "5ce71169c42f95ac96c780e2632372428ea108bc35ebbf8843a0f70dc78085c1", + "index": 2147483649, + "child": [ + { + "public": + "xpub6AtSsh7Fc8mzpyqSArW8q2CVtsyd5HMVurq4CU5RvDzU9NwrVkzsvgnhDtM8LTtn6URyosZoYgjJUDH3njvMpH5FAZeh7YNrKznp8cBuZnB", + "private": + "xprv3RgXbcLPP2kfjyUGcgigBHaCzDKjbh7eJVMpFyvH7u6jir1FUXgwY79b3suwR5mmoxALm5MXZmbeSUWxacMA3b9xmck48fb746adPGNc4DxfQagLzqEiKzKCNMzd6BGPPLbyqDQ9xAUhL4si3WsEbji", + "finger_print": "98089d90", + "chaincode": + "b9f81ed62d397b05a0a72579c303287f12b06de847b9c26d2cbd5344cc41a4b9", + "index": 0 + }, + { + "public": + "xpub6CPFBVgEnjTsJHhcqJNNuBTvBpJLhhznJb6LwNcUhqBzyikkqG2eFidcVsy1Vih581mdGNCWfcUv3gBAZVQyRk1k6qkm3oKj9pKaWw98LKy", + "private": + "xprv3S8K6hWsFpgS4BQZsWDTKw2ZjJj6bFXgXW7msbNcmBL1BMwh9KLEtbgDPoG3KexGoanpQw6g8RYxwBZMQb9b81Cvs3xX3hV2Ef6c9Ya5sjoYRybjF9KB1kdfvjiD7WgzbpW5efLB64EqTkiKsUpjHZh", + "finger_print": "63a3299b", + "chaincode": + "e0261e9232648fc4295b99abd2572f11d6bb26c14ac6f63f9209cf4a0929eac3", + "index": 1 + }, + { + "public": + "xpub6FFqKwqS4tCLqptkmg5rXgXQiMrmupi4dTwkoihuZtnjmxxKNM1NyKGu8CoJbmLsbLSjgwGH2yCz8Fmhuc5dSQJGJEm1DBbQrHBz8tteWyN", + "private": + "xprv3SyoMbR6hD8D5MpgmVH8r8d9CSJdnXuF9RyoCD6m2gXifAdmyprRFCqcXECd5tqbabDRftpB3sKrDo2nRZQhzCivWaS8oTWVLwxNVbNCHTwtZJoeqNv9WWVdTYujMTe4k1XzFYiA9BrpjsvL3XXeVRH", + "finger_print": "ea67e67d", + "chaincode": + "036bf4b190b77a2b6809724b6999738e1388baac8efdbb66ceacb8147cb9dedd", + "index": 2 + }, + { + "public": + "xpub6FstZuKC7LfySHzhVZxUyFtDgX1QJZSvWA9MoSvuHLNhUov1wbbxYRET9zF1gKaNGgW8p8atdS5G8VxRhZi4AXgw9F4jtVceVXL7ZRDG5me", + "private": + "xprv3TAWaqB56roGV412fnJKKyVqgTYR5rVmpQwXwPk4mSxPNoeHmqU6jHwiEKFwUEmue1iiMp6HuQGgfqUqsKBmivtCatEZHrHXEiyoBeSQuxKZtvGRdjjXvSpQA44ExURt3ku7mb68UXo5imR464cxLxt", + "finger_print": "3efb7f78", + "chaincode": + "ec103d60b7a317d298f27eb77dbd65a6e12f156670e9b7442395c81089671bc1", + "index": 3 + }, + { + "public": + "xpub6J7GVrPFNu3FUQir25jMx4L88ZrNTwEWy5ocFNWpvRwmhoM7o1GnLDLdxwmiP9LjQyJiYfkUprdx2zWsDXRghqNpSaxMH1EDBffkue6owZR", + "private": + "xprv3TpwiYAWEfa2JsToX3nQALdbXAfYA2iWk8tgYMARGaM86xcVGPNZmoFqkVXSYwkPHiapk5jaafrNSJB8CRJzr7DZYySJ2oEY9Ch8qCSMBVeUnA82RHPBsRcFoEQuaZ4QfDyVR6PZy55xvXUvnqE1Wam", + "finger_print": "6e773724", + "chaincode": + "03f4cc3f30cf96b909000cbe73e6ead662a4cdcbe9f2ff48def649d6760abf9e", + "index": 4 + } + ] + }, + { + "public": + "xpub69Yp7coaBSS6S6P4xNnNuHTeuLufggNzVngxYnqxieCy9ANftoe3rFXqPuDj44upc8iLyXssD9NGVeHJ7iMoipXfhnrJvNLHbCmXVdPKSn7", + "private": + "xprv3RHTzs1iakf7s8MMMwJyHFtT7xrYu1V5E5o6BbgG9oj1MZ6rsjdiRanQ2J9qquJwB1A7qf7uJ1q2ALwqmQBj4YXSq5WZCbPXs8RxoioCaJbBSMwAcWaydUcKCWyREBZRe9qm6QQbkmm2RQLqTYZXqQV", + "finger_print": "e1ed6cc9", + "chaincode": + "2d7b7d1e7da2062e566b4b158a3dbe1fd63ff135562c3710c422a259f6c33a40", + "index": 2147483650, + "child": [ + { + "public": + "xpub6BUxLirsv8yFZKuZ8YZgKUha42XduAidx4EC8g4zmPc4ymyVE9atuzU5MpoREU5kXj6JCrJkawVQVE5L44Nr7kU9imiKY7FXkBdBwgy9Muk", + "private": + "xprv3RrnA4qkaUGsgPDwNKxYoNRKiVmFZNWs53Ta77LvaFZ5qbVqy7Amb9YrNVpTVYTCTdmCiRSVbPLQ4B52TvxisAmFwRW8foz6gNWqmDyouXCj7kaQN3KFrrdidMVHJCChbTmbh8LgZQPdJ2q7QZAzX3n", + "finger_print": "e8fabc08", + "chaincode": + "61272a8bd3271a7194a6b0f716ecde231cd938751da52e28c7dbe4084e08edc3", + "index": 0 + }, + { + "public": + "xpub6BuXaAoSF7eKSBwav7z2Y2JSPfWKd26NwibWSd6eQHHj53wc1u6pgV3shJjtvMEoD8Y7Vw2T2pz6ZSiAdC3HG6SjvyLzq3adjfdBbG1xwmn", + "private": + "xprv3Rz5YEsxdMG3bdev47nYsQqDbkyTLtb15curcxigovQQCPURT1Tygi8cq4dWRwqgs2w6hsX2uN73MqfSW3j2PMCAZeVf5yA7aUaxZ1Y38E3shNw4RSVjspYDAW5KnUJk4ZnGhEuPmtVcT36CpSezqE8", + "finger_print": "229ed47b", + "chaincode": + "9a0b5df7b1a9d75410b96369d7640eac59c9e8417784f377c6874da7a532f519", + "index": 1 + }, + { + "public": + "xpub6Dz9ZXB3d3SiX8P5xFDctydbeCHm9hSPprB7i2fJ2Z4Ayje3LXya8VscXq2XHZzk5wJkTQTHJnujkFprw1TsefNzveAdC6a9d41EPvaXQR9", + "private": + "xprv3SbunKaZT57wCoT6LPLvxB92m4Y1jBtiHGfDsHFA2MX6zBDy2kWMYvRpuVdaXPMo6yx8mQ91AypQm8pz62oZbvUakj1UfFeri4j5QiUzn1o7uUwU1CQG1g8PmQRGkmafTBpFN1ugpwWZmyXxjrVLf7s", + "finger_print": "3d8f9783", + "chaincode": + "3c74062859c7fa8e8bb04cf47132d0569641e485f2226d45cb9d5e4a0df89e92", + "index": 2 + }, + { + "public": + "xpub6Gi4sJjxdNiP5o6kXPFAesS2MPM9rc1wWsASDF7LhMazFNQK96jrhuMS43YhPty6MA5k5eW6jgSqZBqHWune7j9V6keLGEEh9rVrv7oME81", + "private": + "xprv3TQpfVzdFRGCBecz6F7Z2hqiqMrexpL92Nzt4cq7T8X4wjyzczUS77n7pyavwUzbDFRHHr8vgNuY5ACYHV5KdD93AbL5Sbd2ExeuvVnmwJjfw8xowjK2CnpfFaED7M9Q2WfSNQ5LcqWGabv7hFrZVku", + "finger_print": "affe3351", + "chaincode": + "8bf95e5c1ea22c93496b1612b34eeaf6239784dcd7e04d89cd51e27f3f466f96", + "index": 3 + }, + { + "public": + "xpub6JHAZQXSsmLd8GaprQNnH4WCU8khLzr2aC2hyMvyYYfo5cbSZRw29bzPKrRT7bdfFXFt4fFMz8Vsuzd3shVuMVwcXiRSsUC8mhTVfHdK2pY", + "private": + "xprv3TstFPCyeS8RC7W6WvzGMMKqf5uDR31ZMFSNS1yNMeAmSKw93CWeYwgq5i93D7vN2B1rFXGxgQXGXBhtMPueSw9e8mMuoQUJN9sAf7yBJxXXz1HkXG7r2czTodHdHFEZVenMhPoHPURrzAx7cQFVp5Y", + "finger_print": "85aebde3", + "chaincode": + "af41d197f84f036ce3394e7b723853f75e53093027053a9068d626d00fec6ddd", + "index": 4 + } + ] + }, + { + "public": + "xpub69Yp7coaBSS6UYcR389a3y8RbCTGyB8xNZj4tLbVZgB1ECXQkRH6nknzn4tfDFmJuCGRLYfWBgmCWkPVdmjUXj1YozUwh7WB1zL3P1Wajbk", + "private": + "xprv3RHTzs1iakf7srbvHgkHSfquPT9Ean2bZmTnH769La8WXaaYUjdaaEE9RTcWTpKCKv9QgfmDkBSwGiPVRnMNarhLDigm7RbuSGmbtJGwfGdd7tgG6aTAABQLsE1FarnmnLMBUG1Tb8kTF8sqEmtmtjs", + "finger_print": "e1ed6cc9", + "chaincode": + "23ca28e487556b9a3d767166badcd3af83168a33160ed4987e200008069bc6a3", + "index": 2147483651, + "child": [ + { + "public": + "xpub6BbizhBs8CpC3fW8wErfimXBbXhMiHAaTZdx38FYNDEyBTG9YWcY9uwuSusU8633qkc7bLSifmmchritpaiMCdwPqm8YsjzH9Xw9cAVXMcA", + "private": + "xprv3RtnoMEFjBZ7HSEK9vDPSnnyYL7kzwZj1jp8EF9RXWJwXEzRBMe2okABwXb8HZoLUxCz4misWLvCtADUsmNqEuHzFnRtXjNaePiyTJLvBtCcvYYqDnJT4w8UWPHX3jcFHhcAFGLEETZntifUCBGS8Ps", + "finger_print": "f8dc12af", + "chaincode": + "bda797d0f470c622f05b0befa30208f1f236746f783cc92365f02b9764dcecbf", + "index": 0 + }, + { + "public": + "xpub6CnGth7XKTh6Z2GRLwvD9NV4wgKm6zBU4Lwr1wbZs71ivgz58GgoToxNR5y7bQZzTyttrToMLy5FvWbMgmGqMG9PsiB2j8FMiR1qELhCWEg", + "private": + "xprv3SF9tTAgE3oCogpRmgjcSPu1neZ632HeC9PUnyfsuuoDiWvfzu3cKEUaUjKe7i5DeViaK6nrpyDuEmu3vEpJPXtvbmDKnVoDQ6GzPaacutqLsX6CrwzgU91do6c9VYH1DDgbyhGf2i8ZF1kxCoNYZQV", + "finger_print": "99a86638", + "chaincode": + "103819aa6a75ef497b26f5aaf200376b8d7ccc8241eb2c30d72296fdf427e3f3", + "index": 1 + }, + { + "public": + "xpub6E22vmXNRCAHYGFnV1VALkXGbHoR2W37ZCGr9ojcZUSBgo39Ep6PvDwPa66VCjf4DrJaHK6DNYeq5MHaSVMg21iEztJNwXqyuZw7tHzVJYk", + "private": + "xprv3ScUGfBrwqqWNww8e8V5k6dLfGhGVTM1L8gyobZoC8HFHoVSymV5eutkrB4YgTisT7LA8WNUwQuuxcHRzzh95qJME3MYhfWpyw4WxJKVZtbRdrqmX5FiUmEXphPZCLLJidSkNpVuF2uo3siZevGKVzR", + "finger_print": "41fbe9b6", + "chaincode": + "d87be64ced1ef55b95ac3a2eba8395207b6352e6e99a167c82408430c5dfb62c", + "index": 2 + }, + { + "public": + "xpub6GjRSRYzTGQKTogVhFWUAXdg5u5QrgSqVEf62m6cQvdcz4rgktuDh7seDgdCLM3kMNooHwJ66cVozVCmrVJWuameKPaTF6yuuRMCDvmEiGT", + "private": + "xprv3TRE1FJLRtngfmaP2p6CWF39D4AtRgmkWSdSVM5kaEAHS4WeiRbXjfQWjCVuBSvUiiFfzTT5FidWjrPYa1DR2KYkN6tBgdkoUT1aS2XUyaSt6VL19uFh4pMNwzqMFT9rf9QkA7tcFkdJD3AemLXHWLN", + "finger_print": "b32baed0", + "chaincode": + "e6b1272b645b3ac32a37d7d41eeb8db65b7cf742d0a7ae15d403a048b4faf40d", + "index": 3 + }, + { + "public": + "xpub6J6Cs6RnXTLghbZFEqiEBEij3yzi53hDDGDoA6eTifVcicAuNjLQRP4iMmzaS49gF4SDs8Vv6b6SkoE5thLpE8SxqRYyfNGk84yD1HpTpzq", + "private": + "xprv3TpdQcX9PfUCfqyEu6EYVe7yWHiQ4D2jPAuKR1Mz6wGyxSwXUdTnCBEeJeuVA3ZQ9hj7dpapa3rtEJajzcXtHbc8Ld8vZsHH8ieDNKPdkrHeFZNRHJYH8kx1ggYTQkin2fcP3ZEtTk3DpPx1kNcz7Te", + "finger_print": "6bf91796", + "chaincode": + "d15c8e6cf029c64fc9ebab81d291527fff8d9faf53a089ce04dcd04a5c7d75b7", + "index": 4 + } + ] + }, + { + "public": + "xpub69Yp7coaBSS6YVuFZwgxawrnbLMNgiZDnoWDB1w3hxS9GZU6sVMsfxChTdZoBAecKZfWHLcNNnJbqpwueCQuwNAPbVtu9Pq2mxWg9pApdsL", + "private": + "xprv3RHTzs1iakf7u2iVuoZGrKXKYyLik9adEsp1wekwsjsk2FxdrgJpG3Ayd12yfTr4pmLRgG3i6rZQCUTU7TckN91g5ZDvv4Ajx1ip2AXpqXeTt3KMdefx5yE56kfDaABb3joU74sd5wm7Ygxh4qgCYkK", + "finger_print": "e1ed6cc9", + "chaincode": + "b0dd18caaa2771f3cfab33234250038badc7d8db11b367eb5cf10bdd0c632009", + "index": 2147483652, + "child": [ + { + "public": + "xpub6BZX7bpmwvkgkZiaGfh7BrYCLAuWupyTtjvLnrMCvHA8Kw6UYRGcdWZH6dMoR5398wK4Bzgdn77bUEaQfZrVYh3iudBgWJbKSgoKdLWHJXc", + "private": + "xprv3Rt8p1hcqywUte6mAmptYMZQKtnEWcXsYrU1zjgL4H4wrddJv9We4WqKuqwH4hhK8nndbseo5k2UJMErbqV5Rz9TyMRD8JuxVMf65bW7ZwWdyZc5uYe4ZzYWRv1UAYLKNWn4yUnf155CZXbzE8YQnDB", + "finger_print": "f3b00fd5", + "chaincode": + "950c3c2bcb60151d9e6270fac95f8c29a55404e8e81baf902f176e8ddcbd3988", + "index": 0 + }, + { + "public": + "xpub6Bn86s7JPDZwnGb7rs18TfM1iZqLgaxNc6H5QHgNR3ieQAEE6pPbcVXUirUYTd4wMkZGjq9HpL4iKV3aBToxwUXJHH43x6rhaeq9y13pXn8", + "private": + "xprv3RwsxdYan9Gn2DLzSGedazpdW4nu3811L2JYtNdrwvsmJb8erHLZg5NzxRC3qgwjLzDZ7RMT8ub64DTxhqvM7geSjXekwgCBEvATiRctXG5VMuHHezVCUSq9juqaTa89wHAw89beXYeGHRvf4WRu6TX", + "finger_print": "1140512e", + "chaincode": + "54d13118f0549dc25ac4cc327068da79a22d04ef0364f1daad03c2171e782bb9", + "index": 1 + }, + { + "public": + "xpub6Edb5j7Eh18VwsAS1mWumhYYintKNFJbQtzUKv2kziWcgWG3nJeTFxebQXxpcGxVsc2P39qdLP2ngN14BxSW6yJjMbbbU9QHXA6FP8bP9Uq", + "private": + "xprv3So2rkeKLNxp6riuptF6MBK6j6GpDADFhX1LxQr5LHotNGRsFEFargw3hEqRCM844SeMU6tKjKhusHAWGACWxoTtaLx76vuK9tjhC6eWbb9QvYMTLctjaf2W76Sdacrhi3JExnp1PXZYjnL7FUqdjWz", + "finger_print": "95625e1f", + "chaincode": + "55b3acc01e5795d75c9e24c7554a2f78ec0a33f51af81a84a3b3315d27bbd606", + "index": 2 + }, + { + "public": + "xpub6H6o5qNdRa3ShqoaNtxYVkP8UNNoFBK9TeG27Skn1wX2bbKganqiFmAh9ntSeqsfdGYk5yExxrYNLDNb12cqZUjcKRcAxd6nX7zAyZMDsW9", + "private": + "xprv3TXaFqJhC1hFYjrEniiQYj5S8RFfG9ySyEUs9q6MoYuvF4dgdtvDK62NZnsg8vHoaMsiq7ANpEnxKU1rUiLULH6H3ktzCtjq8JBB7VA47QNjTeJQP5KsJ3Ae716S3Y8m3DWbWpZTUzQKAcmju2dK7mE", + "finger_print": "e54e4f82", + "chaincode": + "3490746346892052f6c167e9dd703270d857f7ab976b644da2e74046555f9fc6", + "index": 3 + }, + { + "public": + "xpub6J8Eu2b985J7D7Zjn2GJCd6VTyCiyEFBSvyF7mGCnDRFkMFeAAYL823xWq1hFUs4nWYBfL4w5rcWiErt2ycS3svHh2nkbMyujZrGu724LpH", + "private": + "xprv3TqEUHDNcyvVAh5vpwVqnUKKWJPeENJTfYmC5AA8evjLxbpghMDxz8y7tHDUCbZveD8vzG5K9MGHwnQBunjWhxJqUPTka4oFpmuniNtHFXv36Bx6TWkegNfBHtc8eXTR2Xdx2vUC9bAmv8eJtE3iNy5", + "finger_print": "70bf2596", + "chaincode": + "938ed41f3a23a92f94a6d9d3aa64406036cc699c508ca3581be70f7ced34647d", + "index": 4 + } + ] + } + ] + }, + { + "seed": "d237067ee6b0c6bd47df9fe3fd5e594ed502de207a0e4ccf197cd90768a751da", + "public": + "xpub661MyMwAqRbcG6aur4hYt5EWcLvyedYkqreFJ1ir2wwESkXJcPmUb1gpiUr44arKS8mddTA1gMMHw8Efj64qfUVrmmcSHUmcYLiYuqEwMhN", + "private": + "xprv3QESAWYc9vDdZjCW7qTut9ayi5vqUhs9zezP6z35etbJZm4PXUKXCBw8Y2A7UaXVzw4oCV5CfsggvW5KR8jJps6xqgfEqYTXC1JSfdGV6z6q8C6TYZuNVXmdoRiJRwcsFgqZYvA2nGSgmQdrNFAzAbi", + "finger_print": "00000000", + "chaincode": + "9c1ea3b4a02da9356294598aa930f93b50fde4537b7594d0abf8b248593190c4", + "index": 0, + "child": [ + { + "public": + "xpub69PLC76Vcn9XxXyk2rCj9xmVY4XuEhgsp6CPQqPZhXhTapxDpff6a7RxV6NtWMvPvvr28zQ9CJsjdk99ztycFCFYHUgi1G93V4Ls7jLXXXf", + "private": + "xprv3REedv8bV2aSsCQQgg3i2CzZBhmiAYdKVST8VYFxTXJ7GvbaMXs41uq3g6rGCTv7MnxqUNXkhThjeapSkZcboCJaDYfZeRefmdSdPneJBwhAoeHeFQir26pNjoDUwP73cjgM8KSyxNrZGiieVHbTJ7D", + "finger_print": "cbafd143", + "chaincode": + "9af48a2a78d6958e1d46fc4bbbb416e56206f5ec687ebfc1072de4184abff116", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BQXkBAupHcUARTbmQFt5VL84ZCyXtLT3C8DLDuJ5zQUWQGJR5yZmnb34cGP8W7VyLPDg94AkjniVK7bPmdpfhtqRx4MqgeoGSekdKA2TjV", + "private": + "xprv3RqTw2Y7UDdAj7BVJgeA6up5uP1S6y16GkKnWRiTvBo3t1JQ8Q5syhGjpmhAe2VoD5x4vTCyiU8y7m7vo1U8JCQrkD7EnDHerDjQYom2VDWPT7CCZuK44KngVujYL3Vr7wWNGBREquPifdcQ7BXKBFs", + "finger_print": "de9a144e", + "chaincode": + "f83661a99e8db6a097ced86e4daddb2c504d3025df3cd24e4bad41b778a9b1cf", + "index": 0 + }, + { + "public": + "xpub6DVanxDBCAipsQxCtM9DvEjztBtH8AkgXjzcnrmd42qX9X4cYf4QRkxQcZiwt4rT2ufSGVaEJqYNsmKpwNtcRNsXMrkeP7pWsEj8gd7ytvD", + "private": + "xprv3STRcsAvRnsqLPNf464wx7AqfJnXapzrn93eQ9hofTrPLyF56HwZHn58pJnPPCfY7K93VxzzKBVcgoryX5nSsDAC8GaWxPPuy1wkvrc2RAx38ExszZ4pKYFesJgK44fP7Tuxij21esM5sWTQfsrvuq3", + "finger_print": "fa8e4a13", + "chaincode": + "1be85cb678d2aad08f0906f8a1669d2defc1b22c67619354a70be25c0f5380f2", + "index": 1 + }, + { + "public": + "xpub6F81w6tHeg7g7e7TRbnpJBb58oPT86zqmDHuzKuTzc3JWyvMmRRLHchcoGee84ziTSURXn56ZMs4J2HdYuHJ716WJqgSbFd3SGomqaHi24q", + "private": + "xprv3SwUfoLqMiQ3gBNzUrYZXNK13YDGq9o9sZkrpE3ohN4hMqCgTPQ86q9KN4wBhVpCfa3bGQjpEcQb9jxMftwisuws678P6VGkxftAeuLREJnpuWkDToTvmtJQqEtvKHY8jm93s5AgB5xrV6qbkNY31i6", + "finger_print": "d811b354", + "chaincode": + "53f25b6a68dfdbd8ce0f3eafbc3ffbdaf47ba9d1371f22d0874833f7808a2944", + "index": 2 + }, + { + "public": + "xpub6H6BuyUU6ZCA3125Zfda7sf4f9ueinKp1WfJ2zNCqXWQCQvXPb9axPw1dMv7AGaqQUMd51vGeic21xTLDw8cH7tkaN1psPfF2ewwXSbNMKN", + "private": + "xprv3TXPosL8FbE2oCKc1NbxjobTQkoWXSizcm4PUxkKnZnyvM6gCy8d2LigVCdMnAjsPFpcbJSeSXvixCfyFdksXBekZaQcSJSi3L4mQn8XmGTGNyGDoh4JUfLbD6Wq5Wc9MsZ1h2vQF8ibHvejaDEbXkA", + "finger_print": "e3e22dd1", + "chaincode": + "427928f169be8bf6add6bf6f4d6a0f0938f4252de9f2a36f9be4b092d8b7141a", + "index": 3 + }, + { + "public": + "xpub6K7MFEjXmfYE6ErC4ZzbvQ6CEysGX2pDRgv9LRBym2nwSfkiHBE99sDZCNFySQGP8HQkxLUHCKHPXJaMMT88vExiMitisrvyAG8Vhwxv4jx", + "private": + "xprv3U8CSiSULgxgcR9NPXVD5PZFvADmcW7cdCiuF7k6YNUd8W2TCGM59fo8Y3AjHFf1HkFgKZmM8iKdoAZ6RoZ7tizzZWgRJRWR2Nr3c27u9zxT8YwdVDmVYgsuw5w6n4L72adjLrPChV25RexB244yjyS", + "finger_print": "f6b5729e", + "chaincode": + "54097a924fb5fd9a558293ceaff70b260e86e7199f0219b1cbd8e4ab747d026a", + "index": 4 + } + ] + }, + { + "public": + "xpub69PLC76Vcn9Xyr8nDTCoEW1J1hGhKGhHBceeQ8f6ZJS9Hh92kxuBBi8nJJAHyEdS79CrCCFVub6hucHfz652sQfnT13Ap8SnkZiySwkgvxr", + "private": + "xprv3REedv8bV2aSsb2YUJS6FLxadHpZm6AD3nFjJ1osMhRk9wcKLhLSpiNLbcGSpy2vZLCAfRbeQrfqmVvZmrfPKMKUs5AURYmG7aKkvqvirgPUaT7BHh8x5Uzcp5XumGth72dccEbuzEfGhyDXTUtdi2f", + "finger_print": "cbafd143", + "chaincode": + "1ed6976b7fb76ae6c3e5053850ba40258b1801b9f663cd20cc35c27cf360a555", + "index": 2147483649, + "child": [ + { + "public": + "xpub6AsVCzqEP5NQ9ZT9thQt9xP1Jy53vVTiLtqDv6UYk82vtvgMPsZdR9w6VhZZfUbtLkcfnC9xpZLh3s8da6GRuPwLWPTLzfXeMLcQpMkFGLK", + "private": + "xprv3RgF4VE2HnLRk2n9yy3aJCUWXQ6jfMNhVSgdVbHdRjfsfkFZ94t5ucnxFBhwwq5hQoUoz2ZaptgMTF4xbR8XvcAKKfrDi5g62b2gUyj96EEeM4n3zBUCTJ7WzW4VYKev1Wcvr7EwHAtN4uH5JFm6pun", + "finger_print": "95c84471", + "chaincode": + "d658fb78839f985cd5c70023b027ff357d6ef82592f2a8dde938944649eb7ddb", + "index": 0 + }, + { + "public": + "xpub6D6qVtCFhDeLWuukub2KMkArDzdLW7W2zHpi9ZGqBtRcCM1eqMgxPndCouZyNJBhHJKMWS8xMH8prkyyz9jWnVSuAMLBM5d2eZngUrrDsYR", + "private": + "xprv3SLfhxJVGePAWMz2epDLu9iYqzUvjLeP1X1oLYcmKn3UQLh5PQtAqvV2GiEQsjP3tTzw7Lb4S3T7B7WF71CFa3uSQ9YMv5cthzi3yRbPT4o4w3kWnzQaDG1QEv6mi3Fh78RLC6MZT63B3wg3K8cpyFf", + "finger_print": "c53303e0", + "chaincode": + "185a84ca139a3df867adff47d59c30e0bc4773704888665ce0a9ecc0d46e7c45", + "index": 1 + }, + { + "public": + "xpub6FCu9GZCqFPpCc7KyhRYkoaw878gaLYEkJxL2ZTwsBBgKGbLPeXS7cYSozbvyvAN7qJndZMB9ELnxuVgYZLTwrzoS2nA1vYSABeyENdFD4z", + "private": + "xprv3SxvoPc9eb7yqQhF2zHAD2atS2Nhy8wc5tEHpo1axS58JaVruR8qjE3gtcMmWQgrbnsfreeQ5qZg34nho76his5Pu4Rgg8oiGvFoZDeDR3hqp4RSnEHtBDjHG8YWyT1Xp4ug7QLj1rkw2p62e2irSRp", + "finger_print": "e385e789", + "chaincode": + "3b5aa88de88897d07828b3def4849d2825a3fba83d7a6044c86f60bc5c98bc89", + "index": 2 + }, + { + "public": + "xpub6GfnY4GmwMW8zYS1rEbm2sn96uvnKDLWmiJUonjXYtLyNn6ws5YSq9TG2ZHqDWuTPeR3scEF7cXz9JmfUoTxkTt28mW8RRGVXvMC9hD9NC6", + "private": + "xprv3TQ9MUXPswP37x88oysJDEkneEhhcQ4XonLATyN2FEUooSqLLNJp3gzz513zuR6tyN3QqbCN9yhhHKNXtKvebVkXPfvL19EZ57Ruh1CaaZ1PCpwrt5gavAyLf4Z5Lf563teFqXZjXJzaxigAD5yc3mG", + "finger_print": "aaa41b30", + "chaincode": + "8a48b6f681240a9d137d3f5e7a7da33ae86b151bdc202f634b941c3fe88260d9", + "index": 3 + }, + { + "public": + "xpub6HR2dxCEMuF3r7VrjZA5CCtRq6uL8k8unXdDa5A8LtMiDUnbwYtn9ziqvk3GhQ6TNpBdEw2q8CkZ4z9JRe4CMd884cpa2CHcbYUKfogzhc8", + "private": + "xprv3TczR4U6mjmyNbz3QAnyUC6JFPtLzHfrdRmSfYieC6kuXEwbJiMqrF53RN3eHQvipJ6YgmpDwcZznzSWvmmPHMQeGjg7Lm7DqkEE5Jib4YyNTvdMFprQA5MFXN61twTrvarLBUTYJzVvgE3s6yDquTN", + "finger_print": "1013a96f", + "chaincode": + "8d4736c1e307626830378cbedae8b38b50d88564126a1016e764e2c9ada03e38", + "index": 4 + } + ] + }, + { + "public": + "xpub69PLC76Vcn9Y2ZzkFiFVFmrfgwCxdzxP7QDWZ3sTmq8BHygX5nar3YK3zxaHC9KBzsJedP1tftbiaN8TFyqe7VPazAxXcDpRHmn5CmL2qxn", + "private": + "xprv3REedv8bV2aStPvS6YBtZHU4tQjQcAhg1DWob5fxcarLVV64cQBF5nytVXne5tHWuHhuUp29J6LjttGj1YDxYZRBEnTo5NZDUcuY4ahnyPGwCnZBufocMQk8ELqcQXm8h4vTkvbK6EJoCdFYNqEHfc5", + "finger_print": "cbafd143", + "chaincode": + "303719663a1e82acf9a423311becfcc66256a0686311f45ded65f4a23a4a9d3c", + "index": 2147483650, + "child": [ + { + "public": + "xpub69qhy6oRJc8rxivAnpFtWnT7BquSLDu5xYWpqYKKaKVGtsCEovoSm6Fs8jgvr612f4HwtdtYYqmsJxynzHsfyNGMMBbY5ty68U1Zsssousi", + "private": + "xprv3RNV5LfTumnPwcXFf33iU7xLPNxdKB86zA8syAveemZQy6N5xrj5GSbvwY4RfypkYorirqQXHjRRdJcAg8BEcdiX1S6AnwQ5aLqu289zKWLnPVFasJJKFEUi6Au8Z8mr5w2X1rSgbEguZCMxyvMjDdf", + "finger_print": "098e4e2c", + "chaincode": + "78d6b05161cb32ac5b030af1e080de2e1d855bd96a760bab59f44d845eab0c96", + "index": 0 + }, + { + "public": + "xpub6CexYQYvrXdoQtQCqazNz9TRw3MWkNNcNYQevSfLCg7WtEs5hJL19SXiG4bkUHGL5D1W9k9YZMHh4YkhtXSiujF2P8Usrydk5rVspSVwcgG", + "private": + "xprv3SCyq5Mqhnh6X8nJtEcGkcAndCNFD7sJsjnNZXJMyPF6hN3aVTwo6cqWYLkNo5yZmNgfMhaVMQuMWcW1hasy3JHWUSqxSjXi9PuWo6a1z5jXFhmvQ76MEPPKScez5T9KetSZXV4H8nbJFJNnzXrSRB9", + "finger_print": "887ee823", + "chaincode": + "1af5578ac352997b717953dedbc3e9b0d2f5fd6855ae6189a5f1377a89728d81", + "index": 1 + }, + { + "public": + "xpub6EyaZeUyuFujE27MwGm5wbYEJGQNSUHqSu32qrJW2xPCbvRjQjyUyfRR3abem1u4k2tDkxGzhB1Jsda49YpLxjkk3NjJ17YYtvCT76pfRiM", + "private": + "xprv3StyJ9o44qN1MgAsRBpEEqqcfonJG8VNM5YyyDe9bQn7515zgr2c9oyxytw4XAvm912zY7dKzoDu7b6Vk25cCeAJGiPrsWeCqdiRXB59kHWENDeMUWSEuwmSz5DXZsiPfC4N9EJuNkDaTw4LX824N7F", + "finger_print": "c447060d", + "chaincode": + "7f5a54653de6acf666ea888bafaec8476584c01a6416e3758300d38bbbcdf8f9", + "index": 2 + }, + { + "public": + "xpub6H2Eri7XudfbuUyiXhVruyUNafYHxr3GUYKbSSLNV2v5Cboa13ggQVPkhD6wyT9EDQSSs1QDEGd1McDcg66x6G8HUVFWzaUpoibtjGdet1n", + "private": + "xprv3TWDmKYe2vZDQgqZ1nykyTLSnhDLfTMUgftqdXNYDHqKWnfQbP3cZ2fFd4UsbN3qztgyR8GFQFK479fwKermQ5ZheeNkKYZyRhNDAxCuAUvSQRasx43zLSUeYHEN2FE9aCs8CBwMJcf6tYErGRdxxAH", + "finger_print": "da9ea6c8", + "chaincode": + "fd819d9f7645295f1a1857b1e0c058472456ff1a63ff313b276046e40ba6f247", + "index": 3 + }, + { + "public": + "xpub6HUhD2LCaj2HmZWBzYiBTMTp86GY3zM6qBGo1YQFcwSfqbm7Nj4BKZSLDo2sQ4PgzAj1wLfEcBYemotjsimi1DSpSAHSs8iZvmkdJyQRHo8", + "private": + "xprv3Te5ZZRQoiSNc8pjVvAmcAgRPfK6Dt5UswcAmkjp7EbAbnQyCW3z49Pu4D9HUkJLhnMjHFy5yAS6btBeB5knxEGXe4KCxZemeZ8ged98iJnJuepMGNLKj1eVf6nKzHt2GfLc5PSE3VrUeomTikE9PuR", + "finger_print": "18ac8044", + "chaincode": + "7cc77b0637aa3c9ba3cbde4bc2b7f6568cead26704d192c2ea1c62c156a00430", + "index": 4 + } + ] + }, + { + "public": + "xpub69PLC76Vcn9Y5sGGVVqGsfqtAhETKVMwRhipN9ccdsAauQUSe7DBGGdmKxZhejynsD2iJ3xeo6bgVZbMxnD9sWSViu2VuRQ9U7msDooXeXp", + "private": + "xprv3REedv8bV2aSuNju24ac4PD7AcR3vWFkJHuAoiVmk444eGheQqTvnFJUC4yg84dv5ZkPG7iTqjnS8VUn8fu2EZwqxLoqZErwhdaCMFyY5JpnTnEJDDqjnXHZxaQdu2wqwH4WB8dTxWgrCEbyNGHZndA", + "finger_print": "cbafd143", + "chaincode": + "7b717ef9d3ac36b2494efd4fb44064285b69f32bcbd43f65a387604b0b907e7f", + "index": 2147483651, + "child": [ + { + "public": + "xpub6ArrxGcN5TTnVuSzBXaCx9hDJCU6zYz8o34WMvVhbUL5n1U9y3Tc3MHcbczZGCDMZ6TCc2hnCEb7Rkz1oaxLewSetVAz6ATpnMBSCebXzb7", + "private": + "xprv3Rg4Hr4nEMXdzTWzvbKjpRm5H8B6UV3S2hgFYHtpCSU6HL7R3PsaTLpLq39PkDNFybg66xdbXXHzJvANFAQkNuwPKGvp8imbgLLx9BkFXviAyyYXxXzDVBzWamvNimkZsd1ftzkqjvkwq9u48ZVGBJX", + "finger_print": "9450e9d2", + "chaincode": + "4537092b6f80cc6e7727b0c532f1ca964bad604254538c5af4ce35260eb2bf61", + "index": 0 + }, + { + "public": + "xpub6C8uYyRBmb4JogfK3m4M7b8HRyt5PS8TC2tF4wxAp1qcMjfjpx2rUfUKfy8Hsn9CyXiSvmDi491fdSHLLbCiZ74r1DEFPnNfta9uF2whevb", + "private": + "xprv3S444447bYUV19cPA8CZdnMCBb6QX6DbLYg4ppAsJCGwTCPRQJtbvm7K7jCiQ9cVE7STH8hEUdDb1H84iJBDCxUtV6dPqKot9DTjm7TQcXHZeFDR2jdupuR7874NGpRNiyvMyYGCrWBQrbQy6iMomX7", + "finger_print": "4200e8cb", + "chaincode": + "693bc504daedcd354bb8193ce1227ecf3b5b17c2c6206e20189538a60841f548", + "index": 1 + }, + { + "public": + "xpub6F5icqGCFciFc6E6DnghwSrUvuaHtQsBY6fJdZs7Ebz3jW1GWTWRYYtJnde15q3qfGgASk8DHWLThpSjbwMHi3rUkHjL4zVXGX9LexHymoX", + "private": + "xprv3Svo4qSg3uZF6WJhNfN6ciRYwFQrMPDDnwZxCh3H2KxnyTQqVasebTzjpNjNm6cj9HYMLnHdDWMXFRc3oK7SZ1AJDQXHpNKDuQyPdoNmGBuqqePs2xR1uPtmBBSawUneUvqQ9dDnCbqEKNotkLDK7TS", + "finger_print": "d2ad6d80", + "chaincode": + "972bfa2b4f8addb785fd47c2366108c105a8b9fb9692a3ec629f125f15a74727", + "index": 2 + }, + { + "public": + "xpub6FYbjDQQEhA1CeYtSXid7gdpSNthX3Q5sbMsW2zuUSyPDkNXA2b6SZ9DuX59aUNDFV8vx4ApFDQHZV4hTwKMViL8m7Tf4ZzLD2eNbpZ1fso", + "private": + "xprv3T4nDgBsTq11oZxBR88j5UqUKbaEZErS6i4j93gMC8LUabKFjc4yKw1DpsnqyGBU7C75P7HkUCLoysTbWgaeFNoyqtDtiAkahCEdKyxiRR7KsrBBQAKyHFrLoTFatxT3m3Ht4tsn24viCyY3RPMBfbb", + "finger_print": "11bba083", + "chaincode": + "4511d2210af60d9f26111b997efecb6beebf36b6ca0c3839780ca1e962b7be23", + "index": 3 + }, + { + "public": + "xpub6JP2tys3gKeHUKHqWbaoAXX5asCZFHHY6V8AUooLSkSHAR8CzhFHCfJowRHiAZpq31H64EvW9aciaGMB9uEbJvKfszQpu24sJCUT2FRh7vM", + "private": + "xprv3TudMGAQbx3tfuAjrFeffsx5HBrNwLq6GPF46buoevepzbXwfRSg8GRkU5ibk9rFeN6reF67McXQWyxtJU8CoTodBhLUhjtBRqrERdUWBuBkngqZKG2GrWJa7yJFrMr1iEUAXGEvZ4CQYwiJLesNtd9", + "finger_print": "93726a77", + "chaincode": + "4d04a944730d2fddbd304ab1a6a938ae4ec4583106e36b6b4328d2b1496b422f", + "index": 4 + } + ] + }, + { + "public": + "xpub69PLC76Vcn9Y9H2iqwnX2q3HYGYUNbZ16CE1DuWphzq1ZDLk6JzKjRZVqxfDFxRGL26hLPLiMVmTaGmo4mMdAyAfB4h6TCAfFCPMcKHwN3t", + "private": + "xprv3REedv8bV2aSvPVLM4CxvhMUvuio6hAMQdPX25m8nBtmiTxCSc8AmW4SFewZdWdtCANdCRTjVQkpuUNHLKQGxuRNP2t75vP3ExxgvenzEwhxeEEhetXp5G45BKaSHtKiYs7TaffMbzvCCpLRdq6eHy4", + "finger_print": "cbafd143", + "chaincode": + "d1ed043a61b1fa56ce01f920607da08427ee2095d825883d5aac3d39ab639322", + "index": 2147483652, + "child": [ + { + "public": + "xpub6AM4ZfPiBhjdEwmeTknnoXeiayQUd7qtua7VoMo2QN2d7ATEgYqCrrr2ZzqJEnaFYfHnBQY2tyLGXQ642ohNXZXeAJ24JybpyjgT64RTnZj", + "private": + "xprv3RXCrPEaGhxerAjKhdsGzDYfV3bgtrDXUqadUbPsBqwmPuh2B3VYvJnxkL4pDWuQFXDpZMSYshGKmE5uCivRiNWeyGb7sJJKsYsKUJH8D7g6dMpC31fpMF6ARyMZnAihZCTJyNcSPq6m9PE2mEqTr8d", + "finger_print": "4e6a14cd", + "chaincode": + "63de043fef8e7330d37e163bc2973cfbbbbc6e5264469981ee44cccc6146f180", + "index": 0 + }, + { + "public": + "xpub6DGaZ8SAGu68dPJ6tiBkXhjnrsr4dL4pw8cJEFQbnmHGymZNEKH32kRqQF3kNHPXSst38VKgWtfAooqwaAgZwzgLjcuqfvafE3AmLLaY2VD", + "private": + "xprv3SPZZeBBs51CUqVMssq5acSJBbL9H55bkdw2Yn26m3pKqbbnGQrH4pu2SBiiNbXJn37oJBdqCXpEkQjQnknKYpZxzjr8VWmXyNSwF7gzQTKyXB1Le763kSDeNCCKFnsDzCfLzq6bhaUzT9tpuvXf3rB", + "finger_print": "dc0d4e1f", + "chaincode": + "914566c152547d1b00288642a87aea9278ccc06ff26c020e3d26955e981b8e86", + "index": 1 + }, + { + "public": + "xpub6EXKdHZXdpTc63e65D4CMHhLcZzFmgorv3zTGS6DzP2UgXrzi7iry8ZwjdG7WLLaLyHtwNMnuyqbgok3nxz57mnqxCeJdV3Wd6sjWjkqbLv", + "private": + "xprv3SmAtZ7PHgqQJhdAt8ABJTDH9Qf9QsnFdt81LALmw8ZA9W8XFUbUjJbjZsVaMyALGFwpvyyaWG1H1Nf9CFoMq46MFdJEe2EHDx4SVcCYWc4ogfyqkHgwJ5uPLueTHSKhQjDJb97P8pnxVnyEUAt8jks", + "finger_print": "86af5690", + "chaincode": + "afd740a551eab5f12fde547fcf2648954f5e0efd36304dd08ec294209c0ceeff", + "index": 2 + }, + { + "public": + "xpub6FTgvcwAWDQ1Hu4RzH1hiyCyz2PzXbbzx3EFiy7SceCgyvd6WhgPAThpMAv7N9eXYUyeUaVwRwUiVTiFpPqNfctHjzydx5XPV7aMecFxNJb", + "private": + "xprv3T3KcdS9QDLTEU23Xbr9zMs6cc6KxdpGsuJyW59CXh7s2SRpSHRFWQUfcdSGtDTbi28kdxybvVruz5VAJusxoMSsbYSjDLbQjM3eEN6dvN5j7iHxmQXgh4246yeUnRFouHDHke3cDJDEqn9fW2EjL2y", + "finger_print": "0636ec8b", + "chaincode": + "2fa5f570e433ced156505469ef0fe899717dd0150a5107ca4323a17b9409308d", + "index": 3 + }, + { + "public": + "xpub6JhYMrev8HYK4mE1zWLQd6fUxy2TjEvMCFFpmM6uSbuCPDdsHZYX6p7DNT6VV5KMY9kYNBQR1j1M8BHHuUQTKvXADPwSTEY7QTcnYuesFBR", + "private": + "xprv3U18Ec5RzEqS9B1WS64bJvkFa52pxzhxz9sv2XLYzcSkiYLJ4uzNuLpKE7gHeubQ3ynbCvq7nFPGHFKVvMvVeUBdSSCvSnUgNGvf4B2hNpVmgDWa5AvKUcKbYxARCxqPcTCRmAAbbD9xoKGShxWeAz2", + "finger_print": "bedc7ca9", + "chaincode": + "5c3aae23d276e70dd4696c862fb14705d0f84e0b74a5edcfe5cc827486679529", + "index": 4 + } + ] + } + ] + }, + { + "seed": "efe4263dff607dbcb881981af0d2b898be9c5520c1ef49ece2d863ffbf28a286", + "public": + "xpub661MyMwAqRbcGNPnXdyBSQTR3btJh4pij8DncN5MgcAbW9pPB2FsP9jC41E3ZZHa8xfJH5HuvLSQNfEzUBdV6vFndt7VJg9nJw5ue5LkGtd", + "private": + "xprv3QESAWYc9vDdZotsVCdgUNqfkVaPsRg7V17mxYtMCVTedGKq9BJPfNjusHDS2tRQseak3jqfxXxuAVaALUyyR1qo6cSSLr7dJKsE69d5bAc26qRPHL4xYxmfAsLL1edF9eyBWjdx487so5Wchic6TJe", + "finger_print": "00000000", + "chaincode": + "b77eda4e303751d6bf145a4f554c066a903023d9ec4e6248bd2e6a6bd467e9d5", + "index": 0, + "child": [ + { + "public": + "xpub68evG4mZuUxJfKGj3jKjCD6ino7BHXuoEkkuRXWePDBBJomzvKmtFaV6KRMccxMGWq3hFjk6J1qhyD28VYcRGaS8q4Wa4EcEYbDa2eQfts4", + "private": + "xprv3R23tHC3CdXLAVjwtfVNRTLgqXHM7aUvJ5RCSwycw3pHTss4qrXacEing54nzbMP4Ms65bkmHYkCr9A7N1cHc597PaS54LrZEpybFANtVJougvURWCuoWwHb7YzLbfHbsANLfP6WRqD4wAwm84SgcEt", + "finger_print": "6832fcd1", + "chaincode": + "f13660aa0e23c23c7d1bf8dc82e496225bb096da3c976612df56eee0ee2b5fee", + "index": 2147483648, + "child": [ + { + "public": + "xpub69t6CszbiDQRetnczDYt6pt3wncbwsTXTGrFCGoNkmtJ5LkvbDUBY6X2G4pXZZsLeAVQwk4bTPwq5RmpvgJANXpnXjg1JjPWrHU14Fh81ZD", + "private": + "xprv3RPC97nP6Z7ZY24fm9qMwcYVpem23b8bSXQ9hDjdoo3JGYvtH2SC62dwkh1aDfJujaZvnLnf3TyD1Sq42HS4y4TaHp6eNmJrs8t9SAHjBShJdSspsVL11ZdMgoufKvovYd39c2nuYQEiTNChLRQPc9i", + "finger_print": "0f258b40", + "chaincode": + "99eae4a90d3d87c6c0d6e4dcab6564c2025a477b8e69e9ecc8fc28e2b882740a", + "index": 0 + }, + { + "public": + "xpub6CHAGo47kPoUmPoNoYyjahh5R1t4KML4tY2ZBjnT3TfcB2TTwZTkhwMYnj3fZUWPebzY2HVAewA9Hgcw7kYWxXBKsVk1hbsSiKptzy3tc9g", + "private": + "xprv3S6WGE22EpLmHQQpdJL489NR8HShyhsbkHviCEfkVi8HUGJzQvu253WTgKSLzaJBE6GAAXR6smWk3bAGQFmuc2cywjyEvuxQ7mE5nQKWC1qw3eNzQwjkRFbKZAas4Y12W3PaDs8L57TEw3PmkzZEESi", + "finger_print": "555d5564", + "chaincode": + "bcd55a2affa0bf775fae9e2a37aba4429d117329b6e4da9fb64de2375861fb4d", + "index": 1 + }, + { + "public": + "xpub6DqG1fKXbT82Ew6c5ATdN3UZnA8XhQwLk6Y5ZrAHp6Y1SnBsBKg4RofXvynycV69hNsG1MS3mSHastagwtEwBVYnkfu3DuBYtXWa4P7AbXu", + "private": + "xprv3SZGdcXueQ7v8CMSvJC52GpFEQGxWdBuKg1tXh6rVJNC1hFVQQWfFMKGiKGwmrFHnbvqyn4tZEB8vy6wrnxBjFBUtkA4iSsd2AVTQyA4nYW4i68rnd3ZDmEsmQdCvyr7VYkhKFcFGFDcHW7j8VjBShw", + "finger_print": "28b5de14", + "chaincode": + "94b6f632b54abcc8dd3ce1eb4e60cd61cfb4bf57c1dcf952801a98905518ccfb", + "index": 2 + }, + { + "public": + "xpub6GQUo7P3YoWVpnMjtM2UKKjZZj1L49N6EPZ7HvaJRHMdm4DzivLvCKcH4zNjWYgMz92wCULt2RfPcD2evTh9kyvaFYWfoScAaSqeAEs6q84", + "private": + "xprv3TKbe4dadtufx2J6Gc5ujtvBjHbtTQPgiAi4UnaKz6AgMaDo5Zxirn3KwmC5PPZmqUzuZYheWNprLy9vNL2dGvtRXy6gF3FTwxuZKvUwnuUoQUjteDJCN8eC6SfZVpjJC9afvTobzDR88sxBNYttUsT", + "finger_print": "86bce96e", + "chaincode": + "a9c85a8dca6c7415b0ddb11627f9baf6fa72f8a51d8052312031caabcf4dab17", + "index": 3 + }, + { + "public": + "xpub6Jg8RFksjgzGaFULtUm2xT9v2UEd2GUAESMsPwonn3NRY8iCav9ijNu7G9vk1dqoogw18AHJgCZrTTB1ZkQHtGF3nfq5XkCBQTTz9WcBDjp", + "private": + "xprv3Tzhtnf3MJFarq3saY1GoBAtjpntyLZKHNBsnL5z44Lv49ow6jz9q938UHhRany5Xfn74DwWcKDdynKFTzBHThsp3x3YSUKgnbhri1eAPXSBCQDkLjemfcFpNnrJ6RT4BqtDLWgUUghJYzGaUWxEsSH", + "finger_print": "bb8c1be9", + "chaincode": + "95c1846484df4b19cea94c0a92993cec6de1a14ce6c768aae04792cf9bb15b27", + "index": 4 + } + ] + }, + { + "public": + "xpub68evG4mZuUxJgC7oij1ah3o8rseQBb1mSgBMmWTWctkzCemZZTTrCSkzgVLahKaUJRzCcYEjRj1JhRx7pmonikFP8zU26FscW743JL2ABzZ", + "private": + "xprv3R23tHC3CdXLAkr1NDbaSbaHqgHgcEwr64CgB6qVg3inbTthoySqERNn5XvkYuMSZDsFYJm2EV3W1vnG78w1nQXiEedigpXb2pc8tXDNLN7DcrH1tSuze5Nn3xQHR9K4DdfFfEoDpru6DBWHfwpBJcU", + "finger_print": "6832fcd1", + "chaincode": + "4943f555292c8fcfcdf39734715f3fffb5696b37664710290a0d04566f15dcd8", + "index": 2147483649, + "child": [ + { + "public": + "xpub6B4BSRiyPfyoLtzAh4j4x7JDwKKs5q33jh87o2worB4ywWpW86F45U8n6cFEBWz6pGmCUGvLT52QmhkTDq1tHo11PPEPirZtTuKTN957mLg", + "private": + "xprv3RjRJpyowQNe5c1NtXyUTETRuPj4XmgVHZhNUgg4abesvfu1XENjJresKWXyUMs9KCLCXb4HvkkUcy6rq8bzQKUnrrU3u3vT5B6SVsWt8HTjxa3DtNWK4utczv2bgmWvtxnPYH1aGQQvU6H1KfrYJ6L", + "finger_print": "aeddd0ec", + "chaincode": + "e9bfc7be12c6e611960d284025abbe25bc8ab94c249a70e4b9c776581d2310e2", + "index": 0 + }, + { + "public": + "xpub6D8pVPar3SauFcZB4DEXYqLHXhFKzD1iLorpbqht6FakZurVKCnFuKJiMT6WU9YGvByxU1EE3wmsUkVsvXk7Mjbou5gYzXSrJ6v9JR59JRT", + "private": + "xprv3SMFsDEARPo6aG7fJDWroTQg5qVPndaSJM9j7hL4oPp3NtBQEi9EuGk86tWEsqK3Lw47GPfDRzwSJ33cecgHkmcWKChhyQha5QTPYZwwAPpvMBhgBh5DeBnhQeb38dw3C91Tq57ARCqo1aSvJbgZBMR", + "finger_print": "c9d9937f", + "chaincode": + "b807c99a8779670cce2c2dc871b586cb75912476038354f08ad1c54d3d7df283", + "index": 1 + }, + { + "public": + "xpub6EThXQVupFspbS27kHU1cbtcFQnEbLYDXD3sVNvLi5uU7nVQFZ1SDG1r6TREniGtZzqhx5EJfENaN25fRnhPqasGnZdh5ZqNa2HnWtfmM8D", + "private": + "xprv3Sk6UbHBiY3hrtV6sedZQ3CJW3uYazgLzHxcTy3VUtez1HNBYbHTe3C9b8vemcUpbdcyqWZy5JJYs9LUx3KoC1HYyc2bpgwjGmPDvMpPTJjm16WNFp7GhYPtQVcwdahFCgv3knFeep89aBendVpggc4", + "finger_print": "7e300f48", + "chaincode": + "488cdcb3ef96ae9a984e74a60662934574f440f1e3578d8adb197ba8bb28911a", + "index": 2 + }, + { + "public": + "xpub6FjeymX3cBs6wThvdryCWGKvanTL8qZ3vopBe13KdTEysU1FBDPKgH21KyuBbC2xub75VRr6fRVdo327uYtzsFpcioDizhfanmGYBukKkdE", + "private": + "xprv3T84iAyCS45J2UzQgudKjKjpR1CXHDqan38TKEk4nh1AytJ5b5zSgzBKh5KDJFJVf6zpEYdRv6XPW1raWZWBHQsZPBymtqu2Hd9Sy97tebhdTU461LokNTvqWK3Dy5g8P2JwAJWXnFMEfMDCkpdg6YG", + "finger_print": "2baacca3", + "chaincode": + "80313c41f9547d7fb98adcf03d1a2e0427641927a67ef1a9c7d7c5512477d304", + "index": 3 + }, + { + "public": + "xpub6Hz4d7CWSjG3bMnDmMRWxrsv7VQ6rMSDd1eLKoeGfnKDa8t1vaNM9X9PX99BRHz8P5gwUhieR1agcoYqmbfbH4jehyaa3QHRjPVNziKcZPW", + "private": + "xprv3Tnoain4451ETy6NuAZXbYPBMcQ1P25mNefhfduNpPtJrPioQfCW5vdJa7YChM3CXudiybwxUGA3dp9qHdFUdVpHDtusT8FT326Bm1AagqRp8AiFB7YHn6XvYmRrAUVmtrgknQ5DwU6mDXunRNSzdVu", + "finger_print": "5d90c28f", + "chaincode": + "924392b1748019b4c33420debac3ac7e0f4ef5a2d5da8c4bd4a71190a61b65f7", + "index": 4 + } + ] + }, + { + "public": + "xpub68evG4mZuUxJj4KdP7kHmVV9TpM6h3uHLyFxcd1YhJYxdVTZW9Csy1oVTfgNXEsMKgFaShCBKKaB6Z2U9rL3fJsZjSybPM4grJFfXNo1dXh", + "private": + "xprv3R23tHC3CdXLBcDddRSB8aHuf9obwJ3KUvz9KxNAW8u2gRf8Z6JmYEs98nUKqGiMLRpMBmzjer1VNQtF2vP6bZ7b7inFb4hd2ashpGxFgUEXPgCYdLxFE9dNpicNK9bEST8yyc7CsfU8B7egRjzHMTx", + "finger_print": "6832fcd1", + "chaincode": + "6916dcd448a967cfa90d0c3b1fad2a9caff582cac22ac79c72618d6bc5d5e496", + "index": 2147483650, + "child": [ + { + "public": + "xpub69zKuFcKUz1vZq19kJcnXPcu5zbzs4q4RveLh8oqLq6qsewgtUt46PCKa45RzBYv84BJALeWQAw93EKNGRy2ENE6FDvuZkomWqZizRjo6xy", + "private": + "xprv3RR3azjHCkmukT55LxMnotVpABnrFu9ssrk2T7EogLf1LhbnPTjQqxs6ZXdpgHvRkzANW8r8MRNJdY32DwpFwhx7tgk6PYhbBBg4PNHDRrcMXJMx6Zkb4cYQV7e4PPyie1Pbw8QkKQXdSzMuXyDewWa", + "finger_print": "1dc65a82", + "chaincode": + "d614a19ff682f19a0717257f467ce14d1c8fd5527076a582a3ab72a44098a34d", + "index": 0 + }, + { + "public": + "xpub6DCUZ94Kpt4Vyehmw2iztojEM77HfuH2QLQRReKdxKYjNTgHc3Wayw7R32rMAefniHN53JTeqeBjuSQAyNRekVifNDaToTEcskmnkQ63hpM", + "private": + "xprv3SNLrzyiqJL3pVBKJW8TegHuXyJTPc4DX69TzYUo7EdDy2uqm9xE8uT5L7SP38EWUMzPM17Bs7M9RpLHtHGPELkBLnN7Ex4fHQPLoRuNUgjD7sqF1KNfp4nJy3Yg3F22ZiHNhfrLt7tULeWLpGKV39W", + "finger_print": "d26d2e61", + "chaincode": + "931a586da0f42a72855e40538e49fe1634b4ca921b0eb929c54b2183afeadc9a", + "index": 1 + }, + { + "public": + "xpub6FJFjEbkKmaJd8NzrRqTgZeT1yMhzXX1yf3UEDgsLBqSkDfJsNMxPLz2Es6zcbe7JymaNfd4pNAuGY9heysS9B8owbGo2Ks5BJmt48oHSUX", + "private": + "xprv3SzX4f27JUwHRgrpjkmgw33ecgsciBgUQutv1LoF1h1672ktAZiJWLFyJD5EYGF2JYbWut1RSjgnhsiaHEF15WJzqs2EAZL6537CYBCoLG7MMDgP2jwUbpAS8zvWDKEZWwp7xmgMHvH3af1Dn8TQyNb", + "finger_print": "f0158b20", + "chaincode": + "dfcbcf1d4fb71dd4e7099c02f0ffc19624c522f5df9155ece1bb358654a3602b", + "index": 2 + }, + { + "public": + "xpub6G97Bbq3GVGUqskfAPCSLygEKSyWut3oN8tBNw2inBhE68Mk4ghA26KeSg5hf3FHGk2FWJsCxNj1gWoU7hbPzQJxze9Tc78REBPKm2Nx9ac", + "private": + "xprv3TF2mwc6nxAjPnBYRih4e7oqHNtaWWeQHAsyv3kBL4wFunbGXbBAVqDU4XbR9ZJp6iwaxgikC7nyWD3bBfFYK2UgYZGzmxhfuFC7RG4jjSsmqfVGgSyr5iN6WwmHvTD5xeESyZjqjeGcY2kMLiHgSae", + "finger_print": "62ada192", + "chaincode": + "aadb9c748d4c02a236db8049e83a29704dd1591058644d4f99a92230b41be284", + "index": 3 + }, + { + "public": + "xpub6JGkNUnZPLarYEKJx3MRc4ysabJjVpYRBZStJ1xga4F66oxCtvDiFbPBUjJocRjgXyozFhPvGuApfDd6SYpWJ48ePCBy9HC2UiJjBTfxa9g", + "private": + "xprv3Tsm4dM1JSPZkpNNRuGZ51MPtM9aExpisvXbRZoPgBKmZBj8jheGHE7tuw4zzVULYzuL9untyiL9iq1wxcWXktwTj58pGmm5pK4kyh5BTh2h3GpGfW5MzQDUujykmPDjgECta5nAN3mkeNaK9EGWCxj", + "finger_print": "84b44ed8", + "chaincode": + "85e3e1a2ebc4d1422b1a38af5629d6216f229f7238edfa6889c39db46d6bc488", + "index": 4 + } + ] + }, + { + "public": + "xpub68evG4mZuUxJnueow5LfpkVfpZ2vH1ySbU6UUspB8Weyj6sXh8NEAr77dxZCiuYbX7ZEgpEwBuQchvLpp3QAho56NGLDt6iaGmTJXv9j6Ah", + "private": + "xprv3R23tHC3CdXLCkZXksxsz5inVcdB3yYTXWnBK18BcA714yxkh6pRFdNxx9e6o5NMs37SuSjSRZugB8GEjEm3U3CKeGa4nJ8YdghgEsEbE5sfyNxULbnUAgksBvyiw5TtjjjwcDs4dPruBLk5FHFMY5R", + "finger_print": "6832fcd1", + "chaincode": + "ebd7c0f6fe04e62484065696c288f9c9dad0bc24aa7e9dcf320efc8777ad3050", + "index": 2147483651, + "child": [ + { + "public": + "xpub6BMSEWmUt6b3LSKvrjSRJZiKfJTDQvvxgAdA3i7wJmkV4macE3b6VjZvuQen6d6y5EyqdRemhbZKS64qBpj7N3yA99eZxF6kmJFQk6GUrKF", + "private": + "xprv3RpYc7mu9eXeVf2BkteJo5vHCZ3YV6VEJGsEhPEfXPKPLvJ2weRfp5a6H977gxT4Sb1YWb9MajNywnBsyYWmQNo7bGifq9oib9t3C7ViGJbfJL54JNkgZEYg3HZkHm3WZ7f5fFxRBCBSRGxSz2fT15m", + "finger_print": "d7578362", + "chaincode": + "77085112457554fdf1a33788e98af3f2f13fdbebfa56728141b43c578439e171", + "index": 0 + }, + { + "public": + "xpub6CoALSPtLDTVmd4xEsHrk7wGNUsPvgiirRyd7Emx8nVwGPjjdv8TiSCD1EFGUBz2jXGQGrgxoswX7oUJup8hjK6eYueKAGnpwovXTW8xjts", + "private": + "xprv3SFRAovELjnJHEA6cSKc6QzWvqJBseKmZ9cghxkWrhQeMCs8e1t42frAurXv3mrsHMf931XTyssv3qXNcpa3E9R3dE4P6wygeDkdEoa9mS1x1rGZrriXEJp2EiuBoY6PrmdGXe5irZafVpdZijBg1xV", + "finger_print": "9bbd05ae", + "chaincode": + "52848ab5f4dac666ef9f14bcb8fbc47a67ab8faf0a6125364171f8cd03818820", + "index": 1 + }, + { + "public": + "xpub6De28SFCwq2fxMCwHzPSySCwUZoeUSkRSNqtTNBHVSoLuVYUXoZ6xqVVLKyJaJeTMVtegpKtpGuhNxCfREHRNu7NXz1uwxeJo7RdxLjzPj3", + "private": + "xprv3SVvyvkD3AfZYAftbkppcseeJUR4YVUXSxgzVeQLzmL6cU4Qrk3rRzeoM4WQqXzAQUK3ZS5Mw1vmFKnw8JKodYQyR3FufGgYn9dLZWrxWusau43qD9EMY71tjzuaU7ogWCDcxV35CGQHSrAjWxef6wU", + "finger_print": "0e589d3e", + "chaincode": + "b86bd1c4e262b32ae869bbb9fab0a51e9cda367d2f6199a9c310857165308d29", + "index": 2 + }, + { + "public": + "xpub6GkdL7JfZwifsq2e9qJ4ckvXaAA2KKwoHVWuDVd3RbwTjBiVn1jjJjTjMBx94rN2SGXVrRRmfN12Hai4jy4vS6QZTmdWahnj8zdb8uzzV7N", + "private": + "xprv3TRamSfzRebHQrwpgvqJTi7GKhCVLLSJLHCFEntSwzhCQpts6z3mDmmYyAnsbdoSKTexTqbRXuHreSYux7x5R2KHjvKgkmXjghXK34tmg5y5SzHUFejDgtbdbQcKL3SvysgxVTCq6GNmm6hEap6hfKb", + "finger_print": "b5ff4c6f", + "chaincode": + "9136cdcf5e91b40cf78e83b8c59129dcc5920d505b4010ea3ca6aa2234be6f72", + "index": 3 + }, + { + "public": + "xpub6Hw9yuA7QhxMDDRbDLgbeKqFiKmfw6PrH2Fx2KUqUYQnn2dLKgZBkLNqPxQBG9DuGwM4TmqsZwNHEUqyXDAhFTCobZ2oC7mSiun7ASrNs1M", + "private": + "xprv3TmwV6VbrDhXvJsZ5ukZGHoL2M8psboRkpW28eQmeEU3Wkg7Fj6sj2b69jZw6ryApPVwWD42zE9tGqS7uNK4xGbNNKTbut1kJswCrtJZkWLDAQeHPsUKs8DbwcpGLRJacwkSMBGz3xWey2exSWJy9ea", + "finger_print": "56bebc32", + "chaincode": + "48a4c753fc98b79454bde30545a2f6e7af6ed76558a2a003d9b2e2ec380253f3", + "index": 4 + } + ] + }, + { + "public": + "xpub68evG4mZuUxJogbtDrwpDGJKGiDEjtbk5sSKy9Q99UW9BXjMzX6ogWp97ZFhWVkr4pJYoPsSL5xrxFP9DELRXHCk4YuiwcbSwQCTKg8fF7C", + "private": + "xprv3R23tHC3CdXLCyuzbWgD9D2Gjze5ioHnDxXa8MLgjANJYVgER3myg38mXPEJPpyibW4jts9WAFYqNv1fkzyedzW47o18LUGoNcNG1TZnHxyrYLN2C4v3KuYPmKANcjp7NPGKLd18EV3ssLGbv7Pwp4f", + "finger_print": "6832fcd1", + "chaincode": + "39af2c9633f8bb900de986d7918d67a97864e2ed9ad000cb7867c0700c5d4138", + "index": 2147483652, + "child": [ + { + "public": + "xpub6BKEXqQzSEa8EqzKj4tcQ9n5FpEtXanbTEJqUCN9LLjYPTEspAYrj4K6gS98LAPSd4QbGs4nSkFSXNCi3Zta9X2LaptrmERCxcgBdfC2KCp", + "private": + "xprv3Rotfsg7tiGeocoVLVuqKW87GcDt2qKQucPtkXQjmZNRGjyqZrfRveJgHZ8Fswj9zuMdS6Nh8djHUdNZFktc2GW2R9VWhcJSdU9EmkH9daCBB8iA1JhenfWaSvp42eono5K8D2iWykJRmDajDBgStBn", + "finger_print": "d22d5c6e", + "chaincode": + "4ba8d3c737eeeb0ce7b0fd516bdd098ebdc1929f788238a66bb39bfbf93ebcc1", + "index": 0 + }, + { + "public": + "xpub6CuNfGdwASFa1hDeqxNXFVEZj1agfMSrMjtGP1ZZL8aiiGFYwbWeTH8afDBS6kNN83Latoa9KJ5wwPUi8gbsfCdnThsRsLru4NQxRkPVmyY", + "private": + "xprv3SHGD4QYxf4zRM4PsJvXqan5wHgEGVzniYQ5AiuiiaZwsLytTUK4sxSduXX914keYnchQyxwWXGvGHtYCDrohbYtqiq5rYY5WYKPfa3cPJ6r5L5Aks6sKNKthJGdzMCctnzLXNy7uCSKuF7aEB5QnVE", + "finger_print": "aa4fa212", + "chaincode": + "0e39bbb841e90a8158ba5215977a36c3ba6bf53e1f5198f533f632ae41c11c7a", + "index": 1 + }, + { + "public": + "xpub6DtbakwKZb8wkrXeVs1177iMDwEmoMKNxRmmcPwdQ4nMm1wdGZ5vCBxVpmdeiAzSyd91f2G69jQLEdgUYedpyqyELwjEtQM8D8ewKpvhZMr", + "private": + "xprv3SaG8kufwyBM38UxLdSpDo8Wf4YAppgfdDpCX8YfXyF4F8BMSJt88B1sh54mCLfSSatGnNZKEKbbSD8ttuJDT3kJtDV1USQG6UkuVEbsRMD5aaNEsW3jZ2d5pgAiMtgN3q6kze2kGrtdnGdEJEYHJYU", + "finger_print": "3089fecc", + "chaincode": + "6471d2cba3d81c7671107fe0f901350f02b895349b36cfc00c13c5733599cde5", + "index": 2 + }, + { + "public": + "xpub6FUKfgbsW3BegrerCqdBgoRysB4AJfo6jZxTvkZWq5jJ8PpmqGPkDX2TNpwkA3GrcnpcMXQ3V2JhiBQEVfCN7zmdQqwFmF16LAo6xio7j23", + "private": + "xprv3T3WXgoJ4Tqq9W6Wq675ax22xv851nK6atAMz4cgMtrBwGVVEhDd938iEEdK2adRNPVVhbXLaaXpDGLesq3suzNzSXaFmyYZwSqQjRbpjvZkfVrDutSuG9yeP222xaZr5jNoQabtbqqgW41HSz7CKj7", + "finger_print": "07b35608", + "chaincode": + "381fd1d5b8050f98ac0146cf6bfbd5ae1f320ebbf64db2fc2780ca0ee7337604", + "index": 3 + }, + { + "public": + "xpub6J5gsbfhJJruHQASR5LTDWw2GSQy9WL6m78wa5cxnTirf5W5L9Tbb91H6jiGeZ5EvtcVt1594Ucjqh49ieEntdHGK41GpNWDbwbcR5kGbjL", + "private": + "xprv3TpUVshpM8QyAv8c5NH1R2RyyXD6YMGFT1sRyAP3v4oQTuUWUKt3iy9i9rjuN8BKbbQGHuafLagqDsXp2TNtz8EDg8A5wkjDVQ9Pbt4Jue4mrKaBue4DoXzJpZm6TxSwa7WNh1kDdheHUXR4t4wPb34", + "finger_print": "6ac293f9", + "chaincode": + "9c42e651a0aef9d5f2ba9b5557af61856efa0734289acdf49192cd72fbb5ff51", + "index": 4 + } + ] + } + ] + }, + { + "seed": "6de2b27dbf0db4cd4b6b3d0bfc3bf8d27bf96c8641c8c8a2a982213f6e968c27", + "public": + "xpub661MyMwAqRbcFHt4WbugZaRmBgifgSw9cULPjvEDiK8AdTXNEw9vx4r8WUbKbhQK7v6efbnVyhsCJ6HGr3jXXa7jd1ShReyiS56hXaKBox6", + "private": + "xprv3QESAWYc9vDdZVKoi5xzsY8yju5F7nrd5AkDbuFtVasSrZNtdPE7GKXMotu9DgtgRpRfFNow9k4Jzwm2qCh1AAtvuky9pTg8FUEEVp54mX17pSRBEcd8fxwvgxv6hj9qteATMjwLPUdz6LwmuAZtQKN", + "finger_print": "00000000", + "chaincode": + "4b3d478788e8d7e65887a9e5288082670ec65e30f16c0153a76f09559465b140", + "index": 0, + "child": [ + { + "public": + "xpub697CwowS5y8uGBp4SANgiEScqmYnTF1g8SbU3KiNnSaFa4knpGPiaQm9xu8L45NBLDD46uyLtxFsMM3SLm9GZ6ygX6LKkiuzpW9xvTJkfPY", + "private": + "xprv3R9rozg2hY6Yt4Zj5xJeXiMYoCYqvCdLG6NzV7m4VC94b1HYWDhZKf8K4Xnz9R3qbKw4rJX1QHqNfvP4XdTX6MJrDQq5htTmBTKjcP4WciFxtQqAwXuRmhXmgtKbpdMBGZrXfd5uy1RMwsaY5gnoqjS", + "finger_print": "a5dcc557", + "chaincode": + "e2c27a4b35aa2358f0d753fe6409238f91cc06dce347fed71b1818874ed2f576", + "index": 2147483648, + "child": [ + { + "public": + "xpub69xy4qZvp8Tx9mxTMUAg739Dbsbsmjd2YFaDdywLv3GUeuunHJkggbgpa8stghJtMd9yFFMDfhfLJ1ASqdX6vDL7TB6YtSFeVosi8cDhP9j", + "private": + "xprv3RQeAhrwuHDB1ZZNXXD5xbRS4HBrDwmKxD5mbS1imyHrMVwdoVSudYJf7t3UJq1jbnwrpcyzqPCi12ppPEtveyThzPvPDubtpq57pbKx4g6gxViDXKdcqHv7qVtXD9TkgUczMtHE3irmRGh3vvMd9du", + "finger_print": "1a9623f7", + "chaincode": + "dee0b515404e8fd2697b97998788b587c5ad40753cb707ac74d7550d8c14ce61", + "index": 0 + }, + { + "public": + "xpub6BhqxQcorHySthL5dWYLxc4XusktaGJcYCCjPifo6JYDTqnks2yD9REcYdGqpxVDAzFkrSnEgTNv73mnWwoxHdhcocnmYQJvFBagYfZRFxw", + "private": + "xprv3RvcFBHhaRaHWNaT6KzWS8a8Kh7XXhdsTzRTfRLo4df6K4DbZ2rBDeWY7XUuCbQbiCL6S1t19ZEqnU7UvnPPb6c2C942vbCCnRoUwM94uH8gZ9rgm6EmYB3sngeyBGb9hHFTt5d569uP49djcqPUkMf", + "finger_print": "0737259b", + "chaincode": + "d89b05a6e4269c83a6a986b755489ae47d2ada452ee6ac1f75a4bb39da9f9180", + "index": 1 + }, + { + "public": + "xpub6EakoB61ox6n1aLwwjv8N5oweiAJXsCww5Z3yWhpf29CPqhTPk8XwwhWLSkUQHuSvfRd2GQwgAF4L3uJLy4i2z2nrks53dQMVvNfZnru2zB", + "private": + "xprv3SnC4BWkoyPrxiYJciCjwCVWqBPQD1fsuBS6GeTMHN2ATWQnak7PSrYnFC5VxShF6HzvFx9FYNHEAsdErRL5sbB1RzB4DufeiZvFQfYoGbrVHc3Ku3kTooeY3pfewNLNvjJMSd2hTM52PkRo95pA1uc", + "finger_print": "8ebd71a1", + "chaincode": + "e1b84860fa7b1dd7a66119873a0bb27b09088aa303b5f62ecfe2b1d36b4aaf6a", + "index": 2 + }, + { + "public": + "xpub6GsbKPNtYVoSbHwzKngv4fCcubui9TrqxXRAWj9y31G54nJ8eg4ceuMx4oyaAuLhkWNM6pivxr1nQKAFy7Vz65g8ayc4KncQdJCRRkX8v8q", + "private": + "xprv3TTemzBLRb7SnYp77BRneGVZoUXPKQ7ASR9BoFJMxGCk4Q7NURSfV9PcfHaC4uopdmEzeWR66dihZfdGYHqyURMCPi8FjbwGYjQF1nhxKrFXSKNWq7f44fHXc4MJecbeGDDNVN15jo3wUroaBWfwT4C", + "finger_print": "c655f8b4", + "chaincode": + "ccb50cae0dad5ea9dfe56a0c0f62a9a3977c2eafe7c239d6cced3c5d0d1670bc", + "index": 3 + }, + { + "public": + "xpub6JrNbLUVVdGG2wmwNRt8wv6zmhVpgcMu2CM5cSXVqnTmzv4oPu7kU7JWpYChsLeQGnMYsfrfAL9ug5Dn17Ean4WrXWQtrTrUhe2kZ2Zx1Ws", + "private": + "xprv3U3kQAVeCNvgiktaiBKcyaLDghd3Dr7p6DE2XYSJTd6Bt6fnNKgay91s1um4CaMLGgepEFzAxzaEUTAmCUPa2eZnVd84nN6DvoxEa75StgcDhtuDfB7XhNuykgp5PtT4nB4qR4kqE1LVg5PeqdEVi8q", + "finger_print": "d393deb4", + "chaincode": + "56435eb635c7b2f968322a1df013e831c3b092436d8ad63b966b3d1ac66f85ed", + "index": 4 + } + ] + }, + { + "public": + "xpub697CwowS5y8uJyVQPSheJBxxvxMD4A4jFFirDLuAKpHYUNzUT9v6y71DvgXR7L4V2V11YfDQY49zzw5koRJqaoKoYFDQPZFLFGENBo7gVFn", + "private": + "xprv3R9rozg2hY6YttbNxmAmrFLtU9wjFFoGHhc8H3ZKwQtxofXGkYbcXshrA9AoZ1wX9rTcrpxMrDyw6A5kM3tmehAkoXNMFcGX38syTnzVX9Pa1MdLYfmLYYiL7tBuSKGFyt8bLxADneeJpiZQQgKQ3pP", + "finger_print": "a5dcc557", + "chaincode": + "fabf1bb11e78ae0f5570d56d0b81f99be6d4d99c816751de0430f5c1434a77e7", + "index": 2147483649, + "child": [ + { + "public": + "xpub6AArzHmt7BfLUQTyNUuKqG4sLJBPmyrgyw7wtjqaDqpFizgzY84T3n2FEyy3MTe8HWqyBmVfk91mP6isQhHeXuWyMfmYqpNUZwnWmKh5rYw", + "private": + "xprv3RUB7n3ciuD9k2dNJq37MtLAQvwsrHsDqq9TWpgN8QmSiGbD4ajMP8hxfEFJMBBHSaWH7myhuJ3s14rarJ11QJpkaRwbqsDndMAGEn3pTJXACNHpjoesYrfDv9nrdmZ16M2uBFZmffa416YE7bYEAH4", + "finger_print": "367d391a", + "chaincode": + "13b0fba8c00de0e924b6d4be8b9530a71cb363bae7040199e96755e71d587424", + "index": 0 + }, + { + "public": + "xpub6D6xoY15WhCRY8jeHgNC2FrhV1S5MrSfMHGPMyukrTa4DzGMBxscQ1nd1AfgRr7Gm1mWYafwVzsWiAhSLBR1Dx7zS3s5jZW6hRHWWeF8rkY", + "private": + "xprv3SLhsoesXnLCW2D4vGmnqFHXmMKZFFJAmHDdiHmXfo4us4JZQfvkNTgYAfCU2h3jCE6emxf89rwNiephpxJFHbxGrRVxpY6JTyPKzhVyW8UKqsgYBT5kWpBNGCgksHD9y3mZMuzK2ABr8NuvyXdbWo3", + "finger_print": "c57ea3f3", + "chaincode": + "64f10897c9bf200e031007108e86dbfd3db32cc3f50f629702ae3f01e39ae86a", + "index": 1 + }, + { + "public": + "xpub6F847y61t2qDjZRbQ6cvhq6L4UC9DEznUiCTopbmKr7pEVizgHpVeDXZvNU7FAhthXMioru6tzw7kSkmBdn8FatNfKvpFotMmmL5C5uLFqQ", + "private": + "xprv3SwVKVBhxt8HLFGDrwVgWr5j6sKDjqiE9gZYU9hGNqziZkaoFHLFY9QTFF1akc89YCgnjNyHE8CrYB3X7wdM2W1o6RPL96HyUGkWKCVMjdfJoGcLtCXwuvZGWQmQqTXfBm5LpgcvxSQXS2JDMKLuejn", + "finger_print": "d82858d7", + "chaincode": + "61f514c09b3270b0cb01c1edd8894fc76ee277caf450e5d215de355958910936", + "index": 2 + }, + { + "public": + "xpub6GUMTUNk8R5Z6q5m64XUxfkLsr3UkcNcEds7L69MF7Y2no7AoMtBrdxzpH1jPLh164cRbdSXZdFYPUs9r7sXvtC62As6zv9voACFkT5P6xD", + "private": + "xprv3TLkNtYNP68pJRUMd75TRWnjwevwv9Fvd12UjveqJL8UzyRMeZYMe7uA38BBkwcXDAoEwr9tCwcsP8DjjT5QCsGTDbpnd9udzjDjtAwJC36B9AoLv9bQ4NCFZT4SeMFPUiXweXG51T7UsgzuiHHRuHw", + "finger_print": "8fd2efe5", + "chaincode": + "a6882450e5fd1319d0779876c152001895a49e5fc9271c26df886236da2592ff", + "index": 3 + }, + { + "public": + "xpub6K9sH73YrsYYxPvrEvuWt3LrYjWo9jwsPkLg9NGgAauWBRMLXT4QLg97HVqGkNMtHXCeK3YB8E3i5fTTgtqwF8vKqgGhmPabH9LP2BukpJE", + "private": + "xprv3U8wpnrjUN2CfNsjYUDRLcZeT5GBvn2yUXLwaCCY8iykfVYx48dt5UmKyjJ99AYGGeweGQJnb8oMeA7Hn3uWW17Vdsr48EhBmyp9TxXXnbuL3JYuPemU6rNdY1cWP7WQhL61yGtaWGsbjMvB1NL6TfL", + "finger_print": "fc9d6342", + "chaincode": + "9aedfdc3fc6bdf93fc5f95d7fbdb82107a51224d673313be3a346173c8d355bb", + "index": 4 + } + ] + }, + { + "public": + "xpub697CwowS5y8uLisaoiCC6JgygXggagXyUsZZSuZ257yWmXKAkZtq9zRFdDonk9CZcw2noT4YRQXGLEvQURvoVZMuMJwMARqpFRq9qGcyk5H", + "private": + "xprv3R9rozg2hY6YuQiA6fjbcRNotKafTNdouf5HsKCJygozJeCDi7A6de72UhffUgxWqyGHb8w3zeHmBWu8a1CWxJB8i8VAgYsURcYiHwdQBGnJz5c317qabxXVdpdeRjFfWyDx8eT34DdAvXBsSdy7ZfS", + "finger_print": "a5dcc557", + "chaincode": + "aa50d39032653ae91acc1d483b1f1e2f5467d98124fc4517db69d0a2855f6335", + "index": 2147483650, + "child": [ + { + "public": + "xpub6AwkUZ6k6eS47Vy9TdtoYthjDHXLgArnscSysbNPqcE29WuFytL28fme5Fwq8YG4sucQsYLHDR7SmJsxZSDjdeCbYEbX33GoTC51HomKX4t", + "private": + "xprv3RhWWpVGrghxjbCd758deQjSuzYGvfQ4X8fMnxcyxe4KsmVAnEsq3VvkM9K2nTstsucGVJiKpFgwT9wW4gqap5swyZfnG5R4g1qws4dQuBecQQ2tozoK4agsnpCHy5wDcJJjiFKbgjp6j7vFUcNkNVn", + "finger_print": "9fc859f7", + "chaincode": + "1d0d84e1de01c36cbfa9283d9da5663b9197b3a791ea7eba09baf60b3b360634", + "index": 0 + }, + { + "public": + "xpub6BzMDdiaheBGtHaSVnn95UiA31pj5R7n5LHZSre6FWZebhj2KLCE1ReVffitfL9NrukGv7GU4FCfvB87XhNUiudxVrUqfUqfVYdEwk9PXQb", + "private": + "xprv3S1WcRjqjwJL7qAWyf7P2WThk9663Z2hyLGCqTcuNrGhYoXwFbife21yr5zS4jUAHGEDvyHPUdDMxxi7E4EfJmCAFrEoUShWBAqMhsMhhzkVtNbPqVZYkcPWEJxrnd2ML5cYtFELnLjMzchm7CGC5jv", + "finger_print": "2dee22c6", + "chaincode": + "cf57feda0157e80961525ebad96df96694ea6c12873ccc8c7619611585ce34e2", + "index": 1 + }, + { + "public": + "xpub6Er9ptxb8SfsBCJCrXyE2QDi1igDkZyCCh1KLq2wyZg2fmfqj1hbu9hpR7pGFoHvH3iQjFLH3rTwEQePxJuhcqbfoB4NvPnrjiVKo6bJtMW", + "private": + "xprv3SrmLj2UnzRfpe5rNTFQXMD7kpt8fRaCBgon2ayXvc5oHX8cYKcQYCpBudN3dDsF3m7irGi9DPikBeyV3ga78RGhA4d95X68Y63rhLtRkNSBQN6HWBgTGD7qcdztB5FYzDY8sj5y83q7PFVYDHxofCh", + "finger_print": "b2db6670", + "chaincode": + "416ec1d7ffa418dd240755000257d27a60b3c355e1a7345bd816458cf88f8df2", + "index": 2 + }, + { + "public": + "xpub6HFniAA9DVnXiewx27zgWvoQFdh4pYqxxjL68jWeaLQHfD32LVp4tsjycTLtg358R3kFS2eCPR1bGhkrNEu8FBfaDqyLHPsKF7as2AhvBaR", + "private": + "xprv3TaFDFAr25qN2Q9ESDxegbHkvvsnETRs612p5faMjB5yJK8c7ptVWuurxZwZ3WmY7CcR6HXvZzCDYfoHwvYfMAhcRfb4u2YyQvJpVt287XCnqumxCPtkytHG1CL53ZQWU1gPnBou3SSBX3cVEfkgdnJ", + "finger_print": "fa66f3e2", + "chaincode": + "d4da06feeb0153552e4b2399f21d66ec22ccfef7eb73a8b08cd3cffac9a8b2f6", + "index": 3 + }, + { + "public": + "xpub6HRvmqbXC9NSworqBnnSMYAYUNW656vmun86RefaPEZEDwN2K6e9jaNY6sYBvPbMX9D8PHmXp2SQ8C9icQ9oerjrxDbyrrK2CgKTgjMc9Hx", + "private": + "xprv3TdFuLpDcRWcyKoYyZVDupPikSWjRWYmWsFrUbDHZpTQZLt8VMEvmzKXbpCvL4oruG4a15tvq5Nz5u1RhjeqRbovWfZAhbqQ1cjfov6JnLhjv1hLonTdvp9i7WErdF8TnP6SSgiWdsae7D9iKV43mJ6", + "finger_print": "122f7337", + "chaincode": + "d868a61ee7192c434455b12ff33a2421fc1449f0fff73cd3d0bc7123eab6de40", + "index": 4 + } + ] + }, + { + "public": + "xpub697CwowS5y8uPXveFMSPBgwdsw5de5gueYGpaWFA1vXBqVmpF2qng2DZE4TM2rxMD9fGufG8iDFT8oAVkFUBd5zihuGYpYmMgVFayk33PbD", + "private": + "xprv3R9rozg2hY6YvF9VSLWQVWMgJMrk9rCefBmEXqG5UYzQDPUmUbhBT2kpNxnAHNvcNVtvqE1Y7NU1xRXm8skEbJXBJDVgntokxUjaULCakMZx3QWyg6yStPgaMUjBCXaNBbiUKMvqdD6QV9isRbAQoYA", + "finger_print": "a5dcc557", + "chaincode": + "c4aec4c607a9cc4a9e074ccb807a85ec32e0c26eda25ca30557ca43bc380da89", + "index": 2147483651, + "child": [ + { + "public": + "xpub6Asa9XdiSHDdfLhJJUs9ZKBZGsSdQ27xwrSjSMCgC96VnFbZFSvXM8HtjzHLykYPmqsB7JejkmpEe2PJhdhCVTrxu3VYa9J9ksnAea3tFox", + "private": + "xprv3RgGXc3JgoxPufwaAsVpdWDGMzqR3DpJsT2MFsqMWVqKBFQ6mArAEHhzu6T6K91f4ydqXjHCYuTKV3MqYGF3fUvspyeoT22EmuQYxvGg73EpS7oT558573BnTRdyS6ow2ZydWPH5epM9jKr1vRHiMBN", + "finger_print": "95fb6a5c", + "chaincode": + "aaad97dcef90ac78db588a746c0423a1d6576daa4374bdf28ab0780493ed144f", + "index": 0 + }, + { + "public": + "xpub6DDkgWCp7PYXgy9LiRUobcGbkrVPax4Wa9k73WfTBZRR7BBebXUv5KJ8ayjZyemV4yt8oLF7mDxQRZsSbNVKruG3hphKFeSasrdFzjJsHQY", + "private": + "xprv3SNitBJi3oAfpJCNLfXGNt2CDGbVtEeatfdVqCKPtHV1SHFoRU4FsihjzuKeiDkrXQMTr8RviydAGG4nhZ1cTscg86iKywGnSeQ5SmWAmmsJ6CGoqiBinFTridBrwpBtfWQuXNxojckwJxDHx5gwZdd", + "finger_print": "d56ca711", + "chaincode": + "fc6f420db79007b8474bf22ce0ef1b928b0abdb226d9f850719641e18a1dc2c6", + "index": 1 + }, + { + "public": + "xpub6DwrDHTCqyooGW6BgSmSMAMFVd1fMsg62mi7j4fmY3NyXtMsni3fRZDV7bUnMNiPxH5JyBuX6KfRg29LKDdymY6atDe9SBat3yxfvSckXjv", + "private": + "xprv3SbEAmnX126oxoKkj8jSkYd6vPhE9jhgyvUY4cpX9WXLnGW2hn82rx9JNvyDmWuzUv9gRRDqz4xGpZZw71gvDmkosuYC6HNeiZvYXeDSVqW43LjUHoqy2d6w6ac6XcLhxbiRf9y9saGpRoE7wEUBNCc", + "finger_print": "382af7c9", + "chaincode": + "6d48886785afdf9a08b98500b2f6bb758619a1142222f39ff44876b87c1a7686", + "index": 2 + }, + { + "public": + "xpub6GKmSbeX7Mn9ESsuinPUJb8xmBvtGGkwH3Gr4QKaoD68dRwRuox2EUSAgCi19xb37HXDkj9r9LCHRTMsD7rGqs8CZHvhf6L34qLTQPsq9c7", + "private": + "xprv3TJCSHjmr84nSreg2VEvomf69tji3dxKY1dw3TM9gemmpAGAS63J3C6dshBd3nwXFgqmGHfSRMkBBsahtnjEV9VS2qiGNqEoZzDSvcu2pgZXPDMg3kBvbii766E7aRAjfFkpiY94xyrkGJ534vFiW7R", + "finger_print": "7baec0b7", + "chaincode": + "28da857b2cf35231f85c2df82e55df7af4caef3314e7fe553433c9a0e977c5ee", + "index": 3 + }, + { + "public": + "xpub6HkYTPBbkVC2KtDMLdcQbPWPDK1aPgz4i2EbSvqVuB9w7AJpVULJCswpTPBrW1vgtJQg1FHuRhHZErUGoKzYwmPwiDT7JcwNuDK3afk7Ua6", + "private": + "xprv3TindpuichsfhUBuwHaeEAndveo3dpEAUejbdDvxEuZrXf2FHm8uW8LYWK1s7yUsg4AXq33rxmBZakBXJDkErS8EWhJuPAWvGaMxhE3SZEGCBJGczjfPPfafi4AfzLFwBRA3te4SPG8VgJMiSMLEUPF", + "finger_print": "3dd9e749", + "chaincode": + "2bb4f5be787ef16499631474c40a4d91b417b63b1926060e04c5787c3a23a872", + "index": 4 + } + ] + }, + { + "public": + "xpub697CwowS5y8uQmGX5KvnNZvjoTGZLNbbYwBiUi19jwucKTmmJggvFZv9QkAckUnnswLrnobLaXKNFpYR1qUSexTKYYPQFgrWbPvtmsdnc33", + "private": + "xprv3R9rozg2hY6YvcLhPQCZ9HgeRz9DFYEUJqYGe4bQZc2zi9uV8UZXctqiYwF8n41YKRy2jfMBaFxT1pyghpw9ce8s9U4iYBeLR6k7YQLRwCPGHYUdhUgqdhzcSmt6xLAmX7vy633TsbugrhtcjRopkw9", + "finger_print": "a5dcc557", + "chaincode": + "403b062ebce8de9500994a6cfcd7df0facafc34cd545dc609c5bc191d6c114ad", + "index": 2147483652, + "child": [ + { + "public": + "xpub6Bdao2gVBw91Z5n3ddJoifJNMXBTNbfccixiKbRzZ6oZ6dGyfXbN9jcBVxnHNif3Qz8RXSFgK6qjY5LBVUhR74XSu887pxd8Sz5y8Jp6una", + "private": + "xprv3RuLpgUM3hkHj8tLo5yvM64X5J67wNRz6zAVoZBDSKADrdHaJnu4RXfdHeHze9tRfdApjZMK3FyRaYZWCv1x5qshK1EutfFmeTqEUffQ55dVMi1WnR1jnc2MRx7bRMoe1nHp9Z6yWXb7LYBMovSL4yL", + "finger_print": "fd382a69", + "chaincode": + "a7d084b4a1466ec4e59577d833fb7731b73a7115d42c3d4b5d021eb295fd00ba", + "index": 0 + }, + { + "public": + "xpub6Cm7Uv9fzCjMTGwF98RsEHCFCuevssCkDwvMR3onuhU3Qk92DQhCFYf62bYjWJZMvo1dWgLknjYitUXKsmgLiMadddwuHmL31HfvaJFGAoB", + "private": + "xprv3SEos1JsE5jm8Fc8RNRKRvfvYADWF9cxhfv1bzuAA2yYTMehDfDT396S4t82XC9nzWhrbDjddEs3CoZVbFM7j2a1c2NXUxSK9jyvvJ4oRw87q6WgbhLuoyPrpn1AEJwm63xJFNPjwMY1LoHkSJyfQhz", + "finger_print": "96ee7904", + "chaincode": + "72e6247c39a26146ff03a564e5776426174a426294ea33df56ce434fb30312c3", + "index": 1 + }, + { + "public": + "xpub6EqK8tZ98FcuqKapA48EvbU9do2yiay7qV4Cwy1pdQTWP89ZjCUSd6NcD7xkeKwf8h4ASTcMxThPGNUuEQRX6E7QDhFQVRHT561nWoXkih3", + "private": + "xprv3SrWspX48xkMHaQmLypBi2msHcL16n9NDuTeWP1Q7BmS3Gi1Jipaegt5eUq6rqyfTRqRgrikF4p2AfQCi3detyGViBhMh2Nnmyc1pvVUdb8os4fmHf2WGSPA3CShgHGd4pgb5WTgLixnKUKWD3BENzG", + "finger_print": "b0e34ac1", + "chaincode": + "9a6cc66084652a97fc50e099a1c3ffb7498d4dfae3b4c44cc060d2156dbb91f9", + "index": 2 + }, + { + "public": + "xpub6GNssXL3m3ru7k1JEW6wa9YVGJSSKTUtgPb3atpruSP4seNgXFSvKr4DEXwcXCWTrBWvL1dJ8uyFgJHme6ToZvStAws82EwU6SixAgf9NQS", + "private": + "xprv3TK832Czw6yQakUhDw11sUykKB88Z3Eu3BuVRQUmxAdSbiMEqYebvj9s6jmXjQo7QRdrXxtPPj8mqZqRKE86AbATtjR2Wzcsi7RDVGioffGU31TJRDbgjU9vkZBvgayyB1pMFCgveaPAsWnFqw369Nq", + "finger_print": "82fad3ac", + "chaincode": + "ec51c9f3cbef97f8224fa852ee3a25fcc5a2f053bcb2cdd2632da0a9b3e7819c", + "index": 3 + }, + { + "public": + "xpub6HejBxyzHg6pWfYQSW9ubgr5G5uckpibRjfs7iByzLNhJCfkevfFDcWvfqjAx2GCgEUn9gi2tWrvWmkUxAdndSvT7s2Q8y26eoE17PXaBPw", + "private": + "xprv3Th4SsY783gHsvHdbmKQ54fuScv3KrWmpdNFhETjmQvvt3gVRe9Z6o7aJkq9v8RWeQ9GQcE83KRJLgQYzDZadwuBkaE5M3uuvLGvaxQHk91uXTzYgSLfegHoS1XRvgfe1Jc4NqHGD2xchDe2hANDNEC", + "finger_print": "3036082a", + "chaincode": + "16d6897b31be603e1722fe394aef8d60ff9c9b14d813bfc98420d368686b986f", + "index": 4 + } + ] + } + ] + }, + { + "seed": "e68db487706303799b7a60c3f7366ff33aec3cd00c0214422bd1400fa72091fd", + "public": + "xpub661MyMwAqRbcGG13B5rAkSBhedtB9AHp859TjWhV1Prypcx6FKKHR1bArHxQCq5Ga9xQpytMfwtFmmiiZXQmKJawUuvCR65TFZTn4GgLkQF", + "private": + "xprv3QESAWYc9vDdZmzjf2kKuSdVeCCVj3xf31cs12dFU7tFAS2QtN7Vw8mwR3HAyzQtF9Xj16GbRNHwEibYb7SwRHK3HQJJb1RAumXmBefQCTofpT6Z9eav1voPgnoHvcKQB3X1R97aYqp9peFzspG8MH2", + "finger_print": "00000000", + "chaincode": + "ac6d0238f1f17b9bf422eba6dcfeffea8427ae8dbc4d2e40bd5c35f87e0d78db", + "index": 0, + "child": [ + { + "public": + "xpub68YrpCgUNojGXuppRLqFMqVYHHMhA6N55pi1ACGjEdSnitcvGo9CSWatXg9dL2h7pPUgDWtw1EWuFdu2ypmEtSChAvbi92gUUYstYd44sUk", + "private": + "xprv3QzFV1Q35y9sQGEkatDsnajTKjdh23ViC7ZRfDkVrHmxQpdvyzHgwZMXfoWs5DW17U3rw6K7FzkNZyCWhH5E8gq7g9ZNcGFCkCvWGArrfPQusNLgTGzwtbJ4xEayyK3XP9oatvNhBvwKt3kxjreA3XE", + "finger_print": "59fc4d7b", + "chaincode": + "02637234610ddeec2f815d04fe1be7a2618d23e6f6cd86ccf0bf9ced98ffe427", + "index": 2147483648, + "child": [ + { + "public": + "xpub69rSJsbcqW7M1jp6452aKQCEhUYBCWNMzpWco1bugPkWBuMLnqdxCpWVzDpe36ZPesQvT95ssWxgm2pGaK2JvXLap2yFuYaXdmQTiUqaArK", + "private": + "xprv3RNherdsiv3UyBk4cXVhFw1cCYX3TPJhWzg7EdjyCfBybBc9s8M24rv3xurSgpoECyejcYNvQczJVSzPXy9Aa87KEFeaQp9ufmgcgeeoxkhQQP6RaXgZApft8aYzKLmvP3xmdiyzJFfboPhk2mGHyki", + "finger_print": "0b44ae3e", + "chaincode": + "dbe40796e2d2c7ad8993fb4cea6e560296bd76d500de9f2cfd02a88689c70f41", + "index": 0 + }, + { + "public": + "xpub6C2fo1kseCvKVyj35Xs3LWJ2V55vcvVHzGAjCwZdXYtfTdtUnAFuMjHrFAmNKkcqAzkd8SsF6Jqi7nqTWXEeWP4xy5zqgaUducyyARfzbMw", + "private": + "xprv3S2Cb7Jgwgv3A2EnuCUL2PdjvyFnCumjQh7RzTuJhRsm1ugrWh447KtVXaszAENrzhgXNWvvQAhZPFy7bSFba7c2zn4rMt9vMgjHajX4Np73MNa4csy28nyfH5BnnRiC9BZNaLgJN4SgyqMAitiS1Cd", + "finger_print": "335f759e", + "chaincode": + "109c36b2ac4bce910aed3c7c28f6cd38d2909fa894dfc026243c92286980ec6c", + "index": 1 + }, + { + "public": + "xpub6EhcPXM3z5MPmP4i7aMWzn7xwDM5CXJycnmcpwtd5vHQTndaWKZD66EvovJ5RPgrKE6Jm32mHmdDdXL8tj3Ym9f3x1hiVCPbCvv6jptWrey", + "private": + "xprv3SpEAY5iteDfALf3x3NSDJKEcAytxf816ZvaQrtUVVq3iepKHKr8qkdnVwoDVe8bZRuPuvSnUUKQAfmmhd4jtYGakuA39exzSZ6ZixCTZpMwQxzKZEEp15Y6q6oAkbkZxSEF86D7RfP8SjUR6Lc4xRB", + "finger_print": "9ed1e736", + "chaincode": + "82411667fc7b344e5f8d26eb21ba37a7a8a9085791fe906e30115aeaa5582572", + "index": 2 + }, + { + "public": + "xpub6H5LSGd7T6WYZPjUbB3vdPTvAsxD37nhq6UmQ683y6c6VGqG4kyyVwzotFeuuSDycVkfAMBLW6xST96iYnjzcdqSheNNaMTwF3H3Gunc5FH", + "private": + "xprv3TX97PUZsUKbcFR5bByeyzEq41ppAMfZgahANbcUGxV4JzK2AQZTQeVutp2JSKp2Htg7yuNANhNUfX192Gi7FsVrVrWqTm82xPiLbrpWDoRfxohZrajEMXAjngLnHFqoWi95F11XsTfBVZkQMjCR8h7", + "finger_print": "e1e1e9da", + "chaincode": + "62efb74ececc4dcbdfab0695ed3fd82dbf1cc68a48e95e1e10c19834aaab76ec", + "index": 3 + }, + { + "public": + "xpub6JABGW21VAfPDNdbvtNq3Ajpso5NRhFaqitvwamKScDPqYLsX68akcchnbsctCQ7SPzbueVyJUF726s8NFKuDsGJJHwXbh1Y5CBnZ5u95ih", + "private": + "xprv3TqorNf827EKg1TUnfMCxZHW5qdqbUaUbo6qE5otAhdhJTexoYd8LZQimFpR8oBqQ4GkqCQgju1EUAZ3787yxnyrMnj93p2GNE71f6HSqcbjHXtXVDhk2hZodnVa7Sb4bWG7xdo3ifScT5dhsXRzkRq", + "finger_print": "754a918e", + "chaincode": + "dc07ee9879afed890155e9f5013c3dcdb62718a53a9c22c13ec9ead4fb3518c5", + "index": 4 + } + ] + }, + { + "public": + "xpub68YrpCgUNojGcbEkDSYqe9f9JeaZCPfnephVsvFGYdkwosK25Wuq8taJ3RNTg5e3o49HwPswGsgnBxDpYn82p8ftYdyZybmqEHd4BFnnZTF", + "private": + "xprv3QzFV1Q35y9sRes5gUJnBaKpzWmcZfEy7Gs758XRyzV7dLp8endyyZKW3UVYwZhC8H5TwTEAnPaR62qkxnzwzGCH6ZzGsdrNcT7nhvsHqWze4JywsGGopWmamakpApQ8SwD4xWAph3ayBSkt59Vk38V", + "finger_print": "59fc4d7b", + "chaincode": + "d86861d891c4be429037cac14248b2db179d7bf092f8ae157255423f419842ba", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BbDYCjdAJa9vmdKTQfShKZCR3C9TnuwVBsVLz6wFDt7iLg8dSpgaUEWbD4pMpCZrKzjRsnWhTG3kW9c75skxVJHp45xovPiYhRjSgAcig2", + "private": + "xprv3Rte3pd3iCSpxKDLMf4aLotnYWzPjWipNXH7P7TZrSgdzoXhDCeTnTLMEsQsLMZ6QnTpnx8wV4FEGvFo76c2EDdcxR5hb5noJwF5NA3JLtnKAurMc41RhC7ov3RcfsA2YgLhD5uf5AheYi1zHgXGLo6", + "finger_print": "f7ab17f4", + "chaincode": + "53a7344adef216795be580b7833a9dafadb64b50e1f2a2d69a9d615490b7d915", + "index": 0 + }, + { + "public": + "xpub6CTN33d7Fnnp96UKtcHBK3nkg2bVfBd5TguUXoh4etJTrf9tKuGcrVpVpaCrpVAbGg5KvYHDRsNWZGQekUr2dxeM5DmaquVtD2Xv2JYGn5a", + "private": + "xprv3S9Y44e1kzfhW4HaVeihSk6YJv7f6Gv2CoaZco1GsHJC8Yc4ZhF9H9tcJs1VSPXBgnQRtGkub5RUcZwWx2bqULVomBxGWg6odB1fEBGWb4A19XVw4GdZXiGyx295GpbwGLWn4tCLMdT8xxJHhrDUvRS", + "finger_print": "6d4c2237", + "chaincode": + "cd3fbebf8c40cde0c3eaae500bd78b88e046449d3d64d31a89c7c84e9746fa51", + "index": 1 + }, + { + "public": + "xpub6EZSxraDzLpEfeBCXgJZ5yqzKYguQUGQZ2VYVnh9PJLt2R8Ghbq9cQR1prwN5aPRmvXT4scgdE7WoEqvsoNmi9RShiC7Tdy3imN8YwNogyf", + "private": + "xprv3SmoXcEmpewgPZoixhYUCbYELr1ytbQkCLBzuezKChj8xDHRoPPJRHsXckVbGAX19uVCRoaXzCgQvoERDAtSpk4PSqbcerBBYWQJuWQnY3m2rwVA36qCJMhpneGWEQqgHyvmGWDvvS4zcu7uNQXyByG", + "finger_print": "8bac4ee8", + "chaincode": + "c50f8d4501d9789c249d590c8c6e671e892304370246dcbba82b94ad7d924f29", + "index": 2 + }, + { + "public": + "xpub6GcihZKXwXUdEvhWUEevnDa2fpNpvXsdUfxt9Yv3jYZg8rY7PNtPEqaYNghnTMnQSPBNQUgijzpfD6PjpqrGe3nYz8YNRmnx9Hk2bN4qwHF", + "private": + "xprv3TPEXRqkaXi3X5WhYqD4cKiJxcYT2Ej4TYch61QUmPqQBgUx4yxiReowUdMEMzpg7Ntn5EFhMUB1dNPrpNgHnkYSVAtNmZpUhg2L1zCmkJYCGYWdgChges1hfCWmBbp83qgCUR3eEabNKWMjVPeGWpG", + "finger_print": "a372e26d", + "chaincode": + "18dec86da68bac971648f4ac95cc7d6f8443d66aeccfe67c69114928dfcbd630", + "index": 3 + }, + { + "public": + "xpub6HhjBu7dn8wPcnZrCRn5XK3h5akDG6WA4RXLiFCPHKMppqEUM9X58NtiXdbbCc7qxiGhJ595DnHm6Di3U5jgY3UCqPgGktNxjuoHeSTSAFj", + "private": + "xprv3Thx8oVwxzCyNK8TWZpHJBV2FCR7uEhKYRrx487suXZuRhTstxrTsQNmaedxTyHXApeWc5hLaKFDhj873wUZdbszmpT49bDSFYRozDi97tgqk68wqiJG73dvoA8xd3GeAHaLrJznrNQr7jQyVDM7ctV", + "finger_print": "373f8618", + "chaincode": + "42059ed35e5f753126f27345f8ec6977b4a35af80cd75bf14c399cc42ef33b6e", + "index": 4 + } + ] + }, + { + "public": + "xpub68YrpCgUNojGdRL9K9r53N5YFH3kDch1jKH4M3jEkW3i8NiHwSaRYaWkpU5UggwLtnFdrzdUX82BRKE944447KJmk3rwQrogJzuqGzYqw7g", + "private": + "xprv3QzFV1Q35y9sRu9htpgmMDQWDWuHSUJ2gYKzbEQGTZjejEGLUqnsnjERnnUETAHyoDKn3erJ7xWXajNF5jVop33GfPhz9pSP6cyf5ZJbH3qmvkA9vFYqPbRNnbUUzz6eiHHPAejXHN9sqSfEgpMEsqR", + "finger_print": "59fc4d7b", + "chaincode": + "2bb16a7705abd894ad4eb2e1f7997790a4b87d6507af40c424e67f0318c376de", + "index": 2147483650, + "child": [ + { + "public": + "xpub6AeGYQrkoZ9ECuEbyvzC86wqWZ88uhTYYLaC4KezE7Rk4Z66hMiLvSi67tPvQDb6YnydHgT2jZEokrLnLPUC2jUggaJnvrszStNatTgfHBD", + "private": + "xprv3RcKK9njVZJFkbiU6eX3tomwUYUvZDSFg4gDjrdamy7QaLpsuKLJUHKX1JuZ4zuSShQKmNbHkZDA5MmSrEMxuTq7dHipdgJzqDrrF4mVYGBmfqEft9Ad9zRhiurBUzp36sr7hiZjxzRme27NipVGkfP", + "finger_print": "76c69f0d", + "chaincode": + "07f84c583e84a42c6db1b313809bc21ba45d6699d67dd3f90011a64b8c289a9c", + "index": 0 + }, + { + "public": + "xpub6CjSfCf1wprHUaVbm7fzWbEewtrqdPKW9YEVJvJyj9PGBZwNcHCzVwk1T5mWjVE3WftnZ8Yx2zhdnoNkmX7HHYcHBwN7YZXZhK7X4S4dkRM", + "private": + "xprv3SEK6nnUSXmtfKxhrEYLFMSue6D11KgQZdFkUFr42oX55akjvBqGLviFHYL1r45TVbRovt9JWLaq7z6EXtxSN45o6tEbGjbt1jyahjtMgz63nnYCGXtb5hXFQYLzMFxifbGeaAZrR2GE9fqoTNqJjFW", + "finger_print": "930405a1", + "chaincode": + "df9756c93ced9b164d7ca3f421221c9c751729dbba2f76bfeb85dc5e94f809c6", + "index": 1 + }, + { + "public": + "xpub6F4fb3xb2n7D6AB4j6TqBXjrEsVnk44FZgME5SiGWMqucqP3A9TpStaNVfF1TGBJQ2RZ87knuWFSLwjZrGZoExFHDCh44rDc53nxxcTwRx4", + "private": + "xprv3SvUwJSBnNzm2GRzAyKJ9eHJ6iMgXj1KfAtivMCiS5Wcn4m4muEk1p5HSNo2Nb4SMnxjeeNVaLGsbYePFLbvqqsVj6fD3mGC2vbrwfk136eKQSxAHEz8A25xT8UKnp2bNTwNCCR3SpPEUuMXF4ZfNNg", + "finger_print": "d0358c51", + "chaincode": + "a0eea235b73c87e2037b1f1a1a6fe7ae345c0f0bded26b57315f87abfbb4ae2e", + "index": 2 + }, + { + "public": + "xpub6FUbkeuqYC8ctTqyU8RoqPoZvUG3tWMrTtwL2mrDGjJ2sKiJPKAvkbEWawLRfksDrzCuC72n7wzvScYS2UHGGVHbACz5iaeUpWShpD6D3kF", + "private": + "xprv3T3bJqWgmhybvM7h37ymX2C9aUKcwE5f6cGZJzgfGgLdPTsQAfuwD4xEXxShLR2tAV1F5XGPt384DvgaQTFrQxZQj3ztSgKKsMutKAY5sZLstJyY13hQpXNkFwrTaJBeFKCyoNyBdXPZotvmygKLNGJ", + "finger_print": "0859e101", + "chaincode": + "8d64fe25a459954cd236c8cd26c355066e1a5ee00c37b372b019dc2306dd0e17", + "index": 3 + }, + { + "public": + "xpub6Je9mfTrKpVqrFNNVPwE8BcQRrbP7Wm27RbsGeTpp9CHuPRhTQ2PnxtauhZF3KQ4qFrCzrafx7Tk7ZR35shevVi1YbVtrB8E37mWobD1HtV", + "private": + "xprv3Tz7qSsCxhbYZJggbwSFVtNNaWVgR9QaYtyBW7XbNX6aMwDDphz3NRHErYRXxwHS5vozquNncgMJdGJcDqXy2Cuscf9aNrqMxxfjBfDyGhWrpwiiwbpFEqSFPyujzeBsUNvFiwTnCsZPv6t5v1fndZv", + "finger_print": "b6e91a63", + "chaincode": + "a527d3b2e82e50a782bfe05872a2bf6900c7b88f8b9d4947c7d01f2533bc8e1b", + "index": 4 + } + ] + }, + { + "public": + "xpub68YrpCgUNojGgZnSTgLEUacEsrwkBk5en8RbTwpbkGz8jVTWYzz23oTDAZZB43Q6E5a78v3W2DiS9Avqzup4CDech55xmusnhytaa1K6ERL", + "private": + "xprv3QzFV1Q35y9sSqMJbwwKosAe5FnXo7J1sy1TKvHGE4znNp4WcSUNmrPDf97NAbmTGiS15fw9b1Rug45qgq77Mk8e683ehXCj8TUQo55aecNK69SeAa9nrpN8ccuy1cWYTV1daYojxv6Z7pA8or56Lxw", + "finger_print": "59fc4d7b", + "chaincode": + "67a835b9dcc20b3d37a2e71773b1c72274d70c606dc7fb09cb327646bc46294f", + "index": 2147483651, + "child": [ + { + "public": + "xpub6BMMMXczM3YbKshwvbncQM2jrDoLaFCKCukpbq2NSi8dJR5brw5CqcRBn5i3be2xtZusHaZUe9WgVySAnjz3FEES4neVynP6AH5KC7yNKvz", + "private": + "xprv3RpXA43yGMw7eD14ziECr5geyNjd5AZEeKNSfPYEiPLd7tYf1h2oAwkdaXzBBcxBp1wU6xrKUjdR42obsMxapcUBBhGkYGHCqTL17DcMJw58nqMqHYK3fYe6epTbQ1QeJCwpMRt5iR3vzrDrEJBFjZc", + "finger_print": "d724ff80", + "chaincode": + "6d414c795dd2ac3de0f77f88a7a3e5b68137e5189b1ca04f4e94c08e800afccb", + "index": 0 + }, + { + "public": + "xpub6DJvBcpmQChGdkVZCHgCZtaNHpfLm72US5oTKxvVoSGo2GgMnJZGiJiXNujekkXxMd54Z63v5KwGV2Kv3e1teTc2miZ5RFbqf7rh5zwR8EZ", + "private": + "xprv3SQFrUdmZyrnRYEfZmd3C4eFwgDA1gN7URuG4QGV9FXFovkvod2wgURCQwFjwvdZ3v1sW6gKvWzysvYjSwLVrh2ynGvFqFThoiYDPbsjF9Lf5Ya4kwwjFZF2guw9r1gxHGiQ25JfXpqPoEdQaAjsL4f", + "finger_print": "e189898d", + "chaincode": + "c6151851afcff387d32504c4ba1bd4d1302fdf8f0e825c1fa7d4942ae4045462", + "index": 1 + }, + { + "public": + "xpub6DkvVzQ7t32vkqe7cHCr3gD37N42mdqAoXfyRaGHoZbfTPdYjbFEEZwCarM9nxsxStp6JQqARaky46PMsAS7b5nzJiwhbowt5v6pyqhppvM", + "private": + "xprv3SXyvAp74ZCj6DuYEdsXoj8jmZveSCtZezrAoDG1g8dMkAT6TW9Jrn3uUarFcBajyoUqCdcUGNopyZdgvEEMcscjuLtJWJ8pc55eDQGnijrhyrqFooT91HrHV6Z6sPP2j33ExLY3gCcwHgQtdp4zzeE", + "finger_print": "1e89d996", + "chaincode": + "f245baeee05686c3f442c1eda83949d53610578b37c7ae7b672046c7a137e48f", + "index": 2 + }, + { + "public": + "xpub6FjcjpdKwnYuz3vuCDtH5ErsTJG27w5UvjPPT7UZLtaHbsUUMpWw3mXfojSzjaUxPh7BVsuD3qM7EKBNS3Uj4c7RhYAFQP448gsdKZHEeEx", + "private": + "xprv3T843a3aS2yVi9hE6yqnxyqN8FiQpLDNJhKrS7j5c8nEZb14WBuLmEVLNuwvNQynkPgfjtnsBH98geGefbvdA8Y29hezXUn4MxUyAYhjoqtNQLh4wpX6BJ7dV9QwYr5fYhWrF7azrBGSNXPbQWLTSMt", + "finger_print": "2b939a56", + "chaincode": + "20c5ccce4a9da7919d403658e3fd72c1d7fcc28560ba50ce8cb37bcaf62c7c32", + "index": 3 + }, + { + "public": + "xpub6Jbh5KwxwuBtAhJoN6wm8Cng6A1Rfrz9zZmncpGsTvzjkzHfGrz6Az3JmtMXzwJNEn1cPBhUjJYvFroiyrLHoAAzggjm2LvM9i9GUfqFtem", + "private": + "xprv3TyPSrufiPJrLbCNjUjbX6YpvPmXZ3Ym1TAVU8KkSGXMjGULXPBQvFPFQPKWWwgMN9daEDqSc28jakJYNn6JswMh1HTjezRDWUesbQHRKPzaAGJnweXUsD4QWYnLUJKe2cukdg2bKYCtDrpt8Cy2jwR", + "finger_print": "b123b5bd", + "chaincode": + "5a5b78954391a5a16e356abddf77c467ca4a6b9a64c45881ec19752fa4505f80", + "index": 4 + } + ] + }, + { + "public": + "xpub68YrpCgUNojGiAyPnUtuBDTfG8WdNkSEeqfXBFfJ9G1xMHUGwa1RFJopJKsbxf5miPzrxe1eT5DYkGPH9SV7udTWDXrTFBrfXvogSGFDd9b", + "private": + "xprv3QzFV1Q35y9sTK2unoBzzUQMzT4gL3MAuPQ4KyR4zRzzPG9BbFtt6fiUmiTuRfrutY6MNazvmyBZhqs6gKCpTRy7DLjzHefXfQwRcS7Lmv6joTx2crTQgXYxWV91Q4hnk9Mvk2hFxJyVoHjwfTB4vh5", + "finger_print": "59fc4d7b", + "chaincode": + "09097e8b94477bffda0f2d3da2dffa78ba05ec046aedf860af73a4a070496f63", + "index": 2147483652, + "child": [ + { + "public": + "xpub6AJ1E5TcrRHW2srR3bB2LGzXTGPpb8MnrtpMpfUo6aui2bueWVEW2DpJcv9RSdGC5XNZePDaPNUqFKJY5MfUWEDbzKgMbDR5V4wEBLnL4Ro", + "private": + "xprv3RWJAvjJwSh3pcGAL29gomcUCMsdvh3bxqHAij8u6yETxsX1S1KSMCJHyf19qt9fVdQ6A56Nqfy1fZBcTWMH76ubQco4Qt7hFaDDaFMh3KPb6kWPa9tzaLRvY9TDnZ1mxGZ8DqTufTKumv6G5uZgvtR", + "finger_print": "473e055c", + "chaincode": + "5e3ed2c871f93777e88eda3a8f3d5d0298c7b6c922d5140c91aa692c93f0eedd", + "index": 0 + }, + { + "public": + "xpub6DAVP1m1MEACFQcE3rmAKEiMRE1CNbE5itbZ6eyX7JAuh2xbisrsKLbjVGyJwZSaQUoCSWwBoEuQk8jpZohtLctzbXdKGLCGfQNnpSwHGRY", + "private": + "xprv3SMkeb6BSJ4KyuUBgUsxMWSVwdiCj84V8cE6HkEaZmdYgtqncnkGRLugy6oedkKPTigkzYDvBJFaXYZhDTVsu2DHeDrm9dHk88VjzyMhau1cWZQ4RhGym9xJ3bWuG35RTFkgiYV7DfWqmp7jiGmruMa", + "finger_print": "cdc4b97c", + "chaincode": + "c2e609b4e869f2399bc04191934d3eadc33fadc25fb8d3114820853833fb2230", + "index": 1 + }, + { + "public": + "xpub6DraEMFg42YNXypzDpSknjdN89qv5h8EPAx3Kx4M2UVPa2z7R3neh5taWPaADKfxhgRXu3Ptm2TRyviMRxFbDDNxQBpEqVRg3tVxzP494Mh", + "private": + "xprv3SZfGqDv5bX7B1AYZwFWuhqA17gJxUeHkUt3vPPWnC6Hh2FMnpupKbMT2Tu32Yk5KQLpy5sUHK32tFM9dLa2fQYmg4fLXTwXGuM9oMT7omkMiRohAuSXPrPrTHRbn1yAmcpJyTMhuvFmvahzNZE3EFo", + "finger_print": "2bcaff09", + "chaincode": + "818c703af6053099af3745b5d17b344a54ecd8a2163cb549fe9f442359be2be6", + "index": 2 + }, + { + "public": + "xpub6H6vksrmEPphHbSA65BKFpqwidnWuaqjkSUCxTS3UW8vemhzoZfNcUN5EGjkDShtpPUUohpZYsX9CcoYo3kLNFbTR4eGx9JcJafQDA4XW3v", + "private": + "xprv3TXcY3DTW24eAYmGcArYrVWvacKQ1ccNAsn6KsgiNViYer618Ay81XDZJWpmroHxL5k3mGJ6KxLwLDrErJ61DHpqDTnnUtrW5sbNe2yMmu2conWHHQzXMYLwY1V8m5DPUixopZS5r39rwaiupwx4gLv", + "finger_print": "e59dc11c", + "chaincode": + "554305edd2189531efd3f9722833bcdfe03d001791d4c083892cb008c0251280", + "index": 3 + }, + { + "public": + "xpub6JZP1ogr5zn1d7tUZrgzANvU4U6wiKu1HrTiUGquDGXzpcLKTs5vyTitRr8QH2hcL9DgT3LcdEnzBndHswSz4MwBoC92megKYauz7iuH4dW", + "private": + "xprv3Txhd3ng783Ks93qvQHha7QvH69qpqLU8GuTyW5YZpKxshjYyjuyJmzDwEqXxj8LC5aas9VZrah8HEESPWkqHBkVUCsdFZ8f1iTCYBf3tixN6jaivi46Z1aRAvabqdiVzZhki6XuYg7FAS2kayNbvRz", + "finger_print": "abb7b75c", + "chaincode": + "31e58696b7400b0ae486cf2e468782c9b95e69ad7448cebb841f119d0d3b5677", + "index": 4 + } + ] + } + ] + }, + { + "seed": "bfb1c5d5ccb6e4cea56d43f6879b9720806e6f0c6b7835a2ca7cb62779c6c11d", + "public": + "xpub661MyMwAqRbcGpREQxCnEYid7RBGgAbG63QR8o8op15W2V7fMsnNazvBX2gLLXTurABa64FXZY3KrYtmEPTF7EjyH6mrEdtRtv7ACaDfqVu", + "private": + "xprv3QESAWYc9vDdZwdGe8xH94eCgi24LsVoUn4rXUvmaVMDZCc5WyMBZe26nC5yb7o1sKS4iXPZfQRgsiaN9vadsJXYK79KvBJwqdhADUyhE8NMK6LFxKfbAjPXv2zAeSpqS2rgvaAiCxZ4UfggvNjt753", + "finger_print": "00000000", + "chaincode": + "e49073583d9db8bf46bfc7feac4e0e5e385b91b1782513421a0f45128008214c", + "index": 0, + "child": [ + { + "public": + "xpub69F5cpTShgryBPWAg9j6PdWGRHHHiWHbgW7YhSz3TK6FW4PLxRYJww1WsWp27dQ1JCC4m6vQqgCSGiPbjWDkbsJszPrahAJeXMqa28sjbND", + "private": + "xprv3RCCUHDJZiCJjTmZAqKXU3ENfNY9QSbxVC5wCb4oxy7eit79jd5SvSnJyjP5yqD1tvE2AjNpARDQRiHLiU9KEQy8VP4GYCGT94mVYaa3Agk7BjWcrY43PCrmbeoiFFQNwkYZo6gZSQ323q2J6qQSzCH", + "finger_print": "b854eaac", + "chaincode": + "212827ca19ef65adba8368e05b0b2e88ab428dbad154d4184f30ccb4f1d5bf12", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BLUMTdHk8wahRX3dnRqzrUSumTvz6z9AMMmJjs4MqVFTxGNEetLctSnKYSSehZ6tzryxkPo2VGfVTp5ggPYKpHwkHg4xoMGngWT5KL8hiM", + "private": + "xprv3RpG1KiErQsvnY6vkBBFqHxvmUh3npZWZuFAoNMftRcmw1WbdHxsyMeE5HahT7bQhneRaeKfRJbdxGyNH1SQ3m1RL4QcJRhKWSccWo3kVaogJhhvqHDPa5kbxLceDfQuXnxyUDDV5FsYbD1QKTi5EGH", + "finger_print": "d514f572", + "chaincode": + "84350348ab4b736788fe7e0fee2282c2b2d9040576bb3ec4d580b13a0ff186d2", + "index": 0 + }, + { + "public": + "xpub6C57NLPHEWe98X1CUTST6QEswZ8fn4twfHqDAbryQZq89Bk38iKRswdUW6hDVq4B3nMvq6GCSqoRvfEt3QXxDF18UNfetfzAXqVURaKqYFD", + "private": + "xprv3S2veP5M8qa7ngqmPW4EVnQrXJV1rrMHJYtLs4pSF78JuD391QyXCkbQuy7qUURccJefEJnnK1NDNixk21GL16fPF8Fq5hH1NcsjaEDVR4AzddFz1ZKW6HsAx1CXo9UyhbEuBP27cfR5xrGVtfrMbqr", + "finger_print": "39193f31", + "chaincode": + "b1013c21e0707d43f18b76bfbe2f8beccf8c9277d4cf6b9aa925fd0497209292", + "index": 1 + }, + { + "public": + "xpub6Dgh8bL5GMBUyCc96uai9P4PffyxDC2Y7NWrLn4SzSVzLjQFAMUYmGMLUz8e7UAsyB1mbiNcCCXVSPZTC3r71i7m74ZE1S9qTfPoVjoB5xY", + "private": + "xprv3SWj2ZYAh24NJxiKq3mUgFBjQRBQHXXCsNMeEAs34NjDBdgRmKVUmRemVbLdDPwAE3efCf6hsmT3PpRwnLhG2SY3u4medJ5APzw73TEah24unjbP24FypRqbuG13SV5eyHd5torh8y7xAPhPU6TwJsa", + "finger_print": "149d6e19", + "chaincode": + "2c469002537873c4a633c40996076499462de41db10d507e6364c048edc0f80b", + "index": 2 + }, + { + "public": + "xpub6GDr79bvyikWaNxH4YdepXoS1DYjnNP2ijyFywrV7BsuLqAnczxiFRKrifR3ogCv9Nnf2oqd6gqoofymYEgutHcAp4FRw62ATHxq4GpmcQx", + "private": + "xprv3TGSSkztinDSJasvm1xSqYNGpaRV7tuStUj29fQW1o7DKitqbij7EhcSqGsLyfaNiKqdQR6LgSCWSoCqPs2thLZ3Fx6Larmh5seMkhTx4TeQ4tjyt9LtjwYhNSBBGKpfKJEw3EeGazBeyGR18FZD7db", + "finger_print": "6dcc0a6b", + "chaincode": + "83498ff6b575c3b871d8df8563797788e618ef71ebc6d82aafd75c41ced6ff1b", + "index": 3 + }, + { + "public": + "xpub6HdGzyzbYcC57FbCaz8DMrLVSZhrB2sF3jYzz786fvYQg6awVuNNTWjJvcNfkvQ5z7XLTvkGSFURwijpCeJv4zd2245yPjc6QFVTmFTBR76", + "private": + "xprv3TgdSKhu9AinVTzDBVDo5sjat5qmMefcnboCHpLCDWMGQCvSZgyChkRF46ejGnDJgk42X9mW2iPwWDMKx9EJmL6ayTx6pG1iD8cM17XSJ1H9RVjdkiN5E16xvxRPN1tdcQoNwN3R7WeEWM6Wu4tNcTm", + "finger_print": "2cce6142", + "chaincode": + "93324c030681c9a89b87d2807c65c9f2c0ba1222c6ca5c3f0de3f8647af1af72", + "index": 4 + } + ] + }, + { + "public": + "xpub69F5cpTShgryG5v3rDiNAtKbWX4orDTFG75uMcAgw3WFYXEPtPYrLCKjDqGmt5xyWecmgJi6mGp45fjh5r8jCm7iL8vgBLBrUsAiudd6vmX", + "private": + "xprv3RCCUHDJZiCJkrh6odVGpkJL3WQzACTrMVPfYMwwvDXBVRyam7oZyFyM2pRrqFjDXFC87uf71QTTNxqTzzjvawuXqkbVQxjS3BCSbae6bjus3QWcsdx1yDCaJhUKE8tMn6tVw4WVxX6CM9tnX7xuB31", + "finger_print": "b854eaac", + "chaincode": + "f8e8131d2c5f4f99f928a44a8b00d2beaac2f50c57a19600948a2cc619bc633f", + "index": 2147483649, + "child": [ + { + "public": + "xpub6APs99hZar5HoWLnXTVcpntQMuJjzj6G2R7Cmzc4X3wz7qzuaFrm2XV1k2V8DvB7LkiVHaG6pe7WKk3ybX4rbFCGxJ8rcBmGquBh6fhHrdV", + "private": + "xprv3RY39XXoMmFHv3DoSdgZyMjt52Am5WTkwLbvKoJRoacXdRTcRkg4XeJ1Dti8osoLkuKHVe77AizHhUnSKH8DRvtfTnQGyaVBYKNG7WWw2KekDV6PVdQUyWCRAFGzEkph1m43EsyzB9aBCpQb6moSUsm", + "finger_print": "54fd5242", + "chaincode": + "df4e91a13e5687f99b79ea1cd00482dcecb464875682af6c5d3364697b9593a0", + "index": 0 + }, + { + "public": + "xpub6Coq88PMusu3i8micD5Yzsc8xwocgoNkPRE8gKMcRfNHFeCNMdHKtAmCqXJwke7LNKoDeycnLkPzyjba8a3JR1wBAACW2ostFQgPEhn3azn", + "private": + "xprv3SFch7AbWkskcyxKnRDz1i62TbWz7aMUnrvaiyMpQrcWpjNJs51xgjzgKLaYvD4W2JKZ3pBFTPdybKNj4jn9PWw6Jtb6rtRTCSjqeP6C2Fd9ddK6R6a92afB5ebwkMnAhsufHjE9uruq2wSb8VrdUjG", + "finger_print": "9d4e9c29", + "chaincode": + "086ca5d091035f7ab2df7ecbf6380ce523719c44a44a95fdde36055d062e535b", + "index": 1 + }, + { + "public": + "xpub6Daifne7zt1AyQ4PrW7A82sU24k5fn9BEdNGEobLpxpMBh7s1A5yyEwqcmP6rR9RUbFJFKqWh7zmNGn7gsEvCFETV1xP4n15co5NHe8Co7i", + "private": + "xprv3SUx7A7GNZEDczrFnduTT1aDCGd7KdgKBrM9p3gJzoC8KuN3kRL9u6YCs32tCzN9PXZ9x6UdPaG4hKGi4UJxbRe9XJC3AgPLfeixg7gbV9XbRv5UcB9ofkSvB9mCTn8DBWPNmVnz114gBh6JF5r8CpT", + "finger_print": "069a582f", + "chaincode": + "3fa9e7bc2e885a964df6e41f7b2c292b50c763a1e7e0450c934370dda3119717", + "index": 2 + }, + { + "public": + "xpub6HEq8hvKNSETSwSvLvDeQYo994Z6mJ4qYFAuCK8rAiFXUXESeSCLggPR4AAD6EU6FjJfz92SrkqN9xev4w1wdJgRT2vWvX6YWJFBnXr4XhV", + "private": + "xprv3TZxhgNw4CYSi1DY2U6SXMSnSP8NEbEbQYvqfqgDhD3LpPwhTh7tZmdt173ujyHS4APdHijgAi1pHK6qvSDi9ZWovMmgMyEtDmr1LMri6cQLfPcX1uLJQvuqM4y6CmF89Vu4QQ4wPV3p2oRf4QQBES6", + "finger_print": "f8278a50", + "chaincode": + "045756b222eb26c9c021596893d3560a1de5d5ba430e8b790fa8ac09a2e3cb0f", + "index": 3 + }, + { + "public": + "xpub6HKrCeGzyTPq5ZD6rtEPBEt13EWHdgAPKUgGKCSRZoeSFjq3axKT61gZYpFCK5JEiB5Th5KAJK7VVmiBsi85jw4ymQLbUR274A4toYkNwwG", + "private": + "xprv3TbTAfPH4wcM3c76xxKFZW2tFX3tKGRnEXL7eRp1iv546TL3mnDkkrSuQFyzWJNRgTL436V6EKVQe9FFqorxaNKjCN8qyj1bgbw2eL8JrrevBnNce2EtCAwNaoLkRSb5fLBPgA3KuRJdB6qkwy1HMeR", + "finger_print": "03ed1a5a", + "chaincode": + "6bc06d82c1c2032cdda37ff5e1b7acb8e86d613569a9e05f6d7f11edb0417043", + "index": 4 + } + ] + }, + { + "public": + "xpub69F5cpTShgryJg39sgqSss1DBdukSp2g9idXzsH5133K4gcDMgfbmkGPL3UVB5G9XCavsLW7TVM1mqN3EBWciwPpjpDLq91rT5XArcWSs7o", + "private": + "xprv3RCCUHDJZiCJmdHeiFiv1YAsGFLmdEjqZqiwwwpXg3BNNSt5b7BEEYqHuMTUatXJDdXHbQfCrh6U1LznPFiy6Hsyisgydhd9XZ6tozADoLSDCTr8iVZFLMQRCckCWB8LUuS3UbxGLHTWuMk6PiJ19aG", + "finger_print": "b854eaac", + "chaincode": + "fce1a9046686a4e0e39fa84176ec781fe774fe11b2801a2896907bc54acdb6bd", + "index": 2147483650, + "child": [ + { + "public": + "xpub69sHNW33aiG8zcomUqKPTvQjFJ3qjNvpGSqhwHkCQMj3e1inKvaWh1XVHmAxTbG7UnFdJ364jheejNLMva8a9k8aZBWY6FoXKEGSoFMzamR", + "private": + "xprv3RNxEBfoefTpbkjfW3snbFd3AaQpSyFmokLsu2EQhejiriDXSvyzo1yJWL8kitHbw8wxMDs8WL3AhzjfBQDidcRzG7JVowJx4AoYGctwjVgZpPh6dw1YGdEjXpA6862jEehC5wLnoePoR4MzWfGLs8d", + "finger_print": "0d40a5fa", + "chaincode": + "d5c9d179dba235612394475276c45e71881a7e91400deb730369c2e37ebd022b", + "index": 0 + }, + { + "public": + "xpub6D2ZahCtGbzPSWBukQ63uc9uEsQ85EY7HzRc2TuBAdwFJBowAze3iTWpkPEqLHQLjm1H4hX9ou2tgXPZUeoiAKNPCdqgEXpiLg6eL95vbYv", + "private": + "xprv3SKQ4SdpQc4Gsg2SKnNYdq43cZUrC7MEiqwpxLhbajy7Nwv4PkkkQNrg6bTqHT8fmrbwMwqKpxYmfryZnXoHQaE2GoBPTSWRFy7613yrGAEQTrbLGLsmTgUjxdPh5dWfqq7tPi6HrFD9Zn4fLSHE9g6", + "finger_print": "bb2c3697", + "chaincode": + "aed685a5250808db22a0dbe38c5e1c333a0b2c907efd0e989c020e41ba99d6af", + "index": 1 + }, + { + "public": + "xpub6EcShTAWeeA4UrBohXobqD6ZdsHnYfCzEGR8e43ptknCKUDFzTZwFyxDi3HgL61VHnbSLVYe1cEBid7shVxL9J2Tn8XV9nGjNtj1aDY8RJM", + "private": + "xprv3Snh8yxBnPYVHeUUrLhiTqqAUnFDYvZBDqSLc7pEYox2KCE19gh5AHWGbCoTbp5kQ3jGGozNNG2iUQFBT1VSfaaAFgcH6CuDFbLipSqvUT7psCiPwa3F5Pbp9RoMrSJYun2dCv2gQgeGpkwtkKBXZS7", + "finger_print": "92b30ff8", + "chaincode": + "1a4d94a15e01ac9b12e3b0da7dfd221580c01f651ff44f30d3f402b3caf6692f", + "index": 2 + }, + { + "public": + "xpub6FduxECWRwDwotwh2VcSV99ZLdb51hHbxxV5p4LaRtvWGP9UKB56TZnzu53nhCejGQyJPcZ1dqC3CzMqs8DAjiK2M7QqZ9xPXcZRUsrYKS3", + "private": + "xprv3T6MnFxqZXSUpCwTcJekct5vhbWda36JYW1e9Q7aeEr9744giAxhDG7V9sBWTxo5bhkrJ8bC8n3rWhJkaNsDvv43fkxkXooY6hRJwrgYxASU9tptPPTiJ9mkipw5i44U45ttA9DY2Xwv4N8L8AGCnbc", + "finger_print": "1e32d1a2", + "chaincode": + "bc5d18c8ee943e7c3405edcd703506129e4abaecfc009fe4e098bedc63330fd3", + "index": 3 + }, + { + "public": + "xpub6HvbUtwq3gQgeeJSRoDc2ddkCPdE66RM5SeWB3KyhzNzrs6QBTuHNbxyGYjHJfSzHTQiUQHe8NvqTq1WtpsVKzLPSPXgwYKe2M6a2puoura", + "private": + "xprv3Tmmq8dubryN37ua5suVBSsN4vfRm9iPXwQiUpUACZcbgCueSPyaokLLyJgNMkHxJx63jUQHXhm6h2VshiuosyeuKDUQpWCSEeEESnaWXesLfMrdRR4qkfCwK1Cxq2G34jiQhTxHwvsd5qzHgKwUFts", + "finger_print": "556e3f28", + "chaincode": + "0808b794474a109474e18009b7356c60bdfa0605be91412e0a5866afb73ff166", + "index": 4 + } + ] + }, + { + "public": + "xpub69F5cpTShgryK73VD4iZx9y8v5jQHEMHa5CxaqQGRZUt3ZPHBCkEukExY12H5DwkAYgzcNQBqN9qNWzP2brjv2nqCRQC7fksWxtJC3FH3nU", + "private": + "xprv3RCCUHDJZiCJmkiVNe1hjmnkp1ctixqyvNcvMzEJFmpMdsa7EvhEdBrKubqEqLyE4ppxSQ5HA9T4fF6D7unSqoEAkwg95kRLJos1b3WTz3qwGCbPs3E2yeXyYLHM3RwcB8umiMejxMLqb9bNRs9bhHy", + "finger_print": "b854eaac", + "chaincode": + "282f6c2e0e852d46d850b8f055d0628ed5dbe98228dc5785442e441ce37073d3", + "index": 2147483651, + "child": [ + { + "public": + "xpub6AaVj8keVLWvE2W7Hb9qoihiLSnmkQ2VTWvCiym9EUHQq6y9jesjQhP6ADotmRS5FSPYCvF61zgp4PWVBGBHE6py5WQAJDuhqG3Gg75y34J", + "private": + "xprv3RbCK4AZYeQ5fa8ANrX4Ju2aMyWod2p4LznTQ3zGrChyShiPWPNvA3b2EvvBP8q9GKu4mDPu4rhfCocWnu5eY3sfMJoEWzBhTJNwaZp7V7kGai8WHuChNUKJMaf4GbQKWEXQER7JvgCCkuohSYk3edU", + "finger_print": "6ded2016", + "chaincode": + "641eef3dd15b01cf07798803a8e90acbd04f2eaa46552d465f770eb003905870", + "index": 0 + }, + { + "public": + "xpub6DJrnrDYaxVuofyP4iAqKZ4QMANW7vhzN8vuS6AZkDBpgdZj5vQkHF1htDZqf2mqNFJkt8Dt7Vg1SsciUFQS1t61yPiNmey1Btf4vq74aFs", + "private": + "xprv3SQEr2P89WdSdtEk3fxLrDucGoT5QzJGKbac8NyXMKAytjcX6tTVyyaisU5m48D7wpBzLuEwKpzbKhneHbPys45HQLLEeN35HEeNFmq168qN4hQr3djbRYdq8A3rk8w7h3MT6oJMDrunnz4GCbAkwZg", + "finger_print": "e1666995", + "chaincode": + "4a4441d6cf86b83c453a11fad61344fd0d4956b1df9f1e523be50a5d85e470cd", + "index": 1 + }, + { + "public": + "xpub6DcYt9jMd1FW6mMjmbGVKjFC9azg97X3UJmHHjLmtAygQAtPhnZkJEXyLKeGQyajtiHmK5LZ2HQr4LiJrg5qWUpYhSkQyvpg2KUp771w4GZ", + "private": + "xprv3SVVfAhjHDBxcb35ujD7CzuqFDmqP7pat36C2QYPWCGzxR5to9n3NX3UDLCW4bkFB3ectLNVz3RzEBbKdEa1pgGdVwVBNghVL9Dbegr7Uh2tttZLiEXVZAuPsaraBgQNTRT9zd2FbmwuGusm98DgG8h", + "finger_print": "0ae604f2", + "chaincode": + "7a3bd33927ab97e2ecdc8dea40ab474d8749a4011a58d0591b97ea2aca23faa4", + "index": 2 + }, + { + "public": + "xpub6GtawLoytePobHvSgfhpQKfYPcL5UYU1edskvTJjumsuHNaGbFLPQSaEBiY9GFqL3Qz1vCQ9q8VZh9zqKhjVMzdXesk48qS1wGQqgJtAEiw", + "private": + "xprv3TTwtkjdSMryaEuhr7wKBR8EXAsCRx7LRdiWJhrgW1szutDjkHgFHwac2uPkwGhQpYDphocd1hXfC6gmuC9sZcJds4LuyG3Yat3jFiBXKw1cKqJkFaJAUz9ypTgHdNaL697hrLatvmhBF3JnmYyakam", + "finger_print": "c8aa89a6", + "chaincode": + "af055e025bf2bb4df090c89f378269625992f7e322bc774ede20c90c2ad695e2", + "index": 3 + }, + { + "public": + "xpub6JgBAEjWL7cHDhcXTWtq2b6bg6RDnZ8MbF8rmX6GY38rbsFnLNurLXbkbZiLzNaEtHFKmhEA1wWMPaaQJPjXgxKp4CviF11JZj7V2dbgN7M", + "private": + "xprv3Tzii1rmNhxeSexZGnFEVfXYwQWnVbFhdfKQJimfQfgrr68bgpRRz3RGyPyCSzRpoPni72e8DTmTucfNfgJKD9EeWe45rATqDy6956Y6GfAFkb5sb4cF43923hwzHa23SpUxzu8tXUZ624QmmfrzESf", + "finger_print": "bba87d19", + "chaincode": + "9f87b614167613590cbe1a0d05ba1a8312e0b5104572c878545dfb23b7ec59b1", + "index": 4 + } + ] + }, + { + "public": + "xpub69F5cpTShgryMcJ6VPdnhKjFjvtjq7JyKLSE9gST9TyC8j7tNazdqCLyFYXrxFtu86TGHqQzP6XCzT5d5V8NTLKex8JA5LjWPhWdmf8pxRw", + "private": + "xprv3RCCUHDJZiCJnVs7zhZ1jsPUzRk43WHguQbCXvS45kVsP964X6489GNU9C8jf1bS2yNNKXbY4SBPvPVXuQeAn3f75kxkKa1ZBWa1Kprd5FydKgEErHtxiYZTngekry12rc9jJw2XvsNRVcSRXPvt8vY", + "finger_print": "b854eaac", + "chaincode": + "23b9b9da962d14ac941452dce45b1c361b71a674d02eaaa28f666f5336e5e97e", + "index": 2147483652, + "child": [ + { + "public": + "xpub6AfVBmBUUz8dtSrFyFCkRFTgibNXPVPf6xgX6pfUHK2TcLYim6VbuvnxoBXJy9sCJ1ry9mdWRQ1cd3zLh99uZUdNQZWxbXy4sjQmAL7bSGV", + "private": + "xprv3RcgJKVYoP4tHV1W1uaQFPhqxEn8KvNBftfDiokBEdmVramsiR9dEneBxWrVhZ79nbwZxip536JMcPP71CRs9wK4V1J1jEerezu5ENfL92yXUgswvQTQU6LDhwnnN2Gjg5pDrJEDxBQJtAvE9Z76Dxo", + "finger_print": "79a20814", + "chaincode": + "30b2ddc831977bca21bd14ffb19d3f27098153d372e47426aa25426bffb0d1a4", + "index": 0 + }, + { + "public": + "xpub6CvRjFEU96irevrXVYRP1arzPZy8oty3s61kNAAX3cgdawC87NSim5Z8APr7rCAcWF7NprwHhCrQk6nXFdku4KqAcZwXYFRXVTQ8xAHxNfD", + "private": + "xprv3SHaMFEE6WUaPbFBDybPetjdQH2R9TxdntnHhy62G1YHCG7rEBzMtxRpbjw5YkeepQ7Jo5Z7oaqfUP5HL7A15rRZrn1mBngkMeF6tJaqQEKsURZK1aroE8KBJfCZGPSHVb7sLtDaDm5EXfX8cxxGRvP", + "finger_print": "acc7e78c", + "chaincode": + "b2b7671119c86991bcb26bf1d431b7ff866526aa6965f81059c0cb0b29f39d2f", + "index": 1 + }, + { + "public": + "xpub6DytyyRBBPyDy6CTBtfnUkpwjpo1qzN2BD3gYgXXoWkyHUgcZLgoK2J9dF3ndCj3FrEgf99XqjefSpf54bbSKp1orVUjzxZacWeWW59VEaf", + "private": + "xprv3SbqT98mbSXpaxctgriQ3kLuuTnECiMVnDmxdbA8vpNZS4xVEZGbEBbezQjiSRTZHdz7LmcFvmRvGEAncKwUzsn9EfRtRVGwZdRZvYqiXoRFkaWTVEtNa5216KdwBKQJabcY6j1JggtqN4kdpj2wv1L", + "finger_print": "3cf8a79e", + "chaincode": + "8e75aecf1862f8ac2faea4ecdb3845072fefe98f5b4522e0f450f47e966bd27f", + "index": 2 + }, + { + "public": + "xpub6HA8CAEWB7sdDrtDELV8zffj7JMhj7cUhEoXB17vFbcVsVsnZsfMjicKsNMjzLnCQ9Gg7tSQS2MiaSSMiKWQ8z8soyH4aEJs3BrpDoNSmuW", + "private": + "xprv3TYZd2R5EqmeGwC8zZxseVU8iJWUt4Nt9KfsdPYAmDsLo1z8z7nKAQN7PdxFLCUUzsFz45YhZLcQ5YMhmJdHLNZQBFH4KvbjQSQZ9NxkP92Q3VpuBo4wo1fbWuQzJQfZPUjoYxGPY5PsTScHYzhrSBf", + "finger_print": "ed1da8d0", + "chaincode": + "e163eb97cada440a6e1eec9d1d0ffec0b1a27fe0cff9ded7a0e3f802000d6277", + "index": 3 + }, + { + "public": + "xpub6Hx2F81DJRB7VwUQGKjjpMvcdHNGZG9eLsH1Svzque5MSspXMXBPJjFATZxemyWkU2hnNFLee2garXSd6YpNd6fmjpvY4xvAsrvmgY2Mxr3", + "private": + "xprv3TnCR6bE2amoZwFzep4f69jpGDArrvKdSDnrai2mJEwSkyW3kPXdynfh9syRizxeCw8mZtzjFmGmsk7yExENGc6qYpLo6RqGv7Qcczx3kW15PFRsQq4PgeptP42U6NUvmz3kDC49AhGfCrxWSz3oG2a", + "finger_print": "58c72035", + "chaincode": + "286e16776a52a60e3f37618d812e466d78b2d75780c68617cc479f51d2a18ce0", + "index": 4 + } + ] + } + ] + }, + { + "seed": "d7dca5c90acff51b6bbf8dd04b1156526cdc44f418caa9a4d0c34263ab6700a2", + "public": + "xpub661MyMwAqRbcErfTgxfi6eEUXYq3o9uk7M5Ms7bUmn6tg9mzoEzoSBSXDmmkFsydu6d1kz74vkqTV12f2WeXadmBmSD6PojHGs5aMe52R5Y", + "private": + "xprv3QESAWYc9vDdZMqKh4VBqgUAUNWPCsM71MnsYBinZcEofHFRw7TeerjPYtdqcTamJC4eQgevZmuW3SoV1MM4tcFaKfranHeApGeDmhRuUaGeEiNvFFBWfEiiboYWjezSoZEZQE5sfcztBRuNuo25ZQk", + "finger_print": "00000000", + "chaincode": + "1f91c0bd58a3bb6114ecdbbdbd097f3d7e8377b96530a898a0ab6543fa5a2db8", + "index": 0, + "child": [ + { + "public": + "xpub68WAcKoUZwN8yRyBPUbVfausbrngR5H77oMVvG7trQqahVULRcKEJ9tUpg4sDXep9UaPB8UqzpcWLzgToL6dwMd7E41qBTvdvBkvnALzEnx", + "private": + "xprv3QyT5fM765HJgMRPnUnEWtuNtpv92p8kifSZRfG8uAXcrp4XvY6pnrfUfgYfDyWwXp6bgqhu1Zs3ag3CJcFTziu2Tos27x5CyArXQ42L4xtieqZV2hhWgYghapUwFUpuwdNwCjr5FX3PrCzS3sQx4ec", + "finger_print": "53ab0a87", + "chaincode": + "52d456770af0a2347968ef45e0ebeb3c76ac2c0e2fe274a763a5bcae19b862ce", + "index": 2147483648, + "child": [ + { + "public": + "xpub6BDoGGc2w3D8pyXU3viaLUmfu8goptUAbeFZQikynKZdD1B9MuE9hi5Gsm2m9nRwukqhe573bT4hjNN6xgzGnyqjxhuaSFDoudCmCisAYi3", + "private": + "xprv3RnH1viKo4G1ChQ4tBQRZyPVP5WcCZ9WAcYfoxzDKm6PjMtpsQMsHS2LunZMyzBsNsa9tLqj2mzeaf5KUih4CgE2QUi2L3MgiDGu1rN7yUatiHqFNrVSRdv4avx4QKMJCB4HvWJ1mZ6iNuT1Lbdycp5", + "finger_print": "c56d3d45", + "chaincode": + "1478a543f0dbb6efd1454de7a8e2ee7c76a0aa5c8f0e6c61f4004ade38854546", + "index": 0 + }, + { + "public": + "xpub6Bnh35MZjv8WAYzStoDRbieQ6zu6CehLmxjFN1X4CP3LWoCd2CqUYC22qBUAnvYJGJSTx4zpHRGc4e34qNTr9EiaPwZWjnAhasVHPgFmVCx", + "private": + "xprv3Rx3k5iYFfTjP1EyxCx1RJ1ghhcyuSXHbyEXroPHGQ73SFjn3yviK5FiZj5tqGwWAYuEPjpjHMQU6dkcXsPjeREGxbg99GfDSCFeBG2mVjjxzLuQ5sZHn3WKSr4RUHD2JjCrEXXmGmnCebMiXEwpxrH", + "finger_print": "12954e27", + "chaincode": + "9f711de30329f49f795bd25c603f2bdceb7e8b7f2ea265df13081f6ce074a306", + "index": 1 + }, + { + "public": + "xpub6E6Lkm85kVGA12t1EtwK3q9tr5T9JEQNLVdE1nSqRT7SeXEfV7qXKxPAvevVBqJFa5jfQGkABjdhnrnvWUJEcLDi2k3YFJGjd3Tq3V9NGpv", + "private": + "xprv3SdkV5xS6dQuqraDYAqwWKH979LyzQCBHvx2gs7PHcKsebZrioMzAZW4FtL8nnDLrz6UXp1dzqD37SnjJXpskYKhwsLM7KuQTWiiMa4udtDnbNP9hDZoEKkpmLYBJYrvYF9FKTZV6LopwPvoojZmjvo", + "finger_print": "4c167e82", + "chaincode": + "21a7a2d6d76832e26d46e8abd2c725ce47a75d0c158a25c32c3ef8a91ff27a58", + "index": 2 + }, + { + "public": + "xpub6FsDyRzUh27VzYMovQK1VjUf5KmXB3P6t4JGSEjV3tgwnsQguHer2y2xomhZn5KCHxjdANKvSSnGFgRuCj91nsLjUG9wCp81Q7CLh2dNGka", + "private": + "xprv3TAK7sDTefL6ydLiWnMY3h2x6GdcUpKiQrdZfa75K4bneMLdcRAed8ouSATX87jpGqMvPGjCN1a4t8ELK512jtPVbWByEEhyoDwhmnkgwq7Urr6zW3sQgJeJM3tZ9QN8RhWLcDHMHdPof5WDSscp9g7", + "finger_print": "3d6be9a6", + "chaincode": + "db3dc07eb8d8bf3c2590e54fc5bf878f0328fed35dbb313535a8a3410eec5be9", + "index": 3 + }, + { + "public": + "xpub6Hed211fGXR6dzqFRecPVmqxaUtj9P1j8PFDj3cLouDSn1CYKb3o1EuJKyd8JSCXaQfKejMyNFcKXAEjTCNeRa7Y4mBgwd6DUkK8WEZCCpu", + "private": + "xprv3Th2cXwft2BkU8iXbDnER8KU6UcZr69jbif9H29yViwJZCv1whTMBexsshKPyyZ7QSZT53EKdHyxvn2BDJiEcmaocc8ja8AG6BUk8m5chHroXt8MFV25qkbh4FJKAmyyedoH7DYc7Ny8Sipwm5AwpJN", + "finger_print": "2ff621da", + "chaincode": + "92d66d74fe9efcc426f2ab1a7dc82d8b783f11fe3f72688b2cf28cb464ed025c", + "index": 4 + } + ] + }, + { + "public": + "xpub68WAcKoUZwN91z4QsNoZZ5pLcvMAVhbw4csuD8RNAXUyYKyc5aWx17MceuVqb5SraRFL5vMjJeCWcybuB6V5ZGaFfHzv6oaMfR4iaSKjErs", + "private": + "xprv3QyT5fM765HJh7QvpBvMZ9ygZZ1msCBnWGbN7SSQyQh2Hw8HRABoZMQpByMX2ic6L2CRuyBc5uL1UYZhYpb412DJWb9xckLYT5ewXC6QkMKCsA5bZKcGhRJ4LikYtFNU1J3Xa3y8qxdzshhkdN5EaQQ", + "finger_print": "53ab0a87", + "chaincode": + "5348f626fb96822f781a93186f444dedf797aec5ffe80843df84d16c2e813091", + "index": 2147483649, + "child": [ + { + "public": + "xpub6A794bzkokiTbRvW9PCvjaLc2nH2PXzqCTnN27We3tJ9Ugtnyi2EC7a47ggVxUW2Q27P9VDYkdYKgGSNwabT1fLDrCq4S9U9WV6zuoWRR8w", + "private": + "xprv3RT4yTxnWWDSYzvDNyXajrm1J3TMb7tXdBVNCbkuDitHJhzTQFa3biSpN7tqCBSaYHPqA5QZqBjbGwosNbNc16ZexCsgwHgdRef93fcq2nyHuLZDGnhTdZQp8eFnyxZb6R3CQuRJnSpTXE2zAoDrk4H", + "finger_print": "2dc1a4c3", + "chaincode": + "9b572f4bd361ec6b27a4fb8326ef9393e1f5698e01aa9d34b4588ec3a79ac4a9", + "index": 0 + }, + { + "public": + "xpub6ByXxymx2a4sGDVHSjS8UPQzTKZSMqqohcJBQQwKMUBUC94xPo2Y2vQGePiuempbhRY6viV32bbgxPTgyarMywS2hbiWnzJzh2hsTpZrMrb", + "private": + "xprv3S1GaHNGDDy71aH2zvL9ELvY7SSjmYFr5CZKh7JJ12DBrT3CnA4Fbi5pimiybKvGLjHFJDv6LFcSE3V5gQbvBDL5o1HsbviKUa7ZWwa3WZSJiYYR4R1UpvVoPqMHfeLiKUMdcTozNjJyWc4jzGe5r6g", + "finger_print": "2c04e827", + "chaincode": + "56247c05ab521f1e942799461175c47129dc38a0a2b49b3e628123859ce83607", + "index": 1 + }, + { + "public": + "xpub6Eug7k2RmXBcvRoGUB36VPEBvHvU5GQhetJAiMDAd55y3tbjLzjbW86T2xASkyUbc481GM2PuuW448r1VF85L7Gtrax28iCDSgs78md3c4s", + "private": + "xprv3Ssp2ZtYdzsV3EUSceitjnMmxLA85GJT21qxiPbVcP5dKhiFj7VzaCaD2nZLHK2o22Y34oGkVLmGGVSNW7PXRTa4ZZUbBd6Kj5fWW3NwnEtLMpjFrjQT25REMk1KvWGxgQTaKeosz6u2K9c3eLyskew", + "finger_print": "bb1e83e5", + "chaincode": + "356c909a5afdf63005f7d91467e63142e4947ef9a3236c91004450d672b89028", + "index": 2 + }, + { + "public": + "xpub6HAyCWRNCd8M9UacUnUNViLJfTSadG49J4ggFC958Qb7Zy1VbAyNK6dXHWGyT4jUsqJT2anHRpCrLJfbQvyMGqdpN2ds5TT1Gw7nPAS22yv", + "private": + "xprv3TYpBNw43zzf9DvGUHowRgNjtWCLSDJ4AXvvBRwgki7E4ZkeDfTVfsuUU4tCLjh6VVT7vaw7iwg3n9WNmfdV3LAWoZwFY6XYKRo9iZWLw2UXZJtcvw2Dfi4Wsk2whZjy62QC1vbujdFLyeG7Sdb4Xqt", + "finger_print": "ef190aa6", + "chaincode": + "945858e6f1a5f4170cf94140ee9c305430398722899e97446027cbdd64ee158c", + "index": 3 + }, + { + "public": + "xpub6JSY3wYgGQC4TyywzmuoNP7r36kZmVaqBRj4SVFMNCTm6GPJnnPdKfnXtiZvVgBW4nGbFUHeeQBE6hHsE1Kem9LqehPeGyivnFnWf5SdiMA", + "private": + "xprv3TvfhXqaaBGtxxAtjUf9gCSH5g3RB2Zamvpzxe6BRVe7kkrKA8F2L8bBMrYfhPGLiSqP2AxZueEgbrzXPbDoW2m68jGFrsVVrUiLwYKdndGntMWEMfHze6vQqM7q56c4TZBTDZbmSqh7yCEnyX6JRgo", + "finger_print": "9ba9c510", + "chaincode": + "b7d7b9858a35ff1596aecb4ebb48122f795125d47fc47a9b783c04662376284b", + "index": 4 + } + ] + }, + { + "public": + "xpub68WAcKoUZwN94sPk8PKSrK9N9tyuKGq7LTM1EbX7gjZVUM5ELdoyX8HJqDBZnhuZNHRZPD1Q71hFS9mtcVnpx38EDMEVy7ksUyWD58ABVYN", + "private": + "xprv3QyT5fM765HJhy81nvUBy4qe7SFmiw7C8q4xqGZnEhcybmtuANTdGaAb2wEq7T1oMDmQg42rt7uk1CrsixHzZmLfLFu6NVUi39qU3wPp6AaiCGPbYECDNJeTfnMPjqSWbmArjv2XkZXF4cCYatZXzYb", + "finger_print": "53ab0a87", + "chaincode": + "7510999ac706243870c39612a6bdd10a72d4cf402b36dec27fabe03ccd7a6000", + "index": 2147483650, + "child": [ + { + "public": + "xpub6ATDC914vyFq1pdZpfASjEtTB4D5rDYboC5EcE3rhxtvG7jQ8Zw4MB74tM9ATTRxprVdR2DMWxiXYJSuMG8bmUvXCi1kfP43roFqUXhPHyL", + "private": + "xprv3RZ2nxTd4wAPz6asJfUkVmG5KLNdYuBkNQNDEaehfNqwLfh8PRFwQkt2QAySfdYeqtU4uJxQ2NuBimNWFRS38cRSfEHsbGE5fLv7wWVVX9iA3emjTe32tWoG5aeQvXf2ytourw1MysTpdY8PBSfqr24", + "finger_print": "5cd66d8c", + "chaincode": + "05083f73d968950461ce88c4d51755a65304da681b08142f5d21b26644419ea2", + "index": 0 + }, + { + "public": + "xpub6ChhLCCXfaqznceg3Fe5TiSN3C9HFypsFHm6Ag5mjYPgsP7R9u7EaxKhz5hhhrNPUib5DBSdy996qNtm1oreEmQqPXhVJe7TsdV231xJnoa", + "private": + "xprv3SDnzxJ9twXNMAm8GJSezwHVTrdhof9P4rTrW2yYVbXS3uJ9g13HwttFhakMamPTcmJNK6CnMX5vQw3afRNAFuxktTTB3a5EScdu8ya1Zpo2a4sUUPSXDEsPbfpi8eXPvEh7Sc6q1r1sxrxU5khRG9o", + "finger_print": "8eeaedae", + "chaincode": + "12de3b3e836249d372333fc52d640bf530afd82c0828d392ca6ede9b09d61952", + "index": 1 + }, + { + "public": + "xpub6DkmedrAmR5Dm24ZyCEWVjSiBqyCYU4czrFVc5hHnMJYJJBfixWkxe45SiosabRcRy8wfHwzAxetmNqLCopABT2zX294aMvLCDQs9JgRzy5", + "private": + "xprv3SXwHfvY76e4SXVf1FLKa7uDCEg3H17cBgJTCUxxi1AFDxbgxN73qEZCEKNCJC2c61fe8RVbsdBREefXe8ds5pS9VcNW9TsxTqxocX8ZTsUESHnidumFUXPADgtYg79E4AHHR9qck6WLod2zg9yjpHF", + "finger_print": "1e2e3648", + "chaincode": + "948c155c9e690a84343db4beb2bc7749d3772d36e61a05a439f574e5b8e35ff0", + "index": 2 + }, + { + "public": + "xpub6HGH4mfMtFGUkFpLMwwAQ6ga6TiAJjPJdap3fftkoaSdw2KaWot35yNySdwELb22tJBN1JQ3Er4nwjgqWJcjobfX1KatehTHLvNx5EiFHdh", + "private": + "xprv3TaPdoBGqXDreKGjTJsg25J9E2nfTDCktnAX9Qj1S6a8GFqpWDhY2KpkH91Mwh55PGKGQ3a5Q4SDM7NxV2wQkgVCYhThhuAjZQkPUB9YiBgxXpsXfuCBwryJEFdPNzexY8aqKfvo7CPQGWxSX6tw2Bd", + "finger_print": "fb8c877e", + "chaincode": + "7651ed3c174e4d60313d52190d4e4490999f1c87ec72ebb07011b843397f1e39", + "index": 3 + }, + { + "public": + "xpub6HsztFQPKzqRmc8yZNHnUvAUH5GPt5uMmqygW88vbBjmkRr78TixUy8SkgyXxdwesgMSeqGqfgxRFRXpwM37KecXFsjc4P9cpVTWzZbP5DM", + "private": + "xprv3Tm16QAi51TALCDJKzPEeamxbs6gLybTfaT4Q24aDR6K9ctc16snByisw7AsKfS6p9HcAEKjCtxx2Zmaw58pdysJu8vkjSusAEqv5wZ4j37ibsbrkU4bZn3ZRhJUdpqsjJHPgPqN9NAVqW3Ra7VNWJy", + "finger_print": "4f570a96", + "chaincode": + "4b44e10442a58d545cbf90403986a5a950bc4b5a6d8cfd1c03b82afaa4a75033", + "index": 4 + } + ] + }, + { + "public": + "xpub68WAcKoUZwN96dfxWVg62FrwxSGdpdgYJyqVgvjJgdKiEcWfKAsx4ePeeUm4oYXGTAoC2edDTrJ5NcPV3DAXjyCPwVJ9prCQXZw99eJYoJM", + "private": + "xprv3QyT5fM765HJiVWFT7mWugDsMLbiHrhqQZ3Vh7mFYwadndwMF37RJvMDLe9nX31K2tHdS3gf6kvnQzeNV3eNqPmV8YWBjRdwpZ1PyNADstk4FSQuiafy24HUrj23hmkVyZ3Cf2G8dLnHH2rdHPagBzY", + "finger_print": "53ab0a87", + "chaincode": + "26300b3f49118f85b81985eef51b4b04e919db6656104c41e6c100cba8966593", + "index": 2147483651, + "child": [ + { + "public": + "xpub6B2qZaVMDikL3ETWDNoKhyuJTRQr3mHE14vTtS1k26XvPyBwmWFVgu7qktQtgcUXWWfvW5DnCuVzARG4piBZpMzFbpfdUgBDx27KW7jsHha", + "private": + "xprv3Rj2B3V8wM2w9HzHAYQ5uxPJ3myK7o3ru3UZG6gjd1AxGu2F2o1DsBQ7nor49dn1vZA7JoAGuZhvoQkAt5eE1s9ogT9np1BhDz5LPq5Qp1k9u2avEWLYyeEom68VJXau5tVsww6PzT8yZj9JWH5KQHV", + "finger_print": "abb7859f", + "chaincode": + "c5d6ab61c0ac9de76882d086cb9d9576a3f64971564c2800108b640130c9abe5", + "index": 0 + }, + { + "public": + "xpub6BzEi8vfNF31p9bBGjPUAbysAoUdxsUiQ6pLPdXa9iM68rJJNLZPkKDeKcTGPCSdGbqBLucvVmZi9dNwbFr9r3Hyxs8Lz6iY5A4buN4Ntaz", + "private": + "xprv3S1UgHdMyFK7Tvtqfjf6PRbT3vW18o6F6SzVndW6f1yB5nUaZGXJjWhCMCBEpkL4ratUcoj34VVwrPGtYh4bnko48JG32zqHHFm57A4yL9D8286ny9ENJZe83FPjswrxyeRtiu2GKorDxiemVNen1wB", + "finger_print": "2daabfea", + "chaincode": + "6c80924a319ca06515919911d752509068f0bacf78e1d926974d179596999b7e", + "index": 1 + }, + { + "public": + "xpub6DkAuy5NLupL3n1WbYJx8Pc3gTsQV9zV5mLPD3Cx4PN8TxHHrzFWB7kQ55gRPTwQanCaqNxueRzPo9YFWfZpJ1h9dxhzS8tBUnf3KC8DW9Z", + "private": + "xprv3SXkyBzbja1YVN3MqrWMSc3kZ9qpxDC6H3jgtooapDKiFKmcpLvyRRtoB5soxvj2AKeCVmc62VKFqkJ7oenn74vbBUDRm2Z6bwyyGKiraVkwGbVGA2ZkL32ag7EzQsM3M5hPV8GymoECxkL638soLCs", + "finger_print": "1cc693cf", + "chaincode": + "f0892ccf145d8e2f603a267a1acc3c238b2c3c634eaaaa9692c2445748529908", + "index": 2 + }, + { + "public": + "xpub6GcArgmGaAgSjEg2SbdhzPpwkpq1muVYayfpsgEF3oN8wjwAjtBdDQpKsTsuwQZK7XJhT7RPGzjZqVwjpkDBvpJJXhTXAkbySNNtEdVDY38", + "private": + "xprv3TP54nyzeo7X36xoqadGuJqgnoFwFm3eMHaurxWBatLVd6sBzhUQ33wRpyiUmqjqgyP12c4iWSNKQDmPA5EtRVYhMzbb53dKX7tjL5wqNMThG57QfceugseB6wYpcCSanVizWgPj1DNjs3d3vuCV9qU", + "finger_print": "a22933f2", + "chaincode": + "1e19b1204bc7be823942a0c944f32b80dd413f4e15ae70dca77765513082828b", + "index": 3 + }, + { + "public": + "xpub6JQw9rZQGwchK7ponH3qeUbTWBUosRqav2FELUSARZpnVxBSHNyPzU8EUoB7eQFPxSge4A6TaucBhScEaKpxYQ7bzXAxHA8V1zqZb8GmgwX", + "private": + "xprv3TvC6wH5XkFg6QkAFHwctXh9e5pSzRtKxQo2bj3PoZA5oWk5wYaVJu5vcTW9DYriH3T8mcMeUtyKhL8q9VDJqHBuWLJB7UnbNdDKaqEBfLT9BtuhkQZJHzgT3hwdcfrR1ZsXLtH1DA64iQWNmG2kCdB", + "finger_print": "97e7f3e7", + "chaincode": + "473715e5ddd2943a2b5c97f00cb6f7554a624ec1d81dfa5580edc39946c19f11", + "index": 4 + } + ] + }, + { + "public": + "xpub68WAcKoUZwN99ZMt7sphSbgbjXv9Ey3t6tpyz7ZoJKTvqpw57yM5pckP1qW8JdBsRMPJfNVH5Fk467x5NxfihiPqSz4poaoa4aoLs4gcHqe", + "private": + "xprv3QyT5fM765HJjMuurnWXKWcL2onRyYeTkt97yvSz9tVj6dE7fQdabxwCbVV7GfNGoXW2YWPPuzMaka5mzSqpuNvL5RWDFuKvowaSNnWmX4oPi9EFdnKY8a2UuwV2EQ9pRU11goytHoEsMWYvo3ioKaN", + "finger_print": "53ab0a87", + "chaincode": + "4c0bbd0f39357bea7ed0f8abc0b170a8539fb0bf112238d1e853682b96a7327a", + "index": 2147483652, + "child": [ + { + "public": + "xpub6ADPLuYfjr5F6GcdgveoyLjDsb2RAM6PkRmpV1xYjeRkkZyjgbB5DptrTfeUStW5jsVfxdc88jYes1Q2nRkZViKqRiB7diSiwX3GEpA8Pyx", + "private": + "xprv3RUvbRWQM8M8JCRki4wHDQLTscVq5rUmJZAoJQ8m1HpPjr14fq3hcSqecRhm7yhj12uCW8fQ77gwDXJJ4PXLJxhmhMFiDXifegEwaiTLPbkMMtQeCuJ94yLFjaXZtejpQaCp8tiUYbvzY3rLo71saWn", + "finger_print": "3c68828d", + "chaincode": + "e95c01791cab6bb39b76def12d24be3f5cefdc157ad3afb4bc2b67bbf7ebe8ee", + "index": 0 + }, + { + "public": + "xpub6Cj31BheLQiHGg4fsDPd4JMvGpAkBfnX5aEaGVEUWw2GSTdNWKguyy2gCL1K49rvhwa56nP8jzvVe79GA9WsZrZvucYpoJqrBoMUX6aYL4u", + "private": + "xprv3SEC5DVTtmGUKpqhqzjNKWueqLc1GwCDPh5QdpLh1xRhehanMo9oLfDZc2BVZ2fmUvVmGxKyQgfZddcakaZ3EzQC18imLm9d55pgkWMNaLSJmVFuyTfch6m9fWWhHpEj1ZvRH6DmjeVUcAaU2652Mmy", + "finger_print": "920f1b1e", + "chaincode": + "b9eb6f34cc7b5096893c093536ed2b03bfe780952591911d80f33fbdc257990f", + "index": 1 + }, + { + "public": + "xpub6ELuLoLBquCUaTgQsXLc3cjQ5xADwwRS7XBxrjqLEM2r36U8mVeaarPsF89UJcCLxdYuno3qAzocYrkkDSa9Aw6TqGy7Sdnzfxi3foWxzWr", + "private": + "xprv3Si5Nyk4poHYJorD7Q7rfiXKysAoZc6m83cQDzWJc4ZoAcFGENqNagpD8mwcStZdC7MDji95Pj3pM4KiVHxMGsfPTeNmmpzw3UGvVo38okJEfCcJ7QjM12f3VS4ydzvnUviDy8nSv5PEQpoiDYtJTiQ", + "finger_print": "6e3ee62c", + "chaincode": + "18fb9cd60f44ca8534cb90319107608fd7173adf750cf78dd0a7778c6b773881", + "index": 2 + }, + { + "public": + "xpub6GD9YHwyNUdYPHoKtyv3C1YZU1qAmnzpt8FZYkF6oZ8zSbfJZzHZ42PNS2R6bREGpaTJ8hMRLLo5D8jTARw3sLg3SiQd8ABa1coQiqdH31z", + "private": + "xprv3TGEPpEQUNDcZ5rXskGKCA51U9GoiDnUbhgvXbaWeMjmW41kkrsxPcvSMSc83tq49pZe96xrPnejkVVhsBUQygbowwXDdiHxCeEdUNTtdMUMV9H6Dj5j5YBAHHedHHFUa7BXi2LVZFUSMpCKcQYnd2t", + "finger_print": "6c28096c", + "chaincode": + "2e7e7f85af4f563b00e68b479b28d0b7569122f85d0e5dca33457adb48bbf87d", + "index": 3 + }, + { + "public": + "xpub6HhfcLx7HhgbwACfmrdkLN8YgPdeTg3QfVsG1wBypkHgV7NZNBekUYRVBDfPYGKYQjMNokfM78K628TG5b2QXs5xLhLoVaqexYsmCsM8rtw", + "private": + "xprv3Thw59RCzCGY4eJrrf7vi7gxr7jjQk2tqPayop3je9aSfzCk4zZhbqvMSzsdHJiQ4ZuGmkrBYdT1oMZULBeBnh25MaCwxtiFkAbN3kNRBQ35K7j5Z525gX1GdfWKX9w5pjLCMq93TKfvWa3TuoM6z4m", + "finger_print": "371a7940", + "chaincode": + "ffaf490bdd2c9e6c5541446d05470e8145f0933fbde4ae2e0d1cc72a4707f995", + "index": 4 + } + ] + } + ] + }, + { + "seed": "80c864564c2bb5e58bfb9e1ff9596499f8f968b3e074840d14f3cd07ba43acd5", + "public": + "xpub661MyMwAqRbcGjhnrD4DYBLugQC2aaDE71mnXKzAuiRhHcXfrSE3SHg89otgqTamcPvQZgUzgbMdx8KYTfs1FMfTLdCJAFk62giYP9SAAMv", + "private": + "xprv3QESAWYc9vDdZvE3NCgxMRriddWnFWMd1TWZMpijNwEVBTVyoWcC55GA5a6E9mRdxsd17qDFnPts4TB88YXwuPPMyczQnqn6GJB9NkD8xetwS2iF1okUdUMDqMtd4xet3AYmpCBwxTLzQ1nDJq6ANXj", + "finger_print": "00000000", + "chaincode": + "dc6661387c51fcc8c52a6b778d78661ebba46da6ee4dd235b18f56dfc99e480a", + "index": 0, + "child": [ + { + "public": + "xpub68asHP44TJSz1DLoFUn3VuvXMppifst2CHJY1PbAdzo4bZVbZUwopjSotqMpGWqNRxoaQistUN4LFvcWnTWRPa31jamoRkKCvPF6mgq5LqJ", + "private": + "xprv3Qzr5iRHnNckjenLvodmLZ7McUwC1Mi2EGvdfjjR4zT2xyCFvsLTepvboisDHgpeRwxW3VhU7sYjVE5Cb3rKEdNzbpeAsuVfiiSnsVG7FfP1RzwnaE51Qm2WjKW5ywfhSPY6nLzBvi9gVRbjZLyiA8J", + "finger_print": "5eb22827", + "chaincode": + "b45efcf209c4b21ea05c9bc577082a8ed175867634535e5c810df776134f533c", + "index": 2147483648, + "child": [ + { + "public": + "xpub6An1VGVSEz55xYwTQh35Hs7DszFQHDJJjpCNVs9nL6AqGyRyCNj4T1pnfzU9yRufxQhbJjdS8bdUZkLHknW7gV9Cg53DgEPdoNMVRjtdn1Z", + "private": + "xprv3RecgJq2Npq1E9JHcWF96BBq3spBbKpHKjxa9ez5WKCh4MsdAM3uYDyykX2yRmTEBj7Pj2PN59PhT6CqN68q7rRSbxaD2u2c7Fx3pKT5HFQma9rEEabLUc1CMypZmsQctPToqXbfqgZBztTpJsK1Nry", + "finger_print": "88eec4a5", + "chaincode": + "317d679c157e69dd547cf79236a50275a12452dd045efe5789e2b00807785ace", + "index": 0 + }, + { + "public": + "xpub6CLchtjW1QKYyQzDG9bc91tMufrVkBS8Kq77wYdGn2Fhb6gmkWBikrG6Tt51ubu9pDkPd315mL5sa1D2m1K3ief2pgLHVVMA21mZ9x1guZb", + "private": + "xprv3S7XobnuvhugCoJF1itGvQYX62ank1pi5GNPPfbeJqUDFgbSggatxjnBUYG65Yku7tdYmwqW12P7gdLvJr47X9MpPEE2WpirXQDuccTP3vZcBM7bVjaS3LiK3wg6BQA7deHjiKqbZf2TRQ3xk5XXHok", + "finger_print": "5d7881fe", + "chaincode": + "a1f01c4a506e404cb7fbf3265bb796ae8084d13aab9f1259cd4f4b06d9dc279e", + "index": 1 + }, + { + "public": + "xpub6EPrkVwzW9XdVMhfoBiJuwo9QEnD3hU1k62Jy88itb7FxqAZugPjzU2SX8cRCZonu3QAF5FRKj1S5veXFr5ddfsKQ2H1c7MvGaxrNACdtbF", + "private": + "xprv3SixJHFYnwMKuMFdg45E18PYtZnUdTkmNtV7iWFrVBZ4GvWT2PEtvXNEy91XX8Vr1Escpr5iX4zrdoTJkHZAcZfvwGd41FF8taqB9Bm8k3FVT4bZU2Z1U8diX2LPrTA8qFjzLUyPndQ3qqNvj4rMNLd", + "finger_print": "752d92be", + "chaincode": + "b09cb5b63cad367709df5299740d6ca7f52d8f77c1e1877f6feb48a485c16ebf", + "index": 2 + }, + { + "public": + "xpub6Ggw9oQPKuQyqqXq1pSpAnVUP4tb9vLfwtJSc7DGDqS1qWEzKXuPLkoEFkks8erQMWN3cW8ntLWiHFH9fm84AcJmmDbbw25yHzL21zzHfvM", + "private": + "xprv3TQV9FH5MGA6A4dzE72cnGZR2HaREK6nnfuyfTE4b3swDkXEbXAnGDHpR3Lcuz1nruHbNsUarNdJ3N5J4eAeQMogAVSLshvdfqF97GVadnYtTYUvDXESSnHinRSzVA5pUeEi1Ua4D2r1ge11nYCo3rt", + "finger_print": "ad55d0d6", + "chaincode": + "876a4aaae016d24343416199fe693a4e87c307d326395b621b1d7843f571201b", + "index": 3 + }, + { + "public": + "xpub6Jzy1DQRqhKAxjqgBaNodfiajj6Wx3dyKKkaJfkHxVFprRVhgeyS6EEidsiYyPyc2wkvR2Z349LyQkAwcZsapHaqZpdt64ZS27LoL2nPqji", + "private": + "xprv3U6JTbe14Jnbwv6yhB2eCC8e6MmQ8qwxJZoM7KDnzjKftepkdNjKejo51cPE5vw7FQQeC9Kc8VCXQpEP1SMjgUV1QvaNbh1VuV3krFtUxyTxjn5MwCGoyhwyZ8zGTzHzn4ny5szmSwXKnzW2ac31d5W", + "finger_print": "e7bc2919", + "chaincode": + "4696177912ee213862a6610f1d498f341c905eda919f1e66f6f5c96958f078b3", + "index": 4 + } + ] + }, + { + "public": + "xpub68asHP44TJSz2tSH18TjyUnPqTkwp4ioNYcFwEf4WcaXecWuJqmAVgDHZKbv6bUBQvy9e2phZaajjNKFHBxpTb3mxH5VJkumVxMTAkuyHW9", + "private": + "xprv3Qzr5iRHnNckk9dF3WFgEanWRfEX8o77fLiRSGKgwk9YBbPNXVpL8keZmhenpNhKUBZEgssn4LBJEemitgvSHbCBYKHntAbTNJ1X4PvZ4JDUF78mVs2J4i4369STAnPrB9qrYaJnXBwi7kituTtkLM1", + "finger_print": "5eb22827", + "chaincode": + "5c83bc3b9a4ee666002e368331e01b3a59373fa7d9e51c1e9f18b52373c6a435", + "index": 2147483649, + "child": [ + { + "public": + "xpub6BdeSvaoyKAMz86imrijVS3hzCdYJ3RexvRm67hf81KZAiNoCYZfk5zayoQdMbZu1ywQyPiugQheAbqbkD17f9PGTce2vf9bpDS75M6MCke", + "private": + "xprv3RuMudLRvRMKYNcSCXVF6fchsejGQ8Ge5CaLwZfXiNCcMg1gZqd2UXxLPKr6K1aEbpCA4QyCYvivSS5FKUmaGeTtsexr6tJ99QfBhvKn9eLu67gDkkkC5GQwfoAC2iCaNx3FJjwRWQVsJMeYc5HY8cH", + "finger_print": "fd5dfd99", + "chaincode": + "f8628d5011bad99920ae7f2417b3e060b9376fc0821ea96620ec2dc6916c263f", + "index": 0 + }, + { + "public": + "xpub6CKrh82er12AJxYpegSS3mAQ2ZQtj4wntajLd3Vpubc4zaLv184mG41q4mQ8c9dFwkcyE8RthVW5hoa97ustFDiVLzu48bHmUuvm1SF5RfD", + "private": + "xprv3S7JjGaNMyfG4kj9tPpjWZWKDZZDHu91vNcL7HpnneWK7EWF57vxfWS8mDqGAY8rktebcnT4aMWs83UebpesBxSjSCeBWmiNkofcYSGAqeSB82hGfRMYS7dvdxB1JWZV23zDxtsFk7fPAYG5NMzyt88", + "finger_print": "5bb0d148", + "chaincode": + "d60dca6a0b3f37cbbadabc169f4a64bd3b0d48d1be0201476ec6ada139e87116", + "index": 1 + }, + { + "public": + "xpub6ETUA5BwVquRHyn1BSNtJpSxSHKvHxfeMSSa6hdVqJF3vZQhZiExUnrBGa4RAt5KuT174HjySc2sYAoz2moJGQzWLZG8RPNZXXHMCtwQNms", + "private": + "xprv3Sk2WGc1q6zCibB6frCQHvwvnJaSP7efehn5NMjRWkYpPj6Zba52LjP7EK2aepE4SkqxPzVdYFbLGanod54Xv6FNHPKhi97hVfCDhZB4x2f1LUhcihBcThMmZ84JqzQbAJ5Jstx3EvSKbyeHjW9SzHy", + "finger_print": "7da5a80f", + "chaincode": + "68cb76be2cff7c678680840e29fea607e1e80105d96599e64ca3badf55ab448c", + "index": 2 + }, + { + "public": + "xpub6GAGoAwnXWanq2CsYhRDpE7xi9Eq4ExZb7ykQtLLEjNVSCJjW3S3TZtMKzJNd8cE4n9YjBdBL3dciJ5Ny4gPZVGmf78acJhWRUNWqFvJYSA", + "private": + "xprv3TFNrthbheCbpMLvzM6ek8qDHj7mk6omtUpHw5mcr2mSDJmCkDv76e1ou6nau1AFcjn3ZrgFwy9DnioxwdHdqZ4FDP3s3WHM2zHpxZ1YiNQpfwjgfRyfUKQC44qyoB5iHtjV4x3DocuF1piBKmYiU5R", + "finger_print": "6569a9d1", + "chaincode": + "4b777fcab7bbc8073a67e041f840a8eaf52f25087fcfdd795358d1eaef1710c9", + "index": 3 + }, + { + "public": + "xpub6K23yTz6DJvdAtfZoL9SGt5n4RiQphMgZ4XgrgFkSf6pFaTZ7fsiUuGFhY213hcEHaCJC63e8gapB7GjAkX2fChbL38XoHocoz2tKEYZwa2", + "private": + "xprv3U6dAYTvzoBcsYTqfjvsSyjNv9qpihMV9X2rhQqM27MFL3Wr5Z7MM6KAXDWca8sFoNQT5cS6JzXS1wye8C4pDvvtJRYbccckQYstgQYUMuAytWApD2J67kUuoGDDbdtkrNpp6NLQjYdY1zvNErBqRWA", + "finger_print": "ea481df5", + "chaincode": + "daa78f92ca089d3db489a3b9ad9abd373ddc05e4b60a1533d6934ae25b90c3db", + "index": 4 + } + ] + }, + { + "public": + "xpub68asHP44TJSz5EnjYEptAi22CopRPC1pig883HneoLKBKPDMcmXUpreS6iSvcydiL3SvVzRd9ddJLTgTmAHQLYfqAtVkyDE2ykrfzZ4hjDh", + "private": + "xprv3Qzr5iRHnNckkr8YbTQzo9WLvTKLC6L6YmBQhkJu9PJdqP1dp45mBthnPqp9KeZfDpzLbU2c4W62tZ66DUrjHgobKrtLZBMtu4vJLRP2aTbWEYx2wk5eif5yAf2Q3zKfEXVg1Hi6L5gDygmKH8Fch4f", + "finger_print": "5eb22827", + "chaincode": + "48a4ca657481df1b191eb3e353fb1bdb37bae7e3fd83f4b525056fc42cf2cde7", + "index": 2147483650, + "child": [ + { + "public": + "xpub6Ba7QeGamrNfZrB24mqZfEb2eqXCEEic2r2B7EgdAAw2nYWoFa9fNAdtmGBxQvZxdr1bAYFyf2ed81WtYzyXa3LpzSA34iZu2WkqKQdtKo3", + "private": + "xprv3RtJzt6jJhTSFyueMwUJLFKLCUzH22dpFbj92cHyfRspQzzqeao62XHqyrUUyjekhRZeTvtsbUMxxkdfm4DvtAZ7eDUB5voV6Att8qvtawmRDGczjipAK56wRij1jTBWwSUQs7QBQakdHScu3PK6eB3", + "finger_print": "f5131f3b", + "chaincode": + "fec298272f0551c9f68bceac4b7d6cc3b2d870d6e041bf6d292deb1a86df52cf", + "index": 0 + }, + { + "public": + "xpub6BtFhQT2NENxNTTFLG4s4jPzSNLiV48QtpuFuCri4ZHRD8wy8wtbH9vJdXMn1MVXNTekrho2y4UeiLoB64tKJ1LueUmp81WAw7A9CGEtWri", + "private": + "xprv3RyhbQ6uEuhPzWy96TRb9Rt3mAtCEjrBcyL48Euf6cpxPdaLW55ezWhfv28j5g6y8u2z67YjHH4JGMxSwNCfRpV312rT3CQrJTGrvdjT6711qXCX7R8KdBtkKkVYe18poMVJzNuNrzCs6rWTd1SvaXf", + "finger_print": "1fa1f6fb", + "chaincode": + "17d1b0352d8f8d8699b2b5d6dd8ea54493a7e7862d111ce647692d2de3d1fc55", + "index": 1 + }, + { + "public": + "xpub6DzbUYB735DcaFW4d4SAErUDBp3aaHbbkqNNukSB7xfRdixrrzU3ASxc8ww1RdGeQya1SFg7kF9DQNJQ5CXER2xgSexGZNsgZrxfthqfuuu", + "private": + "xprv3Sc3UoxrqJCqs7Soei3CRzb8urixni5Tj4CgjSkhPDsPWCqGJNmhMGACVJCAkThVsAyqPWC1MXQqXTAcWAz8afnFqzTU3atkjvjzLjZXgFb8YfHA9FVRn35Se5VkaR944c1hBrsRKBrqS568SfAdt5G", + "finger_print": "3e9be482", + "chaincode": + "78f753f0e4acdd976827074eb669765768113fb1531e6d9ee361954078fce310", + "index": 2 + }, + { + "public": + "xpub6GxQCtR9FagmC3FMtHcMYfAsyswBmohz9JkrqkHvNYSD5pvdMz8AmqLG4RsDRXuhFbFvDRFNgqA1XNiJNLkYZEzmYt2druDC35LFRD9uKAg", + "private": + "xprv3TV5d7ZrKzkm7YZTkn1z8dA3HDwJC8UVt77fC8X7yAt7f9cvLhP4DZeUoQnAtY2kZ3yBYnQE6SmMBZe9sfpBj4ShX7parQcvqbz8QiokzWf3LL2vKf3owsEFksahGnMiXvkTvVyRRiEf7og3eqnrZoU", + "finger_print": "d19d6df4", + "chaincode": + "edc84babd49901e118686653587ab36f3aabe5ba809fa8017e2cdd288282c100", + "index": 3 + }, + { + "public": + "xpub6Jk4fyUoMRMo9bedFk19zdH6ViicijaPAJmvmGFfC29JfvQ16MmK35CQPdxvcbPtF1pXBVZtua8Zpt7Yio3motQ2H5mQaMF1xFzHYMyzFk8", + "private": + "xprv3U1shWUr34eLvK8mNwuCL7VZAMBGZmGuPiTHW2kjsx86LdNSEjGJfYZZXTMsVD2sp1Av1QgHgcobVqEb7zRk6VJ2Yo1oGkx2aFs8XnuoqznYWYQQy2WhkCzG3TdtyNEERbbJjHdkDfPBeLmUhCHiBYJ", + "finger_print": "c4c753e8", + "chaincode": + "b37865f5a45f30c993b9f43fca40d84e672dc042fca91899444727f80185862e", + "index": 4 + } + ] + }, + { + "public": + "xpub68asHP44TJSz9Aznp6uZv3bFDrtDGC11SNxMnMG384rSPb6oN13idVP1vniRMMcR2bAaBJ3B8EgVgwptEK5RtoZHXHHaQ6pcWGxHxT2E6oG", + "private": + "xprv3Qzr5iRHnNckn1vUYAJYGP9SVTkvBP719kXwFqUxDt4joSbnnV4wKQYK1MFzJFhWdp6UAExrrmTDd183wtJZus3SkVSFuvQ8yBBrbb4rEMkURUqPFRmxsLUcVEQt5Ehh9jc9pKW5Qnh1ZXTkL5jDpej", + "finger_print": "5eb22827", + "chaincode": + "d3d7dc42f03d6763db089a1dc820152f834bc502cd0afd7fb0f9eb9c91c1f188", + "index": 2147483651, + "child": [ + { + "public": + "xpub6A4WG1s1seCbu7RzZ6SrdjhijWV9sdWfukDpZuva7z87YAPi8bmQZxiaDyk7cGjPmVc3PRLoMA9ooEfB3RbRXqnEZXfsW1hd63WgbcrJL3v", + "private": + "xprv3RSHaj7mtEZU25Nyjmb2ecAfpNv7N43e1zp2MAqEQV6rU34ebLZuTgy6YXms4qXi83ZmWdGE4u8UQnCMtj4fgWwc58xeQav1fdB1JW5giTzQ2rmuZTywcXZNL9sx8DzhwZGCjyatS8o1exMhtJMxa99", + "finger_print": "27939986", + "chaincode": + "6f4d5f26af18c28987d80f2544de41176a4ee62cb142120df0f60be72b982d5e", + "index": 0 + }, + { + "public": + "xpub6D5317BN8Jo9sWii5DwsBd5dWSp3AWPmVmmNcSCZhHw1tyd11jGrGRsncWX5DQjZL7gBVakM2T3Lek512RKAX9aB6NQiGhfvJcG9Vb5wLaw", + "private": + "xprv3SL8fXZUhYaeFv9MsktcmrLg2hY6ktt8Qyx6LfhgXmA6r8bbgiE34DTNTiw39T6kktJ6dRmZ1PrRKK2rvbjbmj28Co1PVtxNzxbptfpC693V9cait1gkQgZ6wrisQAeePT7vXYqRvNR2SXV3PJYxwbH", + "finger_print": "c0f91e12", + "chaincode": + "90fac6a56f376efa93b4ca5be936d690c2432283413e29bf39016379464ea2ae", + "index": 1 + }, + { + "public": + "xpub6EYZGvzJJ2Ag5qt1JdaBYvSGmEs86JDR5h3N6Ygte5CcjTWe5Tadmkb1i3AmEd5FLhvEPmafE21yf3xiJv7eo18PMKkW4tQg3cyomsmBpKB", + "private": + "xprv3SmYB3DGjpnyd9yfYrr1yCacqH2MVuYMzpxtRdNzttqohqDtZ4WjWXoUERjfFpBFLbXS5FBPSKqeRTfnoLiyk1Lcns1cfR6d6WbzSRA2RX56uAUEiXR32VW12gtSdGzJxk6fSHvYnk7iXeDvfcfrHjD", + "finger_print": "8995278e", + "chaincode": + "73ece8b3b9d2ec03d0ef6e2461f9682f854148dfe24da3b6324885976b876566", + "index": 2 + }, + { + "public": + "xpub6Gxgc94g3ZfBYbBHf125wFc564ZoFdgKV6g5fdgdDAnnJi8JVzD8gEVm1bgpsg6AwYZpaTV3Dzc3KRsxUFhiadJVyM8ES9v8nxejc9K91oX", + "private": + "xprv3TVAVhGRsVM3it2uzgCWesuEvCJinULfncXJYqGHAdEFyVz6DMg79v7EGZEU2crJSa4rVyyyvFPXCu1vNZ87oQA3aMFYmhNrf6mttpSS1oQ4icSLGwwmC38KNCHj5k8P8s3ek8G7sFx4JQxh4aJWfBe", + "finger_print": "d2473c5d", + "chaincode": + "5c22808caba9f5123cfd0f2c36e31542883e9d9dbea2d8243fc1988bf2f0037c", + "index": 3 + }, + { + "public": + "xpub6HJDrcaVTpx7DfwDQ6JjbfchaGsVFhWoTNyoN1uHfvKMECLsX7nzqL6rMjUyhUABbxXMgPG56enDjs5tUbYHaRc69gELGCJjWTNUb8s13Un", + "private": + "xprv3Tay98WqjNBSPrnAkmJhZv1yEHYiiqX78hW6EywX5JzoxdbXukzrW12opSBq33NmFDs1c8y79ErdSgoMCf9Gf1Ffg9E7S2sGzRHAk3hWt3JFNkePzCNjN9W4LvLyPPLLajFDqYgoXCWD7vheFfkzHqA", + "finger_print": "001c4d25", + "chaincode": + "679001e9fc1db5cf09a2734011e365984b5d83f4335d34b7e4bc8f8ad085ec63", + "index": 4 + } + ] + }, + { + "public": + "xpub68asHP44TJSzBW1orvxA1GkvdRJN5RNfCqixz3ZLaTjuuVZGKm9U3WPaEu4Zg29Cct6DoXxEMT9a6LLcAawsPpw4Ff1ZYSNRTtjznxH2JQ7", + "private": + "xprv3Qzr5iRHnNckni2mqajKZgecMoDrancgedKx9pyPmFppu1ewyAkuKKysbvMGYvqMiu6bouL7mvjmT4fFH6DebmMCChPmyhrysrv8MycLkVLWm4P3tkY434UomhysrFCXA6oTX3SNzmoXsDSiZ5WWDNL", + "finger_print": "5eb22827", + "chaincode": + "bda8fff9e3361500555f8e17a77c56d1fa8d13f12668686f97b106f69148c282", + "index": 2147483652, + "child": [ + { + "public": + "xpub6BXre7JKL53AkYWVZx9dfaUYe8kHKmiswPQfTq9GspKUSTEYQzS5LUXmcd3mtHpy9ZtvuZVwKxSJrxcPzRN6P8h2UoFLwJT2fuYLQCtkii7", + "private": + "xprv3Rse9od1XMRK3QH6Rjnv8wTduNfg1CwzL8R5PzKaJoa49mjUSujp1Pf7uRY2334FeBCCuSMeyc7JcePH69kMEohfgZybTsCxYHnwSpYHdaLkVkiC8xxN49paPuoqih3qGiEGQy6XL27gDzQufx5BqYz", + "finger_print": "efc938a0", + "chaincode": + "898635aee97ad539cc6768faa47c934814296e5b0f63de3ab44922b713363760", + "index": 0 + }, + { + "public": + "xpub6DNWVfnW2LJwLJSzcSkHXe4CcHfw5YkGdtGLDjzAvcfiVaQaeYGub1vyFLKqBjfMfmoEwdAevHNvUWEKZa3ogFAqUeNoUyWGk6WsVxhxtgU", + "private": + "xprv3SRKjbXaQXd9BeB2c1dFtwuE3iuk21JV5vGGfaZTYPW3wjVzuETvxySHup27tu8s7DX4geHdVcjP7qibR8K4WiwC9fgZCuX1r5fCjLsEPP1a4UYFHWSuhQDU33otjvALgewQP3v2ZjYn8haa1dZ4Eee", + "finger_print": "e9f64808", + "chaincode": + "4d2cdb8c2dd353079be9bec0319272a602f699103a73fec57c40027f8c1826b2", + "index": 1 + }, + { + "public": + "xpub6EW8EHCopGBMxQHcEiuG5K6HRRsfyUZjyyAvaZuYraeXzEoq5S3rBNqnCyTUY65a78dJ7jct5U5ofeWqFUYiTZFEMywLpJcoJfhBjHCULuK", + "private": + "xprv3SkpGssNVy3YB4pDMveVbFdat1XtGzweqDGrgkJBmLQepXRCsmnr86uuqHkXw5KuWBBpu7JEtvXe8e98bxEDo4v7bjNuackh362opyLx2PxtdawBRqo1aiDRZBACfaUrPwkzPysKWNJC6f24SFn76yU", + "finger_print": "83e0d787", + "chaincode": + "04e3a4d64e1c5818536f7af54bbd4313e1a83b04328c07f736916065ae9ba8e8", + "index": 2 + }, + { + "public": + "xpub6G7Ka21iGbNvwJ6vEi93PqNj3ikbtEyGbKMNQ4V7UXrdXqUprmoq3Ncss9SmDNKRYcYaiZYtmYLj6HMHh7AHNCttrNhK6bgGML1vodg1bAk", + "private": + "xprv3TEVziuCot8XLiimpQfwg5ZArVj5QJbq8xgaEf48Dk8bhbUXm9rnh7Q3wo6WoosJfn4PszZAu1dTM545zcY2ERQXmGWGyGWGLZkG2ZTVH4KdLqgj5FGPg3BxV6ExL9LMrBjFbyp23FkTeztoS3MGb7c", + "finger_print": "5e7cdf31", + "chaincode": + "89abdb35cf0b4aa6387db98a3ab2127727bca11495a2eba8eab642bd12a2af9e", + "index": 3 + }, + { + "public": + "xpub6Hi5McN7v4Snh1xfn5zXRZwbfJQQUiPW8sf5UwcXS9Y7dmT8TH1VQ4uFM3KPtJuS6TeR1gTUm1V4cV2DqpHNuetdk4Er3MMTL3umiyzkgne", + "private": + "xprv3Ti48H9vneFXJT4L5MgXVSR26oD25ppBiEXDpfiovf3MTDaGRZucmpkamCx9W7v1Xd4FrHqKXsj1X21kkuyVSvoCbs8W6qVdPnvp2jnLHRrnfuAXEDMgey8MftifUm9qQy8QJTAa3bgxRgshqrgPU3k", + "finger_print": "381053a5", + "chaincode": + "6b2c045ba867aa604bc8101711ac2495935aba398f0bf783446a3b28f24bc040", + "index": 4 + } + ] + } + ] + }, + { + "seed": "9d2f7ecee1aa36934a64f475d3bc527f451f60edd411b24c035e71981ff6a25a", + "public": + "xpub661MyMwAqRbcFiLZtGTkMsVtS5XKystq9MA4a55jqmTso68ehheAJm2XyKVKxvgSWUuttQXX5UDK2smwGrhWq485YQrbrQgssGZjhq76QDd", + "private": + "xprv3QESAWYc9vDdZcbC1JyV7STc649jkJnKMGLRuQzkxFzHjqsq8AvFyBp3PE4fFjuRFrKt2Dk2kjmebasLtQfSfTUNivQt1Z5mLG44XPGXPsnqDmRg8Luaih45z38KG2riDoqY46nm1r7N9T5bv3qVFUX", + "finger_print": "00000000", + "chaincode": + "7597c50e43b1b63b52c409ce7de19ae769375e2c0351db8c83194a798f08c58b", + "index": 0, + "child": [ + { + "public": + "xpub69kQavJEnS1DTYFc1CDcbwzrXZnfwTy8dqmb9Pbd3Hgbj8mxfiCvFPre6h5MFQGf6xz2aA2L6ZGo4ji8Lp9Dr5UXCMhCRY2YnEURjp7f4QV", + "private": + "xprv3RLumGFkRXsdczV4BL1FSZBsZ8cvYyry4MugcU695bGW3xU5kRTs5yHPDwKwyTE7gxqRJ3533C4rGH62i5TQMUU6T3G1gLoi4LFBYUPVM9EMdP8QgL6sk6AcqcL96RJfuKJotB18oEWSiTUxbUKX6eA", + "finger_print": "fd1fd49b", + "chaincode": + "4720148fd892da26e59e2c2fb0481daace21a088547f609dcb3f87a85dc7cdd8", + "index": 2147483648, + "child": [ + { + "public": + "xpub6Ar81pxdEC68rsSuHGzoQGYMe72dqFRSZzyEiw8d6tLk5UPQDMfkybYhw7FuAq5aiZwUfya6aXfqbxCpo4cd5VJmx1QQFycG9Tc6RKsF38z", + "private": + "xprv3RfqY2kAEA7oWdh9YRyH6Gei9KAZkEnbtsGX9sLYVsntfH9qhSCe9dQKWdjVDTEM9gQSgHj9uMEcxLCrBTDrKYTVmc1GBA9VSexUUSURnuP26behX8Gyfvdf1ANTs91yaBMhFy1RPASWpz332kJinQx", + "finger_print": "92945967", + "chaincode": + "021d4232bbf9c4756017c98f1c196118f74f699fa262c80eb4031112acfc78fe", + "index": 0 + }, + { + "public": + "xpub6D3x9bLLkf67VoHE9qWDMrH4PSjykVJsvhn8wcYxiS8U53D7GbhcK9rqNc3SzjoGUXCvS3gRXMe7quvpB2AYi9rvsZhZDMmc15vyJERamM2", + "private": + "xprv3SKozaokvPRi5341pNLFq7Rw7FqPgpYMRwjfoF9iHMkmVemRYmpoZfq3mukx2aVrtMprwttJ39nPo4d6QEyJxvmFVG9ExGChwE6uiULoqhSfMctfXi7eBXUnEgTdpmcunH1EaMghitStx1gdFG4ToiV", + "finger_print": "be6e5d12", + "chaincode": + "c3d28c42d92c01925b3d77f9895c693cfba6f90fe43276a38364e287f8a8b2e7", + "index": 1 + }, + { + "public": + "xpub6E5R58GNiGbX2QrQDYoYRwQeb4KoyQDhwYEpZYDzfACr1jrQvENvxU9tHAHEYgKKGE1gzgAqQTcNRiNe323ZeYBWcBxh7wyi1RyV4LiLWhF", + "private": + "xprv3SdUY9GQVXa244Gt5BWrQyjJSpKCNzyhn1qnpXwvKjU5RqYBvLrHTm9XsgWJC3P5HmdVKAVUrAFfEcsmSj8QCGhBJVnB8GcGea3rLpJ1d5v6fo6XKcHbqVopywV8PTAXRwWuaXLbHnvropYf6u8QPoW", + "finger_print": "49eaaf5c", + "chaincode": + "2201a35b5e04c7be69951345bb126315ab51925e562e964e06727df689d18669", + "index": 2 + }, + { + "public": + "xpub6GA5gnFoTYLiRASn8mwB1tG6wqxVnW1Pn52moDMD3TAfYdvcw5VydQWpFk8S643VraP3dvk5ctGvpPPBhoGkbqr2N1Q53qpAo76bbGvEARY", + "private": + "xprv3TFKZU6h9DNfWuZN7EuhxKweUPN6KfVLcGrWTbXZbHRx6Qkk4vxHDSqETpSEYzp5n5BDyrcijyqwJiQiAxbeA7SKVULkKbmq4aZbT1rtdgZtBqk9MejQfsPHPnypv4kvtf9Q37hxiueKsiTmwSYmvLp", + "finger_print": "64f6a261", + "chaincode": + "b59b8ad48aaa25f2178f1a8d3f7c707793d6500e28faec6f25c6563775ca8f80", + "index": 3 + }, + { + "public": + "xpub6K5KTbLzke3wa6vY1Ko1CposiaJSaQd1ADAmGcLLFLQ7rGkFsERsB8WNLRETGGp2yzxWU5kLUtCs5iUnvc3ewi6KXK3mw2rgVzcXirJRYT6", + "private": + "xprv3U7bTHwfbxW89cu3x4tzPWFvFNm9CiiMz7vvy3E529cmqLt34bC3BDKPLvyn4W3mZUtuBiGpqTpFp3NM9ESUtWL5vrHjTn76jcgfs7fBYvVehiSx4xhEVxbm6qZwcAynXzgVfGrQ9Mvi2h1JYnNX4oK", + "finger_print": "f1f1f19b", + "chaincode": + "4d1ea7d762df91264d8447d11d6a25748350fedc777a6502c438a04a0f08ccb4", + "index": 4 + } + ] + }, + { + "public": + "xpub69kQavJEnS1DX6sVRNH9zh5dffLUn58UgneSZMeHrhVSLCsn9bS5AxL72ARqUWUxn6pgxuTbzKk1XNwgCEufv747nzFSxJAe3JgQwgXnhc3", + "private": + "xprv3RLumGFkRXsde3s1jesyJ7k9NGiU16nMQqzNhuzWocTkFmsSPnDcXsfukHuMuP1dz7nEHe4ULPyinVeyuHZcGT7YvzrYyZVi9nqBxP9f5FC7cCiZwVooy35mVL4BswkEZdzKb349n17LC4gNhdRiaen", + "finger_print": "fd1fd49b", + "chaincode": + "acf0119af61a18269fd35cdd57e1edd8be399a4e87dc9ec834faf71aa8569193", + "index": 2147483649, + "child": [ + { + "public": + "xpub6AQEzJG7qpjXzRas6vEZ1xQ9zCCBwYPrCNcNqRGrf1h1TAdJe7ygGgsbrK7qFJRi1WbRtnaLCXbsM5xExVSgCoQdrS9QdtErzqrpXG7dEXV", + "private": + "xprv3RY9dwycQYhRzE6KNnXgQMqpCq6sQPcueDMPKZNyd5KM6GrtFJJzC2cPpimacSsdzknk5zrc6YGJisgFMjE3QwDwhAkkHdPrqqKmF77ijEZvCzQgsVob1HL3gUeM3Z1gwLMrwaaNgfhVBfm61oS6RCY", + "finger_print": "55df8477", + "chaincode": + "181043ea3135a1716dc587d2cf4e0444ff669beb948dcd2c9da55e9db87f9706", + "index": 0 + }, + { + "public": + "xpub6DALgXVoiWnXqZpxjx7njTLiAbAmhusTDPecjGnh2fbceRo4VgZpcsf1YzPNs2RD4UhQrzW1FjQukpcMSHCgzcaw6a1sfthCtA4zXh6UpHR", + "private": + "xprv3SMi4iybsZzbjVr3qkMYqM9FWqUivFnfumjwBv3LbeyZwAaTEVn8nz49Pyvyo2qb6gN4gF7GUtyaizoHrRtvsBJk5KhAu9p4rZ2AZiXFAMJHPAFB5pGXc1JdzeQW5wG44CN2McWexqiiAwAkhX8idyv", + "finger_print": "cd6aab63", + "chaincode": + "30404f196514b45fe6c5501cd56e9bc8415e8cf6b5a3392d78daa4afb7c3c98f", + "index": 1 + }, + { + "public": + "xpub6EnEuap8kD7D69VVmVeUPWtWmB8LJTcCjubmMY2AttyPTcX9NEJcFComtPQXXNPgvm78axFpLEa9BEg5ui8BZsEFnJcMXwfDLP1GMZtSyxA", + "private": + "xprv3SqbvztHbdWnvUcd7dPTZxBCrFbgJeJftVVoLh9ntxF6JUzmHNkKBCpg7UFgDSBzivqqGa4bC9ukaExYp9BWfhn3haAwYLGpXDBKiuSaBtYFVPRidGwvWce9LhUjByd3pYHzFvtGC46D73aLocRN8Bs", + "finger_print": "a9adffc5", + "chaincode": + "4090b767504e50f34047aa01d19739a31f514e121fec8ae531d3ab4ee32fb5d2", + "index": 2 + }, + { + "public": + "xpub6G2uqdHFN39WcmXnx7xrGmAoznsUY6BSAVEhFChEU9phehch8KiD7KuFjVeDB1xfxwn37rQPxQPiLUjoGzWvpkNRgch2v4Q2kXqKm5jYGrW", + "private": + "xprv3TDC2ajj4r5LWFxkv6U9JeWzdT1f6Jpp7iZT7xNGArtaT4VsnvijuW3R6R44Bi9gArVMiT2tmqJqcqMUH9Y8H7psFaYsPt277vCasVRNYeynawshrav8uXvrbgmVRz6PgU41xUX8yQq6ZA9Hn31Q7DX", + "finger_print": "54252b6d", + "chaincode": + "d0eb2eca7603041659be8429b1cc4cb164baa6434ecdd445f107af5d9348b551", + "index": 3 + }, + { + "public": + "xpub6JyPLzVfVrcXGipASgfdSB5xqvHoJ3P63qjh1koujcjBQXtNvp5gsnWUjyNMJTUsqyCCu941rBKFuv6vTNitwLboqJNDQhoM8hUF1YK7Rug", + "private": + "xprv3U5qEMFotkQkQBZikGxqWqX9nfhPgrwn9YLHTcnCeEKuGeMQp1pqtTTBYyLYgcmBBJ6Sz7swpTSF4JC9jiWJmCty1V7tvDqK8MKvkfYApFePnZqVE5yZhqexjhi2nJyfwRFMmL2GeRsy9rLtwcFLGAT", + "finger_print": "e4072bf5", + "chaincode": + "4df45ff611d0bf0819fa9e8198047bce0f454c7c5575fd7d66c16e5be1fffb94", + "index": 4 + } + ] + }, + { + "public": + "xpub69kQavJEnS1DYLUkaESwXxZzABEqBkKWVa6qSeYhXi4os9AqnM1jgq3YKman3ZbTSCyM282NYf3DJE52X4ynexqrxgdNqUXUXAztT2Zq3p7", + "private": + "xprv3RLumGFkRXsdeR8nm8aq7ppZrqPjfKmb2yS5LNEYSjFTso1TMJTxcnpqhcEzmF3P592xNtyY3L7cqLmU21EkUiBASHzoNKq8v252xbeUTtUoKP5s9D1msETydxv9fmuNoEq2VdgGn4qsvDYMLsFa8Z5", + "finger_print": "fd1fd49b", + "chaincode": + "28f1eba1a8ce49e6227afc26e5f374cf88c4127df153ddb8afba5d7910931305", + "index": 2147483650, + "child": [ + { + "public": + "xpub69oiiMVZ52gH1YaiN41fHh9oKfkKyhdHa5iKdevMNhqWe9QSetZYXX29X6AXbqeh6mEf1dz1WNcPXDeMAzamaiHtDoZupXiD4rvdLDgKJyB", + "private": + "xprv3RMtqZAECGtQNAibqatEmsjk1ukLTbF9nScC9ULbQgtZU9NwuG2nYJXmbW9D7TBypM6GU9W4Vmq8YdS97swijVL44f3fg4xrCJfA1jVh4g5H6LEN5BAeeHf4Bu9SfCfcpn7QYRfQa5byYJfm5WwAeck", + "finger_print": "04e5061d", + "chaincode": + "5ffc5476718ca61dab0ff2f06c51092bb4aaefc6eceef934bddc96f752044952", + "index": 0 + }, + { + "public": + "xpub6CsBbX3FS6vJjXjVvtvDmrGXe4fwqXgfs81HQiKTtjA5YCoyqBiQJ7m89mUweuWhD7TMSrJ47diqBSFcAR3CxTHvfNLvehwu7QEPaxJwbMe", + "private": + "xprv3SGcTnYMakYuoha85ZszkK2Pz9YZvSuvNy3sRSu7XwA9ayZZscZDz8PMTHM42EDNuTgeAQvaz1FMNWarnWNzD3tV3MpzC1rfQbUgiESYtkM7JyDs2Gn3vuMRn88BHyiWDcFyR1jzimUSpUk5GpExjPP", + "finger_print": "a52c129a", + "chaincode": + "e8c4aaac4cb18f55dd46ff39e8c4fb8b11721e2edba1205ebcd160531a2157f1", + "index": 1 + }, + { + "public": + "xpub6FJMTyHLo55314rKiPC5qzFYbeLDNBtN9LmKRFJubX83dzvQuvWj4dxidXuKeGBLYmKassQu9gX7acAQTcPGJSMhZf4qP7ssHR3AoZeMv6e", + "private": + "xprv3SzYmVvfr7HwDLFKGY4NQ6uMT3Nht9h3g26iBoynQ8JcpscbfUuSHe43nmACdzi8FeoH2zPgP2j66ZC9wxXvR1owbShH8v4N6gQFLgXpRrVfXuaj4WDfaeSAtkzc3JSmS6TDvx7FH6g6mYdE1zdYyfk", + "finger_print": "f050f084", + "chaincode": + "c78aa9c3d2edc0fd667ed53ce231d93e2f4f45b08b2b016fc300ce07222c6c56", + "index": 2 + }, + { + "public": + "xpub6GKiBQ1YMYuhGt4L7tUT6qbCDHj1D8cdowYZsju1QkZF9ohQ7kHxK8bcF1npYPm6dpT7qPv2Z2ZCsDBbpa63NYaCg917vrWywzU9Nc3B4cx", + "private": + "xprv3TJBU5tQBxeEuVj211iWNzuQQTsQsnqah71aHAc8qswXBVTpptMQYxmcSEMnot1oYpWvdaBKn9FG2eUVVhU3QirmqXi8BcBCC5KpixQrzb8ZtqpCe3BvqS58v74L8Ht3svac6DLj8wRJ5Qwcxg2Y3Xg", + "finger_print": "7b8cfa9c", + "chaincode": + "30289ba575bb264f16d71206168665b386f3273a2f5cb48ef1e84a8aeffb14a7", + "index": 3 + }, + { + "public": + "xpub6Jf17s23NT9yBNuq3BDLCUUzjyi4qrExueq1sKqw7QLwUgATG9enjtQvyqKZCoDA19SdCKcJ1d9BdUTbobmFJJeTCHPYUGnATu4DNJ7fFYq", + "private": + "xprv3TzNVhQnooMqUVJwFUvJBdGKKWA8VMHuPwTT395vv8UnvpK6MxLZbMKfCrNMPuSifU4bV4p9xd9WrL6Yh7yS99TaZDTqAYKUhyeMJQwZnJ4os7SnmMMJDF1rGyKnjQg1wqykffGqQwSfPA6ABRWCViX", + "finger_print": "b8e80762", + "chaincode": + "b8013b8ed7077d390db971fa7b0ca5f25084f5c2b31825e60cf481a02a5a977f", + "index": 4 + } + ] + }, + { + "public": + "xpub69kQavJEnS1Dcj5ymi4Yjoc6V49YENTkDEJcUjUzTHohqXfq2Gkn7uu2xB7XHRwveZok6QRsB4xaM3EzS5tugNDASrb9sVQzYxcbC4sED8X", + "private": + "xprv3RLumGFkRXsdfimaAkUeEsUQwXunHstB4U1qsb8Gj8N4pq56Dy9kuJL29mv9tuR2AkrJHaDgtbK7KefHUoNfibvdvNNP2amUNWN8DgeFiGyL56xZwxC9ombFDCRWGn3qwVCqaVehmZ2rXC9irPBqnbm", + "finger_print": "fd1fd49b", + "chaincode": + "e1dca4cf65015ea18c341094300936cba786fb8d6b2050f9af8e771a4b342ee2", + "index": 2147483651, + "child": [ + { + "public": + "xpub69n8gpZVTYVSdi32hsYdWRWZUxaj7SKKWQPxBdNQmYJSfYEm78GM3iqgGiJiLTyobP7WcTcJctr1wgxCPYe7LgnMkGXgDpHKRray25XGLbL", + "private": + "xprv3RMRVybsBkg9aehqu7ujCzKTb5jFTz75JtndsDoyiWxrnEay8mXZjaNk47efWwHkud9gUTweLoqDP1mRmdSTxHR7UfsyRVXNHLKF1TAv4367bu7fjexrqEwWJ6k4yZrYdCopCyooEr7TaqxjZm8xXhY", + "finger_print": "012c3b1d", + "chaincode": + "4ac42342d07d8eb8f363c4e8f7951a981835626e986f5d6ad11dd36a9babeb1a", + "index": 0 + }, + { + "public": + "xpub6BgH7rezTMdrk8jMhhei7gVoeh3NQa1bnv3aVyU3vNs38bDxJ6QyoFppsjiv9HTYUFQkp3FSsTConH8NRsAeAekSK4xygYRvSYHVBrCziaj", + "private": + "xprv3Rv9G6GSb6CrUhXD5yD1p8BqZn5ugvwrZSPzYC6bNooBs1GKb4PFSP8w3uGt5YA5MoH7VJHz5YoQExRoxqpDD9eJiGHWdw45HgNRsuMyFosw6Rj2tcepBcwQe3Vvrzm4ipxEonivXV7kNwAKzqvKm71", + "finger_print": "038aaaf6", + "chaincode": + "0c75f4f420f255f69a59e630fb7cb575fc85ea5a00997addc03b7af1f2629639", + "index": 1 + }, + { + "public": + "xpub6ExKWzUwTpqNHPCR9i2kCrx7kgJXv3HEiUJ7CTWZEFzNi3dG9R1LZTUb17J1UBt1ZuTWvx6GXLLKuYFaxJ93Q4vN383Hc5Smw7YBirhTxT7", + "private": + "xprv3StbbbvdLAE3KWGJ8YyicU1bQ1BYYnVLgZr6BZsP7QK1t6rLi9dsAKr6XiL1mPcT7zksc2rnRkhbaDADZ1ZSN8NyQra3A33EMeKGjCcdpg2ED1pY4rgJNVjaviMRAcETSdEDFXZ1Utct3d7zWmetFyc", + "finger_print": "c152bf10", + "chaincode": + "89b63678564302e9ad9dce132daf26b9e4be5fe4bb2ce5a3df1fb1ce8526dcd1", + "index": 2 + }, + { + "public": + "xpub6GT8HWCWDgHjgzXDEeTwEV8jQ2VdsWLa6XbT5HpytTxk62JK8rYHDha9k1BfJYi5AcgpdLtkNLcyjxJzeAzxqWt4Fr8RiyPKhcVejP6AhXo", + "private": + "xprv3TLPEdJJe3Pn74KpzaMah14T56xCYvg7nQ8Ra2DJaZdb9jjvWQX46hzzURaF3WMusBFE7hVPXJ6WFJbRjwQKwUu6DVZfd1JvgoVTk34BUvfJe5nDp849EDYoQzBod2Tj73ZJat6t7Mq4hURDgo54JEF", + "finger_print": "8cf20fad", + "chaincode": + "56c028209d0a33c56904a587a8be4229b45b4d583ecf201a76c082d01a98163f", + "index": 3 + }, + { + "public": + "xpub6JrDb6cqthoPoe1Jo8ZQLaTK8AsBdcPhUzi26TMMKyU44WRzP9htFRMo4vNpFhVDC9gUHdhRovK7YajQ9x4Nkhvab7qwdGYLXbaVnzjNhV7", + "private": + "xprv3U3hj2XaC595WKrsZwvuuyaACQXKrpW4QWLKrcLFGAzWaDojt4ANxSdWAj7LZuCSD8ELeLqkmLD8pJ8WAccwWMWa1i61WQS4mNXP6mPtaiEbZDiPX5Z89zskA8uzvn1MxhmUAsCZqjpA8q7QyT66mZy", + "finger_print": "d336a564", + "chaincode": + "d24b38ef79794671d970d44811a98f6f0d4417f2b58ce160592abcb96975070f", + "index": 4 + } + ] + }, + { + "public": + "xpub69kQavJEnS1Df4vDcMN9EshoDirQuCmcQW8nX83DAhaC7k7wCRFWe7gHuGXHLRxybmBVF1ZR6Fh95TL2w6jEpmGS6nwRXQG6q5XeDGUH9y3", + "private": + "xprv3RLumGFkRXsdgR7u4RVhhZPoEWJkPEKVgU8e4WENcZLm1ikEztp5PvmtqpA7qwGEM1QqXDUSoUEX39VvQjZoE6VBcc6VrgsLJUUdYYHQiJMUmsNPq5xs2CwqoK1TiDb5zddiMFqvTsRrYdpbqvnH9Nd", + "finger_print": "fd1fd49b", + "chaincode": + "cd16b7c51505a4cc3c48f77147d28b5e2ce0378619f45668ccadf9b293dbd9d1", + "index": 2147483652, + "child": [ + { + "public": + "xpub69wDHRNThu2VDHRKRDbFHmJA7xn3BCbvjB8RVdpSF43ZKc9cpdaCustFqoVF2WgpbEjzeKSrSVzMdY1c2MCtiJR998Akxku74w9gM9xQn71", + "private": + "xprv3RQ7w2MLuqsudESvL7HGLDbjo4JjTJzw4mGK3Botap1ViPbr1ESVqKsPvzhazHbuo12tvJAc791yNosqt4KcUQkkoS4y1Bcrx3PkiieuohQZGiPH3n8kFSzQtFg79rWGCRpknxQKgXKG48MRnAnwMfx", + "finger_print": "16785529", + "chaincode": + "488998573163a68ff49c2f108b9988bae4d352b4e9bd1984bb287b246ba08110", + "index": 0 + }, + { + "public": + "xpub6CvvU3CGCwFaqiEciGXBK6tUmbDA2wTLwdvhMBQYME2NbGJv6jMxFBq5uFvjkzPT9strUwK5LtCfNYkLPKWVD7CMm2B5xLrbD585DBsDfXN", + "private": + "xprv3SHitPPp8F3tbWZgiwsrLzf3WoKEusyv4KcCu6Wvu5UAUsFxW5fGb1W6T92Zqi38nD6eLoNyhKtcSQcfgYcDYxPM4ticZic3TJziTYeX6vbJNH1aRKXb7A7iC5XmPd6nmXv3UvgNQkJDnfHWAGaZzru", + "finger_print": "adf170c1", + "chaincode": + "eb3b47e297b240d058dd0becccacc130c1508ab493f463391c73d29f872d0477", + "index": 1 + }, + { + "public": + "xpub6DfUf4gwH2Drsy6eAEapN2u8Vm3pX3zvmfovfPzEX8D5ziJTkxwZ8fVWSZCGQXq4afXhWjkht8fk1dR5bEWFGg74mwebksbUg9DnpVA6AkE", + "private": + "xprv3SWN6K4kZvbk9ghcXFzBeNRxdGVZpBBUkJqkJ8MkBT5Wy8CKPjUkCuqpixBvKiAkt3evYiF3rHApcRu8RxhVoWpTZ9uYgEGqyvWyXQbDUafMyKKywQ7jTMQrg9ErRXeWVe9CXDscWekPFGBihWCEL6o", + "finger_print": "11c3c5ec", + "chaincode": + "c90d398e2f4f31e15f70469a89d0222dad69a1e859bc553e1220a5c89d72169a", + "index": 2 + }, + { + "public": + "xpub6FeJbJ21VgvSBh72GAu7NLtUmeT9YQd12RiTFh4LG7yufSNvP3sY1wJWeKuKpCsgSbJRBuDvj6b4ajVVqPSTroRqSsHFNZ9hCC2KJRFhTAg", + "private": + "xprv3T6UWKZWa1vnYdDtkdsf56dkZ5bC6V83wBCAbdhbZury5jo6whNESmxtHK4ZtoDXjNRa2w3WJdhNEphwA33bRgXP8XyniEMFzv9i3cbSCreLbT3ERJ5tk6H4Kd3GVgpCB44AAxn2z5orYzPVUwcTGKN", + "finger_print": "1f1d3637", + "chaincode": + "116e60c4a812999990e04978c571eeea73c4c8c8d81414b935229c27ed331b50", + "index": 3 + }, + { + "public": + "xpub6JPSu3HHrd72UWxavdQAj3CSCetW2eC34ByhfoxA8HncmgzTon37quEEbFtV3cSsZHG9zmuA57ZjJXamkMkh8UadxpQTHeUdGB3buJoojCU", + "private": + "xprv3TukUnnCBsPmhMDajd2P1zc2pdZF9Qp52WJywf5DC5meE13D6Gsfg7JchPBvi9Ca5qwEUer3rgvmsGXV9td8LVTwB8MvqZkX3QvQ2TAWqm11Xkjw2Su78iaRCKRKG6uSAHpn2vNrwXUqnc5At7NgoTa", + "finger_print": "946ae8e1", + "chaincode": + "b4f26a82b1efc904bbfaa57554bc62808c8682d90e4f941f5e75f2536bc68a57", + "index": 4 + } + ] + } + ] + } +]; diff --git a/test/cardano/byron/byron_lagacy_test.dart b/test/cardano/byron/byron_lagacy_test.dart new file mode 100644 index 0000000..721f508 --- /dev/null +++ b/test/cardano/byron/byron_lagacy_test.dart @@ -0,0 +1,38 @@ +import 'package:blockchain_utils/bip/bip/bip32/bip32_key_data.dart'; +import 'package:blockchain_utils/bip/cardano/byron/cardano_byron_legacy.dart'; + +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import '../../quick_hex.dart'; +import 'test_vector.dart'; + +void main() { + test("byron test", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final w = CardanoByronLegacy.fromSeed(seed); + final masterPrivate = w.masterPrivateKey.raw.toHex(); + final masterPub = w.masterPublicKey.compressed.toHex(); + final chainCode = w.masterPrivateKey.chainCode.toHex(); + final hdKey = w.hdPathKey.toHex(); + expect(masterPrivate, i["private"]); + expect(masterPub, i["public"]); + expect(chainCode, i["chaincode"]); + expect(hdKey, i["hd_key"]); + for (final c in (i["child"] as List)) { + final firstIndex = Bip32KeyIndex(c["first_index"]); + final secondIndex = Bip32KeyIndex(c["second_index"]); + final cPrivate = w + .getPrivateKey(firstIndex: firstIndex, secondIndex: secondIndex) + .toExtended; + expect(cPrivate, c["private"]); + final cPublic = w + .getPublicKey(firstIndex: firstIndex, secondIndex: secondIndex) + .toExtended; + expect(cPublic, c["public"]); + final addr = w.getAddress(firstIndex, secondIndex); + expect(addr, c["address"]); + } + } + }); +} diff --git a/test/cardano/byron/test_vector.dart b/test/cardano/byron/test_vector.dart new file mode 100644 index 0000000..9389dee --- /dev/null +++ b/test/cardano/byron/test_vector.dart @@ -0,0 +1,3092 @@ +final List> testVector = [ + { + "seed": "f340ecbb7823a43f746a0902ac07dae6c9851d28af2939bab05813a147d526a9", + "private": + "80cffcb62747adc43d6f0e75b57db981591fd832fc25176900eeb44a25a82153653858cf022cee7f11b5147ab49602c2d93269169db8f7e97a5ab6847ed9c53e", + "public": + "00c9123a648cce0bff7c156d0b35c42aee69c157ed595cae6c0a326d1fa87f1c62", + "chaincode": + "2089ce36de8e53c846cfea4140a01da5fd8be25c06532a1213c8ba7067f2073f", + "hd_key": + "950163bbc5bc5cb6767222a8682b166eaf9930e5efed358a5bd457a5cf2a293a", + "child": [ + { + "private": + "xprv3RaogguvnEj76puqbeKR6VC1rtbMrgM3A4yHqJ3Zq1r8hTFErXH6DtbuGeJCdoha9iWXTQeixMzWAKVYbDUkVZo7MQQDFkauehSCkXXrMdtQkVdKbLd6p1fvCuTAJf9PZ9CT9DLaiYAM8FdwHFnzy7h", + "public": + "xpub6AZBZKEwYoDk2Gn2qnQMkMvUFgKmAEsoUdqBAGvy1Rqxm6g4axPrP6xN89G3q57nqJbojM9UhCrkdJjHYYG94L7ansmRJfa7h25Do9Yo9Tq", + "address": + "DdzFFzCqrhsxBKsA1NQQDRgBU4ZYu4fWADPKGZN1xryCAqjc4DCmouzpxiji37hkziKkZSeTqkJTwQhhmSuBUavBEo4tNzaCiiWxymV2", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RaogguvnEj77HnEa9CMzCG8oXhcJQCw63C9s1i6fyD1VLwuPZUMGrzpvW7BoJmvArnnpByUnYp6H8PAUG9Kp7CfJi8bEmmzFs1P3CnkHpTdj3hdnctYPT2S3cJzZp4nxLR4T3N2LAPtuBqeChHG76Z", + "public": + "xpub6AZBZKEwYoDk3qE4X6EuJ26ikzrnBiBtiotdo6NWgp3HAiv68kQT6HYA6MKds3nQWVDrzTzN2kpDTH1pepoTwSbBssZvZWfF96sDurT9ra9", + "address": + "DdzFFzCqrhshmftHZVFHmv4VAguXqP84ec5w8VzrgwveBupxvWb6U9bQdZjEJbVcnCHnU3c2paBnpB2W5BgQHuoRnoMUrm1YMHp2J6Py", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RaogguvnEj788hPtkcjxt6M9haTk2RkfQxhY7p6Q5uWuu6zRmYwSUsFb4owW52L73PAGZ5zkt4RuNNvh4eGL2H4fj2UFgpJfmc8F9JwSunXf9JQNnwVTBrGsf35wRZTjR7ETFkLNbTdBpGqe8uAcXx", + "public": + "xpub6AZBZKEwYoDk6fto7FkMRZgfnKyreWE95X1PBokEyt6aCqMZ7YJZww8frUakx5SrVnLB5d2eMmfhG5vSShFbhE5d31kaMVxpbrq2DxyugZq", + "address": + "DdzFFzCqrht4Artj5x5VnmhhEnTHGS7TprcuAnQab6WDrsUzcY6hiFRm1oa1iggsmeKn8uSkfrccuLb3pBEfs2sRRQk11icL8s2pdXSd", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RpWriyjX219uVnPGWi76NBFAH6z95AAhmJHYfwAPrNEcFvfFU9Ks4eTvYpXdYsgPtFYs586cdWW146K1m1nwnDt579D43Hb79F88hUt2ZpTjryUuj3HQLg8pgb3mGZnjT5JweBomjsvntcCmGDCkKP", + "public": + "xpub6BMLMCF6U3CkTjGdZtPwdd8pLS8MxaSQMCQkZeDjVzLx5vsFjB8GayBctQPBwebYWWW4pAiQm7fok75uXKHhPF5VyxYGHUhwM43mTgGLmMu", + "address": + "DdzFFzCqrhsfGkBsktnxcuyjWAvhA4QGf3bRNkrFuzE4ZUD4ryWjBCVvm3R37BLyfP2mmLZURfXGP6H1QCWeWGqxSEQjX2nNCakDWuSy", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RpWriyjX219umV622Ew2ufMihYq1A6JgkSSUr88JkKppLo17J3chpt6v1a9zLokuL9F7g9XrcvY2kvDR7iJRWC63ggQ67XNsKpfm7fvbnTDBkBNWhn3ZDKViVPfUcvdZ66rJsCFmxShrt3CQ86UWxF", + "public": + "xpub6BMLMCF6U3CkUe8L4cM5YwkMbp7QY58xA26k5J6g1yAbveFhgzubKmaKj1EY7cYMdZd7HLV2HusdyNyTqjH3yoZLW1h7LrKjBS8JN6wxuMb", + "address": + "DdzFFzCqrhsykztkLFvpfU5HD9owuBJjgYyvAjByLM9kxwfmKQndJnCKHXzYzHW66DB6PywGGUqdApRz6cF8AkH3qxWPNjeb4nKxSKg7", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RpWriyjX219vao93fiTs2Eu4Qs2osXR8sVvP1D3637mmx4UZtDb9G4GogB2muuorgfAxrEzt8tJoXq57CyqhfkrBfok9KiyKKwzEwqBps569n9vHVxYt4KrTWtnP8FuVu8wGrzN3e4fCCJpD6AGRAH", + "public": + "xpub6BMLMCF6U3CkXPPdeUxC48UnPJbH6C28nkYSYdQ5HECg5tmnQmQquJbQt2znhB9rFwG5FPPBogMwEmQGYysKozULy4ihWhpMwmx9psNYcDm", + "address": + "DdzFFzCqrhsq5hWoEYsjSEE7sirKFhnvG4kG8k82buoynrRBBcoH4hF662fooGSu6TLWKAsYXjAnD7R4WuGZvy1UYvuu6SsqRBaTiejP", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RbAa4WXquXM36nHwAEFbqgZD1xKZRN21nf2MwNpY1yoQHTrBvRRBpdh2dtCvbALbH99HqFzdSFWErj8CaxHfhZpJLHwz5cTNtHTEuYFtVM9ieyJEtBCd8gagKuk756PS5Ff8NsDKhsm9WURxQiS1aZ", + "public": + "xpub6AaPsA8J6hh5RoZFwfUoBFkvY66KqxhsGF1eJU2tfKLEg6vMvzq4sfVDSnofzrHPAVu4mZWqjYQ39TY8eniLhodTKRnRjaGiqgnuAP9B85L", + "address": + "DdzFFzCqrhswYdDu7ZNS1P3BJopJ6M1V2mptxuXUKKQc3TgDNcBDbc2X4xgFdxsoguLfnUp3y8onJhRWsts2nDc7iJHdViss2NEk6gCX", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RbAa4WXquXM4AJnVSdT5svbKkaPffuy4huu1Fhw66vdkCcWDapV7RgkCN7Hu5zsTCtzwT7YYu7gBmW4tK7AXQkwFTE8mQWM8g2iEXX3BwwrM5YwXzhrMZx4DopNqQczNFqRE7TPXeCiwBxtNyG269r", + "public": + "xpub6AaPsA8J6hh5VNfsgAmdUHCtSc6kNsAF6Jtmz6p9XDUKZ1t7ZhRytHuuFjVUT1iWL6dUEpRFHcrEPKdS2PKgdQj3AFdhxQQENCzjwWxvzxv", + "address": + "DdzFFzCqrht4wdU2vAKzd7GGB1y2rhyHp4ewfXh6LWj3DpkpjuyEJQ8jdiJyMmwDzoe3mNdgL3XdGDDudPwFSscVEVG43aN7yagAH3Ek", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RbAa4WXquXM4gtLJMNE7yQBMBpqnc34ane6G72U9dcRNUbKSmcmWBJ4jKfrswM5Wz2vaRF1RmUjsjMDj3iQfibC727u12tnE9GJT85TFi6Azq14AB4ZudsZjppibsJhLCshPrUvmofynRgkp7muTKh", + "public": + "xpub6AaPsA8J6hh5X9cArbjHp8paSKGmXy7WaEbpedhPRxSChuCBUTwZiEYxMh7H6Cf4Y7iNht94AmrywAtyvBcsRTdGLFBrdviSKWWBxjVWHdS", + "address": + "DdzFFzCqrhspNbavvTZ2wwhP6QiQmm8DygR7ptezoLynkTsSkXz5yYzNJRRebECkPyCqka2gGzCbLyiwfS6Z4W9xuLZZFj2DASxCCxcC", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "f340ecbb7823a43f746a0902ac07dae6c9851d28af2939bab05813a147d526a9", + "private": + "80cffcb62747adc43d6f0e75b57db981591fd832fc25176900eeb44a25a82153653858cf022cee7f11b5147ab49602c2d93269169db8f7e97a5ab6847ed9c53e", + "public": + "00c9123a648cce0bff7c156d0b35c42aee69c157ed595cae6c0a326d1fa87f1c62", + "chaincode": + "2089ce36de8e53c846cfea4140a01da5fd8be25c06532a1213c8ba7067f2073f", + "hd_key": + "950163bbc5bc5cb6767222a8682b166eaf9930e5efed358a5bd457a5cf2a293a", + "child": [ + { + "private": + "xprv3RaogguvnEj76puqbeKR6VC1rtbMrgM3A4yHqJ3Zq1r8hTFErXH6DtbuGeJCdoha9iWXTQeixMzWAKVYbDUkVZo7MQQDFkauehSCkXXrMdtQkVdKbLd6p1fvCuTAJf9PZ9CT9DLaiYAM8FdwHFnzy7h", + "public": + "xpub6AZBZKEwYoDk2Gn2qnQMkMvUFgKmAEsoUdqBAGvy1Rqxm6g4axPrP6xN89G3q57nqJbojM9UhCrkdJjHYYG94L7ansmRJfa7h25Do9Yo9Tq", + "address": + "DdzFFzCqrhsxBKsA1NQQDRgBU4ZYu4fWADPKGZN1xryCAqjc4DCmouzpxiji37hkziKkZSeTqkJTwQhhmSuBUavBEo4tNzaCiiWxymV2", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RaogguvnEj77HnEa9CMzCG8oXhcJQCw63C9s1i6fyD1VLwuPZUMGrzpvW7BoJmvArnnpByUnYp6H8PAUG9Kp7CfJi8bEmmzFs1P3CnkHpTdj3hdnctYPT2S3cJzZp4nxLR4T3N2LAPtuBqeChHG76Z", + "public": + "xpub6AZBZKEwYoDk3qE4X6EuJ26ikzrnBiBtiotdo6NWgp3HAiv68kQT6HYA6MKds3nQWVDrzTzN2kpDTH1pepoTwSbBssZvZWfF96sDurT9ra9", + "address": + "DdzFFzCqrhshmftHZVFHmv4VAguXqP84ec5w8VzrgwveBupxvWb6U9bQdZjEJbVcnCHnU3c2paBnpB2W5BgQHuoRnoMUrm1YMHp2J6Py", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RaogguvnEj788hPtkcjxt6M9haTk2RkfQxhY7p6Q5uWuu6zRmYwSUsFb4owW52L73PAGZ5zkt4RuNNvh4eGL2H4fj2UFgpJfmc8F9JwSunXf9JQNnwVTBrGsf35wRZTjR7ETFkLNbTdBpGqe8uAcXx", + "public": + "xpub6AZBZKEwYoDk6fto7FkMRZgfnKyreWE95X1PBokEyt6aCqMZ7YJZww8frUakx5SrVnLB5d2eMmfhG5vSShFbhE5d31kaMVxpbrq2DxyugZq", + "address": + "DdzFFzCqrht4Artj5x5VnmhhEnTHGS7TprcuAnQab6WDrsUzcY6hiFRm1oa1iggsmeKn8uSkfrccuLb3pBEfs2sRRQk11icL8s2pdXSd", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RpWriyjX219uVnPGWi76NBFAH6z95AAhmJHYfwAPrNEcFvfFU9Ks4eTvYpXdYsgPtFYs586cdWW146K1m1nwnDt579D43Hb79F88hUt2ZpTjryUuj3HQLg8pgb3mGZnjT5JweBomjsvntcCmGDCkKP", + "public": + "xpub6BMLMCF6U3CkTjGdZtPwdd8pLS8MxaSQMCQkZeDjVzLx5vsFjB8GayBctQPBwebYWWW4pAiQm7fok75uXKHhPF5VyxYGHUhwM43mTgGLmMu", + "address": + "DdzFFzCqrhsfGkBsktnxcuyjWAvhA4QGf3bRNkrFuzE4ZUD4ryWjBCVvm3R37BLyfP2mmLZURfXGP6H1QCWeWGqxSEQjX2nNCakDWuSy", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RpWriyjX219umV622Ew2ufMihYq1A6JgkSSUr88JkKppLo17J3chpt6v1a9zLokuL9F7g9XrcvY2kvDR7iJRWC63ggQ67XNsKpfm7fvbnTDBkBNWhn3ZDKViVPfUcvdZ66rJsCFmxShrt3CQ86UWxF", + "public": + "xpub6BMLMCF6U3CkUe8L4cM5YwkMbp7QY58xA26k5J6g1yAbveFhgzubKmaKj1EY7cYMdZd7HLV2HusdyNyTqjH3yoZLW1h7LrKjBS8JN6wxuMb", + "address": + "DdzFFzCqrhsykztkLFvpfU5HD9owuBJjgYyvAjByLM9kxwfmKQndJnCKHXzYzHW66DB6PywGGUqdApRz6cF8AkH3qxWPNjeb4nKxSKg7", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RpWriyjX219vao93fiTs2Eu4Qs2osXR8sVvP1D3637mmx4UZtDb9G4GogB2muuorgfAxrEzt8tJoXq57CyqhfkrBfok9KiyKKwzEwqBps569n9vHVxYt4KrTWtnP8FuVu8wGrzN3e4fCCJpD6AGRAH", + "public": + "xpub6BMLMCF6U3CkXPPdeUxC48UnPJbH6C28nkYSYdQ5HECg5tmnQmQquJbQt2znhB9rFwG5FPPBogMwEmQGYysKozULy4ihWhpMwmx9psNYcDm", + "address": + "DdzFFzCqrhsq5hWoEYsjSEE7sirKFhnvG4kG8k82buoynrRBBcoH4hF662fooGSu6TLWKAsYXjAnD7R4WuGZvy1UYvuu6SsqRBaTiejP", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RbAa4WXquXM36nHwAEFbqgZD1xKZRN21nf2MwNpY1yoQHTrBvRRBpdh2dtCvbALbH99HqFzdSFWErj8CaxHfhZpJLHwz5cTNtHTEuYFtVM9ieyJEtBCd8gagKuk756PS5Ff8NsDKhsm9WURxQiS1aZ", + "public": + "xpub6AaPsA8J6hh5RoZFwfUoBFkvY66KqxhsGF1eJU2tfKLEg6vMvzq4sfVDSnofzrHPAVu4mZWqjYQ39TY8eniLhodTKRnRjaGiqgnuAP9B85L", + "address": + "DdzFFzCqrhswYdDu7ZNS1P3BJopJ6M1V2mptxuXUKKQc3TgDNcBDbc2X4xgFdxsoguLfnUp3y8onJhRWsts2nDc7iJHdViss2NEk6gCX", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RbAa4WXquXM4AJnVSdT5svbKkaPffuy4huu1Fhw66vdkCcWDapV7RgkCN7Hu5zsTCtzwT7YYu7gBmW4tK7AXQkwFTE8mQWM8g2iEXX3BwwrM5YwXzhrMZx4DopNqQczNFqRE7TPXeCiwBxtNyG269r", + "public": + "xpub6AaPsA8J6hh5VNfsgAmdUHCtSc6kNsAF6Jtmz6p9XDUKZ1t7ZhRytHuuFjVUT1iWL6dUEpRFHcrEPKdS2PKgdQj3AFdhxQQENCzjwWxvzxv", + "address": + "DdzFFzCqrht4wdU2vAKzd7GGB1y2rhyHp4ewfXh6LWj3DpkpjuyEJQ8jdiJyMmwDzoe3mNdgL3XdGDDudPwFSscVEVG43aN7yagAH3Ek", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RbAa4WXquXM4gtLJMNE7yQBMBpqnc34ane6G72U9dcRNUbKSmcmWBJ4jKfrswM5Wz2vaRF1RmUjsjMDj3iQfibC727u12tnE9GJT85TFi6Azq14AB4ZudsZjppibsJhLCshPrUvmofynRgkp7muTKh", + "public": + "xpub6AaPsA8J6hh5X9cArbjHp8paSKGmXy7WaEbpedhPRxSChuCBUTwZiEYxMh7H6Cf4Y7iNht94AmrywAtyvBcsRTdGLFBrdviSKWWBxjVWHdS", + "address": + "DdzFFzCqrhspNbavvTZ2wwhP6QiQmm8DygR7ptezoLynkTsSkXz5yYzNJRRebECkPyCqka2gGzCbLyiwfS6Z4W9xuLZZFj2DASxCCxcC", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "f340ecbb7823a43f746a0902ac07dae6c9851d28af2939bab05813a147d526a9", + "private": + "80cffcb62747adc43d6f0e75b57db981591fd832fc25176900eeb44a25a82153653858cf022cee7f11b5147ab49602c2d93269169db8f7e97a5ab6847ed9c53e", + "public": + "00c9123a648cce0bff7c156d0b35c42aee69c157ed595cae6c0a326d1fa87f1c62", + "chaincode": + "2089ce36de8e53c846cfea4140a01da5fd8be25c06532a1213c8ba7067f2073f", + "hd_key": + "950163bbc5bc5cb6767222a8682b166eaf9930e5efed358a5bd457a5cf2a293a", + "child": [ + { + "private": + "xprv3RaogguvnEj76puqbeKR6VC1rtbMrgM3A4yHqJ3Zq1r8hTFErXH6DtbuGeJCdoha9iWXTQeixMzWAKVYbDUkVZo7MQQDFkauehSCkXXrMdtQkVdKbLd6p1fvCuTAJf9PZ9CT9DLaiYAM8FdwHFnzy7h", + "public": + "xpub6AZBZKEwYoDk2Gn2qnQMkMvUFgKmAEsoUdqBAGvy1Rqxm6g4axPrP6xN89G3q57nqJbojM9UhCrkdJjHYYG94L7ansmRJfa7h25Do9Yo9Tq", + "address": + "DdzFFzCqrhsxBKsA1NQQDRgBU4ZYu4fWADPKGZN1xryCAqjc4DCmouzpxiji37hkziKkZSeTqkJTwQhhmSuBUavBEo4tNzaCiiWxymV2", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RaogguvnEj77HnEa9CMzCG8oXhcJQCw63C9s1i6fyD1VLwuPZUMGrzpvW7BoJmvArnnpByUnYp6H8PAUG9Kp7CfJi8bEmmzFs1P3CnkHpTdj3hdnctYPT2S3cJzZp4nxLR4T3N2LAPtuBqeChHG76Z", + "public": + "xpub6AZBZKEwYoDk3qE4X6EuJ26ikzrnBiBtiotdo6NWgp3HAiv68kQT6HYA6MKds3nQWVDrzTzN2kpDTH1pepoTwSbBssZvZWfF96sDurT9ra9", + "address": + "DdzFFzCqrhshmftHZVFHmv4VAguXqP84ec5w8VzrgwveBupxvWb6U9bQdZjEJbVcnCHnU3c2paBnpB2W5BgQHuoRnoMUrm1YMHp2J6Py", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RaogguvnEj788hPtkcjxt6M9haTk2RkfQxhY7p6Q5uWuu6zRmYwSUsFb4owW52L73PAGZ5zkt4RuNNvh4eGL2H4fj2UFgpJfmc8F9JwSunXf9JQNnwVTBrGsf35wRZTjR7ETFkLNbTdBpGqe8uAcXx", + "public": + "xpub6AZBZKEwYoDk6fto7FkMRZgfnKyreWE95X1PBokEyt6aCqMZ7YJZww8frUakx5SrVnLB5d2eMmfhG5vSShFbhE5d31kaMVxpbrq2DxyugZq", + "address": + "DdzFFzCqrht4Artj5x5VnmhhEnTHGS7TprcuAnQab6WDrsUzcY6hiFRm1oa1iggsmeKn8uSkfrccuLb3pBEfs2sRRQk11icL8s2pdXSd", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RpWriyjX219uVnPGWi76NBFAH6z95AAhmJHYfwAPrNEcFvfFU9Ks4eTvYpXdYsgPtFYs586cdWW146K1m1nwnDt579D43Hb79F88hUt2ZpTjryUuj3HQLg8pgb3mGZnjT5JweBomjsvntcCmGDCkKP", + "public": + "xpub6BMLMCF6U3CkTjGdZtPwdd8pLS8MxaSQMCQkZeDjVzLx5vsFjB8GayBctQPBwebYWWW4pAiQm7fok75uXKHhPF5VyxYGHUhwM43mTgGLmMu", + "address": + "DdzFFzCqrhsfGkBsktnxcuyjWAvhA4QGf3bRNkrFuzE4ZUD4ryWjBCVvm3R37BLyfP2mmLZURfXGP6H1QCWeWGqxSEQjX2nNCakDWuSy", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RpWriyjX219umV622Ew2ufMihYq1A6JgkSSUr88JkKppLo17J3chpt6v1a9zLokuL9F7g9XrcvY2kvDR7iJRWC63ggQ67XNsKpfm7fvbnTDBkBNWhn3ZDKViVPfUcvdZ66rJsCFmxShrt3CQ86UWxF", + "public": + "xpub6BMLMCF6U3CkUe8L4cM5YwkMbp7QY58xA26k5J6g1yAbveFhgzubKmaKj1EY7cYMdZd7HLV2HusdyNyTqjH3yoZLW1h7LrKjBS8JN6wxuMb", + "address": + "DdzFFzCqrhsykztkLFvpfU5HD9owuBJjgYyvAjByLM9kxwfmKQndJnCKHXzYzHW66DB6PywGGUqdApRz6cF8AkH3qxWPNjeb4nKxSKg7", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RpWriyjX219vao93fiTs2Eu4Qs2osXR8sVvP1D3637mmx4UZtDb9G4GogB2muuorgfAxrEzt8tJoXq57CyqhfkrBfok9KiyKKwzEwqBps569n9vHVxYt4KrTWtnP8FuVu8wGrzN3e4fCCJpD6AGRAH", + "public": + "xpub6BMLMCF6U3CkXPPdeUxC48UnPJbH6C28nkYSYdQ5HECg5tmnQmQquJbQt2znhB9rFwG5FPPBogMwEmQGYysKozULy4ihWhpMwmx9psNYcDm", + "address": + "DdzFFzCqrhsq5hWoEYsjSEE7sirKFhnvG4kG8k82buoynrRBBcoH4hF662fooGSu6TLWKAsYXjAnD7R4WuGZvy1UYvuu6SsqRBaTiejP", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RbAa4WXquXM36nHwAEFbqgZD1xKZRN21nf2MwNpY1yoQHTrBvRRBpdh2dtCvbALbH99HqFzdSFWErj8CaxHfhZpJLHwz5cTNtHTEuYFtVM9ieyJEtBCd8gagKuk756PS5Ff8NsDKhsm9WURxQiS1aZ", + "public": + "xpub6AaPsA8J6hh5RoZFwfUoBFkvY66KqxhsGF1eJU2tfKLEg6vMvzq4sfVDSnofzrHPAVu4mZWqjYQ39TY8eniLhodTKRnRjaGiqgnuAP9B85L", + "address": + "DdzFFzCqrhswYdDu7ZNS1P3BJopJ6M1V2mptxuXUKKQc3TgDNcBDbc2X4xgFdxsoguLfnUp3y8onJhRWsts2nDc7iJHdViss2NEk6gCX", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RbAa4WXquXM4AJnVSdT5svbKkaPffuy4huu1Fhw66vdkCcWDapV7RgkCN7Hu5zsTCtzwT7YYu7gBmW4tK7AXQkwFTE8mQWM8g2iEXX3BwwrM5YwXzhrMZx4DopNqQczNFqRE7TPXeCiwBxtNyG269r", + "public": + "xpub6AaPsA8J6hh5VNfsgAmdUHCtSc6kNsAF6Jtmz6p9XDUKZ1t7ZhRytHuuFjVUT1iWL6dUEpRFHcrEPKdS2PKgdQj3AFdhxQQENCzjwWxvzxv", + "address": + "DdzFFzCqrht4wdU2vAKzd7GGB1y2rhyHp4ewfXh6LWj3DpkpjuyEJQ8jdiJyMmwDzoe3mNdgL3XdGDDudPwFSscVEVG43aN7yagAH3Ek", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RbAa4WXquXM4gtLJMNE7yQBMBpqnc34ane6G72U9dcRNUbKSmcmWBJ4jKfrswM5Wz2vaRF1RmUjsjMDj3iQfibC727u12tnE9GJT85TFi6Azq14AB4ZudsZjppibsJhLCshPrUvmofynRgkp7muTKh", + "public": + "xpub6AaPsA8J6hh5X9cArbjHp8paSKGmXy7WaEbpedhPRxSChuCBUTwZiEYxMh7H6Cf4Y7iNht94AmrywAtyvBcsRTdGLFBrdviSKWWBxjVWHdS", + "address": + "DdzFFzCqrhspNbavvTZ2wwhP6QiQmm8DygR7ptezoLynkTsSkXz5yYzNJRRebECkPyCqka2gGzCbLyiwfS6Z4W9xuLZZFj2DASxCCxcC", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "90f4f9f2b9bcfb096e9a8ae89239463a87a1eddf378e504820ffe9f3aff8c59b", + "private": + "d07d001b07bc9924856f1c8676737fc28430b3d98ad36a12991d35b8d49790427dc5d5f74ba81d8acaaeb122d2750f0f913c5db929e8d68f64fe513afd3bc7e1", + "public": + "00c13d8f36996ce2316444098be8f52b57e5cf1a2eea99d263156f04072531abac", + "chaincode": + "b134d242ecb04c1aa820b4ce500c95ef946460406fb1fcfae7b823e4df851624", + "hd_key": + "c605550646c93323fdaaa77f6a184ab5ea7bdcf54877d386c6aa10d80c7f7e23", + "child": [ + { + "private": + "xprv3RSiegUH5fNUH7yiPJkNjobpsFsUiMmtyXK21safAHMpXx1hU4boFBPsVRSextfAWjHcfjwJV7wg4fFitifpo3kjA32yhDvVu56qYG6YqCKh8KX6nv3znqR6aUUyhkTqAbz6tbprSPKmn6JmcbQmyHu", + "public": + "xpub6A5xeTmjvZckuRXR9YsQASuNfqJEUDJKKmeYedwqz7MvAyWH7r7oj7nfStAdwLGkjXWgWAQcQMKZSfrpq4QjQMfXTfi4yUdFngziadqviiz", + "address": + "DdzFFzCqrhsoztHMrTJWrDpevA9od2oPPaJ4qbVomzHwyBzW3HMkA3RgHbfdM8EDR1vHQnQkznxHdWL3MQV8xRomjShQFov4cKTFvb2P", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RSiegUH5fNUHCFymGQfSiUBwoXHtsVY7iQ9sH79iKpH9GpReNji5GPAMpL377y3zdpX6uNAET6JsUjQu4veR7pTmMVHCKaWnpBsJ5KfPe9PMTWVdnG7SqQnR86BPpLNsq4SmGDXtM5fTjD9hqaPSqE", + "public": + "xpub6A5xeTmjvZckufw9n3t5RfgJtsytuPeBxQY2vk5uS9HVkWF6Ki7XZP1rSuyEz95ijB4WXPSEW8swXjs6pAWJrvrSPSTtgXJsgi9sMHjy2gg", + "address": + "DdzFFzCqrhszCH9N7XfMsmp7YPEwoVp2vEaSC3vMzXRQR2jNm6HzeT65iKeRLnP9SNJSLohMccnD6kZ5SHKMGgKpFbSdEPEfV8VoZncM", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RSiegUH5fNUJK1Gt1Cvn2noZqu2Bj6nnyyDfZUtrgt9sifiM9bM7SgaZg3f75vZYQdBTMz9ndoWJvhwovitRxcPvzLdenJsktvBba6q12hjcCFz7rC4idhmKrRATfgWCmHmadL5La2WPyHb6Xju8Um", + "public": + "xpub6A5xeTmjvZckyRtbtX7izGy25orptzy8GUykq7u9kngU7g7Acqnucz13sjj7PUKdoUfVTrvr9y6o1KtkGpMF5pBw69uSgT4NfSi3UhcdRXq", + "address": + "DdzFFzCqrhsshC7DKie55zLHp1DXzxP24pRt6aDAFNzqKDhYd2GUJLuLn6w1sXucg79SRmNZ4UjXnRSK8wgQbepBGB1QUXTWfzcFA2q3", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RNSjd514wR25VwDmB5zeJFDv89aNUsGpbr6YLvgMH74Mhv6dxJzqJaTKGrfUBmb2Sgeii1rjVGcfnWUkMgMh4QnLo57AduJEUc8wBNFYcMw2p8ntXLksHaD4SXZmWuCLGynPdzBY1HveXUNw3YCFNX", + "public": + "xpub69qa6Eeq6QqBZYJofcbCURJhEG641PhH2Yd1pP7UYa2EBcCEHZZepuGGce7kaC4Ao9drPhgecaKsT6mHd8xN5VPWc31Rvjm6J8ocMqoudkB", + "address": + "DdzFFzCqrht2Bpc6xzpUPsfgJd2k6N2FddbmggsJZJTksNPRGGDQSVWEX3pQKy9wwjEpRsc9a8hmaxwWM5ouSRV3BCnygUPAeEFqt2Y9", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RNSjd514wR26Ry1mN899xuqJdCz91Crr5gNm6ejMsWj2URL46k9icfyNmgGUdKzA5sXExzgAnP9jNnXJeiD6F3Vihn7JBCsT7m57du7Wi9MyrJeJrtQkUN7iYxjAGukoHJcZo2pqBmAqJP4BvPeoZL", + "public": + "xpub69qa6Eeq6QqBcgC6NxA7P8ihbsDvPeYx4PYgTwHchdaDJTz2M8FvwRLhyv8n7Wji97FLTL5ATLJHdCrZzxNanDSySGwb4QtJeXPrJX6wsGs", + "address": + "DdzFFzCqrht6p9bS9hYrn22jfhq8KP7JpnVTChai8etwisyvjSsTnKDkgsE2VE4sTYFEnwvrierm12XRgrZhkfT88uKs84XArLtvxysY", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RNSjd514wR26bc1nCvMLJwXz9Sc7dEdNAUdbs8hSEgHqfhhpPiq9JAhKKnuTSev5YNj1ETGsvfEj5WQJNM91wV4MPRv31oiqC9ZebdW8HL6J8UMPDRkewqGS4GKhS2K23rTkT5amEPhaLP79SK3tnj", + "public": + "xpub69qa6Eeq6QqBdEdrcHSAvmJXnKDe7nsTVjLQEwnB4N5juhsRHhNGkQ2oneFcTNhBSudTGKA9m5X7PqeWa43L8ZPfUSihyqNQ7fp7Ht5an5A", + "address": + "DdzFFzCqrhtAfi9R4uw6PFEdEmbTNfhVg7xHXT8BqMxtcdHtaGjaPApQXneV5dHS9tB3VqojvUJmetDzGoV5y3vGY1W2CT8AA7Jeg8sZ", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RZneFdGi19xujb1cFUVRFTjimrSbZJ5c6G2FtQG1eaamzgv6xgVksnZ1BvUArzPwVhxoupjA8tN4wbAWdRTVMdp9bqNvhN7byJG1ss9TF5kYa3si1WQdkWMtktUXptnKhiXmdvuGSLqH8XbUvojnTV", + "public": + "xpub6AVkodrPj7sTwTf8FCaCDkaCUk5fty9tmx6NFAcRb4wQUFFAcHCGJNEPJvjFfhi8raQkZ9XqD77xwyKwm9vrf1UowuqP6h4WPC8XRX2zeZ4", + "address": + "DdzFFzCqrht2MPshqHpdvrtT8m2XvBmBFSLLnhcwS2GbazNVaK66uB5iKwFBC4bh7MrxTx5o1r8e5qQCY93oFQadsyym3mdndZZx6SM9", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RZneFdGi19xvVdkHWyS1Ti3LT2HsRF5BnjQX34M7cMU3dnadgWgtv1s9LnQrWHXBbtqq9wN1u4Rr9B9sL8wkzDnphET4vRSQSfLf3pnCKrNjZYkqgBUi1mHEbLzr641CjUUFYvszdVZdTPEiagCnem", + "public": + "xpub6AVkodrPj7sTz1w8fvyng78WitCXFFFDsW83yAGwcvH2rBVhJBBkkY7LrMX1YQqKiwrso7q9fbFYHpakNhcWLHgKvjUfE8Bfd9modt2JtFA", + "address": + "DdzFFzCqrhsqHPdvX5Xr5i7E3jcSL2CKPBi4YMPQUihGSFpwYh3k8xmhfDzDGiQaMNhpKoMVyjuSuFnxBa7pZxjp7LWBaydLZ3scPFfY", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RZneFdGi19xvjhFkgmY4yy2kYK6Du6fTRSjqVvk4PGS6GeNZHbthbaiKw7MwYdbKKpg7RAq5s1SZnTwbwZm3zSPCUdUWWvMUKER3hu9Uv2euwHvjBUaxu4APY2ujMfQvAcjfBxeyXhBMfMfd1aHF35", + "public": + "xpub6AVkodrPj7sTzqGNsmfs9aq92QpeKdzqUhFE8o6BCzrdGRkJvEyMJfnn1oRNFGkZtt86FwKe8x5mdDXySj4M8GtVabGrAyjZvR7KhmdaMLx", + "address": + "DdzFFzCqrhtA1YSMH9WMMp9usKKPXt1HB83E5UVKStpNQkT47UTC4DCEk1F3d8HTHp2apNwZceUHxMvJizaAqQfjCzWcVAcYQRn9dMyu", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "90f4f9f2b9bcfb096e9a8ae89239463a87a1eddf378e504820ffe9f3aff8c59b", + "private": + "d07d001b07bc9924856f1c8676737fc28430b3d98ad36a12991d35b8d49790427dc5d5f74ba81d8acaaeb122d2750f0f913c5db929e8d68f64fe513afd3bc7e1", + "public": + "00c13d8f36996ce2316444098be8f52b57e5cf1a2eea99d263156f04072531abac", + "chaincode": + "b134d242ecb04c1aa820b4ce500c95ef946460406fb1fcfae7b823e4df851624", + "hd_key": + "c605550646c93323fdaaa77f6a184ab5ea7bdcf54877d386c6aa10d80c7f7e23", + "child": [ + { + "private": + "xprv3RSiegUH5fNUH7yiPJkNjobpsFsUiMmtyXK21safAHMpXx1hU4boFBPsVRSextfAWjHcfjwJV7wg4fFitifpo3kjA32yhDvVu56qYG6YqCKh8KX6nv3znqR6aUUyhkTqAbz6tbprSPKmn6JmcbQmyHu", + "public": + "xpub6A5xeTmjvZckuRXR9YsQASuNfqJEUDJKKmeYedwqz7MvAyWH7r7oj7nfStAdwLGkjXWgWAQcQMKZSfrpq4QjQMfXTfi4yUdFngziadqviiz", + "address": + "DdzFFzCqrhsoztHMrTJWrDpevA9od2oPPaJ4qbVomzHwyBzW3HMkA3RgHbfdM8EDR1vHQnQkznxHdWL3MQV8xRomjShQFov4cKTFvb2P", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RSiegUH5fNUHCFymGQfSiUBwoXHtsVY7iQ9sH79iKpH9GpReNji5GPAMpL377y3zdpX6uNAET6JsUjQu4veR7pTmMVHCKaWnpBsJ5KfPe9PMTWVdnG7SqQnR86BPpLNsq4SmGDXtM5fTjD9hqaPSqE", + "public": + "xpub6A5xeTmjvZckufw9n3t5RfgJtsytuPeBxQY2vk5uS9HVkWF6Ki7XZP1rSuyEz95ijB4WXPSEW8swXjs6pAWJrvrSPSTtgXJsgi9sMHjy2gg", + "address": + "DdzFFzCqrhszCH9N7XfMsmp7YPEwoVp2vEaSC3vMzXRQR2jNm6HzeT65iKeRLnP9SNJSLohMccnD6kZ5SHKMGgKpFbSdEPEfV8VoZncM", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RSiegUH5fNUJK1Gt1Cvn2noZqu2Bj6nnyyDfZUtrgt9sifiM9bM7SgaZg3f75vZYQdBTMz9ndoWJvhwovitRxcPvzLdenJsktvBba6q12hjcCFz7rC4idhmKrRATfgWCmHmadL5La2WPyHb6Xju8Um", + "public": + "xpub6A5xeTmjvZckyRtbtX7izGy25orptzy8GUykq7u9kngU7g7Acqnucz13sjj7PUKdoUfVTrvr9y6o1KtkGpMF5pBw69uSgT4NfSi3UhcdRXq", + "address": + "DdzFFzCqrhsshC7DKie55zLHp1DXzxP24pRt6aDAFNzqKDhYd2GUJLuLn6w1sXucg79SRmNZ4UjXnRSK8wgQbepBGB1QUXTWfzcFA2q3", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RNSjd514wR25VwDmB5zeJFDv89aNUsGpbr6YLvgMH74Mhv6dxJzqJaTKGrfUBmb2Sgeii1rjVGcfnWUkMgMh4QnLo57AduJEUc8wBNFYcMw2p8ntXLksHaD4SXZmWuCLGynPdzBY1HveXUNw3YCFNX", + "public": + "xpub69qa6Eeq6QqBZYJofcbCURJhEG641PhH2Yd1pP7UYa2EBcCEHZZepuGGce7kaC4Ao9drPhgecaKsT6mHd8xN5VPWc31Rvjm6J8ocMqoudkB", + "address": + "DdzFFzCqrht2Bpc6xzpUPsfgJd2k6N2FddbmggsJZJTksNPRGGDQSVWEX3pQKy9wwjEpRsc9a8hmaxwWM5ouSRV3BCnygUPAeEFqt2Y9", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RNSjd514wR26Ry1mN899xuqJdCz91Crr5gNm6ejMsWj2URL46k9icfyNmgGUdKzA5sXExzgAnP9jNnXJeiD6F3Vihn7JBCsT7m57du7Wi9MyrJeJrtQkUN7iYxjAGukoHJcZo2pqBmAqJP4BvPeoZL", + "public": + "xpub69qa6Eeq6QqBcgC6NxA7P8ihbsDvPeYx4PYgTwHchdaDJTz2M8FvwRLhyv8n7Wji97FLTL5ATLJHdCrZzxNanDSySGwb4QtJeXPrJX6wsGs", + "address": + "DdzFFzCqrht6p9bS9hYrn22jfhq8KP7JpnVTChai8etwisyvjSsTnKDkgsE2VE4sTYFEnwvrierm12XRgrZhkfT88uKs84XArLtvxysY", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RNSjd514wR26bc1nCvMLJwXz9Sc7dEdNAUdbs8hSEgHqfhhpPiq9JAhKKnuTSev5YNj1ETGsvfEj5WQJNM91wV4MPRv31oiqC9ZebdW8HL6J8UMPDRkewqGS4GKhS2K23rTkT5amEPhaLP79SK3tnj", + "public": + "xpub69qa6Eeq6QqBdEdrcHSAvmJXnKDe7nsTVjLQEwnB4N5juhsRHhNGkQ2oneFcTNhBSudTGKA9m5X7PqeWa43L8ZPfUSihyqNQ7fp7Ht5an5A", + "address": + "DdzFFzCqrhtAfi9R4uw6PFEdEmbTNfhVg7xHXT8BqMxtcdHtaGjaPApQXneV5dHS9tB3VqojvUJmetDzGoV5y3vGY1W2CT8AA7Jeg8sZ", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RZneFdGi19xujb1cFUVRFTjimrSbZJ5c6G2FtQG1eaamzgv6xgVksnZ1BvUArzPwVhxoupjA8tN4wbAWdRTVMdp9bqNvhN7byJG1ss9TF5kYa3si1WQdkWMtktUXptnKhiXmdvuGSLqH8XbUvojnTV", + "public": + "xpub6AVkodrPj7sTwTf8FCaCDkaCUk5fty9tmx6NFAcRb4wQUFFAcHCGJNEPJvjFfhi8raQkZ9XqD77xwyKwm9vrf1UowuqP6h4WPC8XRX2zeZ4", + "address": + "DdzFFzCqrht2MPshqHpdvrtT8m2XvBmBFSLLnhcwS2GbazNVaK66uB5iKwFBC4bh7MrxTx5o1r8e5qQCY93oFQadsyym3mdndZZx6SM9", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RZneFdGi19xvVdkHWyS1Ti3LT2HsRF5BnjQX34M7cMU3dnadgWgtv1s9LnQrWHXBbtqq9wN1u4Rr9B9sL8wkzDnphET4vRSQSfLf3pnCKrNjZYkqgBUi1mHEbLzr641CjUUFYvszdVZdTPEiagCnem", + "public": + "xpub6AVkodrPj7sTz1w8fvyng78WitCXFFFDsW83yAGwcvH2rBVhJBBkkY7LrMX1YQqKiwrso7q9fbFYHpakNhcWLHgKvjUfE8Bfd9modt2JtFA", + "address": + "DdzFFzCqrhsqHPdvX5Xr5i7E3jcSL2CKPBi4YMPQUihGSFpwYh3k8xmhfDzDGiQaMNhpKoMVyjuSuFnxBa7pZxjp7LWBaydLZ3scPFfY", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RZneFdGi19xvjhFkgmY4yy2kYK6Du6fTRSjqVvk4PGS6GeNZHbthbaiKw7MwYdbKKpg7RAq5s1SZnTwbwZm3zSPCUdUWWvMUKER3hu9Uv2euwHvjBUaxu4APY2ujMfQvAcjfBxeyXhBMfMfd1aHF35", + "public": + "xpub6AVkodrPj7sTzqGNsmfs9aq92QpeKdzqUhFE8o6BCzrdGRkJvEyMJfnn1oRNFGkZtt86FwKe8x5mdDXySj4M8GtVabGrAyjZvR7KhmdaMLx", + "address": + "DdzFFzCqrhtA1YSMH9WMMp9usKKPXt1HB83E5UVKStpNQkT47UTC4DCEk1F3d8HTHp2apNwZceUHxMvJizaAqQfjCzWcVAcYQRn9dMyu", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "90f4f9f2b9bcfb096e9a8ae89239463a87a1eddf378e504820ffe9f3aff8c59b", + "private": + "d07d001b07bc9924856f1c8676737fc28430b3d98ad36a12991d35b8d49790427dc5d5f74ba81d8acaaeb122d2750f0f913c5db929e8d68f64fe513afd3bc7e1", + "public": + "00c13d8f36996ce2316444098be8f52b57e5cf1a2eea99d263156f04072531abac", + "chaincode": + "b134d242ecb04c1aa820b4ce500c95ef946460406fb1fcfae7b823e4df851624", + "hd_key": + "c605550646c93323fdaaa77f6a184ab5ea7bdcf54877d386c6aa10d80c7f7e23", + "child": [ + { + "private": + "xprv3RSiegUH5fNUH7yiPJkNjobpsFsUiMmtyXK21safAHMpXx1hU4boFBPsVRSextfAWjHcfjwJV7wg4fFitifpo3kjA32yhDvVu56qYG6YqCKh8KX6nv3znqR6aUUyhkTqAbz6tbprSPKmn6JmcbQmyHu", + "public": + "xpub6A5xeTmjvZckuRXR9YsQASuNfqJEUDJKKmeYedwqz7MvAyWH7r7oj7nfStAdwLGkjXWgWAQcQMKZSfrpq4QjQMfXTfi4yUdFngziadqviiz", + "address": + "DdzFFzCqrhsoztHMrTJWrDpevA9od2oPPaJ4qbVomzHwyBzW3HMkA3RgHbfdM8EDR1vHQnQkznxHdWL3MQV8xRomjShQFov4cKTFvb2P", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RSiegUH5fNUHCFymGQfSiUBwoXHtsVY7iQ9sH79iKpH9GpReNji5GPAMpL377y3zdpX6uNAET6JsUjQu4veR7pTmMVHCKaWnpBsJ5KfPe9PMTWVdnG7SqQnR86BPpLNsq4SmGDXtM5fTjD9hqaPSqE", + "public": + "xpub6A5xeTmjvZckufw9n3t5RfgJtsytuPeBxQY2vk5uS9HVkWF6Ki7XZP1rSuyEz95ijB4WXPSEW8swXjs6pAWJrvrSPSTtgXJsgi9sMHjy2gg", + "address": + "DdzFFzCqrhszCH9N7XfMsmp7YPEwoVp2vEaSC3vMzXRQR2jNm6HzeT65iKeRLnP9SNJSLohMccnD6kZ5SHKMGgKpFbSdEPEfV8VoZncM", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RSiegUH5fNUJK1Gt1Cvn2noZqu2Bj6nnyyDfZUtrgt9sifiM9bM7SgaZg3f75vZYQdBTMz9ndoWJvhwovitRxcPvzLdenJsktvBba6q12hjcCFz7rC4idhmKrRATfgWCmHmadL5La2WPyHb6Xju8Um", + "public": + "xpub6A5xeTmjvZckyRtbtX7izGy25orptzy8GUykq7u9kngU7g7Acqnucz13sjj7PUKdoUfVTrvr9y6o1KtkGpMF5pBw69uSgT4NfSi3UhcdRXq", + "address": + "DdzFFzCqrhsshC7DKie55zLHp1DXzxP24pRt6aDAFNzqKDhYd2GUJLuLn6w1sXucg79SRmNZ4UjXnRSK8wgQbepBGB1QUXTWfzcFA2q3", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RNSjd514wR25VwDmB5zeJFDv89aNUsGpbr6YLvgMH74Mhv6dxJzqJaTKGrfUBmb2Sgeii1rjVGcfnWUkMgMh4QnLo57AduJEUc8wBNFYcMw2p8ntXLksHaD4SXZmWuCLGynPdzBY1HveXUNw3YCFNX", + "public": + "xpub69qa6Eeq6QqBZYJofcbCURJhEG641PhH2Yd1pP7UYa2EBcCEHZZepuGGce7kaC4Ao9drPhgecaKsT6mHd8xN5VPWc31Rvjm6J8ocMqoudkB", + "address": + "DdzFFzCqrht2Bpc6xzpUPsfgJd2k6N2FddbmggsJZJTksNPRGGDQSVWEX3pQKy9wwjEpRsc9a8hmaxwWM5ouSRV3BCnygUPAeEFqt2Y9", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RNSjd514wR26Ry1mN899xuqJdCz91Crr5gNm6ejMsWj2URL46k9icfyNmgGUdKzA5sXExzgAnP9jNnXJeiD6F3Vihn7JBCsT7m57du7Wi9MyrJeJrtQkUN7iYxjAGukoHJcZo2pqBmAqJP4BvPeoZL", + "public": + "xpub69qa6Eeq6QqBcgC6NxA7P8ihbsDvPeYx4PYgTwHchdaDJTz2M8FvwRLhyv8n7Wji97FLTL5ATLJHdCrZzxNanDSySGwb4QtJeXPrJX6wsGs", + "address": + "DdzFFzCqrht6p9bS9hYrn22jfhq8KP7JpnVTChai8etwisyvjSsTnKDkgsE2VE4sTYFEnwvrierm12XRgrZhkfT88uKs84XArLtvxysY", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RNSjd514wR26bc1nCvMLJwXz9Sc7dEdNAUdbs8hSEgHqfhhpPiq9JAhKKnuTSev5YNj1ETGsvfEj5WQJNM91wV4MPRv31oiqC9ZebdW8HL6J8UMPDRkewqGS4GKhS2K23rTkT5amEPhaLP79SK3tnj", + "public": + "xpub69qa6Eeq6QqBdEdrcHSAvmJXnKDe7nsTVjLQEwnB4N5juhsRHhNGkQ2oneFcTNhBSudTGKA9m5X7PqeWa43L8ZPfUSihyqNQ7fp7Ht5an5A", + "address": + "DdzFFzCqrhtAfi9R4uw6PFEdEmbTNfhVg7xHXT8BqMxtcdHtaGjaPApQXneV5dHS9tB3VqojvUJmetDzGoV5y3vGY1W2CT8AA7Jeg8sZ", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RZneFdGi19xujb1cFUVRFTjimrSbZJ5c6G2FtQG1eaamzgv6xgVksnZ1BvUArzPwVhxoupjA8tN4wbAWdRTVMdp9bqNvhN7byJG1ss9TF5kYa3si1WQdkWMtktUXptnKhiXmdvuGSLqH8XbUvojnTV", + "public": + "xpub6AVkodrPj7sTwTf8FCaCDkaCUk5fty9tmx6NFAcRb4wQUFFAcHCGJNEPJvjFfhi8raQkZ9XqD77xwyKwm9vrf1UowuqP6h4WPC8XRX2zeZ4", + "address": + "DdzFFzCqrht2MPshqHpdvrtT8m2XvBmBFSLLnhcwS2GbazNVaK66uB5iKwFBC4bh7MrxTx5o1r8e5qQCY93oFQadsyym3mdndZZx6SM9", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RZneFdGi19xvVdkHWyS1Ti3LT2HsRF5BnjQX34M7cMU3dnadgWgtv1s9LnQrWHXBbtqq9wN1u4Rr9B9sL8wkzDnphET4vRSQSfLf3pnCKrNjZYkqgBUi1mHEbLzr641CjUUFYvszdVZdTPEiagCnem", + "public": + "xpub6AVkodrPj7sTz1w8fvyng78WitCXFFFDsW83yAGwcvH2rBVhJBBkkY7LrMX1YQqKiwrso7q9fbFYHpakNhcWLHgKvjUfE8Bfd9modt2JtFA", + "address": + "DdzFFzCqrhsqHPdvX5Xr5i7E3jcSL2CKPBi4YMPQUihGSFpwYh3k8xmhfDzDGiQaMNhpKoMVyjuSuFnxBa7pZxjp7LWBaydLZ3scPFfY", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RZneFdGi19xvjhFkgmY4yy2kYK6Du6fTRSjqVvk4PGS6GeNZHbthbaiKw7MwYdbKKpg7RAq5s1SZnTwbwZm3zSPCUdUWWvMUKER3hu9Uv2euwHvjBUaxu4APY2ujMfQvAcjfBxeyXhBMfMfd1aHF35", + "public": + "xpub6AVkodrPj7sTzqGNsmfs9aq92QpeKdzqUhFE8o6BCzrdGRkJvEyMJfnn1oRNFGkZtt86FwKe8x5mdDXySj4M8GtVabGrAyjZvR7KhmdaMLx", + "address": + "DdzFFzCqrhtA1YSMH9WMMp9usKKPXt1HB83E5UVKStpNQkT47UTC4DCEk1F3d8HTHp2apNwZceUHxMvJizaAqQfjCzWcVAcYQRn9dMyu", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "e9aebe3b37c2070a307d129f36f8d1f4638e444f826927c67a03f912e8f45c1a", + "private": + "483ffe8379cebafd982f297073bebd27c8f4a32697622832dec22e04c596e9569e5816733a0080f299fb058bec76d20562025344b7042645c3e6aa36ef152c9e", + "public": + "00abbfbd4a77bbe964c129cdde3b495de6e99fa04f862ab723d395aeb128ddaf89", + "chaincode": + "c1cd79729507c71ebc469b3cf949444ade2fd36bfa753bad0c423b0e2cd5087d", + "hd_key": + "dae12ec5eecbfd8a7cc1276ca8f93b2655b0697ac8ac44d17a9736c2ded6fcab", + "child": [ + { + "private": + "xprv3RuckutfGiHCACJpGg875KmisVnXmx6QKv7QFEw1S2cXeFW2aV9x8v4zxXGdBEAKWbGFGpmvht5r6WHLbU26oWzdFZCctQshzAnbp3ghAtea9cibYcUxjnFNnfZFjRRPFne1pFWAvyyohGD7VjF1TJv", + "public": + "xpub6BeWSGcEg55xEEGKVJtDNJorh8k8ce4ua5LbBjE3sNPTBpHfw4BS4dXhVs4v74ZJc2sgp61xig4i841riFCRd5hdR3YpsLg4Xb8ZGELAt3Q", + "address": + "DdzFFzCqrht9zU5vkdeJAqVYupzLCzNq7Z1nGP4FDBbMP1DS5hXA4ywPb3FCSHgMUXmsHhUPgAUuZqTCTapE1SpgBRWZJxzPG9BVuEeb", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RuckutfGiHCAWT1EM1NZFp4nfhWDG76KvobAjaiEHiKS8VuEQzzfFZWNUo2b491rbR8DQuZSd3WKkeAnq73JQHV3DJpjHL9RLocHPsed8omDWTm21PjT2aeqKUdyP2dxAjwq5eTuGQodiF3bx97eHo", + "public": + "xpub6BeWSGcEg55xFHLJYkyeXJKLBbFnAAQHRY8DPgzKx5bqojxCNQ7rzPbRBc3bvSM99VbpZedGA9p5jMGESr4JLoJyYS5PPRYFPpob4gKQvxC", + "address": + "DdzFFzCqrhszbkgPigGGNFaSfDKDAP1gQXaL6wQTQKFu7sky7DFtQWYEYC5F3NGuVucSubSD98kYpeHce1rhhvuCfZmUZyprYeCjSH58", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RuckutfGiHCBcGGfxBXhuXCmz6fJAxDX1Z4WGqfE5h8vkJo1yDwDn9EvJUALdFeGedgzYLp9DaZ8vrKgrPX7KJNKds6BK3hnHMH1yuFCZKA98CGjg1FWKiwY8NnbKJPgcmP4WRtRq7ZAmjzvp67g4t", + "public": + "xpub6BeWSGcEg55xJz9smeaFbVqkNfVzuQk5hWtuCYU2fMgVC6ZzSvBzGYiAifNM5ZmHXuTi7hFVvfuQBVQXd5hVNvaXrqxV1qouwdyFdGcx1AX", + "address": + "DdzFFzCqrhtBsNsaiQDSzhPDdP8UL33Uj5fkLtPpSpEKqosLFfmEzYtLVNxLnizMNSk2CHtKFNrNCUuRD5r4TqGxHM9DHv6spJUjdzhw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RXWcqXoZMjJSjujrZ43i3dYN4SfXNBpALrdD7wv6v33jR8EqVdLtYkTrqkBqiC4b4PNxRwm2kp51CpSDhEDrFJkkfDgzJ6kzitTJevQSCAnbVgPmaSiK9V9UE46FCcqHPdbNcjby5eAaHK8J4dXXaz", + "public": + "xpub6AN6NUgYdrpuDss6xqEqZY3pDhBFd9PgvsUph16buZovsAqfkg2dUXVnym6rNaWGUMCGbJBnckiJZNd2TN6kfZcuhQMUmXpKDwfRAqwxKDH", + "address": + "DdzFFzCqrhshkKFYcou7fsaYsBJtv39Zt1VFudrNvsw2F5iNZoRjf5vNY95wAPaUAZ84sA7RBJqNzB3Dd9BNyMkfvA6pUzrQj29mS8DT", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RXWcqXoZMjJTvnXUwv4MX6jzBBMabYreDVAtuj8iyzcGUTtp9Z2cKpkiWs3kkhoEbZ6V5z2nh44C84mLkBN91TUDzu9UqypfscZeXTxMhY5AXK17pwJHaJuofY7x4kErmnEF3iDrQFCfuXPw4YdWmo", + "public": + "xpub6AN6NUgYdrpuHsikhoPanZHwyR4xpLxG3UM5C1CC8NmHb5S8a1BC4KJsAjUkbW4ScSDWrUe485nZ5HkTr2xua7rRrxaQToGGHmmAcFitfun", + "address": + "DdzFFzCqrhsfyjMt9tdxpNBRm639ALZpPTG5PapDV9ojmuMkp1w5HmqZmsCVSAkWzkDcAaasVuw2aYAAJyN6skxsYfd9uyqQ9cRJcY1D", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RXWcqXoZMjJU3aYhNrQ7fzyM9X4kg7eggvLyYRpGxceopTUw15uoNAcxLK8bjrGvbKE4wpSEF1QAggmiV7vFBUhnZrxL8fFSFALWtigihRwGxqCwjCrFqDk8dvhcQydanAyXzCDaYiwH6A2Uo7pWLy", + "public": + "xpub6AN6NUgYdrpuJGb9UsP4DBQUM6oDwjCbSKKtemzaC9f7rLSZfU9GnLvddzQffxwHA8hQymN5toNWMBWpGfYzts2xyy4FrAiPFAxFWCs2NFZ", + "address": + "DdzFFzCqrhso1bfee3mN9TittBM3xrp6L8XCmzqJcMiUYKSXMdy6ca8913no7NWc8Ka9ban5fgGiyv7z2i3nDVuhWcEhb9QJPP1FEo2h", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RQZDe17SMePNJy4EnVT6s9GikuP1wFiCTd7AmsmTv4FvjiePdQCXaspFNcSjD4r7zVYx8bj3tEtKEAy1YACKzA9gsXsbu3ZMVQaAshbMuGXvpkH9hWQau3NbHSbEvLPhVPiSoTrSgPh4Y3Xd92J13s", + "public": + "xpub69xgQV9RtGyGosw736cQDM19RdpucV7FANzHTmsivi3DYWyPjeSwCv1gkzDUte3gYBpYxqiY7kpuFDCB6FkQSgRjcxMWQVsQTX5LjVEKxJ5", + "address": + "DdzFFzCqrhszXAxfVW5oWwpxsGsbVztYaRVtYVNaDZy8u1mfNqDzhJnbzBTEEQXU7p97mLcSyeAjQoQZjkhVytkHyETza8KkQUnZMgEM", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RQZDe17SMePNoTFhMB7hyUV4tAvVJTc2S5UZ7bYe25mtp5By7Q5wd2KmGj23M56WhufhPaZcrq3suYz6Vw9MqBx9AG9ezsvhZrQ86YdF2deAhDHyKEFQKALY59QDLg7UDN3wztEJs4EsqgjVzmXQLL", + "public": + "xpub69xgQV9RtGyGqXpu1t7aB5vXSkuQpiJ4q9gMSx7LT7wW6VEyvAaPAZNrEEkUTTd9YDKDKZ1dEu6s9qZ4FHzPUSni5TGzW9Mxx6pypisc4xc", + "address": + "DdzFFzCqrht5FC98gmGWk5CGhpHn5H1akUK6ZbR8tXPr5MNKNSXuMcRkUdidwZpJznxQJiWdn9hXFLmgW7BTfdpu6zfa3wRnDUVprqBz", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RQZDe17SMePPp2q7EcbHT9MtP2yne6SJ4r8iENQgAruXhkKZbZkahsDzXXEDk1oSe9W4VTwfQtzneyzvFzKnwoLVoa6JzLUXd7FMqzswSEZrzFwKJadmUKeYgtmK65ho1kcVDPeNeg3E7LGmD4Ly2h", + "public": + "xpub69xgQV9RtGyGtw2A8RvqRtgHSvZPgzFD59RMxfNVgjPs5YLVnQwR4N96JGAaxR2cWrz8i9PoUHWkDhTcZve3t3VgKyoqd9X2AX7EWzUZbib", + "address": + "DdzFFzCqrhsqvkwj2pq1XSGqnz9RpnjfTan6wTAs7CheZCaugPhMcagnR2NsweqqTXQ6CB7PSzfcwJTft6cTDdQhGfcprXxDLux9eGZs", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "e9aebe3b37c2070a307d129f36f8d1f4638e444f826927c67a03f912e8f45c1a", + "private": + "483ffe8379cebafd982f297073bebd27c8f4a32697622832dec22e04c596e9569e5816733a0080f299fb058bec76d20562025344b7042645c3e6aa36ef152c9e", + "public": + "00abbfbd4a77bbe964c129cdde3b495de6e99fa04f862ab723d395aeb128ddaf89", + "chaincode": + "c1cd79729507c71ebc469b3cf949444ade2fd36bfa753bad0c423b0e2cd5087d", + "hd_key": + "dae12ec5eecbfd8a7cc1276ca8f93b2655b0697ac8ac44d17a9736c2ded6fcab", + "child": [ + { + "private": + "xprv3RuckutfGiHCACJpGg875KmisVnXmx6QKv7QFEw1S2cXeFW2aV9x8v4zxXGdBEAKWbGFGpmvht5r6WHLbU26oWzdFZCctQshzAnbp3ghAtea9cibYcUxjnFNnfZFjRRPFne1pFWAvyyohGD7VjF1TJv", + "public": + "xpub6BeWSGcEg55xEEGKVJtDNJorh8k8ce4ua5LbBjE3sNPTBpHfw4BS4dXhVs4v74ZJc2sgp61xig4i841riFCRd5hdR3YpsLg4Xb8ZGELAt3Q", + "address": + "DdzFFzCqrht9zU5vkdeJAqVYupzLCzNq7Z1nGP4FDBbMP1DS5hXA4ywPb3FCSHgMUXmsHhUPgAUuZqTCTapE1SpgBRWZJxzPG9BVuEeb", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RuckutfGiHCAWT1EM1NZFp4nfhWDG76KvobAjaiEHiKS8VuEQzzfFZWNUo2b491rbR8DQuZSd3WKkeAnq73JQHV3DJpjHL9RLocHPsed8omDWTm21PjT2aeqKUdyP2dxAjwq5eTuGQodiF3bx97eHo", + "public": + "xpub6BeWSGcEg55xFHLJYkyeXJKLBbFnAAQHRY8DPgzKx5bqojxCNQ7rzPbRBc3bvSM99VbpZedGA9p5jMGESr4JLoJyYS5PPRYFPpob4gKQvxC", + "address": + "DdzFFzCqrhszbkgPigGGNFaSfDKDAP1gQXaL6wQTQKFu7sky7DFtQWYEYC5F3NGuVucSubSD98kYpeHce1rhhvuCfZmUZyprYeCjSH58", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RuckutfGiHCBcGGfxBXhuXCmz6fJAxDX1Z4WGqfE5h8vkJo1yDwDn9EvJUALdFeGedgzYLp9DaZ8vrKgrPX7KJNKds6BK3hnHMH1yuFCZKA98CGjg1FWKiwY8NnbKJPgcmP4WRtRq7ZAmjzvp67g4t", + "public": + "xpub6BeWSGcEg55xJz9smeaFbVqkNfVzuQk5hWtuCYU2fMgVC6ZzSvBzGYiAifNM5ZmHXuTi7hFVvfuQBVQXd5hVNvaXrqxV1qouwdyFdGcx1AX", + "address": + "DdzFFzCqrhtBsNsaiQDSzhPDdP8UL33Uj5fkLtPpSpEKqosLFfmEzYtLVNxLnizMNSk2CHtKFNrNCUuRD5r4TqGxHM9DHv6spJUjdzhw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RXWcqXoZMjJSjujrZ43i3dYN4SfXNBpALrdD7wv6v33jR8EqVdLtYkTrqkBqiC4b4PNxRwm2kp51CpSDhEDrFJkkfDgzJ6kzitTJevQSCAnbVgPmaSiK9V9UE46FCcqHPdbNcjby5eAaHK8J4dXXaz", + "public": + "xpub6AN6NUgYdrpuDss6xqEqZY3pDhBFd9PgvsUph16buZovsAqfkg2dUXVnym6rNaWGUMCGbJBnckiJZNd2TN6kfZcuhQMUmXpKDwfRAqwxKDH", + "address": + "DdzFFzCqrhshkKFYcou7fsaYsBJtv39Zt1VFudrNvsw2F5iNZoRjf5vNY95wAPaUAZ84sA7RBJqNzB3Dd9BNyMkfvA6pUzrQj29mS8DT", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RXWcqXoZMjJTvnXUwv4MX6jzBBMabYreDVAtuj8iyzcGUTtp9Z2cKpkiWs3kkhoEbZ6V5z2nh44C84mLkBN91TUDzu9UqypfscZeXTxMhY5AXK17pwJHaJuofY7x4kErmnEF3iDrQFCfuXPw4YdWmo", + "public": + "xpub6AN6NUgYdrpuHsikhoPanZHwyR4xpLxG3UM5C1CC8NmHb5S8a1BC4KJsAjUkbW4ScSDWrUe485nZ5HkTr2xua7rRrxaQToGGHmmAcFitfun", + "address": + "DdzFFzCqrhsfyjMt9tdxpNBRm639ALZpPTG5PapDV9ojmuMkp1w5HmqZmsCVSAkWzkDcAaasVuw2aYAAJyN6skxsYfd9uyqQ9cRJcY1D", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RXWcqXoZMjJU3aYhNrQ7fzyM9X4kg7eggvLyYRpGxceopTUw15uoNAcxLK8bjrGvbKE4wpSEF1QAggmiV7vFBUhnZrxL8fFSFALWtigihRwGxqCwjCrFqDk8dvhcQydanAyXzCDaYiwH6A2Uo7pWLy", + "public": + "xpub6AN6NUgYdrpuJGb9UsP4DBQUM6oDwjCbSKKtemzaC9f7rLSZfU9GnLvddzQffxwHA8hQymN5toNWMBWpGfYzts2xyy4FrAiPFAxFWCs2NFZ", + "address": + "DdzFFzCqrhso1bfee3mN9TittBM3xrp6L8XCmzqJcMiUYKSXMdy6ca8913no7NWc8Ka9ban5fgGiyv7z2i3nDVuhWcEhb9QJPP1FEo2h", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RQZDe17SMePNJy4EnVT6s9GikuP1wFiCTd7AmsmTv4FvjiePdQCXaspFNcSjD4r7zVYx8bj3tEtKEAy1YACKzA9gsXsbu3ZMVQaAshbMuGXvpkH9hWQau3NbHSbEvLPhVPiSoTrSgPh4Y3Xd92J13s", + "public": + "xpub69xgQV9RtGyGosw736cQDM19RdpucV7FANzHTmsivi3DYWyPjeSwCv1gkzDUte3gYBpYxqiY7kpuFDCB6FkQSgRjcxMWQVsQTX5LjVEKxJ5", + "address": + "DdzFFzCqrhszXAxfVW5oWwpxsGsbVztYaRVtYVNaDZy8u1mfNqDzhJnbzBTEEQXU7p97mLcSyeAjQoQZjkhVytkHyETza8KkQUnZMgEM", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RQZDe17SMePNoTFhMB7hyUV4tAvVJTc2S5UZ7bYe25mtp5By7Q5wd2KmGj23M56WhufhPaZcrq3suYz6Vw9MqBx9AG9ezsvhZrQ86YdF2deAhDHyKEFQKALY59QDLg7UDN3wztEJs4EsqgjVzmXQLL", + "public": + "xpub69xgQV9RtGyGqXpu1t7aB5vXSkuQpiJ4q9gMSx7LT7wW6VEyvAaPAZNrEEkUTTd9YDKDKZ1dEu6s9qZ4FHzPUSni5TGzW9Mxx6pypisc4xc", + "address": + "DdzFFzCqrht5FC98gmGWk5CGhpHn5H1akUK6ZbR8tXPr5MNKNSXuMcRkUdidwZpJznxQJiWdn9hXFLmgW7BTfdpu6zfa3wRnDUVprqBz", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RQZDe17SMePPp2q7EcbHT9MtP2yne6SJ4r8iENQgAruXhkKZbZkahsDzXXEDk1oSe9W4VTwfQtzneyzvFzKnwoLVoa6JzLUXd7FMqzswSEZrzFwKJadmUKeYgtmK65ho1kcVDPeNeg3E7LGmD4Ly2h", + "public": + "xpub69xgQV9RtGyGtw2A8RvqRtgHSvZPgzFD59RMxfNVgjPs5YLVnQwR4N96JGAaxR2cWrz8i9PoUHWkDhTcZve3t3VgKyoqd9X2AX7EWzUZbib", + "address": + "DdzFFzCqrhsqvkwj2pq1XSGqnz9RpnjfTan6wTAs7CheZCaugPhMcagnR2NsweqqTXQ6CB7PSzfcwJTft6cTDdQhGfcprXxDLux9eGZs", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "e9aebe3b37c2070a307d129f36f8d1f4638e444f826927c67a03f912e8f45c1a", + "private": + "483ffe8379cebafd982f297073bebd27c8f4a32697622832dec22e04c596e9569e5816733a0080f299fb058bec76d20562025344b7042645c3e6aa36ef152c9e", + "public": + "00abbfbd4a77bbe964c129cdde3b495de6e99fa04f862ab723d395aeb128ddaf89", + "chaincode": + "c1cd79729507c71ebc469b3cf949444ade2fd36bfa753bad0c423b0e2cd5087d", + "hd_key": + "dae12ec5eecbfd8a7cc1276ca8f93b2655b0697ac8ac44d17a9736c2ded6fcab", + "child": [ + { + "private": + "xprv3RuckutfGiHCACJpGg875KmisVnXmx6QKv7QFEw1S2cXeFW2aV9x8v4zxXGdBEAKWbGFGpmvht5r6WHLbU26oWzdFZCctQshzAnbp3ghAtea9cibYcUxjnFNnfZFjRRPFne1pFWAvyyohGD7VjF1TJv", + "public": + "xpub6BeWSGcEg55xEEGKVJtDNJorh8k8ce4ua5LbBjE3sNPTBpHfw4BS4dXhVs4v74ZJc2sgp61xig4i841riFCRd5hdR3YpsLg4Xb8ZGELAt3Q", + "address": + "DdzFFzCqrht9zU5vkdeJAqVYupzLCzNq7Z1nGP4FDBbMP1DS5hXA4ywPb3FCSHgMUXmsHhUPgAUuZqTCTapE1SpgBRWZJxzPG9BVuEeb", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RuckutfGiHCAWT1EM1NZFp4nfhWDG76KvobAjaiEHiKS8VuEQzzfFZWNUo2b491rbR8DQuZSd3WKkeAnq73JQHV3DJpjHL9RLocHPsed8omDWTm21PjT2aeqKUdyP2dxAjwq5eTuGQodiF3bx97eHo", + "public": + "xpub6BeWSGcEg55xFHLJYkyeXJKLBbFnAAQHRY8DPgzKx5bqojxCNQ7rzPbRBc3bvSM99VbpZedGA9p5jMGESr4JLoJyYS5PPRYFPpob4gKQvxC", + "address": + "DdzFFzCqrhszbkgPigGGNFaSfDKDAP1gQXaL6wQTQKFu7sky7DFtQWYEYC5F3NGuVucSubSD98kYpeHce1rhhvuCfZmUZyprYeCjSH58", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RuckutfGiHCBcGGfxBXhuXCmz6fJAxDX1Z4WGqfE5h8vkJo1yDwDn9EvJUALdFeGedgzYLp9DaZ8vrKgrPX7KJNKds6BK3hnHMH1yuFCZKA98CGjg1FWKiwY8NnbKJPgcmP4WRtRq7ZAmjzvp67g4t", + "public": + "xpub6BeWSGcEg55xJz9smeaFbVqkNfVzuQk5hWtuCYU2fMgVC6ZzSvBzGYiAifNM5ZmHXuTi7hFVvfuQBVQXd5hVNvaXrqxV1qouwdyFdGcx1AX", + "address": + "DdzFFzCqrhtBsNsaiQDSzhPDdP8UL33Uj5fkLtPpSpEKqosLFfmEzYtLVNxLnizMNSk2CHtKFNrNCUuRD5r4TqGxHM9DHv6spJUjdzhw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RXWcqXoZMjJSjujrZ43i3dYN4SfXNBpALrdD7wv6v33jR8EqVdLtYkTrqkBqiC4b4PNxRwm2kp51CpSDhEDrFJkkfDgzJ6kzitTJevQSCAnbVgPmaSiK9V9UE46FCcqHPdbNcjby5eAaHK8J4dXXaz", + "public": + "xpub6AN6NUgYdrpuDss6xqEqZY3pDhBFd9PgvsUph16buZovsAqfkg2dUXVnym6rNaWGUMCGbJBnckiJZNd2TN6kfZcuhQMUmXpKDwfRAqwxKDH", + "address": + "DdzFFzCqrhshkKFYcou7fsaYsBJtv39Zt1VFudrNvsw2F5iNZoRjf5vNY95wAPaUAZ84sA7RBJqNzB3Dd9BNyMkfvA6pUzrQj29mS8DT", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RXWcqXoZMjJTvnXUwv4MX6jzBBMabYreDVAtuj8iyzcGUTtp9Z2cKpkiWs3kkhoEbZ6V5z2nh44C84mLkBN91TUDzu9UqypfscZeXTxMhY5AXK17pwJHaJuofY7x4kErmnEF3iDrQFCfuXPw4YdWmo", + "public": + "xpub6AN6NUgYdrpuHsikhoPanZHwyR4xpLxG3UM5C1CC8NmHb5S8a1BC4KJsAjUkbW4ScSDWrUe485nZ5HkTr2xua7rRrxaQToGGHmmAcFitfun", + "address": + "DdzFFzCqrhsfyjMt9tdxpNBRm639ALZpPTG5PapDV9ojmuMkp1w5HmqZmsCVSAkWzkDcAaasVuw2aYAAJyN6skxsYfd9uyqQ9cRJcY1D", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RXWcqXoZMjJU3aYhNrQ7fzyM9X4kg7eggvLyYRpGxceopTUw15uoNAcxLK8bjrGvbKE4wpSEF1QAggmiV7vFBUhnZrxL8fFSFALWtigihRwGxqCwjCrFqDk8dvhcQydanAyXzCDaYiwH6A2Uo7pWLy", + "public": + "xpub6AN6NUgYdrpuJGb9UsP4DBQUM6oDwjCbSKKtemzaC9f7rLSZfU9GnLvddzQffxwHA8hQymN5toNWMBWpGfYzts2xyy4FrAiPFAxFWCs2NFZ", + "address": + "DdzFFzCqrhso1bfee3mN9TittBM3xrp6L8XCmzqJcMiUYKSXMdy6ca8913no7NWc8Ka9ban5fgGiyv7z2i3nDVuhWcEhb9QJPP1FEo2h", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RQZDe17SMePNJy4EnVT6s9GikuP1wFiCTd7AmsmTv4FvjiePdQCXaspFNcSjD4r7zVYx8bj3tEtKEAy1YACKzA9gsXsbu3ZMVQaAshbMuGXvpkH9hWQau3NbHSbEvLPhVPiSoTrSgPh4Y3Xd92J13s", + "public": + "xpub69xgQV9RtGyGosw736cQDM19RdpucV7FANzHTmsivi3DYWyPjeSwCv1gkzDUte3gYBpYxqiY7kpuFDCB6FkQSgRjcxMWQVsQTX5LjVEKxJ5", + "address": + "DdzFFzCqrhszXAxfVW5oWwpxsGsbVztYaRVtYVNaDZy8u1mfNqDzhJnbzBTEEQXU7p97mLcSyeAjQoQZjkhVytkHyETza8KkQUnZMgEM", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RQZDe17SMePNoTFhMB7hyUV4tAvVJTc2S5UZ7bYe25mtp5By7Q5wd2KmGj23M56WhufhPaZcrq3suYz6Vw9MqBx9AG9ezsvhZrQ86YdF2deAhDHyKEFQKALY59QDLg7UDN3wztEJs4EsqgjVzmXQLL", + "public": + "xpub69xgQV9RtGyGqXpu1t7aB5vXSkuQpiJ4q9gMSx7LT7wW6VEyvAaPAZNrEEkUTTd9YDKDKZ1dEu6s9qZ4FHzPUSni5TGzW9Mxx6pypisc4xc", + "address": + "DdzFFzCqrht5FC98gmGWk5CGhpHn5H1akUK6ZbR8tXPr5MNKNSXuMcRkUdidwZpJznxQJiWdn9hXFLmgW7BTfdpu6zfa3wRnDUVprqBz", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RQZDe17SMePPp2q7EcbHT9MtP2yne6SJ4r8iENQgAruXhkKZbZkahsDzXXEDk1oSe9W4VTwfQtzneyzvFzKnwoLVoa6JzLUXd7FMqzswSEZrzFwKJadmUKeYgtmK65ho1kcVDPeNeg3E7LGmD4Ly2h", + "public": + "xpub69xgQV9RtGyGtw2A8RvqRtgHSvZPgzFD59RMxfNVgjPs5YLVnQwR4N96JGAaxR2cWrz8i9PoUHWkDhTcZve3t3VgKyoqd9X2AX7EWzUZbib", + "address": + "DdzFFzCqrhsqvkwj2pq1XSGqnz9RpnjfTan6wTAs7CheZCaugPhMcagnR2NsweqqTXQ6CB7PSzfcwJTft6cTDdQhGfcprXxDLux9eGZs", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "73fec3873a6ecce0008489c0cc93e488ea26b186b0ab18e25c4298c6d7a4995f", + "private": + "20f892f9c75b5d515bc91de4f15c20feb09b9ecdc3d0f55d2804f8f8b6310d40edc73df501a83e9a16bd3290ce2d2d052715f332f44d3f7d589dbb6f1f807adf", + "public": + "007cac20f0db6bc4eb107d933a7d4cc5d98401863d43a9a748cb1e0d0eb92343a3", + "chaincode": + "78b38b00c08c2cbedf82141459ffd3e32a5e29ab3ba712ffa19e596c5fcff464", + "hd_key": + "0309959b0500c62659f6938976a8b627757716f5d29e0ad6a9d0eed4f140011b", + "child": [ + { + "private": + "xprv3RtPnaN99QxLAzRtkxsZcJ2W2G6rdpPJExnMDGfpX7Rq24zzFsbAme5pd7YwegrRb1icjTqSWQWt5s57aWGHfvXWGMK1UdepWvSkp6TsFGRzy3enZUomuoxYri7TyqiYvLVSGDR8iRbxcAXfHGgp96o", + "public": + "xpub6BaPXSnwhd66dycGq1aqJi2znN82E8YS8JRNsv9u5xX7eSaU7jVB6aj34CV1tbXAkKYAg1jQVc3ERSSV5rWzraJQgZYMPtsoixSKuv1ZRBg", + "address": + "DdzFFzCqrhseNaJnho8cwKRXSQTj7PT8gdDA4v62q85zEUhcHEvr9kK2wXMv4KA5WGVYPEh6z1JETBHDGUyr1ZwfNJTj7823UTaJkTph", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RtPnaN99QxLB9FD98qJcAXUPhrszejxrXZewWaySFv1ph4QqrfWRgBC2yVy3k4KYJHr9Yvb5mwimEyzrUcJxSPJZCBTrqdXoU9Y7HjhEhv7ECU5hz7jX49Cv8m3xhgRWaD299gLaFPWxV7awRqzDaX", + "public": + "xpub6BaPXSnwhd66eVHX7Mo9hgccE95VECZCTRLdKfG2Fu6LhKR6sqGP6u7jvBN8vWpD6ci6Dwtj6uKLRZYEMthyumgTp9Yvr6GyMFs7joXQK84", + "address": + "DdzFFzCqrhshZKZFDFoM1y5vssJmE7mBLpdqUQXBzYjWYupEAw6G2PrYwFXmTgoBqa7X2pTJhAmJXfZqRNc9s7r3g6LW8pbARzen2Zg9", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RtPnaN99QxLCBRdKeB9xPBJoUC9DtbUojZLWDzobJxYM9MhXeYspLBtSrVrWMsHTphfaKTHr91AaFFqnhja6W29n9guyBGgAQMkzTb2aWQ27vfSx9rkxtUqCDzUsKyVtQoKodg2SBnWZj3X3bcV6Fp", + "public": + "xpub6BaPXSnwhd66hysJyNBR2DWd8HHT5L9YorWAgrfdzcN8FgsHp9pHZwNVhEgzn6dGDLmSy1J7dGcZG5uf9RjfkPDLjFPhUaJfaPq6DsccWQu", + "address": + "DdzFFzCqrhspdGkmCuPkrBbgY2rUD4Z4fB6snaPQ9rCXgHzqSordKso2PApMH3HQEhzYoBxBStTK6oq897DaAPsm4Bmh9UW5XVMTBFUw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RgYLardPBxtncEbCcrn85FQUiN3AnHWfqgSEkWtYqPrqzBZvrF1iZ2K5JA4WtoEBZ79jJ7ftz3xmg4JbfiQoHXSMsM8k2V8Zixk7jcyV2M8pnoUyAujkAC7ZCKfafbzNNtGaECfE74N2HvhZQQNt7k", + "public": + "xpub6AtVNMgbsU8X1pdNyfv1N3tfYpTWPGwXoKaVFt75A7JGGK4nunbcQ6ayGyGbhxqbzhmjagvjtEDHif7ERCvAeDz2kn58gcK39jGfZYsMFor", + "address": + "DdzFFzCqrhtBNDPZG6npNyqWjpVAyhpP1eobAmxagwwsnomFMcseWmhmEEv6Gcho12GTrTXfRyyiHcW5k2DEaHZLcB4fpxa9jXzLK87A", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RgYLardPBxtoNT8XLCB9hywdkU6jUixdjKnL4ZzPTvd9VfyBF6rf6y44cbM3sG9ZLjr2eNi2TKS1V9GUdjd7aP5geWTkWLvuSrBvsHeoscbgyg1XSUFPgUU82wUkJwBU3YVWfz5faPdLjCxFtZbnEQ", + "public": + "xpub6AtVNMgbsU8X4PUPdqyNAreyfdTQ1fbyQJzJvcZT34ALMGKYPwRqsuwqWAXzDMxMJrhAMeRxVNQgQm2m4gY9zjFyANGDtGsLpJnkGV7fyyN", + "address": + "DdzFFzCqrhsnrSCfRfAz1gyvR8MABDPJ6bVrb98kjiPpMKKsaXK41MnY6xNvHYUExLZZkqJbWZf1gKZBHTgmRmdhDSaCxPuKHLAz1EsL", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RgYLardPBxtocQxZ6skSNyf1iLFwMFMGUX1UfxW3sVFjbxMVVdTnsf2dg3VQZ8R8YYUJcD6U5Qb7oV2L8HfkcqfkrQe4kyXF9mnFCkL1txBa5iwGN2LD6EZVK7W9RqVTjvJG8zgBVzCaTb97aytgr5", + "public": + "xpub6AtVNMgbsU8X5CUWrSvEDbdgNHZuk1xuGdRVZTc7mnYwG83ahWnP4NWwUvABCyuEzMYKmxqwS3U4yPbn7fw8LHam4hQdninJpLRKSLiga7A", + "address": + "DdzFFzCqrhsmhDBveJSXc1V4naJp7VLk7Ambb1JEgJWx9HsPonYZfA3uYkNedaJSyz3k4qmu2TJrJuZTXYVygimY18Y33P1wNNGqsASH", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3Ri9jH3mUr9Eu15RJpjQ3dJJpv3jmRPBds6fCd7tmeBUXrj9tbdGwGBX3CiJGj1Q6xsvwye9Pp4an8mbyUSHFCKmxKCUg3f9RdcrLfZqNV81zvAu3akjcjUn88N3x9TKmPC2Nmpb7FC1TWrXZGf7oYe", + "public": + "xpub6Ayuka6JHUYXgiCLWCo78bY8LU2cHmWKojPCBKDourSwzBHM3KPGLuHb9d96m2gkfR7BddNg3pRkiUjN8BsSa343kYHoVwQy3ygUExefB9c", + "address": + "DdzFFzCqrhsf1LoxQD4AopyTbQzgMquUkTuCMRom5fZHMtxT4eVMof4EAZwMtJ2suJ7LBeVfnAk4krpixZc9xGHRmcMwpHUbuLQPVPjZ", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3Ri9jH3mUr9EuaGnGLf7h2d2unowbRisgPbwg9Dg4yBkkSzndmDJzJN2nkEbZGbty6n2SzEXdo14S5JWf7SNPQXrd88WHfhqgkNso9TMLmVNgoGT8CRFAMCD3tjYyRbJPCsS5nXhpndETQk9jT12xhU", + "public": + "xpub6Ayuka6JHUYXidwgTPjAAxuVaGT5Vhnry6ETA62HLWoX8e2y5zzsf4J1ofEiLatgCeC85SeufywFc32TD3mNuVJ4K5h1UNjEJQqN8XxCcsW", + "address": + "DdzFFzCqrhtC8XxYKtizanJrAPKUKeu1upNbqbMJZHUWTeNfR3XGymU9syspYLPJZFtrBSfvW1g2ad6b8KmmBCDmbHggKk5BDUdJq2Un", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3Ri9jH3mUr9Ev4xLvJRJaBuEvCdMcsC44kR7s6nHV8oM1wFyaERS53wckp1drsBNnQAg1d12md8dZYzHcZHGE4FQKvf7VCzjahMCwhFMbfmQQ1QtkczuuZiYUjF1CsYBq8f2CFxHLp93CRrhcMENNgq", + "public": + "xpub6Ayuka6JHUYXkJVjVGToeytDM49TAupXixmR5mFzsEHW8UncxHrq5aSWnQRrW58erwmvdvHYbXztEc2MbBNG2Rg95K54tAdgvrU7jKyqdtd", + "address": + "DdzFFzCqrhsnAvWW3SNqqfmVs2v9jxq5jVJxEHKqxpdoC6zTn27fyUyXDTvLk6r9U1RrSVbEFHtxpRDYuB78Yh2RKemyv4BCXCEJZKKJ", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "73fec3873a6ecce0008489c0cc93e488ea26b186b0ab18e25c4298c6d7a4995f", + "private": + "20f892f9c75b5d515bc91de4f15c20feb09b9ecdc3d0f55d2804f8f8b6310d40edc73df501a83e9a16bd3290ce2d2d052715f332f44d3f7d589dbb6f1f807adf", + "public": + "007cac20f0db6bc4eb107d933a7d4cc5d98401863d43a9a748cb1e0d0eb92343a3", + "chaincode": + "78b38b00c08c2cbedf82141459ffd3e32a5e29ab3ba712ffa19e596c5fcff464", + "hd_key": + "0309959b0500c62659f6938976a8b627757716f5d29e0ad6a9d0eed4f140011b", + "child": [ + { + "private": + "xprv3RtPnaN99QxLAzRtkxsZcJ2W2G6rdpPJExnMDGfpX7Rq24zzFsbAme5pd7YwegrRb1icjTqSWQWt5s57aWGHfvXWGMK1UdepWvSkp6TsFGRzy3enZUomuoxYri7TyqiYvLVSGDR8iRbxcAXfHGgp96o", + "public": + "xpub6BaPXSnwhd66dycGq1aqJi2znN82E8YS8JRNsv9u5xX7eSaU7jVB6aj34CV1tbXAkKYAg1jQVc3ERSSV5rWzraJQgZYMPtsoixSKuv1ZRBg", + "address": + "DdzFFzCqrhseNaJnho8cwKRXSQTj7PT8gdDA4v62q85zEUhcHEvr9kK2wXMv4KA5WGVYPEh6z1JETBHDGUyr1ZwfNJTj7823UTaJkTph", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RtPnaN99QxLB9FD98qJcAXUPhrszejxrXZewWaySFv1ph4QqrfWRgBC2yVy3k4KYJHr9Yvb5mwimEyzrUcJxSPJZCBTrqdXoU9Y7HjhEhv7ECU5hz7jX49Cv8m3xhgRWaD299gLaFPWxV7awRqzDaX", + "public": + "xpub6BaPXSnwhd66eVHX7Mo9hgccE95VECZCTRLdKfG2Fu6LhKR6sqGP6u7jvBN8vWpD6ci6Dwtj6uKLRZYEMthyumgTp9Yvr6GyMFs7joXQK84", + "address": + "DdzFFzCqrhshZKZFDFoM1y5vssJmE7mBLpdqUQXBzYjWYupEAw6G2PrYwFXmTgoBqa7X2pTJhAmJXfZqRNc9s7r3g6LW8pbARzen2Zg9", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RtPnaN99QxLCBRdKeB9xPBJoUC9DtbUojZLWDzobJxYM9MhXeYspLBtSrVrWMsHTphfaKTHr91AaFFqnhja6W29n9guyBGgAQMkzTb2aWQ27vfSx9rkxtUqCDzUsKyVtQoKodg2SBnWZj3X3bcV6Fp", + "public": + "xpub6BaPXSnwhd66hysJyNBR2DWd8HHT5L9YorWAgrfdzcN8FgsHp9pHZwNVhEgzn6dGDLmSy1J7dGcZG5uf9RjfkPDLjFPhUaJfaPq6DsccWQu", + "address": + "DdzFFzCqrhspdGkmCuPkrBbgY2rUD4Z4fB6snaPQ9rCXgHzqSordKso2PApMH3HQEhzYoBxBStTK6oq897DaAPsm4Bmh9UW5XVMTBFUw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RgYLardPBxtncEbCcrn85FQUiN3AnHWfqgSEkWtYqPrqzBZvrF1iZ2K5JA4WtoEBZ79jJ7ftz3xmg4JbfiQoHXSMsM8k2V8Zixk7jcyV2M8pnoUyAujkAC7ZCKfafbzNNtGaECfE74N2HvhZQQNt7k", + "public": + "xpub6AtVNMgbsU8X1pdNyfv1N3tfYpTWPGwXoKaVFt75A7JGGK4nunbcQ6ayGyGbhxqbzhmjagvjtEDHif7ERCvAeDz2kn58gcK39jGfZYsMFor", + "address": + "DdzFFzCqrhtBNDPZG6npNyqWjpVAyhpP1eobAmxagwwsnomFMcseWmhmEEv6Gcho12GTrTXfRyyiHcW5k2DEaHZLcB4fpxa9jXzLK87A", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RgYLardPBxtoNT8XLCB9hywdkU6jUixdjKnL4ZzPTvd9VfyBF6rf6y44cbM3sG9ZLjr2eNi2TKS1V9GUdjd7aP5geWTkWLvuSrBvsHeoscbgyg1XSUFPgUU82wUkJwBU3YVWfz5faPdLjCxFtZbnEQ", + "public": + "xpub6AtVNMgbsU8X4PUPdqyNAreyfdTQ1fbyQJzJvcZT34ALMGKYPwRqsuwqWAXzDMxMJrhAMeRxVNQgQm2m4gY9zjFyANGDtGsLpJnkGV7fyyN", + "address": + "DdzFFzCqrhsnrSCfRfAz1gyvR8MABDPJ6bVrb98kjiPpMKKsaXK41MnY6xNvHYUExLZZkqJbWZf1gKZBHTgmRmdhDSaCxPuKHLAz1EsL", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RgYLardPBxtocQxZ6skSNyf1iLFwMFMGUX1UfxW3sVFjbxMVVdTnsf2dg3VQZ8R8YYUJcD6U5Qb7oV2L8HfkcqfkrQe4kyXF9mnFCkL1txBa5iwGN2LD6EZVK7W9RqVTjvJG8zgBVzCaTb97aytgr5", + "public": + "xpub6AtVNMgbsU8X5CUWrSvEDbdgNHZuk1xuGdRVZTc7mnYwG83ahWnP4NWwUvABCyuEzMYKmxqwS3U4yPbn7fw8LHam4hQdninJpLRKSLiga7A", + "address": + "DdzFFzCqrhsmhDBveJSXc1V4naJp7VLk7Ambb1JEgJWx9HsPonYZfA3uYkNedaJSyz3k4qmu2TJrJuZTXYVygimY18Y33P1wNNGqsASH", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3Ri9jH3mUr9Eu15RJpjQ3dJJpv3jmRPBds6fCd7tmeBUXrj9tbdGwGBX3CiJGj1Q6xsvwye9Pp4an8mbyUSHFCKmxKCUg3f9RdcrLfZqNV81zvAu3akjcjUn88N3x9TKmPC2Nmpb7FC1TWrXZGf7oYe", + "public": + "xpub6Ayuka6JHUYXgiCLWCo78bY8LU2cHmWKojPCBKDourSwzBHM3KPGLuHb9d96m2gkfR7BddNg3pRkiUjN8BsSa343kYHoVwQy3ygUExefB9c", + "address": + "DdzFFzCqrhsf1LoxQD4AopyTbQzgMquUkTuCMRom5fZHMtxT4eVMof4EAZwMtJ2suJ7LBeVfnAk4krpixZc9xGHRmcMwpHUbuLQPVPjZ", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3Ri9jH3mUr9EuaGnGLf7h2d2unowbRisgPbwg9Dg4yBkkSzndmDJzJN2nkEbZGbty6n2SzEXdo14S5JWf7SNPQXrd88WHfhqgkNso9TMLmVNgoGT8CRFAMCD3tjYyRbJPCsS5nXhpndETQk9jT12xhU", + "public": + "xpub6Ayuka6JHUYXidwgTPjAAxuVaGT5Vhnry6ETA62HLWoX8e2y5zzsf4J1ofEiLatgCeC85SeufywFc32TD3mNuVJ4K5h1UNjEJQqN8XxCcsW", + "address": + "DdzFFzCqrhtC8XxYKtizanJrAPKUKeu1upNbqbMJZHUWTeNfR3XGymU9syspYLPJZFtrBSfvW1g2ad6b8KmmBCDmbHggKk5BDUdJq2Un", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3Ri9jH3mUr9Ev4xLvJRJaBuEvCdMcsC44kR7s6nHV8oM1wFyaERS53wckp1drsBNnQAg1d12md8dZYzHcZHGE4FQKvf7VCzjahMCwhFMbfmQQ1QtkczuuZiYUjF1CsYBq8f2CFxHLp93CRrhcMENNgq", + "public": + "xpub6Ayuka6JHUYXkJVjVGToeytDM49TAupXixmR5mFzsEHW8UncxHrq5aSWnQRrW58erwmvdvHYbXztEc2MbBNG2Rg95K54tAdgvrU7jKyqdtd", + "address": + "DdzFFzCqrhsnAvWW3SNqqfmVs2v9jxq5jVJxEHKqxpdoC6zTn27fyUyXDTvLk6r9U1RrSVbEFHtxpRDYuB78Yh2RKemyv4BCXCEJZKKJ", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "73fec3873a6ecce0008489c0cc93e488ea26b186b0ab18e25c4298c6d7a4995f", + "private": + "20f892f9c75b5d515bc91de4f15c20feb09b9ecdc3d0f55d2804f8f8b6310d40edc73df501a83e9a16bd3290ce2d2d052715f332f44d3f7d589dbb6f1f807adf", + "public": + "007cac20f0db6bc4eb107d933a7d4cc5d98401863d43a9a748cb1e0d0eb92343a3", + "chaincode": + "78b38b00c08c2cbedf82141459ffd3e32a5e29ab3ba712ffa19e596c5fcff464", + "hd_key": + "0309959b0500c62659f6938976a8b627757716f5d29e0ad6a9d0eed4f140011b", + "child": [ + { + "private": + "xprv3RtPnaN99QxLAzRtkxsZcJ2W2G6rdpPJExnMDGfpX7Rq24zzFsbAme5pd7YwegrRb1icjTqSWQWt5s57aWGHfvXWGMK1UdepWvSkp6TsFGRzy3enZUomuoxYri7TyqiYvLVSGDR8iRbxcAXfHGgp96o", + "public": + "xpub6BaPXSnwhd66dycGq1aqJi2znN82E8YS8JRNsv9u5xX7eSaU7jVB6aj34CV1tbXAkKYAg1jQVc3ERSSV5rWzraJQgZYMPtsoixSKuv1ZRBg", + "address": + "DdzFFzCqrhseNaJnho8cwKRXSQTj7PT8gdDA4v62q85zEUhcHEvr9kK2wXMv4KA5WGVYPEh6z1JETBHDGUyr1ZwfNJTj7823UTaJkTph", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RtPnaN99QxLB9FD98qJcAXUPhrszejxrXZewWaySFv1ph4QqrfWRgBC2yVy3k4KYJHr9Yvb5mwimEyzrUcJxSPJZCBTrqdXoU9Y7HjhEhv7ECU5hz7jX49Cv8m3xhgRWaD299gLaFPWxV7awRqzDaX", + "public": + "xpub6BaPXSnwhd66eVHX7Mo9hgccE95VECZCTRLdKfG2Fu6LhKR6sqGP6u7jvBN8vWpD6ci6Dwtj6uKLRZYEMthyumgTp9Yvr6GyMFs7joXQK84", + "address": + "DdzFFzCqrhshZKZFDFoM1y5vssJmE7mBLpdqUQXBzYjWYupEAw6G2PrYwFXmTgoBqa7X2pTJhAmJXfZqRNc9s7r3g6LW8pbARzen2Zg9", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RtPnaN99QxLCBRdKeB9xPBJoUC9DtbUojZLWDzobJxYM9MhXeYspLBtSrVrWMsHTphfaKTHr91AaFFqnhja6W29n9guyBGgAQMkzTb2aWQ27vfSx9rkxtUqCDzUsKyVtQoKodg2SBnWZj3X3bcV6Fp", + "public": + "xpub6BaPXSnwhd66hysJyNBR2DWd8HHT5L9YorWAgrfdzcN8FgsHp9pHZwNVhEgzn6dGDLmSy1J7dGcZG5uf9RjfkPDLjFPhUaJfaPq6DsccWQu", + "address": + "DdzFFzCqrhspdGkmCuPkrBbgY2rUD4Z4fB6snaPQ9rCXgHzqSordKso2PApMH3HQEhzYoBxBStTK6oq897DaAPsm4Bmh9UW5XVMTBFUw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RgYLardPBxtncEbCcrn85FQUiN3AnHWfqgSEkWtYqPrqzBZvrF1iZ2K5JA4WtoEBZ79jJ7ftz3xmg4JbfiQoHXSMsM8k2V8Zixk7jcyV2M8pnoUyAujkAC7ZCKfafbzNNtGaECfE74N2HvhZQQNt7k", + "public": + "xpub6AtVNMgbsU8X1pdNyfv1N3tfYpTWPGwXoKaVFt75A7JGGK4nunbcQ6ayGyGbhxqbzhmjagvjtEDHif7ERCvAeDz2kn58gcK39jGfZYsMFor", + "address": + "DdzFFzCqrhtBNDPZG6npNyqWjpVAyhpP1eobAmxagwwsnomFMcseWmhmEEv6Gcho12GTrTXfRyyiHcW5k2DEaHZLcB4fpxa9jXzLK87A", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RgYLardPBxtoNT8XLCB9hywdkU6jUixdjKnL4ZzPTvd9VfyBF6rf6y44cbM3sG9ZLjr2eNi2TKS1V9GUdjd7aP5geWTkWLvuSrBvsHeoscbgyg1XSUFPgUU82wUkJwBU3YVWfz5faPdLjCxFtZbnEQ", + "public": + "xpub6AtVNMgbsU8X4PUPdqyNAreyfdTQ1fbyQJzJvcZT34ALMGKYPwRqsuwqWAXzDMxMJrhAMeRxVNQgQm2m4gY9zjFyANGDtGsLpJnkGV7fyyN", + "address": + "DdzFFzCqrhsnrSCfRfAz1gyvR8MABDPJ6bVrb98kjiPpMKKsaXK41MnY6xNvHYUExLZZkqJbWZf1gKZBHTgmRmdhDSaCxPuKHLAz1EsL", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RgYLardPBxtocQxZ6skSNyf1iLFwMFMGUX1UfxW3sVFjbxMVVdTnsf2dg3VQZ8R8YYUJcD6U5Qb7oV2L8HfkcqfkrQe4kyXF9mnFCkL1txBa5iwGN2LD6EZVK7W9RqVTjvJG8zgBVzCaTb97aytgr5", + "public": + "xpub6AtVNMgbsU8X5CUWrSvEDbdgNHZuk1xuGdRVZTc7mnYwG83ahWnP4NWwUvABCyuEzMYKmxqwS3U4yPbn7fw8LHam4hQdninJpLRKSLiga7A", + "address": + "DdzFFzCqrhsmhDBveJSXc1V4naJp7VLk7Ambb1JEgJWx9HsPonYZfA3uYkNedaJSyz3k4qmu2TJrJuZTXYVygimY18Y33P1wNNGqsASH", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3Ri9jH3mUr9Eu15RJpjQ3dJJpv3jmRPBds6fCd7tmeBUXrj9tbdGwGBX3CiJGj1Q6xsvwye9Pp4an8mbyUSHFCKmxKCUg3f9RdcrLfZqNV81zvAu3akjcjUn88N3x9TKmPC2Nmpb7FC1TWrXZGf7oYe", + "public": + "xpub6Ayuka6JHUYXgiCLWCo78bY8LU2cHmWKojPCBKDourSwzBHM3KPGLuHb9d96m2gkfR7BddNg3pRkiUjN8BsSa343kYHoVwQy3ygUExefB9c", + "address": + "DdzFFzCqrhsf1LoxQD4AopyTbQzgMquUkTuCMRom5fZHMtxT4eVMof4EAZwMtJ2suJ7LBeVfnAk4krpixZc9xGHRmcMwpHUbuLQPVPjZ", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3Ri9jH3mUr9EuaGnGLf7h2d2unowbRisgPbwg9Dg4yBkkSzndmDJzJN2nkEbZGbty6n2SzEXdo14S5JWf7SNPQXrd88WHfhqgkNso9TMLmVNgoGT8CRFAMCD3tjYyRbJPCsS5nXhpndETQk9jT12xhU", + "public": + "xpub6Ayuka6JHUYXidwgTPjAAxuVaGT5Vhnry6ETA62HLWoX8e2y5zzsf4J1ofEiLatgCeC85SeufywFc32TD3mNuVJ4K5h1UNjEJQqN8XxCcsW", + "address": + "DdzFFzCqrhtC8XxYKtizanJrAPKUKeu1upNbqbMJZHUWTeNfR3XGymU9syspYLPJZFtrBSfvW1g2ad6b8KmmBCDmbHggKk5BDUdJq2Un", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3Ri9jH3mUr9Ev4xLvJRJaBuEvCdMcsC44kR7s6nHV8oM1wFyaERS53wckp1drsBNnQAg1d12md8dZYzHcZHGE4FQKvf7VCzjahMCwhFMbfmQQ1QtkczuuZiYUjF1CsYBq8f2CFxHLp93CRrhcMENNgq", + "public": + "xpub6Ayuka6JHUYXkJVjVGToeytDM49TAupXixmR5mFzsEHW8UncxHrq5aSWnQRrW58erwmvdvHYbXztEc2MbBNG2Rg95K54tAdgvrU7jKyqdtd", + "address": + "DdzFFzCqrhsnAvWW3SNqqfmVs2v9jxq5jVJxEHKqxpdoC6zTn27fyUyXDTvLk6r9U1RrSVbEFHtxpRDYuB78Yh2RKemyv4BCXCEJZKKJ", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "c12ce47ce5df7f8618e8627d47f16e55f115d24a0e8d1f82821c0f9e24855b57", + "private": + "0030b120c696aebc8ac62997e9196b16f4fabfc7fd5ff040cf195249f68da0529b82a2a5858ef6b6d541f9397e67647370133d9b917c9880139b65d9a1786a62", + "public": + "00e7301eead358a6388b83f0e32238bc237d8e8c9b37b00dbb99abe8322e695aa3", + "chaincode": + "159b55fee37181d10f25e22d1d52d7124315a9ab0e1a00a2a864f92da409e7ec", + "hd_key": + "5dbf00ed6fdb568db2e51e648db1731793252ca8b5fef688a2b0f680eb484ed6", + "child": [ + { + "private": + "xprv3Rftcix2pEEC2hDPkG9Nz2uR56eTEH7GEoZr6RmCXYFeSwkMi9B3VDumUqf4JLPUkPEzT85wHn5tqASMpWvFEeUAyrCQtUkYVs4VZmXWttNmskVxDs52LktchSj7ejAkg71QrpvWB5c5nU99USqZJn9", + "public": + "xpub6ArJPMyxj7MXvG7voFNjsuHaosC3V6qQDFY1XzR3VhG36oXDXjDRGWYHbKWWB39KmvYhLY6i7G7RpXFZN59uNKd8TYQmFYftk97jkhvXWEy", + "address": + "DdzFFzCqrhsqLoZuTp39zynV4vBjbS4iFBThp5kAqJ7UWp2wUMwdepj1aKd8vT9vUwNzFrCJh58jGz4VJy7VsrghREo3cic2C2XQV9r1", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rftcix2pEEC3vSWb9sZsbvpUNZDgza95MZHzAVDwrHgEQm5LiCriSA8Qmxoxypa1EGVpSKVjQyEQgpRbM1PPbe7wrh1Cn39Vt4RQJFfGhrUZ3vxSD4ZLm2otzhAv5DgFVZ1bNkBrjKohFrqSJ17QRT", + "public": + "xpub6ArJPMyxj7MXzPtWbhZ1E8CQpoYJHbrr3e9pf6ohKv8fxj8cLwJkJrQCLyADkf1Bk9JHkbxWJEw5cBFDjnNSYJRNc8jvCN6tSY8xXpQqhN8", + "address": + "DdzFFzCqrhskdAyQZboMoU8eKCtG6cvbVdy1ANo4CAGt2mQVQ5zkc6mg2YbmwmAibvU9ykZrFf6wxHz1wxj6QVvm59PWLwnAN118qQu8", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rftcix2pEEC4eaGqF13D6nLwNVmf31c6y34xbe36p1j4zKfREpXXHaouCe3STXDpiRjJYWuTzn2SSvkCjjFEwaAa6QWWKrqkzPPk2qk9Zf6c6URvV7PsK2rMjfU8DvzMj4efuhzGjLzfFiRbdJVwkv", + "public": + "xpub6ArJPMyxj7MY2qix4FQqauYa4hnGcvLt2XcKUb1LujxQtwoCA3t9t5foGC9Le11DtQS3Eogn7dixticvyd31PJHzW6xLBJPyS5pLxP2dr97", + "address": + "DdzFFzCqrhsjBXx7LauJmKvapdJ7ahjSwHUwMushQC9LJt1ZQzEtzFF1me6VyFBwm3j5JVGyowigBv3fUL5cJTPXr9kGq9JwXbfZVZDa", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RPTY1Crpe6J7jfsxMFuNqfNbUMmMiiPFwA6R1gVUcDmURLuNJSk9YBb81TweuDtY67XWHf2fzUbXT7YD14hobcyy11wAK5ivotS3dbW7FNW5E5KfG3iExuXrpf9rGa72kgVVSY99Fu5c87Xf3mgB9q", + "public": + "xpub69tz2bzkmE1Qg6JWypYM11YmczaZVTDqJXWCWEXmH1KaDfF3zumks4ve4fEAnNG3MAhugeskXqVPh62h7qzjs1AJD5ERnCzcV36NaPxcynw", + "address": + "DdzFFzCqrht47JxrFypC1tXLzDHMUh7cH6gMRgwGUC4y1mzkSrTpnUKBEjAgdfmjC8mWcBnmC1VLPxX59oet8fsMA5AaP4QMuSo7ev5E", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RPTY1Crpe6J8eTG9Jtvr6e5Qvvz66XDbk8Hz1TsT5TCsn71N19yLntY2bjwc6rzJbaP5KHDp55VsDXjgxd5rqXjZf8quR74ThhXWUjLHudv8ioRTdGyZPgheJ6QoMg47KT9jbL6t4x1DgnsLnMHGNN", + "public": + "xpub69tz2bzkmE1Qj9z3riCf1hq81eCcdGkrhCpuHREpoQ8pdAy8iemh6fUri8gvKC6jzdJpGzF6AAdfLTfjqJuRiHKPjsPra6oTb74xNDgULw1", + "address": + "DdzFFzCqrhsqHAqiswHKatwefMwx6nugz8voVABXRp5z7FfCjuvyCM4kk3frFm7Nnc6BoRPEyV8EmorwqQvKEjuDqk9PqjHbrjRA1gug", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RPTY1Crpe6J9PK21bpDzMsE26GcAGBg3qDYBykvyj4PwgG1R3GXUg5ortyLVNtwmvoKtfr1E8QAURUK6n2FZDbCS47AATxYnAgrvxMYXiGa59sSNx8xSofm91cVKF7eMX9nZoCVcBvVgcJpeZVxe7R", + "public": + "xpub69tz2bzkmE1QmeFrMh3R6GowYthQ8VnxSB54WLHZMwehs4EzcYfRwdYy8E2Wffida8vxKwPq9b1HDvAPNLvbkAFHxqQHqMFZuNCecmmL1HB", + "address": + "DdzFFzCqrhse3AeUboxrV1cyPYBnP2J213bHvcpCib8fMp8YNLnkTN96xhnkbkMeyRSsRvzzgrYqLEUuocLhDjD7UZk4TWb2DQz2zZWQ", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RSTUy4uToSj3u2wdC72K659JJPmsj6nU5dje31DUCX2D7UBFwZZXcr4p6XkVyNpX2wT88cZnUpTLF7So3cCF5RAVCddoo3Wm5NuJWFF87sGpKJzpg8PX6bpiacMdSWxdWUGz7um9uoq4UjRVnVyZvg", + "public": + "xpub6A55b5go2yvzhC84AtoyDbUFwymoMeJ4MFrup9HuQ1fRnvAgcWtgCzjcm223ZCS1zqirjkQ7BZCtQKrRo96me9oAhZSPVv1tJSicBPKWwuG", + "address": + "DdzFFzCqrhsziMBceisdP5nCDEXkoucYCFvc57YF1ZX8mquQpLUMbncqgizBbVjZRE3uf2fv8jHBdDmWRwKZJZUEw8iAmRpcv5nk1gHF", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RSTUy4uToSj4bjtbp5oPAYNWgpYm7X2k45aq5RJsKef7PQsMbrUTuzaXLVY5qVtM1KFK8U3rCjyssHfauVXMF3jneTxj4dKf8D3AzYQvAaA3ZC1tvCH7RRrwXd1nGY9eNRFm6ZBXaFbcYpmnmcausi", + "public": + "xpub6A55b5go2yvzjZ9iPhKUhb4CnTbdW9C1geXQyThmmp8NXniYURuvbHS2G9Qc7WqvCAGB9TfxQYS5xhEfB2Rz6NkKxJYFoEst7LJhWe6p8HX", + "address": + "DdzFFzCqrhsxa5XmmQR7rrdM5mFy2VLAC7UpECDxXZe719qHAN2t8aCfXo82vS8ajGCfjTpbvsAKb2qjksThmY5t4fsWAe6nh8XXPUo8", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RSTUy4uToSj5NkNfMeiKqYRG2F4wGJcJmNVeg6hANU2EdPKTZN12pGCFY7H6DUFcM2XmjPTaFGxDikJmhyHWAXsNrpDUPbck9Q5natY5SYm8xpkwdpntFXYTudJzNhj8thujPtGB3ZvD4sJeVJ7WK6", + "public": + "xpub6A55b5go2yvznAfPMoyCvpXwArJaMiu7A76WnmsoNUA6LukFR75WArTLy17y3bbiSy5Jw5SxTSvWETZYrJQXcrXTN8rRP72vDued95AWxw9", + "address": + "DdzFFzCqrht1Ceq6CSm9FovFb6uN24YzmTnaPPw44RWFdzJrKFfGapxGgVzJ1QXwb8hb8ityEL1dy3kdnwq4WGL4xkJd5Ydqftnhw2yo", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "c12ce47ce5df7f8618e8627d47f16e55f115d24a0e8d1f82821c0f9e24855b57", + "private": + "0030b120c696aebc8ac62997e9196b16f4fabfc7fd5ff040cf195249f68da0529b82a2a5858ef6b6d541f9397e67647370133d9b917c9880139b65d9a1786a62", + "public": + "00e7301eead358a6388b83f0e32238bc237d8e8c9b37b00dbb99abe8322e695aa3", + "chaincode": + "159b55fee37181d10f25e22d1d52d7124315a9ab0e1a00a2a864f92da409e7ec", + "hd_key": + "5dbf00ed6fdb568db2e51e648db1731793252ca8b5fef688a2b0f680eb484ed6", + "child": [ + { + "private": + "xprv3Rftcix2pEEC2hDPkG9Nz2uR56eTEH7GEoZr6RmCXYFeSwkMi9B3VDumUqf4JLPUkPEzT85wHn5tqASMpWvFEeUAyrCQtUkYVs4VZmXWttNmskVxDs52LktchSj7ejAkg71QrpvWB5c5nU99USqZJn9", + "public": + "xpub6ArJPMyxj7MXvG7voFNjsuHaosC3V6qQDFY1XzR3VhG36oXDXjDRGWYHbKWWB39KmvYhLY6i7G7RpXFZN59uNKd8TYQmFYftk97jkhvXWEy", + "address": + "DdzFFzCqrhsqLoZuTp39zynV4vBjbS4iFBThp5kAqJ7UWp2wUMwdepj1aKd8vT9vUwNzFrCJh58jGz4VJy7VsrghREo3cic2C2XQV9r1", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rftcix2pEEC3vSWb9sZsbvpUNZDgza95MZHzAVDwrHgEQm5LiCriSA8Qmxoxypa1EGVpSKVjQyEQgpRbM1PPbe7wrh1Cn39Vt4RQJFfGhrUZ3vxSD4ZLm2otzhAv5DgFVZ1bNkBrjKohFrqSJ17QRT", + "public": + "xpub6ArJPMyxj7MXzPtWbhZ1E8CQpoYJHbrr3e9pf6ohKv8fxj8cLwJkJrQCLyADkf1Bk9JHkbxWJEw5cBFDjnNSYJRNc8jvCN6tSY8xXpQqhN8", + "address": + "DdzFFzCqrhskdAyQZboMoU8eKCtG6cvbVdy1ANo4CAGt2mQVQ5zkc6mg2YbmwmAibvU9ykZrFf6wxHz1wxj6QVvm59PWLwnAN118qQu8", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rftcix2pEEC4eaGqF13D6nLwNVmf31c6y34xbe36p1j4zKfREpXXHaouCe3STXDpiRjJYWuTzn2SSvkCjjFEwaAa6QWWKrqkzPPk2qk9Zf6c6URvV7PsK2rMjfU8DvzMj4efuhzGjLzfFiRbdJVwkv", + "public": + "xpub6ArJPMyxj7MY2qix4FQqauYa4hnGcvLt2XcKUb1LujxQtwoCA3t9t5foGC9Le11DtQS3Eogn7dixticvyd31PJHzW6xLBJPyS5pLxP2dr97", + "address": + "DdzFFzCqrhsjBXx7LauJmKvapdJ7ahjSwHUwMushQC9LJt1ZQzEtzFF1me6VyFBwm3j5JVGyowigBv3fUL5cJTPXr9kGq9JwXbfZVZDa", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RPTY1Crpe6J7jfsxMFuNqfNbUMmMiiPFwA6R1gVUcDmURLuNJSk9YBb81TweuDtY67XWHf2fzUbXT7YD14hobcyy11wAK5ivotS3dbW7FNW5E5KfG3iExuXrpf9rGa72kgVVSY99Fu5c87Xf3mgB9q", + "public": + "xpub69tz2bzkmE1Qg6JWypYM11YmczaZVTDqJXWCWEXmH1KaDfF3zumks4ve4fEAnNG3MAhugeskXqVPh62h7qzjs1AJD5ERnCzcV36NaPxcynw", + "address": + "DdzFFzCqrht47JxrFypC1tXLzDHMUh7cH6gMRgwGUC4y1mzkSrTpnUKBEjAgdfmjC8mWcBnmC1VLPxX59oet8fsMA5AaP4QMuSo7ev5E", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RPTY1Crpe6J8eTG9Jtvr6e5Qvvz66XDbk8Hz1TsT5TCsn71N19yLntY2bjwc6rzJbaP5KHDp55VsDXjgxd5rqXjZf8quR74ThhXWUjLHudv8ioRTdGyZPgheJ6QoMg47KT9jbL6t4x1DgnsLnMHGNN", + "public": + "xpub69tz2bzkmE1Qj9z3riCf1hq81eCcdGkrhCpuHREpoQ8pdAy8iemh6fUri8gvKC6jzdJpGzF6AAdfLTfjqJuRiHKPjsPra6oTb74xNDgULw1", + "address": + "DdzFFzCqrhsqHAqiswHKatwefMwx6nugz8voVABXRp5z7FfCjuvyCM4kk3frFm7Nnc6BoRPEyV8EmorwqQvKEjuDqk9PqjHbrjRA1gug", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RPTY1Crpe6J9PK21bpDzMsE26GcAGBg3qDYBykvyj4PwgG1R3GXUg5ortyLVNtwmvoKtfr1E8QAURUK6n2FZDbCS47AATxYnAgrvxMYXiGa59sSNx8xSofm91cVKF7eMX9nZoCVcBvVgcJpeZVxe7R", + "public": + "xpub69tz2bzkmE1QmeFrMh3R6GowYthQ8VnxSB54WLHZMwehs4EzcYfRwdYy8E2Wffida8vxKwPq9b1HDvAPNLvbkAFHxqQHqMFZuNCecmmL1HB", + "address": + "DdzFFzCqrhse3AeUboxrV1cyPYBnP2J213bHvcpCib8fMp8YNLnkTN96xhnkbkMeyRSsRvzzgrYqLEUuocLhDjD7UZk4TWb2DQz2zZWQ", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RSTUy4uToSj3u2wdC72K659JJPmsj6nU5dje31DUCX2D7UBFwZZXcr4p6XkVyNpX2wT88cZnUpTLF7So3cCF5RAVCddoo3Wm5NuJWFF87sGpKJzpg8PX6bpiacMdSWxdWUGz7um9uoq4UjRVnVyZvg", + "public": + "xpub6A55b5go2yvzhC84AtoyDbUFwymoMeJ4MFrup9HuQ1fRnvAgcWtgCzjcm223ZCS1zqirjkQ7BZCtQKrRo96me9oAhZSPVv1tJSicBPKWwuG", + "address": + "DdzFFzCqrhsziMBceisdP5nCDEXkoucYCFvc57YF1ZX8mquQpLUMbncqgizBbVjZRE3uf2fv8jHBdDmWRwKZJZUEw8iAmRpcv5nk1gHF", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RSTUy4uToSj4bjtbp5oPAYNWgpYm7X2k45aq5RJsKef7PQsMbrUTuzaXLVY5qVtM1KFK8U3rCjyssHfauVXMF3jneTxj4dKf8D3AzYQvAaA3ZC1tvCH7RRrwXd1nGY9eNRFm6ZBXaFbcYpmnmcausi", + "public": + "xpub6A55b5go2yvzjZ9iPhKUhb4CnTbdW9C1geXQyThmmp8NXniYURuvbHS2G9Qc7WqvCAGB9TfxQYS5xhEfB2Rz6NkKxJYFoEst7LJhWe6p8HX", + "address": + "DdzFFzCqrhsxa5XmmQR7rrdM5mFy2VLAC7UpECDxXZe719qHAN2t8aCfXo82vS8ajGCfjTpbvsAKb2qjksThmY5t4fsWAe6nh8XXPUo8", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RSTUy4uToSj5NkNfMeiKqYRG2F4wGJcJmNVeg6hANU2EdPKTZN12pGCFY7H6DUFcM2XmjPTaFGxDikJmhyHWAXsNrpDUPbck9Q5natY5SYm8xpkwdpntFXYTudJzNhj8thujPtGB3ZvD4sJeVJ7WK6", + "public": + "xpub6A55b5go2yvznAfPMoyCvpXwArJaMiu7A76WnmsoNUA6LukFR75WArTLy17y3bbiSy5Jw5SxTSvWETZYrJQXcrXTN8rRP72vDued95AWxw9", + "address": + "DdzFFzCqrht1Ceq6CSm9FovFb6uN24YzmTnaPPw44RWFdzJrKFfGapxGgVzJ1QXwb8hb8ityEL1dy3kdnwq4WGL4xkJd5Ydqftnhw2yo", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "c12ce47ce5df7f8618e8627d47f16e55f115d24a0e8d1f82821c0f9e24855b57", + "private": + "0030b120c696aebc8ac62997e9196b16f4fabfc7fd5ff040cf195249f68da0529b82a2a5858ef6b6d541f9397e67647370133d9b917c9880139b65d9a1786a62", + "public": + "00e7301eead358a6388b83f0e32238bc237d8e8c9b37b00dbb99abe8322e695aa3", + "chaincode": + "159b55fee37181d10f25e22d1d52d7124315a9ab0e1a00a2a864f92da409e7ec", + "hd_key": + "5dbf00ed6fdb568db2e51e648db1731793252ca8b5fef688a2b0f680eb484ed6", + "child": [ + { + "private": + "xprv3Rftcix2pEEC2hDPkG9Nz2uR56eTEH7GEoZr6RmCXYFeSwkMi9B3VDumUqf4JLPUkPEzT85wHn5tqASMpWvFEeUAyrCQtUkYVs4VZmXWttNmskVxDs52LktchSj7ejAkg71QrpvWB5c5nU99USqZJn9", + "public": + "xpub6ArJPMyxj7MXvG7voFNjsuHaosC3V6qQDFY1XzR3VhG36oXDXjDRGWYHbKWWB39KmvYhLY6i7G7RpXFZN59uNKd8TYQmFYftk97jkhvXWEy", + "address": + "DdzFFzCqrhsqLoZuTp39zynV4vBjbS4iFBThp5kAqJ7UWp2wUMwdepj1aKd8vT9vUwNzFrCJh58jGz4VJy7VsrghREo3cic2C2XQV9r1", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rftcix2pEEC3vSWb9sZsbvpUNZDgza95MZHzAVDwrHgEQm5LiCriSA8Qmxoxypa1EGVpSKVjQyEQgpRbM1PPbe7wrh1Cn39Vt4RQJFfGhrUZ3vxSD4ZLm2otzhAv5DgFVZ1bNkBrjKohFrqSJ17QRT", + "public": + "xpub6ArJPMyxj7MXzPtWbhZ1E8CQpoYJHbrr3e9pf6ohKv8fxj8cLwJkJrQCLyADkf1Bk9JHkbxWJEw5cBFDjnNSYJRNc8jvCN6tSY8xXpQqhN8", + "address": + "DdzFFzCqrhskdAyQZboMoU8eKCtG6cvbVdy1ANo4CAGt2mQVQ5zkc6mg2YbmwmAibvU9ykZrFf6wxHz1wxj6QVvm59PWLwnAN118qQu8", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rftcix2pEEC4eaGqF13D6nLwNVmf31c6y34xbe36p1j4zKfREpXXHaouCe3STXDpiRjJYWuTzn2SSvkCjjFEwaAa6QWWKrqkzPPk2qk9Zf6c6URvV7PsK2rMjfU8DvzMj4efuhzGjLzfFiRbdJVwkv", + "public": + "xpub6ArJPMyxj7MY2qix4FQqauYa4hnGcvLt2XcKUb1LujxQtwoCA3t9t5foGC9Le11DtQS3Eogn7dixticvyd31PJHzW6xLBJPyS5pLxP2dr97", + "address": + "DdzFFzCqrhsjBXx7LauJmKvapdJ7ahjSwHUwMushQC9LJt1ZQzEtzFF1me6VyFBwm3j5JVGyowigBv3fUL5cJTPXr9kGq9JwXbfZVZDa", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RPTY1Crpe6J7jfsxMFuNqfNbUMmMiiPFwA6R1gVUcDmURLuNJSk9YBb81TweuDtY67XWHf2fzUbXT7YD14hobcyy11wAK5ivotS3dbW7FNW5E5KfG3iExuXrpf9rGa72kgVVSY99Fu5c87Xf3mgB9q", + "public": + "xpub69tz2bzkmE1Qg6JWypYM11YmczaZVTDqJXWCWEXmH1KaDfF3zumks4ve4fEAnNG3MAhugeskXqVPh62h7qzjs1AJD5ERnCzcV36NaPxcynw", + "address": + "DdzFFzCqrht47JxrFypC1tXLzDHMUh7cH6gMRgwGUC4y1mzkSrTpnUKBEjAgdfmjC8mWcBnmC1VLPxX59oet8fsMA5AaP4QMuSo7ev5E", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RPTY1Crpe6J8eTG9Jtvr6e5Qvvz66XDbk8Hz1TsT5TCsn71N19yLntY2bjwc6rzJbaP5KHDp55VsDXjgxd5rqXjZf8quR74ThhXWUjLHudv8ioRTdGyZPgheJ6QoMg47KT9jbL6t4x1DgnsLnMHGNN", + "public": + "xpub69tz2bzkmE1Qj9z3riCf1hq81eCcdGkrhCpuHREpoQ8pdAy8iemh6fUri8gvKC6jzdJpGzF6AAdfLTfjqJuRiHKPjsPra6oTb74xNDgULw1", + "address": + "DdzFFzCqrhsqHAqiswHKatwefMwx6nugz8voVABXRp5z7FfCjuvyCM4kk3frFm7Nnc6BoRPEyV8EmorwqQvKEjuDqk9PqjHbrjRA1gug", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RPTY1Crpe6J9PK21bpDzMsE26GcAGBg3qDYBykvyj4PwgG1R3GXUg5ortyLVNtwmvoKtfr1E8QAURUK6n2FZDbCS47AATxYnAgrvxMYXiGa59sSNx8xSofm91cVKF7eMX9nZoCVcBvVgcJpeZVxe7R", + "public": + "xpub69tz2bzkmE1QmeFrMh3R6GowYthQ8VnxSB54WLHZMwehs4EzcYfRwdYy8E2Wffida8vxKwPq9b1HDvAPNLvbkAFHxqQHqMFZuNCecmmL1HB", + "address": + "DdzFFzCqrhse3AeUboxrV1cyPYBnP2J213bHvcpCib8fMp8YNLnkTN96xhnkbkMeyRSsRvzzgrYqLEUuocLhDjD7UZk4TWb2DQz2zZWQ", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RSTUy4uToSj3u2wdC72K659JJPmsj6nU5dje31DUCX2D7UBFwZZXcr4p6XkVyNpX2wT88cZnUpTLF7So3cCF5RAVCddoo3Wm5NuJWFF87sGpKJzpg8PX6bpiacMdSWxdWUGz7um9uoq4UjRVnVyZvg", + "public": + "xpub6A55b5go2yvzhC84AtoyDbUFwymoMeJ4MFrup9HuQ1fRnvAgcWtgCzjcm223ZCS1zqirjkQ7BZCtQKrRo96me9oAhZSPVv1tJSicBPKWwuG", + "address": + "DdzFFzCqrhsziMBceisdP5nCDEXkoucYCFvc57YF1ZX8mquQpLUMbncqgizBbVjZRE3uf2fv8jHBdDmWRwKZJZUEw8iAmRpcv5nk1gHF", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RSTUy4uToSj4bjtbp5oPAYNWgpYm7X2k45aq5RJsKef7PQsMbrUTuzaXLVY5qVtM1KFK8U3rCjyssHfauVXMF3jneTxj4dKf8D3AzYQvAaA3ZC1tvCH7RRrwXd1nGY9eNRFm6ZBXaFbcYpmnmcausi", + "public": + "xpub6A55b5go2yvzjZ9iPhKUhb4CnTbdW9C1geXQyThmmp8NXniYURuvbHS2G9Qc7WqvCAGB9TfxQYS5xhEfB2Rz6NkKxJYFoEst7LJhWe6p8HX", + "address": + "DdzFFzCqrhsxa5XmmQR7rrdM5mFy2VLAC7UpECDxXZe719qHAN2t8aCfXo82vS8ajGCfjTpbvsAKb2qjksThmY5t4fsWAe6nh8XXPUo8", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RSTUy4uToSj5NkNfMeiKqYRG2F4wGJcJmNVeg6hANU2EdPKTZN12pGCFY7H6DUFcM2XmjPTaFGxDikJmhyHWAXsNrpDUPbck9Q5natY5SYm8xpkwdpntFXYTudJzNhj8thujPtGB3ZvD4sJeVJ7WK6", + "public": + "xpub6A55b5go2yvznAfPMoyCvpXwArJaMiu7A76WnmsoNUA6LukFR75WArTLy17y3bbiSy5Jw5SxTSvWETZYrJQXcrXTN8rRP72vDued95AWxw9", + "address": + "DdzFFzCqrht1Ceq6CSm9FovFb6uN24YzmTnaPPw44RWFdzJrKFfGapxGgVzJ1QXwb8hb8ityEL1dy3kdnwq4WGL4xkJd5Ydqftnhw2yo", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "bde681f25db87df4238bc0cf9771837bea049a483c505eb18f7bd591657738c6", + "private": + "08a33edeea7cbab0630320fd6c470f3828fd2fe2926effb03422d20820f2615bb59c7186563577aa6ffb1611f188b8a4671c921626d56512d325e07e507dffc6", + "public": + "0015c606f04449d9a550941f748bfd49d77982937f3d11daf32323c7feb1cbcf59", + "chaincode": + "4a1d811ee173e7672887da42cbaeb72259170bb78d15f8d419ffebd8e85846d1", + "hd_key": + "4e170917ffe126227fab3261a2580bf6b5ccedc86be8d1b37640389a0dfadfb7", + "child": [ + { + "private": + "xprv3ReftS6tdySh4XCgoL1Kc8VwFjmbqe9vmefXfEGrjku8GyMF4rP5mptTiXJ8y2vD2f4tGmJQiQMmPvY35H7Br9SWEyBTtix88Ej6A3yJmMe6C3MjKh6tuzPo9pvbeuRj3V8xg6KEnhWB7HCb2bpQ8kA", + "public": + "xpub6AnCHpczEzjuUNJaHEjCoA4Q8thuvzyYzMWdxRTa1XTrduiiCwbdGVpUQEhyLkSvTpgKDmFpCRPR6GoLUT1RpPZMAXGQd7wcW9qvvbBQeRE", + "address": + "DdzFFzCqrhssSYqSEEpPCjD4EWfv3G9zfMwmdDdTu9zQ1oV1zE42ZzUZuQpbypcv5jvkogjc6ccL5rxR8bXUTGZuBrKu7jYF38EhAdco", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3ReftS6tdySh5cnCopiRU672RFbELwP63AooUcjrgx2z7xEAtnxUe6WRgftjsNmzAxQc2GfNbAaRaES8j4gBYvQnGbj436Qonjxg7H31ExxCQoVaxBwR2dUpK1iUPg5gk7kMxgUXgB2rBTa7FZAaeRW", + "public": + "xpub6AnCHpczEzjuY4Ks71MpcjYBayb7TMD2omyu6F2kVjuKSLdvtz6Gy6gA5fCDVaovByouuLWLpbQzbRpqtuXLCfMy6mgbfZYBHeN42QYaQej", + "address": + "DdzFFzCqrhsrCFALNMv9oHuYYFoZqpgwAeuNxGxR2j62Ph9EsDsnCvJnercKfEPhobP9tnRHTwwy2ixeuRvG6NnETxBNVGyLYQHiLDqq", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3ReftS6tdySh6KybW7jxJJk9B2RqourfE8dRHpVCnrjc9oQmU4nF2vez9qMFeXoVAEz4FgKnR8rRAnVkv54LL9Mo9259ZUP8iH9ksziscWbN3SqxkSFLtmFqRqkEFPx1ULRVAVM7zoBVc4P11ewktQE", + "public": + "xpub6AnCHpczEzjuaT1GmmLevxx36AU9yDNVMgPwivWbLApfXFHqYdvenYBip43UqK1x3N9RzJTvxvJz1EuJfHNx2MB56TbRHQ5QkXD18p5DSFy", + "address": + "DdzFFzCqrhtC1P8ieUFWGMEEiGfaPE46CZzGNS1s2xxEyuZzfVrE9uRNFkRvXr6A8zEv7efWQbSC7PuHDLz6ApP9F7Jtk48EH5ZLHHhi", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RXSKMrcKdAxpYd1u7YMrbz2MFWWXg7cNAy9JiqG9HXeCbuqfdueuu42cp2oRXDLy9kTBxzjTnSBN5Szd8D5PigUGgUHAZh4vjddZeX8Zg26oUygtoBTdgwxemvviei34G4a39aFbpVRREwZcCwHhqZ", + "public": + "xpub6AMqtfQrQciHKiFKUW1CyVeRgbzZQKaQFiugRSxeqsvrxBXoK8J2rSQ5k595mq1y4zWgvUVxnKUC57jgBpmMrcZx5NzvPDWkgr4rbrrPZDy", + "address": + "DdzFFzCqrht2yx6sDGjsCYHUM1SefQVMmj5VLkE3J7eYEAHU9ZxDNEPDd7NTrFgegS8Fit1gUZvNx74uXB8iVRNGyx2EsqEnYTpLLPUz", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RXSKMrcKdAxpw96ubDPnntdgCMR4cbKdpdLhQdxHqxuL2fdHVTT9NURHG4tqgjWQpwjcE66WCpJdQP3AbRkKWwUZk19caXSCr2cahsEfVTqnnuXvZJGVbQSV5MscEG2wS71kv3KXC6UNMLfqxH5bUN", + "public": + "xpub6AMqtfQrQciHM23zqDvWxrYgaZpBwmGLZfgTZw1qogwVy6AumTgdSeQJNHXAim1xts7LntsFPxd6qQmcjtuC7qYiPjZzSP6trEqH6JLUNsf", + "address": + "DdzFFzCqrhsg6ydpAnDp6U67vH4XvcgntfViq1hXL1PXaxuCfoNCjDZVgfkVozoxJvS7ZPcsMb4KmAnjTL2oVySuRmxzc8cvem3bm5yr", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RXSKMrcKdAxqwGFzYcmmxSBhpzkxAUJyGMkN8CqXT3VbrTKSyKkG1fbSLiMpFtihahLYzt3GrVSQhhGQ8rxbgkJUvzGZkgiFbwW4LeTdbQCRiTxx2Jf9AysPQToiDswNgj8zs1Kg6VQfbf36vVPYXo", + "public": + "xpub6AMqtfQrQciHQPiKg5ma6MAFrNQ8GJivMscPcWSRMEtzSWiYAibHah26NmMdEXx6X3GF2MDptJDY96KPyeGnEN4j1TFXUD2YH592rQPNiby", + "address": + "DdzFFzCqrht6W1BrV4dbbNBL2ZdvW8P33fx15u5DX8KbnkzRws2bNm88Kx7uxPeoXJ87SJHWio6416K45DHJHzmeGPLRq7aLvrXnHhy9", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RroN5uy8AiRsh5kGk6SbxA5GgaYvA1hmXsdZAyHqnKyWUHhD1R7N92baxwEnP1tHHYkrLfKCh2mEKDBjmiupMRpTXCYL1YfDjhhcvPs9Zncn7tpt87zssbXHyamLVNbRsFzyCxmssrps6kj5spKQSe", + "public": + "xpub6BV2QRefBmTFK4AXuXxR8z2T6BnAQPssUH8KTo2K6ErEgFrrX1kATdRZwwECYdYV9ce2RUjsKKot8P5icUnwePpZtqpJUZyiEDfg2QMueuT", + "address": + "DdzFFzCqrhsnZTQkcMqTuEwhNRhrveCQCGi1YMJv8vkF8sKYdWsJdPm4FXHu1B9xy4Xgg7sLiXN6GbduYG36E3LuDk7bYx4BGbah7ohm", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RroN5uy8AiRu3dj4RfETyiTztKWAjGfyGh3Fg56eBXUFaaKFESbyYompdKovyXNYShxz4HseBy3ux5GqoBiWrbr7hFMbwDMrxQ8Q6E2wU8TTF4PQ4Sj4YFb95MVjx5Hj4trcFm3jG3VeT4ikGVdsN9", + "public": + "xpub6BV2QRefBmTFPcbKtSCohAy6YQSYQ5fXkncPUfmbxgSe2d528YMiA3kbos4pjNhTVJ6VQxYid4uAxcgVvLNsLW6bhkuT2yRXhUgGbCyBkkc", + "address": + "DdzFFzCqrhssdBtSp1F3NL5eN5yvQGsGdUBfMS2tvQAPfpJfiWHYmhFxZRsVuNPNwGqSKDE8gKAexKUcyXk4qS9yoEfhTW4dM1PkteVM", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RroN5uy8AiRuVP9ke52CCqP98xJqvXKwV3LqvEALuxPoqQrX2Q4r3QDtxmQ4UMVoXqmVSFyHPdmYU81Dy9dvqjV8yL42U5BJMyhWGZSXDvWAXmjK32LbBejjc4JyZXh6jo6AY3Fqkjy79u62rb4iGe", + "public": + "xpub6BV2QRefBmTFR7GeQF2X1GauLxvg28nWJtKmcWPqP7W25FzdK9E7HQp1vHEU1qSLLS1sxsCbGAKMLj8vxwTYDFGFCUarXfyuUYBgkvR69fg", + "address": + "DdzFFzCqrhtBuBaK8SZ9kPFY9xGDV6XZaYN1jzRnJPsYSpktp1ft5Hu7MSYGrp5CcDgEPvpBiTWcWppgZ72d1kB1qUwncJtFLjb3h2n9", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "bde681f25db87df4238bc0cf9771837bea049a483c505eb18f7bd591657738c6", + "private": + "08a33edeea7cbab0630320fd6c470f3828fd2fe2926effb03422d20820f2615bb59c7186563577aa6ffb1611f188b8a4671c921626d56512d325e07e507dffc6", + "public": + "0015c606f04449d9a550941f748bfd49d77982937f3d11daf32323c7feb1cbcf59", + "chaincode": + "4a1d811ee173e7672887da42cbaeb72259170bb78d15f8d419ffebd8e85846d1", + "hd_key": + "4e170917ffe126227fab3261a2580bf6b5ccedc86be8d1b37640389a0dfadfb7", + "child": [ + { + "private": + "xprv3ReftS6tdySh4XCgoL1Kc8VwFjmbqe9vmefXfEGrjku8GyMF4rP5mptTiXJ8y2vD2f4tGmJQiQMmPvY35H7Br9SWEyBTtix88Ej6A3yJmMe6C3MjKh6tuzPo9pvbeuRj3V8xg6KEnhWB7HCb2bpQ8kA", + "public": + "xpub6AnCHpczEzjuUNJaHEjCoA4Q8thuvzyYzMWdxRTa1XTrduiiCwbdGVpUQEhyLkSvTpgKDmFpCRPR6GoLUT1RpPZMAXGQd7wcW9qvvbBQeRE", + "address": + "DdzFFzCqrhssSYqSEEpPCjD4EWfv3G9zfMwmdDdTu9zQ1oV1zE42ZzUZuQpbypcv5jvkogjc6ccL5rxR8bXUTGZuBrKu7jYF38EhAdco", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3ReftS6tdySh5cnCopiRU672RFbELwP63AooUcjrgx2z7xEAtnxUe6WRgftjsNmzAxQc2GfNbAaRaES8j4gBYvQnGbj436Qonjxg7H31ExxCQoVaxBwR2dUpK1iUPg5gk7kMxgUXgB2rBTa7FZAaeRW", + "public": + "xpub6AnCHpczEzjuY4Ks71MpcjYBayb7TMD2omyu6F2kVjuKSLdvtz6Gy6gA5fCDVaovByouuLWLpbQzbRpqtuXLCfMy6mgbfZYBHeN42QYaQej", + "address": + "DdzFFzCqrhsrCFALNMv9oHuYYFoZqpgwAeuNxGxR2j62Ph9EsDsnCvJnercKfEPhobP9tnRHTwwy2ixeuRvG6NnETxBNVGyLYQHiLDqq", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3ReftS6tdySh6KybW7jxJJk9B2RqourfE8dRHpVCnrjc9oQmU4nF2vez9qMFeXoVAEz4FgKnR8rRAnVkv54LL9Mo9259ZUP8iH9ksziscWbN3SqxkSFLtmFqRqkEFPx1ULRVAVM7zoBVc4P11ewktQE", + "public": + "xpub6AnCHpczEzjuaT1GmmLevxx36AU9yDNVMgPwivWbLApfXFHqYdvenYBip43UqK1x3N9RzJTvxvJz1EuJfHNx2MB56TbRHQ5QkXD18p5DSFy", + "address": + "DdzFFzCqrhtC1P8ieUFWGMEEiGfaPE46CZzGNS1s2xxEyuZzfVrE9uRNFkRvXr6A8zEv7efWQbSC7PuHDLz6ApP9F7Jtk48EH5ZLHHhi", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RXSKMrcKdAxpYd1u7YMrbz2MFWWXg7cNAy9JiqG9HXeCbuqfdueuu42cp2oRXDLy9kTBxzjTnSBN5Szd8D5PigUGgUHAZh4vjddZeX8Zg26oUygtoBTdgwxemvviei34G4a39aFbpVRREwZcCwHhqZ", + "public": + "xpub6AMqtfQrQciHKiFKUW1CyVeRgbzZQKaQFiugRSxeqsvrxBXoK8J2rSQ5k595mq1y4zWgvUVxnKUC57jgBpmMrcZx5NzvPDWkgr4rbrrPZDy", + "address": + "DdzFFzCqrht2yx6sDGjsCYHUM1SefQVMmj5VLkE3J7eYEAHU9ZxDNEPDd7NTrFgegS8Fit1gUZvNx74uXB8iVRNGyx2EsqEnYTpLLPUz", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RXSKMrcKdAxpw96ubDPnntdgCMR4cbKdpdLhQdxHqxuL2fdHVTT9NURHG4tqgjWQpwjcE66WCpJdQP3AbRkKWwUZk19caXSCr2cahsEfVTqnnuXvZJGVbQSV5MscEG2wS71kv3KXC6UNMLfqxH5bUN", + "public": + "xpub6AMqtfQrQciHM23zqDvWxrYgaZpBwmGLZfgTZw1qogwVy6AumTgdSeQJNHXAim1xts7LntsFPxd6qQmcjtuC7qYiPjZzSP6trEqH6JLUNsf", + "address": + "DdzFFzCqrhsg6ydpAnDp6U67vH4XvcgntfViq1hXL1PXaxuCfoNCjDZVgfkVozoxJvS7ZPcsMb4KmAnjTL2oVySuRmxzc8cvem3bm5yr", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RXSKMrcKdAxqwGFzYcmmxSBhpzkxAUJyGMkN8CqXT3VbrTKSyKkG1fbSLiMpFtihahLYzt3GrVSQhhGQ8rxbgkJUvzGZkgiFbwW4LeTdbQCRiTxx2Jf9AysPQToiDswNgj8zs1Kg6VQfbf36vVPYXo", + "public": + "xpub6AMqtfQrQciHQPiKg5ma6MAFrNQ8GJivMscPcWSRMEtzSWiYAibHah26NmMdEXx6X3GF2MDptJDY96KPyeGnEN4j1TFXUD2YH592rQPNiby", + "address": + "DdzFFzCqrht6W1BrV4dbbNBL2ZdvW8P33fx15u5DX8KbnkzRws2bNm88Kx7uxPeoXJ87SJHWio6416K45DHJHzmeGPLRq7aLvrXnHhy9", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RroN5uy8AiRsh5kGk6SbxA5GgaYvA1hmXsdZAyHqnKyWUHhD1R7N92baxwEnP1tHHYkrLfKCh2mEKDBjmiupMRpTXCYL1YfDjhhcvPs9Zncn7tpt87zssbXHyamLVNbRsFzyCxmssrps6kj5spKQSe", + "public": + "xpub6BV2QRefBmTFK4AXuXxR8z2T6BnAQPssUH8KTo2K6ErEgFrrX1kATdRZwwECYdYV9ce2RUjsKKot8P5icUnwePpZtqpJUZyiEDfg2QMueuT", + "address": + "DdzFFzCqrhsnZTQkcMqTuEwhNRhrveCQCGi1YMJv8vkF8sKYdWsJdPm4FXHu1B9xy4Xgg7sLiXN6GbduYG36E3LuDk7bYx4BGbah7ohm", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RroN5uy8AiRu3dj4RfETyiTztKWAjGfyGh3Fg56eBXUFaaKFESbyYompdKovyXNYShxz4HseBy3ux5GqoBiWrbr7hFMbwDMrxQ8Q6E2wU8TTF4PQ4Sj4YFb95MVjx5Hj4trcFm3jG3VeT4ikGVdsN9", + "public": + "xpub6BV2QRefBmTFPcbKtSCohAy6YQSYQ5fXkncPUfmbxgSe2d528YMiA3kbos4pjNhTVJ6VQxYid4uAxcgVvLNsLW6bhkuT2yRXhUgGbCyBkkc", + "address": + "DdzFFzCqrhssdBtSp1F3NL5eN5yvQGsGdUBfMS2tvQAPfpJfiWHYmhFxZRsVuNPNwGqSKDE8gKAexKUcyXk4qS9yoEfhTW4dM1PkteVM", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RroN5uy8AiRuVP9ke52CCqP98xJqvXKwV3LqvEALuxPoqQrX2Q4r3QDtxmQ4UMVoXqmVSFyHPdmYU81Dy9dvqjV8yL42U5BJMyhWGZSXDvWAXmjK32LbBejjc4JyZXh6jo6AY3Fqkjy79u62rb4iGe", + "public": + "xpub6BV2QRefBmTFR7GeQF2X1GauLxvg28nWJtKmcWPqP7W25FzdK9E7HQp1vHEU1qSLLS1sxsCbGAKMLj8vxwTYDFGFCUarXfyuUYBgkvR69fg", + "address": + "DdzFFzCqrhtBuBaK8SZ9kPFY9xGDV6XZaYN1jzRnJPsYSpktp1ft5Hu7MSYGrp5CcDgEPvpBiTWcWppgZ72d1kB1qUwncJtFLjb3h2n9", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "bde681f25db87df4238bc0cf9771837bea049a483c505eb18f7bd591657738c6", + "private": + "08a33edeea7cbab0630320fd6c470f3828fd2fe2926effb03422d20820f2615bb59c7186563577aa6ffb1611f188b8a4671c921626d56512d325e07e507dffc6", + "public": + "0015c606f04449d9a550941f748bfd49d77982937f3d11daf32323c7feb1cbcf59", + "chaincode": + "4a1d811ee173e7672887da42cbaeb72259170bb78d15f8d419ffebd8e85846d1", + "hd_key": + "4e170917ffe126227fab3261a2580bf6b5ccedc86be8d1b37640389a0dfadfb7", + "child": [ + { + "private": + "xprv3ReftS6tdySh4XCgoL1Kc8VwFjmbqe9vmefXfEGrjku8GyMF4rP5mptTiXJ8y2vD2f4tGmJQiQMmPvY35H7Br9SWEyBTtix88Ej6A3yJmMe6C3MjKh6tuzPo9pvbeuRj3V8xg6KEnhWB7HCb2bpQ8kA", + "public": + "xpub6AnCHpczEzjuUNJaHEjCoA4Q8thuvzyYzMWdxRTa1XTrduiiCwbdGVpUQEhyLkSvTpgKDmFpCRPR6GoLUT1RpPZMAXGQd7wcW9qvvbBQeRE", + "address": + "DdzFFzCqrhssSYqSEEpPCjD4EWfv3G9zfMwmdDdTu9zQ1oV1zE42ZzUZuQpbypcv5jvkogjc6ccL5rxR8bXUTGZuBrKu7jYF38EhAdco", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3ReftS6tdySh5cnCopiRU672RFbELwP63AooUcjrgx2z7xEAtnxUe6WRgftjsNmzAxQc2GfNbAaRaES8j4gBYvQnGbj436Qonjxg7H31ExxCQoVaxBwR2dUpK1iUPg5gk7kMxgUXgB2rBTa7FZAaeRW", + "public": + "xpub6AnCHpczEzjuY4Ks71MpcjYBayb7TMD2omyu6F2kVjuKSLdvtz6Gy6gA5fCDVaovByouuLWLpbQzbRpqtuXLCfMy6mgbfZYBHeN42QYaQej", + "address": + "DdzFFzCqrhsrCFALNMv9oHuYYFoZqpgwAeuNxGxR2j62Ph9EsDsnCvJnercKfEPhobP9tnRHTwwy2ixeuRvG6NnETxBNVGyLYQHiLDqq", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3ReftS6tdySh6KybW7jxJJk9B2RqourfE8dRHpVCnrjc9oQmU4nF2vez9qMFeXoVAEz4FgKnR8rRAnVkv54LL9Mo9259ZUP8iH9ksziscWbN3SqxkSFLtmFqRqkEFPx1ULRVAVM7zoBVc4P11ewktQE", + "public": + "xpub6AnCHpczEzjuaT1GmmLevxx36AU9yDNVMgPwivWbLApfXFHqYdvenYBip43UqK1x3N9RzJTvxvJz1EuJfHNx2MB56TbRHQ5QkXD18p5DSFy", + "address": + "DdzFFzCqrhtC1P8ieUFWGMEEiGfaPE46CZzGNS1s2xxEyuZzfVrE9uRNFkRvXr6A8zEv7efWQbSC7PuHDLz6ApP9F7Jtk48EH5ZLHHhi", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RXSKMrcKdAxpYd1u7YMrbz2MFWWXg7cNAy9JiqG9HXeCbuqfdueuu42cp2oRXDLy9kTBxzjTnSBN5Szd8D5PigUGgUHAZh4vjddZeX8Zg26oUygtoBTdgwxemvviei34G4a39aFbpVRREwZcCwHhqZ", + "public": + "xpub6AMqtfQrQciHKiFKUW1CyVeRgbzZQKaQFiugRSxeqsvrxBXoK8J2rSQ5k595mq1y4zWgvUVxnKUC57jgBpmMrcZx5NzvPDWkgr4rbrrPZDy", + "address": + "DdzFFzCqrht2yx6sDGjsCYHUM1SefQVMmj5VLkE3J7eYEAHU9ZxDNEPDd7NTrFgegS8Fit1gUZvNx74uXB8iVRNGyx2EsqEnYTpLLPUz", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RXSKMrcKdAxpw96ubDPnntdgCMR4cbKdpdLhQdxHqxuL2fdHVTT9NURHG4tqgjWQpwjcE66WCpJdQP3AbRkKWwUZk19caXSCr2cahsEfVTqnnuXvZJGVbQSV5MscEG2wS71kv3KXC6UNMLfqxH5bUN", + "public": + "xpub6AMqtfQrQciHM23zqDvWxrYgaZpBwmGLZfgTZw1qogwVy6AumTgdSeQJNHXAim1xts7LntsFPxd6qQmcjtuC7qYiPjZzSP6trEqH6JLUNsf", + "address": + "DdzFFzCqrhsg6ydpAnDp6U67vH4XvcgntfViq1hXL1PXaxuCfoNCjDZVgfkVozoxJvS7ZPcsMb4KmAnjTL2oVySuRmxzc8cvem3bm5yr", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RXSKMrcKdAxqwGFzYcmmxSBhpzkxAUJyGMkN8CqXT3VbrTKSyKkG1fbSLiMpFtihahLYzt3GrVSQhhGQ8rxbgkJUvzGZkgiFbwW4LeTdbQCRiTxx2Jf9AysPQToiDswNgj8zs1Kg6VQfbf36vVPYXo", + "public": + "xpub6AMqtfQrQciHQPiKg5ma6MAFrNQ8GJivMscPcWSRMEtzSWiYAibHah26NmMdEXx6X3GF2MDptJDY96KPyeGnEN4j1TFXUD2YH592rQPNiby", + "address": + "DdzFFzCqrht6W1BrV4dbbNBL2ZdvW8P33fx15u5DX8KbnkzRws2bNm88Kx7uxPeoXJ87SJHWio6416K45DHJHzmeGPLRq7aLvrXnHhy9", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RroN5uy8AiRsh5kGk6SbxA5GgaYvA1hmXsdZAyHqnKyWUHhD1R7N92baxwEnP1tHHYkrLfKCh2mEKDBjmiupMRpTXCYL1YfDjhhcvPs9Zncn7tpt87zssbXHyamLVNbRsFzyCxmssrps6kj5spKQSe", + "public": + "xpub6BV2QRefBmTFK4AXuXxR8z2T6BnAQPssUH8KTo2K6ErEgFrrX1kATdRZwwECYdYV9ce2RUjsKKot8P5icUnwePpZtqpJUZyiEDfg2QMueuT", + "address": + "DdzFFzCqrhsnZTQkcMqTuEwhNRhrveCQCGi1YMJv8vkF8sKYdWsJdPm4FXHu1B9xy4Xgg7sLiXN6GbduYG36E3LuDk7bYx4BGbah7ohm", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RroN5uy8AiRu3dj4RfETyiTztKWAjGfyGh3Fg56eBXUFaaKFESbyYompdKovyXNYShxz4HseBy3ux5GqoBiWrbr7hFMbwDMrxQ8Q6E2wU8TTF4PQ4Sj4YFb95MVjx5Hj4trcFm3jG3VeT4ikGVdsN9", + "public": + "xpub6BV2QRefBmTFPcbKtSCohAy6YQSYQ5fXkncPUfmbxgSe2d528YMiA3kbos4pjNhTVJ6VQxYid4uAxcgVvLNsLW6bhkuT2yRXhUgGbCyBkkc", + "address": + "DdzFFzCqrhssdBtSp1F3NL5eN5yvQGsGdUBfMS2tvQAPfpJfiWHYmhFxZRsVuNPNwGqSKDE8gKAexKUcyXk4qS9yoEfhTW4dM1PkteVM", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RroN5uy8AiRuVP9ke52CCqP98xJqvXKwV3LqvEALuxPoqQrX2Q4r3QDtxmQ4UMVoXqmVSFyHPdmYU81Dy9dvqjV8yL42U5BJMyhWGZSXDvWAXmjK32LbBejjc4JyZXh6jo6AY3Fqkjy79u62rb4iGe", + "public": + "xpub6BV2QRefBmTFR7GeQF2X1GauLxvg28nWJtKmcWPqP7W25FzdK9E7HQp1vHEU1qSLLS1sxsCbGAKMLj8vxwTYDFGFCUarXfyuUYBgkvR69fg", + "address": + "DdzFFzCqrhtBuBaK8SZ9kPFY9xGDV6XZaYN1jzRnJPsYSpktp1ft5Hu7MSYGrp5CcDgEPvpBiTWcWppgZ72d1kB1qUwncJtFLjb3h2n9", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "c38f7684f218a85f53d379298f2e469a2d9802dc738a7c8c77ca1147f52904a3", + "private": + "8850e548ecd97507f66465fd5fdef64e22fbbfb945ba35797c4a236b518ac257b209c62191d7af25de2321a30b1c9988a74ef013c3804cb8067cb23885220a25", + "public": + "00d3a6794a9156adf0ce276e650b8a15f9b1d296fa2246fd9560deb296dda1a941", + "chaincode": + "b343f78e9732768e53528121d002feab1ca9459bdb035bf594e6b213710ca3e8", + "hd_key": + "4a69c4c07b820657c08f3b6facda8b6f0e109b8b41b6c2c9902a990b424f7fd5", + "child": [ + { + "private": + "xprv3Rf7HGSm9juac3BhWwZqJMNNQ7HpM28YHnAfh4oXPbkoZKGZ2qa1tSYkDqCr1ACeTJDyYGrXtm31iVxoM4X56DYZeu5jtGW4JX4Twhj3gAhcJzQYkUtT2w2dbhRYehPWhuGEXjgFX4YhheSUmKmRKXw", + "public": + "xpub6AofmpbJSApb1K8qvx3x9QphKvc2nxMHFUEuZXZnqkMcpPCJNRaCSpEu92RRgAMTByJqdDNoe7UvzUeFsGXZpnanj2nk3CHXKaD5g1HKP4m", + "address": + "DdzFFzCqrhsno2vSCpn3eiX5pRjtJB1ZAVpNBtw9KZM3qsW5UFDkrYnnyMJYenVEkemEMWzKntuYgQL5zMBV5DZezLKRpEm8sZcFTqj3", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rf7HGSm9juad2tQ7KmxBjxiWe4wtA44nkCW2XBzUa5at3DzxyXkodAb5ayUJY4Av13CkE9yLoPG2t2WL3wRPbn4U17SwjN3gdR7QmiTcPgkhQXCkNBSWVve8nq6SoepA4yisnTYrMGZzkgBeWNHmE8", + "public": + "xpub6AofmpbJSApb4fNqheFMiYz2s9krV34SkDvVN4mTj5bdgx1FzvnGBnxt7UrqZGJQqt78NtBZBsXFbafLFn6JRJi6FwuCtrR7hocmkKzPDXq", + "address": + "DdzFFzCqrhsww4TDei3ZLvncyJAqwnkgUmu7jckwt22dQKkTXumjnNepzXhSVpM8suiNmw1uguUuG7BzfrVhDkXCRytUZNN6HdAEgTXB", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rf7HGSm9juadQgWmoV8jNCG2if2DF47t3YUeotp7QALg5uWK4GFGCwnYcVdjKj4FcZ7zxQV8CPJoEo6EeYsPygq7QrvgyGEHaGhTZrHoB9vbRJXjGN2Qic5HykeWjXMsLPSk9ftvWFp9QQ9XAV9Ybu", + "public": + "xpub6AofmpbJSApb5vkEKjACz73CeJmAzgLfXQpt7h2s8qy4Jg5LfRm2fXzLK9ydqxTUMs21c7ey7Gd3jCiWmMnAJnDZiEKMvUxo5pA9URq2M1w", + "address": + "DdzFFzCqrht8TXn9f7RW4v45RKauaLRBwHMCSFRREtiU4MunWhCk6WLVmPgyb3DBAsXmAuaHmz84wQ3vU1noPziQuoGqXFPQi2HVAJCV", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RpxoBWzFePXovzthxgwc7zFg3M8wJs75YgxVW8sX3auipUTkruE2jGL8rFgUb9t4joCcFVutU6fwwdhm4jokwpBcoyTz2DJCokbEJZWwPQwzqx3r4Bmjon2HyWrULRKe8s6MHeCsdGm92CKk6AJMMV", + "public": + "xpub6BNqfefoKLG4smbc565K5mvfLStbxwSFR5vXuz17116ZHkAoPbt75h8fs28WM5gSXPh55owrvVVbeQXrL69Y2YdNDeaLPL8oebkk9LtuHkR", + "address": + "DdzFFzCqrhtAH7kBJ91y6XWeNtCGgNsNjgg5XeQDUyAd8jejxyhLUfcDwNQF553SVhiwxSuqPbJFTwvFnAemyWcpt44fdQqkNd3dJ9Ms", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RpxoBWzFePXpm1uhwJ7Q6kjsMBWg9yzAx1TaHmg2UfdYN9TLiQbxGe4ACeanZL5pG5CmVGUNSY71aVXh21jHeXEkkrhNdDWrx3K52E4TdYVfhGy4ikS17BefJaATNWnG94xFEbPPshEJuXo3Y6vuYY", + "public": + "xpub6BNqfefoKLG4vZEotRH21BhErRbY9QDG6AGi8ZoQrBnagFEroRcFQ7Y8JfbU6uA18KjYpUpAMeKQyANdeAZwRTV2fikBT9HN6VJTzPDXcQH", + "address": + "DdzFFzCqrhswPiKQHp5PVBscAJN8W71A5HgJNF8psAtR8FQBRQPUVZwC3gzXRd34kk4LeXcWtNFGN4xqrxETEMbWdwiQKEDZwhmm3xyo", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RpxoBWzFePXqUFbDB3DE13LHq2zsnEE9kcMV8pBw5QencPneJc893N9ykgBTGHJZkewNejJPKUwpYQ4m7F7hemGjZNAsDufSbivYKJ9zgGFH6g5pKDsQKeUghaawWYLpTRZhkrPqh4yS7VcXz7F86S", + "public": + "xpub6BNqfefoKLG4xx3vdbZ6EhqjpSEAspZ3697ZPs6gbSSvZ2koEDkJaZptARaKksdTk2TdA2AH8tu98jiMoWmgx4vwWBDiyyzRjTPUfbJNydp", + "address": + "DdzFFzCqrhtCacDTwjQCqJeL521btpk2saZfhAH7swd5yoQ5NDJLzcQnCipDD3yjnSnNiz4yMouPzDBtnFrsctFUfXDucHHm9ejS5hX2", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3Rr3ZeowDy7enGiViw18z67PpH4po44bhEnHtkhegJTxNVDhXqswm2FTKJvSWWDEvbUXgyDtvDEfFxdDbHbTCFtnh5L1WUzPW9FL7Em2ugLvSz8dJUezeFsvwiTwpW8EL6jRtmaFTZV4ChQgRMXnZN5", + "public": + "xpub6BSUxZpFBuKdGg4KsZepR7c6b3v3QvDHz2AhD42ywanac9Z4EpLFUzhJPzE3aDoBzX5onKpqs8qg7u28GeV8gz7bbCZSdP6522u9AJuySmA", + "address": + "DdzFFzCqrhssGCmsjWvkVva8htvw7XcGA8gSXfEzuWkCVPUyiLjsRpNN25b3ZV1bQq27Erjnu8Xyx2BrRTUQCCQRWTqBymTziBy2SSBo", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3Rr3ZeowDy7enhWDRV74v4bKzmTikC5Zxjy8PmF1234c9RsTMRvXXyYKY6y3ntMdBDuKGxd3hb8wTCt5nKWQrHnPHqp65fE3GogyqKkF4BFTRQXTGjpTnQBvm7Y9ib9zsWkjtcFPjQD3iot4JkBboV9", + "public": + "xpub6BSUxZpFBuKdJ7W7tcUhYkoD92NcYP7Yxydm9LuUvYSUuZNC2hrNvxT99GfYZj4svVGSgmHyXN73riD5ryB6qaKBaKAbPyZbftwCntwwFvU", + "address": + "DdzFFzCqrhskZcngTd3hUveaQUyRVNLGHdBUcfrrvzn7Rpsw61UUyzP5JPdmcQDid7pBS4sgiVe4JaKQGUz6YFs5LaCdB39b2S561V1W", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3Rr3ZeowDy7eohyGo7z5fbUmqGH2ZR9uKhpKKdzjvfpLuAV1fjRNc67h42rj2QEVcnmsDEja6Jo932kHF61qdStT889oJAd9uwoFiPL7fjvLKxSkKnMS2FBuKPPi4VJgeu3PS2HLDECeU3j1xMg5nXp", + "public": + "xpub6BSUxZpFBuKdMWKSQpYZMVgPM9ReKwu1oKSWzmGspCiYMNw6AEx4CyXJpMojj1SCcGciNoDLpXwiWJ7GVMUNzBMFdjWAaqZQbJpSHoZSpX4", + "address": + "DdzFFzCqrhspr9zNDo7chxVppF5Q1nRoLtQ1nZkjNaJQRGMa2Vg8nstowPcTMn9fUpxZUwgs8Beh2kwbtr4Lz48CJCj63UuybqVa8wmy", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "c38f7684f218a85f53d379298f2e469a2d9802dc738a7c8c77ca1147f52904a3", + "private": + "8850e548ecd97507f66465fd5fdef64e22fbbfb945ba35797c4a236b518ac257b209c62191d7af25de2321a30b1c9988a74ef013c3804cb8067cb23885220a25", + "public": + "00d3a6794a9156adf0ce276e650b8a15f9b1d296fa2246fd9560deb296dda1a941", + "chaincode": + "b343f78e9732768e53528121d002feab1ca9459bdb035bf594e6b213710ca3e8", + "hd_key": + "4a69c4c07b820657c08f3b6facda8b6f0e109b8b41b6c2c9902a990b424f7fd5", + "child": [ + { + "private": + "xprv3Rf7HGSm9juac3BhWwZqJMNNQ7HpM28YHnAfh4oXPbkoZKGZ2qa1tSYkDqCr1ACeTJDyYGrXtm31iVxoM4X56DYZeu5jtGW4JX4Twhj3gAhcJzQYkUtT2w2dbhRYehPWhuGEXjgFX4YhheSUmKmRKXw", + "public": + "xpub6AofmpbJSApb1K8qvx3x9QphKvc2nxMHFUEuZXZnqkMcpPCJNRaCSpEu92RRgAMTByJqdDNoe7UvzUeFsGXZpnanj2nk3CHXKaD5g1HKP4m", + "address": + "DdzFFzCqrhsno2vSCpn3eiX5pRjtJB1ZAVpNBtw9KZM3qsW5UFDkrYnnyMJYenVEkemEMWzKntuYgQL5zMBV5DZezLKRpEm8sZcFTqj3", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rf7HGSm9juad2tQ7KmxBjxiWe4wtA44nkCW2XBzUa5at3DzxyXkodAb5ayUJY4Av13CkE9yLoPG2t2WL3wRPbn4U17SwjN3gdR7QmiTcPgkhQXCkNBSWVve8nq6SoepA4yisnTYrMGZzkgBeWNHmE8", + "public": + "xpub6AofmpbJSApb4fNqheFMiYz2s9krV34SkDvVN4mTj5bdgx1FzvnGBnxt7UrqZGJQqt78NtBZBsXFbafLFn6JRJi6FwuCtrR7hocmkKzPDXq", + "address": + "DdzFFzCqrhsww4TDei3ZLvncyJAqwnkgUmu7jckwt22dQKkTXumjnNepzXhSVpM8suiNmw1uguUuG7BzfrVhDkXCRytUZNN6HdAEgTXB", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rf7HGSm9juadQgWmoV8jNCG2if2DF47t3YUeotp7QALg5uWK4GFGCwnYcVdjKj4FcZ7zxQV8CPJoEo6EeYsPygq7QrvgyGEHaGhTZrHoB9vbRJXjGN2Qic5HykeWjXMsLPSk9ftvWFp9QQ9XAV9Ybu", + "public": + "xpub6AofmpbJSApb5vkEKjACz73CeJmAzgLfXQpt7h2s8qy4Jg5LfRm2fXzLK9ydqxTUMs21c7ey7Gd3jCiWmMnAJnDZiEKMvUxo5pA9URq2M1w", + "address": + "DdzFFzCqrht8TXn9f7RW4v45RKauaLRBwHMCSFRREtiU4MunWhCk6WLVmPgyb3DBAsXmAuaHmz84wQ3vU1noPziQuoGqXFPQi2HVAJCV", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RpxoBWzFePXovzthxgwc7zFg3M8wJs75YgxVW8sX3auipUTkruE2jGL8rFgUb9t4joCcFVutU6fwwdhm4jokwpBcoyTz2DJCokbEJZWwPQwzqx3r4Bmjon2HyWrULRKe8s6MHeCsdGm92CKk6AJMMV", + "public": + "xpub6BNqfefoKLG4smbc565K5mvfLStbxwSFR5vXuz17116ZHkAoPbt75h8fs28WM5gSXPh55owrvVVbeQXrL69Y2YdNDeaLPL8oebkk9LtuHkR", + "address": + "DdzFFzCqrhtAH7kBJ91y6XWeNtCGgNsNjgg5XeQDUyAd8jejxyhLUfcDwNQF553SVhiwxSuqPbJFTwvFnAemyWcpt44fdQqkNd3dJ9Ms", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RpxoBWzFePXpm1uhwJ7Q6kjsMBWg9yzAx1TaHmg2UfdYN9TLiQbxGe4ACeanZL5pG5CmVGUNSY71aVXh21jHeXEkkrhNdDWrx3K52E4TdYVfhGy4ikS17BefJaATNWnG94xFEbPPshEJuXo3Y6vuYY", + "public": + "xpub6BNqfefoKLG4vZEotRH21BhErRbY9QDG6AGi8ZoQrBnagFEroRcFQ7Y8JfbU6uA18KjYpUpAMeKQyANdeAZwRTV2fikBT9HN6VJTzPDXcQH", + "address": + "DdzFFzCqrhswPiKQHp5PVBscAJN8W71A5HgJNF8psAtR8FQBRQPUVZwC3gzXRd34kk4LeXcWtNFGN4xqrxETEMbWdwiQKEDZwhmm3xyo", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RpxoBWzFePXqUFbDB3DE13LHq2zsnEE9kcMV8pBw5QencPneJc893N9ykgBTGHJZkewNejJPKUwpYQ4m7F7hemGjZNAsDufSbivYKJ9zgGFH6g5pKDsQKeUghaawWYLpTRZhkrPqh4yS7VcXz7F86S", + "public": + "xpub6BNqfefoKLG4xx3vdbZ6EhqjpSEAspZ3697ZPs6gbSSvZ2koEDkJaZptARaKksdTk2TdA2AH8tu98jiMoWmgx4vwWBDiyyzRjTPUfbJNydp", + "address": + "DdzFFzCqrhtCacDTwjQCqJeL521btpk2saZfhAH7swd5yoQ5NDJLzcQnCipDD3yjnSnNiz4yMouPzDBtnFrsctFUfXDucHHm9ejS5hX2", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3Rr3ZeowDy7enGiViw18z67PpH4po44bhEnHtkhegJTxNVDhXqswm2FTKJvSWWDEvbUXgyDtvDEfFxdDbHbTCFtnh5L1WUzPW9FL7Em2ugLvSz8dJUezeFsvwiTwpW8EL6jRtmaFTZV4ChQgRMXnZN5", + "public": + "xpub6BSUxZpFBuKdGg4KsZepR7c6b3v3QvDHz2AhD42ywanac9Z4EpLFUzhJPzE3aDoBzX5onKpqs8qg7u28GeV8gz7bbCZSdP6522u9AJuySmA", + "address": + "DdzFFzCqrhssGCmsjWvkVva8htvw7XcGA8gSXfEzuWkCVPUyiLjsRpNN25b3ZV1bQq27Erjnu8Xyx2BrRTUQCCQRWTqBymTziBy2SSBo", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3Rr3ZeowDy7enhWDRV74v4bKzmTikC5Zxjy8PmF1234c9RsTMRvXXyYKY6y3ntMdBDuKGxd3hb8wTCt5nKWQrHnPHqp65fE3GogyqKkF4BFTRQXTGjpTnQBvm7Y9ib9zsWkjtcFPjQD3iot4JkBboV9", + "public": + "xpub6BSUxZpFBuKdJ7W7tcUhYkoD92NcYP7Yxydm9LuUvYSUuZNC2hrNvxT99GfYZj4svVGSgmHyXN73riD5ryB6qaKBaKAbPyZbftwCntwwFvU", + "address": + "DdzFFzCqrhskZcngTd3hUveaQUyRVNLGHdBUcfrrvzn7Rpsw61UUyzP5JPdmcQDid7pBS4sgiVe4JaKQGUz6YFs5LaCdB39b2S561V1W", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3Rr3ZeowDy7eohyGo7z5fbUmqGH2ZR9uKhpKKdzjvfpLuAV1fjRNc67h42rj2QEVcnmsDEja6Jo932kHF61qdStT889oJAd9uwoFiPL7fjvLKxSkKnMS2FBuKPPi4VJgeu3PS2HLDECeU3j1xMg5nXp", + "public": + "xpub6BSUxZpFBuKdMWKSQpYZMVgPM9ReKwu1oKSWzmGspCiYMNw6AEx4CyXJpMojj1SCcGciNoDLpXwiWJ7GVMUNzBMFdjWAaqZQbJpSHoZSpX4", + "address": + "DdzFFzCqrhspr9zNDo7chxVppF5Q1nRoLtQ1nZkjNaJQRGMa2Vg8nstowPcTMn9fUpxZUwgs8Beh2kwbtr4Lz48CJCj63UuybqVa8wmy", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "c38f7684f218a85f53d379298f2e469a2d9802dc738a7c8c77ca1147f52904a3", + "private": + "8850e548ecd97507f66465fd5fdef64e22fbbfb945ba35797c4a236b518ac257b209c62191d7af25de2321a30b1c9988a74ef013c3804cb8067cb23885220a25", + "public": + "00d3a6794a9156adf0ce276e650b8a15f9b1d296fa2246fd9560deb296dda1a941", + "chaincode": + "b343f78e9732768e53528121d002feab1ca9459bdb035bf594e6b213710ca3e8", + "hd_key": + "4a69c4c07b820657c08f3b6facda8b6f0e109b8b41b6c2c9902a990b424f7fd5", + "child": [ + { + "private": + "xprv3Rf7HGSm9juac3BhWwZqJMNNQ7HpM28YHnAfh4oXPbkoZKGZ2qa1tSYkDqCr1ACeTJDyYGrXtm31iVxoM4X56DYZeu5jtGW4JX4Twhj3gAhcJzQYkUtT2w2dbhRYehPWhuGEXjgFX4YhheSUmKmRKXw", + "public": + "xpub6AofmpbJSApb1K8qvx3x9QphKvc2nxMHFUEuZXZnqkMcpPCJNRaCSpEu92RRgAMTByJqdDNoe7UvzUeFsGXZpnanj2nk3CHXKaD5g1HKP4m", + "address": + "DdzFFzCqrhsno2vSCpn3eiX5pRjtJB1ZAVpNBtw9KZM3qsW5UFDkrYnnyMJYenVEkemEMWzKntuYgQL5zMBV5DZezLKRpEm8sZcFTqj3", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rf7HGSm9juad2tQ7KmxBjxiWe4wtA44nkCW2XBzUa5at3DzxyXkodAb5ayUJY4Av13CkE9yLoPG2t2WL3wRPbn4U17SwjN3gdR7QmiTcPgkhQXCkNBSWVve8nq6SoepA4yisnTYrMGZzkgBeWNHmE8", + "public": + "xpub6AofmpbJSApb4fNqheFMiYz2s9krV34SkDvVN4mTj5bdgx1FzvnGBnxt7UrqZGJQqt78NtBZBsXFbafLFn6JRJi6FwuCtrR7hocmkKzPDXq", + "address": + "DdzFFzCqrhsww4TDei3ZLvncyJAqwnkgUmu7jckwt22dQKkTXumjnNepzXhSVpM8suiNmw1uguUuG7BzfrVhDkXCRytUZNN6HdAEgTXB", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rf7HGSm9juadQgWmoV8jNCG2if2DF47t3YUeotp7QALg5uWK4GFGCwnYcVdjKj4FcZ7zxQV8CPJoEo6EeYsPygq7QrvgyGEHaGhTZrHoB9vbRJXjGN2Qic5HykeWjXMsLPSk9ftvWFp9QQ9XAV9Ybu", + "public": + "xpub6AofmpbJSApb5vkEKjACz73CeJmAzgLfXQpt7h2s8qy4Jg5LfRm2fXzLK9ydqxTUMs21c7ey7Gd3jCiWmMnAJnDZiEKMvUxo5pA9URq2M1w", + "address": + "DdzFFzCqrht8TXn9f7RW4v45RKauaLRBwHMCSFRREtiU4MunWhCk6WLVmPgyb3DBAsXmAuaHmz84wQ3vU1noPziQuoGqXFPQi2HVAJCV", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RpxoBWzFePXovzthxgwc7zFg3M8wJs75YgxVW8sX3auipUTkruE2jGL8rFgUb9t4joCcFVutU6fwwdhm4jokwpBcoyTz2DJCokbEJZWwPQwzqx3r4Bmjon2HyWrULRKe8s6MHeCsdGm92CKk6AJMMV", + "public": + "xpub6BNqfefoKLG4smbc565K5mvfLStbxwSFR5vXuz17116ZHkAoPbt75h8fs28WM5gSXPh55owrvVVbeQXrL69Y2YdNDeaLPL8oebkk9LtuHkR", + "address": + "DdzFFzCqrhtAH7kBJ91y6XWeNtCGgNsNjgg5XeQDUyAd8jejxyhLUfcDwNQF553SVhiwxSuqPbJFTwvFnAemyWcpt44fdQqkNd3dJ9Ms", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RpxoBWzFePXpm1uhwJ7Q6kjsMBWg9yzAx1TaHmg2UfdYN9TLiQbxGe4ACeanZL5pG5CmVGUNSY71aVXh21jHeXEkkrhNdDWrx3K52E4TdYVfhGy4ikS17BefJaATNWnG94xFEbPPshEJuXo3Y6vuYY", + "public": + "xpub6BNqfefoKLG4vZEotRH21BhErRbY9QDG6AGi8ZoQrBnagFEroRcFQ7Y8JfbU6uA18KjYpUpAMeKQyANdeAZwRTV2fikBT9HN6VJTzPDXcQH", + "address": + "DdzFFzCqrhswPiKQHp5PVBscAJN8W71A5HgJNF8psAtR8FQBRQPUVZwC3gzXRd34kk4LeXcWtNFGN4xqrxETEMbWdwiQKEDZwhmm3xyo", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RpxoBWzFePXqUFbDB3DE13LHq2zsnEE9kcMV8pBw5QencPneJc893N9ykgBTGHJZkewNejJPKUwpYQ4m7F7hemGjZNAsDufSbivYKJ9zgGFH6g5pKDsQKeUghaawWYLpTRZhkrPqh4yS7VcXz7F86S", + "public": + "xpub6BNqfefoKLG4xx3vdbZ6EhqjpSEAspZ3697ZPs6gbSSvZ2koEDkJaZptARaKksdTk2TdA2AH8tu98jiMoWmgx4vwWBDiyyzRjTPUfbJNydp", + "address": + "DdzFFzCqrhtCacDTwjQCqJeL521btpk2saZfhAH7swd5yoQ5NDJLzcQnCipDD3yjnSnNiz4yMouPzDBtnFrsctFUfXDucHHm9ejS5hX2", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3Rr3ZeowDy7enGiViw18z67PpH4po44bhEnHtkhegJTxNVDhXqswm2FTKJvSWWDEvbUXgyDtvDEfFxdDbHbTCFtnh5L1WUzPW9FL7Em2ugLvSz8dJUezeFsvwiTwpW8EL6jRtmaFTZV4ChQgRMXnZN5", + "public": + "xpub6BSUxZpFBuKdGg4KsZepR7c6b3v3QvDHz2AhD42ywanac9Z4EpLFUzhJPzE3aDoBzX5onKpqs8qg7u28GeV8gz7bbCZSdP6522u9AJuySmA", + "address": + "DdzFFzCqrhssGCmsjWvkVva8htvw7XcGA8gSXfEzuWkCVPUyiLjsRpNN25b3ZV1bQq27Erjnu8Xyx2BrRTUQCCQRWTqBymTziBy2SSBo", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3Rr3ZeowDy7enhWDRV74v4bKzmTikC5Zxjy8PmF1234c9RsTMRvXXyYKY6y3ntMdBDuKGxd3hb8wTCt5nKWQrHnPHqp65fE3GogyqKkF4BFTRQXTGjpTnQBvm7Y9ib9zsWkjtcFPjQD3iot4JkBboV9", + "public": + "xpub6BSUxZpFBuKdJ7W7tcUhYkoD92NcYP7Yxydm9LuUvYSUuZNC2hrNvxT99GfYZj4svVGSgmHyXN73riD5ryB6qaKBaKAbPyZbftwCntwwFvU", + "address": + "DdzFFzCqrhskZcngTd3hUveaQUyRVNLGHdBUcfrrvzn7Rpsw61UUyzP5JPdmcQDid7pBS4sgiVe4JaKQGUz6YFs5LaCdB39b2S561V1W", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3Rr3ZeowDy7eohyGo7z5fbUmqGH2ZR9uKhpKKdzjvfpLuAV1fjRNc67h42rj2QEVcnmsDEja6Jo932kHF61qdStT889oJAd9uwoFiPL7fjvLKxSkKnMS2FBuKPPi4VJgeu3PS2HLDECeU3j1xMg5nXp", + "public": + "xpub6BSUxZpFBuKdMWKSQpYZMVgPM9ReKwu1oKSWzmGspCiYMNw6AEx4CyXJpMojj1SCcGciNoDLpXwiWJ7GVMUNzBMFdjWAaqZQbJpSHoZSpX4", + "address": + "DdzFFzCqrhspr9zNDo7chxVppF5Q1nRoLtQ1nZkjNaJQRGMa2Vg8nstowPcTMn9fUpxZUwgs8Beh2kwbtr4Lz48CJCj63UuybqVa8wmy", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "1d28ead3cb6a06cbfe9f3c6cc2c4b088b6e1a725d95e46c83b91f6bba133f7e2", + "private": + "188ed654bb87bd1942e1d2eed9400e230f57e0391ce5b27a7ca2f1f38a9d8440a16067a3ec0f552faf2275f1600794bf3e0993944e0306cb339ef6dc41d43540", + "public": + "0000cef16b5bd2abea765a97aaf5bc8c16b0f89d7b24b93b41266d0c996a0d7696", + "chaincode": + "44804bf5b2f75b17b76fa4c638a68c99f278c58e1b6e8bb0055a0741b313e3bd", + "hd_key": + "368256c70f7891d97242e8a6a1811072cb05348faa311076dd1a63af43912ef5", + "child": [ + { + "private": + "xprv3RVA5NDxYdRmdR1Mav2oNhokVVbsFEsW4wUvaL9BSizvGz1mRBhyMSZhhWkWXMis1Dhi5hVwbSCC1CQ9mqw3N4Sf7qJQULjtehA8mynwMghUaErfeX2pCLZMQ4nZSsfkwqhH4wtqaFhV4aSResM1pT4", + "public": + "xpub6AEAjAQ8kSXwnvGkZF1KGK6nxBGW9pVgqJLmhvho9rTG3nF7Xvrc1kZPU8craPG1mtZihcCDaVBBXo2jZg6XLRuVzxQyQjr4Ae3Bkj12Wj8", + "address": + "DdzFFzCqrhsspPdoF2axVqqCVNDqH2KxskQ9sYZSGt4YUUSqVkqrXVdTZP1RXGHp7CrZ7wwVuKWpW91x4n72bSQP9cKiatrr4iRZ2Esa", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RVA5NDxYdRmdpFADxhzn6RyUN77yvi2rqx2iivMj5DqH8MYXuU5vvNY3cVn3y3XN19eySjF1DqCm9NL2YJD2SCc8GkdGimaZa5UuC9vSHksu5SJUfMWzdUHuubrezNgia4XRVtzJ3yjcjpCZ7j93Wu", + "public": + "xpub6AEAjAQ8kSXwpGVs7habe1udHgBaUHTPNC3a9BvasQ1ijycdnMHYF48iSjUt73KeZeCe73GBsc667UYra9xoWrUMcBNRcyKnDP4fEE2SKJe", + "address": + "DdzFFzCqrhssC7VJaxykK5JUoutSAcuuzfNs2AHut6vy4rK5vT1ZVgW6SK2jN6EMYEjD7u5qcBoxReTWFGo8kgzYsjeXxvW6sFifbsBE", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RVA5NDxYdRmeR2JNPktHPoEeqF3JnYxCL3agwSxBRJYk6pjXPeKxdAasNF7BN8wNhXUts9ccnmYrQVMLHeJ85JKmhpSC4ZMnzEYrTEoMkPYpyY123vV1kwa1bsVitZyAeVuQGvjb21nhUq96t7tQ2q", + "public": + "xpub6AEAjAQ8kSXwrHaAWvTzxBc32FRo1RqxxgR7q7zC3XxmDao6rTKdPHBUXAriNuLFGoUvvKbxFXY8E4hYqyiFjEzWNPZhUBJS5ZEkJD1ucYM", + "address": + "DdzFFzCqrhswyUjrLfudPMgRScw8KVPhqGNAJZUW9ek8mDzAv4pVcXaQi2eS4P83WyiA9BFh1zZpLKjUrVPzpvoSzwzF9eyUazQoTBAw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RaG3m97eqZXEvmBMegjU5PWR6VK2u1FMCfvayEDdzZMptguAHurTrUKLXnD5qYQDAuGRrnAeW774GNCwpmUpBvSSTtK9VefTsiDRiTacT9ki7fFVNXAPiL9EaXPShgVY5eTvczvD42JBVqacHhSN7B", + "public": + "xpub6AXM4Q9vsYosgjyLajVGziBaHZvpdLpyiTijt6jDtEM2EFtq7B28yrKDxcNWfLVNHi1NdjGQC3UNMp45STqLC2k8baJDKLFhBYdth6UkQoh", + "address": + "DdzFFzCqrhspMnQawaAawAsaVdspdaYGMcs8mkXztWR3moRZXjyvEtN2DK6dPgf5RqVEdFH1nHGXYo4aS2wnTeTNhdyRHvTtYK3Jn3L8", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RaG3m97eqZXFGwsQ78k2gbMhiXETcMrt2uC1bHJ2zbZWcr3uGXwH9uP3ZQBhnKZagESrBAAJi7bvbmJgF8zoEczvgcma5eeThyiQgvZcmk8rF2wsHr48ukL89zLxAmZga5VXnD228xxucCQikSMeVi", + "public": + "xpub6AXM4Q9vsYoshuvEVxUCoc4jA5L7RTk1LP43CcfR5rNc2c9GMAoE9ssPALnfXstCaghFgn42qLyPc5Zpj2YM1CPGKBeASbBzU88SZ79KZAQ", + "address": + "DdzFFzCqrht6aKuSC1TTc34fuL7q2D3edx78CungMegz6P5mrQGa1KoYKkQic5g74KDChKkWNSMx3Q869fsvJkiYTgqES5Qcp9jxPGvq", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RaG3m97eqZXFuMsLKTRJUPq6Sn3MED7QoEwBdqit84Vd2MgEtLN2BknAopDx1n2fDhKc7E2ugFG6XzAJ6BryoSKDQvKZ1fEPGa76prz43UiBxNrhrRuD4ztZ6KiSXg4p7WLa5fkVbJeHhJudLVwCv4", + "public": + "xpub6AXM4Q9vsYosk2VraG2M3YJeziyccdPgQY1VsRT6yFtrG7LqRQRi4KXCnJfNTgNwJ4QLRCR9GaXCjtneYEr3Sprs7icH9J2x3yJdVRiq976", + "address": + "DdzFFzCqrht6qZcnFkNqqP6okshbhEXwqokvS7bqx5ujZiQ7rY9DnRqwtq3GgZKbxEtjddxCA6HqV2wpBxBST51WGUK1ATxF6CK7biK1", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RqaNvX1KFQ3dZmMmy9JAvWMaVDHnh8cNyhXCvgMAjAZNmanbcZsLDvEraa83ytiG2of5c2tZvwhV55jhfPFaWi8TDnN8NZ11ErPvqCoxt2wNH3U1QirVoZ2aSJk3QCDqnEM46KzgHXFGmxzbFYRhHw", + "public": + "xpub6BQuSph2Wk6K3UfFdq5Khf2v9d7mX3aAg3KA6FtFa3Wf5EH1iuS3WH2rMMs8rwk67yb2hCQXyQdfesRbLwzwvePeApVK8i7p128eiAGdahP", + "address": + "DdzFFzCqrhszkks4ja3PTtC4dS5QZRbiosQfdNXpxLWsBtjEio4Gzq6rGiTLDMGLyyfC9jaPD6i39qwpiYcJmVPUTFWhQjrXZE69kxAj", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RqaNvX1KFQ3eAFzEPyAHuAPk4qVgm2bYKLWkRfg8xXJhJMsWgAY1oBgT7ro7e4mh4DpVTGTL5T1755YG2Q8pJgtqGiUAkmYbwCe86EUk7E7thysCXx1R5aSQWRVgTWtchqUoTM9EENuFmWuXtKSsaZ", + "public": + "xpub6BQuSph2Wk6K5UmyAXyWAmi9E5vpERiLoXw6vC7BgbN9yVXq4e1NsrnNNy8RTfpe9gCjjbJd1QS2EyR6kriM9nvZmgKuvkyYiurcPVzaihh", + "address": + "DdzFFzCqrht7ZxEo3Cmr9SdrH5ikrkW8edbXoSxkFctiTqYMTFgBVXuhJx1stDsS4tXGDJCKSWEmtfiPQyEFKf8w9dPeLqxtRcu3MFEj", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RqaNvX1KFQ3f8b8wmCAGZ9dhoavqee758SXowDcC3tikLEK2WiGSFGLmQdo4ZYWcLWvAs7cwFTyr4EH2hsp9t8RaR1vpkzKDF4yPmtaTptWfpZPvtKGNunN4K5HrYD9ctih3J7X4AApQvH2qzTUyui", + "public": + "xpub6BQuSph2Wk6K8kQBESRSnggm6b8uQDGcoT9RgzKpk9VDhVULADphvcEzJoWhueDEXyusrTD1zuWAaWU6hHWffmndAdsyiAYn6nyWJ8GZrkd", + "address": + "DdzFFzCqrhshc5xg1piRz9mmSitftfZq6JLo2LtLkxLxR4RUw9UWGtjTijHPx6HfuxQqT7V6BCm9nLAoykFo7Jtd9tDS2jUq5vKgpMbE", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "1d28ead3cb6a06cbfe9f3c6cc2c4b088b6e1a725d95e46c83b91f6bba133f7e2", + "private": + "188ed654bb87bd1942e1d2eed9400e230f57e0391ce5b27a7ca2f1f38a9d8440a16067a3ec0f552faf2275f1600794bf3e0993944e0306cb339ef6dc41d43540", + "public": + "0000cef16b5bd2abea765a97aaf5bc8c16b0f89d7b24b93b41266d0c996a0d7696", + "chaincode": + "44804bf5b2f75b17b76fa4c638a68c99f278c58e1b6e8bb0055a0741b313e3bd", + "hd_key": + "368256c70f7891d97242e8a6a1811072cb05348faa311076dd1a63af43912ef5", + "child": [ + { + "private": + "xprv3RVA5NDxYdRmdR1Mav2oNhokVVbsFEsW4wUvaL9BSizvGz1mRBhyMSZhhWkWXMis1Dhi5hVwbSCC1CQ9mqw3N4Sf7qJQULjtehA8mynwMghUaErfeX2pCLZMQ4nZSsfkwqhH4wtqaFhV4aSResM1pT4", + "public": + "xpub6AEAjAQ8kSXwnvGkZF1KGK6nxBGW9pVgqJLmhvho9rTG3nF7Xvrc1kZPU8craPG1mtZihcCDaVBBXo2jZg6XLRuVzxQyQjr4Ae3Bkj12Wj8", + "address": + "DdzFFzCqrhsspPdoF2axVqqCVNDqH2KxskQ9sYZSGt4YUUSqVkqrXVdTZP1RXGHp7CrZ7wwVuKWpW91x4n72bSQP9cKiatrr4iRZ2Esa", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RVA5NDxYdRmdpFADxhzn6RyUN77yvi2rqx2iivMj5DqH8MYXuU5vvNY3cVn3y3XN19eySjF1DqCm9NL2YJD2SCc8GkdGimaZa5UuC9vSHksu5SJUfMWzdUHuubrezNgia4XRVtzJ3yjcjpCZ7j93Wu", + "public": + "xpub6AEAjAQ8kSXwpGVs7habe1udHgBaUHTPNC3a9BvasQ1ijycdnMHYF48iSjUt73KeZeCe73GBsc667UYra9xoWrUMcBNRcyKnDP4fEE2SKJe", + "address": + "DdzFFzCqrhssC7VJaxykK5JUoutSAcuuzfNs2AHut6vy4rK5vT1ZVgW6SK2jN6EMYEjD7u5qcBoxReTWFGo8kgzYsjeXxvW6sFifbsBE", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RVA5NDxYdRmeR2JNPktHPoEeqF3JnYxCL3agwSxBRJYk6pjXPeKxdAasNF7BN8wNhXUts9ccnmYrQVMLHeJ85JKmhpSC4ZMnzEYrTEoMkPYpyY123vV1kwa1bsVitZyAeVuQGvjb21nhUq96t7tQ2q", + "public": + "xpub6AEAjAQ8kSXwrHaAWvTzxBc32FRo1RqxxgR7q7zC3XxmDao6rTKdPHBUXAriNuLFGoUvvKbxFXY8E4hYqyiFjEzWNPZhUBJS5ZEkJD1ucYM", + "address": + "DdzFFzCqrhswyUjrLfudPMgRScw8KVPhqGNAJZUW9ek8mDzAv4pVcXaQi2eS4P83WyiA9BFh1zZpLKjUrVPzpvoSzwzF9eyUazQoTBAw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RaG3m97eqZXEvmBMegjU5PWR6VK2u1FMCfvayEDdzZMptguAHurTrUKLXnD5qYQDAuGRrnAeW774GNCwpmUpBvSSTtK9VefTsiDRiTacT9ki7fFVNXAPiL9EaXPShgVY5eTvczvD42JBVqacHhSN7B", + "public": + "xpub6AXM4Q9vsYosgjyLajVGziBaHZvpdLpyiTijt6jDtEM2EFtq7B28yrKDxcNWfLVNHi1NdjGQC3UNMp45STqLC2k8baJDKLFhBYdth6UkQoh", + "address": + "DdzFFzCqrhspMnQawaAawAsaVdspdaYGMcs8mkXztWR3moRZXjyvEtN2DK6dPgf5RqVEdFH1nHGXYo4aS2wnTeTNhdyRHvTtYK3Jn3L8", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RaG3m97eqZXFGwsQ78k2gbMhiXETcMrt2uC1bHJ2zbZWcr3uGXwH9uP3ZQBhnKZagESrBAAJi7bvbmJgF8zoEczvgcma5eeThyiQgvZcmk8rF2wsHr48ukL89zLxAmZga5VXnD228xxucCQikSMeVi", + "public": + "xpub6AXM4Q9vsYoshuvEVxUCoc4jA5L7RTk1LP43CcfR5rNc2c9GMAoE9ssPALnfXstCaghFgn42qLyPc5Zpj2YM1CPGKBeASbBzU88SZ79KZAQ", + "address": + "DdzFFzCqrht6aKuSC1TTc34fuL7q2D3edx78CungMegz6P5mrQGa1KoYKkQic5g74KDChKkWNSMx3Q869fsvJkiYTgqES5Qcp9jxPGvq", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RaG3m97eqZXFuMsLKTRJUPq6Sn3MED7QoEwBdqit84Vd2MgEtLN2BknAopDx1n2fDhKc7E2ugFG6XzAJ6BryoSKDQvKZ1fEPGa76prz43UiBxNrhrRuD4ztZ6KiSXg4p7WLa5fkVbJeHhJudLVwCv4", + "public": + "xpub6AXM4Q9vsYosk2VraG2M3YJeziyccdPgQY1VsRT6yFtrG7LqRQRi4KXCnJfNTgNwJ4QLRCR9GaXCjtneYEr3Sprs7icH9J2x3yJdVRiq976", + "address": + "DdzFFzCqrht6qZcnFkNqqP6okshbhEXwqokvS7bqx5ujZiQ7rY9DnRqwtq3GgZKbxEtjddxCA6HqV2wpBxBST51WGUK1ATxF6CK7biK1", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RqaNvX1KFQ3dZmMmy9JAvWMaVDHnh8cNyhXCvgMAjAZNmanbcZsLDvEraa83ytiG2of5c2tZvwhV55jhfPFaWi8TDnN8NZ11ErPvqCoxt2wNH3U1QirVoZ2aSJk3QCDqnEM46KzgHXFGmxzbFYRhHw", + "public": + "xpub6BQuSph2Wk6K3UfFdq5Khf2v9d7mX3aAg3KA6FtFa3Wf5EH1iuS3WH2rMMs8rwk67yb2hCQXyQdfesRbLwzwvePeApVK8i7p128eiAGdahP", + "address": + "DdzFFzCqrhszkks4ja3PTtC4dS5QZRbiosQfdNXpxLWsBtjEio4Gzq6rGiTLDMGLyyfC9jaPD6i39qwpiYcJmVPUTFWhQjrXZE69kxAj", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RqaNvX1KFQ3eAFzEPyAHuAPk4qVgm2bYKLWkRfg8xXJhJMsWgAY1oBgT7ro7e4mh4DpVTGTL5T1755YG2Q8pJgtqGiUAkmYbwCe86EUk7E7thysCXx1R5aSQWRVgTWtchqUoTM9EENuFmWuXtKSsaZ", + "public": + "xpub6BQuSph2Wk6K5UmyAXyWAmi9E5vpERiLoXw6vC7BgbN9yVXq4e1NsrnNNy8RTfpe9gCjjbJd1QS2EyR6kriM9nvZmgKuvkyYiurcPVzaihh", + "address": + "DdzFFzCqrht7ZxEo3Cmr9SdrH5ikrkW8edbXoSxkFctiTqYMTFgBVXuhJx1stDsS4tXGDJCKSWEmtfiPQyEFKf8w9dPeLqxtRcu3MFEj", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RqaNvX1KFQ3f8b8wmCAGZ9dhoavqee758SXowDcC3tikLEK2WiGSFGLmQdo4ZYWcLWvAs7cwFTyr4EH2hsp9t8RaR1vpkzKDF4yPmtaTptWfpZPvtKGNunN4K5HrYD9ctih3J7X4AApQvH2qzTUyui", + "public": + "xpub6BQuSph2Wk6K8kQBESRSnggm6b8uQDGcoT9RgzKpk9VDhVULADphvcEzJoWhueDEXyusrTD1zuWAaWU6hHWffmndAdsyiAYn6nyWJ8GZrkd", + "address": + "DdzFFzCqrhshc5xg1piRz9mmSitftfZq6JLo2LtLkxLxR4RUw9UWGtjTijHPx6HfuxQqT7V6BCm9nLAoykFo7Jtd9tDS2jUq5vKgpMbE", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "1d28ead3cb6a06cbfe9f3c6cc2c4b088b6e1a725d95e46c83b91f6bba133f7e2", + "private": + "188ed654bb87bd1942e1d2eed9400e230f57e0391ce5b27a7ca2f1f38a9d8440a16067a3ec0f552faf2275f1600794bf3e0993944e0306cb339ef6dc41d43540", + "public": + "0000cef16b5bd2abea765a97aaf5bc8c16b0f89d7b24b93b41266d0c996a0d7696", + "chaincode": + "44804bf5b2f75b17b76fa4c638a68c99f278c58e1b6e8bb0055a0741b313e3bd", + "hd_key": + "368256c70f7891d97242e8a6a1811072cb05348faa311076dd1a63af43912ef5", + "child": [ + { + "private": + "xprv3RVA5NDxYdRmdR1Mav2oNhokVVbsFEsW4wUvaL9BSizvGz1mRBhyMSZhhWkWXMis1Dhi5hVwbSCC1CQ9mqw3N4Sf7qJQULjtehA8mynwMghUaErfeX2pCLZMQ4nZSsfkwqhH4wtqaFhV4aSResM1pT4", + "public": + "xpub6AEAjAQ8kSXwnvGkZF1KGK6nxBGW9pVgqJLmhvho9rTG3nF7Xvrc1kZPU8craPG1mtZihcCDaVBBXo2jZg6XLRuVzxQyQjr4Ae3Bkj12Wj8", + "address": + "DdzFFzCqrhsspPdoF2axVqqCVNDqH2KxskQ9sYZSGt4YUUSqVkqrXVdTZP1RXGHp7CrZ7wwVuKWpW91x4n72bSQP9cKiatrr4iRZ2Esa", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3RVA5NDxYdRmdpFADxhzn6RyUN77yvi2rqx2iivMj5DqH8MYXuU5vvNY3cVn3y3XN19eySjF1DqCm9NL2YJD2SCc8GkdGimaZa5UuC9vSHksu5SJUfMWzdUHuubrezNgia4XRVtzJ3yjcjpCZ7j93Wu", + "public": + "xpub6AEAjAQ8kSXwpGVs7habe1udHgBaUHTPNC3a9BvasQ1ijycdnMHYF48iSjUt73KeZeCe73GBsc667UYra9xoWrUMcBNRcyKnDP4fEE2SKJe", + "address": + "DdzFFzCqrhssC7VJaxykK5JUoutSAcuuzfNs2AHut6vy4rK5vT1ZVgW6SK2jN6EMYEjD7u5qcBoxReTWFGo8kgzYsjeXxvW6sFifbsBE", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3RVA5NDxYdRmeR2JNPktHPoEeqF3JnYxCL3agwSxBRJYk6pjXPeKxdAasNF7BN8wNhXUts9ccnmYrQVMLHeJ85JKmhpSC4ZMnzEYrTEoMkPYpyY123vV1kwa1bsVitZyAeVuQGvjb21nhUq96t7tQ2q", + "public": + "xpub6AEAjAQ8kSXwrHaAWvTzxBc32FRo1RqxxgR7q7zC3XxmDao6rTKdPHBUXAriNuLFGoUvvKbxFXY8E4hYqyiFjEzWNPZhUBJS5ZEkJD1ucYM", + "address": + "DdzFFzCqrhswyUjrLfudPMgRScw8KVPhqGNAJZUW9ek8mDzAv4pVcXaQi2eS4P83WyiA9BFh1zZpLKjUrVPzpvoSzwzF9eyUazQoTBAw", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RaG3m97eqZXEvmBMegjU5PWR6VK2u1FMCfvayEDdzZMptguAHurTrUKLXnD5qYQDAuGRrnAeW774GNCwpmUpBvSSTtK9VefTsiDRiTacT9ki7fFVNXAPiL9EaXPShgVY5eTvczvD42JBVqacHhSN7B", + "public": + "xpub6AXM4Q9vsYosgjyLajVGziBaHZvpdLpyiTijt6jDtEM2EFtq7B28yrKDxcNWfLVNHi1NdjGQC3UNMp45STqLC2k8baJDKLFhBYdth6UkQoh", + "address": + "DdzFFzCqrhspMnQawaAawAsaVdspdaYGMcs8mkXztWR3moRZXjyvEtN2DK6dPgf5RqVEdFH1nHGXYo4aS2wnTeTNhdyRHvTtYK3Jn3L8", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RaG3m97eqZXFGwsQ78k2gbMhiXETcMrt2uC1bHJ2zbZWcr3uGXwH9uP3ZQBhnKZagESrBAAJi7bvbmJgF8zoEczvgcma5eeThyiQgvZcmk8rF2wsHr48ukL89zLxAmZga5VXnD228xxucCQikSMeVi", + "public": + "xpub6AXM4Q9vsYoshuvEVxUCoc4jA5L7RTk1LP43CcfR5rNc2c9GMAoE9ssPALnfXstCaghFgn42qLyPc5Zpj2YM1CPGKBeASbBzU88SZ79KZAQ", + "address": + "DdzFFzCqrht6aKuSC1TTc34fuL7q2D3edx78CungMegz6P5mrQGa1KoYKkQic5g74KDChKkWNSMx3Q869fsvJkiYTgqES5Qcp9jxPGvq", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RaG3m97eqZXFuMsLKTRJUPq6Sn3MED7QoEwBdqit84Vd2MgEtLN2BknAopDx1n2fDhKc7E2ugFG6XzAJ6BryoSKDQvKZ1fEPGa76prz43UiBxNrhrRuD4ztZ6KiSXg4p7WLa5fkVbJeHhJudLVwCv4", + "public": + "xpub6AXM4Q9vsYosk2VraG2M3YJeziyccdPgQY1VsRT6yFtrG7LqRQRi4KXCnJfNTgNwJ4QLRCR9GaXCjtneYEr3Sprs7icH9J2x3yJdVRiq976", + "address": + "DdzFFzCqrht6qZcnFkNqqP6okshbhEXwqokvS7bqx5ujZiQ7rY9DnRqwtq3GgZKbxEtjddxCA6HqV2wpBxBST51WGUK1ATxF6CK7biK1", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RqaNvX1KFQ3dZmMmy9JAvWMaVDHnh8cNyhXCvgMAjAZNmanbcZsLDvEraa83ytiG2of5c2tZvwhV55jhfPFaWi8TDnN8NZ11ErPvqCoxt2wNH3U1QirVoZ2aSJk3QCDqnEM46KzgHXFGmxzbFYRhHw", + "public": + "xpub6BQuSph2Wk6K3UfFdq5Khf2v9d7mX3aAg3KA6FtFa3Wf5EH1iuS3WH2rMMs8rwk67yb2hCQXyQdfesRbLwzwvePeApVK8i7p128eiAGdahP", + "address": + "DdzFFzCqrhszkks4ja3PTtC4dS5QZRbiosQfdNXpxLWsBtjEio4Gzq6rGiTLDMGLyyfC9jaPD6i39qwpiYcJmVPUTFWhQjrXZE69kxAj", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RqaNvX1KFQ3eAFzEPyAHuAPk4qVgm2bYKLWkRfg8xXJhJMsWgAY1oBgT7ro7e4mh4DpVTGTL5T1755YG2Q8pJgtqGiUAkmYbwCe86EUk7E7thysCXx1R5aSQWRVgTWtchqUoTM9EENuFmWuXtKSsaZ", + "public": + "xpub6BQuSph2Wk6K5UmyAXyWAmi9E5vpERiLoXw6vC7BgbN9yVXq4e1NsrnNNy8RTfpe9gCjjbJd1QS2EyR6kriM9nvZmgKuvkyYiurcPVzaihh", + "address": + "DdzFFzCqrht7ZxEo3Cmr9SdrH5ikrkW8edbXoSxkFctiTqYMTFgBVXuhJx1stDsS4tXGDJCKSWEmtfiPQyEFKf8w9dPeLqxtRcu3MFEj", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RqaNvX1KFQ3f8b8wmCAGZ9dhoavqee758SXowDcC3tikLEK2WiGSFGLmQdo4ZYWcLWvAs7cwFTyr4EH2hsp9t8RaR1vpkzKDF4yPmtaTptWfpZPvtKGNunN4K5HrYD9ctih3J7X4AApQvH2qzTUyui", + "public": + "xpub6BQuSph2Wk6K8kQBESRSnggm6b8uQDGcoT9RgzKpk9VDhVULADphvcEzJoWhueDEXyusrTD1zuWAaWU6hHWffmndAdsyiAYn6nyWJ8GZrkd", + "address": + "DdzFFzCqrhshc5xg1piRz9mmSitftfZq6JLo2LtLkxLxR4RUw9UWGtjTijHPx6HfuxQqT7V6BCm9nLAoykFo7Jtd9tDS2jUq5vKgpMbE", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "b2f89882dabd3916ed94da1d97be0e1e94b160740902a68f43b454adc6cda3d9", + "private": + "082568a33bc0cc2707a9501f5a3c4ee3d39d0a4483654c9ab7df1cb00575885603aea0e49d5a40e71411ccab067ad8b783582c5b318b8d83e203996621d4fe06", + "public": + "005b924d68b1cfe275c2ce14a7c39e8cc40a91188bcdff3b98be67829c9e48e223", + "chaincode": + "6ecc42552b8adf2b7ea8c76928af32e681733df6fa32c39701cf165e829afe2b", + "hd_key": + "c152c045b4ffd9d6c6835afb24b658f58d3a5dd40e27a938b970339ffa467ffb", + "child": [ + { + "private": + "xprv3Rh3mhNFBhfGN7MFGxdTwn9MQYRaCkUXuJ2PmL1swdy2Qga978d2ifu4KVuFtBUM2dVHApR1vyt5RTpBqw2wS3VZG1E1SSTpB2G1mak2HxaWbrLK4YW46wYLPMsswJKLWfZHQ6FhpM1NobwB9DwvGWj", + "public": + "xpub6AvCT1WH9tjcxfc9dJ9qiJtUYdNCAzB7QfgKNHTbbK66WXNRo1oqyMVkNmrRTLdr99CJ9rLjfNTHTANdmYuo6nraSyRguxBkh2tTnCZ7R6u", + "address": + "DdzFFzCqrht9yhrjhL7H4mHHzkva75JE19cDq76tmWGKDDPXvhmDmTrsgA5qhaZHbnYR1SpNTHuSvoUFpAvHGtWB4xwSDVHuPLPDLp2C", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rh3mhNFBhfGNent7cquw1j8Tk9KH8mns1xyP3zUmZruxpnFpW6YtTvU57wRUhCTne9rBjFrfye3BuQ7okkpEkqfURwnpvimDJYXjFzQdaurqkQXWwFzbPFeFWCi8EeG9sLoi5EyQaQEGEw66bco7TH", + "public": + "xpub6AvCT1WH9tjczVT41Wtvwoa6y9XWpK8X2jkRz24iPnDrQqJwMQi8f8YDzBJuvfnLKDHxbXW52YR4GAnbsttv9NwxbHhTtYVDGP6xW6JCoPh", + "address": + "DdzFFzCqrhsjogoCK8fsa4w8SyJTFf1j2SVJywRMg5LRSq5qAD64ky5Sq9zsdQN9nGG57F1bGBeHfZzCBx7X9yvjVCvAHtutTgxvKPUN", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rh3mhNFBhfGPhfXGHUwrichkje3v1CQX1gU1bBi3kj4e7jXUBJTFDKNrrHxJEKAV6gm6AXrPavph361s5CaTc9sT5pWu3XfDyENnkeVFrLKToB6hhUQnfsZJ63dbo2ihMHXvMTGHxi7HatWurizyzn", + "public": + "xpub6AvCT1WH9tjd42NFLrjEYEi4b3aPBEieBr6Kp5fVYyeM7vwDtSKCGKwnRYrWwkd12z5kRCU1Zz6PXG3DrNKiKrVTfC836XVJQB2BHAekpVP", + "address": + "DdzFFzCqrht2SBqMcgf8PS1X6CNRTmmNCFyfkRnJKK5Dz7LseVdWDFTDneGosW18PQtLJ25yjCZEsG75NshGhuMim3Y3piZe5ftL63cG", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RX9yiH2Y9YdEvnzuW4dLtnbgy5Nh9cTu52fnBZqCZczTHsvsuwSNUMEFeXsvjS6EAsuHfXdND1ZyNXUZoDmFiJVLQVW6tjR2Nx5N2jXoscnKWLTJDPREBjMxd7DVhG5WY5iNzAcFwjqzBJHSLaErsj", + "public": + "xpub6ALttbWeJiJ4Myr11taHjwpuzisF9AggAcXXK6amcnDo2ycy2rhg9wwqVEh1KBR7ymf6YNqk2ShrrdHzAgshxkPkajZuu9FxKJGDRvbgpAD", + "address": + "DdzFFzCqrht26cvD9taFnwtDWk9xGKRDyfeDFb5H7XMma4QKLShsHuvZ7fyChkiCGg8yHwyttbHNjVKnd1jPMdacNBNxW1kwVaqMUVnk", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RX9yiH2Y9YdF9grv2xYLXdFV9qcqLCLehxTc9Y2Mbs6Z4FQwHjgNEUVrRgMzuWpN5ttAWiT7JjD9q66c54YaspBAJpc6bvCrs3FSbXKzg3yJ44nVwQbnwwjqajRvLhmynxZYf6jRzZhBZVVc1u8S47", + "public": + "xpub6ALttbWeJiJ4NjFXgLqHKA7mq65FsX7YpCAhtuKEjaSo45JFJiGXNmZkMddnCnR7BwqnWVGeGeHUeVzJtb67sJG6s8euqHA3jhvFi1MPMph", + "address": + "DdzFFzCqrhsucTMwnKzL3daMuC6gcdb2yNMbfk2oRbVb9D5wzsGhvhJdbrFMG1SaFPjG95UUJkZD5rc5HKDZ1A6BJXQz2T4GujZJ3ibA", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RX9yiH2Y9YdFnxyQ8A3qQyRTDm2LDsBTdzEAPvmYXBsXNU3wJGu8AyNynfSWQka1RcZWq7jjTzeZUzkmt61m3EfEp8sXMGav1QWTiwodm4Tk1hZoNafpY55hPeBjtm5ynhMSKDAHscQCyJ2uASJS4v", + "public": + "xpub6ALttbWeJiJ4Qtjr56g5VMep36G5cXT56naqPLKHjs5MFFY6EhpkRJhi4vhmKsAbQ7Lnnjfjh44Jz21nD2CpPqDifpbEahiit99ZB1Uxvdi", + "address": + "DdzFFzCqrhshycTYtpaxEseDzgBPm3qZUobBjaw2JUvoJjHd5jvMoSxf7FER4sMFPTPkKe5hCkZUA55SYvdKTu3X55EbzVBGWPd2eY6w", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RtpwQoE2fRPy8XL8agXZGUm1Qct6fda87jgKuPQUjCLaCEZNwWFSvFrSRoLfSdhY8PhAjeM9ZjVTV3WsmMznW3p2MfB6rGEG6qHiFyrfnbr3kd6PaRXuzGf1Ktvyga47WG7cPCgwdQN51GhhDC5cJD", + "public": + "xpub6BbrCKdYCXQPV12vFLqGZtAXGRQRCh1bt3EZ5ixaF6rcQTycv57JbrNKeSTvQ2EQcyDur62KGFiRYRNuhPkojmDve86wNJ1JvP9vQtjgnUq", + "address": + "DdzFFzCqrhtD44SMpH6NH7uv1nzSUH2isCA5Zq2kWJuHyhg86LV4kC81f7PWGLnktsQZuFX6c37XBLcbkLXjbCHCy2Mw213KygSGNbu8", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RtpwQoE2fRPyTa84Mvs4zzENSmhT9mL1vWfezHeYQzAwBoe5ezJh6ZXB94kgB6932b8nAh79yoEf7Ucfm7KKyfk5HYUsyad4tgcRBCzX9j12hw1SFHNKgoqMGsUxvq5Vdz1EJ4buP4YFaxWYLesbRD", + "public": + "xpub6BbrCKdYCXQPW79ynA81My4c16o2kpFaNTFiUZav4ehkBxwmdUsuq6aurDgSSwNiodNAQcdxEARemTQWv2NyC9sPkwGNoiZRMXoSwkvBgxn", + "address": + "DdzFFzCqrhsySCDhon4P3kzPhoj9DpA2QSDdG6mkNG4uvEknqvVXNDZi9VPcc7pXd2rpc682k831tPjRNc37hSPAiU3NjYBJBA8HxysT", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RtpwQoE2fRPz5tZDnYdY1Teuw4AsgqghHY5a9icePX5ZsJityH51kosx3vh2JgnkSvTnS5Likvtc3cMMt3P3b7LbG5xEu62ym4483967gMuf2AF6dJPZ81tCnVURWqVqS3urno1Jj9DmQ14Fgb4qCC", + "public": + "xpub6BbrCKdYCXQPYDQsJfr9cQKtmmWWCD8NTPBjr9kDUiE3dW8TD6XsUHsrt29M1BhZvMF8KZUhhhPqH91A7MJFdqBc49XTsV4xt2B1woqcb7D", + "address": + "DdzFFzCqrht9pvxH6s9kLpiMYEdDpJe3K4oo4wfD7WXxQtPw5AUjcw3iR4hVLWXat4WR2DgaoUt5jeXwBkqRXAwpxCaXMKiNK9wQcQCh", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "b2f89882dabd3916ed94da1d97be0e1e94b160740902a68f43b454adc6cda3d9", + "private": + "082568a33bc0cc2707a9501f5a3c4ee3d39d0a4483654c9ab7df1cb00575885603aea0e49d5a40e71411ccab067ad8b783582c5b318b8d83e203996621d4fe06", + "public": + "005b924d68b1cfe275c2ce14a7c39e8cc40a91188bcdff3b98be67829c9e48e223", + "chaincode": + "6ecc42552b8adf2b7ea8c76928af32e681733df6fa32c39701cf165e829afe2b", + "hd_key": + "c152c045b4ffd9d6c6835afb24b658f58d3a5dd40e27a938b970339ffa467ffb", + "child": [ + { + "private": + "xprv3Rh3mhNFBhfGN7MFGxdTwn9MQYRaCkUXuJ2PmL1swdy2Qga978d2ifu4KVuFtBUM2dVHApR1vyt5RTpBqw2wS3VZG1E1SSTpB2G1mak2HxaWbrLK4YW46wYLPMsswJKLWfZHQ6FhpM1NobwB9DwvGWj", + "public": + "xpub6AvCT1WH9tjcxfc9dJ9qiJtUYdNCAzB7QfgKNHTbbK66WXNRo1oqyMVkNmrRTLdr99CJ9rLjfNTHTANdmYuo6nraSyRguxBkh2tTnCZ7R6u", + "address": + "DdzFFzCqrht9yhrjhL7H4mHHzkva75JE19cDq76tmWGKDDPXvhmDmTrsgA5qhaZHbnYR1SpNTHuSvoUFpAvHGtWB4xwSDVHuPLPDLp2C", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rh3mhNFBhfGNent7cquw1j8Tk9KH8mns1xyP3zUmZruxpnFpW6YtTvU57wRUhCTne9rBjFrfye3BuQ7okkpEkqfURwnpvimDJYXjFzQdaurqkQXWwFzbPFeFWCi8EeG9sLoi5EyQaQEGEw66bco7TH", + "public": + "xpub6AvCT1WH9tjczVT41Wtvwoa6y9XWpK8X2jkRz24iPnDrQqJwMQi8f8YDzBJuvfnLKDHxbXW52YR4GAnbsttv9NwxbHhTtYVDGP6xW6JCoPh", + "address": + "DdzFFzCqrhsjogoCK8fsa4w8SyJTFf1j2SVJywRMg5LRSq5qAD64ky5Sq9zsdQN9nGG57F1bGBeHfZzCBx7X9yvjVCvAHtutTgxvKPUN", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rh3mhNFBhfGPhfXGHUwrichkje3v1CQX1gU1bBi3kj4e7jXUBJTFDKNrrHxJEKAV6gm6AXrPavph361s5CaTc9sT5pWu3XfDyENnkeVFrLKToB6hhUQnfsZJ63dbo2ihMHXvMTGHxi7HatWurizyzn", + "public": + "xpub6AvCT1WH9tjd42NFLrjEYEi4b3aPBEieBr6Kp5fVYyeM7vwDtSKCGKwnRYrWwkd12z5kRCU1Zz6PXG3DrNKiKrVTfC836XVJQB2BHAekpVP", + "address": + "DdzFFzCqrht2SBqMcgf8PS1X6CNRTmmNCFyfkRnJKK5Dz7LseVdWDFTDneGosW18PQtLJ25yjCZEsG75NshGhuMim3Y3piZe5ftL63cG", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RX9yiH2Y9YdEvnzuW4dLtnbgy5Nh9cTu52fnBZqCZczTHsvsuwSNUMEFeXsvjS6EAsuHfXdND1ZyNXUZoDmFiJVLQVW6tjR2Nx5N2jXoscnKWLTJDPREBjMxd7DVhG5WY5iNzAcFwjqzBJHSLaErsj", + "public": + "xpub6ALttbWeJiJ4Myr11taHjwpuzisF9AggAcXXK6amcnDo2ycy2rhg9wwqVEh1KBR7ymf6YNqk2ShrrdHzAgshxkPkajZuu9FxKJGDRvbgpAD", + "address": + "DdzFFzCqrht26cvD9taFnwtDWk9xGKRDyfeDFb5H7XMma4QKLShsHuvZ7fyChkiCGg8yHwyttbHNjVKnd1jPMdacNBNxW1kwVaqMUVnk", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RX9yiH2Y9YdF9grv2xYLXdFV9qcqLCLehxTc9Y2Mbs6Z4FQwHjgNEUVrRgMzuWpN5ttAWiT7JjD9q66c54YaspBAJpc6bvCrs3FSbXKzg3yJ44nVwQbnwwjqajRvLhmynxZYf6jRzZhBZVVc1u8S47", + "public": + "xpub6ALttbWeJiJ4NjFXgLqHKA7mq65FsX7YpCAhtuKEjaSo45JFJiGXNmZkMddnCnR7BwqnWVGeGeHUeVzJtb67sJG6s8euqHA3jhvFi1MPMph", + "address": + "DdzFFzCqrhsucTMwnKzL3daMuC6gcdb2yNMbfk2oRbVb9D5wzsGhvhJdbrFMG1SaFPjG95UUJkZD5rc5HKDZ1A6BJXQz2T4GujZJ3ibA", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RX9yiH2Y9YdFnxyQ8A3qQyRTDm2LDsBTdzEAPvmYXBsXNU3wJGu8AyNynfSWQka1RcZWq7jjTzeZUzkmt61m3EfEp8sXMGav1QWTiwodm4Tk1hZoNafpY55hPeBjtm5ynhMSKDAHscQCyJ2uASJS4v", + "public": + "xpub6ALttbWeJiJ4Qtjr56g5VMep36G5cXT56naqPLKHjs5MFFY6EhpkRJhi4vhmKsAbQ7Lnnjfjh44Jz21nD2CpPqDifpbEahiit99ZB1Uxvdi", + "address": + "DdzFFzCqrhshycTYtpaxEseDzgBPm3qZUobBjaw2JUvoJjHd5jvMoSxf7FER4sMFPTPkKe5hCkZUA55SYvdKTu3X55EbzVBGWPd2eY6w", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RtpwQoE2fRPy8XL8agXZGUm1Qct6fda87jgKuPQUjCLaCEZNwWFSvFrSRoLfSdhY8PhAjeM9ZjVTV3WsmMznW3p2MfB6rGEG6qHiFyrfnbr3kd6PaRXuzGf1Ktvyga47WG7cPCgwdQN51GhhDC5cJD", + "public": + "xpub6BbrCKdYCXQPV12vFLqGZtAXGRQRCh1bt3EZ5ixaF6rcQTycv57JbrNKeSTvQ2EQcyDur62KGFiRYRNuhPkojmDve86wNJ1JvP9vQtjgnUq", + "address": + "DdzFFzCqrhtD44SMpH6NH7uv1nzSUH2isCA5Zq2kWJuHyhg86LV4kC81f7PWGLnktsQZuFX6c37XBLcbkLXjbCHCy2Mw213KygSGNbu8", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RtpwQoE2fRPyTa84Mvs4zzENSmhT9mL1vWfezHeYQzAwBoe5ezJh6ZXB94kgB6932b8nAh79yoEf7Ucfm7KKyfk5HYUsyad4tgcRBCzX9j12hw1SFHNKgoqMGsUxvq5Vdz1EJ4buP4YFaxWYLesbRD", + "public": + "xpub6BbrCKdYCXQPW79ynA81My4c16o2kpFaNTFiUZav4ehkBxwmdUsuq6aurDgSSwNiodNAQcdxEARemTQWv2NyC9sPkwGNoiZRMXoSwkvBgxn", + "address": + "DdzFFzCqrhsySCDhon4P3kzPhoj9DpA2QSDdG6mkNG4uvEknqvVXNDZi9VPcc7pXd2rpc682k831tPjRNc37hSPAiU3NjYBJBA8HxysT", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RtpwQoE2fRPz5tZDnYdY1Teuw4AsgqghHY5a9icePX5ZsJityH51kosx3vh2JgnkSvTnS5Likvtc3cMMt3P3b7LbG5xEu62ym4483967gMuf2AF6dJPZ81tCnVURWqVqS3urno1Jj9DmQ14Fgb4qCC", + "public": + "xpub6BbrCKdYCXQPYDQsJfr9cQKtmmWWCD8NTPBjr9kDUiE3dW8TD6XsUHsrt29M1BhZvMF8KZUhhhPqH91A7MJFdqBc49XTsV4xt2B1woqcb7D", + "address": + "DdzFFzCqrht9pvxH6s9kLpiMYEdDpJe3K4oo4wfD7WXxQtPw5AUjcw3iR4hVLWXat4WR2DgaoUt5jeXwBkqRXAwpxCaXMKiNK9wQcQCh", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "b2f89882dabd3916ed94da1d97be0e1e94b160740902a68f43b454adc6cda3d9", + "private": + "082568a33bc0cc2707a9501f5a3c4ee3d39d0a4483654c9ab7df1cb00575885603aea0e49d5a40e71411ccab067ad8b783582c5b318b8d83e203996621d4fe06", + "public": + "005b924d68b1cfe275c2ce14a7c39e8cc40a91188bcdff3b98be67829c9e48e223", + "chaincode": + "6ecc42552b8adf2b7ea8c76928af32e681733df6fa32c39701cf165e829afe2b", + "hd_key": + "c152c045b4ffd9d6c6835afb24b658f58d3a5dd40e27a938b970339ffa467ffb", + "child": [ + { + "private": + "xprv3Rh3mhNFBhfGN7MFGxdTwn9MQYRaCkUXuJ2PmL1swdy2Qga978d2ifu4KVuFtBUM2dVHApR1vyt5RTpBqw2wS3VZG1E1SSTpB2G1mak2HxaWbrLK4YW46wYLPMsswJKLWfZHQ6FhpM1NobwB9DwvGWj", + "public": + "xpub6AvCT1WH9tjcxfc9dJ9qiJtUYdNCAzB7QfgKNHTbbK66WXNRo1oqyMVkNmrRTLdr99CJ9rLjfNTHTANdmYuo6nraSyRguxBkh2tTnCZ7R6u", + "address": + "DdzFFzCqrht9yhrjhL7H4mHHzkva75JE19cDq76tmWGKDDPXvhmDmTrsgA5qhaZHbnYR1SpNTHuSvoUFpAvHGtWB4xwSDVHuPLPDLp2C", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rh3mhNFBhfGNent7cquw1j8Tk9KH8mns1xyP3zUmZruxpnFpW6YtTvU57wRUhCTne9rBjFrfye3BuQ7okkpEkqfURwnpvimDJYXjFzQdaurqkQXWwFzbPFeFWCi8EeG9sLoi5EyQaQEGEw66bco7TH", + "public": + "xpub6AvCT1WH9tjczVT41Wtvwoa6y9XWpK8X2jkRz24iPnDrQqJwMQi8f8YDzBJuvfnLKDHxbXW52YR4GAnbsttv9NwxbHhTtYVDGP6xW6JCoPh", + "address": + "DdzFFzCqrhsjogoCK8fsa4w8SyJTFf1j2SVJywRMg5LRSq5qAD64ky5Sq9zsdQN9nGG57F1bGBeHfZzCBx7X9yvjVCvAHtutTgxvKPUN", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rh3mhNFBhfGPhfXGHUwrichkje3v1CQX1gU1bBi3kj4e7jXUBJTFDKNrrHxJEKAV6gm6AXrPavph361s5CaTc9sT5pWu3XfDyENnkeVFrLKToB6hhUQnfsZJ63dbo2ihMHXvMTGHxi7HatWurizyzn", + "public": + "xpub6AvCT1WH9tjd42NFLrjEYEi4b3aPBEieBr6Kp5fVYyeM7vwDtSKCGKwnRYrWwkd12z5kRCU1Zz6PXG3DrNKiKrVTfC836XVJQB2BHAekpVP", + "address": + "DdzFFzCqrht2SBqMcgf8PS1X6CNRTmmNCFyfkRnJKK5Dz7LseVdWDFTDneGosW18PQtLJ25yjCZEsG75NshGhuMim3Y3piZe5ftL63cG", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RX9yiH2Y9YdEvnzuW4dLtnbgy5Nh9cTu52fnBZqCZczTHsvsuwSNUMEFeXsvjS6EAsuHfXdND1ZyNXUZoDmFiJVLQVW6tjR2Nx5N2jXoscnKWLTJDPREBjMxd7DVhG5WY5iNzAcFwjqzBJHSLaErsj", + "public": + "xpub6ALttbWeJiJ4Myr11taHjwpuzisF9AggAcXXK6amcnDo2ycy2rhg9wwqVEh1KBR7ymf6YNqk2ShrrdHzAgshxkPkajZuu9FxKJGDRvbgpAD", + "address": + "DdzFFzCqrht26cvD9taFnwtDWk9xGKRDyfeDFb5H7XMma4QKLShsHuvZ7fyChkiCGg8yHwyttbHNjVKnd1jPMdacNBNxW1kwVaqMUVnk", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RX9yiH2Y9YdF9grv2xYLXdFV9qcqLCLehxTc9Y2Mbs6Z4FQwHjgNEUVrRgMzuWpN5ttAWiT7JjD9q66c54YaspBAJpc6bvCrs3FSbXKzg3yJ44nVwQbnwwjqajRvLhmynxZYf6jRzZhBZVVc1u8S47", + "public": + "xpub6ALttbWeJiJ4NjFXgLqHKA7mq65FsX7YpCAhtuKEjaSo45JFJiGXNmZkMddnCnR7BwqnWVGeGeHUeVzJtb67sJG6s8euqHA3jhvFi1MPMph", + "address": + "DdzFFzCqrhsucTMwnKzL3daMuC6gcdb2yNMbfk2oRbVb9D5wzsGhvhJdbrFMG1SaFPjG95UUJkZD5rc5HKDZ1A6BJXQz2T4GujZJ3ibA", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RX9yiH2Y9YdFnxyQ8A3qQyRTDm2LDsBTdzEAPvmYXBsXNU3wJGu8AyNynfSWQka1RcZWq7jjTzeZUzkmt61m3EfEp8sXMGav1QWTiwodm4Tk1hZoNafpY55hPeBjtm5ynhMSKDAHscQCyJ2uASJS4v", + "public": + "xpub6ALttbWeJiJ4Qtjr56g5VMep36G5cXT56naqPLKHjs5MFFY6EhpkRJhi4vhmKsAbQ7Lnnjfjh44Jz21nD2CpPqDifpbEahiit99ZB1Uxvdi", + "address": + "DdzFFzCqrhshycTYtpaxEseDzgBPm3qZUobBjaw2JUvoJjHd5jvMoSxf7FER4sMFPTPkKe5hCkZUA55SYvdKTu3X55EbzVBGWPd2eY6w", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RtpwQoE2fRPy8XL8agXZGUm1Qct6fda87jgKuPQUjCLaCEZNwWFSvFrSRoLfSdhY8PhAjeM9ZjVTV3WsmMznW3p2MfB6rGEG6qHiFyrfnbr3kd6PaRXuzGf1Ktvyga47WG7cPCgwdQN51GhhDC5cJD", + "public": + "xpub6BbrCKdYCXQPV12vFLqGZtAXGRQRCh1bt3EZ5ixaF6rcQTycv57JbrNKeSTvQ2EQcyDur62KGFiRYRNuhPkojmDve86wNJ1JvP9vQtjgnUq", + "address": + "DdzFFzCqrhtD44SMpH6NH7uv1nzSUH2isCA5Zq2kWJuHyhg86LV4kC81f7PWGLnktsQZuFX6c37XBLcbkLXjbCHCy2Mw213KygSGNbu8", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RtpwQoE2fRPyTa84Mvs4zzENSmhT9mL1vWfezHeYQzAwBoe5ezJh6ZXB94kgB6932b8nAh79yoEf7Ucfm7KKyfk5HYUsyad4tgcRBCzX9j12hw1SFHNKgoqMGsUxvq5Vdz1EJ4buP4YFaxWYLesbRD", + "public": + "xpub6BbrCKdYCXQPW79ynA81My4c16o2kpFaNTFiUZav4ehkBxwmdUsuq6aurDgSSwNiodNAQcdxEARemTQWv2NyC9sPkwGNoiZRMXoSwkvBgxn", + "address": + "DdzFFzCqrhsySCDhon4P3kzPhoj9DpA2QSDdG6mkNG4uvEknqvVXNDZi9VPcc7pXd2rpc682k831tPjRNc37hSPAiU3NjYBJBA8HxysT", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RtpwQoE2fRPz5tZDnYdY1Teuw4AsgqghHY5a9icePX5ZsJityH51kosx3vh2JgnkSvTnS5Likvtc3cMMt3P3b7LbG5xEu62ym4483967gMuf2AF6dJPZ81tCnVURWqVqS3urno1Jj9DmQ14Fgb4qCC", + "public": + "xpub6BbrCKdYCXQPYDQsJfr9cQKtmmWWCD8NTPBjr9kDUiE3dW8TD6XsUHsrt29M1BhZvMF8KZUhhhPqH91A7MJFdqBc49XTsV4xt2B1woqcb7D", + "address": + "DdzFFzCqrht9pvxH6s9kLpiMYEdDpJe3K4oo4wfD7WXxQtPw5AUjcw3iR4hVLWXat4WR2DgaoUt5jeXwBkqRXAwpxCaXMKiNK9wQcQCh", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "7adf5af157c8f56aae9a3632f3e620cded6a7de4bd436c6526173540c7557ec2", + "private": + "b0193465d7cb0bf0e3f5c92dd7c0494e52cf0f433b807ffbddd57cad1fd9845d84d9b35db22ff0454178c6f6456969cd7b78663c5e0aa0eeed97742b12199327", + "public": + "003ef81498749575553f5daddd3b107d3ee4ab52de4055d4565bf4cfd6d73fcc0d", + "chaincode": + "524fd5e48f10ca5a94740fc852952a7626b78ed4c477d4ecddc50d921a1511e0", + "hd_key": + "adcf73619d5bb1e837894cc6b200a260d128c9c4c1548f9b6660bd49391809e4", + "child": [ + { + "private": + "xprv3Rn86tQEf3QetxJkMChWsP29xqQ7TA1fouByA4w2ApcUX3m7tD9AYjMM57dRcSYzdup2FDKPL56jrM5rPB3M7ycGPJg2S8K6J9UjmRqrqRbxMJM6LXR8upSKJ8RHKRdYRc9Se7WNkJf1t34wuN9aYj9", + "public": + "xpub6BDHFkwxRvq212AogaPwujkAv4o6434mofknpRfTRuC3zZkUNfiCbcxJKcq8xUiFHG5wQ23yRF8pGVzar9KcYbDzqt7LAxQ9CQmEXzD2PTC", + "address": + "DdzFFzCqrhserfL8mcxohwi5Add7dFNBnby9vaiaQmN4ZQ33vo8GfMVZ4fmbmhQLgeeU4nmUgRk3F2q4Qw7pGG1zuyJpSqk4DHVk7rZZ", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rn86tQEf3QeufJiCtTndn5z4rY6ayd3r8Yc4U9Cup4gMNV4FQcmujnQLjtpUsmjk4VTHxTw1vRmWyXNy9u487fTrzjmGZBgPgNaSh1h7phFa2JT6Fc6cQSNvxdavohWEbmzN9gRknPF1Nxv4JCXEPv", + "public": + "xpub6BDHFkwxRvq23QBk3FLxQdnt3RtVsj5dF7oHfbqQY5FBNE3amYqtAncVkSHcLrQpdDaz1mP6e7baJEDrCnw2bzALQZ6ADm6KZM1gan2TjfE", + "address": + "DdzFFzCqrhsryZ3bV77EpNJAssF1hCUG1bXAdL5T4ryUKpTnMJpcqet3cpb3392KM971TV2EdZQ9ZoXbgDNwdvyh1qcCvR1hfRH6iFh3", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rn86tQEf3QevXZQKfN2FFfBt7auTTWf5V8gtBdsPkz68cTvXcaxUz3CwZ3F8CK2dXg5YazMMhH9tzxWNmCyqMT2d2fUYRFuZVxKFzPu9pfYxuSdtBjWmX7oDc6cWY5KoRV79mDftHJgZ1LAyiKUcRB", + "public": + "xpub6BDHFkwxRvq26KMUC9fC4ZjTfd2he4CQr6RAqSviA4BtHv7jr57nFHgqJ69KasMFxiJLgsTN78maDpyXcq2KDBFsawAvfg8PNmetc9S4EBL", + "address": + "DdzFFzCqrhsuxdyyeNrFeC5YSC2T3duTrKrRTjaHpVxBG5PQJzmvUw2nP9JeERsBS122ua2B8gdHBtr2K8Af2tN5vCHs4BadZFhPij5g", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RqN2TdEqQwEQBLyYsgj9cV1Mxy1VJs5djHua69DehSSdbW44K3nEZ2KKu7yokF36uUXm9u1iwQhcvvXTc7wsiURpKFpxC5Fj8xCtBdeECEAnHSjfMCnkEKo8uUnEZ25RiaCayeiHZ1KkK8fMpCjMeT", + "public": + "xpub6BQBrzTEMqiBYbQzXDifGyn4jeizuQaBsgJhVaoY3WozpxVhFkEHv1HpBbtTygo9B3ubjmpuEqsxFCdKFjfnPpdd718e9zqd94t6eEBkW17", + "address": + "DdzFFzCqrhsyppLqzCAmJRq6soiYEHrKqcckL8yyaLPMKm4TVvhP5bXE2388EZvUWQFdKNXcWsJds7QHGJMucjEadjn4SKEbQyi8ipLh", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RqN2TdEqQwER3PxgEGURWrz1hL7Wehj5SFCxBq9dguLE38BJwVFskbStsck8XYTYeBTQyZwFvZ6ZK6BB4P6XU9YNZuU9hhJ2bLAHUwhG2yJWuePq62GoGUuitDh1pF4wgNj3z22Vro3XTYTngaorMD", + "public": + "xpub6BQBrzTEMqiBbVuJzSuA2wEbHScWk4B2CLfEgbESYgq2kBD1mm79RCgDZetN4BBfKfme4ngKzrZAw8ChDpaLkyPuV2nXWDxR5C1BuA6re2W", + "address": + "DdzFFzCqrhsrhxcQ4p3CvakGmd4StTGh9umG7pKMqo7jQxgZoddV1aS8pgYp6Bkn34AWFCkR8tb15f27BJtRSfzk3fsUopwdsND9CFNR", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RqN2TdEqQwERfxEL68d4LM1KwysTfDuZebYE4JpCYjgdZ9zjxKyxcajood6AVZa3T5VzjAJKVyNDLxDaPLmxxTzvRLbAQG178X7dRAczThfoeiMBVLsYrnfad7Zooe64VjMU1DWjApEvL7BbAZdfiX", + "public": + "xpub6BQBrzTEMqiBdcxmwVige7qtmbo8jzsxBCSGNiaMyRYZhJAcGzGbnwaNU13pCfABwSBMhBFEG4tSc7KLLHWjEdF7VNR9Ps3xzy41ED5EK43", + "address": + "DdzFFzCqrhsr7t3tzx3nti17pYjqJTtCwDLyajDQww8qsFu61atY1gHJpHmsDAr3SYqnK8QVPeu45HeEthvorWGokQCsTUocBbGmoVdM", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RZ939yeoLLwbcgQs23pu2KQQ2RyCbteFQTshwKJzRNGXAsooEcVw8CWvwxzUhAuWhANwowJWJjNHM3cqVJjgqx4WphQQvLHzFDA6BAn5Q1qr9qfQESmDJR8vH7Vu3Hbyh83K4AJ8LeQonVMvDKeimj", + "public": + "xpub6ATaDQcNGTgDDnXW1a4uUUtdFaYpFwWYjHyqztWo1F9K8kwMwSbTx1BXWahY17TxqaqTrCYoBE5sE2CHHAxUJzCLTaEjM9btjP2muTRWXkq", + "address": + "DdzFFzCqrhse5LzW4mdj9PnmcCb7AVHw4DqtZRGYVrPvLfwSrbAoj6qMT21A8W4LoFJ2tNJ9sQABCa2orB8TepwuCuezWuCcstjFr8zX", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RZ939yeoLLwcrtroWjSYCTsrK2dr1MfWEs49XaupZsq5oFYpSwcjWafUQd4rnbwsfBrJiT1vwTJxf1yZ76TQUK1YBMKwoUzBfwkf8y7HR2sBxo1e4Z4A4eDeZqwBvGL3SiKJLh4fZ5JyFDNvx6aDbk", + "public": + "xpub6ATaDQcNGTgDHyd55rNftkHaf4tmazcPkpMAodwPFpLDr7JjMXqJL3cJAU6MNZJjWSmBNEnXjJAj6nj2Adyn93KVLypGtWvytmhsMEUz7UT", + "address": + "DdzFFzCqrhsjh2WePxLKmoG3dS1XJ6hTuW9XihfXSbuB6pffMcUwsCvCZWMpxqrdMDnZ4YuXCaX1gUoozWD5yvX9XVj5AUHJRiPz8mgM", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RZ939yeoLLwdVcTWrdTsT9nvNkN8uqKgaV6ostNCq4jpKhU5ZP74hVyaMPvikzJRh3BcbXCJy1pZSwhuaG3ir5AGxXi34geqdV48WTBNzBYpspTAjMPxcQnDeu4fFaFGU8Kb2KAMTXu2VUJVL5Y5X2", + "public": + "xpub6ATaDQcNGTgDL7DwQPbNF93F22gzoVKVswBFpyqf8KFfnPArRuC7dHmFC6cQmYJfAbwGmSBWjfDb23z6LDbge7f6uCnJy1F2cVtPQke6BdA", + "address": + "DdzFFzCqrhsvLiMTM4UN2ewyqTgezkcstJKRsJf9i1xXLYkQZVFha56swHYXBAUkjAw7siVyn7FJguHERKUNcPGRSW2uCcRA3uZFKwWc", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "7adf5af157c8f56aae9a3632f3e620cded6a7de4bd436c6526173540c7557ec2", + "private": + "b0193465d7cb0bf0e3f5c92dd7c0494e52cf0f433b807ffbddd57cad1fd9845d84d9b35db22ff0454178c6f6456969cd7b78663c5e0aa0eeed97742b12199327", + "public": + "003ef81498749575553f5daddd3b107d3ee4ab52de4055d4565bf4cfd6d73fcc0d", + "chaincode": + "524fd5e48f10ca5a94740fc852952a7626b78ed4c477d4ecddc50d921a1511e0", + "hd_key": + "adcf73619d5bb1e837894cc6b200a260d128c9c4c1548f9b6660bd49391809e4", + "child": [ + { + "private": + "xprv3Rn86tQEf3QetxJkMChWsP29xqQ7TA1fouByA4w2ApcUX3m7tD9AYjMM57dRcSYzdup2FDKPL56jrM5rPB3M7ycGPJg2S8K6J9UjmRqrqRbxMJM6LXR8upSKJ8RHKRdYRc9Se7WNkJf1t34wuN9aYj9", + "public": + "xpub6BDHFkwxRvq212AogaPwujkAv4o6434mofknpRfTRuC3zZkUNfiCbcxJKcq8xUiFHG5wQ23yRF8pGVzar9KcYbDzqt7LAxQ9CQmEXzD2PTC", + "address": + "DdzFFzCqrhserfL8mcxohwi5Add7dFNBnby9vaiaQmN4ZQ33vo8GfMVZ4fmbmhQLgeeU4nmUgRk3F2q4Qw7pGG1zuyJpSqk4DHVk7rZZ", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rn86tQEf3QeufJiCtTndn5z4rY6ayd3r8Yc4U9Cup4gMNV4FQcmujnQLjtpUsmjk4VTHxTw1vRmWyXNy9u487fTrzjmGZBgPgNaSh1h7phFa2JT6Fc6cQSNvxdavohWEbmzN9gRknPF1Nxv4JCXEPv", + "public": + "xpub6BDHFkwxRvq23QBk3FLxQdnt3RtVsj5dF7oHfbqQY5FBNE3amYqtAncVkSHcLrQpdDaz1mP6e7baJEDrCnw2bzALQZ6ADm6KZM1gan2TjfE", + "address": + "DdzFFzCqrhsryZ3bV77EpNJAssF1hCUG1bXAdL5T4ryUKpTnMJpcqet3cpb3392KM971TV2EdZQ9ZoXbgDNwdvyh1qcCvR1hfRH6iFh3", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rn86tQEf3QevXZQKfN2FFfBt7auTTWf5V8gtBdsPkz68cTvXcaxUz3CwZ3F8CK2dXg5YazMMhH9tzxWNmCyqMT2d2fUYRFuZVxKFzPu9pfYxuSdtBjWmX7oDc6cWY5KoRV79mDftHJgZ1LAyiKUcRB", + "public": + "xpub6BDHFkwxRvq26KMUC9fC4ZjTfd2he4CQr6RAqSviA4BtHv7jr57nFHgqJ69KasMFxiJLgsTN78maDpyXcq2KDBFsawAvfg8PNmetc9S4EBL", + "address": + "DdzFFzCqrhsuxdyyeNrFeC5YSC2T3duTrKrRTjaHpVxBG5PQJzmvUw2nP9JeERsBS122ua2B8gdHBtr2K8Af2tN5vCHs4BadZFhPij5g", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RqN2TdEqQwEQBLyYsgj9cV1Mxy1VJs5djHua69DehSSdbW44K3nEZ2KKu7yokF36uUXm9u1iwQhcvvXTc7wsiURpKFpxC5Fj8xCtBdeECEAnHSjfMCnkEKo8uUnEZ25RiaCayeiHZ1KkK8fMpCjMeT", + "public": + "xpub6BQBrzTEMqiBYbQzXDifGyn4jeizuQaBsgJhVaoY3WozpxVhFkEHv1HpBbtTygo9B3ubjmpuEqsxFCdKFjfnPpdd718e9zqd94t6eEBkW17", + "address": + "DdzFFzCqrhsyppLqzCAmJRq6soiYEHrKqcckL8yyaLPMKm4TVvhP5bXE2388EZvUWQFdKNXcWsJds7QHGJMucjEadjn4SKEbQyi8ipLh", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RqN2TdEqQwER3PxgEGURWrz1hL7Wehj5SFCxBq9dguLE38BJwVFskbStsck8XYTYeBTQyZwFvZ6ZK6BB4P6XU9YNZuU9hhJ2bLAHUwhG2yJWuePq62GoGUuitDh1pF4wgNj3z22Vro3XTYTngaorMD", + "public": + "xpub6BQBrzTEMqiBbVuJzSuA2wEbHScWk4B2CLfEgbESYgq2kBD1mm79RCgDZetN4BBfKfme4ngKzrZAw8ChDpaLkyPuV2nXWDxR5C1BuA6re2W", + "address": + "DdzFFzCqrhsrhxcQ4p3CvakGmd4StTGh9umG7pKMqo7jQxgZoddV1aS8pgYp6Bkn34AWFCkR8tb15f27BJtRSfzk3fsUopwdsND9CFNR", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RqN2TdEqQwERfxEL68d4LM1KwysTfDuZebYE4JpCYjgdZ9zjxKyxcajood6AVZa3T5VzjAJKVyNDLxDaPLmxxTzvRLbAQG178X7dRAczThfoeiMBVLsYrnfad7Zooe64VjMU1DWjApEvL7BbAZdfiX", + "public": + "xpub6BQBrzTEMqiBdcxmwVige7qtmbo8jzsxBCSGNiaMyRYZhJAcGzGbnwaNU13pCfABwSBMhBFEG4tSc7KLLHWjEdF7VNR9Ps3xzy41ED5EK43", + "address": + "DdzFFzCqrhsr7t3tzx3nti17pYjqJTtCwDLyajDQww8qsFu61atY1gHJpHmsDAr3SYqnK8QVPeu45HeEthvorWGokQCsTUocBbGmoVdM", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RZ939yeoLLwbcgQs23pu2KQQ2RyCbteFQTshwKJzRNGXAsooEcVw8CWvwxzUhAuWhANwowJWJjNHM3cqVJjgqx4WphQQvLHzFDA6BAn5Q1qr9qfQESmDJR8vH7Vu3Hbyh83K4AJ8LeQonVMvDKeimj", + "public": + "xpub6ATaDQcNGTgDDnXW1a4uUUtdFaYpFwWYjHyqztWo1F9K8kwMwSbTx1BXWahY17TxqaqTrCYoBE5sE2CHHAxUJzCLTaEjM9btjP2muTRWXkq", + "address": + "DdzFFzCqrhse5LzW4mdj9PnmcCb7AVHw4DqtZRGYVrPvLfwSrbAoj6qMT21A8W4LoFJ2tNJ9sQABCa2orB8TepwuCuezWuCcstjFr8zX", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RZ939yeoLLwcrtroWjSYCTsrK2dr1MfWEs49XaupZsq5oFYpSwcjWafUQd4rnbwsfBrJiT1vwTJxf1yZ76TQUK1YBMKwoUzBfwkf8y7HR2sBxo1e4Z4A4eDeZqwBvGL3SiKJLh4fZ5JyFDNvx6aDbk", + "public": + "xpub6ATaDQcNGTgDHyd55rNftkHaf4tmazcPkpMAodwPFpLDr7JjMXqJL3cJAU6MNZJjWSmBNEnXjJAj6nj2Adyn93KVLypGtWvytmhsMEUz7UT", + "address": + "DdzFFzCqrhsjh2WePxLKmoG3dS1XJ6hTuW9XihfXSbuB6pffMcUwsCvCZWMpxqrdMDnZ4YuXCaX1gUoozWD5yvX9XVj5AUHJRiPz8mgM", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RZ939yeoLLwdVcTWrdTsT9nvNkN8uqKgaV6ostNCq4jpKhU5ZP74hVyaMPvikzJRh3BcbXCJy1pZSwhuaG3ir5AGxXi34geqdV48WTBNzBYpspTAjMPxcQnDeu4fFaFGU8Kb2KAMTXu2VUJVL5Y5X2", + "public": + "xpub6ATaDQcNGTgDL7DwQPbNF93F22gzoVKVswBFpyqf8KFfnPArRuC7dHmFC6cQmYJfAbwGmSBWjfDb23z6LDbge7f6uCnJy1F2cVtPQke6BdA", + "address": + "DdzFFzCqrhsvLiMTM4UN2ewyqTgezkcstJKRsJf9i1xXLYkQZVFha56swHYXBAUkjAw7siVyn7FJguHERKUNcPGRSW2uCcRA3uZFKwWc", + "first_index": 2, + "second_index": 2 + } + ] + }, + { + "seed": "7adf5af157c8f56aae9a3632f3e620cded6a7de4bd436c6526173540c7557ec2", + "private": + "b0193465d7cb0bf0e3f5c92dd7c0494e52cf0f433b807ffbddd57cad1fd9845d84d9b35db22ff0454178c6f6456969cd7b78663c5e0aa0eeed97742b12199327", + "public": + "003ef81498749575553f5daddd3b107d3ee4ab52de4055d4565bf4cfd6d73fcc0d", + "chaincode": + "524fd5e48f10ca5a94740fc852952a7626b78ed4c477d4ecddc50d921a1511e0", + "hd_key": + "adcf73619d5bb1e837894cc6b200a260d128c9c4c1548f9b6660bd49391809e4", + "child": [ + { + "private": + "xprv3Rn86tQEf3QetxJkMChWsP29xqQ7TA1fouByA4w2ApcUX3m7tD9AYjMM57dRcSYzdup2FDKPL56jrM5rPB3M7ycGPJg2S8K6J9UjmRqrqRbxMJM6LXR8upSKJ8RHKRdYRc9Se7WNkJf1t34wuN9aYj9", + "public": + "xpub6BDHFkwxRvq212AogaPwujkAv4o6434mofknpRfTRuC3zZkUNfiCbcxJKcq8xUiFHG5wQ23yRF8pGVzar9KcYbDzqt7LAxQ9CQmEXzD2PTC", + "address": + "DdzFFzCqrhserfL8mcxohwi5Add7dFNBnby9vaiaQmN4ZQ33vo8GfMVZ4fmbmhQLgeeU4nmUgRk3F2q4Qw7pGG1zuyJpSqk4DHVk7rZZ", + "first_index": 0, + "second_index": 0 + }, + { + "private": + "xprv3Rn86tQEf3QeufJiCtTndn5z4rY6ayd3r8Yc4U9Cup4gMNV4FQcmujnQLjtpUsmjk4VTHxTw1vRmWyXNy9u487fTrzjmGZBgPgNaSh1h7phFa2JT6Fc6cQSNvxdavohWEbmzN9gRknPF1Nxv4JCXEPv", + "public": + "xpub6BDHFkwxRvq23QBk3FLxQdnt3RtVsj5dF7oHfbqQY5FBNE3amYqtAncVkSHcLrQpdDaz1mP6e7baJEDrCnw2bzALQZ6ADm6KZM1gan2TjfE", + "address": + "DdzFFzCqrhsryZ3bV77EpNJAssF1hCUG1bXAdL5T4ryUKpTnMJpcqet3cpb3392KM971TV2EdZQ9ZoXbgDNwdvyh1qcCvR1hfRH6iFh3", + "first_index": 0, + "second_index": 1 + }, + { + "private": + "xprv3Rn86tQEf3QevXZQKfN2FFfBt7auTTWf5V8gtBdsPkz68cTvXcaxUz3CwZ3F8CK2dXg5YazMMhH9tzxWNmCyqMT2d2fUYRFuZVxKFzPu9pfYxuSdtBjWmX7oDc6cWY5KoRV79mDftHJgZ1LAyiKUcRB", + "public": + "xpub6BDHFkwxRvq26KMUC9fC4ZjTfd2he4CQr6RAqSviA4BtHv7jr57nFHgqJ69KasMFxiJLgsTN78maDpyXcq2KDBFsawAvfg8PNmetc9S4EBL", + "address": + "DdzFFzCqrhsuxdyyeNrFeC5YSC2T3duTrKrRTjaHpVxBG5PQJzmvUw2nP9JeERsBS122ua2B8gdHBtr2K8Af2tN5vCHs4BadZFhPij5g", + "first_index": 0, + "second_index": 2 + }, + { + "private": + "xprv3RqN2TdEqQwEQBLyYsgj9cV1Mxy1VJs5djHua69DehSSdbW44K3nEZ2KKu7yokF36uUXm9u1iwQhcvvXTc7wsiURpKFpxC5Fj8xCtBdeECEAnHSjfMCnkEKo8uUnEZ25RiaCayeiHZ1KkK8fMpCjMeT", + "public": + "xpub6BQBrzTEMqiBYbQzXDifGyn4jeizuQaBsgJhVaoY3WozpxVhFkEHv1HpBbtTygo9B3ubjmpuEqsxFCdKFjfnPpdd718e9zqd94t6eEBkW17", + "address": + "DdzFFzCqrhsyppLqzCAmJRq6soiYEHrKqcckL8yyaLPMKm4TVvhP5bXE2388EZvUWQFdKNXcWsJds7QHGJMucjEadjn4SKEbQyi8ipLh", + "first_index": 1, + "second_index": 0 + }, + { + "private": + "xprv3RqN2TdEqQwER3PxgEGURWrz1hL7Wehj5SFCxBq9dguLE38BJwVFskbStsck8XYTYeBTQyZwFvZ6ZK6BB4P6XU9YNZuU9hhJ2bLAHUwhG2yJWuePq62GoGUuitDh1pF4wgNj3z22Vro3XTYTngaorMD", + "public": + "xpub6BQBrzTEMqiBbVuJzSuA2wEbHScWk4B2CLfEgbESYgq2kBD1mm79RCgDZetN4BBfKfme4ngKzrZAw8ChDpaLkyPuV2nXWDxR5C1BuA6re2W", + "address": + "DdzFFzCqrhsrhxcQ4p3CvakGmd4StTGh9umG7pKMqo7jQxgZoddV1aS8pgYp6Bkn34AWFCkR8tb15f27BJtRSfzk3fsUopwdsND9CFNR", + "first_index": 1, + "second_index": 1 + }, + { + "private": + "xprv3RqN2TdEqQwERfxEL68d4LM1KwysTfDuZebYE4JpCYjgdZ9zjxKyxcajood6AVZa3T5VzjAJKVyNDLxDaPLmxxTzvRLbAQG178X7dRAczThfoeiMBVLsYrnfad7Zooe64VjMU1DWjApEvL7BbAZdfiX", + "public": + "xpub6BQBrzTEMqiBdcxmwVige7qtmbo8jzsxBCSGNiaMyRYZhJAcGzGbnwaNU13pCfABwSBMhBFEG4tSc7KLLHWjEdF7VNR9Ps3xzy41ED5EK43", + "address": + "DdzFFzCqrhsr7t3tzx3nti17pYjqJTtCwDLyajDQww8qsFu61atY1gHJpHmsDAr3SYqnK8QVPeu45HeEthvorWGokQCsTUocBbGmoVdM", + "first_index": 1, + "second_index": 2 + }, + { + "private": + "xprv3RZ939yeoLLwbcgQs23pu2KQQ2RyCbteFQTshwKJzRNGXAsooEcVw8CWvwxzUhAuWhANwowJWJjNHM3cqVJjgqx4WphQQvLHzFDA6BAn5Q1qr9qfQESmDJR8vH7Vu3Hbyh83K4AJ8LeQonVMvDKeimj", + "public": + "xpub6ATaDQcNGTgDDnXW1a4uUUtdFaYpFwWYjHyqztWo1F9K8kwMwSbTx1BXWahY17TxqaqTrCYoBE5sE2CHHAxUJzCLTaEjM9btjP2muTRWXkq", + "address": + "DdzFFzCqrhse5LzW4mdj9PnmcCb7AVHw4DqtZRGYVrPvLfwSrbAoj6qMT21A8W4LoFJ2tNJ9sQABCa2orB8TepwuCuezWuCcstjFr8zX", + "first_index": 2, + "second_index": 0 + }, + { + "private": + "xprv3RZ939yeoLLwcrtroWjSYCTsrK2dr1MfWEs49XaupZsq5oFYpSwcjWafUQd4rnbwsfBrJiT1vwTJxf1yZ76TQUK1YBMKwoUzBfwkf8y7HR2sBxo1e4Z4A4eDeZqwBvGL3SiKJLh4fZ5JyFDNvx6aDbk", + "public": + "xpub6ATaDQcNGTgDHyd55rNftkHaf4tmazcPkpMAodwPFpLDr7JjMXqJL3cJAU6MNZJjWSmBNEnXjJAj6nj2Adyn93KVLypGtWvytmhsMEUz7UT", + "address": + "DdzFFzCqrhsjh2WePxLKmoG3dS1XJ6hTuW9XihfXSbuB6pffMcUwsCvCZWMpxqrdMDnZ4YuXCaX1gUoozWD5yvX9XVj5AUHJRiPz8mgM", + "first_index": 2, + "second_index": 1 + }, + { + "private": + "xprv3RZ939yeoLLwdVcTWrdTsT9nvNkN8uqKgaV6ostNCq4jpKhU5ZP74hVyaMPvikzJRh3BcbXCJy1pZSwhuaG3ir5AGxXi34geqdV48WTBNzBYpspTAjMPxcQnDeu4fFaFGU8Kb2KAMTXu2VUJVL5Y5X2", + "public": + "xpub6ATaDQcNGTgDL7DwQPbNF93F22gzoVKVswBFpyqf8KFfnPArRuC7dHmFC6cQmYJfAbwGmSBWjfDb23z6LDbge7f6uCnJy1F2cVtPQke6BdA", + "address": + "DdzFFzCqrhsvLiMTM4UN2ewyqTgezkcstJKRsJf9i1xXLYkQZVFha56swHYXBAUkjAw7siVyn7FJguHERKUNcPGRSW2uCcRA3uZFKwWc", + "first_index": 2, + "second_index": 2 + } + ] + } +]; diff --git a/test/cardano/cip1852/cip1852_test.dart b/test/cardano/cip1852/cip1852_test.dart new file mode 100644 index 0000000..47ca3be --- /dev/null +++ b/test/cardano/cip1852/cip1852_test.dart @@ -0,0 +1,34 @@ +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base.dart'; +import 'package:blockchain_utils/bip/cardano/cip1852/cip1852.dart'; +import 'package:blockchain_utils/bip/cardano/cip1852/conf/cip1852_coins.dart'; +import 'package:blockchain_utils/bip/cardano/shelley/cardano_shelley.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import 'test_vector.dart'; + +void main() { + test("cip1852", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final cip = Cip1852.fromSeed(seed, Cip1852Coins.cardanoIcarus); + final public = cip.publicKey.toExtended; + final private = cip.privateKey.toExtended; + expect(public, i["public"]); + expect(private, i["private"]); + final coin = cip.purpose.coin; + expect(coin.publicKey.toExtended, i["coin_public"]); + expect(coin.privateKey.toExtended, i["coin_private"]); + final account = coin.account(0); + expect(account.publicKey.toExtended, i["account_public"]); + expect(account.privateKey.toExtended, i["account_private"]); + final toCardanoShelly = CardanoShelley.fromCip1852Object(account); + expect(toCardanoShelly.stakingKey.publicKey.toAddress, i["stacking"]); + final addresses = List.from(i["addresses"]); + final change = toCardanoShelly.change(Bip44Changes.chainExt); + for (int i = 0; i < addresses.length; i++) { + final addr = change.addressIndex(i).publicKeys.toAddress; + expect(addr, addresses[i]); + } + } + }); +} diff --git a/test/cardano/cip1852/test_vector.dart b/test/cardano/cip1852/test_vector.dart new file mode 100644 index 0000000..03f772d --- /dev/null +++ b/test/cardano/cip1852/test_vector.dart @@ -0,0 +1,577 @@ +final List> testVector = [ + { + "seed": "c0e2bf4c50d29b4d491e6ad0b978a59196e3213f15043c85ab3e41b1445e772b", + "public": + "xpub661MyMwAqRbcFuuJ7nZ5CPZHvh9JzV5jFkWpwb8Ltu18Jn59g6CsJATDLB2qsy6QHoQSYHQ9HVHvxsct4xfZpnuBJGE5Up63fjRuY9jz1LS", + "private": + "xprv3QESAWYc9vDdZg2SPBXCXvcRF37JA9wpLfqeVTJ5o2pnwsyxb3AaDJ6BGXFoPMQNXcXwZrt7yYcFJgTJGnuPreN7b9kRfSxFLh7T1P9qrQjXEtrf7qHfoL69xUkNPNMYHXKyx7vBUEDeW2naZvCYVu1", + "coin_public": + "xpub69yukWz9gDF1F9ahGRYg8rXmQG1qubgML8qe6paT44DwRBaq9zqrYAu7RhpeXQEcdnWXTbMYL1rfPNcFQk4by9D4X7eNLgUnYiXSziQrAwh", + "coin_private": + "xprv3RQvQtdTqvX9XpE5c8FY9WPPMvziBjamTxy4CzHGmAtZaV8wHYpzKYJMhkTKaQWJzmCSTX5nyL6p4pYMu2Wi5CMdvX2mmatZhNFjwWHY5fbqXYxPX8UpgY8MVzUqKdrk2tAavm7oqQJnZK9kQPKM1Ld", + "account_public": + "xpub6BuWmEbdP62NE2acXMBBpMEEzgjxRZN87pquDshQLa7WPqMWUBiGwLBKFXZTd6x8B7eWpojCfMwGfsGaWJQ3Jw9VnAEsB28vQBDZN7Ph9Bz", + "account_private": + "xprv3Rz5JJDV2bZcceZtYrsy5yTbaEF3yeDn7nVBgjjhjVqwNgXnhV1Ww8u2J74wvK6KC1GALRTocaxSEMo2Kgz8PXqYz1LxbMs3JWHHi37m9qyvyR8bdbd2api1XdUkAtrg7R8WPS1HsqBPyDBnT4zRbrM", + "stacking": "stake1u8farj9hx7plgly6z284467l93anwpsk0w2r2r87j7afjrq7xur5j", + "addresses": [ + "addr1q9znrzzh7hhlw5chdzwj992krah0evxnh2x3kdhns0exn87n68ytwdur737f5y50tt4a7trmxurpv7u5x5x0a9a6nyxqtyeyy6", + "addr1q9x640gpf84wcwysnajj7ugftwq9tvyksypyds46nnhkdtwn68ytwdur737f5y50tt4a7trmxurpv7u5x5x0a9a6nyxqv44xs6", + "addr1qyd4e4c4qdznxsv69hheude6glxdu9rdeerg7u2hpncqpswn68ytwdur737f5y50tt4a7trmxurpv7u5x5x0a9a6nyxqkmeywz", + "addr1q8wq0wt5d7ca0x5fjtqvzugcrr64zgktzmmwru6lq9d4mm7n68ytwdur737f5y50tt4a7trmxurpv7u5x5x0a9a6nyxqyd5vre", + "addr1qylpcwp282qfy3vvrfx6dr0xajf5ny0r80yd57lsxxp5xtxn68ytwdur737f5y50tt4a7trmxurpv7u5x5x0a9a6nyxq0t50uz" + ] + }, + { + "seed": "a562fb26a2e365296657fbbe4287e4d7e8dc38b345e2d416a100ce1ca0fba671", + "public": + "xpub661MyMwAqRbcGsNAaqaTegvAthu7uyQC1TYfi3EpXLeMzJEPrGtB3yvVLTbzxB1bxPHg26wcF5gff6Afcag4QTsKqneBG3Y59LWpw6vTswq", + "private": + "xprv3QESAWYc9vDdZxW3mKPg4biJdqQHuGxANku5EnjgUn9dipbtUG8z2J7D3PkghPMRgC6jDDw38sv31ZN44N4wFUtn2eJKHG9vQ7y8YEdJjBrUFA7ZKFCUtYQm5kb68KYpAvJNxzidGTyMNAJFQTy21hE", + "coin_public": + "xpub6A4QCRC6AaTQr1fsxv7v9qVcPTAGQnKLV3ycUzFAmU2qHHVL1rJdTwhR19qF9rjdqFHEruav1vRJCkA2FiHQTRxLTtDV8x74JDmJEwsF9DW", + "coin_private": + "xprv3RSFnHEEM1QnK7Xn5keuETwprzS1hci1TcdnErsS7vunvx5AhqUTMafQK7BnV4fHfFvzn1yFkwTYWW2RCHJc1imaKYbsmX4JBUfFWF9dHgXAkQTdb1m2FqijGUtfJjotS3m8vzHjVQz4n1qzxQ3c777", + "account_public": + "xpub6BvAy4ZW8VD6xVVXDWDERTAi5yTh8iXJ5sHrRRyBvacigLnp1VT8MZ357txxoVdjCV9wRU1VRa1svda35kDMqCJu5mQXoNraHU7Nrji3V7k", + "account_private": + "xprv3RzGeY2SZF7g8Sz4qhzZUHMyoxN6Xkzc1dYxZy8sdvUj8NTVP8QEVyyqFzTzg5fzjaHVgnngzobxmHmsXRPTDMsdTkaXbascvDbMxgjkA23qZguYqpr77G7x6cxbzHbgcUXN5LkiGzJh8uZMQ12iK5q", + "stacking": "stake1u8352l04ud9tqwvqgqjsxryvdvawglhrn2pl97hsz2mv9aszxzhwe", + "addresses": [ + "addr1q98k5e0306zf5k0c88f78h3qgl2ss52m563lr7p3azlz4c0rg47ltc62kqucqsp9qvxgc6e6u3lw8x5r7ta0qy4kctmq350mt7", + "addr1q9em00j0jh86cc074dmrq3fdsn8wgtu48623le6s7jlqvtlrg47ltc62kqucqsp9qvxgc6e6u3lw8x5r7ta0qy4kctmq3d38zy", + "addr1qxtwqxpx67cpwput57kmfw0gven9md8y34a0yzdvxw8gvflrg47ltc62kqucqsp9qvxgc6e6u3lw8x5r7ta0qy4kctmqn7gmkj", + "addr1q8re20th2z4m8mtjuy88h7fkqaqqxdetccmp63785k20j88rg47ltc62kqucqsp9qvxgc6e6u3lw8x5r7ta0qy4kctmqm7t8td", + "addr1qy59t347xrzrund70tqn5ec2k0ehyaejl9xzksf0umcsullrg47ltc62kqucqsp9qvxgc6e6u3lw8x5r7ta0qy4kctmqmwwkv0" + ] + }, + { + "seed": "d665a4ce2c80ecfa56c7d92a22d5d0ecf6e31a68d1b0a55c39230ae5813ede6b", + "public": + "xpub661MyMwAqRbcGkY9dNXiXtXgx3rfGyMu6fkzbEsZ8hSReNXscALvACaFm6Qvm4ngzF12ptQpTYsNZzv5v1bg5AMxMG7XdRnEKijVjuSquJt", + "private": + "xprv3QESAWYc9vDdZvUQZQxgV5rCb7ZvUt7sSGfrRfRwGgoPbxB4h6ct7CgPeDqn9SanQLpaifeSvHzVycWK7UuvaLwBnzbMrKeGtBfjahYWo1WX6Pg6dzZrxWRTGZATF5JzTc7kYePS3HN2DQvfBJTDhBf", + "coin_public": + "xpub6Apyy2LLSK91s6j1prCmfPfW4pirDzpucVbqoptB9odEYp67cEPedx9HYmDp9LuE4pk3JAKEYMiYMy1HarEzkCgicxV7HvSidSjK7625WMh", + "coin_private": + "xprv3RfVv3XiuMDWmppDLFcV6YYh48VFNSs3wGdKv8Gc18js3gH6dzuPYSmg7RRBR1uR2unwX1y6yYg2pEEmWf7xnDbUoj8UM3kyK1irvbp4VTFL3tAgedKoyMLh2R5RRhaTDoupTe24Stui7RAk1EV1pLJ", + "account_public": + "xpub6Cu2HbWX3Pjte5Gb8PS6uZn6mTi4gkHjgJVdtHkb27WifjQxS9MW8FGfeiMTHSExUM7XZXDR2wwK3E86UqarbBmRvBApMxw91krX3dEuLNF", + "account_private": + "xprv3SHAA2dL8BZacN11eF76ng6QDpaBK94ddJhGN5T6qp23Ae5SGB3cutsYTcxKWxeDkomNf2g3fTQq3rpQUL15vGYX5sDQ3wVFpsnvvVAszNrvbDAwZkyDKYCjkTsidqbCsWAhJUxErVai9ct6PwEi5Dk", + "stacking": "stake1u8wja9dmz5hpfz6pyrwl89ddh6sg2pcuhsu8ajtgetndjec7y0vfk", + "addresses": [ + "addr1q8nsm8cfxy4k6vga6vjnf9702rr8t7tm6s8xdnr92gdwuyxa962mk9fwzj95zgxa7w26m04qs5r3e0pc0myk3jhxm9ns54f98c", + "addr1q9u6r78tdtp6q0c9msnwzqykpz8tvqefm9jz9n4j64sma8xa962mk9fwzj95zgxa7w26m04qs5r3e0pc0myk3jhxm9ns6mr5j5", + "addr1qxqyvd9p42m2eh3zxp4jvgtgetszvypmhkc0t96j49tl5yxa962mk9fwzj95zgxa7w26m04qs5r3e0pc0myk3jhxm9nslgzfj3", + "addr1q85pfk5lputjve0yhz3ckjmcazqnas5dsn9j82cgf5tjn0wa962mk9fwzj95zgxa7w26m04qs5r3e0pc0myk3jhxm9ns6ff80p", + "addr1qx339q5rtq0x98vu4ujlp0e32u8awx8fd2s0kjaqefnlzxxa962mk9fwzj95zgxa7w26m04qs5r3e0pc0myk3jhxm9ns3dctjl" + ] + }, + { + "seed": "ad9b772818b4960156108fa127801b48ba8f27d31c0d74863e84825f4c9ee2ba", + "public": + "xpub661MyMwAqRbcG2mpSkT4UjJAZ438RG3GVBKMNFHKUpTkQ2tNpz4BxRU8c5YuJxArjmksPRydfF9c9XtQMpTDE7PDYmGBRNwUCowCn7Vq7cs", + "private": + "xprv3QESAWYc9vDdZi4pmmGeCBuv95xhSpN6D5sR5qkrstBRHyMksyzUxUFaJUXYUyZke2YdnGffZi6ELiufB9QYXYTkmLXg1SVfqUYASymJyKyMT2EkPTGWMPeZiwjGMsREwMNPe618yjM5q9Q3dgfsyPP", + "coin_public": + "xpub6BdZRYBTCQBY6YqmoKtz3JNJbAZuByheHJSh36wSLjZNJedpvpN6wWZujyQMKeRgvR2eUMicP9NGMW8Ct7CQL1pFFHWv5PPZuo7fpQS9Vqu", + "coin_private": + "xprv3RuLR4sGecBdW7q5WGKNhJMZDnwbjnFe7tapQCDVesmbYQK37ixrTrxHfMA24dUqvQZ1qRvQyKw117QNTXMTnxtbmGM9jD4y5Lc3XHPu2nUXQrmx4tVKsNiYwVCLHF8QWGz5EAYAwnaL21Viutqf3gK", + "account_public": + "xpub6CqtZXirYAwXJFcqDXhhXGckuP2QnhEQY6oywBVHbz6mURF7efQGB4XMwH9NNzLSMucXZp1dfQPA14QF1zpm8hrd9fkkdHWeAvnrEzPViSo", + "account_private": + "xprv3SGEAyXgznhvekZP2ZxSmtDSBscHkKnd1QxpWp96EtoRDmigz42SdqK5jQhTUGb41zaFu35AUuXmPNfa92J24MMnN6KveUHgJYLeUycSHKAuYgrEq7WnTvP45yzWNhZgBkCYDcmLXgBqXXDyqcty5Sd", + "stacking": "stake1ux5y6wxj65eprw3aswx0cltg3z48vfsezt9phnqq3mtkmdqtnd0y8", + "addresses": [ + "addr1q8rz20jq0ytfsc5eugcm7tldjurstx97dtlxkrdw04almkagf5ud94fjzxarmquvl37k3z92wcnpjyk2r0xqprkhdk6qms4dkg", + "addr1qycsnn7rvutk8rhq7uq4xgjmnlsj6plfpz33wazlw75cz99gf5ud94fjzxarmquvl37k3z92wcnpjyk2r0xqprkhdk6qp0cmqh", + "addr1qygtqxunnz65y9643jfwntl34kfsnjx3lpkz2c37n0j2a5dgf5ud94fjzxarmquvl37k3z92wcnpjyk2r0xqprkhdk6qljqhsu", + "addr1qxlwt40vxamnes5d2a306mtvq9a0sa89kkvtz9zlsnvfcmdgf5ud94fjzxarmquvl37k3z92wcnpjyk2r0xqprkhdk6qlsem66", + "addr1qyz8vnqdmu5pfxe7tud48ppvt9rvrrksslz979xhy6ryle9gf5ud94fjzxarmquvl37k3z92wcnpjyk2r0xqprkhdk6q4jtmua" + ] + }, + { + "seed": "82d8b955e8a8b18782b2e6c19549c0f0ad3b3b16a10b41e5d6db4208b89390a6", + "public": + "xpub661MyMwAqRbcFJWtdT5EEQjnpYNRYuLDAVF4qtj1XuftioHjHg3hHMHbeHjhCPkMGd5Jh8ak65XT7K4vTe6QWAAjWDrr5hQrjxSAaPxhgw2", + "private": + "xprv3QESAWYc9vDdZVWkGYVeK76tNcpkD1XPtwoFiVJ178D65HqM4VxnrBzgvYDXSJJ1AtUEHWDWiD7vVtBjW38bwjZ1wtBr8skZbPdJauXgGCq5ZgAGdgaHvBwjLCyXzMXYJ4JuA9KrCtFUuNbqhfBGupd", + "coin_public": + "xpub69oFGhie3eWVzEyxJvK36Frnn6HBpAHymSWQ74ySS2asmUMjYmTaGqyEQ5qqRj4zMP7zhJyJXSWKR8DJ7ZGHqcZBTbhnPrZvyYfCDTP6QaV", + "coin_private": + "xprv3RMkgjeTxLbUKkG9ZsCcvGRBcYEm6J9pwDnQ82afHbqp4kxAgiB73vLguMHfVE3QqoQrmSjM8ZQ7REbpdaMw8PByHCcyKhJoGayRccG3h5MQrrZi61bdhGhWFFF3ZfWv8r1UfYJJe6M1gbiG5JjSPGB", + "account_public": + "xpub6BmKTAd5arfEodsbozmnVMNGios6tp3njihuC4yAoubUBbxUDGikTVCKo5wrU6Sqs7bMb3EVtfyJ4LC3CK8oBkZDMXzHcZFSRGsnFoDrJha", + "account_private": + "xprv3Rwe6sTFLGhehSBiRPxmWnXVLmRuzHuB55ac7yuenkqUdqkqvLUtTY8trLX59yrsEXZmfR5RP7B1KMgNsYF2smuKX4tbC56VExVGe7g2srdEFGhXyNKsXvGALueS69frTjNTN1EXpDd1Q6jA88G1hMY", + "stacking": "stake1uxeuzsrvqqan37xypxcqh4xzajzpaq4x9czm2neavvxexfcua0vfg", + "addresses": [ + "addr1q9z6usxcwxfpwxnydmd86lk4uscjwzsyz6trwww2f3nhn09nc9qxcqpm8ruvgzdsp02v9myyr6p2vts9k48n6ccdjvnsf2ykw5", + "addr1qxtls0qa7unymvn2se5kmzhuf8f6ac3ac4vx025gjtl3na9nc9qxcqpm8ruvgzdsp02v9myyr6p2vts9k48n6ccdjvnsdteus5", + "addr1q8nrh85g0nvw26ht2d89d03sm9f6cmqmpunhsjp4ha3dgd4nc9qxcqpm8ruvgzdsp02v9myyr6p2vts9k48n6ccdjvnse7vc3z", + "addr1qyjv85rwr8vm5y2nyp82c2up7h0ln7eucl0crup9srkpjndnc9qxcqpm8ruvgzdsp02v9myyr6p2vts9k48n6ccdjvns025vv9", + "addr1qyckm60eekwqvzwmhea9unrq6k628zetu4uled4j0zscz6dnc9qxcqpm8ruvgzdsp02v9myyr6p2vts9k48n6ccdjvns46gr7j" + ] + }, + { + "seed": "ba3a80d132b32dfd675e133956cb69f84d3d2be24add8f6f606a58e51849e2e9", + "public": + "xpub661MyMwAqRbcEo4ikgtvhBd2auanPxZJdS41XRfEXLMxos83XbE5xvnEEQq2R42eQRVVeL6LjRsebh2EGBjrVbkec2bXGMrEe5gZsEa9ujT", + "private": + "xprv3QESAWYc9vDdZLmKBR1XZbL76TcjrTVy9zdt7F35t3X4FiXTFwq1cPgbJBg5JtxRwmVRx7rULQbXrSLSjNPwoHQkG2LZM7b4oaGZyQx6Tr8SHynaYWzoFvsrxNJJGwyxxobHmgZNojmGXnW3Syh45gF", + "coin_public": + "xpub6B7pQTSz4UB4Xuw2Aw48QgDzQXmX9UnqevcoUQTrTeQkamiwrQH7y81a9cPbVtS6zSdqH3JmmB7WRvL8fPjeArfkRqhb5LEbwbrkJvwfLFo", + "coin_private": + "xprv3RkVygs663vHyFw66VRw6TpuMFez72DYzN5GRJahavrkxLYrX6xaenUpFCUd37SX3u1ZUD58UKcgshcMaFz7KnzBQZUQKM4wtd6XYPQ3t1y7tLG2XiGmCvbB4q14uZP9Jy5hsBbcFMR13YFmWGsYfQk", + "account_public": + "xpub6DPXb166hYtPSa99ATaq3Qe6Z3syA6cJ4RdrJPUu6gkUUs75LQshMfLj65YDFAhsi67fuKkvstoX7nyLfaP5t71zyTzMZkjQpUKDGAKYXW6", + "account_private": + "xprv3SRdHj6cmS7NBUyuxW43ihqkK5jF3s73FKd95Sne7F8tBM3dJDq4ZWx1ThmwxVvv1kxdSdvGGFMNiDZiEBwDavoXUpTeb2BLRQU2YkwTpBYztVKCVQnJoZZUKgfvmcXzr2bWqwZ2Qf4zQ3XY6ajDuBK", + "stacking": "stake1u89f5vgtrsqfmmkss7g9ppjv7h03aeruy339mc9h08e09wqc5kesn", + "addresses": [ + "addr1q9jumnulvrh2jhx04fnnkjr4r9ey4nmydh6gk9rqgksql5x2ngcsk8qqnhhdppus2zryeawlrmj8cfrzthstw70j72uqajqq6f", + "addr1q9zzxzxf7y8ewprtd9c7h3ckn0hvh8c2gdwumxep25p4xc72ngcsk8qqnhhdppus2zryeawlrmj8cfrzthstw70j72uqkegyuw", + "addr1qy2sacu2znm2xwl723szuplanygzc63wane0dgtankn2wu72ngcsk8qqnhhdppus2zryeawlrmj8cfrzthstw70j72uq36c7pg", + "addr1qymx77n4gu54xdsyctxnjukdfv35m6rjspumquk23ndawek2ngcsk8qqnhhdppus2zryeawlrmj8cfrzthstw70j72uq8jhquq", + "addr1qy03kpsvu4mav9mgfjzejry83j2fzy5rfn5rjzyyq20xuk72ngcsk8qqnhhdppus2zryeawlrmj8cfrzthstw70j72uqsfgs0y" + ] + }, + { + "seed": "c59e8dd1505bb1bad79bef835aba5ecf2f0efccd9bf4f5f6344f441ee367cd23", + "public": + "xpub661MyMwAqRbcGzwzW4XoVj2Mh8MBePiKqPVEacESSNyiBK7LJt88948cQiPRemtHbx9yijVSTL9RKd4u3paNtbts5AsyrRb6vnQhdcebjXE", + "private": + "xprv3QESAWYc9vDdZzkhnxzyenSVgRaSVaHhc8FKCv4kVk9nQaY6udAZyec41cDJR87nuB8rgwq5V4ge3NGr8AXsPqdPtG4VkXzKMASQScB3Nm8m2Ysu142W4T2dARU8UyPpbcqNPaUFujU5AcrkRM8bpf6", + "coin_public": + "xpub6AJ34ZLPnEEWGnRku8cac63MRfDxCXm77bEx713AHzAAV82q56Gv6WHrZaGhkZTmpYafnXog6fsoRarxDDzN4rMRCY5stm464c2nqPmQHkp", + "coin_private": + "xprv3RWJiZMAbzHquAQ5WT5cM8Q1JyMgzVLmEWPPttihBgVhUZvUBEB9H3Z2Yma3d73iZUc1epvQXrAqp7kYCgtLiRHWVmWqdTRVb4KkzckYZPeWCWu7VjNcMtizbEbhAfKzbJCLsHJRqR7uWNrMCQUqR5z", + "account_public": + "xpub6DCWMWRx2ShAkr5F3nShvfyri3T4LkL2M2p52tPjGoPY482p1g1Ru9hMWYZxPchaxdjQLr72bhkH5ZzyuEKLgLppA8GmiSyFFVXvf6CDghK", + "account_private": + "xprv3SNMQ1Cuc4CHRi4tEP7NPyHYD6jRZSf7LrtmuP47YkgtBkZMQfExZcKkoxFivxy4H7BzN4GUsDCsfdgvyEFQDahhxr3x6A5BCvSGg4666eNAQY33i5V1xbRYfHxj4Vr9KYhYFDfdVjEVMMSfy65MpHs", + "stacking": "stake1uxjupex9yne6vcketptmsqrcvspahdlhhznj9ecsdf8e56cl64dmr", + "addresses": [ + "addr1q8cu7n44gafd0t99enq3znrlfaxhc9kcahmgeqd9vszjgxa9crjv2f8n5e3djkzhhqq8seqrmwml0w98ytn3q6j0nf4s2da8uv", + "addr1qx3dkjp4k5nnchureuvjh3cnfum4h8w2s495zm0jsj7dlm99crjv2f8n5e3djkzhhqq8seqrmwml0w98ytn3q6j0nf4sk0lc5p", + "addr1q9fn37vrxymuuevuncstk9esp0tru8xjxm8rk9rk3n4ylf99crjv2f8n5e3djkzhhqq8seqrmwml0w98ytn3q6j0nf4snjespy", + "addr1q866pva9m52pxnag7jv5v6rqu9lz8tljg7d8yg5av6st7v99crjv2f8n5e3djkzhhqq8seqrmwml0w98ytn3q6j0nf4s6sm49e", + "addr1qyj7xvjlphgne8eq2g4guk55lmp5rz52v9cf4m5vqznd9s49crjv2f8n5e3djkzhhqq8seqrmwml0w98ytn3q6j0nf4sgsnsv3" + ] + }, + { + "seed": "8bb92bb5577f9c3e6b032bb4162dceb0f77179e070fdf232791a8eb886ad1759", + "public": + "xpub661MyMwAqRbcEfPvVksuW5uk6qRcTCEspTrFhL7RusESeCP7PM1acTUCUDzXXqRj6mmZ9BK893G2FszcjDV5YZNrpoLtaNhJYtXn5TJv5m8", + "private": + "xprv3QESAWYc9vDdZJVBVncxcje8NXXsGycxQdEc6ovqWVYCd3JSTn6wS4dnzgnFUTKnGKSWf1ehuAZCtRCbmypC2jx9h4oo1cMFjLhRLgiGftGSRSCCAzd7Wec9StSi3pbCeaNm7UiVbjg8ZqRGqkF7hqE", + "coin_public": + "xpub6ADDVxZ2wFem2tcZnWMfvDq5t3J5qXQ4wXNJzR7hZhaR9Xt3aGSmCFkP9BiUjYTZjX3CrWtmXdt9t3DBysKyumLY8BwL541JLcvfqWFQfLn", + "coin_private": + "xprv3RUsfpJLy2bmGZFLNmn8paQVVj8MZff78RPgv7NyxWXonhc2EzCSLpC34Uhy2WqfbgvuCmYF9pqAyoXypJeiVdDTYMSKvHTtnkR4xqmmGcXu8oPinFNfh1r9SaRpMWfWa8wrHAYzpCPsRAXBb31EqnG", + "account_public": + "xpub6DNp4Krkb3EA3phcKm591aNFJ8QJqEHJANsBG7jrmb4b8bF1zgcPfTLE1bTJENNvw9gsBo8boKQDGE5LUCsxaniJE7hPhTphKxVhSsyNQMy", + "account_private": + "xprv3SRQxCZzz6vg2HFdmQ6Ubx6N7vd6emFMFZvUh5Y7ypvVxT7cpuQidNvNg7nReE9ujeXZJpgQHMXc62zrVt3FSSHhL4Yksj3VexfcoKFoVTkbWmD15SZKfVYvZsPqNpdZDTmncBXng74sjTummeFtzGC", + "stacking": "stake1u83zr774pph2u08vvcz72w2rppkhw5ddxl00gq9cp52wxgq9ly2uk", + "addresses": [ + "addr1qxm6vej5jdjjg5rv37ept7jt974dluydnzpk2hmncqqw8tlzy8aa2zrw4c7wces9u5u5xzrdwag66d777sqtsrg5uvsqnkgten", + "addr1qxfftu6a4qd23d2mywu6dsq0fryqe2x0ncc83newd9s0uhlzy8aa2zrw4c7wces9u5u5xzrdwag66d777sqtsrg5uvsqqusmpe", + "addr1q8xl42wtytqkd0n0a547ftuxl9u27y5ln623ryhe8ye7a9lzy8aa2zrw4c7wces9u5u5xzrdwag66d777sqtsrg5uvsqw28uw9", + "addr1q9g9663jdq8y4pcr0g9pnhe3auxne5q2n4ags3vfert2r60zy8aa2zrw4c7wces9u5u5xzrdwag66d777sqtsrg5uvsq4lxfn8", + "addr1q8w08s4gyqehty002zznwu4vzn4r2z9s63e7ygg5dj49v08zy8aa2zrw4c7wces9u5u5xzrdwag66d777sqtsrg5uvsqka8atx" + ] + }, + { + "seed": "9caa4ce584998eb900617e328aefa4c5ef5dcbfdb9c9e75947cf24abbcd1b732", + "public": + "xpub661MyMwAqRbcFnTWZBK97B9mvRkpsnoraBobRisHHJjLFkZ5F955eQqsrAG5REZZYt28e1RraPPk5LasWy7MB1QgvC3NgA6kJwG8aBqUAFH", + "private": + "xprv3QESAWYc9vDdZdpAteiHDWrnm9Y2rbLpKswZFE9rmS6aNbG3qMGsEug6EW8pJ6VeirTn8KpzLJrNGVV4SN4dphrtUemni3DYurTei5NBTMwXPBx83S5tVr7dPdwZK5zXxzpxf39CER3tvaRUZZKVB69", + "coin_public": + "xpub6BVRhiJxX4vrLdPPRFCMkcZTTNGuXzBifBqNpNSqcmPpe4C2QgcbCEc2W21XCGm9YrsQMJfBF1jdzxvNp5N5abqoFSYhV4uvfwUCDwXSQag", + "coin_private": + "xprv3RrvHW3vnMNuodjrgFKJd7BR1sWqHSA3o8Qa74u8Vaim3kpo6TyNEKZbvLfhsfoF2ksN6rBskCeH34wFpo5mks44f41VRYKQQRUBn4wMGaMyjsvNtjuimJtATKoZBBjcn1147rgMorjeFXi4ZJWbQn8", + "account_public": + "xpub6Chf4rf3JdmGoEZKFZszAFVitdT35fuRGVXVxMJpTPwKCpMBuvhWRM8WaCaPDvPzfTFCtwXpQbd9YLyw9tg6axu2sEV9WR95m2KY71v1wHL", + "account_private": + "xprv3SDnKwQwnQSmuLevdPHnu3wGi2RdqDdJJWhcgmpDFvw6u4HJL5Rr3XB66r4VP97AwEedNh4YU6anVdPBXB3JyEMvjjaV864KGAfycA42ud2sCzhSd9L2ksJH7wUt66KgeruzE9GWjFGTxdnE7pCwSQS", + "stacking": "stake1u83nftzv4tqz90hg560jwhj9rgthxxe24mgv8ep0xm87wzqx4rwqp", + "addresses": [ + "addr1q9z40760f5jejj8ygj4sj4u2m0sm59r6ceczlnm59mr8muhrxjkye2kqy2lw3f5lya0y2xshwvdj4tksc0jz7dk0uuyqnmpx56", + "addr1qyumfqxj504eqlhd4d0dedvy727k440zj33yx4ec3f70trhrxjkye2kqy2lw3f5lya0y2xshwvdj4tksc0jz7dk0uuyqnx5gwf", + "addr1qx590d8xmspucnaxxm9xcgd0dettf3gakce3k6ewh9u64m0rxjkye2kqy2lw3f5lya0y2xshwvdj4tksc0jz7dk0uuyqc74wlk", + "addr1qycw9gsr4s63x9kj2t5wjcfwjgl2j665h76uwrz8llnwrplrxjkye2kqy2lw3f5lya0y2xshwvdj4tksc0jz7dk0uuyqafqa2r", + "addr1qyf4596gdkptldfzfk05lsatupxjej54l9yk6dlkxp8tux8rxjkye2kqy2lw3f5lya0y2xshwvdj4tksc0jz7dk0uuyqpht5kf" + ] + }, + { + "seed": "ee62e92f5edeb4af0ff1f23ea061fa768dd47242569a264bb73b1ed203469f2d", + "public": + "xpub661MyMwAqRbcEZJjEaXMEosKXx2cBy889SbJ6a5jzhg1fR9jB3tA2RGWzsD1Z9q1T7kfpM4zorBgg2VUCederKfDWcJtgztpK5EHmMean7z", + "private": + "xprv3QESAWYc9vDdZGgG6wnWoL4BREizkcaMnmULmv8v3KZa7Hj7B1iagq7HdtkXC5sCy6fj3J5SGxTCYwyTZzVZ2ggPTXuJ3gJsHwtxGu3XrJPzgWaneCuzdy6DwprGDs5jvWe1Ax3DhrjeEV9wRFh9pix", + "coin_public": + "xpub6APSdsViqQJmeLktmAuLBKP9cApSPKsFwwJR9tYtPm3oiohnKgsYKhXqSP8SWHdUFt52Nt6h28n16bytpQzxmPeRi6j7kbE2JK97daNSgDu", + "coin_private": + "xprv3RXusKTXd6ae1zihiSiban9QnbEawAAwWDLHYVEgc6iAiKmahqfrgVAX79LgUCJi7YwwYH6Xz2C1gXfCH73uqf31y6SZnZWheddTMdwdQfBShAem8FEbGgb1rjjFMJE2whDAdQVo2ruiBqCaPK3PXVW", + "account_public": + "xpub6CMX1FSPGtx6KktyYPSBDwUVB29fcSMMmqyvuKkWxnjELvSbrnR2Yyp1pbCbGgpvFZNjQsaeGDesbfPN7W9u7SQapLLfJcKH9v9ZbNdgfpT", + "account_private": + "xprv3S7oLhKJnZGDbS48DZo9QS8VoETGLw43Kk1zwMK2yyTSRB4qqCbRBsDLa3UEwVhxKVMvA9k4GGA4QghMFtVDRFg3k26Qx1nArQcHRhVia8H6StXLz45a9SPtNmXQ4vGUchX9JqRdDZmDXDEVmTtVp2f", + "stacking": "stake1u9ydzdqc4n0f02hlm82ta3dzjdpa4528vcw7sv6zkvq0m6ggr2mj8", + "addresses": [ + "addr1qy0eu6eup97h4ahzgkqf83v9r69h8slexq9vsp8j6d9ygnjg6y6p3tx7j740lkw5hmz69y6rmtg5wesaaqe59vcqlh5s5je845", + "addr1qxrnvywjltz9ptqx29gyc8xf08ee4vd4pg34ldgzsde86yzg6y6p3tx7j740lkw5hmz69y6rmtg5wesaaqe59vcqlh5s86hafc", + "addr1q8zx4367a6js7u4jn62paty6c4v8fpd7tfkwgjgea6gjd62g6y6p3tx7j740lkw5hmz69y6rmtg5wesaaqe59vcqlh5se5nhhy", + "addr1qx0pkjem3ccp2uktrd7xmhagsv7m4x8w892utan9dwgt9czg6y6p3tx7j740lkw5hmz69y6rmtg5wesaaqe59vcqlh5slw4zt9", + "addr1qxfrcyh30u9cq6pyl897cxhyf3l5u5fseauy2v5e2fpkrkzg6y6p3tx7j740lkw5hmz69y6rmtg5wesaaqe59vcqlh5sytma9n" + ] + }, + { + "seed": "2a8bd5cc181a0b50dd261ce7d87000754152cf0628fd43e152a49263d36b7448", + "public": + "xpub661MyMwAqRbcGHmXnnKwmJGY1tZS85486xuYPzKQhPabCpPJQqyN8LA5vwPFTixcPpq6oKGCx3qMtP6j7Qb4ssfs77Li1r6qbzhDXNcTHk2", + "private": + "xprv3QESAWYc9vDdZnXBaNUrUYU8WSM4gvEkoRVesbTaTVDifBY3z6goWDzmWLFVasiaa3MBQzQw7nAcmsak7T1mjNmiK5A2EkFm74HXhEL5PeaymBUx8g2S2m6SJ8K5uN2yYjid181WmhBEj9kCyM1ea1t", + "coin_public": + "xpub6BEPB4pJ12caHfZZMEHnkHfE2jE3Q3HHpTqjBTaAgdcWTCYhDYsFC45KnwuymAQNLG3SpfX7eBD9ynS1mB2h8WZMm5aX44EG1r3K4Ustis6", + "coin_private": + "xprv3RnT6BqEFNrh6Z9QbhrMJBUmkrR5d8xM5KQCDEfWoQ1M75U6cST8W7zu5BavXv6d1oyfvsKTqzDczyYoyPbfWVToxY5ZqifY7HikGxE1suGCHrvBiebdaHZESuWda2eWv69x1MCkEbnREJPcHdPGvvj", + "account_public": + "xpub6BfiXKL34RvAcpshXvZbPymVQKFDwxWhdBW7f3csL1TCsfTE5KayHzfJUDk9ypgX3RmpNnafh1u3QZdzt3ks1fL9mw1dYG5V9noZmBRk9R4", + "account_private": + "xprv3RuyaV24hLqobn8QXgstJkNin4hsaNyYrhNFecLmXa9wQBitfRgzjDgoeH3mREMJBY3dHytwuBPHsXnrMVLJTdHhmdpTX6sLumMxHh4S6emDP6nQaqWC52RA6CHjBYusqBxtEa1fd6dqHcR8on9V5Bz", + "stacking": "stake1uxmec5lhumuf8j4tmxuaffmte3yyymha88s7jl99g9zmqlcgra7c4", + "addresses": [ + "addr1qyhcq56vx4u336xfy0963u3v9jw5wngqm58vq0c47wpm0xdhn3fl0ehcj092hkde6jnkhnzggfh06w0pa9722s29kplsf0nyev", + "addr1q8q45u8yt3s3xt89uwyl4awhvnawc6hqauprv5zfrkxrc29hn3fl0ehcj092hkde6jnkhnzggfh06w0pa9722s29kplsdh98cg", + "addr1qx45j97yac2gua74w5j29zl0889kl6jjxry58v7vlja7j3dhn3fl0ehcj092hkde6jnkhnzggfh06w0pa9722s29kpls02grsm", + "addr1q87x06k3mujg6gq4eezqcaeemjyvuwp5r23cc2duqulhfx4hn3fl0ehcj092hkde6jnkhnzggfh06w0pa9722s29kplsgwddsf", + "addr1qxks2hx38zw7dam79q7lv2qx7y5qnxce2f35kqr07jkc0vdhn3fl0ehcj092hkde6jnkhnzggfh06w0pa9722s29kpls5wqsa0" + ] + }, + { + "seed": "9406e3f7770d436042d02b341fe71e9222dd6f3aed13a0afebffdc50fd868dcb", + "public": + "xpub661MyMwAqRbcEfTtwPtDrC2ULcqSuLs9A5tomeLXkrhMkyFwLKRWqXMfziaDEQ4j1cvVp9pFRd4GCBpv8S1mHaprgmJY61zMz2bJXSWo19R", + "private": + "xprv3QESAWYc9vDdZJWMxDCiDPjTxQyS5otoM3UBRLsi2Xq7PAibmr6hrXM8Dxdtz1wkk5XrxvfuYDAQBztMET29CuAAhhf7hR1ug49m1MECHC1foUuR2kss3MFvwRp177uobgHjbZs6EWCnzrLAgtDUGLQ", + "coin_public": + "xpub6AxHZrJcamXQHsiymufWMvuEgMfER1DdGP29oom5kEbwQM6vmz8bFV7zZtaeGfeNEr6QZoyoBhRGCJwC3hwjUNPcCjyz2iresxqVyMqvF2t", + "coin_private": + "xprv3RhfkWZn1EqnMgV8to2BV7hhyQQfGq963t2HKhvWFVJTXiFN1MsPnjDamjMTRKWwp6EcMk8quPPFgnkfF8yYEpqJhTFiMdE2YGfReGTEi23mShy7BJmfihy3U8ah23tdkVAMxLfRjt8mZCuu2pSnLSW", + "account_public": + "xpub6CRWyUAUTeL5FbbKr2WGafpc54z72jsywYD2oUdWiuqnrikLE7qnp4HfUFwB31vy9esgaURJ2H2PxQDKqmV8DgqZjfwnNc9v44PSn4MyfbS", + "account_private": + "xprv3S8zFS7vBfNdGuuFZH81iKau97C8tE3GNrZu8k76e9Z1nsoZ4sJqZs5UvuhY5ySykoJwheTPcCv4HdvZqvmqk9QztH2LNxyqvXgdkvZBzWcR2LpraxwoYuJLyfDth45Ev3T83r3pxNY3YyZemXt2Uvk", + "stacking": "stake1u98esnutd9rsdzl7kpqted53msuy0t597zflt2pm4s5gvvskzwwau", + "addresses": [ + "addr1qxw8g5ylrx82da58rpslwcgs40w4gnrfc296rv3qmpxalr20np8ck628q69lavzqhjmfrhpcg7hgtuyn7k5rhtpgsceqemue7n", + "addr1q9pesn3taj4vpspycfvplaje570j4vctu2dlvhzlxfk02pj0np8ck628q69lavzqhjmfrhpcg7hgtuyn7k5rhtpgsceqky02d3", + "addr1q8v55xzp6ypatzvrpdgcar8vw8egvapssgs27e4q0xy5f9j0np8ck628q69lavzqhjmfrhpcg7hgtuyn7k5rhtpgsceq74upm4", + "addr1qx7n6kjxygdf0j5w66g0ewqxhway0eew9rh5plnf3m5g4cz0np8ck628q69lavzqhjmfrhpcg7hgtuyn7k5rhtpgsceqr759su", + "addr1q882akv2uyryfkqakwymkj57wlua6tm5a9mt4jt8kenekj20np8ck628q69lavzqhjmfrhpcg7hgtuyn7k5rhtpgsceql36scg" + ] + }, + { + "seed": "25b714e7a38a7391aae5e3d64eb357509c109c256808974617d10ebf207fcf22", + "public": + "xpub661MyMwAqRbcG7MhJCLEVXcRg55H25yGdbf7fRgE5E24HCXUupnPnRX3e3NiBQK4epm1nEppiJ5JCSa4j5WdDStC7bNBMvAU8Htfam6FhCe", + "private": + "xprv3QESAWYc9vDdZjRoisGAp7MrvFuwQK1T8SQtUARRMYLT412QaVddZ4sN3okni3GGuU8AxGfBRYPEkzNofrx22wsYdxHvxg2mro5S5hLVhFwpxYVqqeaATkaVX1vbNgA43NH7aLaAZLzGbyYYpNRkuvs", + "coin_public": + "xpub6ArMifn8WQ65KyviFVEU3kGAm62FrtHXCiKfSh6SnrZfasHFV2mwvse1gdcVtaZPQeJ6NdcDY4RQoyLbfZKihRckLQh2weqB5xK76vMgHJY", + "coin_private": + "xprv3Rfuc9YnCR7R4Xhp2Qx5asxz3d27Ks39b9TkbwUYYJfhXHGZkq7QAdykawupjH1pG1TbLk41HE4h2v8ChwLhu8HQTwuCUAv5jEEMuztpq8ELmvKnN8sYg4Q8xGr76roX1jqE9hj7og4VzL9Xud33Zk8", + "account_public": + "xpub6C5qL5ECcoX29P97DsRuvjFwESMyh1yCYcWadvMxEfNLAMGaCTajAw4fsL67S4oWmRxoJ9gcU39EzdqEPo1yRupfpbeKDYcY743T2D8ct4u", + "account_private": + "xprv3S397MR943GQw2XRStaRcckq4XNHX73gDVzYwEZ7H8XGXMMpYvzunKzTgDHAcox6SFATK5sCPKLbJW6HEJW2v5jv3mF2KDfdFFUQQeQe6XBoePydHyUj2FP8r4FC4JQxJ47TbYWcVdD4JP6AP95ibEG", + "stacking": "stake1uxwaa7x5duv5ha8dr4882gkhns0zkkfuj3x6ny76ad3mgzcllp2pu", + "addresses": [ + "addr1qx99alwhzy3k6350w4kkyqr79jcm9mtw3zxx5r47l74996uammudgmcef06w682ww53d08q79dvne9zd4xfa46mrks9s2dx5ef", + "addr1q87ggrg5xhdkgsjjfuuqtty4fwqefe83282kts3lxex7t4yammudgmcef06w682ww53d08q79dvne9zd4xfa46mrks9snpajc6", + "addr1qy8jk9kmcdp6narzac4s3xscqhg7kj7pxvpty8tp4en6kyuammudgmcef06w682ww53d08q79dvne9zd4xfa46mrks9sqd06yu", + "addr1qxlqac82qgv73g36vanfada56rnp2egkpu3f39psd9p7r85ammudgmcef06w682ww53d08q79dvne9zd4xfa46mrks9sljv406", + "addr1qxs53srax9vlu0yh7xatqfy2arcddvgjpj0pjj6hlz5glg5ammudgmcef06w682ww53d08q79dvne9zd4xfa46mrks9s67gedd" + ] + }, + { + "seed": "89840b3f6c4e466b0869ac912c11b7c3b4931573118ed74c378c2693af5a0f57", + "public": + "xpub661MyMwAqRbcGFT8V3EGQr6WtGDb2SLkT25a5NdfnkSteZUUkPDrcto5YN15vR8yYVBLXaCDsyhxZsrtxNaFvKkPzFsipVvjyH8op8AJ7oW", + "private": + "xprv3QESAWYc9vDdZmqFtNpsbgU2pW3mgHP89qpeSNM8FydshwoqibWfRuBxPgcWci9hxjM5ByCV36CcAmv7vbb4fecnLXeMBSnHe7s3Ru3qDZ1mmXoxckpkc9huefresgB9iRtfu7Mqe355iK839pqadcQ", + "coin_public": + "xpub6A4AiAyi6vMWcVM6wikteyDDqYJHnfK3J5tM4u2c9t25uTiMAhKPqVqLcZTJ3SjnoKDwReKDzuPL2hSiz5XMu589B1Pye2CWSAaUQX3GzM9", + "coin_private": + "xprv3RSBmuTemjBMUPEBr9fLELRcAwjZhLdvnN71jmh7JGDPnZjskuwG6TJXeFgpSHJL9vTEkqPQDK9XbccRvDK2BS8pSu7QhwQjZn3C1sqaSjczP1Kh2gafgnp29VxzWmGn2u4LtUf5Maxne3B1AT5vk5w", + "account_public": + "xpub6BxhQS3QadbgK73ZxpGaWT5rzEE8uw1p9mLWkcNRUEgA5v2huuQLtkf27NmahJgTx7Vsw3umYC9ysoeWyqsgPXzJ5B7Hn6Ei3XHUssb9voq", + "account_private": + "xprv3S129bPairx54e2DNsv3N6EjkaUmmpk3UMxit45nG8pf6dtKAEqsURhT3h1gWYfhZnsKryeXS6tpVjQ8BJnCoKHwmYo3tNM1kXSsu4CxfKZgKtM1xTXQiqCEsPr2WzMTKPUjdYGPrbMi72Ue3dwX52u", + "stacking": "stake1u9gq3neluy9udn6gtnljmcenw640xz03yq3k96seqkn0rmc0gnkvq", + "addresses": [ + "addr1qynrw5ceuurzrgcvp9mpu0fqlwcyav772sdcn4yym8aafajspr8nlcgtcm85sh8l9h3nxa427vylzgprvt4pjpdx78hshdf9l9", + "addr1q9yt83g6jfmf7579pkesp5gy75z9rxayqfs5j3uspry36wzspr8nlcgtcm85sh8l9h3nxa427vylzgprvt4pjpdx78hsy2r532", + "addr1q83xxxcp33gp0s7wcsec5xk9uaxu869w0xxjkcuhpe7dl56spr8nlcgtcm85sh8l9h3nxa427vylzgprvt4pjpdx78hsnwjtc5", + "addr1q8k5asvk3sp58cpsgaw0y7k7p9lz8ch0y0lz0kch27nc9l2spr8nlcgtcm85sh8l9h3nxa427vylzgprvt4pjpdx78hsm4dreh", + "addr1qx9nkh4mhm5jpy7zzgfakvhl34puawruxxmt562m5sz55wzspr8nlcgtcm85sh8l9h3nxa427vylzgprvt4pjpdx78hsefepc6" + ] + }, + { + "seed": "b131f2cb9d55d28ae0fa665cee830b5c872a5fb278674f8739f6e06b5aaf6a8e", + "public": + "xpub661MyMwAqRbcGwYZW4VzVGiyya1X7KdSrTcpUsCiWCyK2eNKMBi38w5UqkgnLc6kvrDtYkWFN1CgtYSMUSNUi5kdNs8UQK5K1VSaMVmbkou", + "private": + "xprv3QESAWYc9vDdZyk48q4PejQ3pxwy7AjjW4tUNKkaFGfm6TdGHr9ecKJTTZZUU67fYgFQDK4WB9eJ4FtBD3yL8QH2sMrArED6SG7VjtSDWVfv6y72Aas9ps4hzzv8N7UkSDWN2VkiE8L9SW7oiaj5Djc", + "coin_public": + "xpub6AZrw24iEbVrYWiYHYJMkw7zwuGCs7ussUvsoW4fCvttNdv6hfL3h1KFhP6BGrzKPLFTGw257ARhPMWtXeieqKYd42nz9fuJyMK2R7vCtwy", + "coin_private": + "xprv3Rb1P6DQf4XBHD9LakXu1zGyg9wFY86ZyZzQ5WCs1yk5TxPa1GwtSecrhdct8hWwQosUYpgeKVbrMuFGvhk9iCEz3c6WrV4yC6RwHWrq32gvM6LKv8pZYzDpNjJA7YQTbvDc3jenP6EyFX6X5DZ4gA8", + "account_public": + "xpub6C9HdhGB5TcgFLP3bmhHbU22MRHBKgbb3aRip23CgNHVnJyxNKJAAXfwonFP8vkgzJFgntRbhvppgjM7mN49jmbEAshpWbjVxxfiVKt6ex5", + "account_private": + "xprv3S4AcWNW2gHThYuB2BfMJdgRd1S2Hy5NryeWiJwxkscuFgXgQnRtk7wkPFCAAGULcGfWdHQGde5Nys2PFEcuX6NrToUNeZXf9Ey1RkuVSMPuqBHT9H1KjZHcYc4FdgfJkcoskvHa5Q2xpVp6XgtkgYG", + "stacking": "stake1u8xmhrl5ujtmq4k7grjq8g8rwrzyy2fe79v0jmrq3reek3c02023h", + "addresses": [ + "addr1q80gy2gwyka74qmgkl9ncy7p8zvzgymz2n2hwt7h4vnvedkdhw8lfeyhkptdus8yqwswxuxygg5nnu2cl9kxpz8nndrs9zjf9n", + "addr1qxpkg6hxmljax4h6vumv3kvk2w64qafd8fz2qyyh55z83exdhw8lfeyhkptdus8yqwswxuxygg5nnu2cl9kxpz8nndrsye0fhs", + "addr1q9uv92c4jj44765c2ykdcghfl4sm9m8md0madpxf0cfgezwdhw8lfeyhkptdus8yqwswxuxygg5nnu2cl9kxpz8nndrsqjps0p", + "addr1qxtdg6muc2ggzfcr6r9xg50gpv8v4tsrrvr042pawj9y0yxdhw8lfeyhkptdus8yqwswxuxygg5nnu2cl9kxpz8nndrszweuz5", + "addr1q84l4a5yz8aaxs5wd2425rj0mjeyyr7wflqnxd0f6dpjvcwdhw8lfeyhkptdus8yqwswxuxygg5nnu2cl9kxpz8nndrskhvhp0" + ] + }, + { + "seed": "1f7c9ed03e3c0a4d87bb6237d9fb9931032b13747136786e486270d277968377", + "public": + "xpub661MyMwAqRbcGqjgRH9DrJkZQcEDRMwU5DNtSGoDd3ynedV7xgMWd8t49Ua79R4FC3mVYLgNnVFZ5Zsr2Y6Gy7Vy3eeURrUNZbisJRyFqfP", + "private": + "xprv3QESAWYc9vDdZx1ypGywhqmAibBRHGY7DDfB2S7B8RwVty2HA3BBaLcfN6hJLrppdCHFx77TBgBNA6wcDrZE82mj77KqezJye6C9MnowY9B9zq2QPijBrkTdz39jVmSyLeLZb8bMYTMH2seY4wwDD8m", + "coin_public": + "xpub6B1AC9ZjZj7Dz3bSsPvJaR3sXv2XdYSMzpxznuhacySBRPvxBV2mCXrMJpWP54EVt1KQaB3Nij62adpGRbALuvxfkPbSq1CGBcHHPjuWGrU", + "coin_private": + "xprv3RiXFQY6eQHvFfJZkchxw8MyxV1w5ZJ3fEur9xoF98BUTgMdPspR6aquSJdh8tkAYucMoYQZXpR81PvuhsoRWjgDvMVg2mz5LkT1kcFn3hNJRGAuMUzNu2N5kS1pLDfQbSKgeUqoLocXZBhUQUh4nKX", + "account_public": + "xpub6BhBHyhenvLg8T32zcFRrC9qC653Vqv5kbgUx7HHm1Ym1U6z8nHA5XtU525d3A6sq6cHpfHn1WGRhApkrr9TMCrChasqeiHLXr12aD7z2U7", + "account_private": + "xprv3RvQm38HAqWeu9jQczAud7tNeurT8F9uJDqGaMBw7MEsa54DTT6ixjCQwXqZag98DC2XtPR8fwGTApTL4adNE5nkoZwCS46h2VuWhzBPnCUTeWGhGKJfXhrAaTnSm7WuAiRmwVTPXwdJjBtxXFrGjgp", + "stacking": "stake1uy0argka67zmkxxm08jew9guctm4l7v24kyveza982ryzlqrtgqag", + "addresses": [ + "addr1qyrjcv5srwv8rnrsyrccaj7t7dmls4hpxamrnyau30z09wgl6x3dm4u9hvvdk709ju23eshhtluc4tvgej962w5xg97q5jqn5u", + "addr1q8yss2gqy4gy5a5vaz3kd0ysngajzgzfc9uzqemckt2laxql6x3dm4u9hvvdk709ju23eshhtluc4tvgej962w5xg97q64ed9t", + "addr1qywxt7xn90dhdcr80kkrkckhdddkmmnhe5da0qaslavhfxcl6x3dm4u9hvvdk709ju23eshhtluc4tvgej962w5xg97qkeks63", + "addr1q8ag40ytnf7dm0prp9j44tlfru53hf6denyqum0dfxw4cfql6x3dm4u9hvvdk709ju23eshhtluc4tvgej962w5xg97qr73hp5", + "addr1qxnshqd77lgc9ssfdgm3x7ppsqmnak2l827mejxeryx0yhgl6x3dm4u9hvvdk709ju23eshhtluc4tvgej962w5xg97q7kg2ek" + ] + }, + { + "seed": "e5a3a29de40bc5557e18e13b9159a6bc3f44001ced291a952b5b932c59c71fca", + "public": + "xpub661MyMwAqRbcGeN6JwPHCtiCUvCtAwSvjsksLYpzui5SMUFY7HaJ2gStF1C6EHGiaLwjS9jhGD9zY3CSMx1tavpJWFv9wjN8sLYKtK9LhKy", + "private": + "xprv3QESAWYc9vDdZte3NriveV2o2Xi31zsZQV9LHNtNwCGUVchB5CwsgcBn8R52WmT8WgE61fZr6LCjZW9YF5jZQZajZPTT4TT89kEcVjUVCvwg19FZHiZ5GBK5Vb5cxU67Xq218p4rRrtVrupHNz2seQ9", + "coin_public": + "xpub69u7VzGevxCn4C9W1Mwvt6kvRr9VhAoeqd1oTuXYUC99CZ9iTeH2GFeNsQcY8xTpsUbBpk367ugiCLwFAho3CzujBChK6fgNN1ekrHipkfa", + "coin_private": + "xprv3RPVkkEnDJCjZu87gSn86UKgEPrNKrB9rbGZMJqCc37R4hf89VaQN8SxFCzgq72VFoHPhorhgx9byANDLDr6Gts8ryuT1MrNkUwa1PcwEtzZiBzi9NQsfj4NJHZLJzD3ZNmc7vCfWK2fr1hGNqDpHjX", + "account_public": + "xpub6DTVWwfURApiHbBfddPj6PVyVCEEp23fFXh9CB7A5GKVXJ5eB1nkYVLTomeQ7a3ewPi5zpB8XZW1YQP5oX6UdyGVihiKyFDqTKekReCD8Vz", + "account_private": + "xprv3SSobL1bD2qW7Fnin4YTWotyx1V7S54BnA1KZBFhSCtSu5RbgUJvekmGU5sn7n83YNbhVXCaTkq3m4EfdawzaoPfHjoVardHzJpBjKETnKtxND3zVWo9ZRZmDpq5H97XB3RJZ7F19dLq7F24UmmByX1", + "stacking": "stake1u8grqfnxmmasp8fvmzhvlqsngueezqu8l4aczsvf28nvlrgjlay05", + "addresses": [ + "addr1qy8pqqj3vrpn24q4y5dh9n2xm0faedwuy839r6k7xrqgd0wsxqnxdhhmqzwjek9we7ppx3enjypc0ltms9qcj50xe7xswhxhk7", + "addr1q9pa3wc2ghhy3k0p2fscpwrzdnn4kcsgkzau3fm9404vkuxsxqnxdhhmqzwjek9we7ppx3enjypc0ltms9qcj50xe7xs0ukk6n", + "addr1q8ehka7vz6wxn74yeq445p59ktausrdxajcmhgpgfjg5fpksxqnxdhhmqzwjek9we7ppx3enjypc0ltms9qcj50xe7xsdmatwy", + "addr1q9ku39ufmcuxlv69ln492yeyae5pg6xcspqjq7fg2nmlfexsxqnxdhhmqzwjek9we7ppx3enjypc0ltms9qcj50xe7xst7w7pz", + "addr1qxejzkzvl9drgqdshdesn8gxvj8s04857vja0ys0gcx0n8wsxqnxdhhmqzwjek9we7ppx3enjypc0ltms9qcj50xe7xs6z0x57" + ] + }, + { + "seed": "ff8285638d3814257e304320926f17ca6acbbaf3720f1683d9dba0396122e324", + "public": + "xpub661MyMwAqRbcGKnhm5v9AUZv1J5BiW8ZYvMc5Se81gRugt2DaR5D3YRzBBfGnyWJNUKXemQvPaU1aXJskTLrx2EUUoyFtw8LXtWYZyPwbmu", + "private": + "xprv3QESAWYc9vDdZo7zQDn4ZsTcxQpyYaisP5wd7U575joxg6aX5LPZkvXFR1NBk5ZuWsaY9a3NSVvo3AuofpUyoePXUHE6TTrUg24Xf43Q3aXcdA576UjfmKyV9tbDMtTd1HwYMDaPuo5C8i52fdQH6m4", + "coin_public": + "xpub6BWfKSqTAKBtHjLvL2qyHZ1sQfE7555GnbcQ2YfLEupgzdsmGQmJAfCspYpuwqLHBwQLKHGP8ieXDMAZHhHQYYoQR56i41JgBu9oTANzBTm", + "coin_private": + "xprv3RsHZRD2hHvcUWYZWmKbZwZ8gpQyZ9cvjpyKh28Xo3oAg9d9TvUaXqbVf7tuHgfCpxRPaeaNaAENMyFkiSRsUYNPqZDGS2dq4Cgm5NKWbhNU11Y9K8hbzVegEKo2TB5qBaVeZdi5FbH7e8ADZEhHRe3", + "account_public": + "xpub6BxiuyxoofwkjhCiUT2TabUtgB3arJrgyAKiEyia6eTkQZ7qhfhfF1PCSxXXmfuzapvMyxaKGkRQ4QotToYHu2QoovRaF8W5FG4o61p56hX", + "account_private": + "xprv3S12bbr7rUaJ93QbBCvNGv1jHAAzCZredJ3pGkTPm1XCQpLJK4DmQMafo6x2ifRBzgzc6WhkEFb9DWJq6ESorWhMM4Zt19LUthk9W8hJ4vqiEa6xtLcYXBWosxPyh5QnWftXpDVtexoUEaaGDqLtcWq", + "stacking": "stake1uyfsx5a5rpj9ent2ktx97ysnzu9vs5yc2aanntatpwt5eqcsv8p7s", + "addresses": [ + "addr1qx6svajgwh2zzjjd7q0hgxdjxr93hagc69r70rce62tr8vgnqdfmgxrytnxk4vkvtufpx9c2epgfs4mm8xh6kzuhfjpsc4wvrs", + "addr1q82uj0qy8knel2f6e4r6qj6dk0hred27c80uck26pahna4gnqdfmgxrytnxk4vkvtufpx9c2epgfs4mm8xh6kzuhfjpstqt5yd", + "addr1qxy7g500yp50y433kwypcmx72nzpp5ajzkrjm9tx2y3an2qnqdfmgxrytnxk4vkvtufpx9c2epgfs4mm8xh6kzuhfjpsfrl4ae", + "addr1q9j2mc4q4vx25a8yx9qwmcw94l8rw7e4sa88p3ew8w3sa7qnqdfmgxrytnxk4vkvtufpx9c2epgfs4mm8xh6kzuhfjpshpfak2", + "addr1q8cvl6k34fjdgwcrjjpek240espjp3s9u98ghnyhg5n8prcnqdfmgxrytnxk4vkvtufpx9c2epgfs4mm8xh6kzuhfjpstk7tf7" + ] + }, + { + "seed": "51405b217e4d60859a11187cfba4a76eefb6a94cdbf97df8f5f205d07141d4de", + "public": + "xpub661MyMwAqRbcEiRaWLxDchuMfkUfAci9csdsjkoCxu4gZrLSaKLvhU3CUTMhDHFX6x6Eem7nLsxWnTwcHhcmyBGTQZmVCfcHVu3qJqV72Ge", + "private": + "xprv3QESAWYc9vDdZKPMy7dzbEKPQnP4KXmWxEwudyYcay3nn36qPhbKiPFVdZx22MSEFpjimvLGdDQHNjVy4jB1ibEnPimAb8vp8rDW6vX7fkyKZ3gp3NrM6BbENe6axSERQuhawu2oAbtkKBiPcEVEHAY", + "coin_public": + "xpub6ADknPnwuzfYeEU7gpKwkUzbqvt51juUMajmWU3NqBjV3C8WchsPcakv35tZMoNJrurWYSJ6UnHi9Yx4wJXW72nQ4DJUZAuN6k9M147iF5M", + "coin_private": + "xprv3RV2xpHmvbrgG5JWf3sZrmo6Ry7o2TZV4nBVEh5evx581uF4yh1Y4tNT8X6Efi3JDzrqNqj7JMxPU5kAgQ6a6vMghyEpZgzJk2HSzFoFf6wpBGcVJuT5D5tn3ArxLe3BFa8ivaojASHXGvu8Ba4UC3y", + "account_public": + "xpub6Bxsf6PsoupG9hwQBDGzhpnxvWyX7dknboqs6D65hFRadPYM5xt7GZHzRo16U15ZTGrWM3VPJVPrrCbdNnSMeJpbQ5iEx7MMKbHuvSifPSt", + "account_private": + "xprv3S15CFAXbG92qZ15WAcMAykEmwVWEtWrGE2HEmKpUt6z6j6MGLKAKGLPF35y5AcZmeWZx4WHZrJySBgJgSWYuDbUPRMsF4f3UNok7byv4zw5u9oKA7kEsGZh5UhNQcLzuK83VJv6sTy4ds61RpV8LsA", + "stacking": "stake1uxe7rd8390h75nqfhnv6p9mht5m02a8dngaxd6rqyayuknszjzm2t", + "addresses": [ + "addr1q8pjdmmu6c5ulceg5eqw5ff50w66vq6ca3z45uhvy0hdpz4nux60z2l0afxqn0xe5zthwhfk746wmx36vm5xqf6fed8qjl58ss", + "addr1qx66tl0j2s2xs4vsnqs55s5cz2qe0kk2ljwtt2kj2mudl5dnux60z2l0afxqn0xe5zthwhfk746wmx36vm5xqf6fed8qvkns8y", + "addr1qyr286fhqnp9pffwcrha7vj4u0z2mnq3njn4hs70raqgvjdnux60z2l0afxqn0xe5zthwhfk746wmx36vm5xqf6fed8qyxq2ec", + "addr1qx5l7dhnfhys3k96hrx25z9tg28m6usnc4gx2dqm9e4mqcanux60z2l0afxqn0xe5zthwhfk746wmx36vm5xqf6fed8qmwfsp7", + "addr1q9gqesun7h5tq9jjwg7l3zq8mexw9tuu63p4l9lj6zls7t9nux60z2l0afxqn0xe5zthwhfk746wmx36vm5xqf6fed8q5f98n3" + ] + }, + { + "seed": "22dd9f8fa746152083f71a31ee0079ff5ba9c2e778b30bf65f15c066c8bbcecd", + "public": + "xpub661MyMwAqRbcEhpA5S2eNJKWxCuFVUg1BphdoZaH3SGtFXwDpyqhR6b3epxcEtDXcySLTEXjEiKLy7ReneMsSJJS3srR3fSQ6BCbspEjBx1", + "private": + "xprv3QESAWYc9vDdZKCqg7qGfADqWS5m65GTjq2UbDhNgztijkncTjjM54mnvr1YAVx3RcJmd29NgnxN4ykhwTkDomFGM6LZa8TysWcAMSLtBrwThAybvEkboKY3SGqeBTQcetxCCNpb7u6TtrLioFVxy8H", + "coin_public": + "xpub6AFG9mohEjguWwTHhL3S4ZT4UE7KFXqmQi6vZ2chUyK6Mpir7kZfe7DCvSYg7wBLFuioZsyuSDhxVYeSrBWh4pzeFYV7jNrrmhaLXx1UTzc", + "coin_private": + "xprv3RVUv9CwjFGvXp93su2RcVs7FFemhG8AZMLiJCMEmho12TAqsruAEwDrGTN7QimtXvWcYF9SJVzaDdpafWT7gcfJHTcLLHtBjWuCGsgkq2JeqrJPVbu2zxSnnAJN866r2LVWwGghzzLsi7zd5St6p59", + "account_public": + "xpub6DKmBJXD8uSxFhJDKK9VYpadokVpMYpkf2X3aJsWzJrLfcS1KLdapbKsR4vbMtsgwtyvzLaciQnj6QrkpFhtas4tDhLKR7yfzGKWHgtHjiW", + "account_private": + "xprv3SQWQdiahgkmtAfSk5ijf54w7sskVUbofgrhDPSN6xo8Cq4gn8zUc13WFGizCAFEKJSQ4BeNFSyLZV18zrtsGW1kDMjgr9DLhGeoDy5zvCJZQh2a38FCWpmSXpcbYH7wQxVvYK6HBogn59USAMaueqc", + "stacking": "stake1u88jf8sfdsuqtf95346lxyu4h65uyuu5kyswf5w40f2wt7qj4w8q8", + "addresses": [ + "addr1q99l6wa9jqqzky9904933rhrpjqpa3dpj6zhwlqz565qzhx0yj0qjmpcqkjtfrt47vfet04fcfeefvfqunga27j5uhuqq3tfz9", + "addr1q80efcn0w9wl5ruq0l4shaqqesjyt58qlfyzd0r3ghgteuk0yj0qjmpcqkjtfrt47vfet04fcfeefvfqunga27j5uhuqxqzsdq", + "addr1q84jz7a5nm47srr8rvvm50pkuxrspueka4k34xmtl36qxrx0yj0qjmpcqkjtfrt47vfet04fcfeefvfqunga27j5uhuqce2wse", + "addr1q8x2tsmgyy052f8gevvv963smfh5wphlmeutk4qwwu7zm770yj0qjmpcqkjtfrt47vfet04fcfeefvfqunga27j5uhuqpwv4sj", + "addr1q82n4un7a9tdax923gn7t3gru8utrhlhysvu4crrnnhy3yx0yj0qjmpcqkjtfrt47vfet04fcfeefvfqunga27j5uhuq52w67r" + ] + }, + { + "seed": "257a2ae1c5d2157b1e07d96fbb30122bb3843790d1e7fa2376c2e8d3f4e17574", + "public": + "xpub661MyMwAqRbcFtSJBTL8iSgMGvbq6BBwKinfnTDLvcwJ6pjURzQ4sKihZLG7QjYgpuxdq6pso4DBf1jZazAMVEL4EXTweKmkrRTYu2YPUfQ", + "private": + "xprv3QESAWYc9vDdZfbBtME51UHuFee3gdqWVNNAftfuz5RTbnETbVK5BQ5pC2mvUBRD7MB9fPNLR5PHWTGrkVux6pLh84oLgJqSkxLNzYkJgxVRZ5hajdg9JxsgVhZyxhiQP8FPLcPH2rfHYVSWC6NYfA5", + "coin_public": + "xpub6AcpUwDYnGVgSf4wp44K68CFpwSKcnHraBw1dpznChjcTSyJ4CFSnmzrZ983kGYfa6iR7X2qk26NWsKSfs7jqrikXgu2gKXFWarEUM93Xoy", + "coin_private": + "xprv3RbtLqHQ4whMTNQcMDLbDNtjpbFN7KNk6v2iMPz3vQPHH9qUL9enC7FbCUkC7re2PuK6jFPE4GBYJQqjtY6CMseTw27ZVDsc4LJbkYmJ3rESdR5UsxoXtfT9Y7YBume9kfNSwte26D6Ai4UvUaoE2kh", + "account_public": + "xpub6DGMxmZWsY3yRWYn34oSwxELizeS11K58uPqGa9QgkmRA3WFZ1FZA8TmWQJ51w36vZABHANJ6efHL2oxUU2jUMAYTFokwJf7RK4HHXeaeEK", + "account_private": + "xprv3SPVpgNLP3TPM5bDQZJYAtHrnefoHAmBBbAMFS8tCavmSkXsDDdHoRZw7xSWdQpFm7pCwbg9H8aRRu91so1pCwtMpBKxs3t1dq4pa2Jc84CCYan8xKqYJGj33NwqZAJo4ZhuLBzyGK9MWYTL4BgWnhG", + "stacking": "stake1uy8w88wpks8sead65d9vuxt2l3edx2su4e5hjw6qvsnd7wqlrjrmk", + "addresses": [ + "addr1q8ewnkdm24pct9gx2may2gwmsqphgscafhw2ph4dmf98ytswuwwurdq0pn6m4g62ecvk4lrj6v4petnf0ya5qepxmuuqvemxtc", + "addr1qyj4cjmagsvzd296jztml6kn6lu8net9wqt0kejxca9s2qgwuwwurdq0pn6m4g62ecvk4lrj6v4petnf0ya5qepxmuuq4c9hav", + "addr1qx04qu7xa8dvgzazfe7yrukaw095kku692myct29w9trtvqwuwwurdq0pn6m4g62ecvk4lrj6v4petnf0ya5qepxmuuqatqxg5", + "addr1qycyl0g22p39csku8xqc23xf3wf4e0ypjkx5ddckr9cjr0swuwwurdq0pn6m4g62ecvk4lrj6v4petnf0ya5qepxmuuq5znk96", + "addr1q8d4smycvwvfns2h4wutycqfs2pyjgfp5y7n4vtp8mp9w7gwuwwurdq0pn6m4g62ecvk4lrj6v4petnf0ya5qepxmuuquvsf6u" + ] + }, + { + "seed": "f7aec5dbe9787c5774d2ba8953eb181275065ef4f150e0abfa2605861dcec575", + "public": + "xpub661MyMwAqRbcFXTXhTpoDdDSRYtJduQRersSUuPxPNLhWtadNgBhnAChMu9GMpPJunmDdxZoJKxpxpbUYCJ3eJ9GPE4JaVL7H9CRrp9G56A", + "private": + "xprv3QESAWYc9vDdZZMjUnKqT2rkeLKeMYf9LwTjYW4JUdQPQGpfBifsQZYfaeYCCmM6Ru7RVZKSRVT4LG33rRS3QqVtX5c8Xd9oUsG1HbtyqdyEbQ2hdGQcGGekS9deonbjUrYE3oJ5Cp2DosyPLXPoFnE", + "coin_public": + "xpub6ADvbCHyjr4gTYT78VQWaBrX7xjjqTUTyyFr7NYLsGWA3vyntTYQsbEbC5ht9LXyH6sNsQfsSXv8Pv1cgPQQ2JnDT8Ub3Qf3VjqQzNUqD7J", + "coin_private": + "xprv3RV5snWsDDGiVe3rbQpminFmFVy2uWBc5uL4VdPohb5JvxWASXbmg7X9y2sEjqqKfTHpvETxQeg2ZUDjeSmM3RY8aaCQpHcwDPQNVqvePpJGWaMzBMMN4bxkHA21XPkeH3R556Gr8aVfKFkmGswbQCb", + "account_public": + "xpub6DUCXBD53eud2o2BBRqMKaKy4kKH2KFvuTcFZ98FbtV6b2qWcx16eKCdVHCg7KjZnbWG6AC1KD2daKP6LZWr3q9BES2fjgenxoXEpak5aT4", + "account_private": + "xprv3ST1mp2A5eydZQ8p32eGdCa9Pv7W7d8LoraRxTq4sRPGdDVpvdyghwDqfs3dmaKXEPs3Wz1jtriVaxmdtzDEaahvbiVfz1YcbP85nsnkcWFjATNrzqrXwTifyDnKoRmV9zLvGHdLRJxf98qJH3YGP8J", + "stacking": "stake1u9vkhl289nqh7cf7de84j9e482kfvyk0z48664suzrr3p7sf9faf8", + "addresses": [ + "addr1q86zg4t4rkk65wfcgy9uaa4kdyz5mv3g4jt9pet83np2mhjed075wtxp0asnumj0tytn2w4vjcfv792044tpcyx8zraqqlzkv6", + "addr1qxza6r0kxc69a43aqy04fxyha4ye3evekxcdhqkng9vfaajed075wtxp0asnumj0tytn2w4vjcfv792044tpcyx8zraqhpjmj5", + "addr1qyzfc6wjuwhwx4f07zm5yn6zjdd7hzx9xwxm443dck2gurjed075wtxp0asnumj0tytn2w4vjcfv792044tpcyx8zraqslmnhk", + "addr1qx29xuvzz88vqps7amnzgyd6lqvh6yavdeu3dftne4yq8ujed075wtxp0asnumj0tytn2w4vjcfv792044tpcyx8zraq4cmqvm", + "addr1qykgg0nypjjpxaunecjnznvqgdk00tne9l77gtgt5fpz3yzed075wtxp0asnumj0tytn2w4vjcfv792044tpcyx8zraqe8sgry" + ] + }, + { + "seed": "2c5cfceeef577becfd71d1417382384ee5e8c63cc2662b8efb13c0dd10f5f0a9", + "public": + "xpub661MyMwAqRbcEi6vRfqG77nM887XquLAqcK5VrnKx9yQW8razUwLQE9RohxgqcLFLPovr1JRmkTsUS2hx9g5syfaXzRKRwNx4omcdtr8kBn", + "private": + "xprv3QESAWYc9vDdZKHpXJPgpy16MeAb1oScMWi19XsGtCA3n58Vf2rdjRxLAZQsbMhQDmuwAnRoDhmwejdu2H5vn77svFbs52WGtSekdfWqrRDVaAjzaYk4eVPucBpC1Ym7Uw2UpbuMR89C9TT8Am8QgXZ", + "coin_public": + "xpub6A3eWZW8D9NV3nGY2UGBr9XvQjfDjzptCqiPUKn3kx2HFKQW4Xh3ESevUeuLE8WP2ZwZGeTvxjszmPmFaHn3ft5czZy1zXCin5n8WGxdfiw", + "coin_private": + "xprv3RS2oZtpT83egHjXL1FEZQDJtP5TQrSFkRbo4vXbFeKsZKazKgvNWtLRVse6c4D8KevvseGrLmYRDN65C2deAXcGbgPK3KA7yUPyxYu7xkuHv2zTrdyuaeCA4xZyTQZqecPvGmmhsnvTqYgF7JG7ppk", + "account_public": + "xpub6CRDSzmMELKvRvzVTW6mYcFyFbfySjSrbF57ujYB7CLGjYwGDLUTrBzfhDmTnccJrcJwvj1QnAW7vf2vyZ9Ub3mCz6S622jYXcBtuZgobzJ", + "account_private": + "xprv3S8u3Ui3eWTGjAUSKQMehuWDLXFqQMU4a6i2daHuBqkPQrxswfGZa3g51Kh6voikf4m8Hbv41g98a1xpQoWuMdEGcHwc4sdWEkvQNThGoDTkNyTP7VCqRbdjF1kvRxqXxQZzX2TG7R3utuZLoUpPgBD", + "stacking": "stake1uxx04nav6l80w5afrz4z5tg0wmyrf5x35jrw9zgmz8lvfgglvjvgh", + "addresses": [ + "addr1qx55d768cu9ma8n2np2404p2ffd8556yj4ytnv3wfk2egduvlt86e47w7af6jx929gks7akgxngdrfyxu2y3ky07cjssj472vw", + "addr1qyunv2zlw4t9w5ad0c2p8gp4dga0flf0dsh4nl4795d08vuvlt86e47w7af6jx929gks7akgxngdrfyxu2y3ky07cjss3zunx9", + "addr1q8zlaswvrv5c64uypqa7epdcykrwcaqgkmmvmjacytqxe55vlt86e47w7af6jx929gks7akgxngdrfyxu2y3ky07cjssyk36yk", + "addr1qyphr63w74ve6s9623v500kygmyv460ndntxhqlmfjq0uj5vlt86e47w7af6jx929gks7akgxngdrfyxu2y3ky07cjssp20w4a", + "addr1q8806z8n0jlras5kkkf9an7s5p38ytamy2hpx99qyvu4zwyvlt86e47w7af6jx929gks7akgxngdrfyxu2y3ky07cjssene0w9" + ] + }, + { + "seed": "c1a09c634f7a4196d29042388077fb7b36126988b631457e2a88d03937e131eb", + "public": + "xpub661MyMwAqRbcGnc35zZNmJK44UhAd823BmQHGWWwDgBzmNv9gz86YjfPW4f942r58x7morZpWQTEDxbJ9YZCMpq4jH6LYom5nPA8Tn4tqZH", + "private": + "xprv3QESAWYc9vDdZw62AiteJ3QfiCMJhXfpRsHx32GCkoycCRMzUCojqWsbMKuUPWbGaFkxo8NkmyyAjBdRU6iUosPst6XGFnFGQywjrNZC9KfaC7MsUHo9DLRxxU2PYT8dy6nEH5QeQKHEX1naQS1P1hi", + "coin_public": + "xpub6ACmG5vn886Qc1722PvAEtepZVr9FopSaV7o4vsQewkC66HpVWQukbnFBpe8hFNhGtwE7bCzL2EaeixDyqEXvsnnvopK766Fsoc6i9kmpgy", + "coin_private": + "xprv3RUjsj3LjvAnqs6C721EwsqDi3jLGBKtV3QrvyNtFakZe4NJfczsFz5DSnmcuoErYQCKp97dKUzkyjovygHCAL7tXE5DNzTEbQwLwNTDDP4LnGo4jHq67epUrqDeTKtcnoFRAxMxatVt36VdjgP1CNq", + "account_public": + "xpub6D4aSngiwpDBfscQZdWmZAG8BgKuEH9tacQjJuz9LksEBYnsYj1NC6nv4C75dF1DWpwbon6UdA1peTf1KvNsUVoEfX4edb5Sec7teNXuMWf", + "account_private": + "xprv3SKzmxV4kzyVb9FvEeh98ao8Upz95X5p6xmzydad1LDeVYMzAyaTGpk3v1GZsqYsQvVvdMXTpu79MSXkFypYzY8St7Lc43xkgtCP4wB9yXk3PHzFwNGfgFkNRNAbJxYBqb2P3qtBfEkDTQTaD129xku", + "stacking": "stake1uy6py7pwwnelpncnzpzhxklhmzqmqazwd6e6qvalq239kjg2skd7r", + "addresses": [ + "addr1q9x88n3z5u40325xwqd2phf873m7d7ltq4axlaxka789s8f5zfuzua8n7r83xyz9wddl0kypkp6yum4n5qem7q4ztdys6dclm4", + "addr1qyzyyr80kadjy8m0g9w3jz40dcqqcncdfmee8e5z6e0j4zf5zfuzua8n7r83xyz9wddl0kypkp6yum4n5qem7q4ztdys6mz234", + "addr1qyulrxa3zzw3ma6gayn7y303spckxxxg5th88etawwzsjpe5zfuzua8n7r83xyz9wddl0kypkp6yum4n5qem7q4ztdysk2aelf", + "addr1qywv5j3qylakul4ugvlqv55wcplkzwfrwxs43037njznv9f5zfuzua8n7r83xyz9wddl0kypkp6yum4n5qem7q4ztdysfzff33", + "addr1qycnxv7m347vfspaq3l9wg9tt5smnkfjjjuqku9rxsclm5p5zfuzua8n7r83xyz9wddl0kypkp6yum4n5qem7q4ztdys8pvcvm" + ] + }, + { + "seed": "de200f4d3dbfdf3e5223ed5b873dcc6590d6a1cdbe4d016e256a3692ebea7adf", + "public": + "xpub661MyMwAqRbcG5SfXMmAahzTnJH87RTksPpGAqHiTkZRM1RRhfR2FSSwPbzri5DMVu1dd6DbLEV3c497Cvpvz8jLiC3G149r6u1N9nLuzCz", + "private": + "xprv3QESAWYc9vDdZirpiAGvWRDm68tG4198Mbe8FaRzFQmzygmbELwiMuoou1C3RCbUC8A9CW8rpPGzHrxmaseguVhX6Wk8UiRovPxELf6briGgi4yxFTfZrFHuwHVLFq1Q2Tgvg3XPodaXmJkcww23ZjN", + "coin_public": + "xpub6AbSHkvWPsvFmbsW2VGKPMnnuGYxZd8yQiKufieoSsHAnjg1ujfqE4Mt3oXseEmMg2v1RfexdhEumNh32TkarW4TFwN1tMp5NoDweekaLLv", + "coin_private": + "xprv3RbUX9MuWBE5PsFFEPsyJsJQcYpxRkGqsQ3Mqy9LG7fXUFqthfFZN1M3AVKkyaP1YewY2vMzw4y3ViZZivz794EENFg6nWFCzwhoFSALLFgPpwX6vFktC2NXiMTmgeHrnLXhrdd2kbfrZUXt9EDN5xa", + "account_public": + "xpub6D54nh7H2VDwCWCQiRDNbGNzXrLxxXUAAcwomVMsCdbS1rQY5mDDfdzE3tmFzZz5kFo934MeoCmEavGyJ3YVko9em3BnzXWb9Q6stMkAUvn", + "account_private": + "xprv3SL9CJHhD8MotSRj84ud3CWLiBTRmWF4gygjSNv6rYNzPbG8LWi5Xbq7CMPH9sHwpGrV3SP9b4GWuuWJAt3VeqeoDwR7yjbs3QjSDrmAp5Kn8Rz3pdjhzF4ByWk6PvExFRHbZnXUH5H5jXEWskbZTrV", + "stacking": "stake1uyuafnla42295y7jtcjg3styagzazthlakq9kw3k3m3sjqcnj209c", + "addresses": [ + "addr1q9zr5lfsysv6jv65ln7079ec7a8m2yv7qc5lawhwf2s5axfe6n8lm255tgfayh3y3rqkf6s96yh0lmvqtvardrhrpypsalxs7r", + "addr1qyptcykywe9vs4jwxayegngfn723jgd9xhlegjm0tf4agnpe6n8lm255tgfayh3y3rqkf6s96yh0lmvqtvardrhrpypscrqqkt", + "addr1q8ezalzlel8kxkcrhvtrl9ezjc866kdlcq2pj552rdr2w9fe6n8lm255tgfayh3y3rqkf6s96yh0lmvqtvardrhrpypspqp4xf", + "addr1q8tsxnxlppn90mvtp3wvnhqga76llx6p6pw55wwrwcz48yfe6n8lm255tgfayh3y3rqkf6s96yh0lmvqtvardrhrpypsdzy9th", + "addr1qx2r2plhkrzlzx7e43zfegndt4m205x4eldakwl4vgruay3e6n8lm255tgfayh3y3rqkf6s96yh0lmvqtvardrhrpypsty3gr3" + ] + } +]; diff --git a/test/cardano/mnemonic/mnemonic_test.dart b/test/cardano/mnemonic/mnemonic_test.dart new file mode 100644 index 0000000..10ec5c4 --- /dev/null +++ b/test/cardano/mnemonic/mnemonic_test.dart @@ -0,0 +1,17 @@ +import 'package:blockchain_utils/bip/cardano/mnemonic/cardano_byron_legacy_seed_generator.dart'; +import 'package:blockchain_utils/bip/cardano/mnemonic/cardano_icarus_seed_generator.dart'; +import 'package:test/test.dart'; +import '../../quick_hex.dart'; +import 'test_vector.dart'; + +void main() { + test("mnemonic", () { + for (final i in testVector) { + final String mnemonic = i["mnemonic"]; + final legacy = CardanoByronLegacySeedGenerator(mnemonic).generate(); + final icarus = CardanoIcarusSeedGenerator(mnemonic).generate(); + expect(legacy.toHex(), i["legacy"]); + expect(icarus.toHex(), i["icarus"]); + } + }); +} diff --git a/test/cardano/mnemonic/test_vector.dart b/test/cardano/mnemonic/test_vector.dart new file mode 100644 index 0000000..22c9219 --- /dev/null +++ b/test/cardano/mnemonic/test_vector.dart @@ -0,0 +1,37 @@ +final List> testVector = [ + { + "mnemonic": + "print crucial okay family era scatter bridge recall joke stomach diamond scissors", + "legacy": + "d7ea4bb51fb2088d878eccb3a281471d7d8ba8a5a4dd9fcce5a076e415005fb2", + "icarus": "aac68e67a944c580c6f59b785ac4f4e0" + }, + { + "mnemonic": + "mixed champion melody verb denial luxury card thrive breeze crystal rough keep race ready castle", + "legacy": + "6f7aad8c3758c72f06051a8d65de6f2fa13a96fe5b6416b3255478929bda19e8", + "icarus": "8e24c22a7943a70a88a7091b86aaf13ceb076588" + }, + { + "mnemonic": + "rival fire muffin dose era rookie lawn say melody misery donkey nut elbow manual sadness scout equip urban", + "legacy": + "3e46932e6861fb90b720e407ab87701b395128426f74df453e4ba435bdc9c943", + "icarus": "baaae644a0c4c5779f85ff8a91b504cbd4730eef7e0a4c3d" + }, + { + "mnemonic": + "vast daughter mosquito female unaware romance fiscal ostrich helmet good crazy sustain plate maximum pencil power express acquire armor mean immune", + "legacy": + "6f0e13e2ae8aa2741c153fd88a8c7467d38f0f486a31131d8b484b5060833164", + "icarus": "f1a6fa402a7ec77715e4e76aec8ccb6d7a6312e8ad4a50c0442fc4e7" + }, + { + "mnemonic": + "dignity hazard energy enroll forward sand good never urge travel elder history viable rebuild enforce venue jungle absent asthma pluck civil culture bulb measure", + "legacy": + "2f77930c924d3693fe701cd6f6e00e8c70d0881bf046225a9f1f700f07414d70", + "icarus": "3e0d3d282595bd7e591ca8ef7cf11d361f3566928f93790014385352986b077c" + } +]; diff --git a/test/cardano/shelly/shelly_test.dart b/test/cardano/shelly/shelly_test.dart new file mode 100644 index 0000000..d5cfa47 --- /dev/null +++ b/test/cardano/shelly/shelly_test.dart @@ -0,0 +1,31 @@ +import 'package:blockchain_utils/bip/bip/bip44/base/bip44_base.dart'; +import 'package:blockchain_utils/bip/cardano/cip1852/cip1852.dart'; +import 'package:blockchain_utils/bip/cardano/cip1852/conf/cip1852_coins.dart'; +import 'package:blockchain_utils/bip/cardano/shelley/cardano_shelley.dart'; +import 'package:test/test.dart'; +import 'test_vector.dart'; + +void main() { + test("cardano shelly", () { + for (final i in testVector) { + final cip = + Cip1852.fromExtendedKey(i["private"], Cip1852Coins.cardanoLedger); + final toShelly = CardanoShelley.fromCip1852Object(cip); + expect(toShelly.privateKeys.addressKey.toExtended, i["account_private"]); + expect(toShelly.publicKeys.addressKey.toExtended, i["account_public"]); + final change = toShelly.change(Bip44Changes.chainExt); + expect(change.privateKeys.addressKey.toExtended, i["change_private"]); + expect(change.publicKeys.addressKey.toExtended, i["change_public"]); + final addresses = (i["addresses"] as List); + for (int b = 0; b < addresses.length; b++) { + final addrIndex = change.addressIndex(b); + final addrAddress = addrIndex.publicKeys.toAddress; + final public = addrIndex.publicKeys.addressKey.toExtended; + final private = addrIndex.privateKeys.addressKey.toExtended; + expect(addresses[b]["address"], addrAddress); + expect(addresses[b]["public"], public); + expect(addresses[b]["private"], private); + } + } + }); +} diff --git a/test/cardano/shelly/test_vector.dart b/test/cardano/shelly/test_vector.dart new file mode 100644 index 0000000..f6f032f --- /dev/null +++ b/test/cardano/shelly/test_vector.dart @@ -0,0 +1,1452 @@ +final List> testVector = [ + { + "private": + "xprv3SLTEshpxLcEyCAfcQ1EbivSr6rMNSmbZDTkErmNPGVLKGvPqxCQe9UHP3NXCimHHpb8oCHyJnk1LzpowJTavRDa14nnFwACxA669ApLV2mvcE57BrfbK46is3G32i2huVN1FHLX2RYkH978p6b7Doh", + "stacking_public": + "xpub6Fx32qhsvGPJzrW69XFbXh29csnK8fmdnJx4QxvKE5ifhcHbwwx1u2BguHW7DLE7hxKg46jr2v6VzDKnqHLWynM4z29d4xKUTjuZPjrZB6T", + "stacking_private": + "xprv3TBk1wKPqxYmzDQ2xLjYXzZARJuwmihNfjv8Gtc6fCYmA6c7w7dNAnS5FUZR9nxM1DB5we5cqz9yGEVQdzQCbxoSDYt5DUzmBokptz6tgpiY7MxLkXkRfq8jBfYUb4XV5Yae8RNHKAJmdEFJMpNK6Ad", + "account_private": + "xprv3SLTEshpxLcEyCAfcQ1EbivSr6rMNSmbZDTkErmNPGVLKGvPqxCQe9UHP3NXCimHHpb8oCHyJnk1LzpowJTavRDa14nnFwACxA669ApLV2mvcE57BrfbK46is3G32i2huVN1FHLX2RYkH978p6b7Doh", + "account_public": + "xpub6D67XnHopNQTT1XfWqgau9rWgcuW9uqQKczYmwJdALER5xozLvZTJ2kt5woT3yTry1Wfc74GUg5P7SiJXB9hfrKF3RbESo87edddZdVCh3K", + "change_private": + "xprv3SXWQjm1qqx4aMprZ2QWJarGJtfJTMtLpcmv2QoyeKNv6SKVKwSt8xs2E9RN5dR7QrZFFh68Ssz8s5o9Vnpzi7B1hUuVyNFkrgfDha9oAGVwCoVPaG5HQeom4U9b7kdvEDoR2e2AcHQytMpYhWCDwmc", + "change_public": + "xpub6DjKuHeE1B3bnEyEp4y5rf9pWxFJ7p1KYcX8PCmZdjW6BN1FeKzo4tYj3MEXkGVAL3uJKMDZ1UYsdbJGKj4MwK4ZfmnHnJQ4fV4AdDEEZfN", + "addresses": [ + { + "address": + "addr1qxzkvrul580sfrc3kxdh3qkrce3x59nctynq9s6pu46urmtd6e5hpxtgq6zuwgvahuzjqk07ta9xw7qew6s5whgxg0pqmh07nx", + "public": + "xpub6G55yx9UGvyJfdyLttvN9nJA8ME7eJEeyE6gPKuBtwAnDomUFhPGQci4u97YuTZyX4egz4HjUdDT9m6NEZi9dWWdRmui3oa7kzAcfY6WcxD", + "private": + "xprv3TDqVz61bBhnARKdLeHTz6Da6XYW9R4KBQmsNHKUePzCd8dcqz95s9Fwp2SZFW8N3Je738CU2fz8jZb43ftNcPBkCyNzoMMKmU7wzn89cySTbNh4UzKVCnvFmnrQ9sXuEzmWGapM75d6PxeqD15mgRH" + }, + { + "address": + "addr1q88hput3zqr9eh7a2s5mdsac6ear02x6pvfsxgnzket4dwrd6e5hpxtgq6zuwgvahuzjqk07ta9xw7qew6s5whgxg0pq2vpsh0", + "public": + "xpub6G55yx9UGvyJj91M7QTieqE79icCeATq28xYksTUDtn1UJUbaaCNYvxGYU8ib19LVW4NWgfR5Rz1F1cdveeZdSguoErRBiD34xzmXaoHFL9", + "private": + "xprv3TDqVz61bBhnBTdqAEKN17o79xbynWqwqecUdr3GyvFUreDDCAJPmxKp7jPB6Dg1s2kpyb4XKWj9CDoQcCsupbksUAM9vSXsk4d6iAKdbEwH5fL7JmszDLSRmqpbhuaCV77P6d69whXEC3vJRSGtQPJ" + }, + { + "address": + "addr1q9q09frkfj80e9023km9enln2uywyvus7jwlym6cdteg9htd6e5hpxtgq6zuwgvahuzjqk07ta9xw7qew6s5whgxg0pq484tp5", + "public": + "xpub6G55yx9UGvyJmRKrgzrfEeVJwbckwP4mAMk3H3LrFcNjevqRsMwiot4kwu5YpSxfX71SsVhb1R8c4VRPG5CBSsAJ2ndjFDPeqAoVCaAb9Df", + "private": + "xprv3TDqVz61bBhnC8wdtVVF66yLwULkMudVi2AX9SLyv3h5VtndXbhrRHmS1Y7jMfeuE8xUAVQsrfWAeGjjrq45Bkcme9AQt5QwKdbeLuufgiP2YTwb8TgE9W75MgdCYFC5XL3dobXKBrwXzkcgTv8xUrw" + }, + { + "address": + "addr1qysnkvsaz77kpy2yg3c4fteaqglpkq5lgfssmxudm5pyvkmd6e5hpxtgq6zuwgvahuzjqk07ta9xw7qew6s5whgxg0pqfm88hl", + "public": + "xpub6G55yx9UGvyJpKTUNayndk1i3iLY4fadyL6M4dJjSwPYGD25UAgBqiybDLbqqnfMroVuDJbXLAMeEVF4fafD2C8KeE3gGiZfvTZRVGTyixW", + "private": + "xprv3TDqVz61bBhnCztUJmeVJQEVkQ3wxxHkSCWU2MC4JQJoojfDjDKsfTFH1Qumtc6RCDixzN8wEiX6TqEbWdBFARmfrXNsD8A8ZHZ1DS2vnswNjadx7MufDDz9Aw9paDqm5uJ1s4ZQPyrP9Lgov7kwWX9" + }, + { + "address": + "addr1qxqxx7ekd99dz6l83z0l5yt4u9hqtdk3d8kgu40pu0dfzmmd6e5hpxtgq6zuwgvahuzjqk07ta9xw7qew6s5whgxg0pqatgeax", + "public": + "xpub6G55yx9UGvyJsqdjsBAe1KL1W19b44SNnAvMKjvhwECJntodTFHoVfeWfhtcyRfj9oGyHM7evN4kGZ1P8rAsmRMQ5Ttvsvj1YiZE6DvCmF5", + "private": + "xprv3TDqVz61bBhnE3YMpUwq6TNig7GXUfDpUbkRwc9XqGfYhYhz3tn76y95C4voxpThncw9kxgqy6iZPMu8e5uk9cMh14FxY4mYwa9ZVmpX4j7AwisqL2CqovsxQzTqtPGWJyru7HT1X5WvXafNtQVQXZM" + } + ] + }, + { + "private": + "xprv3SAJkpWitvopT9aMvGd8NkQcA8N65Gp4WsxPdF4dk4SoGsG12GmMw5MJ8i2CVfjyBPAWyVvLcAL7XEpUf9ReJwmV297dzrmAwqNnk66fm17apFbjpLfN8RBr3VfPGxmGuAmsdBc3WCL6N4Ct2QuhpD8", + "stacking_public": + "xpub6FcN7KRpimWewbUSjZ9Ag1R7VEgF416TWrD96zpsxNqx7FFmtkETbwAYkedwqZLG32mQoxwaVjx87nHSReTKV7NBhBtsTff7PgC1SkdApi6", + "stacking_private": + "xprv3T5u6J5SE6uNjaJra2tg2VTtX5XajJEg49VQ7THz6NCCVoYdvQC5yZvQbSF5sx4cfF6vwygtqKf18eMBXG1HGGodA1XCXgVMPHYUsbc6Ny2zMM7ZTv6TpSrrLpBXAksGLBGi1BHoK8jzhCrfMJ1RMNJ", + "account_private": + "xprv3SAJkpWitvopT9aMvGd8NkQcA8N65Gp4WsxPdF4dk4SoGsG12GmMw5MJ8i2CVfjyBPAWyVvLcAL7XEpUf9ReJwmV297dzrmAwqNnk66fm17apFbjpLfN8RBr3VfPGxmGuAmsdBc3WCL6N4Ct2QuhpD8", + "account_public": + "xpub6CVxX3QURv5aujdzXChkjcGtasLvt2YSHKyNPFJLWNgymmnyZzkJhzfbxcJzfPtST6sNtw9PUQScp3HLU3Qxm49BWt9M4PNErpkpuU7FZkG", + "change_private": + "xprv3SgmXyShAJWvkhVCt8okLrpHXz1WSABTaq89vvsm3AHRswb6BzryUXtUBaNqcewvReZVHkiZ6p9LKCRjEUePVwtjsfqvppzivK5xBL2eFXxA1uLKuWT1HsBJPrvAesGLjpLAULgkUzZgqSu57QFjvTg", + "change_public": + "xpub6EGW2Rnk5uNjEV7bsCZFYkmibAfn8crDXKxnZxXLJy5bMAJZjCSpvP9RjCnqXP9SETBsCBcvBHwyCoX6AgWEUBRNzNT1KRNtHdtY9tn8tup", + "addresses": [ + { + "address": + "addr1qyv9l33hvmt8w9sq3unfut9g25m8tdwasty7n7d74umtpy7a875qenm7w8hwnzjxrscyv685xgm3kn80g2eatscqdv4qjm643v", + "public": + "xpub6G1JktwHF9nko85H4ZCpnxHPRLCQMJ3ZqmTEsGAD64byDCabMdXzcJwuk9X3QMCgNHntnf49XrKXyYWvpaNmyJy91LePGqJMSqGHzS4toLN", + "private": + "xprv3TCiNpnR61kSvoMpRefaKTTfEEjSQecK71eWyW3qos7vnLE7f9B8bYd8LCYG6qD2Pgcm7bRUAUn4nMYeMtTJKmEcpFMiY7Fg33yfSpdSwKckxnKTqFLtPRwrw7BSKJdj5qB378Zvp7dDwesTSHXTatp" + }, + { + "address": + "addr1qx4rv68leyv0wmenc78wdlk8jlf4e93gnh6u3emh89q9ydwa875qenm7w8hwnzjxrscyv685xgm3kn80g2eatscqdv4q58nnmw", + "public": + "xpub6G1JktwHF9nkpwpXWr3NUZgFo2Yvp677w3uihWbKwERsJUCVRP33xpb8VMDcRZi2RyBH7A9GJJxdK4w9q4SZ1YF5ybNPgoKLYCVsTsR7uxm", + "private": + "xprv3TCiNpnR61kSwLmmrD8GFjfpEHxKngoLmsbPRCfrL1eMJ9WCKqVzqEshMB8BFxTroXhZ2dwQDdUJYp8rzAsvGrB78nWpuAmz2wjejTU6vXhAuLYAz7tZ32quucV2op4aMYqvqk8bCxjAy3ossNnuiua" + }, + { + "address": + "addr1qysvhr2sgd3uzhzc29q5l0m4qfk7hkz7egcjd7nejktzjd7a875qenm7w8hwnzjxrscyv685xgm3kn80g2eatscqdv4qhf42qd", + "public": + "xpub6G1JktwHF9nktuYwYiZtCPCXPMTNBarepv1eCpqGsSKWSCKmppJkczCNNpneJB3DsiyVA6ZZawJAgm8T253RukBYr1SETJU5tSt2poa2NL8", + "private": + "xprv3TCiNpnR61kSxX1xATCWNE9xyW3k9y2WP54bwEw67tgUHHF7rvdGwW86t41QX73rxMbJR3k84RaUVi6przsY5Bxkhsq9kHRdLz48T7aqV4uLCZQoSKTaeu78oMrvUPXGBe9R24n8w2TLPngFAPF34Np" + }, + { + "address": + "addr1qx4agq6htsvreqsmlpmdgw9wa9uj3r408j9lva4w073m9zwa875qenm7w8hwnzjxrscyv685xgm3kn80g2eatscqdv4qduyq0j", + "public": + "xpub6G1JktwHF9nkvL2MTsLh2efqJnAMrX6EjDy2Xn3qhCdukK32gySpJTPCf14Lae8Rs4oiaQAdByeYe1TCvMaDy1H1uLZTm8gy8YCadLvzRLH", + "private": + "xprv3TCiNpnR61kSxwWvSTy3uy1sPTZfJbCCp53teQGwajhu6UpiUB8WJvSNQjvoLZzrFyY8B82ZtN4SvoHBjGjfs2RefN25BbUUciiZeeM9zwkaZsSiumP4PA4TRerojydW7m6eM1XsPNUL6uQD5B4SYqS" + }, + { + "address": + "addr1qyrsv3vaw03uj76ytx562508flm4zteums9uj3k5959rc47a875qenm7w8hwnzjxrscyv685xgm3kn80g2eatscqdv4qemsx3c", + "public": + "xpub6G1JktwHF9nkyS35mTao3Bez3WWoMnT2y314FLCN16tsJ4cpcgLsHiWDX9ANZXnysKEAMqNNio4igcPy2rmR2ruL6f8q3URLKNtATXm9CSp", + "private": + "xprv3TCiNpnR61kSyrzU23gz965CRcgaJ1WDZ2mpns4XyA2jnW7Rcg82vjkRUusTaHxkkV2hRkLj1DPoSSa855PNck13UBDKKD3Y35Fuaz1YRQG6YPiF3Nu3V6jMLWU7g8ga11TCHXee5v6nZx4tiu5VmYt" + } + ] + }, + { + "private": + "xprv3SGwCNUujaXemqGaaUtdSmM6c4iV29VqhQRUFNtuaMnZVMRwY9PR1XnDF9yP13Dz7vxrmzN1HsBcdzWtf8W6EC18oztZJfmcvSyLf6KMdAkjptVVxUwRZAZ7bBdG43i6rYUqs2hfJpQqJ6kCN5kiMmg", + "stacking_public": + "xpub6GAmyQ5aWE1rBKEik5qzCF4XHwqDpKeZKb4WiyXnZURe1NEgvah5W4ck6uprZZquESk48hr9FzcmpVBJxHeejPV5EeuC4Mcuab2MaqpzcP6", + "stacking_private": + "xprv3TFXXb5pBhMWwqwW87M7PUuotLisKGZDnk7QRYk5ucN3i5cdhhK7rUsbumJRidD5EW36eabsqQ59Do5HPNyTVNanorhfvtwpM9385JNaQt5yEXJscx7xQvzXxpZEvP2XHRgRWD4ZXrX36jSQEkNvX2Y", + "account_private": + "xprv3SGwCNUujaXemqGaaUtdSmM6c4iV29VqhQRUFNtuaMnZVMRwY9PR1XnDF9yP13Dz7vxrmzN1HsBcdzWtf8W6EC18oztZJfmcvSyLf6KMdAkjptVVxUwRZAZ7bBdG43i6rYUqs2hfJpQqJ6kCN5kiMmg", + "account_public": + "xpub6CtGfHoXMowbn4SyyBsmxaUr93K25ZsKnQ9SVHvpFWd1JaucJe5edfdkHNhtYNq66ix8u6FDCpDdf6xpqCJ8PiQYZGZ8j7E2EjTpWh52PCc", + "change_private": + "xprv3SijVJMsKYG4mk5WgfJmof8pkMq3tQbckeatFBTWshT6XgjKd3bWssjeQseqRDytxivR1Jk6uM1P3Xvwz8vBXZc5XXTKpxPRfgoGGKtm2N3Dm9cCPTj1mvQkYg2ugYuPZEFadsRwni87ASRyAbQcEvH", + "change_public": + "xpub6EP7dQM4A1E8fh6Fs6Ng5y3Xu4gvFbkwyorp9zLKFREry22G1X9D6TLivC66F7gJ7AA6w43SirvCNYWUMXAwgiyyR4wu7NnVfq9eb5bibxZ", + "addresses": [ + { + "address": + "addr1qyltj52refed9medk265j6ynnptnwq2u0vdhpk0x8p46wfkrmna3efj43e808749n4j7faqe72lh9zs2yckkt39jgfkqrvzxtc", + "public": + "xpub6H4R7h8QbPbwpjcJHoaSLEf21Jhf1T8ophEtGwQDNpLnFxzNFmrbUy64BoqPUAjjxCoB9atXY2foobLg8ir5ANHaEHLwvituQk3FrFBkKeN", + "private": + "xprv3TWsGhc7sgTBtxuLVFJC4NB1Vg53Czr3HdLqqzaysZuj8J8KnPa8NFq5fzgN6y8RdF1LD5CRNKhSmKf3kxR9n6Y4BqFGMJGSsTTCTJ7x2cVPu5S3pvWcgGFNN1M3f5S9xRhi7ZmKvhEixcQszMtrheh" + }, + { + "address": + "addr1q8ctn3m9wynvsf6mmenuq99ecvqznem7ww09x8euwecgrfxrmna3efj43e808749n4j7faqe72lh9zs2yckkt39jgfkq8skju7", + "public": + "xpub6H4R7h8QbPbwtBqNu7TWgEt6KhTrxqHNCwFXN4gNvRP9fMXHqcnLePfvuxy93PX89humdngaAn1qdS9PwSJNELVMQgbeuzu6TYQPWjT6bQM", + "private": + "xprv3TWsGhc7sgTBuzP9Bu13zxduS3bNigS1scE34cg2cofhN4whGT5PCcHeRQQ5vz363nKafrqVPz7dKoXXFPgQc2awefFoMr7QfLwtRuNavTQZE8KomgEZtHPVAzaP18XmyQV4d4oue3vN7LG2xkpMEx3" + }, + { + "address": + "addr1q95rmmmmh0wm0rtgdsp76tkrj8l5pghuzrvxfmc97m8uxskrmna3efj43e808749n4j7faqe72lh9zs2yckkt39jgfkqdu6px0", + "public": + "xpub6H4R7h8QbPbwvRtM1bWWMU3VziSrLo6c3VVW2Q6t3qHc2S2F175jZYH2hncsB3AeNSkBd3HgPREdCZdB8NCZ1E6yyoX4SNxQ4ckj2PBuphZ", + "private": + "xprv3TWsGhc7sgTBvf1sVViZnMS52zDeGeWVLjap4xqkodEK9RY4jGEVgdeKVidZaxxAgVmZn6A24LrNK9xJ5is2J7xiyxExyciMzBXJmt1BRpcPwS7EESbYpT86NsG66jTC1w5Sw9YpkQcgRopDQeixcLZ" + }, + { + "address": + "addr1q97sqt74w5dlgd7mh08pm96svw7g65zzvgrtd5kwy49m04krmna3efj43e808749n4j7faqe72lh9zs2yckkt39jgfkqdku794", + "public": + "xpub6H4R7h8QbPbwy1cnehUDrM8tJumvBUkeQpvcTyhSKBWAUwUZtjbEZBu6H9MbFYttL3vFVGHayGgFyTmTL2CPjmmn9pw9VU2M8s8syBceL4J", + "private": + "xprv3TWsGhc7sgTBwRVgwnRdafMsjYAgbPgK5EEnrkYcQe7UYLq3Vr5J6advnymBntskfFkcQrZHqLSia5mxgdWAFW25oYc8QVGWxAjPGGYvn1iw9SCTkEaUBGDFEBnwG1dBxvZniAkQZUP6Dg8kgwYRDBX" + }, + { + "address": + "addr1qyvgs98lv2624h69nhmwe8px9gu0h0zdnmmlp3hxc0y4qqkrmna3efj43e808749n4j7faqe72lh9zs2yckkt39jgfkqmz4pdc", + "public": + "xpub6H4R7h8QbPbx2zpk5S225PrCV3oTvqaYnqasBKM6yuDpFe6Ca7s2jTd9mDVT9fbZA6Y3vJfpFvNGgtznd2xFhvqMKgw4wcvZjpbRJExpkAo", + "private": + "xprv3TWsGhc7sgTBxcBH6rjPFdKxmvQzdovtiUNqXEBwVNqtpbe4NhAE7Qvzi9JQtJSykHUviVwS5jisGX7SBCSsWVCKLjMLD7D5MM6tSRtfLYitQbPMd9m1SxE6q7mcLbPutnZza4afihbY4ePMnGLyBHZ" + } + ] + }, + { + "private": + "xprv3RzjTMvPajCfNUJNqMP8NWwJukqfzhWQzvdMmFh4qqRUX6JxJiVyqCAT1EydCWSzDTS3mj8kxuZ13cWsmRLJMTCr7nCDTBRK1FJtzLt2NLp259RdEU8keEfSuCZ2ragzxaRTUY6VXgGEFU69mNyyo2A", + "stacking_public": + "xpub6GdnDevGYJDH9n6Bt2JghShWxUHnexcFtTcbHoDnd6hWZpdFzzJsGDT16XGn3KZV4PrqUjvi4ZVr8WNBZkrLuEEhEkLXZUyuBWuUS4bTGFv", + "stacking_private": + "xprv3TPYoNiL28i7p9QQYydkfRF7HtxzEtvx3TQ2cwd5eqeBrcUjNZ7zLzzdwKcDdQ3rHqssf4jLhFanPRZxMA3SKcHeBV1driWtyGofirGZf9og9n9cp5CM8EwsKcDVSrW5RzgWpZsa8XeBHj5Z3WCCzbx", + "account_private": + "xprv3RzjTMvPajCfNUJNqMP8NWwJukqfzhWQzvdMmFh4qqRUX6JxJiVyqCAT1EydCWSzDTS3mj8kxuZ13cWsmRLJMTCr7nCDTBRK1FJtzLt2NLp259RdEU8keEfSuCZ2ragzxaRTUY6VXgGEFU69mNyyo2A", + "account_public": + "xpub6BwjD59hS9agTh8wCxD9o6UfxGsjESsSotAnJBysJkSgn9MVmYdU7mnJKb5kQKvUXCpTwV1JF5Fs85b69kaejZGkjYqEAxCut1UzgWKSKtd", + "change_private": + "xprv3SeziRzfE23h9ZqWCvuz9BFzAkZBCUtfQEbkY8ZrMu8eUNa1HtLJTCaRzqy6LJvk1DhwqW3ErhsNwf94vGLtE3H5VTT7oBHyXfLN6AT1BQUE53Qi5iAobXGzbPctwuUTeeho9KAyqjaWE4Sf3Yx9an5", + "change_public": + "xpub6EAXuMaRJbFBsLKcTquoVenJRrRbHad84t76D1gqA7v4BKQz4mPMgWZ4H8xvheyjKKkyRbrXwi8iJaTec1s4JbhvV7X4SQ8dyw32p2FxPNb", + "addresses": [ + { + "address": + "addr1q8l8f6mkd3ayfm0pjxjza6fsw6gezyu5qhfl2rs6n9d9xpn2kh23527gdmvvg7xs6wk4fqp4duc9t3kuu7nte8t6zeeqha8xp2", + "public": + "xpub6GjiqxLngEvbFsYA6vnemesPXiS9oYqhkL6pbE9CRhj6vdkLGQjWxtXoahGAHJoQNVAhrpJ2SBkZ8CSygGWs31M72yc6eVvcS9duTS6qguR", + "private": + "xprv3TRKB97QxWPscHRoEU8WKX4r7GLUWNiruRkhtvTR3hAKj1ufxPBDmv6q2qcrL4tQDNmWn6yEq2CJmHdbpEv3dgieF1negJXKtMCQKW3uveHZi8RTXCc5xmrES2uLEQ1tMWEehj9Yks4Awt4MSpDMaqc" + }, + { + "address": + "addr1qy8efnltgpxlq0h67wt6y8dyetzjrphuyafylkcnpvra63n2kh23527gdmvvg7xs6wk4fqp4duc9t3kuu7nte8t6zeeqqdnq7z", + "public": + "xpub6GjiqxLngEvbHiUQFu4tZkE8FtsJwS7iQcVfVG2KaXiXvk8Bv4ENtihwqpWNwqea8mtpThSNRrDLuMfwixmeQqTCuuEKHS5rmxVwaGoKisk", + "private": + "xprv3TRKB97QxWPscqCFQjkL2DSwpd3udfZh9ZmkDTeMsaQiBuEA7vaKoe9ym6idujNfiJjtn4qZFtunDAJd3KiCL3bfinbyyCrhN6U92B6hhGmiLF2sRH14a4yH1jQrfddvrawQLuvTrKXMe6HA8RGra9T" + }, + { + "address": + "addr1q9lwh0hc00pzxnstf4k9lfj5d5lg374u47z30skxfwceemn2kh23527gdmvvg7xs6wk4fqp4duc9t3kuu7nte8t6zeeqrxn6ds", + "public": + "xpub6GjiqxLngEvbLECt9fP6Ev8N8zr28dBQoCmfUiJPEU5Lyhoy9GoBn9mMD1GLXcxWCmzxbAf6CUZxVcjQK8AH9gTPMhFoj6G4CTP66aV72uT", + "private": + "xprv3TRKB97QxWPsdaVAGMiDzZBKriTLUPetR8yxPuUBasgFrivhfwz8DoREMavzjLoMqA1FkHR2iHQycKWZ95V4VvDnkSCQkUTTSdPZXvEjU3SDGtc84sFpw3LoFBqHs6CLx4bfNA7vKMJMPffvDh9ZsHi" + }, + { + "address": + "addr1qy5f6gde4jwmlqrzukrcs23750qeee9n225h4v33vrgnggm2kh23527gdmvvg7xs6wk4fqp4duc9t3kuu7nte8t6zeeqp9nm86", + "public": + "xpub6GjiqxLngEvbNj7sY3shdThstubHKzVofniMkETMCBtp1ZbcCPh9btCf3zwaJDQdCLuVbZb8HLgnRPsY1NnHobbHWexEUQHduHwhy3qrmk5", + "private": + "xprv3TRKB97QxWPseKXxrwFGcfiQLHtgzWvyzeGDbS4RTcSxoQskGMbGqx7gwd23RXVca2uSzMfBjhrVHMnAWkFYFk1G9wqvBroMebHcyaiCvGduTmAxmMepCyteyhKxVJ4SiAEsPRUsUJ4uWdV24zjAbhB" + }, + { + "address": + "addr1qxu29y3jz89nfact3kzydmrdzkj6fttt6l5ued3fafd979n2kh23527gdmvvg7xs6wk4fqp4duc9t3kuu7nte8t6zeequ6ktsh", + "public": + "xpub6GjiqxLngEvbSc8GS2aGtkxnRmKRU1o8ua4YVW5xQbKNsdPNknb6BANtFQy7t3n7MoNvJcvbDzK5QihK8aY3h7SH7H5TgGXRZE3VxhcGWXb", + "private": + "xprv3TRKB97QxWPsfUNjvpSyNrku6hi8diVV3u4Z4CjfgvauFLqUVMnspYK8SkuXDWy3rUafMYmF3wmgqcKX6HXi3gvm86sNNjPGjFvCrnbqgMCHb8unVwYv4xsYw9tjjGz3j6sRVdCwfn429uFS5F9X9ZA" + } + ] + }, + { + "private": + "xprv3SEyxMvhiw2cWK5ChsAsdMjm8fnFhu5GJHeFJDm26F1SkTytDZoPasjKtR1uCKDrNpjfHwsmUCpgDxxUg7Dj1xUBzwSxsvNckimSxg1atj3gxDYyf9SM4xrtURiFCLKaSLCzcFCFe3bqYoKDph5H7Tw", + "stacking_public": + "xpub6HFsxkvkDHJ2n3afe6V31eXu29tdmMqBvz3BxGCoCTPhweBdcPAATdUypWg9Z2orYK7BC7TRUiDckKz5DYaLqgUTRBim1RL1mRebUCYDFQ9", + "stacking_private": + "xprv3TaGmjJBxVCJCs5jBsMM14NBwoGBu9MNt8LsqZ7ZrrNmtk1Fz6beHfdrXdKxYAyBh3dpV7myBmNtq5P2a6EmPi4HMCFrxejLuM8DZ351ugkKEDFoP7cRpsz4MfZVTjf71Hv3Jwyqv3PgxrC9T7KdQhS", + "account_private": + "xprv3SEyxMvhiw2cWK5ChsAsdMjm8fnFhu5GJHeFJDm26F1SkTytDZoPasjKtR1uCKDrNpjfHwsmUCpgDxxUg7Dj1xUBzwSxsvNckimSxg1atj3gxDYyf9SM4xrtURiFCLKaSLCzcFCFe3bqYoKDph5H7Tw", + "account_public": + "xpub6CmhTQ7nZXqVuj4U6vge7WV3V6q6Uzv8eEGN8UwYqMmjkQF6DqV214WgfMsMrAwh3J3PC7ApNn75Uv5V132s36YDQwZr8vvWiWCvXgHz7wG", + "change_private": + "xprv3StYHtf1YNjj5vhrmC1H6oPxVDYzQnDYRnFibcT8h1uxDhCMzU899AqwKTn83iKid6GVTzDfSZLJFuUoeTTmRJc2Uk5vUsjhKYPA6f72h3XDVKS3fFXR4zKCHPn138e5snawTfA4pArPDQoBBvVhDHh", + "change_public": + "xpub6Ex8PdgiYKNbks2rhtBtLfTQKnNZFfa4ozNdN2EWSvAiMEQ8mfZXNDLGRs1UFwYgTzrVHM1KVvL5zuaQkMCfoumDSStds4dK5QQmvcXQu1m", + "addresses": [ + { + "address": + "addr1q82ea7cca2ta3jfku96rknplntvq0meslmpm94q8q8g5ltup6ykkmphw80fanfe2rta6wsy6drwvacvvff5xyay2wn8qu7zh63", + "public": + "xpub6GN4JKsN3VsVeHtbYLY4vRgQPQzA4pNctS9dnRgUrnBWeRL9g1ruhXkwWaYA3N1XK8MGhVfhZ2c7x1y7ddRbKkweK6jFhhYk1YwSkqrx6xa", + "private": + "xprv3TJsuNLg83FDG6X5maJyh8tVS8FH9jihnEw8acun5MfVtVAmVRtBkrH8Gb8gYbbvjKgZaR2N5uBAr3eeDwQaT9HxAunwatvkKKZmdbYxjSxSVBtoYqhWnNtcR96Zah8CoF5kt5cJRGfobed4qdS2A4h" + }, + { + "address": + "addr1q9udyvufep0ua0teuzyr3m42yednws2w9s9u29encnncagup6ykkmphw80fanfe2rta6wsy6drwvacvvff5xyay2wn8qfquyr5", + "public": + "xpub6GN4JKsN3VsVhQ6mBQ6fXSB1gQScmf3mW33N4S9m7jFfBEhkyew8PSPptSmNz8CQrxVWwfPgc3sDHWSmqwnHwUJz12FTCcVZqXhrfdeXP3s", + "private": + "xprv3TJsuNLg83FDH242QAWME4FAL6UJiXHG8TCw6bmuscFjDUDHUP1i54QM6bMoeuYNJZr6XHCTVse2eDBknaoYFyy3Bpdg2B8mVQt2HpVc4sP6BmGT8PCwFiWDYbcbYknDBvzo9P3NCkWcRnQoQt68Nnr" + }, + { + "address": + "addr1qyuuqnj9g8x6vcay2gn7cpajyqmepm3r6sxfrysr73equsvp6ykkmphw80fanfe2rta6wsy6drwvacvvff5xyay2wn8q0ju7ve", + "public": + "xpub6GN4JKsN3VsVk2aNKed7YUkcpSHc3cunrjWHhxz5pSYeVNVFY3dKibWaUjcBRhAxhzgQpKq5PpHBif9teCqn27xK9v7TG91NmesZkZwnRMv", + "private": + "xprv3TJsuNLg83FDHoM8BYCRB637PPF7HVoDZt6v7dhDigXxuCQ6BQ83B2Wh1ZANusPPPbDN2X7hHxM3r87WP5F4ofW5wXaywEjLkyLt95MVJMQ2siQmFrf8MTvPXNmHXRoKq7T7MiAwWuZDNGAqoR91Xj8" + }, + { + "address": + "addr1qy2yvf9vhjrppem9zfzmsll4mmef09y5kgq3a8vv89gyfuvp6ykkmphw80fanfe2rta6wsy6drwvacvvff5xyay2wn8qrnpchk", + "public": + "xpub6GN4JKsN3VsVor9ZnCt6f4SBkLMgvJ5yLoCkbWCP7mvvWGxZqcvdcxPwQxjwEQXbBkeTSnqBNh23Gwts9hpXrJowvG5GxewTCHjGkSHkufT", + "private": + "xprv3TJsuNLg83FDJwAjAKAEkPaS3JzJMw1ABgBXVuZaG5RQoviqTtFtj2jHrPBFVsLzoXdF3mF61kM4GNGzGi6FZNkLaozQ1Ck1b2uvjwCZ6dRxKUn4zoG7XwckWYzXuygz2HWWLf4mwiyzPzSDYTpxbkv" + }, + { + "address": + "addr1qxavh0a7hhpedlpytcwr9rakggy8uwyktwt0yu8g5ynwwnup6ykkmphw80fanfe2rta6wsy6drwvacvvff5xyay2wn8qtvf73s", + "public": + "xpub6GN4JKsN3VsVpNGq29s3LKPuAfGYTgPiorYKiBiQXTjUV8rDRFGi6urGomAci7vS3TXxjdETCBNdyn9u5GPb2GERkD9XkHofRBDNfbev8Gy", + "private": + "xprv3TJsuNLg83FDK67moEiNHkBhbFRaDcPPGBatqMY2jDn93Z5bvhxtfik4Cxk7ExKVmdXdcvQ5cGjaWED3J7ACV2QgKF4hzwDYKTJZPkjakAZxdYSg8BWuFVAX2jf42HvmGKURfgNG4eqF1MrAuMgW1wi" + } + ] + }, + { + "private": + "xprv3SHJtREPaJzPQPNZEuM1kqNRYjShiV41XyCmcwAAvzH8u1aG46v2rW2mqzfMWpuPyzyQv7jQPBcjTBvErmcTnGyXf44jwmUzwznLDwuFwahMBxqDNRHXcNkqZiyGHrmXu5YUjGPiKdNJt6Shf2eKnwL", + "stacking_public": + "xpub6FVym3VNYsUdAsrJGfzG2tKyC9rcQ3e2JxtRDw98MqmieyC89XLmSXFntbacuvgcdeZUXYAHBCmjuTJLMb3KpCiokpPmPmK8WoFPaerWxWw", + "stacking_private": + "xprv3T415KZMEjmiRFFNGeXKbWB24HEdVg7abxnfhypzHCFTLdYqSGQmcoKpWBELN987ypGdHh7HqDooww6KUVQrt941v5T1EUErSc2NDjmhgmFaCUZDB7mhnZhk1PQx7NyLebpxJWvJuoMeFTM614omiDA", + "account_private": + "xprv3SHJtREPaJzPQPNZEuM1kqNRYjShiV41XyCmcwAAvzH8u1aG46v2rW2mqzfMWpuPyzyQv7jQPBcjTBvErmcTnGyXf44jwmUzwznLDwuFwahMBxqDNRHXcNkqZiyGHrmXu5YUjGPiKdNJt6Shf2eKnwL", + "account_public": + "xpub6CuXgFn4m4rhJSLrsoFQatyZgckUrKKiNchNy5FNRd8BXB5Yyykswy6G143M8A5VX8y5TS2V7iukJ5gW315b1FDVNWkVe81BJ6CAmiXR8sM", + "change_private": + "xprv3ShJughtNpst2sdVET72Jd9vpeSs5BPd5QgGRYjWRwpsbrPFLk9RXatAfUhZ61fDmNsojoFEWi4G2jAXUTmmfzj6xKhtsNuRrBz3u6wpnvGMJBj2Wow5kFxnbhzintTgtCmm7xrdPbZ94Jm73DUdr2R", + "change_public": + "xpub6EJKe85brGyCec7pypFbbV99LEVJuw2pTgxc4iL8EoYGLEemwwm9AuYmm79uAKTAA8Q64S2gAykQp9qCLh772VruomcTmEg9KbySgnjCvHv", + "addresses": [ + { + "address": + "addr1qyhgk74qvxwdyc07mty2x0qpej87gtk3j6kw84jrpl8n7aetc5u3yat356qfcuf4xhdlgezxswcg4glacl5jvg2lnh0qsylsq7", + "public": + "xpub6G2S4d9LSRCEMjgXk2387EH5d42ommPoAHd2erSP26iLeecCboGHLk5FMhfovbKxX9ai2eEUaPuqazjDfAgLYjchKQG8Lomo7eDm26Z8DRD", + "private": + "xprv3TD3n1p7f8NKZ91nFAppjEUgasCG1ZJu9uxkSh8qUQQrt3nKLiz1f7ayHioxyKHgM1HZcQiyaUKd48FjpRwXR8txgZwyWFRAv3FfZc2g3NtqpQvnBKU69dqmYaGQLcFXyrSeppTxCb15xcCLVHHe7iC" + }, + { + "address": + "addr1q9nyu9lgpqg8zfwtch2nqrjax8ngrpw6emstnyxzqryusk3tc5u3yat356qfcuf4xhdlgezxswcg4glacl5jvg2lnh0q29hd37", + "public": + "xpub6G2S4d9LSRCEPqpjvzXLJjqfDvjdG95FRdRBFTRJTrHk1TGKaeUnj8zUbHXxjUadXF9QxyFfSQjyXfkwKjyeL5JTrnMmGSMAbjrEebFn3oz", + "private": + "xprv3TD3n1p7f8NKZmJELwDtCfKrBQnBdEf9KbABqkKDg3jrNXu4N55SqmpP8gsd76m8fC1SMhybrxWVpW2q8eUj49aRTCVXve1Q76MaxrAovmqnATo4HQpQqKd48Aju7N2fzNexDvfrXpgC64dTZYFmEcF" + }, + { + "address": + "addr1qy4z7sr8drw9gwv77ne5vvevlwmcqv48m8n5c7ha8xtdm5ftc5u3yat356qfcuf4xhdlgezxswcg4glacl5jvg2lnh0q0mn6cx", + "public": + "xpub6G2S4d9LSRCERxix1Q3iYe9kv2LGMr9momFJxDFYd6S6EgVqkycXMYYvDvw9Tu9SpwT1XwunUn6GmFdniQrtnM1tskPm69bScC73F1mQbAm", + "private": + "xprv3TD3n1p7f8NKaPokWgkx9baiWSKs1gNhQhy4TqYejagpyPZPw7zbciXUvw14dHeytBpdHD48cefgoaVD1BiwAm8Yo3Lq6RJL4cgVk1X2hwfw7UANP1rzF3BWBvSNPz1aNC8U4qJbTz7AnxyvvGtSRB8" + }, + { + "address": + "addr1qyt4q02smyv0gl84ltll4ln9w2pmjqesds29thllurj6ecptc5u3yat356qfcuf4xhdlgezxswcg4glacl5jvg2lnh0q67hv5v", + "public": + "xpub6G2S4d9LSRCEVi7BBNrRoLTx5wzozAqL8rtWVALhbrJNs3bZU88mG35erA88XTZjogERWokrCZD4HAnoBjmG6PBuJwcRT4e2XpAQK1Dafew", + "private": + "xprv3TD3n1p7f8NKbWPBD2gSy8xDKdxFU1uvaSseY8UiWePr9xwNwFJ1CJhtk1YcZ5yTjwNjH1V3e3EzGPaeEqYfwUwsNCxuXy3pK4C3VjTfdKEFwrYYxW5AuKNFd17i2wC8dMquroFVsGFxxCvuFRjme6P" + }, + { + "address": + "addr1q8nlss85qs9d0vlxyltre7wrh2xsd6z9y3545l8j05eypsftc5u3yat356qfcuf4xhdlgezxswcg4glacl5jvg2lnh0qdclxe9", + "public": + "xpub6G2S4d9LSRCEZ3PCX6L9R4Vam3gGQQbU3hnXcjQcqife5DaWRAFYN1LSK66kYv7jzCNhJFrfXYcjPFhSGW9g2qQrEXvjQufG71w7AkgK5fT", + "private": + "xprv3TD3n1p7f8NKcVoFQiQfkwP4TFQYDJM9K5SoPyjmzMNmPTHeiFEActaFCa2eAYbTLarx6x2iiUjp1FWLRU9GGvmDvSQWxNNMCE46zoyAYKGs3ryJrjZcs2t9rxPnzLRwKJo2jxStMWjQL2a73nBtuwZ" + } + ] + }, + { + "private": + "xprv3SMDG1fFA5V6PojZFAbdExJ1kn5MAPwjTFo1QTg4STZZSJ9YJHYgPMKvfF13GbxH3yKXzfnvjykxygYfoSNbUwDPRNP2XrwCJfTUcS1Do2FBYF2c9YXDLSiE7TKC8rZENaJf4g29hNyGzkE7ERkHmuM", + "stacking_public": + "xpub6GJEk2u4nbm7xd4L8BtKQy2pzh6r71Y3iw2yzZj8XGPur2zNow2cb39rReUmAW3oWteSSSLmmfUJh6XNC1zMf7aLPb3xvBzQWNJg3jXXvET", + "stacking_private": + "xprv3THk62xEWq6bVRkXT4Lp6tuE7whr4nhnHLhXahKe5wppAHr8QWMMS4rbLnXvBvyZjE8srunaeEv85kCZ4TrMxYD7jNXkTifwzbEjdbvFbGXLPyb2kBg43QnB2BXhFRNkhcGrJ1X6TCaYKjXA4BEPXEM", + "account_private": + "xprv3SMDG1fFA5V6PojZFAbdExJ1kn5MAPwjTFo1QTg4STZZSJ9YJHYgPMKvfF13GbxH3yKXzfnvjykxygYfoSNbUwDPRNP2XrwCJfTUcS1Do2FBYF2c9YXDLSiE7TKC8rZENaJf4g29hNyGzkE7ERkHmuM", + "account_public": + "xpub6D8fiQb5jkmirKb1mkKb8kzbiKWPzashECveSFWnqXhdTFCbdte3rYnQnoBkNjK4H9WwfTrcjJ1Y3eE6Fqd9zmZZHQ12dbHP3pxSWTvw2v1", + "change_private": + "xprv3SVy2WtkNA1p6vVzgzZsPLbSoqs94DyUsCFnweLnvaMw47CYWzYEHoaH1KfJRVyepeJija8TZxCQi7VfVehqeqjFkAmtoAh9b4vjhbS3Z8NQjpw5jSEP1eN9Euup1nmZmDSPg3mdskkZM2nmYuvimrF", + "change_public": + "xpub6De91e9r4DrLuSKpBXGbF4aV7eHQzY8Ut2cAK6gmQZVDh8pqJGVsP8Rdzv4Dt8XApiqwwxvx8vmgDKyu6JoSx1twXC5XihhkaQhdLGNphPK", + "addresses": [ + { + "address": + "addr1q8a4xd55g2ezf4jrwnffphpwz0uewat6cr57wgamw57ryfyw2h5rxxhvx72scws2kj5zraaa95xt40shgzdm9f7t9ngs7wac7a", + "public": + "xpub6GYuw5JheZ8P217e1RJVGAn9L3ax9mwC2X8k4ij1B9569iRuUdJd3S3puNbcE4kAVBMXypCSDfJjGDmH3kVEMymdNhRciaBREZqW1j37R9U", + "private": + "xprv3TN6whjbri7B71xjGwKxic84JeeZ69UXSb74ANAi9gdfXXgsMw6Mq1rXZWim8n8Bs69Dmgi2rxx9eLDMfn2bwq6XxhLQSAL96GQdW3NcaViqi1h9TSPVQTBiVyU9tHvBbFsx5Ksjmw4VrN3aemZY1mn" + }, + { + "address": + "addr1qy44a4zd3p6ulke6ctdjfrtwtq9c6fugxjre0t26zawckuyw2h5rxxhvx72scws2kj5zraaa95xt40shgzdm9f7t9ngspp05mp", + "public": + "xpub6GYuw5JheZ8P3tT1VxjaNcXVsjJT67WK36gjeTbJWmb9HeYLf1ryCMXncjb7EtTmhKyR9WdX89okcznm48orXHaW7PkMEQXDZKDTPFTmj9C", + "private": + "xprv3TN6whjbri7B7aSWYetbXDCAfqvZc1ZAaXvXp6sXMwP6LR7KRcKjXXsKvAoB9sr19X6X1rwJGeufZGSs1rEdFKk9CBQyCutrhBfq2V567vkQQpHxvgshvL4EQK78Guh9WcF6Vd5V5yuUdtUY37UEQSK" + }, + { + "address": + "addr1q9pwn0tvalqarhv50hruxfjlzef825zcc6h6nl9dy2d0a45w2h5rxxhvx72scws2kj5zraaa95xt40shgzdm9f7t9ngsrpnyys", + "public": + "xpub6GYuw5JheZ8P7X4m9hDRBGBrChK188SM5guEg6mxazGKjTzM5mPu98EortSiHk6fBhjUHZ7W9tkQptyf8HY73ZHTFixgcnDk5FbnJ3SBFcn", + "private": + "xprv3TN6whjbri7B8f1M4eqC3nEFjbX9UvwjYgWxJSJJnW2PPv8DhVhRHa6yAz6WbLKvxRuhN7aSRfFuhSZrdgtQ5PKqYw6a8csSXhiLggyRtYWpTCxpq8uWhKkJnXtQh66araRD3Th9NrSEZFRdfivmbDH" + }, + { + "address": + "addr1q8h479tns77ll5ke8t2pp2tdewehwwt3s2xywa9rxsxyjyvw2h5rxxhvx72scws2kj5zraaa95xt40shgzdm9f7t9ngsxk2m92", + "public": + "xpub6GYuw5JheZ8P9q4vs8iywtr774KYGf4GXn522pDywbBQN8cv8btZWq5qf61dLjZgCsMEYdZYm1WS5ncXamVG14FBq4h6Z7hz22eigV1WkBi", + "private": + "xprv3TN6whjbri7B9LpAPhBjkg1Lha6ipX8FjxfbFBYZyvjze76BVtKH7AqgQqbREHZoqxgxznorCEhFHWdRqjoY8GhCm5EhY5F7MzjB764nY6SYvnL2pLRdhzySVmttGPUwVTFg8PeVuu5DFymbFzDTWdU" + }, + { + "address": + "addr1q824s7kch4q0hgzwufgfd7qyu7606ajj752r79hvxvhw8k5w2h5rxxhvx72scws2kj5zraaa95xt40shgzdm9f7t9ngspe5uw5", + "public": + "xpub6GYuw5JheZ8PBGjcYe299Rvtbzu3vdL3XCWfstR5bcVk1PZLqkSJMWoX5oSRzSdG7Hmp9x5SCiqoPcAKk8vqfbkm7f9hAkudjnz9Mg3AU1C", + "private": + "xprv3TN6whjbri7B9mfiCBUdkn5p4bfqknj4qgxCwtcVFfkZTBG2ScxWdiPApF9rk4dCwBxZPVCfRBctKK2mNAGETCERp2xnVwycE65SFGECyZGsBntGgGAqJw8yHMYpK6N1QvHs4sAXhH1jhjNryguy9zq" + } + ] + }, + { + "private": + "xprv3S7VMaMFBGCtz73J8QcTB2jLPkegfGUQ41roMXHZcx4BP9VMsXSapALUbpkrYxH2cynZmK5vF1iSjcquwHZFUZHPzZPdc6WJvewWrWn2J6anRLNBmGN12GEgtW7jdffKHwQHUPkCiGaLpo8WFkQoeSv", + "stacking_public": + "xpub6G45WkXbEmna2Pv7imPEwxADsQ6PJnVo2HMqMbMBRU71wsHUTUe8VPp5AWmuQTYjj7tGGciMXuPbZu6qbEEaDA4SFDch3xoJBDsYNkwVUkL", + "stacking_private": + "xprv3TDY8b4n7X2rAuVDof9pENr77cSCvS89Xt3CNY2YtUiDUsczLu1sjCafDcDYdVWyyWbj7oaVSCCt33iXoqKy7E7ijxgesDjYYanLLbsZow9rzirHc9DiUXYyDPhr6agBJ5PipUe84rFX9Fghh4v9Zjc", + "account_private": + "xprv3S7VMaMFBGCtz73J8QcTB2jLPkegfGUQ41roMXHZcx4BP9VMsXSapALUbpkrYxH2cynZmK5vF1iSjcquwHZFUZHPzZPdc6WJvewWrWn2J6anRLNBmGN12GEgtW7jdffKHwQHUPkCiGaLpo8WFkQoeSv", + "account_public": + "xpub6CLUTo2hUmh4EPBcbQhNSssuXsNe97sDdBpRjek3Y628fx8DZgRkdrcuooc1jfA9SvM4FmnUrSov4caVgxowTNtZm9BnFfjrQyo9wa6Mog2", + "change_private": + "xprv3StF6muiUknfZyKgkKAdpZqH7uB61A81rJ9AdtJcLRwjXSL8sQ4hrK9rh9oai7AbCGSana1DVowN2tGUdX2VZd1FGS4Q63wubKRcsMeZCDBhb3YoJakYXhg7a1D4PoiA6gX1mKUr1cnAsxNH8H98ES7", + "change_public": + "xpub6Ew8X3JkVs6rEhm9Z2m31stwMmJhp7KEhrSfdjQwq37HBaeAGxkmFfPg6yAnYUuibgDa4GzVYRccsbrKmqezgyrpkxjm3bWrhzktzywm8bn", + "addresses": [ + { + "address": + "addr1q9hkc0fjc4aqwwnevjs77hy3hvg2qpc4a4nyg6v7u5phnu6eqc38nht58qkdjgsd7pw5fwng3amr3dzjh9szzc850xfsdwat87", + "public": + "xpub6GzQwdJ3LwQrnFp543VCz713B9Y3FfoQyJW4t9vycMZuKPGeR45knah8x8c8evKY6sKf1zT9PMp1oVTdwATwQkv3nBn3EdPuCSpXDR52Shg", + "private": + "xprv3TVgJSgujHEpig4vS9qBNa6xjp6xNWMcZAYt76RgkszDhwD2bsB1sFhKbtjFt2Td3ZmcrtHA4fDDCg4QAJn8BNaVJgSYqyhaYN3SBWB5DcNWEaPncAGFY5YoK6ar1LEyEHzKVnT7fMxKX1oqYfjz7Ce" + }, + { + "address": + "addr1q8k5x7rgh9w2qs8xym4yrdadr0k8yc9stw22fuy9csjntnjeqc38nht58qkdjgsd7pw5fwng3amr3dzjh9szzc850xfsmnhc0t", + "public": + "xpub6GzQwdJ3LwQrp86xszoFa4saGiUQoHJndX6EFLsY6nVSxBR7BmgPxWDRcTdV1it5MLUeWyNjbX3JNoNXzvRuKu4Jav6LA69XVUtNsw3LrWY", + "private": + "xprv3TVgJSgujHEpjEEjiCk6EadqioQWDgk35LxGSJMNc74W4Uw462iNA6SU2V38NQWkbyGe5PiUgwfomr8NJiW77cj2kiNEz4ktF8CZcKCnErsau84gLNTKTGXJeJD8avCbmiesUWKTde511RYWF9TGfrB" + }, + { + "address": + "addr1qyftguv0x79y2y22saj52a465ly620ry9emls7frmfm0edzeqc38nht58qkdjgsd7pw5fwng3amr3dzjh9szzc850xfszru35g", + "public": + "xpub6GzQwdJ3LwQrtjQ9CLwXga4Wy2cuhBWYt6jJR9V8U6zMwnHjG5pFyVvwGxwCnk3uhuEWwNbFP9J1EjApNSu3RCY7a2J7tFUPaiunCaz3tBQ", + "private": + "xprv3TVgJSgujHEpkbe9FHrbwuXxPBCm6pbrp5pbF4AHWCU4Z9m6avuXLwdTQ1YeXSFv9C1BTbk1WvEW3C8EVzqem6pyGqYD6vp1Frs3xdvqsqGGxUhWeDWzzKTe2m9D8Q7mNmU7Dr6Zi33iatMVs7An45S" + }, + { + "address": + "addr1q8657fwa8r0angwfz93wvhs4e0m538az9sr34wv5eu0y6d6eqc38nht58qkdjgsd7pw5fwng3amr3dzjh9szzc850xfs8s5v7j", + "public": + "xpub6GzQwdJ3LwQrvhAABxu9JgELseH9a7W4q1wHe4mUiowe1yFXJSy12xubhe2Wyrp5SfZhqsWj9mg5vgi1EUGPyBaqfaDBaeHRHdWSFAFoi5w", + "private": + "xprv3TVgJSgujHEpmBSASE2C2DYeb2P4x3h7NW6azTYmgPoRHfbim8Murw6Xy6t7rjXcKjP8HJz29SPSio4W2SqLVB7GAke4hGf1a8XBiy6B3VWSa6rvWLXzkpQzFUPgUoKETaSL9jPexsB8Lztb14mc3ZV" + }, + { + "address": + "addr1q8ppjcs2d9g3ceq8m0pc50anrhnsfsa4cxgzz4v6elfkcjjeqc38nht58qkdjgsd7pw5fwng3amr3dzjh9szzc850xfsufnw3l", + "public": + "xpub6GzQwdJ3LwQryDPRCv3Zh5dNyHiuSjmp2QNZrUwsf1tfSpCQZbdmKrU7MYFHB6tYEm2oYf8sfDjs2WodgrrYJU1SKiNePv8EiycYaYxSAAo", + "private": + "xprv3TVgJSgujHEpmvsd8BSVyVQCgKQxruJL2GBY1BweqmNAQMLd1gpsP93NN2i7VWF3JMuFVrPFrcmVov91exysysKHDJstSkeyGmJdrfGfbQSSr8G8a2hHXCbWdhyeN8E3DbamPGSoApfjmtvZck1qdxL" + } + ] + }, + { + "private": + "xprv3RvNUqQCAQx6V8U2RTrCh1vb1smvY13rb2pbcUn9zjQWTDkFkcEGyEMqVscuWjxxjx4JWC6vM5SqUTgnRFLwYUa3aidSSGdPkYWoMdDcHfhHgMe1vBsWcitpdhd94NpKZD6XC2QEmgC4BtNB8a3JdeF", + "stacking_public": + "xpub6FXzbTGFvcR6sWqN7naKMV61dqaJmj9CkPMSooghSVy1W1PHeRZ2oyUaeuAYbLTM2jsieNKpTqfRwiysU6NVSYTCDN2yBHCug66XRRxWyrx", + "stacking_private": + "xprv3T4bnLPAFhHkLJC8UQayBUP7UDUVHw2gBFP3MSKS6nzpiPPstAJsMGVKRAgj7K2VWrhTaFzwuUrNwYMxxhiwE2dTpJG2ujryZhHByypGEEFHv1CsrSsabQsH6EMFNd5SkVUNznHcAe9LCEkaYxLmK4S", + "account_private": + "xprv3RvNUqQCAQx6V8U2RTrCh1vb1smvY13rb2pbcUn9zjQWTDkFkcEGyEMqVscuWjxxjx4JWC6vM5SqUTgnRFLwYUa3aidSSGdPkYWoMdDcHfhHgMe1vBsWcitpdhd94NpKZD6XC2QEmgC4BtNB8a3JdeF", + "account_public": + "xpub6Bh3cwqTkC3Zs9kMrG7G51wKo9Pab2Sriiv65hVnFoKpzwpV79ztGntVcXc4thBbsvAZLYeQgdYDvDavaJtcMgci72Gt8vUtgmXVraKDYoY", + "change_private": + "xprv3SdN43M7AD6LsZPe9ymsbDnRXPeq85ZqUugBpckX91hTdgsxP4VihEiyTSK5oarBrUq5vqYFDeefNgzaGTgquuADggPtZZQwLHrfQhxLt3dSNdWQ3ryq9nFz4fSqXXgDF67TkZm276Af7jstL93BR9R", + "change_public": + "xpub6E53F44x3ipe9p5SfYNeDjUS1Zm4fW2biB91GYU5YELKf6DeLatDKiyYnsoSm1LEBiA2LSTRLwFDvRemKK18ypdGWDKLfmjmtZEFWrBXQxV", + "addresses": [ + { + "address": + "addr1qyerzkj3fq90gt3e0dfyy68sphcm8en6qst8dshms3tv3maxtcuj77mta5429kg5hf24v6p8450jj6slulk20r2ell3s22kvjs", + "public": + "xpub6Gx855ekZF2hMJNwUfrA49zSCVUJ98kb5X3x5quYirjtbB6vMJZSYJUqjmpUzys5JvhDRuZ3ZFoVYTautPKurYJPCzbPzBPx2KqL4uEmPZP", + "private": + "xprv3TUzq7zxNt5HJ7CrDnsHc2S1jJUECwisY9geUxCACEQ6Mk5e4TfsUobMYBajKVpdh17cmFQPmigcbVJNY6uBmbihcoaQuhjkMGxGjfaNigaa9Qk7r4V2N4A24VuE1oMvH5YNgtuBRmgRvcJ8TXVUtuy" + }, + { + "address": + "addr1q8yr4fljhd2u4vr83427y0auaezvk9rh0awd2d5xf4qq4r9xtcuj77mta5429kg5hf24v6p8450jj6slulk20r2ell3s7fhl5n", + "public": + "xpub6Gx855ekZF2hN6ZE6f162KBJUKQLpLCV9XoXFbnwxyZGRBXxgqKhKZa8WGSCGM6D5MPq25CrArQfTsgAUDiBDSTifTPEzdYixzFFNh1Bwvk", + "private": + "xprv3TUzq7zxNt5HJLvU2NVHueDe84bxGN3R97ec8MoAWiVEUtjVVcHSmB9yUCXDLHrUkZoFnmFz2ZkX3TKEgMu9fQ9fJNhkRkHXpjEVMsufNSScSGtPho36TeXCFfGtR79sjondkSz7QhccY5HSX7gHjH4" + }, + { + "address": + "addr1qx6q8tac8c4njmw36vl5ev592yx033heu4cd3a3uqwfc0k4xtcuj77mta5429kg5hf24v6p8450jj6slulk20r2ell3shjvrfj", + "public": + "xpub6Gx855ekZF2hSQniA6CQSHUC8Xp4FHNB9Jd3gGqbYLrHmxPwDUiGnFnDWL6RyXg2sCY34BXkRWtRBsten6ZtVQStLFTCFHz6tsL98hyEXV3", + "private": + "xprv3TUzq7zxNt5HKdFsXbSP1y6poEPZvhF6xHjYvt5GXeiKwxnXbzUeJNUjonykB7KqZ5DxViELKNznZoHMZ6obCemFFzYsMNEWWp8gEs7sEKSz6Gjhj69wrQvFKrU7QDTysjz3NQDkNWieqmpaYWCjkPs" + }, + { + "address": + "addr1q8s99n45my2welyk6vy962a2uywgpe86yzkf668uk7ukll9xtcuj77mta5429kg5hf24v6p8450jj6slulk20r2ell3sasvk4g", + "public": + "xpub6Gx855ekZF2hVAh8C9n6pVNboqze6wPa3Z7Jgx1UQ4jhrdBJM6cF1zrqq7iDZt8FTCQmSTKBoq7YrsUP5HeeLcdp4r9rMvbmia5B6hHRTHy", + "private": + "xprv3TUzq7zxNt5HLSkwy7kqji89W4omtJGQdkMFyW2YpUT4b84rwNiRLmb6Ahaew3Bo6tVj7reoLBFoTi8dAcreTyxq41Czjtkxyt33e6PDfXVWNQHaUgVJT5DLFX76dYwVLsv9y5qpPnUEirzYd66B9ZQ" + }, + { + "address": + "addr1q88fgxjfqdwantpmywxwat704m96tzqrvj8rvxv6rjt9yaaxtcuj77mta5429kg5hf24v6p8450jj6slulk20r2ell3sqfhvcc", + "public": + "xpub6Gx855ekZF2hXoY8NsVbZ4nPYKeA5A8WYeyLRRdR7M3VTo86wopAGoxjGE1Yud6nqRSw9FqiVNhrtp2a9cj5N9BFCD5H3hntfqXxH3tHm5x", + "private": + "xprv3TUzq7zxNt5HMEAQRA3yHx4kqkyG2nWLjYADHXEeUqBcf1R3e1zVpcaHfDcd7H5VNCnQu6PE7exMiFFRbbUKaCbhvNDiwkRJ6YaABXhouY7knzTfjJLfyRoc3UtFwKda3Bv8hVMnnLQpTyxa1XVAoDr" + } + ] + }, + { + "private": + "xprv3RzwZwgec88J5KpvkyHv3KaiJ8tTTsxUqRW6ocgFk8AnucodX57f1p4X1V18X3NkvV3aB8WvkhasQHwuVik1W3gxHBrFCG1BjiWxkexGwpJRDZdNoRKqx5zHHC8SxpNJt2dZAhW7xSp4Z64Pjf1mdjN", + "stacking_public": + "xpub6H3rKLhn6a6fKPSTPKjpg78afT2SkuoFV1xqAFt9WW4vhaU75zecEsBt1bMho1WYwrWbGFRXSfiAivaFm6Q3Cu6v4aYKHGo6wJ9uk5ZGXB4", + "stacking_private": + "xprv3TWhXaqnFmM2Ebv5oVSNMvUahbvyShr26KWnQRJQjpBHPidZnTZKmTpUc1m9jhtHL1PKECDauz9cR7a3y2b3mmjZoofB79VdBHHZBM1fjdhG8293EoiQ3WFyQN5p3kRQiZ1EKW1ya2VL5uGpL2HuBNr", + "account_private": + "xprv3RzwZwgec88J5KpvkyHv3KaiJ8tTTsxUqRW6ocgFk8AnucodX57f1p4X1V18X3NkvV3aB8WvkhasQHwuVik1W3gxHBrFCG1BjiWxkexGwpJRDZdNoRKqx5zHHC8SxpNJt2dZAhW7xSp4Z64Pjf1mdjN", + "account_public": + "xpub6BxRzB5fnNj3Qk8jZ2P3Ksoq2KqTTB5kYBpJHYJhX6tSYjBHnpzjX4z9gbbcRcVCf3ucuVee5UfxMLjD3C69NJHVhMxiP6ctkMV7rzeHqu3", + "change_private": + "xprv3SUcroKHkwGZ87KMSHTKi7VpqCpi9jABjhKVZ31cVzvbKcdmXaJfZKWC8oUNVywCWH5Dk8pEfLpbuEgUFmdzesTgDwXHfQnZKh4p7LK675xgTtnd7tCaVnrzbkq9GbFfZgMqGN17fpSv9qXG1PxpEaC", + "change_public": + "xpub6DZbsnmum979fyJiWkUZxRv6bWMF5WY1v6NPqYFHEYWTMq6ay2rD5ecCCfpCc8DrDi6bJudTiAmsx6bnQd8nzHThjM6avE4m3oCer39M1Mv", + "addresses": [ + { + "address": + "addr1qx9e9y5f7suhcwh66sy4y6qp652wp8xlz72a6pgryfxfnjscga29x5g4a7eadt437dgecvyzt0mln29tfcjudan6m0pq3um5s8", + "public": + "xpub6GN46kHzQnjUABT8du8iN9rra9nfE37W4AePPVjD8WV3kvXKSqZtUGBdNQRAbnCUuE59cdZh7T4sNedG1Wad8AmEVGKfBuCjeKTHc59juVR", + "private": + "xprv3TJsqvqhbApYo1r4X3tGyd2rhwgrB7fHX7DFaR64EQT9ZpcVqSJ4tQGbFicHBzV8YNAippNbZMSDC9tYpjzvwuiogez6Gaipr34yS949caUj3qSMsKnL2UYmvWRf3G5hC2zWSn8SVjfQY4pnwH2tGno" + }, + { + "address": + "addr1q8gcy9cknw6hgjrr98hdarh9fz2rj0ky2arx8wf6pj0jvjqcga29x5g4a7eadt437dgecvyzt0mln29tfcjudan6m0pqk9dn87", + "public": + "xpub6GN46kHzQnjUDHosjCRZEHE9d6dhEN4wF6yR8cANRjkaAFAdyQCsq1E46vP8LnJSs86mrRamAsp63MdFxPgvVm9UsX8aRYPJhDJMWrNpyqy", + "private": + "xprv3TJsqvqhbApYowRYvYYcqKShNwgZVfUYAww2xz6qnsr4Ey4Pnje7yK3JEAVjCXJPQPKxqsZzoLQ83E1kscwbLSL3RGc3SAheX6X8jK2aa6UUSeMjLmJk9jku7gbtJ8YrBHG9bkJPyqK2r7vnHD3QMcN" + }, + { + "address": + "addr1qyz2uhua2fmqcgsqzza4wgtjcw7vqmt29nhvd74ju0t4krqcga29x5g4a7eadt437dgecvyzt0mln29tfcjudan6m0pqw59gx8", + "public": + "xpub6GN46kHzQnjUGYFxpmkDHs9ZY2mUSCB8zG38P7TbiEjkB8iwSADJaBhv6G9Y5Fcn2HHTWvNuPxe6q91ER2unPwywomJwhLz4sqcqwspqMTe", + "private": + "xprv3TJsqvqhbApYpuQTxG8NtnrQuc5N9HxTXVS5cywc9hSYmLT62sNYheKX3fwWec4Y6Xt3mDWeRoLQZTbZuvCMkorrrFWDqGYJ3Mu4CkA5d7UA84Ck7L7JYiDtfkwedAQQsvZBd4sVnCw2vPHjN1heJ2m" + }, + { + "address": + "addr1qy57hd6t9uham068ry8yx2448txct4j0aganexzq0s440rqcga29x5g4a7eadt437dgecvyzt0mln29tfcjudan6m0pqmqn7uh", + "public": + "xpub6GN46kHzQnjUJ2GnYYAjbPZXXCYSAvcXhoMa2VVaGWDLeZ5rTRfSMAy4TzL85vHoTEJwvU21eEb6bziKenBPhmLKGhKwmxBS2c26jA1GvNp", + "private": + "xprv3TJsqvqhbApYqLxTNLK1Woycr1qf2TWXQLNNuC2msmMmbVaxXEGRJBMnNPt4KzDgURDe46qHpeChtG6dkMp2T7BKBUBSSTpcp38x59MPeZrtG6XM1RWerLoH5YWLgFQXEPtwQv3FXaSwAZu7GebbGL8" + }, + { + "address": + "addr1q92p9f2daqev5yzc8w7una76rwx64cvfs0zv6lmquz7w7kgcga29x5g4a7eadt437dgecvyzt0mln29tfcjudan6m0pqmpp3sm", + "public": + "xpub6GN46kHzQnjULDo9aSRTovnMYbFKR7ZNwmRZZZcnK6R9NtjzhBDmURVLWcvkTmRockeuMYSvyKMtxKiMUsXjN5hqbEpQUCJ9ZVrpWf57apQ", + "private": + "xprv3TJsqvqhbApYqzqdjHsVfgi3T3bcapRFNbbpAqFqHurtGS6K9v2VnKAdxbkQbMdsoF81k9FAsNJRKMZe4iAS1MQVNtKVw2iMFZy5AmyBPd6QopUJFssDN8ZH115ezbBkg7E3oxzzWaqbZKqTMfvs5Si" + } + ] + }, + { + "private": + "xprv3S1XnjcBAAWyRocdcvHKYPYZ8aSjDwqw9pNitSFtWgiUQ4KM67WFBGuv2KL6tPRpyQdiwpNwCnJHgnx7tYxNcfnWmeKS9Y913NrK5ikF3rtCBnbxarfUcZdgEovgdLerGgCS5RcCWVFsz4dueETZhWF", + "stacking_public": + "xpub6Gmo67MuGwYPjBKognZxwJxgfMbnopxTVT2sHUNtQ5m5n1TvFJcbnjnXwT4Scuci1UmxcALFhW64B1yt9FU23Uv8LktCAmPEiZqNRqrEMbu", + "stacking_private": + "xprv3TRvtu1ikTFnvQXhgP1n6M7hiK6PCSDj6QNBaZQ5CzELXvdBmkzcmW352erc7YDLwfwwft9BodsSNozDyajqXkVUedQnDBZ5kPmbLfRTUUEmZFuKNxCa8P19HFwMu6ZZaHm9ADbavCEV7tjy1Y6JKpk", + "account_private": + "xprv3S1XnjcBAAWyRocdcvHKYPYZ8aSjDwqw9pNitSFtWgiUQ4KM67WFBGuv2KL6tPRpyQdiwpNwCnJHgnx7tYxNcfnWmeKS9Y913NrK5ikF3rtCBnbxarfUcZdgEovgdLerGgCS5RcCWVFsz4dueETZhWF", + "account_public": + "xpub6BzRBaZ53ZD12w25hp6NTdz7ymuFfjtod1K3YHKUPA5W73WFVuuvGK5dGvKhCvCVJt7sgfNDkjddv1rNvV6SuPXrhgakyvxdPngti3j6adj", + "change_private": + "xprv3Sh3MuwaHiqkVRurGBMDswZsak2RwxoLidiuA1rV8c4TGrksEzdikvsJJ7tjjnDzFkGD9Q1G3LTkk1TGrKU1AYo37ErEKjzFKN83o8CqpDMbveUaXyxzRteXEdCbw7kdqZsfnSY1N7aeN73ogtUWHbh", + "change_public": + "xpub6EHRJVHJ74EHpWmfeTFdntWn86fVvFQVCY2kFDgQVJ8jNjzbN188g3QbW3HjpMdmXAX6KcyAFHhUUkZPZPFMZA4H9GCSLsWKMTb5yCSztwb", + "addresses": [ + { + "address": + "addr1q8auh8kedtsmdymldjzl639qecp5lx5cyzmdve8dwlu2ffyuv0a709c93hfg0cyunv9gy6enu47zzkm34wf7cfsz89kqch96mn", + "public": + "xpub6GV6EQGhEMt8xaq25VY2sBXcNKRdadM1qxwUQzjxEYMfdcx9beJR294a2u2WhktgZNb4LvuSsxadY1efVy5QMMKioV3GGphsLLQQFvb4WDU", + "private": + "xprv3TLy5sxUQFUQzH2iuixyZf2AE4r8TvN32wJJZdperXyNLpDEbo9dEsquvwAYU3m6hQHRkxT1me4vGYbh7rJVd5doa9eWbaKeChqQFmytenUL1YxATQZrDjtvJoc7xWB9nhozXUhzruGMHkh3RdbvYAy" + }, + { + "address": + "addr1q95s8f6njd438dj2s9g5tl563mved86fz32sq3k8hxcgdfyuv0a709c93hfg0cyunv9gy6enu47zzkm34wf7cfsz89kqdedd8e", + "public": + "xpub6GV6EQGhEMt8yzjTuVZQCNTB7h8nwXDx8QwzjseaHzqL4tqcQiYYrBxt2PuU6cfYp66J4vkvi6ZiR3vxEqEdNZVYUZKC8RbFttwcYLYqovu", + "private": + "xprv3TLy5sxUQFUQzhMuBDPZEiorNR9USCMJmhtdmwdZXDTt2iWAuuAKPNJ15GrWJG96NkEWVPziitW3BwuYZJUVA3LzGXpVi3HB7kqKTAeBXs7jE9EugZZDSgBgemLeQCcLq7976HVHHmYLC3xEYNmaaLS" + }, + { + "address": + "addr1qxcadcqc7wm4d7kndnrt6nwkmu9szz592fve0ujh2sfzlmuuv0a709c93hfg0cyunv9gy6enu47zzkm34wf7cfsz89kq67j74q", + "public": + "xpub6GV6EQGhEMt93k6TxFqR9a4n4D8mGKeEUaWsWTXewimwyBj46qd1NnaJqEiZJMM1kzc1gf2vVxFPoR1BhU87gkdSFdYGdg11G2jdf3JTj2t", + "private": + "xprv3TLy5sxUQFUR1ovxk7VeZT7SZ8aabUdjAuCEWxtnh3gpJvUyNwcWGQdVuVNuX7LnCvjJevEcTmnbmfSeEQSjsTvfeGMLagixupRbeHY2hCFdAgbeQL7zpApssLTNDyxqh8W1izuKhF4uUSnRahD5AvR" + }, + { + "address": + "addr1q8cs64ykranl4q5z6rtmnyn5dksxstftpp94wqgg4tyhemvuv0a709c93hfg0cyunv9gy6enu47zzkm34wf7cfsz89kqy6venp", + "public": + "xpub6GV6EQGhEMt96XS7R7gdUYzmdmQCsyyLEZQ1qqYcPwFXKMMGHzrnqUHXrjhTyypAA7sTw827LqU4MM4CxAiWeaUierEMWAPnBtSkT8UZHJb", + "private": + "xprv3TLy5sxUQFUR2drmEGwu1UytGUhEhrUkfNuWPhCz9YLCoN7zH181eC4c6AZbaGjvGWgxbCXZ5zU56jiUU32MidnA8g1bwHvVW5kZdJ2ZG7EhTwAWUHMR5Bc1QTSiVPBHLbSWhif6DF5MzdECoAbF8jH" + }, + { + "address": + "addr1q9axntqmgpmtsp4ynkzl80qsjzl9zuzk0cjjx8hepxwx9u5uv0a709c93hfg0cyunv9gy6enu47zzkm34wf7cfsz89kqc4356n", + "public": + "xpub6GV6EQGhEMt993NJwrpWaHcYDfT7BXCgZ1wgLK1fp24obrgfyu79hLzy3YDoWFSZFF82ZNYpaJrdjvVUZuCFe4roUALVR91acSX5J2t763c", + "private": + "xprv3TLy5sxUQFUR3PD9yn7sbCKu4eqaGxTh4PctGSic3KSHupSgpaWEtwzGUomiqw3Cjbq4wP7cd9kiJDD9FcZk6hDJ8znHzguxyiQDcSwPgdnqxhJt2GazUUnkHg1PTtovrTfubuCGJG4P69gLrVF7nEz" + } + ] + }, + { + "private": + "xprv3S12aBHQmwf6gJ33gpMmiK1pfdzNHucX8z5uC26D3Q7cKy4Bbimn9Hz6zCNEBYYuY9XhuzQpX6yDsFpUzvzdfXk8scHnQzJ2yggJtP3qAAfiPmp7d5Rod1vESWCBmff3sD2QuEAd9Y7u9bSjc29PUsF", + "stacking_public": + "xpub6G867gmodgKKk2rL2FgM7Z9Vnqx4LiGivUJFp14iNfiTpXf29fgQihkTHdccCnEFyLKS53BorpN6WVBJf7Zozr1foAAS4QuUQNZj4JqV9kf", + "stacking_private": + "xprv3TEjEEU9sQhcrAkBDT1fLceTSSLEob5aC8hQ5kDFsfATEb5hn6p5CfbM38qP5DrR3NUWnZ9wvhXchx7ZT8fd8cHpV5M8TyezFLxEjy35BSwGaQvdMSSmPD3UdKDrb1tXpiZqEudKGNGp5FD9q32noJX", + "account_private": + "xprv3S12aBHQmwf6gJ33gpMmiK1pfdzNHucX8z5uC26D3Q7cKy4Bbimn9Hz6zCNEBYYuY9XhuzQpX6yDsFpUzvzdfXk8scHnQzJ2yggJtP3qAAfiPmp7d5Rod1vESWCBmff3sD2QuEAd9Y7u9bSjc29PUsF", + "account_public": + "xpub6BxiqC2aXaVJoyFKUi3PELm29nFEEY2AS2WXu4JPvRcLHkCbPM11wsz35NeJ1gcZS4xTTBLSdHsprcpBPvXuG77gomUZbHnXZfzAx2F85mv", + "change_private": + "xprv3SqoCmD9osqNLdgZsUY9TGVC2F4tPT5h1f7msaRBSDnGnVx7i6w8PFAjQFbbnW8YeRFMa3tnZu2hbstnYeaxrwKCsyihsXVnHesqR2z1xPLJgPsG1APk6fjKpNz28ueBN94uS1cyG6RFtv1iWdcJqPi", + "change_public": + "xpub6EntrMGtFyPsLEVhwbt2ANJDPvG8Yd31YYB8TovFoL8X9x7SXnnDbZGKC4iPqoKoZPcuXFfsyoXyfhz2d8guhqYjW84Xy5Pe2x3Nom8QQ3g", + "addresses": [ + { + "address": + "addr1q9c7h0s5dhmtfy3wqj43fav5wy24cktflgwqndsw9sg8lrywgvlzeewu42xgwrhy62hexnsqvxgz5tac6vx5y5y2mnxs5n0ll8", + "public": + "xpub6H2u16JTLnZ1QiuttzPj971d2mdRTJgqFQ2MJQtCGH8M6fL4GzeufrtRNrkRvJvzpK5AcH3jX2HDizJoEAW5ifVdtmnm4553peoD1MAZVyT", + "private": + "xprv3TWR6Y1YzqE1brDdcLUYDd1Xinb7Jinqrk1NvkNWoUgQUW9N9YxwsY3iHKQipLoxeX7M3SHziSHjF8qKiL8CdQZSgZdbAFTeEeTG9qwWoUDqykADkeYtGEfUdLrY6gvhHkkQE5CZDGVHmuQruTbp3ur" + }, + { + "address": + "addr1qyelg2wxz7j8f56w5yp8fqxuf73c2vnk7xt4pjrg2xe46qywgvlzeewu42xgwrhy62hexnsqvxgz5tac6vx5y5y2mnxscpq26v", + "public": + "xpub6H2u16JTLnZ1Ujhq7boTj1KE9srn65avqZDzwsPJ4JPrRTQPqt57AN6f13zRLsBYUFRSs9Kpit4zpakCpEoBLF3qakzYRR2nAbGi3Zq9oWA", + "private": + "xprv3TWR6Y1YzqE1d3NYXignP9ZqKvjAE7n8YRBZEni3TigG26JRW6yttdromAhgLDfJ1iQaUHrps3dbLgx9qLRsLEUnkAyyjCZTV9vDvzymbg5setJmUAXYAbAd4h1QQEzBabxy1Rubfw53WhCYd2wHPnH" + }, + { + "address": + "addr1qxfx2fj2nea39nqz99n0x9d0nvd9drxd98czx9uyle4r4j5wgvlzeewu42xgwrhy62hexnsqvxgz5tac6vx5y5y2mnxscpdnrh", + "public": + "xpub6H2u16JTLnZ1W3GwCz14TDud2wHNpz7umQ43ZpCMc6R5A4QEdvVaxvsH6BxCu7vWpRJnKWJcEryTNh3cHH5W5YGdC4bg4mfvZTAw4RD4iao", + "private": + "xprv3TWR6Y1YzqE1dRpbfwndS9Wd1iXrKHrpKDWR6VpaVqrh7MEZP26c85ArZKETZeGRF2V1hb2mESAnQbyP7Viz7rqXq3tDU7LWu9fMqEyf6UVgS4NiYiUhxnfJgSxrEKuQovXEdfNkn8kXxXGnxPJdEik" + }, + { + "address": + "addr1qyjjd325pwtq7skzyk3dwnsqwehzm7yrsmrkegwfwfu2qjvwgvlzeewu42xgwrhy62hexnsqvxgz5tac6vx5y5y2mnxszt4tyz", + "public": + "xpub6H2u16JTLnZ1YE2AwNef3uFqwxaZ6Loc6Q1ehnM5ANyLYzUhn7WbBFt1kkwu9h3E6bkmU3jNLYKtQeE1DV3PrChiuUkmCJZaK3ThxQLN4Z4", + "private": + "xprv3TWR6Y1YzqE1e5UNXqkhq998TDBMYE5xW3txd5wuQyQx3Sbr2JT8RREHXpmCPzZouh3pDPKkj8WPzMjnExUBZBLYen78bF5mektiRyL6BCeXT1vTqG2jrQVh9DcbjNF68LAudAp9eYBqhbiZGunGekH" + }, + { + "address": + "addr1qy94v79exrt8qyy277uk3d5hxwa8vfhrvhfhvqa5zvuvj9ywgvlzeewu42xgwrhy62hexnsqvxgz5tac6vx5y5y2mnxs3msyzj", + "public": + "xpub6H2u16JTLnZ1bDFzLcvzGaPm6yjQc2pESRUkX3GymPE65W71Ni9Bur2PYZ7HLV7Kx8phJqzdsRJpKqxnkwgAH7qkutTztCPT7rp93QHVT2B", + "private": + "xprv3TWR6Y1YzqE1exwCPmrPoa3EX7CVGZ15HP3n4KpUn558ZSrnzxwvCZXsHKFGwSn9z7gpxN7pDLGqshhLNofAvnEFj8qqxZtJ1BrSJ6udx1QX5CsWxgzA48ihgiS7pGfAgof5s2FTwLxRwtqMDK3H57Y" + } + ] + }, + { + "private": + "xprv3STrGM5zpPjR35Gpe99bk8x1itkPwxuWyL5Tig7x4MrjYv6sRx9hYmErmjCt7SKshZDuwrd7SDnFwXtH7G4oEDfkMzv1jeNFUKnf22bydzJKGSUaG5zvaP19tofKwNai7oPdkj1CAdPpo9dseTF1YTs", + "stacking_public": + "xpub6GMek3ptxkvxbzfhwmHjPcVP16rfrnK3iTff7VwTYZMBF6HXa4M9G3MsbRMs93MS5aR2iJgCuxgHBhBUQraja826VXMU71Gun2nK4U5A32Q", + "stacking_private": + "xprv3TJkuVwcGqodPkSUZtZKyRVgjKBUHD9CT2mG2Sf5ZeeCVL5hY22LCBbxaMsidMpsbu2YKMJR6QS4uxbXraUekFgtmeDjZmGnmiyHs2mtCxky1fu1QBNBqPLLpwhDiu2NuNhVx7pc47Yx5KJZGqRknDR", + "account_private": + "xprv3STrGM5zpPjR35Gpe99bk8x1itkPwxuWyL5Tig7x4MrjYv6sRx9hYmErmjCt7SKshZDuwrd7SDnFwXtH7G4oEDfkMzv1jeNFUKnf22bydzJKGSUaG5zvaP19tofKwNai7oPdkj1CAdPpo9dseTF1YTs", + "account_public": + "xpub6DX1m1s5L5msAv4HBa7Zc5JUX7hhhJyT6z1CqNXRhjo6D2dJis88LuN1xGQkQMJeJ8Kq3Bmz76zTDVBpEqf1AXsbnrCL3keVbNJa8vQmZGw", + "change_private": + "xprv3SYyUVVys5vAQc55bcJqVPP8vxX2bsMvbkLsvDBopRECW2VX8BDxwURZgu7QYh18ZVQq7Sc4QqXEeJwk81oyhtw2ny7AF2A7kffmyRoYV2PK76tK6gzd4xBy8tyTCudajTFttK5G2PzdazBjVZVskn6", + "change_public": + "xpub6DpGFnU36kC1x35JMeoh9RZPrL2ghQpxu5YdaKbKkZLCvX6NsZAyMd4b4qUwQyniavuphqpNsQcNEuWa3oEFUozRk8Q9tgvZ4LKJQuPBe68", + "addresses": [ + { + "address": + "addr1qxwyluzcuwsmkgg5jqeqecalq8vgs72tdmzjwua20jm06fj0srrexf2vg0hv9tw3qftfq3jvdl5aw2wm0tzumwytkl2qxu96jj", + "public": + "xpub6GogtMzi1cPpKcPfZiva5By9TxD32vPWsR1tbQHo4YBZbnNABkeMgthqZuBQrYtQYZtRsgQWHujUufgfB1gyg3F4rbGbDnv4ge1MGCrFG85", + "private": + "xprv3TSVWfSqV6XRy1Ne6ToiScrcmhSRDeZSjP18jedyaqumMMJTvsF5Dsw1eRTgjm44RKXJxGJjeD3bcyuM6d4qCq8J8Nm8QfzixYfuRdXJbuSZ516ouvKAhJrpPiNZLe5NQVL9DSWiz3E2AwjQCMwkfJQ" + }, + { + "address": + "addr1qxhqrglky8en86wlg7zyx7nkz92vvjjpkf5a07dyctwqskz0srrexf2vg0hv9tw3qftfq3jvdl5aw2wm0tzumwytkl2qrkg47w", + "public": + "xpub6GogtMzi1cPpQQCw8A1qjXEGuRUNNofgCCf4GhHyG7iknQ2cWC3TC5j14cDS5hZJTYSqQxKjeQGgQNh7UvbmFh1i7bSymJ7T3gNuJsE8adC", + "private": + "xprv3TSVWfSqV6XRzRuHF6GYmWwiHkGc846d9MeRQz2sKNCWj2V2jVVJHuCaK8XXHZt6GzZrzsTBW5y5rv49p7zmFEsLURsaeTWRfHDMk9AqMpkEn5nnyDkWXg8SRd2D8qisXfaGoCiYa5mwYvzaEPz9PsR" + }, + { + "address": + "addr1q8d9kkr9pygnazljx3gl3ly9zdjc8tkhu955mmt5zlalcs20srrexf2vg0hv9tw3qftfq3jvdl5aw2wm0tzumwytkl2qs0q5wh", + "public": + "xpub6GogtMzi1cPpQwhaQZgzSm1sN2sZUKUsjfr9EoUhgybQpMk28eze6yqfNbofTULFM9au9nHvXGBcx27rAT78fSLXYRiaLMyLjYC78MN9bYi", + "private": + "xprv3TSVWfSqV6XRzbFuZpTbHFhcMDuPJEpaRD4jVr6v6fQZih7vhcqS1BxswcgK72S1DBbgYEFEnAUG5Sf78cqvYuGLQVVwMfR7DVkEZeR3dGhFEUkCJTauKu3dUrndZ5W6nrjgHPPkJboDomwLK9YXGDV" + }, + { + "address": + "addr1qyr5d3svc07n4vplmmvujphk4j287fqhhuxezj64na29sx20srrexf2vg0hv9tw3qftfq3jvdl5aw2wm0tzumwytkl2qs69ssc", + "public": + "xpub6GogtMzi1cPpT9XA3wSV51zHgFo6cB4wx3qAYUfdifdtbGfwduHvkq1ajV2ZGWdx4NZAfq2ckYdk6h8M95FweewE7dY4XXmCCe3TgiE57Uw", + "private": + "xprv3TSVWfSqV6XS1FECaTKnwmfC58jPiiGWzejSEpsxUB9r6i8z2HSMZ6HpC5cmmaTEfz1AKoNrWGb7RDVFHmEnfTGi44sbvjxuz8S2N8Go5yDnJAn6sqRQ1A3XccTytpKCkS3HxkJ3zJ57t2SvetFwFQR" + }, + { + "address": + "addr1q9czjjjaz3eh5w2gtrmx0vws8ljfn660lhylyfcn6ygs6aj0srrexf2vg0hv9tw3qftfq3jvdl5aw2wm0tzumwytkl2qc9p8lu", + "public": + "xpub6GogtMzi1cPpX2fjKQLtX9NrX5xU7ZYzV46tSUrEgh3CiJq9ccC56vasYmtxMKFiEATixrjLEqLnYUAsM12RB1FPX8mJqwtixrv7wHAg8jy", + "private": + "xprv3TSVWfSqV6XS2Q7QZYrmUPMdCYz6MHbkkhxqTBrNedsd8Jy7ietuzAJkT9R8ckAD377osBp1ygFwkFaySFCmpQCvbEn2GuV4ptmvk6CT5zgL4o2kzc7qWECrrimuxdowgrg2C9EPRk8Ms3ioGheNZmU" + } + ] + }, + { + "private": + "xprv3S84YxgWjaLdUsEVtJThRWkVgp63kpsbM5xstzAX4kxzwSfR1vcHpYWMjTphvZtVqpBaUct4XGZBBbxt91Lg2ByuPE5NA4EUSSPsdxjMHg8iLdquMjwfQaqJXe8ZFXAxmKj6mbSg3Co7A2RADjZ551G", + "stacking_public": + "xpub6HArsQuVEyyyfxyDnfVpbEiB9dzVFfYar82dAsxLEAVyqnkAgqSdsn3fxSCEKJBFqNCYrhMR3NT5bUJq8G8ivF8eeha7jYx7VB7qV8svxbb", + "stacking_private": + "xprv3TYnJL2nenmWD5HPBj6P7gDfY2jmVZ9Adv6q4PvLNNB7WeCKW6fmnJNffmNoMt3MSdqqR9TEyv8dxFBhTaoQuLcr9kdfSW77S9bjSc9x8dRnjUBiHhNaTrnBsV8qH7JvKmpMGLUfL9jjfx2qiMoN5Dg", + "account_private": + "xprv3S84YxgWjaLdUsEVtJThRWkVgp63kpsbM5xstzAX4kxzwSfR1vcHpYWMjTphvZtVqpBaUct4XGZBBbxt91Lg2ByuPE5NA4EUSSPsdxjMHg8iLdquMjwfQaqJXe8ZFXAxmKj6mbSg3Co7A2RADjZ551G", + "account_public": + "xpub6CNQDDcMg1PJaj6pPazP2sh62oxHcwCK7FfK442iKnTY9DR14YCwARGxEGK1u92cmmWotiTJ3g1wVq2RyLFdfVfopZiG1khHRhvD6QCD7Lh", + "change_private": + "xprv3StGQvCsER6qjzotoPL6GYy4LDAq8uuRRraE5UDfCKiQFdmq8EPVRGab6pG97fFh1FMgLexkUFUU2rF5rVe3on66EfWudbmYnmQ88kkfDcJVt1ujEejZAccXKBzBK6A15owCwc9PTZ1LV2w2QGVk4ne", + "change_public": + "xpub6EwCwMtC4cg7dPqcBg3zw7tLhE4NsuPikccxnZ15rMRu92cJcnmSKMdgQTQVUZPmt9LJYayHR7PApm36f8gdSyiY8oQTfmuoEuyk6XSDGub", + "addresses": [ + { + "address": + "addr1q9jrt99lwzfyw08qv2kt58j8z5apqemgxt2yvvwgjs7t4nfhwgutynpmyycu47jnfg6zwjp3p4tl48lhstmd6j5756xqa7qth2", + "public": + "xpub6G2R83XCwPpnCGHs9cgsop9JjQUQHN3ud2puaJctTpJm6mFrXVp9mkC8FMFETmKmhKgHh15doiBbRcnGrK8CR1ACcNHWWa58TRnvatFGZ23", + "private": + "xprv3TD3VoRhhTmSpgpC8pz55QwG4fMSdL4T7tExDZgfqbDXXjZKtetymYMoxhAyg4SKBDgBJxta7M1Y666ST5Lpum4mXpQrAvgHjEJsYJV8Awtuyd7h78Zyx4coUGXBHfh9GdgqPbvy2WdpjRbTq9KHaPP" + }, + { + "address": + "addr1q8z67dc94at7plpn565uvjtme4fxzneavfz0pudggwfyxk3hwgutynpmyycu47jnfg6zwjp3p4tl48lhstmd6j5756xqv4fpyt", + "public": + "xpub6G2R83XCwPpnDkQ6heUUU5HekCjrwD9Z7rTcSU3izYhvrfJTQwUBgjLM6pkRuwUdEzXd8FA61nEDJsYB57MnfpSQL7etxha1q9pSLnaCnpm", + "private": + "xprv3TD3VoRhhTmSq8Pnn6tciSzd2DveZoPN13Y4HWYqDkavX8KcNTPHw7ahEjDnZTdU76XohhKE59QBPyrYEgLThvv7j3upcpaKJKXTDv28XW2tdGeHBmoxA4S3REaCHyH5tY3RquJK6ZgzvTdPQ3KuJKm" + }, + { + "address": + "addr1qxdhvh9fmy8jqmj7fysl9fd4xhnldk552n9r42xvs69edeehwgutynpmyycu47jnfg6zwjp3p4tl48lhstmd6j5756xqthpuvn", + "public": + "xpub6G2R83XCwPpnFdKXcLLFWMW7MvnriJAHDRdC1bk17Q76Z7DBqHwDXTXL4iqYwBxRgtYaiZD5CWfC881F7zMNW1QKuhdEugzUeqB3CgLJGM3", + "private": + "xprv3TD3VoRhhTmSqgkTZ5XDsoe4BkKeT3qNeK6tknNkmBBM1jSmZnjWyP73BWA64ZuJyo8m4WTQXpY1MVUjfffFuGYumoMy7wfxS695w9Rju1Rf4FuCQmmh8t1XwECKqLvV1g2ZJB7RQQgymgpqH7bEdxQ" + }, + { + "address": + "addr1q8q4hf9ssvyfddwa06z80v64kk37dy6zgtzle237gq7esmehwgutynpmyycu47jnfg6zwjp3p4tl48lhstmd6j5756xqfre4jn", + "public": + "xpub6G2R83XCwPpnKDdH4C4CyGEShtjWcRZe1VcqRTZZJnSiswDLC2ZwWq1hztvvNtSJLkgjo7iTsmGcNaVj9ULsPiqESAtrnkWK4s6FeZcoWzn", + "private": + "xprv3TD3VoRhhTmSrkdVF7CJfTb6UNeAZq5Xvogs9Zgfdkp3HYfjonWdKJReEtYj6Xjpr7N9si2EUibVk9YyAReoK7fJXsxwvgTeuMdTLEyaPevQEECBKeRttvjFPNmiLQ6BdgbD5DnMaKR2zz3hjYNrAgc" + }, + { + "address": + "addr1q89dzvuqzmy452td48mqtmm25n59t3mswhaurwyzj8g747phwgutynpmyycu47jnfg6zwjp3p4tl48lhstmd6j5756xqrudsq0", + "public": + "xpub6G2R83XCwPpnMfHYqxBpRsxRyDzsvRsCt47YgkRPo4166ZRYUca1b2pQ9Gier48SsBHk6zaVk6whih92bXJ9U7HTXRQPEhwjiKzaR68ivsB", + "private": + "xprv3TD3VoRhhTmSsUiEKSTZqFCeFxC7hqsugS79PP7AC8tLfRBNCuzwcPdkBS3d3uJQU8LvxgHQejLNDkWe1CHgViC1A21LQvE7kjj3Yit5WWkQcUugJAz7cuveLYH4Tr5Hf4LeaSMvi3PMJdWB6Q1EYL5" + } + ] + }, + { + "private": + "xprv3S9JsKNWj54VFoLViuDg6KxpkNxHE1oWWHAXiz2JSoK2ryYf51dQ5BkmXhgCMNr83hkxcDe7P5wpkTbLLv2E2aY9PgLis3BPGDD3Zt6vRJU5oVr7N2XUMtJUAjGLQmdRi1qw3MLxdz3XvEEinVyYDpW", + "stacking_public": + "xpub6H1pzb7VAyBsEZifyx3uRecqQ4e5kpE7Yz63BTBLWrqqYyTrP2hgMyUDusFGimvgj6GtYkn93kN2FSbJASNUMZNWwgScF4Z98H9Jn2k3sVq", + "stacking_private": + "xprv3TW6g9hf4EeJRScHkBxXXpadDzsopqbMehmJcZc1MqniD8yU284qDq1q1cCkzVM6g5DFwXhKtRuKpq15JdtUaoHNZ2mzssXx5WyBwH3eQdxsMFDP8pcfMz3L438nbR6gES5DNP6xDn1Qg4rGCF2FpKj", + "account_private": + "xprv3S9JsKNWj54VFoLViuDg6KxpkNxHE1oWWHAXiz2JSoK2ryYf51dQ5BkmXhgCMNr83hkxcDe7P5wpkTbLLv2E2aY9PgLis3BPGDD3Zt6vRJU5oVr7N2XUMtJUAjGLQmdRi1qw3MLxdz3XvEEinVyYDpW", + "account_public": + "xpub6CSbegV22tnK8BNSKjRSyozTFTWfz6LGkdu3T36GGMoCNMUNWqxJ9brkYyXS3oRsWcVizNq9hLhQ2vfsMdYJmBG6pMZYZfnTLaXP5Kfp7ES", + "change_private": + "xprv3Shyboc4PiFmmWTG1C7wxsqW4WWVuSsSg3ANQW4ahC8KJg8JBApTqxArVRr3u3SEiT627mFH9KuGPkaanCBHUVFxxsWEeSKzBRtkmrftJsKDEZyZfiQCjJSd7ooykbNT2vMZr3Pz9L5G4umFz5xJxur", + "change_public": + "xpub6ELZtVza6gQZu7Zqx4Nk7gddnyKynbkcnNPqspVoPM1bYKcX35PgQCAQ46GGRsumd5pKFw85N1Ps5w1PmAeFFxBWCuZoGf1iL5QmArP6hiK", + "addresses": [ + { + "address": + "addr1q8cmf4dh4ln5umfazr9yxsgpc3cs39jspxtjgft4nqewx3nfuzf3vrjcz2uqyvqcxg8qvxhujlsn023egm8q85u8z4gsnrgrnh", + "public": + "xpub6G5etuJdM6pSqGfLw4rbLVVsN3TpqeMeS17WrB1ASxsSjqGmT7m7XzT1ojUuZNN3QvJ9qLbQKguF4A8mbKU1EGBDqohWqEPPcq5xkyLsgnc", + "private": + "xprv3TE1H4Ygvn7BgcV6Q7W3DQ46F5jW9sG8jAmwh2EHrfTBRaJmZAT1XPiEhgh3SdbAqtQVQcQoQ28bGQhuqTLWSwDHMq3Q9ebqUKW2J3eKz7ye8Tbsndr5MHut68wQA2ysEZxMKEiMJTa3rbfRUc1gasb" + }, + { + "address": + "addr1q9jtnd8p6frwx2r9uyu4lvsu25jdqp4eq85y74nmyawy9amfuzf3vrjcz2uqyvqcxg8qvxhujlsn023egm8q85u8z4gsf2ukgc", + "public": + "xpub6G5etuJdM6pSts4xHg3289Dx261sXi9ioatQGerwt6ZSDUVks6L7e5TL4DggBgMQokhaB7TyQxgriW1V8wGLSxfJVnXaAzdj8LaYvyLWg4D", + "private": + "xprv3TE1H4Ygvn7BhgPs4ePyFDHv2RomPCzf79p29a4wVJm48rRzJCGKgwYRteeKKbmpY15hRGXQoD3CKgst751Lg7K8zmA4FSRBRuWETZWuYKzT5oZRi6EfV3RdxHpooRvoV1o2EisiXKusKWXdizECFQC" + }, + { + "address": + "addr1q88cyphqgppmxp9xyxzyelfc5fkc0347uljharesm8qntnnfuzf3vrjcz2uqyvqcxg8qvxhujlsn023egm8q85u8z4gsufaln0", + "public": + "xpub6G5etuJdM6pSwRJvnFBAbCjiQZc7kHVkMDrMANPPAGJoRN8kPu3euYKGnt4pqCciM9dJDLKy76aFJqRgLbTqbXHkjtJ735W7nzq3eha73HH", + "private": + "xprv3TE1H4Ygvn7BiSRzhxgnjUtuvDZUmpf2cozQhP8YhHm5TPgfkCr9uNW2SKzWqvwTQPG3V6tbg6z72SQcbiVjWZNRALb1ZoeD85jknrXwwMuXhWLNoMF4KsmyUZq6DrBwrcpu8YoufGrkjk4VU6nsJXm" + }, + { + "address": + "addr1q8vse35ududzp84w602ndnu8msdw5gs7yrw64mkadndvm4rfuzf3vrjcz2uqyvqcxg8qvxhujlsn023egm8q85u8z4gs2r3783", + "public": + "xpub6G5etuJdM6pSzDANk99Yu6rZqcvLvC8w54t1NHiFRmnbQg46qQAypNgoqbCFFeKxGa5t984K5eSd4H7cEGAwhPhGp79Tcdk2yGUMxH9zhXS", + "private": + "xprv3TE1H4Ygvn7BjGWefVkFqviJ4GPVjQNsY6fPTeCu4CLxyZt92dqE5Gm9FNniZLZJiF8Tz1Kn4ohimXfDPDcHSqt6UcHuB6uMm3ruX6Ugyyu2bFvqziS8UNF5muWFiMzmLJD8VYq3wrZyzQfWS255MSc" + }, + { + "address": + "addr1q9k40ge3zsmhc4arjzj55h0n47jn5tr5mc6hnpuxhqpj7rtfuzf3vrjcz2uqyvqcxg8qvxhujlsn023egm8q85u8z4gsap0jd9", + "public": + "xpub6G5etuJdM6pT1uE17okmVVPLgcZi5fQJFcZz7PYEMJWTm4C4C2amQQkkWimuC9G47JeE49JX7GZZjzNE8RunvVAwKwKJfMiEaKdg2UAfhLK", + "private": + "xprv3TE1H4Ygvn7BjmeECUCELw5SYvFiey4gUQ1W9tgXKjZ1tQk9ixRFmGYxNm7s5HJYkiWoWgK6dZkqMeaEQv6hpb9srVG4kQwgt5F4cpxSYZ5eQ1H4dre1fcf4TdhWHXsKyPMCusGZaPpAgDza5P85KNK" + } + ] + }, + { + "private": + "xprv3SDbmmhvfbWPUTQG5a9EFjxr3VdV96VHPWTXafj2macU1gcPZ8SgvwgLvoJguVcxaVnmwgvBcRgUyL7oBNuERiMqzFzgSR6KZdtVdpChp9tqgMyFjDf4UDb56E6NzuQ2odA7hj3Ejvqr3ih9WaJAsbv", + "stacking_public": + "xpub6FZtCqMmWgzGJGDYMANn9VTyQ2DKPp52mjVXQgf5o6a9ag3xRXyKaKFTJdmRCk1dgCHyBfo6bmEuBiGCEcNkTfdGKvkrpZJ6eCPicr16E5D", + "stacking_private": + "xprv3T5ALsWLEZxZzHmbXi13YzNXqCBhtSHD4FvjSLMDQ7SmFsuioRb7DEd3ENCd4ofTg7YxM9UWz3o2idwrCAzSiwsgRjFfYsVHFBZ99KzFf4BDbCZ7KwVXdd4M28nJ9VDDRHJSYegfyiyDk4TEFwNJHSV", + "account_private": + "xprv3SDbmmhvfbWPUTQG5a9EFjxr3VdV96VHPWTXafj2macU1gcPZ8SgvwgLvoJguVcxaVnmwgvBcRgUyL7oBNuERiMqzFzgSR6KZdtVdpChp9tqgMyFjDf4UDb56E6NzuQ2odA7hj3Ejvqr3ih9WaJAsbv", + "account_public": + "xpub6Ch3Y7nsjWW99XfpJmsoD7vh3K1EKdwsEimYWvtuGnPm4Kqesn2zPj8mZBM1h8PaTDwEPqGQfxrYywpA9ugs5dsGG2nUxteFkamtajwE28L", + "change_private": + "xprv3SyVMvWgNgCEXQHDDpeKdPNpa7wkB1sNUNetpWHNoygt8FcasBzWQ3a1MLMpjZELTHQTSVxoE2i2igCJWR43qgK9XJ5JMH2kHwmymnSZtoK8ERyFTpAjwhXNxTrQQwyhJ7QAT8btqoLfZnSa6idxuAk", + "change_public": + "xpub6FEnkdvA4fvH5rdQf5HEA1kGQNFTaesq9tnoEKw7kfRwMEEkCPeJWGRZ51CQE3C3UV2W6wsLMz4Ziai34ViNCj2tdVPuDTx3HiKFeXPnXUK", + "addresses": [ + { + "address": + "addr1q9a8krgty3ca3mtpnazhyrkve2xqpnplqjqldw22w0qhn38n294grmztsfvqmvhkyz3s4muquyy9t2egmccfrwl6y0dqafrfqu", + "public": + "xpub6HF7Sa14UxbTVpvprVFdoaWoQx4ode7YR5B7yhf5YBQ4LTUjzRNZbmLPcMn1T43fLFoPMcvPXfRVSnJf2R99qFPieZ6gXAc5G5oWWfoKnPf", + "private": + "xprv3Ta3YfE8rsJDFnPvpbsA7v4CG4ps39LbLhaWGpMjAuWT3LSztC8cNKvLeugmN8xi45EV4m1SPCd3wb47xVS7f5XZkSf8qp8D87ZZ6w1igFq3PVZDaJp18pE77sEdwVPejukXofiCdMbN6JSdwsNPmZD" + }, + { + "address": + "addr1qxkesmlkzuyrdwycpt9ndq889h2ar0fs29gv85kg6uscrdhn294grmztsfvqmvhkyz3s4muquyy9t2egmccfrwl6y0dquqsx84", + "public": + "xpub6HF7Sa14UxbTYseNrdCjBrJbzVBZjQwyF56Uib2LyPqdBeDiapBSxP3D68dWBa85nCF7iM6mzLXWrJrMJawrNZK3UzFyJm7ftuouTUzEMMP", + "private": + "xprv3Ta3YfE8rsJDGgtgVCvB6LcwaoVgYk1pPNq2gfjU62mxFbCynotVkKzvpV9xFvSDyS7BdHHmXkry5L1h82iojsEXmViikbqg3JcJRpxnSFHDMLJEThprG7tPFKHFZdvGbusuXPcGyaT9bsU9tUBErZU" + }, + { + "address": + "addr1qxsmwn8qyxhperyja697zywkdw93ultrpnrjsr5tzhsewchn294grmztsfvqmvhkyz3s4muquyy9t2egmccfrwl6y0dqvy6nvc", + "public": + "xpub6HF7Sa14UxbTbzGqzKY2i32nywHQxbR2cEAM1D4Y26wuhmPi8VAUXAZRPfrzY8ofibM3CfcXrY8FF9QR5rujmXDz2nVNJ9pR15vAXhANdjq", + "private": + "xprv3Ta3YfE8rsJDHcYqpokB2sJ6LTCtsr1vqdN2cFrs9Dft7YCmX1iG5ZbgvjizbZaCRffu78GHHf6UPxpkgM7oYEiv2zr3RbV4z2ppDEMp8iTd4bKErEEvPXUFciH9JgXAxem1YVv61whKack69Auk5vW" + }, + { + "address": + "addr1qxsjmhj8lplr3q7va3hs4whxv0uqgrh7nfwhzq6h2alu65hn294grmztsfvqmvhkyz3s4muquyy9t2egmccfrwl6y0dqx45kee", + "public": + "xpub6HF7Sa14UxbTfEnLZL61v3woDSCdZ9HC6d4aQpExc13ABNH5T32kaAY52zBCxbcMhs9cNMUofUjjTRF1WiDDtSUgB7hH3GMk1fSreKVANQu", + "private": + "xprv3Ta3YfE8rsJDJaYmWuRCUPbenr4H8mZrZwsZKEz7TT1ccU4Hr5H5zmoUV1unTu3RvRsstrqt7Z8ZbRouXJtLAjZ6ZknAas3amy9zGftnrAg8Zsp66pt9NL2UeA1rg6xUDGY31aFbrd5TG6b2YvjgtG2" + }, + { + "address": + "addr1qxzs9t7n9efw7mfjgek0acfvxedsae0ar9gal7nymplue4ln294grmztsfvqmvhkyz3s4muquyy9t2egmccfrwl6y0dqhqvstp", + "public": + "xpub6HF7Sa14UxbTfpBK1VtxnPGzQd85n2vw5fZY9zXrEGdp9tyuubvDabwZY1nrao9MLucBwJW9cvWvHPjLaJjbD6MtCYPRfW4JfMsozrqNBay", + "private": + "xprv3Ta3YfE8rsJDJkUAnja9n4SfK1oqKRH9GVvU1Zz6heuBB7e9ggG5yyi3GoET4Gv8NpC8z7zLuMPJf66NrDMF6dg4MWe7eqUy2d5gEgDqP1tcb7Q4mH8eeN7JpbXJaQPWjcsy3djDu1QJTU5utxFBGTy" + } + ] + }, + { + "private": + "xprv3SRvsoP9gA4BQeUBh3awa4EdCTcbpEoE8uZz1TKQ8QUjS5KUsr5rkvgxZyoeYtj5wb8gz4Uc2PhaNip1mkB297Z3wxBRHF8xtdzT6cm4XKqpuaxwewhjBZQuuJLBNtSusvCSiFyPRcdczNKH3rewPy4", + "stacking_public": + "xpub6GU4cwGA8rQRqAaRY9UxX4CRHCrQM2Vpv2fMuMMqsXzerMn3LsGkpQJBgD3KsA6J22h18Lwiq19tqqhBNiqUMgbfxAFhd6qCzKrdfnVu9gS", + "stacking_private": + "xprv3TLfNoDAMaPT1ezQiksihbC4C66r1WMczdgny9GXrzRUS8atGsBpNJeGYeyn1Zpg575Lm6DnqXGKWEwRDpa7668vMfM5RoG7DSkpCCbWtjFxTr8xBpC4kd5SPUHgYShyvTUivwAVLx5z7oVnpta4CuS", + "account_private": + "xprv3SRvsoP9gA4BQeUBh3awa4EdCTcbpEoE8uZz1TKQ8QUjS5KUsr5rkvgxZyoeYtj5wb8gz4Uc2PhaNip1mkB297Z3wxBRHF8xtdzT6cm4XKqpuaxwewhjBZQuuJLBNtSusvCSiFyPRcdczNKH3rewPy4", + "account_public": + "xpub6DQYnsprgq8XFMAWbVDYp9XC5mYU4KxvBKKvbCA4SCmvGkRG6hdjemuhHg21FL74XWtaQ7swcnVCma27VgBD9jmmg3jT2Zo7YKoWZCpGgYZ", + "change_private": + "xprv3SmUhXB3P2uAjdBRy2vLEbUFjKh2wkXxxYsZ2dCtXLo6ve1MEkoNok2WQ1LAY153KR97RHneRMCumuAnuj6zhpizXTUhhCfSC5QmLW2AYrnM73XBNWJfP3jYVxk1ajb3KxgDdXqMZN6bQ85yBb9fo3C", + "change_public": + "xpub6EYMaZYWEfZ5HSUTVCMH7UppGzrYF8aq9rh9REAVrbhD1GnWPwiNUPEgjD74Y2vt2FQgQFcCNwUkDXrqsJR3ykfCvnPzkPEWxujf1RkrMh7", + "addresses": [ + { + "address": + "addr1qxarawgwl7y5nchwa60evm44lhka6x9gxnzm0gn2umv6xranyeaauyu7n9twppsw6wqd7uge995gwa04w5mkftm2gans0zchny", + "public": + "xpub6Fp413WSKXTNMtzA4Aj3CNTXn7xhyuuycL98rwZoxaopSnC4UEF5VrW426191BrKpuppXK7Li5h6dZF4BeLxAmBYkh3F6AvemrCdqPMxEp6", + "private": + "xprv3T9NU6iWxeKpqNrfjtqSysuDjUH1Pa6cQ89xhBYGi6WGfL3pVvTzZ3tvZcauj6QZXR3eK9TWpn5H5dPmdV4GnHHNqqAkPgBjHLfUXxfiqdMH5LfkHPDWv5hV43oPZMfV9bDWSKEcBJonTkJSQYsgFWx" + }, + { + "address": + "addr1q8qzx74fx020eclsgwm9cp0wkmdezuh4x2klxq36eenqga4nyeaauyu7n9twppsw6wqd7uge995gwa04w5mkftm2ganscctpgp", + "public": + "xpub6Fp413WSKXTNRpBiFTrxhyCTh1zQqdVCNbxHQF9cGKXNZNaHRpPHR83gtVaQmbKrRXsjwQDktEohQutBPpLHsuJwYxHmACjsKWGGX1ZVkPw", + "private": + "xprv3T9NU6iWxeKprYMDjDLa9WFQRiMtCoFQUEcX4f4zfEEPDaS9UzokUttixY8b8QhDghJ6c9JpKVGiJ5qiVBrXdb5F3Xn2K89tLcJJgTm8hwL97k4rrZHgaM3fPbxuAQpY91M4qfjvXd48ENiJdCWAMoj" + }, + { + "address": + "addr1q982dulzusc6hnpckh9vzry2jczhqpe9dvphm274pmw8ze9nyeaauyu7n9twppsw6wqd7uge995gwa04w5mkftm2ganstgc67q", + "public": + "xpub6Fp413WSKXTNTW6MDcLt9Wh5jLAKb7N9U7i1mQWwf4zfYTHweFZNcZarDM2jEvrbEgtzF8WbR2siWgmBGFK3MsPqwVHW2Q7xgbKHLLatdDg", + "private": + "xprv3T9NU6iWxeKps3S8NaY7KFYrRNyJhmL34AYmWscyh4BxLUXLHeQTa4PanKEEMH8fCak9Eycro4hfr7orwZRcEAEcp7DfJ7qRAp6evzPwM7YohZnvsd5VAo1h94vteEPeFJVZp9F3LC6X6vtTpdM1Pyp" + }, + { + "address": + "addr1q9ee9y6wvwmd5772nmvpq0a0swv5d8wfllt87ymrlwhkzq9nyeaauyu7n9twppsw6wqd7uge995gwa04w5mkftm2gansfn3fdd", + "public": + "xpub6Fp413WSKXTNWVjdDaP8kqr53QgCyQrGA4AvCgBcKpiAu4CnQDdtMCDsXRfDzmnykFXiP2xEta1v5Us4YgVkj16QK24wT8cCt28H5g19sXp", + "private": + "xprv3T9NU6iWxeKpsw1vR5c5f52iK7Ykq23fxv33B1gE8XxArasu8DTrAZY6NMUFYaCsPZ1Xye3TDyFqJtVQG9w6d4AUBExCPesd1sHng7aDtkXo2i4pHAZJAopqr3GVoiqJqDG3ZzoyaXzk2av6KdeQsg1" + }, + { + "address": + "addr1q8tgx0c0r044389z2vjpe8stxh95vzflecvgt6c9g89t889nyeaauyu7n9twppsw6wqd7uge995gwa04w5mkftm2ganstgl6z8", + "public": + "xpub6Fp413WSKXTNaAxfbVmoGQYGsjmpwHLTF4pvRXmVnrCkZ7nQZPCBG2zoDtSqZKpshJMfsdy5zvLGHaHyCr5zRMiScL61aZurNZjgH9FVizZ", + "private": + "xprv3T9NU6iWxeKpu2Mha7Tr5jsMpG6jN7DT7igZqYSbtDrTzibc9Poe8kY71zWt8ChkbPKoadAx3hfLS4PpB68sNrNwckvs7mPNunSeXqZF6E4JSTXVLQoUUU1QDg4dHh8raTA4i2YAa6B2igEW7Go8w64" + } + ] + }, + { + "private": + "xprv3S9jh7r9GwNBURmKWqEPVbWBQtGTBZzPSBw5qJ9s7vYjk2Sm1hZLvufyPhrY65Sc2wFCgVs3tGzbx6NFiu6HNwxUYqbUQjk8VoZwoai7qGF5nTs9n6Qb7eNwKNMsJaDpUsk6FzaQHLeeXks75XE2LgU", + "stacking_public": + "xpub6FYeiTjuA1u4gToHFb2RukRmzmeHPhMe2u8TM2fq1Q3Ai1cZ3g6ow1kR2WVegFPsfiYMt4QLUqpwrB2YxFudvmtZ2x2jAffY3EpTqaZMv4B", + "stacking_private": + "xprv3T4o79AfyB4dFEYQRk2uvJn1LV9Fc7spnqDGfHuUhW6FciLYzaxnPBimiJA5P1PH7sqUcnN7w3oHkBrHkAznhQikaUNpQJs8RH8RFmeg7VvAXY6SVBZphYctSoE6hNxaohB9DhvqvRvJTGBUzQ9D9id", + "account_private": + "xprv3S9jh7r9GwNBURmKWqEPVbWBQtGTBZzPSBw5qJ9s7vYjk2Sm1hZLvufyPhrY65Sc2wFCgVs3tGzbx6NFiu6HNwxUYqbUQjk8VoZwoai7qGF5nTs9n6Qb7eNwKNMsJaDpUsk6FzaQHLeeXks75XE2LgU", + "account_public": + "xpub6CU3DV5FtQdkyDZELFfEt18SF3HXGZVP7bcYm3oGiV4JP2evPTZVgmifjiBX3tBS9wjQfBysW3ptz5GUqvLjSDB9d5AXQvr7gLRbXANM8V6", + "change_private": + "xprv3SWaBt1Tkuhwg9p87VNRoCUd9DSUr5PCaycVKoKMpQwD94DiPULF6WSnspapSLk3aeGX78vg2osXPJ72maHMkR1nVLox3yX6RbMf6ZYE6qiFB7jNs2vkUu5ZhLc62C2s7Qh75H5xwc6TWbjU41qKCxF", + "change_public": + "xpub6DgBNkccPNJTG4djJ4mJAUbwJ18LpysFGfW2y9pFy3tWsNgA8YSs2zzFtfk8ttUeiLkzCFRWHkohnhqnAQNsboLD9vZaDaabQzvufrXB1vz", + "addresses": [ + { + "address": + "addr1q9r49y0ted4e8wq4gzegr8grz7kvu9q7zd8xnnkh5lm4thlu5fvapwyx55qvkjkhq5myq5esh47kqugvj7x2t3dnmw2s49quhd", + "public": + "xpub6Fbp61XtttUjDVapSxLn31pv21GUTPRE7VLuwHTNT5WeSnBoTrAcvvJZL4gFZtqXZFBaRjELnXFCqoz9j5xgDeYiBZ8ngKDTKmv3irRaxc3", + "private": + "xprv3T5jaZPvtWytehnxG8hphmdSDnBMHSL3uUdVEb8oc3kayYE37Hv9tjjYfTfL4oPzUUZFKCZhszuDwbz1YMqyomQGdZ1AM8j8yHHAWVCAvhKLSEy8cgXTYMXC7T4HkS8Q7L916pgMoVSuoYNmcqyaFVg" + }, + { + "address": + "addr1qxhfcn4pnq3etmcxn54f8ysns7ka2hekkya3cc8qa8gl690u5fvapwyx55qvkjkhq5myq5esh47kqugvj7x2t3dnmw2s22d3cz", + "public": + "xpub6Fbp61XtttUjEfhk6sSX4fPC1JyAxxXCpLwv56iSzQXn1RCpLBUhu9EjM7V2SJyv3uxiYC2jNQFqzW1HokNUEurZyY3Kf97BfSw9XobFF6U", + "private": + "xprv3T5jaZPvtWytf42d7fjgHqQeEcv5yZu61b7vJynVxA5C8hKGzLXsEf4BV8ezBMVMoVJfHG8qALyUvodqenRrv4LTBn1hVEB8H7wzX5WPxqnrbfwoM8vwGgK3Skyi6DbQm86FR8SYqT7RH9a3ixFRFRa" + }, + { + "address": + "addr1qy7shdwd5fq3w4a52sn83y9tmjsh4m4ed96k5hq8nyt0cq8u5fvapwyx55qvkjkhq5myq5esh47kqugvj7x2t3dnmw2sjmk57h", + "public": + "xpub6Fbp61XtttUjHC3VoHFRCi1AVDxSwTk9rnxfwgtGmJgf2wsXQH13vzB4s9zVVAnJMjphgz114Jov2v1euRdsjWLhoCeHEoAf27jWhrvCLww", + "private": + "xprv3T5jaZPvtWytfoW1hg86Xu9QixHXZqNBgMT4MGqXhFZMuq1KNdHEicVdNs23BCaLa8LRweVEQMHmLRXCbzcLZL6NYfGKWC9cUucS59yTuz5VqqYXVXdiYgL6m51y4SgmDm8NRbbpaai2LZyXQr8to2Y" + }, + { + "address": + "addr1q864wkdags2j36zs0kmcgst7x0n58nvlxl8rcppzv2jz0thu5fvapwyx55qvkjkhq5myq5esh47kqugvj7x2t3dnmw2sfvzdfp", + "public": + "xpub6Fbp61XtttUjN6xZwLtvBpRRcZXWHLSwpFob5BKcVHNFBb6eCroiP38cdMs8aeet2uwxfZSD72dUfbuoUWGXh8rHodjUHzTzqbqNHNb5CVa", + "private": + "xprv3T5jaZPvtWythG8z42vGqTo3zFxvD4Hb16rp3SQLTVKfgaL6fKcHJt9p1CbqteFTkA73QX8MxXEsnQQ8FuTfLZ6sanDrD76KWrjEtJVdhmqQaG4s12GChHeiZniKVeeeFnvHqwKRbkrAcr6FU2qZyBv" + }, + { + "address": + "addr1qxnl29mgalhl7gh5ygnx4tevxyafulupl6ql3w88an3hpwhu5fvapwyx55qvkjkhq5myq5esh47kqugvj7x2t3dnmw2sw8h6kv", + "public": + "xpub6Fbp61XtttUjPaFhQWXhdPmGiTzoqZtsJGF3idiEtufdqHwgdfLcMK2dwVVEfYjjjuB9azwM1D4Z55S6PuJj848HB6aL5KqXskrSqnYEvmi", + "private": + "xprv3T5jaZPvtWythhUb6bguEpk6PVuxpoV4QG4eFkdCPZXsAwDAHEwYu7bBLL7VaXj16y9bGYJzc8AaWbR3vDQ2M9bLrppZESGoVCK8gus9rALX8fXbtNLTiiZQB7dbfUaEUVHjEbwLoM86AHWhDse45fp" + } + ] + }, + { + "private": + "xprv3SFeufgzbwkMjzF21GGoCsW14edW6vHL2j1TvoA2VSYEisBiL55e3H9SKSsMwCSBxsk1cqBQ8e3eDRh9SbyCj4BqV4F5gQhy9YpdnFrJWh5WcUKBCv1ajrEQcNHEWcpneVhL3DhcMAGWKZX91BNW7xz", + "stacking_public": + "xpub6FsY2Em1XXD3d15qofYvDzfwgkUNxywkCetcKjUqa3c1jiu2RvdjjyTSPGmvU4hQ4RSJRYi6GAQ8S8xBc2chZWtb6HvjsNW8HkCkRmgopMs", + "stacking_private": + "xprv3TAQUqGZA8kAAWJuqboQvHWc3jGGx4AK3SjzjJaph551Qoatsewtv9cWP5HyNC5W3xdNZQfshJUQD8UZMuXb7js9gsbs9Zbs2c98UaYfTyWaxjBdf1ynaNFUB4dLCX8QnNNw5WWDawPwYAGNizwMgit", + "account_private": + "xprv3SFeufgzbwkMjzF21GGoCsW14edW6vHL2j1TvoA2VSYEisBiL55e3H9SKSsMwCSBxsk1cqBQ8e3eDRh9SbyCj4BqV4F5gQhy9YpdnFrJWh5WcUKBCv1ajrEQcNHEWcpneVhL3DhcMAGWKZX91BNW7xz", + "account_public": + "xpub6CoxauHRdGCXhg8ZNZv7B54BPWjpqpnApRKGGrtE6qcKTuPJBwt38sfoMJ6dxFzDuAhrahRkQFs3uAwz9r3eCrbN3CP5V6MT5sZQhT8pYj2", + "change_private": + "xprv3SqyAAJSeBJ5jFjTSkiRJC2Z4Sufyo4SfWasj3icVSFEy9JW2dnrrvc1C4djG1QQdumW9U522v7dm8itrtXG42MEg8WjFzSTzmG5D1sq2rCRGux75r8jNVTJdktdR5KEGNRxjSKt4uHpYRV3dwqKAso", + "change_public": + "xpub6EoUN3c3FrmRsQ9AZHukkPwoSbQhA8bJoGQv8xH3WL13ChCtRwH1vQbEgpVq9X2b6meSFgsQ7N5y2CsgejLaxBEuMceUUYrsSqzDwSeQ1yY", + "addresses": [ + { + "address": + "addr1q85jj87kyj6hfp9a59r9avs0fwatcr9vsas2ua08ll3tpft4d5zey8fjz75fcqcd03uypx9yeu9xtckvgw6e0rkx8jrqj73m9f", + "public": + "xpub6GrbdMsfeGwtzW5L8bkMUUd3CAN3v4avaeDnpVzyhTSWRHVjKmxYW3tHh8cjPWU4nn3xLsqgid9gTYXRmqnVC8ksoRVXWT9FL8QNAHzCQx9", + "private": + "xprv3TTMe1VdVwucF1J2HjcTPGLmHjAsZzzJZC4oeesJwAsJCPzpJZryxMkDFvVPoRLNHaCagCZ12rBhVeR5EjQDKz8CE9rFZBsEgR1e5DeqLEWQe2jYjCcxXBRXMMgVgdGCWANVLxeU1QRKzvN9Prv9auM" + }, + { + "address": + "addr1qysq27600678y9fpq4g8gqq80ukj2xwqgje2vz7jumj68em4d5zey8fjz75fcqcd03uypx9yeu9xtckvgw6e0rkx8jrqwej6sd", + "public": + "xpub6GrbdMsfeGwu3EfdvSF3nfRdU4Z1TEihzJ5MjqHZfAhYTgGFbSuZaBPstiVQsusVwCd77Bq1UtFnAbxdTGMiqqYvx2qcgLNyrjaXGbjQFm5", + "private": + "xprv3TTMe1VdVwucFpQVRam4hbffVsyq9aLVLhHMpnstSsuxcVksWdPmPspXBtvxCoughLto5aR5KM9QTVv77SRKooaALxQB5zVCYnYoP2imMyvQUZN1Yxpo1eU7HMEWmkbFLugFHrcpi4ViEqsfeEu6Vkn" + }, + { + "address": + "addr1q8kmm4ke9knvmav08tfvnyk5etluvkqf387a6t06lsh4yyt4d5zey8fjz75fcqcd03uypx9yeu9xtckvgw6e0rkx8jrqkppue9", + "public": + "xpub6GrbdMsfeGwu6syMxv853FHRQh6ZgYYT5jGoNAuu2jxMswXWJtxYTxpBEnBumaHynn6hUAwNwN4khd8s1Mm23AhjtmThm4aprQDKKXqHhCC", + "private": + "xprv3TTMe1VdVwucGuBCeYqVwoRbziLLgYCno88UinFxnyNGDyLE74pA9Jro59zdQbbVvjjrF4LNiEs7MFYrkzFYpTtqsdDWrkJkdMVLDTzdGU7TqWB2v6J9KGfmoPtBBn4qNECf4x1Z9zW7QB42eVhDz9N" + }, + { + "address": + "addr1q9ner4fjcfn262v9tmggawc2gwk5vxqthyg5rp33gl4k84r4d5zey8fjz75fcqcd03uypx9yeu9xtckvgw6e0rkx8jrqm5p0ea", + "public": + "xpub6GrbdMsfeGwu93WCvXayWZv5quch2bhqgHzrU9UdwMjAnsE6z1g1hKSfzqKobb1H1VAL3SLS24RgzEGzSPHN3543MHguZ3bbo6VTXLSYVKh", + "private": + "xprv3TTMe1VdVwucHYU4fvNERmLpi5Dm8Hp2Xb9eQbfjHFfT4SohBRDnKXTibVfpRZ3EEBCxWxnaSz2C4pC5Jhmoh7gQEoXNjYZkGrEgszazaDojA6fhmvi4DRww5dqmNHozPgwwDLFujryMtvP76BLxU6z" + }, + { + "address": + "addr1qxkvv9lq9kqrhvut4l7rw3lgucc9l7nqqyxzghfqd9tcnun4d5zey8fjz75fcqcd03uypx9yeu9xtckvgw6e0rkx8jrq8mu0nh", + "public": + "xpub6GrbdMsfeGwuBPSqyPq5LiGJfEx8WT7G2HFHpqiDAmUC5w3odtc4fkUsct6fATSs5ZugTMwuP6Z9HZxVqgzoDSAJ6ZqEnV9ARzKztvwKrfC", + "private": + "xprv3TTMe1VdVwucJErHqQVYPwQ4DNXsLx7aYFfRSV5p9nPxKVutkaLKqNi4cvcUo2NhKtfzvuLFTvXbwXkN3i2PGHeaBi95veHhxHDKWBVaE8ap4mChEdbzJUTTpv7vEiXQ2rNNTZJdkffR3X7uyUsoHgh" + } + ] + }, + { + "private": + "xprv3SSgskL5L6BrqNoM8MtuuRpCGT8iFkPa4KRXV8kR7hkG44vzhgTDgjfMSR5acKANn5gnUbGuLTdfndpHR8iJ1Afejce86NUAt9wBXGtanTq1zJFBkTg8f3jK932YTagdR8Z6qZcuxnAvmS4pkUxWuLB", + "stacking_public": + "xpub6GxNpK2MT76EfSNPHZ9gfnAffGqkd3p9q91Ejihg2nF6CC39kvVfg6LV5pMbNnrp4Lx166StaN91LwhQ95dc3DSPpy3M8tuoEg7tnVHP3ak", + "stacking_private": + "xprv3TV5DBHAZx6y9cX8Pzj2VmHFisg8r8o6j8BsTjKzcNh8jyehy5C7fbeSpjE49eokZNSumZrswMs3fD9iZcYQVoggJhT1Y9CxPBGYewepAK6wvbjqwg9pWi8DUsW1RN65XCYXTwXFPXUYzCqJDeSBNN6", + "account_private": + "xprv3SSgskL5L6BrqNoM8MtuuRpCGT8iFkPa4KRXV8kR7hkG44vzhgTDgjfMSR5acKANn5gnUbGuLTdfndpHR8iJ1Afejce86NUAt9wBXGtanTq1zJFBkTg8f3jK932YTagdR8Z6qZcuxnAvmS4pkUxWuLB", + "account_public": + "xpub6DT6uVpYPzpqeXGAVfu3Uay1SbCq5qVeBkC7GioPUqpUtzTjaEqfnHHmVQZ9FA3SQYNqJJkCUQM2PiwpTFoGAbD6TH4oAk7BmzaC9ToCtfE", + "change_private": + "xprv3T1gR591akaU81LZfFnrTFa9w4huBcz56AEDeqNRd72jiGmm3e4qDgbQcKdYJXbHybdRquxUyqMPAK324TeA3cSwJKNvYPgTkKp4o7D1YGsT3u1hf7jz99ukYcuxVU6kLM8cUKH9e7D41kH4qPeJZCx", + "change_public": + "xpub6FNATQLjhPdpxYmwaLWy9zWj4i8LKB7JnEPS7RRqVtzEqb4Gbd42YS7ZHbkMrwWc5hHcktTkVqqVSLrQY9LB4yWHHEZXoXYimUzUXzNA1o9", + "addresses": [ + { + "address": + "addr1q8jykpskwrmhm3akj8awsn0nhy0yses4zd6lzhjs3c92y6hrqp3zgkqurz7fd8qd5s8my0xxm6yca4ky50dthd4qgl5qug7qjg", + "public": + "xpub6GrWgZnwjqtNs75iffx3PpxKU23viSoLPoxbqiPmgLxds3qp1XNUTH3jBpyijQ6JxhQvk2yq7vzwbB7ZWWTzMamEMoV3N1Nxyw37pLrw8fE", + "private": + "xprv3TTLAp95ZgctktaPRTDyQDymcKG6FXz457q8YcfnT99EmHuPAHp13628g2xhcStcwgDqNsugVBPgsNRHqfjnE46Ff2qR2nVTE2ZrHYjpARGDNDbEW48QRohbF2nVRq3VW2KCH57g2Hv9NMf3r8PzLf2" + }, + { + "address": + "addr1qx6uyhh20veuz3vjsjl6adlh7q9zg5xwd04y47jfpz7lwelrqp3zgkqurz7fd8qd5s8my0xxm6yca4ky50dthd4qgl5q8vquwk", + "public": + "xpub6GrWgZnwjqtNw9iHX4WmC9yTh51N8zc9RLxrY4eyyxNM5jJgCoCXCspqpLUsx7g7WMthcKDsJABBYuNFokyk8kBgq44aHRb37zMpnD4Cw5B", + "private": + "xprv3TTLAp95Zgctn6GyZboaUh38XbGkv82Z21W6FUtahHuda2NMTqdRsowwkwMAeoNo1fHLsAwsBQJrvuSGZWaDFeqeYNk3MkShMRQdq5G741nsXt1eXBZbNjAkmVQQshdDuCx4QTX9scKzjnzRWnGYk9V" + }, + { + "address": + "addr1qyu2f4y4s7plfvgmhss27nkvfhrw7klkh0d2lyddvtvefj8rqp3zgkqurz7fd8qd5s8my0xxm6yca4ky50dthd4qgl5qmgecyt", + "public": + "xpub6GrWgZnwjqtNydzCo4E1rC8VyCdwkFG5T7KMqeFKdYtK3rqiUw3PUGtEhd4QqtcGeEK4gFmDEhr6GsE8h1fd6Gx9mUMPyBdYhjP9TKp7pKd", + "private": + "xprv3TTLAp95Zgctnq8mSeDMFEKb6UyWYLedoH3f3kcJ16XwrBzztjXkXzhWNWbMBQppFhNpAbozuoh4yCsUQNTKeLXDgTdGkGhq2GsrtbjFD5KbyGYZLnRZLAdzsWNtaRGgWMjhXgbqLjBBLfRbbv6QEuc" + }, + { + "address": + "addr1q9r4quhj3g7cdp2yz0qpntdlfdkucjnqtmfnnhk9cc5ggdhrqp3zgkqurz7fd8qd5s8my0xxm6yca4ky50dthd4qgl5qc0md0t", + "public": + "xpub6GrWgZnwjqtP1Q4sGJZ9PUXWUUy5NquNSgvY298CwFPvw32NzTmcpriq3JcaAWCp288zXAUq7xJuWqLcuurgbdg8VF1wHEYZZLfAk7TXq2E", + "private": + "xprv3TTLAp95ZgctoMTa6XpKyum4qYj9A2pSHfG6LsSZHsvd9uSrEk3wrGKEEXEaAUYgUKDDACfQqWLZy6fGfBD2qqmuBEB6FADzoGtcwSTRSioGjQNYbGeZVG9F3CMbf8yXQfwe1KrFMaxDxggz2ip4VtT" + }, + { + "address": + "addr1qx8hu9px9ukqjv6dn8dvtdlhu460jzkmjytalt4t572uhx0rqp3zgkqurz7fd8qd5s8my0xxm6yca4ky50dthd4qgl5q6z642k", + "public": + "xpub6GrWgZnwjqtP2iHaod4C9CTtvXiobLqcFYp94mTf9a1k4L9RrDVsbYyv3is6qzTF6YB1kwTYA55mFFxqrPXM4RhdwyotbKndEnpprkGiNzs", + "private": + "xprv3TTLAp95Zgctok6oGDb1bZDbyxDzurPYkUifhCcAFgaJSXtQZZaXvYsaUjwcJ6PkFapHReuDaUE7oGzyn8ec7QjVCyaj3iZJJzrAB6NSrfKB7kefYsHFmBXAT9DY5F2SjNPU5Db8v4EYBEom7D9EJ7u" + } + ] + }, + { + "private": + "xprv3SDCe3Eo1UqnWMJ3ddZTiMgHQHvFyy183nMyauEz1nWScsQaZ9tczVKkV5zFQE1NDWHwKjhv8b8YkYB5KF2RPGX3D1dexuYeCZbVhEMPF2qsLKweT99j48zERC8xmqydW9hMHeyqczXcrBxAgFeHf7T", + "stacking_public": + "xpub6GkwVkFHG4BgDcASM5jePtdEP9PWCNgY9EeFfEMcddiNn27huptAEyhZpgs9k5UR2tD995onAHQXdRMPJ5xdYQZB9acPNj9HacfskCBKm9m", + "stacking_private": + "xprv3TRgASR16iJ6AAEjBZfMDdroyzUBvzr719cWCwT3NkrhCk3VtEcAQc8LS9ssMoaNNvdMnVrDXA8pSnhnRee2YLQuL4sVYEnVLydMcxJFSb6o2pmVhkF4WGTwdD7bJg3t6XkevkcVrbFq154Go72xCjY", + "account_private": + "xprv3SDCe3Eo1UqnWMJ3ddZTiMgHQHvFyy183nMyauEz1nWScsQaZ9tczVKkV5zFQE1NDWHwKjhv8b8YkYB5KF2RPGX3D1dexuYeCZbVhEMPF2qsLKweT99j48zERC8xmqydW9hMHeyqczXcrBxAgFeHf7T", + "account_public": + "xpub6CfhfSkB29mWPoAXardJnUDuYY43RvPYPLfutattt76ZwWnxFzBfkuh1J4TKZnxxz122DAgVMvs2aFsa64Lo97f9r1d8taZaiexuphd191S", + "change_private": + "xprv3SxGEGJ1qo8LZ6g4FJhZAsHM4VN1KbXecMWiB99ji1MSTTtpwKy3zNi2b6MVTa86X5tbaRma16bkCrCqQdxWVE5N7h9jntnM3As1pNoExQ5Mmi62qDopexShms9U9pMsobUxmCQ81EsN3XqoTJFRuVZ", + "change_public": + "xpub6FAfJRyCunsMcVMe9QSnycgxxcF8jjaif9zf33MndighAxanYsjqLRP7feUmEJWsjnegxma8ehksc5WsXpMwkmM7JufA9gaEBfwtpcVzxim", + "addresses": [ + { + "address": + "addr1qypt08cmz748fuehqacr754n0ece5ddyf7xd9fwaxucya2825t9j0jefma6yuxu8l66srvhfzr2juy7r5x4tt2pq39aqg8qmpg", + "public": + "xpub6FU7JtM8HWx3Ass7GaGZXz3CYAViwXWWZta6PYecqzyb7WCDike3TX2FBHtVyHTuk4LZfcioj7Hp5AArFJwy8oCiQNSboRBwDnyoxnQ16SX", + "private": + "xprv3T3Srkfa4zfhAtGiwvFT8HLo42fahriojpWXTKqk95kiGBohp85vZq3LTuLYfyTj1tNjexmZMDoKq9FSfbAPC2zD3WTrZa6Qt5PgyPfNpS7jG25znJ29rhNVB599pZxjQTGR7Fu8A2432As6b6MGShH" + }, + { + "address": + "addr1q8rfs4qhsyrrp0qe7chrw3k9zg4grs69ngd8w4p2cpz36qh25t9j0jefma6yuxu8l66srvhfzr2juy7r5x4tt2pq39aqq3nen0", + "public": + "xpub6FU7JtM8HWx3EauNxCoTFCKHfSQ6m3ucNon9iCai4EgVPiW1jGdLQcCxjZCPjWJLhfZvVvzG7vSG5u8fkc5bhUcwiMnmjjBdnNHmoE3dVrT", + "private": + "xprv3T3Srkfa4zfhBz9mATGPskUZDwo9h55tdoiaG3F57usdive7BeRHN5anMRTqLcr2fup8xqyRy6yYL2rMQGyPccw5LGCWqWgJLRyR9ymEcfu1zLBUjrLXeDHz48RyVWudHoFmFbA2cvvWFcjQiuned5B" + }, + { + "address": + "addr1q8aatt9xvyw465nqecfeakjn22xmjltn422taz7u0uqzt0h25t9j0jefma6yuxu8l66srvhfzr2juy7r5x4tt2pq39aqf8jt52", + "public": + "xpub6FU7JtM8HWx3JEwvY6ernz8R53UBa49vDZaiNbbfboVRYA33zsdouxnb8vbhQJ13sz8F2uab6fENP43Fna9QTaCAVUeZYZPiCRPzabvGofU", + "private": + "xprv3T3Srkfa4zfhD59C9r2wqQonC8yJ1yZAWL9LeztyjWrtaBcxUhLe7kBeDB1KBwhxnpSgWkmZZ9c9YbUxtnxiYqsPmuCpk6NNNvwHm27D88VcjzKJqqvvWHpdRZSBdNrvo6CT9xJvFyphc2SvoehHSfo" + }, + { + "address": + "addr1qyd2myz86xaeu29l7dfz433h82hj2ymkv9xg8xaxh2g2wa825t9j0jefma6yuxu8l66srvhfzr2juy7r5x4tt2pq39aqrc4pfm", + "public": + "xpub6FU7JtM8HWx3L8RpFLa8dRDP2fw41EuMtfsmBza2uyprm8RV7AtWGCdRfhVfkWPfj82iBa7aYKkqBjpT9k3CwX64hdqbFDwxUPGx31uWBmN", + "private": + "xprv3T3Srkfa4zfhDdfWEkr2a7YKCkTdyMdhuLtn5ZpeQR9vXrQ1neRXE8f545qHAsydptphw93LoWJdM38Shrimh9q8BimfTJ4uX3tR2QvaF85S8WWShBX4JQTCWnQVUhhpWoKt1Z6mUasf9KpVEdVAdF7" + }, + { + "address": + "addr1q8y9u4vy20hfh064utcelxe5ep6459me5zp84s8cd3vuful25t9j0jefma6yuxu8l66srvhfzr2juy7r5x4tt2pq39aqwqt4cu", + "public": + "xpub6FU7JtM8HWx3MbwkJB2rBfgxAVFxrJRDQnqUnQUBafDLtxLTmQY44bSrFYogMMypMVtsPQGrDwEbERbTdDrooedAMLz9tbHm7dfGqpZsyCb", + "private": + "xprv3T3Srkfa4zfhE54usgk5QWgkbnz29Q1ji1LzVeY4zSSENaWLFEN4Tbi3ggCEdE9TgRiKwzTXqFaPCy6ZrvTjRgBoGmQYQwUbPcNmar4HLshsDsTL4Qa5ATwwcxFtXYtMcfzwcMQ14WSTxZU8arxuz3E" + } + ] + }, + { + "private": + "xprv3S95zwso818ARjituUTjjowZ6rjhY6GhS9bxaFPWnnmgnd8zkVuBX9KCtFLBoQr5Mq5PtuXza2V8yDQp1mqiFSTVVEKhXTfPEmavdYhyo5vZQ7aMWRoP3bogQmkdf4jJ3vretPTL6ZuvNJNAGaYFEzB", + "stacking_public": + "xpub6G5n976yystA7hJ11iUXCEcSJJp9jJ6eP5zduYkJwwqH6PNYyeYm3bt1MvqNy8x33yKbgtkYUaEYgcyofmFGUQBbUq6BhG2ZWjYbf5EeR3A", + "stacking_private": + "xprv3TE3RtV1mQuffoVYZWZS9CcNA14S4XvrMETwmJ6TbkgXAcoYbe6v5pFH95xBCSVMhExew9kA2VB7hztLXZx1duvdt38NPMWQ31Tcm37GvKKGgFvREGZZNdNPrchJUtJms8cP8nDSb7aoZcd5N93SujJ", + "account_private": + "xprv3S95zwso818ARjituUTjjowZ6rjhY6GhS9bxaFPWnnmgnd8zkVuBX9KCtFLBoQr5Mq5PtuXza2V8yDQp1mqiFSTVVEKhXTfPEmavdYhyo5vZQ7aMWRoP3bogQmkdf4jJ3vretPTL6ZuvNJNAGaYFEzB", + "account_public": + "xpub6CRrLB43ANoDsViVmUY5uNd3aBVrS7Z5HF1St682g34wCCTPFms7EfUReMjszB5cTJx34RyRqFsW9DKWEhFC12vBa8mW8fAfve7GQYakHuF", + "change_private": + "xprv3SoeYrgUdmVSe12gwoXGARKuP24aRaSvVdJeg9GJLt4V8BaTyfSoin6dQNo85rrsEYf3JS1W1qJP94428x3e7j14tgcTZEfC9KK6YvMt13EohyEBZ27dM6WLKNvWhjDjpH3inK3rdG2FK9Z5UsTy2we", + "change_public": + "xpub6EffEKREFcFUnG5LkHpHKBGF9DQxFw3PAnfenWyBR8u2GLyUxJLBgt6AmKQo77pR45tf5VpXBowKo7E6NeqZr5LZ89Azio8a4oGQ41afm37", + "addresses": [ + { + "address": + "addr1q8npv52n8xv84d4z0uevk2e736e5fswq6el453cmqs9dz8rwexqsh6xze6cjsrc5uk8swlgsgnzrhf9qxaprsezagyvsktl8gt", + "public": + "xpub6Gyifba49SdREyo4HYjw9cDWxNeJUeYUTSafrUY6Gps5Zn2P8HDEkeQHhs5uAw743zMEZCgT5VL6LAUmQZ9QqzfVLrgTKhSCkrrx9Lt3iej", + "private": + "xprv3TVULVqKDvj87aXqq78sgtgY15ViMbHUeHg9rpdw2nUv46NaNAsLn5AT5ELNtzxpSHW2vLUV3eWBsYLKsw6SeF61rqdNarnaBCaaZWF2sNak86SL7U6CRJcj7HFg6W8xuTN1VUbmCL8MjZeSJbAifZk" + }, + { + "address": + "addr1q88pskww033n043asjq0kunvveg8t6a28nzawcrjgpytq0mwexqsh6xze6cjsrc5uk8swlgsgnzrhf9qxaprsezagyvsx2a72u", + "public": + "xpub6Gyifba49SdRHyUghjypXUwN8Vmspo62vroSXEpQuk45iebSLa4QfHMmyosYv3rh9rqaL3CaH5EEPCRrEkZ7NbjauLu7aTpr1sM2pZ3BzHW", + "private": + "xprv3TVULVqKDvj88U8LQ2iHzhjtsLCnWya7tps7jyuf5ySLDjwR6h7DDht41RjEEewmChYeAedw6ckR6mwbueuLQE1k3Nq65kCKnBSSYwXcd9MpMnuEuDHkVPBLhBytuF6X4ZUryPpPKP2PxDxQKMVtifA" + }, + { + "address": + "addr1q8pvtq54eeq75r0cmu97u9jm3vp0vrhnuus9thczvcg5m3rwexqsh6xze6cjsrc5uk8swlgsgnzrhf9qxaprsezagyvsew890f", + "public": + "xpub6Gyifba49SdRKjnkyAcSJ7X3CFfQrM8qSgoG8jojUvAgNB9hN6qqufqQwKF4fYdotwxt76shWXCBXPhsZahPvm2EsmcMvHaRvCRrdVHp9tm", + "private": + "xprv3TVULVqKDvj88zX8733JucfeorikNTk9TnXhmwyZk8EqxyMqLfSbLe9Enss8wrJiFco2J3KjWnh9AB4hsPba8MtGcy4FTHicoacnqhEpWRsu3vJPBBSq1msRbjTxQ49LGfZTiQNKqAmRYWEHxLbq6Ho" + }, + { + "address": + "addr1qxuhax7jgfpnt2pge9n5d9k8th3kjv3hhee0p4pggaut5jnwexqsh6xze6cjsrc5uk8swlgsgnzrhf9qxaprsezagyvsav3wcs", + "public": + "xpub6Gyifba49SdRPKBhBRha8xb4yRSiSFSHe7xWzVrcAJoH3p4sLb4ytjbrHYXuF7ejP79JWDzuoMuQvPXFGqgdsBZtMj2J1FMHxFdbTZhnbDk", + "private": + "xprv3TVULVqKDvj8A48TpmHJM9Ns1QUTXCFWaouZdmWbN5M4GKF8YgpQ5JCxTaTGWMgw8WtzfRnPomsrqfZ8GbvJ4HJGkEMNCXY41AptMViYTsKoot4WwLcGMuBBR9Je1D2gNAk9Wt5Y7etsVfLkHnJ85Nr" + }, + { + "address": + "addr1qxn5achv7zzsa9r8kem3fgmrs82tyn6m08d3j9km557ej6mwexqsh6xze6cjsrc5uk8swlgsgnzrhf9qxaprsezagyvsg644c2", + "public": + "xpub6Gyifba49SdRQHuh5o1zW8aMn9qVQvHg5G5qLj9yk9htwwqNAZfEkcQEcrZYa6qHD9QQKb62yyKo26Y3AFpirtBsNPnyKpoEU8EZjRQsQPx", + "private": + "xprv3TVULVqKDvj8ALyoB9biNcnUJ5JNeSWTEuo1ucBs6KefKstcmV7ghC9qbombn8d6p6FhgWNLW585qN6RQtVoxcfnD1DSg4NQVqQ6A9n5srtgLZv9wr83M7qGCxanS8MeJkpiQaqfWNsmpAJkPHkSp6U" + } + ] + }, + { + "private": + "xprv3SH73788AGTfCpZsoRAtMmgpJewusMdtXhDfZnGttztzUmiiwwXMBGuS8Wu6KxUCngA8eVxbhN1j5PfNhuEXUPpXorLYeT8kUL4pLwCPQb2ZqwFCtnD66bL2KyNBvWuNpoEjZLtM3DVJdHgcSP2LnCT", + "stacking_public": + "xpub6H3wiJti6uvCoqjwwxXU1NKzZE6Xczfca1y2dKEhVMiq4cQHJXxqZMgN1xsW4X2ejAAacsrHZ3enq4JKUpfw4uXauFmdrCXHdgKKnYvSzPU", + "stacking_private": + "xprv3TWj8ZAhy3xCMWbxwddeLapLr53nkUP5BhtUjA6SoPsh17qdBhQSz7o2NRKRp99iLUDJG3VSEJk9n6FsMVKaw6SkdzTVgYe2pA8PhBQMTxwcq4Q9Y59toFsVK42PdumYb7sQWjpRX1ysQ8z1G6cYShL", + "account_private": + "xprv3SH73788AGTfCpZsoRAtMmgpJewusMdtXhDfZnGttztzUmiiwwXMBGuS8Wu6KxUCngA8eVxbhN1j5PfNhuEXUPpXorLYeT8kUL4pLwCPQb2ZqwFCtnD66bL2KyNBvWuNpoEjZLtM3DVJdHgcSP2LnCT", + "account_public": + "xpub6CtqnZEB2cTY8mjBAYn8LGoHnpuFh765f8oqdsX2wq2mkkhK3PGf5s71eUaXgdjEdgX1Npmqf5isBRC4jdX91zxpxjrjbR7WJZD2waCfGZB", + "change_private": + "xprv3SrQttSb9X5gLWCtWrMwyswEhXEd1fwxNGq53Hs41NEfMMJzzKCFsDHf2KWycH6LRooY67PTrpgzB7ieFFdhaXx2JtiY4gtW6ZWzsYgkkjweyvj1BWTJk4mjfu8pfiRZa2hpoV18swg6dfb2akok5Sg", + "change_public": + "xpub6Epy11c5kCZskXYwKTXUxWths9sc11wVWu5qnnxnqywHov7RWJcqgAMBubSqzNXxnooe6MDtQ5XwdLrHnuRB6gjsG6q9fhWzGbTuBHsgBmj", + "addresses": [ + { + "address": + "addr1q86xs5zxv8zvxk8sgc58pxclc047jvkav7yhemjd9p8xu96hp8hxz3rm24utswtpq53rszfql3k5nc90q2w82g2mz0zqeqs6dd", + "public": + "xpub6GDiqcPimjnBoPVhtexJVPTtAZWdw7pQpLHsPUujRn7VuU53c5jmsBNGsxZPrAhUd8AUwA8NPjgFrtCnrF7SWjHiCBozX4tqsT2Tt49Vfft", + "private": + "xprv3TGQHY4oVD32mp5UJJsiaR7MG2jeZZoqsvRJu5Wd6h6rwDQiHWFUwE7dxCvJhF9v89QsaWo1qzbRH4CNcQSZWpm61E8BZyJW3ruspXHKHuZQbzKJ8v1hNp8inQqZRtzU9CdhE6Xnya7vH1KV8Xa8SWb" + }, + { + "address": + "addr1qya2jm2plpzknpgnuxthllzvn8azzss98754fzh9nekp8g2hp8hxz3rm24utswtpq53rszfql3k5nc90q2w82g2mz0zq74f6zl", + "public": + "xpub6GDiqcPimjnBs3e6zNrvQrsuvsHfrLVPcjfUbgB63BRJGHdkzbv8ZQy3SCbaiimK3PvNMKQpmZPySmzWjfRM8HjHK29pkLfS5pDgWpHcXJd", + "private": + "xprv3TGQHY4oVD32nu6e9Px57pUWfVrunB3eMzZwHuFY2cY1xXYtA8RXYb7NDa4cWpwKZxMirugYhAyQ9LMt3Ha8LCGX9zNLCr9PNuTygikns3RKMqMhuBdWGrDXwfzL6YrrvjpNUdcKr3jQL6xgb4CsQwx" + }, + { + "address": + "addr1qxc8wpjw3x6rawttka33p6jznmmxjrnm8vr2xhgnplfzp9zhp8hxz3rm24utswtpq53rszfql3k5nc90q2w82g2mz0zqhklnh0", + "public": + "xpub6GDiqcPimjnBsucE48xNSFz1SmL1axu6eDgWUbdZVmTJsF8k7mViQzUS7HooFhF3duf7ri1w7EULbPN72LCrEmGoXJDniEGp9TK2QNWdgLd", + "private": + "xprv3TGQHY4oVD32o9wZd22nXbcyPmkg2sykLkZK9vvgCE5jMfAcjL4UrSbsEk99mwhiUxwjPYJYrshvinEkwP5PoELiLegEySMuLfXHhKrHvCXoYQSP9kgoyH5ZQTjRwcpWxuDttaFBkSEU5wkR85KoSe4" + }, + { + "address": + "addr1qy46hpzgw8e6a8ajgxgh2r35eg26jdhmfwmmgxxd56yudhjhp8hxz3rm24utswtpq53rszfql3k5nc90q2w82g2mz0zqu7w5pp", + "public": + "xpub6GDiqcPimjnBvyZPz5xYR5Q5sDfNZsHEh17dEmcWtiUczrDt7TQ9MqMWSG6g8AwvDia8m7cB5wfDky6PV2g8vhHeXhE7HTR9ZwRQHQZdTAX", + "private": + "xprv3TGQHY4oVD32p4obG8dWTrodiwYXJTadKgCS8B6sPioFLKWrF2HAycRuMaa5XB6NFJb92nRmBzpEi5MwVNsEobvgYLGE5uvncM1kq2s64eFmdysdBHZobQEixYZU96RkhTz8fijssZuvBq99fxw8k4b" + }, + { + "address": + "addr1qx3092hsa8fdk5mf932apwat2fgt348t4r6z3g3vnmj7fqjhp8hxz3rm24utswtpq53rszfql3k5nc90q2w82g2mz0zqsu2qhq", + "public": + "xpub6GDiqcPimjnBzR2c8g67kJF8yahEasFrNgUg1i9GS3CvZ2Dg1QKdzcSApQzwqLRV7LcQHERZUV7aht3NzQSkrvQnrCLUQTXQR9uvYyzZcKs", + "private": + "xprv3TGQHY4oVD32q64N6kBvZ5RYYMhsUTtQ8MvWvhoMiUDheZJN2o3QgHQJtHih2hd9yrQXBWQndBpcaeyeaHLTAfqEEUKzoZDudWANPNo2nnCc13mHUXZqNynoLxmSusLcouvWEo8X6qiPNe2HKjm4vhT" + } + ] + }, + { + "private": + "xprv3S5CgzyuUMCquKivEG8aEHPmKXfKhaRxdwY67WY6K43esrMSAiYKQXAfZu5YtE4kGyqxYFL3gf24B5bBJfRBtjbJfct3bNGL5eHP4K8baQno6f7k9ERYvG25EcAaAPb93s1VGKhxh28okR9kvEB7hyv", + "stacking_public": + "xpub6FcUesrgrPiCixdG9VQpDUptGaZergPgsbZHWSFaxMGkGsBvmJ9rH2K5Bso748ECjmsEtyiZa55DwBCQ4WFvu2kxGKFqdoxvSUucxjT5hXk", + "stacking_private": + "xprv3T5w33jDERqss3VBpHhWbYFWo1Tb7SjymE9GuasRq5WeKqoLUPpC2QWcZkLMVyKwKptm5nsyh9vWxkhw73PRT8HpwG3fC7gKb3k1DSPo7vZ56yGwCbtdEPng63NobDpa2GMfWgytFYYsT5HtpfEyavU", + "account_private": + "xprv3S5CgzyuUMCquKivEG8aEHPmKXfKhaRxdwY67WY6K43esrMSAiYKQXAfZu5YtE4kGyqxYFL3gf24B5bBJfRBtjbJfct3bNGL5eHP4K8baQno6f7k9ERYvG25EcAaAPb93s1VGKhxh28okR9kvEB7hyv", + "account_public": + "xpub6CCmsYZaRptNBpWm9R8gvAogWQ7jVUJSHBxPZrLT2fN6voJSkRKyKcwWhwE2ZWs51m1rrzDD7bNq1FmEbrZrWhR1yXAac9Ph6G4bz8JafSo", + "change_private": + "xprv3SkPd3ZFoG4ytPPk8c5EMtAbEK5fsbi3X37RQrajsMgFyytWzwVQdqXviu6DxFmmPwqKuKjsbMYxuew58KAHC9a77T7CWmN4xYpeCJMfMPyqhzKd6scwxWHjoWx3cYxbMcYMXviQ4vYAkfArXnSxSBK", + "change_public": + "xpub6EUhF2tSajVojeGYCYZ14FpGYP1HxYo4uY9TBhiumNtEmEu6vgVuHVi572kfogAaXDEHQUShXVE3a3grZTNUYg1ahVP39pt35d5SFEtk2yq", + "addresses": [ + { + "address": + "addr1qyx3xfk47qs474uz32dluz0jlwzrl8vkw0guvyxcutdlmz3myt0w2mm46kymtzy7y5w87d3lhwqms3evvzlll7wyv5cqt60e8x", + "public": + "xpub6GaHS7bRp1uMvdmCbNcdPn1R6S36BhfZ7zD4dCJuFqksE571wm18BG4LvEvNNDW7aKotDe6kZKhxZuiK7DdpQBPYbWKKBnfVDBpnVBFXTfd", + "private": + "xprv3TNWZU6VegcdmfDaVcHomaqNtpqb7dzJ6yd3WnrauLxFZx6zxKNUMoDtqHjfupNUtnhigsnngHQ6gTV3rxryxQr3N38cfmEasJPZVhZXuE5q6bSJK6RaaEvpwNpq6HCswbQGUVCJYXfZ1gTVQeeV1Vj" + }, + { + "address": + "addr1qygqkvseveywjagldpnmy0jx7n00wl3p6l0t6xgpanhr2qemyt0w2mm46kymtzy7y5w87d3lhwqms3evvzlll7wyv5cqxfsss4", + "public": + "xpub6GaHS7bRp1uMyjwB3dd7nMrbMCEf2PSTLnYJY7DpAWvudtW7HwXabXizFGfcFcgWfMHmPXG8ZxDypJkTcPnh7rZAEJ5UsL2V5j7CPWzDXWe", + "private": + "xprv3TNWZU6VegcdnajsLq8qo7AXBWJr3hvADjP1VMquWpT4m9hAF6W2gFi3Yw4LvrAKL5rbrXbdvKwJEjaDZSuwZT8vD7F2Fpw9TEL6MSsTQWiJqRn8UfiSfYQE1nHytqaSWaogMAi7KhCZmP63TCVdvUC" + }, + { + "address": + "addr1qxkgg0v64xczue230mc70tfuhs3eln70353hxuzvk0lpj63myt0w2mm46kymtzy7y5w87d3lhwqms3evvzlll7wyv5cq883u9e", + "public": + "xpub6GaHS7bRp1uN2jdXpTBYSQX58vMUh7Fd5FRSiix7bBB7pawNER2YDLSHycdUBiaFZ7fLrcXMviiTsxTyvL2iVTsbacqAtpEiHQFfARmWDQ7", + "private": + "xprv3TNWZU6VegcdoULaVXPwBwZJ6RYhTDPHHvpidHHnhuiArroeeKodL1gDvxbmH9wySMELU28qzzAZZjhZCM69hiZCaRdZm4aVDJ2B9UfUwBePkqcNxgXJ7316xG3scynrz8ofNRPdvKpGNRWrcE3j2b6" + }, + { + "address": + "addr1qye3hsqpdjxyzm2qx2zgkm4jec90ylh94dz2k9ytkz6s8lemyt0w2mm46kymtzy7y5w87d3lhwqms3evvzlll7wyv5cq3ztsah", + "public": + "xpub6GaHS7bRp1uN51KYkYRJjaoZwhRVDHFKrsFar5zer6J4MH5jbjrct4Dm5SgPYJX1dTL7QvQve97MaifZSzHKGcoa5F1u5RtdtPZD1qHftqU", + "private": + "xprv3TNWZU6Vegcdp9TYSpCTxaM7XUXAfuwZP4mXRSiPM7i4HQ4Z18FQZvTeg6wu2YhfnGBJCbWEBz3yGkzqL8KcXeuyz4WLBzdm3cNi16BUaUSz2XxAexf2TrFkSdh1vG9uVZZ5QT8cyBmVXWsx9Lkekg3" + }, + { + "address": + "addr1qx4wy4zezd97472f2ky6yuq9m80fuywmedh0chdzhzgl9ufmyt0w2mm46kymtzy7y5w87d3lhwqms3evvzlll7wyv5cqe9jccy", + "public": + "xpub6GaHS7bRp1uN741hZgob9u253ULRzBLxJoMe4moapxKt1mJUEeiPTUjqAanzTaFndoGMsFkEbR9nUjzKXTtiz5oVhLm9uUEBNspCynZnGco", + "private": + "xprv3TNWZU6VegcdpkiZd4Qi4uEBH4FKUs2Jxa3zZPmtjXXypvw2UUSqy7HR2EZFbTcGjKNvd1PwezhJ24xATSQMX5ZeKCtRSkP53EN8KWG3admt8YZ3ooLxTJD49trJoMtL6R6Lsew773HyPCkc8K2B4rE" + } + ] + }, + { + "private": + "xprv3SRJTdzKh7UR4tUdvJcW18CAsxEzfhnxSMWe3zVCJ117J6yHTHjgAh9pXvqn2SdTs8ydqqAqqouuFdxyX7SGjbZkHCrCaXXDP2umRwzY8RGj6uv3bAFxRak88uGZhHDLL7VhEr2XFE8bhELKv8C5zFx", + "stacking_public": + "xpub6FmDY2a7MQbtTwFU6rjNQDz11Lpwhh1YiQtyXasxANnPLcneFFcfxVTtsYuDRjURg7Kfb5znNGFC1Qt1ZGnErijfFZmN5sZSvDYyTzewR3o", + "stacking_private": + "xprv3T8XcRJ3Wy8riEbSciu1iL9Kh62qfdrRWcvVV3Sq3irk3WjcqQKjPhDAeCE7NT9Vumio3Z7jsJbqdXiZ4TCSCbxgmYrcufU1aCSRbaFZw7RpaXVMJ2Li56fSEcP3D26VPdGBuvfKnpsBXMNmZYjU4Qo", + "account_private": + "xprv3SRJTdzKh7UR4tUdvJcW18CAsxEzfhnxSMWe3zVCJ117J6yHTHjgAh9pXvqn2SdTs8ydqqAqqouuFdxyX7SGjbZkHCrCaXXDP2umRwzY8RGj6uv3bAFxRak88uGZhHDLL7VhEr2XFE8bhELKv8C5zFx", + "account_public": + "xpub6DNSChukc1b7XApCzV75cZqB6WAg4eGCE5P3Tuk9jTLLR2SP19S8u1JAcVy5aiKg18zzascV4dQAFQU7xZbhnBVnSvTRTuGHaNMhqK9Ui57", + "change_private": + "xprv3StzJ8yEP432vnNDb9czvkCWed8dXiYz91wHnAC7uoCzbfyWCiq4TvMbdy8iny1aibNVtqBtt6D9ZwdMcndb8ZfNrnFjCHpu6Z2o2FyPcd3ZjWUmyjM1sw569AJoRD8cSYQov7KDGgNt43utTAC7kNN", + "change_public": + "xpub6EydvqwYBK6eFm7PkmuTAi1JxghrZ2J5NouvTjMnW36fv4QLvGvrBNqTxCJpebxH99HY4jfEhNN2sH9d5CuCeQzDTFSGmNunr2AEYoSKHmQ", + "addresses": [ + { + "address": + "addr1q8l8tkds4szckc7ws530mfv7cke6xq4eaanjjn7xd0g2xjdrxfkxd3dkd9g2vcltgx4jktd9cj4rhlqejgvyjl2pncfqnlkdnt", + "public": + "xpub6G4FkCxQoGbdpN6oUH6wd9JUvCZ3e9Vf9zgQwB4iMBvN3LHk35A1Qb43dWWUnmk34Qoze4TTdfq9ah5nqoYPttFqbbQAQkj7NRJCch8rgK4", + "private": + "xprv3TDbAt4wmYQ1MuNqSqEEsgvNddnUkvPhFZ1cnt5SrNBQt2gk7GiDssUfyns1TyqZs5KQpLNmVPwxHNCPejaTWAZQL8X8NQ1rozhUz1JnoXvcyCnKetJQHVkoN97xCSJADMmpLjKRrM8S3TXx2ceKqk1" + }, + { + "address": + "addr1q9ms42p6h0eyn0ccjgf0ue7nrn3nkrdp6lvjfh03htpdwgdrxfkxd3dkd9g2vcltgx4jktd9cj4rhlqejgvyjl2pncfqxvhjqa", + "public": + "xpub6G4FkCxQoGbdtNpKYg1uSznGZgKdftuDZsqTimP8ECHFnFU87UhwXBbsbqeh2G9D9aXHdgqiu1miRZVKRozYhvUsH8s9W241S8Qq7x6z26d", + "private": + "xprv3TDbAt4wmYQ1P6WSGzomUoWpQvLYUg3GEM2MGm37pUFrGRqHbMr3KAtyQwmcWCjvE49NBRoqj3wH9GsjoDrriVfpbFv8SyAnx1et6Jcrb3aMVYAWA6wFXLfJhYrwuWVixipiFvZntgEvnftGgysynhY" + }, + { + "address": + "addr1qy4fvq8f3ts8zldlex3t0ef5usa553z5s7nh6est9lut8ydrxfkxd3dkd9g2vcltgx4jktd9cj4rhlqejgvyjl2pncfqm6l3n5", + "public": + "xpub6G4FkCxQoGbdw7t9T4y8UNzELazfp3rNMA3361YJdekd4bdjHiA525np9BjGMTFYa6Xrv5TqpGTG7o8BmsuKEASfH8ffE8vF1y6jf1Cd9N2", + "private": + "xprv3TDbAt4wmYQ1Pum5ZEV2SJ9P7idkd3TpiFY8M1gUKBtEaXhC3F7PkHzAqws49eA1Gvfg6W5pVvBcLiAqFFjZkMLUMqTLU8CZE16fihVQiYmrprURmHZNXo1wYacBZNypYeGRhv1mYkbsbjUAjQhrZB7" + }, + { + "address": + "addr1qykvd7n9ym3963d0phl8m58ypdwln5h8d9rg2u4p5uh53s4rxfkxd3dkd9g2vcltgx4jktd9cj4rhlqejgvyjl2pncfqkq428q", + "public": + "xpub6G4FkCxQoGbdyrZSqUGbJJXvocVQWQ7DGFHLKph8VTo7gLREFmSinFyCeJ9JnBzfhHkEfYgFRCYT4x9eY3evmrcWPsVh74DKGb3NnrkEHDB", + "private": + "xprv3TDbAt4wmYQ1Qiu2ihikiqmE7FVAMCmJ73gzb33cSf6sotTZndx1XpPYquNYLizANnmPAh4Lf57QHFsGoCeUZnoqvoSmg9k11uECihgKWGtmV3GKiSTaBJbU3JNCKUv9WM6ypTgdii2ZRGVAZtZJLee" + }, + { + "address": + "addr1qx352draqwax2q6y95ejw2k4kcn0xk0kc4jhu4kr9tqr7v4rxfkxd3dkd9g2vcltgx4jktd9cj4rhlqejgvyjl2pncfqpmh2x9", + "public": + "xpub6G4FkCxQoGbe2Sq6k1qP4UR9bqNuLKxK8Vf4Zgm7WkhyHLZP1TRL8nhdmWzCoNMiNnzdo65p5diqhBdpB8gUfQshYe6t8tFniNpbkdkuVBQ", + "private": + "xprv3TDbAt4wmYQ1RVY7w9mZiBDjYaDHg6TXQ6WowfhtBC2byVTjYg8Pn1w8zAG6Tnjivu5nARseU7TrPu2kZhGMqyvQJaXsjcj8mafbXzRqxzE1A2pXVUq4nJZBvbqCNuQrdEzmPUS91fmJS94Jz76Epth" + } + ] + } +]; diff --git a/test/cbor_test.dart b/test/cbor_test.dart new file mode 100644 index 0000000..90f5ec9 --- /dev/null +++ b/test/cbor_test.dart @@ -0,0 +1,171 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/cbor/core/cbor.dart'; +import 'package:blockchain_utils/cbor/types/bigint.dart'; +import 'package:blockchain_utils/cbor/types/bytes.dart'; +import 'package:blockchain_utils/cbor/types/datetime.dart'; +import 'package:blockchain_utils/cbor/types/decimal.dart'; +import 'package:blockchain_utils/cbor/types/double.dart'; +import 'package:blockchain_utils/cbor/types/int.dart'; +import 'package:blockchain_utils/cbor/types/list.dart'; +import 'package:blockchain_utils/cbor/types/map.dart'; +import 'package:blockchain_utils/cbor/types/string.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:test/test.dart'; + +import 'quick_hex.dart'; + +List _testList1 = [ + 0, + 0, + "mrtnetwork", + BigInt.parse("10000000000000000000000"), +]; +Map _mapTest1 = { + 0: 0, + "mrtnetwork": BigInt.parse("10000000000000000000000"), +}; +void _decodeInt() { + const cb = CborIntValue(0); + final dec2 = CborObject.fromCbor(cb.encode()); + expect(dec2.value, cb.value); +} + +void _decodeFloat() { + final cb = CborFloatValue(2.0); + final dec2 = CborObject.fromCbor(cb.encode()); + expect(dec2.value, cb.value); +} + +void _decodeString() { + final cb = CborStringValue("mrtnetwork"); + final dec = CborObject.fromCbor(cb.encode()); + expect(dec.value, cb.value); +} + +void _decodeStringIndefinite() { + final cb = CborIndefiniteStringValue(["mrtnetwork", "mrtnetwork"]); + final dec = CborObject.fromCbor(cb.encode()); + expect(dec.runtimeType, CborIndefiniteStringValue); + dec as CborIndefiniteStringValue; + expect(iterableIsEqual(dec.value, cb.value), true); +} + +void _decodeMap() { + final cb = CborMapValue.fixedLength( + {0: "mrtnetwork", BigInt.one: BigInt.two, "metnetwork": "mrtnetwork"}); + final dec = CborObject.fromCbor(cb.encode()); + expect(dec is CborMapValue, true); + + dec as CborMapValue; + final keys = cb.value.keys.map((e) => e).toList(); + final keysDec = dec.value.keys.map((e) => e.value).toList(); + expect(iterableIsEqual(keys, keysDec), true); + final values = cb.value.values.map((e) => e).toList(); + final valuesDec = dec.value.values.map((e) => e.value).toList(); + expect(iterableIsEqual(values, valuesDec), true); +} + +void _decodeMapDynamic() { + final cb = CborMapValue.dynamicLength({ + 0: "mrtnetwork", + BigInt.one: BigInt.two, + "metnetwork": "mrtnetwork", + }); + final dec = CborObject.fromCbor(cb.encode()); + expect(dec is CborMapValue, true); + + dec as CborMapValue; + final keys = cb.value.keys.map((e) => e).toList(); + final keysDec = dec.value.keys.map((e) => e.value).toList(); + expect(iterableIsEqual(keys, keysDec), true); + final values = cb.value.values.map((e) => e).toList(); + final valuesDec = dec.value.values.map((e) => e.value).toList(); + expect(iterableIsEqual(values, valuesDec), true); +} + +void _decodeList() { + final cb = CborListValue.dynamicLength([ + 0, + "mrtnetwork", + BigInt.one, + BigInt.two, + "metnetwork", + "mrtnetwork", + ]); + final dec = CborObject.fromCbor(cb.encode()); + expect(dec is CborListValue, true); + + dec as CborListValue; + final valuesDec = dec.value.map((e) => e.value).toList(); + expect(iterableIsEqual(cb.value, valuesDec), true); +} + +void _decodeDateTime() { + final cb = CborStringDateValue(DateTime.now()); + final decode = CborObject.fromCbor(cb.encode()); + expect(decode is CborStringDateValue, true); + expect(cb.value.difference(decode.value).inMilliseconds, 0); + final cb2 = CborEpochFloatValue(DateTime.now()); + final decode2 = CborObject.fromCbor(cb2.encode()); + expect(decode2 is CborEpochFloatValue, true); + expect(cb2.value.difference(decode2.value).inMilliseconds, 0); + + final cb3 = CborEpochIntValue(DateTime.now()); + final decode3 = CborObject.fromCbor(cb3.encode()); + expect(decode3 is CborEpochIntValue, true); + expect(cb3.value.difference(decode3.value).inSeconds, 0); +} + +void main() { + // decode + test("cbor decode", () { + _decodeInt(); + _decodeFloat(); + _decodeString(); + _decodeStringIndefinite(); + _decodeMap(); + _decodeMapDynamic(); + _decodeList(); + _decodeDateTime(); + }); + + test("cbor encode", () { + expect(CborListValue.fixedLength(_testList1).encode().toHex(), + "8400006a6d72746e6574776f726bc24a021e19e0c9bab2400000"); + expect(CborListValue.dynamicLength(_testList1).encode().toHex(), + "9f00006a6d72746e6574776f726bc24a021e19e0c9bab2400000ff"); + expect(CborMapValue.dynamicLength(_mapTest1).encode().toHex(), + "bf00006a6d72746e6574776f726bc24a021e19e0c9bab2400000ff"); + expect(CborMapValue.fixedLength(_mapTest1).encode().toHex(), + "a200006a6d72746e6574776f726bc24a021e19e0c9bab2400000"); + expect(const CborIntValue(1).encode().toHex(), "01"); + expect(const CborIntValue(-1).encode().toHex(), "20"); + expect(const CborIntValue(1000000000000000).encode().toHex(), + "1b00038d7ea4c68000"); + expect(const CborIntValue(-1000000000000000).encode().toHex(), + "3b00038d7ea4c67fff"); + expect(CborBigIntValue(BigInt.parse("1")).encode().toHex(), "c24101"); + expect(CborBigIntValue(BigInt.parse("-1")).encode().toHex(), "c340"); + expect(CborStringValue("MRTNETWORK").encode().toHex(), + "6a4d52544e4554574f524b"); + expect( + CborBytesValue(BytesUtils.fromHexString("1b00038d7ea4c68000")) + .encode() + .toHex(), + "491b00038d7ea4c68000"); + expect(CborFloatValue(1.0).encode().toHex(), "f93c00"); + expect( + CborFloatValue(123123123123.2).encode().toHex(), "fb423caab5c3b33333"); + expect(CborDecimalFracValue(BigInt.one, BigInt.one).encode().toHex(), + "c4820101"); + expect(CborListValue.fixedLength([BigInt.one, BigInt.one]).encode().toHex(), + "82c24101c24101"); + + expect(CborMapValue.fixedLength({0: 0}).encode().toHex(), "a10000"); + expect( + CborMapValue.fixedLength({const CborIntValue(0): const CborIntValue(0)}) + .encode() + .toHex(), + "a10000"); + }); +} diff --git a/test/crypto/aes/aes_ctr_test.dart b/test/crypto/aes/aes_ctr_test.dart new file mode 100644 index 0000000..b0b70ab --- /dev/null +++ b/test/crypto/aes/aes_ctr_test.dart @@ -0,0 +1,29 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/crypto/crypto/aes/aes.dart'; +import 'package:blockchain_utils/crypto/crypto/ctr/ctr.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("test aes ctr", () { + for (final i in testVector) { + final key = BytesUtils.fromHexString(i["key"]); + final iv = BytesUtils.fromHexString(i["iv"]); + final plainText = BytesUtils.fromHexString(i["plain_text"]); + final encrypt = BytesUtils.fromHexString(i["encrypt"]); + final CTR ctr = CTR(AES(key), iv); + final encryptOut = Uint8List(plainText.length); + ctr.streamXOR(plainText, encryptOut); + ctr.clean(); + ctr.setCipher(AES(key), iv); + final decryptOut = Uint8List(encrypt.length); + ctr.streamXOR(encrypt, decryptOut); + expect(encryptOut.toHex(), encrypt.toHex()); + expect(decryptOut.toHex(), plainText.toHex()); + } + }); +} diff --git a/test/crypto/aes/test_vector.dart b/test/crypto/aes/test_vector.dart new file mode 100644 index 0000000..7439405 --- /dev/null +++ b/test/crypto/aes/test_vector.dart @@ -0,0 +1,201 @@ +final List> testVector = [ + { + "key": "69a1debf06a1a519a9574e9e747bccde170eb998431531445fcef842e015d5e5", + "iv": "abc6a40d05c308cbdf84cf3c8ce9d694", + "plain_text": + "936accf09676dd9aa9f93fa75cf50bff7f0e0164db12cb17f06af2e049fae18123f8b84730fcb5684761f885676443521c5bbf06e2898bc5aa3b45f91bff686383ebb8c1cb34d4f35d7a9465d471e42a89e54ec3ab4f97f9e528f5af0ead774440b6b3f2d3bd7ca06adfe9d1663293e8ab0b69e479875fa1b939c4065d5e7ee36674edfea07c14a6ec6dfe63c45ff2f6665d248980d44b", + "encrypt": + "47ac10ec9f90edda8e6bf9a51e099401ae9316543974e540c522d96cc53410e157db725005645b9ac0f6778dc9f1755a4a8b07776eba9b0f3d524d8b2f092d177deea9e9f21d02638511e8084c9a15dedbd4328f9912001685fe5db7e2a8c84483b095a70edb6fffc2dd2196a3b001ccdef168333165c43e632ca491e7b0ec5e0df7896094008309d4031e9408e5e43a9c32a46a45c534" + }, + { + "key": "0978852ff806440b613452762b3743329c5723d01401d29d5478b83a7071924c", + "iv": "05d3b53f0631d6f5b29284e2f93a54f5", + "plain_text": + "925b5670934cbcc380d2ea5b43b2636406e8a09d9e78dd87aaae43570d0fb3014574dc2064031d3f69f514f78db4d2668ee656628681dfc48a7ec06dbad80a8c8982d57134e0764d01b4c84078c633316ae7d10945c1a5d302b464367f11fe9c818420bbab11b617b7f3b15830cbf5fcedacdd505b97141d20a8e52a1271015deec4ebec32", + "encrypt": + "55fd708cad6c6d9f2f686833fc93c79ca980a6f2d265572021a24cbe35c9f1ac5f96bbc29d7e2a95cbae5e6af85e1bd0c064542577bad5c8e4f4d9520c466b31234fbabb69beb7282171ecaf9c07d7c06d4e02238c4244369a2bf8962b6368e83a75bde813729ca1b79de6f008230dae7adcf7c13d07fd5b045b6499a55b5e662ae09b4b44" + }, + { + "key": "343a23f350ab6d6dc1b06a02a346579629bf6d1bf03853070d298c1c4a0d7eed", + "iv": "ee8445bc115b3766ba5d9f8496545e36", + "plain_text": + "58d97101d8a7610e7923278f8d2bcf047445e37cfb9d2221bce0a4b181838c762e32351d75ec293edf6454288dfcb247b260300d06f6917a4418c5ad97e916ff5dc5cd45b1f4eb00e17a1d003fdd829e49d688ee1d098172f3f0b6218737710b392cd62c8daf688872943aa249c2401581ea284a9889c4ec6980e96fe6ac4a099f7f24de3c163e5b298db21e6c8f6cee47dca21a6d56f7ba6147aac5424a93d132255325abe083bc4c2b0eb86ae10d5d0a3382b4b9c524b4a69899de716e6d44d77ee3eb8d7b255eed630e839630d751068918a88bd22070b71496a3eb0a13782124b39d60031ad10035725e26b56e4c2d147b4843745d5e", + "encrypt": + "716eb2ad3be48a73f1ef5d99b9b222f938022536799e5a30712948743a761558bb2992f663c96549e90af8e7bbf1d436a61b069afe875533d82e66a9ba846fe0e66564f65e2392793030bd818ec232a5b837bbcb50afc984b1fa41edde390a017e4d2a058e03a62e5159d50af39461f7e5a70de08d836fa558dd5272f92f61b21004352f45c992f45b70bef235696930d49b4e17f048ca7bce2aefdfcd02bd420d7b5b22e4d9046cfbbb945360acdfc20dafa360a23e118c825f82c74525f25665dd2db36aea03755e9827d28bce393cef5d87c4f24866e78098a8375023550fcd3ff1bb3d8a44919fd42cde1f3d33f3b31067f52801b760" + }, + { + "key": "7e7b65d1011f926174cf64c1e46da1228d2d6d678a226e56e8f4e394e9790dc9", + "iv": "2d0bb0ba6b8a8958fee3d63da8dc1f1f", + "plain_text": + "25c8af725d75f49ed99ee4e8bfbfe2df4e51959d1381873b4fac3ca8bd625fd52755b54b0171be699453e5804ad7501f66bd666c2b53104d8963055925b25e9bb6913650a594b2edc89c7d2525138983cdb675f9cbc1546448f8b6d4b07287bc4d38abf2d11a5659d3afd82c95eeaee42893f42c5f1a505b7b59ac4eb045b693c961c265ec901a398b79b9f642ead66fb0093f016531e8fbf77ea5d85db66d447b06f2d8f9ab7268f6a24d40ab3f86cffa94b066f659fab5e24ffbcaee919a888b1893afce3d2149b09f310ddb73f4ad0aa35301dc7d27f6374c27b82a4172b305d2a90b7a07673ef7e12d31f83743611ad8fdc47b", + "encrypt": + "27386b5a3a9dcd0bdc09a545a55eba229d7a6c4d13f6630254af2f8d6c126b3262c3546c7e8c642d71b1bb95d38d16836cab863c389eebafff56463e899ffe241b13771399b5d64b584c036051f8fc2312460abf1a23a5f28c1c5a7903afdfe7cb968a8d353d4640e410bd2f8105c0ac378cf65113f71d375924652b6594bd7e470ebf11cfc7f94f586d84f26938f97fbc29af08d2139d0865f1c5a2baa84711e5a8aecf9cb9bc8e30fc7e7411d2fe046734750e671bebf3bb48a31b25593733f9e18ebde5eab1a9b3b9addc038464239491cee759fe0fa9b18871f3fae47d45d1feb72907e01a0c3e497a3789b3d21f6868242973" + }, + { + "key": "2fed1eef9b56053207fdae7591e929ae49d6baed361dc399dc060b0dad8f3aba", + "iv": "80ae3a499d92bb4525143802a355fe0d", + "plain_text": + "d04f991e5340b67d839b465ca199f8155447efea973b33c6a525806f125fcfafbb241abb0c46dd4ce94853d9afefa76fc1714df760673c148f1bee19afbdd76257df2c639ca1b718011bb2d62396feafef8f437332f934e24e1c28cbebc5e7a5cf84973d297490d5191fb0528c36fe6102871793a01249551eddc1be20da879f3a5464d39a08ac394140df2267e752de182992e18e02b27160320e0230d6b8a575184b829d25f45303c5bcdc9990ce4bbafa802da0a6f9ee3b7e9ebe38358a530086ddfca5e4fd136a5d5b709fba0f3215f2b7649e0b042c11f7da358ee471a0bab47c0ddf", + "encrypt": + "b16c721b5e6a8f56abf2e2082562bc311cc3717c0f4ff573916ac16851953592f3cee9d5add19b574b2d43580a7df98c37636a59a212c82b3a28fb6eea87cb77457ac0c41b15296fb22492c5e9200e65da342a02318ae5f625dd52b1e5fd5ca99a02ae7c7971ab5bf3c519afecc4afdd810bce83c069795c32d0c832097f76bba73a80ebeb212c117c496bde0a2edc6d3a08a55e330fed99eaf0320bf4e0c7939a26eb4ca774aa4db55f37045018a66149e416a1b6f76725a03d6cc7ac8397552dff86b898c2aca0e0115a467a436fdac7c8a76dd9b7efadf8076b2203716dfe1d2af47804" + }, + { + "key": "13c8084182cb257868666da8884111e40d6af9dcbb65362dd3bb1b2372102ff0", + "iv": "40c9f1b09e39e444de09d8da70ebb086", + "plain_text": + "8be26bffe56c2f356a9ac87729414c4e1feecec02c108fa0842f5fbf57cb3e6ba356135f3c07f875911060433bff56aa8000994dd01f0ef341eadc7244660e940ff9bb7a1948609f9e6545e528452093c8f23b511358e212d6b908075401fada126c8fa6368cc24619a2840073b6ba0e2dc63838199cd0dfa3369dc94ba5e40eaa3e4f864b0eddf11e530b7b6ba63d6f5ae3386dcc3da947097366031625f763bf4763fdf10007961174915022fba96f9a854a2b0cf917236159a82a1945bbf3a3d1217bd57aaf1619ee091323f32be43ea9d97a01b08ec743c176f630ca774978624acbf1e3f4cef44dc3880dbd039cf35ab7", + "encrypt": + "befd06d3d2f14f6e02db19b777448036d192d74e12c9fce06be05b630dfae663ce066b0397339327dcdd85031fe8764b98942cb5ed6ebf1587b05694e0fa24732ca64f9d295df0c5c897eee706c1902c690028637a162a2fb6f0b005f88e986eae32e32aa17e4bbaddb120dc390330ac2bfbbd81397f0c5ba2d3c04125ece95a3b4feca40bc32f2e34a9ba3afb7281e4101af1d985858595101cd0bbddf3209eedfc161bf1edea6f14e9c27aed961d5db8f80782f9c3ebad424e7a665abf4769b736239ef014014c2d17decad8f3eca7820da664d43cfcb38f57278b67a9cdd68130a9e3d740b1ed10f03ab2247424a62d698b" + }, + { + "key": "7b1a5ded9b05b85384f9393b17ae26eb68bf0b7506d046765f8cb1459b9c92bd", + "iv": "3bc7f466a9e1552263e1a924b1a9248b", + "plain_text": + "468253c7a52e6cea11d18a180117317e2237096fc6989a61780354a4804c75b2d013441168aa3490e2e1a321a694dc871d4155e6b6d01cf939f0d0364cd33050638bd1c3a819d68eaf0181f94a95a3ff70b44b74147b95aa7dc20915fa02da48051463b327c412d1ba72b6d0f58feaebb047ec72d765cc", + "encrypt": + "58259070f1477de37c966bd99e25103dcee01453e52f4febbd52ae323f6717e69d4a34e3fc7540affce85f8aa9263b2934a14bf88e6a42b0dc402986331115766b95a31c95cf28170afecead3fd6f1df91f05e97bf77fd9bde4147aa19a9658d3236f2a0ce30b920371b62e641db9411716ffae56f650f" + }, + { + "key": "1c61926a88bad8acab7c9cb09b404f5103f84a5792f3f537d06667f3d7772b7e", + "iv": "28860b0bff3c0c10eeaef91832dacc4b", + "plain_text": + "318ce5f15eb81822077ed3a0d6b09b0ed9bc7bd73487524fb0905f8e846695363b7b972b96b259797fb9416b34fbbef004e3c1416b3c13a0974b260fa68bd25b11afc7b53367a651868fb3f4d6a9c776c93f0d1f6911cd839bb3a1805580ac4bf9eb41c94aa3ef568a6020b16b40632470ab32b3643979e913a575fba2833a4d5dfff1b41f1c873456b2b8c8b42a8028eb2ad89db6766a3df29b37dd9c1d98d627", + "encrypt": + "defd496a95b65bfc087a09942c3818dd71bf22b01d22c46178873e5f6f98f8484e05d4ea04430572bd14d8a41156813bd8bb58f4f250c7b3bb0f8733886c105ea6a6197e6b17eaf863e84f95c1bbeae0092830293b54b2c9de335bb84be9ac7cccc94b0ef138d3171b661ee0b77ee20eafe316712a69535ad1fc3b49407e661752dac8d7414e6108d3c3c679977fb77a472fff26261bf3d498512677949a8d563e" + }, + { + "key": "ed851ede746e0878134ef9de0a4c332369051359e71ac2e0b7cee401a2846bbf", + "iv": "60f1dcae9a9ab6cf3611832ff7353854", + "plain_text": + "cafc9bb4444846364f7bdbe8ec455fd7a5eaace56d35486785a693f6d12fba3fe10b850dc531cf26f49c337a75415fb70a55d6284c2e1332730f9fc9b6f1d9141b45f8927917696a50491de14f61a18383a4475c383d1cb65dbeaf585b7cf91ff69193d84de837d3bc2764e45b22633840101a059f51a48f9aee58aec8cc5a41148d491b60118294a9f18f1ed9bbc705d8ad1b6f0edd0314acc560f81c70a243528e07d36405a5cd4123b9318886adc74d8e91a9e67752c8b9b9c0205497c2ec38515fc23be6f35b9b62", + "encrypt": + "aea0e86aecbdd31d1c331ae82473967163e8092ca46b2858aef2d61d3e07724f5b31d8a1182dbee5d07efedb4dbe212fc4266b496f0ad4cea14cf6c6d24dbb5c69f01639ae6ea4f500f4fe43d16da24059cb2c18c3875ae6c6fa46a1cf8715776af92eb94d9ccad8c0c7dff0dabccdec07cda797dc82512f36dd790b75e0c107d25c12e7e2ef874beb4998a82760df91082771c41017a5c9d5f4ade3c1592fe236515c8b07d40e562504a2645a3fe32239e13a1c2ac557ffb9c6532906b3641a5c101345cf720b6e82ac" + }, + { + "key": "9214ebd84c5173c2f92aa121c3605f4fbb936d6071318af7aa6a7225ed11afa3", + "iv": "df50e0b3acf002a470981f2855a7cb00", + "plain_text": + "f8db03bd6d534352af6859c6622466479b6a34e2aa8345687bf8ea874b035bd4d9c99b165f5bb058cb3fde5e1f2ba4e7c9bbf7011c07632bd39c78e689cb84a6c64ea2c1c8b925801c7812fba821a9ec1d0b54a0a92ee2e8b88ddac237d18a94bcb9f6acaf515cf73d327a3d2577ccaf3a899760276a3b102de67c0aba3e69ef3d0fa920921c78117998c93fa14e1765625269a3a47b290bdf9726a2f5b539bd926d1babcbb6eaaaa15e0f04595edbba8163a02a04e3f7ce6c29cf4eecb4fb45b4ca00c1761bf01d5687ac", + "encrypt": + "d6e4bb39e44a5b3fd6ce4745d6989b1e36d89d55eb3aeea290d68d261b4fb0314ca4c285c6fbe48bb44c5150fb5b8b0be67f55e64539aa513b7cf061236a56441e2c5c5ed8ee9ee203b213531205154e6d48717b7a12b9d45ea9df27835168d7b02dd945c0dd6ca68c992b0b6d1ad52f4ff700ec6e9564c031108639c7eb380bdd88f80b9341059c405c7c3aa70c42137523f85b55a6ca51f05fd097faf9a12d44d2cb406be678a516c28159387d7d00a4347eba1fa10bad7b46c2ce2c8068b2a1d8894374ef9c62a5545d" + }, + { + "key": "8908d7370b4fd7c36cf4a483a5f391c2cb072b9f7cbb53d53479272e927796e3", + "iv": "540dd4dbb73642a5346784c39f709beb", + "plain_text": + "7a9adc937eaa9dc784b8997d0a84202b4a9106ed88ac8cb3b1e2e160167f27506c5dd1ec15eabd2e8fbfe723a7868c3ba32f79148924f8f35d96ed43ae7f1a8f2c0e6813f54e6e087eba94cdfed5b8da9b3552726ae9f89608244bb421cba67be69863b4265420cc", + "encrypt": + "55fdc94def33b1fa14b69a04b0e9fee6dc8d6550acc164fcef4959322e6e462cc342144d1d71303e11d889a921265840f0a12c4671b05d649dadd70bc33fdf2456ba4cb232eab6cc13b483bcd487e8dfbd52d7b081c85a5c102c83d3ab7be07357b3076f701df447" + }, + { + "key": "8b65e64a156c1ef17bd0e3afd28ec61648c7dca8b7fef6bea1aede13811b3597", + "iv": "fcdea8c48813caf1dea058c8484d4cd0", + "plain_text": + "90427ae9d754f207e5b6bf8c636f43eb633aec2b1e03ee8300d61230411820b9dac2a4f3a5560920ddb3acd12f5f918f3f894c805ba4e6fcb9276f581e7abd8c9e6170dbc11ac4155147d54c6c51e90cd8d6b902bb1ff6404e60bfc08c037d0a4b6b8789690296e3f87e7793ec2a9bedba888c391b5a92d24ac9b92080148e397ad894a48b3fb35b50b57c4be596d7faa0dd8ea323a2f8b8", + "encrypt": + "28f7c3e6cdf50926b8c0b072eee3b6f06cd5167aae6f9ac9a5d68c98723bdfada99d91d7e14d9d3274aca0fc97ebc38a2b524d89b9eb458857065579f23be1744212c6c153044743a7402244a328d0d7f054214ac8a455c0a43394835fbc23961e69c9b5cb32338a50bcdb2da7f417dbf58dd2e25d3a79e6d492197c5d737af377e83ef633b88e196a01b0ec15acc46dec29fb619016e752" + }, + { + "key": "0a95c1c36acca421cc5bc36e047c94215c4c1162b374d59dc46dda0f74517b1e", + "iv": "865bd81d053c51e21e81fd7b7be3bdfb", + "plain_text": + "15d561418d230e27ccd1b3868312bcf656059ded68c8aa155b3b38812b4ecd777c77e1972c27956432cf791a187e147ce5885246a4a3aca21a5cbc97fe1165ffa5aac4b769528495275460888dcda7cf74b1a6059e77476623fd8861dd5c303251b9d1408c531856352469f7b70e306eed246d8f18c3a80a42efb2ae", + "encrypt": + "5a69d755899ca9c8f3dcf3d197e544e84b02b1396385115a6facfe615f4f75b793fb74fd776277e54360bb42aa78026a63295c1fc5d047c83c0073c440e76943d5698b595950588d6a9029cb83db978098d0b5fc7e9e6139724b3cf76b0baf602146d4baf09c05bfefd7239da89e19926262a1addb7805b013ad61ae" + }, + { + "key": "e1d2e5c9b94826bac215b0c5773d5f2d4e15203d426f6ae8b53b817de2432df0", + "iv": "59d9dec91d7ab80866a86d5c9b445fcd", + "plain_text": + "4462cbc9667e029a712b6ec78be01c5dc5805e657f889aa82ac2de99434828b50dd5b54e6458efd554f85ca75ada41ec91530613a1dc916f8da905ff54f32b81beb7cd00e7c6f536ccccd473113eebe303dcd8e63ecf8cd3659293bab35e7a3075da3b88a65a7f3496d0ecd3036bf1", + "encrypt": + "c8ee62814197349ef206f872c56ccb8a17ec539180ef01441746b0063ce2d7bcdd08e042431322a483fba31ba92e03b9343671af1f32f1b9d13ffa09850c25eb48dbd18a8750bc6efa1efbcba0e13c0f63a15f89ade1f71ee74c892f9dfe8e92b57c3f856493cdd846d013fd815b0f" + }, + { + "key": "ad06f514e39ed82707caff90d813a05be53d5213d5328d7e826ae1cc57fad14b", + "iv": "5d988896ece82343705ec4ab5705a582", + "plain_text": + "078d341b973e8caa743a52702fb05056a9deea0cf45011bf0cee967f966f", + "encrypt": "35d97af249af7ad966e09613a9e6a2b6af3ad6f6b77548971491a2ccc0ff" + }, + { + "key": "131e047b9a03870c4be327bc13933a9e092472f97cc4faf20cbb5b94869f3572", + "iv": "190d29c8ecc1b0f362229872f3ac44fd", + "plain_text": + "476feb007317240e63813807fccd68810425d4a3cf46a1a1734ef120d42938cf5398ac4b1e6bcb6f985fae24d428d1f6e1b22fd1d294e998cb6989b412617786ef0355b945468e89d22daaab86774af7879d905c675c2c257758318ae07dc8950d840e0b6a64b8d0f661ba09c7d636fcaf7d", + "encrypt": + "82c5f201cd195ba304fc73a493567ae2f60d38c8287ad7c1c6217fe321c0c91406194476993b4c4e819284b4a03c2644b7b813e1175ad420879a2d92401b788f095ec5a14bc66107da77f349dfdf7d7bb0c492d9c606641b547c7b61c382d7e8947e8573ada32a171544c747bd882fedce20" + }, + { + "key": "e7fb581492f07e5737b230d2f9f2dd48837d1227961a61d880cf319262cdd49d", + "iv": "6a3a447cdf1e5d0125c64811d45a90a2", + "plain_text": + "7b236ea2b78f6d38b4ba2a9e56ff59af9ec068fc8878ffc479a87b6a5c4df109816620db14e68f38919eeb7f62efe9ab306940312e90acfdcc9824d7ca8956dd2bf45fec3a13d38c5b313af6db9388ca3fc83aba7c604f5110b70fd2ebfcbe5dc8e1e43a620a0f0be631f1b43fd3499abf336fbbb9da6bee6085e43c494f90420a459b9be7e7681bca0aee148e852083d20388f67d8f8e5ba765d0368c4fa67fa940c20c8e8686427b50b5ca0180512b4d28b01262b66949374cf4f66c45437425b5", + "encrypt": + "9beac811ee8482bc3641434bfa44c971426a0d2b8d749a4688e70c971afcaacb542056fec904016432d7f0c070a4980cef1c5aa3bff83d204dc502001076f5d2875365f6670124b2c79284ce4875582d21eed24219a00d8ab2bd65b16764839dc055137eddb9d921c1f8ec007f4bdc469096255e720fb635c02efa33f1e1fbcb3bd392ee35dd38ebc4ab8165c1e2ab2656afc1b4ffa0e57fb1765caabe4981358f03a298b5438e3ff352035526dc1dcc177a320dd6f1d0afaa41e4c86e5381ac23a0" + }, + { + "key": "93a18024800488abf7fb75838a16fc9a7340d8b47dd9e960ee5532bca51330da", + "iv": "d5250c3804d7e352ceb19a42c9267e37", + "plain_text": + "acc24a0a4b4dd5a542a9eae22657323fecca570e282982f77059a37ad9643e7a1ed67e1619f65f74416e5f581031696408cf2e20a79505818c5fad05223adc409b402f786666cdd3dd193562f0a806b9f592d991ab553b60a3f84b1bab4ac4ce101dc08064e8b65233abb67d3f9f4e02139095ee671b82ffae6fb0f247a19e8fdc3d0233738161a663b07a4b7c5c44f5a98785c97528b2953fa507b37ab54219680fc832c0ee0f9af0c23a7aa286c1ce69d9bdc62db62962d8dedc81e0054f9b0af84873744b5857b1c8cc6836a4482c0cfd00949c20f5ba18fe3a9f1470a7c481251015fa12e584a8ca4278dd99", + "encrypt": + "1caef9cc7c6d41cb6debc3aa4303080d69282119b8cf16c6574c70ecf048a67d778aa39d2bdca39655853af6c31308e3d74b32652075c7ceee95c6252517d12186502ab055f3fa93afb2c14b9c2a4690ea2f0e1277211664367448415f71264b27f5949d974917d00186b50ea9a8b3b7acbf09ac908fb4d53e780e8068ebb5cd9e826ebb2bd816f768a1c5eac84672c4ca9a48f3c352df7d01b546408e96b20702266f5581df2a4ed5ebb5a9e05421ac7083580fd1c19b8317842bfc9b2b2b808fb906d9d927ac701901abf6e8b5b8b3c330fe9a43745659f27827a4869d659fb36c316a4c88f349243c05857e47" + }, + { + "key": "d6752bcf948f7b0e8ac1578850cc1d4c47c76b7538f93dba58d96f3c0a82a70c", + "iv": "4c9aa8c7f71da23dd36b23039884557b", + "plain_text": + "bd546b037b7a8352c98ec0fe983625dd8072f29ada02f33d0637721aa56a74488cc6a4b4a2cb5f3a60c32d0fa6b825409ce68d1f48756c5b223c841c2084f3d6", + "encrypt": + "797c83e970c9086e3a30f83e1c8eec8e17a852106768e5d8f2f871fa640d34fce466ee9c0a38bffe8698b46fafb201944ac2be5ed6eceffce91e4d7f5d4feaaa" + }, + { + "key": "074cc083b09a954c3d62c7567bd63cd22d9018bcd6091ba983ac2933f5faec48", + "iv": "c88dad0bd565240a0c7071106711f5f7", + "plain_text": + "945d71596511bd15d8169ea9974adead6dde7b200189fa5e245a0c13b0cbf645f242a900b343dd5a186c2661ff3a362f652d983712084592660920c84bebb921c1aabfe42505928ec2f03c6fd5f6fc076a0cc7710cc224a0c4296a3853bb36a05e0b902b57c91645e347fdb749a87d0a005cf9acc3c9b179e9f739", + "encrypt": + "dae9f29fd6f84ecc5b9fa651c69ee5d041c35dd12c60113e569e16a97d298384e510c4e6704e6ef0d7f20c6aa247b4b2e7feb830c56d6b6f94655311e0c7800bdc4c487bcec517f238824eb45141f117292c909d2234b639fd45b3b9a917ae505410dd418a669fb82701d10a82ecc1bdc9cec069e55f7381706f94" + }, + { + "key": "4efeba7e4719b422ac2015bab086c830f23bbfd7144aaf49301b2f8fd200bd35", + "iv": "e6e583ad781a24811639b2f9e3aeefef", + "plain_text": + "3746239b40a5cd437b7e4a30c4741289ae71f486688176a3f7288bb1d6ebbe56d6ad340c2eda1c87280c66072294fe4e02f4ef4b014a510c6f96190801c89e320e8e90e7d40878b437103eca8073bc6b6125c7558f290f1a3f8b60f573db664691499423fdcf2030f4575bb8667b6a9b3afa75d8", + "encrypt": + "287018f0767a881820a55b737f4e1608d3b8e2e231ddddce798de2db43918895d79b46cd8db1a15e7e9804194428de1ebecf15b93f30f9a258a586093ffc7fb62ffc191258e18e876feea71ebc489b62d25e6b3d5b4ae8c0616519c28df0b31f76d525072c05e18b9bb25520a95ca7a403a738cb" + }, + { + "key": "9a5c28d388f45dedab08398715512a273cf0d780e63221b20ef622f4a66079f6", + "iv": "1814a113895dd5f999f0108ce64e179a", + "plain_text": + "3abdd681a4dcf997b6cc62da93670cd842f4282890b58ac3904e713dd1f4558efaf6ff4fcc2dd86845a9b7b0d94891080393f621ded8980e9df91ff0532a0a86f047d347db5a420d6dbfa43eb8298f380ddb85890cc9a829b79011787e37f939ba4c659187095476c41eaf2a438fdd0445427b3545756684c132c9cd76396713aaa7a01277be37b35a46cae3462bf7db5632b648c8811ce5fdc813242adca0213196b500930b70250c9fb905b06cd617d2d4532441e417a046588b08a9ed89180204621d943ba5295ea25f0f083dbd4c0f5bd9debc2dedc344f1ce756bd4868f32afb0b94067bc0688f8", + "encrypt": + "e3b7da5abfd18b123dbb9057202cd77a0c76b7239fe671edc08d219d8a81f865e06da5f8287f831a50004ef92764d9642f0cc40c617c2b979373aeeb52a8201663833287326b839bf28533a3ba2444a072bac6b7e98fd0c13ece422432cc581448e4c739f7198e3c72429347a93eb4515f2a2d65037c538c8a514c226b66b45895534afd895625b8c03cf865078e1f7ec214aef21905f40076069a628957cf234563f06c85c23148bd07d6f2c6374694eea9e1065d8923efbd9cc62b7816029842e101b59649dadaa596abb02834bf36fff9565bfd9280eb5b6888510bef26dd3c2d1d1b6055d5ffe996" + }, + { + "key": "1513ec302e11f19ef29fa75c82db8e2da1e6243f8fced93763e53aef97cf6965", + "iv": "a32fe1386428f65af8884e7b132c5334", + "plain_text": + "852326111ebf09a8d97ab718b5738a4183a16fcdf1893ab9d6b7908346acc3ff3d009578ce59d0e909686c7361d88fdfe172812a7253b2cf05dfd9a8607d71d2a97aee046d33f35fd3aff99c56029d5bf754aeb28371844c30256a245fb5f06948ffa0669043852f91dbd3731357a1f9bbf059e4aa36211ad8c4c4697d6ad6649c91bd300a9756bccae1e20f7cde21ab606dddd2b93cdf12671f4c42e36a3d664aadcbc84bbb0b998b53aa0e258f22e35a4da321415843bfd0f052633cd976fdb28106b8d4c24f6f151c89957125bf6a2fe1ea5cb3c8bd585d82f550def512cf92e127da0149cb", + "encrypt": + "0cd634bd1e96fd25fb4abec8df8cdf7166a3e09ea774209dcd653fa341b0b6f13c17d0c32e4d9e866c722248b6e2ef0939941b1da87d4c4c45c1e10d4b1aa83aacd2d6c15b808cb2ec57c9d3f254d7d14623c5900195582f6014df901a9a88b286e61a908924d7a9bdc9fdedbf3db647dd5103fe07e43af24923070bed5835d3e33702ee04d99a35e8b13f0442ff367afe159952bcba714580aaaaf54ccf5b38d04ef283a4f787bddf04b1ad2e2e4c4c87f57a1cded89e21a8188c79d2eda6830429a78517e4e802bf75b411b3f95b1a21f16eeec5b437931340314a3cf575e59f365320762731" + }, + { + "key": "e29edf55c9c45218cc7b01594f32593522007d96b79f62250d888489410d0ce1", + "iv": "c869945483910251d7f9ea4622b94a08", + "plain_text": + "b752e5af774b12faae5e52bf8eac5d39a7cebb38a9633ac74337d0facf14c1c6e0140850b4007ad42a9f3df4c5955567ea7714a6a49695aec60a01f5955af00efc052fe87e8046d758af7c210f8d801f48755bf9fecab61767520d85455bf669939f78ceb73af17335e036e519673df4945ff0efabdac6562fe9733d76a7b2fd8dec97b364aa438485", + "encrypt": + "befa3102dda1ab92cffc9560cc9ecf8ca3119f5be85b9acf993c2577fa718f9a5575d63e4aeaf0e7b89c80594babbc933257cc670fa05b85fca656ad022c875999bdfd8d93386f4b15a2b9fe03e0ca7b781f0eb353ce12c3642fb8b35669aff954a42056653afc2961cb0b48b18dc2ab9cd39a2a9344c38723a39036f59ea45b4401c82ee169985025" + }, + { + "key": "9098c98985beb923c82800dd6095d05a69ac3b7428f50162b22a49653bdfd870", + "iv": "3d8f75894fbfb9c1bb5b619718faae3c", + "plain_text": + "bbf1fa1438be8cad4377e6a696920b90e4756e9fd66f7cbba71cd2b581eff105859db16d2b07bfd8380d9dbf63f352a6b3afe536aac9f758c6bb4cb1ee", + "encrypt": + "2575347cb3e0155b1ec792338f05dfbb3fb8315e9e4a5248b8edf82d7ae1a1664a535509941f4a00eb62d5dc2cba9132461eae48630c13cfdbfd9726ea" + } +]; diff --git a/test/crypto/blake2b/blake2b_test.dart b/test/crypto/blake2b/blake2b_test.dart new file mode 100644 index 0000000..a5002a1 --- /dev/null +++ b/test/crypto/blake2b/blake2b_test.dart @@ -0,0 +1,34 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("blake2b test", () { + for (final i in testVector64) { + final k = BLAKE2b(digestLength: 64); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.reset(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); + test("blake2b with key and nonce test", () { + for (final i in testVectorWithKeyAndSalt) { + final key = BytesUtils.fromHexString(i["key"]); + final salt = BytesUtils.fromHexString(i["salt"]); + final k = BLAKE2b( + digestLength: 64, config: Blake2bConfig(key: key, salt: salt)); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + } + }); +} diff --git a/test/crypto/blake2b/test_vector.dart b/test/crypto/blake2b/test_vector.dart new file mode 100644 index 0000000..2ff7c8b --- /dev/null +++ b/test/crypto/blake2b/test_vector.dart @@ -0,0 +1,352 @@ +final List> testVector64 = [ + { + "message": + "e469c8b0b925d7758149b1c94426b570108405ef60fbc45ae056090ec8eface892e59dfc9286b1462af7e400fbf2205b592fcba00c29f9e64cb594dc1c1fe1f701081c0f2d772e929b7fb856945632ac2d0a80cee048c0b72efba2a1214b8ac0fe84d43b23c7ecfcf28543c06f226f74a2fbaaeb0ba9787608f3151c48f94f1c1afdf7ef68e9db14db0da5b165bdd1", + "hash": + "d49b7b66ef371c30e822c97f99876be02f6b5c1609f413c11883b07e25424bcad7584dde90aa46318aff85e9827ee27f37cf28276ef00811011c479a2731efc2" + }, + { + "message": + "ddbe480425c3530f05b0cdc1c959785e59b78529331f63ce6876b34d90837fef84e98342", + "hash": + "556e735963b2e4df2af95b825b8e57902f2076ae2a497f8f059e7c0ef5fc56747417e7b7a5828c57488ebd0ada95f2dda8a3a63709d4984ada54b8a7811bbc97" + }, + { + "message": + "26086df389e43cede880ef290825f95ff0b932c83be19bbfb5d9fde3eccb915e3ba4c60d8fda3b6c52260a5c3c1e5d9bfb0d7f0a7c1401fa139cef68c866df3d11cfc6f1f55f7dd435cbda8f67dd52b475837c5935407f0175db30d309a893", + "hash": + "7102dd5c380aac04f79da3c9740d2418b405ea35a36d980ea5e3a5f97a4bdeacc37832706d0886276f88512a79b1705d41e51af58e1e495baac13f0e380d1e13" + }, + { + "message": + "87e9b1e7d27d84c062484b1d9884d51e5647e16eccbf88b75573655fb09662a5b9d66eb5e73e0f0b9b8ca3ee52b64e94e7aa0e761ccd2f7c27bd3fe65972f1351b5a1149ba01e03a4ced181dc213f5e78c9881f192b8849e0c46f7a5dd95897bea3b80b3c12619cb9661da4493bbad296eafe506403cc4d2a3d6567993f8d7f66ae790d7c07fc601d303b5bc4726be1ee18bc981eb7189b044d52316a9fa3d2ab5824d7263338aa2a32d922115013cb7952b84180bcaa12150e1df1e5ddad7", + "hash": + "63f0915960731be3ea96bd9718a08586fedadb5038d924816bfaf3b161f4827ca2c8dd30f8fb7d335d951a86c75cd7c88cdb7009c2efd1780ac581333c9ff036" + }, + { + "message": "a3748681e06d65440ea8ba6a2cf0d4", + "hash": + "dd248955c4662e3dbfbce5e52d7166f6ef21f4313261be7e3f6791c9862c2b7c1be63500f9b8942699a0ad21de6ba57fb87868dc2da5d83aee719dfe92cceacc" + }, + { + "message": + "ec96e7bf26cf0dbb4c8e808957706b5e11bfa284845f0c7d2812a28851e4c0901f559d69e5ff86f6f665b433a27f6521349b514a0bb0bb06a29232ad2ca41f055f0a12305f7c59ddbe2d1768f288e694f9db27fbbed696839d1451d26e388f171a82d8dac64a038bc6b61a631222a52447187796ed3ce928a7d9615a1c4fc99a9fa79c5e92fb842776f2b3f02dbb582dbe0136caa5effc1a98fe25c2d1d5a07f27293d64edb088cab4ea4ff939959555e7503718ceff27946744b6cf6224a7b33c5e39cf4cc4a2120481087db893b0fd760c4f6079c14675478c996b6088ee0cf6cbe47e13", + "hash": + "48a857f6c5faa98bdb8b3b01607d08083bbd86e61e13e75e7a93033f0c3322624d9f0e1d45935a02a3b3c43bafc7a83e48247253f8c29bf533c285bfd15e6ade" + }, + { + "message": + "8ce25679f25b5dff622689921a0dfabd4b1697deeee3c9d76a85489419e66fd2b1d87cfccb476b4024dd935c633a2507e9a8300d453a986c797dee11e27f55e1003bee198b1748903d02024939bd68efff710984c0bed1ef907181914608ad5253ff543b108d8a7c421dfe34ee11528d05abc8b25d093da1c253a4bd54347f26bc02ceef9863af950da75bc896708bd8834f9ce02ca2edec12fd915a2c9812ec4de9f270e21fb52d8f54d79418ec3624c340abd92140", + "hash": + "2e33d3de6988ffd3be1785de006596ccc5604023522abc8ad4f60a538c70b23011aa7b5c1a0cfaad7c2a9cd8bad678ba1b554b2b395e92fd56b7d6ff722a5257" + }, + { + "message": + "3f0d435ed669c27063b726187b50b9de6b2876e032514422ec2fa45b85f2dff39b64db9ca59d8201a05fbfff701f726b121f4581ca044ec554771b", + "hash": + "d6a5fc3b1c7e2f405cccc12eb2e690760182a002b17c153831fe361d1214474793fd0f2fc5a3ec5580aec93ecb7c24fe202552e7ebdc5ff24fa50bb5c3794cbf" + }, + { + "message": "dda28e0fab91922a781a704c6ad26fe6969585a44d9c9491b99262ef63", + "hash": + "49e3bba668a5e00039a773b8204a54fffde49714605aefb4522e36856da6497b6e54bd0d3e7a31f6d0fe69bb19af9b391f2a1379441d8dc4ab43ed0632696323" + }, + { + "message": + "8a84030be757cc9b85c15963c7bce99005e34ecf5f556805e6cc45b872604d415a20b3e818da8b110c587ebc47c21c8a471e08f02017ec34797345cb9a394c1f173f4cb5006d6b62a096b1f5944707ef601624dc102e9480921e3c96adfff64478bb29bbb38967e873db3db8e9337d4141847892c5f1b75fb23bf82321680c2237283f6961072797b1ec24a4cbefd2", + "hash": + "8315721a96ffb6dfa25001391381853a69bf221caf85621556089a21ae42285fdd22328d81ee081c9efd5aea1b06194f70214ab5f0a2a3c48dde47b252f0581c" + }, + { + "message": + "8d1894951b62f8626c1fb4495870f8bea8df20cb52eac2b8f299fa81ab30db625903e98cc4592458a848b56a3c8a8fb4b20fbbc1136042f7526e8428e7f6b5ac2909ce725e3c39cb334a2531c0cada200332bc00de0e31c1a7ec27e51f601b23eee2ccc87045333e8a605824563833b7614a26b238510baa3b98f81b08f921f0731c9a3281caa03459647a9c54", + "hash": + "e922b8cb09532aa7768064f2fc6c2e0571072e3b9e7acae0c6a4006e51d69154042b876a4b5ccee59f268a9c986091bd484e28a700229655c5cdc301cde5e093" + }, + { + "message": + "ba4049a5140b07ceeb90241e081aa400c67cbabd1895b74969dd233dcfdf634095d8f4432d038843a8d5ee9a9461a4a6bb9500ce86cd3e149ff06af0a297fb0faef9caea7ebc855d3319be282968bcf22b2ab695cbd9a0f478606ab035791e8493434a71f9cdc9d5d1c0a72100f228e1d23547e2846403fd7e161378fd313b8d148b67e724f361b47f8e95841749e65e1806d5576562e49375f2ae702e4112ddcc82516c20c0f291f918da10dd298731d18042e0c5c57dcb595e35ce31f88339befa4177a907a3cabfddb4f8c8bdf9750cc955edd462d3f8b2fcc1d3b1e92a46", + "hash": + "fa1bad42a4a0e9eeb2ff64a72e19126d45f449c27790a1628a04554a926f0501f2731cc83d8e7039fe0609dc0baca63d7973e3bc5f52ddaa8f8d207902aa443e" + }, + { + "message": + "8a5d13294dfcd9ca38efea3ec4e1409aa27eb5e037da419b9d59b85586f01e5522f43dff677810342ac0d52dc8fca8795f2a", + "hash": + "893b81e0ea22095fa5bac4cfef2acc58a51e35985bcaae31df5c3129531b7ca4893884b518afa0ba0e7701aa56402c4f67ec77bc33e31eea373383ddabf8436a" + }, + { + "message": + "5ca05ee881e2d0d26f2b39c5517d257385b0166bde1e9cc83220909f5bcedf58eb3271be078216959c524ba5a762811b8e51fd8c5fd9557e436cb17c2ed6025557cbb5c60c3207c8874a32306a96448282b208dc87ee58ced7a4ed6ed9284724d434c04a67bf1bfde061e1884f5c1cfc12636774c98712cdc733d06235a02e98f7f77986586819c6f24e7a2ab6c1f55047d2bc573bfdc490db8c0610ab0cd829b5c92b18bb7f0e46dd5a60b12f22eea4741f86335667267e093aab8207bfc1c6ba5633de7319eb8e81", + "hash": + "82f8d718c18a3a42b5227fa10726b54453e2e195021cbe2d3ba783997d46d66ddb4fd7de0a75c8de4fabf8e0edcdb82721bd43dee57a922d3e533cf66e9978bf" + }, + { + "message": + "ce77b8e28744a3e221ef2e9ea601d37e9e96d1d65a6434075e7b5f2a35f295284881b202b6db8441b89ceaaee313dab4a20652c1d172c4a34e77943510b47f1b6290343488cc82f086dcfd", + "hash": + "7dcb1ddd2ee2e9341954d1ee15a77f4c2e74905f62bf97ef12923486a241df8de33e5315f619f1dadb5b82b31838a09d5e72db889c7a0f5809b91d127fff54fd" + }, + { + "message": + "941b10aa18b2276914784969c0d51237e9b92da803831926bcbcb22be7b2964c8a073d2c46947f80385af1589e9cc77d7bfe36503056fdc71e0620db15d4361804440a42fb1f41be21774193197de609da68d17232207974e98dbca2ede6a8ad88470e36ee2751bf8b067bca06a71eb79df766172641b1fb35d91c544f40b18fdf2efaf6d879097e03bd474958688bfa21db968506f3c6c4f1d26a884720957bff652ce04b", + "hash": + "048c97143b12ad6afe3d1743ae3adf22f5ba8ef389d4cc54a30d1e31d7f2084a3fc9dce88cdbd96c4a44fee9edd761617c6321e38e2938bd07c1c0e054d8eadc" + }, + { + "message": + "1a7857e3444d3335884a6f400ae0c5c0c743c79d882690310890fd5f5b185474fac4d40bc64533ccb35e4d523c4a685820192179f4f01f3f254cb1a00e4d83c864d1d618f90b9e8e6ad4d80f033e0971f76c25b293b4647a9ba7e067f104e4a8a58978bf9bf6250e2e5e4f603aaf622ad9a248238ae81c4bbe46a4376c5a58711a9b0dbdb4035af058cac3dccf6a51fd8ed9890dd092b7ddd4ad3f50477f34304f347d257c5a5f9c9a2e8c048dc11613f5a0a55ced62ff2913acdf87ff76978266642c313a16c07ae1add33f9013ee3e7f54a882256e5c798aacf96c991f946dfcf050ca05d744c7e05619cf1e7129", + "hash": + "d43b84039b58f563655ad466ec82c786b39963513a36a83db14b98f3e6bee6f56d9640b641b78519f407eacefb77c70b2d9f56d4c49111837111594d8cdb1cc8" + }, + { + "message": + "4c00a9d62c3032bcbf4c173c7f1bf2da32e377595fd06cb6cd4c4af7085df589c55792b9dde515fcc51f80715c2cef8d5b5c1d47e5e61a71d582ce9e9064aebad6602128f55b6f47601130c1314f77d9e6eba5d027ba9af5eeebb9ce86d1c92feec740c7042fa5b538def66c7be20806a6c7028d818a1dd8a6b6b8924e6101a7d221897ff11d05dfc6db937c509f9108479fd4c7b3ce5d1219504808a461b9e5b634837d6c03bc3a97e9d85714415bd46ddf9876051f00bf645097128a6b667c1567fcd9ead876b91a0faab06cef06330f228e3439d655693afcd9fd3879c3f8dd998de1e938c1dd40a2381f1d9507b125c7c8943fe177", + "hash": + "51bb716d8aeb017def71eea97418f24e6e855ade0b588e6136e4a67af88255b19b1849104e7119c7f5834ba9761e74fa2fcf652b38c6db4bca47512192f39aa2" + }, + { + "message": + "e94a96c7e39f2175a9eb7dd75060aa88fecdf0bfc2c6776bd444c4cffa4e6368d874bc2af18e777a06ac93dd24effd9c1f638b148192f5cd561a28bd956f0375d4439c35ad8e169e85217eb9bae9960ddd357075b99b88e6ac7c883b9b9ca0e32ccf79ae8d2dd832e92fe39234f7c7418736101325c1ffe999c0142282c68962d2d70aa79a40abe69c1a47c20e34079baddfff16cb9f8f37d49353f1892978d3f882c6e6a8446f886962dfd7b184a49634be3d4b99e95538b2431bcf4822f83068f6932b7b3a67c788ccb76cdc0c6be73485390a1d5d90281b787546f37d04bff1c94707dc775f22749a03428fd124fd934f59928e751df4313d0a", + "hash": + "db5f19fd90f30ca0165a1318521893dcefa01b87f69b340c1be30e222c97597db8ce366b86d86618ba8606e90dc9ca4e788ae598ea4fe307d8f8f37e8af68df2" + }, + { + "message": + "045687df176ca455c55035345c08e5a36a679cb7c57c1599c73092943d7cbd3307c5c8df44e0808ae649a289b48274999f774a94fbc6bf0313dfcb4064b21d6214c8dedfd724126b9a94c23c105a9adf42ac5be7e862adbfae23e91f23122a777d2067dacb36e2cce874cc33e922eece8ac83d50466792ef5b40f24260eeb717216215f05375089cba66e54eb2089acd3548e8c9866db33a46599e13028e1466f3d41100d543a7c4c0886d35a7c9f8ca3fe2475ee73621f88c770ebb10249af3ec0e7c", + "hash": + "bcdee264a3938e1c3288dee4ea155f3f6a3ee3b1c40a3db3e7fcac288b2e988566f3468695d751a4b619cca3e322551675bbf8062c53b4ca72fdfd17054d70e2" + }, + { + "message": + "03cd0d7f7834e6cee738c6f834f1bf42855f72060d92020a6e20715ce33b8a0d9589c032a9f0a7ff4437826f013c8f25d8dbeb27e1236a1827bfadec09d303b4e6d61f5b4e33b61d253fd8d7d8190346", + "hash": + "cbd10539bd2f6a702245a2b58bce843c6da16e8b996dd2df421a9e5148ddc239977c7ea8165453beed8ae08f03c8278932cd54060932fbf605d6fde928e599d8" + }, + { + "message": + "b74bdfd145956984e0e3a48bb882a7ab7e1ef450c2dbe95001c48deffcfe442754a73b4689d1cf98efa59e1a11967745ce83558c73c140a2896ee1be3d07e2f17a2ef6eade3d18fee300106f18d6893ffdffc8a25e25da98af73c375bd3e51cb9e6ee7830f1c7950ac3260214411062ce063dbf261da4861444359b41fbd6369a0db4cb09678af5a583040629835be13c59e28978db92e7732348197a6594c1c7688b9799fec9e798d21134536ce", + "hash": + "24483ae604d66fd17e83643c54d60158370697c9bca44f0bb313e7de06d354683b817a3f8304370d2ae38ed71490e236d974ec8c296eafbe5f18c687a59ec503" + }, + { + "message": + "08e429218ca78ef14d9f8d2cc27c82038a1e374f6b2848523e9481ef681570fe1837c1e4a922da2a746ef0a046c01ee839c5218705c21c811b5703e90be4d8f69a2e6afff96866811761370e17376ceab5de2072d049c3d0f1aa391ebd20c3de9d85f16a688262f427af7e2970c72a2233808ae3c36322fe8a1e5de4ed26119232d3428aa77c16bb24d68e5d1ea4dfa4878503a712e5310de3b26ae90bde6cef2621df4bf009947d763289b6148f645233cf5fe6d63b18de0c4586a32f7b61d50db995e4fde7223217f160c63a44fa41e1889cd3fffc388cac553fa1ee574bf93aef4b60d9e62ecb0e4276584ea502384f288cc5def4159d47f1dfa5dfb3e2", + "hash": + "a85564606864718e25db101ef772ad8f4c52c90e29fd8bdd326a47ca47629db23b79361b991a9d145b4d50512bd238c78f9efb721e3e9d2553f289d39133629d" + }, + { + "message": + "3dddc0ef1e3aa00904e4208e60be590005351c16c545ffaf375c44bd20d3952308f805417b83ca97df73cb499648100de7af9547c6f41f6b77cd5b818830eafdc67c6502f64aab6c1330601c3c2d576f1290d81b4a1873b65aebeb44bb3f186eb86a5543a3f48aeb726d3af28dfd862e06f065d287aa86a6e696635bdb0aabf7296f6c83cff48ab72bb983644bd26297d4494deaa3bb7290c7de16c7ce5cd49c23af82c1fcedb062e76933a004", + "hash": + "c2fc05c89c3878986e148cf62ccf4ed1cb32a7c3c113c01c5d089367de3775960b265de10cbd2196b1f21973019f7eae572763008a2288327c1296202f32a693" + }, + { + "message": + "ef71c56d73003b94137e9c8a3dd63501551d5c5792697369847a3d26c28e06725be0f5fd260bed16e7b6972a6b2c6eea5cd70d10a7c48c2fb8510c6de65052ec390a2b2aba2f46ad06996efc789deb2398a81a85fbac9b577201a266696be387ae6a6b95f299ab2fb337834106cdfd0d07b5b2187a7cd208834e1745b187930c81d882306bc88ccdaac803772f3953ee0ca1de069678da4fbad62901bd64a80fcf7676e386e1e1e5365171dc129fe37a6b6097fb6975670185aa", + "hash": + "cd4bede4e3751f88f7e9db3ae8cc6b8e000314cf92c6416bcb37efe300f7d2b91463db6648b0ef2fa95db3539aecd24d9bfb8efca592186a7278b82e3a856a81" + } +]; + +final List> testVectorWithKeyAndSalt = [ + { + "message": + "3ddf9c05f37ca35f42233b7e53667b1e87fcd3bd6147a8d1243c2a6e54ba40cd224dbad7d1d2c7a9b6eb7814aa33f0d51ae38f3f343ec39842d9c09833639b92c573d6a351e476b94f184d4a53eb6484e9e115b0d0f8f92f5807d2ff7db4891c73e961e3d06d4919d78d0eb2e105ca5ad2990c277ac7f7a7c272d6ab2d699f58c7204cd87592ef96d6", + "hash": + "9e3a2ece7699211f8ac4fd3cd1dab1d02dd037bd573638a8216c4719b629228a12f83501b696aa0ec0b5fa05acc0449c53194a97c0a0781defff5736d362433a", + "key": "4c2c31a7379f52f3536c2104853f521fe0962ec730e265f3463f157c1dcfc223", + "salt": "5b9585589542fed1cdd6861587066503" + }, + { + "message": + "7ed12a249cd368d6227cf10c52c09abf12f99c48e22bc6ba1c39c0562370b521ca084bb996b7726f6ff07220b9a8ac4206b7833f94cbd1b025e1f6cac7d5074ecd979824d3ddac49f2990b39f98794b13d2d53b18df0947373d507e530d9e8e8e90e90bf268c06ac0535331143bca42e900b9c4ea43845cfd8345b8118d9c9450cd37a5ea594e6ab5a6f4a1d7e", + "hash": + "ebc0be121ea0ccd06e2319f1b73480bcb22009fe7e466274da2dba4555b4e188d2a0ed0798a23e3e0bcfcf921e7e233788a1f5240a74e57639ae7e84418d7055", + "key": "593a150213f8f7e0f477bbff3a424c5144dbba7899e34a158de0cf4a71e6241c", + "salt": "767b2bfc7e8d955381aa1f2e78f0ba99" + }, + { + "message": + "4047deecfd20df3a69ed12158abb3a00f059b5376266dacedca962192f0e247a265fccebb81107a94c783ebe9b530f22b410af944b7d94a20b0153a3b4cb37738f3630c71ac3ecd10bbe81b4ff5253afc339bc05faa9ba2f1648f99869edf0e5defa84f98243b70490c2824ce4ca3b0c58036da8b8300011187c71d68e571048f27b901062b4c7c9ba6a77aabdcb7e480266be2dde87417808255b340c859bd83e749f93d4d8c3b44c0b6125158d36aead468d1438ef548f15861211ecdfc6e0375021df8610ac9601e781b104a41f21cbed", + "hash": + "5552212c3d6189c106968eea213fba883e8509aeb41a6f7d20ad4dc911869fbbfcd1df3d7dc5edd7cdcc7a6e4dbb27e7825ccc57db979ee0e7951e6b5d9ea651", + "key": "4966e51e2a33cabc1fe46efe7263ebd25e4a2fa7bc622765019ed5863bd6e763", + "salt": "3c70799dd9ea159e7914bf5e8389a543" + }, + { + "message": + "682507e331aec940c3aa38fea0a6c734149110d5282918504e0434a6c4889cd8c8f3aa89cb3e018ea80fa9959a0b1a63caf9d2b7701c2535d01aefade9feb560e8d8068c00bbbba49389e6216d4898f47e27ff894f1688eb1c8fdfa38904aba4e9f2e7be19267f63b7293f7b60f4a4bde816ec0ddde11099768930ad99999f761d04d3e4de0221617fffa87b5b8e694be8bd82f39a9af1f64959684b7c5bcb6e773da88866b36e13d31f15a19132974bfd9eaac06d1512bcd2a0f2e38129e2087eaa3216bb62094b2a50ceb9d88a2057b26766b451c4df457620017857747cdfac09e819f55ab50ef1396372024dee0f2792dbb96528b638", + "hash": + "9985acd9b71696d16dd0d7375957bdab85c445824ed716728dfed583705cd6f7ca7ebcb57e354cd2c203e489721526f84a44b1102bec4f6039e80a2242458615", + "key": "616e52325c40270061c7313290ef95099e42680f39d95226cd1234db71030b11", + "salt": "7d8d77fef0f892424a19040047d80bf9" + }, + { + "message": + "a47186c41b5bdd12e808a5c365b1c1c9bcb30824d0aa93fc62aee09082f85920a4224b230ffe02f4088fe1d966ca129d49609b4ee8952aba42ac0b8d723700e2f49d59372fe8e6e854ccbe33fb916a73490e6bc2961f08adcf3e27862854a732fd98e1b20b63cc362e2130625176e09944cc6440c9299a194e344b242bab9b7d605a9777fd5189a2baef6c997b0f760db38f84d84b503bdf18fa722e8b939112126949f689ac10652b092f805fd06273a3cb633828fe0843b002914c982e44559d105b391a7a10e4ad783f1c6aff5e3ea91f2fdd2c4d32f545ae1d824ff985cbf3321688411095", + "hash": + "e7bab55f2d4a9bf8512f8bea11e73742ad70ff0bb62724c63f4f10dafd69e583fc32e380d0ab4716d8b4cd8d5e213cad66b7a503adcf6759c599a6d0928e9723", + "key": "f1a44ba36985d67779ebdb7673ee94bfd9bee5766426f230bb4749734abe299a", + "salt": "3723e784de12d6ab667d498e1f21116f" + }, + { + "message": + "ee267a2ede998c05dc160a0233e1ea742f3d959a41f65c268a7fb26f540e24abf6587151481db7eb214c7f6b02114aa22bb33c8e0081a5a73b2595af73865eafb731f6064c7622b6fbd1488f598fe9063bfad787ca9434ecfab3f397c69e0649e2a4dd93673d4cc0ec46efda606949c0d25b6aa2628b732087479e9ece8b8efb7f960351bb33599a740f6229019627ed22279c66a654371c4e252b7bd5d69ebbbf1fc0f5826966b8999bf28bae31bfb15bd2744aee27afe9747d6e676518704d73e645e6a249139535e8ff410662496161b7b03ec7b163cd957ecf9ba96d5eb5c0f8", + "hash": + "d6b4872f549fad30263bfebd460ff2523dc69ee279a2b58d51c1dea66dd601dfd7b8b48f6c09b54d242008cfd0584fa8e3ee9c3d38f77905cd5ec16169c211fd", + "key": "6c9d6004979bbff07b80d2b7ead8511ff12dcbd2511b2b9d6ba4a0f85d337c74", + "salt": "a3174a4d03b0928b199b5ae732be1595" + }, + { + "message": + "b9075eab2ff75ff6946efc971e22ba13e7394c0a5bf8f457f5e907b599a45089015bcb98ce03f2eb1f1fae9a361621176dab6aab500e508b9a4850834890286d0be05a043204017be7275996191f", + "hash": + "1055cd3cdf4216ef1aee9b44457d87d626a0cfa8c3e5bc42e4bf9202097874fce0cda862fabdec934c5ea092ae0d519b063a0089141fd4dbd9bbed4abcf3a945", + "key": "baa2644643658f881abb8b01b8fa0a758ef4eeb1718bab1d3106021dc7de1704", + "salt": "79e6ec29bc2f3eb660b1614b4fb59a5d" + }, + { + "message": + "212c3cb7bda6afdec58b728db746c89db69980618d1293b33e29c0599306d6b51ef7c669d3759dad2223ceec14ab39c5bc5e808a36ab8da9f89ebbf7ce2e6b24efc4042b5f36fbe8238ac692a6af8c6732a734414fa4d428ac433f9abea3199e4f345935c6feaa38af11ee95c85203ed001abfd16ccd8466c16cfb9fde15dd6937130b9719f24aff3f3685182d1fcfaa3820187dc79c24e9a044585ecc", + "hash": + "97328a32c0e2f1527ac8c26e7fa2f968a4949266386d17358a22d1f5e1a30fcb713fd8aa4eb14e0efe9cd6141a97c5c1fc154e9ae29fc1f3b270908248a1d2fc", + "key": "309c8b68b8c976ac0f0ad7a0695898e72c347fe83b6b415770de1a4bb0ee5000", + "salt": "aa021958228e7d2ef3f38748dd627ef8" + }, + { + "message": + "d3b2249647c844439ab41def1a811c8369e2a8f0da191e65ca222e86a0def47ae81b3c36975c6c4d1fcae5c9bd17a012ed3ea0a5cfdeb134f191b0295af3b7f59ace8450f8a623136b1fbb384872d8e56690b6977f86d36197074e087bdf835c3dca7ee8948da8fec392bbe379ac9a23d9825350d21b97fd4d4c591658a4b1686e711339cb7f95b06584a5280114b7be386761ef508f30664e093982dd5fd2055b", + "hash": + "d47d417e0da2a9325e255efbea13a49c81c209ae80e628ef150238048aadb6ea503fa582b73c69bc13e710d44edf361ef6f97c44f7d9f18857b725376d46e508", + "key": "b1298f2a5d2088e6b81d57a6b91bb12991bd7a224c09388373b319d7cbadd6c0", + "salt": "4b97d55ceaf03cd42749cd0a7992036b" + }, + { + "message": + "be86780720b3b256848a4374672f1498f0c9290d50dd3199c8b12958f5fc67807220675300e82d4f3ea427ba885966e495831b80eb87552919a6d4226ba80a214fb8bfde243c9789fa4338a0985b950fdb94b7e1addd1f9374", + "hash": + "d35a92c328d82ec9252b201d0ccbce5ce7b67f153f6e0ee4cc20708e1698dfda7b2534670606082a18a65736d9eaf4543afc1b96ecf8ccd8ac01f38d37a58e1a", + "key": "c7d8dbcd872c40ab60bb993a0f843df6d8815e65907d45dd3bd2d70c8062905e", + "salt": "1573aea1fd6e242eb0321a7243c90ca8" + }, + { + "message": + "e3b9c71ba6176fbf32e659e1a554727e12c137474c7ee0c8581b083f093b4a47995017b9caf5326448d375f12b0a3d3fe715566c35f5260a10a86cd7d0b18a367d840f494eb4682d528275c7de556f6bdb173b5cc3a79ae8b2d0a6517b154d3be8e2687068c1b2d9eb1b89c5abe8aeba6c240be774ba8ae359c90ad1126a769fa4c2b20faff2f6b9b029f637a890ef2278c3d16b7cbcab05fadef38bbbc4abd7cc40c0e32438351342d51d42eb5268a287f6269593600c32c4e47b80", + "hash": + "9d44a77a5669cd47bdd1ae25dbe22c4e45f635607b72a4244204516db7f99f2c7500c93be38aeaaa2c74d8dfd626455b7d289d7b42e78a12ea46b8afe29f9f6b", + "key": "947b386767aa677daded7fdb63f9d630538dfea38852b797a814c6430091f49e", + "salt": "97e3d8f69b8f0a2a02e1e016070a8f6e" + }, + { + "message": + "07db88b2c7fe6320cdd2696bacb74f765c0540a6812cd2f489611ad279fed5fc3bb561a38f5562adeca70ce659214d4bc2b0702aeeb5a5b10e6868016a90c7f187e39a0093885c53055cc088ef57366202d786c32bae149054f14465df765e94c1959a6dab41af29bbc65925ece56f15ab2a9ba9ed621b4bc179d7ade92570de55a0a5325b1bbe32cc016e7af6cb24cf6c", + "hash": + "2bf4bef4c4ea0c0d5457fcb71174c0560eaabe3badae6bc4f1a19c983bd508b611b47522fadf1dcfcb2ce57e72adefb8643a8a243e3a64fadf9050187bf9f8b6", + "key": "fa48e42fb170e6a96e9dd3f1e50f4fd80632ed674245a5b362c1a4333114c169", + "salt": "3d7982c2e1ae860b2f1fb7c1adc42ee0" + }, + { + "message": + "645df329cdf7435563b351175b89894267537537692a536b315c18c3152a89872a138dbccbcc6a48cc41c732073784eda4b1ecf4b42c5302716dde34e2f9337ddb096ac5862f4df1ae43338d07e5b9c699f21340694dfad0e61c44809531", + "hash": + "3881a679815272d4f72b8d4b1ce909245357d9662a20fc8d35147a3d9f896a9b8e1d7738fe4f4996a1de089a42e0efad58a1dcb2bff8752b254c67bb9f25a0bf", + "key": "fdf7331e51d045f17de7151484537d41654fefb7a69cd06a45193eb5d5a0e41c", + "salt": "f0977a832f24e389a52fa9754daa3ee8" + }, + { + "message": + "c3d2d62fcb9da6a1fc807d4dd5a25a1333e08e6b4b7da5f0c1973b43c6f9c48f8e367724ceef7e9e2cf26e6d5be752c7ce69f08bf6daae8d6ecdff9aea4e5a4a19d5fd6a285f69a577c459042183c67dd9648f9ac1ecd32c7f2110f09f23c55fd3622ff78e718a801ce7cfe3ef8dc41fe9890c34a7e0e7c72800b38b0ea2325b35fbffc7d3cb94baafdb3f750c4d363eeca4ecc593369c1b70dd934b97746226c72b4aa590b2e60b3da02e1f717d", + "hash": + "b70bd12d4f3ec026bc2e00eb525d41798c5dfd8784dc459de34fd7c9f593bfdd1d12b173c62cc6807f985c107b1f3cf53c29de2a71a16db402a62085ca211adf", + "key": "2c5bd0746c883bffa7d51964966ba922e23013cbb39c89c6404f057fe5e8ccbf", + "salt": "77f3712eed3bd1de8b41c89830910d43" + }, + { + "message": + "1939b38744e359f76af899a51fcc2cd7d41f931e6a92e6f3d61eb578456e22a09cbf04640f1510015b4e7d99a100da57d087ae695451453862abdbc55ab6517f7424bf4ac4d76945153236538805d71bcf7dabf33f1dff80ed51e6793bbc0a92e3cf105291cf33c5e4f25b05defb35859191bf2ae51eab21b320f70ed92035516152bdd297a7069d222670070e63597c95d58d33e1af553a9c1f95ad3b8cdd363a03057c81cc22cb0623bd996515fbcee639ec43d94b66595eb30db92ce0c2dac4b3ebfe7f78bfb22ca3221a8ca2b078d627301469e73ea6e02f768ff9d11a", + "hash": + "146f30dad3800790972aefbb0bdc7e8efaeeca6dfb27d222b55a38cf898e86193d5c67ccb4c1962634ed82e4e72140ecb442edefc6620c2f2ba03a2411fc9e46", + "key": "055b374c93d7fcb0c7bd8a5dffaa0d83fec58a7bbd2e0fb0d5d2783a11f210bf", + "salt": "4502b0308a463b9d895647a2a3059fc2" + }, + { + "message": + "953de9af49960171bd345c0cece6b6fc251308ab21efa8cf5f44f3080a9e3b0ffe8c6e1a152907c7", + "hash": + "bb38b8a409ceb62496743ad4952e7732f962113cef976f0cbba985c32a30d6dfda122e24259726551526558fb40d5d5f228c125c566cc08898af063103245fe4", + "key": "d11212aa941719c5e3d5bf24783b5f9b8089e52077610bde749e8931e5767894", + "salt": "547cc3ea9b65a5262b3316bc0653e4e7" + }, + { + "message": + "49b450820b753ad5c67e2667d498ebba5fbfeee1b9427eb825eda59211a288bd863b41c380a2d070d8cf9815fd43fe0b004aede5c78d34b9bbc3ff1afcb5f6d238844b9b726d68b57e3f1312b06ed6c5ed25cf2ac2bca45a91a9275fa31ecf36729cf6a6043a5bf6e3d6a978155105384b706d73a56f52102d38b477a7cf54ad1563b970d69bc455f660ee1c84497fe9", + "hash": + "0781d05bca0f4d46909880e93499da065d2639b950aa2ac8cab9b71270917d3f115d42aed59bd4b3a69b7a78b058241656a2cdfa2d1f5995ca25b9f21048b2e8", + "key": "9662f86448aed517549a66d663c70b80ce4c61baa5f7153b47dacdc1c47a80e2", + "salt": "3b3e5427c85bbc225fcb088550d5622b" + }, + { + "message": + "7e12732d5efb5ab50de0710f57f267996143ab1c29c7561bfc2492ea70192edc8d4ebe4d80d06f920accd5fa76b9af2aa4d6952dba2a9641d5dd56fc7ca35f", + "hash": + "e7f12a58ea0f12cfebaa8997a638d6287ec851f73cfa51171fb447c9407ad5b0c5c51a6154d1e3622ea5ab7a12a603e770011f97d5e6ba4cca9b391eff01b4f7", + "key": "5d87d7e8cc0c0b6af25a9d6a8fcfbaa1c26558ac02a717d1d1220eb44eaaec5c", + "salt": "17179b10c9ddf7cf79f7e55e5e4ee868" + }, + { + "message": "4cd72f2f95bcee6cfc991c44d310a68b5c4d", + "hash": + "e0237a83bee1281180db125274b77496c0827c690c6a1c7650cc129c7f016a13012f41515eebed08390bc7a7f47fcac2fd7aaa65ef4b0c10fe1b62187cde9f22", + "key": "c90ba2ec3a9e82db544abdfe9196435e350233423faef98215e63f1805e07725", + "salt": "8b356a69317755cfde69a2077be72aac" + }, + { + "message": + "c4377e88bd13de82edea40129dff446e0f8de75e7310a534ca6ced4c294e2a821dcf77d62be3e109d9eba372cef5fa341a818d6a18c3014ee1d4a70335e4d27e404ceb198db935918476a83aa3cc4791d433f7458ba00ede85cc1eb0fb1d671dd6bb99b4d585ebed145987c45fc5bab0b11fd7cf4888019ab326d29eff3476dfb59557ee0b946c46d3a989850dfe05a00071501303c35a7b6a86d11ad4a429baa06cf3452e6732a8f0", + "hash": + "adb39ad75d8367f7884b531f3f18e077dee05eb3702732b51b1586c069c12ba24134ce7982be1569a477687ec132e7ef8354414215096fa7a657fcd3744511fd", + "key": "226ee344a649fb4b3c24210c6fb92aab8c7b200431c691c1cc3bc1e01a951852", + "salt": "4c7090456e8775d6e51ede0c75bcc900" + }, + { + "message": + "c674ca9d881da3c520c5111b29dab508a41c4bce26f9a76dbd1e86e6b54d2dc9ea897537540393e4186614fe60eccea595ef", + "hash": + "e0aeb31e0c3a3bb277297c47b6fbaff3c4a0a234cdfa30198ec245d872c147c066236ae560859f8d67644a5598565a5f8aea5502a8a05765b4832db04b48a9e6", + "key": "ff4f7fc48cde3cc0cfb4750e6a82bfb639d103485d8afe5317db161eb528e044", + "salt": "d4819f3a27108b09d75442b6e48bad21" + }, + { + "message": + "0826899c1a03323f444da663ec670aa2730cd166d237b9176a76a1a24d715f792c88e2a80766", + "hash": + "bd36af99a13b5b8e21a62569ef39dfb66dd0991e552779ab7fa57e897a5f8d2256bfa9befec61e68f1c002b9a63520228f4358475b1b05170ebca3adebaa22e4", + "key": "0c5f4c73c304aff5734c83631c723124d03ff50d6c7a1e92ba9037db2a2a734b", + "salt": "21e7127cd46eea2d9ca87c18cc34b2a7" + }, + { + "message": + "6d16272d77e04a396e9edf0def2ff4f52ce85609fdce686abd8d23a9dc468d06d9ed5cd126de55fb359de11ed5047ed7e2da8d1a65970da3d4d9ad8b88b1daf9808663089a0d730d41d9b80ecdaf7b9a3dc84ee4fb8b019df771ef98b5689624906ee2e0b07bd913d99a3f62c5daeebc6491551220302b3367601061b245afa40994bc8807cd8545ee8e632272302bb4c33a3228d1cca8ee3d5ad559f3b3f39cf750883296224f84b8cf6a5effff53beaf0d38b7010bef4b32cb30e5882ecb3cca509d25b99664dc7254aa19366a4886c3116a10a78f8ddbf11ee57c405f1cb84008213f13633263316a974a173705d8556ead070303eb65a289cc4d3d7baa11d8f9ad14c66b61", + "hash": + "01eabfd9b4605ff8a7562ad9dd1006a1fd9dc87238985e44d3b2a0ca1cde10108526c2ec4f391e2a3dbebfec3f5495dd88ae97db9f889b7fc02a8cd01aec9c4a", + "key": "42494ef7d0e7bfa4b02f19eeff4f71de2a8e1f97df6d2c26fcccb1fb8a956345", + "salt": "a82a5e6e0c3b0ad9a60dce3ccb173576" + }, + { + "message": + "3ed18ef7c804feb9a4e8e2053e770337974e3d37a38cc15082ba138c1a1f61deced71e9c40edcf88690880a4ed17905540f73ad81609b43fa7c5a1e6cdb200949d98fe70a6482e8ecec1bbbb38cd9080dfb6d9a241285c0a55fc9a86e9853725b7c4cc80d3555089a183c4ad0858dca4fcd6146a9c63dda9dca9d70ba1503ee70265d0da8e7002a11f13b22b406fc3f1640439571f1f32d51eeadd8180d3d29fd067dc8674f373d1dc1759c8a0a258de01253ea2804e5380bd02cdeec591f3d7665606cb0c302d982323a36c9c47f98b33bb365606241a96a886326cf8ed2c98ac050a5dae18333cb9b5", + "hash": + "85277203f878547585da284d70f07c6b0fd7774d1165d9e22820c3824a57f5b2988ff4a3f222aa9e85e4f5af5080962a1e433a2708b26d8f15e8d32d011041c4", + "key": "766b98774342a2562b3cba6959ab544aa001e95874cf6a99f56b521d31d85644", + "salt": "a7e03780770b3e0bcf09d882dc695c67" + }, + { + "message": + "2c6d34de4f376cc346f309e69770d088c22a1ea9f4ced7ae2fb662554b4e324b4c8b2ad0b6b40efa5f9527683e357a7996010fba3aad5afb01d46e52acafb040bd6ab9c0da9df610ff77258fd5a3e33a5abfdd3916d5195c097b4d08e734dc8c517ec0c1924cf9e6ccf1e0fa01688761d712e5d0e4c5cb38fae7c62cb7bac2c1e7085b2d5ea6649c81229da4882d14f3ed170aab930eec4fadf06f09436218e67a15ed317317807ca75c9586c9c8", + "hash": + "e60fe0598f1492bee48b9026f9a7700763f42d742b61b731710e1e58046277fe672630e8fb43c512e47f572dce92691d984ad0fc798c6b26d68940d2fa2dc129", + "key": "9f15c83147ed3ce54e0f0f80b94016ef9ad238704ccd4a1e3149252479009100", + "salt": "562c60e32bcdea0f1786544c8208718f" + } +]; diff --git a/test/crypto/chacha20_poly1305/chacha20_poly1305_test.dart b/test/crypto/chacha20_poly1305/chacha20_poly1305_test.dart new file mode 100644 index 0000000..899d640 --- /dev/null +++ b/test/crypto/chacha20_poly1305/chacha20_poly1305_test.dart @@ -0,0 +1,44 @@ +import 'package:blockchain_utils/crypto/crypto/chacha20poly1305/chacha20poly1305.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("chacha poly 1305 test", () { + for (final i in testVector) { + final plaintext = BytesUtils.fromHexString(i["plain_text"]); + final assocData = BytesUtils.fromHexString(i["assoc_data"]); + final key = BytesUtils.fromHexString(i["key"]); + final nonce = BytesUtils.fromHexString(i["nonce"]); + final chacha = ChaCha20Poly1305(key); + final encrypt = + chacha.encrypt(nonce, plaintext, associatedData: assocData); + final result = encrypt.sublist(0, encrypt.length - chacha.tagLength); + final tag = encrypt.sublist(encrypt.length - chacha.tagLength); + expect(result.toHex(), i["encrypt"]); + expect(tag.toHex(), i["tag"]); + final decryptor = ChaCha20Poly1305(key); + final decrypt = + decryptor.decrypt(nonce, encrypt, associatedData: assocData); + expect(decrypt?.toHex(), i["plain_text"]); + } + }); + test("description", () { + for (final i in testVector2) { + final plaintext = BytesUtils.fromHexString(i["plain_text"]); + final key = BytesUtils.fromHexString(i["key"]); + final nonce = BytesUtils.fromHexString(i["nonce"]); + final chacha = ChaCha20Poly1305(key); + final encrypt = chacha.encrypt(nonce, plaintext); + final result = encrypt.sublist(0, encrypt.length - chacha.tagLength); + final tag = encrypt.sublist(encrypt.length - chacha.tagLength); + expect(result.toHex(), i["encrypt"]); + expect(tag.toHex(), i["tag"]); + final decryptor = ChaCha20Poly1305(key); + final decrypt = decryptor.decrypt(nonce, encrypt); + expect(decrypt?.toHex(), i["plain_text"]); + } + }); +} diff --git a/test/crypto/chacha20_poly1305/test_vector.dart b/test/crypto/chacha20_poly1305/test_vector.dart new file mode 100644 index 0000000..a73442d --- /dev/null +++ b/test/crypto/chacha20_poly1305/test_vector.dart @@ -0,0 +1,204 @@ +final List> testVector = [ + { + "plain_text": + "33405fb9b1318087471954fb5ebb23a8f181d6b5238ef1194dc7d8d269fd59b81abfca7df70da28a732466679c495b9c300b2b22f7a1bba5200e2cd0253714d7bc5771e5ab29266a3cbab07e5f0b6175a1b9e79d241f8d6b46a6a8cebec700f3bf64290dad943b53d81827525d3fc72332e924df17f1c9504c1b5b5a25f56bc853a702cd36756fc35c327bf1a8787b9692a41b3d33cd3bbee1b4a22f15ec2cf10f964570118c832a6e86cadda7570ccbd5ef8d002c9d633cd2518d969f7f14eb9884d0a0436042be280db21a6e450392b46ca5e0b6aeafb0f2383a0adb5fa201c0b0fb9e78", + "assoc_data": + "97c66bfac1abcd5af80a6109af1f9ea1e3c048cdcc37982206fc7f98c6dad9d9ce66c54855e6f412f982a68c21e8851a6622e2c6e3542998ba3238c00e3a1d779bba7ef6a4024bae2f0ac98779afb9146c940b2ec4abaede3da2a3ae3c13d432d0585e5f5ac97cb30225ef8cbc351fcea7fb26ce51ac2bb9a3c24cb955976ce9ea6ef5e3fb0e34b713dde70aa6330110865cce2de1107ffa14a383f748641f9a483b85b3344808ad2c2d2bbc70c14ecd999d6d2b44", + "key": "86816c25ef7440bc28e79a2b9e713dc40170ffe031ca6b8fdabf9c1c6f8974ba", + "nonce": "e77eecc8bf967a9ae44eb684", + "tag": "781e09050e4782a4b94c9c759293bd86", + "encrypt": + "cfa4007293cba09ac8db587f8e13d700fc17a1b7622fdc450056e4974fe7cd5b7823de92951482187e97b2adf55033541128e2073e66b40823cb97817b28efdee697e9f277b9d3ed6aca2b318f9743970b8655fa7c081e266fa0daafc7e575a97e8fe6c3324d61f28f09e7b06e633cc5a3542407ea54c64460d6cb5e90c431bf12271d8fd142992a5c82963a3bcec78c32cf0e5aac95177fdf461946d3d0e20518a56d6d49b5a827eec578583eb7bb4b83eaffb14e65c02743bd41b7c4c1f87caca47938d2620349db1a013129942afe719b436d0afc382b2eafc5050748418bf881b8a9ae" + }, + { + "plain_text": + "a40e1bfd2a7c27578bccbd35e68204331ecf5be704a8b6388b717b611d22e9dbcce4e1cdbc03acab0cd94f7c65bb58c21fdffe4c2d431f7be328e9ff130a926c3bfd9cc34e3b408cc322686cdaf04e1accc92eae4158aa11a2ad4229cb09d5603024d84808d089f419910467937f929515fc32d6cad58c8d1c9eed450a636eb68cf93940ff5ae6544f08aec4560929f810b52664e565d52be08812dd1e83a46a9ee867aa18dd66b943dd6c44a0642652963afbbd2e6160a86ad73162004d8061de555833f417115c2d1d5cdd5ce8216484fb9056fbd41e1f0275c2bb5f84da32c2338fbe6bccaaa4e7a5ae7fb8cb", + "assoc_data": + "bae115a655afa35bc2396b96d5447c1df755c21f0e38bd3f3d1a96e902d672310077611e94fd6ed4070284d3e9fc17e3aa936ef971dac0a46d6e1b6aed93f8", + "key": "350246ee5038c1481fe9026c8443f21942c233bcf20f9188cae7c0788d9ce3b3", + "nonce": "e5dbcb67daca26c2", + "tag": "3ef0e1f660bea5231cf315ed230aaf61", + "encrypt": + "09a5d2535cfb1e34370a6444414f715567895c4d44f7eec3e776ef5c34c76426ab6904d5ad7168e597006b0008949ed7ff902753a032075523633bb05570d88c3a31f44c5db2ff62b563e619bce2ab62279b01e26a1e2cfac76642e541e227ba084501f7a24183a53ed18089c4b8b0f785f0a0ef2e9293d2947fc2bf28504993cc0a2a8511b77433bddb843846109ea12a00f2b5291a119767b3f26b02002ed6d6e4f9fd7fd3221d37194c36a898204e7be98e73abbcad87e3a1eb0cc1bd615a897caf28412ebb4ac5ddca52a3264202e18ade1fb782ca3d0b295a5503aa598321f495aa764c0b8378b69224189b" + }, + { + "plain_text": + "b88f76bc25342b02e7f950f77cb8f4afa92f3d0df2e8f5cd4723808b4773dfd7d98749aa73354e77847d2a1ce4850ae1b5c93e73dbfcffded594386a0dc8af0e1886ee34d0cbe5205dd590d10c2cb305807bfbe6075cb8a861eb67b373e0ad2a9a03b7ac9eba7e3c1966bd53cb792fb400c209fad60bd8a864e7e02ee481a8796aa3473b4a0d3480ef156d9554ee28145fc3ad19ca6bb1beff20d6a225225ecb1b697a52d21f2f8347e6bfacf604e31f9844b3366287cd688aed113a017d308e3fe47e8ce7d45f37c2", + "assoc_data": + "0e46d1cf1192d5f1b8a78681558f55d991b3862d439cdafcf28182a1e2695ecea42db27305171f770e7d9cd6f11aa3c4eb0fffb42a752db08af0c6fa8fbb087d0f54daa8934b4ee683424df70b5869d75fc8aa28b5f9f49c1139acd8c8dfb5537d93c2b61802a9db89c87c4455ef9e8588793ea714f3ea90620adb934a8518aed5e1f76472745f8909a19968a73fac382598280d66fc8527cccbe1d415b378e48da3e5cc3ef79961b0145eff8490b3980d2224370bbd6240fa536ffebf45e258872a00aaf8a4f63e5bd7600986cec46244ca3f0babe67b350023d1755270a940c765f6dc429f4404eaa8220c0e632e7c687ed0e2be3b056a", + "key": "8925c1ff90ce3a13849a60274274756b3f17d2bccb8b9bd1ff5c7ddfc7dfeb35", + "nonce": "3c140e0d349fd77fb5c7ef26", + "tag": "f2f1c85ba289345550565c8f0e43b73e", + "encrypt": + "4e4acfd9e5cc4bd0322f715548f818d733fb97ac97f88173964aadee37a24170da6a531afd668402aa1cf43aa02bb9f8037de0b0b51cb1892fd3b702b6665a0e516ed7efc03604e1e9bef705acf2804661db1482213bb0a88818e9b29c4d436f61752ecc3d467f448a3015304336408a43d3bd836f3faa01034bd6dd607a2db1ad886a42db6ad5d00092629a52cbbd707746cfd2fb7580a72c3c26f67d417e08eba323b7e67653d5f361fb4313491a844b56dd078a68c02143c7160893c55f2d20ba7dbc9cfd0dd5af" + }, + { + "plain_text": + "9a3f957c2b3a4dc295d7469be01918b09e043505e9dc3dc420e72658c6760b867d09e78afa4fc0f5bbf4762fc7d5bef5749c867893c86215e8152e3db55a3f071217646287a8ab17bf4ce2d524cfd3bc495dffbcc3ae298903e3fefb894b4d33729e1dad306e18417ee7d47c00df0553958a", + "assoc_data": + "8b7c5b9b2cf5cf93cd87c07d3f6d15550f49607306fa45b0f3967940e1bcdd648a6f5ddfb1b89446ae456a054945cfcaf6fa3c06e9ede6eb729b8512683b", + "key": "ec83477e50ce2c2bf8056d4d97bdcd790d6d8543dcb12614b71ef4bbdbe4a749", + "nonce": "fd7ad40f4e00cd76", + "tag": "252942e8f30758453685a72c68f14a65", + "encrypt": + "0a98491735e75fb8aba8c6fdb01194db6b1426f19db6650e6c9f2651e3daf6e31744bb2b5f120c35e9679c47ca1bd3a15d839274445a0bd078938022880fe068d15b98b51bc9ac09e453dd63e66e1207ce13e5fd8e5226e898518326595c4ecf25928e37a262cf25c63b53c7b9e3742b0322" + }, + { + "plain_text": + "1ad78b05f96182d050d5fe5481204a1181991a3c3490970ebb214d1f0ff82d21f4dc9b561adcb2088813daf129e40bf3512e51e6bc35bb1e2205a6c38c410ce69596b58d2f190df267a7fef8570278a7ee0d8890eebe506bbc09572c6e6623f16364da6579f6d885542a1c4c17fa66cd4a6da897ba3eec9c2e9fae4cfccc3f32dd0af85b8f99de59a8cdf25b1cdd6d7b425a48faad132fc57e8e36e5e2286cbfc07534b0a7955f3dc1d5c45d37086ffa8b918565", + "assoc_data": + "d0f023e85d528a868a48ef4fa341bd37dc23c734dd7b62195d3a7ecba4fc69d6b6690cab69a6b5f5d08a32af389e02d8d55ddc41b0d2836788628b5d60a3d50dd1aecc0c0efc9f4dbdcf07d98a6c5c52dd1a9e8d32c954584c7aaf81f94f84d2c61cce7d7a68719ab18767cdb2310629dae9ab72fad768e78cb090a3a2666459888c29f57376dedd10f7cf0ab0b98e1e1ce0a933c50b085b12", + "key": "6d9e46a7cca5e33fd6f64f32e1a126cf5c684ee8ae89075558417f845a75d013", + "nonce": "653d4b0df8f8a97e", + "tag": "52dd3bac81583da18a4c3324958e3f64", + "encrypt": + "e4d4f6657cf3630034f09c9dd2d80e09786fe5827ea264e009bf24212e3829dd63f59f81bf2bbe28b4473eb46034738a5fc34be3264a9c5459f6308475f3db881db2e310964bfbe346fc5d350baf4722324a993989494b53596ebad4d4b2487d9c5c3b636655dedcec9f621bc7d8c454fce8dddc5727d7809539b9a1a3c650995ed539286a46fc19b7f74b8fa5f0f23d71da0ef3513806dfc244979b85e8b2181d3addbac74946e26bc65a8dce3293b349694fea" + }, + { + "plain_text": + "131a001cd08888da42154066b4a476f1144e3c05036977ad800fe02ada5b99075920bf3eb280ed346f1fff37c2c61368aacee69078ddc55c5ccc736f51757d5cf1e48b33f163e73de82242036fe6fec88314514f3cad23020eb15a5ef0ce8fccf979bc9e1b73b7e2dd82c9077919e297d1ad5d3b68d9060154f936f2bf140ce2979bb7c93e3c37fb7f4a3b43a627776b32ebe489339ce77eb1fb7a4922d4e3eb0ba6427204d101bceb85a7137c9d85a8ae74da3fa434c49525429ed6548f0eb22822210697269d0d89ccdc1bbe2f2099878181d2d2a36c0193031b15c7fec94be4eb1f3ece9dc0ed391b6236a3d657d645ee76196dd0e6ca8c", + "assoc_data": + "cb7ceded05f40d0964b6194a9e47f7d52f6fbf4d91aeb63fc74b2d56c5778ed81658a3566faef57e5b3ac13ac491b603d1c52af1dd2f667a36e67fe29030f1b4b91674dc963dfc69e464be91abf1f7f5b5bb15b51ad80ada491b72f798d641b969403d2ce6b79561482a8ba1b7cd2b9ec8ac257c601e734a09df6715c51c2624db60a0e7e263d630a17ae9906e58ec60f89057162ac536ececf4d8cbd14820605858d573975f1423a071d9833ed157fa18", + "key": "f9a8239cdedf36b2a3bb29ae602936c023626eddc4ed2ca450b5b8b449d65a26", + "nonce": "701257e9e130a57edf5c94b9", + "tag": "d69283404cfa2c1f4621fda4b02a360e", + "encrypt": + "8a1bea591b108c87609a28beef09bce434255794c65266e7367113fde278b92a9ba3239f03a992054811cc54a96ef47af1501a8ca0c558af80da69bd3d52315a5a55d47ee5bc27a0b7211c8612868ee8fed1c455f8881f72f91c701ccac18f0cda5a2c79d477ecdfb988b6762b9be95092136d1628550d5fd3b83db925b67b78468588f263dcd0e23e95d6444cbbabb49739313569eae312a87e922cc5395a050dbeb885aadd5c8d0d9696ca0342c607d5ee51bb9a5fbd6ce5b67378e252e7f2f391573e338bd08a416cc8845c689d04bb29b7e5e9901cf8bd02d5d4a0b2ea25037449388b41a0e0b1814571958e1721355506c17c059a3c9f" + }, + { + "plain_text": + "c42c07a386ac4e9d852fd844af0ed03a6ed0a6b61943c3aa802207a43242582f2fe4c12b7aa3d8ba6e9718cd389fa5a3e73fce050bb190a9e6d82fc844925ff398fd494391688711ce443489b5cf394d3b53a8912e7c80afc5a3927e87e39e8c86cc60dd1e8db321d1e7", + "assoc_data": + "1bb357aeed0dfee2a21c191633f47a02bda6786ee601fed87a21648435e944492f9206c16178178cc961df78174a35189904214b0c7fec086117597cb2e2655e2e197a05e2f21ce1e1c10766ee1a6bbc65607fb4b95e5f8d79f97c14f2", + "key": "88e3ef874e870dd0bc74a329104ac7b26c57ac6f2cb8921cedb5cb027a3a7f90", + "nonce": "fd27a73c2d441c5768cc504f", + "tag": "e842d331164afa7a6c76a65c63399332", + "encrypt": + "1f2a133e9cac437c26020277ce0c1a101efcc93822f89456c92c90e4a8e48d088edbf9aa6a46695ffec76c589fb46afa67578c6ca8b500395572adf23eda209c7bd9ab5e71deb0b96dbebc536ce83cc92de298789f05e4f65fa8a3fac3ddb25c78e74c3403d3d83301a1" + }, + { + "plain_text": + "5c76b23bc603f3861abb3d7d8f8e4c20f181cbe23f84757c98fe6621ff31f1629bc367a7f80082f9101c15f7ac99c0b78ebeed06015bc521667540068523add648d21cd1a928f3bba1d987b4d8e1d3270fa3f70d434be31e034c67a095d4f27e7622ba7bf3a2e1935bf53d2823469b6b32805071f6d17ecc830680123de9e1a3f3a14538ad4895448236bc872c0d80321f323a20d97efe55de4074e566fc95", + "assoc_data": + "841f93f90ecd4ce1334bf9572f7b9a43abc0a97519e75cb82deacb020a2f47783840c38c2293babea5fdad6432f3b0b14907690c703cc855af16b3ee0b305fac54eebbf712d336dce46c13f35821ce3bfeeb89b647c06fc6", + "key": "71f7ac0b46933d01e90f04cf44911ab7f54142d4b6924abc8d95079a4bb7d5fc", + "nonce": "1cdf20df80a8300a", + "tag": "cef7db2500dc4115667a03ea942731ac", + "encrypt": + "1d2d6837b8de1fd91b4d9c2ec12ff79e4b6b8035cd54d343f112930e5e1d61b77dfa8d5b446dd4021e2b8e8128b4e6940527a6d1b57be0a8d3495d35e2e955cdba21d82754db0447829ac4a890f69df635e234d0221f3f85d7873b3bcb933b6bbfefc21b39ea231cd8d97bc3ba419513aaa39af10ea7002bd22c2c49d39d3ed7e6614144c8a9233c5b3b7cac45a1f0ab65ead38f2ff52541ac6aa490d564a6" + }, + { + "plain_text": + "c23af4fad1fe4d67d3e5cfe4346eeadc061e7c1667744b0a19d0d81f23baba7c856257c9fc9bfa7ea2aa3c53608adb09dd15e2a2f009a34400a3805513b96ba2a801c405b7439e557c59046e289ee227e6c2e4601e4ddb1576c214ecc4b87781cfe48429b15f935a922dc42de9c86d340c12a6bb69436decbb3f861259e28e5d3d4dc6ed633223cd8748", + "assoc_data": + "97a0b239c4ac609d2e3b58acfbe62dff300b2ffd2a549e912cce879a5c822c3243044cfec210b83f3ce1d7b0f8a8bcb1518cc779d9262f7588204c5087a366558a8d3bc8e37f937df5774309f87ae86469d4ccb39dd25eb50d90a773a4c38cb0d74703c12efc9690924325171194a6189f8f1347390f839003a8497f780c25e390a70710ad74788c", + "key": "ed797c337896fd0afe6b5c1a1263811f311d96fc7f1d3a714ca8f91ae2531f06", + "nonce": "0ba5be541c6b7e9ed25cf18f", + "tag": "315fd48f288c78045d4ccd1f7e40441f", + "encrypt": + "23205cc1a7556f535ecba626e21d645223cf82f8d8fed769638b571625f742826a524268ff00b398906a776e46f802ad8439b172b2e292ec77806caab7d534336c5eea8da148b239741c0364e45af77559dbf12aaef6006f41fb00af6bef64c9b30b7bdaaf3e409e8351b82ef81b06a63ac5a23ebf2e55932bb4e5c779c966ad27ab3e92221447918892" + }, + { + "plain_text": + "413ae3f00172fdb67a11354f9d73a171b5a0aef77198826e482afd6a6a59b8928391a9424cc3f47eea572a3ef3d74c6ec6f5fc2d1b9b390843e9c4edf3770e22d3bbaee439b79bac9614cc23fc8f926f5db265b58b77e5761145874396892738753ddadf82e42e7347675d0e85c028346bcd78787894c6f69147260779ad0bcda411ce8ca944a4ff5980448a6ccbba63f58b82c4271b22e94c3052", + "assoc_data": + "af68c69b8c23ba3c38930e77a6c71d0163b2381441e3cad8709edbcac2077f1065b4cd39c7ad19", + "key": "e8ed579d5b26b56ce4b90d66fc9d0731cb41c366fa39f96f70431adf72c80358", + "nonce": "5953687da30a455c96ef4ce2", + "tag": "6bd3f097195b597a144ff3fe1dc7b1e8", + "encrypt": + "78dc3e3edab898933be4660aeb2d4195339b350fc8ae0c63182c4c34a2defc34a10b2ad6bb9a0616f1fd886639978d39ac9c4e10fe6d0e097dea023ba74cdd085eb012afbaa762edb5a04a6e3fa14c082dec55b9cfed4fdd45bee4a98205c58757e0ba28842ac6d0d85b235c5675b1af1d26deae6ddc6c22fbf48cdd4505e6988630cf765ce16571c879431627fc4f8308a412fee484b5a1a79606" + } +]; +final List> testVector2 = [ + { + "plain_text": + "c89abd0d2efb04e8ce166e5fd46e8cc31473ef5533b831f60ef737dc41ae4cbd38db9161309f82f0d8b8870b7ac87b323107423c6f6c799a1a7adf9788949b3879d22c1d8415469e51aea442f74a2acc464b4ad71fef0b13ffc7e1fa2d59270c24fd03af2b4a277521ecf8ccefd09c78781ed638b9156eccac7f3720bd82ee05974c6d203f5178c7fe75c372af0d1414d7506246933ee0948e25eaaadb129c3b14da74f1eefd4beece36f65e3c390973a3c092ff8396eea7ee88cf3d6e8db90a963b8128a07bb96ce0d719c4d31733f8e8cc0f2dc9c9a89496df8194768d168f524e16bd3d35b161c57b635257a29d93bd39514d22266f60601132d0", + "key": "d37443af0187c870c9ff7c2383b68eeefdad9e28897f8fb866970d033b49b918", + "nonce": "19a7958fbf2a385112f80c2a", + "tag": "a0d31db74adde60253aa68e0f982f796", + "encrypt": + "3a609b9e7e57c03707017782e355d55fd7ab2f188ab4eafdb92ccccbfdbcb1fa67f923e4eac2a6952ba41adf38ab820a733640dadb7c542ff732c942cd658a7a07c6b388b1ea7e3b33285eeddefd2918cf7f063f46b0cfea5a33fed32ed6cae043166765c1b0a2952374523151fd3618202efe0118f32f9c5d70da0010cd1f3a289dba5b905013d1c4a009eacfcce2e788df2acb55d2d8427893662912ff2a521a0645a257bdaeb05823ff36d06d1dcb9a6f208bbf7249ef5a7d94326a92719d1c2ff401e5edd4594407edd703bed777814c0ec3889b0bce787c00d0367b28b7a2dd2601d35cb0e8eac5e7c9c01857f3580fcc4894c501112018072d" + }, + { + "plain_text": + "154e4e244c33995f4be4db6deb8e711e33e4506574e2f82443afd9f6eb5d6bc14dea82c5f34b12c5a44f89be06f5f97ab5934acfdaf69d270f75b640bc49", + "key": "5478e8a0eaecbfab3e9745e5a8cd07b2dcb709dab68628a0148e86347e2fa900", + "nonce": "03bc3875ddc6f1cf464cd3d3", + "tag": "635241b8e4f57b48080b82b3575fbb47", + "encrypt": + "ebc8e8e865a906f663dd5606792a9f79d3abbc780952bd12bc6e766c825ba4640cded04aca3eb9b08abb889e8a15f8d7a1aab46034eb3563b604da35fcca" + }, + { + "plain_text": + "9b27f1a38669461958157a1c0bc599b092c0ef72fe16c11774396c863fe4f694f0c8e6618d626f866ce7d9ae46ea12539ad4fce5b4f824722fd104ef28be120a49e4c7437d4d8727a0bdce0fb604b89653525f2de0cd3e71300be06df000bd048e7b0302edec97ce0d689a245a6229479b7a1af1285a119fb8662c53eed8dd5a9486ba148fd7ce4463fb1a3df35d4e0ce60bc6ca5bf82889c0f3e283b82bd236418bd86587bcb6deee563ac58d0261", + "key": "55b51c47ef88da7fe98d38d6735fc14e02ebf537468a8933c2b067ceb1791a29", + "nonce": "38ece421da14e513", + "tag": "6f08675c1173a48d648a790043685720", + "encrypt": + "b85d21b0b294a5d6cc833104ed6b5c38c4c074e7f268af1b090ef9057f60ac9d63e2f569fa42864cbc9769368ca534f3b64fc286baebe55aaa2096b26be3d91b04958a69cd154c112e145fbf007b7130c151d86fd867d6deea4d63458e19605cfd615eb33d9e22f0e07d93dedebad30559c670d964978c4787356dd8e6c0dee8466de1052f16799d7b5fb64ebee5b974413ee7de8cdbd19de60c64895dd2069e4f94ae9db2616f75667ee2ccc17e68" + }, + { + "plain_text": + "49ca0c8a1a57a5e3164ddb2968f797c084e9280d4d758fb2f5da82badae6695ff111788ec5fa1bdcfaee296d1f25af3ddf050dc925914c063f070e1c96a3964713d38e25c0451e9b2a8b8ab5651e8389ba826cff06c9fc09c4038d66d243fd9c329effbf5f072b4a91024b1a8ddd702e67b3eedf8c9826db57e54aeee00fc470d6cdd455c6578302d6c16e6976805400e8bda843ed7a5c52344bc7072273d5ffe1392c15ba90922cec09348a1f0a191886bd94c3b1526fa87eb3882e2e6c50864f4ec80fca7b30c10b14097540791cce938c9f", + "key": "3d8fa3e07c54c8caec90948713680d68f2d99fadb059e39f994683bd7376db73", + "nonce": "8a907c293a7f0d31632e655f", + "tag": "5eeb924ffb1615398c5c9072ec33b8f6", + "encrypt": + "e16456a8dbc7b87b65bcf1b42d443a27cf71b3b55c3ffea9e3900dd853bb19d97a8da8fd01d6fe413f1b6af5a7eb336e365c72ac50278a9fc263f97b6136f2f2b28acf464e00d28b1484da6fc913e56bde31b273491f33c7b675b5dcd6e7557484a874a233cdff03321fbb718707afd092d216010ae50a43edfb577e852b5e473e6b9acfd6290d310c8973fbbf6609b44408c168fce83f169459bd8bdb635971d9365f1ece063f812621818889f4b9484e9c5c9ae34a5dd2483ffe7e8b649b00fe50b12ec60c8f15872c96ebeb01955025e62f" + }, + { + "plain_text": + "3897e83ea5fe8e6d02d254682666e55f9fc6f0e591799ca4b0b38b37a63e861704c8bca5b5932bcf93ab79ca513b5e981c66eaadc6adb0f000aff4918cb442bc", + "key": "16b8e84e0176911bfb78d6b289d74276a42a4caecff6251d67d88eaad4aa1899", + "nonce": "203998d8a717a6b1", + "tag": "9c894178b305614c46ed2cf338156432", + "encrypt": + "bc988342611fb11d9d803e5e56a945c4150aa8d6b43e13c5f3750e8c6f60c1507df4e08964a7d9c140d17ef9d69d966f5cf863e51e8a699894e2d20f6354f9cc" + }, + { + "plain_text": + "4f7f4925c23141b0bb6bfbde5988c7abb06a2748de7c0831ed5bf521cda3786dd7eaa5cf2730f89639826fb89048f6b4622355e3a3c56ac9dedafb18a5b2d60eb267f7a6c711a43d9b44224fb2c8542003b5b1492ef8353d19870c14916dc86fdbc47e4f87e8b80fdfdd5d8bf4cca49fded69000900e9b69ee4fdfb6ae9bfa4d4237a2f0dc46e4dd8cb208cc52535f7b4ed692705125fae190fc0ce1537b398f87793f9fdeb6ea4b958a12ede01fabfc", + "key": "f89691666ff9cda0fb534d2e96db82f76db5ab5d8683e8562984b0d1b1500c89", + "nonce": "a6185eea7134bf8e", + "tag": "925be7344faf054aee2d9d9cb1f5c4fe", + "encrypt": + "e601010fb0d658aa507e7b006d2ac5473e6cff24095ebd8c3a1e9ce4a1de3d9be965539951d0a68deead5abaa599093f36ddf30d002869bbc5c4ebf2bfe0f4973c36bd00daa48eaaa1e7d64481c4f36733f92636c7baa009f671507a8ade296da51d67e6c6940269bd5b989cc0463b0b03ad9892875d0d6cd2f8ac64900363388fdc54e1b2f2107e2de1167b8cce1a0dea07f2b535ea048e28483c02914e8d407fd53da0e5321f5fa8835297ab1c3a2f" + }, + { + "plain_text": + "4b0467df65d54c23d5cfeccaf73b5e33708cac568ffc8a63dc6c0bc20d4b0bd7c1559362ae0ebcc1c886697029ab5e4d603dac3aa1d53489a725c86f69e3a7b10bd2e85d755e61231ca1eb2bc9934cda54ab73728cd0e775c2691791777d3d2d3c2b88ea8deb7af3eeb90ab0aa0363f1adabe90381ac8d9580508270d5c98d54df7feffe348940cf0f226802256bf4ba8da7177b95ffe25394f29a0937afcce7f5f34955e9968a7297fd9ebded85cbce4b1d31e9b94a4ce9fa417494a08c6a3a6976d4c4b9", + "key": "90ed7120def556c432848979c50f46a0f0e6842feae7b515d91bdf535eefa520", + "nonce": "66096b48102f78b4", + "tag": "847586284b5fe5fab3eff96307e9a81c", + "encrypt": + "720f5be47f439f51f1fd6179d6812c9ea31b28a857a8364e2ab5c9dacf27fef145c7377b3eb5d79bf621ad940a3b69b4a4e6097489f66eebcd030b2d9675159667c85d1cbec04f486894b642c627936ebb13e7bd179460ec0ed5941e489c7128c43c0d83628f173bb8b5c07020e3d87885723fa1c975f2a0bd9bb296a93b67fa6666da34bf4190eed92525f87b33de879cb4f148c8f5c379a9234514519488334132cc3d61a51a73c8a70ede05b1400f8e607f432f5ad2e9ea8387d02b6e8b0e2466911c74" + }, + { + "plain_text": + "ec18e50b866374006a3175b3b8323e5f3b3aa2fc311a600cc496a496f793b096de1b7d3e12aaac20", + "key": "769c0f7d50b865704d6616292d56b22fd0118686d8d492d619195eb3a291ea51", + "nonce": "3415bb9a3301ad2c", + "tag": "b60819c5b8a9246161cff57dc26ce306", + "encrypt": + "a53c17baad5bfb9d8804501829707fbb626f150f9df86f08305c27cd214dc0e323c2513f22d006cd" + }, + { + "plain_text": + "76f564f0018087ffa05e489153e0652b4a22eed23d801e729be74f2488db4513e723ddc38c7e3aa4172733fd796cf8bcfc42a83353c23aaad5159b775fc8053f3234fe63a94f8b5d83dfc07a7b63", + "key": "036cb9675e45101d468d5dedc597d190cd8f4b89227166a5ae2f6935bc502b0c", + "nonce": "2f2f2010c29f1a80", + "tag": "07a248d4f1167c67ac7d475513c49702", + "encrypt": + "34d8ed38a41879fb485abfc1ccd2f0253fd01226e050ed93649c3c7624565b2ef3e7ad3cab5e25170f6b25dcef30082e266704b980fa6358ce78c225eb69ddadb0be80757070413870901f33a992" + }, + { + "plain_text": + "ef602ece5bea9bb4c62725c39753fb86b83f860124974d84ef475bcf3117129c545015dbe5ce2eed9bf14f482b3314e5fb0c3a2ab81b5a56063e23e36ce52c404ef0e5f2d7d478bf46efc665762d9640c37fdcbe89a6b78d749907dc10bf9913179844b502e20ea4b87360cb9bd00370208236f38a432ca5bcaf739076de078ae3c88baab3d91983cc68641fc75c6aa292c5cfaa1c41b9c7bcffa29fff87a1abcabbadaa30541c8f92a5e788658543cfd0c5c0ea", + "key": "9039b34dec063bd61777db0c4a85f2511c6797c04238cd134e75a3aacf400b19", + "nonce": "056c9747860c8fa4", + "tag": "94a9b30e5fae272c82f2b2751975c90e", + "encrypt": + "5e6a2d5a6a999386d766de9d5d4eeadbe6804c3bdee3802eb01cac002f7a675b1c35acff43a9c064cbf320bd9d7c90f1d42c8cada136658dfd1551213c6e6500f28e7e5ae7ce2114b0ac7a7b662c7f5ab9e8a81e9b3cdf2050840a170dacf938f4c376ebb6f1d1ca74e713d86128612eeee1a88e7e0df6e37ab44fc9fe6f809e97e2317a4a57b3356b100c15124f5eeb13c248dcf1404d0e46ecd7f94370282aafdc514be1d8c359223fc380cbef3db21594c4e4" + } +]; diff --git a/test/crypto/crc32/crc32_test.dart b/test/crypto/crc32/crc32_test.dart new file mode 100644 index 0000000..6e382a0 --- /dev/null +++ b/test/crypto/crc32/crc32_test.dart @@ -0,0 +1,15 @@ +import 'package:blockchain_utils/crypto/crypto/crc32/crc32.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("crc test", () { + for (final i in testVector) { + final result = + Crc32.quickIntDigest(BytesUtils.fromHexString(i["message"])); + expect(result, i["crc32"]); + } + }); +} diff --git a/test/crypto/crc32/test_vector.dart b/test/crypto/crc32/test_vector.dart new file mode 100644 index 0000000..848097a --- /dev/null +++ b/test/crypto/crc32/test_vector.dart @@ -0,0 +1,242 @@ +final List> testVector = [ + { + "message": + "3a4befe5daddddc9f173db581b89d023fee85bb7780139abcac9c2685dee48a19f1856f11f733b560f6e8eb504af4fc14415fcb47476e29ebc69221cdda9b034642f93a58f72b5b72761d72320f3f869471a12d57ef848fc21b41463cd74a45796c8447e6372bb5978da2a578f907cd9aa482b4380e0079f19e28d32378859d5008dd68a2fad5b5be27a8335ccb1dc7c944f3d572f95cb82b1c4a2d28f26bc", + "crc32": 3478165375 + }, + { + "message": + "9ee307055f14b349570e6dbc8b8e5ef890f1dd678249f27b6548d6dfdbafbb89fdc6405afeb6c62ec993615f742d5c3b331b53b04bf9f1ae4af1b2a6", + "crc32": 618223733 + }, + { + "message": + "57ad5dcd25b1f850f19b4116fae219cdf4497820de92dd55f3613013f53767acb50172e487b365b369b101831e3129504c3dbd8a6ff8a484c2b46b233fbd97b213a93deed9701f4bc6c71761961cf13c1b4a06a3a751f1daf29daa6afc5e8cb55211fa516ead61400d12c93237b5a5937ac5a96b8e", + "crc32": 1230534397 + }, + { + "message": + "2c2b6d004761b6e551c50d95c2ecc188fdae832af9555d5b5f2c4b1909f6aa7dac87dfdd431b1fad6c989f31cdc93984c4447b5950642a52cd6b4482800667e334e3915f6244b099eaee9307c098d6c0454cfaec26376974bd15a7817efb26e3980fd03ef0195f9f98c5b71ae52b9fd13089360039f7290d511c45f93059", + "crc32": 3926390072 + }, + { + "message": + "5e5dc132ff3d43a3ac665bc00270705178a3804302e60be1d83d18e49b3f5c72690045fc886f669c3030faa1db4801839cead1f019b535e756a605daf357167e5565109feb8c41ca5d1a966478b867311465c32c49628f9e2d183844d74662a6f0a4830662e06a61f49dec285d01cdb7b717eddc5b5b3866063aad4c4ec0d45d926c5718c248b5e6", + "crc32": 1995016045 + }, + { + "message": + "126d799201bad5d0748fa2279dea46941f9bf69d44c38fb12d6c8e2483f49c57d6aff0a7a3d2fd096b246784afa802d49bd6a7015ea37be85816aa671eea9fc6fe8a80da1bbf40753b6b14d5e88c420ceda2dac2e0c4e04fbfdf6fb3109d2495736e4ceefe37d09df23fd36f", + "crc32": 371682049 + }, + {"message": "47be8a9e16ce9798de9e6b11fabf2150a0be07", "crc32": 2859019258}, + { + "message": + "fb661e565d165610fa6ceb0176bed36dace6b3bf5b24b58bb64b4a5a6d26d763e4e98530eef32a463a20eec6179ca6a4c58f8470897ca072353067bafd9dc783ad229d391a71de99237f88409f2c78ad936e6872f73ef2ca8c91b8340174295ab6321fb4adf02f57efb47101dde9e7142c431aedeca44ced749d9ceb5980d3d9384b5e56ea1c812fbdc3a8", + "crc32": 716256902 + }, + { + "message": + "db152895a3b7c7954274e6010a69176a4938c744bb169b81bbd2ea18d6e95e2bc0f433a4baf607dc507e5a8ea7001dcae44d9e3c33aa705e055f4d94e7f9bf508b1a0c9d4b33d103bc61cc38104f478e2bc1083dda18b661671f0f6f8a1e96d7aba3534830c81027c90d646f638e982475132923db16b1da17dae6b551840efe4b65a0346e6252b3471bd7e9150bd6b7963d93bb221cb78b", + "crc32": 2004026080 + }, + { + "message": + "c691b091f68272419e6d3a09ac5eff602f2364de6bf4e167dff74aa56778515e", + "crc32": 417698361 + }, + { + "message": + "acc79643aa13c9f5db317ede18427b2370a63ef59b2d28fb61e8ccc24239f79bc01d10580e9710a6cd29a3bee05852e90816d86f6c7a357d01293b3bb7d27954645138293a45e8aaca4e80bd31233d685450e502016e7a1717ffcf452490f0566841d919ff01662165af7db6895d0fd0212402a91718476647fded6cb485a032243bc8aa564e044bcc4dc480d965dc268d6bfbb2", + "crc32": 3970332418 + }, + { + "message": + "6992cfc99f0985a1dc6282f629f9cd70156878ba8e1dcdd9e8a421841eac3ca5747566d2c796ab85668c4eb34fc3bc6c0bf8424bdcb1f69d71a635865a31b45d8fb6da9fdc50956b36eae3b24fcc4c059203fda4c1a8bd61cb969c5cabc7ec", + "crc32": 2481322018 + }, + { + "message": + "97fe91576e1e3ab4ba2bbde654675161a8da07d4a9a1c53e1b3e9f5e23093aad43c90fff20992024841dee40b33316bf977f2d7eba13c18db2d67c76a9a7dbd84b145f", + "crc32": 3398140362 + }, + { + "message": + "e8cb750a663194ce39290b52677ff7270b73382da0bb5cce1d9d8227d74871a6f9400c54ea809ce10efb208dcc2d6913e5a50c0fbe9223925c7e463132ce63e535fac941d72881e9183fcfd1befdb460827b248f", + "crc32": 1330402029 + }, + { + "message": + "a43a11d8191b7bc3764b73524717bac284593067f34082cda7e93baa3d043a9b318d963f0afc9d5682ce81fb27efe5a5bfc24e2bea4c71aa8ee028a3", + "crc32": 4276979472 + }, + { + "message": + "315738c06d2099c0c44ddfd2ce5f6e46e6b5f37bf42d44e1fb3994a143dd2e453b3bbb6a6f2a98a588f27c209c0417f333dd3b48306462fd92960e17f7b375dc5e5655d1a75632a60b3be3bd8557e5a2c7d578bb9386b35046b5b55d4ee740036c3a478433ce347ae70b04bca6e6bb6300e6c96654c73343ccfe606c0cd9c6c45a06b78de10c0e6ae6d28c977be222", + "crc32": 1738686338 + }, + { + "message": + "d2ca90a90867a1a0b193821d8e23ba06c0966e69581fee6394ea7d14cb206296ea1a2b4671d7c001845fb3876c939bb3f7ab7972d6c660f092df899d4330b5ee66b2ec4bc687ae7c9ead0f4c2c5a0efce830010726853e79600ef7082e6ddf3b788bed39678eae8cf2d142101c124fe4023348d29855cef6529792f07d0dbfc434e3fa78ab2b6880f98b31d35437561124a3f83c64f5", + "crc32": 1695577826 + }, + { + "message": + "1368a80f6dc1ee7633a0c76b220325b2b42443482cf9fce0dc15340c563697075906869570d4", + "crc32": 4092197216 + }, + { + "message": + "b976423a3e2067cbc487fafa7279c35d03d878becd1c52b8eca3a1d4fefb17551c3d565823d7e31cbb493db1ce6f4827a04e077a66ba332711d3f4a6c63e", + "crc32": 2474314612 + }, + { + "message": + "8137506e30ffc576d219236ad597f5bac8b8f989ac790a112e5e58b0ad0f2faee719af1ab827fca06f42af292c1f86b58c54", + "crc32": 2222033324 + }, + { + "message": + "dcc60d6476abd4a002e34fe29d0283ebb19344c14c74ba266d1bc574cb370369fc10bc4531b107027709d027e6242efcdec760573f4ffa568e22985fca986db0bd628ee5f2320d69a097f8d1e8ce258a0f2c0b07444d2a60616419753988dc5878ba7f578be7f3d5edae1544597de179700ecc1b5f9abf83be6d27f5a3517b1ca5b1bfd06f5bacb8b7b35e82b3a36ad1a7cfa6cd5e", + "crc32": 287054049 + }, + { + "message": + "2098371520a2ff0276d866a2653360d1f90d08d13616ed23969f5ecd28e6c807456e53605d3b59d9cbe9f816f5a72cbd63d42ab21b268efb69bb2023a56559366ff0a44da873e1132b9108a8279008b68293225918b0897a4a5770133f2b8bd8603f09902669f5fabf44866b7fecab6ec29dc2d0ba894a81155d88a5192ec37764a61e59", + "crc32": 2950276516 + }, + { + "message": + "e4da75b992e535fdc4f3d8c072a4f31709a2e951dc69616ca0adcf77b1fc3e3abd5cbb4b17a993c382d7a4429aaa7466bf4a9d12120a77d78784d9850c3d566c7123b7aac621d9fd6b3394f1d2c2e904ef0b3499bdee75", + "crc32": 1661638149 + }, + { + "message": + "8dabeeaabdbe3db0fa137656f302194876fd05870a74b1cb7162d7d2ea7d7afb02", + "crc32": 440782320 + }, + { + "message": + "2056ba8e1913484ee3eae804dfd429ce65dd8be9f31db8facb0fc29760138feabbe37f21266da8985f29f3711418d1ae00bf91c8fe12f8279edeb2f828782a671fd347cea5b4ab85cdf82cc896b7427e2dacd344d8a8f308f734fa3a", + "crc32": 1172466025 + }, + { + "message": + "0b075d11527ac491e14ed6eb753b6fde70f1cc7230bc4169d39eb30768f1ffe0bab84a04014e874b6f0f5403194d913e5dfcd6ff566320337d665c00a2b7e0a8", + "crc32": 1015368252 + }, + { + "message": "08b0a612e62cef8f2d7c66d77d440a24adc75da7ef8a4526", + "crc32": 946152586 + }, + { + "message": + "f533ac64e7c8d5c873f46b714b549e300d9e551f3379459e85ef3100208ccbc5f9753fc21f1342929b2ac681e1219c58f31109e51d8bebc76857515227bdb15e6a0db9f4b839775425686eabd50aee1b2c29911b8317caaab06a9bc1", + "crc32": 1978372889 + }, + { + "message": + "8b26d5870e67e73ca0ec6de4d5150a970c7f32a47a52958fd6b0642a383d7c5f1257fe95c3581f41f67b6e440b2e1cb7622f95d3ec91116fd70ad45c7f83a306ede721c478e3303b54aa9eefbf1b78600ce61cd492b581985fcdfd9044e2b1cda4ccbbfda6552e07aca4333aad1e23c4568bbca8ac34de97e4abe259e84c8b8e753ca1860afb1e4ee4c4af365a94f9bef1448e798de72208", + "crc32": 977550423 + }, + { + "message": + "a9e733276f57952fb29dc4c6463a5890af966b38e730a10b89748176279111b1570da2da049ca5a8651b0c2b3ee2c0dcb12267b224660fc1b5fb5fc1ff3ceca2ac2e983e4494b52f1440ac1dcd1b70a32b02c38fb838b7beb41b1b88cd3bcc831f1aa7b135ae7715f0f1608efd4f7b7d18e00d4cd90127d38e1fdc854d2fae3c12fb3d39d229db772f7b59a21e15ffb461bf", + "crc32": 3327198118 + }, + { + "message": + "42e2f5f949991f6cde1306c92f2f0dbbe193d3ba3ea6d1e5b6f5d0559dc99066277729af807ff2a2ee42906f564fff22cdc222d722284c2b034e157214df9ba653e9d3bab7ebed0ebad5e013b257c2bae1e7e24d5cc6838fe0e253a7ecda8087248dd0ec54c50d898f4f3e4c22c1569954dbc29205f29a594a6bb57f0b281c0d65841063f09872257cbb68624730ffdb3838", + "crc32": 1762723164 + }, + { + "message": + "f23464466bd81cc202e2766eadbedabfeea13dd8ca1a63830915399ccfe9be7341473a2311ed16aec98cc6a671b25eef1067ce6c73fd3af718ef4efcbd1bdda382338988320275978e684907d244194db21e5e3828ce73127ce692c20aaf66ee457b1f50dd489d0664af8cc62c6fa233fccac543df17ff1b4e599cf29f85bd11e6549191fd0d985803be8f7504878793", + "crc32": 597233408 + }, + { + "message": + "d5797528e26db2d842507256603921e9b578e929ebe89dcdaaeedd94befb25500615a26beffe42d7650d6ef11fd006686fedc8951f6cbfe6fcb3412eebfb37469a7bdc83ad162094a9be7fa7a1bccaa998e11a6f21c4a2e9aeeabf24e19d4e729b89ce65f82f9c51a166682b314015e2504a8d17", + "crc32": 307811692 + }, + { + "message": + "8a0e88f733200b71483b23d23255408789d46f1428f232bc0ced196422cc85c352f3eecd6ffa27e2b9d34d5e4a5a4b0b3f62d030f2f1cce6aedba224367e312d6a4b15ae73469600172578ebc43318be339bb4bd4fd329fac2b07cf59334eff19dcc29c4badfe46a2b9bf6b40667257ef69139c773163ccf0718921aa4514a3aadd536c147625359a199e4ecc9266b4a0b", + "crc32": 1021439936 + }, + { + "message": + "6aae842b0c34a304b02c4f7358cb4826b0bb6ae600318811f02e2df7fa3cb94dc2f43234945d90b2b2e0c56ed755c5c7abec6d2bd80109", + "crc32": 2165779960 + }, + { + "message": + "bb6dd318c080c89df1b1ed363144334597866ee3142ba6165be581797348ee0e8481bc8e2d59447fe707071b6d58b81b4ad0ae65b5222f", + "crc32": 1869114865 + }, + { + "message": + "a2a92112f3b9d9222d714fe037c9e062b999f1b20b389f68dce510f4a57d5904a5e0b36684a4e27ea9ed76118dfec7dfd68cd151a145ec85df502f8ac444a09d5c1bf8811cfd366c059fcf7d", + "crc32": 3552008459 + }, + { + "message": + "7d14736997fa6ce2a4ac8bf330e5dace251bd02c313229fc2805a5b55ce885a2d67b2e32121b41c6c35265622f68be0d8e40b361d9d55039260348196e75cc467416670a2ef8380547568f7ca3f93db2c9afbc2c35baa01f109252f6858f27484daedcc1626eac7da60599df942609f1b1ec", + "crc32": 2920452933 + }, + { + "message": + "5c1e515824de44313f796c845c7fb6cc93c1b27c49b0e494f30e0c8f14d5e74902a7682b3608da44616d65d01af9132f95101022eb54fd9b4ac2038541631f472a443bc03bc606f3c91334ebc85421bc3e09f3b2a75788b4e1a06139554ad47a8654c4a1b971eea0f9d96255d199f7c1a0671e0c28745ff74afa8783379685da", + "crc32": 368416667 + }, + { + "message": + "621b6ef94900eb5f27d41f4ce1dbf1d0e6fc85aee0180a3799669bc4a8397347d99aa7f5ced08d86cb9f10f94e5cdc44cbd3cc2540393120d895a3184b1a6abfe609e9432f1a72e9e73b4dc18b40104f65fbde57eaf55d3caa81a9cc1404355b20041971c4fb1188eb7d78660b4f37a0d3c13c669073dda51003c5a07fde38e8e193be5c41dfad3c43861762e3936a7e834b4c1ea800d4893670a8fb78b499", + "crc32": 3798626280 + }, + { + "message": + "fa579db4fd4fd7b02fd6649a28f6be716479f0a4adbd068fcbc6fbd826b5cc4fc56ad598", + "crc32": 1989449502 + }, + { + "message": + "fc386a4067761d42804ed4f96291a128721327a82b919a17b029f4987645a5968beb1d96571c32854d86f8d47ac99be4fe4aae402e7366d570f7500d6a836e447c7b26f61dab9fde092b11888e99417afbb61d3dc809549c23688ddbad703bd36eaae4ad1c45a119f60fea64", + "crc32": 2167040474 + }, + { + "message": + "3f26e8a1de059e2550a44ae3da6a705fa41a43424243f15fc410bcac95136577c7711e91547f52a64c505bc466f7", + "crc32": 1418294187 + }, + { + "message": + "9d183c2d84a26ae7d09f41715e96e9def5a2d32b6d7f0e3eeed786e644c74d00288727afcafccd39b545f60c49b90ae4a7bc835368c4d680bf526318275b1a38e6cb52136579dfe9ee", + "crc32": 1757364855 + }, + { + "message": + "fef4b7aba22c876c07cebf02287818f4c7ffa50408fcaae5a1bc4918768f868d2e0b805b", + "crc32": 122297973 + }, + {"message": "c86b5b49b86998911524baa9c05b051f2f552aed", "crc32": 343851956}, + { + "message": "9e006cd0d25237de966f1a7d3f7a9468c032c3b4b0734d", + "crc32": 2344983595 + }, + { + "message": + "de3d4113e24f669959111027eb7b23b9577020ce6d1c32bf516859bbfeb0dec51a4cc3c49313806676f7e2f9300484", + "crc32": 3461405171 + }, + { + "message": + "d7a79453cdd1025e755448ec099f4357474f193931bbc0944cf1ede07426dcfac99bcb7b62d739de7a2d31066d3ac5fd2f13a04020abba57aac6c6017b5bde7ca2c3ecd277c3df798e65d65f178fc87f4f481de1a9106292c1c85ca8d8b6110cb0d21a27633845c13aea2f0b29e80c3b495a58461f12501da422c7287bc676fae3ea7d51f1a3554ed91ec1d7cee1d9d765", + "crc32": 1868064496 + }, + { + "message": + "b96ee5ce35d95806a187fe76dc6c85859520e17337fb3b78a17c69cecf4fcc1941872e772c2911c107cf007f86f175", + "crc32": 1804704381 + } +]; diff --git a/test/crypto/hmac/hmac_test.dart b/test/crypto/hmac/hmac_test.dart new file mode 100644 index 0000000..9e4faa6 --- /dev/null +++ b/test/crypto/hmac/hmac_test.dart @@ -0,0 +1,49 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/crypto/crypto/hmac/hmac.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("hmac sha512", () { + for (final i in hmach512TestVector) { + final key = BytesUtils.fromHexString(i["key"]); + final message = BytesUtils.fromHexString(i["message"]); + final mac = HMAC(() => SHA512(), key); + mac.update(message.sublist(0, 10)); + mac.update(message.sublist(10)); + expect(mac.digest().toHex(), i["hash"]); + mac.reset(); + mac.update(message); + expect(mac.digest().toHex(), i["hash"]); + } + }); + test("hmac sha256", () { + for (final i in hmac256TestVector) { + final key = BytesUtils.fromHexString(i["key"]); + final message = BytesUtils.fromHexString(i["message"]); + final mac = HMAC(() => SHA256(), key); + mac.update(message.sublist(0, 10)); + mac.update(message.sublist(10)); + expect(mac.digest().toHex(), i["hash"]); + mac.reset(); + mac.update(message); + expect(mac.digest().toHex(), i["hash"]); + } + }); + test("hmac sha3", () { + for (final i in sha3TestVector) { + final key = BytesUtils.fromHexString(i["key"]); + final message = BytesUtils.fromHexString(i["message"]); + final mac = HMAC(() => SHA3(), key); + mac.update(message.sublist(0, 10)); + mac.update(message.sublist(10)); + expect(mac.digest().toHex(), i["hash"]); + mac.reset(); + mac.update(message); + expect(mac.digest().toHex(), i["hash"]); + } + }); +} diff --git a/test/crypto/hmac/test_vector.dart b/test/crypto/hmac/test_vector.dart new file mode 100644 index 0000000..cb361d0 --- /dev/null +++ b/test/crypto/hmac/test_vector.dart @@ -0,0 +1,474 @@ +final List> hmach512TestVector = [ + { + "key": "b38b00197f7ef679d42e593dc4dd44b7361ba7d9f2082395ddb058dd1203ecf1", + "message": + "1cc07711269302184f316eb96c83d49b8eac3e26de2678b02c95533222b8f1f9263215004ff73675da36bb878b162440c3dc36a9c744494dc74ac121214a2e4b2513d2783a63a93c775e745b671152c355e0fce13f1bf4aabf53b7fcb31f98ddf04e38179bf1d09628065c4a476a42c2896192f5f75dd0bece50734984b6f93a04221535b0f9a1fcd3b297c21cbcabfeafc4a70b06ea82e99d7341a085a2f5fc16aa28101a3607c57ca3941b2b4beebcad20d2c2872df2ded20e3c1842bca64d34a0470bfe0f667380e6c0f9435fbdfb713b99c64486090b873c72bbc36dff08f130db23506dbb3299d464395807909ee0fa84d8", + "hash": + "db796c4366996bfcae41bcc639b2036b5460938f1182d2a9cc593f6c13f27927c0d464086fb45bf90993890da28760a47bc797969e2b8d6b5135af6401b91616" + }, + { + "key": "5697da75c98dae79f8400dccffc33f54deccd67e4464fb363a3ff522de7610ad", + "message": + "bff8691279032f6082b5b001482894f104f8c5bc6c125664fe0bcdc9ed9d93517743c3233d3f4067ef8d24499d4e3cb1e507d2cae6b70fc2e201304c7c59bdeb8bcbb127fb302d09a48cabd24b795540d8a5b5a109e686e6e11b5f6a133023007c6cfa1e0f70eacd6b536f48fe8f6601bd3be076dda1b82b073b", + "hash": + "c278e58b5fecd883be9aeee1a04cf50e33f450209479a822029af680895052364f7c1dd50e9bf8f762a5e5d9d6497b3ce4db6ab114d98c2d57b62fea37ff2655" + }, + { + "key": "acdbd7c3836ad662d0e6e003edd3e32055c64115d076cd70f9d5ea015e46e2bf", + "message": + "d0481f1e598fd9fc025a9baa76f8add5c314cb6d0910a6bb2073f0c9a32aeca248a8c2c9d2182bd8f0f97ddc4098d37189f1a5c94bbeaa4722a5d44c170107387fd4fe89fe998bacd368ea0ff5fe22f91fe27be4a75f5ba5da4541d12470eebcfec602ae00076bdb6de7c6ed1bd8898beff9fdd892b92c8a87d4885d14bd9ab97e18cba9864d185b7752", + "hash": + "91fe256c668130d7f533e5a3eaa7903a3628e3df629afa88b55097e822d0682272e61b1faaa9d8f7589a18d0a3b14640dd5949ebd9b74b968bac99ee9db8ef65" + }, + { + "key": "a0c16cf4406a3897ecb2c2f00bf062f190cf85a4a021de046d340befde38bec2", + "message": + "c385a3bf08cae8c0925a23a6e4ea356e8e63559dc350353aea71349dd9a6a9e8dea006b6d785fd206424c7969c57d20fc8f570b00498305730a5b9ab87cf33d5fa8b39f6e7e3ef7f67907aebc917e61ac3384865e758ad66dca6d555c117d65013cce98ae86d6cf0de2d9e42948d180682615531e430519d0af1f51a3221fe4a6dbcea64ea6094f07f1518e223a628be6fbb2a82c0e0a950853a063647b06b8453186b663b85bf53ddb4c1093dbecb35db932f883c7a2e10eb0bfb9c37b05c2415d5a281b1411721fff0994da0286e00d36d932279c233e64a0c61a08acc4617bd9f24ca6e7e697c95f2d0baa8a82ba5b3", + "hash": + "7c5762279d7a0cb36b21bde16efec53bbde66fbb209419b8c2ee62b167b7fdf299831a1203df517e384266d3144cb57fa37f4678b2bb8a19201e8255dd1a578b" + }, + { + "key": "8efea420a290d55c951519d88909644725fff640e6b4c5467fa35e6121ba0e93", + "message": + "72bde62ca18933240efb44368ec3212f673ac906255325d4ec0b7fb3af1d131cf7ae21442da3dee2cc179e981ab4893d64747d6b2bb9083cdcee271aca43112ce100a6b9a15c91a2cb57b5d59ddce6f6b86d99bbdd8cfc0bbab35dc250eb414161a352878d61f6fc2271eef636c473643bc5630ee285f64016c64163a2396449f0c33f326cf9ddbc58792603056ed682d846cf6d8f5fc5147a928aeeb80ab15d715175c69403dde5", + "hash": + "8086cadba637baf1c2fb7b9950675c3ef10bc1608390bc89c90c74390b78b2dd4b9844b783c677a9f6ca86e31e5b340703bcce83c43d18af087c415d40d8be01" + }, + { + "key": "3f458a5ce7cf7cd9847c70abb4d6e144b4c041a279e143f4c554d42de77f27ff", + "message": "afd354a0375e823dab79b772823f5c", + "hash": + "bce8437d998c1b4a74294b404575423a71b01bb92240a634e47b5d132b1084b3fe40efd6cba6e81fde9224a31f4f5f4eb3a110524b6863150d77b825d7032c4a" + }, + { + "key": "635bb1b4ff4186949d669d7cace34bef7c4bf977e2f190cf797498b0af2628e5", + "message": + "c5a1a439ae317e890b79c59a739c3cb146168523c31d4237dadc86aa9f53774bf92950813bbd29a3e0de397682cc00433208aeb1164ee982b24d167591d3c2884ab64cd552ac674f1a3e2c4257323c3fd958a26295159e84604a655c918072fe25042880cea5073786e1093a3b9961e4c1a214ffc78f144c455c3db6348c18d06e941d56628ccca17a1c2793720a4d1dddd4fdbb7117dc4bf6a33496539d7271594dc1698ca16aef9b9412cac84a8adc920469dc4fa949982d40dbe414805ff213d159737993bbf4553dfd5ad654a7376d078bcd18aa501e2247ff0ca1919f3990f8b4a46e838c71c76596584d6aecd41b2f3decf3", + "hash": + "d1d93144b77e038e1e4d2bb0d35339b56e1c77fc2bc5ceb3ca472ad2fa53e98e46183d9e9f0d4ec0c5c22cbdc3fb0dcf9d219e747c2a8595d38360563cefcbaf" + }, + { + "key": "e3635c5b56fe2620c1591423fdd400f06157e2f3cd4423a2ed44bdbb82f60b20", + "message": + "24f4e9183200c6c4f8a2d2dc4ca2d6f0eb095cdce639ac4a358cf1c49469fadf1f0eda12c6fb1aeef539eed8909df9c6df1208cb8d339a16fbcb812056f3db0b9a180c4bcc85eb0a18d6193dbf3a95599cf071aacc433becfdaf1b4d7097992d3e48125f22f609ec39ba762dec29cc62cee941cbf06a5fcce151cb4103357731b24cbb0c5ff190bc56d9f7e37d6cc75d18794ad7b18226179445", + "hash": + "0f93dbe9b87b8fc4a53c1c6426c1f935c5546b468ece57ed63dbf6153f191d6a0bc5cebfe6757f394bd0e1ddf95447c449b65bc8683ebfbe22c6bdf0e2114855" + }, + { + "key": "d0d58d4af224fe36b9cf9bcd99784122b9529946e153f71a5aeeb2dfe805c504", + "message": + "bc774e8f4c923844cd47647c853382e09741abba199d92a3aa804c87eaa7fa194884359c51880555d445cef20905d18e1ebcfdc7b73e1907b227bb2a22db12b71057b3b64c9b5c6eee192f218a6373e58e245d45238702e8deda6b54fbc1c75bb5cc821a562b5c78f6c3ebfbe86b1056abd40152db888a2f96d12cfc3eeb6d237c6977b9fd23d7a6d4fe5ebfbd570f180be6c74c2b3bac4b2293ef6a8b93e75b7f6214ef585c8504f10cd7cea0be6b230e2649fbc727f4c4a8a81cb5ca87e052a83839d5fe9158cc184a3013900af11415a2", + "hash": + "e779460a4bf3f38973eb7b9e8260e23c6dab5478115cad0485042759ed5a2e1cf2d0a327191a4b8534c63a1c6839cd0169c6e8015225a94b678b571b389981a8" + }, + { + "key": "8fd42ba944131f160085d358f711c2a2bf0fbabbb829c68a2cb926a6988d42de", + "message": + "4dba0e23eda9233c197472234f860fa774e4c2e0fd8c8015af8c7ee6d071ed8267ed2bf2b101d5aec1529df7b9fbfd311720549c29aaa552c6", + "hash": + "63b52eb3c6cccd3a10ee8f0122e857cbfe501a5fac3d8fd74bd7385d4116b38d10931f4b056e0ed252bcc6a0cde23e818a178b7fc7a813a516bbb67d0c7f6d02" + }, + { + "key": "2c6465904d116585aa079a0f08bc66ff5e719fbb17e07c467145635d40a40c42", + "message": + "55ae2d9dca32d8dcc6d311ed3f7002f15ccd515a832e4580b323b27e8e4e38fa1b40727c33fca18fb48daf0f5a6efbc5a0c3321d9c6e235bb398155618bdeadaab7c88bc7cdf5e3d6d738ccae0914ff49db482a961c3215228d410c0f658261483d39c5baf542525b7637ae11bd17ae630f1bbc5fc10a5af2a371397cd8605711af05e12e13510a154709481766c080c5b1df3f7fca1e75532fbff8674af8bd0fe266b599af28f3b984198dfcf1e16f7856840", + "hash": + "77e3540bb44862717a52b3f8b94dc951783cbb13b924e47bae9335d01af94ed05aa0d668765411f221e4ddccd03554e391ed896169b258bd720a270b6c176378" + }, + { + "key": "7078a09483a5c9db124424799691f7931670daed46d0d6e2a2527dabc6a6b987", + "message": "ced0d95229a9997ab25aee78f17b112b2a14b18278d7c1dd0192a04e2d6c", + "hash": + "a49ad87e5e8a503337337affbe9cdf8fcb8c55a90ea874f7e2e3d17fdfd22a4808bbd50568b9dd2c704f97430bcc43f7dc4c48e525dc864bed211ac50f5c78d2" + }, + { + "key": "6815fb78c9f43e6131a9bdf1dfce6722a52a4bd189dbc85f10731571931d06b6", + "message": + "1bf2055c46e7b0a11f209e5b1e8b9e506e5996a5b08ed44107301b23d8ef917543b18cc7f8d16fdc7e09cdd484844f8db4303a672f4c4ab3fbbc5ee271ec36db551eec76d39c494d052c21242b82c632e2c4", + "hash": + "c89e857dae76dd9ba967331d00cbf6d76c762993ec7c0af6b917a9e675a5866ac5ffe66ddef593baea39baa17c4fc97a91ae2ae115900c5a3de7244c32ea0584" + }, + { + "key": "828b0ac8d2d9307867a2f52180d30d2efe5d733b4c480895c86ebf4eb0d882b6", + "message": + "1336110cb72697b56a31550001c77237fe55be8cab90ae3e6ba4a468b9de4c6f2c4c08349ff25af6a8d26ffdc90d01b0c080333402e4d0b802a2660415d85bab950df734146f44b05eeb3b1c4348146b2f4e1ffd8c4d9c11e866e9eaf1d7e75139c6ea15e786e6b792bb7ab56c4776d4649e3b23d9e60fdc4079a00ec5d77df76525b38ed24decf6ef2713", + "hash": + "4d7cd36501b867260f7e2a62887e13ee014e2363b9b925401ff94c7fa0472ee95adba1af06fe633c1519ec0530c8e3c6915e759436df6b60136cf80f5093edc9" + }, + { + "key": "afeb482a78b0b8aa958a584caaa5b0ff347abc1d8186556ba3871f663241f09d", + "message": "8d969b1f218e17111e4ad6638862e83414e7e3de3b2fd1aa", + "hash": + "a621c0649488b6ca141fc676c230bfe5c2669da78fa20cc026757a3200b218f89a54267797772bcfc19a78d142f2fa4d4323e4201db2e499a7a8038456d18b5d" + }, + { + "key": "5cd41044286d92a433fd2e8f1fe1608e228ef883034939927282d4c8285e838f", + "message": "4cd461a85d99f13d5b7c6e", + "hash": + "898a694247c21b21a0c0990c2fa6ff7bfd382f7189d7d00ff68832a748c5a2b6353196541a080ce0b20997254569e8874d6899b116757a7631260ce33a5b3373" + }, + { + "key": "4234c4cc9cc8a16d695e8648c2626d26405326c2dba4b5b689c60cdd7b170515", + "message": + "e85cc639fdcfc9a60ed5e4c3beeb44b60a922c3cfc431c269f86e99132146a2ffab6fcab2dd2199ec871e186ddb8ccb361450d8e71640289ae738a6a2d982694a2a1d138a9be8f3de5e90471a015b24b52b945621e6a34855c6635b4d6b7d023a594324f4783175b94ff6e001409e4d40343611068f24b4009eaefaddc589e4385ddab623caf0cf23360a0ff03fd5148bbe0b740bd625910d157948c42d2e61bec4da310d76fedd9d9e7726b2fc035037fb5947f3c869b2159d6ad198a3dfdbeaadcaacbc583272ada735538c9c72440b48164e8bdce", + "hash": + "8eb5f4b86a75c27e229e0b08dc8c9ff8b4a4ed302c96437558516d2dcbe41da87209970c051cb42f190771e3fc69e084cbc855656ac3ba8ab592fe23d80a062c" + }, + { + "key": "3cb773006c1c5bf6ea9325d3fe0481fe70e4bb9b6ee3a1462d8479d544439b90", + "message": + "d463267a0c9a9cfed71cb7acd0680abd7098103730a2c0744cc7b5d7136774bb9d594fd11e1060b98b9f49b7cb8043de1eb9be72e9dc118146ce367ac548a78c535fcd162d5f9b70fe73a7c817e48078c7a4c563d4d4197f1db8ed8a15537cd34305e88f85151105eacca34b26d9cd39744cb9ed3bb41d037c1eab7918b860285790209eaa00ff0590741c9eeec8b93d740e5bc6ab0eeb0cc9004f9c8abb4bcf09700b84a6be1a406cdd8eaa5252dddf64d32d4a6f3b6b31e10b2103b7d842fd12f21576cbae7ba3274d136eba8f8512112b47b0b8e49e7d102be0fc7c62e60ea5771091a3df1834c772d06d224a3ef593270e53c97e851080cd", + "hash": + "901a7248a090113cc15474b8ec62b66f6340109b0fc78e61920f71d2325aa5e1a42c49cb7cd3dd483dfcf4c69564bd1038776993e0da08df3e217f6d397a3f9f" + }, + { + "key": "efcb201c10dfa92aca40d57c9dbaf0fecb08b0d284c13f6b53024f8d0129e45f", + "message": + "d6b36e56ea859b483ca8d50f15a54db10d0af7797c6b11b4ad7445ef5dc84a19b7186c2b9f4f443a2c287de8a1ab73477e4b2f8921d6647f2e0ab76f5ed46637472f80b9b351c41974bacdc457b9deb69314467d963e35fdcb9074d452d79182305503b9ce21576b97008cd48d1c27b8c317c9363b9bc9c66a8e6dd152c6fe25092479fa67b5e50fb6d731540d575bbbb2075a4c61698bfbddb06222eaa87451655b0a546a1599a8f9ac3681661f2a623018093f2454a67abcd46f3787a19ef5b73e75ccbf583d37dcbd26e9b1", + "hash": + "8f95bb8afb2933ba0f4f26576d7e7f43ee5555e4ea9bdb3c694415bdc98108b31c887227c8856691db611ea825f944cba6af1c244140e9955ef0ee3c61d133ad" + }, + { + "key": "e5ce476a5e1fc852650fef1b5a4ba2562ea954647765896609865fc7cd487499", + "message": + "7a267c1d269ce52334efc37469e053039cb7a4f5b3b5fc0502f6d4ccd9375ab07a9be362f8fb4955bccda629ca2fdc7c6311109e19b23c68db679d8a8d4f85950f6815a1252d5abd2aa3a6893e33307ded1c426cfa0bddc7160026d0a2cfd742f3e0129ee5dc8440e7b820a34b27b32e57c51085b3831133b55b0fc957cb84c8a09e5c5dcde66a6effbca16742e68e35b48ae76c7a046947f7c3b93282b410665d209593a77c824687b4328eac79ee6a5d4475ab883989785e", + "hash": + "5555c7966bab43e75fd67c3ce0f323b8896adac5cc5e92e6b124d705678492943fb3c17e982ebc1bc2abf6ca15d77dde25c28f56c43e0d50ab182998aa48e841" + }, + { + "key": "3d39d8f411dfed223b5e0511e2abe1b103b944eca028aab535a94a14a9a68887", + "message": + "7ec9a47bfb8dcf17d51e5541c5b2bd4db7cea6cc583730b1ed6415417443fdef631b02dce8a79d6885225be4cc44b256dbad5f8191ac9fc1a10469bf2f83a4e4e16167fe3634c83bfd14a5578ceece8ab9e7554e01da34", + "hash": + "a42e02d5af85b5b1eb6ab2de4de49f30ad25f674f13562a344b5edd96bb342362f99f9b8c9eac1499b2b62b6352e6629987affd0d95eef7b3320e0eb618459cb" + }, + { + "key": "bbccde501f1a76cca23d8648e8ca61ea2e2341f4b33aa7281e063216dae78f6f", + "message": + "e6d3283b50eff72f7b81770110c47568d258d9fb322b02c6d5bb8a67f2fe8a4264bc0910435bd51cacbc3cc709da39493670cbe16b894e2456df9acd94d5c5f938ce5f4c8c730a252e6e66ec4728cdb1df9633be1849c8ee636ab6b38dd8eb5aa643e5f68e19273d6f566787a8417749d2abcafd9c489e3b11f33f0d61a26dd1b72f6ddf131221c6d42c171e50ebb947325355", + "hash": + "71c31bb181af2258a19b106cf99c8d0f72f0e510ae34f97b26c96f9d6369c029ccd20f4a86ce29084a328e9de2ca6cbc9e0c30ca89506ca42e6effba2c0191a1" + }, + { + "key": "53a438dca473787bf49d64e4037284a5fc770871690dd7d8223818af32a07031", + "message": + "a460434b26500d5d62127402da4a6dd6b55bede4e9c313cc8ff4cdf7f294f4362580a5ecbf7b602bed5eefb71d85d8aa114930c5600b431a7987099fcc9981d29d84af2570b82a4eaae577ff47efc88902273afa046a07e73efdc3689842812512c255a560b3c5eebf701156a5603dcf61089d0ca53965d2590b4f5bcf88dc22f55cdb6d0de5077805de39d92cb3c799213fb090b198547d4d8124fa0fae02aa939ee2f57b508a3e02d613d054cb828ac16b7e8ea35b6f40a639d25ac8b94e3dfcf6c9324374355e501a528c5ca3ebf04cb3f0dc9363a22e3d1f6e6d73898f26a004265b38", + "hash": + "b62f0154cc1667431f770c5ce8feda24930409514e3f142014900c9166aaf40c81a7d79e600acf3c729ff21c4a1a943adf7b42660c289105a213ec28001c12fe" + }, + { + "key": "a3fbaf4b1ad2fca96ab3cca1bc094c0ef2bbac09f40db9c00a959c2e08a79483", + "message": + "24d49420b48418599fdf5a145da4e83c231f972d5e64593eff52ca41815d1287b2681858fd6540d6e9380de4ae41d2827fbb1e35ae6bc99d85d8476ce7827558113c5672394aad", + "hash": + "bf1409d3d51c6a2b9490b693cc02529623596f811c32036c818bc695ab9c4754c679b2aedbf5b3dec76c94c702d2c2018ab59d2a2b49ce53128e818220250b5f" + }, + { + "key": "14e525899990a28169916352e60e70e9e54d9574a5f7a35504b384f3b7fbeef5", + "message": "4e66d4d32bfe0f6dce090ced", + "hash": + "b1cd916e88eba737a3eb3ffe7b7532dbe4e7e06ee096de40df48661a2227899bcc2d1786dc637bb6d1d2ce9b799c852fc396321f56d11d885564d7ec77b631cb" + } +]; + +final List> hmac256TestVector = [ + { + "key": "b0870e5bed5c1f6469f7ac2232a423884557af24a27ca1d6fe3a65f1d2dc48ec", + "message": + "26a525ff27b179b8599b0a18f14104a23b00cc00fd262c713ac18a69f2c4bbc098bdca7d595a71c5f6ee4d2491b53116827a51d7052d384cbc956339d72480ccaa0f57367a5cfd", + "hash": "b177d26e940e2ed36cc84b1869d6363f5f1d8f44779e7bb1a4c43985a452060d" + }, + { + "key": "bdb33026dc2aff086a4ec450d51e7f556c8b704141057ad2d2da8f612b3d592e", + "message": + "644af9e9d5a23be2d71b8f8b5f00f4bfb7ba5dc88f2725fce736062b04206cd102e9605eb37c5326f19034ed9026a7b66326d7c236b3e726a4d3d1066c8aa4c368eaf308dd94ca320f8d54ecaaa9f6ee329df7ad084258392be50ad349377a4017194554e023dc9b5febb358cb2ad8cb41c816cd2e9add54bfb52c8d73da7a5fcc961c5cfe838f34960f41ebecd5c36893b7452e74a1b3fe20bbdead56244dd68313257c5d73369338925a2a2289711228049101ad1cdd4739401928e4264ebdb0ac6e7b8d80113f9066750e7ecdc8d47fd5a13c41ae15b0d3706d4bf12e941cb6688e675d3209fef8f139401cf41ff3d2f226bc3601a740ba0c1e49c396", + "hash": "7aaeb3a00224d751f1100967d639dc107c0219b3cb04a42cf1e5a2662dd086bb" + }, + { + "key": "3c752b299aa240b621325ed0e943b5869cb75c8b0bc81cf585da5c0c2334f4c6", + "message": + "e69f2b06375024d5a6096964ce8f705375f055414fac8faadd1e6559e73cdc76caa0fc2bbe188097e79dda31f8505eb171529828ae7f9742a2f6efa8897f0dce8cf8f0", + "hash": "139e29bf3a3807cbb28bb027d541e2b3498393719f99b74723f61133a6238318" + }, + { + "key": "d759d35eb4eccb19e71ece40b7ebdeb7e8b8c144eee1f7e4b906f7415e5311ae", + "message": + "08f59b1dd2401c3d4f58ebf61f131fd983892374938c8023e9b9947e7484e6139f7850bfac42cbe3da759d16b6819e3945921dd1be2bba62527fd70965d54d6c0ee8e9b32047d3f3188baf636721501094874f90e719db2557f9af75cf0b3e368e88517c9131ddd0eec0ef573a4690d0bbd4ef8e700c3a8a620060676464a3625f5e56b7703a82a43712886ef78aeb87c55968fa6702b9c227", + "hash": "66223da950e409ef60983c93aace50e25c13f811baf0c3a9d548d28f5c3a9b19" + }, + { + "key": "504ffeacbf088a89e6d0e09567ee8223b974e668be8d67111ff638da18492d5c", + "message": + "2a2f5006eb76ab7dbce4c8af7099a02c29f0e3f7acf514ab0eb73caefe852fd82ef8318924eabc05544dddf88eb50287424811ecc032ff7b998ed818035a9c9276ff16abfb121a0481e7db7d12a1e958582fca31912de68da47fa709b35c7cbcf7ee6e9108d7cf68b62e2cbd45039ab7207cbe84982805f99e23e73e4c999ed8bd9bb950b8ec6b738c8ef856e450cc8cb911cba8b5d793142fa0c6a51535a4a5789e27e984ebff8fe4d647b4c259c683ded1909ea7cfa07b8cca1c07516f668804eee2ba81ee9f4b93de8b8fa52b92ecea148f770c162585ac9cb4b8c6a9afd790eaa4d5863f883a006dbe8ff5f8b087", + "hash": "06a37864783ef7f89f88b182a95ffb932bb8758a9246482f0e4d8cdfe98b1c09" + }, + { + "key": "24a0e4fa9be83c01de6c35961911300206bf7dbaf50f0b34ff4ca0ef94f2d30f", + "message": + "8d7096116c94dc9697495d4ac717a1877fda77c8f28d50b9d966fb7e57b0f19a77bddcd83ce1a0bed72933805948ee0440d98c20474620a097e124542534be06281d3a35abc1d526e1123569e52ed64bef2a526c6ae505c05e10421676b90a9bc8", + "hash": "073eba50223c33cd5ccec443a15e1fd3cd08d546b7f6f52b48ae1fb25fcd2045" + }, + { + "key": "3dfb261c25d3682b806fc4331575fe9c0ed8057d5e17cf2c3721e87fd5b0c637", + "message": + "9efb9264029db683806ccc47fdc61b911bbad37b323235f69c2154819d7fd80acae8cb0391ffe9485e3781", + "hash": "1a825f7ea51d0a60417151536db8157a7c7e6d020be8fb0391a22a69d167bcf0" + }, + { + "key": "c44cc4461c0a77b9c658a52bd2864a84484b918e0bc0428658f37efbc86cf134", + "message": + "b985d1db5e09daa0287e9be3449e5835f820a80ac9ecb72bb95a17ad4b7287b36d9ac2661bd1bcb92b23a580e1dc40d22950043fe8be1312c993fd5a6aa7220d6e3c3f3bc8f8c5b341ab238c66d4ddae757159ae60e944ee8cd7dee4d5c9783d8e52aae00c99d9c983ab992d00e58b3c5a12582baf00ebcfab49fc74817a3ee08fffb2f3c86f1581f190a91867c2397e6c2efeafee43d8674884f8fe8516215e74c87205d7c12f16b4833168cf2aa9765ce9f63e657bfa8ddb1d3b17f635131db574c9ad732f03a38e8b9587500032e21a0a96709db1053dcde7cccefbf2", + "hash": "a5f39945200e24145f5fb5d0603ec5049d443cbebddf32e297e68a152db3b10d" + }, + { + "key": "c75423a8175ea7bcccd7595b6e6a0827023090b0a756b5f82d97f49f1a95b96e", + "message": + "e31fca3c25a5a0a22032ea24bbc82c8a4664a3151b85dd576837f6c19d04a618b731ee21", + "hash": "44dbd60e01df3ac369b66a115bbc96a9ff888ac53581ab20d0eff41b27061bed" + }, + { + "key": "91814ed9ec6f57c4dff31c5c0f83f50f6d392ffbf9dc8f4fe3066627364f310b", + "message": + "fa95794fca3c0a48a04d4fae8e747ef7a0e9162a57ae9ce2638235e65d870302621cd95919c64761280d03b298d20a41761d750d154d3b1892160941686d0cab0cdf1f4de62fe74afbc43426ce674d9189c657c78e0f9b55b7f71b0e39fbd2656b6f98df78e0fbf530e9ae76614dae5ba2e776bdeab402818e2206cd6b4a9a33cdb672578589b1a229d25db0ea12d0966001105ad433b3ae5343b3bbb73d23fb7a01b291d04587ea661afdb392787bd79e732ac3ffea2c5909aed1c9d7844cae15eaf0870a309c3e359bab310834590589bc967b110ace57c60624b600d686fe1b670c9936148e6ff2b4b709609ecd583aa48ee2891ab3fd18bc90b624b45e6775", + "hash": "e97c2b57ae8dba7eb68fd982cacf5a199621f64ef02b4118d780032dd7dfcf67" + }, + { + "key": "91d76c40991269722c0677f33e68055cc890909541b6675a0150525527d14f11", + "message": + "592a6c0dbbeca04c77ada9e22a611c4377cdcc98f5d791c1fa20e977df7a45a6ad23b37134c7243616964309ec087d8d1cab94ffac6322ad3fd3a941fb", + "hash": "1b1ecf3d31989202e0989da77e549847f2f21890cfa7d613268308e474db36bf" + }, + { + "key": "6c51c9943acea9bd286925bed8aebd6a7023ba048ebcb27ea195e4259a23ac6b", + "message": + "85277789d0754f18986e1163efc222a224cb0c639ee18179c2ba448437f92e9eb63244b1c7140bbaebcd6e97fdd0aadb111e99f2eff62f9031c6cdd7cb271ee53731ead5df0164afebace8940f0f1cb2ab48a8efecaf50c43c8136481b3e98e776712cde54a9c69f5833bc7759710659c8974c052c3dbf8b69446323b4ad32dd20403dce35840d8633cb2c9b07ed7a3a5a807c9a94bc0de147ce5bbdf7e9c54f913a7e3b88f508e2462253474ac4f6e71fae712a79f12844b473b7efa3b6ab36d901725808589b6f029d77c1831e08b83f3111e5bbbc443d", + "hash": "7c50825c66c600a89bd228dabe0830d90a54637601c946169c7fb4bca975d0eb" + }, + { + "key": "da9cb39833b096049017dded9b4b136174d7edc6c5c29b825563741170e1bc14", + "message": + "ac37ac96f118d82ca4627c29d3f3f5c16f2d3e93a4b926d0313f010f0ba3afbdd3d12d01e93ff3253a8dd6f76174cb0c2035d9b653fa04d2a8a5f722ce40d95f2bb27021fe73ff523fe8b1d92764370b04b043851458432e5fffd91647b851be1592e1ad960a292ef9a9", + "hash": "2e4d3cd19e087bf21d32c63291c09fa2c0ad49cde1221dfd87cebc585fbe232d" + }, + { + "key": "93358a02b38fb7b17061a3fc76cf5ad5f489abce3f1b4860ac35caef04f6e4b6", + "message": + "7a004503927fedb2cf6903b31af965d6f6ba4aa7ed0bafa1e6357e298401580743f94c2650f84d925dd024ca19b8ff60d6c4b9dc6c5e4050b532b8bf5a25817d4db0d25fa07d11586bbd28cbbec8ebcb9984d7b01d766a47661166017139979499d51907b7b0bdde4b9056aa219e57ae97d3c1b94c396a583c52fa679935ef43d7c0b4d331600371805a249adff20d0543b1ab380a6a1e023cec9f5ed3b61060c94bd7875814fdbc4bdde25565e9a8605cd9517c3216ace467ca9b88ffa2f3d3b699ad5b0b85795b2895f21ff3341a43ff96acd00a32472d0e6c19c799c5eb6a6f880a48e0f29fb7832bd7075b6d53a85a08a665f6743d41e02ba4", + "hash": "e46d82a5152278ce5dcdb577121157f5161ea72fba957171c6c335871f32bce9" + }, + { + "key": "851252bb7ed66581456df0bb466a871cbd980ae3e97c85d67900a8c61cf068a0", + "message": + "ea62be13cf5ad434bf02b213d00e598646a798ed886655f4de9c14dfe80500281e588f9c821dd905aa1850a96d8df994179781f83438573d00dcd20c74ba9121c2", + "hash": "ef0d6a5055864e91f4c9427f303d226e9835a83f5e2bc84fe1bf9236160f57e0" + }, + { + "key": "d893d2db4939bef9012ec71f4ce0c6164604713b7c86bda699d78295a447c5fb", + "message": + "33c3abc8013626145d0b5b16d5bfcf0dd832b99286b545de30909ea529407860673b28731aae4ca1d3c042f86b9eca39136fc062e27f9d497174fb283cefb654aff2a4556710ace7da4c3508aa2e5290ff", + "hash": "f80b886d192faf036f9471fb665c223fbe089a1c49bd4bbb9898b5962bd1da92" + }, + { + "key": "5135f506c775bc62b062ae4a05e3a7c365f90cffb43f9e1ffcc3d736852cef92", + "message": + "260860d387ebb82b43a01f731cb1f2c998cf3030a5514366e5b0cb2c25cbfcc2fc8fcf264ea1d935899fe68e8ebb05d07663b87f3c7cf9dc088b6dc43e68d487c96627162d908ca254872e3f6354f92e736171a0e4d71222cf4cbe6b20f8a7ab27674fbdba4fbc0514add3f805d3d903d5124e4062f48ad6f7324d50b2a0", + "hash": "b6c6b7c7a836dd69f4c1f5db9a47b3e16e9d23dba5001f3478b38fb23defaac0" + }, + { + "key": "4345354a50679f7825c97f07ef7e7ebf439e44975dc6ccbe56637df940ef617d", + "message": + "abe98d8e0353d7f7f37132706021af29656bee8642628bcf13163f2d1f6a2e9a97c6a1e9c66a7a", + "hash": "45b1dee6a94315e99c413a145b7b07a6a6ccf34f2658140452716e052170ed7b" + }, + { + "key": "6d5b116937a7143c61d0f349f1b91dda5200103ba7fc17bb301d0c9259da00ac", + "message": + "efc2663f2ed7ae625b9374bac2f46a8001159dd9806fb475d448edaef823b11b1a70a9116d1fbcd97e5874d7", + "hash": "958d010b2c219e1b220d5e19c5be8c8d1f478c8bfa64d26d12829e00ccddb324" + }, + { + "key": "a58c3464f150b96a8915fab945e378997ed37df32f21badcc80e0ba1c7470365", + "message": + "d50d6736ca5b31a27b67eaa81e992fe30916f82e83ae42ad4f1eec0e5322bd0f2943b6c061ecb9fcbdc1e914d9dbff593f019ec26bed6c19b70b2d721c0564b17354015200eee79454d4ee077aeae0b24fb537ebab3e9d830b57c9036e1d18965795418a62bf57b3181989cd7633406ba42773b3ae28e183df9648d31e8f73926bc6c91c6996d9ee967554ea525b57c1e7d4608ec26ae20da0cf40225cd9b85e52f9340727df1c077ae6a3449d2dd96f62b2b5df71f6dd09e3af99efc9", + "hash": "094d4e71972995dbbb2f52b24a135b7be88e864b4c54077852d11dc8758dc857" + }, + { + "key": "2cf585f8ee99c97ac60392e8f39e8709a52117dd6e1cd28d7367521a6dcab1ae", + "message": + "7b11fe2c9f74f8ee9bf6452207790120be92eb6310f3a0ab75b616b5a29e0bcfb6ca005334725ea271fff72677cd3db441b9433877e7ea406073500f33a6fffed44511ca8dd172d13e07", + "hash": "6ed02f23ae3d4413351ff9e515a08f25540146ec009ffe74c83fd4437c72aeb7" + }, + { + "key": "a6e913874ac84d7661330307a2341bbe89a7c5a92df72bf266eac36ddd9ecc04", + "message": + "2e790a661885be5ff6507e705f1d44d8977009ed8f20a14727547c549a1b301d3fefcf02d8c56ad1ec09bfb66a138279cb29e635e5530b85362e43c6516d99d4b07b3fc98375a31aecad9de03976beff0c88da4b3d41", + "hash": "4077345f35b7d6ce889ffe3e48a2e2c12d809a23e68122325a66bbf83850aaac" + }, + { + "key": "4df8c67c9f73fdacc58507e05ede4678cb3b3e922f757df3822991b420d87f5b", + "message": + "11bfffa87abe7fdc8fe3fdacf93613040158add5e1665af564041eecf899624115a54ef6484a0ed8e4b17bd3ad84972cabd6d6d505deaac24163b3bb8ed7175b179cb4", + "hash": "4c5a049236a9742f3ab03865ec32fbfa74db26da388636a81fb9ad2d9577ce59" + }, + { + "key": "90e402eb7d7d6b97eaee8f2722e052b4c46c66a473fdef860620765c5fee8add", + "message": + "cf107356362a6cdac2998ea13a0e5ce1390f8e2da94976876b0b31df1030b00d8bdbb80b689a7509a614cb687549371b54e9ac8fba449c229dca2c6860330ad0b835a6626ae4ce681867237b6dcfe5cfddbf8f576810e44a068dd526cb65d4d8f3781922826be020309793ba03a8d3ffe9a74d0c47340857440886247a09a4b88afe62aac8b8e192cc632eeab128facff868a3d4d4", + "hash": "41f0b0f2207e03037b1a86023a2ece1b3945daaf9499dcb52be6f7143002adf9" + }, + { + "key": "80d43eb9332d2e4596731a420eb1fd760c25d9663578f1bd2f827d1054d0f5f4", + "message": + "6b80ff373c06ad6fd398b0788d13c42126f257cf5e95f60c24c493b62d670a593531492c73402979c48541e6aef16f2a4e8aaa354415ab80bfed9e4b09e1cb731c6ef00878b8fd0176c9f707e42beeb2cfba12c7bfe2f35d91ef1b6bdf7efc10bce723cc25b11bce8624c5d9fa98561e55f5fe7ced4655f6ef5079df49c00619584639d1e6ebd07c3643e36f661ed44a048fc69a31bf9c8c26ffbce1684b3b113d772d95203e0dde6b9c4f652fddd388a07221b01d71ca45c2e79c3a84acbd6ccf88c4d76d5704b39f1f6550551d20200d155b10f3f88037f23a0d72a97d1b962a50338b532893e79dae2e82e6d2c5fdabf36378e71de64688fe2bb0e124", + "hash": "70171e3a4ee7cf42f7b10318bfd861b6f0aa98c425c21fe92dd9c563d4abfa12" + } +]; +final List> sha3TestVector = [ + { + "key": "a99e22b02b97b70c3d4608391587b500ad3dd5ba78ee20a8c463bb090d01ebf1", + "message": + "70d8967d2b588a07e78f000d6e4c23e9df5efad4924969efea43eadc2e8958bbb5bc865f1b13b5b549d7f7f4db9f4bd558dd66ccc98c670409cbfd0fa49661268c5931087c1688acb711002b7c03835d1bb38d258249430328ffc2ea2d40bf3ae25378fe7fa7f860f0a65fb0f484d72bf541c88003", + "hash": "7ec278aeb5f5b61ab638691a8673a21d226e60621060353b0865efa88ea08a08" + }, + { + "key": "56680c5d684d3e16924fb864d82c9b9c27531bd4431d072d7040d265605f47e8", + "message": + "94e7a834aa1d436a4975cf0a7594daac891319014581adab20cfcd815645d63c192b0666e5a3ad6544898d9772405ac10cd43acd4cc629cfa937abce050120b2823111b6c3d25324bc16a2ad83dc6eab4cb2c759349f593bc8636633d05f57ac26b1936cacbf74f24abf5a0dad94f37b470f48afa4254db6b60401de92a5d4479e405e605a135a5931b3521145957da4bdb3c930ec3f028de14f88b172c3951ad24d42a2fbd93e2a14e718e2b9283c0a23007cf56617d457b742b1ab07e22caeda007afdf50a6ef11f4bcb8c85069366abd46b5916d213de3cc7f533f01499fc0e1c486cc86095be3d63b0e87a87161889e1d9fabaf073920ff609ac338598", + "hash": "d6b2077cea7eff3dd39d6b9ec4566f29a4e1cd490db77fd9c57c5a051fb4f5e3" + }, + { + "key": "7969005b7787499aa5ade7f356cb869bf5fb1705a63d37cd1347b12b882f59e0", + "message": + "96e87b806205984beba99b7f3c46f00f0d874a55e8fc5a9b5556d712a7fe996905474522ed9e7287a649a72679e48bc0af7947739f315cf8b15a01d8aa24e4474b0bcc4a537dadf4a8e924a9f6b046bf97ecdfec438adb21c0c989c404556ec42fc1f6c677f36deb681b07f321cbcc0e02", + "hash": "52811ef1d047c9724983f5c3f11db036491dd718d830fd035a3433cabbb479ca" + }, + { + "key": "1a13d72ee801637e1a08fc803f78fa5dab08f610413c937796700813e0cc2217", + "message": + "789c6a7d528808e091874a855f7d8e6965adcd19915f774759ad0c98a8f86bc0578b18aa0828c14ab30543d29d921971a2554a0051c265a60f84b3d43b6f587c65d6d30e3041f4ebfa25f8571ec72368333bb184d084e51e30736f49b3395af01031a244f004c2d983072b7ebf08da72d7b7351812013891452a3b97cce73083170db6efbe9c421559559bf9dcb4790d6cf8ae7a91ceaf7d85654464734b3ea87bf6eed6a9804ccc1991a1ac6c0cdc6c97a177e27082251dca86b269aaa4470fef8416ce8af24efce084317a314fe3c4ae95b32c156de305bf34c4f4603d120445b974867348d40c43d45ad086d834", + "hash": "e77457bde626500847d8996375d1e0c601cecf3beea7cf0fb276cbfadffe203f" + }, + { + "key": "b841cb09b3b79361c746e89c6286189679c7208c27c6da69a656909ca5dcd6f7", + "message": + "4f551b73914e0c9568c44f78b8101082adca113865b181d2d2aec27fa8e41d292068c54de70807018bf4d833098b44d0a05ed5c29867d6d293e351f6a8151268083e4cd5e31067684505626504796d9631db6cf9cf4fc5389a753345a37d0294e3019aa6d6eb1b507eca53c3cb008d9dead0300f3e732fc77d71f485db502004f605a12d923e43a899fe839f035c03dd8d6291f0389927eeab8028dd957c7dde1ac7a11d6e0b5b82df026783fd", + "hash": "f108d8ca92dfa9e76fe5e6ec54d2a8f5256c0d601ca2379c6941b9be6f54da3b" + }, + { + "key": "48f6bb2e5e0680c516e3a848f60cf77e6e9eb754facc9784643a1e048940e4cb", + "message": + "671838c832c570e88b504c206def275023a4fc95b0517234afad34de1c031765ff6281b0f580f373116ba5486eed964ba49e019c38c32b", + "hash": "1e053966b3644d941e10d0c91265924758066a945d13824007a2f7a952a7e9b4" + }, + { + "key": "af71b5dcce3668f472fde5016a3eebf741bf3cccfec39a4c56d7b0d98bbf2b4d", + "message": + "a69dc9faaa5f045a35b0833e4f39e2a553b992468debef16771b728be50a47dc64747bf990ef6c929db4122fb77578d121e3870f516c09a799c0a561773512b301c2f07aca3fb66259d9f23cf55b19760554f8a626b254bb1657d9477b080768d208797362af5183382c0e", + "hash": "409f72609cfa7b80fb4985ce78dfd2ea93e9f879b242aec2d977b31246ed5ba6" + }, + { + "key": "f58d90a3da5129d6312d97c144d3e70ea7cdccb8d2fff93d0290042831856ed3", + "message": + "ddd50729a973171045d6e7cecaedab8df765250a862853c2a1b1d8388a66d08a9c967fec49b07a0b6028293e28681d64f0ed5c40a07f7d1c472148eaa30cf7f9fb23e2ce815935150f84128589449a82fc50659dc902be1190074aa30f92c1ceaf1aaa7417fa5a098f4148542e577eba90075287ebe4152efd86df3c3ea8eeecaf5dc2c2e963a82ab7caf30671df111758f575fe75280f858fb74cd12990d5d92fbfe5fe", + "hash": "731f5c60de4313abf59839ae23a47acd2fe567fe905fe062243738d2583d3931" + }, + { + "key": "d9b8bc6a2ac8269f319d88a7d9b86c96386dfed056e6ab3b7d9ccfbb75838b7a", + "message": "addea30561365d0fe43ceed408b14fee9b5db9399e8aa62824a6", + "hash": "6af2d8d43cd1fd59c426e2141edd6b6c2f4d17c1fd5c0f6bfedb1d5175bdb45f" + }, + { + "key": "f06129a4563901f27f9069d5f5c543177d512de2ddf478e8460e2ab0906316df", + "message": + "a2ebd2ebb86e2881b13398590ddde1248a65ee8cd279ff5800eb5bbe5a40af3481d5aec3b1f6677cc1643648", + "hash": "eb0d162bd43dd7446375632824c9083c21aa3c9472722385bc906addc0ea390f" + }, + { + "key": "6a797412c133f87202b8231775c7977622bcc64e20356f1d0a8a5d9135e8360c", + "message": + "c6f773108c20416b3ae8db64e7bd6dd434486a973a315154a5c5083dfe6197baa74138ded4d13b2f5da59ad8c169e091f275b82857c42c06adba2e8763f5e09c5350569217fb3690a29c83a4b7892b8e7b125e30ea922650194ee5d62fd0dc5f4c5df983fb3ff2a65596a1d06c3dffc66f5490b14c2a99499b21fe38595bddbb1301780e6aea3ddc76dc3fbff94a5c2159ae631edc62a91a62063cd897ef0463f4ad9c29b6855dbebff9e924f1ee1c894d013033de82af2ccb65dfd7dd4496296cd3df86b7aa41316f47b38ac60e2095e708bcc4576d2842ee6ded9301c99069105f7b00015e4fcb323c67c58345bb73a186b49c18f9eeaeccba", + "hash": "b2a5717f46e7083dd5bfcbb6d9a1bb7aacd9f5c1811bc64a9db339f71d07e197" + }, + { + "key": "8bc5fdfefc1e014e33a0c676ea57098fd0d0c4071b9942b4392f997f4e790548", + "message": "10596aa9b00e17cd2865a0fbaffb2f", + "hash": "4ee7a8304edb65d0ebd3b2574f0221c1b6e5465f941215d2e66d72c940d00ae2" + }, + { + "key": "452889b8e43bb1f917dcf8e17bd85b45b3516fe454817c9f2f08d4588e60b071", + "message": + "3d4329329e7048eb99a6983627c22d247585ea2b219af8701a249d38405d443e89da06fa8123da7f", + "hash": "b62179fa4cba0c348115f08894031cb337ebf3e5c574bdd4128f31ee05997697" + }, + { + "key": "266016fd781a233799597cb1f37315dca4a6e1b94002fc9a779bb851d9922984", + "message": + "724fe9a0bc01de4114b5c131bca983311ff36e1e1e82bd31906b7732856a0d8658518620357d8273ecc0f34689181f618ed36327bd90d398ae2728829e00bd4138a726c70744f331dc555740042d084d5eab39928c52c0bd26ad7c67add2ee28fab57bfb21c85f35ed811483376f35513a1a9df211944c80a63b1ac26bb99be590ea5f967d0b6918c72247f189fc6e0fd65ad6ac054ea50d71578d33eedc1fca223401675d28ec30113fd7835cb2f9ac61cf6d8ae8d6ee434bb8f47f42c903ade8adf8", + "hash": "48b80ac623d7ca5cc5c737289f823b6b289a7135f70b4ae5708020d4fe9eb904" + }, + { + "key": "20d06d100a63d7c79eee66ca66560afe705023a79d70122d1a29d2679b5faedd", + "message": + "dd4d7c5b256214ded50c38178f46e3ca4b15d137719ffd932d5899b8eb2d55b6d0e69b820074efaea418acff47c84625319995d659d72ff939f47586c0bcbaeea6585384e21f4bf49f83971c23fc122574a03c61f7619b9558f56e87d3017921db582c9f04323f62e0a23af25a8eb2934df1ccfca03366b9847097327f133fcc3733af99ab09bca46ea9b2e9d4f3b0a650bdc03fd531982c833f765855400b5b472aa3a63d03c3116538ae0f3aab841171b50e776542bc3beb1e9e2da5e146b4dea3d49c452c7c41cf3e1a25b82f29e3d2e3573e60844bef0c51c0d6e133ab", + "hash": "e0c18ece2dd908809b7d4b048eb18b213874787f337d615c81448a953fbadced" + }, + { + "key": "112cb8d9fd2db1d89765be329516aecd6a74be961ec0da66eb50aa5b7cddaee2", + "message": "e5253ac2bb65f1c9389255fc880cc2ec997e2604", + "hash": "ff253b14b32ca46c754ead435aa2208ec8c12ef3f01b40f33e08a44e7f60b5e3" + }, + { + "key": "ad67c2eab9f63457fda1ec6d389c3e35cdacd2325fa257e7a420d6f1a681542e", + "message": + "be564f2ef0edc26bb8c5a461eaebe40208eb540cff09f2f8261c7c20890be4fd36df6f8f8902f99a8aa7df53408dd3a33099202c1e641a50b80fd18739399acb6ac16cbac712ee1c2bb4d3a4", + "hash": "4b6e94afbc356b715fc27659b47e557c89662216c56c592411878057b23e466d" + }, + { + "key": "cd46b21e6b1e8dbd2dea7c6a13b3f1ba1d208d474bf1e2829672d231bf983e81", + "message": + "b9e77d3047045e8fc1f8e1aaca28bd5a778ed34e839d3c738849ab6b970a3afec7a6b7d71a8857af86a5fa7c7efdbeacc00aeb022598ea204250d8c0f724a904b8a8d0cd6cba09649f8db31ad039860c5ec7511f219f2948fc5ab6cdb377e92d9f9882d581af9cfda9462d9bc5055aef1f108c6672aa1f19f9cc125420beb30480", + "hash": "a0bb478ba8833f83ce4359cdeae43d1f70c2a4d27c4af3cb22b57c004ac73d75" + }, + { + "key": "f33f83fd60b5e3fbaf277378e2b7eaaea06a57ce58a0a4050c7f6c35a324566b", + "message": + "d44665583377b53925558229c4fb593af4a4ce604fcc78d5f3d31bfb83133c75c1ec421a0c72a1d4d8fc125d6a92aa3f6855024f5747eacfb78b7514d8d9da85b3e6e6524a9b0ff3027d74ef93c8b7d92491959dbc41bfa39fcc8f9c23d04ec3c9c22747fa0928d2296a58367df7073991a91a44447c781414c24ac18e2334fa01cc90948c7875ce1a75912c0faa2f974f40c42417eaeb17afb573c97c247a8fdc9481030ae8d13c99da7055320426898f588507c8567c0bd827562716fb4d386d3b69f35678ea82253fcc29f3a5eff4cf5311e58027690942a01e02ff6d9ec3884b107064741ddb4c6585c6015e9de3c1176c9ec2f36638f98adf3bee1bbef2b6a778e17c", + "hash": "a88f881979cdd5f51e05331786072ffdbe8f0c67f843178d432177f95f2f47a1" + }, + { + "key": "2417f141881ac0f387cab51367bd76db82011aa6444ee61dd035cb85f580f105", + "message": + "edbd9b6d736d3f5ffe77b9bb87ea55ac0b0c7391eea775c1aa83c4c028631c78aac2c3ecf883c6851f048a04bf56d87ef35572adc8b63b38e27235feaaee2470d302b885e7486886fd04da1bebaaacb5fbd9f4ec38f7957d55785abdd7af3e503cc4fed4db8e420b3fbe4d3dbcf72ed501d37fd19735e844c115a83db8828a39eee34cc12d2f150a663d7f4049f31a287862c2ee5cd5ea13249693780c46e6504fc64f16857f0410cfa383669f45207ae3c05b0648b3d3d4acff3b14adb2e9ea0df67737c6a0ad609cd4b7357483b20e1948a7d7f003d33d0b5be89e5b01c55cb41c45739bc207321729b42799e639ab9914148c09f44adaa235d20503f754ce", + "hash": "a3887ca7605722d338e72835194999d5fd1f546136720d1d281e1b8ec6d915c2" + }, + { + "key": "7b491e451a9c5542eca4d5036540df04870a2336eee04921faba8ca3fcea710f", + "message": + "770ec538f511dcbd00cffddf3e0c043408e153c2ea72f61ea7bd1057032826c46651b996000bfb80b085efadd8ff5985305ebbcf69b2cb862bddee5d5fcd618e91984baaa19f7228cfdeb61850f2ef676fe2e9f5bcc6bb5276bb28070ccba50f776de03f97ab0fae7a41f56293f722152c21700fd3078207f00da4b0e1c93f343fd755c95e31795d6f2dd0f960430dfee85e2dea7c465fa7528e502d045ad82b5c69ee00ec136433d41d4a13654097f56936f64a3d31a62d4162837dd520054958445d3870b9fa9708df697514b4eb0b0528c60587374fbd129826f21927319e05f11f202b07f6397ca9d7ac696cc8", + "hash": "9b98e22a1b888a660c21253337fc77a43191b1a2b654f26062c5c588c41626a1" + }, + { + "key": "e1530ae353e8fa6d12c66004b4a6a65ba83ad1f42c1aa09e1f322fcfbcbeb312", + "message": + "0f2f8ea2ec43affa1e1f9111356f82402f46663f07081bae0a99cf0defac61aa79d42d5fa36aedd81cae2740b810e895c96d2625dbd3d3ba4e5910adf22b0f7a0404a2a0d8b81f735014b04f0f1a0dcc1986fa", + "hash": "2c47aceb16c47695d78e4697af8bf085071d83fa39dc436554fff64a72034497" + }, + { + "key": "24ca36b2efd6386a6c01c9a7e818ddd14b5af7a6e15c60f7b79cbba9b104706e", + "message": + "d9f195c4f9064785db60e78b57a46722b6270b1ee03e6749f310cd50cd1cc9392e43052260a2439f91108773a413cc14125988b82a71babf8e2f3dffac8fa213e8d507b9c2615c52d124cdf7dfde6426a460d1d049c5510508b9e3a713a7a5800393c31d5a024e592d63f2b9b8c59c8b1618f6fd13edbe8018c22acf222e482778240474feda51771ab305bb3710b1645eafd407b6cab3798f13ec4f541e4d037f2f77681351e4df705807c1bd145c67b27191a5f75ba994c4ac978235afb0eb25e484", + "hash": "f96b17030c909b3dfe8b88efcdd67eb4863f4b5bee5f671db4494eab95631974" + }, + { + "key": "c3dc923979af492e44082822915d38cce9f0f9a7dbde0650fa5dcb931adc71d4", + "message": + "bb9db7cc913ba8b2482d6cec1f0994304e54594a1a783da18b73eb0423d78ce235e57937bd20bcfd2fc99ee23464f2725c89e928958677e14f7ee0566cff0914d2489983e66b13dba26099e812a90b50256814c2568a8e830c2ed60ea222c6683b5713ce0ab88b6755f433a91d9049aff7aded7f0aa2a82914114be531cbe37c29f45835eef725a89b521618f79d3c67d51677f36ccef3e539407804ca4ccc13d8af6eda9be3733b8d6222a572dfe0f3c8c56ce23426c55b19d9", + "hash": "b1cf2ee7e66c66199fc4511759afc6525cb9fe5fb60765b0d5c0bf3057fdd153" + }, + { + "key": "392984e20da8242880f6ef4eb02eb1be1e9a49d2638b4bfd6614f6c962ffe4a1", + "message": + "97e1145d350aab4446b03e1be281b09580131451bdfb99cf4b6214941c27efa0eabaac0afdb335ce156af695602e5b6360091d03bd1b6e0ac5fe992f9f58fe9547d54f31a8181078383b2d03ec05ea8f2dd63fe0409b8a0650e2179b38e985d0c4da91dc41de1c5c2c467deb006fc19f7f369e46366fee6174176f887709f785bf871482a8dd98b19bf8cded78", + "hash": "f1200919422c4803884a340b90eca874e28176ef3a585d507492ec6115b31502" + } +]; diff --git a/test/crypto/keccack/keccack_test.dart b/test/crypto/keccack/keccack_test.dart new file mode 100644 index 0000000..10d1aa7 --- /dev/null +++ b/test/crypto/keccack/keccack_test.dart @@ -0,0 +1,34 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:test/test.dart'; + +import '../../quick_hex.dart'; +import 'test_vector.dart'; + +void main() { + test("kechack 256 bit", () { + for (final i in testVector) { + final k = Keccack(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); + test("test keccack 512 bit", () { + for (final i in keccack512TestVector) { + final k = Keccack(64); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + final result = k.digest(); + expect(result.toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); +} diff --git a/test/crypto/keccack/test_vector.dart b/test/crypto/keccack/test_vector.dart new file mode 100644 index 0000000..d81a1ab --- /dev/null +++ b/test/crypto/keccack/test_vector.dart @@ -0,0 +1,276 @@ +final List> testVector = [ + { + "message": + "97126b5563e524fe799a672ae7267f6a966f7d566360d5de3c8d06a84314cb3532becc1c27112a4448e55a0fbf077c299a5cfe78ec49e69828559061cfd0af07ab145c687144be467adfdc01619827b8fa79414ccf12017edda1b1a2e749d57fa25676172749b4268d0cce31ba11878674002953ebc8fc4f1e0875bf096e3f7cc886cbcf3ac0196634a5d25afc41879d", + "hash": "ed05af23000728be0bdd12f06f977960b64699d38051858dfd1712b02ee9078f" + }, + { + "message": + "03855228a37394bf86a12da291372f79beeb62deab94cb012e1a7cc2f0fbae6c1239307f3e2a91dc5cd5c60fb7d181cd581c062edbd65df043fe48612718c4d59025e13c47b1b71799689532c5b9954221d63a341d1d3a632e823bde50d094727afa11d6470bae9c55af2903ec90f11171d35bf08127e5fcef17016717d59cadea98cfe95240fb8b62d2df5e35a122659260f120d309d859f975ec2506f237d8167c726677326894e91324057986ac8cdf08d1bd4da9ed00f049c0e23e1679c5ec0b7bf38aea0271aaafdbc28d39dde56f66fe603bd9196c0913354f574314", + "hash": "3e700625f110c09e47856993de54fccdd453290f4b9fcd95f9176874c2dc42b4" + }, + { + "message": "2813db86555a1714b862429f8baa07deb2f4d0cd53157b", + "hash": "aba6cac107c653a4ece9a787c5ff601a41a6db739b7a38a458b38b041e007883" + }, + { + "message": + "cc546d3240828cfbc6425da27ec7917ee15f7a9f766389dd7557a09a467fd6021c7b29cf3a98a8812c949f4f99f391a68c0bd55cd184ff51c7de8829aa845f396aaafb8deefe1c85a2aba5c8fc9c4381aae27ff1ec8f46a8c0566310719f544061fa2d4ddb029234950011d6367354c6231c345af912158134cbe9e7c608f484a98e95a5af6fa6b0bfdb0f41def5cfc3089cdac7357fbdad174a51bfc9b2fb0114715a20e4fe5068f7bf003c5545e24afa02728cdf69f2eb97e1802edb29fef1aca520de2f936109fd91d8075bb3978523ed8c971d4d7b6a04231f3dbb130fb2ad7ba1b3827902b189ad5d439e63e0d4e211b404bf595477319bcfce7e2f8b9402c5", + "hash": "e20a7b1cb68a80fb265ffe25228add1a6a974dc593ca7bcb0f8f83c5b41aa133" + }, + { + "message": + "cd7b52269bbe557952bcc9f96cd92b975e315045d809a757d9df16ed34e17e10cccf0a1729adc26519001fb30348adef18ae16d816324ecece6717bb6238dfc6c6e5eae184978823347b3e50d4c590448041a115e290c4af70f1bcc811ceab305347575ba6209631cf6709b1112f43b9cd2b1c24a9", + "hash": "5b79cf76cddca42d27200145ebba1ce6d6fff33d7dd8c0829798ca9819cd3f49" + }, + { + "message": + "0ecc0df752f67610b917d0d5645ad9cb2b984892c270b06c4f6939519073a21dc155e228f3d0626a5ca03ef7f849602fb8b1a0416a3e2bdfd8abecf86e584847ca6e1fc26377d318225df3864642392bb6b87857330c3d184c105dbdc8ac42", + "hash": "79d01e35ab98f3df0e6e157dcd37c13f3293092244b85b0b3d63f179468e854d" + }, + { + "message": + "bda6f1d17e385cb5cb21e81b3001a6ddbf67f49ccc6c7b4c77d5b1659387ba7229e0cdbdacedda403076f22c5ddd64565ae6a65fae44a4d210eb88a54815c05d0baf7a1c07fe0d2125e8ceb17205df62ddf9c787c4c613b5e196", + "hash": "c141614558ef355d6695d70089643689c82abc6251aebecdc65436c14993f701" + }, + { + "message": + "5213b7b30abf8e1072eb1932ab1355cc56e340fc121fa7ccb921deb65b07c07dd162d27ab66c5f0633c43e3178b235bbd02c11abc74bd9206191c6e45325af704929d68110aa16235618c4fb567f8433e3f77654338254360c860e412c7edf372293c72b0a089a956a7d201b7bcd7714129840dbb78ca61d783b6d6bc49f63b0bd4b21eaaeabb6b34223ded6c233fd8088782abca2daea", + "hash": "d5ca4d31de576da6d02208a23b59d8393b41d7d01d6b68c1ddaaf2e6099a300b" + }, + { + "message": + "851e63b36641d783d053512d74fe258bfdc301e182b3f821a3e0910c188b8ec8c273067a3417e99885c4aa83b28ddaa57fb2dd7ad887b8090b74b3233b9f1bd94235f92a12e8a0d77200733296f01cd494876619ac1a1e3a4cc59e1a44397ac545d518a53aae83e66af09f8c3cf2875db18886adabe29f5bbfbcbfbcad9641887d8c27f032c426a71c67d3f121230d30434a897b68cb1840f12d2c324ffcdca470d4ac0197a32ae98e1429c56b425e39b27569ee9fbb64f4758d3bd8232e66f5058de87ed527654229ea9f36e9d68c8d371a071c64481e866b00c3adbcc9ff34412a76169f52ba78a964ba9674ad7b0dfecee1c3889c0a26778a26", + "hash": "f239c57759818700d335ddaf6318901e23be33bbce7898cc069ed7143c713dad" + }, + { + "message": + "9088b34996ed9597ed59741a86a21d48da8bfdb4a487bfaa5ba42099b63c250927b95f52", + "hash": "26d6b28f774e8062267917749bbafd3f6a7b116162a03b0dcdbf05fe54cab47f" + }, + { + "message": + "9769976727786c00cb04c8254510c461bce897d65ce27a90d4df79820ebcf4b0d8493b0fe548e98f16d9e598b29971b895562da5864475d33362cbf6cb04c5faaf66815ecf77223a262ea9f0dfe6289019600224e57d5478aae22c60c4d2bd268e47dbdb48deeee3ab7cdb098ea355c99797dcfb83bca43616c344bc5144fd64a9577892b758b2bf8d6974ed6a73bf7fa6da30a520a685bf9ae6d1c43807304049952ff0ce5a833ff6f23678b147c142c7d2e1c5ed79f6ceb0c1fdeae4036cd100d260d134cc8e64810a9c6fb6a0dae3b52a41", + "hash": "35ee29799a8fd33b0cfcd032f8d42a473ece7537b81856b1d751dd7b488ef4c6" + }, + { + "message": + "95b24aa63f10832ea5f12822a23f40f67f43d3a67830e9bbf21d8f9eb3aee398c05b9ad291d077cacacd5e97169eb0c0e8b0228b54e9f1d55a45862ec8bc36f7b81acbbf21189e2570921a91534a147670085f5ea7c0f975a043d0ab01d34f06b0809ee606e62b8e80040b90e396229538d6c63180111554858e57febd7e244e4068f6f5b1ff8a650020bd26b7f6147f1295d1bfdde064cb6d175095826327d4490f6e347e76d1bbae8fbdbfaa0872878f89fd3f2d0769c2a7443deacf0996711aafabaf73f137843fd826a217441241d6317195b42e0241f3dbf91a78c5e16402ed96c250b2b115824af4e7d2f238f4743041259a1b3d90840379bc8622f57e177cd69f", + "hash": "230204f15f0fb1069e72e16c3fa839f745f54f249b9b6fda276a6c382d4ea0b4" + }, + { + "message": "f8158922b51b3332913b3acc033a22ce5f", + "hash": "5fc5eed837d40945b298a5536c6dfd099df333c586903deed956e9b3f088e282" + }, + { + "message": + "ab134dc4bf5e85fb79664efc6bae2e3abd371a0fdaa7fa3dad173089f2aa682a2713edb4918391d50d5e31a7b4ddb13a7de020ee13cdb15dba393d29fc14670809f27240d5c987206b889160290c05d64631023e83b6e96ef2d66b9875577fe86e1621e9ef9df3017b50d449d6c18d0c6185bd278fd7c6c4c8bfe7e9895cf7ac7bb3c603bd69fc3ba73409d64295d2b1546a17408da7ee91ee8d926ff9f5b11008716f8cb6c041edba5e11ad2cd15624f7dddecad54544b5ffc985b34a8d96bc7afa9e658c18ce415629cba621dddf77578d5365f543a6f7b97532b0bdce48f1a2a885824baefd364098c1034747fe4f", + "hash": "5f1ae2214f26a9b612b839914ded2688916a4a08ed1664803590b61268296043" + }, + { + "message": + "db6b2fb636cc2df5a0e7a48576d8d768abbb280bf656430d941e3cf4423c34eccea9e71eb598d2ce901589c021c64434523736e1c4edc104f1c01d7de44041639912efedc2bf145cbf760bcf5719ccc90aefd4517861c9eb34713d1213c86454ca97af2ca70842bdd83503041f89663481c40776d1fad8b65230c732f6", + "hash": "6d0f0293abd895810a6c5e74521013e7e461b79f0bb6fc8e95ccc1b1b82874b2" + }, + { + "message": + "2a3ef294b21c1f0b696e0d531c37c251e096959dd5b02447e929fec2ad3c49aeb06fa43ffa8b173f578eceaf806b9a3f1526e94419a495374d72", + "hash": "c990466e0d94e3edd717de90803aef80356d1e22661a3a5196809eb94702f761" + }, + { + "message": + "54f1fdfe65f8e639acc31f065c8afda1a7cd8a81e758c98c6d3a187e85bd5ceccad795dc62b8b17350854970fc53a7a438a6a094dc392b882c0daddd7b4b62ca7994f4a60ad734837e2d745c80586972a3af60c13be365c7d58f99a4c0d34161752b6d12e70bf34241a02fcf7be06ee482379bf342ef54b66dfe89986c15446b45ddbedd646fb578c4ef65f81c12997726275a07c6a55619f5553cdf3ceb9b8349e54cfad0ea2696bafc3adc10c6f26a5a93aab6e211701ec9148c4f93064c5eddd0ff9e33f686297f69a5b14c3066c92ad10626ee5b72fb62e6689c87d03696ca", + "hash": "5f75ecf82ccb40b5dab1c4ad33a71443f83f86a2101eb4c5e54d80bbf90d0295" + }, + { + "message": + "a3d097be5e53018a3018640c6fb7eb72a57df0f14d47beb63ff02e17e4e0e5f633fa7ce13eb5477cd1fd9f9fc883b89b9641924321ebdcf3f7b0aa489ff3e99e8931b65afa4ea32cd8fad3fdfbbc4e4f586366ca9192d6622c39c86520bd4e3f19cbafcc8fe39402854711e29ccefc4b58442381ef4101a2fea35d364beb0b0eb6f51d6d802a2eb366b8fe9f8ffbe7b692b2fe366f09c1321c468bacf52c76d1bb25c92eda6a2902b1c4206d74113865b7f3b0524350fd94366a79998a1415d91eb5d88d7614b49bb9aa254f24a10c6001d65fa982cee746e0cbec6a323f6d52ec88f964435f5ffe966108262c76127084", + "hash": "173df5a0f41a4ae0b674608febc72be9aabe1c47611d99440bcb26bb26393dac" + }, + { + "message": + "993f9d405e7de31d558821c8e9e0a7603d13632ed1f64703571e56cfddff47431b50af5b5772aaaa2c1de041b35b7e5b730eb67b08b1a728964c20a454598f7bc7d15602b405e1717274c4d3a65c3f9e4864241ffe60a074ea2820f9040931fa05475d30244157694eb60009d58b2a612f9c13ff0a321a1a1a24439eb8353b468787b917f2e32ea4bcb7054e76e0f280c3a752f692eae839ecc3daf3565d89fffa64dee20fc84edf06440fac2c5bf28fe54163402bbbb4f40215b14e4558ea8abc32e82fec94ea751852b6c6bc9e6aa56372ad89e1c933f5c581c81511408309393eb93d497f3b5884ff739ca1c95e4fc663b90b17d4ed50d157e88cc1", + "hash": "32a82f006169b708929ebeca797385b992b6ad38e111f72f2998fce21b3253d6" + }, + { + "message": + "e301fd5a9d5a35007b8c1d59f3fca8673ec93bcb390afc8ee828015a9f0762e4dbf98f8c0acc9c8d2be900432a3cc8ed0d6545c7d6bb166fd27838cc155e830dae241b90c02a95a3a014c329798f7afbaedc", + "hash": "d902870c2b21b8183c77225c4b97ff50eb2dbe76ca8002c572d459f4fb3e53ab" + }, + { + "message": + "6aa587c6117049e39dbf0f98414af3898ddfdd76d414b0cc83071a4af884f1cdb7d10c3e1c8151c153baa40803e482adb544c9792f9d22c617e4dc32ff490c374573c1e27a3e98b74f4cb22735e2b71953b8ab4ed179432beb16eca8d47633931eb52c105a6ee1af2ef6d96a25c66e02d44b02156d4285f63d6bb38c584d1795a0ff335fc2ca2f1d30eb5950a0", + "hash": "9e2efe9701e20980cb87e2944da6b936a480b09cb6bd53da83b9498d2f592b23" + }, + { + "message": + "63e62d984c42921625693408db63358338dd9b7fe0be32eff6cfa9e85d9cb11f56c937260ddfd5c5cc808389e420d9db07200e2bd7328e726bb74f111ad4fb9bc4b8b27b7644937c88c2c4e9a78ec4ff66d58558994eaee00d002e24d04fb7ef1ade4812855d4435a468a0", + "hash": "3a0014609e7289866d2b319aa386bb00679198be538a1db00059912631df1cc1" + }, + { + "message": + "0184cc2d73a2c5d07ef5c38c90f5e804dd6412b99072f682997361679fc44cee16fe88fb2e69c8cda041", + "hash": "c276ffb0f311cf92837c621a3b13ad2005b639b049b3f021d79d7fc5d73cfd5f" + }, + { + "message": + "2ba1a56fb33b6680e44dc76d2d6b34f98385beab96bcc2effe99f49a6ec5c7c7970e6378f94f27090e1f481cfe3fa996fbeddf51d29e59a76bb6d6d4037f378584431868a87ce52f9477c8acf727473233c673ea8804b31ae4e6fe2cdf742609e2dfcc2f1a2281207c45a546b71bad72b023b8d75cf2901cd201e0e2b6b7f0fc9109cc657ee157a95dae4d3c26f876affce4da30e729078189cbe11a0e1d3c0a60604c1129b21eae11e4add00a14af0fd88d58ac4cc657803a3a716ce0015a503784dc48976b5e07", + "hash": "c129b486bb2e4e80c1e89232ec2ed34ca0e63ea84c43547ca660331ccccfc2d3" + }, + { + "message": + "b6dc1a0d5f5dd90cab54142969ba785aa4aaaea201ed24b34d223ff5e7acd4772577eefbf838c9888671fe2aade1efc36b4e668f3b422cbb00738dcbd3c133c428035ee9e73f81b0220d4368ee792f2bc21e1c8313a70a0a724a04ce09c55b2339578e1a47506398894d5778b05417aae73c4e1f7b6ed83a89c7332d8a630a", + "hash": "ad141f0e71bee4fa0221745bdf372d7b1e62636c29e0dcc35b8aa5c4661c3b6f" + } +]; + +final List> keccack512TestVector = [ + { + "message": "3446a15c8c7226b02850c62e5191748ee5f7b55266406b06", + "hash": + "62d599a82cea6c0fc5307cce4293d066212b0f051c6c9a71682f55c49b657b1f5c3213f4bb8fac85ce1cbeca8a2d2d246323f7693270374ae5c74eb6e0d48b40" + }, + { + "message": + "e89725eef762a77a743d591d853f21c80ec975e09d28825a452e4a9a1a804c8d2365825869e6cfa915fbdabef66675c06b9e83c0c256d536df4777d350a055cd2939e487e02074fe963527d9207304baef8f4f6c10b7370bf50103482cd21b68324286dda14f2cd7910339997ac276d695adf9a0141a5a2aaaf340e2051beb1c0888187a416452aa1bd5cc3ea098e9d357f74bd2fb64559c864a358607d433ae7bf140248dac18ba4658855f2b1ad79ec05aec2195c7e4c5", + "hash": + "dd1ff803401d27e88ce14df0ba0bdb5cb815a91a31dba5e821e51d873c563e645f0b48d08c28a7a9e78f92dcff50eaeaae584a8d101f79af2eb866dee9e0d117" + }, + { + "message": + "bd95b99c62764ce3072235e11aa412b00f0c98e4e66f5a0133d1cc1b652bfab2ba7b3c16307cd5774257ffe662aa79d9e5095ff07a60dd9dd67045af4aed73ec6a80b949f88265cb9857417d26400166ebb74bc97ef42fda64976690", + "hash": + "7ceb4dbc2362d74191515b3b1aa6305937d323f9cd26766732ad35c597c3cee69defd54db4fcef808163b170587940b0296ef190400b3a6e27fb6b012cf05183" + }, + { + "message": + "231cd87a56551a4001e4b5f4ca7e2268991f4b9a4a61caea67bef0e66273211b8a4ac4cbd5616f468e5e47ac5f6be7ff914f88a9bace7451f4b305b30c6ae050948106eb9c62dd84de08f61bd886abf5f68cac603fd9ff6d4e925c88d2790b7ed4020cedc3689b031fc682fd4a1e43972d2dd30147f529165119a594a0b71a8050974b3ae7a1369e98ee794d36913b28898b9af559fae93068d5baf8fdecd1b5ac7bcf2db9c9d69b4591985b5a13a0e2625c6b2b3b2e15da24c653875b9ff43c1dd253056d906f374c", + "hash": + "b733c0575aa034f27f264635031a71dc7d3a8873c8e7d8c8fcd080a75dbf559d180110f0c1bb67af295c1cac4ae395acf50ad87abe885ad08abcb385887fd63a" + }, + { + "message": + "0beb1240549c9a7be971cebea1154a0da5c920ef2418be60ee1c78f999d9767ca4c6be97b09b3c149ea9cf8993c47168f532c21964f9d47c6b13e95cddf00127debe809e4b3c29cb", + "hash": + "0a4828129fa5630421564b335705daa054a9df73c182ccb77dde2986ef34226b36ef84a3239a96e8fde44e41b6de78f7d8ec165eb94c27388aeaa78097531b5a" + }, + { + "message": + "1769fbd2fbff07c88112e3d27db23fa0b694c75699607fb93fe3322754cdb4bbfc5ffad95406190efebe90be6f73bf53567a65a27d7f937a1dc1c3a1b69d4b2b94a27313a3a9b0029ca71ef48c00135b36ec2473f4017d1db8a1387ee89d77cf602fb544e9497fdf0f2004751e4ea18c9c7594ac941f4e1f0c0d62ec44d39b2f44", + "hash": + "d93c086591974d84aed0405d01162f63c4feb12dc11752fd96bfa3981dd9a910e38b1047e1ca32fab700686175c94dc7bd5cb0ccbf32b47d75b3c116ba673335" + }, + { + "message": + "18d23ef15a01fe9dc196f41f4e4f78851a27b4e437c4efe4d57cd34d97a1073a6498e874f01e34e97287177510fc3631cf38fdbeb573f223c7a03bae424da0380307549b18174159224a3b9d7e37f8af54", + "hash": + "1b823217066ce4a9ad38ba8bcddb5a59c43acb9fd886cc8655bd861af1fa3baacba1c131dad5ea697601bc7c7b60837804ffdb7f6d2c2c76b924d301ba0b0ed9" + }, + { + "message": + "2212aea45b7f010a13a69e4d35150f12617d932e086349b6c84fd906bfe42822518edf7980ecd5de7aa13582159819b1cf53bc6c869105b32f", + "hash": + "c32de1b120b9a6e7947f94944465b40d3ef801475fb4663477962a0afdba764b0b7f82574238d3c70b8a3d50c1b7223c011265533660ae01be2144cf35e13770" + }, + { + "message": + "eb13a1a3e47f708cb57a276375ea09b3c5df224580e361ac9a5d78e4919c4bb4cb5a785a6ff14a6f69eed2620ab850018b0b5c9e4189f7aaecd3510660d868b09b1addb169ff717985353577d8bbd26cf302", + "hash": + "106f26f17d7e23cce6f68d7aecabb0acdc6ab1ddf8f5854dba0001f41fd0b5e1b84566ef1d32cbfad851d75c631026dd8c977fb96bc6f8d38827ccab923152b8" + }, + { + "message": + "72b1c83e66232edeb71b805e6da74fa7ea3015c350798456a7e953702632eaea38340a9dd513ad7e6245f6bc40ff9466f45dfdef5e6db7e9d63a71ee62c638b5e82fc06fa5e6bdef28aa498cc270ad41485c81694ea2800b6c06fa337ad098b93bd27bddce158a5da1262ecfc787666239c176cb60709b7521301da490ebd2984e0bebb733dd101451877d0dbccaa0b5c0bae7ecfd39d6f108e0c5b480f38e75e88995766b69ff08", + "hash": + "3ee7a67d9280e697abfa467d1d826bb2005bea3de422548547b86c4f4773caec404b2d5836df7ed12072d1c7611cfb22649fa6bdbf08c00436ffb8261475b5cb" + }, + { + "message": + "0dba6e78c44f18f249a898be9a8a6c7e67c101201be85b18852d8bae68cc5d6a1f3ce8a83dd6f05a0e762f7299773383dbc962124bccf58aad249af21aa7105de84a3d28457203f24b296db43a16572005d3be6462e4b1389728d9b4fe85dfddeca2ec0ad0d5a7623e450aa419e1e670dd4c27e4387d166e253925ffb9b64fda5d3b186834c64d98b1994da09daaa0d7b87548c1828053e0d98d86d14cb7508f88ef278cd4766383bf8491780a6baa23b39985be0252cfb6014455d1e01b57a70bf3d2e78801a243f157b0b2fb050fd4649ecbb34c5a5bcddbfb83ec6215e1b951d833fb2f82cad6ac57818b96a243a83b8aa9f392b5ee1f8ad61e83ef3611678498419c249a82c9", + "hash": + "82b31cb7d02dc5f08315da7b301f35ac7d90ed4fbfd7687a811887e674a8852de5cf954f5ff11dff018a745e98aec85a67768fe5f32c408fb533df11a6000952" + }, + { + "message": + "f4bfd6638601fcb42a4c956f8c8816e3767f37ab12f3eeb64650625e6671ee2f2dab7d30ca9fbcc22793569db4b2d810b6c738e9706f883be8d848837c8e2447006f6c60d62e75859c9bcab027f85d71962791d2f58e58e06d36d44b5973ddbbaa15436707ef44d0dc0973f39ff220fac5913ee8a7cd7aeaf6a432a01123cf628cad8a01bf225509f70fcfa7ddc8f402184b1f880ee55d2d96832eecd2760281132a3b5a2851e9ab847c075db13477b2dd96b1de2a45b61b04b1fddf5a34b9b7cd741b87774c7df6130145c6174c7c06465da430c74d104e", + "hash": + "ae0815e19d8227f6bf17825886be945dbcfb9d3e741c98be1095d5647c86fea56de8d214f0ed695f690c70fbff60e7c304fc95a06e779818869dbabc82c30eb8" + }, + { + "message": + "bc536e2abda9962c3f80e9a62c2fc23074df3be7481d9b922ac5d2f978a2364ae64ac52ce9830fc4b93f8390ee2e5606e7a63ad78fb6a522f8f45c65858a785de7216bf9ae605fb49f1178ed659d0928664a87ef5dc7976bd724f06824df4627a98a8f350b7c81c2cfea80f7769f988425e3f78069552a53777b3fb2792bda31e874d111e6f2de56bb923796c77f2ea3a02be2261aa8168e44c726be441cbc32896f1498d0d601fb", + "hash": + "85a16d9e339e78bb50c327b1e3a159fa5b01c8fa62f046a1635e39361a9d6d8f4f9a296c4c21ae9044fe34493a9bff7a6ac444fa32e6dc6f02ea6a79fc56be76" + }, + { + "message": + "dad7741592c89510b69caf200c11ba84afbd3f0db331cd20e6c11dcd9a340c1f5359f43d7168fee53ec8dba0d249c91a9a88a76eacdeae98054ee3dd59274a738eee0b00cc69e715be8fb67e29e8a0e4729c20ddbcde7dee1c3439060d1c5a937ee85f423fe311f437f77bbd370fb327da398c232cf494", + "hash": + "fa83ca3afb6d1cf874119dc8b49245dcc95a64aeb94a636786f2593507858f9eb3de6f22ab72fda3a1aedf716d822792f005a7964dd8ac410529de2d47557f00" + }, + { + "message": + "39b79f9b42ad0492b9e90e229110c3f496213f1c4d0f61db3d33b6d392f42bdf6a86c68e6375b6cf71d044fdc76691f45ba73074b38c704885d4c2ac121870e50261d69ea28162f054d32666394999ace00eb28f6873ae18ed603e09b870011565e998f060441ed6b31c40fe701b1611be0735f5ceafdc95a8bdf887e09dfac6d128a340868e4555228016e3e1d3bfab28e1acdb3027947dae33873d17f576c63c7875447231b83a045652a9bf021c7502ec884f5ea3db23336223464aa249c2a1b56d612f796f997d471dcfb430f2f160576baf9139790a6c1643e895400b011e81864b479e2a21ff10cc5fbdeef28c02b8ec3e14197410269dc8", + "hash": + "9bdd31d805aa699b879aa2b28e6ec923be5ef07cf44a19fc69094b6da5abeaf675af8bbf073a5140821ec6ca7dfafcc6af92ed6652b3e4fa085f73cf3397a4b3" + }, + { + "message": + "147fa31e49ba570dd1afd8b94f3a8b30e05b79b181be645c384848c91e3fb7976641ab24f81098d2e68644b1d8afabb98198b17311b7ae9bb76b3776e5e975e11571470340f18351c259f575fdfa04bb2c3fd4629a8a6c2a134a829e44c8ddac6293ee6e45dc891b63301b22e6e9520e0665b554b65e627652e515213ad36982b86defcd014a0b4b78e3ceb3d94c17755720cac699ab6cf57869fbfa544e95c17a2023add5caba82b1ca83d670186d8eaf7d38da6a9d12622c748411e46da5c4b9e8a17c", + "hash": + "46bebdb58ab7c577d8668e4d0cc35f2d357b396457c68934cb17e488c19a3fb3439071ce5587cff0df8a94f3970d0ee34cfec78a2785282e81a106b48900d9e1" + }, + { + "message": + "08020d2ffaee06a97e217319ae44c109773966ef552e53a2e97789009b4d8e0fb3dcf3a1e2cc691751ee29ca4a2656567b495f3881df38a007ce4714f013da5367d4f2a55d68c47d529c8a63adf5442ca159afca12ddfc4caa8d163ce25ea1adae9b2e83ff17c4853e85ceaac18b444bceefbae53308a2192608bcf38270fd12246dc2d8eaeccee210c83d04efaed60b7c5553473cddad48d684ba6a94641fdfb2986b030bca9c69f44bed99b70093192eef2e1771fb1fb0abb8951a6997555f", + "hash": + "34bd4327a37d3b279f6f129d3fe282a15986bc3f3f2e67b8286bac3fe9d56a0cbe3c68c76d6316373d280cd947fff34931f66b4b0755462ec8ebf2efd83bf228" + }, + { + "message": + "d27d47cd59df47edac6a7bdc7e59797a63e92a3fa2eb51ddc17f4467698aa6d7856f06244f5615f8042c87c38d4ca24febb846db826d68f0bccbc1a2cf90c3e5b103a6dafcd7b3598ba14622630b17cfba13be30df41af93d1e4499f1e6d0f0c4ef6fba2f62e150427ff4fb4fc8c6e782d1aca2ff7c1041d44b29e9fac47e3047f6b4e982355109d6d9c544d40bacb1dc1dadf66748d541fa36dbddbe09fcab98405c0a6747a6940d7115f67ca4f0d13d8e7248a96a600b7f71b2a8e2516e03e799a3cf9abcb07bde1d04f749d0c6976f510e720748317650334052560b1b6f4be183659c1af01129b57c54c5befffea5b726e875c732f02c4b617eaa330", + "hash": + "69fe5c1b9e180c7eacc164ed22c305eddf8d23178531cc1e838ddb6b869d23b872a17a62800909004653c21898417b4ff2822bf14ffb8b7eaafafe7d5849d8b6" + }, + { + "message": + "0810a794425512d709bf2a24ea954469287cf13c85252418d5bdec85f4bb020033c7b3918e3867de7a43f748c6faa0c981a3b58b2ef66238a2220b265d7e9270f9c1041295192a9a497e134952b439f011a3978dedfa", + "hash": + "4711f2110865f34c188cd4b1a906836c59a7c86544c965363b76c79258911989a90cd2849684742efa2672c8e62a7518f97a4c08447ccdedddde7389e8fdaa32" + }, + { + "message": + "7d1ae6dc2c8b7e6677c870340551aa3228d85adeea3db64f65154a588965cc4738d3515f96e7d7fc04547e822c0c7e3fe96bbfd48108f366c3c19be3a1ee62ff5b3ecef44faa891b394de53029cdd21040b084f0b6571471a31edcb498dad43f39c4293bef798f826879fa32d1fa1e092a09a352290851b73aab73fec0a278433ee9af2f0949ffb5f102b44389af5d49c508334397eb618663cb0fdfa9d7c27dba7d9e29aab171de8a78c553507c6a228386d42de9cca6ec7ab693d621304ce7ebde8a9c85c7debfeb604cf4bb7e267b598fdc62459bab60faab898da94ef8efb0b91c41b2e52cb6a4a2f48f5c8f2abdd11528edeaad1533882b8112085999d539b21685e7", + "hash": + "b24ad1967deb11e69a5b2764cb028ae17e8e1f598317eb95f1ddd6fc6238b6153595661ed7dfc974f911739cb2a10aceeb7b2f83fde9cb769476be776912bd75" + }, + { + "message": + "1f3645a3fd8f44cd4b4aedec1beb3168d3bb6d1920cebc8977ed87b108fa9d67062a960a254bc9c65d20c8af0dc759b9b9f54cd021e986b056c4976512c20ecb09b72dce02515034616f29d72076faa43f9d7edd670a63423378609aa43bef64eef80418972e89d3f749cc1387cb0cacd2b4308de458104362df0c98150e4d0acfae38ba967e188c315ffe9632d5aa2016b05e07cebfc9faaf9e08c42d114a3faf83966c1ad56ac122229fc5a995d3e5ac7bb33cdf76d3fe050e5f372ba5e10b", + "hash": + "49a57efd43524d8e9889375b70590adbc3a585e01d290da284b7671471109cbb98275f4c71148edb7c0298eedd1e53e23e2c58ee6715bff87dd91400d03b0d48" + }, + { + "message": + "f61082f9a7f6b7e1753a17d32ff4994498c65791c071d571e37b6aaa36af206778f4473c928e08084f070e3287f2f8c6df9fbc78df8e34ce4799c2ffef7dad529ecfe4e8f8d005470d9c6f63296df9acfd3baa1d80", + "hash": + "800cc23b99b65597a87736491b365fd54c3cc36e485efbe95d269a4242e2d34c51daf2472eae4830d188a4fb0700968e550b0b8cf46fd8327bff7decfca59e8b" + }, + { + "message": "97a4a74107d5bf005b2aea54", + "hash": + "e9933908cd34847e61b8a70285b1c19146d3885415f1acb88aac9777558bdf66b68f48155f1df33e36367d0bbd4c8ad4cd513c68e3aec65d7c7d6b3639b3d5ec" + }, + { + "message": + "55c7c789f6e2b261caa796cf73adcfb7933dfda87d66c5c0394c700fa3aa06d6d4ab7f89eae00415ac22559e47b6b9cabb4c9951102b67a5930b7a47a19b3540cbf6d7687b6cc2f4fe40d158f2629dacc857c8723727053ff841935b4d7bf3cf30869ca115fdb8c5ab126f289fe91a200fe27ef3465b0f78fc9f0098d4f75ae94d02c778e8fc1c607a01c29829afb99585f6a9a42f6b8d64f3e57964822b97e92820", + "hash": + "6685a1defee95aa853a9c1d59318b64e7687a0e3f2b2a15810d42fc158e88ae7e3abcd562751e6661106266d371021e16a3ed33c841beb7ab8661360c3dda500" + }, + { + "message": + "8deddd6fb2b930e0141dcfad499236ee189abfd6ad4bea686a76a8fea7c76e1087e6afd6", + "hash": + "bb4ed613d9da8eeea818d1dd63111f39332ce07dd066b819b9e5a6607ae9f60321cd2fc94b62b8705332835c0f00cb7843caf1c147fbc559f18b1d0ec4c372d1" + } +]; diff --git a/test/crypto/md4/md4_test.dart b/test/crypto/md4/md4_test.dart new file mode 100644 index 0000000..9235fd5 --- /dev/null +++ b/test/crypto/md4/md4_test.dart @@ -0,0 +1,21 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("md4 test", () { + for (final i in testVector) { + final k = MD4(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); +} diff --git a/test/crypto/md4/test_vector.dart b/test/crypto/md4/test_vector.dart new file mode 100644 index 0000000..ec95a0e --- /dev/null +++ b/test/crypto/md4/test_vector.dart @@ -0,0 +1,126 @@ +final List> testVector = [ + { + "message": + "aec4b5047d19b0cec91957ddbb654f0f7c0925dfc827538c84243f351280661e552118eebe14385f318e86f9ca6f4875abfefa2c326da88d7a77514df6800e8e638e0d41d2ba8d60eff8c9674da1a77937146d2c126db536c02137282443f4086749dfdc04d848556001d896467c076c4aac98e7be76ff1b9c3ab72ae2949874fee6f0eb75d457de7512c82f65fe104cca408a4d962df6d4539a5ce031e0d0a94de52ff0ef63ce653c9bd42fe38f63689e5d883b0b80c50bd6369b83d9", + "hash": "9a416d790189b257804ae4648582332b" + }, + { + "message": + "f200b15245e59990aff979e5e9c78c5f4a3145a22f7e6b661399109b9a4c5187a0dd7bdeb6509577b4d93b41fe8835517996780aa021fcef5ba7ea468f4b3e34429f896173e6061c8c7fe22b70bf", + "hash": "a592a81a8ed24f47059b6674a141d502" + }, + { + "message": + "79fb6a89db04a60ad168dfdd088756ec630311cdafbba3c6aa72ef131857c8a9321de4a9c33acf28342c77f64b6d912fe4ebcaeb78e1aebcd880901c1356c93e9f86328a775178b3dc6c840bf186b62c37ffa3908e918b79ccc3251ec1776a628fdf7657cd121ed28eef407e127997f78120e2733796af51b2325476c00c81aabe92b398e71ced1c4a05a067e8a61027a2fba83a5052b53d4a892bc73611fd41a7af708555dbeef3a8fa0e447cc9e0b15b154ddd82051f0198f3ba5c83a7ac38c16d7ca40e1cc9757e5b3b2c0998cfccea80cc", + "hash": "ba1e862b9a79fa78a9dc746ee16ba005" + }, + { + "message": "24feafc0d44751f0c9d7715aa474d0", + "hash": "176b813adf695f7bc81c610929f5fdb2" + }, + { + "message": + "8cf1b5ed8347aecaae3193daee6d2c62285179c1045169322ed6059f832154f356ada3c18a93a36616c438d1e846d514976113ebf3aced51038b568ec5b278d2eff468d7", + "hash": "784812c9368a6379480a7cdae7d14ad2" + }, + { + "message": + "e5c2ab2f3107e1b2b3f355b4f224ce367cd16d45d1fc5b08731345859464db81a6ec3b1d9b7fdf5c06b8761e92588cc0ac8a1d7b173f88cf988e24b5ab22532d8aa2573a41dbddd86ce48fbdaa66ab1220a48fb77aeefa1af759dc5a3bb2338037ea36c44f90ebb8a8aa0edfa5fd0268cee3a0c86309e500ad6a06e6484e5c2a465968af0c8fe922c4babcbd973ab0ce19346b94369ad01ef21c1c145274b073c1441f2ed3439fd7b721fb2f96636b8230921a5172ca773530", + "hash": "4541ff27a2f87b3a1e4bb44e77508728" + }, + { + "message": + "d1e46afe4d96ba45d1f35e9f14e2f93b99dca3306a3b14145d2fb28541f073116feeb5e0593542edb2e1a5ca4b277249766a522bc83a14aaac3af8152d2c055b3db0eb82c18a80e3699e90a676ed", + "hash": "e5d924201777fe38f20736697c51d867" + }, + { + "message": + "7f77d6b2f33423a4bde6dbbe48c86b141918175f7ddb67308e15ac1f40358a45ec4b417b76f8812c98c7eaffe71d632906250d273f66b40de3862227b5cb4fe8c2a90bcada47fa705de3110861d306f2c9e6e45a43060c713b406f66c183e1089da88d242f33dce5745348d38c8eed2bce6f5756adbabda8aa1ba5084ffa9c8ac2f330fed7b1b44c18d2a8e43c9ca1acbcd28a8e5a8ed6453a908a6188759e9d755e83413db61425125ac293dbe1fd54abbf020e1d4475b88e97ef66d27573bab8217ad75355d12226390a0fd427ed53c8cb92dbef85deb1aed00a1ce5", + "hash": "2b83c2bf296e304f57084fdc2d68e6ab" + }, + { + "message": + "fe35755028cdc082aceef37343cfe900805882ff6cb36c5e2a70d2653ff059668ee32cfbaeded78b34b409687d7423e8e5082312020fbad34939b61f5addd5fd2b633babf32267b2a8ecb5afa136a2b1afda732b50cc33398eca2bc834409155183ac646da88902fecd951f91d2771f80e995bf8bf7dba015684b8d981e25b44e21d746cf436e47207bebb26f5fb4347ddebc57668a2ec49dcb6163b648d9a86bcbf1d30baea035919e5406e6ae9ac1ad8f817ee9d2dd37e4b77b0bf034d4f940f45b5f0416db40b5009eda5804ea078cfab262d318aa22d869f2179cb4aefe3e09f396e14061457a6901d1f4edf5b308edfb5ccd6a093bc2c07981477", + "hash": "ed998ca9047830e18e4bfc84592da7d4" + }, + { + "message": + "5141517929d0304592a74af966bcb8232073d5857f99d7375e3415d1c0d50752da38814dafa876730128cb01beef44c85c5edc71004d8fc78c975beeec3ee927ed22d34020ba653062ce20db3e7201f67b971595aaa12b53e69eef787dece7d1348d4aac96309c26461d50f2c386608838ee520404004f881b4264fe85292127ff2835f9ac48b7a813d540566af507e579eb0aa4d186ad21875d6874b123a18abf72a3c0ca40984975b59fe52d4f1046bf3a362c8c9c79d142c4c5019d26d66080509566414f24ef31a3ac947fbb397e5fa12bcfba7edfb2a70679e1cfe36c68a9708947d462062948d363e56b76e86c5c7a387d52122ca3", + "hash": "b55898a25c2b4152d8d133d7cfc2bc5b" + }, + { + "message": + "5938c1985170a2ecb5091d5f369d14fa485fa06836d25981e884c39d5080ecd3b25d4c7001eeb586118e19c83d9100b5ac5d3e3fd4c83d0e9740d39fb675da78c6521804aeeaa052b28c1d36d7f02130e96d3459757765b146b9dc28ff0f267bd7374dde8c844420a1be4375d0b4719a00e841ea9d201ad0", + "hash": "af7966a03f357b67765430598eb8b8fa" + }, + { + "message": + "5a70bcf38689ffdbd6faf1dccc5b33a8462d8cc31563171d762b3ddf8e798575e60ecfc9abfab7daf2e494a9bc449b2287527929b3e4984028f788145947b093737cf5238b72714b61e77a968a888d8c5a3acf7a77788617f7dfaf62c63c2af386d2991dffd7a9b208d1342e69ed650e9c2642ad0a96de37a609c576180ca5c2b983b75cd9afe904dcfcf8dbf0d54be7f130dd51d9d739f3ec5079dc36a0234a6613b3207ed8c0588a0fa64b362aee298f3b6dfa8fd4a61af5f3b094563ac2341a16814c64a18ffd4460e0d0b7235ead88e2eb21e25c5b2c62d720ffcf3fc7a8c66778", + "hash": "272183978d328409eb3209b966ba094a" + }, + { + "message": + "fb211699b417e9cb6e51575990e6d908595207ed728b9b00b44f2f76210740ec4407c9cd0dbe7b7165087f19ad77311408a89b4e855f60684759093056e7751c3b59b83d47ffbb013a23b723d80f53f2c54f53f961b8a1368531c9856193fc4ca6", + "hash": "1ff404214bc98b1066a500086b831eb2" + }, + { + "message": + "5964d06cc4dd5812d907cb35909f1dca77e57fc9843b088201d103213bb09aaf6ab388b26dafb18bc59206853f0ea3c9e5d72bfa7e07eaf382d02f07397fc9750ccd7e3260062f6d56551d0c7229f112205974f176a1d2ea90db0f144c1174d592ea404ee998a846b270c6859e53bcca910bd5aebcca18c79c513e523813693f00b7627195697f7c9d41307a687147eff144b33f494ea213ed929490e540c842fe98d7ad9788243b0d7e533d20cd50a951adc7d22ed77a8fe54fad297ccb1f9c2809fa0bcf66d3c9dd7d5eb4d0fdbdbb4cc28140212d468555", + "hash": "717c21facb66538d6222580658307692" + }, + { + "message": + "d02be054024d91f26bc72e7ce8219b2767a7f718f7767b3299fca1e681f503f0e7dc48810f323f5a46e0958051eaddf14e9e9d", + "hash": "69833154a5dd2392a1235c92b1af15f4" + }, + { + "message": + "465e5602a2155bc9b128fc16bd88756f91bcfeadae19a7d2747c44dc6e48bdfe9777e4d897053b67c110b0fd48fe6183d59be559bdca2af5f0d6bdbaecf2795ea1cdab5c4a737abd51e278ec3aab36361b00fbd859e4886bf304980561ea501d86fc5d2986125099657aff8df702ec4d58a37c13d0f2bd5cff0e9429b6bd1a40b2fdd9f6138a3618e47d61e1672233059fa895a84d1a95fc6855ca86684991cd28f5a605423d5c5fbc6fbe9ad58547ce42252e13a5643efd98e35af474ffc4d996", + "hash": "a3b2cf9d85a34da69d83a736e4bf1578" + }, + { + "message": + "d7f55625da8558d80eaa7ec18301da718aa530bb7599cce6cbdfc97a239a8558ce38ec37715deaf065a1f95a165e2d88942e04a253161479dd41a231253614d94d7bc59ad0000e0bb7f4e5cc2951a0982b88ef34e3c4489fb4525ce6f049e5c892d7f7251977c7d30dd978b9afc06b26c78a69be177a13704a56c9ea3e3938ca2555df1a000e0f1c6856fafde2f0d6e30e28162b4495bc84b6d2ec104740fd960d0ebe313f343b91fe990ba2a976bf59", + "hash": "f0ea40c8452faf1f08ceb9f9c9ad4f58" + }, + { + "message": + "11be9650b73563c9f9b6fe655123648885ef36afa88f3b103f13cbd7c5e2af7d15611a0dcdd776a740f492901158bc4ae38fe345ed106996c7e22cc0d30e2a49c4783f9c883edb83249906dae20b86f59958b907797add553217bf74178db7d67c5c1e6e7a08bec0a58a2479828fb9c4e7", + "hash": "4f99981a36b34cd1cc9051686015f3fe" + }, + { + "message": + "57abe7fe1f4577a0991e00a128f14778e9bd8d84cbcf821b4ad9e395724ccdfae43e8a79eaba31afdb56bb15db6bb6701d1e94a93ad318fae3ecbcd3943091f646f22dd7787cbb5c13d567e7eb31554fc5d49ddf5d602116e9d48523f41065a24670b9b3814ca43b6edd82ad42a468a528", + "hash": "41f8aeb397c916b7dfb1bdcb30801528" + }, + { + "message": + "788a14bd468510a1e14725d872638599f9ac2606725993a336b02732d326f6f9f07ab658636bfae8a9e53d3f4e84758cce042421d7f54657b5ef15541aea125e5915755c938bfa8d2a87d1afb29719e702f73ceaf35bfff9616200bd411a8f7366609380e80beb49e69faddb4385eac788204e1e75cb7c0e4642534f9c1c5bb8c38945b99d658bdcfa22d780eff1ebeb905609d17a173afb5fcd818b65d55e6026d3fff519d356e0d4427c70e7771f468ae5b76a42108637f22cf36d", + "hash": "2d3197e24dce91ab65bd6d8524b7111a" + }, + { + "message": + "669ed40fd7c3356ca9e8b3f72c0fb1152d026d668f49374bc674f232a2534749db1169bc45cbacda73dee61c08a6297806ee5401c56d7d602f23fa73837a98855e4f5bd9dd8b3c62b3206a5500", + "hash": "854f644eb9eafc1862028cde0d640d49" + }, + { + "message": + "aae8050ac21798d29c45ce6d3536485a2fd34d7bcee49c70ac0122e1573df15ba08877a940d89daade8c64067885c0f0e2255141990c9f7cf6f2bb3fb32180feb92ac593583a6aab1135dec8604c9dc6e43b597a46e05e191f60ccff3c4d4ee324ef525898446a87260cc15a8b125c29", + "hash": "30b3642cda17ae255444c3ce740ca6c5" + }, + { + "message": + "e27c8907886033d735820f0f63a83bb8e77b96ab400a47d0ca03afc24caada302d4633915d5edfee10fa7b2c958d65f2a9183137e3e571cebe280b83e7540866ebfbdb0bcda61adbe6f33963b6d6e5cbfcb9029009879a4774497eff642582bf16e7534cfec0c6604ef457718244abeac894cfb385fe54c1eb4448439a37e5914701d036cf0178ae9ed0a011b41382b0830f46848e640bb22a060d28059e8eb27e6fd22c8f6df33ce136d63e4c8fff74926d317b9fa3f5bd0b71c40dc87e688fcfe98181cf42609a7981e104b191e2f55667a9973add", + "hash": "faed33a1995bc3370ea13197accbdeeb" + }, + { + "message": + "bf61d1e0e18751a4d804eeb179f0da2351974da35edc2e189f1e04de09bed5490a397021172d00769ec3410b863aa00789cbd639", + "hash": "cbb80a4326152520111fad3f60524421" + }, + { + "message": + "fc4dd199c2f6cbc4f2ecd29fe5f53141b20b897ba60648d4ef89a0e9437136d5563a7990a048de01dfc5ee0c492bc043e691ffca0bd0f3e96853339be2bdbbc1343e9fd483e2f429070164ea29e1de336fdbcbace114c9f32b78ff563e73bb3726e884db1e78a889bb74d41e8db7f20eb7e6c24c591a995b56955dcad5c334c62e722aecd45c42d623515d02887aa307c22529445b77d7ff032caf17c16c0248ef74f99f5b01ebc637c20557a61a2134efa716657ab5f5a43b4d2b35de651a8b6376031dae940201197238ba04eb4135ba3c1d6fd46f76d7210d0f68032df54e92ed884d40fad0e7a3c2f13f4c0b6a", + "hash": "2605d5996f040aaa378f0040b0a8250c" + } +]; diff --git a/test/crypto/md5/md5_test.dart b/test/crypto/md5/md5_test.dart new file mode 100644 index 0000000..aeb99fd --- /dev/null +++ b/test/crypto/md5/md5_test.dart @@ -0,0 +1,21 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("md5 test", () { + for (final i in testVector) { + final k = MD5(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); +} diff --git a/test/crypto/md5/test_vector.dart b/test/crypto/md5/test_vector.dart new file mode 100644 index 0000000..ebb5e08 --- /dev/null +++ b/test/crypto/md5/test_vector.dart @@ -0,0 +1,125 @@ +final List> testVector = [ + { + "message": + "f87de6b171ba4ca39ad7ade82741fa27cf2b39c661d2f837e96e5b321970b7811c3539eeb8ff364e25635be533bb007e6b249fd92162815d3a9e6b30abdce93fe6f6f3fe18d4af989748237d1535562026a6e75cc9b5a627ea7002c1938461537f916a3f203370f11f2c8c6743674a0bd51358ac10f8c0f85c5807f94bee", + "hash": "0c32fe27dd71b130fdced679bb80bdc6" + }, + { + "message": + "bb8f4da274e6176f89f11ccf237f40af26405fa74a16674106da1c23606ebcbcf7282be43452177b7c13befce1133315de8d43254fedd25085f4c3e208765d3b88d7593594c204ce60376a4d12eb52cd81847951538bd5266fe25a02061dc8c4beb6fb60a8f5f0738476d0a0e94275af4d46332e9fb8fbcbf64240677524555d926b1acd830b0f0724ff3e56e3ed859412530016bb9c3b3c23f1d4e85652ba7eae81c1b153c0d4", + "hash": "e4c6a82a3cbb4b6c3d05b7d4645e6199" + }, + { + "message": + "5b499f19f31a5130fda7aa613b502f8c821cba1ba294dd9bc8208d8e31e7e4ded372326bb3f69dbb3ce0da73882bcbb5d49795b632064db5e0a2730abdbdb791726e04d505b325791ac6d809d522a729009b5c2674dcf821cec1719a5d242571d61dc356212db2846b8804986f0cfce654635334d61975173cff5c50277d61b9c58e268aa4d76763d042de1c0093589180534768bd9ea2ef089784be3cd1be2c13e5208dfd3acc22798cb9b76a3904a385859509edb4853a7a8891837b3ee0189cc7bfbda0175d1a0d28bbfe2afc69b14fd94c4dbaecde14a05b39c07431dc03206455732459a0f66c1b20ad", + "hash": "dd95eb10eaba8b58e5f060c6048b94e5" + }, + { + "message": + "7e153d0b2e2efc10148a9f2ca722e7ab2eb1daca0b4edd5f0c1e83e0e8f1e7c9c8f12a5b3608c76ce63008ce2f0e1e269dd2dcda3ebe0c0a764b5f06517bc1a30a4508513f14a82cdd4e033fe8e55627c7e03037f260ad9fd06c02c0f6061c30dabc6d4f3a05e207036dfe2cc853b29c3cd4e83c62d73aa95057a9d64b7202e0f3addddc80a842428e2cfc155bbb9e", + "hash": "f688c4833e76c2cbab5b6c5196e31c71" + }, + { + "message": + "3d46c66f8c08d2e6d5496dd648ac8049ab9f8328a1f62af8666e1a5e6dbb57a0ffa65ad29ac456ef4f60f958b56e712e6bfa082ee1f11dc0f6407566011e43fd33ca76af0b668fdf504711db527455f74937b06839ed9d93e253f83959bfc766de4cd6b096a983891fa8e374b5c2ce3dc5b6ffa105c467710c69ba60952bafc57f24483957c66a8a6cf795420d3049a71dc27e3196bed946ae8f85203adb497b76718c1e9e13593b25afac9e6fc6f995dedf934852b1509f80658433799e5cd4ae1f9123554e440f9b1dcdd55070ce98c9c0472a0c373da32e6f9b1d03baf154ca3b39e18ef581d33a2171", + "hash": "8bea1c9d88b890da0b9504713f808866" + }, + { + "message": + "2913852b57297fd460e368e1ffe5a31d4dd8c84dc5d1a120e81c33a14df789ce75abe463fa9813504325f6666d999711896c7dd462ec2fe55074f6fbe76c76ece3c79cec8964aacc6ea4a97f9bef8c0e34fbe2107353d9fa3b867f6caf3656a414cc6056cd774b4d317f952b79313183cd1423b89b47a30dc7bb67df16827bbae5f5e7bc90137336f008ef94074bb0ac1b342dcdca1fc46ced8507bbf2df4e51ea7571a3bd57fe5498cbd07be221843856da34ef114c97aeaba42c1cbccbbdbf65247f20e781adedd5", + "hash": "be3b031fdc1f663489978f2d3d3e8a4e" + }, + { + "message": "598633772c74950e071d81492bcb485277be88b521da066c91cabf6fb1", + "hash": "9ff6ffd6f24e1aa8ddcde119fec2a25a" + }, + { + "message": + "cafa6a4819c9bfc1a2928857cb16a6513104aefcd3fea1b7d108ec562bb51237cf1f99236fd39f6ae54214380140ad3a536817b008e1cbb2ebfc74d384527c24e130577d44eebd413b146331be41cb29fd904b4d385f8a7544d5757a50c0cf332de4dbabc0641c560c285bc7c93ce9b77f5b531185d3337eed0a15acb0e56ae611cc459dfadeb93517952f4254346e9a37c3eec44e4d57ecd54153b02c244d51a8a3a7e64158d2b5", + "hash": "e2b66937f2f364cbf9e0183365504029" + }, + { + "message": "01646a5a574fe9d12c610a7b0b1976ae641b476b53d8", + "hash": "d0965d7d5220c0aaf139314ae5b0c1a6" + }, + { + "message": + "7c7f99876dc399d74b3c62a181afa0b0ad5a810964e48b340d9290c9a2a9b882be7ff7d39f91daf103dc50605bb5ca08f49f0ddff670aa24f84b5b585c550396b78328ac78a426c72ca3e0de46d398e7ecfa30a7f54d5f26529c1e30d4af5ab0fd8d52ae1a849c8845877ab5971fe98d23ecc8c45164ab8fbcd573837a2fb42ea157677caaa3b17f0d7710d42362b65aee728c31a14e29cdb4833fea4e5ed1cdecc66f8728d06fa673ba956f255756b8fadc000f0258ae1e3a64adc136f078a803764e099ded0df28fbe244804d418af1458847571fc86fc82fc31932ac3fb43ba9c85", + "hash": "defeb7ebb1b637424268cdeeb6c33e70" + }, + { + "message": + "f8cad8330b956dd88e69d269da78faf9915911f7ef2050e09d6dd659f9212ad44f65ff3d79eb930d5002df18157da9488949a845ab816f3ceb2edd17f17e546d74c59c76c343779902e0ad5ac92c35eec72bee447b1dda603395a65340809349fe51e3abd6951217244cf5737109a3c45f12a426f6566ff96db9c17daeb85607eac58e9754277b9df8066b1055029733f73d1eb140ffc8e2739be26022e486300db8ded7a899467a642e382d13b6ac977db06c568a6289599698191d384a17983786ddb3121c2f2ef926bfa6aba8e42e9602e332f6396b396c207136", + "hash": "5b85837e969535e826f1ab5168b9b10a" + }, + { + "message": + "b0610ebab22ed2062c6b1754048aa4b87ae4545052f41b177d946376609dc29f9a6794da1e46e8b8e4374bb26edbfa09e593014fe8c72ccf4e183df38e0c6567bd87a1d9486b538de1ee5083f8e87baf0a", + "hash": "503f96ef51738c05e07d9d60e519d2a7" + }, + { + "message": + "f4aa648b4166cb54db1a59f1e6cadb7f30b1f13085776c6d83691282261fb40f949c0a500c41ae0598a43358945e6b4bdfa3d6f89375adc54188801cc05d6885b42cf0eec8e744447d4de348891d0d052a4c5e799260f076f445131f3fb0e132f04ef0faef57479f4054bc7101413c25afa46cf8ebce0d28957e71aed7df3d1331597e62620ecaef4650b8e542277efa18fce2d078dcb84faa938ff5da92b73d413560069a1b16bf0310fb83982d44ee6cad8d3b9b57f1a26476be96a0c8c7626b6d0616f63426d8b3193fbee04a", + "hash": "337563692850f60011900198c4031aed" + }, + { + "message": + "b78d4abad5b289305b53876bf2d0092dba8350c66782e09615770847950277cfa4c55de8918a27f28749532a4440dbd43c49d47c3899735a375d4ea6fb19c8818ee7146218adea05fa939fb8fa240af8601e590f3105b531ffa0a7f03bcc4efc3fa14b668fa4a394190e5dc96f77347be364828d8343a3452c163b70fdf033f4998c6550f5efa4b8373229cacf579686b0d23e88c5d8ca1b10", + "hash": "0d62d0a49be3d4bd6e1b61239508ae42" + }, + { + "message": + "92682aaf3b3ce4890f46421d2a7f2a0d2ff13460dd1cc6c0e84f8dee3eecad7c2a80b5c0f13d9aad3b1e9b8e66474a3816f33bbe72d05e38b8f3886b3e8b58bdaa67ae02fea5273044e93c5720112120570fe89e4a6ba7250a3602ac9b48c02e24345a59d3b24e26adaedd6b08ecfec196dc68a354096a7ea93b8511ab436abefa702866f0e376266c068f1b7ea89c614648ca202d4bdda4640cb5eedcd62e2b2b940d85dfd00e6193304a66742a738638e15d0c9c6052eca8bcbb0541109aa9950257ab", + "hash": "8f7c35c2bc988c00ba2e537330b95cfa" + }, + { + "message": + "76cccbc73719681d6fca7eb696e98c5232d78d87ec27396905b86d6c88d1d090f701a1f6c9acb1347bb365747b60eed0e186ef679c05003254c057009201084496a8ca0a6c35e94a8c24dc7100b0138e5de6d905658cc09afb25d9499a6d218c047f6b98652ddc99b14c22ee2a30027775ae5034c16e986c418e4b98f55d174bdbbc25980c12a5ef62286b0ea9fe399412933ee20a673fd0969c0f397f85c490c2e8e52841bdfb270ce1158952c086d03afc615ed99db2789fae506714aa343e287b", + "hash": "046c9fbfe49290635fc2213300e0a2d3" + }, + { + "message": + "5c4313f23662f9433d9545611887a7723fd6898a04023c9417bf4b2772067f34e4293893a34a8af3068f65ce155f448091f225b8d243eb6d525407c113f45dc27c1f6067fb9fb578ee885bf21abc0a9a163aa9cc0655fcd422cefbb25329afcf19d2c43c1a32d116e96ad9d17808c8256e01c8a45583eb99adf0f46660e84156b5570686eefafcf5d1e4a9285137333c60b9b5c9dbf537a7d2447fa18fb899fbfe7d4e3c8813d93f3a088352cb60cd2af6bb88d040423add700b05c83d5b75e932e569612c2f3fcffa2c889cefef", + "hash": "955697f04a3753d2eab5bd2958d63960" + }, + { + "message": + "11afee6bbe5d37d22692b4da4367e3952a8bb84bbe9d43e866310a13519c41742ee81e03272469a7ff5ce3cbb8327040e072a86aeae1ac917ffc4a5551982a104175e3e27fcf0ee244f047acea889c7ff1e6e6906b4140e362f760ab231e98f646480be44bd53416c226fa4039640d874fdd54512b9161b1759d08fd6d6ef98dd160eed9ab7d48fc84feacb2bbfc393b7a685d541f118d3cb20a8728a0804bba1365cc40cf7d25e5b327eb4a035152f53ab151a843", + "hash": "cef27c6845ef5f1449988694e30c26f4" + }, + { + "message": + "3f799384bec8457cfee89c91a8ef442341d23cb00cf60a00649e4ce283186dca0d8768a86038afe431d12f5b4b804ef532908d", + "hash": "2e38b6120185a76ccac548901fafb205" + }, + { + "message": + "a3b5f3edf63c38ef1e28bdbb513bcc1f7836e7f3732101204b8097907f5353eadc6616a4830f10d38e2cf19ad859d00f245869d71526fe9fc2fe35be6344e18af4f160b2ed2c26a00264aad67483f4f298a6de13812d7c424773d04b693fcdf725297074c8f81321ce697f6eca296ed1fce1d67c1bc347daad2d44f7bfed26ee26fd80ec843172a407372152c6baa9929c4bc3e875aaffb8db89128edba68dc89cbbcd20e595e407be034f9e44b659ea1b74c07e80029568c50583977a1f394e503228ddc91b7bb6dd1e6ab2bc81a6b11ca824937b0a67cf239a91a8d8179e0a566a52bed5", + "hash": "1eea7f0d28b5cd56d160174c64c5249e" + }, + { + "message": + "031af73a70efef31f583ad27676a59ec4ac088bb047df066d2d7b1a1606df68186ecc0d3302e5e67bde3e58d4f225b4e151442b917da92f4c48b830e8555fa5b77f6e1f967e99280e06f9e88f39a2bc4eda8f9249dc7aaba56e9de32", + "hash": "54df1ed133eea8b19bb72efe51e3d7fb" + }, + { + "message": + "fdb01004fbdee6f2341e74154dc2d5af84a9455e8d4c20b3b9dde1d4c8ef2357e2b024983ed32c7e194a7e7b59e501944f8128309d4f82516de7884fc6833aeb73f5b894508730d0a2042d8493fdc07426b7bbfbd8a7c29969c379b72a84d4d28bee268baf416cae8d46e3e7252e73e53e8a96d61627ba31ec79f973d89c910161b218018189551552fdd2c56ccc", + "hash": "2ba338e3f74a9c67e3d07da489429417" + }, + { + "message": + "94146c5cabca769d98b52bdcdc438dae4dafde4e331e7a03972485619b20336edfb9a0a602c632999c7a600843ec3d2122bd3b512b6623c3f9af8470575635252e7ff25b541bea0093aef4527ffe71997c84e8b036dabbec345a0d7d7134355fd56580bc6dc85d21dc5ad2e644a582c459128aa66773bc13ba33bb", + "hash": "8f3cd5c2511476e55dfd8c2b93eb59e3" + }, + { + "message": + "ddefda4228a32b7177b17cc8acc6bb90dddd340e9a744fda88ccc3fe13675865cf007c8453f9cf3193b278172567a31f6ed30d93f628acc57475c4d650ced42b9e7efaca4d86395becb1bee9d12f07b23fcb87743e", + "hash": "210b20e8f191efd3abad33ae809c8a20" + }, + { + "message": + "011caa0e28b8cf6187690b0d688c47e62d22f505b996b5e7a752c96ab83e524aad5172a022a26a061b4db5d12f2ff7c4e2ac85c0dab61f95976f9ee33d02b67f008c14fcb58a7b530968c63767a509ffabaf7aa1acb61782ea1133ca7b16d61bda055c6059221fd70aea81a5101323dfc0bbd23d19fa5e9fb2ef47989b77f29dc8db427ce667973de7dc9d30bafb5bd1590005708bd688d40d000bbad15791148648afe0885b4f", + "hash": "4f15a2278bc2ddc965c2a12bfdff4035" + } +]; diff --git a/test/crypto/pbkdf2/pbkdf2_test.dart b/test/crypto/pbkdf2/pbkdf2_test.dart new file mode 100644 index 0000000..cdb7338 --- /dev/null +++ b/test/crypto/pbkdf2/pbkdf2_test.dart @@ -0,0 +1,23 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/crypto/crypto/hmac/hmac.dart'; +import 'package:blockchain_utils/crypto/crypto/pbkdf2/pbkdf2.dart'; +import 'package:test/test.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void main() { + test("pbkdf2", () { + for (final i in testVector) { + final password = BytesUtils.fromHexString(i["password"]); + final salt = BytesUtils.fromHexString(i["salt"]); + final h = PBKDF2.deriveKey( + mac: () => HMAC(() => SHA512(), password), + salt: salt, + iterations: i["n"], + length: 32); + expect(h.toHex(), i["hash"]); + } + }); +} diff --git a/test/crypto/pbkdf2/test_vector.dart b/test/crypto/pbkdf2/test_vector.dart new file mode 100644 index 0000000..9d0e007 --- /dev/null +++ b/test/crypto/pbkdf2/test_vector.dart @@ -0,0 +1,173 @@ +final List> testVector = [ + { + "password": + "a9fa84420b419efa8d1956258b8ed6b496438bd7f4b695c73972b3490bdf70c30238da40262451a45943429edc1a9a2bb9e674c661137847e2bc682f9f152c889ab023e431f4a8", + "hash": "05e6d9d41c1958c758638d48e74eceb1527c4c7a3f3a7126092970fc4dc01646", + "salt": "6b5c6ed391c5c3a45fa95c69896abef7", + "n": 8192 + }, + { + "password": + "22689857db315745d83f0e086494a75992c024339fb35147f04a0921775e8b44c0ceb25fd899bfafec5537b78590b9a1cd6172a20e3db9d165b5afe749e052e53ad3e6aedff44db3fd4df45f90555432316c14816eff04fdb4ee3cc2cf137dbab845a43924fe35bd90241200bc3bd7a7e3075670d4e8030c95321f9bdc7897c54a1c726865f4ffb81468940d9a827801721a0331acb1d321ea1ffb89ec61d7c8af387b24f042a79857481762477c014da23f0a44fdc52eb0b2ed4fe1b3b5eb97bdf25a77f2131888e406", + "hash": "e269a37c741a5de864767e114782699c1e378f10a9d1636820ca5c5d19a347d1", + "salt": "174b00b051508da2f0fd920950742952", + "n": 8192 + }, + { + "password": + "ef3c71aa895f315578435bcc0932788817bb383434b5ae41c6349636ab2f80e13aff2eec6aa2a45399ef8adfee24940d4e7042b6961fb86136eee0d5c85368bd07e400d4478588b8b4fa66199757d957831e5185124b1ad146e57eea955e21bfb23752a9d855295d4028de74d03a584fd85565f461bbca5358fac940294cf37e3eccb6d7b4e509b27c7c954fce42d3c74e7aae2aee21b964578fce25b3a7157d2ae339f06f0e2f4424a2d60611b64a25f8e8", + "hash": "0b70e00436f7bd7a940c8e5aa0c04ad2212dcfe9b2e9a04ac48b1e65f310c859", + "salt": "9f8c3f7c1bb2a256eb6c744a8cd16946", + "n": 8192 + }, + { + "password": + "70decc514e45a89fee5a4d929387224602a94ba5bf0ea633b9f1ac9985069f15cc8fdc0526b1a0f5e61ffd170d96e801be4b600db5a4d5c52687f09bcf3b47aa5e348df37b1552f64c7bf3e5c6110a1081322c21d2782e35b3f31cfefa905ad3f92142b57da8597686857ae0ee4c0e8b37c290f22e50e0476996bcc6d19d8e3c04351ccaf02dd835f3be897e09fe4cb8d8427fccf8d8b688ecf3dfbb205bd99e6c213a325b6d1fb2a651eeb3c91b9be71069682423471c030d78e77f1693e283655e3459f2dcc731fa249cff7cabaa3792dfa0f805b69c787407e2d366d8b576c86952936134eef8b86b27bf97fa22920164b2a4d44a616db940a4da93368fc1c86f6fa9c1df2207e278", + "hash": "461006e55e1153e998bd1b1706c4df38884960a36704d9a631bfb5f7594eb446", + "salt": "10c124a4f922fc3115a171cf9e16e274", + "n": 8192 + }, + { + "password": + "554080431267c437d4b860bc3f9fb51eb920f8c1db28c486f6fadc3579121354f53f5f167a827f10fe8a44ea511bea78a3dd5ceaa481c6941d5617fd1741d7c1c75d782f97e122e65639d95f834a1fce197267875bd1c2eb9630446c1203866efafb73619f0545b36b11439f8d4eca32b92e2229a7185607c030bce0827d9c1cb03b3970fac819459507658b3b2b0d04b5325895d511d3c3652303ad5d97ab8fbca890601326f3bc6a8cdeebfbda", + "hash": "1484e2e588281e949f32ec841d8c057124a99a4f16941014cdca3396779e5f48", + "salt": "f0691221ea1fa0a2a8c2d6bfd898ce83", + "n": 8192 + }, + { + "password": + "e6c5f9c6235492325a2ea9095d3e825cdc824195638dc41b2c9e3a6bc6a7d04ba370a424b4342e4e3a09090b4b41bb61217ffb187a6714fb1e0571262ec743599ef9709e31462d294b5e76dde4c11dd17cd209325ae5834e60e7a95cf619300d90900e015fc5d80609d23e2623913b7f51d922987e07dd520ab315c77177910185139f2d01f9", + "hash": "a41339ba0d7be7925aee73bda53a7373e17073904811445b16d8b4a6425690ab", + "salt": "aaf68ac79707cbf6e7b7dae5608e1a08", + "n": 8192 + }, + { + "password": + "bf02270182a36733ac1b5c2005296242a01fc862dd35747646501ed356114531df7de058f351d35c80cf42f95cf0011192ad915b0dc83a3f65d398ca21e032a61737720cf9f954bbd1f61b3ecff2d50e8c96b6", + "hash": "8c2a85ac63a3cc42b5a8cd04b63fbb14998aec3eebf4fe4a22b49a258a94fb0f", + "salt": "21ffecb56f61c9ea2e3706a118dfe8f6", + "n": 8192 + }, + { + "password": + "80ba9a7b776990d9607987a98b423237c0ce340a2df4ac40888ec1fdbc59346d5a1cae9149c7be914de6460ffd89b4db4f47ef02325d5b609c28683df229e8a2e6d1d5f8e159a5efb892c5c8b38aa69a1da7f7eb46690ce78d18ce691bcf43fab31b4228aa0056a232e41aa76b5c83d4278589968f67b9d29899fec23256f960af4498f5ee281b7ea04224bab24bb34383c06f003ecee286c9dd5b26e9d656109842e0841ba77c4f445166dbb1eef5546ccbb20fc8ea699593d03fedcc3ab127a070dccb892774cf7aa07570f4f2f3073b8e06b2a9b65e6e73e8c7460bbf91ec058bc6d6", + "hash": "e72ee4dfc46e0b786cc0327aafd4a550ee51bacf42c7e9d9a1b0b4618fac274c", + "salt": "a3de7e5a2681ff102987a30df7637825", + "n": 8192 + }, + { + "password": + "40a9437b5816aa932b366992e6bd55cf7a8171ebbbb6b16528d3158213408da54dd693c31bf450988f3d259f6f6a80622aced299f8c2cbdb7f3371813e286b4acd35abfbae8f3168672441475712d60c2e676a16e8e5b7c7720c5a23780fcd4c0bedb5d58d07f34b13de1a113872d655022e7d20eafcdd35bc5296eac1b6f7aa0dc6bbbe1189b708ed4b08af3a38db8423120f3137aa4c430db238220b5162c967d6b274bc3d3c474d3ee75fb17a49a3a61e5c110d13217ecf487923abd1e9fd25e9083c2be2638efaaa3bc840da74e585fea793d72f49f4c770a06ffe795bd5d57567ad2cf2b78fe85525d4f5dc3fd61738b1cddd26", + "hash": "f0e41ec0596dd5e5dbbd30d17228474fdc78df2daf376ae761d068b98e7266a5", + "salt": "fbaa15b7853f4b8bfc3daf9ccfd7c6d3", + "n": 8192 + }, + { + "password": + "98a8c41ced58bf367cae1167a6cdeac80e0ab6d5dd3e3aa997fe883be8e2d526ad9d6e30c482fb25e3c21ecc29c2e82b4a4978eefced9b6a890b63cb23bcfe6c6f4614728d0f6c0e0fbfc1", + "hash": "455d707fa233d000572a5c0c22b3918662b1ecc7bac81d18c5fde9da3e98c158", + "salt": "9134198c35df352a96fd7873af21b109", + "n": 8192 + }, + { + "password": + "aead2573a0f78f4f95defb2a55582d217718d08082d65ec4298b4912e5f298ca9e2a0577398ff86ca31b75cf7ccc6b8f089d3b1f1cd21eab4c31d333ab042736a9e8d2d62455f1ab9d2e280f73db16be1245665c49ed62bcf839d2f296baf0ea293f7b98bafb3086d6416e92cd71a60390812380c9133549565fdbe9fd929ea84d0ca897", + "hash": "aecc9c893b7ebb33a0a515185331d321bf0fc1009f7ee0c1736dd68384ecc649", + "salt": "92c0e447caa0524b956e9d76c91bca98", + "n": 1024 + }, + { + "password": + "9d5c138c7f0fbee4eeacd891f2540ebbf6aefabe70d94959505d8e03c0b979b7d6df4ff558418b5923ee562d828f0081bdb6c0acc8d091315b76ef067098a8a4ac0360954575ef3f58b6afd1d151e066f4777ba1", + "hash": "87406391fe5518fa2d65fda1be719cb57988dd0872905113530f842f07c93d1a", + "salt": "bf6ab372e86273ae7c73f69acec0631b", + "n": 1024 + }, + { + "password": + "d846396e4567eb7a7c30e75798012460e8997b59bb7117987e07e795c46ceb83bed2d39f5aeff37575c2bf961c60fef6523728612de648980b4fc03ce7723173372fe9c8d818f9ae8011aec6f8afc94ccc4c81aa7afe42d53e6c334cb407b7533c51de76b72d466bc6fade7c6ebfa75f93fe29d4e5014c320f8fa4dcb70e1c4788ccdf9e1177b3291c9223204e13fd5cd2f2c0aaebe5585a20b7e923fb6f3b1623a26f4e908e34e840517a23c493352d57ecc4c9cf16239f706097ae13ed8901a3400f53afb1c678804f3a8ab3d25aeb92595f07cdb906c7e51babc9b7c481de78259adff74e3d5d374d203e10816ca1cf61573b7f35dbe6d8a3c347c6af", + "hash": "d66fde0dae861198d9d9df47f362bb8d6f104a788aaeae93b549e5999d47fc32", + "salt": "42bfa54637e54c6653faee50a69539eb", + "n": 1024 + }, + { + "password": + "80f4b6eb88e8f6b8c78a3eab7fc5c66ed19970e644d4c4945576d3581815d1432507e1b5ef17a4affa6d5257f9fa010f67b0c2ebe7f945e89eb58e", + "hash": "33c3799a94caf49e7649c538888b366d1c17782514a284327534a5d9d2ecb443", + "salt": "bee514e37c1460470b907e5d0a69b0d9", + "n": 1024 + }, + { + "password": + "3db8a6bc28aaab03cfc701a29c78755d376ce815cc04ec725bff36755e75501f1ea69f5f7ac775bac8357e6125c45b8913d88416092fbf1bf3c7cdf95a23979e2c0c103f901b09ba14df128fabb8fd64a8f94ca5cb868de3ebfc0a16c846e5dd15d84c20c24b6c7b15d1ca583cb56deffe6477b309", + "hash": "da499aa8edcd0be9bfec27e8c5b5b0e761c34fadd7167b20a2e7f231f1ca6299", + "salt": "daeba558c52638ba2efbbd5b1818cb14", + "n": 1024 + }, + { + "password": + "f500846dc5269d5a80b18b1def40f6438e651145df888591c3a1a74fe5284bd59f14bb81c8b90c276b044587e59c51e7c44de4c3498a89352fd88c7580717f84550cf0a7e3de20414bd89b01520c54f0e444b1c32cb403", + "hash": "06430ce81e71e99b2c45a7e8f812d5c8d3179d2963a5adeab2a74f34fb5371a1", + "salt": "f790cd17f1fa2a6475f264bd8927fc8c", + "n": 1024 + }, + { + "password": "0a56e028a54ef077e0deb6f4c831e87f9d78d2912ed1", + "hash": "d38fc6a3f4fb1e2026dae6e8bcdac426cb4b5890f930e63191a0d030c0f54d39", + "salt": "ef68e29268ba2b0c67d0a845ad4c97a1", + "n": 1024 + }, + { + "password": "1655cae52fff909eb515214e", + "hash": "4a8b49b628f0530816331b2de2ab7226d9aa91bc869acaee64468739b22011b3", + "salt": "436513c8d11dc494d06e25f355c74e6c", + "n": 1024 + }, + { + "password": + "321f4df568994477acd3fc4d20d55192250f3a0068ace30dea0923d441897ceff47215cbe24ebfb978df587123e5b88d07318d10587a61ae26029d4ab1a9bf234c6e9f5bca0cf2f541f03ff74562f02609b92a42960634bce94a233326a2c8a8dfc11a6b3448f61ee2a16e7bb523289b2eeaaa85e58a5432512828750316a6dbace4a2873227d5859da05712c04b", + "hash": "23f61dbf3006694b2f491fe24802c33bca0f60e69d943f3a4bb4b75cd473472d", + "salt": "f7a57e80de404c5a64c6ea73fe5d827f", + "n": 1024 + }, + { + "password": "0243c5ee6153fd194da4a6e3", + "hash": "63676bf44f8b185cca7fca4c15bb1a7b16b3c2db32cde841242d4c0bafd5b3ea", + "salt": "13f02c0436282875a5ea16c000138422", + "n": 1024 + }, + { + "password": "b530c436740321cc0e177ee4e730e61634970cc669b36b5e381ef6922c1f", + "hash": "b5f9b15fa30a718cd83967d9c4dc12ebac5d6fea4e6f71c5bca4e709593509f6", + "salt": "a1aec8381b8377f460f25b936d0a6742", + "n": 1024 + }, + { + "password": + "a2fdb8ebf4dc37ce6f8e9bb7e7b11a20414c463686a0903e8693caab057f2ec17298496633dcb3537c1101a1d346e739ac51987945abb176989bc5d26d9805a27a1aac73319af721c5f6a8d00a71cbfe04b4680efc1ce6a6a09b01b455b634053e350b4025ff391168a85ace417b2fe2da60a8cb13cf04be322e1b5b82a1a962ebe526fddf4c4e931a042e140bcb895edb1250e72ead65bf73e3f4a169766654e4d94f92713f4b80d3584c89121a72d08dfd6772a04030f8d430ae68252ae451233fe8bb1103309d862819964e81bc953ed348def1d0641274c3187ada232c77f797d0c93434cad8747fb92ea905", + "hash": "3bc9b2d246db93f817b80fa73d394296af84838806f778da9f9c9dcb84d034a6", + "salt": "38a17c65960ddbc73ddc114ae34bf612", + "n": 1024 + }, + { + "password": + "7a02fde8f59f985d5633e635aa1f2ef010e9f05d5a4ccf85ab2b920e71463d97b6a23ba1709505234aca3ac9a1dfcfb366bf7ec20d63c3d700a018500e90b6cc1ca7fa1ffde2ca73abeb4c6f6c0c5e58466c03f23e34349e5f62cb955654f99a4865d2c781e2f61196b8e4f34d08bc922adacf87137d0243792a09b361d6d0211911d4ab4b60ad2b21fc50c085bca19f9a57bb97a29d7d2198594db5841cf6f9f55edb32a630c0037e11929a38f13300ade215c2", + "hash": "745bbeaccee6d1b618121371680517326d02e9efb2e8b0e1e651bd91c4714f32", + "salt": "a81d2936dd9c8087a7006c6fb31e8815", + "n": 1024 + }, + { + "password": + "15e94fe65c63720b9a9616db1f13dcf69b797ff3581d54a05dc9ad9cc6ff106d63883662c34c784d2ba022b724c60052399b5b1f96d08c7e6fd140dbd6437429f0a95bdc472e81183423fb2131c5", + "hash": "67cc1017b48f8716ff3eecdafdb5975cc12ee428b022cc61e0f4002b212bc5a4", + "salt": "fa0c8a11d43a742d9888a94bc0bbaa07", + "n": 1024 + }, + { + "password": + "de4a4fae7bf00d6d9a671ed01e3f2fa12bbc8589fc78e2437c7df1b0e65a2a6ca8ed7def4cc858106fed6e3a491c2c48a46bc3701c49b114851365aa6ca68a2a3f6c9c31bf392902f8bc4defba81bae3bec0a2b52c0aaed00b5a8765d5ef07ba55be6c8fbcae3dab2536942cf08141f21f", + "hash": "5f03b79644ec66039cac1f47856152776f9ebedb2d9ac5815abb82006961ef2a", + "salt": "edcfff35a6c2d3eed990814d21ff4c67", + "n": 1024 + } +]; diff --git a/test/crypto/ripemd/ripemd_test.dart b/test/crypto/ripemd/ripemd_test.dart new file mode 100644 index 0000000..84f9408 --- /dev/null +++ b/test/crypto/ripemd/ripemd_test.dart @@ -0,0 +1,57 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("RIPEMD128", () { + for (final i in ripemd128) { + final k = RIPEMD128(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); + test("RIPEMD160", () { + for (final i in ripemd160) { + final k = RIPEMD160(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); + test("RIPEMD256", () { + for (final i in ripemd256) { + final k = RIPEMD256(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); + test("RIPEMD320", () { + for (final i in ripemd320) { + final k = RIPEMD320(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); +} diff --git a/test/crypto/ripemd/test_vector.dart b/test/crypto/ripemd/test_vector.dart new file mode 100644 index 0000000..b39e73d --- /dev/null +++ b/test/crypto/ripemd/test_vector.dart @@ -0,0 +1,528 @@ +final List> ripemd256 = [ + { + "message": + "98c66d857059a20cb226005dc8572f690e2035acd41f7ff70a5aff7f21fab212c179ab900915c2e3876007ac17d93ebaa50f39c54754e14c2c0e3d1288f68795fe442b2549111f22355311eaf7fd6415c761c5b5c5ecf4605a5c9e97f3c2f316c81dd714da5c0c2f35551eed377095c9124e5bd64004f8fc4813066cbf5c940ac84258994c4c5d7f578de99b5cb521611a570f77da559d053e73194ad3a7d8cd01688f0594c54e5e35e44ed38ecdb9130a6aa2cb8a96f4298c91aad9f18cf389f4dfe45aaa01777c056c5e69a1ffbc9bee5f1376e2882f669871ed4878f7860699e1c9dc9d7a31", + "hash": "ce1438376e31b05b3b686a153e3af89effb0ddb4aab829669baaf67f536d71b6" + }, + { + "message": + "5272d063342bf98bbdf767a4394a9ca1f2a4b23fde4a77c393044957152bc0ebcc23af421aaa779cb6719ed0d72d042783f78f60b790cab99843c76533ac742d6205b216", + "hash": "6cd3fb6f0e0e48d8652821a4c3e20273e8964aa03de61e9f4906d76b34591ee5" + }, + { + "message": + "1e1f2132440bb3a7fd49320eb5ee74659d52232317d4435f2262b48dbf0940bd997c8bcd14a6209a2157cadf479c51ddb0051f01ad47d40ef9203c2c5e15773141dd1c8dd2ffb636cae3b0737216606c82a956a54845f30311fd1c632b3824da9e9ffd319e5c55ce039c3392895776e513ebe0cb2ef5064f178d0889b6a51295a8ee7625a19b345ba678e5d3", + "hash": "51260470b636a44db962cb7227c6cae5201d5ae4f245daa287961c097fd009fd" + }, + { + "message": + "5239495ac36fd7c901e5b843b7b224f9c5a747477fa16bf042b76a1be5daad8f0c1018a34ee9c002ecf96c6d2fa9e1b252613d321c0e85aac07bd96838b43c9023ccb3f91e75316b986744c25e7812039b9025c0f846270e5151d8b2a29a3bc1421cf32c8b63f0aef492abb1308844f54566ef9bfa4e8b97318e1674becb7277988a62860f25b9a60d59a1098bdb0ebd9140e945d16d1a6427d24c66d2b3802c613273e363f4e320acaf54faf0c87d9df802115d3edb0af929b321fc6cc86e7a34f9f12a6fe1c4606d09a695a6afd8a2ffb05ac9a178e03f", + "hash": "73abe4ace3e4861b243d1252e2b85163680ec6aadbd0403934ce08d3ef10ed37" + }, + { + "message": "5acfb7aba3bb837c07358f2791", + "hash": "2684f634f62163c7345594aede8c66ea1bc0879c36e2d421c55e9797920185e9" + }, + { + "message": + "33f69ac664f01526d99f844abab1c9a6fb6f35f086e45da243dc88c44eac18ff150ffba565fb28d99a73d4af02ed53a42802ae92192de25232252b333a6a9cc9ed4cc0ce42cc5ed916b62e76acd73f", + "hash": "1e886f34bff25604326c8fc2290ef773a202a120d904dbff712c9214b0c5ab04" + }, + { + "message": + "ba99b9af5d218b0adc8169c568124601523f783486f34c62a6f0e8282493230a116a6803b4461ca07fc7f7d7e5df86", + "hash": "7a3d39401235245e28b5b603c643bb923fde9dde34ecdafe166fa579313c64b4" + }, + { + "message": + "7492ce731b6d169c7891e3ee7dc6fa81c1f8639f63c7da53ed1848ababd916b2437ab4d9dde539d1e3", + "hash": "673273bf3a58f7f8a243adab2591bb3c1856765013513a0741a953b8d91e9a16" + }, + { + "message": + "36af858d4e4e23ad20a52bfb79844539fac40baf0a5b5b414bf27ccc24580146fc8252953c17dfa5e2e1ef6426f38b5602af75ad41f0cb7b2d", + "hash": "bd15ebedcdd87670d12143c77f7ba3800cade254e8f83c80e18882df409129c6" + }, + { + "message": + "955f7a23e14816e7a21d630bb9dc3ab8516f996bda609fe2d088ac2a4011c766419794a497c52039a73f17d8d6381b473a3b", + "hash": "5a5c5c83bc52fda7819d017603b8c03fcdaebe81a30f72d0e5112179bd271e57" + }, + { + "message": + "356de07cd05ee1ed9c40c16721d61f2617ce912c3f6dc164ea3c5ba70d20248028afab2f895eed3d3c9b4bebfdf8c19b48ba7e525c46c89e103f62414a9039c0d4153e60d198e01d954b173d1f3f35247bd2a4f7ef4f5352457f39e98206aa65687578170e76687e4225be0a62eafcb8d3c94e8741eaf1b9b108a6161766e0389c2ca28fe419ad4fc80d1640535edf13aeeba9c8d06c6247ee25e3ea75fa68596ccc20b671f17dc62b63db4baef8498593aff0e90bb2771a914644baf480a4c234fbae89b6a94a5f67e2a9d6f6b4c611773509540633b019ab36ed21261b5b43886bfdaaa90370de6908e7be3d84873deec3d13816cc951c041b458f", + "hash": "8f7378056e88548d7175c8214feda48b2635e6d7fa42657e754105916ea964aa" + }, + { + "message": + "69c339ff66b100760a3ea6a001af486ee36516404e4e0dff8328d184fd6a53ea5ae68ebba647bb6e70c4206d77b802f9b73f717b5024aad9663e1dcd9130929486142f09fbf38432bd06f4f433754d558c6b684b0acf8839f71e2273ac4a787140611de2132fd32085b85241eb8d93e3e7e331414a7cf3331a3c8856e58b17ae84766f1d0f0065df13faf1762e072b365a7dfa6aad339e1252600d08080027fb83090832da68a2d336cbd324", + "hash": "5816b47c0f6a507719144c17d15c1220d7fb0e5dfff95320c7b2cdd756a7721e" + }, + { + "message": + "f5245fb0730cb17138e987a80fa6eb1b77fef0f8dab528f3be18650a9c13d3f2fcd3346ddcc350f025a0b6391c1d4ec3e4dbecda039e937a4e3644ba8d005eeb3a723057156b96716a607c8625709e93b6e61ad4c398f18601172eb07db674c54c106112577f7a95eb3a9066de1e52ef0fb7b7ba11927775389119d62c34182bd7068babfc4ff5b1cfeb9b3d130019fc3020277ea2b3dbde85ed25344e1a56df697dc44b4184eb2066ac1f748d55da1b208ff40296f845e737215aee340d464f0237a403dbf191ee1a875c918420ef2207c82f21a55ccbe6bbc88be2062a49b9831f833a01e839cd451965e8e8f812c8", + "hash": "986db200ace45fb506c4effd266806c749e6e1a43c73864b2c7349fa3d948456" + }, + { + "message": + "8d22d3aeb1992683ca307b1e58f84ff75aae09103a7b43578d12ba856be3d9d9e4266d51df39b75d55c0f2c55a8e4adf2af9079bbb5f7dc11682d14f0cd4012e19f8b5a1d885219775c5c3ee56ac0fc467b9eed299df7e1e4d0b2c6f9b270d0b0c06ec593631d36f2ac802f0270d8a337c0197fc74953d5a89123769d316cbd2080e523e3229a9251986ce860d42e89ea7dcd7b6c29acbd0f4603d3673a9b61f8f8557eba1ed459d63d89c662e15de6dc0ba0e5a62734e072317cc0b36dd910ac48e471f457ebcbe88b8cc0d7b456ff04c06f890a052313b0a9509b797fdb0cc1e6cd38af23ea78895c380e0f82cf85b75188674238c4d671525", + "hash": "17814487fbae8b55a60e1d3d2001329d82909cf80e6a491142f4131c3f3094b3" + }, + { + "message": + "e0a0eb9c6cf0667ec7315a6c213b01c119ee24efcbd6d7db07b5cc8013d591523c87e482762028de573145e68d1cf74634739a05007b3990a86d4fa2c960051612a30200dab3557c19fbd10d140aa322a155eb429f117073fb5acf7d398fb47ebc2b6a8f01c362c4b487366688c388", + "hash": "3df7e9f86c7f6c22abe36086f7f55fb732afedcc60a32ea64f7d5d17852dda2a" + }, + { + "message": + "90ab074875e2050a05d105ae0d674ada291fe025977180e29fffe7755bd3b47dfd66499e09d37591749128ed293e5ecef2b981c15cbf85d9ac849625b5a8ba2491cc2c5bc615ef4e614fcf7f25e1cbcfa1ba134f2011dfcfcf4190b8049d6f06613ae1bb6e2469aefcf87a57df782e9093c545cbd1368df6489b7995393c0f1817d916ebf3e8013ecb51f2fcaeaec43cb9e82bb8b55cf8a41878cbe41fc9c8e29b4ea56e406805a22c7080426a54e524b8a493241d8cb8efb7fcdfa4d6c11aeccd14b7b7e1b08e89617bcfccf0c1a78c07", + "hash": "b1031bdd892ccc1cd42b531886b0bbe185985a8f54acee5bf13f03a54655b906" + }, + { + "message": + "d91f6734dcacbc4b9a840a324fcb36bfd3c8608e84d78311c92566e8f2ff052b4bb737196422c5506a30afb27b3956957009e48b43b2e06a084eb778db6038c87a5e64ccb287370bd561a3a3e51d5e8c0554ba324c26c6a7aa700aee29e9375d7dd4266332dcdda38cc6de7e5d64f8db1da67ae5146a9813211a566e20a05d9f309baec8d2fb9d5df84f6b6dfced10d6b897a65b0b7618256a64847e8b5f04cb280eb21f2f58fb50d7fbc66e6fa857af385ffa0a022e1b8eaa2702b1e90eb31f9359fea0f2189ae45a11dfc0989f277c7ae7d9", + "hash": "f149cfbfe9b49ac53b03aaa2cefcb0e46b1b0ea09145926bc220ded6691f0487" + }, + { + "message": + "47e36f198d9a181b5071dd31ce93909ffb8d4102e716d7890856649605f626d30119c1281f4c17b132c214553da8c3ec68c9cb6573e37f7f9b84e8a97ba95f34e41927f9b9f96a5d73e74b23f5c2662f567cb83086a6c6426865dc5bae46ebf4365f205dc54a06630ccad0203db5b4f866", + "hash": "43e16e68ccbf4802b53daaf5cccea16ee6d7faad5d4d692e9d64c6a6be924a38" + }, + { + "message": + "c191c0f636c96c0c7f68a559268860af08e1a566e2ec958799cd198324b0fd483b58fc6d3f59eef21abfc2f9ededda902231418eb496d915ffef5fc81365046d8f0ec2f142b863b9da0c5842f796d11e6d091dcc71b6bac25fe3b660365212e1a8179699295caeb75eb0122c28a3f06f4f34847e9cd74ede4f8708390621090d1c97e9ee54b54e734b64450640bb826c20336057c2cbc404fb6dac00b8b4536842399fe024907d9978d7daa3c10e0f70fd6f69bf0cc62fe414162207abc1d93b355f", + "hash": "997735f15b1f7ee8539d3fa77b9dbe27c621109982fba461571065e76daf604d" + }, + { + "message": + "65ffa43d35f9aa382ef2379355b741a9515904ae825f349b7780b0e9857e3e5845bbe6a4281d67a05bbe10cfef04c10a4d702fc7add8378dafed6b3853cec4878d667744284daeddcc343e73b003e678c4e2a395b27e534fac7898ab0684c5b872fc335b5badf40efc56ee7921e40a386140b125ca03f0430f90f4f5ddb6761c6cb1f9623c7b278a5570995fad9cc8f9714781417852aa78b585cf2a6d89ab8c9bd3481ca8aac99c167adfacab2f6fcd58d8c8db4cba76b40ba0e2fe0c59", + "hash": "e9f19825f90271dbbfe10c85d1189aaf3ec3246356a937cd2dd58f47f732424f" + }, + { + "message": + "d607b48a4108428d5dc2552435351eeec70d39110645cbc9b4db050f59b7c0b38d127512cdbb0d1dc800cd59e8f18b83f2b7d509144ddb6ebfaf39e006f24e5edde3b832ae98fe478cfa455cfc09d625480d784ca044c90c32bf70e429cbcbc29598c589ff04ace0819ea55f38380636ded9e39a76a197eda73138695d9203e87e4b91a231bb3d5f263f8b0093991ef0aabd09b798", + "hash": "666479f7c64d488ac54a294e2e6f282ab01aa79a8b92616f10a1f23fc4c8eded" + }, + { + "message": + "71f9c4a114b192096640242d34234950ec176d715da74c73b08bee01f142c39f45dbaa6d47a415", + "hash": "8cf4b48550730a7eda8882333933b733a20e1c4bfb337c957dc1c2131ffad59e" + }, + { + "message": + "75366d59c4a45534b1d5ada3cc83311ce993019b1e84079098fffa370e19a4997b27efb14c76bc89b258b71c24df299896b11bed82f98b3c7e29a0d3178f389095dd9d688d487392987db9af52e47443d25f49f278bd61e6c9c8eda5f24328a5ce332c0c41f3f1643562b07ab6c0ee6e9a93e8a637b8d665c3aa4dd331c4ae8f0c1d04d8020bbcbad9c4f89d11dcae2a38308bc870a3779648aca5ec8656a1211869c493630bc3b717f19908253c00e57b4acd14b16a096716444055a5af5f9168b6b5cf8f653f0e0691d4ac3091069347525c1c30245cff224620", + "hash": "141b8740a5e2adfeac77bced7e38246ec1646a10b0161dcc7e65248eb5812000" + }, + { + "message": + "a69dba1f4d1172cf680ffa1425c9eb61de3356a85303de77180d16d5d33d5aa7df2d90201b16396d08cab949cac027c3b0a39bd649b3cb32609c5f9f3718a4c92100246ac757627b6df7db1bc63ee2f303efea80f07d9bfc30058664cfe43adf099525594b890c509126450a215ac2d5f52619b433e5321cb250ebcfe3f0d48f63cf32eaac2025a0e070ffea1b849f0a880c98685c07af3c3ea92053d3a82a537c0c36552729ddb247b4aa5138cf84739c5ca1010dcb5e051ae4323132d4a6056ea10c1f8def05eae2acca91b5fa3a7123efc6adffe55ebb13f6c5d25ad6", + "hash": "c1b4b4aa547ade987192210b92dae2b62f3fa7ddcc172080693e9ea30cdd7b73" + }, + { + "message": + "30b74d58fbafd45be8466ca6e293b180aa06e20afa7950e3b5a6c8e195161cf62fb951f6adc73dcdb8a8dac97ab7a76ebd4f7c1a2a4e29cc66aab6c449545bf3956b32505dcb765d9ed30ec88a1cb171483c17760bc69b752539ee1a8fd1473e996f9411e12ff2019b4a7ee8102b453c9d58ef4931f2ade2222e8d7b40", + "hash": "5220cd647b6cf2aaec8df1cf66b8a95701fd584ba3d970c37760225030011d92" + } +]; +final List> ripemd160 = [ + { + "message": + "8652a3ba1af4bfbcf1cefe8fd950f409359aa64f656323e4b39a241085da2d45cc1c0289990c859cdc8110e704e6c7ca01401da10ed89e8bafd353aff99e6f360ce1f1825b0ac370bcbcb8f5f7e0dc46131181dc890f6748d182a47c942785592305f395c364ebbb6a34d17019f0e06c29ff1dadbf8bc62c57a674801dd96a49adcb84c56294a1c4835bb3642e95f2aa3632f78bcc68892fa60b38ce0532ae986162a38ec3c90d24a7f16274041909618bb5415f2dc2cda1e49b725bcb21de3e6d618b344c1eefbabe235dc991d38e4221", + "hash": "94c58003752916ee99de81abedada947f9f856e3" + }, + { + "message": + "19faaddc238c91a473635a3231ded989cf225e37169785438bfeafa21733db9b06ecdfe172462288f410ce8082df05d9ebdf72138a209cefbebf78920e3eff91a85061c7d6785bcd58a903084c958878e7a05e93a1655deb374d3c3d61a34951e1866de803cbe0a39f7e488eb035f51e8677a402a896f23545b528d82d39c0", + "hash": "2ce40a1bb6a690d7ee00b9220fe28dc2ad341582" + }, + { + "message": + "6e7e5f5aa70caf61af1dd4702f8f1db1a9e17c5e267a362e845bc3a3a61c6d69a47093e5e1bb42b46e7447e241e70842f0d6d8b1aeeaa0f8451d22f1327e1c85afe79f111a7bef4c8558ff44dcd3f01bc9f2e57731946f176855cf507c34b707123ed7cc0687b9fdebcd4820dde352ecc4ac0eed3a840e2f526b063ae239dd166cfebed49f30927301106e8ce4d31df6c84c55078560177a61c2935c4178896478a180a203bc6bc43fd070c0cf29c2ca31a002373cf2271f183eeafe42ce3e33a851349077495728bc4934c50beeb1c212962618276ff189e56336", + "hash": "eeb416db071e3b0f635ec36c97c9d51a992be9ff" + }, + { + "message": + "720b89cd555fc3455b0bdc61dd117fbc640b27e81471c6c648b8710714c333def6b53400cc08a9369ac82c365130a932c6bc2b07421099a0667577f9f383f355a2ac3171f0b7ea78a10985c604f06590bb34e34120caf72d8c6bf5e0d62f8152e44fcf2812a0d562f2425aef462089a0a48f50298c1821d233da358192edf2ad624b", + "hash": "85d5f580f74e92732a87fb800e00c55b7f6d4b5b" + }, + { + "message": + "d67366a93f7d471bea202bb0f366f9febdfd10ffe25832102e6104b1886abe137f781f804d84a0b743a7f39d0e31bdf5db9b1c69837bc62535943ba1c0b147706d16008c1384f4f0fdbef67573cb41f5f8d93f94b4d2ee62ec238dc0ab200f500b7fb1f9f4750ad18aded850002cc7cd1f8c457719a172d0e1c11d8cef2aea68271556deaf15f9477e", + "hash": "b20ded30d924a55d45495eb138e92f3ef8e3c279" + }, + { + "message": + "769d974f0bdae7ca9dd5998c1076540b70a99256736c1d6e25231c517e4c9c5697ac51bd3a4edf423fde6cfab9797f608c66293dba867d35bc80c4fe8716bdfe604403c23c32ee4695da9beedfb93bde6e06fa6796bda794c47ff47feaf4a73099339a1974b8c221b6b77e520649090591bb89417f4b5b0eb08c1fc8ced815f9067b84c044d3dac09074f5e0cfdefa13a1ca39b20fcd8a1d41737a305eaa7f9a1d76fa109cf24e4a33c4d11e1e", + "hash": "f57042a0320e2cd2b3ed5d614d2a3c2d1e65ab6b" + }, + { + "message": + "f6cd96b7ac8f874f12664b4536a921324bed3ccc52933369cc0b15333f8c9e7b4821d7f8fd47dfceed56d0c4ade524c5b9f56617f0486cad40c645eaea06594a0edeb063ad2f14b6ddb75e33ba659b3d8145a814e3acab2c5c243ceccc6e62280ab7edaa9ba1419d4e1681103003c61f0bbb5e6346ff320742e28dab5b170f02edb165fd2f1f3c77bee70d2adaf4ef4aa8d5875b5f7e1ce56dd94ef434aa2a2dc5b846ef2e5d60986b8819d53b72ff54a3d2bb11cf59a8b0e6aaccb552f5c467036a72b8d2aaea706e76ad", + "hash": "983b8474bc26a52656ea1f7ddb1087f1b4ec3498" + }, + { + "message": + "0cd34bb88a207449db4f1ec241b28503b2d3278d1555c1adeca23a4d6778076c1f3d1ffef75c8de223f6745c581bfe3b545135b719229e8818dbf53d29601074ccfc1b1c9986571ed452bd65f89d1936b8f3390b12de79058a69a9b355c4b977b6429e8b361eeb474b30dc7627e13bc06173462a1a683037570162ec71b8e10f77ba834e9dd4b2866809a539afffd5378f1e3597857f010c9494e4f615576d318e3d38c90a8903a4866524221b3ea0261bc4d87daf990ab8223dce26445e84f818de5264af2460b11a6e1e4f395960214dfb5ab63f62d1fd88adc9a9b228d250690899a5f90d1a60c3d76d345305cb43eaba4d9067e2f571d2c768836ba32496e5", + "hash": "750e477e8f4df06957627abd580bd28ff143569d" + }, + { + "message": + "ad842496075d98790b8750a899042420cf2f31e3c3f6cf08c4125bb9ba7eb2234876ae7bd3da4a1bb59d2cbbb553f4cf61a8ee257cb44027ced37f4b08de4102b2b72985", + "hash": "1d8ada5c12401bd2a2e6ef37c37c440d38c8ab5b" + }, + { + "message": + "ed0018708b3b45c0ab0218278a9704cf001e1b49da46f9d326d8b917c137a3e84bb432ebc1937b2c3ab966220ae8e1563a51", + "hash": "60243b0b7c9df2c92f6174729ff3909ea5d20ef0" + }, + { + "message": + "835d08343eb83f9fe1fd36f9e241122f2da82ff171fae2a8465f992b40ff6a68d96003c68ea853c8ef39546d7b56754f6091f9c515b5e37dd05f50769ca38d8a825176735a1b80ba0681139850387da386551b150f1eaf926bc2263b", + "hash": "fa58a42146812f820a339eb37aea5badc3ebf287" + }, + { + "message": + "ca701f8f5cdbe722c59ac5af37173754e1638d3badf9cf63205a054b7aedd613862bbb1337228dc9e8fe85063dc0ce15b2ea5e9dda8ff8440e693f1f61d656caf10e14582ae4", + "hash": "d97df8c9412674fec6e0c53f7bd824402da2f980" + }, + { + "message": + "66826684a240019f1e374fbc4d71444b0a584ee5b4f6426b1793cff78cfa94161ebb5890208d04b8d2", + "hash": "164763a1293bf96854452221da56358b0ef45a6a" + }, + { + "message": + "312283fdf8fd8fb9af889738c0bdc314161cd496a15d2caeacf3826f3dfd13c8ab21dc0a994c18fce565ef3f14f36d26b4743b16b9", + "hash": "6afcf4f4e81432e52b124a34de559c680d8e3225" + }, + { + "message": + "f43db9d3a950074d27d16d446a8f0c02e0c4d07a8addb982ba2c4e6e9a30356f1b85f02b96fec3a68267067611d55584f7735b80d5c0154eca700fb942003b31c2683e1442456e8f4cd0012550611bd342045462b4687ff1b71e7e4845348ec823594526bcb8fbd6e84baa4d14069dd147522487f03ba6ad0ee8af1f65e9090ad506a0fbd785ccb51cd0593090fb060c6c3537ea5f89875989e4c8eb26a6aa7955d66ac01267288e19e0071d73f49dfaaacce051214c0d990c0f0b465a0d97284e3b4497a58dc39863d7aedfc5a1f1f9f1f5bb18ce290028e571f3a38eb41a884b037d4bdbfa577121426df7610af8432abb12fa8dd324753926b5c813528ae121f2501b4c77c605ee1c", + "hash": "e4a1da1df7e3dabdb75999e40c7704099bd75e3f" + }, + { + "message": + "ef38ec915a65f77281bbd8df44d5bce997b9049217a95d48746efc53f66fba5ebdafa6d9b3a864372c8f94cc6f61f69d156c7a9cb7ff086b73a33053c853a43cc0417bbebdb8f5e9a2eaf7508ea3994d58e94bcc18d19fc9abfaec04fe177a36e778dee6d1e155f97723199ecc7a476573cd19a8be35", + "hash": "a9f6ee97dc28d23e59e22257badadbb89c62b923" + }, + { + "message": + "2fb3ca68b6bc12d8e8af89676aa29ced04bebf4ccb171498b52e875a1726207328d80248e5d417757938fa7f7b5e1b9f32a0343c5741f83271851c7d4002ea6c2924330fe62614b553a2c4d571e73dcded794b8e877907d5de42a72d3a4083936f032275440ea22e331b", + "hash": "1bb49fb3d59c2c41a8275a5bbea14acf82a45df7" + }, + { + "message": + "bfaf9e2bc6551727072884069672e8c79417d27856706d5a66e099655c1e0af729225fb5490d6675764053a6ba6ab415bd944de9f8fe1d1ffaa5126dc2a2b42ab39bc62e2e8dcf5e4e34b099e844f46850720e0d47d4154f2c2e3039cee0bdd813c0069cfbf64ba4eda9496bd85b2919b7edee1f7e915d9092c1ae0138f65a84e24915130aec1f598f8a3fbd4351cc7de4a13e75f8aee12a8c9b169b5d8bc85e77012125e994725bc70b08d8c3c8d5bd81082066b1f851994bed39479a92690f30cc62421860b3c931eaa803f5b051b8b8d219b99edef3efba4668a67d51997183fc398dd18ec8588294e3068d4303ed2cf12383d6e1b2898fd3d9c631f3f843095c371b", + "hash": "a0fcc201211f40108fad41f4345611114ab8344c" + }, + { + "message": + "d4bd513bb7b973d6a66d245294502a940e66aff9321c3910b22375af14dfebad537d726479b5baa0677c15fae62de0d39264e1cb619beabfeebfd3e1b18a44e2772fd645a7d8cdffdf8b019dc9d5308c7a1a145507713c1362b53f010a266db0ad96285d97bb63ef1e1fda7a287afc1d842df95ec7a0b98f542073e35561bba09ce464f7f57d7d5aa8f96e6b80a943f1", + "hash": "32dc39a9aba377f111d1b8f2351a777fdfb43245" + }, + { + "message": + "1cc1d0597b89dfedce2429a0dbc9cda54ae0f4883a77cd0688e4b42c723f520d022a98163a25b5b4678ad571be6c545f92d497418df6b1443846fb6b55b2784da7912b9255bcf7b1cd4cfbbce6592456b1d873b36d5aea3550ea5d10fcd15747006f9ba5cd6bcc6149919cafab56614be33ea4250e6ec4ce6603cef917e3dce48e5c2d59ca633be9b79eb9599f2c596d2db63ff3bd43c7d3e1383689adb2b2260ca2eda70f579398635b2d2d22f60e899540f08623a0ad98a14cc47bcb4fcbe321", + "hash": "fdcf9b59e003f556be80a99c5b8831b40bb62bbc" + }, + { + "message": + "5a3151df2030c9054edf918b453b18afd642b06d2d4d795d70b400aeefbc3135ef95b19f39ae4f3405a4a58f9baceadede4623de0380e48800d69085fda95a817e7d2395447ec3d2fe3ce763703110fad311fe83fa49445cabfe5f3e5a8785243c3264fa1adb736887ad918f3ef619c387ff45b204daf636b7e0afb555bbf78aa3c6503c51a6ef3841783ee28eb395d97827947ad0fc108dcba25fbb4a0b9f88946ad192e3d41b6372d0ac7504de3267d17c53dd882a0a88cd03a0e42b061f2ccaa80631cf3a874ca5c16c3fd485bd5240c9150abab8a86f70eadac0cee08f079f94c3e01e015a1de03f9888794d2b0038302ac11c7fe83e026fbff7661436dfb9", + "hash": "4151e1bb31a6b0ff24806c4565dd8b3416e50384" + }, + { + "message": + "52548329124c31c2628640cf35be96e5764ef881b290049dfbf9aa8863b98a9ce76dbf7384fff10614df4da9c172b939d649d40e88782db5e45229d50414e07bbd45a381365a27323d04b8fd35573c67e0769a40adfac3203cdb5dd21159f1f51a1e573e6e953755fa0e16e6a201f1c31abd0c81fbb150f9cabb45cb6b58e033d6f508214221fd0d7e9c9341e8ff67da186e511e3258be569d68034c4be6a371e55eef1928cc6b22b65db3acf0d58f5d91857c3c61ca7e5ba605a5ae376c44185c21f6c7f14d8ab67a7f4f9b9242cdb0066247ac6034f3270c63", + "hash": "b0095561607a60d1f8a55592673c105967225e8b" + }, + { + "message": + "4af95ccd14819c9989b18b68f29244396df97f938f98eaf94d599bfb5ae8e82444e367d9", + "hash": "90900fd7265a52b88878c7e402de635534260aff" + }, + { + "message": + "9f92c9af902229d5c3a2c9e2178b3277c115b1fb4aee735e6c26bb5b48166d0bec4af551eec93f857531318aeddbfb0de9cb8f37f7d71131127d7f7eca99b9fe19b4892e6b83d62b15ff47b3c3955dd00fe1eeda6a4b9e2eb9702c1405bb03c4aee1029fa9cd4eec801109a6cb89fdd35617b090ce3cffca05819bc765f97245b177a1a17f52dbda2bc3b7039ecf95b48e24bc0fb7924906b0e28e5cfa4c93b32c91b3a42186cf2d8bcfd09f41951d8e691e30a75081ba3f00903263ea2b54e525186bf6ace39935d0973b8a2f9a0eebdf0ea55505411a6ad5fbc05be7f98a7dfe9f84f4d7005d69d8bba45afc2c115d984678282ab0c442de9ce8b8", + "hash": "8e9923a7693badf282b2aaa2f4c5ea4665c05731" + }, + { + "message": + "70fa80dd4ff71efe6e2b80543feea2fad664b99d312318c090995dddc957cd556c347c003f08471d8386416cf6846846a63f99307d189df39a11b46faf1da211c761c6fbc39a12f4047052ed9ba363e39f8c0d19b9790d220d8ce0cdf24208e5578a4e1299ac7366da911c5f6e84c7da79fbc5cf", + "hash": "82cb577017bd8087f8ab34611d8247dee65f76d1" + } +]; +final List> ripemd128 = [ + { + "message": + "3f6d0be05677cd39efb664645a9a7bb776ce7f4b015632b733a659c65be673cfb7c455f0f05c432764ecb152afb78cc9ead5c1b566fd097f9d208ce7cbd65f881724de", + "hash": "581909931c1cff5158f981fb88fa69a2" + }, + { + "message": "cdd12951a3b87708f2f38745500331423c6cb4338d0523a716cc85", + "hash": "b7cef7440c5b05d26ab38203ffe2e550" + }, + { + "message": + "f03061e2a294f2e915fa56b9524d7e465d51668d0970807575b51e43f014bf90ac3dcc53e6c52d59516b57b055e51356f3b219b0ea263fb7dd231499d1cd4b2b5b6768b7dc51415916f4d1f6e7740228845fd76e2657e11e0945392025bc9153a0139c01fcde99ac1f0d9c2120de839b0a991d0505141a238c532e6bb0dce9af70d5c671d48bb481923ede94511a4fec3c345f83df922ba6d024acbad997a38ec9c3d1ce3534182c232ef2b3f38f50fcac43ec524106d516af72dc073e72422132d91384fcbb401c15d68f5362da0c96dcf04d17d31df744b846301688ab2b32f64a", + "hash": "0224643c492d6cf9cbf4477ecf66c218" + }, + { + "message": + "61058d5a345a137c26a95b8f6310d176f701dc27264a6d78262abcf7f62093b2afe193131b0b566dde36d09c4fb0", + "hash": "180f32d6e46c815c3c6c29a6904ac291" + }, + { + "message": + "114ad65c5f79f2786357efc1f84f704135960f8077eca844b7db6a411ea696c63cbb520ad2bddeeca380b020269e39a9858bcc3d21b78e7040d852221b19dec193842d6a2ca8ec5cd4e653b80b524376a7e46a72a9cc0bb21a83c40e2a6ee1de9845da2ee37e11b0a6cc76768e7b8bf5fbbb88195f271cb3d3ec85e7045eea855b2f3cc6", + "hash": "dee3b9ed7af3c1f567e35056b9b4d6a4" + }, + { + "message": + "e401fab8f9910c105e6eb64a949b1acba0c6182218323b5c3191a0537d574d16fed8d5c01cd1857d98dc293fe99721d0e2a239972ff5584fe35e7b201d6903edb6200e6673d81d65104c1f83b56c9af2a54f0c0cb0062f83510ea08e84a7d25883bacb4f656327aba97dce3068288d87a11f5bf78301c2e699ba0d75c2fb97b4f38969849752d41f17112bc0ddc549417fedb686fe7199a4bc8f39ef7771931ba2c61334ebd51bcfbf150c2288b36ca5faa79c869dd4d044c3cb06828f7fb6eb848dff9f1efde4ee98b5fa3a35760333d053c89bc842a17ff77be68a6c6c2f3121cf613a41d39460273a1cbf232d090784bb1534ba4af518ac8ec4a4124eea70", + "hash": "aa7884aa56ee2fa39e9f79e0f3481bdf" + }, + { + "message": + "fcd323f66916f8b59509b9a0c0c1c67ccdb089cb97dacde07343f848a21a8ac5bc918bbf0bbbaf795b98847de4d3957c0aece75bf7cbadbff2864f4e5cdd36469c54b6b3824467b7a3296f11347458942a0af67f7dec6f22aa0114eba05c850cb34b2e02b7bc9708cd5e9279bb7750612b381d44d2110b344b7ada6ab9e4aad7fc07969db5d5b7a91b765ad2e913c9c4cd23873772b03fa3e6c25a18673e05cdf8af7f3a034e9405b66b72e8c6992b3e75c31e7002aa6de51865f8ecfa5dc30fa436b29a8a14f0f3a48545964ae6b1e6d3c8", + "hash": "fc5d1af2d6cd9db690e2e6fcbbea6b83" + }, + { + "message": + "f9cda2c3f2b374fe270c546517221112e9d97204d1fdba4e5a322812a7a58e9cb9e3092bea142584dfe9bf8f258fe7ff901cb07b5a91a7f2e50c283335d682603a9f2fae16baee2150826fb6efa4f718307148fdb4d53236b9305ecb7bab8f0ffde0a6c936e99e81068cbb3f196d1ed144e18acc576479a64bb106815b29e68085260eff47fecc6915958e6ac0a2d34f45cb0d24d09273d50212a9e66cfe0e9853ae87f9f57fde8492c00c02da4f7d70f496b454cc71dd618ff16750cadd39658b63f09c86a0d8997d7b711eb948f32731f8a80c625fcf57b984dfd365d07cf9da057a0449cbee2cf3b82350c5a5", + "hash": "40cede6106fc7f24a5aa674cec5da07b" + }, + { + "message": + "9febf04ed21b483384a541d61c5df9cbaf4c4e9eb58124e8df41fe905ace7a74c23d00a190ed7b0eda22bf21a428339b9782581b74d284e008ef8128392e9ce70d013212ada4bd9dc83ac92a63b0a3c41daa0c2f44b7f50aee67b5bc410cf3942e89597c84109028d2a4d2bbcffc3fbf3367e752f66116b60dbfdf03b157e9355c6f0b432ff92b1aac9a14a950aa2bfc4130fdfb235ada13038af9980b0d8a5da202b4fe9acc04f32b6dc743941bc66f04bce2976761226f4389dafc651f6c4f0c8622574957a00c03969b5fd51f316e79b04b2725471cb2b39558a7faaa63b24ba891", + "hash": "f75f3f8f0d151232ae76314b04cc5861" + }, + { + "message": "751ffd22935df636ac39c634045f52d1b84364", + "hash": "3be36ecdbe4ccba18ff614109c586ce4" + }, + { + "message": + "954f23113b8659baea7e4a329c3dc2567f3bb9b9dd9cd317dd0f1c3d59aea6a1d2242aa02039470a7b3cbab9ab0b15c7ff2a3a5e983de1522cff985412a7ef235ca51f327e2b4b650e4db6c12622e3340dcf758209de287e62e310c3aabe038afb8952f98f6f5ed035f802b506f855cd4e2dedc3f89ec14ddefb110df5eacab78df0a61b68e1f3ad16873818f7545fb361eeba4bdc0a46d29551dc651e35fb0620cf477cbb274acd63c67ec04a4e348b17033cbdc9add631da4f8e4078ffe0f51f9f35c54f014c80f26b0ebc59ff", + "hash": "8cb72076131a54bad81dae8dc69f5490" + }, + { + "message": + "5563672d9cf1214e15e63ba6265238043cb84d2ee9761b3e1b8fe3e686d590955c3f393552a081390d4b6d91646254e991b939e92dddc2cd6c77657285614fb77ac68bdf3dce882db7aea752d0c5d1399e05f74bc68b025e0acb6a4a34a253b97d5ab94d5dea56fa3d9dc8b99eb642dc671db86a8f858edfd96f8d7fbd0783acc816cd8c5c87a584d5a5cbb4f10a094cfe01812c4faad9a22d4863b2", + "hash": "0de8c418da8e4a48358605f07668e3b6" + }, + { + "message": + "6542a8a32f5e0a96c3d2c7dd2b1544ff5d24bca92f2c9b22c54a03fb9d731df733c333ba87a7f52249a384d207cfeb76f4c965322595357be9d6cf838ca692affdb95904d1710d9cd508ea3b4ac07e525904444b7ff8489ce4c9b8f6b80b734fbf9152f66774ab110be8ed4ccc6a49b8d4", + "hash": "978a3d4f09bfc3dd4ad055858e5de986" + }, + { + "message": + "20214a5d19819aac8c87f35ce4aa48249b556d8dc7216cd74d3968dc89c1540d6c1ef9107ba6f20ada4c17f47aef150e8b0561a07a5a590a859b520c", + "hash": "3615b6122b67984fc053de4b9a0189d2" + }, + { + "message": + "b97f556b8987622aec3c0d58d3f78cf05a881f8f27a498daebd3f3fe8a89b149fd618a0e7a4ed0a99b", + "hash": "4533113295c079829a302290120eef52" + }, + { + "message": + "3b45467d51f3bbd76ee1458e210558fe8e989ea966da607044aa3c579dd3c1110c36f7b69a7c37ee81fa9be4621565aecb5378470438603605fbb2574a989adbfa73ee6d3dee10068a263e491a04277a2d3363f06ee7813c91a8f668f016b2562b12182896bf12deaaeeb45278996c360c7e0a5136533e60395f7b977181c02a7eea25e8e4b894be225e206276a8181307831d0ad9ca192b474036c91ba2dcb25f6b132a5d7c4030d420591312e307154436251ecfc846d490cd31c6b751c86defbdbb2ede4aae347f236483ca7aa503f62e7157a35e1e5f194a5621364082477db45fde3369f33871995b93", + "hash": "a1731fd4bf42b18cea22969fe0c4e5b6" + }, + { + "message": + "51e74ad12ad0b59c2bd1b254a9fb25e684f20ae07645c79ddb62d5aa750e249a00a098717dbc436b08d67e2114123849492df5a848b4e0f57e25ae92", + "hash": "141ecfd8a683c61a54ef350471a15bb3" + }, + { + "message": + "9a0e06485ed3eb1ac6fe32892d6d99ae355e08e25cd8382e9e84307443b9e85644e61cc5fe527b7873f393b23ea3ea2aac94f6c4627171529b0cc6bd7cc3b24d367a935f5a160339e928d09673", + "hash": "66de0a4bffdf51e2ca224cba1e8a24f5" + }, + { + "message": + "53b83f8ccfbdd210293a47e6fdf344fc3f7add5dce59d2d35f806a2e26a21e32270f424ff6380d197b73a9cd734211ea263968405643bf38281cbcb58d0bbf244a48540e4fb52fa1a10b524576af21fbfd94637b6d351cad72ad7f7d577fe74e18c6", + "hash": "0249abf4ce5b73dc0972ae13f0c2554e" + }, + { + "message": + "c14adf1f4567547f1d0800cf63b86b8ef01ce5fc523906fa77ca0021f0c4d0fd787911964c7f6ed6b998ff6770259722a3863f46c9122f62e75585a68799d6ab56901c2a367b8fdf176e519ac853c2aa790b91c0fa100af449764e97900915b419cf95c0493b830e58a7aeccfaa33f6cace559746457b02321e754b9a888bce83700cf498aadce02b68f4acb362e8e82054062e4cc9d1c976496f2242e20cde6a7704bad4fdb88707fce3aa0fce766a1ccb4b7b972f3134d416020b64ca7368433098174a3887408577156d5e177acfbc68c", + "hash": "8c6c74931c54713bbdb6dea63a31f8ab" + }, + { + "message": "c2fc3fdf82bb2eedd0ef28b20940d999ee38ea405a67b8", + "hash": "0cf50ab521d908242ae8ca7123fafa2b" + }, + { + "message": + "963b12d62927dd36e567cfb9ad558a22d9150f511284c5c28176c29d6c7c295d91ff785384c9b66686829dad2f56f77886ef819ce05ccf0a69b81eeadcf76ace67b94fd68864af32fd71fa9800ed607d5c142bba9c296f767a7284c6eb045548c5bf3607dfbc30f9509c1da508c0dc94854baaef72eddea405fc89145919fe5e8ae587a5c1da009771fb1c1d0c6e3ecaf1861bc04245cb44fbe97f24a80a4b173a94", + "hash": "91614b273f2a2d10c70bd4ca547471b5" + }, + { + "message": + "45e8410e19425b8d27151df993ea95ba0bc109c72206018daf0a158f123fb25fa6452613571e7499ed17f70cf4b307741f478021ecdd3a7b113f55f44beb56a6997ba7515dbda2498414e389ba8863baf0487a47353ba3a03ee811877b6ab7973c2302486326d25ea7812f17a38d0ae8b01fba8d55ce6ea1d7a5169cc041948d627b9a992a98287640d570b02d3c84e5d6976f3b280a2273882bb0dee866342a12883c677d4f937e4be542d698faf03bc877b1e42211323969eeffc6cc10600b50", + "hash": "d382c81c2c2d156f6df39fcc443ac44b" + }, + { + "message": + "e0bce0a4b6f1efc7346cdb8d59d2e82636f313f8a79e8515458bc86dfaa254eb925abef0e0dbfc0d559a0c1c4c83d23ae9c902641a9b5f96672b0af48d6d174fad28f2b55788b632b139af7c1f0c1ee1867e8e9fb8fad16ac70830a4b45cd9e343f81a9ab5f7ecdb4e1817085bc9fd01a0d01d7fbb98866119a9120a1958b9ace79e5734591159230e25ad2c32cb1cee874678cd4703e33ee0d94e7c1e9d9f6d6453157a52df30357e6c77f2cff7f630bae180387a84cce6ace777a38c726008b61d9907de3ac7aee9", + "hash": "825e81070ebf3f041435e512a51b57c0" + }, + { + "message": + "07ed2de1d0c37e4d95d95c7bb9308c9d548c92a9d9f3cd484a6377c48a8ddecd00421ef3fd5edd813bc7a1b5a14c81410622a538b94cd90f1c39aa22fde85e74b85d6c31dfc3190c8d305e7f125215e1f48c553032c9645360d9006890ee5710dd1dd9a71c1343e7cfa31f352d663ad18c73e1225863b421ea37318b8b584b1697fce51dd692a0a50258005378218a2fa83958911e5f437d2782fd29d708c7b4fe40c4a19f", + "hash": "e1429ef495c0187d08ed847b0b6276dc" + } +]; +final List> ripemd320 = [ + { + "message": + "961039bcd5f8ae11fc0d67b774ba34d797550a6022acc3d680152f46978f25c696f725cf1aff56370e9f28c415f71893ec1cf283dbaaf3f6887a965e56dc835b4afcf8d28d6d882966d84e22fa40c5667385ae2391800c6bdd0e02b1f4b1816de746439523acb63165af1d3d73ee6c457d3c7b67970d9d33c0ae583ea7db72ef284082d30dc5f2689945e612b0709b9a8daa17063bd927fbb7f368127d00c68fdacdc95393990597b4d16587fbd33a92a144b74dd53af63c9cb387f734a12f27a9011c5768375faf952953ab6961bb08703e0d5747a4c107e86a8a979d5c24a6b820cade403933a55502bd620fcd07f6b4559d089460f5580b77395985e421d7f1c3", + "hash": + "60430dacd1cb00eb9498597d92d2b0de4909ccb657e685af7a57b943d8f828365cb0ac3fab436acf" + }, + { + "message": + "ef8563d7b74643ef559a749dfa1f64e9e9bef875d04370195fec58e244c093539a8b5423457d1070aaeec3fd4fb367a0bb9029b52f6fda04c6f91ee311675b40e2d859dc96749b71e40755f74a1fbd12607a685d4842adab02a4725ff9fe0d53995a624812a6a5bb96936c4dedc7a3d2500e4f184e7e44f2da090f387746f20222d0b2096e85b06b23ff56e58d2fd7df7779", + "hash": + "533dcf16da953dfa4ca45b0c1fdd26f0c5f21bc4b0d1ca955a36c172fce66182599363a2b5e1fb53" + }, + { + "message": + "e553ddbe762ed9f92fd664c368ed5de4160c580a1ac3289281104c0d2a53a3552e0fca078c202e49fca5065609616a46bb2d2732c6707c16101bee3f1707a95ef32030ccf4ca6457c66bf7abe0986d1cd0ed3bce49b040d1f60663ff0813358b9c752131c319655a7719fba864c370ca1d8244c8a3835e19bab1cba53e0325add82b606a8757c2", + "hash": + "3ffbfb9848e506f1a02951e546c91243638b648e659528e63fd3d0400cc3f3521db1a57d5c693057" + }, + { + "message": + "0bca14df537791552089584c55708564120def62839b36c4c3b55f23bd387527531248eea32f1a27040d9c64c24b6a6a91ef989b097351901af1f4c1023f1add17cc35dee5ef666473eeb99836bee48a4c3c8a51e0521e3eb3cf55cba6b7b7cdef2a86c15ae00b4fc00ee66f8965512e2a5d3468e05fd06de33c0068b5cacc8f5fcd2eff96b87e78a3eeb0365a974e8b0f2cf30a68558e70228ea0f822", + "hash": + "0deecce636ff3ce8c376b662bfbdbabfce3e9dab240020487124d3e9ddaf57fc066f4369a504ee85" + }, + { + "message": + "cb7ca0e9a3ff7c0be3991d5a2628b1e3dd2b3d016fa1bcb727b889e1d8cd71c36189dee60de3a4b1ac747e0df7d0bd5362879b89ac9dd06cebfc005ba633222424383bde5ac2c8454f86e680822096c25b3e41fa99509db165376bdf83ee73ed9431e5555e4938f9d288d32fcc08afab428b0882df5ff1a7b99abd2f0d3bb66a3cb2fee8a039e0e2679bf5a3232d8330cffa1addd50dc19dbb76c96a9ed4ca8110d87fd3589e2aabc8c55c51bb07169b3270a4b053db901c61da808164b44a025b60", + "hash": + "90a090056995d2644e23f588348f44d5f755bb07246361c44a5d77327861ddbe2a3d856ea8fe0089" + }, + { + "message": + "b397c5cebef3286ce454d0742fd542193bbb9c18d261e77d84bae557812b4f931d6570129fee98a32eb067c51596045d957bd8b6133dbeddd98db3542427ce772d4e6cafe7a0460191ae39d40f2b32fa66c03076990f3e81502afaa19b5d37799b93a15ef7a0a6f794467d28775407bb61d6ff48767b3067efbbdaa98141fa5fefc1953671a51541e2", + "hash": + "3d69e432b5123b6c3869b2d878b25cd33019ed4b12b914cd4542f186d3a43ddfa08875051235cc12" + }, + { + "message": + "c9d91a0d81a0847748a1201ddf07691a6e4e10cd38921f96592862ed1479bb84fca3b66549014ce45cdb5235b9da10a2e54fe51431a7f8fb347a765be184e2a3243934262bf2fb91d9476b2e9ff9370d8f1d986dba", + "hash": + "ae2dc6294154aa425ea7e4ca244f39eddf6faa0fa5f1c2ec0f85bc7d8f70927251382b857f63d8a8" + }, + { + "message": + "50ad344e4acf1cff910ed0176e1c751cd372efa25082dd6dc1f6966be4c2f5cdb1783740a6a593b400ce5883c95d71e06e94b90d6521f4a7de93bedb5b3a2bcca80ea40327f2925095b3eaf4a7f5d21d6fde84258be451e8ecb796af9e00404d", + "hash": + "ca00e87e90d42aface6432addf428eff932ad59f04b54f5d42ac012b00c1e581d53ef02a0eff5ff3" + }, + { + "message": + "ed161f31ad04efe76357c669f8ee9322f2f1678361bbf4b82497c97d7cc6bb79934ed3da9f0f3691646ac8af0f60f1bb8c4dcec9d4b44a5d6e09e6f8bb6a7806a139278ce1867f774e88a23748883e36f0f9eb37c7912e2c0c1abf0e6961c3e3bc27c092516bc7a67b34d97e0bc1c23b68a3eee707fc700245b742e4be265b436df0beec1a727647ea60e2a283cba0838d90f7a2a03e4c22f5ed0bd2dfe378ab05d0b80795d65d516c56d443b989b3136634e58c2f089f0f169ee7195b5c4b0492edfa586b2eb6190c1c1c9b9e7b8cf62c4595c2", + "hash": + "57a1bb8cc2b127510681eed06eac41c2c9220d0922da046e1322203b07fa0b1dcdc8fc0777fb9045" + }, + { + "message": + "bb37340a6419f6cf5df3c1d79f37b29abb4081a07a0ba793a469a8915373ca67a33b191ae9ef0884d7d84956b566465404c4436bbb2f0bde2dfbdf7b26853fa6206472d8fd7fa02bc03789c6ee6f76bf9c664263ea28e5ff6d337f80bb46bbfa9405441a594a93efda7cc1ce4e86c1e5110506f6bcf151589e8fda11d36465c24835571655c8ee80950051da6e42c3280b16a8e4c19ea9e000b2c06c6d8791", + "hash": + "99c147faa6ae353cb064f07406053a50b22f5d5ca7c9743eb41f5b187a49355aaaa7b1e7634a5373" + }, + { + "message": + "27a33a7814c1e232b756c9fe51b37b214651c8ee30e3539002c289cc43c5c2b744a616a35e95b901470944df156a412fee2262266cfdd5a5879a09f1e2dcb68616b7cd2ac7e3396b6de329a7b26dbdb362dd3a2a64115f3b3700e0b3b52871438d28bb898a1ffac02c6eec74c4a22dc3d9ef4b0a9c9cfd048583b1092c458f323eb3acd6d8b507c653b5f1fff542e8e43eb3117a7ebdcd5556ea2f33954b08e87b01564927e70e8a2914aadbfda3a4efc983b11de237e6b6b39042a99630fb03ad476b8731c5a37b72a59c0c8a5f350c1529472acbcbc4f110dfe058466b790b", + "hash": + "301322304aff84d473ce475624c7fdd004df48156c99501935cdb4e327e0051b93c83cf1a7d76f59" + }, + { + "message": + "356eb8a360b09f23b540ebaef48edf033a137554017051cef477b521ec1f92b730a324e77a609d37c7cf88a537bb48f71b63d94410f660697f3a7c2e831864528cd3e5d7df89974af53e21ec0197910440fd59fe9a91b1c57824bfa6d7d4a82c659c2e55b0608474173d1c4e04d537aa36246e04688577a84f2df9bf7c23ac6f7a88bce3b1b3b4f174d7d475337e0d29bfb8002ac9324d7dbae96030f00e3aacf794dd60ba92fa76f6b8b62d441a241a616c532de43e5bef20cd15de7f55ed80c10b2d246b3cc973997a21af1162ed66365445a4203a37def0754a7e341b60ff17c72fd7404c484145e05a5310dd348f", + "hash": + "00e732bb1ac80a19e64de3aac4c0382b3cdbbc06aad1c7b2d5966d39f643c2428f4daf0e52db289f" + }, + { + "message": + "2007d0238a488839059175ca620e57508287b57156451105718972e8d0027ab8f830ba42920f049afa44d2349c15cbf214995cdd6ffde9cff5b19bbc75f6cd8b594767b3d992f00859b084c6db764a4e27da3d9ef009d0aa00e0760d2fb3132bead26bbd9b49703f95cb4cbb05ddf72cc811fc1c81e00c53c8fa8775344c297b215636f3a9c080255325", + "hash": + "f0d2ad4a3eb0d45aeeadc93bbb1c8253cc3a67d66925441cf51db85c955333db676eddd4695f7ab5" + }, + { + "message": + "10a792d70eb97a3faf04553a59f08d7afafc4142e0f0b96dda3c97489fbb4e7a02cdfc4a3369246ff61cd6d0b2338206108b9af3373d9d47e0d8c27df54fb8ecf00e3a44a5992b462f044f871828bca40f223017b23dc0a5f70f97e76ad02c2645d696d5df0f0597f221df1c47b329c1dd1e5e4664260c86a52264a0ccd354d8f5b2092d64a24fe7723e2f66b42d68678428fdd94e366c43b76a7de387f3c7a55d5ee05726017088343cabd7a410f27fcdc9f7631a8620ff1a056956c5decca37fde70d333eb7a1760b77248dd453351a1075ac0a5d088b145bf46bba79c988ec988d696113466a22757", + "hash": + "b05210f6d872653cea73c75b1f6f9bcaa2701f961ad3fff503c705e1e177d820c1cbde9c012c28be" + }, + { + "message": "342797358b862590bc123cc47e59", + "hash": + "d1d22f1b284b583a7245d616e7202ceac2bae9a89ef9b2d1190fe483546e3b385523c7a2716c9ca8" + }, + { + "message": + "0a55d52bd52684167aadabf2d80ad81883084b2f4995539446d5af7baeb0b0337fcfa0a81079b68d005b9965cbb5a0c8b454d67f83cafae1c3ad8121237026637460d9eebe4f19fa9845053770171a60eb", + "hash": + "960895466e264d49fe724d71b76545930df4d53b1205d2ebc69bcc850bb70c4e2fecf7c2c84f5761" + }, + { + "message": + "3c09bd9320d0c958a64e90b351fcd2954f2794d77202833c9a29c124d6b436e74956dbc7603077924350564ac12d9b80da7b1a0813b2407cf24f1588da7322644177dd4235d4f5075f43ae65f5b6659a1b4d264f86dc6c01547dfbfb5ce9a5a635aa4b03909d73e9e87ffcaf4e1713f43546ccfb80f464b7a8faf384be15432206df46b7346758b850d024b0ed32cf79d844f6583a7b022280aa790861ff0bad8792fd63d73567f3cabfc5a66634299845940a34587eb113753c8896f10fd58a0ce323f9bd97dc29b492591f2213aaef6db3a9b788a9e5e5323e4572add8ba8f9d27e38bf98a766c9c73503282b17f5fa6350b71debd309ac496803ca2", + "hash": + "bae63cc394bbe207c771355f2849062ca91a3725043de608ae1ab14ee446623badd161b325d7daa8" + }, + { + "message": + "175789d55b50a7f274d32fd684b918df4f069e68e52c7206d1b56a00c9fcd28d43dc14a28ae4f8c4c77f000f759b2107da72c538b26a67666863d7ad058dd50d5d6b399334c5ec2057dffcabb88c93efbda3aab72039f4f8f10f5a4a30291dde40e8202e30600f2dd570cf41426a8dc3841a7e7dbb51d35f86cd3642f735fd51588591db72939c9ecc44604949c0627cfcbb32b52d47ec93cf85b5b3c0a595b7f66e5fe9f788cd", + "hash": + "9f670baf86c7a72025f47c932cfad9408ee28e9ceb200ae593725f7e2eb609a68fdd3b3f78a33bb0" + }, + { + "message": + "f5fdd397203be85f61fc439dfb53e712cf8f3192bd59a0f97d74be1b2cd55a917ca445f5c53b0aa8df444bcb6afa46b766fee52b020e51a19e59947530240d322f6e7d472ec526cb3ce39bf01f47a147712fd1d9828947e0837d38fd29022373efbbf126b928adb4fc86c2a1a4d0581641aeefec41ab1f1fd37095329355c2d40b43e73a7871cf6428078229ce4db3a9d06a3665359623c6d25e9637921b8b3c42209bd0f4e93aea16256910f26f7cb207365038a1800adfd34bbf50130029e6afabd2959ed53846915ed341c80a7c", + "hash": + "d08b2d1cd2248088c5a969d1c6e40b32e1b3c89cd6eeef4bcf62be7f4f87e4d6cb4ed26e85e277c9" + }, + { + "message": + "54bdf7e7ede5a15a0cebe56ac7a472568e7bd85ef58f1358ca75e4fb06ee53d52342ccdd0655fd091ca9244a87ca3ca60151b83ba88daafcac48da167db40f95f56a1fbb88730a23cabc9db7c2a15bb5eed0d016c2c10b428e7f10cecd7f2bdfdb4c", + "hash": + "4679f1797f9eab7e7c2c485bd14e0370433ebfae70c91ac90647616670f3a1760dc39b2a58b33a07" + }, + { + "message": + "2b4e2a59757c918d44c685ac706b17e515bd036288a5d78822341c04f32cff6b5fdd285debbb34d6b2c0d09e9db5e46ac3fdabcbc73a1fe022440d2c6013d104a392e79ce697af6c6cd09e6f17d0d189188583bc21f5a488acfed22aac8933c214e584f53b31f6b5e419a2e76b9828cc24d808a1296bbfc520efba01365b306b8ba6f9fb6d047843fb477c51bb7d70b5eecc49387fbd23f28e144195a7a7e6070eb4e555b29d5f4161dfac316187468c59704c3876a525ea16b7d98ea9d9199c67c255ca6957ee0b9f3f6ca46c5a78086d6f443c5bdffb046cb9b06f848b54969c84ed09d7f75803b313d00b55dda30b465b4a41fae40581cda3a50522fab872aad403a520e21325", + "hash": + "b12a8b6f180a64f8ba859b47bfca1af544f3a0f274b239e42b62fb1f4fc719c740ff0e384cad5295" + }, + { + "message": + "b50779c3a60212ee1fd502f5f42c4db040221e03315a8c8013b3f498d61835d15f12f05d27573aaf6c5a6345825fa00d45bb45e35a4ea9ca1ed677870b52fb8db467525d3d8eb274c7a2c4c398b54618c721e85130dcccc10c3e747d46a10f94a2fb69ee3e846912053f3b84a7ce71d2299daff7e8940d59ca217426bc6b61960098c56123fcf8b7865528c5de4bef6b114533fc4ea8e5a22184721451737656e84a870457ba63b6a244c9724eb70760d8c56d0839fa4e2c82b2be41524eda021e1b72dec6b3c18cf4756752eca072730338285c20d6193bd6393a8fc4b8e40000192e53bf4695c91f6ff2624babcf341f2a6e84759a22e50090", + "hash": + "ec064a0ac9fe6286de78331a72b2c46e2c5067d9ae916294be8db882e008a4f78d982a7c271daef3" + }, + { + "message": + "e9daef2bd1b91e7ec3d3c13efd41970c55beecbb411ffdb48424d116c735e8bcfc51d72516e8743cd42e9f084b7afee6ad7625d455c9ed089fe956cbf3f8c4517c5d970fa266f13990c1d3c7fa4282aa59221e2306fc7aa483ee9b95d0849d0d5f0efcbebe780b974ace77b3b3f6d59460c81e974ff8f613127ea6c8a08a7f2717d229ce4f60931b37e5a99df828943ffdec91c05f4fea80e70f3cf7a09596c99da14b36f408fd306399bafb8de18a14278cc4ac27ffdadc8e2999bfdd4d3e71d96906b28aea7f0562e92f80b4e904496c574fc83e57abe6e43c5df2f80771e639be4833d9a6586290fe0395b38753db5d6f48", + "hash": + "5070faefc0a4d9db3289222a39742aa5f98147935e951f362a0219d6ba39b30b416d9d97d4810ba7" + }, + { + "message": + "743b5e76108bceaf16c46c321fd5fc6207816530a9de4174f76624f2af6f7b3a3dc3e08da0866c68c11521988f1bdec326b421f74c05b63a7d0842a80818e8990c02bd0046e6ef3066fe0e663b8949d5c0ede3f11bcd46b67f035fdc7f420fb39c34c048709c024da1c3f123feb8cbffcc3cb75aad3b6c660181", + "hash": + "e5328c9432337ba393041e2ed94bd477d9776c488e061443272a4f7badd9d981de08786b49329365" + }, + { + "message": + "2d73620d9a830fb8c8a11767db52cd964ac39b7521bb38a6bf093dc8a669c61076047abb6beb3ecf728583345a7bd8e599b8", + "hash": + "80c0fa1504a6ed52d58fec80886a2a296e26119a5f0ac112348bf67a6f732e0206f6830c72630a60" + } +]; diff --git a/test/crypto/scrypt/scrypt_test.dart b/test/crypto/scrypt/scrypt_test.dart new file mode 100644 index 0000000..c07e060 --- /dev/null +++ b/test/crypto/scrypt/scrypt_test.dart @@ -0,0 +1,17 @@ +import 'package:blockchain_utils/crypto/crypto/scrypt/scrypt.dart'; +import 'package:test/test.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; + +import 'test_vector.dart'; + +void main() { + test("scrypt", () { + for (final i in testVector) { + final s = Scrypt(i["n"], i["r"], i["p"]); + final derive = s.derive(BytesUtils.fromHexString(i["password"]), + BytesUtils.fromHexString(i["salt"]), 32); + expect(derive.toHex(), i["hash"]); + } + }); +} diff --git a/test/crypto/scrypt/test_vector.dart b/test/crypto/scrypt/test_vector.dart new file mode 100644 index 0000000..3595340 --- /dev/null +++ b/test/crypto/scrypt/test_vector.dart @@ -0,0 +1,225 @@ +final List> testVector = [ + { + "password": "7d2cc6efdff6f5da72de16c8ab0229bb", + "hash": "f236297a86ff30d9dd5ed2c111caddb874ad1062c186f16f2a74d8c6c62bb094", + "salt": "1fa336e517bcec065da80f1f5f6a9f55", + "n": 8192, + "r": 38, + "p": 1 + }, + { + "password": + "d30ffff4ff4ea81c45f90f9b9e523dad21d299da737a57b6a141300246559561e7e9647bad19b054db24bbca6071783ea25430355eb90ee71660e585a79471c318d7aaa0", + "hash": "30aa4def595ad0db0e773dcd9be3b8cbdba30e5f44a9693d4e1b18245c22ae8f", + "salt": "566c2b49602ced6a5cc0281f8cad5d21", + "n": 8192, + "r": 7, + "p": 1 + }, + { + "password": "c46fa4d118ba63d1c1344f46d82c24a2e9ffc2e84ab9400585", + "hash": "cc04fa144856a96c243fa25d12f33de0d4902e9aab359623f101805cc07615bf", + "salt": "76744458a7c5c2f268ed6dc844b32488", + "n": 8192, + "r": 6, + "p": 1 + }, + { + "password": + "5276bfd3c362a2da0475f6a2000c7a4cc9c7e9240f9a5735ea6fa100fa1c57432b231cc0535fd41da4cb8cc871922ee86663da48ac75abddb7f5b7796e1bb09530342cc12c080363fa1c12d8c6ad7a0d9bcd979e414e55f961915f93d786b8ffc4a18d963be13b06bbb7fe23bd8afbe95bc0368701ccf96db824105aac7dc54097f64adedb722f4d2951e0972de3bf7d247ed4bf97d69e68fc71338b1da37931b4e0a1bbf53df9738cd487499e6c31b9655e5cb863c03d18b02be972d61c845c87ef2ad04c855c8b4fa78ebb5127e8755f68953835fade34a9e5", + "hash": "28ad5b75964c4cdc8cbda6ea4f212a28531cf4f71c406d381adbc004d488f94e", + "salt": "a487d5913ebc6c0cff3a4800bc0feace", + "n": 8192, + "r": 10, + "p": 1 + }, + { + "password": + "1728a004e4c0503dbdb2f765012eb8267bb81dd2728270375be506d227286cf7357a1ac685ad97f9b5bfc8768e2082aa7530a9aaf1487b9240e8", + "hash": "8a5056fb0ec107095c1a856679f88b85c0599d499a3b44896eff6f2ef6a5176f", + "salt": "2957dfd6af7b44707ae6758883ae2363", + "n": 8192, + "r": 6, + "p": 1 + }, + { + "password": + "c79c700819ce29123564547636f964c3e8e14bc5934454a298c9c34673d2d3c605fb2d66d182fdd055cb8ea6a6de4409e144d0142c013398e2455df17932bde04c9e51a936fd243010def6a7ad98f3b7b7b7d2a909c40f9fce4587e2225f01f99638eb5f7dcef6789ee38ba019b79204d408a22cf7031c6399a190531d9a9cc615072d5f541354b438f6e9c478ce733754256c7d942b8fc0a226af260b0bcebd8eee63c7951bff9a06e32e120e7584a3e70a2a241b42421c038c6653558769a326f2251e7f9b11e6485061234127a866a6e9", + "hash": "7ec54d100adb1af360ba5c20b479b69805ed111f8f6abb1bcab2d67df6bbf5ed", + "salt": "dab73cb8a1cf47e693381381232a8ff0", + "n": 8192, + "r": 62, + "p": 1 + }, + { + "password": + "ca43074f7634267d48ae2b268b9a565177155743e78815ff37cb3ff5f50a7d5830b41f8baf20ba1c8ec1b871a1747608e18bf3646576427958f926ba4fd24c51954ae4b70f91ed2aec8dc3db1bfff1579af958ce65991e0403d0ffcfb97f1308e819be71267b", + "hash": "e4a10077d6e8838e9024925539163365896cd807ac5d5d1b94ad60d92edb7ae7", + "salt": "41c885a6d931673ef7f82a4f28e67f21", + "n": 8192, + "r": 35, + "p": 1 + }, + { + "password": + "269a4244a371b32d1265add4204fce4af200403f1869abd5f0815c8bf64c00f6e1870e58eee4235e09c4970a0647c70bc77e14bf4511255f32a763543b08deb25c79af695e8b529a1d9888f836f540c46794a391f30d57e24a8225135bbba4b4ddbc98ed5014657c40630902dd2233d4736b42bcef783d8d411d307c2e6a5062b4c08463ea2e9a8aed77034276acf2b41a619793e8901026672098efec8938762f84eafdfbeef67aae51165e145722f75f7c33", + "hash": "408d12619647f752ed10bc02d25562a1bb1954c79bd62963b145cfc6aa34988e", + "salt": "26f3ddcce6957ded9cd669d15ded5430", + "n": 8192, + "r": 14, + "p": 1 + }, + { + "password": + "7d3c7ef517ab5329cfbf0755054e1931a67e7eaa0f5a2c6c39a4ef9e33a50fe88d7edb1d4a2eeb0484fe8a89bed4186619bfaacf1707739c2f7a64b8c421446c99f304dcb581fa14d5c47a11c7dbecaa5bbd3375ff33d82240e0c786bec20b11af71e4ec82eeeb1f143b994a64a8a7d729b79569e288bfdc4a2323b11415fca9beb3e86e614e84615e98ad44eabba82056ba96e371181436b65a48df4d2565bf7323cb3dde3a8aa4d9f6ff4d61fa97902621e21d4bbee8a5b729822c61e5110cfc39ea7946f0a484fce84f4d39a75541933591eaa87d1d0cd094a75d8acd9c278507c0bac85a6c6f3e", + "hash": "9fdc6518eb26a6d3016822771352ac70b609e7c5180e3f6bc0b2edf739d7abce", + "salt": "50b91f7158d1097e8499a9e156f0ed00", + "n": 8192, + "r": 45, + "p": 1 + }, + { + "password": + "3df2c0fe7a6a782c13dcd5478bb7beab4dcbae0ecbf6c145e7e1f7bd82ad625f3f27891752ce9f8c2652a9a93954e2604321c994ae7433a7281aba9bce7dad3fb590275576706a59490c31a10863af629a93f367a863a1aac671a268927a1a9bec8dd6a693e76d8c1933f48cf96c9bb44ded86475be62f82a6837eac7621229263b6e0e95989cfcb7ef4c802065a13c58bab7c248137d6", + "hash": "7f2d8ea49eb33a22a29cb560005cae932f16e67e0d7041b67171b5dbecddf5cf", + "salt": "3779684870066923a4c71009a596abfe", + "n": 8192, + "r": 24, + "p": 1 + }, + { + "password": + "883fca02692cfb4401df39b8a64611078ad5491a048d911542006c113d1dac1510d1196f17dee95ba12df01b3ee1b2da9095ff1247908d17", + "hash": "426b1542c9037e18f97c9cdfc2f1466af091eb8543205a3f3b0063a272917b0c", + "salt": "60fba5c7058bf5db01fbed2df87685ee", + "n": 1024, + "r": 15, + "p": 1 + }, + { + "password": + "ef835c5be9f19a9305f2e6c6d56e535b697c3f6b5b35b3a1c54768b4f65946ceccb74898f15fabae83c72f7b6db0a4722efc1846cc6eed44eee7e171a0cddc4fc7e2134461791b801a5e62986fc5de48", + "hash": "b6faba2398635b0a0c0054b1bdbaa9eed21577e6b243c544f45f5b89eeb5de23", + "salt": "9efd668984a9d11ee7a2802d37e7be55", + "n": 1024, + "r": 26, + "p": 1 + }, + { + "password": + "dc4b123621497c6bea9a65fae5154dfa18a5dc87c8ae57d52536a650cce2b33c1e7e480c86602755fc4cbb568e63d2525a45509cdaafff19a7d3f95bad24a8bb6b16c4e9577e8f0605c77b96c3e59131e1fb2657630f6691d5ee13746eae5ada13cf0342a90cac4e059cb7aa68dbadbd7fb143309c115743267f79cb3c8303dd67028c7f2fa0095516d245c879c134969729bdf746e0f733d222a395a5d2fa73bd6426ab3c10cc7cddcc2aa46faa967ef1f73677335bc9024333b8163fadfb1be5e7bc1e5b0ce860a36ae75e53600087077bd9fb59a9e78cab837081c3a9d8602047a8feba795beaa351ce8b245982a0b30443319163ea", + "hash": "01a21a592ec839aff78f3951a28920902158af0e63c4c510b3291cb0754a687b", + "salt": "8cf4ae6d7b1ad3f90a10998d6b35518d", + "n": 1024, + "r": 5, + "p": 1 + }, + { + "password": + "6cfc9033a378cee59c5d341c64c968aa42b687857b1af92717b1b87b8c9ec456ae5b815e7da35713ffeab4b8c475529dc118ff3acee1165ea7471e0f43db781484295e967df036af93006f2332fe8948e7c2d5f1568a30ee6b1c52260d397802a6ec0b23430fdca35e8bb8615d805fa80fabb4498191a075292daf9871b08fd4f09d119f039853988142a960db8ba4e668f98cf2866a330d7f4f75a50986c6a6a34326751121350ab19dd5ace3b19557404a3360e8674cf8632051fa3d0f8969ce2e4c0d9c2117d8893ecd8da8d7750ccd11be0237095eebc22db5770a7918b7aa1f7bf74dbc", + "hash": "ce036250c30a2356dc53fa95c4eab691a6d847d4c844c80baf24b3c621bb6ea9", + "salt": "454eb7e469d9d02b8327a5f8636d0fd5", + "n": 1024, + "r": 54, + "p": 1 + }, + { + "password": + "89578dfd69c254c9106e6013ab2049c6bf5d47c1b3a498a7b6c178de71224380cb937f66b28fed3e478511aa75d1faafe9d4ce7a92e4cacac1fb9d0a418045bd09fcabd1e0267594024ee30950792dff582a283f8d354de9ed71cdab6615e6fb3f1822874073042f4fe562b45259bd5d24d7231432b0308381dd886982fe2f3aee06acdebe6c6367bfeed7300705c5d13f6fb50627adbd906566254ff5acedc9936778eb5948ade08b38c83a61494b306ce010a28ea59c84cab6a01257fa7570a0d98a92125cf59281ce50b3c9299cc11126ec9b615a572370e661b6f78a7594f3ddca20", + "hash": "559a52a9612af042e3f7e4d8114f1c41e9894b83b749a374a70f780602333e80", + "salt": "7ba7793e71b973ec5eaf1a9a5ea0e637", + "n": 1024, + "r": 48, + "p": 1 + }, + { + "password": + "7d8b76876c5a3d2b5181481389ea8df58c5f30c044d6fb94c510f57f66b39b6eb5b9020ae0b340e37e1f203933cd52c261f807fc520e2fdae342358e17848a3b5f283ac1be346b73b004039dad0be1c9d3f017cee9fa96916daa8549fda12a93badecceecec815a5ef2bb92eb6449e5e6cb6fe04a11bf51364fd30264aebecb420c8b2", + "hash": "b3aca527a4e6a31b5f43f97c7328a5165df0d6279271e9f27187441e3c1f3d02", + "salt": "84e35def4c11bf89b97b380e608f33d2", + "n": 1024, + "r": 51, + "p": 1 + }, + { + "password": + "d3b18ad3aa636f48c27f76fc7b0621568444a035f94cd456dd9f425d6210059a8dca61a401d9c8e054a7aac5b3ea8fbe6c2d240b6ea61b29d877c750cd1dc19ac3ef8f6321ea270a84c23b9b2e74e8a22a8b8ab31e1168a7debb33df4bf83327026a2a678949a77d6c2749debd1c752c8fc6ef63129334648d4f1f3c80a509ed484f91c03c2fe2d422e5a73c8e67cf60f7faec95471fd1a65c20dfcedfa1e2965d1e943f7fbdb9b1a347f33fb2490f9b1d3d721fc60f52f372b89bbbd9d3c399bf646f9c40880b51ce6173a8cec66e3689e4501edab38c996a185c55ce52c08814c3a9afc22afaf3a5e6054d05c1ecc642d16c48e50aec962f23", + "hash": "18a35eb8ce6ffc0caf79824e6de9d29058ffbaee618e57136d721412df644c4b", + "salt": "8fd29e9f1fa8c9f90c8ae1f55960b46d", + "n": 1024, + "r": 56, + "p": 1 + }, + { + "password": + "ad18550e040c9b7e446df319f11c38a79faeb557000af3014a53c682428e5d74c6b3d5c4f3217feb43c6b075388793f479bb06733ac4037e76a2510b89339da15f95f71e918f50d30e01bf196f5b8b8e29668ef10cbd3c86444f02e68551c6357a39942f3a4e0d0a9de724eda871961b7d2ec890ea3047990fe2b8e640bc6780dfb5cf16208cd8421febaad9b5b5fd9902e87c0a1f59c64d7e375bd6ce9ebf7971ad35d16a9ab0fa53d898f4c2355090df348a2e18e277b6344d10489eb810cf5cee4bb56ce00682cad98ed154fcb7021a3c03b00c66c884ba1aeafdd282ba9dc93281100368d9f7a550b724555fef6ddb9b89e52afca4bb10e119bba7e5ea44896377cd", + "hash": "3f482b42de6df3e765b1882ca89cbbd250df37ce8f1f1ec238405aacdcfba993", + "salt": "cbc345103f3a6638c777dafc1af1a05d", + "n": 1024, + "r": 21, + "p": 1 + }, + { + "password": + "148d5f51cdf86460a65bb905f4fcd9f6166f47c1ea3e9ebdccea84446706c29527", + "hash": "0186286c5a62ba479987cdf90cf9c0469fa06bccd63966bc8e1573208e0d4380", + "salt": "fa7ee1febb49c6feb2a9619e6c5ca20f", + "n": 1024, + "r": 27, + "p": 1 + }, + { + "password": + "fb59e32a31f154fd0e259bbd2ff2165eae3f633f54de0dd2ced38a6c5a168fa3fbb179a877f8cd560d0d9df44633b84de20a8e0a0b5e7633487fbb3ad6ae6f973fba86d9a3e0e35105288deff34a5f164e5b8ba6e57d06753916554b3dc88861d0d82fc0a03e595bb9be9cb3d557229132a9443e780a819f7d328d", + "hash": "c1b97b29de142197f2a5371825300ab17120d820c6bba226594f748cc4d9d1df", + "salt": "270472e4f7829572d59b495efd8e9298", + "n": 1024, + "r": 55, + "p": 1 + }, + { + "password": + "5a2291353d31a45ccb684fb8553acce2272e7b76eaf2442e61f22f7c7a9b440e26f90f197c9124bac043f24a3a56f90cb4c26065f936b11228b11faac08d925c6ab5882d47d67eb377e5dbc804f364cb65506f0c4073b9ddbe63bdbd4c513199d34e50a19ae17b980aa1400e8ddb7211b0b0ce59e063f84b65f6242d3bce8003c4dc6fb50e923186fade54482fd954d055f97c923cc1a4848ed99fe60413", + "hash": "f708eb2f32a4bff17c7490a6f817e743779eb16d1705dcada3a7b119fbba5dca", + "salt": "faf5c345e9579d1c88a94bb33631876f", + "n": 1024, + "r": 47, + "p": 1 + }, + { + "password": + "45e2e056582be959e83f8fab53b317774ccb08a93ef005fd8b86911f1a0246d0fb9d", + "hash": "648ac2197a5ee1c29cff0be51c2348f3b72871aaebcd3efd1901b77dc317eef8", + "salt": "4ec17d3ad5b43495bb6b46f86f61a7b7", + "n": 1024, + "r": 60, + "p": 1 + }, + { + "password": + "2087a5087bde62c2a9e1dd05562579276d7cc13cf405ca6014d32181ffc9e2da26040d81a9a37425ff3331f070a8333fd74e63b18ac635a7b1739ed993504bfb659829583d4d1c6e7572ff46b046fb7f7755a2e0a32eb541b83ede628820355b29c359c964f754e0979aede6df776523316e14ea5fdeefa37bfcf909a61fcfcd0114b9aa5f53d76c89a19965cf6d1b354cfe911289f2c64754688467106f27031dcf", + "hash": "63f4163214986918ffdc795fb834a26844c70ba26529c5f467ec17477307100b", + "salt": "506d2698055c9328d39a3bce80f79a81", + "n": 1024, + "r": 24, + "p": 1 + }, + { + "password": + "a1de30bffbc376e76f536d15c158569435afa438ab8f8c9c6784bd6e00223a3c7bbfdd2c6993c4040c496e4f5fe5b6cd3e41a893c64e1672fa684dad037a82318c54fa798dd2592bfa8d6c7dd3da85f13fea0a65eb51f447e830d1915e66a2c7d81ac09d3e2f3584c800c64420f9b86ab6e50b0e696c1464f592baa5bb707b98644b87190277292c5d00666752d74c1557e46654c48e06c726b6c9c1bd2f8ef89ccfebbb2e233edd170bc44110a08a45a8b43b62738da5db092f06fef79b", + "hash": "8191b5960200850876b20dcb15072e55ffb7c5478f1d4a9896880d8f650b0b8c", + "salt": "9d12eeb5b1e2a0dde0107d7135195e1b", + "n": 1024, + "r": 43, + "p": 1 + }, + { + "password": + "742bc6958891dde9135ad40dfc12e4e94971904d703da9f5a4d8d09ff947d286ea3c55213b902615ae94956d2af199cae7568183c41efeb74bc6cffca5bfb87234f80c7922c895b412b26f24d9421e067cebeb427ece775490f18c5b05b901d7bee061d90af7a4a4f8c6da4b14087ff9a7a8eb86b642d0", + "hash": "ffb59019ae97fb6d2aacd42106b00fd182810110d6da26e18cca22961a84b251", + "salt": "eb71869590c742c5b62b55f1af60d703", + "n": 1024, + "r": 10, + "p": 1 + } +]; diff --git a/test/crypto/sha1/sha1_test.dart b/test/crypto/sha1/sha1_test.dart new file mode 100644 index 0000000..96ba678 --- /dev/null +++ b/test/crypto/sha1/sha1_test.dart @@ -0,0 +1,21 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("sh1", () { + for (final i in testVector) { + final k = SHA1(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); +} diff --git a/test/crypto/sha1/test_vector.dart b/test/crypto/sha1/test_vector.dart new file mode 100644 index 0000000..80a1d38 --- /dev/null +++ b/test/crypto/sha1/test_vector.dart @@ -0,0 +1,125 @@ +final List> testVector = [ + { + "message": + "36afe0751c3f5d7300591d205ea2aa6730ad2b7eb7767589bb4124792767e54d243d345c00bdcdfbf33f72c94e590224b7308dcd942effa9faaa86100c7cd78e6af9bff21f1107c473", + "hash": "2a6a79d8d3c76131af5503e405372bb7f5a1bb7f" + }, + { + "message": + "65a49b6cc57e66fe1c975d134712e124ec9c0a12204daffb859c621e67d90dd4ec91fe87837061ee3f6a407085996e4181b1f4cf19ea0f9c47fa16e9e07c562fe85ff449034d58b27d0f25b41470e6e237659531fe9228cc7f163480452e7a97f1ded1fb", + "hash": "18926217dbf9cd1675b2fe0ffd30a345f67f033e" + }, + { + "message": "e3e6efc6d1182a7aedebc6f10274bbf2f0d4272575b36854a19446005307", + "hash": "96ea28230ec3640e7af7ea2ec0c87406376bb87a" + }, + { + "message": + "cf79152f49ad459536e18249909139e62621a800d67e3f417176616f0a1d51fdc9e4700f2263d0d873d49c95b14b947c72cbe16caa51d32b007f3f6a22cbd01d428065caddeb622b9ea9eaf7a9ff7bda280b5db3df5b8f8596c463a9f9441ab01f2a86d9ea025e290bd0cb144fc6cefceab04080fa50d0db6eebf2e752fee7692e40b88ed227810da96a4e6a4f65b57f3a0e8e521090346634bfd1d8dfd70bc1a86bf048b369c348770aac64b7c7bd14b59f54dec0ac00bb1961e02a00c40baca67aafb3", + "hash": "23524c592212394440a3501d949c3ab12d5ab63d" + }, + { + "message": + "5c2247423fa4dc7d4ce576eb897a7a9ae5bb72e9811d9c3aefc610b095c2195b017f255218716e479dbf1d993faf30e9cb2181c9b97e53a39fa622f5cad8e0cb182c25b585d9f792ff31b244b7659f037f2d5ab0190a2496caa10dfffe190c1d66a4e57e64d7587a5364bb692898888bcfd56dc0a14b2ac4368ea14e8cf22a05d04cce9445efeea9b67c5e5e5c5e59435135", + "hash": "ecfc807538402270401e1e8bb0f6b45ac6c03cb6" + }, + { + "message": + "a12ab555cac3ca6587e207478501c7d94ba75f706fc027b73ba1fada4d2635dd4318736c06772d4380db793a137dc5fbd6e9f6b9ccb5e2adbf9d6a0a4ab8cf3865247fb937a44ec2ed1eda4641ed4ab68a43e2b513a267609688b05a36833585481d903122add0311491349ddbeac9e5d2e4b9f72b2914b1054876b4ac1b63fbfa0fb9fad831ae1b5a10c2dedb850b6c658424ef30720aff7979fe665607b0383c11d95dc0ffba6e7aebdf17838e79861ec1355b97f6e1abc172", + "hash": "8d49b0e0072bf04254433e7a0f66fbbc46405fac" + }, + { + "message": + "a261553a6c238c0c22e8e180b19c7403b05763951350c260d089378be739af0fdad35cf861d5c0beb8a0f73ab2033e9d61fc290deaeb2407dfd7fedc78585fbe341959da36745a2e86760f0f7c3e1ef22fb969affcb568407a1a4aa372544425aed13215b0348127", + "hash": "dabb4d636ca4ca9565f0aa53faa922ac2f59fc95" + }, + { + "message": "b42c369c8cebbd7cacc0241d2731c6b0cb2dbf", + "hash": "bb3bfb5aa8b1f8da9837ce73fe29ff4d9fcf7bd7" + }, + { + "message": + "e5cdf8db385e2bba07b93e26ea73c34cbb6534b0ae079fcce619e65c9cf831c58bb3e127ff33738315f7b860745249249a0e12dff6b0013e05f4edb6342fa7f86050ec9bb924b467d5545dda8cdc7ecf3a64c780efe2346de5665b02c76bb930675edea3b75e84e1c2605ae1d4ba4df24c3829c17aa7b8310766d888798e7a28ad240081a84891ed38e32d8ed8e4421b44c07e42b122d6d7af8b6e93bfce55fedb8d55712282c0e547cca72f49d5c80c640563dad575ac76c935eccf8036890c0969b710aaacd8ea8c201822e5af9558fa75e176282a64efa2028cfd4ef167d44613c0e3ed2c07ef052089e74003875289918beddaad14cc7d451b52660d0be6701a52a1c2be", + "hash": "963154867c100c60517d92c2b4be3caee57f1a50" + }, + { + "message": + "c450374eba1912b97dfb10c1f86b53643d8c3521550522ab8d16aea2043f12b00e7ff4de10e4dcd7e05301db66978d33681ee0cfee298181f4820b412339aed3440c39ef306306dab5e90b3e9607ce00bcbeca04bbaccdce27607d362bb4bb6cbc39368a753c390320fefdaa29c68503ee8f710841e4008719877860534c61000452e544d0619633de66304fd1154a516f35fe12c88cdd393b12dedbbf56fa9e3bbc36dbd5800fe83181b5b804c2f3a2b5bd69c105a4dbcb6be5278bc86fdde9babd16e2c31ae11188f12c3961a099e40f21075ba0003842be5944a0cafd685bbb53", + "hash": "f8635159dce4fa48fbed81daf09dcd4c789eff91" + }, + { + "message": + "a725e5eec663ff25d70410156ef77d6e05ba9d384f83f722a9b2c6f42e1e8ef93598a8b38835f9cb0544486d86935a29b0751fe937bd7b68ba4ecd7130c0f8effc3d1e582a2e51adac067c1145849e5b07d372cb9de1cdd664e28745ec21757f4b10c6e3869d378c42cf511aa5d00f185cf95a9bb33cc29e017ae96191a810d42977922d602f1c8e38eb4a4891b8e57ff450c71427c7a21f5c27b2b76818a88d576b8d46b93170be31647b96acdf589ecfebd5eb033f3f8cc07ae2ab16973beba531294376110473883a9c75bc1b0d86d80d00e0b2f87e6cd59ae876187c505ca4ade73b9d", + "hash": "81096c86e8b244d4ec379562fc8352bc22a62808" + }, + { + "message": + "3fbb6ccc24dc298ffc50be79638937826499279a30862672460f6d1d999328dfac89f3f4275dbd426e0429d8860478cd96dbf6772f404a6c9a201e466985a599d2a42a4f0c4f3de0c1ed2919745c6f2b2c39658dff69cb2c74bda63867803edba67c2a2c2bc508c8a2f9c5ced7d59b34b0b058342baee461482cd348c5d9c89d7de59c3c2a4cb83b1e8da13abea2624bf479f60e3af7e114ef", + "hash": "55f335ffd38af0a190772784dd7f042175e44340" + }, + { + "message": + "5250a9068e352cc074429997fb0b96454be81825f91c0ca255296320ca83c52f9d644627e0728d2a0bec69029639657a18ba6801cd5f0a3d860c77e05e29819094349e1511c1f530424ae6b1d86f77fe12a5a4952396954a9c47adb10687e401bb3ec1c46fdc4ff670b321bf93141e1f9f1ad62a82cf1da53cb7d0ad55d2c7c97946db5968af48976f18d256fe1097d8388d8ac23b9bd71b5cc276f32afbffff", + "hash": "4d89174e0cef85c181bcdeac39aacb8b8f7eb0f0" + }, + { + "message": + "e61563fc29bc6b382ad0237d0134bdb27268764a07752ecca5574e9e4be72c179703de34e4c6434863dbffe23999e9d8e8795ea0d005719990d9ba1022bd3df81f33e516718bd37b50a43818126a3edd82aa86578ee27d077fd218f32fc964809ad1c1370b89c6998d4c88611c4513c821ce13ae03cf7244cafa35e8d742d6f77839db7bdad0053206cfb1c2d4bceeee39d90a703e52c2a9e5d19d934de4dd2a29637da760ebbce9790d5a5c13aa3afba228823286c747da1b6d2323b9b26e3cf3702bee849bb6dfc8bf585b393f62c9ed3033", + "hash": "88c8b1a515ef4c70f9305986feaac6b0d447642a" + }, + { + "message": + "2c1b8f69c03edc87fc6674530fcb1edd652ece07c9e0907e46c0724f2f598fd088c0f9d41d4e860380babe598106f649ad95799e1f7ab2d803da8f3b23bf21a8c03867ca7099762ce323fa6413b07fd76673c9cedd52a24018eee8779058f618fa7debd2b93806f105b44c3266adc528ddea998e247d6614189fce5d1dc9876de4b738dc0dc5d9e7f7a3b8b838488696e5dfa4ec1910e7b6b48a25241d7f304744b6817393b41e3b01dd5c59964100273027735007ae42ec707c5292d6418098ecfdf6575f0bdcc0902fc1ab554e2b509be0e781", + "hash": "b89d400c30b7b66f7b0faf565d2f63e0e9edbe0c" + }, + { + "message": + "aba8a18216776fefbad293b0389f826267a27e6dc0574874017a29ba1212e756dea2b02ff31270d55c5f86893cdee57adf08ef145da3cb88ca0fb38a43f53879402b5735420b1bee08", + "hash": "48723a22d84964ab1cb65d7d5de2af9f6a5dc5f2" + }, + { + "message": + "74f08707e7d51ec0996bbf3fcfc87cabe2ae070d193e768fef13c8d0fa390128b67c78f3ebc9b42a3f4deb780baa9eead8b4c80ec71162766d3c1ad33490ba989380214143bf35d003460c8e9c44c11fba4f56310c50a780922cc738e9cae900c4f35ecdc831168224f407e20696adcf77e1a3094e5e5b0a3ab70372c323a64cfe356901b322b14cb0f2ce3cebe010f9be5560a341ab523c76eca6f643c28318f83895fa38a7289131f54d66a733a9104157478178c99d1cd367c0f496164b88c23d0b4b09c2cb6bf32dc0", + "hash": "62f56a111a436ae2fd0ca43d0944a4eec3448700" + }, + { + "message": + "bcfd1f66bfd1a80cc7d59714d2f34fe705860f9ae17a12741db77919e60fdd0b100e613d22c140c826464d59516ce488107886405fda7352d5879dcd93740aa6afc78a25c5c1751e9e97e8db04c245e0f50b92914d0bd36df4293eb385624f7775eec662afaf", + "hash": "c55c02b53d8457919c046788bd932dcc550448b9" + }, + { + "message": + "2ee43535d62964dc01c42c1f5af104157de3c24348db4b4aa2ac8ad6aab30e4b87bfb0d42f3e31eada5e2b67f547ff8dad3e72891da15516acd2ffe73a21cd7b893efcb86a8b4f3ff8528ebb72734aab64031aa39846ebe7080dfdb0d7da46af2c9f8e3ea3f72f1c4514936762c62090e14577ed4d32f4c9461411150f9d41573aad6f6ccc1d22f3152a1598c0597cc74cae6ff70ae2c87e2e0ef6755c9e227e031e26fdcd30e2fe51a1cde144742d1ce903746a0f62dafdf64c1dbdb29ddeb8792f660087cd39162017ab0a9cb72a657c76993adb882c27fbbaf1ce2a7e1b5ab40b2af107c476c295cc0bcd68e88270a552ed644f5ba09e5c4ac8a4611c9bfbafe5e7", + "hash": "4cb993d0b61f1989382a6623ba93845d7067b1fa" + }, + { + "message": + "07f8c8ea28c5b271357217881e383530db20450e3f4947b846447707365614c9c01514430096e8e3e51e9824e68c81f17c3a9ad62e3573f7150bd41247cddbce3ae8d102911c86a3ed0a9d4b0e719dc53f795d8082d65a2890dcb6f167274cc114f592007b20c3163ab6a05c5754c362fb522c06e0", + "hash": "6c2e1c492247e98b2df8aa29029eb2fd4bf61822" + }, + { + "message": + "24b0ef668d0ccde7d2702845eed696185e3ac1b68eda09411c01272542b6da80501168745d70db815d71d6e66b983994cd2ab544c7545e17a4e4d377ed16d1e97d902baf7368c4f76691fd85504d288cfbec14be9996b06f86752d9057b136e537ddefc2e624e05e60041f1c97be231f91043a844fe0", + "hash": "019a184aca2d8ba061cf8abf28e077428c0896eb" + }, + { + "message": + "9c9089bdb0e49dcaba1d602b83e1af87af66884a2ae778a891034c13fdaf77a4cdf23f97a364a6edda77564308a752c1c93a43750a360a58922a27af939d190527a07b9f2d697ba57136e2d4f599bba299549ee6c870024a97c02a10b06728e017951e903b0107034735558282482d5cd99cacd22eb8eb1d2c32a0627ba8f5b0f048319775c052eb6c6031f38f7a2c2b5f95f68ae1df95db0d3beb0297f237ecd28fa4b3d46ac186944cbee1582dba0e603ab7cb2221a18c09830c26507b5ad35caa1a954fa6af9110a7a3adc6784b1c8a80c8", + "hash": "fb6c4ce684f3fb976cdfe7887ce425defa3d4435" + }, + { + "message": + "362a4af12a6ae9c36ca19028bf1aba307c79c2b582e769e9d0e3430b5d5fc2ae9653632b743f705004078c1296cb101f880aae03fc59798c3006982cc8afd32eaa9f24e885a08492fd285c47e91e05c69185f00b84e5e9286048d38efaa7", + "hash": "936579e708f5bc2d849ed6b6001f8df7befa6682" + }, + { + "message": + "c388529d8481531c24d929309a3daa861c9ee534582fd43c7ff9e2707e9ff36df1b465d983904ed43adaa71b2395f42cac0c6365f15170933d7bd5bec655cfe93fd5d15b9e617eded5d29038a1de913aa0aa24b7de5acb3e1b8472205f8e5d4f9968b2712e7c15b546ce28f6696bc57f2b9425a717462e8dc45bf19aaa0019f33d0ba09ac75b9561b964009869193e2beea343ae52ae8185e4bff61178f4f697d6b69cb2e185e5d61a72392809f3847ebe81ad6ac82299c45c219af265e64f2f90427a584a7e7fdadf359185850dc6747ecd93813c32c14062094652cad615d79afb63aae1332e43bfb0", + "hash": "ef1c41ea8b64e6c36ca0eeda473f9f1dc13feb34" + }, + { + "message": + "f905677e03968bc1820ed20a8ceaa3ee3c20f887ffb0bc823973306addc1ac0ccca0625e01d48f9b9fdde503a242d23552dadaeb149f5c225b9d399fe66c076fecc8e42877b30cf87da8ad8b5d13fd9685967cff89c3264b2636f8852297047460ed", + "hash": "4dbd6e13832ef789b94bddaf3e82ce7c28ac8932" + } +]; diff --git a/test/crypto/sha256/sha256_test.dart b/test/crypto/sha256/sha256_test.dart new file mode 100644 index 0000000..50bfd94 --- /dev/null +++ b/test/crypto/sha256/sha256_test.dart @@ -0,0 +1,21 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("sha256", () { + for (final i in testVector) { + final k = SHA256(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); +} diff --git a/test/crypto/sha256/test_vector.dart b/test/crypto/sha256/test_vector.dart new file mode 100644 index 0000000..552e801 --- /dev/null +++ b/test/crypto/sha256/test_vector.dart @@ -0,0 +1,126 @@ +final List> testVector = [ + { + "message": + "2f52ce1defae10d59bcf5ef33c2d52bf4ad214748805af710e1daa56e2c76b98e593c2a1415b88b47b46cc1c9296577235606a2a175589204d5edb0e19e58b3282fa0815474b10625f998c3f8d5dee7f2e6bd8a3e8032aeb4ae3a21ac918f8d9fa8c7a4cfe70980437dda893f594d37beafdb9950fd7634e7beb11e799b9a63e36224c703cac5c7aaac07335c72061139c4503b55f231062e856c6dbd151480d4b024d44a3576bfe4c062d2161788368b936c4b53ef56b23a129c37eca20cde82cc0c6b8d285d63c67b7c221b0683931891977ae74eb89bca7a34a58be8bb0fc7ab1ea5b186d1c6a51ae639931a8b7eca64c83585c6ab0", + "hash": "11999394ab139df9657eaae6a9f63b0617c69b879841364522106b2c545c5e17" + }, + { + "message": + "3b6b4e59da94c504edea85beb16af7253d19693c5e142d8937e2bea72bb2d79262679aabeedce06061251868f6d439cb44125b88e2f5d11187248c6efd0a13a1fae49a556c2339e676d4ca1751855f4d1f18c23242b32bc3170e3b244cc0fae9ef9387d033486d721dae0abdcd8a9589792edeccf324e619cae10152352f07d949721bf8cd89e781fc928ff2eebe37557b9014a0da3c1a734185dc059af053fa9e5aa384", + "hash": "02029c5e9b1ebaf8e450e4c4bda1c5a5a618dd0a98aa6a6d0b924cea58578466" + }, + { + "message": + "d1d8848d1170838a738fd09a154666643595de4dd0b12102a36f3fc46359de918a3d858f", + "hash": "f07fe6eb19b639a940830a52a9842de8870883fa277aebfed743cddf8e9206c4" + }, + { + "message": + "366b9a0f5f26e92097c5f5d59b5103a0aa9436bf7b8d0eaca267507f1bb9230da55ddf91e846e427eef192e9ffed0a8c646e0254d7c13fa1c4ef94dd7474c6728b6c6ca70f2961b9b00be4fa4ca5d9a484c9a016ac7fa155112780d44d2ed8c09a8f1def59959027eb5579bee287294692429c1a19db47534dc6b18bc95ba21365d076db4b9b1c558d00caad6621c99044294f929151450ae3801abb54f88ca7c5a9a93b7a76e2695a3a68c02d0ac5b930c9d554fc", + "hash": "4d36d67ad1549f772383fa4b9ff29dd9d4e298207506afccfd53748b667d5a77" + }, + { + "message": + "f08cf8619ce6aa22ccb0163b999c5fcfebcbc40600a3d79320721e1d3a7390a653eae9f74f7bfdb2477281c69fb38de8d475697c8957c8311ee14291de692e5b9d07b084d793c673b654830d3fc3f12b3502c573714073c0be5ea97cbf2e1ffba528ef192e3f7785dde4a9c1f300e98e8cdfad9d467aaec2b0c61ec2e5ea19329a6534e7d90b68c17788a7a83453a3c98658a815c1c1a2363e6a9072095b056b2cce0164", + "hash": "ec2a5af4670e99623a4d206e6d80630ccc3beab927df00d35855dc1145a01670" + }, + { + "message": + "df37095fa8c075bacd88afe3927104fe2fce8d75262e36ca731a0fb6157772497fe4c3de1cccf7d15bfa4b52e3986e40afb676a19a29e76d591dc53d20ea2e8ee3d342e6e2b41afdd56347904862bf67b5f57bfd66b47d655aac241811906b751356769ed4d139d47491f7780b3761c1f295832a547a384ab414e5770d32", + "hash": "835aa4f8504e0d7d0a6916316c47ad742eab8246b878f738dc7c1c4667c3bce2" + }, + { + "message": + "6e4019941c3737a672b2f6fd6249c4eddb548e126bd03c68943349638fc4c901de2f52c33286b09893b87c959914765732ee9630b05c98c507ee8db4cd6c61b2c8aa2e55dc8d3683656c8f13a2152bc368ae4569a4c01efbe4e6866aa1d1c146ccdd9b05c8d9756c97df4cdef2cb93e1eff2199dd87b9e2be984a1ddadf48e9b9e7f2338bd92f52a6d102222df599518ffa1cdb8b08d1b1be94b9b277609d89ff2c96fc8b0cde5bbd08b6225b21c9006e904a77e662ba39e83d682716d77b1715e3db16df2a8d5facea250811a45079da21cac37fa196d77d24a67080f877440d192dfa617e1c81420d5dcc1372b7b1bda69364d071359eace51879ed7942f1c3b41db8fdd18c5", + "hash": "3c14118ca83bcc61c777083e58b9257c1c0df63b3634126c0e52dd1f74f0846e" + }, + { + "message": + "dd07363a5a1262ea6a97a414c167d78bcec04cb5e203d4c461eb5276403b2d7a3209ff49b087f8be259f958a98b79ed2e67bb7cba0b1436d9964b9c4d570967a813b79d69accff70f33b7b4bd419175477124adda50b9e5c25ba02f020ceecc62da0b24987716ecaa6423a6921cab1047d77bf89a8c35339fa7b815e024228488afa426d3532c26110dbc6ca94d29e29f6b052386deda4dd02fc7f8ec5e3486972fb9ccd7f82d17ca1720cd149aa7595f8246465f244497a0ccb4dab0f92474bce4c6502ef8c9195e418c7b15cf181f4e7753dd4a52bb7f815e5afba5a9153e58a9b5cdab399bc74fdca7ae4be0ae5388f01b7e8b20a544540a12fc75763", + "hash": "40ebdf52b8c25cfe307cc7301739b9c09335754d6aca7955fba0d721862fb8e1" + }, + { + "message": + "cf6449f0c0b6c735b7c081dbf0e6e85d067f31cd054573332ccb12cb3e0c96e510b2933174b412208f32b5d6d2ab68c88ed26ff55ea2f7bd434ace838a71ac301408173f27b3a4d833d7dd839e71b5ff04883ffdc0abd7ef8b69bc9ad3ec87706b11b053", + "hash": "80ce56fa4dacbd334a840e717cee8543aa9e39065571043c688f1373735b9339" + }, + { + "message": + "e3a3d36bbf1b6741cf013da80ba05a74e3622b32171be362a328fc8ae6269bcfed3ab645dfb5584b5b06d91c616337cb9273fabcf5ba8f0d8a94846d8f7eb3b7ed91dbed3ecf7f235443f35a78c3c26a3db605839d686391a5b8e1a66ca7ac4dcfab564434edd34a8b2e5666ef1829322a0c06e129147db3fa26e803165b5188e702af1297f37c6287197fbe82efab6feac420c31a7a4d5c98f1d61610469cc5c1bc6efc7b45c4d1a6a4cb835c990b234941758cf85d625ec0b196ea3d860837ddce7c46d46b4434cf336a7d039beb824a9208188fb0405ab81c88e8fbf1e34c37e71349", + "hash": "da6c40daa757b300c0c7ea2ad21a336d41376ac6ab1a372bb529e9a0b8686f33" + }, + { + "message": + "1ee6c8a5319e79b4b1d2ecf43acc14a2992bc7efe30eb499b21e6927c758183d6878a3a325609534580628c3ab239adefae1b15d231a9fe5d774621bbcf5dc4c4a5698446d41c3337bae4fa541d1cb39b482a03d0cb8a218f01d0ce806d3577bf745d7d8aff1d5ef7d249e20794bc358f2efe9c00ed362de194a24893f7d8aa91c85e391dc22cb727740bda58580c2cf0cc5d023a302f4d832e3f6e186b960ce554650cdcbf9427ccf3f5e76038134148e28e804c96c94c4af35898c9ae3f127", + "hash": "2fba1a4e338ae357fcf5272c86b3cf4804aba6d3ff7dde9cc2bbc66c813f39f7" + }, + { + "message": "f9b9a01a7f54ff41d5d31acb", + "hash": "732675e626f80725464a3111bec0123d93af2c1b46f089c4a7ae4fea46af4684" + }, + { + "message": + "2c4f2b98d90d85e95dd0e001081b6ecf28c0dc991998f86703215c247aa42d5e04e91b84d1e913c886f6af52188073ae7459d0ae23afcf319e0395c2dca699aa9223bb91b5d274bd1504535af3182c02ab9a8e25761ec1e3f5a0825242521bac2151252d5c8381f16caeb47452f3f91aa0c88fd58d8b3763d98ed53561eaae3688715261cea0051ddb08e74066ce2317edcaa0cc8e7d0c9c40eb34ee57f63120ad3e5be3e899d51f3f11204f040b786bf4705ca58c7c62a61c07cd11cbd917f6667cad0dbbccc198b0a760c237011736aea93a0f72f6164f", + "hash": "fab6b6df58b9f14941772395d0246369bd7683442c17dffe7d9a2a3ab6a4ccfd" + }, + { + "message": + "6fd278c22c3e2fc7ea80ae09a7976dc5d100cd441b09ddbee4a132f05e2ac90988a596287e0b06aa728c677eeb382ddf468d5f56ab3c3f75f420866de2bb2fa1d51d7e18165380e4dcea5c963c255c91a7c088c3f41cb35014b886", + "hash": "6d11d36d7ef8aef2860660319f6c215defdbc2a82d31a0224d9a269894f1fd20" + }, + { + "message": + "6a0b673bf2ece60ddaff9d2afb8eaecbfad44d5b11c361bae0240f9521e2199c6aae3987c7e648e967bc4176d4ed46bb7563586e841d", + "hash": "52df1aa08667304d8af4924e1f44a6124c994af0f9f7f764fe1b1f8301177327" + }, + { + "message": + "e7b65ff24ca1ca4666306cc42a4c429bc2c29503a23d9db244f0f3b272331478a15c827382a6133133358b59c2012c94ffa3eac8b7593f83219d562ac6533aef4e2dc15da87bd40b0579842dff75b220c0a1321dd301ff7099f748bc56c8df95488b610df3ade8b5792d38e5fb7484c780c4e2e4813f5092743216088ecb32d162f2e3ca6284516ce414b3037fd60f3f78fda02ee75fb7fb498e39f34cfb5a8df52a631838ce0ba1120cb89b8547d79fd7758991ec01b75264627c0e6171f6a791b7c53b6ecdf91ca0a591c6eba817bf3986f6796766e063552b89e6de26618fdd8a342aa4a143c8551c859dd2b1ed35541c4ed405d44b950569085e", + "hash": "ff2f2b947bb1d1230792081b2f275dc3fc6d13a258922ed33799ae88d9cc800a" + }, + { + "message": + "da42c9391f31ee81c0556c6e0ec7367236be757b2c23b59d44b9395d4ee75c508e4e8fc369d77020c15c4518ac77f0ed2447dbde121930e6562c402d5594603969331f39de28e20d11f66e4ac08c8407cc6e0508928ca42a900911bb1c8e3dd2ecff7b1fe908e1dc3ce3457abc58e37f9011679b303c4a0037e427f345cd02b764aa6eabf18639d1be4918e4647b2e97791984ce480376cdcb195693bbf0c4d1aba341416c2959aaf45268baabd7abb8a7aaa08b56087b41f28aadf920c87367aa4cd18028", + "hash": "1056e797720e439a9944b3281526ce7f93ea00516cd3a1d48127f9f30467f294" + }, + { + "message": + "87f1e37067fef1fc1387a361516fbb4ce21710de6c217df42b781699c666361904e644f63420f67918637e7c090f2867b9cff33f880579c1d021049c127aa1f00ddc6df3c4b8f663b26642c73e638f4896e8cd3b5a75000f2927cb9c5d4dd2e5d1564a68c414897711f1347059aba42e5fd096a2ce35526091af6d9433ec303593e91d4af211846dbf42876813c670a6812f5b6220a59152ad619510951a3e8ec2c62ca875610a7aec926b2ba56ced890075c0a154781cab4c5dae2c95f459d0ae0439143fd9e3196be0f511c52c21c57498", + "hash": "590b072e9212f59dbf835b261ec6a15e3c7bfde5a04c27c954ee1226328ebc8d" + }, + { + "message": + "608d45bab2efeb928065def677eeeed3ae60598382536f37a5066a5b5d4e60a5731b1b924efa3fb26de8591e8c45212f8493299dab4b3c36fe86041f6c8346a316ef1cb7644f93f4eab41cc729565dc86745286fea1bc6ab44bb7b3ed40b9c80d1baf8b0520fc30c20b8ef656928def1c2bf75296d0d2f6f272d5b34dfca19d395ceb0e436", + "hash": "0bbc343fbdc1ad6f58f06bb6561d71e370280aff032ec36f9da91c9de9bf2ace" + }, + { + "message": + "19abc27c11c23882e30aef109c7f769b57a794ef474a06d214f7a08f943da6c46b3dbe9f48b46e8ce1f5a20384e86a14e818064539c5d6f8438a46a0cb58e2f6f8eb77093e249e12ea3f60b3811153367b4cbc86957b566e7a021e12f104d651ca6fce9d34f856aa90ec435d3917a1825065f20d85f993f249d269094eec89c2f19252af9ed4825b4e322f81913aeb3c3e74cd168bec8b5e491b113b4aa8f46f0ee0df", + "hash": "fc07615554f2892e1774faebc464fb5bab5834c767857101d2170a2258d5a741" + }, + { + "message": + "98ad6a0e5233bfd00892a0fcb50cb59c08c7d0bbe58d4742321df7862ea77845de7d3ac7024543b8331b725a4d9d928a797d33c6fa0fc8a852d5951c071a598805523d256319309893a220fb5a455b9cef5cb0f62a251f0dcbd4bbf21b750dec0dc0b4fb18dee3f2a56ecf0a403f20d8e9182677c76e4b05c325fd26420cfa79d4357232e878195b20db4a378ffc7cb6c80c43c51e497d31324e58e51f7f808d7d6d0fff3ee2165741f13dd8aa578aa86e6b41241cb028d257e843b16e696e1df7db65b74ce34269", + "hash": "ddf2b78c4c3ff3cbabd4cd1e66bc5932279c46bdf4d4d1949505cda3ade63f0a" + }, + { + "message": + "84ef0a3eca5c08882e51d8b84597ac5631c47440c27ebd69c48680369c4c7250f898d8542164cb87fb26ca76806fa28bb32838f7adb0673902ac175372f6c38e259d4b42fa8c4fea510bacf6fc8bf9852320b43471d57c43d5ab42eea3cb668f9e34fcf0a895446175e1502d69b42e70b8bfaa09368742eee982c5e30e", + "hash": "99d27b6587d389399405a18e6c660ad6fea6781846c859c0c4925f2dd5b2d23a" + }, + { + "message": + "1b786c0241e3417636cc4a9c21c34d9f8f45bdcd21e52f604c0025627291071776a29810b8502c976d791761caf074ecceff841edf49b75c2eff86e1b66e49c77cfcccfcbd0b09aa0310729421835966cd9830fda9c1b5c8", + "hash": "ad63f1845f487fcbcd38bc21ac92dcfe388b1337e9eae09c41d43d999b94eedc" + }, + { + "message": + "a250da0bdec0543dfa60fec6ff77bb49be6c3ed047fcba9678550ab320e978ec9a62a68170fd3ebbf594e0bd21d0bd71ef76d4a220566614a71c93d5962ecf6ea5328fb0f6a41c72c1b1af4c9e702c6ebe602ed5369d3efe75436eb7a8bb6233af0466974d33fd1de93fddc7662f575684613997c953d7", + "hash": "591dad6ab4b12785c60ab978b5e8ba6a6014462fb76cfa893b02d52d0107c4e7" + }, + { + "message": + "a1f07698d0431521a49eb3ff089785f485e4b637ebe9230219a9f0a7e6ab426fdc14f6d5c89629ef33eff7f64755d7df34edbedaafe3499a264c3994f17203426b9ce715b278e8a02531c1daaa727a8345753c2dcd630641c652adcd92affd2a892174af7ed8c2079479f0dee6e49f93f8520a659412941635af7e82531007a36590a1fa5a834f21a416eca949f021fb897500de3df6d23b75a4a85c3f901fe484aca8624093f98658d4678d498ca26352254b951e6ad692dbe1f2c62d", + "hash": "cb6342df01e50fabe23acbd2379f917694c104a63947f0ea6930f85cb24c2492" + } +]; diff --git a/test/crypto/sha3/sha3_test.dart b/test/crypto/sha3/sha3_test.dart new file mode 100644 index 0000000..e0572af --- /dev/null +++ b/test/crypto/sha3/sha3_test.dart @@ -0,0 +1,34 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:test/test.dart'; + +import '../../quick_hex.dart'; +import 'test_vector.dart'; + +void main() { + test("sha3-512", () { + for (final i in testVector) { + final k = SHA3(64); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); + + test("sha3-256", () { + for (final i in testVectorSha332) { + final k = SHA3(32); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); +} diff --git a/test/crypto/sha3/test_vector.dart b/test/crypto/sha3/test_vector.dart new file mode 100644 index 0000000..0bda5de --- /dev/null +++ b/test/crypto/sha3/test_vector.dart @@ -0,0 +1,276 @@ +final List> testVector = [ + { + "message": + "5668806f2b3e54a0e275f31d341143b7ed41897d0b53c3871bb537b9986d7054de2a42a0e73fcb69c026350f056f51d49c159e3f97a8cc72e362fdb0bb2bb29cfa030c6d2602c6aab79722fb105bce83cc6a76464e6b59aacd9f7984217e7dfddb334bdd940c8078332413341f435406c8d6c28172a5982bc23ff8761232206193bf5464", + "hash": + "bee41c8ed9fede64f450b6278442d36ee32a6c921dc075965100c7763d10af59c0dfcd4df52bc2948621a4e2660795fb3ca19345e40be7e78bc37fb3bf70e399" + }, + { + "message": + "ae7010bacdcc00721658f2544276b60ca2e4197e35697b6b1870e8614784b766da1e60a2e1c12c3ab21556f3b92ff5a676ff65175f0a265d64317d13291bc5acc956b85598abe4baf64decab01eb6ae4bb1ad825c2e19e801f39dbc8af9fde55", + "hash": + "6cbbbf71a348957178d56e0f22317d4d4d6b39bd14d5c39b761b06c4e7648e050af4ee9d3c10729ab1126aacc1dfc3e8cbdca7cff8037e68c13644a565c670a8" + }, + { + "message": + "01c50180f71363a99f30ac48c002bc0b9586f4c61dadce4be3d0fb8d5a565a63638c10a535433c0a05b7cd36b4affba717b80dcc79985221d69f6790a0df1273b12d1ca88a823cf3fdaa72d4e20da1289a01d96a3ee7b617f753637565fc9e6f3185f842dd2a00140cb2f87f1b43f97bb965", + "hash": + "93d9ddcbd65080b7506fa1169d67c734123de6cca1e1150f5ea824da9908f29a37ef5cbae8af8e517fefaba878c281df29f850406df1627e520373740bf00ea6" + }, + { + "message": + "185240ea70a4cde645366399b69c62b188365b2d3ca1db8cbaf957c64aa34c18301623b20f7180e7373b265faf34e83c25773cafc424ef466a6968b1b2833aebdb8f0324e7a4585c0204724bcaf7ebaad228e93062cc40933cb0221f56d4a880b1bfd98078c00eeffbffe108968c1d2a9ed69dbe548ac6ae92604cce8e338455ad041e5bdd6e56318ba765d2b85944dd33a13a33e13f1480f69f29fa5e79830c21affed18349d9756684d8504f0ad7aecf9a0d79e2e08a308c2c3b13df8c89e3dd2bdef192f3ccf32d8458", + "hash": + "f0dab0f98dd7756ae116c28a915c0c56cc39a3034d8d2a120000e967fdc5290ca3ecb1eb6141a2cb6c35f8760cb04c8f9ebee217bf3430cc5fd3102da89b9d68" + }, + { + "message": + "b6e146d6a0139ade79bc48ba7cd47faf2ab8456160df194fcfc7e8e7ca611f792e9d1c8b408f5baadcd49dd1ec9ea860691f4193dc8ffec48a7df3047f9f685c18fbf7b8333dc0a116a284de3d36c8fe9e14fbc9c72e102d7c10454c66e4245fd45faf66210e11f48a2f670b4904ab3f5c7f61396c0ae4c7ac25bea178d0ba58b16f5e9b844c0a15effc69f076484a93712e6b193d529cf12cb8ae40bf343a504cc454d9067ac50c5d555da9555627a3c3a13bc8645c855744d45ea1142eeb51da1b113e30fb8c5101d1afcf9413ad629f69dfa2f7f899ad291182f4153d617202f3858195f2061eeeb5b5ef8114e5d42c98493900177a4a461e53fc42b639babb542e3e835aed7a3a", + "hash": + "702df14f7e61908259b58d5c44d567a3ef0887f6a089eac6fdee3304066ae396bb09ff407e2e0f9151f1e82c5373f4aafeae09c788ad2d3e0987cac3ba0c0b43" + }, + { + "message": + "74777e5cf7c3d1de7bf371c3cbea7dc4dd4c448b935c46ec80153dd5952e42a6a9eb609a2515380e426bca39c8b7c21f521905edf1a9486a5cb605f43054ee12deddcfb1bc2cd6f4169ee9fb9f66ab61a78c5aafe5f7be1be29d6d94b2934e34519be2eba93c330dc096d5a47ae399015a399c22da2ae09f07edca432f3b53da29ec15cdf18be2d4a7655a13c8941e53fc10fa5d", + "hash": + "bc43fd9359c25618a27023e07d5206ce22a4a9080e29dbc02bb5a82e8766438771e1f743c681ee19a4ef747a0b596637454530137aa3ad69321a35888b075268" + }, + { + "message": + "512632479f5b68e4db7b812cf23caa39c40df46d3f88bfe1d2a11ec194043c6310f3491afd603615f065c8d716f858f2ddbb6eefc2328509a3c3c1bdbc0b1d0c2a70020d094985d03045a7517a39a51434f6c41d211ab42b3927be48606c664ffb46ddd51b8a7aa5b347072943cbb4b729208ba2f82a", + "hash": + "424e96190dd4566f8f74a984dd822607f9d0737dff52f0a9a495b3a4da622252c4f30e5c7c227be661f0655efbcdae67ecd51733eccfef833b6a12a93c04ccc7" + }, + { + "message": + "8eb2ed325c09d65a87545820d99efdf108a7f043fe75b10817209b4702ca6dcb03d5c529", + "hash": + "652da50856e2283c23b076ad30221411eddf16c7ead3b6eb280af594118d3a2413aaee5362e5732f10a75f3ef72062078ce2e9670eec1866ce4da9f5fd898d5b" + }, + { + "message": + "0993d60537f62078207545811df171e3352fd49e1a78c7d46ad28118afe559895a8a17f27517744078255bce8c6343ca1d2ed4bed428150b6f1071f0ff634fbaee04eb6d4012c38eccf96e413c4b1d5b05c15e83bbfbf23f0d2ae1570aeaf59af3a31ba8234128cf4897534a80e972537067a3b91c9d76c257e504b4523c63a9b89cdb3293c1cc4ff64c65ecc75407d558c0c1f1b2984d899ad316264f0c94eea63f24670fc32b06cc2336850dfcdafbc756ee800675684e448605469d8fd5235a715687774878", + "hash": + "243447e71f0f5c353635c57489416aa71f4fed0d4c757f027bc549937f278abbade8e44bfed5988bcfe4b2a7cdab73c619d6d2cf6572646c0f948b8eacdd4f84" + }, + { + "message": + "2539db77f25fdebc4282267f953b6c90ff96bcb16164bf88ce3b014702a767f8f9da1fb5ebd42c219e666899804936424065582cbad839b315d9a5bc2111f1e2e9a4437fabcb232c12ac138706b0ca105d2e1e74cf8532cbdb07cee59d6dddf49df5e67b", + "hash": + "977f1110ac9ea3ee67b6f73e7c7bc50ad9e8443f5ae9002fa2095b0ebd9801881e19b1864d70f54d2412d15d6bbb8830f4e0d4d0865a376d42e41654609d7bb7" + }, + { + "message": + "9f8d1cdc2c2bc16ca0f328650b61303899dcd42b79004868f2b0e5b6c966dcbe30394c21c4426b369573583072c49a7e831e954aa7568b9d83ecadff7a1f1e4e112704f57eb172e79ddf9ad7613ebd9f35de61bf128ed5de814d48c4e9d7e138377823fb23b39a20bf69536fa557b29a1a5c3cfa701ccc6b13d2736a99a58b4547d68fca25a712e7681ea13dbe125d9b144feeaeef5b16993ec9f95ad20688bfe27798077fdcb090abbf83e3d8f84b2b4517", + "hash": + "1ca9ced830c21a2d4f8a029b630047b352996e2d809d2729b662773982eb0fba5133eb8b111239ddc8fcd4c8597edf8835967714531a4997fadab4c09974b83b" + }, + { + "message": + "c78d1df5f699c74f9554fb967f3cf91cf663f84018224037994733d825a930eb56c82e04bb2f4cc1284cea8ab43ad8089f7254b4b32a887311a5a73114552e51db1c7676c33d150e6c20fd5398332ca8d6e175b5b4c2efb49808934c7e7e1110e02a15dcf2e7ffeb44e8c31c28cf0dfdbd4a31ad474ae96043b2f0e9c483be78d66b7c0940d878a69ec2325248575a550b", + "hash": + "890adcdef05a3b270094dabf782fe171b2ca532dbd17437615b1be7cd7ef4f42dba1e301ecb084b3942ddd6b0f4550f333557f2f88c7fa2d9a994cb288fc0f62" + }, + { + "message": + "b607dc15c1e6e9a402491e324c4753dfa85f24c0d2aec0d1fb3dd017d549e05df6df02e7f263edd9fb749a16737b958dd9bfe96e2c3c89e455c9e370e2f1ca07d12c96ff4ef83f584eadb6bfa0fd052c321d1de4c8f437036aaef8b17f7e806b26e6e4b5e9f81eba551f4142ad15c1e622a4a8a958f6429f83195226cc537a43b6773cca", + "hash": + "b3859656deec4ace6db11f51b3afbae01a8caa4762c1c6aa33b868019b691602064e8cb15fc93c833981ccc6a20db8195cd126247645a8be2cbf103d5c5310c7" + }, + { + "message": + "1910b4a4661e1dc72eefc90a49c1cdae4a7930c91240991b6824cb3c0f7a5ea70dc8a46f48", + "hash": + "e571e4a97be0bfb41f9cafb4d04e691c01bc26e2c2bb07b4b5de8384ba535f838d4f92a5575af4d9e45c28de7a527507a385611089f12e43e67fbff0bb4f9f4e" + }, + { + "message": + "0777af7872950510159938dcbe7f0686fd4555cd1c4427a8c21b3aca72a91f19dd8920857dbdb47147b1bc99519e9085f39e4f70b6c598e38f182c6cfa89a33a533c20eac8e8f8527e0cb0c49038f93fe23a02598eed829feab9bd229f2d51ae6168f9f25eee54672aee98188470bf5773482f5c23d73432cbeb5aeae3b295461f8499b8bdd3ca07ea632fba4dee2c2128ae72c3430c9c557a1139bf33ce7cbcec6bdb9924b1610f13748335e2ee831679622b39e122f66844e334b5d0702d03708645753dd53726d2eec0f10bb1f2d65931f1b044a310e31d0ada9b60", + "hash": + "8e94f6727a091ee71d87e9dc2da2b44c5cfb1f0598fb4321cb796aea87d565a6ee94374c72946416e742b8ce3d05b3f6ddcd44a1d08f16b02194e3cb16fc155e" + }, + { + "message": + "e89b754ed4c94e508d28bd29770ba857969a8e271297c45e2297b43c03f080b194d173b5b9db074a5f99ab94647180990e3e098b1474c6d526d948918b7d6e55bfbdb9d4e02ae489ae309dd47557e5a7523b6a93e65a23967524b7844105245250f9d4ab8d4d1b452a43dc53bbceabff945f6618da421defb35f78e4777410179d2f6d53cb3f139e909e5306", + "hash": + "6590a1862e9e20a12780a0c1beca278cc99f9017c299c2843d4d15d56cfc8fa72325f0b40587b8ea055c1ef7d6c7d4750f42e5f4d88b9b6bf94b983742a7cce2" + }, + { + "message": + "132232834f61912dc34153f3ded0e77d9f515d11bf4c1610c595828bd117cbcd30852d698a223447fa8c15c7a9b341fc5d672390b3e989da0073012d95e91dbc710fb10bb4975144a037be2389ba501554175939e6afdcf19baf35eb33fd238e13a6517de2ddabd44b8641c71a62ba40de0086fb81282506525ea0b337f4f698f9b4b8556197ab213c30f64851da1be375b3beb11fa00919acc8b6e39d99e0541c0c95d53199a057c1cb5da58b5359ac066e", + "hash": + "3befdd9385c3dc543069baae4c33896705e625e63830f2152c6d24d879edef6d049d0a53ba37c07c9348319da8a0a499e78f8d8b39efffcd65be0516709ed138" + }, + { + "message": + "3a30b3bd2b7b13cac74fbe8a23b82e0d47f04bc2dbb952e79faad76734632850f44efaa7bea617762960a740394aa6377de3a300994dcf04b7d7a01609ee8afd3dfe043750757ef57c0afd741969dc14162c628262e2cd7641f8b5990237066af4ea343de4d4e5731981a9c2054631f599e39355d35f129af30046fa93c28d22bea4", + "hash": + "d754bd5ed1e76020521a9ae4e80c8f4309cf75f5701069891abe0aef2f62d74b94c614061690b1dd09aeb413aa237420203e0cf92baeb640c81a7ce25c4c7927" + }, + { + "message": + "3f52ce88e25d6e6159e2dc4d0b0182debeb2009a4a7db25ce5b0afc3b37932811cbcc27b651a6432dcb877988883289f9ca54b3ad46e6fb7589d49faab0bdd253e678f9c7b5a997283efbf5ab9a4e0b969e3c8fa9d5b6c020fd09e9e7a66c8d4163106d6ab4c4170fd611a43e7c9d2722d211d981f473718a8ab6cabb49d7828cad30c22ef0db22c66ac9d8e38b9a5f8a421f16aa0d48d021bf472e79941a7097c124c86d9e89e3f4424c41b077c53201eb0425c171983478c2b94876317f12e39091ae24e51bd4e349c7ae1b7541fede3572aa4c8544e46178a084a2c1c087d7e69821e135b68a6c0b531b938168c3e0e5277db3125cd848ba5d2886b921c8d50e8", + "hash": + "73466a63b7d120075e611b20bfe63db238838f45fccaa101dad271ec95b2c35d163dc081f8371d5c9ff71051c5fdb9fc54d2f5b9bb59765160e19a5cb1ed7d33" + }, + { + "message": + "f49fe1d531289c2b53b79a3bea40834a610f97e7681857ed3eb148a88ebf909e64981331a3b4606e110b00bad65aadfbcd97ce2e90a5", + "hash": + "8a6753397b994fc0000040b6369b1ef360804723d78238be5368e4cb4f78c44268d0e3d51caea0001e21273d5ce2004374c18f7acb747543d469fc57a5d04549" + }, + { + "message": + "74110b15623985bc4844dbebc6431babc6f15cdbad267aa8121a958797fb8ccd00d8b1142bff276cd59648d5388137036ed4d25ca446968b93a6f5aeec2a472c6631da24c27bceea2ce9844a786a44fb9874f7455a5340a7e045493135d74dc2492541547afd9689bf13f9895329b8739b24b001804924fb9c0fe44867242d0f854cee015e8cc83a57476bbada8816e1ec2d177d6a24021647", + "hash": + "038267f28d830d4cf0abdf9b32f91f1a6f92222cef671eb4404defaa86ae5da6d09f6bc3263f4dcd946628aa8aa385320bf9635c6b0ab85cbfec33640c16fddd" + }, + { + "message": + "0f3bea032b4b55aa46a2aab9791fc26714a8d2ef29d7a1278662fdf07e94ffa2fd905da16558a24eaa5b984ea04ae51094890194ea184ac53fda879fcd76d48d969e604ddd0f9dc13dc3fd353a4f4e0a39a37da7b9cc1fcedd38ecfbe4e61cdd6d7e9ab01a6158ef4b", + "hash": + "44644cd00ddbc8816dd3f457707b9fa2235e85dc934e1b0405f1ca272730ffcad9477c7fdd0e574ce32ebc98c0f7f0bcbd2fcb282a55298c00e2d7eaee6a2c8b" + }, + { + "message": + "0779561a534ec3fae37bd3902260d905f23c7846834ea237bc382a342338977843ccca6c45f2466d741d6a7b27ebd3160141ee468f551dcce7ed2b5f8bd7f5935d8dd157af2d83fcbf33d2bb7cdfdb64c07e9a2972c81334d11c72fb33a307f6564d30c2a7dc84a429ece212e5d351fa4f30c3d79fa271d71cf686ce84bdf676f2ec53463975742d9271635aefc999665e45ce9349defcfcad4c2af3baa719d62f425e5b8b44dd8bf0d24597db01d95eacb7229b5fe7909322c94b6ed0c58725b0d40b8827a81e27e6c5", + "hash": + "f21f6afff0cd1a20e5c7c90782bff5c31640d5840c1005267a68dcec6b8b74fa57082e88fc24133137c1e502a2cba5bd802abab418dd78107f7389da3d629872" + }, + { + "message": + "d0d33626942d2a71b59b893cdb52cb3bd13cebb262fe986cd8ae8c2077df8e066358d161c109df2e70388e94e790b1aa4d28d5288bc2cb5c317b189d2b7b85bdd0e2175796e352cb8a9060d844e14703da4bfd08d08f9f034d01c98c7e408a88ee2b7383f3890acfb7ece2a8cc3f4fad36f2734d7c321ca1d802712f004e27ec8cea2f07bb23bf1f8f1e7388d5c09cef611a20380238b422acb8009e7f9f2c269da87c27e3fde5fe52160acf70d055e7ce9f246ba9ecaf30c91e28b068d794386d2b608ec0", + "hash": + "417f8406ae348436942da09a47eea8337f4c799d4a7f9a15e95994ff99878381abfb5cb2bf51af19aded93e44e29a9b307cc4b521fc5141e1bc247f03938da13" + }, + { + "message": + "d9ba8b0ff469603086c285b0eda73dab4a0d7e79b57f2b3ea5d6c26e114fa978ffa009a8df41b28e66c512f5a363c7272904b5cfcc4f9bc401df0a3916e9ec7c4dbc665daa13138d4820bdd6", + "hash": + "37b8bf89bc4b58ea37b103d8a933c585643f3eaa16dc0975f27dfd56716148409d63075c5a1317e5cfc17acb107bc724f54dfd27d842f5be8dc6636d2c347e6f" + } +]; + +final List> testVectorSha332 = [ + { + "message": + "d623a6426109980e1d0347898808621ee4b93b2d570a795979b13a4aa8ee275b0f254a6a54e85fa383095d2935943e00e7db883318818310b463aac2626fb9363b2e2cc6eaeb2a00d5b481ceaac0cc20bd67fdce491abc12e8864cb1a9a44634c080d32dd5f3a8c35261", + "hash": "b97d0aa913f196fccf792e8366f48a58de5f7a4c79fb7f456323c000e13b5d79" + }, + { + "message": + "f7f750dbbd7f4bdb67e3e33c35fa8d7a05d037fd42384e273f2b7a5eac16dbac46ac996622ef652146ed4bee369f4b6c4eccdd5efd22a019e4737ec481491070d3c8f866f3d5c7d96b8ff3ace7bb50123aa75a848d6535720800512438bacde535f42b8c3671c470e637963ad8d5aa3aceaaa3be64c65a479e193914d0ecc1c6aa27adec11d675dbd3d650650d7e0b597af06d96a14ed84c26af79df1661436c61506cb10355f74b001768f3d1", + "hash": "f1488c41e7fa50970c4d758d0cfd0e06f47535bf8926355b9c7e70ed208a500b" + }, + { + "message": + "0e0e29858a2bcadead45f27e22fa2f4c67f73234306a7e396ecdacaed9c72587a0a137204de465f9bc47a1ce3f9434fd6822cfca79ea899f955ea1a74777269648cd7ae3105d86911d0ee8be7db10c8b96341fe4ad08173424c7db2ca605ff7ffc9ab3f82e6f5d2edef20f15e33e033c980446156f7851ae87cccf5af8df599913f934ce4ef3cbff52e3eec7b72c3dc4cc726beaae5fee0aa26f2d6b8a762ef77d4e3f95300add83cee615c1f6e9a540eccbc79973144612807f69a628c2907d4f2e48621179ace78dfe33a1b60ca56ce8f69ebe5ae057b071f5566da27000be452845473e881378f6", + "hash": "90a4bcc2586cf6475697f06f44137b6ee41ccccb659b41c513594ad536b72150" + }, + { + "message": + "34ae2811ad1a2b1c515106df1e0cc0cfaf6652a6d98f971175d45a2c9baaed2e8907cd52a8c93fa043d39d3423bff3ac82b1306880d265c406ad86b78d1870ca4eaf7509de15b6142ddb433c3faccf218f719f141ada45b24a22ac74c46884bc2f16ea4e398981a97f2b97b88a6db21d84cda48ca0500b900ca0e6076618f135793be247637a9cbe9e0696f3168dde1d2d923fc8f95cd2d8cdaec6d983b9c0a08d492c41bdd980816f0ee9a59981799011b1af8cec45430e2ff1270ba3", + "hash": "5c3fc5af8e0ec827c1f9f479d0caa9602cba31927acaf126ab6dcd154e1727d0" + }, + { + "message": + "25cd0f3848b8af1b34799075bd197450df4b4116ed7a2aac860f3328511d208e1b5957fb08d7bc6ac77ef836db8f6056216e9de5b730c7c12b56619529914d3740c2cb58a7ef5eb792326ab252c8b0d854bbb975a6b3a035d00c8dc9c8b1017216fd2660406a868be4b82a76fb6798068cd1784f232e1c3abe388ab44b5966b62a478377036e336c73c1bfd84a4822913db928f848a8d95cd2115879da", + "hash": "aabe971df8f45df6843a9fd663cbc80347db0ca32d4ac3b4dab962de4e2794a6" + }, + { + "message": + "c72ef5ccd3c4f0d16bf7eca809a3f6b193b5cdcccfe684481b6f01a9ffdbd63108ced1f39b20d62833f9541c7f0f6379744a1f8722a9f990993acbcd16e24b062e8dee178253e0744643a7223e7a0ba1f3c603cf491225a51e4aea6fd9448e69ef94635af219d0fe7b92000a70b467038cb2fb7fb3128ad6883e7d9d66af06a6a82fa7898ed6eb436d2db657dfb38bcb784d06f3e129d70a1a475439731a1bb6d38d0a8948b174a8e211bc7ccc60257a3f8ae8e406a56f0b86f66a4dd9a9234e2ebb4c8045b780dcb41f1f36d7716e7385975b73533c823cf46411ddb7bb4c646951527ad9", + "hash": "cffe7c415328776a8a5a3d766b0b8a046f1dd0d495fe33d5271863d20f017507" + }, + { + "message": "d50a33f5b99c6824e24f74874e65e548dcef", + "hash": "1bb938b20374edf91b441e870ef2f2661a12d73c1b45fd5f82e78338768dff57" + }, + { + "message": + "96644e056a01b76ec5e28dc6f7af37f9dc8f274887995bfb6549e6ee53a75d4126f21ad4050b5607a5c5aec54e776294424f257992059f07c6582943b144d0e66db294d026c1efc130d51e33745c9c077b51869cb50d348f94ca4b0412cad3649ef68deb6c0c6875183f545789145c4ce5c3f3ceb7ee46be957752b075bf347207a7b2fc3153a9932b084ab58e7645daa22e6e42ff4cb5d55314307081003157cb5ded735df8c1ff032f1aef", + "hash": "2de92de651e7c90e1bc73a43ea9f7a8392f59044b933ad183df9afab78af2ad3" + }, + { + "message": + "a74865c5726c319fa0008a4cbbf38e0072b9c9c8da31d29da25cf5a9fce6f3dc2017d4a77685c5cd79f285a417fd2876df4be776046dc503a2006a8d4653a1e07307a5f6e209686687d40674e1ca3566ef59e4d46685f4ef0faf86694c32f6559af39716021360f47fbb0e022e5e90ef268b", + "hash": "71d74afe1bc36933b7f435075508a1e3a76c429500f4f17f0e927e7155df4ba0" + }, + { + "message": + "dd11999fdd96251df4efa2c8922b724313d2cf44c8cf189dc3039b08b51e43b2d76c39434c7d6258957af9f83b0610daa048e4db72b0f1397b4e266f69c61494e76555ea1f3f9292b11b6ece4157825e913940d4cbdf1a10edeb6069268f292a2e146f9a3feb59ad7088906accd2ac6e9da0d47bf92088472ef0d979458568135ad5d4c749665185587b61304e069de9ed8e2349f67b14a63978ce597ee98292cc7ff3354307e7fd", + "hash": "5ccee63b403c72fa2dd8a1366e290fec1e9ac0a70e88a044a2a35f5646ff3ca6" + }, + { + "message": + "918cfc5e0c285c4a56500985def96608492342cf973246492080aa26a019aa5fd7baf9b98a1de93384e84cca796f5b4e6b8b3b11978db10e8d2f35e93d19e9dbac5f07c0f29cb4a2", + "hash": "816c2ef0a7a1a7a6ec5d5b48b16080c5805aac278933ccbed795bb6cd0fcfd05" + }, + { + "message": + "d954e5ce2f7cd47eb010a92bee6e65bf8d2e6398818713c4593c486c995c47528a090b9bb56f93dd41894456554b6404d5c7354dc868e5c74cbc3db3b9c005638e1aec4a5a09ad6095051c6bc51e2d3bbd5dfae07d4d80b516eac008ca49bbe1871f5201c9e89db2c8cd0557bcaed738421e2c5e1e164f", + "hash": "40389ce0cc38b8ea317243d44b2eab38273a47275f5f4c9154544359adcfed31" + }, + { + "message": + "76854f36368932c15e7d4c0a5db1154fec5de106e82d20fef7d08192e90dceb1530f812768223629283c7565239e6f4ae758d727c1f250e257be844ad2611f83e0fb73e9d83f79ec31ba1a43fda83db09501d6f70553acbd4bcd", + "hash": "7dbae955b72b4b3730e5b66d8a74d6d00f0ddae38fa81f45d37d7b365a6e9805" + }, + { + "message": + "b88439cf02515ae04c65dd0adb3be775eb666347ccf01f78a4c4791f1131e42974f8833bce7186aace660a2aabb6108ce5d77ffd305d3d32dde85ccde47e8cd6d0e536a0163754f47a21baa3c216ebbed77b7da94b754bba5c812a9031dda0b05ab5c3a6e74b5b18068235e782623f62c046848ee58541d0724235c3574017a7066f3a858d9ed34665954e5a3cc5cc8e980f44e70ccc640eda94e9227e9c35ad58737cf35292a6b4187b37811d762c8d7bff2e54631113c7632e67f9", + "hash": "8c07b4321cfeda96e4f0fb551536970b69485fc6c888adeadd9a916a97c3e94a" + }, + { + "message": + "2eb90fa2f64a96c48754d3e52bed34a80988e834f0429270f34d0cd56df31aa0d1ea7b02eaf7c16a061c0bc876e2846c0879ec4f5b229dfb2c147f11a82bace2ef1199fa34bb0c84d6720fdad65db680b67a1994258571252349a4bfb9fca9bf700194a404301835d4c192d81a9fc6f589cc7e0259751d8b7c39bb6a5437499046d2051edba2c68c9d95a10782d67e0d628167ddfa9b0e7790421b1fcb8dfaa79c773a8fd5ac98aaa9c99109dbb93ab19e7b9945e3117e7cc0ebdc560d5156a35f25a3aed058075e3c99c899614d75b6b8b6e47b22d9c2a736029e2c187b19f807ed14fb48", + "hash": "86e7fc566692c00763ebea8f03d77e7a63daff5b4888a66587b41454f4cd43ae" + }, + { + "message": "02ce44ae00161f6b02af7d46b9c7524e438b6b1d45824067345d", + "hash": "06b1047f29989d92ffbc97de82f1e467fb43a8f9b1db1ef64a40342c1b6aa6a2" + }, + { + "message": "6b5e401e2457672bb8ed49c63c92de1a6b923c89432ec5550adf", + "hash": "698102e295d45502281f8150f67cff6947b1e396eb53631d1b452152871132f7" + }, + { + "message": + "1bbc4d983b4516d7d8e318b5610f995c76f5feec18369c125dbf2c758c5aaf8ea99442ab148948b717f159e4740365320062dae0a264d7138590496e86ccaf7a0c4b12cd4f1368ba9569fadbea991642575a6e3af64777ddac9cff39835b6cec2922d751504abc97b7562f6f804f3699fb19b34f59eb7c307f634691a87d94273acd42f09102e48b55284e279953d2ddec4e94b4ad150a9b8ed2b13d60f5785f7eef6700f3f02eab66c15d3ac23ece7544677d88e3a2", + "hash": "970eb803318abfd47cbd183ce54085081bb5cbe74c66f8e956ad2faa10551dae" + }, + { + "message": + "3d6a43d50c576c2d3aa918160ccbecc292fb642e185e2a9eacdf776f25ea9b8d", + "hash": "4147f431829a4a505bc084c6ff93d34c755d7af4d88a676a78ea48fd9e34f147" + }, + { + "message": + "b8938f0fbef96cec47cf9b1d6cdcc83d202d3dc0bcaa4761e15fa9623a6734e200d1e239d16a6e5f4ebdf500a50a4f4d3c9456b6dcd7066faca447f2e099a03b47bfb359b5d532776c1f16f224544a7ba8cc02a55847128f15b85be3941812a574b530968553df0a1d8fe8ebd1794bf2963e575e2c8dd136d7b9100c8f6c161aa03263c49cded3", + "hash": "c486fc1ca3430406a1f427710545696afeb7144bf06946fe807dfa696fabdecf" + }, + { + "message": + "316bfae18d6770110980ac4aedd0692187b103b5b045f47775f03e974742d65de33f0d6c4452c543be7ea2d72acbed0b5b1b85c707a6156b1660101043dd88c880a4375fa16ff9194e2dc753dad1d919589f286cedefbea7820aec818ba0b3e3ab0662aa5187ed412472327f067779a77ae314e24a49295bb546be4664d16a2cb76592c2cd02114efca4e2bdfac0c44dba2a16269a1f867016587fd13303729a9d5a1367bb9438b15339161d963371888149dcc3bda614055f4c5e34670189bae574853801", + "hash": "b1683257873e39aa1b5ed24b4237d4deea7921b59e46a50c0bf2cbbaad2b0afd" + }, + { + "message": + "a4b064f6ed3827bcab040074e106e09888520795b2208fd8a5eb1b82ba44e9878aa989f2cb72f2be722177aa0e87e579881604a5d681a472cb32b40f9dc95b5f18820c6c2ae18afa4ac73e326112efecae6d528016ec28570c8c28d7712d0191a30aa6f112c9d8907203cd9c18c3a2999969627d15f82ca4142edd2a727a08399f755581ca7894faaa0b102d0740733370a763bac0b35f1fc1", + "hash": "7bbe804e3c9915b1e564f1e8b9759cc8726b41787fb528811a1e574ef156486f" + }, + { + "message": + "9e6e2442f2b1f43344614982ffc8952432d9331017c1405d7300a1e08742d9190d9bd21136a3895d", + "hash": "f85c64ede0b72bec97f10cdab1d98f5ad2a908c49dad9102f95d8fd513827347" + }, + { + "message": + "20dd72342dbb431221ee42231e26dc0ca50b3644bf20c94a32f55968e727c2288aaea25957634aeada87d8072be2315b38ed5ef2019a884ad8cb5c2ec02b530d57668fb3a7e855be52452ab6c19be8df06166726417bd30eafe5f6b77aa3", + "hash": "a69ead6cf67b2e39142c040b18daa4bb1e217a48fc86a32d0988914d924effa4" + }, + { + "message": "4a0b6f3cabeef9a5bf2fbf88d5c31c6e61dad86eaf2497976f", + "hash": "ef545c90f1cffb0bf1f08eec7862c0e6c2399a8175be6d5f1d1d0fabcf547aa1" + } +]; diff --git a/test/crypto/sha512/sha512_test.dart b/test/crypto/sha512/sha512_test.dart new file mode 100644 index 0000000..de396dc --- /dev/null +++ b/test/crypto/sha512/sha512_test.dart @@ -0,0 +1,21 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("sha512", () { + for (final i in testVector) { + final k = SHA512(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); +} diff --git a/test/crypto/sha512/test_vector.dart b/test/crypto/sha512/test_vector.dart new file mode 100644 index 0000000..fff3fe6 --- /dev/null +++ b/test/crypto/sha512/test_vector.dart @@ -0,0 +1,151 @@ +final List> testVector = [ + { + "message": + "0273d85416ac8a078f111c636233e43853dab3d46a179ea4b4f658bd594f99f68aef0e4b4a76f12d8ec541c792322b85384528fa2ba81fa2b5d4a36f95ca87cf491eb491cee27388d2a71b3d985b699687be5fd3a4d3d1e1961d4866b515211ad6aab7706e2a79c9e7bc0e0dcbf023d876a7f0", + "hash": + "1d8ed7bd0513736f06b31e2c26ef9a93154645d20fde60d4b21cc980fa751f99db8b0170704c9b07278b498cfed56cc70772afdcdf6e36105ac8912563325854" + }, + { + "message": + "e887c664cd06899acee54c393ef46ddc3c267c1a035f258eb938d85ae33af09395a4f3c3f2bb3f8b44176e533d52d89c5df6cc0c66933f884881c9c6b0a21330b6c35c6b508277152f2e6a899d74879297ea8ee81300573b6a37dce6ce6889a459da70026e4bedb6ddae2710a751ac812b7e5b4039c848235c0ccbd86dfc20ba64fa7a1bacd8434206fb2a246a467c4e586760f4e0ec453b2715f2fa52fac2b0eacba53c17cf5085fb64ef92ac6a69129be24b5142fbf35393d79459748cd84724d1a8d223718553097d4aeac306", + "hash": + "49d80a50d4ea85c5fe318d62e5b05b63a5543b10b1ab36b63fc6811973e18d5ce6f60de05d435454ed8ea9fba28182edbaa4aa1c299a5b6e26092097aa2af25d" + }, + { + "message": + "fc671d657ac54b7512c0073d4c9773e62e2d9135915e82ae9236eb26d625ac80a21f7e33ebe87d80ef12f9e71ffb6758ca2bc0f978f3de6e8c236ea189eaa8654de789bc778756b2ebec0e00dca6ab268f670748c230910e0740a523530a51d072e26826fa835fed06d3b3c00bfe39d78c0be4305cc5a64b5a77b2fc63814b4c426bd173", + "hash": + "60bb512d11acdd4d05c7e5f1ae7b0753fb4db443af1e468bc730e5825e42627f9ec2baf0ecd5a693cbf032cf969639a13825eb704280ecc5cb379c151375391c" + }, + { + "message": + "ca10bde35d83d41386aba574c6adf2991305b9c5a65e7897972af6879c5c9bb06f5d6decce50487ca101ec8720191e1a77ea90a19521415de6f7fa1b1c836be590acffd9e4f9898a5ad4b7fbab5704fb19965f5e7d9e1c49194bb63eba", + "hash": + "ae9637aa7bab7bd75f8867675b4a1f1cc542084e69d9fb9307bb1667dce6d7822f4cc2e7881039741fe871c512db003c3c5174e36af5b991b24d46d0077df6f2" + }, + { + "message": + "b79316f230fe329ae014f53e17e45619b9d28180d2e5214494f7a578e62e42cee1d2e48db1138201da35f675f18ac2a0cd15baf874864c185efcbc2c934ec3e7e22f4ac8709acb697efe2be6a943cbd926d0f6db0ccb682bda5d9abfa387738fdfef294b523e05aa2681b0035a66e6b19d6b41b079972ce2726e733fab43066a03f27b539af6074ddc8b7e1ed00be7aaf12c09eb733a2d98bcaed51c7757604c59", + "hash": + "66b9b69eac24325a9b7d6b983fd64216e1731634c24d842c1a7939556409d2433663f0f3ab1c64448efe8269d80fd74b874430a7c0b2e18c1fe6a5c12794055b" + }, + { + "message": + "20759c070605d7886e23f276f1d0dee75e81f8cfa3f0cd6dbca5c3c77f8bcaa04795ea32ec4df1abb21622f7ed397d2ee682a436171226b96f31c9415b413e8c5f8cb59bc99eb711515d03c033dce9d88964714eb5c6f24c991978322be7e19a90fcde7653b14f0d5182", + "hash": + "b2658790b7e7a9cbad2f9d64e0d2a05f901a072bad9f38b650730bff0c68a134ebb8833ce578f3b2cf293254a067e4d95d4b7dc235ef9ce71d9c963591c8d248" + }, + { + "message": "17af4309675b8cc983d3cd2fb3e99fa333ad", + "hash": + "4833fe762085a4c5b4de5f7eccb291a7bb28aefe241adb66bc540f922a3651718c4cc8a0520c64517e4c7f1cc072e5519b917c1b2afe3c436dd3a16d4165a2d8" + }, + { + "message": + "45bd3ef58df63b71b4feae055538899d4e4119c280043dae0db0a5d9bf192f823e03e3dbe5f6d130117b5b731baf1b07b677c4b646d6cd91a5ffc27105d7f071d135910e099f2a1599d3e22ee4526827464188ad5809c3978381800a3381bfff99410e3185716229ab6cc494d685e97647fb3cd638f8f4c0c5694b11373b43d010e63172c54e7655ae5ba84b9c128834bf724f99bfe991dc2452a89503dc325c23432fd47168dc1a3871", + "hash": + "fb1df8293f1c6c8f4fc70ee5ee076952d40bb885775dd9f2e63908644d0c2bf7b774667bffe53a4c08b323ef5c61a3a00d7354b1a1547a8d75e7cb304376a38e" + }, + { + "message": + "2175981d8cf1e03f216ca38b0032c26fba3dea67a26a272c2e9d4ee7473537cd5085de29bfe6d7fd84c52f2956fb07f9ec8483a56ceb8bf8e492b714fbdf863da55d53fca5b086b8e49512f1ecde9472219a4eb65e61cf84efab15b9130c5806b6f4203b1ed2bb98939e768b2faf50e19a5d51dc0b64cc24822b440ef7f307d8a26ba9d050ff913ebc5ed5afb65715a8bf30b7cdaa9a36804962660f921d8f7de2dac853280287342246ad89565ff2f656b1203b5c1e77fb1c20fb899f163c192823dabb82c5604be0119a2e9eeef9bac158f367f7fc718bb02f41c2836b2cc83b64d9392b4ce7a9cf84d42a5b5b44", + "hash": + "528ad567509a985b4d94b802eddaf30b2fe546a52c88b3db24c4aaa2ee1fad47b83d9f0aa7cef5223cc72bf4b0d7c06f66de142a78c22aeff2f846c7a9583ec9" + }, + { + "message": + "66b6ab61cb86e7d2d42da540f72a2b366e003392acc57c3855132540aaf72e026ea1f8033936b449c7321d991d3ee0c7b8c5b905e232826f21ca2972b034ad5b431a8769a48cc46c7a8ef7e01e3c9fcb682d604ee0cb41d90a482f338e49583e8946e0ae2af6f167882b229b892b9a51adfa2d13986357fe2794d9753afd6cf6d0d543bc465d9b56439ee023972f757a5d1980ef64a298dedde02521afa0d1fe", + "hash": + "516048125dbb2d092cd02a0dd38f6b8cc798353fa176dfa295401f77e4427af8e61ee848f9692ecf7168fafa036d20e0b364a12e4bddc130b37fcedf99e8ea21" + }, + { + "message": + "066146e264365501c7f2b299312398cbed6d08dc92bbbade71f727c608ae2f10b9912e617ba3ea420d35a82f69c69fcdfb1fdd42573e08fd653bfa1b8cb3ea323c009b31fbbe63339203c4dea0cd71803f7e613cd35a79060d0b477a4e8540bad1d52d746d38393bc4a8b55ff5b09820a59191141160dfbb6a69f233c6beaf78058fc5ffff5161885374759a162b383d6f4981c2e1c66caef5bc8cacd280ab5454", + "hash": + "d92ab76fdf2d82ffdaaf6d661807f8e31111ff51052cfe95cef8546b882bb7b205399ff2072f0849885bdc78c2285658b0bf3718a25b495f96f5040e74e23d2e" + }, + { + "message": + "a2b3289785a56e5db3ed6ba3acfca14b45b9bc6792f671a7c76bf49351f3d41f04ce3703ba8270c7b97711cd5a53f9270db17ad3a2acaacb5faad5f0f0f152e64c172e3c55bcea0af9f337ff66d5f1d6e077077518400ebdd071cf0d3f4138499e605a4a5b61aa9cd11b44fafdbdf138457d22", + "hash": + "4e7c172ffddc4fce86c539f2f783d2fe8c0fcefd7202d98ea64ff4af74dbaee92eced0622bb2223adbb057ae7cc08418c5b68ae0e6dd070784d3e1fb6f7f2df9" + }, + { + "message": + "fe72f1707009a4b43c24981fc1155b12cb24caceb9f914504b9d4b1c6fdc4cb37a950428c84449b7c32c6cef9e2affbcdb64db29f9be9995772643addbdb0381b1ef2efabbc5a2b15881fa8d7242ff2b945a61a90141b4eb7cb61a71d80c714e3f0cefbb7d503e31a1f8e62e275e813325b47887685b873a6f45746f5d3ed4c6e2b20b16499d4db181c6f4a6485d716647bef11a7b26fa2da3645b4d7d0fbbe1861c4e857941cab8d0803e64c543", + "hash": + "16d3d8a09d15dffc931655795307448871665eb64d20e91b5ca02eda114ccc2a71690c35553592c460dfdc3d6c153d2c815c7e64ebdcbc4970724b9f2cd5c6ae" + }, + { + "message": + "dd6171c9ce819a09c397dff323e6824fe6e7e8a647785fdabf111835a949902fd0edfbdaf02b2bd7c6a91af146daeff80030ffee4927667962e4070df4664c79fc545c983bda8fb35887d150aed0a3867e1b9e7097d4dfa274d878943a2fde6769efb6bae9bf3ef29e26bbfe6700a521df122d7834ad4a046404c6dc5c1f3666114cd42924ff469b6caf60350bb90f76b5b40f5115cfda48d739c54eb7cd1dd97ab99107bde9284c632f2e50d25374d77ae8aeb63bc0b4fc9b78b116333e920f7dec1fb108d7890255addc4c47521b57899845b09b5a1bb456b87c5e262c48bdeaa767751a364be4e2f065eccd0ff201935d94ee3e6cc7c88036871350201a652e5af0310f8e122dd5bf", + "hash": + "135389e1116965f3bf52cdc95389c62c4b52b88f902c56945c2d0c35d7abe90ba1d25beda61ab99253c37214f78091a834034752de0a3d6bdd5aff877fac2824" + }, + { + "message": + "d04a3a30a74a4f92d1695e23d3a9c3fd28ee53f625e333927738438c04a6dc86e5c65d3e4fca59f0364e46c4f0896d0bd039aace4cc7cdfd30eff15b4c4885a8d9616baeb492b8e696f5e61a1d4633a108631c423fcf5005d52be855e16639f990278fa906ed07fa119a2b1e1f7c66fe4d18267f1ac95ec40c03b41374e17f72af60efe88a1725db6425feb677e18a7fb3e74eb7ebd046ad20e199dd788e4e5842185ddc730879e4d8e31ad1d264240e087fbb78276b2ae966e76b7698af43b2da51e778023bb1b8099793c8aa2e0003fac8c002b4a06cf5ac627e2ba1d38763ab9b0299a08b873d2d4c8aad929f3e2f9b76", + "hash": + "4a21b45504c5130d9412f9f8bc0630d2e407bfdb9417fafad0f4ee4acd7ff5f68780357aaa9d634d9393fad4dc2d25056de373ae259994e7b925c09af5045b6c" + }, + { + "message": + "4870fd1bdb771ec2e247cfba362b0b03007a629c610c402106dce95d69c001c3dfd90d32ccf8fc04019eda140c8bb8b681593a2b393921cde83c1bbc8dd2c089457398ba9a4ba2cc6b06fc8f1179fad57a3e88f669d5089566eaa4110de43830ce08feb1dc05e27fe327f856914ee19ea9dd5512b04112501fec2e762457799a9f4c5a1a9826f8bb5c6ac562f699", + "hash": + "926da00d0e36f0c277d99e762b36964a84e259763eba090e4920c647f7d4100e3029e26ee04465e4cf65c22447695e750dcd04f6dcc99ab75db7b3fe93de6439" + }, + { + "message": + "fe169e9855f945316b7e369738a75955a613e03b42a71fd51ebff18181b503d4c3290b56a96bcaac19cab281d899496c66959336fd150b6b2bd4cd054900f1acb19bda9c3a2a970db451aaa3f8547beff406869e3d6d5865906099058f1a1582cb63fd976efddaf73b975359cdf8cb6ef7", + "hash": + "07220bbdfab181feef2bf5d188dc40fc0df32269ff320a199dc3b2c28e3b212dbf2914a6d4bec5106186a7217b342fe7c27b2be4b09c2f3d61cc6f7d1e6ae60d" + }, + { + "message": + "0512fb9646c4f8e15d94ee2b891177324b3223ccbf2e5267b9b76dbbf7697294125b670364985d1f372e6f1c79bf69799534f6b654eb59640906b9b80e1754eb216cfc2cb5e03e0925a46bf17726e4ad3cb6dede6cb8662a2f346e3f102cb3c7bfdbce367d0961166607be05ca50ff7ce269b76551f19f1a6cd947bcff746ae1b98e970964ed065dba2dfda242927ae2fece26e7d0d4083e8c47c869f9b5e1baf72dc0304d6e609d9e5cdcf5192c2e0b8ae1d9", + "hash": + "1c8bcbc6cda64572097672e978a1988cbd803108ae1ccd85902130a8dbcc321b34aaa0c63fcec192400ad4f7dec2ea050a730bdd2afd79534510370a9d9bd877" + }, + { + "message": + "03080fc3e16647a3212b7c0c6dce4d54e86fd2fb85b6d117b9d54c308bc64b383bd062de6e03d2ef3f82353f65c10983c49957c219ed0d769ff56d396ff3a611ccc80ed5b9603fee092d0abe066c9c77bbfa7f3b4a23bb0a55961c4022d71d5d5156c2896687ab074ba380b665733daef5e58c9e59ce86ae92d472e0b59ac943b145f1647da3e85af62f023b04c334b9c5590570abb6153624be0c4fed", + "hash": + "9b466441c5a6d9e8313fa8024fd553352221581120505ca6a93583ffeb53198fba46c8fcc495031dbb6175d683f405996c4db30cc627e828136d02d560974028" + }, + { + "message": + "9da34abed1c224cf40912d4aa6df63791f5253a52dc0c0ecf04ec85a82b58993eb8fe4b85edc61f83edbaa1fc55c10bbecf2f3732eb6d3a08421d85a2da3a4e4ec78976908c3a54aebd201c0a8c051203f", + "hash": + "470879b4cede1aab3d7c6a607b62f225b947a47fbbe8e8a2e7b49928bd4f0ae94eeeda247e82579317481d2c1aaf3f2c50731c95238745defe769a6f54d5e2f4" + }, + { + "message": + "abaaae16191f5d486ff928ebdf15ca1e8269d702762ae870c29ae352b1cce7fea8cb9c7fb7b414f673a8c397172cc2730e7cdec2953da5d2cb673cc20cdd13b8c9a2168cb4f2e9757bdd358493b20ebec10611c05197b10ccf19bbf7b874787be15002e9a2c8aa2bf0fdd2bbc6fca73d640df85f6e9409d141d4b4e46f15308c6ce38ebe368c41aef8bafde22e82bcd5fcb398fdfbfcd8cb3b0f255fe65772963879f98e68cd9722bee1560db63bd23e7dfeeb276e8b41be87f223702d531e4a0547db2011e8fdc32c", + "hash": + "4863929b8a55c668b88d0f7bc93b76b9af3f1fac1557f776f05f988026635d0f9ab08c5765d9dbda4b5576f8c7305743324c99dde343163748a0d9c4d554b575" + }, + { + "message": + "af3804c4924cb5d64d8796577dbdf0b2f4fc5ee27ef38151705cebe2176562264534767388e8148b428174496edd8694bdde4f2a992a98fb08d336c6aab5c6eb133e1ba4273be33688c6c9cbd3b2f1c83cec763e15b76c1ecf9dbbe6c1af77ec65c5225f4555af2197816819c6b922092f8e2d6f73490ac11e9e1cee2d4f918ddaed5dd26f9a028732cd9b45403cd24b1612d044f9417a23079f7fbe9a7692281e36cc217a29692f088c64d8d14403ef1397457053ea3dd7308167a8ec9b5459c1beea3583b25d923baa54128168936156b2ac426605", + "hash": + "4f4c9aed49d3076c2b0a169f4f5a6f37518590a60b8efcfef5ac1ddfe10a8cfc826fe60ef808197e59e46af703c5da25346b368e9eb5adb7136e69a06b916cff" + }, + { + "message": + "3c2924f8c1f1563e338dd5da9d0e945a676cee3f0afd1bdd0f694433862b7009c927deefef636238639dc2abd65013c0efd74edbb2a79d5005f5f40088af532899a2ca40761b16de279407dd17b43925ea9f14d2e2ce94e336d6d340ba0a599b016db9040bca31cb5d3ccb9f72016edd0f0a473b9bfc328ef3969bb3a72eaa15a9fe1618a996ca6cc1d491c098a32de668b14acce7d671b1c399c6283dd75f6930d7", + "hash": + "84827fcd994d8e7e34f2531c10af9d6fca00664077c5fe3849f710188de014de978637333576dc628245b5954775c1ba2f75c048b57ebea072de1335f7f08ec7" + }, + { + "message": + "952e2be6946375be3eba2aa2f1fd42d4ba1a04e160e1363197569ed2a30879c5149fbcb4dae9ed0ceacd82689785cfa06cc7968955a93e0b75649e20340d037b78116b0b750daac3fe6a5bf266b104844855b4ab35e4c43edbcca274fcb5cf3b499f4beebf5393e068568ac37f3d9ad1541ce794254e799a7ab57ef5e5985f6d9b1c5e8455c5d2f9967a0d7bba44fbdb3afc076e679a5fd121f2a71d", + "hash": + "d0ab19670baac5fdad5f1f24c25f5342044670966c2287b8e78dfae5df7c6aef59cc3cffe8beea20e80ba297e7a8b41487c79a5d8597d11c6f2a88bf23db31fd" + }, + { + "message": + "436272db40e9bf40d081ea45af73fe1f9618d1b3cb1654041fc38e4390f8555264b4e6a9b2a3ba06f0c4d3013329e56e818803c9475f4ca7e9390b1583b22d0b09361402f5ee0c9a9a9d", + "hash": + "c000c4f321acfcc21d2c2c8bb6e0fe2797259e6421622289ffe6f629a0f4cc8f573a9c2ac96701b4e03b7fdb1ea458f3845e94299553ce797cd302eb39db54f4" + } +]; diff --git a/test/crypto/sha512_256/sha512_256_test.dart b/test/crypto/sha512_256/sha512_256_test.dart new file mode 100644 index 0000000..e4158d9 --- /dev/null +++ b/test/crypto/sha512_256/sha512_256_test.dart @@ -0,0 +1,21 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("sha512-256", () { + for (final i in testVector) { + final k = SHA512256(); + final message = BytesUtils.fromHexString(i["message"]); + k.update(message.sublist(0, 10)); + k.update(message.sublist(10)); + expect(k.digest().toHex(), i["hash"]); + k.clean(); + k.update(message); + expect(k.digest().toHex(), i["hash"]); + } + }); +} diff --git a/test/crypto/sha512_256/test_vector.dart b/test/crypto/sha512_256/test_vector.dart new file mode 100644 index 0000000..beb57b6 --- /dev/null +++ b/test/crypto/sha512_256/test_vector.dart @@ -0,0 +1,125 @@ +final List> testVector = [ + { + "message": + "9f5a6fcccfa911a4cd45cd3f943aa5e088f6607090bdd08f387958d9bf68f9fcdd825eb1b3d25552d212bc0e3b9ba8ef28aca388c1a49deefd6a52bcaffb186486276d25356d885f8d22d2fbdb9b4080bb36cf85b7b7448b8b9929068c0708a763813e79a3f17a2127d5662e4353b16cbb48bb08038b36672f77135184ccec8f25704d1b4b1e8ff588e4fd99003452dc97d9", + "hash": "06771a6387b95401ac42ef77a10fa13004bb8457aeee6097561caf8e8f41cd2e" + }, + { + "message": + "320c97bd982e89122fb2712429499bf0b9675a3604aa5b68230d3e39f42b43fc8c88d3090de67f1d857af1f4a62ec84ab2f2e3adad57689aca9b6c4938b4fd20481ba59d4fa78db9b299b970952cc9fbc3899145c314f9396538cae642e8390a3eaffcd2ea523305f48da80082e4c6d6557cb4a396f47e58", + "hash": "d19233faea9b35e78e08a97a007819277661b9789b2831a1970f36d9a8025d65" + }, + { + "message": + "0d3408b491db465faec5c8c39cb6834bdbfc9cf8ecfd504da2d2b25d2dd7a3a95f56358f646d3799ebaf4e04f80b91e1393a3c4aa1c8e8a2502b5790741690de2e0d", + "hash": "dcfaa6829e481a2a83051c890efafb1a680552b9b92022d2bc4cdb4a4515c592" + }, + { + "message": + "6b83a3d8dd39cc023b791d4bf952f4f014e729a543125aa2fd625169e643f1bd788dc1768660bcab91759fe3e84f66311799ed6b6bed6773280d1c8616e94a75de6e795481de36b38edcf7f316bb89ce27146f09a8b4264edc6782f687890d5e1ce9f6f82a6a835bfa7772fba5ac5c64dd1548cce8da28653b751ad7439435d8535411deea59eaab205cb166d3a800fee9375fbd3d35502fa04b1dfbcc5e850887fa9b29483d0ceba8d8b8c0a56347f8411e1645702a193e5939b4a96f60853226ef8f", + "hash": "a24ad0c87eadd2f6387c29f20af6fe184d8b5606f863438a6ed5c8d4104e8035" + }, + { + "message": + "2569c2152ccfc1f6335267ae9a1bc10e9da62e280a3af57852c45f6828f678d445a49c279ce9d1c9f3b504edb447e96d88c3178aeb9d4334c8a127050ea1c6fe04e0b3f054a076b3f375f3", + "hash": "730b9d7c3aa09771298ac6ab8d41387c21518dd07c8fc60a9e04dd39390749cc" + }, + { + "message": + "b3e64f04e448d944908d4f1e19bfc8a4f2f3cf8cf51b600f609909a899ccce755ef8cd3909bee7abafaaf9d8aef86f7a448a10bd252111d268b57411c1cc8022f89b92e68086ff812fa53c9461cf72ee07a8e0bb9dc863431728e5a7897e07439c525c186a0c4ee343b6a107e237afd1987262bc6c9da02ec7def71e22ec2ae9db9f05aef07e034d69d0c1efbd9e365cdf6157e1659ba76f3fa025324228", + "hash": "c57f0e085e25f41ed0da9cdcca6241b897823385306cdb82443bda2213e149a1" + }, + { + "message": + "fb2011793b519cc85a922cb1ab2ac8dbb739fb1c215d7b09a6b4c383caf65549a6a6b54a9f8c93eb085b7cfdc4f9d32ff932f9dc0cd694090dd34e10472c7b0d7ceeeabd63c800e385c6540a5e7a075907326c843e484a6b4a4ef253b3", + "hash": "fb3c895672aec84137db94349fc3fc2add0b791dfc4ee23bcc0bb42b118c662a" + }, + { + "message": + "5331aebe7a051f6f4ff440b5d4e61c305e7cf505c9dc44c30b65ffd1327935c7bfe8878972c81745b7fbb718b265824dd76a64f7b200318b1346a315936290c7d79d49abd2715c2e3c21c8a9790df1d75ee7d4afafe866dbe9950299434714bdf50afc0f1ffcba3da861c4d6feb41de5d94ade80bc0eacc8e8a4506660deecdbc31945122fff6d96ea55cb5f48ad62142902405ec427ad26512961fbba03b48cc75e8d4a730d3b75bedd32d2c7777061742a76a8c1b290279d7063f001a1159752", + "hash": "00180be42453242998630acf22cce7faf8905a127e4956d776eb6df97ca8c263" + }, + { + "message": + "a268aa1a79883234d26d3f8426412921baf6cd413aef14bee898d90fb4aeae00fdcdda2ebb23c33a8e9dc298aa", + "hash": "1ecf38db35dc3ccd1fdd01b4f58cd0ad6fe0581373fd6d62ca0f1221d49678e6" + }, + { + "message": + "ae8ab581ac0151f7df726d77321bc86b5bfb4b4e595f841f6c52b6e259f17415b5c35fd39f522f167711e838dbd3f3c749b016b01a9c813f4bfe57acc701487d17efc3d9a2d13029c65c57b38315695f2190640539a82bc5b8ea3e", + "hash": "03dda68aa871a0389ae55143e5521a41c5ba7dc2b8d9b88327b307473d35cc1e" + }, + { + "message": + "f1c713e1ae38c66ea0d132fbd3308ea1482d750faf6a962cfcd3454e2073a1c3b869665b040ae450bc967c08330b06bdafb8b606980bb7e418ff8e14d6898b5f30e5c92e60d7916e1b4a2fe263c158169def0164a308a9648d79c91da8fcd09c424824cdeed43929e3c1204506d5a1b67b6e47788ef6617c8d61e0ecdcfda57c521763d374625ae18cfae38a0438b4b8e48ed7b2817b19e15a829a1c21fb686d43dbab185e6474ad94fb9db9dd28b725d6dc10e6e8c17d6de8856e66024d2d869ae044cc96a3de0b28831929b7faff9e4cc17e76667fa904f82046ec96f5855f466181c7bc86140b1b96", + "hash": "e9c279c2f4651e3629b70146dd98aac6598e3f39ad5cb04362939cd14c715a1c" + }, + { + "message": + "84d560b73bb34a268ef885944b65a0b185c5abe288747079481876564454f49e22c3ee6576d170477b11d7cd689df2a790b1d8fdcb738cba10b2eb4bb7503f2560c5a66455f5bd5a07875f6a37bae33a8206d1c24f5a855175fd583e8cdfcf4d02b6e93aa07437b501", + "hash": "7721c11226037ca7a39218b65affa8d05b1e64f689c2855ec387369a62b5ca9a" + }, + { + "message": "6736bc3050edd1523dffac480c0b759af8f8be495695", + "hash": "c65422a60b8996d4b5587abfd6461d3ed4808801008e42d2342e94bd15b4d815" + }, + { + "message": + "26ee39de364d25eeac0e35154bb7940813fef508128d4f1837d9ba6f77bcfe1331d9b53564f0ae160b29b6196a294bb1303364", + "hash": "72165e38f466c98bccab5cdd1cbf35836fc574ae2f126cd575dfdbb2904463ed" + }, + { + "message": + "21cb97de51134a6b6240c3aef02d961c28274069651376705a459b3ad123c98264d95ecacaa613662b4b32c166a82046b2e8edc729d46a2c4bb06110e9598de966c79150f412ffbfb4abcb0c2cf042e7ec174d2264364358d9bffa3cf31f71db72f7df0a1abb9318d7646fb95f5cb759bc40219a619c470e4d234ce26855ba7a502fed315251321949816ba2efcde9c1b840b8c743b937cf44e8e72b3efc7aa199fcbc8afc0f85442f0facaa3683da8c4ee9bc4c95d0b019da54e10c56440c753591b380093d1203f04febc2f0", + "hash": "d479f1a1fa4478a5e3eabca9322dc9598486ebc5e6266a0f2cc8aa8926509c20" + }, + { + "message": + "223bfab5318e6b5f3fb9ded088ea78ab376fde5293ae0db5eab49492f86f64a4283714b1d36d5593602928c54f77f2dad8cc4aa74fe236fcf801f3f86f782a276289c0d7526050f0f0f1cea45831b604693f049ae664e0f1c0ef0ac130e4517f2ec9e54b7760bb1622e9f7df8d784dcb3d7bbdb60c3438c95960d3a03427c9cee4d0e59b9b0c15a699e461038d397cc69bc1b9c8097bda7120e84dceb6dd525bf2a1bce101a05f6e8fa8afd4fcec7c56a94c876322ecbceeaa123ab1324c85b35e8c89c83ffc40c216df9c8ec453931b700aec876775094cf2", + "hash": "b1755d06eadddcf6723549f507510be0d319fd0299b0ceb4927c0f3a932e3bc1" + }, + { + "message": + "b68a524330e2ac9c5a1a433828d947b253df56bac9b79d8fb7fd657282e52c3c8824", + "hash": "a339b472d0394e51f530fbfba0904919d36eb11fc2b1f047d4975c1170dbbc16" + }, + { + "message": + "f1330b7bf80669d5d479abfdd442fbbbdfda3cf99ab2fb2ae84226e7ee5ab1dcd37248711581f95cac850a54685b403401c34395cfb4b0f19c7a849f817bd59e8c933f27ec57d34811c97322c89a90e348c8de520962a7ad612965d8569c5337030659dbb0ff12c59a01d97a71cda67ca03982214615d070e7df289df2cc1902f65a4729f15878a55a33626525fc29cbf34e353ab46eaee0f76edc3b70f85db10401c22e575019ed67def197556aeb2f60baab77f3422055d986a51675210b17cd5f4289cd6d385648446b43240b67e8dc87bff91b51cfe3967ed8a668fdd06f1a785317ee1833e0cb639f704a8fb89aba3ed335173b3af8172357803e368694e781416adc", + "hash": "b1e19d3fc9470361c4c0b35ef86fc61c092f295edcb8ec980ad148db2a8c9ee9" + }, + { + "message": + "66794c78d4c92c22147611dc86d17301268c535eeae639a54f6861418b2ed12c21bcec1a4f7bef72e3454ddedca01756f720cf8a1416c6284aa40f28cdb952ee0a58a8c038bdad7f82b4047a7979764c1ee0ff173bf8396eee96c3fa5e", + "hash": "416030b113a9ea60e48afd94ff01430ad238472f3bb9e76e6b2483256d20c173" + }, + { + "message": + "a48fdb68befcf4424d9cfd7ab18c437f7433215c43660a7ad9c80f5c5ee7a9b8287dbb8ac50da47befe1116600dacd03a1e595e3e2c1c67ba9b4682e7c558dbc04f4a4c0401667012ace316de948c880ebf60379e41547120161489691746cf9a5ac40e5b219201685822627347a54f8ee786bc34b39ddde3f3348da2a199726a2f7591f75af7db6fd315cfb32419128b1c64cd7e53c5f08c916f4d0ffb91e94d2a1c022c999ab5a5548969bab930efe4fe1a0bc8dec4567fb86730290a1dd1430f595c41362af1547e9d7b5058a993f23683be3e3810eae393bf942fa3a3594c0db8997442f55d870b9ccbd72d1862e79cc8b699b968be3656cc6ff2b", + "hash": "db2f01f417638a7444fc104e4fe97b903f93b86d29eda65dd102227c5e12adaa" + }, + { + "message": + "91646c6398932b28a7a2ff826d22448f4b14d14e737da70ef93f28da80d9d0d062dd3d023a6c7dc17f150a2c93dc1c684b0f33311f22ea458b690be990dc23fcbf3d7f500b3ba230763462f428d096f675678dafc77bc4903f2d6ec6556e5529d1553edd451fb1753bef634fe54cd7b8e7e7f46895288450a216b9fb154c79a56697ea5510b5c2146b295ea7b77ccfd782b8b135e562bb60ba5e361746a94a4a50410a395b59506eec03b21f54f97b4b33dacfb23ea584ef7557aaff191f1188ede8776f1292971b4f360209a95413a516ce3c0e96", + "hash": "993835d625ab737f5c50f0a6dfdfcdc9a93f77e1c639220d838380c7a5f0347b" + }, + { + "message": + "bcedf235fa97d940cfa590c8c8bcbd88596cb271df5bf7343b4c8978b04982cfd1daf632a84212ec64822faba0ad9901077a9fc586c5ee023fb3090ada12160ab1fa537358d18f9421fddb8a2a4d0e254fd06078bb23af28abc169e50a29a56f53d085c3888a4a3c78e1cd10534c9ece12f1521648366d7e07b9989371655153c56ecb5386d1dc3acccb80cd84e52a1b51438d49f198e3dc4a8bd351f495d5f04f24c6c9b712974b8651adefe4671563e4593f9e95313c3336e7b5cd9385ab322a0070c8", + "hash": "4790ab579d62914610ed3c1acdd266eb6e870f0841d64f085a686378f7e3a2dd" + }, + { + "message": + "c2ea22f808d092a4a140ae1e6e9566cfba4b4581d0efe45fa0b81f492716781c89361e9e47940213f7325c5b57362feda589322830a67ec8b2417f10696998a8f353025b9d87b41a", + "hash": "c4bc37d409a93ddaea3684d26f29574a74f6e523c337399d34799e030ca7647c" + }, + { + "message": + "cb15f3ee8c0e94683feb57aba9db2842b11da8a53ae18d0b8f1ea77de2c99063603ac5e65e3ea756bf8360edf88b8ae037b4644a946babc972b91a58d7ce89a691cd3a93c6ed6253d2a647b8525c2fbdcd9638de68796e6e29fc586924ded62f039f48fa41f30483be24152f5fb6620a5283047ade44ed5818230a907f96d6f6f72263e7234d5d5ce7115871bd42a9cfe83544a4d7eb0af9569a2a96f4b9f234bf104d7f775c0da3d186749de728cc2a2db8a6a3c93fff693cc763459398721dbcb825b117d205738685334f0f1e86b24951181af58fb4a0c1904d1dbacc7d143c355f5297896d7f1d8ee3dac6248d2f6a50eb0697", + "hash": "b2d15c3d4a1e585045508318134ffa0f16a602043bef6546adea621941894ab3" + }, + { + "message": "1f052d5d17450aa95617b6e5946294b4fb255287a3bc93d106cb6676", + "hash": "a73231263fcbf5242ea6583ba3adedfae777f7bbee0cba61f674ffbc156aada4" + } +]; diff --git a/test/crypto/shake/shake_test.dart b/test/crypto/shake/shake_test.dart new file mode 100644 index 0000000..58e136c --- /dev/null +++ b/test/crypto/shake/shake_test.dart @@ -0,0 +1,39 @@ +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; + +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector_256.dart'; +import 'test_vector_128.dart'; + +void main() { + test("shake25", () { + for (final i in testVecotr256) { + final inp = BytesUtils.fromHexString(i["input"]); + final int out = i["out_size"]; + final h = SHAKE256(); + h.update(inp.sublist(0, 1)); + h.update(inp.sublist(1)); + final digest = h.digest(out); + expect(digest.toHex(), i["out"]); + h.reset(); + h.update(inp); + expect(digest.toHex(), i["out"]); + } + }); + test("shake128", () { + for (final i in testVector128) { + final inp = BytesUtils.fromHexString(i["input"]); + final int out = i["out_size"]; + final h = SHAKE128(); + h.update(inp.sublist(0, 1)); + h.update(inp.sublist(1)); + final digest = h.digest(out); + expect(digest.toHex(), i["out"]); + h.reset(); + h.update(inp); + expect(digest.toHex(), i["out"]); + } + }); +} diff --git a/test/crypto/shake/test_vector_128.dart b/test/crypto/shake/test_vector_128.dart new file mode 100644 index 0000000..f60a66e --- /dev/null +++ b/test/crypto/shake/test_vector_128.dart @@ -0,0 +1,630 @@ +final List> testVector128 = [ + { + "input": "809b7bd7fd753f4659b7c1f52512c09cb463ab", + "out": + "f106e37e2988422164b0b9611a21d9f13057712344a1aa3578c832baf971be6d8046518e8dc6b137fb58a6b31eac27733b89f6f87c831037ddfb309254770f4b129f8d17f4cd1b734a9ce79f39023549f65658dd77fc1e5f1c84caf208f072425b26709822399b47e1cdad30c81e0ee7b7", + "out_size": 113 + }, + { + "input": "188a5e066d197deaed20e72afad48bc50857b76518addecf69304a597eda3a", + "out": + "99888bff836c17cfe45bcafa5d2cd56d737dee7df5ce1c7ad1cc6c931fb3d62157b096fa041a29f534bb7d85d4e07d121a2ab29519fffad8c986b102db7f719c579c5bc37b9873f38c543563e765f7761cd6007689c1b6539211e27df41bcff73abc9e007eaeebec00", + "out_size": 105 + }, + { + "input": "9e4324c6b7bf5abc340b1a1432623c3ac9", + "out": + "0f9003f2d8f60e444546038234358a28a3208086849331a7b9a302ec65a89fdcc24f8926154e22157f1c24783a79ea3921a24452240f6e9d3938250049230c", + "out_size": 63 + }, + { + "input": + "567c9ccda8a79ab909427840dd369d93e8dae373afd8e9bdb0901049904c133a1db5", + "out": + "9f2b65ccbca6072cc8ccc96a84fc60329e3da39ec741f1bfc29672179544fa6e6baf8990c00b1c3b0cb25515c1b64cd39bf359d129beb555e46b3f99cadfa97e27e75bc72b96710f49c4345ccf2aaa5620a8ec0c773f26caa085dabe780c46244ad3ecfe88b6f18446ba60b30ead3a368dbdca177044d4e1e4b2340ff72d24d573fc055990265c8ffb4961f60b197e43", + "out_size": 144 + }, + { + "input": + "14c395db11b34aaa5fdc8793f5b5902bc36eb0ddfdb7963f956ebcb0abb3e5ec8f39dcd7", + "out": + "dd11aefa2133d92674afed3bac21adf70b68c82e4a9ae3ecdc1acc527023927c247cdd8632cb2a9657f17e1e8fdc69779ec0b6c237f09f99cd208df840069c36a2dc038f48f1b618f735003fffbed29bdae5c7a8f11e8259c888598977a6088da8639d9e151608da031c", + "out_size": 106 + }, + { + "input": "062fd1f3789407e7a6133ccdb87bda", + "out": + "3b5ec93961689af8eeecd9223ee95af801477d7bc178fe37bc21c0f5badd384ef4b9eacb47d392b018a8531aed47b5b6bc6564410aa282643c2dec", + "out_size": 59 + }, + { + "input": "2f37f7284645a0dcf0a6d002d1b91137e7", + "out": + "340230e2c7d746e7f6f0da5e3bc200137b04b0d46aa1871b531a9e629e6d18b2c3600dc574171fe520de605875b2d1d81cf85bf383031e13be4e89c65364a86a20666c0a9d49c65f7685088528c80c324d6e20a6ea51463227d82668e92a36de948f5be44c5b860bfa3b826477efdbf381453ae9eaf92c067f481f95d22ede5b898143c1f9df499275a3ec5af285be27381423b5eb605e19ebd3b1", + "out_size": 155 + }, + { + "input": "df5e7e02c9ce775e8aca7f56010f98b6fefda8404b71feb3b9c334a39517fc", + "out": + "98f9d922a34123177ca252a76dccf10027d1ff0415c7fe3cc0cab6f7f12b1226a8853ff665e35c606f2140", + "out_size": 43 + }, + { + "input": "a3305a55676f5bdb21547ac74ba30dd7ba62bdaa264bbbbb419ea525a914c4", + "out": + "85dc9c34fc5ac187704533829e087c2c9086b8f93a07b438bc6ec44de32d8738461e7371eaa4290f42659dc954216d2bc505b74c42effaaac8f0890c4e8c2dda89fdf7a779d5937ea4bd7e24b407170f3b0307dc829ec8b17ff3b96cbb947de3cc73c0e7ada668be345210682fed2e9128725f7e457deb657532eace93", + "out_size": 125 + }, + { + "input": "5a6cad61ac9cf1eff413", + "out": + "5c18503cf8320c3464510b0dd053c9aea39c63674eb90e1d8d018dd035f082f543d08c05bb925ca58295e535cf335ca0e71dad97c14985768851e9356719625edaa48a21a323271a5a9c14f873f39f7ce9f9355f44d580419f7aaa3004764a91e8428cf3020aa47066c276759fa21a278be65a6f92fb71e83141d779cc749361edbad90e9034443de4f214e3fd0cfa8e6e459c3c240c033e22d2439aa18a7da8fce0d03be9b9", + "out_size": 166 + }, + { + "input": "44863003a4a90a5950", + "out": + "ae2689856b5306a623aa88b57ce8a690a74d5e572c1e8dad16b624343368a0b9162e96b0ed3635290c838480b9da9a4f8bf162262d3cfc3c772a492cc72e33a99bc854c1778e46b6aa19feb28d", + "out_size": 77 + }, + { + "input": "23fa4a0118f9ae47efeca8", + "out": "63899043b2e331b4af5618f211dec50a33107beb70e0794270edb879", + "out_size": 28 + }, + { + "input": "ac14d6d2d2241e235f0aed51fb5767b87515dbf2a5", + "out": + "3187e02c1478e790468c20a68543bf524135cca3808c3f854eec011e627b91f1e0f027df5686172cb1a0c8843f411a95d1a5995ec5ee9c8d80b5ce3475522b2dac1e6ad62de27022409faea6ddf94d421a7347517d65e5ffe8f775e9634afe", + "out_size": 95 + }, + { + "input": + "83245562bcf7ad05f829cd7d2c80d3cbf3b4ce945c78ce6a629d4ef1b8a8df374f88e51c1ef9797633a7018be5", + "out": + "9b0bc898edfea29fcb374f6cfe3801e64868b256b365085057a0d6d1fa401f097dbe99e4f748", + "out_size": 38 + }, + { + "input": + "b1f1e5ea2f4d0788df9f8750e18134191b5c1757c979cb68a2e2138a5030061dc1bc73bf011299a07ea8ba7687e6d217d30665cbe94d954f", + "out": + "7640610745d133b15494db9b814857bbbaa27a1cfab7dfa1d2b030516a2d8a3d8a4cb15baf83206be13edd325a56def82bcf51f9bced647e60792a7aaafcd5be1ebbb4461d6dd3ded38d57a2d73f333c608559f21b9cfeaf603155e148969f72280bd7ec28b37ae770853c141d59225146a1f39842cca175f4dd6db3c97f70832645b35c10dd53d3d34d9c03d04ed1fa2292b67472793e1ad819a235b653a687fc86c7c35745e497b98517bb2465e65c618d5cef523e3cfe65a569107225e8dd390ec88f", + "out_size": 196 + }, + { + "input": + "da65636f25cc0ce09b84207b15db51fad3214dc1bc52d99886013452917e93759a25df43920aebcb915494da5fcbcb", + "out": + "55643c8008682a042b93b8055ce446dacd87dd1f52b1ab50f01496733da4b5dc46d2ba34c9826c2b0cbf1b39162683a519364a9594dd298f1bc237a3b9cffc878ad093f614c93e2fc38bf98c70", + "out_size": 77 + }, + {"input": "fa917ae84037e544", "out": "6145b12d25", "out_size": 5}, + { + "input": "48d3e16cbb38c9c087253c8e77826dcb9d9764a326e6", + "out": + "26ef99bc45f180203ce4f77eb523d09d5a68dfeb6381e9e52e44b7e01c765e898a92cb67612eac45f1de51cc80789f0bd8262b8d2bd8ee85", + "out_size": 56 + }, + { + "input": "9b4d03728eff16a0", + "out": + "d00526f14e2b2dd4b461fcf658b5e6d59f0dff3deede5f7af42e68cfe44a810d1586721a26eb10208f47992d74", + "out_size": 45 + }, + { + "input": "8df33e74c1bb0f9149ec34aefacf46", + "out": "4e243c7485e7ee7dd673c3d01e26f5a9ba5ae938", + "out_size": 20 + }, + { + "input": + "4a06a6bc24419c8043e7313cc93dcbdde5960fb929a1bd54969ad7061c70785633e61ee0be02ec1ed92977ea23a3ec363e8fd0cc0411", + "out": + "68c1dbf4d659e5c7e87d6b6a414e645e81525c45ac17f2e4f140d5939abe21db781f4347d27be4c5dcd5fa953b235ac2cd56d2bce76630b90e2dddcbbf50eb70f470e900697745e2281cf572c081345e8474984c1e3ea9ac09fc426f9e920acc819565e9833a85a290b9f963b98a7e979b49c43d5bc4ecf4a9dc763a30d8a3f307e3", + "out_size": 130 + }, + { + "input": "8d6874bf5edb81f753cf12c8de11401b6d85866097f358", + "out": + "20ad263967de5f8906f2dc0d04ff129119689ad922d38751812bfef2320f9da6561b", + "out_size": 34 + }, + { + "input": + "1a3db69285e376a6696738834c7f359c1cf244385504079c05442c415d0918a2470ea1fa7db32609be04a14a4d3e89f1e6f6f7", + "out": + "e47f5c15f38061a4d6bb79edb8626384123636788293baa75b2d2ffc25533b07519983bfc79877edaaabfe08e6a00bf7c3be66d5fec8be6a326c086650086a42ceb6c2b280ede0fbd97c381252ea24e1cccd797fb7480016b2f8c8d4148b6d008b3ec4b27e911ddea2bb69e05dd5f5f0e322d4b7639fe65852cb5ec1fb12abbedc34bcde89c996f98838b61bf48c2ce0eb911e8a46b76460bd1583c77caa777c9215", + "out_size": 162 + }, + { + "input": "2797205fa8811bc79c86004eb20860fee4eaf783c910cd8b10630824edcfe44c", + "out": + "ccd85fcd4e6649292d48ef3e3664bd1f68c9b7f58813a145c1a8e665e8aa233fe6c8bd972969f794b72e7dc6aa19a8f105631e9a173a6c6d3824bff5dcf089144b531c884119c7fb820d079ec9b5421d3ba19d6a4856d1847834c57c10dcd9c99fc91fc3b05e7ebab46f6fe37b", + "out_size": 109 + }, + { + "input": + "3ecd80178e3287225f9764a7ff9e7761f9db56c48566e65fce7a9bd6c2bb1013abcb5ad2257af52d6481deff45f8b3cba97d548c227f4afb27c52cfb898d9de9", + "out": + "ac29902ed15677fd12f22804091fa1b53a86b568334a98d0151d14b4f2da7f8aba1bea9a7f870a", + "out_size": 39 + }, + { + "input": + "7f84ed0136ba815a1953d296ceb5aa5ec7715d92d2570731f2b82ef47c141a5cc148b316ff8c", + "out": + "71480969d22fda2a3daf10d7c2f3039dc3f443aa9177759fb1a41937f32ffcde3ed7ccfb977e2f92f987f58fd44862a16214a2db9e840db92e92b7650f4d390d5a05dbee90d0f3744839af3f44088589954354470f021424ad5a884b4fdb4f45ab15655c72bdf6f9869a356469d2fc", + "out_size": 111 + }, + { + "input": "fc5b4cb679f0e6d3aa6d0c388fb5", + "out": + "af6e357b5c95c5bbd49decac2663bbb79a4cbc58e32c9c4221f24bdbd4b7e7b6057b54d3a48043dcb6ecf1a5c2dfad39f65dab636e2430d86e4cc1738b54cd0ccac88d05ea27d67f23b551beeedcbcf32c76e97c74aca6bbb33b215c259c9226552a0d203163afb0483003c1b5b929ae643fe2ee13838b29402d48413c1e49fa631037ac8d97445cf50a4e1dbfde431c1b232efe74831a8010d8e27b3c6c0e1ba4e9c8dc261e88044efc61383f7d2ff4e96b58e7c91a9e9241f4", + "out_size": 186 + }, + { + "input": + "a33051857c6f58455eb99c4c51c51f53fd1cfe1806e8988f40138efcd103ceb6b03ca9eee39153f32091e8329f161479ec71e830b8fd", + "out": "e44f2722585c877426565ecd59da8835858165eadbbee1", + "out_size": 23 + }, + { + "input": + "31935eea0b51638eba07b57132efa102049ad669158500bc4ed562098ea7419ff513f464da979a6c3e55b77d9bdef148e0aa35a36a27", + "out": + "1c8f5bbe8ae4636c3c633a11d92a6c55730db76617c488b6f3de51e8e9ee996b6c7c645d0e7b93061625ba64c348823f1641b6f782115afa41ff09adb99819d6f217eed22302e97eecd6f4ae62ab78feb068f42a640b28", + "out_size": 87 + }, + { + "input": "736bb1", + "out": + "a65217b1dfb01d52e5ef33b36de0d22d03962db2ccbcbe078ae39f7ac485d9f8e35965a56d1873fd4667ee270cfef07c333c9a4572e5d60718008d00d1c36e95d17c5bbbec43c1c6d491310e4d5f6d5f599ea99f7c0c37ffe95a9c7d0d91626feb38ec1362826df1afec5abde0cc1f3480dc6af4071de5a89ed8157f58bb8513a7f0e882dd38d54a363fb1ae24f9ed913b720bfc", + "out_size": 148 + }, + { + "input": + "71f8e3eb279f21f0f9202d3f3aab3504b6f3d343138cae903faf4e0c4ca5032ade4413cb56a163dbbe1ef9f0a7ffbce990", + "out": + "3ed8446a541b35cab38d5e878bf6976c9d22eea66a5933e5220f3c0b1aa5e11fdfcb1b50cb40a8c46f9c6102c8636bf69f4307a3a54a15394fad787df433c4f99e19c40a74b03d0ab80c4e14e499d7abc2b2fd44cbe814a26acfb8441f7b4854ea1db6c8a807954cffe6b2885674d7b284aa95c64213db6207ce65dbc59cd8a870c018bc46d93b499e2f535693e971133a39aa2099132b9ff0799550587a", + "out_size": 158 + }, + { + "input": + "9d0fde79086feaf600664eddf429ade2a83c415acc389920d736c9e18bf50d209530b2486ed12c68ded07b74", + "out": + "a560c2a9beff6cb3059694230fe021851df6a5f3ab4eecb63a386e2d14eb5a86b745752b3bc53d18279a121c1183ededc038867ef091ea0a885ed4e1eba3", + "out_size": 62 + }, + { + "input": + "a14306778a8e52f896dbe5c67ac887a205f241ee2b9a0530bb0e8dca484a00a64670", + "out": + "0c8996096afbc64d5cb87b8ba8edafda69a5747c0c5d2e32fa117623b9a8b98b2a57a4af0cd39078249ac6ff316169e0d80f3ba185797066c21a3d085a6a344c465a677b6fe571435c4bf70ed35c160996f958b5fae02bfc6135aea0a3c1", + "out_size": 94 + }, + { + "input": + "ebc795e73c22171a7a915b89994ec9f1d91fb0914edb47ccd45497c8a1d15209cce8", + "out": + "41d583bb0cbc0c0ee45ebba72895fa9a865a14948d1834357470638971037b39187af5469b51a7507a9498460d4fa69ca51d133283920fb3ebe40009725a5fcc5b39c53af48c2cbbf292ce0248b3ce108a0afb5bead6b6f65452", + "out_size": 90 + }, + { + "input": "8cf1b867950e9fb83fc388581048fef5d3c37d77b1e62a14", + "out": + "e5772b08440de832dfc2c24dae36ff2322b70b3cdc36b5a68bd72856dcc380290e96fc0fcb381a1ba8fb39", + "out_size": 43 + }, + { + "input": "60899104a358", + "out": + "19d78e075a52c20f521ba4e54e6ff561830b8c77fc7f3b8287eb87ad7ad6ecc6a3682252dd5eb7958e10c8142f7d436726aa46027a06490ba7c607fa64b49ce5d744ac5be005731898a6be274059354052f608e2f8a4ac91022c2cf35414daabe4fec1af75eb2736fe6ae6a5b2aa0c4d0749e65d728aeffd932ae02630d22b41bbc1218892c3b29ac9b6660f51", + "out_size": 141 + }, + { + "input": + "419533a843dabaea1638d8052bcfb6d2c29386fe6f38a8cca297a92ba99bbeb40c", + "out": + "ad0bf5d76ec0fac22bcbd51144239d33f9c4d106392d9c41c024f63d3884027dc1e502f89e21b80f3e1dac98e629941168c9e711a49baf1832f2402bd1f1969b928faad5811fe21f35565fc6009baea781338cb291bda91938aa43c67a7fa803bf122de3be29d0b5f1dc84f5596bf5e89a9f6e1449758a5425cc48cba175e2cc17ebfbc806b59aa27509221be1a19659fef59be19652a68fcade1cc1c6bb9549b612d78b5a5070a85d35", + "out_size": 170 + }, + { + "input": "30bb5cfd79834a3f0af115ddf6f3c1aacb35b03154ce3ccc5579b9", + "out": + "a25deba58126ff38ccf0dfaf9a6393b662f85dc3097dc282e8a11639eb1a57ae698b4ad9d50d751df72cbed9b81538122e8481320cd3498a0d9e46", + "out_size": 59 + }, + { + "input": + "17e66748183b7bf461f2632264550c6f311140c29897ecaee7a7c80781f9545a64e7a379cc1523a9b013964353", + "out": + "63e556fb32aaff93ceba46e40d1c6f677d7c0bb5f9096d8c59d8906cf21af93177a36b686c7aeb72f7", + "out_size": 41 + }, + { + "input": + "672c371af83f4673aaf0d59aad08aa46effcddd8847654a9e7a50dab9da6cd8cdaefd68aef", + "out": + "caac43c37312df4e18069737adcfa3e622d447630c42bb139c16f47769da217565197b63ab7d4e5148f435370d00ccbe6a55fe1105206c7e8b26f07ff20001dfbb249593a0bf488e68f72b02fca0b7e0c1617f8eb441eedffd6ca10aa413b1fbae05d2a4f10104acbfd731414de65a67d834a7e77a224a291ce5c5bd9f6ba1d6dc37c442a8844306d69707c66f13b0debca5437d3fa41303e72aeadb1494e6882bef612b26122ec6fe8b858633ebdd42d1b19f77b5aa40ed0216", + "out_size": 186 + }, + { + "input": + "fb46ee4b720b5aa48d16502e8bb615c59c6a402bce46ec9c6de1e1f843d426bd7760c5e08bda6b37a39ff3c06e", + "out": "940696fe6c2ccc2550d6516899dc53c71d34a894380bab882b417582bfbf", + "out_size": 30 + }, + { + "input": + "3c30cbd75f77d08cea542e418540d04002227692975229b3547a1109e8aeb55a36ae8866ff", + "out": + "2fe02611a1f565096ae530aa9eb911b5dc980f70f4398a72646a8e19e1e771d7b7fe95f1d12e62d2352a419f5fe0dc59562a7f1a1ba1e64452f29db964b1ab838f9dd00395b88c44ef9bd4c564e970bac2acd3310378c96ec802b4a624e29c6d6868274ed38272f32a9b46965cfe72ab9e18be9fcf696bbf99062d0466b1179e22a1045f37ae01aa5a8810f42535a4c01dfe8bb6", + "out_size": 148 + }, + { + "input": + "1b323c9819c5a04985952ed8b5bf72db7d14c354d1eea36d8b6d352b1579e326561cfe2cd8922b7b332b65c480cf2890", + "out": "2e5b9c9ca88269131fabdf026c1f230c4cec9ec6c56e7c9c1ea87cd4", + "out_size": 28 + }, + { + "input": "722248de802cd92d4c73bfd15c565d590c633f0741cf59df1ca361c04b6054e8", + "out": + "a2585ec51c4726493962ae1594f7dfc1f66052153414a465af8d6ea6309c5180061fb807ba8072bc71fb", + "out_size": 42 + }, + { + "input": "82e2", + "out": + "a19f34bc3ce005ac8d9c28718a9d47a51d6bd36e6b389f2be8fd4a206385e627a60b667e970c16527eedfb910666bd03b8f2585bde49901b52ca489d289a96763d9eff59e8875acf294bc0fd8893d3932ce683f91084cdb0f7243c33f6873402b28ab4a1d554360876d51723ffdba0ee6b7751670da831390c4cff16ea91ba3180c3e96cc065a3568753cc4342", + "out_size": 141 + }, + { + "input": + "a5d062456c2d47e4933e00f7226846091f9476187a18750af06f4a8468a66e48a57f3cf09c8765d20e", + "out": "38727c7304ba13aad32a01c9fa93ed79db82a1748fa035138c251a26024ed2", + "out_size": 31 + }, + { + "input": + "f599aea348d628d63abbd7fac898206fd159783eb803920aefa9c34d33e3b3822626bbf94a2fc2afa4", + "out": + "34cb0bd6f0db3b918a524ddf638ef79081e83f7d6fa179ae5f9565f83cc6fda530d9ba6b84d1f48265a2232ea6a6a6e97380c12a81bb22", + "out_size": 55 + }, + { + "input": + "c0fddf63264dbd8103b5a92361cd4e5cf19f5e3be234f82c4c458d3c22b88a2a65c545842297f28f71a5897dc9adcaf1ee8202f658ac0eb2ea4d27a93e6e08", + "out": + "83c8d196949fff733f7b2efe760f55f161ec7fef45801b5326134b06c22e99b7353bec7982c786df4fa435fa7e643639ab9a9ecd36c3d8a84eef2499d5a16c85da5dd986835204579b340ab328f0084df4067a6c7b3069d81f10d7dbc04999601bcb2b6beec3a4202442b2ebbd802a91c67cc98a1bc8c2bd3d76022bc8d70997418faf36696680ed040410904721c0adb24dd646a79536a8c6ff27c1f3985a3b3d1af8", + "out_size": 163 + }, + { + "input": "d39326ecd71bca1d873eaa", + "out": + "db1dfd3f6cb01630dd48b33c8170c618778a1eabccc96eb594e63ea036ef70dd4cd8a4093356a11300834fc23ed875c67cbc7246fc112e66a6da29bbdf755e41b556d451c1570118240265b19bb1401a5a59195a8349df50fd6f70e351c0f0421b9f2c103b0c6e0c50ef2d90d5b142a2912894feacdb128e1a180214799434", + "out_size": 127 + }, + { + "input": "2f3fff248f3cae2b85ef203bc428", + "out": + "3473de213cf9f86b8243899ce3bdb5a96888e866126d8fc2b5f14b160fc83f69bde27716206deb5d15b99fc761c1925032c6950b0756e7e926fabb315902e7611e51a66d594386cb3de8f628a32d79c35c204acc33d440348b3498eaa3f85287cc007a1d1c", + "out_size": 101 + }, + { + "input": + "33f04e9ff01af7433f3eacaeb2b8e764e74026808cd4e45f97b5ff75589e0765b68ff328", + "out": + "7cd64cfa49690201309c8f9201030713329013aa7a53c50060aeff145f098e1ec805cdaa48ad03124b8871a13e5d79ee56b54d06b9de117e27c38abae7570b95ebf8325b77400601aeab46a968c0210dd7b659261ff38a5567ec32d00eb225ee6b4956d8600ba4734369ae25010685afe6ff", + "out_size": 114 + }, + { + "input": + "5c01f6f065673882a767e0da7917dc7d4652f7e78e714235f261bd74458ba8395b90949b16c9b7e048e450065d565001df9f459c36f8d5daf05a4b567dfa02", + "out": + "be67720642b3c94061e3ccb226ac76080f61b27b2382882d8da43111947c48df21b3e32204e959e3865f702b03c1a32a8099de26070f3f69bdc2edc1b446dda10408183181204435251f1b4cbe15b3a434ca92635cc4c3cdd67808275d490230d05049434392de03c215e49621d7c325f81263a49c377495f186e68731db1d7ebe406330327cb7f39864f2cd0440f3ef6d22552528079d3e978b606dc134d87a05214a87df", + "out_size": 165 + }, + { + "input": "814ccabfea5c74cba8fc8d47cf1eaaddaf", + "out": + "4f0691a420e1db5d695ea5c656eb12fad2ef24154644446eeb0c842ebf31f3079e62f7cb6d4e88cdf1135289c24a94ec10c177006e67528741912aba54584a671a0433", + "out_size": 67 + }, + { + "input": "7d91c1385b0b4d1ba9", + "out": + "1f83abce370a69c405133c0841a38e675b49aa3af828ad8078d306938ad6f72aac16abcc123fc783ec11ff22f9b7cd124f3c1b5d3262d2643feeb5324208487e4eed5201795a8ca44653bda25ccc44143215bb35cdb1f00828b701081a9a7c50413e12750ea2e0d5d6fde157d1c2a63d56ae46210df67048447db6783835281f0a0ffc052193e826c6c573ffe5147f7a202fda96f941fb9234706f50659b38f63935cb6927981d6b2f7f80e6ed8300adf434be", + "out_size": 179 + }, + { + "input": + "5afbd3e52c18b17636d2ac85722c78fe4b2b971698988771e083395bed4700b432ee0c7e55251e0ad97bb67cb5b9", + "out": + "f3ad9f590928977cc95e0d35743cb069d0c6ac83bd559a2f8c1ec8035cfa66e2e225fe73f25a93b8a7ba72adfa2f62d10aa68b072fbbe601f19681e141d9cf1d654019323c1a2681312d549aaea3041bc33c97c2accfa72d6d3e5a5778ea8a1e36e524895d378e4f55bf6f0458513694c57e9e5a5ae6b77283803d516412cd6d786d57ea04f7b8b33d61ae5d8d1f4b27a5de", + "out_size": 146 + }, + { + "input": "a35b87e30ab7a77a2daf78dbd77b08bbece63f499592b9", + "out": "eb95fafdfe3b988a99bb631768f68ea1317f7ae98088ac6f49", + "out_size": 25 + }, + { + "input": "141fb5aa315b8be8aa", + "out": "bb1ca37cc7c89f410a135761dc40dbb73a451e7e1fed2f1c5cac3a061ef1", + "out_size": 30 + }, + { + "input": "1a81dce79a1f0ccb0735c135e484f78dd830505b", + "out": "4cf78f5d194dd28ea70c885cc040f01bddceb5b8ec1ed202d3d60d428c35", + "out_size": 30 + }, + { + "input": "51c974c7", + "out": + "2dff6a9fd054c6c9ae38205dd9ffc3d3f1758f2d22a77a828ef7c1fad578a99311751e7990f51fef432d2a2193587313bdb304444125171aa87d5ddbca7143eab596c8f5d7", + "out_size": 69 + }, + { + "input": + "d81fada4c56d8292be8c8b203c483ddc6b3718b5a8ca96c97c2fe7099dfdd60dc73023c19dadd40ddd72", + "out": "b0c559", + "out_size": 3 + }, + { + "input": "5cf488ed934d0805aa8cd7594afb", + "out": + "63661f944e7ee0ff201322521f1380d577ca8f1a528dc3ded55df8add4dc89e0838216e72818085d57e8bd63686bbe2bef178bafba89f431964fc970871616e4a33226b091df22c06ef50bd20b961d3c574369db1de0e80b4864f44858cf72ec42e54610238015a1ecdacc1712aa9830c7dd9dfc025791f5a3792d60a1a96c3a2b717f6532529f1495b5", + "out_size": 138 + }, + { + "input": "768d6656ddfd72f1cc94b12b5efed5eb6fd0176250", + "out": + "66e9495ab8303ceaf1d10b8ee55121bfc299a4afa08f656d84fa7195dc765471a83ec9dd56891f2104a6dfc8cba32e25c85234", + "out_size": 51 + }, + { + "input": + "9ceac28917d36d6344c8f86fd5198e9480262410d55a66f293f8f999319f4f24c40718d1f53a745da23195d89b6e9dbceeb20fe13d3cc765237c5d2844b6", + "out": + "d05fba089dc5503831c691239cc61232c2c586cde64970b4801f2a052981ee7fa95321a7c2dc679c33feb74d3e9d4d473baf1f89fcf649ee860ced1bdf82d566b4ac8dcc8a08d4ba1851dc9b9859b7176a06b04e2f5aefbf0a2f9c2ab8a919f5da494a0d73151f07560bcda55ef36345dc1afb91f0dc9301626cb6626dc37d4100d48a1a50c536fcd4ce7498a78838dfb88d", + "out_size": 146 + }, + { + "input": "d407b81223bd892b2b3d5f", + "out": + "278dcfe448a17537c23664186c5286a03d0ce4a1cb06fb1b43bcda6b8f1e064c3faea748a85959d37d4e440dfe322259ffdd0455863997161199ebc3c57aa161d93d42fd3254b38cabce6a492e96c08632bb544589071b7594d385670152481ad06b512aae2d5641ff0ba99b8febeea716f18ce8a28b8cab56d095d016e2398f7a393fdb9af25586ed284b6e4cd67f3eae38054074b64557f37a59350ee1d3", + "out_size": 159 + }, + { + "input": + "395e483a7a7b22514d1c175345a5359982950105b061d62cc6ed311f38b4cb53f5", + "out": + "c9590f7108c047c876b9f066b30ac8529a54975997fd97cbbb55ccdad7166c81fad968841e40029aec5b1f7f927634c7c1448577ab6f4d026319fb8c65724e5691314a8b6d28238d122c8f6f85329f7962d1256be725e5b4a947a083b22c4b9147bc1a5eb7e837cc0795e4d6ac05f0a14a5e52793af8c9ef66", + "out_size": 121 + }, + { + "input": "262278629e0a", + "out": + "87a42de9b1d2cfd38997ec306d30ab3ff162c7701a8cf9f2528f5050db052589735788cca812e3665934384bd075003338a02becaca0a4017f3417dcf9c853ebcf92d0b2a40df5f4f8dc536c2b0556f99c1bb6b9d61a3adb9401766a9797bfe1eab30e5e482cc1525a448433049214f32e07b487284b3e7afe1e41bc5311c1540dc074fff4d5d0ba7096825391f889412bc4da76b7ff9a54", + "out_size": 152 + }, + { + "input": "0af81e1ad0a1311f0118190508cd", + "out": + "417f6da92d1fce7c436f79ab6ea862c39702f298e99d1f0f6a6b9c51e54abd814d486ed25804eb831825b24f48bea7df51defa1761c25858cc636c81db359cb5a5b88741cd2dcdfefa7132e0ed8f26eb316d78107d91eb5a7ea9cbcc89bf6a6a80367faff7c6870ab13d052724b782ccb0ac269dc7093d524f6f813ce0404aa2ef2a364e9baf", + "out_size": 134 + }, + { + "input": + "42120b9db10619db2436f007871d3394a708cfc070f92211ad267078220eaf0a0f86814edb35946887a5af80fc0c6401e9de7c8f232e30670b84a55f321384", + "out": + "efe51b5d943a3ce0fdafd7d6c1d44853066bcfc3d64db97efd4fa34849b97246c709cd5462a7a491607cc892b6a1dc06294ee5b5e4ca4f328afe7e331f9bc2", + "out_size": 63 + }, + { + "input": + "25c3fc6fdc47dea30c8306a252ca3149eb9e07880a275569b85f453ef4112c076778a22b", + "out": + "b96fcd55b7269a3a92492b41bfc9897ec8e0c6071cf3f47050d9087180007b39e61d3bbdf0127c7b57bb0a189a1140a670", + "out_size": 49 + }, + { + "input": "3424f24bba7b", + "out": + "2c85d761a779c23d750c13230e2a8c53845e4bf63dbda48792a4f0f60befb23cfaf7526a0d76778d9b50090dc78909224f41a517661d7587f0d9ec36b1ba4d01ae80b59fd752427f72ab8cf0be08d4c3209e01c515cf7cc5d76d2b584112d14ea4", + "out_size": 97 + }, + { + "input": + "5b66870398f6fba28909fe7e0ae12069fdeff097c37b017adca87681c5ba41b17058d9d63ca763e6d42c", + "out": + "eec1263b64a53af087982d58f50409d7be5e8d349db4455ad7b3762a752e5f42db291ab37885f1475d35b718458391c69d1ece2e4fd4e3f1130dce3ab3b9bfe4cb65e55c3c074b92451874ff6b892aa238b2f78657d15d3b20969d0154f73c221f6d51075d61c3d0c4dff4ee7ddf12ab76c5d1326cb098e45a37adfa53b46c6f8ce10965564e7eb7b6d705c01a9585824bb4811462097ffacb8d9ff9485cca8bfe", + "out_size": 161 + }, + { + "input": + "e59df506dda15550059a6ae420ad9981825029b77a7f97c2af6917a96525883febad", + "out": + "9a05cdadd3285c40a43bb5ced6daf6598868a10bc8c1b5432324812390469a95f67e101f7ae12f25b1323cfb6ff3b362940449e37dbfb517e263226b03d61983b7ac783af40ad3eae385906e17476b8a250b8c6de5013b3502ea26217b3968089ac5f22af79ad029aa86ada32d20adb41d0ed1433003de5777260ab3d55a08a5b3da8660adb0147721e4016b59287dd8ee231cadedb2c2ffe310915b37beb198d4e02329a6efa371", + "out_size": 168 + }, + { + "input": "681cbbb6c954e89b4bb4cbb7f78f0044a33a3efdeaa370c6ad7eefc3", + "out": + "fdf00f432effa2512f6235650b5b5cb35af43545172853cb512385933e0d3dd6d5b204f45bfdd32f76b648a4022ef429786e89da3b51110d91328f30ddad9c37f134b28418dd0b6e53b17069aa91df7e281c3f76847ccb9151c46665e99da0e845fbae10d7f1bb8ed129495a7be4275485f2da72da88b30e16a0cd54bf9028e095f761f7993b41852bddf5cc9da6a8aa00551cc1061d9c09c03d05", + "out_size": 155 + }, + { + "input": "e40d306df5ba4b2b1b2d814445e013588c48202d3d59f382906fc18e0ec274", + "out": + "9b5cc20ad293da8b9e7c9712fefe96c7bbe91413c417091e062d79579072f7a37bb7b3fa6dd7e08806269dbbcbb73f1980ba076463dc173fb9fa55656efa921ae25311af5b104d97a8d5c84038a82718fc47dcfe57a0a1734ecf727160517c4db5abf1ea599d5cf9e1c4db8b9df2ecdbff74fa75971c81f62c115c072c8ff5710e19", + "out_size": 130 + }, + { + "input": + "613088ec745bb0f39025b7bb92bd2a6bea699e1f37253f9f2e17cbb9d98d38f6c06ed6c020ff3a80b6e13660", + "out": + "3e08514a26d94b32c69f1efc3d7d3e31edc20d4e2116343b742c40ce5a1cbb58c9e6e9838795", + "out_size": 38 + }, + { + "input": + "ab81596ed82503eed1e2ca761468f9b9e748eca67e7a1892a8222d748f22eee3397fa711207f710e92643c88", + "out": + "1a70f431334c7006b902298cd7394626061c6c1d2b6c37b76dbe5068465258a55c3d6f159fcaa8d85e5479ef993b3e8cdf", + "out_size": 49 + }, + { + "input": "34fc7b13584af0603e7ca0b3608292514f4bef6b3e66c9", + "out": "7be21753188dd1cbbe3ffa070ecc48372fffaacb6a13ca44723b7c", + "out_size": 27 + }, + { + "input": + "6154f3256230dec7acbb72d3f1650815a2527be87ff9af05bca5e07194d91008272d73bcfe4b877c684b90cc83", + "out": + "5e5e41e17398165cb698b0fec2d0d8a58a3da4c86026d9905b706412110d8d2ff10fa80d8a7e8accb66c70df9ef4d4cb64b36966bff287e3f07a3541", + "out_size": 60 + }, + { + "input": + "65f4da3071965efe686ff9451e68790c354afe83b6b00265c42cadbdb4d05a860de3691aae8cf44ab7", + "out": + "2189bad4be3eaf40169260e2085434c2f0aeab67ff69b709984175a12165b08fc9880ba97766408ff136386487f5a839981d926c7481f6cbef49ae89d914ab9b86d1d77cab40ee3781c0b51eca4b56c32da9cdf1574aba53eef13b4a33167bbb6cc9ae4f51c4501e1c925cd5c4e4", + "out_size": 110 + }, + { + "input": + "f4658eb35fb5773c68be1008107288630208892c398095b651b2a0faa3279bc63c00dc2f719adb10f141b5a957b5", + "out": + "830a8b958b851cad084cf24c5573ca59ac8bd8a6a81db843f698160500abab131eb98cd138a2dc4f05c40b8af851c91e789096b639115f8e73160767f38e43fd466e3a0d0defc187673d1340cee7391e6197c69d4809cbc3e856fa33012a07c1cfb15e16344bd3df11e23c", + "out_size": 107 + }, + { + "input": + "eba990caf679098dd6fa5a803c2808381812ab840fc2c3d575c62974cd2775533273c4b2560e580443b80fd477c91c6a8f774aeb58e2e00e1d1ca81f0029", + "out": + "2d7f4803fd2a90e0da0a3c330a05d6151a84b00c63ea707eacf2dec0ea60bad6043fff1e7570900b633d2b169e3fabea3eaf016964ecf32fe217b95dcd3f66b87e", + "out_size": 65 + }, + { + "input": "279b2dc00eec6ba4b9c3d55279631c283b1398f47819f86cbcacfc738a6e628e", + "out": + "10d90b5dff7b5d95daf615e57bcb6a3ce0cca4617cb04513e15600f884ebd93f84b01c50ec25f426662912f06b6d659423bc30f99f035fb5c479c6474f86a2f69367399b3fd2457ce99f1e910b73a45b77beca99750e8fdbe25132c21f64afb9066acbf128a02945dbf84c40f9c4c91b967f43d8d6f8", + "out_size": 118 + }, + { + "input": + "8dc63251400488fcf5c5f580cb2669ca5f5cc34965daebe4e87c92d4066f073be15e0074e391", + "out": "9ad5ee9e4ae02e5d8d0611", + "out_size": 11 + }, + { + "input": + "63faffa335602dc2ce92f6771e8df6e83641e5f81cb7eb6a4466c21f72d05e317cf4fc62a15d9101e98ef03e74e514f366a9a595bbe1", + "out": "9747928ade87a5c0ec", + "out_size": 9 + }, + { + "input": "10d816e10a8dfd", + "out": + "ab63c4739fe75f5fdfd35c3336ab099d1ab5dd41cb6e6a7829aba312c742dd8307562cabf463b4449f456025ac11e1c7015f56558a17fad41606f29aff6d1fc9f8464c05fde2f1ae7f57be8bebe2d6b3cd137def41c247a6716e1121a5bb21fd39128f1cff9e3e3ab895e51c631190326ce126cd", + "out_size": 116 + }, + { + "input": "cdd151bd93", + "out": + "bdb275b6741ec9fd875ca2283700e12693a190c7156c204a9fb51a5ebc9197d64201c92a3ccf63be30e8a11954044c7089c409d52024d44d3ad754b9d839b447c1438c82bce5920735efe0cac5a4d92db2022a71945c43f65ce62739a089758f2520f3d3b2659d47b7e78d5f45e9d4c424cefa3c8714b94fb8f30a09a31c36a4cf3f10e4daf79f44a2f2cdf222cacd49faab6ea67c6704377e4ffd8e24f9149dd49f59613ac73fc4e963d72ae4038ad6753d92888608ccaf", + "out_size": 184 + }, + { + "input": + "f18648f8c27b9806722cbff323db32b4bbf19bf3c9dd9f5fa83b8596fdfd45ca67f94ed7520f3de37fe4716896ea77cf", + "out": + "b92457bb5ec71680ac8ba702e12948a35d5a1c3c7ae68ead08959381452c7ffd2deed08712e4d9a8280013383c7383002ca1600c9a9c107650c90febfc284d7dc2204e92ceb2d2abd0b1168fe7c720923044549bee6d782f07f9f0a6ed52bdb0c309b8c2deaf1ce887fbb31e7cf953fdb5c6fca5943f3915667cd3326fbc9133904421d16f9ae4803f6e6d08083490dba62cd1219f9d37dc3e1ce15030775c1a2db04192d8e928918a3fd912c18324b645c22f89838d46d2d03e56815f1d25e5", + "out_size": 192 + }, + { + "input": "1a2a6dd6d483a06237a74e4d9fa239", + "out": + "cb464c4ff86623dfd8b7d5569a1cd377050536e71d3cd683656e3bb6b917394a309729dd83d172855192b16faf197306aff99d9826b897b03516f364ff69f715c8c4e7fe3167b052c6cb3625", + "out_size": 76 + }, + { + "input": "b6a462ceb2e3d98a3e2d1f5188b40693fad4d3f2013fa061a8999af9f78f94c6", + "out": + "0e566201c439f69c81d6a2d3be3d4ed7523170b2ec70597658e5697fd4b20417d326391b6e27825ad7ef831d28c7c7d130a6e96c0fe225c0506b0564d7137aa9011cca2720719c30658834e24f87db536541790fbff80d8f7036f40a83187cce71045639e036cd3ccb6cf1e0b9a192bca91395f0625b24793b6dba9d8db49a9d317c9dfcd2fd3a6228039fa65b854d7c1b5f295539d584e3c3b8b4051fdd6478712444206bd6039c68b245178dfc0202f77833d551d11f", + "out_size": 183 + }, + { + "input": "3465eb7ccd", + "out": + "caa2b7731f1aafeeb33f04c700062782e96e77ebae466a62c806009614fce671e8e0529fe140332f80981ee743ba38703732a227a6a5e3406c92229e10274391e39fc843ad112846f9b4", + "out_size": 74 + }, + { + "input": "4a7e3587942bd85e86c0e47fe1cd5afe6bb1a87f76bd", + "out": + "d57e21013cd863f4ef0dc8a1b4819cba6e19d1051d92b18f42aa9c9c692938e3da7d37982d63f66db3", + "out_size": 41 + }, + { + "input": "e0af8d6b0e0100293f04ffcd4e", + "out": + "5b2e2305ea89e96d18f7dbc113acdf4f81a25567d6cbbdeb8d5aad82aff60ddde9b0240d979f65f2cbfd7615c137511610d20ab2d50b995c2b4306ccfd2933542f35b589ec4a16b733ea35c1e14f622f38e7f7c6e56b666d85fad630facdf51617c5c45ca59a49cb84bb2688ebb444a4927061e290b3e08cf3378e48cfd344c7fe41120d48a3544efc0c79554e3d6a4fcf", + "out_size": 145 + }, + { + "input": "a7cd48ed6274fe1af6b3948d148b5dad6962", + "out": + "8db7ef92374add9048cbfe1e442ffcba338aa606791bae319af1f88365dc6419ba45e087e0daa3cd8dd9b7a1c280a4f847dd138e8e00fa183a24750608ae492bf1c59332679b69353147374c9945db9de3eb254acbffbf74e69d915068eabdf5cc69776ac9c66bbbc8cea662b9ef125be894f0404263b9144a960635a015b1e46ba7dab6233eff0a8cc399", + "out_size": 139 + }, + { + "input": + "3b3e6ecf8d4278fc875c79c4f1bd63e9f4e6da41f037b895ac7f641a2216d8528c016968ab75a804", + "out": + "8ea0561767e15c7954617b5a077176929a8908aa6416b9dec49644815221c68d0e317796bbf991b4e83090", + "out_size": 43 + }, + { + "input": "883c552e5938c1d2b36f30c503", + "out": + "020e5edfb1b05b9988b51a6ee925ba2edaf76908406ef9f2b2d88b68571e049f24729febb9a7accd39dfe8360728a017092d639f0a4aeadfbb41c2d7ab816fdf3f39749ce59911bc0a427b7eb763497819c481fb9f1a18", + "out_size": 87 + }, + { + "input": "cf0faee650af186691ddbdd48c0fcf6503a6599c4b89e6df32", + "out": + "ed7e1ffb0fdd23f7ceeadf2bb85afd40dbd51a7de269559d50139ca1267a0d13af0b2f774928b7e1151724f9454e22ce367c0bcb319d", + "out_size": 54 + }, + { + "input": + "dedb33d6610a51af15f138d3a2b1b25e90237772303b405f53f84e1f9b498f6c6a4361b50d6e6214ef422e5f5802bb8dbe8ebc111cbd4f5e49198edc173c", + "out": + "75d76e3c3c29e5155607126507614b97cc1557be333b4762f3254e23919319231b5fe842", + "out_size": 36 + }, + { + "input": "1f3299676fc75c05979922f2", + "out": "e4ac6c1ee470340ee3ae71d22c198ae7", + "out_size": 16 + }, + { + "input": + "addf82d1882d9d0ebbd15cbcf39ffaed46248ba48a61a7286478c1047dc2a5c054b6ef", + "out": + "b39b795ae3c504efdd8cf44c549382a305cc0efa2068df54babc1c5ac26afe809768ecd78f718f67a06282b05959cc04152dde17a31b53cb515c707601f44c7a5db5437d6840de60e32491f8e24ee8358e0e21276aafc7a26d79886b6c0dd75be0da2cd2aa228308a87ffea9f7ff5c5e2a5894ebd1c539ee5e8c", + "out_size": 122 + }, + { + "input": + "4e9a450fb7156be41642ede69d8bd364114d4d54c97b870f9a9903c7718abd71c697414afcfce33c0a39c5ea9e", + "out": + "1cdabd26f5221bfc4b02ba347e4054bec745b58f90b920508ae464b52f4153d8e079bb6c8216e5ec6dfb5069616ee27994b2633d78ea63a4c20c913c314b1d0d829b193ece8dae395ac1bc3f362a997b4e23c46c23cf854c0820509978ea5eaaf4f6baccf6e0d0648ebacac07348d2304395dd39d047add2bebcba72b84b", + "out_size": 126 + } +]; diff --git a/test/crypto/shake/test_vector_256.dart b/test/crypto/shake/test_vector_256.dart new file mode 100644 index 0000000..29796b1 --- /dev/null +++ b/test/crypto/shake/test_vector_256.dart @@ -0,0 +1,618 @@ +final List> testVecotr256 = [ + { + "input": "10d809a262c4579c78053effd68d89aa8cb1", + "out": + "431c1a0010602f886855406ed496dc3726858470d810428041716dc3cda87591a8ee80c0c15299462b4a3a589835d01239fb937a9a5d62d450974d7f6240bab0019b2d1670c0907c981f8ca75eaabd86e2e104", + "out_size": 83 + }, + { + "input": "a7a98a0ccffec68a7fdba45ed05eb85c47a301cfeefda5124d9364", + "out": + "f5b21fc16b1454b41072327382413c27d4e1f2c9ee3a8320217557e5e8a0ea1b0b7a345f2809f8179eb42f21093c79f6ea7454850830040f4573930a86356a283ed8ee97d58c992af66fae2c11c8d8ccfa03e985c208648d5df975aa57ebcd3832111b4b9328156b8b010bfea6b643acd580474b5314cf9d6cad1587cad59bb3ae", + "out_size": 129 + }, + { + "input": "2061752286ffdf1e87329f5a3cdd84d44b", + "out": + "10917cd9bcb106eb2948af291cc093306f3baadefaaa672ba613bb06f3e707e4e94afcf77fedbddb83633485395fd8b93f6adedf958d4f332151e59f5f53c924c54c824721779775274db12c6ec8ebba708d7399d63156f4490271c7704870de5c4d93e929daea326100adee8736670ac0", + "out_size": 113 + }, + { + "input": + "61f204c60eeb5e8b8e995816a04f196eabb06ef41ab10cfca397bdb80fb3da6a46e27fbe7c25670f1d798b64257f979c04963587cb029db24a8b915e3c", + "out": + "96ae61afd099eedf4eb600d737a52b6daac8656bafd35a2a6ba78f107e4665611bf168b6acbf97eb81de638c1208982583659b36fefd7f6d088ba2041336f38c456b14ad1fdda81b3644233edf96da746115f5d00c8317fd08942d070985bc7836803820d4a716a13ebb0a309fb5a2c82ca58202ef9dac96bf80dfd875325ad3ef530462232562365538839b78199e7f206b0c191dc21bb3fb80eb00cd22bde82214274e4ddee3d44a1b865ef6944228e225d40f2ddbc5c74b9df6346cd025edaaf887", + "out_size": 195 + }, + { + "input": + "44ef4733c6a873aacc97f9649fcf1df06d89b344540ac60a8b96916fa94c62bba26315", + "out": + "fd6497d2fb0ad3e37e3cf7b08b69c45fcc0c63ac114e3a3d0d833a04390b522548b84548b4d253769938c97f8b2c2563854f8513a84c44e820b6c3b6d510067df2553c50d5dc7c942401c49e1e9318533fd64426f2033bf3ee4f575ba7d78078286fcae986fba4f3ab60c2655e117acd71defa4ffd494cc4a2cb83d8312de94e89e9b22ef0aea28ca2e9da4fb97c3eef74d60ab0feba0da27b83", + "out_size": 154 + }, + { + "input": + "3d0c6d222253265098557497e80a9df6b17bec891a49a2ae6b293453a897f0757ab6b5afc6ea", + "out": + "723cc1cb067b736cf0618450b446407e6710a86e9379b11e8ac641747e62d8da186215f35db009ff6bb45171bfd1", + "out_size": 46 + }, + {"input": "0cd691c53ffed0ab61", "out": "de24ef65", "out_size": 4}, + { + "input": + "366faaba6b72e771dd59d1be5f96ab8b3f77cb0b6119a4bbb43806e260083f6d04756fd792a643755acc916f5782ee8d0b457d84d9c3b1a127a5a0da06", + "out": + "8b9f42392a931296207ce8e485fc39074253f76986d26643c3c7db58c9dca86b28bb8054834da9fa092802d5", + "out_size": 44 + }, + { + "input": "681ca04c754d7d8beb3bbd48e76b3160a7ebc18c7952f1469b7b97", + "out": "c8ec03034902717bdf8966a71fbe6fa308feda06e8f37e7dc5899552d54113df", + "out_size": 32 + }, + { + "input": "9cc0fdc40abf7d2a5748c77838c1d4df726d578e51f0f49f04558260", + "out": + "a9b975899b805988b85b7d7ee280ad424506f0d97ed46f542f21be9cb2f2860992d4790fe692ac888e695f26e72989616ce6dda457a29e4190e051fd220a8330e8ca2b50d08de6e57f57b9bf83e80ba8735eed6ac437594c231710ab119fce96e9efe2ab56ef08693d35309b6d3470b97e9eddc42b8e56ff3542ccd3b18f11c33b8a82e11f8308eedf0d331f4238", + "out_size": 142 + }, + { + "input": "2db2", + "out": + "b246b3562980c80128f688797cce80e3b982d16af1443380b5861cae23eae89973c309b22419e49ce20ca2f4fe7638da3759a52bc6ee4a189c21ef64ed5f027471d0073f9e1f5e3d2d0ecebe16b14b6ca0ba067401cd6c7c62f7b6c454a62135fa8e8a3106ec4999bb49887db4b9f6c58f08a1bcfc1d63d6dae59d0971de9b87de36a9eb87483ad1b4843c04a7da3710001f3f856cf2987eb8207f1ef4e8d0b6eb588d1ef3c3861fa5f5de683f1c9f6d1f", + "out_size": 177 + }, + { + "input": "b794be4d", + "out": + "125bbf7ab646c6c42776d4283cc9346979e5f257679d1b30c148005e0ea77096b53475c179db59e92da55eba0154d2444192797c1a3b782e14d778d5a54adda122b4f9d17b0456d143dec4020ee3b35f54605169b5f02a31", + "out_size": 88 + }, + { + "input": + "b32a25b4c613737f96bb0115a2449295df9daf07016130af9907d4fe21b013b1c47683e0f7447bf51f51490e691d13c30193b4ba", + "out": + "35ea4b1ceb337b9051d57d25c3db67f16fdf02c5727b2da144896883a353923f950654ee8012d38a82ee53006a0bac3b8d9f7298fea9a943e67c54014241f2c22db17e703e22dd8c565ecc", + "out_size": 75 + }, + { + "input": + "d2cada8445cea41f4196a1ffe1cc89660ef06e502956fc24eab4e16efbed0e084dc82bf600065fd9b77ab5ef42c0ce4b86e3e68c3aa9d9d1", + "out": + "6721af8683fec8e3885130189123a116ba98fe840a299f43b4f8c7bd1183214739e7f29b21f16f7a282bc33a5f640565badda57044ec5a1ecd5e1d676050d1187cc05e768e3d9b9a4e3e5df5abd2f4fba48aa8da74f927b5e29a9eacea3eee8d46b5aff765df80f841b19b429d69d7de1e6df1ae0ea1e9c58df6bf12292a2b04e9e2da73a72f76f80342d7b4e988dcbeea", + "out_size": 145 + }, + { + "input": "1bd886200fab3ae63aeb93e4a3c0f9bd7fbacc901825093fab08ee", + "out": + "efa12b72668ac38d5a973401e81660a0308ac76a5dbe49c11b6fdc2973809e5f7995bcd4ebbd697bdd143548736cfa49b50fab23584157a8ace5e7bf8d64719f0945c95f5148d4a2f7485db94f94d20440e294399537019b26c6167ae960ded79c0866c644ad295f057db694157f85a910bf4125207a73291dcdae3f424d2c5995d4f907aa77748ff7aad2d0efa2272a9ffeb9f7ee29afa516", + "out_size": 153 + }, + { + "input": "cfa29291e24f7e824f57851baa1445efc68f5cd4be2a277fd2574decdbfc", + "out": "9717d9c42919dfbdd12a2f438adaee2d", + "out_size": 16 + }, + { + "input": + "658287e17bef83dd632abfd2fe7a4988588d351090c6c27c59cef129601e9fa23f60", + "out": + "f16834028582a17f01099bdcbb6efcbc8b47c8ecebc9d325086704b6d0e6ee7a3b68fbbbefa7d33925a3116c3c28547fc372b0e0cebaf2bf2e612bc457c796a8fd52de8a32572d23bcbd24b7d75b7170d25cc195e7b38c681e368c884547bd54d240ee41b94f5fc21be1fabc76e271b5bb7ca66cbe8c83b607e924afb6e41b68a6f194467c0de0b32f091dd10d5c6d0b2486239a97f7c74613c465", + "out_size": 155 + }, + { + "input": + "8be6d6d623adafa47a35f70270b27afbeac55656fa997527c9b2586bc537b27bfb", + "out": + "2ba6a9337dffa44d0a592c11dedd16d54f773b9a3a54418176123391956772ab80815271cdc504de72b81857417d16e4bcf7a30d7be726e3d66a405f9c6fdc326aac0825f1a10ce74bdddd581240f5db3004ea360d19a04322eab3748dde05b085fb0edfd368fe48c5976f9611a6c37bd659cb95b43c244f104768b1e0c81c0319eea830222f9024b34bcabd24a45b0110cf0a7266e2cfa6c1cd2fec8adbb7b88d0c882dbab1", + "out_size": 166 + }, + { + "input": + "29e162e397040950a64efb00057a096ab8386e441c4ec4a23562547a53e9e1df0f12e2c3844558d41ec31785da39a669acac4504f57477b08dbd", + "out": + "bf1d57f3fa42220db669969101687be6d2117923541bd4dd3e037162bdf7abf85987e76ae165ddf9556de2a37a033fb4dbf16d960dff5344fa774698ecf04333d187aa2515b0464759a83cfc3da43b05a324497c62ae1f5f73e6250513a41b87324f0ac57952d39b07ae28d3e51cb3aa24ad1aec96c84327e1823aacacf8e4f457149488ded547effc157830ce5410d8274644de792b136ab1ce95e1aaf2524ac50cc677dad7c60c3a3d817df4c6e6cda07e333bca7c", + "out_size": 182 + }, + { + "input": "76654b6d13ad2fe5e58ecbc1ad07fe97e6147946a90878", + "out": + "0f43d569055e4d0672f1f83dbd23215ac99b39f3c3f9c909b5b9096dc43bdaa6c2d084a381bf8eb9e774c9ccd96c188f0c5b73f5bd", + "out_size": 53 + }, + {"input": "0d5f0ca0", "out": "df1870f064", "out_size": 5}, + { + "input": + "d84d4723127063e7d037d21153eb3f6acd15cfba5fd90ae3cff4b190256d699da1237775f7e70be4c380c978d52753f50021e60a7a0fd81003", + "out": + "2975c6a34534bec4c85df914badc4831a5657ec22a8ae4769f4c4a5734048c092978df93baf96c0feef8ad3d2cda543f69f0a4f49ec389a0db25b44d52f3ba2924c900972ef80c813873e6270ecc3344ee4cdf2a0fa5a4b8", + "out_size": 88 + }, + { + "input": "a14950416605dbc7fe0046bb3f9d05f8fc6ee555", + "out": + "6b329760564bd2e6918a95e4eae5820f7c7da3a4b719971d2e7e9f7e5c6b37dc1dbd6e9059681e97076bc3cdd0764fb0c9d55dbe3f25aa82fa3d5688f197cb3240c214bd9b1870cd688a6876ab345d0de45940a9c7e628094cedf2ab83ffa57bfdc470acac7835c12a210bb1b24b3a411524cd6bcf7b2a589495658ea939fbf87f9eec28d5bac1cc35d7c4247c", + "out_size": 141 + }, + { + "input": + "20ef339e29a868f300dcbfc91e95a7b87bcac2a80a409b7d5e4a3225436b67ecf8b7480cffd024fa63674108acd1f6d883a69558435a4b28609f02fa", + "out": "9f7919310e8d703122e09026d0850ba278da9b86d7d6097fc25b6330c406eb82", + "out_size": 32 + }, + { + "input": + "713be7ebb27a9a1c55b07539a837a80d9e93afc8fb186840ff43ff12675faa8ec8281e37", + "out": + "c1426a964e87513ecc3a8e169a7eb85381dbbad167a25c2e598be8511191d6e2d243779942eaf598394998d1de64a1aeab15630c3d8ac13e72cf3d3da22057461f07d0f1f40032a5747d5ef3de0f913ad188cb053f1cc9ee96e346820eef17f395d3aef7", + "out_size": 100 + }, + {"input": "ffd07d453ad0f2", "out": "a3ea7c41719d6bbbc0", "out_size": 9}, + { + "input": + "1465edeedd83dfae47327ce9fceba7582e344c8e8d2c2c3dabab50a5f9bb4dd88a5d512b0f41d88cdbb8690aafdc241c03c02e65b7232bd6b1cea0626a0ec8", + "out": + "382ad70de9b16cfaa3a04da83e0805556af3278848f8dbe381870be79d9c48c20930462fe167d6ffec56c5ec2543cd527ab135be98a41f20c622222228935eedb049942b1ef513df6a583093d31697f36400bac484aa4dc9b6afe2e338f4a4c67f1ccbb98b807ddf0ada459632f83b55f020ae95964d56b57b4db8ff73e5dd5430b415b47685e7bc872de5091a694c0dcafd3a69578268c9ac210c0007f080736d1cdf48285bb96a21de0cffa1db233b02562a81ab7e90638b1eb713862a7463c1128470f6a3", + "out_size": 198 + }, + { + "input": + "123ce61c9289bf770c77109f076cc4285aee384ed98a356683c91c2549b74169e50220da1bc1e3750d48e9", + "out": + "8f7b617334aebb0071ec5413958d0fbd3a053f18924fd4d7ad6d41e9930eeab5a5523e83df299a16b1132dd72556115d335c631509fc645b3f2fe627981f51398d0d68c35c0a275fb14f26a566e5fdbc3c1f5484edebe0eb", + "out_size": 88 + }, + { + "input": "45ed32fa1dd3d230538f155e7c940b2fa03c47", + "out": + "3e2e5d9468e31f93bda49390728455e6762016f81bf8a35a6e211826e3cfd40447aeaf22b17f8af0c8717d7ec714f79bc266fda38a45bac1601d38e862061a5380c5468920639c231b19198e33457e9f7adce37f889c0b4363b1e820b6116b7f805966085f", + "out_size": 101 + }, + { + "input": + "5f74630057d93ae09005d101774234bed647852b39a4ae0f1fbdd1ce5a5e9f0f57220c5f408a2daa900c840dc7376d9916f3adc220656610757827b937", + "out": + "6ff6a284502eda1c3c093097ff32e8acb07a8e99d7483a4448da3131d2766755e74f5e84296350a7bee75387067274eba6b54ecf524a", + "out_size": 54 + }, + { + "input": + "002fdde8968a6c903b8485333cc761d1e0ae6865a233d71dc2b31cc3dfb18f911108772c5ce627432535e0abd975d9", + "out": + "0c4e2fd944bc87314dfb7bc6d3beadd72e07cfb288508feb1b9c88baa4244339f4592aa22e75f2cd852f22a56bc1822abcd31ac286b0f19641203def08ff82dc419038e06dcad168f5854f48d20935f2b3cda229b0104b47e257ca4e6227662ae4a52ad6462230db819fdadf6d63247583", + "out_size": 113 + }, + { + "input": "20351a", + "out": + "7690e2fba1d2a27612ffcfc72f24a44229f74d71ef11e88ba49bc126d7dfa00b5051b1406e933dd966374d759f3310cfbb2f8d158ff36d1bd79f3e5dc197f119698e1b19f313a71640392e95e3c59d6eb7aeac4f5f69a03752a1", + "out_size": 90 + }, + { + "input": + "a51b0a02b444f8a6dd9c4c20498bc24cda30ecfb8573a187a51bb2c92b68e947491505e87d02487875f0f124ef", + "out": + "9a528ff06add3999bd846fb4c594832c9decd077bf7c33a9f294c9b54f43dd76a5916e4d32c28cbe3ed017ed1a96f9b7d99c33e90b629840d709e14d3536b8", + "out_size": 63 + }, + { + "input": "a3540f3693d333844942b9252b8d8c6ecb98bd2f6f5019e8cee2", + "out": + "28af5a552a6b87e69ce88b03e0f9cec3b42c2d96840b9f5e09b28fcd36395fd87b0686ed042683d3f25ab2542ef356685a674f3383319f7bfd47817d7f971609b6eaa4082883998276e0abecee0731d2aa97af4d2bfaf7579cd74b429b7274913f486c7ebdc5e67d7be0e2d9599a299c39b420a63a758678c1183e3fd87ce4063b4239ed68cb263dc42a2c7220b4a570", + "out_size": 144 + }, + { + "input": "d1d87d27434fcea07d47bf3fba65733e44d8981021f6", + "out": "2a0c8b738392aa3d32be04813aba786a32d47e87f23139aae443a5ad39", + "out_size": 29 + }, + { + "input": "f3b9b724760f", + "out": + "90df48cf2611829cf03f997c4f391d1066e4f3549980a011464cb4bcf67cb351f4c84dcd2372adfcf7f060742f6d4ee8b743c77a28395c8ced27f5331534730f825ea891a741e6a8d8f0", + "out_size": 74 + }, + { + "input": "0d22ba0a20e046aacff94953ab65dd4c40", + "out": + "77ab2d2e49da1f833be5a3498f611992878ecdf615c36eab3e4e22f56dee7cb4812de6b21d1f1ff40218553b51069965ae914e18dcf360c42c7ce52f7af43b32edd32fe3119caf871ec804f13e7673dd9c9613aff7e80fa8d08eefafc5c9a8e71c2d5aba104fde981b63434deec98f87a5fbb3ec27", + "out_size": 117 + }, + { + "input": "fd78329a6790c2e10f375898bb0c6a164589459822195807110fda", + "out": + "a086f03cd6b17329a91f0cd72f45c578e706911fcf04bc1790855f0ca68edfb0fc25f00c12a2d8f97d275a5f6a455b55c95604e5f94018cceaf127c7", + "out_size": 60 + }, + { + "input": + "3f2936d8ce7d295b751727a245a2fc60b8b10c9928c5c0844852b6932f7b6a4d1db999a546724469625746c0f502b3bc0abb53e9b8", + "out": + "b1a30e2a24e41374345b4c645ba000e0570d27a0dfad8062da4a5a18d5b32ab4b40ca73b946502077cb6afd29161daeeab0d813470457a08860cecd093d7ecabc4d3e50f81d6ea81572873feced895a9e5bb713e792fbb89d27f7893a9e39edd8ebab2261790421c73950f672e0d0a1005ea377659e609cd9f14414f30052f2c29d6826310ffda078926beec61ef87", + "out_size": 143 + }, + { + "input": "7ba077a667e3d4a6435ac7777c7bd497224c6384aca426af128c51", + "out": + "3ca8fbf86ebd8242d9ebd1da5150b9e1928f3468ef5168f4137e3858a10fc4e2e017cea77805dafd54194273ad3a5b811df0dbe84c70f6a968691359eb03f53dd6ff14555b65f90886c3cfea91f9d37bf72e72d016fda3fdb2f4931a7ac3e26cf90c2217e5a36a61785d0e76e97b3c2ee4330de0390d4255bcc120dca3ad7db892cc10e0a407ff9fa44e83348e731b6676678797aad537", + "out_size": 151 + }, + { + "input": + "ca9358c89d7e5ad3d07bb421f25e4bf519eda98c608e102e9617e1fc81a53cf9004c94d835a149e94304c5021a359d90768ac5d06373", + "out": + "9a34e99b4ed7ad91ea92975a49594a1623491a1393892680f9b18a73341ff25fb3543611d58b5e934a6e6341f37937d24b85328bf1d868abd90950d447130202a620c9835658378780a50d300fe6ee38", + "out_size": 80 + }, + { + "input": "afa9652c80b297208f3234", + "out": + "5aa053036ab0af393756b3608bfe634468b7f214832014f2febb30311343f0d9322968da8081fb84c295445a7f0703cc13eead8eaa6bf0d3000cec855816ba0f6519aaaa52ce3c22c93a547980d75527ed74272983e594a1891237d217011cadfec48571749b58b9227371bf0bcd65f7e70383", + "out_size": 115 + }, + { + "input": + "7c49ba9a0f3d8d78b1b99fec47c3c70f522a2f44ea4e90a6c985587722e66e534738072593ceced1d4cdb113f345f66a6a", + "out": + "d86a998b81e95d54a5102e7a4e7d66f29edb1e4fd0fba085639ead1a8b214c769ad888b0d80c0544a69a5480b52424d91b468abc1a8327ceeb5dbc28570225cf97d0556cacb7d825203e340e99a94fbb57b4a1836f94aa74fbcf73c702414c923f3be88e09590ce0086749a034622c32ae35543af2d598d67bba1634bae6ad40514709b29d01010263d9c11141d004e3", + "out_size": 144 + }, + { + "input": + "6e0de581cdb1829dc02da199ad74d2a923d31fcb4f5b12eb03479e4aa62d2f3280a762a77e63d9a39e3a1b9275b6c2", + "out": + "d1613f9a468e089c54ccd902f302a3ad97b71dd42fa2561810c4350ac6fbc8f973da2f024964dbae4582a98a2f54afe66d129883e205d92940c184d199", + "out_size": 61 + }, + { + "input": "d554333082887d89dcaed4841e4830b2e1a6b213d8", + "out": "ccee49", + "out_size": 3 + }, + { + "input": + "2083de32cc36bdb739db050bcade241686373c06cc698f7763c6c6488d71b3d60487e867", + "out": "5d3400464c1731bdb7f37dd64f", + "out_size": 13 + }, + { + "input": + "0d55fb719159927d9f37a99bfbdad97cd80599a73ce40f61e956f84f8710064b74aee2", + "out": + "ddc4ff39d7706b4b0e0b304a86944489266cb0757a9cf716497cff9fa8bd56181007c40d3f5593995ebdc8de703520c74578c0a06b97ac74ebb57a1c6ccf73f7027627d4a9d495940d8f475db37734ebc884cefffc8665adca6a3c35ce9a0ef3fbfb20cf1355cb677dd7b62e1c57e4cc093c9f2077867733163bd238ea2bb5f256ce05f0cd207122b02506b7d37b644b4b674353dc919bd34f634966", + "out_size": 156 + }, + { + "input": "3d8deaa2e8e72243", + "out": + "80d9983f52389d04ba45cea754b09d885b4c6824f7eca03454bc9a3f033c21c14f310d8dd3da0904ff", + "out_size": 41 + }, + { + "input": + "bb88c488b29f747ef0ee63f1e64fd38591a1b3b03bba3a5abb8e195eb1083b75ea4262a3cbb288a6fa9e755c8bd23a9db76c92bdd18d8c537bb90bcb69", + "out": + "430102216f9f8242fa2daa806c1a88f600b92c4dd8361bdac5d5bd894cd4691bfa917c79c7c1c6eb6128dd6218d169d7ff4e421a59646b601d885c412aa7a07cd51bae38ba39195cd82f23d672a269cafc26bdc620caf0a4f52d86cc6e169902ce5ae2061013b773611c344c71fc44c49b24247c96b95363fee787cc7a032cfed2a5b2dd7b02b53d2a73f3c552c5423badc0c67b68a4728deee2f5f4fe4566e30438ce600f815cda0ca5fe399522a3c0218355c83118b71b2ee43db82a", + "out_size": 189 + }, + { + "input": "c0c064506b57", + "out": + "215851bba9080310f2894b2b4df70d0b4b1dc1644f93373c9342325184c9c7d7a161dee0c49b62328bc0438920bc06fb4cc8c1c8c49c07e3231f112304138dd7679c", + "out_size": 66 + }, + { + "input": "060d8dffdbba46eadf5246888e2a819fb25cc21d732be18164d77107", + "out": "ddc1dc98ebd95934a90ca80cf86cb89a", + "out_size": 16 + }, + { + "input": "830ef7bc611c02c69f1a0b3f", + "out": + "ea962b0aea5ff07532bbb6fa791c59d33455e82611647fc28ebc04ceea0eb96c84baa6dd8511554791e6", + "out_size": 42 + }, + { + "input": "9497901f33cb029684b62981361f", + "out": + "87cdeea2676e5863909cd8c1328236cbb125d401870d3e74dcd8e71c166f3bd0e907513cc4afb4b2969a81a1d4fc0bbf1de2f0c87444302a0aa77a7691650833c3aa2b64d58c2efad64e89476eafd37e65849fd3b635022341a77267b80a5e457e", + "out_size": 97 + }, + { + "input": "64480251208ec0e768e417dea88a328979", + "out": + "4e62ba6545e15c647a9684b37f079cfa91b6779fff45721aff8728587d888fba08e745f0a48df9051a0a071c14b1c408d0b53b74b5dfc249c845521e56b367394c279cd30bd91a34cc03ca92e3e8c46268c3901c4bb75d0feb27cde509ded093893c27b5211dad2b4c6f2c3b4955c1d94c056aa655e265041b67cea91a085b6ab006c964885f2ac8f284c8da25c8eb577abe365454da976facbe0b60649c1db683aec0b84263", + "out_size": 166 + }, + { + "input": "db986f3f1a51723dd89f", + "out": + "d932aa2d008b570e89b7aeecf464202510b1a78620022994177efc9131471a53d1647102d86d4a795c666ef7981f8bc0b358da489cfcbc711a81b875980994cc6e0000ab8a9a4669e3049a6a3abb7f85b343c53910671d39fec91c2cf3592b7bc6de3970e1e0c089b7d79e2411ff4638ff1352defccfd90f5e88b9381f57c691864bf842d2aa852dde762c9c772ea43ef88280dfa57d4a355a992d87a90c3721b110da263e441f0aa10cfa42c72eb0acdc21facbd25899871249aebc0088b8532b06", + "out_size": 194 + }, + { + "input": "ab581cfd6750bfc85dafdf08dd0e4148ce34e0", + "out": + "163713d628380d3c6776a2c581d4c5411de98e7c01b017c9a548e4cb56ad1531c424e1fa5defc95742ccf405068876757d6cf86a4fbfaa610c424be960fefd88da69fb492564566450f1115880b37b937ebfe32c8a7e1ce90d5d85c3b4dddcd3ba857331b2a4a608caace3bb59d878827a1011b9f679bd00e1550500f147ecd8316c16def9e5f3daed3e43d6a9aa35e27c6411a2975896d85256cc2f8f6f161eb6b988174b735094b4986363a8", + "out_size": 173 + }, + { + "input": + "600557e645e4170dd53cc8aead102ed8de60b701f20ae5d635c4cebb883a9637b979c099b9c14efb", + "out": + "ff2c9cfdd1f073543a83b866d7f818b2ba138e33641c9e6507dcd58cf8eabb4fe8965aac3fedececaf192cb999c535240e8eaa52d9a0efc99da32e39b2da8786f9e03303792ea4080a193e3cd189dcf03e8ad20441e8f07d4ddf514b05588310b67a2242fa7f5240ad980a8971c3f66d1b66d0f4d6c61b6bf444ae0b59ba495c1d4632a23feb1232fc0367012f1a8ce1278cc460c8c5b8681c672c43383d36aec61c4966d05676c97d0d96711bccd9757e672cf951375e59c231d3780ab0", + "out_size": 190 + }, + { + "input": "2079", + "out": + "b8606d4376b1b42866c25cac457d6aec81a5f28504d7264025df51e877a47c4a96623ba6ffee2e6e2cc71594eca4dc070f2b146acaa98b29f1e082106db07d010ec3c125d08d1fd735e2d2c583cf896e559cc99cff83532f851284b295b4fe2a1a260140806a268049eab394e91631c465626dc32f0f57d54aeaa30913", + "out_size": 125 + }, + { + "input": "e095290ce7d4bb", + "out": + "952eefe057516a8b9137ef83a121d22d14cf0adfcb591a3ccf1c7374d98e22d40c64cf32909eee8c8c4fcf36f1025eab62f83d0c0372788839e837515069302402cb647ecba86c3c481fa3f34ed7", + "out_size": 78 + }, + { + "input": + "97732d8c4e283e89633c6bc0d14132b7d8fb62f045a81007464062f410ee77d2c1beab8a56d1e9bd4b0ea2ce7e1632d10a0444d59069903fab2a2d7312f9da", + "out": + "463bab3ac800df6d69b717019284cb653098315d643eb8ff157d07b18da59a94a7cf18b1085f549618363896ff492f152bca4a8122ee17f732f11d72283ea735a88b0638be0749ab0e6f5b9308493312dc1573c18ccd83023ba9d23fd175a660f23113dbe06f0be33bb0d832c9cba6696e2fecd71eaf59c8ffda6447ec2cbc5b12fdee4705dd914de7a55b30e6600e730795b8097fa364fe680f3ecf04c2d2abe5ca0241426e025ef7f3412f19f842", + "out_size": 175 + }, + { + "input": "4993c77330ba196f1661fb0a7ded30c626134d", + "out": + "eb8693894adf617d02ca77584a7c09bb8b47925f5b8d788d7521cc9f157d7e828d5441aa82c452902ab3e69ac86b3e6fd46f9a8dbe37ce92d1", + "out_size": 57 + }, + { + "input": + "70f3fac03e90de23cd1f9a458132364a87f23b957dbc19fc3c1dd77ace8ca7283091d99b984ad442e385c25505", + "out": + "7d420cb0b6b1e20657da5c1ae5ab5ebffc02903b930d778c78816abdcf8052a88d77a694ff3c66701a628adeb9aea642b5f3cfde9c6e61e426a6b592c4e7b8b183328a3622977446dcaf7519c850bff157fdec", + "out_size": 83 + }, + { + "input": "59241392fc2e9cfc3a89ecd009807e32c8e660c0642d5c78a0", + "out": + "5400bedbb76bda47c8cf84eaec4a51154d33829b2a1046ee5739682a42dcde25038f708fd5697bfad5", + "out_size": 41 + }, + { + "input": + "3dae6ec65ab761f752557ae109671fb49156aabdfdf948a06918aa0822a9eef7f1937f5012d8de10443ae8aa33da", + "out": + "aa3d682c78f360837edf9376b07208344a59573ace99d069f76558b06760b06ac9b401001414fccb57cf33be06d6716341d77aa3da4e5f478d4653d20221b56ac32b2e90bf0ae30ed981b9dd21def95d4e2196d98cc806725b48f87f151d8a3fc7699cbcc56afb", + "out_size": 103 + }, + { + "input": "afa2a856c4", + "out": + "b1df4b64809af19ca5b62535617bab67d809175023c0057eefbf3277b45caf13dd68d990434490fb0aede9ec6a33936e7276d8019e547701c834f4334ced8c75ba99bd2d20b7e0b2c6a5d726085572", + "out_size": 79 + }, + { + "input": + "a691e27536fd97769a04216a04eb232a362ff19463efe51a7de9e0017e6a27977a3a9fd75da8263225d70d617b59153428eb5ed3f02b69e83aaa4309", + "out": + "18cb82a1dba7703de33db3a5aa16c8267d8a39b794878b5d8eb64f4bc14ac91314b1198fc6c3643e69c2f2c725be79cd9fe31930fc715620a9", + "out_size": 57 + }, + { + "input": "e3e60a2ae6ed5cf3911b5350fcd33e7d374b6d03ca86551f4e", + "out": "3ffb15087efb", + "out_size": 6 + }, + { + "input": + "11e03cab110f88646f55f5acd24ca5186731bb466766696c67b422ef0f87b096de49a6b17eff0e99ec2ac43c292f24b853fba61cd7fe", + "out": + "1f075a90000d6dbf93b5bae4f1c4578db007e68aeb2094d7b8f5d9416774f5a25b383a255def5b427b4519945826ed26839ad0974bb85295", + "out_size": 56 + }, + { + "input": + "cbde94c99be0f3d36c7fb24d1a57f619882d1d519c110defd632defb71be3b83148e23a990001ce114647cdcd0d72d7acc99422050ba632626", + "out": + "707c84c16c062809606c2a7abeac73a40df7d01c241e129ff15e659650ca28ee85eb50d2287cfba83773a701b3b33390fde0827bc7a3713d4915a0af5842ff6f85151615bb07bf3c42eed64f12aea0e4a9dde5cec8a55e004048850ed0ab3150f53867f63d5729b9730c7b7c8be372fe3a6223b4776f5e75", + "out_size": 120 + }, + { + "input": + "b1569ead59450720ff81fb590033e06bbe0f472e72af523088a0810cb9d43c4fc724343898744e52182a7713f2076d", + "out": + "3bb14f487b34d92e21ce6d38d7da910ed0435028aecf2820056609011058318281a9a6328bdc", + "out_size": 38 + }, + { + "input": "8adc25927ca41f9a804bad26b1", + "out": + "3a105765575a17b719c1f3c0027f923506adf300346545e23ef46d7844b045591a9fae23a4f11d209cbaf0c4baa76adcc4758143245408097f171dcca1561653ee483cef93870deeea2cfee284f6f4d695247a535bf19880ed1707d8e76cafd29e14e94f4532d046a845ebc3bc0d37368dcde0844734cd59629f562d66cff42f6a1a93a40ce4522c179c28f077a075c11f58e4afd9622ce7", + "out_size": 152 + }, + { + "input": + "28df8066be7af392fec0ca8c1d2fb3cbb95f99c82f943e5b997cbb55d083a73743bd6445877229", + "out": + "d9aeee441e71e93bc11f23549d64eb50f0e8de1715aab2fe9f1ddb308d9e4f8eed2ab7e00ed0baf2c2581ca40c9ace45b171b72bf87bcbe973b7ec870b1407f764daaed7b96d8145792dcea7e72cd1a0fddb668a358c8e7782e640ed6aa0f5b5a3334b970b795c143765aa8c6323f0bf091c2d9194c59e415a111ade75925a5f6178c6bb148210d9", + "out_size": 136 + }, + { + "input": "c4bd62f211c952d5", + "out": + "1cd9ddf7b277e433ba2ac96e05c8981608d37b0271a81d5939f98c5aa50fda9c8ad93f3821ce19d5f3cf38fa2d12508529f93337732ca2ca1b40d11b693fe15be196f6ba3a3401ddbf6025eddd250d4a88254e762633ae96379b8878", + "out_size": 92 + }, + { + "input": "89dee2afaee5328de09b2b9e30714fdf7fbc32b518962d77fc3e54563c74", + "out": + "9cc877d13337182409bc827b3ae4a51e380c825fd0117465491ca320aedcf31fc1d65758eab1ed2e9adfd78afa7646bf98983af1b2093a2e0d04b7ba8a3e03822062387ca3f016751dd4ee7af8b2f8238cd8b2636b75f57f61ab9aabee5d50430bdb28c1b8d0ad86532d20e4c010b564162d527a940b39d4c81f495323aa3cba751cd8f55ae37c9e5a60887007910cbb8a99395d6984c3d34292884ba4eee07480e55d", + "out_size": 163 + }, + { + "input": + "e5db91644a989f69f7726cce0d9c1731f9db67d47b9170d369fbc96d6931c79198f1368fb115060491f2aaf5a098cdbb61d6afe3468aad7f6526299955", + "out": + "15f71128dae8de659b56177b5c44c0af195f62f91be2533cda3f986df0b088d09e01fabbcc1b15f01e8377abb91239896ccc770283facb2686877fef56606e8c1e30251c999cff35f81cf20d34836be8201ac02a3c67f885b5e46b8cb5974586bf0ed8427e28e1cbb07fbd0475c564df61ff18322fc9d7ab24f081622d7fc6bc3dd5300d7057549828d6a97acc52acf7351dc259ff74664defdef8e6d7b9d44bb89dff6eccdc77ad4b7a193ee3a8f2ce9ad094a4ab36574fa161", + "out_size": 186 + }, + { + "input": + "7569c204800e68a552435126f444c993463ba10ec54de1348441a8b542a0f33b841a8c9f396abacd60e54419ba08", + "out": + "0cdfc0304e8125fcadeba83c4ee0d179a777e82f268ec4431166be237dee0fa37a56f2353e5072560306ee9dff0cbc9be25e63e60e4ea6548258ce42905246f098d95c2827", + "out_size": 69 + }, + { + "input": + "5df118f09cf2c12d5daaa35161744da19813455955b7173c6dba35834c812e1f04c4a46b", + "out": + "ca09aea9f46d9d614df733230ece84668f2d147e2df6600e4e999e3f8f0c78574dcd46f997474eb4c9deee38e7d86c0e8e730a7946863ab42ce7ed9e0c52429673c404cf", + "out_size": 68 + }, + { + "input": "f6e563aa0e50f4b0c2a675c63e0e4621ad80abc9", + "out": + "aa3bbc66b83d6d98a16986c36ce125eb9338a14e5b2f090d4cffa191f03ab3e4f1ab8adc86f7b957e2b07d375add034a22948926dbdefc3cb569f4e9221626ce7efb5dd510783fcf862d654c6c38ee628d51710e68fbdae0fa3580d3fa07a3e6ab48d86394b137010172505a4444e3d44e040cc161884815e3758222611409804b4b", + "out_size": 130 + }, + { + "input": + "5138f706d493ed9bd487cfd0c627cebbc47c0774694a4221700ea3f7f9438f08d53e082f71f60cfe9c91208ba7d2fc093976609b70481d6194", + "out": "a76bbc1cf6352376fabdeb62a9fd6e777e924c", + "out_size": 19 + }, + { + "input": + "864543f4fe200fc8a06523caae80fd74e22c74b5e5b5dd89b419678b77ed8300b93ea32907b1bf88de1cf0b572d8c365437ba9", + "out": "69c3723a2b5452632d846495ca", + "out_size": 13 + }, + { + "input": + "932bcd3d80a7603be4ca784b52ef386ae164c9dec5745ade2861243eb9248e2a41cda11c7713ba139d1b315b9fd159b2cd14c79af756a075c890135229b2cbd6b9", + "out": + "193cc6214e3d710093db6623d0cecdca8ca4435c5107692db6b2b8d8e4003e180e4ab269d2f1adb645f4ec17d0ea10037238008de6cdc3c4fb0d08434db25408dfc8454bb6ffffff9200a11651b842569850ce6872b9", + "out_size": 86 + }, + { + "input": + "6951960d62deb346015878622906cf5f3fb7922b77e947b87a39fc03d03c6e05f979c30c", + "out": + "d0637b4a479f85fe762df9af9b655763678f61c5e7b041838298119983a5b85c7f6291a9926ac61351669d45721585aae07c8a26b4f68cfec470dd4608550ecc7e40393d1a0488fefa1ac39f10948a0a6ab36b8dbc9782ae5c4df25a0cb727602a48914eb4630993d8230f7e2acaad40b98a0f5dd08f4b218c4b2bfc060a2be54091c4df487c35c0535d822f363b665d4fc18fb119948fc434567a4d9159a7caa5fd50da1137966829282a682631c4eafcb7833e3d", + "out_size": 181 + }, + { + "input": "a170aed132", + "out": + "05264bb49fcf32e257f352ad1b27541f9719705aff7df3a9b792656d696a921152e3a689ebed06ef301a9ea2793018f873894649558adcc7aadbb7be8197342ff2af621537f5550cee90e91cbafae32e7b7dc182ce84c1fbadf7bf36d679e3254c03c980f417404cc9fb5b83787d", + "out_size": 110 + }, + { + "input": + "9ccf4333c4809ba794ab5e090494d3ed910fb3ab0884d74cb505f26cfee5bc904ae66f0f", + "out": + "7f5dbee670e4a3251f74c84f997d68401714c7d770f466252e314fd206cf4d5f886a88273e", + "out_size": 37 + }, + { + "input": + "6e0c9430c33495140fc124268fa607847ebf03f4585baaaa166762976d2367286499898fe7d12481ef8ee70eb11e63", + "out": + "c42c8faf2948867cddf546c46ed2c28afb08f763ed327bbe6f8681e57d5411a580e68c722034d7ab41d767b54dffb0b1d349f6f300a01e368e82550238478445ca719ccbb92408c4bf3decdacda8df4187a40d2ff0b78d8737", + "out_size": 89 + }, + { + "input": "5fe4a72d29684d542f35b8d2c327ab177c614768c6e3226798ef59", + "out": + "e269b4caf4857160704d060bea86e54bfa61d75036bc8f80646a646ce7921ae4e9ada39802f776fc433f21dc41000b31fa56fd65ed3079dbfa047fb885b339f1f712f4c4eed3ad2b16ac856769d4c2e2b330c19c20c8f8ac89cc5413efcc7c4a0a8279fab83b43e5d9b9d95523350246a39e3cb55e8df361d96b51c6871002c434a5b30815dd6d26e5dd098843b8c70acbbffb3da2c42a742cc0a0c0c7851d7e8983043fa93a09f0b5", + "out_size": 169 + }, + { + "input": "7ec5cbc2fb1c19d61c282e8ed9bcbca9aa0f05", + "out": + "9a2687508909b430060bba1c4f9ef354a69d63b7efca18ad9022ab642cfd0bf5d8609e6def1d8966511d0f84fb9d81c7c172ca14642b04a008", + "out_size": 57 + }, + {"input": "14d26ea4d0", "out": "6fa2dfcc05f6b1", "out_size": 7}, + { + "input": "5c47b1412d6f757479681a", + "out": + "f66657ccf38d482c0a44a93c30c86cfe075d4b90d3907450839e5e3c2478bd59b4fed62d6bf444165d178763121a75baaa6851729bd5442ef7fda12d5afa697cff83fe6fb580fe572fec20d2a470784b7408ec1ea493d8c493", + "out_size": 89 + }, + { + "input": + "333e68accf686b0d39ad43b403962a85bea50cabf2878b3eb87270177815fb876f22b2999a5a77569351a22d88de", + "out": + "f1c6dc3cdd493e7e85a9ab998d3ff254c593f68c0b97d23c2ba4e802729979a0f61af0eb6002790f20fea4453d89757ee840afcc1d5354f14efeb8ded03ff64f617d381641657436b326a8b73c91b4e914bc7183ac567b0caefc32691a97e7656deb40e76f7513b0e29f4bd6618c779bbf0a8ded6793e4b0a13bc60ccdd7b2e25b1478b563ed79fe22ce106c2765a99535f835e56bf82975db3130ada3d79f68c4a6e81a5c7851b5da3f7434e9b472ffb9441a220e386141a38f76d253", + "out_size": 189 + }, + { + "input": + "f6359341b8d5d38b489aab3118bed434ab769b0f37efc7d1102f9baa3711e2697565539ccf28c41e5be544fab8af9f7e60bca1b1d45aab7485d88f34a4b6", + "out": + "954847b361df328b4a879363f4a0b4839b82158cc223b0da04748b13d96fb4d5d61278bacebabc6f75eb7807d530587a04319f3bd3acfe26c1170bcd865b9f88b2654e18e4d2aa0d824e9bdf8e52eb2dc45795699dcb5e38042f3c9de127b4a9bede4566816e443f6f75e839e44a7a592c76007e4e119e696cec2b9b9dd15af0f94f865d72d4d0d10f73b36246941a7917d86cf24817b3449c8d67", + "out_size": 155 + }, + { + "input": + "d3c99078c817dc33b5de9ced8781e7aa955686c02a3619a866db402a1535e39f8ec8d62d17bb09b6f00369fb0a19efec05d9d6dd1cc09f82f1708594003b7565", + "out": + "18e6354a3a4a8ae95f4b3371eced3be4267f3198f1b6d7868ce3cd6905c268cf839039e352460b19fd9a922fdabb4a8504bd4d97882e9a685bc9c6bca0c03107daae08184dd122588b6ead54e98fb0984b1c3cbc22b3691060e22e060c4996cbcdc896f6b0cda233fb2a1d482e560343b88430b1b411806807968c4932f9b828e835848959b23117eabcb0a7cd53124d08ab07be3081039618c7e18897e8bf5deb56b0beaead4d1a754e", + "out_size": 170 + }, + { + "input": "68fc3c19a17ef1a13192438481a63cd1974fab09a925", + "out": + "c2cefbeec517f498fd66634dbc2d2a05f37cac3d0aa8e965fcd6848d6106ae4bd0f0ffc23f0368b8d66549e25c612cb8678b606e195e46348326db899ddde879ef655a924b75b3e6ce6b02a5fd336ac56cb900b0cf9735f2d208c401c85c5632640cd0f6e523348fbd1032983eb886ae3698b81f62db2e5ec2ed34bdb9e83bc6fca6054b0db064a01f59c35a56ba2b8f9fd1549dc443c89f7caa872d713ff4f7dd296c756b87d8576398b6ee7ff4988004cac2deff7e42fa232992e556e42d2222", + "out_size": 193 + }, + { + "input": "dd095eda7ecbfcad246cf6fdaaf9cf2062578264042f61", + "out": + "bbace07175d95e7c692afc42e4a7ee6b4bada04a322b78d90acb8384eb2d1bd99ccce3a07fdd7261d431700817ba297b36009d8fe44bc703a4837ae53cf9fc71f3", + "out_size": 65 + }, + { + "input": + "e33670079c945e5d98c045ce9f1eb75303a8ea75a10a22af1e22730088306322eca4182ae0679c1f42e4b55f334193c57ee774", + "out": + "cce0e6da86156e528736afe36ebe951c9fa9b869ce903e0517b9d1150d127afdd4105db7465f5b1feaa75eb52008aeb4f8806b538ec73ed6ca99b71809ee74a0dea5e904d175501ebfd4ecafdcd995716aac1bf782cd42b179dd40018679602b373511278017a33a9ed1978873869e4449351d81b9dac995ec06c0f311640eb61c7ac535c5e08d5e06b1a585", + "out_size": 140 + }, + { + "input": + "22ce6a191d0b7ac04fe33bf88c2277d5d4f0c6442108a1b67ca69612bf96f189579a0e2a02fae349ca231e4a4bb15b681a35", + "out": + "bed1324aa0f03ff0197ddbdae6a001118ef94668be5fa7bd0c22a3a35584f7500270d80873da5151abe6458d40a5889dd5ac3fde2da0958be631ce320ddda0344bf7c4f0795a68c03c4dafbffefa6511d2ce887ce5666065c669baf6caa1f7231c3bb04720868d47ece554260a45bd76d031cdf826de711b65a0ec7f3149a5f377489c60e8ca52", + "out_size": 135 + }, + { + "input": "672438b3601fac0e6aa147df9b788562f9c3f0", + "out": + "5a7fa7e95f93e3f285bb48418df2ca87971ea9c2fc22552c709a714484ad16ffba4522", + "out_size": 35 + }, + { + "input": "a9f0577aa82c2edbd102f861227d9f3fa1014b3b49466a8a5e3dcb4d32", + "out": + "dbf032950a7c53f692c49c8fe070c08d0ecc60d6457f0386b6ddd23000783cd8baffeb966234d70ba21d1b5b6bf1da3f4548f5cf281688290187740bccadd63e2d8dcef13bd009890d05d0af7689a585acd6de2514dc4dbae46bd404aa554381b5bc1bf8700bf2d004f7808fcfdae6364e7052ab6898be91858cc7f9b2f57f0b7ce0cb14f6db877702", + "out_size": 137 + }, + { + "input": "dde7f0e921a084a5950825105e36e4083e75e70c8e77712e236a4544aa76", + "out": + "1ee02741b874758cd541aca1c27ddc14ce742bf1ae4ee451acb52708c3debdfd7d1e97c373121c33e894df496adce239bce5708460a932746359890646fa10cbde4e7151028aa2ed94f8f3411f7053b09feb4c3f", + "out_size": 84 + }, + { + "input": "42ca44d91dfc948e3de094", + "out": "57f1538888681a9ec787dd0ea0", + "out_size": 13 + } +]; diff --git a/test/crypto/x_modem_crc/test_vector.dart b/test/crypto/x_modem_crc/test_vector.dart new file mode 100644 index 0000000..9c2ba38 --- /dev/null +++ b/test/crypto/x_modem_crc/test_vector.dart @@ -0,0 +1,239 @@ +final List> testVector = [ + { + "message": + "875cdfb0c2afe7d777ec7c08c0cb108cefe0c8037fe64f88b99f58aec3be9e58c9918fb32e6c7a4babc9c557f2bfc68cd89fed057955344d8aba285727d360f59883f2bcdd9b810f32e02fa1955aea4618d00407af5a212e59f624b865e8", + "crc": "7abe" + }, + { + "message": + "95574cf47ebe726643d2bdcdb1e65c718a67fbbb16ca55d466ff980375128545c1a5925e95cc35173da94d92b03a7e2ec4949e6b14b238f25201ecb5013b8a1a27bbd974676fbbfaa0e2a15feb57bd03c3bfb4045b19ea7d5e156d16128e1fc9b648423218e1280cda9480e0ff06cad678259f5c4090f28e30facf7bd4f877", + "crc": "8ade" + }, + { + "message": + "30b47c2ed8cffb0ec6b9e63ad6d59a759a06130e210597a826dada702924ea1ac73ced52ceef622be69995812784767c54cc32759a64db0f8e8ce5b1848c06b938158730027dbcc583d6066086eca8054bff99", + "crc": "6374" + }, + { + "message": + "25cfeafe7c83ca9f43e6ae65ed3b3c3fb71d85d879b7c6bf04b0eaf965af7e4f224c4df9e2ad3215a5561d026f0a7efa1b6a7c38c718462ad66047359140b10e34f4c03ca78d43b15ca304107ddbb4b8578a60ca3d2b", + "crc": "19c5" + }, + { + "message": + "9cd32a0e71e7455b946c26489d9cb0e7de45bb68efce701e474e1669f5c54b3b1bc7c560213d7ac1b040af39b67aa6e7c5cc66d01cd785f5d6030157df4f4053df029413bf365e17e4359015f8aedea6fb0a628194423e596e10359472fa99b8ee8598bd772361a0eff776715a96b6a9413d3517e14ebbe5", + "crc": "5f5e" + }, + { + "message": + "f3c023c2b69d4d3bb14c36908868e0b00c2848cfc7d202d54c55c616f5c474159bd961f909bb65ac4d528613393331e39d33e83e8a282184d6b3378326bf10b5428a9ca68670f765094dc34c1e971dbecfad9c", + "crc": "2a3e" + }, + { + "message": + "e8f5fdf2a51cb81c617969c5a831e46d1349038846d54c58fb83d26840cae3b027e3f6646f290090c2c1882414f401e57e384c8f5f5399e6a542c87b21463dbc309782ae374409850828441cc9", + "crc": "9a52" + }, + { + "message": + "f4cf136d7d655f04329e146ccddca61d446e3fec5aec0d06db04c58a3bd54250721ae5b21b89865800f47b8e4e1ac1344bae044bdf06871d28fdc8fec46cfa9fac549974809bd5b46714b6312ece37c8a30c616e59d1c2848581ca586b69bfc0a3c49a27f9ec5af1afb8b6085f13a621496d8288afd3ab3f037b46bac3e4a4f2f4ea71e5f25ab0dcdff30d1cdb0cc0841026e1663cb71538cb53113e7700d90c", + "crc": "4ff3" + }, + { + "message": + "1417a217aded7af052397098ab7670406557f83a3c61f46b5f481096e1b3cb3f492fe2d5", + "crc": "07ed" + }, + { + "message": + "cb2d85e523134bf27d63c85ff7a9168aeba4011d42999060a0aaeb01a523257fd0b1ccb2d0ca14df758722a746830b3e71f7f5c55e3b9775e6a44528de63ff5212fcd0b167f97699710a4cf47b0c2c8391f888aa1a97ad", + "crc": "eda6" + }, + { + "message": + "3c508d3b51de7071c7e2a6c008ad9b5d0175dd17d818df6d2622d9283723b356f2aa4cd3069c747288b241c14aa7ae529ce60893757ab1d13bd7a2bbb59db97f0a86fa8c46f08849006bf0eb279f5cb5516283f92f5f463a2e7e5d5f01e433cb5780777bebf6be68b59617ef50c481fb7fa858442508853a529e1596b16a26a51d11ca85f226b07a4f74531038b338e6e5c5a8ef0542", + "crc": "e5cb" + }, + { + "message": + "a3d81151d6c6a705d2f38a4aa9fbd100dd6065ec859b1f9d28ca3b98c9866e3051", + "crc": "88c9" + }, + { + "message": + "f8cd4d442223e932b6edb7882612a5c4bc5edda298519df99e22a93d566302739ef8d412bead074f8c0e604e03b63b83c7ae81953b5313462b735d503f3feda4107928522fd2caf183808de036ae233d7c94d2b436a7b35bd1cc7a3ab70d785fe916917c9edb7b", + "crc": "03e9" + }, + { + "message": + "2ada8be1a7e99841a861ec92d9c27a4dcc2a4ee95ef2916ef30e599fc74986176e90077b0998bf796f635181cb642340063c3edeaf7f99408d4f2b5e6f0ed11df811799a839b8e7ca17421bc87a0ad95695b4b423bb6db4ecdf5540c58c86aa68517aa4c6bddc057071c54cb0c5f314db0f56df5cb390e13fea4b0b8293fbc7e6af62dd1", + "crc": "7945" + }, + { + "message": + "de66c12164524a656b252c4bcd5ab3c1f0ff19884a8f00a85dd5ee1444fb0dc3b89b20c7dcfb0d7a4a11dd97c9dc821b85c078602807b9fe311e6e341b0ed31c03afdb95024792a95ce306d70f4e40b47725b61c3713393a26ee03e70da99fa7714c75", + "crc": "d722" + }, + { + "message": + "7c6e5b39de3eace6d6d1f0217d7e9df54d3ebc40f5231a82ff5612395c45ed67740c49a0ad3e9427d7a1a715e54391fd4181fe714f08fca3f5a46ebbde4095d4d8e252bf24e2106a5a9f6454800f44c69aa1baadb740223f0cc0fa7fb4dc8db1cd535aa9dfccb072", + "crc": "aec8" + }, + { + "message": + "48aef29915752be68743fb05d0c44c537db54fa361ddc7c64ab44111f81c787c0881dfc975eb360d2b8106e628d83782a21136ca628a234c911aeed6e22e76c6e338b53e7ddead4832c0cd4e2b36dc3c6eb6333aed76cbba2cda27ff13eb022e20a89b0b80a4e271f73b23b96463f15310f02501d3e0", + "crc": "5d55" + }, + { + "message": + "53e75b662f09c39e9fe32da53db568d1a7133025f5335144dac10109ea7601166b6c49ec1ad3850eab6b0c460bcbcc99287c878d1daa69172351e509e9d1323e9890779e0985653f73b7ca1962ba0270f8621d0cb7a20fec622487465c51df6f4a320914c0f5a89022afbf48ca3a754f56f1a4f90d5c579ad9c5e1ca66b8fe082eadb5e1f34a12b77578e2f9", + "crc": "d0cf" + }, + { + "message": + "c051295d1fbb509ee2b9389a0b76d360d407f6b7dec9c1ea692c98ae6df670c078c98bb49110597a759bfc4b36ed55ba29d1e6f89dc50ecddce63283afc03f94fcc3462bd33f7982fa477e99988c3b9bf8b83fd7b3a95133e6ad3f", + "crc": "e70e" + }, + { + "message": + "ec22d6b82244de4ba2914e97507c39943ed98f05b7808324a2802789b352aaedcd3815a749634b3c94be788f0e3920a05faed65751a98e94fc3a5533703a749663a087033ce121fb52b12b695b47db34eac3e3ee6590aaee68c318a7884867f234f194b1e2ea5107863f0fa3", + "crc": "83b8" + }, + { + "message": + "06a286e06a0a6d29d4eef01774c839c676d1d2cf607a76ea82ba0278d7649d51eba7e22d87b215051b3a6917d30deca104a5803ad8ed30ccedc5f63466913d8bf118127bd2ffb2cb3f7ad58e2aaff1b13089a8e843c9b59fc87ee89e8920f3f9", + "crc": "f8ba" + }, + { + "message": + "bfd063652dbfadf7ecf878a72f2983369651844a110e6d4a1ef96fa4a88c77ffe49551e376305df2d3a3bc650cf6511898efeb2190cda48e1c", + "crc": "5306" + }, + { + "message": + "e18f4d659a360afe39859b174fdf4f3fe56a0bdee9efe89883317d6f81df163fefd5a6545a784327f8489729f9da495ef445462c44502f638eff7ee0ad49f126a2c7", + "crc": "8526" + }, + { + "message": + "f7105311ae7d79dbbe2a0530d4fe4c524a1e3416a19be340b85428001ae08098d44f1ed55b34d9fbaf0a0ffc4c6d453c282aa3", + "crc": "c0c5" + }, + { + "message": + "dbb56f630d7e621e943cecd11b89b83c54af67556851379d0b402e9cb567598527114c8c289eb2331e015f7d8aa391d5d37b", + "crc": "42e9" + }, + { + "message": + "c0345dc79c5003fa1e117649293a96390150a237626e79b4981b7d180b1658d0b9ac732d913ce58052806cd8f51f0590b4257f226a7120b4499cc759635f831f9e9a084dfc3adaa2c3cb8e389a08c592549d87f3d9e18e160c02bfb73605ac", + "crc": "247b" + }, + { + "message": + "a7e11972888f05172703f20aa8a181dac5da0cc5ddb8753c43c12f8de6b0bed51286294b60f259057695389d35f9a32d1fd0b5c3fb6ad2593f", + "crc": "025f" + }, + {"message": "aede351f916df50d49577d88730503642f20c5", "crc": "c92c"}, + { + "message": + "31bac4f222b02d1d3027d6275100fbf56a5e21c73dcf003244e519a6f14a6845ef021e4c6b67e983dc669de052ff690e4ffd48677079c013adadd5ffefca736200ea093b6036e3f968a6677b8a8d41b442bca61f0c377c3da8ac6a66aafdc902550523ddf955d2a9fabd01dd81094e9c019b134046b5fdf5567e98fe0d2615433b7d96e9", + "crc": "5c9e" + }, + {"message": "ed9e24cd92938e80d581cbf2f2b82c8117a070ae", "crc": "5e8b"}, + { + "message": + "b0b51badf80c382a184399eae6d0174114155373c8590ba1ae76d07e33656175bfd1798a1ff8bcc107f084ca72f96db3a88a0d13cae1d4ed2cf6f430dd3c13082cdf62e79b6b5844a922f6ed2cdad9fc74bddf28", + "crc": "5971" + }, + { + "message": + "aa77a163be04f69ca0396e1324fb1b6f8c8ead19c38d96b5df2aa13fcfae16ec8868a24189095c5dfb3ea46fce68a322b427718a5bf35c8e43c6b948b1e1033da256174f1aedbcd7d92244ea6a08a0716a716de61f55107de5e0e83c2c29256afc0c39b0208a8325b547f6b02a6846fd", + "crc": "a3fa" + }, + { + "message": + "4d58371133ca4c6f35c096e31b7d4abdae1d604e1b0936176d29db2a6a6affbf003e01335907c55405898567a90d92b752a47dbd0bbce92388e946ce475fd0c33e5fa5b7f0fb0f424df293c73946955d23c16b9e6fdc358dd44d6ca9573fe939f76786646383ec50f2100943b49ad325719496", + "crc": "31fe" + }, + { + "message": + "01aec529498f67bf03b069a4d37a494cc81e873dbdf7d2d7bbedcc6f667b0d5ac7ea34e35641c4c1e7234da8f308de1e693d5075466e5945382546b02b4ffe5c38e4f9e3", + "crc": "02f9" + }, + { + "message": + "7d6a21011049d6e2471964aa82052f709cd6ccc71ff8ca5dae504ad909d29ac0766015caeffa37efba395dd60cdd57bdef93772d80f0ccd812b617b84c0815", + "crc": "bad1" + }, + { + "message": + "b5077ed6315c3629bbb5865d3884df8a1f5206f12d6e725fe86cd34cf19a81746779bfde70a464739e7d0bb12da8e896c0e1ded4d8fb01bf6b9510d9f12318233c5d310159197ad22104a9970d7106d093660fa7a5", + "crc": "79ac" + }, + { + "message": + "54442ed2a504d33e7412e0dd8cc115cc64ef56c2d2c82dfc2df604a49b41d964ea58ae11141da0e5311b0bff87a00162064ba47b", + "crc": "0390" + }, + { + "message": + "7e1de041880e18694faf994d47ca32d59dd2ac7167d73fcfa0dea4d10538fa3d2636e0849014d5edf599457112751b30", + "crc": "1732" + }, + { + "message": + "7856d5abfff73fa86239bc52b9476f392a5399b459d9add37f1e1b2f66f10c936ca0a234835d6ace1bc904fd9f18c1d53ce99215fa245d83b000290fd91092855a0786f87368fe9e35487e8de24de3774069a23a10f5b4cf4cb087501d0b4570352b4f0f0318fcfc91925f511b95", + "crc": "b88a" + }, + {"message": "0db4b830f50353a353d566f85de618", "crc": "74fd"}, + { + "message": + "d4561c59a17041bd6a3aa4b1cf95880ac66bc4561056e97a1d03cd5c953eef7a66a2816fedd13d0adaf81827938410b2a4b8a5d10b391d9e32741484fe7d6b92360e3484eb89c16d15a0988fd86c8dc7e3", + "crc": "8c6f" + }, + { + "message": + "ff5881b68105f9fa0d1df510ff17562455c3769043bdf39a66e3efc9ee5a4aca8e787d579c36e0e0754ae636e4f927b731c496cc251824f049b9d7db1cffce50596c59b2dd242ce021c5f778962192e094264085afaf687df19d1c937b2a47fa94524ad3bb3b6b8e92580a95bcd706e5", + "crc": "7c1f" + }, + { + "message": + "753089befdeb04054ef8d06b375ec9e238fe40f711d515c5f945344848105bab81cda91596acf7ff90b68a2ae6ff7c1d8ea2d6d27abba44bad05ce7bbc82a0e9842519113f42d59cf0502a4e608c988066d4fac812bf2c7a46485166821bf5f1644dfe37fea44726941963145fb7d3f81aaa16539540235949522c24b344b7ff540567", + "crc": "4043" + }, + { + "message": + "351725757f92b804290787dd693394c8aace3b8cb740804dddfad2ae1c32f6d9f40ab45d620efc0e04a1f3ec57fff3015d68f833bd71f39a427309e29a8986024176f388cdc0be80ff4f8ff50e4af70513a940a65c4f8288783079361f3bf89a8af3398aa7c8738200d3155f436acfd88ab520c40b70d1c8", + "crc": "cd65" + }, + { + "message": + "f69a523e957bb56d57c400d5c393859a9b963abaf3041536a4554ab83c57d7396c4650c7cb2adb20b6399b8a3c187646a7548b9e8ac86909771bf1c7e07f1801fcd28dc0d6616fa3847183eb16b2188c779a43ea45e60035c6ccf450cf032276085613292f", + "crc": "a498" + }, + { + "message": "fc607bb32e75983fefac8ba97e26f8cd66fc6375407acf7b12a38a", + "crc": "e17a" + }, + { + "message": + "df3097109d1bf4ad2e91e3ace7d7c274b9a207653176efe06c30c6cb41aeaf702dfc966f8090ac5beb8c8af29d37822adf61ea6b7d7586baad4e7580a802fe3e3a75998abb2109348badab41305c8208d5e6c19dc39ae859f2a8c1dfbf78b3d7bb7d09cab4d2cf9d1b03648576790c975c34825d82b980bc5cc3df34e85b57fc82804323125e7e41ee8bc238973cd82d4461", + "crc": "2919" + }, + { + "message": + "fd036e37c1f4e0aee5e6bc808a36d305c1b8206d7fb6d43ba29f814208ed8b8a2182531b6a72758d3f073dd5abf20fa84bde3f8924364a69fdf31933245e8dd1d43a8506dfe1f6c122ccaf129192d9c1155e00f55592eb4237b7", + "crc": "4e19" + }, + { + "message": + "c560a91ed36302f77094142c17696b35b0b21f0755ccd24cb048cc8b837c687b4b7157494e9fb1fb3380256b96161d3bff5a380d78c9d79fca6910f0b8b2f8c277968b29080e6f16f5ff51a68e5d5df37e0bca16ea95137317617a0a37d9ab9f3f42", + "crc": "71a4" + }, + { + "message": + "f052e6fee7f866d5b4124d955d525387df828ec67ebc9fbd4bcca3e0d2ee59c51824b5437f9f67f0fb0f8b1734edee90", + "crc": "6981" + } +]; diff --git a/test/crypto/x_modem_crc/x_modem_crc_test.dart b/test/crypto/x_modem_crc/x_modem_crc_test.dart new file mode 100644 index 0000000..aeeb735 --- /dev/null +++ b/test/crypto/x_modem_crc/x_modem_crc_test.dart @@ -0,0 +1,16 @@ +import 'package:blockchain_utils/crypto/crypto/x_modem_crc/x_modem_crc.dart'; +import '../../quick_hex.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import 'test_vector.dart'; + +void main() { + test("x-Modem crc", () { + for (final i in testVector) { + final result = + XModemCrc.quickDigest(BytesUtils.fromHexString(i["message"])); + expect(result.toHex(), i["crc"]); + } + }); +} diff --git a/test/ecdsa/ed_test.dart b/test/ecdsa/ed_test.dart new file mode 100644 index 0000000..f8bc429 --- /dev/null +++ b/test/ecdsa/ed_test.dart @@ -0,0 +1,182 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/eddsa/privatekey.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/edwards.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import '../quick_hex.dart'; + +void _testDouble() { + final a = Curves.generatorED25519; + final z = a.doublePoint(); + final x2 = BigInt.parse( + "24727413235106541002554574571675588834622768167397638456726423682521233608206"); + final y2 = BigInt.parse( + "15549675580280190176352668710449542251549572066445060580507079593062643049417"); + final b = EDPoint( + curve: Curves.curveEd25519, x: x2, y: y2, z: BigInt.one, t: x2 * y2); + expect(z, b); +} + +void _addDouble() { + final a = Curves.generatorED25519; + final d = a + a; + final dDouble = a.doublePoint(); + expect(d, dDouble); +} + +void _infinity() { + final p = EDPoint( + curve: Curves.curveEd25519, + x: BigInt.zero, + y: BigInt.one, + z: BigInt.one, + t: BigInt.zero); + expect(p.doublePoint().isInfinity, true); + final p2 = EDPoint( + curve: Curves.curveEd25519, + x: BigInt.one, + y: BigInt.one, + z: BigInt.one, + t: BigInt.zero); + expect(p2.doublePoint().isInfinity, true); +} + +void _equal() { + final x = Curves.generatorED25519.x; + final y = Curves.generatorED25519.y; + final p = Curves.generatorED25519.curve.p; + final p1 = EDPoint( + curve: Curves.generatorED25519.curve, + x: x * BigInt.two % p, + y: y * BigInt.two % p, + z: BigInt.two, + t: x * y * BigInt.two % p); + final p2 = EDPoint( + curve: Curves.generatorED25519.curve, + x: x * BigInt.from(3) % p, + y: y * BigInt.from(3) % p, + z: BigInt.from(3), + t: x * y * BigInt.from(3) % p); + expect(p1, p2); +} + +void _scaling() { + final x = Curves.generatorED25519.x; + final y = Curves.generatorED25519.y; + final p = Curves.generatorED25519.curve.p; + final p1 = EDPoint( + curve: Curves.generatorED25519.curve, + x: x * BigInt.from(11) % p, + y: y * BigInt.from(11) % p, + z: BigInt.from(11), + t: x * y * BigInt.from(11) % p); + + expect(p1.x, x); + expect(p1.y, y); + p1.scale(); + expect(p1.x, x); + expect(p1.y, y); + p1.scale(); + expect(p1.x, x); + expect(p1.y, y); +} + +void _add3Time() { + final a = Curves.generatorED25519; + final z = a + a + a; + final x3 = BigInt.parse( + "46896733464454938657123544595386787789046198280132665686241321779790909858396"); + final y3 = BigInt.parse( + "8324843778533443976490377120369201138301417226297555316741202210403726505172"); + final ed = EDPoint( + curve: Curves.curveEd25519, x: x3, y: y3, z: BigInt.one, t: x3 * y3); + assert(ed == z); +} + +void _addInfinity() { + final x = BigInt.parse( + "42783823269122696939284341094755422415180979639778424813682678720006717057747"); + final y = BigInt.parse( + "46316835694926478169428394003475163141307993866256225615783033603165251855960"); + final p1 = + EDPoint(curve: Curves.curveEd25519, x: x, y: y, z: BigInt.one, t: x * y); + final p2 = p1 + Curves.generatorED25519; + assert(p2.isInfinity); +} + +void _addAndMull() { + assert(Curves.generatorED25519 + Curves.generatorED25519 == + Curves.generatorED25519 * BigInt.two); + assert((Curves.generatorED25519 + + Curves.generatorED25519 + + Curves.generatorED25519) == + Curves.generatorED25519 * BigInt.from(3)); +} + +void _infinityMul() { + expect((Curves.generatorED25519 * Curves.generatorED25519.order!).isInfinity, + true); +} + +void _infinityMulAddOne() { + expect( + (Curves.generatorED25519 * + (Curves.generatorED25519.order! + BigInt.one)) == + Curves.generatorED25519, + true); +} + +void _mulByZero() { + expect((Curves.generatorED25519 * BigInt.zero).isInfinity, true); +} + +void _testEncoding() { + const generatorBytes = + "5866666666666666666666666666666666666666666666666666666666666666"; + expect(Curves.generatorED25519.toBytes().toHex(), generatorBytes); + final gn = EDPoint.fromBytes( + curve: Curves.curveEd25519, + data: BytesUtils.fromHexString(generatorBytes)); + expect(gn, Curves.generatorED25519); +} + +void _testKeys() { + final pr = + EDDSAPrivateKey(Curves.generatorED25519, Uint8List(32), () => SHA512()); + expect(pr.publicKey().point.toBytes().toHex(), + "3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29"); + final sig = pr.sign(Uint8List(32), () => SHA512()); + final verify = pr.publicKey().verify(Uint8List(32), sig, () => SHA512()); + expect(verify, true); +} + +void _testEDBlake2bKeys() { + final pr = + EDDSAPrivateKey(Curves.generatorED25519, Uint8List(32), () => BLAKE2b()); + final sig = pr.sign(Uint8List(32), () => BLAKE2b()); + final verify = pr.publicKey().verify(Uint8List(32), sig, () => BLAKE2b()); + expect(verify, true); +} + +void main() { + test("EDDSA points", () { + _testKeys(); + _testEDBlake2bKeys(); + _testEncoding(); + _mulByZero(); + _infinityMul(); + _addInfinity(); + _add3Time(); + _scaling(); + _equal(); + _testDouble(); + _addDouble(); + _infinity(); + _addAndMull(); + _infinityMulAddOne(); + }); +} diff --git a/test/ecdsa/projective_test.dart b/test/ecdsa/projective_test.dart new file mode 100644 index 0000000..050dbbf --- /dev/null +++ b/test/ecdsa/projective_test.dart @@ -0,0 +1,175 @@ +import 'dart:typed_data'; + +import 'package:blockchain_utils/numbers/bigint_utils.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/curve/curves.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/ecdsa/private_key.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/point/ec_projective_point.dart'; +import 'package:blockchain_utils/crypto/crypto/cdsa/rfc6979/rfc6979.dart'; +import 'package:blockchain_utils/crypto/crypto/hash/hash.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +void _testEqualWithAffinePoint() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generatorSecp256k1); + final point2 = point1.toAffine(); + expect(point1 == point2 && point2 == point1, true); +} + +void _testInfinityPoint() { + final point1 = ProjectiveECCPoint( + curve: Curves.curveSecp256k1, + x: BigInt.zero, + y: Curves.curveSecp256k1.p, + z: BigInt.one); + expect(point1.doublePoint().isInfinity, true); +} + +void _testAffineWithZero() { + final point1 = ProjectiveECCPoint( + curve: Curves.curveSecp256k1, + x: BigInt.zero, + y: BigInt.zero, + z: BigInt.one); + final point2 = point1.toAffine(); + expect(point2.isInfinity, true); +} + +void _testWithAffinePoint() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final aff = point1.toAffine(); + final sum = point1 + aff; + + final doublePoint = point1.doublePoint(); + expect(sum, doublePoint); +} + +void _testWithAffinePointAndRightAdd() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final aff = point1.toAffine(); + final sum = aff + point1; + final doublePoint = point1.doublePoint(); + expect(sum, doublePoint); +} + +void _testAddWithInfinity() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final p2 = ProjectiveECCPoint( + curve: Curves.curve256, x: BigInt.zero, y: BigInt.zero, z: BigInt.one); + final sum = p2 + point1; + expect(sum, point1); +} + +void _testMultiplyByZero() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final m = point1 * BigInt.zero; + expect(m.isInfinity, true); +} + +void _zeroMultyply() { + final point1 = ProjectiveECCPoint( + curve: Curves.curve256, x: BigInt.zero, y: BigInt.zero, z: BigInt.one); + final m = point1 * BigInt.one; + expect(m.isInfinity, true); +} + +void _isInfinity() { + final point1 = ProjectiveECCPoint( + curve: Curves.curve256, x: BigInt.zero, y: BigInt.zero, z: BigInt.one); + expect(point1.isInfinity, true); +} + +void _multyByTwo() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + + final p2 = Curves.generator256 * BigInt.two; + final p3 = point1 * BigInt.two; + expect(p3.x, p2.x); + expect(p3.y, p2.y); +} + +void _doubleWithMul() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final doublePoint = point1.doublePoint(); + final doubleWithMul = point1 * BigInt.two; + expect(doublePoint, doubleWithMul); +} + +void _multiPly() { + for (int i = 0; i < 5; i++) { + final mBy = BigInt.from(i + 1) * BigInt.from(i + 1); + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final point2 = point1.toAffine() * mBy; + final point3 = point1 * mBy; + expect(point3.x, point2.x); + expect(point3.y, point2.y); + expect(point3, point2); + } +} + +void _testPreCompute() { + for (int i = 0; i < 5; i++) { + final mBy = BigInt.from(i + 1) * BigInt.from(i + 1); + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final point2 = Curves.generator256 * mBy; + final point3 = point1 * mBy; + expect(point3.x, point2.x); + expect(point3.y, point2.y); + expect(point3, point2); + } +} + +void _addScaledPoint() { + for (int i = 0; i < 5; i++) { + final mul = BigInt.from(i + 1); + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final point2 = ProjectiveECCPoint.fromAffine(point1 * mul); + final point3 = ProjectiveECCPoint.fromAffine(point1 * mul); + final sum = point2 + point3; + final m = point1 * (mul * BigInt.two); + expect(sum, m); + } +} + +void _mullLarge() { + final point1 = ProjectiveECCPoint.fromAffine(Curves.generator256); + final point2 = ProjectiveECCPoint.fromAffine(point1 * BigInt.from(255)); + expect(point1 * BigInt.from(256), point1 + point2); +} + +void _testKeys() { + final seed = BytesUtils.fromHexString( + "416ec857ec2501598cdb8b146f764a6be33a23d77ed6d1a01a2b5bae7adc9d2c"); + final secexp = BigintUtils.fromBytes(seed, byteOrder: Endian.big); + final ECDSAPrivateKey privateKey = + ECDSAPrivateKey.fromBytes(seed, Curves.generatorSecp256k1); + expect(privateKey.publicKey.point, Curves.generatorSecp256k1 * secexp); + final msgDigest = BigInt.zero; + final sig = privateKey.sign( + msgDigest, + RFC6979.generateK(Curves.generatorSecp256k1.order!, secexp, + () => SHA256(), Uint8List(32))); + + final verify = privateKey.publicKey.verifies(msgDigest, sig); + expect(verify, true); +} + +void main() { + test("ecdsa point", () { + _testKeys(); + _mullLarge(); + _testEqualWithAffinePoint(); + _testInfinityPoint(); + _testAffineWithZero(); + _testWithAffinePoint(); + _testWithAffinePointAndRightAdd(); + _testAddWithInfinity(); + _testMultiplyByZero(); + _zeroMultyply(); + _multyByTwo(); + _isInfinity(); + _doubleWithMul(); + _multiPly(); + _testPreCompute(); + _addScaledPoint(); + }); +} diff --git a/test/elctrum/mnemonic/mnemonic_test.dart b/test/elctrum/mnemonic/mnemonic_test.dart new file mode 100644 index 0000000..a706046 --- /dev/null +++ b/test/elctrum/mnemonic/mnemonic_test.dart @@ -0,0 +1,60 @@ +import 'package:blockchain_utils/bip/electrum/electrum_v1.dart'; +import 'package:blockchain_utils/bip/electrum/electrum_v2.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_mnemonic_generator.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v1/electrum_v1_seed_generator.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_mnemonic_generator.dart'; +import 'package:blockchain_utils/bip/electrum/mnemonic_v2/electrum_v2_seed_generator.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import '../../quick_hex.dart'; +import 'test_vector_v1.dart'; +import 'test_vector_v2.dart'; + +void main() { + test("electrum mnemonic v2", () { + for (final i in testVectorV2) { + final type = ElectrumV2MnemonicTypes.values.firstWhere((element) => + element.name.toLowerCase() == + (i["type"] as String).replaceAll("_", "").toLowerCase()); + final lang = ElectrumV2Languages.values.firstWhere((element) => + element.name.toLowerCase() == + (i["lang"] as String).replaceAll("_", "").toLowerCase()); + final entropy = BytesUtils.fromHexString(i["entropy"]); + final mn = ElectrumV2MnemonicGenerator(type, language: lang) + .fromEntropy(entropy); + expect(mn.toStr(), i["mnemonic"]); + final decode = + ElectrumV2MnemonicDecoder(mnemonicType: type, language: lang) + .decode(mn.toStr()); + expect(bytesEqual(decode, entropy), true); + final seed = ElectrumV2SeedGenerator(mn, lang).generate("MRT"); + expect(bytesEqual(seed, BytesUtils.fromHexString(i["seed"])), true); + if (i["address"] != null) { + String addr; + if (type.name.startsWith("segwit")) { + addr = ElectrumV2Segwit.fromSeed(seed).getAddress(0, 0); + } else { + addr = ElectrumV2Standard.fromSeed(seed).getAddress(0, 0); + } + expect(addr, i["address"]); + } + } + }); + test("electrum mnemonic v1", () { + for (final i in testVectorV1) { + final entropy = BytesUtils.fromHexString(i["entropy"]); + final toMnemonic = ElectrumV1MnemonicGenerator().fromEntropy(entropy); + expect(toMnemonic.toStr(), i["mnemonic"]); + final seed = ElectrumV1SeedGenerator(toMnemonic.toStr()).generate(); + expect(seed.toHex(), i["seed"]); + final en = ElectrumV1MnemonicDecoder().decode(toMnemonic.toStr()); + expect(bytesEqual(en, entropy), true); + final addr = ElectrumV1.fromSeed(seed).getAddress(0, 0); + expect(addr, i["address"]); + } + }); +} diff --git a/test/elctrum/mnemonic/test_vector_v1.dart b/test/elctrum/mnemonic/test_vector_v1.dart new file mode 100644 index 0000000..9c847d1 --- /dev/null +++ b/test/elctrum/mnemonic/test_vector_v1.dart @@ -0,0 +1,352 @@ +final List> testVectorV1 = [ + { + "mnemonic": + "pride anger fact prepare begin leave clue fade sound smile bubble mystery", + "entropy": "eb18c96de7985ff6f085161eb079009b", + "seed": "b98c9417dca1d0835c5cd7a4bed0632a35cf745e0b82f462124067158bf3b673", + "address": "1DxWJwtscq4j4pQE9vFFrg7hBgbagfVQLt" + }, + { + "mnemonic": + "exactly drove tool mercy floor devil harmony awake maybe broken practice door", + "entropy": "50d8e0e3605416576e6de2332b2636a1", + "seed": "4ea1d2544870656991bbbf23a23dd1b05b492519e472e7339fd85ea7c5cddf5a", + "address": "1Botk6ZVHJsLFYgGVPgx8NgrdYbkM9YVsA" + }, + { + "mnemonic": + "giggle law plan wrote root emotion weapon quite glory dew calm creek", + "entropy": "6099f485988bd3f394cb1d3e28667a0b", + "seed": "b828c319d6427a972c818182d71c4381d81f20f2574f2c9f1e5b0d8ddb3766d5", + "address": "15Dh1qbk21uPU2zhs6QmziUWB9yuf2DFL9" + }, + { + "mnemonic": + "calm broke patience recall sane scrape reflection mighty remember sheep breath bit", + "entropy": "818c4b841b73ebe72424c06f1a09fca2", + "seed": "c5f6142c9d1e475d1f4ffb39c604e7f1269c5f67be174e911f8dd94784f3b1a2", + "address": "1C9tUWAd2PdRtAncCY1h7SLP411PHmNJAi" + }, + { + "mnemonic": + "remind crazy darkness less stole own autumn possible ripple loss study grace", + "entropy": "ce748c6d56bf141afc1ee8f9e24e1a55", + "seed": "69dd401dc676dbc5133086f3691e6348f9bf7fc6aa33c44b532694433d1ba1fe", + "address": "19QYuiWSv5duaz7FXehtKQzc3wcEzhNh9o" + }, + { + "mnemonic": + "separate phone quite after void blur tie pray aim innocence frozen belief", + "entropy": "e6775659d349302ba3b50f0c34a85623", + "seed": "419a542573acbcb37d92f119340bdbeba96f56d68ea0b667a8b5379f0d773fe8", + "address": "1MLvGVyq6R1eVtAJoUR1g3W7xAMWXCbWqz" + }, + { + "mnemonic": + "throw more alas common group danger twice fail over loss blame wheel", + "entropy": "e1a136e83c7a14e0b921af5b30fa849f", + "seed": "8dd41bda31da394c9d30e8177580015dc9af8ff474e6cfacfd68bbc3a709e464", + "address": "15iUowcYbH1WpyB9mRVbJaVVZPBre8XfmB" + }, + { + "mnemonic": + "diamond during home lift during object stir air sheet although lord carefully", + "entropy": "67a8c01e327ae8386b36e82638eb2961", + "seed": "b64b1d41e7433be94f8b051be3164e178d27ce7cb46228ccbb1ae13cf27756dc", + "address": "1ByH52TpDYPwFGaijyenTiHgoMbbU2jdgv" + }, + { + "mnemonic": + "order blink crimson flame ship tide simply carry study swing unseen suddenly", + "entropy": "1483e92327c30ecc572154c448e4c0ad", + "seed": "77554179047f5dbe319d9130da3613ba1f15706b6c99c357566fe065036e8c72", + "address": "15piZEuFk2B4bRP8K5RiZn4tHg45Jj99sy" + }, + { + "mnemonic": + "easy fog real stain naked rant bang animal wife clue play effort", + "entropy": "61515d293cdfe3d3057db1c7a43bb1ac", + "seed": "fbed664b16f300941fbe1cedab04b6d533bba7d5d7dd985a04f1d6c970c27fde", + "address": "1MgMZH4SyeVkBqDBqfkjS8kZHb3C5qMAw4" + }, + { + "mnemonic": + "tool moan belong core came save poetry claim fresh dog line shield", + "entropy": "6fbd272c1191e379e0ff8f4ea4d07e6b", + "seed": "491b6e537d3b1bab4d39a280fde92fa6aed35d257c9366514724b2731a3e878c", + "address": "1JQkfzpKxRgQsLMpCPXgGtkBr7En9v9Ad6" + }, + { + "mnemonic": + "easy heel ruin goodbye laid truth whether tongue poem fire mighty great", + "entropy": "d4d1cc3b5f42a80fe5e2b6c92e2301c4", + "seed": "6ffc9042933904e600e8793df01ee424b2dba2b34c3429d9cca10140ae062a4c", + "address": "1K34Q6JSQE563XWikLUBjHk2DrxaF3Jdsr" + }, + { + "mnemonic": + "group slam speak grow coat handle admit father perfectly through movie soothe", + "entropy": "7307ebd1e493d4f976e8c54c4dc1bf67", + "seed": "d53d39ad6619c39fc5b530bd0248d08d4ce49245f311b14d4a2b17a62bb3b6b5", + "address": "1PcQKD8PZxkhbLjjQDakSBJ4uERegPpAi1" + }, + { + "mnemonic": + "worry gift metal breeze happen some object order warn pool laughter bridge", + "entropy": "06a77d1bf460e39c22c4d16c7fc6c844", + "seed": "da4e8326db8b1b460c0b906fb85103bad113f2d6d9b23747497502a64f09d76d", + "address": "1J7SC6S6LnoVhFPPbX1cxAou6LbM4Bp2Hp" + }, + { + "mnemonic": + "cease said entire flower darling marry creak freeze peel spirit mean kiss", + "entropy": "aea4f0e6e13e38cd01e0691508ca4581", + "seed": "619a41e145722ad56c2f3413f8425fd737f34fde7b8d309a3a3c5c2e6a437f2d", + "address": "18rbCVYh4eRwuRN9w62MT8L7mrMPaL7yqy" + }, + { + "mnemonic": + "dig muscle flash reach needle blood howl shoot doll sister chocolate soothe", + "entropy": "f70e137b4df3b84045eb3e702630a616", + "seed": "81b6f7662017dce85b5edc387e1ec415c365eb021f237840f3fa26351fc1f902", + "address": "19kmVTkfqvhkeudkZPtFLtPuNB74HDc2cj" + }, + { + "mnemonic": + "block imagination become lot apologize respond bleed breeze rebel exactly lovely toe", + "entropy": "7d74e98b11e773869e62f13e0fe6dea3", + "seed": "a914d32bdc0f4ee11df411699233396369ba798724a39bd321750527b640f839", + "address": "1AJhNYwnpJdp7czf6G1juXE2AWsQfnnbD5" + }, + { + "mnemonic": + "swirl letter only thump reality learn expression bloom loss prefer free flow", + "entropy": "92dbf406ed94e3ebdb52851b12ee3ded", + "seed": "5066b35f25e77f355f0c71c1ddad05906063ba81fb1f9cb42c6cddd508d4533a", + "address": "1MLFjxBKBmHqD7aB5wzmmt45aywuiTptvQ" + }, + { + "mnemonic": + "them dark bother idea verse child caress half accident trouble support separate", + "entropy": "5f0910a73fc27b4f88e39e371114a368", + "seed": "c43446a8fa678d1a7e700e68ab67a2b05f43218d5a850df4e14da1fbd5f7c525", + "address": "1MwH5wL2MEP2AXgDjYuzkr8UAt92qSQ6sZ" + }, + { + "mnemonic": + "threaten offer void drum shoulder alone them warrior laugh simple got make", + "entropy": "7c1ec037cf1e523644ad2017f50587e2", + "seed": "bed861eb2893f6cbc70c06c352e3f664218ee129eb95d3229fa5612b98d3fcf2", + "address": "1QAVuPybWDdJ4DJJNyoY7eaRrQ1MFFY6kW" + }, + { + "mnemonic": + "family mud fault somebody common sea serve fire clean skip strain men", + "entropy": "bc3e40313bed78c81e05947b3b9ad43b", + "seed": "566a874b4e798f97cda697f4231a0c1ee9482282d7cfaeb28e8aee7b5925a6b1", + "address": "1GsotWhrGdPvrqt5JNjhUoUYa5dtu5y1qa" + }, + { + "mnemonic": + "field problem memory doom doctor energy grew release blanket scatter fruit wash", + "entropy": "df49a9fd0c14175b0efe29aeb588e8ec", + "seed": "ab0b92413c39adf66e0ea2fc9a6fb5a00d773cb95f9234876a9c035a85cbfa1f", + "address": "19JnkoyyZMacXC7dXTBabq3QA3AqKuPnzG" + }, + { + "mnemonic": + "ugly patience edge clay refuse value press sure feast certainly upset cross", + "entropy": "5dfd187523a18632cdeb98f991e3d4b2", + "seed": "c36e3144f7eaa73ed7584728290f81a63a0fe924a45ecb0c8f82da21532154d2", + "address": "1LtpsDAd9D8YmgdDXagvRGtLmvZMkckX6k" + }, + { + "mnemonic": + "opposite crave void lot son muscle then scratch decision embrace perfectly score", + "entropy": "2fb431144b0564aaf648e8d33b260e97", + "seed": "147901e4cff3966cbc6d40281dce927611deac12d93e359b27d1713dd48cc2e1", + "address": "1Q3BQe9iTBsey8FugASR4bMGYopxmCZL5a" + }, + { + "mnemonic": + "stay whether bullet great lung more land agree throne slept mistake agony", + "entropy": "180770cf80a84d716c7d20e29c8e87bf", + "seed": "658eb952c563b4863df443b2d86c7ebe338ae9ae85dd17623d18be5a759a54f6", + "address": "13XsE7MDerEJx4f4VkX1Q3HHDAYqJg4GcV" + }, + { + "mnemonic": + "tree click rant surface stand drop advice dear enough rise choice sometimes", + "entropy": "f43b6b5c20b83ba4ef98439fc5f46aed", + "seed": "612c3781d4a280885df7cb22e76b342112432b0bff4b949b7528fb105a76164e", + "address": "1NFuoX83Lfc3fPFvTVViVufpFn4YGS134K" + }, + { + "mnemonic": + "beyond verse brother yesterday however grant spiral invite silence certainly ponder invite", + "entropy": "3bfb67ed293da7da3c59223006c63912", + "seed": "85250c135497f7fb8e9efe7207fb18533911aca9584993f90a3f8f49ec1e3597", + "address": "13zt5ufELAQ9HJckUs2EptMskp43rrHPoq" + }, + { + "mnemonic": + "bomb hero evening knock shimmer ancient purple clay wrote angry alive mean", + "entropy": "4bcd2d98ce2d852c2e502c1fd6c7ac45", + "seed": "379cd229296daf3cb59b3c806188680394ead6a42aa0951c7c5d8f5e64100205", + "address": "1FDXfZX1GVKMAMBz3g9A7ncf5UUmdxV4sM" + }, + { + "mnemonic": + "action want here different strip approach shadow shore fruit raise brain sail", + "entropy": "05440f2ec3880c19db738cb94c6bdd57", + "seed": "55d0ec9e092777c2f67730f90d2a25c63d3567838b8e8aaea66e16e09670f424", + "address": "1PuN5bi2p1EeAAspXy3Py9FYU8nkwNGeK8" + }, + { + "mnemonic": + "excuse crap party eventually ponder effort emotion button moan mean journey picture", + "entropy": "bfd1adafcb79a0f3474eab368e3cbd8a", + "seed": "5e6c5bfe78c6d986acf34c5b0db6b082075c8c7ffe715f9fdc6157c75fb434ef", + "address": "1HRcX6XTDe7doFdSZyeZkz1hRx5eGr8Snd" + }, + { + "mnemonic": + "nowhere million future brand known goodbye able energy sympathy six decision shut", + "entropy": "cacc9e7dff589dc96efe44398810e575", + "seed": "c437413e2eb5b985ac1e86fe773db6e0589fe93f2beec2a156150c5ffc491dd7", + "address": "12kX63czDTXotVz2QRoQ5srrPhuEDXhnBv" + }, + { + "mnemonic": + "apple slide heel ground sister other another bright cell test opinion free", + "entropy": "337e9630c66bc189790b76c94a72ea48", + "seed": "d6cb7ff38d813c01eb04687ae98815f48b5b6471c860d35963c69bc4849da3c8", + "address": "1KH8PWLm2Vmsje3MtCRbYywjiKtWPMDQH9" + }, + { + "mnemonic": + "children desperately hurry pause drop bliss flesh funny manage rule forgive fur", + "entropy": "28e9e7b18f7c9751923dbb387426809d", + "seed": "d0da18171478398d7457f8c6134cbdb4bcfabf16dab7d1a1812576ee65281462", + "address": "1JJ7XS8xqeXEGdHsvQ1iGrPKrPv9E95Wgg" + }, + { + "mnemonic": + "kingdom tickle over seem spiral nose might verse sane couch idea taught", + "entropy": "29958a744ec8f0faf5f6a3ba1adfbac0", + "seed": "c66637978d1170790da9969848245a41e1d199050ee474feac0ec8d571e1b883", + "address": "1cYqLjzzFv32kcrgureT11ALTYeLFZQqC" + }, + { + "mnemonic": + "caught sanity fantasy generation sneak manage dirt fail coward decay almost neighbor", + "entropy": "e559347f28f1516daa2a60889f872daa", + "seed": "5d3b9fed41fff331feaeb6d340b14149917d667788bb3b16dd4a5af74a1f2cd5", + "address": "1LvKwQGhJYp2gtbvCsjdrnjzBMaskDTxDf" + }, + { + "mnemonic": + "deny cloud wife weak army play remember message nice too foul chin", + "entropy": "3a1af98547ef785091dc04baf69b3503", + "seed": "ad25fe6e5a8b8933a018e202c288787bc9f61a4077adffc4a3aa4f5406a6321e", + "address": "1YDdQK14B6siYSTPdHqCbyAVHHyTvavJK" + }, + { + "mnemonic": + "stretch child slightly storm family charm feather keep blame tie became unable", + "entropy": "6da3a3d67ed3c1ad441ee7693be03760", + "seed": "9d557357fe0a62baac245a27ca52e4208d803479d8baecac4e296083afa103eb", + "address": "1GjnroTz2QKMSK3GAn6QRJtxMVoKtnbALX" + }, + { + "mnemonic": + "faint dear window inner pocket bloody small breath reach secret feather mouth", + "entropy": "09ae57da48ed84ef058383975f6f833e", + "seed": "aab96df868d96bd04ee5cdd14de642a2562ada15a0ece894e13dac9d7ff9017b", + "address": "1J3KrPkWrhTBKJnEFNuCgMoF8PktnMmVky" + }, + { + "mnemonic": + "leaf sheet bullet daughter illusion bloom faith heard pale heal shield voice", + "entropy": "205a7e20f0d88326560050085098570b", + "seed": "5d00628754f701e063a275496a26f5dff56a2631b2f734dc7a3833eb00671578", + "address": "1Gs8wcgEzJ2EcTvfDdUB43FVmLRR44T68P" + }, + { + "mnemonic": + "really desire eternity draw field eager yet welcome roar slowly love hardly", + "entropy": "411d93d892b2c3e3120a6192a91195be", + "seed": "d849cba797129556c0e588acdd40ebbc2273b28b64a393265f6c01856641426f", + "address": "1CiJYacHDSUPNGma8yjpKT578FpbLBUycj" + }, + { + "mnemonic": + "peaceful especially verse sunset forest favorite complete careful become sting grasp bring", + "entropy": "55107382fd4f6b234a724baf967bd46d", + "seed": "74abd3a9bd3908ab342d7e3d84fb1351beb524f2c265f1addc930916d051cdcb", + "address": "1DXcd8qoPaEbq4z7YdJmrvFsvJEsi4w6Ln" + }, + { + "mnemonic": + "anything existence act dreamer innocent dog win lick bloom style quickly skip", + "entropy": "707671c1dbc48c84d4d206347a0e0f2a", + "seed": "587a9c9bf279c1f4fc95dd304f8505f7533a2461950d4f64471797bd63971d41", + "address": "1FMBd9FJigEjAFFW1Ht9NH2jA8sZcNB1hC" + }, + { + "mnemonic": + "hang wash due suicide gotten sword less wonder girl click pink earth", + "entropy": "91a01ab5d569b87af6701126aed971af", + "seed": "521d5dac6c2472a9d97eff18c8e5ae4d5ed3f7bd12fccbbc1a0a9f61253e453e", + "address": "1J24rpM8ih1EddxoNdkCjt8KErMPMzJe7M" + }, + { + "mnemonic": + "shore class crumble steal screen city quietly ink crush save steady shock", + "entropy": "8aeb42a6beb51907d87b5053d4348bb3", + "seed": "43fbcdc5b02c5b4eada740ce126961cde87f677c3970ffd24dc85964bca403be", + "address": "138W1XbffxAWVubmEaQefFfXTHzNvR72xd" + }, + { + "mnemonic": + "here certainly about pack state blonde footstep opposite blue history dot strip", + "entropy": "151a1a8e03774552354df9e919e30033", + "seed": "4e3d7cc8b7c77c42ba3d3a52fbdaa84a059ff3f2c404ee400e0284b2e2ee9a61", + "address": "16dHGvPzSyLun9K1ScioPZoKEfaCFb97DF" + }, + { + "mnemonic": + "bloody hop offer egg ground dress pig quickly north curse great snake", + "entropy": "8d30482c23b27fd4a0d181fb8f86d44a", + "seed": "1fb3fda022eb1b198df698116e1e75d3f72074974e0d849a04135309e5719c96", + "address": "1MW1jq9dSRdRMxb3RnoK9YTJAdjDgYFKVc" + }, + { + "mnemonic": + "lung evening demon work bottom spoken presence great child age stuck upset", + "entropy": "a0f31ea03fb92bec15839cdd5ee23779", + "seed": "f5e93794a15b8ca0c0f08637055a9b23df8ae7ecac53c65737f858893d9c41f3", + "address": "1in9md6P4mzM87ZDEF5SDeaqzXSZFKNcm" + }, + { + "mnemonic": + "feet presence remove blossom hate good past chill fan dragon muscle glare", + "entropy": "3cbd4c5afcf73c8b7da5cdaf2d028d30", + "seed": "9c04a59c51a2ecfdef5cc0d04fa45ce764a54e825adeb3be8a5bafe1b0aecbfd", + "address": "1NTDnQtrvg8x44o1AU831mzxjFq6cZnzDj" + }, + { + "mnemonic": + "look forward create hurt opposite mend impossible clock drama shut dear shoot", + "entropy": "f2939faace6a7ee1698302ef51c2181f", + "seed": "7f8fd1855f9cf16889c0b36c12acd8726c54cd1eab7d5cb26c099ec1ef3249b3", + "address": "1K9YuToigra1gCmtukCBANVqQdVZtDrbCA" + }, + { + "mnemonic": + "proud blue hate hardly split hit pour normal cheat canvas weave little", + "entropy": "eff3499f7b124c0e6ba5c0ec12a0e692", + "seed": "895f695ae83f3177b378df1868c6b28a4adbab1dd994b33c879464f09e7f9630", + "address": "18BQxh5vMygyVCFfXK4HUFQv9p2Exger5P" + } +]; diff --git a/test/elctrum/mnemonic/test_vector_v2.dart b/test/elctrum/mnemonic/test_vector_v2.dart new file mode 100644 index 0000000..84124d0 --- /dev/null +++ b/test/elctrum/mnemonic/test_vector_v2.dart @@ -0,0 +1,322 @@ +final List> testVectorV2 = [ + { + "mnemonic": + "\u4e18 \u70c3 \u914d \u4e8f \u8270 \u52b1 \u5927 \u7406 \u7518 \u7626 \u6270 \u51cf", + "entropy": "04577fb9e51c0a202eca5a9dc87f7877f1", + "seed": + "da250bf61d5891c3e5622aa9dc6b8979ed4f73126e6ea68e7df1568f3272934e396841bd27b9134515b88af2ecd083f8aa655bccc348fd8fe4e235ca8db706e7", + "address": "129FW8NTbQwvQVwqSJrLA3nQgE79XirJX6", + "type": "STANDARD", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u60f3 \u6068 \u7eb1 \u75af \u539a \u82d7 \u6599 \u4fd7 \u6a2a \u9b3c \u6c57 \u820d \u59fb \u7763 \u5e2e \u9f84 \u8138 \u7ef3 \u4e4b \u5c18 \u6c99 \u4f3c \u8f89 \u5c04", + "entropy": + "5318dd2eb37904106b2363bc8869c5f6ca4b392c33f5dc62fde5ba4f8d347270b3", + "seed": + "6ddddb8710c4a02c4563db121f7a43936206e69bae81c413c49a5b3afb1baee682d5ca709b68188620d5d51bb143046a8eb97eab017bb51eb1886a802b2c97ea", + "address": "13hAHk4wUFvRto8sNcRSfPNbngHQYRefbE", + "type": "STANDARD", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u518d \u6ce5 \u5fbd \u793a \u63c9 \u6545 \u9759 \u9650 \u5747 \u5141 \u90fd \u8f6e", + "entropy": "0436166e1a3353cde131f7e29be1a16131", + "seed": + "efa42abd19242e707324067aa3db9f6d0c9050d822bbe04c7db1f6fbb08dc854f6af63adacd40bf019944ceeb255c5d5c4c58fa30b9fd49c22ac393ab724288c", + "address": "bc1qs3g5wl2e8e2frampqj9f2wld4z86z0p4hp9t7t", + "type": "SEGWIT", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u5409 \u9a82 \u671f \u6da4 \u4ea6 \u4e3d \u54ea \u755c \u542f \u6309 \u82d7 \u5668 \u788d \u6e7f \u5f69 \u80f8 \u8c6a \u67af \u5c18 \u67e5 \u576f \u968f \u8fd1 \u9012", + "entropy": + "c02648fb73639120b98eaec230c60b5cd22ef2ce6d2fcc2b7ec3c3ff663ab5de1a", + "seed": + "0f3db825c2664bf99bd13b7a2570fb88fa47e36c2e45b2d4f98bb5b0b5f993730d1b14cd8ea05b59ea9fdab764909d2fbad7d7e028b54a3679d73358b12cfd0f", + "address": "bc1qhu54vywgujlnkt88c05ncqg0ms3svc050udvcw", + "type": "SEGWIT", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u7f5a \u7bad \u552f \u96d5 \u7ec5 \u6696 \u8ba2 \u6216 \u80c1 \u4eff \u539a \u521b", + "entropy": "0502e92c1e7c12d26315735d94fbbe9d79", + "seed": + "23bfeb0dd61ee70ed1d446a82730ae7ac6fb9db32d453803643659acc61040fd14fac4a8e64bfbc322b7b5d2a9968c2d5ee6617341ba0b77a2935e1ec80499ec", + "type": "STANDARD_2FA", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u70ef \u6c42 \u8349 \u59ff \u6db2 \u90ae \u51fb \u5398 \u4e09 \u73bb \u6b63 \u6591 \u59dc \u8d34 \u540d \u70b9 \u6297 \u69fd \u82cd \u9aa4 \u906d \u9a71 \u641e \u673a", + "entropy": + "0babc735490e5def70b2820c055ef9792ee422e500409e6967b41f3ef2a64694eb", + "seed": + "ddf0997605d52772b23a7bb10832e1297b4c25edbe78c6a155b788c56ed4c22b147db40831f4d8a354550707592b448352889c9fcabb0103de412f02170c781b", + "type": "STANDARD_2FA", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u5bc6 \u7092 \u95fb \u8c13 \u8865 \u65fa \u8981 \u53bb \u7ebf \u86cb \u811a \u6ce1", + "entropy": "0a3ad99ab8880c804b77b7967520f54a0b", + "seed": + "082e81240a6aeea0348abb2d3e592f1b0c2731f554d5eab0f5764a3207c8c8e1ddd119bbb3a8c0fa0349a4411e8fd4778fd9d0b5e68f42da1a72a7ea54c2596f", + "type": "SEGWIT_2FA", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "\u7eed \u96c4 \u8c03 \u66f0 \u80f6 \u65c1 \u708e \u9080 \u6b64 \u5858 \u60dc \u5634 \u5bf9 \u4ef2 \u7f16 \u5b59 \u4e48 \u4fe9 \u6885 \u6015 \u6597 \u5149 \u8d5e \u559c", + "entropy": + "6c9254839516e5657df893750e4add020981be34389ee8d99e38babfe878e24243", + "seed": + "b1828c4fdaa039a0572e21ee40ebd1ab55b1634b9731f37d0ab584048b02b7503bb005022d2d0642a1f9c27324ef34c3e21b800040149ae92251a76361664ec0", + "type": "SEGWIT_2FA", + "lang": "CHINESE_SIMPLIFIED" + }, + { + "mnemonic": + "brave antenna radio liquid panda wave filter laugh script same van main", + "entropy": "0865e26fbe0d7d8acfdfcfb825618270da", + "seed": + "f8bc179eb54a48b4c18e377fdf1d3e60eff7b233cfc8be1e681a230a13a548e34fb1e194a3c41ab6b3d63fe4251fe05e93629b0739cbdb19d2ace31038dfe57e", + "address": "1Au964QBqc1wggH7uYRBLx1dFbjdz4zrJu", + "type": "STANDARD", + "lang": "ENGLISH" + }, + { + "mnemonic": + "rifle fault radar grab armor element lava grace exile step miracle thrive inherit come net indicate lion hobby laugh alley practice analyst install winner", + "entropy": + "fbeeac2154b068fb1b141172f294b839ee131af55a7d656fb91e85f6556154fdcd", + "seed": + "f1d80cae51ef47d873796e917e81741c6db5e0686a96f1f08a49600a0e96d30456d2717907f52c3b10fa223800e478d210d712d5135689987bc62fd9c7bb1def", + "address": "1Lic9driLDBxNr65pRYXtUxAmazCqnuUcF", + "type": "STANDARD", + "lang": "ENGLISH" + }, + { + "mnemonic": + "prefer seek across undo among ozone cram cram spend junk lady habit", + "entropy": "0682f91e568a3226467a03fece04b0c54e", + "seed": + "f04c2b52df15d96f014046992eb903a2c229b9440e06cf15675c4054ba827f5f31aaab6777f725196fac9583eac90219e5eb15c65ba314320115953a5c8ff552", + "address": "bc1qwv0l6zpll80r0zh73qv2hkqcmjf0s006nxth4x", + "type": "SEGWIT", + "lang": "ENGLISH" + }, + { + "mnemonic": + "park regret notable happy net nature delay waste insane vacant crouch pencil blanket employ abuse market group noble sauce pipe prepare manage knee theme", + "entropy": + "e00f721bd4fa557f256b37882025238baa2a687c1ba7f7a73e4dca568f2d2d2d02", + "seed": + "5adc299c1bae25960d3174b65934b5d5b2ba9e9de8e1fb94ea4455060662c1560c9764b7556c624b71ca2fd3e04a171c1f05baf6bc69a550dfe3d821d26877b2", + "address": "bc1q964kmpmk645ham4ne8c7htaakcy0txchyz07pc", + "type": "SEGWIT", + "lang": "ENGLISH" + }, + { + "mnemonic": + "confirm weapon outer party liberty rent come cause addict dwarf major stumble", + "entropy": "0d7b0cd1281a2485c2d9407a093abe1177", + "seed": + "7a0709088b39fb3d2253d88743b433644618674a8c56c2d892c1605546dddfc378fe53363b3c8ceb6a8236a30b4f4e1e0d916c3b670af7d7019d1f5fa3f1557a", + "type": "STANDARD_2FA", + "lang": "ENGLISH" + }, + { + "mnemonic": + "ridge turn pony expand brisk tray fish good ship mind allow negative squeeze unlock artist final artefact sentence embark coffee path joke identify gym", + "entropy": + "680e11e15072d290b0f8675681a3b869c93e0d633e30646af79e8e25034ffab5cc", + "seed": + "d1f6c2331f8d8a3ed7cd22470a95e77365ca35bd5e7519fd6933181eca4342ed5188629b4bc2d9796fa66edd4e6de2a0329fadf499dccc5a809dc055a122f7c2", + "type": "STANDARD_2FA", + "lang": "ENGLISH" + }, + { + "mnemonic": + "cigar dilemma shift deny gather rather this strategy person wine merit robot", + "entropy": "0bb3173ee51ad6dc1ac93033ab8b8f8947", + "seed": + "4b0354570b73ae8ba3acfaf8697c94a8bbbf1113354a5013ae4dcf73e5463e9f3084451139e6a68b2e42a05258ebc5a867fd3155f54d2b21a39924f935a5a036", + "type": "SEGWIT_2FA", + "lang": "ENGLISH" + }, + { + "mnemonic": + "logic march decrease recycle prison phone panda resource close hedgehog giraffe tobacco sing artefact finish hub swamp inherit dwarf hip satoshi slice tenant border", + "entropy": + "19dbe32ddfb6be895cf6d96e8ae033e4ae32c45aa15db793ee8e558b3e7261f41c", + "seed": + "6d345fd0b2e61d561617badb646137288565176342a7d86c161e4230fb978f7a52f84bac8cafc0b74e753098a4cc46532cbd9954e8f8acf5add4893f5dfdb97a", + "type": "SEGWIT_2FA", + "lang": "ENGLISH" + }, + { + "mnemonic": + "molusco recrutar perito ampola igreja clero fugir tampa igreja abater virada venerar", + "entropy": "0f89f8801befe6edc8e6bef1077373150f", + "seed": + "7a80ea394292d978354d00fb59c0dfc42d6a4c21beb9ff2bf67aff11dbef09633138f7116357ea309e7b964ebf4a1405381443ea8e3b4f8d0bc637fa019578a3", + "address": "1MKHPBXDh6Vio6uiWBfuX3dccJVZvBDx4H", + "type": "STANDARD", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "enrugar dormente cujo vetorial edital capuz oliveira garimpo permitir cidreira surfista terno raquete arroba esquerda desbotar russo tutelar galocha orar lisura fluxo tacho evasivo", + "entropy": + "5fdcc1aac92af2e13cdeb34a2bc05b64dea5c9ce15ce7135b0c3a97fa0875422c5", + "seed": + "98bc9f295646bd0189f6e6e24811d6fdf7bd67d1c04637afac0ec228d28f534148b7b35c2b74ac136c40f163b33270ec671eb115c8f5b665f22daa9a696bc4f6", + "address": "1KZJbCWUBKunFPx5FAb2uvEjKZx6LejZWr", + "type": "STANDARD", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "circuito aviador abranger amenizar noturno vertente esfinge bocado alarme dentista figurado intriga", + "entropy": "0856d0d24055268b93e6d4c0f2024709c9", + "seed": + "778aa8b34602865f687be4982eb3eed70e730517680d60ca7fce2c121583cceb4288d8f76c243e6485a60e0bca4f050c5bed543f584839a049dfdd31369be16a", + "address": "bc1qe755xuzjh4tah77vuq3fc43jwxjp93a9460nxy", + "type": "SEGWIT", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "inspetor novo tijolo morango arsenal melhor ocidente arenito esteira aderente maior cogumelo custear neblina grego rebaixar cachorro torcido bitola jurista marujo rasurar deusa semente", + "entropy": + "dc29872a4d28a64b7b6961cb4efa9aa2a3b52cc172f215b57a710b8a25d72a7c24", + "seed": + "983ac620c3312f7b3c1c299bb1724ea54fba039c8ebde255c6df56178443058987d00f640d59942de12a5b8edb056ca9ede4311cb70c6b72084ff104a06bbec2", + "address": "bc1qdwdh5tf4guudlzqqajtq95wguwkmmzde0mv0e3", + "type": "SEGWIT", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "encenado esticar notar sovado duende munido buraco reduzida esbelto maior tiragem hesitar", + "entropy": "07b5d8659adfcce55a91a8de2152979ab2", + "seed": + "f318ede69d65fc50bc74ccd0832c86655afaebfe758d51bc64f9e8643566fe3f0308c5859c86fa5e1d20750da155ff65d6934cad95c8cbab071ae8a1ad802315", + "type": "STANDARD_2FA", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "honrado quantia liberal arenito bipolar sazonal retirar feriado solda cercar valente grilo moleza externo convite bombeiro atender planta albino enxofre esvaziar baleia objetivo amolador", + "entropy": + "0fb5607aaf75aa166f78c92787d58b50c783eb8d3700673a2f6912715b217183e7", + "seed": + "4fef1c3f374decb5eb185c724383cb8bdaa3495aa531af6035dc645d63ba7bcb2487d31d2aa55dc3634a8d050f2d1cd86049acb953f913c3bdade52c84e573e8", + "type": "STANDARD_2FA", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "biologia peixe adeus formiga dinheiro cartaz depurar suposto predador chocalho tarraxa virada", + "entropy": "0fc5cfcdd60ee48934c826f6be0c2e0924", + "seed": + "b03cbc282eb9fa9c1b4590e8c7e9cc3a53cfc2f825e1da8b8560a7138effa800660fc76cc1ebed14437d147dcedf8db3df7d3b0986d8593c109c122ca40259d4", + "type": "SEGWIT_2FA", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "umbigo sotaque sedutor covil cerveja rosto gingado urologia assinar emissor telhado palavra tamanho curto esgrima amostra abelha lombo cacique cooperar beirada plebeu abaixo jejum", + "entropy": + "888006f910c3ec58a4d005100ba114735b3dd31548c0f44e93529a9413b678779e", + "seed": + "51bf12513ed6d96af61a38a4f406b950481db3aea1ae76ea01d6a89ca571a9dcbc148e0a9f1e5d8240b43ac52543f83005f62c5eec1b8180ee3731c38ae2ff88", + "type": "SEGWIT_2FA", + "lang": "PORTUGUESE" + }, + { + "mnemonic": + "rama coji\u0301n koala ave turismo recoger soldado pauta millo\u0301n cumbre pinza ocurrir", + "entropy": "0a09684f5479ad5b3f0e78b186f1cd6608", + "seed": + "2fbafb9843584c4a1a1af144959210c6c8801e2674dcbf996fcc51359b594a458e552910495f31a056cbcbd1185739a571c5303d12ab29a4d1079d764127c315", + "address": "1CcjrQ8WBQLjATq9twGMbFU2fFqKNBo7Nd", + "type": "STANDARD", + "lang": "SPANISH" + }, + { + "mnemonic": + "gra\u0301fico fuerza vibrar catorce coger corona salto amapola delito proceso corbata menu\u0301 me\u0301dula butaca vehi\u0301culo clase lavar foca charla destino ron gris llama ataque", + "entropy": + "15f0359c6664206056f3e033becc9545e8ce712ee2050b3a2ce39aa2cbf2d7bb30", + "seed": + "492ab9b19ada51f67c43eb8b2772f530c5387b368e90ed783f08ba9cf63233b6b9bf0036ffdc83d5cf188c1f77b84adbd2775a27db5edd96f42d9c78acfe3c83", + "address": "1AMCSxJzJty61st94y7fFtfPhDeWxMA1G8", + "type": "STANDARD", + "lang": "SPANISH" + }, + { + "mnemonic": + "verso leccio\u0301n leopardo o\u0301ptica anciano olla foca mejor orador cambio soldado cazo", + "entropy": "02d3b3ca1d258c0b7a8a865a44fb9f1fc7", + "seed": + "a0f065e662824de253c47aca49443fb7464ec9690eaf178eb8946f8582140f230c241d125bafe1aa651406f7c94d461faf789b6d2056f9d7f9f5f940122c4a5b", + "address": "bc1qj2agkdr6t5zn8jw8mxwf8cdehpehxf97rnrskr", + "type": "SEGWIT", + "lang": "SPANISH" + }, + { + "mnemonic": + "zurdo gloria lluvia opaco pulir tiburo\u0301n nudillo giro maestro borde curva trabajo pen\u0303o\u0301n dar pinza urbe definir pintor trazar coccio\u0301n orgullo taza manjar bambu\u0301", + "entropy": + "1b71038ad2d347dbad0201f31684fc57eec87d08442f6413a39adeea3905591fff", + "seed": + "1e34e9bc28b0d48208bd5a464fd8a3398c6da5687dcdbd483dee6916cd744e0c1c68a2bf04f3e14a0662ba150adb317fb8c95c916d3e9c7627d8c49c929df2a5", + "address": "bc1ql8pqrvlnjhe7lje2ehhpnfldgyaehckvrd4y5e", + "type": "SEGWIT", + "lang": "SPANISH" + }, + { + "mnemonic": + "sata\u0301n falso vicio caja hallar fianza cri\u0301a rubor falso ogro tren olfato", + "entropy": "0a27dca86aa7ce07495fb5026ff3153e9b", + "seed": + "3574484c157fd80f0951b8e33b924b74eeef73d956605e7e7715bf218fd7f5dc624761083ec2a51cb425977268d5cbdae8341b377712b22947424219c1a4af1d", + "type": "STANDARD_2FA", + "lang": "SPANISH" + }, + { + "mnemonic": + "rampa artista grillo cigarro empresa llevar modelo sorteo arpa pulpo tenis choza guerra oriente aclarar capita\u0301n regalo plural barniz reunir huerta papa\u0301 peato\u0301n garaje", + "entropy": + "61b5b6aa375c8e386dae272a40529734230dc9af8095dbd22a0926031ecd84de09", + "seed": + "cf1b025b56cdc441fa347a4a7d928ac93b89f2030c96ef3a6269c62d768579a3953b11b2a170f501f0b3ce3c6d467d87293a67142522c34283bb500439021fa9", + "type": "STANDARD_2FA", + "lang": "SPANISH" + }, + { + "mnemonic": + "ri\u0301gido terror amapola alga ani\u0301s pegar herir tarea cuidar hada desayuno curioso", + "entropy": "03e4831a79e6e1ad6eb986d09016796e51", + "seed": + "9c03417437cd047f1b2dba1ed4100a8f2ec060e5861d80504f3b0fd1570329c3cee43156df066042eae34a5afa836f81848c375a7cdf317449cbccfab628d3ce", + "type": "SEGWIT_2FA", + "lang": "SPANISH" + }, + { + "mnemonic": + "ti\u0301pico sano luto herir aduana urgente cubrir e\u0301tica cochino forma oi\u0301r fiesta octubre peldan\u0303o perfil rei\u0301r grito tocino monja cuesta dolor minero diana mostrar", + "entropy": + "93e8663e22e3c9253a6b39c5b61ebb50159143d721a451677fcc8236b70a34a742", + "seed": + "46b60f057727ace59389aea7447134a169ae841b556d1f1f6aa664d24d1a4d8da3d7e61632e290d3f340a20f256de93d7132a459611fc1aad70a93eda8802a18", + "type": "SEGWIT_2FA", + "lang": "SPANISH" + } +]; diff --git a/test/elctrum/v1/test_vectors.dart b/test/elctrum/v1/test_vectors.dart new file mode 100644 index 0000000..1f3311f --- /dev/null +++ b/test/elctrum/v1/test_vectors.dart @@ -0,0 +1,2082 @@ +final List> testVector = [ + { + "seed": "e38d79d6cd7d96a56c72ec15de64d8a592aa2ec08fc128325b4a88dd82b04d69", + "private": "5KYW7EaBXjQFU7CdHfdZQdXcb3HU4nySVBB8e8zkqzFDJqRH5hX", + "public": + "041b165e498ebb28642af6464964b060719fc3629305e148731d3280691f13da7e28461f49db33a19b238587830690921b7fdb532a662425884efec8cd05790fee", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KWGMjF1cAUTAiyiwiMW9xUV4jmjUDQSSCceuwE3UG3vnPLArvo", + "public": + "045c5c3d556fada3c3199af818e2b27ceb0f0a89d53eda605a7ff289a1eee1e617eb5a6cb06951465fd95b11f346e1f8b4f44875dfea12763b9fec0d8dcd8ca5e0", + "address": "1DPrXTQ7GTDRrZXwFR1UttofapTqunbBnt" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5KeQvXmV3wLZP9ChfGSeXM4gkZPRZ623DJNE4XLtB233cBLsRQ1", + "public": + "042e387c71bec9b40ef653e2c269214eb7dd180aac76e028e6226c8e909ebfc0484e16444b2514de14abdd150a502223fb8f148b59b257202c39dcfccb0bf4fd1c", + "address": "1Cv5J7sidn9jFnzW55aGZY8KTTiJyAr9e4" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5JfzzjKw4ufNWAcBBEjkx2D8DAn723j4qLRDzhCTAmLkmYMoJtT", + "public": + "04c11ed18acbcfd013c681ca7497691d00da83e309dd646bafce2ab3cf40babcd8965fe8133f23b591cbc2db1838dc9250a08e5ef989d76fbabbc0435e44c0190d", + "address": "17XPGKs9gygJPyf7TAYHhwHEzXijRrFgeL" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5JjCXdBdeZduZq7YG44h2mvf6QZSTzdo1twKS2Cp6MHi25gkpGT", + "public": + "04dc8f2a8cbd6110443233aca441b4a130a3f13f4e50b5fa7085491f375c8c404a618a19a7ad6661575b683a0d78919150e3bb585faa3b9949c97926220b083bfc", + "address": "1C1DfHxrvZbHNQwYv8MBQZoNGLcePYsh4" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5KTUJUpQ5dC7ghcdR2isgvCJZn2W3Xwturs2BfPxMCDYvbkzBym", + "public": + "0426d2edd95f8ddfe993c1326c815e294f2c484bb45b64b109b3459b3491cca582aa8ec3712488db37c8c0b4726eb9f7fa4e2463722fedc75c4bf125b689e29bb3", + "address": "171R9kPycy665MwgTCGTa8B32YymA7TMnH" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5JdDu1Tp4qBdtrgGApJZcRaVaMAnQ3kkBnoEgAje3Hp64j8Fmio", + "public": + "0449179460bdeaff27b692bf84a64496f37210a07f8744b849e5941c10431641beb47de31bfb1726c54a1020303b3ab8ee6339e9520f19e0680cc3a3e541ab3d54", + "address": "1A95eh85VMmdez1dTw1oKdT7dkJFqXb9wv" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5K4PHHvejjpCKT7umLq8CECDNQnA6n9toFDRaC7eoMsJjgrGpZ4", + "public": + "0407dbec6ab5336b85e130884d3b39c8881cc702079228b302f4dd0786800c168acd8e5478dd6bcf7c64f60c9d5ae6132cb531ff60b385fb4b54a304cf9f19c04d", + "address": "15rkVgQSdZ5We8a63rycuqTDCw3XEugtXY" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5HqpkBEna7aZYM1vm53iGJ9oKfYSVpo79inWfZTgyqTZZtahb1g", + "public": + "04b68310ed0b5e1b2ea79b04375c6316cd1d427a028268abf2eeda4cdbd4e4dfbd3332f50fe8ca80b5bf76382b6993908c23da514ddcb9a2b7772e0c7214e59442", + "address": "1Fq1o1YT2qdvR9WwfC7mMMhHSMq54jwAyE" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5JUDzCnZbmkEzxSUWXrfpoZaKZzLhhjoNLL9yQoTqzGTqbCVbmo", + "public": + "04c29ae01ce1212303681dcecda1e3614b430a3979625ed8b250954f117147847256e8b056e2cfef98e4ad49e556cb59a0113262fac317b2b8b9984aaf8563e805", + "address": "12FfWnYvH8eL9HQGW5tBJAL8RbF9STAxjz" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5KNheHUEkrYd7fhrGY7nWbdDFEQTc92TKue4kBUPFxeMmCKtNrG", + "public": + "046df5747702fa71d6c647463d1636253d04a217e155d107b953710c9ea60409c931ef484b5039d14bc1ef00e275ffc128c6a0461f54ad5cea51b47c8fc1634113", + "address": "1M6rozvFAD9zB9wXuS9ivmDF56fLF4h7SD" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5KChBSGpddhU14wkfvPTQZqpG6ESgBvBqBC73JsrYp9ULc7uSyx", + "public": + "04fc0c9f24781ea1fc097a1fa5438065c02fc6cd90850e882a3fd3c6a8e6a6c924732f387fad97c95e0ef526a7eeb8b46ba8b213017041c088782120cdf04e5d66", + "address": "18JuXXNaZa7NY2E1CWvsQHLcDZhThpuASp" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5J8KUJee1m7bHqTNa8FoyUeDAPf3VSsXBbG9Gg77Kt7c2bfBqsE", + "public": + "04efb0156d51fda121e326572eb39bddc2f950e86917d4df293616e4665c928d72e4aa3f90929507206b27f649f4061bf6a158b280ad08fc50b4132acbe8d3e4c1", + "address": "1Px593Xi28zSLnsxTsbW7cNkQ3baNNReya" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5JghPgBT7P96kbA4Mxj7onAPhaPRQE1qizJZWw6gRvYStLrQL3c", + "public": + "047280027eee55a02e6bf6713f970238aec062facb1e7f0dc3b55963a1b9c7b19376125104434e54d9afce15e61a079bf4120e7f1b275d6dd4e109989c2ac589ca", + "address": "1NevHZt645yPdFNeAi5UPZcTAhYLFDCEdu" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5K6LYx2JvyWGfVfSSmVCjghi9WzQoAH9FAEqbvQVjtjFsaUVBh4", + "public": + "042c58362f9f2a75eb31a67d1d8a42b9ebff5d1991d211a3f1b81004730232d8de82df20d0853f14921eec248a263709bd486d49cc3c10e56d4f0d7acf0c417a02", + "address": "1MGSjbpgtdmp3jJ8JNwj9Fd8gsmXNmxx2" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5HzMxea2wo2FE5N3ZPTvfiANaWrYzhfoks1YGg3ik5zqq9YkxiU", + "public": + "04b224109cbc4213038e4ce0905d5099005d53274310e61aa4a3f23949fd75e797104dd5292ddf6533b578d808c3ac3e0a32a254c07c561e4ff86de36ae49a1f62", + "address": "1P2YPLxw8e1yVNdkfGGnCRm9qyMmjCJC8c" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5JewnDw6rL8NEKsmKyRRhR7dDk21KdGGR79JJETn5JJWHG77XeL", + "public": + "04a982545b91c114c89955ea5c392453e36fd822bb8a02aa31df27dd44957fdf70075d098c198d5032410035adfda7aa86321818574a6430c859634827b1ef594b", + "address": "1KfuLfCdRnGm9VGC9AxUfvrnWLFeRtK1LP" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5JfSFEVT1MsR8x9gCK6gftjCTrVLEP4soawmjRytE9bAmnbNBjv", + "public": + "040cf5f0a522f838f82b2a902637c58190dba251729024dbea6d430662bb78ed00a477db81fc539841ab99ca08f36ba305928940aaa995cb7ab317f57f3254dd36", + "address": "15kbFjrUBzvebR2dz4Usj8G3eCY44h2LSr" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5KSqz5BvhwUCy2KCFMUf5f4HG3RYSmJb84u9gcCw97AJCeyrv9T", + "public": + "04d1acd7390c1d53bee4ae11c6f084bc0424024fe5171424a8992d6bd80d4efd683bee35f3797ecc3285247546d07b709464cc01fce958c735a035a7dced3157c4", + "address": "12p2oneweTcisJ945hK4ncSzNvZYaSi4oQ" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5K558xy8272XTnFVmPgbZKpJmM3YEsrNRUjckWBQbumYXe4zYvx", + "public": + "04667c5a4bfe9309be967c81d16018877a8972520bc91192036e0683417b4c1d3ba67415aed36482d491e6ecd1aae842fb6c6236c69e3dc6bb5fbc6e2cb866f8aa", + "address": "1M2UHMw2kkPudWQMmZYBWraSYTnGSJMF6" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5KJu2nxmzQY5e9obx5voTDswyF3Wjjoj9hB5NMCcwBdxqkJrsZr", + "public": + "048abee419c51c4a3a9cc54ddf55f3683575f4274fb0e63f3201042064166868e2cb84fbdc73c3f970054bb4ad2cd4dbd7f4c0a08ddc2a40bd65dbb20bc86c5746", + "address": "1EJKdqvSxtTunsTjYkxJdRRhVAQnRts8J3" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5JpuMYeae4LphXNk3f1boAu1nbKNyqqCSDhxt2yaM3uh3yTHyyN", + "public": + "0457fb5dcbd4fd196b770f7fdd89c86cf9229e152ff718d1de65826bc3adbb4c16f9db69f5fb103a8a1a5dfda77e6262bc50c00957dee7321a1db0cdf269c70593", + "address": "1JVjSwKDkQXJdvCgyN3Hy7upGMMCZRZ3LZ" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5JaeMfKb3MgWWWgHKDZFzyAQv1BZsvSvSSvh4sdUHpiukGqn4XV", + "public": + "046db573f823c8f43e47e3cd9dec53efbb0cebe3e7b06c8cc9ddcf6cf1c72bc88edd82690b6c3d28802efd8978300f813dae26cd8de99c8ff20d3bef2361d83db3", + "address": "1ALomP1HT7GPZHAcfDMbhBGJbGCegdivhi" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5K8pcMrZzhmf9vmgHJGquXpSNJDsRN9NLUgeR3D95re1hh6X3Xy", + "public": + "046d6b5fc58e623f69ca1f3ce7a332a7e716ac6f41e265afcde0ffde56c7e0e0768897593ea5e2a0d6e3a3ea743f00a898cb98f391b75b812e8b45e5bd2de5af00", + "address": "1RUmTvxziQTpgTDoZDtdHd1Cxj6diSNqc" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5KS1cxhruWx9GvdxtAKYoquTX1tiPXjKspLJd1BsxM7fuGXgMHB", + "public": + "04458b246429279d1f5e0765e13ec7cc6269da22af89b4c4488794e355c085dbc617f798b958e652fc96aa756c2de0890a7d45b931f528e04d5b9e338ec96e2d39", + "address": "15UgXgLw5wGXoRNMx7ze2CenkpvC3rvbDX" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5JpwF8gf7SV7oawCDpc36RPRniPVD8oBmSDykZytLc9bMD9f1N8", + "public": + "0465551357dff63ea3e14b7d52e32dbc32377b31ae28da46339f3a2c916da1fcb8a8704dc7e1d775929d9bc2f77010ede2917e27e814ccf3b911cf7b98ccf8a77b", + "address": "17ViRpMsVupBTKjqdqCwc1VFBHSbjKsBHF" + } + ] + }, + { + "seed": "3600a796ad59791b377111e88ff1718e204cacf118d8c2fe0a9747ed26d0eab7", + "private": "5JE51Cu8hVQ7nS127r8AsvPoajuxJxQMcDCjFfpdofTexp7PtiD", + "public": + "04a8395c1af22d616b572d8187b573b9247b660cda933b82aef496616e745decbde479f42eb6387a4f02c374dc46349fe7e158e1dbe6db0f96f376497aabd0d8ea", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KZUekKZpTo1BydQ2xpjf9wBf3RHMTceVU5RQTFCwBUYwJ3AfA4", + "public": + "047c077b04a59d49176d4ffc2130913882445a437a280b07b84de64ad837ef5ba84849d61ec773e8963943d01cf9e1d6aa9ff4629e8fc6d451144dea609ecc9802", + "address": "17PnyUdvuNcM4Qpk6LSHg8ZF88xAUEPPkr" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5JG1EEjt83fc33CyLoyBCUnQei6v6hfquNhFWzMYqvSEG5KZyVY", + "public": + "04f937d8b269e7f8053ea79831fafd4cc0723eb8c343aae84e876fccfa23013351bdd919dec23e5e724e50d93a2ed2cd13472ce77f5b1c01be6fb281662cd4ec81", + "address": "1Be4TqYTKFpgzq2CkfYmassgdMh3PNpjgf" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5K8k94dihPsQErkGHBumpMG6A3cPBu3CKFELuwZFMcDT7ZbzWNK", + "public": + "042d353059132090f8f46b53b7e24dd4d4f65afae602e3b73608ee8fc780b0f2e342c92852e983357bc9e0cfce90eb664c09911816af1e2d6b73d5d5a2c4429284", + "address": "175NMhZ2VUoSRmLMMxYXtBmzR4oXoPYZPz" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5JVAn45T322DDVr2YQZSbM8ojsrKBPtz1hVrnWUbhuYB8WunKNM", + "public": + "044a84535f087c801788ffcd0081169dedbcb2a527db787b68bfc949edcd5d3ad4a0717642968813656b082bc47aa77aa83d7bf822a49fd350f2923b5e639f7391", + "address": "1HUkYwRiNaPjFpwU2B1krdGZexTjXkorx2" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5KfYqLWrGPVNikGiHEAgArpqEZp63z66hENNE1Q3Z8qzL7jamPy", + "public": + "0412db9c7053133efc3b6e6f6d9a64c98ec09c48019c173e205918016e0d7ea6344f13ad60a7e056baa7d81d3e2691c5bd5a706820308ed377ac625000371a85dc", + "address": "1BWs3UpFuqEPBNz98cDKoRUPdocqRqMUmL" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5K8JKbUkdmncwdqq9cLLeQKnJom38wv5Txcf7Py6WDUMMRd2DUr", + "public": + "043aeeae7e9fc6162f2b2256a93571355a96b4a6d54f6792065bf913f8fb2d4315799ff29ad973715489ac958a07fec711dd86c792ddcbb9ae175ddb01b042719b", + "address": "19859ebPWpK3vNQhmuQhxV7ZTgCJNXuTkE" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5KCmrrz93Wv4AGBJfurDtQ9Us25ioC6eANWRjtpLQbHmeZETfsU", + "public": + "040eb9824a32195ca408cb1ac568e4fa55c2150744771763ed48c75e6e4d154732817886bacf21a7ce6a6fdeb70be87cb0aef074d66ee2c30f393baf09d4f6c563", + "address": "123rRxFbkmaWGWHZES8kVqgz6k7n1DVJhC" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5JKEjt5jdwQ38wXjS574idqE8DeBf93YnaFtQRMunBJJcJXrNAE", + "public": + "04e429a6011a6ccc002a16b08662d0bbe3dc6cd0d312ee9d7468f94d01f696142a63ba3894c168c5464e0939f37ec807244fae1f49570af6a241256ee9aadf55cc", + "address": "1Ni52oYYDMdvxSQKRcuH1foYeERuNsJL2V" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5JuFXRp5PcKjf5xiffyWPjDd37ccCi1CEtsQE7nm6wdsCEQFRam", + "public": + "042b82dce6ecad6242e1dfebd0c62c5d5951276b58a50ad4d0cb433a25be0ebd74a8d21289685a31d2ccd7c7c3ef83fc0d37b059f4e7751e865ade6d3dc00b77f0", + "address": "1ARRWQTVgALuFCjg9NyGR6sEiRveRKbst2" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5JXv5ViLtWpNmFRQR8rDiNp9x1M8bSoXAcWv5KJA1Mwhz4SBzBV", + "public": + "04d75ccadbe56ca2d50eef44d37f4ed8f997761fa233c4e36fadd9bbf11c2704075eed2506e5873d71ec3c508e7a92010bb0ddec3c2677bf271dfec820fa9cddc3", + "address": "164WcjhjbT5ezdooRdyFJZJdgxA751yARd" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5K5zaWWhWppN2fZ4TecccraxzVNSzCUquVPQLJSRDoU6HW3BZ2w", + "public": + "042b742a3af5a2001552c93766ac7435ba496338f0c86a1362e6e76d6cd1eaaca3447cb86cf5b81647e182865766742b226caeb35826f1fc1e24be1bf024fa49f0", + "address": "1KRgXzmjLctpC4iC1zzvx7Lpak1DYnwzbW" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5J3oRq4q1TTAjSRgytYHUd2JwWaJk8Csk6nd3Q2HuABoVnpijMb", + "public": + "049a75b23c28676d33fab97d84c14e7b9a168d2cb1bc301f6a993c918aa64a7144e0a2402f3d8ef0741f9d07137805c10240f8327b988041f35be7642ee4808df2", + "address": "1MnUcxAE7qqM9RcDthFWrhSJdGi4FxYdw6" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5J1pRJ8pNq5jF6qC8gtqSZNSSZBTT6du2jAQDjsTPccEZV4uB1G", + "public": + "042e2aed5a08b9fa028b8b7fe51c18c6fa8edbfc995fc1a7f877abbe6620b3581f720dbb04e2cf010a84a062909680bcfa03e63913ca96a5d6db1d4ccea1c3b27b", + "address": "1L7uf3Z7ZPMKMZbuwe2f5z6TXjWr7tbtqd" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5KiPPM7dXNuX9scCHakLa63852KBonQi3Bhw3hrLpjK4hAjcFZJ", + "public": + "0473e10616514117a9df1d4aaa33cbda473491d5c7f3e8c1a9faf9bbc41b5b57b6e2f2e98d7ee55b7afd00467818e003f905234e6165d397fed6d015342c2fd928", + "address": "1PExLwgrFrT68r9W2Mu4KpCQxg4sSX7jX4" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5KRDCAcxMupqohcCC6saDfJK3DdcizLkod5aBbN9waHUjCXdUXe", + "public": + "046e6174eefc224020f829872fec5cdee528657c4ac793de79d365ae519444e8e11c759dae790f3fdc6d31246fc82da1d55c8c2e8b7ca36f17308038fae971e928", + "address": "15mH9Si9QWn4MD4QTBjwTHr5CqLiPnDv5q" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5JtviHZKeqMrfZ3iWuZUxFRve7vxamxFXBNwindsED1Xx7oGod4", + "public": + "043ce0801b23ffb523ef622586eaec89cad81bcf6c8b4beb6c3976b1b9a6a669939b4ec34e1d2ad6cc666d4ea13a516bcf9a1a34d836b10d791037da5f6624a048", + "address": "1tzSkMfEyNsDiifYXpg42Gg7ptRVPJyYp" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5JvCZDg4pYotSRCNoF3ro3B1BY6CWm8iceSe9148V5wjMeDUnEH", + "public": + "041cad8e9c6fa162f61ca077027ef855e907e57098231188287f4c9be3547112ca8f50404aacd05f2f9e5b2a850e9f3c46fcb62e369e21898c5d8cad3f84f9fb5b", + "address": "1AxzEMq25vZRotz4WyKRHBtn8LDQEF5at4" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5JPSovfxambA8r9W3THCpdQ3ph5QgSu6nB4vuxJvaNtEvFgwM9v", + "public": + "04782218cb8084a82aa3e847f75ebf53cc76b00af35e7d19801b8cc7315e820125db113a95e11e9887f7965cb00cf2ca9e875b79d68d3bbe9b91f0057bfc87c5b9", + "address": "149VEGMu6xN61Ww2L4rNjgWiSDkJwkX8mU" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5KT3tpRdD1Qk7yU97oYg8B5APjeinxUWNRwnUXGqHoWXBrfFpoK", + "public": + "044e5df1946a1178852f70ea76e40b6c1b1b5c641bde2140c241addf738301e9d14a433f999e7368e72b6e3369d31543e37046eafb5a250c8ce8e4219c348fd0f3", + "address": "1CbMuQwNXxy3dq2XNt1oMNdUmGNsD14S4d" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5Jj2yStg27z89SfoUg4dk2Q7KUjtoQBWDszC8uGKWqpwRNisrru", + "public": + "04312d95ea9341680cccbb5f21d34270f6a75269ee8687ad26383e99efc54094dd6f6d6d292a3f705c6ce9012ff55780cbca48b2b5f691fee0c3ca9f7ed9704741", + "address": "13ySh2nVwPAomqF5ehPmGRmUZPcWY4ZCCL" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5JBLRDzp357FWRQ7aUdChAwtQ1XMz3GrCgoRsTdCskqgidkMtUb", + "public": + "040020da93b1af20603a4785e393e1e950444f8164442c3f0b25135b31d39308963439c68753c398da231b5547ffe8a9b9f8289a6e8bc824f86c8d49f9d7f0213d", + "address": "1LzueRsW1ZkKKNMEt8DU3w6Xhs8mcAd5eB" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5K1kFDibhk26B5SAcCRBtbadneJvRQ6sTSxUz7aQLtfNW3fHnbu", + "public": + "04d304bc6326f349bc9ea6a5c2e1d603ec5609420a987df292fff86f4e209d79a27a6699a8f88ff4ce1318f32d56cc684e5c696f0c2c82fa55375d18db97515362", + "address": "1H5rnPD8WRTg3v12H2TQ41DbC5UfLNugPA" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5JkCdFksM5VH5ckGPfQFCdBM862G5idX2QdTT2FsNWZ16LnLy2v", + "public": + "049e58bc7c2196de5f3928316b69e260759d727c091ad58bbf7130830a31a8da7f137afa0444e86d80456b2ea2cb4bdf98c6c90baefc43c23be7f9d8ed2c5756fb", + "address": "1PBn23BkA7EdNzm6zN1UvAbgCBQXUAVNBF" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5J3F4bhB9YYtujNKnvrpAJ31E4umYi8sUBodp8xMUENWjACZ6qL", + "public": + "048a3bd0b3a0f594ff135a545e08825f3d8d6412cacd2566f231ba0e365d3fb4efcff37293987c55eb7e7f4e3f501277d76cdc9db45480da35a2f45c9735ffe881", + "address": "1DBN3imEH2gGHW9FSJuK2P5LCyf3vFLUf5" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5JNa4qq1MhZoaSqrCU5bDW2GEtu4qQPNDZFZfRtm5p8o5Bv5etz", + "public": + "045a5824c09b3ec60a1760792aa182cc77f7fd3a437c4cc7c7e2368b5d02d0840f5bb14d443a696b4d9f88e7219cd2991d6d388ced5fdc53009b8f6aca9a68f1ad", + "address": "14NUwnxyoBuwMR4jhcdTARe1nkeh4fhyPM" + } + ] + }, + { + "seed": "98169a5205e8fed74c2b705cb9b3638d476d9c5b2faf5b4008f84419ce3c8a52", + "private": "5JyGUNnfBezNKQoiPaMdnidQ46CRqHivHXvYy9fvC5wN46Kw3G3", + "public": + "042233d1a3879243cd23c5086a66fd048ffa398ce4bf34adab1f676f0d9ce631578f5dd25f8b939d49ac3dd434a19c6ef1137cfaeee59054f00a475b7cfcb4a6e2", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KbWGZKZTvX3dt5MSWvuAuwoCuWykc7PFcQvZr4qoeRwhGs5JvF", + "public": + "04c22d90937c660d3129cdbe5f577b39079cb3bcd7a29960592fadbafc25002e6c7c9929c4d6fbee5479e27114362910254c3d362feeb3259e37301f1d3b2c4b7b", + "address": "1KKtSFAGZ3CxdirdSoTmsrM7n5RLo7w4Pf" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5Jxig25qUrkrM38riosnBCmhpBy7DZCwxARMKMdkmm44TWGdycr", + "public": + "0408af66bd5dc5531b83b51fdeee3e38a8489155915b134463fcd8cd17920f50b55a8b79ca759e6d0fa7d0836f8f518d1d8faa7e7c90d2efaca14bb3cb16c44e50", + "address": "1CBHYp9o9f9wB2XPUiq1YYQCYSwmYhTUgX" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5JTC4fnr4kaCqE3xLexTeur5DzJyiN3zebPAKWecqrezVfmc2WV", + "public": + "04df2f68ec531fe19149b4ef939ffd816825b95b8bb742631f66cb2d90e0ffea1471324775c40447faca3d5128a20df6f3a35493d50fb038aa5b26797a1c8209df", + "address": "1Pb9QXcuQ7N36upTqAWaVMjZLf2hzD4Gky" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5K9SnP22DJz6m5s7B4jkmaQrvrxavkeLTZVvvLXc9Hk19YZTzEB", + "public": + "046d13512a518f3d9b9ae015306156490c7bf149d532b761fc1e9d456ab7b2fabc881400bf3ec5847ec2523f84fbc4788e04c1f417250da35201b863255313532e", + "address": "13G7cKYSD5vpxWEcF2zaBQainGja7e5GPt" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5HtGo7e4q3dkBRrDi4BQ7rDUcGbH3xZVcyYKfaCstuiiUNmG5PZ", + "public": + "047b14032f68d2a833d2acc4691eef70fe45f26336f8e1c6ac8889584b6a9955c9a26db7c608874d703cf2499adf95f6e80c56e20694aae980f8cc43695ff9a9a7", + "address": "1Lw5C9CawMHEGd75gjc5NJ9eBXVspNSBVt" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5K1v6fp3navhKemccBRwRLxnJVL5BS9fX7rQrRbqzLQuLpoBqHa", + "public": + "0455a47caf87f7e4ee0617e964ab9f8ea0c004a7c37e98ee9f8a8a165f0e554b3f7c6cbd745efa16a612719620f59ec61588d7c367d15be56be2f339b6be29ac63", + "address": "1G7815GpVGvt3FHYNBdeijHCZW4X52zKin" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5Ka8uxFCFMhF94zWecYR9GVqrKv9PfjyxaJe2TeKbrSMcb4tyLW", + "public": + "04a2cb661e83585d15da75f5e4607be0fd2ec28a846ba8ee314e4fed0b4788344697f78e9a4d3ee837438bcecf9540a69761e763ce4f66c67f1ece430ed25b0fc8", + "address": "1LJ3k8yn15mfxjXu1sPsfDeGy82cKjwDmg" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5JF39bC1ywRLKP9sPVgfJSvQBgCgwDoozXB7dgRH6wAs6Z8A5CS", + "public": + "041b8d25edfbdcb0f10c7e3ad53336c0fc3bc46b62211b41ffd9ac4a701fdb3c8bd7607853ab7550707fa768d7c3e5e7f54cd50a47b58b9dbacba93f3756253406", + "address": "146zJBSYvtXncUt2pLzME7MDUAS56PFkK1" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5JzJVkn6jvmXaRdfWachpiujXGzfR4hYEfFpBYV42PVQAF5K9bg", + "public": + "042b4a7fdb01c2140e6ac8cbd7b56bc818f9698c96a5c65eec2c16ffad338071acb1b9a6a65ac1a56b4b17d8fbbf5be39f8c4bf182b848f8690ab1514b5603d371", + "address": "15kckCj5n3q2Z42L4WwJ3L2WhSuG61ymxy" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5JVSXSeJyDohmiASJ7d7Untg9s2YHTvSUPPTNSoaHy5t1LmrqaU", + "public": + "0427a1e44fbed9e97330a0edd99e12325eb51002161f1fabd088a7ad250d3d28fbb0ab77a7173e6f17eef2435effba4e753a5031ab5994ce0fb64a742727185465", + "address": "1CS6gV894tXvdkmTC4dmkufQZE2JT1DY53" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5JHX3rpYspedCuUpbpNvpw8rJgKvHNathfn2kDkKWSeKYD5rD7K", + "public": + "04541fc0041deb372273614dcbcbcebfdd5b92f709c1e1242ec69ae39868b400ec4f56d222b3f958de79e64e1f0115b55a8c6eed1f81234eab48fae99ace6b0d16", + "address": "1rf7CWEaxKHTKyoaC5QAVGsFwfUCVy88E" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5KVMsTDBf5aS3bagMbVTmUswXT8aKr7MJEwbJ3Mv9TM8aisECL7", + "public": + "0469cc657425750ed0179fa05c9978c26d1325baf546c7391f64bd52c1eea0c383760b2b10e947b457b3ef15b79506387b45c001646a206eeb2e1ae1816a5e8202", + "address": "19TLw2UaVKXGwcbXKEQoXG2EqRvSYCSFKH" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5JiVmQg3MJHvahAfqnfS8sWwGXadN9ygv7VXYcinSwKHJc2DkXy", + "public": + "04564a33c1bb9d5dc99bc8374689021d0254175bb0a3703f80c7291dc00b173316280f5fe3ae22de0d9a7961ff077c4387f5787e1a5a97088fdb5d96b40363a835", + "address": "14JbEvnbR1CVZkStS15nP8G9fbkLNgx5zL" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5KKFYiSd77m9pyqAGAccAuhBVBj3WAMst3mS1iX71dfodmRswjL", + "public": + "04234fb87c94947e1e71dfb97eff14ef6fa1beb1e57f22e08289916e71c344c93489583f2947c433cb75b0f0b2d84b6f905b21c596f643200f00ce0d71c9160296", + "address": "1LvZXovXK97wiGasJwm4f2mFVfYrDog7D1" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5JWQeGTnzTDiWjPJ8fiDTCHLYFvNy6nThhMhXGAoPr3sj38TR9j", + "public": + "0446bf4e80b6243979a9fa765f6693321d470f6743dadc7c86526f1b4524de9afc7e0513579841c1e7f81a09eba2c85c79d3db6c2a6e96cce5c6179b55d54ed27e", + "address": "1FxVzvaDXAKVRtPPbyDX6xZA6HFTJLSyGL" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5Kf1KRhuRGoduxKxUoEPUNcn8QvHCE5qsTxGt3SwzdCJEfLyZQU", + "public": + "045d7bd3a9605d9a4c6b07492bec6485a3782c4dcbd6ee28f794566632f4200cfd8f7ff72c2cd3677ed90e230579b6db1e0589f2f6912b83757892afbab2a3e584", + "address": "14dVbErzJi7pVCjARxy8LW8ejQnqD2hBC7" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5JPiB4xKUKgXG171kyb5o3ZevfLK9bugSeGPp725J9EsZqWfvKd", + "public": + "047a67073c7c9bec0888332d824ef7d938f5acbe6558a4c10d59c34d617ffc27b165fb0dbee4bc69dae7e9b38ff25cae9a90c38d3d23430254fb6f3ad0869cec17", + "address": "18HSeqg66sUBjJh9ue22qVbrZiQZjY3Bea" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5KVqsyMt9xpTpiH69cHvHCx8kSGmpbh81ADNe8R5nR1dffaumfy", + "public": + "04071101d4608e00c1c2e44fbbd76c2891d445c33553dc1e4a500d451a7256ac7155feb65b964e4b0cb3803b5cc37f4cf395c462b56e7ab517298ac6f107f5f1ee", + "address": "1KTqVjrSWNzavGfq73cHZ1Y6x4Wgiszpgj" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5K9RK22czAV6wHhtPsB7rCcth5foLCituLraU1n68yza4hMNFT6", + "public": + "04b499be8b32f5e2a8b6ef89bc0f8d83a6ef03173fbf1648574cab489948d60d90700a179fc147b81f34cc196d1ff23fd24928871d108634aa7f209bbc645761b8", + "address": "16rL13Z4SXpS6Rw3VjWJVSBxEqSXT3A48W" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5K5cGVhDhLXa8UbeQMTFM9nDdBNp6gp25eZRxmSvXZdCtT4FQhT", + "public": + "04b24a5e9414b40a16368f19642624c94647a7d65a5420b618f8ee3f228c9eb20c956c5d460d109ddb1f2df6ca90f28b9bb3558372cb3a964f76ba5092a4daf88f", + "address": "1AoAk78qiFFEW7UPHBz15GD64dVaQFkCKs" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5JruYYTdUc7Zt7ceJECgwpfNEqTLF7n56vJJHXKaEjkmgwcG6ap", + "public": + "04e48bda1db5c8ea513f45de2d019aeb089c506430d3ae07d848c594df4dfdfd65251455866304aad724cc447b3c5df189a43e6a57a81b8fbff30cc230b21da5ff", + "address": "1HkG1DuryPV59yFd5C5fMeEkTjRb75gMqB" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5KNeSCuwsfvSaLkLokZhGsGFBvDqWMYgKEGr4duHcWZuAGPsVXb", + "public": + "0475e3d5361a09a59129c2da70cb82c87ae256be6a5340ab3cac7fd428cd45a6b0bf325d7788bc8fd3a5da4f440a35d0ef4e416f95f015fa5960499fd5fa88445e", + "address": "1CCaAUMiuQVaZyG9sFkw2zcbpDhQvh8L57" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5JWMaMPVaVz2jsS9QkqEVaMtMAQiPAw8C7PfxRyUuGyH9s4cq29", + "public": + "040abe02b04b742fa890b05be47502a1d035994ca20280723c5edfc9e3d3516b360b2125048998b9681c67bf801e1f46c7b558a58908ca5182be972fce2d22fd43", + "address": "1PQGxcxd2b6vcvvhZgApX9jWQsPfTbPeu1" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5Jg3ZecNFdQejuXDmSKEBxNgEDEy8N5rGqWQp14nL8WV7rYd8Gz", + "public": + "04baba6b56229b89ab7cd5f7bf98f16268cd34990c2e2ebdf75fa7721971e50ac9d3476452c11fb3f025ddf1c4bcced8fef7564c4c5547219198e921201b209473", + "address": "1FeGguqPsz52xyUoTwBv2EBM9QGdCtiTw7" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5JmWXumxSsBeXUpeMy6VQMoxhdhU6Az7upFJrWw2rADRwT7GgA9", + "public": + "042081e9d12f25166576505f24b90e1e8f87258c2f27b7c874fedf472def4418257c4f7d772b04fd5fef23c4f6dbc3572ada248bb8878d5966dd4a1ea6df492934", + "address": "1J4X2TWiKonnN8Q4tDinpsv4R4miv8Xsh6" + } + ] + }, + { + "seed": "b46c57237e48b6c5393be11ac284687edbe0a44ef89d5dac5b2f30ef51f48d91", + "private": "5KBkFTeg4aou1Sp5cjqHsJGobCr56Cj3qVYxkYvpi6rvzpbi72A", + "public": + "04198418d69cbd833f7db8e64422b6556d16319d639036343e4971e8962a9b261c0a522e2bc9580b86c3bd90a8184745063bb75731e149a9ed179ba13915f97345", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KQq3zxRKwxRJqixCPUtvu5JH7ufyUsbdJuh6ZtxANNEs89frji", + "public": + "04898d154c7c11ba9ecb665d8107bb667287ac295332c9d7b09a22321a765a9eac761d477ec96c8393372c1d6a8739da6bdbd34f0d9ee4244be5197243e5146af2", + "address": "1BBP3Pf4wMnSBPid9QsX9vpwm465UfvBNa" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5K8HT8efqqX5H2YWTrAhmwvzrgC4kdV4Q11bDfbzrXw6jMAd5kh", + "public": + "04e185b0c154acc0756d63de1064fce18a3885377dc8189b65a67e1754a9767e02c1ca677829e337e7ccfe46aa38122edf6d8008eb35508f14b363f80cec6a1ced", + "address": "1C9cLBGhjZzr2vhHCPdJf6oFVVuzeZdkvF" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5JdzqSk9VmsvYVE3XHEQHFAHu5oY7bQhmH3K7mpDeVAzRT5p2PR", + "public": + "04aa5cfe376c9f3c2ca491398393ac95ca2c3f28e252640b0620e3b70f5d700006a2fc3e7dff3f2f7ab33e5f32335bc8b0170c9cf8ebd6a1938a69b4c9d2e712f8", + "address": "1DBPGQYS7CaUZmZC2YUXWghfkxpVQ73Wzw" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5KWrsr9u1wYokTdQZ2rEyoT2wLiXFfnvQpbpkFyhM2BLexp7cRa", + "public": + "046720b1f281144a2e24b42c75483afe01019bfa50a0801c151e8b0f634cdaadd4eadc34aab018ce337cee044ab9602997b7ff76dbec25c7a1e892c3e189134ed9", + "address": "15CyKAodWeg6jgzmwQXTpXFgzvR1U3gvVZ" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5JU2U5dK7JKChtebn4QQ7mjEzCavL8BYE7Y6N8txxduiFnd1ZFY", + "public": + "045db19512d7c0884307f33c5bc6522cf67ad56de51401a1973db4afda2220c26c8ef14eb6bd6294d1d5a339f1221d379e5af0189aa3a88db64bf6e27b33c13d24", + "address": "15CymnmJUsrGzwr8VfTBb7SRUwKWFcGLGr" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5JXJEqQukQaJvsHVJxEWshS1N7N6Jx9iEuNeL4AWFc9JX5jqHRi", + "public": + "04e18d943d4f31637cd97afc87245f181871f01f9de5afff384742d0fce0eb16f8697ca6beb80b6470385e4af9fcca4c7cdb086daaa959278bcecbbb8c8b1a5cde", + "address": "1Pcj41gvDERKbGdZBuY6p7Rge2r7jA61ig" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5KQdvJEUkG17UKjtykQ7NQcU7xbM3Mw5NquRhGfRome6SyXKmPt", + "public": + "04921c7b3eef9679f2acefe9ef1e1882ca831bf7c3c59c5f4c0ebb962f76930ab1e888d02f7434ec3c9eaca098bd000473e22c4da91a09e4040b5179cef98daf00", + "address": "129vmsV2UEjTgNPGpEd3PxQHWmCTZBMWjc" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5JLfn2PNr3B8M9cCBB5iuCtecSLJcZHoxmxQVJ14ZKPnh9pDpDP", + "public": + "0465281cba2019f8ceaa35c9331d47942603f7e85eb170b1df97036264229b533ad3604dfbcc35e8552352db18d45821f8e4a17d826e42ed945d3bd80919bd9957", + "address": "1NQFpaTWLqdxSMzaStjfLUtRMjkXBYX3nF" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5Jqo7q5MfquLcxyq6EyoSV8BQDZdZk1gSNexBADTyQiT5xkbRfA", + "public": + "04f090034ee8ecadd13fd6dabf541e721bf9f101a5ab9a1ceed62eeee91ec015ee6d809a0b7b965bcc692e41590aca56691c504ab156c4f228c1f83f044e83de5c", + "address": "17xm4GUbcMgythpnY7wgZ964mN5kkMnt8g" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5HynWGKppUzYy8cXnhyLW7b2stisjCdvosWkq5o8aebCQMnMvKm", + "public": + "0426e58f3b8b19d005f2ec43ca94828f7ddc69fa81f78301ddfde14d77d61ec8cade1f5e7421f0b1d57668c23181317c738d382031db0785c8e7058972c968e8c3", + "address": "1MkUadNtW2ysb3C1A7qaLgP5L3Shdzg2zZ" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5JfdWfyJvUBbbhTgXzMiSvDWTg8AVGhob6tgVWHDc4ay1r68RQE", + "public": + "04ed0ed2140ecc5634313553c360450c68f029c7b564da7bde0eea115587c5dc4d1dc8f5ce2aa863458f58feb3c9364979961a23aad2456eac3e3ff0c6399dd2a5", + "address": "1ADonsdzXNcvSbpv8jasvriuh4f4dmNXKQ" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5JrBuFAFswv68HtaBUqLCawdW6F6WUbKVo4RMrtRcCzeAhKWWXn", + "public": + "04a64ee9646d6160927778f0cec377f0f3f695d8f0d4a8a2feddde5590f37d60eb85fa751ec693b648e3a80e931184c6b722b621f961e1034d91eeb74a76e38833", + "address": "1HnqHiZdWdq5WSvqUEu98iK3AKB9W14bAJ" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5JM9Zo8hM7LCBfWwznkXFgvv7uZDd1Tb6k2yVicRbTWKJeB2aU7", + "public": + "04fbedeb3d75761c1a78eaddd73d16b3f28f59ed843d36fbf718e7660d95ce607866e15f9e3f6e142250862616e2f4f3eff0e86fa091475e3fac18231ec6f78fd0", + "address": "14ShzrWuTzSHs92Fd7M8mQzKwbysARRcWx" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5Hz52vBigDJkofTBELUteymeZ4yPLribKz9gaods4t12nqT7szu", + "public": + "0429dbd40ed05df00a05300dd190250b2397f02bf4933235f09fff5044ade5bee3818262dd288b27fc22a61490cc576020be2a59211839038987b574e278a2e380", + "address": "1J3yYLfeeMCdt57HsLbMAZbDEFk9hZ22AK" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5HttEk2FK71TTtpeuvs919J3MUQZSHJaUpipif7tY7h5bY3XKRc", + "public": + "0418f14594c2bae026aee10f80c79b1a0403255b328721e314ad38ab3a9def5277a38762864a2c4c5f223c4a328e491d2a75498edd28d967e71d30c8a337221a5d", + "address": "174zACTezpsmMaC39qVhdjy3gusqoXoRfh" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5JEXDuTqvK8XAbW1w4AgF8gf3JRdXQdytfusZGC8hbb8MXLohSx", + "public": + "04007efbc24fcfee1a0e82a181c926f6e43365a6d1cb3dc1de65c76b90e2d04125ba50268d7224acb5a946e5bf6de2bae534388dab6d1596bbb7e8456b83118d61", + "address": "14j21FCk4DFLSaMueneAyEtMZp6T123WaT" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5Hy8jvUzaTa8fx25t4LWebuogdwTxBhoWV5FnZ4GynbRccZ7zMF", + "public": + "040727fb90ecacd540edc92833e1cf3c339c928e1cd0c254c4eeedafa764c94b7017dc0c907202ecc5f4167ad5c97001b4a33f24b6fdf2dcd62a22a563439c62a8", + "address": "1JCHyoe4jUknzT8zwtudV6FhTZq2EGgHnD" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5KSPbvAtu3psFKCQ72fHpaLYNin3JxYnZLyupmC5Y58NA9Hmu6E", + "public": + "04a7fc4cecd94396af68234131e838e1cb99ede8374d3e0528cfd5aadd44ad9107eca173e6fdc364f44ae08d3ec2a5199045f37e44474a73d420e737569d4dc6e7", + "address": "1NtPSknnLfLDJ9nxfrQ3b5j5NwMTnBjvA" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5KjCsxwpUxEyRuq2oZ8qUu6WFGt7323EShrEcxVzE3eQvNAAHGm", + "public": + "048e61143da9ae8048c79d2fe4fd6f11276089bd10f445a77d8597d6235ba8850b5a131c42eae8937998d218cf9b3e87a4c1156024a370d9309361629baf13f7e0", + "address": "1MWsP3UuTSoR5odjdFqa1edRdyDqF2tep9" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5KMWWBRGxjh3UexEJiN4T6LHq8QUzaMwWp1XygN3AdL1UpxVbzc", + "public": + "045a90fc8c0f9154f76e0251f08976f6420f9aa6e5074b964a71d8eb03ecbe8cb8bd7f3e5f1d75e7325fb51470f8b95232aa45f9547457be4fcdce9e42c6efa8d2", + "address": "1E2H7esyCXYKfeELRnwMB4APLyWXrrrAtV" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5JpMAukPECJniAyYt4c5QqQNdfJ8buzdQQAN6v6U32MkbAV8XmH", + "public": + "04e63c7a31f5f81753f12a508814864352514a0c2fce4791ce1e92fdc1d72830f3cc46758055083546adef1e4a7f9a583540261bf78ff259fd10a2f77318e41847", + "address": "1LAenWybXHaz8aVoBXpXVzttJkMkYXYf75" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5K4Wngtd3qAZoWLk3ymdTnGvAp4Xub5YnhuziA3UvkrebJyJqb8", + "public": + "04381d800911b0c19e7f70d14fa8a639507bf9230fbfa4950881ce15c27fe3358f55c3da994ab16f807329293ab62c1b8760f6dc2d6c5d6736c3b0b4a3c2ef5565", + "address": "1FyfXP8HoViQZ9KghsYTPJZZgw4fxkT6Ew" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5K3V6XPecjHMMWMDzQyo1LNN8p51eYhJfbM29QxTpijkxCjGG4W", + "public": + "040d27d8ed1bb9e27ce8fddb06b4bf18e60d4cbfda156d682f45f0c7c0420c25cf3fcc267144a9efe0c0bc07369987dd85755e37ed062cb8f4f371bfd11ca29203", + "address": "1Q3HismUjgvX9ZzTx6Tuor25erUCwiV2Br" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5KWYyyyvmDP7FAFFBRWw8X8CyLbPwFJMLHZhbHqfT184nR37BUD", + "public": + "04472ffd8c68f1962830a28a601c1f161f9fa290694ecfb1986310cff2092d99af1d2efe24b83ad3c9f2365e455405825fd541c4d2221fc124140fa7b92b9f5464", + "address": "1FrBDM5jGEmbu92P7CDiKiHaRtx22efsTL" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5Kf8B6VdFdE14JScP4JAxty2uTnxPELiSyW4BM3dNrLkpfRsFjU", + "public": + "04271c61afda60a3c947dfc7d162630a2b943845094f73c1b3cc2e30dbfe6c3a6dc0eaf8d33461e2545cf7907efc186484c7ebbedd074310faccc680b1740e44f8", + "address": "12x3qExqYQZnH3wEj6y2ASNQuJ25yRKtQD" + } + ] + }, + { + "seed": "7eb50f0b22066304d93cb4f9fcf531459507567ea34bfdbe80ccf28feb5fdcea", + "private": "5Jn69ZZa6XFTiReafgXJpb6ubD4tJvzJtFgkCaoVM6UYgBApaKe", + "public": + "040c7dbe724fb3ac24b400370f2b114b1fd4fd4db72912a5aaf946d07b906789f3d77f8337afccce78e01dc772e1c231439ddb2e7f2df08f1ace5c0e0ad97d9bd3", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KRLoQddqprELGFrKwXuFcE32WtdDqJQaTRkURLZTBuNoNyr6Ar", + "public": + "04280676f7387cc9b76822bfa85fd88acfcfeaf78fee97fc6eea27e4992fd4e7830dd79a51250adee078fc238b83b898d68a1baf7e89adc4d0e997a54f05be8c06", + "address": "14UjKSGcocVHcFaHXQbrfD6WHoV94GamjL" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5JzLB3SoZ4RyW6FeK2TP7gYdFLUjXz7AxNZLaJ2siS7PYxgoprw", + "public": + "044ac86627c16cd75b2696d9889b75ef0d6c32a438327980c307fc997e139a17824a38245d6fff26d1793861c508b95e1a23d6a364b1cd8612f1f599e5400b4802", + "address": "16wR5XVoYpkSLfa7J2JPXbUtfu2Awqe2W7" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5Hr27dntcphYVvRfsTokCWqkHCDSB6ZcF8SUVkiBU5EUdW97Rvw", + "public": + "047363ebf6ebdb272f75d25363a3f25fb41cadfec6447730f6d693c74415dcbae5591f5d8f0dfee2f0cb8d910e75dc02fd7513521fb740b88c455a13ee54b8ee8c", + "address": "19V1YnwHBKiAYyQKg2LXppN4SrutXV3LMi" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5JrTLT1NnWRLoygLo9Bj73rtiFrrsZj9sanVXmVJkjUiZsBhE8v", + "public": + "041ac4566e9ab4f0c6d6b9441cdd9fa0e3ff58b68059e4e7eba5bcf10be0218cb8613cc7b469d2f055f2e8aa6cad984611d827d48724f3a7de5cfbc92479dd2489", + "address": "14sfqS5SwAJyHFa2aSnTc9cBXDtF9yqqJh" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5KQWFS7TELyd7BJMzGbUjDmDVntciN7FwvyVrWqAuCaFWBx5897", + "public": + "047c97ff846b4c4b927c4a9a3b9d2cc8a020bb34bf13edd4ef7d595109eb0f017d476e018ae65aff2e132f01052cde2ef00d64aa6acce01d41a87561bfed2d96a4", + "address": "1KHYxUrLAWArSGVU6xQZJUtDd4KUxeSZMn" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5KcLKW6xhbqx34RR42YcixynhJi8UJUyc25oU2QrxRg2MLX7KDy", + "public": + "04f8357616ae670efd80e9a18dc19d04bbe0f7971fee4175c21eba4ca9f33afaa6fc81f9221d757a1f475949e42791c3b2685f33f8b6746e18fc5971112f483749", + "address": "1MHkpyaVcPwrS5BG3hQ2Do2HppU411VHms" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5JQvG9yiXBYJPd8vr3UZsK8kDjQNPE9hsdvUzV7ZzLh8favJqsx", + "public": + "04d75c06b5a8ea9a52de065358039d34ccf36a450ff1904377e04fb37d3e3170c0ec9581886ccb69bf17ded88852e1f809b14ed26d37dd2c7646e159db241e6b6b", + "address": "1Sqn69BjEaLCXzBQYEctxEbMoSFVWnwVn" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5HtYGBYre3vHWmc4xid2Q4j9upHV8gFNkjvBMGQixjZtdcptoci", + "public": + "040f5c432060dd742acccf098f3e84db97bc1de0df15e074100bac0a404cebdc77123c93e59fa170bd425a9cdcd7912482ebbf4c3b9168726c516bb015389be922", + "address": "1FYYd6ZXVW3xUAdv1bnScuwUNHMcTd4nFF" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5Hqj5dx7jz7NRGru78VCGJx4x3axbrk8LXtnGq65md5FPhv1Wki", + "public": + "04a6e5a5942401d1770cd7b9e5ad3a6da0b2037b4413f4c62546b19179ec86f2e37c8a066fc43ff9aa03ad707d10f7975e7937577350b8e0ba23f8c3ea13723fc7", + "address": "1GCKQaUxBLbST9BAJTFtfiwtXAJv9RnH3s" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5JNpTGSeCJ6xaVZX3DW9WBzxabVUsqvE1nUULq1pvSHFQHUYbf2", + "public": + "04cc0a6dd60c673c6bcc1f14e55cf3b8e750bb47edcb8e551d27e3b1b8c90ce8a5af5eace7a69ded9bbc24fad4d7b8cd9ffb30aa01af10503d20c2790b208432d4", + "address": "1AjPqvuCfuUSmoNHHPZUoXQWohCTgyvpGs" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5J3yuEZ1pn4qFVc19JiCCVVDsYMe8HWQR6TELNgsabxj7MWGupH", + "public": + "049ed69a2c757b26c3ea7fad667eae781ce635bc17a98498a49bc09ef2c1a89788fef9816a016c9342260120aaf10775a2609ce0d1581627dca86697bd620501e4", + "address": "1N8g4RiHJEgHfcLKMzBrqNKHdVM4Epkb66" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5JnsiZ9YzCFihSdkthqTWNXJY1naTLKtxB8fe1NaWJ4p7LLEHJB", + "public": + "04ba1587f08e504a8b7f9193382fd1e2d3e829714e31e93457be2cd3ed6ad8e562b8c1c131a3eda1dbf4173e7448323c486b0c8a69547baaadc318e92c965fab20", + "address": "18UNZ1Yfeb6h8HWVZnDav66QWHk7t5jFck" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5KfcbYiJnU9sVGjwER4fj79xyqwZVG8w4WocM6woGh2g12a8WxM", + "public": + "045bcd3861ff51503e0cd8ea0f2cdce408ebc96fa289c584beaf8ed97b04311b12f0b1063a6fababb6f8a390944fde164be940fc59b9dd22777824d7dede69d60e", + "address": "1ALQaq8RuCvcKSvXjPVqHa9ATwPvfRdUYY" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5HsJ1vzPiV246rAAAfbq6MWMtVgEsisDS1bMLe8E6sYpRFqt9Nx", + "public": + "04880a3c08ee200cf37ab9ba77daa7212e1cc655e737e912c0e71de67005d90cbfdb677a25cc29c8436355a76298f20f7063bb8e3e4cc403dc34bdce937648dece", + "address": "14gikp2yBBqZLmxa6cZgewawYHufTjNgGJ" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5KVCtgH8nWGwseCYMitQNSXi6cFgyWP8PECeiwQHQtAHgARJqw4", + "public": + "0415d134bfc7fcdc5e25431ee70757d7eb4de2dba4116348fa57ce5df74a69d1ca61236ef0f75f490d2f2bd0f9cf8a2e46969535de7c87d39251e8fb12403d0d69", + "address": "1HsYeHVyjdkC6hoZzHcrHfoyrehHg34TGb" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5K7ErVzivPRHHtHTnd7wCJpByeycGaWp18Nh2QHg2gCyUmnP23K", + "public": + "04f81d7dcab945ccac31ffd530806005d2a8659a92df516fd0f8708381d1e7740005e6328130f6f294937763db8adb47d9701de44ca868ef32e7ad7ab2526e1999", + "address": "18sHrUxTBBaviXsuNr742j7Tifrh7rJkBf" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5JQoYQzEfumMUhqngdg3KgisoWMf4rYxcFAJYFx7245z5iwkb6d", + "public": + "04bf130b3831432390099ac7edeec7ef6d6f49da0696a1c78a618b901137b7582c8e8ee9a1b11f807dd924c9c3885a05cff00a11eebe2dbad76006056f6e026745", + "address": "1AYGRvZa2qHiBvHMtt9k6GZN8X4HbJf2EN" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5Hr9DoNNoy6s8rz18d4JSNMiw5nwYoZx9EsuUqjLERizS1wVcTH", + "public": + "049c43ce72db8f871c89e35a4945a0d234497158ce6d8c1eb8a6db225fe714319f55e95ec42dacd6e0c386f8e4ffbd01e0576608b5c20ca7b94c977de40d0a0efc", + "address": "1BWqTNxJs7VHuQQNNW2KcCWy8bEzcyEmm8" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5JiW6pJKtyXZMfaZz7HnHxmfVnRMNrcScPMrDftmNrtYGXpQM4U", + "public": + "04d445e7879519284f783c178c32c0086e33f3cb5e35856a7f1a9ba5a66b8359cdd5cf91609f7de2b15a6707848efb9768956374a2bff638a516659414b93f2cac", + "address": "12fNh8vAwyK1Cq3CDom8KfVeP2khYy8YL8" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5KEwtqUTZnmWkBbjuYspas7jYViusdjaJwYbYCJ3xgJS9ovUULf", + "public": + "04d150d1de96d355604f757628dc53f3143a0149c6651ac69671d2468a0bcc823badacdcf5937667f771c210d62c2f72b5bc1523083eb45ce3c42ca8930c88acf1", + "address": "18PXvyyVKB9R4PP6CQjVT3nH7NLWNuYSkb" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5HrjnhExuGPoUy3SnqrFUNRqyQT6yDW7oCQV17qr8D1yNa5az6n", + "public": + "040f985c944c149061bf3fa766692d87fae35f72570ab13e0b696fcfc2f906da4974485cccb28ef9d32ea35fcdb5ce6b9d2cb680d664324f4b69a9b23415aaf213", + "address": "1ApTDBT5ak1Rjw6KFMearBW3W8JL4h8oR" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5KksKH4nCD8vkg7jqATtQxuAPzH8nsjH7Pd42B6z3XNyyYHAkGc", + "public": + "04f93eb83b77c7c7417875f4722378dbc7bede90dcff193b661c550c7528f4d092726a40b0abc7d4f2a96af9e440974e2ffec88f5bc26a5bd7b2c0c3ce988bcc32", + "address": "195hsGEyi7UnoEHdPSQfa8FnefdHfR86Zx" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5JtiefFWLWDdVKSjkh8NRhip1BG7FSzuqt1idD2FdNue3zXMoFW", + "public": + "041cf8ab31833235ee332517255759784499e7549420f1a698265d0398e2388aedcd2574433f6ecc49d1142f51a766116daae88b177bccc2821acc603dd040ec5a", + "address": "18nh5KkY9PbEec9DKG2ZoP8zS53YAp177T" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5JxWgnE9PcUPuoCb4wcMpvAyCabCUC2osroj8AQrbWdcrYYHYGU", + "public": + "04d3ac099b2e8e0a4fafdc1c865d8f3341ffc86c2c53a8b97736185f63f50905fb00558c1ae12238fecab83807fb77ffa3ad87e01c8482d18b8ccd2d6ff5aaae46", + "address": "16xPpz9Fcutt6psbYBHS3sfi9FdFrUa4TR" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5JGXDcRsARZaxHq2XwAsXhGTDKs3FMmvvPsrNFy7VniVHpaCnbg", + "public": + "047e84678217530a28975bdddcb0a226ad61389370fc070355bf47c00fb6a0ac87e70524ea0b4b4748bbba954facc2b42302d2b51f4514495c1b787bacac0ca9ff", + "address": "12oKWEX4syHm1eFQQ5BNRwqKnexy9SNN2s" + } + ] + }, + { + "seed": "bbc3709e93915b4ed51df14507bdf9bd4596aa9723dd182694434cda0e75d77d", + "private": "5KEykFW8K5nckt9EHKQuxnbLAuV6ubQyezgxqhBBvbYHEqbWMPs", + "public": + "04692f36c2e34c66302c40ac8eee971a48c9bb5367b23edfc51196d0dd3bd9f8dbb1ae0de31baebe54d9ecc63a1cae2ca111cacab1117ae2d4287c2a82ffd9f7ae", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KesrEDowRyMFZdh1caJvWeNFs2avvJ23TYmCTfQBHyhTe7atnK", + "public": + "04df2cab644bbdea4a8e416f7b8cc58ee735946c724866e9168b647979b94e34df42111a8f4f67aa3717d178179b27728102ff113f9b657617d908e01a04b80608", + "address": "1GyRDFHRZedkZSmcY9Wryb3dHM17WXvEVA" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5JxqSqW88eqvQePj8C1UauNpChYHd4FR4JLHcUfJ6TnQmuXmAd3", + "public": + "0492631acdb93d4a82314d7ffd21a080f90172eecebe90544ecb15e63759af049661418ce921e7a663244b8e23559a258482a3b45e93dd61129dd4741364fe1396", + "address": "1CFZepVJs9WGgwRnsVQ67RdFbFHZkD4bps" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5JqrXxb4LCpi4fn3zHQjSi7wJTA7hatTQ3EjEYRh3JeVbkojama", + "public": + "04cfe6ba467e25a29c8b122e2c721979000379a3a696f8d92e696a480c436a90bfce000151bb3848fe35f8d1df2ab98d1b1094ab774b91f9e2361c488903a92d70", + "address": "1mRXwCq8RSDzfrJhiFbFXTF9D2FwGRVbv" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5J28kkYjeA5jWKsruDp4XAmkCqQz9keWL1NE5vWfxy6tjNe1gzM", + "public": + "0438187a849821bc28340e9c80d426b153164f15afff943b16b7615f97a5531a140d37b7d71ff45baf5af6a5b29fe2b9c539776cc9b3303d1f050afa960878f41a", + "address": "198Bv53SV6T7kKK8hUpHv8CegVCNADrfSj" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5JdsJ18Td74mZ639VES5exGuu686zAFVBchckrz4JL1Aj6PYa1c", + "public": + "046d770f9e8de641dd929c84c0f5da0e7ab50d308393fdec4b36408857a4dd198d7862127bd12aa8191089b28df5693d1f03139b2ecefc94293b58bf64da73e4c8", + "address": "1P68t8No4TKVQ1abKbBZT6GN3mSfp2Ayr9" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5JF5AWfr4S9pKnTQGiAQkG3nNcAr4GP48wg7Jeb9wSpjAdNzSLQ", + "public": + "0457d811038e33ac80ee4be6991eb4cefdb3a4b180062f3a291fd805aed4d794eeec9ad8565fd1ad3a85b73f19d44982708446535769bea14d7d62087bf8543610", + "address": "1kR4ZDeBDDkyTxWvKNbspHFeuh6KBjYAy" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5JMNAF79NhMqJutvTzFrXR8qwabpQxfzzs9JJmMf7BcNfTBiYVQ", + "public": + "0486dca683c96e7b4ec50322ff2795f033e1ba8d5894585b2089de3a1bb93de965d0559207494551bcc2198ff5fe39f0775cb08828fa2bcae4c9425950b31dc394", + "address": "18LyyEV3N5RDqydB4BSFmTyhfLwKgm7sPW" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5JQzdPDqvZvTSuzgcRPTRv5HcbjtgM9w8bfuLXz7NQw8exYD83Y", + "public": + "044a834ce1a0d7fffa38a225707abef785810db6acb8528a6031845acf08fd5b05db472abf2ab9e0f9450993ecbb99685cec829c5c3442c1889cdb74c4780fc0a9", + "address": "1J29C2FRq4vWxMr6totQHnyf3n4MDb2PGP" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5JAYs4CkmDz3G2WCawu21yHJZTcwEKMciR4WJGuuJwe8Lm8rSYD", + "public": + "04c48000375d36f563e3a54eddfa496d8bba7c2dbca595d1943edb762e66ce64e6d0994bde2ba5348efbf04c6cf85e72f32ab3a38df04ad21826ec8bc8e0502eb9", + "address": "19cA5tRKPVVmLk6ExA8aMLQrxTEFk3n8Mp" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5J5pj3GE1eAaDRWGV1m6TPMA5B79vbZYNyneKamUM9LFb7D2gib", + "public": + "04125ae753cce79c5443ad8806b14977e045ab50618d44e397cadb7f7a921a722a027bd77d54a800351abb6d1494b9bb7335028c072f2afe8c6968f673c34d4600", + "address": "1LfNn1nfp7yZJYYjJjv2yG3XcFfrEdE2ii" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5J84KfXkV5BT9zSDVBhUjz68R7YmmBYpeB1ibivhkVcpfvjyDrA", + "public": + "04e93dcef28710a9172a5939fd0f17b849a2e638cc87dccc0cc23b35966fab04348b86906f6c29bb72f2884f4a46071cc9e0527e54b6d178621ef23ebd38643511", + "address": "1BmH1q7CiwWfxSi8XGzcjo2phWTTvBb86p" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5KYBn8xss1sp4dus7rk6rXWqkXajtNoCjQRoLrC4HNR9EYzPnpR", + "public": + "04f037dc219051bcf0ff4cd95fd73289036e55ff417d505763d11e2e558fc1d021f0706c85763c7ba94de0a997f6eab4d343c0ede262fdc3fbbad65778234d4a90", + "address": "1P72NMVBnuWAUriwhDkhYH1wURSqU936HJ" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5KD78L1kf66iuTB2zv9DpMV823nqEXogt7FPX5nnuhyBVzJRLKd", + "public": + "041c96ef015246753564fac858c13f8f4dbcd8e628b29e3cc8401ffd8fb02403339a979efb282a47b9f3318a489cdfd82193a88c42e17e09c684ca2b6f67ad0b89", + "address": "1F1VodHyZ3N62976ErbzRPdCkScqdPzKs1" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5JKCZZYhTtUWpmUkkJiXVagMkU1fL2f1HT8okND2o3Ktvm1R9AP", + "public": + "0448f14198470311b63aa45990cc7b6bdf985a1b3f03aa9e81992fd38612ba15474257e475064f996e8b7262cc5facf86f26f951f00e374594bd1ce0614f0fe52c", + "address": "1JEQ5Q73PzXnZoKHh8a9A97egG4JqRpYsm" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5JDYHv7CiQqiggNBFT5XxtVxHEerqnKo1HfXpG7jVHFmVC43a2h", + "public": + "04e16cd35727f1382d06547a0ce534f700fffec176a2759804518eb9322be505c87ae8652dfb7f0e3f4ad38fb556d97a8b18b68041b7299890ef2c45c51591c81d", + "address": "1GDjVPx5zvFr8DyTNbk99oYbusyxEvUzcB" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5J2PazRPH6Xedhj2pDXcxfQ8RRRo4zd9wVBondYm5A8CnKDB6eU", + "public": + "0402e1dd40e9cd914584c1c7ffa3fc07af7fe3f3297314eca10e524ce3e1b74c51d4ee06135d369a7c8d82e0e4d4b8501b7c431e5d045edf049055d046d9480fb6", + "address": "15kHHqRGjcJwvPcqubsVbsgow78snnJRKF" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5HzCuveiesd2uEPW37jKmUirMqQsEdZ3nh76ctSdo9NRCDAmjtE", + "public": + "0495f401ef4e15d7a9b9685dd86d94f4f334d2c8b91e0687ec86f9fece499d830760a3509f9444574f2d2c7235d608f1da4eff52b93aada0f36dae2fad118819cc", + "address": "1PvEkKhjjhTvSUGZJQiz5fNaYmXjYNHogx" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5J2UQ1r5MDQBuPcrELULMqF4TApE3Cc9tNhkBXhpfKFmBQKhcA6", + "public": + "0488026e986b09eaf3045209fbc481ac130b8e8ccd4aa82c81cc8327bfffe4aa67bd37af5dcb7af4f34066e2e1ab6196232e794caad4a7cf2a12c36740e01e3084", + "address": "1CtpjgvYrgBCeZTjiJvSghKbRRuVE4WkQe" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5JcTv7PnHNNNSvCiz1w9qaN549PjdLewRKnkp1SpNrNnTutDJzF", + "public": + "048d703009b41d498d059749d7fef3fa8169eea3d3b67535d1cc44c52f5b7aa2f27df85938b917ca891b14d4a20e8b4568b81a162ac7664e03b802d3b0f9af4f56", + "address": "13JsDYScouuNT15jX7tyEc4UJVjaDYiWb5" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5KTVEEAdXo7MDd4YFScEbUJDCatcspEeCwQnE4JCUyQgHTQFSNi", + "public": + "04c7edb882583eb859c95cb8ef1f3495ba24e89e180a0b5e65e01cd4bf709b236b05c424fe4a1619d7758ad8ea30390aad30aaae9f7252877a3be98317e44e0cba", + "address": "16rLrqPb3m4rX2EXBt6gy3Kb4bo4iVXhZ" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5K5YtZ5KKSG16oY8HHYMHaannnURbgAbjNDxXREAfLgHYfe1jWa", + "public": + "045b3725354a96d90b31d1ef941a94a6b5a68296b80635e05fcf77333f20f8af5a28987ac18fb851e49f1930cf046773dec9b4f1b082e94aaa0f5debc4af1b7d10", + "address": "1FegKMgjnqn9vTc8ehm91uKXgJQDhwp9Wi" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5JDECLvNpBBYCxjiPxFeXW1XHyNGFLWxWdXzC6tiMx7omqWmkvu", + "public": + "04bd730b4758777ef8068ec8c3aa685bd37c72ae5993bb7633c0a6e97421ba4a65a4162a32b019c7012b57baf2cf15b793d213bf72524768441557b1ff85c4f21a", + "address": "1ArioJ1djgmzywuLp5V15TAdWYF4ShgfWv" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5KPJTr3PAMzAPoYsppDjMgFWVemjQ2moNwkeSEC8poQt3PWvfsw", + "public": + "0491aeb9136e5d04b0b79d20e4295fff975def20c8ea7e52b22510fd6bea37f1068d7d0332a3249f01b29f2d271ab51c66e7c7c3f099ec2ad5a48eb1284603c1c2", + "address": "1CAUwxZy8KsW4xb3rif3iwUq1JhUfxy7j2" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5KVmeidtVTRjg6y5r2YkBxEZfwvLQirsx7WSoYRicRU2K1R6YER", + "public": + "04d7d955177e0011b025f34fc16e3f34a5d901dd783db36c896c5e07dc670af38c4125736fa90302b4aa6baa8fbd5dae1df9bec688adc4affa1d5fd3c513af89cd", + "address": "1CFpmcFoU7AbAwtnfBXLcWaRMhyij1686z" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5JFrJdxiwQMWrHdjupgeyjmEKSut7arzNjDZ4mLq8xsUTN4rYcJ", + "public": + "04fa0587c77bd9ae7b02e34aa13d446da52e052dae8093376574122927f74d42a3be9f5845a9ea81203d794533c484a5229dba237852756f91e628183493f49b5b", + "address": "1Jc49JBbKyndfTS8hiye8J3zEbHfa2Xb6D" + } + ] + }, + { + "seed": "5860a7ded4a4280d8c6504af021ac53460740756c56c61362e8768c0a5f21028", + "private": "5JVD4t1EJJ14c3pHJpaq6sjaxwswUzr2HS1TgiQqCb6zYNGJNtw", + "public": + "04c0e56782f3c553fd6fe7257fb7afe500f60e2afc18119012c04d77d538a3e6c94493c74f1b459b5380ad896cece6274d19d77ae37cb08eaeab9a23b161612083", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5JhiTNCaFyyYwWrj9WfCNxsbmGaXT65e8HE1SvP3HgvCW4a4Jve", + "public": + "047f3419af64426f4286891825e6e1f670dfcef7aa9059f54e28c81a6aa10a61bde821530bb09d5ee795cff42d1e3d3eb07012ea7ff6d315ec485788257b8be63b", + "address": "1GPngewrWWxSpESJZXhs1dUWnJsXbMFecL" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5JphBkULG2nUcNQ4n4wGLJ4wwfCFFHRqnKiYL5zmaP5nNE4dcNg", + "public": + "04252c1737d76902f5527c715918192f11693579ce9ee9fdf8cb4ded60d356858b938d391145e49cb9f5c303354c4ce11e66bcf96f1a01ffb8ff9ade8b5e211e0a", + "address": "17dFo2AedqahwaYnk7LFLBLCtU2Bw2dv5o" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5KAiGvgHbHAQjEQhncY2X97EchueCWWqZ4npS225bTiwewVWCyZ", + "public": + "042ce3195aa1d6e3d80b9e978bb5f44c126db5295eca79e3323884bb254cf84b18cc7d1cb7c3e29cc27e9c7359beb086879da84248fb033d7f931801561a99a3cd", + "address": "142RJSyAb3mBrHhzDpN6AfZMfm4BRywuMH" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5JMmQtMCCv9pEFQ6mLUJ8HMzoK99TUXTor6y6s4ytgZcYUSVQFK", + "public": + "04f94bee33e80de1348691feb8bdec0f522d9effe75e019fbdc1b2f1a8acaf302b3855082da0cbf4a1182c0bd994b138617b9365433a6b79c0a1ccd9f188dbd317", + "address": "17FFpSPQgZ4k6vatfSaFbCrhfjWePTH1LP" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5KCWd46tr5aAt3KWR4TYva4nLM7oiw2McJd1EceJFkjnJkB9a6P", + "public": + "042c5a7b7044250eb015848b5212fc43da358356ebeddb696711340d21bc60a365768471bd9baa974eb7ac065956e0dbd78f953d8a7c454dba2d4511437b7b06d7", + "address": "17Pdqkw81yoV2UnUTAkaMsyUnoqqeWGtmz" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5KTbL3moeQxVN3Jt3vpiscdpMiB9dwERtAeK3emMjnwuHFK3Wo4", + "public": + "04fad2f9cceb7d158fe70efabc82796a866301f7425bf27845ead431fedcb9d9bb0940625c48aba27e60accc97f3801ecdc8cf39e7d204c3f07228b5f4141928de", + "address": "16AEFsKGYkWCjdQkgFpd13fgjd9Gv4bUAk" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5JL96c8DUp2gT7tRPByivHP533PHgWkRDxUfKn2gW5snp67CsUw", + "public": + "0446d6c097f4ce73f8220a124cabbd16ea3c2f796aa137354446384ff9dcd4935f38887df48d7f23d05ae529efc963c9fd7933f9aa1edd996464dea13c95c56deb", + "address": "12xJP2UHzoAJ2ne5aChDFXw5PawWLXTMi5" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5KUdxsAry5FAu9sUFavKZ7ASv8b8LVTt5DLsvfBRNDPNgG37UGd", + "public": + "041f6554d0d7882dd4bfb475745c11fac24ebff38c0024cb58e0fbab18540be569276d586ce0fdaa87a4e65a0008d6f7a710d7af50fdea31696f56f177fd445b0f", + "address": "1Kvurheu5ysasVpBoXTtiXBDa9nzLKfk7N" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5HtpU7Hrcmj1BP5A6qwobBthe46AqYjbTfcfn7uKpLaejYoS4yD", + "public": + "0409b44e12cf35e85c5c78db77eb89ecbdbdfd102519c18fa520542eb8699b5519f89eedea0835636c1ca0a25f402102fec77a6cd58671bf940dddd6add6ed18e4", + "address": "1AxypRJP7KmcQGqY2C56VH4UVtn5KDmLNV" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5JUf8XK6ECuD2GuQVQYhRhWVZywYJ95MEDBkkSRbnenREqnUQXg", + "public": + "0495f99b187d78a31adf2b891308834b8c6ad67aba0fcec3826474ae9e5099c33138009fc7adff48b21152afde0602dd4a85798d931168e8ed259057a7d180c469", + "address": "12uciEBZtKmwRhx7GoE3ef59hZg7LEB675" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5JmFotCM4GzHg8e1dQCk6KhJw3YakAAw1QSWLH9PAhivjTJsY8G", + "public": + "0483fb8b629c24854513420ebbfdde779cd7879993c1cbe20a6202463d58b42b783ca687b2d64c8fe5f7ca683d37f125f7d97665565b756098c18aabd85108c69f", + "address": "1BEpVhz7vJHQDNkdmXyGPWoxbc1yW33HEL" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5JWzhUksRihiVzojzoJb1NcX9eehN5UatCMs9uS74K2D1qNjGRb", + "public": + "04bfec17a1750520c7f03db2d1d3ae9414cb41615c649b56ba82c5b725a1858928b931532369d021941b100f18f958b0485d14e33f9ea7d726096d8afd837c9a71", + "address": "17z7WMFEB1ovre5EWs6wooPDmykZ6Uj7qU" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5K1Jypza55iw2ZjYaA8ihxvVJfRgEPo3cEMAjEabwQRf2oQQVr8", + "public": + "04e039c992764c19e494bd3a70c0dd69a03831d33bc61796578d14624896b16db1a90f24111133de3e4524e42850c5bbc54730c1cd7cb801d96a0fe7ad92f6c047", + "address": "1NuDqfN6gwJPZSPvwwy89zuSu5p2UgrZN9" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5KhMdKWyVuDtKjL2ULXtJtVk8aRnJzcrKFi7BghU5kaZdEgJKPy", + "public": + "04cfebf19b9c8f4110d493b1a5a73fa71168d9ed46c0d9e2deacd73de0248590f76acc2a1fad98bfcd5536502502e9e702da1fe9e0da05f700bf44786dcb406bf1", + "address": "1KJm2vMQnBfNPfNeacpcAMnqu8wzQKrtJu" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5K8PY4qcJazN8rA6ouWk9mcHZNjtL1AuxSuJwFz32u2wHtnCDWa", + "public": + "0480ac83e4e7eeea8e5d673393b575e1ceb3d671380da41625b6a0ce4869e367a0a6e9228935debf814f59ada5d229acde132eadf5b092620f84191c7fe3de3ed8", + "address": "16zfbHrb6CWhH4pywiiK6KFWmUE6uSGZM1" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5JcLDoKkUq6CWo6jARxH4ZdQkF5ZgRLcvUu5SzytS3a1Lmtbve6", + "public": + "04bed89992935a7576a06bb638cf1115405beab9f978cda5a8362f51ade2074698bbfdd0d2faec0f9da3e81ce15dea4105904ee428d7be087d5a84816754f83021", + "address": "16CFyW8LAbJ2TvRktMkvNK5g5BbcztEBab" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5Huokwgetbkq8F9TQ4TShLa6dPrbGNs8Wig6JabzUbVVunCp8F2", + "public": + "04a46dcd896f84700122b60fec96535c8938e9afe099aae4fdfec8ef5c5d2b887363c30c9e9e601d39ee43323791f02837c5bdc9f8a9ee826e9491d942af16df9f", + "address": "16hR6NkLiAqS9A6eDgcmr3NSYhW8rnkG7B" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5J4ZcrkUgrfDQ99VVdRCoz9GAmPVmAWUNd7eETdNoQqwb1wDTsu", + "public": + "04e922fb0860cd246cfe1fc2993fcbbadd1789b53fc1e8d0c61453b89cac9989d76c0fd21e08fe70df012e5e1b525d4608a5df9f7c60e471e4d8f6c5e793be9097", + "address": "1FqjYB4p9daHv29hf5sgcs8PV1iJWpboaW" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5JU5CcgF2CLFrhzKpKnhyL52GrQpRJWHTG8eQc2Pn7g3daZAKiB", + "public": + "04cfaa96f2298393140d460b9a9249ecf5ac07a57ddb888858684cb6e84d387539c422f68a7594d34326ec0113c774a7bca57175a93ebcd5522e54539029bf36ee", + "address": "1McQQ6ZE1x3NLMVSAKHmc6mh8tQBD2v3SF" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5J7Xuu4oUdvefxnLAk8WSsn7AV2fvRAK3Wr5ZvrconrDammajCJ", + "public": + "0438432c1d76ad39bddbdef01bb0f9efb00c49b47ce417164ec5de110d88ca11e0a8fc10e74de88eb4b853df45dd87800fcd219ed25e0d097af93194eb65d801ae", + "address": "16RQkKtJ6tTpxyoscnxDDAtRS6K8asW6WB" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5JU6TuNSm5fHCnUndHZUZ8q329TSyaNDD2cvsHgwpY9Zu3vC2mH", + "public": + "04901395921dbb7885b2e4b9a172fa07ed9ab2c2a52e1737ee4be2510c262e38954b3cb78d0ed61eba028a835424aaa3285b170809a3af88380a9afe2d25bf41e2", + "address": "172Aoq4xrN3LN8mv3jPbqrKnwDhNUoP4vt" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5JoRKptmJPSgrWurNRwaJHgRByCCCqQn8tpYnCj4bp1mUd3jW3s", + "public": + "04bf58f7889abaced069f4fcbe7568b3ff49289c12a97b4d6a87723be4f1f4c6c5f5ebf2c84b61d091ecd1bbd6c3d13f50f6e986ed36e6f722bf81c97fdb352497", + "address": "1DWXe7zWQVfiUVB6CQjYGHUJva6sHqG7B1" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5J1naRzd81BNPttAqpj5ChjBLAoTwyDw6tK695Vid2n3mstu6ny", + "public": + "049c1e2b6bff78e00ed78d24faf636ab2a8618aa3afbbd8b99e25ec362bb5d952571491cd697b4840aa89252de7b9949463a84e1f6c8263f980c0062694eb9aa63", + "address": "1P64DJwNFbzGDRcf1thR9rf8Pn1LsiPBYw" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5JViD3EWFCGfX6epxjov7SEP5WNBbNZ9oHd9f3FRGY9c9cYq7Ue", + "public": + "047b27019f7db9f741823acee322fb98d143ffd9eb51a08870ce8d882e9f6ece84cc718b2df42326eb94d9b0febedf50eb4a031e13f94fb325806f786f70e7c08c", + "address": "1Bd7nzW9CbNAWf9P5HaTdtekUPDmgiiVXs" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5JVLZ9hagQYrv55KxjPx2Hcd6R9C98B595jvRbeQRDiBveCMKV3", + "public": + "04be9cf31a4a518baaf3c7ffe38281d2f1cf1936e470b8575d2a49973df2a0be6cd915c9b34fd6a70c78d6a9e65222ad3eea8a568153c13bf4bdebcf63b87e6c83", + "address": "1DTjVKpHbVDm9YGqGqB7bAFsfzL93PMYfx" + } + ] + }, + { + "seed": "0190fa267653d642994107b1105a13df8d22d2045ad2c1f9edd173b5a8f51067", + "private": "5HpybEHsw1JJGqJyZyxkRJGssJMgvbyHTZKptokNixuH1EkQDpj", + "public": + "041271a28865dd848f2c69ab589f5e44e03afbb2274fac0e8e3f0b98d93947c222465898a41eab088986afa35fd4011e820529a8400e00e06435ff803226a6c4bf", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5K46sU3u5m1jj16fqBvhjRBVLFjYw6aiztVqHSne37ZcP6yNtMg", + "public": + "04d5e09d2d6dacf66dfaaf81a8b49621bd278a02da6e43f53f382548b4ec5e83e8e198824e4d42d6d18c884b6beb3e5d68e1cf5a13a6bc3d537efcd2c830cbe98d", + "address": "14xwVGk3M6VSQuHP13cLWEYDXTaXC2ygYU" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5JWg7tMqJyUVLB9JgR35WXZzuj81wmCpBy2sPmxSn16vX29AGjP", + "public": + "04cce6e5c1a99333e8c21954e4a84d3a909e79d509d78ad35e13184b561994ae72860ebcdea6f09ec450376a51754999aca52ca31ff5419fb098056be1a8180a8e", + "address": "1BFyojLtWkUeXfwPCy6RetM9LP214DJfM1" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5K4Qb4VgF9VqATPmCvSmBdWRq18zXPbXFr1uwC5SFwNmN4EfH7w", + "public": + "0476fea9c73f3bc3cd7441e67953249964e69eb0fcf67a11b27e874796129b9b1c26c793569a11b7db6af3498ec3c8e1107a2f3940b9831cef21ce3de69482f035", + "address": "175YWc4PNuoDCXPjnECQNZU74mUhfCqMBw" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5KgZXpM95A38x2SECJdSVcyWjXgfNNwSyE8kLFcnmQYJLDCULxU", + "public": + "0427ab0d9b28b89575dd6d3d9395f41b8b4563bc0e7c87bd0ac8460c27fe6dc3e62d3ffe022065b59550831576170b6efcc1d10e673bdedcdbf00fc9931eb50fd9", + "address": "132H5Y4emu957MpLp3zXChWd2x25tApE2x" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5Jjpwv1ziA8NsLm27iaV1ushNNea3VCLJY9ZdxnHwb73MM42trv", + "public": + "04993e4ea7e77ea0907fc1f27b46daccb2004353229db3adbbb63cc90cfad308c64382b306aeaadce1c5048a349d790d4ee1c5a91e1436780aeae8d8d54beb76df", + "address": "1PrCTwF3fveHbrJxskFKvAYewCtX3mnsuu" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5KXxe3W1B4rNQAPJciFZb6WN5s8jSKLLSKBdZLmySzER9Rn2TcR", + "public": + "04a5d5bc5e1d08537c59332e1cd7552230089e8a2fa20edda994c595e5d843135db72570728bb708029554effc8b0a7b4bf1aabdbdc0fa8f7f265d590c1882220f", + "address": "145dn7bGfQ7jpsY3JRbzi1boAfpY39qT5t" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5JfRwd7qwkaV5WGtpo1pUdJRsDHMeyUitt8gWDsFduM1fdvVBFZ", + "public": + "04e5bce39675b5c44e793769ebcac0335516a68ce2e7347aafc0789e4a247991abe358a294cce38351b782c01cd7b75a403dd05018f8404b6af505a1340b0e57d3", + "address": "1PGENcCCgy5Vn6DPtoBS5hvBv2CCeZ61FG" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5JLRB6fcPZjw2U9yWgHp3DvMc3uzjBqypNuzmJ4NrBiN4vfZr1L", + "public": + "0411a1efb37286285c0b030f6db89d4f947569eb957f55ed36ac458653a019b13df1ffd2e1e0ef6ae040f2831a818b92a73e1dccb2842436975e8e0625db6ba248", + "address": "1Chmv5y9NKqJ5CbMzG1yVKRtWJ4sCDUGHZ" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5JfFJg6M6x9HdqVwadAoYML1CAg6wQG7jS1VZgwDHedWhMWYCx4", + "public": + "0424cb8e9db47b5c9fb11f7657f8856ab97b13783f62c322e49e9a76a1665ee7548d6f8f26cf6455e535f83b6009e549e7208816e333484d33009cfd39c9ac1ecc", + "address": "1HJ94UNGSgDREGJNs9UcARiSQzDm4e7aiS" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5JnSMS8oC9SwNWKbW84Z52zhA9LGKWmQqrhRKjPsnMPkRBHG6eo", + "public": + "04cecf702d4bcf1340ac22573d90834e1b6a0601ea050bee983b7305377d29da58fb1ffc74e195a25c35e0ad9036625c5b977b6f8d5cf8cf81c05b4ea2ea83df74", + "address": "16SxTdbRwnGgRiSSUPFQVVc5n76MtxkGCp" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5J9ehEbAqQuMN6uGcZkcvQvUbcWPfBvrCAvvuGVUGTo7hFFgACG", + "public": + "04bc712e7dfd21509b71becde6865a5544eaae9778d40af58dbb60f6eb59ade7c96174b8ac1908184928312a5f17e4e1aa2165357b34d0133de42ebe959f88b093", + "address": "1B1v8UfpfPPuPY8xtf4aXLfHD8Zbjwynt5" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5JuB6dYYBPSTnKioaczrQBgXNisoBXo8KGzxtXJdc34zSBBikro", + "public": + "04a896b448a96845884933eca4eb21fd23f0ffc7b130a6ec314d5318e15bc0be0fced355b733bf1a530de029e22346cf24af650675865237af57dafec7f3ccf0bc", + "address": "12k2LvAgPEN9Z9GLzbZHcbv9cLzsa4LaEb" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5JmxcvYWBesCKA3U2PvmDfKQfVuBWVFPtvvBZAqZ7ZZ1skFczHc", + "public": + "044a7dd12654a23eb02d0e8f0a9299725a4bc3bb1ee8c3f170769a68a8faa048e30eedc972ec785818eac00c5bd26cd7117f78f886909d31142dab47236a7e8b0e", + "address": "1LU7PDjff5FbjNwkErjyFJHjaigw6ZcvAn" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5KQD3swSzVU96uvdFkBdjG2vsRDRXtHE7gjgUbzkB3fPcvSmAgi", + "public": + "04e67e9f09094ad94d45b4713400c915c438ad26954a13ad688def94d2111e0798dab5f1a7dbabfc6a0c15388c4a3f533c0ae65a45f0833defeedd92cc6699d1bf", + "address": "16QcmyCSowihpyRQePPb8Gq3KZ8R66tftG" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5JahEus25LBPFoEfwXu1ejx7AUDBqdCr4x3NLGCcJfZexzqpFHS", + "public": + "040caccb786378dbf0bec933a726f4b40b955bba99603b056db8f0f2948fb899e346e76dcaf27937dbc18d8a0181e68100571efcbb9d526fc646ad8f2f1ed802fc", + "address": "1FEoWksKUU6MPm1RxPiH1FQgbbR9eLmB2P" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5KGkP6te1M8HtWmJBkgkVvzcCMUcZFZpkVg9aFVAcZquPA9kFBP", + "public": + "04d5ec6713907d2d6ca3fa4f0fc13f3cd39ac4a5bd01b2c36c7be9bf2af5a90f972d0626dd489238a6876946bb5c052b128c7efcfec1b94fd2b983cd4835141370", + "address": "12ZpjurtJV58KpGJEko1aRSisRpxn8eNFQ" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5HrdoRWUVDunqWUAUuSUj9B56RVHugBaAJK2RnKKWQfFM91UfpQ", + "public": + "0406f17f94748cd1402be89f48b5fcde611c543f71ab59ce848506f2d4652a08b26d84f7c0d5f47b4a7a8dedb45b3a28fc5f9faf907d07bf60b3ac01c41ab85f47", + "address": "19avjxVd2xPWdzmDpFabdajhsLW4UjcUj5" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5J6rQGmCWzCwau5YzS48oH8Jr7aWNZoWAA3An9veEWBP4tEsVeT", + "public": + "0488393113a0b42ab7813fac65927b677cc4fc5b9619986e520a03b9b392ca0fa4227ac4cdaa2b6fccdf12dc94236a499a4fb9a30114768237f9cee239b0c63f9f", + "address": "1D2QxZN9MBsYZeMPMLB4p1zcfDnx5MSS5J" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5K31dVVeZuk9UQuox8hXUpxhqCbPSfAo5uQPT9jUBvTAUXRTkqE", + "public": + "04e12afe576edd8bf2e68c61192f85d179bdf01620854f35900670cb1a6b1a47d7255562e24125b87dee1c1a8f621c31b24f857fdb02887f210ccd958766c8e908", + "address": "1LEhonvkcwgB2v2SkyKQJrrcpK6mwKFRS2" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5Kc9dPoJVPttNrGxubffighKBE4oHVd5692bZsvgLCFXGkcyyMr", + "public": + "0427d95a7c4cc1be7b60428fdeb72c1c17f7994c92a29d155219009aa7ccd624102a6d2a7059f6c90f6eb43934a3fbf54c14e73b49aa1a450b3fca9f80185e2cc7", + "address": "18NV4kbEev73ZeDJ9T2szERSX5DNY6BEpv" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5KBM3RWSucLrAvSngRtTJASsHSr9o5v8me9LNsQrFdRN7t1EvW9", + "public": + "0481b6412f2dddcc0572c13f91001d7f27f56df90909a3bae7f5104b7e27fe57a734f0a37922b0b201c8c2e1c983a46fce53bca0c60c1fe7416fe86b7f34f9cfa5", + "address": "13Dy8NLzrZgJAt2Ur8VC1Y1JmbwWPMHfrz" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5KRzxzxVyRLw7M2z5mR4dHQAgDsYZyAiGeCXQ43YeryCkXgTgEF", + "public": + "042695c2e0efebe4d61cb78e23bb46a73b67cb853708d8265e4a2a6a8d5028f123748297471cef6fafcbdb4cf4a3c0089c63debb7be742d3454ccbcb584868d48c", + "address": "1DX2WdfifJBLGZjhYMXRhSjShTk6LXH3tS" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5JrtGHpjUfHeAJoQUzTiuuPvwJ7Pa1y699q8mwXyr5X6q5fZwCw", + "public": + "0438c76ca0b36511757ae5fccacb96f0aca31578a7d41ae0418452bb1e6cde22cb4eb7b19c3b6177d469f1924a7177b1d83677ee25e4b5608ac058c9db59c8d999", + "address": "1PbYC3U64twvnFCGhj3yGmtvM1MWRcXAk4" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5KgFYfyibKsavDEnHkgj2ogoVLscoieZDvLwAikJkHTdbcP1PkZ", + "public": + "04c09f6546ae76d6c11b84161576cb7f37e58061b266e4a8516a59bdb3bd451aa1775b7da1a4d7fdd605e39d223e4d0507c6280463e5a4d4d75f6da3d9eedfe5d7", + "address": "1Ea7RCJM1BVdGi9z9JKqwaqHMCRucWgp8X" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5K97NRq43ds4VV6xCZfYfqstWqVbrBBAD5BWzEVEU1oZzLAqiew", + "public": + "049394bdac0077d5bc895922a1f771d4224bb35d0c1feea963bca4cfacd58e508cb29d1392442a294dc2f5ad1bfda536fe7648c582f53666ab26699205339a3cbf", + "address": "1Aoz8y3ALm6jyeeLgZGsEMetg7sGbG9Ybj" + } + ] + }, + { + "seed": "370989c175ce7c6abd32e7cc8504e4cb572220822c8b95705d93dfcde9ee6dd1", + "private": "5JEXS9auRFRJc7fUYw6mNpvnc2i9zUHYKbCJkNFpXk3GpEf712s", + "public": + "043df51cf770b4bc4caf6e3e69c61b3ca69a566889d6d095fa627beb3a537943c36b018fc09211e481e44f1d9485fced3fbf95768abb0cd566f2391f970d681c3e", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5KP98e3iXaUoAoZbG1iMSjxLPv14o8pSbEcYmUoM4Ddd8zmXqYd", + "public": + "048fd33e7b674202499ad68f23542dcbff948a1181da2155f81cd03b88919fa9f603e0daf5bd99c4b55563dc2522fbe49a7a18fd67d47e22dcace3fceefe76c843", + "address": "1PhznLujr6ZoNnKqFzA3oRsZQNCPSKSXwF" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5K46yhTFLJeKeh4zVuu7RRZuC7eLUXyHXiEaDqZ9seqbD3iE9Yj", + "public": + "04b90faf57a5283371856d9d5781e3450b3efd5af1f2083367521dc9e5022272249b8e936154ec14f7dff784a6205cfc2c696ad36930b13cdd01fc33177e0af304", + "address": "1Lauq9cV5EeUNo9uygSTsXdEQWwZu6ymrd" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5HrFB6m52hTTBy566ZbrZ9xwWE57x7UTT9mfTHVk8bsV6eUoUeW", + "public": + "04f314ca8dfbcca26d5f41fe66032d37b9dd3225bae8a97c6cc45ac9a96d3b9a55514365b27de958aa86d1a0334445d7434dbef07f228376492ae7a32055c00789", + "address": "14PenWxTzbM8Tp44jLoSbmuouEudUqfPfB" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5JQKAmZ6VDSBJjcj6hkvHt3TLF7Ngzhqo3H2eW9St8yNahaQmaU", + "public": + "048b18154dc7e1e2c5da59fd0391674ce0d706a8532f48ff65b84aa76f5c5906d7a3e3dda271479ea6b2290988fd78be371d463ef8df393a863237636c16f668ed", + "address": "19nG6mCLduxYs9j6xeugfCUJJehwsD9rBn" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5J2JxxTgp93JYixvNzrn3iBNg68yuakXiQG1B5MxBZgGk7CNMV7", + "public": + "048818409bca9bfecadc0d801ac547d7a9eaadc0a68035c5cc206f81da271bee2e926e34a659fc5c7a441765fef55b35d2b3b0ffbd7a16c0f794e3bdd86f231c8c", + "address": "199Pmi3tpej2ruPubLzRQeH61CmMg313xF" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5KGQYKecQf8WEK9y99Uze2WWHTb69f5bHstZrUTT3FjoWVYcCT4", + "public": + "04e5b2539abfc87cdeded0e51910ee245067d4bc6198e7d8329b62f7915fccb46d380eafffa0619908fe40f8e29e1c27de5493f33cef9e9dff7f3392a1db38a91a", + "address": "1DyayB8r99J49TupiKn5jhWhDedqWvaGdb" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5KScvSUyz861kqAG7dA6BTSn1hSoenvecHvZMLiFYH7mRyispjR", + "public": + "044d8243b0bf4ec6601f693e766a25b3568fdfad4bcf832df8c14a1a0e1ded5345c1902ed1122890329726f5434a8c9e3ceaef8066dbc24d237acdb285de423c5f", + "address": "1M41KK8NhQgkhciyvg3yxqNX6fxFg8j5jq" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5JmYc8h8LtH2eUj6Bxq5vnKNZEjDqohnJBNyjxvAvtXVLf7MdTS", + "public": + "04b6b313e2ac7e5f5d17f7a902991d30f222d0c75cc8e9662c91fa041a5a5ed68ce16cfe6ef333ae63d195ae6ee0643b91f1f9423b69289d1cf69f92a51d0aaaa0", + "address": "1qFjcsBGdBHJmjb1hyLQNvoDUvgt41UK5" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5KgDpAcFYQU5HLUm761a19pt5cUsgVmSKEqSw3n8xAha92yRk1u", + "public": + "041bfda57dd3c568d549d4527db569b79008f0cbe1285c6f7aa5c251fad0c6928d01ed2a56cc723c694287090c8f2a14e77676ab9b10619c15c02f69a6b7a4aa0f", + "address": "1CSqHaUAGqgKo9SFo3PEXFAtRCAohQATAQ" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5JR17Hv1fLMnB8Bh23iKYJqW57fHRD5voAH33SyvvAA1MinrHX2", + "public": + "044bf01319ee4c5d01af36f58f7817cf7f2fdea72918b77356a04f345c2fb110dd32039989b1851cd459624d2b102caf848433d085cad5e79518f585eff779ab3d", + "address": "19NaouT3nT9fAM4VigviTtPkY51kAQz6fq" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5JAqPAGJmLqWHRLjuV1cm3eVBfnGcYYrfz4S4PBMJ1ofDhdZMRB", + "public": + "048bd6bb06059842560d8e81a9df078e72eabb704b4b468db532c976883dd864437f45b8589f6247c2adbf936aad60f21da02e193b2355b2cb8f54bef5fabb240c", + "address": "1FeqsMR1XQmUorgVoJCk8eyrHSyMe8JRYK" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5JWC92JGxrobpTmL3b9jdLGdZNN4br4mPH3FwonZkQFtscbVetj", + "public": + "047e229d3b14229c723df24ab49bafa44ee711182f337c9b37f04b1e862b646459d8376b5dcc5f36cebbab2d0980ef9bed4b4f66f88bcbc6f23eadcfd50669f6c9", + "address": "1EznxrZZD2UYFuBh1zxm8PcMRyrSZV4qdq" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5HsV4y7hEKasLDsErJFvFYYYHMXPjEVr3J2GBuUPgwUUqu2L7Ms", + "public": + "04dc3861d893646a2c9224b194b33e6ac27657fec2de3f6599909bc342ebf42af367eaab85fac7432b46883fbaf3302151a000939654b03e410485d7000c6560ef", + "address": "1NwkcZuHNTbPehngtto8gt76EhC8WgFA8z" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5J7Fc3Ee8c85HJhbg14rsbbKSHAqShQsgq2rGDRDJA6fsPoHkF8", + "public": + "0491d31bb5546788e2a4c36ff939d8e9754694bcaae014ffcb373d9384ba5b59cefd3595471c249eb3b583cafc36a9dcfb756bd60217fda48a8432a19c3c52fe8a", + "address": "16hiRjdk4a9PtgqEQ7NwQagFanSonofuxM" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5KVwvegK33cVcUkqsRkrPEnz6oMh2x2TpcxFTDBG44uQqJqxcwE", + "public": + "043a7aa704cb6d176e83c292d646a929d30f3429c00a4ca01cf26dc528a786ac8910faad514ffdb97c1bf0af86d01c29457e5300d05f52d03862ca146d73e58df9", + "address": "1KUhhgbfnzcgFmabSrPCfbDWUaXPiftoxa" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5JFqbb4pA5zWT2ypJiifxmhzj7yuVnAwtVYbW1UoJFiFtU15vEq", + "public": + "04ca3df287bafea88e608818e1030d25e547b4338bc4b7421d22a03c9fe9cac86b6d116e7703964062a91478da33bf04c008ed3bb24a1ac46eb29c207cf82bddf8", + "address": "17zvotfRcqzgjWCko1urud9PNWPvmytp7z" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5JfDmafD1MN7cGyiYrsGpyKAxwLGA4HqtfzFj2DMJrpX5DphZkD", + "public": + "04558ecf1837d756ff3ff95c0f6ddafa333e3b60a0623e3f32bf627132172e23549df8f0eeb0ee4964ac8f97de8f732d3618cce769efe610e688e498967037ad9a", + "address": "13iVpKXNUhcKDwqK2snDrJbKV2KwHeoXKv" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5J45bjuHySRzXXWYFQZeSuSmoKkRvf8hqxSDg7KaJPXuYZJZZeK", + "public": + "04c3acd450d94ddf43a455fc7e8e8e7e9da2aa69bee2e98a49b7e73ff2a8c5729ff934b61d65d0e2f0c3a3545fee08232df8bd14cf756cff72b3570aba8d3fec63", + "address": "1MnomALKEhzDsKJ2grpgUoiGwAFabSZ7hp" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5JNmitKYFkMcjhMRHF4QFgKuKCEJCaYSE9ZNehvrW5NbCcKRDXy", + "public": + "04cb7bf10309e119238d2c3196cbe0dadcebbd36036c9e34b3adc3fc7b87bc5fca8224dd1e68e04eaa530bb87804b60220ed06972a98098d157aa25410914f1abe", + "address": "1CMWgn9uSxhNU2PpfDEjFagU95V4we2t6o" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5KNSxfdtLXigdjfQoSuxMCtf8iqPdSEz3EGSeYVYL1RYv5CHnJh", + "public": + "042022de45351f02e511297559b93c4e4dc319c38e764a5db50897bae0d2ff1077650c9d9afa0391483d602896d860fe6ca599d491b1d9afc0fefa5813fe50e76f", + "address": "1N2XgacFHEVWWB7bZwXT4WJxtsFUExDuxR" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5JYjqNZJ14JmLB7RUpQmHKEvYYS9JUK4Wrp3iJi99HjDB5Stckh", + "public": + "04cfe7b56c95803b5e62bb613b83673f24e24b6cb09aac0021a2e8097931ab010149738456ffa940055dd855362b43dac85eb3f66a4fffc0d53de4a1a0176a8f11", + "address": "15Vn7ATjXnjwJX6xAow9bgKzf4NVW3mHSZ" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5HxXEAR8uMRiFmyTjJYQoVTQePxkvCwzCgWTeTbYFVTCMwjfze7", + "public": + "0460022213824d8556c07530506ea57702b71e61f18b555db48633c1c4ca276bbdacc7998652b4e9d897c317673ae708060df1f13c0b8f2ef2ae66b0a72c38d45a", + "address": "124Jey6ACz7jw6weZEGw51jc5Lwfwanyca" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5KGGx7PnV7GAZseFsHzukekZXGngjvm6VZdBWeiqdbAFLHcTRVR", + "public": + "041b576386c7961b89280057c7ab647c57f40e02c52959cea3a2e108b0d7ffde21eb0468328aad18ce50927b303c41cf560ff0371d3a371001847e8b4e9a254812", + "address": "1CrGcPsu4Yi1NNjWrAMswZyUqqiGqek8BD" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5JpeGuuER6isVB34L7hjnbxucsLaDfeXaFmqwK2kK32rt3r9mqg", + "public": + "04ff40f48f5579a2f58257eac9cc9812647acca9dc6fd325196ab10c185c943d9a176720985ca367f80cbff78cfe5a08c41f295f0f85d57402229b981d91231ce7", + "address": "1D7zTNniwCXBKTPz7x9ykaYwMGzKYpTwys" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5HrHE6yubrG52r44Wmh6CTvVjbyhJSERCiqvUFSZp3MWTuh9gpg", + "public": + "043080f73dceaf6b942886080b2b30d8940432ca0e9c385dd5a9c60d77bacb228b2f3ad3a20745872f8b68c501162f92cb00b941eb774c26ef576f0b400b1544ac", + "address": "1F8Z8fCqr5uKmyFaqNBPNDCNJWhzZd7RHt" + } + ] + }, + { + "seed": "05c8507e8875b1f3fd39651158ae9e3452cac13de6bd28fd4f98f1f62d44500e", + "private": "5HrqHcF4g6wv28Mu9jTZG3Z4oYKam8XKke7uMRNQkorUxYCKEyW", + "public": + "0444d473debb2a57b2e0ece4ebaaa6213b63b86f81e474da7586b89e6f22cadd932f3de783888798cf9b482aec77ed859459b7db252231703901c0bc0e124d0d5d", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "5J9hxTUWYNWQUPcc7nAh46nKB2U7wkV1vdbcJjLy4sKRQZWhBGC", + "public": + "0425286971583236732c39b702d8816b8014960688b6b9593acb593c25bd0f86c9b8c39335c5ed0aad7adbc19976fc7bea4cc52705642914d7ef1673f53d7061ee", + "address": "13NAjGv58LbTc6ZcQeAdbiY1cgiCx1N7PL" + }, + { + "change_index": 0, + "address_index": 1, + "private": "5JYBLwovGGyjJ7FE2Wx4Y2ytgtNvQUyeBkcGT1X538AGDM1Q6eZ", + "public": + "043bd32bf1a18b7179724b08c3fe9554e958ee8ce2ae6aee452eb352fa0150091933d325e14a069ee98d78e70ae855c0bb2596f9483490fdec11aaec8d13739fd0", + "address": "1MmrBiXGHJhKRyqwTJ4uN4mvfHoyjh3Enq" + }, + { + "change_index": 0, + "address_index": 2, + "private": "5KQomWoq1uRpvd6cmiy5zHWnYpt3SqqxvYWt4c9ZDYnkxmDP3G2", + "public": + "04361388b9ee56d96f780085370e7d596d1c8fd2b275ee4ae2feadfc75e539022ab971c6c5d1c5a303aed2e1ed9bc5ad6905c6614657afb1d23301af83696078c6", + "address": "1Fwb6iXf5va1WdChvSaZuy3KEfsdFd5WcJ" + }, + { + "change_index": 0, + "address_index": 3, + "private": "5HtsHusht8xi2MZhStcseV5vRknsy2XQvNVd3gr1pMoP8gxKeJP", + "public": + "0492da84843a516aa0dc4786b0b4f3732e1f5768c75965be7259e41f8bf6d5e293b0da92b066d6ba1dd10e224556d622b768b1f001becad4f641a594f0ea4de774", + "address": "1Jy6N3WfDzcRFJ7JrDMGsqCLfew3EPJgWp" + }, + { + "change_index": 0, + "address_index": 4, + "private": "5KHd5jTjJvfiLRzaj44yfeAka4TBXRA3c3eNhY2ofVLE6WuNbtS", + "public": + "04e36450773e94295614af6f07dab0fa596cb7cf61768d29682a2e0ec1e8e8196730b9309a691d4c8549730cfb182099fc2a66e263e41883b0d8be041847a50977", + "address": "1JA9gdYeTFniXY4VawuVXUmHyutFsTiAcQ" + }, + { + "change_index": 1, + "address_index": 0, + "private": "5J8LBFsERpqdUFTXcn71iTbRDLqvM5WNhG6a2kStfUE8cqmU5rf", + "public": + "047dbf8f736118dc88a6184140c2bd3610f56d605ff32310914d7af71ed549f95b28e3ffce2236d3f85291965b40ff2dfaba9d9305de9dcf3e0b5a6ed898ad5b3b", + "address": "193mzvw8dq1PxoFBeyWTUXMdx46JzM6Krp" + }, + { + "change_index": 1, + "address_index": 1, + "private": "5JSMzPCpydC6SEzkUFsQJ4nzCyeUGxC7m1FqPLn7sf2ttd5ewyH", + "public": + "040c673d399e31742d31bd6ef67fa361cb5f65c4a52819aedbd82718db3a7151fd9f2f7ac129873de17544a831f8308de6b32aa6708000af70a1e8c230e3169d3f", + "address": "1PNMeDgFzzaUtAcLWm3gVUFcm9kezLbxZv" + }, + { + "change_index": 1, + "address_index": 2, + "private": "5K6Dxr7yza6uzFeurv15Xz5XBzAYaGSvtFhaReKr6K5rYSVR7VN", + "public": + "04203cdb77c87e218e510761e5a7841e150a363826bcd9decf172a8d64c284d24fa9a3dec54823d61932819b1a4f413b1d09d1ef38d2f71c045c5da1cfdadaec5e", + "address": "1JHYgTYstXzWYEcf1FVe9tLr6E2freQyC3" + }, + { + "change_index": 1, + "address_index": 3, + "private": "5JaB88zCF2vw3cL8Rw52Undk3d95T95XaEFNtJWqWxALjMr23Eg", + "public": + "0412ad900c706ba8f3a448ab927779a99024574598d504b58aec55573d5a2f2c4a968737339e30e1254d516a1295969c3c21dddeb5ee504341dc4ea9a4863dfe14", + "address": "1HWMCiJG9bu8C1qtEY1XYprMWZUxrhcLdd" + }, + { + "change_index": 1, + "address_index": 4, + "private": "5J7kxh3ALnwDmGvm23tkUr6oNtTY1zp2BTRpxyyvQEkPuBTadqv", + "public": + "04b6124da9f117e12c743051f6216426035fc528998ffd4cbe098b2e07977a9f55e6120e15acd4bed6740e83ee02cccbac3ea59ca172a93068ac5cdb32e8d9b0cd", + "address": "128xTpwubhihXmBKUbrhsUP2PPyfc61UHM" + }, + { + "change_index": 2, + "address_index": 0, + "private": "5K9uMiTD6yiKRyAc6cToUt85nsaa6zCwxX4qaTgnkH6GyfoMG1n", + "public": + "048a38679a252ddaf6c8c8985b0be4e15ba1bf9da9ea28806ab6ffd8beacf51ab5e62a306a73d1c8bede6d16f4c2a4987670fff73befbf4b24ae271767ef2be622", + "address": "1BdwXvvCPoozstnE16cxQXxRst9mYmjttT" + }, + { + "change_index": 2, + "address_index": 1, + "private": "5KSgyxDpFKgrn3SnLjrQuQPNYFHRtjoBZP5jov1Yq8XZTc9VeRY", + "public": + "042ee2fc6cc62ec37a70958c22b70d486a8188f12672c34a0a4d0ed156324aaafd50c2aaa33f433fc22454fd0569419a7ef00b44ec49c4e2ca79c5ff93050579df", + "address": "18nNtaJpA99DdcjSvYkDdnsjere7LmwwtE" + }, + { + "change_index": 2, + "address_index": 2, + "private": "5KQ83oDY5mNpk6aGE8LFfMHcVo6JFUL38Jn5aBWWu3e4s4CZvL4", + "public": + "04122805c7dc0292d74e1e7bf0a604195982740e99f18287d328acbf080b3fc46fa985714821c2f03f1cff7a9a33f7ca1aea4a0226fff302fbe53407d2d06856ff", + "address": "18auj4agQMsQiN3KE9B2W1SdToTWQxEsrJ" + }, + { + "change_index": 2, + "address_index": 3, + "private": "5HvVpoBcsaCua9am4EMRLKrQJE9sNkAm6gFyC18Cv6b29v7A3iq", + "public": + "0436ec36413470eaf664d4ee1103285ef783f9b14b889ead35bc6b7d9847ae697f94b7121019a3f7e794fe12901b385409a7d97b2dd6fc77de6590572887189b88", + "address": "143iJqjd8ye41UUv7wZ7FWDqHPkvP9etAU" + }, + { + "change_index": 2, + "address_index": 4, + "private": "5J7jjBr6totzQiwTZ4gPAhMjCVDY9te2kfi2KGiQRSZmT4bJucx", + "public": + "04855d499bbe8e7e4ac921c8c96da322b09aad523eeab1a729426668cea7f1970969f69de63f1847e839215be73fa032e13901b1dbeaf211450b7a4ca1e09cff31", + "address": "14z2eSYZcMmCsPAPwvcaEwfV5AjBDaJByM" + }, + { + "change_index": 3, + "address_index": 0, + "private": "5JgxT3umsETQZhpbS7SpMzizu5b8eCe4jWRFxcJwyG6xx5b34NM", + "public": + "045a3e89ea95c8958f5a1fd3909c95008a59c7de893df4cfdc93ee58c53a7099132174c783e3763271cd68bdfc385ec3604ccd795874b685297744674901c44eac", + "address": "13bUPkjsroXYAYoc6s3au8fdnBbRkTkaPt" + }, + { + "change_index": 3, + "address_index": 1, + "private": "5JAucoo9issaDndGxN4DDBago2Z2YwQNjZ8aUWZkGfiSy6i6ojS", + "public": + "0462d7862d29f345985a9b13a5efffe1f424eb6c46b3102d6eb0494fe3bf29650bdc7f27e25efb914235e9131eb12168d3ade5005aa79ab1477556052c2dc130df", + "address": "19RTLrPn1wumEvjCvrt37jmW6wFaPUYNGr" + }, + { + "change_index": 3, + "address_index": 2, + "private": "5Kb7GyCYShC3sYvJWumvntj5c7aBvkAtXuQyLKkFDy4LFkeTMpW", + "public": + "04d02c44399edb4fde0a7c8c86566f8f7408016caf15c3dc4cfadeb3a43525d353424d43215f712c6b199d0e2fa1f7563d9e93908fc605549f0a066b76f8ad41bf", + "address": "1BWFQByBg5KXnZmifW4h7L9G7fR5TpRTcz" + }, + { + "change_index": 3, + "address_index": 3, + "private": "5JVs9Xt9w9uKUYMwUTFyVLYPFWEa8ryCaPENPP9kZeJSKzkWZ7g", + "public": + "047b7d8d7c5d4e4fbdaa37b9f3e42f65ad9bb916df9ad5536cab22612837c467d097532fce5b0dc5146d922c8009e1ccc39e4cfd58ba640f7a8d051d96e68404c2", + "address": "18jeSxrnMGo9Khy1joNgRGCVvDLWTyG9g3" + }, + { + "change_index": 3, + "address_index": 4, + "private": "5J8awjiugZkR5KbpJmtUmqzpFJPXgqCGFThC7BbJ49MpaLvNnE1", + "public": + "041947e06245cf00b5bbb4fcbbe34881f23c2057883cc29d6a02859658a2ddf2c17e3eaf50780414c4906a80ec1d2e861822e87d84b71f673f24ac4f8ba076da19", + "address": "1CpF2KYB4LXrVKTnXJY4LYmwTypkvDrKzk" + }, + { + "change_index": 4, + "address_index": 0, + "private": "5KP8HpS1CHX8D5d95KxEHQgCw9ajY4MB5ZxjAxxywxtsrCvRKbb", + "public": + "042e56bf89233cb7cf820123d989d6eadb9f1443000b216866f3974989667b5804be063ad7cce186387bd9ab1f0a75190bd23aa3d8f002417a1b16b0ce185ffab2", + "address": "12wFGG7zk2Ks4xZ5sUBe536y4zXJybeSgC" + }, + { + "change_index": 4, + "address_index": 1, + "private": "5Ka2hL6H9Ht7bQZSs3ruzcwDSkRi43wMCAkBvwPhp368T1LveNp", + "public": + "04c7446b2c912b869b8c63924e72746970d1d77ed78162c8c9db72656cba39eb2bc740a1fdb42ffdae3489f359cc1d790f396dedd8bb3c83881b2163ceeff1ed70", + "address": "1P56XXR4bxENNTc1XWXra8Bp3DF4A6kQ6h" + }, + { + "change_index": 4, + "address_index": 2, + "private": "5HsM6FjT2wBwFT3AqCMqptU2AAqpKJMG9qvdk3Xh1LXsPipKAAa", + "public": + "0435de2075662eafacab29afc412234ba01a5c9542d38e3b6cfdfb257ed3ab0b6e7fccdc9b663e665ec90aea4954227ae80cdeab75f84f29051ec95e205a0486ab", + "address": "1EWbLQwVXWrMkf43WWvNNqjG7E4umFiSdP" + }, + { + "change_index": 4, + "address_index": 3, + "private": "5J2gcoQfGxtugAY1roVWsS6U6xQF9EacYzJuUdJH9eCDNo3Dudm", + "public": + "046e3d09e2035c10d86dd80ce8bcf4695990804c50dcb51dcc8ff9056d3afaae84b56afc11104627f50c14112c08c444a97c1e0718e3f5c086a5345e7556965bb0", + "address": "14etiwjNKVW6kp5c4smYbxd6pcdcu1QuAX" + }, + { + "change_index": 4, + "address_index": 4, + "private": "5J4bw4iChD9XfMHJBFj3SUNYEbHd8isoHasrHsqZcq2VQRQoik6", + "public": + "04287f8a175bde5100c156fb9fc481f9d380effdddbb2d30da001b36827bc55220245b24d29e4ac4194cbb7448864276a747992668c1ea3540b3b2b0e6937ecc0a", + "address": "16Sn3uegPaeVyoH9sWiX4mJfP2DnUihGUF" + } + ] + } +]; diff --git a/test/elctrum/v1/v1_test.dart b/test/elctrum/v1/v1_test.dart new file mode 100644 index 0000000..c8e5db8 --- /dev/null +++ b/test/elctrum/v1/v1_test.dart @@ -0,0 +1,38 @@ +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/electrum/electrum_v1.dart'; +import 'package:blockchain_utils/bip/wif/wif.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import '../../quick_hex.dart'; +import 'test_vectors.dart'; + +void main() { + test("electrum v1", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final elc = ElectrumV1.fromSeed(seed); + final prv = WifEncoder.encode(elc.privateKey!.raw, + netVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + pubKeyMode: WifPubKeyModes.uncompressed); + expect(prv, i["private"]); + + final public = elc.publicKey.uncompressed.toHex(); + expect(public, i["public"]); + for (final c in (i["child"] as List)) { + final changeIndex = c["change_index"]; + final addressIndex = c["address_index"]; + final cPrv = WifEncoder.encode( + elc.getPrivateKey(changeIndex, addressIndex).raw, + netVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + pubKeyMode: WifPubKeyModes.uncompressed); + expect(cPrv, c["private"]); + final cPub = + elc.getPublicKey(changeIndex, addressIndex).uncompressed.toHex(); + expect(cPub, c["public"]); + final cAddress = elc.getAddress(changeIndex, addressIndex); + expect(cAddress, c["address"]); + } + } + }); +} diff --git a/test/elctrum/v2/segwit_test_vector.dart b/test/elctrum/v2/segwit_test_vector.dart new file mode 100644 index 0000000..ff06538 --- /dev/null +++ b/test/elctrum/v2/segwit_test_vector.dart @@ -0,0 +1,2092 @@ +final List> segwitTestVector = [ + { + "seed": + "b3ed7ca1179d5bbce64260067330bf2e1e76662e5651854f2dad36f41242dbe195f607d70d6f7865a31e5479d9dd8dc9a9fb1af12e964b4b120bb4a3156eb697", + "private": "L1tJbijBA6vr3NXNpJPeyXcxAifeDLS1szef8gnYPXd5X7apUFdk", + "public": + "04a687b802dcbb132a471ddcae680419bccbf7606066f866e9ef6f44b72d0a8f5d666413f9b65b788e9a7e27a5e1d7e8385094b43312990b25bc153e684bb6f7ef", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4ugCkveNKKRGisDDW2LJRCNY28pee8o7RwE4VXdFLgDi6RUVqoc", + "public": + "04d4f0309963f6fa0a177778d655cd99fa5da913d16c4792c945cf6a156c2584551cb47ac3e27b6a8a47c4479370c259148cb5c3aa5ad277e11b61adf2a4d305b6", + "address": "bc1qj7rjlthj6fetum6spu0hjmpkvxl7nhk58jtqpu" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KxvVKQYRtSUQqYE28aCUSb2Fnvh53gNEy5u6EapcMa7FoMM2wHoP", + "public": + "04251bc25c10c647aa766217d01d09e6dcd65ffcb85d4a6154829fcbcf64e556be5246e637a0521cb167242f10c8acd33ffe67a2fb7b3b4ed1df285b0b4c602987", + "address": "bc1qgjpq3g7skgzctt6rxu8wf46ltemv8lmqyqq70z" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L2Ly67c8dh7AhmhAMLbSrAmbnarhZ5p6U9beZLKQrsN81JvbqJ6z", + "public": + "0444e224cb4e5479f0a55cc208795f3fab007709c83397425d9620f7593572c81980ad8e0ac8b3d8dbcfd266cabd7eceab0fffb0fc886d82c187c0d60e36f93b97", + "address": "bc1q0tavfzv34mp8lau746ehy5aqs3mhhr6fkyaq9l" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L3c4tQbrg9gTFCYohmcGJSZrM9TweSX1gLUBeuREu4w7QToN4E8E", + "public": + "04c846abcb2def464c1ec73f0b8eda200580fa93a8d7c23207a6e1417e2ea4e19c84be1c432d99a9b2f5ae2459a627f7c1f5037fb3f01bfcf64e14f6d94c9d58bf", + "address": "bc1q74fex5syzz7f0kj8fvc3ft7nh30qcar575f88l" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L5h5kLhfesvNigf7hJLX5Ni6KDKfiFq6qQu2Wc8eGGbZYoosLqnj", + "public": + "045bdfc21318e19fc5e0f620cd3dc5ddf23d15dbf16611298156fdb0406131278fd543d999b13be1daa721119cd35f01a9ff0b92c610503baf8cfc4bfdd60cc295", + "address": "bc1qgd4pfzfws47uhqnnea6m4lln377h2s0vchqzry" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KzrcoG59FmKUyzxPmD7bTxMFQSyfzfDw5v47S1snmUHGS8QTc7xM", + "public": + "049af38e66059d20bd737047db368f02451df8bc2f2bf050164d6673388693d90b6bfbcdaa88e3002cb0e9d57e61659998c98a9cc2adf88fb8226e7083283be645", + "address": "bc1qea2tf0vq5l0a0fy66euhkdr2qzps9fyaa0rl5y" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L4aJ5zccm2ffC9Wjj1ftu5sd3SaAZgWmmo8D6j3j4SCYNv5EgYAQ", + "public": + "04496de40e3b8f00965719f509b3f5adc6534618808be197751a810f6f9c3d9433414342ff4bd34ba6f9e9db275274e12cb249304786ed9da8455015fbe5720271", + "address": "bc1qu4k2js8t9cat7rachch68j5s9jcf7g0vf9drrh" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L5bBiGrNBNbMthV87N1T6no2ppx1DHZ94unaUNijYUW7bSoSAqRE", + "public": + "04b2194d18e65090a36dd6a5bb65e96eb84d95b6091940b43e14a9bb72d4f60aba7ef65faf7c35bb898627208076007cf64309771ca52d674d82b06b6c029e23a1", + "address": "bc1q9a3wj589ah628d9fnpqafnlufuvmns0yup2jrr" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L4Qgqn89YvGL7awAD21M2soFkAygGs2Qff1f5AXGuPjgtM7UGUrp", + "public": + "043f946baeb4b8a0a7393688f455352b4326404714ccedd94e214f990a2066c8ff7e99194394db8d8823f298042199e8c2d290adcdedd03a315357c99141bed4e7", + "address": "bc1qte4rw539ru32v8drga4agl59eduhkplmeq4gtp" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L4tG7nnmBN9DxrB8Z4WdQENv9rFSSiDKYJU3F3vq2CkZUcbChsjX", + "public": + "04243129529c56137f33defae7d045fc3736d2683e5a2c38ba89b092f7348444a845cae91cf0a16d9b32fb2777acc3dbe8af1c2bc5d7eb7a749d80e8c38df647e1", + "address": "bc1q3cetav6aa897m7yaht3r63aru4n4rmsllsh2k3" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L5JtrDm5tckmGzT5z4bGamrJtCYajJ2zhqwU7qcZZbPduvKeH2YR", + "public": + "040bece2095856ef5097052222ae7e3b63c580839498130e74f76538ba93188a579637e58c207bcaac3f6ff525b9ff1d9217493f909e449ddf4e1c420609a22c43", + "address": "bc1quuv8rnewjntcus6fc8hc5myaz6neccstl9fq3r" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L5WxifrsscVFFNRwu4pNGouPPXHcd8QB6A6PtyQy17A6PuGzb4TU", + "public": + "04d02578877917e07896d37627f750d1ceaaeb85444dc8d149bff9e9719cdb2db15d935b30e92fbab7e5ea11666b1f8ce3e42dbba5053eb9d4dd0833cf00cc4c6b", + "address": "bc1qzr9en7q3rc8wyxg9end00gey9wsga894l73myg" + }, + { + "change_index": 2, + "address_index": 2, + "private": "L2gPyQz8ySx634XoQ75f6BcinGHeG5bk8vkHWzqXMZChdrKkUtsa", + "public": + "0465621731da2e1a8062165e0b6a81b06bf93d3bc278abff36fcb3c1775bb303c41f1fe075ecc8e534ff52bcef38d57887590648da19611e8354eb247d1794471c", + "address": "bc1qz9y40ndhqy0ykkxerrsta5rarkkyz0utsj7dzz" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L1mxEcEUio6uP514EqtRgjvTHMB3StPbN7UNzDhpRbn8Rwt3xSA9", + "public": + "040a2a541d583b74e0e4afdba8663e5d30ec56111a0f56caa06e202cc450b7564a577ad4ac0fead9dc24e81916d3640e7a04fabb7577698f5c9db477f95f288aba", + "address": "bc1qzws5nhsgfap7h5nx6vuf0hrrg9q8hp6jgsce3n" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L4BEjmAo1Gd5t3MUCShdkr4Wztkx9U3c52ibtQG686uGuvk7trWq", + "public": + "04aae7bc5404048f5644713c9ee1cbd266e1be62bfb5a2e168bdb7d14eeb10850125986b686f4a5eb6ba7e4e620a8ae88e0d2927c1472d1e5dddd67744afa5ee60", + "address": "bc1qefdc0r5ku48rlmhe4wa20dm5fews34wsux839k" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KyZbFQXG3HML8PyPUXpVC1GZ5zu7xwkTDkN75T66LwiDNFLSkX2Z", + "public": + "0483cce789251196750bc75d72a624eb0e9cdc4d64f2393ad1a820e0941210e48576f70698a3fafb8ecf2a4d449790c4357bb2c3c8ff64bd3e27213d7022583d69", + "address": "bc1qylhp3rqcm0qqt6ljse836fsedcxm0k67xjnmvy" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L5AYzsACvunDzVTSK4hSak49jr13z4T6h6sDso2G6kHSm8DVaoHD", + "public": + "04b766cab79f5ab9c266181c71a3a989da64a85f4e672d4b831d892d5b9c24293c811db33f50b41a7cf61b94d6d2d443288df95f174ac4b9e7079e7b0303df6b57", + "address": "bc1q5rdlwv4hqwc6d7u9v9myejd76nvmf4sef99h63" + }, + { + "change_index": 3, + "address_index": 2, + "private": "KwXQ1k6GX3jkjTehgGE8xiQcu9a1y6mNJFzTqaej4zZBc1ff7fzD", + "public": + "04d07357068580a3f7b54954fa54b0bfcdbb74b5c33d7a4bbe62e6e811e1dd3ab581839d0aca4782386db8447be55c29c3c6b62889d2a67bbcea2e012ff7837f9b", + "address": "bc1q6n7kwqx6ufnqdwydyy93pe2h9943g459ywsrvr" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L2j4At5gtzZEUSm2EefG8QKE9tA99BoG8yGR9EBDDivqyVBW4iw6", + "public": + "0493181cd8ae6bb6a1d8be6345a7b92156677b79ba974d071ff16f048760767a442d4b9f17b226cd3ef56301fb10503fd5e1da486a5f4d44da9e8dd73b0e36e0b9", + "address": "bc1qeahfc3eh2r2jfskvjcge5qk2ask6ttgufgpads" + }, + { + "change_index": 3, + "address_index": 4, + "private": "Kyq6gZ3tMEdBedtjtsPJkTThZX7kPYmEXpTYCjw418Nfj5A1mUHL", + "public": + "0468d490584415eb5385f06ac42cc465ac7e0a6e79938961aabb1ab83829b0b303fcc2b7142ca8ea5e4e4342be09d22be524706636c7e94dacc4db278efe141871", + "address": "bc1qqltfkxmu7zm9e3lx9vqrcl6a2dcpgdrsgcwgkz" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KwyYQBfF9Xme4gXgDxyVkAkvutrddSuX5ciQ5kJLpD3bdKDkc3ws", + "public": + "040fd4a622f46327bb13a5c9f244cbcc41ee5cf04cbe69626afaaab52aad9133bf4f7db6c6afcc61e89afc364a47bdbee97dadea2bdbbe50ee66dc20de0a11945d", + "address": "bc1qk84er3l597ehjzyqrr65rmsmrmp3c3uw0x2t72" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L4AVaVvUe1xsoc5k8UbG2PF5JtpSDduVamwjxFNxMEtqZhT9sAgC", + "public": + "0487f7c8e4e732ac2d4b629a032d991ec06eee873be1ffc9a46c88dec4775a3906fd8357d322779e86cf1836ae1b8d47785fcb231d7f2c8f85298046fc9648f5ad", + "address": "bc1q8kvr7t4c4h9mh6mx5lfssfprfa3jasvvqavhys" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L4fjCY2HHmJ9v4fqghk1K785dtDowB34bT8Pne5Dd3NTd7jwhJXC", + "public": + "04890c9f7a00fb6fb82d82608cf6eb0100b21658945aeef3263e60c4590d00f1e645cd8cb5f40cc9d119fa90a200e4807965a9cbc6876868728248cb057649a09a", + "address": "bc1qs79v83eqheuct80wzjy9t4xlaf0xxeguk7uz7k" + }, + { + "change_index": 4, + "address_index": 3, + "private": "Kys5YLQVmmNcmoF9bRstVa9qbZDRsohWbwQq1TeVj9ESvEMuBfzy", + "public": + "04cb2d86d6649b59bdf684a18a0372c076ef1edebbdd9a8f55e8b346ef35ac631a18dea3da3a51b217574c64563ba47f8bd322d0f572b3499819037633fd230fb2", + "address": "bc1qfrn8yyvl9md6mzvln2kcxuzuecc28rcehc2skr" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L4mRjSdT6Gb79d8nB8wW7r3hN5u5GRGFDH1U1tTcDbDgYVewVbCS", + "public": + "043dbd93bc1595775d428c328d7e27f976717325f63db524ff8383d2ea0367bf94af19a0e68f5cff0e69f474615ac4683752bd2f172db43b2418f196f1806e4822", + "address": "bc1qjk9tgzuta6a0hxjpe0x3khr4venn6fg8zyu7le" + } + ] + }, + { + "seed": + "ced89ae40c48858d2c0c7287c0fac5235f07ea50f482c8998f1416e8b26cdfa779c6058363c7875de93125cc91d0c5c18f7f897ec21008917d9374f7d215a9dc", + "private": "L2RR4dnnjCqGsRZMfU8rBMhcZrzj66W7w4yniJML6jTPoW5Q2bz2", + "public": + "04daf2f7e38529410d40a0a1e96a7fb736e977e26c56bf8af9b68477c601dbed6d1fcaae488ea14ca7c7fad08e4fc29746fb458bb5bb58a576064cd6cfb5c0c7d5", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4ber8QJ6BKZ8x6vyA1V8qyyJcoNNB5yHHUDXcH1qnNh47TBPacJ", + "public": + "04faaaf85c6ed86a0f20bad0850abe6263ab997c25053ea43c09fa81eddc4ac8022ccc4899d54b7080499aec6a70bb2d0ef02f2e84a0265717ebb5254fab77a067", + "address": "bc1qladc35mq66yjflagaz3wm9mm2hzs4lqqxuakrs" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KxyVeCsickyrkNwVJF45aNMKkrDXdyb2S3iyby7VNUdJEteAn6Hm", + "public": + "04d64fa7c706930206f3fd4c54f9924aa469ffa061da60ea34f0e4135d7e35bbff352663dc94ce6d333ccae749c19702ab73441df5abae7287e81f4b078dbae3fd", + "address": "bc1q897lqslr434p0vrck7vysn6umql8zm6frjzsmg" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KzWddiv7rFgryMQaBxKZFFAduLh2misbNbPi2uZV13PVWy3KN5Dm", + "public": + "04e0c1386e9067b5833d79db470d4364efc3c06906f6b125dee2d6541e44ebf790c15662822d9a0a7570ffefc40650bd606d20ba23134f6a200c9c78126b6094df", + "address": "bc1qht5wxhluscgv8fj949cvku6mjlqn0alm9jzwck" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L4PbuK57EqpwZAWp1wfa58hZwmko2MdDQiWicpfQMavPCjdrrnFp", + "public": + "04c809c8e9b501e7e815581ed39f9dfc0873d6ee582e8c1ebac386bd5295aecb3266c3df724b3c256ba457fc24e8e78566efa3661cc08477d3862065dfc4d360af", + "address": "bc1q7g3ggfkl0vn6hnfx7v8s22p5ladxd5gyvcv2j4" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L3SSCBAFN7oUp7PKX3TDwBXNbjikPQMirD5ximURiMfFCSyKbdpc", + "public": + "042d2f6ef686b7144d8ed4a15e0944b9f723932838d7c71af0b8afe29a147bd68772bc4fb20edd92f7e02b1e39893af5929de3b3975bcf41b0e9a7ee9460bdb491", + "address": "bc1qmhh3v2nmqqzs4swa54aq94mjmwghem3xh9zrmd" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L1kizEexrDm4m6c86pCsqqetet3vgNuBfv9XPTZovErmRce36fQr", + "public": + "047b5e8ebaab22a1eb166e088ff059a425226c93acc15367c0196e909790645e08e831e17561c698c73f5afc94094c0f3a702f72a52101e88b91d228fd0ff7193e", + "address": "bc1qflxfdr02lp0x2mdgh9806khdhfd4xl0un4sd0q" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L2FMHHwtAzUc6eAesy2D1stgBKZqaRizPW96kHMPD1S1afyU4KPu", + "public": + "0447a8997ef268f2d4624e4d30be0f03a29e62a6fc8f033cb0916f319f7e6e8da93cc10cac32fe4993a24907b696af6b8e153a8d7ec8440c92c2e0b70e020aee7d", + "address": "bc1q4z7uym6edga38pvgmvqemr45z0ds9y8cz0vulk" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L1aR4tgmcuhr2BnpCZ7ZRNK15JMzD2MV6vLC5NccG6n3NGLnzjay", + "public": + "0449b7390c670f5438e6e934d617090e4515b33aef1612895b6ac25760d88fb8662d329eaf193e5c873f3cdca438ef4e76fe0e67a923c42b222d2d9a00c9c78e88", + "address": "bc1qfu2r23srta83tcql6ql2t0tcl4jc33f6wllwvz" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L4fDG6sEs9GQnWXtDtj9PYUTKmQ5qNigvS4LC5NyoVhfbpqaTAAR", + "public": + "0486bbca11405ff19ea5f781175ece1b12005570157dd038920229f81f520a2bdd085cb7faef1fe71a75f878d21d586d8924132144ff2a63ef0273b508cf460509", + "address": "bc1qmd2ufsrx34xqsc733cjx2cfv2e836fm3s369ya" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L298nWQtZyph9WGGhPKiHgTmowPdGrSwKB9hjQGvQSro2Qx9VH7j", + "public": + "04a72a86df9c5da5778c45de0eb9bb3dea49e90d3cc40013f3ff3d273be83dda0a70fd6848f913ef4f03e7fd15018fd2f6c7794abae9c3f492bf18522f50622dcb", + "address": "bc1q0zn2c24r7s9c9wcuv8pu242743v02uajepgxac" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L4H3EE9Fdc6Csk5f5dU2X6mmTutjVNmu56ozwvG5yKkZnEPo6hPu", + "public": + "04dd8821e6c80f84beaf79dc53c75fb3a6a95d80bdce55c626dc9d2746699bf34623737720ec80f0ec6839226a27d8e76da923539fd621acef7566d250352eee35", + "address": "bc1q652akc4sfujzqnr3eac3t8qgfqj6sz5kgsf8kz" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L4kELpEEgi42xPwgkVSeajf5BLbMiqkkhQ3nu18A2AfbWkPrS9Ts", + "public": + "043080f36db2a5c3274c71ebe941ff19549cdcd69d8c0d25e19a03fab95467b00d5410e887eb344363ea371352c7abedd6d82dfc2452c61436c71ff046cdd8642b", + "address": "bc1qceqxvja7vwt6kpuqf5trtzhfteg0wqq27r870r" + }, + { + "change_index": 2, + "address_index": 2, + "private": "L4xGz1GYKE9jNgeQc74Jx1a73J73ckyZDL1CdkkHyebASiawKFuF", + "public": + "04aa18377e544a36789f0ca59f59da58b00dcf55d5337218f66c58c2705177ff80da26a08c12cde5e498b4ad812a1a6ff37eeb381fcab106e1c624fe14cf49e19a", + "address": "bc1qhuv8mkwnqvn5w39dc39xq8clra8j9mh22hmzd9" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KyYkrndh4TzQge7rtMJgShHc3yNsruuzM46KvqaERtmjWVeqXQ75", + "public": + "0498f52c82615fea1daf5a9ac527e633c64c7765751e92be50b7aef45feb028860eec4d769a5304d2a2723c1323ade9cb74b029c0ce444b0d14bd2e8607e210ba2", + "address": "bc1qdnq0ju0vk049y567yq0n0qcye3uhzqgrk2zyfn" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L3i3wXq4syWWHggrUcJ9Uz1X4UuxJkEF3z6gEg98VSJWVLeaq5vr", + "public": + "04550b4c1032791cc9b4035bcd70c72613bc2a4ec5ce4ed6ac789fd1bf3c76129ee1c1ff5598c8ff2a62d3240a51a17927cc4a8b6ff08073e9ef28d42b68b65851", + "address": "bc1qf3tde2hhutxp05ld7d0ccq7c8tuavltamae6wq" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KxdoVzUcFYFofikUqjAG4zAstB7KFE3uLAQ5BvMH7s33oWE6CKbJ", + "public": + "044713786cf7efc8f01594709a7807c891f643edc7bb85cafb4c47768f4fa49be2ba5d604823f813c036f0d0fee8508bedf70c524d9364593627cc6abff8514b43", + "address": "bc1qs2cxle6sfj34a08xzcqvutkc3uxk4mku0rw42f" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L15UqrHdeeK4RiU9Mbaan1qmgAycvF8RHDD65xoWRbtoG8YPe3zR", + "public": + "040d038573fd83f96ed1ebfda60cfb25048718845122483f5e9ff03c585218a5a219330d7797036853d6c4f099804befe8187bb6b94385cfa1a1e9294c2d9c3b1c", + "address": "bc1qpnc4lvd2g2jacm0t0mwyy953zadxxcnryx7tfx" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L2sE4RxPqMo2AkYvH9bpKRNDX3MqJiTypnYqmozZVeByWQ5Kemqs", + "public": + "04d8aa657b1fb175f6a71b21ec5aff73c300e76afc5757387a0566be9b07b59d5fc2459abd798a8df20aa2b1db67e11b1b76c730c65401703de2c7a4e3af7cc1f1", + "address": "bc1q4maajdtqqky3lwkvmfazpd4k4xva9ptx6uq9qy" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L41ZRF51LStPZvRYzhT4TNzGMdHB94j5wD86ft11noHEGMzYcVQs", + "public": + "045bbcce7dc668bbbc7dc57703ff0657451287a1b753be985244ec4ee91d43fc32c6dc328d451afbd777517b10407dfffcf6ca66fd59cc1638ddc84ea844faf4d9", + "address": "bc1qspe0v8y9nw0xejuv566hh7rczc77atyn3870vy" + }, + { + "change_index": 3, + "address_index": 4, + "private": "Kxj7sBUCaaZWJDTYHzTcSXbBTkPz6UkdTmUaoe158yNnNGuWXifV", + "public": + "0475b69e5e9ff0445c487b7436ffd91fdfd6703d2c854ae0b13a5660455efc11028e1e0a2fcde76bddea8223aa5140661c273f80072c17add4d45cbbac2a15c816", + "address": "bc1qr5ne58uvr3a3dvn40glmctex4tnt8k9x0y05sx" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L5HbLW8pKrN2JYfinmiC9UgArz9Rb2vJtcYDgW57r6WectoJHEep", + "public": + "04cc2cebd31de93c67358cffab9c52e41ec9e89c9bc745d1236859a81f7178c7ba222df3ed48e72042ee5b54e23f793e38c27b32abf870932bd43e99cadc646caa", + "address": "bc1qa739jkpnyajqtpguvwztsw8thla55v6kurvze6" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L1udRRBq885YWBX5Y7XE9TusWSV5JiaMXoSU5DpQb8pHkMNYEJ2C", + "public": + "04d5007b0ec5376a6b1e0f69f92ee2abb596fe93000bf8a02ecdf5a76f4bc81cdb16b7cab0ba3e7928eceec64acb2514f9d3ff9382415e96952f39efa0555e2062", + "address": "bc1qx0rehk2zc9xg3j267wjdkzuvs7xw6fw9vh2d89" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L3ZNEDiQk1ZfYwheMNwNLt3ZFNpjsJZT3aEtfKevLqs3Utuv43Md", + "public": + "0422a9048d5aca11f74e5a21017202bf3ba7cf47b78df92ca337d2dd823eeabb384f62ff9f5762e1dbcda9dae5800fa91190bdef621e7915c64137311d2390e05f", + "address": "bc1qc38sqp6jensp738tdef7gdelyrqgrupwr9pe47" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L56Q3PftDeevgAgQybraMR6oZGTRAGcKneyBba6rJECtU3S72MhP", + "public": + "044550c45a4a12ac8eabb0585abb203ca0884067caae4f64ba6c684400a53b4db59b3beb44f4ff970d80b5de9be731860825b398a7da7c62a53823b8cd073b06d1", + "address": "bc1qyh97hgleaxrh396kmyqlhve3aasqagu7luskth" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L1jaeihXry5282qGceYkaGm23BvHQJ7AqSNeifWC5nrAJim9zStq", + "public": + "044379bae743ca4eb2149f4b88246c245a4267d8935650037c196a27604973917ee3a00521a88153a7600007bf3e2aa3a5ff9e40fce77cf2d965ff0460eeee2ed9", + "address": "bc1qjljcenaype2gyz74mmnje69lu5wlec2u34fa9k" + } + ] + }, + { + "seed": + "d5e0aa87a96e079a638d7e9c83dbc9566c688b6d4a30cbf115544297137ac26e7bd9bff0b52d35a85f123f27ccb08d94610fd1142b51101eeb47881bfc426630", + "private": "KwRZuWL7mCAXb19LiFTvZCYjHyb3e7TpbDAWMbdLAjUwCigi4YD3", + "public": + "0498f68d6caa9364b7f50b3162bd1b096e027a1dc433d8e4f77731cd45ac5289a5380d9513a3effafcc9ae5014f40a5e41483dde103fb1a1d2be7964a09ce570a3", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "KyHfxwsRNYVqYkvCTCpS41W7tutN5XyP62nNGStRo8GPJ36GT2S6", + "public": + "04138df9fcef16063f2d2c07cfffbdd527e48699c8ccfb8796b231b1777ffac793cb49d06cbe0542409ac527554f30ab43c04643be87cc4213174e26d27cbd1a0d", + "address": "bc1qs0lvf9xpen5xx8wcmhvpjr77spg5zm6hlvj2cc" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KzG3NZEkPvaQWBkMBzH9jxKgeuWoF6sXTHn66Nv5rdnv6Ygrbm23", + "public": + "04923e1180c5bf70ee2864f1dbb393d4a11d83f41becad0dfb1b5aa7869dc07e7e8a29774ec31cd7efee3b682b16610e5a44b20dd48c20d4a55cc7ca639aed10a3", + "address": "bc1qqr7am048w0hqrdmzkx8ts052h4v4p8jnnfgasq" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L4b3SjL5oW3RRp3yGcaAg3n9bD3oswXcaRKBGsuvZcAkCLrWwf27", + "public": + "041c51677abeb7b64152245f26c8c36c135cc5d9bd51e49aecdd2a3f7151aaec11f27401c2fade8cf6962671fbd9ddb85671c255d8202a1997ede2517888a638e8", + "address": "bc1qpqlsd20t0nwsa8czyvu4kwpj4wa3xcac5acjas" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L1Cuq9D7mdALiqMHmQ2ZutCDAaxb7GAJ9jJtdRqeNwEExMQUVzym", + "public": + "046ae1756abc577602fa9583c1bc7426a48ecadcbe7d9adbc6ea73d5f5148b6cc992f59e1beff27e312276269ba0426011ef6da27ec07836fa1da19968549543cc", + "address": "bc1qr7ax0c3nmhllq22kur2c5jnc7283krjqdxmz7h" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L4MSDD1Dus9BqSCP2G2uXWRjGqsrNid7wVcio8YPmn9m8QDRYAZK", + "public": + "04fe76f12a04f4a61b86bcb176ab34256f15212fcc7a7fe5e514aa4f80052eb147efacbeb5df662326a9f6531a3b63dc5a4df54839a7f3f457fcc230b924997d3e", + "address": "bc1qk6w42ks2htg5mly3mannmd4fjxcd9zdwfrqhzc" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KyBkgxq3UnzfXmJ8BiQvQFxtoBidK9VfHYcY5SXE7qVLkqM76uuX", + "public": + "04d7a085d0224f69830e904bfa69572db22726b65f58912399b97bb631a11220879f205f0adf1d3ce443d6627f91456ffa53988ca71e77e5d4f6644753ed4db7c0", + "address": "bc1qje3cpatlk6zzn3yp49hv9fw00pa6mc4s5snujc" + }, + { + "change_index": 1, + "address_index": 1, + "private": "KzDoE7R9FWG4b9bSMQoU1NoWPtvAtHqKAkJJnwaJ46gy3Y9jr5Nj", + "public": + "042b29b197f91e60c938cb253e24d77506afbb3ad753516a093f225b3eac0b33590b036d7185c3b078a1384566d6b2941f6c174b9ded6ebaa8c45714687fbeca11", + "address": "bc1qyex0ha4tknnjaxvtwqtnqqaz9zxtqedtgw8wqh" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L53Nfrx1XpQRgzGKjbEVtWxNEioatLrJu9SoMzByACiWsS5WTfat", + "public": + "04850382c2a4233470d4e74ab62ecaf89d4a111d18e84b3c5fe4d44a4916209a36c321e46a45130e04d745181bd5f0a5aef6383f4f451e82f1ed38419f9369b3f0", + "address": "bc1q6a4dwm2fkh3gm02ggr6pp5dw9kczdjqa2h4m3m" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L2atE4ZknnCPwRTc8BQqVUvgcfKWg6xhVMUP74VskERceYjWXNmD", + "public": + "045f2e1c58ee122bf790e76f15c414a6ffcf63fb35edb2de8842ea63539229b211db63ee11aa57adea0cc91dba1289c17b4740498cc6a6a6fee427660072619f7c", + "address": "bc1qpnnhk3jkrqmkkdaxlvmsp23j0s3kp0jcz4puus" + }, + { + "change_index": 1, + "address_index": 4, + "private": "KzeiufvAymceFPbMQbQDoQcoBAtTjJwihtLAcXDEoAGr7NTADuQo", + "public": + "049dd43f29c941394f367f9c82f30019dc2ce916fa6509dd6d6081806719cbff50883dfb58b6ed723bae3bc51f695b6adece5eee0a383ca9e67d7ac9f526a81dcc", + "address": "bc1qduxh54t6apy7eym60w460tjym8areuxtahcakn" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L5i12wn4gtda3eWmbgw3u9FB3G8wosp1gaCNvRHNoNrogv7KMngH", + "public": + "045761083b704934cc0c8ac2a4eab3e128d45080feb95c355d950546f6bbe2ca3a0c6a623d5e711ca0691405e29d1b1838b8961b717f300166d00789fb6e3ccc8d", + "address": "bc1q2h46lyex3qx4h6rm9hw5njl0l0r3pn0crpkt24" + }, + { + "change_index": 2, + "address_index": 1, + "private": "Ky5za3AVjuwQsvbpjgoaZEZF6Y4tsnjRYztNX9sc3s6iot6tsmtJ", + "public": + "04cbc91aca5b7f262e3c3273bae7fc41f859e62e415c0f1324e0d795636e8867b5e2d20423fb9a5da362f2378ea093cd1ca531282440c11b13c9182ee62e7f6e11", + "address": "bc1qzkfcfdswrtdcfg9w7mnmjp3jufjjjt98gqm7hr" + }, + { + "change_index": 2, + "address_index": 2, + "private": "Kytd2eUskBJWgeixpTsmHn7CcPGCCP6fchg2YvZVkJ5ujvrtVnbQ", + "public": + "046d9f21b6b85d5515f627d03f26fe2e942e6664f75afebc29b0df937170ea02f0c88a23559bc621654c05d2f788d2bb9772741584200e569c3694f321fb2cc49c", + "address": "bc1qxu5ee22g8dv70hp43g0anq02leufqlamsxdlq9" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KzyuCV6AVpmjRhGpecUMxGA2KGAgdZDXKp367646kszRgjevX9mx", + "public": + "0479a86c0173e18f3839a98c66add57f48bc46e202cb1d8d036d5c550c44a02daeca283aa7ff65f94ee7c6878119d59e70f4085efd4da26f9ecc294f92749f2261", + "address": "bc1qrcxlp6ud89vwel5ucx27urvlqfgh927xzyrqug" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L5nE3sujta31rfq3NX1ULZXMd6CwJtLZvN1SrvkoDFo2s5JzYSQa", + "public": + "04da22368cdb78fbbd5c759cb3ffc4a24bac51557e5acfdeaf9d464d762dc60fd13d4c9118a9349967790dd530df02571f61ae2876825039c18ed4bcd81245e0d8", + "address": "bc1qdylpeuprz3qpmx2nzn0jpkydg9wkqkymfejezh" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L3ki5Fdaq1cttrJyPo7hvUFxuUq8Kb9MEKh8EGYnKyhoTMGRkaLr", + "public": + "048ce1b06b9e28454910b35d97e8acfc089a1e9be49ee227d0a00c49c0c2b16007a10905e10bace36a64ba0c19d2515dc00b786a634e478206688e3d8fa037d65d", + "address": "bc1qw50pff52gmvxfp0c4pd9d98l5qs6r9l3eea2ks" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KwqR4CA5gmndUJNZ3M6GvG86yXc8Dt9Xi7UR1Z4ZsWzBg6MVmeBM", + "public": + "041cbc5ff539d36fc7b05ebaa5117c9acb37dae187e31ff9ae2b51216e80bf7c9003c3aa7d7bf5ef66b65ebb79af0e9b811b3ae288027b00755ec63053843caae6", + "address": "bc1qduxcj5nzgpcu6t8ae00u5fw07pp9k4zqumvyk5" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L3s5SAys8GNG4LDzg4Gjx8MVEgQHYd9gZZb8QYGpfyLkqaLXK1Nt", + "public": + "04dee8afdf83a599fbf30c93037e52ad4cc0735b5cdf3632488f7ed5f2d0dcb65a6ffe37c46f8aade7696c7925fd8a41c834b2a146cb3723ffc9a49a2179cbe6a1", + "address": "bc1q3xnw95lqjmmkp7eeet09lddjkjglnxu7gms967" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L3azgSmpZ5EHHMqFKxSg14ezGJEXiXixBWgKrgNeHPZkjQWesgMi", + "public": + "04c5ea57211c6d28af808dcf3d05b33ba89e0315e53a1d1f1bcd060e48fcc6a5265b0c5f7a44ee0f3b1e2b599c86a4fc84e58a15ed295c7b4f9f35868194387043", + "address": "bc1qj2rjvtutt6uq0sa8qtfpf80vz4aluckme2m2cf" + }, + { + "change_index": 3, + "address_index": 4, + "private": "Kz9SFehSC6EDt5JCojZjwLwAMKVd21Ne7fxMfsFMja4jZyiF7vHv", + "public": + "040ecba7a8cc05fa699ec8dcc62f3e3a0dc9a79e25f88db88ce74c53cd14b40b86deca0a9da0c280a644aa294ff957d720e7314d971d527185c086136aec35453b", + "address": "bc1qq5rf8h27k8zn49d3wdsla9l64evhw9jxk39apz" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KyTgor3quAXXhtXYis4ve4h6vivetEKCHxYD9Y6tgCHkQbX663SH", + "public": + "0444c4b79256b60e8e234b043631eb4f54c739bed8ea7859f076b3cb8710e816e3bc2d9dfebf2bc1d4666d46744f41e28cc12f94e1499f4bc31dd19db72f9416d9", + "address": "bc1q2ah700lykeyttzu9l6azqk5s7cwnt0f4466h52" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L5P96Dgvfsaw2RP2zeaw497eMYuexUUvhx6fWp8UoqcxsRATxgai", + "public": + "045d5d3e8dcfc746241469b61632a177add52a2969cab2716146346b142385247d2ad40bfd0d71108e5bb070500d139db7d827c981c50c8a68a7c83008f3f7b560", + "address": "bc1qmeu5349n0xxsjvwel398nay94hlam8wex6qv2h" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L4pKfvDQK4bGnjovw1HTSj2KW17sPzU89yoVsTWjY3tD6YpPc6Tu", + "public": + "042cc1b416864695be7fea5d13638d4180bbfc7d097cb37e2ac188b7c9429e74a2b23cf5b12944ab367d329d50a84edd506eeb7bce0d19dfc67b706e001f401954", + "address": "bc1qe9xwnqjj8wrs3a7qzzywj5tkevz8l0c59n9mak" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L5Wx2L2Mj9qNFdTonqwfSrdyW8jrSLBTW3usrq9tUqp5NuvZzLXR", + "public": + "0426deaf5274705838c1ef4b6ffd497c0318204733d6d3910d0ba719606c1e0fdd604bf4e57ddfbcb669373d9a0a8c8c2fb74b01d20dae81ace557d2600a8fddc2", + "address": "bc1quhpnd08h5zx8hl356z3l0er3lux7rx2935c45t" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KwzKVCdEi4KGi4sNdPZYAEUX2Z7ZZc1zUbbj4JpG5QEBgRizu4FN", + "public": + "0481204c140f41ba13154c941b6460421593a8ce35de6594e72a9c8269f6adda94e9db6c16c334b73ecc96d2091582fbadaf71e05d111251ccdea9dad41234cc81", + "address": "bc1q7m5vcmpf0v90feput50gp98usktandydwz7xr4" + } + ] + }, + { + "seed": + "fbc88f50c2c4c7711015bf90e5714353da5d2b98678c5a4500e6084a9fb3a1c34a9a66565aa506ceaa27c9e17ec207f646215f2e64cf98c03fb1b32a96c247db", + "private": "KyJz9QSjDNzB34ZNNfbHYjXaqqMB7ircFz1k9AXMsSSrBKiPBmQJ", + "public": + "049672e9a9b6d1a895f8dd13e42a6cf0a6655da5aaea6e290973eb873c8262698306f2791f6ee22ee0e8ee586f647c2c8384801df51d342c05aeeb0b63797bc5e7", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "KymmcvHGyjzs4eLigMq2Nh8XLUBJXYpmy3zHhQQMoXKZQvAR5pYP", + "public": + "044052656c1942f49f27fb02bafb183f5ef5e0db2f157483e879e9b079a8108c2d3402b233bdba726cf315652163d1e052ce0a22ab82dc53d45e8a65b63c15847b", + "address": "bc1qjtepwqq44qwklgs0vrp6vun7ng3p73afj3hk3p" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KzzSw6j1yXajeZWg88Cs7iRVi76MJz3UCrEtDTYQPcviGNd7yLFd", + "public": + "0409cac2044dcb4d9b2bc5dde1c480e1269b02434631cb76fcc1b0bdb77275eebf52eef59907303f1f450793cb03de322a06fad8bea77db18db986138497e9fa5d", + "address": "bc1qgp4mvyz2tux2je9r6xtndrtmyh833kjs9l7w8u" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KzpcbigBcAAyauY6aJWhytZPVeSc4b2o632qcfbJabocDphrgjfv", + "public": + "04aa3d8fe7b2ddc243bcf2028c5b39c2a8ab8728d1a7c8b20176a659de96a187eb7e81cbc134f99aa74f0732d41573d458b7c9c9db7868083dd37bf7cd3f85de23", + "address": "bc1qeas2ch8mr80j3x4qfaslz692ng3qavmk3u24u0" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L3oZE3axkvmygk1oc7DLFRJihHLuRZp9TffSZ6uqGBX3KPQYLfRR", + "public": + "0421f7c5c5046488627a5de3194c92d7a3373ff8db77a9b59b9f13b3df8309a238526a27445f3da6eedc37d270a946fa9bdaa4bebd072058cfd69b581f3fd43278", + "address": "bc1qufuv8lxg7slav9uvnllx5gkwnm7glunhs406fp" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L4DSmmbihwYvC95soFFG8FZgKvdU6G1fJJGZZMGLr1REzmNHK7rn", + "public": + "042250b37c7fcf1008e83183ec04fe39624d16285ed9ee4016b7ce3fd08c4db49afc349fe51c80c099d3aedf5217bc8f84446ec659d16e71b48835e2de1e98dbcf", + "address": "bc1qr5q7pmffxj5ev0yuwjs4k7y4wwljfv4geqvmgd" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L53zeqMw6tRsk2xj9bM98mpv2BEHWv11Aojp9vgXNiMCM7DNpJqV", + "public": + "04d62ba2d9441ad3902ba36cba9a0b03f471c3e06e6473cec646039c145f7d3c6fac87a5c574b903e5e10ae839ad21e7bd3f84e721658fa49f8504d098aee0ccc1", + "address": "bc1q4qavkwl5ssjzy7ew40xwtjsldtxvcusa058fqn" + }, + { + "change_index": 1, + "address_index": 1, + "private": "KwXhV7ErwWWpENrSw1UMLCyGS8mYQEVLE1SmYDxMthQrUHw6zKuu", + "public": + "0471cf08e604512382b57d6c89d1048592557553982961c67e44ae9461507d64ad13939f9f7815c33e6a2dbeae347464386f48b20287cd1b73a1d50db654584e73", + "address": "bc1q2ddhsu75mgg254t824c27jmnk9m5x7e09v92p8" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KyoCBSW6aRTHaVWDs78YCE7Nzf8KVfEriknWxdF8HGfWNrhhjB3u", + "public": + "0451b8717a5200ffd86105c92803e8c41b242c51a44425e9555ef8fb06ce394589129c6997e640cc3c51d108b6016986a82371061419d2efda3b8db0ea12cd97e0", + "address": "bc1qmjl7y43ndqny5skhh86ezflwum0wup5w0usdf5" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KyBLyRA9JQBpuDGxNAcz7Nqks4irFmm3bMfPT6dzaGGdCP6g5ETY", + "public": + "04d07125c6b0835fbc42587c438e24e8272610887ef66d4f894afd59a554fc30fc42d88f942ec0ece1d4fd0495864d2e8c852d48d1ab4189d4637da0b9949d7794", + "address": "bc1qg5lj4rd9w8p7e0jjqpnkjthm56emjl0r5gpure" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L4GzrNDNgEdmmUBWG9F69AZtLWQEGmKCD3a2bMN5oLbHkhSV8QEP", + "public": + "04a355bca79573ff13b8274e838fffbf8d813a963b337d1e783d8745b72cf5fc7d80a6aa213a60ea2801ff702bac2f983161fa93954f033d0189ec66652a7d6ff0", + "address": "bc1qj76adpjkr4dqwkzy2eejkdkzmtwweucd66e2gz" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KyeaGDG5nW6axqGDURyQ2PBQaJeiqFi1TDBYht3mYc1y9UyEMHHT", + "public": + "04369e35f2739c78b087603b4f15f240b896d294654f71aa4ef2c5da1c2b3be4ae8719ead100d76803da607b61b14dac399e622b93fe07d956867b6aa90b2d6e07", + "address": "bc1qqtym0f7w72qzect3tykrqky57apvjy9dexafq9" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L5YhDqHq9vCVgfsPnPMmNmmMrQRtXbRXDEjf8ErWFyMeNoc7Rkin", + "public": + "04ba4943371993bd1192821e6c4c2608ae67794f6e96379e5bd01eaa41e1ace9a15828a20134922e73272ce465f76eb3793d374adca4a2f256ad7d0fa17b0ae121", + "address": "bc1qscjje86xghjwqf66cun540g9gmk729tlqz8zvm" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KzgMwC78n9vJr9sdUHfgxfyJi7ri1BkL7ygPDU6CXNfXZ5XwNVpN", + "public": + "04959be1ea70a0fb560dd1b3b3266b5e582814dd9538d2f18b273117df9d1c00c5bf22d3b81035f1d3c1aebbcfd7671ef5a23115b1df5bb71cc303d995e9f3eab0", + "address": "bc1qyd7jq7u24utjvljvxrq6cjml75uqrn866frgrj" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L14RmrZDb3GqokCYtK35qufdkxsv7Maz9E5JBCvkwKMuDePRVG2n", + "public": + "04594662754657f9c926b3e757d9deca8946001cbbde04b880ab1be12909f2f3bb6a1c7c8172c3fc10ae09c5dd6f9aa7208aa7e5b38de526206f7d563a087c651f", + "address": "bc1q8cygqj6lxpwksqe0vxfe407h6u7wl9r828zxjn" + }, + { + "change_index": 2, + "address_index": 4, + "private": "KxL9h3z1EE73x4KH2PBxdQ1RypV8dwJzd4VxKKPMRxFEivMxTGRh", + "public": + "049737ddadb2edfbdff377fbc48d352fa033699f9d3f4a86f37c801cf1acd95b1ad3558d6bbebd78abb64d780515b84a4da466ce580f26af297c6500cc78e8f834", + "address": "bc1q0gkrl3e2pwswfmfaqym06d0ls84g2zcwp9sl5g" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L3wUyeuKc7DTVCbmYuSjDqLXJt7kmbFwTP972dDfceoLyiKT2zZT", + "public": + "041ed83e1f4532df63bf9d396f5584ad6e9327cb811bff8e0c1b0bc96f6207d80e97d950875643d2e84d9381b1b788a6e37676355a550c9789094c54604d13a71e", + "address": "bc1q3uxfqqe0626cu4ylnx9670g0u8xfhjtwkm9g7m" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KyHRj24ypDyCpuZuNwWRjaP2dH6P678UdJdmiiKiYP6DnLt8PtGu", + "public": + "042dcdd50b1a5b8a2c815a42e2f0a689e5baf798fba4662fa4f3342990dcc81b000cb3a0f5a66cc140b641d0d69b9c9454c4b4fb0ed6d9d53893a65f403dde3b82", + "address": "bc1qf38pjzdrd4rvk6r9gus06htvftasn0gmxnk3k8" + }, + { + "change_index": 3, + "address_index": 2, + "private": "Ky5k5PgHwihfGbwHRbyWmvffrkWGg2GzvYWXhN19n1GBGsZUhdwa", + "public": + "045f5fd2700cf884cf37c701f61058173182a62c3e1ac4659579890880aca5cde4ebdd187505c3135f59e91959b622df80044d0de6886b65fec6f3b790f38b33de", + "address": "bc1qcwm2rwxxy7ny6uh8fjl84a8udhnhql9h7vxkx4" + }, + { + "change_index": 3, + "address_index": 3, + "private": "KzoHtmdMKvgyjvkB8Lo9fYUXPFip3G7PtxZNHPr8piTYvSrDNpd8", + "public": + "04279c92806202279d5a517e36241729dd42dae7dc23cbf3327cb569a40c1e6fec5d99818264a51404f330223e5bf4cbf7969cea57e26a2a33c20677892afc70fc", + "address": "bc1qcyxnyd6lxx4xqrg8s8rmsusz6jqhtru8caps98" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KzLCnLARG7EGvSZZPvwF4D691XC4MAiWWSrdyQs7VQHY2aqM7jsb", + "public": + "047c022c584e81bd542c141a7005331f88bbbbee3a8d0335a5c104977a2a9ac49043795b9a572590332da41caa5f191c3d0552c5208d3becb5237360a8cbe16a93", + "address": "bc1qw5pawylj200mgkv74jr72s7uzzs0ghmmtczfk6" + }, + { + "change_index": 4, + "address_index": 0, + "private": "Kx3oZYVpadzemGVbvjnnznbM9e4ZTnpjWLkyg3UDF7nSwsNPf3gm", + "public": + "04198c6831e2d566c47211bfb076d81df0c3e530e089cd33bb8c70fdb70abc0c40ddd0b7e6e9e4848801b9439335c2baa536348f850d7d664e477899982046a3bf", + "address": "bc1q9tymtc48dddqx7xmsutptatcm3r96gz7en8uc9" + }, + { + "change_index": 4, + "address_index": 1, + "private": "Kx3FepLM98QCnLjAnE6XRSDBANaRcCc6ef6VgFBgis24riHaRdjo", + "public": + "0419aa0b7e1537c2b395f7e0514d84174acbaf68d4f292c440a262a221720ea1c35323f864f120e69c06edd16a5d1b240589677ca0d7d4cd884d11ccfec54d9b11", + "address": "bc1q8seww8z086h6nt25r2p65yuxsx4e5a38avy8wn" + }, + { + "change_index": 4, + "address_index": 2, + "private": "Kxpd4HHLvmbGLEXwBR3nVD5XRiWH86a4Bqg6QDT2EF5KZXjDw3GH", + "public": + "04e99552e33c709eee3f48f2a21e2faae30cecc9d97ead5babf48927050bdea2a3aaff73444c17001728a730c899485807518a189997a2b363877e3beac1330879", + "address": "bc1qe0qs3y0afzlfnh9ey5vzusrrh2t4km65d72xt7" + }, + { + "change_index": 4, + "address_index": 3, + "private": "Kx9fNeMD1vXeUeqmyBx1gNxuHazki7zCcESPXtH72Uq99rk5YaUZ", + "public": + "04ae473f1fc086ff65f8d4b46af5a1d476b52e03c52fbb2e150eb9468f083cd781cba5a4ca3d7567b8aeaf5737b752d801de19375dd223dc20bf4d4c90899b7172", + "address": "bc1qpu8628gxn9qvsrspyu9n9lxv58ltfyr8vu3ezm" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L4GCC5uYR2o57e7kU74iTADWWbay3x654jqRvxkpGDUbymsaN5F6", + "public": + "047ed99bbc9093afd4b3c0960ad799909c136bc64ad678e8a3a6804334d64c9f776d13493912c8c0ba3930a6b16e9c6a70be0ce498c99b980372b49b31754b02d6", + "address": "bc1q39pq74azgjqmjmttvvtvztlnxhmncak32c2zex" + } + ] + }, + { + "seed": + "ecc737f6ae7b4ccf8eb325e35168691cf65b9d6d54409c01b6d82a33c720e5af2c4eeafdc5dc04d9e8240f79e53db8b150e895063bce721fabffb37b1ca133d6", + "private": "KzccQRdhkhfuqGXaYCyBz2LJtDySSMEvv1p5voEWw1tGCYk6qNRk", + "public": + "0486ea4e053ff7c9c8870d0764cb371ef94b74b3747576045e0694bfa2acc96bacd559ff9597ff9e30c8d6c92d7b3d6ec4343a82fed21a59efb557be74e1b7e1a7", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4WbZZ2eCjLbhccPbRTM1tH4AAKGDU5DVLntBcAZjzFA1RrFsAap", + "public": + "044de23a3cccb45d0af365cf8cfb2c107736726383ccb41e3001569fae1c5141d76ccf0c4ecfa0f0b02d075fbdd6db46d4b1f0469738973c8c9138d81a91159746", + "address": "bc1q38g8v67z0psgf4dsyt8lza35fklcndlt3esr7c" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L3VHTgHXzCVEe8eNYzxDUzgAcC1ehsWjsN7LvjR7qf1WVAEXYjap", + "public": + "04a35e28a83c76bca3be7d8a479aca352515f8e8e3b178a00245261896203a8d92204d3244120e83710066f2f74cc70d12b7a2394d5bb691292da26b55d4e7de59", + "address": "bc1qpuf00v9xrsh2pnxsn2ja9equr0lpureqtdjx3n" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KxpMYwTyNcoe43SGCzozRN1nKPmvbNfZqbztHEVkQUhsxosCVz9Z", + "public": + "04b49f13e085cde943ca21362b3c55c3e532e57feef31d59f47718f694eccf1c49d22e87dacee9058c3625a53e68a4f2cd980363fbac397fb8a838e53cb099469b", + "address": "bc1qjtcjx5gn229mqns9k0txumzzf5wgzuqnhgn3zq" + }, + { + "change_index": 0, + "address_index": 3, + "private": "KyvkdpvYLkvXkALch8uE8es9Fnua3tXHq1Pv7rweL28zmJuiaJwM", + "public": + "04d70574faf53c93a493c65a9e0a509b8bdd1c8588e85c5b2e90e7cf57806f3082999f85967588890276e3c2b86ff23260f28b0ca0d2d73ef4864fa7a76019dab9", + "address": "bc1qyxx9pugg6mlmy3k3p5xax7vpq9pkx5pelln2s5" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L5GgXmmotAzs6LB9PwijS89HViR4fFVDWdxJQwSWQsFzbz113wAC", + "public": + "04e29e61962a0907c735aac3eef6351a6292ad7d3af13043f535fbb04dac91b5655938b5adf2049b838e7f298b59d81c42d61153184a344ac96aef414eae1c8536", + "address": "bc1q2t396ym5y2y4f4rpesrgfyu4p2vzv7h0yer0sl" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L2YUEPBFfTiSyZcf8NfCS66nb4Pzio2bzdDwgRAPpyJxBHoRtcu8", + "public": + "0447ec3cfa6080d912777108ebb439f6de45fb8a27953cfc90896dff63475faaf25f45a1c06f43570e56124db5dc9563b2c39eaf99975745aedeb87836cf456262", + "address": "bc1qaz4ncyyvdm3s73wa04j5xcuexkc5gmje89cdsd" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L2Vq25n2WNx3fHiwb2vuCDG8R5K3TTFeadU2Wcd4VAojbbP8MJAp", + "public": + "040d496fe2f46a4d04c20a80db70edb036127ffa50629acebe514128ad0f0123237adb2e87f00076646f8d2c50d4a7cf4900fe7d6cb1d9926bd7788c4157475190", + "address": "bc1q0jgzul2t3yzn3800a2uzel5vl8z4yyk3fgvxtu" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L1B1voHxKj94Wn7cf565usCN1iJGnFtVLfGYeMAkZZyZM8eGcsSJ", + "public": + "046422f1df37ab1e51336dce242a0b3b0c54b97145d5f6ba739c9250ff3d04daa72dd012491666eade265b4018e5855e4384141c900bb294bbc0ee981c44c4b446", + "address": "bc1qqmk2cw4ssvjgp85ayxq4qf8cf9yykfkur6srr2" + }, + { + "change_index": 1, + "address_index": 3, + "private": "Kyc5n5bNmNSpFNa46MJ9NP2witWx4y9GXkWtqUdEn3oyWjfucheb", + "public": + "045acebbecd2dde31d0b0d9be57364c34aef4af462c0c07455fc44af88ab798145cedf80f9ea71756d13a4eafce8e87fac6cef9e09545009239bb3c307ba097937", + "address": "bc1qlrwxynmpwp3apr4uwhs8839w3426hflktemxxd" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L5W8AEVUnth5v33jZzZHWnE6o4gVBcEujU34za9BthyhoQMCCeWm", + "public": + "04fb99cbd6341a1ee9e630ab3299c9ee99e2faaabfddae7511335a32425f1fade25dc90c36cf7bf922216d7918c095b3fa4c21dfcc4ddeb74033ae6616dddd056e", + "address": "bc1qazmwp8clvax0nj5vwmankpvpslvg096je2dxfe" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L4hzGdK3EXM166zkLop6VotGRB6Z5B88M2hxGaoKgZbnLhyymAVp", + "public": + "04e41924829b0d216e894731576ceed6f48d0d1594c2285435b0bf66a614cee41e6192ac5021b7914c8c388596519878c3a829887b3d5b08b28adb7e20d60195cb", + "address": "bc1qvxffe3wk642m2nwgranq25w9l7z4wk4tk5j8qc" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L1ktbPCygMGobtzBby2jALXtuiU47P65CNXctfbgwotVw2jVUYSy", + "public": + "04be8e9c2cd257f1f4a41799ca86d45ccaf8aae10f7aeac5d6e9ab939bf117e0ee54469fdc87e4cc318d6b2323de35e9ffd3357da8fca56eef1d94df5120e213c8", + "address": "bc1qzud3rmg5cavc7td90xfxh3ewf57lpthqdcej70" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KzDw7ST1SQZ55t9RWMZ936kXgvsHmyUtqnkpYneD76gc8LQSzuUT", + "public": + "0483b6580651f3222c0a44f7660323555162979cdbc3fb5eea4db430dc8f3f6c07d199165decbef23f199d6b63c19714d5755dbfda8584af3a10deae844e090ef6", + "address": "bc1q3zd25enkqzcgpv4anma5dj7r0knwtufe2z8pus" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KwT3jhSMKgQU5GGBrb6i4QjZhJtt1V2kGakmJHCBDnSJxH7RHzYv", + "public": + "0445eb9d069a51d1fb2b4ff1024a234ec246a00b21251106b64e244ee77944a218f3c900fdbcdb279e26a2f5ec9db7adb49bbb0529c6be2f6b006859c2e90f734c", + "address": "bc1qm9v8vj3r0m5yrkq5fcnw9tmh4d98wh0l9s6gf8" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L1mhT1xpTyf35zZ7NgbwRZLincqAnyEtH2tZtTempADuvuPjqedM", + "public": + "04e019112e81356f5930d3d1b1f258c1dce698528095aa5887174bf0462e016102be9424d5fb4c6b11e5c31dab859e5b0706aa4513846640063c51c6f452b5e7d0", + "address": "bc1q4gkmmzwnukv7cqdkad7z0py50l4caxg7d3hqwf" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KzkieXPSMCpUDGb1xhGz6hKhNywKDa76cPezUajT4ZpRG7BNAkfe", + "public": + "045293f29be16a672638d54df1c42997ff1cc85c606ec11d2e051a46b43a06bca06b8c75495e9d49f74740cd131cf2622cdcba4bce5b1dddf605a2c1424bc7d3a5", + "address": "bc1qgpr4mwgvcm2vu5dgnfdq6ltv42289tfd39we6r" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L36HhMiRFKtHkV4xHDzYES1z4M4tZGGw5CpempcXPZigkqJm2oAg", + "public": + "0498e2a92d9da90c6e6a437921931021e4d7dc0729807e40584be66ce980a27d53986ba11ba620510b5aff82a6f98230fea6d93e1db663dd3e57edb8c56b8cd8e9", + "address": "bc1qfn3pafvqp4jc2muh3yhthkzgmuva0w3zmfk4w9" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L3crF3rbPqirXgLnhoJrSEabKhjyMyiHnpuxzuq8oH8PR6QmFH7W", + "public": + "04feb0f4619132fa1dfd73a80de6344f5e8b8b2ff2ad1a3e0a2d8e20eb13b93d2a338dbc35cb0a0ba9113a199ecb7a2f9982b927e6318ec9002e6785932e91357e", + "address": "bc1q53plfqa6933vg7m2gw2rz20pzlzg6a85spxyu6" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L3UzcdkNBoGrtp19Kp8NwGaHzEyn4Wh5YFuKwifuosm99kRwRsc4", + "public": + "04f1e34544b5021f91436b0964b275f9c189a2726b9fcde61f31df3627a5f776ab2f0c7a3a7794786e8eaa69622d933df06e6898caba1777f3739486c394793c09", + "address": "bc1qctpnf58xpjvl29wm7ujvfnaeyejaxmwqnznel9" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KxGNayMvaYrnYdjvQtyyBfRzxrjTofEKmahNGGjsCuaNKr31hGJF", + "public": + "04a582599cafc541e040b505f837530f75235b585fa8843308ccfe3195596edd3a21958efa90a6f8be4bf6a3f9446f3786dac022d82acf96842507271ef8ec985c", + "address": "bc1qxvmd4sqaayxqltdelw2f3jgdyjf225pwtmey70" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L21HbNRiYKxfVNMkSuVdMuCfDB2ux4JhkpYYDUhmzSVMNfUz8WyK", + "public": + "04ee2e89866017eccc90551aadc2e8e51ad707a2bbc60cf65b71c3bc1eaed8ef8ccfd23e082cf0e6d20f16249dd30f878f1abe2e38be56da96260b1dcec197cc90", + "address": "bc1qe82kxndgneevkrtud4x0thwe2tlxt7mdsmcya4" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L4UqqdjXzmZS3UFjXHEZ6d8NBDY5b9YKXmjMpL2Eyjq8fAYEroUQ", + "public": + "046f192b754ad8146e666e5fb2dacff2a899c9eb090b6562df8c67d133ae7b23e50ed5fe2a2e5e231c274d595402815f88eac2296e6d5b10082db99672c07701bb", + "address": "bc1qn6n3ra9e77e79p44alsldsxx724cm5esfr7ccm" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KzG6qanXbZC3w3KMUjsBmX82bWMDYJ6hCasvJdb7ListJ924mRtn", + "public": + "040fc8b98f02103f1850a777bfdafd6007394cec9973ccfa2d69c2d1e7a90852856dcca75a62b6d3e9f1edaada09cf608dfa0fc14e608de7bec02be489cf837ff6", + "address": "bc1qyajqmxrtk8vazc2667ldydklgk7rr6z3gjdc3c" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KyfvwuyytvdsAKLyoxhHtNMn94y8aKyxuECEBeLY2opXJ8PNFHAF", + "public": + "04c267f896853e5ee6883514de82b9166359eb71094df966e0941f0ad08229819851f63a8859aa63e21123e287220daca56d7cd2b758d099574e49ca3b6a452fab", + "address": "bc1q4en4s9544lqvu2ruhegw59jp3pxvyfey2yvc76" + }, + { + "change_index": 4, + "address_index": 4, + "private": "Ky7Ds8AZoPSkSBxrcTScDvXmF8KpgiSXP4Vao8cqyER8zRSwLWfw", + "public": + "04362e2c9536ecebf1225c817497eb917e79e5ff31a4bfc7a8fa9a98b28437a38d2e536d2e64b9b8c64c1e7dd7b55ea6033e2d9af17af236423b9d4bd28b88f688", + "address": "bc1qqc8rl0hmen9yyv0rsut7x6z39tg2gw3zk28evg" + } + ] + }, + { + "seed": + "1879d09b3a8ff0f84bf55aab92acae24455b17e38e2ddeb53a105728d9c4338f681b5ad9bb125793e5048fe2d5a102a581b89452991e08d25f2c0127fbc92168", + "private": "KwdZ5fE8rEeHxFkDED1wpjXGpkK62BFf5Yxvzg3HMSHSh4XrY6r1", + "public": + "040346f3106c2ff470db2f0272b9d0417626e2fd8d6aedc9f54c900dbb6f858eada0ad6b1d0f8821c8b86da2ddb8f8bdd7b661cea0531718ef0bc33ec9a455fb0c", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "KyQh53WWx4VN53qHZcEdJt2q36veYoQPwSEHsagpUQge2xZe3eix", + "public": + "04b8957f3426c0c9e27150d69f6a4ebe99eaa505620c1870da5046a6f186edab422cc322d19e6ccdf13a077ea23dd9a789f21e1d6a3ea1257adc6400079a47f5df", + "address": "bc1qqm2jfdkdj3uz43sekrev48fh42gqevyngw0sah" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KzjCcvrGY3Mo2WdkJut3grB51g2qayJJ27b6fScvfXh4E8Pqpo3z", + "public": + "04e437e8d6c13775220ef507b9689fc937e5b43a165bf8f2984841144e06ca9772e34fa468c273fbff9e9892dbe91bfd8ffe83ca4211e9c2d9618fe9d8065777da", + "address": "bc1q0fyjlv4u9r2klj5lwwppksn4hc55k3nqv9y4hr" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L4YcutgYZJpmJ2ZKjqmGDpCoByjwY4zxsbKkbgQnuaoLJwA4rW9P", + "public": + "04e6642aec55fc0903c2b3d75ee337378b60ff93fca79ccbf4184a54abe85db775e645228b7acf3e40c9f07a8bc5597480efb6627acd137e18d7e19ad9fe3a7542", + "address": "bc1q9zt6c6rrxk8k2yzv0dzuww0vss6q8n0uda2md7" + }, + { + "change_index": 0, + "address_index": 3, + "private": "KwHTSPXWc9EfyynZGWo28v8VdUtSsuVF2mLFuYt1cKm3JMXGDUJu", + "public": + "0481cbc1b5800b68339d80ac986c8891b234cfc9a9e5e1a8d05615d86c059921949095c2fd29ad58ad2e2063bf37e66a0305e04b6660eecebacb96224ac779c7b7", + "address": "bc1q6wd6ka666u6ncyfs9rqhr6r0z35qpsjrrptscu" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L5SHJ7zeheE81Sq9k12r1aAF46stjQCw6je3yQb3c3UwR78HBh5m", + "public": + "04f2ab35dcc205d621bd5d360d4e81967f0f09f0ddbfb5810366dd6bb628e66cd4013e3a60921ad16066ef6d7d9384e78eadbc771fbfbd1f85ffd6c57e80183cac", + "address": "bc1q5265n5mfn6na3tt3ylsrtdfcl6eyp9wkjtkahj" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KyEgPkJvHV8jRwhpDpLoeqiAyBaZwZtGK27quZxD3ZofzwgbasY2", + "public": + "04b979066189b1a78a12a936bdbe7286600b995402e71f8f2841eb0af04c9869907eea4681fd6f24de01212605ae3811a2fed91431da91b2a0c314b7ff299d9021", + "address": "bc1qz5v56ywnz5nyxck2zrjwyav9gv0xglg6xlma2j" + }, + { + "change_index": 1, + "address_index": 1, + "private": "KyFpKnfPdT8WEqYwNg8L573Aea1HEXmEKKPrj5rejzwAUanJ85gu", + "public": + "043e538bf5eb4a802a7930677c3d1150d952f1b306727bbf179b5943d9d10dcd016fb1bd32044deda8928e2f54014ba55c05bbf87132f84e71de535338382c5c8c", + "address": "bc1qn443r587lm30e22ps3s0hh4awqwmxr4j7kefqt" + }, + { + "change_index": 1, + "address_index": 2, + "private": "Ky2bNCXBn2bu8tUuFk8iuhdGrw2kH11McgCWqfBRK8JTCeLCFcey", + "public": + "04f51dc149d92afaf1cb2c49ba11cc456357c1a103667b5b7979854774f2329185544db72239aa3a592af9f682cd82f4ca0f9af308cdc9880dda5520e83750cacc", + "address": "bc1qdskmjccl7y5qshdhw3etjm46f56ne5z3k7kv43" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KyC5yPy8hVfft2WG6PtPV2WrS7bLEM9rhipkXRwVt23BMEHyM2ck", + "public": + "040e0ff5db988a7a96901fd6785e53a46265ac201288c3067317884b4850496ee543a1dacb9e6c16aa01c78d0d15353378b675d3bf8df3e029bcaefc1d891aab42", + "address": "bc1q3z542grafv6nrzxng94s4zgypufwhagmsdxvgy" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L5ahVPyJYBFpNNhSZTbSRz5mW3V8DkrGnWAVU2UnG4hgLunEeDxe", + "public": + "04e32cc57225f798bc696a7a21a14396ed87c29a797e480c02a710bad4cf6a34eefb3a7c15071e277429b1dd2201cfc3d4e85bb54846999cb784d90e972c277308", + "address": "bc1qx35k6tepwpxmfutsz9gfpveyw3mj342ax9wqp3" + }, + { + "change_index": 2, + "address_index": 0, + "private": "Kx8VC4Dk8XVc3n76ivp4drAxoqyvSmycoJbkL5tv1gnc4CYFw11c", + "public": + "049dcb45f3ded37d6dd63230fe4cbbc131aba6fc804c4b3660c7e347d95627c4c93b34fa559dc86437e6fa154b4965d3fb8a1249d812f102e4c9e473a73a952fa1", + "address": "bc1qw9g0sv50kyjyuvy9jty056s6hzts0pmhtrncxn" + }, + { + "change_index": 2, + "address_index": 1, + "private": "Kxsf1L2p6duZRJxPiHqaKiHjkY5ZAyKw7FEY2Z2nuLHi9sg24EVg", + "public": + "04c6379095350d37a32e82d96d2f945a7042b85a99f670d9463bea9cae3403ed2627d289b7a2c77c4cd8ee685412bcd1e5e9434604717be33cbceff4119ab04c29", + "address": "bc1qwcsmka4nyhhnz4sugym9n38ljnc64v658dtcxh" + }, + { + "change_index": 2, + "address_index": 2, + "private": "Ky8vE5uQmKneeht7ix6cg69c1gYkGgRqr8BvXKn1g9csThfGSFkc", + "public": + "04d39190dbfda0e6af452b86c4df94510a9aaa63b59268549d5d19a3ebfbc771d5c9f875ed1b178d0b58b4832c0e8223fce7febd6b618d5a9cd6b7a5cbd983334a", + "address": "bc1q68chhd495cftrkv7uvcget9h9549ks9nvysrfj" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L3sA9aEmxzn9x2YtKexcq8pySeZVs5yk4wWQUuj2NZYJTy3GGuUt", + "public": + "0417bfa4b946975ec6ef9ca600942f6ec311f36fd1bc24171a59ebbedfc5b92b0d1ec6b757fdd8ce5684cf883dec8e3c6f73fb7b5e8b8c276d92cc242725ac5477", + "address": "bc1ql56srmsjugmstgeqm68xntqs9xtp9flut0rm43" + }, + { + "change_index": 2, + "address_index": 4, + "private": "KxVmt1RoBedGH4nqJDKN12nDcqqmAQtaB1yjQDWp8pA7PqYkKMBb", + "public": + "04f738dbcf5f16ed1f9228d366e782a2bddc844434be41c3e07e9280ca45230cfd6f72f663ce852bfd9a2b9d49f3a9f913022413a98e668fbec7d7faba054afee7", + "address": "bc1q33w2ucfnnnyyh3dl4764r6h40395wn9srwh4m6" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L5SCeVqQyUSPVnX92SArysph7nvBJL3jri5EKCckK84W8hjNyhmM", + "public": + "04a39e91b6558cd34f5e5153e9a3cde34b1dd910848531bf5dd38f659d43ec9d533bb5aaf5ac37367ba960f355421c5b56d482186a8d35b48c37c17d781e9e394b", + "address": "bc1qwqz0rhratfamve3448v756sh75axua74xcpaxr" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L1L2Abusit7YXkQ6BSqmdy4nJvSv4jGdqfHobXiRqWk3YxWR7dnD", + "public": + "04732498c804506c9d778ba2d37ce32abf1a6fd6390b7ab37fdeb8d8ee7e15f2a7b922353dcc503065c6544f1ed385776c5a0d371cd38c58f83167ca0f00fcd8e9", + "address": "bc1qj76rdkt6atkf6eervz7wfgfmn2s5dxcn8rmmkp" + }, + { + "change_index": 3, + "address_index": 2, + "private": "Kwoorm1cJYSPc6guyoP98raD4N9kDMETPiyAnFQZttfj9hwC8xKX", + "public": + "04f4f2be970a2f46dde6cbb5ce67145111cf7c783649cfe223f4c2f355adb96041627ab2cd4568ae063f6a5b0772131eee9c2c2ae008916b6d476915440ae0e8e6", + "address": "bc1qxvfyknq900rd4h5aax6ktdw7pzjks26guctjnm" + }, + { + "change_index": 3, + "address_index": 3, + "private": "KxrjAGpons4rxTgtsMjJnFVKy6VyHXmK1yobRfpcTxy1svVz6iA4", + "public": + "0440412fba104874be7cc368cc35d9298f8b68a2caac796f53517353bd7dbbf44e0357fdf34ab07b3b164545c9a8ad109e2b306c4b7b86004009a03e04e5d5cc42", + "address": "bc1qylzjhq0ws2yg6wu5n76qk67mheqhju3m4tmede" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KzkbLVoqGfD9zd3YSW7E5NGKr1mKCMovQAtS7QUzJJTRuvYQSefy", + "public": + "043a22395a25b9c637840e6dc02611a2ff08f01dd063a21d36830cd895b3e21b61388b4424acf66d373d99737bcfa2ef424070f5149f5abc873e7969075ffe3623", + "address": "bc1qgc8cq53x2gcvyc2kwwhzujv5jzaa2at259twz8" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KxV21MoExzYMU7wMGYPYTFMCtqDG5sHwQeGS5TtszrviMsrNdLEm", + "public": + "047ebd5ca3d57b7e58d35da0dc54f0b74c2a8fd7210fbe9326cf4f4090c561ea0c6936bbb9f1deebc0751c7c30634b21455d88e5f88a30f82948b132e306bb59c9", + "address": "bc1q94wl802p889tvq2m6jrfz44z2hwuqj6vawe5al" + }, + { + "change_index": 4, + "address_index": 1, + "private": "KxwAa2AhU8XUxTZWVCubdSQNJPJzVNCcoto4AUEV319N6Top7uyZ", + "public": + "045bc283f454690d2c676716ec1d54761c06cff276c6603c3638f25e09b84f2e26a37d4e9abfb302956e55a4d7e5124a7300c173302681bb9da9871cbb3a9dc31a", + "address": "bc1q8ze9e5vlr7s4qg3sy5ykg83gl4e7fsacav6l0d" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L4ruZpRPu6pd4bn9YgLntQTCpVsoYhjYMVbweW2Gu4pzikPVZoCx", + "public": + "04c769889c7be272c7d207905ab6df16561f0fcd0bc9f900fc188ec3881d2e8af2b71af472d4d287a619739d69166153aa86b031877537f67cd7dbece9d1875204", + "address": "bc1ql3h6wjf5w04ajfcna3vhuaye7qyetjkzpk8zf5" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KxnRE67jAobKdmnBiM623zg2jufyHPikgzXnvbAFyiYBWfbLniss", + "public": + "04a1b46ce384eea1b0af8519e5d947d5132afcc667c8142253c4e642d6e9df8ebcebf4fbd114ba1cc179669bfad2dc6992a0ff0894b902f2fbefdad8204289ae38", + "address": "bc1qcdlx0tcp6xdyrfu40tejede4x7wvuql99xm87x" + }, + { + "change_index": 4, + "address_index": 4, + "private": "Ky9k1GFkGRDKjHN17vHrMsHs1YiMXnh8oFx3CuTvAAzL6Rn1cT7u", + "public": + "0463c11661b2119424d385ba6ed47726ec6fc0b53243e0dce7be53e2084b9f3c99c88661366226199e62d355c8a87020f1198db4d07969cd3dcfd674f9bb84d159", + "address": "bc1q9fvycy9nck3gws2ucmaftax7knsemxvfn2s7y4" + } + ] + }, + { + "seed": + "5110d21ca9de548b889a0688137c026c443ad2d4bd8655d45b207c8230138d3b6c467211f0a6cf59da950eb7964e8a7e4c1d8809cff1446f8c75926edeed5c4c", + "private": "Kx11APdmzqC8N1fWLrsuMX1xCYAs17hbpSVD3wS3NvmGi7xkUfLd", + "public": + "04cd1db8f171c136de66dae12dd02a5967fc304c4275f708f0426992e37d08ed50f6ef80c8539abb043eff97fa86326cd316f908180e98463339e9c72cdea0ca64", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "KwLQpbhgRKzH46Y9jUkoriunpP7FdWG3S4AR6ukNuS7jjP93WD8Z", + "public": + "040862cbac72770ad318ac4322184d2535bb1fd38582e318fabcd269fe91175172cf34b4602cf4b789d23c5e1c1cf230817aeb0d70661a8de01ccfb519ce88bcc2", + "address": "bc1qhrj3w92st5xmmynrgj3dxcves863dxpl4dlr7z" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L4qBo7QB8i4wJGYpZiQaJuSHs1TnH7vNx3FW3KvXCZz5EodLurab", + "public": + "049583d8a11312982f8e46ec22de3f6a23515a2064f600da9bbe03bbc31fb627a338dabe314a7375a43537c9c34cc6199a35f237ecebeb048a049dfbe0c5b8caa5", + "address": "bc1qgsnte9jwny4dufgg2ygkhwxpkmsl3tkpc8t5kk" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KyrEzVAz5NYD7hge77gHPdF6iqJUzvMTUicGXesmpNsyDwEtN8TC", + "public": + "04fbbd0f1803c4b3b81ee4189ac9bd37c3de48deffd5cfebc540e29de4dfbacaecb981d9c268c9f60337941f866c6b9faad6ca74bee0b53f6d243005f211fd07e7", + "address": "bc1qz2xk5u24x79m8g4qws3flkm78zvk5tm3r8q963" + }, + { + "change_index": 0, + "address_index": 3, + "private": "KxSDJBnhbBzrAGmbgLM9xXLroHDsD1VVo1cKLTc66wfERBWLtu3H", + "public": + "049a4bb6b6e7145a2d962837dd18723a8419af9d0fd093a57ce52c11967e43750c4e19f506fa45acc933c5ed620246caf19f866367bf68407645586ee5db1e3c8e", + "address": "bc1qgnvsm4k76472q88n35ammkppd7tc3s2npg37eu" + }, + { + "change_index": 0, + "address_index": 4, + "private": "Kz9CcEBMJkEFQY2JGjXx7PAnLuDT7mSpp2rLUwoLCJoNV6mJCci5", + "public": + "04e16380c5c155913c41fb0a0e3488c8bcabc16db192e5b70633032b3a42a8f8a21d4961dd2975102d21e8a003aebc76b6d51958e1cb6f7052c3a334c7f75212f1", + "address": "bc1qg64uhwzhlt6ccvwuwm8csr4f2zd5a4wnun5js6" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L4GwH7TTyxkCVrPGgNbRr9FPPMnnPA76gProd43FjARisb8J7sj4", + "public": + "04d7f27ab4109a7d715cf9d343f1010cb3fd050c56098735c45f7fcaa0ac4575d210b7c8d3aa52f844e7ec10585f1a9903a4cf0076233472c6eadb3fc777010d6a", + "address": "bc1qaa738h3ef62tn495wqstwlfxehx2g7zdr93dja" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L3xmbDk23FBtAuAAciuRaj2dXiZ14vgmjYE4nFe489F3Mq6u31qE", + "public": + "045a23ff91dc1ba35d25f506da5fed21be6c33b2f563fe461e17823688f737974b5bc87af19f93976ab578ee06fc34a4d4cda6500291c4173601dc3228f27f9040", + "address": "bc1qkhmfx3e4ngsycu4f9cgw658hru3fa0l3s44rv7" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KyaS9fdgVHGVqRx9hpgqSGtyxpYxjeWVLg6bHXKZtMechDw2JjwX", + "public": + "04ed0df4f61f9897c234f316d84b057ecf6411a15183868ebdd259c3dcee951b93db4f5417233810f35cf17402c2a39a02bb0151fb84e1ac41669bca37590985b0", + "address": "bc1q4spetnqn9lq32k75hdw9p3yg3qkztmk27cag56" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L4mFwAPfUV2BjALRqo1bAyQPQyhTZTCEXcDv7ij32P8ubL6rdWw7", + "public": + "0428d51fa956b87580ba6db182591b7e22abd89b776b203a9281caa59e1812280a3f2d0b5c62d826d948180b9aefad781a2e48d05ebcd2fb9a5363c972ec83f670", + "address": "bc1qr0pjft4k54een6u3q5klct6syz8l2ff96qpuy3" + }, + { + "change_index": 1, + "address_index": 4, + "private": "KzDRVtn1pDZJN5dpmJDcLVGZ6Hw8sUCwdRz8oPSMdTKd6MYNiKQQ", + "public": + "0464de29bf92177c741d6d8f5bff86704f316947e4387a6a958fbd4b2b9accb6d92877a7daa09049da0d8cd159fd8e689635ebb37ffb90b0c1f12b02c4c2a688c0", + "address": "bc1qu8z9nw8jl9czk3t8q0xu5x23e79mmsuz8lr6ag" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L2AzCenFMXcgzT6SvqfCeJM5qoHi1MxvnGK47iUT7TKR58qNioxP", + "public": + "04d6fdc7e13b03be6beac05186adcc67477f5435422a24a40cbc69bb14ada00770650edd3d67750c71b22544f156c8972eea1551062d16131ccba65a0aa3afb9d7", + "address": "bc1qe5u23qhrerjsnhlzmf84zh60gkz5kjmcthaz7h" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L5fBwzqrJMZprz8oFrphhtWeDQJhTwGJUqnrS9ohJaE5tsZnzY1b", + "public": + "0401dd809272cb9b68b4e0ca587758a78be1bb4918971eef033a060d890b887e2ec1bbd6d9b47c93a31af679463d67955808fb0acb8e1b924b32bde71e7893c768", + "address": "bc1qk6pe4ceunztfva44r3mmnws6twtlj2mhqma0w6" + }, + { + "change_index": 2, + "address_index": 2, + "private": "Kzuy21ooa6zbLGQvXtf6ZGdx9QnnhCxQGbCmbB4i63Htx7qBUTz8", + "public": + "049642571f446f05210a861470724340130eb6b6ff06f27ee139d5d34817cf79007fd1231e8d1ca8ce029a5f7bb156060ca980b5c0b7fe19ecfb5d142079c31377", + "address": "bc1qdmgeygj3wfqrt7ac0qzdsckgz74e8hf3rx94gp" + }, + { + "change_index": 2, + "address_index": 3, + "private": "Kz7HRxNykhEVV8RVGrszrHf19Mn6z974mLe9fdwpw6f32EJHurUF", + "public": + "040db48e08b1f16d6523579ee9515b08ca12906ae69ab797a4a4b813d7decb8aefab7eac527910dd49e9ddc6c56412aa0c47a9915d9f7d414fe3025c7a804100f3", + "address": "bc1q2sha3dj3lvuzcl8zjq4mk652vdfp98u7yht3v5" + }, + { + "change_index": 2, + "address_index": 4, + "private": "KxpgndcsSeAe2DCbZH3gma8zwxQq6vpfD5ya6YMU6zkKHkpfc389", + "public": + "0410e4d35424476d8dd03a4b071c9970c9a88f5133b28be0c3c288f6ad71326f17ac2d6bb0b02711e3f1b6065a4716411622c3c54d65f0209d6615cba6e211218e", + "address": "bc1qf43rwfhu47uymjkum2w20nzlky4d0nl3tshfhf" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KwLyFK3WYPFkUEAxW9uhD1cZn5AbcNssiz3xiUBkAQJrTVndKs57", + "public": + "04f31b129afb59349d08bd79a20a7c68d4985720db1af4fe8cdd386cdc5ea907089f82ed29880924164d9dddfa0ae96d3be84b3799daa249ff9c71318ecf78117b", + "address": "bc1q96du6hzzu3el292rk0rjptef6q6q0k6nlwevkc" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L2ZqTfQQ9QQmW1S5fKrvx3bpQJqBBgu57VNHSQCZ7ZcdErfy15n6", + "public": + "04e8a91d56fb37b65d4bdb8d207d07f176117c9b6b8056d83c3a27f1ef3762ab4b2bcc1e263d9999cbfe6bdb99723441f740040f1e22e07cf359a7077ce8aa6556", + "address": "bc1qmqkr9r6j9sm6lmm87jn2ya7ff7tcvp6amgwly7" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L2NTxf7YANhaxQTNxKxsfxm3vHrrd7Yy2w2HrGVAHLTaeWUux3xU", + "public": + "041c0410ef680cd3faf609e82ae6d3e73e36a4b82753c485100bad7b53107796c2caa44d8d37817a5590533c874198672d91f758518fce11fe3f0aa9f159eec677", + "address": "bc1qx0v6tcsel3fhutakjhzqvxha7evlrc7kehdsh6" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L2rc732hXEHsZV4YC68oPQ8EC8f5LeqwoRTGpN3R6QHzuKwpYSNV", + "public": + "044641179a6d1f93d0a79497f20b3a465c1ca9352453e2943b528ec5da7b99987b2583f3fd7280a375c06e7305c8ce99c1fa7201baf0ac0f750603776814ce3c3d", + "address": "bc1qc04u89p24fnvwukegg3q755zf9yeqkmjn9nsam" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KyDwBGDcb2pi9CS9jUUWXixjC7THFNBGBqPPF8UYsmUuEGYwwaK9", + "public": + "049da05e23bcd3819e3fe7fab503c68bc7430d8a080d8cd657fd92c804c70a1837b284ee01de7fad24527e6f6139a828b06d98dcf3718df9035938a626bc3a5ffa", + "address": "bc1qq30wfd5jceeemxtzp5wgawktav8h2m4txm0c24" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L3YbzQgJ7pU7zUwB4juG74Q5VoMCmxcMb5d4hCJCzq5xEtTbNcYE", + "public": + "040269cb0f446ca01feac1b5a618c09a8d4f1c41ed8103e47f942b4de61bcabc7ac3898eb6149a2246dd47ecb06340430c32d7b2d18301cc3b5a91c00af64482cd", + "address": "bc1qcym2lukwvfdmm6q34zcl55f2p9qflnr8s02hjj" + }, + { + "change_index": 4, + "address_index": 1, + "private": "KwH5iqmoL3oZmonBVQeYP8z6UzHwPrRJV4PUf5oMNAf6XUYeYHh2", + "public": + "04b1df22e2e799b53acf49885055a5827f46f4a51436a4358c443081ba692d6874618cd09e15b669610a27bc9b640623ffceddb0296320432ff60e32d8f431b85f", + "address": "bc1qppy0jy6l5k5ylzzn7fjlkygc0nm3urr3rduvey" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L1MXNWeXv2oVP5nb1TB5yXK4kuhgNQYUqCFPhvCaeHUmeLaszQLi", + "public": + "04569e00fb73da61cc88114d8e1165aa9b698bc4da247c1c174e84ddb9151035de94bd90273ffbf09f10b6c31494c08ffa38dc23c47496fb1688099d0936424403", + "address": "bc1q9nmx345mrggt4y8l4pyratqpma308pgjsea70w" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KyTFDTLdytRRLCVwgVcxdzaBvi3kB8dUuEAoFvtozXG9bjom4EZH", + "public": + "04a2e2678056653123eca3033694598bd208861f1613ff849b2c7abe0b8e931e3aa916fbcebedf826bbcda8b619c7783c609ace675d10a42ece057ac34d729c741", + "address": "bc1quy9jxzajwqe6gy95tmunp90z058dh39yh4p59r" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KyK7Pu4JeMLavX4Cp8gnGfRCogjLRQgs7x8aXMJLqZCfW2fjVwnV", + "public": + "04f96c72f091363645f9f9de4c45b096f9bea8bf78b2139a18ce333572a06680257aa6b333cedafa8c25991192ce5751090ccac4317e10d5b9ba04e071dfd56606", + "address": "bc1qlc7tgqu5cmd3km2urkuyhwejg4yehyghczq83w" + } + ] + }, + { + "seed": + "a1b61d915cc96ae0430fe84d1fbf1fbe063f3b8e74aaad7d402f396e5ce78e136f90733847b070067ca75bd54deb86585a58070e31f07cb16ed74a8183fa2f67", + "private": "Kwrqec1jnaEuyKUqG2MMhQgUuG562eueo9jd52V78yHbY3amgfds", + "public": + "04f0b3ebf9e61ef69f88ecf8afaa5e67717407cf2d40659f20d82ccf1a2249b8298b3ec98f45784f29d95cb6db6287a6abcd8eb5601c989d093c8e33e527eacb45", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L369wfJpTBCvzkzMSpnq8TDLV667gKom4Sf6MsLd3Qmr6yAKdkWA", + "public": + "04b7f6ead74de27305a10038290715346bb4ec20a65bb869dda339536790d6f52cc6b9eac00d58bc4c690bd6033c706b43aa70e67a0850ceaf56851de7177ca264", + "address": "bc1qmmqawh3aglz08sspl8fj56zg9zfnnu6ntnl67q" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L58R1PfrdR2B8caSNEv3wrCGjm9BxkTtGiigXrT8tkmNHPHRAsVY", + "public": + "04e2ab833ed8c48526ccb821028fae619425047fdaf898e67820186d11a0ebce05d6e215efe362de8fa88a875c89d63e857d609c1f028e818ced99f1a1ffe7f9ad", + "address": "bc1qjy9m25aq3cwpes8m709ew5qeut6mjczum52uew" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L1bQ8BEqsJZM7GS7RKeRmuvnkkkNNdN1tr8LAdWuafjebcjSXp5C", + "public": + "046aed33975deaae994b0953061887ab69c780beff04f83d9263b437898ee4354ca25b6fcac4f26f1e5209f4c728090a92ffa5acd146936359fe2d64c977f86724", + "address": "bc1qrwxyn7f5xg03470rd75u7t6nwygue7ewd8u4yu" + }, + { + "change_index": 0, + "address_index": 3, + "private": "Kys6nt5jHDbTCQQactXXsfzTMCzfzmz87RHdoh3LsRV4u3DsXPMQ", + "public": + "0404983c1b5905e170bcbc58dc4ff7db7d846e75a608c6addcc7f2b0cba85907df9cd3c6ca2e455d5bb295e3b34347fa3a00fa200dade1c1ba48c34302819a8645", + "address": "bc1qvc27rcuhxglzwwq2fv9kjk5jncpuwwrp5f544k" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L13cfVskGeCp4FsM6MuBSY8gcuVYf18cg6FQEpMxLHoxEaN8ntP7", + "public": + "0421937a44d854c79e4d5b2bef5cb1e114ec1a7c032177f0c4e1ffce6fe26b1730b07006825d84b15505110a075fd77eaba762bb9ad47690ee2333315e6642d38f", + "address": "bc1qnlzadaq6hs42s68078m72ehf2647xxcanle4ck" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KzrYnnFz4MZQxrcw6WuNuY2pqjVsf76XANvvoT51WZXE6BnE8beT", + "public": + "04b31ae425c249b852a2bc24defa2a5d60848528d97fe9701c527e3dcf4f5b9abfe5d8e50a5370cf0f1ca49d7552e83faea6206b66bf1daa2c18f1d5c272f5e447", + "address": "bc1qwefng5u90t806r8mkxulcntjwwsyrqq6nnculs" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L3FXxodPpMh9hFRaNrzFcv6rvAvqY3jKBZ4LsHWWndfq1N8mw8Ao", + "public": + "04f5f82ce3bfbcbb589de222b308e68eeeaff2412597fa22180e9e9e058bd66c3e6f431520aaf0bd398ecb64b82cd5441143777ff2d310eda8467cd210138b755a", + "address": "bc1q7y5f8ljckgvx4lg6jvsz26p9juu0n2wc27ax2q" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L1WEz3ugBWs1miBSNAhyVyWpRFv875yA9gX8LMHLgEFWu271HjNp", + "public": + "04c499eee2fca4cac7bc6b3b0c009397528faad757ccd6415228351efb07cd4ed7bd5994e8b66c106e52c0ab84989bff2d08c5a989d5a8633452cd5b875a96d348", + "address": "bc1q3xnw0d87dnhws69y5xycr3qqsmggwacvgzc2w7" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KyVihnF2H5y84smffKogGxTFWUmJn98pMCuSU5zd9nbrWBkKCprb", + "public": + "0474b97e3e162404e74bfed523c7b4d5de9c129a6b2e719eb630671868989c568ad34da5a29989551c5c1aca94e375c97e29385157b91900c12518b06114a8fc76", + "address": "bc1qujzhx4dj6luku42245ekspnqauf529ha4kd8p0" + }, + { + "change_index": 1, + "address_index": 4, + "private": "Ky5x3VidGbeXYqzuY5LWFNmgdSqMSjS6hhScBPwvNhuJQ55Rf7Mh", + "public": + "046ed1fede3d5d2e7b863e4c7acf59c6edbebdcf6b85c4abe6586631e69d611deab37fedba3795492542567b429b832a3f6bbd52796ad384f2db7faf2ddb9c5b72", + "address": "bc1q44ws34nq2n0qjut5lsdejnpypcyy8drluekz02" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L3XvY7ABRfKL37tTAjtEPAtbEsjKVd38kFD22GHrDvnPfs3UZCB8", + "public": + "040e75fdd57eff2bf8bac4ee4749c6384c07ed116b1dc7cbd454d5a135b300ba22188a3c73c7480ba8db7d82b4a229233e7d07460ea049a4a427dd8e2740e01271", + "address": "bc1q5s29dhv2ur85hyjwj3tm5k6w3ghv9anzh82ysf" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L2ADLa2WSU3Xg6HjHD2cuZ7EChKH4rdSA6oARN4zFykupqC2JEKs", + "public": + "04a73c3ada6f76677914e8601722124573054055439e111862a79bee96c0e028c9d1ebd7b2faf10c9b4e50c98a1f576773d17f571b2679073d0fa501a4398a14fd", + "address": "bc1qnh8cahjvrm3rgdgyyrjeqy6wvzvrjjn8m9umug" + }, + { + "change_index": 2, + "address_index": 2, + "private": "Kzd3PqQRJjEsRqncpY69F52GcVLbPLG31XZ3bVSB39BheoWDxMQ9", + "public": + "0421bfa4e2b171ba5d3f32ed9cdd6c8bcb8e79a77c293fe02ffbf6312ac1baad1bfc07f3c2c6fe0199e7b2a01f9c3e68c5aea8708dbeec9aeeacf03db31b0e45c2", + "address": "bc1q4yrw29d404s0v0qh626a4vla4zhv685rw2ya77" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KycCDsUirsxUMTxZeStBUDb8mHjBFLd46iZj4Fa45VZH4DnZdmRf", + "public": + "04ec7b273a4eefd234afcc82c8108323138cf0865ccf968c9bbde83aaa7cd1e2639aecf301ade25af383295736c8d31969f8685e90039912f59545964e0c0eea8c", + "address": "bc1qu9dreg2552s72h0q7qn3n4nzg46fjz7tu80t6u" + }, + { + "change_index": 2, + "address_index": 4, + "private": "KxWmBdiZG1UQmzqwsGYbxTScq4VUWjrpYxuxEcZW8VPfDSogw4zc", + "public": + "045a972533f4ba1892eb7dd31a59758dbb106d02c955d763b41f00de6488ac06ab2f7c3ecfa73fb8ac8a7d0d338a0ec80451127700434e1e601ace3bf76a1efc02", + "address": "bc1qk6fk0pjlp45q2szeu0xr9pguljxw9n8yxs2d3s" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L24HXXWpL4Q45FEB4yQWP1ZDC8gtgccV5Cm1K7WxjD4jAgB6eXA2", + "public": + "042e3f3a4155b5b4121ee5ceb1366e43b23b579e996ecf9dcf6f43c940116c53350e0277776375dedae6bef131509793ed5dd661650521d40d26963d08039d91c4", + "address": "bc1qqux2g9d4gkuvlaatttw2grlw5y6sfpcvgwgj3f" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KwiL2zBcDHLiYjXGqZfhXdVwsbr1SWhnqXaXVjGV2nWuNu1T26Yh", + "public": + "04fabbef5ba7e018dd67507bfe017fc7471950fe6a420b4323fb76d76b5c8f3363a448c8ac95cf2e1c24bc8565402a5965f4c01c1e6384f0f03259439203f84bce", + "address": "bc1q0mpgkqptgpva3aqcwv3jfzdltufsr30pf49t3c" + }, + { + "change_index": 3, + "address_index": 2, + "private": "KwemhNNLuHF2Qv2fhipf1aZWfcFAMbgmPgghpErRjDvMauCdMhGZ", + "public": + "0452ee743f0eae2bca1c13de3e6a8b11c47d7601babdbbeca89d4120e34a872b26ee4fa8706af28d7f655a178c7ed84ca6947f8025be7843f2a7b447353dd9895b", + "address": "bc1q3wd6k6mc5ll79a62ckhsqke7hwh520h5zc2q78" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L5MLaRUihdG4VQmKhUGhp2xHj4aAhsMnoP4G3ymAxwExnuqPYAKR", + "public": + "04063b93fb43b7ba3714ea0fe8f498da3ff1d5ea71a6d483eca44c51484d81d83d2280e888d1cbc1a76c2d06b8d7fa83102d9cf20d52278e9b124d99bf954c94cf", + "address": "bc1qa469z4ad2pgu5qfezw8qzthur6mgdyt8ekuuyv" + }, + { + "change_index": 3, + "address_index": 4, + "private": "L1WpVByhvZ2YctYKLSSzjqhZAa85wLYgmvNUDh2oRyDHEwqvPmdd", + "public": + "04018425170234724923cb979469ebe7f8f0860956213eb302b60beddedb33982a2feee7e38458ef127c8054b2c1df93314c66c26c82e69a1abcfe6956221fea35", + "address": "bc1qv66mxq2f4fxnaxrl6gdpuf6htk0zzgt58qsw6w" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KwVcLCFpG9MGVMGkEvW3uLQ2cG3Tbj8MN65LxndWBGSNA6zNxhke", + "public": + "045d3b81318220a6b3b23e622558b05faa412e5064121bed5667d56ce71a7cd77e14b80e4ada6f79775a13117c5ebdcf39444ebd6007305cab620b7e14ae589c45", + "address": "bc1qmwfzksvt95ftn82s75myh3xtt6svl0nrsfa8pv" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L2Xox5RbkPWfg2GB7qUjfCLULDS94LiEDuyLummc9DFhy7CvnFwx", + "public": + "046a20b1d81f437587dc3f84607c1a4fba11569d53102dfbb33a2c8a3be2a83fd0a30ceaf692d748101ad2960046e3a5435d6bbe809c2f12c54dc95745ea184f7e", + "address": "bc1q0knq2cf7nqc5la4zw5lygz5dlhgtdv3hlvq5q7" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L1vqbQQG8kQsKBmYuHDMdTnv3NZASdaYgfVmoUecG77P9eG6qbGu", + "public": + "0467fc09ff60bdd9691d20af7cafa56993a0eca615c9e30de956198f98bd7246bde58b8e702c1acb362735a9938290883ad573476fe7d7a4e68b723c63ff218836", + "address": "bc1q2z2s2yn2dsm8vvf8xz8caqrucvrsg2vx9a3yrv" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KxS8tJ2uLQKs7TrHypzQtu57vBb7JtpyJntnPyWWc6EETAFr1fTE", + "public": + "044a15a8ef8fc73f984b67260020248920259b039bfce3a8d11c4ddd7eaeeb01b1f609e6715c15954452ce6a1c6d4f2804a58bcc44ded72e7c59d34e2231972750", + "address": "bc1qvt07ecaj2nv73klprppju2ypwe6geml5r8s6m8" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L4r3371dE915Ld3VWkBdvn3enXav5D7KQgDdiSByC4bmEKH5ENfe", + "public": + "04309044e10233cbb5586759e3c28a5c44d9c324b3fe162b3cae09b50b4d31d456b25d5027a774b19b64dcd925a471434573b1261449d96a0ad98ae280a888a67a", + "address": "bc1qru8u9x7a2q7a9k6yfk6kyv3utqeukk03rn6938" + } + ] + }, + { + "seed": + "9e7ddfd926b355292106b03dfb02cd444b74e60879c04b506cbbf5de6a2dae25df5401a6a4fa76e937c99da56dcba7b68d02c0c3e4ae63a10e154d779e6109fa", + "private": "L3LSkqxWTspDaVMmVfjEvJzey17cWTRJNLQorEZni9UMjH8tYpNS", + "public": + "04d38e9d95e5fcd02e2055056daa2b3494c5c2d8846a96cd1c35caf3a8324a7d799eff3f3cd8ec9ad6fc936e48b661e9b317bd2c46da14a16c92419ebcfec67891", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4WfLrj12sVt2EuwW2adG8hqRBaGXxSYUR25j6KhxGcSfKPBKC8d", + "public": + "04773062c2ed9b2f0506100f37441ab8cecba172938c41b784375572eddf531e2caaba6d7f948cceba8330ef0ed90234f7a45d3249d0d867508ab6f57dead09a1b", + "address": "bc1qu89lxqegcaclv3fyvy50a90a4k46jj5cdkdd7z" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L5h7Gyx1ho78MU4dQhxyxenBm1ZGbWeaxTnLQ6w4P7k1EnURFxPT", + "public": + "04b7c22d5416f463da30da948961727a19117d0258d34e566ef11a8a1593f85343d347d56048dfc43b02dc3367134de8a6161036dec7c64f4b7951fd9a5a45216e", + "address": "bc1q4uhrkch7ag4w6z0r58q2j3eckey43a2zpz6agx" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L1F1k9R8tbtxs7hDMf5MpoS9oF3SCX6cyeD8Ek7g6W1RDgmM4A8i", + "public": + "04ebfefd3efad26cee374a2b1ceaa574e213d6433ae6e0307f62ebcb3cc543af34f9849d5cf5df5048d87fe3e7941fa020daba3743d5817e268867fb88055e759a", + "address": "bc1q6vtt8p5fum5eh6pdc2gdvj3swrshtzw0ay9xxf" + }, + { + "change_index": 0, + "address_index": 3, + "private": "KyPRu2y4eTiWg2sf7C9HinRYjN6PEx3qE5LhTvGq292pQ2fyjm3Y", + "public": + "04745252af4491a6f59c7b7215ea79f891cc6ab24804dfd5b56effb1d05268c2c261c22f86c86699de16e69af89b56d0d9edce676a2918ebfae479b0638e590f17", + "address": "bc1q6jmws92awjkpv9w9nue37usj5vyfte9uh3d4mn" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L3PF6uiQdKdv6HtipV7m5mvjjbX3qD4jrQibVndyM5zT1SX8tSed", + "public": + "04dce88aa54cf639243bd96ae26200a64b55e33eabdc7a9e7645fddfb833c59a9d2ce794a48f38feaaee8fe9c9cee9eca74285979f3f4567714d6cf49ce356d6b8", + "address": "bc1q8trcvsm8j5lfxs2x64ygzc5mcyatnppup755fd" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L59NHmEyYiXLMQdN7RtQjseo8KAh7yKcQn7NHUdZasf5LSfLi3Vt", + "public": + "048ffba864f66a8376d9a5259727c65c14a52d7b9b09b7e9f371c85c9e16941a58ebc3b509a4cb86ea642086a946ae32e00ddd5a30514eb52cec5b032abc657903", + "address": "bc1q7qyxltw954y42pwrhumwdwkmv9hlxyf6cdmzw2" + }, + { + "change_index": 1, + "address_index": 1, + "private": "Kxe2KcZmZbrfHjxKpcZfnQGYDi2QHLnLvE51a9YMdtskpwrJ2bXu", + "public": + "046e6d0ecdf16c03b4e2fcbc1ba6db4bcabd3778134fb38d50e98095c3197062eb3046f9ad21ccf841ca4a9caa60075d644087a733cad698081fcdb8b1e5f8aece", + "address": "bc1qf3azlykqxpkgm4t9dvtn4f8mswr4wqlz0sx3sr" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L1aBYXYPFXDFCKmVhKTSBu3XNJeqxH9RoecmhqQ7YPcnPFNXWvKb", + "public": + "04cc354afb77922e0f4ae6d33d6b2d110ecc41bc4d5852b74a27ccc33c9210fb63301e9ab1fd04bf5928524ce3841d90345e3b1f42644c99529d9e15eac7d7d9f8", + "address": "bc1qt62sv788fk7uxnqpelghxge3atup96cmvh5ecz" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KyM7rZes8mZcHMw6y7qmhrUVaCqxAXtnMMmT2xBnLuCxoeyXVAGf", + "public": + "046ee6decd31725c542536db0deba54637878c4fa9da85fb8189c30e129e519bfb81026a07ce3676fddc6555a45746173464ed491b2f2b1d73264f9f0e425404ba", + "address": "bc1qqsrm7uwdv25stp8cfa3ea5hy6ddraf4dt9r2ah" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L5NLaXFYhx3ZGM9kjhszbFhQ7XnsXKJosqV3hasSca2cVjLXeo8Q", + "public": + "043068de6baef9af279161ccd5ec857c8aab27497f36f3053d754b1f77780491d8c2ff45296d2bd9f82d8f600600485308bc9f23d474e73e6dbb761b3d4c58f846", + "address": "bc1qk24azfhk7e0nk8kfe95sqqatsmm9laj3828tef" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L3d6bHW5LykdGt1YoJRk78BGae1cU1DLNuufXPdi6yrVDiWHND2T", + "public": + "04971f17c009cc6b536c73ea45ed4f6b43857dd29ee0764f5a43f05aef5dee38e2af9b7bb265d8a1ba78d81f6d077d7044757a6ddba33d0d9431459965e79dc5c1", + "address": "bc1q2cccauqtfe3zvtsuhax8lzaczvvt5x34qnhe6c" + }, + { + "change_index": 2, + "address_index": 1, + "private": "KzRnxKv6Wm5VLeMA9YwvjAaxU1jsPKCYRtBGHkAJ9mAo3YdcjbXd", + "public": + "047767c11d6a2a02dd8432419aba34c5e0741fc3abe49cf6d38f5ba0e0e20fa2b087198a5f5134b6676638c9211db503d984513717dfdac8838973cc3c59dc92b3", + "address": "bc1qr58hxu03zpg73t785e8gmvv9y8j4s4wcmnjjzw" + }, + { + "change_index": 2, + "address_index": 2, + "private": "Kwy3bbJHgQ2XBv9SaZCrwiXSJ4BpjEFXJn8GbmgXsGU8DnC4Yrm6", + "public": + "04b6d2d4f415734b64868ed3c347ab82394e20377f601cb6c041a106106794b67f25713a9b35ceb0b9685dc1c41d63ce375e684ca19799a64a95c47c2bd5fd0fbd", + "address": "bc1qluur3zmvjcty4tr4x87y3hajjwfdghf68qt2za" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L28zfN5ozfV2KNhnLewshMqLzkYE4h1MtxQyfWLzDGx4Bs4vMmBm", + "public": + "0446fbcd111c952d9a81ed7e1956ce104410bf4245d6ec535cf1473342f150315b376bdb3aa8abdf9e61d97f9328cf2b53f4c400c221c0455b25bcdd667e5aaa5f", + "address": "bc1qerwf2akmeg25nn2f77y7d0028fzk88zxx0pzu3" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L3Pjo8XbyWJf1f6ESFCsMskDu24H2M8jKXbmNGAC43hEL2ZgCpfH", + "public": + "049497c799b87c8210fe677a8c771262d929d5f173e8a43a4920626349438ffb27a8dbe60c2efe17de2aa26f4146ad0e2fb1da19a0207f489dbc7b1dcadc9afd46", + "address": "bc1qs6ywryz8j9ecekka2dysudmc4v4655w8c5jt8r" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KzceSLfWSufqNsidZWgVgfCeCcje3jD1iVWnik3nvA6VPajG4qD6", + "public": + "0464e6339e03e78bf1e156ca16987eaab176ffa9737692853d8da96dd80413ab2cea19f5ba80676347598113bf5d209850115fe49d32f7b7cefe84c8f3b060a3ff", + "address": "bc1q534a2hucep84hv5qt7n3sqqhjassxcl6qnksjt" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L1jqd8sPjaXYKrStkbo8KrirKqpPKwryVe1guzegRHcDS7tu2fKm", + "public": + "04ba949cd9041cdbe04be98037ab7d2328c0e2e76202394b7b93a42f77bd7d0590e628d33766d8a0864a919c44c540eb938239e6e9272c06c7e0a1b72430128062", + "address": "bc1qmhjt2pu8lw0n3vg74a02lwz4jfa4hztzzp2hhn" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L1aYh78DrEdd8LdgujztZEiMLHjDmgsDud78AqhsJagYouCFwyPv", + "public": + "04190aec727119833375f331df7efd1843f6fdda668f466f243e2b1e37570c5cfa1f20ec8c3cfc16bdff3dde3ff9541b9b2f327d195769ca340102f917ee2c355e", + "address": "bc1qmkguh9pts3xewdhphcg6hq75uldaaaa8sv4qct" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L1BPT9U5rMoajMqCWX9WwitwtGQGnyFxz4KmuBirFyBQGvTVUU4w", + "public": + "044e718870a6d99d4fa436d4b8006db83d9d0d30470afd79daadeeefad4e55491587efabe55339ea9d82b6a18ec0a3558339975a2859f3593531b8cd6cf580c983", + "address": "bc1qhym6ycw7y5f250e8yla4kdvsyv7d2zt85dyzr8" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KzXKSXYtPMw54cq6emhF5Uz1sJw7SzFN5PPpD2CyZXhoy1JKoKGp", + "public": + "04d14c74399bfc35092ab70e3c8da22d5ef02f54ceae79e79fb8f8be3ba70abe46cf0ad0eb6dfdef3b751cc09f7bb7a601e93867c80ed63d01343fea6fcda71026", + "address": "bc1q5sm8pstyj6ya053s9xck83zr75w9f20ea6m0g9" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L1N1yF8WsdboS8SwF2Mw74xC4i7ETvmR19AifWFy95KdLcBJ5hdb", + "public": + "044c0e8d3dee4e3819b0de67c34c67f42ea94fed7b1c5c0f64d5e0b13310fb81d969cae4bf7d6d9141df4f1014f722a5fb063682cec549d53091739c114b3916d2", + "address": "bc1q0mxuxpaxkpnmxqxmt6nct9ezcqpqu4ej9l27h2" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L4ZDwyYAfc23YfVdxsDjpi3sXec5zAG6E4Jw7imd78r4hRA96ZUu", + "public": + "0435129d2eca8797d8a3b87d7316ca7f6aad493c278e5f311530a9de020e73aebe18c900144aee494a6a57b80de42e4aee063d9c2123dbf47674d4a752369bee49", + "address": "bc1qx5ngzh0hwmya07dvdsfx0hvttuf8nh60jjdm5q" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L2CCpyi52QRuEPjFzHHdshU5wBHVgwhWUEeFzrgvx28uhAYkh2R7", + "public": + "04462d5f7010a065b54a63123bad5356f419201e6fcf38b5c84baf05a09edb09322615f08bd5b250d12557751a61829291ec7e4f2270bdbe2ddcf41a4ee2f48ce0", + "address": "bc1qx7tmjlrg7uyqxtupwwxq58lkw7gztq4w5k0x76" + }, + { + "change_index": 4, + "address_index": 3, + "private": "Kxz6UW4faL65a8nAxe8hmBbwkv7Es8AircUE1AjiW5pXoay3yChL", + "public": + "04bc0ec10984f4c922f3d2b29711926fb1e129402a0db077ee13f410a591d384aafa14345cb63d1b6e07a78ecedc6557c8e8bc9f5b5ea5e7acc602715ff9f56166", + "address": "bc1qulvad3dl02vez9r7p3s0rgytkrw2pnmxnec5kc" + }, + { + "change_index": 4, + "address_index": 4, + "private": "Kxnnp478JwMNUN8xXMguCt7VsmK5huv2PWj4U4GqZCrQwYW4Q3GU", + "public": + "04778db80ae5d6eaa26df1bb0cac5444ba6a2645c8672ddb8e71644defe99e6949daccdd229b7bea7924c875a5988da6512cd3748dbeef74a0b6fbe6faecccd781", + "address": "bc1qjk4ugq8unu62ge23mdefusftpe9ern70rn8h7w" + } + ] + }, + { + "seed": + "a868f7eb9dbb8e5638d1c9c8c935d1cb76533162d3f225ecf0792a8f09bfdf6bdb3f46ddfb48c440b0635c6b04134c7813d06920d1b20479c22a78d721fd412c", + "private": "L2qpnoN9Hcx74f5ZynQ2PSy5C5ymDEsdfffwE8R9U7mTeyw9Fi7K", + "public": + "040423472ca31994e900b6bec3da5c2da1581859f2e62ffadbdcf3ae0da469c7a58bb6b73651f5e94c0e8df79c27dc0d6abb812a80e360ee831ff7fa6970f99de0", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "Kz8taFtuRQShYGWj7YbEujtX6hzSdgZgSKE54ruKN68Z6aq8smo3", + "public": + "041ab957f15b8673db84abcacaa4dea394844badf9335c20139280db1a02b29bee2512a5a10daa536a126ee382d9f5acd1f0a0ea8365c5dd98db6581202c6436fa", + "address": "bc1qa3lc55hc3srutedzjen8uup0dqp5mrh5sqzgh8" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KzZ5hxqiw5iCNDozjLgkiwihb7VPwrhVq4mkzvvR3wPteT47q5Er", + "public": + "04c506eee985c31877ea9c27f88f73cced69f7cdec511d2811c297036f69d7c8fbe07a44640bd7f0533a732c2d8b657d61b581395c7753b34b688caa770249e28a", + "address": "bc1qnfaqzafqurnf0snw9tdhce7guh9qw092suaet3" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L1b1CwRRCyXBKaXxFYUCc9SoE2UhRsR2w37i34XMvU3vvLh1ZuiX", + "public": + "0425e7a7e63171f905968e906475bde236d90ef6c407da28c419d09277c70a3cee413cc6c099f3516ab2cd383255841b2a7fa10536cbd81e2f5723ccee3856d8c0", + "address": "bc1qfvm9al2cg9dpkpz2snyr0las2gvz3wqtdqynwc" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L2vbGxACMHeYYisYHnpiLTuJJwjLuX8QcHFhX5r8nTBM69JYEqSZ", + "public": + "04b18fc09033b4c398ce71632e5deb5a7eebb2e3a7410c1d5d3505fa71c7ad84040e0a2f522bd57bed4425fe244fb68a8b4716e03449a88c129b5b0770f78ad824", + "address": "bc1qemfn5jf3z4sqhj2hcgt89ayuhjwh0v728chg6k" + }, + { + "change_index": 0, + "address_index": 4, + "private": "Kx24dszdSBj9CyhDG84vyLKniDbhm6RiJg6x4AhX4hXPEc7zbB7q", + "public": + "04b32e0b0bf3d8cc0d5f747075e611e27052817bf80f104cd159f4a78a4e12c92afefaf747b0e0d6da7405624c669a2a2219c00732f2eb366a2e9510623134211c", + "address": "bc1q5zyahw7err83l5cwxqzacgqxuhlm9yfhh93nfg" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L1VXxad2cySV7AzFfB7RAZdUxrsy7ySUmgyXVCVvHSULhd6VNMDe", + "public": + "04c720d79f1c074ea20e6f1a6134361c024bacf038941094db43186508f235f23040e3b649ce28edbc9a71589fe55df9da95560982ea7b56fdef17f36fbf3cb91b", + "address": "bc1q5pue80q45wdehlp9elzw8vamp8lwkpzpk6egcu" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L1BiL4DqnB4CmkRNSLLqM5CrQmiMNbxBJXmNQG1WRbmsHyEiWdgW", + "public": + "04380489479ab6ba3b99daa26fb052eb38f295bfb4a88d57800a2b387bbf333fa4b985fcda3359595ab2e4a7d9c2544a923b79687d7d26e343734af6082db74136", + "address": "bc1qf6n55wfwaexjgx2gdvzktklqmdrpz3dxedxrm0" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KyNfWvrDKAbaXMhYaV9cp5W8pW96k8ZyxXL6VuNsrMgHPFYpLEfD", + "public": + "04186dbf0929b76449a546f4df81ce3c0e4b2dc491f5c8f0d3f04adcd959e2c6fd800012a89f17b4426a6f97b7edbdd6e8ef7f2a23f9b504ea2f1a9ad9589a6175", + "address": "bc1qmr482xdt2g4482tz6psr640wywq8pnj7ren20e" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L3SqbEVpAus69fetnECcwZd99gzXKGxfFQ2rC1X3UsJn7k7gn9Vj", + "public": + "04aa5cac9ebe27101897d67f0aa8eb467b6d8676267c77394f1f79da8d4ee841fb174d8e86b2545bca90e5ce37dab8bc5ba4fa7dbf086291758157cdc6c94db62d", + "address": "bc1qcln99uen7gj6kpy6pla6jgmednlmgtfq5snxvg" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L1nJM8WqXFxDC7V3FDS8zu6bEuTU9ht6muEcMt8TWWJsq6Z5a1UT", + "public": + "0490843ec46ea27ba3fba2bf8761e2dcbcf099a20737a21af3fcd7cede856af5a3bae09d2856c0e8ecf673684a8bedfe51413977a8f52ff35a4ad2613563c52b9d", + "address": "bc1qr6lcgmqx3n03sld3t8a4k7w3dmxdxxre0rng20" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KyPQ7jjCsYp4BdkKEvvaqmYb2nz2T8KRtMpGPrxnTBWqSoquLD7w", + "public": + "0400db50e0f0fb265117d77b2b470161b31e27b81ba32cc19986cd918d9f7bda6afd161cb8c0e3297590a5240b8bd637561b00c8e7b5fc80be0baa002687f91867", + "address": "bc1qvccsj0hspwf3lflutmdvrpqqe749mkg568tqq8" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L2FyYKHRjYj7tKPStgueCa3TmxJqbb1dB5UHwv7pZw3REXSb48bF", + "public": + "040dd71fd2583f88d6d0e79c8053abcfb6618226f61c3e43a9aa8330a57a83344209f549bd3f75b56ab2f1c7024b94f36915b48b91898800d44dc52130f90c4ac3", + "address": "bc1qa6m0t7v0ucr0d579wxcw8h2ln78t60djyd3zad" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KyaeoH6a5Dm3H5Md6btNR5Ev9vPtk2Z2E8EUdqtDZPFnnyqVY493", + "public": + "040d18321f62dbf9c2d13b2654a5cc89dcbae79e6189221d953ebebeceac00508313414bb3a258ece5fb54bdc0428c9c2f60955fa00f6b6bdcd83628df4d03df61", + "address": "bc1qvhxf6czuz544wm3v0kzf578ed03akngxnmeggd" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KwK2WjAyzUrby5wnMx1uaxAhwpW24FTWrdk1P8ceW53zLNCVUNor", + "public": + "0435921c19210137cb919c725639ce48ac462491ee6c7de2a6adda03a3728521d254badb41560d7e82cd1b29a324f5d07c950e4c4a8e692fdb0ffca4d3ed8e8739", + "address": "bc1q5tc4050ztyamd4mryqz8s9w0x02lytyuv67407" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L24zKa3SNz8b3ppbLoim712TchCJQxgFyBKTo4JToLGwZqwxxK2G", + "public": + "04d26d3be27a5fbfc2ebb873a54c7fba7acfb7562ce044c536a8ff1d059dc27a70a573c85864bb94878b395761aa54fadfa72414144609adf6936bb0b7466caea1", + "address": "bc1qkx0tvmv66y55a6rcgg9pcky8yjyhfut447vdef" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KywVPGpLrFgyi2cSxmj1HopCJ2wa35mbeHW5k4v82aMV9265hg5V", + "public": + "047dae153d03ea506b85f0358e35f633bde7d4e395b9a0f03492f9593007523b33d3d287acce7a92b28cfea581b340f9e69192e1d1e7df5f57a094f52e1a79c30f", + "address": "bc1qxqf9k6k3m7tw8d7scj9cqgmhk49ftve0l3nyal" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KzRhJ67wy6fFGAUwbrFp5czDmU6d3TWB7Jgn8P7nDuN4DtGUyjmw", + "public": + "046c0337a94aac151b1de7c3a2f94d4074cc7315b70de68eadd35700617caeb43c68b5de7765dd989638ec6ef83440c70c70193e16bf1e32464a18a466d0e46198", + "address": "bc1qg2zmkkys6j6andwvtfxu5f3pzn8yxqqvz04p0f" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L3QBjVmspXfpsDcFdc9CZe9g316w3ecSDpM2bZYafJ1SjVm32kTz", + "public": + "04494804db8ecc99e483b919594b26a2b1672d4204084b0e69bfe4603bbf89e2df8277bb8d55d67082347443ba22c1f9561c227cedb909ed44a49bbfe0515927d0", + "address": "bc1qu20g2kcqha02slgh3eaclj66emv6pa3vjresuc" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L2yxSF9RuCnxGovkF41cZhMxe7bA7Fszs8gP2xioMeeE66qV6phF", + "public": + "04ab2516703964411331d918dce8a118a13b369a5e4e2a3424e5125fecfe864ccc893a56a11f361fe2ab9c7c8e4a9e2733e60f535d8a5781f99eecc5173e42fef6", + "address": "bc1qav33h9mugwfkd8t32gh9khc50yd70vl53hmsja" + }, + { + "change_index": 3, + "address_index": 4, + "private": "Kwekhq1qYrLF6v5xRBTrwyFdf81JCvgsQ3KJ1Ttmf8FEA4r17yGP", + "public": + "0473ca72a97e0d99c42b510136c0d627e4b7909c53c4762422c85147158a061c6b7d18fc9fcec72b5e0ecf61d10b8a4a52d3d62ac0bb33fe3c012e8f69ff31abf8", + "address": "bc1qrgn6rnz0dxhyqgpwnqre6n2pfzm54xp0anrw4k" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KwTq9qVkh23JyMyWSviM44ku49hwnKZ2saYHm9kpzk9C7Vfz2BjZ", + "public": + "0439d627285584c35e1321458f2f23990a22073ff1755b4e7291baab61d998ff4e72c9d2d5d3d8ececc9b10206b9021215c0b1f042d82ce5de89417df7de084ee0", + "address": "bc1qk6ly3ek4u6nnfrl24f0hangfma5h5pwatwyvvs" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L49SqijPeHtvxKDJ64gr7GxxoWJ8Y3KsTd1SqQTd9nA4rMt2qNDr", + "public": + "0499f74ce00526655c388f39ba88cd10356dc2c68133f50a035cd592e4474c5b6f0f81a8639600f52d060e464f6e993e89d6155d632f8803b9240bcfdfdeda73ae", + "address": "bc1qvg7chpqhyp5mwm4jzdyd92etq3yzu7rjthcptw" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L4rn3WPRZ6qhJrxH1nK7Hhw5CkW8q3nxJvDaSSKGhtADq8tXB9zA", + "public": + "0401ed0354eb2206bc6298f6569c5a4d602cbb63474191bd51e0d085b8f654214f2a67cc95236c1c413535d2c89048259e0bb02a12197be76d64706a77880356dd", + "address": "bc1q92zwxwcp6m3vnxwh5y9x6e8sdxcmrpaaqg30a8" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L5nyFxTTB1BHJU2Mujd3VnzJ1XnXeTto8mNySuH8fwxBaZgC2YwV", + "public": + "04ea83cf4ab3ca5679db549abe608c1dea13743efdee04cd5d06ebc50c7787d02f3bd9ca0f576b914fda01f1c3e00077b243559d42a60ffe52580fff07b54254bb", + "address": "bc1qwpw7fj7kg54cmam4nzw2kmfj6e0sf0n0kmtptg" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KxzXCwCjZ2Wp26eA2www7SajFPm9ak3gRkkNfWS9vreLP6iF5SXv", + "public": + "040a3475c537317b40427a865ec4a3206ad1b0e19b2a7f9c654ec2dae427b35ac5fd3d2aa751cc7f3b89882e0a67c8c1f0d573d2ee656c49ecdc862b52f8a3a3c3", + "address": "bc1qe4qyvj6n7xstkwcjdt3v9l76m6t095vd8lelc3" + } + ] + } +]; diff --git a/test/elctrum/v2/test_vector.dart b/test/elctrum/v2/test_vector.dart new file mode 100644 index 0000000..fc0d645 --- /dev/null +++ b/test/elctrum/v2/test_vector.dart @@ -0,0 +1,2092 @@ +final List> testVector = [ + { + "seed": + "2df4d21d5dedd8c29bf17a99e476a210d525bbf68d5274fffc7517e6c77d35414c14e4c9a50ea0f21682b6b42466fab23848e398f613d0094c3bbc2e8a872853", + "private": "Kwr2iRnJh2Bo17Y6Z5NApKEm8LVpm6gn9ixJg1uiHtb18a9qzKQH", + "public": + "049addeccfe8fce00a24a2d903d34dc1210506973f96f0f04e4808b705a4cff00234951e2316fafe75401fa293103334ac9c1dfedf38ee9108916aabfa0ed821a6", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4aB4UbPhVCs7xURXEFPc6EimYFpFeJ1L3FePMcgTS5A6GVcRwgg", + "public": + "043315efde943ff53730a935af0988526d04bf83a723807b0efaab66b8a776699505718e43ce4afa2995e1b41fc752481a2e93460573410f79ab0b0f2a2dcf10dd", + "address": "1Nx3cfqaPUNw8cxuPQW2NLZ6xZpDSaDxK7" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KxcxKBcJUHNBVwwmteKA1ibMrbaCcVNkoRXQP2r3u4NcG7a4UJrr", + "public": + "0480c2b13874ab89c6b1bdcdf6c0ea3a7556316d665242f3722a12bc0fa82e65c0e7003c85550e1c841223e14519c15782a22c191def3b562c0f3c2182e3448fed", + "address": "1Q9wgfavrSGx6wJoQwFNgmRWTr9LywY8vF" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KwfuQPZdVPpkXBWavmdTuph3mehZ16c7tyP39rTzzWpNVUut1XmN", + "public": + "0481d37a708ba41d321b4c4875ca65814cbc0c761a9cb881e4969d6cd0f98284bef4fa99c1a2fa390d36224bdf956a4337d0a754fd8df41289097ede77994ddbc7", + "address": "1MZyHJDrCr9T1tgsGJnVDFgtAvrR7sW3T2" + }, + { + "change_index": 0, + "address_index": 3, + "private": "KwY3kvc7rZ6cEyu7aQ6Qh7e9tB9qjx4juZuuzwytGY3hTVRuSU3J", + "public": + "04501ec21a81015309cf4539f6a36e9bfca09bed3407ef15d648e90b3d701c571d213f293c5531a97ca9d1960303b9e30b69cf17b7c8578f1177e4941eb4b97c29", + "address": "1P17dMxJcd8KM8foAqjKZvSxmZHvBtB53C" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L1dTySJvZWR8NB7B8i1fJNctPtwaDKnDqhNt9XhadbVGHE9jsEU9", + "public": + "04c07d264b8a2a7efdb61c3ff48b808b88f3817573f08c9d9a7952ddaf9da114ef9cc667fd7db6c2558216e16e6dd85ddcbdb8107393722e329fd76bb8fef626d5", + "address": "1Kt4R833PYcpoGtoTbvWQ6NU6w8aiqQj8z" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KwbJ78N2GbfqazS2A4QfZg5xFddbFFDFnW8enMYiPD6ogDJ6ZciR", + "public": + "04ae5637d67b3f50d9320263c1c031dfadad41e6bb83451a17d02a10e5eb8728fed0378df07802361b5b81cab433206c959cb1d31f85e0219401fd47ea917b630d", + "address": "16f21HNJRfdBpDiw3kEoJWFY9DTVucxKvK" + }, + { + "change_index": 1, + "address_index": 1, + "private": "Kwe37MmtMQ7XGq7zB6btvB4pEdjAacHLPpLEFgsnA7ohGQxQW81g", + "public": + "0472b017a0f918bf57219c4557c15045604fafe71338778e6109ca5162c0897dd4365cd3bbd2d27f692a1e3a1cebb31756940f937444fb34ef0bc1374fcc943e71", + "address": "19UohpsEuX1bqRLrbpGd2ro7NKSUtkSWyT" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KwKuKLgESWaWg7Bhx1bNbwxxJtFx4MfXznBrbg5KPqve37vxPs4e", + "public": + "040d91467aab1d706c54ff4e2959c4022a892dea009901c919c1ce62abdd7641bae8b7b9fa3991de5662ed3cf080a859db416cef04960c94242429f39e6cb6a2da", + "address": "1AXpSocRcivFWTkkY5i2mfjpsy2F5cmWcF" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KzTbXzL7aB8vmXkY1jpueQzYE1kPocBBKJQNeJ93ccf5pLE2JTUf", + "public": + "04ab99904eabac8c3611fec3bbd69cf64cfbd3d50b4622fbde43d3c9c5a1ec3a6daa291f04b27218594bd9e5c745c9878c70c5370ccd2d0e679d8817da7f70a3e0", + "address": "1NnsTWXftRx8nMt6VXnLf9ZBHJhfa6D7BJ" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L4r3XFtj1Bno1sUkY6YLf3vAfRX3BVmWLBjhZJKB2ExiHcVJKrgZ", + "public": + "042cb482bbd0c4f20f9c4c65787f337e6d55105e20c8707892a84960bde4f433526c736d8d539c9925eda577fdafcb444d43e83b594c7917e4ad5835b0996d745e", + "address": "1NyRYx6ap5y617y9u38NETNiSsZiwQhp7c" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L1EnmEN9k2MQa8LbLK8HALw66JLdGcGW9wYLxgSx5cwnN9JdJCgw", + "public": + "046c9c7ce7544aa83bd7944e62bd1f518058e4be7e2f2e44b3e342f0d26ab506320d72fb17ab24fd84f34cc1a38a5b41316857900a5c3a923c5b0edb5caeed9371", + "address": "1MP7NvoymQzCAK8ctNLDtCFkQ1aQ5ohrjZ" + }, + { + "change_index": 2, + "address_index": 1, + "private": "KxDP4DW3k6AdYAtRNroa7YQMXkRwr7gvpG5TcvhfHb7osajpkR5t", + "public": + "046cafecad3f6af2f1af92ff9d1b19eddbcd446abe466ce4325158781da2973d7b8b052e18421c9234003a7480bcd247e4e175c72bfd947114a91937ce6766236a", + "address": "1PTKu2QD3fTW1ZvE9zKNxJrKnCotPZ6eGM" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KxjkbZ39KwnoZxjrsV8Kvzejj2VRQ3Xx5vRMeuEFwxTYMsG6KmuH", + "public": + "044cf9bb53821af19b4c7df9464f89b12df9cd13307cd0d5a69e90f3b094fa3fa01c9d4667be407cdaf7b6159db20d0cdd5572187b335a6eb752b320693de6fd2f", + "address": "129fpX4yXY6XpZYPDTREL3ujuoDoSHRdu2" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KykmXX5zEMYeDDVfwzchHxArRZ67PprhYPScxWub57kcYY2dXXF3", + "public": + "04d529dba8905dff9cd8df59e67bdf35cd245831fbadbd83d741f0d086b19c91de64d2f3958f1ed10d6ca985f02b39afe4b92897568f44f1bd267cc2c442230db5", + "address": "1NZii7NAyZ1Pd5VRwoHf2H35uhxZrWBWoh" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L4u5mYwsabEx5ASeHxhb2hQmSqt1B4LivJJSUYhL6CAQxYcnNp9G", + "public": + "04033a0f6e8e3489274a574eee61ffca6d486ccc0a85af0dc61a39475ceba7dc605581ad987d1f2455419da1f03fccc785bec387b15cc73bb148b45fc74fbe5834", + "address": "16qVNrt8xJJWCx5GvWn56nBX8uZdFcKbfX" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L1MvSk2RdtECkkVuUgDYbF5HhYqL6LmRCDxgM7mjZ537yTeuFaDs", + "public": + "04ff40cd570ea2d1851900a64ca7d288cd4c8fb20de8f4085248cb3dd566e53d9f8bfe4a44d084cb3d56e3a86bc4fee0d1b7bb1ac6a265bbd4594861cc76e6937a", + "address": "1arBf8h8r89Ty5QqAzCz356UkN1q1tdMu" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L1PLntN1ToPCby3btMytPHK6kboPA2bcoQor3u5btXX5iaso8Jmi", + "public": + "046e174a1b8e244756293e0e09076b2f5578efd85c26e1defb1daae8c2de264a07607fc307dfeb802d0d5926fd5ef2a739aecd16b8ea6b84666467b00b19b4d5d0", + "address": "1ADDzdGrSG15N3MiD1fhuuduqsGtZrpJam" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L4xkCiNkA4G4NYADe1apnTaoBRe45bUhxthEDSj4qUsMtm5FGwDo", + "public": + "04b528da46060ad82fb79ef3b5d000222dcc1fa36ec613819532ff532e48595ff693d91959e741d43a035ce95c7bf8b9cf32e3ddbd5c3b549d47fbf5199ab0765e", + "address": "1Du2ssN4baL2JvaMWrwiuAc4yEzZX51pN4" + }, + { + "change_index": 3, + "address_index": 3, + "private": "KwmxawPCdYNrR6j9MgFMd8bq5K4HVXokP32Q73XbACvPvpt2XhRa", + "public": + "048d224433364f8a2f34f051f453253fa9a10945a715a12f1289d29e21afed36e004e216defe1dc64a40ba3b3415ca422ef9c5e5c201615691bcda9c1b88e0cace", + "address": "1F68v32SFrwUDqWWheSSA4Kfzhch8vMUTk" + }, + { + "change_index": 3, + "address_index": 4, + "private": "L4XZ7pzoZD8ix2UTHQPj2ykEYZoBYM49B2BP2yEGCWKNAHSEQ6ar", + "public": + "04587112dfce9bf50f8c46ac6725c513ce9350303d6212e54c76c74e0a4d72b70912aa3e5726665e222e8509466f4d8ed5139cdc8c54307d38ed326c52e81cecaa", + "address": "12TGTvT7r34D2CrkSXf6FM3k2iRnyKtGBy" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KypnvzkhXWjSNZoFp3xDbcAYHTbTqArewyMfTu1oVXyrrjyVL6oG", + "public": + "045200d4fe9b74c6cc5de43a91aeecc99ab9c08ffbef1c7de408138b8f29ce6dec4be977e1373b41812344b0b5398cf3bc6ae49ebb6363388b8aee73ceefa82101", + "address": "1PoBDEWxuTHrbgFLcrBRFzng7pwAFRfvkQ" + }, + { + "change_index": 4, + "address_index": 1, + "private": "Kysq2K9Wichq2s5XZhKW18rdTbxBbThkmXdfu4H2Yamzmxpz5jFN", + "public": + "04be3e94c6b521fee8add137703ac7c8523c7df740e95c86fbabfff2ba849331a5247912e6e378995faae34aaf6c605862ac81755173f5591c56d702ff89a965df", + "address": "149ahKH64M6J27jBs5hkVcfSxUqCNj4B3L" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L2yqx96GszJYgs79Z7VP4Tt8ZLKBXJ7ruorahgBK1n2JQg8CXkfe", + "public": + "04255373a98624154feac32f9aaa41543d7b46c4128b5c433e5924d82a981e26da984e5997b27cd6f6a2046241bed9d8c96ab4e604a4dfc4658cfaed02deb042f4", + "address": "1NyZrMEzsT7byTbBACHMc6Pt6L8QJ68TSW" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L3BxbbYHYRbm9SdeRdB9AmYnCDneeDE3gfxD25pwPDinjneZYiHi", + "public": + "041df1b0de5c32d3ad066548737690a8867a58cd93add87b9d67fd1445f7c6c4b7cc11b59489dd6c1204041c5dea233e41d44df7951d9a6753660822344ca74d2b", + "address": "13BF8GcHBmHqhUE6fuuYkgePHQHr5H8KV2" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L2x2CsAS5JizqgMEDs8DDbGD6dBstXuCPwemyi8fG58Dg2cVuL4T", + "public": + "04403a75c5524c4df03030a80ceb40ddfbcd9c4634f660784451358e27059038fcc71cbe41d6638beb996bf04361700aa15d218dd0f456327f9e97c1226dc0591b", + "address": "1FkeKcHMnrd631hytR6U1tmxsrWztqwhZu" + } + ] + }, + { + "seed": + "0017e5eb7d7a8ffdc3e7ee930b49adc70c2303b5718ec153f4acb0655b868fa27048058a214bc85bacc01c4736ff4ec798feb67a0d5ab4d46fe1052d24b4bcbe", + "private": "KzsFb8Sauv1Y1mTRkAnUchXxjew2XR7ttXorcFTXeZG5cVnWAwZZ", + "public": + "0429166a10c7981f503d0b486b1fd8558dbd73682f420aeda52953625ff99eae67a1ffe1ce47c9b025a9d6f2207095da9d903350d18410e184eaf5a60c6a911a61", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "KwVMsLPs8ysVEZ9ee9vxAsCwZmG8bWA97etYw6wDBAxHSnKSCa5t", + "public": + "04ae03016c32ec5d748938c6df0755b6804f27e134f039c48c9807435f605e09c0aa5cdaa2f64e27421458ab046f9803d19d692dc784b081046c815c678a17a3f0", + "address": "1McDHuHqzm4ncV9j2XcyNDnLeG89gvn5RY" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KxkNka2y4fHeyc8N1fa9QrgFk94Qo6r5XHYgxH5nKzMcvNfjJTm4", + "public": + "0439cfbc3dc90faa0490a6a475a471f1652e2260a21c43509c029b21f80e9d54983a225c6bef77832f07657c03a83097d0f85a86bede8ed392b70835953fb198e1", + "address": "1CKoVQEsAFg89AhfAxTxr3n1K1Tfs4cQUi" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KzfiiTkg8D1APpaeeZ7NrPXrXbhYXXyJg1c19zKak6Hq3Ah1CBK5", + "public": + "04a463b5e6ef1dc17674a677a58ec35055384027a2277ba4c48a5d53797e407535516b7df777b07136e65a0e4b82f2206f1d9d528b483a4fd893c2310fc37d1e38", + "address": "1LPrTfaHGhjxiAeVB4W26phbEcTEVdLP86" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L1dNCDVHtvE7XCqUfXSivK1SDgrcCDduyTe7vsssr3bHuQ3qH5vn", + "public": + "04dd9b51a9e9b01ae223fd8d06cefe20d0b733dbb556a6c5403e1e695ded8eda585cf08ac287f72cd27e029327986a1466a7a5574afc99d8e260a724ffe4aafbfd", + "address": "1P15wGtSSGhVQGVYi7TpYSKdNi8vfSRM9G" + }, + { + "change_index": 0, + "address_index": 4, + "private": "KyHpqUxmwQpdWvnGR4JfbKDM7bqP5vHArcMC6uFaKDP1FPudvDzL", + "public": + "04a04e0d80fcf59c4f762c50207555336d4be27ba20c92ae6c8b8d046be06a760c7de405bc7022f904d33dde9c144f8d39b42c6a359d015a094b1af9935d53d930", + "address": "1CHidWgdSVRXbURoeQrggVbpepHuTKcb3c" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KxEAbL2viNtYrNV4cK6jxKb3uY5XN8FPaUf5XDjPv8A2Gnkmp6nj", + "public": + "04a83fe415c7147651a144aa2ab1a261c4bf74b3d37bfbad98915fe8a45ccabe4f608847d1c05413148e291e4b80f17c8aab37e276334fe2686ddb44ff7bc167d3", + "address": "1G4K5zDE2xMf1A7oCe7VqhiZDK2pGcGAns" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L118E9tASUhhWkkv1WWCWeLVNCPrN6LijAHEywa5TqPMphRdQZCP", + "public": + "04de5c666e27163aa705c3d6bf9e74381c921b1faad31b5dbbb8c8cfd72f9c5a9095ce5ebfe2d7346223db0ef7a74894cb5e02e386b44f9e6a35a4b1da41889ff7", + "address": "1KWsjtK82F5Q6KW794HZm2b6o7e4kb6dpf" + }, + { + "change_index": 1, + "address_index": 2, + "private": "Kxa7h4EutK9VijarRseAWenbLc8rxaDruGtD7ZjciLsBgpwdfdrE", + "public": + "04ef7a937aeb0ef8eb51fecd1a0b5d8c9cf1d70cc3c1b110ab547e21454c5a92e4647b624be1aa8349752f790fc17008bc1762b912bfcdaccc28363d1d387fc02f", + "address": "17ryGAX72tK3Bf6m6pQCaAPNody27P2w17" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L39dTByabdAobmmHkEZbnt2dUb59CwiHXTpzM8kdfZV6b9ryQ7AA", + "public": + "0403a21df574197e417ee0000827449298ae03bfa2a70ee9d1a329333d4bb7d685f0c0247aaff9c40714aa521c68c3a1ac9d6bd4480b7379bdd951f6a352812128", + "address": "1EK3F2Yej3L8zGYpvhGMXvNWeveYQWagRE" + }, + { + "change_index": 1, + "address_index": 4, + "private": "KyJRyxrWg57N8UwvHS956ZqNtV42RHYn2k4gYsK9CVErBqkod3Rb", + "public": + "04269fcc432fb652583494d7d1003141505232e744c9246a980ff6945b11f4ed8b3a744050248ecb8da8721fd18fbd3047e495d08274e6d3f87b5611fc6f98e04a", + "address": "1M6piKy1zCrn4MDUUXxQjaGBYhZcVruxzb" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L5dL6HBJ71MPXYTyk7XruicZuDpKiHX3Uzagvk1tkfiXazZNy2uU", + "public": + "042dc7d99a530ca2d9793c3e0b7dec9da2e667b8d47bc198c537f1e5cf35ecfe2aa9c88df6bee9420f6467c1e74c6e1c9ff05c8cc14eec6607db753731c18118ef", + "address": "1EjnjbafvRmMzRdUqWf6iszRPh11YdACQS" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L2ajmvckSjS97VQXncmTKcmKENppz7p3vN5FMKcbC8czndHyCHbB", + "public": + "04dbd10303d3899592cfba662e94724cccbb1ca53123fbe7537d4d4e1d05792c128a5fa710cb51292555a12349927489567f42ff22af33a4b28692bd87b508d119", + "address": "19C6c2Eye545D3jd2ahG8Ani3zVbEKbWby" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KyhCixL8qb9NxVbFiPS2GbzZf4cjcr9ymmEDBY4dLATmU4ZbAn5n", + "public": + "04977262d31f976c209a4712a85311eb73f780249260532298f3e1a55d47a8279496067293f71efced64ab6fa3382745e6a33ef1d04d1be8856b78976e03a6345c", + "address": "19Q2h9ACGWThCxpNm2HQFkQCteEvDaEemS" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KwyXvJmPd2VRVgBpEF7ozEpYvXANbYjXjMnVXRvXt4NaS9wNnqS3", + "public": + "044d3f5653f87fe3020188830487b93c4fde8cd6eb7a9e969213006e4221629d2830daf2f52a7f2c91019ec6f4cfc846d8f35c50b669fe8a1438e668d07a92d9ab", + "address": "1A4zWnB3PC31S2QcXwMYz9ZwnzeGex2yT8" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L4xxvwjAn6DJQsgc6fs3AutnRU8VGqt2thkWSuRB3f2DmP98L6Wf", + "public": + "04c667236fa7cdf8f580c61c7a619d025e9fb793544fd02f00e996afae585c23e5fe8086f093ace66b11fee53143a3da2c0c137d7312c5534d4f6fbfb9bef5670e", + "address": "13UWaSwGURVBKJumzSpyFVaVZiB31twtSw" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L13meMvuEvJJjH9T2NR6VFRAKKAdm4xdfCUR3sXRL95XWNFwAqvL", + "public": + "042787d9ab38a2dffdd3caa033816d762531cc11fba2060edbb2f0a3970d9fce335fd0a2bd374831fb8fecf37e502411dadeb56a1408d318ae7c82172ff4ef6920", + "address": "1K8hmW3haGoSAF6mPCe52LPKgi4tSHF93J" + }, + { + "change_index": 3, + "address_index": 1, + "private": "Ky9PsdE2h17ApuyDbFmaBK8nSo15CQMt7adNyk8cbK2XUCVUycxQ", + "public": + "04fc43c129f770411a4548389484c3db4647ef654624f936abb73d3f9c0e993c3d7c5f6deef3b9926c090a8d72a127238ab7b472f10942b04be7aa898d6f01c8d7", + "address": "1HGx84nbXWaPCNZ5zLL7fDkCenD4sxH5Wq" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L4qwgdTqpRz1VijzvbqiW9WkcsUruwqgDvjRmMj62UxGtwRcYNN8", + "public": + "045396ca2724a74ff4be6c1b42e52c39e7b134e4a17464e481cb3f514e636d99ec6ef44b61d4592ef48a1178c1320653b8f27a8c3dc56119dbe1d6a8b355958689", + "address": "13tq7RE65XzZderpa9S987EK2n5uHDuP3c" + }, + { + "change_index": 3, + "address_index": 3, + "private": "KydhK2SpdRm7yKXsG6vzv3dg1hGfrtXXoQdWuFGVpK8yFDWss6c8", + "public": + "040cb5d2b634a67dc107628c1ac3f08ef1ffc1c3cbfebdfb3224077a8b1fb6e6abeaf7d3b423b5e53ded41368167ea2fdb6749103da753a95be77e098f1c25dccc", + "address": "1L4k2rNYkgndnhuZL4UTwXfDTZtAB6ZHF4" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KzhiGmSJuNNRX6kYxLNEd2cUPNVZzoF4zsU2RGBtfnUDESRHnzqZ", + "public": + "048b9a6cf516fcad2b9f1b6643e65e96d23f805e2258238e2e723747e482b02ba5feb02b7228bcbdd95d58a68c53adea94949c6d91d76bd73df92764419275a078", + "address": "1AoH3baeEcBovLjxcoQKPAZGcmGZDg7CTk" + }, + { + "change_index": 4, + "address_index": 0, + "private": "Kx1UnUigNKf9dvHsnFdAtzd7hAkjpcLZcRa44z2Knb15QARBbNKk", + "public": + "044af2500df6f337a12b076bab15ceb0b0c4803d5403da4afb3ee52c462975dffe18788ee8ff86e9f0347364f6e1e6fdb15e3b2e2bf9baa454141ab973d71c8560", + "address": "1PXffJHNRAzcUy33FYGveWy46ib2SqoJ4e" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L5TPdfZUAhfxY1dY5idEPmrJ2kgCWBfh9N5Y9xbzjvvK1JWfQ8V3", + "public": + "042797bca56b906cabfd09031edde5e448584ba56963a1cbdc8497d7dbc9964a28aea42544b3e8adb511c40b174092edceb7f63b1120a68260b41298c32444f39d", + "address": "1D47Ko1pPgjSVit1SDG4P6WwB4UkFLXfzy" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KxcFtqDhzT3WDAVBesaNuwX9treCSWVQa9z2CQgHzvXmnqNhaPNQ", + "public": + "04fb54689f078f5056317a76d648ca13950e94ff6cd9f1caccf33f01d88c8fda4520134100c9d79f6b0b537354b05a2032b22174864855e1157df815f090225048", + "address": "1F4UR5AiDFLfMKWWQhFMTVvB8yJoQ2Kj9H" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L248B64oSwqQ7FDwk5ynado8SwRMWdJieEPm6BwWYmFbrYXtquyw", + "public": + "04949895739243f628645cdeea74708f6a73d0c9666d837adba9f11eb33c747cd440c4da0177bf687f9be2f132577a9463da7b3986a60d99c1b6c07a4d86b1828c", + "address": "1NHN3kzi9BW5WdcSxxLsAepyTjiSw1BxTv" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L27MxoiTUrnPMVxrVdKE5A8MpyH8pkL8UMqBTouJ62TwgHaTmimg", + "public": + "049873598dbcfbbad3a3c80c2a104d417930c684a81e5288304831e93677da5dd22b992383c1a288464410b3117e2159a27f06dc3635cf7fb7cf97a75c28bd247c", + "address": "1CdQsNzFFeh1FL7LQqn3crE1dSXp4ZJ7jH" + } + ] + }, + { + "seed": + "4e0fac596365829e5d3caa72cb0a4b939f19d6a05a776d00d3417938f58df0afeea364c9affeac1a4f02f40dcf626dab8df9e35d1406b046c61a4d0410108fae", + "private": "L3awQHhRRHD5bBPqrruhRtppM7MTF4FEYCE69ynM2Lhhyx4RT6CM", + "public": + "042426ec5fec9bf2b5f9a4243a12cb02da9060d75176391966caae5cc9b39d307e646ce05df247033694c7c585694131ba3673a24e1b2fa251a84bb606385d255b", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4qetRpPtJ8YSHWXjfJFGbfUxQiHpuz6MZ9TmTk81UFA951MQLmB", + "public": + "04c88a9e3c1ee76004756f29b0bde65d7738d360c3c54f970f3e61b5da7450b2ca6551e4a547881057b814e1098f7bad2e413397831464fa5d36bea1885e121305", + "address": "1Nco8bQuEP8pRJhxSMkWegnCwzXKz28xLr" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L2Symta7TY4RTTtaPs3aPqjq3qR1ymVFFpRaztxX7sYjQnru5c2d", + "public": + "04f1d48bad06de25de9d1d7661a57683f70840563381d7178ed2976c20f2d484bb13ee116ce93e91e0b2bed43785fe120705370618dae8c336e3863219a0e79987", + "address": "1JRwF2d9KSKpyPFivNttXuCmg8pEQFuHyS" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KzZeFpKjZc1pPDexQ4VBnuBGzfQHJEdenJ1pbVh6K8PgEh4qJQ3g", + "public": + "04e8aaa5a78267e521b0fa2fa73cc3e5e144d1b2bd598d5484d8e7e21637a79054d91a24010c910236552813e4f9e8258e9991a4faded0acc610b2645b20e119a8", + "address": "18pjoywDcvYhHGiTR83mFowSyYHFsuVMfp" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L3GJzTT4zQMD99J2DS8PwrxydBxZXMEQ98wMxRrBPseQiheQT8v5", + "public": + "04b9cb090c17701ad0300ac88e48a7f8b4a5d7077c186136e15a8a1153e7ae1d9a05625ba5688420940079e835ba4e09d88c9bd42df321607bebffbf58c589ebee", + "address": "1CmhiiWz44XViQBtXcucg6SUWcFEq2z1tU" + }, + { + "change_index": 0, + "address_index": 4, + "private": "Kwq1G8SRNwQrGM6y9kdQmc1w9RWAmtdiupHVm41HY2XXbdahJAYB", + "public": + "04f409bdfed02eb77c478b5b53e230b2ba1e8797d29fa3b1a3cefa99d25b146c02a7b707348df039b56b5d40c27e79b6336e6da74d08f1f747e3234ccf955d68a6", + "address": "1CFnFgHZk7SFg7SDt6P6ANXw4yEbgkrgny" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KwXbVEndZnbfrGTYT14vbU32L1GKNPxWm9CR4T8H1YkUMPuwvgje", + "public": + "044f96cff1f475b9c1fce8c8a6f739d9199e836477e173c8b6c20f0c8744a4a81449134928f6158e5f1eeae952395a112c6fdca59a9f4b89cbbc10354bb89e70df", + "address": "157MbspRCaq59U9cMA5BrA2z38VNU4bRfp" + }, + { + "change_index": 1, + "address_index": 1, + "private": "KyqxJg27mmNjTkpiiKSrwksQmc8an2rL4Y6kmRJxPkAQhb7y3jT3", + "public": + "04808271d0f18a6bc4a4eaee72eaa4c75151f33adc69ddb77a9623310e5a7736c864a6a43f23c14eb7340965d14d88f7dfede919d1d4b87743f9df0acd9c64a2b4", + "address": "1iZZvxcSU2YJUDas77i6tiBpYKoMn8vVR" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KyARmCkeB3GzvwjY5ADRD6rYP9rigBvrUiuGJUJBM5yemtPkjwdc", + "public": + "0425dfeae837389105da3af97329d096be993cb418d4b87fb7e87a5011698644828ff30b1ba071ebc66d19ecca41c8d8c581fc97c1841f1992e311edfa27f9f319", + "address": "1CKs2UN8uvNnMuk3nqTGDcAEByVZe8Soxh" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KyEvievaCPzoTGVD5HVuF16CwJG3uSwncfbYyB6CvXHhLPw8rKKQ", + "public": + "0449b0bc96ee976f2263bac4fe707314a3f8e89786344a9bf62932016d807418878f6a44069b650d8e8304f008123cba51b1bffae95ac95a5b1754427434c5f2bf", + "address": "18s1LLJTpZ5ho8MgTwTw8T1ZZFkVEoVhmL" + }, + { + "change_index": 1, + "address_index": 4, + "private": "KwMiEf5cRtNfgB7b4rbgwpQFwm7cKricAcJErb5WVBYpZwpwfrQ3", + "public": + "0409808c53db10f6076f9a7c795abe3dc2a23715595bf5f7ab93e361230d69e87e541e29500033f2f0f7ac5a1ec8a8568233e5a06e2f5d747acc14e3173d89bbc0", + "address": "16uakTdohX1Uqb2m1umP6tZSqHzENF8uq4" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L5gZy1yxmXiYnvFAiK1A2jejc7tZEo2cfyJohwwCbTY5FTdWECKT", + "public": + "04a1575de26da9eb02ec1caad5cabecf85df1059fae969b50d9967738bd703ebfc4787d98e69bcd7d63fd5b6f2c734c151562d578942e369da5ed95255afe6b4d2", + "address": "146ELzHvBuAUqqg73drwrvzk6kCk31DAaU" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L5CPAmffkW2MnBViV5bctRVWPbpjjDgNmuHPfdRkaX6YsHQTU2fB", + "public": + "0478a2ef43022ec4964afe21b373af5993cfb35b135cac9e28e001b513136bd1f50a4ff38e2830aa4e3e5f74d1baf7c69b26b7b7df493fe3f8f4ca6674990e0638", + "address": "15bz77k8LqkJZaHHts2PqMYircWCwUJaUY" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KyECbcRirpXzS7nyBa16Dedxx5yejh4MUaTiRBiVdH6boYmfRvfo", + "public": + "049836456b06fedade2fe1831cb465cb0b6dd64de47838a89234b48634a055d1c63ea2521e4f8fca18c3abb1b245551d975695969820ad58f30e57a3d5cfe74761", + "address": "1LpXCzv4qna3Gvb4oLoPqD8ZoSu2DiGQGG" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L4WmMSuN5XTmXpLDBJ3Yuajx5LkepseUcZ7bsMU25ZQM3w6uLYE4", + "public": + "041b9232973d04f082f6973df5a977dd914a4d8cef0eebf0086fe0b3bab15c7fb766090da023ae1dfb5e12630d7bb6f651419584865d43c3601a620fcd8f757784", + "address": "1742sw44f73xWLdJH5VaZuEJfvxJcHAwZg" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L4YL9eFGrFj36yh4gKWywMm9JS83mCygFJzhZRDGZs96AYnoJ8Qu", + "public": + "044b5a3ccd9d9bea80009e2768bd8ef952bcafa50d2e70b3f0e9545527cb08a833d537393410e1d123eb245a5200e58ebe15cc16f80077a72c487c437b3a5f268e", + "address": "18waC1W8zQJMW9udW51Kjuw5ni83z6sdD6" + }, + { + "change_index": 3, + "address_index": 0, + "private": "KwfDaheFUGSLDKU1EwwDYPwpzQb5e4HaQRFZ711cPtRUBagzS9zB", + "public": + "04fa5b7fcc4cf95c4a4d4417ab451d2a94f42da73783404360d23dd655a7777d27ec679bf67b2b19c3fdcbb18708208b53d655c041032df890f25a2b876ab160da", + "address": "1QBfvjtHeobnfAWAhqLxWJoBo5Ha3pc4dj" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L3rgEtFKcPqMKwms2JBhRkhfcLGrfKn4cGnR9S6U9KPMeMy9FLrk", + "public": + "0422c6566deba0e8d7219f3d19df897f4464edcebb2f956aa8ebbe2a2920a0fcfd2778416ff4815cd7eed7341e2e4c545bc678a704d0a0f578af0174ee8861c880", + "address": "17xfFRNbHDKVDzwVn15ojrFva2NPvffh6P" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L5W82kbaMcAbWQpcnXDrD8ucgf9j7rgESbEfn7K8TsZYf2mHT8dg", + "public": + "0407761b95af13b3e8be1127eebe3244a7db158a6fbf9247bfbefe016397e68fa3acd93d3a48eac6da6c279a43ddf9c5788b7bba5a037fa9763d2ca0e305883c9e", + "address": "1JianqPgVCGyDU7KdJZu2Ptsqyafb87UvR" + }, + { + "change_index": 3, + "address_index": 3, + "private": "KymRsGAZBKCeFEJs9qTVFQM9YFHM6kTJokXcpVUn2gyzL64bszRB", + "public": + "04cb293b7bbd78c888337ed5172e9daf2e83ba350eb359c53720ca3c867d42ed258348306171514576f21d07493c65901c462fae6893c65108a8bc9034c7ffe0cf", + "address": "1AuEycJBpywF7wFANUcooZumaYaUsq3f3M" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KzHdKzuvyvQtGJXB83C3FjKJjkYyEMCRxsvocjjZosP4oEXxjTjF", + "public": + "040b46e3aa49de0062c2b3a27da9c5e96bcd28008f9ae25c28807f274cb1aaeea51e22cd0e8c2c168945fc9182987bbf62fe4ca2ebe928f551344b31e7c0576509", + "address": "18Bm93uBH7MHmUbQT4QUCtULE5DNuo1Gbg" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KzaTovzurGYx4fQLyaGSTjs8ARKVJrd14arneUpoBFpju2aATHLT", + "public": + "0434531e18a3eabd89ee69a1096cba85959621097fc2806ac136780dd33b1eca6df7f2f94c6dbe0da599234f614cea3a8e59621efc14ab7cf304da7d7c876ed2ef", + "address": "1CRHeCYypyrnro1YqCfUybAuMYXE8nq3Mz" + }, + { + "change_index": 4, + "address_index": 1, + "private": "KxEUoARP2u22XWNh9iLdNxjyQcxmQJb8JNjcUgznxAhvpHdJfozV", + "public": + "04fe5c99ed908844115c75d2b6d8d94df6d0d10774dcfa266cc29787ac8326fb77476477e0326f1c9733825db64648b01927151e71269c541f537c5c651b8eec29", + "address": "1KYoT9hFdbki8JwYZkHYvn7B2LUmZHW5Ts" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KyfEvYxNmqYCfEDtBE8YDVu28zy73waVDXfLjwrpQa6ux56BfkJk", + "public": + "04f9f8d76ed5be81fcbb5f04e639643592056b360580cee18d73ab0e677a834065a8d762c51fcd2ba0f354d67b5eb4210eb60ba34a3f574f2bf7f11314cbda195c", + "address": "1ApwV3ka6jhrygiNxDKArn4Kt6uiH8jGr1" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KyG8vuWWzJHcxn2X1f239XbJMQyYRE35nk8Ar2ngYhcGctuq3VwT", + "public": + "04aadc56e17d0cb34d255fe07b64ac1cb546fcf903b8c6c533be1b5f70f745ff9961ca2c1436cf8f0f21da5ac4bc655905422aa0591afd1025cca1d183271db340", + "address": "1JMDguMEEQPmRVU8TreW4tm61BXNTQbqd4" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L2eLgkaZKqixWPZUK3ujgnkpaNXQbcn2tKZKPrc7jAS6sNBNgxhE", + "public": + "043c8c24878348466081646fef61399cc34f0ec873a79a92df005170a79414f332162a16daeab5a6a085c2ae7dadbc8a666807b97eb8b8a58261a8570cdb18a4dd", + "address": "1MzvgBLUjNC3RQqucwNKPBn7tM4Zax9Nt6" + } + ] + }, + { + "seed": + "3e41bb0f5c9da93abefd97867f945a356f28d5f8b0880f6090657259ef6bea3e3eed3acf05f477299183e380be090df36974229bf163da05e82e1ee809633d23", + "private": "KxuyHZCVQsCtxbGQS5irApwYyeDyZYrP8oDyHdBZZuPz9yDtRiEC", + "public": + "04de41fd13da6945af66110ebd3e7f86627367c55f6b093eed3974771dd74a75d78d73675e46897b224093c489d28af71b9732a15b39b51d78b0cf421931e6cc07", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L5Jz6YaLcf72RTavjPhTugH8NPj3kN67xRSfBvuppyBP97TVYFdh", + "public": + "047f6ca0a03021bbd6117434087a9bf604b39d2169e456b2a19dbb5ec2e50f1caad748e601fc6d3c30a5bf702929029d82dec9d36052d55bcd845ad772f7bdebf5", + "address": "18hhH5yK9XPQ9zUgH7vSDDVrxbCVDXaYps" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L2QPNxu7Z6T8bKzXQqiGARHJLdXT7Gv1Rjf95pYzuzMAQgL7WJi4", + "public": + "04a79ef6b355ac87174dcb7ecea0a756cecc24c605854509fbab2659f7003a6a65b897859d358fb80b3df82124ac9a99b796a1de845886a7f8714bc0457ae88352", + "address": "1MHYwS9esVYxZ9fTcwcY8yamtJUhTGQXpV" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L5JrQzqMJG7XVg3uNtv6w77wMoB3PoRFJUmGny544u6CaNer2aaV", + "public": + "04ec6882a2324667199db22a17bb298ee2f63d4364100b9fa51467dee23211f77715143bda3df75cc3fe6effb90d2e9056ad02a5abccbef78d18ec5cae25091e06", + "address": "18tQNZA4hAFvxP1pEPSZhCWuaxGeLHErEx" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L5LmzH2BtpWZHWUkfGPQioTWQczb4fnTkXpP2oBKRae22hkAdssE", + "public": + "0441fe2a0f8cfea6201d812d8b1f2add8352205d30a390b6bc3eaf5ff165def49c1ae5690773284f8fa50045692c8447e182f40dab60c24b0ebabd537f1e941098", + "address": "189HdEZHKSctn92b2uhW79QbgmKzJFkGbh" + }, + { + "change_index": 0, + "address_index": 4, + "private": "KyB9DASPKvtCAfizTHXukyZHkjToyVeY6dcERtQHJWnEeQ1j3CTG", + "public": + "0433d86a0930de291dbca96203339f5b809e50cd89c878cb86240c9b36f6541d3d498d90328a86c9cb3f9555a30d7a99bf87e20a4802616941d0cff47e1316e396", + "address": "1GBbdrQtRGjoK1yyqM6dZtapbdSBcXAtCv" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L4kDQQoDankzT8zvL7ePdcsUZStCHhJpB3iQLo2BSkdnYNCLvARc", + "public": + "04e441e2e6e61e6e9c00c5cc4d8d634255b39a7a1bd15948c3ed6b1b8cb392c70cb4ccd5a5dcd3654f2b525f4d0a29b2d102bcc7f46a9916d9c99b65afae532ae9", + "address": "1MZgCUyFKknTRN1TmiE8rTtpcpMcbsei6v" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L3oqSo1b3DSABEZ5a2jn9ckiXis6TmojYHhiBfYaTfjrwgMHXeqA", + "public": + "04921a797ee763b939ed1a45695302590a1a99f817943f9759ec99fd227d56d9a0f61ea2a4d6955ea82dc84ad683bfc7db928a856e2f58bdd4f7b4fddcdb8bdea5", + "address": "16aGNyNMQnA3ZX3fftFX6Drc5dsHL6aGtd" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KymH9quf51naKdmbdudv1Jd3yQWUMs2XWQv8Y8DsXCLntTTtxeEw", + "public": + "0425f5cb9207d57b27f1cd4a885d7455440ef5451564d4590a2648f6cc5635b32c13232e3c140b90897ae455a9e08fa75b35d09f266997f2d5ec873b3c609c75f1", + "address": "1PNPz8Fx4kDuKgSGVd4ePEgmWzFXM1UHbD" + }, + { + "change_index": 1, + "address_index": 3, + "private": "Kz82AYZP6fsjaTFBkk9qbo8CZXqskMDsFdJr9Mqkx6Bng63Q8u39", + "public": + "04d5b9b6a8458cbede816c50d92d2524b2c19e871b411bda79987021d191b97dba301db5e280c3f42456ffb8655903648d2312fd5df7fb2bce25297549a1d172cc", + "address": "1Q9rwssZv4zohP7L7psUHHFFJiDfLL82Lf" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L2mEdYuPoegZCxfcWVzYR5Y1WF2d2gsd3dXYi8kyvWkGeyKNQ8hX", + "public": + "04996757d37cc5a46dab6b1a65e4c20361ffb4c4990ec2b82426a4665cef26af526374828345359535ad8cd454f5536eac37dc7ef51027e091ccb84dd05d1cff15", + "address": "17N8e5CsocQkmDCzmgt4bMiDpqDNergMvG" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KyaXiyFpgWaExd8HSjzzjJ5Xhpq3QBbx2LxDUVsA1g2vPR2TeWSH", + "public": + "04fa3150c348b9e14de3ba14c1255f0ba14732ec9da7fe9b7b444a6024c515e9c3caf43c6c965d8c0f790089c6a9766354789f427aadfafd275a96f5dc1a1fa748", + "address": "17f7ryFu4bdTbjey5sDWGdoZDczpXtoGyG" + }, + { + "change_index": 2, + "address_index": 1, + "private": "Ky1JGxaykpNJ6er2QYeQuxLrajLxthAjiEX1ezK7iTNZAezuhNis", + "public": + "04217986a2256f9e567eb96443dba2c9aa8a339faa30c46b596fc1b4c42d354985e7712039f1a9ef3a8ead91e4c7cfc2b682d5209cc9ff97acf181ace5461c0681", + "address": "12ZhptvMbENgNALRjyZjALJFWnSyN2zPYK" + }, + { + "change_index": 2, + "address_index": 2, + "private": "L1NTkbLheYcoCzzoRyccyEPn94f9QFqWC2wVkz8ozNPcfSUhZdXD", + "public": + "04273862778a8299a1611204541a20db73da20c5435185edd9201990778f410f163254fc4e5075cb7a7aa68722bad50449f2eb4c261f98dd86e099645c7f0fb71e", + "address": "1DpAeeSs7CkhfeEv9SoCGh5FBVNfrWcPQv" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L4PgxmVXEC5LgAymbod89gwdDS5XYZepsZ1AD9FAQKvZvUnPiKEb", + "public": + "04b2fe32c8bfcaa6586740f89c2262ee6b97f64cbbe55b0c3d4f1186cf1186f51278b7b61a2a6c5bdd1c10139fd0aa07012294bb11fe9f4bfdf4fa6e57a26b2c7e", + "address": "14RaMovgLsV99PJNpWzpjZVZRkhWBEL7YA" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L4tUSyeCyzKJK8pdNU3eak6QBpZB1jJezMqsUUhzqf7ajwKnMDgN", + "public": + "04ccbf6fb01a49bc460e9c986494c1c8d936be9b4fccb4ba6c492a40e5747da9833f31d436f825855c8082f4a2f12a02c277b4e1af746c63a4ad608188a712a34d", + "address": "16aJjyDGMTvDpvcnqi2KAzXpJNAYrgEo1o" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L3F1FJgckD9yp86EPobd9MySRMHFG72KRAeTeic92D6inwQUqbvA", + "public": + "0427a37034190da6a2c7c432698ad57ef52af0e09fe53c19a1b250615287fd71bb0d1c03f43cf1d1a16dd5f566835c9586abe62e3fcbfaa7432cbb7dbbf614f747", + "address": "18JCshX5Y6eEkvZjBXaeU5ve1fmsXe2sv6" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KxkVe1ygJAaH23k9WovBsP8amAcXZpaG83Wkyo4HdgNLiDMzjxvZ", + "public": + "04d6b785156e95016a4a430e26eec72151885c8a7756cb8a67572bd0f37b77cdd5abac1ec0face9e690e92a68d4456193da0d3e595242d1246976dfa4214a51541", + "address": "1HCMP8PY5iEa93erdqSKRKhHeRrjC3A3Lm" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L4jkAGPxheW1QMrfxTFmGhmLv3R2PMV6AvMFkrFTjxsbFuDsDJtN", + "public": + "04eed81dd9edbdbc95d8f5dccd7440b7b931d2c7d9e7e705a399cd9c497eba050e215bf334dfddb29137eddde5e634c669340952316b482839b3be66fb3be55a01", + "address": "1LYKorWgA1jM88fuLfT2FRJzwh3Vp7mBGH" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L2Kwiwy3tNsSnEjhKyYTkNVugFuVUKAjJ3XNCzerL3VZYh7unAHw", + "public": + "0485d5e93f4a855562d3473f51c67c0ba788e3ed985f988919fb7c37e4d2383a992fcf2168d3a34d3a410575edca26fbe2d3b3bafd8f3f21b62449fdd3328d4669", + "address": "1Pm7nX4qvWFtG6KBKu6ebe431RMtko9UmR" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KwuLmY8sa924fm3cqvKM4wQRbK7wXN3JYPh32WV2VPsbqrspSXXT", + "public": + "04541b3b7d79c4b172598f9ea61d27d717034a539d3c702c25718ba753ac13a994c1885c7c4dab8b23b788cbf37dd7191e49f9e856330eca5128114239306d0213", + "address": "1AENoMcdtQjZ1ehyTNRQzYGVu7LcS7ugAW" + }, + { + "change_index": 4, + "address_index": 0, + "private": "KykiEGXLehd3VUMHH38Hf2xC8J73BJDKLQNKLwGU5Qq4JGMzzmK6", + "public": + "048278349a98d2df5feefa1b45944f69852367a35fa1035e9c257850ce513abb8682a4f2c1f83fd7aa60d19aa9609fcac1cd5c2896d2b36468926acc38364e4cc5", + "address": "1PRFgyaf6PA2xLX5Eg7XGVvWLrSdvnZhfb" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L2Q5wLjnTHwn3Q1pSnMtqxKajgwPfzMoWG96RQxD4cL4uTr1dLoY", + "public": + "04acd681e664d10ee7df74568e4423ab53476c7f350687e903c1956a99fe0769fed32b8d267f9bb9c325facc14aa2c59ce1bf150286d073df35a80422c15a10643", + "address": "16TRpbB4jqTZtSDewaMhYS3XbXEgPcEFsc" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KyEw1rvv3LkMCpKXRSikVkHcFq9XyWD9WmxBM5TyGgoA2cSkW4zH", + "public": + "0428b6b64f28e5b784a15db11b093b183985ec603d00119439e3aa3899abe7ded5d0669bfc23a73248e5a02acfea699c5d936b9c84790c8130555a8105016777ee", + "address": "17qsLqurwymJm3CdVGc62VG3KuBz7pc9fZ" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L4Kpfqd8W93uryyR7FW7nVr66Ao3HCXwRZEw34kwJTQe72NmWfBZ", + "public": + "04ba6a2857c8b27345c77115d5703fa89fbca111d84e2428834057e1cf1d2a2af39799d44c41078d6c58ad157470090e875f52e922c7f00f281fae0487a05e9750", + "address": "1N3bdcs2Ea7xEZ4M4oS95Aivr6fFVCtyiw" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KwGsXosib8Be2xhNeFv6bki6hkQxUamV2SyZZExRcLcg7b39dVHX", + "public": + "04edbf1f85a891e68b199c9c80a52ee3312a96995fcf049ca00a1ce31f36c833406c670c61528202261c99b223a4375b45d10b1aac3456b8589596c03ad4f58125", + "address": "14YVYBzURESQBwGb9GmdHYjhz1CzLrhQkh" + } + ] + }, + { + "seed": + "df56aabe43dbd577b8d8604e8838d24c31b2bfe76b4a91a2793a3bf09b4a27fb1101b9adc24935557978a04ba5954670296d23b882b0de516fb7c702b2629817", + "private": "L2DGaqV1xGMdQXaeEWrZXWGZiKKL7hTtBaHWrDAj43ZvVTmZcgEx", + "public": + "040d110bacee9b001019b9e36f57d0ce53d237987844a2bc09415fc5e75be706fa3833427e28fd1987788943fbb1637bac8dba6e7ac954b4ca25df7f0af991aad2", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L26z8BdYRaNGjuBChFChjEY9qqfPsg6qkuxTE332DVXsvayteYgX", + "public": + "04f72d177dadbef3bfc4330bb917ef7702dca046a3fb409010ae4394225649e47e35412d1dc73e9a40248e5944bed76881d09cb782fa71ebf9f2a8f5a0b27345a0", + "address": "1MMsycXs3gw6y1ueb4VwgAFrs8zvt82VUS" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L4raqV8mU2YT1tC1Kf91uUz8ixdwUsfFCUt1ayZojhnGirHPXHdh", + "public": + "0439055e177446e3d5916837c0e0c1bee962e15aa48e3ef2a702198155f3d261548e3ff85aecb55a160d4f3d8f08045a6cf1b34dc4c514e9495cf861cac1d854b8", + "address": "1MfWU5q75jrXhLWSU545RrQ6KduPgM8kZc" + }, + { + "change_index": 0, + "address_index": 2, + "private": "KyypdL43sdmhrWWZBJ2vc2bHtaFJ118V8SbRvrBYXgLWsHqdSNx7", + "public": + "04a99afbbf2da530a5eb0a0d0bb6bc5be1dfc4bcddeac047b38ec7576952dde804b0accf17d72ba3ceb9c0123e10169e426f47f519dea6520db8201d4118c0f6a5", + "address": "12oQfDSgoouE1BPPF4Mhs9oUjb9GRysacF" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L1twZKL8B8LcDbcYEiXz6aN5intzf6SabmzQqNLBRAUXrP6t8mB9", + "public": + "04e64df859dcc590eb23e251b2e71ef98e960e44ba90c2ced9dc22a6bca17f158d1f3be345042829ebf8bee583b726fda79b5c7c37eab1b571eb479575d7c9f573", + "address": "141tMLQgj5XdQtko5M53CYzrrZSW32q8Ag" + }, + { + "change_index": 0, + "address_index": 4, + "private": "Kzr7oZjVJ77Pwm4NXaE5Btugd5WJryDLRg8TvMrXeHYGYdvsjMVh", + "public": + "045723ba30001aef01a6f4b36f4bda445d47c7c1139ca273488d5e85886f089fcd930d795dfe839bb873f785c113512ff91f9e7120b2955790308a3f5ce49c7de2", + "address": "1TN9hWPg9JYCigEudFsNs5tPhyprtw69d" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KyUQ63nkWDDWpBpWUmKfqvyrJ4bPHacxVLmbJnz69AiRBSagyYwL", + "public": + "046c4f07c108d79beb851434fb9f9f52ffb1b92f7f31cd483c3b89ec33fb50258fa0840678702d8d5112a5723c392a7b6ac55b7e6420f5d91d721733f9faf21dfa", + "address": "16dMfkw1MrYPb7U4uL3TUavtQvMJqJQQZ2" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L2hYwxMPDZV9gXKHKUPmouRa9pDYgtd9RE7t5Bc42mb53hyTws8h", + "public": + "047c69d2e66e49f663230527c5ae29c393e47423fbfe63c2e80dece68e530b4d7dc1f925ebfe1bae116c76f6c88871481ac0f9c05f9d6a529c98e1bd74e885141c", + "address": "19gjh1MpJhGoW9MvD4dntDHB2kaciipCvo" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L4FcBbMyk8izw7aEL1gBHi277hczjHSJiNA3PXp1YvnxLCS5QBCM", + "public": + "04be8792a8187879e159ea963e45e55b75d0aebd9aa062a0395fc51257762602ce984411c8c1dc19b52a1878fbcc94e342c6c41d61d77bde8a1dd5080221b6347f", + "address": "1D1KmSmkgPSFEgHFxntF7R9QfbXcuPyC2W" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KybJQX4ArRYjnkyoGTDv99g13FPSccTKG4jL7Tp38sYhLoLsWzfy", + "public": + "044d81def4876dabe9651bf8fda65a1439232876ff25a5515d7f23d84875e227ff19039e77cdb208a895d7fc696c83867f15d3046757a9b3d410982d8e9f490788", + "address": "15y6sPcVRWjJCmnYs1PAAH1Aw4sN5ASCu9" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L4FgrpiC1KvA9VJnqQnnTikGxHcYN3TobVYM8Asd9VNVJRtjbxLy", + "public": + "04c0e85b2839fadf34995750dbaf1982bb59e3ae1f0ba1fdd4c2a2ec27411d243f2da60e06be83e1d2760dae1e5be679a9f6edbd865b3f6e6d65fe3c1dc2b234d4", + "address": "1DF3x75M6MScB36AgKQn4whmqhjUWwPtb3" + }, + { + "change_index": 2, + "address_index": 0, + "private": "L3bfTorx6na2aGDeYypfFqh3BX38xnB9PC1avWzqY4XUjUPe1zRf", + "public": + "0428885fdb663bedced6b793e4b0c3526c3384d8b0f1775fbac7264996f1777013207d9dc62db564ab9cff729efbb4a34f05e97076a3526692f9df9e9f51840139", + "address": "1Rh2KVHPSR1gesrZpdRF8e816HWqr4iSV" + }, + { + "change_index": 2, + "address_index": 1, + "private": "KxgJcGhsEneHjhVovxePPVD95spHhfKhokE4zYtvCvB7vdVkY5wb", + "public": + "04a9ece6e629a3301ec42dec72a5275f8e257069627e6f39fd70c6b5310b6ca36d82ab8ca5ce1f0410b91c276c74d2ff767d4b462587fe27f78b6e443082e1ea61", + "address": "1FdD5n5cBH12XdP22XHAfJN8REj3HWbwNr" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KzuFEMxa7tkaSD84LfJCpPKxkRn6ZPoukM2DJT11FrTfPh4QN7AL", + "public": + "041b9fc88ececf2248bc4030529f6810d2de1fb1f29a70406a7ba39ac3e81f2c2b566bc5c110010fcc067592c26b9965ece40234dc426afdbf1f6210b0ce84cb21", + "address": "1TEKccLx8CthgDVNbG2KhPqoKYQvGZMJN" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L4ewtt7QmaPirQps59M22ZyTieVFwPJNJTgUZFqkfEyQF7VfY63B", + "public": + "04de86bcfd250ba86a39595e58d02d9bf446118562f093d6bdcb22d9aba6dbb51ee318d1a158318742355c22a5f94b3d3be36587297e50cb0210fd78441a97cf01", + "address": "15RG2ZXa54kHpabnFM2pA56oJ9LhtKXMVg" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L5P7bqxWgLXUDHZhC2N2zyRuJop9WodE7JJXTxiAVr3nXoRvZr2g", + "public": + "0417cb5af94f77814d58829ccebf8c8c61e483e6521f6c6e2969ebd158afc17637041770846338d53a4ddbc3c3258144ec0b49cf360f2591fd0263dfdc4a45eee3", + "address": "1J17wf1xeJciRSEaZCauCb2ycdyhxSXgKd" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L1X56xp1qvxcry4eWgb5xwjciH7yvSuL8jFNvGstPm7eqNNvQTXu", + "public": + "0438f415c0fc4b802e97c566589da16b8dd33634970627ddc9283990a957aa3e5fb3d95bf0b02c9cc886f55590489d109b67ed886e5b025119efb6fb3f03a7caa7", + "address": "13dViYGtbv3VwriK5wv5VeFL781VzXzSGY" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L2pgMWGw3kyJ3hkgsqACW7nd66C4Mos9WiWWP96SNbQnKEKxF9Ba", + "public": + "04d75624257474621ab64368e0295259177073bb3d8ed602588c0837d761d67bfd7015ae27b83f1fb0167d9d7fc0949d7e0e815b3d967bce0931818fd7a01f7e4c", + "address": "1Gaidqzr2zqzHTnpcFhiQ6ZjckfVvWJRbd" + }, + { + "change_index": 3, + "address_index": 2, + "private": "KygzdV8TjFPgxM6WV1bCWdTeuNHBD3rnuQ4oubGJeqVCzhTuvyH4", + "public": + "04b79542140581099b105801532de59c9275918a34be4c0aa1be8fa258a0a389a42337d7575a09bb67a09316102426738dd9dace08d742b6137dfe57f30f2a1fab", + "address": "17iYhGfWiATHjF64rqBAX8FKE54cW9Y6WM" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L4F4UMZP4QFfvYMy6j3ao5fssFHUbC2CsPpi6dQrquHgVG9GoxBU", + "public": + "04c45d1ae5549ae626cbe3bfd96d64349125cab98ef9160aad2fbd66b97376ced2175a23df7a869e6fbe18ce48847c2b20e695590d8ea6af04be9eb350d7918ccc", + "address": "1BADwtvX1USn3iqXkkaZzETtbV2Lq3B41W" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KznAGGXpEBwfe2AsFWkeTnCpM1mDU5wYXFdhTuBz8GZb7ezTkaPZ", + "public": + "04ae16857a6f350007520083c059c77ebda0f79d0f386185bd0991e1cdda6711ef2cbf62d8fee1ef67256f369719bdc6188407f74e9eed580e70b574255b9792cd", + "address": "15bspxCYay2xrgDMtALpkTJ7VrgiPwf6nK" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L3szNoGRJD6abHE4S2DxXvrazMUUFXwHFQm6YtU3PKdj4xqxhEF4", + "public": + "04f3d8ff4b347d58e9da9eef628eea9bc4e06801386bf99cc86cc007ec1717670b4fd552f4d7f6084cc28428e494a4bd1cd0787373e5ee806c7f4147bccf5f885d", + "address": "1ANtArZecrYnbxVGn7VpbCPHues7N4atiE" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L4it7FxpjvuJhv2F9bhEsrq9pzq5GmnsB5CNXAtvigUoSzNv1u4w", + "public": + "044b07524b09fc2e64e726bd98f2f99a2ea2d26a85832f3d2a3cd9ede09647724aa2b3d15474697cb2f112ad652f68bff86a5f6593ff577a02c1407f95dfc7f200", + "address": "17p1AcEiXwfHHTDZJ4XAnZzT1hLDLUbeLp" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L2ekPzcK298arEU4ANpei8D65MkbustyaoTHKWi2xSm2dGVpoai8", + "public": + "0448c45fc2549b07434e53784eb1eb9a8fa149f7d568a367c689b1ff3bca6671dcebbe9be8ef9d13932eb99cb0cf187e6c681e72429ba046402ffc4f6fcd09f6ea", + "address": "1AkuPvezbjEe7RKVL3TnHQURYobrtqiDtD" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L3TEid2ir9td9CrxkLCwAo7qcu3Giis8Y7xg7CYRY4EBfNBCDAzS", + "public": + "04d0a6acb5954999c18b30ab24aa903e419473d1feb9a81925abeb5af0aff0239d6939f704365609b6714fd37dc1f64982a309753b6a7e1b1ed8e129a9dc7bdf66", + "address": "1MdY7pumbmAbAbZ3mXTMEqMjg3y2EPgsjp" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L1qv7P4ztJvTNMEJUQLwCZJhkEPiCHFqT6L1v5oqjVkswKxscyHd", + "public": + "0420920d2fc0d8789f4b218077e383b00aa154c9b4a4d280428fe0143ce05938326000d462016cd0f0521c0ebedf19459c907f0fd28a07f3acfb1d5d7b5c9cde9e", + "address": "1MctRnZy5TqWfaurqSz7SwaiM51CMWr6mX" + } + ] + }, + { + "seed": + "2d98f170496c87abf3e24a5481c2f99a318757c82ba18099f15708cca34009c46beb90a2f1a73e2d8d32306876386a2b593082fc795b063ba78b39d84707f21f", + "private": "L1FK4hZbF77zwwxVsJKSY4u4sM4ByZQ3HXZkV9LrRQ86mTbJd1AE", + "public": + "049f8df4d56e998b4ed8909ee474f173a6064ca65ef29012d8b4be8fd224374cf7377a678f828f8574a2848a3218e7edb8fb6dfb9cde13faf74676759d874e2b90", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "KwQHJFj5WqU6HJCkvStPBCYWvpAkAvp5ZxKo35BDzcu1qymrA2QU", + "public": + "0419224621418ee320c0b6de50d7c8bdfbb4d9ba2306cf4b5c2ba69c58f1a6c69df8d7a8f6f5c2a86aeb9d3383f61ec37e3a01c938646f691c0e4d226ed9b44506", + "address": "17zjFceLekkZsLx4iXpW2EcipeWZQygmYg" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L23UGCgNKoHDXJ3SXHjkcfsMAVGCiFh2i6BnBqpdru92FDUzLGB8", + "public": + "049eac161e131b9a6d69eae07d21d53239c98760712f36ee31e2583536c518e93fee84cfe1eb1b1388662420238543b15b9fcb5fd5561e10d5d32da4c01bb52ee8", + "address": "1N3YJacR5CUNXvEVeZNaH7MztP1eBsA9nU" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L4f5SeC3aAMfgHUcibMsbQvbyWomKjEe649rEASLKG4yCQwcCgCu", + "public": + "04ac845d8bfc5d3356c7eba69284c545a5960c93faeb5371f3eacf5d5831605cc0fe12f76773ee7bd8dd7d45ad71182042cb8aa7c80dc858e4c0a1843db75dffa7", + "address": "19owD6a8LVRGfjsuX93Y6ffZq3HP1o3rSX" + }, + { + "change_index": 0, + "address_index": 3, + "private": "Kx7zcDTt8HSE25mXCt7SuMLXX1V63mKvyEUovQ6AfGZKRf8QsekG", + "public": + "041e144b425adbd9d1d269ed0bebb9ddf1935e4c5cb26ef1c518466ca249b639dd3e74c9d5eb4038e3dd0b69931fcd4982fe89ffa061e351fe140cd43069e36120", + "address": "1LNSux3KD4wZjNn1aBqVvyqJYEbo9nGd2J" + }, + { + "change_index": 0, + "address_index": 4, + "private": "Kypz2xXQWmRvrwURt3H6ETDs11FKiveZbqr3tekMAD9SLRLDo9Vq", + "public": + "04d2b9ff2b24ed34ea4b01abe4da653973415dca33108224f2960d2511303c559c482b307572067cc0c24e0a471469852409548ab8274c47b65c6c01b1753d5829", + "address": "1Mw5y8rjqBN7wVF4HDyhJ2rgjPtxv8p1gs" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L2pfFszHxCsezfiJ4QBNu6uQjVb5RqWsJQ3HcPVWkei4GPVUL5Wo", + "public": + "04f01fd78d5af1d79e5163d48c0422f72d9da7a526a8d18cb4f21945009eea2340d23b8e3a400744ec0bdd419670fbf57b1f01b04687d39926567340386daf8248", + "address": "1ASv2dpYwX4JXxGKpZcoWk7G9VYPu1MCMr" + }, + { + "change_index": 1, + "address_index": 1, + "private": "KwUXUKELkTQzxRDRcU2Hdh6b6ew1whz9D36bVYRWC2H3kzg85h4J", + "public": + "0481a82f304045996a99369a611631ec1bdd1afd9f2b6a3bcdf12771599066fe3e5d2649e18f69b8e67b165aa8e59aaf9dc43e173da9d8497aa06dd3a73342c077", + "address": "1BSCxKkLFnq5tKtN22kZ7WAvHpaBvwY9Cg" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L2SGcguG4km5jZnLJS8An7gGxZA5KQyHSLfZscA5g5UYS4mQGUDn", + "public": + "04716ed4ba3b529b79a14521d2f25125d6fbf5bc9c44962abeb981c864f908523922d6704f972da82b89c45a8778671812a94dc557c083f0cfb683afab271a4ad8", + "address": "12KbVqvbZQAfFDCcyuAASa7oVDTnJbDU9r" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L1qTHsWtsxFhM7qgZ2H4qFVCvYmu91q1sBFsSxEx38xqEFiDPc6e", + "public": + "04aaeedb33fe6be6a2139d07ea2813748d634b069b04e6df26b89a22460c03ece7b21eea839530ceb687b45ef96bba347b5bf8e99e0e405494c9e1140786663e2e", + "address": "1Bra3idnXTVZo6r7SrTSA6TK7F8pWoi65p" + }, + { + "change_index": 1, + "address_index": 4, + "private": "KwW8jVmZgCdXyJ5ZJqCrTZBcD361HVjKpYZmaaoMBPs5ArywFKRG", + "public": + "0467a6261b163962aeda05c79293f858ca67d6fa59d951b7de5e5785075e5e2e41442a18f7195f9a51b06764abb30979226f847f876c26e0a550c042b2716abf3a", + "address": "1B48C3eNnjHNi5UjqPmuFJjizkokYr7QhK" + }, + { + "change_index": 2, + "address_index": 0, + "private": "Kx2px42dUFxMaW7K3PxEFeiiKMp4JiCxu3CLWS9VAc9smFGzbh3q", + "public": + "04e62b0cdd1ac62dc68d1d3c210263c26695ba7bfa3c2e06055450eb6a00cba388eb364c6330861a33d9da599774df639755b3146418e85b7d03647bc2e801a4b3", + "address": "1Q1K5zr1Ku6zMjYKSP1Mzo2Cy4xpGw3ueB" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L2Zm2qCJanWLDTjReU2FgdjtNkNZLefidBt6M4yfiHuajbKvzY2J", + "public": + "042ed2712c3d5b8538a781ed8fcde4554e78d84306450fb14e1e7a1facdea9ab668e1ab42e82d16bd239762b608bfa7ffb262d0a2cf05bd1fa1323f0184efb1fde", + "address": "17yGJaCifytbuaHAz9rodv7CfgzAnzw8KT" + }, + { + "change_index": 2, + "address_index": 2, + "private": "L1ECLyLEVEUiSwETBFh9jipTJpvEBSUrQt3PZEUVKwH6YaA4m2bR", + "public": + "0497e42eaf6b056c5efba5c829f61513cdef9716aeca76bede9dbc96a8962bf0af8330310d90a20d1a9b18250d65257f39bff29b489986a64df07d261bf7053c54", + "address": "15iMw2nacDfVu9xahZ2UzyGviAA84m6EjD" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L3NgtLJi8YBLKabwop2Qmo8kKTth4WAL3ZaumZP7QoDBh6CA7V2S", + "public": + "0415bcc6e700460e7768c5f0040ee68139abf2c0481e83234b89a9101e7aee5171e1b94f8bb9eb466c0cdbbd6e9d2b5dffb0d0ecb58fd7692cb8d7eb9b1e64c17a", + "address": "1HAUUyYYbfHbP7QzgDxbVGjaNhQ3TLK1qd" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L2EQDGYtkPvuaPiQfQJjTvHUfK8xDihqXAw3mi2CsQ5wTJH6NFng", + "public": + "04591901f50867767ea204c8183b64928cbd551825cf2bacd11ed6db25a486aa6e5e08d29b8aa92a73c12ea0e71acba7dc19da0544a7641d561edc47a684ce20a7", + "address": "19j6X1Ls6ptndn3ysdZR2rsJqBZq2Rp7x7" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L4umg5jFsdu3oiucLpJaPgAGBTVW8vm5HGNyNY3fsXTCJbTS2A8x", + "public": + "045ebbcaa9ca930ac1e0956483499abd38636c2d1cda6259291ec0cb64b2e8272fa5df15ab4ef2b76857d7f6bc3fc0ec19edca0cc82f4edc339c39f597205005a4", + "address": "12yNpHasdegXR2jSFRz9MPfmPicnbcqcQj" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KyUCUXt9Zvoo3JiSNNTAVXCcCuRMDSM74HKp8afYwX3SfPsn8SoH", + "public": + "04beb47915106795e5e7a9a6845be09d3d902ab4b06d3405f413c7a0bc946628a222d4c460e6499be2913a0223d09e4a0edd2509477e0528ae376895185fc41587", + "address": "1H13g5GwqHZ77cjBz7qJPfbr3yJeVkB4ka" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L3LhUWADXPdw5FtCsXudy4xDA4zepqK3DVhLf55Q5P8t3vbK3vtp", + "public": + "04de818e01153947d1440804c7084263409af5726a901628618fba5d5b9a1f181e500c80419f571f3ea77f73284ed4b20569be6f0b96faa2809ba49abebd533ee6", + "address": "1Ftw4pxyeJfKyXBxvu9YXMsYVL3qEHeBTr" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L1XjxngjqgvRRMGJeoDmwLXwShbcUpjK2GS87BDpap9LiDdzrgAQ", + "public": + "04633f2f8f05cbe86a5bdb1b1234eec4efedb530f40d7e0e0f9f367db328181704860a899e89e22157b65553501f19b489f4c3f8ee15d975b8f3e053b311250b70", + "address": "15hZ5AyTxevxoxUsXdi9dKYfCwzYLEkt7k" + }, + { + "change_index": 3, + "address_index": 4, + "private": "L3bK3r4zrHC3mZWaQxtjNnYCtPWgd9Dna7iq3LzPD5fjJ8efGkxH", + "public": + "04fb651522f1057ddbd184d76882cef780a6b5d1155cd52fe103dbd78413554a5a013703f26bab277871176a0742a98733328df43be2d1e942add7c0fdaa8d17c9", + "address": "13EmfEUkZtgwsRJKhYCGCSmMr6A6Q2XhUT" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L3YjrvSpp5Amy9QpJzkUL6tuFnpf8sxGcFCbRvgdCEwedfNLryUj", + "public": + "043a7af131d58ebc03714404335e0be5aaa4662c92ee25156e9934d5535797701b420ce0d9065ea27c0bd30c644951cf79eba51651d7c673b2de43addbf010e8e6", + "address": "1EUYLBGkV9TnxWFNyV7hnRuqAF8HFaxpra" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L2mxq6ybB6vnDPkaXY2SuFBfgz1cXz8j8WGzX3wkwx3UuMCU3wq2", + "public": + "04181e57ff7aa5fde5b7038eb5f298eab9074f22252695f91958d6c57b837b4d76dcab6a9dfb524e423a9daf57784177a32765cab219cd102decb65f847ea63d9a", + "address": "1KKtVVSDCsBWmxqqaZpbYhuPUFA42pUf5X" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KyFEirc9P82b1XgtxS7e47hEpehFQD7ewPxbmWZ7MhE8j72hmEZ5", + "public": + "047250a9ada26ff9a0262d08a4f57e0f59a9594e420269170cf204d642f528b2fe2a760417721b70e15e8874419dc304432c687458286b119f259c4b65c4e459b8", + "address": "196Fa2mxPN8cTonV19zi2AZSogWmmJkBFD" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KxytvMtnt2KXNqemqDfMbP7gPCeaSaYi5mY1Tp8N553BfC4CbsRf", + "public": + "04532c5d18c43e3098a6f02bbc650070b3a5a3a5c894e8ad612cff05f00e520034640bfd9fbcb6e827718e1f583e671853227a9a6c935bed720f3260150004820c", + "address": "122sU8hmpfXCzxfhv1K6NPM9TEwBGFpQnx" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L2zpRXmAY9ZMfUu3FQyJLyipGn3DQR37aqkJGh53rLwNTnS3pJzb", + "public": + "043dda4f598d27e9af48b6a570104b6ec64795fec6c4ffb97e1c568fb154638366572892b6bc54b736ed57a2aac304014d65f6079d45cf2ec036f87e1a067a7858", + "address": "1jnML7GiNSnRVFAdAX7pzPxjDwZMtBQoe" + } + ] + }, + { + "seed": + "1df5a85dfabb86ac70c7e2d44a2c311f37a891b039bb391cd377b7e75f26b043252933385f365939acca0bfd62d3395335fae94e4ce872f459ddafcb4c334ed6", + "private": "L32xSQmF16NbC7eFymBGwksceNH2b62qzH1uHvgWWkBrKVRXktWo", + "public": + "042931fe952f6abd600d1c0fd18adf993e95a4437b6b87095429582d93384704c387fed388db40c348fc2eb4428467d6ea6bfb058bbe72a345fe78d942a7bf0077", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L58cD4cZ14uWWj34cudpYXk8Nx8jdxWQqNH8ZJbdcHAaWtq29Duc", + "public": + "048255065454018df5adf012e190a80e117e770673f48c95f87809c0289ee4ed6b31402f894840807786456eeeee4bdefb0a45e16bd8c64080ec630008ed613390", + "address": "1BRGR7H6iXkbo5kG6EH7pA2RVUn6Cvc2Ac" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L5fpiXYddPdZmRbYEUQeSCYVgwByNPXrofz6uBvzhD57aanC77uN", + "public": + "041e93e3505f54fad14175b351a0ce0b7f63a8e077f165e5f0d408cfb2e99448c4cb8308d360a044c41bb768cef437f68743b0e697ec8a5c87c9a593b9e984b441", + "address": "19WZLLhFAzgsKW9eeCmugi4ApuAEqpMEEX" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L1ofCQUh7FXVTdU2A1wUY9wPXWxqknwFnYkfhRyaeKvkW9BLZPCT", + "public": + "04031e8a171b22391230346abc95c2c4d44f210325cc46f67ece1b0019fb72ac3670eac9768e7c5cfea4931de6a24f37b69ac867192a853a8d29613bfe7f581bed", + "address": "1MFNrDf3Y7eviChA49NFwZDZPY5Wicevt1" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L1neeTFjVQoHJzCns52D9NGUGmMG2go6969e8bhDURdKWJDGfRMR", + "public": + "04beeb297ef76b34a12faa642ae5adcc9efb4ae54c444ca504f3dd2aed45aa9639c4ac0ae9910fb31843bcc5102d88f691b911a1d58971fd2e7dfaa2b2931c9651", + "address": "14styesPiJJhwEdTxy5x4J5v6rxYB18BgD" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L1AtiSeGEb4H3byzm998DdAGGVXsdoy56CisfPZwvJfBVtUJK1pM", + "public": + "044652022ad960bbbe089faad20a8fee57e1ab569760a89a25efe842f916ce5f9d32e8c30462c6097be9198fcc54426b75fb5aa2448d6eaa9677ec56619a0d4ddb", + "address": "1BLiMJsQS5hgkH26hEQUg888eqdVrExebL" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KycqxLs8DgsBybJRozvgCQVMf3ubGNRn1X3ypg1mfJ13VEjEdM9o", + "public": + "044e2e38651d3a08e688ec978fb52ce426a202264276f5616415602481d0bcf1fdb16c53f4967005e6b1ed1a2268d87e766ad5a15411fb820b5239f9cf36d8378a", + "address": "1EQBT1c2cWyomNZqwR4C85RqLBFmQaDd8i" + }, + { + "change_index": 1, + "address_index": 1, + "private": "KzDaVos4GJYus8QgMK45Tm3Ah6eCe1xjkFBrHJRWNAghrUvHumLf", + "public": + "04870e94887cc2be3bc31c284caa98880660880b97b0c81001805219a51f1b5de7acd12fb1d965baa43854abe064456e5507593ecfc4382dec88f4fba1b5a7dd70", + "address": "1SUxUKwMuSVk1XQRB5LmVkpfn9Vx7A3Vq" + }, + { + "change_index": 1, + "address_index": 2, + "private": "L1M1jsJnxkwJ2cyn86heUcVFbM34ETycRXidNW1oCnUBaGZpBQHs", + "public": + "04e7da4026425148180b1696fa94319b2cc521e1cc854079ebad118338e28faf07479dadc5e5f1ff5063c3a3e712e71842ee9015e2a3b7fb523867e4eeb247b80c", + "address": "15bLJZ7F81A1nBav5CNHji4Fr4zutsXr1z" + }, + { + "change_index": 1, + "address_index": 3, + "private": "Ky7t2x6jexpgFg3UYFm3Dq9pYNyAj54B6cQNGBUQffB8YwYnKaDA", + "public": + "045b1371cc6faf4504f6c35b7230b0631f6522e2c0736ff33f3db0695533b8fdaa2dd9e6455eed27a3d6c1c66c1f860ca7068224284a5eb5d66b03563b6e6a77f0", + "address": "15vKw1Mve9f4rWKZF5LJzKm1fcmCXkP7fb" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L4sYSFWxENAF5VjHzdn5BsE7RvZHWCkFDrd33cndtb2kuyFcJEVf", + "public": + "04be24dd6aacadbddb0a9d995fd55de2f0763b6772a8457b20fddb7ef6c18888cf5aaef6f4578dd85cf3ef064b84e5298dfa16b9734406937ada473ab324ea037c", + "address": "18kjzUwA9Kr8dNAzgBSVnzA4Lh3DDFj9GZ" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KwwtbTBNnvDFzDdvkxudir7FJPfkxz9Qvi4Zymh9tuqUii4ZDgvk", + "public": + "04c559deb6afd19cdc5fee813d665d4e4cf423fd29f1691792546294760836e64b7c9be6b1ae5a3556474e5aef4df7c6113446bc4d92cbe107fa76a564cbb8ce15", + "address": "1JJMN8P4Km9kB1i6onjEjvrZp2fWVQMtXk" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L4beAD1DubADbxCjyLzf9DZzgbnC3CKHMRAerhNja6x5wuzhN5wm", + "public": + "041b2d70a8df3337792bcbc52f8f14241d4d3e6b2495ef9422adc246284d1c1c8cae748b6d56723e85ff9e40ebc9e8266976f7bb5e0b743cf8f77df8c3a4275289", + "address": "1B1uS4mR72ohZsdG5AA5ZXH5yAyTypCupz" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KzPkt8bJobxWqHEviDHSk5y2wY55yjQYUAeBpiqsL1dieeHJLy6w", + "public": + "048c94c6faf2ae06ed5760cbe8c2520ad9fbe10df4d7266c9fae576a60f735a3087d2bfe7e19ce33ec907b7491f31c5d4c7fdb411a9c8d61c3314fa402350ef0ac", + "address": "1QAtCrULpskfFHTpLkwezjbzxSCFPSA4TC" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KzHLjwR7YDR35U3tugtEywA2otqicS6oSgHSKqP9E1yajSqhKSGa", + "public": + "040dc37b42926ff0a5420242fd4930dbb6a4b4a0b78f82e2f616b0da34bec43da7e0473134073b8ff3f71ea325b61835b766f1b7abe00fe2e4c522ab577b8afa2e", + "address": "1DLq2gqDsE8Yu2ZV2n812YWV4VaSS5fLuj" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L26T3MsYw1a9ByKaHpghy2NiaCwPWmNvNwfuBzKC62qNQo2RhwZ8", + "public": + "04e14c3668b774020a4f640284fe9b65fcc5775cf6221506f9cc061fb45ec7d58b0eab78bfc3ecf6f154e9782e2c6811493790c17c3fde20a47cf51741315a3512", + "address": "1FAMQ5VCnUbEVHDjXwPSkA71HEezEtcSw4" + }, + { + "change_index": 3, + "address_index": 0, + "private": "Ky88HERs8iSy699ZbKJVTocYNXsqcrRyp8mSkz7fByQrZgtC4bzG", + "public": + "0463ff789162ae130fdf43c3c7bbed5f09cbb88e8fe05d7401e86b60eabec3cd56df6ca80493021ddcfc80e33e334738e7c6e4525c37aeb2aa43d351ec2f907c8e", + "address": "1HYRdvWGxLswWZEMuQ4CW4mcY7K15zZpVN" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L3GpWVJhCyHU6MpdDwz6xGLe3VVNk8Ej4PcW3sCgtPjDNMtFwpsp", + "public": + "04c2e7b1a17a170562a3f35bd25172128b4724be9e9018883e3d8c6af9f6c6364760d7554d59f4e7314ae20a2a024d0a4b5e2e3b08600f940412b068e24c706b7e", + "address": "1BwRsQCyr8RQP86wCwVnuH2DKTuukKkb73" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L2wnrcLq4HyRdMTSBAzQQZugkvKewHDQhZeUwi3v7oKg5nEeeTs3", + "public": + "040fe9c38567a81e78c16869a477e66d4e66664b41bc3d67ee2462921ad7b170ed17cdc2bc708565ae9de567d5d112ca1c50d3281e4dd783ccab6e84ec9c51c042", + "address": "1BBwbJkEf6zNTTXoCdePmbfndguZHDdHJ3" + }, + { + "change_index": 3, + "address_index": 3, + "private": "Kz3ej5HFZpJ8yxFJFm8sPo4a5ngroKuDPam7U8WtiqhDRaPF3obZ", + "public": + "0499e7b3bdaff28445c6afa5eba5462e5ce8121306168904c34238ec12e06a69b55e6f3517190b03eb520ecc9ac86e88a7ad0360bf8c587c8f2de8b657f95da3a8", + "address": "1NmmorC8pEEF4LBSmhx7ZNcwkhpc7Kknh" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KxH4EUZwsAGSM9Qwbfsq8jeZSG1eBCC4TE4zSmhRaFKEVwiPFepP", + "public": + "04794e9f38136096fbfe950f6b8276f533f83f303dddb0edcf83a26aaae0d21f1d2f504b4553f6495736df6084a30313c6c64db72db415558e640f9e41b41f7dc2", + "address": "1B2bszLhLwi9sZkQTbHsb8dtt5DDLa5sJx" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L5RpmKENabpBp4Jqq8VHk9sva2JtG2fXWekmoNy6b86QwjDNDEGq", + "public": + "0428527b2b39d22709426a2bb3588d5b48fea3bcb80949871e8a4ee2a76def89f7afcd0fd836039c02360b8cc5b99703bfba036e6b1858d778accd8d1db676a601", + "address": "1M6yWnMqxySQQUkHArCiMxyzkS3ygYeovw" + }, + { + "change_index": 4, + "address_index": 1, + "private": "KxZ88j2nVMJtyoWTzK6cbigVEswNxVt97aC4mHVkmAVVSSVWkk7G", + "public": + "046c1770eceba02ef010920f6baf6c438557954991c0ddda4bdce49dc3222f9f704f9a42c5662465230ffc7ab615f29b522bef107a850af9e1bebc00227b393b0a", + "address": "1L6N6PsUrhy5DEKcHAT75HWgcrts22XJrZ" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KzPM7gdUeqZtVzA9PQ2YzSNxDoK6diasMthWPABVQy9mMegHwVKc", + "public": + "043e9aea9fcee23bec06480e530ad2ebefeeefd314b971476960a5319d4130accd9b9f31df5c0e4a349c6f3edcd4e60c6e41cd183ccc8dec5f57b67c7540161db5", + "address": "1FrdQ3eVHv9jiUwsR5ttfGV1gyxkZsCsha" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L2xjfzpZxBhznxWLsKdyDBhxWGdo75qx5VfZ24hZkXW3udGR6C5L", + "public": + "048d5645b891df231fe91d0663c4e8aaf0392a08ed2fbdb69a10bf80458ed5d77e631127d9d99262fd38641b2d8f259b915fff9d0c08c5b07b115c6c3e998ddc58", + "address": "1FyBeyYZu5TtddWkdEWaqsptX1sWiwWk42" + }, + { + "change_index": 4, + "address_index": 4, + "private": "L4CXZmhMmjjgZTGETRTZUT2B4W5RLRFaG9uXxShM1hU8M3ofUbGe", + "public": + "040ca8fa0f8dee09763648f9a61ed7a30acb0abbb47915457a3c0504a261d28c478f087d8493f66e6575c092c3cae564bd46808e7f8a0f83720394a90235241cf4", + "address": "16TuqzdACo4QrRuP7DPciFTMvxmhv2SR5V" + } + ] + }, + { + "seed": + "b07731cbf22652ad52dedce0deb41febc02673b72d4d92981e346cc3bf2980301a6c6db6ec51a27426d58dd4e2b9717e606acbe2e67aa4f1fb602583e8d2a9da", + "private": "KysXdBkvndpgNvqtJfkVogtV2XG7SNFQfaaJr7sA7VMW8BgFkcop", + "public": + "045e4e91bdcea9d48a5abdf318852e86fab78e8b67a3e4c33cf62681dade750efe3b8103ea7bafa69b61bfe97a9f1c1be49f14068b320ee7d2f515d184b2967d10", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L4mZPbZgzknviQ7yL5yKrPombAnRM5jBKkCv1oU1ipGhQ6V5FBv1", + "public": + "04ef8bcd32fd4219d1897eb5a6b7a88eb1f064aa2579c5ead434b330bfae69829599401e4d2f27398fe5bb0fd987388ece5ebeb61d7559d7a53d077c2ed0d4a635", + "address": "182o4XV3qSphLmUf5tFTU7Ph3fQrTmyBfa" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L1FGnfYQWZmWB4JfdD91T52x8gfzEzbffbXwj7NG833gJ8WGg5pE", + "public": + "041ecd42a71e8bab891ff60f4cbb7f80f1012d6473a590703e1136a4a0c233877622c0ead11f2d58bf1e455049e76621facb7dcce5410c5ed9358a84e87ae0be0d", + "address": "14TngLkugSzddXRLr5zRh5ZdnjgHHiZnMC" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L1FdGM7CGBGtY16okE3GjDEWDxaroS4sceYyp7eqHmbSWCXonSUR", + "public": + "04ea2f638064cc5ea8ba60520e3e13996bf99acaacc36a19b842d8c30c55352f92d007889fe8398021abcb739c8f755d09b0e78d2e5433853e043207d0df906a12", + "address": "1EeXajkBuJj6ebEoLX3nBLS9Ay2LqqQ6Uv" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L1C6bD2mRxASqigkGaqedRBvp1SCnXdTENakGJhE8MA8YDGunR9m", + "public": + "041f05e524684cab453d9506f067d4729d12e2db99501579369dfba95721e4c3a119ff22c5c4f60a139f23fd1f7bfbcebd5ed11173710e254eb2c49d2db7b1ce20", + "address": "12fyZG7v8Szn3F4iHdWDTXtY2hcuXC5QZZ" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L4NXh5FiwCNzLnCmYt67nbntcPEsjiyiDdV4qCaMpaH7fkKMZ31h", + "public": + "049fe672637fda6aad8a33a0c5cb03b1d55580a6bcaf0ec1afa752718871a732c9da747a5c4f50067deca6c4db87f7c8217519d77e2f3f4d70963507a9565006e6", + "address": "1Q1Xm7rSQTd5ZBovfmuf21ctUTNjhqKh6A" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L3ph2kBqSGMXEfe8v9pCa7ayU319qDRB1k23AnwSskzDhUBYSHYL", + "public": + "04502e9a696ca1ccaf378517928a1b278bb56404fa987b240735f017509dc22ac617da555b807081fc22e55741a0ba9e4434f2e17740fbb65de9926f65e5504f15", + "address": "13uiENQD5j4gxtbT5n5mVuWsy8DQvztMAJ" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L33ZBEpxpGJNBucThhy34rvJRBenR9ruztZdXM3427i9sujgoiLF", + "public": + "04b651dfa04f03c043d7f9b9387266c2418f68e91d16c705aea4994d78959b47f350d11b79e4e66e0272914091af3499e9ce2b662f5683ba3ce66d9838ca2534aa", + "address": "16GcaqCQCUiefvvb3fKhvPXf39NUxj11pE" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KzFL7UHChumzK9qcQBZWvZG4ne89BSgoY1yciTNcEKsAbpGfvFHa", + "public": + "04a6c9646e7e15a9cbb1b1389c256371bf5fa390505c2d36c6857ee45effaf60d2186c24b72cecec902d2ab87137e0ae4e4b0d46cb27fa5daf704f64841d9063ec", + "address": "1AVk7DjdRVjUmiLDSf7ULe8ijZ4FQid7GB" + }, + { + "change_index": 1, + "address_index": 3, + "private": "L4ikmYNNRjrbF28EFaUYYPWYcdUcD1w2ZM4oSTDzeFTu8vW9DEWF", + "public": + "04c433b260dc283ca536c5aca43ae843edeae7f2f29aadc631584b88e51e5029aee620715474ab2fbaf2e313f298fe874e5a8faedb007f596cdc0363adaa17b25b", + "address": "15EcPGBSQnLMsaGJyEKFKU8o6kfrG5DyRU" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L2zN86cKRAjRRq72dEzDioAN7mqNCSVRFG1Xom5PNFCof9AT6ArQ", + "public": + "045c061ef3bb4f9cb0e1c7f788894ad6ace84aa1cf7bc8a7aeb851097920442d7856f5107f18813f66488634efbd422b5eea4f507d3c8f8a94006efada2f16d47e", + "address": "1KswmCQ9Vcxby8eD9b5gR2Bjqw88dikocd" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KyaYBKFtABkcqgSz7SioycWsW1jM6LeCRxjZd9NdTmXS4E7wESd2", + "public": + "04e66c7ffbba3efe06217e481237d1f5fe8bec9fb39f0e113d413dcff00ca90d48965a585283ddd3be5bd719502dc478759039b0079a35ba8b921d0b582e6ea65a", + "address": "1K6bVA4mZqcKmwybrpyaPnHspYW8X7EpWW" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L21c4HQi7MpiSEP7dZrGw6TmhNeCZ5eivctJ4yxUcRQev6zzAXzT", + "public": + "04abf15b4e52726d73d63c38082b16b41c302999b0762e6f07b245c692583e91f8c359e2a35ddf368757407a13933abeb8b0550e0c6bfb01c38efac731192ba61d", + "address": "1NYjmXSqokBaZidjuApTCLfe5LLFqKaEXp" + }, + { + "change_index": 2, + "address_index": 2, + "private": "L446RCSuZTzSJUR9gazUuXRKJNhwzS71JR67D8GCarsvaEPkqQXB", + "public": + "040c9c4b7a4102f39a1c98cad6711e7c15c68b133c984034569a81555f6b13bf42c99eb298c4fe3eb42b52ce1631216f4290b8e363190a48fbdddbe5e3bc6a95c6", + "address": "1Gt3rQa3RC8cNNZ6A1A4fk366LFus9WUCx" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L14VwzYpAD34JDNmQVDHwgah8Am7hUFhBkBBR2DgBCdywZ6ZWWR8", + "public": + "04b652c9b3474065a6f1c7893bc441242c3998858ec1b6c299767ff35ad6f036361acb729249cf80eaf48e7046c66e007d717188693d6a2c1fc86c938338e27ff9", + "address": "1DTjgLbqJgYwQQnMpnxqVTX7QMdhxr4pNe" + }, + { + "change_index": 2, + "address_index": 4, + "private": "L29vnUYzxQj82MZr3X6Qvp1Rgn8Ri5rT14jkzw239J6a584hhqfW", + "public": + "046ec383293e92942fad8609ee4edc42af155f239898320a59fcf2fdb440a1a8e5714835201854bdb801e11f5d8199cdaa79f7c065006615623bed2d84cd7d5035", + "address": "1JzFP1JaYRU3D1RcGoHCtmfzXhj2N9dbF4" + }, + { + "change_index": 3, + "address_index": 0, + "private": "Kzx4Kud8mGcznMbjLLg4pwh9JjFjUhAqBXSY9KgaCvCxscVCMMbn", + "public": + "040a509a8379b48bdebaeaed12140a49bd0450c5cafa68d52b76e06dab3a0c4d9293bf5e212db280c2334a7c7acf0b138f98a27626be66b6d36cae785ae6261245", + "address": "12JbPs5VUo6DWpiFVgESaWNe6mjRKEVn4S" + }, + { + "change_index": 3, + "address_index": 1, + "private": "KyeKy4wz23BgkDgWLdsewpPRjwuk5MU4UQPgq9ZFjbjT8TRujuF9", + "public": + "04fae0fe20852ea0334659b4d51f11a4b0c16e791fcffd84ff325d7a4f353c3ec264edc039084d82dec03df7420f40960a059758da937e5ab0997ead34011def27", + "address": "1CHSARjwF5KNTiZgFx56sMVdWeXpde8cmo" + }, + { + "change_index": 3, + "address_index": 2, + "private": "L2KGgjd7MswnmiBRMmdWHTKczamPSZLU9vsxPcgi6XGpoPAkLX96", + "public": + "04ab47271e44d50cab8b5eb3770ba983e532c2f026ac2c1f35a248d256b281fa42b1059f0562286d8ce791dcef8d2175663047bcf34b663c79dc250ee385b3c7ec", + "address": "1DR5F6EmGwDQmJfWQqfdQkNznCFeYKNui5" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L4jynNuYxCVwYdpFCYVvMyTVFpuxRvbx3WsiFNV6yEVG5gQDTvX8", + "public": + "047025c81244552caadd12aee382b3cfca21b39abdb2b70674c442d1e6745827e43f3edecde6d9dc145eee949f95e54f4e682e6f7698da1338f52043b6838dd8ae", + "address": "16bjPsYh7AYjpN4soBGk2ZUqASM2MTzRSw" + }, + { + "change_index": 3, + "address_index": 4, + "private": "KxMxar8pPArfP3MF8CdhRQtY3jyC5XqhHnCQPQYJjAi5YbAfd5eK", + "public": + "0489d7f9154e15719ea3bca2920c0791f938330942c1a81f5b2564003f06171f6641c53880d90cbaf3e781aeef3c377a93677699b61131c3b9952ad504f5d38961", + "address": "1C1LwANFC9hsiGUH436AQKE9CZx31k3na3" + }, + { + "change_index": 4, + "address_index": 0, + "private": "L3viFbTvbUw8DPhmqm9R4SCuFWrYFxcx4Fif7kwrJaT4hQFjTXzR", + "public": + "04178ad228630d3b18980601929cae8dc3a9a454bd71832c0d609d2ef9362e1a02a2ec7aeb945a5b85aa951d32b544fc675f0fa26abcfaa8011c7c3664930f8877", + "address": "1DGU4jGcs6kTn1g1LkmabrpAzLXBwFBhgu" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L37o9swtoBE46eQBgSSJ3XV9GWGZHYBLrr4sDiWR76qe9Xk5V3ar", + "public": + "04237fa6178071717f5f58dfbd137bfac28eff255b1be1645cba34b1c30906414425242ca467b55a9d8e963ef49d2e56a1e41843175d06e58eb5ebc69dec0a5a27", + "address": "1Fc55mSNtCbhxFF8Yp9PJReUMXxig5FiK7" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KyARKd9uTZHJ6rD7MgdMswpFAmVbRpQgfGLCPacvkGqWPcyCVGQM", + "public": + "04ec7fad94cf9bc0362999118cc13a8f617acdad46ad4da426684dd17247fc815f32963dbf47b95ed04e05ec439c627528c7cfce1ce482bf93d84b027e2bd3217f", + "address": "13WQSmrjreGALsFhm51HMa88XhjddNHtCQ" + }, + { + "change_index": 4, + "address_index": 3, + "private": "L3jpV1BieA8XLji26wsWjYjr5Xv3ycXesJsn2tzVVuioSrzSdqdn", + "public": + "0405991999780a770f6015f0920b4e025ae8f8ea4f5682045231f473748c4148f7ca2b8cf62d70e6582ba6c42aa49f718d65ef3e6f35ac2434a19663cceb066918", + "address": "16qqxenVTyDAkF64a7XcqZwURhwS94Q4Q9" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KzcWQLzC4PukKeExVLPAYHaELRDbjBb3Vxa4m7hQdCbQMuSJQJmN", + "public": + "0430918183d6d52a42b6d7559f2ad836867769eac6f2e7641867bd4bab6625bd69b06cf5d6ce729d5e63be803cc102383f9b43b87bd3f6af4a56c8b2b34cf4947a", + "address": "1Knmv1pxzcTzMBhocCSs9Y1YhRxRUgxTEp" + } + ] + }, + { + "seed": + "762bb4639659f40b8c38f4ca9b4a591af48841757009cbdf3131bf49d754fa7b78ce8970f5e397a965653547e62e9fcc3ff5890abbecc0ae76e07d9df715acfd", + "private": "L5iB2MUFB5j33BUvTCQoKxHvXgfWZHnJqVHyDGpBJ65sdLeJ5yzE", + "public": + "04792a6065ee703cdbf4463a0b722a851c2a240a4c828396f1bbb5fa37be47fa7ed3c2f46373a97cd63a0d7d9fcc1e0f50a7221d799db37b8f24e9219e7b01228d", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L2kQPpnmZQVUAu7XJMkZ4TknedJQk1yReeCAnVfSumE6xiV7uQMg", + "public": + "043d81e52cc948fa10569db6ffee94e4fc538ac59b8e5ad2f53ca1bb36247a9ffea6d1fe16e3471773a33f3b3b206966bfa649240b86f9c36b9f3a4fc08f1bebb9", + "address": "1C7KwS7CY6DdQwHLZtL7hXfxvNy6AYhSNK" + }, + { + "change_index": 0, + "address_index": 1, + "private": "KyNHvafhqVNuySRW2PXUGjroWmnj5zXfwkWXuiVW6ueZyuR9xvZA", + "public": + "0481ce0151cdfeee158fb7db893d3c40a422bb813e148d9857ca3315edcc23b9391ed40d130f7bb9f643e641891136e5b07a0ba9131f4ad679031371893ed1d0ed", + "address": "1MQBjreXo51hyva5WZ1yHsfkQHFr6QHZuF" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L4z6WPM1KRtUc2S23TamxFCM4ss8GKWaXmh3So8b1WDnawZC2zL8", + "public": + "042395404c2b562084e9d961ce1ede2ba52ac740c8e44682d6a7145f467098e573027b379ffd7377b493daa69ba0a02ce4cdd6cd2f5edcda00658b38915b2fa020", + "address": "17tmpBGW7ib3rMWKLnzoU5RMuL2vXtDKrS" + }, + { + "change_index": 0, + "address_index": 3, + "private": "Kxj94QvSsDVt7tphKXNqFAvnU9Q9kf1KgmRwQzkdpHFPVxf5wbch", + "public": + "044cd6dfd049cae0ced285e99ae37d2149af5d8093f1d9c2780f598b9c15c7745c073970835c2730371fe6e861482bc1d0b4bc77a0c23a356ecd3bdd65c8d123c0", + "address": "1Gidew8otzSqwLeUJSjgc1QmPSSS7T9E59" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L2aYTfQopx4LXbj2wJTF3xBHk8g5fSUfcom49Woa1ap1v5fvAtFA", + "public": + "043375ac4a507402046740885cc6274f117a91b90e1710de1c86e5ea60c074a6ec224b604d0e784ce67481a9768cdec484d93a9663abfb0f80c5722a509c970dab", + "address": "18oWaTnn4EqTTpsxLnmVE7oQGFaRJXUJ3y" + }, + { + "change_index": 1, + "address_index": 0, + "private": "KxycFP8Rg4BQZnPkhjjAz4xhKbwpW36jVD1ejZhBvfKFiSos9LW3", + "public": + "0467cb14b4f03ea19a7dc2ac6dd45c42986a3f6bf5edb1e0b4de18c08a45c7beb5715c05bc6f42ab0178fd05d188d642bb4760a0c62c7bfdf13a2774f5156f59b0", + "address": "1EXpsoW6mB6QLRnwsXY91wMsSZ4gBLqJ51" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L5iVZip42hFF5iSAW9pn6a1bKeFHE9FGBat7PS3KQncsn9ivaY9Y", + "public": + "04c6842a608823f59e0c01543ce50f231d940889fa64ade045e4afbcb7ea29f9bfc4aecddac975fdfcf253b8a8fb4fd525c72ebad3f56a5b8287372bfd74575037", + "address": "1MP65hBYvheMZnrwAMahpjyhA9m331RxqP" + }, + { + "change_index": 1, + "address_index": 2, + "private": "KwQWtCQ2EwmcSoUqEopaRbBv9yMLqhjAnkCWnn3kefWf2Xcu8Y54", + "public": + "0474d7548df932730e65337a6decd08f3475913aa6d053bb635d7f64d85b25ff1af2fe0742d1ce652f79d6227ac670484819d9d0adbc928738013e90b6b83b071f", + "address": "1PLgPGHTnywqC5Ybsjnbvyu82QDdz5Wpve" + }, + { + "change_index": 1, + "address_index": 3, + "private": "KxUVRCEZrNK5iFP6btmu1mbQKhLJ9wRS1CSZehG9EX7d4fRjPdY4", + "public": + "04bb0e6737115f633ef13ea61ad076aa667acdc51f626f84258587accf5d8e57072999c23b4050b76a0ad872c72a4797efda8c1aaf6c7ec4e05dd128a4e0f7296f", + "address": "18Vw99aAn6E8rE6Q4FXyu88FMNAKb6Fu23" + }, + { + "change_index": 1, + "address_index": 4, + "private": "KwfGEKdvuYs1WAxQWTQ2xEj2D5f3D4ZkDh1EXNzWzfnPopFkN2CY", + "public": + "04797a1edf5596c10ea631c3fd0e18bc71bdcec748e0e541f57ef35548ec92e356c91207f25df752210b96927704c623d4a414178c46c2256d081f25a59f27dfbd", + "address": "13oDtCCjJyWxSXNdRdUFs3sopvDbwH7bz9" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KwpzYhnNZzhqhg2giD8wUoGLuhYdmEeW72CJXEUoRQYrNx1ZJyoh", + "public": + "044c69427bd48c1434e8fee5736d1ce3824f6bbf37ddebc0d1b5f1ebd5ed5e8a7926d05d3946ad03a08a2287944a8568aa2a5037f8196ea992a991ce0cd3101548", + "address": "1EDz3o4JR5U2PAF1gs2Kn6HNnfMYKtAxKr" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L3PjpaDFEXkxbzXyqURN9rnTLLh4pAf39PdeorC826qx1iwbQa1s", + "public": + "045c054488959b5bd26a015651fa076679b8f84aecf514f95647a24d2b16674e980a93a0fd3009dad2d2b4ad2426dff9bfcc4967152fc9a7865d543e29824908d6", + "address": "16qXrWNYrVDCYQoopDiRNcxEXJLArCXRTG" + }, + { + "change_index": 2, + "address_index": 2, + "private": "KzcLCwek1zBV5nxY3EaEvsKFfBTkmm5LBchgv7tV6tdYocGeQU3N", + "public": + "04b7059a73594d1c89b58eedf76ce53e06603bdcfa381e9e8757b4962f5b76fa4134986b2247e82df9be4de5c95d0447c3da449182619c36a6443f74f236dc3765", + "address": "1yiC65xG9p5zGxcTxNEhJp6H7Ypx2P5jq" + }, + { + "change_index": 2, + "address_index": 3, + "private": "KxxaidJ2SiBHABzjFE8nzvx4Xb3XjZKDwTN4WdmEK2qgHzkbE8PW", + "public": + "047e1a6c15b20e5d99e8cd58aabcc9c334fed0850c288a430410f3ae5055bb36df20565d049487f5b2bb57bfe54420ddab2a7759dee3f459d02ada05057eb0e497", + "address": "1Dj2QkgmwVF8Mmbqfh8fNBU6pyfGMahXpZ" + }, + { + "change_index": 2, + "address_index": 4, + "private": "KxfQnbxX2tir3uC7i6xPZEVEJR1WsXSEteF4hYSVrP5Nqj47Hjjq", + "public": + "04d9ba3381e1cc6e6125506bd176a456e478515007919e2fb05a7cf7620e9e12631850e9b147bf64a3ff2fb4bb7e4c67b2ee2158753b5fa46327381b113de0eec3", + "address": "16LUbfnbmwUiTXfcEn1bJsJ9LE1EU3mncG" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L3UxoNFGnb4xVaVfMYpG67uYx81yLZ6xs8uwhJW46s381j3E5NZT", + "public": + "04c7822e884bd9bc804b3a8f1942505adc44b6e58aa8c5742eca58fac8f1a6c668a67461a2760db314b4ae0d8e910f3d5f84735b193ce831b6353da5dd64795373", + "address": "12UsQYTN9isU8pw9SoU7SW8nMj4h7ZTHNY" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L5JknUbsKy9vz6KHHpkZ2yQvbDS8xuLLBS2QjXdbd8bjMFJnciLQ", + "public": + "04c07ede3a63bdaf1c37ed2d7f9ab7cc6d3fdbb4cae425de39b1a806a3d5befe2e5ecc2e9660f4538f53dc641bfe5ce5f92d873ff5c698332b916c1f4c5e1965a1", + "address": "1A2HqBTgTLv4N2zGq7cCmSWvpRHGATp3a1" + }, + { + "change_index": 3, + "address_index": 2, + "private": "KwthwQMaTS42GJzKYUntDCxrnX5CcBTyXotYYu9tGkiEoupyMtQE", + "public": + "04c8bd0ecf6aab88376474c01aeb31f63ee732f5c1adcb25df436166d788255e4d1e536a5c07d58c79856c8f4a295e879cbff505d7371f4f29a59c8118500d5584", + "address": "14oaqaEnrvq6SrCQtKfiBJuw5LmqsoAke3" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L13iWmCJRMQ87HqRaC5XJkPm1khYuz7FRv2oHRzvj3J3tgX1Ptwe", + "public": + "04f924b72405cb9ddd95ff35b408f1156ee490018a6edf582109cdb86ff37c20cc5b86ac257d64a87a28bcb087273f76f15788ae886db49a7b76357793a8ed494e", + "address": "1BcmUpCKoSz1Wjx2NbRqp1NY3uAkhKyjzb" + }, + { + "change_index": 3, + "address_index": 4, + "private": "L2KMivuuZPTKRafiSuWFCTzZpWsy92vXcMWkyH65o82Vs5soxBW1", + "public": + "04f7702231937ce0cb8781984cb5dc6bb9a82e89ae8dda3c5348209fa0cd8762f6191ffa9c6af95462a03db6cbcd971d33a7a5d9f265de804b3b6574cc0d638c3d", + "address": "1BUkTX5n7tiDgnytNVtmX39guQHAfsb7Pi" + }, + { + "change_index": 4, + "address_index": 0, + "private": "Kx9FP6LAwUkbtQTc5GRrAsPWVgmpqqfgwyBN8FWhu7wbrdFRwBNL", + "public": + "04c1dee6ee596aa6332243009208c1320941dbd04daf4643a5c0321f09522434816a398eefd875f69ddeda5311e6ef3f1e40f5c18e1299ea01a51950336c39c9e4", + "address": "19HkpJ486ZuQGf41xddY1cpLdpZu1y3bKN" + }, + { + "change_index": 4, + "address_index": 1, + "private": "KybYgTaKyeUCqjijmtv71RSSRzYitFeHymTrzZN7apZ56RVnvjEs", + "public": + "04cd314c18a5214916a91167755280286f848d43197e82af70d0a2fcc06467991bbb4aefbcd4d34c3490cb253a774ada01902d0df3dfab91b06014e92ad235f27a", + "address": "1P19Bokpi4wS3sYdRkkKHxuZweDTb7dAsi" + }, + { + "change_index": 4, + "address_index": 2, + "private": "L1WoMk6pFK6G2rFnC86Z2ihjx1QcSMKPsq6jMv6pqL61esocQiZe", + "public": + "047dc996627c647e2f7fa085f8e36b6449231613573482e2180c0dda51eb32031e9cce6d71f7f394aaa0cbe31103941f869ad928c936d9f345299192bfb8633c77", + "address": "14QDEaen4pk5vNXnhuofsyUwg8ZaDwQCeg" + }, + { + "change_index": 4, + "address_index": 3, + "private": "KyJ1mervQGD8V68bJqDqE9LE6somBS7Re8z6iLHSxk6FpCvyYMVb", + "public": + "0487b01852c874c4632ebcde4e678f5f17988ea2c80ceaf71c9c2cb05748502735357ace330b71defef7133561670d212ef1b669d614d6977e1c6b249534254d1a", + "address": "1GLyz9fgH9hKCZi9zQoptRc7oFfKsJEEjs" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KxpqqpdGwSr4pay2CpoGtTHjpkHJJ7Ddpne6VZ8pZ4psMjr6YHmS", + "public": + "049d282d834a713aad33f532e73015c3ead7d3760a51d033a1f37fa6a724a16885266cd4ec54b36d800b162740d7912faa74215b930f146aa684c3e02dce248e52", + "address": "1CbqXjLVvHGeTRXN4V1MaqEiT2p2BUKe66" + } + ] + }, + { + "seed": + "056ae8b0f055192e054baa3d97ca710d6954c76ccee1f632bf2b9b856f341881dc4d1476af93ad5d1d738adcf2c63d3372a57907a40791e41830e4afb119f84c", + "private": "L5grXbCyYHjz3mwJ5qJnbftd8ateQSjxEpGEEfRhKAsFGF37T2ds", + "public": + "0412bcbb47bad32bda131981efcf0d02bea2b6a3258cdaea9d64e5ad1877aa4cdbdcef11a0551b4988aa803c0402385de472ffda3abbada648a0d03543c67474ce", + "child": [ + { + "change_index": 0, + "address_index": 0, + "private": "L3sPtBCAk4zZvQy4MH4nUqYJtwc9x7n9u1qQomzdBCbHnS9fBZow", + "public": + "0472748d6a1dab8906ebf16936dab6a22a11b8ec14963e9e189514c0097174f6d4e3fba84c846061f3a9371ae550af07a2b8a799d69c9a01a15d28cbc46caa51a3", + "address": "17c6oiLUUf4jkf2dyge2Wpu4FbBoGkHuLD" + }, + { + "change_index": 0, + "address_index": 1, + "private": "L49tkvds9pbL6tPgr2txcUGcKk2Jn3UHFvdfh61zmTgK1Bi5Yir8", + "public": + "04fe25e04abe23900bd567242ce2804f03470f27b787969823687158137facead49f91433efdf97a8ccaec7ccdd329a9288338dae1cd2590fe9da93a458f13f439", + "address": "1QHvY1Ay5GcTLxm3XjGc6TwafvhBu3Y4vt" + }, + { + "change_index": 0, + "address_index": 2, + "private": "L1r3axXyftb6sWwHxfhQXC2nrEGoHQQDEGaUXESgUwxxzL1qnpWb", + "public": + "04d92a5b004c68ab9943721f3c039b858611b4ed6a0f0fdd2f45fc91b4924163ba36652251958372cdfbc75046a0ab01d93634b8ee5feb1036092125637f3ee3c9", + "address": "14PxS4p87g5NbFGn11Ev9YvEzfZob6KoBb" + }, + { + "change_index": 0, + "address_index": 3, + "private": "L1Nn9skQTc5EoF9BWFS9ZWPeHZ7eCWXpaN4ThgRqq3foeQ69QUy5", + "public": + "0474eb949c292d0c7daebed7d003c27f18ab6df33153fcdc04ce11c8ab2ca2ce6e248143f9c0a5a44895526c7a303e87d3781837e67f80d5385fa1eeff5fce384f", + "address": "1MS7YZN4FzUJJ1HBSeWjqdo8E97ZLtQxaG" + }, + { + "change_index": 0, + "address_index": 4, + "private": "L4pxpkPWonZowcnm2oRDmbt9Re3CcCb6p1X7eWMETxpoKtcKhW5X", + "public": + "048a952f41fc1fd3d6483282556a7403360779f1f183df1a9ad5b7e3caffcaf15dd7142fd73aadee92b1c75a534e7e1db4d40c9b52c3de3f82951cdc74f9df0024", + "address": "1KBAVF4t6w39HAXRvy1qJGXbBLPjFKRSq4" + }, + { + "change_index": 1, + "address_index": 0, + "private": "L1jfde5iBZGbqDuNLjEBLVJciUVRgmEcVSH1VgYTCLjDwY4g1UbF", + "public": + "04995590a080cf8fdd69c3f4f40a07b1b243cb45ca0ba81b690840019b8af7a66e9773a65623601b8d8c653fcd3f9333d60c08d4985dc0281912d2aa224be492a5", + "address": "1D86wj92yJRJAEfiWVnsZFYeD7sUoksPME" + }, + { + "change_index": 1, + "address_index": 1, + "private": "L53fSSq3xzjVW5mGwDLDUjkTJdsbMn3DXjQryJHYeEezvzzhzHoQ", + "public": + "04838dac3b89ac228d71993772cf08b819ff0e8102371f35ecd2591c2d1e4295157899e0c49d4873968d925520dd9dc315f4dd97be46e001d5bf3307f15c4da3b9", + "address": "1GaiVCCohRNYpRdBsjWCykYgRUqWdEfNMJ" + }, + { + "change_index": 1, + "address_index": 2, + "private": "Ky3Ew2eakVPaRzuqUoCH5on52sZ1MNHdsBropCn5VQxu5o9aKSQu", + "public": + "04eb63b7b796411f27dec41344638f233131eb8f974491f4e5d1e5607e9a736a95625bc59c902425f899fbf8fcc5d7db04bda2cf6285dbac2ed1160d3e47847b41", + "address": "1HqpB59sShnVqUSGt82JaivRKhMnAkk9ay" + }, + { + "change_index": 1, + "address_index": 3, + "private": "Kx92b7mJzLGeEoPcnSo9rQJTJPPzzhpfzSLpWi7Dhm2gh6Yu5v62", + "public": + "041add3683e70052b48c55906d2fdb951d8915377cdefb7ae9c6710c92a73d652286000710b8bc03d8e9078763ba63d580892423d5ac6c0136402ffc7117733ef5", + "address": "1D4UxgaJuYFxLhn3WjNo8rzXvzTU5ALr7A" + }, + { + "change_index": 1, + "address_index": 4, + "private": "L19ynubRcW5mp4omitubL2XyWavm5TmRoPcHiWVMU6ZHPdckKgsN", + "public": + "0469e16cbc98c06670344e80fbf053918f05b7a52d3bc2c8842723d1424f400eb81df23e9f0a5ff1ffbc6ccbe65e1598a5bf6e21917c30acc30374743b18097267", + "address": "1MWw8TDN91MAYN2JBtPRQtYejsEf9QMyeg" + }, + { + "change_index": 2, + "address_index": 0, + "private": "KyiqE5azMVMS3zuqUCE8wjgzK4iiewkuiw3tZ8EFGKv4SKVf16Lh", + "public": + "04cce72f8fb1bfa4a927e2430b362e75dcd5c0bf4b5d14be9e8c4960279c21ad1aadb0d9493b19b114a28512b0e8750a9cd13e346c7c618656e6a6b43d17c36df0", + "address": "1FuDShRZZG7dTrDp2Ae5qk9WKBZXZUSi1v" + }, + { + "change_index": 2, + "address_index": 1, + "private": "L4AWd6xVSDBbnrfYvi1w6opGC4PcLsgp6fvPEMPpSfd38MJDe6hU", + "public": + "0475f428af787d323d3183d6844ef424fdfeac50ac3abf25d4b1d556b082599f0ef1b4cb37712f2601dec1cb288e4cf40d9e1668bf80b371977945e9e8465fe79e", + "address": "15f45b7vCuVnh5DHyjX5ZLTC7noSoEygcz" + }, + { + "change_index": 2, + "address_index": 2, + "private": "L1oN9Bnw1fWrfLBQ73CWENBhYMTtdmhxPXzrpZHZ9XepnssHoqoE", + "public": + "044cff3a58ac8d45d0400cf4751c773e7b9741feac61af09ea10fa172f989eb84437961f2435f2cac402e5cc8142609bb76c6c238eb9064d93e98c2c88ef2d4e93", + "address": "1FPA3tmmck7gzFfLQgh3JmsjQAeo89JqHt" + }, + { + "change_index": 2, + "address_index": 3, + "private": "L3FcvWEa6rTaQJBZ49UYQfnpXJuVEHtgSeGcPbFuVtntVNKC3ffB", + "public": + "042e01d5ae84b5774d4c1ff8c617ae1e25820e50e201fec2789f76ab7d58bf47339b1d10cc17ad7eb9294d357f3aec8cf1308b8e1458ca20bc0e6d47007cb9a9c6", + "address": "1Fa4qZv7o4u5JhKtusi9fMQkeoy5YzoisK" + }, + { + "change_index": 2, + "address_index": 4, + "private": "Kzep8sRLrgrFhmkxDJGhyjRofPraeGERicPPxQXucDtjXPTPDTdn", + "public": + "04cd6a0f14c87540f103d300ca5ad8721e5d7f7aeb82c949fc2a94a3176958de57e198d0382ff73588fe00b26c4e1e4640b013cd427eb4513d927e8ca46f016f55", + "address": "1NgSccY3CHZu3iRbohbKSnyrLA8EWer5hZ" + }, + { + "change_index": 3, + "address_index": 0, + "private": "L1B2xjr1s7Qna4MnuzKGbSxUJbdSNjTj3jKkEgmZvdz5sTGr98rC", + "public": + "042a93bad1505130534e4089a81fd80714cf979f6aeeee81b375243d1622de588bcf74ad19a24f9a9d26c4417d6cd2d1912e28492931b48a92925816a61db17af2", + "address": "1AEV7riFnB2ku3R3ZefwEEZ5EuyGfwh5rD" + }, + { + "change_index": 3, + "address_index": 1, + "private": "L4mRAApmivfY1BN65Q5Nua1EkQkCFhxwdi1ZZ8A9a141StTwVihN", + "public": + "04ea1055e10e5578c8a63d43b94b9eb0eb15eec1ff720ec79e50fc1f359afdacbd1fbf0febb59802c5533aba0b864027b085f3b5b660f7e0954e53593ee3221056", + "address": "1HqhzRZhDztgkL83fE5gT5Mihnfg9gFBDq" + }, + { + "change_index": 3, + "address_index": 2, + "private": "KwkrG23X4mue3uXT4ZQyToxjNxJDvDJqmx3Qi3YbYqAQ9EPPhr6M", + "public": + "0495b85d333d07f48a2debfc7db33166c78656e34151472d2bdbdf1ae3d09aab0f32446367dc6499be102bfe88afde392b9afd1040a73c304f10076ff7ed044def", + "address": "1C83cnFzh7ZGkgW8rP6J8Q45wkj4imrWKz" + }, + { + "change_index": 3, + "address_index": 3, + "private": "L1Y7ougVchSmYaJcbnKpWEMM3DV5Zk3PttNUNCiNRyJGtuwGtdH1", + "public": + "045c01c7db6753f252c2b58435eeb1da64d8721a1f7d79a77e16f39b6eb1caccf9e9686152319231081db2b7262a84fc693d5e3563a8f6905abd18ffefc3642597", + "address": "1P4wBaQ1YSxXnX8Mn3RPLmonhkRpMWjWND" + }, + { + "change_index": 3, + "address_index": 4, + "private": "L2B9WrKByRAHoE2Y24v7qdqcWLuhney9suYAazdprLgqr7Qn63UH", + "public": + "04f81c2c99d54703e0c9f8521dd15551f516c3f5b9dad1752bf971a4fc6931ba64a748de8e9ba470470c026223e061b156ecb1ba7ea31fe942814c06d3d6184d12", + "address": "1BozcGQiAFzN818ARmJ6Jh2fPixs9CfhHd" + }, + { + "change_index": 4, + "address_index": 0, + "private": "Kyk2UdTtEtKTWdmyxqaagSuLYTBtoPsMBh7BL9KTyuEh5q2469QC", + "public": + "040a4ee5af670478bbf0342b3544aa2a2caa898c6423e4b32434fb967a64d5821ce7584896edbacd25cc6be8ae284222d8486fb50c9e0d22e971f7fdb5a767446f", + "address": "1BAuQuALX1BumpRX4tnhnXCoP4whLANw58" + }, + { + "change_index": 4, + "address_index": 1, + "private": "L32ghpEcqBNLHLkDkNeKE53cpRiQx7nGsihj2o4bipRiFzrK9cJt", + "public": + "04e8cc3cbc38c14e6ad3db225c7eda5ddf07aeef7418d83fc0d7379139faf496ffdfe9849af959f15617072ee3fed470bcbc0e0045f96503365ce39542db009a98", + "address": "13kj2syE6bvmE2MNBarNDFiQMC1jgmde6y" + }, + { + "change_index": 4, + "address_index": 2, + "private": "KzgBSbmGH6hqfssNNSaLRuU2D74ELe4kSHFLC3t493STcQkwMBYC", + "public": + "046c0a5df0d2814eaa9b8802b4264d07e0ed4e9f5d818c30e11cb9b45ff14cb16fd8eee29473d6ac3434379abde136508e5292cf7aba6db81d19afded83e039a7e", + "address": "16KV5vh3ChdsGGtpeJntE2Dxhdm4kZhbUN" + }, + { + "change_index": 4, + "address_index": 3, + "private": "Kzp3NyLsSGXPsneJDy2TVSbRHNTerHn3HrJcdZaTrLc1QyGg27uh", + "public": + "04931c12a4ae94b2f74a68808cbf45b810833a4dedf210e1dddae6745c15549d7f8fce76f1245c92d68b5b7971da367b7cad7bb19866129580b137399c7c11d3da", + "address": "169UaJL5EWdiSLXMvq42mTfAK66t97qZLd" + }, + { + "change_index": 4, + "address_index": 4, + "private": "KzaYTFK25oUkgut37kbZmgR9YN72AeHeE71nNF7x2139wYP4ZgqG", + "public": + "048b12875481071faf94da599722d7d71b415bb7b20144c5439b9b58505cfd673e44ba0414af0dc2662d72755d8cfd5705de9f32d788f8c5777df42c22f8af07bd", + "address": "1JcYxoJhGB4eDJwVppkknnHPNfSBZ9P7CS" + } + ] + } +]; diff --git a/test/elctrum/v2/v2_test.dart b/test/elctrum/v2/v2_test.dart new file mode 100644 index 0000000..2bc7a80 --- /dev/null +++ b/test/elctrum/v2/v2_test.dart @@ -0,0 +1,68 @@ +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/electrum/electrum_v2.dart'; +import 'package:blockchain_utils/bip/wif/wif.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import '../../quick_hex.dart'; +import 'test_vector.dart'; +import 'segwit_test_vector.dart'; + +void main() { + test("test legacy", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final elc = ElectrumV2Standard.fromSeed(seed); + final prv = WifEncoder.encode( + elc.masterPrivateKey.raw, + netVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + ); + expect(prv, i["private"]); + + final public = elc.masterPublicKey.uncompressed.toHex(); + expect(public, i["public"]); + for (final c in (i["child"] as List)) { + final changeIndex = c["change_index"]; + final addressIndex = c["address_index"]; + final cPrv = WifEncoder.encode( + elc.getPrivateKey(changeIndex, addressIndex).raw, + netVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + ); + expect(cPrv, c["private"]); + final cPub = + elc.getPublicKey(changeIndex, addressIndex).uncompressed.toHex(); + expect(cPub, c["public"]); + final cAddress = elc.getAddress(changeIndex, addressIndex); + expect(cAddress, c["address"]); + } + } + }); + test("segwit", () { + for (final i in segwitTestVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final elc = ElectrumV2Segwit.fromSeed(seed); + final prv = WifEncoder.encode( + elc.masterPrivateKey.raw, + netVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + ); + expect(prv, i["private"]); + + final public = elc.masterPublicKey.uncompressed.toHex(); + expect(public, i["public"]); + for (final c in (i["child"] as List)) { + final changeIndex = c["change_index"]; + final addressIndex = c["address_index"]; + final cPrv = WifEncoder.encode( + elc.getPrivateKey(changeIndex, addressIndex).raw, + netVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + ); + expect(cPrv, c["private"]); + final cPub = + elc.getPublicKey(changeIndex, addressIndex).uncompressed.toHex(); + expect(cPub, c["public"]); + final cAddress = elc.getAddress(changeIndex, addressIndex); + expect(cAddress, c["address"]); + } + } + }); +} diff --git a/test/hd_wallet_test.dart b/test/hd_wallet_test.dart deleted file mode 100644 index 7a778e6..0000000 --- a/test/hd_wallet_test.dart +++ /dev/null @@ -1,193 +0,0 @@ -import 'package:blockchain_utils/blockchain_utils.dart'; -import 'package:blockchain_utils/hd_wallet/cypto_currencies/cyrpto_currency.dart'; -import 'package:test/test.dart'; - -void main() { - // Bitcoin-related tests - group("bitcoin", () { - // Define constants for Bitcoin tests - const String mnemonic = - "arm siege skate hungry almost lens domain ordinary train horn dad feel"; - const String defaultBitcoinDriveXprv = - "xprvA3uyqqRVVpqsMYsafaezca3nG1UsindYytdauXGJZFcHpWcWU3VESUW6KdwaUSPehdRFjYJkN5MPMct5LtqGuEwfAXYV338TqrgvjDBFKNk"; - const String defaultBitcoinDriveXpub = - "xpub6GuLFLxPLCQAa2x3mcBzyhzWp3KN8FMQM7ZBhufv7b9GhJwf1aoUzGpaAuPjRLJ7bfk2Xk3sk35z9nhcxT8SbGR16JXW9Fu9ZmNxVgBXVpH"; - const String chidXpriveXPrive = - "xprvAAFpxp4j6RCec9812NbWNGxiQTCbP2hYkt6C3ST9tqNMttBmu9evSgs2Afze5uN1ve5UyBy3Ft4sPTrg2KyWxzk8XCY1DChCP8u1vmkYZ9z"; - const String childXpubXpub = - "xpub6PFBNKbcvnkwpdCU8Q8WjQuSxV35nVRQ871nqprmTAuLmgWvSgyAzVBW1xkgZa2kgjzdaBVuVdLtCgypw7UMSLjjzRuxqrCfP9PgJta2Trh"; - const String childXpubFromChildXpub = - "xpub6WdLGoArPz3ZG7hSde2LH6b2hTVbvXXp96RMTmCpsRocv89Y8bdiR2628MzT16TTVyuxGqTGCXvhZ5qTEVoCqghaRua1JMWmQh8ssgWYUA4"; - - test("test1", () { - // Constants for Bitcoin test case 1 - const CurrencySymbol symbol = CurrencySymbol.btc; - const ExtendedKeyType keyType = ExtendedKeyType.p2pkh; - final Cryptocurrency cryptocurrency = Cryptocurrency.fromSymbol(symbol); - final masterWallet = BIP32HWallet.fromMnemonic(mnemonic); - - // Create a drive wallet and derive xPrive and xPub - final driveWallet = - BIP32HWallet.drivePath(masterWallet, cryptocurrency.defaultPath); - final xPrive = - driveWallet.toXpriveKey(currencySymbol: symbol, semantic: keyType); - final xPub = - driveWallet.toXpublicKey(currencySymbol: symbol, semantic: keyType); - - // Verify that the derived xPrive and xPub match the expected values - expect(xPrive, defaultBitcoinDriveXprv); - expect(xPub, defaultBitcoinDriveXpub); - }); - - test("test2", () { - // Constants for Bitcoin test case 2 - const CurrencySymbol symbol = CurrencySymbol.btc; - const ExtendedKeyType keyType = ExtendedKeyType.p2pkh; - - // Create a master wallet from the defaultBitcoinDriveXprv - final masterWallet = BIP32HWallet.fromXPrivateKey(defaultBitcoinDriveXprv, - currencySymbol: symbol); - - // Create a drive wallet from the master wallet and derive xPrive and xPub - final driveWallet = BIP32HWallet.drivePath(masterWallet, "m/1/6/8/0"); - final xPrive = - driveWallet.toXpriveKey(currencySymbol: symbol, semantic: keyType); - final xPub = - driveWallet.toXpublicKey(currencySymbol: symbol, semantic: keyType); - - // Verify that the derived xPrive and xPub match the expected values - expect(xPrive, chidXpriveXPrive); - expect(xPub, childXpubXpub); - }); - - test("test3", () { - // Constants for Bitcoin test case 3 - const CurrencySymbol symbol = CurrencySymbol.btc; - const ExtendedKeyType keyType = ExtendedKeyType.p2pkh; - - // Create a master wallet from the childXpubXpub - final masterWallet = - BIP32HWallet.fromXpublicKey(childXpubXpub, currencySymbol: symbol); - - // Create a drive wallet from the master wallet and derive xPub - final driveWallet = BIP32HWallet.drivePath(masterWallet, "m/1/0/12/0"); - final xPub = - driveWallet.toXpublicKey(currencySymbol: symbol, semantic: keyType); - - // Verify that the derived xPub matches the expected value - expect(xPub, childXpubFromChildXpub); - }); - }); - - // Dogecoin-related tests (similar structure as Bitcoin tests) - group("dogecoin", () { - // Define constants for Dogecoin tests - const String mnemonic = - "arm siege skate hungry almost lens domain ordinary train horn dad feel"; - const String defaultDogeDriveXprv = - "dgpv5BSrwKoaUD7yVofKBTsPKT2a4PFsgEkDvb9ibsTMBp94SY9e1asxGyN7yzvrcPfGjZwFYKVGLUwNTGRMNKxNLTCutapyTUAmSYKyB51qGxJ"; - const String defaultDogeDriveXpub = - "dgub8vKtH1jU2MnJnfKUDhVMSJaAWwdWWMmwDBvvkyrKywC4zbGLRMRivGmmZCXWGpzporNYFZ7SMzwYUh3YbUe524t5jqWFY1r9yE5Bgf9PEnX"; - const String chidXpriveXPrive = - "dgpv5Kire3V5WrU31EMGeSx77pZ4QMyhnyfySb7fMNqZ3Gck6GgG3CR1rnfLtEDDDfUi3TjEEcVeUx8Yei6qLjgoxN7S9oDhR2ZWpDJtkGMb7pJ"; - const String childXpubXpub = - "dgub94bsyjQy518NJ61Rgga5Eg6ervMLd6hgjBtsWVEXqPfkeKnxSxxnW64zTSzAknMEJDfWw6J4vKcJ367oY7rqgBxMNzrYs7XYXqgomGAEokL"; - const String childXpubFromChildXpub = - "dgub9C59EWZV2Ro4Aen2B8PTJkTJDTBksDFrs4JLEBHLJjbPMM2L3of1YqoTPfH2CZKBJt8YWscQin62mSwGCC9iRATZ1ZVtGpgHfUt1SpGLrgm"; - - test("test1", () { - // Constants for Dogecoin test case 1 - const CurrencySymbol symbol = CurrencySymbol.doge; - const ExtendedKeyType keyType = ExtendedKeyType.p2sh; - final Cryptocurrency cryptocurrency = Cryptocurrency.fromSymbol(symbol); - final masterWallet = BIP32HWallet.fromMnemonic(mnemonic); - - // Create a drive wallet and derive xPrive and xPub - final driveWallet = - BIP32HWallet.drivePath(masterWallet, cryptocurrency.defaultPath); - final xPrive = - driveWallet.toXpriveKey(currencySymbol: symbol, semantic: keyType); - final xPub = - driveWallet.toXpublicKey(currencySymbol: symbol, semantic: keyType); - - // Verify that the derived xPrive and xPub match the expected values - expect(xPrive, defaultDogeDriveXprv); - expect(xPub, defaultDogeDriveXpub); - }); - - test("test2", () { - // Constants for Dogecoin test case 2 - const CurrencySymbol symbol = CurrencySymbol.doge; - const ExtendedKeyType keyType = ExtendedKeyType.p2sh; - - // Create a master wallet from the defaultDogeDriveXprv - final masterWallet = BIP32HWallet.fromXPrivateKey(defaultDogeDriveXprv, - currencySymbol: symbol); - - // Create a drive wallet from the master wallet and derive xPrive and xPub - final driveWallet = BIP32HWallet.drivePath(masterWallet, "m/1/6/8/0"); - final xPrive = - driveWallet.toXpriveKey(currencySymbol: symbol, semantic: keyType); - final xPub = - driveWallet.toXpublicKey(currencySymbol: symbol, semantic: keyType); - - // Verify that the derived xPrive and xPub match the expected values - expect(xPrive, chidXpriveXPrive); - expect(xPub, childXpubXpub); - }); - - test("test3", () { - // Constants for Dogecoin test case 3 - const CurrencySymbol symbol = CurrencySymbol.doge; - const ExtendedKeyType keyType = ExtendedKeyType.p2sh; - - // Create a master wallet from the childXpubXpub - final masterWallet = - BIP32HWallet.fromXpublicKey(childXpubXpub, currencySymbol: symbol); - - // Create a drive wallet from the master wallet and derive xPub - final driveWallet = BIP32HWallet.drivePath(masterWallet, "m/1/0/12/0"); - final xPub = - driveWallet.toXpublicKey(currencySymbol: symbol, semantic: keyType); - - // Verify that the derived xPub matches the expected value - expect(xPub, childXpubFromChildXpub); - }); - }); - - group("secretWallet", () { - // Define a constant password for encryption/decryption - const String password = "MYPASSWORD"; - - test("test1", () { - // Create a BIP39 instance with Japanese language - final bip39 = BIP39(language: Bip39Language.japanese); - - // Generate a random 24-word mnemonic - final mn = bip39.generateMnemonic(strength: Bip39WordLength.words24); - - // Create a BIP32 hierarchical wallet from the generated mnemonic - final bip39Wallet = BIP32HWallet.fromMnemonic(mn); - - // Derive the xPrive and xPub keys from the wallet - final xPriv = bip39Wallet.toXpriveKey(); - final xPub = bip39Wallet.toXpublicKey(); - - // Encrypt the wallet using a password and base64 encoding - final secureStorage = bip39Wallet.toSecretStorage(password, - encoding: SecretWalletEncoding.base64); - - // Decrypt the wallet from the secure storage using the password - final decodeWallet = - BIP32HWallet.fromSecretStorage(secureStorage, password); - - // Derive the xPrive and xPub keys from the decrypted wallet - final decodeXprive = decodeWallet.toXpriveKey(); - final decodeXpub = decodeWallet.toXpublicKey(); - - // Verify that the derived xPrive and xPub keys match the original ones - expect(xPriv, decodeXprive); - expect(xPub, decodeXpub); - }); - }); -} diff --git a/test/monero/mnemonic/monero_mnemonic_test.dart b/test/monero/mnemonic/monero_mnemonic_test.dart new file mode 100644 index 0000000..a3b8387 --- /dev/null +++ b/test/monero/mnemonic/monero_mnemonic_test.dart @@ -0,0 +1,27 @@ +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic.dart'; +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic_decoder.dart'; +import 'package:blockchain_utils/bip/monero/mnemonic/monero_mnemonic_generator.dart'; +import 'package:blockchain_utils/bip/monero/mnemonic/monero_seed_generator.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import "test_vector.dart"; + +void main() { + test("monero mnemonic", () { + for (final i in testVector) { + final lang = MoneroLanguages.values.firstWhere((element) => + element.name.toLowerCase() == + (i["lang"] as String).replaceAll("_", "").toLowerCase()); + final entropy = BytesUtils.fromHexString(i["entropy"]); + final mn = MoneroMnemonicGenerator(lang).fromEntropyWithChecksum(entropy); + expect(mn.toStr(), i["mnemonic"]); + final mnNc = MoneroMnemonicGenerator(lang).fromEntropyNoChecksum(entropy); + expect(mnNc.toStr(), i["no_checksum"]); + final entropyResult = MoneroMnemonicDecoder(lang).decode(mn.toStr()); + expect(bytesEqual(entropyResult, entropy), true); + final seed = MoneroSeedGenerator(mn).generate(); + expect(bytesEqual(seed, entropy), true); + } + }); +} diff --git a/test/monero/mnemonic/test_vector.dart b/test/monero/mnemonic/test_vector.dart new file mode 100644 index 0000000..e1bb553 --- /dev/null +++ b/test/monero/mnemonic/test_vector.dart @@ -0,0 +1,422 @@ +final List> testVector = [ + { + "entropy": "13dd128dcb41ef5c502c29e63d5d6cc3", + "mnemonic": + "\u57fa \u65bd \u8270 \u659c \u5174 \u9a7b \u5dde \u9676 \u7a77 \u575a \u7532 \u4e14 \u5dde", + "no_checksum": + "\u57fa \u65bd \u8270 \u659c \u5174 \u9a7b \u5dde \u9676 \u7a77 \u575a \u7532 \u4e14", + "seed": "13dd128dcb41ef5c502c29e63d5d6cc3", + "lang": "CHINESE_SIMPLIFIED", + "words": "WORDS_NUM_12" + }, + { + "entropy": "5a358b04a80598608673f4ecb59fd7ae", + "mnemonic": + "\u5317 \u79d2 \u5230 \u8d4f \u7597 \u7403 \u6ca1 \u5e9f \u7e41 \u5ea7 \u672c \u7248 \u79d2", + "no_checksum": + "\u5317 \u79d2 \u5230 \u8d4f \u7597 \u7403 \u6ca1 \u5e9f \u7e41 \u5ea7 \u672c \u7248", + "seed": "5a358b04a80598608673f4ecb59fd7ae", + "lang": "CHINESE_SIMPLIFIED", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "2fdfd9d7d3e27a603db4c5d8e27a57576d0ef6071c64cffaca7fb50f49d5ba0b", + "mnemonic": + "\u864e \u5802 \u4fb5 \u786c \u7194 \u5212 \u57fa \u9aa8 \u9759 \u7518 \u5316 \u867d \u7597 \u4fb5 \u8131 \u5356 \u6b65 \u76ee \u78e8 \u8d22 \u82e6 \u5e2d \u8d38 \u83ab \u8d38", + "no_checksum": + "\u864e \u5802 \u4fb5 \u786c \u7194 \u5212 \u57fa \u9aa8 \u9759 \u7518 \u5316 \u867d \u7597 \u4fb5 \u8131 \u5356 \u6b65 \u76ee \u78e8 \u8d22 \u82e6 \u5e2d \u8d38 \u83ab", + "seed": "2fdfd9d7d3e27a603db4c5d8e27a57576d0ef6071c64cffaca7fb50f49d5ba0b", + "lang": "CHINESE_SIMPLIFIED", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "6f74405b88032310b4c13137b02ac643b064bd8c2baa92ffacd5de008a35c832", + "mnemonic": + "\u63a5 \u767d \u8089 \u5851 \u4f60 \u653e \u6c7d \u594b \u6c2e \u7a7a \u80b2 \u79cb \u5343 \u5c01 \u8dc3 \u661f \u9632 \u671b \u6e90 \u62b1 \u57d4 \u4eab \u7b97 \u5757 \u63a5", + "no_checksum": + "\u63a5 \u767d \u8089 \u5851 \u4f60 \u653e \u6c7d \u594b \u6c2e \u7a7a \u80b2 \u79cb \u5343 \u5c01 \u8dc3 \u661f \u9632 \u671b \u6e90 \u62b1 \u57d4 \u4eab \u7b97 \u5757", + "seed": "6f74405b88032310b4c13137b02ac643b064bd8c2baa92ffacd5de008a35c832", + "lang": "CHINESE_SIMPLIFIED", + "words": "WORDS_NUM_25" + }, + { + "entropy": "640d9e4f00ca3836c0d7063e95349997", + "mnemonic": + "lijnschip rotan ampul sukade vanmiddag bijfiguur klus asbak fosfaat rarekiek rally fooi rarekiek", + "no_checksum": + "lijnschip rotan ampul sukade vanmiddag bijfiguur klus asbak fosfaat rarekiek rally fooi", + "seed": "640d9e4f00ca3836c0d7063e95349997", + "lang": "DUTCH", + "words": "WORDS_NUM_12" + }, + { + "entropy": "f6c5c1722b684c5c083c7f5a372093a2", + "mnemonic": + "kajuit opwind benijd worp pfeifer afknap ijklijn peptalk aanlandig pikdonker gegniffel wens opwind", + "no_checksum": + "kajuit opwind benijd worp pfeifer afknap ijklijn peptalk aanlandig pikdonker gegniffel wens", + "seed": "f6c5c1722b684c5c083c7f5a372093a2", + "lang": "DUTCH", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "09525f596dec3fa09231647a1809e6c6f61cc831aaf5717553baef87dafdc135", + "mnemonic": + "zuur cannabis lakmoes aapmens vilt lyceum jurk beks mopperaar oorhanger slamixen midvoor alufolie warm butler stucadoor begierd maakbaar manhaftig coalitie podoloog plamuren stoten aanwakker coalitie", + "no_checksum": + "zuur cannabis lakmoes aapmens vilt lyceum jurk beks mopperaar oorhanger slamixen midvoor alufolie warm butler stucadoor begierd maakbaar manhaftig coalitie podoloog plamuren stoten aanwakker", + "seed": "09525f596dec3fa09231647a1809e6c6f61cc831aaf5717553baef87dafdc135", + "lang": "DUTCH", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "41b872121bed6efe43e6f4b838a9552313309825f88e41d14c54b2360496d67a", + "mnemonic": + "kegelaar lenen napijn aapmens napalm mouw kilsdonk boos tolbaas simkaart zijbeuk brinckman gedijd unitair affiche hedonist ereteken atsma legsel nijging spoed aanlandig lijnschip zetbaas hedonist", + "no_checksum": + "kegelaar lenen napijn aapmens napalm mouw kilsdonk boos tolbaas simkaart zijbeuk brinckman gedijd unitair affiche hedonist ereteken atsma legsel nijging spoed aanlandig lijnschip zetbaas", + "seed": "41b872121bed6efe43e6f4b838a9552313309825f88e41d14c54b2360496d67a", + "lang": "DUTCH", + "words": "WORDS_NUM_25" + }, + { + "entropy": "d0299bc2beaeb39e7c043c5ae3e29ae0", + "mnemonic": + "maverick jagged depth liquid network deity directed sorry cistern bacon gyrate educated jagged", + "no_checksum": + "maverick jagged depth liquid network deity directed sorry cistern bacon gyrate educated", + "seed": "d0299bc2beaeb39e7c043c5ae3e29ae0", + "lang": "ENGLISH", + "words": "WORDS_NUM_12" + }, + { + "entropy": "4e94f43683034a0b6eb0cec59208f2a7", + "mnemonic": + "rage irritate paper buffet serving spying much shyness mops heels bemused school rage", + "no_checksum": + "rage irritate paper buffet serving spying much shyness mops heels bemused school", + "seed": "4e94f43683034a0b6eb0cec59208f2a7", + "lang": "ENGLISH", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "1b60da151d731b545ade47317d1a2e944f54d1879a817bbefa59461d5116d6ca", + "mnemonic": + "money drinks fleet academy rising anxiety bubble tether already portents wolf nabbing furnished cycling rays duets weird recipe coffee vaults ambush darted fungal bifocals bubble", + "no_checksum": + "money drinks fleet academy rising anxiety bubble tether already portents wolf nabbing furnished cycling rays duets weird recipe coffee vaults ambush darted fungal bifocals", + "seed": "1b60da151d731b545ade47317d1a2e944f54d1879a817bbefa59461d5116d6ca", + "lang": "ENGLISH", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "aa891946758d80ea1b24a3c7a3fe51bff5d9258cbe34ccad20ed2b6200e293f0", + "mnemonic": + "ponies looking silk opposite racetrack onboard mammal gulp byline decay eldest yields goggles pruned dying farming ceiling swept heels gills richly evicted unopened tawny ponies", + "no_checksum": + "ponies looking silk opposite racetrack onboard mammal gulp byline decay eldest yields goggles pruned dying farming ceiling swept heels gills richly evicted unopened tawny", + "seed": "aa891946758d80ea1b24a3c7a3fe51bff5d9258cbe34ccad20ed2b6200e293f0", + "lang": "ENGLISH", + "words": "WORDS_NUM_25" + }, + { + "entropy": "1d2c8e4c3d9051ee22e19fb4c09610d5", + "mnemonic": + "cigale violent employer badge gens facile finir mauvais cuve aborder apercevoir stop stop", + "no_checksum": + "cigale violent employer badge gens facile finir mauvais cuve aborder apercevoir stop", + "seed": "1d2c8e4c3d9051ee22e19fb4c09610d5", + "lang": "FRENCH", + "words": "WORDS_NUM_12" + }, + { + "entropy": "aebb5264236176ae18f26d055d1549ee", + "mnemonic": + "pile enjeu placer brique crabe tacot satisfaire employer esprit esprit gilet falloir pile", + "no_checksum": + "pile enjeu placer brique crabe tacot satisfaire employer esprit esprit gilet falloir", + "seed": "aebb5264236176ae18f26d055d1549ee", + "lang": "FRENCH", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "4e9f8bde8a35157ec59449381ae14bce2a07a837512b3b1d3359717b754f1718", + "mnemonic": + "poitrine taie relation exprimer gommer style robe vice cloner aussi chacun vertige givre munir retirer jury unisson atlas prison amie membre prix nouer plat givre", + "no_checksum": + "poitrine taie relation exprimer gommer style robe vice cloner aussi chacun vertige givre munir retirer jury unisson atlas prison amie membre prix nouer plat", + "seed": "4e9f8bde8a35157ec59449381ae14bce2a07a837512b3b1d3359717b754f1718", + "lang": "FRENCH", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "1e58bbac7bc1577ff5f237be851c4c7d02dcedfb9e9c528ac75f6022aae7ff67", + "mnemonic": + "nerveux pizza forme muse parler buste fiable gras bulle arche carie parler rhume jardin image descendre voir mesure juste odorat racler papier notre volt pizza", + "no_checksum": + "nerveux pizza forme muse parler buste fiable gras bulle arche carie parler rhume jardin image descendre voir mesure juste odorat racler papier notre volt", + "seed": "1e58bbac7bc1577ff5f237be851c4c7d02dcedfb9e9c528ac75f6022aae7ff67", + "lang": "FRENCH", + "words": "WORDS_NUM_25" + }, + { + "entropy": "d79ad49a5f912c08ea449c5d31ada3e1", + "mnemonic": + "Animator Kanal Bonbon Almosen Tempo Urlaub Tatnacht treffen Elch Gl\u00fcck erbl\u00fchen Brillanz Urlaub", + "no_checksum": + "Animator Kanal Bonbon Almosen Tempo Urlaub Tatnacht treffen Elch Gl\u00fcck erbl\u00fchen Brillanz", + "seed": "d79ad49a5f912c08ea449c5d31ada3e1", + "lang": "GERMAN", + "words": "WORDS_NUM_12" + }, + { + "entropy": "690cd7c1a1e93d62602cf632fdf297a2", + "mnemonic": + "backen Bezug Theater Erdteil necken Badesee Kasper W\u00e4sche Bitte Anhalter Rohdaten Gitarre Anhalter", + "no_checksum": + "backen Bezug Theater Erdteil necken Badesee Kasper W\u00e4sche Bitte Anhalter Rohdaten Gitarre", + "seed": "690cd7c1a1e93d62602cf632fdf297a2", + "lang": "GERMAN", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "b074dd78757d03ea6db6fa0c94d252d51a70f0186a133a200c070aaeece83233", + "mnemonic": + "Motorrad Mastkorb Bewegung wechseln Vektor S\u00e4ure Anschein Gedanke Hagel jobben Diagnose Anorak Altruist Ente Fockmast Luder Bitte Elan Zugvogel Flugzeug Anschein Kaimauer Gestade Loipe Gestade", + "no_checksum": + "Motorrad Mastkorb Bewegung wechseln Vektor S\u00e4ure Anschein Gedanke Hagel jobben Diagnose Anorak Altruist Ente Fockmast Luder Bitte Elan Zugvogel Flugzeug Anschein Kaimauer Gestade Loipe", + "seed": "b074dd78757d03ea6db6fa0c94d252d51a70f0186a133a200c070aaeece83233", + "lang": "GERMAN", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "4289a5dc93362f54fea4045d4e387d0fe5ca1109b5d31ea2004d0009c09a858a", + "mnemonic": + "Wegegeld Bauteil Zacke Kapit\u00e4n Pokal Barbar Luder Trick Elan Fauna Liftboy M\u00fche Vesper hecheln H\u00fcrde Decoder Zollhund k\u00fcssen Vandale Anflug Aufsatz Harz Heulboje Analogie Elan", + "no_checksum": + "Wegegeld Bauteil Zacke Kapit\u00e4n Pokal Barbar Luder Trick Elan Fauna Liftboy M\u00fche Vesper hecheln H\u00fcrde Decoder Zollhund k\u00fcssen Vandale Anflug Aufsatz Harz Heulboje Analogie", + "seed": "4289a5dc93362f54fea4045d4e387d0fe5ca1109b5d31ea2004d0009c09a858a", + "lang": "GERMAN", + "words": "WORDS_NUM_25" + }, + { + "entropy": "8ea0a54d4d7dbef600cbafd3cc0109df", + "mnemonic": + "orbita esame parrucca asfalto solo scultore matrice sparire pilastro elmetto panfilo latte esame", + "no_checksum": + "orbita esame parrucca asfalto solo scultore matrice sparire pilastro elmetto panfilo latte", + "seed": "8ea0a54d4d7dbef600cbafd3cc0109df", + "lang": "ITALIAN", + "words": "WORDS_NUM_12" + }, + { + "entropy": "3e177f270b1fb94d83fcf80db414a9af", + "mnemonic": + "vanto muovere relatore eminenza malattia sommario nemico cratere dovere rettile gatto barba barba", + "no_checksum": + "vanto muovere relatore eminenza malattia sommario nemico cratere dovere rettile gatto barba", + "seed": "3e177f270b1fb94d83fcf80db414a9af", + "lang": "ITALIAN", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "9320514b6de6ce3bf34718987e423a7281477626b2eb6b5ffeda6a95c76203bd", + "mnemonic": + "petrolio nove tema insulto aderire coprire iniziare ovest civetta mancare flacone sogliola pugilato sapere turista fonderia toccare detonare fibbia maggio basilico pietra attrarre sinergia maggio", + "no_checksum": + "petrolio nove tema insulto aderire coprire iniziare ovest civetta mancare flacone sogliola pugilato sapere turista fonderia toccare detonare fibbia maggio basilico pietra attrarre sinergia", + "seed": "9320514b6de6ce3bf34718987e423a7281477626b2eb6b5ffeda6a95c76203bd", + "lang": "ITALIAN", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "93df2177c5801de697bbf77f7876d71808f058df7bb54189500be8947c4df5bd", + "mnemonic": + "avvenire arrosto mangiare anima disdetta causa gioiello ingoiare vivavoce fuso antenna buio uccello clausola avido stoffa spugna foglio aggiunta unghia lezione bonifico melone disdetta clausola", + "no_checksum": + "avvenire arrosto mangiare anima disdetta causa gioiello ingoiare vivavoce fuso antenna buio uccello clausola avido stoffa spugna foglio aggiunta unghia lezione bonifico melone disdetta", + "seed": "93df2177c5801de697bbf77f7876d71808f058df7bb54189500be8947c4df5bd", + "lang": "ITALIAN", + "words": "WORDS_NUM_25" + }, + { + "entropy": "6dea77cd316cc9053c7ffe732c21e609", + "mnemonic": + "\u306b\u304f\u3057\u307f \u305f\u3093\u304d \u3057\u307e\u3046 \u3066\u3093\u3051\u3093 \u3058\u3086\u3046 \u3059\u304f\u306a\u3044 \u306f\u3093\u3053 \u3044\u3053\u3064 \u3058\u3066\u3093 \u304b\u3044\u3075\u304f \u3042\u3076\u3089 \u3044\u3061\u304a\u3046 \u3058\u3066\u3093", + "no_checksum": + "\u306b\u304f\u3057\u307f \u305f\u3093\u304d \u3057\u307e\u3046 \u3066\u3093\u3051\u3093 \u3058\u3086\u3046 \u3059\u304f\u306a\u3044 \u306f\u3093\u3053 \u3044\u3053\u3064 \u3058\u3066\u3093 \u304b\u3044\u3075\u304f \u3042\u3076\u3089 \u3044\u3061\u304a\u3046", + "seed": "6dea77cd316cc9053c7ffe732c21e609", + "lang": "JAPANESE", + "words": "WORDS_NUM_12" + }, + { + "entropy": "125b71a533f1642379d8c62e7389a9da", + "mnemonic": + "\u3068\u3055\u304b \u305f\u304f\u3055\u3093 \u3051\u3044\u308c\u304d \u305f\u3044\u3080 \u304d\u3076\u3093 \u3053\u3068\u3057 \u305f\u3044\u3089 \u3057\u306a\u3093 \u305f\u305d\u304c\u308c \u3044\u304c\u3044 \u305b\u3093\u3057\u3085 \u3056\u3064\u304c\u304f \u3044\u304c\u3044", + "no_checksum": + "\u3068\u3055\u304b \u305f\u304f\u3055\u3093 \u3051\u3044\u308c\u304d \u305f\u3044\u3080 \u304d\u3076\u3093 \u3053\u3068\u3057 \u305f\u3044\u3089 \u3057\u306a\u3093 \u305f\u305d\u304c\u308c \u3044\u304c\u3044 \u305b\u3093\u3057\u3085 \u3056\u3064\u304c\u304f", + "seed": "125b71a533f1642379d8c62e7389a9da", + "lang": "JAPANESE", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "6ea3c8c358d801a024b0cb1004cc3f51b40889f77faff2e6ce0751e8ca62a90f", + "mnemonic": + "\u3057\u305f\u304e \u306b\u305b\u3082\u306e \u305d\u307c\u304f \u306e\u305b\u308b \u304f\u3046\u3053\u3046 \u306d\u3076\u305d\u304f \u3046\u306a\u305a\u304f \u305f\u307c\u3046 \u3064\u3064\u3058 \u3060\u3093\u3061 \u304f\u3055\u3070\u306a \u305c\u3093\u3089 \u305d\u3093\u3057\u3064 \u3053\u3093\u304b\u3044 \u3053\u3051\u308b \u3054\u304b\u3093 \u306d\u3076\u305d\u304f \u3067\u3093\u308a\u3087\u304f \u3044\u305f\u307f \u304d\u306e\u3057\u305f \u304a\u3055\u3048\u308b \u3055\u3093\u304b \u306a\u3075\u3060 \u306d\u3089\u3046 \u304d\u306e\u3057\u305f", + "no_checksum": + "\u3057\u305f\u304e \u306b\u305b\u3082\u306e \u305d\u307c\u304f \u306e\u305b\u308b \u304f\u3046\u3053\u3046 \u306d\u3076\u305d\u304f \u3046\u306a\u305a\u304f \u305f\u307c\u3046 \u3064\u3064\u3058 \u3060\u3093\u3061 \u304f\u3055\u3070\u306a \u305c\u3093\u3089 \u305d\u3093\u3057\u3064 \u3053\u3093\u304b\u3044 \u3053\u3051\u308b \u3054\u304b\u3093 \u306d\u3076\u305d\u304f \u3067\u3093\u308a\u3087\u304f \u3044\u305f\u307f \u304d\u306e\u3057\u305f \u304a\u3055\u3048\u308b \u3055\u3093\u304b \u306a\u3075\u3060 \u306d\u3089\u3046", + "seed": "6ea3c8c358d801a024b0cb1004cc3f51b40889f77faff2e6ce0751e8ca62a90f", + "lang": "JAPANESE", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "cafcabef215e024f270f512cbafc922e31c29f0dac54e4b0848d2a79e21bff6a", + "mnemonic": + "\u3060\u3093\u307c\u3046 \u305b\u3093\u3059\u3044 \u3057\u3093\u3053\u3046 \u305d\u304c\u3044 \u306f\u3093\u3081\u3044 \u304f\u305b\u3052 \u3046\u3054\u304f \u3051\u3044\u305f\u3044 \u3057\u3063\u304b\u308a \u3057\u3083\u3046\u3093 \u3044\u3061\u3076 \u304d\u304d\u3066 \u304d\u306a\u3044 \u3060\u3093\u306a \u3064\u3088\u3044 \u306d\u3044\u308b \u3053\u3064\u3076 \u3046\u304a\u3056 \u3046\u3061\u304c\u308f \u306f\u3093\u3089\u3093 \u3055\u307b\u3046 \u3068\u304f\u3079\u3064 \u3066\u306c\u3050\u3044 \u304b\u304c\u304f \u3051\u3044\u305f\u3044", + "no_checksum": + "\u3060\u3093\u307c\u3046 \u305b\u3093\u3059\u3044 \u3057\u3093\u3053\u3046 \u305d\u304c\u3044 \u306f\u3093\u3081\u3044 \u304f\u305b\u3052 \u3046\u3054\u304f \u3051\u3044\u305f\u3044 \u3057\u3063\u304b\u308a \u3057\u3083\u3046\u3093 \u3044\u3061\u3076 \u304d\u304d\u3066 \u304d\u306a\u3044 \u3060\u3093\u306a \u3064\u3088\u3044 \u306d\u3044\u308b \u3053\u3064\u3076 \u3046\u304a\u3056 \u3046\u3061\u304c\u308f \u306f\u3093\u3089\u3093 \u3055\u307b\u3046 \u3068\u304f\u3079\u3064 \u3066\u306c\u3050\u3044 \u304b\u304c\u304f", + "seed": "cafcabef215e024f270f512cbafc922e31c29f0dac54e4b0848d2a79e21bff6a", + "lang": "JAPANESE", + "words": "WORDS_NUM_25" + }, + { + "entropy": "5c1c71c9396670a37184757f87cfa1f7", + "mnemonic": + "doloso juta europio baoba doer tadjique beduino udenista hedonista emulsao oigale nisto oigale", + "no_checksum": + "doloso juta europio baoba doer tadjique beduino udenista hedonista emulsao oigale nisto", + "seed": "5c1c71c9396670a37184757f87cfa1f7", + "lang": "PORTUGUESE", + "words": "WORDS_NUM_12" + }, + { + "entropy": "5b40df1e3afa2f084103a0f8dbfae5e6", + "mnemonic": + "texugo robusto tufo incutir helminto idoso timpano mnemonico luto erguido jasmim gostou incutir", + "no_checksum": + "texugo robusto tufo incutir helminto idoso timpano mnemonico luto erguido jasmim gostou", + "seed": "5b40df1e3afa2f084103a0f8dbfae5e6", + "lang": "PORTUGUESE", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "dcf3a5d588b75ee8bd1cf3dfcc9d818150f192d9e521d0f30dd5ed78faf2116e", + "mnemonic": + "bifurcar suite otite ornitologo dote bugre varziano arbusto usavel usavel povoar eclusa epiteto usei rimel tostar arguto adnominal radonio budista nalgum ilativo umero fominha adnominal", + "no_checksum": + "bifurcar suite otite ornitologo dote bugre varziano arbusto usavel usavel povoar eclusa epiteto usei rimel tostar arguto adnominal radonio budista nalgum ilativo umero fominha", + "seed": "dcf3a5d588b75ee8bd1cf3dfcc9d818150f192d9e521d0f30dd5ed78faf2116e", + "lang": "PORTUGUESE", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "ff02ab0a395021065832637a3dd7e3b972bf49486cdcc12796d4ee932e6bbe31", + "mnemonic": + "liturgico dueto epoxi durou busto cinzento doloso suruba filtro vociferar mavioso esturricar vigoroso oposto vidros bolso hedonista masturbar ignorar cristo ralo esoterismo vedico cabuqui suruba", + "no_checksum": + "liturgico dueto epoxi durou busto cinzento doloso suruba filtro vociferar mavioso esturricar vigoroso oposto vidros bolso hedonista masturbar ignorar cristo ralo esoterismo vedico cabuqui", + "seed": "ff02ab0a395021065832637a3dd7e3b972bf49486cdcc12796d4ee932e6bbe31", + "lang": "PORTUGUESE", + "words": "WORDS_NUM_25" + }, + { + "entropy": "1eaf3ab2c3b0b4e1ef285ef527c7c39b", + "mnemonic": + "fruta fogata besar casco galer\u00eda ebrio fama flauta exacto rabia enlace reunir enlace", + "no_checksum": + "fruta fogata besar casco galer\u00eda ebrio fama flauta exacto rabia enlace reunir", + "seed": "1eaf3ab2c3b0b4e1ef285ef527c7c39b", + "lang": "SPANISH", + "words": "WORDS_NUM_12" + }, + { + "entropy": "8d6e5035cbd4547d92b2b536e6f80fc2", + "mnemonic": + "linterna raci\u00f3n boda gratis oro curioso ciego fachada ligero fara\u00f3n pie llaga raci\u00f3n", + "no_checksum": + "linterna raci\u00f3n boda gratis oro curioso ciego fachada ligero fara\u00f3n pie llaga", + "seed": "8d6e5035cbd4547d92b2b536e6f80fc2", + "lang": "SPANISH", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "04efbd0efaf9b809086d1f85b245db7bb791a3926ea1e8a849fa1f2781bf3862", + "mnemonic": + "imitar asumir borrar cuota \u00e1baco alambre motivo gavil\u00e1n abogado reja propio explicar r\u00e1pido gamba altar gamba denso remo extremo mecha pa\u00f1uelo bobina fiera osezno osezno", + "no_checksum": + "imitar asumir borrar cuota \u00e1baco alambre motivo gavil\u00e1n abogado reja propio explicar r\u00e1pido gamba altar gamba denso remo extremo mecha pa\u00f1uelo bobina fiera osezno", + "seed": "04efbd0efaf9b809086d1f85b245db7bb791a3926ea1e8a849fa1f2781bf3862", + "lang": "SPANISH", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "42af8f7149ba3c57c8732375369282c98dd282e961d43c7082ed7d7605167cf7", + "mnemonic": + "gota ayer inmune hurac\u00e1n bache furia igl\u00fa picar dilema regreso mel\u00f3n galer\u00eda acn\u00e9 olor mito pulm\u00f3n bolsa lacra cola buey llave nueve champ\u00fa campo lacra", + "no_checksum": + "gota ayer inmune hurac\u00e1n bache furia igl\u00fa picar dilema regreso mel\u00f3n galer\u00eda acn\u00e9 olor mito pulm\u00f3n bolsa lacra cola buey llave nueve champ\u00fa campo", + "seed": "42af8f7149ba3c57c8732375369282c98dd282e961d43c7082ed7d7605167cf7", + "lang": "SPANISH", + "words": "WORDS_NUM_25" + }, + { + "entropy": "8f2d586c94986386819933c26a3deea1", + "mnemonic": + "\u0443\u043f\u0440\u0435\u043a\u0430\u0442\u044c \u043a\u043e\u0432\u0435\u0440 \u0442\u0432\u043e\u0440\u0438\u0442\u044c \u043b\u043e\u0432\u0438\u0442\u044c \u0434\u0435\u0432\u0443\u0448\u043a\u0430 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0443\u043a\u043b\u0430 \u0441\u043a\u043e\u0440\u044b\u0439 \u043c\u044f\u0433\u043a\u0438\u0439 \u0447\u0440\u0435\u0432\u0430\u0442\u044b\u0439 \u043c\u044f\u0441\u043e \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0442\u0432\u043e\u0440\u0438\u0442\u044c", + "no_checksum": + "\u0443\u043f\u0440\u0435\u043a\u0430\u0442\u044c \u043a\u043e\u0432\u0435\u0440 \u0442\u0432\u043e\u0440\u0438\u0442\u044c \u043b\u043e\u0432\u0438\u0442\u044c \u0434\u0435\u0432\u0443\u0448\u043a\u0430 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0443\u043a\u043b\u0430 \u0441\u043a\u043e\u0440\u044b\u0439 \u043c\u044f\u0433\u043a\u0438\u0439 \u0447\u0440\u0435\u0432\u0430\u0442\u044b\u0439 \u043c\u044f\u0441\u043e \u0432\u0435\u0434\u0443\u0449\u0438\u0439", + "seed": "8f2d586c94986386819933c26a3deea1", + "lang": "RUSSIAN", + "words": "WORDS_NUM_12" + }, + { + "entropy": "cd90cca793778df95b009c7a90dd8667", + "mnemonic": + "\u0434\u0438\u0447\u044c \u0430\u043c\u043d\u0435\u0437\u0438\u044f \u0440\u0443\u0438\u043d\u044b \u043d\u0435\u043b\u0435\u043f\u044b\u0439 \u0431\u043e\u0431\u0435\u0440 \u0431\u0430\u0433\u0430\u0436 \u0441\u043e\u0443\u0441 \u0442\u0432\u0430\u0440\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0432\u0438\u043d\u043e \u0431\u043b\u044e\u0434\u043e \u043d\u0430\u0431\u043e\u0440 \u0440\u0443\u0438\u043d\u044b", + "no_checksum": + "\u0434\u0438\u0447\u044c \u0430\u043c\u043d\u0435\u0437\u0438\u044f \u0440\u0443\u0438\u043d\u044b \u043d\u0435\u043b\u0435\u043f\u044b\u0439 \u0431\u043e\u0431\u0435\u0440 \u0431\u0430\u0433\u0430\u0436 \u0441\u043e\u0443\u0441 \u0442\u0432\u0430\u0440\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0432\u0438\u043d\u043e \u0431\u043b\u044e\u0434\u043e \u043d\u0430\u0431\u043e\u0440", + "seed": "cd90cca793778df95b009c7a90dd8667", + "lang": "RUSSIAN", + "words": "WORDS_NUM_13" + }, + { + "entropy": + "4fc7fbc9d497c3d50d9851ff31612c50b5338fd1ab7ef7bacf7dea695c22bf7a", + "mnemonic": + "\u0434\u0443\u0431\u043e\u0432\u044b\u0439 \u0449\u0435\u0434\u0440\u044b\u0439 \u0441\u043f\u0443\u0442\u043d\u0438\u043a \u0441\u044a\u0435\u0437\u0434 \u0435\u0433\u0435\u0440\u044c \u0431\u043e\u0441\u043e\u0439 \u0443\u0442\u044e\u0433 \u0430\u043d\u0435\u043a\u0434\u043e\u0442 \u0430\u043c\u0435\u0442\u0438\u0441\u0442 \u0430\u0432\u0442\u043e\u0440 \u0441\u0443\u0432\u0435\u043d\u0438\u0440 \u0431\u0438\u0433\u0443\u0434\u0438 \u0442\u0430\u0441\u043a\u0430\u0442\u044c \u043e\u0447\u0438\u0449\u0430\u0442\u044c \u043b\u0435\u0434\u044f\u043d\u043e\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c \u0440\u0430\u0439\u043e\u043d \u043a\u0443\u0431\u043e\u043a \u0441\u043e\u043f\u0435\u0440\u043d\u0438\u043a \u0443\u0441\u043f\u0435\u0442\u044c \u0436\u0435\u043d\u0449\u0438\u043d\u0430 \u0441\u044b\u0442\u044b\u0439 \u0440\u044b\u0441\u044c \u0432\u044b\u0448\u043a\u0430 \u0430\u0432\u0442\u043e\u0440", + "no_checksum": + "\u0434\u0443\u0431\u043e\u0432\u044b\u0439 \u0449\u0435\u0434\u0440\u044b\u0439 \u0441\u043f\u0443\u0442\u043d\u0438\u043a \u0441\u044a\u0435\u0437\u0434 \u0435\u0433\u0435\u0440\u044c \u0431\u043e\u0441\u043e\u0439 \u0443\u0442\u044e\u0433 \u0430\u043d\u0435\u043a\u0434\u043e\u0442 \u0430\u043c\u0435\u0442\u0438\u0441\u0442 \u0430\u0432\u0442\u043e\u0440 \u0441\u0443\u0432\u0435\u043d\u0438\u0440 \u0431\u0438\u0433\u0443\u0434\u0438 \u0442\u0430\u0441\u043a\u0430\u0442\u044c \u043e\u0447\u0438\u0449\u0430\u0442\u044c \u043b\u0435\u0434\u044f\u043d\u043e\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c \u0440\u0430\u0439\u043e\u043d \u043a\u0443\u0431\u043e\u043a \u0441\u043e\u043f\u0435\u0440\u043d\u0438\u043a \u0443\u0441\u043f\u0435\u0442\u044c \u0436\u0435\u043d\u0449\u0438\u043d\u0430 \u0441\u044b\u0442\u044b\u0439 \u0440\u044b\u0441\u044c \u0432\u044b\u0448\u043a\u0430", + "seed": "4fc7fbc9d497c3d50d9851ff31612c50b5338fd1ab7ef7bacf7dea695c22bf7a", + "lang": "RUSSIAN", + "words": "WORDS_NUM_24" + }, + { + "entropy": + "2b99c256d367a626f511de3a93b13c6fec1aed7420f518dc56082a21a0fbab74", + "mnemonic": + "\u0432\u0435\u0441\u0435\u043b\u044b\u0439 \u0440\u043e\u0437\u043e\u0432\u044b\u0439 \u0430\u0437\u0430\u0440\u0442 \u043c\u0430\u0444\u0438\u044f \u0441\u0431\u044b\u0442 \u0443\u0441\u043d\u0443\u0442\u044c \u0443\u0432\u0435\u0440\u044f\u0442\u044c \u043a\u0440\u044e\u0447\u043e\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0430 \u0434\u0440\u0443\u0433 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0431\u0440\u0435\u0432\u043d\u043e \u0431\u0435\u0440\u0435\u0433 \u043e\u0431\u0430\u044f\u043d\u0438\u0435 \u0448\u0430\u0448\u043b\u044b\u043a \u043f\u0438\u043e\u043d\u0435\u0440 \u043c\u043e\u0442\u043e\u0440 \u0432\u0437\u043b\u0435\u0442\u0430\u0442\u044c \u043e\u0442\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0433\u043e\u0440\u0430\u0442\u044c \u043a\u0430\u0434\u0440 \u0441\u0430\u0443\u043d\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0430 \u043c\u043e\u0442\u043e\u0440", + "no_checksum": + "\u0432\u0435\u0441\u0435\u043b\u044b\u0439 \u0440\u043e\u0437\u043e\u0432\u044b\u0439 \u0430\u0437\u0430\u0440\u0442 \u043c\u0430\u0444\u0438\u044f \u0441\u0431\u044b\u0442 \u0443\u0441\u043d\u0443\u0442\u044c \u0443\u0432\u0435\u0440\u044f\u0442\u044c \u043a\u0440\u044e\u0447\u043e\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0430 \u0434\u0440\u0443\u0433 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0431\u0440\u0435\u0432\u043d\u043e \u0431\u0435\u0440\u0435\u0433 \u043e\u0431\u0430\u044f\u043d\u0438\u0435 \u0448\u0430\u0448\u043b\u044b\u043a \u043f\u0438\u043e\u043d\u0435\u0440 \u043c\u043e\u0442\u043e\u0440 \u0432\u0437\u043b\u0435\u0442\u0430\u0442\u044c \u043e\u0442\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0433\u043e\u0440\u0430\u0442\u044c \u043a\u0430\u0434\u0440 \u0441\u0430\u0443\u043d\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0430", + "seed": "2b99c256d367a626f511de3a93b13c6fec1aed7420f518dc56082a21a0fbab74", + "lang": "RUSSIAN", + "words": "WORDS_NUM_25" + } +]; diff --git a/test/monero/monero_test.dart b/test/monero/monero_test.dart new file mode 100644 index 0000000..7e3dbd4 --- /dev/null +++ b/test/monero/monero_test.dart @@ -0,0 +1,32 @@ +import 'package:blockchain_utils/bip/monero/conf/monero_coins.dart'; +import 'package:blockchain_utils/bip/monero/monero_base.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import '../quick_hex.dart'; +import 'test_vector.dart'; + +void main() { + test("monero", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final coin = MoneroCoins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).replaceAll("_", "").toLowerCase()); + final w = Monero.fromSeed(seed, coinType: coin); + expect(w.privateSpendKey.raw.toHex(), i["private_sky"]); + expect(w.privateViewKey.raw.toHex(), i["private_vkey"]); + expect(w.publicSpendKey.compressed.toHex(), i["public_sky"]); + expect(w.publicViewKey.compressed.toHex(), i["public_vsky"]); + expect(w.primaryAddress, i["primary_address"]); + final paymentId = BytesUtils.fromHexString(i["payment_id"]); + expect(w.integratedAddress(paymentId), i["integrated_address"]); + final addresses = List.from(i["addresses"]); + for (final a in addresses) { + final minorIndex = a["minor_idx"]; + final majorIndex = a["major_idx"]; + final addr = w.subaddress(minorIndex, majorIndex: majorIndex); + expect(a["address"], addr); + } + } + }); +} diff --git a/test/monero/test_vector.dart b/test/monero/test_vector.dart new file mode 100644 index 0000000..0fcb4f5 --- /dev/null +++ b/test/monero/test_vector.dart @@ -0,0 +1,8452 @@ +final List> testVector = [ + { + "seed": "2332e267c4ee68b1d1f15c5ade17abe6c9397a4f8015368df23de1fa1cc31bae", + "coin": "MONERO_MAINNET", + "private_sky": + "e1ea47c6bc0fb14072d1b0fc2b55f515c9397a4f8015368df23de1fa1cc31b0e", + "private_vkey": + "b67e232d22a67bcdb831acf94217ee8ec67b3324b29c79982bd796647b4a3a0e", + "public_sky": + "d0a42991d6f8640f4aae2bd58e509f7d848a3daea4fce11a9ab57f925eef4ded", + "public_vsky": + "3f741b80e6c1e28d0098a194d32e0f437428861bc03c8d698f6c3926eecdf2aa", + "primary_address": + "49Xgwx3RfyV3ZMEVyrUNuUMzgQ1WHjkWL5T6Xk7QaTszggbtPbRPEkZQau9yACYEmUCHPNrU2MBdnJf4s4xLK5AyLDP5ucd", + "payment_id": "2b1a3c54591708cb", + "integrated_address": + "4KEMxkrvHF13ZMEVyrUNuUMzgQ1WHjkWL5T6Xk7QaTszggbtPbRPEkZQau9yACYEmUCHPNrU2MBdnJf4s4xLK5AyVTr66Q8LFefPwwfA1t", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "49Xgwx3RfyV3ZMEVyrUNuUMzgQ1WHjkWL5T6Xk7QaTszggbtPbRPEkZQau9yACYEmUCHPNrU2MBdnJf4s4xLK5AyLDP5ucd" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "85cqdW5fHGvUQzGXzrRUHf6P6AJjJrYxa25v351wNJCrS3p1g8wL1gk35HjxyQGGJPY3SygtnFxKjHtVcA7rAM1JBHukQod" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "8AMPLCTDfj1d8KNrVV9ijDS6ES3b7d7w9fdZvQDec9ZDTNdNZTQFn6G4v56m1jV39J444Yk9PoYa1aCckko5Ld58P4jnroM" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "8B54UxDb4TefonshsS5uULfDpp66xdsvMQPunVAZfW61Sb7HJH3yTBxaVoAQoYGLayUc2Phr7yKXeE3QnfVuEAe71oubhvw" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "89dJbRQoebuXerPXkVYM297jdexnip2tqQ1egSnXtztf14m56R2YpezEfJcdg3ye5oDKRkVbpBqA7XkeFJpjWmGoHp3HF2k" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "84pRipiEQZp9wLRLePxqGHQbseeprKWGv8o4zxWnEW75LbHbQjAtqkCi5Y4tkWN12Ddcrj9EWFw7sALevfYudyi1F27EpyZ" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "84GQsY4PCLd9iHhGMzwQt3Fryt3jyFEuSKar1RKBHREYdq9UdA3XENbDv22rSfa4asUKAY1nwcbzkHP7aRU17VS7A1gUvnZ" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "83fCQMqrPuY2sH64UhWHGMUfnCoHCQm6nFDE4NK2X2rvUjCUNfBPP6j3Udh2cQMCryYYCiLCHVstZF3zcnE6pszdAgkRaVi" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "85Lh7m8BZKuG9u2DpTbBrnT9PN6hdxmfkVpdEhtEQsoMEUDndZJPerwbYsK9EYwGns8MkShnAET3o2xnXfAdMo7E2eZSmyE" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "887FibKKvY1X89NK3AtWBvDyMaS7hJNQVac44dGbKdWN3YwmP1szh7JKxh5nyjzgoQTyu3QLvjKHk9FGWBY3YsoB2unfmRj" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "84wRbUgxkykbdrQLmxLNVzDZggbQvnMoicNCWJircVQFX98gfKj6gZz6tHRh9mokZL7SsM7y1goHxLhF94yPd881SqHiNZF" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "8C2kNiXNJt29uWpX6bAoTbeStrraAGN21JFX2YW5AzLsQQiq89ZCkQ28QurQMgSN6cTaNfE3Kbo25dbkyjuHH6aG3dht1k5" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8975BnZpMJhXRGZ3tbJS3rD3cpmwGLRE2A1rMooRqwdnNMXB67Snff9cNawBPAb9uTDJpzTU53YxoGNmdTURHSrGRsXAY1x" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "89YtGdqH4cDRLYh1gqrL237sRGFDHzp54JH95rCZC2rVKu8mCCNCRtc6SVdJtSMtqYFX5Y8pqc4ZiQQkJqn8ZrRUB4bsxfX" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "87EaFKmHyoST2bjnSrpGRJPGfKg9JSbxVaZDKkdZRHdb2vBcVkGp2CbJsJTCCG3r1s96Li7HUqTgbW28TvNie4aRDnTCwip" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "88MLBkdjExzFyGgwgJkzzyRGhH32fcBiSNGooebBoAJnJrRQJowcQZgBVTmGXa7ArEKxUJYESr1SAZqW9Ze1zSjdEV6eNgu" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "86m7zpix4Hr13uePfMHdcKQv7iAKTsaruFfyxEJVqWGVXpEczBdwTojF254KXrRXbwg9Zjfmma9JjABQ7mMUi9X1H5BkNeQ" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "84hfj15V5rKQyz4T7kF8eSBY5BbHJfuVeVphs5tGqK895UiLmhQin7MKb6m183oKQa2qfcB3SmcLt5x9ShNbWn3q1HGN5aR" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "87ixYg8FufQEDUAkKy4PsGRpJfszfrBfbUPSFrPUSpfPJfTHQ5fiQQViq6a511d2ckXvppethdN5qS1fhhNNd7NCV17Fjje" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "84EjtsKZaaR5xMPhuzCWqHgmYyzaqh9a3dDnG4Mqg1yrFC6vZGifu9m1PqQU4cw8EX2RXzXMLeNjb6Cz5w6MSpDr8CRw8ju" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "8A3DoW5Bqhh6EhRn3jsCUtTwftHtkqeGG8EJ8xTh5z5QN8Z6Gp381wvQMFbKBrHiwPQ2yFqTaZzY2ceXXXxWXVWbQRhgtYM" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "86yBmGfJemMPpR8ynz62MqRLyPycKtTAzAfpFx3z3w9ZZG9WPkgydZxQB6M7EeTM3fJ5jR6DicCNJHtjkzoL3AAYL9HzdkA" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "86wnXuwbU257ViCrKyyyDP1Gim7uC2qF29Bbx2iFxYJP6skzg2TCnvAbnD3Z3qEaEcdF78sAE7JM2jYzaneyFCaFRybBkGR" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "89JhvJnLwxX6rcAqEDwtDmfycS5V7a3d2Y1GT2SY9HEk2zowoFMrJtC8mBzQ2f3UsHYbeZFnM6YEUD1mkEeYnp9yECYjWF6" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "87PEi25HJZDEAuhvyMnwoM5U9G3A5AQYWgqiLH8FfFXrLLeUXLVB1r5bT4AWKg2M17e8pb35MnUbnNy54tuJLQ9L46aJnA2" + } + ] + }, + { + "seed": "b74f008bab278b72025865337586dec3a61b72ffe128c25caf654a64942c2a44", + "coin": "MONERO_TESTNET", + "private_sky": + "03002917429b4112a9e486a7fa9e6270a61b72ffe128c25caf654a64942c2a04", + "private_vkey": + "f69acf79d908789b49c41ef34a676243addff976e9357325d315bc565dba6901", + "public_sky": + "15daa1f10302c4f5d815f1df0d960f246dbb2e3201882b9f1906297a99c57ca0", + "public_vsky": + "236b7a8f986f47e0e1b9181b99fda2825a3b46b4ec48d0f81872586f496a070d", + "primary_address": + "9szghg3GN35i7zk8aci6gE76QQ68YsqaJTcSxJ5f6iUsTnYUZrPrh3CecdoQbGNi8HNoamaJZUne3iVqYve5kCH42a5e3qZ", + "payment_id": "9eceefee4493b16e", + "integrated_address": + "A3hMiUrkyJbi7zk8aci6gE76QQ68YsqaJTcSxJ5f6iUsTnYUZrPrh3CecdoQbGNi8HNoamaJZUne3iVqYve5kCH43H8o9qGBVdSDWgMpzF", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9szghg3GN35i7zk8aci6gE76QQ68YsqaJTcSxJ5f6iUsTnYUZrPrh3CecdoQbGNi8HNoamaJZUne3iVqYve5kCH42a5e3qZ" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BgHDkpFQfuaHqZzRWDmrXSHWNjn5yredtURG5oTFPZnmAPp186npf7eiZrrwVvbikWEvPF9NUS9EzXY8RJsWpssZQiXMv2K" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BfeeMPLcXD76gmrmDXXbTv22G1SZKoYaCCXHZSLAPDE7X31jR5Z5PKvg13ZhrVdr6v6gg6iwx8cwRcWZzucf3GPzQMCTWvW" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "Bhdt5t7aqtdNRZB6onZXjbUT7nSWmBEZB7iqaA9y5LWjSChHHWgsHGCAqgSnBuG1naJ3yfjFAwbnhWQZ4FjHXt78TTCJMyW" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BejYkBA76YLLRZgx8bQggnbHpKjBe4HHb4yrfPo1NijNPzz7dVGHRYA8sCGoZB4nyP8Ldgnnq6gHcLn3PDbZVe1ZTVQQvNU" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BdZ7W7NwNHa41ggb8poBiA5iW9PCwbYeo3UyKQTwgfgRgCbL4ARQE5ihZd6r3bUQ8EQN9PgxboQeE3J7r4fcvZsx1yRd3Uj" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BaQ3tYFZXK8Lv8wfC8P9P9H1YgszXwVFi43eYYEmNkXX3x15wsRaEja3SLqrGuJgFQARe3r18cHH6H8jTCHHLdKcEXP313d" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "Be9PgiYc8PVRqX8TDv3vnsYUfMpUndvyHSxRTZT4iCtn6zzmWBuD5NvjkMZ5gHouVZU3rwCqXLEmBEDGZPJtGjxFSbNdmDv" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BabStCkkGymX9LTa3PA8EJXsjoh2iAVyLEzYeox6hmomJFebwGECYq5Zz25ZAqTpG2X4mV1z3HRn7dJbYh1MztQrCb9b6zs" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BeebqKLyuE5LpnuHNKtSY77p5UvLsjgnVfsFDnhgoLwf5xSs1zTe1a6dP5Z5MSGqwfKLHPZR6mEir7gYnaAYtqN13kDJTvd" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BfhZj3t1Eg7bkMogKn3xX6FtAYJFrpfti7MDTAwPMUpKgmN13XdH8mYenKmRUcGVcyFitzTc9Da3wKgbJ3fhdGXs9v14eEn" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BazdtDjvY1yc19VuWpLqrSHVM99aqiwYLAhBZxU48DfBa62MqWyVLcLAisbcp4k9WAUCaasPE8WkAC74bLrmXetZFSLBdbw" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BhAH1GffwWtiMFZPeNXD7CMRyqqeCdR1HXRQ3KjiuPwiiszUnKF4h1xHHCQRxd4jEk2DraxkFATyNTs1PfsERmNkBEqZxsw" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BZnf8JXDk4ajCC2xSA3eWZcXuFGzHdbgPcD7GV7ZsDWbNL699NqsfkGdGrSkS2QhFRcRmzWdQLMouSTtyv77Hb9FVPBPgG6" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "Bb4wzhmN2pUA4KVS434uprHmakCu9iiHyAAjiaoiFaTaE7CM6k8qVcCNj1HwbFycUqERHEhximKGQVdrq6tUpM6NBEj1nTV" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "Bboj1aQLz5XQgmkR5xd9WjV8GvGNvQ5LVdZJfPf8Q85iY5R1j8kJroKGR726HiSK3SEvwPbLGayvN1bLFWfJBKxS2tkghPt" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "Bf98S1czQUJh3htbeqx218cgD5YxrH3QnemyKR5vye3vNvGoEpfBYgKfSdXr8HhTwnUAY5nUyW8XA4pZn7AnttWbV746Mdk" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BcG8S3uMncTZNLFdenkPXAQ4D6AhHzVmybEupGndnUFHeBv9RNA4kbu6L4y2WoXP2FU5vz5m9GT1VCeuhiFvWX9hMGitkJR" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BbqnYk8iVsDLUJN11yQGvtCCeAdjiYvE2MbMNwBkVqdhZfcRHuW25kpR2GVkUFbXFeHDssHCW58Pw1CVYhmjtS5xMmrPLZx" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BczYqLeTF5c24CsUDhx3XbNeshTq895tqPjNugo2x26jcS3eQ1jMiSpfhjRFZSyqtbWTULt7CASJDRRJCQKzbkTR8zZC5ke" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BaWSNsZtQu6iyXZNPUpSCbXxU7j8HYaN97zSdcwuvvsqSEiK6cMWoXPfo7tAGxW4xL68vtWUbPkh9Do5VuhMm3tg8Kbrmmu" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BZYGatdZ25mK6zpJsihdNbZazFmMEiiCnXFYF2CoSc6pi9magac4JGuHicstqJRjSUVfb3TDe4TSgXa9QD7VDktHNr2mABM" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BdzgGCc5FaU3ER8TTCJceLe3D7S5UovzgNkxbgfAVBPuRWsSGzxSGrFGzuFCSnR97KWF7N1u3gPLdMvUvzj58WJ9Fn9zvZm" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "Bb2r6C51DmA2przdjpzCpN4ki27myjEppDUVPXB1ndEBHv1QS2rKuZgBUPmP24HXiCDno15ba1Ad6JLfsGqe6VW4EyYtFzy" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BZKMzyDCXyaBwCkKQLeabk3YTTacGQeiTfyxkeWPc6Kydpv2MbofbXVXPgX8WekP1pf9prAzhFDLW82fthcoE4n5NPfj77j" + } + ] + }, + { + "seed": "507cbccfb0982252b0d9af216068fad8315ef4f259944a03357e2ad3530ceeed", + "coin": "MONERO_MAINNET", + "private_sky": + "5ae54aba3f2d2181f745253833bec8b4305ef4f259944a03357e2ad3530cee0d", + "private_vkey": + "88c6f23753d3f6756f729f8064a10f9ad800223f0a21318bc7ce2ba4f4df5608", + "public_sky": + "2f75346d791bf1d8540b397d71912223e6899473a8fe40120ebf1a6f330aff23", + "public_vsky": + "d506f1322c13b78d2188eb1c8536ebe43fc1dfb5b5509b2225a9ae760e966b78", + "primary_address": + "43RRCagi4KzdBf1xfH4eJV71HFX4E2dkT42BX9Dcv5Bt6zcmJ9CBfNWQc9Z14QYLEefBJVzQLP4gS6iGekSZwaGJEYLDPfc", + "payment_id": "675617782cbefb78", + "integrated_address": + "4D86DPWCfbWdBf1xfH4eJV71HFX4E2dkT42BX9Dcv5Bt6zcmJ9CBfNWQc9Z14QYLEefBJVzQLP4gS6iGekSZwaGJM94r33CLJ8SEZwrGLL", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "43RRCagi4KzdBf1xfH4eJV71HFX4E2dkT42BX9Dcv5Bt6zcmJ9CBfNWQc9Z14QYLEefBJVzQLP4gS6iGekSZwaGJEYLDPfc" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "876YQssrBorhCunPanAYVFXoNetfWRS7uGn9PJhsyvcC9XVayW4BLynjj9fjQGUYKoE3Y9jvzQt9nHMmqzBoNuuhVqHtrZ3" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "85gy1WGNwm8M6Pyp72ETnzbjc6J5UAPVbdNLu7vrbzU5e9Tdh4z6hHJSew4VDwmdJa7RDk83FS65zYNaGPUh7VScFQTcdBx" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "86kZc9nsBmQinGLDf8YxFsUmk7k3cUkRrUv2b9uUp2yCh96ZxQozH9BLoSRYWFPqe2AXK4ftbuLYKaNmqkk19tAeFgKRsqC" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "88gGDt7GcxXEipT9UTFcT43GNr4d1ggpMAuo1ZtrhXdwigsvW91MWUFL4bCQhmX2YehM3TekMcwCb1M3uXyjGUBk8qiNCEQ" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "82kWL4h6oCEgULUgcbJkkdZ1NnyqZfKHV4GMin1mRaTiJxM83MLS88PeWgtEpDegm2evV7VQxHrAw65AiJpGqtQpTYWp1MZ" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "8611hrd2QCgW4X437DdJt8GYRufzKLMLwPX6aW4mEgqwXpguM7omWLqKHVGqp1v3XXZqpRPJ4RmN45cvQtFw7gbe5ZERmkn" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "88FahXCTaHF5wdFAzazVguj9cu2vgcM4sf3u8xc3excSWiFSRapzGFfbCUgQ8kSAS7WztX2KfJDhufoiFQrZ7abNBWsuG7f" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "88MF5BmFJ677KAesoHEr4GiRS6XaaxRBqQ5zH2g4cVmHf7NB2aFzXT3FXJixyTSa1RM2bT2aKWKFY4P1a9jQL2TERF8Vqoo" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "88uwcnHbDPu3n63WbYG5hhFx94DUWDKqffhxNWGgFxMJ8XPF37X1ytoK6jY95DP9ZYMgGyEJidE3UbRSb4ycGrPoFDBaK6t" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "8Ab2GXLo3DSj1aMWiGraNF7Dven4kv6J1Sa64KRpgYoBTPz64W4a788PffKdeXb3NEfsYhdCPAErv9PSDeptQkT43W7W4Kt" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "85Jtaaorbz82CFnVG5g3cpKsc2zcCihVB4FTbpig1eSPMt1vqvosucy8WNsZhUUYevXojnixZPyHDY7yK4dGS6LV4SV967o" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "89ARYThLq5ibz1NtFRNPDzSjK9sooPnjD5ToNtFd49xMErr3NWVwujXZ8CHePem1QMJvLH8XpcVJfgnxmDieyF1YQt8oJ5s" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "88JfKG8pfwkdy77kYj8JcsScQjkhR1oSe8Gcex1o1DfGcQKcibB9SyjKcL6X4ioJZcAoqPK4XyfttFAZyfUX1HKg4rSC2q4" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "88W5wXHbDyuWi2z3DQbEFodFzaz47C3XG6uwa1o5P9WNAQatC8KCUqJM2jiKzBsdSx8njxiCUuVyWhfWjUz4KZsR2Y1QQxs" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "888rLnUtAPWikoPVCCHBiZBtbY67z3HvHQRx66gYrNoL3BA6JUL6YJLeJ8FpnTk1V1LUSmipX2vPHXh6ixEYVFTBMeJtfD9" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "87ezkqspBgB8weqphQ3SCEdhVTVvEivXL7TEqMnJ5KD5PH4qyaJ78492hhd7MvdKeYfj3UtuobGZPC2sy79pUMbJ22GfKK7" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8A6tiPfh1z35n9hcZreHLoD7a2aeoCxAJffcgwYmWqwDBGbYfRkHuv6UgVAvMWqmBbUUZgYbehSecVFmAwUw19KpGNVepsq" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "88p5v9eXyr299J2fkZbBoqUTP93qs4mTnRcjwCbSjDGx3ja5RxSF3ws2UraR6kUabSSiyyWvTGRJDUd9koUoqdpT5vEd6CZ" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "894mff8NsKF7j5FWW9Sd8ZPKdghfWPsfn4BVAJJDg7YQZFsN4zREwgUJYSqsMd8gCgBBwjtnq7xphD6fZJ7v4xQkLWWsoj6" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "8BvkiT2WoAU6NMqxsmzo23KWVPqP9P181C4EGDAbLdFMcwxK3txC1zZ3yJd452u6pZRvTb6gXh4H9a8JV4uzVchK6CbR9xx" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "86jraumTQsxTbGtRufrkfoCFwnzy7dXg98LLMgoWSMNqitjJd2yKfbbeGLd8bmhmCREKpP7LXNbNuHQjoGAYsp5CVVKJa1Y" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "86uVy4X5bbTd3c8UuGWwk72iEWPjmfGcFW7yz4EPKRP15mjEJbDbsZq3QHRirbsfi9Y3yenzKD4c4PYL7sNibJbR7w1V9in" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "8BzdgMFt4Z7fWg6RxDJqZoJ5ctAyTpZJjfdRzzDtLTSDYHNKeNVvpEt1wZyBXWKrb9E6LdXivjBAuQxeGcSZHeuN2qjBCMo" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "88qWrYFXkXwJoTCkXkoLLp2RfMp5dPNECN2Qvj1dFGJeLWHhX4uw1MFgPKcGWqSH3gMkEAS7jzUF43xXF89VSaQiU6ZK7Tg" + } + ] + }, + { + "seed": "adb995e07b8060bcb0c383fe1921e2623f97660cb72b87908f5a11d7946ae9d1", + "coin": "MONERO_MAINNET", + "private_sky": + "a4f6192825787143ceccf0b7cb708f533e97660cb72b87908f5a11d7946ae901", + "private_vkey": + "dc97157434e2e746e57b4f7b21fcf727d8698d080feb31507f7d39e0a2172a0a", + "public_sky": + "8b0948497f592d424e0a0f271484a5c6c3403c628b17f946a3277ee03623076a", + "public_vsky": + "38af9c80787e741adfccc5d72935df6b2195d476c453c2e41e31bebd9f30c572", + "primary_address": + "46thfc1ePgQC6EvQhMgPkxaFFLSpwhtcYCpGgy6Xb86SJmUtqNAVE5h5ViPVPKZDQSJvJnxXdM3cmfA2jMukA588DvVjbbZ", + "payment_id": "8fa7205220a30377", + "integrated_address": + "4GbNgQq8zwvC6EvQhMgPkxaFFLSpwhtcYCpGgy6Xb86SJmUtqNAVE5h5ViPVPKZDQSJvJnxXdM3cmfA2jMukA588LAPRXUU526EEX4Q6HS", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "46thfc1ePgQC6EvQhMgPkxaFFLSpwhtcYCpGgy6Xb86SJmUtqNAVE5h5ViPVPKZDQSJvJnxXdM3cmfA2jMukA588DvVjbbZ" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "89xkrTak6U5h8AiL896fZeMcbfs44cddsi8BpSNt3mB1cD6JtscgPotD4s3AYngxo3Fg1AuqTAWfwTCZo29Qd2FkDFDRGrz" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "85VvEYmD8DmejhLH9vBRbWaGuygRPKfay8BpbeAAzyuuWGE2EV7FG3eh11RUDzbtATR3vYaxRKhca4DQAQQBwzbS792Q8gC" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "84ZBo6s69kf2UQKGstKc7SbFwZ1nByLo7Bs8qUC3ggHH5wDGz173N6U6nkpkSQDTZgPjrUxz99D6RbgVcMmFA6cEPXyMM78" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "8BvD2YpJEpqVM55B7tMjJwCWLDRrG87f9D7PQUFzSRU4cmvyEDJaNRr4gdX33udSqZQMpUvUfKiBpjmgTc4QbM287gGRMbY" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "88DJbhG8wUffsdGYnu7kMZQBntKdDvmTV1UsKoAPa7LoaBvFSCvzoB3AEyFyZ3nyCA2nbf4MFU56Fgrb34hn92oCKcFUpCs" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "87rBHBa977HZRawbJkyiyc8CWCNVcQootVRg8BfX63qFiBcz5ooepkhM7pRck85B29TKMrDzC1GoU21ED8c7BbZB52eupu9" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "85K5mJakEBoEW2ESPCiMx1iYbCdB4Tp7jcZk89Vfv9aq76usFwEE4W1PEZujxFaHag5vHsso175BGKtExZThMkgCKZWvAZN" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "87sHwoHocR1cTj9Z6RV54KYuS4fTDgXEbVJjamqE8w79S9EYvPoPY2J7PkXSpVQrDWHmrSX16X4eQPHM7uYG7xtkJ2QS6PR" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "886unXCL1fTgUtSVEW4fFFduov5FNXrEy44PWZwt9BLN9qnXhdChYgrdTapncYHXaiPxEycDdjcAGJ7D8hnigYTqG7ZUktK" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "8BKuPq7yPnBAKDMEigWcFgQjBES8UjdCKHgcY9pSg8yhBwN9FAAPPbT1KfkGpCbaisECALcg1iAcg5GXb5F6ZdLf3CnUzZ8" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "8B9MavTYhMF8GCyysy3R9KADu5nFtpEajDjGgS59G2SBcwqSWDScwFyhwkF6mxgoEyFxpV1iSJSHRd5CYQcKHSvfGavZ4fS" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8Am9YNQtgxJTQKiCfQaJc8LDtvRgehLMhTvGsDBHNaCB7LJrpRmcJM9aXddz2s9Qc6gQ6k5JMEwBqPDAzECMyiuQSa7WbfA" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "82U25rrFE9F72EiVkCEwMgUiEUqejPRP1ArHxgKipe8UX9cidPZUemZWwcqH7oRAwbVE7jmRZ1gAaek8B21uonniJffwTt8" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "888sBQZaVn1eGZXhTGhWuQMXEQn625fVJ58ACKF2AirGPn51MSP8r9MczWSbUPMGQqA17jVgq72VANKGjFACspGA3tSnqob" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "84gcwBeedopTAVqH1MFmXTLgARb2NYcFw1wsG7wNbfPMYNzps1J2YxF28xncyDspgQ6pbVGcw7zkiM2h6pKDMpYiQecu3iB" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "86bM39R5Q1h5uyUjU37qGYf5yC9vCEe5BHFozcth329XDqbNwaGqCgmKdrAkq7spXjGfZC3Y4h3dKX5ePJHE5hYP1e4vxpo" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8BXoKpusG4MNAF2nGmmmcUby6XnWD8nH7asSoDUGyi3iTmN1aeQfR9MBnaQbvodi2jcKn1KeAKT13CDAjSKadEpoS11sNRe" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "86PsZ2mXpTyFZbj3eZgGjiSUdV7qDEzm1NBiYmz4zSU1835QF3HvYWAGDppJCCH5Uc36Amc2WBMCRebHGvn7UubxHtAUWQH" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "85M3P7UyN3KMW7iWfabTTBET5Dy9GkVkEjncpupZhtcaJdVUhE4dzBgcfFHcPjUdCE7iEBEV9AL8GN7xXiPK2KN56ezdsT3" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "86ue9UJ9vdA8Bs5CR9P7Y64KF869bVFKcdVEyvjyteRh8GLq79zKxtqLqmNJynwxjHgrVBjKHaAHcaD3gB7K3ii9C4wgsim" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "86htMzxLycHiidDsUV8dARYgjVvyDKwEGPTbgAdLfqHKTVJz4DVbqZtL8AU1TzJoYZMQMtzhXUuJcGArgAjTQmYFJH5Ssd5" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "87g5oDceZ6JbCrPH7phY5hGXuR5gqrgtuHoUp1bcGSXJKcG11ppxtCu53iKxFPL2b1Pgjjf6aQLDTg3oFNfks7j2M62Skge" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "859yzvpwJ2XhU74gYEut2McGWFEQv8Q7shwPjBbpxuxiayxmGo4ys3d1wRbhXH6SFQ3y2Xexme4xaF7ZK3btJjbu3EKvKRa" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "85dw1L8XZM2RmQUnq5XkKxc47ktKMqnrpej6ewZqN2u42rPtZUb4fz2DNd4saZdUV2A1hoeuSwozLHDxiYtbqTKq27VX28z" + } + ] + }, + { + "seed": "1310561a4a0ddca1723ab8deac95b4cf4423751b903df25e821d7691af1d26bd", + "coin": "MONERO_MAINNET", + "private_sky": + "e4f4c51b28cb11d93c7d14de1bd91fea4323751b903df25e821d7691af1d260d", + "private_vkey": + "1f7a2ae7380ba998f1ba3cc3283c5471514a54f7817ff92321c6d6f993142204", + "public_sky": + "cca8065e3874cd26328d424637049fb16e2e664c13d3dab24e90c8839d5b8779", + "public_vsky": + "8dbc3c2ff0bfbed338fc7df283ef3d8ebfef93a513653922d99f7e9ef423baf7", + "primary_address": + "49Nvx2UJK1E7PZfu5H9gFxWgJERk6kSkqWpoR4FHpndtMLDvB4EhMEDcL8BacaqeQcQsrP4PaDRnx6q6CAt8zP3wUtqMXQf", + "payment_id": "162867425e4e0e51", + "integrated_address": + "4K5bxqHnvGk7PZfu5H9gFxWgJERk6kSkqWpoR4FHpndtMLDvB4EhMEDcL8BacaqeQcQsrP4PaDRnx6q6CAt8zP3wiL3r8UTFP5XA9QVuhZ", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "49Nvx2UJK1E7PZfu5H9gFxWgJERk6kSkqWpoR4FHpndtMLDvB4EhMEDcL8BacaqeQcQsrP4PaDRnx6q6CAt8zP3wUtqMXQf" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "863bK9sbrPZavPqFf5TWatYf4abJZDMCbQCLZi2T8pfxTNuC34e5Xs9XNRkid9ZpLBUoUfDtQsvgkBKxpPRnqGPXHvie6ya" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "84SMgH9VA2yC4PbD4aaQqVFcvyQPCBrz3ZVK7nQLG9cEQYJf7fsMcbURetxBkatK9q7k96E5gHPeTMF1oepDUrraHXRQKfo" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "86gaWXfby7jDCM3ZWkjBoKJrtH7v4uXPzUa6AKfmjBCV545p5sWbzR1LPd3CzNnshSBjqTYazsX2nerHse3GXRKo1gjfMV4" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "89xjceUqSTP58SzcJ43bexL5xvNECrx2iVxZufMNeCEudY1nRQDm1yKLJCiFUUo8QHU6UPoQ33K7MeaWv8F7MyQ5MAdmUXf" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "8By1LB74HNc9x47jpBFrUqZWbEuC5sy9SjF9Bx1bYUh2FV1iG7rG5zyNGC9NcRRXVLenxbvFLRGtGHHdaaUH4dVFTsZFESj" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "84kdx8pj2uAKNhfKfNQgi9YCnY2gNFveg7Qt2NSCkfT8aNDwFru4kPk1KYvW9Srw6YNAzE6Dt2QvVBfbNfv15xVKALkRWDF" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "8AkZnjd9pFUDyeArQKZgNC8yDnmixn9uddAqRskfrgaV5WyNZgd5mW4TSbh8rbChwP3w5dk381Qx96xgFvPH1yMgLeR4dL8" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "86EBkGhCijyZYVJDqFMd4uBHwEiC5pth1aGb22dwAVTK74HxL1tWauD4dKiDArtHmqdT2ainVEC4oSHboTCnzpTj12kiqZN" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "88kzQRB9gn9eMHnnC535hTbvyEtm5pZsSPsPhTaKDNbh9J7sjezQimnHvnzxJXkDmtSH5biduugehCovgXEJFs6xEJW81Qe" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "88FK7tkDWEAGwrK9TQCcz3eNUC68LY8wmRTbeGSUAtodb6YgEgp3mzhjXP7UWYAs2FABEuRsdSC6cGTs1kg2NF9AMH1kqR1" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "85rWPXiT6sAAiBsu2c4bktcpNVaN9iQdHdWBxFRf8scbbYw9rrwjymA65pKSD8qqm33ZmuzgsmYAH1SWr9itg7oh6XVjEX3" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "89Jx64mDX2FSNae4meZEye62W2sJe4P2UKQzZs1fDV77ZM83qmK4dnbKs8mJn54qcDWweMYy1ty4pLsS4uV3B3AyBsJYyRp" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "83tAn9T9kFR11Ru7xbvMg8HfhgbYxjYrpKtB7akgzUmsZSjih7ZzqQaK2Js99ui9j6cdRgs7AAF2gKSVdRDgFXNa7ubShro" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "8BGKRjYbkkz5wJ7yeAkNKCRVuNYBuNojWffyKaukhA6MFufxAiSTPLB2ro6jc8k9kPZn4dXE4DRvjRGkMu53WnxiELtFznV" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "82cGz4MRJP6cTmtznAzfjzZjB8vPZcGfdGLAhJJo3qzDjndR3XP8ehSgpjhoks1qyxUebHJcGuvsJ4mPTNBpVBp8NVf8fN5" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "88RK2HTsv7TDPHATvoiR5JgRAe8zcT8Sw2Xpe81ouVisgXmTZNDb9tfRgafQXA5KviaqCYhGTBU8mPRC287HCePbCxrJZFd" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "85na3Vzamnw592RjP8KgsiZrr6BrjM6QpDREsQou32dpbaLDCQj3zdNSTjiLRWSdWiQA2yDSPESMsBU9EAFi9CPUFGqts7A" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8AKDzqMg1bCGfkLryeEuwy7A26zE9nPrzh65WR8H43QwA3qtFb1yyng5jn2Jc21P5yRuMkLHUdcdd1c5a5y6bMHK7RkdT9S" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "83W7iRWjhwuKhepNxVeyB9jZcuqF9hWobP8qykKyDH7m6U7c914R8823vGJ2bonk37NKUY8nJ5RmX7WRYbAjCb2XFB81bKn" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "86ARw3SuZGMSwBzYjbU38cQuVwbZhBU4JVxmEHK4S2RaJVtBShHXJtMTh7kpGeTx1K7vie5GJ32WpLEbkEYz6YtbLu8oyXm" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "8BJbFiKcdKVAUtK9rQeUMcC1TB6k5t67xWNnXtWJNxaZSwiek5mTsoRPVWzhH1a5ATRxdyit9pV9qbqAazi6DdCCPBNn8yr" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "89zn2ok42MG626eDUKJ8aSjh2GgSGAiC7cwcUCGbPoFmEh1LTzpCPXZG4RJE3fqK3xMcgNF8DvxQ719WFmsgJSf2M65GbzB" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "8Bu31aR2edvDQd6B7G1Qgj7Yepj1DQuWPGxTmVhJc6ovGdwZdKQdLKRQAhbMcZ3mnKXKhFgfs1tfx8DUjXRohwL2AdD7wRJ" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "855XSUcTRVyAXZBSHfxMnfjHd7bf5ngdiSapbVVUcCVj6n6VxYTRHqSBAYNj2zCJhH9cv1CZVwJvWPXbwQofq3HaVQ6d4mX" + } + ] + }, + { + "seed": "6a0dc434aa0320eb8aaa1531db22d13904db918fbb7a8b42907012b9d935d20a", + "coin": "MONERO_TESTNET", + "private_sky": + "6a0dc434aa0320eb8aaa1531db22d13904db918fbb7a8b42907012b9d935d20a", + "private_vkey": + "bf16e8c508f34be91c5ac3ec9c78acf1bafb57d3534773e47eb24fbd4f880209", + "public_sky": + "37a712cfc20896459b74717423578912d4d0ae449239d9e7c4f76d09f38b2ec5", + "public_vsky": + "18cc721d22dffbfd5ed5f456b922f8394ab438bdb098265717587740cd0d38a7", + "primary_address": + "9uGyN7u6KmFCeH6RkRKHon49gs3DwHErCfmTJcHcgjyFZy625mzb6wkjP1dEY9DQMuAaoY6dkBUDbFZtqKLv481MKswNGrg", + "payment_id": "dcf8cd152c300fb1", + "integrated_address": + "A4yeNviaw2mCeH6RkRKHon49gs3DwHErCfmTJcHcgjyFZy625mzb6wkjP1dEY9DQMuAaoY6dkBUDbFZtqKLv481MV5V1wENgtNSM2FcUaX", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9uGyN7u6KmFCeH6RkRKHon49gs3DwHErCfmTJcHcgjyFZy625mzb6wkjP1dEY9DQMuAaoY6dkBUDbFZtqKLv481MKswNGrg" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BeZb3fNEthLXStHFLsFkKsU3nS6pnuvccLgrqooq1rMeETHBAkccGhXcF8S5goSj67cJU5MKZqNryRk6wMWGhfr9A4XuFMa" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BgMjfySbqC9UuSeb4vzLw67TqcLskuPaLUZrMspejGG8HQ9rGXdLGsnSYNmWvhXUY3SFsEBohvQ2p7JBRbZFApD2JJoTPqD" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "Bc9mojdD1oRE5cPN1crmCYEGMouuWeYFr6y259LUsQCd9PmWYxLfSpvYARiEuMDX47WkBF8qPv4DS6ENAjwCjLRGV8fnqHk" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BbqG5McNbcfiWYnaiMaq52VWkz14t4ibTW6otidkePwrGFK5qdBHYzveVbdrALabofaCm5LD5QwK1TP2bzofDsXFKUBu2FL" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BeAG8ZFVaT2AeCHUxDsKEPW6YbiLB5vBBhjo5k79TGyRS2tXCoyAE13LFDnTwMcCmLDv7YuyWCWjSL8yuPHNGMxu3uUWxJL" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BfgtS6YeCipPNHVZdu5LyCgWAJhAqG98kVrHE7xg2TcsinVKEQGg6HWNYJ8UGjgjRX3orPtorsC67jLgPu9VJVr5KZGAjmR" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "Badg18wp8dWf2hhQcyENrr1X95769TL7RTKUo6hz9XQSBt29T9aPmf4UETYfcSNM1Vgh3C9x6XyEjYQM5LUgqkjFM7WWTgk" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BcVntvq5V7MExxzJvw7YUeS4CwfWFLfWCZV4yWbMH5D5RnHHgx1bzHrSbbELcVAV5FSwujBM4F59caMcQCuSkFPXQAiNwnA" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BgGLdPH47AaEzQufEX45c48rG4K5DHn5P53saK3oow4Bek2dijowi4hCihkSEUjE3c26NkcwBaNQK3HCmi27iFQvFgHCD7J" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BZpY6nwi577F3wdndrNWgsimJpTund6WVXh2bky678ZWL9MVABXAJGYCLP3b6QNgQF4yUfmoMXaKw4F4JENowi9yM5rg9ZA" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BdCU4fVAP35ZPJK27QkvFGJ4v5y4bQHUpeqLdy8PBpGBRAu9Rme5W5kP2GPgkEJm7VahkBP8aaac1QVWbihAbiGrQ3rHDdZ" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BZ23kadwG3eHHtmCfw64biQyc1yRysG2h9pA9CFQKQ83Bq7KYFtzriT4zb9yer2Vwmio8YAYe5QsG8uyACeZkju2Qq7igyt" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "Bb1PZkWqWYyQLV6uZXhp77A6JZo4Hnsx6NMVaXMEUJ3P5in8YmetgHcbDPhbU6ocSHbUEs4xLJYxy7FVVjTT8svHQEPd1Hr" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BceL2vNwvVcRUSAoZc7ViudrVxQAhZJVUA2PSgQGUW4sHGKnuA1pLH3M2iwTuSpcSXZs5tdRfszSdhzsfttmW33z9evjcFL" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BYZbGyB7rs62FuqSfJ2hUEQ1yFv8GRt4i5VPYgn5uH41TPu5htRn1V8djZ3i1PdLDmjousYqT37cgTKM26Z8njZNDPyLSWq" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BYy76z7AG2TYXYEp5xyU81NF8QL5YdF1qGbYYHx6vBxtWAbpaYBCTofE9qnFEh2VVJSCvq2C8fBbPRKnz2gUx7yKRSywi8Y" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BhChX7i4U1BZKNB4XXtspXJu5UYqPkmHKcLGbwGHWc63BEXTSLTUhCjgSkV1QS5GV1Q5oatY2218sU4etbDFvTtN9dckDYj" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BbpYKZ2kdA1ez2uLxyvNqk4BLPkobE3JX4bovr25TyfbWcY9FJkakDq32YwcuPPGbiNY1wtXLHJCxYtHwqv7Eqzv1FX1ZfM" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "Ba53qkHGMerfcNMVEpDi33GhyWtPzUurmJeyvZSCiNLp19X2J9Cx7fFdbsaUpn669sXbSUjPiHpRq6fQwSqQwnKz1wHyuFn" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "Bf1FjLz3DLGYnywptQgNA1dAyMtcBTeR5EggdDFWuLWEgGMt7eAdMYJ9ovJbQZzoiuK5Z2Df1guBphpoopCFpb3dSRueP2R" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BgbEKtsktcx2KppNiGPSi5EZ6HKFJM5FpXwT9Sa6bi8Ei654e7dNc28htFXrTD9kaXQWdKjoXsc8f6FUFd4Evds14zt87pw" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BfGUoSjjnWUMZyMxutaayHSGAcK1GnfnTaH7Zra8Wjd8SocUyQ7LBtzTnnKzzD8qPA2cbrcsEjWWE2D3hofWysf5AasPX9c" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BesT3KrCR1AchGuFFUL7iCE3FBKg1tD5a3DVPFj5Vype8Hpm8UeJ4scSjj7ZetMTbFRsvoncPrjGbgbFMqpzicm58p8s9NB" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BbLyikLpUpNHn53R8v31cxLKYPDFmsXho8FPndUkt27yUifGM7sT6MXPvFHUVbXexjYjV9RURSrVmhwTjN4FMwK7FMXemAr" + } + ] + }, + { + "seed": "467782599f12d7deb25165544a0d44bdb2b2fd2e2818faeaf9889861c58b464e", + "coin": "MONERO_TESTNET", + "private_sky": + "9227abe535868d7e59de86c8cf25c869b2b2fd2e2818faeaf9889861c58b460e", + "private_vkey": + "ff6840a9a0838ed5c314b4b183708f4c113cebc3c5df1ba5fdb728c273235705", + "public_sky": + "3c897e3ae5a399ba35be0588740dfea27ac0b3640d107873e3871c1a08c71da5", + "public_vsky": + "3eb1a6c215923039ed8de042dde946b6957db216739aabf5e6fc59d383b75bd1", + "primary_address": + "9uTi37zcbmJY9UEgXxCaAhUBFmqbR3Uf1LPGSxgRCEBnUe5nZ8pHqhHAgyUKzN2rnRXYHziyaT1Hki8ZVbRYGD4vQgswd23", + "payment_id": "d308b6d91329559e", + "integrated_address": + "A5AP3vp7D2pY9UEgXxCaAhUBFmqbR3Uf1LPGSxgRCEBnUe5nZ8pHqhHAgyUKzN2rnRXYHziyaT1Hki8ZVbRYGD4vc6ZRe3FbCvQJrfe6ZS", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9uTi37zcbmJY9UEgXxCaAhUBFmqbR3Uf1LPGSxgRCEBnUe5nZ8pHqhHAgyUKzN2rnRXYHziyaT1Hki8ZVbRYGD4vQgswd23" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BcqXRsSRhrNfSZLaoXMHeWZPrmab8z96w8jiWahLmricCAS5aaLt1tPRS1biVPwMcx5PGnRcDdjdmLrTdJuhMobHQ4hV7H4" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BbzXEXr6wZKgjCnrpqXvnZgZjYJhuqjENVr5QJVMq6nbDML7ZCuVX3L5WCeGp9j7VncB1zQc4f5LsCbe4EZRidm5Ji35HzV" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BdYTa2tpopkRVbATwaebvXDS9tzDRKisdSae89bXs45qAm9sFLYFQdoWwi5tgAu1DWfYtdyuvE7nucpKTAFXEF86UVqdssu" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BfmgShs9QYYY7TP1fGzNpxVAWvMZYeh6dM7pnBY98TzVAwcrLyqVsGdDwYVMXQYEhg6fE63xUmBrBPcdVNXpemYwPRjdWUS" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BerUq2LR8682H1vQZkdqgkERxkKhxv3ELfcjfQ4SNLVhVaw8TNoSKpRCN7RTXNSxq5g6spk2K7tx1JVhqqroo4s1MozqMzZ" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BaHUNcQxVnE51WixPgA5qKeu658GuhXboZ75zoGzzJee14j25B3TfE2LJEFGAP4dnbAeSQ6WyxM3378ecUm4SHZk9j7ey6j" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BbHNweXpX55iz3LAWErLWSRC6QfvE4WDXc93AvxYq38zJizSnonLrB26pT2DF7eNxFfayzYsE1zkoC2NaCfDvAWk6rUnW51" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "Bf9YrR6NbmPhvTKctafsHw3aEX6jV4ivTSdjzoye4CtQhGRouVbXefbP2oRb7AvUHPJ6WjwPjzd7ASqj6ZFxyBMhVaiAX2z" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BctPXBZTqR1Hb6hRQamRRNRttvmzx9KGPe6kFmFZR5aC1PJbA85zerSSParxda48xnEkV8pZNtMU5b23sxRjxEnfJPofXW5" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BZBTVFVAy4Eb9BHtds4TYq1ceLT352ALjSBgrR44TdeETdahzNeMXvdVpEtsQ8WaePKzubedJVeRrUEcKLGSqV15JbKavWx" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BYRMeznWFcdKQWXupisjbwBrs5xzZdXu4TKxR7CZdZPVNiaTo8wcYogMoJA6HAe5qucZZw4tX63Ge1FZmngf28GwF6qMMHn" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BYJuHSuZwFsU5bW8HEeaUGgBdxAzvnHWU7zMH98dSUTHBmKua6YxXykAh416rBuRrscSbCHo2VHzMFbRxc5vRQd7FshUXKA" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BbLVH8VH8byCHXD42CjYAbeCc6TRp96r9YYKZz1L43QG6CfZFAQiAGjKHm8yFhWAD5SCjGs65tVdL57rPi3YxzBiHvg7QbM" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BYdF3kScQ9XJxyyksJrfXFa9LgooBUjEgNikwhVLiCGr3XwbP2JFv9Uc8BtkhZ74FbLYpGAd4A5PKcGFVkt55nDAGKfUpcW" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BecbnvBSjYoVxQozeqntt3UC3quBh5m9SbSQnne1gJEyGuSdMsisZrVb2An1AXyHPtLbqNYzPEmHy48tX6o3snRkBFs6hCH" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BbQ4WQjVxsYR5EsQoCpxm5NqFRScC1s3KSRNDrkpQzf3DnGeXfYdePsExPFxb6NDoXgtzB2Z2qzH94DCnexuajMkLXAJyMX" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BZjTotUWLcD2but8Aa6FhVWm6sdZNpPwwTBYz3nRY3mkfz2KZFQtpRrHfFHq8EowUW1wv1pJ63GhC5omiwMET4MR1DKkspL" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BaayKsijrZ4QMoW4upGLVuNefSZsfwhbMLYBbDf64bCbf51VipfNJaGbKrbr5a1N1CgorKGTBbtMbfcpBvsoDkJMQMcSPdy" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BfDmusqurTY6cWFZWfYcbXGkcMG2iTrNmMEtJqik5MhUe1NgKAF6rQGieEk4Sw3ptR9ZLfBWfzQ189YAPXyCzvwwCXC1uin" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BaA8sqpT4znXWhpdULrhYDRDSijsjq7HCbKSwZHYLgG2bJU2A4D9wbAHorcKstTaYhA3ShSqeSppcPbE8Hi96qJf2bM1FiK" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BcFGfKEHdG7SsNip9qLodDS7ewbkwepWM9gjXAnHQse8cjZMqr5EuhuPEF2cbdGDdegd4mRjywiuEC1hTcbixmHrGz7Pn5V" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BcorBCtNxSNQPd2jJj7S1dfAoNwuU6LamPHg2Q7BKB41iKePQAt22SiK6edkxgL4yxSpLu6ze2YfTJYEeT9FggzBBm8edj4" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BfPd2vVZt9s4gvrexB4TVwZ6VvTkK646MVCsDZzpxXdBYZw74TTpaYFVMRpLUcoaEyGq3AkR2SfePZoTBpXwCwwNLuYtphR" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BYZ4b9HJtj1XiwX1UdYdarRKsS1KCKur93ZGT2VG1sDM9DPxcdukF34ZjfvpfamFm6PM8GTCaiD8TUiAPuSnUKXQV3xGuos" + } + ] + }, + { + "seed": "e729b4c5be24bd63c6c7acf99bb3c951124c31b5d675f33db1edcfbd4cb74e45", + "coin": "MONERO_STAGENET", + "private_sky": + "33dadc51559873036d54ce6d21cc4dfe114c31b5d675f33db1edcfbd4cb74e05", + "private_vkey": + "f77d2b948475a994fc9c81236be36b00614bf9e1e707c6e5cd4329e6031b2700", + "public_sky": + "67bee674018253c336ccf3ca3ea8e5352ffe568d7495fb8dd84d9f5bedd6e86f", + "public_vsky": + "46d71b2b7b47793ca1c6e4d5882c53c4ab3b7cf3001127036a160d1a399527fb", + "primary_address": + "55mAtf5tRSJZepciuJbeTn9tz8yZT52mYQj5GQjFmJKqKcXNJHd3gatB9CwF5BhmhtZtwCXCQgrJ21a8BxZsYbfCVNLfPks", + "payment_id": "30d7768f23095ce7", + "integrated_address": + "5FTquTuP2hpZepciuJbeTn9tz8yZT52mYQj5GQjFmJKqKcXNJHd3gatB9CwF5BhmhtZtwCXCQgrJ21a8BxZsYbfCj1sBrTj3Jj5TAgrSon", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "55mAtf5tRSJZepciuJbeTn9tz8yZT52mYQj5GQjFmJKqKcXNJHd3gatB9CwF5BhmhtZtwCXCQgrJ21a8BxZsYbfCVNLfPks" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "794V1MiFgLXHVvLqruW3Y84x3GyTFEHb5Hp7y5Uo2a5zinGBs3LCu3GSJ4g8jz6NDcSdKGwBReDVw1Unor2LaQ9tVjewGA4" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "77ACqyGNgPiFDqmbdGnzd4A54qAoqFHyVFP28y7GSLJ1RhGpq6VhegAKn8RjdWQRYp3nFQ6K4XYrWSavSZBqo3V34vWzrS1" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "7B5o1SeUnHtBxS3ddv6UMUGDd4bWhqVAPNvodfzSeRc27hSYdEZgrJ2AzN3GhuDuH3bEFYwM27h3NZinczT223vBD7qGKmZ" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "72StmyK7oGoXsUd58L2Vo6FAR7WCPzcHwSjc7cgcx8JHGE6oqa4LSQKedRCE8fsHqnKH7zF9Xvf4waK8SLSJE8GuMeMaiwa" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "78JhkBtvjojHr312JuH26MAtRXDYY5FRSSb88qAxSk5ATAaTHUtkKhQVCrdqzdHjdkfJvqXMk1dub9G5FCmtabptFpo33i7" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "74RxG8kuf8a3BXsxAawF39Frg8GZPMGowCB8JUonSNngF64dyBwMi7HgefrndwyVq2NqG2rBA3RvRLuWwsgpeZ8JKkqziG2" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "7AGE7WZoqfxTVrPaQExx9yht5ib1pbmfuKgNfijiV2rHV6FZBcL94XDaaHfwSkHMoyeQN4fw1Zc8zPA5Tv4LuMMJKMaghNx" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "74vWmHcedwa4BnBopY1wT22qzWHJNVeUhVzi863wewoabizr36AZheU8fnFsRP9oUdVbWgU2Dtnzq28aHYnFw7fBR7GFiAq" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "79USGhXmjyN51MN1MyaTDjDyvDGp57pnPhHbzoDWk4YRiaj39NHE5HGE8h6hJtTGCeKAfcj8G4Tqb6xQs7hKaXJkJvwqukC" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "769oJMUB9X3WFhMiyTh8Esgys4soJPvGUb22NHCcyBinj7gUMREnfKHcTzEqLRrZswLXmow6WurF2iFiCiDkmM7FGjPBwhv" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "79Mj2dvbJnrAVwTyScG4zcD1L9cYDPqLvaxx3yPLMsv1LERdh2m1xCeDZVEf7YeKBNhAqcD1SnktT1bXDrbDyqUKVHKcY1y" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "794iBgStpPTXpdmFiALyHAP4iH5TxjB3dFpfaU7j685UXjNH4yGQMSDZNpeK6ye9EUUdzdTobMjhYaCVz4tSD9UnBqeMRRQ" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "771Pisd9oQYeqGYdhaAnTgdvR1Vn6DRgpavoXewHvFUYBVG5BQLptyTbcH3TMTcDdsD2P3J3ooMySCmrDJrz6qGfFj72Sn2" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "76YSkNBR9CSBzNBadKNwZccH3EPgkfaQn5hoCXhJZHv5TfhFqmEvQnqgXEKZu2kErrJrJMmtgAZ7qHQGeWMB2wGdLcfZN8b" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "79zByTYwDzyDD5YqHShpyq8YDN9gEGBh59DHQ4BUY3wV6b5n9iYZvmDUit5v6CXP6ZCc3m98E3LptcwHHLLGQCxD28fwBYj" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "7717VjqRu3DgrD6cGGpWbkKg92tpqt1DmhpMve9Tcvmo7Z1MD2d1M83J5uZQMYBLZ17Au5NLeQdaJYTVqPGe2KphSySzmiq" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "749yG1W7uqf7hxkEMdqZpbZtPBNuUFbp9WKdtYb3yCA3eJi719begQ3RhjaL9F4M7pDUHPx1zHcgp87okriQJ4Hw7frw7iL" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "785g1QoQZanR6MNzLTKgMNMHQ2AwNgpa5VFbo7bo1EaiJUPfv9WV5Ye3wcJ21cFGz5Q17UYEeN8sq6CwQ2Ef7Su588uMwpM" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "7BmAeKFYMLTcmtwnUyEvxWYnBWBANPzStSxAw2HeeHYU7QH1ZUW1Ns3eXZYXEseKTETP5BSQh5UKRPbTM3nNPHNdC6y8aaH" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "751ygVykaUqeAE6E7mp1ZFYiXLxADgnVDQ5FwcdQUhWbA7M1y1WZgF3RoNxhZg2oxjD8J4etwPqrGJrWNT7T7Nh55wJ6cKy" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "77ZoEhMnvmMeUd4w4XNTt2CbzEm7ujj4wELm9mykV1Ws9nkV3tcNrLjQLNDq6WpwRqfKQCaK9CWRWHw6EyyGaGhXANRhfNE" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "78oP6tTuGbp5nLHPatK53aaxfSnvzphRNGycKHC5uA8cGPT7sgkWhjEGiduUTqQrzsRTi8VkmhmQ55xHTxKgmSMUHSBnRDH" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "76SpA4gxU7A9ktis4jAFyF2vfoxcLinBpYGtakUxXo2wBXLHnDtcvyEPX5gG2Qts8BDQKBqt1ykaRjN1bRMYmuqX19dR5p9" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "78iJrCc2WtX975noWfpvtC5PHkoxkzoxxULXsoUJUkAHPbcghmUaMPxP8E9mLj7uvwCkNanenkm8WPawgdcxdkMR1dcbDFs" + } + ] + }, + { + "seed": "a6f3e46e2e5c3ebaabbb6977320b2e49a699c84b5e2d154035e8099d1bfd4c3d", + "coin": "MONERO_MAINNET", + "private_sky": + "df770358df3207b228e5828e961d910aa699c84b5e2d154035e8099d1bfd4c0d", + "private_vkey": + "6a0ba130fe2e657dbe33f2b59806793b902b379fc5937e6a4992500f406da60c", + "public_sky": + "aa1336434c808887a3c8d49d816209b1b2bcde1a5571a8add1b9333bee37434c", + "public_vsky": + "3f9214da1ca249f99b3d02ec235b68ee42197769e41c4d67d60b9394aca6ea02", + "primary_address": + "484vWNgGmtbPgsoDHmwKnYWitv3jMxsVqW5GL4ZLHLjcDkhr5MGqHCUikVhL3yk5CbgrQNi6J6bX2JNLk2ke1LQR1JsXbbB", + "payment_id": "c55f8783c68adf01", + "integrated_address": + "4HmbXBVmPA7PgsoDHmwKnYWitv3jMxsVqW5GL4ZLHLjcDkhr5MGqHCUikVhL3yk5CbgrQNi6J6bX2JNLk2ke1LQR1TtAGBRDc1L19fkJcg", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "484vWNgGmtbPgsoDHmwKnYWitv3jMxsVqW5GL4ZLHLjcDkhr5MGqHCUikVhL3yk5CbgrQNi6J6bX2JNLk2ke1LQR1JsXbbB" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "8C8pvkf7WcsL4jBLeyEZcHTto3hTXUz4JRSjmqinSGTwRCsUwCqs4MMTCWfL1woo34gK1MG37GBv6VK6SyXLBUAeLDtNUoz" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "84iKcCboTzMLMV3bACo7p3Ps8seSE4pPWKEt3jDG968j2uL39Gtx6ZNQAkcMmD4oJrHBoFLbEc56PhyHgfwkERZPR27Tbam" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "85WK9qS6TPR1wm6BjCL9Yg86k61nfF5uT6LM1eQvqT9zhAEmKW3HmY3X744YY9n7uYdkrxQr1ZFPF9moV3Hm7EoiBbu9pW4" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "83seyEXcDjVGKqA8or8vRs4VoNTcdbNXaMo7f9QH3Hfx5HjSqSFmUNuQmcsegnD7zLF9X3XEFdKyrHzAUvitFZvgHZEEE1L" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "84rSdgUVp4tCRPq6UkWouu7SLvtNpNih4dh66iYLJ3ztaMGhmhbpXeMhUed8BnoZTK5RF4Un3FzNV9u5rsSmegB3LmZJxF9" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "87WXCTU9x22MqBJGfrA8GL9HZKRagw8L8dfnZ5Ci5XKCbnPckMX38VmKqXxCWFMc9W8Kj7J22ZrNK5fzQccCQHkrEFtiRcJ" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "88DJKqdDS1Vb8vifEckZWx1ckKeP9n2USGea1Ac2mJY7FQZdUQdYW3C5nFcWy489t2DvDDPFPyVqLYspaEWkHq6pPHHBms5" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "8AqekszznGJ56YLcsPeaqE9MXD4ZkPtDfLQBjC2QRF1dbt5SYjLUHkLZMc8Gh9U2jwT1f5PA3T3iiRWWU4iJyad7LmJwMnC" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "84mFaCZattLKnetLsFvs7NQdZx9aNBpKR5MRjHrsZrBN8D4egzvaqFW4VUsZeWrSuMdK2pdwTGECyGkFvtbStaUoU87TV7f" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "84LVEpUsfCb5dMR2cWHf2kBvR1afsrVgc5TTf931USXxAjJHgiuavw1assHXkbeX24TQyTNYmxwPGihHzp2znskqMVw2ME5" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "87KfC6xd3yRQHHpy6d8HpfGhHXb9m7BLNbSUyuR3yeePHJQWsJrs5ahVTniwzL1MMqGvQ1Y7ND3kA9VbKwaidmB4HQbEntN" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8A4coMZwZkhZbgtPmEivKBZ892C24t9Ts1skbsg4XTwXReY92uamnYQUouRUuZHTqZ3pNX8WHYtehUsXVAcWCRgTG5azvhr" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "84a5pKQn377FwrQhvNc3Fh7ARcc6eaGdgGwJWxZdjTRv9tSzKaHRCXnHYQSNVFsFZiU6ZuUTD6chfAGWkUiVBCt4AJBirDW" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "83Hk7AD1ncmeWDa7EJTZUrYX7MomC6JdzT9VKKsuZuw9iyUGiqdmYXn5Bgh3xF7TFSieANL3PLmNfWUmD9ETuHjD737vPTq" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "85QyQM8YwRsf8U4M1FfkbxK6TByp1gFzvFsw2koFVWQGQ4o5LugsbYGNK9HkZuQTY3WCE9PPpJnBhihrE1rKNip5LrDEV7W" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "84sMd8uJe2kG5MDx7cvTsTey3aDDpLvLnK4B5sqsXZv8GKAuvb7Fo9Q9neWfFHgUToYzPAg5uVQZkAjkDzDUEzMM7Z7zAnf" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8B5RckfR2NCZkPYjTocu41cLT3x6VoJgGDaheRF7jhZxZ1VfP559HZL8GwiyJjU1jWbyZnHqwARbLHj2Y5fET3REDhUXRzm" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "88uG5tEqTjX1xwJ2dUnJj96pufxVb2Mvy1X24hTKkSSm8RoCp2dCXudgoy24sv31aWEVTRLB4hSsud8yPcie5r4TMqUnzRZ" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "83oPrE37ffCVdo8p1cP3sydazzZ1qhccAN8kk6ZzEmVm4rCsGQFPD45BaUbxUoYt7oXLcJCCCktQBJFNLfWvunRQ7XbMVa2" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "83dZvvXiy2GKhpWyDjortJ88duABrp3hNbFT3c3Ge5H55n6ySUVSeUnCtBZ9yopXBv8ioey5L1YQSKUp3cEzyz2UPA7tKrK" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "84Z2qzRs5FC1ajVcRpNN4fBj9GqmtrLpCCAdB22cwDNHc1Gr65HhMhzRo2exDWzLQxHYNC22F1KU3BzRg5gHB5T2GYLLb2L" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "8AA5TZQTJKbdhvmfVuXPJCZQ7JxaqGiqAL9tJTxrUgLY4iUnvUVeLWb7uJLaRynpw9AVcZjZYDTpzfaF9Xy1j8f92RZGwrK" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "88JMLcmiZkwBmqu8VS91zDJVRtYY2J2uLhR1ayCfeKzzS2QPssmsudY5pFuqTw7VMJ9V6Xf6LZbn136EEezrLYZgKkCbTyS" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "898N2dygjjkgMt4bJfgiSxjHC2U7nBSgBDU17ozyyCJMezgwNV8WgCrLGewByqJRNaMScLjy91FfyVywSRazVEyiCAU6RZv" + } + ] + }, + { + "seed": "d7dfdd9c635145851affed080413d48af59de06a8b42bacb1c2629d7dcac7b04", + "coin": "MONERO_TESTNET", + "private_sky": + "d7dfdd9c635145851affed080413d48af59de06a8b42bacb1c2629d7dcac7b04", + "private_vkey": + "287a609ef9546111c408522ea3831e9c4d4f127e4e525abaebbf2a7aa61a240a", + "public_sky": + "47c0518e444a92d83ad5d5692d3d8e46aa1b3db70c215fffec14c935534017b2", + "public_vsky": + "6be71460f82acf1ec4e7de4b568710798531cbf19cf07fe073849a4228c2d34f", + "primary_address": + "9utMdBVe9S1dAhcMrC6xUVCpXyEFQs5enjomRJb9CKSnWqutxvaUgar69Vy4hMJtYwMKu9PfwTnx6eYTaQmwfDvJ9x99JFu", + "payment_id": "c6591dbd1c134607", + "integrated_address": + "A5b2dzK8khXdAhcMrC6xUVCpXyEFQs5enjomRJb9CKSnWqutxvaUgar69Vy4hMJtYwMKu9PfwTnx6eYTaQmwfDvJELv6cykDRqw1tpHjW5", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9utMdBVe9S1dAhcMrC6xUVCpXyEFQs5enjomRJb9CKSnWqutxvaUgar69Vy4hMJtYwMKu9PfwTnx6eYTaQmwfDvJ9x99JFu" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BfWRDWLpusdjQRLVoSPHbEMZf8RFGLm4BDavuX6cBRMNTdaQ7KRSYdbEZj8iLzzVNiFd31i4982mh9asZvXDGET53TUWSuo" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "Bgd7qzwbQbLJU7AMcWpb8NaAmARdbVjQahZe4b4DKLDSKq8pUEzrgXF1dLPG1i1Sg7DSpEVMagqGtFQ5ywUqdaXyJzr8uFB" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BYi1wSUH2myaigQDB5JyCcKfgbLxsKpQFKfUb3K1AqVk9sSpbiTr2VpJ8KTQwGnrfuGwS2WBPjrFzf8VVaN1762yH1r7sRJ" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BearCsMUJdqH9YJ7EuSHKB16pFUHEtxQy3rWzhvZpwbZeYtUhXkNJRKeHQ8mDBqggkAQwGem9FTYgFCHXmffFroT4FaJV7q" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "Bf8osFXhMHJSLs5mMdMkLLamMGXCTJmqADBXZNrD8bBPgJLYkPetsEKHyoCZFyfRKHdPUPSGqKWYyY8drwCQFBtU6w45kVQ" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BaPgTPmNiE5a1QNGbMJHUiiP978x9zvXfge3UdjoTS9NM1FLy8nsCEEWbpicuwwnkPis2gHN1DDHcHEqekXPYqZQ5ikcRaC" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "Bft6jWpnzFUJKA5pCbZZzRTGTj21JYHMdhieZzqz2ow2hxHAGDXTvuH9r24rUYVLxu4o5QDeMARJxeF3gaLkdsGVEY2mZqT" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BfY1qPdVvGKGRaaLLjg7zoa3nYWRkfNDqFEU83uPRi5XDPCQ21Tp9HJGwgr8XsADpwRrUeLiDgoov4STrdmg76bLNZzfwwj" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BfLC6yZh1pqLqbvVgkppjXUdzEpic3c44QU5wAuThSH24YXQp4ajXa3NqM3MuzUEYb4sRcv8qbD2MUhHPLoNxm9b7uVz9k7" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "Bbtgksde7n7gAVBvuwzgijAdfH9Xe81DJBoKMgBoBCBQbrJHqXQZGKhRJ4Tu267R8BYi5pff41Pod6tC5mhoa9M55H99ane" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BaMQ7xd6mZJfRQ8URyaFX4K5omhUhrCBiStmQnyfKVXbWHAX9B848SJaXSyUCBZmGQcuANZCyM1SLWzQSSw4sNP3MRbaaEZ" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BcnXZAzJrwWesoJwdMGxVmfoXaNdtLGbeNezASWnZPG377yEWGMU3Spf7uctvdXdiuRdSytVfzXb8DUK9NL9ZaoLDWjzsRa" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BdGGb6kvSF6cj9sUFv3owiFgb3yQ9qQ1c3FHsT9P9hmdS5xWHUeiJeEcwvXmdWMPLDdjV2AFBqtJy47Lg2VNLLba95JFHYm" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BfTr2A8EcG39CGNkDGNZdhBvUmqACs6tN2ipBzf6Lu5PPJ16nKarrPyVZZTmLXttup3bcvQBJHbMx9ggGXz5j3hxNvvri3x" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BYUmtLg5ATy9w7SiAS1M3GWEdZUM2nPKcSYE6GmYVyS72Jc1Tc3QRjmRvsExLXtDYzX2ee74YChmfZ43kX7NdZmG2KL55mx" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BYD6muYmDCvZCCNqjfb3hB6tL4jNQveQt1oBk7m3w1dbAB8XuPr9WBxB3K4UgFYEpGHcrPqzTKnjcBJsFrzUwF1BUm5Bngp" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "Bg787Hg2EwRKSZr9HbaZ4abZugML9k8h2fWpqknaJFFx7BWMysisQhp4V8HFRuNu4f3iWYJGyjNa5f1wx431ShagCkRziij" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BhSDFVxUh1Mjg41pvqzANs5r7RPmCBL75c8kBMzdBjpsBWPwuy3L4hvVszqunmpNpRNYPZar4T31PUoun5uAV29LQSDrf3c" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BYGHTktntvvKJ6T2Y75RtRUk5b4sA9eWfhagg4PgFeEiM5W5Rvxe9ueQNwNRagUMfu6JVpT22Nt4RT5C9inYG64x4GEF3bo" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BhAShZQUTYLYT96Ci24SgtZtLs7CpYgA56TuKunwNoKSFXrFutTLvEp8bfZHFBqqhFExcXpbxF17RS6hxreh2BMQMtATNaD" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BcHpzEpEyRQB2QeozFLKmqRtHLGy8QQFQQxvu5pE6AzXM3divtygLbhUZBDpraNLq4dNbVGXuqLAo7N74JjfR1prCYtdTQ3" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "Be6qBG4XyKEEw7V9P1daMPJLHtE4MoJiK89Ek6Sw1qPVR1KSWtmdm7RTyVxShFJpcTK3XdbVCQnpX8jA95qGy9hiRBvv8c8" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BhnEZzUKp83gkajAPpZ4g7jQkq6FhFoB6VTabcCF29NxhCsn1VAt6GCj2JAqC7o2L2HSeWiFo1aE97L4MpSbpcZtCTdBWZM" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BfWyfZxT8P7GDLAekD6bLXijYKFithuiw4Zvv3MeBvaM1e5jieZeP7bjXSugZc9whf9oTrXaNHUWhgA1jVjzv1wU18w53C2" + } + ] + }, + { + "seed": "012388150300df0ecaa5fbddd9bdd6b6cd0b992bfd6c0cd32d59bd73aff1be33", + "coin": "MONERO_STAGENET", + "private_sky": + "3aa7a6feb3d6a70647cf14f53dd03978cd0b992bfd6c0cd32d59bd73aff1be03", + "private_vkey": + "59d5eef84b6cfe4ad4065066b4f3844b5c8f7392d90eb6d8bd871d2458c43308", + "public_sky": + "085c1e36b0f814dfe9e40f43dccbc6d2d56292925a39ad321516bbede353d587", + "public_vsky": + "8f96ac5ff0308d536a5dd00518da00aa50a131670789ce104236a775a14c4f2d", + "primary_address": + "529X3vBbrMReTF5dgtj4FFcGMGMuHinJQ9Nrz7Fao7P2Pg7QdEB1Bq6ExEconBqHoMVVGa5UqCodP3ijJ9twm8466672uuh", + "payment_id": "8dc828551a8fc7d8", + "integrated_address": + "5BrC4j16TcweTF5dgtj4FFcGMGMuHinJQ9Nrz7Fao7P2Pg7QdEB1Bq6ExEconBqHoMVVGa5UqCodP3ijJ9twm8468cvu44Ac2NzRRbUfbt", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "529X3vBbrMReTF5dgtj4FFcGMGMuHinJQ9Nrz7Fao7P2Pg7QdEB1Bq6ExEconBqHoMVVGa5UqCodP3ijJ9twm8466672uuh" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "746TptYqDWMA5QZRDj11gPbp9338UFdDZ2vSNoVhvk1J7pAooXrj5Ae4VxXh25Gu6CKFCmyCQz6kSa1UHTd9iiwoSQExS47" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "72pxp8BfTpCYZ88LF12b3cPSUSYcWvP3ZPrtHx1m5DXafMBU6WzDX48KfiiaueiXeU2ZCooWfvMrKb1R7QBp8Fp4HMc1RSA" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "78KT47Lo81LNiXoHkqKAcQa77f38miSnMHHJ8v2SDqwybBQMJqpjjHE6vLgEWtj8FDC6NwtgvhCjUejdQqBiDJaNSiM4eyn" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "76LcT7xVc71ADMkfGTTCbTXYRis6ud5jvjAEPYuMspAjMHiES6PBPfYfVQR7Jf2Q7U4DvjXab6xM8RZnKuTSoxV22tyQj17" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "76UZhevLnbYJrkbtCJL4rhP8WFSCJinUMhq4tcMTPVLhCQd7KxPQ3DWGavi9ibgktFANJtoEwvMLggWtf5QZTzqrDaTFSW9" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "7AtnEAUwiCeLEVzfYFRK918BC92ApmL1hYUQZCi2Hg7rTbHKZjEP7pCazNMPVX3gw5Z6U6jmqNKnCG8E2hkRVFEpAFexej9" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "774vBr7zAPxg8TyQuqaHL6bmtaNZgCavj9QLrVAvVb3T1vTmGJYqUarNbtQM1ydMLuFGUbGZxMm9S3LAP6DeMc4rKxDoYhA" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "74yiB8eeQrBa8hpiiM8ekcgL3UhbuXRDsXohLGgbMcbUSfkL2Jn7fQbihQXLvQZpUTgZEH7vjcCEfiRquC84LXhRVp3EtQF" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "72Qs65nSZFe1NRfnJy4zTKJAirtQ6LuznDxvj3tU1TTVSJe4tw1u7Nc7fj7oK2z4dKE7bvtAReZrAeHpQkCQZw3L6VNYrJu" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "7Bi34dGeNVnaDTWcbTirCtYyf5D195o4s92AJT1AxEEWLn1hygTYVswPpw99cpT7DF1y2HRYZfCzzNYQ3GRnuG7RUt5Ycag" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "7498HHhfpevXTxroqfamcdGR556ghRWWLTx6RMCQ7tLXgB5E1Hcuu5GNMfaSeQj7B1L8py261vVwQA86vJKS3iaYUWgqkr9" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "73wgU3hUhAEf14kTdCxhjDeNukCt5LL3ZaKpdMnBiT3FFyis9mpL2YL2WdKYMyVEkvf3ewy3mr3QAggpN1fGoqdQAB4gGuF" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "7454YP5fdRXaKFcUt2XPpRcDqRKhgiuPNNbzMuYCzega4xcGVeZpVMH81MxAWfQeV747pukGCBWHvXs4B8im5FoXENbcoPE" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "781kecwrJoMHHz58Ek93uF5UxJU1iZR2V18Rgsur7uy2TixxAZ6xwhaVRzw4rmjMQpaNAuqXuHLPW911HhoiGMxmBohMgjm" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "79njTqiWYPga41TsEFHeBN1iGvRuFWSbPggCCtFzg1WC7EtGBvNowqBb3h5S2njWScNhmyUEhoPueKecC4sDEmVwJHuYNnL" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "73gYig92ELbeiCgJuoEbAVJ7NwYNjdsBJDed3y7tyRVY6TbdRbY5aLfYzQbeK1uQKyiVFpZrPmzayVKQy9DpGwxuDfWMwNd" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "72PmeY1wtNc9TmuVEN1UQFKpZ6s2bGjkzNRyZU4WVNUgTExU5a1o3SX2GBP9Gz6CxP74Wo7rb1HFu1fQN777jhc19K7zfYv" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "77TiRC8ToCxG9xe2FTVnv9Sz8sK5JA3QC3eij9jSaDvQEmwbE6BLysQinqmFxkHQouHJ9mFSQknYgB6Ufiicrb32SYi94Xj" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "7BD6y4v1VzbVsfMwoBNoX2S3PRsEWcLdV7qaUsDKTHCR4ewJuNcy9WuLTCcvs1YX7iPjbMfXVnfUtbq9x7KUbeSc7FrhSDC" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "77ugH48CmFTdU3rE9HPQjdM18GyyT5QeBNPyiRKkMNNdA7xRjpbyoboaDLxNHTi6o12BZNUbEjX4nYm9yC9sf1gL5WdYDEb" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "77ZQtsjfhCt24SBZxuTrd53oUx8wK9wsR1kT63BcPfsVXPGyQbwaND4Q6SYvFg1nShi42dSNPzXAMA8bGc9haS8zKwuHEbP" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "74Cpr33o51q7NYwHNgPt4C5wqTN5QK3hBLMCvLArPpuWWFpVwap2jGt8sjSckDNzi4SfVbMSC4ehnADsQuSLAtg42xH8ccD" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "77doZ1QTV2TXK5U9oLdLtadgrozpxr2UNgSfsrigvz3qdhXE2sDGpiLgkcYyABVzUYeBT3vr2VGnTV4FZvzg93aoF737H4B" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "77mYGn1zw58TqvyCifMQMKDbF5bjNm9pRMc9AHFubTFSQzh5Ajw8BzdLFx8JaCroUd5pQ2VbZ8uJ2CruYHmhK669A6wz2ne" + } + ] + }, + { + "seed": "dc388e8751ecc87f31d6fbb0c2eaf3a32a86704534826805e69c2ef70d8da617", + "coin": "MONERO_STAGENET", + "private_sky": + "ef64982a3789b6275b39040ee4f0148f2a86704534826805e69c2ef70d8da607", + "private_vkey": + "cb95932b3d1f80fb2206b1fb9ae3a6bec09bbe9b779d112992c5406b1e16a104", + "public_sky": + "7fe51a50d8fa625d72b82298bce6e2b1955271676f9609edafa4c05e16707728", + "public_vsky": + "691798d1797ccf8a3a02711e09c162992da008e91b518da9a6fcb7083550cadd", + "primary_address": + "56gFSvaB68RGdZhmYCpKJRWhnG7hkAWXJgkrUS2JitsY7m2tmD7cFJeQ7yL1QNjkW5Sd2CSqysuKSVNqhxtWTYkqRxeSeKv", + "payment_id": "1b15b243d8809d90", + "integrated_address": + "5GNvTjPfhPwGdZhmYCpKJRWhnG7hkAWXJgkrUS2JitsY7m2tmD7cFJeQ7yL1QNjkW5Sd2CSqysuKSVNqhxtWTYkqdz1BrY596SYHHz6pZA", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "56gFSvaB68RGdZhmYCpKJRWhnG7hkAWXJgkrUS2JitsY7m2tmD7cFJeQ7yL1QNjkW5Sd2CSqysuKSVNqhxtWTYkqRxeSeKv" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "74pPmh144eJErXvryRiPgbgwfN668Ncx42pDm1imfTeweRT8uQKUXxzjDJdHJqPPR7XAUAWpVrbGtFbx3UvAYNpx69P4hBt" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "77NM9LXk41Na4ohNNpL36ZTZdWvBiMYaWWFHrBudeR93Wh357W8RbuU5ptSts3PkW4Exar6Hcpz2k2jedS3fCUYZ9ePMdtP" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "7BE73w1rQG6bTutGhy3y2tMnDCtwD3YK7dCktVZF8egq2DFgzcscWtD5m38twJHVty3HF5CUjNZpZ6H2sLkvuzPrCNRWEw9" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "76fPgwG5obxGndUcUA2g5PMZGr8bE99ixhZEyGA4p2kJY2DdCQegnHiSrh8Afkds4nALZuap78BAsCQTrUsbvHRD8Pb3s6G" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "72wBbo9Nui7E4JUDitauoXi1Kkt1ceEZA69zpEqgae9FS2RCPnVcXkaW2YSHhKcv7PFpWyXQwTNvp86XdxY61EQz6egDhEB" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "72UsYePdWxY6A8wWkGZHopK8LKfB2zzCWHcZbSoVQXRkSTnFaLopq8uZJzAEiMPCDQEqqb1oPBuN9F97XfCmgresQwYTRMS" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "73Xo1CCMRee2oaAs7qc5kDT328UjTC8MwStnEqCR73UvFUnwMoNdfQFe6Ns5KDsUjZKEvpjuwNiJzfcYxUvkD2KwJFXyuZX" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "78M4cWTsZnWV2rk7KQkr6ShWhay6CvgEzSS43prrFvUJQuv581JSCPJgai9x2MGTzkfGKB6cTDjjv5yo5xEyw9wa89XnJe1" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "78wtz6pjfBDKtL5DJtJLuhQMScS2cyB5XQYyjTTgL9bmQHCgd6YC95d7Aapy5KkmK7jFKqXxodYZGFaJi2JDYQ4yPNUBFLu" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "779xx2Z5jrpYQwKU1izv86cpxkjaWCZozQHJqHC1g7a2GRfjKFvzqDvEqhMwnHnvRfEqqRca2VpycjAN1nLBA2KLDcCNHED" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "72kyB7PYuq3YL3M8Jg1hfg97XriLeLkTRf96ShbUqbvjCTi7jKE2qUp8XPZNQaeFoVcUXedjRZPUhTsh5PFDx4keR44GvWT" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "77cwbBRa5aJD56UGJQjwUAdJU3dnjhK7s7A9jxPXazJxQZjEsEMJCHnT93LvNAUar5bNs8zhRkXfaS4pe1PiTQH99qYTnTx" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "74uEv7rqbEscahS1XBbkwK2EkHS9MkTXq5QGb6pBSfeXFKs59iMgE2WUCBnZ8GQ43tTVipqB8RjJmea9WMSvjjndQrzNgCv" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "76YCBDPb1uG1MRDb42B3UsKwZ9XEenPX62SRv65Rz6nNgmtfmysEsD19nL7GKYKtEdbqgZ2vEnveDfYjbAXWVWaK2PQH1g3" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "77uMHi8Gjf2BTcBvxB3uKqWV12dFeTQv6QzVfGFbjLuqXGRYnVczhQocYxB9te6pK5XwK5YDSPZS6LNgYNZBzbAVQuQH9Nd" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "78pvMYBfKw24rJ1CR7JH2u9m6jxGg47K6a5MZGd3fioyH467bQCU6VaEuvtAZig4Jg3an1H53t655ENJoJVHTzANG2se1fE" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "77oBNNHsTcTjbChwUqngtuBtwGwY641Kui1DgzVVHQSXPKcGBPfhaZQdcPCF5BCemxbRHkJneRPPDVmntWTpbteuFNwkbPm" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "795Kxbxj4cKJ6RSZCfRKrVbEXGkxvJuj2JGQT1BjRLHmMDrywpYt4ZCC3TechxtdsyA7stbxF4vjkc3jpLipoKyyAigmUuZ" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "76QWmWnESvsZkoeKyEfVm4jXa9HJWWR6d8q8jBgh6EgwM7LD7RLSZYvRaN22chK2M6f77BidmAhXR7tgvWduvN4nPCPRDrb" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "7Bd5HzB9j7MU8PVVV8yNMzDcC1etNPX5AHaxXDjrMV5bAfWvx97DuAa3PmVBujgfXXKWMuRMUo3NXPaPBmsQZ3dHVB6x8Wx" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "743ErD3srHLTaGEveN2cqteTr1cyds9hX1nh9kDGfmkA2eYbGK3WYRKcimwDm7ei8UdjzEKTusPSKe3ze4ewqZ4yMUCX7oe" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7AsuGYer3NsKxJshCUg373SNzL5Qy2pLUFbjQ4eTmMg3iKjUSi1Xq3Ghq4Q3FQU967gbAegXjpydDX6bLgweX7xLJf4JhRA" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "791haVpy216WYLCn8qAy8CFCaVtz7gd2P1wHMGF8ufMj7iE6RzGGNR545W4EU47weA863hUwUZHyfjbpczrDVMsw2t7XdS8" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "7AKzw2rpPiPGr9Y6McQ2aYibdQH3EYihXQS8bJ2Z9gwn3fwctxZ1QKKDCmMicp2ExQ6oWDqyRmgZ7gruGGY89pyJFLxeunr" + } + ] + }, + { + "seed": "3535ed143ba084b2dd204f74986d72e6084ca85605cb346290b6ee5af7f525dc", + "coin": "MONERO_STAGENET", + "private_sky": + "2c72715ce4979539fb29bc2d4abd1fd7074ca85605cb346290b6ee5af7f5250c", + "private_vkey": + "ca9ebabf11b5cd4b605a848072271717bf87b4c9817b1d55581f24bbc76a6e0e", + "public_sky": + "d75f9df54442d7dab3ebdeb4c653e750c5c79aec3464a6a52a80f2b827bf2535", + "public_vsky": + "1cb5c250af81d5f77bd6580ad0ae2330dbdded267165b3b580b1a2f9f7b61528", + "primary_address": + "59zXG8vtZqGdah6WEXcqz6EWbXB6MfZs3UdKQh4meise9tFkhmp2uQxiPuLHBZqBir9AzYR6bgvnvXMocV4qS1bS5XDyvpm", + "payment_id": "fc3e1f915e4444fb", + "integrated_address": + "5KhCGwkPB6ndah6WEXcqz6EWbXB6MfZs3UdKQh4meise9tFkhmp2uQxiPuLHBZqBir9AzYR6bgvnvXMocV4qS1bS7rcKasziMqVVRbBVhR", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "59zXG8vtZqGdah6WEXcqz6EWbXB6MfZs3UdKQh4meise9tFkhmp2uQxiPuLHBZqBir9AzYR6bgvnvXMocV4qS1bS5XDyvpm" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "73L7kPPagXqBHZjF9ryxsHcdBJbUmPmXC3thNeJCrkLQTvPDsDfGTAUFwtSzmzRTUgCzFHzTQBJaWAJbHCDdtiWyB6TSPx9" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "76ThGDnMd3aM5XKaQhLGf7AXwkNPEQWbGCD9pEDZZFc779NF5MYQzK6FuVAfq3anToCqYDv8TBrmkXYx3QvCL9n2JUcvGR5" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "73uTT8SWyboEkuvuGPCML6fNDjLKkFK6vZoAQ86cpvcSWqic9ZAswEDSE74t29mizXFyu7cwUgk1gM3WSeAaEqwY7mZPKUi" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "72whCqXAGCebE2SEGTpdcyP6wtyNC9UV7NzoUhTugAft3HneaomjtXBii7Ybkb1SBiPHvaxihE7aGNWo3gZdXvoSVWcxmnp" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "78VYesEEK4gXxXpFki3cpWgQnN4hFU2LX93WPPs1oZq2DxeWeQVqcjTbSanCs5LGev7jkBJKou5RT71qo1HryM3kQF51vYe" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "72PsS2KQmBWTWj68QaDYp15gaxCu465sgK36a4MWM1MNgrPj1n1MMUM9d1mGR1ddUgM9VYTH7kpKY7ezXTAwVHixUQTjx87" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "78aReAdziP8Vns1oDQLNtNRraXftyVDHrUTCnff2FwLmSsLx8poKmMscmeVUSC7LqFRe29UpvSFHwTsGK4gSSRvD3ET5R6S" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "735Gp62QAJmUbweWSY3ZXKTE2pcnTrUjEdzhfYWYYbQfg9L1VP9jYNKWPchRvtBbwEA5Hw3jJKDXmhxdfEXFTL1fCPSniT8" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "73rxBk56TJnfijoc7CppLo5EKrE6mG78Shjk648f6Nrm3vgHCybqdRnTLNWT6gd5V7XQow4hYvrPpggn4tucM76BBpmXNuq" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "73VHXbi61TMAvPBxwutXQfKMCaZFt75eJiP1kRG745xXBqLruG1mhLLSqARwrLiSRdYX3xmABZNJsQutFp2Gp8U8H2ngnwT" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "73gg9ijNBHX7a5TWWHDCcigDvuCexFvwCXYcWvrEKyEyJrcpUitc25o4xj4Txtw4hBLTgb7Ck4vYSBNbdVjEzFbsGhe4xwt" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "77ECEwXTJ9x1AvxLcA4ZQuiirEqvF1KJNAV3md8vdFEBSTETV9vGNZZVjRFEAzAgRwHwtiiaCn6YzT5d8tdcYTMjAa2RNqq" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "73R5CsNERWZMHmvH9B6Di8A4v96HZksLnDmLNDCnM1cR2nq6Jex1zBJLBoGd5SMx4u2rtvfEezAVH8h7MNf7HP5D7yYyhPj" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "75NyGNCGZ1Q85nEtxCphexhkKBzZJNxLdYzTDJcG2S22GmS15kByLd3D56TsWnucuxRp7qq6XX971RFxarq8HGRx4SCujJc" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "7Ac7QRZH88kMP1itjCDmTjHjKvTzD24znitHnQUgtxDK1fj1sL8a2EX6N4zHA3aJgGV5Vwj4SCh3hiVbC4ToLMz8EuBUDP8" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "78tp8T69teSCYsNXrGaFLZWy9tQYaME6S1e7jKDnihMiJdQqZ99wKAeF3qHv3WjiDDY9RrMwPvaV6MjrVZvESbEvAdmM79R" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "77418jU8PCdbzFgpYNEQGvNCtgFXJQCwaUFtUeMZJhe2hP7bn5fKsitAaXecix32ZZhfjJptbHWphRqEzr7h7uf1SG5dKpt" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "79hG7Kpe4AsFggDZKJ5Ms7QQ13xhPYtSs578ZvzMXgXEMEch5LzhJvVaT6qSFS6eCTcJb6thT7WwF2cpnBoWqFwKMwrmZfR" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "76QoV8fmMUMfGPhCS9igGoGUKmyU1UEcsWVFaQSNUWoSeCZJzKqRT4j2uMetfMB9xZdoXbPdgH4vWJPxeVyYYwEP3qLR2PV" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "79mk2eZLyvjbTeFVAUreQfb6vvxNiGKJfLztJzwCrPXeC1GyW72HMFDStoLMRqvDarL7zST4vRcz6a6m6wJDeMzWUeeNZFX" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "78PKmuGWyCCDY1VGa67oNRUUp1T2RKpgQb7vapJnBEwwhp6qahkxavV1JGXjEAHEr4dE95AuAmUmk79T9EZQVog7HgbkjJr" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "74FSJyYaC6DPcCjeBX9dStQSafCafeXB8HNeJVdM44AqSKx1yGqWqgGc6wVC3dqsGLfs6BjAeRqwq6pYkZwFxC6pK4x8iVp" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "773Np3jd54JE2JxY1tZgCUAjKsrvBJ1tyeVCdypC55krRs8Lr13m2hZUnDgi24shAtHpAHGEZiDa4LUqyiygNnR2K8sJPDD" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "77qgL5NVErAJjh3GyNb2g3YaSeUirSvR1NM4niNXZw1Aha8bw1j6xsKfCwjEu58DyCiVVTktX1DunR4GYmyPMzDBTLr6dsE" + } + ] + }, + { + "seed": "e18fe37885ae5e05a0fe23b48a43fe06d7917e415534916502af78fbe42461ce", + "coin": "MONERO_STAGENET", + "private_sky": + "c5a05d1d490982e493a488101b8d8a0cd6917e415534916502af78fbe424610e", + "private_vkey": + "05f1b14c5439e101f8f1da90ed91a47faef240b34ef62a6d51511c50a051ff0d", + "public_sky": + "cfe5367af98999b5f0129bcd7e875a31bb2326833f26098a42db9b25dbecda1f", + "public_vsky": + "ab942342bc50c101f4388de2637545c59fb20b5768ddfff8fa181477be2a4892", + "primary_address": + "59i5wjFc4YGXS2R7SzzUc99KTH3Xw9WqvQ8JmzZx5BhK6JEyNQsZqw61KxTRb3zQfea4CWojjkL8eiePWaG7siUPHZsUW4F", + "payment_id": "bffbb99d1c113482", + "integrated_address": + "5KQkxY56fonXS2R7SzzUc99KTH3Xw9WqvQ8JmzZx5BhK6JEyNQsZqw61KxTRb3zQfea4CWojjkL8eiePWaG7siUPRYfBAVPWKJjFiWZHjc", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "59i5wjFc4YGXS2R7SzzUc99KTH3Xw9WqvQ8JmzZx5BhK6JEyNQsZqw61KxTRb3zQfea4CWojjkL8eiePWaG7siUPHZsUW4F" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "74SkwnFZP3rKoLbhVnbCVXVmcqBeQy2heRspM2XT989rQQub31GZrM7PDadZYS6TYxSBP5jpss5G6VYUaPBZjnPXJpE2p4x" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "76kdWALicshMJZEQejtBc6EV4qvAWZUwAPNmbnWsc6wwTLkfo74WEu112L4B8Zzmoc1kpE9NpuccpEtASfXBhwf6JyYfYQn" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "73TCXqatXghLd3ukYmWRV2hC6A3JpY2QpcDtJseGTzHTftzE2SY9vJ36XjeB9eHHXe6gV5r4hVeXxCeMkVRbEqUHGzN7buu" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "773F4vrvNbg8tLN7QtCpLsc94eNdvEChbf943gTmXPxyQDhHeVbegNG9BdV6SivPkRcdQBHNt2XgeKFVxnf7Xj7q3zyiV2o" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "75Zd8uCgURPQvR4mxp51w7E3Y2K747MRvirZNXwhvEe1GSHMXoz96PgaYNMrjcRByiit5n6aYhqzu3jbkv39QLwiVp23i6H" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "76bR6EtXyq1Jr86dmogjJGTVLvbNA6vc1htq8XEx4fogfrUNnUvoQi45mbqdeBkJBkVPoqdeM4vxVQAffqK6egYiNF7M1zx" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "77VQneo7XYtTodoP9vZjsiiXUkdKATC59SLF3jQe7K76F6SbFhhmrkf3HboebUcaXdJLzCW5Fkx1Djkz4J9Kr4DRD2vVqgt" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "7BXiXC5C4c8ivGq7qWkLd5b4Uc7QRqKgNZob7H3fhXAkF89toQ9mNmcGraGe52i8qzbqWJheiZQvWfdko5FVqGfr9RsY8L4" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "758E377Fvzj9UuRR13Ec26iuosM6zNoNhXAgAmujfkjp2q2RgUD7FjeZHjpW8qZYufSbEpt429iKKHG9D4wSF3gzGTmvznG" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "77qJpwWN1Yi6KHGkTBDYS43KuoWywhRVggM9Wriacd1oWsTxGe7mNHKQHhW3aNqt5kibDhE8rbLVj3EwCkiXSrUbTJSAxC4" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "73y5vwho7mxST9vVeFSZZjZaSc1S67vaq8CabSfvfrxi5bXQxhaLpZDJoNcmGUhwZ6diweySjnGj3GwEhuVp1zmp2s7Yyrf" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "79QwYxpdZTt2AyVASHsgtNRuVCe1TxAQjYTNkbEiRw4nScWeRa5E1YtJ9bypiRCRErYhWKYmjYWSGZJduz3mi51oA8yP68A" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "75cParq7axpWd7n5FMPx7d5KrczSRGGdBaiZfHSJyzFmTdzzwLRXhgj6Rq89gKnqf9NUBMiXsAuW1cdMasZRpBEh28fMUJx" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "75wQWExibdYeaLg43qKaNPX1DT1WDUpGQcgbkkBQnzHBa1niyLENFeycGmokKb9HH3cKy3BpYGC14SzWqwYRGEFoFwD7A4Z" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "74SZHHXFK8jQDWUob1NnHBPKarBVC5r4e61P31WT71seURn2GRE1FoPFtL8RYG8UaSJiGGYYoWiQreJ3mZKz9E12GHu9eWv" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "73wwgZWYNVdZpAARbm1NYgjZTP9rQ3zmQXS1jDJ69QJZ5YZEADPqjiu7uJmJJAUpVnhiEtVFMxwVP9HiKADezuMADp6RiVh" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "73DBk1b7tDm2tvYTqKHCZo6tbiVNNK94R9K8CarKu897eQZxGMV16sZi29p62insgKRbb7ZAb155GWXoaYkn2Jy2Mw4y2vB" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "73bKDaEMhExQybmuRyiEXkiGyVz5qA46Z5NCQ9k55yTLdr8Y2szJpi7i3TMhRvf7g6hN1Nu3Kn2eR7krd55ARDDtTVwVBL5" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "7Bh4ca1hzAURysqyjvjekGKoe6xuJskCTKbVPacVb5aCicigohFvGbeLSvGJNuMprAgrPTFVqmDpdc2PigDoig7SNBT5svS" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "7AR6vow1wfmSSrLmn77RYe44uvbqGrb1ufdyAN8fyFxq3mzVeJkR6Hu7TKTujvayQC3uzjFbkfS5mBcZtEuN2TQfRjA6ae7" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "7619cXq4GNw1QgkVyMMBwmKJaSWYsLzwPFCZQFqVgDCu7ZP9psQZavbTGB5Sxyp3Fv2geAUAdbZaJcQM7ZCiuw86FFxhTiw" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7486HTu5rgvdwKWKDcWhB3ZbDDTF2bQD9NyKTqWov8FsicDxTMw1Ta99K5MAj7Tvo4ikrGLkyUoNt5eBmHcLZ5q8EavS2G1" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "72jBsiZPkYVWwBRHEhKURfiwwKnPqV7w8Z2fNfcNsJBG5p8iKfJMc8DedcUXCEZwPU4pv1vytu6fvMPNPmR8WppKAMzV4R1" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "72ZcNTMCR38c8hNfPU8zZVPDrvGTwFzmH332CK1KLt5bRuRn5EAUKZgY52MBakLfBMfgD4u8dPrg3if2SpGtTXou1Y8nfjC" + } + ] + }, + { + "seed": "896c3062ef1719421ab23b599c3af1c6ad1cce14e755702b347b3a8451087a2e", + "coin": "MONERO_TESTNET", + "private_sky": + "afc444a8ba51f4916d784c13df46339dad1cce14e755702b347b3a8451087a0e", + "private_vkey": + "9d2960db64f1f8a53717919218acc75d8bdd2c151724bd17cbd6d1e6173db70b", + "public_sky": + "db7f8a640108a3f4568d49a51f1249907b4d6e54911cac1bfb80fc4413915164", + "public_vsky": + "d22dbaaa64a093977ee3341ce1365d2b4918826499fd00a5e6ff5283dbc56b14", + "primary_address": + "A1V6V47X3qChsPN5XTvX9SRAesfgGTARR5gTxDeWUJdWHs6E5FvnUYiSLhTniYcQNQ8Evat8edF35UkThxfiDo9t3MKdyJH", + "payment_id": "d5ee35433f2b41ed", + "integrated_address": + "ABBmVrw1f6ihsPN5XTvX9SRAesfgGTARR5gTxDeWUJdWHs6E5FvnUYiSLhTniYcQNQ8Evat8edF35UkThxfiDo9t4V8fFXT8okLTokvfeh", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "A1V6V47X3qChsPN5XTvX9SRAesfgGTARR5gTxDeWUJdWHs6E5FvnUYiSLhTniYcQNQ8Evat8edF35UkThxfiDo9t3MKdyJH" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BcNKJQw4jJbGz9r9h4seNdMWLTJbh8vCvaMd8EZkDfPTGdsgHTz4ffgGxL6KenL7ZkgGCKBUsyg1N16mwiwDzRuqDp4ua8c" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "Bb6v7f8URmUf1oNeuhzYTSaaEGfEUbYyjhsH9YCUP3XMfdemYYNn6XfBRaq3U7y6bY2rNrZWu3GiwipERYr1wB83LqWCbWD" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BdU8btUStJnRFnwcvsWhMw73mtRNLvSZc72CG87qV88viDhbR8Pf3gsg8ytmFtszxt9DNPePgaNDdMCs6Legy9WeC5x1wQU" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BYVakPAwCGEQJsdPNWJHMj1JLx78BGMsSKhD7XFCUYxeQgXhgqrfaiQ6XwYM7VquuU4ze8ej2eirr3kiEuopHV5aFutMzo3" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "Bh6jk9QnVXe7RAehdKMJsr4Rv8VppuY5LHuPdNBwFgyWF7g7FRCLGRBQJumVAYcRYV9X1ZMbHcuYjLB6wV5PrNaYQkJrEBz" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BgrWLRTcfywBdNNtfNtUcPRjjvFGgD1WaF4tvSRaCpT5eCT8CnKzuLvJL9XxLXgEtmYgqBDC3rnYLGEUAVy2iuT36qJTx1b" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BgLFyg97GFe9oAUrgq1UNNKiPVJTfF62udTEs8Ku9mfhdYnVrcpUwEkaiYB8Xa6YohKT14r1hfcbi6wdqMZnfDfNLoM8N29" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BejVJ5BpyoaLSiYxviPX2kCmUEx64Y3i86wguAttw5WkZx22p1ZXqU7F9QdXxe6HCcHjP32XfwZzt6fTHhPCbUHxCkZraJZ" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BarTtY5zrz5jGdfrQsurYBChkoAKXqyX7QsEkADxHHUcMzTr8ocQVHe1BkucWQpWbvLHBYDHXeWi93eFYKrp4M6KNq9cmy9" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "Bd6ZL47JGFn2QkFJKrFo8jbXMgvigVxPWaR42taK7Dds8WFZaRq7phn8DvJ6oHbcJggeFbm16Hrt6TRD4EJJquJ2HvrWcQV" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BYS7vKG5P8XAkpBF13TCthFeNzsyFuaEGFvL368NhXnShGtKrLXWJLCP5rS5ob8gKATbbVo5ChgMTiy2x9G9vMdW12kbcD7" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BadibMWy5Tu7NFUbooVTxr2uRR9yHzSTKWSJCHecKMtKZChwaJM2CxxAD3mio5yAMqgvwamrS2pkNUv6otCkrmkW79w5mDS" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BhoLJe2FiPt8Xyi8fgeii8LewuJkBRozrf1R4Aunr9AD1gUiBnj9b6zCF5iX5nFeEM4zMcK1b3V3gaCccMPyKhwh65BRQom" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "Bd139msz6FQBzzMiwFBauD6d2z4tCzxT5CbdyhnwqLMSStzJGvakfpbLWm3CbZhQrtB5VCJQGqDjM5kvKfKzHoEsDTkawVA" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BZgFVZGULn95ZpJ6NX4kBPLVJpUGvtFCkKzW3tMVBbMvXwdzHZq7MWVfR8zCfCFK9uQyXVutpkZLqFCqhW44PqK9JF874gw" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BYPT8mUpb4xL5KXzDvKBoraBZUgWpPoFpZFxqFvejorG3QS7JMsTsZkQF9Pa3bdVVbZA1YZwqGnWgcEeqcDAZn4zFkvXnaq" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BZe7F5vJitw7s13b1PEZxHEewp6mw4yzN5BBrLeu1LwTZeSpX6LmUMvfpQs21yfKha1yKG1muSwQmjSzGwxTfpKp2u2vnte" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "Be2mHvSy8mUVV7AX3uZQ2mJ3MP6TXPbWtSvJvicmFNNsjmikpJYYwuYa8jvFdNiRcqNQSwSMrjkMt8R75U9tLboD2JYn5fq" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BdWF2aBMJbJL4nAGohw8neZoBgzUbhSK2CivYYiRs1VdQgwtdg8DhuhgtkpqTLAVYLUBZphJTz3yA8TGfrspSB7gKxXUYag" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BfgWQ5cxMx3ScujeK9PDZWTHGqtAqnBU5FZA3tupxEcwS8WYZeHpdfR9iN8Wq3sVW9ajFWHMMHc5p5dUn3ucMZ7h5XbrEGe" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BbAEdS6gEEwG1sLa9WTTUJ73GtD9foSVy9HiBgiS3Ztg7PWRwzL3fGnP5XTcCYi7c4JCrYcksTrid4WmvT1GR7xUGgYw9CV" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BfrcCjjQH564ZNRQwGtap11Qpx4ugQQuNiqEdFCnxiQaTbkdzTsEJSBf6VEA2eXJpvZ36uzQkv9BNbUohjqVN8m6DZi7bSr" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BhTMd6xMq8hFMmdmH1jRL2d5FqS2dQYwr5m2yPYQahrzEobescvppJWAjKwDkqCpsuX2kVnUw3x95W8QUVRvPodN72tfix4" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BZ7FHQ48cEWigcyZsUD3sCVFsMuPcXMfZU3pMVHVs9QBXyiuVZQUFF5YzkH6CHRRsuEXmWe5LDaTK4PJpNBz3LYzJm5NrqZ" + } + ] + }, + { + "seed": "397514ca49649f8851e50c3d8b8586fa619399f1e86712ec6321f70ce21f375b", + "coin": "MONERO_MAINNET", + "private_sky": + "985147f9c57443d021d5360e32a42b92619399f1e86712ec6321f70ce21f370b", + "private_vkey": + "a15250e16d3e5d10d7ef57fdf0b8caedeac7e040c3ac210271f7e876181dc10b", + "public_sky": + "8e6cda7837944ef6309ccbe45a0c543c66182c13b83ed4e504327d755f380cf0", + "public_vsky": + "88bd1483709144696db2330cabf274f0efc2d426604502c74cdf2c9ceee4b800", + "primary_address": + "4729h4DfLJyiBMKZzmXE2wB6wktMfLwPhfJkGFc5ao6jhEUyrAqsKcXJdnjaSFXEF5hJPRCr8SDjPaLTpRa6GAtX12WZm8C", + "payment_id": "c17269b514449b6f", + "integrated_address": + "4Giphs39waViBMKZzmXE2wB6wktMfLwPhfJkGFc5ao6jhEUyrAqsKcXJdnjaSFXEF5hJPRCr8SDjPaLTpRa6GAtX18LBiV7YfdcDZJ5VFy", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "4729h4DfLJyiBMKZzmXE2wB6wktMfLwPhfJkGFc5ao6jhEUyrAqsKcXJdnjaSFXEF5hJPRCr8SDjPaLTpRa6GAtX12WZm8C" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "86RCq4pkNHaJ343n45rhLvEB2xY6mBkihZNzmTsVxnKfaU4n9gfwAdeCVCQHf9aE7YEcTiGru7MbB2GWb9uP8nFA2A3XU65" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "86mPk2fS9dKPZiYc69MPrbBoGFeLPfHXLVKsJq5mtQuNTWDD3dJsjWtSsWs6vHfy2TDGJYomQteEFbZiQSTLw6dnKVDbq4U" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "8AX2PEgqKzRSSxPTzGUVT75MqTBVnWQ4riVv6u3E1RJm3B7zPmVw7XxgkMWZQn58xVawRW57omPDQKDUnuWNLZ3FPWLfqnh" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "88cFvW2XGst2ZFX3Cfz1FR7jhxNB8DTLnNHEqvNZZsKmNuWquVJsD1sW4eUeo3hVhHbkWE8taLPtJ2mDJH1JPHrmLcFpxfX" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "8BYuH9xbi1CHHFiJvMJ6tJ9mCn6udUNJvfrGD6iuhb9v4ngSfvWwAeTTWPXaabwDkMjU18ZQe9KnXb2UbLeq7zSrHHBEfB2" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "89PViP4avTDHxYi8dzDc8o7yb2nYbib4q2Dw4Y9AVikcjHfn1UkkJEDff6RVE7MtKrMfHHperdCyv61yi6G6hrbmTETDrHu" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "8A9CqtnJ8rcboXahmvaMFG7rPT6phxaLZE4q5EAnVrEAXm8u73VQHbZXpVHU2Ti8nHUJtNEomiMn3YqnANWwetF67sw7kSu" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "83VNBNyR2kMfpr4u3kTYXVVyBAD3h5N7iVmaH75TGrhqFtiS566v7QDEoz2tayJwsxZvbo2hGTPF2FvDittSB9bgMjNUQA7" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "86MTLc25EdwLCt965LyMEJEPuN6ggbeRdQdwPE6ejCcxf7FugxLBanRQeqVfigVWG2Mu5viJfVVSuhjRm68pJMxxE624D8s" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "83STJBNRvqgTqD6D23yvFEZsaY2GH7Q2CYSLYrdV8ksKTtdamSHSez5Lphczqs3vKCUm19vLG6wosPxys6DSQBsmJWNWX4K" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "89GEg7VGpQmZfVrCYJhsDugKdAMUsekecAajPK7gGuUQ4kNhassVZacTzR9cFZkD4i4Ag3Ho3aWx6DP6md3QVWhxKXSfCtE" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "85HqypzRoTd1QvtAMzQiMtLCSgdaSRYBH25tb1ScpsqJ2wwjYFir3mLb8gKeqxYVyeXvyBFzgoEyvDcGF6bjoQ5NAwt7XZv" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "87uNi3mZRcDenZohFFpuz6j11aXrSAD7RhU8AThGijJu3r8fKVx1WTuYpJ9Bux5fgwNUUbXbLCSHoTeVJXh5DdwV1ZebUQf" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "85LpLAdpGn7MZ8D58LAsF6GsUNmFKZpGTDNXcSGkjvbM5DdHBznHyjbc495GkwHfRdQHSEM2Eb1ULEnQNRjdW4WS5AcxWJJ" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "856kTrf2pAbFh84UWog9gfSKnsEJchFFPJA7rrdPtoiN9PxAFgJUV1JMLBpFTkVu8ji3MKuyRRRTxEVsiGvUhnJRCmKbADB" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "84RHDbWVBTKdDEK25gFeAodQdNrmmAAVkbjKcd2RsmumcasgBR45q16d2wkmfYcY9QLa5r1XFRUHi1bk2aDZDTh7R7iP8M1" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "83ozDBrWcbgGXL7D1dqS4gJSkcQ17JCFyZLEXecXdNspDKcVPAJQkRzELxRfKY4fbg8Wdmo5GgDG7RUC2cYxRVaMASWgZDD" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "89Uvwp8YLveNwa7hddQ45s5casT2bQwu6cxvBNL14NK1HWGpYRWo6Whj7yuWCEJn3FaLV9wNXT6F5fmT23Tj8VBs4t9pX4y" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "87qihHEVsoDga19eVuB43UfsoSQHPzGiX73kgNzMnGAKdozrrcDg8eUH3CuasJFuLV7ru4kVQgERJ5R3vmmEePwD4vT6ver" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "87NXxx6x5G7TheP1YbXeZ8GXPKp354Coq7g3MZic53gdBu8qkyomi6d9xcHgSEdxGLPXR87BBNE5jUzWPBvKgtK2GoDBZBT" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "8825RWg3CUjWRABAX7RJN7CcroLGbLc3WgbhG9YWryZVTdzrT2etrrJQbuFVHKVhjLfeLquYzkdSwYNLD5nF5VMaDnTqXug" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "84msL3hzu2aicTkMvyBgXe7zDimtmkVRCP8QdWmycZEuCiReXKADdSDAGjP45sNS1MNAsP5T3NUJAVukE1gSN8Z87eNceU7" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "89z97rgetp38xKEzRQennmXUcngsquXDS6Qqh1dbv6NPZnK4bnH2KZCXUYo5QfkYtrLSRiiVSvUccdofaAWtuCeK3NSFr8Y" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "87SHVQwHovGVAMChTntcfsbBXY37VrjktAtxfS9CUANdBswnGbkmN8GJaH5Pa5FLpnZh4iHXRYdCyGLkueNiVUyKVMMdLzH" + } + ] + }, + { + "seed": "2d1015a8de369dd436dd95ead13ac2451133cfcff7b51e0b8d8fe350d984fe6b", + "coin": "MONERO_STAGENET", + "private_sky": + "9f18527a40e42ec43030c8189a5f88c81033cfcff7b51e0b8d8fe350d984fe0b", + "private_vkey": + "1db02c2d8f7046737a39b1b3f1d35e83f69f7fe233b9006b7a3f21a7771a230b", + "public_sky": + "21c8a32ebcb5007ad062112a3b97bf0cec0cb01180de3939e0804a168c8ae46e", + "public_vsky": + "f3111fd87299b44f84d15809e7634833f6cc28b73d2fe282c40ef8f506dc671b", + "primary_address": + "537Q6y3XKbuMYT5Uv3FcWJ3AMttYGKeCgAgUnKGBrFw9KZMEpszhVZuEJS4mzRfTcb9h7karf7HNqNsbNSy1DgKx45sMwhV", + "payment_id": "d34c69a52c8aeafb", + "integrated_address": + "5Cp57ms1vsRMYT5Uv3FcWJ3AMttYGKeCgAgUnKGBrFw9KZMEpszhVZuEJS4mzRfTcb9h7karf7HNqNsbNSy1DgKx5ewapQrDExHVMFr5RJ", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "537Q6y3XKbuMYT5Uv3FcWJ3AMttYGKeCgAgUnKGBrFw9KZMEpszhVZuEJS4mzRfTcb9h7karf7HNqNsbNSy1DgKx45sMwhV" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "73uSWNWk9P1EojqJbe7YSiHBgo1tqqDiybCh2DvSEqsNW5iEW4xvhz6iR8sFMQZsLvM8wqsxKASLC4hnaUYuA7qwEgBQXqP" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "78ZJ8w2i1ESLCaCqqQpzNtWwSfA1p6hdeYHTvfyw64e2GbBttorWfKk3jESwRScJaSftLxQGkQPn3H8NGwK1oDKH9rTQjeX" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "7ApE8ZfohyCHSULok3PUYu2Fb1Csbf39ui9QLEZxoEidd6rCTEgemSdCcm5EkxPa8Z8V4H2SsJczHWfshfjpxEHAP4f98J5" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "74KxrLTS2Q5Hf6kMejgsRJiu2x2UkdhV73tM8XzETcBHTzHCBf48vdag1ecdnsDviegwvHUvppRTkXUdx5MTueEfBz9fm76" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "7A2ZicuAFy7Cct8ZsvRnLJ63HY7js1PgCDbR7Vs1WXkALMwL8dWMhwGPPP1LxhPKviZ3cd5pvgFwVZJPW4XJUR6ZLr9cY7a" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "72QAxM4VZqyjkTLbCDroP2RhuC3G2j5m1BzY3aC762yAW9zY5b3BE8zLhukX9KdfxuZcC7WKnf29e9RxBoKXarwF8yRDCuZ" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "7B9xHMQACuXJ1rtz6QqxBz8hyi8szGthqQ5NJ3xKTS8JgZr2dmicFoYUp8RjmK3knwabcPvMtmcrqYioKMwbakPUQQY3EU4" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "78mqJUffXz71G3MjaEFafQQJQgscoJ9KtZhHAJ4ae82Qh6fM925X682Zs8jNeNq81aa6eVRVAW5aAX7WUte7U4D7UAfGdZ9" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "75ifvDG3LXtNz2ssLnQhNzX7bZWoWyzE6Wi8z82S2gZNjSn4KjCSGonWEAggA436iiJRg8e7xp6arPHKkAUiDp2HS5g4jVb" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "7BfhwBthxQq3pRiaBCM9TVPs5JE1GtoqcR8LviQRPQWXd9ywKhVyD7nhgWkKPUj8qmMxUXEE6PiBXhbLwLJRnYUP6Zt3gKN" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "74CzuyjmrHzPZv8nibHR1qBUzbAoCA3BMSWgayNosDvmHXUoWJ3dvtCPPXMAty47YZQJ9FbjuK5ttD1LK1n36gZvAraEMi8" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "74tHQhwQmZ9gbYgqdR24ydFuySf1uL1fs9iLJCRk3M4xKgDCfNNq4oWGzFd6jXLLfvfLFEGpLiKqd7YKVmRZAYmU6mYH19Q" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "78ZjxpX1aG4UphiU2BQvzmQiSSpvF9DKMbHGtRCbCRAmUWJe2JHym21jPeCSFVYU4L8X5mXLoQ5aqgu4sj9qfUqY3jPxYzN" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "76pTDdDP629BCQe1tpsgmJ5vC4UGt8QNp7spx6j1q6wxNkRYWWAG2Qm4Yd1R9cLMxjYG1xPS1LYWaWA7GUzzDYRh6yEFN6k" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "75vjsU2XMhaH6a4MiwGaBEMGMLMM38HKhZFKHTFYEScp5C8a6gynqBFBsDBYHnA7x6Fuja6uvrmXui61cQ71cjpmNKaa1oS" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "7Bg1Xg9o6sEgenJEabR4rJ26dGhib5gRGMZXPEiLTtkdjhjECwM6karEBreQN4T6kfSLBx5Dd5oP83iu5BfhwQDb33hbtRe" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "75QuDFinPL98MWhz1jb1T9SZt6KJJ7GTHL62A1FhsUmxG1ZgNzbeLQdN4m3THWQrm96SxWwEyAQpPg1NTsmKjnjQFcwMHM1" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "74nzx8oW7MTENppLWn9XTrL9S2aSHQjUrJRGEs8YL6Qq6ninrZcbn7FhTZbzYuHdy5eaQuDjpFfo3iaKNDksckkRMKdYef2" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "77bVbBaLpfvLSHAra6Up5f7h9wM9HgetLThuaCx1hD24ZkHWLgbi3MfTj1Nr6f56NgBhWGsBX4vQPFN31nAaJJGETTyrnge" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "76yJ81zvmN8bRMoAtdvePm2xKLVUA8EQVjWB9HkANGhad2hcsEugp4hSfBMAB7PYUsbeaNfQArGkHcwekAR9fJ2MJp1jHj3" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "75C3rmimQ3GJEWmjQCmHJmbRYKrpWNEW1cwYmT2VUtVvA8o6JwCEPonEBBaAHKCGLJBLH45d4YHe4hN5NAojtycnGEuEmUR" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7BVGRP33335DNkadGyGciVAKh49oDyCkM4LJWCwSZFH78ytKGBWu1sXKG5zgJES8359td2SrqjyKB6NocCXko9xR2xTLFjK" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "794PyXL59r1VwXpMmwNYaNe5PZ7fMc1bjcHXNG9ZmZKwLWXnJXeH7AD2TBC3viBsp7SwDY8UZVACX9RdQn9YVyBNKPyNyES" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "73RuyzFdsxkinBigtUa8wAEhTNaCP26RGTgPmdGEfe2Ebh2CCNbonD41pLN3fFgC4wBTEHVxhPUHdCfgzAE3xaJm9yquivy" + } + ] + }, + { + "seed": "b84e7cedff29d8371261dda9cd6e068e6c32b9fe677486dc7af809ccb17a9bfd", + "coin": "MONERO_TESTNET", + "private_sky": + "d5e3147b745bc40e83305b1dc2caf5546b32b9fe677486dc7af809ccb17a9b0d", + "private_vkey": + "75696652e21cb1b7ef9435f710f2ca88bf266e5571e7452bddda50aceb531406", + "public_sky": + "6152f6c33055ba8c9ce3037c5c5cd63ff44d9d3902e206bd3f5a05224bfbf1eb", + "public_vsky": + "802c7802414b77d4ff4402a8b723ad997c686278ef61cac91eeac3a52bca683a", + "primary_address": + "9vrZfPumU3TQX7zxTjUiyBBhSLmtqbNZbYewNjPDkBL4gPenvTnCMU2cdLfMN9h9CpSg1MhJDM6CRae8A7tsaLMD7epF4Ki", + "payment_id": "a0d20a3196578497", + "integrated_address": + "A6ZEgCjG5JyQX7zxTjUiyBBhSLmtqbNZbYewNjPDkBL4gPenvTnCMU2cdLfMN9h9CpSg1MhJDM6CRae8A7tsaLMDAomVHWStP4PJ446HgK", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9vrZfPumU3TQX7zxTjUiyBBhSLmtqbNZbYewNjPDkBL4gPenvTnCMU2cdLfMN9h9CpSg1MhJDM6CRae8A7tsaLMD7epF4Ki" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BYsh3xgk8dFZnW6ktNJCPfLy9RAQtFn9bBLzYGuRN7bmicGqJZztoAG7WSjiQHNVQB8doYMQWVw3r4ekvqATCDHHGT3vdb5" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BhcX8C6Tgri8Rqpc6NbzuRcZFC9eqrUsk6bUMwgFJsZ1TXX2npWLSstDYT1VfUBQvbj4wNqDFHukDAbdZNjbm2dzQQfQp4t" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BYnYN7R21wM7pYfsi9pp4kYXh8PCo9ove1PTqj816p3vfHZy6jH8xufdNG8Tjs28Tbj932H3mZZmuU7MrSJvvGePS7ZzMFH" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BecKkCJJcBiPNS3Azkg1JJWcoTEpAuykzLb1vEESCBmr7XzF6bbwVfbLqABhsuQNJ8CapyARwyfkpasViWyn4edzKA9RTUs" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BfXrRKK8crh5C4EHgRu2n1jPUkmxjSfJK86x81fR2yxfbJHUPgpTZuXTW4Kx5pYip9CuVDy7hFpvEKRjanSLn24H4Tk3yK1" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BbXVWnWtFowAUxiyPoz4MoDNN9KwL138WMNBzwbSbygyXWdHFBSMZvRYBTxjwYLESD4hKoq381kwy5BcbFTbatJVT8CG9Bk" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BZGDDtNCBvhM35irGLP9qwLuKqh8R37PFgc7iy76LLWxUhTvNRDCypRf84LQGV2TVvPNr9G5YW84h83j1yf9YZuD1WUHNAp" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BYpjP84mKoCb935KCR12R8Jzfs8JYkBVAWtX85om8XhpSwfLnqdmEmJBY1LQes2mwEfudZaMGz699KL8s8q89jiFSWgZXZg" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BcpwrRmqMGGLY79fB4WZLDSyeSqhtNvJMYPxXH6GvhLzCJ54KwvKufs8k46haHy2ziYzXMikQrr23XYDZkLgGBXtKBCfaA1" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BgLcLvEKVJbbHtRgHf2a7YHybqxzcooiFSs8SRmnZEk7hnGi6JE8Z5ZPE6y8Ujfg65JJYiW8MmYS2QUYF5PkCemPVd78Bxh" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BhW4Khpp3UnGiM5gZ8irHF9StM6EuGkmVM8KM2BaFFKohNQAFJVhR6iZT48VHUyVRXX1MyuYTW3Y3JQWuaTqVuL8BEhJAV6" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BeitJChdPkWjDwNhN6qmET4ZQFuBwRmQYPivuppB4F4gCar4NgwyVJo3iPYrRjhLDvCZFwtbjupDUfBJf6hkgXXL2Um35ge" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "Bcem8ESn8C1df18rHV9n3HZsWhSw8qWSi9kT37ozjWKKJ8MFKnerN2Lbw3sBGZYx1iKThpXwHFyfBYqGU5iDa7sy9XBjTS1" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BfYJoS58fs5H3uc62sZecf5p3kTYUn2rtX7Rp1aTFkzwYqqDsp2fL1cRR4LszGBtqheQi9VECUxtQgcrSwogKKEXGJoixCs" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BfZ93ujtSMcWaBs6cbsHR731gEkaETE4K9S3Zy4RtnWR3fSW9JBmHvVYR2qkDa8wPTdLr3XgMvN4RHRTtHE4ShdaD3EQNdm" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BeaCbxwJZFxTZx2YWeREXCZwM2i7JWJ5SVUNj5GbvXwM8ExcRhkseZ8LxJQRVvNwB9GnHwmq4o9HMatiBvFaZjZc7YDhvbJ" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BaRwXw8Wbjpfb7SRPPC7ncayp88ph575uFuFWXuCV1qSBynSq6s8jkMMr5MBtjVbgB4RSa3AWfnsB2MkVgP1VtgJK8gr41w" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BZ9cPiYF5rfSv2HADAoumFjNG1Y6ku7rMLquTtZTtskeJPhnU4TNE8oFGCfexnDjTba6QimGwRSGdAHubB6neABZPbmjyS2" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BfFUEXPmxowQkCvGj4mYGkipawQeLD6pmBsUrf8ER7ygFkSzpsfm43k9fYkuWjPecHbiBBXSnod4NKyL8fW4qAq35zDMzL8" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BgtCTuN6KqNhinAz5E6jo6NryC8qvGdf3Q2Yizv9CjWmHRmRmByqQunGWXEghV21CCUBrVunZzbN37q1z4UJ5dmz5WomMkA" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BeBhv3ZgnUtDNhaKXuAiaMaXBKYWHUL1ebz2mULzCvHeVjSpR4KVFg7Fw4uBcUMVFU4ydfxshJbVUaSHqFmoFdeVQdQZ2SD" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BeavT7uECbuimzvpJ2FijWAfvM9vey7igbpAdPcGu9biHu48v6nGARsbRJdD1K9UrqQtJjyFCqntsD5ikCkDQk4pE3HL2P2" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BeHUSW5rNzPVVREBa7QJv1KhD3GG29G5z6Ms5cjpEYP4EqL4WDWD5AnSdRU7bA1yrYNCtsrnAY4v5hsEUqhdUzaTLFkv3Li" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BZ1BdZKvnsDLy4TUfn27CaKq6kB9DgKPg2Wn6ACJF9sqZmR63f1MztcV2UnG8ULny31tVDwpN8qihRdwf57YAC9LTEmVz6W" + } + ] + }, + { + "seed": "def1cc68434fc416b13a5d60de2829ca408e3f6ac4908efb569af3cafe7af17d", + "coin": "MONERO_MAINNET", + "private_sky": + "632614de8a9943aed4f097ebc7531038408e3f6ac4908efb569af3cafe7af10d", + "private_vkey": + "bca9415b08044b43b6546840d344341ab89b5d52e98303b4dad3b1e68e173107", + "public_sky": + "dca7bd49d21225c6209a6fd19e749b9abf54f721ab1fd5ca558fe7cae2a1d1bf", + "public_vsky": + "49d62b8172e707395bcd5c7fce868324e1123a41f3967e0569787368d6e9f69a", + "primary_address": + "49z6VhwUEn8a95r3AwoEtAStF8EYUU6AGaqtwKMoWRcUYzjmPSHrzFGAbT7nXEZ3nz7AmuhLme6iR1uWBWKX4eNhJUQZiJz", + "payment_id": "9d493c86e635b442", + "integrated_address": + "4KgmWWkxr3ea95r3AwoEtAStF8EYUU6AGaqtwKMoWRcUYzjmPSHrzFGAbT7nXEZ3nz7AmuhLme6iR1uWBWKX4eNhSrxJ4CBCtzf8TZzy5n", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "49z6VhwUEn8a95r3AwoEtAStF8EYUU6AGaqtwKMoWRcUYzjmPSHrzFGAbT7nXEZ3nz7AmuhLme6iR1uWBWKX4eNhJUQZiJz" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "854oqT22L3xCk88df4325jGvaYjcWwhpP8wm9TrCSGidgakiE3d38tCFVrx9KvvuaUWRr1ZF7mhX2FLZhyrQ6yDvGtaRxXd" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "8AhC3pB69sLG5HaZyYMCci6WZX4WperDN95jFkSNUjbXBez5hGSiWgqK3SqN9VtT6H5xchyfhuPcdcX9HLkwNcKNFU34nLN" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "83Yq4Ccvh6pVGZP6bMWDExUGFePiycnM2LAahX9q49gnbCM9o5K5TAGZ3LeWN4p8noFEMFkQLm4tfBgiE8DBmF5w2H9TjRr" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "82zppn1t2gLjRF8TkXDAtPcAnA3idsUMtHyszYh7mu6u2kDm44hWsMDV6wkbF1km36GMULbLTrCs4ie5cud1crVS5wcXZkn" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "86iQvjeLm2cd7JYC2g3x93Xwc4t5KQHBJhzpV1H7CLyxFjfyHzwCPAsYtSdtjDogvqKHMfQfhqbqDLBhVjyasAH7KnedMFa" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "8BbJzygXynQYWuKUmRzY7K28tEWyNrpfYLtu4CKwsYZZMqUsxBz9mTxVeTaoYod3swJjgMfFonottAMkrhRnpzGsKhqQoWd" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "87ifuhSahRhDX3Dv3qo96o6JWegkcSXyzHuSaQoHJfziiagcAvqpRWzGAaaNPsqXZPC3ZWr2ib5mRPRiLxhZfyXp9QkgGmP" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "8Boquh6ja34BksDcBbMB7V7Zhi7z1oYkJ5JZHZwT3yh7jGA4eEwmxrCa9onckm3DR6ULexPWXV9QmFc6hk67RbskFyfZekp" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "867cRP4aeeZFE7E2osxbZXiH9Rsy92snUjb6zjzjKYay7nyRak8D9dGBbfgaf5U1DEfTgZW1ncJppDu7wyHCXo1GVNMKPv1" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "872ymccH9u87N3KQ8jhRHVeRq6qqQ8hhS4K4wQ5ZraVddMJRtw7RTPkaThDTatT15mPWj6fkZ67rcN9L11w5izXh4vBa43s" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "89fsKLVMKRfVv7dom7YFDKhnQPfww8TXiVMVJ89zq4MJ4gGEHaiJiwHfdoNJyDnBe91xSLM8q5b8ELR9LSewiJHiSKffwi3" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "87V8gNKXdJJATjbVz6RnByZqtf5Z7yGKVC4pdiccdNcdccBCZkcMkKAB23o5yF212uNcjB8biNqML5Nz6wAabFwMFSkXvZr" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "85h3iazwMpEaoyBYUaU5FXfhEszUW9JPtUXGR1PfVMM3QZFDiX5f9EYBjhyLA4hGEh2qyt9XjMGkSSMLRzSfWdG67enaZTg" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "8At2jWEVV4dFYsuEB3CjPeShsBtuHBMgZGm3JKFJEm5qeeU8BoFq7CyTvVxz539bNaM6FULpTGtjeb5eriSKXYyFTacaCj4" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "87MCsERDnr33tqU2s8JdcMFxBS4oQYVYMJTLPyUB3xaTbVdvhqBU6ao1V7UUNnW6XEN5QaD4Yx69jZXgKnfJoRyjJpUiGkg" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "82wS3aBNS8DRdey4Fur8bVZr2bSciQ5aM7LH5FW7jsC6DKnxvNBYFUDjD17Z8QkxMdP4u65wV6eoFiNZeK1BKcGPPRaDEE4" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8BqtNcmFfELfhDCu1azKArdsoMD5SHny4LXdg7pucBXneZfhftDjK1DE8rouYuN6WeE1QSVgSEWdBSGMB4zosq74PUspXLy" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "82xZSLb4it7Rj3UwxQP5prHuWNGfnPAsX3Y9GeViCCDJNDfB156HMQV9AVVTZYibHDYyzh4BCKJoucH8MFPEStX6SBF4G5G" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "86QZ1qHBcVjLPuAVixBK7G726cz5eJot8ZfCa2Ci2MJZdDHvYcV2JYfJQDwhutTkDUABJtUSYZPy24emm7uvngFiMANrQ3x" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "89mnrMMvY4nAuMwyT9646V5WjFRHxffU3NWwtzGtCLF2aVFY87EDcN1WgpgePoqKYEX1dkS68BZaE1qn2WYp1pVLNjTgcts" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "87u2ydadBfeaCZTwxG8JjEasYzZVg595A3QJNjh7i61RWA7c3PCmjvVUmujEKbSNfWg7W5F3L3FaGdsqnZUeLRkBRMRRQNR" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "83h4AD6LvWQN5dnyDrfumxRQFUbb8xizLZC8hgtLE7xvanTTkVCi7s8Dza3qX2Pn5dKarsjSfkcAKffraNDHwPtF9wrHH1V" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "87ede1e2do4abCXK8qTwZZdZk18wrrhYA4e7WymxHqJWatuTDGJZTJrc2DLdKGXXD5CUYALzarQBmHgoxPDBzJfcUYN6FRb" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "8AXvEMa6ECbfkcTVLhKmazjQTCTuHsQCCLZT26d3L5iZfrM3MFDcoCN2Mm5wK1UgrTNz1P5fsJqr2bTt3BB6ibjeJJ4a4QK" + } + ] + }, + { + "seed": "97665d0826a6b91ed82362af9fb4f2039f2c7f3731c87b596f272a38c245ad22", + "coin": "MONERO_MAINNET", + "private_sky": + "bdbe714ef1df946e2bea7269e2c034da9e2c7f3731c87b596f272a38c245ad02", + "private_vkey": + "b35a9b746aec290c576b618fa91dd8628159fa048b048bb7ee4ea0b6cf748c00", + "public_sky": + "83511f22645c3cb43f425a09e0fa9220e52289f1b449339ac0a8c26552aae30f", + "public_vsky": + "5abbec5a1a47b0af97b511663b7bf936b599059e4e6087a064d50ea6c59dfb92", + "primary_address": + "46bjbXPqrrXX9d7pXGRoz16W89ghdmLMYStJ3SaTvmz23ZxX36ZGBZHWNUAAM3geZEA9kTvkQNV8iTq2FNmsieGSHX9HzZ6", + "payment_id": "529ba6af83626758", + "integrated_address": + "4GJQcLDLU83X9d7pXGRoz16W89ghdmLMYStJ3SaTvmz23ZxX36ZGBZHWNUAAM3geZEA9kTvkQNV8iTq2FNmsieGSRUWmwnZCv3gAxV2WYx", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "46bjbXPqrrXX9d7pXGRoz16W89ghdmLMYStJ3SaTvmz23ZxX36ZGBZHWNUAAM3geZEA9kTvkQNV8iTq2FNmsieGSHX9HzZ6" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "8BvyNuc5c8vVjgsJU7JnWsLuV37z5VdwGXGS3fRf6JpWJ6HmUowxF7BZrt1T3pewSvCtSs7oBEEBp4P6Br6HDrdvEub1zXH" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "85GSdtH4pW6NY5KbR9Tvr5YHvdazqqGQ8696cf2dtytgVnhv1thj4YF3m2onEmyWinNaQDagjurV3e9rYnZuf78244uVQYN" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "89k1hEVyPDnKWa6X2dKBm1P3fhvy53X7gLRfkQuKaHRqHyBtfRpUyK9crn1MKbViJw8DCMKhDfqn1VZZPQbjR1XxSMXi64w" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "855BGJvkgfueyzGqCNYece6Ru3JPshYz4M693kTHT9wVdnnJzidGZFaGLTmBFnHHDzcWzRvd4pe4DfNwCQhMvi8L6qV9pmm" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "88oxaGMC6o4NkAwu3vnYL3dobsffgVsy9YasjZGaPWvFAq2fh6aY1hVYw64fyhmHUcNFpjPP5Q2pwVuGbX98jtNvAvxgkYn" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "86xoK9Ma7sy4hCWwcC65UVhiJZCUPSisCRoDFbn3mHZNdANoTJobTG46zznHjmg7tdEZBG6tZqcRE4mbSt4UsHkG3NVvzq9" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "84RuU9YC4fMdPnZnQNcw2uaeh6rzfRrHBReao2j5KryJ7PGNG84xycjJd6adJ1bsw4EaWD9sm1RFpFUjoHWnLcNdHPVDDrj" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "8BuiQ25UmodTyFZwekH6Q79pn9LCoUgG8GhMgdcStqowV3uSsj5qHt82XJ1iKdEhyAGdKUE2p62q7iAN2fd4WYuySrhj1wk" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "8ATiaRKKQNEJM4NwBoPNhrLNTYKAmhPUkMmZJUCybpGxR4t447NNp5DMSZpZBeBEjMXECt58MDZWKArCFwDa2CDaNRSXTqk" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "8C9mVQYdgzkTwFWgJgZ4ivHwSJSmbRT9iLodiWyShKTMH9taXCr6hky2U5Kp2uBBfHdDpm3UNhyweMZbXQTLkRzsJ7RWThH" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "87oBEPaycMmf11oeRwuxBiPD5jMYqopkL68DiafP1M9WaogTAL6M9RX3e9YQapZXPvHWiqMSXRXEqXoyC9ButS7GKymh6ft" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8A5j4VEpnSuDz4rvwQfgZsWMSuyo6H38MEVAJpZevDN8Ywhjn4P9kZJ71eAG8NApPzJDGXoZJyNbxNjR1WLDqiwHEtLFkxH" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "84DZXD9AHxZc4B234RXVYXLmbST8it36F7JbziLQHsuLGBQJaZhYyirMxBbRbE2XWnfZGoA1uT9qZYoknf4rqkzX2oKaNzz" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "8ABcPMC8jSD8ir3yhZNqyQTwQsEam1rGgM9gn2Mw62LefmnU5HprhhjgYXR9yJsuRhSR5smVPxob84p8D6XeZ6zKERH5Ewe" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "8683SNhCjwT1DuxXmA4bzYNHiaUDfTKMTXDTaQ2vgGxpcam7myBrXUuRXjFPfz9BsAfPSjrdDEi3u4K3cMwubbTU71ZGsNP" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "8APyBrujQUherZybtjfuw7XCTxSasdkcBNqjGMJZPLi4A8CK6m4GsPMajBxjAFYSQPdcXnYfevsU7eTrqY64GnDW5FS81AM" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "83twuGz3Q35RodZowj21nf7MyJZhWENJTiEoaJ82hLZLZo6eQWLUAdh8nBgmy9GMHE93c7RQAddve4n8MezfJvJn6cNfkoh" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "88kkBfZHP87PoasNvf55GZHR2Hxo8eDnu4WAEQkfNV9wEEYVbNEWJH4YkGdHnF689jbsBX1UGw9eMETe3dy8KpCj5M9fgPa" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "86iT2bozTWJLBwgH29gyhQRe6JciUHaVLHN77usxPykdZEtAuvT4NQYZB1gSQ9gg1SfXKchRx68EUZ6gPDRFZwKCJFD14zC" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "83RTYFYTovj1bU8ABJLtuyEtt4A8X712vAidrAyXoadjceYNEDmbV4PEDEp75rEd23aUK4KLyN8x5dNiyLmpx9yzPwLyg2G" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "85tCiGzoqX77oGomfF9V7i5V2fVatk6scbWSif5TwWHn1QxYNdYkKNzKXQV5FSKmfk1nmBEBA88A7eFgwktX49PcMathgv8" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "857qPD5QkSkDTN5Jhx4eMHJCvrx11fQxgWbZ7GVTbTUaZNccD2FwiyA39N9bL6esBF2qEYHg7sZJtEz24DYuxSsL59Lf7XY" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "87jQ3Ffc4v7eky5yV8VTif7uV4M6fCyEsWd3YRPn6rbEh82bqyjyZcnBAGqTokPWYT7eV86BTVpzijQWJdxNGQZAAAcaC8L" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "84QB1xfxKV2EHurKCY1EFnb9WYTvF7kk3DSzvbCpp2R4TW1bbo8fAfchkyvLzyUKLDeYhr2LuTcKWBDJ2Q2Lfa1BUf4hF2b" + } + ] + }, + { + "seed": "3e5b16ed57fcf472af269ba53c82905e3f6a7a482e96b930dee26e9e031f381b", + "coin": "MONERO_STAGENET", + "private_sky": + "518720903d99e21ad989a3025e88b1493f6a7a482e96b930dee26e9e031f380b", + "private_vkey": + "2f5cc48159d6067ee4ad3987b30cfdac25e3b16f64bf861749ce245e5c42eb02", + "public_sky": + "9e4126e4b0101d651a200d2b8acf81f31f375286e01999fc46d9fd665fdb7801", + "public_vsky": + "4c36d8f3ecb48932766b9679303e04f44f4a03e5e5e0c8cb2ea6650bccf6d1aa", + "primary_address": + "57pyhdFeDdWHupMrsvEs8Chfb4pySGu5zjCQEhPoC41u1DbBr5Kuc889SYuySnqPJbhs7QDT4n2p7az85nmMAnYGLFmzMKn", + "payment_id": "6778fb061729b29c", + "integrated_address": + "5HXeiS58pu2HupMrsvEs8Chfb4pySGu5zjCQEhPoC41u1DbBr5Kuc889SYuySnqPJbhs7QDT4n2p7az85nmMAnYGVW8n755gqPXJcGv78r", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "57pyhdFeDdWHupMrsvEs8Chfb4pySGu5zjCQEhPoC41u1DbBr5Kuc889SYuySnqPJbhs7QDT4n2p7az85nmMAnYGLFmzMKn" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "7BsyQ5fo1SZcSwKkT5pfMEcXV9K3Fhx7DQrsARGt8DD2CnJFuWpR9axEvrQBMEV1Ey6Uv23gmxy97JdcqhZ8gdd4K1BZjmQ" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "77g1fCKLTfC69YGdKwzaQ4BaoxK9ZSbRAYbYeAdzoKvj4BjYbZWVLYDCYF6AEEU9GX8AAoyPCiGnTV16mpbyD15uSdFMQ3N" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "75W1iCajA4DF5TJyqcXZNtTWncg1NRagNfkmzJghmeD4NydUvjhwYnjhVrasytjZwshpm6jNPvQDN3v5ccqkRBxTHeFvXE6" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "73K6K3KsAbkQ8G9xXYLeTP4VcU4T3GAX1b9joeuBUiCSZXv9cbZL2hqQmGUmXKQQJiApScGKxPxb8JHpwRgiBL41MJM3GDk" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "7AcaghgnSX68HMicNv7hfENnN3LuuZVyyLQxEDdceMoiKpBNSs8DzDxZzSzdrYqhcibgVugnuhjnUXwYnwwF2BT4QeRWy1b" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "78gGdtvtAfY2PSWEofYnHfDxhVJ8H9d5iNbUF4FZGciBHLJDfZzYTj6SfPzAHkXswPA3m1ZBNYoVFD74EJUy78TA9GGACGs" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "7BhmiKdY33iEvyfmh5BCgU1jUsHUtmKW7Y9ZagQkhuXnE9Sn7f24vx6jKGGuwgQWqkftWJHUSXg63HZePQwwCPTaMetPr35" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "76rhY3K5ycB7bxDZ7uBpWnLHjgtxCsSRjD8Jae8Tog5qE8CbCMw4bvobCdg6G4cByWgRkuLusVV32Ku4VP2RwLkdTbC58Dk" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "7A2wxqhWddWKecy4F7gJiPgALvEwW7MZaCYb3FQggtredZfuQwZgeCheDuwRpQpqzGFpKndrrYAH7P6pE1sdioUGMVTshwv" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "73GXs1SwzX4iLUk9xEv43C1VF6UZsjKrpMDESMEyscEPTFQpvMDdMfq4e33JF7eewHSL6B6rR12azXG8wJvMQ4Ck4LECak9" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "76YvqVVs3gJMc6bV6AcnSc2cWNLYjCuqmJg49kbkY1EUGHA3qvdXJFeF1gWLL7QPvtFZ75ZrQHkCRQkzMUWd7N4FJaeqDEF" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "78Dn3gfsG7QTnRQa3NscJxTM3Gn9JAnagBfRhCNCUhXiecT9ceuDM2vQyJDmqeb98ZBKq67Hz2feuBGPck5wSoJCLTcpwK6" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "72pwK1VWbEnZ9ME1nYadHofUxX8gFpHMBJunzt1oFsV1X9p1F2KQ85RTYQfEAwoeA8GShP2UimbAJgxJZBRNQYpoU5RYCVc" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "75eQ9FbsMQr7smieUH8EqbJhppcZWLrF1V7h4GYwj62D2MMdYJFM3oYCvj5EmFfMnuiN5kadQBuhZKtFagGnSvfGN6mDFwP" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "75h3PtFBDXsPK4Qqk5QjasJDGC9wahKkbaHa14r6shSuhupDF7QgxLnQLxrwUffaGe7AdWgjt2LfGHWJgPnmA4NvPDVHphy" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "77zRS6dRZdScA9wQt453hDZSNRcFWgNEvTc3CfmcfctUJ8aghvGpThSLQrViXoKiGzEqqop53Eej1ZQm7v2Wd3MF4idNPEw" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "79snndbai7RWoe5EXu1T8DEwuTkvGT7BKfnqQasebpBcPrdWHUSyV6gNA2voDo61AVbyX96bUC8StSwwLpQdcopXUtVX6zF" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "74AEo2NSw5B7ZJrZ7iFK5hCJ4oKrA4mm66P4wo5JB8FDKFtF2gJcswJ6U4Uf83E5Mc74N1xWy6SK6bUADEmGcqZnVU4h4hx" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "75dFkkm65viK3PWh6V95h2gm3CkRiVeo1cLcz8WHncPJRasmdWwLNZojJEVZRKD5VkUysC3U96hQu1bNGLvimR98GbGFeds" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "78cJyyQeVcre8fBwLsaWCogVxoW15zZQZZ3THCmyhuvqgA8iy2pnyC8LHCtbHQtXZaThQo4B5K3sJNEZn3Wz4Q1CLHVESmZ" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "74V2sSTGA72fMXvSg2qz3A1hJUqFieggbQCh396YLvf5Duewg7dkAU7QBDRd1EmjDQdDNGkobE1vx2mFaKrFdzrc2L5okSe" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "76uw9rUQGMfY8KuNW6kztDUxc8mLBVLHgLbMqrRebkiZL7UzeBsNE6PBAooPtNnTJqAq78p9itQA6Bs1vGdoKUC8LYHDEnN" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "77p3Wv1KYeBdNSJ28MfGDUMwuzVZhVitg4d4WKHMr5ze39bZRX33J46BfxKztFZd1WMhoyn8ZbY7kZUG2SPcYntEGAGBtxx" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "77mKpzcFsJKFkCcm9oiXZdZfcEs7kcbrgLpD5kgRPMXPcJqHWNQXozQQYg6GKNiUitAt3krbGZuxFKkcdro9cjueBqA4orm" + } + ] + }, + { + "seed": "76dc5af9bcae52237e41e79a9ce6eb5de564b75a00ca038430b70c866fd69950", + "coin": "MONERO_MAINNET", + "private_sky": + "d5b88d2839bff66a4e31116c430591f5e464b75a00ca038430b70c866fd69900", + "private_vkey": + "e1a6c35b7b62ff6d2d28e817e71773a4dcb7f6dd33df8dbc9030ab4d8838e20d", + "public_sky": + "c37572b4de8c47f5bb5d4e4d5461de286e6c6a23e9e722b150085ad202a086cd", + "public_vsky": + "80ec1d32f8b9800cb88d73026ccb983b5bf4909a2af7018bb8e8e01cf986ce50", + "primary_address": + "492iSRDnM58i6ucjQseE4M7mEcQHqZNNmWf9y4p1Cs3sbNeFwQM82rB38Qi2DBaFMHAvroLRbHLXiQNUvKKvZev9A3azDPK", + "payment_id": "35528d81f119d517", + "integrated_address": + "4JjPTE3GxLei6ucjQseE4M7mEcQHqZNNmWf9y4p1Cs3sbNeFwQM82rB38Qi2DBaFMHAvroLRbHLXiQNUvKKvZev9ER81h2AByKa3fpVNVY", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "492iSRDnM58i6ucjQseE4M7mEcQHqZNNmWf9y4p1Cs3sbNeFwQM82rB38Qi2DBaFMHAvroLRbHLXiQNUvKKvZev9A3azDPK" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "8BqasLnJsKSb881Py68wCscr2iom4pZ5D8KxRNs2E187bK5h4grifmzAmYwcBL6Udf2UMXwnLU1i9RAZCjNKfxq1Ma9haTj" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "88xnDeh9vhRBAHJei23JJ29osqo6kaYqmao8kCCDgHtb2amJxVxWtxd2P986pnECayNKFwHLhvNGfLCX1zRh8jbEUfttH5c" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "84J3AZCd1y7VzLzk5nvC66N4sUQEUvw3BF6MX9DR4pCWRTQ6awiDaF78zLU3KEduB95JzdPE8iGC4DRdLMnfEBNBTmKQEjJ" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "87fnZCHks3p2PhSMnXwnX1FRJsYG243hYg3bdVKx5EdU2YhKtURk2yFdCDACjHgHviCRMoTY84NbZcQq4FiEnA1w4cWZMQk" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "8Ams6T7FnDrFNcCx3WBW466DMwY7KEwaHbQ242JBp4QtPJiSPE8u6h9aCfyFEp4ZZ1FPbiEnEpL6w1oXBcYA8wMzEovjayv" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "83cGVeiM8qnBicWMg9CoaK4TEmAF4EsFS1xTDTx9YhbReLUPsoMhdemNUHpTZvvmkk3znKEvKuAqVMnAoeGFpVbLCWW3wdw" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "869LYqQkoQEemZhZAdxrj6Wex1HvNr6SpRKapu98PGV2B3ENEbUirkfBUwDPhr5GqUHwo1PNAZRPkEJctzvb7avd7Q4YTNU" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "87961Lz5p3DjeyKSgTGiBA4t7Y7r4Q2W5fwJUazc5N9LjkjUM1XRUEaWL6LLAVVtnBQSj7T65p2DWErXpXgtopCGK8bAC56" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "8ACEXP2FJMaFkAMCRFgNzLGL4WbWr6W1F1tT6Jr2Kk8UevZ2GvJaUdhimNEfSGT1cFd9NXmqJe1vsjEcAnUyyXtwEBdtbYq" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "85MTEpEpzP87yemFrqvuHpUKQf29hPRXmBw1WaPygnbT83ewscDRsETAkByBFBswbVfzaiRbdy9JGPziXd5cRZdSNFc9ypP" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "89HiP6sfVuS4vnWh9wK1aT1ZdbgU3kYqmMPnd2goWsxHAtEpo8wmvQCgHPCktQKiAmbYRSLbu8rrN6EVRqarpXjBKbE5Hbz" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "83S76Fph9gRJK58qvgJ19FEzfLPX8ZqNeAu2soXXyiAgfV8kAp16nm8LDGs7Njo6YNDokPZCmXW8Sbo8VK1crPfCPPDoj7m" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "87Cao8gQuRh468iiME9WFNgRbh4oZpofcDDxLZpmT5r36wAusob3rUqFcgtDVV9hjca31dXYcCCGa8ZmwNqPG5LiMsDqgnr" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "8BMuV7HoDR4VBo7y9DNcRJaRFjc49FDp6DSoL4mwe2frQTtRwa5pf1T6dxDiqXC5miejdtQQc3Bh1CJu7K8M7ZStHyCGARV" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "8BCQfwS7bmVj4oYKxNNGm4HGpogHiPGtndQvfJhycepbS8JnCZ4K5SadrBxSRvEBS9YKC62YoHcC848WerRwiVhn8FLgq16" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "84j7r6rJ8TV4k8XKTT21E5HgCULbfd8cMFm4CiGEEDY9YMs6zyAFAPUiHM2gBvfb49amZSRtRHMWMCfwXwcvqukAPgoLx4p" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "89zbSv3Gn1WCkK94TvUiUs5ZqjTjFbuKeBNx28GV3ZaNFmi3MCAU7pUJjFc9y96HGsaVkVzeq3Vs75R2mQzMzcMQRqw8vCo" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "894wTQBLTQkezmmifwBEE3Q4WTyXkz7SyUUTrr32pAFiQWwHEhT8HPofCxkyUGK4ywAEsskFCPfcz4atCF4kjcAoAdjMvCM" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "8BZxu7p6TnUGo5ZRHRAFpneh3XYy368fG2ygCBUQ9rEv6nXuXTeAnTnAvExWYudGdnBfV58WRJtzh9Fntm2XZJuW4U2pP2e" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "86v6CrbjLwzHdZ9Y5iVRavZ19yyhfPrKMREU1xYTJDrF6rx8gdNSGKgetkt3P22DWNNb31TAhP4SebrkypkSnEv42UpTPBC" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "86P9SrnTWNtUP9dHR6LoC84zsSMU9qykjSkJiG3f2wrY4Qyb6ghwcKYbzt3iTYc75e9sFMw4Cf2aRJGhRD2pV5uWGb1Cpkp" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "87kZYnMh48Fd8iSkuQcyNmS5yBdaVWjqxSPxAE3Eqxda8r6akA5NQqEZ7vg3wnmkxqXApup1FXEzQ1vXEGXsQkW98mBZs1x" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "86tEWty83KW8zuMUMDUfq5QymEF1Gpv55gFbgsprxQRyDEGP4KFwFW47hyZjPpn66wNCYv4z4oBAu6z8C25znjAW58aREP1" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "84u1o8JdVDcQ7mqWDhxGFvCiL8e6X7mJHET4kGBinWXveQmRTEc374iGDUAwApvJdrdpUmfV3ktFTNiVebBWzgK41LAdg8T" + } + ] + }, + { + "seed": "a6589e4b9b3585d826c95e6ee89a8016b7fd4148b1ba5abbabd599c1e02fcea8", + "coin": "MONERO_TESTNET", + "private_sky": + "641104aa9356cd67c7a8b21036d8ca45b6fd4148b1ba5abbabd599c1e02fce08", + "private_vkey": + "34fe51c2c240d1e10179a1982559cd5aebf88591c5976aa545e4da835bc64d01", + "public_sky": + "411acf79e5c666245e1c4cf6884c9248b46d0a8abb195f15497aa75fa92611c4", + "public_vsky": + "e165d6a03ce4495ca94e8c29bf9f14c903ec10b19cec6caf16b3c07cfc7d048b", + "primary_address": + "9udkKhkc5tZ75p4mG4UdKfDAKzo9Eenii4ZWdT1ehw7EZvzFZNRhAAUGVw1bz9MFLFad6pnyGir7MWHacX4XiFuVGkhX5P6", + "payment_id": "6f1639e831caf204", + "integrated_address": + "A5LRLWa6hA575p4mG4UdKfDAKzo9Eenii4ZWdT1ehw7EZvzFZNRhAAUGVw1bz9MFLFad6pnyGir7MWHacX4XiFuVQKgfLkpWEPB1Ws2ZBd", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9udkKhkc5tZ75p4mG4UdKfDAKzo9Eenii4ZWdT1ehw7EZvzFZNRhAAUGVw1bz9MFLFad6pnyGir7MWHacX4XiFuVGkhX5P6" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "Bh6X79qmxr5eFfocFuZNfpRHUYdKiGZa7WDBGzKy1PuTQGq3vL2CeZz5BdkEmP189693JFvDXRg2KRdEs2pMKmMZC6U8rab" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BhFgsWSDfSsfikQ9FKpwqt82GW9ciZATsdZkJpvUPSTu6ad1QXJgCMHX1tK5UoTja5XcCqmKJAEfAFeFPTXLFe7Y5eTVPJ4" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BYTc9QLt57ADfLNMa7sinJT14VtozPhb6MLhSTTMaGut6T9usTybsgyiEd63bc6BYvNayh9U5WdyF4HYPXFXcqDTKbVXKhz" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "Bd1Yddrjpc54xrMnmz6vZtD4NxcJZ1ZMN3J5pjWmFpVx6AtLgG5ePWiiSnYz95wgVFceekbMH4xUvW9GvkZriKf7JrWsBQp" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BYbDU6MMQWdGUv8YwZHfQF9y2vvm2PXs26XKL4iqRq2V1y7nx7Wv12v3TTCm2D7cEaTdeVfd1xTJEKh48ubfYJqPPpg7E6F" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BZaJ9ua3MGsitDRXEJKidLjpF7CUf6CNDXYtM8zQxf5ndX5dwLnUMJkWxH5bE6Uory6sYKdmMp4AT6yg87SzPG1QE3EtZmx" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BhJfpG43xEUXDMnQgERVuZWbKAyQBwZZPUtBdkh2PNGB1X69s353oJsX4crSNrYS171hy2T3fPLTjUrR4Qf1asDR9bBqdhZ" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BYBZUM7KwWSUFbSSqnYpzE5kksetjBjmn7Mwbx23n2sRA1hsD4cMSC5jij1u8zLhb7UXZ8ZQ8Dd2oBmaN92YfbQ25H16Duf" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BeVv1Wbjs6ng3UMu52CxnNa7kmoxVQYEFHL1gNUDc2A2GBhLu31aVzFSbimBCwVRfWR3opcjwRYfQ2nZdgWwn3Qg61mov14" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BZzQv13Horf5eAJBFiAsjueV7V6uEpvk5by8dC9nydf16APvwS8CQfqC6jBjyyNpXaKnT8Y4xERQRPH1n6MVr8a75kprGXY" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "Bh6R6CVAbmJUwJLzW9tACr5YW79xNpprKFGyErKvjXYNcFz7P3TxhFMM2UHog8yDc4HV4nc6QeQZJJJfXJ2PuieC43SuTQF" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BfdVGeTora964NReq3uCwHQGYEFGqjRtaegwqtAfrqK821hhptwPaoq6UzQVfrfMjohn3DednrF2sMPVwG5foi7o5g6ddj1" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BcaVobLemskHQLc1w3WMsZLH4V472LrajeNrZk5BqwznN4mfQwjvqbQ6yzmrbqsZfZgL7NS4xRpeQ2NRhofTbjdL1FiFDUV" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "Bcsnjwg6KNPYKDz2DFR4mEQTTR9i524NmPav962SwKTdRXDzuE1LMr6KPeSpb3tiDeWSnSQkKoNtiCcNhTmAicUx4AQKXUv" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BdWt8f7oYpSB3CCWanSUerVZqKeBNaEXfQJVkK1ubuz6MSndXJNfu3MTWeXBd4iGZ2TcPd9kxhVVNHpD6T8YCXfHRzTUSjK" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BdJSYgt3J5jhpYdjVYzTMc42qw5ZRzN5perFrN58KpH9Ur6gofns3PdbRqKFtfsLmKNHD6fyGc3g2UxqnWuWZm9tAtGRsZ2" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BcHhcd85iFfM7AVNzin9zcWQgcbuZ4EMiCz6mmCrAJcCC5t9X8UQp5QAwU2f6eqWYvGY62eCVW7xUC9VEoCMUudELDftWC8" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BbJLe2VPupTD44bFdK3aeT2ycsfUsCmiV7YJDQETGDHcY7PQyvJiPXVP42PvzXQzt76ni2bHh4aWa32qbBNcuQ4MGMJQSDZ" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BdAPX8DpwkrKBQMTXWJqF6WLqmsAF8LJAMxYhPDWppJDYSrb4SZ3UoechQGiDg3H3fL3QmyTN7aJfdWkpRgMdSYJQJLjSnS" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BcMsgMXr8qKErBqpEwtvAJTq9xjnT2nBmMbaNFMXYyM3MyvZ7wwwZHkaF32NJjBDRhTHyBuzxezBBeNRkmrSsxJk9dVRjug" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BYavBf8E8sdNNTH313TeWxTSoagNmmrLFZTbpu78EGyJTmWLyEm14gQRJoQ8ieMnXfgSWd5Qtnp1Qg1bqUD64NX7HVftgB6" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "Bfb2N9QnQXwhaAtuYcYVHyDzPJVY1kz24et4jZkXDFctZP84NUkByUYPj6MHyRMQcYb1AKhodHjQFjkhUUrqAjsnVidL2Gj" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BfEatk75MyATQYZbqMS2Y5fzoC4kkqvHn5q9ccu4Z8inQeHzCMUKqMaPgEZkQksJEBfuc2WBvjzeCVxHLSE9a7XhSfU51ut" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BcAc5D2veMjUANKQqwp6n9R1KnZTsBDDk6vuzeKGAPU648z4JjKKW4vXk3GWTnNMfpdiBAf87dYWJhYQ2q54Gz2GD6i5aS2" + } + ] + }, + { + "seed": "f205e83b36c29e6e4979b761dbb2d7128a9ecbaf3dacd693a9cea66f37f63bd3", + "coin": "MONERO_MAINNET", + "private_sky": + "e9426c83dfb9aff56682241b8d028503899ecbaf3dacd693a9cea66f37f63b03", + "private_vkey": + "a0ae5a0b7b479bb4bfa4c467385d856a8137bea637d4a0b810d70a71d8ba1f0a", + "public_sky": + "6a7d3146823e4b646b061fb6f01ba0bfe3c16810e1a1718afa8d9683bce29c34", + "public_vsky": + "b94df3d57469ec940a85be9c4e76eda1c60172b95a344a943d59c7b79a373008", + "primary_address": + "45fAXdki88aHoBVrinswj5Z6a53mp11oNQFGXZNMZhoq9pVGSSH5CZZRmBgU2PHi2pU4QW77iTUhFRo7Q5coGPGT1ztDiEx", + "payment_id": "6cf306e54f14b901", + "integrated_address": + "4FMqYSaCjQ6HoBVrinswj5Z6a53mp11oNQFGXZNMZhoq9pVGSSH5CZZRmBgU2PHi2pU4QW77iTUhFRo7Q5coGPGT2Qjr2di951S184NVio", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "45fAXdki88aHoBVrinswj5Z6a53mp11oNQFGXZNMZhoq9pVGSSH5CZZRmBgU2PHi2pU4QW77iTUhFRo7Q5coGPGT1ztDiEx" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "86yxCaFJQ24Zycm6vSTnzJWS6nHTbNJa3Bj6H9rV2Zv5gJXd2vF3RKw8HuzRrRvxX1gzAnb4PpNV6jZmDSfCPVMcG7xdLn1" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "865uhfuGMUx486D2yHy3LRBtnaWqb3S968xauFQeCQWsJrcZ2DevragDKpjmXJ5VGaTz17fpsJr7S7heMoD9ACJpLwVm4Bh" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "83mqm7iEacvU1bYiTFR1Ub4hksCq2urjNW2ewmFDQY7wVhdJ1Ebs4GsKWGb3ruN9MA76YdHTWY4C4SmXywC1JT8LBvanZJq" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "87fXWMGJCjkEExEeQ9EhqNXJ8qSQJ6efCSEzeyyijLYkjY653Wa195xjC1YxsgmrNfburTexWVFjncXxcgmL3b3X8PsrUy1" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "82hf7Nag7p3WZCTXynYUjHUfrJy6cuUkS1QfmGaHsPiv9Yf4fwXpXXHP8dC197A1ikDnMffR8fUEfgNNqQPXeSwoN8KRwAC" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "8BrzfLcnfpFBLHda8PfD3eXFKciwfHLuLW2HvmvFkwyu5Y8wJo9KwsMhTCztTW4LBwJcM7p23zGmXZ6kg5YLJq4wJHB2BwF" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "86XqRFJrBZLb8n98ZC585UR7UgzpGJ6bVAZaP8g8F3m4hCA2ftN9FYyKcW8yo4uki9N42HEFzwPCXNtAcMfUymDCMmRNHNi" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "871qSTvbp9zNMHt5vnmvzpVFW7UKrk87fGK6w5UsLgDJHHpbCFU1jfTWLzQiuTCf96eQb7eMg2eYCAScdVxiJw5cGg2fWc5" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "8BEvsdTQAEBfMs6BtwoHATFQxvWcZJkNM8ECVkYbYbgLdS9d5uZSymZGJKuGTvxKxe3LCiTBKNzoBijQTMzxSJntGC8gLTD" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "87BYNPibyV4BCENGM7fM87gyNv358UpzPb5jRzzgmHqTeSVgoHfCf8bLaYurbaSezjaWPTV4sTv2ETC8Ejm4A7MWNYVBxK9" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "89zSZB4tHhwQez4QeK2St45SYDU1n1vMZMjcPHmLhDKH9GWHoFVCiYeZrDR5DHBz9AXBkbbW9uAqYBFNPLH4YK7h9TcXY3F" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "82qijFkhAW1ZHZa5z4dBpQ5qpaQcKAFP3c8YBaVBfGXxM1BaA8D3Z5W8XLRup4CGuaVCBXjR9eRFjDKm2xsYP4h1NzwsMHg" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "891ZX1GgCqMaWuwWLTcdAQHhs1eJpRxYoVwyDyKULUxi59t8qjxgRTedgfdU3PUYB36rnJBYkZ6xVGatbuh4g66YUqqZVEu" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "892Tr7TG9FjWCeM2vPxcmx43K6Jd8c6WVZnM2M3XdmokGGzDe3DU1nd11jH33ykUi6XG3Vqt3VPUu4eBFLLQtgUuURYcSza" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "83NggPtncRr7v4Q3di4DfLNxaQncnDfmKRZnjDYZXhcwbJNaKj7T6pCRWGnLJRsrjdghQeAGrRhc3ihPecjD1eeST4Sfp5k" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "87NELGb6RVtSnf76XcqfcsD1mBre6CA7PECPKLyjhXXmW5S5pHCddB6gC36sN54nmpj8c2VJhDQGNQGLKsJqE1u2QLp8uWB" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "85LRNmyfV5AcRe9woJYFDvjb9qxDtcN3K4eoW4BbP2488Zd2HPzDD51RiAJ1T628tHMBPi311oaMQ55S63csxWTuGGRMwgP" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "85ELvZmUrFJ9CZVSCJQoz99eMkjcRbzcEDDKhdUkuDQTMNNVLzDB45U7FBrZsrHhhYQoN8MBern3xCU7QrvbFBmHLac4jd8" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "8AnaanMaej3fHaTvW1qhs8jjgb3gCULmiAKg2d9NaN3JbnoYfWuE448993PQUXeVqJdg2JYwVhK51bdQUrfiKtrL61DVzL4" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "88o5L571xYnLnuK17PigyqMp4bv8fUWApASoLPizfiqKg656eDhZmvwKqHvFdv2QafLRo9wcTk8wi2LmJuzBztLALRgDBjp" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "87i76RQkfkVVbfwoYcYz5EW2tRHWSs9RnRYTvJq9d56aJ7jzX3nVSQAEQNGyKSP9fZ82xtmmMGUwzH7Fx9HsY6eb7Xzkb7o" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "86RHZe4Gvmn4MmH7pEGD8VbhHhoPPn6wQHCcMsZpHrNZ8udxF19sgyDixcuWHtZTZkGBHcCJHeaz28eXWcR8b5dz8kndhVg" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "85cKd8EzwiHbyx6ubeED4qMQ1vAkEZN8pEnsY2WgTAiuTLzC5xAaBWhN7LsF1gQmJJDmzgcmR7ExnJetgTCcJEMT5GuzPnY" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "8Afa8aosYb1AYJ4BLfFeXX5DCsJ8yfyLP9QDBMCx9yYp8gAvYGUyLPXPV4wP8tVjFQAKZZkvcsQgU1pmGJRaGemVTaLgiqw" + } + ] + }, + { + "seed": "8fd80687253005f3e43ccec403222c78ab34bd0db457a1b7957a80e8726aec35", + "coin": "MONERO_MAINNET", + "private_sky": + "c85c2570d606ceea6166e7db67348f39ab34bd0db457a1b7957a80e8726aec05", + "private_vkey": + "6b0e023162d6d6582bf2e315874f35be8a1bf2dd04852ed7c7d0109aa7c57809", + "public_sky": + "20497f29172be188c03ee605a6df48dd4c47f685a823afa8631f32be78755222", + "public_vsky": + "0a6fb21edff6d064a1bb5e3f67407d6d29219d742a761e00dec8bec99e205d3e", + "primary_address": + "42r5E8sPsMaPsf2UYS93jDe1sKRzvCyUAVAZsSrW1jtm6hEouBV23FuHqFk4ULnFrLKFzixYysEBP19SfeCho9wr82uUdLx", + "payment_id": "9d5a02864d22b128", + "integrated_address": + "4CYkEwgtUd6Psf2UYS93jDe1sKRzvCyUAVAZsSrW1jtm6hEouBV23FuHqFk4ULnFrLKFzixYysEBP19SfeCho9wrBUSZ8PFRkxG5X55SHB", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "42r5E8sPsMaPsf2UYS93jDe1sKRzvCyUAVAZsSrW1jtm6hEouBV23FuHqFk4ULnFrLKFzixYysEBP19SfeCho9wr82uUdLx" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "88KTVGLnvz7Kckhmws433i4oEv4Tyg5oqfyRypx6RScqDdKCRBQuTBTKkWRKQmRjp2amafk8xPWbGJWpUnSazTS4JVp4Ptt" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "84ZL4GUB5bPRYsD21NZBjUNJhBbpLBmMG5Q9vmNmXLkh4tokZoUJVaC7m7yLNXq5VCRr6WPHNZM9eDKCqJ29kc5FC3Ki4Yz" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "85TQ3kndMhUZS6VZijMd8Uh941FK7QztJ3XYDtspvfLi2uijEgWWsnNQuqetNHBGDy2vxvrADEFWZXcJ4mWM7QFiLLHT1xF" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "86reurEJuUV44ny7KC9uxbWCordFmxfTHMwMVt7UVQWAbquDPTkbXtETYf3Ev68xmFbWYP3vjHaFiNmVLM4n9hoX3495AkE" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "85svbiZ7RgrCNeZKyuSbPYBNN7CNBAE8ZXqRUtWVSH9WY1PyM9uk6d1fN1z58n1GvESxxymhYX6AQE1GGMfpza1pMqAXJvh" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "88xeoKHrMfL4RLRTtt1UzR9vvCdT8KzcJdksoz4ghNUnAU2DBNyWXTsjLTfxZNmCaAPfBeW5WtqfNE9HXfmBfw2K1gvEQKR" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "832tE8dDCNt77gVe134HJ2V4EgMw1ikbLFxAMSwAp1TRiPGJN1ByajkbLDXpz6Z96E14bNaTyUowkjbRHVJmo1HaGSUFqNt" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "88WZ5iBBFBuJSpRacBS4GMcTXnJFxuq7TJGd2e2meHoX2rprP74ESVEUpn5N8tJJAqPkbZMghv5eDRevSKKxZoiK8jwBqVi" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "8B8io85cfZyXHpKjw5YiqbFtqDuUyfLhyUZH4w8Z86TkaBvX41fUxBeZZ6wFPQmgEgVwdPrX5VDzeN9737vviaUFGi2UeiF" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "8AGsgEQ6XLwPJexNS5aa1BLXtTQGCJrTDC2ijhTwRHqibiGnAx2NfUsPQQ85BQ4dNvaGR2tMc9ftg5Vj3SxjsDcTB4prmkh" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "8AXEoyKdys2TMvBEYTcBgpQfjYWMnpHMNRpGv89oKDcLFV6AN4T1g3q5tNd6tZXWosRRVs5wD3Ao3NKczBpWyKoeFwzFg3Q" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8AcNRZPnsasH94TaDBeQWUfM4ezSL1RPpgBphPx2nPdsH6CeNx4EZSUbx7GcP2MK3BQZEaSazM5h5Gfo4rQe15doHcYKdUt" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "838i4QeZeBe2fBrfTq1DbrUgDS5fyXmZgCXUEsvYJ8TsSULKE9CFrCafT35EJTS7TDjUAikFEckNrDVQr6yQjGzj8xRS5go" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "83CAm5XnJaDAXF4ckDX3Aq4ZMgcodesDdZM6x5q9RW1KMFJjTdVbo4P7joxpGQ82tbTj6HHr8Mo4h33UEXQqwBjmH55WvN7" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "8BLugDRSDiR8zGDfDn9UmtZSP4tQJEGaVi2A8HdCvCdebVZbQhJpkdWDrJDTfVWtLBK5vgUFZ5CbyTMDcko3cho3M1wfUfB" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "83C8D3m4fGHQwRVybhub4xKX9dKRPjmpPNCKT638NQRZHsNM7VNdBnc2eUXy8FMLLTJY1neZXgvMp1QzUSWSQkS67z4FQzo" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8APeKYbU4YFENrsWER8z33hzxoqySCHYaQoT9LkyFmkQR3RAqs6w7FtLbVT14jnR9YJCENxtgx2LAYXnMUzgBdPn1LoStKy" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8AZnTkwD5et9WBF2yuQSUk94BjCh2m9ny83PqgopZWMZFJfEZDpTrbraLBurrANUahgqrrjcFmHv9MebJQSdRmET3JUkNUU" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "863WhUDmMrPboNrabrxTsHaYLZVNHHgiAfMSvLP6wewL7Uhi8RXeyZdNwUMRKnNGX5MyP5SGqjamN5zMmnMEqoBJCf2eqtw" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "8BZ42hpUPxeiLCtxaoeZ2qKgDyeTBAM2PB5vFXGjWS3oX8eA8D7LXPnbwEj3p7b6MwcqASYUZmVr61KssMTiVG33NxWthR5" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "87qqeHmHh4FZbw9fJSysPRQsAVp3sfhnaV32sGk4ko4hB3LfRhohfyHJLFPxrJLdq2fHGk7mLXeM4GFzhfnezWeB5Fw8XLM" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "82cM51j3ee4SEaM9zcnjAMTFxzZnWqfER37ZZiogwkFg4QshaBsykf6dRS2aV48nvFNUkpDhLTqxQbK5jCigqpTLH8XebC6" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "88DGngqjxemLcLsfs8SaKWhJLXyxxXkFMa6aoHeNnufK8FUvv4oMYGSCCuGVRwvaf6J4F1er81xQpjU1ujngwFR2NmNdNWS" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "83oUYUJcjbTBRudMAA27pREUbPryRFBZL7wYuoo5fGjaQTEE2D3kC2BG8J9Jh9oncfaZ9pyFjoSZqWRFhXgRT9GsJse8T1P" + } + ] + }, + { + "seed": "4b083d85cc702f13de8000635f249106c1d1c8d11c5a4b747737741ee31cb07a", + "coin": "MONERO_TESTNET", + "private_sky": + "d03c84fa13bbaeaa01373bee484f7874c0d1c8d11c5a4b747737741ee31cb00a", + "private_vkey": + "65338068a4da4cd1f1375f450bf4abb7bdaa35331ba95a4726b9d2cf9a73e906", + "public_sky": + "02d16e28d594f4fc50f58cc03252956d155b51a70edc6c2c106d87c4608be80e", + "public_vsky": + "356cb9549a27d56489b6796eaa8deb3488066c4afb8212e80deb543121bc08b1", + "primary_address": + "9sGqzMWzQhqjCnTE6KinV2KFFG5mStSZZ8NUhqw4G69V3NqqodPpW9zHpLx6EqzEnW9ncxGrW3QyffpDefRxs28FM1fBrf6", + "payment_id": "5e3bcef39050424e", + "integrated_address": + "A2yX1ALV1yMjCnTE6KinV2KFFG5mStSZZ8NUhqw4G69V3NqqodPpW9zHpLx6EqzEnW9ncxGrW3QyffpDefRxs28FWfhBR6W8FFP9ogont4", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9sGqzMWzQhqjCnTE6KinV2KFFG5mStSZZ8NUhqw4G69V3NqqodPpW9zHpLx6EqzEnW9ncxGrW3QyffpDefRxs28FM1fBrf6" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BZzzJdzAdkoSWKKNpLSqwA81hrpFXL2LTc9W6etnVLeYZ8rmcSkGB3xf395j1LcuzM8fpdRAkoxWJ5THPQxkjSoKUCy5SFG" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BYtHfomSYo1W41BS89mrY3MnfUN5N82YGA93CVAMtzxrUyYfvUr4AohBhu8zHe423p6WeS7wGezT7iKnLEpkezMtC9rjL8d" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BfhkHJYMETuDMPfYmFxBwBin8mKXMvLfCELrLJ79K2VEQP1suA2P6mS2KANx1muu7iivFiNpsBVu6dyMC7UxvZgJF8Cw6NC" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "Bex4BNFbRtegtP1nisucTEjTiQoHeEy984iPKd7ibAsrNC91XMsQtw4Aqo9jXRE4GxenRchMzZZQ3K6Q26nrXuDyCphv7fV" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BdLJMiD3qPYHtLyAjuuZLpKosXZCQVirqRmDtpUfzas4QF4Mpqec2BhcS2h4ys3bY6DABh9sy3aujhszUqLUxfZFHtocETo" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BcpAszW2nVx3nNM7qh2o3eCL14GfgJosJbq5Djsadj6Y8zQHrsyAVWthABreWeh8ym6CMkkZpq5wThKPmbcuxQidGu6uy6C" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BYYtafAbuCCU8RRdNhGiguPZNSgLfRpAaPjV2oCcGp1rgm1t5YoP1KS6Z7QLTQ3JQhP6EzgDxRUjqBArrVjtJK36GVMgfQ9" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BgJW51PanFwV1AcELJJUKgYN3JBzejSukbNwFNTbJvpVLqoXTsNjxEA4am1CRJC2t7VRxVMAn7jNrEcvbMYJRhfXLASsEho" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "Bfa5wCzNyr1XBi9Tm1iYsAcrPvwLpMxHiLmWk6Q1ogtw5utfKFZ2pLM8EGgHjeVi75hjW3RS52K2cGXoMAwKTYcZHRZz3iR" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "Baye8D9AdeEc4jLWnejTv8fKahnmFTgft7hTsxhkCanPAe6ZwY3AQM9hWqPnUvWHpjRaZ4kM2Efm96M8SaGQKNBQQweW3Lw" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "Bf3HB5pXEEnHjW3S8hpKUuPJL2NaCYUcVQuDQRWrp2QYZQjezXU7Dw4fBDuhipju4h9NzsfTtbSH6Mcw9GSrY8nsHMFp5mW" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BbhDCLY8K4LD7VgGYNrCNcPT9Ui9qD6a1NuhioAQVjnrQsotqLpA3wUJfPU4zXYyiU4gNpoTwd8wo81bnN4FGjFk7vaiFdK" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BZUoUQePKJEPL7ZqwZYfo88LdySesEW5gQXi3PYVTSvo2bQ5EuP3td13hrYzGg7hB65fg4mpqVavuP1TooJipSWfTFg4etG" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BYgKKLFXTdj7vjRyYhUTutEaEXJpjnvGtSBEdw3E6GhgNvfd1uAP91V6PoAcXuM8pedEnnuWRCJuogx45Dtykwi2HrxbrLo" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "Bcca81ynNoiFtLs7etnrdnjfrwbSf9NCbYNNBDAXSxrbUurfNBdgqKBU6qwafoKQNSYQoJNjpfgjeWfkx6StiTwUHgRSFWm" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BfHXs3HhVqjHsz4KXo8g1dFUBqP1cVTysd799dVPmpsk1VGJG3SEQxxCN7NE2yLo4vEipgKwLU2ac1ZRmRqQoTLkV3VcvRn" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BajZfwzir5gj6shPA2Xb82T7pmeikW1Vw6pDPB9HqaRS1GoADMR7jJ1BYVwe29HVabGRTj55YPmbMEzPMTLs6mMADnuPTz8" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BhT1wFZfYfAUM8wJvoYUQq7dGeiT484fT5dDisBfq8C4j8NHTsgcgHVUaXctj8QK5GMJVpwBHkjRXepVFEsJwwQpJdueZA3" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "Bhp7jDhXxNWRQSfmHH9zBziu4GgEE8Uw5cVcS1c6yE647iH6jHPf2gyAkd4o4c4d9mSA7ppLE6CAhT2xTBmbdrvh3w2PW2F" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BeDrrGqqe5raW7YbzfMvYxG6x9DLEyVKTFX61t3vJkrALZ6ewkHqMtgUZsTdktPni6eHUSR1Kr9AZCAiQPMAxPcaC19cSMs" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BZ3pWLvHyCoSKsVyVJKXfqYwRberb3KegbAv3YA3TqM8Lp5aMwCz7EnJeiQmmBtcK9dcetxf5K1KHeRMG5fvimuKT4pdBqH" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "Bgj6XfXry2sS6dqtTmiMs5VuUVLZoFPXKWs9yXzRyyorPqGU387LZWc4djBdoCAQHG3nE3W7RT68gT3XdEcMbqygAKZsQeT" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "Bfq2R34Gk48BRZfFryxmErTMvwBdMGHgy1PfoBrPwyQVLyTLHL1k3GF9ww9odGsY3dAKsBPi23g5Siw9Wvbrzk5hREab1WD" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BhCpcyvXMxpG39ayz3ytQuTnu5hJAXSPY8BVu2tTCPT6ZxTyndRub4z3YFSvwJyzfmeVdYN589YDRMuVmnw51BrkRZidAye" + } + ] + }, + { + "seed": "cfb24d3bebbba785387f8299201e298dd669a9a583c785398bd95f5bc0679cd2", + "coin": "MONERO_STAGENET", + "private_sky": + "c6efd18294b3b80c5688ef52d26dd67dd569a9a583c785398bd95f5bc0679c02", + "private_vkey": + "62cad3e931d461cb14b44ad600f4d4a0c30abf15248a2d8c0d52e5523525fe0a", + "public_sky": + "a02071cfeca46cee026bc5562fe2099e6ba5c9f2282582575e6b5b5f154c84e2", + "public_vsky": + "5b8000c915d426d2706b2d15e12d6ea559f0308bea0fbfba9aee12f464474127", + "primary_address": + "57u6NhipgUjgozQwXjpiekTVstB2qxcnmFcb3qkqCBsqerx8cf6gcuBcCXM7VJkh17Uf7fftBSgQeYDJe9JaHtwi5UbydVX", + "payment_id": "583fbfc2e2b90c4f", + "integrated_address": + "5HbmPWYKHkFgozQwXjpiekTVstB2qxcnmFcb3qkqCBsqerx8cf6gcuBcCXM7VJkh17Uf7fftBSgQeYDJe9JaHtwi7ahCaHvGe2w9xcLxQr", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "57u6NhipgUjgozQwXjpiekTVstB2qxcnmFcb3qkqCBsqerx8cf6gcuBcCXM7VJkh17Uf7fftBSgQeYDJe9JaHtwi5UbydVX" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "77jSnqiHVpsL2v4asAE53yWZeZ7FevAS1NspZ5fCYmU4a44SnHXb1beCudFSp3faXkCrbFpBPaqKp97xJ7tUvmyn9roRC3M" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "72MzeRRwXFQTdX7eTMgu2UFscNwVAuF2a9Zw8dkhpLV2EXZ1STJrNxGASNHBkKAF6K2gzeAxJmD82PAYRvrBupAETtkH7tE" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "7AwtUpt8zJ16i7DG1keBmJZRj2nT9BF3fCJpYHgNhxVsJ2ZvLgsuk5JLqw3nvsPj6LYiGSrdojjH6fASd9fEUarDGcEbLWf" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "76aabKyRbywFZqj3QijgBPRpYKFqThpsk8Zxq9UGH2bABAQ2ik6KduqR1UimpAtTeuBCWiiZ9YBzgdtH1xUsT2rBHntedya" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "72u5yC3MCS28jxZTH8useLZEadkMhAj2j8tZBM5NCHvobwAjW5TdixQAfWzKFLGBDK3CuZbvG9aodY5Rwk1Jb3wm2RRgju4" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "79seys2fWS86K7L2xT21uL9FcMZAmSiWJ2yvKrY6hyX5PM4BGocfYHj5jJrm4ELm3NEyoPTUwkHMXF6CL6ZwwnNmMTQ6EZ5" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "79S9AxovKRmV8BCrVARCXmfSV9ihSZnf1hmP5TuHnP4fJBwmUdD8EKiQcD9z5FR7SHWMxBpB6Fh5RYF6ZMvY3YfC922bKdV" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "7AXEYzjedh8R3gs5u4LKtK6ouo3jkP5TC9yFQZ5PftN6FRczKGptLLZZe5hdoDUpkPf36vtNq9HKp8erQpMyxvUDJaSbGMW" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "787rGKVVoc9gebdqdMmgkNDiFigCJ9iVVE5sPrJ5prXwjnAnh2CJzv8GpRYkVrvkWVaC36QqTkjkhWw739t9CuUSRTVYBtV" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "76ffKkeXvHRMGUterG8D9qDKze7MKecC7ZFyAxGKZX52VrUELpRVqgFSkHMQPWEoHnZtA5FGkNgQAT7ncStoVWBpFAvh25T" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "7BvnzZDuTWCdLj99wAmGEAj9V1hGeaqPH4v8SWjH6p6nFRdNPAgTNhaDaqG5FW8GtA2TfvY5rEEqCb4U6o94pLpnL8A76jM" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "77g5AL36MJ61SZsP1yhkf7iJRU5uE5U7aYq3UUTEhYigXmoEFG98HwWUX9ZSxxVHUzZsgY8nPeYnJ2XH6myXtySc1QeQPqb" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "78HYpQMEvLy4puWmmoBzusQ7oRKXpUA9W6ZndcmfkDMmLcjsSnW3bxPiGdc1tAWRRSDAPL5SunPrXLF7nvEM5R9oBsDzk7a" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "75eWkiRpYeQTHaGLxh3CtwZYpupbtEL7tLiWTQz2qGwH9yCUd4fhHXJads79QivqW47ZyFU6mN8y8Pt3GuQukiGAJ1VHMDY" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "79auDUuCaKK5thGdmFS55xXZ7r3tnUFBPEqcT8cc2McPHEv1DaHM1JD1GZZJwAqJe8Vhgvd1aDcMvg9UHr8AbhVrAx7ScQN" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "78m7nwtaYfzSTvLcPmUyW45kqAaC4PGjZcbc2Fb4SxyvAaZ5traVpsrVxJVD6G2kpuNYy7wPjDjQLb47ueJPBfZbEqNhogd" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "781jpE5GyakSHFWbR1N7aZDc1GB6v3vgTaHD5nsUuX1nU23SfxaFhEKM5y6hVvCCjFLxzArYv5sT2WMHVNXizQN4MQC5aQ6" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "73A4kdQiJCUErNSSJ827K6HgPFGcZxx2Jdgnr7oAnbShXc5Kuy2FZTwApnVLaMjR8aJXLko3Lmh7jUKSNpKo1TFh8sZFGkG" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "75bjoXG3ekJZAB1s31EcV2ACUZ6mTgtrQDssX7o4mc4xa6BdTUDo24jJsANWRoU2sB9ryWLqmQVxef5vLJY6n7Jd3L1C4Uv" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "72fHpxrrFj1bRoe65CNZbw2w4qCuFtcyUjJNqS7qCRnr64bxX8z4yCMFXuT5hvhjA4F89WKKh2vVHH4Eq92qaZPrKG5ZF5b" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "7ATN1zrSK9wiTdj9q69CRZHnVfiQRz9P1Xd9DgvnK3Uwgni1XEAWV9meRyizsVNiqtfFWS5h1uCypHZX83s6Gr9VF3ztV3k" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7BYhmSSiemfCeuAPQfxKNhfyD3peD5JLCC9XKXnkrJnGD3i19NGg1YscDHA81DrfgvDKm6EdBhowKAKDJsjYUfis1VQ4uKM" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "74dJ2aL2DAeLxXpARVHQrEZEAqjdgxXWU6FLmczqv18Z51zbF4hBACChQPHrWvDNPWbN5yy4bm4JcCZtV7M4e7QL7Eoy24S" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "78KD3GdnVuF4WHQrabqdKGdUYmepznauMAhkqGvadHrV2vQgtSSruMmXMogvL51RFWAZaTpDs8mTjga1KXkqLGnXFQK5RWN" + } + ] + }, + { + "seed": "7b2711512897529799324a8898f2f632f5f6325a7f1e0a87eca8a2c366e99439", + "coin": "MONERO_TESTNET", + "private_sky": + "b4ab2f3ad96d1b8f165c639ffc045af4f4f6325a7f1e0a87eca8a2c366e99409", + "private_vkey": + "288e14a7c1d95955180884ed44ae489a04749b01d48c7b109825aace56f5550a", + "public_sky": + "5ed80297d6f71c29fb72f74abf329b9ce80432ff9478bf3130b635788dca462a", + "public_vsky": + "cf9f18055dbfcda34a2e4e328dec8e0dc4f76b49773497c1da06aff9b39623ea", + "primary_address": + "9vm7UTzhcLK82HFS2zXMarTFBtk8TQete9ED2UwfpSER8AKbH4Wko9WUK7gtPfWMNM3Jafa7eFy6NZRc2mgByb1UTTyxkVR", + "payment_id": "9c28b884fe614ae1", + "integrated_address": + "A6TnVGpCDbq82HFS2zXMarTFBtk8TQete9ED2UwfpSER8AKbH4Wko9WUK7gtPfWMNM3Jafa7eFy6NZRc2mgByb1UgF1dVmqNTpuSVHrMdQ", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9vm7UTzhcLK82HFS2zXMarTFBtk8TQete9ED2UwfpSER8AKbH4Wko9WUK7gtPfWMNM3Jafa7eFy6NZRc2mgByb1UTTyxkVR" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "Bc4GYYFEkw1CvuzSBicK3QTmVU97HAxaY8JbsXHZVuty32qmoKErM7CBDpQcdEzmquaDS4yurWQ9c9wQ1VxT5pETQyvp8Jd" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BeQxiVt8jUBYf8HUzRXfd7fnciamQuggTdSixNrg3A8C4nJicnG6CAeQqnbvotf2Xpe9EzzJM2mLJ7bZzDuaMuq71ouiaEV" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BYsiirUUVPK5MKC2Yh9HxACpVzcQtE3odLP972Vq3ZNSFH7Hm3SgzrcHbFF1WREzPaRNWkZmgVdXjWbui5TeQAQ37gXZMfZ" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "Bgk1DVKyfvFUKRZjVTsRxGd12tzLkeGhVRCAHyjdRT1RcLZfubStVNp2pW2ZmUEzjp2HQDK7D1kyw7xoBv4gf9zu9TkmSDJ" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BaDGH1f6baSUnHjDPUoEHGAKFATafJwKxNb82Acf5oQNMvGngE8Kz8idNxWwGYkSSAiB8E95iwbT4gRG4Jzap7fMRu1YZBU" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BbCA48kcM5EMiJzYYaGEDHeoBWJdPa96KbdzAquwrvPeCfJbpKjvK9QSjq1LUcx1vnaeSAiXbNweDbgUJneSyZq16HsPj5k" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BYUFgS8F1XeEvR15UzPkkDV4ptHXxY4D15dPThHrwh128yLD6FLnsoxZ9i9o2NAKMy7Nc3si9e8JccJ8VeHaPHaN173QKvA" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BhFST71aEic3Ch8x6ShW2fGptCFKLE75KGA2psuc7xzPKfYJ68GupvW8BkFNDLBLvGLtptY5zBj9aDWGf5p1cVANBxocrJE" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "Bd3Zdd6oS92XFZbJvsZyXAErVVSjMFWTdEaBrJZuF6r7hjxGVCPxTqHVW5sd5saDe6Ewom3XkBmwR4Pn8VhiNGRX9i1yWpn" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BeBSDXHNCoHKzMrWj6htjp8nCuSxfyx71DkB2icyPyPoRLPPxP2U311RAsrcLDEX2z44Rrm7E5XmgEm2bQ4pSnG51xoadcu" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BetGpgS5wQBDK1T7xpADswUsajnZFjEL5eBkoB8YNeJD8Mn5SxJ21sFNv3DxRE5UmfX6FVCt2zEGMAatASvz6EXWVoEs33P" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BeG75LkNYWSVqtuMLBM77x17NiAub7e44dXvfPMbLyaTJaV1Psb5xCwXnxWAARwH7qGWa39E1CoW8bh5zGF3eD9g7Gb3MUJ" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BZ2yVWAQvpu2JtTWAEmwGvLc77MCuj8jWU5zSMWRorxJetgPm8JJThjaHYfU5xtyNPW2xUZKq9hVXftLkeYy97pfKduJbQ7" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BdrLY5AfQjy3Jx8vUqmYHSbLKx4EBrdA8fLbnXR5csyxNgxsV5buHesfRY2uAhjzMQe7uGYVbGSf7jDNdQ1eWdkoEAvsH7i" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BhBreyxuzNTNKbCBmgLLhTNozUCFztxF4WoyKexhENytEv4WKpYcXuaiJHhL744yZzGtKCCfchT5f1rpViboqCJUT8aS4iF" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BZZMy2r295UHmPty173KwFAJjKL7ikiZtCgfP7JcnKHLg6NJVxq8urWHS7622TN8zY3wr5eL4gr2aYorAfjgfy3XEABNt4r" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BgwEAt41Dd8FoWQnnRXk2sSUtp84WDZ7nXNsTcAbb47xW7GTytCNSGWE4GPu9XhUo81hqHbmdSwjxDJZssFbAW6HQqCGFKV" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BavD1Cr9W4UU2aRFDrXFgsTrgbusoDg7RTpz1MRN4mvsQhBYP1XTrDpaGTUSpT1CYAQJjTKbu6dbW7dP5mNNWfZRPezbMze" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BYNpYvL8eEkFmKX1ia1F34KQj4bi9jTEeMn854EoNgcceGd1MRBL5w1WnvKycdk4PbZorL6pUy6pqMbp4SRkiXF6QRubBnU" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BZDn1y5A9LiDUTmSBY1UJ38zCE2rfJsN9QxWb2kgMbCY1jHqvUW3mndMk2jZBKjjiEW8rPepac7o4FBcL1xrbfdLNZ44wme" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BcLZjEYx4mTazwxzkhZ7FF8xivTpKs1A6apCMXccnUaUL3XWLyBbfRWiq4MV3j4BMPMu92cQ6zzuf19sMZYahNs53wectDt" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BeRzjtEpyJGjJ9sFADsrY6gv1krk5ua2b3iKQTvLrtYMXGKyS9wfrQjGR2UVtPP2GAhbFPazPbwiedMA1ZEBxo6c6WuewTm" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BZ2FbEgit1HAX6E4oYZJWMHTBBASMbaNTLN8nzbSBC35XBFC1L1eLXPUm9P8HfqfQedkhDaa9KWrD5sooJzNaNmK2B6ci9f" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BdwoJZNVab1FZTVRytViqR3iEopQEFLqNhcm922WRVCeR5iXpEUuKJd8ou9iUzha2iYSBsnGuB2ztWGxj4DvNyHDL8dbzcx" + } + ] + }, + { + "seed": "4e375f474d0bd1822073619e19b4445267e08c66fd7e844b79d18c3ab5f5d629", + "coin": "MONERO_STAGENET", + "private_sky": + "748f738d1845acd2733972585cc0862867e08c66fd7e844b79d18c3ab5f5d609", + "private_vkey": + "b518cf742cea0c692ded703e3de7f7dc87b012333f824e9b157b2fb5c7935005", + "public_sky": + "b132ffde97043017a338fd87f50346241e826caf877c49eb55bd8671bf2893cc", + "public_vsky": + "f59258c5b77b194e6a2fd1e1c04e6dbfc8961544d0d37d86aa5cf7c2b3138607", + "primary_address": + "58YcnQaV2x74xKE2SnPY6h73QGs8fFK4cgN3XVbodnivbHMySjrEcoiE7irqNHTybiZ5YMVzbEwPaPXRarFXcJ6h1oZsRuS", + "payment_id": "319a79bb4abacfca", + "integrated_address": + "5JFHoDPyeDd4xKE2SnPY6h73QGs8fFK4cgN3XVbodnivbHMySjrEcoiE7irqNHTybiZ5YMVzbEwPaPXRarFXcJ6h2CnjZuZr8WSPrWMAgC", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "58YcnQaV2x74xKE2SnPY6h73QGs8fFK4cgN3XVbodnivbHMySjrEcoiE7irqNHTybiZ5YMVzbEwPaPXRarFXcJ6h1oZsRuS" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "7B7yzJt5V2WN4wposNTKfU1rQKisnUYFs7aGUGpBGEwP9JJVroTJd2iFtWbJX8csLFFhidDNiEQAFUmmuvwGgPJ1MQe4idP" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "7BXbnWXLy4MJyZdkSQjQibWTtHJ2HbYfYRoFFCWdLbPc7fsvs32kV4g72NTqwPmWpMRfXCXpjv9h7SiTALDLmm3m3QCdSx5" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "79SYdrcfKJHRm2uoAEMnEQ2SRD9ipcx9fDzz9EPNZzm794ReN7TwoGeWuFQZTWEEHXD5kfQgtzGSp9ihLytUxTKvByR1DRU" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "738U2QwwGMuavDDkkXj76kLfPknVYwXjaVdPAmAYkDN22KCCr5JeRyMPty6n5MKBxBViL5Sp1s1Epct64Lj5okPWL3jrezH" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "76fEpJ7RTpwL1ARMF8PP9YhDmkQWDndi67W4cUW7hp5rTHPvMdVTRRn5E7HCWjYTWHTfyUvbWzEXvN4DFAbUNo3P7heWhes" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "7Bj7yVKn7DUGWYNjgJ7xNgay99QVUaECBa1JSNnWfZRqWt5M9tNsDXEjAyvVRaJKmJ7PmZ4CbNJghMnGxywYMhBeHjo7MZ7" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "79bhbdZwttqgujs6GWg7NGTKXgkweE9f1cdTJAvSCfAehrnNJ4nrPoicgv9sc5jGNzKKEPFFFhDV6J8RyELTZit99F46gBS" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "76tods4gCZ32eJxgh3cnyoiysGypqsa8E46BEZvPi9i8Rfw6xGMTqZgLYabhapmWWmfGnDFcW7y2v1MPtyejFBEkMK6LW3w" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "77bREeVcXYvPVYUW7GU2az2xRb5qMaY89gifs184q8Hdg2p2GocjM89iBy7WWHN6exBQjhyiGqMowitN99HSCFEuKRoyG3v" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "75DYgrzX111K7vz9U1yVx44TMK9LFpDF9cMrUfiC7seUfYXc7kqnsUoeU7iS6QwaszRxkNH3zY6TwifSHJFceV7VCSsDGyy" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "74w1LRdJxRKUiUNMztGQEg9sYfT183CN2ThwkE4kcXCCQN8RX1BBBX21es5F6fL8vs37bPq8xi5XaZ2p1pVa4MtzHeor1nm" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "7BfrNh7BoFhfptGwE93qoq7pzgWPgppDidWqBKyH6h6MT3sY6VUYcvjE9eLbrepn2xS5C1R1p3NjWJE1ww1j3ngbNdVGnCt" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "793Ao9joYuQ3JAKSxzViKcAw1TDD5X58LFps7RtJvYFqEJdogoz7ekHHXDCEft7UXuTTjuLbCy3kZhQozzYeDb14AwjSjKk" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "79CicT8fUZc5ahT4LHpLv9LsnEEnwQ715NouXkUhHwEqiRaKLk8wKFubLtVyowacQEEx1nrX4x9B3arQKDYgwL1T8ytwKTY" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "72RmD25H44v2eio8CHwAfbfcNwGXToMdidcTLEKDGbmdjjRrFwrqdM2d6aPPMtXFs6HDAxkEbHbKciAMhUtnwTC4EHyBde4" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "79z9t2csCsG1dCGMpGnKhoJ9FF1QPmQjXhyhZpegA2noeTuQkyxk6dmFSDMWCcSzjXd5TVqfRM42PSrreHRnjS26Va9viHb" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "79CFWSBSBLdL1kudzaQPeJ87Aw9TctqgZX7QpEhJE1nL7HCVQRTt3LmcKXA1dGBrTKWDBR6bM3fupLFoYnxT4w1TPySGDEf" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "78neb8xhvt85MCxJTG5bSDSgcmsAm4oPM9vyYr8rkbMgKDAzagCMxVY28LshMD8h7G9tst1g2WFvNQF6ej1RJQ9ACedJJww" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "748qawfucFdhCyn9KkaxAwbhHbY5RXZLBGbxjA5yVfNhH13ShiTAZTWG5VFwG51UJdEMXTEzzjBEH8hoaewkySufC6bTbPe" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "7BvYdRVvMjpSrUuZ5QijZNCeqhKmi8W4mamuah1QabFPVGmioWEJJ8bF4Yb5GcZMUi8LRbwbMT9cqZVtpjW2HBJoAx7cteU" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "77j34KP3W3dSDFv3yHoXXhA39r36WxNd5aLJZNaZnVwGUuByF7TxgiXYyzFqtmMMdTUtvkSmJ3TX76qE3CYtrHg441Y3ymE" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7AHmmGEiL25RLbKe9FyTrFbJH3gvkbbdeijq8MZdaWa6Sn274UwTgjLgaaoJs6sZrchpQWaZ1RSCRc664UphMWYx4WJEm2o" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "72L9snnpVS1RD81VpRm3RoFYgkYHkqzke5BK2Go5LyMnNiE73L98J9xGPHeufoXLUZ6Yh4Sw75yViRVCAd298pWVCtoybzZ" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "77kNfjcfWDcVvF1s8Y9vy2TB4zdmpf1TGRvwz9zu9pj3B3APagWNB3cBzsmvBCytvHVjtUYEdRi3bBcpgUhZwKjv9Nn7ade" + } + ] + }, + { + "seed": "c93b6f4a3af70118f913335bcf35dbfa3a362be9ea46af4ec635aa5e02c6ff7c", + "coin": "MONERO_MAINNET", + "private_sky": + "4e70b6bf814181af1cca6de6b860c2683a362be9ea46af4ec635aa5e02c6ff0c", + "private_vkey": + "050ff1089c60aaa66985eea62339d9a3525fc4095871dcd39ea575c4b25fc408", + "public_sky": + "3876f860363beb7dfbe234750c0cace425d90545d59305c19d37e2d6b7c13b0d", + "public_vsky": + "31ff063136d2626da5f31213009f923a5fe2e790bf354a6a945cf54724a9047b", + "primary_address": + "43mDQQPkBi2N5ChzgJgxPmfAKZ2Jf2KACZPJNxZGcx983D1dipyo2JMKLj4r2udvpyAmJmT2cyfysJpxPtDoP8oDExds2bT", + "payment_id": "6b5078b7a017db53", + "integrated_address": + "4DTtRDDEnyYN5ChzgJgxPmfAKZ2Jf2KACZPJNxZGcx983D1dipyo2JMKLj4r2udvpyAmJmT2cyfysJpxPtDoP8oDMeKcCctHK7gAP8UBa4", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "43mDQQPkBi2N5ChzgJgxPmfAKZ2Jf2KACZPJNxZGcx983D1dipyo2JMKLj4r2udvpyAmJmT2cyfysJpxPtDoP8oDExds2bT" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "84zWVV5PCzrSuRWdkVYpCB7TVptatCSV12q1qxLccohWXuRUgWZ8TAbFCePBcFb3ieL1YcxvoHsZFDe8Cpm2nq3J9bdNRj5" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "84r5NnEZebrTCYiWBwoo5X1eDtaeCRCb8VRGMxN68YJG9XeXQTf1fRsSLwkzvC5kJ82gq6mTzCGpnBuv6WuTkTafSKEQfMb" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "88LQmkgPfnHUz974YrERr2EBV1xfay7fbCsf87qxbgjJiiKQWdP1im596rBPq4q3ftE99wkkH8AQmLrCyxwPPzC4BYpvoBK" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "874BokXrzC8giqxjdhL9Wu3TdC8fcU2SqHMYhf7L2HziHSUMeNdF7gUTsLtyc4hh7x7bM7cp36Ap7GyobVKvujz5LWTDCCQ" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "89qwnwfynjtBxPbTob7HQKayH4ry8gAMPC3qHdben14qPJTqxq6fw9WJBYgiDYPdcNbECrDxWbXHUc7xfysNbBm1JnkEs6Q" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "89bGeyDbu3j64wuAMeEn9TUqPjrDU5G1gDb52GnPru88B72hC7xPW4iPK7EHwu1zQx2rXDUHDanmmW2pRM42inx4VBhVFmi" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "87YhdjRroSaVL5KdCV86LfQEJarfPDApvcNFAgCLUmLNGzpGV4MLtts5NrovPRNzYt8YoDaRHZ6BXHqUFmwuMGhFCZxcZK9" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "835qa9DZRWJdD1EHabazfCiXpLyXULFhX1PHQdY4yLNB4pG2PrUuQiAWYerB53Jb5mi9v5L7RywZ3hgezdcPALt7EAaDfAA" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "86ByN6QdGXni3gmudMuRfoCaLysphmXwHLfgiwRu3LJjg6Hxt3y1G5wBEZcR9r5D4zenCHfLahDBn7A4dQa7cLLjCtwUZgS" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "8AkK5ppwRw1aeoN5YMzQabimN4FVzUwNGUrgEYhDuKA1JoeFqzNR3tMd68uLnva5HBhb5ok78LcVxTCLyReo2vL65CTmMSY" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "88x423CCx1Q128jHLPZ8UR2HuPe4R3Qe8Zy5FADDSDG5EGYKzkLafWxj3ynzrT2DS1Rd9bLpMNazvRkmqsYtCHnqGeh29fM" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "893RBvZFw6jAQ7hVTiMJFmT19KCBBfDWqcFQbxqjX2CSFmTL3s8i7cM64i6kn5QfDN5xSHAVojutH8YnQcaPBM1yL4AicJo" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "8BRqP495AHTbmEkRwEuffBDSG6q92rDPNcQxHdKgzMNZh2r27AESjrDWBqFhk6KN7e8Ap8iJkCopq5oPKo4om6diHi9Cu3X" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "82VmELxiP3YAoHtWrw11UdXNPozfQCfj2PBhQcVnkMPL5GpnW7fhxmoJYz9bdkcP4sDqutd4VWcNJJosfkkLYqKh9SVEcPe" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "84TdoaDn2JpJegNSSBDgmzeqwiyfai31GUiUPdFPmUWaJbvqEGqBvy7Nm8XsdoiZp74XE3BVUH1c9Kxv5tH4xNCE65QzhV4" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "88Phk6DgF5HLw1aqQWCMGKiTiVW4bKd7DSR2ygQiXaHo7byu2FQHgNecbTes2Qw1cSFdrsJN7qverZmkyUBJCvD6EAB6kDy" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "88BVNMZ69AKMa4WhULPejQEFza8SdJbzSdH9bRd4voTNjKeSc68K2SuWJNhfuSH2iGGMXY6LiHBBD41zqMjbCJ2VRGSpqph" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8AZbvMbmfHj41KxLfNHeGkeB9VcRQeNeZanDorG1KUH1TwX327NntUMAX5ke7R6WkoCbizjo6vhqq4HhzzjihvuJGej8dTd" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "83f7aZFhhZaBktFodgmVFoCxGvTdXAs5oEvofk8FBfE6SaPmVUSjpSM6cX1FB1f6D4Kz1rxyEU3fniK8mPmJEzfHFDdi2CD" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "87KARttC36N7P565KRK8ki4X7P5PZtpsZRB7B4Vrz7JPTwLmJRSDFTCRcE4a8MqZdXaDKYw2DGhCBWF1A3dzHvBs5i84Wqa" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "8AmnLP3EvaSHVCnC77inZ3KvkU8QNnnXAJP7D8wbzL49QqyZ9QAqPAURXvSFbJdtuYGP7vkUEeZP8SvB2Zto96PQJNGnBxA" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "888NDC44YCVg64aUrq7qkLHEaoT79ygiq7S8bkdiDznuVmrGvx2fEN74CxFmwino87iBpQEEN5WHBayhcmR8YsraNqGP3jU" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "87hRxc6bVpQaemwLf1Es5QPmNHp5Rj2bLKs4UubV7sLNVaqxkUizPn6WB8WcJ3YFhR1kzQWPLfQ65CuyBdmZHACLJFLRX1Z" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "8Bi9eAAWd3BCMuoUsccthaZNp5rJRwboXU3GZX9qotPjaD9vXoWDHEu9JNiVzxWYmtMN7eLfDfz4L6dQW1yunrErM9Y8Mfm" + } + ] + }, + { + "seed": "ffc20fc6877f0e3eab712b2ad02913d07056929665b3efcec9967dec90f6d1b5", + "coin": "MONERO_TESTNET", + "private_sky": + "d0a77fc7653d447575b487293f6d7eea6f56929665b3efcec9967dec90f6d105", + "private_vkey": + "fb05a1eee0c3fa1c1fcc3c6a937f0d0d152bb3c71b92178715883837fdba4906", + "public_sky": + "95c0d3a5d6e5c179fc523440f2a39aedbf7bc162853f6fed302153fc0efc003b", + "public_vsky": + "05bac6faf6de04174f1724ea641204cb50bd526f491f0137e8eb6399121cdda3", + "primary_address": + "9xqoMkC8VYcMQQyiFA9imFgmTHhtWsPg2gg2CxgPv8yDAsbHEY5x7pF4u8JonJ2J2Fb1R1YYsRxrkAMPwTtuZ1UYKVtqhPa", + "payment_id": "a3b6d30739a08e7d", + "integrated_address": + "A8YUNZ1d6p8MQQyiFA9imFgmTHhtWsPg2gg2CxgPv8yDAsbHEY5x7pF4u8JonJ2J2Fb1R1YYsRxrkAMPwTtuZ1UYUNWUdqC2RSmFByXqYj", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9xqoMkC8VYcMQQyiFA9imFgmTHhtWsPg2gg2CxgPv8yDAsbHEY5x7pF4u8JonJ2J2Fb1R1YYsRxrkAMPwTtuZ1UYKVtqhPa" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BhBV8gyoGkxW3tZuZt8KCZFMhUxBhGy9uHEcYvxnJGaD59UYjf1kQLWZXrjjKwwTfxdnd7wdaWdrYaRT3CQmRkKkQHnH7RJ" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BdjCnpwTMjTAbXtvDd6aLpbgYUFwn8mLxVDMdRpTYxQdLG1hybVQquDRiYNYTbcuPA1aVy81NpE8QGUwfuXMJfeaPt47odA" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BctKf11GPDKHQUx4cCPSgESQy6ayqL4jfQS4ReXfC9C8eutmuN5774ZFJGfx5jBtXw7FJm13pfR1EFLsoAa58EGvAqLvnod" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BbYDGE48JbcGRbbNjwMpZg4PdcHSX14DzZZUrn3ss73k874zn18T79rB9TfG2hP7m8KVhpKWax7Yx1ZaaCxEjfJo3nP6kep" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BetZmgtjqq6iEVcsLiAMaGTvUzmAmpAxKJvYm7W15RQqidLtc5TcZjrHhVcn5Jm2Z63dEEfGZo5E9SZ58E8YMVRF5GKYf9L" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BhMXzsJXLWiRqu8kBBjhRhEcHFH9K2r7t6e777h6himhDivv5dj1UzR5dfSqj8xZ3YVXfvqKgbSnn7ebdpuLM4QdQ2GAahc" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BhYKHvuxw1sUYAJoL1Mta8gudyyi8w7ny2TFonWzNSKPdwPESU9K5yH4MHchzzFGWP6RDsxwtKvWqSNJXgPWcHLRQMQqFsF" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BZnzBtkudUKEH8THGPp8QqLcVPjFsxHWDeVqcxZQxmUrVzurmpkVDwPJ2ztZAbdyrtC5CEEMR4jskGu3uhTovKL4JnjFurX" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "Bg1mNufEKMd6V5rWiejrbZAUHJVciL58CevQuzTsXZ7M5Ph1oybvSoM86ztacxV12A6h6E7mRJ28XAimbFhmjv2B4ZSiVXd" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BdA6oTWWzJuXtQvCzmsUAHXM4q7ChnQJedq4bt9YTN2AhNnKZ8SdMkEcKUzJbLHWCGQFRULUDMK9f3vfeRWQFacXVCmxQNe" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BbZ3YWE7fxjAp2usHK6yCu693u8qzGNrQjBeeTwVWZGwQa6pWnPP5X1j8zPer7rQogHXfcpEB4EaGW7Lm4cx4k4GRB36DKi" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "Bb3gxD37njJLEnDjQ7smK2XjYdXKP7tJUfytSxQLwKfg2w37bKVWkcVP4XkUp6FCyxXi5ME8SDue2VkYTqTwreBtFQWzSn8" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "Bcm1JD9WLLpVAkjdT1ujeWMziLNyrRQiFJ74KhtcKkHUFQkoGUJZkan1bPQi918eJz7LhbguovuBSfDRFm8isBdXLdMvW7u" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BYmbFSjPY5E182sc6YjNWUHXnvjaqU3eGbwwJnheZr81KFRWKmqXh4eFnMi54phVhgQmu7PXwC5Nxb8dw2ey3CiS1GJ3Suw" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "Bb5sKoN3Fg6fEbpWrpyjqyH3Qjg7dBpRZCr85QE9RsEdgCtWhpHDVD7D2MrFsnpHQ7gNvV42XdY7FV4TYYHiX8h4QWox8Mh" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BZSBPU9yFhuKsw4f6GWBgbfBLQv3DLNtVHg4ByhNEb1YhKaAuXLhNHiTLjUL3gAJqoCqAzhCdoKAk61PBRzyGsLrTWVnRzv" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BYwh6McwHHuUFTrA5ZfzkJKWmQHqW4DzgbZ2MGAdSrzhQG47j2YK5qMDqVpSy3gfRNQDCAftGSDqHcEhEPAz6xUsKMv6163" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BfBLiCF9XnaZ4mBRMexa3b3yGqghiTTfTTPAqnMFbHejDdkAPTiNgeNS3hxy2x3jKVhabXjTbFnVn2HsvVkERrBET1che2V" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BcncZGi3nFVE3PWQppCcYcXxAmqbr2HfaDmJVDhWyyPPeVUoTZwHhfZNXuMmHy9K9GHD57zr82vuS9pPkpLid5iGCMpW1r4" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BZCF45fYx1LLkPRDtKi2PgSKTkDKfed6WLuX7mf8ggjFcE3zuoNq8AH64AK7vppFcsCqcB8rn4ER5ZTGx6R7qwNfS64CY9T" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BcL9zjVbz5oQpUVbgPsaf61u3KeSvweHmhm1CVet94faZ5ZnYdThZBMBYG1parEwY3Ai2b4ZaB4Ys74M1FWauja1BjBDb3x" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BeYHNByy5DXH5Zmgzhe7kQC1b7evoGGpDXgP7fGDsBmLZwPHebtJKYSaYEwZcskrM9fpj5q177j5dMuvNs41o4DYD8zXCHX" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BfPiRrn5aSUCFtawF9h24mVUFKoqaL8CLPZzk5ZmnVtCXW4C1cUtNdk7jda9zYcGyX51gJJNFvt88QQzf7B6VAzeMkiAXzZ" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BbjjAAQf5Re1s5LZAhmhjbEawuKc9KDeaCuVEmD7DKt4dM7YmsDEcz7KWUnPHCBTxh47Xk93K9kKP9ajV7TG9E8KMEE24Ym" + } + ] + }, + { + "seed": "dddea86edadf778d7c975f67c017dff7cc5e9dd66db4f940718777468f83a5b1", + "coin": "MONERO_STAGENET", + "private_sky": + "aec31870b89dadc446dabb662f5b4a12cc5e9dd66db4f940718777468f83a501", + "private_vkey": + "35e9fcba8fec402b2b7bd7dd13dd246b89ca07698d68b181c8b8791da685ac09", + "public_sky": + "db5d06fc175a4a82df4e1090461450e69cb9ae9b4bc20331121c08ddfe229275", + "public_vsky": + "466744510a08b4ef054de6b31bbdca906378c55e6f51bad5dd374f680b75fc57", + "primary_address": + "5A9HtpatjvyNtdFqiNnpHVfaEBdMtNmXG9D3mHveaL2MLciSgxKomRdgyoRXF6mo4uR9kViYmq4LZcmkVhmc9En7AvhZwvT", + "payment_id": "018e4f4e50c69a90", + "integrated_address": + "5KqxudQPMCVNtdFqiNnpHVfaEBdMtNmXG9D3mHveaL2MLciSgxKomRdgyoRXF6mo4uR9kViYmq4LZcmkVhmc9En7FZ4wZLLqQHoHJdTTTE", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "5A9HtpatjvyNtdFqiNnpHVfaEBdMtNmXG9D3mHveaL2MLciSgxKomRdgyoRXF6mo4uR9kViYmq4LZcmkVhmc9En7AvhZwvT" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "78Lw3BHvrN1VM22jTdNHxL9HJBuGg3WHacMMRhM6efvSBMS9u2WkGMZ1euJrSmJWB5ChXWr3URZ17DhA4ALNdxCjRaL3jMt" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "77KZtHm6cB5Rr6KK9kbJS9j9m5jxGGxqiNowQKXunHBcJF1LW7ZzzYD4mkuZhe16qaHN1qqiCtkyHadcTXoTbLtK2ukt5eC" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "76FH3f4exL6CaiYuFU55EtKjs9yTG2A4742p8UPpH8nXPDBtwF4Rtzb22KDtUm8i63VXCzXEMWdMAj5Y3XwYcRBxVdeNmcz" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "7ADcREAFCncWBanjPVxgWWXi2agZmFmQxAKSSEMrd6mhRRhXSQkHiLeN7Gob9G31UChvMAfYimqSwFZSDndLhMMS7HnjEFL" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "77Pnyi8UEDtC1oXbZJjJW3Fcv78NJGXCpgbduFiFyMFCe9gVukcYRgGegVgEF2QZV3SEMLTYZ9UHgDveKdAdgfiL6e5GcZQ" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "78VYVTvgUDu21vwaKkpDrbXtjLa6uXm1zfkLXMJdjztGBArMy5mPcXrGrf246C3VSXEsFEMqhbVsHTEczVVGWFxZD1S66xA" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "79kMAcmtgdpccU9AyCeeBN6DqtKTL7pKYaEJuUrL4Cx3j2RKQdbmPQbBcTeDxrPxGD6gYTZpbvrbrdmZPMwsJy4sBWX2ggA" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "76VP7dfouTT1rd4kYogndg2uZK8VXSs1h1oX2axVtcgyPmQvSGA6EHNj2ckkUy2VfCMHdFdBacefhQMnx3Aa8R6mBDv45oT" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "7AuPomqjZc4QryeF97CGxzNtJYReCWpzA3yc1Un4CXdXcSW5JSw2yCb1GhUrbkfz8JVJjhbmou8XpjShbWYQeCSNBo45SkS" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "77SjgntEen3LLFP1Z17Z2L3uLcRWFw4RoMQHuSjAa75JYc41fnY43ofjEGVy23xPUGfiArViVTcwv79Z15uHirfB6YBhCvr" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "7382BR8ALSfhtXjLtm6FZc7MivgLCUhXfCa7iwUfV53HUVvATx7e5BsZLoU25CjkQtaZp4zDekBgV6Xip1mydoxrPYkwu6X" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "79B2TXrWm627asdK4jpdjp3vA4fbVqje5CA6WdhPyHQrCahZb69Q3VhAP2seXNQhdjYbCMAF1Z4XTiTFfq94ujMJ4jXuxyg" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "7BYbbbKUxXKchZBMy5JED98wC9MSZES3GPCKYzjFb6qKHZEhtYe9F6TcQLKiqSRcc4Fh27ABRASsQTFmsqvnwcJSRwLDimV" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "7BiySXm62zYVxsqxaY5MciaomS6quVp91Qe6TsLdt4BGHJGrdv6erfMZYktdReHn8peU1zPjHdMAzDY9RJWskceEPCMxKWi" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "7BCjX5yWuX5ivprfZwDHpRMFkEpBZaWoME7d4VfDDv4XUVqcShDM3Ev9pcEeNQRZVcCr7J7zEy1dd4EaRDWi2b6xMK9b8oU" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "7A2jNot3m3pC9WqoszruVr1kNu68b8VjHZ94ondUyaDJZztnMC246JzUJGokEJSobU4XiaXyBpTDTP3igHP5qxNDRQNMhRZ" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "75p7xjjfbjCFjxLXMT7JyJZgbmwDBFzpgRaEwZqC9JPiS3StkfsLMpdGfDC99gkugB99meaqbyrC771tSEU969xeJfCFDHw" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "79Xz9zX4QnsjhwhZQp1y8NAVpZpp8YRsV9mmV5eU3gat89gQVAgzHtt6aueGwAfHwtdmjjcrvzrrbd43Gmq6NhdfQxv353b" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "79VaqbEnTsfJEs6SCFdBk6YxNSC3bVJJo5aGE4G3JEE6UcakUAgcjEUUCREhrYvM25UkJVtLzNj2WP4cANaBFvQz2JD3BHj" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "78MRybe4rLKcbuguTtVLARPRvDKG7WVniUVep9nTivAd4Ja4tYpvLJW3AnoVeacPwXKKzDx8JvdrseFS7QVyNCiQE4B7Mfi" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "757T8W1DvymBvyFzk79eh9cuGq8NwqAh4a3zHJipBAEeHUT5VEAD212U1oMsK1fzFxHPicVZ6L3L3ZWi7uA5GboLEq13yDw" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "772VPZeNvTaTpgLF8P15w7Gt757b3LPw8fd1uVpYsuUj5PS9M8VX8LuGS1Gc9CsALqbQNFrmpPrcjHU6Ph2TmiMiE6fcqjU" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "7AcAdVj28eGbixPqt81HgMFHwEMkQJ6KPhsSw1yW6jLmZeiqQ5L7xawMyohDy8rz46gyghPfsyMKYPTafcqmK9RGDxH6C9a" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "72mZinrV8AJHUfUMdyhMr2SEpSbggN66yhTq7rZ794rDM9JVCh9KD8sGMCTtfJLDKWPHNvfXjML6aGc9ap3JL3PsL2bLJrp" + } + ] + }, + { + "seed": "a3c9b8b36af4f743bacc1e4427dd518198870f28b7a7725936d8aa80ad107375", + "coin": "MONERO_STAGENET", + "private_sky": + "28feff28b23e77dbdd8259cf100839ef97870f28b7a7725936d8aa80ad107305", + "private_vkey": + "396979e4b866b6c62e9b139c03a99cb1251432cf024c022d9ae455c6650d4002", + "public_sky": + "61fe6ee7ed9d74425774a315b4ed1cfd6a3ca4f16395b84f899ac8cbea8d88d7", + "public_vsky": + "0c3c7660e7b8cbf2e864add024c128de88d46c049a5a4c3537d161d59ad04eab", + "primary_address": + "55YXeR3xgJfC6bcok7Ej9VjPSgf2n461VEJcb1Y7hcf1cyEWsHrzqEahdWZz7DKKTmeDs5DohWLkT9uHLS6J1JqTLKNQjiK", + "payment_id": "b573a5b47091760c", + "integrated_address": + "5FFCfDsTHaBC6bcok7Ej9VjPSgf2n461VEJcb1Y7hcf1cyEWsHrzqEahdWZz7DKKTmeDs5DohWLkT9uHLS6J1JqTVinqwj9zxW12Miy7ck", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "55YXeR3xgJfC6bcok7Ej9VjPSgf2n461VEJcb1Y7hcf1cyEWsHrzqEahdWZz7DKKTmeDs5DohWLkT9uHLS6J1JqTLKNQjiK" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "78xjhD2PkD4GSYoLBXKwXKZMiP16v57zJ2QiayrdGaygP6qyDaFLYw579RrhGuMXf47eJX6a1FEc1Ztw7wZraNeN8cfNC13" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "79mWhD6utzcjLqQhUbUqMq2jQCvzL5pDBHhZcm3Qg5KKLTpu3Zr6w4f2o3CNPDDrYidFrNZ78VB32DJ5PA1PrWBUUVb8iuE" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "79y9X6igkk5hzJBp6xkmdSUfDav2ShaznLYYuze47NP2Svoc4zdaDKPNjjN6Dqrmuc8dpRjJGCbr3cYKSDuPHahuCuZES8f" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "7BDLaMGkCBzQSztEtjoHYy9c5GgaMpXaYYkN9qy5M6iTD4a4Cet8jCq6VJpbVMkVLLN5kx7dWKdm2BEZLiB5jV6V7yGB8QM" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "75ZXTCiWakLSkKiuhSk35g4wYNsHTDQPWLP2cwMbK6MehghBsNw5ANsCcaTs4CrhWRJKKA54KDoEBQGTnQbb6rkb3BMagdZ" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "753GNGNnNUR8iyrTt6ycMQBtUyZWd23z41yrLGqbrZ54SHZcE84QhWf113boExehdX5pAzjjzE4UiAiqnryti6ju4y3N5WV" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "77caHaZT7heMDHxzmovniFQLu4idKUMAYQwEh96an7QdWxfmURQ3tYkcWNcYcW3Nf5RnCfvZp61zZ3sMo4LzLZ1kFHrPhmh" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "7AuByJnJCSWL7bPTWaQzTDU8xr4DbpD8j3724XUwGY7VYiB3YbJEYpcKoQaocV8kh5jZcCxjBRiRBRtKPiWGHmC83DNrU3Y" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "78tidah8aYv7sKj23wPQrFHwaJmzaze8iAtnBbsr4gPjXrfkBKvUAYMYowkKzyTfQxYrYuDE7QxbeJJ7BM6yJDfN6QNQY1q" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "77kuRM15DQaBmpB225ekerD7oJMichdbWYxFyh4d9xqoPb4GDq5TMKoiG2L2YcaEEPbcCGjXNpy4yg6FTnpaHF6V3MqmX2z" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "72SPMoTv9ehB5NHKXMPV8YieCA7CrysSX8NyAaWYX2Zs8gr1VgJyNt5FXRjeytjfQgh26TSKeJ4RhjDWmZwQPJPpCRxG7iT" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "74BfVkzniZV7JhxPQrjQ2LGuqZQiMBcXWXbpeqpCGdqAJQpQZE5GhEY1YifVhcXmS8DiG7FUvVgdcPKZ4aP1n3s4LqUnZAH" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "72cmpmJK5fMhYjXiY3mvgF6hG1jbB5Csj9WpYNzaSJavSxwuZVx618C1vMc6D4dC1HHJU1urkZZaaBUfdKUJuGMJ4kjN5uf" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "73zEAMZPKDXCtCCQHZwkp5W5jeJ1W3WPg4KZWmgvn3DDSQ4YHoU1tEA3hYXNP1GXoFiHBQXJxGvCq6X7uhMhY2fJJXJAi9B" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "75roWQXVSVMjdq1AitdoPwN4rmLku52YsXaGJzP9hM9tDR7CDgCGpaCJetSYEiMd3P3W76itdZbedLengtaNTCotSJ9SmH1" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "76dkGYkKZJiZGfRT6i8gLX1pmhr3h76Mp67uaRyZCjfvAuCSQ58hXqqTk7yF56VkaB6MAxrLzzGLh8LzchGXi7HCCXW5uvw" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "7894pLajPw9c5cTXTmxc5K9w1Trwhs3ScATC7WmxHPAjVs9ktrFpQ3P2V3B843n21NZYz73sitohhNrNzknua46X9GGYCum" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "75daYPbZZ3ZEtTyExGbnC6Xn5wCjEnySc6dt2ymxhMdyATjQBPu79YQJRRQWjVt8GaMft49dox7en86mc5Da32KJCFrbu1W" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "7Bwf1iPCVqg8TBZG4KGSR2fv4Q3D3fSrDbD2A6eWqnrD9t63A3bDqiFjiA46vgt1YT3fxYH5Rh4TAYu688RqpBpL6xowYm8" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "7BKFqgNgMVfE8yuvBr9jdMZqEa8UAHKKPR74FKhpdK3bXf8YHkL9ZQZfpvyGYzud5FTJgeFQxKr6YibTCjBuoRicR7qqTEk" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "76hhsTKKiN8QVcHJqe58w73FK9yZmcFhUifxy3n9X7PLJoHJkTTjqFEH9kBgpgDvZJ7EGt68DYnywa3vx8eV6t4MUd3Gptp" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "72dnhwdxy5MfX7d54B9pf1cq6V2yscVhXTs1zATKfTgwgsYq2dVaRUWByAAoqnPwLXdnLgD9Ynb7nEojFNsaiHAyLX7jtRw" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "7BaNV2n6CydhDYkJh8LC5bDiwMXV1zLt91CD97iaWpq9ScNi7CwBScUNwASzkz1X66NGg226X2T1EjmKQbc7s7j4Na6SiZs" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "759S38eh2ce7anATwP8VFMZ5QKhxKGGgqSdLfwSrH8tzgk7bXSkUALoWCjT89wAcgsMaDxP4115c45ZhVreJV9Pz8bAf8xv" + } + ] + }, + { + "seed": "af55f7d1d7f6bbce82fab349b4ebaaca3c56510361938e29365e16dbffe22ed2", + "coin": "MONERO_TESTNET", + "private_sky": + "a6927b1981eecc55a0032103663b58bb3b56510361938e29365e16dbffe22e02", + "private_vkey": + "abcfa312e3c7fd97414671239a329e8ea8b1d9d2e156a86326e6435542519e07", + "public_sky": + "276a5a50c5b205cb3bfb67ece81ff612714cf2f64b9c20f9cd6770d836e495b1", + "public_vsky": + "70e8f1c9325abd7f14cd3af84f25214cddeba4bbc4907f76a2b6635188c172b7", + "primary_address": + "9tfHSSXADvkazdPNQCHWEZ45v8sM1u78KinPxV2ZEfh6WgQEHL9Br2pNFr9aT613JpDrhtbd3pAnJLqv1K2sdqfwMesoNUw", + "payment_id": "834fe95c3ed45880", + "integrated_address": + "A4MxTFLeqCGazdPNQCHWEZ45v8sM1u78KinPxV2ZEfh6WgQEHL9Br2pNFr9aT613JpDrhtbd3pAnJLqv1K2sdqfwXhJiHmTDYx7FScv4jD", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9tfHSSXADvkazdPNQCHWEZ45v8sM1u78KinPxV2ZEfh6WgQEHL9Br2pNFr9aT613JpDrhtbd3pAnJLqv1K2sdqfwMesoNUw" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BZzRs1hYuZLZbCUEALE1DdTWCUqc5LwDbjVGtUxYAKK2bqtFpWDG1yKWcA2jE9YtzucVGEVdJT9JKLtzjJpaL2bqCzkcLcs" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BbEMeuRsgH7RARwLVeSsMpa9yrb2kNSMH7T64dmeok3Q7SyGW7JDYXdFn2TqNsRSmQHWycdiJfx9CNpovzRK2wp2Mbcazgk" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BZzTEci51RuZdAHNnaXyfXHYMwhjpyZpH7UX6wNE73BwMDjSSxNc6KW6CB91QeLtLY4irVtu4a8dsLygrCQLfZyVRx4GSiw" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BZuwzES5xH4jfwKeAdn9ZTdNasQtLPuK76iYehYEfMyF5teAYmyYbm3cVckJvCcTQVgAnwAwgGN7giUJVyKTD9EKBgU8YSD" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BZaRJva6rUN6CXF5ovvwWR4Zj7zUUnRqXGbw9EECPGUggLwobw2WVbm7s8YS8cfU28WS87RoGpA5V5mfjbLJxXvq3jeEk4z" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BcpuX6WWTdE62VdH9B2Axw7ZQ8y511NLRH3Xqvxw2pqwXXVscXSff6PiHBdy1HfhW7Q1QpJrJsahFdXV6xueEYtRAPASAvM" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BcGd6PCcYAHRGuT9wnGKoccga25w2X3fmC7P7Lwo5YpELdK5HrxYaW16eNrFFjJQf2UibGDEmZyfGHtdwFaiBnvmNiD6qRB" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BbGjMDL3cv1NB1omp7ravh7Dug2JCbc97UQ2KKrwhdFh5Y3SSwVjKH5jGGddH9vYfLZ3a8ifM44uj8HLXejPQwcuPKKfxMy" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BbX6t4EqRTZTGVTSVUZpAaEHqPFuve61M8hDr4euuKdReF7rHQgHSAu6sTHrX4bowMhKhVRhkgTMwNoRqPpZiKh7CRQyRuh" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BgqZTyVG3DfQdz4Vjkdss7DsEMzWrQv4PcercZTK6fmpNWA56k7v4SzPgDx6AzW8nScdq6PKkFHiYabNqRFGwYn5AkdWddJ" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BbUuktKxF48MQB3HrEFYmKD6NdEkP3cbebDVj66iUscghCzx6PHdyLzV4p54HLaWHa6oMzAkn3Kcgf1ACEhUtpNs87Xw8qp" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BcYbVjqpPTe3uLxYWmAG8VZRLdJBBT5pMiYCR63DVhaWLqVGxuuq9T29Hb4AQNpicuWaivUp116EteCgnM9J9PC13ht4Mwa" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BgVPzNu1s38ZFa5cTEzL2dRvVRUp9L2nSHrhVvoU6FDKHtSq9Ndh39sCEwGmhXmqHT7YvMF2a5sELWAp5A4aRzBh4b5drGS" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BaLGvb7RcGuQo1TQraXACqKLhcfh9tcZcdJe9RYFiwHpUvTd5ZWPLe4QQ7zcNSfRJ3BnEzUkchxnBLsjDQSNoSszMYHYY7X" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BapeWQpk7irDAk6dcd8v9s61BduT29py66HKHXVK5tiCBZYx2NtEscY2S21PuGLkdnLvEC74b5f9GUV8RhACGH7JVDzv8fr" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BcZTqCCzhgKK1gJYoJKQAph3PhoADmStYASxqBsfUFMaFPt8BNiTaRGVjB1sS9ZtBFNAvB4v6wkEDLxz3niK9HcVHyxSjDa" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BaxzQ5wEnrtEGKwjCpiyrFCnpaMRNw6BFGJj6QAmifxvjkGesourp8UbtbYPuCdKNFAq9CK52rdyoMpaaHfUtfoCKbZSAfB" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BgQZGNwMG4NAzdizEKfB7n8pHB7HW67m1cvkEyqnbscbSsRMqp5n1SgVkNttPG9F4d8Xo7pXUctnoVoEV8B3izryKZSuUjM" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "Bgt6XVUkGgvgFkapNq21MXXZbabE796ri9mzNQJyHCjRiehdmAJmcMEXJDiGc7EL4c8nyFXXXZCBtKqrZ1PqTdi12KATMQq" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BcRrfbfpLK85e2NJnbD1KrGbwFjcLnLgXCb9aUVCJrRM1PCn9HWeYET8qCUT1xP8H6VXuvD3Jrsug5sR7jLaHcryHb2jrzD" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BdgGc9adh3hgRuwBPw6msPVvERRPT7HycBq4GueiJaJM1pCsEHrzYHAAi5mmrCjZWSfRJhCUPvwGzjQLfZ1xVuwyNmSLuNH" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "Bg9yHtsvcFwWPu1Fyw7YMtfwhipT2jKtf689j8PeG1htSgDJbFTPX8xcQYhmrtP9DDitSnMvNqx2Z6HGCg64vBjVBFChyLp" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BeSneqCJ5BfaBywM9sXWy5PaeULWdgEdGhdDx2dogAgofNB55mseCGi79N7QamAtJ84d1a9K2QkEehuSt3W1KhMSPCKytva" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BhnCEsFbX4vcBC8QHTXmSog7MaZSDCaZXVELsZBGmdW949T6PRmXuVeKZQNHHUsuurNcU1Fg8jBbdVUFGRdktU6aQdQKpoN" + } + ] + }, + { + "seed": "6c7a4ee3d0cdc4277b9daf79ca801359872f2da92436dce22609472bcdcc9d3c", + "coin": "MONERO_STAGENET", + "private_sky": + "a5fe6ccc81a48d1ff8c6c8902e93761a872f2da92436dce22609472bcdcc9d0c", + "private_vkey": + "7d7dc9322dab8447c81f5f040f00ebc0523a3c921e0cfd7cec097ac332dd6e0d", + "public_sky": + "e35be86c51dfa19313a23284a861f77729dd4f747a3141f40b7684b3e9eea16f", + "public_vsky": + "a8008508b8d7f9faae8a866c4b30f9088e52879410e5e5f3dd8ff45ce08fc54b", + "primary_address": + "5ASsBTGL7r8Rbq2wqCzuTkLw34ZhSMpGGhpYKhcwUQueKgCvXq2Aqk4ivvo5AnXVqA2S1CSh6tEPEhnoSGEsuSxk9Xip3fB", + "payment_id": "b49969373f4c4677", + "integrated_address": + "5L9YCG5pj7eRbq2wqCzuTkLw34ZhSMpGGhpYKhcwUQueKgCvXq2Aqk4ivvo5AnXVqA2S1CSh6tEPEhnoSGEsuSxkDfSPw4rGZ5PESzF2Vc", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "5ASsBTGL7r8Rbq2wqCzuTkLw34ZhSMpGGhpYKhcwUQueKgCvXq2Aqk4ivvo5AnXVqA2S1CSh6tEPEhnoSGEsuSxk9Xip3fB" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "76VWsdBF1VLFauioUwW5np8AgG4HPVXRW6N8oBPUANzoAiwR5ehzvARZ51tLZZYHBQF5guqudiBJqfCxPfR98cqgPmY1KJ5" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "7AcLrkEWmYad7j5JrB9Eop1NNRD7BHV1EgmVKoi7iVj4ioqDndHUSiTSUNYsPsdSwUadG7cg6DRihYFRjeMorLR79k954DM" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "76rjD9ruk1NMivk4QNRmawK8oVB4bvzU1REvYBaxnY5YB1fFR98RqSh9i633MMTu7rAi5kRxTDYLh1fctEX8mk6o7jV7vvJ" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "7BUyfn8qNEz9ednzKye4nnUXztSyYBaFFfrpa7F5Bw7R9LnNdzSiuG8B3StMepR5Lagmig6MWCqJCjJVe78iEtFy2jUL9Tf" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "78Sw3KfhvHYAYULVsg5uZ2foUTJd5qVsT7bwn1C1nAWeAQbwJcArtm2DoRWgNy5Gz9hcvqC3ejJ8yDbqYntoehm74L4S5fr" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "72XGACpc9SNan3KeGJFSmuLtmpbtwANwUSmHuMRfUBhyJSbxKykHwLd8HsU7sKWR7wL8TmLVhcgzmLuTX8UK2sucNMUbZjK" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "7BPtpiYCsqCL8bC8eQ8KHdCqKiiR43Brpfxw5AefaGpa8SVi1wERMJP8Fp9yZUzizdg5Bnavk6HvJfhsCakExsJ85xc8TKT" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "75p7zbVAonjADfWmkxfqi5QXCe1Hge6ag5Sr6S55o2RcNxo9qEre8KhG4d53juaSjF5WqrXPcRbKDDF1RfZuApTWRSqHpFR" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "74n9ofsqXceMC14zEVXZhFayJGLPweFUWUrQAV9CehxW37SrGYGXhxq1As41CfSW3xjorDvG1dEwMaUA7y1qaa7KPwfqgK4" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "76sGqL38SjaCsMpYxXQjnTPD9YvhcdThsPBW2AWE4ELVeWGcWxEtxTBCNZJaMnFwrM8U2BqpcpEc919Nxp3yLFWz67AqF1c" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "72a3MB3zPJ5TTwzxYf4QoEehyr1VkrMQkHjq7QXXn6hEZfTD7wwWaYt6hVti3uNE1UTqqk6KojvnbVRbzX1woHND3tWugcC" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "761d6JvTUR8TLBNuyey2j5Pp12mnnMhz3Ef4SsNUMwWZTPwejXT8pcHN2JhE5iMctp9fdDBhhSxJqQuyzwdfTi88V7Hvc2s" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "7486E6LhbCed5RUEWmdoB4S9CQ85ST2EcXoM9nRjSg5zG69FftSYAgqg8NdR2yP8XQMx2LZRBnTcUbntDadfMhccTNkDHn2" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "7B9mg8i1ZSDGpDkA7vtjNiNTPoEubhZH3PXyXRSxF3zARwqkaoJwU4MbTUge6NubdN4SEHame1pUc1jPY3gHCsN25khaFyo" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "76A3h4Haggmaj9SVdE5qFdg9kNiTPvp2jGNdxWURLQ7M2hYacxJWFDEjGGkpu9d4tiRdaoYm957SkXyEvufcJSSpQo42e1W" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "75U2ow5EfHN6nTRR7D9CL4W851g8o3Ce7NWqiv8RRFni3g77a6zTwKeUX8WBBQk3Xs2AnCtQ3LUJRdhV3GWwpyFb3SmFNaX" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "7B2a42bk1Go9iETRXYGJda9FkDVX51yuFRi5bRmKab5cg8YZcYYx2vKe8MN6gzGJSKf1P8sTkUrKEb6fq3pcY9Z4KCd9p2s" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "7BnmD914HNyJoDEYPRona7Kp4PDu6aEWiBU5haTYkwMF4h4v5medJbx2da3MG4poyFV425Xkw9X8EaapqEEZScJYVQPRMeA" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "7BMqX8L7cm1XpeMe2BB9xqcc3KYebNpQTDqoD7s9N3BaLPQ9KWNPQujH44bqpGGncP3Kx4s1Ri9BmTKvaYtXCBhNRobEEa3" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "74gVGJyNm3SESQ3Ru3yZPv2LY9XdsSsR1TV4Ls7aukf6G6DG6oqqcwbUExaQTgK7YXiqfsWJUSGC5QoAQyehGJix9FCqQqk" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "76B34kCwxKvPkACYYzmPPmHqdDSaD9kutCYkYDbY5oLkYz3AMgwrBkZXQDMwtbXQvQd2R5tPR28tL7uZzvC9CwvFPHHkQnY" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "75AXCyxCHQiRKgSAdvcGmKFGLzYDHK9HMbDfLMRgMvoqCh1q1B5ZhqVDhD3vxydNpFdQ5nzY3HzjUZVdZHaLP5iR9KYiq1t" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "72gQ85X8XGtNEGzpS44BoKAnHkBEXxDpGRRTRJaupFW3EpknxHMKfC7AWMPmX6fFmSEwYLPHokuew9rXu4WqtSVQNLbj6qK" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "77FRH5G7Sb16E21yEtWbttGQgN3gc7ZD27ARkpu6cVMDhQMRDZ1zPsBcX7tqrWydb412QUThduSpWJEPbGkat9r64Thpek1" + } + ] + }, + { + "seed": "0bbb9e5c1f7f1d5a2a14bb3102b6030d990366be89f2fe391696c02f7d270766", + "coin": "MONERO_TESTNET", + "private_sky": + "7dc3db2e812caf492467ed5fcadac98f980366be89f2fe391696c02f7d270706", + "private_vkey": + "fd4ccd97d7fd65e422cb976c61516eb0ff24fd73bb67093431779f7ae4344b01", + "public_sky": + "12582497d7c87fa1c30701e000376c8bf2ff771f8fc725bdf2f0562279f8ebba", + "public_vsky": + "de0a469025f5f07797d21e79e5c63232213b705b9b297aa6dbb0d9a4436548a2", + "primary_address": + "9sryHDn5VtJU4HxS4sgBAbQQgbSFjHQfnYmk6bfCZgTUYFr9P9HqYCPM1CjrCoNccH9PKg9pFqd1jUujXcSkJw5HKLcEmzr", + "payment_id": "f5b106bb7d675ae8", + "integrated_address": + "A3ZeJ2ba79pU4HxS4sgBAbQQgbSFjHQfnYmk6bfCZgTUYFr9P9HqYCPM1CjrCoNccH9PKg9pFqd1jUujXcSkJw5HUFuz8w1Asz1TDzWo2F", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9sryHDn5VtJU4HxS4sgBAbQQgbSFjHQfnYmk6bfCZgTUYFr9P9HqYCPM1CjrCoNccH9PKg9pFqd1jUujXcSkJw5HKLcEmzr" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BfkNQC65S6bC8KxGGE7MLzCo7MCtW2V9s2hDZP1HJiSnGAYuf4iD2daHZjfRhmPPVT6hB5AcfbzFpEHi5eypkTTMPiA6sT3" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BaHAq1FEcFyUtDfzB21WnLZfVeXsDtbnjE5PY5iWLLi88FSarskfHhNf6qHVtz5R7jcMYrh67yp6i93Cqcncqdqu2jSmtWe" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "Bdx2GgP8qUARpeEQ4hZoBHTzMzBDGfqEeL266fCNo8GjfPyaebT8kgj2PwP1bLBDY9WNns4GdtVVX8xM3PGpT1zP4vbb3nS" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BeKgmfEvtXGgy3Cd7UAKJFQ1Got9CZgz9Bop4Kg6weVuP5L6SUvsqZpNuWAiow2qFk1e2jqzgm9nZFruDrubB2CkEkKK7ZD" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BYwf3XnZGFvUbaBgXm1nMqEXDuTsULWxM67P5qHLekws3KgSSty8RuGPtSa2YyNmkTLd3oB9HQ7PvhPD5j8SCRKcH1vAvC9" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BdvWoN8hipSTErv4Chu9YSSxLHw2FMc364zQkHFSQASqiG6X62mBA5D7EwaT92MywvUB2BHL9JfsZ5NYhKmPuS6nJXVswbw" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "Bdq7oKZJ82kckrFoSaTdZkXcY7XF5ysceTv3BLrL5BbrVw96x34Z4VnDouTJ6D5Hr8JU9Td6MLch5DAnxoxoFEQuGRjDX4u" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "Bb7oPcWHvh46VAfvzGxQsA7NCU24hCDV7JRptkjShe3URmPcTtCC7FGRAaGcKVY8xz9PiPbbj2Gewet1qznQzLTGH9EAQN4" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "Bd8551mk8WbAhv3j7CZbRqHu3xWsZE7JSQC8eJGoGJm224wDczEWHxRbjQBfAagqYxcg1DQN5Pg86jCBSkAUvgR1D28B18A" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BZf1ELSpwxhU6mP9CasRV9HgWCcWe2GPG3bpGCng4QWN1fXcGHXTHSx9m6PEQ6mFcfQfnD3AH4kiHepLhmDArFq34EcoHYD" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BfiK7x6Xjiz6CgvdNtKhReMWi6c4HVUmF5EDNQPbAfXzQriX4poSccyRz9kyfsN9suV91xhgaDTu3frnuivo6QntKu3ypqC" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BcZrHefbNPV6LRFczYP5eBMdaUogq4Z8y7hJiEM3B8ctEYhWvTASYvbRJjCMYsGqEcSjFUVQkJEWqdUyGERKiN68RSjPZJs" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BgT2uSDiQbq8iQhg7nSj6GAC4UZSqDUdNB7Acn4BnTABUF6cDL5BYVKKx5XuZg7ZYeE71W6MtZen9DvVuhigRGSmEeqA76H" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BgSvw3PosMjeRiE14pwdt8Uyz1iV9RKhPJE2GJTTtii71e2Cpd4xjjv3KSQQBoFjUoNXgv2xysTXHDYWh3EHqgZvGq3R9zC" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BfUjp3JAqxbStG1yL6iKABj2i7VrxeVM77VGk3ha1gy49Wp4vSnTYHyN1zXeXxYuTicNUFSwiddnbYcF39vBCExv3YnH6Pp" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BfmpLUGEm62LGE8E7bdC6U3ReFmyZQyLheAn6w1wdFStdvVw2wWvUgUD8uuBzLWvELKrk7MkgLRW2CPqGFUWRsMSAUPQYT2" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BhEj9VkJFbtVTPLbEkVRKKFsfDrtdFa9KMDwWvUaUw66SYAaXMpb7DCVAEUimbcmNfVXgmHJvmSJTVZLpNTWJczsMM2rWpV" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BcHJfKozDfxNRCD7Yn8nxDFovChVUzszwQNjes9iNJrkSiGSNrnaBUQ7zVNfxFqdvsdwPR6cH8GK1Dd8V4cBtDh44WrJQjr" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BdKeZwD9tbsLnpwcBznoFFhifqn6oXm4eAYMV5DJJSap98FbtZcY4xLFYn1f3BKE43LdMHdUW3dG2LzQGPoBJ7n2Re4zggP" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BbreWri7theZ54VfrXfASVaYEmMffyxJTiGKavcW9yanaF3g61btf2XXPBSWiLkTHeh3YkZ1XNQ9NcwsHfFaU9gwNyupg4M" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BgiWBbemAHkHKRiM7NVvcSAL8QYnEr5Th9vf5L27Tvr8Y32muJUxAJjR8NdGYEnFYN2JZHiVQt5S1CNGEAcpo7Zr3ZwMBwk" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "Bb3ZY9xam3x5vxiXEWEifN3Pvr84MKTeu4ww7XsUrHGZcybkekjfy3SjdGQrXoGeKzTfGVhXAmw13FnWgp3urd1SRm1R6cC" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BawJZwfgyPJijPETLKhNrjKMU3uHpbiRABdSzbmSwJ7xX2QdR6rZDPy5Jhy2RokxZXfuUJrGBHyobWFmUt2XGbRUKzYwsm4" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BcE11WN2Sdg7rJXTzFBkxQRuSAq5jdSYKCkfF27B4MK2EZjHDMnfeUiYh3UaCsLXisSyLAC5nvYiz8VDtay2Lt6C297onDT" + } + ] + }, + { + "seed": "5001ed7753dd6cd22e24c86bbee2dc4d283d52ccea6592b8e267200fe2c99e91", + "coin": "MONERO_TESTNET", + "private_sky": + "fb8d48336661c7b9a5a013b1ea190692273d52ccea6592b8e267200fe2c99e01", + "private_vkey": + "3c896ef07288811bdbf84d6ff650083a2f8e1382dbc322c5261b79cd28bb1801", + "public_sky": + "7a50bef8c1806172d3d03e39b863e5142fde62f885461a22e38a537f31432227", + "public_vsky": + "d7df9732cb72caf13dae95dc3d6959c349b13d00d973d0a30695ae875f447cdb", + "primary_address": + "9woVa6Uv1qiLCyEgCuBgoE4Nqfc68RU256qTzSC6gT7P7fXiCRDhVGuhMLgc4UTcM6ZfY93zdtCqDUGZ7gxJ5f2TRmTeh2X", + "payment_id": "4dc8a76ad5931502", + "integrated_address": + "A7WAauJQd7ELCyEgCuBgoE4Nqfc68RU256qTzSC6gT7P7fXiCRDhVGuhMLgc4UTcM6ZfY93zdtCqDUGZ7gxJ5f2TdgXGy9YH9Ta1LGDNLk", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9woVa6Uv1qiLCyEgCuBgoE4Nqfc68RU256qTzSC6gT7P7fXiCRDhVGuhMLgc4UTcM6ZfY93zdtCqDUGZ7gxJ5f2TRmTeh2X" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BbTkn5w1moeE4JCoRS1dpdQbibQaMCBkWN6oaZ3pJQXTKGtvgkunWEwECmjobU9B5SgAVhiqCCCP3XKe6Y8Zs8ThTiunTjV" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "Bddv4zjJhdQjCjK7dsq9GeYjW2FuvHFaJVfDE8xiNZeM32Rmu6qtsb2ZkbdbXU6QERVravc7JP134eeKNGGUZLUZVQKxre6" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BZWJuMHjCVwAsw34HofU3ENC51j3EJLoQBsJBuvhRMgAiUvvAuySZRgQztj2Hz6Qvd3YFr1BDZ7rE6k7QpuDekcu8nCPTXc" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BewKkr9VuYFN9j5tL7ii4iAHsRoNo2uRpgbCbFrxXK5x94U72F73Jw8MbNqKhKZsdWFiTCgjtk8pNUyupHkteVfr54U4XDC" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BaQ5BPK62fSVTuMEykqWZNSJcs71S8r811Ns2dVZNMBR1ZNQ34QaieMF71JmrNzg1GeHS8JQdxxtRPBh4CFEQCVVBLuYDZd" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BhZTbxnL81b4XwAwVjwo5JWWxM1hNL13RXy6TbavVMjafNYSAzVjKZxU3Q6Z1Hor2JVE89Eg4VR8yHiKSCUfH7aDSXTydbP" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "Be5bKQ4ydGtFsJn5pqZTNCUKqwb8YLmir21zCT6aQw9pWr8RNZsD3uuDtirkURN8C1iDmVAVDW9ZvgyMtJngmLJN5aXkKE4" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BhEVVhJUdbGEqLz4a7U7y3a5nWsjwLymBiUS8BTLGfPxTCLRE9YvRC6XKhE6uL87JigwH3oyZNB4HiR3isz7CLKoCCsYW55" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BZvaBfVPCavVaw6jm7xSoj86EsSHQUNetE7CxTYNJ9GrCm7oTbp846jhEHy97uLTkiWxXJDrHUGCBYb1z5FRxWY22A4WdDq" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BbTieGdq9zUZkFuqW64qLq2NPAkv37evS3syGvLnSaXcbhRkfGdPjKP6nRYf43swLreR8xyXvmzHu3jBhr2CwmmcGUL9D1F" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BcztD9sVMbqcB989cHHnRnRwr9X6Pk37ZFYKzo51jAjN2A5XiWaA3mNago4LYCg6QvUU1UnapPDLBGfZTWehZYFeQ6cRtJM" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "Bdey9axtP1Tb7pUcW4NKA4esrTSa64umv19EiPtMQjgjBXzXpeAYMCy6yYbAcxNdEVHZZWixsQaEXeb1U2t1uvb9AnPJKzX" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BYdmDJDzaLDCbUcC4PcDP8Mf9LdenXEeq8cNcYnbmZ13Sr2m1MUf8vcC2R46RRYarPa73kFcbi81N7EaQLWATB8BBC7HvZr" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BbuNz7ZVRtLhWewGxpC3AXJXzywfqYDkE95rcPiqU5Gf1aqDAzD8rA8JJFS3rNzUQ338iPZY3QE3EPmX6T9RogUwS9rpjXn" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BhN19ZNG6N81t5MTRTo8LP4uT32vDnpZS1PdHTaP2joXFGVFAu9GfZj2TKqvb8LSiV4ajCW6YJzpAT8Nt4kmBmPXCKGB7E8" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BcpQrZDQqaCh1NZARhDxWW65iHQEVUF7GK34Tgref7hpcdGYRXr4ZffjCDt23QUkYQUnRc4CBRgY9ihwcvxEFaFSGBaqgFY" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "Ba4KKhiTebwVG9VQGcaRaP81uojcaSnSh9YaD2NczuRt4yDLpg461rxTRPqyXvjQKiWysuDxNo8bW8nFj2RiUWz3LVLpCVG" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "Bho7sWjRRe7icUZYARNrH9fF384pcALUCH7ngVAwWJwGeSptLFnovgkSMU2HkeRtDncun2szEcQhWa29up35xgEbKhHzw3W" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BfC5DFSYQdNeQbeHe2CWELLr7CZgSwMYDhfPNKFzA2DXe5irQtopDFEYZZgmyBqXMgRYjDN75NB6uALhxqYJSkuhJWA281q" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BbVoiqZYCNj52kWnWntZsG4yJhzpehSCbFpVeA7NXjyPPN4mQw5Y6T2ZyXdpKEqj7KPeRxLLdCGak59sS4g1DqEnKRwN3rJ" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "Be4CTEaevAK6FqL4FBccRdc6i8WaFFY36FPvrWoGMyfn7c6JUucAWF9c9ncFu57zvbhW3Tzfm6iS2h43XNUiucHf9NagBNB" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BbHAxLL4VxzRU664E26U92WagiWFBkjxxNGUGYbQRRRjLw8dTtCeJ3r6GVD6ogxAqb7cSeLHfKhMKMFYhisAwuhdJf95T6N" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BeXLGVgHYCDfN6cyj1KjXYe5nRxgQQDLfUgCYuLPMJd6AUJUgaDYDC7Wdy5jS1PJy7Qn4ArVrnd5zNWGsWoerBw6UhzEcf8" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BddV1rcR747eveFKET6vkpP5mfqPyF8fpLNhj1EMthzJJ5PB3Tzy5bTVMNpDTEbaeyHspy2sLoiZf5vP1aFBA1T6RmeXiAX" + } + ] + }, + { + "seed": "cc59e19c2f4e02541bfe1cedb695499cb15d6a2f5f45ece3c5266d6a81227ac3", + "coin": "MONERO_TESTNET", + "private_sky": + "b06a5b41f3a825330fa4814947dfd5a1b05d6a2f5f45ece3c5266d6a81227a03", + "private_vkey": + "2f702b2a37770aa2b14eee82ab3204126e9a291913efaebe45d794cdda090405", + "public_sky": + "c752782a92a50498f1a60d1efb1a75e36a0760f88880ae743f0c5adb30f70c0b", + "public_vsky": + "5f1507b6e71f056c0148fa3c7b32a71433fd3fcf47fecab0db2d2adac43e93e5", + "primary_address": + "9zikRtSoGpbSakNcPnmhU8f3CjmcVa5ZPLSjc3JpzcWP2uKPGxiRGVaK4nUKotE9jC4NzitxMPFeZWaj8BDRsw1kSvPVgHW", + "payment_id": "8fffd3ff364c2395", + "integrated_address": + "AARRShGHt67SakNcPnmhU8f3CjmcVa5ZPLSjc3JpzcWP2uKPGxiRGVaK4nUKotE9jC4NzitxMPFeZWaj8BDRsw1kfQ3YJDfMwbQHsTcZN7", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9zikRtSoGpbSakNcPnmhU8f3CjmcVa5ZPLSjc3JpzcWP2uKPGxiRGVaK4nUKotE9jC4NzitxMPFeZWaj8BDRsw1kSvPVgHW" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "Bdy4dPHcgCKPmouWNYS7uKNqpD2Li33jVDcYrJRL8wrtXSmj7CQnuovd5yKD9CTeXLNx2P1FqSannM1oxYZJSDVbFSZEJqG" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BheEoG7QRbtSfKQiRTcBavcPMRU1xUKEmVoL2RFvEv6nM2hAKnWaDuNKe55KSCA4pU2aYQ3jGqFHJjoVes6237XCFyiNiFj" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "BcwrhXz46E1Hg7gYrhCdgfX2KHDwWrvHA1CDaEx9cDuW2QWMjEKodUshBTuXzBsTU2cQ5uJBpLmv8Eh7g9pJa2kB8q24LiE" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "Ba4pqTzGTKsDgdZuNUhSf26LB1Joexmm4UQYsN7oCAcs3ZSH8vj6dJUhxKKH6rqBvC72g1i4JnfHJ46f5AaouH3PDzhhB7D" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BgNbW7YMXFA7hXRcV5t8jGFi9HLWoaC3WYyrYw5LhQ53YAkWFzbbLvFKw3eo7rMTRdUrLy7bcrQTq7rmqBD4MLUn9e7XpaG" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "Bc5K38ywMtbDWP4aTgXA8JSnFQ2pu7AVAWeiNtJZrBLbhWK8GHxhvjKim8S3XtKWWsWn3ekGRR1sXj7ZBRZdzvS2UPD3fjm" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "Bfm3CUKHCes2nsRmeRLUvbMQpDwtKD5W9bDdaLqVfKgx5qcjSW4yFBtYFYuj61Tz6JFvv4KwM7ajAG3zj9oPrZ81AuTw7Zn" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "Be2tako66cA2VfFsmpNQBKffwRHa2ErevhT6Kuf6he1sgEByAfZUknv3jcNpmFHnsDDpFXYv4eGhjf3kppQKK8h9K1uvosy" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BgyStHd3dd1a3EJBNBT44U2rGR2ZWzv33PcnZ5LaefmAhvvSZVyF2pFeGDyf91E5TMG7o4uTMehd1exPpxVEkHQrNdfpSs6" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "Ba8AsDFxjoGX8ht3j2S7TT8yvshp8Hu3vWJ5GHSm6MLFZzqq1z3rLRuFMaAgwnrjvmakSHrj3ttsz4EGgyaMipfN5zgJ2B6" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BdTJxMPD5LiZb6mWmDgXmyRaWVLKjaQZSiUnZYS9x4NKha9ybhihKe8EZCUT1VrYZwEapU1JCDXnp4i29HB6szt1EcAnkZ8" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BgiCwYGpWbgCypoDymMhKbBBi1p1bKTsWAnp3WpWregP32VVaBr55PkPscyyjDqiEhRjabqLjUqa5axS37n7GXyMSyEq6E3" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "BbJHnCHdmMwQhCXkhNypBMTwse2G2tJLKbfKsCyntmKgbA9tzVaxny1ZmWcvg88GW9HBz648SyS9CK8aYo6wPt3PKhcaYcK" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "Bfi663nEmGDiDM6Cy6JsK57YpAgK71KWbh2Mw2yibhAxJ2qLquFaJyVGzqV9QeAsfocVdCXKSTUqEYyc4uadRUjmNV6zNHP" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BhWd4DtmpyCFED7bjF2eX1NoX5wTua9uqFh3MwsuBmyRKE5aht3ZFbHKr6rVX5a95rWSjxKXPzFCWVE5VAnXGt8UGQu8aje" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "Bfhn3LS3f8b3v3w4e8vJbP2muszsxVFrVBvhMmRmDB5LVMTUc8cznMjDwuEJfGPJJA4uvCahZbWhkTmNyoCfnCUv5Vsh7A4" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "Ba3Cc4gnL3wPTcs6TNPHybTcBsux4RwZuWpj5WcZPkxyEfSorMNWpsthMbxyCJp7eLd68uQs3qfA6SYHKxHx7gCzDrKdpvT" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BcLCTEVP876Zj8FT4Bt3WK2AbJeKheV3gDbTyfGV15pNR3VMzzSWj3eMfxspstsTQmZRJTUK5YfpqjL4vm5LDpeYU2Zpp24" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "Bd4CXSgzWg1cCAt7eDXYq76YYrbBmspD7JEEaocjJ4TbM7jEb5KXGmEgnNug36WB1C8c7SETNYgq9cZE1ToFEKbAE99k63K" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BfPBfBP2uMoCHGJagvVBMLcemzvUN4T8QZdxe1jM3qK2CG5b7WNtipGJdLPHA66VHYcuuv5pTKsv51eB8eion8qrA4yNkBH" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BeEKuXGikKh6CsR2hfVrVMeQGNCFt3JXFJFHRXhUSQH6JR6k4qjomqPhXvLuz425JgNayKa9BH7yFCwt36ukFMhyNB22UCS" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BbuZe4GMfPcSKuebrWxCwmiVe838EL1MvP4PmEaCQ5UfDYK5rijjpeX4DLUuNkirHJ7QruuBKgcyxgfQngYVFAhs6uZKMN1" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "Baww5AuLz7SC8iP48hSi8cbXy8VSy17hWcYRgbLh5XDzbktyBJDFJMX3LPt643YykA4jpGdJAemMz7B4GqivFyFu39EjzwD" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BfibH5ckHujFpSNgrQTLnvNQhQocxGad7ZAHVhSMYXdVgvEDVqMonQbbb1pSQrR39vXska33tMHSRRcH4yQwa2EgVegHhyi" + } + ] + }, + { + "seed": "f9885800c241dcbdd8eb01b24e2e02724e75131d1f016f3b2a74725c95a46fa2", + "coin": "MONERO_MAINNET", + "private_sky": + "b741be5eba62244d79cb55549c6b4ca14d75131d1f016f3b2a74725c95a46f02", + "private_vkey": + "9818fed716d218183be784af7bb9fd89f669c6a5f0ae0e6e0b7bed483b659f09", + "public_sky": + "4503f29e51f4df4fd48d0b0172896a5e30044a7d4360630bc42864d72af36aa8", + "public_vsky": + "7adc770c34dbb4d568906ab679c4eba1e2745fc528889ab1c001bc434b64ae51", + "primary_address": + "44EoNbyU6gWEMTKCvv2GJVGkjmWb8Nd1U2y9YT8rbkjTVBU3kLL3YvwchL6rYd1HdcU5V2np6u6iDWjQ5b79hcpVADcne6p", + "payment_id": "4506ddaec141b5f6", + "integrated_address": + "4DwUPQnxhx2EMTKCvv2GJVGkjmWb8Nd1U2y9YT8rbkjTVBU3kLL3YvwchL6rYd1HdcU5V2np6u6iDWjQ5b79hcpVEbRChk5ydwAUqphXWE", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "44EoNbyU6gWEMTKCvv2GJVGkjmWb8Nd1U2y9YT8rbkjTVBU3kLL3YvwchL6rYd1HdcU5V2np6u6iDWjQ5b79hcpVADcne6p" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "86ZRPRkKn22e66qQW55idTNLYhAaa7r5xVoaHWQtg1M45h1dG1JmEs7aUMCXxtzfTgBQHj9CqS6FAFpUienKD9ro6898ePX" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "8BKmqr5W8EeK1gBdVcQzk5gChFsbND7b1AMeWqoKmSTcV3mu4myB7N1Gn276eQzSbm6t21My3CQUrQWw3FAsDamE432RvCN" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "8C2opvDx56D9us4ikgEqovMc3cRywmNtjgYnmXDQEfTiCRiYiRyWw8aDTPsx2UWEDsDjqHa4cfMfFFy9LcZraPUAGBBkt1E" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "89R8f3abZhU8PrXtf6G7v724msE6vw4FTMzYMQT3HiejAdNbTrxbv6Y814GgvxvcQeJvByUfCVtzoT9qsRyhPwDo5TQyYEa" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "83PARwmakhQK4UuqiB3wUDHPpcGrWy7o7SoeZYA66EvAShLzy5kKmqSFQa6vhSuD1dHCK6LmjdTpe8KRVTkGzpCY3CUZk9h" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "8AKPmsHVE51DYzogvrmvupeApEWtVeCJRFhwG1nvHyrDeCVuKwb8C29JkN5CX4WBSWB2qXFfAEapr3jqXu1g9d9MVkCKvUj" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "8AW7ektH1SR1eNY9UigS7FLEvum7ocu2j4ZryqnJ17zohHxj5oteKnMiec1x7eo75VV4tbyLgVmRaVf3HsqCorwU9xFiYmt" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "88SKNo3tn3fW8MPgvMSDVNPkHPq6BZZCRbia1D6bQR25FgkpzJ9Cb1wJR89N6gYoP8ektVpEhHLWzVvNmHcyvsdGBhStj29" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "8BZZKrFG8eEfZdh5MMqEFKNtdSbMh76gaV3SPfs1AF7jWjTmJ3eRvz62W1e4c5WpHPBDbTQkyYZF4BgazkgE8eB1357wv3W" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "89r945qxiu5LMvhc9QuSCRetv7hWe5QMBTpTd4ARvKMYUWFnBU7K2n5buYLTGgNdiCU92EozV9vC477qsbCCThjwLcC7z44" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "881vcmswMdeMPnghryDxNdDmpJH5ktgja5iXBwY7TJRLdU8yNgt5b94S8AMWvEHpCXTRjwwk1Hmc3cAAna6xVihUNLaQzwz" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "86PYtL7qztJeRh5KEq4PYEBGnQRTUB9s7hchBPP8NRC2XCHgxEmixac4SUGRKEmzopJuf5bvPtKzu27WdwSHPc4sU8XXA4G" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "831vuPn5HyXdZB7Jx3RgbyAYYcSd21RiBE1BrfyFfcYxfEhKT8oHGtmKsPZ3i8P3NJDCraokkedk3AzaPKJmAAqwTKepZg8" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "87QD3jGzxec1VtsqsMHqZ24vZxWK7XpR8M2MS5L8cgGngtasJx56nKk2huR7hSqyryWCL81WhzydVLZnkFfDb4WFCEwYETV" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "8C13gS3R6mEBDGKVkyD8UMcsLetFYybD8eTR2j7ZfSRX467bJmNffEY2wkkSdDrbL8RVaNbiv1z5FWATLLkpo21WH3wcPd2" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "8AaqqTikUnLasBbj3kMkHH6wewPwx7HkefJfYTDN1uvcH9YLua1ETidTCGCW8msRaoRdAG1nkAVxBWXxP1KAJo4JNoeQ6Pz" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "88jxYHS4f6UC9pmNNoZCbmY94ae7KxCnX1MSV9sEpBtGC9xtS2MzeHnfWGekLtMnGehbQ3o2sUnnw5jhhFauqabFSmDLgUX" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "88Xf12H1JmpbhfPB9zJ17PcchF1YZGJ77WE8jb83mv4XJnChbRFvbMG4Dpsv2wfzKFgveMmFKm9nqZVgbYnMNJaLP31wv7S" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "84JHDMob2H8Rvv3nzKHw5FXDoQYYJfewA61US5zzXyFeWugpei4qsWKSZtQHpNRV326SYeULGNZx58goqQzESyxY7iRrvc2" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "844Rb61PRz7jDyQwEEUaKDRxGPJn5tWin3UedJRihCmyZoLWpkSCqdEEEcv1746p17TX1cde8oX4FB5wtK7P5r3XD9ULqbC" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "85WTT7x5UJi2kcdR6P8dsy455dmZ3BCi1E3p6XFxpkUsBKwGjmRdPvMCS4tUeKbgC8dn7EFarZdNr43r6cxCfTiqFxDrbuV" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "88FcYfcbCUrU7wGSUXJRGmHSMJnC4hbSETUF9J1xiP1JJxkXyT3YWftLHKcXVzwQRj9mxi1vk7y2zj5vHb53p7kEKQ43zos" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "8BL4zVJ6RKTTyVcWfR9mwRC4Qj6SBhjubSpDbPYBTmLjVgW9Niy6XHu2hbCtWqCk9TVY9L7VLapgRPEwpbBXMjX5Khdoxcf" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "89mxYxQwQnmBruLKSYErq8LJ33NbnGgDgP4ogsPuNV7ePJPQioJpv27Q7gamhgW5ShM1R31S4bWo16zfZaNUNXfkDftm4NF" + } + ] + }, + { + "seed": "46f68eb56528b7c1270231ca6b07384f981b36857620f1f9ac3b1a02710617a5", + "coin": "MONERO_MAINNET", + "private_sky": + "04aff4135e49ff50c8e1846cb944827e971b36857620f1f9ac3b1a0271061705", + "private_vkey": + "7a11b14cc98dd77575f25ea9b064baf2baa9396108ad763ca269bfc938c25500", + "public_sky": + "828a48ebde6b73f8ff625b5a1c5d723300652bfb21fc1203382c371dcbed530f", + "public_vsky": + "ee44d0b68d13aef42b274e812fb6a4360c4349b0f35279edd95b745e8b3ffe3b", + "primary_address": + "46a2afFvXCNieb8xuDYe9P9XnB6F79guo1YEUyCdZaTk3fYnqo2VTndhqjydeut8UsA3LH2TpsvyNgnSA7bU3dau7hdEmxR", + "payment_id": "16f01db32bae0461", + "integrated_address": + "4GGhbU5R8Ttieb8xuDYe9P9XnB6F79guo1YEUyCdZaTk3fYnqo2VTndhqjydeut8UsA3LH2TpsvyNgnSA7bU3dauAtF6xsuucQ3C3wSXuj", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "46a2afFvXCNieb8xuDYe9P9XnB6F79guo1YEUyCdZaTk3fYnqo2VTndhqjydeut8UsA3LH2TpsvyNgnSA7bU3dau7hdEmxR" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "86Z7UB5NDbyW1iM2mNPH88A6LAHhk8Zgy9jH6ukCKPhiMADWirW6NeoTpzFhiP6LT775toeYk3bqZCws5bo6Gz7FSWr2MVi" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "8BmGH9kmmpCPsCRDPWos8MidG6xsMyvbk4kWiUmruMj9ekJT7E4SrHE7kPEA24aimhHwsAtfuqENe8NAZnF2yBfR6578aP9" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "8BjwnkqJxAb4KYNqNiAF2NJKP42mS2QfJDhC25kLjDcTSCiHpr3Ydhw6W6zmLhaicE3tNU7G2pt679yvLc1SB2r4UmrP1RV" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "8AQZdR1Mzfkgh9rUcW8M93A2WawnFSUdTcqWzwEn3js7eTUm7P92fL3W7CgVD5FvvShPtNV7TCScEFyvoUhBLUTfCTbpT8E" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "89sHH6mHE6v3VHoBYUhzyJ2JszNYeKsTKZhAayjjmgw9iJJGnRLpoynDmcTk33FNgT54z9pntH86ATPZw5zHoTspPjEwHBc" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "88nTpptGqbW8emVa35oM7RWmVHzZjWaAydX2otN3JgtzESozcB3tmxreJRKiTHz733AwoakyY1f4wh2AUrH6zN6bQhJvoT9" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "84WztvqsosZLx5GK4HC8KFe6WaVyL38nVa2KCmwMeHY2HHCAKJDHhvn3hBnqogXHBtSkNjUsgpAsG4xunfHagYFKAyjAGt4" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "8BDRcWHtB2y4VhMoVfNcHPEhKfEq1ZPxS6eM57D1JyWhe74qZH98XGmEG2TsY3EfMJV5ZLMj1U9Rj2cm78QAVZ4TAQs2jNy" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "85rBFJcZWZgFKjzN4UXkH7JTJo39L8ERqVbCNPz6Rq7jMa1TeSvURuY1GHKXE8iBuz859JoXR5pQNEh59Hze9KBjHHv43QV" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "84btqCnBnqP3eqGVzZKpmxAPGWxuvwdGf1AMp3oJHKz7jPk6URtH15g16PNRgBFbGAHrSec62RsKj2sedzEWQ5jCVaW9iyU" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "8A4TTsQffdLBfoHZ3fEs8LiLqMewPfDCDhDX7nm37w5t9uCbesYdnHhhgNwVx7pxULhLDWcAL88rg6UXysnt9G6QEpM9NGU" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8Aky3HEhAxH9GsChemWBviHaC73VedwLnhJkAGuGCJNLAUTx7LLdrwJMnyjMCRvK8J2J5kc2BqsHbJFNBuWbaJAa87FvTnA" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "86RcpqtefYzhrRu1jYKa8x7fe5h2Vo3cmNrcVZVtzx1JVq3G5A6ibP5ATLwpygCB1GL47yXDoBEcCSts9DLM4tDB1Wb114Z" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "88LFkEzqaZXY6aLmgwAGJpKTfbeYPqbKD3JELuaY9bq84dsyHjafjRP8eUBsG6TCQPQ95V1jBd3LYjPZUzbpe2ceQWNYtza" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "83Nu7UFzezu13kP49MCda2jSGo4ca82gsKPAwwKH4tk1Sg2munVgm7VPWuByt1pV8QTMscnX537hMdTJ7r5GJ3dtM8qo8Xd" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "88KHjagWvMd861AHXTHB5SjDSRwPfgNqyNyZM6VDHvHEeb6X1bfYfWZExjv2KHqoRo3rEsthdv3e7SusNTZFSLqrDk8xQNf" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "89RgkgzJUzjiGvGbfszUF3E5doESSNdo7X7x765YmzBjSvG8FDhqhmMFdLCFXFKTuUHdh6tWAJvLFBUZTg5uRztCKKYG7by" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "86XbfEB4MctW1AvcK2UmPtiNWfU9kUni3VtpiyohKYNSAY7DLRs1DTDBj5aPTyjqvAVPxsWC6BY6dGGT4fSqNSZ7GqnV7Xx" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "8BpFY4EGhbXhGXScz7Q3wGgXRCPZvN2kwXTqhCrmDUH7A2EM8DrjDFMh58GAS9q11BSVakv1WfNwC4N7PwqgZELYF27Tp9L" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "8B7HBTUXovFBfyiZiPRdPCFbJd8LjsWzS2ZmjSG7W4mS65axN2uNvhETJ32u2AQV2G1MUEqNtwCXZiAy5Uzx2ZumUAoEVbB" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "854pfkRHTLu2ksVafhq33egk45b8hGZykPisHhsiALgbCq5aQ4YckPnLwPqZL4PAobR7hBU5oMtm5Cahrc3cEU2HAzHsT2G" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "88ebNoQVQsBGHfWV7a87FMgCmxpL1BTGbdf6mHspgrxr2k3g1Umpugh1c66KKu8CjpVAT9Y4TG4pZbdbFzk6L45EAdMnBum" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "8AJvYCy13KLHTyXdkmVcSCB9CuWewoUduddkhk8txj3UbzPCNmj637YURcCAhA5dKd7uCkptsPxcfb848bm65eJRAB5fFgJ" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "86PZkuLFhNCD9ZyGpdmotpirh32Y33e5gPEdUcKau2AujjiiCQyNLUnWLK44zh4UiN63yx5PyBnme8ACHEUz4qmUFWEUQFz" + } + ] + }, + { + "seed": "d03949f4ed4dace6902b91b874432606f61c8883067e0ba93aa004d9eecacc9f", + "coin": "MONERO_TESTNET", + "private_sky": + "7bc6a4af00d206ce07a8dcfda07a4f4af51c8883067e0ba93aa004d9eecacc0f", + "private_vkey": + "992e3bf8bf984965c3ec5b0d18602a85289fc7d0a6ed2a9c2ebaff831fb0830e", + "public_sky": + "1b644aa26d2bee0c74dc050ff7f7def468e06157ff5dabcf33f5a0e570a07c62", + "public_vsky": + "5bd52906fc4b1f2a526897deb0a8b999714cace3e8b7f290c852b4a27c9d45cb", + "primary_address": + "9tCrew7LFAM35qvUKq84uKht5e76be4n6bf8ShoPQv4bHTCmEsPATF485aP5AavmRaSfawcR326dFRDaAJ38BSWpQ11fmhs", + "payment_id": "ec90e8dd57291448", + "integrated_address": + "A3uXfjvprRs35qvUKq84uKht5e76be4n6bf8ShoPQv4bHTCmEsPATF485aP5AavmRaSfawcR326dFRDaAJ38BSWpb7KWPbFiewV9ArqDEi", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9tCrew7LFAM35qvUKq84uKht5e76be4n6bf8ShoPQv4bHTCmEsPATF485aP5AavmRaSfawcR326dFRDaAJ38BSWpQ11fmhs" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BdiQtJ4M9FHetfKvcJcrycdRVyQAU3ENGAKEb8DVWGgGTq5apYtxFtGHds5ACinGeBBMwMk1igZTLH4aTVAbVhYFUqPjFBH" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BZWsbwMuJbWPA2vJFf3TGxRLuNsNZ83SAjdSVxH6m1WnaEMyymRbkUbg4gzcAXQJet9oG3UmgkZ9jRdn61Rwf9uvE9fa5Wk" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "Be16AKvSXfAMy5JLNMsAek4rTXRTAjfvq3QznnJUmBGgVJTQq37RVm5jm6xm4eoinPPngzbtjKskAJz16nsUdzWGGJHQeuK" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BZ51UZZPkB8Av6zyBsxHMp5MDyYssNtc4J5UwD7FdjrAVmfNMVZgFSX9NbCEMDp1BM4vRwmZHLvB4h1ySBrcdBQcSHYLBkU" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "BcSLVtf22Cc6FRjmCEJiuu18mx2D9MbSNLoG2ZxBQRE2RGEhC15rg3cKiuk8yqnCgLW3uDPNbb1SwRzKM85L5nznGGgBngC" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BceJByV5dCH9aQ7YPkh355XTzuqiSmWsi8PX3HTjpDadGz1dYBQf1YAgouTo8akR6QhzMyYmvUrqKcUQinnkYUgWBGvTkNk" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BfjEHKnw7MaPQoxQmrAA4F2na5cJS4VgSXwcz5HDFpPw7pq2RC5staPRu6ew9zVLoWNE1h5cteAT56hqNNrg9RiM93C8KFj" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "BYuQHhch6Yc7Ky2FPBtcewUuVquZmDaXWEH9CcMxQziuYKmpMJNka6SS3FdaTaVCr1je7ZMcneQJQQ24EeK1gtRmKz7SuMZ" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "Bb1JeuhRqp9UozDcoHutY81PSUoP4Sh616Rsk9GJMAZURC9XfwxRozq3cVtMghUNZ7Fo87yx5abr9Eiq68GQKQsW63LnWQ8" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "BYo96tKG6TqepEaFtRs1oRaQbAvoEDJKycr1DJNvQFHkBLKhj2MoXcj2EemCZpMDo1PwXNqnUpQWvPL2uSV7uKWCLV5mx6s" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BdjzwX2MLJLLEBAeGZScCjSzjVdf36PB3TJ5QrFu52VS3D9D3yVuAZNcWy4ZByFyg7J1nUBuMBgaNPkM1Rb8FYDz9k9DAvF" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "BZadWfkbGbJbuQ9wzP2gzDd8VZuMHS91aZFm3jgTjAd72ytadgowC7NcXmXftt1GDtFkk93WsQ7HL4QTaWqhmANWPJtGQVs" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "Bc1RHerzvrMGq8X7jNBQhZDNemoeGmdyG523Jp782Gxt5Qq2EMH8BgJNekumbzGpXSYo2hsqKUWPFN4D31fCb7XFTHTuXFe" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BfT7kvMfkSrTAu9jAPEXrSRHQbPmh2eqf4rC3edQzVY67K2YmCYz38G85veP7nc8zfBjadxr53vueQUBJWjSP3112XfZ881" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "Bh3cF517e9JJGdZqjnGYnT3LYY58VpXxaKiGsWWyMnGMWPww6KytZik9eRkm83ANPU1wAvF2KQoGEXpqMWwLXu2rLbnkdjn" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BeAMPoAXkAj11RucmnSTp3GU8WcZByWJoYekAqKhtvR4hAv35ixp1tPfS7769Bzr6MCBeuYByihrRf4d7T9nrBbsEbyaTAq" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "BeysnSvEB3Y5JK6UQQVMAF4ZzYv2mk4GDeNg7KjrNfE4ANMxxSTpPbFN9a5bahaBnBTM7BnAeEX9n36sKadCXeBwN9TfzGr" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "Bd6ivu4LGqCDRX4WYNxscKSs7AtwNke4LFLf1CMcXMxJApPWbz5yUytZFVLJ1DB26Q9utqSBSK33bcrUPGV8YjiDCJNMAxZ" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BZM8qEcfcESYHLGscepCKUj3BV4xbUXHpCsSYbicBRYw2cXUfygFmRURWEd5tYtihFTuHX8cLkXLdepd6FBCkHsb1UWnopF" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BfwDupTChGoQfvWt4EYPpaa4onjNWhMeUCa2VQA6rzQFZqfTuncsEgG1freg3sGy5BUp3Peu1gq3pZVEfeAdHWdq8SSxhbk" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "Bg1Kk722pYvJTPNJddNBJdSFFVdPSVpcJK9jNh4wVauBEg4Lmaoc8UKNMX9ws8QjT3BMwUxtamMRUgftbmegNJWKRHCzCZe" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "Bc28hgu8YHHhXNSPnxi1WeNLa622s41bpM7398x8dt7DPEXAudBokczZAFj8UgootNb4fzwVvgb7pCf19shRcRap3EhfxmQ" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "Ba4SrG7DXQ7W1xA3EtwZiCiSzYhoAJdfSiWycXiP27mwdvfvZ2zHKRQ1uQS4yBHbdz6wAJE6MXwhrM9NBMiBZ2MHHpZxHfA" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "Bgy7a5o6EBK1cHo1u28fzAhC2bUgrKqWsUd7PdS7CG6GZx4EQFMGsJxhVyLUQtm3qAh1s8Qr7EMEE5DaRh1MDR6q4R3mZxc" + } + ] + }, + { + "seed": "2d1f47c7cd47e05695aa7dbdfc8f765b99c323590f22a395d6d02bebb735d952", + "coin": "MONERO_STAGENET", + "private_sky": + "8cfb79f64958849e659aa78ea3ae1bf398c323590f22a395d6d02bebb735d902", + "private_vkey": + "a0df8e0bc04d7b1a56bd6866eec03349bfe9b44cf29c26a47753d6c41b51fa05", + "public_sky": + "814c9131f885fc02fc2d61a37c240b76e68132e91a24a5fe7fa4297970c77a41", + "public_vsky": + "156cb3d5824b95fe09ee826ea115e2fa5dfeb13cb0170917f553eee5778f1cd2", + "primary_address": + "56jLT5rTRTR1VxcifGbVBQLtV1VzXNP4QjZxQJwojv5oBtPp8KqTbYxjVVgdaAGQjTisskzrEsVvQ51Rgqz3tDF9QhDCuGt", + "payment_id": "43fd203e63992017", + "integrated_address": + "5GS1Ttfx2iw1VxcifGbVBQLtV1VzXNP4QjZxQJwojv5oBtPp8KqTbYxjVVgdaAGQjTisskzrEsVvQ51Rgqz3tDF9cAqhAh42nPy3bhoybg", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "56jLT5rTRTR1VxcifGbVBQLtV1VzXNP4QjZxQJwojv5oBtPp8KqTbYxjVVgdaAGQjTisskzrEsVvQ51Rgqz3tDF9QhDCuGt" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "77eTeGehU3P9dpxHXBM5Pi6vQM5YNaRTU79x8PTetMU4A2qzk8FQZoV96XkGJRX79K6PYFDTfUjQVXDGqomWfpqpNAeAzdk" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "7BSRr4FUUdLd9RMKQwD1UA19F3FUhxRZkCKuf1WAJwQciNf7ZJFXYn5dNXLEWHu9UeMKv1UfeBFCD9TW9ox61wvf9ptujdT" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "77AT7cY1f48MHZSo6FnAu51JSbJph3CwnTGCikBT1qw9AkWS6q5D1ek49aLj64YtwLRd65t8aa2wPjMJEUkMpfFKFL7vLTK" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "76MBmn4WK7E3kcBPYPMCqo3KKrafmb6kbhephCDVyHLpEcxhAZrVWHeWLhzL5Dz7SZESvNu7z6t4iXvGu22bNwrSFLUkmWL" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "7AsfTW3MhQDgG5ZzyyApD6Bn4jgSy426ZixAqKuYxt6cYyUajU7UEd2H5XWuB7foo3Rpku3nBU9P4eurvELmjXu73s3MQou" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "75FNoEiAeWvcWe4TVZP3SJWHtPFBg9kFX49VCiJAm7WK66qzR2fjXGY3VkRxmkEpffYmyYMFqNHAeay1W7Bgba6W3V7CtUq" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "72SaUEvsadHPejo4gYNxKChiD8JHT7RsNhaon8kgch6JE8E1uFjwGxAGStEE6dx7m292332G9LTvX1MyDPmcTP2yA6RHn9K" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "73bzegL8t9E36ZXgx6QXJbYytjnKMEGqNFYuKRt3yMdpc5pa1BrLGjsdPUi4VU4enPBg6cCBfdtB8bLyHgPsyn8KQ4sTXWN" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "794qvb6wdzqjbXwByTY6EJZRpKMMV4U39UDmRVkQEwgYR555UVxW6dgfwpRXAur1NhQSNfy5oecvsGa1EHr3ux5NF1YwhPP" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "79DSTBBqFQD4en8nhvVuNSRA5Etijhd9U2hg6drCy65uBU1YWYwREescV61vGCHH7SUBUxwbFBDa47wJB5Jnmm1x3bXvj94" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "7A75ijkVg7uK6MiUbjaZosCXP3uwsUi19iZBiWr7JYd3KnpNzSrWomDEz2WzT6dGaYRja4dLxTDgzLTEJECzJUJVFSmoqvZ" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "78GkfKTC9CT7GsCnTendMviVXFBLDGeDihpZT3BZKLbx1sbx7F2N6L6JyS5wPBoJPnUWe8CbTKCMBVS42cwQsYQqHzB5TAu" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "74WZxbaGK3vXXudfqim3dm6AtMFVK89kwSzz5QxdzU7vV7b867WQ1jbe7A55YB6yESFXuRh5yB87K63ZB6MziyBC9fnmdyx" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "7AgRj2JSJVSab89rHeNPbYHgVEu9dbUBZNPjSG4nBEEeQPj9kwjAD1JNfJk44uFTZNcDepmJjV7aBX9QGwRGYubPGQWVezB" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "75ZQieDDQnUe1zzJWpn52VfeTRGydCwvE19ZFZPHGakFR7egkqLShtpP479o15czCC8NhAT5A5MAgVLBNhxLmftR7yXaAkX" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "7ALmupjjJvS3ZEGZvY6fMfEwc7ruV14w2gHc75bad4AYipNNigfaUzhFsYiMvMe6N63URfjHWQLfJdawo8WK1Zp5VjKB6oj" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "78sozxvT88AbDAnW7f6fba6wuv9fjC62AHS27ySHni4vAbKDQx4ek7236XauSxW2py6sEF2Tu1oVt7pkmJxrN1nt1KrxLQW" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "79VmyaKyTc362j2pzRhdUn4xJHKGzmCnNbSSU284w5syNB4HyCZSuCme66u1HN5WMr2FkBFVCQ7RRTmn1L35YQXGER8G1eU" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "77jwK5mVaVVXt9E7yME8uh3qy6qp4HHTt5F1grUtj9wnYxEBbbc8az15wPbjBTW3tyTQ8c94opkqb69VfD7w8ZYwQCwM5bT" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "7AAN8VisvXeegmFQw7PgXo3bn7Y99LiDLPCCwF7gUx63GowWmA7rRFC3Gub4FYgQG3fNtdwFTTc8siJKERBcVGRv3dFVJZY" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "74sRaD9ekVL3e1MpR6u2G9ZwceYQ1BFBEMpcQjwesr3aPkrre4net6sUV7WUX63y83VvdkpaHTPSjh5mfSqNKTjh1rHAVGF" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7AQus4apqX7LctKnekEwMG4QMmTCxVNBni46h3NKn3MjBHANfQvSEnqVeR6xNbsD2NbCnrG8emonUEeqg7u5c79WJ9c2iJf" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "7BbDKJ3WW8FDk6ZDTFJh7pDEGMf6WzwWPh5JvAHR54ZLAnU5Eu6GC9Dark6Vy6mLSHLCbbsDKqvgaCagQhJeEvq3GrSFZKg" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "7AyYtuhT93aDcaoMNGm9S5YZ6deqL1gmB9hG7eiEsqhwHt1Z7Fr5nvuR1pcMYCB6xPUvzD5FjxMYW7xaRRcgWVaq6Nd58ae" + } + ] + }, + { + "seed": "e826f67e53dbff3f67b614845a0c6753d8f7e5ab112de5d0bc6a9dad3374cd8c", + "coin": "MONERO_TESTNET", + "private_sky": + "8087479780c26c7fb4cf576c653d6facd7f7e5ab112de5d0bc6a9dad3374cd0c", + "private_vkey": + "567a62b7ec16ae48319147bc06ea9570035d4792932f368bae09543c74472a0a", + "public_sky": + "567721983fb5862e66dde6ee88dd093fcbfaea48019c951328fa1578c7456900", + "public_vsky": + "48b7404d7c74845787195e9158069f648f6c96b6b13175565409a3741e3c9957", + "primary_address": + "9vShPRAfUtm8mA39x8y5qABfuiNYUHC4C4Csr29h148g13kprP7Yy55Fe8TiTApiLeHpZWBUUQkQCFSVZMusJiekApMHyjC", + "payment_id": "98fe317e7d4de1c1", + "integrated_address": + "A69NQDzA6AH8mA39x8y5qABfuiNYUHC4C4Csr29h148g13kprP7Yy55Fe8TiTApiLeHpZWBUUQkQCFSVZMusJiekFeonqDAjLK2NqSS1HN", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "9vShPRAfUtm8mA39x8y5qABfuiNYUHC4C4Csr29h148g13kprP7Yy55Fe8TiTApiLeHpZWBUUQkQCFSVZMusJiekApMHyjC" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "BaEqbufiX3yKR6PWx1mqwhYpnPC39C8HXBGqhX6MFyLtTcctM9X3M19MNszKACXsqqEF9AT3FsxRtHCo1SwUx4u4JM4a9LT" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "BcJFyDaE6ZphPjHqJ6rNFzDnxhKNJxhbKawPFdZYEfiN6tESe9YdgurDhQdtnx9n55VaAyk4cWBKb5BmhqMeJ6DCMvSP6c2" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "Ba3Cb9aBpvMVLftoXvhMzUDKki7kmVdtihgY6xHeYcxN48sBfu1EBkaVPKadQZq5ky4uqNTfAdMPt1gDDzSkMFiB3t9LNNg" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "BhkNngktP6CUgYqir2wtLU4uVnx4VY5RXafLmmL57xGS9zRJo8Kf9PP7H57os4QkK5TctY7zphMkLduKkdCD2AnMTEFLsxS" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "Bbs6zXGEpiw2jBmLitsbWj4ZpjDMoDpWaKsJpzqG4UEQaTQuNTb1fnRBMFr5X836WYQ1H3RfRZiQxJ3qv8HcWrGz91GEw1v" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "BeLa18G5wd4E4TMNCUgmAkYwtwPUuXdUhKR2No4FBkKrPZZYFp147rKFwyMz4NWhXYYugSmh5wLcNYXzq5G1kzSdHGu4Wr5" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "BdxxbCkH7ueSzJNbkQ6vqrPMjPfiiPqnnKt4TPky7SD757sdmex8QpPfHRiJPVUjTte2MrtCyeXksYYdJHJ9SKra7LMrYQt" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "Ben9iZqz5om5XxBUQwZZrpQtjvh8GFHMHgL7njU8HGsdUdiK9B8UYmh51bKoWZKkp8j8KD2JLDG8uHyhaqVQyeJdFjbf8hH" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "BZUHg1qM79DKQFAT4va1Ns8kiGG6AkZZZSxMfsfw9JM39eEkBxGLdGJJwvTqvKCz1gSYSka4tNSPLJp9MAHkSevMFCmDAnp" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "Ba411u2C85WCVAtUHU33jLNJUo4xRQmcU5Za1YTUqmLq92SpQVCEpzaYc1rsbtHXUBgKRVAYQTj5whDaDCVb2FZZM5fNTZN" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "BgotfrNZoUW7NJjeZtrP3LCdaNzU38oRcQ19pYJsTWHqQY1exyx9zXbJdR7jTk63TpJ7iM2WszNj8fVAv5gw6jdY2aaeev7" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "Bcn6WQcx9dhVoMiBzez6Bbjjuq8mSqSgePyhwCN6TbWHhx2nZ1f5gGM5ZpmZkLv51oQV37jsiCjnjdCVSo5qw37Z6TVmkjb" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "Bar8rgXUMCKhAWGCVwNQKxUQnvEgYPHLu6AACWDRN6CZfhagjXhJNVRirjimzaTYnG4hKMqfW3Syu7zb6GYPK6fAGPwnqeg" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "BaU8SatiNNT1zFb9qWonaHTfxNCAoQMuXUMC9Kbg5a61SVqQmugouwcVBJ4HfKS1Z89qcMmBBRFNTMNKdHCoGEnwG5358LX" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "BeWWuUXfYjeXTiaeoqrFyGgGR3deX1pvwYeAxaxyEY7h1eB6avikEyoLa1C399393iWm5Rsh7oY73a4azYAuFPo38qx2ct2" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "BZavgsqXeXMBz8KZTQpi5x7mTEYK1v6mRaSMzwKCse3KMkUFzSbZrLMQSDAAuFYZuD8yELe1tKKHnKoH78hQSskzNtffK9H" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "Bh5f8RKXPhP32zR6PD3sT85RmoYfU7k1GZpKER94i3u1WQFpJ4pzWAmUaRhfaLqNxSBmTDsjor7E39F4R19wPjw3KPV5vpM" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "BbAdnsh7schcg63Kzfs2uxCvx5KARWWRkHc4BFtbcJZoKkeyFaXMF2LLf6DkNXPQeBWpaHciGfpe6RDTrAbgRQpV2hSz4qC" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "BanHinsetzoSegUYaoc1qadvhMoaCfwhfBniT7PJpAwFcKKeweid8GvAMw3nLYV5nydE7KkubGisdTmkNcgA7bWDVrYRP42" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "BbZRWqPtnGQANAFP8qAsMkS98mN5axNxTND2JURN1P7yPgTyYpsF3f5By9sBdBTJtkeCcMF493zU1VmCVW8Dqg22HhNNopr" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "BYtDBervrhsReKhePxLoEp1VpCTxXej2rBUhEnB9Gk9ej4Ee3v4iq8Y9PyA9yNQPEBSggi6yLXecm3od8pc46Dm9DJdjuds" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "BYS3g3cTxJoDryoRqnSEytNozDSLBg7XbfpdRKiwMXrji4T7RMABefGeTw7iXs1CtMQ7gdAvAo3dLGdnmJtVkYjC2iKBZT2" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "BgHCXBZrg1959u2jJdG9WNSyz5Gkjy5EK9LCvGK1CNqkUGR9cnvAzZajAR3MGSCRmoWqsbqupjaCWNgX5yf3wKcp11rSuGW" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "BgS5aYsqA1JdXdv2rBAiiZN6JWu7pobNsFzX3BhsWQGvCJm3G2zjrigMFrmv5MYnMpQ9k4TEKgX9tBSoS7qhdWD47dGnjbY" + } + ] + }, + { + "seed": "cc73449798d156d31e8d8017b454f01e30459b905d285a7a68a8a39f3ed88401", + "coin": "MONERO_MAINNET", + "private_sky": + "cc73449798d156d31e8d8017b454f01e30459b905d285a7a68a8a39f3ed88401", + "private_vkey": + "74f23784712a6afc544dc82feb2c06e3b5f9061274f5e9e9b523a50226ff3303", + "public_sky": + "c66be01654eff68b4cf78e843724651b8ec8798e6f59ab86e2d1541df73b6274", + "public_vsky": + "75220d0403d34a8d6300711952cffeb1187b886270ced1bd31089129b26e8e9e", + "primary_address": + "499E7YfvDYyQJPfjMmyQxt5cLzSZQc19tPZZfhku4oUuLUnUnwCNWSMQedSkk2wmPsWd3sWgGtgfrYePuSeZDYgVJvFsXtW", + "payment_id": "8772100b55275a13", + "integrated_address": + "4Jqu8MVQppVQJPfjMmyQxt5cLzSZQc19tPZZfhku4oUuLUnUnwCNWSMQedSkk2wmPsWd3sWgGtgfrYePuSeZDYgVTWvysRwbcUZ3AcRPuU", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "499E7YfvDYyQJPfjMmyQxt5cLzSZQc19tPZZfhku4oUuLUnUnwCNWSMQedSkk2wmPsWd3sWgGtgfrYePuSeZDYgVJvFsXtW" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "88mteYgKzffYJ1Rq6irRBXNfT3A3PwTPbgzW8EkmVRV9CXta3B4QpaCCUdxtbyMQpeQzEJhzFJBVRRHq3AXQZFt29DNNR8D" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "852gVXzUWdC2N6jXfg5GQ3bFAvTUq7kGeVGpCfaw7c4dMF97W68tjwgPrKMaeuSsNzJm363HNFdP4ew59LCkksznBbLoS3W" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "82yi4fwzCGc92SAHbnGQ5KeaN78hNE31gXV3Q63PWt1d5cWGWr5VrVhftgYziRCWKhKwJHwGZ2j85PHEk8Eaqgqs3EZySPH" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "82ZqSxsJi9SLW3P3VbvKcRg3oXShvhsTaF7wHWT6ZHgDV6h79bfrgrK56B3yirNcjZgbj9nnVnrg4Qv2VrRFE5cp7Cy6PCs" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "83AvD5jjP2n35rJ6Laq3CbafU2YQpXNr5KfCEEG7SMEjUEtsS3CW2dn1uC7LNFSLUhfbeEaNfV9tuUCUMVE4JSHABZsT35U" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "8ABoDeFvTBuGg8yABwGB8VaJJBe4ZYhG4C5FP5eWxtjT6RAfZh6MB9dTbqANi5DaPvX3BCR6VAcRoMNyyfzpmPonSGAyR7E" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "866wr2r2mQ51GvoKQZedasPU5UScVxYf1cH8DMRj52epXLnbV2X7GwLgWjsnLZuHCWfwtGKva1iZCFQJzk5Fa6hES42aYek" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "85Wyjg7Q6ejXk4HgnsRRk3UPB14QYrCyxGj3ZRdMsRvRN5Pz25FXd9P1gYCuSdgE9LXcevVdZhgTGEV8M3Hwfu2dG6LrSVQ" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "85gmBVoVUmG8aVxuuXmo1VK7Ftw4F7aX1ipReJ1hni67SctMXhrWgd6BiyiqiPyEp3hHGwdL4wfMLGbA5ktLYFtgJmE2299" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "87gX6XCeREveaTvMbtys7DCsRSsj7hrYB3JbFwNRbwK1D9QgcD45WJTdnFM2X3xDgNAaDnHgUhUoJ6fHzJiGGdtr9hF1A5i" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "85obhxtAeeA5aVB1SHJTJ1HFpKtAcawNGNafoeJd1qWEjb98GsKUDgAjfj71D5iMZteow1pumexhBHKMicvS6jgaU24GzrL" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "86HowPFEGU4b3WaakZoQKK74BXEr19CsvXUYVgjeG2xAEZYjwcsfmvz2USeHk9ccZwDY43DVyFkPbgqaTXywQ4b7EbBz3Mm" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "89EE5gZkhxXWHXU4tEmtSu4LZo6kerTS7NzGBXPeDkDwJLySi6wxSMQdpqqJEavSHX9yHcUggwBCoBYR5ovLMWwjDEPfxfc" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "8BzGvWebEoeGqdML9KQd3FegrZWSMncZC3mTyZuNz5ivJ5uYpf5e3SGiu8UDpy8naePUAYtArPV7bXsVCCy7kyQsEiHCvmt" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "83DsBEDoQEXiQbYAVzUm5W5nc4f4npduCMPxDd4ceto7CsSsigap7xZ1ADJrkDiheRFTcHfDPDWbVKDvh8SXLruqVB7T6cs" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "8C1xNRmk764A2tvWsiLDba7KybjEY1XXSFLRL7KeqrVohjDxxwZFGYhdBnJWNjkgDGWwCkypxkETNH6MBc9YJc2YEs2jrnM" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8AGA7dUsnBaafvbrVs9wGMAnVBTaq3FRYAv3GaPqSRUo2XH7Z2k5h8TAu3ZEJdew5viuVG5dGw3HiGgkSpXRz8RY1NQDKth" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "88y4QSMCuqSAyENoEGqbiUFsQnFaKsPNzihDF2dC2BVgFFJbrSgQZqEB5KFfGVyTFj6pUzYMYvutvSFEA7rCAG1Y1inv6Ja" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "85nw852EreY2cpVE8dbCzTC3kSZV6FVQJ8dRDD2iaafgDF6ejBKufmWMjPijdPuvTT1KWvKY14tUwKagMAiocZSdQBUwYQS" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "89dxwH1jmcAUdLqMjFVCRDgP5pgrQPCCYcxrUKZem5QvUuwDQnkk4hcK2qqpFHg9ohgP6tQr4pndeAFJacDzDVHtLyj89Dd" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "88znTT9DPGgTnEh4wMpz3oXWMUmWcAw6nRzW5wMMjm2F65sjJrnHyFtcyR2b1KcdCY6stmMBvhnr7NF9vRmLUiXL4xRsFcP" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "85aR5AaWMfYesTfGvjuWofGfDoGzXHVP7aBM3DBSekKgYFRvMtoS5j31FfJezaH7ENPR76bcR7ESBabZd6yu9Z4m9TueC8d" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "8BqPyqLSK1Z6hEDKKpoCFoWW9YPQDvY396imVUAodAW8duVfyXGgScqWJFTcLzXoNvcPnv9NSrkVLJSR6G9aU57FRPF6L4e" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "83oRpitm1yaJpVncyKHP3GYGza9VisSjjiaKTCGKw8iBJemjR6sWsP71DbJS1MYWhHC9cwQ9B1MXn7Y776omtQrxJ4jEozX" + } + ] + }, + { + "seed": "4cda3afd3fffd6ad23d395ee741259540a3ff4fe60f5aecde673350676c24f60", + "coin": "MONERO_STAGENET", + "private_sky": + "bee277cfa1ac689d1d26c81c3d371fd7093ff4fe60f5aecde673350676c24f00", + "private_vkey": + "b1e5c72b041155af617fff9f77284421f4516280b3b802bb1098133e671f1406", + "public_sky": + "1bf0852fa3aa0a83fde342592f70792fd5e98170d04fb6a8ca58d75fe00204be", + "public_vsky": + "5c1940fa8be843d5578bf09a08b0623f66986917416f15a6d392ff2c965676ef", + "primary_address": + "52tZ5eq4AvmP5V9ZiFWnPa914nHWB23TbVEUkeN6z5s9YqjERqG8ALicgghTSidqdjBc4snbcQPy6UuRguFJ9jTTU1PD4Cz", + "payment_id": "fc50aa51f522a57e", + "integrated_address": + "5CbE6TeYnCHP5V9ZiFWnPa914nHWB23TbVEUkeN6z5s9YqjERqG8ALicgghTSidqdjBc4snbcQPy6UuRguFJ9jTTh9ALb4294Y4FH8QS9M", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "52tZ5eq4AvmP5V9ZiFWnPa914nHWB23TbVEUkeN6z5s9YqjERqG8ALicgghTSidqdjBc4snbcQPy6UuRguFJ9jTTU1PD4Cz" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "7AP3jL5x5uK7VrTR4jr3hi6RhUeQ49kMXaTBcjgRjkdMg8nT1yEcVoWbaweYouj4EAcetkVKPrBag6FyaSzB8UnSG3ufoAD" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "77aJsGguinrLcuPngD3WxbUXyyRjVPAmyJNCgi1VoTFu97j6v7JxZEdjNeRpD9pjJsBFqoei5mgxaK96fqQeSymjGdwWDcH" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "73SmCvVAe2e3qPJTAUorjb4XhfT8TVffSMs4sGgzVce215xnPf6EZeq8SfoTaBWMBrPaYwFwHhf44VW3jVUoDDWsDqbuEDj" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "79iUaZks2N37tjkAez4pYw4UF6XvC9icr546qpVRwcEYhmZ4VmGLQzj2EvUa5d85XUiyYejE8pJGtP6qTP7jEHp5MovvLuN" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "77AEzBRXDvYepi849h3LeW2YQKKfVEsMVTUQkUZZfLzb7xqHiVujcoDQ6kcSt122PqjokfjtgfhnkPTs1pXR4JNuARDp4fW" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "72g9s7py8E7gNKi6eLwQXNi8wp4hD4UVrVsZVtA3fKZRSdBmHzY5bJ6GLBTrofTqKq4EaiHwJeaGz7jr3ZnHP8xjHZZdX6N" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "76BhV1oZ9r55YBpA7eNSGU5wSNM5yvrmMG32qD9oS71zgbbG4XovFqz75iw8bqyD8k16P3BoSp3rB1X1mqT7JmkVDTn8TV8" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "7BbAJkd9tkMPrgzuuaWfvAcYhctrYmSZoG8VX4sqdjA8DhEbrj5yoN5YCVWVjQEN5qbb41di4KrXXbMjEP2ZmrL6NZSJWqb" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "7BfhaLaXZUhVTNwS6hAhCi3cYoSPEdTKMDmrbNHVCkvKYf1epunB8yHBbGjWfvpFA4FZk5R3MRPBPBqg3V9xyZ6CNTUdnKR" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "75f3oShoAgAFUUNMcbnMkTA6hVBcGuRQKWNZr3Qr9kwfcvrYpbGDEo8c2by2yAoA7EZbRHTyeFdk52TU6DbwU7McAAh5RGw" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "72txUhGYwidcv6D98L9JpTFwcuogXjosBMqUMD9GVf4V3anbjRtz4o1Fp5HGRSJTVpF76NKHFBw8wHQQqHtJTALxDXZEKdv" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "768cvrg8kTF7A3ys6U9fJ4Dvgzv574MSVK86g7ekvEgWDaKE4XLdSRcYvPt9wKZqVrLk3ps5ksnNticz68VA9AVn1bTrcgw" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "7BragAKoNib8sCyFxoLjQgc7WWkGu4hbHGYdYdEJGvedUgdGMJTBCG6NA9t3DfRRRoWB8WJvGFvBzFwxZmCcdvDZVSrHp3g" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "79wSxiFwcSbWg86SYSdA62ZmDSj51K7FhZa2DD6gEGRsahAk5fEFyWRbFY3B6kMnHeU2aWAm4YA4hR9V5sKn5vTZDXrD8Av" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "79gY8Puq51PdKfhmXBZi95FDmL1Z2RozxWqbjTYnRTNRSxK9Gg6UEE8faAbioNrz2RFAVRyctTA3CP6WiJdTNuTtDkgeG8z" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "7AQTHbfeihUWr9c7j1v4HE3KmN6byE1jVb6S4w7jPyQaSXtDsWrTV5jJimT3BWs1g8Fz7rhG4hsLP3jHRbvaVCczPy6hdu5" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "74gT7QsQU62NhfDjBBmVWYcQHiLxYdkVyeGwLpq1KpwxfkHKPV8pTHcgtUt6Uhe55kiHm9pwfPGQ1RciSxJNjuk4QvanAnQ" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "7AKuD6S4MJ3Z5t5suV9Xan6UWr4GXXQ3P9YMiEXEj1JGV3MZ6hY3JkQHSUanQEZ3UFRrMQBBgjbwZjgasFjLX9YeSpVrANt" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "77pZbxu7SoNQ38b3FWNHVN5bo5pSgK98YPNRoHqs9kFTi6Kv6AKzjZdSaemXxcfK7E4EsFFuAmnEuEeXbvjUbUECRt9HGA2" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "7BVkga71813PHvdHLRFkmDffBybYqJNgKRx3N3sygYvjRtpgbmo9pUGQbnXprPc7r3SP3WwMGsC2se8faFSTNYo2Lsc1dBs" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "7BHNY6sx1ABYLbunKKGfzuJuWm7x4rncWGhvg3X9VCVmEba2sJARgivRh6qFEYsgjP4UL5hENMCWmRpwW2Gy1XrF3gx8824" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "7Bbu54Pzx6jivmd343EgFt5SPxzQkV4LVK4naLPM6yxMe9Mk7c1nGpfSzQm9zphoKaPMgx8yoyoEhh7rJ77zwm5PNSgFPWS" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "7BciLzoNEiV6yuFUjgcSkNTbipEGmkMecPeAh6aoN634b9n2LXb6JrxKYiC6k8SChZZ7xxEYM3nc6YVyHzDqNYEjNjsZqb7" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "78vsiUGehoSMpPALFuTsdfFcpcKgduDeFL2TXyb1t5YWftMqrycCtmLbsH4DrEurVGRwcKvBo1rh3b6h93JhbFhe5qatTXo" + } + ] + }, + { + "seed": "aa24b6e04a1243b360f3a4566c9524ef5989de2c5902c9b9c323be65f978249c", + "coin": "MONERO_MAINNET", + "private_sky": + "55b1119c5d969d9ad76ff09b98cc4d335989de2c5902c9b9c323be65f978240c", + "private_vkey": + "7fccdd685b76927f0ccfc0df140c923e8947368e6f4fc35fd28ce93909cb3f06", + "public_sky": + "2233d7f91ff83b61a8a8d69845f887bdec7d23686d05868bc5505a52bd25b7b7", + "public_vsky": + "d2998d1453564b812b64f24f666ec4e2429c54a1bc4eef9693f1646ec97a902f", + "primary_address": + "42vHQVAYJd8HLQx9xT9pviYmVvMFQJ4yKQNxBcSH1dUiXkJyvQMgmErNc79j8EFLFDer1Ri4dWcr2SBo4vzRVnJb6QKrAZs", + "payment_id": "3980900a7f953299", + "integrated_address": + "4CcxRHz2uteHLQx9xT9pviYmVvMFQJ4yKQNxBcSH1dUiXkJyvQMgmErNc79j8EFLFDer1Ri4dWcr2SBo4vzRVnJb8u914jdJ2moJGnrp2P", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "42vHQVAYJd8HLQx9xT9pviYmVvMFQJ4yKQNxBcSH1dUiXkJyvQMgmErNc79j8EFLFDer1Ri4dWcr2SBo4vzRVnJb6QKrAZs" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "843JWdriPmBevyFDPN7tPVX62tuZQjLJnNhWczg4GyubgguVH3B5kwZMQf5rrQCHqNinPCYZy9TqocTX7mqiV6PUMAJ1Fbq" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "84wEc9ocM5EejZWtMJWhkA2akezzyqA2tLhhfzsMt1zGX6ipknQEuYfDjWRfg2yUeuj71k1TGmEcq11dygZKpSd936hvsLZ" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "8AWyJssZ4H2NhpcaLmbw2JAjWAbuKbLu59dgW6pA9UtAEXpSpN8Ck7x3B1ac7yyA7tge9xL1SYcNpiL7ioQgyhdKEARNRAt" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "82vmVdLznB3S11qcpx2kdA4hkzn54mfRdHAERfzna137FYSNbzzLbpaFy9BUq8vgjCSgB9c5Cwnp45BLWciGQypZQZhkdjP" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "8ALKEgAZsPaivEb5DbvjgCQQNzaD84QemKcQsuSv96SpKKMuz871cnk6SaHe8bnXMTg6ACKNc11fiYayiskHjBfjDUsSZ82" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "84fGQX4jrGT6zUAdg2nkUYhpspjPzCTDoSDdyLujMfdYi1Ff1n4Z1oQdrSHDR6Tj9Yg1KhfGxZpFn97G1aPra9xBJbA2Tt4" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "84QbJTHjV78efFKjHUczY3MUpZUeLKDKK5dWRv47yNPkP9oFirhiyJDdPzV1pSbmTaaiaetCxwY55EoM9s6JEgiY9y1cPVw" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "85wEer1e91m8WYKiK8jeKQDm8MpBroyuR6AhfB82oYftb6mggbcSoKnJ179XcdcZRJcdmsQvJsu1zXXvV3ewihHKDcB3nBZ" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "884ekA8oR8uAtK6D8Gohq92mqUK5HQNsAUbYCFHL68THj9idkEUTgjrKmhzmpSN36jN1VcSUvDUub85EyookmqdCBihwAYd" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "85PJ34jtrD9FFe7Z1is5GEeDaNNpGkzJ1GUybuUkoXnpi4cCjir8JemMS45qUBt5YdC9Rj3xnEcuCeM9M1XusQTN3YCLfLq" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "87QEQd1Q3hsAUpHRhJ1F2F1gx8VWwgyJhauoRX1dRhFjcw24D1q9Bcv9s1MVLsC99aEKRNp2ggps8G8h9Bz8KgzG9SQbSmK" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "8BvFVNrdqzcRHTYDxEfAZAauZ85GLraUcDtNVstgba6EKErT57M4H79hbpLoUqJNvh2dgLrpSoyVucPgS36rnEPyKVVKoLK" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "85SL3bu4YxVB82UATtdZVDPztLdrdUdxHV1v1LFHu82kEcxsU7wGJRKTiwQqPBrnXWhx3f8mErXSa7gyoLLPST73EDnvvfR" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "86dwmp85mAZR5y6H7wwboSJvZsigKV4WpfCoZ2S9vAdHEUfpAbb97CmfZaSgZvBZmvf6x9MW677BYATtkxq9TZBUB1YLxnR" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "89SoBWjXbbiRQoq179egtREqhB8K24kkaPtWUjaQtZSGZEAk52MT6RBU5dAp8F5KkpFrB9RowhwqveQeAsjWYMbuHy8X6ea" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "861d4G1nxL9iCA5mmDUgMrKeeEEkV4uAMZR1C96YbTvVL3B84g1zfFrYME3evUFAHZWJypCge86FY9CXaTjjvrMn6mEXxZe" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "85N8sdKgWDJULjKFEo7CLaLAMGFnqn3YuRaXYVZbYqtbHbEGjCEpfuMaPCnFK5AR4L3cgatnJrr2GdrbYG2pZsUHV9v8MRn" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8BAKJKNEmPhJYtrBXC4bBhK6HRmMiDnT4gfZjrbmntwViscqmMRnJkCRNLEpZ8ibg8gM1akQJHdQndkqi8LPy5C2Q2XGttv" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "87FeK4eaJmY6gtdzi9WkV86nKoae5cFaZYWvLiduhVEtMPj1dqBKoM9W1XFgckRuN5E89z8jn1ioFfgGahVaKiS44UpRzcH" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "85SJFH8vyvGPJRXBrVnUYL7eNWJJvnRxLUNAQPwN1YYpZho21GPreX64L5UB2uWiWi1U4kLBFwQFkEGSqrx2TdxFJmV8LHo" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "86poNQaDgMRA8gUT9LuDVoYffY1PvB6LeF5Jy8WCmV51UAXk3MW6ASydc5MGU9QuGUdvk4Cz3Tb883usuRw6nTHR9XrCHWQ" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "86sWBRjAYCxhkjSQG133N6C8NefWp9wXLehexG3f8KnBfEdHjnH1mfsZBYhCJeBk2ihCQQuUWLTQwc7eq8Bm8BpNQWbT82C" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "8ACid4AxWvxRwEZZKAKAw8PxqeEAqLU9VQFN2oFJsqMijEJHy28nud79N6NYbYp4NPGXySkoYugdNgMnBHnchKSy2Lcunz7" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "8B5kxUu7u9d99aVhdQiE6kJyKVhZoo66wYYDScjPKSzYVJJ64iGr6QaZwNa3fpD5Ja2SmANFBqFqcGUjxfJRfgGT386FU3H" + } + ] + }, + { + "seed": "ddde7fd761d2115b0dabad44ac875e24ea02c3653381a11366e60a4099954338", + "coin": "MONERO_MAINNET", + "private_sky": + "16639ec012a9da528ad4c65b109ac1e5e902c3653381a11366e60a4099954308", + "private_vkey": + "8fcd960a798fa45a10459929bafaf38fc77ec74c8a3f905b00d1051ccbef1d08", + "public_sky": + "2a5bc1ad2d8465e7f22770b490ffaadbf64989ba3d4c6fdf7386c424342ed90f", + "public_vsky": + "00c7afc79e58e5d589ccafc48b8fedc4414c4ee25ddd1973468749748edcf386", + "primary_address": + "43ED8E3xYLcfoAd9DY7s29dnudsqGqX2EeNkvUTYEfmJ3WYoeX6myyecib9izkT7oAZpvMxk5KbxkLHKNc9scd5cGBdHE4D", + "payment_id": "10a3fabc48c004c4", + "integrated_address": + "4Cvt92sT9c8foAd9DY7s29dnudsqGqX2EeNkvUTYEfmJ3WYoeX6myyecib9izkT7oAZpvMxk5KbxkLHKNc9scd5cPRbiDCSxwJBP89ifbW", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "43ED8E3xYLcfoAd9DY7s29dnudsqGqX2EeNkvUTYEfmJ3WYoeX6myyecib9izkT7oAZpvMxk5KbxkLHKNc9scd5cGBdHE4D" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "88yqMge6uUsagh7FDZR8ikPVdcFa8uetr7Mr4wZEysAG24zEGZUqPi6Uxmb5e21PkrTNQNLuWNiPJWjcKgPAD5sM1MJJqqy" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "88MYUi2LGXJ4StsfxhLRHNKJ7F9WQJA7pifLgi7hzVZBYXDAXBc51hmWAeqN7jhgfnEeUFxjETknNTzE9W2DSTKA72HeiaD" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "82u9bd9eHJE9udMPdLVGFN72DXyxSjwD6JmaP27cuWCjSnetuFzGKufWsFJCMWgyCfZEt1FTCwH25DTVYcuqt9qF3i8UdyT" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "898meEHKHcB4ecacDWgGU4M7Zjj8oM13mRa8VEUHaf1qGJXuh7Qej36jaeQ4pAwMENZ5jxsWpQBFrUfQUa9prPX7P23tRWo" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "83FFR2uutR1HUSGVmxzsVUCWXgpKgd2ZXhL9GGH3NqoYSbGYSdnbwfnWHrhFDeZmEejNjpHizuLKwdUbEKkXq4WjTe3FGBY" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "84eeFJUSf7GZ56EFyJ4xbX9TxYp56TtFM66Ka7zKKuTg5hAPb1UotfcQNEU5Q4qVqnHexyaV184TDXXXGPnJygs4GePaaom" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "82hdWZjig9hACyGHcN3QmcfsBrJBQjtq3fwT5ygwGswVHsukzDNq7Tg5GAzpRK9dJ2BhgKwS2Tne28H74ND8Zdnh41prabB" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "82vTDzXRE5cTcfbwFx5qagHdq7Tj4TEpxWQUKAHgTn4eVoDHU1LdQM27JcopL47zs5Gakk5NrSYoCBVEnNrnoaJz87zKCmz" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "8BwBBKLJmcKYrEg9BThEEwVPFcbPtcBp3K3zwyM7itLW2WNhhn8kVz83CXuZ58aKyxXdvAK8GYYhV6MpgZ2aPtHWBwwqia5" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "8C3vxJk7aCZD4ykW5siCVY2GxbfJsSdFwNPdpwSoBCj7BWM8za2GgigPmkrjuaqZXo7BsYHPNzt1FY5Wz76BJuHZBjKiyuv" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "8B77kqUT8kmWBG8SPuhueS4fBuZFNWeniAwD6Aa4yQFKcAjwsX85ghrQCHSSQUc6zpVP6uNBx8fhHUfiVuG3b8Ca6XGGEvw" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "84o7PRirpqhbxHpXTUtX5YRSqhgsAVn9sNSj4cDp1qMVTQCHUeWLCn9jTkKJ6NVDEfBLXSw4SsysFYvzsfiFPDEq6eQxs4J" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "86SzzrUawN5YivMdSak3LLGLpFD1eHDTv4AeM7VtB2QJ1x64xX7dQhmJuPkkpr3qi9Vq7SvrdH1bTWxMmi3mKUzL3Edd9Vo" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "834xrczNRCzQTWkc3wFU51ZiPyKNx3MM4Wta2P74ihQLaMDj2i84TyWL6idMEm9gVKZaqdGJ3xseWjHAEexgt3EFDDvF9Tm" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "8Bgti1R4ykubMaqXLELAm9iqtanDKMCmW2QDpqz9k8v8DNAyuDBe1GL2thTY1byyvj98xWm5Bd1RU8RkXy9GBjLh4FdjY21" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "87sSSyKnM6k7embFtYb7ikfNu9L7VzJfbUotZxk3QRHX2B2c1mpVitNWgVK1jXamFXQEaWFTicw9iemVrHFjzkMB4Nus3jc" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "85Y8p58psqTUyNvj1vKUAqhRSiaL6jKfBAHaWP3c672xg5CX3pWjGs69VsAfnu4jFt83MEuk6YYsm4DVBYjXFheyUM1wCVo" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "86hbWfQyrmhjjU27eqTYMnjHcWkAMvQhxddNzuBG2DdjSyLPLqx1ucrEvRpY62frCCcPiJ3cRRXcP5Q9utQtVrQCRhtWMDv" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "865DNEecaHZZX7QHmrF2V889t7hcozu2HQvWXwaXG78m3vLtdxgXSCZdQciAG7297cWRWMz6fW6JbP4VHyzxtZ6a9FMm39J" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "88H9djjHAfJAKitmtZ6DAzAu3EgSd2E6DENW5h7BQ8KFZwW7RgiLA538AG5AMPtizrPg37Tn7Qoh19bx2YVryf6DLRMxw4y" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "89euSMsYaDUanKLPK8qrd4YjUYMaX8U1t2b7AkMs2EAGJRPusiihftsgqV2SjProv6G2dCcw96RP8GR4LR7tgj5n7g6fQgv" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "88D22CsKvkt28hDkGkHcgk1nNheT5o53ZBsc2eWtRfXVGzS819TbiNqLrQRvx7fcXs8VCYLx5jUcnVGEArA2UuKPNm2kif5" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "86PVXYLdMzoLZ3Fm5gDXrNKcod3iredQJ3hhSV5KoUdybMHyLXZjZG5fjmQeFAEvg7iu3qgbznmBCJu6qFoqxKcc61RxSV5" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "89pENW2k6bNSWtN7WtVTpXSsRAHZKhppYPbdgcknmx72JMBqQ4H7AyJQWfQpv93f2FHNMhTBM1UzJ9tEidPGjn12DuBcwxZ" + } + ] + }, + { + "seed": "4475df1536909500d3e4add86b90f7233e0335c1cb88c465b543c4728b311ccd", + "coin": "MONERO_MAINNET", + "private_sky": + "288659baf9eab8dfc68a1235fcd983293d0335c1cb88c465b543c4728b311c0d", + "private_vkey": + "6e32f270aa8f6cd7861c19cec94e6b6e4710e5e85ad91c20fbc8adc970d91902", + "public_sky": + "a3aa44cfcf6fb79efb2dbc1e87bfa5ac86b674d00d5323747ff20b917dfadaed", + "public_vsky": + "5b18b77a4470ff631df37dd2e83660eeb0ffc158d8ff08d81399dffdc6120f65", + "primary_address": + "47pqN9kwVnvTbKMavbyWQUVrineE8k6QrLVCFAzfRbzhgheeLPWUgsgHaZRZkYjT6wgvc8F6prS4Xd9DNmAHrWKYCVvSNL1", + "payment_id": "d62e35b7f27d4412", + "integrated_address": + "4HXWNxaS74STbKMavbyWQUVrineE8k6QrLVCFAzfRbzhgheeLPWUgsgHaZRZkYjT6wgvc8F6prS4Xd9DNmAHrWKYJ2whFRt4LLb34A7vRk", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "47pqN9kwVnvTbKMavbyWQUVrineE8k6QrLVCFAzfRbzhgheeLPWUgsgHaZRZkYjT6wgvc8F6prS4Xd9DNmAHrWKYCVvSNL1" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "86FbrhHYtpD9W17dcY1RRE3p9w64RSP5j91j97SEW8f8MrCSTagKRwthjW4z5ZSiUGECbuPp7g9x74NibURs8bEi4jpge31" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "8BF5HnDzjQnjaVxXJdfYMjdvSUNKGJJYH83q6NjnBFxQ2qK6aunH1MmgYofC1HX9Y17hSCfGhCDeTgjodmucBgZZ2KHth2c" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "889XwDnAQya4SGJEoqtexDWUdRwq561h9b8Uz7C4Eh34BCbV2ixCLRH1F5ZtHSYPWVWtb4xRpfgnfK7uLHhHb2VMU7rGMqr" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "89eGy7bE5nP2Cvmui5QqNfdi8AGyVyJo2CA9qYCjm17rg7mMA8Zo5RzL78tXMsDupdPRQb6ago19jRPC4CXZwWvRBAAGmof" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "85HbBJBcrntD7e4XT3CMQgKTRLhCPocYuHqRT7UnwZf81jRAwNZbgNyXGDAstneYNgdoHFBUt9nYvAYu62rL4grxUoiP6CF" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "8B6xxE3Mus4DvdpouJveD4GW3g6BLUEWxRiUjxn3yvLHGt1Z1XAiHPAGC9x4ssueqPjRKJjnJgkrBeAfPYjgWUc7NyKtS1P" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "86LxkJooAmNG5GoVPYYycCfpAqQLWcAB166Jn9muA8YW1aUGa5YPeUkD8Mb4R3yzRq1nvxQTQo9UmVUhDm1TmaM61Nzf3PU" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "85RMC1G2csgd1ssdrWyuT5XhUMAf1ncB59RoKvuTkBi97o6TfFQAtvu2DdapPWcPv9DN8QEzfSVtPAKWpTYry8iGJKjapYU" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "88TzRfc4wG9fwUMk5YgDwr3twzukSFom9g5RoKdwoiHA8cv9XKNc6JVSAPMNmNUY7TDkE3FFmUYEjdw6AESVVCDjEBMpnPZ" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "82bEYhGf91WUNNLQJQV6FyKZ3emAAYy2j1XFQU2sLRwn7wdmoprLDajdznDA5o4znm6ricu8JUkH3FHbsyqaoJ2PThFRaQg" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "89in1PQ1wqS6MAvCEjDEzSRusCj3DxS99WcenCyKREYYDxdUzpmFYm3MYSbWXDea6ziB6pC1W9uH4c7THk1nv2vVUpJwDJt" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "83NovvjJgjb62VEjWNQ1Etb5DYcBhnwMKhqRq6vWMELg6Pzf1EFpjGkG9FKXkJaXpi5iHi4WmhpobAfgRuJeFUhvLFYjmub" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "85E11nYJqzcVZ6e1qTDhBhTjUqSAo5k7uQnyTVSgLD8HGYaiDAt8w9xaVhKacCwgmWeLuwr5N4UGECZ2s5ZUohHhDSmciow" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "8B8CHmirGW7gxN2juRMhyVNWZUXPQM1Qt7KW6oCLnunSJyt75X9HDFWhbD6MWQZMhmiPaTgDhGHdDVThEqqUajepLcPwQmX" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "83wfSR5fD3wVwnuPUSUJwAWFRNYks3KKRFx56GE8q9U6b5wbDJrsJGg7gQr5gq5j9dH43LDhANXeA4E4qro1qNnnBgu7viV" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "8B86hebcmM1QD8oLZk7c67QFeUsdqtSP9SpYBNKiobxx1yBwX77WBJjWUvKpZ7GYR69j49d9o77C2EGQTFpdzYoCMpRnxts" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8BhA2iwKCBySitZDQ6CLMeG8uANr9Bxq6FjH1po4ZyMsgNFS1NjKDEBYKXtDcS4v7jYyMpELkcXmR6wDH1A1L9egC91LnXY" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8BivpM1Q88QQKmfTTVcFjiERKXpkJmyvi1tGkV5oLSW35sQZvzYajn4TVMcxKa34eyRNYe3SFZYizjDjgMLZbYanA41xV1N" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "88Mqggm1GKhPETokAafffn6vSy9UFHFSCKkpwAzp5fFEhN23rR8gRPt8h9YDV8GCBsjDbuudYXSq2AoUYizCYAznFTMqFHL" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "8BPG34RB4jVAYHFtENLANwaaRrDjiHCmHEiTMyC2SumRTZso1v4hZttScdtM1h4gCc2psg9YK2z3k77kkhbNFjWZNvi7TpT" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "83FUPpm8E5GMqKngEEo8ywTxRJZiAH6WhRDmfZLVhcBnbZXiJuMJdb6PDrHH9WWeozDoj6pSfQpkjPYifHjVnVyPPdqEDEj" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "86X7pvKU9QK4HBEGp96dS3FYbdZFWbXVg5kdYjJPVXnuPyxMZSWLnaR6AqfNkmLbquSWiGFC2AjnMjWMQRUCFNmoBvPyxD8" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "85oq3v3KJEkTtVDE2DiUxhHji7jCR7dY7E1HJHhGeQaRcRVzTeZWrQcEQMV3sghfrv3PWa8vDaA61DtJbQZS3GG3CWjusCT" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "85GGUDVuRSj4c1H6LSa29aE8q9aUi9QAx4Ev9jRyGoAzPsBF8CaDU3KE8xnmXeSq5pKFHNZED8FLv69qNMuYEwnMFSbzSj8" + } + ] + }, + { + "seed": "865ed0a3d70f29cca2b91d03c5e88824c7e272fa3c0db18232c7d740c783f34b", + "coin": "MONERO_MAINNET", + "private_sky": + "d20ef92f6e83df6b49463f774a010dd1c6e272fa3c0db18232c7d740c783f30b", + "private_vkey": + "dfa9353a61fe998bbacc51cb5bf675b8cfeda620d5e0d16cea6505f21c27ee01", + "public_sky": + "edfca7fa3db37fe314dac0788b67e1344657f3905c82149a3f4cd76f899901f9", + "public_vsky": + "9aa69c78d4bc598fcd415569b0c52f26f77416ee875f0106a84e14aa7390b4f0", + "primary_address": + "4AeBx6QxLXYeyyXhhp9Hwv9k8bA95QZ39SoPigWGY4ZnikUQS9WxeP2R44L2qeoRVx7X2T2aq7JkG27axhDJ8Hi3UAdUMNg", + "payment_id": "0d96576315a05a37", + "integrated_address": + "4LLrxuESwo4eyyXhhp9Hwv9k8bA95QZ39SoPigWGY4ZnikUQS9WxeP2R44L2qeoRVx7X2T2aq7JkG27axhDJ8Hi3h9pJTFest2M7FVXCPC", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "4AeBx6QxLXYeyyXhhp9Hwv9k8bA95QZ39SoPigWGY4ZnikUQS9WxeP2R44L2qeoRVx7X2T2aq7JkG27axhDJ8Hi3UAdUMNg" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "89EfQ3d6KboaAf5axVToecZsabjzB76Z4GdKuf3WezWA8zkdwe6MG3BELrz2wF82jwZNLFeWSaSkpRj4T2EEh2Xu9ryKTgR" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "82kWGirGdfzAsSnzkj1JxMZLKEDnnQan4hzb82ANQoitAmuqzbZ9TQmZM8qYUBHvKhYewZmWYY4FtDmqW3CFYcsPENdpVtv" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "835njQGnPi7eU25rtKPHwR4oUHY4kkQ4N8tM8Jy9M29W8y1HNTcfBsdETeEv1reftaBP9oZYBjh6Y55EvPQEQZGKTqndcQb" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "89oAxoFKcdmM87ow6aEZc5ccctRst8JD65H2iKX7k2HcbXM3j6xSgrTFjAvqKQht624U6zSouvyXFbsxH2oSVf7g4Kghc2N" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "8AmZUuMKB6X9uvozHQm9X5MkuuPRZAMTYd3qiY1eiyZWe5VmmqK8XFuLkqQ86VWTk1TLqzKigTjfaJR3S3jiE87i1v6rgxp" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "84LjJSX9hUY4FmgpsPc3vCgoyxSQ3vkFoHA3T1ydoxsKP5phRk1dfnKSQkQsshLNst4o43LxzidPsPWV1j9rtQF35hhemwL" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "882jtyv59KJ1MHNMbsP51ggfXHvNdpSwjRKcFksLGod3g6UD4WJkUJKPKE6PJLYYHQgDdqvaemHAibwH441sgx3XLgBmqzT" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "8AqySoXRXXFHqSwrTdnZyQ6zcg7NpeV68cbEH4TWmf4j5rVqtC99xyj8j3XgadcYvBa1bXo2j9LTBXWcWoVuYtKNDrPAmhL" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "86dKg7veJ372Rd6P66qicEZMfcNyVYP8B8RArXeQpiw2Tf4MZneWm1XLGVkCHM8Z6He5ZoXjuyBM26WY7K19isxS37WJTX1" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "883nzwGd7hbHTWtPPPdThdhHKTL5J2CzoHARvPmwDc3yYvFTkZp18MASvfu6WSL7kNDUyWEmSEByXZLUzXod9uD2PFkDycH" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "8889pNM67P35PPUetpx1EnH7tVRfaaAky24K2NNDN2Hu8imhPijHuHvNhy2Rcv8WYfQ7YGq5HFc9KEYfekzCwFqiT3MmLiN" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "85tpXxQpbLr5qCS2TUn1D631AgK9jktzqEk3Sf29FXYSXBGJUpcYgTr2KeRU17rzasZT78T4QyWUJgpUiVKZP4Bn6Ydorkq" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "85t2u7NaVcu5SBEGGHVzeiR3BdZK3BqwX72AReWcSayZ869jzvJ8MWL9sFqGne5eVFRYVWAtr1nbzatAAk55MXMZEDEMpSq" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "84uiz9nADeV2rkzohvXnQqETmrSuxnBaqVb5W6PxbUWwQtQcLX7TzC8Z79dF7AxSvMXh3QvGTNPhLUum2QCm9K7cSAMQrgK" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "83ruoxiQf4iRsdXUjGrwVmREAXUd22EFj14wK3RsozfuhRHjuxKbkJkUejFXdNQG7mGFWwG3E97MwNxYcDQa7ZYR4Uawtbc" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "86jxK4hTfioiATQRbfKffBaqrfWxXfsnK6GHxCw2oJYS4UMn4akEuW3HanHkrFQ3YLbpScSfhkYjYhPBLfsKq5RR78GeCDR" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "8BwRpGCApEHWDmjmAnwdiL7WZ9vxw4vMNAcdV7zyPH5F7hWU8s8FBUtW6hb8iwpW6QbiiUVHcg2XfHbZGEYaLdLVPsE4maU" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8ADqfw78AeWCkgZAabMNinZMX8xMc1UveZtYt5YeuKq9SinfWsNM8S4jeZAmVSBFXsZtK2ZpiiNvWgNDXYFFu2F2TD1CCNz" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "8BRhv42RX5eTVybisioFe8JP4sbMLtgtp4QnQUQ3cSWhMC8MZgce7qB47ALavGyvNh4sLE51sUuEoLeSH7hotXtnSbzPCbf" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "89Mb8hR79mVTdXFfdMssMQF6GZUYVESV4UoAtL1ibz12c5Lwi74AaTESpmBZW3SSmsCVbSSTtLCugcT54ZqBymE94fBbhRr" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "87ZqtyhMZBaFbLyPa31EoyXUoLzsxDf5RRDjYsAE2D6bU4PQMAQE51AiPVpnGSbVAaikneikXW2DMYh5uEtksYyPRVoj21U" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "84wMf163vtkPxK28asWtro3zw9pD7ywPQbK9G6gwSW3ef8tuyTx4s69QZTtFs85vM3CDdr1PiAVh5DAwR8nrN5xR7Ng5y5w" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "84rK95Co3dM1opmFj8vMfK7ZsHBS3an9EDrjLV7F4SECSkPpYmsMoV819cM6NZQnRkHULEZmrZBdWBweYqGXcfRr3GYV8ZS" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "87yfpvhoZxgd3xvJ1wf4XvFT7e4atBJFfRe4DexRZSNq46R7ViF7BxdDJiA8k65fyd6xQJHGq5TWJcKBcZoQvV3fJ1o91LQ" + } + ] + }, + { + "seed": "ab2b4ac3d629035008b8ae8d1bf1fb78221934ab7d8d9a7c9adffe91d38720da", + "coin": "MONERO_MAINNET", + "private_sky": + "a268ce0a802114d725c11b47cd40a969211934ab7d8d9a7c9adffe91d387200a", + "private_vkey": + "3791aa90247e076bcc8539dc0bfa50f3f558a5f1784f15fd9a042834d94aa902", + "public_sky": + "ea1e2f12edad6bb78dc56fa609e3cd0918abd112b720ee65d4702a9671765766", + "public_vsky": + "f48d73db7d6a2578d8143d3d5ab52cb8b7d97ca37279d83d24df79f0c5d6bdfb", + "primary_address": + "4AVgiyFZmezXhhhcrKAnt42XFHDchMLtuJ2ss8fYzuMgJDo87BDLrZAMDLeYR6a6pTXtzroKkygfHBEB5S5uNggcVM9k2ED", + "payment_id": "7da17f81cdd58563", + "integrated_address": + "4LCMjn54NvWXhhhcrKAnt42XFHDchMLtuJ2ss8fYzuMgJDo87BDLrZAMDLeYR6a6pTXtzroKkygfHBEB5S5uNggcj4mxyqqVKmeCG3Genr", + "addresses": [ + { + "minor_idx": 0, + "major_idx": 0, + "address": + "4AVgiyFZmezXhhhcrKAnt42XFHDchMLtuJ2ss8fYzuMgJDo87BDLrZAMDLeYR6a6pTXtzroKkygfHBEB5S5uNggcVM9k2ED" + }, + { + "minor_idx": 0, + "major_idx": 1, + "address": + "84MNoCVcYJVh3bkdNDxizmEMXeG4V6MMqbKySvoFKbEdY2eeC6B6J8dPk7sEtnYB9pT38svwDzZ9bWjfUrtCQKfp3JDQQce" + }, + { + "minor_idx": 0, + "major_idx": 2, + "address": + "86Xsi772ZYVDcYpGKf9iYHYuFf3cfdGXXPnA3QxhZWHzPUogUoqL2EpF7oT1NSpbBz1FNaU6wGPsBEBdUNvFcVZpHdKkvKo" + }, + { + "minor_idx": 0, + "major_idx": 3, + "address": + "8BfPQWF9gKiec4ViSyF1751v55xvcjyrsYo9pMB7ynmkEAjz8wfd5oxbZL3XkxWdPH7NwVqwwHbnRY7uPy3A77PMErrfCdy" + }, + { + "minor_idx": 0, + "major_idx": 4, + "address": + "8B4ZYySoEVR57GoBv237QFVnFECM8E7gkB2zPZnEKEaeXs73QDtjcN7h2hXwNgdBZyWJPER6Gvr9papmgt5kpPNcSJ2sqwa" + }, + { + "minor_idx": 1, + "major_idx": 0, + "address": + "89ENDsXW8WfZxo1yKuonza6FNFSdtiQas65qJ3dZsJWUZ8D4jqAfFRcVeJ16c3ni7iGigt4EBWGaBGjGPFRD9c3zReqqhZ3" + }, + { + "minor_idx": 1, + "major_idx": 1, + "address": + "89ujR5NZgktLTELuW3ZBaMTzcDo6KyTJ6CfVang5cDG9f4QyxFmL3msj2zv9uJLqyQZeU5pgo5cFr4fdoswaAAxv8dz18j9" + }, + { + "minor_idx": 1, + "major_idx": 2, + "address": + "89LPYQv4fCAaRnTYbn9Gur5CnALzi8KrxhUVyvm2rivnbYw6rREaKoaKzp1PZHUFxViSrBxVjWa9kH4XS9UUSy8PUje4TAn" + }, + { + "minor_idx": 1, + "major_idx": 3, + "address": + "8Abg6MaoLDvevMC2e1VEUvYBs19eYX5z6CNsmqFzjRgQFvqGhaiLpVjRqx2Sq72kACcovs6tmeRwHGmumnNFsc9kBBhQ387" + }, + { + "minor_idx": 1, + "major_idx": 4, + "address": + "88Es4xV28Fj6uQjC5Xm2NcBRrYZ2xUZZWYfMNKHvZpiZDj4qbGYgNP4W2zNVncABzLJp7EDFqZvRsEihJ9Pe7wx72jrJgUd" + }, + { + "minor_idx": 2, + "major_idx": 0, + "address": + "83XyC5vKxX8P9Mbiq1mZAYN4kUqs9Evtd2oq3qxvDWii99mZ48AWQK3ZUFRGqjMfoEbxCX3TVkbwMN9bnH6EGNVjQf1Rw15" + }, + { + "minor_idx": 2, + "major_idx": 1, + "address": + "88efEZiZ1GiCAf21f8sAWKBM8ojYTjqwpcYEZHiB6cVtKG4ij2mG8HjSQusMHFFNmEc8zMYZmFFD2RGEuNtW9MMCTkHfQyE" + }, + { + "minor_idx": 2, + "major_idx": 2, + "address": + "88b6hDuvxGPHJXzyd5tDvtZCoD8fprMZb3PcWnt3t6sGK6X2YsqxwjtEmsfVQxzMLBDTz1GCaZ2iQe7abpPKUXph43xr92y" + }, + { + "minor_idx": 2, + "major_idx": 3, + "address": + "86nAZE18Ev9FURKhbChoW2PP6kPQz5i5vdqm4n3R4XERXny2ie5WdGJKb9bLY6D3CYix7cPrSHXRoVogNfY5K3Kd7HXQp78" + }, + { + "minor_idx": 2, + "major_idx": 4, + "address": + "84g8bb7hyVeVWSNnTfVvb36nGgN9iWwd645icn1gDyMjU4e5sgKJEQk9S6TGZHzivcWaWUmYBwUgJEsMcrA86S2PPTgmKUy" + }, + { + "minor_idx": 3, + "major_idx": 0, + "address": + "8Aa9LpLdrwF38Jnbe361LBCzMhGBr7Nykhp4JMPhJ2KbTsM562RVJ3AK1CipJvS89WKLVky1kuEzVTLWQFCo5p22DSYqujk" + }, + { + "minor_idx": 3, + "major_idx": 1, + "address": + "82e3iMBhg5Ef5Jes2DqNTDGmv9ZeWZjPP4dYYEFb3qKvcDmJQw61qTFYdG8k1tXN4ie6QxPzVchVLUU3jDk6KA2uGnKWQh3" + }, + { + "minor_idx": 3, + "major_idx": 2, + "address": + "84hp2YmA4zMGDgqaKW4vvz6fnQr7raqsPQsE9Ex8yydP8FC52j9RAvaXz6YzPNXKKP5ESfHPjkoRGjhrRiHV5CyU6xEivNy" + }, + { + "minor_idx": 3, + "major_idx": 3, + "address": + "8BJ8i2xm5YgT5nFDVxtBcT8bCvE54WcJ2j4vXEYqszYsjjc7BxvDMjNN3g1PmCftdb3vqLUHB1HVJJhDCKPKxz8XL35J3aw" + }, + { + "minor_idx": 3, + "major_idx": 4, + "address": + "85hGXLyS2JWRHGRuPjj5BG7g5PCzNKeNbVGixU16gn3TLzbknMS9dpu6jDXoc22dRWFBF1bEd2bmw4ZnJzfZkzxSFZXLhje" + }, + { + "minor_idx": 4, + "major_idx": 0, + "address": + "88iUYrEgRU7SqeZnLpSQQULMmR3t3qmxdHAfUpyePCuzHdezn3JF1Pc64XjZqLFG6Nbgwi8BzF1tM5ZziKxD9ife2q5emxw" + }, + { + "minor_idx": 4, + "major_idx": 1, + "address": + "8C2z1w83hRfiLnzWSdEWpaZoZVqur3grSTogLhjkiAteSfTkKaEhMd6gA3uGdcFcKFCYwqtmkbFG9CabG7X9JStdGvjEywq" + }, + { + "minor_idx": 4, + "major_idx": 2, + "address": + "8BxHtSeK2hEevCi5dihHtKbtS2cRa58zsPbomut1b3D1UJv4EWyRLqa5EzttQDXjf9W5wk9jK2VpVa6DmKVgDi9cBJia6C9" + }, + { + "minor_idx": 4, + "major_idx": 3, + "address": + "87MNUR3qCmfFQGnetB9BuxRr5Ht3Dn23t5dwHb9Wp1K1GK7YKdao1MQKmWcEiLufgBMNy5zJQPFEm1dAvbn5fNfdTsM7CB1" + }, + { + "minor_idx": 4, + "major_idx": 4, + "address": + "83ngR27u4F4VXcCnCoQdUGWkL4E8RHs2ETaobp6tjXzvC21aJGQ7dJaTjuJ3imhb9z7z42wKWx99XTFhF8tLauGXJ4tQQK5" + } + ] + } +]; diff --git a/test/quick_hex.dart b/test/quick_hex.dart new file mode 100644 index 0000000..affa46f --- /dev/null +++ b/test/quick_hex.dart @@ -0,0 +1,5 @@ +import 'package:blockchain_utils/binary/utils.dart'; + +extension HEX on List { + String toHex() => BytesUtils.toHexString(this); +} diff --git a/test/schnorrkel/derive_public_test.dart b/test/schnorrkel/derive_public_test.dart new file mode 100644 index 0000000..825cbd4 --- /dev/null +++ b/test/schnorrkel/derive_public_test.dart @@ -0,0 +1,4202 @@ +final List> derivePublicTestVector = [ + { + "seed": "6c0838e1baf748d731a864f0574dae7da39e4b6a623750391b21679cfeb5ddbf", + "public_key": + "00b963756bd8db54919a772a16ac50b55bae05d5c8876c4213cc43569a99d726", + "child": [ + { + "public_key": + "ecb3805c91d26592589ac1e364305fcc5dbf72554f142100c646503e378ec32a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0a858b725282471939549ba5edcf29ebad3ed1ed0bf63d399c2bdf1955874336", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "5023ef952af30de816967bece0fbc1107247181310c60f0ea62d2c43e444a30b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a8670feb362d6932d05f659758a2aad7a44b00d8361659b91627fa90959e0949", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "68c5a0cd42258812eb6562b6fcd02ddff377f1faf7a1f159e7d3090d49a8902e", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f0784c8d665b892701a27b0050f3b7318dfaaab704a8c77cefefc01f3adc493c", + "public_key": + "52f96a23956799cfe12583617d1c26634e82de65aaddcdb7921892a267f1a016", + "child": [ + { + "public_key": + "be83c7d6a4b678506d6f5e53777c061cee7f7240cfc587defa68b69a6dafb86f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0e36ecd898d3bbaf2bdf925cee7a3cb21a9ec350ac838d74a9b0f4fd8adaa12a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d4cd584ff5982047496b5f354662d0c504bd6076a62f1998d8e0876d139b1433", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "06d8ce928ec36934cf6aa257aa0f0235adc33c87b43333d87420329f9cc15526", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c86b24f99a6c5cd36543f7773cce3a31d02a69adf7bd3525ec1939329fe5496c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e9e1a123695ca65e14b7148dbdb44d909cd2b896802f57e271a891a60e1057ef", + "public_key": + "407f28d49b5191254c610b2514b76c73f1b4a7a1ef35ffce571829994604172f", + "child": [ + { + "public_key": + "3485603d2453669bff0cf02f51a74e869c1d9cd63bb3d04c74523233e0374e1c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0c41a1f1132b36c75023ca608057b913634169da48d5a08936216e8b75c08910", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e48dc89f4ffd23519e955b10e832098b68f7f2d8c6027bd03a8dae3f45422c3e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b665bd917cf86b05a2ce9aec228a02256f02d3e258e065b2ad7f05e3c767c86a", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "96cb56eb02203991e5d9c957b4aabe48df714a579c55b2a86a66491fb7049b64", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "8d51b8d40ee242e5ecd5ad1349d6897d42be8df9e60454386f01fb773f813923", + "public_key": + "2413145c232d208897163ee9a34a4a05da49ec43c7e4f3d672892ca531e63b10", + "child": [ + { + "public_key": + "64489e02279ba03b8d4159cfc7ef18840109cbf6e985b24c9186d6d6433c4710", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f2c4fad14691b6ea5f4195ef99a3d38ba5f41bf30e4a5c7d2537b44b3d8ba971", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0229f8feff696a80a809e7a54c484d11a8204eb6b94f31858211bf7686adcc6f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "52b5b184a8eeb1cb8bb83f0c1373ca75dbac465a1e299379bd4ca8f439bc4829", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c4e0ab81d1da56f1f3fec85a9cda86d2aa93adbb8ff569562f256a449c75ee72", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f9b700dfc6a62222b9399e053949c94acd858cc2bd6c76ad90a47bf24c264303", + "public_key": + "0ebb26326dcb77d828d9c46fcbc79bd3972ecf0da7fa8a289fddaad1c30ee569", + "child": [ + { + "public_key": + "7c4d667beb33f1b521ad886c498c4580adc8ec9db787d69c1d112a892ba16745", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "78995e5f77d45358d321bbb6db24f1e59789b1e5cfec7e2b059a7f50b0653f30", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b2dbd443af12396addfdfef5b837af6a5bcb51fd2201234230a07f1aee81d14d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fa21b182e72f4486cd64c890b0a00fb8ff42fbea79307f10e208f4361c8a732f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "32dad46b94f2c8f4ee3ddc234db95cab07e195cc0d420a3f3013b62f6cf8b874", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "9afb2087345e5b3761a2d7830f4f2db93602d13fb2880a1e823b6de246707284", + "public_key": + "648f94b21ee35bed44ce81c7f5418e93a7b8266ae30ffe16804685f8a0fc761e", + "child": [ + { + "public_key": + "5e2799bf6c10ed53ca316e2c3a0c41ea0ab692e35886821295ae57381960fd2e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "94bc3adaaf40b2f83536496e70844bca677fb3c5b76dd08e080c3b0c24672f47", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9428cb87b204da5851b3b03d45327f8cc615c5cfbeba035a4fdc64f03bef703f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "567344b377d9986b507fc8d067fddf1b80486f5e9119d35eaf82236fd7459331", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "80b110bd03e892acbcd6ee45179b0a9a1cd4de13a1199025e394cf59d53cb167", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "7b24639e2f7e2cc7c49b3b961888d21179058e6554f57802cca5f24218e622c5", + "public_key": + "f8cced72a98b0c00dde26f6d6f85625b78f4a67268b726dd4ab19377a0560966", + "child": [ + { + "public_key": + "8e2eb4cde4e0606efa97001d2b2a81758e1e2bcb42694322e25fc36e54f05427", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e277bd406786dbae72d40be09a7b7c9af70d81babfabc5bb1c7e5a5cc4386572", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b2ab86be6657bff2f1b3bbb533fd78f6d7b97d6505ebbf18ead9cc28265f9f08", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2ae5d629cb3c8f4f0d5f59e724366c1203e3302c93e7192b4d095fd35cbdae66", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0ac06997f4404cc5ef6f317678f6b41aa0ede21f297b3cde2f13750b712a8747", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "cd186cabdd4a3f1db0f881b83218edab4e592f864b7d2c5a75bdeb7d8204c672", + "public_key": + "9e8ba3056d69acd57b6241cb28b9b06fd8d94075c31c1333070bf877b348b127", + "child": [ + { + "public_key": + "7a59898773a71cfb1051f2e052ed2fc0c136f8a8d333864f394855d60fea3808", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "caa385a1f06b99bc8639e487b196e1676980102c265de796a599261ea3094501", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "18ecd567909ec4183d582a84b3fe47aaffa33eaa7e7f35763850a958ba0afb55", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "de2dba07a8dfd00a9d8a79089f08403f4cd2651dfecd42bd0b369c2770ec6051", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b2e16216482faf2a0392e66a6db56d9176e1118dac57d9e00a613e7258004943", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a508d4f6d43478a82b5833eabe3c33d01dafadab05143f8e1f65acb49eca5916", + "public_key": + "d43f4b86312d46c544009f9402bcd6a4a2c3d7bedd811e2fc7e600690e71db15", + "child": [ + { + "public_key": + "6e7634e417230d2f2a1dbeb9f4b0ad98d8c5fdb96f3874a65b5cfb0868025726", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "08af170a2fb2ef67f3359b849e190fe3cbc085b492340ce7f0353a90f1ec783b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6a38bcd2dd4426c2d29e7c0cf582850b8205500d231df7b2946ce911e749f265", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8cc90e58f61ff6e079f55bfd790e21831c0e5f3832aa4f86f935fe8483cdab3f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3068a509f4cb1745d23a9c404fdad77804b9985225967586896938a2b36e520a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "596fa684d4d0b37bdef0fc388929a77e38f33b870af9d17a34199af9cb021b8a", + "public_key": + "142b9d1a4d05ff5c0dccc5306a6502a234ed7c2d6b8f66de2dc2fdc8983b882d", + "child": [ + { + "public_key": + "245c7ba71470bde4c7f30083046224de92b01d9bea8eedbcf3f6e8245cdae77b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "bed32924687ecaed1d975c58529a8dd3d3fed3280ce1edc516971ffdd646b203", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fe6c410d052c3506fbb585e03b57bf477583fd31c47d99b1e356a39ad372aa20", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6a04faef568bc9eaad1015e0d26789e004714eaca767d7a0ae3265abcbb11a0c", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3a4134e7cab3fc85a39762b3111b82f27cdd40ad5a05009a20515076d3db3428", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "847ef02043fd225dbc1892f5b0727f0c4c2cca7aea2b356f28cd80103d7d899f", + "public_key": + "acb890599bb909317a3ce54b214bccdcd166eb834f5e56846acfa453a71bc842", + "child": [ + { + "public_key": + "d2ad5e2bf86fc79df44cea964c082b6358c2f5b30a04d686fa9c3dc6b902c54d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e41f81f354978157731776c849faeaf618a0cf6c0660bea5808504f998778318", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d650b9aebf07ebbedee9166e0f4b0c16fa1b69e2db6ce9d64c1791cba6a01247", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "deba852f676eec077208ecec2cf6f4727d1c758870533d8502051bc9a0f9231c", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "281a701299611ef5bda62f2c80bbfbfb80447e8c39441f1dace461718a3d5a72", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "20f2495cdf0c73d89b224d42bdd73e8cbcebc83caa4d10226a423e4734489f97", + "public_key": + "164f93c7e4ea1dbe92948ca038bc19269650f03fbfb97972f31bd34b90ebbb1d", + "child": [ + { + "public_key": + "6635eda726a136d41740c4c6dd69775e989c18f14038231d857692830c7c5e17", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0a23f64f63e46479c1af6177d3842791ef2e6b97932ab45e4a2be9c6601c3a2b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ecf20f154f083ee36892248816d2793f90ef92127593364da6d1e3ccbbe4e637", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "68b194d69acbd28752bc49d97aba5993f67e400a3406bea226eb3078fda4a94e", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9e87629277e5952e410a8ac78b2fc0b93219ecbaffc11f55b19795a8b70a6372", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a8af43c673c9b708bf6c048494c2a8dd7cb654b8300a2db26b883b1bee06f96b", + "public_key": + "e057df265f78e51a9a4f71480b3efdee27266eaed45a95a7cc7b49e243f33361", + "child": [ + { + "public_key": + "f0aecb2af44271d23b49f16c41dd7d8d1ea3c529321c85bae894507474f7275a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "dcbd7e79326ddb842096adc6ae41c5aaf4f2801077378c991fad8c0ad918492d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b03b696082aa312b07017ecf9c869c4f8554d4bc422245cc363c13abe924f631", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "aec65195108c3ffc3bf091d4ba869e8b3480089f8aa48242d9a6823d29dd414b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "023779b36da1ad5418ac4df4cefc52200421af38a0070b22792c104775c46e7a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2feb04a5737f070d67f20d7db46e0585379a01ecd66fc489892126aa2a922022", + "public_key": + "54a502b5ce0388b9d9d1c9c0782ff6d46257f04ef28f6038cca3e8c90a40e065", + "child": [ + { + "public_key": + "8ca55b45442e8ee5bfac7f17281eabe3ef5409ffe21e5fd35aaa59adc633577c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "62fb6df9fa8e04cbab9db13bbd750a94f4b761cff0cec0c56a6f8ff2e5a7cb08", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fe115d5b46c30c8d3fbaef69f6a87ba2eede9b813d0e7ab28367186470b0fe41", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e2b570957ca2c7d1a008f8bd6d50210d2fcd507544f5ad2f9ef7ac66538cd80b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "76d85c9a97eed0d04f6542030aaec7ec39768ea7405ab95fd88a8aad95eb6851", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "81242a24322b754d8962a3a93e06930281d32cafc266fc6b3e3199e17636f824", + "public_key": + "4e6cb936cebb0145643e146cb278611e6c88656b5f56b0c6488c52f98806dd56", + "child": [ + { + "public_key": + "22cb93b8b2088b978b6388b3c767958b2fa4d1c7e139808d148065d436e39557", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "623e652d6ef4bff317d8ce3640679982875992f5fed83f9e2c7b98191766221f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f8a9561287d18384d55aa1c62a7b49ca8d84f5339e0a2c5b667d5cacdaf21747", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ca1c3c0dfde08e5382fda1d8a9b3746c13db1051e23436615a62f461dc10c629", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6a48704a1231ad9dcadd5ace147fe506bf879b9def6503bf5328b655fc8cca39", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "ea83105ab3ca2a82bfba03f247421071ada957d894901fa44ebefcf4617fcd5c", + "public_key": + "e4530ceb01f470864ce5d29351f911bc7d391616cf5ba379e625ee488b91da2a", + "child": [ + { + "public_key": + "dcf924b2daeb1bc99e5303a3c1eefcecfe74b9fb04f0eb42c1328b28b7d0e927", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "44b991b5c3ae82359746eec85bb35aa48ed5b794218095cca00b155a97110c06", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "38e9da1796980c75e2c9c88b72620d9dae2fb5dc4f50a6b40f12f8a8927b7312", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9ce3f1a007eff71c3bdb9e07b2f5cb4d105603f8de7595edacf41373e3adcc24", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a66498b9c92ba0f1b806046a42188254a96391a95357eb220a6dcc83c5468634", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "58b622ed7138966391d4427ea8684bbb1052ab2a90b55fd1940ca4d2ad688f83", + "public_key": + "0a5bf5c7005c9a452c3dde73b215df6ceec2f9949091fa7d07d16110d94bca5b", + "child": [ + { + "public_key": + "a8d242521fca1e2ec5526940f6d1cdd2381446a1df7e800f6e7806c50e08453b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d0ce1bb3e04f1a79c12b592e8993bc36b16f74c678490d95314c954473b37e61", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c2c65002ca5205c667928a916ca9b6108112eb0978eb088623d2026c78b5d212", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c80ff9944fd76d452184dfb0eaf6fa5a695fb94cf4554d9ddecaa835a82d8a11", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e2c70fe8e694f5066e8db3fc71bb620631f1c077d4a4708d3e5d28d509f46142", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "4da5edef276ef3aa300edd92651d0181089f3c1a08b63c43149a5a8595d541aa", + "public_key": + "c8bee112b2133a84eb06459d851616f10a01909ab8375edf4308ff03f265792e", + "child": [ + { + "public_key": + "f41adec18aab3794673e596a69b4bee10a7c8ecdebd440afb4cdf0c1de770b04", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "445782b7bd76fc875dc52a5cbead5be4fb72dc7f8196f79ae22ab8eb1a662a10", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a6eae8a29b98eb84741131c3e5f026dbcfe6633fb11ac3e9c187fe3e1af3ff5a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b24de12f06d1dbdc943b1fdbf33cef0bf07940cae7e6165ebe31ac08aaff2206", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6874b38dfafd365700bb50fc77929982edcb82f5a12e685f626bfbe73b1ecd25", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1bd7fc652fcade54d1f333429519599fb22d4101fa3686788c0187e774c1a161", + "public_key": + "343aa0df6493ce4b4004d6651f3a9dd69d9e294e6f72b02c48206893f7f3a067", + "child": [ + { + "public_key": + "b4a55649e588d215c4446680ffe5908900d2db439352b64aae3433e7d04e5e7d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "54101867d42d5c7b2838a0646fb30b87b858edb278c211e72b4d83e54932fc3f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d23126869ea4e3a42a4da37b23e137c6c428f33eae65db7e7b463e4e4c058b15", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a4eafe503599bef04262c73150b4c713a07e9fcfddc626be55c8e2207d417d73", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ca2ab186f79efaf81f58dd8711c8efce2bab241a46c99297cccd6c4d373d806d", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "264bf6b6d5bbe91dab559577733ca114d286d1acc3d6d93eac52d140674731c1", + "public_key": + "d890ab8be3a0f10a13c67484546fae7dad62385a6e439a0533618b7101012375", + "child": [ + { + "public_key": + "2240b574a548403f731a91b122fdbe71c816a00caac79970a4c3737d29ee480b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d4e5aba6664305db3c2268bc1952ce6698f668ff1af6757b031515308c7ed116", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2a018e1a298999b874c50b99a1aae2d363466352562d6b4b2a79c26a1d06c14e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "94f13da2588af3219f36b5f2e9f02ddf4510dd095ab185dc363a8a20fa2d417b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6eedc75cd7513e42a189c3d27ddd8136f31d9bdd4910e2bd9395e8d36e5a0c3f", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "76eb03898713444cb1cc04b2fa9597fcf310d99510a1846e790511ebb7417238", + "public_key": + "cc2846cbdc6a3e83234f1e5832cc79accc2c191ca66c0624500566bb3a88415c", + "child": [ + { + "public_key": + "bc0a9d388ff21d1099efff5d052f2220f984b352aba2f01c8838a8a83b089408", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b65b8578bb1c44f3583bd9095d748119cf785b419540827a74bcfbdf5f24da7e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b4fd4024a8a16d7e76f1b05666cb1c6521be8ae379a40e144738afeafdceab4d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1c6d712b74741b5dc1d5b763a70b0fb69153bb334d5c2df44e79f788072c9d6d", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fc7865a044473a8ebbbc44727202d686792646ee116a17da92ee1f24bc5db864", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "293174fa38d7df59dd3ebb2902665a1065bbeb80d0c209e99a918daa616653bd", + "public_key": + "d4cf323e00ce65ed4358b49dcc14ab8b39b2bf87ca321daf6c657ba6d262e23a", + "child": [ + { + "public_key": + "24d7b7d37a90e15fc85032ecb897f97602998e0fd084ac790e318b80a8c69439", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "14bf81908fd2ebe978009788bf942ee7b1a988b2a113ae566fc12f3f06bac16a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d8dca1bfb85ceb3027ed455efa54baf267352dc6f3570c4a5048b85a0d4ec052", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "12d47277edb3170646668b3c8fd693202d1c284d27d9627583fac3f1978c4542", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3a799c55d8fe6123a34d3323406980d47727a87fe6ce7855ab008c599709a860", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2c447d0a70a0c8736e90608c1d25dd39d3f826f1522cec9dca762a1f8ab6532c", + "public_key": + "d8b58defeae4a708d9dd039a36282ea3ab30c2b2596468bbd0a25031315b127f", + "child": [ + { + "public_key": + "b250202801c117556a5500c93d52464cfc2a8b7e0f95078194fa43f5e3537255", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0edaf046b7e26f14b0d674aef371a3c13f99032ed9d1eb2ba1e788cebd841b23", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "54ffeda243fc331d5d148a88dcccef2d235fea9316228ed6c14c50845c333044", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "487101e70eda36bf7db9dd4f0cdf0e80e4c9219680a2831c01e37178df431f55", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ce262a1819e03a7ce53fbec4d586e962d2e68fa0c3fc8a26597ea902164e1c39", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "7d03ff0bbed716d5aac40c5a101eb1d3a3cb1d88e0eb6ec38def0f21a0e6598f", + "public_key": + "32472509b43b66d678b40d085ee8d2081266197f7c879f3070b769a1dc7be208", + "child": [ + { + "public_key": + "98d6fb4d946009daef9dce57e88374c84caafb9bf98584f0195a6a99807f6d31", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d28295debb8f1f7313b4a45241a69164b6c63ce7327c9d669c119638f9643a63", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4c9c6909a561d8ee357068c4f123742829a4d32117a87751da221da92c6dbb6d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f0793c5d2197cf5582ae90450806a0aa950f7dc47d9b532c5bc1644067ebc148", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1ccae02f76a5d7ef96c83cde297235f387bcc03c13b2a90dfbef7d5d22649c12", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d37e6edb177ec75f15c771ac58734e28a38b4464df710ddd68f05cc033135036", + "public_key": + "56b6a3abfe28b3f832f7724ab71d2bd98ea0b172d0168c2f08c1f1c90daa7333", + "child": [ + { + "public_key": + "b2872a2d9687451c516f79055f14ffd74498f8c754c3f89abad544df1c428f31", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8a7fb149d4ff6d0c2e5ef64c457fd67cfc1cd7b408941f5dc3745e38baf4e25a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "baf187de0334bb9365703780ceabd7adad8e038949750c630e3d765fcf3afc3f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "466938befc4a0fb37c878d1d79f99f339960d55fd2f8c28e0320bb4767024908", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "78714c1701769f36c0cac7126def8da5639c835c86a527ed8a80910dbd485c09", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "8e1801ef1313e63d8ccb849dec76a55d4025f01328854d13137b38885b44de19", + "public_key": + "a6f5c8ca8456f270297003f0d2aea0a41cf855da54f2fcff9a3cd69f17498a40", + "child": [ + { + "public_key": + "68214807d58d29734bbf49496cf50ffe0842bf2519cb89a7a9eacd02198d152b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "40d7428671d2c3732e340229a500f68ff4256c0f3588c76fe95cef34cd58e107", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ce375423efe73b9689ac0fae2815d851c637e88d4fd1509ad74bbb691866c04e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3629b0c8d017367fb761a0b339ee3c774d713f3694d0312ea5652dcd11dc787b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b2fd9900896a48314a84bb2474c7c4fc900d51d962077b0bd72acabaf2a93c4e", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "5e5cf5b7caf634dc06a5ee80eeb4ad89a22fd7cc16facb5f9afb406518dd0dfc", + "public_key": + "6816f0ecb249d910ab3d628ab92966c34525a555f18b08c07d62750736be4622", + "child": [ + { + "public_key": + "f286a28108a67e448dce21dccf992e19c73cfe9bc944823932f6eafc66537e4e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b0f61d3c198e142bc86a68ada22f9960c3b7c944c2b0a1264a0f3b1e7b460f65", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ba83bd8b844fcf82fb8b7ffdf737b583ac6efe6a82d7f3a5a10b481b3858f373", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "464cd0c4ac26cef4c12aa9e39da4b24f5adedca991365ca30da1156afe053f09", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "108bb1a22a9304c8cb50f5f6e7377a2f8fe0b2a11a6d443f55d0de2967182b0a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "31d2536a59f88b0fc96cb5196162b780233deb205c0ef61653a5c3cc3f5bacb2", + "public_key": + "4aabaa5465ff2921ab643f583c040c953d13f3bbde2621d70e2d7a3646d0e101", + "child": [ + { + "public_key": + "8e520fb6e767edf0e033ba230bbee1919ab751fbf4a529e85595e3e322007c68", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d2718dbd6f8eb4a4c4b1f6e97cc1693641cd1fb5cd6cdbfe556fbee94b358354", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7e4ae6f6a9cee5560c2711662e8ef2ee31a252948116e88d59247994f5da922b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "446f144b3eb88ac1675fece4ee7c15e1ad34ac27570f936fe978da94f20fa306", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0ad76cbd5e586f1669e3264188b53ce8ce37dd3ba4fdbf9721cf46db9b6c0f35", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "06dc41bb4c5a9b10c767cc9c61ad9853621f939d5a3d294f8351e9ef1ebf1e3e", + "public_key": + "0c4c059fb41e046046a4aec05a3be60e7fbfb8c111a2c077cf76596584ca4802", + "child": [ + { + "public_key": + "7621dfc4b97376ebca60d51f7051c6f8c2561cea6b3ee158bfd9e68b94b3c315", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "94d75b2e56f5e59e796f060cb1695b06356ac9b256e6768aa29f4afd7dcb9743", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3a17dc20e34c64b55c91529299e10ab7809ac9c14610bff3636683ff342e2975", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "da889aa66f09204d43d03c1440ee2e6794c6fa0cc439cc037380d37e82e85b41", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9296c6ddc5f1e75a2536530a8712a01b8df4c3ec287fefb71e6a3bb8a3c75c64", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a33306ff1fbf9ffaa47ff8d0e7e742bede207fe95de76f7c9caf23c1f2ab2aa8", + "public_key": + "ecacf75e87ec8c0c1438657894e73e94c56d93aba2d705a6ec9315ac230b5c37", + "child": [ + { + "public_key": + "42eed4d6c342cf4700dd04a938336ffb13360ee668f4f273d8864ac4e0e3f42b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "62e38f4b1781ca7a391583e77dfc5e7792ea98667a7669c65c7f1c67b67eec61", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "380cc765ab4a44e22139cf9ccc8e4a2a8f206f6090e0bbd8b431c248f5a36b46", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "94a377a54f0caf77a16b1f4d7cca8065e2f75caf45a960db47bcc39abd092e05", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f414805cb68d9c7ef7cb2e09b2e21e588a7d54a0a7bf945bf9d5b91641bb2e29", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "86afd3c3b2818126d764fc1d56a548691b60c1d5a14ba738d4742a75e7785366", + "public_key": + "56b7ca38fb6e21485c6c6b07f073ce0c3576016905a17d38faab7ce197dbce21", + "child": [ + { + "public_key": + "800af1e265b3194e398deadc2f53c1f0d52da659e82e8e238e0574690a18356b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "08eac33d36d5d95c787c95f70d4e436da6bbb2e7557b25ae7261c8b4a5099048", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3896bcba3d2b31121a3a01d36e04f6dce482699cab0a7ef6d7626422ce800419", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f2ae315fe68e25fd989e4750ea72c5dc555bfa4870aced2d81c73ff7e7277b53", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0e6e7dd99a265eee822437ce05960c9cca4764226d473c0aef3aee5a7cdc0664", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "22affe722acb52e68e75a4f460c3717a36393c92946d738a9b4787f7921d9c15", + "public_key": + "24d73b7c11fcb0ad5ae34e1aba1e47d995b26df9db1d0f7bb5a9d5da3289e81f", + "child": [ + { + "public_key": + "1844cc224e67bd42df9a92fd4c6c061eea54652d6702280c267a34798a01c236", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "321adea0b18b5a416e642a1099d3e74a3049024835c3da736dca4ae769bc5e22", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "301fd977f2469ee408eb9c70f9cd458d785258b9f148d712472a52391271115a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9481967597a2cb1895d850f01748e591ea065ebbaa745e1b6eb3b2fa9b801523", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "045af0eebd95fa027ec814106aed9b893652c4219c28753fa89a8719aa824964", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "15c971d4708ddb210644cbbc334088b1fb62401f6765187c3bf32adcd00f809f", + "public_key": + "50e5eb0100dcd4c19ed4932f8110af444c87b9bc09b637d723669fd22f176c67", + "child": [ + { + "public_key": + "d06194b064573be93998c887deadc0c6e7f2ee1c9bfaa7d2d545e2ae4837f96b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1041f55eaaab0afde6c2811bc4cfc85cc43aee8ed9be5d5c1f6709df4b3cdb3f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a8262589b72b316f32a51fa24c11efda15f37fc86f7dcd9660facac5e5751f20", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a2c1a3878e4abc6080dfb8f3c7a1c7c6c02744d3e011ff40a4d94bfaf9192919", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "deb1f8873103a35920aaf1facb7fa250de77c4b714d08015f1f528e5f3acd103", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "0f7d2be01610f755c8617e2ba84a2f3c19db98633aa4beba08edcccc3ab444c1", + "public_key": + "18b58de40f785aced84b2c3c0ad94d5abcb0f9a15e4125d88f61aaa5ccc7f828", + "child": [ + { + "public_key": + "1c7f5d72efc1aaa2009a91d0a6a6ec01afb9dc8bc2190e6f0eddacb09f571e03", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6c99ede0efa48bbadbb1820ebedcbeb1d22c828ca9f12cce879d6d28f41a8248", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "582f26d038151cc90b15de2df662f4b2254f84af1c227fe9c9fb124b8523a204", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3c4e971914ba228046d4cc85e5ee2ec6df6496a92ff70bc566129a70d420d30e", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3a35b2a6b0d862106e7f9fec00e173aa6b1c5d45629f52fa25b5c144f9a27554", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2e448f82f829c3cffad176dd0b07b9e5dede78dfbe7abf0b5883edcf3bd68c8e", + "public_key": + "4eaed87a41a3b902eff407b72a968441cdc5343daaedafb059aff85a9e209d16", + "child": [ + { + "public_key": + "38795550a5526ab9587d5f1b0b223e665093aa799c31262ba52a88e8112dc66f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8ce95d7b16d59be1a0223bdddb01031cf69ddeb7a27049c1055ce8093cb6dc51", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ba34343f7e0c79ebb8fb9b8e626bdc6f8858432b3996832cd44fca4ac9ac7819", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "82fd1433753a0008a46637721b1ea01955332635c575c0ed79247026040c6b24", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d2d0ecc9dd015c0f0c3833f8cb179837b23f7a26ac5523fd6e14727f88b0f031", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "64a29bf0f7782911e6a64cd95301b5f41794031a54d0634d305ae29a1e4df57c", + "public_key": + "de3f57de2b4161ab9ecaefa2749121b8208d41f1ec44c912643a944aa5529c42", + "child": [ + { + "public_key": + "e0e78048200671eac15c6d077d6c90a806dc1384bc96734ef9e135de403b0b58", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e685ff00f8ff1acbf83cdf5ebf1e430c2bc04ca39a642f5cb8f85f374bbc3d53", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e2914ee5738e488c9d3e6e9b26efed1c9f80dfb8310e2b8b2b24514abb080a16", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a02603a8628b56ae7610365ee80c0b7dcc24305e7ec98f79ee30c74366cc2b72", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "507aae2d63c43cabfa1d19450a25b4941e097d3ead8b82293795dacacfbe1e30", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c4071aec9126b27ecf67e582c1c81d99e0d9e8db927f89c31f84dfbad077f133", + "public_key": + "947bec0d6374e801f24b1b79fc2cf5011f78ba9e0b4e6c6df78de1dfcd0c791b", + "child": [ + { + "public_key": + "8c1f606428fbc2d0f940c6a736414dea4b2a9a854aba8929ee7c865c18f7e945", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2c6c606ef58daaa930410a2e6f8af72f60e8af6c787474f3780d83cf060baa50", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ac5e5a58257e9bee87bdc1d429c7ae21cdfcd23793df0e3e6aa2f19417e9021f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "703627eeddfc4f51699e8290eb27fe6668f4158e62e9d07677fd7ab174ded52f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1e6a9754aea14bc6b3607d21cdcb62797c203a16342753170db108ebad10782d", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "da66948b72516575dbc6daa2b98cce6eea3347f6c3be39253979d91af71fb23a", + "public_key": + "ecd4bc7c50e9dd00f557714fa70a0a064c69864318a075a27514b3a25d53db35", + "child": [ + { + "public_key": + "9eb62ed2fc6f6e69205ddc3801cd39aff57f1371777914f54dee8e6a9a56d254", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "aa0bfaf025093c81dcf6d1ebed1c4a95993c3322340d4cccd2719d82baea7d4d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e0e361588aab07504997f3e955279648e13e216db3d77b785c5f109a34826e41", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2e96d336e3a26ac5a642d687ea6aca98032faf7930377b2f4e675953b7ab3377", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ce20438719a17d0ce1c01f9e642c099996ee2c9404eb6072b315e491f248e301", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1fca9f14b2af6063bd024c0c17bf076f9d7efd319614f0a5f302aa338f773240", + "public_key": + "067518d35944f97099890c80e7c9edc4bbbd507cc78aaa0db98779e33cfb4b16", + "child": [ + { + "public_key": + "d4758fd979e5e46e03e1c4b0941fa167142c473b7a6df4e736598b5a61647e11", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2e1397b8fc9596c294199d77b9fdbf52679c8ec4a71fb65668c73c2b26e72758", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d4836559802343eb0dbfe76525c5c1bef71aa0c05b6a3a2ced30e46482f58d29", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b804e206108595cb0418ef0d2fbd22a32635aae4af855ba1da30d97b45fcd102", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ccb68e4d97a011b4e62b35848dc294e1639659da022150919b4ff555cc3e536a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e3b3b874bca775405000698d3f27ca84dfb937f8d0a9c08aab3045fd1e2fd745", + "public_key": + "b22ec8ae5ccd61fe8184ca940d86aa580068e14645f9075119ca4d1e555cf60c", + "child": [ + { + "public_key": + "24326eafd38e80f59c0d491e9fa9067d4d7417bc47642700b155468334a69475", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3093dbfe9fa10d1c7e5a21cfa5bc4b24be152c692a5bc45fd3b63dd4906e626e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "52c9ec41c690daa75ee9897f8dc08455c88e679dd18660e1cc51a3aa4f125300", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b0a99616a983c4832d98d7d82da9c52a33ce411426d07bc0106c05cff6ac3c5a", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e278ca55fd95464e5717306f7b7cfe81262c8afb1a1207bd89d0baca2437b00d", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "205b8e6ac347bb0f5331750617b6ce1a8eb9701a03c6dace0f168c3c4bb1eb7c", + "public_key": + "9e419cb56f29bbc5b844333720f30a06b73e09a23ffe463f997f6511515ebe33", + "child": [ + { + "public_key": + "1e891f1e1d1a7a37c168944b7aea532aadc015dd7d2d3c27453ffebbd4ba997d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "60644ea7593ac12f06334fc743fb3d828e147cd09b87bebb083dfa88f8222c4c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "24c62a7184cd75a79c89b40cf0f3cd585e579e369e9b81808cb2228cfd3e1964", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ceddd685d48c249545c4ee89d405800a5bf3ba03971783d6e99fbe56deb7153f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "64a1d1d9601876747b9dba074def6923dbf8f068a7c5d6115244ac8899596d02", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "beedfd9a0145e51c9c92baadd1430eac83441a2b539a52bf13d4bbf1918a493b", + "public_key": + "c092ea80e424798cbb5a7503ae8edbdc2e4986770dbdf9f1b81ef91568937f22", + "child": [ + { + "public_key": + "721a4b2a8d22b1cf47d95b5a2f97235e58da579659a0bb406bd42a7709b48f3e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "367f0cb14d974861b639dd51e97d0b98b2f4a403d51e0576cf13d9b477d0a110", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0621a3f33f2f9498ae881d9aa61bbaa111e465ed5e464999d785f3fba9516252", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d6ea95cc271dd1cf9785653ee36e476953b540eebf9be3dbe3d7ec2b3a7b135b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8aa5c7bafc0486d1c33d4f1e5e48c685680a5e857bfdea1edc63926567485715", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "bc150106527f3b6ad870b6e014297bba393422f4309c280a43c819e0ef7090d7", + "public_key": + "d07b8af57c11690f1b3c1a7c18a9bad283858dc5a90cdf43a916077a5a4b8631", + "child": [ + { + "public_key": + "0819be64199b78675ca4331724c7361397142f578253321b4f77d3ed803a4412", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "08cba9c1d5c45a77f478e7315e861bc344810aa74338f34f68b352f1677c615d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4efaa2e1938f4c574cadeea9b03118f9e17e1bff68bafc2ac17e48dde283987d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "02c333bdf2c75dc09c7479f5aae0b7ba4a23d92e1c1c2b5ef34a52532de58049", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b202997cc3b8465517ceb7f7f9bd8324ab6f6003fb93fd0235dc2ec0b6287c53", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "9d98c1fe8ddc9899e80b4cf6b7090e2686344a418f88de4d4f493bd6d6f9e395", + "public_key": + "34d13bba3ec8335b469617f9f27bb47f5046ac801d9111ee90f58491c9aa876a", + "child": [ + { + "public_key": + "a80f0ee48d945feb6a2dfbdd5983971d57a01ed337fbf47765df8ec0f599732d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "080620066d083d7fabfcb6cbfbf3a4a4c7a2c127f8d165d2a172b2959b576d27", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a2f5042b6658042d64f48076dd71e454c81612f2e90ad4fae59207fa41d21336", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9c47d3530ceae2c4e69028a2a0549124223b3f1cb492f4e7528068e91113e228", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "665bcda5f395d59f03e6d02df03d0731edd50ea00aec5eac98762b0b78bf1831", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "da162c7f03a6f49695a9c1a64e5aa4c3a97d414b0f43628a0a7cc82b012f377e", + "public_key": + "74900c9a810c0dcd0a29f68604bc30d600ee149028652afdcb2a3f9411326e40", + "child": [ + { + "public_key": + "d21e9e606b3c14448e57fe77e4f7db0e5f7ee19263ed378744f8d56d4e918678", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4472e343342986472c16b258f45e9cbf6f85a5371fc065a2a1cb04d55bcbe53d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "180a20eb01ee834733118e6fb037f94612f5bea391d50435745741bf0a90165c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "989593b894fd37ef43f39a6c4cdfe2b6c433ac2fb34e5327eb5b709384ddbc2b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "58d7cef9ba8911521ee4498893e2e5d6bb45c5fa7acb74c08641a1ee91200337", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "0d8ab63e47acadea3e95eeb5386b3bb8a90a58524e036b0c44b15a38ceb1bc2c", + "public_key": + "98092548f2d92c0271694906dd5520327e05592e28c0fd3f862730753410c55d", + "child": [ + { + "public_key": + "36ea3b8d6930728958e06fd767fd0b419c6d8566231174ee1b3f37b0beb4132e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "32199be9f0e04eca85c4313bc7566c4672baf9ea5ee69ff225946acf5b177448", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2c1717500357f66b003d38071a9ef1382254efb837b76c35997a4c3bcd19f903", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3c9234f7f7975a5c4da7d804d10fc853086717c220a83ca28a687c1173f5ad15", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6650238e8c058d3655769533a43c0f6a00f11efb00c0fefcc5b6f88d4bf1e97c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f51877270e69b6dd66459bced4866f47ad83ffe5b131137cdb9b96bbfabfa86a", + "public_key": + "f0e3934c5a11f4078f33e95b94d11653e4200e780899e05ab1dd2a83d6773254", + "child": [ + { + "public_key": + "62d76735d81ddf05313deb0f4fcdb1a4371ff3fae1d84ca4819846cd6e8fb109", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "385a16545c1b56881b0e3e525512bf5b8723316d3baf66e2333301e1ee783a20", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e0998526c025016b5802b3db6349e385c355ca0cc333cbe306ad335b881c5944", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ea452e343e297cf83cb00186317b37a78d076ea1e4fae12402743352dff3bf57", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "660689fed1326a036f33d17026039f78fc2ffd7780da90ebdd0f2040a31d4e5c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "46afb76c77ab4a70d09d8d5d9cfa53618c15b2c6ea72dcbc516b1363a334c97e", + "public_key": + "6e7c2af90a92851e49183b96dcf325b368b1614fe239df60ba8f6f8c0e0b602c", + "child": [ + { + "public_key": + "be576bc0085c63e00030d701e02e1d4af40fd3777397a60e3677d7fd11328659", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "548998804d10744962190bef980ab5a7cc4070d40b47ef660ce3e0838122c74e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "5e7d71f13f2be1a0f1a17a4158fafb59d72e4200a0aab1ad0e2462510f2d2d77", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "042e85710ab4ccd80731f0cf3293542bf6ba0ddd0ef971fdc41a0ca06c63a956", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2258fa6817cb6ee58cf5f40d6e166132f42669037ec85e87d9800d655b57393a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "06960105b66f64008ca8d04a4d5958a5a5acb6d3e7134920b8b84db590ceebb0", + "public_key": + "564e84f33c922f334de942cab98ae8a6c127c6dbed7b73a6d2c7874b1a905478", + "child": [ + { + "public_key": + "507e96f0d5562c32615558edaa722aabb82ded7f9a9903f44e52fb871f947a34", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7a04e67108d698bef2644d6cfba2e1c753a003829fab87389efc94161c3a2113", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8a14ab26bb88afc69af346e675774e297b4289260a6486abebf0220464645c3b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "822d714d6eb227445c6377f39a6f8bbec07de6043ad4b7563995714db5365566", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "72025a02ddbd85769e537dfc8a8ef2e62137af0869b9b048185427ff7d488259", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f8a36d97ded7b3923603180722e19ec8e2101ae15eb6e49210236b1ae4d66dfc", + "public_key": + "d0ce3816048431bc3747c2aa8e655b09859b189e6f6b4c6bdd8c56cab9035d78", + "child": [ + { + "public_key": + "626a810401258997f38829ab91c9f4a821a626cf203ff08c54a9897620f8a504", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fcc5dfdf023d50c6d15bab743813d2b0af58b54d83cb6944cffb33b75c3d8d00", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a465ab0a442e295c46ec0abc6120488aa16362ab4466a4c17b9ecb8a38d64f5d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1a5d4279ea321ba65fb1179a9808162c0cc2ec205ee3606bbed2e69e0ac12d36", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2e5de99a6ea75cb681b348d8bb5a71d935d4db23c83dd3cfe76329885d253d67", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2e12d3bd182c4e9dc7a500ba752cf40a45319d3236c169a5b6f8417363b98345", + "public_key": + "5e26f53aba901f556b925a5fc94393a790045113d457179df639f818338f765f", + "child": [ + { + "public_key": + "e49a83f37583867b2b969b15e390447f807a1b4588c5c175f47270bb49093e6b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3a2e2d70ba164785834b0b15364dc58f591fa5765774394e91cb80acdb0bab20", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "dca04332d8ea4597658c7d30a9e5329fd0a90fa47778f28dede2848b3f3a0633", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "169e1279cfcc500ed4227311c43da9b24b317fb8882e58ab905c3afa319ecd43", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "60ce90ed48f0524cbd9bad99be7b3281fb86680da64278694755a6e37af31970", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "29c21626bd9d20ee2a06fd4d4eed7a9a9ddb3a16f45d685aca2f18adf1b192ce", + "public_key": + "9454e42039b3d4e2592132016885474b566ea46378a0bfd1e34dd0600f1c6c1f", + "child": [ + { + "public_key": + "86e20d99085e033bdf271b63753fb185558d1cec296add1171f39e7b6faa293c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "54ba47957ba4fdeb1ffa0bee5a409f3175cfd410d69f1609ee81dc3864c55167", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9454fe036f2d9b54bc493cccd7de2d1460190465130e1065959e958ef66c407e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4cdeaf5426a5ae09a11a626adde91ea52560696cc69cef8af40b6b95eacc1460", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c476e6dc16a73cd63ce427b6813fdec264e46994a520dd3e8194b1e1d6953c3f", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "4c70c35e752d80c9a0711964b2b4f66c388af223d9c68bc377186088bb67ff1c", + "public_key": + "fee4ce4eb3601a6f89c9a60dee6bbc927ccb9c442c92d8ee905f1600b30b3c00", + "child": [ + { + "public_key": + "0e921f73b55486222b0f5c43751261065108bd2f8ecf8db03b86b2835e3efa16", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fedfbcb475a43125f5d41b723f12b32e44404d6274bd48ab739c528e7ac8c424", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "587e2f08079030df2102e41ae4cf2076916a62fc9248cbfe44d3415dd96f3141", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1ab6aa60ad24bd9117ebaa83e941a6210a92493003fdcd9d1409f276c9240d0f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "cc7dc2011e10f488476df81ab0ce5fc7a8339f7165710a8d713438e49255e813", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "88a7e136a0b96fa10fff9fbb7fea37ffaca19b062bfa31c1e2ab29d14b58701c", + "public_key": + "ae8568f2f1786f0793056c3003d288c2f617d728742645d14c29aaa05531e212", + "child": [ + { + "public_key": + "eca886fc12b1850a568fd42082440fcf241a9e391be14cd2ae2d46bff384852b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "def0489258470d46ee4eb49a09bf26bc1370b84cf4c50c7da320f039807a912d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "56c3eaacbb61cefb7e899e5f01dad6cfea14f88989cd8f9cad896b9a219aa75c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4c76e804708dedc3a49dc6595942823d4d04c61e6ce233a75e6c5b1c5fcb6769", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "60877e2d9f43ce1e029b92dda5442935847430cc14c4395b52d23d60d921b76e", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "baf08fd1bb3b7c886e0e48569d4ec72f79d31931e93d6bc81e671680adc00deb", + "public_key": + "f4cc5892c91f052541ba6574484f17cd34b5fb2bf0e726f644bdb76a952f8d07", + "child": [ + { + "public_key": + "64e1c4f543105f2fd7e888d76ceed53663798f53610c34b7f44da22d790e2104", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "42b919aea697268178f85df972f3f574c0713d45666275f0b10122c38c3c9201", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "60e7ec620f5981d36e57baf39a1eea496ec204e03f868ad1a789a13d10c0b901", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a8131fc2c250f73fdee386dc7e2cff668c6819b4d1b75238df9d822c88fa1322", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "024c6389dafc6888d468c7523b29c46913c03b72821f2de7439d371628efb144", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d3672f8fc696def1442603d67280aa216c1c1748c24fe4b377f4a117bc94c075", + "public_key": + "02878dbf24b4b2c91e17c1c37c1f802c637fa4e32e62cae60a57ff494f4bbf21", + "child": [ + { + "public_key": + "c6ec2eabb36cce77f55f01424cd712693d4ed426ea3f385d4344351254109027", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e061cbea9370e3146d33c573231282e2bf892dfe55224dfc4e57b0c376675520", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "449be88bdecaad3d9a7288b0d492173dfa46136939487f3e843faf9529f42e00", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3ec7190239a755e56b97f4328c00f5079dcafbd030498f0c438e197e5d953026", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "74a4f46f994d8438d487d027f24596144b65bb5ff46ce4d33b86084637975a42", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "5b1475505ecf63b86bf8a6c3e28222148af568a66b05912ce4b7237beff2e6e1", + "public_key": + "a2d60c716f40fb89cc35aff7b0b9c61b9eceb0dc69c324628a183a7a2b4c7a33", + "child": [ + { + "public_key": + "c2702483f0100282636c730093b3aff31b3d614a8f2bb312237f3b282779fe0f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "826394e64984a4f1601c17bf740729cac4861dd95a5aca09108a81bc8c2dca58", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "32b96c0f62bac7ac2ccf7a0710ecd6f20fff24a26ff0776cefe4c592f0f57d4a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f6b5aa68e3a9115afa73d8b61c68408e275e6fadec8273253a83ba4332894d47", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e6ad14a90d7f8dccb327a23be00dbf443c1baad7409c3908ddd4fd517e216a3d", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f43357edb4780b69d10a3c55e5aa1e8a48892d4a455a3e776b44bd3fddcc0d4c", + "public_key": + "8c5d5bb16ff1f7dff69f01762584adf43d99bea3001bb22bfedfd94d18f65d0e", + "child": [ + { + "public_key": + "4a20360008e35dbde57e71f320831c43481e6956ff21057e8e43163e9ade1962", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "20af78da7427b61aad444c34485de23946ba2afc5bd3e489b41488a843f6937c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b05f4729bde32a04862d8cc2f22fd132b71f73f6db43a6c1d13d10d5c8b55c70", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b8e12a54c7b03a93fd0476b1cfb6c7a21eee9bb2c64187a99edab4605be8a030", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ca746a0de4c3a057f3b3bf5e5954a38099b1d113e51a1d139b2290aa6774e51e", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e12104950042cfee008095db4fe0af7ddd872ec9a4acf1e6bdbab20f667346ed", + "public_key": + "0a9d036639c25d964f1f470f25033e562564e45d74bea4c24c02eb32756e4a51", + "child": [ + { + "public_key": + "981de349977bf96ebdfdb1383f8b3622b03aab7976a47727449c2a4a6422f176", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f6a52cf5d72d78eeb5974133473499aedf3daff939381a246b279f4e46f49a40", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "be9fee3d4004940b796172b2f88b20caf83e17205e4e3476c35c90faaf6ee954", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ae07be4ab85a5dd7f8157f02cac15dcdb8445df9759b13075d01ed6d4e8d3561", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3052df15df182080b20f29ef52e098253ecfe95ba448c7be83010bb5f90aea05", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a649001d35f3a8a67daa8f381e6ccc18b8ac1e78ff055287fb2034097120654b", + "public_key": + "6411cd4b1685c7f1de0696c22e9dc15afd1af43690e50127b39bb606677f2d38", + "child": [ + { + "public_key": + "42da04e1df41159b84c95cee62f564477b075281c52b2a42a8ff64279cf72d6c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ba45a95b3d26875fceea7518afe1fdf5701380e0a03b0d02e13a4a589ef27c4f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "361a800ae922d8dc7b2c6672cc4450ceaf264d1cdb7c532cf2a45a432c21a54d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "684de1c07fd787aa3e3ac0d0c0f48c8982dd5f3143890c5085164f717cccae24", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "08570bbc76568f60dbd48f3f648ce7f666b0f5601e76d9b31ce67649c4eddf05", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "42112a4e6da4560c155814caf21570ee0307ce8e28548f3dedcfd6a0ef853037", + "public_key": + "34d308c9ec39058f117570e5f743c1430e39578e69a7518afa95af95e765827b", + "child": [ + { + "public_key": + "b09da9ee03f6d12cdc0ab760e4fe6cc994277ab7fe31f6e7252f5e11e899dd1c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c04040cd618de9d5b137a787c5b7c340283d3e6584acc130195ca6708e817342", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9e90b32e8c76e0f27ce9efda92bb230ab0c80c8a6995b55af880344762a55448", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "be6adbf6cb4463ffc13afcbabbf3e992f38887f0f754faa1a892b6c5e7b44b2e", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "bad611f85e9ff1dd326985052ab9251c8ab66974576ecf59189c35b0d525fa26", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1e2183d7e297171c7790f95f1d8f631e943c9b58665779cf0e3434d32a5ccf29", + "public_key": + "fabc23cf3e8a12d7d586df7173791b44256e27e71de7e7140ba55e122c6abe0a", + "child": [ + { + "public_key": + "1c4363355660107c51daf9c931935e112aa44060bac3415a7b3a00c2e06cd004", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a681e24354252a1cda88af001cee0ee66bdc9f62f3151e142e32bc6fb3213a6e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1040c0db7c397e7a610f1483c88c58c2f263ca7bea75dd74dc7e3d9e0357eb3d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3e86bc1a4fbacaf7ce5618886410567a2fb0696afc9da8218b0be85757704241", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f8c311182cfcd51fa0ce71fa76546b9cf26111c32683c696e657df7cff030218", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3780e97fd4f1f9a339a43c445b6b1431aaedaa6ba207c908bc1aa547531d1a3b", + "public_key": + "bc50dd050052714db2f9e89c1bd53babad8008065dc919f8eae90a9f9d0db473", + "child": [ + { + "public_key": + "3204a99f1af9a734c790ed1519704e3ae9d23e1a67d789e741c8d848f2352b20", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "640e9d084595510397a9d38b3d47509cc265fbfe1667189f47becdbba1857a45", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8e7c42361571b9633c5f8bfb81409db2eb48a8214584f4421409520dd4975c01", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7a132227387483a8cbc877e7a668f28d960203a213a8d03c836c23a1f1fd1f45", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e2d9f84012344c5e6045b4d8788ca8d6ed0adf732e4a99ed843a47580eaf3a04", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c5ae4de0877da7e2ed2cda57aff210efbef4d9d013ed7d40333b4b3125a4d523", + "public_key": + "34573b7a639aef75b3fa86fdb754d98e09ecf637692766d9186b97960ec9034d", + "child": [ + { + "public_key": + "f0c05a86580c96caa24d369fab11f09ca410fc952e11aa1a1cb55355bf755e2c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3ac9cbeabea7f04eabbf9dbeb7d240b41ad84e79a58cf370d415d93808add27f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "48122b2da725baadaabe678ffb80018493ab1ac4663f97036a1004a3fb28a153", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ea4a367fb5f4499e09acad4a25cdfb8bc00f4a8e5d00cccbc7b495676326e440", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "0893e4ce8194960cf0eeff20b55abe00fbbf265570dc6740a60bd405c0f5542d", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1b1486b56676217eb720cff6096a202afcc8e7d74d858c79144cc3ed9368e82a", + "public_key": + "fe96d823f79f9108c44e135326e52878b6847763ebc10a1a66164fc8cfc9db49", + "child": [ + { + "public_key": + "0a432a9035356b662b453bcc1408b5bc99531f67536c3827cd53b653f45ef827", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8a917f27a7a9eefffc686e2977e0bfdfd7d0ab045a98e4e3e21419f30862ff7e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a409e5d9e071edad9581f808a5b3d1e1d30ac5ee83f69dc75801fe1eb5502276", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ce3a8cff5840abaa9533d16ebcf864403a8d246d91ad71fe525aa1585806344f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9056234509d140d1931d2f08902c66c5d06f00d778e763b84a97355bc226f158", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f5a3b9e710ab159d1771d9141324d4bf63c8466c9023a92f0281ce38a36e3e2f", + "public_key": + "6029d60c58924a953a170b6250504abaab6e9d21d7149bd80cb0707c95473256", + "child": [ + { + "public_key": + "42efece6436b962961c7aadb83998ea873a243bf0aa6cae4ac1092d1c7faa845", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b2067873441e5bf4457ceb30d68b804ad0e4468dc3b309241b6b94849c9e4736", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "547ce8a8f78ec0d8261f9c8374dca30bea812ad4192a44cd4de640dc80b5a24b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b86e17d53e0c8331c14219fe76e035a9dec67bc20cdec42f2be4ca715c0b6c21", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "60c9c46fd2f5576814633c871444096b3cb98c4c26ad72b4af1d79697cbe0b6c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "07aba7592edc0a2ae08edaf96489832d41619578beb293d14275523e3be2a035", + "public_key": + "48d2a2842e7bd81d4acd612b12d8bcbb672caac23ece5d91841bcfc7a53f9e47", + "child": [ + { + "public_key": + "44d6d8e66cb37c2867a85a7a31ef62ce82c7d2539c029db69f190d78a09c8f56", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ca6c26ff73fb84efbae8298778e6dfa13926db5bf3ddc90797c0d117a9d65d52", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d8e62d24a80473167b7b4f023ed38e8489a428cb8c79188ec957444cd5201d3d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "52671534ca6903690be36f367224ede0f29a150c9c21345f42800df3d7cb4f63", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a26717d67e750e5f2be847b5b590ca37b8b86d1d353fb4388f3b5cfd14bc8d6a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "65bf96383a5f83bc8b6cc22bb18606cc2c7dd3c970b98aea1236c0184ef9238a", + "public_key": + "34af8306ba8e692b50fd393e5b29d2571e76a4fb1b04cdf6fff77cc7a1c3b430", + "child": [ + { + "public_key": + "528033cd42d1bd2efe6e499c2d55e258c6465c4ee378798266f9f4ea6d70167a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7867edc6d865655d805e9d39e2ae8d05b50ba5c348c95974b1ce1ac92bc4c87e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9afcc2fab8360b2a274f25c2a8c118dfdf31266b1da0b270ac6d2364b0c84a68", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d69abee771c4f898ce2426ec018d3ba8015c3649a208eb6e8df4e3efee07743c", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "98ce6ae3ec54f8fec16c841c1a20e85df8cc53903113b2d974703615b90c235a", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c174ca7a3483457c05cf00e3493813d07023dae8c692fe5ac1308e2dca00ab22", + "public_key": + "887d0f42f5cdd83da54b9a1dfd7d7d6479450fa050a11767c02eaff3f16a864f", + "child": [ + { + "public_key": + "7a299ce9bcc19748bbba054fde3063f0d47d36bfbaac7d795173286c74c7b35f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f6f2fd7cf8331b4518c8f8b67c930bda73b880468616bb1da43adef41f7cb947", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "78d80349f80ee7bbfe54abc0308762322aebb944004012a5e5505d3a34455f14", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c87795025dc2a7d40e071cad4ac608d761110098406bd6a53c0dab72380d3338", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "98a525b0a259140278fa6cda81332fa3c85b50b28a1544cdc4e2422d149ed366", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "0750cafd84121a88a458bb9383fa8648abdb3a07907deaa3f6e396fde0ae0dbf", + "public_key": + "d6322f48a0d14ebb00bfe6d3134c4b6a466c15437692e97c2e4e05050697164b", + "child": [ + { + "public_key": + "f051a486da1fca5c7584cc516128b286a3501259596a528d97ac785322c8921f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6a5409c53f4a9c485fada318631c7e5675012b8e31c3a00f944ac8f54ddcba5b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "da228efc48dd2898b895c6100028dadf633c4164a5727434a081554f7c3ef159", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a449d65d05438bd1e6dfefb26bfeb3305aa4761adf299ffec5a89b30c6711022", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "92b6ee9249a30c268aed06c0d20ef2399fb461e79b3d459c7aadddf4ee6f0a47", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "5aca92d5e64a5730ded49803f3cc9452cd959e878b03d03006b29585a8f1f0ac", + "public_key": + "2005b40f6ac25bab2130d5270394f90a19b4224d4b96c5e8067395a7892f093c", + "child": [ + { + "public_key": + "4e20d76fda62055a5a3aac3fd2d8c0e4a31722c9a1536aacac9a003f64827d54", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4c3ea02793c95f211da28755280574d7d3ffa72838d17441c4553d48cae72334", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a42f5467154bf30f299f426deb521de148eda7e1e6952ceef879a4bd05ab284d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d60ac25c931f103a73a8599a170989fec02bb91d276fed34efc33368193ddf7b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "da4cdd10a33e267fac926cc47cc7bd6db656f1f47ea0eed6864a80cb3ce1c434", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f453c9e92304814870d12d5ce6c34b4135577d5d60aedebf47f839020b53e8bd", + "public_key": + "081568ca0b125946e5d0bad77a56ebf27e7ffb6cddcdfa70e54f3ddd870cc737", + "child": [ + { + "public_key": + "90086f59da25e7000a0dc442bfca532648c491d63368975dcb94075fc928605f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6acf8f61679cdad346c2634c046f1bd6a2f248d0bd19302d9679e0276c44d151", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b25ae286a736c24a285a7a47ef744319637d6022ba932fdf981e089561ab697a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "04e8dd7466bd5d2a54157ef2e707aa0823931e87abd812223d9f3d2520533215", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d4613e79e47703aad4db0e6ac9ef4b9e293acb13ce603f7f228a6ae391b2f564", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "15fcdc814b5f235c59ba8c1240266ca3f5bd54b44661ca6b932e60151866bd07", + "public_key": + "c637b71daf15aa53430594fa5e76a56fc9b1daa85723ec816ee24afb05639871", + "child": [ + { + "public_key": + "443afc75b9ae16100811c9106559b3b5d3cf9fecd051d898761194af1129e623", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "38f11a515ac6214dac7f683f3b8af0c1570fc1cf1adcf530b07552b15d81246a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "562068a7bf09c364ec433719e0533d02ab513e17ce528b8bf5bb394adaefcb23", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "62a36f14f3b4f57a281c06eb0301c356fd85d5bf23cd6c24ae204664553b5f26", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "aef41667147fd91a664b9deda3158d87cabae730205a73631d62481e6556937f", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b72774df9ae40a3051757aad2df99fa69ad6ed3005fc4289aa1fd7b7854d78b4", + "public_key": + "0e902eefa78d8549312a8ad50f59dca9f94864a477f31a5da6d17311eafbd269", + "child": [ + { + "public_key": + "dc2cc8b8dd8afb0a0eb067ead7fb29423e064fa7670823309e6be6596f69d022", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8a9e0596ccae213c19924954381b176c7a8821336a43015c66d24e6556b10d04", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c085dc54cb216e15370c3cc5448e52fe2d6bc52e52f925c59fe057b0b5286f78", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "de328f434eaf67f3fa7ebd3813405478601deb3b415ccc5e3a5a7f5f04cae65f", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "24164ce44007c754a10664057ba9b803531c2f86dc3f3f5181681ed363f5045e", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "9c548e7c10c6bb955faf5f5fffa072ae6aec54f55e6650815455df5c5af9aa73", + "public_key": + "3676850104db57a6fdd03cebadbfcda73281e3cb8e0dab76c34631fdedb73672", + "child": [ + { + "public_key": + "1e957f87d76734788c8cc888bae4f2c6982771e5baa996a713dc0d73a651cd2a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "00674dad8f526a4904dd6e0de7f771c2bba68bb58a17b230bcb156023154a301", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "20d735d64be94d6298fdd518a2af832832abd138a5e9891d2fbcb487cfced26a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c6fb984eb1cde039afa243ef6731e61214a883467f16bf9074ae7af5fcbdf34b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f60fbfbdcf200a14b4af12babae2ddcf54084252e403b563b1bf1adfd6e2191d", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "363da55843afb6abeb55791730bd9e4e626a80caab5f8ec9dac9584f9f79c8e8", + "public_key": + "1e1e47208f0b10d4f04b61d546a7b37760cb74c252a7ff8b5c462b113d8c1e13", + "child": [ + { + "public_key": + "ea44400578d0c0d25ef664ae94d73fcac172a1d2c8cee6db1b1d8747d84e9338", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "cae2402029a56442351e69768292dc98983a4bab5dcf6ff735f28f25d312b202", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8eb6a109b41e2381cfc2f7af1ba7f4f77aab5eb45aced4522abeddc6f11ae25a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c8077c3ee22cf3432c943637b48a99cd20076c05e57ae2b14e51882fb8b35331", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "36b085302a5d09a918c4e8b41badc68f719694d8bd1aeefb22e506a51663652c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e7724246f888e6e0851392b1294064c801e9a881cddff78e43f7d1a35d9b42fd", + "public_key": + "e8e9b091cd71fd7e24a8b656d49270caa39507919340615902b0e1478a7cf72e", + "child": [ + { + "public_key": + "ca05cc9691f3adcfe247ca1c0247634acbd6457ed9fb0888869d50936b3aaf43", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1ce486ce87887d06d56885020f39039448165ad7a8adae3e1a42637b77da0059", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "82a10c2f776eeee8aa920d2fcda0867a755d365cfe930258cf982c3c31a3fd11", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "58c44e3c80237bed1a9d851e3f97f2d327a6a45a532a4e2d527436afdb490a30", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6888430b84b01d491eaeb380f345ee25d40f179650935fb9ad17e2093d2c122c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "0b10acf525bea4471488ff2d520cc2681e986bc595bf12e71a961df82f870f18", + "public_key": + "ae43ba070f60008f1c82819568f9de5cf5003917a3632a69878e5dca1896cc45", + "child": [ + { + "public_key": + "bad99635c043862f1089c75a82883d4404e52a978e698826df16035dc1033a39", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "22dc903fbe241a9e519d3884e61e2ea54902d7b611d627694e128bbe66a9d212", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "229fc47a74733282015a75458014246d6dab576f712da09d425f7b240af37819", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "10090f5c71a37435c0d96e7054ea2516fb5f3a71cfcfa9dcc66419d4cb32d030", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1cd05f5ff185f9497caaa75dfea50f1047cc749c8b6c0a3718628c5ec454dd05", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3d949057d63d778ee55fc267863314b2362e28616efbfab8bd9a92b121cee6b0", + "public_key": + "5a27e71f8fc757a0068ff2fcadfcaff8b22703c37fa235f50b22ceb098fcf86a", + "child": [ + { + "public_key": + "7ef3775caf732da82373b2b21cccd8a979937eafb26bc522247dbe648ec2b17b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "522865ba07ef5a957d0b8b5353266f54aa505fe0dd8a0da735c4b70ee785be0b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a0fb82106b6402980ffd452bd86737068db51d29ca31743c4c3d54cc1ecd0c10", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "22864c647176d69920286ba0e65635eab0a607241da5ead0273a121e4475fb5c", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f47af9569a612e78e3dfe86b321c9760311225deec2e2d84086e75e096d4e847", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2cdd126a43e779b37b7f040e48a5970db81bdbdb858456baab4054b5e08e79b8", + "public_key": + "3ad1a95f224eaa3ea3d6b8f8f0f16a0c976adffcf5c2a114542384ce5719b95f", + "child": [ + { + "public_key": + "a060f165b07a84b8da85e4f132c6045184605768b14c4f62985ca3711ea3aa68", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "50e8aac20f755c2df75424747e569ce452cc504a3a918b9df5312cfe6bbd7157", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "082b6d8b740e26b930e2bf8cec55ccf2ffeeb67c8c80e4445de42d57a23d3c75", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6a58a5fca5531cac9dc235822bc98ddcea4e1216ef9996eefd25fbb40dde0c53", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "14118b1b1ab212ce4de5715ed6b93b0e58b7a660730a38305c2b2c63409c4379", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "682cfd65b2ef7d858e33d5cd5ac77240444c7bb423c71af89c4dd308a9a29ef3", + "public_key": + "cea897ba53bd5f68ccd9118df3254d88f5a4109ceb5a5b82edd3700a33178028", + "child": [ + { + "public_key": + "225b0a18ff8b01aa1f7772c7d9139f0a13fa0cda707d983ad0eb979513c46d16", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8ec9a3ee76376dace43518fd9fb9f93516d710791cb993a41ce98c56f8853564", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8600dae84e362da6864609a3fe20dfe8ce06805a53942f005ecb91723cc9374b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "72ecaf999b65559b097081bd02f2a40f4d86fe324e81a33b4fc95935e9b1326b", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "226af66ac2968638209e0223c42cd87d90c1b5e3759d4f2f21110b55c726d067", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2c01c1d2a2d7d5ed8830c922bc4e9a3daec76e9e58cf4ec8eb008ac5c316dd44", + "public_key": + "ce9da94b0a0cf06bcefcb81e8537c1c1a581c81efa3c2a6cdb0cda5878aa4971", + "child": [ + { + "public_key": + "bac5df67b41f66420a9287b901b01841841a5cfcccca38f3eab8d1232c9b0073", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4680353e80da3fd7bd3547da114a4d2b8dcb8fef5d430faa350ab51a223f5853", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "381c05bb306f07a415ab25b2ae0ad55ebd2bb6d8bb89eed4aaca1dc50c1c790e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8ef29ba9654a44be26f57080568f3eed2394e47f1bc890e822c75c293cb64440", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "5e0ab11c722f77721aaba8f6131e5c736c89a095c4523ba706694aaafeb6c62c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b19c2f3dc635a10cd59c825e57efb43dea4c3baf82473e671340d1b7179c4158", + "public_key": + "ae2e65a6befc11fe020e588dc3e86ab041f7a33c08df7a220c05fbf1446a707b", + "child": [ + { + "public_key": + "fc39718c25f9c997e094f232a1045a6f198df93bc114aadd54f485ed52b26937", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fec8c70439d56c1338925524338209058d4fdfc5bbdf0358ec6b7724682d350c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "98e84e4667a56b0c430b47a2da8cb0d7a7f9f759523e5d1ae979aa952612cd55", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "2c2f3fb882e73f23663d551793358b14e5ea2a308eacae749890b173dd30bb59", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "34077fb6cd064523b81f5e643d281574f19abf09107ddf7ab699e3c9c2b9874b", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3e062d3ce2d04adb3420ae439ab56b66aed85679e8b0555e756c12627699a0f3", + "public_key": + "307f9c3cb5cd351d12a987238743ed03204e3512766da0cb2d61d84e6b3bf65a", + "child": [ + { + "public_key": + "8c15d11e41169f58497a02cdb92fbc4b4770d48a33d72c3f8281b64c7b314107", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "6a1eda8ed5cf58f9da13470fce0cfa80b1dddacd8a7318f3d712cc6f4d6a740f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e61032fc75f39e610747285530bfde5799c9e7652d6943e4443e8a911b644601", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "bcfcfbfc9f42abe2c8b5c85e2f5a8cfbf92f358c8d469fb9d01d536b6adcce52", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "cc22bcb23926f3752a4901724af65163a42ba50684537a9f5c61c9a7c16c0521", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "ac39f81fb5cb771d4831dd9e1c104c3705c031391341625458be32e9e2ca254d", + "public_key": + "a457edc6e7e11c32d27fec521394f17f01bbfa8edcd36de672b33788fb38e836", + "child": [ + { + "public_key": + "3e879fa3ef4de39bb9cbe08d3076efb95ffa502316a0884668890610e03edf4e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3a2100e9a4974c21e0b0150e3de5b0d223f76179d549d251d0f49fa01231a368", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "304f875e854ee34709c9409aa3116b5975f90ae6297d365ce2c2fb791b433a4f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "462ef4f3735d062878e93fc4fd7ca606f7399d485313867767f626d9a5a10d32", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "569ce6ab6b947ce2d1addfd2b4d4bda4d840d594f59f41c1e6ef1fac06ca606f", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e437bf9d3f6dfa075af6745d41017f9366c3cda8158224f37f786afb0e3d93da", + "public_key": + "7e330cf9a304cba1435a8c1bcac844d53a31261f631776caec8d5c21e8725d63", + "child": [ + { + "public_key": + "26ba7f6d8a9892140c876ca21dd6b75ea9e3970c1c4ef7b1440a2121726ad75d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3008ae0e8f13b3096e10d9abc27a045aab9b5c8086752f3c55a588a69b894b6f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "bcea053c01ece55319fe6480d465b24d6e1b655ae3367a0fc7772e459116e44f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d2378c7a7f35b89163326c3512d886b69d24c69843200b165608e7e11874c90c", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d0f3d1c5e0e3c489c9b739254f61f7201ca9eba5ad31ffe3849197f704a13c67", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b13d08a8d8168d7a4dad620a628ca5b87f23e3d565fcc98cff7fc4a4ff7a26d6", + "public_key": + "3e4c0bb263184a3a68ca9132c36b9ffcc5cae3a627a934bd3715587066079e2e", + "child": [ + { + "public_key": + "d0294329e93c62b4efab97ebc416e74a5f8a37d4e005dedfb0930e8c4dd8e41e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fca2c4e42296050dd3d7e4867f021cd74cf2e6d09ce994b209f28086acca3573", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c495b6fb01a6a5c2ff862458ecc081f331d7ca74dba58ec2ea1b41b3dd8ab107", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "baf281442fe6212dc9e7abf50a0c99c5915fd5aaed6120bc19abef10ed285813", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fa5477444c170358bd3e9c0c27f45c6d4e35081498b59fa7b21858cc0b14d634", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "12b99bb33f7d09ee43af31c834f4f654621ac0cc85bc8f24f5079e3724954e18", + "public_key": + "e48b88fbb304107b036642ddecdffdcc1b7be0b27378755964bf9daa176e3d1b", + "child": [ + { + "public_key": + "6432e22efbe97bab352e40333fa4bd20cb1ceb7723d5bf14e02ad4af2f782a24", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "3077d71fff93b97facd4e2d278bdfa806dec30946eb951b50474726b22b3ef27", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "92b7dd9d2035fb170b48161d9ee202c9b4d1e7930a7eefe9bd8eb455ce1d565c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c86d2f1b69e596c6c7d337d07b43119a722b184428f3b32579c6140d2d5e3b56", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "9478804eaa6c433de7742b87f1f65fa199aff7761dfde64e80f19435b90c602c", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a09dca9ef45042cfd004f095cfe1e815707e603498eb39cb3f0069e2e54e86ef", + "public_key": + "448fc7b449a002f7ccc3a5dd31d14f9714d773d3c5a5618f4ec5101baab5f022", + "child": [ + { + "public_key": + "c21352643b70c0a8c95a33a311b9b9e74def65aee29718a21e5f3951225d5b2a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4cfe1c24c1d96657faee404ee47452b968d11142a049ae49c5900d44ab407035", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "c41182556851fbb18fd4162472a0f6d033e4f2a3e7a91bb003d9181abbb5703d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "22638944d19edb7c9dd83e2958929f48664cb277dd7f6495a0b3fe622a5c5161", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "14fde57be7ef911589ca50b1736316dd7caf19d7e10d96ceda0018d015416107", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e606f9a5626696f16b857871b7ed1e37b692b57a30f5c4190d1a1783c4fe6ecd", + "public_key": + "fa053fc4c5811a2353850f64cfe9ef8281012c6e4a06724835a06c8adb2d343b", + "child": [ + { + "public_key": + "3411e8b91e4e9ea4f4953f6abd5110f193d9cf90bffeceb67a52abe8ce65025f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e8e8e3ff2c82537d693d9c75f3be41f7f5c85dc3af66451eeb5d97b09708a41a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8e6b52ec12b921c961cf4e5350010bb05c0624fd8d32ac3e36ac718b086d8259", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f4b572cd89385f944c9778cb0415f26f8db8b597be418d7e7f36bab1ea400343", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "22f7c6ab6cc33452680ba928916b344c885d9b2f1935ef8d2b57efd407f70c6f", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c0fb9986164a957b23f0d27f51d885ef87a23532387fd5ed87955112a310a0aa", + "public_key": + "10edd1bad8e878be8ef9b90418a11e011d28d32ebe1126f185fedfae5ff0b26b", + "child": [ + { + "public_key": + "72a19f9c51ddaa9276275bb02e2cfba4d3946d7aa921ce8088612b2a3ada4d35", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "82f375b90a2cc32e0106fce33bcc7e7fec8d0b2dcd15eac3145e62c0ddc0490c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "a0caae0d96833f2aa6131baab9285fcdbf2dbd2323ba7d3ce318f3c13c9d5a7f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b68e042179e08eff8b23d487dbb7a232c9abd10fd80e089f529400229642ac4d", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "d053d88c3e4dbdbb26e5c5fd5888aaaece44d85b1b5ef47fa3b2b8eb48353a1b", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "edd582aa72599f494701f71fb2e9c644854ae0422d34f48f9d1272d63521d1bc", + "public_key": + "a2c8343488469daf04fd30d830062eb421a0cee3f6828ca5d0e1c8cdba76ae00", + "child": [ + { + "public_key": + "02a2b95255bd8d8e0a293dfbb200d12d5e4ff7709b18898bf626f738178d275d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f28c08ece15f9583b5227d7101c8249f93eef4eaf53a2be5de0a02bbfb1d7933", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "627cea04690ebafb3f033a85ded1d59d49fe506c44a724e70f10fe62d6bd1f2b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1810dbab5bda656b82ed95a2672765e40bcd6772b6ad0d5ed0af550cd4c20a18", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "580775ea662f6366e553bd11435024498722b13f3f354217bd3246e0cc7ecb04", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b9ff506e4cf8f0dae2a21723c0fac2c24f57e729c6569e6350a7c52587298c83", + "public_key": + "3effd1d5ff35760951ee6a4ac17409f43fe21235ff684c1d8d54ef74626e5c54", + "child": [ + { + "public_key": + "8ea8f7759026c9c04912a7edd3e8699220207131c6f1d2c9e04d5f20bef87014", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "203293879aeabda04b76e4ea2078a9443cc067fba5a66facaa155f04862c423f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8a2979c70dcb4982a618b3ae6d71a6cc2929e4f4654ef6db0bbcdef887799739", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8e81cd7bc6ed2e24ab1d84c99adc17e43285e9bbb1c55ef56c37b62c78b8b71c", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "38dd91855e25a038792250c301f5c86ab3f4b3c5630b141fd24e30d67a359604", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "294365d6b2a0b09325882280c52ec3ecfef89782776a79d48663ceb5eb6c36b1", + "public_key": + "c6b1914bd88213c6a89ce6f856fcf57b6abb62063737cea2f3afb576c5c0e938", + "child": [ + { + "public_key": + "e27a16bbccdd97cf20504b3204d85cff527a820a60c4ca9346c044456683bd20", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1216f29acd02465f0eb9f52f581d0d160ee2e643273992d374269963292a7c12", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "38c09fe365a00d577cb01fc1d791a400c451dba4c7b265c25c32740fa5c2277d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7c13f83402d963d9cc6402b8b14100a6b5d38d6fae1df0e07c97e2ef562aa409", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "fc17dcbb7efd0ec658bcbb126725fa849ebaf132ee9bbab5bbba5b2b64ba6a36", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f2db35d5ddefd4ca97801795583a9da38206a893c50296a4f0f3701913032972", + "public_key": + "ae9d54f15027fece61094e8be4fffc33600b0b60ca1da0d5235c06072549ad4e", + "child": [ + { + "public_key": + "6ae514bfef8658a07a86de2860adb1566dca19dc3a5a51b3cb37d2b0d5bde150", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "f48950ea17d08b1bc83b1d3545f5a8673884224daff104f24a78c4847ab8583a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "80be16298a097e9aa27a4fabee87c2a1f4091a4cdb4011af7aa536a3f6dcfe3f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "001881142ce2ca92e71778ccdff9679f23114b849e481a3bb5c99b5c8ae96c25", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b2aa8dbec16207d5e8d39d43bc3e61d399d81bf60d24b02cc7b2f126035d8e0b", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "132633cb0394bcfd0825679b9cb4229811ef6a176536f0b2dff8063af6239233", + "public_key": + "e6556b1f56f455566628cb86f4e762c0a04fc5a38e0c05765cc1500607f2b04e", + "child": [ + { + "public_key": + "bcb19882ab2f84589b3a37f571aaeeaf89ecb57821fcea22d03fd7d640e01c57", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "5e8f9b7a620f8e4071b222ee31ae98eb5a56d14ec9b94208f21c018162500108", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7ab2004698f4425f0240bcbd326e20e43cf77b650bee9a779fe215e4a5658401", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8e1421a1240840cfe1d73e55bddfb8f186bd8569879c831c7c662c8fb1f37057", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ec2bb90319fa74b3346ba83f01e43f475fe365845ced2a957609028ae500a309", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b784a41879c5c1074b1e0eb2bc5e6b4c98b18005742ef17eb6e04d87d30b0ae7", + "public_key": + "f457a7257eae4f26f7a167e5b008faf302967ffc51f260bf9db3a312d2db737c", + "child": [ + { + "public_key": + "204c63d59bccfc1f891732f1e19b737f770eb6320e3f6dece623b959e1714a62", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "4ecc703fc11ff5151557b1108dea81a3456e9fa329f05ea3d4a84642687f1d69", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e2a480775804d1e9c63e56c6a301d8fd523456b3c0ce60f7d6da769e3719bb26", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "b80a1d5bb8bb9e86e98b1a393f20011857d5f3dbed92c9fd3ceb2cf8af974612", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7e826a727f8bcd9b65c1b7a5776a3fa40ce8a60257e356b3ffa2450c9b348d37", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "4de3929b2224fcabd923e9beb3e7c3833921e1c69cdf238f3cbc1952fd4ae5c8", + "public_key": + "488aa3c7913bbbb4a52dd9d0183ba8bcea36071195833e3eabd3024193445234", + "child": [ + { + "public_key": + "322ec44a7f76a08f29b5daa5f83eeb58f75d12b9d22a1a3a1f0f5407eac6ee16", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "1aa5aa43f10366ac8d90488bc63173607a1cc5a904a9b0099c31cb09ba0eb60f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "58bf345e58762cb3e15a8cf9cba5390c3a953477a62b827d34f8d47298286f63", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "96c32280ed20cf7bc549b5b8bb79196222c98771cb351e2e849eb24440c18720", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "145aa24dd66758b1d0035c49baf208633b7cec4108359f4c33bba1c9f4f0b157", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "db794ce9a017c60bb60520a46ffe03edc9f83c3e96e3c0cc026a90a47a2498de", + "public_key": + "c6d33b62eb3aff5250616344f866c954b02f2aea878db67281f8a51bb1a7a704", + "child": [ + { + "public_key": + "d8ba52224b5a4f83ee781948b18047898b9139c622fcb275e555645cd9191963", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "084cf1f30a130c1a7bc9faa0c72f1f349ebc1c508b3845b485561b67e9f85024", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "e626dba473f45f7ea41b984ef38b3415848c82014f4fc88346a6b4365a2e9071", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "7441065cbf56ee7ad592ad1c8edc83c44c5293cb83286a3b22e59da2e77fe041", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "722bb99321c6bc8343747da7cd383346fa44fbf2b219da4afff1235f14856110", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d37ba0b25a8893918b121d31a37da3227b54220755d2dda3b455c19f7ebdd9ce", + "public_key": + "fe0ff4a0a441b64c805b111c6cf142e2567d976472e30fc049ad30b2f855c157", + "child": [ + { + "public_key": + "82c14fc3d8258aafe3b3e57591792a5ace969b7d198a1083991c37b11a793e0c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8cea43b22619445ba36203fcc4af23ab8620527685754be97e6ea26b950bb202", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "8c661b9de57d51dcf97d61f7cdc6e050baf8fdf0bc1cf321b1482082a401033e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "08d4f99ed6f7e373a09b7ff19599801604921261c662ef0c49e6cdbf177e2a66", + "chain_code": + "0b00000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "public_key": + "ea9047cc7877e692a676f5c3695ac5dc5803c8e686af4dfbd1075c096a776428", + "chain_code": + "be8809bf3b040000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + } +]; diff --git a/test/schnorrkel/derive_test.dart b/test/schnorrkel/derive_test.dart new file mode 100644 index 0000000..0ebd1f6 --- /dev/null +++ b/test/schnorrkel/derive_test.dart @@ -0,0 +1,51 @@ +import 'package:blockchain_utils/crypto/crypto/schnorrkel/keys/keys.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import '../quick_hex.dart'; +import 'derive_test_vector.dart'; +import 'derive_public_test.dart'; + +void main() { + test("shnorrkel public derive", () { + for (final i in derivePublicTestVector) { + SchnorrkelPublicKey publicKey = + SchnorrkelPublicKey(BytesUtils.fromHexString(i["public_key"])); + final child = List.from(i["child"]); + for (int c = 0; c < child.length; c++) { + final chainCode = BytesUtils.fromHexString(child[c]["chain_code"]); + publicKey = publicKey.derive(chainCode).$1; + expect(publicKey.toBytes().toHex(), child[c]["public_key"]); + } + } + }); + test("schnorrkel derive", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final miniSecret = SchnorrkelMiniSecretKey.fromBytes(seed); + SchnorrkelSecretKey secretKey = miniSecret.toSecretKey(); + expect(secretKey.publicKey().toBytes().toHex(), i["public_key"]); + expect(secretKey.toBytes().toHex(), i["private_key"]); + final child = List.from(i["child"]); + for (int c = 0; c < child.length; c++) { + final bool isHard = child[c]["is_hard"]; + final chainCode = BytesUtils.fromHexString(child[c]["chain_code"]); + if (isHard) { + final deriveHard = secretKey.hardDerive(chainCode); + secretKey = deriveHard.$1; + } else { + final deriveSoft = secretKey.softDerive(chainCode); + secretKey = deriveSoft.$1; + } + expect(secretKey.publicKey().toBytes().toHex(), child[c]["public_key"]); + if (isHard) { + expect(secretKey.toBytes().toHex(), child[c]["private_key"]); + } else { + final keyBytes = SchnorrkelSecretKey.fromBytes( + BytesUtils.fromHexString(child[c]["private_key"])); + expect(secretKey.key().toHex(), keyBytes.key().toHex()); + } + } + } + }); +} diff --git a/test/schnorrkel/derive_test_vector.dart b/test/schnorrkel/derive_test_vector.dart new file mode 100644 index 0000000..1768eee --- /dev/null +++ b/test/schnorrkel/derive_test_vector.dart @@ -0,0 +1,7202 @@ +final List> testVector = [ + { + "seed": "99e43087cdcb5092e56a3261747bf9922b767d857f2eb4a1003bd4df5ce60896", + "private_key": + "48384c9ed52685fa2973e1dde51f971d42b4a460f40e304730e7627a2da11e0b89b76a3802c3eb2a8a2314a5ecf663dc820c71610b04b47e09849eda97a92d79", + "public_key": + "843a53aa45163559bd505470266fdb1f68572ddf4f281509bcb7c59e27189871", + "child": [ + { + "private_key": + "c587639d3224d5dad00b90c6512e7f5856a738f4d957ab77e36b5d693674070c25de601d957284ef49e22480fe002a74c1c320643d11f69f7d16b4be7410fe8b", + "public_key": + "e8ae2dfc0685f91e482807533b7d7e3e0795f2cd886d775836d75c08e9ffe650", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6d33aa4a1ac4799045eaffd1d6ee8f53b2f238d896be963c71067e1582c07a0cc94c722447bb538208e0c0e125e30dbcf2332ba20febbbe719c565d6cdf9a79a", + "public_key": + "4a9b2ea3310960da3e28a02456812e837f27326cb8cc9999589e8cea29c02638", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a155159d0e6c71cdf1ea845eec4b987c5bb64865d6dc3db78c6e1c91ca46d30ccf2df0b35ada6b8252aace3786337a749fe9c2d43e999bae1f709202a132d2f1", + "public_key": + "26ccd4f04a8b10e8054284a6164300056017ff5197a791c3d290610be0a7d52e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9a7fe155e746b10b526a834c2e5d770abd95a343683a7790e060473aab7b4b0d8a90c2a0b5964b77efed623e05d14a51c5cca3c67c456b31536eae7ce02feadb", + "public_key": + "5ef3dcda9c825318037c99e128ab451b5a0008bc2af7aa8909be80c8c2983c03", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e8cea579a169e3c6b592dca3275cf08f13029d9d887fc76491b7024a1036610310ab74516ed7ef88e35767cb84be2c16c5eec8fdfe244aba88dab8aca3cccd4b", + "public_key": + "8246954689d50bc6cfca2a8d884121b38012f90d3935ce353696e9a4e840e677", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8d8d9f8c784d6fe315a65f32aa2c767d1fe6051eb41853dcbfb540000d72110a8d29a93f09f116e9e2148a62cbd01640281fce21edac8c6179f96ab910a8694a", + "public_key": + "4013206176c7bd10c932bbf996dd69c1951b4b9fd6fc1bf1afc027346b0c9211", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1e5885f3e24d74457702b46c0eb659f79e9b217cdb320c9c89c4673c0e14b6081ef177a5b216c0983abb73457ef937b738b7ecfba8af24a8e1e5655113aac1b4", + "public_key": + "fc0a6f5e0523822257079abd0106e21224fb756252df183d36728f45e859f80f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "859dded752a8e63f7a93cf9e5b09dea3a1e714d71b574037721c29c153e653e7", + "private_key": + "f635fe1804ee09548ae4c1d455913f35b4583eb3617fbd1bc19af4d381c6bc0b696172df465b89ffb82adb9b7fbe89f61d4f33e269a2562ea42696f20a0bb1bb", + "public_key": + "023abab02c14db392c6f5f4826dee735386b7b18ba41746c8acf957ee014571c", + "child": [ + { + "private_key": + "eb944bee62ea3dcb0710a2c57856989e638468655022886a5733fb238c16580fd176693392dfc00155b0c3d2b546b8cc47179689050b01b8c524672b5c2762b6", + "public_key": + "541ef49c8083ff65e3c9d7928612a6a8ac10039e392b54263106813a91e0097f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3da1351a704977a10c8ab05d6cf57da40574f70dac34ac7152e54cdb210e5405ca3a9678e4d6bf95fbd1faf22c472e37f8292608f7cd41866ecd8f07c12906eb", + "public_key": + "fcc586001ae359fde030a7e5b6f8098a13c7a6ebd99822c3ae786a63a65f041b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b2f7c2f60dc0efa31a047913b21bc27e53c4a6c779388c3f013962b7e4f5630c64319932ca244437f169f798ea9a79cec31e6d9a7604536eda11fbe9cc11aeb9", + "public_key": + "90aa12db4221ebc2e7cc2f3192962b39376602bb792769f1de15cb6973fb0357", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1d76bedf09a8fd4b00331d434220f339fe298c4c8ed93d766ebbfd9273dcf30dd7a6223a4f58258e04db0a3c89d5a46044535cec97e366de547065859242968f", + "public_key": + "68844f0211db514ab20e1012d9ed6ff74a0318b0f26a8ffc51a5340596be0f05", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "09bea8b4b8ceb16351ddd20f279beba3dcfd78805cf82d48ce105463ee6b140b1a76ea4cfecf9ea3ce818d32ddc6a9e88125420c6cec498a332bcae93e528bed", + "public_key": + "ac4c5252fbbe76230c323874efd8dfcf35435ae7bd4971f3d2b93c4b7de63f48", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0be7eaf48dc9fe5bbb755268fd3896358bebc0513854d019cbaa1cd80872e408c5f90a81482deca5b90dc2986a4873dfe9d013674b14fb1ca9371c08f3b195fe", + "public_key": + "24b45e425cf580bf80afe537ee6a1477041cc2f74a8c5c717f3fa7c31a266313", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3112f65e1e5f4c479f14535d24fc8e2ab9fb9c4456702a85bb8605593b2b180fee497b3537a6dd67efe1522ec034b6eb36d34e9cb30ea5945777c6442825e207", + "public_key": + "8a5abbd1e9c8fda90624f1a58fbe8964fcaf45c5a7b811dbc50b1708c1495966", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "62b7e634a1283c7b75346efafb42ea93b6c7977151729f614f071fdf1a12cc00", + "private_key": + "9d98644d1d9ec75f6c952e18cf1f583162cc45cb7034d3e3c7ba6e777c33060f7fe7b49a3153fdace063109954ba941eeda8f6d889a4070cfa28524158157a31", + "public_key": + "e2dc16c6821627be3b6816ec1b5acc740841b0ae2a4c624a532af547c497751a", + "child": [ + { + "private_key": + "b557ef261413130cbf2bfd47fb5d1c396da0a4bbc37414fa4b251cbbc1b8140cc7c57eb7817e6103b6df7c58c2bc674ad7f5b0218612dfa26bc55744e07ed9fd", + "public_key": + "16e293f02bdd3a5f5a472512be7bcc76e64ad7aa421d4882b914527389aadc53", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "40a3de389f82f71d91a11ad912b1a683ab589f9e21bd28630826c062de92dc0e2b92720c91789d73b61777612d5bbe301a055268a70e57f8324043dac9fddc45", + "public_key": + "78d19d94c82d8af223d0a269575fb961db486d9447a7fb995a343af62c60ef12", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "65108aefb83604846e347e4e7cd3b11ef65e203a65d165776c95eb852ebb21085b5fdc9c54af5e47ecd44efe973ac8cc920f3b7a15f93a1ba0f8dfea1c605ee7", + "public_key": + "de793bdafaa9afb287b43ea27e0ccbf8b192d97f663ea8f80af74bde2c1e7a19", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "22cbaf4305a3470a6ded4c8cd36bc43011bf07cc5d7b7e92979dbbb9440f030c857b0f4aa5653ef9bb8b5b1f51c1e077cfc84da16b0849e6c1e80902a0e64f32", + "public_key": + "04b515260105576464d25c811df425709a66975865c1f8f2e73ca8584b74cb14", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1e0481b52947d36fa76845ad02c02643aaa4a9ccf64480b5dfb82b41c243ba0155472524220867b562ab39359d8d40a099dd5f136b41f27a811e25ab33260efb", + "public_key": + "3699c56d84fe09f5e0eede440856531c800dfda4121d31948e0efc39d3229b26", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "4cde1fac8a38d62664d8b3bcc1f9f6dbf39d5dbce9ffff74421e6f7331abfe0fcd42074222613e8f87118da8a7a8292952af8ba76ead798bd643613592609c9c", + "public_key": + "70eba0d200427ea129da0e389c1a9c41732cdb79adf9c02d03b2fa445e21c770", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8169255937452b6de1f5906762a1a497d5ea8d2183334df95260a96e0a510207557306d6de59e48e96f455cf8c4ea1d9c39ca3e36a91939f47b1ae3fec270e24", + "public_key": + "72a8936073439bf4130b8150534a093f1d831915b018a0eb90cc8a80cd669f1c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "6b030163f8d57a4a40c695ba4c81818f03e8dfe09ca74eed9f6cf664da752776", + "private_key": + "a692c7a532dedc73e7c1d032ec471c71152d827fda36734ce01eae548ed35709f89aa6d7caf89ec26115b1b8c50c8da8f55ff867ea28b05f2cff0427adec1646", + "public_key": + "ac705b373551aa85d2d2569e955d07ccf76cc1c0d0740a4165c0b4b7735f363f", + "child": [ + { + "private_key": + "10ddd57655b279ae3e9e6964e0d5509cc732ff7c97d3a46a63819988246b4e0a52d340837e921efd62c7e0dbe9f2ecf2d7268706a580885146b20d0dffe17455", + "public_key": + "da81291eb23b73cb6aee0897aaa9891e08be976941b4b9de01762a06a18baf46", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c9f894ced611536b037cda8a63a96ce491fbd68353ccf4d049cf00fe5323aa0a8545cab7124e61eca0b12fe3414109f974648db9014474398fcc49282b7a761e", + "public_key": + "8e9d4e0d20fb5236c120fcd79f879321d77d5690eaaf6ac0845541423cfeea72", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "57b198fd0e2bbf04d8138720a4805840f489d53e8265acc07dd63868a6304e0c606085f0a7c944048e028fc355f7f3da6e7aa59f60a656f3958561e1dcde29a3", + "public_key": + "a010f9fd85931becfdf615b1c16b7737333a16e05a8526f4adc781ee9979bb27", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b530b9f71b7a5b34d3424795232f6253e01b62ed6ced665b056885eb2657180daadbc84c53ab92a38bfbb0e5c959582ecae8c943ff704f657ca6faed245baefb", + "public_key": + "540ebd2e23b8bc7fd8c2a4e8d985a0c6f3ecff775e35e6a51825b1ffd541154c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "91ecd8f1ceba69ad9172f04dcd0a6d1597c3997134e04c9f2615ab90b66d600c98aff6c1cf681ca57311e2e77ccea4d111cbf06db4d13f25184e1ddd82d333a0", + "public_key": + "7651538e10518107b06a1ec201e14b7e7261920c4d0ec7990cc0bc893354094e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "89b0c7db7221a27e2761cf5dd6fe387d35e754cf19c7b5cfc8ab2428734cbd0a958e94bcfd79421cbdd3a3ad6f2584d4b1ffd5751133e5d61d9733bbedc0e6e9", + "public_key": + "3a634a085f38ca956b1b632177be5f76e3c45dcdf01e5a02d7275622ead9da79", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c8f575a5925364c9456b07dad813f3efcd8da022fa3684423ca849656b0e0b0ebde75e50b6e852e589d359894065692413c83da9e570cdfe41d9368c7df8dafa", + "public_key": + "6c3623270ba7812f97d46565057523baa9c2cf0584bee377a6f5686812d9f806", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c9eef04b65239638c09bcd08a6154b644ac8dc328166866590bb84b7afcc968d", + "private_key": + "1fedb90a70711298c733d45d697bdcba9ceb04e53fc90a6c2dddfd8f22439d0a45a19ad8820e96e9bf8c71d96a74778887945feb782d953a9063a4d55859b605", + "public_key": + "749e1d26e41ebd16b3a465cd81512bc6fa03fc15277d68e0c45b0472a4363608", + "child": [ + { + "private_key": + "51b73e7876616e40038e87e49945e54ddd9309a44d36f4d4398496fecd7eb80c4d88a4a580d35e45219dfd842be891540ce58319db5ea36d5afa2a72027da58d", + "public_key": + "922969db9b0dec6f9559f63f98f7e0e842477427b5fe4b6132007718db4ef45f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1907eb7ed5bedfd008cad2a24208056716cac7227082b59361c962c35805130ee8715915ef0b91ac4a0b1c8155bb119ebe2b49f881098e57182186ec6969f83c", + "public_key": + "fca458a8b87af03f08a8ed62067497216d6b5588f010ad925877cea863e2ef76", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "2fbadbde771fb94636a6c770f2e4a700c452f144f9fe218b9fc4b95e2904ab09143ead86b4c8799663bf959a5affd8b5fdd4ed216f9f6794e272e169f652af86", + "public_key": + "3acc49f5f37f3b6649d95f12c58359ef0aed43a304030579db85e8489fd0f87d", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2838324a3489d7925190b7db379a019ff7b48ee730560134549b2af12d9c7e0ce7c2908a483485219bbb1ec0198e3c45260e76f63d31cb426fb1831618e4cc3d", + "public_key": + "9469bded719a749e31cd1cc440067d819c4459185e455f39c5ff4536db3bb42b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1133ba1f1a2fe0fec330f32d5c7f56ce422360b15a0773ba6cd3510988854a0a404b54414851bba8c9267f2cb40b40ddb2286a8534886423903d676c2990aac0", + "public_key": + "08e10a73e53d12f52c0ccb35cdcbd8c6246e719aca3b7f217404f79d661d9649", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fc86b35afeb384fd4717a15b0e5a05fe242b37cceb548da3b065385eb04af40f70c1fd63871d51cd2ed6621e5f9b7ecb946444bfa962cec6b0180477f71b40ae", + "public_key": + "e0ba48c8a1f9a870ebf5ed6e1d205a5d341041e1799dba7432c00d7008e87237", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d70b62cdd786cf3fbb3ab91794b0c1f2a94422826f9ba08dae4d0ad6d5e3aa03987866599342fe2e138e34b445cb627c4608ae88d4305f8da2ccaca7f569d487", + "public_key": + "729be36734a0d26f4301f281c154a88606b3e7183bffc98a6cde1fb8fc34e636", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "19ab5232a896e05576806606d6a3e24fcca7978d18021b38c4ffa564db527acd", + "private_key": + "31c7f0b397253e16d94839aaa51a08425b879dfb577ca727860d4066c053080f82be802b0f7544aa3327b850a0cf41034ad0098dbe700b0a54e04450b9c19204", + "public_key": + "3e913e34f7b8b1b5c840b26fcafb88167a2cc31fbbfff266de83af62ad345718", + "child": [ + { + "private_key": + "e4763bc8ded387b3ed2ef8c168281d17f1dd7245f050d0e2c392ed5ba328af0856c6ddcd2aed1fdcdd797552132a5f49b75c8dacddddebebe9a84e3de3f178f9", + "public_key": + "5c0f676d97a7983b2425bb1f66d3d0661fce476875804b26ce7908f007391873", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d86fbc25476f1419798a978ac0a1d2906008055d9f1871424862c9af96f196074d3b087f52fc2c6afe0728c93abf7caf63f8a9b622bc0adf11b88b8e620fbcba", + "public_key": + "9032b46e896a3891666bb60e38c8d215d658b169227903bc7c1a3c0c71017506", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f81b8537ddd4f52b31f49281267f31fa190202f6e9a8e103c54ca7a9b9e14308e3806935f688539c8152a2e23d83a628fcb934475d918cb79c20ea7350d82039", + "public_key": + "b4be77d3bedec67427f8f28186376ea121d2e93a2b258c24f37f1b48755fcb51", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4e2cbc8d0900b26896245bbf0270cc097b0cd82f94927b72b1a6b84006ef070de0c52ed85058fd566ec365ffdef68961309b4d75898ecafcc5683d6efe03e991", + "public_key": + "3851bdc0fec56408a9f98eada235428dcfe305997fe7e7ae14016e198545fa68", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0ca5145594a310408da742a659bf2b7e93666af98cc9af9b0d95cc1bddc5db00edf08c3b70ffd5e0873f14856b01798709f0a15d76976a9a19fdc7319fc61032", + "public_key": + "7e9ce873e1fa89bf4ef06eb0a0ac290f4ee694ff6f54500c4d88e42a3d38c30e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e8805ae00c2dab64be950e2ec24b92b2b33349eaff88491c031e92cb656b100e58e66b85ac3ea260270bdd93457027c0a9d23f161aea163f3e0e892ff47e8947", + "public_key": + "1a4734e6d706d40528ebd47ea0dac84228b81ec2197d3da62618de229e08b32d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "176c84616b283539c0049d330e1f7f40ffd4d6acce6cdf14b3a60579ef53c50eaea45576c1a68144b4001f68a0e58871e19229c6ce335749f70c9b150f6c2ef8", + "public_key": + "0c94c7de8ebf4af706b3237cb12ee0763c69475d3a10cbec9806d05c954f2f4f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "16f61bcb8fcce15cab4d32697f279f5f48cfe86f9bef8c82ed056326e184a5e0", + "private_key": + "4bb11c98bb44f334045bf3cb8a59253f51334f44bc35447a32cecde48791df0c545b36ecde8b526fd372c0886541da96bb49c8f4fa23bd47b0ce2dd03444bdf5", + "public_key": + "ee1fb8124f8c452c4e48f39e16c552d082521148e5d7eb64054c108900f5962d", + "child": [ + { + "private_key": + "6c36d6fd1e73a24105b550e9f3700c80a857f14e84f1c955bac538d9b07fc30acc0121567b8657e91f07e3c2f6589cd2c69a964defb33da51ec720a6787d781a", + "public_key": + "4e5a33818ae9262c3282f2e973eee2ba6d376b3a1743a9ccdc7d19fc0da6d555", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "bbae8d07c7111e0a29facc85e372022e3348f12880cf8e1a6d20cef331b74c04f94f12a91b66de637d8b842ad39f7b9412c8d5e0410b7d894f981dad4913932a", + "public_key": + "9ea100a9c412b7977e7544f34d153bf6e5a48c8fdaee0c645cf655625fe48b68", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "5f50e629a14b0a9965d5c72a2953c70dae10f2df42078163b55b6bf76272290dc18468b7da4f2df82b184e2cffc99759ac15ed6176010bfaeaa345e19af33ea3", + "public_key": + "6c67a73c8259b9df3a92756b5a5653436227da15ee933963b920e08fd38b5039", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1fc1be005dd1f52cbeb9a663b8d81d33ef3872757c5927b5bb04bee8d7b9fc0c113826108c76f72510bbe744cbe94cc4b0c9921645fbfc680437f22397eca4ca", + "public_key": + "76ed7aa26c4f005931f00383689ccc581173ed21b39cf2c985deabee0cd1d859", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "be45400411672269dd8399d7d5a6b7c264f5d3de8a904bcf6ff39ff4458f0408013d7154f34dba0dc2e5aaf7325849ac56bcdaecfe87ade42c45338074c790ca", + "public_key": + "8c1594267f8675c2e8a574d68412201fdb8a7049393d97b371d84a1c7c01b01a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "23574a4abf539829fcfeaaac39439e1e9885cf218e4d6808255c4af4bcd2a40e77c25b3bdb9779b48f301346da035717351f6c054f83c9162512c92bac1278d8", + "public_key": + "4ea3035a6432199f41948078ba9fba546053e115305609a63fb486d5f8cd577d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e0bb2a18a58f16a1497c1da4513a744680666fdef0dea61d8bc9787f578d1001c4738bec91e332d43828c38e244be5d4449637818d05e5c0b3cdb6bd95694b2f", + "public_key": + "2e79321a9665d6d7a5fa82de511b993140c93ba9ccfb9a0bd4bb9d8e46e5781b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3a5616a9e322a774fd87f8bd4d1b5baacf2982f388742e69e08e889074cb993f", + "private_key": + "9e53c2acab929221a9693c2db9230768afb4f2e356c60fde98dad513b66c7f0bbca90e67c8b9f1fba088a226bdf21a2d2756f363756856579344b9c83bd0224b", + "public_key": + "a4f00081afdef10014c7addc97f7af3401ec701f62a08d2f830dad9232298f46", + "child": [ + { + "private_key": + "ee30d69a030ffac922e30a8e98b37be823d37c0528b372af9b8eb6cda1e32a0b8cf96b07c670f7c944ce1eaed99051608d907e9875cfe3609a1ee3c096ac278e", + "public_key": + "90fdf999490cd19ab6926d360d3b1824d8f5b754cc9f05d44789f8bbfe5fab7e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7495576501b51750df7725a6ca0f0300989dc901f1dc5cd768803fb5e0293a0eb18038170f43e420d0170a333742a4f4ef4abdb6b29c5db524d7f771e048e051", + "public_key": + "2679001e6b5ee0eaa0eec9316fe46fc54e032e70a441bb85a159daa953e6df31", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a78d203bf6a65c05b7ba8a7c64aaa192c9f64d6dafd6d993ff2b43bfcdc1c3091f51ddffeb66014aa02aa1e3623da67c2797b2362d407f6cc2076bece5b9bda4", + "public_key": + "5476a383908a27dd1429cc8bf9e689745413aeedab4fcb3fde19452627a56e2b", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c61a2f4d632c83f333abbc43c8b618cbb3b55d1581991d9b6324fe490dc32909c29d7ea5ee73af9b56d89bbca0aebf3c60b54f6ab297681ef9acc1471530eb0c", + "public_key": + "6c75754722fb4bccfda62ca51265af07a83e45649bc5a0195c1e66e07f113d25", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c9a9961dce9e30fed495a6190b6c16c2d7ebd517de9bf7e5dd33e1609fd50a04e721497511f18ce3d350d8e44d22da2009747c28cb4a5fba83c7b71db7ba7833", + "public_key": + "08a8d5e71c9fb299578f15b5c01d2c91df28f821606ec26c818cedcae600ee6b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "572900eb68cae27e44e4906d47639314efb70da2544244ebb9e43501c053000af3c4526e45f830fc52d058a40f4b7d8a929be513ff6794743ff9e40f13703327", + "public_key": + "369d80c11261ab5f5127701412cbc6e0cefe703e9ad7657a244a94ef9d4b116f", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5ca7094bb974196a394b3543fb736565a79fb66339d36d2ce38445f2d7329d082150f2ca2ac9ee67bd3c96db3fc61effa5af9d3db34f6edfb170305f95f95ce7", + "public_key": + "24a580e26b669b8109ab34a67451f4b30a087c435920afd16484d5f14c608d71", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "8a293cfa127e9bb606a5ef70edfd0875702e9ed33808e77102bc04cc52d0ca57", + "private_key": + "67424056b984bcd04616f95160608d911582cc6cd399f35dfd2c167990478108c682bad987316b784803a39e2c5d6964e63b8ba9b5ec26d74caa5700d0d9f4c5", + "public_key": + "0ef0511415887c1879f4a3ec0a5ca7d10f7a51844dfae5c5a2b1f57d3e981114", + "child": [ + { + "private_key": + "ddaf480a79d10a681f4e26f770464b4c63176ade161857718a0547c69eab320a22e9442f2a961b0cbfb4e58c7e3c2f4f662448ac1f5bb9e6f04e3138161d1c3a", + "public_key": + "687aba9e141c2059b80b1274eee1bb99c0ee73f55ec00febbc80ffaeaa1c2246", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3e9cd107ac04575ae1db71b2fb1f68bf466b9d76862bad6f1270e1e8c7cc040ba771ce03aa7d5cc18aedee81c7308f41c9e295a7a9ade01cee207c47d6ef0887", + "public_key": + "5ad75fbf1f66c80ed0ce0d56f182ea406683bf123f32e659c8a8aa5bb211d528", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "4fb9d14ed1085f310bda8bf868d79d4a4adce5587835fc592276c250857a250a653002a88e7b604759b224c847692d66e312aeb77c66a3fae60e6ea815601fcb", + "public_key": + "bcebb961f0dba1ccf7184419fdb597e3ed0fc7d21cabbecdb3c254924936a816", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "154f7fd462e73c860c61db1bd7e5f5d441ef711295749d053297c44c9966290d6140cf3fa3d57c380568a872640f5a9ad1c29097cdc8523cad15011f2ab55a69", + "public_key": + "4cda84ae961e15360a69e6116e7534964c503377ccc97703cfff2e52a7dc1120", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "521974f2dac784a8bb72375ea1babe56e0fe6d8d63e795478bfc17839112250e453c7387896391a4ab644bd4eb0f06d053aa5c43f3db8fef9b487a63dbb020a8", + "public_key": + "8ed4aebe5bad1d88d718d32e35a24d48809a59573633a171e01bce27d69d2078", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "7d9800efce7d370b5bb38fa7b7da66222441584cdea4368d9da06264543a1c0bca635100cd222c5df447680652de23dd1c6e3dcd7b67e723dcb32b28403d580c", + "public_key": + "02ae94bdaeab5955ff98426366b6fb23e35db9066a01f487cc47a5c78afec734", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5fec8f940f7fb3c41cd694f8dcb60afb89e4cc2a81bb842fc6ff89eda2406209d6e29f7f0dc154a0eb1f138596214ca0d3bb2506d7390afee5cf7bb434de598a", + "public_key": + "e08889e96f1b42750d5aa7ff06479c347d78c2a0f71bc7779c1cb292e835a376", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "935f23f14234c26087d28c948ab08658f39b9c01af756cc43a3fec9dd0a3c84e", + "private_key": + "280d191ae2aeae881f18445d2c41af1a863075f0e26e36e40a860465c99c800a5b987039b5cc6fa95bfd8eaf809a6d42cc53be2241c25c79ead23979042f22ad", + "public_key": + "4434477fa00cbe16133ea0260298dade00101daf6246aa6155891642cdd88153", + "child": [ + { + "private_key": + "7e47098f68d1164042518a2b23a46afa3ee801a0c73500ef702132518e84e40e65a7e822e7da987862a5a1fad6534831892a37c33786096f5e1c298e0ae90c0d", + "public_key": + "e2122ecdba0367ac39b4ebcb0f4fdb792629b6fc31fc9115abbc568dd998b95d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c0ee2728f1c5815505463ab9869b444783a66826994023b8b79d16a04a5c9009d8eabd25f80ba8de9a9502138c4a55e2a21e90e0939321e888cb6c65c6aea751", + "public_key": + "68098486024dce9efc4242ae1f97637667be9db162f8ff75251dad7db3954946", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fc4d2c01f7cb0b0d01449e5d9646374d5955a265e9feca49d323492dd967200bd98066fb24e6d61804570d5e56c6477dee91c22481ce8c63b7f9efdc8939fd71", + "public_key": + "b6c60575a464caf9307678ec65839589a77b6ed38d74ae9274185925d3675c20", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "033d849d2d730442f323fe35ebb09472a91bc4c5af166905bf89a7daa058420b8731a71fca0356c34422810a292a0e3b18eb9dae0400db4bf7badab903cc17d0", + "public_key": + "e20a03c1c28ba0e1adc9d4b85179416042b6ace3bd3cc5eaf808249e04cc2c79", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f55a6333b08cf6b9ce6ccb8f0b7638a99f6c415f757f342cbd629a8de7f0490cd47b8aceb9ce38b7a15ef62763910518eb7a833d47f159b350f02344dc815c16", + "public_key": + "7a94ae972da493f8eb9a78510e5af8bde2cf63cdd9b50257343e62797fb0fe3c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "db5fae39f3435bf572bfd67adaaf0e5c928449479721f47745dcfbd263926e0e24e14beb47852f1132eebd96ca167a0336236fd3ff7d189236a5ce003a3377df", + "public_key": + "ea2dc7c4a5258d552644a86f6d64cf21c8079b771561a6b99f64b86aafd8d755", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a8b13d74e2529f7306e92ca4788693803f498fba639a48d81d99ebe9a6111c0b4cad2798e6a8d689e986163b2ef8acaa35b84dd4e79a26f29666a67eb7567399", + "public_key": + "46f696b99ca1ca5228264c129e33c8fe2597a69a5387811103311959f923af41", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f591aa029bac851f345f533d002121c1bd9797b0d8afb186682b2bd97aae2596", + "private_key": + "97402b8acb7010dd3fbdfc765d65ed5a80d8baaf651a69a84a00bb4a967e6108756e067dd73cfad7592f89cf3e13ec857e6de7b312db312117759b8fd97366d9", + "public_key": + "ac3ba6fd61fdbcb4a0be1ccfa5a352104f1a2e451da371219949acaa1cd8ca7f", + "child": [ + { + "private_key": + "78aa2d78b1cbb40cb9a9df26075ff8a43f5a4468837c3fdbc79a9a044e4d800c1a09f01daf36f77ebc63cfd07c5c7b00930534aff3b8c962cf89948b45e05311", + "public_key": + "5ec22228ced850d9b370240384336d9c5fa6138f66d83a1607765cf4c9db1b76", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "db974190731110d428a5379bc662575c18a40a68d740551b34bd29d397ee370217e287695281b2aae22826441a0a36c25ff84371b0ce2da0ccfb025e75f31eaf", + "public_key": + "520b0322b92879b6bc615aa82847a3f4acf4da0892cad2b4e8a82fda2075f361", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "482bcde2b37f810ece6a5d955930780241e809ee7f16fdcc991fbbd8d0ae9008822881e6ac98e05172238c768b5e55248dad498016a0d0f82f16509c42c0eedf", + "public_key": + "7437d81590657d39a1a7166de62080f7b2feb118dc95b4b9a5bc43a4f2a1be7a", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b8e38db93f888b3a875762fccdd55a38a9eb06c252b16a4296cf698c5f27800af70daa4c72b999f1f264b0c21770c929f7c3021264ee99eeb72fc78104a9c003", + "public_key": + "584db0fd913e1e03c4d77d7970ce9832ac551845857f84fe38be213ce8304822", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ad2748e03d4a9aa690e9f7a7d8f8401d45580ff829ea897c2790bf5972f77200b2a78d5026ce4fef791f99226b1522c5f8ba78639601703953e2163d672ad6f7", + "public_key": + "74ac2ff85dbb379d73b8435a0bf78cfcf1e978a47968e24403b6c756b3cf7e79", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "2d63e61986ec800d9b484f7fd82f52f284b7baee9e06cddd785592619ffcec092e79dd75f2c3a0b6010871210e6e838ec1c41aaebdf51f8d9ea457728fae06d7", + "public_key": + "fac446d2b5df47edc9a56f5e685ac615583f43036ff4a3e9083cd6bf7458d21c", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "96d57df4178cc85c0f5f17be2fd60e0f3464b0136fb66313bf9574ca91c00e05a708657a11d67d88a7864a676e61d65c22b693b3aaa81d1437cbb49c6a2cd5e4", + "public_key": + "749019d2d7c6ecd0f66908c047c613bafeb6af339f8d83af6674014d2b382577", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "7fac7f2fdf6be12e3503be95b941e5553328a0c6e14ded88a5b722d7fe746f0f", + "private_key": + "3cc0f0dfee8e20327babab54122bca705f72d5ac5c5e3a04bac650e15996850cb5edf361db64421ec2f274ee8b28f178d23cff8d340d3d065cbf42354e3bfd94", + "public_key": + "32d08bc38227f1cda94538f7e5c973de30c3ba2d44f44b03d46dba59bbf7b078", + "child": [ + { + "private_key": + "1db532d1e1239640d96bff58ee24fec623fd25351829ffaf18b09764ea6fcc0924c5d6a69f83afcb3d08b862c3411dca12926487f8d48b82844956de192d8657", + "public_key": + "b663ec45e76610005ab73b7e2877f43aaab7bb0603689831b61020005055667a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "352ee728f8268273dca2e569490866a7e11f12a3aa58331b32697d786d119c01eeeade910791a951c1f50ec4fc879fc1fa980dec5f4634924b01b9da4006d21c", + "public_key": + "9e040c51fff4c5d286bf943339e4e8ff3a63da49c5655cef67eb60209fbdb858", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "497e5f032a10ac191aee0a97f507539fc6faee79c8a062d47f83631a305cb409149f7f463de72a889495991b85af644cb442478ea5504c73b4871201106881a1", + "public_key": + "e26e2231c78d4659814ef34b48bc9160b80b215a5298bc8dc891a0bbcc5d6a74", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "62794b11940a40ba11c5c2a38ae28e4c4ba966689239d49d9d30edd4a68ee30a5caa6d4ffad54b2c40836c76001aba5f912bdecaccdb30bca644b325504ed98a", + "public_key": + "b620920257adc39323724a0a3e5c54d49781312d06db88da59d53804d7489225", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0261b582f6c5b6130564eebf73d1c4e8c8f7700081c658f807091aac964ac403142ecdc6f092b9dbc0641c38ed37215d088d7203fb71e21468680c593e648881", + "public_key": + "d4aa7a09e25fa65937826ae3a0c8861647fa21bfe71adcc3efa7664d7c01380b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "940bc1d37ff7067e239eeac6d3f414632b1c5b27497ae33d68f20105cb631a0c05b7cdee52346073f0643b13184d0e8be34106fd011755dae1d2881597a9a6b1", + "public_key": + "f27d1a3ea7bab880778cae3815dda6d6aa84c48fb0778c6e26a52ac1b9f36a63", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "689a1cf68c5af01ba1fb6c16dd63f39ddf94c436cbaf24a8fe4934196ffe9d02d7af92f3e436f0fbf1596c499168f4ab9100d83c76551b04052c99d4715ef39a", + "public_key": + "3a38bed813559f05d1899ed07dc766a12719cbce46ebad96b516633173620018", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "112bbf684938490a9db0696f29369793b42b31b05df4cf1fd414ea1f518ee6b9", + "private_key": + "a04e11f3c9aaac8818444e20eb6ff0445de0544d3dd23013fa3bdcf2e9734c0a2f38d04be07799698952dc874c0d39f403ce5e369cdf5ff2911bd7ed532e6f7d", + "public_key": + "88bff44e49dfccd4f31baab18521243c85d0f7aa7ee636289baa1e469802cf7c", + "child": [ + { + "private_key": + "f28483a4c3a9a34aef18500972fb6a82e1dfc4442adf8cbee43f8e705ac1550f1d086c0e8d02cc0234e39d28446305beeb52c05fb3e633cda6bb0e349589a522", + "public_key": + "c424b9132272f942f5abdd07ac0b01547f83d7ee70f0e66945d79924f5b2271e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9b9e0751a03b5340c90f04e8c969e8e89ffc27e102b2ef8b1f6681cd29bfe70fa00e9403ee7a2d723369ebb19b779dbedaf47f526b5232c5a551e46c7d27e386", + "public_key": + "40b8c356763e3cc4f32779626638d23a23c318bf752a311eb43ccfabdf60f269", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "dd67918fd51d1eca776a7416a5010a87ebdf779208e7730fb54f64b8f641fb0bc53f5f350336236ab39a69033b4e45a814f56c795764771ab2359d019356708a", + "public_key": + "760fd90ae456177b305f8f137558886908894b8ef4fa95b3345907435ce7e154", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9bfc05acd9c25c2697708ec8dac82ca38b35dd5567bd6f77ed40ebf415e98f0ccb659a202a5d08cece3d54b43108f674620fe9b01ef0c36395682b01551e6c52", + "public_key": + "ecdfca7ce433c0c40989314987c672d4b612e257f0a999690221c7a16ea8a622", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "52ec083bd86117fa4121013724ea98c8932cca999d0706f0f04e883ae9a569032a08113f7a8dc9bbb26afc6c345210dc0043606b877bc439e0c4d1456be70ba0", + "public_key": + "a4cedc1f47a6daf73c69c75940a27a15fcfc73c5bccc7fdc4df7794a6c5e5c06", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "00c695d1f95cbed4df4358d6baad90fd19d510fc9fa190b84c88f7c239f4430fb7ecd5655ff723c96f5f35c8e6699e6f85479701601feb4847e406829207a54d", + "public_key": + "da62032cfadf3db520e740b06e5dfae7856f91fa9466a825ce7bd3555a3bf602", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "319b3bb85d3d404f5792b8ca3b4b42598a1dc4d8b55a933c327cfdb3d717a30df993b97bb05433ecbd4f4ec2d1c7b89a54838acf995e1f2cc46d978d0ef302b7", + "public_key": + "40e07a39ac715c1c5fe042f4f9405305abc1ac84a0e5ca1c24aee2cd8e8b6f4d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "90bc2f90b734e9d33aa0244a75805faed89d3d1c134a3455e2aeeec7dbb5bcbe", + "private_key": + "aebc376076a822d5a7bf0808240182f8d08d78eab7a157c8dbdead46593bfa0ce1a7cf9db8569b7e5ac8a42f268c33ed7ef0bc937d91e68d327dabc6dab63c55", + "public_key": + "2a59e51b6fe4afe9f30e78c36d479799f0ee572c4e08392477feb3c2926b4319", + "child": [ + { + "private_key": + "55f80f332790c9eecc10acf7551c59b4b90d6460cddcf198082a8cada70fa90844d657f8faaca30e091f387f5ca8147b0a32f537719dd3f7649e2b1a878f04f5", + "public_key": + "b2d0e4d08dc892c456fa8057d8222f38f243fa4bf9bc13cbd20f18205eee9d1f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a2346fbeb541a189a1912f4ec03f3df1ddfa92c86d5fe7c4382947dd8fc5620685d8fee84a481790b7527ea9af742537610184bb0a709657356d42813e5c6a73", + "public_key": + "18a57e4bbd7b7cebcc956fc6cda9e36c49c9f30c6af9e7e3ab1dd53f2ee03a0c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ef2b51b319a9c3b83dbb8fd3fc99ef77fe0f7c58e61474699a8640503411f60ca7cfafa8e1dc4694652750f3f1f9a4b0f1b07f53ea6078f08ad18b2cfcb1f2eb", + "public_key": + "26ee80d6737c4697c4abee2f4f37229f9cc5c49b2a97cbfb6285cab28a02306c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9192dfdd7b1f4a51e364a55da3d80a7ebff55f0729537bec06bf64132f8b3f080739f05f60219357ee50c9087a2d30ba310728f5825ee2077ff91a4865347414", + "public_key": + "2a73e89b7e8446210d5e006bce131fbad3da202177dd928ec55366502d972f5c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "739c8992e434a08e992ce66b0058e4a8ffbc050c3025560e9846f52d97904b0b15df7198d4a995255724748c2ee5a25f19e7b9b2c2859160abcb5d23493224d1", + "public_key": + "648486b597d215fb986fd6e96261a20440472d0d301261f925c25f98ba8e6b30", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "3aa45fec9a632275429fee9a8d426d3aa05b801e592f15be2a7a406566492e0d5f106139ba22de657e460763aaa3a68e582576a8a436cd4aeada46b545c24ac5", + "public_key": + "50ede24bf5c196d4126322824c166b99c078b5b93b36bbb45b24c9afb7ff3803", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6662a6437f197fc8b9f5d63816fce581ff7d24f1c2810fa5065bf574c19cd405f0b5311f6b3d3764972c5cf44b00f3e251b1f03d18dad86557798783e09427e1", + "public_key": + "8e51736edf4e886e7e2e21b5a6af17f8f1ff6ce361f46a073b6ebd96bd89f259", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "ae576c7e67ff520d54e488bb88d87754b650ec0344568aa8d7f053fcb87255fb", + "private_key": + "883f2b61a8f2694d5ad45fcaf3628620a7542e6e9a5ecff7515b3bafece6f30ef111eb0b87a7108a8c98e5afc08a0fb18e5eabb679db81fa444bb4b614c0cbbe", + "public_key": + "66b21711429a9dcf8220ca96128406867c1d4e608f3bf42f1dc32522e7b9d510", + "child": [ + { + "private_key": + "2f4095ac73700c6ab08403acb144da6d122bf3da15064190879c0c48710d900ed32deda5343f74ffab8f98478a0d892f86fb51bebd389d1b8cf1760e2ad2bb83", + "public_key": + "fe80ebcc9b1e23d7b8a650ed2f25183188115acaec48163201e208621678643e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5cf28d5fbd8a2c3d73edebd808839be6bfd692c16b0c19b3c7039e90da94ee00729647e9e8d38f2f1fe382605b45a56eccf27203fb3c880a62619fabdacdd25c", + "public_key": + "289e442f909dc98462f2bfb985b6cf35d1d549fdb5df9d1267f3442407697d19", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8265306c32ffe0ee9a1f9dc382c4c7142ed405b06276c84177dcbb354c2d2e09391b91d8b1377e6237ede8c9a155b06b635915a9fefbc48a4446770ce81aaa9c", + "public_key": + "3c5cd0fb0ab3ee7b14eb69cd2713514a75fbdc8446bee546e2d657eb1ccd2679", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b7c2249d1ba50acce42f9bfc91843b671236b07eef7965592aa4f8f28c32fc0baa9916573ec0b849086df794a53153d054077364a23bb17ed62cc01f94342caa", + "public_key": + "8ea9ffefe8483f47a74f1724dda3840763c93f8bed59c2b87da593e62f852c49", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4fc0cbad07761f26713caf400bdc7d65bf382cb48c26624456a522eb4f9b0202d9cc8bca9dc64d7b0973db01d7546b58b911a3efab5f2f1879ffbce5ccc282e5", + "public_key": + "9ad0248bf1d8b3e1c8595a6797a7e30bde40f845f8f53ed82ebc3c96e68dc26e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b28e3b706072743044de381acd16d37a19913fa5eb3da87fde0294e9f1edb809839cd0b3482765c9f2138c35b61453c8096366e73e63a158274d5e25fb743bd1", + "public_key": + "dcd67188fd6943d42a62e09da7810dc6008f593862520dc6224db4e8083ae872", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "81a2ad5599f321e8f9ee42c39b196986d83042f714d91fbb82f6e6b8da1d4008c10baddfdf21b925b26b027241c7394a9bd5ae1569e381ca23383e6616ab8b18", + "public_key": + "baedc9d97269b3060114cc41c79120409e12c5dd6c14d6c95762a6364ce3640d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f79de1255e5161ed5e04d2f960b1e005b120ba5619aad04fd99af42cfffbce51", + "private_key": + "7888d9fd4a82f77b5a5ddc7eca69e797ee6961086f322f9797140a5b967c720cf099a66f74fb504f3c7ca6c7a3e4a4ceda869ec6c93c9feed64002bf57b2c004", + "public_key": + "bac722d24a43ff40599a8d753b2ccc9ef52e4a84f5f4293bfe08ac231036d907", + "child": [ + { + "private_key": + "c73902af1c5e9a95381f281dd403be51ab851b52c641d2b31fa577aa7bfa8f0f7d5e1d8edfbb2814f4af86ba6b1a17801527fc9b80b92a4404eba6bfb2e5b8f7", + "public_key": + "587f61eae365ce2d050873962bcfdcf3f9214c4fceb572145ca109217beaa535", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0733f1af55b7bc92d835f811dae51cc0353ec02e2eca9ab3e06f937fb04e2d0d770e9cc32ea0a9be140d188730ea07adfcfab7aaeb8cab8d9e00213e7afed9cd", + "public_key": + "b0eb5b9dc57f4da74c418745106302479f5f50546bbb0ccc7574cfabaadea04c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "6c469f6cbc025432fa91c8a739193ac5e0ba2a1e685f7a7dc53653ef5d0ef0091f0e31d3bb389cf021635029eece0c8554c91822c93f515ed3a65cb73c03b717", + "public_key": + "b8cf381cda17f9cc20a1af30f49dfa4e9dda1d4c1e6144a106c413e80c704168", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0f23f63d915068155cd59081413fd0903cd61db1c68cd3e7f7fe5c583f70f90d7b12029400df2b737bad62dca10ff139fb70c03feb333b4d6e78df82be809249", + "public_key": + "9a8258c1ff90f71dac7b65bb91fa7d56ced0146e10f8f9167466950f9e5ec760", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "96f323339cb3b20129fb612ce061623fd5a471d1f628f45d3baa4ca8de87c70d0e782ed17f2b6a55bfed7a44eee7d7bfca2946fa911b4cf9953b8b026bd42d60", + "public_key": + "58ed839593edb3496ebad02e729ccb918cc7cf2abed8b9aaa3b79edce25dce60", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "50df938c746112c396d1880b708c500f51b84a2c12b648b2fdb032b8cab2540f93ba9f138b23b51671555e17ef0103a5eda14a18baf5be224fe3481b3c24727b", + "public_key": + "cc86438c13af84ede6b12d3465c748ca8b4a3a49f73f70f2225cad647d6c591a", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d8c3947e91f346f4f996978f815292d65f2d2a86173936a2e6068cdfe9f58908410bcb901ccb2aac587c41a6f59bd586c78670a9f7a23b89ddb111de40cac162", + "public_key": + "02f196fecdda7031fe74c5d1885667c2a8c035609b7cf8bd1ed497493d710c19", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "13082d2d3fe46d02a08102c397dffce8b151d60d078e68008887e02d49f8160d", + "private_key": + "a46f0c26e925165cfc129e43978b13551d1ccc36b0b224cf7b033c5e0f90a009613afe6b25a84cfd6e9da8f9a112f287a4a7436aa41ad69f321a6e0aefdbb0af", + "public_key": + "36242b3aeb385645aec299d9fd0f467da583e5d38b40f0f688edbbdf0063e979", + "child": [ + { + "private_key": + "90b638be72a5e9f88efbdcd46c9c9a500ca4747c5f7cc4aa1f980e2e8a13900cb8b6ea92e68a4da515baa84a30c3dcf5730733b5ef6ad32768cad397b7164207", + "public_key": + "0e7df1b517efb8a5d0bb7038cfab8f863fa28389bbf1bb40d4fa69aae193c711", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b6c7a771e8acb697edfd2edc24862366f037e7b7e89178f9d5cea037fbbdbc084478f0b5df869f9a8e3a5a68495f21da4e8459df0ecbaee7c127d7009791e377", + "public_key": + "2844d34eac4e3ecbc8327f0610b0bc66cccd6f989333e1057c82d95bcf1c2b7e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "28fbff535598010c302ef9eed159fac716739a1bb3a30eb7f22bf9b6d7d53e0dfc2f2b0a7010c5c898dcd86d32a5048b5ed85a86392fb1100861fee7668c2707", + "public_key": + "f044b5b91d9ab6f48d3451e4f23b24e524458cb331e79db5072a3aed98b55e14", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2eb574c281a19ee73ed3526bc24daee8ce038453b05db66e336cc5e720076a0df7c6bb22d31f461621cfec566bc3c08ae94fd221fa22e8cbd58205ae5858ae35", + "public_key": + "c25f7c93fbebf40065b9db0499df92b5ffcdc465094befb41be2ac453b270a4b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2495a7694f90e7e1e1e1054da4526e99a91c8e9a3662978b799b2e0ec6710c007dd52632c9455f93cc0b90cfe1422714f22ecdf1dc8b122d63229adc9bb67597", + "public_key": + "aece1f61033cf03dc30609c38d3276be8105b3e9e1a335a154f0338c1b8e9271", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "34a9e0281d2abaa9debb69e90ca2be558b1f889a0afe75c1509a3a1ba6e1760f62cb06c8e435007d35067e7b27c6fff9a9f5088d837b2c85e98ebc0069f8b665", + "public_key": + "a8701e46c2cb7e0fc66327ee20e523ff3d92b320b524da5bd4c91da8116df92f", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e067e39c3a603d9fac34f8482ba684ea12270e2b720f6168340d03fe2f26c40a7bb59ed8dc91f0c3217cbab84bbc75eab6afb4a0d0538247ad469540f4e134b1", + "public_key": + "30a806380783dd746edeee1bf253e8fe6629e0ee1dfedbf3bdd0b8aafa80d147", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b965d2f82bdb105dc364977470fdf96f6c3b99673172b2ec96a438e629057a64", + "private_key": + "a0005b17db0768b963c52b1c226c5f91bb7fa05a11d4da7f04878c2bc514880b0c681cb947b50a5c37a2c0927ab249b8e0211fa970827a3953c4161c0de7984d", + "public_key": + "a62dd944f703a4280d8ea83da264589b99c1700bbaba1dc2b3dcf49cae667403", + "child": [ + { + "private_key": + "76a05031f00c9e2d79787f44cc07aed44ecbd90e5ad90f043736f039ebe4360c6a67d7c478e096658aac0287fba5dde2313a2a54c2916dc1c4009af36c10a7a9", + "public_key": + "8c90cb3ae5a05d091e82408adcafdd390cb4274129e58a8f26fbd8771d89a965", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "47a6cfe81e0e0fe76b437e3b41490287dfde4e465966af68666052d4b321ec0d0cce428910fa61c27c68be0381bc2589789e76ba49ecac35a44da4013a9702ce", + "public_key": + "b4a9bfe420e8a9590afc8f29e104eb490bc7c979183fd8dc064ad10d67b7ba07", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "46ad0a8624321028033aab7f18350fce1b5bf9c4c4e0e15593fa6adf16ae2009cc23e0a71681c6cfa159d2e35453fe118e244e56b13b383a0eba257ababfc0d8", + "public_key": + "b6a79060dd737d0833400ecdf42a3325ba183679b38d526f6b60530f5c01e719", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "85524c21a9c166565f1065c7c531315916016400dc15f4857e9fdc61e6b2150cbd12782bf028d316be9cef5bc827400dbdacfd92c700e6c919ee733e47852cd1", + "public_key": + "e0f691c9c5d09d9921b59b10e051cf2e4ce419b504f8ae9ad1303e82f6b7c660", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "cc8ca7109d33c9f82d5bed60de536e55a7b914522f9ac19ade47a28635d83c0d99d6711e234f23c86c0806324d0baaacef36307dd66dec9d99366605d0a13c69", + "public_key": + "20a158f1123da540f6fe208cfc1ca056fc8b93ba1a8b92203279712cf1e6ad57", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "5bad39196b6d64c6fbc54190eac02973853e5045bdb3808e30e6a73faf3e910cf07948cb2dd3236a236db20be23de8d4433014802ed117983297a0f90678c0f6", + "public_key": + "4057e55acc8388d51f187aaf3f85719b33c774690e6c6adedbc755c0f4de1560", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e30a8ca19e475726009b18262d0ef3a4c0f257ae273b76aa00e06f9dd9deb60f2bcf6091b74f0cedf1bd743c57d4067824e967041848179cc4d4bcc06fb04f61", + "public_key": + "7c1e0f6499aebfc82f83ac4abfa5fed8e50b2b6b6b080955aff55b13e269387c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "825db8dc44f15af946a194aeac306804e3d940df264ebb6c4f73af7814f7230f", + "private_key": + "5cc5364c00d1c6c5b1a618c83ab803aa100281d0a0d72967962e738ce55de50eafacdb9d223bc69de34c62f88e559d516d30e2c55bf1a65420324662ab069eb1", + "public_key": + "565a7eb9305b09d90d346a80ece73a5380f62ebb404cb2c212ece55a4bd26848", + "child": [ + { + "private_key": + "3ff39db2392918ce9dd7aff5b2ec86d659c7331f73f316f13d4834de76430309264513adf9afe006e107cdf62ac0bcd7e7af4ac46e501d190c5d703dd5a3c3c4", + "public_key": + "06cd27068fc0dca067ddd0b71f92abb2e2e7d0afa31c0f12dae7221a226fcf2d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "843e1e9603bbf9799fce0ba1327ba4a857a7dac6829b5f606f5c368ae1581c0a52044f997c2cbdc45852b0972902758833149f1271a8ab7e84b93e1589b93cd3", + "public_key": + "1e546290b2359082943381dfb96a26bcfc93a1e24b5b2ba9d9bbd5ab60049c10", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b32529d82aba3d79f6beb0b92af40a95ed4c0d55140e8dbdecde481c915f810a10d208e79abc9af776485b1a280cb80e464df48a5934698a10b50f5a2f81bc78", + "public_key": + "3cc79485d9496b07f6f0e5d1a1a731f0de88c5b917cece6dd14353961ffa6713", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "762dd82163d3811490066997e1d10181c734c766039075d971c3840405820908934972d58e304697c71964818a667d1cfb8369b82ac7215d6d16c9e25dd2b5c1", + "public_key": + "c64eebe4a88d67c606e1d97e2ad6cac3b1cf399c914bb97c8710fc7de0763720", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2aa30b929fbc127546b39656f041cf68da24b48911fedc1d922aa2a9417ff9094d2e45630b2ab562c6c927721400bd7bb7c2c81d26f6c6c904dc0ed2695ed8c9", + "public_key": + "84e89f145aa33b767b45916dea0c1230c72943a3a24f564e3871a5559c97816f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "44cc7f0e290b6c57850f6239a96ebddf4f7a701112e754626204cf21c057320abc1881f4335f3dfbc9e242314988876f4b21de76cc1b0c41d361b071c27b8275", + "public_key": + "16243d4299e7f6b48e6043b8240deed5b6bdbda27306414e06ee3dada39b714e", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9d8fe9bf8c2602133f8aba886ff10130345b5eb625b32d0f8ef70878c36d5d0a640d947c5949ac4eb5bc41acdcdeeb47f0a983b73169a136cb8e4e0f54f3694d", + "public_key": + "38d676b5d9710a1b4c482110eb895097a0415a586a868acdc913df7662e0181f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "8fc1f288490157a8c4b8f58932a5bc8f91287e84f192992f79f5cb6f177fe983", + "private_key": + "8abe202df41f9a6b07e8ee6cb4e3cb854661ca5ba8c952368d416d122166b709e5c96be04d90cee41e03b4b53b2b96beb5c31b63bdc9e8cb0a0842af93df6356", + "public_key": + "a0e9c89f17ade109e7bd57b288bf298bb5a8e28c4e232c995bdd9b385df5a87c", + "child": [ + { + "private_key": + "4dc3c72f096530ed321ac31451c92f60e6e88fcb721982724197a7736fee2c08247d5dabb6eeb240adf8f42eff1c237ac8ca973ae3eacb34226d8ebef9488266", + "public_key": + "10563287419f61b579e6be4a3b0f8611a1c03a86351c6af8f7343444375d5447", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "dec2d0b83f2475b548f54acda27b453dea0904197854d80784e4d4fa0ddbb906be27a358fda12be85ec7adc15c9edac87c73e963b63347414cc24b7de5812513", + "public_key": + "688f7a2b87564543c5d146f5855c717c421cbdb6b7dedb87d3b44ba2a78e2d09", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "37431aa9434b66512002ff1a077afca64af799c992f1faac117754e7ef8d610f31dae3283e99dd7ba183cee4e435f0c80f181f8369c163b64e89c11034e65857", + "public_key": + "6ccbfc3990d016d9698e355069721ea9ddaa618fe0c22aed6f1969ab655ac504", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ae6fab73a94e08fb2348c594c5fc3f0b88e583d6f91ee21ebd74958f901fde0f614d479397aa77ec40d35d53239d46a9107eef687d696147463537109be252f7", + "public_key": + "d2498ba05a9cf90931b2d0c5a5ada17c6c94b92d8acc984c18151988eaf48d1a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "68547b588273ee312a60be1733dd6146610957438aace47d45c8f9c3ca9bc6010a4a4b93229df1c6b5f12995dd3f3db184e4964511d31ae1f30a2f5bb3a3aba3", + "public_key": + "a05f42c7d1895ab3e8538557be9832e7bef582797431a1557a2560b5962e9877", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "443b54bdbea14afb7e83a2ff86707fce18259fa219389d6346f57821531f370dfd4c62da2585aff656066a643f9edafdb0ba9659c1905ba9c311f15f5cf90782", + "public_key": + "a00bec797c3baa27e6474b6cefbc78309a3a23fd84a183b34edde1da3e41bf26", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b7d4570352ac5b0ccbc42fd16be285809a1c5c4e8f3d8ec0e043cf503be5be0b0647afebcb4d6bb8dbf5e68e34ec016669ac7dc213eaedf10087cdf163619d56", + "public_key": + "60c5866103e93acdc033a47418d86254ca400bf8bfbfa720458834fdbec4735c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "822815e8b5108068fb4511ec44f3ae07154a13806816bbd5a3bc7067420e07ba", + "private_key": + "e12f43f241f97f5bfd9bcbc7f0dadf1a2d1e1f68cf7a20dfae7976bc3e8e6b0924f0a7b31ee3b7825f6c7b9d50c385ac513ab5fb90b9433dd4fa02286f4bcd74", + "public_key": + "12f766838cd38a55f8f5634f6bbed4830bc37daa179fbbfae4bae5d317f7720c", + "child": [ + { + "private_key": + "464d63c74f66cc184ff57cf459599888dc783701a5a574172ac1a4e25915990c40e03b4a6722e5b914bf88a24b0a41d6f419030d229b92872324a0535905a86a", + "public_key": + "34fad31dfb14c1a542170e209916bbd7cea85afc65f46ec15bd4b70b44b12077", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d15afd636e9e1674906a1c2b6b1a92c7dd3b89499c6d149d5c0800cbae4ace0d5669adaf3aebba24826f5818222c404165c5060edecd0f77cc738132d82143b9", + "public_key": + "e49e34b623c16c68d71a637351fbc4b829798a76cc10bf16982c2a286ef4935b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "977594b1a6319e6eb88e20a9d3a4b2a7f255414882f74d0e92521ff59582c70d6ec113190dff9c8b307bb929b3047a3d474987c6cf7af847ca4b431aa917fe7c", + "public_key": + "2660931b5aaa031f586754c0bebae446e109f448926b834d4717f86b8d08117e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e42521c296f1e7804cb5b5f71a49d9a3f879ea436f63a922286e51955141c30b702afc5cde98c59a4da35d6cce5653996fc8c1ae2483bdf69d491db0f309b735", + "public_key": + "d8bc23266a96bf6eabd37c4855fc0826ccdace22db339ffe4a9fdd5909062d5d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4d29b126ab07f39158ffc434dbc52c8cf408c825f45a05922359c92f108627096802932b5aee1ee7ed866e7ba5f6f6350da0132cc46ff7af0bb09266ff816606", + "public_key": + "d0cf95bc4a01323d8806a58a026b2d0f3e76bfcce6d75b65e0f0522fe145455c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "3f221918574e6e8355b7aed34994e6291baae6c7062d018040752fa62d01b4096689ebab8978c0049ce152eeda2e4dbb48b3687c9ed02270d4dc6122f48c6de9", + "public_key": + "a883f36852a1b52a3fec2b9403e0c794cc5f4d03d4dce69b52c9d1d9b7867179", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1121bf5760076525786e00c76bfce1862093ea4c4a186b1ab4966c7095da720290d6b8c473a2a2b3d03210f44c6b5cece829d92818dbc1aba79d49e6109e66c9", + "public_key": + "04d13fc8dce824d679e7c6b64a11e485ffca8da375ba05ef06f18f152efc2f39", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "6fe92f3e1b03912eb490142277735f24bbe46babfae6e78be7557a3e43b00c9c", + "private_key": + "e0d29cb277afbe090c35199c0b436c0ca04e51912ce062c8981c68940bfcef0f347d508f83be474e381609ae0b60c130f7fcc9a383f2434c4cac3d87772a2ae8", + "public_key": + "8e3e667b087310da02afa6439e4d1205fa0839c10cfefca1c59041799692cf29", + "child": [ + { + "private_key": + "4f3b63ada3107343cd10c096c8e7fa93edfd2dec1a6ff793e87634f46aa5de084fb4c8a4484affad488e5912bae38411f176c279abe5712a3e4f91fa7ab7bb21", + "public_key": + "30cf75a523324ec373b0d114ca3c7310f00ed061f0c9701e304e0307e1faf516", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4ae6aa6f5ccd113103c970db771d3c8f7d2dbb000813df9969985a425e71eb02911848a1ff64068804ff31b3ecdd5bb72b6bd2dd83315fa6171962726fae903f", + "public_key": + "d08646451330a6890ba3ddf9aec8a726a3be839734d4734a813a6351ef64944d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "c6652768f1fc6d135e16a5ca9198af7ce887fdf9e1eea19882ea0b9c8e4e9d0a048bf795409e3dae3a6b78204b8d7b7e1cfb78aca053e89c0682f1c57039350f", + "public_key": + "6ca83aa3eb339934f348c4ae9b18420e5dcdecdcdcbdf0c230078ebcf0c9db6c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "850fc556a21da5ebdc711c89f24797e3d5003a5d1fccca49999ff3aa9ffe000e48948cc063a44e44e8dafd14b8981cf32497e9e323b227c701d0247c76281d17", + "public_key": + "369f7688fa57ab34368e4e5b59ed5c3bbc30a45ea6b5bc57b7c0e51ec0db9a52", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c22559b60ce5411b7efb99747f6615387dc50b10898985d7541c5c571792420713bf07488c45cb9f6381d40538aa7e9d1bcd7aa92c42ac05d68af55dc803c481", + "public_key": + "0e26329a215c5a4e16124d00318184de610ce620a40e9186ee88276dd7788250", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f7440e754e63bdb6820506cb8ff9723650dae318709117313a2154208402700be091a06d3e6f5b27be60f322cf1ab33483654ec187c789de0fa5e4ab7c1ea58c", + "public_key": + "4e92b2681ee34cd427e0705bcec51c49a0373a83fe22faf2f84eeb55a6eaf848", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "568fd12dcd8a8dd1454e10e39a9a4af0f90b34996565bbfa59dc69b21631f90d8752da3611b9d99f5a1449779cab3f6c6b78510f26cb85d5f5d21eec32eea9d4", + "public_key": + "44e1f6a6346a2146d6e9ec025269184e8d755fa6b5ccf153c42e92f7e2d4f342", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "889a0fe44bbb2a9ae0f086f309ab78e38b0250e9d2ea008e8fb078d34006a456", + "private_key": + "8b6dc2dfeee0aa837aeb8ab4836f7bac84679f2d8ad1b2a919377e0f71ad1c0f18ec3baa94a227a8b9177a172ed0737d4bafa5e45cb1aa3dd05b3b79d389fc56", + "public_key": + "3a9f56c0b3b8f1935c47fdc8512de0b9e8964d51ea92b23d184b000447999126", + "child": [ + { + "private_key": + "893dee9825184d4d9332d425b544d1f89b0be97a9cc840402edcacd84a771a0d4357e6ba77f98bae0cc7805f262f0c5bc38201454f91534bf42dfd671661bdb7", + "public_key": + "4c5b64b4a2dd7c56a5161f4538c0521a6647ee21e091c351bb8d56637e105f5a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "da84836e3018db435b0607ccdb27485643b4c2844ca9293a1aca3b632d5fa50fe943beb2fbac12b8f47b0468052f3399362a19d936cfb9c7f1d15ece27e9476c", + "public_key": + "328d932fbad15bff2038738f495bdff70307f1e6ab40cab88ec23fe22165dc5c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b907ad25f011434d0974ca35d840e966971b3b68a946b5db3c2cc891efa9920e285dab66509be2fa12f4b40514729cd33363326c9d820ed0ee4076ebc6161563", + "public_key": + "4298f24d39cccf59caacc387c53b1b75ffbb8943688315772529f7d1b261f955", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "eade88251a1fa0616bdba901b09f7b9a4c399b6deb6ec5b0fff161fcc078360ba7220957ddd8063a233143dc3ce440b4905ebe5e51b4ef8014b4d4ec6821cbbb", + "public_key": + "aebad38b06d472e0ad10eb98f599598b11d73cf154dfdd43fd43b5d2caf7c145", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "309732264940ff6d658e30602ff800792f2c96e1359a5c404f139cbe7498bc0886bf65a0512439db162f9e6b7f8536e03fbe11b11d468448353559495c7cd58a", + "public_key": + "163e54e86889b9e1779b1d86093bef1f15245cf14d20f7233cdce72f5b31d828", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f97cbc1c8e6dd0f3ccbb4b293599a9c90fed21ce93c6f41ebd04f2076c243508f0fe334e50d1d25b5089311e2aff7cc16a2c7ba13242ac7bb3b690362df34cdc", + "public_key": + "9897398b5b2e031519474155d4ef64bdff46dbf7db5d2ac7257afd68b1c4d504", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3ccd0dde76d7d6dd3fe1c2f9418dc6f1d7711d279c14d93057f5a6a8bf21640c41d0f697f41ee565c8df1488d9c81ecf35ce89b85ad5995ba25e762536d8a654", + "public_key": + "14fc6e9af9017d149416d917e2b69a16b5739221963f445e67e7d6f74eb5a652", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "57d76540b5002a2e21660abd09c7e7d5967d18c613f63dfce4fbb8efdbfbc79c", + "private_key": + "28698871c877414cf925e57233d4ba5e04a8e8185fcbdd4401dff434d06ed30fc9959a686a0e3f7c2267603eb713098a9952e6fca0905d38ad2a8004a0c01aff", + "public_key": + "80d9e4408e77809cd133723ebd0a5d8ae93efaf5918757e2a3d5880f0c78c300", + "child": [ + { + "private_key": + "9fb524a7a09525bbc5b2cc43b9f2d42bb004d6364ee115f3cc6e92afbc6ae50c3a718f80831f85b7d294144527ee3531f601c7d1e515c82f43ed67d17c8549cb", + "public_key": + "863bf2976ddbd95347264fbdcb5dac0fb82874c93a44afe88b1f059d4ea0274f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ebbd91b31407a614ba3eef477a639d762e7f0332dbeaf94223f3c4003e55ac0a19e483888d90a920ea1ad0c43b15c892aec5e9dcadd48b342131eeb722087152", + "public_key": + "1a21413844f03869bb7c24df14fdac7184cc55c4850cffa867bf673a86718a59", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "31ba9c3a214a783c30548a13a466a6110cde204d700c8fed5a2f08f309356f0a6c77345d7dddc5ec50da11fbd0c8a828dd14624a69a3b8e37df7f64573f79ac4", + "public_key": + "26cbf935fbe94c54a088b152518bb36840adca9f0d74434d6cb95347c82b1732", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ae676e6defa1a107d293ae926a560f5cf9ae56f4a30a50af368c3a86991d650ea68504355030cfa24fd776a1bf323c71a1331990255f25edf1c36e999ee27279", + "public_key": + "82316b1d127e5bd749529abf86d3c2841448d07b594ae3cf5a54ac6266202373", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d60ef3905cd4a22cabefbf0676bbbfe41ce53a8f5561c30d70b1c03bfc3d3e00fdabc25609cced18a2c28b1c624fd78297445cbd6c984094c27d394e2eba37f1", + "public_key": + "8af72c8f1352e1e0f2942bb0c86f699e675a0373ef07c5ff46d847a8fa9d9a76", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0ef6d22b57b3f48f843aea01a6f2b6ecddcde1466494457c52446d5027e0b30c280465167db3a37a474cb40da458969e6352b78733326b6cf0d3eaae934ef6f9", + "public_key": + "42f25f197f234a8aff2de402b65c5d62b90941166d8fa568e26ffe63e51b3e01", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d79084d76f210ea295e362b6e491eccb16ed1fd736d1faba53da2cabf66d110de2fdb972f55686b06a6f4f37dc0536a18fdfe0b52f14a209c3983cb6d3fec64c", + "public_key": + "921ca2e3cfceab4e53fb3ec3d0bbc7d319ce3eee2e144102a4d0e5d186d31422", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "fda053c7a65ba8c15056efa11b794790330fded031b6c15495dfad6ae58436fb", + "private_key": + "e6578fd29436e29be3e6b6da18a10287c0f28cca5f17def7937694cda382ab0e0fc437d2651721ff818520e6af34d101ba20ac085abdff04b8a4eafc2f93be71", + "public_key": + "903d18422be0963764d7e543156409d1b3da0c8b2122387a3eb3b394f6c72515", + "child": [ + { + "private_key": + "b84c5b5ddf92eede716e2f671f4f78509a7e3127555230a873e4aafb58a7050df10a0de27595b1a4785c7ee7c79e562795d763c2658f98c672ef0f0fab5bcdf4", + "public_key": + "ea7d214f0eaf0dee7f40cc314fb84da479058dcd49328a6acd2b03807e8a201b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "032161d9168aa13d023b3c842e0b92e33e5c062b3fd1c2ee9429728e61fdd50e14e2dc99113f31559a9824e4a6d77890479b237ea65949bade242da9a944b9ed", + "public_key": + "b44fa7dd6cb7b26d99b35932cb27e641fee831f24a16565429811b3470ce280b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "96a7a784d0d5c056fc5eae785ff391ba7559bdca80c2c90207fbfebd196aed0f0b3f49ed04386fe5674559143cd7a3a98a5cf5e5f628e5b918280e9c831f3c46", + "public_key": + "d6379e62e65eab4aa6ad644ff82a1912280bdc6af9dc7d6fd2f5cbca90c7485c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e482f03d7db8fb102413aeb967e23e1f1456c6af9a2a6a302b1406f175790209ae5aee96ed86871d7f964c3bcfba1a7615807567de9537e5d14263091772ac83", + "public_key": + "3c56f1af4ace2a0439bb4bbb5063f265d04fddc8ceb06e793e2c8ba9247b744c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "581572cd733c54d8c8c38a05e3bf68f2531b0fa92ca6f4a8ee26a9e14ad7050f0b8901cfbad0891ee579024e2e8c11156ce45631a72fc89cc0b12eec774bd7f2", + "public_key": + "246ea44ddf8c1d92fbce1ef0bafec0e34872c5db0c4ed6cb08fb798af24d0a60", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fad0a9f155b2a2e2d6d8338885801c5b117c2463bcb1e6179fe0d0a0a85bff0ab557c8be38716c44b3e9191775ceecbb4e093d2993fbbf720a13b77c1667fa76", + "public_key": + "985db4e6a18ef605ea48cf9c0277cb02b8403758440929f3275b71e068efac76", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "84221f85437848c604c936a261d9f68846a8776a8e520951b865976d0c7f2908d77329f8a64a6914344cc44e65b9590cc2f9f846a208d864758821a3f386c582", + "public_key": + "c2435ecb7dfeae94857df93f2778cc87de5823c26edcc24926e227cf8811084c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1243f8ecaf5bdfae8c967ad0c983c7c11341ea3b89e2fb5df64b12fdde221ca3", + "private_key": + "9ef0663d687fdd219c0d950f003c643b1b71897da2a1c21389fd45555bf85f0b88e2e76256e420303eb8b0797715e4be064c223c83ec5bdeb072f0c0cce4d8fc", + "public_key": + "56655320f1fedbacf07e374d5fa2aaac3078339bb10581cb5ab5634bed81ab6b", + "child": [ + { + "private_key": + "034477ccd87092b55a2f48e5a82c62a827b5bb9316a49dbccd1a9eb4672ef00897f7e2c5e690355a380f3bea3c2f7942cc5d158ecc1400ca67de7d346618f341", + "public_key": + "aa153737d7f0db41880a48d68cf22b43c44bfc0734d77581a42b80152df2360f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "111894a5f721fe501e2623798385b3530b32decbb810eaa21f0cb6047b222f006fede5db30fd8172403aff0bc9de8257dac004376eac460e893833a415027501", + "public_key": + "bc89a8c1b2d2e0ca96f6771009f14e3593f3e12a0c74a0c45dc0dea414fd6979", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "dc531237405476fe1f7f876d36f2245c06a7ee03e5e91f8d641b3e634ea4500e559141c3521f5c3129f0b9e5fd7c5ce7d75c5f43a2284004dd034a9d4bd0132f", + "public_key": + "cccb4f18a7c7b018047264690073d1c54b1b91870f579560943d7d7e534a0b3e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3aaf97b56b67349c495651dee1e58947787becf0e17831e21299d2df8b54ff0fa159bbc8e8f0f28499da02564dc12804c2fcd5073517d4cbfc7e4814f9129a7d", + "public_key": + "6c8e715db43624bd3c4ad2a784c37a7c50536ce449804f4d907389c7a5559251", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "924426a74347d292a791755bb87669dcb07e7c3e16f30e53270ed9aa302e5f0702f917d1901d6afeb7bc8acb958a894d49fcde350a9a23803cd5b78f174aad99", + "public_key": + "c6d25b0fbe6893a3d10711558c0543502eb3d115144296ef8cd58a834d026356", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "5ba625220d47304bf126ddd1a5a9c1ffe2fb69286fc64792577ca3b16ad5be0d1af41a2af72448fd4e816315c0b564c96b6059f2b6c18101a48e31b4f12f8f59", + "public_key": + "32165ddcf4297d5793d75bf07bd0ce5672cfa6eb6b5e5c9d5015b1fc1677a370", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0328b47a4655110cf4648770c66cc77c89e49bf293886de0bbc472b39030aa0bbf0ca656a184f7b418c0cca4f9e07af254b2aea2f191b6e4479fc5da650cfe68", + "public_key": + "1c9e164a345d4c6414695b05c7946963bf50e50848b83f5bbad0864c2e1ba14a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "45383995ff44e859aedadd4541e9da73508f2a9ebf3190cf8ca1673fd790e5f0", + "private_key": + "2fdfa8689c9fecd9ce69bd3974a75804f6727fc75d9db7896e8961958e99780e5ad37b6907aab5fd26e11e436e4019567e3c3f81561ff17953f75953340b68ed", + "public_key": + "5ab042c69c289a0fe1e507f8f5df51da6218ab0085ade64680f3b215239e880b", + "child": [ + { + "private_key": + "21248ec7717aa74883a60302c1cc191410d0ccd44361241b62806d05f745f3084fdc169fb3dc597d21a9ed42141f77a0574786b49f3cad49700ad532a0efa5bd", + "public_key": + "3cbff097442fa68b98b2d51396735b018c6281cd6340983eec4c611a1bda857f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a1e764df16dce80664b09290713052d79e1f559e3e06d9fd879f76a6c133bf0f1448dda389f37d3c9a35daea0b49af9bff1d4aff5981b3ff532a43f47a1f7bd4", + "public_key": + "ca37f33dbc5657eb6b62021e226e6943f36e08be8bc7dfac08f4463f4cad390b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "4ad1413dbca93f38c21ef255a48f6de56fdddf5c773ed2784228d3f3f4754d0c854ec294f856a53cc2812ba7d96145a1d1dd6706f87cb3e963e704388251037b", + "public_key": + "2021b2f29d4b087e7e4356af47a77e246141c38da79a06373015ec4815279f69", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4cd5955a6b7f40c2646b3d630fdc7944ea2570e3b18ac38d10ae913d89903609be0a7f0e5d97db753ae1609d77e610bc78bc50ff2548ab662532de21502ecb4b", + "public_key": + "ec23200996833c06654e0d59e0f8ae5dc5a8e0bb601f26177b19e3d1ffaa4643", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8e91a4573c6aea8fce6051904677ef82c13a20927a85a18a68fe1bfdbc1d07013465994fba48c3f38eac26bc0ccd6332fd620b17d7e16689fd4239439503c510", + "public_key": + "4cd6bf5ead0aa9334c6970a33d19b63725e387635fe3f8de0af957f55ff19811", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fc3f823a1e0a010020ba3b7d96a4bc24efc5bfa18a6de4047314799d26f746092fa6735db539560078fe580e851f0b13788011f9d022b3106d18f44749f135f8", + "public_key": + "32510a7a39c18e0e5eecd207fc14dda78e4db8325819aaa8b95ca954ed83fc41", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4536b81925177840c375b4b76a87287f7d5cc3237c21790b695ce922b43da30fa18225b64e6ba26193eaf32f01bc80303acc5be4588f7bedf4c252747e5bc760", + "public_key": + "a2094a2b077284d28a1fb23d3be97b36ce2e532c35e0d232f123d768c39f616d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3010c7cfe635a0d8ea72ba5d5937e86b6ba411c53b2d2d6bcec56b7e2e17c6d7", + "private_key": + "4c495e4446e0589a58b3eba9b6684919bf9203bb47deb1c11e04bae325e256099848c57035a825939ffeed69e2bcf2a031346f53abe97fab5d7e62b18efc1195", + "public_key": + "ace43c7b19522f1e48b571fea3d024771936e15abc40989fad0b56cc7726ed6b", + "child": [ + { + "private_key": + "e68254173b3c21aa402a9018ca43db25c487449549426c776404e06a7017bb0d809bfa35ad314992254b1c842d30068047e716c80ecc792757adb80ebbd3a7e1", + "public_key": + "a6727364e75b1244cb22f327943763258480f212aa1a0bd329f28783321c2836", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "391955db7b7156b1053c80134960398c0243c20cef2d21d986b6e2b1763d290197b1ed799ee3e21bb28b6ea96e4ff8b373459dd3550fd2d15f17f60eda80bd33", + "public_key": + "b4ba17e809ca62d53e461e4ab7a5eeae394992ef95e4dbeb5d8ba0657c836a50", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "20734c2836183d8b3a9a05d691055d361700b7f2dc0061fccf845c852cabca0e12f6c78479db5e1eae63c2fd76582efef37191cfd4e98a614be87844e18b5e8a", + "public_key": + "e0767f28781204a77a9337e79296f57f0aa6bfdb1a0f07b7fad564c6e2cc6138", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f28c78d728a86764e267d54964d1d37fd6c18bc1e2b33b16c594089abb1a4e09dd4bed4ab94c0eb63228c0dd5897b376bf917b9d8e3045db1b1cad2849afd339", + "public_key": + "e610020b281203563623f605cea7276a00958067f6cf21fa2f2648fbac7b5801", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f8447fe6b55fdc3649ff35aeb8e1423948c2a847a81e37b6c8d070ac6ff1510295bd5a641466d2af3dd230cabbc7620610d443fd116f509ec532e593d0b8b843", + "public_key": + "50ddd4a145a47e7b004a1f6c261b6c7327555b50cbd9466268d54bf859f8c44d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "72de9fc917fc6595ac475d20b59fe5363271a61c3ac93159be3f4155c920b30f2b2433ad97d2cb53e0be58b8b2a03085aadbd4cf9dcf922ba07b366e78621f37", + "public_key": + "9229d14a9c4e22464212afd4f58cfa967381ac8885e5974f7b361eab80b6f831", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b2b10ad1af59a6d25ddeed2bc1d71a8b4ff4f9b602796d877e1f8e6071c05903b006fc0983278870ac89937328dba69f8a606bc2d7a6278d0c14d7d42f765f28", + "public_key": + "4eb7bdb529d89aa2fd87c7a82ea0b99d0abc6d0a389c9a11b5d76af548f93f0d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "8425338e5188f12ca581db7cbc6f27b70dc14502fce940920eb1f4e3568799b4", + "private_key": + "7c0ea18558c483eea5f09ff24ca1e4a58c811b42b4697b1ec7a5c68f4e0b800aa49441cdc7beea54a5ef724b83a19b12e627c444eafd475884e30d0ed9d124c8", + "public_key": + "c2dba9adba2e361ae9a43c8834dcb2c9cf7f70e84c3e15d2f7c29f83d7dcb92d", + "child": [ + { + "private_key": + "980009cdc52be8a0698bdf82afd6d79e23b5728a37d57c4c7ec372a5ee27d60ba7c25c455721f601b82eaeef3dd3116c57d25028a40f85cd05586ab01f65136b", + "public_key": + "8655cb1d4dbdd835458abd48b6a90bff4d96e845a84df225f8ff68dd8db7c57f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5e4eb20a135d481063c20f2d4eb75cf6881654d3c2ca37898a0507bd69d066042f93e03875b7c8cbe78ba1cb113d8d012f512c86a3e44126425bc29d66b00a8a", + "public_key": + "aa720abfcf65c765f073946fd2b582859a511f88e1ba30459a2d357c8442fe43", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "473d502250fbac5207771b64155083204de829a12ba768681310e6e227b6550f2824b22c9552c23c6a683b1da129429a0f972a420dbe6d187af47710d398c0f3", + "public_key": + "0691075d8f721baef969039f938760cf6b87ae3684970ed0489a927d9a5fa729", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d63fe8fdef295e20934d0691750f1ce1188213ece89352ac5a03b8158657400fce2afb7154775d7aec458c954731820e3c39f98528e4e7801fe92e7f378e9934", + "public_key": + "0a14c7b836bc0999cf445467bba154ee710530c2b0ed0a23ff3393d9a193c947", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d3cf358de69ee9f99cf9480af9e0559cb7e262492293a2663f0be35595a5cc0f82bd60082468eab28219ff2ab70aa89e650906f077feca0f07b32a69bf8067b7", + "public_key": + "86d63fad62bcb8bff644ef697eb3f055ba2f7e3843310ab888f93b9b503c1006", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "88ced44608f15181d667e39e51c5dc66ac0f8a58db838533464ba621ec32600c966ce74e1311be09643525c1673bdfd1b5d11b7ffdd99526ed2ea909e933dc55", + "public_key": + "468aa77e08e78b19c424e76ebc4254b131457b942ab773e080a6529d1843e233", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3eee6e086f018968267f0e8a4e8bac0e5ff0cd13417ffdbc2bf82c6f000c3e061967265be967ba0b1a4fd4ab5160b31f96a11becea4b2aa50841939d89d56543", + "public_key": + "a68c5dd5556af2dfbf4c32e4803024fc167bdee1297f0453d3d212e0c471a55d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2d6f25640034405de848f5b53c10e38b2ad10592f2f4394ba0198c3fa43fbe8f", + "private_key": + "1314f069ff6ec9fe6453518cbbdd128529d73da96e19e0c5a05abfc054499e0ca8a10318002ed627c35710bbbdb451ea5c45daf820ba6da7d8560e945952cc47", + "public_key": + "4e9bcd661c791e83329bcb0e38cc9bdd344193fe1cb85bdb86827ce10425473b", + "child": [ + { + "private_key": + "86931ce47c2fc764a5070cbb981d1c77b5eeed2925f2fd4e7da6812acf29f50c2169cedc4473a6fcfa0c9217816f8bfb2c30f259f2de18a906e93fe1581f876a", + "public_key": + "fe420fa74650cbfd90ac8d88caef0d0eae64837c352ff42fdaac8c7205f57c01", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c010073e26e85ca2364cb1767b9057f55301a125a6a6d448ca5419a166c1a60e73a0fd3aef67f425291278d708bd220b0323c511fc0bff524e2df6bd09ff2514", + "public_key": + "1ca0e5cd06e23642ff48993fa5756d7112d96a917065d8573e49c56adc622f34", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "da6b0f0c737371a2726d86e02c0305c5d6b8e2ca7c4196cf4d8de72760782c099ebe31c75e162683d01ba10f4fd269fa60ff2667f8068ce4bc0e107b53fa4644", + "public_key": + "9e77eafbb553a362b6a77912fe0001ac5245f1f3e21a46c61993d73bef302209", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "61ea80536e0ecc7ece8111df1696f3ee215ca664b20426684a39286cd4ef150d376a65ca463032809f9288d2e8a615063132cab7d46dd22b7434e9968a03db6e", + "public_key": + "c4e697abd9c37c76ed430b46fda3ea05c648b5ade062d8b429930424b6b10965", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2f16319096cc4d06d23a68a4911d31ee13a5cc0c20db2deefd8091e2d6896405f3f93989b6013d309a40a8bd0b61ac475ba3aab91a11e4753d303a4effcdb340", + "public_key": + "b64e08a992b225cd4b78e540a4518c0960719df871adf302582f880019b8530a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "57415f63c27eb9416d2e84ee7fedc3de483e1c68869a169128cdab9c90e8aa09371503aa54560b1e0aad8cd2d164b953848b3b82ae160c114e6a6ad01c76e48f", + "public_key": + "3a35b63f3f5a434c1602332bc2d1138bf98a8d91ba8892dd636dfe39c91b9c60", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8cc345343c7b25a9e8e551b214af127b26938fb9a8ff5ab0104f8632724490034aff32a7489f9383aed237c5280e1ffa613d29ba0777cb17480bffe7b9f06c35", + "public_key": + "b206a8d067ac8cf184e0be1f1ce6a3b445fa590f10397e56744eb4637cb6ff5c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a45e75059cf320850ef0ca866fad415f70f3b8647eceb372c8dd254b38e519de", + "private_key": + "086de34726ec5cb69af4429afdf1940ee0b99b3aa08f7ceafb638d2ef1a20d0c4da083f2d092e2d68b827e9f545e882930a9519c2025939ef532acbca6c82a71", + "public_key": + "a818fcd21a2acd5236063dfe4ae450fc70e734830e8db024fa40f42605837831", + "child": [ + { + "private_key": + "dd03b90c80a88c01bd9c6e61e70ce25fd25397fa916d105da31c5a978ccb7b0ba41d9ab70075e8cc5f0ad3852d6a06bbdf47e0c13f1f1fd703ce0e5a54d9c18d", + "public_key": + "7a7af984ba19fe613e14983d5f07cd4400ff62f952d675b5b24b65e992ccb579", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c4fc1ebe225eb89a3934f496ba07114f1291a54d1c700fdc24125e087d1efe070c541cd00982fdf85a5a9e1cae9bd43dd012d5d18bea8c82468c1cf13284cd69", + "public_key": + "a2e15d68245d1ff97a8f044bf0797fecc3582316d9349e7437b8e93be7532477", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "704c93d86b5265bbe11163f7bbb0616467fa8179fc3236eff0ff25cbeb086808bcfd6b94de5782d19331ee1b2d29b5f19511040edbfcb57d3c06351685b61367", + "public_key": + "8074fb9c912fdd7a7d19889b5bcb1ab90e0d7ad57adc91c2d32951fa500a6a11", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "200da6cba46759d7f35f3419b292ebdf435018e3213418ecb5eaad601379b608cfb79d8a0bdfa470e09c810d9343efaff3d02b7464b9339673d038ff99ad48df", + "public_key": + "cadbc0140f2de32d5004b47b7b7a15fccf6f6d4ee91bdd9eb7c28e1b6e313a70", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a6cbc0a24797257821051e23ce7b417b0f24a79adf67a84b998fc476158768069398d31260f2ffe89a4ec543fe49592b76d780b9ac0ad14daa4275b6e6ef5a99", + "public_key": + "6ab0fe7f153696b1c15af04d9cc6d04a97448e1c81406209abd81c0c309e8a48", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "58354bb172ab197dff1e7614521bfac06032257a46545f3c57ebb91f1133220963c6fdbfa4142fd12c47bf96a1e8319b2b65c8d762983310902958b029ac3c2d", + "public_key": + "3243c314ded1076e92b8f36f54d0fd7c22bcb2cbfa32b5b9442df2a3d0849d37", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ea91c8e8fdea3ebc6a7a4a2670966f00711f63d1feedbc2f83b8c45bd07d4a07f3022ae6f33a682d316b49bf9c9bdbcc3589e65d23ca8a2c85d09b5ebe5b264b", + "public_key": + "04f570948bfb815f57fe45563139005f75fd8ec0043a43c815824527d5793c36", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f9bde1df4b301a7c2ee7b763dc2d3d70933be3cdab758da181367a7a7d0b1e74", + "private_key": + "63a7df7dfc441366d54e715a2a3a6c0bd1b8379eba98db67880dcac4369ab10b3076e22600ada95e0dee7df2dce516b09dac3604bf913ab07574fd838fbc6793", + "public_key": + "5ab6d38c374314c71712ba08b6cd96832c7ff14df2ffedad02b1f9b317f68a10", + "child": [ + { + "private_key": + "cc19f3283b285160bd9d77ccda3b28eda730758d9be9cba65d44f07ca355200bf7c8dd61d6906d308c26c9154269ea09087f8509b3f898ada72ec9f49e3feb3b", + "public_key": + "b25ae228155cb4652e1e47c1ceb3739e26b749044a993977e3eb110a8bdee825", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5a18b40ef3b35c85984dde78ae28d2d424e4cc3c82c7f1dd5a15f86d3b429b0b47a26862450f8adb2af215c7c3338d48a482791403c03ac46bfb35f3380ced14", + "public_key": + "ae21c3838d2d3b3098f6cae55f887a985214f2a0819111607dcb6fb895974507", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "33f4fe5b086bb91028316cacb7de6718f97e81617ab8b399cf4d5ee333810e090acc83dc8a86b886c06d12066fd6990f415a43bda6345002460d738ce7436202", + "public_key": + "7e7189c565b4bc1fb74f51d2a17993ad494aed565f0b593f2b1363ed9e63981c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7da546b3a79fd601ce51148143b1380f9593e66229bb86db3dae1dcc926f870d8169414440df5791dffd8452751b7d3a819b01a367619d6ab11ffa7481978ef9", + "public_key": + "5239c4e0b6f6bd39ee27ad7716a87520c28fc3b50943252315099da9e0d2f103", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "64e2c262232374b2ceb672b61dfbcfd3abbbabaaf75ea3490d538e65596a5000a6babd35a6411d6129e72fcf2cc55d59e0c77f28715a9c14f370d02e3da0ef8d", + "public_key": + "02c0398fd46cb1562b8c37663444df59204838c4dd68883c0820fbbbc9b84f1b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "1803c2296eacb8b6ccb86d7a5742e338e245e62acc509923576e22f8e881b80c3ae7fd23e1c2fd57b3822363dcae9410ba0135eba552e4e432a6fab40ace0610", + "public_key": + "0c0ae9650ddefd9bff6d2551609efa0b317908fca04c4bb786442e06f55e6b31", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ecfdf1b9d4204511c8e416fbaa594385bf1c2d64e7fa2d4290294efa4a469e01fd6f217c1f2e1bc6c663014100c224fd751bcd00d7a5153b33c2ecdea3ac1299", + "public_key": + "1eae0ea4a15922d98b2af0c9d80c002a2d8301285684a32f48926737ae31753a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "89d6ea9784ccb57d09e158ae1117f5db86d305729328a0311444f83c239081f9", + "private_key": + "d6c70c9d323ddf4dd5d182e23cf07d705fb4f2bb100f497bfa3628a744527e0b874e9de9d4cc8453e4b8dd70ae19b0d084a61d3b2ae764684ee0ff373f952880", + "public_key": + "36d2df07cb52292c9b8b889c14098b2b709f3ef29dc08338527ab00b5224fa7d", + "child": [ + { + "private_key": + "3bea73992a8d797951f9cb2bf4d8d6115fb8ce2655a60fd7719d028ea5f5770d5e0cb9fcf4658e0c861f48b6a4de0d7b77ffdd6791369b58109aeb116288aeb7", + "public_key": + "725911825a2260f229721c315a7abfce4755a43a6a68b3fa69bf8737686c072a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9dade4f337c7b3ce217ad3dc9ad6e3d58a2eb420186a077663933d1302db130f3a1085f303f77fbffba3fed1bba6373f18baab9819f6475c2fe35ed510f5c9a8", + "public_key": + "10fa5698ece282836721ca46359e18b628fa46dad469307c8629a5ed6983982c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "eb2f44d0e693a0fde90513c3406b8d11a473d0decc01b152e7db80d7cd03b00cb788b00664dd8307968fd48d1d8bdced093f0d9b40ec9a130e4c722763790922", + "public_key": + "1c91c4d85bf1459147c3f84ff405af163da9fac05009b5c07b63d37bb1079218", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "12a2d6389ed771693c287cfa79d66604fc77c0f510a2fba2c0ce5a8b9df90a0c839128857f102e184c1ae2e1b67372cec42e4882bd5919db5e46acd58df2babb", + "public_key": + "c44a1b5d5dcca5408f1b6ae1f2171ba8c4e2e126f1e3b5688bd53563002d027f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e77e4d755324b145a4e96e3abb98a01d3cc9207898c1b3e340bb0db97d5f4e03f087b8b714c4c9f1e1f08cd7ad052afd6b339db0ef7d73ec33875ded7fe1f6e2", + "public_key": + "4a091cd118d9720a4355383c4d3adefe131f7ecd28d6d71184db9f0d1c8ddd66", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "07d8cecdef969c2b9e0f5d809c6570affaf01aa61f66737d1cc61f05bd61f40db50a0b4c642aefcfa9961de3a8f9654f408c4d4e9196211984b90bdf4d56aa74", + "public_key": + "24db40edf6f5cbdd6c8ced12e1494660c2b788ed95e8a06d064f41a285816a13", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "38abae33017baa7ccb71c82ce14e782d1281532ba95cc0c1703aecbec8fc9b009b3c1d8902cd51a6f2d856e7a7478288e511e473e90f007e01a3ca3eb0021835", + "public_key": + "56bb9212a37ece11b616322d8e5b88899839e22f8f3923a9546abb466e529a5f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e3150e65d9755fdda337990ddee81327d27dcb8a749412254f42d209d7134cb0", + "private_key": + "41ff6181f17814f16f590b901e2546b4df565a00147c44597fc97ddbe11b8409eaf2e365e2fe7f6b948f3cd0cbdf9710b4e7e3e7f6bed4836507451814345008", + "public_key": + "4280ae20f9c0989acfa3b8db0f7d0eb99be00dca09cf2a23969ac66ec9cd0a72", + "child": [ + { + "private_key": + "9d78d94abd1a398a479f153b0f66ce26a91c690dbf9f3c7c535b88962df1e90f11977919fa637269d7d24865db00e5c51b1307164fb57a7ecc38ff29e911874b", + "public_key": + "3451bd363dc485a4b878d4014ea2ecc329788e9b675dec9e82b4163005a05a20", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "86955d6fbb0cef3e13b78b00c3506545ffeddbe383c99d7640686f84beab5607938183b91216e68d25dbd67c75c53f92522bc12df2da3d599ab9c8f046b41398", + "public_key": + "5a3a1eac8ddb1a476094544501b1c33330695f18b0da185dbe1862a8a913f445", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "6311a534b12784c6622e8b65a91022775b41db42e6b34ccddc6e742ea2f33a0aa4319503e287c8dcdb43636a10fe42ea9ba5ca707fbf4a0cfb65fc05987e51f7", + "public_key": + "d2ac60e019a898a30c6ccf3a61760037bb99f90a4435048e342acbe685751454", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6455d2d1fc7bd5046517c76d65b17fe14a7c8d90e6e663a8cc08652a5141880ca0ea5f9a0ebbc962aa864f01352ad16cacb1b3eaf4f048aba9a5a1fdca5d95a1", + "public_key": + "38f343d52d7f49c721d62cbb52ba4012275ca0b67a335270a9e0736dab0ec952", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "52d51af48df5b7f6bd1c8bb519706ddaca4634cfbeab5d78fd84b414b22b9d01c27022251fc7684bb5e49adf1f2a012107b9eee6b353400af70b9cb7a160d0ef", + "public_key": + "1217bffae85550622dbf7058880b91b5e8f81fdd6a240c35384557ee68385223", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "458689a8f5a946074cc5f248cabf60349e681012bd886997d385cd0fc9952b09b059e70dc05dbf272b82a7eb5e8e654cab140ce019a7550c6fb62235ef50662c", + "public_key": + "30347b2759858434450f794ba5cda56b638a118a3b1365c4ff580ea8118c373c", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4058b4c462b463076c2f321f1c7f7178aa3d8370d1f298a18af1ee099f2b2408a8980f7056b751196d4e385d0dcd28d041f266b603e3018224c490f98fb5c549", + "public_key": + "941f86bae21b24655543c8d3d361e44600f58bba9d11e7f3c105784f4b45e936", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "6ca486dbc6c3316ebd2a6e7d4d36d0e7753b843db22e51889f30a538782b38bb", + "private_key": + "577a55a04c12ba895b170f0d2ffb683377c2279acfff45e87c21d5860e79b508a2b049ffe37f404defa772d698782df1320e604dde7cc756b70a81a04933d88f", + "public_key": + "c6d232a6b3e75575f28c35c8c2bba9d1e2e1d3f4baf06dad2af8595f1d9dea7e", + "child": [ + { + "private_key": + "c0c83fff831f0c685bc319d216ed13deb58bb5d2ecc421398a6671e57b6ea20f04e7cd8d7637e890eafdb538e930da976bc6b01902353dceda0148fa7ee795cc", + "public_key": + "f2096a79182e566d8d949d2682c9539df4a3cad7811ed2090155b01df3ada76d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c09bf2d6a5b8f53c2cbcf157f16db3d247905f89ea9cd25acd0daf4c71f1d60af8927c35f6fbed3c40a170daf32360c4af63a278569a0cee449c341e2eea938b", + "public_key": + "7252377906df98175ac22b0d0e40eb467e7a22f7ef0421723e46a3e21b74ee15", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "c037ab62a36b2198a6d756fcacd49e0c8e6f9b536da884c1cf8f5370d287520bb192655fa58e528955802445bdc3358943f9fdb21b8143b43a088215325870cb", + "public_key": + "e846c7caa0fe42741be783ba2f8719d575c1417a09e6f488a9b5d7e627dfa74b", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7fad7c594d8d60068edd4bcacb85f367487d4662cbbfeeca643deeb21cc4130ad393aadda4d639ef74114794ed3aff9262401ffb2ce1c493e40a13133028ca4c", + "public_key": + "d248cf41fe857933b5e9b97f868fb3e0ffe7a3342c6c0bfcff536f60c46f945b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b3973daa6165fac4cb4ade265ae7b25a40b8dda1eac01dcc97d549deb3b8cb0906fc8994ac51ffbb661aaabccedef3cc1f8aea71af17279e5c27f667524ef9cb", + "public_key": + "4880e90559f5889e9e7547ed5830fcc65b3e3621c9275a13208838bdde506802", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b87f05e97986068fb7008baabdf01bf526b203d74e7f60abe2bb9c7ef398ff0d18d7c9e268ede8083e691ce7ee3d189c627c60c61d65654eb16eabfd1388abcd", + "public_key": + "1252908b2224b61f473e30dc87c64c6d41504d047efd95eca65398e608447343", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b3f3016627622a55458f658442a08139f2513d00387ebe121ca46ab851442c0f7a8f0f3b9c8dfa0d4e21f819a587b4ee6d457efc82bbb72842aa44f4f60a232e", + "public_key": + "46d59e6939533c94d5962cb280afe153fdb6d8e91be501a1c9206197d576214a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2d51f3cecb24a6120ceee4b2361b726fa510354fd82ff66596e403469f27126a", + "private_key": + "514b98a651f3730584b3fa629c9410b3de727b61cf4c142d2b3317917f7c0c08b36f318c7970d50f455eef33a9f2d0f336043b26d55ab40ecbf8f89670f97eb6", + "public_key": + "be1b0ce218b91bd7f9fa82f0c3cc465e45f6d8d38073fcf64b53154e3face62d", + "child": [ + { + "private_key": + "7341ec79b78559cbc94b4674dc4ec67d92a6a54a5f6cecb4ff1265901d57e30a58f90a5f6cfa9dca65728923ee97aab56878df0684d14543d12f2c5018b5b170", + "public_key": + "4068075531f862c4374d48454779fba83a1a9d6aabd0c173247147e9f7cb2f0e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a14c607da7d76873229f22c559d10e73f3500c9dcb216f0f94dd9bee9bf48d0718a9ad578f7c8cd3a1dbd62eb6608b2f69ab1ed2dc5dda0e1f0895b0ebe2837f", + "public_key": + "d60c1f641661ced52099b111bc59dcc1bc27bcf605ade82de092fd0722425127", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "49315c62b7a2546f6ca07f2bebf443f9df1c89d07f3a81e02f28e14b53d8ab0aaf262da1b66accdcf8cff2146c96c907090122f6e1105ec6e2c219e73cb695e8", + "public_key": + "4a2e0ddbc6561e589d61ee01acb8b336e72a50ec600d1bf7b41ea52ee813aa61", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d5fd1bc53edddfc4228af993a2c6b47be24016214ec3d7930b34b57300f0080cdb30d4509cad0d212258efd2b2bbc5020f636d60960eae8614188c78aceb13c2", + "public_key": + "201835110c00f5f50a5397e6cf88adda398d4108c12297979f43c09decddca34", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "75bdfbab00682e4922faeb071a6bff4fed07a17ee7fcc514dbd4e196c7334c00113166cb3059843f7fc1eed368d8129a3da0e8bfdfde2bf3df9b4d9fd86311ea", + "public_key": + "00a1b3a6e99a7df15798e7bbad0bd34f3ec391b4c7ca59bed59fe71191d2962f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a661b43cab6828e5ffc3897d6922ebc00185622631d9aa6edf9a595050e88008520f7105d453f3f067a6e42750a20c3cb88a52a1755eee62cbb2dc04992cfacb", + "public_key": + "46c380f3f50733143b6c6153a0695a94c2482f7d2f8827e1e72b0a980adcb060", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9d1df14d16fb4049ee1e898814bcd9f08de809d349819d41909399ccc1361c06e3787c528c15c55d7f38eb4bcad5a6f850037c008a379efab0d01b148a51afc6", + "public_key": + "5a9a3d679321caa375b4eb690f1344b8c075d94a7282ea49e931dad61fd02d6a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "be79290a965b96708266c1913ebbb8f55f3ec4988104fc4bc51ab0ab874107d8", + "private_key": + "bfdde7c6a5d6742a6b140ad2d718f6cd123657fb69f1ce47d42e978dcd32620e02f7bea6d7c7cfd0b76c1a99cfba16dba6a5630173df997bec25e642a8e5e938", + "public_key": + "86cc546569f7ca66e09fcf47c94c60e91f488975d3ea0a94e016d2072ab29470", + "child": [ + { + "private_key": + "5b24400fe77846bc6ffe279fdf5b421df00113fb2fec36f84c991a334c8a270cd671233b7e4d2ff9969cc1e38c1d98fea389af7e21c93f7ff1d99ea3894366c0", + "public_key": + "6862c4b5a865c2d40ad201d45382d5fffbbe0537b12f97533edf092415a7e67f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6c50cb3fa774f22a242a4c7c67095b81c87b7fa85c004a4fca38f1f58997dc00e2308243e82be1551e2285372ee69547bcd3bdbd7d541d26090bc3528ab7648f", + "public_key": + "2cef6e75ab0e9cbdd9f978031999cd6646f36bf3bd21dcdc3c981f2c07a8d351", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "2f1255359eb3652ff90fcd8ad1ed9c2864149a026ee88880bb05eb33d9854e0bdaf3bb1d79cc47d1b343b65358a9c4476c9caac4ead762ce71bd5785da296ae0", + "public_key": + "d2dc4b0f86a56d00af88398b92972404b0ff8ccf526eb400a3ab00ed492d6274", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f26770b8c7ea5e09705fe5d09fa64cc7f892718961cc39174646c638d9d2b50df5f1a9dcc2ac1a3150e44a2ea2667199d2bd87d92ee6e50e46a208d8973f90c3", + "public_key": + "341080953219d83da09745da70fa15ed28bfa57e89ce11523c23366ce0249011", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d8081a70d404989754f0f23f95b632e54b65e76f60b55347fdc1565f68212b0e7b97eba4d8583cc9408408117f72001bd94d7e024dcec37307e808b2f51f3963", + "public_key": + "46cc1e08e5dab3922fdbec818c2a626c6e751d0326b86305b8a65df47377c168", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "7b0c72a40392397a6b06233910feceec047c606cf47cc8b93579223a90c96b0c5daf530b9c6cfda6f832149aecbde6f8d15b862925361f29660065594cce5c6f", + "public_key": + "983ff79350658b01b81d78cee64f1e6bc6bf71b99373478808c5f23276eb0e09", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "eb1de409ecfb7cfc2c3b53828d5f65b4f9ce5a03bf6024c803b88e85c113760d692ab5cd4e39a213f59ed5f9a76a2264683bd28b45d490ddaa8948ec10bbe6fa", + "public_key": + "36bc9935c6a06778e05992e3614ff4ba31464180c91c78951b1040ec820c4421", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "fe6eb5786da549302e694acc25525331984cb4fcdd0f337c595180104926841d", + "private_key": + "e44812f7737b50d8800eed614676bd16057d77c1b3a990886c3a1972d09dc80fbf8c4eff28c97eee61391e4c0b3de0767f2bb39a14a40d7a6a8e2311a55f6e6a", + "public_key": + "e0a94885ed9659275742d95c573e06ac87470f082d6054affc68a3fb4a1f026e", + "child": [ + { + "private_key": + "3aee4610ca87e1eb31578f8a02f695066b5b9599b213d3a216a26065df761f09245470a5814a78cc90656b010890a054bf02f424d2520e8a576293a7ca0d84a5", + "public_key": + "18faea438362f370750c1a596c08d7a17e267afb5b3a26cf8f896f307ca1f40e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "015b0d47e2486d5cfb97e6db10aca88d7adc85740e57ec441a20de82f2cd7a08676d1daccc43e3818d484189fc328fd154dfa980d6945266fa513800d99a0f9e", + "public_key": + "ce5cd706a86c5a42738789a5515580168ad64574ccb9eb5d4b064d53f5095407", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "1138ba6a0034a4e8ae48e8fc178d0624ae44d93377becfa638b0a78ef068430d3536418b89434dc3c637cd542156ac12e3268d6efb2bd9b85455ad84b53b30e7", + "public_key": + "2e55b07d986e062cf011c4d8fd14d68031911f87b33347ecd72f12e4cc5f8549", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "bfdd30de5c4e12240fc587e4e314061cd7e12ca8518897a475b6163b10c8850d68700f43addc82cae320409ea5913f458eb078b38ca49bcb9b3faaa528971252", + "public_key": + "1e8c5fc9ca007358ecfa6adeeb368cff7f27c5090bac4be00ded62c99c90af46", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3152d63cd26a6bcdeecc47bc098e5a78e8f793a7bf88397a101a3372652e950532f43e0d05751b90a629ff53df660f9cb4c811080fbb65b8b0e461b5898d1e0c", + "public_key": + "7e96c6ab5d0b8f80f453bf2fef7dcb94a4ce63db0c32b0eba32f315ec1b9ae7b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "298b1cadcd7acaeadb823ed9639a62de09706e73ac414a91cd8d77d1761fe00feeb305458afb6e03c20a2ff93271de63fafcfb553a6429a3c1727a9a2413776f", + "public_key": + "9aaf482a3b069ca79679da1e5ca19eaa2c746afb618191f9a26bddfb7decb603", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a8687b5568a24e74b6181755d4ed97d86af5c68ffb29a0561b981aee31f31702e74e04c5f280dda886904c9d9e7bcb43f4be566eaef60ccfab41d090111482aa", + "public_key": + "668b618a509c198e79e61a38bf533aacb815bee30e5fc311a25b72bcb0e5a005", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f25faa81d4813605b767d815c89d43fbc8b30f7ddbcad71f2e501b69983e7479", + "private_key": + "8d5436f234e15d89cb9d308cdb6a87e313f026aca5fe757613a91052fd213008b2130fd7fda9aa83b419b84b3313606e84b4907c1ec5a5a1903a050e01166a4f", + "public_key": + "ae7344b89d46d8a388e7c557602ca7cd7c0ca6d0add76446a5bf36f0f404a33a", + "child": [ + { + "private_key": + "4fafedbdad215b83f7f5a4a72299d12b480c5e602a5066a2c16ef9f374cbc709fdddda61a16048d0e305351ab4da1f69096f3f746cc91a9e268f1dd8db032458", + "public_key": + "387439c43d5338e59511e82785a2f11babf415438bc5b52aa266e28c84f2441c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0e7eb94738cf4de8c1b935bda6038881d09ca8d061ca528330ef1492b0ca880cdc429468e481343557a616a1869350fb3fb62e1eb66051d03c546ff3f6c393da", + "public_key": + "accf993bbf5a9c1bf639dc5f3d816ddb3067538e8538388f667aee56aced8616", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "003e89ab2c813537f142a4f8473ff58a70815880f56480328e52187016bbfb0b68f28831c63d6dc20e237430641452cec572f98cd3261e95d79cf730b0130642", + "public_key": + "4e5952d9ed410ca04788d0240145d593e343cc915551765198c38f8c4f5b781b", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8137c34d183b3e5c72cf194fb08c97e7813f52e6f461af2ba7015aa130b17f0b26be5e86ccff257c1386af57cc857bf8d23121ea9445d36a49e7135b52085b64", + "public_key": + "982e95ff83e4824efad22232aecb8d8d5901199322a56a40c756da1b2952cf13", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d3a0c21f980d488ebb65e16a82c5def14d84f41c5d5c3b8d3e8162e9e964a60b98aa2031382b8913225a6b5348221892f898811864e53a761a3519826ca80c24", + "public_key": + "36af8ec9d741d29cc2e770ce22cb946501551ded957fa6a919d689ea01938a6a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "bcd5e4d5e1ae5871dd4f9ef88d206739dea5d77e9fb3bf74796ba1b24c7a970ad681fa382f2a916c55c3fa795aefcc402599ee57b8b3a93d0337acbec38ee480", + "public_key": + "7e33dc2b8e94fd335290549edc2b3277044bf881e19f64306b7eaa0c88660b40", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "bea0ac940fd50abd3edb2f923b1820e7e683195e6d3a32ec474e1cd95ded250cae37541b124546902986d308ed05b0d82cd011aefb0b2a49b0bcef4eb9c271e9", + "public_key": + "9c5b99392cf4bea7f2171cd922f956a97a2b191ceaf90c791d28ead65d8a802c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c33ed0d79785470475bac024919b41681845416b7e9de1c2c9778db3627a2ede", + "private_key": + "2362f0af5bc16d71bd0f223c7fa62b8bd9c3f7f976df5ca1171ad990be04fc0affa60849fbef399483d1f40d4d96c186f8491178783afa56ec5b018e46e25b19", + "public_key": + "4ae9ee5f7fc2a5fcc963d039833f284c5021f24c18af6090aafe2b0b2ca39e21", + "child": [ + { + "private_key": + "829c97f9745469314f76b128abe40e310045ea9b2e1c5b8d439c5333db8c5a0c73b5ff965dad98165e31c011199bec347b3106eaa06aea29d4898dcc2a5f0e17", + "public_key": + "0c76dbb082581f6a54dcf28f79f82e0bde1e10dba31884aa745c0fbf2c573604", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "00af006d19c05e545dd5c1d8ae80697acb362bf45bdf1e73373297049dea6a0f007763dc019dc84bcd205e3ecb9732d534bb0c546062e21a6ed05e5e6f15415a", + "public_key": + "8aab4126712cacaaf5bbf05a939e2ce977f954e8b52349f370870af6fb41fb6b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a3b0cc384f44341f7910114afaba8d79080315803725a53516640f2e29733b0e7dc71c187b241e8239706655d2f7f3372c8f6f865d66d236ba16d2612b079606", + "public_key": + "00fa46413f20acf66bfd523f39983731c9b38d7b90b071315393c8b5d5510a6f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "34dae287902d9cf3b8eb7f4b1d3e47cbf46c8b719e9a0f8ae5a86be28b302c0c9c629bffd1f53a7406ae23459808c7d8d7d3561ae2e8e1a62e8fcc8e67077022", + "public_key": + "8ed78f19cbfde09f2d2466e1eaf07839e745fd07f555a84d8ac892ef9be8664e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3bf34ea88c00109024a58f0408024f5cb879365430622cc6699c5367ad126300e5b5ebabfa969571b36bd89b9a04bfbb282cbca4b4f49ad5a3b44414ac4c36cf", + "public_key": + "76de8ac850d9568a660519f24a00ef80b6d475541bcf267dc9e4d514a12da224", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "bfe3e546d0381df0fac5ec1a7f1a20aca71febbd5bd6d6c0d7dc10fffa80170ad65d01632d1679d852dc83e1047b2947f01b2dc3530113b0ed95ec0af2a6aa38", + "public_key": + "e41710047e69997ceba1cd21ba3a968ce518d149471fd2a701602b03ae1c376d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "86db0ddc74befd0d6fad38e677bbe6091978948373ae5e090a05f6b1bb972c0397f7f0eddab346abdbfe857cacb0a5d13c16cfb417bfb2ae9442de2d34869aaf", + "public_key": + "1acb4c1fa7234bc5f3dc70a080776a5b3afb071a8965a969469fec437775bb00", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "fb78e1d28f26887acf3c5f6a1366307637e1833c3c12f14ebaef927187d5e94b", + "private_key": + "2ab5005b4aafeca97af1b9ab79009cc2f1fffb60ea4e8cbf45c79172bf8ca10bccf47460ce52ce9be67a1ba4b27f83e062bb263257fa54a287e0e75a4d2cb230", + "public_key": + "625356e3b90dcf7daf1bb9a1011a44bd1c75f525f6dcf6d6f1a9608c7a7e2864", + "child": [ + { + "private_key": + "32f3c6aca6c77ad7b0b99389891d29522086024f6cfae65337be80dc1f31940e9950e9f29d94bcf43aa3921787fa74b9570718c672710902bef39b7c5acf0a7c", + "public_key": + "2eb5c7de1eeaad0f3c941242d4278181558ea961160b7fda33b1342d1db84746", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "24f68e23034791012b0bb469759359f714ced89e10bbdfaae06250f2aa07e40fbe35584121fb66406458241d897115a052999a721e36555ed671e98e74209db0", + "public_key": + "3e0e09db4b212001731f1913b2a5021cd9e5838fb2de68895c0f14daf75cee6a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "de35b7e9253b764e7dbc7e4433e115865deac362ab0f7b95b27344e3a7ff220f6b778bf20d890e25969eb239361f5b4d9572e1f3195970e59cadf1ca158a8499", + "public_key": + "e278a44baa4c947dbd93e5714132570837b3dc4b5e905e35b96158d2ec1b125e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f4c83c9238e98adbdee8693860aeae40b715d25ad3dcae3cc73dd6ee85dc510b82902a65094cc098343d79bdca4a04cc7c3dbc83985e31e45790b0912112ba50", + "public_key": + "b265caae4a970e85c537ba074690c1e547d76657c0392dedcd2b62a763500d3e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f1daff284b2d86d7cd8445c7e7b3469d0a103e2a84c6bc261a077d8dedb592087c8405aeeb73370dbfec5640c7f42be2b71f61aff0a97e694acac622c7c51c46", + "public_key": + "ca79cc20296138f60c0992a00ffa55208eaedada760d072fe3de77e83491cf4b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0ced355e4157f936d2e643428b2fa090f71e92b7e9008da1bb741e6690069c0a6155d653f5f0be715893d0201a0061334a74a1b81874636dea6757c180cd4fdf", + "public_key": + "1c5664a4effd84e7d58f482aed658b997316271b6e729e5843edc51cc1e9b306", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0f8f2676df00811a91988b5ef37f5ed3353a0620fa7310e84294e3d3e56b48065cf756a2c9bfe0d29c782aaf87e6c5eb8a5ff1e39f6ad7427b7c681b371a75dd", + "public_key": + "b43b175f471ac5fff396ed34825c9ca306d5cf2378ce8a34c27549bf6ff8f102", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e533a3399039253927edbce2b910b5306f121de92bd59c60487a99e3beb3d764", + "private_key": + "1ae7ddc37177f733a71fdd9c6702e60a62170a55378aa4ad28196a595f79bb091ed532a9d526fd4736ec4799cbdc4407813b397ea03e8f4650ab2d58f7bb69af", + "public_key": + "f4c9825daa7b6ce0d437e8c189d61118e8d310d58233826d3d724a86c27c3641", + "child": [ + { + "private_key": + "823881fb2798572dccc2d827a73f71d336d036d3ac4ab9aa94368fd60ec7ad0853c5ca637a6b168ddde3c9501f57ae508964d20a9f6ef9c03a4b7fa10cbcceb2", + "public_key": + "a4e68b3525c13948d48fb317054909c6d808d31747fce1052aa4db34604a3921", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f59e16ffb6b2ac57abf5f60ca90e41f334fd87ffd88a885007b61e5150c90306253ac7ed804f2ebd379d25219eae1cf8fdbef71c1d1c886e82732414510550bb", + "public_key": + "1498edb2723d7d72e10d721b6f555dc479fdf0b6bd4353d79601808f75c69408", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "90505f3a3057ee124dbf991c806dcd3ec4e6db7d69f6fcb6087a7d8df84275097f10a56ea2f671fd50d8ba33d9d160f79f3cd50e16ac17557bf831a338c8a6c9", + "public_key": + "36a7619a2ef34f307195bff452644d3a9693d19348703b1cf5303d845f44ca23", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "fac894b04ee68949fe7d3293633394c3233cf259286f191fbf92fb95ce62cf0e63d50296eb101ecc4064bd79390294c158249486716f9ebe3ee3792d0068ac0f", + "public_key": + "74da7a8bbf654396f3be18112a8109f589be0158ac7048f7d7dd51c0682f7846", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c44b232155b325efc74de4165106e2fc572228fbd678bd7dc34886afff823c05cd9467999ece043ad91f117f9575e80dbf50f4c4e2612f09b01ceef8f768e998", + "public_key": + "c0b60772e5782ab5e2c82362c39592ea380089cd9ccc358a5984e796515b100a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ce9d1a0d80a48383d994a4609ecb6d8bafeeacf0f872687e61738f9525155d0b92cdc83e8226ed7cfac6e9d1d741821bc4c5bd041d8f672271f314734ca4c35c", + "public_key": + "be6b9be13bb9e55cb20433e77a91128aed2d5fa617aac8711dab1eb7923f9257", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b56db459406c313614f7d7a9dd3d70f00003a07d96311e99c8fafa0cab6685084631cd725a666fba7a4dd3cca3010cc9326e768fbda096b6e40bc8ad6e4a40fb", + "public_key": + "98d015948727bcc1d02d1cddd81afa3a88e489df53d3e3af9a54a473e414582f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "dc86654ba64a0c51a0bcf024c5d2b0b1cf3db4f09ad146951b1ee9e24fc8c0fa", + "private_key": + "c529042459e4c2199367e8334afa0f999852a052cc36cfd5d3a55cc554e4ed0d6aa2ccb4b8487d062ae8b2654accbbc00edacd0a796f88f840a297bff80b5199", + "public_key": + "4098d084e30e2d7485053408024a911771f40e5efe72bc4b61118bd639cdfb31", + "child": [ + { + "private_key": + "e202ea49be6b224d4fd387c5bfaf4bf0936a547fa65cef15e817f3d6b649ee089a73172f19ce98917618a436d0ceccd003a79902d6d0632e0a9731f0ca38aead", + "public_key": + "d438927fdbc1a6a960c03528b243a5a34c284afffa8bea39065a95de014f9e1d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "166df70bcc9ce1d1eb773d634a2b1e6c872db3bac95bde5258c5a2f19051e101a332fd1156579ae70a6a91141cf577e91719789d09c209801f50383b9773c37f", + "public_key": + "16ec81632ecaaca3d9403c75906e6c7c42cc2b0ea6447e93d26cc19e3ac1413c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a44a2c6fc7e8c8a9794937927f848c3cd092843f90140050c750dcb5d2f9440fe26a82d457ba2593993369ecdfe3e0f2fb7692a7bee695c686ee01873b108ad3", + "public_key": + "16afc7af2299d3e39cc34325533b250fafba490bf0ebc46b80d5c760ffe53f72", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6962d90aafcf5d536ef54c12b0ea1b9aace7e3f2d51f05cda37805da65278a08ffff0b0f9de026fa5ff1bb1dd9de378197b9233cf876702949be76abba0bc23f", + "public_key": + "6c728f7f37f60a02166a8401c12ae8a675623d88f2ffc22d4c250e11337eeb0d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "eea1ef03f0bdea9747e38352db2843cc3fdaa727402bdc68fcd57cff8a09cc035ff1052e0f66e6b044f2305db06aea45b5b42cb79d57f7ac81850f85d0bbd45e", + "public_key": + "287bb7370bf45dc4141237b7e526e2ccdf9ea5f06d3043fe5e705a68e38dc67c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "bd83ffb0c6c370a0ead7d2e8b00fad72a832ab5df8f65c0c97af5b307fba570fabfe366eb1451022d77fe253f7a3f46836d6a5af6a4dbb8d8fbe36a1751e381b", + "public_key": + "ce7a735bb6df7ed09884cac479f68e476f9cdc19548817d8659bffdbcb718b75", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5626104107c916e39775f0504258169a7d6d0681d08efcb2b4489c1ca3707e01830aba85f3130396c699c3b2c5f67b9bb22d8629daaf8cd6cda40b172459e2cc", + "public_key": + "da6e08e8acd275d9a6847f7105c787ed035a05b0cefba6d41a113c20ad68252e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d4893d0f74f28bdabe92647c4327d4787446174b2c694a5ef2141d74c441eb9f", + "private_key": + "28d8f1338efdcd58335d265be5fbab1f9b1aa4f9bec3c6d17e73f6f01d96980acf7fbecf77ad36ed51aa68aa859286f9cdf7313086e49ab8b3b457ec2f421e51", + "public_key": + "9870c2b8531cd22859f8bab0b8b96bffaca37ae67024c7037c9aa7d674524f0a", + "child": [ + { + "private_key": + "50be12810adcde8162d9400986c75f950ba54e51c0dd33c8718c853dbccddf0d98e6efcd62e3b71a3b321d2be0bcd248ee3c0dc3b3a8b80c2d66cd641565dd79", + "public_key": + "d6d2e8b375e0cb8879e5ea0e5f63c4234f98e05b1fefe43095b80ed53a76b057", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9329aae5ff64487a4bba0d058ca3a18fe7e71f48efa6826f168d1177a0f6730ad6b4d807c960794014c9bb29caa94a01a402efbdae7c96b4f5797cd808f3b647", + "public_key": + "d06f873a3da2adde22b4143865aa7a698c3f9dfd6eedd8d2230d5ec86e5f6501", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f5de28df8ccb78101dff809fffe50c818254c9e575444b0aaf8d6c7258bc870c5fe5095358bd2795bc5115727fff34c64a2d05ede5210a87ef86309056a53e1c", + "public_key": + "082a28755128124931a0a9c9f5d63ffdbb3453fb4e0f179904d55377a109937f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "64f62c926835c9e19b53332c78eeb897b8144641810f5c20d4248258b5932109802937a7e4a171326a4c7be667aa9b99523fca0127c07a90ce2c45a073f6e651", + "public_key": + "7840d6989e9642e3458c727cc8f9155d94e3cd0600f35f147989d93d81b89268", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c3343d4cdee013ebf493eb9719dbf252ac560edbface1aa0687a755f7e7b8f0c5bda8f56fbb30342af15add20751915de7360ee5504e58424f8731c7bff3ec8f", + "public_key": + "b01b8b191f7e1ef3b09cdf9642d7b6cba2f007db23187040e293d8d6399f547b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8efdcc35a1959a48a0ab5b8846228a0ebeb80f2fc29a7db56318e95c0e89b8096aabc78d38db39b64ce26b40093e02ad6324014ed2266232326e8cc5739e8fc5", + "public_key": + "7c57a7fc3ee9e35380c7744d4a51e9460ba998336ed2be7474d5a71b08cd066d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a8024c2d94a2c07f396634e44766014c94bccceb11cd17dae0227a4f139f260bc88798c8847494575488f934c8b52c8e1260470da6f7539152248c5c88e3f661", + "public_key": + "5c10ac1f60e6766ef866d836d5aea7336ecfbafee08a4462c2b9ae0fb01a7f62", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "77e2cbe225fc270c4e9491f4c10332eeeba9ae299d1527d59d54fd691ad77133", + "private_key": + "1f1e00eab7c18a9935dd5adc6f0bc8cb9a2e36fae52cf08b2253c429084cac0965c4e7af05b0570ef415f740142d6624a0ca2b0f8f0091eae820a3c7759758a4", + "public_key": + "7833ae83985ad76b7d4ecc36d9ba8164543cf4ab3886dc3779cf4a9d20daf411", + "child": [ + { + "private_key": + "8c1d4b50966199361c9a9dfaa321c34a0af585f847a4eb4e279d15f8c0f2e6080ebbc75a05b89f76cdada6b5c9bc4e12037871bc127a700f1ebfdf55e0ef5d84", + "public_key": + "8603e7ba1695971a1daf72e600798dafee14862de35899c766c056a4fee7640e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d1fbf66739692a32632bed439fa16c1ff7466898c7162e2c8e28b35607dfc20f289b10d5095e2f53c4459438e177037372af040ec58297c906d817f94cc45b27", + "public_key": + "845b70c5467fb9b530198dc0b4522d25737889fd3f680d2798dc76c3b58d6a72", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "29a1f3ead66cde914a3e4141b8c9319e998ef7730747ba144db204a2dc82d20b75aad71b2805ade5c0476890ed1c5275f92cbf962a5fe6e6d92f8557a64b01c4", + "public_key": + "2e48c31a7ad2fc93affc2a28ff8a1afff23eba0354ba48ce7920e06e83b1ef63", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2ed23b41914065ceb70e3262039bc841760c25c4b735836829ebb11fac53590ef514bb9099176b78a356cd53a70b75421d8ca41081ad5d8302b4468b4d3ad3bf", + "public_key": + "56dde901946a436217704e9423f8a94ea870d6b5a0e6243e40e2b99306887c31", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9cdcc4ff7a30a67f3071d61bdf3246e7ae5e4b76286ab37dc97a8d31c8329c0989d7a84b126e6e261edd7311fc9273ffcd1571e8ab573fd7083fa742d900a5ca", + "public_key": + "2861ef9e63eb9ff3eef4017799444fd2bf01088d2c09a4deced4e8986be4a01b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "afd50d94cb940007d607273b9b00effff7f91dfab25d886d7aecbfe3b033f40ef470f06f1f24f6fbd8bbcd6f18f284c207f4b995b54249cbad85948e1152938d", + "public_key": + "98a5689d28e9b929b68d0d8940db20c4fa7f0d6ae4fff02695016c54f872ce4a", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "87cdf7d04c449362e15fb1e72a5f2fe2325054afcd17eb52c9a44f0e9504010b0b2fd3fbc205e382fc3d3aad04f8574a4b2ecf1e20468f02eed60ac5cd90e980", + "public_key": + "9ec7787525d642c7a2feafb5311780076476ddb01b30c29aef0f6556219eea12", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "638387b479938b215ad14e65ce4a1c863c17a3e001c8d49eed07f06c8e305506", + "private_key": + "023eb41c7cc5dee16a22c0af5e7951c5fff2caf61c24494144b0cc95b4f82e0ec9fbec3ff8aa40392c1ebe8b995d5a42b76a5da0257ab74a53b6c02017df5c58", + "public_key": + "26f658205c617dde870c6dfde32f6644d9448f48c5284de80251ebbcb50f0d63", + "child": [ + { + "private_key": + "3ccffc1b685f2d908bcf1a11abcbdaeb1c5473cce402472af133d88faac2ad089edaa47decf636e6eb095b77b74be183f75435051af9ea28587e1961c486f812", + "public_key": + "3200a1a217c9619b271b0e06998fdfec135b55eb292949825dd33117f4d9705f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6a0c0d52fd6f8d407525e1708a7fa5e35be8f2d1061cf4f9489b8c67f5a4c1092b037e0e45753f0980d661cd14631e1a59a169fc3304e11a1b43d4bf98b4ecae", + "public_key": + "5a26bfbc4eb03aef98de9deb20d7ccfc18a9848796ad5d0f62345d1a18c9f46d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e9a930fdb6f5d1484701e3475a5a6efec8147a092f6e8599974297d8ad677c084f50740d1eb3f45cf2e8d8843d2fa181a7d3582ae2259989142347c6833246d8", + "public_key": + "bc7d388d0307b6287b81f3047164d1476db609925301615b5cf929b584c93748", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d9c19b687ab617009d999389e33e683544dae831becd1769a18af393aa63910b1748985e10b1640e4583b1c0ad2a1c622d656a2ee4a12f8278c8815b4c5c6cc7", + "public_key": + "d0421f9c841f724ae85254889bbe89874256eaed19d6b32e77df9fc0bc68ff49", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f8eee44264387938cd1220c393b71b59917cf14d979632f7473d0b3f1b01ab0b6027cb15af054274f2c5cd78d34bcd5ac125a894c19648d7c91eeafad954390c", + "public_key": + "7c41738aa2e5e1e91510bc294a33376d573190c7bd76c4213b543baf02991510", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "cbb36401dec3cc3fcfcb1e004a3e5ccf66cf7f4a2812413461a88224430d5709a5a4f09cafce8999482c628d07ade4f17b2d15fb4d49402fca6ea839de9d0eb2", + "public_key": + "0087112ead4123f6364c6f340b285b768dde3970f8da261b306da8bb68b96d23", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "255cb20c14f4b70b62cfb9ae5d8f88c838651b81ac6dd0c8be755f9ec7d15006cdb9b13def8f5504ee8ac99a2351aa7cc832e5efc61df276849c659b2fc40c0b", + "public_key": + "46da6e390ce4916b9b9ad1e32e520437a702f2c7c169c9c7924fd729cb28650d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "5a18fe980fca6d3cbcff76a8f21af675ce39fe01f1cb6e1842aac2515c128f2f", + "private_key": + "47d2daf43b9722947924f9af1825834c46527a9a677cbe11199b6b803de9620f2e69572544492ba2a66a16d0e005e85343ac61a743bff43587503d30b9c8bc27", + "public_key": + "f2f986d64c048c1c721ccffe10f30d6a0bc300bdb293dcc90c2cfa2e1178d36e", + "child": [ + { + "private_key": + "93318d74cc1ff0176e9df976f59df46bd81625ee6fc9e60e49ca47d3bfda1b0eb134d8bb9ebdfc5ab5743797b962a05350ae2809caa2b675e4c14267abc8c6d6", + "public_key": + "0405016a636bf8d60d4a8275221286b3bb62597cd79478b99266599953d3e653", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "fd878806473e2aa470d3d6275e688744bdb2fe35f21b720d738c930a49bf900c9ce7724f88a3e92313a702097ba4109e2805d7d8d214f1fa9ca4bc3c8034b61a", + "public_key": + "4c31d24bf7f18511f7427cbc674728757ce2d206f7e8a95bdfde7ef292ba4d51", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "46190395d02ce596ce8b1bb2e18d140d001d618904f22fb928fa9f23f78bdc08f81789eb7979af1ab2e0f9948f92e6b79cf20716b6d7a0e295489277ee212fec", + "public_key": + "e472999a5f676ceedf927270918287c520e9ff131fecd64c5eae430482f8d46f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1e5371752f82f768367d80f79d16eba9fdc079299aaa2c98a4bfb12a96fb8e0838be273048fac6ce425424b761bdf66056a401c8afe4b47c0f2d388e150ab05a", + "public_key": + "fe77ed91d7eafef693dbcd283a9ddb11bed7273271481be765306c6df69a0952", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f99c0ee11e8ceed72245707e059bf0ac9e79933d092c192d5a6c1fdd2e52a505d932594be70a337e8928fe0eef83209d54443a112fbf0a56fb43345ce3e4cf9d", + "public_key": + "4ec2192daaeed61a6bec4b756f533b5a4c9fa34336f76cd9289d793568f8fe0c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8a186338fe3c6fce6bfed9169ffe7509b254d9ef38564b2d47f927f1c242ef0c392915a3ace3a60fca3389003ca5a0fbfa93bd09102f04acf25ed77a0020292e", + "public_key": + "58bdb1b5d7f0f39ee0b36912fcb11f297e46900320fd51e2de384cc970940451", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "65aaa291939db0d5d71906ddda7ff7ed7a3e69a4a3063e27988e95382729b508f23511be9fd9963055f584622c5ff14a61f0d33096861fa0f4c18026539708c8", + "public_key": + "767e05f65b1c9cbe4c1c680b09a3744dbad6261b572b64e0a0fbad4eda077c40", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a6d82f1bdf78080bceee75249e94cfeb5c6edfd41f616c9bd15564edd67bbe9b", + "private_key": + "7f66546b35327f5388a9705ebb2402c0f89f629ff11212fc1d8857aa08236409c66cd355cccf19d360609dac6fc4e322474c7155132c7d611a250f3a8c5d3bc0", + "public_key": + "426ce05fbce90ed0a32db1cd70f7bddb2f887c09af61a15e1bbf0587528b0d12", + "child": [ + { + "private_key": + "f682f2da01c3fe278390c05f05bd8a0517faf9b9e4449657f519efb503d1510c72f375c78d086debd5dc1506a3c265ef2a6c00c9da9a03a876cb1dc89e2ab3b0", + "public_key": + "10a0ce671ea32040b120916daeb426e3ac03223bd5be5d9f1c4374155c44650b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ec7570bcedbdda7dea565128b4afc60134be90b3ba04535da69eaff9ceb04f024b85b7363a89316dd1b430fe8f9e31d930e1ab533eb20e7b1192e3eb1febd848", + "public_key": + "d6df80216640222bf5b338f65e8331ae5f2be671fa92cea53d6b301778cc9a04", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0c030f7a2fee6fc88576bd573c4d0bccdd1ac5abd959b650a0e0deeadaeed70dd70be4a49f3680b3c08b98dc7f51754eb387c6a54b073cd1e8de82c2b66d45e0", + "public_key": + "2408446efba4962e43ce6c8d494c3285d63078cdc89fee53a2490c36706be912", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6cea06b96d3ffde33c9439cd6ac0ebe73ac802b87f5f494e4c2508ac6a58970dc02f28d819506dc72d2a4593281da3852e225cd7a93f261dcee2288952a507ac", + "public_key": + "06be8108dc2689c8e54e360974c3991a36ecb225171573dab9a737e4179e4045", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c58654f91ba47dc7f8848e307bd3d2535e4bf765441af39a3cd5fd6bc599f104c3d0ab9ad33cc5bf3f8d69e3e1c50ab186f66391f1ff3f263ba8550ba5f4dbb5", + "public_key": + "123149a73ba13473bfedaccb639fc4cad6ab2e2b6e46bbdb2fff7e4851096c7a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "aa38ff5023974a5d7e9bbbad888074fa9855b33e014140b68bbc4a4b8c090508432ef4079ab0f890ea926ba21a260fe1cbe964e24e91ed595fdcba18d1146d97", + "public_key": + "4a75ba4b94ca18629cb3309aa078e7293b3bc09e52273af59be7c8f5819dac03", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f0f7380e1273c06a139d71aaadbee121689d4242c50e1e7b1ba95c1fcd74f9019c7f2b02b4f1e215aec35e779bbb328a40f0c84b808f1655e2d510fa623044bb", + "public_key": + "1a1610adf289c90e6fb992452cf9aef24a7bacc356c27f173be11829b6e2b31e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2c9015a1d44dc69e7f53f2c7b86aee229499bc87130a4eb52c6a01757c8aa6b4", + "private_key": + "2fe0e83e3e12b9fc40b284a90a4a814488d17b9271ebfe770dc1eafa1597620c926117dc4652fbef71942df453c091a336d964acb94e985587ce5ed2e850316d", + "public_key": + "6230c55230e1554f36af83cdb06468f53988f777d6c1caa68a14e47c9f7dae55", + "child": [ + { + "private_key": + "89078d6d8198b1a3d42002456e4750df304feb4866c289a8639de420b594d60e37585fcca351cbf8c1e7972cd4201c7afec3c9cc15f903e6abfc03700cebd5be", + "public_key": + "a4015d349025527c523b1a1e3f67e9a993260e47fc69817dfbd4a0dcb7f69566", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b77cbfa05b2a1640c954f45440950fd59f2b204fed6c1f3f9a516e6a5a909302137111a259d5e702a97cc5e0038146ff540c3f4ed1da96e43863161d2bf1774d", + "public_key": + "be780007cee271bfe3d13a3ec5ef46a56043f2bab5c53f964c74263a33e6460f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0269102dea49c11c6150e88a019383f8a818a9258d3434ee6bc9ea3d1200460a1bec7ae1af11c92fee98f62d22fc5361b5e58e89f19f81c8f49d00ed915ffe4a", + "public_key": + "a6969e8686c05138a40e7bfbacb3fc7a80f85ef39fc87fa27ba8722dfc0a1938", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9e96db7c00f4747432dda7b5d9e08f4f0e4fdc2498e2ffc9287e2e9e23831b0f568af53b66d243ebf511688aee4c041a5dbb0157d410e309151872775e54fa55", + "public_key": + "dca75df7aee3cdef489ee6b5165b28fed0558cd200f1c6513ce57d7093af3340", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5d1dbca4aafdfc01cacd65f119944759c82304f91e4cff87a98493cca1e9de001305d083bd474c0cd32ec5f9d996b0aa96babbbad733c6fd4ec4b697ab27b8b4", + "public_key": + "be0f8cbb89969f3a4ddd94d62a535d3b035a0de1b4b61fd5f20ee6fab70a7502", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "2ea4e18cefdd23640661b4aa067424204b494a98c820f1a8946a9060bd6f8f0da4cc6f5540110fdea77231c6a0afebc70c832e9fadc664e3215a3cc437e7fafd", + "public_key": + "221c34f105f65108d4941fa5ca1ba6d3abc72b240d85b17e4707ef1a94a64f22", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "af4dcb6a756c2163e606c3781aafdfc8d4c1685d6565d591d161df16b05c950c60698afd58f5a8f7eabe1627a584228c0287672461a20b6999cc3e75f4687035", + "public_key": + "de89782f8284027f83c5165274bba30e27eb50420b8a033346557dc997bda579", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c0964483b8888efe303a821bea2c5cf3859a6a1352cf87534a0caeaa1ab9e5c8", + "private_key": + "9cd576545f9923d170eba59a65fc50c73a367949ce757d086d09b7fcd88dc20a0f6803583921328a765182ca00d41ed131bfb9376969501d9a93b1e50d6b13b1", + "public_key": + "ec01d519424fd046958f9dd937718fd02d2e4acda890164ff4ccd8d46bb7f252", + "child": [ + { + "private_key": + "ff20244bdcacb9e88989d380c4d92c8bd9c3a91dc8eab33df10adbbd7c0b2f0e4574609976902ed64c406b606679fe6542717d13ee4a448591297d9cd58768b6", + "public_key": + "84db5555dcfcaac184918a774a28fb86dc09a6d7009140f42618edebfb04250a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "97429d3406c3f1a3738fa198b678830e80ea36d9220526f9bbdab5a0ad3b020534c0ad61844034c00cda018689476cb00d4078069ac459a2cbf3d215e4212749", + "public_key": + "56ec6e06e248b4ebf9a2ebf51bd7ac90127dcfab1a35a48c5d04ce91d7c2ed04", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a6fd24d1569ed948dfb68b7a65dc8e4aa4301a9171e7d5c680092215d953520982be83145199949edb929fb805fd4598c32c794c03f33c1ab84dcfdb07cea02a", + "public_key": + "fec7573d83d02f7f5a93222d7b16d92ddc71a883925a0d6caacfc9b098928300", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0d2669c832713aae020d3b6295827710221b39a367ead8897171936cd708bf0ca76b77158439df0b4288cf1fc5352c09f5daeb7f932af4e26148d6d15e40ddd7", + "public_key": + "e2908687f4938560feccab4c44a3b4214bf0048048267c316b208ef932843a1f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5eecf40c66d31beb486998c1e895f672d18690819dcb663d435f8eb42eebc60510c17617156194895a5477363d945f9a1f31caad6f6b55a270bc99a3cf65eaae", + "public_key": + "c6ccee5ce38871d6077b9576da48c3ffdb4a151eefb86a848e345631d4f9a036", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "babc51bcc6b59aaacb36affd01ff64fbb73121ff3d563f1491f3af70ad217f0acd4b967e6c71161f2ccc7dde4d1629532e42f5da7d35dbe131f9f3b5a84482be", + "public_key": + "2aa49726678e4f31647dea9ec1f863ac6df07480d6e6c23c6ccb0c8464984378", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c37f6e24569832c3e9fe06fc7d27ee82d8e3c13219194b0d074c9d9f4b61eb08f6973052d4f0ab06dd190181c1dfdd51829de7b62c8ce01ca88f1c6698e261a2", + "public_key": + "64b559f8f8aaef561c8ff50ed879a0d194b871a344187abb6dea0982a19b6d15", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "6631c888a5372cadb534070a326fb1076555017c5942e7a197d1a163583d2d54", + "private_key": + "a711312545b1a77d0f1bed042cf5ee656ff156ea6a23b36b642a3bbeb765cf0fddaa2043a7f599560d6d42fcd324c2775dbce1b7327676fef3833cea22295f75", + "public_key": + "1e191c77c2b8c53076024840554db04b13df01155929be4a8c3e549f62570a5f", + "child": [ + { + "private_key": + "48ff2ab3f3b575d19db902c84656b8b43f63a5ee25b5038ee7fd37ffbbbab00a43bbfe3f6fe7dca11960dd0d5c37170fa54a72992f2d9927b91b7e7772e4455b", + "public_key": + "90c1c1a53439c1ab43a3889f7ef095caaec5b6b09220d18ac831d4d085a96615", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9947c6645505e11033e763c67edc6576f7f33ab3912c2a5ddb8ee25f96b70d0f773435a44876439fe6fe114a348046a4148d87b23ba7e7c50187a6211912b56f", + "public_key": + "683e1b8454cbb2f9a33ee5f70ab56af98fccf8b74fe7322cc09402cb066cc152", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "1cb3d1be3e1203c7ef58e71c712d5f562e7823f74275656bcf672b4521f8fc0d2e706e793bd5cb2384ca59ea4d34a7d5b833f47eefab566bd52de1755994f9e6", + "public_key": + "28d34cd5ea1ac5544eeb4c8e27f6beafcb8e5443575003f9bbfce8a559c84f46", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "39051f10e1a3479354bc9d5c03672326958f402936a91d96c539e02d77f58608ec7e8bbc94e5943fa92d88cce8c3136105f1b1dcfbbe7d7605ad0ca126a15736", + "public_key": + "a00e89b5567fa3f15587407d562d0147b8af8c3d95dc9fe118f0838420652906", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "94a77646ebc740fce802a1afc46f415f4fe60c322ad09d49a9ee1ec26659ac091f0056c46563888f02dd8abc3eb3a13e56d3aef378e43d32942486e0462461f3", + "public_key": + "d6a1fac0c7f4eea003ef00be49a685ad644780d45b84da47e9f8e65cece4e034", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "54429913c8eb07d71611ac837a640cb49796b80c8a30a085546ad7e9e7e70a0c633be9c41345b040e0bf566a45d219935bd619ecb7953b88255d23a185d4db4a", + "public_key": + "32bce16c5c3d2dcb88e130a7712f64192c010ed615582b99097845542c20725b", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "621db3c466caa5f9a8ac042e649a120dc6845c0f46d2f7e795479c3d2adf3509ce6602263430fc1eadaa0a776f66ec4fe08557dd2830c80d1f9e1f36b1eb6d93", + "public_key": + "1a3ebe68a9a00fccbc7353e919037d9850e732384d2c1414a873981a02ee554e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f9f432de947af34af95493f254910d69808180c57ce5fafba3fb893d7f3df90f", + "private_key": + "f7ae6f149c434dfe48248002d10a79ffaefa386f9794d1d1e14d2fd216704508fd7ff70a475e2180af5f36b9daa36d9069c942d43c170445d213728b58680c4c", + "public_key": + "ca1a56b74c080d011969aa6bd3109c9c13ff73974b0fbf34e2777f0dce308d03", + "child": [ + { + "private_key": + "a28575a48b0f5c06a4ed17a06e89e97e2a455952049acec97d37a92ab20cc50ee621a272214acbc649b5a829a8b1bdb1882bcc3f5b585b53ef3722ee9a185fd7", + "public_key": + "ee53463099b97b58b0f95c050509d856dedcde27599c7a63baee2e819b435d71", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "01e8d7dbd0e00cb2fe7cd41e54615dd85213e879ddc4043deec206cd9971810221c934d4308bb6bc5351fb25e15596206bba42bfa68dc8d7247a2376ef565305", + "public_key": + "820790b9c9389312089819953bfb23928d01b74f58a603b12125113baa89d23d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a297891e7c3a9e94f18422985f335c7bca8c9a0ca75f045e6882ebab58cbc00eca755bfbd4b7bb52b42df2f3d19b7e5aef22053bf2080f4df98333f85b0dd140", + "public_key": + "0ee91ffb983bf60406de3f25f8f3742b660d33ea33293851b579ed28d6741c15", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8596ec146aadb8a9976a93c96f69a1837a484c2a082c5709ab337d45041a5c0d6570aba6a752818335f23f4d1ced74b494a06eb26908d1951a9a315b9ba6a95a", + "public_key": + "00fc4ae47a36f9086951e5cadd3747ed6bc3281b820c6db92edcecd255c9e417", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d272a08c768597ed43deb11755116e9075d8450bbea0c9b070530cf574fac804d11a795ab4a3fcae2beb40f21f078b07e0ed5c1828988a4c0ffaed5d8723f557", + "public_key": + "f29a266ef278a5b8bb535032ee2479b86f2a466caf02c29d52c207385cdbfc30", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "9c873c1678c059998db253e3ae553df2ab6a2a4566a9b4531f104a9be31ba50f08c998d8ad9d1cd8e6def5c5203c2466024fb139ef70c971e0cdb18102ebde88", + "public_key": + "0edd9d6fc3ee290ae73972afa5af55ee837cd27cc1a592fc53164154e2f12352", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3b28a6e22fc1ced91eb4735df744d8b936ca528ec35b7ef0544969af6444980209abbb95e7a4176b4db4ffe930233765414d4a6d0bd636f91bd887f851f76c67", + "public_key": + "ee1f4151354a35f12d9ff67693f3a5689f34710fc13fe7e21b923834c38c4b1f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "518714494c6ff2227c52e4eb9a81ff60477fc77aa6371dc9f5ee07aeb820fb3f", + "private_key": + "b95f3e7dd9d16ec8a2ee97b2fbc382fd5b6836bd4d0c78c0c92aab165d63230cd144e5657abd361f3686d8b30897d1bf572f7ca4549acd275dadf651db0f1a77", + "public_key": + "a66ab7c51e49a7836fb6b3cb303e8f8275e4e2971e5b151c51e75c7e20763347", + "child": [ + { + "private_key": + "238b4427b327d2350fe0e5619533d0f1d3f14876bcb28fb63be73460f6343d0870d43eb19c780f879dc6b15ca87df509787eb2def85ced6ddb836a3e09d4e816", + "public_key": + "ec96e72453928f7f37291e2514dd33ee5169d726980b3b9950265b45bda3ba48", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "bd401c279b26d2d68fbe5a3e982ab408bcb30e6127826f504a5b2944344e1e00835035d4409cd4cf18553288d5eb76d0843bec76046333d63136ec7299091814", + "public_key": + "a4a78ea903fc0f35313168c4ee6a115dc35ae5b578026e38a8eb778d48688242", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "03e55c5d6a8d2e82a71f249dfd3c0c2f8bb4f014cc1a8d7c50ecd9eef0f8430ce4752365491b3499e9aca55ed47981af5931f841b6517407283563ccb9f697f3", + "public_key": + "c8c222724e3d8391108957738cf9d6b4a22f8f3465a59634a6693602c358fe48", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3606a92ba9b739453873303b9c50b8b4d1101ba230e1714f8e861c325b755d0c0ae1ee97525f143114ef78569f1c697b947299a3b55c01c4b2cdf8ef3dbc6558", + "public_key": + "60d2fc8fcffb70e357136ae242d5f7afbfd063c80867918a216f69a3a930f36d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "af1aa3d34aeccb48a9dd2276ca46a06a6ec742d9eb579e3443078a7ab0f4c90a2707ee12b7fc4ac1d57fefbf7d37499871af54be4039b802ce3acc2b22aa98bd", + "public_key": + "f40412179fd4520277f147635fde6d5ff6e51230cf2adabaf3135a8987965b17", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e15f4c23e45763436b99dddf12912b20675b5ffdf560c8747ce381fd9d304d0e802a6ce5934d83801d9e70724c04a5fed538bb72d771c5d6d8da34660f0d5de4", + "public_key": + "34948a0713875d740486813f00ad8f5fbe77262aa3a7f8df40b3439673603f35", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7a0cf191bfd578a7faca5e2c0ca64fd35413476193a31b0345d9e0527bd12e03525222a0356f6dfd5092093998b55ea7b1c806b4ecafce7042eb150726f43511", + "public_key": + "fc324899b75e332695a8e70c7154a8e0efa6c3465b431e871652aeb25448827e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e48fa7e8aa4315f354298b9dda43d8ad891e537ba3f10b779aa13fa05fdbb9ee", + "private_key": + "79123023b45eba6a4a89b9eb1b3d4df99432b70359217cef64cc5d9602162e08317a61440d99028d89643b7a3cbeb8593f8595313c7e5fbf1935b7a623932e43", + "public_key": + "e4e9bfc6b8844344235179f57992f28ba20876af282853e60022d7c6f5bada65", + "child": [ + { + "private_key": + "bf9b9ff2fc20b28dea242a3bfeab9fbc3e1596e4169c8e93670dd197ca5f210eb748177b879366ac60af43274b6d48c20b88713feda4a620b8f95ea5a84018a7", + "public_key": + "082357dcef6893b0309655c8bde4f55170f885ad1f6e2b2b52938eacdc27022f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "833eca8d29d98d20d3adbb6a0b87d7f996c219d4bcb7c5a026dab30e1b5670021a72fcc76c1f1356bc1d8cc687bbfa69c1e482be7cf93aa12896ff763cb2725c", + "public_key": + "62d7d015c67c9aa82d59ccfd65a558607215f1e8eaa978dd6d2da260f2a79103", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "c01f47d66660dc88b5089fee3e039ef876d1533d36d29a8f8bafe784ca63bd09094a0882e263c5584440c8ebf13fcbdcddb034c2a7ab69ba192194cd74c18bac", + "public_key": + "421b8bbbebb4ccae5d2a661764a4c12007e0a78318c5c18e8b4a0c87af4b2631", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "98ddbf84a2e05dbc6fae677a616777b90cf2bb0344fc58d643ecd41bd8f3b908efe08ef78ea49c046c1a2af3bdef810d5e804cf4688e6d2c93a590e3c9560b28", + "public_key": + "607c3cc5dcb2292b840c863237c2b02a806138f5b6bfadf209c8242a50cd5566", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d62f5e1070daa45ae464db0abdfaa993760db8caf9ef29c403163831d768650bc3083d58acb3c19d339500bcad014c5cb35cd95024b5ce12668454939103f82d", + "public_key": + "28949be236f7b3ae18d7645c9cd7a6b2aabe13d89c765f8056ab73311883ea1d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ea543deb20aa3a0b27292d7689ad4afa9cd26933568de1158aca4681eb8793094191749468cb7c7a76e9545730c4f5ac90f4fa5690e3b12b6982bdbb6c29fb9c", + "public_key": + "7829d855c0b5f3fd8d98dfa8c68f9cdfd0902307714b7ef2730718513a977a1b", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6d0425cf91697728204341cfa77d287e24b176471756ca165b288ed8a127620a4509a234967c20ae03941c8233d83dd3dd6761ff8e0e7866991f6f91cd306b53", + "public_key": + "b868102fd7f4c53d5e4b971e6565208a68ce4c1c759387fb474f05adcc249901", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e57e69a3e62739546190af3cc30d3ac3f771d582211fec7620048cbd0913d8bd", + "private_key": + "1c89789761667d3b29ea5d7273fe62b28fe8a92e02ecdddde7cc69e63494100f4776185630c79164a6031f9e277611251cea056b3b071b11cb35410e6ed972d0", + "public_key": + "4eb7e906267589d4ec50c0322ea33c8ef49313218420c0ce14b31fc2c8f6cb6f", + "child": [ + { + "private_key": + "a1ad9ce0ef30d5602d54afce0ec235ce9afa645f9985272646f83086d6fb48084465dfb67d4a920f83578f807b3c79ee2d0719c3d7c9e3ad4e2ac044a6d1f7e5", + "public_key": + "66727896e9ae3a42c25e284efbc36dd15df7f685cbf6ad5dbd0a1defe8c1507f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5b41647215c6fe96e87a48b48df497b0045706e044b25e0437c3e5bf340d750ba25d6b394e7c38acde64b67083b8cce5b80c3264390bbfa59b696440095e4c52", + "public_key": + "f0856b3c7eacd1fdc704fcecd1fdd53f9904a3b2391241764936598f50630102", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b2850fa2ce084bf06776010d860f58c323cd0853f5ddd2503ee3b148da022609b7493c1a994ee1ae398ac8cbaeed6e0574d8d4c557fd84eba52ed7e6154437ef", + "public_key": + "3a70791e25ba38b0b1f2f1fbf619ef9f2cc54a2d08f1ff71bee14c4756f55625", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "58ec19af21340872a92c3ab09071ee8bcc0241ca8051b678cced4ca6edfd760fa5e50221896eab931f4dc206b59794864a6101be72de1daf94dcacf5703bd552", + "public_key": + "9eb30dca1cbee077c922a675258cd0703bc41b2b8e1f7bd31138cc3b54e5fa48", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d6ecef8f60f7d66ffed8e5bd270af3bd4436cdf774f169706158d4266df9e70091a497410ca5ae33b595ac2582970d4e1b99870b37d1ffbaf7bda02245541fd7", + "public_key": + "d09600a9bb4b7fbecac3768c807527ce420fa55d39782dcd778c6cab6cfd6516", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "c786c5491f663e3ee2978445a058b017d38d1415820c5bb48ed4cd9aff7eed0933f414a053bd0cb137a84977e26e7a82dbdae0c56edc8cea71e40b3aa573f2a0", + "public_key": + "a05bd589a36a6ecb363e00687404b36515230281b64ed70297acb0880d555709", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "834715d7141586121666085d97d49dcf186c72f2e8e7e686efea1cfc6a41400d65df8c619d6a3b1386fab7a9f744e1761aa0cd4e93b523cabdf42809df350e34", + "public_key": + "42dda81862ddbc81a7eea516abe1a71f3836ed8a1ee7250dd1a128737fe86e07", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d0d71f4da999e3c497cff3539832c717aac27385a1cff824f07a7c59e5e08e91", + "private_key": + "3016f02ee02e5a1deed2ee8d2fa444c03454f1da9c1ae53f693b5f1dd1dd6c0df661b1ed59a9f107e21b9ecfbb5c84c07ac02759fae88f1739281cf7f2338587", + "public_key": + "16a1ba930e7dd53f4616fd285d30aabd7788bb2eb28c5a176a0145081c630419", + "child": [ + { + "private_key": + "efb9d9a180adc16f7dbac0c617b9ad2b06e663feebf07a9bc9a9e1a5c393e209cd45bba14f0723d6524f3762fd9a44b6bb8954324922d565414a0e845babbf67", + "public_key": + "a0184e6f0a4e9b85aa1768ba973014a2943f20fa0a2a732f8155f345e1061524", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "06e92db327f1240533224a340d46d44e0d37d744657ccb1360553c43891cca06443a71f4d053c89ba55f62b700c80d563216c2bd9dd174d52b119c22a92cfaab", + "public_key": + "bad0c2b9aad1a432f893fec8084f67c1676299d1bd5025c52f95fc8cb69e0435", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8b3ccbd327f89111f4c59f39621beb2e6cbe8a66c63a66a683d68bbbe044d90e36d3e669f7966ea0055316f714c3b519324a0fbca183929fc9121efaead797f2", + "public_key": + "561f1033915cd9ef82bfaf405179e7cf4e5cedad78956a955941e092cb49ac6f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "02e5ee506d5a55db218e972a7e4c712b99b9605551cffd9c7bab19459203780bfb3bb6a15b0df8a936dd72d0b9e1fe0246a5356bb972a9cc5e0ff7a1558e03e9", + "public_key": + "8465b8046c12a612d98df5d80b3b7ecaf628d47f38f11f59964b0522eb67284c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ff12cc1c8efbd02f0f9c7ab070ce7edc45948218d0f1eb4be4f33b07992d3709094510c976c83b41291d871878ba122eca42857f85f99532bbdb4931e988d4c2", + "public_key": + "30c78dcbf89ef7a73e986179d6df25ae16a5436f96ced8a11dd693e85d13f25d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "687fb03621bc40444e3eb92687ec01a9a1ea04d3853ebd70068d96a97c96210d9cf9056e193a0fec091b60b3dbed0593b4a8a5e074cbe1ef860b8eb14dd0b56c", + "public_key": + "2a48ca7ddb7bd3c4f1f849589a52317d784c8456b21f62644f1a726bd207f14a", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "593eeed2d6ed9fe9ed57c69fc305011721554821d4a9dfbb1c2afd9dd3fd900c96c4fca8ca9f7b05612e768654c68c29e4fdd340f7558620308c39371afb990d", + "public_key": + "b443aa17c4f8d0f2e6702646cb136672c1be340c78087e45f58044211e2f6605", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d8d7f486a0222f812292667aa5c01b500a6a1d70d5721219cf585b3d7cb5a3f3", + "private_key": + "11e7f2af9174cc344e6691959023c6f800cc469149df84817d448eaf5a38ce0fdaeb8a14cc7e67193838e83a7786b8c2d159e25134fa31f2a118420a686411fc", + "public_key": + "4405bfba9cf5f2a29fd651a53cb33c8fb174cef83e73428ba4a0d4f9a4fd1e0c", + "child": [ + { + "private_key": + "00ed1e496a3c6261925a6aeebf4e40886114babd712e8453ab90c3fca58ff90edb07cb0ed9c644d7c717c30b17839ec7bc60f31fb17769578dd359f3564cdd4f", + "public_key": + "70bf76a6676d3d3d0004b1db0fc30c46eb93071fdcbf026b7f677d6136f83c35", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c32be8c2a2d65ca3e4594f86208e8f17b3d471b65f7137bb8e4c4a6a61c0b50f82bf73aadc7d973aeed7ec2ff616d91dce823ef9b5d7ad28387646aa2fbf7a0d", + "public_key": + "9803a1aa2606c5ff29dc54c89b5adcf10f9d3ba0ee455e458107fb7754cf652f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "285b2ffeaecfe73a226e83c87addbe846d36692a3fbc1bca462eb5d23512140e23f6ff516951ad611ec0b3a3fcb7669a2f23fe0b32e4ab922ef10ac871aa783b", + "public_key": + "ecd8f06013ede0e60e5f995e24f98aaac79c1a077be943b65f8afb05014ca958", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7c33577c81b55e258ae0153bb975d98c866965a6cae07e64391dd7078b1b360b45c6b27e0b086d0829e9206e11c68f28b14b80e3ac9d22c163933be7a5192d6d", + "public_key": + "76088e5a2c6c1919e160937fec7691d6c6547617f127bba051da29fa313e6312", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c537e79cccd23dda4f20eb6dc469832c87a5b2084339726b79ebe37b63070f01eb2324cf92cb603a54f3a250d46493866a2d6f058ea952359bdecb79faed7f68", + "public_key": + "faa70f94786fec7fe122418db4d9e271b7b7270ade35cb0c1c567cad7e91a41a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "4834d6c86c75f701eaba9d249ef057e2cc364f9b76ae8a546f476529cffa800e7c02d3cbc0a103d3328a6ee7bb3615491a0b882698330345121b880d3cbacede", + "public_key": + "90476ab0043e08d8caaa2818e6c5e0214fb63f715a978ec9e5c3b6b0ca82f242", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "284ea2b40ef08f1d96f31788d1ccf83759475066a6ffb55a10d0a33a342fce09a891e1ae0b17542fe54013202149545c5c726ac2ead6484796780c6153ddc69f", + "public_key": + "1867c4d6c633c31220067d58aa8af6576b65175c65bd108bd68ae57bc1fac112", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "15514b43b094da8191c614f78f46cd3fa56349b27b6ca96f8b1596603a6115f2", + "private_key": + "9101d80b24a6a1b554a619653864ef12d5bda9aad2daa02d67445a160a9bea08b90409ef67ce6211ee9c3e05da58a948499f47b858814bb928f182e4a472951a", + "public_key": + "769be48e25fc7e1eaf1af9a40e2b39430a870650c29c284c0ef83193d22db027", + "child": [ + { + "private_key": + "0f7f371c5ad7e74fad4960aea0d6b963af36f204491dd3af003d38bfdd820d08e72b3e58d7442344b8bc9d9599aaad789b75435f53364374307b8ae1df7241a9", + "public_key": + "ec79426cedcbcdacbc1d8a308e869a9f3b85462f5b2ce6ce22e61c12bd9a4a56", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "76500609c59c7c66bae0fac18f603408427750cfcb1d872d626f1eee2484310adcaa79d5a8475cd81d92389fe48156e3040aa341d322e063a7316f88cc4cb25f", + "public_key": + "0e823ffe8a98246c4981d83ed6a764085f04230b986154c3cc71144818c8fe5d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "c4693b82990d04e8914bd0fcdd98b0f623690341b07c97ac2cf69b96c24acc0bb50e3328303740a2cca24fa9513ed791e59a25e1df882847c07aece5d8daea1f", + "public_key": + "548642311138a167581d5a232d4f001f203649df0608e9b2a57629cab2cd8832", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9dab1f7b2a51eba34e09128613521bef4fa4bed0c1deeca63d078b359b276d0dae246a6c6ecdeef079c387ead62f25fe8179fa2d93fc159b07596f943efff39d", + "public_key": + "60b88d02eba36fa82b3efc4d573f78578ff311ac6a4dbbf179b1f71069bf631c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "691a4f29069a9c9741d07bdfe07ca54bf4f3becc94dbeeef2a41ecc662e9620a89440f95f69aaf0227a601bac5cba0b9f203e2e40b935abd2779004d3a5a3971", + "public_key": + "28968a75fc68830726b39f950abe9f264fdb8c384e89d0bad12287e5cbda965e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "55bb3ff3a700de86d12cb5154a5db0eeccb7d6932befae3c943bc8c81017fa0c6f20b01f39bc2810af8c4ab6b98030ec43346cedb424aa6b8b7d51a7179200d9", + "public_key": + "daaea8ee114ea69016557c494989ea977768d5b0e2283059dfe98be102a47c3d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "71da3e0cbe01e7877a8bc1f54c94f0357b2d0e9ae5dde7b4e5c04d9b20cac10f47dfdc8cadb828a1e45930c3b3777a0d870f38ccae103e10e3b44927f5b7f4c3", + "public_key": + "c092e45629de6b4a17f24628f827e1e146f14e6af531c0dc8941a2f679d5dc33", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "4ac5380b2b15d1dc8c45247d4d7481644b739132edc63e944d424924736eb0da", + "private_key": + "4da8a4f4f760d24daeab098e4dd0c77b1ca6de45ecc989d2d494b84bfa216e09f52a40a493781fb945055ab591b1b18059315c9002960961a39822d97a5b356f", + "public_key": + "22d19e23635522bf03ce6543563ccbeb8969d27bb7f0745dfd0c8e3c0418505a", + "child": [ + { + "private_key": + "d3503781b1def78a5e2ca2aa71f2f584339d4ac7cfa44f5fe749f6ae9bf0a70cbf5d5f61a88e3ead30c08c7d7e6eb330442ccab47a8a813d1a3cb08afb31b658", + "public_key": + "5e68367c49bee10dc9e61f5be45cec985642b125cfa6de848ce980af4b4f110f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "29cd9e6990903301e6b3d6e8e579976433ddb5ca1784b78e85d05a26d08a6f0d8c8afa904fe9e226c87b447901631384d8ed33f746eaada26a0d0a4851c73408", + "public_key": + "00a50adf568fb6ed7c90874ab4fd0c4cfe5b3362a9d4d2c028d3457183d77d4d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "02086da86a3179d96f466c13b11787c3e72061038138afcfebbf0fbc93061b0a4ce57a55fa011c40a4b238316e5fecf764b8b0fdbb8fa43cf6ee2f04ca22e11d", + "public_key": + "8442bfa21f917b6e4d6568796c433e95a5ea394fd86b8881ddf2d36377753f3d", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4958e4d4dc641233e78de36d270dd82eae65519a2d43a19087289707aeb0aa0910915e576cce1d5bc7f68d99e124bbf071886e68a58a91d168d500c2e994b766", + "public_key": + "70fd01b4a41a00bb43b574182a51049f28ccdad71367469ea53fd49c55cafa25", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ad2f5742e04fef0e82deb72a6aedbfb8eb79aab09cfe1dd0366aa095f6ec7f0ec93b900ffe4b7c977e9cfaf8f5710ef389f52b4768945054e36360fa09bea6ba", + "public_key": + "606be3af46f567b927274c1a7d6cb867b461869f6edee934e50072d79b57213a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "4bfd9a08659b56cf9de6740907ebb1f1b9721b7a2ddabc4c1a594686679368086e76e01618f526f432f0a4c421bdd2312e3894f963c8dd4d10e2f3a4e99ac7ac", + "public_key": + "440895bcc80acbae2754954dd69abe5458af9ad382f3df0155b8c13de50c043f", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d4d132dd4925385f93fed7515e0d55fca72cebf40bbc2b1b4625a6c5f90b1a022a6e9c0cad512ae137d6b2fd70f4e89f183017ca168e4bb523b1cbb0487e25e3", + "public_key": + "e245c3408a84b8ef824fb7954a842b024a0a1ae91ef5f94280f546a103860620", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "097716ba2cb09129f0dcf27f96aba43671f6a050b357f8a15c19c07d999b8a80", + "private_key": + "28807c5797c1f5e923edc93ed894871de43d6837bc3dc1a898918a5e5022850f1c30c533d8b855e675709d6abb6f56bc756f8854c08274988d9277bd5697b2d8", + "public_key": + "78b322d028fbed3a76635a83c717642cf07fbba9e5b91d6812ba32ce53f5760d", + "child": [ + { + "private_key": + "6b30e42b8b6cbed86a0e9369fe6e7d54c5bfe93a2f5c1aabe3b3fe4bfe35f208450dfff48a055dd013c32485f1795d95181dd6c41dcf67e2420fe2a9539565f1", + "public_key": + "e681f549b05c0c020f2212795eefc5d997d08ce19f92983a45be182d2f08ce79", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4d4bf2734cbcf3363b89bb139a60ecb5cfecc692e989c2d45a6f7676716f8d03d703d0d05185ed1ec5b29d17e0d510a4affe6b093589c2a5d22028e85f1a1f45", + "public_key": + "4e9358ae28dfdf992fc4731da6677c36b6e8fbe4e85bd1a11adc69f90729f246", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "383bd80ffeda5c10736bbf4470b24f5a5b030f45eaaf901904fe53a5faea1d0ab02479d93b0be82f482285279e93ba19141c5d8fc56c8011cc04b1961956d7e5", + "public_key": + "7c924d3e39579955fcda48dbf71684a382d97e275f5d8d17484d2de4cd5fdf4f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2dc113ebdb27facf621eaa7b742ac373cfe929ff92bc96bda43472c93517680c906df8bb1e0fa439fe9bc25ed08f6422c16592879d0acf7e8708277fd8dff8b3", + "public_key": + "b26f04cfffde286d6fca75b75bbd4d7045c551466408eeff2e01173d315d7744", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5c05d936f0088c7d3ea5f7df3d197f0b710f9f34e8d02bc95feb719831028501ae42fdec9866bfba864e201abcbaed657be979927d886ca47323f9df9e8f9d84", + "public_key": + "5ce2c37f4ddbf6713475f1bf437f7f0180de6a449db4c7b75604a89287379b79", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f38a746dc455b37f0836add02476839ba12c5e802ee07eb59ac870adeee78b0dd8b648823322d9ec0590d8375e39e93c0e8e67f8c513a900bfb48bdcf2d7de64", + "public_key": + "40b8b05106f9b4375c1c079fabf8978eb17876c7851d85f8d7ac19cd40967b47", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "db79bd26c740cd9ecfaebe41fb8e48f5c55eb43ba3364eab47de5466c0c3e10e9f85c3905b4d34eb74de2dcd392ee495849a4be8799cdcd2c0574fd6b56060c7", + "public_key": + "724cdfcc4764b4b945f2f0dd0a933f5ebc6746a735fc7f8beed40d2dd375f66e", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1982d0abeecb390fda536834d0c4784bb0fe71561abb4fb7ab7ed86b4d14cc90", + "private_key": + "c58021a6ff5700a5c79f5ee3210998c4357ab64074a59c4f7c39b07fcb429b09981ac30970df7bead2b46e11846b7f48caab8b05f6bf2af194caf5cbeece3941", + "public_key": + "72f6e5e7baac885a6eb2b3271faa1ac16f8277189978ee9ab95264509e1ba65c", + "child": [ + { + "private_key": + "a16bc85568a01717be957b4135e3371096db56c2f7a954d5cb48bc64103af60bc6c333a89e5bbfd85801e66c99d8d4376819d76c736bf685ca3f29d4be16f3f4", + "public_key": + "9291ab64eb07801936579cd530c100e0ff4a1d63cf376601f22526ebe3a50677", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4168672724199654ef2c58f900a3cf46ffd2852b6393ef7d03c720694ee579008122aa8eb0e7821c079cca9f94328ca1642a106195fd56a61209c0defb9159d4", + "public_key": + "60e50e719681725f48da986a3206fd8b99fd86d4f9f220a909a4e3821590ca76", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "138953662765fd04008dc8a0db65a115f772f4d0613b539b9c1ce35a06d8a40bba3f53143386d76aefe1022613c345eeb73a32ac3ef4935eb02fc3afb40ba2db", + "public_key": + "cafd39406b2b2bc79a6096c0088667fabefa78a42a69fe7215792cf5e5b0660c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ad67e8b624d5a4ca535d1a6ce093375b74dbd06882b8dab4dbdd59a1d09e9f0dae85631fd89d4032c01d5aaa0ddd36c08da354a5f00fe0bb22032ee0ad8b51e0", + "public_key": + "62ae7e2a451c7ad5075248f14fb3f00f74670bbd995b45d61d7bbc9533bfb715", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ebcf29472a9ab9d86f370a955588c7275f0d3c54d51b6927af3dcf845435f00c5ede3987008553e666bcd0fc4078961693846ed80d8777a28bf2fabd21436516", + "public_key": + "58a724172629a3d2827a852da7a2d3128c9e2b2f7931d2270cf557ca92b0fd02", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0ddac5516a97e4bc2e291326fc637a82ad04e6a3ab91c5b6b74ab7824d175c0958eae0d249e6fe5e440ef6117f3fc45928af9823d09db27cbcc838cf20a331ea", + "public_key": + "7a29094eefc1094d77b89f1e2ed30f4f20ca0507467a9d7f7f2979a986f4c351", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7d3f4e20654545a413b192d69d454bbd8667ef8883c21ff5ba54da9de301eb042eb2a73fc7a011f14b562960d965c4944413d7d373f4a72858833e4efe7364ca", + "public_key": + "440add5bd8484852d03156b53ced00b33749b69dc4fb0dc446d42dec718e1d4d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "35d533035be2d69633578699fba0a79bb9781d4f77e84c39cac22c7046a31526", + "private_key": + "3cd078bb5abef8d06a795990d8db673f1f6610509651ac2e4b84e2b2efaf460ccb729f4523254e3ba4222dd74fc64db5037c5e5952c7ee2c717bc502756e791b", + "public_key": + "f0b4f5a13dc264e40c41c6f8b0fea7ceb4226a5b23d1cd49ab5f531887fcc976", + "child": [ + { + "private_key": + "e8e24507e32a14db246294b15bd3c24ab8b64512f84f1120d7625a8ca175ef09506a650512df65682676ff6989d1302c6d05f4c32d26ba7d83ad170421e3d2ca", + "public_key": + "a01cf018cf3edd0941a320408561f0beaa44452fa9f63f13190dddfdef6b0308", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b458fdf2c86e8a763c8bb59f54949a5d59ffa655ee476f4003dee5ff0621e604bffe78da36b301b7ab24f07c81bdaf6eb2564d8b75fad1bb656c90f337e4d94e", + "public_key": + "e003f377e0e4e680164ad7d712b24513774a0c7c252fe8d8388ef7902ea2c32b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f1b6d667b0e559a9295a9478c8a0b99a66b39832f2379b2a0fe92d969cc6370ca3ce07e3f1434922c9b1e543997249936c5f0bf57e5722d68044c090f13f1d99", + "public_key": + "1a0574c1f1e0414a65b8049b045935769f429a4926622fbc862ac933ee1e7042", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6e56abc998fc8d39e5b41002df2dc551e6b5aab83cab879ca17be7378faadd0a72dee5780071f15811b4701f28870405248d822f4259d645273163b64ef27f6d", + "public_key": + "9e22d9d29a7f0d4bb0dee958a548392835bf971b89d22bbc5b0b5a7352cf3159", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a1d0b6e04d0348017caad29b82cf2974f5ff4203ae0a57f6b7a5e6b0f48ceb0d2f5f9829c0574a599f2139262c54a280ce3c18568feb00799d37e9d2c4ccb624", + "public_key": + "b60fcc66d132793ac67e43e37f26e0f3e19a270d976b79ecb62f88e80e501c20", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "5917311c853f2edb660731ca8becc208b4a72e44864b289204834bdb5f40ea09c81499a3b72844a85ed4f3b95f5b1541448d970dfb212b370730d03e130de61f", + "public_key": + "aa6ac371e623b63bb48a6d9d735947afae00e36d36ffa25dd5ed002e14f5c73d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1d6518a02578799539bd35a4f837723fc598d78494a020824b34583547d6c4098a04430516db4263e80b486bc54f33339e5a2bbed552b908e8c1d4d67eca3230", + "public_key": + "9cf87ecf851a414f93bb28e4903cd9d234c3bf906144d49ee8f1bbb4268e1f38", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "91bd1d87c4c4ac182a0f42021f9c11bb94fec1b7b2e2a569b644d2047df2c770", + "private_key": + "bbda6509097aba441730456d215cc8b5034266fc000a397cbb8d368472d0f20d79c34411b7b3dafc66b0123c3fa751700bedcee90c2b194246eab5e506c9caab", + "public_key": + "98950b3bee58ed81b5fb230b3c7bb928c3afbeb68c5a3dc3feab7e3a07400d51", + "child": [ + { + "private_key": + "2e724ada9238a0f4971a7ef29a337065801746925af848353ab3b5f68b6fb90c117f3e8c966294e7544afa0616a32e8b83a9c993f83b9ae5b203c3fb75c5fd45", + "public_key": + "5a3401809395d352959f3ae0e982716702a627aff5e90135924566817111271a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "21bc2579f0bac29047bacc7737fbaebdf0fb7ff719cc65df6403fbbd32a952039a9ebd06e61649cb046847187d718d31df324a19caea92e9b1ddc560bcf9b0d3", + "public_key": + "8ea5fed6bdb5cf803d0e8ac92bba9ba66ce7d3a873fcc3e239fec1925b39f41c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "c022169144bc9779e3afc81c5968c8198cd37cae400595866efcd48befe1e408eadb4f5da5d8e6aa1717542771463b3d0b62b1b25e8551f3a69339cc1dcf6a3f", + "public_key": + "2006be5192abc98ae5d83e220c212fd822e640109bf703c6aca017d9000eeb1e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "bc49ca371025c12b011a1519f4a67aba2d0b6d8396ad6aa67a6b5aa8b4b2080b60f9124bdb872e86ae6285677f6c8a1a1bddb3552709b8e39baab5ced37cc0bc", + "public_key": + "100092f5616fcf81ba1b7d95e42e64fa602d5a7453cbb92140c1424118894350", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7f08fb5dc8e973a88b4fb64aa5f9a47ca482b7610eca4fadedb898704f2d7e0a353a629cc2538b824e9fa9f6852dfcd1467dfb85970d1c288851acc0bf3ec888", + "public_key": + "6ecf111edd6d53145e86afc23916e838ae9709595f75cac39f243bb4233d626a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "d674d06fda8a27b0b3b3383e6ac861d28493a2a196f54c389f6048efeb05fb0df081d687224144d16041b6cc0680d365afdcc9f5af58e2c844cc40306cc8aa1e", + "public_key": + "5256a3f7b09d8162cf03e356e00403b520a5257c2b6cfbf7f0bca7ddb2152447", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "21b1a47d5a4f6375c0202c404602105300433b2e61d1009072c5ff1512065906bacab35dc7ba1cf37cbac0800677eab5f0892740f531b36f8fc3866619ce17df", + "public_key": + "4eed7e757f185d9095135198883b6dc883bfcc2508ce50e600ffe9f92928be76", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "7537380aac4330f38d16c48cdd3f404b172d6d94c26736ebb794343be81d676b", + "private_key": + "784ee0ab7705a7c65f0900ce70fe29fc53830bdf5e03ff0cc863b82883eaaa0e57cbe987137c45a433336af23f5ba7083a8f83e3c59ec499b1df542cc4ccef4e", + "public_key": + "6e98fb0c71cfb84a16439873b62b4afc968aa8484bb935383aa32d0aeb05ef76", + "child": [ + { + "private_key": + "6cbec834bd9b65849c7e2c203b91ded75814961f698b0ecfcd0f7054df08860d5121d6222327fe56238a999cd9cd06251af9206ed82d51d5bf20d2630c82e47f", + "public_key": + "066c82dd804f52b2cfa8f41ba9b50740b6eb9c48e4dde1b45f74578f16f6551d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ee308ccfd11cc1af0eacd6505cc3fe966398a93cbbecf65ba0bdd826c1a9460bec288c4b1b2c64f87621f54a6b860e475bfeff5714a73931cdd3c87f590dcd35", + "public_key": + "2e186a31a3479741cf70c03bd9cd13966216af5bfb1adc099e70a6e29d86183a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f3256d64372b9ebcea456cd770e04e17b97698828bc6cf5e4ebaa033720cb609bdca8c8f766629be39b1522a16188939837447ef606739e90c940b0caf2a90e8", + "public_key": + "70726f2bec1f5469ce7e612c9d8c48e8633069c8e14abb937a261efda539aa36", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "cda50fe9301ee94948ca3788efa8317c1d21ff05795801aa23962ae42ec7290d875332974e2973c450bc8c030bf7944ef33d504628305600c7c20663a9f454b5", + "public_key": + "fa21fc73d858005fa2ae4e1192d5f1c813a3884d522131415672686708717b74", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d7dd5a875e8abfc302a900b78a8cc226120e662e9ce7a2c1c137af7a1b7db303f3efbe70ea08d9b62f2cd34f96359d8f431da7557e22e4c9df9c4f092a815918", + "public_key": + "24c95dd533195ef6cd185713834e17ae2bf7ee21e3607a1e3ad18e7752a9561b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "26cd1cdda756cd0500e6b355f37e88317b3c8927e0d6899c62fea6debf24ab0f878be5b795d3aa0e44335e5fe111e88dfa0dd6ea0a3a119899c0c9fec0039037", + "public_key": + "6ee9fc439191cf94e78d7f61f17e89c6d8c8c5e8efb6521dc7b37384236a332e", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7c18fa884f4a75e302a50434f4e553cf41cacbe62c05f1e5428222fd22ba7f04195da3d13f64458f4708b088ec6f5757d041ec3d12d7ae1b0cc234eb22b94182", + "public_key": + "0ab09cad5506d7690d3dfd881468a41dd0d124042315d23c39a34326121cfe5b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "9417ff1ae864f0845bbcbe946d32b63817e0d57e029577617a95ec83e4be5001", + "private_key": + "5349083f7ad4b86cf13c80ab67512f8a197de5856f1127f5f7f1a0b9ab6006083c0f97a1fe6f93320d6c796e2f2ccd95807dff7678fb0a28e38fe5c7df74d084", + "public_key": + "ea7eabe6e34fcb261ef2427517f86ed5cd720eca505b7ce14e761f58b03e3327", + "child": [ + { + "private_key": + "951e6484d23b4298f2631587a31905453bf50dd7c6d5567299fb34c3f207b00aa12790d9d02934d5a67be05613e19669be51ecc927af33a84e1bb050eae1ec02", + "public_key": + "540f38111f89180bb12fa44fb4dfa4c7d89cd916d20ed61eebbe35c06dcc3a12", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d06169e389ee22e5dfb3f2c7d2e11233c72bb5fbe16ee0f2dd53d1ce7f3d4b060f81784da45c7b528ecc48c122352b56b2c30c8715abf23c1529bf9621286019", + "public_key": + "fa9255da71679c2ba10c404e284bc7c3c8bdff899c0d8e0231e0a5c7192bde01", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8eec4ae70672a1781ed72b60477675a41a08455e2f160ad03d31be4d5127860b81ec3603f1fdfa88042ff462e6889a6bd40fbfc4066e6d51e68487013f19e970", + "public_key": + "3cf0f3f896afc0b3d4093b5719a6d59c9825774da900e0f120ded7d7280cdd54", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "afa13942b00e8fa6a6bf5c625ae6cdd326d463ae4b4374ad5e2792e347749d08aec428c32e6bf0ead83e98fb037e7b3e5a263d19bc9a6556b556cf0c620c7c83", + "public_key": + "0a6af30893a5d5db3336d6b2d8baf641f23172f873aea75bb4244bd4f2d7236b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "94e6167960bf070bec47582c31e0507b1f49a0ef50ab4c664a42ecdae529d901a79f8f2f34439c6b2b06a071a504b9cf7c22107b491a605b79937eec9641bbb0", + "public_key": + "2cf97735c65e0c1b5a4b0af622c0aa8a7d658cdc1cb144b42ba804dfa48bdb44", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "a1e20e519ac0fcbfabbd2921fafdef2ebf6f4bd13b0d25d99f5fb91836aa090f86f15c0f0c83b2d3ddc75d419fc1b88b2be93e2cb4525820bf3434015d547255", + "public_key": + "9e62d2deb4004e29df698c9addfa7afd3a0a8bcf92541e6ca43025ed465e627a", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b1fc9e8eff7c1405ee2af1aab16eda88189bcb2b81b0ea9e1ef0c0a0071bf70ee2a2a659c5bc0db29639f03e29b4753879809ab5e50f584db397fd7370752ade", + "public_key": + "dc088a83e35260e8412b7d75ebf34936133fcae2c28e59b5016a992ab76aa27f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c718980873262f8dd4be2fe009deaf44697b3696a5a36234e1c2975d56d6ad56", + "private_key": + "86a758ad0ead53deda73008a3506bfd501df8ef65c4490199641ce1498d6d80c89eb4cbeac4c9562cc06183cc3a75ab8605837f0cb1cafc3ad4ede7d9e3bbf83", + "public_key": + "5ca40c01f66e698cd3238dd3f494df875680b5873301bff71c518393c50fce1c", + "child": [ + { + "private_key": + "a194d738adf22ef1f3aefdd3ab907c08c920df8f6bcb89735855be95e472840fb468211be2e1351ac979bbc1c1c2016164c5c16d708d7d27f268da3009264a0f", + "public_key": + "c435da59acef8bba5e0b4e9ea5e385595a8c09672f0cdf156b6c8cd29e9dc422", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b45be7636ee10f569b08f208d070fee28ae2b13e31b2c7817593e6392d406d0b7853b7f4183f217dd48e92974509d9a5950ff0fd8ac11352806625b4c1a4bbb7", + "public_key": + "ea7839181f63b71b5cf2bed1323ae6da30146a93e3fbe4818a31232cde45eb61", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "27000e8ab6da61be3d8e24a8bffe04a0910d84023dc4284f406d8315d87ca90bda8b6265064c59e5f7844b11fa389fa9eb6e3d98d88bdf8287bace1c828c2702", + "public_key": + "2a1ebd21bd9a43fe7490892e19a9bf4af05e3ae63234a575df83d11d93405a7e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2063bcbbbfd701d1790e86d2c56ce3beae9772a33b9b63f0fac41fcc33c8f80c9ac06351b896175d78373de14d010e1b7843bd59f62969adfab2d949854eedd4", + "public_key": + "6c113b52a3d2e577f74e621182009b843b6c4ef8a9f48c28aa5bcf7d08100711", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0f5e739b28599d76f85af28862f03541507e762cb02bbbfb6ddade1ec97aac0b543331b59a55970c984952c2949e5af8ecdcd135ede6a98382f0258b20a4cd31", + "public_key": + "f8f45efe28622daa9d8a8cc839ebb427927009eac24f05cb2fcb05dedc9c715b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "92a8e8cd4e9ea81a7f97399ddc6caf622328696de73c0ecc2cad6a3af58fc40e52a0b3244a4a7e43baa8ba2a8e7fe290afbf0d81d51c3ab9f5ff050189deeaeb", + "public_key": + "465c66876b7623bad4e4f8f66e4c92dc129901ccb830b5d69eba172277b51823", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a3c77afd587d696e8e22730cfd4ea8da5a047e9bb9ae974c950c4f34d9b59502ed8f3423fb8b4e5c4ac871d08533b4cad43809a3eef8ec3114cddfef6c8a62d2", + "public_key": + "84f5a952ef916886fe1552238139c25257c51b364950a083a91246fca5151477", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1629bbedf7193cc7276d390d76eb2331c39976f4adea678fdd5f6d670fab43fc", + "private_key": + "b3b9c0f43cba3b995443ad793e1f7f4ce142003998c1b7b9174f140c19f8150cf0ab19eb1181158c9e7640a6e632834fb8e54545a739ec47dcd80b09d8b0efa8", + "public_key": + "7a8559a64cd6e9766d7e0b0248bd3e314e1137fc9a7f140f98bd7c827ffb064a", + "child": [ + { + "private_key": + "43c0d2a6f965dd599e20ee42cc12d1a757ab849fefee0497b74215485aa25d0ab705dad59b576cfbbf986f3ce62d196a70b886f520cf37cc5133a62eb93d4d4c", + "public_key": + "0424e4bee422d013637035442cf47187e777cad05999391eedb0a707e7c34e45", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0d7a0bb98eec2dec3c6576921be65a115599d3c4ab9924e9f54a2a465aa3530a78e11041754a487159f6f7bcfa3fc8b1c347ca5ebea2748503d8a0d4836ef54f", + "public_key": + "aeaa4e01c037e774364dd2da9d67be1df1d5df53cfa69fb9c9b54df8aa5d8305", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "029833d0a89b76a7917c40eb6b10827494716ba348d8584e1ccc14773991d20f2c0f092fcaf6f3b0a976bc10aebf62dfab68a845cd50507418442f9a40289428", + "public_key": + "4ebe4940fde18f8e00da89e4f46e458027acb23bddf1194838e3eca215e33f1b", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b394b294dac1544d6d2cc426e052623b540f9cd939f578efacfa1c455b98840c278271915a8698e6f19565cc9076cb52008c482266e8dccca4859f0ba00c47c1", + "public_key": + "06b528b1979dc5bc4335f9bd4b87223045a96d9bccd735af7c13f2aca378e423", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "348f4e2775e5c30415cc32c294253a4dfdab7f14b32358cc471b76d3dcecf60e3a72d62e2921fdcc8dfeac6ee4441f99a1f339f19b4ea44979583efd145d730f", + "public_key": + "2ce43ce167e494616dcc4b3314f4f8825a9b88a8f8156bd450e46551c5b67429", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "66dfdb6d22d091fa149963b6a5b3ebcafc9f7f8b6a5f5da88db0639b2e6fe30cea18709b2c189038c9dd5bc88a2bd65ceb537dca096bdcc324ecbb9df182954c", + "public_key": + "50a0b15c7da9621ba56bb432a20d6f43b73fb9fb3d0e5c5a7d3d8cd792583732", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7b1caa863927fe4d209303077100331aaac8d583e12806217cc3777efdc01705ef60b358b5008a90dab3ea822c1ef940f990b88483be7535f125027d0df9bf1a", + "public_key": + "c0919eb7e2c8775cd8afdc8fbc5dd85abf5b7d4d6cbc50f715c38e3fd9e83d3b", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c6c57e499f3b8e7a700df0675d677cef5707d5c96b580c445533b2510b42abcd", + "private_key": + "e729a2660b8726f605e650404e3be57a12f6e2a474837a5491b580d1b217c40f8bff3b9f062fb8d764bf64529de8541e4b7b5e15973ae7534b219fc4080dc481", + "public_key": + "9c3bf0f1b806af1f7039f4fd738bc895ad8459b388289ae239ec9d276fefce32", + "child": [ + { + "private_key": + "d17167217b68a9a19cd40281aeaaa20065e69ffa90fc759027661a800c5f860be34c72a8d44f6823d1155b1814379842457d337c26cf35ec7da2cbee0b2702de", + "public_key": + "ea8a87c422cb08a8816177e164252c0fa01c6f2e6476a87af094643b2e9b4d68", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0d8713cbb900e574d66a84fde933515064164cf93b26327e9c27bf6b89212908a33080393a4d2a9fe446391c76842c0a906ce269c8f70b525ef488024b853092", + "public_key": + "e075eb465f26d397cd4b8e36078c2bbb547e4b0dd94705e409257759e266c831", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "797a2bb4d68201632afa3ebc2236012c3442ddd91f264a18f424737d5b3dc30f5435e280052d57fa97088cce9b91edf22fd31bbeb5f7822a1b34ba2f3af81d9d", + "public_key": + "cc95c56ffd8abfd5a7894f9fd561e58e8d7a4b095c83c05a1feb32a88a23df35", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0af6cc4b9c01404ea6e8bb9e46caf0a9831a4b8c21cb2a42d1995acdd476c8088ae5173053c604834b028decf62091c011e8f2e729129c5fe8f95bf8d075bfe7", + "public_key": + "145df2bb53cfebaae6c3dba7066549dfc7970d2a86a69c242fce2d22b90d4634", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7ceb52cd62244c77c2f50c83cbed4cae3077433ca10fa7dcdc14e7ae2b74160ec9d1d012360bb331130e5ca5fef8b2e89eede5152e7dcd914bb8cc78fc28d07b", + "public_key": + "4a65bf4df1e5b5776d939e7f0639d6deb275ec31e1b37f91d46382a0d438d675", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "41b3f332ad2838cd6e051659ae2c6cf4cb52bef57f7c8ed3f43e1464fcd7b90d1b56949c04d6980bc201213e59ba440d0436c42e154117c3db565b4641b27bdc", + "public_key": + "4838bba04ba6897deea86964dea6b5b92d12dc5a9253e55f25c0be802a4c002c", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "68554cab2b59a6ed86f7f0bcf6ecfc01a8713b9797157659ec989f9d64db5703d071536342abfb87d03b9f983eb1286be0aae57869b9654f8d282b107fc3e173", + "public_key": + "12f1db923728e93562c664890cf74b1db09d3f6252aae33fb270c35dbfd68440", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "872bae3701fc164ec584a67c4d95319b16da2ed999d4ad8615ae299ed7b0a355", + "private_key": + "5cdb876310e28ee8bc7028dc232fd137087ef9f86a268c674e2ab5a42ff0a50be77cffab5ed263d3cc20105864c2973e0500896251f87cdb2fe5b08970c58989", + "public_key": + "dc679d77a802dda48e0a1896c4384e463a972ee89d10c0b9a5df4926a014f274", + "child": [ + { + "private_key": + "a4b12c18ef437a1f57593d6729aec244fe48e798eb277ddd7a9a4c10ba452c0f09a9701666176c75c806bcb478464c41196be8cc9cfa1e86412d7cfa10457219", + "public_key": + "220c01c28de908fd07e9d0dc1200a1e10e7c42115f28d08fe5038058d5333e46", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2113251ff8e032db98e80de4a108a2c8347605eb775b91e1663e150ae915a604ab698a8f22f7319f162e756935fdc46df582a65737fb764c528d2f8b145cc310", + "public_key": + "344ff69741b54fb144e4597d8b581358b7d2f3dcef1c598cca384e50207c6775", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ed682f466de9a82147b91cae79c7eba9070e5e72885402906a5e2315e336a50a000b10fbe78da1643c79e43a380913b656b0e7d560b5a8bbfa3e6e59d38258d0", + "public_key": + "e8e366ea9adf64b23036f528ba3a60fef786c8d2052b499daa94caa87677463e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5d2209c52cba4f99df16b682b132eb877f580e82fe9bd8c8e21425856de6ac0cb5857abc415e322f3d9be688d5391fcef8ea94d6b2d9acaa56d8e2294a8312ce", + "public_key": + "60c1001fc6fd062a4f91fe22338e515760e331be14a8fc893b9fa3c588ae684c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8f66930db7890af12aa13ffd05c8b5ed9cb6f44ebcd618a8c517b271b3b41209ad3a5cb9852e2cf075518cb9089e8163258a717ce652a4473d2c69b0e034ff6b", + "public_key": + "42c0d3cf705b3f82b16c9bb51df51dc9ac5de8db8a2e7daa24353b1fd5952e7d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e79c5e58cb6b105a2d053e62fa5751b1b839a8b4b56ff9a7492883f2344eb4084df60f6f1cf68d238add9f9e47f36a9e0c2d9acf103a16e320f3f473bb80e9d6", + "public_key": + "0efdcf064dbe80a736dd481adde80426716cf325f87ba8b621d15c2eef0a443a", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "63c0b3632fa4e6ae7527c6a8a3fe12448c5d24e49f2a6f807abc4deff0f7d6033792703c9c888f88150b7b3eb07b890220a226e6e39c74118d70ced5b87653f3", + "public_key": + "3a663b41a3852ec7a370390e5fa32ca8437d7e89ef57b94e845675f54e1e6746", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "184403675da61323b48dd026bcf5135a5b9d878778cc46586fe6052ca14bb6da", + "private_key": + "06580b8407e169d459f397550390cb5781259b3cc18c08a49d6fb2283740760c2212f9b1e0ab74e4984304d7286934473452515a96756006690af53497e68f83", + "public_key": + "5cc6b9a4992540087e3ce435f4b01d8b27e3f0734dd30c0cf30fdbef05272c2f", + "child": [ + { + "private_key": + "59a5207e82a7b0e11cf2ca457f9c34b868ccf31b3fe32291a7d95b3164ed920a275e7bbab31d4a8218c7a737d0c0861997b0443200b7921f1c2dbbe27a9b9796", + "public_key": + "743713145e803e0ae6787ecb98d446f29d02b3160da9c318121b2a974c1e2b5e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "95fbf6327e94361d21c0975c18c4eb080030887242330f4722ad285553ef1302ffd472e41b654d26db2455f696f495a9f16562ab89b8ba0027da2142af4171c4", + "public_key": + "5e907cfd84464a54c287a9aeff2c210b00eb2065f948d4c8f8a7a755a8cb1744", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "1469dbea01777f7a03ecc8a983de7a4d70dc51513e8a045429cbcfa788fe43096489cfaee180dd18569a75685b414144712f36f10e20448b549dfc1fd73aee9d", + "public_key": + "9ef8b3382ed24013e87972430c4df4ba497abb2cdcf69159e4d44163e265d423", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c0c2f417ef053cf680765780a8a69fb3599fadd450a0cb5fcfee729f2995c90d4e0f2dff24ff82534b4a2d4c5190206e9cbe49ccfb87066247120f8c1837acbe", + "public_key": + "c2e9d43ec3a5c169335d3e83254dd19fe9603465ffbd2cef123fed4102d02403", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3f796beddc1e8a1f0f71ae153b74279fcf6f26dd3d32bb31a66b17152531ed03d9756e9c1aa18e9a79e39fe70b0d8f677d3687345c390a24ca2cb1fe8aec7676", + "public_key": + "56e938466a9baa26461c729e34755e879b8b7e5646fda8c8f953c73da72e5467", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "70c2cffed413a8778553ab4163cb86301f38570d69eec10eeddce25f0a0be60e82feeb8d56ed64cef7a8a7d481f45b19e6c102660848fe8a28d2df5643d2738c", + "public_key": + "5828cce8e7950eadfd5b827de9ad9f28ddad7a01cba3d595a20cf7ff11669a44", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "fde5c1abb6dd04ffc6c311325c90265a6d3e4ccdc98710c648dab2d2f12f780615617266d6ad06306ea929b7c8f0c276fa258feff20ed139b461b743a27b220d", + "public_key": + "8250e3e468b7362c790c91a4f91f27d0e029337fe2094ec2df54a74fcf4c730d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "36a09f497a51953b87b1240466227c96c8c6d02bb51c9cfd255916f6121bfeed", + "private_key": + "09d40e541da33225f628d4fcc371a012a096dd164b930f3dfad39854c7a7ed0a2411abdd9782cd51cf2d54b827445ac04666715783c5e645c572d30eeb34877c", + "public_key": + "447f5a6e91f9cb37edc51f28b815eb9134b97b0fb55e5cd7c155be8d0af6094f", + "child": [ + { + "private_key": + "c9d3fe4c8a5e5b631e3b8f927ed2c8819612fa3fb04781d5217b26b831f1090af43ca8f7031c9506abe50fa9360606c297ea1aaeae915fcee97e8894421ffba7", + "public_key": + "b4468758af9bc5f6283913f397ecf79154d2102838ce69412598979255815503", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ffa8a97ab9ac29bb7a241db84a0643d528c0f59a32ece8cf487e84c0218f470abe56dbca009c544463cdaa876b5a6579ecc7eecd1f7dda0b69d6b9535a7f3011", + "public_key": + "aa017e5b4d969fcedcbebc49bda7eab33b16416dcb62b572cb07c7c37eecfb1c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "201914229c76ba7a74ea34e391d6c99959ecf18889d7dab796b910eab82a230e7992dd55a17bf3db7ecbe2ccc90ca3fffb841f5861e16f58f79cf75d2ec770bf", + "public_key": + "9c388f867322745737c43b14682dabd4e892260eaa21d32f98ba47d99a04a57a", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ac18a44d21033876c4ea44eefa4195493f0bde1e573b756750bc17d146aff20a900f4a5cba1f009f60a74d142fe98de9a010a6472535236caeb822bce3dd79c8", + "public_key": + "9e72d48386f127eb2db718d0ac63cf559bbe5d8ecf5260f4726f702c0f88ac59", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d93f4cca85a870b7d355952e3a4b795a97f97dd5349430b1e70038cda8b8e100e014179d35c1a6355f8a41f07eab6a7e075ba630d20107a3c6f39c2bc29c9f68", + "public_key": + "ec4f9f8834c363d89500fb0b25005877125c102e0a9da241085326c70e9a985e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ddb7da288699afb742ba82ab6094a52d251bb6c837ce47f14165ca79dd52fe0c8975ded554ba6783a93c88925be8f7282fa5c87c8829a853c9e9c9a1e4fe108c", + "public_key": + "fe71cc87cc29c8708c4fafc1bd4148c0f7f9f283835d01c5b709fcfc8370753c", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "57b1c201b31229bf867b8420141d73fa819e32405e6167598473e7c2b5bf0d06c8efb84bdd402c66a02ca5f5793a03acf996419da192547792e2c915921f4a74", + "public_key": + "18ddb0cde2885cf69966e2b9487e3f0da7215477e8364867c74b8d94b34fcf23", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "9b756fd273c5a43a69b0a0c248f7248c4ffeabc0fa2d7faa474da7ae481e04ee", + "private_key": + "1397642041ba1513dc64c0d901f7e8ffa3fe821007d0a5160cfc9a14660c640d9742bbf15cac4f70df0c94268dac9ea879044d36107ea6183208d559064b7004", + "public_key": + "50541cbc91d6c8574be33dff511392811341481166f0e3327883880e48a3963e", + "child": [ + { + "private_key": + "1f3038fdf80806e3bf2a75e8e898158167dc7a6f0225ed7d6d8eaab5493ec109ecb91042cab8fd7633afbc8afcfe7191527a7a246eaf1773b289bb07cae013e3", + "public_key": + "64d6f5ae5e99e22e366dbf49e5cb057c4ae4941703cfdb0da2482a9700d39c3e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "cdbe13d2836e940fa57c1202c4ecabb65bbaa0b533a334b4295bd9a37f46790db8f5117942a62bfca6a3a54f4e79319cfcbd94ae48b13181017e1d2b4aeb425f", + "public_key": + "f6d1b519aaf160134c61e33c09ecd7084655cc4f6f9c11232a288a3c6a5cd879", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "45749af775640bbc1a33014733aceb1c2520511f668a837b26fd60500979810fc2a4ce2b7b217695f3df76ce1603ed14e58441015dcce3ebbebec88f0a4dfdce", + "public_key": + "2498f51ba455bcdde2825b67752d9bd50eb63fbb70e06a5630344824b9141318", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3119f2f968014f9e2d3810b1ff00fc9501aa84d9198f5aa723c6da0661efee0e192e73f88dc7883aefc9690f370bba32193c6b847daa73ef4c7deddb6011e016", + "public_key": + "5ce414d06344d7cf54e5cffeeef2b2696f9e6b687b1d9d527e7d60db89ea6530", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a6787e40c6c498611f062d2ac54a832cdb29957741c5c956fbe9af106e5f2b09ccc0a3b15c5c6331ae6903dedce143d5408af4ceedd9b79b8cdc7066ee7450a7", + "public_key": + "865bfadbbaa44092c16a04573511377d06b3f91b7df4e0c41205e2a279ff9f5b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "5511fb73f8ed5171d8b5f57a37d350f062ef93c6b64210d86c0a1056b119640b906272a9afeb4230841f6914d561873acf193e5612c801231979ea6cd02549d5", + "public_key": + "b2593860ef61c65d5b40abc6bd301b62de1962a5ee8cfef65b9b5c79cd043f62", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1abb8a62aaf283037e2cd0b1b5d613f6cc0161f87adbbda3d9789460332b5408a9a98c119e940eaa05716687e8fd9b91dfc68644a479c319ac637a5085b7f647", + "public_key": + "dac5d459a3ffcfd08ee1b0d13eabaea15584081d0e5b3c7511d223ac4a5d5136", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d6c2dd8323cb6e680a57a2d3700d585ee668a7a826a76e0bb2e35b904be2c76c", + "private_key": + "d9b15859947e3c37944d161a1fd62680646f3ce20d92bc3085fe89d7523c5a0e17c97201d59b808e48e1346ef64db27f616d1d1bec76136e156d88a7cbaec362", + "public_key": + "ace3b5b3614e42e6d6ac32226549f034d50a58908180c3e9505fb1369a6bfa70", + "child": [ + { + "private_key": + "20945870802084302fec0fd5e0eaf3bc37d20ba46ec92970c2df9f6348395e0a0f5ea6f60e9e825b4724a8932499baaccb19ccce2bd4e8609187314157a78900", + "public_key": + "3ca96f182906f74170612af9402865f4a8aef4a7afd37d7e0a4e2a1bc34f0a1f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "fbfcfc4de906a9734ff5ffd3eaa1eaf5da5ab6bb3fa0b44a1736df48d45301066c8ef5c962a5680db18024a0cac1c0ffc35407339da24f980faedfd97b804a7b", + "public_key": + "b41a68a748b54219e1bdbfd3a53fe19a840c20e4c43461725706a56525aab70f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "5a09e9142a860f1a56d74bdfe646da5b78e360e0c41b653e26fe37ad21dacb0fada0041b9a13dd9a4964f3d65f4b1e5ba3e24dd5ae35dfd7f7382b48b1817ec2", + "public_key": + "2c7cd5ac7952d9dedb41e8df6e370cd62d2b1773d819763a27c065b5eae3a71a", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "534677a73e9a2298b557148e56eb2570b464c2d12a05d5818327fc95ffa3530a721262a9d60d5e728baeeed38da0a9e0975fe1d22a12b37599b4d1422ee44784", + "public_key": + "d61d9708499273a7fefd6aad0d7e3d76b18b1dbe6857f67c43323fcabd00cc2a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0b5e6874671e6ec5fa67f2cab52f64277bdeea003ab194280e4d6fb78df6110c3a2fec3abbd6d6f0a5f89dd1d9237f05dfcac592e38ae34a2f4cee50627a1ec4", + "public_key": + "04283fbab773dc0ca235b97b4770d64a804e5431579a08b33b21862280dbee4a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "bbe67e99d96324f892e41b575b5253c5d64f54ee25b24acac5a58f43a819f208c54c29b852fa80839fe75f3764a3e1b6142a19656088abd1a729771a1065e2d7", + "public_key": + "16cc64641457bf59115e140e812dd25d923d4437a4ca35cac6f5dfef3dd64c68", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "63bd720eb025546f37d6825b39907e9b3f67920c334bdeb5811c8ffcdd3fdf040dcfb23832bf4936c6ca50c31f1bdab8854bcbd94185025678ba8117529507b2", + "public_key": + "86fcff80bb5f23c82a52a6767a32149a5892e8fd1da6d7417dc230f20f134b65", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3d8d06f106d3bc8963ebb4a3c19fb9c5ffd90a5ceb359dce44e8a690f14df282", + "private_key": + "7cea8d9ddb9678e1df15a2b2443520ace8a214971fa66a80743322c0b97c980d247a898a8235c2bb09aab7ccb628f0f056a10f852db510341e49fb9fcc44dd90", + "public_key": + "c0cc8efa6f37e471057102fcff59cc384c5254d327e8981aa4ee946af5546340", + "child": [ + { + "private_key": + "e5bced44944f7fb1d531962aec76555b581ee9cf99026ef788633bd65f49bd0e1dfd5ac39eed9ca31d4bdd7cc476769a6cfbfecfa1b18ae4f082e758e65832e7", + "public_key": + "de83ade7d0d21ba28b7cf0fb2cf18f68cd335422108450fcb07527d0d4023e49", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "665b60042cafc5624b4be8181e544ca8500c25499e90f80f6e7cf8d0347ee9087f355cbd01c54c3e165f3a1e0d6a86769164634c29d037eb352144837e6245be", + "public_key": + "ca502bd42028d365cdec7c5928696f8b6b9f893f9f4f68249b827ae87d1a195a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "22c6dfd49faf18f0083323aa403a4d7bedb0d4ae8164ef33fd5cbe5aaac1570a097986ff8796ddc99ca3f963dd0f99495b02e52b4d7cddead792afa6a1bf017f", + "public_key": + "d4d88a1592d5d095704bb7d49d66b065eb56dc74d3ec111f7641481380abe832", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0cca7dd35a727ffdc9e0fc5d270039e536242daf2012bbb4a468c3d7b5643c0faa1a8b149e1e16498d04d200c36a8d7011f04c9fc4fba5e150d933df5a52f55e", + "public_key": + "b41377c91815a6da12d07139c7b0af0ebf1a49ae1d9c1c7a8715f703fd21e566", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6b2ef86ad6225c14fc1488fb669761812e3866848bace8da30e8fc535bc74d096cc6ecf3d902d8e2408b32c7ba92594498ba46a561829b80c466341e01fcb7f5", + "public_key": + "baced67baa42e44623258b48015a6017ae92375dc31c3f8bc06d06292eede318", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f36ba8b890310611e5da16e005199b007f1b952b73a57f5469b1316aa898f00fea3c727fd5006178c1eddf092b37996eacb89ff82f2fecf9eecaa0a2f543b0ce", + "public_key": + "24d7302a7c2a2bfc106f650de113a05171250d249a4c4faa33683510f02fca39", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9908b0674fe602738fddfbe4ebf62efe6097223a2acdc3a89a0aa7cedb7fce060596942ca1b678380502700f52a4837a368476e9836793f4349c55638f56c951", + "public_key": + "7a6c7f9cafca7e3ae19cf659d46d8dc3eef081a361315c75140d84c4a0ddce51", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c79581389abfe37f323e8c577c675c02bf2ffc0d49b4839e134323746c520ae7", + "private_key": + "88c7a637f799c807a8185975e2b7be1c08ed6295b60d13bf2ec4c99757cadf0b168ed09bfac0817253c6d619c2a64fa86b544adb01a986574433e730f3235208", + "public_key": + "6833e1e69a74d5c8a21c903e58bab2b94de60b40149f20e1476d8592f8e2df27", + "child": [ + { + "private_key": + "7646e884bea69d902c6e16faa6385404884d26c7f5662ad92d0553bf4d0575098d575f6809d6dc01ea8ed4204ee777c91b9e919ddc9ab70bb677bb428b255721", + "public_key": + "8abd14918b64e039c343e5f969cd9deab09ac3c905193106d3d57528ded6c64a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "cfe9855e707d6f7eefa8bda22a75eedc7de1d3c6aa353c45a14103c0a10b59016c5d6625e6bda2d2f9ebb2370e81b4968078ace4b36494b53ed4fbe81c6fee19", + "public_key": + "7af2afab9d410a7f922aa614b2427cd080cd47f8882c938d31b7117a565cac2a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "db94c5a2e6a604ec41e71c74e438e137be025f9344d39bf87d38bf1155b8b80921fd2d949f7b35a69dbf573062ce23d4862ca56045d6d8c379617f445a843520", + "public_key": + "5a5e0e66ec2dd77c35c68f10bed32b773e0c3ed11f95f57e82907612c0181b2d", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "334690a3caf543d045ca16c68e0214d62b496d7a7e4df49f9a2d7d40233d7309e46b97988d63c0c163c052b01b48ba8003dc1b1029c866a2ab1dc204719e9f5a", + "public_key": + "b8c4bbcf7d02a39ca83490bdf4c21b846411521a8ef3f85e80eb9126a372dd04", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9bef07c5b3012e87812c940595bf437a2d1a839f2bf8361bb3427d5239216605ea93a85265dee1e515f8dea294a88b3378cfbbd60727e54a0c334babd8b18b95", + "public_key": + "b048b87c139861ec3b739a31851d2195bfddcc5d9880abf5353a88906b752d53", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "44837eecd3d55187caf7b2c26d95b550804fcc304e182b780b670afb5da4a308c159b0f6cdfe3cc80e79ebf5e7bdcbb97109fb6a64dffaedc1f8abe4968d1651", + "public_key": + "f0197fc03b1e2f7bb590c2b39798b183be72658fad995397a34e9efe8d74a276", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ef58409733484e45e3d8ce9e30c86c3e0019e9122b5b921e42db560c0ed559059b24e2fafaef8a862e6b13737cfa40a2461ffa5563ce7b952471d5b536ed8810", + "public_key": + "fcbf4752763c08d27c58c988eb0e8965fc56b6928057efbc2c1dfe067550c627", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "a26947d397f79970a2e6d438d084d49c3694b8de50abb2872b4ce9c05da5310d", + "private_key": + "843ef5b2a6af3150b51b0f4d96a4991d3b7bb3f95176d4872f4712d442f1e70d9a9523d4c39f152665669c379f639e2cefec0196097bd01b6cc29a4b5cafb33d", + "public_key": + "eaaf778de2b064d832c4624820a7ad0777f05efa9b95648393db5eae641e8b45", + "child": [ + { + "private_key": + "b9a60dc35bb48bac094fc1ea914994d4b0c4f7e59a2b392822f678b40df2eb0ee27a816c3b91bdaf9b5718d30807794e38e1bdf2786be1d4d6d15b0d4446e31a", + "public_key": + "a2660de87e6c29a613ef3b9efd4e0942421b9907c59507a7392638ee2059d85c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "86d97b8efa7235eac3b12063fe7d9b03eab2a9a9b7a17c2e620a78a654dea20b62618c0186f9ba609bd21500d021c745f170d45563e509b62a07d150b83a2025", + "public_key": + "1ef5dd46f681aeb84e166b0bbf08a019740ae74f6693f91f2afbb4ef235bb42b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0378027f8846588224d3d4a538f6a3141b0ba0ec3da86032ead4386af07d090dafc743d6e97a45b93a23664716bbada300bacd9c0e26c4d8cb4e5d66b933eac0", + "public_key": + "de5fb88574f52e9a8d33395d3847ee4515bdf1c01bb68fe92883d85337b09978", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5b75a6cba66813636d79549e2edc8194c3763ee01322a26b81ee47c790b67f0eec7253797818a7aed11fe14b811d988effa4565e5d57ba180d30f38be3e9cce8", + "public_key": + "38c9860dbe9372ffd559d8c0fb42805565a03b89debca284bdbde351198dce3b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1dd63d9e6c36c128204867214163b86a0e7d1ad6896d83da726e508c481bea0af627346f6669c66930348cc77b0af350d2b2a2a5e4b5b61341a815aae46823af", + "public_key": + "9caa48650abcfa13db5b3467271b18e9119ed0fb4afaf4d5994ca1a109a0a237", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "baa1e838c137417382bdb0982267ec2ebbaa2c1e0e30beaec271f8aad4752f081a75ff652d1a03bd9faba2b59a0948b234667568bea7500451bc06de3ddf942a", + "public_key": + "726abfc9204b5fc8aff993c08259cdfa8566bf49fa44ed6021e61c3baf050e09", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "07750e1f41806fa5cf377da19301ce8655297b08a754fe6d1b32a0cd97d626053cc872bae75c44aed7bd1207e4a044a78420a0d7fb2203d696dea72c4a4ea9fd", + "public_key": + "74614746ea43a7f4d326d9761540094345c328df2ef514bdab72fbd33a79a766", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "8d662790f21aa3f714de4cde5699b6bda63aab44bd13510faefdf8963f0c6553", + "private_key": + "dfea327caaa2063add3b2370fa930c8232e73ebef291ca8a4342bece6549750c7e72225ea37141f826251c41d7b409d3e478aa0d0083ebcecf8a63b77b0b2752", + "public_key": + "28ebe6d65d0715ce8590c810a024504df1bcbd74f8cec6166d58f0fe79f6a129", + "child": [ + { + "private_key": + "fdc7e96dd858e4bd38fe4f609177acb535525393ae6c640e92ea124ac88abb08c31e82e21642b8fe04cdfec9d74633c838bea03beee26414922a7ca1dfb95ae6", + "public_key": + "cc2b9adb809147e2d198f2d9ba2684f1679edc1d1dba64ffd541943310616f00", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1c48291bbe02509afae21d61b1022e8f2f6b851e0b243cbbb0632fe5e710290b48d80493d7631d9d0e508b036c09e1c646d35bb0647388013caa69b23cad0295", + "public_key": + "c80e4b458c2f612dd949c41973fd1a591f142d38712e244b0bbe5a43c8ceac3e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "7803fc0fb740528fafb9fb72bb39300a6416694bc7f2c5636ac716f5ef33350d1bc20ca1de83c5b9e4e9820a940b5f59a22068eafe2a0418dd7e75e3f50f68b1", + "public_key": + "9aaad1c308800369bc46fefb68b92d43bebaabeee77a5e3ccac13acaf626c22b", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c1c7c1dbcda6f39ca4d5b9b08152bd6de651eeb1b5e22e488e5640ed9ab1630e7cb1231058d8c7ca1f5df325a1035aa013cdde7379288aab2add24fe5bda412f", + "public_key": + "92fd9ddf53836a8c8344631e221300bcaa2e17d26d02f58fefc0b69dd86e0648", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6606ef71e74c45661d2555da9fe86e92f322a4ab49fa3cc0952e4ab559f7fc0e576b321efa3edda4320288f56fd7d2754139d04d2a1f78acd8422c1234ed6949", + "public_key": + "a82dfb3379a61fae7933a5ebf43ba6bfd7018eb6f8c08c3d77621ee0df9a0d1c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "bf95c4572d0c541eff5a594d50d9214f3f6bc0d9135c29d556177777f4bc2108f6fd75195a1483acd9de641ed12976cc2a7101e63258717f252a7fb5734034ee", + "public_key": + "922b2d0011676e124c714d2aec76907f35cad32f3c8a487450692bf4c274d809", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0434c9d35718fd3b4fcc72c57cfdba06085f314a8340c13ae40ebbf695a2420a6dfba6e822343992bf361a581d07a132f1194c4b22ea66511c924ddf4d39b2ed", + "public_key": + "b6196cccb33e61ae672f02ff9089b70eeeebd64002303842aecf6ccd5ad9b722", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e058f98359ef5a149b06f4a33e8ab1e707b5118e5b0c152ed3a419d30fd12166", + "private_key": + "a20e03aa2a588cf5e600fe79f8b1e02069f6d2f806fae2376d6268bd0486c40935477afedcdce543bd88d6d049bf68302548b0c383cf1f945757f38c8dce2884", + "public_key": + "7c12c70cac96a1628043e1a7df32bf4d672580bfcceb78eee6883fa4d69d165e", + "child": [ + { + "private_key": + "2442c1e79f4a7e67944668d3225606478f509ea4fe5378ab8194eb44eee69509959e7b5856eae6c76b0ef19c5c05ada58e4010bc00b9ddcb1362fb8330e65eaf", + "public_key": + "1e371ba303472d6975cde4e3f1fd6d26aa13dd10d690291fbba42be100855219", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d929bcb714a57b866488af21c648aef418c09d2bd949c63d32930df771343707a0a724bba48fd54e046bd69a438e16b00e7daa63f2ddf17219771ed0f9cb4f5e", + "public_key": + "ec9586e32e655fb2e6ddcbb409dcdc7e0d72345304d0674455342cd5da1c8f43", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "63da5687cfda127423c4708ff867ebbc131ad03f5c314e64d6aabf9acd95c40a32d3208c0eed13721636aa114c555205654d7f24b6f241452d13fe46bedb152d", + "public_key": + "a4eeedb634900e48cc5e2749e5933c779601408c511a8b26d6de8306ab1efb56", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5752efbe97a276d57ee63b37ab2190e267c3c68c765c5c60fedd9f6127d6780cdb2d46d00fef759f8258d074f2b4b8a0b9945c8c0a2ede6fab4a8c9757d4c9b2", + "public_key": + "66af8ee0e61a5f8fc0e2c9e9ba873da2bf957191fe8cee527da1abc79e0acd4b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "643334d4633649944ad751fec9d7a80e331ab788706475e875caec19cdb56805ec1faf6e234c1a74d83fc79a15fdf27183c3129ec720703e6ebff236f74bd826", + "public_key": + "761e04ec3d64e77468ca8d88f667602c04bbf799428836d470d4747c5b3f2020", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b5c3af05baa9c7dcc50718bca8ec62ebcd83339cac8d9937b6dda9bd07788f0e9a17e9f445dfbbdcce77ba1ad59cd6745ad58e0ad700018303abb808351a73ab", + "public_key": + "aeab0030c609fba880c4eeeb80c02951f65cf2f0cada482ecd3a281664214d14", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b0e5eb8d3f0a68bcdc77b386cbd078804af8d93fdce1cd9a65f2fe49c4ad360899332e768e81fe749eb8068fdb76523f95e3a8b60e73f972e1ff1c16c0f3cc3c", + "public_key": + "b48ee031b479151bd59f6d682a2c2a3b6d2d0c156418de3c682f880c70364463", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "953064cd0c04197103aa723a7644e78fd7436473c220f20b8ff68c271de68328", + "private_key": + "da4db6e4a1b21e12fd980f97d4ef04b2e0247bf540336421b65904b315e2320f297f696708d1001b336d81c097bff5162ed9327fa51c40c04b08e056ed3fefde", + "public_key": + "7646f35671ee9c863a1c43a56a368e4e77a3000141208ea990a702f3057a2a5a", + "child": [ + { + "private_key": + "e74b833fde24ef5761e36abf229f2a53ab22e1719b5df1115763f1be9709330c80f6c358da4c9aa89e3c379f36cb28f0ed9d77bddbd9b9e6e5b353a09bccc871", + "public_key": + "605075c1b54cd0beae850efc87f74580427c8d00964360e8b04d72507714fc6e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "39200acd3824fe97d0dc16789d9ab6b76b24001cf973f053ed03f3b7c0fe360751ef41cc07f2fc8632eb4a641785bd2be4561a9432b2773d54c44ae981629dae", + "public_key": + "5003cb53d351a7fb1bc9f71d583c53d992ba6617979e9fee886035716f45d550", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fae26f9ba5e787d9109f7f52be2c376f69487e77bf2e727e7fa97d914506c708ca8bfa419a60dac3cbb4a5544986cd6dce66991cd6bde62cc11ea569ee78d68d", + "public_key": + "14df4a1d5250766090969c211417cd97f723e2a4a5c8131a7184313ace5a050f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "daac40fd82824868bd1672372efa3e0e7f684cd0b16da0db93c1cf5242d8670805a6723109986fc6cd2cc9a3dec4c5bb9e1af0881ca78fadaf0a0f781ec96939", + "public_key": + "80a7dd36c8c705b8e09d35b9cc8712fe1d9ce873b463afaa09ffdcb9c9b39a70", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "13e66873e13333d3621ccc0eede1b1a96a2c41caf0ba67741032bc43d5dd3d0c5bde1b0a46919ac17c588c39d8a5538a9170ed9aa06aa56b9abfb2ee9c8dbb8c", + "public_key": + "e6606e4946c14a7a832f1beacc917b008647ed0901fff6ec7d53e8716b13f363", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "14a4e60495b0032a27d4065f1938ae481923db5e20a62199aa9a676fa4819c0a2f3234071bdd3ae862a8e8e884f5083532c7990a22006cebe794abc1b6e78090", + "public_key": + "94c1336e1fc3a840be1a4ad60779ba86e5262b40840285dc4b485a36a863be1b", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "66fa4a05faa816fcd95b09bc6a0a8112ba3f5551c81fa97f198eba24a93bd10a693fe45e747a90b1fac8611ecea8f2579e72f2e2fb304b182702babec8ff30cc", + "public_key": + "84e47df1db0a0f466fcfd56b689633359a742475030639cecd0d860a9afccd2f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "77e3747bd5e8a8373a8ce8f3646815188625773e8a0d17c439a0c1f3d878287d", + "private_key": + "634f3004abd4f85bcc13495836942fdb9165852baeec576a4bf520c69731f60c717ece3708bad30b41fd52c5c07d36eef51772d170f830cd5ee143e31f2ecdc3", + "public_key": + "7266ca2793c2d6831ba9b32aad64a9ca200dae3d16bdcacc91246b093986b326", + "child": [ + { + "private_key": + "7f7162cb6e03bc77a2c1ec557f3ea9a3452516ee48fe94e107888a05b4ea2b085765d0120c0302907ead6d876451428f9be8f4874a229254c4b74898a136b251", + "public_key": + "a0d1b0b329398969099dc273f47b9e091d85bd7574f07651dfcf0ba51840147f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "87ad22459f5f73aec5135b5bfe69b39e82890d0d7f330f82024ee95b85b4820d5f135feb1000bd7f41670f5c6384ae2951177d9e0329d43469e2aa100eb5d782", + "public_key": + "b8269daddc4154e6d93993a39cdd9006c0cc1ea03a9a5464215f26e7f9b2bc25", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "150f08277285c936a7a86c0bd4ef0f4c64fa30b4b86c5ecdc0efe48554609d0f81926c303b0dfd1ace5dcd1c2e8ccb24bb85fd3cc95af62985420d4f3c3cb241", + "public_key": + "84a3d3713c3fcef379e098bd80e62a41c26b79709ca5d6aa6bef4c654f96ce58", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "af673daff924d7e22bfa0e718148d7840ce681e9dcc13d5eae8379abd2f3e70f00b855411b1247d3c6d405a03e3adcb04e4cc4f90025fc7203fe08dbe5e29245", + "public_key": + "765d81b5eb7fb5155600f7952d79264b6613b29687367b7dd52fc9bba9643949", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0958eb31c577151315cf07d40c878b9f476d919238931067efd496a91429720cca08f0d95afd132ce3f895a9e351b2f765088e83ec086a6ec2afe5c2160b8318", + "public_key": + "c2cd095dd8c441d5f8ca7d434565c2c3f3ba3874f70f725509258c97f3917b41", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fc4d6f9ac972231c52482554bd9e0c66f061112dbac9c659e84d251bb76ea00a3b4fd35a2980bdfda447554b1bfdf6dbaa63a4f1f6e025a993f5cb9896dad30c", + "public_key": + "cc9dcca02d8983f23036dbe55c1135fafdff3df147b9f5d97ea5b01e626d8952", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "02e254b001a6355532ff1fb95392506a60cb45ecff5bcc0e714797e274cecf08df3f37e0f5f3183b397b7df025bbb31b7fdaf6452150f9260263f019a4c64424", + "public_key": + "96b3d3c4e0391a340ec9180da715d8f1f60c476d9745e81eda1b43c0bc5c822f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e78e22131b6d4876716d641148600cd04cb68884e354a2da5b0b15401b438bc2", + "private_key": + "d27fd016d638e2138e92f8dc0ab0a7d78ae2e9b1dbbd2ace7c6e89ce1b52b00af7b3f2e16c38293edb533fcf7a207406067c47cae430414c2a20c41dcadef7ac", + "public_key": + "628ae05ac5096f9eba51a1b35771cd9c4f4f570da8d4f85e327f6169ea18e252", + "child": [ + { + "private_key": + "7c786620b4d5d7079e6c3a8448feefafeff98e5233343491a93aaa9b1f62480e06528eefd4f8f5830871b2d76aa61ce9337efa7baa7682e2b3d3b31004fc9c18", + "public_key": + "48d50a71fd60f005e583a78cf3a321b5ee81fdb2c2ed82532e7b8aa9f5789d0a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f78772f9605e90ac69712c50814014f91d39c7312ba5ad052f099a80630f100c1dac3c08784e6b92c8e06f6c514202a573b370b0f1bb59580c517df51aa55ed9", + "public_key": + "fe431a647545ca53a7e2caf02fcef0697d118b855926df20495775410dd37e0e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "3fb8a8a9824136453215ab773f99ac25c3442a11c7902b4cd26cc19c901865097217112b468f7c08e92394ce380820b31c79f2ea0a3381ab9915d8f8cd5e29c2", + "public_key": + "86dc5bf807ed77af1ab3d6a013508d83caca33170254d84ee07242795dd8ab1d", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "af74808a0481c4eef258300790e6cd3bc1552ee1098c2067fecb37951df8eb0cb99f9d2b9960109ef482f31fce8aa360c8152db4049f295f4194fa23b2798633", + "public_key": + "a870bd0b8274e8f0f813b2ff044d9d1fca42d97e56e3b0950104dd4c8fd3a24d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "760d827c99a9f409b72eb085b49ca9ec24b0f4758b24b53556c6a272f879bb05621eb6010856852e439eff2f9bb6a511abe68dcc85adb7a151b6ed67dbf6055a", + "public_key": + "f298c7e4d6774f775eb8b2b3efae7fe5bb852c06119ac1d56864b53eb6777d75", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "7e2551b636e91bf6aa3f2a5cdb3f420bf1464da31510cd55bc892dcb7182aa095a9dafc0cd32e2263df0a93577303325b61d0230d6a0ffe9cef27e527b131e8c", + "public_key": + "927db4cc5d976afcc8f507009ee0f335ff1b919889e0fb53258a3fc8d0abf373", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f165f1ab223b65f39706fe85467aa4a2a8848eee0e569a8e98595f8b8f75ce02cf88676c22c9b8a40eea0aeb932897b01c3af81869847a21094c7d1d9294534b", + "public_key": + "d41ce1b489f3347a5cd3de29a41fb3d68399560ed54ff69a1eeb1af9b5a76d1d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "b391ddca09c50a3679bda05d0f6b4bf83721af0e0e5bb7b622b090b87dc80717", + "private_key": + "fde7776ad8b11ca82d37d6b40b6c3c9ad00c7d30b6113f6f459e4462b1c07c0f19145d921c58f0bfd77bb247d819bda9529b2256ce431117d8073a5f4765a60c", + "public_key": + "ac2fc580beb29b3df041b6dec2dba2f8ab96bd9afa69bf1264cafb4e3ca00f59", + "child": [ + { + "private_key": + "71e99378b419d5030b7d267e689554c6007a12b4f0bc23f11fb4d631f08ca40d690fe5f1d540ebe70cd971bb8b614fa46a4bbe11e46e925751f9862308ef6fd1", + "public_key": + "ccf28248f37aca9aec340a1184fd0a99c322d414a18eeec86541b47811b63755", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "2eded2908f623438800d870e37342adc1ccc2402a5053c36c138e34433e0a2035da899eb3c41eea324f69571fb919ebd4d4b3c1bcbaa7efa91109d618d16f8d2", + "public_key": + "46d7e0375b8a9de5ad54721e3345a119dafec2fd1c731cfa68c93c75ac6a164a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ea38ec34d54ef0d2d9fc7e5d516b87440800558791746492eff4f47ebef4e30fcb6525b8e377851d920239d6026885cbc635cd135f73829321559528ec3345a3", + "public_key": + "a875b183348fb4d864a43018c5e36f20c53a9317716e45e9f2aa7f2063651714", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "784a333afc95ce7e42f02e3209e0c381b7d394112249767b3628e27076893c0afe29c7020dcd7b554e7da7b51904c118f69b521d2f707a90eeb3d5bd8892631d", + "public_key": + "981ec497acb006c5daa909e698bc60f9015e468b85ad6c401281394f71e6bc2d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6fb471f0c7fa0010ccb085d4eed2dde4cb7b66c5f49cff59251c8848158583016dcf76de331d9b9aacfb5a0cc123c0c189ef3191b7aae25625fa76fca35ca63f", + "public_key": + "1482ed2de6992bdb938d434c5e2f37ba69ab36bc5cab2001fd2be855e51a9e2c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "aac4cdc7d5e77fa6cf452c4aeb74fbc3f580cbc4baf2cfc455c023068692fb0c04dacf6a6ac1d85667e663a8ece6ac09a342c13d43bef83e0c5fc173ee261a23", + "public_key": + "8c360cb05749cebe9574ccab406c864dd7921e22fcc88147f31a2bbb225a1229", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "5511e6562a238f362dba90777a7742d4c0b75a527d5117f141ddc52206fe08092d10d3646c0f16e2c9d7876d925f74196944d0dfe649c11623b0cd194f8606c5", + "public_key": + "9a26f2491e859c584eb06751db4a776fc33f74738c26b91c459f1f4f7f3fba06", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "77d8a3089c7ef55cfe2084a40c9702d310bdeb3293e27bcb442dd96d390f91a9", + "private_key": + "35119f7e56ce1b35628a02c4cc18b5854686ed93ab4b710e6ece0ec9d3ca190c5a5a4fbc4b9a734d0280042ac6d259e2f6ba70eac4b8b480054ecc949f940a48", + "public_key": + "4c4c86e02661809abc661e7df56dee35afc00ca9f3022218fbb4015a3c10c60d", + "child": [ + { + "private_key": + "3d17fa8948782afe6c4d733897ebc57d8ef2a1d6da2137a5a6c46748eb77610d1db6eb0d170244c0dcff488ec2cdd2b0db6c50a7ac1bab3584897a3c67de22a7", + "public_key": + "f407605341404c6fb1a56624d770d9c47ef19cedd5f47d3574072ff8a45e811e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1606f1c4a950f6391cb399137b349ec2a23873527f14ef205eb0ead256e6ee0b67a73710d1fe25911a442bf6e1154230d61174f9bfa4954cc8d27b53b4f74d85", + "public_key": + "b06452e9246a3b62d373105fbee58156046a11764b944959df1e0a8370b7295e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8dec4022ab5819bb58ae247be1faa3023332a6a485b581bd5ebd708c7a31390dd3ee51db56cf5efede7c2caae4f484915b3aee11cdc4497a3e0f82ecb737e4a0", + "public_key": + "e2cad3c0c5e6dd166091c81de948dd8ff3168e8d16429fe2fe925a4ba9f0e805", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b60253733ac2b2791825295db76fdd3e48a6d1f3d656efe6b703ea1a670e110a8db1ac81871a604614f1b51d2c82bb21418ff70012a201d3ddedc8675af3bd15", + "public_key": + "e02279c5d47a9de6364cbdee6ecdbcf59af09d09e0465e97a44ba9f0e3010652", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9543bca47d7e9ce536eb66bf8d77f8bffeec1ab23023b5e013497855a95adb00e2d8700addb7b38da69d08127e3fd10a8242b6890423b1f66ece0d2d43136ec4", + "public_key": + "a03ffa919bf958ec17dd5217ab1fc5ebb5b0d12f993b5755b7fe06ae11bbba32", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "2903187c6f183f61b371a2f7a6b7d476121f5dcf18b1972f430a020f3ce174080645c58ff06112932f06cd506b3c9b12aa26611242ce789e23a0b5ee768d6d3b", + "public_key": + "429f6ec31bc78969a77b62438b0a8d4531fb4d4f1777de0ad6fb731b85b9d347", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "eece187d4cb456d6d5b63a463a16a524804717bfff64fc20aeacafa52c5ad30a3289af9841dddb1e99a9163973e5e08e455aa34b40859e19dc2fa0d3c4f1666c", + "public_key": + "a4f26f6db5d403cb13a972b3aac1a545339eda22d44c3ec1d4ac3f597854893f", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2b97fc82051914df064c151c76786e37c3dffcf1722fbbacba5abc61c78d61c4", + "private_key": + "8d05e8f1ece1eb6da0290e1b11d5eef6a9737a561b8f4a4f29c73edf7ee8080ffc0d5a11bc3e6f24b5a4475e36232ab6fcc44843df916c385b3ef4c259d3d569", + "public_key": + "10d02d344934e4a1f20806df9372a2391e847993c1d41daf130cf50811719d22", + "child": [ + { + "private_key": + "99c13b8b3a27d531cac4fd3f62803be8f47fbf2fe728df9ff8098df00eb3080b8ea2afe9d476c2cff97cdd4f9ab43c1de606438273b0079223cf40bfb461932c", + "public_key": + "801c727c5151aa67f2d897c9f1cb83bd9c22f37d1574d81b7a0df21eef8e8a18", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b1f4a9ca792444a3f743664b783747b74317e90cc30736d21a22f5af57758a0c9e63e9468f260a7b12ce494345f89db823a2cdc3f371e69c1155979c8191f648", + "public_key": + "0492b1de879e3972da1e187dbcc76b05515ae31afb1aea07dd59597beb0cde7a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "1594a67a86c787594aaa0bf9a58f6d50d9bc4e93704b33e218071d1d5bdb9b09e589c00df8631ff13864498046b6fb62c65d11db7687910d2d2bad0020137be9", + "public_key": + "825b71869143b55e32cd3f561bf3365e9b6760b8f1d680b12eaa9486b1cff57f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d533be324ff45da75dfedfed3985fd8846a32117e0ad90acdebcb20cd3f9060e3adb33602875d32e11b1ab6f8b7e6e729c497c5512234f12b422cf7fe510635e", + "public_key": + "9c2f03ad3f79152de568dc6054afc4335c9c41153cb31e73321002bd4b782607", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "36098ee2952f434c8858c82d44b4301960073913c1578b66fa84867ea09d440868ed15c838fa63e4891a9f511201f5e12251277a37f3ccf15f00035f062fe1cc", + "public_key": + "9c8c652d29ea60b90b6e392f9ab159b4632622e5c73de3d9275b7c3fe9bb642a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "b52323cec06829218a326705f636ff332509a9e816e3d05c57fbf56cad596b0f09535911058674d0678a40bc3589b97ae99f11767839d47abdf6bcbb59edd6f6", + "public_key": + "1ea7fe3540f5fd25a898317d623ef96d8e5d6e3835689c202a778ca0b573cb46", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8e10fa2707580a7a68904e8d7ccc640cf8a719dc58882c3b39f6c8de94f7f10832d395a061943de404180ac2ccc41fba1e8cdee0a4330cfd94ba373f88dbbd3a", + "public_key": + "989403fa7cf5edf55db7fbc6fca5f28ef70d26d29f6028458725b05f4005fe7a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1f135affa357f68fa6f20f38e850d4334b600b7dfcff640b7308af36bf78a177", + "private_key": + "236348a195bdc90c092916f1c50bc865f1ec31365c61a234dc48ca940df6a3093013de902ff7d79b717be11b99105ecc929c35b6034180ace9aa9d7f7e6e07d0", + "public_key": + "e6242d6bbe9e10f958d059c8ed66c2034833a7a814a6253d9871bd00fdc9e600", + "child": [ + { + "private_key": + "c17e1cf9e059d69674af2ec452886362bcbddc40ad483351458ce272a9be420a426cd7b45db45e600e342678c086d7fad2c70ed227cfcefc296906c3f3ac5dc1", + "public_key": + "3aa70cd97e0275f63b447cd29f6a1937d51b4ec694eff55d06732c820f14f160", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "431894b8088316c26abf5dc30a996c6a0366f32cdd17fd9a3af5685776bf64052ea357c10d7f322bf0b742f8a2289a18d7fc0db38d514546a46b2263f014f556", + "public_key": + "b08c33d59829f780e461792467387c7ac6282bd3a798cc1bb6e930ed57c8fc0a", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "d712e42b3d5f0015437b76f5b27d9d5606c802e91e634fd2c50c098b2c1c2809a497ad5165cb3d81e3c365d67d8003d18bfd967aa6bc29ced8d0c1afe1cada4b", + "public_key": + "f44fe94b15daee5f0a30890ce4c2d37c968b67dc8f2eedd04af90c1fea0dc10a", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f21037c571caa00d3ee73bd5961f1f873f600c2da268cb6a9317c3220c09280c6d3834ce81c7052632806dd1db5e74ee566b92fa1e73a62795fd89b974a2a7dd", + "public_key": + "f29912e4f683c0df16e9efe8e78cceb725a7e45504fb76545d3c342d88636475", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "94ab9b3d1623e534c4d6a0b1dfaf89521ec69589c6b97548569169063c350c08981525edae58e1f0251ca4df2646fd8fa1825a766b4c55392b076c473d8de104", + "public_key": + "0014d722af2a450fb4fbe1f377587b501260c057d84226a7e167113c655d1976", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "bfc9073263bc29871acd5b78e8a3519eaf2e0b72a0e34d497d3284402aa7db0f26aaff9a998c4655fed0fc658e9e88e6d81a5cb561aa2653d973ec75477f4a46", + "public_key": + "244397eb58ecae71b68a4dbf0bfd4fdf6219b6842bb30e6ebae0950e1c1ab95a", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "23468799012acef05d825224185fe5e083b98e239d6dab1cdd0138906d58f0055276559b133953bb3fe5b8804f83389372cbbf39fd9037fc7da0e97891cdc01a", + "public_key": + "e81e39c33985533c03d770df29dd8b9478398e076610a0176f8b57c0fc9a087d", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1b92ee2263de56c98c977685512c057e634813ba77f5030c2af2dba09cf8f5dd", + "private_key": + "9f2ef1b955171efe868e66e2d023747c92ccf9e4c6dffd39b1cc4f4347f4d8082dcb43a0ae49b39438d496ad34ecbd9f95db22ec53386c0b6ff91a9a578de100", + "public_key": + "fa0e2c80991fe5e550b070db47cf20c98e909cd63c0d4022cdcb4a488a66aa7a", + "child": [ + { + "private_key": + "9bc327171a530512b46f7be429f47fb1d98e836d3319a7a129941cbc7e7991096ee2235efc30bcda122f213216e72901fcff1eed2f904557d29edf5ce608d176", + "public_key": + "2ef2a377fc0d7b4c0ed521c5c6352029395b8794591d479de1267545f303740f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "07667a695ac9482bb0db39ce7261d0c85ce1af753e15c7dd9fa58a0ea74bd609f5123dbb248a31ee787b40975de7eade1f01c54c2d9188cc2bb01078ed56b9f7", + "public_key": + "10c5618d4d6d37f855978255538b901ea58aa0bb9645bc2dfe7aab54185be65d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "ee93d9db5a55bb39421a1b14bfcfaf7b99bd979ef53d114417943d9796ebab0c544ea9217ba7ce92809114a954cdee2006aa7bc0605fa9a2dba157d2775c1935", + "public_key": + "c68fbaabdb09773375c95b23f8b8bc82c64602957e2ee084defedd30fa66ec06", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "038838d4c334a7b18e300dc2780c1e5102070c6702a1fedb554be4ee2f5e6c0aa11b3ba238c3b85049b505fc1e79897b05d15174011fc33663d609caa89d0bdb", + "public_key": + "f235fd01fbcf03c5585376c17a15ef79d721818a8ce62a84c27a232a763a231f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "06c953657b6d2ad1380ccea0d08dd9ab4f4fea2f9e62312a47275d954a6f9505c4a66b1c2eb758169baee4456f2e3a199db3933781d5e37aa176cea0fe9af6eb", + "public_key": + "fcd0dc9cc63f5d68b6188cd6699eb996405a4cd91df04bd10c94c7f5a8623742", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "83b56bb14fee2b7b17e837edab408e6358d632ccc605e379a7dee981605a860877f5046e16d87870b78f1c4d29fb91a7d2e72c666c8151a4ae981510271ec640", + "public_key": + "ce1a1dad7c2b205ab35a1fc4e4ccc2d461eda5ca14f7190664585925b9196448", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "949afa51348b23ada184a2ac34293edece3aed8264bb56e6ea9fb2e57911a80a71febf333bec638a08aa07cbdd112459ead245fdbd862f01afe44506cf7f2c79", + "public_key": + "7cf2a75bb4faa09d3046d717bdd25631b937d12fb7beacbc8da6ccfde4e53905", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "1a0c58231c7485d9c7e7c2ec8c54b01f2f88e964d86caf49cf6264ce40b038ad", + "private_key": + "49dcb942403ee3e6a000a9797df7c0484be541b37735bfaa72d5b6a64151d20d52236ef348dc8ad1de33a3d23e10cdedebee0700f57bc4fd4a31c757b51ffcd7", + "public_key": + "4ef675e5e7903c94479d387f99e9b62b35b4b15092358af4ea0c00d29e487356", + "child": [ + { + "private_key": + "42a07d1fcafbf11a55712b8d4ace7d5c0c15a735a03d48af43296842b893cb09ae38995f9452df9c594be0ff6ff76b66c8a6496f8e9a8b7627d533823b0c97f7", + "public_key": + "5ee4d31ed00f4354d82316c8509f4146205e27a40950119f0ee219d3a62eba29", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e517b6051702f9cb35c7f1e764c514828d7697d08a7d99012a9ce34277bf1c0f1da9dbd74768aaf403826304a562040c7ffc3dd1206f7275bf3a930b90949b69", + "public_key": + "90d008c389618887121d5649af4632b6c64c5fac8291d3481cf4dbadb1c57462", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e1b39033849dc73b4118ca814d217da8811f0e309b2efa047f66368dafdf790aea242c8bb5cdc8abea22b1f371851cdb89f0a24d8f518a602b1abab9128537d8", + "public_key": + "785b8b2b5ef5f4b9660586eb99f5d898ef7c96aaa276f5986f4201b114e8436d", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "1ca61a2e244a32f1e1cb6da4c23875c5da2ffe15308473d48e75e83f9fcae00a8015d387fc0de87150cb4c73421da43aa2c92dfd148f03a4076123d850f97f2d", + "public_key": + "dc4d17da9754f8d450576b883b3c2d2160b16f71809290afc50cdef5aa550e46", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "289bcffb44e70fbbbbb76d16713b43ca572471bf807c9c1bce4fdbcec0fcd70c5455fadf5ab058edecc33efce6b02b414a156cc65402163a5d140a4bd73d897c", + "public_key": + "eac9895beea4fb2e9a285acd8a8be2a5317cfadf22f150417f2ee6ac4829c70e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "835f50667cc35007b6526b41ddf4cbfe5bf83c318736f7c65d672782a77268099a9d81e321ebd79cded238d058e68b4b235b5f35f1fafe9759ff6f55c680f1c4", + "public_key": + "d2b60713e5bf655e303f44b732566bdf78f431a1b6933acf80e569eab0a28967", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e3a2a1ef69a0c15637df4a631d93c2ce8dbb4a6a0a48ddcd981b9bf2d631800c9899e8a158ba4a209c44e9333dbb154cdcd0a6d3a3741b4df954696462b2d121", + "public_key": + "e6a1fbd6793b9c5f593893788cddd9466d11f1c2b023e5142c0dc8e351f3d054", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "47a52fe37269aa84121575d34bbb4db8eacf3123b21c5f5d6ad663a4fa8a31a9", + "private_key": + "880fb8250fc6c9d598edefbda2c077cfd5602ccd28a63d99356a020ac2452e0d6cd8ccb76d49e0eb44ec5d66337729977ff252d89f9df3355f9463b7e6ebb8b0", + "public_key": + "78e93cb09c4cfa9d7f367c4d34c628e6fec6bb438ed4c9e7cebee27340cc3563", + "child": [ + { + "private_key": + "358652c6ba1affdfd3f50c0e39e6cae663eddf25d88e455923539001121c07080626659963facb610a93730bdd5be0948a2ab8c9838f4d82d8e63275d98c7f51", + "public_key": + "c60cf5a5612159ee34cc43b04b66bef99e4dfd9585c98521548de42f6466ba7d", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "810bb9d8b6248484501a9c84c54f909dbf6ff4de5cf1fef88f82380a347cfc03a64aba8f348ea9f6d838c197df12f410a5c0e54f6eb3b57827532081256a1a48", + "public_key": + "de261e18c24f866d2a80436c2b71c5740b608ab95b3ca8fba217aa4c06007e4e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "cee7b68928babcbf904bc8e8e60cdc199d2845e08167f51ef04e1084aae8610a70d3500d76e3e117452ff5ce26ed8f5f09610ba0fb13b5466cb1fa590da623a7", + "public_key": + "b42f22b5a29c24751701cb80e76f914963c900d9e708bbf7aaf207cd2d556109", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4ddb9fdb21091117b82889d61aa04c52ca98a3d9f9a4abc76002f7552257d4093c78b3b6df0ebb78f12451ddab41747539cc67309b1f038613669bcbaf4fef99", + "public_key": + "aabc4f5cb77e09f8c943a382873399d62d842d930b039da473bb286595a9425b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "09e80b534715e9914dd2a4dd6b175171fe7e29fe143dc51354a0410986c3a70c80bc2ae371de093a1d50db371d53d2be7484c00d2c4f9ac3a53c3201fb3bafdf", + "public_key": + "f4e90baf4a72cbe5ea36359e6efb6f985f73ce79737c143ea96f6c58767f5132", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "96cfb764291a5f2002739a577c5584a9b1f8880ddff498e4eb60b289a71ae2084ce000658b2e2080e0f840494da643b6f2242e51579eae42ca6b82a04654797e", + "public_key": + "827cd1d7160e5369b75ffaae350352969c4791d3e4e13d1ed6b401e79052500c", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "8ecfc78b71fa84ffc960b75d89e2c98418932ea212f722f3086647b3251953085389fc0f2c92879ec89a1680b065140a867160c3f667a7922648f9761611396d", + "public_key": + "d28d4a50dbabb9e3251219bc58eb88295682b7f1ae0c241411aad1f156d9c95c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "5eac077d0625b8cf612088c67add6ffb1059d534c3f3e74dd6d489e894a76d4e", + "private_key": + "e1e753c759e2ce3589ee3e0e38ebe619c8ea3948827326a0a2c0f87dcaffea0fa127aa6904d42492aded4422dd96cda9ed2876e95d2d46db680e976bb870b905", + "public_key": + "6a334d076b7dab872168932d239d0d24e8e5019e97eced192d27e740e6517210", + "child": [ + { + "private_key": + "b3e621bd03c545bd2f635a1002b870cf9d36e753f92a24494093e791f302b70dacfe4f3f6eb61d14ef68f491a026060ead99d61bea57aef5c9e9da52b407eedb", + "public_key": + "faf526a4138935f6590dc87bcb8d969f14363cd38e8dd278af6ffb7e72190f29", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "09e5759d4b4ae4bcc74f252f49795c17e5e735dba56a801d050ee5e98dbdbb003f4188a296f5a340f7028ce60ac8d8897a7b6bc02f7e50e259e0a34c4c922a45", + "public_key": + "fc157df9c83961867a69b283a8c8e0f190c86dc7005a2d19dee246cab2151232", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f14a45f8d224d24a26ff9fdc4f76427c6ebf951b6adb4c49aa192618e0789909bb0c2b939a018b78cf4fda049865ab7bb7397cc1e34742c3ce53f2d9163cf22d", + "public_key": + "64b719bc540250b38213fbdf2b22ca1825e24dd8943e351fe79a0ccde72b9632", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "b7af225d38d5688ded3c0e73625a096a45c3130a2950a46b33bb948264fe240a3945490b592faed43a83171d898ff52ed1f44ee75496897f47b6d61969d9bb51", + "public_key": + "5afaa3a5c91e074462d1586ff9d45ccc7aaa6a32c21bc5f61433c5fd469f5c38", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "eeedaa809bd72a38d1e9f1bfcb413af4a8a7cc3b96082dd62543389dc20fbb014e1d8070a089d197f6758286ca49b58de5223f14f5f2788e6b80d4b8a5b22699", + "public_key": + "a2cf9db2140a61e9e75d8f3f307b316f484b5cfcfcc43c4c38d84f6fec82bf5a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "6e8b69dfbe9dc55a401f502d5f024a7d72bc1939f3a82f6646fcbc313c1f5f0a7176824fbdc2a885d6d468077fdf2b3e5a58266a2bdf24f3166e27bae7b87bde", + "public_key": + "1263708bf27d9dd05407a7a181b1cf353b0f9c50e261eed369f57230e733123c", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "9be891a7ab515810033c7686ebff7c961d32effb1aeeb6cd74fad3300ce33f005b12b24c106226baf5e60c31df63e6d693925276569f2fbdcd0ce8663a6d9a31", + "public_key": + "6aa3acf583432ba9b74368b13fd39ea46a0156f27040251bffa115dd488a2b45", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "ede46af0f7a18bd8f410d100b0012e387cc5df1abc5c81d2dff2e2ea5c897467", + "private_key": + "33a1045bfe0030b88f81db4530b9d3ae94358d35a1ff17ac1caa3954efcd1c0b407aea1a7cdee73c94ec18314e3db03e206fd2dc20d9ef689c189aff71efe97a", + "public_key": + "decbadebe97d96f025b3d49ebdca329230d2f80ab6ddebdfdda970f0e9a73410", + "child": [ + { + "private_key": + "19131f5be006fa32690a72ae21bfebb8e6389ccfeb37ffa1ff93a09719c33b084533afe4cd36fb6e9def3570fe08423ded0211fc0d20bd64f485f56e4322103c", + "public_key": + "fe7a8ffb6aa23d49af04e3494deec8d36ad0138681a8340700e2976712078f58", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d17999e08849448fe327c239a5c26701fe8c4264fa934c87132d26eb4b88f70e927c1f5c673ca06f77966430e251ee5fc33cc638894a91435e4b19a4c5462030", + "public_key": + "d695bda3a420e3058376040b6a70e6070892eaf6161573558ca118d3dc98fe52", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "eb1fbf5180cb2a33c7eadb5d1aac0579dbb4de82a31821d067f3b8cb85f8f109331f342073f317323d81a9e7d8604dc828f736ad0ce736b1875709e04405fc8d", + "public_key": + "3ea45fe33d93475ca9ba234c3dc7a819b7d68f425256920ee51444b46875ff2c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "eb7d44e7226e219496d85603f9f496134081dd552a83ec82f868f46a40fc0608506a2988120e45317f318cdd56ce4073abd5124488c538e96ab065231ba06108", + "public_key": + "56639e5427f95678601c6fcd53222fd2b89fc8e92dc0bac4c6cdd48c10a05269", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "250dcf47674d36f6e8f3de05b958f207f688f539cd498d997815f9bd0a5cef09ceb86341d6ac8c9e4800f235e553c9712203cb1608bb943b1d3676004ae604d9", + "public_key": + "4836a1ef4ced36318cc042863dd8e0d0f83436ecbac5d80d3feecbb503824d63", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f5551b13135b73ca8bd06bbc3a39164ce07364f220d6a88a6ea0ff558b5dd60efa72c88265dfff9f871aa3a5ef0f53a483437deb07f5659597344500eb8593ef", + "public_key": + "e8abdb5852bcf1311c793ca2bbfcd73c32cf3f641e7fc92b10f49764a66f8e54", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "f3d3cd0aba43b915626aab94f93cfa0171580a8f2f8e4cd6701b25545072cc0b57158c3b0b23b2110c8d6e6b4ece596bfa75f07300624c0d6b5f39be5adb6e10", + "public_key": + "7e9fb2b09035a5f7344acb08ca9d73db21cb4643376f07202407434107589e1c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "9d729ac5538111805ef1ddefe4234c2372a85788583fb39f5147f8e2b178cf97", + "private_key": + "d0dc8f91417c483060da063658126c6fe7e5c9022bf8b7ad2625b3f424e98f0f8c04d738a432798954230a7bc8943198913f9e4780a5b3eac4ef9a523f7fc14c", + "public_key": + "ac763653be90a61bdc98d1bd458a4ae7f0dcf596f46445130a866c0e4cb99f2a", + "child": [ + { + "private_key": + "daf802a2bfabca73cba01911cc0f3f3008789dcdb98362385572c238f834780aeb1ea369cac0c05b89aa3b3c1a62231c46a9ca4c2ba3c576cd6847b6a423e917", + "public_key": + "8e3048d795004b0287e6eb9368c7d4b106c28b963aeefaf0e080eb25edef8e40", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "017ea45d04152b6a1b03012f949d5c55c74b4fad9d00678081614a3166e39c09b6bcc261cd1b777c37ba294f721af9b76c0d1728a9d27017330c25a3f64db5b8", + "public_key": + "7470a4031f6972870a2ef3f73c950e839ccc63730ff4d028d675f3fdf2db2810", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e71a73a96041b68fa2c0a047e866f365ee85e9f7757d3239a19f8772c65d8b086939aa7848f010b1c04a0e4fcfb2ffa82e7fe9d998b649aab52d504f8aeb856b", + "public_key": + "c280433c5cd227d1ff3aa2801911b5d5520501504961be263c616b1b5c0a3d47", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "45e156c60c1d031ef45833873beb1e62f8fb0c297ad6d8e2eabbc778c575aa0b5bdf78dca91543a9a53289254c1556e414cfd4892432d8eb7c4d77173fc2036f", + "public_key": + "6a3f16baddf8968b1c52858ebfecd0a36062785360e09be8c2025a4b7568334f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "cf5c482e5643eb8ef2c5ce0aaebe37f276efa4754a116a753201cb4a01578403e1ebd60c1729c06c96a709690be86b96b9bc5a776ab9208fd8221ebb3a59c452", + "public_key": + "ee05a1d9cd99390c0e830879d3ff8c6a4bd2dae13bd032466c77c47a5ff3f97b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "48341804f19224c479f2dde9bc4eab2f74ab21bee7c44cce500fa721ab6b5a0ef8281ec2e12647e342ae334fdec85b7efb7cd13b0213820751392995397966d3", + "public_key": + "b49cbef4ceddb0109794812cfcb048fc3c1ddedd41e762ffeb35a5241b6b2c56", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "cde0e00b495871f5cedc2ad971e47e562ce0aeb59e8385489ab8a986e6ec8a0f98dd86a479c273d53bc2863c429849e6d606939d112cda024054b4a79697f98f", + "public_key": + "081c82fe20b168858c22045611c613cee974aeb8fdfac7401564a1d9c028e034", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "821b99e5ee5158825a8edab810e4285a92808643be85a55df6c808dd21230350", + "private_key": + "42b578bc07362462dca17fc3408b8115b51a3d1aa98a6a3601ffc82335884a0927d73f8de936f7af196589d1847abb38d6a3f26693f0a9a738fb8be23de2f86e", + "public_key": + "785eda7dcf12ad0e9d7361ada3522615783181f2886840bd9331ddcb70625d6e", + "child": [ + { + "private_key": + "b9b586d96575b76c2220846933019d4bad57f518a6b36e59b8c74f702b5fff0a94f44ae63649e9f73c36a28cddc10447906706012f88ffa85e098b24e06078f3", + "public_key": + "b22979deb5fe1056d6de88a819188c609f90f33a20214813d7434b9c1a5da27c", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c1be097a9622622b7e0aa534a9bc237c70b6ed568cab3e07ee7bdffdb45a1209c36040dd73984c216fd94c1e7feaf85d1a1065a5c274e565d75cd6a491ed7b1a", + "public_key": + "3e9796f011eabe391d103f5601f83e712b628ed6d23b2f113a4239f3af903b07", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f3a1af04b1501765888897ed53c7a3164f9efb709e4e8ac55952d1ecb5f27c0d3b08502f307ba542bc57164ff94d862ba42e4a9d4083d8d6975772b38345449b", + "public_key": + "6ad6d454361b4656a46368d031acc1bf1f5cec4745ef1cf1d5b9422775b4be5d", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "d077d83ac7881872d3951c5ac1928d61b4760d19ce0f032fa1422d1797b0bd09b18b5a9552eeb21580d477b7e4087af8c989b3a7acf8bab141a05d7f153c4044", + "public_key": + "605b5c582439dfdffbb3da14e4cbfcf8d2680644b657460c35a618e6266fa03f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0b8502c3d65db898dccbae45fa1f3b0a0920ea48ed62e3f90ebe5139c1c6120a6dfbfd1b6e1cc1ea3ddfada7e544e583a2dbd02ecb18b71ae21d56af614ee50d", + "public_key": + "42f588b3613a4aafdadc5d5551a0eec1959f2fa760a6b57333f063cbb0af9846", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "31a9dfaa6840eaee4c151dba825d2ae5e77c5d90c38da808e0bd2a8abc8e330d41a6065b6987470767895e40d37e2a02f26f1526604b41da791aba53d5205ad7", + "public_key": + "aaaec1d81fb597c9bd84f4ee313723bbb932518b3a6790e29f24fb44a3f2f14e", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6b2c6b4c7a43b22010ded1441de8d73f9c4b04f072434bfe926bcd1c5b68c10d56696dc2337b3820fb90732ae9c70a3d481f76b1eff1b8d9cb25394dd277975d", + "public_key": + "587972aa9869a78497b6a1f1be3ef1eaa64bebacded12999259c5a68125e1b46", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "e2e60ad117334beedbc5b2a4e5044015bf5b83ef9701f63108ba89a06a00f46b", + "private_key": + "2d9a836f22f88df95abd0eb736345fdd474d0d858f3d531f9c9351e075532a0f69da65ffb6b229377a2247a7de4578747a559558d8833b4895c167141754c0cd", + "public_key": + "7a30b1f773d038cfc7e413cadc00a1320e65eb7b3fb9e586b6a9327e44460542", + "child": [ + { + "private_key": + "a09c465733f1065d724928aaeb1b2eeece7f1b338a21e4c6cac24584da98350d016889f7754d5a7efc665583a5d3a36db4364cd8b9bbaa6e95f8374861a8c77e", + "public_key": + "e87a2c300b0e080104d4735a3489d773d3689de17dab53e6e1f0917012ef8651", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "22a078e4083089691189527f062d3f36d46cedd4253c3ff34af614b7ecc891034f4cb8bcee62a6e93ae98cca918bc1b535d0a233a93dab63ba37709f8834e651", + "public_key": + "3a9a226c27a0a4b6ee722a639316ef4be1b773e8b6155ee30bd74c508f950d3c", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "f32b3fe456998a5ba86b291443e41232dde35a8cb5e33d8af398bf32d53ed50f4a0871629cdceb5f73b7b68483972bc1a071c9536298f8b96988015cc07dd785", + "public_key": + "ac741dfb9224f6c3275e00e32e78b82baf09bed46c830951b59d73eb3d70c85e", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "4ac2271a5fa8486b08368cb692d6c8bfb13e69d07f8ec6bef3f63ec770aac10dc0ae754b45daeebfca38b930cb3c342a74371e521b491c2d5a9cbd2a4d0f2bca", + "public_key": + "b0f55912cab40fc3638e24c6fe573b3c0276d313efbd78cedc72aecc6ad61f4f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0a58265178a1bb3417593374e2859c0e979fee95ce22732ec9defbeb06353802ffaed1a11a3ddeecb77cfea2c68f66ce25abbfeccb2df5895fcb63399350c48c", + "public_key": + "2472ac031d6bccc00023f7010c9076a1ae4ba3584e5f53a47d940d7fa3eddc11", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "983be6f2e62064140aeadf04a5e2c3bab09ed73a847895b60483036f1d0eb50a4a9f8bc22b092963c204b842bbdd73b71e974eb6f1f4d61fb9ef63a1f885a879", + "public_key": + "046f907c026378b042cf266192babd2b1060122691b618e71ec549e5836a6061", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c8efdfe43b02a62444b455f008dde8b9a01bc25db5ccf224cc0b59957147d40dd779f48bce9326d8a829f1299d233bbba26c7b3a9a0a5fea0fb8a069b89be7a5", + "public_key": + "125475031ab05bfec9f6f36b6095e03b5d019e959a63af5f98ec907a0a5b6d5a", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "c27e40379554d1ee94f04801aae9a37da0f84b258a31bfb0a38cce804ff33406", + "private_key": + "e337b97c6f0c36e8daca6f24f4e029822a83a31695b2b95d1bbc0f6a760a8a0a707730ebe9edec0e0bd77b537a4c52f204cd48647f9899315fa05b8186969557", + "public_key": + "c4986dc8e21c3f9bdaf937c136e1590e9b26aabd41dbe425e38ea52053459175", + "child": [ + { + "private_key": + "05575e4d1bb94fdcf0c603241e3eb433cb7aa19411617d7fee4abeccf0365a0a6bda83cf9038472305e0dc873246f3a1c20afcf0630cbce4feed3fba65212787", + "public_key": + "cabb086a298c49f583ea1dbb2f6c3c4e4b8ca2c316c9ad5e415a7add434b627f", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "46d0aa5e6843f57ef9947e0e7a171bd7a9b80b8cb0206bc6c82baea4eb95c20184b811d1e5510244ef67065294883a6c97185ea05c6e1069085d4fe8f700aa43", + "public_key": + "c468621502ea2de9c86095f14f70e415d801b5d4cc29b260b81382403adf9e35", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "558f2d8817b4cb94c3a7787ea1a9a9fa4672bcc99eaa31ee41d144a5ac345d0efa55bf0ee5d3d1d41fe7d661a8312f0e3324ff5c07839f778b03b8bbbae1891f", + "public_key": + "14f90efb985ca788a08577e5a10aeb804c2830354979412ac65c8508eacc610c", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "75b1ce50823861ab7b17bbf0cf0abf4af66f79312a7e9823112eef2f30afdd0a990657a8d4b26053cbdbd1cf9cf05083c6c42fd3f102f2746410fa20fc0ef3e3", + "public_key": + "4abf75edd094863c2e7f231ab571d4c35405c314303a6461b177c5bda5f46113", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e15e0faf5031baf87c5a8b9d5a463dd2f923c238d122c600eb89d5159ae2c10e9aa9c81c9cd608086f48ba989afdc9c11d138e4f0c464b16359bf65c3ee2e436", + "public_key": + "d030cab368878322e13c6e244f4430b4f4270b550b7654926c1bfccb2cc52d7a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fb74aaa86a3adb7ef74de2308fd42875e76ae1e6d82990a7991ac19153477a080bde8ffbf9feba490bfa6333951c428a7a4fb3a192bc43e789fab9862432cd69", + "public_key": + "64cad815f88f1ee5f1339e4fee532448d50a8ae896a96a3241483ddd4834b375", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3ad04b72481a85d0c4a27f4c9734846de9683c335614832c473e324a5aa523088eb75fa64d2a50cbf46c605ecde71d39500e402756265451b35d508f4637f12a", + "public_key": + "2a019eeb364a5f0dbf2a449273d086a9e1c5ef4eddedfc5301f6283bb311bf08", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "2a1333be68fcb3ace415f9c3a5ec8aa108d3eb432b79029529ffb3b3e09bc6cb", + "private_key": + "3dfd4d845d790b9ae8cd37f3847c064a949a2b4bb38311179990db4438afb30d83b544f8164b2a017a559f2e2d3c173540e4676deabe37df7a23e82280018bc2", + "public_key": + "38009ce6a2258e1c47e0a10146cbd211d047720d0dee515e96457d8168457a54", + "child": [ + { + "private_key": + "fba33afb63fc7cf0b7268d3770174ca17759c9ad9a59d49212566840c9869a0d85172e223c46ee72dc5fe7a336f982813d3f8fc93205b3a59f0b81dcd9264fa3", + "public_key": + "c408df70d7d3a29e76deba785fb39c655e6b8f18c919eac531308285661b744a", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7094fb70e0352528b5249d9f301f5b6a1c251e85b6896f31d73112f574875a02c3218d6b9b6eeca5185e95d7aed850b2a198437bbd7539228309cc8e7fdc8b84", + "public_key": + "2e09119e88f4948b5e2a400af93e8c3b4bcbf1a3401f14657560d098b1dda10d", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "0c1a85a1c61c624359f15d58849dc17a401d00e8a67bc33ed95fbe8dbee6980a7238ae074ad7a56613d1d91756afbf5c970f6df2a4396789675fc800d63751bd", + "public_key": + "36070c13b3648b444acceecdce4f2f675f6b138fa242dd515caa66769e67c95f", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "903a2399641d4a7377313ede5b48fb0ccdc6429209d8aa1d789fa7c270eacc0e75ec172b76cc74477b0ca2e738a8a1c93381ef410c0e40f1e686322e9b9c2d5c", + "public_key": + "7ac074def96561e0ec83baaf05b0adca62401fc0baec52e8e0f2c3c3cd217154", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "c76ebf7efe7a220cd241638913311b273f9287676ea040d6e3ad034bb75c150302ccdaf8884a813ff90a8aa0d9f377edacd65a3446b4ab55e7f7e8e0f9cb9ceb", + "public_key": + "9028d6836e96eac1cf46e65db2576fe714f199089c9e246321d4b5034690fe0e", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "8bcaa4e4c84a38b26801d7faae3cb6b118d6ffccabe40696c7a7648eee5774097af89d7559aa62263992e4388996228a8826c1701b12f54794d30c0e2c751e17", + "public_key": + "a077f96190d8a27efcfe5d01c4e185c4fa90493a58fd5c0c367d1d6d2e531127", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "a0a86d82431f7925448ad8e80ea622bf7d94445f67836cba231a9e8bdd3b8f050708ff6322f1b1d00603122dcfff9366a438204e6cabbccd437ef120760f2f0f", + "public_key": + "8261410bb0cf9ccab94e6a9e2e817495f96c873645acc54c536cd5a01856ce0c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "ee842499ce918ba4914eef903e6719b3e02b01efead13b18795b67f523f8ffa2", + "private_key": + "2127b2e208651ef432ac387b03df5b77173a706a63a538d4a1e80de3f0b57a0c571d46a54ec50f0f379739bd716f0e3915c725afe772d0f9f5baaab7afc55427", + "public_key": + "4ab38a784045ed6a9b35eafc6eb072f448ebe42e13da72108efde28c62ca7231", + "child": [ + { + "private_key": + "08d4ba7ef10f10b9575fefc65f181870bf12e9e85e7d72e21c4c9f11a8b8ab0feef8c336be41871aa6f584c23706fc379925aa22e21a9c642e8b8743d7858746", + "public_key": + "5ae5499b91594b2cd86db83fdecfc5250bfeed05c3773d17c46fd3d60a517749", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "67294d8873786457fdf839208ecff3b785e51dbb97bcdc71d555c4da5d9bbf02a5488d72235954d3b99295d85b387708d1ff8d930d89038d35cee4e936a8e517", + "public_key": + "66e4156c03767694474bbd28878a582f3bb9482d68ed9c3420d2fd70c8444258", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "3eb4e51e63528f58ee39cd9a4c1b36635ed2e156d7922550ef211db9f3192e09e26570abb611841ce91e7f41a7e29f6a74e7f2f18fcd3ef36edfbe008755004b", + "public_key": + "d02b15b72a288eacc3aaf13cfc801b72a252f9f9ef8c726a1ec1f54e1c276221", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "3b52af5f35f53523efeb74b1008d600c152671d8bc872cc0aa6359dfed55860c40eef9332ed6e6781719bdb6f17e89b59220b204339aaf945b3a9fafcae1a320", + "public_key": + "8c160e90ca3e730a7969502fbba898a851883e4f511c22965516bda8e44e8357", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "681bfc70c39c5c690a4950cb8f3ebe78a85f41eacc818ce45be55f0ec3f2750c33b8173274b9c25ac8a8d224477ed2cbb59db78c4d5d196faf9a2538d6d451a2", + "public_key": + "b6c8c0c82b1688ab146cdd34b3e1d2a3494916662202c3cea59fbc592ba43046", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "14f80ecd8568d22a3ada81f07563dc605e6571604a61e655d386ce3a641a5c0c7b8acac1f11d088c24838c6f38286d5a032051c052e344d3e82f6798a3bfd87e", + "public_key": + "fc8d69b9977d85ba5f839501d588d347acb381c8de53d7d094b17ea045f2d270", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ece2c7131a59eaf9bedccf7668a853ed3a8e6aba938c4277238938726e65a206ab343269a80c353b70485c2afa45d462180cff9c7145cfdab259b5a3c1248541", + "public_key": + "5e607317805fc2d7244a0a424d52fa8898b15b936ccda86df64bbd379e595459", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "3f5633e6a680708d782bae277e8ddef542b4b141a0ecc31c6acd53399d77ac30", + "private_key": + "0474ac826a5084fe5304fc6f28db8ef7eaa0abfd78b1eef8a8d838fdebf5100ae6eb78d8dcdb9caceab5cda9913f32001f5cad88868648e2fd085c35f52db56d", + "public_key": + "f41bb6fc9a601a8d04fe5fcf400f28cbee3e138c3bb47ef136e3662f71d61a77", + "child": [ + { + "private_key": + "a806c847aef6df14a3d42296748e4ba1b4d10d556370ff178a757699d4521d090f5e169e735eeddcb109cfe33111bb856d7596ae090d61b2e7e367c7f240d8c3", + "public_key": + "d8b47bcb11e2d8e35e4d245b3d44dca958757f5506832bf8397d01ce38469f61", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e17dc3fe36e3e0c61cf5c63c02da4907c7ec99162595daa4fad198f90c9b780aa63faf6c25ce15da6afa4559994b079828e78264e59611e0d49f1a28e7102e4c", + "public_key": + "2a214f6868e06055b0553ed5967eb28c3df0cebd423370a8cef72755bfbf5739", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "61bd18c73b31100ef1f8e3d2e08605fea1ebacb768fad0c21fb82b1496d02e0b892f409b682b0b84320d3f27a2435b58d2174463fe12c87a7ccbc84b7bf8302f", + "public_key": + "e0ac34e288d40f21ae1598f794d0c943d7d7460f847ba456bca2ae55ed56da04", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "7bf892bfa8dc49b8224d5bc1bf9dbf715be7eb8431e9ab097b2cfa05719b820b20ffb6cd51e309eb7e388aa86456c13d29834c0e080f5265e63ac187c9e19159", + "public_key": + "667b2e3160c18a5d46dd9c0986bdb13405a586d6d64ee5d31e4554900b94cb2f", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ea5cf4ff9f3bd9eef39541fc367be150b7c515aea6f8128e17e0a958ee040b0d95f0b52aa3534b4c61cc3e1b87d0a35a33ed2ed7f66a0f13d78506a071d04995", + "public_key": + "bcb353ef26fa7992cab67be62a9305ce852b7334495cac4214bde5c6cf2b6432", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "e1880953f7cd8cf017b72ae7d02877cbe3e96854a486f0102331aa7028ebbd0db8902b83535bf700c8e05be647ece66410d10f8ce67f1aabbf2fefa634d17978", + "public_key": + "d29ca743515646f7447196d530988177fb9005f18c822359e22474952bc8010d", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "60fc95aa4f4a2bd131b64549bb3edf3f2430112afad91923a3d9bd6eb3645202fca662c78e73847d8c6b9a83661553afafc0c3f613a3664470d3f1112e6e2e28", + "public_key": + "64b6eb8d42e4c2a228293cd93403b1fa86f0ff9167393b61555c792a4d582454", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "dd952612da1f0b23aa0419f3d31f7614fc1e995385b376c8ce46aa8f5eefa6a6", + "private_key": + "e6dee1cbb3e3405f7fe5400654a6d9673e8a511ee2bfbf952709cee39b1be20d78827a2d98b7a166bc75681d2b704584359e9ec0c384d08973184a8460bcd252", + "public_key": + "96fb0755574948952357cebfa143fcb82cb3863eee91291cbd58fa75701ed750", + "child": [ + { + "private_key": + "480458cc1663f300423c266c724f300307ec85208f7324f886228679e8464809603858760491a0f50e5ea8c851e382ac0312bd3d1fa6ade5112d67ba62f3f78f", + "public_key": + "6c471e22979e3aafabb239f5695b8413cd705f0edefb2cfe5bbaa02a2fed2574", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "6f4eae9208c777c0120c8eb3c0682ff6e4b0401a2a82062eeb852a88abcaeb0440e3538c1f2fb1620efa319aabc71c8badab0cc0e9095c392aaeca6296014668", + "public_key": + "08797b5883342147c8163129cb469d5d79e47ebbdc0e8a49adf23595472ffa7b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "55254fa1a4491bae3b9bef1de03671a3f7f809a465e232abf3f383a792afde0ff3dbb82e3f40e0ea8c5adcdc919ebd2537961ed76d3768144946d9c2bf8ce71f", + "public_key": + "bc715499f16e16864351383591cfab2842ea753df895df42d2a257c1da6b4853", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "89e8c88731f0dfb3c7003c23a8f18bc759ad1243f84e4561eff90dd3de34b40af4e578ab78a3c2cd6353955e61f1b71b1a2f46d0a3d59b73a5036798d53c7613", + "public_key": + "0e09bd69e3266d402792499cf1c8501bebabfe2c1e7b884cfbb54b432e3bb059", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "979abbf5a95e72af76cfed9dbd4cdb9f217be53b48a7a01c5eaed3362a60e9009c7713ca7c2d5461dd09b4abe802952600f369ab7c9c94e5006278d82b0ec1ef", + "public_key": + "cacc80a125c9c5960f16ca9aba55034c8ed707a20d7904919353bf4abae95820", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "fc07f8abef6036e7872c640bd754c0fd0ea24d7d21e970a34df54d634b083f0a5f4ff77974e049d2f930360eea01b7e7918ea7e0b8b712c3beefa6feaff220b1", + "public_key": + "2e15fb62e75f92f618d20f9dfdfb50737c7f8c0143a88cca341e9b6ad25bf125", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0c7e497511d221e6fb0f6959fb2af42ee6c163e83a4280917f55a5b824c6ef0cc55e3d3ef87a7edb592f49ffa93c36f9401958c6d92a0f093951ee70f3167e18", + "public_key": + "cc9c948406a2aec984ceee6b2ba27129fc3e9a019c8eed56041f3c9e11bf4a65", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "d57919976e9cf2101e4fbd44fd05ad3747e7fd8b1e648d3f24064443ed0e0a5c", + "private_key": + "7e0c3db171bfb2d3e3afacb7228d6ddce33c498e385fb8ed692865519861fc0c1bf6a39427e13a6b758afdb9493d11d5a648f36a1b068c5d521d4eec472bf1cf", + "public_key": + "c26ff65ff02903c50ef6a87121ce4c1d9050ba0e320b61cb6f0be714caac8f57", + "child": [ + { + "private_key": + "4ab2bdc4e150524eb6baff6163997f415296305bcf5865d88686217fc7e8e10891ca1dbf0980173cdb129985a284ad037679eda9b190eac018a2d71727c502e1", + "public_key": + "287cb8d640b60bd616f16bdbf85106b01659631b9001f4a618cf22c53d682a14", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "fc894bc59287922ac2308931cf0fea6cad054f903d6bec7c4a81b529c370c70b8d922d94abedf97fd2710e2633ac198951c9c770d25a0e7265cbc3fa0d642af6", + "public_key": + "78e6b44b3bd32a3c33b34d377e5867136a863c98b8fa24ab634931fb3e8c2951", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "4743f81c49b71baba107c173f489c81660aa2a03285585b1880b58792a29ec0ff11f577aed1baabcdd9182fad2ace8ca82e85d3de34f3f5bf63d0975fdb06388", + "public_key": + "16e19cee0ed806eb2c56e5714b1f84af17c899ffd76bfb35bcdee6cc28079a04", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "95c96189bb71f9beccd3593f21ed55f8e7ff5d168c09f80d67dabd9c3203a70a94220a13e4e18127ec907b9d446707265fe384a893d9cd8b56b3292667c07f47", + "public_key": + "82f8b23f42d11c8f23a27f76b4c6bca1edc9b403fda213b8a81cd936f5a0061b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "ce2e172b3825e37ffa80a9ddf777eef670d1f4403e1651d0480b7ddd11e1cf052b67a19e3bd392a9395bbd0bd0ab5846ca5bb63336a9f7f53da4dcbdf1597181", + "public_key": + "accf2dc9c2e3509561708a133f0110c0a28fb5af2ecf928c4c7f36e24b63873b", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "08e2054763bb217332a45c50a1e78548add2bc557c7675bbefdc46c661531a094e5617f568788aea847759924385b1f6e74a4ab1790f0a051e5e4e201b1a0f27", + "public_key": + "1a63f1472d63c112b103f949933604d34ae71ef4f054b4593db0c4b18211e160", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "610fcac7a768f31e83ee82eb4329774597792adcfd11a7ccfc09dfe581c515039223a3cdb78f7da9cc3a367c55135dd4ef78edccb66ab375985320bbd86156f9", + "public_key": + "743130082c9814c33c82e75c446735cfa61e081ff1972d327df70c6405bc7906", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + }, + { + "seed": "f8584248335f955ffc14e0050bda526b295c7225d8bd87d800eb3d1e59866952", + "private_key": + "fd0fde4453d7a2c02b52bb9e160cd08222e083d2f5fa12ed7be1cb42e5c8840828d1fe0be6ae0897aa19fd2f25aba82c75c76712668ce559558403793b8964aa", + "public_key": + "26bc9a1b88a8c7b5192baa46cefc9ba9968e598984a5b612e762cc5e388a652c", + "child": [ + { + "private_key": + "c642d89e79caccd5056c921c6fb4c0ac366ecd8ec7d368d80fdb14288aecb20f77a1d6e9d5a0e350b0a589acb9d339c76ac688fdd5bc477136696be5fd66fabd", + "public_key": + "9a3024dade15d443055b0fb1c9cfe8567b8e1caa2fa6628c32da1f51c83b2064", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "12445c680a3616c65d4f3d256f6a064dac6160c78af3f980c3d166f36cfdb703782b6bb3bf0c9ed7d01ffd0edfc5b0f8d3db5e6a841f91dd053de2425a33a1ad", + "public_key": + "5420706c8703cf00b3b40c9eb0e0379d0e610d48e8a00b5608369c652fb7ea4b", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "41cdfe7e42ae1e25675ab15625afbd68047610d699652678c1cf968b7dbf710bbee1078c93183a58ef2134bbd960d1ff32feb3cd168efc228f497ac4ecb0db9b", + "public_key": + "4e275b2769d3520c0ee51b1c4f21fb011f68f3270a46db7c3bdd30fe025b2f13", + "chain_code": + "1068617264000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "0dd505f637f6cf6d8ec1f3a33524ae7fc01b33eb31f598000d19133421b8120fb1a6c59d064571c1121789fb9d69e82a2ef523d0b058b83acc0d72a34a40b621", + "public_key": + "c0b683da4dce0282418e385119ab3d7676c61d93990e926e8d56e07aac63597e", + "chain_code": + "0100000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "99b7665bf800fb5376ccaace87c59868ff60cae88c67c2270aefacb8017e2c08e44bef4b79c223ddff18aedcaa48b221cb2f6013a8a62c5b95faba3584af8ffc", + "public_key": + "acc4df57d8304241f6970d01b5267d5656c58c000d91c0029e9305764db9c627", + "chain_code": + "0000000000000000000000000000000000000000000000000000000000000000", + "is_hard": false + }, + { + "private_key": + "dbb42456b11d01b40cbd459786448c6d9659b63aaf9b2735ea896e67d3e9eb0996ec83e54aeb08b076d1d700b47d1defbbbc00d8aa7bea2cf64b4fea83466e75", + "public_key": + "92c2ef3b8ee12cd6c8bb1d5d48a77a460f1f11d93b9e215c76191be1b4717e6f", + "chain_code": + "0c00000000000000000000000000000000000000000000000000000000000000", + "is_hard": true + }, + { + "private_key": + "e715e96a1e7a260f1e59f72b892a00562f3f5cc75ceaa4051e81e62284cfb8005da63388a24f781c8f5a956ba6dc9be38bbf3000a8d2349203ebca8cd160b3f0", + "public_key": + "3e00109cb4ae3a03c0a0aeadb45ca848b920c17a73618600f1773cbc8b5ef64c", + "chain_code": + "10736f6674000000000000000000000000000000000000000000000000000000", + "is_hard": false + } + ] + } +]; diff --git a/test/schnorrkel/key_test_vector.dart b/test/schnorrkel/key_test_vector.dart new file mode 100644 index 0000000..f84d283 --- /dev/null +++ b/test/schnorrkel/key_test_vector.dart @@ -0,0 +1,38 @@ +final List> keyTestVector = [ + { + "mini_secret": + "AA4A72800C9E6431B0911C05E560F229E0A66C8449EE72489499BDB284C7C020", + "ed_secret": + "B3BD7841283E8D340CDCB4F88849B3AF3E75CBFA8FFF20BD373E9ADB393AF10F8980D99E1356AF7A1964AE3CFFEFA3DEE859524FC7C2AACDACD04DA61F14F204", + "ed_public": + "F0DB07751C5D8603F3DA189E67703CC88C9D796AB5F8F3E39B3774DC8344EB08", + "uniform_secret": + "A14145563363569D909F9A0DBDF26C923B9F2C3F5958D4120486709147BF260C29DB003EFED84974EB9723CDC23F53B227CD54F3CADA7A336E041BCC056FD02E", + "uniform_public": + "3A536D17717C75759FCED7E1EA5FE6616CD3985747635DCA574CD7EB8FFD084B" + }, + { + "mini_secret": + "C6E3301D8E6E04541DC19ED5CEA4532A4C8824432CB97DAA9467CB05A2D34518", + "ed_secret": + "CBA0D0CD5212F2176B0B794B4F4C14A89D8C9AA879612241251C24722D6AE00E4E11227AFAF4F144AF99EE3BE244D3F9A4E5E19D63BABE68FC3E59E7307C1E14", + "ed_public": + "04764D8C8BFDB599A4C20217BC1E84539A7A46A2B965791D9064E4803D38E476", + "uniform_secret": + "7CDBA180A60145F208EB81A724CB346CAE6DD52CF6A01C6F72DAA060BBBDD508528937651EC4FE509D381C3BB99EE8D1A31D54BDF26F69415AAFC8639F44F346", + "uniform_public": + "2E04E494BCC688C6532B956D3F32A65717F4A5A740FA2189FDBA94186F039916" + }, + { + "mini_secret": + "BCD426702765A1FA4ECBAC15A89ACCD694379AE3E4A8F995DDFFABCBA6DB77DB", + "ed_secret": + "0D4771411C73D0C3F355FAA4E6CD1D40802E81B9792D87E0A716121CD1B0280B49BF863787FF5D27681642F3AC67C60A4B16C28BF7E9E0F4A1A0A8D058FE43EE", + "ed_public": + "92EC5148EA5E2343EBF86CDE764C824CD6E9203B7CF3A04CEC465043F7ADFC77", + "uniform_secret": + "D7E872FF3B594B5615A7775466EE0E741B53C3E65B89776D948120477B76CD04628BE7920BB9DE6674A4FE7C0E4F6FA973AC37D8F91C96200827F89DF6EF2640", + "uniform_public": + "A81650297678FB7D335A6CDFEC59CE6DBD12A111BCE0C4B5CD41D1B35EB0F12F" + } +]; diff --git a/test/schnorrkel/schnorrkel_key_test.dart b/test/schnorrkel/schnorrkel_key_test.dart new file mode 100644 index 0000000..4ea826d --- /dev/null +++ b/test/schnorrkel/schnorrkel_key_test.dart @@ -0,0 +1,25 @@ +// all keys generated from https://github.com/noot/schnorrkel/blob/f7551a43845ba65e8782a2c7d80439111eeda687/src/keys.rs#L983 + +import 'package:blockchain_utils/crypto/crypto/schnorrkel/keys/keys.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import '../quick_hex.dart'; +import 'key_test_vector.dart'; + +void main() { + test("schnorrkel keys", () { + for (final i in keyTestVector) { + final seed = BytesUtils.fromHexString(i["mini_secret"]); + final miniSecret = SchnorrkelMiniSecretKey.fromBytes(seed); + final edSecret = miniSecret.toSecretKey(ExpansionMode.ed25519); + expect(edSecret.toBytes().toHex().toUpperCase(), i["ed_secret"]); + expect( + edSecret.publicKey().toBytes().toHex().toUpperCase(), i["ed_public"]); + final uniSecret = miniSecret.toSecretKey(ExpansionMode.uniform); + expect(uniSecret.toBytes().toHex().toUpperCase(), i["uniform_secret"]); + expect(uniSecret.publicKey().toBytes().toHex().toUpperCase(), + i["uniform_public"]); + } + }); +} diff --git a/test/schnorrkel/sign_test.dart b/test/schnorrkel/sign_test.dart new file mode 100644 index 0000000..851a25b --- /dev/null +++ b/test/schnorrkel/sign_test.dart @@ -0,0 +1,41 @@ +import 'package:blockchain_utils/crypto/crypto/schnorrkel/keys/keys.dart'; +import 'package:blockchain_utils/crypto/crypto/schnorrkel/merlin/transcript.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import '../quick_hex.dart'; +import 'sign_test_vector.dart'; + +void main() { + test("schnorrkel sign ", () { + for (final i in signTestVector) { + final mini = SchnorrkelMiniSecretKey.fromBytes( + BytesUtils.fromHexString(i["seed"]!)); + final secretKey = mini.toSecretKey(); + final pubkey = secretKey.publicKey(); + + final message = BytesUtils.fromHexString(i["message"]!); + final signingScript = MerlinTranscript("SigningContext"); + signingScript.additionalData("".codeUnits, "substrate".codeUnits); + signingScript.additionalData("sign-bytes".codeUnits, message); + final sign = secretKey.sign( + signingScript, + + /// Be sure to use a secure random generator for nonce, + /// i provide nonce here only for validate signature. + /// + /// You can remove this line in production and the + /// method automatically generates a Random nonce by Fortuna `QuickCrypto.generateRandom` + nonceGenerator: (length) { + /// return QuickCrypto.generateRandom(length); + return BytesUtils.fromHexString(i["random_nonce"]!); + }, + ); + expect(sign.toBytes().toHex(), i["signature"]); + final verifyingScript = MerlinTranscript("SigningContext"); + verifyingScript.additionalData("".codeUnits, "substrate".codeUnits); + verifyingScript.additionalData("sign-bytes".codeUnits, message); + expect(pubkey.verify(sign, verifyingScript), true); + } + }); +} diff --git a/test/schnorrkel/sign_test_vector.dart b/test/schnorrkel/sign_test_vector.dart new file mode 100644 index 0000000..3fb0fed --- /dev/null +++ b/test/schnorrkel/sign_test_vector.dart @@ -0,0 +1,38 @@ +final List> signTestVector = [ + { + "seed": "f965e415f4ebbbe56dd70dfbb393187d951fa7435786bf424849d31747aaf592", + "message": + "8b2a80303ae6e497ff14335f53a5da9578556cb6eaf4a34fae8c03cd2727410dbd53e0edbd0463ada309a1ebd2dafdd1cdce300de26af132a40dfbeecd175bb1", + "random_nonce": + "de7763ada5a6487401c987310aca7b8b78c147521b0cac94311c85801aaf3ae8991d28269e2dd725130d987875ef2d49a09afa866507429283b3cfb950c22fdf", + "signature": + "de24737b9a7a968a8c6b574e02344b33ef92b4eff00aa08ab6dffc692b845d0d023833532ac75f97afd7305cff824788cea9cd08380b4f44638ad9e576ee078c", + }, + { + "seed": "0f6a8381121cfec9c5824beefbb1acf92d26c6f80fb361aef781b07706d0b767", + "message": + "fb0333ecf5e26c10ee261286770d4a123e6c7d2fbfc8352e293bbe9e4989aa0e887ad82180992f3cee92b74505bd0a8b819d12c6e908a42e020dacdbafe65c82", + "random_nonce": + "332903ca2f5578821b9939d21b2744612dbe09d4cc7aba15c5eb4cf8b579f94c0ef739263d54fd76abc6f028d4aa8a567027c48eae4529afa710810c3cc13425", + "signature": + "f426e54dc15ae0b4d229e551e8ed6d89bf09b06e77a698b5dfccb70acabcbe2b4211529e2858f7e53297d38a2792f66ba17a42fc08077309399b05c8221b2087", + }, + { + "seed": "0edbd15b78655b2a7bd057f440102301f653d697f43a73fa6eab9d3f6706770c", + "message": + "a3d876f2bfb1b6094d479492abdb7292de70a78fb06d14202703978a08a866f1198dc6832e97481f194baabe085520bb2cd0a30f7fcb853b3f165aab8a71c84d", + "random_nonce": + "a7f92b36a7e145c21f7d8c8487f1745d41fc0025ee26ed75668a8999eb54f5db5ed5cd9efe7967be8c16c5c69220b2fb9855fd137d3b0202cb18685afa2f3028", + "signature": + "7288ad04fac2bdbdc4c5cd92893a6052256e7001c10e37fea8117b27a38c6840e3e4ab5f7d807e88850d57804e2a461745a86ae42fff3cd0d7d5e37b04133386", + }, + { + "seed": "240a57d092e47e589735713ab8b784f690d5e118d651115e6f506b27b0499ad6", + "message": + "31b93a772771eac8fb1311ae247e69633bfcb7c2dd694c7bf1e4a321a0e83e73c0888f243860c93f8c1ca6a1db89c02bb8b44e148e1691ed8c2239ebe499bf2a", + "random_nonce": + "f7fc272b97820d88f11d09b1546391de6ea163a123e84ccf56527519aab464c3708638f8465897c1533eea494baeec4ba003af7c8bda5748363c446b8420024b", + "signature": + "00a7bbdb1c64961c64520d17b2fb286f4c0a03b93cd17e4b5fa3380c0bffe1208e3f8a09eed267881cd34ec30ab3da543a050ed6f683975bd1310fa90ee29a80", + }, +]; diff --git a/test/schnorrkel/vrf_test.dart b/test/schnorrkel/vrf_test.dart new file mode 100644 index 0000000..6a91867 --- /dev/null +++ b/test/schnorrkel/vrf_test.dart @@ -0,0 +1,64 @@ +import 'package:blockchain_utils/crypto/crypto/schnorrkel/keys/keys.dart'; +import 'package:blockchain_utils/crypto/crypto/schnorrkel/merlin/transcript.dart'; +import 'package:blockchain_utils/crypto/quick_crypto.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; +import '../quick_hex.dart'; +import 'vrf_test_vector.dart' as vrf_test; + +void main() { + test("schnorrkel vrf test", () { + for (int i = 0; i < 100; i++) { + final rand = QuickCrypto.generateRandom(32); + final message = QuickCrypto.generateRandom(32); + final signingContext = QuickCrypto.generateRandom(32); + final miniSecretKey = SchnorrkelMiniSecretKey.fromBytes(rand); + final secret = miniSecretKey.toSecretKey(); + final script = MerlinTranscript("SigningContext"); + script.additionalData("".codeUnits, signingContext); + script.additionalData("sign-bytes".codeUnits, message); + final vrfout = secret.vrfSign(script); + + final VRFProof vrproof = vrfout.$2; + final verifyScript = MerlinTranscript("SigningContext"); + verifyScript.additionalData("".codeUnits, signingContext); + verifyScript.additionalData("sign-bytes".codeUnits, message); + expect( + secret.publicKey().vrfVerify(verifyScript, vrfout.$1.output, vrproof), + true); + } + }); + + test("schnorrkel vrf sign", () { + /// test vrf sign + /// https://github.com/noot/schnorrkel/blob/master/src/vrf.rs#L922 + for (final i in vrf_test.testVrfSign) { + final keyPair = + SchnorrkelKeypair.fromBytes(BytesUtils.fromHexString(i["keypair"])); + final script = MerlinTranscript("SigningContext"); + script.additionalData("".codeUnits, "yo!".codeUnits); + script.additionalData("sign-bytes".codeUnits, "meow".codeUnits); + final vrfout = keyPair.secretKey().vrfSign(script).$1; + + expect(vrfout.input.toHex().toUpperCase(), i["input"]); + expect(vrfout.output.toHex().toUpperCase(), i["output"]); + } + }); + + test("schnorrkel vrf verify", () { + /// test vrf verify + /// https://github.com/noot/schnorrkel/blob/master/src/vrf.rs#L922 + for (final i in vrf_test.testVector) { + final keyPair = + SchnorrkelKeypair.fromBytes(BytesUtils.fromHexString(i["keypair"])); + final public = keyPair.secretKey().publicKey(); + final output = BytesUtils.fromHexString(i["out"]); + final proof = VRFProof.fromBytes(BytesUtils.fromHexString(i["proof"])); + final script = MerlinTranscript("SigningContext"); + script.additionalData("".codeUnits, "yo!".codeUnits); + script.additionalData("sign-bytes".codeUnits, "meow".codeUnits); + final verify = public.vrfVerify(script, output, proof); + expect(verify, true); + } + }); +} diff --git a/test/schnorrkel/vrf_test_vector.dart b/test/schnorrkel/vrf_test_vector.dart new file mode 100644 index 0000000..d2c1a26 --- /dev/null +++ b/test/schnorrkel/vrf_test_vector.dart @@ -0,0 +1,45 @@ +/// all output,proof, and key pair generated from https://github.com/noot/schnorrkel/blob/master/src/vrf.rs#L922 +final List> testVector = [ + { + "keypair": + "4FA93036AE78C14F5F4CB9A7165E148E1AB0F822CC764BCBB0154E4EB0D3460EE65AF9160AD94448147534100E2065F7D93864A7B3D0794FFDA55941BE5CA9C668B21FB6F1300B2244F00B28C8B24B9606C96F765A9CF3FDE6F1C5ED0FEEAB35", + "out": "8CA5B18B0BBC47886E35693E9B9C59A49786ED29637F2C788C462ED0AAD15A1A", + "proof": + "F0732C1CBC3B8A5337348A9D37ECE7AE7050DE3C24834FB5FB54B69C8A88C90225684DE073D91434EE06B6DB7A0072534EB5284CD740D0B36FE094B7125C1000" + }, + { + "keypair": + "EC8F6DF338AD7D0E12996DB28E65B669E86979D5CF0C7AF2BCA5AC9ABA00AF07B2C69DA438D1E00B0B9B94F9A2DA2D4E8274B712A3A162DDE09E1F422299C7B4061CC8378E5D40B85E4BFE4736627920187D482E5A9F26CF968C8AFD258E0B09", + "out": "DA9C62FC3573607CA01C4D884208D859C870E75E043368F1F3B3A3FAFC71F209", + "proof": + "5E62CAF42E6CE321485C84291F04B87DFE7772E8A1DA7129F92493A027BE6809957587B3F455B185573286382FA00D186F9413957B5B47A5EFF7E410D4797909" + }, + { + "keypair": + "A1956BCD7852E1761F5C00C5FD2D9F50A7567A89F3F04EA540737C8DCB3DFC0C6E00DA7EBBD964680F7B76D127B29EFC2550B44CEE7E96DAB1BFCC1829CF81E260F889D5F0DA828E5815AC9C64F26CAD4D4D55978AAD8BC52FCE9784E82B2B32", + "out": "7E419AF7D956CA7174CB863D623FDF67855291DFE0533A3C7B0F789400FC464B", + "proof": + "F34B065698F5DF62B1979A80405F9066CE0520AC6DC5F98E673A519547352C06F5E0BC6D4AEB40E760EB76490CE5A4A16E83BA3547988CFF5869DD45601B3006" + } +]; + +final List> testVrfSign = [ + { + "keypair": + "6D12C8636F35DCBAE67071B8CE294EE214619B8A8F9E809BAB542E34124EB70776ADC5CB803AB0FCFB92218CEC55C24B680CA27E5E0B51232D93D0DF541B1D697EBE259744BF68E3F03EC097B16C8DC7ED999BCCDDFDC2F60B89504CFC6A1545", + "input": "9C322A828765E65E45A35CA2B04A2ECCF8D3EB724248A06A9023A74AB288557C", + "output": "5264F5813A29137A7509D04DC34211EC21553A53140767FA3027DA4F0C5A576E" + }, + { + "keypair": + "B4D8BE06B815183E6426B155712D811A05A3DD46F6A9EEC373CFC59813987300C932A243F80E903CF17B3BDD9A430DC176560A4DF25AA4E0DBF024440140024108EE55FA3FEB3D176CC5CED983D6746FCE58B06A85FD1880F863B3FC03CCFF3B", + "input": "2C2824591A031F57A67346FB8416A9ABBFC96E1DEEEEB204E5E7476E8FAB3512", + "output": "82B5E4CFB6F8B8A58B7166F091990DEB92F51AB71D585DA4D7F5849E9C891522" + }, + { + "keypair": + "C3AB1E030AE086B8A0261AA7956D525D6B3B5C614A1F28DAA44B9686BB8D0B0D2B96FA547D5001D9C703668AF24DAB7BA64445A478ECAE7C8DA40D9309FC3376B00CF71A0E8191B153E1C1E4EC8ECE2F9FEBC5CC5D3EF8D0A1A21BBF1F698F3C", + "input": "B2EC072DDF7A012DF61D2A2A9F830312B592153B6E10EBDF61F45D80B852917D", + "output": "2E5A789D2C0924E63C265B65083EE316D477E674BF883EFC351BC65D12F0245D" + }, +]; diff --git a/test/secure_storage_test.dart b/test/secure_storage_test.dart index d44f24c..e2ecd69 100644 --- a/test/secure_storage_test.dart +++ b/test/secure_storage_test.dart @@ -1,46 +1,20 @@ import 'package:blockchain_utils/blockchain_utils.dart'; -import 'dart:math' as math; import 'package:test/test.dart'; -void main() { - // Define a function to generate a random string of a specified length - String generateRandomString(int length) { - // Define a character pool containing allowed characters for the random string - const String characterPool = - 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; - - // Use the secure random generator - final random = math.Random.secure(); - - // Initialize a buffer to store the random string - final buffer = StringBuffer(); - - // Generate the random string by selecting characters from the pool - for (var i = 0; i < length; i++) { - final randomIndex = random.nextInt(characterPool.length); - buffer.write(characterPool[randomIndex]); - } - - // Return the generated random string - return buffer.toString(); - } +import 'quick_hex.dart'; +void main() { test("secret storage", () { - // Create a BIP39 instance with the Japanese language - final BIP39 bip39 = BIP39(language: Bip39Language.japanese); - // Repeat the following test 100 times - for (int i = 0; i < 100; i++) { + for (int i = 0; i < 5; i++) { // Generate a random password of length 32 - final password = generateRandomString(32); - - // Generate a random 24-word mnemonic - final mn = bip39.generateMnemonic(strength: Bip39WordLength.words24); + final password = QuickCrypto.generateRandom(32).toHex(); + final message = QuickCrypto.generateRandom(64).toHex(); // Encode the mnemonic with the password and additional parameters final secureStorage = - SecretWallet.encode(mn, password, p: 1, scryptN: 8192); + SecretWallet.encode(message, password, p: 1, scryptN: 8192); // Decode the encoded secure storage using the password final decodeWallet = SecretWallet.decode( @@ -48,6 +22,7 @@ void main() { // Verify that the credentials in the secure storage match the decoded credentials expect(secureStorage.credentials, decodeWallet.credentials); + expect(decodeWallet.credentials, message); } }); } diff --git a/test/ss58/ss58_test.dart b/test/ss58/ss58_test.dart new file mode 100644 index 0000000..92f0b59 --- /dev/null +++ b/test/ss58/ss58_test.dart @@ -0,0 +1,52 @@ +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:blockchain_utils/ss58/ss58_base.dart'; +import 'package:test/test.dart'; + +final List> _testVector = [ + { + "raw": "facc4de5b7745215ec8255c743f044d2a94ef72b2fb6d8e22c35ffbc3ac8ac9e", + "ss58_format": 0, + "encode": "16fqfQjHSWMoMxydLYoYixYcTGvcE3csECC69Lik312jNWS9", + }, + { + "raw": "0ae7387f2bbf2846df7a1fb07b0676f1e4c35787f96b6a618e254afea5434d04", + "ss58_format": 2, + "encode": "CpcgbdXbwSbUJF38WTzR2r8CpeF29Jeyqm1EZmJmey7sXVE", + }, + { + "raw": "9494d77c224df8b09e05b91ebe7a2f475c12a4cfd103da6b58679b22fc995fda", + "ss58_format": 42, + "encode": "5FRXACEYAEcDiWnScWfuqGkYVrq8wyNysbgMGvjDnKLUKFv5", + }, + { + "raw": "f2b0e94f4d04acb16ecbe3348482b207ba6e60585dd641a8b0f6f28ca99795bc", + "ss58_format": 63, + "encode": "7P5mRixqQk1Z1h4U15Z2zMc6vKoprgWs645jehsbti5irbc7", + }, + { + "raw": "735ec2e330426e8643745d5bf6b287bfec4e50eaca556c9f2781b02db5e7a236", + "ss58_format": 64, + "encode": "cEYBURAnCdz1eMtzsDW3JAz8dEGrahsjYiHXZCBFsxHK7VJX1", + }, + { + "raw": "735ec2e330426e8643745d5bf6b287bfec4e50eaca556c9f2781b02db5e7a236", + "ss58_format": 127, + "encode": "jArK6dHqpF4QE6a9H8B54gNRy6hSBzpYBGjCwp4KrqxoADwNq", + }, +]; +void main() { + test("decode", () { + for (final i in _testVector) { + final dec = SS58Decoder.decode(i["encode"]); + expect(dec.$1, i["ss58_format"]); + expect(BytesUtils.toHexString(dec.$2), i["raw"]); + } + }); + test("encode", () { + for (final i in _testVector) { + final dec = SS58Encoder.encode( + BytesUtils.fromHexString(i["raw"]), i["ss58_format"]); + expect(dec, i["encode"]); + } + }); +} diff --git a/test/substrate/scale_test.dart b/test/substrate/scale_test.dart new file mode 100644 index 0000000..140154e --- /dev/null +++ b/test/substrate/scale_test.dart @@ -0,0 +1,88 @@ +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_base.dart'; +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_bytes.dart'; +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_cuint.dart'; +import 'package:blockchain_utils/bip/substrate/scale/substrate_scale_enc_uint.dart'; +import 'package:test/test.dart'; + +import '../quick_hex.dart'; + +List> _vector = [ + { + "scale_enc": const SubstrateScaleU8Encoder(), + "value": "12", + "enc_value": "0c", + }, + { + "scale_enc": const SubstrateScaleU16Encoder(), + "value": "18426", + "enc_value": "fa47", + }, + { + "scale_enc": const SubstrateScaleU32Encoder(), + "value": "1706095648", + "enc_value": "20f4b065", + }, + { + "scale_enc": const SubstrateScaleU64Encoder(), + "value": "2579765632504954883", + "enc_value": "030038b12c2bcd23", + }, + { + "scale_enc": const SubstrateScaleU128Encoder(), + "value": "1981057649835179426526325300541830", + "enc_value": "8639b01a20016476244b8076ac610000", + }, + { + "scale_enc": const SubstrateScaleU256Encoder(), + "value": + "4512471174635598247890384632897562349411987594382343298700199879854632446", + "enc_value": + "fead49273e86747ef831ed3aba591de566f0989853ffccb38852bddbd08d0200", + }, + { + "scale_enc": const SubstrateScaleCUintEncoder(), + "value": "48", + "enc_value": "c0", + }, + { + "scale_enc": const SubstrateScaleCUintEncoder(), + "value": "13429", + "enc_value": "d5d1", + }, + { + "scale_enc": const SubstrateScaleCUintEncoder(), + "value": "1013741822", + "enc_value": "fae3b1f1", + }, + { + "scale_enc": const SubstrateScaleCUintEncoder(), + "value": "2579765632504954883", + "enc_value": "13030038b12c2bcd23", + }, + { + "scale_enc": const SubstrateScaleCUintEncoder(), + "value": "1981057649835179426526325300541830", + "enc_value": "2b8639b01a20016476244b8076ac61", + }, + { + "scale_enc": const SubstrateScaleCUintEncoder(), + "value": + "4512471174635598247890384632897562349411987594382343298700199879854632446", + "enc_value": + "6ffead49273e86747ef831ed3aba591de566f0989853ffccb38852bddbd08d02", + }, + { + "scale_enc": const SubstrateScaleBytesEncoder(), + "value": "Test string", + "enc_value": "2c5465737420737472696e67", + }, +]; +void main() { + test("substrate scale test", () { + for (final i in _vector) { + final SubstrateScaleEncoderBase encoder = i["scale_enc"]!; + final encode = encoder.encode(i["value"]); + expect(encode.toHex(), i["enc_value"]); + } + }); +} diff --git a/test/substrate/substrate_test.dart b/test/substrate/substrate_test.dart new file mode 100644 index 0000000..3e3826a --- /dev/null +++ b/test/substrate/substrate_test.dart @@ -0,0 +1,76 @@ +import 'package:blockchain_utils/bip/substrate/conf/substrate_coins.dart'; +import 'package:blockchain_utils/bip/substrate/substrate_base.dart'; +import 'package:blockchain_utils/bip/substrate/substrate_path.dart'; +import 'package:blockchain_utils/compare/compare.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +import '../quick_hex.dart'; +import 'test_vector.dart'; + +void main() { + test("substrate test from private key", () { + /// test from private key and derive + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["private_key"]); + final coin = SubstrateCoins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).toLowerCase().replaceAll("_", "")); + Substrate w = Substrate.fromPrivateKey(seed, coin); + expect(w.publicKey.compressed.toHex(), i["public_key"]); + expect(w.priveKey.raw.toHex(), i["private_key"]); + expect(w.publicKey.toAddress, i["address"]); + final child = List.from(i["child"]); + for (int c = 0; c < child.length; c++) { + final childInfo = child[c]; + final path = SubstratePathElem(childInfo["path"]); + w = w.childKey(path); + expect(w.publicKey.compressed.toHex(), childInfo["public_key"]); + expect(w.publicKey.toAddress, childInfo["address"]); + if (path.isHard) { + expect(w.priveKey.raw.toHex(), childInfo["private_key"]); + } else { + /// for soft derive only first 32 bytes of secret key is equal + /// and last 32 bytes of secret key (NONCE) generated by random + final secret = w.priveKey.privKey.secretKey; + final testPrive = + BytesUtils.fromHexString(childInfo["private_key"]).sublist(0, 32); + expect(bytesEqual(testPrive, secret.key()), true); + } + } + } + }); + + /// test from seed and derive + + test("test from seed and derive", () { + for (final i in testVector) { + final seed = BytesUtils.fromHexString(i["seed"]); + final coin = SubstrateCoins.values.firstWhere((element) => + element.name.toLowerCase() == + (i["coin"] as String).toLowerCase().replaceAll("_", "")); + Substrate w = Substrate.fromSeed(seed, coin); + expect(w.publicKey.compressed.toHex(), i["public_key"]); + expect(w.priveKey.raw.toHex(), i["private_key"]); + expect(w.publicKey.toAddress, i["address"]); + final child = List.from(i["child"]); + for (int c = 0; c < child.length; c++) { + final childInfo = child[c]; + final path = SubstratePathElem(childInfo["path"]); + w = w.childKey(path); + expect(w.publicKey.compressed.toHex(), childInfo["public_key"]); + expect(w.publicKey.toAddress, childInfo["address"]); + if (path.isHard) { + expect(w.priveKey.raw.toHex(), childInfo["private_key"]); + } else { + /// for soft derive only first 32 bytes of secret key is equal + /// and last 32 bytes of secret key (NONCE) generated by random + final secret = w.priveKey.privKey.secretKey; + final testPrive = + BytesUtils.fromHexString(childInfo["private_key"]).sublist(0, 32); + expect(bytesEqual(testPrive, secret.key()), true); + } + } + } + }); +} diff --git a/test/substrate/test_vector.dart b/test/substrate/test_vector.dart new file mode 100644 index 0000000..0099fc7 --- /dev/null +++ b/test/substrate/test_vector.dart @@ -0,0 +1,6802 @@ +final List> testVector = [ + { + "seed": "0c8ecfba39e5343fda983c2c5b8b0dcc7293fad84f05c5e4089088849ddf2fcf", + "private_key": + "cd1adabb4033fcdaacd0d138e2fa253b87d202a4d06ac004fc0e1e4a415bc80a7634ad0b0c1050ae375baa46f18691ac1a8101f9d28bf7f109d5a162c642634d", + "public_key": + "4214a9208f35732f27e41e7f2f6658082d06b14553a38a646c3c51bddc425e39", + "path": "", + "address": "12VeJH6DpBgRFaJ5K8itdRAMjTMwvSswPcvdeZkw7gKp2HK2", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "d8974c4257a367d3bbdd985e12e299bf6ae5682f63581061c3379e7ad4df6b0a2ce4fa66677438d60269aead1a40e33cf6dcdb5d42b1cc12d6fda6a75070dd08", + "public_key": + "5024341ef68b1e73849a43d4e23b553ec747ae18b0d81bbb2074ff6c8030a360", + "path": "//0", + "address": "12p5axbNBe7yqhQ2z877ijTDboGcjGxPQ7j7HinroturWhPM" + }, + { + "private_key": + "1f371d6bc37298f9c58b699ea274296f1b244babf6bbbbc61cb877a565e7ea008b828e626e3c7cb421e751734bc39bea092d4f5223192fd2d71d4c9cf12407d5", + "public_key": + "9c73a7a7ae5f404ff90aeb6f22b8ea2df46d5b5f83d0b64d6960c59d87906a20", + "path": "/1", + "address": "14Y8px1MvVkCoygUSUjeF6RUUDi7B84CNH8k8M1hqt8fVvy7" + }, + { + "private_key": + "1a38e37c4c9c4b906e9881095cd40e603ef8d0c90f5e8a250bf9f8111cd7e50f5488a366ceb3eac81e491151ebc9ca2e5a5c21c6eb29e3897eebe8fc1b4d7833", + "public_key": + "246ce0f1597be83976a202259840962f47c563f23b760082da4770dd6ac30273", + "path": "//hard", + "address": "1pm4vKW1HpeJXksu69mULrSKJkgJPyGJANoUE3xrYX3jm5s" + }, + { + "private_key": + "6200001c954d0a000906661c76da6e5388049090ee14d1b680b65eb9b958130b91a86e76a7ac1402ad349e45f1b94de2c9fa177298db61322e752f087e5f9d19", + "public_key": + "d63f18d817a2819fd045c1884d4b05318a2030c06f77b618a0b0ee0751e5356d", + "path": "//1", + "address": "15quzUwft5KmuJMbmZSR4SAc1MY3CoCgaaN3n1pzLUvWWgEt" + }, + { + "private_key": + "3e99ae1dfb3dd532ce24d206e3876ff3ba3bd55aa78f2a8ae3fd0a620bc9850438b549e2eb9aec64b57294bff45c92e454e68954d43b61aab8d6ecc0cd1f0940", + "public_key": + "ae8a844d35d714a16e606648d5a185a72a282806620e1d4033520e544d349856", + "path": "/0", + "address": "14wrUqoTBwgXWJHQCR3wgn7nZGE9LeAyFgSaH9JmzPZEnjZ9" + }, + { + "private_key": + "1eeb38167f0d8f03d022be2191a02da10d40dd4fb7f04d77bc7e7f687109f0091224aaac11d759e55cdc9e4a0b89f70e0fefed464deb1c4df34e73ea149b882f", + "public_key": + "1e7646dd919433ba39d9aa85c16b0afac1d9f9d143c1b897dbecb5ba15da305e", + "path": "//12", + "address": "1gwaBXeLR9yqQpRL4XXAg7zaziW5LW4DVNTuNJkkJa9hRyd" + }, + { + "private_key": + "d48f65bccda44d90f99971355d3faf34e0e22637532bef3eaf1653b83b6a38032f831717c1b5f76ae6b486ba01cfeda30189a52e607257a254770505a1859540", + "public_key": + "7e8cc143f41f743be1c6220dc39270a348d55a746ca78edae918a98462266307", + "path": "/soft", + "address": "13rvr6NcXgr5CTy53j3wFNtDYaZaUnVJv1X72ozZ7HVGzJYd" + } + ] + }, + { + "seed": "ef06c01ff5a9b7a9273b174258e9af76df0841b8446bcea2040f4343cd2348ec", + "private_key": + "02bd560bea7a76101ce9b7407b74344ccd84c18999880689fed876f1f97e650e2786fe4f46be2cfa7c4a03d055366e86c6d6b7ab211a27d806cf0fd4e6713390", + "public_key": + "1eafad3e11b7817b83c99050ac7e3d48c83db24e0114946a028aca2353dda407", + "path": "", + "address": "5QLFzp3SXBVgntePTr3Lr4nMb9NNhkhiTYRMhtg3FTCXgoMC", + "coin": "CHAINX", + "child": [ + { + "private_key": + "1f16b7a8c3f7d3c80cf18a0c8312515f946db24ed801b28af0ab27409ea6280fcb00876d6bef3b94403cac8caef1e1b14b322c367db0cdc04d34370a5a0617b5", + "public_key": + "4277c1ce8828729e45700dfce3260c66142e7cc09639840b127d28fb3fad1764", + "path": "//0", + "address": "5R9B7KcJP9fjAGSRnzQg1A3WSZEL1FLnxCAXVcAiRzFRAvwQ" + }, + { + "private_key": + "640620593896c86bda230c37a830aaf7c8eb50d4d86f86bc95a932fd3e18c006cad8279669665ef41ec7e88c1f8adb00cf4f3bb2385cc0965540049dd536b00c", + "public_key": + "e293cb21c407ef02ffb2db1559154a18b1a6750e71980443716234c83459114e", + "path": "/1", + "address": "5Um76kLqVCx9wYECRpTGocTSR5o6SRjo6RKRB6o1afPB1xLj" + }, + { + "private_key": + "eee4f95e6d2f9f13fb6f33dddecafbd65da8153036e95e9bfc598554efb70f0b6c27ef86922fa1a3899a53b28328e332fad974bed3b5409ddde2898478c29cc0", + "public_key": + "5058c8d0ce0d489b7deb7d6c3c7e85bc000006b6930049df342a54bedcfa9618", + "path": "//hard", + "address": "5RTNaZL14s1vKh8EvrS4HxHTctLaGVnxpQyGpoadATEhWcKg" + }, + { + "private_key": + "e64ce5f4a3c641e5b9d4da047d1b271aedd4d95a47b6758cd5b6d84292aebe0922d989952cc02a6354bd155063a61b15c24e921d462bb5cb213401db60261956", + "public_key": + "922e93e987ee685f8cd51af9fedd6a96f2997a428626ded8e3e07687082c7274", + "path": "//1", + "address": "5SwhCf4omyzuLG8hYLhtUnsEybF2FUqyRcbevA5qi6xJbZLM" + }, + { + "private_key": + "b218ef1269e1dd058a96d8148fe6ac3c5ac1faa012660e0c196cd33c39f3d90566db9b8d33d63e5ddf267c6e2ccf14ab05a51882efe59844a8bec4ed9dfb5667", + "public_key": + "5223714aea88845a0d460285bbab825b2cd7ff994d4563f43370357638d6f959", + "path": "/0", + "address": "5RViq44EmGL3JjNtB9kd2rKeR1vSAUEW7qYeCyisakhaYJMh" + }, + { + "private_key": + "58e166a2cbd199ca4c223739751a1e87ccb717281cc13de811c95e4fa5d2ed0974f7bf6e640691fe8169ea1a2d23f857075436d179d8c92f870387d08f6785cb", + "public_key": + "4446c1694e634a516a53215ace7aa4cdac62e552186eae570de3dd9c4c97272e", + "path": "//12", + "address": "5RBYebiNmzEhqDtc79kro313dMxjj24FTe8DsNLz8rchQvv8" + }, + { + "private_key": + "384a581f55f22919ce913bfe8674cd12332ecb5cb00846ba631314ad51dd80079ef5aee94352862f3db2475e1266d535c87129dbe581ebc1093d5c6e2af85d40", + "public_key": + "a8d649a85d231408d14f123d808041fa9d897b923b80321b044e473cc8f92674", + "path": "/soft", + "address": "5TTQ5LGe39tuwTguUur64A3j1NxJ2h6fuWvMdx3mmZ4pTy7H" + } + ] + }, + { + "seed": "b5b615a751e3a5b17311b85802dce20aa65e5c0cae46594b2aa04996f65bb34f", + "private_key": + "83614804677023157402100293335142cb2aa00885f497141c930dfd3970ff08c6dfef64a2d69c624db84beb706542b78ca37c4f2aefe2b18dcc53b23810c98e", + "public_key": + "48fbf9595482299f0a8f865cb1bc1b046b32c060acb4bdf4d8f8c880b8ca5965", + "path": "", + "address": "12ehJNuwgNAD1JJNCrkgEYmkygXZU8n33dQEBTEpESK3DRTo", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "586d97b535588a03c0b5ab9044eb6f772b6fbc1c977c15c82fa3b09e30ad2309f743acd074c47b2e7e6eb7765fc4d9480581c40e4eb99ecdb83c60a9a4f34701", + "public_key": + "8c3b5f6ab14cc67cbcdbafd6cc181be2f4dfcfd75390c2a38c0a5ff71b2a652c", + "path": "//0", + "address": "14AsLnwE4DK88rKNYhrQEN8pJBhkxvqrH48zmV6q2bT3cy3u" + }, + { + "private_key": + "884996d8080c35deafa8241f4c9e6eea54a5d25149db9b88943d94d1f80b640ffa332dfb1602eb05a376c9821d2ea7de1ff66db19d9e5389220442fc0549c6cd", + "public_key": + "425b4dd669527d2f94e96532eea4470f31cd6ee105770ec50b058c5d3fa9c91a", + "path": "/1", + "address": "12W1HSDrmZJLY6RViVwToqDnTjU2NckVJiS7j2RD9RpyHerx" + }, + { + "private_key": + "e1ca326863f09a89875808eab75eea9aae6fe1be511aef9b87af9e7916f995094a5ff3aeefe2fc21d965d5b09efa89eda2c363a194934180d5e1d2de09c09604", + "public_key": + "1c3c50822322e543f794813067e9313e7299dc72affb8e397238d2ef59f18d25", + "path": "//hard", + "address": "1e2Fxdbrbk91BumiBGHhbRursoSitMnzVSiX49dpPwgFJFG" + }, + { + "private_key": + "a8002b76386904cc1f869ad7503e73187a158decf6d3358f00b117f052f8060ae0638f5e44e3a8e7577c51520433ba61198b1e3f7f4af122e01a8e9bae585a12", + "public_key": + "e4dffa14e72c21b2d9affe72d2d5e5afde6c3d5ca38cf19ed84984d876c92109", + "path": "//1", + "address": "16B6TG2p27GdfJNee5swfekb77wsmBs6SBA1U7ZA8cenYYmH" + }, + { + "private_key": + "dbc11e92b5ad9a4bee1a863a15a3a266bf3113bfed321b91cf9d25ab8dd2f00ee914164a9db29119b711442f9820d3e9a96bf6f0c580d1c416f08b14454572c6", + "public_key": + "4e6a5511eee4285db7e48145cfb151fe0be48188e9979231ae053bdf662a1059", + "path": "/0", + "address": "12mpKhDUkbGAmKynjPNon27p4ztk8FN5VAgz4dhxRf2eX3ra" + }, + { + "private_key": + "b651891867b11d451e608d5e7bac6a8a35f114adad4cf2e119b49d2620a03e0ae770f8a4ac5b5e954aae42067cfdfd18548e9aa39c4062ff7f6f811ddcdfed87", + "public_key": + "2efaae7bee0f636c29656cbc90e5df8668963b55540288790fd9ebfbdc4e8e07", + "path": "//12", + "address": "124bfuAhkGC81AuM8LbDaSEwtvZoTsvDf2FDBpaSQYV4wepy" + }, + { + "private_key": + "6ee0f2ff774795ff7914bbab3afd0c498864141b0ffd2ca6e8c1cf0612d594087fad90d5f00836509bde5e3d5f8ef54320c5f839c452cd3ca112a50b1f9e087b", + "public_key": + "b65d4ef26f62833080383f97ce03cad3beb7ac2c9fe5abb78dc8dd32003b3c30", + "path": "/soft", + "address": "1587S8wvmrNGQD1jLbYKDMGiBmMiHYHSXJRxnS7TwGCtRUQP" + } + ] + }, + { + "seed": "4f6c0aedae6be0117379b0e0d976e4ed1f75b1dee21fa55b118b6d9fd706e2a7", + "private_key": + "7e4c144409ac3e94dcfadffa6e50c4610387e0d2ef8b486efcfce0e59adcd90ff89ccb013057120aae185d509a8c9d07331241d56faf9761827242733a0a7c76", + "public_key": + "8ef8a60f629e1a77f309ff166b4ba7f6e202edabc835d25fdbafecd34098144d", + "path": "", + "address": "FonBUp31tXhAm3tV5KKv8YVoYoRwC6J2RWKuLDCAAwcReBj", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "e05cd18f0d688d8cc5fafee6a0e7a0a23012daa79fbbaaac0aff521aacfb290974cbd61f3f168e7dd97972a50f5763db59da00aa3788da1483f43cfd5fe9adab", + "public_key": + "34d04132f6c0523d820e718007e1e4ca563474e740b1ebdc9c5133878d1ae51e", + "path": "//0", + "address": "DmZsYrFnFB5qM6QjqTpeTWtWS3xnD1PnYq7GxGV8xyjjQa3" + }, + { + "private_key": + "6e5bf49635de5a6e6a85c2a7305504e90c29bc8a2cd1ed3beb7e437d668f1303c8f6bc6078839d7cdb054df55d0654e2706fc0c2e5835ee5f6182ca020eb80b0", + "public_key": + "76c7677d980dcf6ae2ca043d6b72eb546ca41d4a807a07ec01953307a4546942", + "path": "/1", + "address": "FG4QN2XYn3Wf68gK5ENmG4XmhNFbDfgZxsEqiAUWR6ngTpX" + }, + { + "private_key": + "eb05da0427fc333ee2e0fb97d8f5004a73705a24cbc623ee51e28cc8be3b9d0d3b50bd057520f4f73b00f518576df7dc8fee21fb72f42ff32b333128b318e92c", + "public_key": + "ac4143668a0242cbccc2e609cc2c85d9ff702a26678a0ea8da62c57250cac212", + "path": "//hard", + "address": "GUB99FLpWrrKtoewUrNJnA5mpJ18mbzCB7cHNJZTVcuzPUq" + }, + { + "private_key": + "a59779b4bbcf3879e41df1b7d13ebd21f8af1bcf50b1d896f4ea567edc58200d3ea36c3ac4c492bfd5cedc8eff0ad2af7eff5c323b17873cfbced82670b5c784", + "public_key": + "e4848f321aab5880690fb8de860db557711bf81b23c961823b61638c22f0f922", + "path": "//1", + "address": "HjwpA46LQwknpXbYq9cpdkbuAVRBD8LBToMN89QgSaKjurS" + }, + { + "private_key": + "423bfd7cdca19c92a528deb14915f530eb854c054d06a9d7a5a997d2d17b9506b48b2313789fd08ce511eca065f0a1199d6e1ab519a08a88702161c317e299b0", + "public_key": + "66f14f799b0ab0efb73e661ecf63fa05597477c868287ee69017395b62cf383c", + "path": "/0", + "address": "EuJ5xEhDAw1KXFUXHCdaCUPkd1vXa4BvuLasKEToEanFJ7N" + }, + { + "private_key": + "0a335102e161d676765bc97bfeb56084d3f0f08263a1d03fa1862ea865c0bf0ad41ee07f7418933d15e75f607668896b036da72066a144b69e77d3da8d9907b4", + "public_key": + "baff877486f3dbbaf54bfd67e0cf4131ab36cd43712ece5752ee349fa887a963", + "path": "//12", + "address": "GoWLEGBZdhZtp8fRR4PanqzRAUwHH3qjXAsURUvjgmJDeAv" + }, + { + "private_key": + "8e4010a0e09b874b9a74fa93ba0d450c1fa393409221e14d724d50f5c28c9e01be24d11b39d7d4612786267bdc0f83eb37ea2d55592cf2cb09f258667a31c728", + "public_key": + "3ed2e562b1998343eb5a499f69cef9d03cad049ad78a205052e3dace9cbbcd32", + "path": "/soft", + "address": "Dzh8qEsoS8KReXp47EUszyvThU6P4ndLTRYkUjSfZfvyseb" + } + ] + }, + { + "seed": "ab00c4bb8be6c2086ed7f98b1456485713938cdc7a6bd7b504e7e8e68bb8eaf5", + "private_key": + "d014915bef502f322b894fb7a54ae78ffe781b8b530c6dfbe04ffdfcb46cd50dc2953851045b5e902368f42dcf85a34ef9d238fbfbf15ec94acac86b2279fd01", + "public_key": + "8afadc4574f7bfa7a17e038b3bb5e230c4d2478dc859d6a27032fe7b06df3308", + "path": "", + "address": "241piR4KMXjgX4adXYJnwRKHwMxeMc3V53xhGNkyZwNqgLD8", + "coin": "ACALA", + "child": [ + { + "private_key": + "b612441ef1825fe0aed440fa6d0a29fc66837dd7f0848e14364a738426704a0ee55177913af82813e481da1c4d6e5276fbea3fc6de5613c0965314c81dfcbe8e", + "public_key": + "d4dbfed9b9b8f0446f832460d4e339916a7c4f456afa429817745228defab70f", + "path": "//0", + "address": "25gh69SyUwLShwCjB1AfHJuWEJL9kccBvn2BQHyr9cpqNFSP" + }, + { + "private_key": + "32a229d459d13fb37d3a2ace94f764cb23bae288ccb893b43bc14ea2b4efd107632d6dba667253fd31c788760d76657da4e64ae1da3c7c16dd3a7191688a9fce", + "public_key": + "5c5577ff301e005298d3e654c8b6518d39e4023eb4a4a153d040d0dfa2e69d6e", + "path": "/1", + "address": "22xfP2VkCos3qfRTJFVsFAZqyL52f69Fgh6b3Eot9JYruhky" + }, + { + "private_key": + "95d7083e3949b5c6d03f063aa2b307d2c7f1a74eafcb0e76c1bfa001a36ccc0baa9c941a139bfd92532694ee091296327edb49dbc991e77d6624cbd6f0ee1ed8", + "public_key": + "84f61b5cb330481e43ed158266cf5ae8c9eb288f9f56171849e344cd2bb28e26", + "path": "//hard", + "address": "23sw1rFRTTGAw3EBovKZ6Nw4Vvn4WM3HkAQe8PUViEXkFDhT" + }, + { + "private_key": + "19970763b0c7b2be7dfb8b7dbcc6952c8a305db31b441dac9aec839f1c3fe00a41d723e5cf40a2639b8df39a8e1bd8d2c41b4df1ef6137d598b76d26f7c29355", + "public_key": + "069bebb359d7dcf08db26cb3b651599d1ce50851d2948e8324925bfffbaab415", + "path": "//1", + "address": "212GC36C19BH7zSS5GvPqpG4KtxnXmw8b6yhzayVccLfqBU6" + }, + { + "private_key": + "a1c009ff03a7cf5e18d9409149e8c8eb169f318fa7aeeb341624dcdce3c7640e4ac1775458a1fca9a5f2d85dde400036a56f8ee6a4af2ca3ec556c704c0079d6", + "public_key": + "360eb8159d108db4c28adaa1a5bd7778bed3c2674ae3f6f732142e62ba3c1511", + "path": "/0", + "address": "226UYVyu62fdXwc7fQ9x4aby8ysF9ScNyBbRQaCj9uQ9a6Um" + }, + { + "private_key": + "5e1868138f2ba9efc4a910b632c55d49134689617adb7cd06df7dda4f3d71b0d48c8a2bb2f75d5f1a77c7e1bb2ba2ddec85614a43328464372dd8fe7c6b9b677", + "public_key": + "2ee648ac0f10bd580cfdbb4467c73bbf705643ccc0d2347e0345ed0433065626", + "path": "//12", + "address": "21w6CNpJX7GmafLKvmzWADJ7D2DuKwuB5XP1fgihdF4K1Kyf" + }, + { + "private_key": + "22ce8df870b31700af97dd24797ff8267dc0dfe07ab4015159d1cbb3d005de059d552c0946a7b35a194a12508492fd0b7aabb1bff891063b83eb92d239e177a3", + "public_key": + "ee55d3b056a3e778df2b6b4d4a883132022a7d90367bec01a0bf0e1ef6717673", + "path": "/soft", + "address": "26G6Ugi4yALUMsPhLyyvS3zgYtXfC7PjhjPeKpvos45uabnT" + } + ] + }, + { + "seed": "e801ec9fe6ec5340982cd0582ffedd7753b0feb0ab9c4e3974519d92e5ce5b5d", + "private_key": + "df5e3ea7960e1600bc9889aab4d32a9682ab31dd32d836d6372fb16f0754810b0b7278b8aef6c1271cd1509c70919877c3a7a97574c0dc735d6aec414829e5cb", + "public_key": + "dec44d71e774d2edf729e71247d86fdc9eb3f961ab5bf38abe88c2e79f976f65", + "path": "", + "address": "HcQTmA3gGr6FFXnCrLzWHS26TeHPiHCGZ6ayw3xQgigh832", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "0f441acfc59d3494718e44a8cd2c8985db4501ea4fbeb4146e9acc85ecce6c090ea24cad3b56a85703044afb0ef62613f76651cb738bc593df3dc33ef38ffb07", + "public_key": + "aa2833f964e785372b21486639f82a98bbd226c634d88e55b2237e5fc610c637", + "path": "//0", + "address": "GRRbowfwAJALTgnvEd3EMNiJiuiLXpYaFxRFP2vU5fvHM9j" + }, + { + "private_key": + "3a2e23587a1206e3bd9a139d77d38c7479e493f05024450bf703b10a43e65d02b3bc0c2f3e776b906fb7500ab28fdad551dc0caedc15028de3f79930d83f9911", + "public_key": + "e8a422da79d47542cedaab972b8fd69184f57e4bbeb5ab19f65d5bd46f8b7f01", + "path": "/1", + "address": "HqMPKbwjeB1pNGSyeD9ughNzm6QxdHXZifJpzoPU4wi6ZVG" + }, + { + "private_key": + "46039c2cd245f783a4a02fa52e6ebfa7b207f233ace76559545ad6fb565938099dfc0e4315a88cafbcf6e8116b837a47b5d65d0f74fc57feacd116df6c0b3cac", + "public_key": + "2422ca41310baaf0e82533c544392844f2c7ae7e56f6a52ce21ccc20e48eca18", + "path": "//hard", + "address": "DPhaPQ7iEtDCxG9rxdK2zj2matPHAPSWUAmQcweK8sGH3nu" + }, + { + "private_key": + "c278ddb15c33bab0c473f740d915a768637b3b8b4866f614818e6838c1f54a0b3af79089525b784b4ad8bf4dcd4e7d02a792cf7b72e6ce4071f0189942b4045b", + "public_key": + "b6909453189e6bbddca933655bbbd0ad4870a2b0dd65d2b766dd82915a070e09", + "path": "//1", + "address": "GhhBW1FjvZ1oZs1bZuySXr7jQuHA2wYfVRjtMn22eYbJiRm" + }, + { + "private_key": + "15bcad5299cbeaa487447eeaf626c6a186b07ffc7b146a615b2a21a7d3407301d6b8f6bb89b180b84be40f200dc3ca17707dce50b513e066f9c0adee8ae6c470", + "public_key": + "c4098dcc91e70d3c9ceb4b76707faa88a3dcd26ea373c1782db295f08ebafc14", + "path": "/0", + "address": "H1Mjwx8DQ7JH7pxeg1yGEXf6mHg8SAQ1yaHFo8WrM1NRmMN" + }, + { + "private_key": + "42bfff061c48dc871b9819a553cd58c60e779f64aa77bda7ac85e56bda30be0fb0828633e188e7fc7416aa874b45b154e9da81f9059c2bac50080c068a4f8665", + "public_key": + "b8e5201a8c64e244cf482144f278a216e0d2ca564f3772002f4d980e5d6d4f67", + "path": "//12", + "address": "GkkPkRDRze6aW2CPweJ9a3MHRAtUWspwQ7qwFk6ZVv7BE1h" + }, + { + "private_key": + "fc15ad06dc8b1f03adbc0106a5c296ef71076580fe50118862882d9971e68b00e5b5ba58431fa8e41c159b679384939f888dbfac53713b0079efd9977756148a", + "public_key": + "d4b2103b65ef790785743763761c004f0c412f2d22bd777777e367040acfc531", + "path": "/soft", + "address": "HPCZjfVikBzvfVttE9APL61syKAS5HhMNK99ZLhKhch8BBh" + } + ] + }, + { + "seed": "0796e5abf6436dbd30130675587623764c717a95e7e53acc7ec7e79d530c8a83", + "private_key": + "1754f521918449f8a6d72f1c7531b5f808bd1a07aa5b844416d22b0f737b9f0b6eeacb888eaf04ad77677524ed1c22b54c3616da3884d66c6c79b9d2201a6a30", + "public_key": + "cc2193b78f0727898706a7ab82ea7c60cabdbca818c9ef42cdf195139d3e1312", + "path": "", + "address": "35Mquw5BgjFtBR4cvnMScXqFCjxrPr8HLjLH9RCM2E2jXtN6", + "coin": "STAFI", + "child": [ + { + "private_key": + "2b6c140ca6c91fc445f818e55f85a8d7fe8a4ac4a1fe93b6fcbff7f4a8b0f90e604d2a659c7fc1f7be2facc4bbe61fd75ddd10cee3bcabfc47005b77a38bb787", + "public_key": + "e4ed96c6d31707920ee28c285ebf9947c1ef8426d7c51b4f79d141448273e84a", + "path": "//0", + "address": "35vMfdeeajXS5B8YsDfnU333mc3MmT8dq2imiw1jvJCQgbNx" + }, + { + "private_key": + "f0943143083fb368094f36224dcf27ba069ba5cf8ba0b2271113d729ebb5e700723e04cb181c01a8555142bbd01eb87e649ede9381be6d8198e5a290e7ced3b4", + "public_key": + "0e9f53a74a56c948764fbd8c8085b48adc980270915bd8ee382af6eea558c83b", + "path": "/1", + "address": "315NArv7TaynzzZsUCZEpW3py7MC5xLEjgJvisH6pT65PsWW" + }, + { + "private_key": + "279da68275704e5ff08bb64cc1916040adab2509e9858bc72ded2120f675c70a73f76c364b9bb2af745bf095899db7e6029ed7ebf9a9cf79962b3b365c22bae7", + "public_key": + "14136b997d000b748901d87c98c4a26fe72e002f52688099e8ec2e5bd003fc5d", + "path": "//hard", + "address": "31CWtzZ5uVcivYFomWy9UATcHtne8oyBJVqTippLypb8rNds" + }, + { + "private_key": + "2358546d54b9d94c3d8bc0438a58ba6367489c8855acd606441862ea340f0d08a113d9eacfc5b082511d85446993ba482d8c1903e583dc0babf5b19067a19247", + "public_key": + "d268903680b1214ec14d81bb9484eee1cbf621026c9894ee085ddbf7b16e565f", + "path": "//1", + "address": "35W5HfPRQPRPx5pZhhePfKLKRrZXuoEBj4ogcmavxJ4R9WFR" + }, + { + "private_key": + "d25e969404bea4d44802b83cb7207428fc57b029b19c755f0200779e184ddf0c2a503d3fc95d511c70cfc91707bfc0962b2f97b5fcdd6f746f4b6eabaf64d3d4", + "public_key": + "f4bcaed2b6ea825e582e86f381943f90ecf826208b3fc8a359ca257f3efd2b60", + "path": "/0", + "address": "36H5uSLsmDuNRpma26mB87NTJP9sKou19RUsSX5MY6oT3B56" + }, + { + "private_key": + "818f78be07cbb04af843f4bc1347355dd3d172fb3f06a66f946342cf2316630d539d7b4fa053c73ae7fb17d6bdc2d223cdab9e6e54c252f35987a7911577e570", + "public_key": + "f6d9928cdb4e92b8c9c2e4370500b179c2b368ede08f8f52ae1d635f1fa22c67", + "path": "//12", + "address": "36KrakLBoKnHm21bJUGVPQ5VoD1r4TTjutt3q37176czWtdj" + }, + { + "private_key": + "a2626c2c87105e10e59952af728e3c0c22e1b5646b2f1d30f65163a7d0c34c0fa5c89404e0b4eed0835ac295fdbb5348cea01f4a18dfff03be468661cd339dd4", + "public_key": + "1a39587723f5460898530cfc4e16a7d8f97eee3f5995ae1044882f41687bc461", + "path": "/soft", + "address": "31LaT6QL1ANfd8ZzoXABt57MYJdRKbuugKdXA43zyCqFtugN" + } + ] + }, + { + "seed": "d89b4600f9f0f7dbe29689e5ef686c1520cd1ac7348faf1c3f66ed1fd02a5289", + "private_key": + "d9d665f872ba947024a78979c926092045cd33b9308889086d6d49230cb1e90e813e2cd58e2a98334853b1f2c38fa728afd728fe64d07585fbdc127be08f53b9", + "public_key": + "1671c0ff2b0bb7218b0a5fc7f7c588ff929dbf33d1e18b3fa0ed638c7b8b437a", + "path": "", + "address": "D5kN271T5bd2mT6ZDSJuEY9xqjBXvYkbTJ2A82hdd6E8Pve", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "0bdcaa09d2be3cbe6ad97c98806a277fc130685e6f5c7dc08b943de243cd75082f854b958a51e3bc61f1c06405a3476bb39ce4a59e8d2a8a3294f4b0fb20fd75", + "public_key": + "98a8613db00b258fa6891c3f04f93165d622a27001e21be5afe6eb52525e2075", + "path": "//0", + "address": "G2UpFg1VBzyD3odbheabiZQFfFRjihEn1odedLsCJCgZYRC" + }, + { + "private_key": + "f59995e75f2ce6177762f6f9306114053d26520ef549e156fa699faaf1fb620967fce9336244a3c99ce2bb9378f1dcb1c179c72b979444841c495995659d2930", + "public_key": + "345864c70dabcb92eccc82abcde3494fe8d4d0621fde93cd5f2336a82254c228", + "path": "/1", + "address": "DkxGPj2AonDcPT6DsQZyZMwmSWzfj8dUYoKG2eZ3z6QCqeK" + }, + { + "private_key": + "710d90516f6f1e3bf1b3955f2fb2a8172b0b381e4a1ed66f3b1a628879622a092f60f81f0caca3a1eb6620f3894c21b243c75cd026912b5efc2e633025437522", + "public_key": + "f8840450d157fc1e081ea2824c5600fe4a7e01b4f75e32045e2a41baa979e400", + "path": "//hard", + "address": "JCAcMcCJUi5Yv5R37tj25YWjsNm32GKA3EwAo6RxhtsEqNU" + }, + { + "private_key": + "468c5f00b8a3b56a90b01ae2fb90a8f985b82881c45cc88386989b3f3efd260e66535c17f2509540a8e80d08aa75f1d76bbfc74c107cff37410ed17118228fb1", + "public_key": + "7672f2ef017cf846aba55ed488a875457408d32b698b46553c3a20c88736f946", + "path": "//1", + "address": "FFdKERzjZBgg9sWjyLGDbGWdY6xdgW5UW4mP16iaX4dBwvK" + }, + { + "private_key": + "5b1f41c64ce44839cbf4c9011a5c7e1ed392ec0142dfa4865c2656a64e955c0a37f82dae30b2f22f31a5b0cedca3cc18553fb6e1943e16d1b2a3bf9105d2d95c", + "public_key": + "70df78ffe072ba1e4eef71273e7e00d1d3e601f3be419ea550fd8b3698d1800a", + "path": "/0", + "address": "F8KGPUHxrtRvsi1ANNPwg2qVfeY5YYdMqBJtRYhY7H4eBEf" + }, + { + "private_key": + "66abfb74358a2ecc289cc0471514e0e6900b77fad22b67277d2f60289178b20fef31c58826dac99954f66bd976a00729364f0799f4b2e1346501ae3aec3f7037", + "public_key": + "ea2031473a04f1042d39a79fa7be48100f82991c3cb468376841a813ab444d59", + "path": "//12", + "address": "HsJHYGfprhbLSPVP6FLmKedgGgKszPSoLCrU1d6c6GATWKG" + }, + { + "private_key": + "fbc46bb96f5b3cf73fbe385819a850a1d7b7c35342c67b048f5cf5e1bd87640296127eed61dcd359c3abc32538b682fcf07da311cf05b90b8d0b3360ecaf7581", + "public_key": + "b6fef28057726efdd4c650ac89ecb2e9aa7df508458ea9e0c4bf513e97dd1a70", + "path": "/soft", + "address": "GiFy6UMzeyAZUYr4F26V2n8Scox8wQ1NdcZBeDaYTZV9NgK" + } + ] + }, + { + "seed": "0ddd005d8c8f0314ee76f1850b4bafc479c917def39e4a16b537c0e37c9f4d46", + "private_key": + "2c288d6c4c06fe8f8c1b533d4133e4c0e87db8aee9cc3792e85f6585d7e94908d892890fb41e5988799fbcfbf475c5b6dbdd319f858147af7950a414ad3cf099", + "public_key": + "6e26d7e105905d0d1bf8773eafffcd5fa11f7529348dfda42ee1d6d23407ac74", + "path": "", + "address": "5S8TBQpLqNNB3mHH83rgpB4NUjKa1syLKhtCSQ1v2XhMddFb", + "coin": "CHAINX", + "child": [ + { + "private_key": + "2b281d36002d702c23bdf3790f3418f1c029ef853c2921534888ea7ded98f609919d2d0e268ae716c55e8515b3c5f7fddd9975807fd4704684a6b82ed2e9e462", + "public_key": + "6e24cf065110253a172706dba366e54887546213a894eceb7250a1a219b5cc54", + "path": "//0", + "address": "5S8SaMcv5tT1waYHqbdzyKGepdB27KnjZ8QcMSnv9b4JVrgz" + }, + { + "private_key": + "b935c8e336f3090f9850e77bb4a235638a154924a7877b78e3f62392a0c44b0aa8e4b4eba1ee3ddb1f9f53bfebf82867c26ffec662e0b7b8acd1c121219d2c26", + "public_key": + "6c23098047e9ad60c3ac087ab3f493a3bd3ef935af1b5946c9ed825cdb3eba7a", + "path": "/1", + "address": "5S5oxH5vfjUi2YrGkcjfUmJfhDhCzZ4tNhK8AZcGga5yssyv" + }, + { + "private_key": + "8afbf6b0679356ed6cf8455a51ea34d69e9a4707873121a3b3dbb9cf4e3a8e0acaf10fef3c66a84cb472afaa94470cbb75e995bf1359ad162ea535433de078dc", + "public_key": + "1e38fd6aa4cc7d3d5aa9eec6ad81a89b2dccb384ed9e83310dcc97ada5e87d47", + "path": "//hard", + "address": "5QKejtKNeNF8JDUZ3bCsmbS5JzxwphVb2npeHJfoCUbqRqZW" + }, + { + "private_key": + "de7c026e368cca81b0ca6739a5e943d0cc64a05de7032010ff35023cfedba70c1f34075d3751f5cede777e67c6a08f3851f1bb82c2fedb72ee12b68966f9a6f5", + "public_key": + "12314867d78d4312d5767aef34aa9b84674b01f95de3c84859bc69db97e02e11", + "path": "//1", + "address": "5Q3ssmVwdMYxa5XuRt3taYXLH7m27bQCqBRyW5uANRGKJG5e" + }, + { + "private_key": + "19cf510a8b10e642b68066845379d91151bca2f84fbc97e3952caa441901b3084625874fdc5e69fc0ad7ea06465d49c520a36e1cbd7d76319dac8e05082430cf", + "public_key": + "8a3a598b08c3b473fbdb6cfd8e9fa7c039d1e1da2ddadb8038bb6233bb321819", + "path": "/0", + "address": "5SmGKGLzSJ4nRTMVr5GSeCPPv9TKnRFFahbu8QsmeiFNCuTP" + }, + { + "private_key": + "1856cf57f721ce5c8a4a874f788d284c7e7eb2e572598c38bf3aabf69e98060de1c0e7c9ab46e1700b0b42e289e1f89253d50b127477bfaf28a4c52789d6dc8e", + "public_key": + "9009dd73a10f95e1e38d4b48cd7a4f33b4818cb8a1a459f40aefee084424ff79", + "path": "//12", + "address": "5SttCZFEHFnMifyjVBRwrNnJ3Jkkj7Q8fAFyrC7kkZzug9Uu" + }, + { + "private_key": + "1d7f7a2427d5faed4b8b213dfc36eee2e151dfd06c86ad60f89d1aef87a33304f42ac059c6e1c2ef60f8a4418e5c89bba28463468c4069a45a801433a463386c", + "public_key": + "002ae52405c711f9491613fff34dec1a98f1faa23c1116134f4606281cef111d", + "path": "/soft", + "address": "5PeF7ibXbVA19CjhnTjzsLvcHRSzSJE9iXjQWCJusaUjof2A" + } + ] + }, + { + "seed": "29d7841cc3d184a4c88d0ffdb401b3f4a701f87ad6aa6437209564acc60095ca", + "private_key": + "0fd85bd16963072829efa9408f07fc6b8ceba6a5ddfaa4f9fdb63fe88811ce0f21bc79cf627139f3058fb7d7682d147f48a0ad2747f8e94387a96d93ea73df79", + "public_key": + "44ccf3330654b34880723dcdd87fb15af1f59f662b9534799629609e57d7236a", + "path": "", + "address": "32JQJuWjzZdUBC5BqaibWvyim7z7TMVrhW9TAYFXiCVTKNG8", + "coin": "STAFI", + "child": [ + { + "private_key": + "33095a02479ca7c82344d5139b68d6909855a37ab37c2690883966cd6ea25b09e46e41782b1cc8df1ec2be9e84093ba057deb895f2184c5b2ff94a5e09d7b739", + "public_key": + "54f9fefbef2d9feb044168900ccf0ba16b1563031b557affbadee097323f2c08", + "path": "//0", + "address": "32fcTU7gHKmNCxkGKa1ASzoopXKEENjGd2YcGeMRNVH1vhai" + }, + { + "private_key": + "cbe9da9e82e428f225cb2a3fb50072304ed10e9733ce35eee791b8f89c82080fb40a1b4abaff29c9b0aa40f1a52cbd8c1d1a876a8661a3634726c186180ee8de", + "public_key": + "5a2b2535711d558d794279cabee2c05fabef146588b50163846426e4eaede829", + "path": "/1", + "address": "32nRJBGbPU17PBWEWms2aL88vWVwzLBtZUhavtQsB2BVEYnj" + }, + { + "private_key": + "ec4a826bb6bdbf43945cf5310dfcde8fa5487c19783dc8614e7816958a3f090eddafda60b6421ca3942c16e9d5a3a6cd1005b950d885693f4ec3b16c19d20e85", + "public_key": + "ced64a1498db1b13b2cbaf6ff8dc3031c1481cb6b405435d2d5fcfd3b5672763", + "path": "//hard", + "address": "35RPh689GqyFiyrC1ruQ1NefiLdZf4vKR3PZYsDZj6khXuGa" + }, + { + "private_key": + "be4d31ba1055bd8bf45277cc6fd771ab7a57aa1071465ece73c0b922daf2a4099f684123c7baacd822b1812338919b975713125322189e35bb7a0e449fabf0ce", + "public_key": + "9412dbac6d989509c196e5c72e0906d74f5bd2e5fc86e77dd36fe9da6c265279", + "path": "//1", + "address": "346LroVq2w83VuoBUDzdSqVLBP6qGA8bcm8GSdxXUu8e5SdB" + }, + { + "private_key": + "c896c660b62a57d17a3a8d8a6dc7aa148ae82cbf18f2021f388e396dc9fc390be1a5c2d50cfc9d25c72140983e490583bfd0de0b4a9986540bd025c3d149e564", + "public_key": + "a8f0c7b6e6b03b8be66b58fb07fd8c01bf0d23a95273d9709dc042f905063018", + "path": "/0", + "address": "34Zhjyapsbe2eZ99LizJ29mV3tJVLMXHJNivuVcsjRB9XZrw" + }, + { + "private_key": + "5517f2a7b8a316575d7c827b08332306dfc539c2a6a72468693a685c793f350d4bccfb749b5b449158a1127d6e65e03f33103b491317fb4f35185459c0ef2f5b", + "public_key": + "844fb044a8ca4806247f9a9da2e89e08f064e12f2c22c54ce429471e1b22ae7a", + "path": "//12", + "address": "33jgAT33ZFTeqB3h4J9dKuWEgzMMrT2ZF51EyJ6AkDb5RvBL" + }, + { + "private_key": + "0a23d8912b57d3eed756334dd9e4096a8dda126ff6e87e4dbe7a14ea759ed409f88fd1f64509286d0597e4baff37d9dadbfb200161cb203e3ce11ed00c6e18b3", + "public_key": + "20cc1f01e41f5b472cae67fd324c181e7f09e73bb4ed9c5d0b9a27c94e669107", + "path": "/soft", + "address": "31VCLeBAARZHeXbgvt7gKzyEjMSZFsLRfyFHC2aN7mSDJZfR" + } + ] + }, + { + "seed": "499e789ab3c7e0eb83b0747c029d3f6aeddec4afe8d6dcde65a7e0db0feff779", + "private_key": + "db3f1cdc7b5e53f6871cc10acbd886b3ff4e27c092ede5a6ef2aec67a4fc0c0be2a1f2182e655439412612930f9896bab42176766a7004f8e9742289fd9b52b7", + "public_key": + "14170b56d589e2187f9cec90b35ab03eeb5d78a55c9619341508ff89b32b1a66", + "path": "", + "address": "1TLobER5xRi5ykMfS9J9wrAgTLwwuTsY66LUsc4xYV2fwD1", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "8e29d78726258f51eed2bde13c50d9e56dd44fa5192c7cc20dfd77d42ff88d0937e41007f915074934d5073ccba9ff86111f87d4487ac0fe6c54576b2cc1ea0f", + "public_key": + "1663d6997e7b82a1a9d5542d9c21895d23d6d2bb730c0304f8f4241f063dcb17", + "path": "//0", + "address": "1WMiGv4Xsve9gNH36p4dePzyECSq7pzLQd8tSMwZzW5xvv9" + }, + { + "private_key": + "d8a563623802cfb8dca1fe1ccd57215b167c764fa4c240d5e2b4d8e6d09c5d001e04091d261a5fbc3cc4a22aa82f5df6e9f9711f642d9c0caae1ff320b62c245", + "public_key": + "aed3841620019a826cc08c22ea5064907054c4278318051da3355be528f60c1a", + "path": "/1", + "address": "14xEAb5noA1bXTrbTKJ3t9LYAZbw9CaPafU4bNuafUcDLbC9" + }, + { + "private_key": + "097b3299907c7aa613f2513d5ae2811b03db363189d1c590c6df47ab1004700b17c7b3e95ec8befd57ad444481b575e427da361db7d0ac945815cde8a01a253e", + "public_key": + "bedc1a9f8a468138fdb918e690fb8f85dc21af140ea2cf4ab4b972dc72d2ad7a", + "path": "//hard", + "address": "15KFUzbXbnteWP1T68QevmQG9rJmvAx8uCzjwXvsygsL8aGb" + }, + { + "private_key": + "8a601feb845142161351d4ebeceb55f405f818dc3ff6c34dc252cc28c6ff820c2141ebbd9b85c80c0ef2b0cfd4b6b5f3cb312f82d648938e4984174ad928f289", + "public_key": + "bc6eb7b6197420c0c1ce2fe01e549f1a7e57adcafa99433b6360612ad0588555", + "path": "//1", + "address": "15G4tknxYv8XFK22vb8dLS7x5Q8wmvu5DFgEpbf6QNEpWNoA" + }, + { + "private_key": + "bdc4614deac9b4dab563b660e30b66a2f03c8ca7dfafe65f36ed9b12f075620fe0f9e7a7511c57d698322972eac3e0b57c98af26244de4e0b07fb99bc4616d3e", + "public_key": + "365a91636b1b1c7fb2081579f4036c50dd8c237ec024328edbe287b30818167b", + "path": "/0", + "address": "12EGVRawny5UUqTNi5XBmwqJm8CkWFzEg9S9FUUW3is2dksJ" + }, + { + "private_key": + "6e6afcddb48f546f1a80cd532084f6e2a53c834675c8c90f4c0e0b5505d55f0d6e39de879ca1e879eb14a3b64b208c2296d42c5cf94cd416065c65825931561c", + "public_key": + "2e975fc8ad60e4ff601348fb8d8d17627635c41b656a590f3840a27929132557", + "path": "//12", + "address": "1246AsbgL1ieR227Hrg74sPwYkbRzAvnYVBZMFQgYs7pXSKa" + }, + { + "private_key": + "c50e6c1fd7f222e1f8f25f113c5f07a7136e495337e5853cae0e8a770c14ec04c2dd53687566b33e181dec433a48b7f26c51b286e13b790a1321225e798e966d", + "public_key": + "fc06170062cb4f3be9b30286c8019c6570f5b0c416694bbbd80cd38c239a7501", + "path": "/soft", + "address": "16hSsotpkp1GmwELTZnsZn5Sk812m8PMoHD3z34fnbTeC7Y7" + } + ] + }, + { + "seed": "bd2364eafef8f2bfac89d19d5e500d10260d7189b43a768e6481a305e7c068f3", + "private_key": + "6ed83be12ad4a6ec5a8ada25808bce36acf9fe271193db13429733109d6ae00de3fc859430f9dbf4188ef21a9b8a7a3090b575cbfb133b4d47f4c2725e980681", + "public_key": + "80437a34b63b3b0db16a613245e3803dbbee770f67a2b07439202dbf11f88e67", + "path": "", + "address": "33eNLwrxPGwCip568bhb9XVMdtMNmHjfvM5ufa7CQu5e5cRx", + "coin": "STAFI", + "child": [ + { + "private_key": + "a0bc6c10166c78b4e0852bbbd17402069a146c5f261c96d59ec9ee9721a1920f8a1d4242ee7cf131a1bc12a5b14f04073b71458b819b379df7f0fa56e3039e27", + "public_key": + "ba1d572f614acc586142910af8c3d051a80f6a6167723b9f3cc84ad42dfac850", + "path": "//0", + "address": "34xDnwzxLafY5VzbKH1oA2xuFykuGXZzqYHk5zs3sfs4cZ8F" + }, + { + "private_key": + "a1434a2a4e4666a0b08c36134fd6e9a71f774ff904952110c8120eed3e3dd2004b62edcbcd1b2c0a4d65f589399dd9f1ba91bd4e37a8e46a5d47528ae1c4f8e0", + "public_key": + "520fcb8214128fb6458635d41d8a706f063a96cf70beea3724297af92ec3e969", + "path": "/1", + "address": "32bnnitdNTdoVzJt4ppr1X4NwVDwbiYwwsmq5ir68YygENHV" + }, + { + "private_key": + "e7080e3ad687fbd8ac593f57e4ef00243e266d73ebbc2c54477a8a7f6c01610a75faf61011fb53bbb54abe15219293e927a1d338ef36fb3e8c7ba9f705987527", + "public_key": + "ae635c4b4b5056f758fd65dd80820baddeec88a46883440e5ffdb3ff88632c68", + "path": "//hard", + "address": "34gr2374NUBPscGCv1WbwAw9as4VLvnKmi5XFrrufp5Zc2om" + }, + { + "private_key": + "b82fbbe8d1d0a2748016178bdff0cb754a4bac3ee1f355c239856ffa028e2d0d17b8387fa58de39e486194a54ca816d2c47c1bd195b8d9613d90e81e512df76a", + "public_key": + "46a01dbacd368ffd87259ead73c8e31c0af610046f16efbf5e11804b14b31979", + "path": "//1", + "address": "32Lo5zT2goNnfcF5j9XwqAqEXqWSH5Hm2jC6AkCEVZhWV8Kf" + }, + { + "private_key": + "6541e3b3602c2d0597a7b4221d76e79d5fe4e76eb3751def6764dd76e90f880e40bbea63c1190cc09397c21184fcba016a9b37bd3a6e01996c7a2c4999f0a3d0", + "public_key": + "241cfb55d23209931266d0d40530c935051b4c94fd8f1b0d4d7391ab30b3e232", + "path": "/0", + "address": "31ZYWAqNXcNGqGaanXWkgCdR6KMcgNos6pbrGt6PmNmLyHfA" + }, + { + "private_key": + "c5cd90e4eea8a0f54237f31742bf61f27f17b5d597ea739681271a44f14d290d451fdc88c4224c8ca44211c0b45f0748e0836580cf9b201250de24e9c086a861", + "public_key": + "2efcf2189630f8b1ba75ab8e5899d86a3c99c5afc5ed748880c30c7aaf36d418", + "path": "//12", + "address": "31ooWkZNXRyiwim2XKZcnwtbcvuo2oLm7qQVLc1bhh2aL97q" + }, + { + "private_key": + "977d50550deb489f864f784c30e32928d6720f93b06dafcb0bf9eeae5b690b0560ae6b237bace8f09c2b3322edd09730899d8060fe9cdf76a6077dcab90c4583", + "public_key": + "1c12c8769562441b0ebd9e9b7439188e578fcf2e10dcb86c99fcfed52445bf43", + "path": "/soft", + "address": "31P16EQocoLn11vUURvnBAdC2sgnN7jpFt5ufF13RcuEZoFj" + } + ] + }, + { + "seed": "a9ab54d60883fa08cea39b3cc597e2d8c2a50129a62e3f90b259ceac67adcfb5", + "private_key": + "3c3a7675f2b501e95d9f68e1d43889132e7435cbb98ba99be257079599e3db0f2663841233a8c922fec0cba9e6eddcfed5e2faea50e1a5fc4103cb4c5d2c7ff8", + "public_key": + "c04df7bd1967e6e2ea8272fde46f1915add40fefc22f4fb73b84bfd0cac50212", + "path": "", + "address": "25DjwX2ZifNbBUHtD6S5wMvxxucbhGZahbm4WCCx6yE7ZkK2", + "coin": "ACALA", + "child": [ + { + "private_key": + "0e91408cf8b7d19df5ee41a9a975a8bde60a78c8de05690d3472a40d69b3210878e1617002b9bcdc3be898a41b527683fab8badcd0087cfed694ab5631b1840b", + "public_key": + "8414f27633269c22b2d49e9ee4c46ff5cee8a4ea34fc3712f837cf169e8fb97a", + "path": "//0", + "address": "23rn8SKsJFyfbmwugc5a63Ri3GjeZkKWSUKiEhudkkoVtfg3" + }, + { + "private_key": + "cb883f4e76379cd2af2a9bf02910b477a2dad700b915b411ca11a6246f02a908de17b4dc88d435b0b4d5af7e1e56819377ce52048b707b816757e2216d7227ba", + "public_key": + "3a228dac02a7662f15ecf5a7675d89fc3780e5523f25d44daf6400c3e9e6973c", + "path": "/1", + "address": "22BpdM6KAhGauWZVciuwWzcqfS5Eio6d8kxmS5ChsifG7L2p" + }, + { + "private_key": + "bc7e5742a8f0889bd42b6b3628cf5d1454890f164b2c7b737c8e94db67f3340be44b1cca3db7cd44dfcf0c5e036b96ce28a0622963d67c504ab7b2a7c7434b26", + "public_key": + "b6e6d41769e8e1fd5d82eacc8987e5a144d1cada0d24721f92cd3dc4db796b64", + "path": "//hard", + "address": "251QsUVfSCdCcvQrNVm3REUiqpQjzjvuNPFivDtUt64XjqgL" + }, + { + "private_key": + "43f52cfb5906db326db5ed43c1e3eb431f1a3956aa575d3783e70989f976910ca9d2fa89470d01ee02cf40858f2daab4d6cb956aa3f42954007af8d444ecd338", + "public_key": + "1aff1ce757a43d5219530ee6890b903bb8c99b29444fda8be65d31dc9b306f5b", + "path": "//1", + "address": "21UzcdCT6u7YuGyyMLSorGKtBGFMbYwdgZDgHFKpZsyJMWa3" + }, + { + "private_key": + "b3ff013c0b059dab358c83d8abc699695e2bc73e0d024d576e1f6e1ab2515600ef5089176988b64e021d9bf7aecd018c2be1b10856adffdd2afb98c7e7c93af5", + "public_key": + "9837f1e1c45d171969a878b771c6cfdadd09f3b9208d3049d9af38eca1a69055", + "path": "/0", + "address": "24KBUyqB6bGLwaWhu6UTg3yAefchmFvdg22MJg6XJVhxnMgD" + }, + { + "private_key": + "abcc696eee487cdf5393600a6f3afea35b322a7d5c61cd43bb4b3f586d4c9a0b51170240097f31489b9dd153d095a7f2262da7ad5939844e703ede0026fdb027", + "public_key": + "04b11f256698a15d7a3af7dc010645eb99c121436b5727950c2f9d2f179cff76", + "path": "//12", + "address": "zykPmPsW75o2cnictCchn7uhptWm9V7cTc2wJzg4SuLDabN" + }, + { + "private_key": + "298a427d49751aca80962f0a2d96813f1facfff916494c640312c495513ded0617c0ec2ab127064cf72b0bd563e89155e849e47ca7079af598fc3a0c98b2bad2", + "public_key": + "88f63ad72f3bb9a06c602bffd9bcb1d6c51190b16ae63a703045896a5880cf4b", + "path": "/soft", + "address": "23yBF5Tug5Zcg3UtqVTPiM7Y9bRwc6wnXnnqYnXwUw54yHd5" + } + ] + }, + { + "seed": "bd7d9d7c09620a2a9fd8096a02e93d8b35b8edf2b8959569518e4e1278adf9a0", + "private_key": + "2e2022ece4d4d3794f49e2653a53325d88b4c3d1b45673b6e26dcbb1d9289c0a3ddefcdf23d76d52ad96fc5be7822a6e5aac32f7fff643050c1a62fdffbc9a18", + "public_key": + "3e3a208de6f1306ca2d6621073359749a9919302d6a5bea502807cc49383ec38", + "path": "", + "address": "329nQYVhK6EFPx5MLefAZQeHCNhT1tG3xmTSvUuUdkJF3Nd5", + "coin": "STAFI", + "child": [ + { + "private_key": + "b885456a24da1817ab4049d3392037ab69d2adafd6baf3815a3676f04a04b60e2466569ef950cb6ccd9a92de5de63b57beb3179a46ea3fa09fc73fcd4636ce39", + "public_key": + "7ca86a2e0f38077fb7fdfee913958c08e08ec075381bd01947aa1d106bdf1033", + "path": "//0", + "address": "33Ze8wxTfUeNzWJyt34rfrUdDQageNuFjtm3Wh6KSLrV29MY" + }, + { + "private_key": + "ffe7e2b7ca1847828c3bb6ee197ab301be44b26bde1db84b9f27b3fc6e704a0a06ec1b596e21fed9ff3dceb2fa05c2c886ab93178f3c8286ed900181d9b687ff", + "public_key": + "8ed43c0adab6f0a3a499c8904bcd34cb533fd4a13060983058fb6b8b694c7856", + "path": "/1", + "address": "33yU1wJj8G4nYintNhGN3dyYGZa2ncuzMZrQqbNbuZkVVwXN" + }, + { + "private_key": + "dfa3b1f3a19867095022f8a4468b2e093dee983b4721e1e0c02039c396901f089e46a44dc97039af578aed5c4ac57cf556f76622429d37676b5cd8ec7b90f86b", + "public_key": + "1e28670d59f6be9cf422e83af47d997c8970ec6fbe8ff5861000e587885f6a40", + "path": "//hard", + "address": "31RjcHJ72sdtJsRjJiVjkjr3pVtHDJNY17hwBBACqugiggP6" + }, + { + "private_key": + "7534c784c95f467470bdb3567226b750ea3de39b40f18b763d0892ee688cf50c51dec335349d2224ffe314c37129f0cb1aefcb06a8b410a74fe26fa696c27266", + "public_key": + "62466d06c798e8418540d001538667492f2c2a01afe4141700f26f23503c9e00", + "path": "//1", + "address": "32y3nRqjKVBtArn6bH99nixPsemGJR2czjxE9ZUcUHihPakL" + }, + { + "private_key": + "484b7a426a41f3b7e0e3cea721954052ca171f4e568661e033b15cde6805660c345052242c9ebbf0217ffb190f6add16deae27bc5194cc7f7f9ad7fb4e4a9c65", + "public_key": + "f650158fb235e7e6d4730c04a9d8ead76dd840f4b2c9769e0a0133441e195039", + "path": "/0", + "address": "36K9jt2xeA2LSxtmgAy5wz5vzcZdC2Ac8nAUAyaSD8WtJQav" + }, + { + "private_key": + "6cbc7f85b72c19d353805dd61c0f2499194f69ed952f40cf25710dfec0cd810c27664e1e15792cb647f2286c150efffc6e3444a1d3eb34d9deb4d215f1fa631b", + "public_key": + "b6da39508104b35813a277a3601cc5af65e6f4f35801fbca780c52625c797d0d", + "path": "//12", + "address": "34swiDvYbLn5qq4Y3VaWVcdCnZX5V6uTMWxG8CcL6dwkdXBv" + }, + { + "private_key": + "aa0a375dbad4dd53c7910eea3ab2b2229f8f7d99c13665e6bbcd630ce4b8790e8c6ce866962b79b4312716ec36c7e97f2720fdf6896484afc181dd133ae54445", + "public_key": + "ba3886b8f891ee24e5e22199da998ce1b9215e31459703bf75a6aa0f892c384c", + "path": "/soft", + "address": "34xMsM7ovFNxvTU8HAZgLBeVatQkHHe7y8km73bHrYVGx8Qw" + } + ] + }, + { + "seed": "205dc9cb31c63c30f427581b595305bc26c530a43674f6b0c076f25b672496a0", + "private_key": + "6ba313ee402b551ce5efe5a77ab8e96d73a0543e1800871c2b8f12b01ed0120ee83500089eecca437b42e6fa76029474a33008ea455e801277e3eb7077d6e01f", + "public_key": + "9e7f8da326c7003ca8c3601c7f02f09a12e9cb7de53d00e762983a4bfb70fb09", + "path": "", + "address": "14apTWQxraLARUQhy9s71eKFxPg4fvpfAP677QVq1NAqxktF", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "04d6f1be979fc17aa25970665de5312a2131ba858e87d39493ef1d6b831c640804a2b824901557f21e7603327d2c62547aa49341f4239513d4dfbce4066f609f", + "public_key": + "66c8933b95c4578f2a3b80d1052c2ab2a91560fc4b05b7edfffdaa09a961fa2b", + "path": "//0", + "address": "13KmU7fZg2bijc3fTLFx3JPF3XmtLtVWH61d1CUwrHZmvAVv" + }, + { + "private_key": + "0b66847e82d3c3ac71a67d8ec496967041e1d248ac6c4e6111cee442c69c360904759e9bb55e92b2b9fa54a5c6c1b2951dbcdb0f48618ee790afa72f08c5ece1", + "public_key": + "8c7b2d9e6462415bb10042861c718b929dbd9865e3e1fd44a714a66b2cd59834", + "path": "/1", + "address": "14BCJ8pHTFf22zJzQwvs6e4zuy5WUTU8r3jegGLHhnHiad29" + }, + { + "private_key": + "15b31dbfd504a75780641fa1c15ddb5f86db1acc60f2db6c3af237df59bb720eb02162cfe374e5d7d51bb8af1033dc1e61269fa8bd0d076e821ce0c7f5fe66f7", + "public_key": + "bc4d4da8c6301f9294775cb2752cfabef7e5238b82bc2edb561ea9e6092cab5b", + "path": "//hard", + "address": "15Fty3Mj7uFmzwjUgEb1SeGURfR84EbFfUYJEm2XnQxQh4i4" + }, + { + "private_key": + "ca2f66a5567fa12c4a889c6b2d8c3423fcdedd025f1812fae82fafe15a7a190ca5514c979d3bb16f104538cda7bb3f8149ef096cf0e357176840ea353061d113", + "public_key": + "4cb3351f1230dccf9109a647fd381866d7ded6631fa718260ccc293616637e65", + "path": "//1", + "address": "12jZskTM5VU5WwWFnEQnzSK2AP9v6L7rFUnitziyncZjpmaJ" + }, + { + "private_key": + "5fb20b222087f13eae9804790637568f441bd93923c7210844d701f786e47f0529410f3bebddeed1aab6049ff00ddddaea5ee31e80a87fc91bab3f7de29cd5ac", + "public_key": + "ba3081a7289526529dc00814e60e67232746f2fb8869f886eead2c93963b9138", + "path": "/0", + "address": "15D8KKxzL8bqEMhBd7tTTKFPS47BNm4uxzHixVzTKzUZSRNT" + }, + { + "private_key": + "58732abb508643a2f07cf1701bc5d2ca9cffe97818bc48de38d586f935bfa908de8eecaeef77247f6216030ff0b37dbdd7d1dfeef46cada663dc6ffcae0c2c88", + "public_key": + "32c6c7b4aebce8cfbd59af65fec40124fbba87889ab312827359d97ffd81660f", + "path": "//12", + "address": "129aSmVLXNmbVcViU8GpUmNGnRGprJQQeUZGC5tHKWqBfzxy" + }, + { + "private_key": + "53a8cb7ac4465b2659f4c6ce1f15839795f27aacb8a46c76b59a521c848cb102c2b78a591c7cbf1b7384558f61cadb18773d42b74846b4d66597cbf6132e3377", + "public_key": + "0cdff0e7cb71232efa7c59e64a196cc4f532ea0eb1392611ce0966ac258fa746", + "path": "/soft", + "address": "1Ht6k34gPmuJcGvnfPD35oVmBdpj3S1y22XRqQavjpnbEiQ" + } + ] + }, + { + "seed": "ac11f27001328a14e7317f8986f44c0dfc55f55829d4e3b0862a839caf8f9614", + "private_key": + "9dfc9014f075657b727990fd352424ca38274fba2196d8f5efab9658ba9b8708bbcfec6161a9c89b7de4653d89415da36fc5caf7b11e7444a62f86ca5779177e", + "public_key": + "b21b977a3bb6768473ca0b2424fbe67b39e40246176ba7ada30e17c0c52dd944", + "path": "", + "address": "152XikqQ83845A2TsSYUKHd28p98EaKrh17RutCuRMLMN2Ss", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "4b84a4bab3ae959e06cd8ce852ee4f497c79461be954fec0ac663ac2037ba109c5b4aa7a2d094f866754100be3bb7b8dea5525b07f0eaf2f965f3a16c81357ed", + "public_key": + "1a2418f87123312c3bebcd35a0e1ef54e215b0e3999b2fc6f257eb2c78c33e5f", + "path": "//0", + "address": "1bGyA4k6vC3Kbh8qXkufVQpfFFX3TQcJU27PQZNwDzXvQaP" + }, + { + "private_key": + "21448fabca58ae8b9e945b112a1e84d1dfed5dd3fb72b1e9e69847bbacbcd001f47d4d7d6470e200295a42f2092e24a7e9dd5f1cff9926cbbeb8209107cd92e2", + "public_key": + "605ea51b34d42ea31a76f95765187156abc6c1e8396200c333a40acf0175d65a", + "path": "/1", + "address": "13BMiKMhQgNtsP9G3goHgtPNRB7tDd3kVRgM4LrMdRSEARsk" + }, + { + "private_key": + "a7e02a0967975077a9658e8baaadabb220e5ca3455eb4cff7dee1036eae4a709455d482553709697ab9e5ca87f1c1be6dda797265b66c01b0305c3e41410b9f9", + "public_key": + "fecb7e7680d13f0545bec8bc60b4a5eaea3116a4804f934d41ff932a6ed06838", + "path": "//hard", + "address": "16m5cZL49Nw6NBTCgRA5xV61RckmosgwyxzZGuSFaGPd7cTZ" + }, + { + "private_key": + "5d561eb8cc14bb16743978808ecff3ad93d5489b064ca66e5637605abf692e0e7b3e11c8f0d000877b0b523e0771f459fc9a64f8405229821e50ff551a008403", + "public_key": + "bc625b9723c78cbf35e9df396884facb47903b80e57bd04166504d9482c5c264", + "path": "//1", + "address": "15G1DoPd2bFrjm23hksFZe1ddo7CpMKAAo5D7ch2h1nANuTL" + }, + { + "private_key": + "385e25f9cae8af04012de82219de823ebb52ad1206aa17b173db39d79d6c1c085d9dcdb3eb5df56c109e1f8ea2b3e20ac09093188a100ec776535006474e4f2f", + "public_key": + "f2b2c2fe19346ed4e0c98f186371211505c08a6166e0e2949022115145ef9f33", + "path": "/0", + "address": "16VDh6usJnLwHc7LxtfKBH85FpbjMmHZbXGC4gmjArGoPdy8" + }, + { + "private_key": + "dc40bcd440a6bc25bab3ad3ef087b40c728daf224eedffe5f0b0c4e707df0b091a43161dea2999e04c04b7445b8abe03bc62b433e5ab44ecce1941b8cf1f510e", + "public_key": + "9e5ab9dc8c8f8b72f94b545d737a34e7a9db2924688c5328e054643c09667334", + "path": "//12", + "address": "14adWzKxAyQfYuubJs1NmnAGaq9x4W5CgWU6VXuDtRtxNHP1" + }, + { + "private_key": + "ce89f9c21670bbd63e269d3ffc17eaf2ff1f5227b2750dbb25517904df6bad080610b1fa148050ed01cb25333b711b419a7979b85535da66ce96b5f2cea82203", + "public_key": + "72ecdbfeb0b0eb58312ac6cde137cc8df7e1d4b5beb37e593d18fe2311a61708", + "path": "/soft", + "address": "13bgpc7NvHhsNA4W4egmL3FZ4jXafkryyKs8MkJrwYLv7a3z" + } + ] + }, + { + "seed": "1d6003ab1270c6baa8f3c56ced146d7e9a246e8a198c391546f9b142db0a5afa", + "private_key": + "8a651f44205520b6884c575ba53a49fd5f9b849d642cf56543b0a0d4d329b90a738dd6f945f473bf339b72d023e399cb9b88f2ba1a9cd194c12a44004a471542", + "public_key": + "92fdd724ba32ad493e02ad910c7a69550be89994e75400fbdc8b38c30a85973d", + "path": "", + "address": "344vZu5X7qCVnV3d8XANeFAXhSKujv8WgJjTX5duJqhsYyxs", + "coin": "STAFI", + "child": [ + { + "private_key": + "016575c1068806234dee5b32cc2cc1f08e1f8ccb8ee0b78d37568455470b9c09e2f7ac9f1cf2ec8982187a856fc037da33ed7061384324c1ae4da2dcc9ac7f99", + "public_key": + "a00590ad1174188f736ee67f99c4a2f7ebd12802f55ff9d649b158af90eece32", + "path": "//0", + "address": "34N1V6dZk69XGjTQGDAqcZSFmC7eyX6stnAJijj5JLPLnMpE" + }, + { + "private_key": + "bae099e10bbf2634c0f9be41a061dbbdccea25337d2c8508078dfc60edca9f09f87d76526abcdfb2a6dbfffdf47cbdf3543f605fc8762fcc6ab03dc7692f7151", + "public_key": + "86465bf1c5d342fe1f89cee33594c654ae864bf5219bc724e1db74a591a6a515", + "path": "/1", + "address": "33nFVGBvDMPKVX1x66Jv6Vf9NQ994L2W6JVm9NBSK2r9Rxh1" + }, + { + "private_key": + "86f7e0422cc0b32cb241f23a2c90d04a0c69ad5ee9f13bf2bc7806c6acadff0bd3a037cc89734fee844ccffa981ac8d2a81028c80616654721e4f34fc776bb34", + "public_key": + "72fc75850b57abbaa061aa7b8cb856d1eab78ede70159744e941990736cc0b35", + "path": "//hard", + "address": "33LxdDzCip6ojbK84pj53fsHbRsyVrBqeQG7Y5k1QfDRK66r" + }, + { + "private_key": + "1eadecb454fefd63bad24dec178a792479021bd117cdc16a5db7c832bcdb9c0ac6b7d9736d52c589a3f1c388639898204fe6a8786970440cb2cca26febfbd09c", + "public_key": + "968cd220cd6a20081ba1a8eea112f40388173596f6173b6fc6b04243cde61834", + "path": "//1", + "address": "349bBj3ejkG7SbFP5Csg2eLrdHuBjwAwfUYAssreUSLWT42j" + }, + { + "private_key": + "1ed16881b0105bb0127ebbaacaba48c43033a23bdb805f31db566529390a940efac94a425cf3799dc834803a2eaa5b4b5ef7601d44bd33e7c112ee103e3892b9", + "public_key": + "0659835a3a8729a6040358900b19f8c9562209d66bc6db41932e8c5b4eed5910", + "path": "/0", + "address": "2ztX3nGYHCw5vU7T1dV1X2rhGSeraDt8dubSpUow72fEugmA" + }, + { + "private_key": + "8c60c65371530c086d25040ad2dfcce5429477746fbab71ddac70501b2896a0d4ef525d87fd29b054db3834de542882780b7e0a35951ef7727330cefd7cff864", + "public_key": + "16d0d08c12b2db37bc968c688e1238d5423d8036f6f9084a08d96ae1b9096b7a", + "path": "//12", + "address": "31G7FjeD1HG5nusQq3VF1JVRMoBZwCPv9jWJpFoDcz4FfUdB" + }, + { + "private_key": + "898be67bc7585b88719a1e25270b481a17538e7abef29d3e815ef8a359da600d14a3c6ccff0e5cbe1067808f9f5c03b644ba6e4b20667f17979e4735802f8904", + "public_key": + "fe9c8ffc1ce33a4aa3f12fb943adfb3d2feb8db29559d5306458a2f99d5b2479", + "path": "/soft", + "address": "36W2qnfo4muQwntTXr3oKLGTpv5Xwdn3U8yKc1YBG1wsZ6FD" + } + ] + }, + { + "seed": "c31e132b9ac941cd51c2617d8377e921cda8549cf9f54ad7e181c97fc3d44076", + "private_key": + "1c9a9e28a098706ae44e6c84121c3963e8961cf8a28f0293ef50cf3310a5720de90fd31062cee3c1213b2e5143d14ee5176d8d712ad39dd09f1e153a03074343", + "public_key": + "6a1f816d2eac2574a33fc7bc2609fd27d4f4e8c1827fe85be3744b4570258462", + "path": "", + "address": "EyTxD3nJwkKhwFTKY3cN2zem7yApLdqXn236HbboVndN7rN", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "c18474dbf139107b721f379148e2fe9481977e29c63f0d39db5b5082c638c808313dca7a8baad2feb35195d3c3d7fb076df96676a0f67db2da685be9621fbaef", + "public_key": + "544d0ee5a0657dc43b4c30994f9e68354dd218144345d78b50d0c588e0c50d52", + "path": "//0", + "address": "EUrRxh6YvRm75xoQAezou1xErE4sGcaKnANCgtTZaRm9cDx" + }, + { + "private_key": + "e8fabd7fde3fb68e03aa870c0b3ac03867b2189466e30da0616d9de3ccc6520ddcef654215c6af4367c00af0c19f3be29c37c7e6d7504828cd01947633f6153b", + "public_key": + "ceb64cfdd59d0528c9143ef85fac411a97ebd5a8811902747735fca9ecb80209", + "path": "/1", + "address": "HFMY5c7nmFxkpZw9KsVBneegrCLeknGQUXViSj7EY1nX43R" + }, + { + "private_key": + "11ec0184c597d481dede63297204f6c43f16567b37245775395efdf8fc92b508140a7d1d8589e9019cc2c2411000cb3d96f6a4d4fc76b9777ff347ed92787e78", + "public_key": + "a29f000d1c00b5612f2f4406f800b154e8082ca16ec15d8bcadc3f2f0a89f040", + "path": "//hard", + "address": "GFYWRGy9JeZKQdcQxFUjiE4gBXomcnEfC6k84HyYxDuMp7X" + }, + { + "private_key": + "8e1a6b71f69cc6d1816c63eb2bc8196f33ebcda835249320563b7eb76e48e708c68df134519b299091e64d55717e5e7b39f0677910dbbb172e94d91aab1b8f5f", + "public_key": + "48face5e99d40a9dfa0e2dcfb8736355392557f4208ed3ae95a20a4851b9c869", + "path": "//1", + "address": "EE1UEuWXAYH4jfWrdijHuRFD9hoSrbTNu8wUcS1fSMUEBwx" + }, + { + "private_key": + "84bebd4cd025513294792df339b12f23d074b8ca0addaef81adf2441b5b7bb0a6ec4cd841301c3a9adddd765304c37bea092127a8914e3a03e42e223571c683f", + "public_key": + "26d58318319f7f04ecb76b76d4edaeac4653fa4366cca2b4e00b058362afa751", + "path": "/0", + "address": "DTEmFV1oBKpPdhwSMF3VFRpTFXwpgGzB2ASUAzB19QMKuLV" + }, + { + "private_key": + "36d87ea3989b1f58c1b76724e30ddae569d148149921c4676eb5530d7d88ef094587d88e5c6a36a5b0843fcd3de956c9d64133ec641cc5c2ccd1a060639d6727", + "public_key": + "247f7c4c90d7574be31a4af24ce5d4618f9587d7a1a10fb3931560ee502eab58", + "path": "//12", + "address": "DQB7VYqto9TMgaKfjBVS7VFZexn4sUpKDKCdV9CiSmiXScj" + }, + { + "private_key": + "ccc93d669428f0b8f015a297c6e0c1f21feb809e89e92e2643bf69a0e8006109652b97c5764f85da511ac7d78f4ba4f932df58f1f25a72696fe76b2fc9709f27", + "public_key": + "4c8554ce261daf8d89a0a94eedee9c382795f0e65c2ab4c48623a29be43e2f3a", + "path": "/soft", + "address": "EJemJeaky4qdRHXVsx6GaZvXNxjNMphRqHPgFivK671Q3u1" + } + ] + }, + { + "seed": "5ff449b6535c14aec63a453971198a93e86a20af80810859955d0eb86a9070bb", + "private_key": + "83aca61e92df0890e9e6b3b5a5293884e1de99226a7db05ddf6f17b56caf8b08066f542dcd0a444cda6b6240c76d006fa40bba474805838a4883e0e9c2b375fa", + "public_key": + "b6414a7e10536f7a15a56b95b4d41ac30642dc144911a9e5ad8da81b85db870f", + "path": "", + "address": "34sAHFX4en94et2JavrKmuGaAPxBAE1p1Uo1B638tPcdW1Z4", + "coin": "STAFI", + "child": [ + { + "private_key": + "819609cc4433ee28b5ea2895a528dcd47cfb56dfa94908687d4e808ac8075508ddf380b85cec95f46987d545467009a830b86c10742bda23232c4e672a42040e", + "public_key": + "c088cc34e63b914ac04ad4dfb7481c19931d6033b987943cab6c79f630fd6d5c", + "path": "//0", + "address": "356e14CUcF3M59q1vr4SKLfSykvcY7axShLvBaz7erHbiMpa" + }, + { + "private_key": + "27cab9046d0170e701369eb9855e618b2875d69ad91d0750ac001c733064e301716a3a9c83689930ef855d35b58b471aafa6de6f14724852e4f6fee35bea358e", + "public_key": + "a8a61b7be3390c883b9a25740ff3330b7f7c38673956a1d6e069772b1b7d7378", + "path": "/1", + "address": "34ZKZPq5pam1gWnn7Zz6FTC7TmbpN6ZhGFrZ8jJX9gaiP2Rg" + }, + { + "private_key": + "906f98890952208341aec5b47ea7d58ab7b9810414943632e7ef01ede2a2c60cb36b3803ea6320cee3ce7a9315d240bdcc0ea0aa91c97d35f8905b9cc7be7c3a", + "public_key": + "f20ada38f850c32d491cbf2b07ecf697150f79928ea453a41871425fce3df84c", + "path": "//hard", + "address": "36DYywD7KRVNLsBumHwVTJaMJckVRnHePe8Yfs4AHryHL8ke" + }, + { + "private_key": + "0fad2cabe123016d4ea794225df855c6f98c0282376406041518beb8f582130b3c30221dc5276138f73411b703d64b0ef36f0121d23b5fdbf2a40f4ff62951e0", + "public_key": + "2a528f60208b4274284aab819c4f003bfbc7ddc7db9cec808a2046fe91e4ae26", + "path": "//1", + "address": "31hghy1kaGs4Ea1PnTDUTSDasSG1LLTjLhmpF3W72WLFLG48" + }, + { + "private_key": + "400b586af12dfd060aa18bb0c6f322b32aefde7d0cd6e3dcda1dfb42731e0808b461081b45e469c06c5c3d850e5b2ecde01c71bec90d543ea21b86ac566494de", + "public_key": + "ea21d5c3053ea629c6d463f83e60ff090dec8f1d7ef5351e39d4cf4992e6143d", + "path": "/0", + "address": "363BRhQeKyRfuBHrb1N6v2ZNooVFmCmTwTo8DNpbDi9NVCRE" + }, + { + "private_key": + "0ad84b7ddd3ded89009f9fad86a68d49f5cf22dcde718f10b6ce559e2a769f0e9e205286b4b90d47e184e64abd359cc22259eaf96130b53bc45e7458259c2ba8", + "public_key": + "243c0db2c3b06cc85ad2ef1efab5c58eab8a11dd4d43344e21e3dce188869d78", + "path": "//12", + "address": "31ZhjXLQ8Hb15Cz72czeAv6FUTmE7PHHD266AydWKLrz8eK7" + }, + { + "private_key": + "c905ef64311b54d1b896a1f580815d2d46ff17edb257e4020a1649d074fc130fc21a184356fd41dd78486b268085bc8263a114403106e1ea17d7f8c9dae59581", + "public_key": + "104950587a6a016747f00f9fc975e6edac6a50c22818e6d7c4ef7bcca4774c54", + "path": "/soft", + "address": "317YiSw5FtxuQ5nHyYhFqEaqdBiLAJJg8Y1AP2gk8fkkr7ME" + } + ] + }, + { + "seed": "6ebe031d1cd7945e2735a70b54381126a19d21010ac1837eaf7de608e28a052b", + "private_key": + "e3a232c27b7ef9593c2ef736d2f27c79ef76722a46211dd1c9f7180bd29ae70c9221ad6fd8ae57d958dd22d7cb29eed0ab7170613709b87da5577538b4fae018", + "public_key": + "7a7d4487b73ba41d3c3cca20b33cb7d9f383c17927a9727e3fc2efef222a7f0d", + "path": "", + "address": "33WoDzCZaoKYjThbLdkH5cUgZirgsyFr6CuNaFWebW18cj6V", + "coin": "STAFI", + "child": [ + { + "private_key": + "5e783d46d0fbc1c8cce06f9cf775cdc6c043f5f6c6a06728672b0d08764c3a0d7243f13b17537b27abcc5ac4142cde3a5b8d3301258d9b024819ed3291c6782e", + "public_key": + "9a1cbc510dd845a0edeb8dde1ee9a30f8ae1352d8f8cb8e997779615c5238a7d", + "path": "//0", + "address": "34EG5emNHhQkJHdbEgAw8es3MzuVHZ3xi67pTLnhJ5uc37qo" + }, + { + "private_key": + "6bb46b92d3a7684926a4654e84e6271802980527527a7c0f7f83f2fc42208309beabe581eeeac379aacbaf59a35ccd9d3ecd5966da169213547c675b27332979", + "public_key": + "3ae2e387547a8e7a632f01b97a18c1268deb378fc0fb818b1771d87f2b40bc49", + "path": "/1", + "address": "325QM8U8NTd66bjVdCzN2VtuXRgppH2L5p7EgXpREsxxu6L2" + }, + { + "private_key": + "ae0fa326b8aa1816f89a332ff68c0007108c6623429550560dc1f5d4ef34830b96534e0b2e499a559a2109e2c7b4aa0d2662a28ad06aad49d774d45ddd423a27", + "public_key": + "1458a245bfa0ec220e8739f3a7ae123d0ea464e37de08f203f53e09705c24071", + "path": "//hard", + "address": "31CsTWq2Er68BSZFihL6ahrJmPewshgXAbi8mbsQW4XAvgVC" + }, + { + "private_key": + "07ddd3ce633335532d478f748fadbddf48ebfd4a6872f3d0b3944d46ec85030936defb7a77bddd6227c1c65d49db39e63931e1cc80a480aab7e055da5c685346", + "public_key": + "760b59a4bb7bcd18c8f22e7bc757af74cceb59fd4252edb25966f89964c1754e", + "path": "//1", + "address": "33QyC8B1iwU5W4wJfoJ5vEJK8RJCQn2ZV65oGFuhhUKNd35f" + }, + { + "private_key": + "66b3b1c00e7b3d2b365badb9c9206cc02b69d8cac6d889c6bc92d3503dab310ea8a0ece8eee65f51c7b00ab5b595adb76a2f1145a09a6d2d69ff9f854bbb4ef5", + "public_key": + "ba5093a2373bb3f4e5faa1692c9352d1f37750a94229f59ba506e12add265432", + "path": "/0", + "address": "34xV1j7szgJkECkkRHKBsUwdWcM1rtbgSeJz9jodFWwnf8kA" + }, + { + "private_key": + "5a447d636bd520eb9fe18923b9ff071a521ef3ad7ee3960eb8700aeb8482f508154582f7fb0b8eb37491785bf4f4db5e11d6767b6724b8169e2f5d8ed88a35de", + "public_key": + "cc207082f6df464c03c6260db6573e091553c4bc62c23feda71347c75b91793b", + "path": "//12", + "address": "35MqaLL2i6b8S8RUJWpeY6gWVUkXnfTz7Y2jWq8GdQv5RBMq" + }, + { + "private_key": + "234c648d746e345be385f319de0ae0afa429b8a8f9f9d6bb5783ec6f9a33390567affadbefc789d045955538024713b0331a3ef30d952b3f0a324295c87221c5", + "public_key": + "2894899e164b61cb35c037171d8e117c9c7ba84fe8e66fc9ad201aa9594bb30c", + "path": "/soft", + "address": "31fQDBGoay6kA6ewYYSbYvF63gsBcPgc4vB1yGM61rLsoPKR" + } + ] + }, + { + "seed": "655d3830b8508ead2345a211daf223560c74286c75c37a00aacfedb60ca0ac4a", + "private_key": + "389533a45294cb9fd2ae8f764c28e79c4be60c131982880ef0810b57ee343408e408104db77146848875279bca143de08174ab2bf20b08ae30cfe9c667242deb", + "public_key": + "00526f559f2f976261eb315064e7aba310226117a5c9ada64a6cfeadb4509d2d", + "path": "", + "address": "zt25EzQKMX9rYLkzddxmyV9Uak2eHkJYad4j7FP8KPqFAG5", + "coin": "ACALA", + "child": [ + { + "private_key": + "03fa2e109c2697bcc915f6e15fe9862d06f68dd1ee13001130750244b3f54c09b140467baa05d06eb18ecb1e4a3675ccad7b1ef978e69214c856abd780e4bbb0", + "public_key": + "325498b8d07fc346dff4817fdebd19162a1b82077b2669e06c4c5829e6c38123", + "path": "//0", + "address": "221b7MPcLzkMf4G5EibzQwjLAc9mjnVqUYKw11oWt2hAYo1X" + }, + { + "private_key": + "09a0e16914d454b68a8b1381bee6c8d532848d69e03d726a03c4aa6b0267c706c94f253e2aa28e60163b57751f63568b774db6b871dff917535d35f9d229218c", + "public_key": + "501834ec4bf9013f9ef73956ca068b819301d182b080a07d9affea24c111441d", + "path": "/1", + "address": "22gccBLYmLRujpanaNH2i7e9tgdLA87mPZbfK5ZwfVDM19Cg" + }, + { + "private_key": + "05d7bc3b3bc7b8885cbfbb463321525f486729eea55ae05e8af9c8342633240b223cab9831991d4f51311d55758f6d4b9e88396685fca0484c4b8e82fba9493a", + "public_key": + "0c75f5848ac96a883eced3a24ed4525d7f19a3e3f7f814ccd7a5abe7d1fa750a", + "path": "//hard", + "address": "219wCdt4w3CB5n3nxMByrrcsKcYbfHzbNL5HzBYZrHCSSvTS" + }, + { + "private_key": + "8fb4105418363292e48a6356a88d544d3617f2372082c819e2155c98f8da9e0c4d58bb5e10cefea2dd74960787973dfdc1a5baaaf9fa946b0a458b10786b2358", + "public_key": + "462511139859e2c7e3210234a093b5caec4e406cd57a678489d46697906d7b30", + "path": "//1", + "address": "22TZwyge6RZj9bk7kXyrjXhN9RTviJDsKErj3gmNYtu4MQZH" + }, + { + "private_key": + "15c18f8a6c5bcf8a78b8893a896238e1ef9a2cecc4ea1682d8ec199e06ab3a0bb3dd1eb5f3d2ee2dbb899c88f54b6bbc8f456119ea9c7324cd5097d564467622", + "public_key": + "b6920f09f91e75fb9a607e8a3b5f5f765501d61e5a4dc75998020d4f7386b66d", + "path": "/0", + "address": "24zygvgKwksK4moDqBg1wx5QtZ8AHMFVnD4ZwFUEJHqMRdFz" + }, + { + "private_key": + "2effabe5edeb12c2a7c9849db4dae8dc27a617abe2355c35e0baa1f82c65660b1473d0c7cd94341d0936e862b6b0d6c4a1341e9a87792ba9e3572aa01d1096f0", + "public_key": + "fe728739946a0a0c0adf4cebbdc9656eba4dccbf901984cf7b048862369ff84f", + "path": "//12", + "address": "26dDmdktXq6piyyG9vhcMZhrJPEBnbKdjRq7dbjjrRd1VJF5" + }, + { + "private_key": + "92ea0feec5a79a66d34ee1a6511ee7daef0aaad9c89f3e91621bb6dd175ed10997c5f3a9f051bcb06177572690ba25face65a9da67f242899f7abfd32da50536", + "public_key": + "764db1f71a0c159cf8c18ffcf7a9315fc8bd006a7823d8bc03485b0e4bfb345a", + "path": "/soft", + "address": "23YiKJSAi2gSHuiEevgLPKLFypsBM7TLTJ4gLwoDN7huyJyq" + } + ] + }, + { + "seed": "2185a0b678d5b3854171a2b5c24429c8b12b7b908723d5b13d3612dc00611f1c", + "private_key": + "8907229e069d777f0fd888989a322b2d5dbeaaa576575d142adfe9fef0f6f60e785fcfc7900616eeb2e5ef36a32aaa8ebb78fe7836c664337af30b9c5cbb8bbd", + "public_key": + "dc3acdc0d8dfc5d7b521f5a2c131e65b267fed3e6702dd191b3fad270d1eee7c", + "path": "", + "address": "15ym1B4LSqSWkJoSFn2nfyMaiFyhDXmg4wBMx7fck2B2ccTQ", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "671831fd035f88fd1819bf1679e650892aee8e2d3110588ea1ae70e877fe800cb9ab6b6083551aa9e6eaaf445fa66bef89a7fd0dcfdf64345f99dcbc17fce517", + "public_key": + "c0f1ef778e0316d6813dee861175576e0f7f51d51882f3a84790d79d3db19269", + "path": "//0", + "address": "15Mz4hGYnc9UxeURXUp5gSJYGrfRGhVHhWKryLnQf4Re7TDr" + }, + { + "private_key": + "d2e9be72ba6101e58b894a119035a39c1cf4c0b2dc25d131a16efc16b2daba0d1a18f143a974ddd1c932b69a300c46874d9eb375c0ef66c3b9653d692e1a1c72", + "public_key": + "a0228321f8fccc06efdeed1d40a190ed111d99e7225b66780ce1ded394a11236", + "path": "/1", + "address": "14cxv17w56mMXgG8Nk8C3yRDTtyEofJFQUpAYrCRo2sTVa6S" + }, + { + "private_key": + "af2f7a83f353649adf57cbf6f002c3a75812d0e171c230137e4b6d443a42c609ec55c0e146ae04b618db765baf0d17abf73f8b56050737a8c5e3805b29b642d3", + "public_key": + "e088fe3b310be55646b6c7707e9dc9ee53ee54b233cff315e0bcb411e645e350", + "path": "//hard", + "address": "165QRTLYBWnLpscwbbP8m8c5n74RQaLCYGPAETkvnra4z6TZ" + }, + { + "private_key": + "8d6e4361fa3c1d8c4651ab9eaaa433baf62a8e24817e9d96e2195b1e8479a10eb98500d83af0ed16ffa38886aa5e9aa86c4e0949b4ee1f49322695604093cadb", + "public_key": + "c61b5c97626a434fdbe799778322a78660d0681483b854194d38d28f693a1056", + "path": "//1", + "address": "15UkcLejfPr9tzHd9DAPfvgVcJjuEAufsQLua8WnsZWvNn3P" + }, + { + "private_key": + "cc4fa294adaf01d0937de6956f138f65fcde09cd197998f7f9ea31059c535e0e1425d5ebaf11e21f55918564879c78b979aff6fc57f52a4014a5a9caec4ef7c8", + "public_key": + "286a361917fffc24f3baf84f6f14a0a01c44f55c781fb618863eaf171679090d", + "path": "/0", + "address": "1uzU57iSHpsiJZUJKqRfK1gc1dT1hWAU5MjKFH9JqTHQxyD" + }, + { + "private_key": + "e0314b0df9ba1b387a65b7542a932ab86aa88b91a1dd24e35f82ac84a801fc0c1e68397792b40d53c2a96623c26ad9ba3e3165e81288167b085878a399a47acc", + "public_key": + "7c4bd7d632a9b0c55e3d2ad6a8d769534b5da8e7b362405e4c5b4f35ef968a5b", + "path": "//12", + "address": "13oyU8j52VZgC14NiJ6kGFT4ssDSinxgJjk6wpkSUvmzkRMe" + }, + { + "private_key": + "bf319febee8599ed7fd1ef2b726f251ac5a794b85ea15bc28640965a9c63c303349e9dd880bda54e67d4f99175af4f27b54173036cd2fdae510b4fe55eec094a", + "public_key": + "483b067e74ba438f480f4bb6183d90fb7220ebd66f9ae7f9d55f4191ae7e5823", + "path": "/soft", + "address": "12dhyx6Yg8XnQX7RJ2bn5YMRMgB37ySc3ZD5oQ5zmHpGTxMj" + } + ] + }, + { + "seed": "a1d3adfb14be55d5871258bb4db2a87966c21971069d88906576c7d80da1b633", + "private_key": + "63f66ec3eb73fc44d6f744393e4299aece99a590ba508d7e52033e01464ce70bb9af171a6fbf1659be5232dfc9ebd2832a475da380f18c937a79429bf8139181", + "public_key": + "bc419968a968416ccd1f8df53df67d52a3843549306a35636f9a7765ecddfe31", + "path": "", + "address": "258S5JfbTdek4yWyWk3b9tDrY2CPYeH7BAbBD8sQAkR6GUUP", + "coin": "ACALA", + "child": [ + { + "private_key": + "3c1ab906e4297e29efbf13ebad0a86edc13696cfbda62f58148bca062525e80e21e7bdf1e9772b071f0a6685f2172256af1d432658c4bd06493488197ec84cae", + "public_key": + "f073d6afe5e1f015d49e3f268a81b477a39fcca3211ca28942e6fdaa6ba09509", + "path": "//0", + "address": "26JsVL5nLm5soNfjNVoqABwuquitFo4DQ6HkLua8wmWrxNE9" + }, + { + "private_key": + "3ad7063064726beda0c6a6672abfcee11a851db02966da919d5c604d04b81a0696d88f00ab90b7f38714ddc2f05aed9530814baac19385a1d8052cfd00ef8e75", + "public_key": + "ca9c6a367f05b9eeb927ec542405bf1be852a487d4915ba122cdf151a3ffe658", + "path": "/1", + "address": "25TFiuS7vmJKfNqKkPJP4Df8gjNBQAmZbeTZqqYSt1Uxh27T" + }, + { + "private_key": + "ebf0acfa4c5c951b7e497e8f9ecd09d79e7c0222f923bf7ab245c82d50b5c509e0f8563cf893d496412b4fa012f409dd5fbe502409dad7c8bfc4a3ad305c71d1", + "public_key": + "ccdad5421da4a7c13b6bc60752ae0368e8fb152228711c6a7e19688c4de83477", + "path": "//hard", + "address": "25WCMu6m3W21HG2QVDUzL7wK3htaC5fB7KhGWEk4Gvdwidaq" + }, + { + "private_key": + "3f01d381f6b6386f7b25405f6f0812c37116734f210448fe53ab8b17e998b60a8b1b11a2b2d11cf257a4a29c2f4ec98c02eb1f30a3f9591891d752264a137f88", + "public_key": + "40176eee0095de659ef69f17cd9e5c475337a69e04ca748f4e9bb120b42f6c11", + "path": "//1", + "address": "22KdcR7FAQefHADiGkn7cxSuLV2tMv52gBCR5DwbX12Nvwhc" + }, + { + "private_key": + "915786db86d62b33271fbe8396115516f561449e890be608f7cd09260652170c79897afcbe82168ec49073c5a500cde1800fa050e75b179d908e8a3cd64d3c66", + "public_key": + "eed1f591aee9cae38d39171a02d1f697694951ea1290762daada1c8d0b42f811", + "path": "/0", + "address": "26GjMSEn2PmPthY5vpiu8K4arYpToJRyneJAK4t1t2nW729m" + }, + { + "private_key": + "15ba93745cf7e116504165b962870cb88f7b5d3b61266ebfd2d8a9a62ae01f0e67da02693bd86def07828ce871ba6129bc421132a24e913ee80b951775cb4413", + "public_key": + "94614010d4bc6dd4ffd0231c9cf0fac868dd03c47af9d9da3b876c7586a3164e", + "path": "//12", + "address": "24E9ZYgGmbo4P1WYJkaxyx2G9KiYJ7CcLZ7pxEU3YPsu2wXk" + }, + { + "private_key": + "a7b96e24cde261fbc8a5f20113fba5066ec752d9eded57a2b7519806f948b60faa5f9bbd4e4aff3d8e9fea6cb82668c67c5469f5e9a4b8b2e954fa0fca85d41f", + "public_key": + "b05d817e0d1130b93d667c370e5ad30dcfaa1488ebb482e9164d63b5603fff09", + "path": "/soft", + "address": "24rqnoAYCh7b64C6DX4h8JS9Vxzowxu7j2skTTYRwJcCt83D" + } + ] + }, + { + "seed": "ee66f26259aac5c75cae9f9264ef2b0182743e36dd7e05b8c36c4d8e9d1dcb98", + "private_key": + "5c2ede874b150d27a030d1be2ad7a676c90a85b5bc5f60bacf7e3f6310b2640a0ab7026d80864d97c4c18dd40e8781e62d11e723485068b50d7c2345f7999a5d", + "public_key": + "842be4217987b23d80ad0058fdee352631180352b79bb333937bc69002ddc42f", + "path": "", + "address": "23rtwkfkec22E55K9NNBrMqM7gHoawrSR9podudgkEe87D2X", + "coin": "ACALA", + "child": [ + { + "private_key": + "7fc2b589f2bc8363a6347b302d824b439efbd37571198d9cf38048400269a00c54d628ac003fb6abbfebfa3d3938df0a52e04709f6f1ad42b6548cfbfd1f0e3d", + "public_key": + "7ef60782d6b5cade6df547060d57a52d48a78d32bd338c043dbf571065a67f02", + "path": "//0", + "address": "23k4hrFiU19uE5ejWoXUdrssZaSBr1EGKGVvzzqfAHYhdxyj" + }, + { + "private_key": + "f65bf4ed1b13b9ae63f6fa6fb2290648a152aa72641444bbee4a3cc90c342d0266ec9dc7082671e45c20023590fec3d1011065c48b4e6fa6ba4eb8b629002e70", + "public_key": + "10df4b34bfe6e6ffd2c7681f7aea3bc502c7d6a8edf197e0f72e206580655f72", + "path": "/1", + "address": "21FigcxzvQUvbL3FzZ8jFg9673XgGDf4ZZWDxpQw5DEopCab" + }, + { + "private_key": + "f5746e53c44526f626eb0d6f997ad6d58cebf6b6ad70775af2b12ece698bd40bbe445fecdff6d2c5a2d5fcfb230f2a5abe90e3dc6d14f460020619fc21cadb4e", + "public_key": + "0626ccd29b254d4bc5e304a8aadc1af87623b625dd86e437743c4902275b2a66", + "path": "//hard", + "address": "211fQ6Vq8iVibTQ5yfeTErt2Qc3p47Qmj5whiaKcph78hVxk" + }, + { + "private_key": + "c75757a0067feabf2a0918089162d2ca29ee763c20ff638abe9de24bb0bfdb0bdeba4b61812518a88dd03b5a98ec988f42089dd6d9693005d191bd0ff4e86dbd", + "public_key": + "04b344708e20a2cad0abba6f039400a92c69d0133673c7e1f70300c21e776455", + "path": "//1", + "address": "zym2jcAVppcAVWm5rcDb3EGJuxH4yoVvtiiWb3RuUe2a4pq" + }, + { + "private_key": + "b0b25fb1f02fef90b09c25afe284531506817f51143c922ab8cf2d863a30fa0286fb28e7d86ace65c6cac24403a60871576c1a6b7167c87a4e39c2f69f96e6ab", + "public_key": + "40715a1484c8e93c6d47365dfcefb5613feab7dd7e21b048b7bbfd531effdf3a", + "path": "/0", + "address": "22L6KgE6yeJ7uCMbjbb9YtkCLG2E24UWtufqgAFK1NTNX9nQ" + }, + { + "private_key": + "d1b647ef608c6f22f7f8ec3f1131ae1c75e2c373fdd775ecc028cb7f11b2710bc1a9b345361109798b89a1b8005eada0cd7e23240603519c932012236b0cc927", + "public_key": + "e85110442a4e43120fd7e70543834f43b795eee77fdb355fab869b5cd19cf879", + "path": "//12", + "address": "268Cmx68iaks52zoXKiGFN2TmRU7JF7b9wpKKnFK9PzQxSEc" + }, + { + "private_key": + "699f2e78abf419c982f71d7861dc8a1761d2b0181e86ba0a6a7f624842bd8802460ff298a9fdb218e501f3355ebe86e3c988404fdf82fa00ed2042a0da1dfb1e", + "public_key": + "6aadc41fa01f5b3d5a1d3df00b733a2bcdb2da8d5701688a7c08ed0c5bba1a06", + "path": "/soft", + "address": "23HUHEiMs8PJVjGNith47EdH9nSsMAGrdXE4gNeZxQC1j9Dh" + } + ] + }, + { + "seed": "0708cb19a275e65ff11aa6cfdb4fafd080388a85ddbad5077e196416ae637a1e", + "private_key": + "0a90fa734fb9190f1ced07bbe5e3e611c3218f62fb15626c21fed6834b1ccb099ac8d1771876dea7a17d61ba4807976e16114a9eb5ab772810736f6c33b5f2bb", + "public_key": + "6abb909d3acfe03618783bc35b365c894783dbe9afbfd853fbf781d55e02da4c", + "path": "", + "address": "33A8xuVTyQPXRMJSzwr6KevgdeXfN9VYhU2Ndv2KTeFmuq7X", + "coin": "STAFI", + "child": [ + { + "private_key": + "bd3ae942055fc0fdbfcd59847a8b6b8b45db06f3d69c1427b596ef1c1c0a980e8511a924aa7ac1b1d6c450782326b2c28912c5e08d838e689a147252c10d9571", + "public_key": + "60c6a2edc5a9728e0788a2025696a11b1e64faae71cb581bafb765c3e6f27436", + "path": "//0", + "address": "32w5mtdJrN6v8BTGNnAyn8urhF4JT3h1a2oZh36Lm4DXav4P" + }, + { + "private_key": + "69f209509aa09fecfd78434573fa088a7a5eb6a87b552e613f90b4e1f0a83e002070ac462e7075bf01ea5df59d7bc56325190e2ac9275d44e8f286b4c2b20d7b", + "public_key": + "dc2ff34b9e8989de6518ed9221bc64bc5cd1122f0949e12b7e95b45589c5b32d", + "path": "/1", + "address": "35itx1x8yc6Wdsqgn79RV29VLjFKN3bE8sAux34NW8w96v3j" + }, + { + "private_key": + "ac6b57e32c89c08d282485e2a5f05a171572a483ab46695490ecd218bb70d10b98e369ea510182630ff463f9880ea705fdf014521e049497eb7c022a5b798a22", + "public_key": + "c0a7b12488603b4ec4af25704bbae1d51ec0865b7bfaf5ddda4433d018e04926", + "path": "//hard", + "address": "356oBMNV1LTvEXTLz9YGwGHREnNkGyqyziLfcriLDuaTcku8" + }, + { + "private_key": + "d0bea395e6215e04de4ed2d2f09030e5b2bd6764a73940ab3ff9f690090c820c944f65463d3377b4622bdf5bf73ee091c636cb31295463d3041a493541d655d6", + "public_key": + "f211061c8a3e4b2f6c1475832f28901d246e6affca8da50cb075421667f8af48", + "path": "//1", + "address": "36DapGS8Qr6EFvbTEd7CrLzzarMMnh338mcLZhqKiSjJN1g7" + }, + { + "private_key": + "bc9acd463e7e0ae982280c32495260fe9a45e83f3b2d6c0de6b10f164f9e420fd977747bd8b53471c525bf8abad5426edab2e5d3e973aca99717a206f6853794", + "public_key": + "eefb5ae0ebbafaf5571f402b07d61708bc5a3c0b06956b3ed2d2563c39aaa15f", + "path": "/0", + "address": "369YEb7G3R1rspvqFiGZzdnGuhY8jCPKtKZUwoTFvnzHCJ16" + }, + { + "private_key": + "20519177f84a01bff51690492aabf5c6cc6e6a9a491f8315a5f4a0f01e157b0da22ef538fb96f1f5944200f5ac460f7a4ab52c2ad05107e17162622452a8d070", + "public_key": + "36f832063a424af39118981403e15fe7e0de4deb218dc8797f02443d0a20c609", + "path": "//12", + "address": "31zGV8CRDnzX1A4NpWteroYP6zsoePqqh5Dqm12dKLgdb8nh" + }, + { + "private_key": + "52d2b220b0a92e960c224f0b38c7f77a50a1d5cab1b461c87bd6cd53a198410a716949ec7c70e83b6bddf2c62696699c70a11482b22c2d66f3f4fa7fc80a755f", + "public_key": + "82a7dc96b2b814b7f4acb4c33427f1f571b900fff65e23b59e94c1a706a7db16", + "path": "/soft", + "address": "33hWG5kPmLibhowL6gLe755nxk4mdUue1mc755sCMvuk2UKr" + } + ] + }, + { + "seed": "1470e3ca250f03feba5e24af412295ebb5d628a5b1d4ad332d9472f8d105fc15", + "private_key": + "02fd38702532b2a8cc43b57e9ee08bcc27235c2acc5ac986d0c948c1e0bf130f1d2ed167255b0b93f247e171358fa9459447fcab60341f4a96c62c60b3572a5c", + "public_key": + "d2d93b42ea583da5273f5b5b14df30b4025b7eb6c88c77ee65f1f0f1b6479709", + "path": "", + "address": "5UQUxhZJUvx4ZvjJQVucVVdDoupgDaHtsoHn4E6QD8wEo4kP", + "coin": "CHAINX", + "child": [ + { + "private_key": + "b09e5152be47891b15ef3f3b21ab4f99dd2842d07fdc27abc9a9cfc491e4a60c04f429585e3113248097d07b78022f0e0d3a7da9c81e5e6881cfcb281d73bb97", + "public_key": + "84d301957354701f55a85bff2345310a809af24246cec523931f966032017263", + "path": "//0", + "address": "5SeBNowkPcuDpeQpcE1VbCk4qyH4qLrqap7oGA3PJYF6YKNW" + }, + { + "private_key": + "6dd3d61346cdf614d4dc0d2e9879a1d079c038f21a4977bae38162724a45de0655f3a481732a4863c8c6e3c1f91b79cdf598588e0b1e6de8548dbd241fcd4acd", + "public_key": + "ee8ffb172b07e0ff6cca4932ce2318a9a9ae187ffb0032675165fd8ffcb4d46b", + "path": "/1", + "address": "5V2pYPJ7jb7GqWwiPPJnUgTgAzMSYCDvZWwGSCtDN7VRwy7R" + }, + { + "private_key": + "b53a4b11ef92e0b5e690e45eb2df2f1f9f990ba7c4a7e8dbab8daf06296ccb08c90752232a4c8f2f690fbe03af3e3d3da89fb49d6f9c7282747be949c23ca352", + "public_key": + "ecedead3adf0f3744c73e4111eec2ed50f6ef6cfdc64b2dae689366dd2ec1346", + "path": "//hard", + "address": "5UzgMKQz3uFEmFfBXjq8kvAASKvk22fGUNzn1puXUds74r9n" + }, + { + "private_key": + "b6c6003f685c5169f248c42abd34a6922be6ab942e934575346fc33a6d701e09bcba88c6430f05cda30e3e9d3335998c0a9d9d1bb72074d8de87f6bf6d5cb0be", + "public_key": + "c272b2facfd38d9e5b99018b589b3c1c056a1bc59b3f6f3bf651d5403ea0215e", + "path": "//1", + "address": "5U2yjfvCFvj6Bhvio82xUq4SbHiB1s2G8xoLvHcriYKBi2rU" + }, + { + "private_key": + "bd6d60005ab8f2c7deb93888d4ac131b885d3e0cff80e4e120f72710ace1650d535dbbc80b6bb546d56e1427d39a2ef1a35b087eb6f999d1e91d2afe13f2f8eb", + "public_key": + "f8499a8973b5212619c9720b9f550b2aacf3588e05b934448a308416dba80508", + "path": "/0", + "address": "5VFa7b4WD9Qy7gEfyH9fr2djzwiExYMt8mqWZyvvXSfGjTz7" + }, + { + "private_key": + "33cb2a166da29b2713f86688368519f25184ece07b1fde4e17684c633a2d4408b08f042d8cf5f89daaa09bb4ed08d8eb996e9098073233c81849e0c92de57275", + "public_key": + "4cf0549eacfaa86630d12abab15e558d7ddec6d880dc866bd2cee6e08b8b0d7d", + "path": "//12", + "address": "5RNuQXZBrGQ5zLaiqS1VyxKgDtT85hzPQrPNbWD7hqWDFnr7" + }, + { + "private_key": + "21a621902418af1a15419bcfae3d7dd09dacfd5a31322290cf2721499292930fc536f64ac95bb7fe962f040f70d69e34251a30807647d76c8fca5437692d7276", + "public_key": + "68bf21943a826c23f7578561bf3bc625313f4a1e1d221287b13fa48813139677", + "path": "/soft", + "address": "5S1N8c9eZveeXNngBcJmHwjx1KqHrNf54QVi2g228N2rzLm9" + } + ] + }, + { + "seed": "d8554687427b418c01bc3cd76b0583c5fb9c0f78fdd607c736d731bdb3be8f30", + "private_key": + "83ce6d1514f19bda48f62be36b30bc1803533a06561182bdf2be3f04731f3a0c4214090eeef9025bba179c81af96e504f9d9308a10999abfda36518ff250bf1b", + "public_key": + "02ae8ee9a9de7ca9291cfdd3f64f1e672d671aa0db55a7bbe88b1fd351c6145b", + "path": "", + "address": "14Wx89oBvZaDTbVwLMMCaAK39zj2vGB6oGtYNdXbwF9WHUk", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "b132e9434f8de9e4c8ea0bdbaa646681436226380d1c08b1f478160fa5df4c0ea3f8d0b80ce060ef13c8eb4afbe0f4456bda53b07bc1e52ec9db05f930bc52ca", + "public_key": + "8ad4f66e45cfdf95d89474e82476205811e83f04eba1ef261c45eb1c15bdc50e", + "path": "//0", + "address": "1492sXiu8BSLuFdjoMico8eecJNQY279GRxub1XHLmcCWPLN" + }, + { + "private_key": + "49eabeb71fcb4cd7519eed0bb7757603ddeb05726154549853adadc2190f2f0143698c01e829b888ba13bf08ab2c84edbef99494882a91845050d297f1ecbbbb", + "public_key": + "f0fd0b776a84b904a17c6ca1843ea98fd5e2d2590f0cf161c129101ff466b55b", + "path": "/1", + "address": "16SyfR6BViFUozF76MNyWLNuRmY8qVF1yVsKnqKvQcSt8HXx" + }, + { + "private_key": + "4c6638eb395b99eeb1e73d8e70d4508bec272163717201ea6267828e58bc160f988954028606c761cf7e0b5c0ede662e07bfb83e2db423e7efad3861bd11c66d", + "public_key": + "78eb3b423b9147dcd3ae16414cf35c376497e1d4927f3038cc46254839168411", + "path": "//hard", + "address": "13jYdDrPNeuSPo7u5k2W4pjfvZdaUAhRCrfE3EfAsaWbcnQD" + }, + { + "private_key": + "c11df9ef517c207e8354bf0f2995165ac701f194b42994db1cd3a3cba10ccf0ed99dc07ffcf124cc89538691da8a149ff35ddb577934e67d5cd82587b716584f", + "public_key": + "62c84490357195d152c2482110e549894a480c0fa5d9f026d3a1fc58fa5e7704", + "path": "//1", + "address": "13EXBiEg9VuejuxhS26DsiwK1mEcamq86VzCFAGNBUQLygJE" + }, + { + "private_key": + "3ebfa19428662388b0f2db72b45a52e1f14ab168207600424ab10e79211de804c15c2cd682f2f2ad51d159671702ea2b8eaa6943ca561c23abd7796b778dea9b", + "public_key": + "f6d5f9275309d4a7fba1edcdddf27950bdf222762d9712260f1df48ec97c4e3c", + "path": "/0", + "address": "16aeLtkqZhKuWgot4io6WusxaDj3NfkUo2V7KpYRct6kFJ26" + }, + { + "private_key": + "c846932ddf71408ee3b2e702f55394202adc38634980c2e834e64f71ce721b0f06eb75630727d56fec51952a890ff8e9ed3651cc61a7b19c9f04357f9b4eede6", + "public_key": + "38a295f87e7b672e5e9ac2f15a64aa382dee7b2e59bb7d025e5e77c64e60246f", + "path": "//12", + "address": "12HFypSsATouxBBnN8oNLKNQFqPFb7eNhhoCcL8wdWGgij9o" + }, + { + "private_key": + "b0c084a3088ef62d3f482aab4a971d04ca4eae758fea96d536d31327f0de1a045d2defede21e5900894a94e53d606e4c9c30fe60393527438ce8a4a1ab022393", + "public_key": + "4ec8cbf00691f1a1c4462c224b23ae5808c769fc91195f3343ed8c3752081a18", + "path": "/soft", + "address": "12nJPGzr39h1GVpw7hUZN1LbdfYj3DjVS3k2GQJ2dLw5Vvou" + } + ] + }, + { + "seed": "06166b4a0bd083f3980f832065f0f1b7258b52d0e7db932b5582383cb346e76b", + "private_key": + "1e897cf29e031bda9b98dc8379ad9f14123396d22de3ad7b0116e38be929fa0f5d7af2b7ee391d4702e95ee889d530c531662d63545ea9be853cc2c896add295", + "public_key": + "e02f454ef6fd6010393735ae5ee6cb02fa2378a6b42efe14b802740432fa8b1e", + "path": "", + "address": "HeGHZNRTKpMbVZhx1wd3oFEVeZek5yff575ZYfUnqaDWnPP", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "5d20d916eb5d3a9b67d00216538c4cfd0ad297a119f195521ae6494401c8790c2b4bf03b18eefcef5d2671701c486f47e9b19dd9a04e045ab0b4d405c2bd7608", + "public_key": + "54f935562bdccc109c0bfa59572027919a9c39495ae1580d4f17eda63b8d9c5f", + "path": "//0", + "address": "EVja3DsXmkP2emFm3oMcKzuENS5HcZzUvcwUk21cp7KV3HE" + }, + { + "private_key": + "71f0721a3e858d3800431863ce175bcb94f4c5b97311f7d433807f14be0db8047bd336c82d4161818ca5dd3f6ccc18e08747e3f41e1ecefce35171631fc0643a", + "public_key": + "e09a2e58679e8d589944cb04e69ad8d4d90762015179900eddc92ef21ed36e53", + "path": "/1", + "address": "Hep3ad3vXU1DBJdDfbdaUsNUyez3GKjUk67pm9vBzX6jFB2" + }, + { + "private_key": + "6b40055af0ea9e1e6711123ad549ea4879721981e21e14b4f5a25f66533fef0e721d6ad8e96c4c6e30007b0cd6844bc48dac98c3a6dfb6ac54092a6f11d6c9e2", + "public_key": + "bce0d9a0b8f3eb1854135c411c9a58dfd83114e09db637b7738d19ca51eef522", + "path": "//hard", + "address": "GqyKCNyLrXC33zUfhzcUio5ZzqeDHfXasA2kripMiM76fX5" + }, + { + "private_key": + "bb1fa3f612d7e14ca2105e5187f3c406bdfe7836623c75931c1d2ef19854140c3c12283ef3d64d292358d48d50955e4763fe3a6a7f784d16b9e0446a6cd54d52", + "public_key": + "843a7c93ff4bdc6324a6c06f854159cdda10406c7e5ac8475e0fdefa6ecb3333", + "path": "//1", + "address": "FZhDHryGzQxws1mb5RnywKjzqixMfaE3btd9ykFNmN9dsRT" + }, + { + "private_key": + "354d908178b1479ea02e7a7136f2ff79af2d65a2553c93c549142750d3656f0dc8541e4462c6e0be3425702607bcde8089f9dd1bef6a820d2977eaa41f794af8", + "public_key": + "429eb4e6113dc0d3ab651a580424b520056465870d7e9f98fd5b2bfe57ea0e0c", + "path": "/0", + "address": "E5fpjqLTaPvG9QW2yJjSEyD5yiBgXQdbxGAkrHZfnK7jxux" + }, + { + "private_key": + "8e98a76d4ced92a9348657c4a8e43738965afd4b6a0079b133390bcc1c83bb0bcfa794a8aa8336fcf477a99043554ad6bdcfda5acd10b78e328b40299c706e10", + "public_key": + "1efb60c074db012e30b3b06b2b7735f4f971757f94eef33d00aca7e980e00127", + "path": "//12", + "address": "DGwdSnbbxNLN4UdzDUxGwsg2LnT2v1agwx17k6Qe88C4HRp" + }, + { + "private_key": + "c690ab5500c7e6ba06ed208eb436111cb0305a01d685656181c46668972f600f88b7020a23d72038879008bfaa076f92b575759d3d195b4dfdbe2667a4399fae", + "public_key": + "8c216f4d9334b7898a7cc875a388810507e6dcedfb09c2f7b7960abf5407ab49", + "path": "/soft", + "address": "Fk49soAfSvKvfNzEWjtEk89JfgRYrpanfnyWUSXs2hB6ZZG" + } + ] + }, + { + "seed": "e4efcc563fb5d27b93ebf7cc4996936a0035ce5de97d951fbd17b86ba5629ddc", + "private_key": + "f466cbe6cd676bba644c02d424c4365422bd8424de045c6e0722fdeee23f610afaab5aa32d7737df66f2ad1a55754afb3e83bca56c47208ffb049caa0ac61b99", + "public_key": + "142fabd4936c1030dbf2a6db9943a41cb799e0c530ddf7471b38c1bf24022c51", + "path": "", + "address": "31CfHk9p73CPNA5hEPqRJfwGyC2vGXgx44ufSnyGF6eAhCyB", + "coin": "STAFI", + "child": [ + { + "private_key": + "de3d6135bbc3e224f67789d7ef9b1eab001355a786cd34e274847a39fbac340895833bd8bff8f9c5d388c61d60276906eb5256d61e133b544638f7240aaa882c", + "public_key": + "5a7a6b20ed7b8c5bace1fa3f10e4e68388a8bbb309cdc14d6eb9b85bee365536", + "path": "//0", + "address": "32npr2EGZuApjbNN8pRpKvrE4BVY2tq1oZtsZyLHyDw4ArFp" + }, + { + "private_key": + "4c790e2d4a7b6692bf5e41c956824aeed582c44d9db05d6b14a3066ca029d0017dc76ece9be65799db9a72607f297ad10eed7a782c6aaf6f14a36efe269ab11b", + "public_key": + "6048245a359ffe5032393d7f245950d48822f24442cac2cd7a6111be7c86eb22", + "path": "/1", + "address": "32vSCScjZF1awoKg86bb827jyRgzJbjCb6pXh87hQoxuJouA" + }, + { + "private_key": + "c5a72e631bd63c9013b6bf205844dd8a6559cbf5fcc860e789dc3a1dd4e9d708c13c1b8daa45afed280e8c2ff7c16d044fa67a602b49c15d9941e13e2889ce4b", + "public_key": + "744e993068a4c787ca315bc32ab6893ebe72b97c3cd339427e9080711f1e247a", + "path": "//hard", + "address": "33Nh5EHJLnsc8zp4zRCy7JUT8LHCe7gXR59ey4ZGPsfhP59e" + }, + { + "private_key": + "04acaea0d08b86ba5894c7afe4645dbc7093504e343d4956d782abebf42af9087a158b531c97eabdea1a001ca7ef00de792540465a4967d01e69d8123b128452", + "public_key": + "dcbebe7255cf5bdf02a2ff480f36f11e0f03d451c46913475d441c840456793b", + "path": "//1", + "address": "35jdNHwmeMc1EPtGSyCQSDYpY4p93p281Zc7zjB1igiqYm8Q" + }, + { + "private_key": + "75ab4f33d8fb390322cc6cfce8f53aa5ccb2db373106cbed88c44d2d7cdaab089f57335f3259ef9af00e5600a90758112debb3df6537c8b1a585d99081a608b2", + "public_key": + "8a666d6e85d178df18939feb2d72f2ca4b098ef975096e2a3a51f7e767f15514", + "path": "/0", + "address": "33sfCtvZUEZ6df6VWFnGF22Dse9B79KiHSstTCTysxGnfEEG" + }, + { + "private_key": + "4b2fb831759798d14839c024f3940d2c73a92c8a884f4d4ca528f68a20e72408131c28208e98deb11457a1d775f4bd6a4ee40ce043519dcc2fd4360ab1f27421", + "public_key": + "ccc50136c69f329f0f31c473a624f839cdfbe9299d239e7daf007183057e6434", + "path": "//12", + "address": "35NgTj8YizYptPBdqnHCfaWVZYQGsjEmS5oXEohoi2bzu5ZL" + }, + { + "private_key": + "bcb985e05c61105d1265049d7dbe59a4ffead5bf62f58729604d551d5c33700d907ef3b0c7e436727c46d77976a78f7458c5e3658a20cb4e1b4a5be3ff1439b5", + "public_key": + "300be3697f1088716892e22bb1e599ce260615ed350b0771e30635b29ae6a04d", + "path": "/soft", + "address": "31qBzz5FeEXq3vAdc87R7pk5VhdWdk46FHg94n75fBaVQSYz" + } + ] + }, + { + "seed": "b41ae926ba19156396a2da3cab5b7429c969ec4008bf5230281e611698d6d041", + "private_key": + "fe159bb6f5c552b3c0e54a5e37518679d18c872f22043a10f8c9ac2faf5be3090c4aecd48e0df2272c4893b3306e733b02c1bfbe2a2455bffdd68a6504da5e81", + "public_key": + "12785d3b55be5fa368ff1d8e8873d06b5cb44bbd14d80e8c6d210124c4ff4a3e", + "path": "", + "address": "CzY8oYXHrmQATd7orMqYfE5pHMrNWiDxy7B4A5PWSH9c4ZZ", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "4fc7b7742571f562cfecaf1fc158e8baa1675fe6f413dc8636a032854afe100c702759807c598292484bb2300d5a149e916431cd80f7b34f18845fa6f3b81eeb", + "public_key": + "a2349ba7f20b6673eb78b59d74cab0eeb0824ed9cdbf5cc5467270bd42f13506", + "path": "//0", + "address": "GEzuKoSdY2GdAYyY3Z9iWgrmekHHsaj1EwPc3obSyJvtSxK" + }, + { + "private_key": + "e2e61188bdad2ba85b1a58aa58117c6a8ff929b16aaef09395cab83ef934cd0839fc0966897091ccae064c9c84dcbd8e53714bedfef7291d71977a5376e37a57", + "public_key": + "749c3a013a28a6754e7960365282c925e08ccc0f9bb2c256d1d115c73b1ec94c", + "path": "/1", + "address": "FDDUsgVXHWHhQcfcD79mRrGXifFjVjhW6UaX1QwmgsCQs8A" + }, + { + "private_key": + "3bdc5bc28399ad446eb7009da5b0f4e443c5e7bda0c984bfca92e69e4de02b0b212ebde75261b7285347ebda0b5985ea578f346f6c0cc1b50f92f7cb59e2ac53", + "public_key": + "088819e1ddd71026da911d13b7fda38c3ac9914ac3f46f98a76be53125e3270f", + "path": "//hard", + "address": "CmWLAsCv6U3qk54SGvw8ZFrMw78KWSvPCjag8EL4tH9DxMX" + }, + { + "private_key": + "7c1b1bdb126633e5b6514d2004a724d0464cd584c6a221f4f3ef8b29e36e7d0db270f0924bfda99e7d028a265d814a78679300bc0a9d3c49d6e7c53d9757ddbf", + "public_key": + "5cf43a0fb52260c5878b0246706ef37d5a927f905ff5a459f74ddde51e4a4f72", + "path": "//1", + "address": "EgCURknMHtne5QLfPtd9ff2fFq94HLkT8YzjYtpHk9aKjKJ" + }, + { + "private_key": + "211b3ef011603220b2b2eab0f7f8e6b94eec180a9992ad610cdaca3eed7ca00b2af1824bc597aba0677c53c9c5808860abbb75f0ac2cf94820d5eccd3996c4d5", + "public_key": + "b0d195bd95dec942314948fafe965a7fd9d7e55f0df6081b39a2d8cf28f1a40c", + "path": "/0", + "address": "GaACrcefPGVHKha9eBPhEacweDxFef4626Dybj2eMrYexuA" + }, + { + "private_key": + "0020cbc349613f75718d98791f02321c34dfbde413c83b0521ab50489b9d040f3473da2acf4db04a213adb12419b9910e9648a3c21d973815d91c46f9ec45118", + "public_key": + "a22ac83a440d144954b3e2e9cf94ab3f825db3fe17fac10f6a03241b065cb52c", + "path": "//12", + "address": "GEwz2d5gjU44C5SDzvP5aQHuCU1sx37gBuMvMr2MT3qPGbD" + }, + { + "private_key": + "d32ecdcff333bcc70ecd5686abf26397d263430d888131292a6c8d139b860701e751e22e650635129af353a25eac1ea211e54f7adc86f1550d12d31d68341921", + "public_key": + "96548d2e95bc0f848bdc4a7cb4994307d34436819ab46ff709bd4e2b0aba3950", + "path": "/soft", + "address": "FyRpNRhQ1cJPVMzTuyCW2f21E6fb6QAFqLwLVAW6qWAFF9P" + } + ] + }, + { + "seed": "8fcc935aa88b3f8811c0e0808c8b7934786a52b596af37a10c2f0acc52957287", + "private_key": + "d5f93af490f43d64b38d43207591f8dceffec12e88c1d418d8003bebd10eb30fc38842d65d92ee36ffef5ef599fb68b214ed3c3f4c67cedbd5f0e35b96c698bd", + "public_key": + "700b4df9e213ca4538550663c2d28fe5298726239732475c0b63d75a4cf55c2a", + "path": "", + "address": "5SAw6V7pdewbJT84uH3Axv8wXa18j5NkhyCCwqkev8KYjzLY", + "coin": "CHAINX", + "child": [ + { + "private_key": + "15a219d73a0e90545a4f5e62b3e8a9ef92ea87d3b9fbbb2c40e3460b58860f0f0c848215393e7a30116592b73f9ae21dd7d070bf57d56d6925782ef4af6367c2", + "public_key": + "6cdc133f8755aee43014d04f294a566a8524f684361c2c3dc15b76edeca35d7f", + "path": "//0", + "address": "5S6kvQjJTfvByLicNeYi2q93MBUFiUxCg9tRhxBckhzrBs8G" + }, + { + "private_key": + "e3a92239571fd493d6ee9e6e70f1a3a0af627ebffb82052a14472d5c4fdcf8059d39957fa4850f655640b6cc74cb7b47692e40b476a2abf5bf9063f548e104de", + "public_key": + "e87e9a19594c8504c7b830d3fca611fe0fc7a75febc935e559e52f5245af3b67", + "path": "/1", + "address": "5Uts6Hnv3VeAAJiDHztrKLxcAE5iSa91MQqmfffSmQgiPXQe" + }, + { + "private_key": + "e0f8025aaad3f6529dfba35aa13d6b2f0ab7f61d96e869aff625990e78fa930d90b11d18c2dffd304964df802827eef80dda788fca29170509c202c6b74d7f04", + "public_key": + "781532ce9b4f4dd600d01d4ee81c5bf42db2c8a1f1a9997ca3635c97150b1558", + "path": "//hard", + "address": "5SMURAuHoHQETUjFNwED1Eixpvwnh23ezUmyXtXJUutSea3S" + }, + { + "private_key": + "460fe4f8af9c286e45bd9066e14a0179676f3b14b37b5f464e95c9eda7999e098a6f15c4c6c1a7e90ff8c879c9343c511e30a1af3c4d89580f3058026979fb47", + "public_key": + "e6639088840baf424ddaef3bf47607cc6c010d69e82e40f71580e828a917d371", + "path": "//1", + "address": "5Ur6xtjPQYWBx3kAEMUgvqFmUA7s4K8SdirwRicc9WAVkZy7" + }, + { + "private_key": + "85ed37992505bc7b53d4370526df846b61fc87e4f4d347206bcdc8685a65f1081a38dd82cdb777eb49ecf8df034f2fcd89a4e613f31b003d20186157a67d3f6b", + "public_key": + "dc6957cd6fc84ca766a05c28b0d7e7c91e5bd5a7c0b370ca3f28b3284b80df29", + "path": "/0", + "address": "5Ud2CgLXBjcXYv9G2dP9xHfFSVxuqxzY1RWaZeompR1Z2MTs" + }, + { + "private_key": + "0a1ffa367b05a9910ef70ad26050b0609ad9cd04c335936c7f5f04e95f4e5c0dda6b63ebf0947ba8b2a66e34139e26c79425f514cce2493c3826050382f2ff58", + "public_key": + "6c4477f74a3a8824c18206998db8a6ab43fdf359e9d49b800bc4dca810534c1e", + "path": "//12", + "address": "5S5ytHkFnf64vPPduDtVkfyDCS6jSnZGGMUoZBNRfifgabX2" + }, + { + "private_key": + "4c66c603619b264c5e027cd0e2c182ebefdfdf74146dee202de28a1e853f2205191fb66a05fe805d1b3e1039c1a59728d37090d356f339b0b50cd20ec31890a4", + "public_key": + "eace26df433a062f47775b2efcf744e5ba49daf6b6d77c6df75e761a5aaea765", + "path": "/soft", + "address": "5UwtpTW4yxt7wDjn8qQAH4AGPyBHHu88zW4eZurobnoWMWNz" + } + ] + }, + { + "seed": "6ad6f920e226ddc6b1b682795ee597a261fb27775891687289a29b02e94779e6", + "private_key": + "fe8537b33a966ffe771363e190cf73ed6b6323c5d8a260f0ec5894d16195120ca53c33b2b0fce8c4482a971e3183c67db9aa3bf4e5fa9f6d4a1c3f32a9660d61", + "public_key": + "34508161acbf00f8639d113649d250a47777330db4aa7760638112a0c0ea775f", + "path": "", + "address": "5Qpcn9b9peZpMeN7R5zLYoeqG5nQq87aMuqmn76NCwsY17f8", + "coin": "CHAINX", + "child": [ + { + "private_key": + "ebbca084685a69ae21c22b2606de64de92bd4201acf59748a4f49c54fcf11c0d4756b20984d580d8e2054262d9a9404dbe62f818bf8a78ec9c6227d579d6b554", + "public_key": + "a021c71d5373de59b3e9d7999755559aa2721307e1ccff2e2568fca9ec17c345", + "path": "//0", + "address": "5TFz4zzv6T5j8jRzY5SkvhmJbFdH3Q8AU8j3JTvRn2JFAHDq" + }, + { + "private_key": + "fcd9705b04ef6499daf0509e4c76de72b66a132f226b03b3da6960a348876a02382ee64ba503a91c585b1c15189b1896f6177439a0ec2f116f41d8f6db62b651", + "public_key": + "7ab1013bb8307f0a6e7c76fe537be61ea75cc70d9d8acb3f81dc4b776addeb65", + "path": "/1", + "address": "5SQtoCxz3CK3e4RNXmQXKFpn36dvMoZ8seSLRj6BbXtoAJvw" + }, + { + "private_key": + "83ecffcc02a9391b406a625d8de458a5257f89c8677938a67f5886119dd0a90cd3e0534a1920674ea52a3d8cd4ae1acaf49711321cf585b7638d422ed0dd95ad", + "public_key": + "c06edbd42f9ccaefa9b4a2becab43231ab276b262a487feda356f8b66a4e8476", + "path": "//hard", + "address": "5TzLVwwWJz2sGuJZpmmFS7LQsF5xWy5NHjKGLTv88qavXppz" + }, + { + "private_key": + "2fe14f1a7f30aa8c48beb177e733d5ff1f397f6c1c0c646f64f825da2ef0f30ca09ce7a5232a6450183ffbe76cec8e2e48887560da647807fbc9ae6874f9bb76", + "public_key": + "4e1d07bcf890590138f5069629e4831d0da27b531441b797fcbe6bda72ad8361", + "path": "//1", + "address": "5RQSjTn9V9JdcAFSayVGRPz4DdAnDdC6gJkBt5Sbdpsf9z4S" + }, + { + "private_key": + "66c56a22e03a2019fc2c918fca37d3ad48ab15df4b8ad6850d60c03792875c0b9453b4d2045402e01c7339aca183f2cbb5548a19470e8de762f038aaa8eedbbe", + "public_key": + "84fca554c1eac957331dc93f4f416692706371f82e642eb91d903f5f38be053d", + "path": "/0", + "address": "5SePkF8bJV9QWHLYgJHFb4wn5xRRnbCTtuPUJPvMw5AM97kZ" + }, + { + "private_key": + "e3fd24b7f7b91a37431ce4f564722ee50787c720198603d5cebbc41155ebd30eed0d32e2d9f25c3fa0e16b91c6bc3616008cb9159cab4461a274c03c8899a2f6", + "public_key": + "b4f6e5209661e10218bed7100c7d3523cc42e5dc6d63c044f20c7598669f1279", + "path": "//12", + "address": "5TjJLUJasMDeSiryTrDPyHPZDnbchoLt54BCMTe9zvgfUssk" + }, + { + "private_key": + "fb7177fd6d1507f2309cbb1350a3e3a591e18aa473beeb5b9f2115d36f15d402e7201fed72905bdbe6e2b51ef521c52831d4cbcda4a5a1e10e34d94b539caac1", + "public_key": + "38c23454ca09200ab9fdfd8547acadaf79f67084d2c566e139d9eb8bee4a0f4d", + "path": "/soft", + "address": "5QvSkFG8vnNA4Vdhb9Dnne6742dMbPcHFqcq9W23NzYjSYWf" + } + ] + }, + { + "seed": "042e745dd88ece8bea4a8fdf35885b2b0f25dfbf6b4753ce398a03719ca35ea7", + "private_key": + "244380313f2e6ec68154b426875dd89a5829537748d64b48207498c6b852bb097489110c8445e637623e8533e38192cd34a6ea4e97817f67ab208b609937ba29", + "public_key": + "c46df2ab37d15a7a2a3fbd10683bf39d7eaa389797ed143bcdb368f3bdb19832", + "path": "", + "address": "15SZ3iJ4aDNBHAoXTNnyxm2kuNDEo9NB1vTJbEaNE6TZzNBD", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "0666a50081dc170f50d2ff2d384e037dcc8dad2d8ec1033a715fe4c362c2ec08f7ad3fea6a87d155b7f375609cec1d3b96a15296b24af9d6ce17ce9cefe53dca", + "public_key": + "725856c79260c8d98d988a70c9be7ff3af5287e1b7178347d9c157dc5094e97c", + "path": "//0", + "address": "13avhfDZ9kzx13bJP4HVQJyud8ePHAQCZ8RXXUeXRQf23dPh" + }, + { + "private_key": + "0375d6863c61399eca620955af5123308abd820db2cbc29d2688cdbc1c6aa9053802969e7b896d7fa358ad2dd4697aa2505f1e6f90dfaed124002d3ef78c4a54", + "public_key": + "ce3447876cc38b4bf8a0faa4feba4597481057ad5e3e76dd3cee83f054088274", + "path": "/1", + "address": "15fNPt2NPGtXPDg6zSF2tqDdMoKoP1BqJw7AdZH2HCuhfRTi" + }, + { + "private_key": + "43ce998872c79704c239a48f7aff4ebda10ff3b7373c8cc8db6016a48d79c809cba1ef2df45c6301eced79cc07674c75cc8c28dfc56969ea5cb213115d946db7", + "public_key": + "a009230bcacae72c21439e4296160b37d7298b32460aa33c0d89adc9d3173262", + "path": "//hard", + "address": "14cqNo7uqvVsQhmFTF8wzkNZpoGg1Gcph2xUr6YcU576XCtg" + }, + { + "private_key": + "36e1b62c5ac3a2e4bdf136b89cd2936e207b8f1f7dd87d73ce9c53ac4314480c18cc90522fc8df27dfbfe474bb108ff153b3b74eff81fa46c49e9949de1566fb", + "public_key": + "24dfbf1b1d9834d547e74c59b17f9e1c533351a7e74cca6850538cab95adcc12", + "path": "//1", + "address": "1qMC3fCWyagGUW8kwuavkUEhLsvmLrefzT6FkQ4BzwNMr2Z" + }, + { + "private_key": + "84a94481d2d286b5582217a9fd267c3003a93f7776518f206bf4b4e74ae3eb03705187f9a16e4cdd2af1acd10620b23e1946b7ec08855583cfcfee6f6b2a0302", + "public_key": + "e298b8ae087cbac12e4541b7e9192fbe9250dcc208ad56f2bff3dba56d093b1f", + "path": "/0", + "address": "1687C15FrvZemedSG28AqM58646GQP54we8kYnpsRArVpB4L" + }, + { + "private_key": + "4cb1d3669d8034de7a5885f7cc3623f254d968a46b08a0261d4f79208cfd570d11c5bdc9cd3a742acf8069d1bd0f7a360069c2511bcf98af185845dfebe4cb39", + "public_key": + "72b9b175080029a803065b5530b8b34b93857193f5ad2926f647b80c4ef3a15e", + "path": "//12", + "address": "13bRd2ucAoXsHZ9sH3EbfWbKByuqWcmWkj8jJwZW7H3zYna9" + }, + { + "private_key": + "42c6c56cd636c907ec29f3e3ca886dd601c708830f5a6d6348152b07c157770a8aafc11215bfa98c29cf7d96ff41616fa76ff32b4855daeb5d1794498755921d", + "public_key": + "0e28c4c36b0b4118073ac1f78bf7b4130960b8b16bfd38ba00e77cd8077f140b", + "path": "/soft", + "address": "1KZnJvtaq8X8X27DiakMBeR1Rw237JBQ9MygULVvHnaEFbE" + } + ] + }, + { + "seed": "2aee84624a22d65c4be797759ebd1d4d4795b56447ea705daa19cc1b3d766c1a", + "private_key": + "b34fed59b86c7e4eb10a7bf4e827916b90a48bdcb801c657a9619471fc876e09a5ee539f0ec2139a69180bc11e23fe3565fbf3bf439f74fd31bcb310988eed22", + "public_key": + "0c177642e9e36a99767b7b75131ef0cd31d13ca41ea0b2a5d20f274e7aa3476f", + "path": "", + "address": "219T8VMQj5HZZQuttT3cs5Cuf1vJjNwL1M82RPn2tZ8N8Dx8", + "coin": "ACALA", + "child": [ + { + "private_key": + "bfd61d0d70c28dcdcc5530a8f9ec409d932fec4c5c662f3c8be504b046d47c08ef29ea7172390f5de57358c263af3c368c789d8ba8bb74d3e04781c6f904ce7d", + "public_key": + "7832234ed77db75aae092676af1c5a343464abe24539c6cf389c8b76a876943e", + "path": "//0", + "address": "23bCE4BDfViMTgv8Eb7NvMPbHTnzA5fhLjv41vkQydKeLG7g" + }, + { + "private_key": + "2310451aa2dfb8793bba33b158ac8a7138eb21601d45a2141931ea1ccfca5d009ad3b9b4ac1dbb07995695f958de5020a9e75abbf4deb2c302bc0fc3ae704051", + "public_key": + "1043f0451c548db478ac402cfc68c160b93fdb3d257d2d2782942b40e8722431", + "path": "/1", + "address": "21EvXutvQTNGiBzAZya6rYuMNaz539BUq5aJB7t41wukDyAF" + }, + { + "private_key": + "291c5003935884d497b871b466721e67f0ad658acc16ef196a397c08532c07087bf0b82916795f1d385172af19d0a8afef92c77b7ab0c2c0a193b525ade3fb43", + "public_key": + "5c5c8915be47ba9f1dad71e85eac3f43b34a316466994b7aad6ae16c82c0690d", + "path": "//hard", + "address": "22xhUnRDey3NVCUiW6tMHYswhjbvHNrCgohfVZHvbofXkxxj" + }, + { + "private_key": + "1277fb0df44621b8a9a71adfaa65a63b45ededd9fde05c7038393c266bf0580b9fd66ac8fbdceb6050e137b0046e41668afa9374417ebaf8918054958f5af1b4", + "public_key": + "7a798550507a9fae62b751064ea916a564b0fecb84c38b88adbe4e0a4c6b1d73", + "path": "//1", + "address": "23eBXWQYw8cU6KdAJeuRgkfkGaKG7QB6RmZ4AJMqpAhn4ZZc" + }, + { + "private_key": + "d884fc2f749bf93bc8c2875c2e524c6820618f813df9a16c59e35d579ba7f90bf08046b45e535f7a96b59f93d64d419d3e904ec319d5ac436dd17cd80412b5cb", + "public_key": + "0eea16410274c9174c928ba7cce449fe0a5e2bcbea091f6e7dad118bc36bec4f", + "path": "/0", + "address": "21D9o2aYs67oWaehzWFifxfnMJdakYTG2jErXbSDRrWvnfMK" + }, + { + "private_key": + "28b5c1a616474dafcc05ca041e975d25656978d0ba43bbb0feaa07bdaa68440f56c4bd82ad1109de84775dd1498debf9fa78525808f64e6d1d4ceb062d5d8815", + "public_key": + "26fc4dac216a5c5192f387220d30b92160c21eac0d2433b746a4b218f203c16b", + "path": "//12", + "address": "21kiMYdWogsb4k5wPAmRNx9LshKPN1tkPfAaEbyxYkJAhSWN" + }, + { + "private_key": + "4b95a91cb2ea215e75290dbc214aacf79e25eb30348954d48bc9001409191903f47f711d6671069d819c41a58ad4ac2cf1f645d213a78885c4b61c0cab077850", + "public_key": + "dadd35fc7c93ec896092499c602cb69a99951cbc7b5d88a05e7a9433609cb055", + "path": "/soft", + "address": "25pZjkVo2rJQiMcJprFZuVr5chausjfYA9PC2p2cKKmpYbRN" + } + ] + }, + { + "seed": "5633a24fd0536c66ec5f17b0a91b8bf497f64353f86a54cd4347cc9e9c992f25", + "private_key": + "581fcd3857b6f78df90de9700c9a731e7e9c0fb5c8dd95d5f13784ff1290760896ded7ea00c12a8e83fa0664c81ef1125f824055a2f7dd08ad85ad1599b0b921", + "public_key": + "de6cada500b0069ff679abcd5c79e8d37b002b5322cf89bb1ea46a33edb3624a", + "path": "", + "address": "35mq5tZ26wV1DnZUqKSvcryDfMAzy1Jk73zoHkKDQPFLEiBZ", + "coin": "STAFI", + "child": [ + { + "private_key": + "2db3126fe083c25640a293cfc5150681ba34b91429d051fa34719a0632838d091ef77835e0e034c8b0d33ce16005b5d427584a90c609c21fe5da76fd6c19a385", + "public_key": + "d0538550577af153557c7f01d685468e2a5ca019c8b82b315b7bfb12dd60115f", + "path": "//0", + "address": "35TLwZ2FA9wCs45du6u6Q63rG9ANDvBE2B5tK2xd32Q6iymR" + }, + { + "private_key": + "bda838b45fb4fbbda3b783bb49d2f692c160e833d75dd6741acf4d7ec532360ddbe89ecf6afd0f0b0040ed118320c12ced2a6c267acb86395ad56d8c96e8f0e7", + "public_key": + "e6e817a2fa9d63f3f950038c077284eb17a1e5a1761febeceb2d9cd425de6e09", + "path": "/1", + "address": "35xx8Uw5R7uT8fhMRZnTdwbNWBf7mEYSXAmSErEixaSdT8Gm" + }, + { + "private_key": + "cd1f7b6db881e4ebd1a265b842fbe5eac3875bc2f7f7a1f5ef2dad246c8c1f0cfe9a7c3bd9924f7efa6d5dcffaaf085b3635b7eca0109eb88d83d986f4a4aba9", + "public_key": + "72792bc2f26439d4a872008b50eb7d78193ccabea9015ce4a61e61cfa95da352", + "path": "//hard", + "address": "33LHdBaEBTDTeGtuYVHFbhx2KwTZsh3TGHNDc7rFG9Vz6WFX" + }, + { + "private_key": + "66de1ee84bf1d7edd4c76f136a252727804f0c042fdb5b9c3311a9a1f69a8f0b176680c7d3cdaf859eaac15c1c81f6af886caae5ce886d4842dea79eac9d0181", + "public_key": + "0a035b6878e1898f02daded4932ece5bab70d68f8bf01c322f19b41f90113e3a", + "path": "//1", + "address": "2zyKeTSUdtyHsi8KLhz4MxJGbEcWJPmS85XKe9aCoDeKAqAn" + }, + { + "private_key": + "779501a1d27264be82be54b4999cd8d9ab9c4d88c0389b4af9b526ebbc74330a7adaf06ba3072fba0c81ae7ea8ee5e4e3be3296719526da189bbf0fe74991b9a", + "public_key": + "6a60f7265461bad988c022c7099417d6bea8cfde1b09756c6b1b1fa770187423", + "path": "/0", + "address": "339g3uvaMJ9AqFgy7nVFhAFyvByoevhZ5K3BvCRxgudA95ib" + }, + { + "private_key": + "a8ee9b9f8dc60d58220213c25e553de2462dafd7cfc443521523a16ef282eb0ac1974bc66d0e143877c4ab860b60ea7c6b3f06d2cd7a8d26bfd906f1bc8ccd3c", + "public_key": + "f8b7511cc32e87638afd2ef7007f63dd97bf795cacb749a4ec26483923b3833a", + "path": "//12", + "address": "36NJW6Hi7HZP88TQbjyLujKcgvqfY5T15JmPErsSb7UbHSRs" + }, + { + "private_key": + "e23d0a1be4185594a64ac0d815e5152b9694d1c4b5dc7209a78d5ef3398b0000158f014d278a060d11fab1f702ee7a5727bf8550a182613423c937fa3261bed8", + "public_key": + "6cad7b5cea24b266b4144d5903ced2cba7386f31783db3b1d2af6e370ba91453", + "path": "/soft", + "address": "33CgspGbWTinPvHVBY682ef85pQAAz4dFtHRLYbAwsnZVnzX" + } + ] + }, + { + "seed": "3d0eba76accfe5bba9a77abf068f58cb3a4b852587c40ae487b3a3398aa6de0f", + "private_key": + "9fe021d31dfce830a1188a29bc232d2b4c26240bbedc7b25a47d87cd5d26fb0f0d0cd3d89465e21939bf78225fc40dc06e407de260a60d76460cded7f1e1faae", + "public_key": + "bc9bec2a89ff85e4d57d12cee9194542dfcfc5e93f0b5dc53ef23990a8a04c0d", + "path": "", + "address": "Gqcqbtd6nUMJ7cYVJdyQ4yCwDZLVeKQ7CX4CZL2Ax8z9GL4", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "353a17d20254e8832c8ab06e5bc81bf475d3a5cece49492c90c3c4b97c2c2f0d821dee55511db6230dbc5e7f328b708c7a943c873f08c13b5ab094dd75a79c18", + "public_key": + "30218005c7b2f81d7a47e22f09d9d3c7fba09a2f497b278d0381d283a97a5323", + "path": "//0", + "address": "DfRmVKbeaxBfDXQCGRC69Evm7uKoSHSvNnTq1ATzvLF3Phq" + }, + { + "private_key": + "d5fcc2dc6bd2296aab465dad229f0c721eb27e76315b973806edc9c60fd8a80241b391eddac38b0f054adca5961c5862bbb1140d07f5390e2847b2234bbb6296", + "public_key": + "0c73ba07160e6c33bc79e1cde068fb44c089f4710c5c0b5dbdc9676ea089197b", + "path": "/1", + "address": "CreUEh6PyvaYvwGVtaXFC8xZsD2mVcHkW4WKWNH4TtSwSYn" + }, + { + "private_key": + "56a09e9e2cd549a892191cdef790df1318418f3ab2ce3ae75b8798c66077610adec00ebf6b4e01f93fe0f1bf8b79655285f480e5e069beff7a23036b76f58e46", + "public_key": + "e65e753bf807c178055d50e47122f3db393dc0bb11017f5dd3da6300da591b06", + "path": "//hard", + "address": "HnNbEqtpGDK7mvdyQwEhUXmoXkz64GJJpDgtD1T9KesaDqf" + }, + { + "private_key": + "a4ffbd316675e3231804ba8581a50ab3065c718143db558895756a2d251cda0e694f22ee4c8136b6e5500b47b9a0ab0d6ffa6e083c68285f78596139e0c72ac4", + "public_key": + "f852bea41f48dee9deab5f8367dac95e1feb9c1cc4dfbcc30d3dfda253707559", + "path": "//1", + "address": "JBuyR7AsU3Tj758w9ChSypYg4i7Vig7J2m9Su9mFfm6VooY" + }, + { + "private_key": + "d1f08167f0f45baf894fb720f2d8e304c6a9c7f88c843bd05ec34658c184ee0a4d3bde260c75fac52f52fb04f8ec0143df62d28542368a38862ee2f9b56ae03e", + "public_key": + "403265ce21329e5eb5aee76d6d73f1ccf962593bb84bb60f36c7b0680a175a73", + "path": "/0", + "address": "E2VZ4iAkVZUSJC2sdhasVsY63psbAxPMn2BNT5U4wqgZ22h" + }, + { + "private_key": + "c1b3e785a06e4f2faef4d852ea96aa61418ee4c5d3409cda14ceae81588aef0b982e7dbdf99112091c188558cf597b027b77f784b93aa81ebaf217bcd6b3eb2f", + "public_key": + "5a921e3cee9835d1a4b032822ce5c3c23359e46749cd3171524839bc69e5cd06", + "path": "//12", + "address": "Ed5EVwHHGHzN4vUZDMsV5N7BB75kYbyvoTs4BzDnivEhze4" + }, + { + "private_key": + "c1e5c24e57ab55b5560bc6ca66d912a2da63aa9c9f4a9338318bd19ad3e63b0cb870a26afa7f28b33068d661fb4ef771d15d8573cdd5759cbc6ed02143f3b560", + "public_key": + "e621c5970ffb0d6ce93a103f4b6d2db3269ef858711dc0ab978c778b0f30d260", + "path": "/soft", + "address": "Hn4ZeCTwj5xphPPbBkvBfsvX4RUqyAQvst3r8ehEYFC7RPp" + } + ] + }, + { + "seed": "e03bd93fd1bec8c9cced669a25cfd357519adf2b08ca96089e9a421023b5ea3c", + "private_key": + "9f5720c654d03a5b090c02c02bf59cf29d89dd561626a713610e701424d3670ddcb8b3959db4f6cd264645473323acbb93ffa38739f0b6afa7180f913965a510", + "public_key": + "003c5815d4e099c0fd761e83c644fd123a12d192136911707f9ac10d605a2a36", + "path": "", + "address": "2zkW6YgVDdLSYEj9BtbgvjdnxddBS22USY9yZM6HyiPV2JoF", + "coin": "STAFI", + "child": [ + { + "private_key": + "4cca737a02f769649afdc8838f5eb4f812d0787f3861685127807561ef15980b3eff93dc606dc1cf583be7fd947880ced0caca863e399665338e7992ebfaa816", + "public_key": + "6461b2dee801a5659ed7c59cba7852c3428a3ca66e3c595235f9af9ecd07ee5d", + "path": "//0", + "address": "331oytCmnS1z3n1GYADwFDnG2s32Nv1C9hLNsPXhaxRcsobF" + }, + { + "private_key": + "9fe7e164cbc2a05df7bd0c7697616bfa350412a18e686421ca1ee83654215707b7cbdf2eeadb25ee5b2d89a38a49b0c1caf15938b10725ba880a596336972370", + "public_key": + "f225baea06738facb81efcddf66832d0d0ce9cb10db43b184cb8a40deae67a13", + "path": "/1", + "address": "36Dgy2YfAhNqctjdSXpBqyjfyeDBbKxyKxmd7exsTCESBm9u" + }, + { + "private_key": + "c69b2ce84cdf65c370cb9343e42d087e52c67bd5718407553457831fbebd6b09d842c60b296cd733c5f851b20044c11f2d57d921c07fc15b5737c247c22869ba", + "public_key": + "14cb90a2d4cfa3b21d04ff2d8f72314d965000209485fd01af0e3cc3e965ef63", + "path": "//hard", + "address": "31DTbjQdQiXp73FP4HXwstujFL98eDGAaT1JJZy3T1zmu7RM" + }, + { + "private_key": + "85b0d13ea885e376db4e3b95f347d4189967986869bfe45b1a4e981e4666370a4a32ecbcba87b05e51f75aac01a90a1b7fb0ed9fe14c71f6915aa60cf417f6cb", + "public_key": + "3a264a8e77caf873e7f7b5a0669484fd9e0fc4596dd4d45f59e71961915de149", + "path": "//1", + "address": "324SKfnPHmEDi5LhWJCyqg9U5TKvZidFgZcqwAc56Jn5nzbb" + }, + { + "private_key": + "4695b40b1a0b46c3b9ea1e089dbe8e665ff33fd22f6a258b46bfe1d10f86c3048849274f7d96f0437f4c29a6cfd975816f82b97a78c088f7b23af92307038084", + "public_key": + "68f45154817ff0d9599480612a0f51ffa79ce253dbe0e3bc5c42b3208b5d845d", + "path": "/0", + "address": "337ojBLpzg1RZJbgvAmWauknJXL7yFGGVdVxyfvo89phPU46" + }, + { + "private_key": + "c2e20e66312c8e174f22c91390723008210406f1c6949be97966fff20ed6600a9b8f7e34f6b805f1be83d1f209e35ce610cff4b0a52ebdb745cdad978ae5fa11", + "public_key": + "86f68a402a919b128dc9483bfd7af2b5d1d4624d4f839ed3f3fa4de164e58c6a", + "path": "//12", + "address": "33o9pnhEYazxaEMTGgXUhtE9KRf16syzdRBZzE9163XPSzjz" + }, + { + "private_key": + "04661f8b311dcb3a9102e131ebc385b16203fe3e110c6b82923c009fd9c594058bb492cb40d2a2cac8fa71e8720e3a0417aab6c1f995ca8bc028fb9c7f169cbb", + "public_key": + "0c7a7eff28e0f74dbec3b73450648190863840bb643ebb1622d1a8af6804af54", + "path": "/soft", + "address": "312Z8jDt4A8xJDqK7c4iPEtZAvM1q6QdXHeTW5qNezJr3qYk" + } + ] + }, + { + "seed": "1e61bcd0bcdf1a48d4dc69d33fd165b66b33be75f9a71c897ca7d83ce7450859", + "private_key": + "e3ee10518d2164d7d91b65f8cdbf13d953fda27cb407c43f80ed046f95d71b0e78652a58db5d94b122f6f4dad3d283559c8a6f13cfc63f66bdc19a95de423947", + "public_key": + "1ce7b31d858a917e457281324b90d39605f0a686dbae0c7df86c215beb6d571c", + "path": "", + "address": "31Q6LhYRHxjPwXxP83zrPTcchgH53UmqzeYs3qqyFpY2dvr9", + "coin": "STAFI", + "child": [ + { + "private_key": + "17e135aaa138a5a7670b0e5dce5894f3639044cdd5585b5fbb90d4353986820bddf54ff52302c4fa78c97f73fdaa43860b7fb70d3498cbad9b52bb66de205cab", + "public_key": + "a63f53d82cdbebb4223f18bc79f1cbae9433770b0fc6933b0b25d4da2d058c11", + "path": "//0", + "address": "34WAvz3bhinevopgzMFGPKPftz2kLEs35wgLykUSKgn4AV3B" + }, + { + "private_key": + "9b374338c577cb14c37fd0426be65c609428bd3a0b0def6989fcf08e7f4bdc0dace53a203127853836c30b61e12c06a22acb8f7e145fb8f49852d35174e61671", + "public_key": + "026fac75eb022b6a27d4fcbbf0163abe686f4480b166e02413fd5552987bcd3b", + "path": "/1", + "address": "2zoPSVNNmr83iriRPoZdywK1qtzpdGo7tUupBVtVb4FChGWd" + }, + { + "private_key": + "82f9ebadd413cd3e539f529c19b9fa80aeae374380e16b3aedf0f15bf4f1390fb257359dcfab0b363c2dd84302c5b29d5aebfd4852449ef6ef919435d91be826", + "public_key": + "f2e8528cfc46ac93a29e49195b1eeb44f4b6aa58ce8151b01c63ba3bd4e3d327", + "path": "//hard", + "address": "36EgmmvFCrsHBsHw1Tx7sAA6KKdyyx6qb6B8AKgAA3awTG6W" + }, + { + "private_key": + "392e471646b5d1d1abb04bfb343017b3f5b6ed7cc1ad448676b690c7db4b080f08daee04289c4b72bf09406c7cd38315fb623987f0e9ebbe5530b131a54bda2d", + "public_key": + "4ae08bc2896b7f5ae81c16f1984618cda76df835a981ec28ee37787853cac179", + "path": "//1", + "address": "32SNRCZxcm3s1SF8iJXmQzXBWKFRobirfyrG7ykn9pEVjvNX" + }, + { + "private_key": + "86e97b0ebeabc716282a98cceb4c573aeb1efdf4f00279f7965338ca9b7746050a31d3a8b1927ffc85bcfd60b2ae137141046d8660eb593eb0b7071b4243b056", + "public_key": + "90db4a12e4c698cb8755f8e5ff3c0d9514a70f5fc357938a262c7106a62c613b", + "path": "/0", + "address": "3428D3TuAdUcUqP2RcjpLpJnUmMiZX7jMaCmazn2FUmyPJN2" + }, + { + "private_key": + "ac1e0dd30c817ca237256b7822d6ed3fab4c6e10747a6d903a4be63b11e76a0c1baf812c991904e3b2281d517e5efd117b8b261a9ddd986c4074012b77e2a77c", + "public_key": + "6460e0613b3ac2e3aa60d6a550097016708863c087102d56161afcac474bdc07", + "path": "//12", + "address": "331ojiY1U9JWwfjWW1UtZpCnVuST1wRgg1aPjLgtejMzKEMT" + }, + { + "private_key": + "8c406e631b7a69bd2638be74c78fe26bbec00b9c041ef8b194cc26034448c10622dfeba3d9e80eb50979579cc6d2d21da5ce95cbfbb7e27a49c46043152dbf52", + "public_key": + "102ce45ad1d32637f9d3b9887321dab1228248a9af82f921105750fa5279c744", + "path": "/soft", + "address": "317QGkWjeTFjDKGj8syZa79JCHGArxoDXUQU5z2bLk84MgRi" + } + ] + }, + { + "seed": "c41a8b4aa2848b1a01825ffeeb7a0bbaa5ea5307ca613f9a4a51691ca9289591", + "private_key": + "69f2558742b257642fb5c0f15616cda48b82d0439860a869a4b718578b7b430c5b06b4b9cd9caccb4c505330ae484c662ce68e74ecf5c8769531081e75895c90", + "public_key": + "4edc2256856149ca2302787bf25bc9a5cf9134e63ec40b84d5add1055ba2377f", + "path": "", + "address": "5RRRW77LXQz4e6eLc3C6bzrXfqBc8j4bd6kugDDieokLW1tJ", + "coin": "CHAINX", + "child": [ + { + "private_key": + "0e50c540f94adc326f40815cd1cdb7beb083be968a2e09b2f6cbad4f71419a0c0a9ed0aa5e18db3bb92acea71e3db87c4dc2ac5c9bc92f45cee976151efd40d0", + "public_key": + "5611cb127eae494028e7c94c66924f36c093b3a7d63e19020b242b0e385c625a", + "path": "//0", + "address": "5Rasn59t8D3PqqSw9e7Ldaa8iK28NqkoPKv97finaBsPBDLT" + }, + { + "private_key": + "1fbc44b89837d6993e963192cca74387019e49304689298c3a7c92bbc6372207436f0ba689cefe9845dadd019098e0eda26031216a2a169a85e1374a89be750f", + "public_key": + "8080acefe4b8a38ea47c84cf8e55e269f8e71ca0b2bc40346a46b72a6aaa763e", + "path": "/1", + "address": "5SYWjBDAnMczypYdhDgKpum9UZm8V869bk3EsEJ1erJcgtH1" + }, + { + "private_key": + "def5a7f93e4031a666350cd907ee8bf558a7224522072e2df3b6aa1c398e8a0a1646cc9f01f0ac9bc5bf0689351584fdb7004f58355c6781ec3b77da7380c4b0", + "public_key": + "5cc32f3b280fcf4706a5740a87fae39bd5f81d61c227d18f37edf5af9e1a892c", + "path": "//hard", + "address": "5Rjem7hVo22fa3SE7BpxqeFT4nA9rHLEP7t5AYsYpYYuCpoa" + }, + { + "private_key": + "b799ea0b09d798462665e0053e66f389cd517f4c5b1b544782153bbc4e9e4e0f37d384f3c60604d2c8251a6849e4e7c17a931fb397a686371c6d7eadcd3c98ce", + "public_key": + "c61b99777cedd00318639144b0d5690740538f2249725d88c5887b8a6bed7b46", + "path": "//1", + "address": "5U7n4678s73ucXxkDCZja4wtoujfa4278nAdkm9zVQHY7zXV" + }, + { + "private_key": + "2a66dfe625fc031dbcb0900971900ea63442c11c1889dcbe440abb988fc7be02f990a687f3794cdb258835769647ce7c74062ea3ca55973d9f50f9f0c873cdff", + "public_key": + "a6df66f11bf7f4f2cfefa555595e1f94cdad02f4c083790fdff65eace735bf35", + "path": "/0", + "address": "5TQpgpGNdVmuJh23iV2F5DwYJN5rQfNZ429kt2Tpu2JFsuxL" + }, + { + "private_key": + "ef14b905ebd510b5660318f2bcd557c5b8bdd35bcb0e2c0405865de187df210dd17674e962d4eb7d97528a65f2d5d2a56c8294063e04f003f56b167da9a57465", + "public_key": + "2668e1abf2170671cb80cb1148b7cfbee16ddd3bc18ea220281133311bf3e745", + "path": "//12", + "address": "5QWPMFtYc8jrrot51PXeuAb5jrQgRqCFCQmTtzh69RYLhYCj" + }, + { + "private_key": + "3195476cb6230921983e1830f0a287a103083759daa0a4e477a64cce927d3f0f76e554f80fb17fb039edd2ce554d6749ce81843d43bf521d6873078760e5a695", + "public_key": + "18e65e388126581323604eccfa592080afe409f13a7615ad343b393148d6613e", + "path": "/soft", + "address": "5QCfxTVQu1YrRhPNkGJ7WhpAEtLPeToDQ4F6gmtXYW8ukUJD" + } + ] + }, + { + "seed": "382a3195f806653b17bd71d60adb41f60a52c7f2369497c7effd4c47a8c0c51a", + "private_key": + "eb1449ceb0aaef536690dad6711ffe37a8c04a0185931bf8d5df9fc4fb071a08cc5cc84c104cd48c28aa6b8870a28b98e87adc600a9776bd1ac9c97591becb9f", + "public_key": + "04d7bc776e7b052fbfa5351ccdb575730c0caca85b0d848604919b27e96a6a60", + "path": "", + "address": "17MHA8UpvjMzBsASJjTYrEpRGYN4cP3u8X7Wx6XzBNq1LNE", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "d17e810195f51b478ff8b1558058b8247d4b4f037e25da2a849b4e6884158e0f53652f9f3b77b74badae0f331e8f287d8ee62f25336460ef5a268c16f09cbfe2", + "public_key": + "2a44b3292cb42d820ec5103cad3661f41cd64299d6a86a208a14d3977007b16c", + "path": "//0", + "address": "1xRRKSaPw4XWxi6fqfXpcKynESCzRHZYxB2d7hziAffunmC" + }, + { + "private_key": + "2524f0cd6096e286bc0167aa6a8d50826676a1dd738529b0d58ccefaf321920f735473c3a1ea26e413f907adb3fade6756bd303bde76e1b5127b89cec4d65560", + "public_key": + "ec14442ed175fa74eab717bd75006cfd2bf802baa99cd2aa702735b8c9f27157", + "path": "/1", + "address": "16LYKdMLUdTpDU43RHtUeBFBg2C6CRqWk1mRapp3CMYKuvCo" + }, + { + "private_key": + "4c60a559073003ea6368203976a60028befa1b16e281b024d3ce663da3eba60bd09054f3849ccc7f26116820b6492c774f790b1b44e5019a09bb972315ac895b", + "public_key": + "08d524aefbfa710ea474a7cfb31f119ff1188e05dc2ee978e702af664453c919", + "path": "//hard", + "address": "1CahbLRStF5YMvKJx2ytFiszuQDaqYuvczHCGA4p15Ezz9b" + }, + { + "private_key": + "a205903bf9df335a8cb37a411cab43da1156615dfb57d9eb77196e5985671508b2f1075ece329ef3ceff3c81b3f0e33013c5abf26356734b2d9de45eaf803e72", + "public_key": + "a83699fd39834e1bdc31ac2652b8ea13b5eb3f441bd5512c8074fabd9d3b8b19", + "path": "//1", + "address": "14oZGMMGQY94NgdJWmVidRU17tR1AFWJMDxBW6EKJxpXF13V" + }, + { + "private_key": + "f102f19386390fb37c5b8a737385d9eedcd627447096a6e0417cf2423eadac04270d061d4fecbe16b6c1f5cbaf79e845a7c506e9477e380eda1f45ad7cf58aab", + "public_key": + "06ca088eff6f67f99e843f0376d4798a6e77dcabf40bb31997375d2a97c5f762", + "path": "/0", + "address": "19uJctszCa4F7LpzfNzmvZ28yhQSFivqWWngMogGyXUvpDV" + }, + { + "private_key": + "64356fe3ab70213d0aed40ee5f1598d070db4cc4d2706015f072b7449f3fed0f840719d0a239d28e67bbb1ebfb23d3b5384c73d6f7f7fb849965fc59fbc7ef1e", + "public_key": + "e67e062a48cb464759b1359b19a43b6ebb8fb3c1afe8419c971883c63f09883e", + "path": "//12", + "address": "16DDT8L434RDgP898raF1h8czZVex8MhNufxSResRvdrqae1" + }, + { + "private_key": + "f898f455862aff5e6b8c5caf5525cae1128de8a0514d7473aa10389524905a07884342533849ba3c3da988bb996a85d8d06e8dc3ee6a6934b622206d20292879", + "public_key": + "f880b49bde486342fb8b56e6222fc3e3e8391247a23f4c16d82833d31a4b8e64", + "path": "/soft", + "address": "16cq7KS35gSmQX6GjE7YA7oCa9fdPBZvLi6pnTq58k95pD4Z" + } + ] + }, + { + "seed": "b729e9820c9c5f4d037020a82ce88158ea7e27e8e3c1d754eda4d4995117db93", + "private_key": + "731ef40e34ed344c12c49aac1b3bafa192d0007cd7d79815e72aa286663e240fe252ce21c2552146473187345bc2501e188f26a448af0447412a0a2352926916", + "public_key": + "86079de36771df5c2937f59916eb329a72c904761571a0f3443f653e618a8819", + "path": "", + "address": "142jgPphsjFeQD8VHgwqYVB5jJebAdYM3szTvfby5dVr1Rai", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "cd1c07a9d7fd07dbee39b521847598ad2ce2fb8797052d8921b24b48ea49430acecac579f5cc4e33c789f06aca00e44fb6ec81ebe0ecfb2e0065be0bfd7309ce", + "public_key": + "b6f5161b3df8b8d63c80ef3696639bd411b89ea7a2b16eb8d63d3d84d66a5a1a", + "path": "//0", + "address": "158tXDD7awkYEVhi66XGVGq6UsG39Bt4gj31NJq7skEqSFMF" + }, + { + "private_key": + "ea2299aa41bcd2b1b73fbcbe2723e79dbd15c5294ceb39645973cebf3cbbd30a08cf3631f0c13f89d5919c18a7c4bfe390161bcf110456c9797fc3066f3d6091", + "public_key": + "2ebfd3291d3cfef82ea96397272b34c7f78ddfb014615442d41cdf13b64ad506", + "path": "/1", + "address": "124JBpegJpsfzUfnf8rUSSuFULhGWJNEjvs7JhK69HDysccF" + }, + { + "private_key": + "2a36e6405ce1f5236ad601e86b105599aff48af6f6b480868b625ecc35fe6d0a9260585c51732ba02997f16009123efc27fafec5db263b02f17967184f0e4987", + "public_key": + "bc5b84d0bdfbed38a42dead605befdecb4b7d289c4f48bf3692a40ec2ac86574", + "path": "//hard", + "address": "15FyBy6goPVKWhcB2qU5YQCP9i8RpKSUbPhNJff7dvhPHWTc" + }, + { + "private_key": + "b4cb906371ec1a099b49bac98d5a4e8c3fac6b4a95dcdcb551ad7fd441578808831233febc890d5ab973c5d937056dfa8554c72208c16038c5a720f745ba0640", + "public_key": + "74ede94548f82855f479adaf6bca44f93735e8a9e5095c3a36f6c32a7eb1895e", + "path": "//1", + "address": "13eKEHRF9pcZz5djL44EWQjwup9NRt2WtDNY6d6qnLDj1pta" + }, + { + "private_key": + "c5adb6e68ca2c6f795177d168575001a66fb6b66619c64bb6c5d3966dd689b05d590bbd89d769887dda2f98fae52c63ba91609d9f48a29211802d40bad565556", + "public_key": + "3484ca5850962a684f5f4dffd9ee6e8b9f797bf3c83468a78252d073557a8b5b", + "path": "/0", + "address": "12BrwM4AnjC1tn8Cn9fdzQjPm3dHBSsKLi9XZusYw8rcqgCK" + }, + { + "private_key": + "b1cb49b23f2258cf38ac7deb749856453a1bfef17cbfb429b1d4972586f6c50ff519416fe1f10c83d49232f5eaa35bc29d691fbf09bf9a0903216f5cf153b2e2", + "public_key": + "643ca39e4b5ebde68f15136b8f757ee99b55f395075f04af44d8a997a2f7151f", + "path": "//12", + "address": "13GRoX7jjkf9txV5MMYtGT4f2gw713sWDdnSUZKiVdAxca1i" + }, + { + "private_key": + "96eedf1bd7b03891b7a15902f0dcfcf1ef1315c6e37045eb6c69620225150106a1e84add18a3b673abb63e75537ce26408b10fb9e9d989f7a27994a63e64a2c9", + "public_key": + "6a55ea70acfff0ab27ba4c69ed3c7b9f74e6cda2d623578ad58d28516e8d8869", + "path": "/soft", + "address": "13QRbgztRWSt7xpGFnpTxjPYZbuZn6Rv8KsLacCFNEUcWtga" + } + ] + }, + { + "seed": "26f8cff1eb0e7ed9b83faa6a3bb4b14f1dcb6a2986bfe5a45c35c7ceb9e84b26", + "private_key": + "10b21afb2b844e8cc3ba9f477f10222f135b90815d4c00a02855e41e8492870bedda03c0f36d763e1d5153aba4be0ecff0b2afef8a257b9dca5d25788bead9a4", + "public_key": + "38140c67a52ecdfc89574c9b48e40f1669665017062ad56dc7c48d6f2369503f", + "path": "", + "address": "12GXdxUH2G37xGDDw3GywjG6CETyprgi7hQRFT3AQFtWG2eF", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "444ad24584b072c801f9ef275894616dd1612e6ae5c3fa75208cf2b9c953b10a7759c794d5730ed58f6ad6fd0f768df26d0b508028f6d2de6228a405407715fa", + "public_key": + "8ef64b20ed2ba278fd899d13a34267da735622a1a3b2495a52c986c8c243d133", + "path": "//0", + "address": "14ESxv8uDEBj5Hw75zwJGX1bvtkPuGwFwX3Ac6vmy9iE3Zh5" + }, + { + "private_key": + "99bf9790d432f1422cd9b75e8530644b892fa218a324843cb3375532f27056023500cff54feb2279daa1892e91c45817288cf8a26a7d0d46d2f89b2282816e48", + "public_key": + "14801e70193ab65d159943ca1b89d65e8e53af08536140de3d552f3944741e73", + "path": "/1", + "address": "1Tt1z3RSLTmVWGe23d9shwcfkeesUzVVzExBVE3TYng5YX5" + }, + { + "private_key": + "c1cc42a5a0d00b447b2d8cf420d56806934549b62f458f0741fc29f420f4fa08c01cdfbbb621f3434dcdcd8dc9a883b4287f3b60f1dcf1dd3c615d88c67ce726", + "public_key": + "9640d68216d33786b90ba908e6353ec70cd1cfe30f0d08e477b47a23cbde6339", + "path": "//hard", + "address": "14Q1SjF6HZKRMgf6PahSNPmY1ivrC4PAajNGiXjEzt8NbGku" + }, + { + "private_key": + "5c950cae6cae9b3c5506ea566ebb5486b6bc2281e21174b1daa48550057c1d0fd1adc7f0972d2f40c1ec7d528c03460bfe442dccb04cd5f1ef4742b2fbd8f0fc", + "public_key": + "aaee0f93bce04fee3d72ee93b9d91554f06926b68becca5da501e80c44ee3467", + "path": "//1", + "address": "14s7rqVffAqkcTsZDtUC1dt9s4ztye33EQN7zzHB7zB7LE1V" + }, + { + "private_key": + "09c8f1cb6d1510921bf6d2faadc2fe19a91b887806bb45fcb34064317a839e0f6cafef88faab68a35ba0e01fe190a46ddbee3a36737e02d4f2ac86dd55906258", + "public_key": + "527d305f53c18e7f7ed2515e2b82e26ac7909c256915e98db75141eba7caa966", + "path": "/0", + "address": "12sA7hKQVu83p9FXSxAUhkFkaCHH4g5UeUPDGRL8KQYbNRuk" + }, + { + "private_key": + "623e784b33abd0a4a7be70f925cabbfac8fd868b49e58e38a7e7429e67433d0a89a4acf0def88f5d0054ceb2a8242962084d393ece082a6b7b0cb2b446916d0a", + "public_key": + "0c9dc32be078cbc01841b22d82c51ff8b0ecd99519d2212f445ceadd3a13e809", + "path": "//12", + "address": "1HYSWc4VNx3YsG3jPEs3z49E3jiiQu72JTYAMRrvt2Fciwx" + }, + { + "private_key": + "97c0721dceb12e07c7b772da6dd23d02f99ac810c5e4e9b4da8a513fb91a0203e49ecaaca2a43d34247e304f386342976703f083e39ce3525c49302fbe11eca8", + "public_key": + "f228b3c3952664ca286e37b7b79f96a2278ffeb35cea84f5c79457618be82f3b", + "path": "/soft", + "address": "16UWgPkrWm5ziq7uJd9eAGNdr3o9egPNtcnFuMppKSNzF2Wo" + } + ] + }, + { + "seed": "caf2d20f74fc8fc792afd3d5a5904af491f14baa38d36e213be02a5602aafcde", + "private_key": + "39fa670febf1d1f599c3d8d1bb19b31321614e454183e8c8c68facd89e75080b6a14745d36d408ad8ce6923997edd0a48d8095c458b60c1ed9c44f149f3541de", + "public_key": + "b00c535b792da51bf94790fc95b842c46040c66f295d1e3f1bf4b6469d48c043", + "path": "", + "address": "GZ9cA5xWGEJXUu6kSHUCzsaymCrrnJm4CjCmDPHgQPpbJXs", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "ab0181be904668e79c1fb10b33576175348bdc3f943b56db00741ea8ef6a240c2188ac4e36a5af027312228a76fbba48b74b0261db1cd66c0551ff4a5217b278", + "public_key": + "9e7f80434019677b965d6b8300bee268995d6061fa9e7fc29f5e3859f21e2f1c", + "path": "//0", + "address": "GA8xbHevgy3CKeAzTGT1qr7rMVAzieuMWxfR6A9TBvd6i95" + }, + { + "private_key": + "919bcd5eb0eccdb567cfc6466ad609b349e94a1c883952acd6761b6b70ede9073b3dd682277c06225d5271de7548e15bdf1d3133a4735e66fa33bd6b74c95bb8", + "public_key": + "d4cd1d078be7789d3e924081146c92a0ebede0af31c703cc0849dce591d39b20", + "path": "/1", + "address": "HPLboAwmXkrQGu87X68R7W1TH4aL1UTbhMZXkf7XVgRnftj" + }, + { + "private_key": + "69db6b98f04884df09cc99750ff54e557fe7fb016edce23efc8f1057a616050cdc97f9a8808e1f87f3424a2e238cad3a25dbf682756fa0eb419234f782eab6ec", + "public_key": + "e03396979a5e5fd042fb1364c79b95264e7d253228c245e15021fda9f3ef8e63", + "path": "//hard", + "address": "HeHZwwApJxNcUPsVgPyHzt74oWj6GtyHDgLQSqUwoAuNrfE" + }, + { + "private_key": + "8c5c9167c29bb06f6105e3df87c63e61e1a4419f8b7d4e9730e2f853e7447c0ef040c0d282f7a0719e718d0900661eb1edd5e863a3ef40c64bd8735337faa835", + "public_key": + "cea645b182c7145bbb88adb3c7fa799b1b1274aaec157c3421467c3bf3a63740", + "path": "//1", + "address": "HFGmv3qGTAA9PgPDBTV6AruVUnLNPP2Nhb1eVH8tdRMNHqP" + }, + { + "private_key": + "4f839cc0d4b6960f9672f3ed1e30b21ce67dd05fc9abe6c056c108323c2eff0b9b09a9cddd9e214d0813607edae6c734731d1457337cc5c3c0b535122cab0aea", + "public_key": + "76486ef13841e98ecf96d50cc847e2d884dc3eb2b2ed8963d17708bc0e842519", + "path": "/0", + "address": "FFQghta7qSBwRfNewWoM6iEsNS6EwB889utu6Gz6wta6oRJ" + }, + { + "private_key": + "32e963a56c5fb82e9adf36fdd9031fdf20512b70b8c18e5731c07fe3582be60d344d3c927382705e1931c45f96fe5fcdacb44bbffbb59bf165047f1f01479e02", + "public_key": + "96b3def3dc27905588366af142f8639dfded5e04406afb00a7549f81c9847a3a", + "path": "//12", + "address": "Fyv8giQEmwweCxP2kCwuZ6gEA4SZXVqPZdbTJ9DFPNnoaim" + }, + { + "private_key": + "87e6122c4a2f59d71b106674fa5a21c3f9186c67342e747c33512d836f59d60ac13bd4d257b5fde23ecec959be48de2bfc9d636189c12a31c92c59c7f0286aed", + "public_key": + "2c9ab9e33a7f4611425816c1e8ab5e4f243e251bddf8937fa465ff75f1e7c76c", + "path": "/soft", + "address": "Daob4C1bHxUPPSHQ86QrAQiAuxXfo1m9g9j3T59rj1b6hst" + } + ] + }, + { + "seed": "0ff674e11f2e74205f179627e9745581b02dd31d0fa6be2b6263bcaeeb5ec2c1", + "private_key": + "b55e9dfcd30dc7f83b8774a3ebae1fbfdb24ba699d5b838a7c6bfa49d36f1a0fc5108a043c371b5f14a1dfdd9d46bf9237e56f551711769e246342da849498b1", + "public_key": + "8a582fbb5a73901bce1f76f4015d47c8db14cca1000c8ba6206aad2924153f22", + "path": "", + "address": "5SmRBLdij9dpnd9WpPE98rLUbuaVDdu8pVZXa2Giuve7EsyW", + "coin": "CHAINX", + "child": [ + { + "private_key": + "9fcdedbfacd206a1866876ddf5b55ab99b9232a689671f871040dda2572d3c0a955c2937583092b058985be521539b877a338057d9b46650b923cbf4185d727f", + "public_key": + "da7f8813e0cc480f1bf416e359f3314225f4fa8ef9ecfcc89da6538140623a6e", + "path": "//0", + "address": "5UaWhRanL7iM1PpZwu7pdYmw36cmfu8Bx64X7bztQHeK7o4r" + }, + { + "private_key": + "19649a6a511bf1becd9d247d1a3fb6b01cd12d74f0efa1fce79e642ac196270bf849812077bd9b20d73841874e9f62ee63f764ceca5a0c379a34e99a280da7dc", + "public_key": + "6c0214ab8941a61cfa2e2eabe489e00ab92ddd3b76689982538168c99d4eed7a", + "path": "/1", + "address": "5S5eATESCWekhK7hgw7mGVTa8PULkkPbgKQ2qSoSQLxktgjJ" + }, + { + "private_key": + "daa9593da0fbaa496b588c6b94e1b5ba713660d8ea0606814029ebd443a6b8095ef8c0bbb7a99f6059bb5b46975ed7c6b5d593773e7b2212335840f6ad33952e", + "public_key": + "5c1fbd0edeede7e39b33ae139454836956d6b90f8d4b141fe6fcdfa4eaf2a436", + "path": "//hard", + "address": "5RipD1PSXxfTSzvDhUp1vHc7qwEQwDbTdagavmdcq2M5cZ8V" + }, + { + "private_key": + "2b147d97d73402e9fd40c0d5c9578f539fde6ac96d67debbb944dcb2a8ef700b38cba7cf9ea7a7d53f60d44c997f1a1e1f91e5a7d8ff3280b721e765f1691c09", + "public_key": + "5cb494469147cf8f993232e9fa6b379b040de01ed25fb702136b87709367c70d", + "path": "//1", + "address": "5RjaRUPCyYiCjACZrxWJnEibWvLnsFqEL3iXGegCqYstUovo" + }, + { + "private_key": + "54faf3e150e39a61b5ffc56e900e58cb75ce1eb287d9b3462c385d971c1c7a0eff6884d7a2cf9f3ca71b53054e1bad5f0806a47993fe1747ac874d6c9e36a805", + "public_key": + "540c5fda6b7a6a67f1d27efe8c0e7c596b68b5a158b37247d34faebdd39a8c4c", + "path": "/0", + "address": "5RYE59s3wToGFnR3B1HBgKb9gcXNEFeezpBe7BqxcHEKZXkn" + }, + { + "private_key": + "24de5e807bfa5e21cb1c95bfb08b76863658b3e139d6428a7861ca224af1a00ba809b92c1ffe9d57025336b6c679587aec7f8d4fe2389af67a7e5a6bbde58c7f", + "public_key": + "061130d68e18e08ef5d0f4225a081c21466ed0553f9c0a12b4bad3f14ab51153", + "path": "//12", + "address": "5PmymWMeVgzaXGaTJWbS1iFFK4DUh6AT1f2y11J9bdrc4TvV" + }, + { + "private_key": + "c756c2c438b1b1a24f4d69451dd55c0fdec3afb79496e9bdd4b790a07f606b0f45febbda7898e6bb2e19cd08bc8840a0bbaada4af5da66f3df9329d19c334758", + "public_key": + "4a04d1559190ea7a1de173a867a445dc6115fb955725a5377b969dc65ebcd925", + "path": "/soft", + "address": "5RK5MBUGKRrCCETNdb3wP4Pt8mAdaLFjPtEwpfvnG1uZvCAV" + } + ] + }, + { + "seed": "2c3fe9ddc8770dfd8d3d046ae3f9718e47a3bde20ad5cf9b71ca98579a830cac", + "private_key": + "4ef0062dbf9123fabd842216e936267610d96685a8be43ef3403937f2965230d020fb861bc016edd36b17303fec4768e4130ffaf1edaab7d7ca6b354d3fcab71", + "public_key": + "ecd1c9d227c8fbeb94950765d497d866c3beb84e95e7e36e3976632cc96b9826", + "path": "", + "address": "Hvq8zxsVztpnrXvKYaj3jwBXHzU58VuxAAzRSJ8iacv7pVR", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "493cdbee64c97a721598a0aaad0201e451f1667ba005ca41babd5f043032f80ec3460b7c2a5c9c0beb5586ebe01fb69de4e89f68987fd113a22a425eb64fe87b", + "public_key": + "e28f64bec895576691c60dcd30089a00601bf1d88a09b97bb1d11db6c037ee7e", + "path": "//0", + "address": "HhNwGfJ5VbwZvJJiJYHuMkwXvLGLiuw98ckxDxouq1jcS63" + }, + { + "private_key": + "7d11a854dbe92e598de05ce1e36211b1a5b6dd518adccc3917094c27ea76a20f841743c8bc352033d6752e612fcd8354b99aa212f67de463f35e61d4f350d484", + "public_key": + "84f2b95cd49545bc46ed452c12dd945862580d9eadc6b283872c2ec449f4c631", + "path": "/1", + "address": "FadwdRFEKd87dTgCcasdtzhmTjjdWZZtJGYucyTkJUdMoJy" + }, + { + "private_key": + "71d222993431e69710736e7c0443de8e060e84a39ad0b1805eb5e3325deb95096b41f97352e5b5f5ad976afe5212f2329580226ac711a3a1ab95006b04c12fd2", + "public_key": + "d2f9efcd7f9ed2214b70c10c0ae9612d6bfa5be1c8136f40b88fb2fabf89794b", + "path": "//hard", + "address": "HLwpXiBH4fxBTQ3FLeWqoe2e3m29YYn8pquLcoUTK1opJKt" + }, + { + "private_key": + "aeb11c893e162d85f78d2d45e61e571051be3a5f5cccf9c40dfce6a7618b8b0db30bbfd96a2d4e2af69b2af225ac2ad23c78ed03750ea981f2076f64e8b80eb7", + "public_key": + "d22efc11176346e02f4dbcc0507cfaa20d153c1b06f96177594b697513d8920e", + "path": "//1", + "address": "HKuXkHcUx9GxJbSVwPmrX8wQCT29W3Kn1n9vTNCNx685NHf" + }, + { + "private_key": + "0beba5a064e704f1ab0bc741a92785613ec35637131fca24340dc1996d186a05c1141b387ffe58f24779baa7c77f6dede61bbce15e7680fe6c9b4c178e4366ef", + "public_key": + "aa73d1c49abc0b8d783df6dfefe1031b43b8027a36a9fa81e1afc368acb4c056", + "path": "/0", + "address": "GRp4efCRpb9BWiaDC9Az6SY3164FMoGg2vAaQihHCPLrfo3" + }, + { + "private_key": + "f0c0080f55ac2773b2853066410946d6c06ef7f7a87b30367d99e8071c13b00ef0e8c9cefa1342812c35a000e5f78b7444b67b075c40d797d50035ece7efe391", + "public_key": + "9cd495e7915191d041e4481b0cb8da0e38319ac7428d48005adb5cc16266902f", + "path": "//12", + "address": "G7x91XHHuRC66MAWnhDY1emsYYSFCZz3NRLsW5D3Yrde8st" + }, + { + "private_key": + "d3836f730223326d4f2693eacbb7669e5ec930104a8ca26fe60351c3fc52f10f3ce9ccd79cf5dd76aa992a386edb298567e1d58dbb9209140c9419163d2ea350", + "public_key": + "6678c7e1321f467162e42d71d51fd60c4c7570dd5a8a45d0d8dbfb95a5818923", + "path": "/soft", + "address": "EtgHGvPSEqikPjaDNbCkGiB6E1s41KkGxKkn6xBmBEfUx9i" + } + ] + }, + { + "seed": "6bde648ef4e8df24d164ae2c65d53e415518144d8bba166e44be70048e144234", + "private_key": + "98b03561e6ab8d0f182b193c6f5657b29c0e4ac527605393ae52d22d4c8ede0b5e36fc589678ca6a0648df125de24c3543438d73e75235f63a12ca0273e8e607", + "public_key": + "06ddb3b44ca9e95e87e4af90958cd433c1079465c126ed666dd461b6b4ad4b5e", + "path": "", + "address": "5Po2X9pNHLERwLNyyGS1qVUYRKbdkDvgLP1yARXTuM2YdSZo", + "coin": "CHAINX", + "child": [ + { + "private_key": + "b9329f2a05286de55a48f51862cad6071f7a660f863a9f3df7d8e8b896d6080e7a1621f34b20cd7a34dba700fd60320bc5941fde8ad8b9bfb8457043774112af", + "public_key": + "06fcc8bd9f817c0a4228537647a6b8150fbe0dfb43c9ad6fe6cdc55ed6231414", + "path": "//0", + "address": "5PoBkgkfWCFt4NWYUk4xyk7jpYeFobRq6gut14jYM9jzwoWZ" + }, + { + "private_key": + "7d9ab4727da5f86586515a22c8c3dcd4e031b97cbe2e24c25e8b1184593daa02c466bb794fc4b15c6461b25ab29fc8ba16620c12c6b29935249d9fb2b008dc92", + "public_key": + "b83c74368626b8defde029711743a31f7529ba0109a97eeaa802c4f9c872930e", + "path": "/1", + "address": "5Tob9GxW1qTDoLvGqBaHgaXiWwrKoFDTUsAPPt9Dtd57KeQt" + }, + { + "private_key": + "0b8df28083635cc3fb30031ec078d62c06d20d32fa8903842a76082f6ceb2a0964501974dc159eb781bd1a21e26864e7804f99012bb8c4860dce800ba4cc22f2", + "public_key": + "1a0cfa3e30c251131f7ff26a1a29b2502221088c2605e30492d7e59058d4cf13", + "path": "//hard", + "address": "5QEBUTf1LkEixb6CZY1LKQSdN4i4rLyNv1Urq2UYXRYuNUyP" + }, + { + "private_key": + "492dc7b285203ae04eef7894301eec305fe85dfe1788b4bd85549d922222230a0661e9ef4c37f5a0d0cf1d85085d605d56d472c4276833c1ce600f80c6b7de6a", + "public_key": + "b8ae6e0f02423905034104bfd45346f3d98627a622b5af0b8104a9e7a730813a", + "path": "//1", + "address": "5TpB133MmaLA9CbUzcd8zfuBFQvBVBrQcrCj99pxGmyZMxW8" + }, + { + "private_key": + "14bf4c6ddb1395a147924c00a80922516f838c888b506827781da604ca721b063d03538233d05561c3d2ae4e16e8b94890990ebb5660cb7ca7a5cb2daf959584", + "public_key": + "b689e4212720c62fbcfd3bbd1a5fecf2fe007614aa5d41827b61c6aa2db02a0e", + "path": "/0", + "address": "5TmN3w43Fvy79MtBbDGeRidTbyopUai4dCf4NUYgmFVkvcuv" + }, + { + "private_key": + "bc87dc431408c4ba36222b1d7b386224232136da2c38f0c863f6357434a6d50ad04466dc43efbd4e79799f7f01b13f48e0bc5a92bc98020bdaec0df70dbadd14", + "public_key": + "e8da04bac17999f6702a371c3bd7aa0a2c8cd6f8fc990b1a57c293e691e1c21f", + "path": "//12", + "address": "5UuLFMrcBo7Utq2B5CkcYs52qX492edGxdaGFVqy5hd9auC1" + }, + { + "private_key": + "a5661b595a6fbd9bdd9f07fd95d5c3aaf6cbea9d761cfa55837487ddf8dc1a0e3413e3f0b6f00f412ea104cc7e37498ade4996d8969bf6f80455c914beb85b8d", + "public_key": + "34844c5c2123a2a120afc0806b877766f35c977829ab60f5a48a733759c92e66", + "path": "/soft", + "address": "5QptAX5uvGGzQuRDzM8dW8VgKr5bBFqjkmPCPpH9aqSKB89u" + } + ] + }, + { + "seed": "d98a72db2e7d6493d1cc675ecbe1d8b4307165021e16c8cbaf2bd7681557b9b2", + "private_key": + "0364c0ef16dced8054e2a80a8e8b735475f6abfbe58560ec10303cab882046092c5fad87227ac5237d6f9946efe0b34b11f6a6760c75f65cd10740a65391fa58", + "public_key": + "c090568d31776be57f552720c091709293596d04e4e91fb5cd9a2aeddbe9fb27", + "path": "", + "address": "5TzWSnT6bdphicG4Qsn2nsD48Xov1ridbXkiyV6YCbabjKyX", + "coin": "CHAINX", + "child": [ + { + "private_key": + "477d2858b1ede8c116a8ab552cc3578719835bdf5b87849fb024221025935f08e13efb0e1f39ef28c02cb3e56242dcd512a92f86c99da09692b8b75fe6e5d7c3", + "public_key": + "be9e4227a93227ba990a6172d98ea35e0f1a24b6894e629f53e566db372e094c", + "path": "//0", + "address": "5TwxV56aLCt8bWou7cRAWkoL1GL5qX27aYfaiMpuYYgizrsd" + }, + { + "private_key": + "add547b3a96886797f1d941a6aaaacb32287578849467b887730304f461fcc0bde87c1d12b5671009c27be635c121a2da59951833c5ad005c6bf5b293b306a71", + "public_key": + "4eea34a1f4699c561719c5d908a1939211b3a0e25362c22db5b43cc4aac8ce7e", + "path": "/1", + "address": "5RRVgYxaX9iLAC56ErXU2V25K1spGufx5hoEKUhWdx2WjKLU" + }, + { + "private_key": + "0932086f8599e98e93ee2722796df2a171ad000e564de60f28aaf556dfe3230a8905f84a799272d374bbdb32334011cfa2c5077162419d5aa299703da0448555", + "public_key": + "7ee0c589b98408d7ccb41de4c7e10e8c9283cfdb8e923850d8f127b99c882501", + "path": "//hard", + "address": "5SWPBKUpfKuParEMp8EFQCBCJUMVzHYSDyYrFymCDxPns1co" + }, + { + "private_key": + "0b1e7a4becc397ba93d8bf50736c4274ed26170ae4a45faf8af50ac564d4300c204755a28d97a7457006a299af7f6714d072707248083617a5c9272ad452c0eb", + "public_key": + "309ea1ccfe390434c93777d1f3053a1037286c279958691db23d47b38644413c", + "path": "//1", + "address": "5Qjmo8WVtzqwsMbas1KmXz2An5E4mhMDsVHEjJVCNbb7oBqW" + }, + { + "private_key": + "1a1a9843281a83b69ce2267cd4c74cfd4f69c97b5d605fa2b2966b7564b15101d804da9dee5ec29b90e396620d1977ebb7e9ea6653f25f7cde8ab9f8de079e1a", + "public_key": + "5aee139a639d7b03e6916ea7bd325dd980e0d118e58e92af73c1e0935c013a63", + "path": "/0", + "address": "5RhFQaJUuUPr5aj2kXFYgS2EnYvDLC6fvmo9BdKjZ4EmrcvM" + }, + { + "private_key": + "53643555acd5140ddf5bc7ffa0b00f2e50735be0c1e17eb80f100aa7cb06c80cc634fe7775b92561c0bb9e93e5d893de0319073543c6411b771163e47284e524", + "public_key": + "6029537ee1370d61755c789b34a970830426f00a994a32cbe9c85a9493d8ac5b", + "path": "//12", + "address": "5Rp7FJpWoCRvu1SRssAfyXBauyY6xzAu2nfourcgg8UwViPo" + }, + { + "private_key": + "88c911e704f5b5e28f37a4115adc08177d1f150a6104bd8f4daca065b5feab083ba603b2fb116e82956ed7d38dee33e7ff0a8d28dc5b383b4db5ffdb7e7bb757", + "public_key": + "34ab5e86cc6e44d169111cb3735243c46101abffd56c986b2023c43fc0944876", + "path": "/soft", + "address": "5Qq5mhMSeTJgbfwxRYT6eCyb7GShdnf5s8qAWFPtrhT95TzG" + } + ] + }, + { + "seed": "1c3346fcbb26d6b3a7956f098904da7306e45c862077825c21baa95538a1a3a8", + "private_key": + "ebc3155876856d01527992ae62e18a178cc933ae591e89c985bf655c2f75650d0176b63d9a498705ffe9fb69c3ab61fe839288e26eca3f8d61672788c1c6e6ae", + "public_key": + "64f6833091a18204ee6992e2ace7b5b04bd8f405fd1152106b7d650770abc918", + "path": "", + "address": "5RvQPhGKrimdShksisrBfDnW7c4o8katB1DRwWW91vd8aoB6", + "coin": "CHAINX", + "child": [ + { + "private_key": + "7f3b1c33acf127305d79604452a6280a870c43117f5f71793839b70a6c25660bc5038541b32634374086b231ff3cd0e92b07165ea7143a81a7a93a0286d41a01", + "public_key": + "d202119feb53987c948f04ede874f93ad626b493cb9e93a3533e18bc37ec6b00", + "path": "//0", + "address": "5UPP3XvkHqaKwdTfXJdjJyTZYHMsfEXwX9pNUePjSuvDQRgA" + }, + { + "private_key": + "a5e079168954659de5b63eabda3fa1c2233c79b35add3b3417acaa776bb5b70a11085adba04d6e6c4f9e47b9b52089bbbfe8d1d892df63988e3fd1643393fec8", + "public_key": + "da3fb14950617a220e09b6a395221c256ec34edcf291b42cc43607e2f2cc0a40", + "path": "/1", + "address": "5UaBjWB364VphTKj1C11oXjBnHR7NRhdy46keJmMBUGoxmVQ" + }, + { + "private_key": + "38d495ee2f6411348967efa6c9752d31bd273c0d5c89ea982a1115fecb36ee0f417515ea47c08e8f04ead026cb5f3d0e6da794fcc9d3b6acef5f08615358e37e", + "public_key": + "3aea5cf22f06a8ee9f7766b382334ba040029215c13184987183b0d832158f56", + "path": "//hard", + "address": "5QyGmieEQTy25d6Yy4XngMoaPSpuyoNxx2KthNNK64FsEQpb" + }, + { + "private_key": + "cce92b59d7366bb6a1b1bb853f7f3f12424b561c2211486e0daac96a5723cf0e7c33c2871f145ffc25831b6c85e5d651ce27b61455dd80fc2858cc858769d03d", + "public_key": + "181fc0cc6acb396329af8947feedc478af148bc870ef846bdde978d1f405d638", + "path": "//1", + "address": "5QBexQGRjH8yQaU7nceScuMkehyPMxe55RtG7YJoH8ucBw6o" + }, + { + "private_key": + "bd31f01397057a4c0d6dd604bf66ca73930c63ebc029252dc30bb9ca0d2426060daf7610b1038747ee301c726b8787a01d844deceaf7fbe48b8b16f5ce9fb8c9", + "public_key": + "e0fbc2dd5df71b76b8165befe856d14d3a8f946119fc46e43bc0379e7cd4386f", + "path": "/0", + "address": "5Uj1tWqsFohLQVacgyhJhxDZ5Titik1Ruje3BC1EeHVpseRa" + }, + { + "private_key": + "cd3330bd7321f786a5877941c5fd96a299039f395267122c0273a9c8d3188f0d1871aed843dc4c200cdf257e47fea907c17ae7577285cb93e1e82f4b0fd4ae61", + "public_key": + "442f7f9d5d1b869d76c112b4c344d161b2228c364cfc1b8cd34db4479af9b229", + "path": "//12", + "address": "5RBRjtaz1S6sR7aWfgNwSrHCxfffE9emCSUJ8nGUMQ5sVvUq" + }, + { + "private_key": + "1e97c8a9ebd809871068c0ff102c97d584a441792060ceeca9d1fe11d103430cb54c638c2eb907c9ee77e32f4df9e1cb5c7935a69e5c4486fc152e1636e98fa9", + "public_key": + "e85413fc3f7de7b4a3660d8c39122693a8f1bbdad9f20bbf17a27e123d854832", + "path": "/soft", + "address": "5UteTcxyq4EQPy7mPY1u58RfoSKggD2gJy9KEbKBeDsmhQRx" + } + ] + }, + { + "seed": "0890092c47c8b77610c5f99696fbedf9e48da46b450ea5765c0d20b511379561", + "private_key": + "6c65a52edd6bfdf7893acd16c3f0e084d14ce9d28cef881818ecce79b904e40ee38152b195be032d585b7ae8cc8277fb200c114467348a91c36eccf46cdc4b13", + "public_key": + "f239015cb1b12ef8a55f4c3b096b6a2ab04d0d67608a16d4408daf995f821b73", + "path": "", + "address": "26MC7D9d1M7b12PmwShPKQZBrbjTJghMUojGHaqR67cwumrv", + "coin": "ACALA", + "child": [ + { + "private_key": + "aedb31b14f280801c868fce97ae6e356e1e2251cd1b0b6ddca8128907ad07c097f2a73209a8060b04faf5f42ff21f69d80ec785a1ae91c3cd7077d945734484e", + "public_key": + "e65ce5914b91d3d0f95463c50ef6688ae9c90614cd7789efaf423cf1b64b3730", + "path": "//0", + "address": "265eCH3WA8dg4LHReU6TY2iAR19V2sLEcftnLhz1E9Ex74pY" + }, + { + "private_key": + "e03414ad082a087a3152532c54364e0b32e213c4ba9d49ece386c12abe74f3060d82c24f450399bad9ab46adf2d326368a4c1667f70ccaf60cbd27386ead59f1", + "public_key": + "f6cfe6e362c6afe1b19660e169b3cb3fc72cccb3bc806ff1396f582801f23e68", + "path": "/1", + "address": "26TD8CyDrRjqXKCeRmvBWayapoUXMjNJzrHW9aFJXRWyjThT" + }, + { + "private_key": + "f1a52f03fb69e52a04e74d48abb13e151d59f07297d7a74b8873a54f8d40fc0c0b477e5013144c4978f41f8373ee9589110c13630ef0aee935af513740c1b365", + "public_key": + "e8c7459c817a29627d108abd2245b13df5099bd54578139312ea1e6de159c16c", + "path": "//hard", + "address": "268otdhc2BxuUYbPAoPQCMYJaeQZpqEkTkytahrX9GLg1Prh" + }, + { + "private_key": + "730e12b3928f0c39f2bf18fd941cfbcec478f8af98136646307ec6028224d20827d69d8c3c3829c54cb938e840fd919c6ebc6b139892d1d20394a729f93b106d", + "public_key": + "60297ee85c54b0d3f3bf624db10c9c7996e74e9ddcd308c62725e05f69af9f6c", + "path": "//1", + "address": "233gWVsdDy5ZTzyyD1B7KEHTEW4Q67CRvAjdxaERi2UwmCUy" + }, + { + "private_key": + "654fa5c789bd3c2e161e67a26c592f6c8102cce411ff045578dff3d07eb061061c11ddae071c15f6b4e2161dcd005f4ec49767b09a959d4e8564eb4976536273", + "public_key": + "e6deb0ce0fb3e9ce450a18f7c634ace9f072baac1c3b70b88ba9c954c67c3f06", + "path": "/0", + "address": "266JkaFpT8uz38MaDAkL1qecpmvTWuvWGNZ1kXnAY5xcJBpw" + }, + { + "private_key": + "910a26e4ac8b341623f18c1c9db3efe769ab246625b41c9390d8dead4957a30886a609141e468465677d4943a8239f2810c7efdb6f595ae395182663f5d3d15d", + "public_key": + "10687dc21722e372a7ccdd0515fbc0ae2160e245ad37c0a09aa0290214832953", + "path": "//12", + "address": "21F7PhcHKevyuT3prbUBgi6PGq2kYyEVZfDaC7AREsDCmx5w" + }, + { + "private_key": + "9d714457f3e2ae6524534b8e2811f352f15ce6c240a2388fcf90c29f5d9c49084f8082873762a3f04c6971bc5f6d1dd074623452135eb2a2fe69be5ffe04ae11", + "public_key": + "bcea50546b07c24338536b9ae62921d032f3ae0605e40a4bc6ae8fa2080d914b", + "path": "/soft", + "address": "259JCBvZk6Qa1vr5YUp4xNASzfAJCF6FNrCp4L8Mxy7Q6i52" + } + ] + }, + { + "seed": "da692fffb0cfe80c17010de730e3dab91f4758371ed7e4b038f560fa9c332e56", + "private_key": + "22ad6ebf99eb3d4fb4796d89899ccc90666767705856973834b757c55fd46e0bab1893157332d1782e47c86952c471e914ab357516b11de01c4024d5b54530ea", + "public_key": + "a602ab64e300a6f136c5c1346245e24bfc448f2253ff7588a4d9f2972ae8160d", + "path": "", + "address": "24dGKx4sgzsoQAMbaXqQtMDdrwBaVWVamDSZb8DaH7iSAMGB", + "coin": "ACALA", + "child": [ + { + "private_key": + "501ac7af38d1c4a5057c4cfdf4b36cc40f5dc3ddbfae14d5c8e37297a7173808e085e9f7f94e4bd692a38d6f7abbf5a50d45f8ade61a4cb300e3e703e50e336e", + "public_key": + "f8bbe2e588b8357386f3d76254589f96a12c02d49cc0204da521b212ea1a8039", + "path": "//0", + "address": "26VjGuDqfnjM6kbjR2BQRhe8BjH9WBSXzkPnsPu5xmEh4q3Y" + }, + { + "private_key": + "54d89b6efbad82651f1dface27ac82be9ceeffb7cc61d6ac0f1c0414da91ac09c2a4b83df7f22ccd63ebc51446bd19533e006be1fcae15b444c5748974751d97", + "public_key": + "84bf1d52333af082e79a8ebea9ef4af11648cee9480af04fee9912c3dc204b1d", + "path": "/1", + "address": "23segMUZrazSXotA5dJyqZXieg62rrqBqFWh7ieB1Bwekeuo" + }, + { + "private_key": + "018120b7981ea0e885ed950eab375a20a0acee53491c60016797002fef320c0aec2a049070598fbdf6030c12b19d8cf85caaa59bbf57e1a9bb21062926eb3e16", + "public_key": + "50cb069b790f12ccad3bbe6b906a14e6b6cf40e3d981a1fc0a95eeebc215b57c", + "path": "//hard", + "address": "22hXjAEeyVnxBx3raf1ptW8j6u6m2wz2mTNrLq1QKL4gWfcz" + }, + { + "private_key": + "511660549541afe745fe07341587e5f61786561aa57567272a82881809df020a85914342e209005c0dc3dde6075bfe2e6ffb158a89aeca48699192fa708d8733", + "public_key": + "12549a27b1f23c463aca220a58a422b1a204bd169bef14f67594345f35592732", + "path": "//1", + "address": "21HdaaHuVmixq8PErfLLZLowSqiazXcmutxGFCF2CkeHj94f" + }, + { + "private_key": + "a01416f0bd42ce415c50d12b0d128d21a88f83669569fa0d2d07d43d1944180c837867e3e86433ff7a2b1e98acd29ce1d53c96fad2e4ff69d12a05e87e54380d", + "public_key": + "40d64372ddeb4385fe296c7a1dd24e2cfea8022a51ca6937404ca77561e30211", + "path": "/0", + "address": "22LcJLsbsqoXBL9RCSwACDZxEy4crNt9poZGFV9UbyJVQxuH" + }, + { + "private_key": + "acb39c4d303afd0a9bdf575ff9614478b620232d6c514f93cdb61dc6d2c0aa0c71f0d717bdae0341efd24bbac99ef909cb6257c6df3d176f62c97e8d7d215972", + "public_key": + "dc395ac6e034e12e6f21ff95a9128255b528e124d8ffded95266fe630051567c", + "path": "//12", + "address": "25rMA8LSh3iTbqrtQ957Ny3EUhfYU2SgiksbJwxbTeh5cTak" + }, + { + "private_key": + "8be01f10711ab8e0b1acae748e082c28d8c84570c77c00145914489579298b0c6a342e4de10c6a549e36791d66dd23656172c42c7446c2929fe24aa4603a0bac", + "public_key": + "40fbc3abe1ed0ba10f638c7c569e336962c79edbcba4d5a897eab53a9ebd9163", + "path": "/soft", + "address": "22LoSU7vdtnqkMSwLgfThMqbcCEFZqcXpP7a8b1aqWNZmog9" + } + ] + }, + { + "seed": "42ab73e917bf6e6e12d816c4ac4f59f0d1c3267fd21c787158012f80af569316", + "private_key": + "60d3c5fccfa740690c9f31c676e342ec775bbf182f6e66f22dbed1ffa8608f0cbd1fc0dffb972d6725a8270e377b839a2c40a6cdbcb2f7d764c882424864cdbb", + "public_key": + "1838e8534e6a0185d3ecc4970fffcf1de60ded8ef54442a437da715c54394543", + "path": "", + "address": "5QBnRoUtZDNW1kXEvPaZx3ufQgm9SzKRn8r7sehs9ud9mVXq", + "coin": "CHAINX", + "child": [ + { + "private_key": + "f95f6c6cb2fb04d550e8c34376ea36c2cb561979e5b560c577c8fa853da2230f073e7043d962feabc4675418f251bbe6b3cd1a6eae0660301fdf52e9666f6186", + "public_key": + "4ed7d68ebf3e9293be6f8887f77e4642ef268d4dbbd802816f3a5fafde359e6a", + "path": "//0", + "address": "5RRQE62bYrxECudr7GkKwpuXjzn1YCKocgV2SkM2Dr8TCqjn" + }, + { + "private_key": + "311c4fbd9b868290eee1b7b5c68e4c0bb82c12c86c4c313c6ce00dd8a21024015c9fb0bcca76497a78444ea713c0a7452bd76291c8f20acf184f612fd5aef9ad", + "public_key": + "3490b140a93d75c24b7e50e07e56e35d62222f92f46520dfff917a99e9fee50f", + "path": "/1", + "address": "5Qpwr4jFAasB33nPm9cCh9bgfT6i6MktEcyEbZ2m4B2pquEh" + }, + { + "private_key": + "dff66c73bbe64ac5fcacefbf98ee6cfce69bce41af5d149735afe844ccba280d757605d7a3a0cf3481b8341d7a2410278ed3e21a1c7074ab15edd8175ffc6130", + "public_key": + "8297b22683007b7cbb9f9263d2feb57d4722a46eb310075bf8ed134c4a9e946e", + "path": "//hard", + "address": "5SbFfN1oEpWroGoesBe1ZDz8MBH8ewXFZ95J9Rmkj57CmtZB" + }, + { + "private_key": + "ff122c5b2fd7a5d68b8bead8b3dd6c5646cb28d30a1c6259af53c48b7e090408c1e2234a4c020c7553650bc319d745ed0cd23805f7eef41bfc7df68ac9b66092", + "public_key": + "e07484040cdceb02888f9407a215f47557bc6b0bdba64fad7f374984253ff071", + "path": "//1", + "address": "5UiKiHkMnyjc28777XBSbuSTFdiUsSh8yHuYLhU8isW1A1VZ" + }, + { + "private_key": + "dc9792ed002e43194afc66921a3a22d33d36367933d909c177c79cce6948fc04fdbefa3db2c840200d959491ea8bd14890b9af23dcb4bbbee63423cbe12b1c03", + "public_key": + "6e8a07b03c5076b32cd409b9539da64215dace9f98016393e518c26f2af6493d", + "path": "/0", + "address": "5S8xeMoTVjL2JYYFk947qGig7kPyg4dowbM1XGgdteawqfpM" + }, + { + "private_key": + "3ea92b1ba2bf1594501f41cd8507a14e0314c49c83ccecb3f044aeadf8501b0ebe439a1ff0aa4221b504ff2f968da0a09889719a37fdb281b4dc80cc6f22838d", + "public_key": + "fe6e4add2300876341e85f18fb5cec3c08f9813608980fed990ff4be56d6315c", + "path": "//12", + "address": "5VPdJPGtv4RwWRjXeLQBZsettXKkUHshD3AaDm7F5RmtYhqQ" + }, + { + "private_key": + "e33a8a89757499ce517ae5f4d997344e2768c78de0e62638f4d89883b7bc980878e6115f3367ac86fde94bc8365e85576b73e8d7f033628ac587c2680f940204", + "public_key": + "cc06dde0aa6d5008679b187fd0268c42d46b8109e3c39f1c782299dfa3625805", + "path": "/soft", + "address": "5UFYBY1NxAq3a2Sfk8x45rA2vMXjGEq2vTb2NivC45ourhLt" + } + ] + }, + { + "seed": "a60ec3515f8267137e53e23167e6c0fe181cb7d5add59f3f6bec2b465f82569d", + "private_key": + "9b3fd8edef766a7b94921522db53df05e12361bd34e65c316f7660d133390c0c69af8aadceca421da2f1b6c97aa615e0b88eab39807b2c7222223cfa9c5d9fcc", + "public_key": + "b6a4a84a6bebe214538d43a52f1424bbf3ac8181c9eac9d94ac03497ff1a2b7a", + "path": "", + "address": "34sfoJ2QYhyf6e3FvsseLYUapWm6FfCEy5N2mBcvXT84sKwt", + "coin": "STAFI", + "child": [ + { + "private_key": + "77f77edea7f19f4cc95462da44b4f69b88e4b8933256a1f3c6ecb20d1f084d0a5576e52f3429d896484eef9129ec14e2555981d559c1b27de33694ca91636ca3", + "public_key": + "fee2d0e14981d0a005940c6780da3cc0886bda13f713dcbbe4427a5bcd1f6622", + "path": "//0", + "address": "36WPiEAWnzXzrfneR7D6HJkEuFJg6Eo6k9Mh8PpAYkAnY3mW" + }, + { + "private_key": + "c54c8cddda9311db96776dcd0d5489db6cc81ec785fc637808ab2f88996132060e07a430100bb4377c8629579775a0c6f035c9b8203235af291af35bf5293188", + "public_key": + "fea7f784e84c34452651302d6ec62bcf8fb01b8a77016508ae020a996db44538", + "path": "/1", + "address": "36W6EHJr4H9YVrwTVAJQFgS6G3SA7v2BV8NbEr7tZC7fZrFU" + }, + { + "private_key": + "75ca94c551d343d5e8e9e1935f6131937b87edc87c95a5f204ca959c0646230bb08311faa283dfcde67cfbfa0b22a1858f716d92418e36e0f7866715a5e2107b", + "public_key": + "ecd793651241f9e67f1490a425cae5a9ab5b0cea8e98d1edabf81f82f6845f4b", + "path": "//hard", + "address": "366jWa9rxvmTyJDbyn6TQRBaswKbiouDxgCuhkzj44Bhj1mm" + }, + { + "private_key": + "72c168fef33e4a26d309153b85cabe40eba471798e0beb0a67609d924f89720bb9a36159efdffe82191676fb129262ede702baf64781ee0159c00a2505c39ea0", + "public_key": + "2602e1d116f1833089cbf32fff4ae6cdd85ab9d32f4676dc12ca1b36bdf1521f", + "path": "//1", + "address": "31c2r39v57t5DahMN7KRrTsDcJ6ZHPrJjUwkqo6CCVR2KqYZ" + }, + { + "private_key": + "1f88fb7a7bf701553e7f30b93ecd152c46f74225bbafe57e95c8b821aa44a0094c4c3280af2d127fee8215ec50aceab528dd92544de837a30b5f1cd703ffb45e", + "public_key": + "8ea37ccab98244203f073062efb4fbb1b20fac7edcda4baae30751b49756c61f", + "path": "/0", + "address": "33yDY3YMG2DFNwTVBXnWxmZPSrBxypg7pEEBNmr95Wy9JcGV" + }, + { + "private_key": + "c8662460b4a3e0e72023ebbf742ba6ad27d7b394e95f6d6a5a9ac56a6dcc3c0843ababeef54024840ede3b361a979599958cd051921fb91e99328ce13fce7660", + "public_key": + "7c9602477e9417b22f2f6507a691b2a7471c797df31ba0dd476d59fe90fa3132", + "path": "//12", + "address": "33ZYfpftCRCBXGCg5LmqiY3UhChu8wxyoJWoYKBzTMd5BCNa" + }, + { + "private_key": + "7f4ff6952be170b455cdb4e1738699e5f86f6049a0576fbda774326acc225b059fb4794973a3af63d4934c579f50c04110d227edb0193c213f37217f66320655", + "public_key": + "fac38425c9ce1fc972c5c2bd096e59ed8a7e53c77dd12416b5fe561a5c5b9d45", + "path": "/soft", + "address": "36QzDqUhA7Pg3BboECgyzMT4q4KYFN7zPHvTNGw5thSqjMxs" + } + ] + }, + { + "seed": "16404f415baf734cb77e33b9263fd78090fa2f1cd97dc9cf5e9bc86be220ef18", + "private_key": + "d25b65995fd20f6d9814d63b7110ac022a69fcb20f1e44483dd99c6a28dada09345e649533aa62ae70456b7695eeb88030b6e11340ba9296bd1c73a0044883d7", + "public_key": + "90b5624d0d6338ed32dcef581e37eb07503ab799faf3df1b4f700be29b367e07", + "path": "", + "address": "249LN2b1FebvMXwupd4HDWHF7ofFdi6V2UFtmCMd5dHKZZMX", + "coin": "ACALA", + "child": [ + { + "private_key": + "15dae75539c98d2a629f9e6dbc5472d68c5c113f0eaf67e4bf8c9234f603270815011a18743652e6bcb9f5183b77807937e52eeff815e3c00a9bc9ebd124a2bc", + "public_key": + "66a5333db3630859f03fff28dfa21bfe0dedaf8abb1ff2f2123f5bf9e62a9962", + "path": "//0", + "address": "23CBYYHMcHtXuumeT7nToAURLnp9wZzJXFscgD8RnbgkjNeE" + }, + { + "private_key": + "a8c16c973389bf9b6f180e7ef1599ed961da78194ce4bc09d22f88d66391350f0458da50aebf4526b598591be558a5bbad05eb5f5d68b4fa171d7913a7f2577b", + "public_key": + "62f110a42a674d3c33240f939212de33d762909358c95e1fe43764870e23e449", + "path": "/1", + "address": "237KtYxMRTuH93F8UY5YsdsoxF5Dwk3fJSoyCMjHM9aivz2E" + }, + { + "private_key": + "c9bb005075bb625e34cb7476b6a42cb7114ae451854f48319818543df9ce470d5560834284f983b906558bacf207b2632011467ebce0099874c71df056339fe8", + "public_key": + "4c0fec3cd55473a54d8364880702105ff8f31cab61b17b5c19b72181af1c2626", + "path": "//hard", + "address": "22bKxLjXVXLGP6ctgLKUHgedrwCyzbkADoXw2tjSiCChM6iT" + }, + { + "private_key": + "cf4fd69ee2c94e88ee8cb407e8944accd5d59fd9225ff62520861fdb9247d10a15b870ca54dadda08c6d0d3b7b39f570d74394a868492441503212a22be9ba55", + "public_key": + "5a4dbd90dcc62644427fc0b5019fcc3163aee8be5d5739dce6b1a8f59ee7b745", + "path": "//1", + "address": "22uzzKMz9THKd2V5dfMWkAJsMQYkzTCfXoDMAJ3GgzaGzbjg" + }, + { + "private_key": + "ce46643a5e22f43a50268799a87a8ce619a58f3b80e5fc7401ae09091f9f780552b048e336e95bafa44fbf7729402f36c707a55ad54786446183808e121caf32", + "public_key": + "0864b4de69139bed7e0573d8152b7502c9ea2f8450f8ff53fe9f326abf9bd860", + "path": "/0", + "address": "214btGoE3Pk9mhewSGP5YFxZmSBV2qxgvrSk9AZk7cgrEVWL" + }, + { + "private_key": + "4e5065855c06a9c18a2e19c60f8b3f68272ae2d96023483bca2cece8e9d56b0f273319e98905f289146d35095e7b5cdaf4e81a7263569d9b2e2894b6b83bac0f", + "public_key": + "321b5b6520ce5a714cf2d37788c1010bc0a58e455abb7be1fb025e269fd62829", + "path": "//12", + "address": "221J78wbtUSPpcL3gDbXWxdnn3zqQwhfjVotV1AmQUb5mAcf" + }, + { + "private_key": + "87054570447516cde03ff5f62e12418ea0360213c164360e613713b43cbb690fa378c87ab9f7a5d09bc27160c22f03e8dbb34b38e005088a7b506c3b09a6c86c", + "public_key": + "2c645447d07165fd55153093f19e6b7a36ee7bbf570fc2cc5a621ce52cdc9e6a", + "path": "/soft", + "address": "21soVknbWzEX4j4ZuirNyyQKd3w2r6v7fmMtsy7cvmYKmrag" + } + ] + }, + { + "seed": "5429d51e62dd17f8090e9844da78a26c1e51a6f2a97e0f9e0b6dd762dc12ac3c", + "private_key": + "304c40a677e199c585429307c44c0b560474a32c9d186dbb6a441a1ebd173f0aa184fd4a5af2d09f5e29e87ad57701fbb3abf539e39e258bb8796b4529deff5c", + "public_key": + "a6a951854b7608a0586c0eef263567d6190973e74ea8174c753c027ae6f9cd19", + "path": "", + "address": "GLqmJoWiFEBzHgxSF6q15TYwM9Yv5GejztBV1DjDGpJZVrF", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "34bb4d2feea670dfdb0c236bb21e1dd393ff20e968d61bf8a4ff25470f6dc80f1049ccf9410058eb7b4beafa9b26b848916ceb4b4ca9de2ebe8af38b1d68b6c4", + "public_key": + "96dddcc867d42ba4698dac39a8d681384dd49d9ead741c07699a61e72f61b34d", + "path": "//0", + "address": "Fz8cBYin4Kyvr3vbbbLZRWWURiAFjaVhheieASY9sKMG8yc" + }, + { + "private_key": + "f26cda3c7133164f64cc4f5bccfb4d21a2a3bafa5d29c8392f0996d1409db903b627fec4ac9f839933079038fc8bbb1b31bee73a82f2c3f58d887a6d608b8b3b", + "public_key": + "704deb545ee16de178aa7d1fad9259c2793a02350239ad6a4309250a6e1ca336", + "path": "/1", + "address": "F7a2ZXPM9mPJubudYCed6u7V6bgXXjC5BycC734fpmyW4Bb" + }, + { + "private_key": + "2fe102dd1c38a2f7238ef3c8c0cfb1205a24575cbd5ae895f7af0dacaf56f50f7daa0135b2aa48ac3586632dea7582b6c04f207874d456d02654bf848103d808", + "public_key": + "be2aec9c118cf47f976e9b42b64498ef4986331db98f41b0686b8cb097903a32", + "path": "//hard", + "address": "GsfNEzuhXwfAceV2dD5V8Zi32eDJLWv7nZptKGYwjUCScy5" + }, + { + "private_key": + "d21d2da4b2a5d7fcf2ddc6767a42a78103f2cbb2ff478c375de5e73c3f39210cfa7ebcd6c5439f27e1d2f88d17bb6c0f582b7583c26f3bd0b05795915f4ba0dc", + "public_key": + "96ed36cbd051a682f93812548fbfebef247220c3d47b0df36f7f8107d6bbe709", + "path": "//1", + "address": "FzDAgfzEE8U6DAahCweCbfkTvY9nJGJHEJL2KWg55YoJab2" + }, + { + "private_key": + "79ede78da4e8a357169ec350ac164db4cc168f5c3a1e908c2340c8258c84fb02073b34bfe082853a9cc956124addad6c9c39c888bcf79eda7e503ac143022054", + "public_key": + "5e1a7b21ee21aa34416320faf30d83ca2cf661054846ad5e5bee83a972dbd315", + "path": "/0", + "address": "EhhtJtN3J4ov9GidNFDmKE2MHNrcn9NSrQw5SmFtwRJyfSE" + }, + { + "private_key": + "d010241aab79c2f80cfb869db01b7ece4edcbb593591b9d81dfa2569085adf081f5190d0bd96aa2433145bffe86a4219c27dd1089cc73ef6388b731cdf83e844", + "public_key": + "62597cc02095043349a0fa379ee9ac73b1507fb673e42d2b6317dbcae6f6d91e", + "path": "//12", + "address": "EoGnzVZ2Tzy1SdGk5Xk5QtwwdJf3DdgYcbed7eXwLFHVp5i" + }, + { + "private_key": + "4c4844f5167c9f97da857063296b6bfd0a7eddf2586df7d76199de1a3934ad053f1abe49f8d8ce94730cb6251ea9ae4776c2f0429bf1ebf163049898c7b137ef", + "public_key": + "522cb52347c24c843f6f7dd97810cebc9e2cbfb9aad3be7e1d28cd15ae11bb59", + "path": "/soft", + "address": "ES4j21JuiGWZbWx846YomLe4cQaXREm2i98Pc4ZcYskZXtP" + } + ] + }, + { + "seed": "7e24b49e3287d3996df3ea3af5038052d920969abccb31eae6da2442e04131f5", + "private_key": + "7c7c2c76acc3de624a395b98742bb8d33b4fb11d37a5ddfbee36544b665e8e0ec9d73d233a8c1db7ff2d97820b4554c379d8309ca3a0573680b4ecae39bb2639", + "public_key": + "aad9fa96820eca593045697f93112321d858c13d6bc15f4a23d2e4d2d561034b", + "path": "", + "address": "34cD4g4CwfL3yVV28h3ghiuEJUjhRXgwKwUdcjZVvawA3xs5", + "coin": "STAFI", + "child": [ + { + "private_key": + "e60d960bd1b752b6ad0a0e98c762f592ee2a2bb2cfd480916705e1d54a1f7e08dcc227b5b988a9ca8a67e02a6f7a35afb31c422f62a4859808cabfd779936b33", + "public_key": + "d63f571a9ee9232e2f61fe5e427ad9061dd8ba550b7c7b595e42bc42b98f8148", + "path": "//0", + "address": "35b7EWorFswsa4X695aS9rZJYywgVX2BkeDN523thvtDfY1r" + }, + { + "private_key": + "cc7342f232ad9b7553392224b82d24d42f829be94f24481abf1e21ab8db061049e28e68a6dfe934013aa6444e7ea8ebb5ed30b4a878e03da1dd3515b68efc58c", + "public_key": + "16885b16504218ff0742b17363e14013790e7bcbf731d0538b1c0b2f10629030", + "path": "/1", + "address": "31FjjJKg6boX1Lueaj7Y7fimnfWQN3aGQFPNPZDVvZULv2AY" + }, + { + "private_key": + "4e6a635fa162317906b0bcea729c0973f0a86be7bcdf803dc97a88af268b3a0aa0aa6cb9fe049ea76e560f883855fb2c45d9479cdcde795a5d095029fe07d24c", + "public_key": + "62971873f5705266c185f1e234ab503b3f2ec8d9b2913b53c8c3911e2bb01831", + "path": "//hard", + "address": "32yTkLMey9dVyZbXgB2g5Y2nHxWCuFqkjpx6bjNj6S5omw2g" + }, + { + "private_key": + "3d44a78557b17c35f9a35d4b06aca623af673d96f712e033f1dd31e8d8ebc00da123240a249d4f5a07d27631acf727044c6ba6c179861ee081587a5eb2c6b008", + "public_key": + "805745f8648603c83a0c10fad5888707a9ff50802f4d45c49eb166dc7cef5767", + "path": "//1", + "address": "33eUE2HpbQ8qNLNpCYFEj7XAWG8bgUSrxGetWP1E2zPPB97r" + }, + { + "private_key": + "b576fe78520e0e277c342c8ab5e22a3de22213870d1955cc83266c588b8a210eccbc943c44abd20e3c55aa0e864c71f7a206c3b20fe7c158092381d94e438129", + "public_key": + "46cbf18378f8163f8c74e537b6dd76bb22ae702ab39fc6aafad30a8b03c59c21", + "path": "/0", + "address": "32M277nTx37bYT1YSLr2Uu6iE6L7ZfXtY2Sn8LdNsT2cJZMV" + }, + { + "private_key": + "dd9a44b89848b37def6369243ea0c90b7a277ffacdbfb49745333bff481a760fb775120a5d0fde10b96010ec28ff3cdbcaa9110ece6782ebba938a3988e83912", + "public_key": + "b4802584e8aa981367e16266f5f959ce004457a156b3c7d7b93ab4859a64404d", + "path": "//12", + "address": "34prrfyczLMpKFGySG7NYfzNp6hA1NiHNb76GrDKndg1HhUu" + }, + { + "private_key": + "15e2d79cc9aab148d7f87f58465138cb1b9a2f8833a0d08ad00715030250eb07c74263f87b7f7efb4006f25470c545e4e22ad51e23d67f3c0360311f63c7564e", + "public_key": + "584879281a180a1baa99c741b1fdeb21183dfcb95a0ead15a0ba13071375530b", + "path": "/soft", + "address": "32jwuvz2fwcVifZEESqMT73rC3DAG4yrzytZymD63tgRYLyB" + } + ] + }, + { + "seed": "9cdf12c29e1d3d2cba543e4de7993845611e74d53674494a26260b0a549eb4de", + "private_key": + "b99ba9b9fcc615b78a969252f551b82cbbd0441f309a123e4058080b95a7390954f74d41980236e7c20b3ffb71443255d6edd4f51fb756eb49cd8c882975fc5a", + "public_key": + "3892629633bcc6fd75fc2ac2ab1e63bec53a2c978ec4c793904df7fc0beedd3e", + "path": "", + "address": "12HBAgoDKLgw69f6Tf89MeBT2xyiss4QbKiHTTaGKSQGBREo", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "4bb38c63f3601dd8270e3e0479a44dbfd94c19834342ae7c63713d815aa35b0876a117d9fdda34697657499a97e57941544ad8377a177d53b97b9147ead36e20", + "public_key": + "f8bece8d1a883f7904e86f957fc745a983e8be3aee34037d41a23c974f511c09", + "path": "//0", + "address": "16d9ZJLZJaj2kouuwkQY1WhVPRm1134PV6BvHHaC5bsZ1tvn" + }, + { + "private_key": + "e8d7c11d883f1bf4442cfee41d21ca3f220d33b5d098fba3726964a4c3f78c098d12c6d0566d33ecf49c59e1ada2b4af823b5317d1eb07013567b3b9739c1433", + "public_key": + "d009aa771b837f1d86d678d782c88034d11c020d519480e5ebf119a0e5179d1f", + "path": "/1", + "address": "15hmqDn8AnXbVGuTpLCNBqJXXynvKY95oGWVr4aGoqJDtNHJ" + }, + { + "private_key": + "5dad8d9bc30d3c6227156d536c219886ab355ce151dea73aabf656561806160f78f5396eccb721c4861e57146ed636ee306d1a7cc1e40944ea8dc6860fdaa25f", + "public_key": + "a251f15984e06d22a842a9b33b6a832477290c81b3ea947475be44603c73f927", + "path": "//hard", + "address": "14fq6mR5vu5NpdXKNS12oNwAWZTN8fU6bWvxiaVq9AfPZcve" + }, + { + "private_key": + "994c3577dd13544b4419a31da9868c663366afd77e0e227eb3d72e52639f150cad30a08e02e09e6ba8613908c8a49f96190b60f987fd9a033491ffdaeb29e631", + "public_key": + "d25981996f20f4de306513e4acc902bd48a5cdd997b3a0aa6ecb247789e3b360", + "path": "//1", + "address": "15koePmBJvNXxESf9Pm7HtAbF9YJVmsVvLLWGWoSTP5p7Xs4" + }, + { + "private_key": + "bcac1ecf722abe6acdde6464fdca7da524a8dbfef1fc2f1a651bfb38dfd2a80eb1ee2ba6351d9784c33fb5d475fe7c8effab19e2fce501ac964c2828ef471bb2", + "public_key": + "562867f4fe1ab3fe95220c565644270ab7c88451d2742f1bee9a1c3327a2272f", + "path": "/0", + "address": "12wy82iDJEBwzHEpV7jxDnTVBAzkxCKE9A2rjtsXqSNHTCU2" + }, + { + "private_key": + "3807fea27fa8214b7c6b43839ae4353d3247ebc326b422cdb130bfd02850280baa340c3df2270cb0612bef445588e5452533fc37676ea59b2b8cb74c53402984", + "public_key": + "80074d0699f19f959b788da6fec0764f13001f616fe14ffeff0ce568bb241d57", + "path": "//12", + "address": "13tsJHfXZiR36mueixHF1esaBmxiAAQ5qBiR5mFTewWKZfmm" + }, + { + "private_key": + "face11cdafd81f0efc0822d346ebb0a6df6c4afca44dcc12f9aee74dcd106a0578296d0a5a62155ef7989b7758ea7bb18bed578c7561201cf5e6877fb4660e9d", + "public_key": + "eca73e33b08bdcda68719f25cc41b680e3bf6cf947b0e0e10fcdab2684c30134", + "path": "/soft", + "address": "16MHyyZgSndjuB6mJie58nVKBgrZa4NgtFm5qnvyk2EYffZY" + } + ] + }, + { + "seed": "2bf058de2424b2c2345619a0f950a276081e0bd738e3d601c1a5b33c6d76443b", + "private_key": + "04bb11744da3155b9d37e5d8b9cd1cd8932ad08567c1e0c7c65e998927e80d0fd8bc225ed25cc2f0a6f3d223e64b1514690cde0858cb48003185661de43ab41f", + "public_key": + "40e6d5455c86eadc6d2cca9636deb959d55c9a9272381875c17e3b93f1f23417", + "path": "", + "address": "12U6dukn8sqyajptXW3Aq8ib1sJZ5LhTEtUDnEMR7stvAbqZ", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "7a2a086f18cce32acafdb673e30a1abc77970f0fd3f12038f4b2088479a323089c56eb0d02db07b2d0760374c79a2ba4dccab2fa4a4c41e8cb9070df6c40875c", + "public_key": + "febba0e1f632af04ab48e282b6b671645fc73f3917e5f29c2be3de37ff0fc569", + "path": "//0", + "address": "16kzuCd2Kb2pGR7BtJGNF8XRJXzK5ULFofqT6nU1SZFoDUNR" + }, + { + "private_key": + "97224cb9d1fc487c92904ffddac5ed1e91cd03c1e90f824dee4f12c986ab0e0ad49828b396e3bf9f4a4b5d8e048d260c019fd84523ba0712e8d786813184da95", + "public_key": + "48d4f57350b3eec0ac18577ff5ed41ab5b513eaa7cd831fcbc971a63e8f7db3d", + "path": "/1", + "address": "12eViALqezrb8GwTQse9mw63dqowz8BfFJaF7i9vtGB6kPxJ" + }, + { + "private_key": + "c25e1489b3ab0d7c45d0d54ed27740bd18eb9f6d980a9e1945e613c66d63300dd185b183c4036e6a153e9abebd99d38510ab4f413ef1726aefbfabcf87bda1c2", + "public_key": + "aac9e85c100f22ab2d146e8554de8ffdd00d5356abb51a43798fb811d44d684a", + "path": "//hard", + "address": "14rw7w1BhQyU8Yg5dCbLrryQzbzPpT9ebip9y6VsjmUWFYMv" + }, + { + "private_key": + "4d281540e3facd48d7593caa44778afeb1cea12ddc04396c2eca46413f4d500ba5ce337848757451268d8d37471e85b76ac0faa1eeb807e17cb5631ac45a6bb5", + "public_key": + "16e1493e9f78550a63785ab7906d868d123221aa11eb0fc3762f287fdbbcd90b", + "path": "//1", + "address": "1Wzyh2ueBxqjvsKsF8ZWKdqqbX1btE5stJafpMdaz3hH5H3" + }, + { + "private_key": + "d214786a0ab7c09420d376e2765425cb89f16475ebc2f07d0c86f9097e141a09436dd193d03b2b4382bfed095aa150dbb16c3ebf5cca80176bb66a6764a5b236", + "public_key": + "d07e70dce59fb395376c80da6ebad286301ce8a21058a2677f273545735cb916", + "path": "/0", + "address": "15iNXCys6CyHtjveFwDja8o4Ns1iXtwXWT5QakMpYCWpHXuW" + }, + { + "private_key": + "6bbcbd1c8dd50bba3124658dc9b72509f6c21230ea49e68e80a97b9358f6230bea9d0cb1773cff6088c0b9f0cc86f97cdd8d7078c4dbda9ab4a98aa34b68ae3d", + "public_key": + "f431d7e836adc05c5e09e42abff86ffb9dde9d0a6de1a748b463258a4dfa7f65", + "path": "//12", + "address": "16XBVSs2PnbV7LQQCbfwz9DG9Tbvp69qgmWQegQhPZt5vUdy" + }, + { + "private_key": + "cb4fd1ac55edc5fce18eb33e4b673cca8d8a807126b0d1576de0a29616cea00d1fdddea018e1ffb2541e40004b849e38038a9d441627bcbd04079fc44b1b061b", + "public_key": + "42fff67ea860d13462a049e591d403f1d07601993b0df9af24f2cc0360e3a97a", + "path": "/soft", + "address": "12WrCSXw4EhhjUyLTzVVkmCzhcGRnpv4WkoD9vwk3AGunYsB" + } + ] + }, + { + "seed": "f0cc0068044b027014fe0b863132537c887e22538be39815db582a509e6c7246", + "private_key": + "85dbd3100967d2eaa319f258587474088f9d37b4c3b2a249cfa064eb5877bf0ec0dcd0d7c5535868b8aa966fe5d3d026b03baf626d60bf14fc89b3a0152666ad", + "public_key": + "940665960c4ed2693d314e75db0012d59186397a7156defd38016e937585592d", + "path": "", + "address": "24DgaBKSxRHED2oRNmtJpZjqXGrv5Xto2Fpafuh2CabMBFMn", + "coin": "ACALA", + "child": [ + { + "private_key": + "598c586435a3343950723490c2d03f3011863480c7da11ff0841e02b4c49c60bd34c14d34e5c4acad84267c7b9bfe180a9a573110d8ae083fca0df334bb13188", + "public_key": + "6ccc53241b3cd7a8078bab6d9d05e7c61937dcd1a7e676aea9e08a35d63e2070", + "path": "//0", + "address": "23LFTJfWBr8WZyhsoBVEmLNW3zmTX8dQXhPpYupZMEpxoAEf" + }, + { + "private_key": + "7777ede7b6043347d99a470aaf6bcc6ed45d45256e458f7506a70300d033e80b4f69766fee70b4d30d9d757c9438dd13648fc567cb7c6b38a00a495db95f4b04", + "public_key": + "68194f981240e3e8799df53d1e01e067c6346b6dc9e6a9ed145ecbf61b9afa70", + "path": "/1", + "address": "23E65rnZxavvJm8nxSnLfeZYTute2oe3hQmJQr5eK1Gtk5cE" + }, + { + "private_key": + "7c35856a6cd31bdd6ff02efb602b195a7730cb7f097efacdbcbab5d47df33b0ad57ab5be76ab65bf9481d96c18a7bb2342adff9d3066ab2108bb9b6dd183c88a", + "public_key": + "06ba4f780190400a9aa4ad66f84cf75ebf3fef5aba2f4a97c329d71a0f57022d", + "path": "//hard", + "address": "212RDe3bRCRyqBGUc3jewmDnti7qAGD8ZvhefKRsk6UqFB7X" + }, + { + "private_key": + "16da3f18e4874441536115df9b248da836e201c8ffefc0abe9fa5d19dba84b088810b35518f1d8459e30921652205cdb91685cca291972930473e1ed1fcad978", + "public_key": + "9eb89583665cb41537bddf597586fcfe0f82cfe05e0d6ed6a9b3d20e8497c740", + "path": "//1", + "address": "24Thz3dJSw1sPqd4Jkd1jxjS6QpRaKo1WWWZgDbna1fNDfc1" + }, + { + "private_key": + "96c703aa4896623b5b933a649c033d8aaa3691ae6e91073311b71ff6d0361c06ee3b6544ef41cf5021dfd5eed5cdf6f28b27075c5652632dfcb1d117e05e6fb5", + "public_key": + "e4f211b27b62eb4d59612dfa68145bcb1e78c70f2c841c1a56fba32bfe59862f", + "path": "/0", + "address": "263nQuLFksBuB7bZGkjWEsNouS5jY2upzU2vBgd9WLEfz2A9" + }, + { + "private_key": + "485a373ed020a7ffa8f56354049aa925a5787c16d3912e6e2578e6ac10a4de089fd1bb1fbc124b7122615a2d9c70ca4efc68163698fadb044da99f350d661ec3", + "public_key": + "1e5d221bb6e3a8c670d4f9ff5e12f780a2ab0d9bd0df6dc40e1432bf271adf1b", + "path": "//12", + "address": "21ZQgtYHeV6rW9ut8Fd7kC4dfuro3kVEbpnpdDPSMgJsEME9" + }, + { + "private_key": + "0434d6be546f57280468f26e46a6270d03974104df010c5e3f1d7c375b43160e99288fb51db5fde3aeb3dfdc83ef275e7e571ca5953c60f860e12b81bc512e0f", + "public_key": + "40c0ffc760e69726028a0617771a39af5cee410fce3465dde0af44f1ca1df258", + "path": "/soft", + "address": "22LVyy4qZU5NgyjAUmMKcNjwacbeAKQ4JHyCHTRRHyGpcNCL" + } + ] + }, + { + "seed": "79f1e1e6736dac108d3005cf8886aa1094026877d73f76575e672edcdcf78632", + "private_key": + "4a2146a29a9be1f92c6cc6a479cdc859ee6c543a465a6c5e69eae90bef7d6109e178aa595e94a306d4a3f9c55e02d92d7c97677a8e29c831e87fe7d93fadb874", + "public_key": + "dc019d3435151dd7a7ab9147529990ba3edbfd79c3d6c20a7a4b0c85e42fe12b", + "path": "", + "address": "15yU1pVFwAMk4KMQm6hKXeuMqMxoNuTpDcfnz1L2saQsUGR9", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "88e1885fcbda6ff6c627d5c26bebcd44eaf8c20b6f841a8126e42696e8a5b70d9ffdde85993b70c9385602e09db0f6ccc14d8647cf5a01c04cbd3ff2bd59762b", + "public_key": + "5a9cc28bea2e4c9a917ff6727f8950bcdccfbea1f50a069015ea27a094105428", + "path": "//0", + "address": "133ossQtxTHMxNqunCuyTJN9Hswsu1pan7DnfVPgZ8SvTSqq" + }, + { + "private_key": + "f50853e29d103bd71951ad418abd377fc41b28babe17cdccf2e3c0b373d8be0be25ad014ed92adc9b74c4fcf784c1c4945f4fd618f4c5092fb18e08f86d31f98", + "public_key": + "5c413e8da825816b7f40bad766783a442e36860d9b3fd838e5e9d5ab1d6c882e", + "path": "/1", + "address": "135xneWex2HjjKnraUFpY1JdEcyFpTRYmciM7c9fiho6Pra8" + }, + { + "private_key": + "b2f4a088bc490b7a1c79a7e6df6020d8c53514eb5ef0fe6f27205f714241f20e64c6e4149c36e73f72b63aa78b351387cc2f50474e248c38d8011468edbb2e2e", + "public_key": + "f65b66dec965e625c0405a436eca3cadd2426dcbe214eba0baa246d2c314d709", + "path": "//hard", + "address": "16a1w35wmZWg8jTRWDjcZcfoAW4fZwwbE1xY1JatfCkPkUCX" + }, + { + "private_key": + "81c604d96db307f14c916a2d41ca78992dbc7df1456816f5187f7234a063520f7433118974504ef727cb8ac7752f507d2edb8a8bf8f018af42325e2c9c16fdc0", + "public_key": + "167924bd1a5c9f4434089b5bdff83569eafd606a406f0d4c10d9605378e87827", + "path": "//1", + "address": "1WU3Mb8xW14g1ZMfi4Mn9pCWMuoKfzitmCgb6Zo3npjgPWj" + }, + { + "private_key": + "1c841ac6259483a1c9ddd778ced4294d29c7581e7714b3af53d35c42eaf60902d374dab6cf5570398adf156d44e3fb4f6eb8a8e2053bc619a59090485ef9c4de", + "public_key": + "e88e3766ceeb3fcd97131e28112f0602ec68326d0cb3e8e7d503015d037f474a", + "path": "/0", + "address": "16FvMfmFPtwEiYoCPScmnZ8UAHqNtqMLjxUibLfcabPZBUoM" + }, + { + "private_key": + "6dc1d9af0e91f794919da4dc8f35ca3a90abeca1859b9973df38a1a1b61cb20f58659fa2a89b3cf7735c0414d5492f48d67ad2d5c2301ba8b3e162872e1eb032", + "public_key": + "aabcb31e2c3060a09930b0422d96ee18cc96fd5b374109e3149df5280578630b", + "path": "//12", + "address": "14rsCN42JEDBxM6nGeMxpUnP2evntZjw1UgvndpWGjMn9Ne4" + }, + { + "private_key": + "b9bbc0d314a6b994346062ec94fb143a27cd3b23f0182119de18897333adfb06eb839191aa5b1ab6e7f25f4cf2fc95c0b82fabfa87156c814d13a648bb89a0bf", + "public_key": + "3a1c734fc1becc311553ecf0ca9c91d11a18dc3d641feedd7ed7f2baf263802f", + "path": "/soft", + "address": "12KCEGssM5LUzi9s5cgzp8srcAqnP3aGgNCuRfkSS5wqdhqY" + } + ] + }, + { + "seed": "f736cf3026ec674d4249b2d031d89be4174613545a6696d651b7757072a62db3", + "private_key": + "99357be020a1e082e258dd9051a207c52c0f9936d7327705303f1118b4b0640b4091d12651c45f9c7e0330de1faf287f0e92e3e9c66fbface0ca7e604a6e06bd", + "public_key": + "64f866a3681bc7e1d133bf0296844cde203a53df53722b1cce32037e77816024", + "path": "", + "address": "239zAW36hRxUgVPC6pzCmaC3uRFP4uUGFAwBKVJeXAVMCiXz", + "coin": "ACALA", + "child": [ + { + "private_key": + "002531588ab3dee1c450e7acbc1ed8705d91a8309e1c98a67599f7b0ead8110c5e74de6cae661e8ebfdc59b424aaf7f1359899b7149907a5fb46ea52ccb08afe", + "public_key": + "d007026f0cca10048e8525b5e678f34e67f9bf9234eaa26022f0ac86e059c374", + "path": "//0", + "address": "25aMdNdo6gWriAZpW7gAy9REGxSCWfBR7PW2a2wMVLnFxrte" + }, + { + "private_key": + "c92e4fc9a8de54c57aebd9a4afe87a14add1515398a79d478ec5db206592ef0694dcf1245af3992a631a74519d6a7dbda86f9bf225603f1da7a4c59119f4c82d", + "public_key": + "cafcf2e23694927f670dffad8bac14b0d070feb65989851fcf2860daa3834055", + "path": "/1", + "address": "25TkQ9M1ooTuj5WZsJfR8sSXrdBAiNcgvGgRSoKSmgwwHhmM" + }, + { + "private_key": + "99791c2fef11cc76dbdd7740f9856af88529392f2bd38078f62b3c6d7c5cb70f8bc08636c6fd796f2ae7f427dd6c85258faff4bd54d94faa57e3cdb512be9b2a", + "public_key": + "dc39eaf27de1121573ddb17cb2cbdb907bde2a22937832dbf3ab56bd9c3dee42", + "path": "//hard", + "address": "25rMKq7j5jzpeMB3pTdQqthkyR8uqd6qQQXyAnjq4jY6cFYs" + }, + { + "private_key": + "4cbbbfa181f4295fc192f2bb24b489b0f8d70184bfbe2bd4ba11e04ec16fc90c625014c238da436b8e52fd5e0c8337f00e60062d6a85a7bd89c017a37f881e1f", + "public_key": + "fa64cfd1d455cc880c04d1034687cc77e82898627eea301a9ba2815c4f8f503d", + "path": "//1", + "address": "26XuWCNBadeAo7BJn6WB9r25kBA3PdsyrRoctP98sXLm7cSz" + }, + { + "private_key": + "efa8efa852de56d5924554954686845bce382470be74636d6135df2d08cc0e09700dc7ff87aee795d4b5aed506c970dcf660b5ef5a4a94f31439aad2a8c76c08", + "public_key": + "803692a0f324b3b4e8c7ee906f7486abe1ebaac563e90af11d9d7b76d0ab1a7f", + "path": "/0", + "address": "23mhvgfcisPBbmVD28xnNJQ6eHrfk5mQxhDoWdwKkSgPgwx3" + }, + { + "private_key": + "6ec5d0348cad1343c8df91e5ab72988b222d736de0ab158e388400480902310b8147a52e3b6291d1f7ac0c6f159b81d89e32fc55fb034edc9070f49e137463f5", + "public_key": + "24ad1ab39f3e350fb26399c46495c18c994018f7d241ec69de3f4620f3b8a06b", + "path": "//12", + "address": "21hgjRUJmXYhvNywY3TTRE6VQB2ApdPu628sV6mkojbdezQs" + }, + { + "private_key": + "cba14895749c098f27acbc36e36db1ee4ceac721356a713df1a30328d95e2c0dcd56960dec198427259b413d111c39bef33a02f7ab5e92b080268fd59342ee53", + "public_key": + "fcc4b3b8818ab4009a428f50183669a101727e9c196efcc21c78def29da50c78", + "path": "/soft", + "address": "26b25uFiHi52ks3TNZA9xFMphbJAnKMT4k5d4hAHnriJcMzN" + } + ] + }, + { + "seed": "d0dfdbdd53c20595c0afab97df163bebd9ad3bdb3dfb36e64a5bb758e537d01f", + "private_key": + "5dadd6bb75f7916da852ad8623527eee840e2930983c59cb30ffcab4911bd809401c61291250d25aa071602d03db17d3ec6d16d1dd3fde806d7633c0e615a172", + "public_key": + "0c01b0b91f507de56ea0033db32695e79576d43b5b22c15de9397bedd4088c00", + "path": "", + "address": "1Gk5TBR2o8rJt2rAN4QScyYnta51XKmndj5HvoaWU99f8eE", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "e4d099ea9d881c3e34494cbd7cb2db6ed62a7573357d180f58e4094021c26c0d285fbbd27c5e4d51bae524011b277dc4005273cc3dfd946ecf935abb508824fb", + "public_key": + "002484f03cabfc3e002b6972177a4cc3c3771b787aa97b4356a897d6bd107322", + "path": "//0", + "address": "11BrDLdHA2esyfx1c3zaJqYvLwFCrf9n1PrwFnnMxqhppzc" + }, + { + "private_key": + "5c1b00ce63272249c042e238683504c7f7f652ca0df0af681dc18ba356a4b009c2ccf7df9e7db3c5f9764a00d9580403dfc7a74b6b5c36304476a7afc76e8648", + "public_key": + "9c0d969765afd309ca9638da50be7b5d5365b0ac67d1e20cab6e4dc0ea8b213f", + "path": "/1", + "address": "14XcWP6E1gDEVb989vJnzctNX324R16N6bUgzmeW48VDV43P" + }, + { + "private_key": + "efd8f6b5cf283e1667b86749880b9c7c56e1b73cd42f1072cb7666b97400740fd0b1d2a906c65c729f9096649d7e5a23dc719cde48e03ec899aef8c499796f31", + "public_key": + "a0007ad3e18e71622fda692843587ab3e8b2b8c6995c33a9c936a3973c067011", + "path": "//hard", + "address": "14cnodw1HCJnbBDiqYaQRYEaszGvQrsnxgtX7KE6SNEV1vAc" + }, + { + "private_key": + "fd950c32bae27b76203a716715769903d62bc432868feda9a504f6d45b375c0e4ad1485d025fcf9ea42de1c64dfea305380db9f9d8ca6b801f7faf29fb257334", + "public_key": + "bc29c380439615072b469c9b2abc985513f9a5ad827c6fed83c9935a4c0d4463", + "path": "//1", + "address": "15FiQhxfYbQsaYakv7KBu328NXwf6eWcJftTgdbZCyj8Ukty" + }, + { + "private_key": + "9aa5ee9e3bb97bb9af4bcd3945d7dda2fca72b0fc1780d8fe5ea48d5b0e5cb08f59bc1995322dcdf5fbada8677bcb584d0331a038711d6184f7e1942c7c51225", + "public_key": + "10ef050419d879d1eeacc4c855355204e90b97e8a04a47b67047f771e8c7dc19", + "path": "/0", + "address": "1PCmedLJwsTDFmWfuo6EnaFMyu2fRQgSRsBLy2YdJRycmd2" + }, + { + "private_key": + "d4553a57e348254181ea43939a0c3b71053ba37a747cf8223aa37169c6c48b0933180a5f2dbe3a7f0a6dd3486bd6bc070f243e7183be5ce7d7fbf0198639fb70", + "public_key": + "08ae49fe47fff5a858da40fbd642554535c53a61a4ca73cc3d68753a8a5abe07", + "path": "//12", + "address": "1CPA9dBatnEtJTmqWSF6xgmvh7mewrZPXK5wfNf2XXCK1mz" + }, + { + "private_key": + "b8b67a64b65c5aeb318b9046f3d721d979fd5217e7f90427c49259f4a9414d0818278a07d99446b321b608716ac9fc02793183e3b6f2386d39589f0e6efc6fe9", + "public_key": + "523217ff5bca0149c38ed7efcf6312bd2a5ede35e350a5fc1988fe9ac8f14772", + "path": "/soft", + "address": "12rmoqQwztzQMEzjqHgLqUpUifKjMWenFFkG7vmvBqqRxLKJ" + } + ] + }, + { + "seed": "d480eaffef7a70c78e25254466a69ac101f4000afb55073b23c7981d0e1ae57d", + "private_key": + "cb2b49de7d121ef71a9bc69c6b6de7352864b32ee0b4917c091a526f936fa40b7bb3910ef58f825c495c337bdcaf3138ed3e092d4f742c33eb683e2142789fcb", + "public_key": + "ac2758fefdc32a041d1e3ecdbf74cbb358f15630c9bafaa2b8a9c98da6b8e50d", + "path": "", + "address": "5TXkJJ42jwt6Guj91KuKQv1PwAPgFEb36rQDqAV7YQXe8SPD", + "coin": "CHAINX", + "child": [ + { + "private_key": + "fcf40c366d9c63b88d496aff9a0c302bdeda0c892131f213613f95e163501f0df3d411da1f42ff425348e3a7f3538e32c77bb41f5899d26a9285c97ba96a123f", + "public_key": + "0edd671dfa37e6fbcc0d8f0df78bb00e3b14a858041660af6c1f42a8b3ddb632", + "path": "//0", + "address": "5PyWpDXUrFeET6ETZ1YfQJeQvcLh382qfF6i2dcnpJiPAYPz" + }, + { + "private_key": + "9933d1d2a08fcf183f6f0dc5b5c27b16b0e01d9f1849f81f23d7f62ec61ddd0480e2563a18597d5f467c04b27a4d1e55268d8755bde66a4c94ac0c386b406361", + "public_key": + "0ea27d24e149953cd70b9298ff3c6d0d706ee7280c0a95d3b5459db143cd2651", + "path": "/1", + "address": "5PyDK9pgrqjHXxwhafFnygDaeqmfXwSFJW497PEfKS3Hmbbw" + }, + { + "private_key": + "70e8a7bddecb17f77de0a6a8adc5f827c294186fe6750a7aff7d074d9e388d0a9506526df7bdc07e993aea7790507d7ee1dd87fbf269c850d4ee790e83995316", + "public_key": + "2e0bf5d35b3027bbdbf841a24ce55019cca3a9fc9a76b569fc23b0d37d05ad4e", + "path": "//hard", + "address": "5QgQ8Un8W1RuR4Vr6Xv3gNV9zi9nbDMmBoHwhCXweQSKUXVk" + }, + { + "private_key": + "16f0515be497b2cce1edc8271d5eb9b9412b8d208f22eeafcec200baa9a8120bca4aea5c3d6b51f4738e33be1a70a2b9fce9ca1e5591f844df48fc350b9ff08f", + "public_key": + "9accbe4a6cddfeaabd4cbf75d53e65cc8d90e7a6b6c7d9369c94a2f1cec2a54e", + "path": "//1", + "address": "5T8za1DE8r985MzMjXMNupYKH69DAEdLpMyrArjjpZbsGsqS" + }, + { + "private_key": + "953415d641a3ba5a27512c0858f04baabc08f83aa4451f62bb2dc709004fb5014096335d8cf1abe8c4a2b00ae6de246f307a4f8b9b77b73f1fb9b51a28268b0f", + "public_key": + "a8f562f050347ad470359aae5d43868e22d0a45c5cfa46efcc3af6e76a804a13", + "path": "/0", + "address": "5TTZK9mxGgTi7NF5uKoCBREkDHYC6j7Hd5dBRuyeBKrhny8T" + }, + { + "private_key": + "069c0d4c173df10c135fefd6a45a9266a0940fd7dbfa9d8fb999a82184d9e1094e773185576eba9d826d3df8dbc4f92190f86ac075c985ebc48c9600f6f2f71c", + "public_key": + "f4a7ca89dd815696175822f20a307bf68652a01b1444f3aba3159dfb6364b903", + "path": "//12", + "address": "5VAouHskprb1XaLb9eB6cCeuEtvkYq5XUqG3W8nmo6jJUMxd" + }, + { + "private_key": + "175d5801cb64c0f77332e7814f13f05c10be30ed7a03aed225f27662f880e401b77ace2881a1bffe9f1151d4626ea1b8f0ae34d105f3aca03660fdcbebd20385", + "public_key": + "b6f968baeb16bb126fb5d736ede3610f2cba7a10e77ffa303b515dcb93835d0b", + "path": "/soft", + "address": "5TmwBLpzATuPRJdWomJFbq7AtxLcr5wZ9RXZ9uZsmJzCX59p" + } + ] + }, + { + "seed": "96b7519504a10cebb66286e569948f113e2e74d2bd83e2222c41dc5daa134e65", + "private_key": + "e3bd452dadd84bf69fb5ca79a47dea0b3b6a56f13a7dbb7682267f944634560876026496fcf4d3d67136b2588b3d817b40cc6a01f01695160ce4de0269624833", + "public_key": + "369814c34b6139b205cec2b7386a250967f3fc1d7f22f07213cdb43a4e4a600e", + "path": "", + "address": "227BMC9ncUcNbkqqXYFtSftK5dbjcsK2jPkWWVqJJUTQiQx7", + "coin": "ACALA", + "child": [ + { + "private_key": + "84e832ac92678870e5161be66900872775d34ff4e41b1c0026f2835e146e370da0188fd25b5fc5a73f36b153f6a0a0329ecf5a8ada76250e526a2d450365af74", + "public_key": + "f02e3c416da4d198dba482e4e3e5fb8385e86b361ffb18ff32cd0650c722fb0e", + "path": "//0", + "address": "26JWp6PiwSMb4L8f9hrTWGiVjBUAxFuJFGv4E2CdSXV81XNd" + }, + { + "private_key": + "8322582b135920d70e415434af770e4e8ef5d49b8550a7b9060869c893865a04c807018b53c292b75cfca190683d3b904592468ad799473da83114dc7845f92e", + "public_key": + "58c77567b5508caaa4425f9f30e832ee11c6a91924ea117d7a71208e6f9b7273", + "path": "/1", + "address": "22t13v9gztNEa75qGooNNGqsuhMebzoyaGGuKzzG23apoLcN" + }, + { + "private_key": + "a97115b256cea9fac18204d75ec089c8287c976a25c418f24343ad9f79967209938f03a14020aa74c03097f785a7f0b4b1c2af4b27118e1e83829dd92877afdc", + "public_key": + "e6eedf63b1acc9583b4297c8756f6dcdd2fe5f60e7df8d7a079c861c1b5b596d", + "path": "//hard", + "address": "266PZPAqcagYXj9iNGwE8Cfdjftjsw7QHLWjLbdgviWc5Kgg" + }, + { + "private_key": + "6ee1baa27b72af0e65858ff07723f338f21b8782fcfceda7051898da12209a0cd77b888b1d09de740b88c2aa893d740d05fd4621dd9a80d27009bed90ecadd3d", + "public_key": + "b4f4cb55f8c7b4971ef56c13fcd62ebd0df949c652b8907c78012472350f8b6f", + "path": "//1", + "address": "24xrvYakNtpbSQJa21nq7kGRLt7D6aCkqAGM7VmstccNzWMC" + }, + { + "private_key": + "4c35fb26c339e1e3bd1dd5eb194f5e1b50b99278c42f8b20af992ff0a90cde07802ffcb0d1a7db863a500517bf3fd60c50ae6ca72bb8ecc5229cc4bee1050621", + "public_key": + "066285b0a0de5e105bf35633090c88b130b448df7608278e2c656f9b2432a500", + "path": "/0", + "address": "211y95q57gDPR8Z32hFa3Ydn8p5K1c8n5hVgRVVV2k6ot2jz" + }, + { + "private_key": + "ca58f2231de780d876c532ddd4db3edb46f8061c1bcadbd4e2bd8535bc4e790de8c2fca3febe130d691b632fa1b9d8fad1634508fca57a8b44d349a58eb102bd", + "public_key": + "feac7c4d0b38ab53ed3c6b48ed20426afec8d5d4cda948663cda95d379a9385f", + "path": "//12", + "address": "26dWzDV7dW3smYwPqhbzJte8N1dQ392a19e2Wevov9y8sD8E" + }, + { + "private_key": + "38223a09643797235ff4dc31251c507147ef0a95e1287d05fcfc500a39dd98020067e4fa56f405243eb4bbf8cc59b4c605876ee73516bd899dacd913e8cfae5b", + "public_key": + "6cb93eb0107cfe8c5b456371064ab8542f387e246bdbe9cb26379556451c0b67", + "path": "/soft", + "address": "23L9nZogPwnYWzbUjE8iM2kC9b5z5dLYP9JS49ytYWcrhs7e" + } + ] + }, + { + "seed": "2d128139f45c90ef3092493025d4c655ce7ba89d3f137936419d5a7be520530c", + "private_key": + "124611624a29e9c3bc0c58db8c69fb8238c74161afcc30447fb48e52b792c2085de6f3273aa468d0bd3d6fdf03240c208d7cb2e4ab5760ac945ce94854a65155", + "public_key": + "f209bf377bdd57f71ae485e9ef05d6bbf72bcfe812eda0e3555970f325da0f4d", + "path": "", + "address": "36DYetUR8oQKsNzfmsSeVufR2vGfzBS7ae2GayBdKS44FgDY", + "coin": "STAFI", + "child": [ + { + "private_key": + "1bfecb15145f27517489705400d33de25824e94e00ca6af2dd9c548e4e5a210ce1c4fd62706e0f70f6e1f6b3a8a3065d46bb3786a6715a16bac4f15c3848644b", + "public_key": + "3a4d18b43312a67c413fc5bb5b0b9d565abfb140b193c02da7c795a1b462b44e", + "path": "//0", + "address": "324drGXpnPor1x3tuogS5xDM6FMRfyNjsbrjhEav8qxRvRRr" + }, + { + "private_key": + "b8286722ba93969d955ead75fd03aa306d77fad9adcc5ca28ffa97aa366afe06403caee6759c6416239541ba8abf85b23d0e8d1a926e2f403fdc8603d9152b83", + "public_key": + "182729b5b2926b3b2efeedae5ae28840fe9591271b4d26a96547d09cdc0b9844", + "path": "/1", + "address": "31HrxG24Sp1hmQ1HeLRejkaZmh69iCvAY8eDRzCaZLuHhLDo" + }, + { + "private_key": + "69584202c5939d4a73acce1a8853df990ddf3fa93439bcbf1f8c1e061438980c7b5349935a6db3157da9228ed5795d181fff65066931c61277763b1419492791", + "public_key": + "86f7b538e7ecd3416ea27db4bfed7c94322d0a7338c85764a42a92b03d5f9c2b", + "path": "//hard", + "address": "33oAAukiRCAf1vmZHjGzV3CABKGvNUZ7e6Fp5UTr9SbbDBJ6" + }, + { + "private_key": + "334dfab02f72c05492d600aff66b6466c931dc150ed2cc36101f48eb3d8f1a092fd0bf3b68fe5788d404780f14c666f2375d6674fe9ceba79f988b342ca8a508", + "public_key": + "0e73770788911cdedacd64fdcaa439a5c20a65e0c1167bedb25c984607e45571", + "path": "//1", + "address": "3159995C5iJF6L6mApnMhyVxL5HDLj5Xt7BHYfAbdupUHxzr" + }, + { + "private_key": + "09d2a1012e911baf562671571988ff3a5c265d9411b9fe400b83bdf306eb6c0e5afc13e722215a58c0781a1f1494b1267916c228bab5405b9ac0423e1d200468", + "public_key": + "46f59bfc6e37a56f22f49eaaac933fee31f31e85157352e3ee673f2cac32c47c", + "path": "/0", + "address": "32MEV1DwoQ74ymLLC4zgU1pVA56QgED1eM5zE8JRhGaVhdN4" + }, + { + "private_key": + "d46e1b0b10e12409394b3fb2c1bcd32d28dd5fb397a68e1f37d352c1410e4c0e4c44a060a2cdab5be577c8e12b7dbffdf61e46edcfcd246b9d996053fc395595", + "public_key": + "804cf58ebe1ff569d7de7392d40042f7fe1d1596d9b99d4a2ece762d9310b44c", + "path": "//12", + "address": "33eRAKE4YWMGZkSAcbCb1ciZWKf6MSPcUgrkm759JEPsh8Sk" + }, + { + "private_key": + "72a48bbf1cf656837d08fc0e215c25facebe3c4c79ba80ef8b40beaf97781408c6f266f905418a7d7c3cab168d3106e05e6eb40a7749cb54713a5d1753ae7bee", + "public_key": + "8ce42fd5b6aa8de3212917e2e97ee3978820918bbd9821fac45dc5acfcf53a1d", + "path": "/soft", + "address": "33vvfEZ1HmhQfdKoo2RDKC7CSHrFNUYXVCgLjUdVqNWr92qw" + } + ] + }, + { + "seed": "e219cbd7a99defce16e6a81c409691f5fe335eb9e192d68089a309e24d0efdc2", + "private_key": + "db2420a4554ed2fbe90a9bb7cd2266d523a67986d6568509449ace65bc8d7f08b6ab676487a18924b125a34744d245fd8159ec6eec84665afc7c17e7d4c88833", + "public_key": + "aad77dd7b3e54febab41a52a8b39fc42a2e3dc1ac492996d3e3997dc35fd385f", + "path": "", + "address": "34cCKpUALPNxG9sQK9hdK1n5LQLNaBe4Lcb4VFh94ZTR4D37", + "coin": "STAFI", + "child": [ + { + "private_key": + "c4b20b19667bacb49116497911dd657ccd01b713fab25a39eca35b736dfebf0bb18fd2eaa24d0d84a05456e1a079ed01a6bfcc4a1f8323cd4b812099c4a3f357", + "public_key": + "e6dfb33daf584281a3d65e34614c007157ad4ace2b55e158c2836b7f1be5715f", + "path": "//0", + "address": "35xudtVksWxrYM8EEhYhNsxhmN52xgbicDtZ2JnxYvSXC2et" + }, + { + "private_key": + "ffcab71d084582aa7df53caf3e4bb096a7bdb8b4ec9a4635aeecb0fc9096c50cd7754849c9d931a81e1890d13ec3789e136afafa2438787a5c45d32f64ccfb29", + "public_key": + "a42584c4abe49b107c3de0aac59f7b623c11eed22e2ce96bf71f0223f9f5a468", + "path": "/1", + "address": "34TRAkcvtAupA1CypCYFHgqYc7zeYNfLPrNBK22LnzRzAXDs" + }, + { + "private_key": + "2f83c49c26449438fec8ee454bf233ccbe24d608c3ef629f5de6805a3e18620fc264f8af2937f8c2fc6b858a899da75700a4fd7edc45a38993d231740e7c3469", + "public_key": + "debf295db2e0a05b5019cb4fda3d9702244829b07b7c9c8ae569d4b36b427a30", + "path": "//hard", + "address": "35nFb3UuPup2zJTKNyqAMUTy9XmxBBaBbePscWFEg3zN8fsf" + }, + { + "private_key": + "4acbe2034df802bafa5ca55754e97ae1abe492800c69fb92240141549109180c69138ea56a37d1b42584be7b0f297470008eab1853ee5934f0c236091576805e", + "public_key": + "f8fc4f55907bb07ffe3fbd1af7f83a6104f21c9834207fe909c947af09c95705", + "path": "//1", + "address": "36NezpChkRjVMWTUQwkZmmMh7LmAQh6N32oQgzuzMkkW6kfP" + }, + { + "private_key": + "cc92b79dee61487b8cee20895349a51abda20c0b7fc4c8ba6c75b2ed167320057ad605966444b97070a101b12d3a298d9c2c6a0160a3a87f612005381ba47604", + "public_key": + "24da0313aaa48e5a490b63295f6f6e16ef0de04fc36c2b8194447d71438c475c", + "path": "/0", + "address": "31aWf5vB5qpUThUwJp9YcjWUMSuPXwNDA2YX5CKinTdBRwVr" + }, + { + "private_key": + "10a74c1ffe5d600abc5cd1ee83709356388ea8739ece824b16ce320aeddd640f4be31057976cd0b5cf1fd6d2ce2ace244b26a89fe9a24892f65698fe486532e0", + "public_key": + "82154b2eae71cc27ee1eda751307c763a1b2660965cd9a7c631e2d2891a37079", + "path": "//12", + "address": "33gkimuAyG7xUtr3PkRWDJgZf52dvgSYp2i5VWiKqnh7yWnM" + }, + { + "private_key": + "c0f6614f086661beac94319d2871d335cb53e84d1487734effcbe4e0ee9c6301c0366dc1b072c79df9a553ca28fe5c054f5f164d230fbf980e24e03e641f7995", + "public_key": + "7052b6b4c1e6d1a405468344c22bc4355106f8d42d656903167376e8e355a268", + "path": "/soft", + "address": "33HU72S8hBTKdokyXViUMKzWyAqVtKLgLcSKCVfRSeTVgH74" + } + ] + }, + { + "seed": "5a0a16fd174da026b9c4b4ad999065d17b9ecd14a1ca549134810d4371395383", + "private_key": + "a3dc0d3ba146b466e366c7c89490cd2dca8be18ffe5dfb65ff13e9fd459f68083624b68bcf6fa223288f4a899f49be75691bef7df669cc20f8e74ec90d994e1f", + "public_key": + "166d2b5ea1efeaebadd9aa5748db9bf6e24687bf61c547bebde1f98aeaf1c877", + "path": "", + "address": "21P14y62Tr4g5ckZAZdafgcBahBp9snSELGDHkbEasm1RL3f", + "coin": "ACALA", + "child": [ + { + "private_key": + "f853d80239a716b73ba3a741f638ac434259326411d946265540ee334fedd70d77feef95a259be985c268e3793bc703ada23a05b4499a9233bc2343ce0145863", + "public_key": + "80bc3dcfda2b9f060a6db18007ac4ca9dd3b900da20dc516a38fb938b311f63e", + "path": "//0", + "address": "23nPdk27AmFk9ev9Sf31JCv38RjcMeURBag4A8ACCE8g2wwo" + }, + { + "private_key": + "784c56691cd661d8f4456a1b4c01e422046ab1fa876416d1f2e6d7017dddbd02806b4f1a5af583675d142b9ed6f0909fca8d62a0eb342bddde3963c67b0a0970", + "public_key": + "823b4659b360b220a4afb84fbf6446e1abcc78bdbdd5d2757281f6ce3f030e21", + "path": "/1", + "address": "23pMRFfET9Mma1FdwRabTq3MpJejGSASxhLoFJjMbpp7n9BP" + }, + { + "private_key": + "3ba70b4656940cbcba8f77376f27c854308e1d4d0379786b821d661259bed20eb5b5fbf80a5257edf537f044482c283930b85a74dbf088f6d94622d87db0397d", + "public_key": + "28a24bc662091ae6870d2179c7f83e2698c20fba8c29dcf1ef126821ead2d552", + "path": "//hard", + "address": "21nsiJtKcBE7PfMzkET78JrwrN1yznHg3wXYKNgruDd61HrH" + }, + { + "private_key": + "a844b995d491aefd66f16ab8d7d48ed229df8e37659105f865e3811c523a9b0e56619c0946db209b25661b82687835df201a68a996ff78563f725649a6d31590", + "public_key": + "6e1a7f375712b44f3bb3f12b9b8421417b42b0531d6a8b5e183feb3313455111", + "path": "//1", + "address": "23MxixWF28GW2S7v4CRGnMpw6RnPWis2gafzczW31moBKMfw" + }, + { + "private_key": + "7fc47e5aae6149f882021a06b8ee09cf5fa252197e45edad8e976d83c223b20beca6ca0e6ca71d47974c884f21dab6ccc3e4df32c3cb5a7852ff0e43d9752599", + "public_key": + "ba5a61ac58714b773032cedea6bd0fe669b6bfaa3d011ec70d04c4bd70e24679", + "path": "/0", + "address": "255wLjr8QE8rE2FNSc5tgFymBR49cXH9S1oP1a9EwoSqWSEQ" + }, + { + "private_key": + "aa81ff722af9c7cdf15048b4d4d8d7b02b1e0ee491cf515fd80d4e49f09f8b0e28c16b810238b3ebdac0978077758a92c1e36798f6e33cc518b1c11972da8054", + "public_key": + "a811aed5d4065332b9a930c7d0b55278bad730cef364637c089bef2b98213f16", + "path": "//12", + "address": "24fxtBRJbo4QWvFPXv3v8HfwLZ9sTdA249GPc8aCg9K5LKxL" + }, + { + "private_key": + "00707bfb8585928d64d03977ce288e301b24565899ef420d8b31d1347c14a803f15ed41239a7415aaf1ae7ee986a74b03abc7a446f77514213afd08d0d04404c", + "public_key": + "c8a88aa0d4c62251e45cfeb4fa17fe39d581c3707339343cf41ebcfc17a4e45c", + "path": "/soft", + "address": "25QhEHbtwUNjLmFpjeBxJnWgtZaM92XshznTibDokdqSRRNF" + } + ] + }, + { + "seed": "cf2292dccc5cadf6a1f9826806bb3d630d572a95b2a903bc423e8635b474a3a2", + "private_key": + "faf2a76af10f16d800cde7f19190039c0b108f18d49bd9aabc70518b543b2c0c1149d3f3cb023e7b333f7f55e78ae4970fcaa293c69ae4ac9b2db830b866207f", + "public_key": + "e214cbb026f6650de1c7c4f1e2b00b432f2fe9df1d75f2c2edaceb3f6f889e6d", + "path": "", + "address": "HgkWxYm6EwzmtBdMYrH86jfCpseexs4Hjye47iGXjtdjgVs", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "f8ed1b27634823c93c94b9bf7c89642b8c7f3a673f0d796a7e0eb739523c240aed1c02ab57e584733d5a4ab76eacfa97fdde8a8d48eb26a105579ef63c919fa3", + "public_key": + "5892285f6fdc4267044e125d965b2edf88878c4d19d02983a7049631b36beb59", + "path": "//0", + "address": "EaT9dL7ZLLsKaRwFLtYe3eca3rn6msusMJcfUtS7DB1jMwM" + }, + { + "private_key": + "90e67c59f55fed065ce11526051b47d21e3fd26414c95a01d960e5b16866250cf0994a3761b272fad7cde5b143d3289908fd8227e935327537b495ccc5947098", + "public_key": + "2a84bccb04e4d3baed4a0bc9e0e61f896f6ca5381cddbc58377e60aaf00fbe2d", + "path": "/1", + "address": "DY4xePueG93fxY8QNYsNFCAvP9NZH46DBnfHJHBtBvnHu5n" + }, + { + "private_key": + "3a9285822ac0ffdfb8dbed956984b38c14b397ce36a3fb0a866d57f14bfecb0b53b3ada706d36f05a0ae06f9b355d80a9c5dde362792462734dd77882e66b675", + "public_key": + "8653604908d129908f311e76c4e658126c40e1a6194883e5bb5282b16c610e62", + "path": "//hard", + "address": "FcShgWHTy7LS7ckk58eSQzsCNtwp875o1aZtDEooUjhSvjM" + }, + { + "private_key": + "7159d482e71979d82a56e641c173be4edee29d015a3cc584aa84c6d0eec0b60e80568918acc84046a149eeefbcd1d1aa4e96d9d5489e9d99a5373f8e52bd453e", + "public_key": + "36c06f526c41ffc70ea9a37f5e250928109f83d7ab79c44d1acb10aeb7077257", + "path": "//1", + "address": "Dp7GXzfRCZtk5TYpWxw7vspgtHAzLhyUG6S8zifACrLEb1C" + }, + { + "private_key": + "156d2825e7287da818917beb0e2298795cf458ffbd9d304679f447a0f5e4c30ec0bdc024d55e389b9a3aec977c21415b951c52fe15dfee831032d94196ab72d9", + "public_key": + "6c86563eb27973b1b5c735c9f5cdcaafe919a877570a79c0f8f1248de9a9fb6d", + "path": "/0", + "address": "F2cbWH5J1eYH3exGg8vgjF5b2U1jr5wZNkDZytVaixDae4f" + }, + { + "private_key": + "c9100002c1414c976d35d166a706771830e42119e173096100e05fba8507950ca63612b41c6559f0808a439b96331226874d054f9fcbf357d29f42b10df37c31", + "public_key": + "7c7bb75b48cca625c95e912996e918235a1af16fbc0bc08ee69d7484a77e664a", + "path": "//12", + "address": "FPYCxDv2JH2hcLQJUWzgqsPgtCe7XsZXtheQDxBxgv1PV7T" + }, + { + "private_key": + "6848edc43d289235389a70b58e7dd0b258331c3f3e8752f291864a0c18fb0d08d84d431c96ac36dbfd6608b2b3fe2e028502d545b11d4234d38b022598f203d4", + "public_key": + "2cca9e578b447d74516714133f4e094b1d6ecd114c321836b96cb02b24325a40", + "path": "/soft", + "address": "Db3pDsFn4FJSG9zHe7wxhpp3LGfrUuaW9DnYAjW6N3kY2bh" + } + ] + }, + { + "seed": "3c4300de608d0b08fd3a95c684d30c74b7d5719a447f30d1703613141bd9ed77", + "private_key": + "89442502d684a6c2fca739e2a376b67eba36570e14170dcbcfee4c761ba3b50ab635335eac2d926d818388b6bcf954123d8441a98c1d747f7a3ae83e994cab2f", + "public_key": + "1024d5db5ebc62ff0c16b654e6b108329218925696b72546da2bb904a1904441", + "path": "", + "address": "CwVE5e67qmzeaR7V3QqS1jPWA2dWc4cqBF32vPVHSXya87R", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "059079c582af90ae24622ce02d5600f81049ceda7f10e7cfb727a358e82b470dd1addeeb74ae93349f5d7d1c38618041f9c0e718f0cdf36135569f346e4826d8", + "public_key": + "fcdbca1ee50246ecbb19828101c6dcec250e189ba642d1c1dbb0fabd2ee65b13", + "path": "//0", + "address": "JHrskeXvXsV2AcY5bLpKUzmQfNQizvHDhCMkk7HhNBFoveS" + }, + { + "private_key": + "fb07d9d920cc9494846b94016628e3248ccec85e1368e1f6bb9ff68e03a5ff0d25008951d1f997eefe77757a06f245e9c1c2a0a03521049fb657cfc392611636", + "public_key": + "2c73174b0c2292b92e39e6a06724c36319ed0308ba9524b8bb794870bb5d8829", + "path": "/1", + "address": "DabpA8vJR7tJKssFr7Jxpj56Zvgg887KsXqVoamgToCve6G" + }, + { + "private_key": + "60d64f0a1832cdf5f03e8307217a8d12532ebd1c4493cb0a2de2c6e2aeee020a66516ee3a0ecc7bc30ad6ffb750616b03cdcd937b3124e3745b30182123ba218", + "public_key": + "208274b36b62e3c063322a189e7ab606572481beacdbd112f8b989e34a402a7e", + "path": "//hard", + "address": "DJwoZW8sSVwHEoJzgDXReib3gqkcLmcEfCB15J4GzbAnLXX" + }, + { + "private_key": + "b3f6450fe93d94ac1f9b6a43dedba571ab3cf7f0d2f0b6d8ca8b8d7bef66460e2ffefafce632e576c2a7352c6c5cbdd43a0f740e7390c701186b29a4b14aee52", + "public_key": + "bcf6285d19407f55ad55988e127ef97dbf592f53f68432f688de01ef52b47809", + "path": "//1", + "address": "Gr5eKPA3GgSNG9kxD863ZrB5ZjVkPrsJvNp5BScSsVNyj7r" + }, + { + "private_key": + "48bfd1a6018a3b0bd5300f4e8984a64b5d97a6d492d7a33d7caeaef31fd39f03498e1bf5a2526930393b9d1a856362bac91f9265613ae4393130fb5c021766a0", + "public_key": + "4898bad781ef056e529ad75e7f2ccd2be1fbdc4520728e2121892364f0199069", + "path": "/0", + "address": "EDWLRdxv39hu8GE3E2eEgiL564QoUguCskHTxSPqsw1EVyW" + }, + { + "private_key": + "e1f9e57af4eee72757a8d9c04086391c1974506f221628fd3f175e6635cfe60c5194b6af20f3b430d75f55d6554a2a8f3639f5abcae1088971e97ba1bfc149a7", + "public_key": + "cae1b8708f721cd922ada14c0280c246329e92bffb1e83cc4cf990446e11f75e", + "path": "//12", + "address": "HALF5KcxQTcTGbweN1acba3YSVutkWpAKPbapP3w8N4CiJG" + }, + { + "private_key": + "dcfdbeeefc6645714b4b84872fe8f462edd4fc895fe7e0a5a1d397db108c4e0796ecce342b7c96acfbfd5f1a4e3eaa724fbd5020e76af6b962d009d6cbe8092f", + "public_key": + "e894a993eea105915c96d8e39d627e86a8fa20df5a9ce56be7876ecd5951bb07", + "path": "/soft", + "address": "HqGniSfVS7Na8P7SQuCVAHZBPYvYwCSZ3CkqCPTXoefhiaz" + } + ] + }, + { + "seed": "538c1405843089cf2c90faf14abe40b014ea723796ff574722e3ab0a378e9f6f", + "private_key": + "bd8e0986377fb6016aaa6eeff05d4dc74fbcc882efe98ca923914f6bf6ddee0f9bce2a55fc34d16c5e772d143c23140881e238995da8d42ffc7576cfcb25b081", + "public_key": + "8890be2c5c5b9e7e8676115d889f262ce8ed1206cf930ac7790a2a28a805ff70", + "path": "", + "address": "23xf6VpqthwuRG4dwzXWrjwVXm2s72DEW8yCFXumPEqwzkx6", + "coin": "ACALA", + "child": [ + { + "private_key": + "fea1c1e4c7d86e9c9d84feeb7915823bddc9b70913b9c9cc22e2603546bea50d5c65bb6631e4415a13192bb804c673688611cb53d9ef61fa6ca1614139461e6e", + "public_key": + "0a4039080c7574080066e406fcf5e9e6ee5f43473ca50d539e57409fee03791c", + "path": "//0", + "address": "21739E9uzusksriQ4kYcHDx31V8VrHwZ25S2HcGXJpgBEnCu" + }, + { + "private_key": + "094dd36508e3e8290d3a2eb22cf9a0ac42aef5a9d4f196f4aba8460e041f9f046463d460f4d78f45008b1f608519c4303f9694ab6d65df1c3e337951ad952b82", + "public_key": + "5e587316aee14a61f93575e466a5438cef2fcea629596b9d3ea07c09bcd13b6f", + "path": "/1", + "address": "231JMwTMnxT2fA3Kt8Hc1QTCYpiQcbEGyhSb3vLszC2LXB9S" + }, + { + "private_key": + "969d8639922fdd17c34a93c49d1e1ae4a71a3d01fcd3aac2a39b95f2051b1c0b288dc006873e0a78389f6cc851df37854ec45d3e5a061ca92d38ab57eeefaa67", + "public_key": + "8ef06ea26325425ad53b11b1b829071dac43ae35141c8650b0773814a12d2d43", + "path": "//hard", + "address": "2471orFUTgubAfwLigFLTMVAj4mHZi5PvvgNCHzDjEo2xgtU" + }, + { + "private_key": + "d8ebea9a1e972d7c53900d14aa46f7ea2ae6a247b72b36c0c46b6c941d3e670809a8020346490d156f80bcb9a93e8c6a5b6b0181c463c8d8a6e6b53401f65b47", + "public_key": + "b23e218bc4849267a35a4099f41f2f9faf7fe3fadacd6808ed433465cec01e42", + "path": "//1", + "address": "24uJZmyoVNRNtwEKPtLPNtNtVW5XpVwxfCnTdmNwckkymoEf" + }, + { + "private_key": + "a116f097f0d3015e50fd939af9d7bc1f047388510c8ef615c3978e1e3db4f10dfeb16cf1aadb589661c771798c217d64c5e938c25a507178b72219136139e115", + "public_key": + "ea31783eea88803128ce075a75d12d1a2b549753733091edbf824e10072e2b35", + "path": "/0", + "address": "26AfVA1nwtfo4A42uHqcBg4GaC67yn5SWHQPRYigKQ5Ys25H" + }, + { + "private_key": + "3219eea30349eb4bbfb096dc3f307c4beded68fef46aaf633bda1d4d9f35e60a4cdbd6e021f75d7ff6fe2d6e996335dcdd54b7c38b91d005438ac5bd3c387fb4", + "public_key": + "44f0981f33e2d343c3d44ed2018a6526bcbb49e96318e7a44c023a638edc5e7d", + "path": "//12", + "address": "22RzK7yRQdmNFWMoBGBpb9kqk87uWADRf6woQiDbETgFfZqD" + }, + { + "private_key": + "50160ee733580ea99bc5e1e1f7a90127655c3de5ad1e57de33173d51be821d0f5af0119fd7cb5d64d9e5713cb680e676817d172f091a54db29cd954ba4d84068", + "public_key": + "1a6a4767d03545b806751add4c587eef1d4c195154cecbc19bc3796c6da68f09", + "path": "/soft", + "address": "21UEQGuyH6QHGtirCAQoP9bjWH6ZApRYw2riHq74BLLB6mDZ" + } + ] + }, + { + "seed": "6a22e9fda32e999ec31e3f0a255b78cc565d0580f8b6c8bb0f9e1b3b4affcbea", + "private_key": + "9eca427ff3418e75c2746b5498d805d9ab7aee78e359f87e065a1e723e80e809fcebfff95d60857df0401c5a55d9f7ba9ccc0a4330565df448f9d9f8348c41e6", + "public_key": + "5e14ab73e994a1040b53acb73d294dcd11cbf48e571d8369b555b05d02efbb0e", + "path": "", + "address": "EhgABcDQpFRSMWTV5DxHqduhFYkBQCoR1ka7jY8moZfttAF", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "17449a6b499e174dedbda9dd23a4a6c3df41dce5059b83ddd97afee5034f960f5934d8899bedc38b41c282ae99a027e7c05a35e025d197408742863a25a9945c", + "public_key": + "327327220ec79c4c5efc709ba729181191d6ffee93cc5f6db345ad12d28eea0e", + "path": "//0", + "address": "DiU7tUUU2KBdzh2ifLPn2izQNAJYNYeB6dpcjpbz476jNeR" + }, + { + "private_key": + "bf0bf68d58e6e545208d7b2b5b6628b456bef17aa644d5ad71b686351c79ce07c6b6081d435931bda9ba1421851e315e95e676da868ce6c35f3d310db81badc4", + "public_key": + "2e817e51858eba7cb85003f1657d9967e499c6ec6e41fede78ceeb8f0c719842", + "path": "/1", + "address": "DdJBrub5JveU4PZ8oSqfAhrq8pK69No5W4mwsWrnyoXXKNu" + }, + { + "private_key": + "2176da385863b0e1b7f3f1999a92f744b766f9636090925bb8f0212078ad96091fd3bb8a998c0d84105d5447f0fd087ff3b3a2126afaf7fe28f58369a9b6df1f", + "public_key": + "cea3a59fa9509562bebec20beff11c27c67c3c05c7c41d37523e714346c93263", + "path": "//hard", + "address": "HFFzga5EzwcS65qp1EkenNHgh1tGrq4RGpVXyhNYBLZJ8bn" + }, + { + "private_key": + "61f5fc9ddf6d5fbf7f6495f571958c4e16337a39b603c0972cb5e792d1ec89090a977499476e515c9a54827a9620e93a0cf6985d29f83554c91d2353ad2403a7", + "public_key": + "a489248a867eb2a63efc438a8cc5f7109d3a112317404a89e6397066356c8c29", + "path": "//1", + "address": "GJ47NvAubu3yLzsPHdgWyA4NcVZTBCKpJ5ux69s2No44EGf" + }, + { + "private_key": + "91414efa7ba5555ec2283e44903ff900c8f178f79f3a191be3c74ff24a9b1c04d939d6a1de3b1c5a8f2e36de0763b86f86742fdf839c5b6c2dea9aa57b9ff920", + "public_key": + "b6b036f580abb649b8311b5f5f9c4855d3310c57b83163b1bab25acfa4072f7a", + "path": "/0", + "address": "GhraZgRaKtaStD6qtdQYtvfTTc41xBFnfrPmy3Q7PcA4PhR" + }, + { + "private_key": + "8c19d9e795fece2fcc167845d7c78414ad9e73957bc227ec6c698eb76e526b0de7cc4e67b3660f3cb723e5ab6f6e7ac2b64b3c31abc45e2b9c081b7c1c52bd74", + "public_key": + "1651558a8dd39383f3535d37f74002022f26da6a9e3b39503ecaf6b8e739605d", + "path": "//12", + "address": "D5ajSWPccciusfphyp4gjXJkYyLRYVpFw9uhDnsUQNsYoYA" + }, + { + "private_key": + "c4f1aef7f9d95671ca09024a3d8b29f517a37677231bca5b3b63dbd4f915c900eb17d3407aa92874be093dbfc9d92a1ebd1b805716db5cf46bdc60a08e7b14de", + "public_key": + "7683dd2ff11765cae648b199e8026e7348802110e9a5cbaeb1223a13d7b0f967", + "path": "/soft", + "address": "FFiLfvksXQRPWMxzvZhHLpgZEd57iYdK1yTh2rcnrd8nxFV" + } + ] + }, + { + "seed": "13ce1490fe252e870759fa794b7e7a3f040804e32d71bda9c1637db55b525870", + "private_key": + "f74ca0fea9b7cfa7414be1ad4e674930da15ca89ae033509f2a6cf5f0086c70dd81bdbb866ac9ecec8a5699e65c8a1faa1ade05982c3862f5f401caabec799e8", + "public_key": + "b2197c8799ed12434d14cda21b8491768a36b4b8afeb56e1ca1614eb537dd228", + "path": "", + "address": "24u7gQRWEiG2onELUNk37sXeaRCgKnkpx72udDyrmXjDB4mV", + "coin": "ACALA", + "child": [ + { + "private_key": + "fa60b07d402d38aa325c03f658f2649f6bfa9b61d29c08b182cc134b66329409abec90731bfff57de9c75066d43d0a8094ba653b59574591cbfcc40f956b018f", + "public_key": + "8c5301d4243e5b95d21166543b1d32e3e8e817c7fbed86194a4e6320e636507e", + "path": "//0", + "address": "243awvd66te5U6hFf9jDiNq4gqwLJg4MS25FkiMNXstsvoFi" + }, + { + "private_key": + "8eab9ccb261674312de728f2fba77e7675892225bfe1c6a76e533c2c1f60720302f21ec1961c80bd777c07f5b86262a747d44c902fe4abf5e5387b45451dea60", + "public_key": + "be90287d8f211bb0abb4b6a3d5ef056b78895a20a0ccf76cb28d9fa8db8a1a7b", + "path": "/1", + "address": "25BTWQ53hP3kHXRHQsknTpYcv3Mgpp7H5kCBC6JdNPn11rHK" + }, + { + "private_key": + "c483b0dcdfc68ac12d9a365877d664e2ba42763fb8848cddd9651f4cac452b0e460adf1c49395c54faf993b7e5aac6cadd2ea05e8591b3806e12529d8d464912", + "public_key": + "a2ce6d7c6df5c69b6a94368a4525f1c889809fe928822085d4f640db5dcd2748", + "path": "//hard", + "address": "24Z4fWgWEZRmsY4MLsbiPEa6otZ2dXR58wGW5YbaegpXp3kP" + }, + { + "private_key": + "a47a2d8454eefbc8f1959675823fd5a17afdfced68d211e1df589a28f371140ff447781e58f330dbbbe9936675cd01f496f7c1def971b0b1c52fe6dae68bb6a8", + "public_key": + "9acfeb1707565a4f0493ca5ef82210ad143a2e28710d7381d5c0ce99784c481b", + "path": "//1", + "address": "24NaiydXEbV7RAwkUSceiFuhBQCiLRJC64cjFXPakdaDUzLn" + }, + { + "private_key": + "6b1a3958f48b7fc96dfbe414b1933b23fedf1450f893c12434969aabcd7a7e085d64255cc8d48eba8f10f7b2b73b410a99136e69f76cc8a2e1ce8a67233278ef", + "public_key": + "34b4b7f4d5e9c1f7b382e956b9c96a9e67c5ad582061b8fae8730bb7b214a203", + "path": "/0", + "address": "224hm3tfzCAV2yL5WjuGMSsXHjiLG5PVc78NKS49JbVnBeSn" + }, + { + "private_key": + "7737ae1e1ba1b605b22765edbae238a593dbfb36ee2fb60802f8a85c2dbbf90f3e32b6d5f7f8b60e75255ea5a1cbeba30d7fbc584e12e34d2d95d7d01874e838", + "public_key": + "801b5c5157d4f5f03ef1fe054b799c6ed7e1d0f0d0620903c9b155eb1910ff46", + "path": "//12", + "address": "23mZqq7Bwu8cWGXvS3vVUhtoiCvSjAWmZd3KHWmQdZiDV1p9" + }, + { + "private_key": + "d6f61d400d1f8455410dd659667333363eede68758553a5ababde60583169c0c0316cb706db0d7094ae0c9e357ce9700514c5e84dfcac14f44f0636e0e5b8465", + "public_key": + "32fc14ff18cf44178df9a2a6e879fadcf75e143768e9ee7a5ae824a421670617", + "path": "/soft", + "address": "222Ss4QDaDUXwL9RpF35AWC9EpQheA8q6YCoVH673y5pRksY" + } + ] + }, + { + "seed": "5a6da6ccdf659e6b509e3d7e26478d6bad89a365a049d290525ce1083d3cb2f4", + "private_key": + "f8dde2e52b88f37fe1057f39c986ca315db8e294c3922b4d3ba4c67b4b80660e312ebe4da492dfe35e7e45239bb28d01b1a0ff1e296283df8349b7b6bd36e766", + "public_key": + "dcbaa52dbcaf1789825e15131fec31156a1b61643da797e047cb522ade39830b", + "path": "", + "address": "25s1ZkdPsuWaKGzTcr2VA9fUUsPkkuSwkm71zHq9UnXAENYB", + "coin": "ACALA", + "child": [ + { + "private_key": + "27244d4002b1c1b6ab8311b13a2586cebec09edef4a02c1e4d03fab61076130abc36d616177842dc218e41d6921e7f23bbaa5e394dd0685240fbf56ccc4aa10e", + "public_key": + "d8720e0140b40b70d3ffecd8c93f0c18c3ec4826af07115651c685a1dde03462", + "path": "//0", + "address": "25mPowNHQcTJQrWty6gHejzxb4y7JyGENuL8Nk9vHQG7NS6n" + }, + { + "private_key": + "a003dc84b7c3221bc858820ba0d8b464454f56708f86556e447eff1401385800d5b355ef905071cb2309a48d0dc62c195298774b48425022c38d53b5d4c89625", + "public_key": + "ba296903212e33cdafb7b6acfe1b4433c2d1580b91795efb22ca0f8d518d4305", + "path": "/1", + "address": "255gnyyaEsMRYjvnQYZPyGKvNQnP7HJWj5VmxciN2gFuaRSK" + }, + { + "private_key": + "d16b5783e40545c8283a7c23c12e3d14decc1b6cf7f2d9231427de71284b0e0f4f75fb16d4a7f0d63a975dd9cbd55274b80a1850899bc61061c67beafe11699b", + "public_key": + "2291c73f1d866c07a09e3627301e4c6027d71dc06c0def4b863e30af17439f2a", + "path": "//hard", + "address": "21evX3yfJdJDC2Bvv5JUmMH3h6MDYa3ovxoCiYqPYrNfqwQv" + }, + { + "private_key": + "60315c7eaf6dec7a5da645ce02ec66e56dc3ff01ba79fb151eb15ed886a6c60a810d6d3ed6efbe3f71e58af83f3185dbb85304b38200873c7f22bca6b7466908", + "public_key": + "e28601058959043354cc5ced10789551dfda607673c3198e09e5bbe78bd48b0e", + "path": "//1", + "address": "25zcDRrzM8xTaZGG93fSoi33vvh4XxQ3KatwgrVA5NSNwMS2" + }, + { + "private_key": + "35bf65816644267a0e0acfa77781e210972222eb8ce973430d3412a79f713c057aeb73629f425bf7c0d8d741965c475e72f03096d972800db983be4843d29f9b", + "public_key": + "5a17ae0558d5b5454af4c58dd2774b897d2af2d9a45705458386ec7b0a708300", + "path": "/0", + "address": "22uivsaU8ohzQzEripmYAdGyZcEBVQ1zYkMxaZ9bFE2ap323" + }, + { + "private_key": + "4d8b08bcfbcf1de5c3f6eed9924f2697e2a6575edb525b33a629af34fe54fd0f576d6b391869828df8a1d79a9204e7cc01800f16cdfbcf215db6abe04f14fcb3", + "public_key": + "70bcb6b6b31f29d2b228d42a1db63a8461bd40693a2a4fcae77c4c9f7bff4c02", + "path": "//12", + "address": "23RR1Sd76Q1TWWRv1AbmYDRh4mUfDLsK8XwSyd3eKTckBoho" + }, + { + "private_key": + "20eeeed73593c0442a9a5f0e0cbd23727bb8fbdd3bac8a9caf142dfd296039076a5aee28e5ac6c56b635bde4ad3b62d44d574a3ea856ba1a5186948fe6a265f2", + "public_key": + "7020ec8e507c734bcba02343ccf60ffa8f6efcd20f615521e43e33674d03a453", + "path": "/soft", + "address": "23QcjFPazESehPXdyT7NhgBNwYYt1oheX9CrTsZa85WicMJ8" + } + ] + }, + { + "seed": "485c5aea0a7e69255a46189c8e03c9b1cf04b1d60864dcc23d273d68350df2c4", + "private_key": + "face8c2ffdd932b2185e2267327d13a87e831f85de8b43923e55d98cf3888908cab87b898cffaefc10dfd75e075901a22a77b635dd3618aade1ec5cc8d364022", + "public_key": + "c820527834d4776ebe5982e90a6004f7c772c07a90b86979a3592ee830c6f46a", + "path": "", + "address": "H6ihLyWHmoBEmZbfB1LEQY698To8ucyRMK8cgwngktgCvnq", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "40a3333f4daa8fdb02d6c7de1d54086e25f5534963dae9cf9d8cc4c4f0371f0834eda0bc30cf4e4b039cec9d888f0d08e9b9ad6385ce2009599c1db86c87d63c", + "public_key": + "52bb08e42cf3db3bc19ecab7b1767312a4a0a04db511c410041e3ba99de09466", + "path": "//0", + "address": "ESo1FvNi4Kzcf6T12RsF2315fNC5zFrgPe4mkYa58NWbqkq" + }, + { + "private_key": + "94dd8be0e84539301e3a79a67f0ed552305a8a8c44f3277324cd0058257d1800d25c74a61445c89973d288187f702fdfd451f0abffad19832b9fc9c78ad21b8f", + "public_key": + "5cc6635a33538da24d34947ce270824aec093524469bef91cf52b3a6a9f2f331", + "path": "/1", + "address": "EfxreNLB8Z9eawvwoZRXtGVrhew2MfuemEDLy5ZiWnp53ET" + }, + { + "private_key": + "e022d7238e69edfc5a237570df7f5e40e5348f78fa7f05d7ba488e6e63f63c0d41ed89c3f84dbd46831591459571c360684c61abce7ecb49db947047e81d232a", + "public_key": + "204341c6dfb967e77a7e2f94ac4f162fc78cc0d476ff5e3a941a459dcae0e917", + "path": "//hard", + "address": "DJd2fmCZA6RQfxXZgu9N58YHe7L4nX7m6un2YaZZs5rWSL3" + }, + { + "private_key": + "fc21b7b5a0e3cac92747470761e72102b5a91159b281c2ec98c3f73e7db8510dbd1342817b2a252eccc0399075ae058ddf619159b0fed1ef1d89b22a61fb8927", + "public_key": + "e66422eb88d0e10606bc3cd92bb462e6bddc65a0718312b138598743e49b2e42", + "path": "//1", + "address": "HnQH5RYroHvqrfLRRrNDnzz16NZG5b6wZNWwWfvyc92Gm3T" + }, + { + "private_key": + "b1a3af4645ce5fb380a4fb3450450f35e38dd053ed9c3c0522d214274d82da00b6fe216944be67d816d271d26aba39d85e620d5ff25624fa20b48af331661880", + "public_key": + "24eedcfd53d8e8b869c72ef6919933d53b3fa644ab7a03cf5b64b1fbae681127", + "path": "/0", + "address": "DQkCV9T8bSfGkW23VjTv6egFiyui3waP1X7w9DKY1K7YR2A" + }, + { + "private_key": + "d1fa79b5e66d412db9219f17ced18d45c36bce909d1cc01b47b34ca8d290d00f5414542fb50ca25267dd9685317b4775198203b226cf7ca59c13e887eb2d5bcb", + "public_key": + "c4dd249da92ea3a04ab5949fb82afcedf23b6f1e7528667cdc9309c740a4de51", + "path": "//12", + "address": "H2SbYWQLf56XLj8uSkrDTJjx1VJe7mckHdtGTNmNkS2ZZhT" + }, + { + "private_key": + "885d09dd0d44462e48b6e435aef867dc96cc5ccaa3ae5ca3e3bec2167e8a8505f47121a49abf9dec0297fa1c9356e4418f31702c6f9579cafb722748a05eb5b6", + "public_key": + "96fb85bead1f2406963a67cbf93f424e7a012b29af989ee7d1bb4c6836604607", + "path": "/soft", + "address": "FzHRDHmMYWyYB9axMKdjtkvBAdvDpBLnHRzxY6FPCoRjSv6" + } + ] + }, + { + "seed": "574d7e327247d488bc0e016a70e0c08b0f31e7d0346de9f7c6fec2acae611e07", + "private_key": + "1231beec3136243a9c0af95a5fd8a460d893a50ec3e8df3d9da9fb535bd7a40d2ff1c48f44d4d9eae6bde527a6e0d77c473a689d4aa166907152d4079f1193c8", + "public_key": + "8c215cc9d65110379366604efe8459cc60328cae5d5de594a804fcffc1592810", + "path": "", + "address": "Fk48dXKUAe8mP9nF49nv3B6pXzbU1qkjfNQkRosyB7whBML", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "9843365225371181cc96750b234189cb532b6a4b4b2b92be619cd79253ccee0fbbe0bb411f54f72b97887215182ff1605a6abe4acba630ce1196fbe8173ebfb5", + "public_key": + "9060fb382687b9599498a74a9c6ec017532ef2457037957cee480f8f472ccc08", + "path": "//0", + "address": "FqdDsGAjLKu4Eb7abLyxJnWLyA5njnVnVmWvtwizHRFP3yr" + }, + { + "private_key": + "18965b2ea90b6fb05876d76a7ab0ac7a7e7cbd556c924f02c21db9754490100d79bd403e40bc698ffd4fe13d20a10aa85532c4dc2c1ecea065d150bfd2e10a34", + "public_key": + "68ba25d083b2abdfe817e8b16af7107d913af79c07c5411f1616483201829c3b", + "path": "/1", + "address": "Ewdo5MovdcsDJDLo8FaWE3wQ95ShZcHccviFpiB1TNJ3V82" + }, + { + "private_key": + "99fddc6b6f220d8bbdcc8cdf5801e618e57abbbcb853a47b56f37c821611e00f77934cc657af1496133992da810692a6d942fbcd939ad916319a5cf7003b80ba", + "public_key": + "c03e483995df2661cec6c561fde65c87758d3e8b07f17b3868726341f0ceeb28", + "path": "//hard", + "address": "GvPDKp812NmUFxEBERt5fQCxabP5J4c1dFc7bq1Gxpx3Gsq" + }, + { + "private_key": + "e1f29a3a76428239809d355b3969931fcdc1fd0e120c9db44801470857e48b09672d266b5debfb949251156a586709d70e00ea853ed1e14307820427965ed98a", + "public_key": + "8c4db31a2eb7db9ddc37a4d288c0cf36aeb5fa9a6428b91db898022085586214", + "path": "//1", + "address": "FkHJYPkFvxUHmwnAVByX2f7h4kicQMUkhFY9pkVKCghuXLe" + }, + { + "private_key": + "1dd43285f1811d99129c7bb4eb78d3a1d06d14a97533ae12910d995421311b0a98f9e1fc57f35c9cbf8169e2a5e8941c709596610e30bb18db36b28cdf12c268", + "public_key": + "7c2d1dd975c460e01475004a0078bf195416dbeca9d718d8f87958f68cdb4b5f", + "path": "/0", + "address": "FP8riHozZsYGGLfKYXYG5vMchd4yofFTcKrReHvH5bae6yN" + }, + { + "private_key": + "8a467fbfc2cc4a9919be156e7ada2cf4a44a93c338f1207c6f556c097009960f8c5b71903f330689589386b35fd4aca71d9a95ebadea2d108f732b11162eec57", + "public_key": + "eea948af364c9ae6c86f993f54c50f2550a26bfe5bad9389b6fa558f46ef5c60", + "path": "//12", + "address": "HyFCgNJxFyA2D3D8ZPyWVymNiKLmkattSDCQTm2EE1veUaA" + }, + { + "private_key": + "bdd8f2f78364f04165dbe8cc43fed93de54f3089b88049e29038465284575d03e3094405f4e6d37d9bf424567bf62bc0a900d2ed272ff3a1dfa865239e761c63", + "public_key": + "267f31c1f8bdb00f443a4d27cda6af501d3af5541c47a3edb17cb26f15612271", + "path": "/soft", + "address": "DSo82jrwEfo365ZutrPnBBAxqfU8ghq34dUm8KEfiyiMMhy" + } + ] + }, + { + "seed": "058f52e3e445ff81f2baf6120737e02a3ab6e7ad890cb6f8f5378cb976713703", + "private_key": + "4b032be16f72f6b1e5f96bafaed517656e395e9933427406143d32472869830a9736ebf9dc9da5b26cbb92f74ee1e37b6a91a434f190c0bbfe1027bf217d0711", + "public_key": + "023d08a5142adef066add830dffa0bdf7eaf0b1b1e73bf7b582e867aa0ff1c4d", + "path": "", + "address": "zvXp4efE8BJy77o9HBbuj7BeDN8oHdcsQUidEbsJ25FARJJ", + "coin": "ACALA", + "child": [ + { + "private_key": + "6059d113e3af5d9f9e4a89d5348d3b8d77eb96817c2567ee3806cf2e6ee32508970fcdd49d27ec3359a8ef114581bfa0eb9404b4917abd70190b5b8f059b662b", + "public_key": + "a0da5864144600a8f70ffa2ea6fd5308290bea112c624442748aff074251cc4e", + "path": "//0", + "address": "24WW7Hy6R7dHbW9ePkDiMgej5uJHnqfWviXigmdGVV3hDq5i" + }, + { + "private_key": + "7004d2beae0a7e9eaa9a90290e13ccbcbc4f5274685abad2d3d3a0c5f2d7660b10d78f34d4db73c424aeb33fd777322b9e14c91b8531ea84290459e9ded50cc5", + "public_key": + "da76872c7d1ddb7c9e7d12ffc614fbe633389f042dc37680404f3008bd459056", + "path": "/1", + "address": "25p3EZo6ZdqfrweKorXT3ugSrT8P2NYSoBFx4iqJ6AkvnedH" + }, + { + "private_key": + "7a7100cf201c194aee3ef25e0257435065dbfaa001801e9a2173c699ab68d00bab86fcad31cd1896f29219442e847157ea7fe43427c65bbc6234ae299d78cd4a", + "public_key": + "deb811efae2a69b7d3e10a8ed1f67958043e300bfc05df589251ee2181097766", + "path": "//hard", + "address": "25uctwPbm5WmtBTop7TNpkV7h1soMPQYkCaeMCfkUyEKEX2p" + }, + { + "private_key": + "99121c25db7e7ccddf64b8f1c5c1323414e86a3d2275add928e558ba1599d40f896cfabe90335d119fbe5ff3537336fec76c49a1b90d1b12adf6443d390325e1", + "public_key": + "1a25a1735702f0c1b33d0d388697a117173890f15450ec5e316fb2465da86e75", + "path": "//1", + "address": "21Tt1VZHUQBEdD7ebhJzhvaQTziCTvQKoYCb51ujPwz5KDDB" + }, + { + "private_key": + "2f20903b4b8ca286e9a5704caf51206d2ecf03bb934280c2bc9a3db9937ca10d8ec567895c3a3ae86b97efbcb1699b20a2faae4cf855c1d3ba5cb5fef191a741", + "public_key": + "cebe085639cd67837100e9dd6613a0329e26339bafa45ec7fd2bb3e2ad252f3f", + "path": "/0", + "address": "25YfuEUMJnmkYG58Bcrsx8zYWtCxpxCPvrWAqdZTAaep2cyC" + }, + { + "private_key": + "eb24d48b9fc03fb47899cd5fd91d5862f667dc7f8c967e8cae4bccafbe56550f8820e4c2c6dd93e05ba9a3f4c05c31681b2bc81657b1fc0ad7cf01beeb3fa806", + "public_key": + "c84144fbd1c24f818c199610e2f0d2185d7a018e64ca9905ea19542bea75d455", + "path": "//12", + "address": "25QAYx7er8jiVfZ9HjwwRRfeezMfMQH3rHzRXJjFEjo3oKxq" + }, + { + "private_key": + "0129a1eba5e206a7b4dca447ddb96f0aae48a436a0e208337805d8a11364340b36b6addb3cc20954be9af81b7d96df70eaa9098e05bb3a7e744a94f1c2c7658d", + "public_key": + "60128437bd63f373e6d1c524389c6a6b0238204e6df6fd8cefef464b7fcaa610", + "path": "/soft", + "address": "233ZgaKLqFEE7F3gJ8vRVBcZiVbhZbT6JosCGopkg1wy1yxx" + } + ] + }, + { + "seed": "e6a0e5ccb29e25ddd5c128244cd156f6c3e04964703ab34091929b85852d48e8", + "private_key": + "fcfb7949eb98ce3421bb325210302a2a97e2ae35717f947dac311441c25ee60c122f7abda693a7111c7716718422688e651f5100ed7661dc0e029817161804d3", + "public_key": + "aa0da7125778567b2531d3bc176edb62f0de8f9a04a301069f71f75816df5a3c", + "path": "", + "address": "14qyCNbooaHJRMpmBFU7jgrNtWd4ak3KoRAyKuBHGUtn9Gvo", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "e026498b7dcc6df992b6674a2187950c68a90fbc62e2b18f429600cdcb37cf0aa9951dd5bfc1dde0465eb9a3f9682e9a5242062fbbe0c9528bdb1a1971881cd7", + "public_key": + "c67af533795f265524bad525d465af7891a4183aa8198ef5abbaac3d599e422f", + "path": "//0", + "address": "15VF1RTxn364hyKguvviH9S8m37YN6dt2LaGiehf6qYUmLm9" + }, + { + "private_key": + "e66f84434b0d5d7ec10abc7aacba2784012feae634e4852d8f88cfc2d906130f5346a1f94e9d6705f8da317fcd824a1222319c85c0e3e63b92d50f7d2fc6fe72", + "public_key": + "e4ee6f545cadf9616219088e0b02468e76ea7f999c250c41b9260334c8f9a515", + "path": "/1", + "address": "16BAkN9pmTdBehzsXA7WGtJGEHipVYsfRJkQjMeHqRt7qVN9" + }, + { + "private_key": + "df9a40e712aab7585c03352b45d74772903b28c07df736ecaa96d64ad05a250dabee59dbbc1f71aa874d4fc056815a49475f27ac1a57c5acd7de0834939fb265", + "public_key": + "1218259f309e64fd0d403c268eb5c69ecff64ae6c53e43e6099d44342d06aa2c", + "path": "//hard", + "address": "1Qj32ycnEBDX96ahtom6xPFunEtdLMCEPspQia7PuQG62h3" + }, + { + "private_key": + "05eef672eea870937048fc9ec81f2d7480db8f85a61aa735b560096b5ed5b109982fca2216b5626ef36d1d8539aed5f9ba5cc8216eb3c6ad6983b2c540c086b3", + "public_key": + "b0b2e0f7dea85f42a2f0525a7f367ced7e75f527a00cb344c6f71765d25ae336", + "path": "//1", + "address": "14zgZpNUiSo5GLxxmpKKuf6u92Gd1bqJN1ndjpGheBSm2ras" + }, + { + "private_key": + "cb62b2aebf84bcf42163836fa1fe7a324e9d616f663395531d1ea9a5197ecf00e97390250973c5b67e63a87a78465fbf7ae65641fe054f3e57d334d07b809862", + "public_key": + "849e88d49614926526ed3f0369b5bf181e543a07bc2ecb758b0fd944cf6b1125", + "path": "/0", + "address": "13ztR6HF2TvvgDJjXH9aQ1wGwvhmpx24v8RR9EsFkK8v5PbK" + }, + { + "private_key": + "c26037d70c2632d203af32f831a5a631e8ac08289d297ff98bf80459dace270e0d095eb1670cea9b437f37a0d37a722f37d48f20a1fc0e80c96d626aa753ff55", + "public_key": + "3e5f9a8ae7e1659ccce2af73f06f5bb2ddcf3ead73c125df9c2e75ffd13f0f34", + "path": "//12", + "address": "12QnNQaSANRNdpHNBh4caRBFeC5DNuek5Vpv5W9Lc2gAUuhQ" + }, + { + "private_key": + "90ff1b581aa22082897c0f9f3366cabe16608741beb04253985d3b280100760fa722cea580a5f5465ab386a4bbe01e56b5f49c2c2a84b7fabdd3fc5c7ce93ea8", + "public_key": + "1a0eeafdecefaaba14817d76fff2cfd8ed3433427e2e8782c2135adabf3d9867", + "path": "/soft", + "address": "1bAgEw4E1NWFmXHFbKPkrAKZwH9zUbJgmUtK6mzPWvXDBmE" + } + ] + }, + { + "seed": "a84baa302b0d1acf8eb0777aa605eebb554e589331755f49ccd1c95fec5a3339", + "private_key": + "ce51a1370576c984e89138b3c92f16d7b9614b64379f9d67201b853cbc636c0b34108b837a8130f44d939a162da42e37a6c18929d531c7c405887d46a21d0cc2", + "public_key": + "2c45d55f87a19ce7fa0fcbe545c779f383105384048e5bf1606b2785519d0f5c", + "path": "", + "address": "31kF2FJhsUEGAsTnP2N7VQyW8mc5C27Nse1JQJzUQycZ1DFU", + "coin": "STAFI", + "child": [ + { + "private_key": + "743a5b3de42d25738f16ce10da49859ff53f13567be9b314775b232a5c487b0e8b54da827e04758f526ede438d3dffcac92a5ebd92eb8f92e7b23c2186d679ff", + "public_key": + "a49efd6a869e2bd4e82969db6242837cd235c53a06900c5ce51f3fdc15cae941", + "path": "//0", + "address": "34U3FeuP6sQkhtPyd6SsT47dLnS2SRUGG3my78movjEzwnWg" + }, + { + "private_key": + "ebde9fbec1b678184f0eb4082d16adeea60d3f16cb9cd4fd0d28157b6acbf4087e7e367e64eb6a95e26f64d76cdff0bd19dd05fe5cb62c4fa186917715dcde4a", + "public_key": + "f856413b14e392cc8d0f8e3fa99564703f781e69c5e186149ab2c8148dbd3a19", + "path": "/1", + "address": "36Mofka3raRkmBPZdKHexHjz7BCXC3mS6HdiSeKroDBF8r9u" + }, + { + "private_key": + "80aa0f17eea68a95bd5842b75387187f821a145ec99e8ea72da497ad3990180f44b7774bdf4ca2eb064ba4a4afa9197262ca997a2ddc294fc1dba4e7891f4f48", + "public_key": + "66a5383149f73f27eb7de8cb170b26dbf664b6fc0437231509285a8e8f718c03", + "path": "//hard", + "address": "334n8o2T1rCS8BgMkNhKTt3E4D39KdBxE7fesBdJjrgLdFKe" + }, + { + "private_key": + "b0ace9a48d07d463c8470c517b54df9bc1740707f159fb487cf15a4c3335e20e2d56a90257fd200224d860dd721130837135fa913485a43e00d22980ff94adc7", + "public_key": + "3a30cf79de8ab1c442cb8232e321a5af4c873bfff1449131c9c228149adfe405", + "path": "//1", + "address": "324VSup6cin8Q5AjhPH4J9AW5CWBEJhszfQFH8hS4aCGANg5" + }, + { + "private_key": + "39e930b9c197b17238f9c5e2062fc65fcee1c10d37eaf9757606995b7b92e8076f5439178a933cf1285decd2a88ba8a9c6cad43659747a47de747a6b801c9bbe", + "public_key": + "342b8680536c91afafd48284d3d2ba4e51e9bdccbaca71718d13ec8dd3961e5c", + "path": "/0", + "address": "31vbbBrujBkj73gDHy4QEwZpBJikwtYwt1fRxPgB6vKw2Pb9" + }, + { + "private_key": + "dda1b9dfa8eb8ff3ec4e3e589ba7dca2f3c0a58c3a5189da668680383397bc09776f66406c19579fc56d6f0026469af42ed6f35c378b4bfc3869e95431b71a4f", + "public_key": + "b8f6aaeae76efacb673bafa809ed4c77486f0d3657b2b916346d49377afcce70", + "path": "//12", + "address": "34viFrRJhrakoegorZScTHorKDu16oDajr6gwcBQFYCSHmaV" + }, + { + "private_key": + "954832f1413da9aa2e10f60e58f9197ec9e035d56157f410173d79ba1cfa140cb64737680c3f7f12b738875b8eea788640dc6bc3a611de15214ad5d6fee02cb0", + "public_key": + "f488eebd6cdaac83db6f6d7a271c51e63654f08e3c7c0bd888de86ab15e3070d", + "path": "/soft", + "address": "36GpXoNsHGcpNmBKzrTTGUvHMH7KPrTLpQjSBi5wJZPtwhaG" + } + ] + }, + { + "seed": "d2c39523444473f99b7b54cd6bdeffdbe1d70f25675fb95ed6d39c6e1b167fcb", + "private_key": + "1de745b1e13c54079e638f2400294ee77a88392d516dba0208611a8207a4af0dfcdb29f86eb0c032f2a3dc931e32110683e3ecf9431705724ec903fb69f04233", + "public_key": + "8a4d51758c868b1e973ac6239129eb6d84d9ae3f326693e706ad5259fdad6f24", + "path": "", + "address": "23zwAMQ4Xf5y9GVZ8acNstYLKL6yDfxezBSx3qAFwPzNWhuD", + "coin": "ACALA", + "child": [ + { + "private_key": + "7ff173e62a9951cf399e9172466808dbb8700f8815fe02ee468eaa464ea9010a56f59be2ecdb63fe11779c7c30265fa0ed451b9af5fa71d3551fb7fe084fd2c4", + "public_key": + "fae532716a0763a4d3a93eb01f1ac32c96c86982c68b743b31fa146cb6592c1a", + "path": "//0", + "address": "26YZeDtiSsQRHan6iDTEzmCUdFfCUtfaA8vMfxub5KUK1Ubb" + }, + { + "private_key": + "2b2b5ac6512e44670d195bf2b9535602089b47be619ba74cd3659d852131c605092c6da635f34961d3c21963786d0515ab17537d5b72a9809ee80548ed2b500c", + "public_key": + "d086525093aab11347987ca21fde4f95ba8c2619c5cdda05d87d47fe63170023", + "path": "/1", + "address": "25b1SugXigY8S9T7Jr3vVaczoRoi1RLev3gcKtQcLsN24sGN" + }, + { + "private_key": + "2244c5e81e664ac35ff7c5d1decf52dfa41ffa55844e455417d71530a251ec0b2efa68073305d50f54444678f76d58c62524727abdcd39b8ea50f4714c41b9a2", + "public_key": + "ec3cd2dce1e81f0a711528c7a4e2262fca06283e24183032ac6f0669a111a56b", + "path": "//hard", + "address": "26DLxLQ2gg2BWbmHQV7259MpPAwSh16RBsEmigPRgrhwE2Y7" + }, + { + "private_key": + "abcd528313f694e942eb3605b44c8cff037850cdd1f4638e8d0eb5a30fb6e50e29db0373b2c7702b55606dd107803a757b232f58f38d8d8da422a2ff62c93f72", + "public_key": + "6c91618aa6248e56b70d9301058e9508b0d00b7528b79af8fa20797b903f4e48", + "path": "//1", + "address": "23KwwjC2vgtTbP2P7ubKsgUik89DcdJPoJsjehKkjVmDh8Mn" + }, + { + "private_key": + "19a15d19e09deb77d1c615940955dbc6acd5c028b4af5f038097120f26fae8049b72919ff24fd8694dcf77c813442244f9420d5939d3450b042f600850f32f5e", + "public_key": + "fe276e707ced1d2242653a2aad9b6825c241dfdd59fdb52b81d8a2810c44a255", + "path": "/0", + "address": "26cqTkFTgwh9HnRJi11ej6TK4SLLenTcTS3ECcVAfC3quFZ7" + }, + { + "private_key": + "10ab5cedafdfe2874f1dd395663c724bdee1640198f96fc1f0b0520f8ab74e0d5785741a714b96b2cddbb3d2e8e208d94da59c49a1c31fdbd4a59bea8c536a31", + "public_key": + "bec30f0d8d9589469cbc079beb93f81fc2ef363dbdbc725e581ba131b0dbce4c", + "path": "//12", + "address": "25BidPvhSk15rvoTGg4o8PV1vC76cHR7SDjnXaM3FNtHDHfg" + }, + { + "private_key": + "fc26ad19a1e0ab4d62357d50b6d690e6b4a0629b94445e2ef148bc5506d51c07f1328fd7b0fd2e4a958b4ad41dec28fa49363bf7bf6c94d7741541f1d4a2f0da", + "public_key": + "94ad1b5c6bc2ac2b35591b5fb69f355b4cb04261252bf82a6532b407d7eaa008", + "path": "/soft", + "address": "24EY6XUCzmweUjC7a45nm26VMsSnJ4iLt4UHXsSnhhbyqstK" + } + ] + }, + { + "seed": "ca977cb85a2fd5185141b72c9246b88bb55d07172500916520bac54455e01509", + "private_key": + "f803d6da1bf64f6b8d79f88b6df1b52d74c4f398222e4b900d73eca81ab0650a6da6f00f732c1d6af682c16d27908d4bd88354c95d878c0aea76d1d90e947691", + "public_key": + "7ac4eca9576d7009e5499f98a91be0b9a78d8263da8d00bab3fa4371e48c0374", + "path": "", + "address": "23eZvgb5SQ7y8hHbmj8rGmM7wgp8WumhRLjNZH4pDEi1Jy8v", + "coin": "ACALA", + "child": [ + { + "private_key": + "331f5b77fa13e87e411f0b1fb358b8cafb3fe6f9f880630cd180f8f1d97fd30d5c2e30157612467fe4f60aa6d722c13bbc9f035913fcf65fd2e309b0f6d2f79d", + "public_key": + "00524eb505e9ab3b458179b62001c172043ec74c8c52cea37b3574b87884f058", + "path": "//0", + "address": "zt233dKe36eoqrKgbMWWbbjyZatgPhfi1NX5kt9zuwfBCAr" + }, + { + "private_key": + "58978e1ee84a42d7e5805e52fe8c4017b268d1cbbd05d9abc394c91a8b970f084dc0198386a104cfb92ca98d5b6271389916d9a8b46cf586d161331d6e9d651e", + "public_key": + "b034a7d54e9f40a5ef086bdc849a29d29497f8387f29764cfa60193c2866b870", + "path": "/1", + "address": "24rdexr1G68WPi8RAhaMaSZaCXbSco8dWYttvriuTHaMp5Bh" + }, + { + "private_key": + "27319f98943aeea79e27af15c72a4eb7ac46f2728a89023a3da5b2f89f03540955acc0a5c49f9206bfd957f2f6b1972ff2a7cc3ffe427abbd7f33caaadb7420e", + "public_key": + "88e9552938119fdb05a15d5664079d1a806afede4a75fa7f396e7dada913af25", + "path": "//hard", + "address": "23y7Qs6F2kjUfnbjYKisXDS8HoFDenX7Sc8xdNapD1t8o4P8" + }, + { + "private_key": + "43a932d4408e6b489a810405192ef138822299ea68d0c1af2375e779e773e509989ab3696ca91658e2644912088bb07e582dca8e94fddde5e05318434cb06c74", + "public_key": + "fc5d23f413e655df2a7720703476e3e2c14a9be280b2ee62f138071f3717483d", + "path": "//1", + "address": "26aVKaRWqEucviGfTkVN89KhdUvAP34SwnLA8dUwFD3HjpCV" + }, + { + "private_key": + "4210af55d69411e76a3656588268c4ff71bd30a69690c0089e365cd18756600beecbf53609662c65acd1c8f33d98ae929752a9b1d88c22d9983a90f17cc90527", + "public_key": + "782cd1a5ae27a0b64023ab88de3d2dce2512a0d197191e7b4b14bf19d0baf043", + "path": "/0", + "address": "23bAeQpjbcBNC3jbr8MzTqxpgEBtUmUYkJ3AFuhFjyfRMgDt" + }, + { + "private_key": + "e9dcbbef863212e612ece16847784986d55541fa51dfe26486ecb2686144000b2e329abdc32c6ed7bd2c6f939b3b576fe0853fd19a6e6105f64cae8ce8cce57b", + "public_key": + "caa243d3dbb0a9ac20cc668baf5d725e92c96b9fec6e1979009cc98607dff15e", + "path": "//12", + "address": "25THThVceuDVLLnBNpjACBvmerh9YxU1t6DrM6ZEGoM52reV" + }, + { + "private_key": + "a4c9eeec4153a3f6899b55ed80b08c564301848c14f25228c5b6a24a5508ed0e664afa7b79e3612ee7df11f97731f54a2efcd57c833f92753e015131783d96ec", + "public_key": + "02e431fc7d27d68eebc6d1b598ee520b5921be9c5068de21326a09e5f4af913c", + "path": "/soft", + "address": "zwPUBvaNMtG7LEKB5ke5SxqF8w2yis8b7217BdsM245xZkJ" + } + ] + }, + { + "seed": "b8f77784c601ae145acc931e1ddf1886a79907732cee7cfeb8424601980dd975", + "private_key": + "3ab4f7ad320ad19c1245ec89d2feddf48dab7246f54c73d885658d36959c7e0a33dbd522bb0c39b11beb4bd47e6b296ef30161f717ce94034ca4bbc617a2bec4", + "public_key": + "d2aa81d9abde4dba71f702973459cc18be1bceb7a3f1810480f2728a84334451", + "path": "", + "address": "25dpHvp3SVY3d2vLYq7rLytFSCxkVASsMbcuehy9oXTHy6bb", + "coin": "ACALA", + "child": [ + { + "private_key": + "184fd2d52f401db5216147f4229bf6ea196b8d8dd8a65bc7d50ce116c943190de38d26a7712a0d430ca338205500bb6c5867c721e3717c3bdb7ea049d206ef66", + "public_key": + "d44359930041d622a016b2d8565d2da0d5bfa60985428282e1c70fea683f2604", + "path": "//0", + "address": "25fuk88pXCfwj24AB38jGSLRPoRDusUVUScszyt3jeAA5Rp6" + }, + { + "private_key": + "3f42c9dd6c75301e2189b0384c71df4fe9bd485fdda2c76029b41b9eee630d02e2113af7bef8cdd1d8c292a3bcad9f8ee364a8152612c4079c21b7f23f465ef1", + "public_key": + "caea4f9325c70262b56d3204b8cf442d5e5b35848ef84c05bbc5f85e52676f5d", + "path": "/1", + "address": "25Tes29xneDpyMaHZSKjVi55oQr2oE5JqgtLjKPq4WJnSJkJ" + }, + { + "private_key": + "d432cee56582bdc6598848b65d7059a48b508acc402e4f662126e29b497597094088497d01f656e2b2b55957175695fad4a4553c90566c7095706b141bc372eb", + "public_key": + "f0d9c6c2c5f719a61db6ed08669216da94bad8cc596f04ba6db0eb6e70360944", + "path": "//hard", + "address": "26KPmgDkqzuuNNXa484uCjNPRewW2kobRUMryMA4CxrWgpg3" + }, + { + "private_key": + "3bf371e398a8e1be32cbf6ad743a0c575f491b86e8ccbdb59ae1c315cc90b70c33eaa513b0fae58abdb1e46201ccf917296bc23797cc9452ce50c3bd7ac20147", + "public_key": + "821b9f4cb0c92736b1a646fc6ea195481162f5f7ec985af2d9f1bf2cad03e422", + "path": "//1", + "address": "23pC1tk9k4DDG8vt2z4TtmeZCqgguxqES1BUMGVmxXHTGjyk" + }, + { + "private_key": + "a5aba5f0980cb370ab8d52d27632c9fb34143ad7fd6a5f4ad61e3c268b50ea013c7fd967f6f215f94f3e799ee537255a6dd4d315623c5675f257fe8bd096f1e2", + "public_key": + "76a67e11524d51438e22545bf2198c92ea240e58d2bfa0b2dae65fb4ae993770", + "path": "/0", + "address": "23ZAhF39DrmsYiYtDJJRDjoGRcW1iTUDmLUFAfWRfPfJDdUE" + }, + { + "private_key": + "6d0ec8aeb331ef2e1f5c7d8c8d2eb30f6da026350305a3656a428ab6cf4cce0c56f6b63125985f5b2dd56f4ac64bfd255d2e9318a5622e6d96d5390a2f6c9ce1", + "public_key": + "92972c90ade38441b6157213572f058e7704fb55a88cc900a0780de561226962", + "path": "//12", + "address": "24BoV5VSYh8sYpd6zWheSUmTJYcVXjwfS2GzrGqpCv1HcSML" + }, + { + "private_key": + "cc7b131b7d81629a140929955501aa113df851c1f503ba04a7de01bac6af3504e192a8ad39ec9da2e1e0474d2205ea6fdc0b0c04adaee6f3deb2bd0e789c1771", + "public_key": + "a0220605d8d68acf5eee68cca78275e220734982e9ddfc6dfba489e936366752", + "path": "/soft", + "address": "24VZMWA8PbA8r9XRWYuDn5DhcDiSK8psis91UW6tQ2HdxqN9" + } + ] + }, + { + "seed": "19536381295f88599866ca0d5b4f4eb74c58cb296fd27505fde0ebe41d39c889", + "private_key": + "3747d415bedecf57af9d4ed7e0b5c789d824d3ae917db3d28324ee5ac8bfc70d36f9dc6097e3a846d8d0f72014ef1722b591768ca8dcb8e0929c00b1176afb44", + "public_key": + "94cfa967ce4de25419bf5c76864618af55b1294fe87d73769e8cc2713566af40", + "path": "", + "address": "24EiMtimfgvJK2azKqiMteNwVooH3Nc3sAe2NCufAgyKvZoX", + "coin": "ACALA", + "child": [ + { + "private_key": + "5409a0ab6bcec72d66454f60d3484c277621272797111ed20f7e551465ecec09428eb60498a07280c3f6c6eb43cf6ebf9fc9d6c8779c9cf6176df00a0be924fc", + "public_key": + "7e3068dae0207f29f8f7faca6a195ddd27b841ecbd0c855d39ffe451cf3f840e", + "path": "//0", + "address": "23j3zwXjnVqBZPY4p71arjN1VDMsVwBZ43WtUQsm1VUrn6uc" + }, + { + "private_key": + "33bee70dd33d8dd52b4d82af37e6d172e9f5cbdee19480ad1942b7fa22e3830fc560abff5329e18e733dbff78d26ab9c94dee770e46a020e1fa545619700dd86", + "public_key": + "d0aeb65fdb1baa04994a49a1391df93c33dfd6ac13f769b9cf98f38ad6b8a532", + "path": "/1", + "address": "25bDSpwdy79Y6ZENBNXUhWDCnEb9b4w11EhEtpn8JFEaE8N2" + }, + { + "private_key": + "30fc2ffed6f62c25233db6c84ec9621a81e2e3753839d43b38c86b15c789c10c8de21dbdf330067525827f721fbcac4c6366ea23c5886c60dbbffacfdecfb5c9", + "public_key": + "fc897082f3e83cbbd5dbcbec10e5a483474fd3fe92255e10af010363c0f4e37e", + "path": "//hard", + "address": "26aiUqDAecNYxvmC11FBtTzJkRXNAZrNBJFSVJbitku2RGQi" + }, + { + "private_key": + "6a85631dcef827415f128516d03452dc0b15d842e185081cfcabac071c6eb00f1b454d6d62e49f93e5c653bb23aaf6c91fdd09c3f9a3fb4389dcfe1f1a77d0e7", + "public_key": + "8ab93825c5e4679bc7abc3e07f82e5872c927cde3ba49ad1270b6e5bc86af56b", + "path": "//1", + "address": "241VDSoLq53fPV7DXu1WmRcjX9KdHmLfDwNxtc61DGrS124Q" + }, + { + "private_key": + "89b20312cf0e9be19570a5aa8c7187993edafee7a83764a13ce98d11dd9ec006a825b7f2580de055549044ee27dbe65be9e3c2d79ccf0bd5e9f6bd8712855a74", + "public_key": + "b010aad7ea2d24da6215f85b295bfc4c3510204912e8ce45fabecc7d5627634c", + "path": "/0", + "address": "24rSxuCC6FSATGPGxcAZmxaMFtJiJaaYRbqDqZZucYMwxjnD" + }, + { + "private_key": + "3d87f85f8685bda4735c7645b1007c33e38affbaaecf6a28bd49fa83b32444092b48778e302fe078476e88fc866bf290780e4af2a358854b6715fe3481e8b8cc", + "public_key": + "e0ef4fcd4daccef67bcf5a549e3d2cc43fb9e31b741afd18b5fa3841cda7a110", + "path": "//12", + "address": "25xXQHUctxKMNaA2q3vsKaNrvrTxQAAGbCDgBhXSXK5GKeoA" + }, + { + "private_key": + "b367ba1cf83d8dab2fb66f516a4733597bec2ae5ea2210c8d658470a5a584f07837e3ad95f6a265fd082f21465b77aeb0b13e85b813cced678304cff44ccf8e9", + "public_key": + "d0c01aad7e64a96d2e4df821888868ff5a23d3865894481254f4e15258057a44", + "path": "/soft", + "address": "25bJcUsNXMrjFXviLbb5A2us33bJf9hj9a7T68teR4CxUBMq" + } + ] + }, + { + "seed": "8e6c5e2004ba283aa294f2295b97a28fcd8e2e1f188ab7fbb70bd2dbc9594104", + "private_key": + "17c9fc9c3225c64bc939479293e4e7ae24f353090cb3d799c1c7241978c1b90e6a92fea4987e66d57a88ddc39c38ef62991ac8202357c6bade153c17760eb823", + "public_key": + "40da85efd1dc9b4772d848f8447c6c3edd99d689bc5e98cc782150123977ef12", + "path": "", + "address": "5R74MU6D7nRPprKX9zZy9zD8SDkMrvs3w6zVfXnFLq9H7v2F", + "coin": "CHAINX", + "child": [ + { + "private_key": + "b0db8062a1c9764f9101056d108cb083ee23c5ef14c1e36c4ecb23146d02090ecd0588f77a11b075c94cfbdc256e0629582eea2448104e307459e0874f8e3164", + "public_key": + "c048f688503d1e1b7e1ad64af73efa34fee21bd43edf1e6e0cec59e116e12630", + "path": "//0", + "address": "5Tz9F29Kz1maMab7Gi1edfEh1kvviH71sHsQUBaNe3Eyn7zk" + }, + { + "private_key": + "17bd7ee7ac1ba4af3dc59b1fcd8409be693b229beae4eb6f137b68f61ad51f0263c00eccfad49f4cf67297d49d972140fb077384e19a16bef43ee2dff0f59078", + "public_key": + "aeb5f5c0b6c36f7c776b9dcdd703ce99897deb0e7be5553b3fc17386bb87aa62", + "path": "/1", + "address": "5Tb6m17MJseaEscv1zkrngMePMQ9veb4KSJW45C8A1FQk1g6" + }, + { + "private_key": + "e2f2cf578a1afea06134b0928d5cdbf59d0a5e16b3a1aa05f838285d46b75509448527031e47d645dcc9adb3d9b6ef2ac0a355e7191af09f51ea982ea62f1fc9", + "public_key": + "ccbf94cd4b2e98d7b2224d5c78889abc32ceb6fe8cf2c6cd9465e82aab5bb36f", + "path": "//hard", + "address": "5UGV46M3tQnpYwWDjuUswWmhDZZqk9kGqW4p2r6AXdsg44hG" + }, + { + "private_key": + "3d8f91d1f655649817f40afcd462b3ebb0521f4f304d5290184c236a45e0930f757abf777f4708c0e8d9d800014c923537353b1cdbe9614fa44df659173bc1c5", + "public_key": + "368e2e34fdadc2d4710662e6e2539c452fa4bd654561fc12368b294ce8126a72", + "path": "//1", + "address": "5QsZCLiXzezG31VZbGGUvrk6i3wyGfc7Qa8fPcbhppdFCwwr" + }, + { + "private_key": + "92858166bc01c7b18f3bb632400908ae2bbaf080a987dbf8cdac6ec1585f600cbe0b192b9a6595c5c130237b0f9d225b520f10bd911f48377ae8f1f18ff3052a", + "public_key": + "3c32ade147bc025cb6a4965eba2f99564d48380bfb8fa8c83476321249842f4b", + "path": "/0", + "address": "5QzxJUTsW7QXTPuVLjMqwBSYzDKXp5UfPaECiMAQnuagS8cW" + }, + { + "private_key": + "b5d13f05a758945cdb828699b787e4da553b93a4924087e44261f1036901890e2b82721b9b8ab35da6ff43f00ee2cfcda265ff4c3f56e351d35f21beb0b6460d", + "public_key": + "1850a18c53c2184798fdb842ae6f8816b37f4f82fdb104f10a906fa662e9ed4d", + "path": "//12", + "address": "5QBuUYoGUzVsQTLx6Up8cC9xQHbzWwxt4oB4FwJXeJQQVog4" + }, + { + "private_key": + "5df6346713cb657981c883e36bba308fe96fca9e232f644ba428f26c54f22e02fe5c1f3a659305fbbc82341f09e155867284ac63830c400d467633e6191054f7", + "public_key": + "9211910c411d7e5bfa2b29ba863b302fd3b4495b478cc01d3655ac90df6ee673", + "path": "/soft", + "address": "5SwYaohYbUaAzkS6fHFvWDCd1xPYntFmSLYirxrPytyeE66W" + } + ] + }, + { + "seed": "66c62c46a674091729b622e4eb93bdf803c99b20d1c9dd4b230adc2e708b03a1", + "private_key": + "fa2519df92524999978fc410a209399f6c37c688d22daac3343c8a2d7868df0c1bcfd9dadade0eb489cf2ec35facb2381963ceb907b3eda31d3a07387228fab0", + "public_key": + "1a0121f6f47cd958a1a321196195e6142853ba21266d3030ab56e54cd84d9727", + "path": "", + "address": "1b6aj68Gzai98qtdCeCucfpUkSTG5UdtuxD9hseusEroV6T", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "9adcb8e2bd9a5159c72bcf70e72329f3687f196b3fdbba68aeb785809b431008ff4d1178fa7092780c4ce75944d120ce30d321c74737a0a833dce2d3769d2618", + "public_key": + "be01c28d48d8a457413ae2bffc250e6fe6653e6008c9b6e1199ada43d9c7952a", + "path": "//0", + "address": "15J8d1ki5Ma9wsWtDhLtr6AD1PZny3Zktc2PbRycLAKRQ3km" + }, + { + "private_key": + "89ac16be7baa352d5d3d9772e2a8957aa7dd20f8ad35b836f47dbbe4f5b2f8071beb6cd7bf8c058d1666f680e084c8d1cf7b0844861e1b825bc91245826e8ea3", + "public_key": + "56b51abb647bc068e1ae904d6b09c3cbba45e718586daa592ae0d9fb256a224f", + "path": "/1", + "address": "12xgvCv8t61QmGJicBP8fQxJgupbbqgVxaucdy7vvwjGUYpg" + }, + { + "private_key": + "bf35a8dc5a1d19f355fe46534e5e0fc5a24390a25658e92c4e0b295fa160e10ef8766c96de001f8500605c5a7308dc4de57aae3f9a8c2ee42cddad201b42d6d7", + "public_key": + "721a777eddfcfee3da567d180b2a756153c473d08fed7069a79607981d9bb850", + "path": "//hard", + "address": "13acKdHjHnhcccEXw39wZTTA2UH8cpRSrwidgViMGujzN3eU" + }, + { + "private_key": + "ae107f79d74fda9e2f214762e29ce5e5faf3219d14b79f5693e8e7ea01ecef0e83e15fef2a38e435b87b97f6f585a3f92435169456d176dbd23ee5f545d49efd", + "public_key": + "327f7910ad1fdbb438d72034a847b52f0cdbab1c169b665677676d1767b6e364", + "path": "//1", + "address": "129DGB2B5FMZEvZhPjZ2fdvQAjm3dX4KniRCebpZ3ZCQaG1n" + }, + { + "private_key": + "c20c21c22d1bfaaab915bc13980474b0554b5e4b39ab3edb4e18c7dcb562e30a389827eb4c3f82bcfec8ca5decfbaec2651d7760f2aa0122eb5fdf395171ec5c", + "public_key": + "faff1c7efb5557629f4df66b363741d8720766b2f4778f8235eba9975bfc5a00", + "path": "/0", + "address": "16g6ko3MF3zHFXHWpzzRYfvJmKQ3MmV8akaEXVBWb529d8dK" + }, + { + "private_key": + "eac6021322952f17bd4583459ab40b7421950bb1db691c163a5d0f02665f5408cd0da0d073139726f6f527df109d2aa827cb5f96aa9edbda739035d38f2d7491", + "public_key": + "bade6e69d21e113605993a38bfe0d6893ff176cafc31a741a4821d5f2fec200c", + "path": "//12", + "address": "15E1yyyV4eo38hXxf2yx8XzGCre4gb8WWvT7oNZxEcQZDKKm" + }, + { + "private_key": + "6890be8b15c8fcf3a5c05828392b24c0be956dccb3e09e77971d9c9e1c2a260a97c59aa6bff3250bcd9be3e278843674a3c7ce51be7acbc6dfc48e2639a0487c", + "public_key": + "0a534fd6726a24823494e5119fda9edf9e516ba69f46ef08aafaaf246669902f", + "path": "/soft", + "address": "1EYECnS7LpWu9BRWLSEbLfSnGy4x3KS2qGsY75wwAhBuVSe" + } + ] + }, + { + "seed": "fd979005086b38865163df72d7c14ff61ac19aec687a0dcbbbc541b37b5cb420", + "private_key": + "b341018f6609713e4ff58f342204e7f886a91e41ab804f45e16429bf289bcc0fb838cbb7a7356e1723332529c48ad7d8cde812af9ab77951a6d29fd184dd7dec", + "public_key": + "c68a1028398e1294f4bcb3f91320e56f2a24bf20d49d32822689c6b09b6d8b18", + "path": "", + "address": "35EWfXGeKt2PWdYkQKiLbqVeCJHANsttDBZKbWJMMunx4kJQ", + "coin": "STAFI", + "child": [ + { + "private_key": + "15a0720b7dd320e7271bc41f57a4a8c69e59bdd42d475e1c47233b79918a0d0e8e73e92ba6ba8b66d4bacf6fd988da35494ab1dac96607cab3dea7fe92d550ac", + "public_key": + "88eb79a144970ef43604dbbbd7666b4b6226b985559091846510a6e2b961d02f", + "path": "//0", + "address": "33qidhVs7E8CsjuSNo2MpbammHTkiBdc8nKa6zFoFuCnHinq" + }, + { + "private_key": + "5494bb376f6c2e65a12c367f3330b6becc7177c49e7937d3389e0e81b1ec360ddfc31fe72308f2e56193058b3b5b23c657f4301a9983b0756cad29caaea01138", + "public_key": + "f28519f8902f42986c87572d9c58a35a9840de85b1b21108dcb55d1a43759359", + "path": "/1", + "address": "36EBJEhTUK3FjPbeZT3ucRmTvXcJVEpAXCzMtszWBafayUHr" + }, + { + "private_key": + "b8c3d949d25970f7096fda0a3611ea058b4785f17e6daa29b01dfe848162170ec7d75c1a3b89e73d24bb3306120253a5077f7421526fc647e26dcd7d4dcf6364", + "public_key": + "92af29f23ceaeca6f8fcf7a5122215f2871b2debeec9425ebd10f3ccb1a19543", + "path": "//hard", + "address": "344XCLHRgjADadVctLAfozY218qPimbLxsyoTGYiWw1uSv5F" + }, + { + "private_key": + "b84790eec3fd26c64dbf35e097fa0adf981ec76c663fde8d3709311be533600cb178ab1c9abffc63bb06806c31b7b3782b0b5f6bffa831f3b6f24ba40fc482ce", + "public_key": + "56352bea7197917074af5d483fffa2284e21fbd4caa171cfb089409472bd872a", + "path": "//1", + "address": "32hE5pHJYDYBLRCEeDGEED42ZhDBcx8QT78CzxKBZcUFnCQe" + }, + { + "private_key": + "1b4b43a7caf5688ebc02321bd1049fa4c2ff1c6ef527a6c77510350738cc9a017b47e60720f87d1af26254692e2a0abefd746d4f5b49250894b044398ab5c1bf", + "public_key": + "706e4fc551c5d25fde372ff2d0193fc968afbbbb5413785fb771fc5b9bd59b57", + "path": "/0", + "address": "33HcJXVAZVTFU6YMQzYnv7aeFstz7hoFL6o5XfR4nt6iY1AD" + }, + { + "private_key": + "46469b33a1468ccacab90c990311d3d88266a199e48962476b41cabc993c620c907867b9e5e78b667e99fa9eb1b9b0e6c6bb2e23c6b1b4ddbbfa98f95a19d8b1", + "public_key": + "d6248d915849086e35fd0ff3ccb45e040854b0de95769360ef890db110375c2f", + "path": "//12", + "address": "35ayGyrrn3RGANLwfybwrS499RjkreL6yGeSRC4JVLDPXeuF" + }, + { + "private_key": + "9b30db573a64a1fb835a2d7688c4832e9084bb344db92d616a947cd6f8675b06c58a5a53d61177684a964bb0e93f50ecd69da83898d7c62471e65ce02343f0cb", + "public_key": + "1aa595e8f75ea4321b799ed14d01a8fc1e9ea83d1d4548973806aff9db982d7c", + "path": "/soft", + "address": "31M8c2TtoBZmUa6aVT7NfJSSF8u8rUaDjTiH9Ncaej7rPUXP" + } + ] + }, + { + "seed": "60f7e21f6f38ec6e2fb68d549aecd42addac7607f60ed9a1b27e7c7e3fdd3f38", + "private_key": + "a0259b49c4cea06dfc07dc301d20973daa46d0b7251c1ac98152342e84680c0888de775659f0ed0afa534f8499e33889dbcd98b097a84d4a1bb7394b24dfd117", + "public_key": + "70d6624552456d8cd81781958b62eb393ea4e9d799be20be215e730b1ee4416e", + "path": "", + "address": "23RYdjEDu5JNnTHXST5FMsY1gUghiozr7ErNKh331Mm9tVKH", + "coin": "ACALA", + "child": [ + { + "private_key": + "3ef9932c7924cb84bac8f8caf742b866ab25679354c97d4e09281161d9a0550dd5573ee7578de5356cacb8902d0c6c26ef3e287d775b25171f804915288e8275", + "public_key": + "4a3e7d674446c2d720c5c0eb883683597ebb89adae8711b262cc527264c39640", + "path": "//0", + "address": "22Ywh7oTZx3NFESVMqA1dxxTLyi8sH2PidyZZM1zFbg97SCd" + }, + { + "private_key": + "47f2ed5e4482514b9ef823ef573fe8773b13696059642b232992b1c766ce2a0df8638f4a78ab901b06188ad2c70247b7c8e8fe61999cf304f5c300b98f655513", + "public_key": + "84d0ac67f1963751bf4237d630ed00675f4f1a66b31327213961b2623283e027", + "path": "/1", + "address": "23sjttQQ5zAYsaocFTTX72SFYZVXqah1UW9tstAtpxiSUL73" + }, + { + "private_key": + "6de582e3aa3cf61ea99c882e16c58f9b4d7cae3c10a91d15c5db3d2d76687c0b613a261ec3cdcbd06b0885ff5593aa090a6f27ebfe3208f7405f4635ff4e7f5d", + "public_key": + "40be910b4461f0ccbe875da9126d85e24c5fc57c5e29168c484ec5d6a7d7ff05", + "path": "//hard", + "address": "22LVG4AtBv5HUbtoXn3YbdfQu3bxcMgYascqBS5CF3RjJrx3" + }, + { + "private_key": + "cc82ea0217eb3068f237455d6afbbab3d196e9d38bc375608ce66cd624a0120d8d888be691a561f74acf9426a686882f6a8fe7b0f5b29d16876bd21c70687887", + "public_key": + "c80c0cabb01b347e0c54189a74a0ec2c54ab9ee7390b29d83884556bed40d252", + "path": "//1", + "address": "25PtjzWJxQ7CT84YadbhcAcpwjsxUysy7nqrCj4SXdQc9Hfm" + }, + { + "private_key": + "d0fce097958922ed589e6331ed7c4716ed5a937b530d7e446219ff645239130264002ccf3e3603727f23869098b3a663bedb090eb6173df1091d5d63c4910da7", + "public_key": + "d0dbcdd0ee39f942ce8b93a0f8566f517a7c4f4d415b2e3ca73de908bf6f9656", + "path": "/0", + "address": "25bSqjhhPrFFR4Qyx8KWFXantYwXuYuYWc26mj5sa5tqThPd" + }, + { + "private_key": + "5a14517b5d98b114ea49c10504779d6ff296b9cf846f4876e170d89adbe4560d45d62432f5b74342541c29d99c4c3d87589b45b63cc146feafb1a62990001ac5", + "public_key": + "ba81506a42eef09e89da38cf41b771357b02edd41cdd8b6c073eeeac9dee1c19", + "path": "//12", + "address": "2568uXqCxSyQUR8Sc2G31ogCCshD3nvxieWBY3j9vtLfvdBh" + }, + { + "private_key": + "2fefa887c162dbc8d479e4b16e38400e4510620c2b4a18ae4a39700b4b6a02001e93b64bf8c446314241b6e75b88f0721d16c35e2ea878375f316e4d21e27cd1", + "public_key": + "d209104e20e79a69f166b7f604f20ba2a1341ee4ed620b153dfe52d180d26c68", + "path": "/soft", + "address": "25czLKatZGZ8dyXgQADhQHxX7snK6aJTcS2jRoydXbfYxi8x" + } + ] + }, + { + "seed": "0063f1051151bf37f71a8236bf35b3677c6128fd6e82743412f5ebc5c1dbf89c", + "private_key": + "93864f7dbf5f69b2b14161d607e00d6cc0ce694b8c534ee96e61395fc45f4d0af1e75896da1cb5b4c0331909c52a30a90680c95cb8cb889a9105a65f1a9f801a", + "public_key": + "b82a3919cac860eddae5ce2286cb1a7a44d06ffe32b6175c72adbe7fd206be41", + "path": "", + "address": "15AUMWgdDCnnW5kPexTcpzjHgoCV8hAaaLNZSo1wYxtxAqsM", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "061f9e6c24ed49575e44d0e850784478851bf88e91e1515df89b50456a5f8c0e8bee82f56ed79cf961adb47a23fe9bf25a870ef6747b826d7b1403d6f80041c5", + "public_key": + "a8f6957870b56291afac4437b8e2eec30a9cddb4bcaea54438f624550fa7e932", + "path": "//0", + "address": "14pYJ8XMt2sffEroZ3BkDheNERNGxskj97gHZJDpPRdcGv1W" + }, + { + "private_key": + "e02e7153b639ee60e80f7af03d031319ee85a3c873b8dba741754ed79b623e036323bb8d682c1aaf9e232cec30263f5fad50352298bf899c7c478e30034fe710", + "public_key": + "bc75015b92c9777ecb69609292e7723144e56e2f786c3f89edf0471ad7178622", + "path": "/1", + "address": "15G6m6BHnmrkGxf6n5HTbWgNR8VJN4zXEAiYeW5nxfe8bzp7" + }, + { + "private_key": + "fe9c1c0008aadf56e8f17da8b8b7806ed4cb82893888e486006069308efe630833aa8e93b29fc2c588ae9e6820bacbb97990dd8bf875da6ed76fc590399ff971", + "public_key": + "72dccc3b17e6ee74da83a8d6cdba29f3c0e0849d1674e42cd9fbe71061698a72", + "path": "//hard", + "address": "13bc3sWM3YSu6LdjZAhkTLHoLsZHx2Jv6UteTE8dqPsPhURL" + }, + { + "private_key": + "356fb897ef8e14252784ea2b33c855a2c1f3f4166556e16d294530ace00c1a0eca48a69e601444c00027d5a338ccc85fd1c69d87925412b4e676e87ce9981d75", + "public_key": + "eec8829910cfeaa88c58753ad9170c125b16b915f1a17df8a112f40f10d84179", + "path": "//1", + "address": "16Q5xiB449MA3awgaAWmmy6ozHjiepBieciBiLKPmXZG2R9c" + }, + { + "private_key": + "7161145b91e9aa2fe3c801c933a30ec542e4d6a83adf265c6721f2492465460171181dc6c368699450c9d31f385d315e47cf93a83ad88665ca15376cf866d1ac", + "public_key": + "5cb1f399f10d34646291f10ba15b937f33baf496ad604f70ddbb3f6a6165a23d", + "path": "/0", + "address": "136YGYiphxLUS8dSEPpDuDvvWBJ4aFxiKwyfh3pFtvdq2Hz8" + }, + { + "private_key": + "bb9881c6bab434e62c68fdf5926775c41a8dabffe768af0a3f1e324a737b960abfd8ca34d71b31cf40fb0be6c71a4e03f09c85d7e2aacbff1eb0c6d584f20866", + "public_key": + "603120fea089cb9234ef2c2c425ea6da9244833adbe3888b95116247f4836e1a", + "path": "//12", + "address": "13B8C6PvkYcqAt8vByasgyqJHCqtMSq1E1UJoaqLmdvyiufN" + }, + { + "private_key": + "9056112fc0dfa59905d618a1e219bb03e0e6b1b8e05e2541942aa7300202440f6283e561680289082fef42327b2d1dde6f286a048e9cb0dee9401d7d26c7e619", + "public_key": + "642f94535b38357c8e6642fa7eeb7effa5068abbe69088a52bc45714ff8ce323", + "path": "/soft", + "address": "13GMvWJXbsHAxCQ5vB7wPFNmjVbhRpi7eq9cVRmTkHyQWNN4" + } + ] + }, + { + "seed": "b5148af6e1aea8077e487d373d1fd2c92fcc1688e7f4ae95aba9a0ea164d0cb5", + "private_key": + "4421b22b342f7e6ec74c685569d8eccab9a03b24f875e3268bfce650706e4f0c9df1a1912715d3613bd77ec91779050b6e9d73f1eff7d401748d1856902bd40b", + "public_key": + "8a699bbaa518c94e2d0232263a554e737718093c84e8c5f5f8ce27098a12162f", + "path": "", + "address": "33sg9hbkRRqsNBWk95ZNZEGbqhfJhFEKqcBCvVfaVNYiX7tZ", + "coin": "STAFI", + "child": [ + { + "private_key": + "2732c1bc0e9e4b8d110ddd1416ab2c0e317ed0123a34794c55110c7e7592a00892e0a7700df6ea5bea8cd9126195728998ed06373dd47b5c91a6a37d7283b68e", + "public_key": + "cc573eb3bb3b75b787da2020eabd38247d04ae073771f9f5c3665b52cf1e8722", + "path": "//0", + "address": "35N7rcKADQ9DGF8Ezc8WVz8cqyLMNNvGoKTWZnviqdt2sjsT" + }, + { + "private_key": + "c6e686d64b477d8dc2243875703810d16743f94e67c366e85525094b85c0650a03dfd5d192785dd619ba9135f85dd994de336c05884eda63b3999b4b14ae5678", + "public_key": + "0a48efc2dff282d63c1261040809c82ddab830f4981cbc45058b8c46880c3f40", + "path": "/1", + "address": "2zygKHQLouLi4s3LbQRUjgTZwcrrKQTgKe6aKVmkejtZ64hh" + }, + { + "private_key": + "84136ba6cc0327037767df8c2b2ad212acb0cdb74b5e9c22e515479a97069c0c162056ba0fa3bd148419e141c44733d26e39ab22a15aaeed4706877ad96f1fe6", + "public_key": + "62cdf4b3f154d7625fcae6b04cbb65e83da5c9dffb8a4dca68cc85f2c1cb5535", + "path": "//hard", + "address": "32yk3ZDx5qxYiLw7onrtJJrXLmUdJiw7tZ4AQKhkuZsPPNBj" + }, + { + "private_key": + "8b106cf35e5d06f269743de1cae5259746582c6bd62e53af17957af2e64c8f0cfe4cdce18ec660d20a78d30eb870fd6a1acf12be22eae64a97b0c98c21cce2ed", + "public_key": + "70a17a718c331b15389afee2be4987bfd6879bccf22c687f41462a37efb4b82b", + "path": "//1", + "address": "33HsW7DWZPQEsKkjVsin1ychvGrimGebGq79ihMJF37D1QsD" + }, + { + "private_key": + "e7407bfcffc8ef1c4a2c071891d0ee7364a942833768ebc373f4e76a6066fc07eb798bea4b69b9a15b96b2acb2ebe2dc1008e0eaff5ed7056cfd4d7ea1da5d53", + "public_key": + "7c1ecbe395e42bc4ed302d83c81dc11d5266d9e4af8d71c6cab468d0bb817477", + "path": "/0", + "address": "33YwFqfQLsUdKP9hybHB4WpTuv992sHmGgc933g7x1tSJXVA" + }, + { + "private_key": + "9305db996d0a2417954dca4a5dcbe7cd0fe73f0389e386e2695ef18bd0c9a40b143e56f548fea05a5c60e2a9cec9729057e2f5a14c65b0d26f59bb13bc0b0d63", + "public_key": + "247561388108e6fa9f86e833f8ad28fbe323bde9a2f02138743a611d1859080e", + "path": "//12", + "address": "31ZzmEReKJZXvyTEQSniBgWjumLLM75pVeS9SRaLrWW3ERL8" + }, + { + "private_key": + "923596784785b2c1be81790185dd00b8bd94872931a9dff7a5dab4172ce45f00dfb1d54bb0d7625cada7a2f691e79a9ff5bfe6c040b47c9fb8e2bf7f14996990", + "public_key": + "cea3ad727c33e62f6206c8fd66decc1ac6c1f880e639859842933faac3139c08", + "path": "/soft", + "address": "35R8f4rdzgcJkSD82KfsKeurNTjeCnaHMf6a23w8ZWr1fZ9B" + } + ] + }, + { + "seed": "1571c51205ae4815b151987bdedc8ad71320143fef4225d72d8e7485fef8d1ce", + "private_key": + "209a1fafcfff4ddc93c8f9ed7bc3ffd8b129f092959cfc1351c6e57beb415d0d40e5e375a09deeaf1b00b1987680f9a16018bad4f9650fa97e9f701d925e3a26", + "public_key": + "6678be43b4933b8d7e3918630f779f3eb3005d4cc9dd182d9da2ee83c1f44e22", + "path": "", + "address": "5RxP8J8NDAsdY3BH55JJdfVwacQ5atxtBrksGx778qaqa6yg", + "coin": "CHAINX", + "child": [ + { + "private_key": + "87afd33ecbcb14cf11af08b6eac4ce3a624d86ae773f52283fa24eb11382de0ff8f73e665c1643b4c6210832542ef8a19882ca887ec609dc4f8a3ce77de7502f", + "public_key": + "14ac76b71022644305788fb02febb1576c3f048cfe1d1f93e33fc9389ee7791a", + "path": "//0", + "address": "5Q78ZgQ7EaKKLkzKRidsPfKDkRyJJCZSigCVBhHzaXhWnG8U" + }, + { + "private_key": + "8f37b4125f5e2c02d5dc2e7ad3b56ea78e2a098b30d2fcc950fbc9c561f9ca06991d3a50229a20ed8e6820081c3a36d8db12bb713c0560aa2efaea8a2045bd80", + "public_key": + "4e6b8b8624eb56664dccd6a39b0c7340da10c480d119e620646aae79f9dba953", + "path": "/1", + "address": "5RQr4EvPAuQT9T8q5nDZK6UyxWUtGKn19p5Ex8Grt2vKRDbT" + }, + { + "private_key": + "70d49688052eca4bdfb9741845461a5db53d1eea5d5986ef243064605655d40db82c041d9001eb7360a9997f6217048f1d12fa36deb8104dfbc1839377ad539a", + "public_key": + "1a56ef619bc65d6ec3421c0df0eeccd22da14d379b22e3984dd4d8ced7012224", + "path": "//hard", + "address": "5QEZSihGkDssy3NQD25NUCzcx4kxg1VYkK1ftAnKfmEHBAFq" + }, + { + "private_key": + "abbac4ab69b1704111ef0ccedb2a71d0c80d2d5216d5fd4990be44388f54d70ab46f89108d1d9ebc28dcc0a60dc92618ed44963b6b000537a8047f6dab6dd4ed", + "public_key": + "fa93d09ebd0b2049c1e4ed60daa82e876ab4720dbdefb891b9f9e16558f93c70", + "path": "//1", + "address": "5VJaFmnXtLRMgBcAJcR6xU3XpMBj4D3CkKQ5hDMDWLTa1qvn" + }, + { + "private_key": + "01e32979e46613c22081522a8761e608fda24f4bf60bf47317097a3e5634b708808b7a7121eb0b04c9ea61a3239043c3b3d992dc5b031058f205b4bea472feb6", + "public_key": + "64e2b9d6f7b95d278bfadf20d2a102bfbc06f888800f7fff87e66f92b2330b7a", + "path": "/0", + "address": "5RvJWnG6MCHFYMJg2KJKRnxDxh8xviuT4wMHYc3qLjh4HAka" + }, + { + "private_key": + "1e72d20da98abdb623f174ce1270f26387b0e2468e0103868b44e1655911440cd1b17658bf04369bb61453fb5228d4f544430bcb23558f59d4554fef3b7dc771", + "public_key": + "84aef2fa47376a1bd275c3c199a09723b017d57163ce5c0d9b8939b5e5850831", + "path": "//12", + "address": "5SdzfZXTq8MUPrxxjLPgW9rD32gbZbAqyodKfZG6T6zkxW54" + }, + { + "private_key": + "20593116a73de9acec644de181af311134592d45f0652c43eadb670ef273ef0edac10a99f2e0ea3c72aef0a6fe43f7ee81fc351ff515c3c14f8ca3fa96f7ce39", + "public_key": + "4851229d133381282838ac48aaf9d6a511eb318b18961b36f1820de0c8d98e34", + "path": "/soft", + "address": "5RGqvYewE32D2pVGzbmZ87nhCHBKLK9uu3JUMXgMPHzxQkbP" + } + ] + }, + { + "seed": "d5db556e76df6b49eae9140e585ef756b4877fc4fcc6c9e74cd376cb1ea446fd", + "private_key": + "60e04ed8041ce202a3c10e7b1be26dcad92bd64f267380d04347be98f0d82c09afaa52452e6fbc285c3bb145f626045723cfca190eec0f2b66f68907a2b74997", + "public_key": + "d0a8c647a15cdf2458d3cdb271007fa9951f03cc80ae482dabfc96930cee4f1a", + "path": "", + "address": "35TnGSYYWnVvCCHLtd2S2Bz5t8F7Cbr7eYJz3R9tX5ckUBHE", + "coin": "STAFI", + "child": [ + { + "private_key": + "c50b9d9cd014ca01f49e0951d585f39590d0059c051c961cb39253438d010609ae65c76da1e36248e18df2d1e830c42d799a3b6e81c93435c582756bef7c016c", + "public_key": + "8085cbbc8335838951f1ef19d4ee73a63b382cb03c79e703299c31fac3e04528", + "path": "//0", + "address": "33ei3b2YUMAosWFEpaWnZrb5bH1avQF1MGmk29xsZAEXRSFh" + }, + { + "private_key": + "da69e2c6278a731de9291a5aec0979a7321899e761b0465e288807c64c744b0f813baa2ae3224dcdb732c01eb4ae64317c524de4a40195e2608e27b2079b77ba", + "public_key": + "42552df2a984fda59816777b15f2011643e005acd2faad216acce4d666464d46", + "path": "/1", + "address": "32FAdkfdvkidgaf2WbMKc3mB1FPXtuYyeDvdJCdJC2LLbDUW" + }, + { + "private_key": + "14949e0c16fe4281c50193d7f6785eef5e0e784e91e35b243bc43baa6ac0ca0a699e56efbe19d046df16b39ff6122ff142a2e1ab70ee0152a8e44106e72fafb7", + "public_key": + "5ee08361f60e2b278bfd9a738be888fd0a580484b91fb636c967fc21fceab10f", + "path": "//hard", + "address": "32tbNBYtueEw3WWxz68VZwjE5bp6qPs5Uy4Rgmhs9HgygsQo" + }, + { + "private_key": + "b5d7451898da5c71c6447cc95b4a72c4434d194804c8fdab5208585d34ea310ea133d56b8c891429206a92731f169be2ba09333cb96a226a89eca1367c03aa37", + "public_key": + "044d8d9d09dbf7995cdbf0d1bea52237d8d2e168054662826caa3f324d1ef020", + "path": "//1", + "address": "2zqqQAMVhVhURrvrz3gtqxYiB5UKFJtaZSJdPH1wLDdCtFMB" + }, + { + "private_key": + "10223d9d2ca785f6f60a4ce3efffe1a32615ae1b4cdc9a7261eb342d52817e0df493043dc3f1094d9c331d6cf1523cdc3d0e5665ed715e056bacb0e0d46674cb", + "public_key": + "a6adb91dbb4a01c0b00aa184211d858a442b21abb95aad223e1c90ca4d2d5835", + "path": "/0", + "address": "34Wjj4D4XMJTJidmGWUc3KqsSujW2iy7P289SDapGfDiS5y6" + }, + { + "private_key": + "7f0d1b10a2bf5ece6392f4bff8aa4ba569915143219eb8d6457f46225491f60b4a9f7548ef819441c7f65786701f1937956568b947e6a4670eaca5a50fd55246", + "public_key": + "167d98d1f9abc066d48917123266c8ca3308da9c0a3b098d7b18a44b7dfc946b", + "path": "//12", + "address": "31FgXvpSGv68Px7M6rfVAXytAfs74A6Xk5cnHfrj3rFAZ79J" + }, + { + "private_key": + "00ac912fa809b577b75231df320ce53738132037a0ba66a0d37692779738c404a727b4af856fe153c79c78dd90e8d89fecbca001f48d996bb83e9093688a8f0a", + "public_key": + "b2acbc2ed8393b87401e071bf3dd30edc56b5df9548a56bb87cd94b68be29e69", + "path": "/soft", + "address": "34nU1Mscbw9reK2fpsGzvXamQi4KkuAGwgXyRdGUiJHfKecN" + } + ] + }, + { + "seed": "bd9c88138acaec641dd0dbe06de2c4a1aa9444a9835ac3c7ad73e285459bf6cb", + "private_key": + "78f5ea9d2ead7957431ca16bc35a691f278cbdfc7db349a6dd089fe73925db0c4ba6394bf071e7f0bb3794ceda2509c83c780c2f9f80cddcd2fa8056167cb02d", + "public_key": + "1af22dfa47ee32ba87342ab0eb5e706aaf9ea3864241e320a951ea280e45491e", + "path": "", + "address": "31MXMi9Lx25MaHz9K3ysRH8cgrnaLZbY3wNu9QtSuiesUKEU", + "coin": "STAFI", + "child": [ + { + "private_key": + "3791c1f1f78344bd8ed9916513f5c7433f019ac10c905b025dd8bcf5379fc20c56f31566ca0397fdda38c5d1a585b591bac850fa7c11ed5ba2ccbe858a4c6df5", + "public_key": + "9aa4552b0f4759e239933bd9435affa769afddcce2ea323bf08fa822d5372120", + "path": "//0", + "address": "34ExMwCBGMqzXE632w8q2M1DTY19SUNeYq8kWPEGcvcNKjHj" + }, + { + "private_key": + "8f9a114d3335d4237e34c0c2db09da5f6a62483da90dd788c4b7988a1b361809e67132244faf616a84de4c4d7ac9166085cd80a3aa830fea76a2fcde036ed264", + "public_key": + "ee8ee1d99b319d0a07697ff9a8f424574f1df0848c669c5876698c2973e29f45", + "path": "/1", + "address": "368z1eTS1MfHWuZADFMRu15fskHyG8YD9PwQK9SWP2Si6mx7" + }, + { + "private_key": + "3ce53aa06b0eed649568ac74bc0c1c3b14d3a9d01b6ca4de386994e01617d90cd78ee8d0a285e0b00e4ed8b0e4e04d2ce0a8c33ccad6b3004b49e5e4024b6bcf", + "public_key": + "e213a5be355cfd48f59393e189847340c1def327325b8aedddbbf8c374e1fc24", + "path": "//hard", + "address": "35rcq2rayArdcD7NxS2X7wh1gnpiE1A8e9ZC5Qt8zpoxev3r" + }, + { + "private_key": + "bd46e6a1a46b4c2c5f6a791b65241c31d0f0b75920c453fbd1d7235dc448e109b59cc48e377ea62cbb4db549bb72a62520958ba30db7a67bcef43505168d85db", + "public_key": + "1056c0b4f44e585d0c99e05f75cae354fb7da479c7d67d29d9d6d05d342fe72d", + "path": "//1", + "address": "317chzfLixigUDC5VSLXJe6APi1kXk5gfpAP3KCVAmaW3LEB" + }, + { + "private_key": + "ec945dac98df7d34a96ffa0c5b91bc90203e29bcf18b05daefa683c7b9ce0c08b03e23fa018d565669a6681bf328c75be7806571830d9203acfa27dbc2f2a3e0", + "public_key": + "2642ccbb606be2fcb778548d13812fa1267470d06caa576ff181af5f3673ba60", + "path": "/0", + "address": "31cMqK7sV63vGrSUdwRk3yAbZnVxiQKJHv7oCXXjL1vc3FFZ" + }, + { + "private_key": + "58124f86a09f7d88a13ee14f6122226fd9c688e7cb4507aa29f2ff33ffd0170c939139bf97f8e16f48a74c66aa8814bd1dbad3d0881ec3f8672f528cad6ae946", + "public_key": + "b858f8f291c8af071e7638ca90135a9057e3ed2ecd3ad75c1ff8b6afe231617b", + "path": "//12", + "address": "34uuQpyKuaDbdLxLAz62kp3La5TNVyf8p1uXCWUXUqs7LFhD" + }, + { + "private_key": + "44e35afb5c6e9f5842cefad7b4cf247ecf0d36075af88ac9e88a52a1971e920671058f34dd481540aa3bd81da1d4ab0ef87c2bcb713d7e558ba34fecd418f339", + "public_key": + "d29321b98c65b636a402dbf1122503c84c6c4d63de3ad3190e7b5a97285b410b", + "path": "/soft", + "address": "35WHw6i13XmnKJiex4WJVvXfLWTteFZZjULcUVeQrihQphY2" + } + ] + }, + { + "seed": "b372588cf32369927c31c806635934549963043cb73a5b75d79ab71fe90796b3", + "private_key": + "93ee6d622d5fcbceb3fc65cea45b1bb05d59031c276f0c4d02c949abf066340c5f817e73f2e5edc9faf49e768ca8708e49c8ea6ea635427806c062ff939f25dc", + "public_key": + "d6a53176adce5e78797c8d265cf0a5a9291c591294787b77b6155c570915825f", + "path": "", + "address": "15rSKZMWoZkegv6Szu6zdmZmsFKDoWWeMb95ffFsd25eQ592", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "1add626debb90e7bfc263e64c360ff7b0b1bfd613afc2b5e40de1c8a7408810bbd9eed0480a7c94b22cc952895949a17e09c1255301e203e2669378cb8f1de16", + "public_key": + "ec395d0e7596936ca981b479b13776c8ed9c5be87a34604fdff2de2378bc6348", + "path": "//0", + "address": "16LjLoAd93rpji3m5ULzqhFdf4KoZAuZXztLa5rZkV2sSjhH" + }, + { + "private_key": + "57b114463cdcc444a14f51f408c603571d9a7e3d4ddbf87f47696c54cd81df059a840412aaf6f946c36bea67221a5dff48bb64816038cad2c8e73d6b3d72e9db", + "public_key": + "cac1738dba868153dd568633037347032dbaeef864683d2f55f0443d6ec0a130", + "path": "/1", + "address": "15ar97Ccu5rfH36pCeXf9d64ND88BLVZAou3d6vmyKqHr7WV" + }, + { + "private_key": + "2d64a41af3cf9ddf7bc87a0bb29bd2772af6013dfc886e54862887945c995009ea31cf6dc338512cf15b716017e6ff3099fbd46820872417a90628a06c3cf038", + "public_key": + "1878214ff284a38b122726bdf54835103c58794ea28961f0399eedc9d0da1477", + "path": "//hard", + "address": "1Z5qT4mTwZQQF3jypHayXJbZP4gSNQRyXndFmyohZqyNGm8" + }, + { + "private_key": + "f63e921f07d7728d2bbc9decb3cc4abef1c5791d55ee39e9e6f38998363bc608be6b285775685094de84fdbee8fb211707347384ccba12c6cf85ea50bd7372f6", + "public_key": + "9ae4d4b1add1842db6a05fc6bfc8d187927bc130a8c3aa2d5422e52ed235da52", + "path": "//1", + "address": "14W6MNSfozgpXAvYSpRMjnT7o3dWYPcenZ34wV1wgPopff3Z" + }, + { + "private_key": + "0d0cdd679d6d098a4e032178cf6bc2a0c207058577de12d736ebfb426e50b90cb9e4a7da4d235f6136e92c029320d47d3865978c8abc09688a0a43a83bd51a9a", + "public_key": + "fe61946a70c14eec490f5278ad82116828a257584c28d347de1c3cb62c5d033a", + "path": "/0", + "address": "16kY9hT4zKsLTRQ56YRJnpxGUpkDNCEb34Kn2MFMZt1SU2So" + }, + { + "private_key": + "f2180232f82c8dbc78da427fa1100f6b0ea68299d72c5469c98fc4a2d8b1ab0974e77fc2ecf273a26c2fd80b7d3c0cb7fe693d8734de877da2979dcfeeca0e18", + "public_key": + "de2a219ae1ce929045b6d1fae071916c7b3c77a4dedd690f164d160b1873f861", + "path": "//12", + "address": "162J9UAU1T75xPS7V16WEBzvqeDzsB6PLFL9g4H3gN86M2U2" + }, + { + "private_key": + "616319d89bd295f1ae1c6dd8843f194be3d6745ec957ba7cbd1612c4fb6e910439d881e7e98acfac4996516704f9e08df650231e4020602ba9ea7048044b6e52", + "public_key": + "9cfcd8cf8a1ed7685ce4bb289f3e1fca1c2a93ff7f9d348c60c1dc5519373564", + "path": "/soft", + "address": "14YqaiHNA5PpXCxybwaBovfp6FbefUi5DqUcapyfBP5pDL88" + } + ] + }, + { + "seed": "1be6a50e2758cca32655b7986b4f1645da14b16f2614f016a6205da738af84be", + "private_key": + "60d4e76944d8cf0375b974427662ab7ab4f81a8c0007fde0a33d6ec72b28600a94092b48b47330e48e3c3075294cc593827f34376849e21f506f58de149c0f92", + "public_key": + "1cdbe7435b25061fa6c7a48d53472eee07757f13dc8f88c04e862af0686bb575", + "path": "", + "address": "DEABbZNmZcpBbcyatxjn8w19zdbWWMSncS7cg2p4ozMgEkW", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "317981a36994c55692e1c470c8915d02f032bb57b201d6810cc98a5e6e533909e4967aa4eae06b10478ee0fd20366de7cf9964f703f44e4ab30fc79143c487c3", + "public_key": + "b660d40bcebc17960f17e0c20f2285055adb5eb41d4ebaf814674554b0873a7f", + "path": "//0", + "address": "GhSzmYWWFzvy9pnWBzUU8x1gn9gbgTabKMwK1oQKGWUKp6N" + }, + { + "private_key": + "25e94a27c41caeba31af2ad3942a73affee4443b19e9dab432e67e8afc48b605b086c457d535e9021c59f983bd8e01138ff2690424bb80c145af282bc6a523d8", + "public_key": + "82b1d646c8af3ee855d93107548fee822833c86abe8302a721f5173fe854c20f", + "path": "/1", + "address": "FXga6XihCjKpVYUd3TVxwJVpCfNBaB8pJ5FkYY5MuZR4BRJ" + }, + { + "private_key": + "3be567c108ed413f7284adda0a00bea27bc345ca1d6f41f1ef43e84614e4df0fd8b8e3db075f9c5598a162a31a8ad3968656e4f6d8598c70a028e089d2a7b147", + "public_key": + "4e7da6f6cd1f5ec77f96e25cd6ce973122fee385b0666805be63526478f9d02f", + "path": "//hard", + "address": "EMEaYzmDahqgQENtfRN6M2wVeicCcBzDZtFnSKMYgg6GuyQ" + }, + { + "private_key": + "26e1d25a16adf81b8f7bfb7e195b7cbc5740e1cf82915b38883ccb6351e81c0bc7bd4759a8be27bfb1216152e62312f5c83c5c76b61afd537763363b47039424", + "public_key": + "567b48077dce4947e821fbd607662587d7fa3cc3e923a87d03f7539ea5234255", + "path": "//1", + "address": "EXiFvT6V2gQbs1txefMAUrAy6zWdDYNDSKY2RdeDEDWAiQb" + }, + { + "private_key": + "9d9f998053523bffb7c29d21f2576f07ab1234c16be2fb6623a8a60daebfb60aaca2b9cd630ade840d350b2ed778a25418573c74336a10a2caf47478c65cdb38", + "public_key": + "28f60bbea2fc1969f17ead077ce26d6137fb4f38238d1746200e8324b4db4d07", + "path": "/0", + "address": "DW2XMDHW7vStsNtZHAarc5BXizoKswrGRc59RqEiTwNAo8Y" + }, + { + "private_key": + "7e2922c57e38653b64e17fb1df4beb7bc92594979c990809ac71bfde65c4a109f7c502980ec0ec0ff86a4ed4e1284ca1d450f89f9e26d91bffa2d20513280024", + "public_key": + "2280c5c83939ddf9985b5ffd2085ed92b20e0a20212c1c1ced2c8ad8e8319a2c", + "path": "//12", + "address": "DMZQ7YaXpmtv9a1yoj18wbfdmpDSMmJzhkLjcWarUXbpAHU" + }, + { + "private_key": + "6e0e2897182b87c0f82c039bf293da8ddd7c4bfd209c30bb3fed2d103e9aa10e8e03e36c611b1453a5ec184268948011b4013c46a706cc19586d4b08769268a3", + "public_key": + "f0b12dc7eda736fec4042b5efa993d5ced0df8352c36248122346f7021bf761d", + "path": "/soft", + "address": "J1ueG3tSGtrJpU4DJ5ErV6GGqrYx4WhkSWYdRE8GxEkmoDF" + } + ] + }, + { + "seed": "43bdd899f8d21cde3f63cc5975f196f511c12799b1259b898c5901c66ef42c6e", + "private_key": + "129391c7001b68db74ca986ac2a784acb588d8136cd860f6d955de19ce08fd0ebad8ffd815f333264cdd35f8d7a6d932a5a6862df097536925b80347a6f8ab34", + "public_key": + "c0b5d24240d1e3c4bfb5940eded627cb2f61c1ae568561c9f7fd43eda3c14915", + "path": "", + "address": "GvziwL9u3mDHFzpCFpxFHsBdgqDfCK3n5nAbf5ZfSQwrtJu", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "be1aad84225e97c0aadde3b041ad107e9c7fa928330fcb41633ac8204542b208178834aa2f044aab86c9c2bf8c7611ee61b0badf57326d3f2c040496aae2855e", + "public_key": + "56c0f345ebc1f99b3347757312b0f6424f7c5828df3b67a65f8f89b99e23de6c", + "path": "//0", + "address": "EY4xHmbdZqiwLddr1fFP8wfugPycZRtE2zDBJAf6L1BanoD" + }, + { + "private_key": + "7684aaae51e2be0926c62f8352d0ab1d4612e498108bfdaf0e81a91114f198060d930846fda5cc6ba0d030a958cee8311f136c42ec68971f275f584f937a2873", + "public_key": + "32f1506afb57b93af3127fbf82ff35d50f36132dca0051a222c3f677fe132379", + "path": "/1", + "address": "Dj7bbYPBxCHwvSYRqGmUWkWCeCiDwLXu8wdLHPU4MXa76HD" + }, + { + "private_key": + "904f64a15c871eb8608d211ed47914563c1bc06b52d7311cbafc1f797784750beacb690a25233a2e4c057a205b420063e2296b2da55bac1f909820b886b7e75f", + "public_key": + "0eb30ab6da904fb37a3ebe029c9a9f10079fa34cfaedd01fd47effecf9e22368", + "path": "//hard", + "address": "CubNgnGcBJ69XcmbcqRPuuucMdEefKGWnCVe9RuZQKafkQo" + }, + { + "private_key": + "2253c8e707ba24af0e9d908f8d3bfc4e79fc0f556e083acb05181b3a419e1d09d36b7274f41fa08082500cae7efbcfca826624bf4f6ab84ab180b2142e4df73a", + "public_key": + "1e9872c916b4a5899f60c4f33a6f17fea31fd4c9651129b93bffca1e76e18871", + "path": "//1", + "address": "DGSEvpstrERd7dyGFQXnCKBi6tBNKHJ2s6NQPV6N6Axfhjc" + }, + { + "private_key": + "92ec5056f9c4b79c2cccf3c8e94fb1a64f4ce9ff268770622639c553fa901e06ecfce5758c01f4025e32beca7a080cc8d227cec4dec3eb1c47e7a686c0089e70", + "public_key": + "6aad6c71e8cc35904fda3021778e86b89c22b28c9923a593ba38cc6a81357f14", + "path": "/0", + "address": "EzC7Q82hC3hRkeG6NED2C2Y3QuGDMkJkpr499Xj8G7VazXn" + }, + { + "private_key": + "ecf9fef5bf413dda48845adff75ba6a7cd57115060ee7018de492dd3911b710d2f610afaa6d08dadca652e5a073e57a1505962907019e4a0e2f7b97bf281723b", + "public_key": + "aeed4fd3a47b7d5e13c0589104cae35920e74f662caaca3b900d2d5821b9d50e", + "path": "//12", + "address": "GXgM2QEbnwJTGrMwDrXTaV63Wa8kq6cfqRVMd5Xo2vpY2zM" + }, + { + "private_key": + "17eb630b1947ced577054397ad1bca18698d94b6466f1cc256086cf0210caa0cdc4d705e5e20ae87972b1e68959e13c0b7a4bc4f6d6cae70670b3ddd028b9df5", + "public_key": + "8ab1929c39ba80cf0e41b9f76b9d3cedfb06634be82392feb2c4d9ce2d55595b", + "path": "/soft", + "address": "FiAsm4c3aKQLLiC1CyTQuEdqfhbwyR2RGqG79v9aeVsj82C" + } + ] + }, + { + "seed": "5a53676f7c9e00445b68aa0e34547f42329f8434c94752701edebee7984ffff7", + "private_key": + "1f0613713cff2516c488c20a1e232a77dc0635c47b868f1e30f07d8f743e620f7cae0e37bd8f327b6eb3e33fab6b3225dbba57c4a78766cae6215fe3d2cbe639", + "public_key": + "c85182014eedb4eefed06db5ba1e21d48a85fe3cb9983ab2527f560fd35d6a46", + "path": "", + "address": "5UAgATo1rE6GapHKqXfCY2J7awhD9Ve5wdEKcwyzmc21JetR", + "coin": "CHAINX", + "child": [ + { + "private_key": + "f30bf0a4c0497350ce1671cdb82cc626f059fefd62d2b8fee3aebcb1632ed60be8848d89bb8c5e789c3424fd715b96776ea783327b47f08a6a08ad1ea83a154a", + "public_key": + "4e1f572120b43acddcfe36cb3feb8462e9b0227097b66676dfb6b6cc5ea96471", + "path": "//0", + "address": "5RQTRGKg9CzVp8cs1gYpQY9BsBJdLAqHSULF2vK69KuGn35x" + }, + { + "private_key": + "c30fa31383a38d0809fc4c138cbe585c4c3cdc5f7462e55f8686069f0db9fe08e963f363cbe7e19e01ff4654decb95f21878ab5e304604cfab41b0030b57de11", + "public_key": + "e436abd544551d2864b45e7edfab5d4e33f1400cd1a72cc6c20a08c6f99c5902", + "path": "/1", + "address": "5UoFXqsqNmSdCBztiUSXLqa1oT3MVGrboCNNt9pTU5eVKgfY" + }, + { + "private_key": + "fa3b358e59c93476dcdf23f9d64167a0165185cb612e2180678a78ca0ff3050ce0736fe483a7dc3e8b33f6fb405d6fed0255f76b2f9d959410be60253a569fbe", + "public_key": + "6ae85a21503b913fe09c5382ca704e06a7a89fc95a7924222339b2ec0b71ec2a", + "path": "//hard", + "address": "5S4CUP4DGtY52aAEmweA1DusUu1LxbREn5td46jsJAwA5UVV" + }, + { + "private_key": + "c8361ca140f2d89bf20fb3ec59f7779e6e7582f632a722d36d2649ba90365e0a97acc54f8b8186b09d94836ad96525e5e93a0ef5ed5647f7f068ef8911771682", + "public_key": + "b0d4167ba772ce37f4b4292bbffadb3b66613e78d771a38d72c6dfab0cfdb22c", + "path": "//1", + "address": "5TdsoeYcDD1fMiVYgVdVQCMgcySY5WHVRvaseNZsEL5WqXvQ" + }, + { + "private_key": + "310481c2ce2af598f4958b802852e630833bbbdc55a2048b974a3da122e3180de83fefffd4e68b98c405e2c5fec599f45b90f5e5190e7004c766c39fc0759002", + "public_key": + "0c40e8d97b7b66e831907ac7506d08caf5b5132719256cb34ce622304baa1e24", + "path": "/0", + "address": "5Pv6EM3xLbyrJYYrFDdCqVW7RpfRP6NhUHKbZ1TTCoATXnmZ" + }, + { + "private_key": + "050e704f573615b8d7d7acd8621def861fd4bf9c4beee49657f981565511150c6a1265f8a87dc25ed3877763e923ec09255ef92efaf081308b41f5f9ba35b417", + "public_key": + "56d0ff3060b0b63687968b2d24c55ada92862db1d9909106e3ad780e7a0f287a", + "path": "//12", + "address": "5RbraS6JQFMFfbVoXjxQGtTH3y8QFEt2XLHA3TJgDc9gHeHq" + }, + { + "private_key": + "31e7e0fe13af7003e7b8c074df97d4e6b244a72e96133380d342f2f5800108036d13451e371c090fd9a8f8f0d5459a297546c14ec80f7ef944d14c0b48b63233", + "public_key": + "4cc9fb1e35bc6abdab5ad574780aab6998934b63e3b3b6d8f83b5dd91d37f434", + "path": "/soft", + "address": "5RNi1n9CjfV1ZDtfPirLDthsYDuVQsJCy6NrfjQsNsHJeeqn" + } + ] + }, + { + "seed": "e4e592abc8facfaaca13e6cb1e917502d7c3454192869a115d87b9fa22094e9c", + "private_key": + "fd97f1574715242eb9effcca27a026556e624689b337b2fbbee9a4d6f6f17d0e6f91741b5828d53accb4c6b8109f94aa2053062a0344caaf0cfe36743c8ed05c", + "public_key": + "54c57b2cf2b1d55ff17c44865dcd6efbe0c1c2c89c13ef0ff5997a74577aa95b", + "path": "", + "address": "22nkGjhuUgUiuYgdLGMrYiuE79ZuNaMz1gRT31vc15suHJwk", + "coin": "ACALA", + "child": [ + { + "private_key": + "0520ea8e0bf28eb487f69f57f827bb3435ee88fdcbc6a08284e6fa08afc1230fe822ff4b172f9c129398ad0dee7682abc04dcd5b22568ae7f8877648b0ca4cf3", + "public_key": + "cc20b770803cf4b7b0655306a2d215f217dcabd7938679514640cd7443c75d6f", + "path": "//0", + "address": "25VF5Bncg8k8AdiTvvUqQZ4ooHtzeAXjo15ckFf42canAWLg" + }, + { + "private_key": + "b9971eda9dd17798e850f77ae9e4014e11231fbd4ba2d6640f69694040909700d29f9b47364a5c08246e6cc921f3c9f8995683bc3c71a2a06afd596c8f202044", + "public_key": + "f874d7b16ae1a544f71003d07d85d3c105bece6dbfedbd8a42499a4a0443c61a", + "path": "/1", + "address": "26VNAqzwyMf4qXj85YibLFkEF7fHUTn4FFjHPuFb3UB8KPTs" + }, + { + "private_key": + "1fe0384d12f8b67107457f5b3e489b6fc39a6d2ff4c506bf842adffa742e3d08af88f783d9680dce348bc47f9eed242da638587c9c7f538058c7df45d5402e39", + "public_key": + "4eaa994e0b697cee5ffddfdccd28e6f80a4019dfda5284be54cafb72d3338812", + "path": "//hard", + "address": "22ejzuG7mSa4bjDjEfyWG5uHmbWLBgqwh8UeQr63KuZv7AWY" + }, + { + "private_key": + "68d5116c7d67261ab70d898e292cfeb001378c910633fdf84018c6915b88970b46b8edbb82a891a2ce0b65eb09e774a554f7bd63dc0d3360cbaf0719aff2ea88", + "public_key": + "740833b3219984c94fae37ffec48960aab7ca7acbb4d3939f4a81554ef1ebe01", + "path": "//1", + "address": "23VjaQXMHfSWQCvWvANJt482Wsf1TAEaX5mzMXZMBfo1NeFX" + }, + { + "private_key": + "2ecf5ea43231f24ea580353329eb12aab2c8a171a9d8222d3d8449513f1c930406c76549331e8641dc7a5d626d544a9e003a7113618693ad7d10379b70852634", + "public_key": + "146e54a6cba6e1367b7008337e6b7556cd0370e5842d7ad34c7900aa28b83406", + "path": "/0", + "address": "21LPKRPAxqh94PXHdanGkitzGrwvh3pJHvUFCXwYnq1METB2" + }, + { + "private_key": + "1837e286e8843023bc7d7a4e751bb243df993e0dd8345abc8a74a517a7acc10e3db86b03c686fe7fa2b2abc5b3367eb39283eddec066c63772d936557cdce0a6", + "public_key": + "70921083552f4d357b39a35d0ca19d539bfa4a6f2382121979003c04c7feb779", + "path": "//12", + "address": "23RCLcYS3HBqNXqDebXvtL2jwcYtRJrHk9zqZGsteUSJQoSc" + }, + { + "private_key": + "b5b143c18a36911bdd02e64a173e15d4f2da4d1233e11bfa1fcbc18fe135dc0f1ec3909187201616e0e4df9cd3e57b6e3bdf29adcc20a8389797e07dca5be40a", + "public_key": + "10dde4738ac7724e7b810b84abbbaebb7778b1fbd5334d473368429921b51b48", + "path": "/soft", + "address": "21FiGUYAoxuKRAjwmV1XRof6aMrMrVeoPnTnitJxXsoMvXdG" + } + ] + }, + { + "seed": "128f5a7083825053ca90ca4e3bbf20aaae1f8936c19342a4e2bb6acc4a5794e3", + "private_key": + "4cbc3082c10aa2722023e09b90a0100011c7aae17774e3e7dc7a569fb2a02208fc841f93f9230b8e955aa1c8d837d42c154cd47b1b1ee3eac91e32374c814566", + "public_key": + "9674341a06b787a6e73b355328040d75a76cf733be10d075eb6f9d85f640953c", + "path": "", + "address": "FybDiq6BJUYG2UqpPasQ66NrMDgw4Af263rb8uAoCPDfXXe", + "coin": "KUSAMA", + "child": [ + { + "private_key": + "a0de81833689a6c0354675738402606ee02941d16d473fd8517802df8072b009b22335b3c150eae71010703391888a6fa1a64e3c47333b4302d750346ed1608d", + "public_key": + "32220c5022f99162b077a41803bdff6106ae0708f53383d49ccc983b1af83828", + "path": "//0", + "address": "Di42V8CSqPzPq5n3xqqeG7p7NXPcj3HYY5U8LdXZkyqBLM8" + }, + { + "private_key": + "a641971a05b5cc5631cf27c171dc76bc4ea18b0c19cceb1fe45bb2729424fa08c68f43ae33249f6854f79e9978377ed4be60c953cac200fd8beffc2c33176244", + "public_key": + "a2af56362ba706981c26667567cf4c65db2d5cbabce24fb9550a57587323fc23", + "path": "/1", + "address": "GFdMtgGw5Xzadbpa8RXasCvWjvznHVChFXjAG6Eotzg7CYv" + }, + { + "private_key": + "cb62f0591573dd2471eaafbf988bf87353571c111a92cd17f27e5b8d0250ba095f99b4a9b6cc2f4f767019f67d773613de04c4694624ca34b355ff0f682fe6fd", + "public_key": + "40e4ff6fb91f6fe70735133424aeeaaa1c82da23bcd0590d74af979e0d4e4351", + "path": "//hard", + "address": "E3QcGoS2cxedZSTGuvCr7c6kpihxt5ZBwr4KjaVrrhhkTak" + }, + { + "private_key": + "93409ec0869ab5325e4a7f9394be5d0137fbbfc84d9cde6e9714e89ad995ef094da4305761449a365b3af42148ee145cd15e1dcb3fb473cc12d4fe54436574bf", + "public_key": + "869645948169b65574622f324e8f8162ae16689a3dbbd32846364f9b24ddfd54", + "path": "//1", + "address": "FcnaGUrbNH1FaZpHudkvQbF9KkgCubP8WHZxiCooKtvRmAP" + }, + { + "private_key": + "c37c157ace715088d35027348fdb28bab9ad9134a2867a0575e9d5534386ad0b4d459fcbede771f08f94ced7802d26db361a65156b7152541842370b2141ecf6", + "public_key": + "a82453bfd14b911daf0e3218d59a1080d678ba131f55f1eb0e94334211ce9e00", + "path": "/0", + "address": "GNnMUYZ5cYcjbSc7VmctP246zG5N2ck8QTsA7cxYHsAPD96" + }, + { + "private_key": + "ffb274974566b81c13293508baf62d5d928553d1485fa71dc5d0fc75aec72e0b91e6ce1940e7c647cd4c3734b9293f2b424d8bf64892f5e62e14f66b46ead6ea", + "public_key": + "e64e00647ec912b645a4d8ee03874a2a10142be5463529497184293159bf283a", + "path": "//12", + "address": "HnHhhg74KKuwzYKVRnKokLtaL1VwBesSXJJ2UHtcdaP4w3c" + }, + { + "private_key": + "6a7721a90f1c07e1bf5f5492803233fe99c83b1851603da680eaee535aea4e06f8104401852d341573ac9611a3ad9de79afa5af8011517929f3879c01effdc31", + "public_key": + "b05dabfdb0a94f59d381db3f106eb1eadbcf49b50fd78512cc5795a211cf3a6c", + "path": "/soft", + "address": "GZZmijKb1PXXZd5oxoWyrQC6AttfhoZBuLh1WiaY2puNcZG" + } + ] + }, + { + "seed": "d5e86e4d265725061f198bb05cd79406c8100f85ce6a159659974e0b0adb52bc", + "private_key": + "db57618fc328601f40f3d39e8d0e7a9015507fe4a7ae503d95fa943a36671a08102a37cf4f90661b560d8050cfe4915f91e4edd4d300c36c28a5985ad706896c", + "public_key": + "42f26abd47e07948805905cece9af62387e1e7e3e9d6d6fddaa430943f13cf22", + "path": "", + "address": "22PNkyHTDnXzyVpMxRTGzLx8UW1MCZSYW2TDoCBDtb5QeLXa", + "coin": "ACALA", + "child": [ + { + "private_key": + "63ba37d299783a0a6f7e7cab3b4084f2845cdfa162484266745cf74b8e3fd10cc1566814f7d25fc165ef84b8cdddd53057cfd755c020df76e7b2879f0d196094", + "public_key": + "4eb9f2ffeca4a7d09b331bb85f79f456580114f63b82725863df0265af25ca50", + "path": "//0", + "address": "22epZP9HBSyHpyKv2oC8dp3Eg22L6nBYyJvJtkB9yH2tNYJC" + }, + { + "private_key": + "46b0399bd2c5b0fd1ca6d0cef376fb50b1e78e7805bd4b0b26bdb2fe7e88ee03b8d97e4a3ab973c957ad64e9bc2443591440392b4b430f706f086c72ead92cd6", + "public_key": + "04adae093c2f5ee314b4dc9f7016cc1088f29210d3a77537497a0a64d9f35a1a", + "path": "/1", + "address": "zyjNTunC1D1fezM4tq3oZfzfHrrj7QHjo746BjyBiJAYiF1" + }, + { + "private_key": + "2b24fea8088f5da25a33ffd1c8cc828c0c305daade078ed575bcde7d13eced0a40ad9f6f53a5d82bf63f3c83c6b134d67868c3c765311c186939acf4bd10d35e", + "public_key": + "229253573074b9b3d31b4492fcf6f9b920a05d20c7b86f1a0b1483127294ee76", + "path": "//hard", + "address": "21evgUr2hJLFAq7ZuyzX2catDQ87PziwhPnkk2juSDoo4nNV" + }, + { + "private_key": + "2cbe1e9051e94fbe9809688893e26b4bdbeff37dfab371c9fd2e3516b5f8540f8aa44bdd0cc9d93a9e9512b5eb31b4f34023f7e920a9474b00d2a8ecdf608fc4", + "public_key": + "ec16aa3857b5d7eff9943f74f20b30cf6a5a508ed0420562a37852e387f07644", + "path": "//1", + "address": "26D9csi7p5cGMbGqbkeXjMskGiRTKzn8E11HKbfRR7pKijWy" + }, + { + "private_key": + "e4d5e814c63e9cdd7e29b88ce7883181a948c07cbebcedfe90af9e53e472d202f805ce146d515243e7d57d45e0254afce5860c35aa53e1c8cea020b230148581", + "public_key": + "be0100b16f73dc27a90ed46ddc5c467a9baa28a7f6cda7ef91cfaeb676e13d78", + "path": "/0", + "address": "25AiytRcsqqdhHGRcuogvR3qaHEKCSQvtjFCSQ7WT6YaAL79" + }, + { + "private_key": + "92f4ae7f65acdf0e0d5de037d92dfcb4bcb8a3d25ce3ed8fa87228e03d0792096f57495db63d0b6e1b33c2840d225ea6d314b9977ccb7bf5243945b2b8e4a183", + "public_key": + "fe3850ab4489c991fd53aa09d5a26a2d34ec23ffd8cf5758a455f64b6d950b63", + "path": "//12", + "address": "26cvUeRWsMaLSkba6C6JCX3RSckt6cvSuxAwAGaUtdVDfreW" + }, + { + "private_key": + "b6d6978315edd149914c0a4499009ab788201fcc7ba38697dd9ba7050c33be0fcd95e06361d18df96381a15ca8bfa602a274980fc01d4412a7d02aba3acd475c", + "public_key": + "022e44c5d1246ec4b3f0c0dbd83924cd6faeddeb83f6ff5e899d096cb924c430", + "path": "/soft", + "address": "zvTRfcWteCCsFWQdFRNx29BtC17jR72AkDFpE7Q1ry5iS1p" + } + ] + }, + { + "seed": "3d12c9a800fa3bed7a758332f6696cbde2e62ad9234494e295a82332b78cd9b2", + "private_key": + "1a13598a3602a12db313d1f773407de416297121fd04f3d0232ea861ce0d0908e0862a3f68fc0ce84f38f58abbf5072b545afedc141209a3e56676c9d1297001", + "public_key": + "5c303dbf3bf045f67b8957c0356436616c18176b2b6884090b66b50c330f6075", + "path": "", + "address": "22xUKcPpoQYF4r7nYEe1t7FRTL3bN3ko1k7h4eTAauQGcqTu", + "coin": "ACALA", + "child": [ + { + "private_key": + "7093b5a8adeff1ac970c3cc4523924a1266816fe05bcf28e0cd3718c1d05ba0a35ddca49f7811f91d0f88ab01f76dc2a141d3d355bf21a287b1830ef2dd39eb7", + "public_key": + "04578e7f2559e2538fc11487e335b02f506701a9c46bde9c66f62dbb6b27c957", + "path": "//0", + "address": "zyHnbZ97JxkioaU7B7BpkuDmw4YU7SBe5RpHv2GrvWdAMrf" + }, + { + "private_key": + "d1ac3ce64466d2cb4f31c3e8c0acbd93fd2669ba7c1fbd97ed4f4a7f93f0f00283fb97f16fcd5cea46f1151d4c98bf5721bacc7715cce1798d44280d45bd19ef", + "public_key": + "143066774bd0f4dc2ab525e1aee4b21720f89d12c122a65775161ea4420f8808", + "path": "/1", + "address": "21L4vPHXKfwp6bmg4oN1hjh9vL1m5pewGNWb32TWiYPX48TS" + }, + { + "private_key": + "68f565b1bf55498f0518cfe2318167c526e0fea3f4d8f05ff888a4b2247a460c567f0f3fce9f4147b8187b86921afd75c6e2fe795a87db3979dd6a435833f208", + "public_key": + "fe206898a03dcef06966be49447adcdf01b14b1be9ff713fd3eabf4c0f7e7c68", + "path": "//hard", + "address": "26coNkDvER9JLpiyPu38DYXNd6SRrqtCMQuKrW2V2i2Zi7jh" + }, + { + "private_key": + "2f791f1193a62fd37d8af170586b0645316a835d137d3b45de108de331a7010e8b11097d3fc2ce344bf7ce99c8525a510fa09804b06a4e35330fde73e30aef6c", + "public_key": + "e07a63c54f1e679961bb6cff5cf4dbf8ae08e9ef15f424becd63a5f62b906125", + "path": "//1", + "address": "25wvfmNLgEhWEkLfMRaFTnge9uUqUCg7Bv8nn1i9zMpx11iT" + }, + { + "private_key": + "44f4d124e60ca13bdded5cec3835de1da8cb58123f0abd6a85e6d6d8e665830656b9e09537ac9074254190be4a990b4cb343804b14495de4aa23d4d1c08b3862", + "public_key": + "50e9d59ad8a058e01200a01d72243af8a7ec7a74ecaaa70d32b996d1a20d9f32", + "path": "/0", + "address": "22hgsymcYCDmnkAGA1pNTKBv9aedecCd4bhkamcdwRB2FbLP" + }, + { + "private_key": + "7653ede7ed684b628e2d98a50fee1fa15adae890fa2109e9f244e5da5188f20ad15d273d61fc0f82c9088a1f5b929fb0d32b229a2e99b4476644b635b5560b20", + "public_key": + "9e9b51a4dd633682f23c7c13efb0b9cbdb96546b5152ca547a26289ed8882f65", + "path": "//12", + "address": "24TZHpWRhDvcEs5dy7t6nuASA8naVbyQYcV6ZU8W47Vby7Yz" + }, + { + "private_key": + "d9b72e45153b44743d4294cdac893da73ba4ddcafe055ca8cf0d93e275f31b018fd14a89a989c2f35e37eea0c865980a71231a48e48c956bfb216ce4fccb57f8", + "public_key": + "d298b21edf4e59f9bbb9ff5608fd2e3c694f513561661359d0cb452bc25fc372", + "path": "/soft", + "address": "25dj13Y9ERYfct51cc1fKTr59j2DbLX89abHqbAAxut9BkjH" + } + ] + }, + { + "seed": "9394906c5b8f9bdf4cfa634f1efb94e69fc1b99cad6e48c6515ce65792cb4527", + "private_key": + "eb1d071fd1e49980076d6019962550848b29145b0d6134adb6f7ba968081df094b7300adfd0254c457e2f03abf42f892d8fcf71cc671f1309d40883e9995dc90", + "public_key": + "861a3b2880331e5746df94c65a539c4622f8c5dec19949b23cadbb865de9d63b", + "path": "", + "address": "5SframGEZkDNH3mNAHVtg1FEPqgg9BKFj6pnVHZw5ucwrkk6", + "coin": "CHAINX", + "child": [ + { + "private_key": + "370922ff887d311b15c046ed4a06d7bfa7d3e814ae69dd4c8d3f6db2b67a530af2f72c880bc6696d8f017e13168d5683792b3d54838e3214bc95b8658d595c62", + "public_key": + "d0d1c33ff51c2fb60a77c0f6fca9f4cbd9667369fb84274eac152a4703c82703", + "path": "//0", + "address": "5UMpeThQZo63w7Skr7m9mpCzL5fVyzSF7mUD622o6mr4Cs75" + }, + { + "private_key": + "81b2d10d6f159a5874f48547229e6c001fea24227a0afbbe202669ee7fde470ce7cca2e7507b062b49610ba00ad79ac240f6c5845b2d932f0567342431aa2ad2", + "public_key": + "d6d0e674d154a514cddb2acc1abfcb3cac7d679328340f97baa9de823fdaf213", + "path": "/1", + "address": "5UVggGKLbWHC8ZsjJc9MHgi3DK3Km6dKZv7a2xdbMTFeLZby" + }, + { + "private_key": + "a75fca052ca8eccc1fe49876b98f7a08268029b075deadfdb0af78774aec910914411d0bdf95ebbe2c6f226b4bdd2265be11f5256e8c0cf44ccba097555fd48f", + "public_key": + "f8905fa190db883ecd511027b89c6182476a528aedbc602f0cc588c79ddb2f72", + "path": "//hard", + "address": "5VFw8vc6F2graEkfYG58ESeNpC93UKX317r7ca64WtTEm2pX" + }, + { + "private_key": + "1190abe7309db760ca971f3b91096690bb928e2971c63bd037c2c815b231ef0d1cac4fc5a936ca18a6552a21ff4479b2c06621f91bf82f982c043527ee415d41", + "public_key": + "329fa84120fe45e05ed6febd6e0092d568cc8dfd6646527b3a735e17d9a20542", + "path": "//1", + "address": "5QnQCMBneowPPR35smYyMCe7mtSMxW3ZJMiEvj1aYrfCXFXB" + }, + { + "private_key": + "28fbba17f93d89b8e619410c238029b795cc4297832943e06545a230dd74d7059b6dcb7a4ecf6f1ae1495166800b14208f3a4fbe9839ca3bdd5240d452e6ce53", + "public_key": + "50ed8e6e6244eda209ed066a594e028c2f9413511189cb8a467dd8b7bf2f873d", + "path": "/0", + "address": "5RU8mqcXyURUusBD8Vb15puYTzeHvb5FEnDqZzu48bABpGYV" + }, + { + "private_key": + "d4fdb3949b3f36280cde4a20365a6bd1026eef8d29cfd76faa4bc702470c590b42e14b9beb7993b93fef097bee55849f473829379d684c4da4bfd8cc728b6fe5", + "public_key": + "16252413b6d14f2b831d58dfd407fc618db61c3080d3670e2f56f3e8e85d6a51", + "path": "//12", + "address": "5Q94TgDwHk1nL5U7EM8i56dAmyufQ4urcyW1udLTZste34By" + }, + { + "private_key": + "f6c32949049da1f09486b39a56f990dfb19c4951093ea5bd82c7cd5a76be500c00c9d6e918fd6408884f749f7a92634016e8479ee77055f8c088e0d4033ef713", + "public_key": + "ca082ff63a549b7a8bfc3a03cb0aca542db78eb26f806ee14d45dd411b226a55", + "path": "/soft", + "address": "5UCvUjaVMzvgYwxxh5ah1hTdoppjzTP6c7dSoQXiyzbBB2MK" + } + ] + }, + { + "seed": "42d6aa550ae1886ba79a65ef9f41fb6b55219b92fd5d3a987ef5c9a2cd0bdc47", + "private_key": + "6c6f1bed22e05d8cd886a8bfab6b569ce360737c5fffefd4ced36d003ace7d0c34326b6f6b565ff3a7e7648aacf5289febf97d9dd2776c1aa53d3dfb53c0e5ed", + "public_key": + "8e1942f004563883f82069d6ba2dcdd5c27b2c187bd0be13df6a7da67cfcd740", + "path": "", + "address": "14DKJdAUWNb8pJHbaehmzAV9pf7vDwSpfpNH7Khfs8m2CRcW", + "coin": "POLKADOT", + "child": [ + { + "private_key": + "645a9fd7bfcfa07a87c0dfeb4d572ee9da9256a50f920380f2a22e5f2cdf9e08f5127ac5fe9430051fcaee83395f8935e3d673ec4a6f87d9a93bc01d7fac7b57", + "public_key": + "527d75718c182adf2f476c4c69bbc9b92a10c125367c3c2e70e9a445b569a303", + "path": "//0", + "address": "12sACLweiK4b9UpzbbanpUsrVkSR6KJWKvBfqTYQKqA1KCyo" + }, + { + "private_key": + "2d2875d39010224a0c3123a90fa841d1a1dd42768a9364c2c032f203bc4f7003a51fabfeee06cf728248d9843f20b6495d38c6e288134621966838d65e9f8c89", + "public_key": + "d6acb23276948f699648a61b4a0151f797c30c739cadf9441ccca205b4299844", + "path": "/1", + "address": "15rUYq6NWjYDErTe69Vn8pGSK2cvvbC5KsnMRcAm45oNBTYF" + }, + { + "private_key": + "b9b1c805682071f4b249e014e1ce4d0d46d45778b03c37c98d742ac37a05500f675133c9a7ae09f36929fe91d238bbdc4f0ff7a9b5a20af7e257bb44ff61472f", + "public_key": + "5e11bd2c8176fe14d838e617d3661a84e3add2747c85c4f770963dc4b77ef745", + "path": "//hard", + "address": "138LmhkUwwbLzE47xjCcmPzuKuApCJThqLQxQkUNs92BGwne" + }, + { + "private_key": + "7fccb946c2d2515162e0a4c2aa8567b594de17a6ad12baf4a17fbcd9effa370d20890fc21330f83ef00674ed6b391b10129e5816a7cbc4ed33bde8338f16f273", + "public_key": + "c01e373865becb3a8bcbc35ad6958baa67213cdf3511e256442f46ee0b3b7c29", + "path": "//1", + "address": "15LuArDURLNGknmofHzToaA3dnEjYRGZ125hzWYjqoPHb4jk" + }, + { + "private_key": + "59c3c0119db87cfd0c95f6bfbc4d9ffb696f605b1fc001c5aa54a8cc1935b4070ba5c67c5c3514de55dbfc084e26f8aeaac479cccd2f20abb5c5433580e107f0", + "public_key": + "bcd215610fcf97b7fc0734feec251c84988a6819925611c9e0a0b0e1a12a4e07", + "path": "/0", + "address": "15GaQnnmQiUZXo7d8off9kpsBWVBrNYQCm91Kk2fc3FN1yWV" + }, + { + "private_key": + "396ba59405f18f2240e11f9ff55268be5fd0f7d099d9a12286821a7f6c03100fb62181b808da3f87d1075a3393d850b6ad8c842ca353e616c219ee99634e7af2", + "public_key": + "784a1d23153fc40c7c4a8b0d59e3929f2d82b352d165eafb7127008ff554f53a", + "path": "//12", + "address": "13iimEGwEB6WV4t3SFnf1NcFhyyW1Ch3S4sn75KqBpPi4JHp" + }, + { + "private_key": + "5489a6609fbb6b7f415b7284eb1489cb95cba314ee5c91336dddf75946f6450f520e8db7219835ef6d79dddde315ba3f5598a645857318b825ef297766fd7cd2", + "public_key": + "44eb279c6188aa82f40de98c0770af317656736a0da7b30f0cecbac3c8421c02", + "path": "/soft", + "address": "12ZN7UnB7edx1jctahyiEFbfwJ696vCCh2t4sWu5tBpS8EXi" + } + ] + } +]; diff --git a/test/uuid_test.dart b/test/uuid_test.dart index 350fa2c..6c40e6c 100644 --- a/test/uuid_test.dart +++ b/test/uuid_test.dart @@ -1,5 +1,9 @@ -import 'package:blockchain_utils/uuid/uuid.dart'; +// ignore_for_file: depend_on_referenced_packages + import 'dart:typed_data'; + +import 'package:blockchain_utils/uuid/uuid.dart'; + import 'package:test/test.dart'; void main() { diff --git a/test/wif/wif_test.dart b/test/wif/wif_test.dart new file mode 100644 index 0000000..226048e --- /dev/null +++ b/test/wif/wif_test.dart @@ -0,0 +1,152 @@ +// ignore_for_file: depend_on_referenced_packages + +import 'package:blockchain_utils/bip/coin_conf/coins_conf.dart'; +import 'package:blockchain_utils/bip/wif/wif.dart'; +import 'package:blockchain_utils/binary/utils.dart'; +import 'package:test/test.dart'; + +final List> _testVector = [ + { + "key_bytes": + "5e9441950b3918772cc3da1fc6735b7c33f1bbe08a8f1e704be46cb664f7e457", + "encode": "5JXwUhNu98kXkyhR8EpvpaTGRjj8JZEP7hWboB5xscgjbgK2zNk", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "5e9441950b3918772cc3da1fc6735b7c33f1bbe08a8f1e704be46cb664f7e457", + "encode": "92Ja4SCSjMpfj3ChkaiqhB1E5Q5qTimaTeNYsoSUDMRnNiDZUez", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.bitcoinTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "1837c1be8e2995ec11cda2b066151be2cfb48adf9e47b151d46adab3a21cdf67", + "encode": "Kx2nc8CerNfcsutaet3rPwVtxQvXuQTYxw1mSsfFHsWExJ9xVpLf", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.bitcoinMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "1837c1be8e2995ec11cda2b066151be2cfb48adf9e47b151d46adab3a21cdf67", + "encode": "cNPn53CWHSMt3MMr3HrymFzxaeDwZrZF2yAEZJ7knzAFD3GTTi2x", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.bitcoinTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "a215750fac2ad0382e40ad02d11aa1467f5ec844f0a7e995c1b3e979fbdc71d0", + "encode": "7rnFCh34mBbn3uxT9FwNbS4hfdbn7W75u19Jmn3YoS5mXZjPoaX", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.dashMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "a215750fac2ad0382e40ad02d11aa1467f5ec844f0a7e995c1b3e979fbdc71d0", + "encode": "92pJNokBb5GhmdJ8sYfLyf3oid9us9bjSNd5K27vbNKLoLLfwfP", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.dashTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "132750b8489385430d8bfa3871ade97da7f5d5ef134a5c85184f88743b526e38", + "encode": "XBvs6XpB5U7xxB6muoJmWzFKssp8PzNvPzfQsGMNeLMLcd3pdCC9", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.dashMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "132750b8489385430d8bfa3871ade97da7f5d5ef134a5c85184f88743b526e38", + "encode": "cNDw7BRfCrBn4HZfGT82P5ZNb5qxcdsN6TTyTAUgq5jFUD5xFN65", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.dashTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "21f5e16d57b9b70a1625020b59a85fa9342de9c103af3dd9f7b94393a4ac2f46", + "encode": "6JPaMAeJjouhb8xPzFzETYCHJAJ9wBoFsCyC1LXFSTcZDmHgy6L", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.dogecoinMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "21f5e16d57b9b70a1625020b59a85fa9342de9c103af3dd9f7b94393a4ac2f46", + "encode": "95jMzQtxU83VnEBwENWAd9xZJdQktdjwBFr8FmcewrAkBNHta8u", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.dogecoinTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "7c5e3d057ec9d8cd61c8e59873fd3ff478cbe0808c444092986e34cc533fa5d7", + "encode": "QSnP9ZrYTcs3iu5x2uft3mGsnFMMisgshuhAMxYLaES6cndEdopn", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.dogecoinMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "7c5e3d057ec9d8cd61c8e59873fd3ff478cbe0808c444092986e34cc533fa5d7", + "encode": "ciuibxmCzNuTbrBhwCS18D8JSK2W1cCDDaPyofJCKwzAzG51dDJk", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.dogecoinTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "4baa38b7623a40da63836cd9ee8c51d0b6273e766c88adde156fd5fec6e19008", + "encode": "6uhLoqNczaCPTj3GmT7qfau4Qrp5qb7riHtYshudPgbiGSx3bVs", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.litecoinMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "4baa38b7623a40da63836cd9ee8c51d0b6273e766c88adde156fd5fec6e19008", + "encode": "92AEvSedgNoexQehsyDnknfr73cKnxD2HZMLF9F71y29MZAdg13", + "pub_key_mode": WifPubKeyModes.uncompressed, + "net_ver": CoinsConf.litecoinTestNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "abd83a20f1161f5ddb561b64de3e60d2b6350e3b6bc35968e52edb097c73a2c3", + "encode": "T8p29oRNZpvaE1QbpQ2Fr3kQcrgfzT9KjvzwapwgsqBdMotY6kQW", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.litecoinMainNet.getParam("wif_net_ver"), + }, + { + "key_bytes": + "abd83a20f1161f5ddb561b64de3e60d2b6350e3b6bc35968e52edb097c73a2c3", + "encode": "cTLkAy83bWeEccEzfAtX11i6JELmapE7zmF9qSmeoyfU6fQWAyxC", + "pub_key_mode": WifPubKeyModes.compressed, + "net_ver": CoinsConf.litecoinTestNet.getParam("wif_net_ver"), + }, +]; + +void main() { + test("decode", () { + for (final i in _testVector) { + final dec = WifDecoder.decode(i["encode"], netVer: i["net_ver"]); + expect( + BytesUtils.toHexString(dec.$1) == i["key_bytes"] && + dec.$2 == i["pub_key_mode"], + true); + } + }); + test("encode", () { + for (final i in _testVector) { + final encode = WifEncoder.encode(BytesUtils.fromHexString(i["key_bytes"]), + netVer: i["net_ver"], pubKeyMode: i["pub_key_mode"]); + expect(i["encode"], encode); + } + }); + test("invalid", () { + expect(() { + WifDecoder.decode("5JnLHbJUuOcQNc9UC64SizlLYRw9Y2ecbiJW4f8U8htgYLDJVED", + netVer: CoinsConf.bitcoinMainNet.getParam("wif_net_ver")); + }, throwsA(isA())); + }); + test("invalid private", () { + expect(() { + WifDecoder.decode("54fKtD9rQfDYgbQ4XpQQPC5r3j6sTpFqEXxBfdveRtM7kJ4s4nK", + netVer: [0x80]); + }, throwsA(isA())); + }); +}