PLEASE NOTE!
This is fork from KevinVitale/WalletKit
Due to SPM (Swift package manager) and github restrictions it's impossible to add original KevinVitale wallet as dependency to SPM in XCode. That's why below repos had been created to make it work:
- 1 CryptoCore forked from
KevinVitale/WalletKit
- 2 WalletKit forked from
KevinVitale/WalletKit
WalletKit
as a Dependency
Adding To use the WalletKit
library in a Swift Package Manager (SPM) project, add the following line to the dependencies in you Package.swift
file:
.package(url: "https://github.com/astrokin/WalletKit", branch: "main"),
The WalletKit
library is under active development, and while attempts are made to maintain source-stability, this is not guaranteed between minor versions. You may specify .upToNextMinor(from:)
, instead of from(_:)
, if you need to be at a specific version.
Platforms
- macOS, v10.15+;
- iOS, v13+;
- Linux
CLI Utility
This CLI utility is cross-platform, and demonstrates a portion of this framework's functionality.
Usage
import WalletKit
let wallet = try Mnemonic().createWallet()
let account = try wallet.account(coinType: .ETH, atIndex: 0)
// 'Normal' addresses...
account[.normal(0..<10)].forEach {
print($0.address)
}
// 'Hardened' addresses...
account[.hardened(0..<10)].forEach {
print($0.address)
}
Examples
let mnemonic = try Mnemonic()
print(mnemonic.phrase)
let accounts = try mnemonic.createWallet().account(coinType: .ETH, atIndex: 0)
accounts[.hardened(0..<10)].enumerated().forEach { (index, account) in
let address = account.address
let privateKey = "0x" + account.privateKey.key.dropFirst().hexString
print("[idx: \(index)]", address, privateKey)
}
}
// Console output
<24-word seed phrase>
[idx: 0] 0x95e18dd2115c49651a5195cdaed1e4589d9a882d 0x...privatekey...
[idx: 1] 0x70c52be490029822278eecf2d9e4324c6e0505b8 0x...privatekey...
[idx: 2] 0x11194b63c701ba9612d8b4c29e9d34127160043c 0x...privatekey...
[idx: 3] 0x90ec34dd860c4e2876ea3e2ce3f7362d6ef9c8b5 0x...privatekey...
[idx: 4] 0x3a0a814ad24e703aae2b1acb2211dba4dab7330f 0x...privatekey...
[idx: 5] 0x9cc103ff117e604fbf5fee3d4b90b2646576190f 0x...privatekey...
[idx: 6] 0x263c0757284090a3ceec27243d483399bbc0a570 0x...privatekey...
[idx: 7] 0x645b93bda895c130451b5e20341130665f693c53 0x...privatekey...
[idx: 8] 0x14b6fdfdbe37fbcd6a2e4a6f85a303bcc8327552 0x...privatekey...
[idx: 9] 0xffd4e7a268a8cf75f4215f06a8ebc049195c1b4e 0x...privatekey...
Command-Line Interface
USAGE: cli [--seed-phrase <seed-phrase>] [--passphrase <passphrase>]
OPTIONS:
-s, --seed-phrase <seed-phrase>
A specific mnemonic seed phrase used to create the wallet.
-p, --passphrase <passphrase>
An optional passphrase for improving entropy.
-h, --help Show help information.