/Base58Swift

A pure swift implementation of base58 string encoding and decoding

Primary LanguageSwiftMIT LicenseMIT

Base58Swift

Build Status codecov Carthage Compatible Version License

Base58Swift is a Swift library that implements Base58 / Base58Check encodings for cryptocurrencies. It is based off of go-base-58 with some added functions.

Donations help me find time to work on Base58Swift. If you find the library useful, please consider donating to support ongoing develoment.

Currency Address
Tezos tz1SNXT8yZCwTss2YcoFi3qbXvTZiCojx833
Bitcoin 1CdPoF9cvw3YEiuRCHxdsGpvb5tSUYBBo
Bitcoin Cash qqpr9are9gzs5r0q7hy3gdehj3w074pyqsrhpdmxg6

Installation

CocoaPods

Base58Swift supports installation via CocoaPods. You can depend on Base58Swift by adding the following to your Podfile:

pod "Base58Swift"

Carthage

If you use Carthage to manage your dependencies, simply add Base58Swift to your Cartfile:

github "keefertaylor/Base58Swift"

If you use Carthage to build your dependencies, make sure you have added BigInt.framework and SipHash.framework, to the "Linked Frameworks and Libraries" section of your target, and have included them in your Carthage framework copying build phase.

Swift Package Manager

Add the following to the dependencies section of your Package.swift file:

.package(url: "https://github.com/keefertaylor/Base58Swift.git", from: "2.1.0")

Usage

Base58Swift provides a static utility class, Base58, which provides encoding and decoding functions.

To encode / decode in Base58:

let bytes: [UInt8] = [255, 254, 253, 252]

let encodedString = Base58.encode(bytes)!
let decodedBytes = Base58.decode(encodedString)!

print(encodedString) // 7YXVWT
print(decodedBytes)  // [255, 254, 253, 252]

To encode / decode in Base58Check:

let bytes: [UInt8] = [255, 254, 253, 252]

let encodedString = Base58.base58CheckEncode(bytes)!
let decodedBytes = Base58.base58CheckDecode(encodedString)!

print(encodedString) // jpUz5f99p1R
print(decodedBytes)  // [255, 254, 253, 252]

Contributing

Pull requests are welcome.

To get set up:

$ brew install xcodegen # if you don't already have it
$ xcodegen generate # Generate an XCode project from Project.yml
$ open Base58Swift.xcodeproj

License

MIT