Skip to content

A pure swift implementation of base58 string encoding and decoding

License

Notifications You must be signed in to change notification settings

MicrohexHQ/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.

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 depened 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.

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

I am happy to accept pull requests.

License

MIT

About

A pure swift implementation of base58 string encoding and decoding

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 87.9%
  • Ruby 12.1%