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%
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