// @generated this file is auto-generated - don't edit it directly import { PublicKey, UInt64, UInt32, TokenId, Field, Bool, AuthRequired, Sign, ZkappUri, TokenSymbol, StateHash, Events, Actions, ActionState, VerificationKeyHash, ReceiptChainHash, } from '../transaction-leaves.js'; import { GenericProvableExtended } from '../../lib/generic.js'; import { ProvableFromLayout, GenericLayout } from '../../lib/from-layout.js'; import * as Json from './transaction-json.js'; import { jsLayout } from './js-layout.js'; export { customTypes, ZkappCommand, AccountUpdate, Account }; export { Json }; export * from '../transaction-leaves.js'; export { provableFromLayout, toJSONEssential, emptyValue, Layout, TypeMap }; type TypeMap = { PublicKey: PublicKey; UInt64: UInt64; UInt32: UInt32; TokenId: TokenId; Field: Field; Bool: Bool; AuthRequired: AuthRequired; Sign: Sign; }; const TypeMap: { [K in keyof TypeMap]: ProvableExtended; } = { PublicKey, UInt64, UInt32, TokenId, Field, Bool, AuthRequired, Sign, }; type ProvableExtended = GenericProvableExtended; type Layout = GenericLayout; type CustomTypes = { ZkappUri: ProvableExtended< { data: string; hash: Field; }, string >; TokenSymbol: ProvableExtended< { symbol: string; field: Field; }, string >; StateHash: ProvableExtended; Events: ProvableExtended< { data: Field[][]; hash: Field; }, Json.TypeMap['Field'][][] >; Actions: ProvableExtended< { data: Field[][]; hash: Field; }, Json.TypeMap['Field'][][] >; ActionState: ProvableExtended; VerificationKeyHash: ProvableExtended; ReceiptChainHash: ProvableExtended; }; let customTypes: CustomTypes = { ZkappUri, TokenSymbol, StateHash, Events, Actions, ActionState, VerificationKeyHash, ReceiptChainHash, }; let { provableFromLayout, toJSONEssential, emptyValue } = ProvableFromLayout< TypeMap, Json.TypeMap >(TypeMap, customTypes); type ZkappCommand = { feePayer: { body: { publicKey: PublicKey; fee: UInt64; validUntil?: UInt32; nonce: UInt32; }; authorization: string; }; accountUpdates: { body: { publicKey: PublicKey; tokenId: TokenId; update: { appState: { isSome: Bool; value: Field }[]; delegate: { isSome: Bool; value: PublicKey }; verificationKey: { isSome: Bool; value: { data: string; hash: Field; }; }; permissions: { isSome: Bool; value: { editState: AuthRequired; access: AuthRequired; send: AuthRequired; receive: AuthRequired; setDelegate: AuthRequired; setPermissions: AuthRequired; setVerificationKey: AuthRequired; setZkappUri: AuthRequired; editActionState: AuthRequired; setTokenSymbol: AuthRequired; incrementNonce: AuthRequired; setVotingFor: AuthRequired; setTiming: AuthRequired; }; }; zkappUri: { isSome: Bool; value: { data: string; hash: Field; }; }; tokenSymbol: { isSome: Bool; value: { symbol: string; field: Field; }; }; timing: { isSome: Bool; value: { initialMinimumBalance: UInt64; cliffTime: UInt32; cliffAmount: UInt64; vestingPeriod: UInt32; vestingIncrement: UInt64; }; }; votingFor: { isSome: Bool; value: Field }; }; balanceChange: { magnitude: UInt64; sgn: Sign; }; incrementNonce: Bool; events: { data: Field[][]; hash: Field; }; actions: { data: Field[][]; hash: Field; }; callData: Field; callDepth: number; preconditions: { network: { snarkedLedgerHash: { isSome: Bool; value: Field }; blockchainLength: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; minWindowDensity: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; totalCurrency: { isSome: Bool; value: { lower: UInt64; upper: UInt64; }; }; globalSlotSinceGenesis: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; stakingEpochData: { ledger: { hash: { isSome: Bool; value: Field }; totalCurrency: { isSome: Bool; value: { lower: UInt64; upper: UInt64; }; }; }; seed: { isSome: Bool; value: Field }; startCheckpoint: { isSome: Bool; value: Field }; lockCheckpoint: { isSome: Bool; value: Field }; epochLength: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; }; nextEpochData: { ledger: { hash: { isSome: Bool; value: Field }; totalCurrency: { isSome: Bool; value: { lower: UInt64; upper: UInt64; }; }; }; seed: { isSome: Bool; value: Field }; startCheckpoint: { isSome: Bool; value: Field }; lockCheckpoint: { isSome: Bool; value: Field }; epochLength: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; }; }; account: { balance: { isSome: Bool; value: { lower: UInt64; upper: UInt64; }; }; nonce: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; receiptChainHash: { isSome: Bool; value: Field }; delegate: { isSome: Bool; value: PublicKey }; state: { isSome: Bool; value: Field }[]; actionState: { isSome: Bool; value: Field }; provedState: { isSome: Bool; value: Bool }; isNew: { isSome: Bool; value: Bool }; }; validWhile: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; }; useFullCommitment: Bool; implicitAccountCreationFee: Bool; mayUseToken: { parentsOwnToken: Bool; inheritFromParent: Bool; }; authorizationKind: { isSigned: Bool; isProved: Bool; verificationKeyHash: Field; }; }; authorization: { proof?: string; signature?: string; }; }[]; memo: string; }; let ZkappCommand = provableFromLayout( jsLayout.ZkappCommand as any ); type AccountUpdate = { body: { publicKey: PublicKey; tokenId: TokenId; update: { appState: { isSome: Bool; value: Field }[]; delegate: { isSome: Bool; value: PublicKey }; verificationKey: { isSome: Bool; value: { data: string; hash: Field; }; }; permissions: { isSome: Bool; value: { editState: AuthRequired; access: AuthRequired; send: AuthRequired; receive: AuthRequired; setDelegate: AuthRequired; setPermissions: AuthRequired; setVerificationKey: AuthRequired; setZkappUri: AuthRequired; editActionState: AuthRequired; setTokenSymbol: AuthRequired; incrementNonce: AuthRequired; setVotingFor: AuthRequired; setTiming: AuthRequired; }; }; zkappUri: { isSome: Bool; value: { data: string; hash: Field; }; }; tokenSymbol: { isSome: Bool; value: { symbol: string; field: Field; }; }; timing: { isSome: Bool; value: { initialMinimumBalance: UInt64; cliffTime: UInt32; cliffAmount: UInt64; vestingPeriod: UInt32; vestingIncrement: UInt64; }; }; votingFor: { isSome: Bool; value: Field }; }; balanceChange: { magnitude: UInt64; sgn: Sign; }; incrementNonce: Bool; events: { data: Field[][]; hash: Field; }; actions: { data: Field[][]; hash: Field; }; callData: Field; callDepth: number; preconditions: { network: { snarkedLedgerHash: { isSome: Bool; value: Field }; blockchainLength: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; minWindowDensity: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; totalCurrency: { isSome: Bool; value: { lower: UInt64; upper: UInt64; }; }; globalSlotSinceGenesis: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; stakingEpochData: { ledger: { hash: { isSome: Bool; value: Field }; totalCurrency: { isSome: Bool; value: { lower: UInt64; upper: UInt64; }; }; }; seed: { isSome: Bool; value: Field }; startCheckpoint: { isSome: Bool; value: Field }; lockCheckpoint: { isSome: Bool; value: Field }; epochLength: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; }; nextEpochData: { ledger: { hash: { isSome: Bool; value: Field }; totalCurrency: { isSome: Bool; value: { lower: UInt64; upper: UInt64; }; }; }; seed: { isSome: Bool; value: Field }; startCheckpoint: { isSome: Bool; value: Field }; lockCheckpoint: { isSome: Bool; value: Field }; epochLength: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; }; }; account: { balance: { isSome: Bool; value: { lower: UInt64; upper: UInt64; }; }; nonce: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; receiptChainHash: { isSome: Bool; value: Field }; delegate: { isSome: Bool; value: PublicKey }; state: { isSome: Bool; value: Field }[]; actionState: { isSome: Bool; value: Field }; provedState: { isSome: Bool; value: Bool }; isNew: { isSome: Bool; value: Bool }; }; validWhile: { isSome: Bool; value: { lower: UInt32; upper: UInt32; }; }; }; useFullCommitment: Bool; implicitAccountCreationFee: Bool; mayUseToken: { parentsOwnToken: Bool; inheritFromParent: Bool; }; authorizationKind: { isSigned: Bool; isProved: Bool; verificationKeyHash: Field; }; }; authorization: { proof?: string; signature?: string; }; }; let AccountUpdate = provableFromLayout( jsLayout.AccountUpdate as any ); type Account = { publicKey: PublicKey; tokenId: TokenId; tokenSymbol: string; balance: UInt64; nonce: UInt32; receiptChainHash: Field; delegate?: PublicKey; votingFor: Field; timing: { isTimed: Bool; initialMinimumBalance: UInt64; cliffTime: UInt32; cliffAmount: UInt64; vestingPeriod: UInt32; vestingIncrement: UInt64; }; permissions: { editState: AuthRequired; access: AuthRequired; send: AuthRequired; receive: AuthRequired; setDelegate: AuthRequired; setPermissions: AuthRequired; setVerificationKey: AuthRequired; setZkappUri: AuthRequired; editActionState: AuthRequired; setTokenSymbol: AuthRequired; incrementNonce: AuthRequired; setVotingFor: AuthRequired; setTiming: AuthRequired; }; zkapp?: { appState: Field[]; verificationKey?: { data: string; hash: Field; }; zkappVersion: UInt32; actionState: Field[]; lastActionSlot: UInt32; provedState: Bool; zkappUri: string; }; }; let Account = provableFromLayout( jsLayout.Account as any );