如何使用Bytom-Mobile-Wallet-SDK?

技术Bytom-Mobile-Wallet-SDK的使用方法是什么这篇文章主要介绍“Bytom-Mobile-Wallet-SDK的使用方法是什么”,在日常操作中,相信很多人在Bytom-Mobile-Wallet-SD

本文主要介绍“如何使用Bytom-Mobile-Wallet-SDK”。在日常操作中,相信很多人对于如何使用Bytom-Mobile-Wallet-SDK都有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮你解答“Bytom-Mobile-Wallet-SDK怎么用”的疑惑!接下来,请和边肖一起学习!

Bytom-Mobile-Wallet-SDK是从Bytom源代码中提取的钱包层代码,对钱包层代码进行了改造。Gomobile可用于将代码编译成安卓和iOS平台可用的SDK,编译后的安卓和iOS钱包SDK可用于在移动端创建bytom密钥、账户、地址和交易签名。

Bytom-Mobile-Wallet-SDK源码简介

sdk源代码放在项目的sdk文件夹中,android和ios文件夹是使用SDK的演示项目,在bind.go中可以用大写字母从外部调用的函数将作为Android和iOS调用的API。bytom创建的密钥对将存储在磁盘上的单独文件中,私钥将被加密。账号地址数据存储在go实现的leveldb中,所以安卓和iOS平台也需要提供数据存储的路径。

funcInitWallet(storagepath string){ 0

hsm:=伪hsm。新建(存储路径)

walletDB:=db。NewDB('wallet ',' leveldb ',storagePath)

accounts:=account。新经理(walletDB)

assets:=资产。新注册表(walletDB)

wallet:=aWallet。新钱包(walletDB、账户、资产、hsm)

api=aApi。API{Wallet:wallet}

}安卓和iOS平台在调用其他钱包API之前,需要先调用InitWallet API。该参数是磁盘上的绝对路径。InitWallet将初始化整个钱包,最重要的是初始化leveldb的存储。其他的CreateKey、CreateAccount、CreateAccountReceiver都是用于创建密钥、账户、地址等的API。RestoreWallet API可以备份钱包的所有账户地址资产,并导出json格式的数据。

Bytom-Mobile-Wallet-SDK的编译

SDK代码的编译首先需要正确安装golang和gomobile,golang需要1.7版或以上版本。

安卓平台需要安装JDK、安卓SDK和安卓NDK,安卓SDK的平台工具和ndk捆绑包需要添加到PATH系统环境变量中。iOS平台编译环境的配置比较简单,只需要安装Xcode即可。

将项目克隆到本地$GOPATH/src:

git clone https://github.com/Bytom-Community/Bytom-Mobile-Wallet-SDK $ GOPATH/src/github.com/Bytom-Community/Mobile

Android

gomobileinit-ndk ~/path/to/your/ndk

CD $ GOPATH/src/github.com/bytom-community/mobile

gomilebind-target=androidgithub.com/bytom-community/mobile/SDK/Add-ldflags=-s如果有必要减小SDK的大小,请将参数设置为gomobile bind指令:

gomilebind-target=Android-ldflags=-sgithub.com/bytom-community/mobile/SDK/执行指令后,将在mobile文件夹中生成wallet.aar和wallet-sources.jar文件。

iOS

CD $ GOPATH/src/github.com/bytom-community/mobile

gomobilebind-t

arget=ios github.com/bytom-community/mobile/sdk/

如果需要减小SDK的体积给gomobile bind指令加上-ldflags=-w参数:

$ gomobile bind -target=ios -ldflags=-w github.com/bytom-community/mobile/sdk/

执行指令后会在mobile文件夹生成wallet.framework文件。
由于gomobile现在没有支持bitcode,所以生成的iOS SDK也不支持bitcode。

Bytom-Mobile-Wallet-SDK的使用

Android

拷贝wallet.aar和wallet-sources.ja到Android项目的app的libs文件夹下,并在app module中的build.gradle文件中添加:

android {
    repositories {
        flatDir { dirs 'libs' }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation(name: 'wallet', ext: 'aar')
}

sync project后可以在Android项目中对SDK的API进行调用:

package io.bytom.community;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;


import wallet.Wallet;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView keyTextView = (TextView) findViewById(R.id.key_textview);

        String storagePath = getFilesDir().toString();
        Log.d("storagePath", storagePath);

        Wallet.initWallet(storagePath);
        String keyResult = Wallet.createKey("Marshall", "123456");
        Log.d("keyResult", keyResult);
        keyTextView.setText(keyResult);
    }
}

iOS

通过项目target的Linked frameworks and libraries把wallet.framework添加到项目,可以在iOS项目中对SDK的API进行调用:

#import "ViewController.h"
#import "Wallet/Wallet.h"  // Gomobile bind generated framework

@interface ViewController ()
@end

@implementation ViewController

@synthesize textLabel;

- (void)loadView {
    [super loadView];
    NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    WalletInitWallet(docPath);
    textLabel.text = WalletCreateKey(@"kevin",@"123456");
}

@end

到此,关于“Bytom-Mobile-Wallet-SDK的使用方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/153661.html

(0)

相关推荐

  • 如何使用OpenCV+Python去除手机拍摄文本底色

    技术如何使用OpenCV+Python去除手机拍摄文本底色本篇文章为大家展示了如何使用OpenCV+Python去除手机拍摄文本底色,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

    攻略 2021年11月2日
  • 学习CSS布局的理由具体有哪些

    技术学习CSS布局的理由具体有哪些学习CSS布局的理由具体有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。这里向大家描述一下CSS布局的10大理由,虽然

    攻略 2021年11月17日
  • 年龄差距大的夫妻,夫妻年龄差大六岁不好吗

    技术年龄差距大的夫妻,夫妻年龄差大六岁不好吗夫妻年龄相差「很大」,可能为婚姻带来严重的问题。如果你和伴侣相差四、五岁,差别不会太大,如果相差十岁以上,就会造成很多困难。例如耐心上,年长的通常会对年轻的一方感到不耐烦年龄差

    生活 2021年10月24日
  • linux三剑客之grep 文本过滤器

    技术linux三剑客之grep 文本过滤器 linux三剑客之grep 文本过滤器Linux 三剑客之grep
    三剑客之一:grep 定义: 文本过滤器: 根据文本内容过滤文件。语法格式 :grep 参

    礼包 2021年12月21日
  • 金牛座和什么星座最配,金牛座和什么星座最配呢

    技术金牛座和什么星座最配,金牛座和什么星座最配呢金牛座与其它星座的互动关系 最欣赏的星座-处女座 最信任的星座-狮子座金牛座和什么星座最配、射手座
    最佳学习对象-天蝎座
    最佳工作搭档-双子座
    最容易被影响星座-水瓶

    生活 2021年10月26日
  • Python如何爬取猫咪网站交易数据

    技术Python如何爬取猫咪网站交易数据这期内容当中小编将会给大家带来有关Python如何爬取猫咪网站交易数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、前言看到可爱的猫咪表情包

    攻略 2021年10月26日