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.9 KB · 108 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 Biz {1415    /// Returns the encoded hash of the user operation16    /// 17    /// - Parameter chain_id: The chain ID of the user.18    /// - Parameter code_address: The address of the smart contract wallet.19    /// - Parameter code_name: The name of the smart contract wallet.20    /// - Parameter code_version: The version of the smart contract wallet.21    /// - Parameter type_hash: The type hash of the smart contract wallet.22    /// - Parameter domain_separator_hash: The domain separator hash of the smart contract wallet.23    /// - Parameter sender: The sender of the smart contract wallet.24    /// - Parameter user_op_hash: The user operation hash of the smart contract wallet.25    /// - Returns: The encoded hash.26    public static func getEncodedHash(chainId: Data, codeAddress: String, codeName: String, codeVersion: String, typeHash: String, domainSeparatorHash: String, sender: String, userOpHash: String) -> Data? {27        let chainIdData = TWDataCreateWithNSData(chainId)28        defer {29            TWDataDelete(chainIdData)30        }31        let codeAddressString = TWStringCreateWithNSString(codeAddress)32        defer {33            TWStringDelete(codeAddressString)34        }35        let codeNameString = TWStringCreateWithNSString(codeName)36        defer {37            TWStringDelete(codeNameString)38        }39        let codeVersionString = TWStringCreateWithNSString(codeVersion)40        defer {41            TWStringDelete(codeVersionString)42        }43        let typeHashString = TWStringCreateWithNSString(typeHash)44        defer {45            TWStringDelete(typeHashString)46        }47        let domainSeparatorHashString = TWStringCreateWithNSString(domainSeparatorHash)48        defer {49            TWStringDelete(domainSeparatorHashString)50        }51        let senderString = TWStringCreateWithNSString(sender)52        defer {53            TWStringDelete(senderString)54        }55        let userOpHashString = TWStringCreateWithNSString(userOpHash)56        defer {57            TWStringDelete(userOpHashString)58        }59        guard let result = TWBizGetEncodedHash(chainIdData, codeAddressString, codeNameString, codeVersionString, typeHashString, domainSeparatorHashString, senderString, userOpHashString) else {60            return nil61        }62        return TWDataNSData(result)63    }6465    /// Signs a message using the private key66    /// 67    /// - Parameter hash: The hash of the user.68    /// - Parameter private_key: The private key of the user.69    /// - Returns: The signed hash.70    public static func getSignedHash(hash: String, privateKey: String) -> Data? {71        let hashString = TWStringCreateWithNSString(hash)72        defer {73            TWStringDelete(hashString)74        }75        let privateKeyString = TWStringCreateWithNSString(privateKey)76        defer {77            TWStringDelete(privateKeyString)78        }79        guard let result = TWBizGetSignedHash(hashString, privateKeyString) else {80            return nil81        }82        return TWDataNSData(result)83    }8485    /// Signs and encodes `Biz.executeWithPasskeySession` function call to execute a batch of transactions.86    /// 87    /// - Parameter input: The serialized data of `Biz.ExecuteWithSignatureInput` protobuf message.88    /// - Returns: ABI-encoded function call.89    public static func signExecuteWithSignatureCall(input: Data) -> Data? {90        let inputData = TWDataCreateWithNSData(input)91        defer {92            TWDataDelete(inputData)93        }94        guard let result = TWBizSignExecuteWithSignatureCall(inputData) else {95            return nil96        }97        return TWDataNSData(result)98    }99100    let rawValue: OpaquePointer101102    init(rawValue: OpaquePointer) {103        self.rawValue = rawValue104    }105106107}108