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.5 KB · 113 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 Foundation111213public final class Ethereum {1415    /// Returns the checksummed address.16    /// 17    /// - Parameter address: *non-null* string.18    /// - Returns: the checksummed address.19    public static func addressChecksummed(address: String) -> String? {20        let addressString = TWStringCreateWithNSString(address)21        defer {22            TWStringDelete(addressString)23        }24        guard let result = TWEthereumAddressChecksummed(addressString) else {25            return nil26        }27        return TWStringNSString(result)28    }2930    /// Returns the account path from address.31    /// 32    /// - Parameter eth_address: *non-null* string.33    /// - Parameter layer: *non-null* string.34    /// - Parameter application: *non-null* string.35    /// - Parameter index: *non-null* string.36    /// - Returns: the account path.37    public static func eip2645GetPath(ethAddress: String, layer: String, application: String, index: String) -> String? {38        let ethAddressString = TWStringCreateWithNSString(ethAddress)39        defer {40            TWStringDelete(ethAddressString)41        }42        let layerString = TWStringCreateWithNSString(layer)43        defer {44            TWStringDelete(layerString)45        }46        let applicationString = TWStringCreateWithNSString(application)47        defer {48            TWStringDelete(applicationString)49        }50        let indexString = TWStringCreateWithNSString(index)51        defer {52            TWStringDelete(indexString)53        }54        guard let result = TWEthereumEip2645GetPath(ethAddressString, layerString, applicationString, indexString) else {55            return nil56        }57        return TWStringNSString(result)58    }5960    /// Returns EIP-1014 Create2 address61    /// 62    /// - Parameter from: *non-null* string.63    /// - Parameter salt: *non-null* data.64    /// - Parameter init_code_hash: *non-null* data.65    /// - Returns: the EIP-1014 Create2 address.66    public static func eip1014Create2Address(from: String, salt: Data, initCodeHash: Data) -> String? {67        let fromString = TWStringCreateWithNSString(from)68        defer {69            TWStringDelete(fromString)70        }71        let saltData = TWDataCreateWithNSData(salt)72        defer {73            TWDataDelete(saltData)74        }75        let initCodeHashData = TWDataCreateWithNSData(initCodeHash)76        defer {77            TWDataDelete(initCodeHashData)78        }79        guard let result = TWEthereumEip1014Create2Address(fromString, saltData, initCodeHashData) else {80            return nil81        }82        return TWStringNSString(result)83    }8485    /// Returns EIP-1967 proxy init code86    /// 87    /// - Parameter logic_address: *non-null* string.88    /// - Parameter data: *non-null* data.89    /// - Returns: the EIP-1967 proxy init code.90    public static func eip1967ProxyInitCode(logicAddress: String, data: Data) -> Data? {91        let logicAddressString = TWStringCreateWithNSString(logicAddress)92        defer {93            TWStringDelete(logicAddressString)94        }95        let dataData = TWDataCreateWithNSData(data)96        defer {97            TWDataDelete(dataData)98        }99        guard let result = TWEthereumEip1967ProxyInitCode(logicAddressString, dataData) else {100            return nil101        }102        return TWDataNSData(result)103    }104105    let rawValue: OpaquePointer106107    init(rawValue: OpaquePointer) {108        self.rawValue = rawValue109    }110111112}113