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%
1.2 KB · 32 lines swift
Raw Blame History
1import Foundation23public protocol MintLayoutState: BufferLayout, Equatable, Hashable, Encodable {4    var mintAuthorityOption: UInt32 { get }5    var mintAuthority: PublicKey? { get }6    var supply: UInt64 { get }7    var decimals: UInt8 { get }8    var isInitialized: Bool { get }9    var freezeAuthorityOption: UInt32 { get }10    var freezeAuthority: PublicKey? { get }11}1213extension MintLayoutState {14    func serializeCommonProperties(to writer: inout Data) throws {15        try mintAuthorityOption.serialize(to: &writer)16        if let mintAuthority = mintAuthority {17            try mintAuthority.serialize(to: &writer)18        } else {19            try PublicKey.NULL_PUBLICKEY_BYTES.forEach { try $0.serialize(to: &writer) }20        }21        try supply.serialize(to: &writer)22        try decimals.serialize(to: &writer)23        if isInitialized { try UInt8(1).serialize(to: &writer) } else { try UInt8(0).serialize(to: &writer) }24        try freezeAuthorityOption.serialize(to: &writer)25        if let freezeAuthority = freezeAuthority {26            try freezeAuthority.serialize(to: &writer)27        } else {28            try PublicKey.NULL_PUBLICKEY_BYTES.forEach { try $0.serialize(to: &writer) }29        }30    }31}32