如何使用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)

相关推荐

  • 如何使用Microsoft技术栈

    技术如何使用Microsoft技术栈这期内容当中小编将会给大家带来有关如何使用Microsoft技术栈,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Microsoft技术栈最近有大量的

    攻略 2021年11月2日
  • 如何买到便宜机票,怎么样才能买到最便宜的机票

    技术如何买到便宜机票,怎么样才能买到最便宜的机票你可以在自己附近的售票点买票如何买到便宜机票,票大付款是很安全的~ 如果订的是电子客票,你可以让给你出票的地方帮你先占座~然后让他们给你个记录编码。你去信天游这个网站查询编

    生活 2021年10月26日
  • 计算机组成原理–存储器与寄存器

    技术计算机组成原理–存储器与寄存器 计算机组成原理–存储器与寄存器现代计算机硬件由五大部件组成,分别是:运算器、控制器、存储器、输入设备和输出设备。
    存储器:
    而存储器的存在对于计算机来说起着不可或

    礼包 2021年11月20日
  • MySQL在ROW模式下如何通过binlog提取SQL语句

    技术MySQL在ROW模式下如何通过binlog提取SQL语句小编给大家分享一下MySQL在ROW模式下如何通过binlog提取SQL语句,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

    攻略 2021年10月29日
  • 配置化+Serverless 开发个人博客「附源码」

    技术配置化+Serverless 开发个人博客「附源码」 配置化+Serverless 开发个人博客「附源码」高清原画 链接: https://pan.baidu.com/s/1d6YONkCi4u7T

    礼包 2021年11月5日
  • ORACLE 12C RAC修改ocr/votedisk/asm spfile所在磁盘组名称

    技术ORACLE 12C RAC修改ocr/votedisk/asm spfile所在磁盘组名称 ORACLE 12C RAC修改ocr/votedisk/asm spfile所在磁盘组名称ORACLE

    礼包 2021年11月24日