Skip to content

A pure swift implementation of base58 string encoding and decoding

License

Notifications You must be signed in to change notification settings

keefertaylor/Base58Swift

Repository files navigation

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.

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

About

A pure swift implementation of base58 string encoding and decoding

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published