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%
3.1 KB · 80 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/// Cardano helper functions13public struct Cardano {1415    /// Calculates the minimum ADA amount needed for a UTXO.16    ///17    /// \deprecated consider using `TWCardanoOutputMinAdaAmount` instead.18    /// - SeeAlso: reference https://docs.cardano.org/native-tokens/minimum-ada-value-requirement19    /// - Parameter tokenBundle: serialized data of TW.Cardano.Proto.TokenBundle.20    /// - Returns: the minimum ADA amount.21    public static func minAdaAmount(tokenBundle: Data) -> UInt64 {22        let tokenBundleData = TWDataCreateWithNSData(tokenBundle)23        defer {24            TWDataDelete(tokenBundleData)25        }26        return TWCardanoMinAdaAmount(tokenBundleData)27    }2829    /// Calculates the minimum ADA amount needed for an output.30    ///31    /// - SeeAlso: reference https://docs.cardano.org/native-tokens/minimum-ada-value-requirement32    /// - Parameter toAddress: valid destination address, as string.33    /// - Parameter tokenBundle: serialized data of TW.Cardano.Proto.TokenBundle.34    /// - Parameter coinsPerUtxoByte: cost per one byte of a serialized UTXO (Base-10 decimal string).35    /// - Returns: the minimum ADA amount (Base-10 decimal string).36    public static func outputMinAdaAmount(toAddress: String, tokenBundle: Data, coinsPerUtxoByte: String) -> String? {37        let toAddressString = TWStringCreateWithNSString(toAddress)38        defer {39            TWStringDelete(toAddressString)40        }41        let tokenBundleData = TWDataCreateWithNSData(tokenBundle)42        defer {43            TWDataDelete(tokenBundleData)44        }45        let coinsPerUtxoByteString = TWStringCreateWithNSString(coinsPerUtxoByte)46        defer {47            TWStringDelete(coinsPerUtxoByteString)48        }49        guard let result = TWCardanoOutputMinAdaAmount(toAddressString, tokenBundleData, coinsPerUtxoByteString) else {50            return nil51        }52        return TWStringNSString(result)53    }5455    /// Return the staking address associated to (contained in) this address. Must be a Base address.56    /// Empty string is returned on error. Result must be freed.57    /// - Parameter baseAddress: A valid base address, as string.58    /// - Returns: the associated staking (reward) address, as string, or empty string on error.59    public static func getStakingAddress(baseAddress: String) -> String {60        let baseAddressString = TWStringCreateWithNSString(baseAddress)61        defer {62            TWStringDelete(baseAddressString)63        }64        return TWStringNSString(TWCardanoGetStakingAddress(baseAddressString))65    }6667    /// Return the legacy(byron) address.68    /// - Parameter publicKey: A valid public key with TWPublicKeyTypeED25519Cardano type.69    /// - Returns: the legacy(byron) address, as string, or empty string on error.70    public static func getByronAddress(publicKey: PublicKey) -> String {71        return TWStringNSString(TWCardanoGetByronAddress(publicKey.rawValue))72    }737475    init() {76    }777879}80