亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Bytom-Mobile-Wallet-SDK的使用方法是什么

發布時間:2021-12-20 17:33:02 來源:億速云 閱讀:176 作者:iii 欄目:互聯網科技

這篇文章主要介紹“Bytom-Mobile-Wallet-SDK的使用方法是什么”,在日常操作中,相信很多人在Bytom-Mobile-Wallet-SDK的使用方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Bytom-Mobile-Wallet-SDK的使用方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Bytom-Mobile-Wallet-SDK 是從bytom源碼中抽離出的錢包層代碼,并且對錢包層代碼進行了改造。使用gomobile可以將代碼 編譯成Android和iOS平臺可用的SDK,使用編譯后的Android和iOS錢包SDK可以在移動端實現創建bytom密鑰、賬戶、地址和交易簽名功能。

Bytom-Mobile-Wallet-SDK源碼簡介

SDK源碼放在項目的sdk文件夾中,android和ios文件夾是使用SDK的demo項目,bind.go 中首字母大寫可以外部調用的函數會作為提供給Android和iOS調用的API。bytom創建的密鑰對會存儲在磁盤單獨的文件中,而且對私鑰進行了加密,賬戶地址數據是存儲在go實現的leveldb中,所以Android和iOS平臺也需要提供數據存儲的路徑。

func InitWallet(storagePath string) {
    hsm := pseudohsm.New(storagePath)
    walletDB := db.NewDB("wallet", "leveldb", storagePath)
    accounts := account.NewManager(walletDB)
    assets := asset.NewRegistry(walletDB)
    wallet := aWallet.NewWallet(walletDB, accounts, assets, hsm)
    api = aApi.API{Wallet: wallet}
}

Android和iOS平臺調用其他錢包API的之前需要先調用InitWallet這個API,參數是磁盤上的絕對路徑,InitWallet會對整個錢包進行一個初始化, 其中最重要是初始化leveldb的存儲。其他的CreateKey、CreateAccount、CreateAccountReceiver是創建密鑰、賬戶、地址等API,RestoreWallet API能夠對錢包所有賬戶地址資產進行備份導出json格式的數據。

Bytom-Mobile-Wallet-SDK的編譯

SDK代碼的編譯首先需要正確的安裝golang和gomobile,golang需要1.7以上版本。
Android平臺需要安裝JDK、Android SDK、Android NDK,并且需要將Android SDK的platform-tools、ndk-bundle 添加到PATH系統環境變量中。iOS平臺編譯環境配置相對比較簡單只需要安裝Xcode就可以了。
Clone項目到本地$GOPATH/src下:

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

Android

gomobile init -ndk ~/path/to/your/ndk
cd $GOPATH/src/github.com/bytom-community/mobile
gomobile bind -target=android github.com/bytom-community/mobile/sdk/

如果需要減小SDK的體積給gomobile bind指令加上-ldflags=-s參數:

gomobile bind -target=android -ldflags=-s github.com/bytom-community/mobile/sdk/

執行指令后會在mobile文件夾生成wallet.aar和wallet-sources.jar文件。

iOS

cd $GOPATH/src/github.com/bytom-community/mobile
gomobile bind -target=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的使用方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乃东县| 泾源县| 达尔| 秭归县| 宣城市| 江阴市| 武邑县| 论坛| 尤溪县| 达日县| 萍乡市| 丰宁| 武义县| 彭阳县| 西吉县| 绩溪县| 教育| 永清县| 徐汇区| 金川县| 治多县| 乐至县| 新野县| 雷州市| 如东县| 武清区| 印江| 陆丰市| 沈丘县| 大同县| 堆龙德庆县| 静安区| 合作市| 凯里市| 原阳县| 离岛区| 浦县| 额济纳旗| 漾濞| 海门市| 咸宁市|