@silvana-one/nft
Version:
Mina NFT library
474 lines (473 loc) • 26.1 kB
TypeScript
/**
* The `NFTAdvancedAdminContract` is an implementation of an admin contract that uses a whitelist to control access to certain actions within the NFT ecosystem.
* This contract ensures that only whitelisted addresses can perform specific actions such as minting, updating, transferring, buying, or selling NFTs.
* It also introduces functionality for pausing and resuming the contract, upgrading the contract's verification key, and transferring ownership.
*/
import { Bool, DeployArgs, PublicKey, SmartContract, State, VerificationKey, UInt64, Field, AccountUpdate, UInt32 } from "o1js";
import { Whitelist } from "@silvana-one/storage";
import { MintRequest, NFTState, MintParamsOption, PauseEvent, OwnershipChangeEvent, TransferEvent } from "../interfaces/index.js";
import { UpgradeAuthorityBase, UpgradeAuthorityContractConstructor } from "@silvana-one/upgradable";
export { NFTAdvancedAdminContract, AdminData, NFTAdvancedAdminDeployProps };
/**
* Deployment properties for the `NFTAdvancedAdminContract`.
*/
interface NFTAdvancedAdminDeployProps extends Exclude<DeployArgs, undefined> {
/** The public key of the admin or owner of the contract. */
admin: PublicKey;
/** The public key of the Upgrade Authority Contract. */
upgradeAuthority: PublicKey;
/** The whitelist. */
whitelist: Whitelist;
/** The URI of the zkApp. */
uri: string;
/** The admin data. */
adminData: AdminData;
}
declare const AdminData_base: (new (value: {
canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeRoyalty: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeTransferFee: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeBaseUri: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeCreator: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeAdmin: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}) => {
canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeRoyalty: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeTransferFee: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeBaseUri: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeCreator: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeAdmin: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}) & {
_isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeRoyalty: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeTransferFee: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeBaseUri: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeCreator: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeAdmin: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}, {
canPause: boolean;
isPaused: boolean;
allowChangeRoyalty: boolean;
allowChangeTransferFee: boolean;
allowChangeBaseUri: boolean;
allowChangeCreator: boolean;
allowChangeAdmin: boolean;
allowChangeName: boolean;
}>, "fromFields"> & {
fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeRoyalty: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeTransferFee: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeBaseUri: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeCreator: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeAdmin: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
};
} & {
fromValue: (value: {
canPause: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
isPaused: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeRoyalty: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeTransferFee: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeBaseUri: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeCreator: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeAdmin: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeName: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}) => {
canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeRoyalty: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeTransferFee: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeBaseUri: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeCreator: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeAdmin: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
};
toInput: (x: {
canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeRoyalty: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeTransferFee: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeBaseUri: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeCreator: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeAdmin: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}) => {
fields?: Field[] | undefined;
packed?: [Field, number][] | undefined;
};
toJSON: (x: {
canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeRoyalty: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeTransferFee: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeBaseUri: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeCreator: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeAdmin: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}) => {
canPause: boolean;
isPaused: boolean;
allowChangeRoyalty: boolean;
allowChangeTransferFee: boolean;
allowChangeBaseUri: boolean;
allowChangeCreator: boolean;
allowChangeAdmin: boolean;
allowChangeName: boolean;
};
fromJSON: (x: {
canPause: boolean;
isPaused: boolean;
allowChangeRoyalty: boolean;
allowChangeTransferFee: boolean;
allowChangeBaseUri: boolean;
allowChangeCreator: boolean;
allowChangeAdmin: boolean;
allowChangeName: boolean;
}) => {
canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeRoyalty: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeTransferFee: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeBaseUri: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeCreator: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeAdmin: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
};
empty: () => {
canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeRoyalty: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeTransferFee: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeBaseUri: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeCreator: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeAdmin: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
allowChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
};
};
/**
* Represents pause-related data, containing flags for pause functionality.
*/
declare class AdminData extends AdminData_base {
static new(params?: {
canPause?: boolean;
isPaused?: boolean;
allowChangeRoyalty?: boolean;
allowChangeTransferFee?: boolean;
allowChangeBaseUri?: boolean;
allowChangeCreator?: boolean;
allowChangeAdmin?: boolean;
allowChangeName?: boolean;
}): AdminData;
/**
* Packs the pause data into a `Field`.
* @returns A `Field` representing the packed pause data.
*/
pack(): Field;
/**
* Unpacks a `Field` into `PauseData`.
* @param field The `Field` to unpack.
* @returns An instance of `PauseData`.
*/
static unpack(field: Field): AdminData;
static isPaused(field: Field): Bool;
}
/**
* Constructs the `NFTAdvancedAdmin` class, an admin contract that uses a whitelist to control access.
* @param params Object containing the upgrade contract constructor.
* @returns The `NFTAdvancedAdmin` class.
*/
declare function NFTAdvancedAdminContract(params: {
upgradeContract: UpgradeAuthorityContractConstructor;
}): {
new (address: PublicKey, tokenId?: Field): {
/** The public key of the admin or owner of the contract. */
admin: State<PublicKey>;
/** The public key of the Upgrade Authority Contract. */
upgradeAuthority: State<PublicKey>;
/** The root hash of the Merkle tree representing the whitelist. */
whitelist: State<Whitelist>;
/** Packed field containing pause-related flags. */
data: State<import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
/**
* Deploys the `NFTWhitelistedAdmin` contract with the provided initial settings.
* @param props Deployment properties.
*/
deploy(props: NFTAdvancedAdminDeployProps): Promise<void>;
events: {
/** Emitted when the contract's verification key is upgraded. */
upgradeVerificationKey: typeof import("node_modules/o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("node_modules/o1js/dist/node/lib/provable/field.js").Field) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field);
/** Emitted when the contract is paused. */
pause: typeof PauseEvent;
/** Emitted when the contract is resumed. */
resume: typeof PauseEvent;
/** Emitted when ownership of the contract changes. */
ownershipChange: typeof OwnershipChangeEvent;
/** Emitted when the whitelist is updated. */
updateWhitelist: typeof Whitelist;
};
/**
* Ensures that the transaction is authorized by the contract owner.
* @returns An `AccountUpdate` representing the admin's signed transaction.
*/
ensureOwnerSignature(): Promise<AccountUpdate>;
/** Gets the upgrade contract constructor. */
get getUpgradeContractConstructor(): UpgradeAuthorityContractConstructor;
/**
* Retrieves the `UpgradeAuthorityBase` contract instance.
* @returns An instance of the upgrade authority contract.
*/
getUpgradeContract(): Promise<UpgradeAuthorityBase>;
/**
* Upgrades the contract's verification key using the Upgrade Authority Contract.
* @param vk The new verification key.
*/
upgradeVerificationKey(vk: VerificationKey): Promise<void>;
/**
* Determines if the minting request can proceed by checking if the owner and sender are whitelisted.
* @param mintRequest The minting request parameters.
* @returns A `MintParamsOption` indicating if minting is allowed.
*/
canMint(mintRequest: MintRequest): Promise<MintParamsOption>;
/**
* Checks whether the NFT's state can be updated, ensuring the new owner is whitelisted.
* @param input The current state of the NFT.
* @param output The desired new state of the NFT.
* @returns A `Bool` indicating whether the update is permitted.
*/
canUpdate(input: NFTState, output: NFTState): Promise<import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool>;
/**
* Verifies if the transfer between `from` and `to` addresses is allowed based on whitelist status.
* @param address The address of the NFT.
* @param from The sender's public key.
* @param to The receiver's public key.
* @returns A `Bool` indicating whether the transfer is permitted.
*/
canTransfer(transferEvent: TransferEvent): Promise<import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool>;
/**
* Updates the whitelist's Merkle root and the associated off-chain storage reference.
* @param whitelistRoot The new whitelist root.
* @param storage The storage reference for the whitelist data.
*/
updateWhitelist(whitelist: Whitelist): Promise<void>;
/**
* Pauses the contract, preventing certain administrative actions from being performed.
*/
pause(): Promise<void>;
/**
* Resumes the contract, allowing administrative actions to be performed again.
*/
resume(): Promise<void>;
/**
* Transfers ownership of the contract to a new admin.
* @param newOwner The public key of the new admin.
* @returns The public key of the old owner.
*/
transferOwnership(to: PublicKey): Promise<PublicKey>;
canChangeVerificationKey(vk: VerificationKey, address: PublicKey, tokenId: Field): Promise<Bool>;
/**
* Determines if the name can be changed for a Collection.
*/
canChangeName(name: Field): Promise<Bool>;
/**
* Determines if the creator can be changed for a Collection.
*/
canChangeCreator(creator: PublicKey): Promise<Bool>;
/**
* Determines if the base URI can be changed for a Collection.
*/
canChangeBaseUri(baseUri: Field): Promise<Bool>;
/**
* Determines if the royalty fee can be changed for a Collection.
*/
canChangeRoyalty(royaltyFee: UInt32): Promise<Bool>;
/**
* Determines if the transfer fee can be changed for a Collection.
*/
canChangeTransferFee(transferFee: UInt64): Promise<Bool>;
/**
* Determines if the admin contract can be changed for a Collection.
*/
canSetAdmin(admin: PublicKey): Promise<Bool>;
/**
* Determines if the collection can be paused.
*/
canPause(): Promise<Bool>;
/**
* Determines if the collection can be resumed.
*/
canResume(): Promise<Bool>;
"__#private@#private": any;
address: PublicKey;
tokenId: Field;
init(): void;
requireSignature(): void;
skipAuthorization(): void;
get self(): AccountUpdate;
newSelf(methodName?: string): AccountUpdate;
sender: {
self: SmartContract;
getUnconstrained(): PublicKey;
getAndRequireSignature(): PublicKey;
};
get account(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Account;
get network(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").Network;
get currentSlot(): import("node_modules/o1js/dist/node/lib/mina/v1/precondition.js").CurrentSlot;
approve(update: AccountUpdate | import("o1js").AccountUpdateTree | import("o1js").AccountUpdateForest): void;
send(args: {
to: PublicKey | AccountUpdate | SmartContract;
amount: number | bigint | UInt64;
}): AccountUpdate;
get balance(): {
addInPlace(x: string | number | bigint | UInt64 | UInt32 | import("o1js").Int64): void;
subInPlace(x: string | number | bigint | UInt64 | UInt32 | import("o1js").Int64): void;
};
emitEventIf<K extends "upgradeVerificationKey" | "pause" | "resume" | "ownershipChange" | "updateWhitelist">(condition: Bool, type: K, event: any): void;
emitEvent<K extends "upgradeVerificationKey" | "pause" | "resume" | "ownershipChange" | "updateWhitelist">(type: K, event: any): void;
fetchEvents(start?: UInt32, end?: UInt32): Promise<{
type: string;
event: {
data: import("o1js").ProvablePure<any>;
transactionInfo: {
transactionHash: string;
transactionStatus: string;
transactionMemo: string;
};
};
blockHeight: UInt32;
blockHash: string;
parentBlockHash: string;
globalSlot: UInt32;
chainStatus: string;
}[]>;
};
_methods?: import("node_modules/o1js/dist/node/lib/proof-system/zkprogram.js").MethodInterface[];
_methodMetadata?: Record<string, {
actions: number;
rows: number;
digest: string;
gates: import("node_modules/o1js/dist/node/bindings.js").Gate[];
proofs: import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofClass[];
}>;
_provers?: import("node_modules/o1js/dist/node/bindings.js").Pickles.Prover[];
_verificationKey?: {
data: string;
hash: Field;
};
Proof(): {
new ({ proof, publicInput, publicOutput, maxProofsVerified, }: {
proof: unknown;
publicInput: import("o1js").ZkappPublicInput;
publicOutput: undefined;
maxProofsVerified: 0 | 2 | 1;
}): {
verify(): void;
verifyIf(condition: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool): void;
publicInput: import("o1js").ZkappPublicInput;
publicOutput: undefined;
proof: unknown;
maxProofsVerified: 0 | 2 | 1;
shouldVerify: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
declare(): boolean;
toJSON(): import("o1js").JsonProof;
publicFields(): {
input: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
output: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
};
};
publicInputType: Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
}, {
accountUpdate: bigint;
calls: bigint;
}>, "fromFields"> & {
fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
};
} & {
toInput: (x: {
accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
}) => {
fields?: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | undefined;
packed?: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, number][] | undefined;
};
toJSON: (x: {
accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
}) => {
accountUpdate: string;
calls: string;
};
fromJSON: (x: {
accountUpdate: string;
calls: string;
}) => {
accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
};
empty: () => {
accountUpdate: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
calls: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
};
};
publicOutputType: import("o1js").ProvablePureExtended<undefined, undefined, null>;
tag: () => typeof SmartContract;
fromJSON<S extends import("node_modules/o1js/dist/node/lib/util/types.js").Subclass<typeof import("o1js").Proof>>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise<import("o1js").Proof<import("o1js").InferProvable<S["publicInputType"]>, import("o1js").InferProvable<S["publicOutputType"]>>>;
dummy<Input, OutPut>(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 2 | 1, domainLog2?: number): Promise<import("o1js").Proof<Input, OutPut>>;
readonly provable: {
toFields: (value: import("o1js").Proof<any, any>) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
toAuxiliary: (value?: import("o1js").Proof<any, any> | undefined) => any[];
fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[], aux: any[]) => import("o1js").Proof<any, any>;
sizeInFields(): number;
check: (value: import("o1js").Proof<any, any>) => void;
toValue: (x: import("o1js").Proof<any, any>) => import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>;
fromValue: (x: import("o1js").Proof<any, any> | import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>) => import("o1js").Proof<any, any>;
toCanonical?: ((x: import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>) | undefined;
};
publicFields(value: import("o1js").ProofBase<any, any>): {
input: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
output: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
};
_proofFromBase64(proofString: string, maxProofsVerified: 0 | 2 | 1): unknown;
_proofToBase64(proof: unknown, maxProofsVerified: 0 | 2 | 1): string;
};
compile({ cache, forceRecompile }?: {
cache?: import("o1js").Cache | undefined;
forceRecompile?: boolean | undefined;
}): Promise<{
verificationKey: {
data: string;
hash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
};
provers: import("node_modules/o1js/dist/node/bindings.js").Pickles.Prover[];
verify: (statement: import("node_modules/o1js/dist/node/bindings.js").Pickles.Statement<import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst>, proof: unknown) => Promise<boolean>;
}>;
digest(): Promise<string>;
getMaxProofsVerified(): Promise<0 | 2 | 1>;
setVerificationKeyUnsafe(verificationKey: {
data: string;
hash: Field | string;
}): void;
runOutsideCircuit(run: () => void): void;
analyzeMethods({ printSummary }?: {
printSummary?: boolean | undefined;
}): Promise<Record<string, {
actions: number;
rows: number;
digest: string;
gates: import("node_modules/o1js/dist/node/bindings.js").Gate[];
proofs: import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofClass[];
}>>;
};