UNPKG

o1js

Version:

TypeScript framework for zk-SNARKs and zkApps

446 lines (427 loc) 13.5 kB
// @generated this file is auto-generated - don't edit it directly import { PublicKey, UInt64, UInt32, TokenId, Field, AuthRequired, BalanceChange, Sign, Bool, TransactionVersion, ZkappUri, TokenSymbol, StateHash, Events, Actions, ActionState, MayUseToken, VerificationKeyHash, ReceiptChainHash } from '../../v1/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 * as Value from './transaction-bigint.js'; import { jsLayout } from './js-layout.js'; export { customTypes, ZkappCommand, AccountUpdate, Account }; export { Json }; export * from '../../v1/transaction-leaves.js'; export { provableFromLayout, toJSONEssential, empty, Layout, TypeMap }; type TypeMap = { PublicKey: PublicKey; UInt64: UInt64; UInt32: UInt32; TokenId: TokenId; Field: Field; AuthRequired: AuthRequired; BalanceChange: BalanceChange; Sign: Sign; Bool: Bool; } const TypeMap: { [K in keyof TypeMap]: ProvableExtended<TypeMap[K], Value.TypeMap[K], Json.TypeMap[K]>; } = { PublicKey, UInt64, UInt32, TokenId, Field, AuthRequired, BalanceChange, Sign, Bool } type ProvableExtended<T, TValue, TJson> = GenericProvableExtended<T, TValue, TJson, Field>; type Layout = GenericLayout<TypeMap>; type CustomTypes = { TransactionVersion: ProvableExtended<UInt32, Value.TypeMap["UInt32"], Json.TypeMap["UInt32"]>; ZkappUri: ProvableExtended<{ data: string; hash: Field; }, { data: string; hash: Value.TypeMap["Field"]; }, string>; TokenSymbol: ProvableExtended<{ symbol: string; field: Field; }, { symbol: string; field: Value.TypeMap["Field"]; }, string>; StateHash: ProvableExtended<Field, Value.TypeMap["Field"], Json.TypeMap["Field"]>; BalanceChange: ProvableExtended<BalanceChange, Value.TypeMap["BalanceChange"], { magnitude: Json.TypeMap["UInt64"]; sgn: Json.TypeMap["Sign"]; }>; Events: ProvableExtended<{ data: Field[][]; hash: Field; }, { data: Value.TypeMap["Field"][][]; hash: Value.TypeMap["Field"]; }, Json.TypeMap["Field"][][]>; Actions: ProvableExtended<{ data: Field[][]; hash: Field; }, { data: Value.TypeMap["Field"][][]; hash: Value.TypeMap["Field"]; }, Json.TypeMap["Field"][][]>; ActionState: ProvableExtended<Field, Value.TypeMap["Field"], Json.TypeMap["Field"]>; MayUseToken: ProvableExtended<{ parentsOwnToken: Bool; inheritFromParent: Bool; }, { parentsOwnToken: Value.TypeMap["Bool"]; inheritFromParent: Value.TypeMap["Bool"]; }, { parentsOwnToken: Json.TypeMap["Bool"]; inheritFromParent: Json.TypeMap["Bool"]; }>; VerificationKeyHash: ProvableExtended<Field, Value.TypeMap["Field"], Json.TypeMap["Field"]>; ReceiptChainHash: ProvableExtended<Field, Value.TypeMap["Field"], Json.TypeMap["Field"]>; } let customTypes: CustomTypes = { TransactionVersion, ZkappUri, TokenSymbol, StateHash, BalanceChange, Events, Actions, ActionState, MayUseToken, VerificationKeyHash, ReceiptChainHash }; let { provableFromLayout, toJSONEssential, empty } = ProvableFromLayout<TypeMap, Value.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: { auth: AuthRequired; txnVersion: UInt32; }; 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: BalanceChange; 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<ZkappCommand, Value.ZkappCommand, Json.ZkappCommand>(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: { auth: AuthRequired; txnVersion: UInt32; }; 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: BalanceChange; 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<AccountUpdate, Value.AccountUpdate, Json.AccountUpdate>(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: { auth: AuthRequired; txnVersion: UInt32; }; 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<Account, Value.Account, Json.Account>(jsLayout.Account as any);