Client-SDK-iOS
iOS DApp 客户端 SDK。支持 MEET.ONE SDK 和 SimpleWallet SDK。
MEET.ONE SDK
功能
- 获取 EOS 账户:DApp 可以请求 EOS 账户的授权。
- EOS 转账:DApp 可以发送 EOS 转账。
- 推送 EOS 交易:DApp 可以推送 EOS 交易。
- 请求 EOS 定制签名:DApp 可以请求 EOS 定制签名。
SimpleWallet SDK
功能
- 获取 EOS 账户:DApp 可以请求 EOS 账户的授权。
- EOS 转账:DApp 可以发送 EOS 转账。
安装
CocoaPods
- 在您的Podfile中添加
pod 'MODAppSDK'
。 - 运行
pod install
或pod update
。 - 导入 <MODAppSDK/MODAppSDK.h>。
MEET.ONE SDK 使用方法
步骤.1 - 注册您的DApp
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// other code
//Create your dapp information
MODapp *dapp = [MODapp new];
dapp.name = @"MORE.ONE";
dapp.icon = @"https://static.ethte.com/more/images/bigicon.png";
dapp.version = @"1.1.0";
dapp.dappDescription = @"MORE.ONE is the first airdrop “candy” distribution application focused on EOS.";
dapp.uuID = @"6e76f5ef-86da-441f-9be8-f7bebef72f9f";
//Register MEET.ONE SDK for your dapp
[MODAppSDK registerWithDApp:dapp dappScheme:@"MeetOneSDKDemo" redirectURLString:@"https://more.one"];
// other code
return YES;
}
步骤.2 - 处理回调
回调数据(CallbackResp 数据)
@interface MOCallbackResp : NSObject
@property (nonatomic, assign) NSInteger code; //0.succes, -1.cancel, != 0 failed
@property (nonatomic, copy) NSString *message; //callback message
@property (nonatomic, assign, readonly) MOFunctionType type; //callback function
@property (nonatomic, copy) NSDictionary *data; //data you want
@end
获取回调
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
// other code
//Handle MEET.ONE Callback
BOOL meetoneCallback = [MODAppSDK handleCallbackWithResult:url completionBlock:^(MOCallbackResp *resp, MODapp *meetone) {
NSInteger code = resp.code;
NSString *message = resp.message;
MOFunctionType type = resp.type;
if (0 == code) { //success
;
}
NSLog(@"%@", message); //print message
switch (type) {
case MOFunctionTypeNone:
break;
case MOFunctionTypeAuthorize:
break;
case MOFunctionTypeTransfer:
break;
case MOFunctionTypePushTransactions:
break;
default:
break;
}
}];
NSLog(@"success:%d", meetoneCallback);
// other code
return YES;
}
步骤3 - 选择功能
1.请求EOS授权
API
/**
* Request EOS Authorization
*
* @param description Reason of Requesting
* @param completion completion block
*/
+ (void)requestEOSAuthorization:(NSString *)description
completionHandler:(void (^ __nullable)(BOOL success))completion;
代码示例
[MODAppSDK requestEOSAuthorization:@"EOS TO THE MOON !!!" completionHandler:^(BOOL success) {
;
}];
回调响应数据
NSDictionary
账户信息account
: 账户名称NSString
chainId
: 链IDNSString
publicKey
: 账户公钥NSString
permission
: 账户权限NSString
currencyBalance
: 账户EOS余额float
signature
: 签名String
uuid
: dapp uuidString
ref
: 默认值为 "MEET.ONE"String
timestamp
: 签名时间戳String
2.EOS转账
API
/**
* EOS Transfer
*
* @param eosTransfer EOS Transfer
* @param completion completion block
*/
+ (void)sendEOSTransferation:(MOEOSTransfer *)eosTransfer
completionHandler:(void (^ __nullable)(BOOL success))completion;
代码示例
//Create Transfer
MOEOSTransfer *transfer = [MOEOSTransfer new];
transfer.from = @"wujunchuan12";
transfer.to = @"johntrump123";
transfer.toChainId = @"";
transfer.amount = 1;
transfer.tokenName = @"EOS";
transfer.tokenContract = @"eosio.token";
transfer.tokenPrecision = 4;
transfer.memo = @"Just for Test";
transfer.orderInfo = @"EOS TO THE MOON !!!";
//Send
[MODAppSDK sendEOSTransferation:transfer completionHandler:^(BOOL success) {
;
}];
回调响应数据
NSDictionary
链上返回的数据transaction_id
: 交易IDNSString
3.推动EOS交易
API
/**
* Push EOS Transactions
*
* @param eosActions Standard EOS Actions
* @param completion completion block
*/
+ (void)pushEOSTransactions:(MOEOSTransactions *)eosActions
completionHandler:(void (^ __nullable)(BOOL success))completion;
代码示例
//Create Transactions
MOEOSTransactions *transactions = [MOEOSTransactions new];
transactions.from = @"johntrump123";
transactions.chainId = @"";
transactions.actions = @[@{@"account":@"eosio.token",@"name":@"transfer",@"authorization":@[@{@"actor":@"johntrump123",@"permission":@"owner"}],@"data":@{@"from":@"johntrump123",@"to":@"wujunchuan12",@"quantity":@"0.0001 EOS",@"memo":@"sdk test"}}];
transactions.options = @{@"broadcast":@(YES)};
transactions.transactionsInfo = @"EOS TO THE MOON !!!";
//Push
[MODAppSDK pushEOSTransactions:transactions completionHandler:^(BOOL success) {
;
}];
回调响应数据
NSDictionary
链上返回的数据transaction_id
: 交易IDNSString
4.请求EOS自定义签名
API
/**
* Request EOS Custom Signature
*
* @param accountName request account name
* @param chainId request chain id
* @param description Reason of Requesting
* @param customData custom signature data
* @param completion completion block
*/
+ (void)requestEOSCustomSignature:(NSString *)accountName
chainId:(nullable NSString *)chainId
description:(NSString *)description
customData:(NSString *)customData
completionHandler:(void (^ __nullable)(BOOL success))completion;
代码示例
//Request EOS Custom Signature
[MODAppSDK requestEOSCustomSignature:@"johntrump123"
chainId:nil
description:@"EOS TO THE MOON !!!"
customData:@"for test"
completionHandler:^(BOOL success) {
;
}];
回调响应数据
NSDictionary
链上签名数据account
: 账户名称NSString
chainId
: 链IDNSString
permission
: 账户权限NSString
signature
: 签名NSString
5.请求EOS账户信息
API
/**
* Get EOS Account Info
*
* @param description Reason of Requesting
* @param completion completion block
*/
+ (void)requestEOSAccountInfo:(NSString *)description
completionHandler:(void (^ __nullable)(BOOL success))completion;
代码示例
[MODAppSDK requestEOSAccountInfo:@"EOS TO THE MOON !!!" completionHandler:^(BOOL success) {
;
}];
回调响应数据
NSDictionary
账户信息account
: 账户名称NSString
chainId
: 链IDNSString
publicKey
: 账户公钥NSString
permission
: 账户权限NSString
currencyBalance
: 账户EOS余额float
SimpleWallet SDK 使用方法
步骤.1 - 注册您的 DApp
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// other code
//Create your dapp information
MODapp *dapp = [MODapp new];
dapp.name = @"MORE.ONE";
dapp.icon = @"https://static.ethte.com/more/images/bigicon.png";
dapp.version = @"1.1.0";
dapp.dappDescription = @"MORE.ONE is the first airdrop “candy” distribution application focused on EOS.";
dapp.uuID = @"6e76f5ef-86da-441f-9be8-f7bebef72f9f";
//Register SimpleWallet SDK for your dapp
[MOSimpleWalletSDK registerSDKWithDApp:dapp];
// other code
return YES;
}
步骤.2 - 处理回调
获取回调
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
// other code
//Handle SimpleWallet Callback
BOOL simpleWalletCallback = [MOSimpleWalletSDK handleCallbackWithResult:url completionBlock:^(MOSimpleWalletCallbackResult result, id res, NSString *callbackURI) {
NSLog(@"callbackURI:%@, res:%@", callbackURI, res); //print message
switch (result) {
case MOSimpleWalletCallbackResultError:
;
break;
case MOSimpleWalletCallbackResultSuccess:
break;
case MOSimpleWalletCallbackResultFailed:
;
break;
case MOSimpleWalletCallbackResultCancel:
;
break;
default:
break;
}
}];
// other code
return YES;
}
步骤.3 - 选择功能
1.请求 EOS 授权
API
/**
* Request EOS Authorization
*
* @param description Reason of Requesting
* @param serverLoginURL dapp's server login API URL
* @param callbackURI dapp's callback URI
* @param completion completion block
*/
+ (void)requestEOSAuthorization:(NSString *)description
serverLoginURL:(NSString *)serverLoginURL
callbackURI:(NSString *)callbackURI
completionHandler:(void (^ __nullable)(BOOL success))completion;
代码示例
[MOSimpleWalletSDK requestEOSAuthorization:@"SimpleWallet" serverLoginURL:@"https://demo/api/login.php" callbackURI:@"MeetOneSDKDemo://more.one?action=login" completionHandler:^(BOOL success) {
;
}];
响应数据
NSDictionary
账户信息或 nil
2.EOS 转账
API
/**
* EOS Transfer
*
* @param eosTransfer EOS Transfer
* @param callbackURI dapp's callback URI
* @param completion completion block
*/
+ (void)sendEOSTransferation:(MOEOSTransfer *)eosTransfer
callbackURI:(NSString *)callbackURI
completionHandler:(void (^ __nullable)(BOOL success))completion;
代码示例
//Create Transfer
MOEOSTransfer *transfer = [MOEOSTransfer new];
transfer.to = @"johntrump123";
transfer.amount = 1;
transfer.tokenName = @"EOS";
transfer.tokenContract = @"eosio.token";
transfer.tokenPrecision = 4;
transfer.memo = @"Just for Test";
transfer.orderInfo = @"EOS TO THE MOON !!!";
//Send
[MOSimpleWalletSDK sendEOSTransferation:transfer callbackURI:@"MeetOneSDKDemo://more.one?action=transfer" completionHandler:^(BOOL success) {
;
}];
响应数据
NSDictionary
链上返回的数据txID
:NSString
交易ID