Discord 频道 中寻求帮助
您可以在我们的web3swift
- Swift 实现的 web3.js 功能
⚡️ - 通过 JSON RPC 与远程节点交互
💭 - 智能合约 ABI 解析
📖 - 本地密钥存储管理(与 geth 兼容)
- 在 iOS 设备上直接创建私钥和交易,并直接发送到 Infura 节点
- 原生 API
- 安全性(就像硬件钱包一样酷!开箱即用! :box: )
- 无需额外的依赖项
- 可以与所有现有的智能合约一起工作
- 参考 Solidity 中引入的最新特性
特性
- 创建账户
- 导入账户
- 签名交易
- 发送交易,调用智能合约函数,估算 gas 成本
- 将交易和结果序列化和反序列化到原生 Swift 类型
- 链状态便捷函数:区块号码,gas 价格
- 检查交易结果并获取回执
- 解析交易事件日志
- 通过加密密钥存储抽象管理用户的私钥
- 异步模式下的批量请求数据,3 秒内检查 580 个代币的余额(来自最新的 MyEtherWallet 仓库)
- 严格遵循标准
需求
Web3swift 需要Swift 4.2且支持部署至macOS 10.10
、iOS 9
、watchOS 2
、tvOS 9
和linux
系统。
别忘了在Podfile中设置iOS版本,否则如果部署目标低于最新SDK,会报错。
安装
-
Swift包管理器:尽管包管理器仍处于早期阶段,但web3swift全力支持它。将此添加到
Package.swift
清单的依赖部分.package(url: "https://github.com/BANKEX/web3swift.git", from: "2.1.0")
-
CocoaPods:将此放入您的
Podfile
pod 'web3swift.pod'
-
Carthage:将此放入您的
Cartfile
github "BANKEX/web3swift" ~> 2.1
文档
您好。我们花费了很多时间来编写文档。如果您阅读后还有问题,请在GitHub上创建问题或在我们的discord频道中提问。我们将很高兴为您提供帮助。
大部分的类都有文档,并有一些使用示例。
在Xcode中使用文档阅读
GitHub Pages
如果您愿意将我们的文档翻译成另一种语言,我们非常感谢,并愿意向您提供有关如何操作的必要信息,我们将为包含在主分支中的翻译提供报酬。
设计决策
- 并非所有的JSON RPC函数都已暴露,优先考虑移动设备所需的函数。
- 功能主要集中在设备本地序列化和签名交易,以发送原始交易到以太坊网络。
- 在每个交易输入密码的要求确实是设计决策。界面设计师可以在用户同意的情况下保存用户密码。
- 公开的私钥导出公共函数是为了用户的方便,但标记为UNSAFE_ :) 正常工作流程负责EIP155兼容性和正确清除内存中的私钥数据。
贡献
请检查develop分支以获取最新版本。
此分支的更改将在某个时间点合并到master分支。
- 如果您想贡献,请在开发
develop
分支上提交pull request。 - 如果您发现了错误,请创建问题。
- 如果您有一个特性请求,请创建问题。
特别感谢
- Gnosis团队及其库Bivrost-swift为我们提供ABIDecoding方法的灵感和帮助。
- Trust iOS Wallet的合作和讨论的初始想法
- 官方以太坊和Solidity文档,一切都是从基准标准编写的。