ETH钱包
ETH钱包是一个用于与以太坊网络交云的iOS工具集。
有关更具体的用法,请参阅示例
Swift包管理工具
Swift包管理工具是用于自动化Swift代码分配的工具,并集成到Swift编译器中。
一旦您设置了Swift包,添加ETH钱包作为依赖项就像将其添加到Package.swift的依赖值一样简单。
dependencies: [
.package(url: "https://github.com/smithSophiav/EtherWallet.git", .upToNextMajor(from: "1.0.4"))
]
示例用法
import EtherWallet
设置 Web3_v1
let web3 = Web3_v1()
if web3.isWeb3LoadFinished {
} else {
web3.setup { [weak self] web3LoadFinished in
guard let self = self else { return }
if web3LoadFinished {}
}
}
创建账户
web3.generateAccount(password: password) { [weak self] (state, address,mnemonic,privateKey, keystore,error) in
guard let self = self else { return }
self.generateAccountBtn.isEnabled = true
if state {
let text =
"address: " + address + "\n\n" +
"mnemonic: " + mnemonic + "\n\n" +
"privateKey: " + privateKey + "\n\n" +
"keystore: " + keystore
generateAccountTextView.text = text
} else {
generateAccountTextView.text = error
}
}
从助记词导入账户
web3.importAccount(mnemonic: mnemonic, encrypedPassword: encrypedPassword){ [weak self] (state,address,privateKey,keystore,error) in
guard let self = self else { return }
self.importAccountBtn.isEnabled = true
if state {
let text =
"address: " + address + "\n\n" +
"privateKey: " + privateKey + "\n\n" +
"keystore: " + "\n" + keystore
self.importAccountTextView.text = text
} else {
self.importAccountTextView.text = error
}
}
从钱包导入账户
web3.importAccount(decryptPassword: password, keystore: Keystore) { [weak self] (state, address, privateKey,error) in
guard let self = self else { return }
self.importAccountBtn.isEnabled = true
if state {
let text =
"address: " + address + "\n\n" +
"privateKey: " + privateKey
self.importAccountTextView.text = text
} else {
self.importAccountTextView.text = error
}
}
从私钥导入账户
web3.importAccount(privateKey: privateKey, encrypedPassword: password){ [weak self] state, address, keystore,error in
guard let self = self else { return }
self.importAccountBtn.isEnabled = true
if state {
let text =
"address: " + address + "\n\n" +
"keystore: " + "\n" + keystore
self.importAccountTextView.text = text
} else {
self.importAccountTextView.text = error
}
}
发送ETH
web3.ETHTransfer(recipientAddress: reviceAddress,
amount: amountText,
senderPrivateKey: privateKey,
providerUrl: providerUrl) { [weak self] (state,txid,error) in
guard let self = self else { return }
print("state = \(state)")
print("txid = \(txid)")
if state {
self.hashLabel.text = txid
} else {
self.hashLabel.text = error
}
}
发送ERC20
web3.erc20TokenTransfer(providerUrl: providerUrl,
senderPrivateKey: privateKey,
recipientAddress: reviceAddress,
erc20ContractAddress: contractAddress,
amount: amountText,
decimal: 6.0) { [weak self] (state,txid,error) in
guard let self = self else { return }
print("state = \(state)")
print("txid = \(txid)")
if state {
self.hashLabel.text = txid
} else {
self.hashLabel.text = error
}
}
有关更详细的用法,建议参考示例
许可
EtherWallet采用MIT许可发布。查看LICENSE获取详细信息