UNPKG

o1js

Version:

TypeScript framework for zk-SNARKs and zkApps

599 lines (598 loc) 20.1 kB
import { BindingsType } from '../../v2/schema.js'; import { Actions, AuthRequired, Bool, Events, Field, Int64, Option, PublicKey, Range, StateHash, TokenId, TokenSymbol, UInt32, UInt64, ZkappUri } from '../../v2/leaves.js'; export { Types, ZkappCommand, ZkappFeePayer, FeePayerBody, ZkappAccountUpdate, AccountUpdateBody, AccountUpdateModification, VerificationKeyWithHash, Permissions, VerificationKeyPermission, Timing, Preconditions, NetworkPrecondition, EpochDataPrecondition, EpochLedgerPrecondition, AccountPrecondition, MayUseToken, AuthorizationKindStructured, Control, Account, AccountTiming, ZkappAccount, }; type FeePayerBody = { publicKey: PublicKey; fee: UInt64; validUntil: UInt32 | undefined; nonce: UInt32; }; declare const FeePayerBody: BindingsType.Object<FeePayerBody>; type VerificationKeyWithHash = { data: string; hash: Field; }; declare const VerificationKeyWithHash: BindingsType.Object<VerificationKeyWithHash>; type VerificationKeyPermission = { auth: AuthRequired; txnVersion: UInt32; }; declare const VerificationKeyPermission: BindingsType.Object<VerificationKeyPermission>; type Timing = { initialMinimumBalance: UInt64; cliffTime: UInt32; cliffAmount: UInt64; vestingPeriod: UInt32; vestingIncrement: UInt64; }; declare const Timing: BindingsType.Object<Timing>; type EpochLedgerPrecondition = { hash: Option<Field>; totalCurrency: Option<Range<UInt64>>; }; declare const EpochLedgerPrecondition: BindingsType.Object<EpochLedgerPrecondition>; type AccountPrecondition = { balance: Option<Range<UInt64>>; nonce: Option<Range<UInt32>>; receiptChainHash: Option<Field>; delegate: Option<PublicKey>; state: Option<Field>[]; actionState: Option<Field>; provedState: Option<Bool>; isNew: Option<Bool>; }; declare const AccountPrecondition: BindingsType.Object<AccountPrecondition>; type MayUseToken = { parentsOwnToken: Bool; inheritFromParent: Bool; }; declare const MayUseToken: BindingsType.Object<MayUseToken>; type AuthorizationKindStructured = { isSigned: Bool; isProved: Bool; verificationKeyHash: Field; }; declare const AuthorizationKindStructured: BindingsType.Object<AuthorizationKindStructured>; type Control = { proof: string | undefined; signature: string | undefined; }; declare const Control: BindingsType.Object<Control>; type AccountTiming = { isTimed: Bool; initialMinimumBalance: UInt64; cliffTime: UInt32; cliffAmount: UInt64; vestingPeriod: UInt32; vestingIncrement: UInt64; }; declare const AccountTiming: BindingsType.Object<AccountTiming>; type ZkappFeePayer = { body: { publicKey: PublicKey; fee: UInt64; validUntil: UInt32 | undefined; nonce: UInt32; }; authorization: string; }; declare const ZkappFeePayer: BindingsType.Object<ZkappFeePayer>; type 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; }; declare const Permissions: BindingsType.Object<Permissions>; type EpochDataPrecondition = { ledger: { hash: Option<Field>; totalCurrency: Option<Range<UInt64>>; }; seed: Option<Field>; startCheckpoint: Option<Field>; lockCheckpoint: Option<Field>; epochLength: Option<Range<UInt32>>; }; declare const EpochDataPrecondition: BindingsType.Object<EpochDataPrecondition>; type ZkappAccount = { appState: Field[]; verificationKey: { data: string; hash: Field; } | undefined; zkappVersion: UInt32; actionState: Field[]; lastActionSlot: UInt32; provedState: Bool; zkappUri: string; }; declare const ZkappAccount: BindingsType.Object<ZkappAccount>; type AccountUpdateModification = { appState: Option<Field>[]; delegate: Option<PublicKey>; verificationKey: Option<{ data: string; hash: Field; }>; permissions: Option<{ 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: Option<ZkappUri>; tokenSymbol: Option<TokenSymbol>; timing: Option<{ initialMinimumBalance: UInt64; cliffTime: UInt32; cliffAmount: UInt64; vestingPeriod: UInt32; vestingIncrement: UInt64; }>; votingFor: Option<StateHash>; }; declare const AccountUpdateModification: BindingsType.Object<AccountUpdateModification>; type NetworkPrecondition = { snarkedLedgerHash: Option<Field>; blockchainLength: Option<Range<UInt32>>; minWindowDensity: Option<Range<UInt32>>; totalCurrency: Option<Range<UInt64>>; globalSlotSinceGenesis: Option<Range<UInt32>>; stakingEpochData: { ledger: { hash: Option<Field>; totalCurrency: Option<Range<UInt64>>; }; seed: Option<Field>; startCheckpoint: Option<Field>; lockCheckpoint: Option<Field>; epochLength: Option<Range<UInt32>>; }; nextEpochData: { ledger: { hash: Option<Field>; totalCurrency: Option<Range<UInt64>>; }; seed: Option<Field>; startCheckpoint: Option<Field>; lockCheckpoint: Option<Field>; epochLength: Option<Range<UInt32>>; }; }; declare const NetworkPrecondition: BindingsType.Object<NetworkPrecondition>; type Account = { publicKey: PublicKey; tokenId: TokenId; tokenSymbol: string; balance: UInt64; nonce: UInt32; receiptChainHash: Field; delegate: PublicKey | undefined; 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; } | undefined; zkappVersion: UInt32; actionState: Field[]; lastActionSlot: UInt32; provedState: Bool; zkappUri: string; } | undefined; }; declare const Account: BindingsType.Object<Account>; type Preconditions = { network: { snarkedLedgerHash: Option<Field>; blockchainLength: Option<Range<UInt32>>; minWindowDensity: Option<Range<UInt32>>; totalCurrency: Option<Range<UInt64>>; globalSlotSinceGenesis: Option<Range<UInt32>>; stakingEpochData: { ledger: { hash: Option<Field>; totalCurrency: Option<Range<UInt64>>; }; seed: Option<Field>; startCheckpoint: Option<Field>; lockCheckpoint: Option<Field>; epochLength: Option<Range<UInt32>>; }; nextEpochData: { ledger: { hash: Option<Field>; totalCurrency: Option<Range<UInt64>>; }; seed: Option<Field>; startCheckpoint: Option<Field>; lockCheckpoint: Option<Field>; epochLength: Option<Range<UInt32>>; }; }; account: { balance: Option<Range<UInt64>>; nonce: Option<Range<UInt32>>; receiptChainHash: Option<Field>; delegate: Option<PublicKey>; state: Option<Field>[]; actionState: Option<Field>; provedState: Option<Bool>; isNew: Option<Bool>; }; validWhile: Option<Range<UInt32>>; }; declare const Preconditions: BindingsType.Object<Preconditions>; type AccountUpdateBody = { publicKey: PublicKey; tokenId: TokenId; update: { appState: Option<Field>[]; delegate: Option<PublicKey>; verificationKey: Option<{ data: string; hash: Field; }>; permissions: Option<{ 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: Option<ZkappUri>; tokenSymbol: Option<TokenSymbol>; timing: Option<{ initialMinimumBalance: UInt64; cliffTime: UInt32; cliffAmount: UInt64; vestingPeriod: UInt32; vestingIncrement: UInt64; }>; votingFor: Option<StateHash>; }; balanceChange: Int64; incrementNonce: Bool; events: Events; actions: Actions; callData: Field; callDepth: number; preconditions: { network: { snarkedLedgerHash: Option<Field>; blockchainLength: Option<Range<UInt32>>; minWindowDensity: Option<Range<UInt32>>; totalCurrency: Option<Range<UInt64>>; globalSlotSinceGenesis: Option<Range<UInt32>>; stakingEpochData: { ledger: { hash: Option<Field>; totalCurrency: Option<Range<UInt64>>; }; seed: Option<Field>; startCheckpoint: Option<Field>; lockCheckpoint: Option<Field>; epochLength: Option<Range<UInt32>>; }; nextEpochData: { ledger: { hash: Option<Field>; totalCurrency: Option<Range<UInt64>>; }; seed: Option<Field>; startCheckpoint: Option<Field>; lockCheckpoint: Option<Field>; epochLength: Option<Range<UInt32>>; }; }; account: { balance: Option<Range<UInt64>>; nonce: Option<Range<UInt32>>; receiptChainHash: Option<Field>; delegate: Option<PublicKey>; state: Option<Field>[]; actionState: Option<Field>; provedState: Option<Bool>; isNew: Option<Bool>; }; validWhile: Option<Range<UInt32>>; }; useFullCommitment: Bool; implicitAccountCreationFee: Bool; mayUseToken: { parentsOwnToken: Bool; inheritFromParent: Bool; }; authorizationKind: { isSigned: Bool; isProved: Bool; verificationKeyHash: Field; }; }; declare const AccountUpdateBody: BindingsType.Object<AccountUpdateBody>; type ZkappAccountUpdate = { body: { publicKey: PublicKey; tokenId: TokenId; update: { appState: Option<Field>[]; delegate: Option<PublicKey>; verificationKey: Option<{ data: string; hash: Field; }>; permissions: Option<{ 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: Option<ZkappUri>; tokenSymbol: Option<TokenSymbol>; timing: Option<{ initialMinimumBalance: UInt64; cliffTime: UInt32; cliffAmount: UInt64; vestingPeriod: UInt32; vestingIncrement: UInt64; }>; votingFor: Option<StateHash>; }; balanceChange: Int64; incrementNonce: Bool; events: Events; actions: Actions; callData: Field; callDepth: number; preconditions: { network: { snarkedLedgerHash: Option<Field>; blockchainLength: Option<Range<UInt32>>; minWindowDensity: Option<Range<UInt32>>; totalCurrency: Option<Range<UInt64>>; globalSlotSinceGenesis: Option<Range<UInt32>>; stakingEpochData: { ledger: { hash: Option<Field>; totalCurrency: Option<Range<UInt64>>; }; seed: Option<Field>; startCheckpoint: Option<Field>; lockCheckpoint: Option<Field>; epochLength: Option<Range<UInt32>>; }; nextEpochData: { ledger: { hash: Option<Field>; totalCurrency: Option<Range<UInt64>>; }; seed: Option<Field>; startCheckpoint: Option<Field>; lockCheckpoint: Option<Field>; epochLength: Option<Range<UInt32>>; }; }; account: { balance: Option<Range<UInt64>>; nonce: Option<Range<UInt32>>; receiptChainHash: Option<Field>; delegate: Option<PublicKey>; state: Option<Field>[]; actionState: Option<Field>; provedState: Option<Bool>; isNew: Option<Bool>; }; validWhile: Option<Range<UInt32>>; }; useFullCommitment: Bool; implicitAccountCreationFee: Bool; mayUseToken: { parentsOwnToken: Bool; inheritFromParent: Bool; }; authorizationKind: { isSigned: Bool; isProved: Bool; verificationKeyHash: Field; }; }; authorization: { proof: string | undefined; signature: string | undefined; }; }; declare const ZkappAccountUpdate: BindingsType.Object<ZkappAccountUpdate>; type ZkappCommand = { feePayer: { body: { publicKey: PublicKey; fee: UInt64; validUntil: UInt32 | undefined; nonce: UInt32; }; authorization: string; }; accountUpdates: { body: { publicKey: PublicKey; tokenId: TokenId; update: { appState: Option<Field>[]; delegate: Option<PublicKey>; verificationKey: Option<{ data: string; hash: Field; }>; permissions: Option<{ 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: Option<ZkappUri>; tokenSymbol: Option<TokenSymbol>; timing: Option<{ initialMinimumBalance: UInt64; cliffTime: UInt32; cliffAmount: UInt64; vestingPeriod: UInt32; vestingIncrement: UInt64; }>; votingFor: Option<StateHash>; }; balanceChange: Int64; incrementNonce: Bool; events: Events; actions: Actions; callData: Field; callDepth: number; preconditions: { network: { snarkedLedgerHash: Option<Field>; blockchainLength: Option<Range<UInt32>>; minWindowDensity: Option<Range<UInt32>>; totalCurrency: Option<Range<UInt64>>; globalSlotSinceGenesis: Option<Range<UInt32>>; stakingEpochData: { ledger: { hash: Option<Field>; totalCurrency: Option<Range<UInt64>>; }; seed: Option<Field>; startCheckpoint: Option<Field>; lockCheckpoint: Option<Field>; epochLength: Option<Range<UInt32>>; }; nextEpochData: { ledger: { hash: Option<Field>; totalCurrency: Option<Range<UInt64>>; }; seed: Option<Field>; startCheckpoint: Option<Field>; lockCheckpoint: Option<Field>; epochLength: Option<Range<UInt32>>; }; }; account: { balance: Option<Range<UInt64>>; nonce: Option<Range<UInt32>>; receiptChainHash: Option<Field>; delegate: Option<PublicKey>; state: Option<Field>[]; actionState: Option<Field>; provedState: Option<Bool>; isNew: Option<Bool>; }; validWhile: Option<Range<UInt32>>; }; useFullCommitment: Bool; implicitAccountCreationFee: Bool; mayUseToken: { parentsOwnToken: Bool; inheritFromParent: Bool; }; authorizationKind: { isSigned: Bool; isProved: Bool; verificationKeyHash: Field; }; }; authorization: { proof: string | undefined; signature: string | undefined; }; }[]; memo: string; }; declare const ZkappCommand: BindingsType.Object<ZkappCommand>; declare const Types: { [key: string]: BindingsType<any>; };