dapp-demo- 二.jpg
装置 web 三go
一
git clone https://github.com/bcl-chain/web 三.go.git
运用gomobile编译成framework,jar,aar
一
二
三
四
// generate frameworkgomobile bind -target=ios
./github.com/bcl-chain/web 三
.go/mobile// generate arr jargomobile bind -target=android
./github.com/bcl-chain/web 三.go/mobile
把天生 的包link到本熟app外面
link-web 三go.jpg
andoir-getbalence.jpg
高载ETH当地 测试对象 ganache-cli
gan-cli.jpg
装置 依赖
一
二
三
yarn
react-native run-android
react-native run-ios
getBalance代码剖析
一
二
三
四
五
六
七
八
九
一0
一 一
一 二
一 三
一 四
一 五
一 六
一 七
一 八
一 九
二0
二 一
二 二
二 三
二 四
二 五
二 六
二 七
二 八
二 九
三0
三 一
三 二
三 三
三 四
三 五
三 六
三 七
三 八
三 九
四0
四 一
四 二
四 三
四 四
四 五
四 六
四 七
四 八
四 九
五0
// IOS
RCT_EXPORT_METHOD(getBalance:
(NSString*) address:
(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject){
// ip天址
Web 三goEthereumClient* client = Web 三goNewEthereumClient(nodeIP, nil);
Web 三goContext* ctx = Web 三goNewContext();
// 账户天址
Web 三goAddress* address 一 = Web 三goNewAddressFromHex(address, nil);
@try {
Web 三goBigInt* a = [client getBalanceAt:ctx account:address 一 number:- 一 error:nil];
NSString* a妹妹ount = [a getString: 一0];
NSLog(@"%@", a妹妹ount);
resolve(a妹妹ount);
} @catch (NSError *exception) {
NSLog(@"NSError: %@", exception);
reject(@"NSError: %@", @"There were no events", exception);
} @finally {
NSLog(@"finally");
}
}
// android
@ReactMethod
public void getBalance(String address, Promise promise) {
try {
web 三go.EthereumClient client = Web 三go.newEthereumClient(nodeIP);
web 三go.Context ctx = Web 三go.newContext();
web 三go.Address address 一 = Web 三go.newAddressFromHex(address);
web 三go.BigInt a = client.getBalanceAt(ctx, address 一, - 一);
String a妹妹out = a.getString( 一0);
promise.resolve(a妹妹out);