SPB Git

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%
2.5 KB · 77 lines swift
Raw Blame History
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/// Solana address helper functions13public final class SolanaAddress: Address {1415    /// Returns the address string representation.16    ///17    /// - Parameter address: Non-null pointer to a Solana Address18    /// - Returns: Non-null pointer to the Solana address string representation19    public var description: String {20        return TWStringNSString(TWSolanaAddressDescription(rawValue))21    }2223    let rawValue: OpaquePointer2425    init(rawValue: OpaquePointer) {26        self.rawValue = rawValue27    }2829    public init?(string: String) {30        let stringString = TWStringCreateWithNSString(string)31        defer {32            TWStringDelete(stringString)33        }34        guard let rawValue = TWSolanaAddressCreateWithString(stringString) else {35            return nil36        }37        self.rawValue = rawValue38    }3940    deinit {41        TWSolanaAddressDelete(rawValue)42    }4344    /// Derive default token address for token45    ///46    /// - Parameter address: Non-null pointer to a Solana Address47    /// - Parameter tokenMintAddress: Non-null pointer to a token mint address as a string48    /// - Returns: Null pointer if the Default token address for a token is not found, valid pointer otherwise49    public func defaultTokenAddress(tokenMintAddress: String) -> String? {50        let tokenMintAddressString = TWStringCreateWithNSString(tokenMintAddress)51        defer {52            TWStringDelete(tokenMintAddressString)53        }54        guard let result = TWSolanaAddressDefaultTokenAddress(rawValue, tokenMintAddressString) else {55            return nil56        }57        return TWStringNSString(result)58    }5960    /// Derive token 2022 address for token61    ///62    /// - Parameter address: Non-null pointer to a Solana Address63    /// - Parameter tokenMintAddress: Non-null pointer to a token mint address as a string64    /// - Returns: Null pointer if the token 2022 address for a token is not found, valid pointer otherwise65    public func token2022Address(tokenMintAddress: String) -> String? {66        let tokenMintAddressString = TWStringCreateWithNSString(tokenMintAddress)67        defer {68            TWStringDelete(tokenMintAddressString)69        }70        guard let result = TWSolanaAddressToken2022Address(rawValue, tokenMintAddressString) else {71            return nil72        }73        return TWStringNSString(result)74    }7576}77