日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ICAP互换客户端地址协议iOS实现示例

發布時間:2023/12/8 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ICAP互换客户端地址协议iOS实现示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前我寫了一篇關于ICAP: 互換客戶端地址協議的文章。文章中介紹和詳細解析了關于ICAP協議算法,并給出Go語言版本的具體實現。實際上以太坊全節點Geth提供了WEB3接口,來轉換ICAP格式地址(web3.fromICAP("XE86G29C8IV34UOJMYWHGDSGME33YKEC3QO"))。

> web3 {... ...BigNumber: function a(e,n),fromICAP: function(icap),isAddress: function(address),isChecksumAddress: function(address),sha3: function(string, options),toBigNumber: function(number),toChecksumAddress: function(address)... ... }> web3.fromICAP("XE86G29C8IV34UOJMYWHGDSGME33YKEC3QO") "8982b139b2fca9452eae977827fb12280a9a1bf0" >

不過這種方式轉換ICAP格式地址,在客戶端與服務端交互上有些繁瑣,特別是在手機端操作時。手機端完全可以利用每一臺終端設備來處理這個轉換工作,直接將ICAP格式地址發送給服務端處理全部轉換邏輯顯得沒有必要。另外,web3.fromICAP只能轉換出非含校驗和的以太坊賬戶地址,仍需要調用web3.toChecksumAddress來完成剩余工作。

因此,在這個大前提下,BOX企業數字資產保險箱 員工版APP開發了基于ICAP協議算法的一套iOS庫。該庫可以直接在手機端完成轉換工作,不需要與后端web3接口交互。可能Geth已有iOS版本相關的庫(pod Geth),不過由于這個庫太大,一直沒有下載成功,也沒有辦法驗證其功能是否包含ICAP功能。使用本庫的還有一個好處是簡單明了,不必依賴大型庫,同時轉換出的以太坊地址支持checksum。

我是一位Gopher,淺嘗iOS,代碼目標不是做一個完整的手機APP,旨在實現ICAP格式協議地址轉換成以太坊賬戶地址。代碼在這里被找到 https://github.com/alphaqiu/i...

icap-ios

接口定義:

@interface ICAP :NSObject /*** @brief convert icap string to ethereum account address.** example code:** ICAP *decoder = [[ICAP alloc] init];* NSError *error;* NSString icapString = @"XE86G29C8IV34UOJMYWHGDSGME33YKEC3QO";* [decoder addressConvertFrom:icapString didFailedWithError:&error];* if (error != nil) {* NSLog(@"Convert from ICAP failed, cause:%@", error);* }** @param icapString *NSString* @param error **NSError when invoked the function, if this reference error not nil, then the renturn string is nil.* @return *NSString the ethereum account address.*/ -(NSString *) addressConvertFrom:(NSString *)icapString didFailedWithError:(NSError **)error; @end

使用方法:

ICAP *decoder = [[ICAP alloc] init]; NSError *error; [decoder addressConvertFrom:@"XE86G29C8IV34UOJMYWHGDSGME33YKEC3QO" didFailedWithError:&error]; if (error != nil) {NSLog(@"Convert from ICAP failed, cause:%@", error); }

工程依賴庫安裝:

# Uncomment the next line to define a global platform for your project # platform :ios, '9.0'target 'prog3' do# Uncomment the next line if you're using Swift or would like to use dynamic frameworksuse_frameworks!pod 'JKBigInteger', '~> 0.0.1'# Pods for prog3end pod install

總結

以上是生活随笔為你收集整理的ICAP互换客户端地址协议iOS实现示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。