WalletConnect Swift SDK,实现了基于 1.0.0 websocket 的协议。
演示视频
eth_sign
/ personal_sign
/ eth_signTypedData
eth_signTransaction
/ eth_sendTransaction
bnb_sign
(币安 DEX 订单)待办事项
要运行示例项目,请克隆 repo,并首先从 Example 目录运行 pod install
。
WalletConnect 可以通过 CocoaPods, Carthage 和 Swift Package Manager 获取。
要安装它,只需将以下行添加到您的 Podfile
pod 'WalletConnect', git: 'https://github.com/trustwallet/wallet-connect-swift', branch: 'master'
将以下行添加到您的 Cartfile
github "trustwallet/wallet-connect-swift"
将 .package(url:_:)
添加到您的 Package.swift
dependencies: [
.package(url: "https://github.com/trustwallet/wallet-connect-swift", .branch("master")),
],
从扫描的二维码解析会话
let string = "wc:..."
guard let session = WCSession.from(string: string) else {
// invalid session
return
}
// handle session
配置和处理传入的消息
let interactor = WCInteractor(session: session, meta: clientMeta)
interactor.onSessionRequest = { [weak self] (id, peer) in
// ask for user consent
}
interactor.onDisconnect = { [weak self] (error) in
// handle disconnect
}
interactor.eth.onSign = { [weak self] (id, payload) in
// handle eth_sign, personal_sign, eth_signTypedData
}
interactor.eth.onTransaction = { [weak self] (id, event, transaction) in
// handle eth_signTransaction / eth_sendTransaction
}
interactor.bnb.onSign = { [weak self] (id, order) in
// handle bnb_sign
}
批准会话
interactor.approveSession(accounts: accounts, chainId: chainId).done {
print("<== approveSession done")
}.cauterize()
批准请求
interactor.approveRequest(id: id, result: result.hexString).done {
print("<== approveRequest done")
}.cauterize()
批准币安 DEX 订单
interactor?.approveBnbOrder(id: id, signed: signed).done({ confirm in
print("<== approveBnbOrder", confirm)
}).cauterize()
hewigovens
WalletConnect 在 MIT 许可证下可用。有关更多信息,请参见 LICENSE 文件。