摘要:比原項目倉庫地址地址是從源碼中抽離出的錢包層代碼并且對錢包層代碼進行了改造。其他的是創建密鑰賬戶地址等,能夠對錢包所有賬戶地址資產進行備份導出格式的數據。
比原項目倉庫:
Github地址:https://github.com/Bytom/bytom
Gitee地址:https://gitee.com/BytomBlockchain/bytom
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/mobileAndroid
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文件。
iOScd $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。
拷貝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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24281.html
摘要:錢包后端服務節點前端前端錢包前端其他合并工具工具文檔類讀比原剝開比原看源碼系列比原管理挖礦相關文檔各類文檔瀏覽器礦池魚池雙礦池礦池礦池螞蟻礦池蜘蛛礦池蜜蜂礦池礦池礦池第三方主網錢包比特派幣派 錢包 后端服務節點:https://github.com/Bytom-Comm... Android前端:https://github.com/Bytom-Comm... iOS前端:https:...
摘要:流程總結就是下載安裝插件錢包,如果自己的不需要跳過這一步。然后將編譯后的合約參數配置在的配置文件,如下圖全紅部分是測試網合約配置參數調用插件錢包。開發出優秀的應用。 安裝使用插件錢包 1. 打開Google瀏覽器的應用商店,搜索Bystore showImg(https://segmentfault.com/img/bVbq0Ol?w=2554&h=1312); 下載鏈接:http:/...
摘要:來做一個詳細的介紹協議協議原英文地址地址定義簡稱,是一個系統可以從單一個產生一樹狀結構儲存多組私鑰和公鑰。第二層的特指幣種并且允許多元貨幣錢包中的貨幣在第二個層級下有自己的亞樹狀結構。每個賬戶都是它自己亞樹的根。 我們知道HD(分層確定性)錢包,基于 BIP-32;多幣種和多帳戶錢包,基于 BIP-44;最近比原社區的錢包開發者對比原的BIP-32和BIP-44協議有疑問,所以我今天就...
摘要:微服務和容器目前比較流行,相信很多小伙伴都比較熟悉如果你不是太了解,可以查看文檔學習手冊。那如何用搭建比原鏈的節點呢在操作之前,請自行安裝。 微服務和容器目前比較流行,相信很多小伙伴都比較熟悉docker, 如果你不是太了解,可以查看文檔docker學習手冊。那如何用docker搭建比原鏈(Bytom)的節點呢? 在操作之前,請自行安裝docker。然后在你的終端輸入(windows對...
摘要:只有當觸發了或才能終止進程退出。退出時執行如下操作會將挖礦功能停止,網絡停止等操作。 作者:Derek 簡介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc... 本章介紹bytom代碼啟動、節點初始化、及停止的過程 作者使用MacOS操作系統,其他平臺也大同小異Golang V...
閱讀 3044·2023-04-25 20:09
閱讀 3321·2021-11-23 09:51
閱讀 1976·2021-11-22 15:25
閱讀 3353·2021-11-18 10:02
閱讀 2755·2021-09-27 13:56
閱讀 1309·2019-08-30 15:44
閱讀 1153·2019-08-30 13:21
閱讀 3326·2019-08-30 11:05