Skip to content

Latest commit

 

History

History
61 lines (42 loc) · 2.37 KB

README.md

File metadata and controls

61 lines (42 loc) · 2.37 KB

BitcoinPaymentURISwift

Build Status Carthage Compatible

BitcoinPaymentURISwift is an open source library to handle the Bitcoin payment URI based on the BIT 21. The purpose of this library is to provide a simpler way to the developers to integrate in their applications support for this URI Scheme to easily make payments.

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate BitcoinPaymentURISwift into your Xcode project using Carthage, specify it in your Cartfile:

github "SandroMachado/BitcoinPaymentURISwift" ~> 1.0.0

Run carthage update to build the framework and drag the built BitcoinPaymentURI.framework into your Xcode project.

Usage

Code

Parse the URI bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=50&label=Luke-Jr&message=Donation%20for%20project%20xyz.

guard let bpuri = BitcoinPaymentURI.parse("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=50&label=Luke-Jr&message=Donation%20for%20project%20xyz") else {
    return
}

bpuri.address? \\ 175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W
bpuri.amount? \\ 50
bpuri.label? \\ "Luke-Jr"
bpuri.message? \\ "Donation for project xyz"
bpuri.parameters?.count \\ 0

Generate the following URI bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=Luke-Jr&foo=bar&amount=50.0&message=Donation%20for%20project%20xyz&req-fiz=biz

let bpuri: BitcoinPaymentURI = BitcoinPaymentURI(build: {
            $0.address = "175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"
            $0.amount = 50.0
            $0.label = "Luke-Jr"
            $0.message = "Donation for project xyz"

            var newParameters: [String: Parameter] = [:]

            newParameters["foo"] = Parameter(value: "bar", required: false)
            newParameters["fiz"] = Parameter(value: "biz", required: true)

            $0.parameters = newParameters
        })