spb/os-vault Public
Self-custody, multi-chain crypto wallet for macOS. One recovery phrase, six chain families, zero API keys — nothing leaves your Mac.
Swift 96%
Shell 3.4%
Makefile 0.6%
1import WalletCoreC2import Foundation3// SPDX-License-Identifier: Apache-2.04//5// Copyright © 2017 Trust Wallet.6//7// This is a GENERATED FILE, changes made here WILL BE LOST.8//910import Foundation1112/// Represents a legacy Bitcoin address in C++.13public final class BitcoinAddress: Address {1415 /// Compares two addresses for equality.16 ///17 /// - Parameter lhs: The first address to compare.18 /// - Parameter rhs: The second address to compare.19 /// - Returns: bool indicating the addresses are equal.20 public static func == (lhs: BitcoinAddress, rhs: BitcoinAddress) -> Bool {21 return TWBitcoinAddressEqual(lhs.rawValue, rhs.rawValue)22 }2324 /// Determines if the data is a valid Bitcoin address.25 ///26 /// - Parameter data: data to validate.27 /// - Returns: bool indicating if the address data is valid.28 public static func isValid(data: Data) -> Bool {29 let dataData = TWDataCreateWithNSData(data)30 defer {31 TWDataDelete(dataData)32 }33 return TWBitcoinAddressIsValid(dataData)34 }3536 /// Determines if the string is a valid Bitcoin address.37 ///38 /// - Parameter string: string to validate.39 /// - Returns: bool indicating if the address string is valid.40 public static func isValidString(string: String) -> Bool {41 let stringString = TWStringCreateWithNSString(string)42 defer {43 TWStringDelete(stringString)44 }45 return TWBitcoinAddressIsValidString(stringString)46 }4748 /// Returns the address in Base58 string representation.49 ///50 /// - Parameter address: Address to get the string representation of.51 public var description: String {52 return TWStringNSString(TWBitcoinAddressDescription(rawValue))53 }5455 /// Returns the address prefix.56 ///57 /// - Parameter address: Address to get the prefix of.58 public var prefix: UInt8 {59 return TWBitcoinAddressPrefix(rawValue)60 }6162 /// Returns the key hash data.63 ///64 /// - Parameter address: Address to get the keyhash data of.65 public var keyhash: Data {66 return TWDataNSData(TWBitcoinAddressKeyhash(rawValue))67 }6869 let rawValue: OpaquePointer7071 init(rawValue: OpaquePointer) {72 self.rawValue = rawValue73 }7475 public init?(string: String) {76 let stringString = TWStringCreateWithNSString(string)77 defer {78 TWStringDelete(stringString)79 }80 guard let rawValue = TWBitcoinAddressCreateWithString(stringString) else {81 return nil82 }83 self.rawValue = rawValue84 }8586 public init?(data: Data) {87 let dataData = TWDataCreateWithNSData(data)88 defer {89 TWDataDelete(dataData)90 }91 guard let rawValue = TWBitcoinAddressCreateWithData(dataData) else {92 return nil93 }94 self.rawValue = rawValue95 }9697 public init?(publicKey: PublicKey, prefix: UInt8) {98 guard let rawValue = TWBitcoinAddressCreateWithPublicKey(publicKey.rawValue, prefix) else {99 return nil100 }101 self.rawValue = rawValue102 }103104 deinit {105 TWBitcoinAddressDelete(rawValue)106 }107108}109