UNPKG

@silvana-one/nft

Version:
951 lines 59.1 kB
import { AccountUpdate, Bool, DeployArgs, PublicKey, SmartContract, State, VerificationKey, UInt64, Field } from "o1js"; import { FungibleTokenAdminBase } from "@silvana-one/token"; import { TransferExtendedParams } from "../interfaces/index.js"; import { Auction, AuctionFactory } from "./auction.js"; export interface NFTSharesAdminDeployProps extends Exclude<DeployArgs, undefined> { admin: PublicKey; owner: PublicKey; } export interface NFTSharesOwnerDeployProps extends Exclude<DeployArgs, undefined> { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; uri: string; } declare const NFTSharesDataPacked_base: (new (value: { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) & { _isStruct: true; } & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{ adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }, { adminX: bigint; ownerX: bigint; collectionX: bigint; nftX: bigint; auctionX: bigint; data: bigint; }>, "fromFields"> & { fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; } & { fromValue: (value: { adminX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; toInput: (x: { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }) => { adminX: string; ownerX: string; collectionX: string; nftX: string; auctionX: string; data: string; }; fromJSON: (x: { adminX: string; ownerX: string; collectionX: string; nftX: string; auctionX: string; data: string; }) => { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; empty: () => { adminX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; collectionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; nftX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; auctionX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field; }; }; export declare class NFTSharesDataPacked extends NFTSharesDataPacked_base { } declare const NFTSharesData_base: (new (value: { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }) => { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }) & { _isStruct: true; } & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{ admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }, { admin: { x: bigint; isOdd: boolean; }; owner: { x: bigint; isOdd: boolean; }; collection: { x: bigint; isOdd: boolean; }; nft: { x: bigint; isOdd: boolean; }; auction: { x: bigint; isOdd: boolean; }; maxBuyPrice: bigint; minSellPrice: bigint; }>, "fromFields"> & { fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }; } & { fromValue: (value: { admin: PublicKey | { x: Field | bigint; isOdd: Bool | boolean; }; owner: PublicKey | { x: Field | bigint; isOdd: Bool | boolean; }; collection: PublicKey | { x: Field | bigint; isOdd: Bool | boolean; }; nft: PublicKey | { x: Field | bigint; isOdd: Bool | boolean; }; auction: PublicKey | { x: Field | bigint; isOdd: Bool | boolean; }; maxBuyPrice: number | bigint | UInt64; minSellPrice: number | bigint | UInt64; }) => { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }; toInput: (x: { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }) => { admin: string; owner: string; collection: string; nft: string; auction: string; maxBuyPrice: string; minSellPrice: string; }; fromJSON: (x: { admin: string; owner: string; collection: string; nft: string; auction: string; maxBuyPrice: string; minSellPrice: string; }) => { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }; empty: () => { admin: PublicKey; owner: PublicKey; collection: PublicKey; nft: PublicKey; auction: PublicKey; maxBuyPrice: UInt64; minSellPrice: UInt64; }; }; export declare class NFTSharesData extends NFTSharesData_base { pack(): NFTSharesDataPacked; static unpack(packed: NFTSharesDataPacked): NFTSharesData; } export type DefineNFTSharesFactory = (params: { auctionContract: () => ReturnType<typeof AuctionFactory>; }) => ReturnType<typeof NFTSharesFactory>; export declare function NFTSharesFactory(params: { auctionContract: () => ReturnType<typeof AuctionFactory>; }): { NFTSharesAdmin: { new (address: PublicKey, tokenId?: Field): { admin: State<PublicKey>; owner: State<PublicKey>; deploy(props: NFTSharesAdminDeployProps): Promise<void>; updateVerificationKey(vk: VerificationKey): Promise<void>; ensureAdminSignature(): AccountUpdate; getOwner(): { /** * The public key of the contract's administrator. * This account has the authority to perform administrative actions such as pausing the contract or upgrading the verification key. */ data: State<NFTSharesDataPacked>; subscriptionOpen: State<import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool>; sharesOutstanding: State<UInt64>; /** * Deploys the contract with initial settings. * @param props - Deployment properties including admin, upgradeAuthority, uri, canPause, and isPaused. */ deploy(props: NFTSharesOwnerDeployProps): Promise<void>; /** * Ensures that the transaction is authorized by the contract owner. * @returns A signed `AccountUpdate` from the admin. */ ensureOwnerSignature(): NFTSharesData; getAuction(auction: PublicKey): { auctionData: State<import("./auction.js").AuctionPacked>; bidAmount: State<UInt64>; settled: State<import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool>; deploy(args: import("./auction.js").NonFungibleTokenAuctionContractDeployProps): Promise<void>; events: { bid: typeof import("./auction.js").AuctionBidEvent; settleAuction: typeof import("../interfaces/types.js").TransferByProofParams; canTransfer: typeof import("../interfaces/events.js").TransferEvent; settlePayment: typeof UInt64; settleAuctioneerPayment: typeof UInt64; withdraw: typeof UInt64; }; getCollectionContract(address: PublicKey): import("../interfaces/collection.js").NFTCollectionBase; calculateSaleFee(params: { price: UInt64; saleFee: import("o1js").UInt32; transferFee: UInt64; }): UInt64; bid(price: UInt64, bidder: PublicKey): Promise<Auction>; getAuctionState(): Promise<import("./auction.js").AuctionState>; settleAuction(): Promise<void>; withdrawNFT(): Promise<void>; canTransfer(params: TransferExtendedParams): Promise<Bool>; settlePayment(): Promise<void>; settleAuctioneerPayment(amount: UInt64): Promise<void>; withdraw(): Promise<void>; "__#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 | import("o1js").UInt32 | import("o1js").Int64): void; subInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; }; emitEventIf<K extends "canTransfer" | "withdraw" | "bid" | "settleAuction" | "settlePayment" | "settleAuctioneerPayment">(condition: Bool, type: K, event: any): void; emitEvent<K extends "canTransfer" | "withdraw" | "bid" | "settleAuction" | "settlePayment" | "settleAuctioneerPayment">(type: K, event: any): void; fetchEvents(start?: import("o1js").UInt32, end?: import("o1js").UInt32): Promise<{ type: string; event: { data: import("o1js").ProvablePure<any>; transactionInfo: { transactionHash: string; transactionStatus: string; transactionMemo: string; }; }; blockHeight: import("o1js").UInt32; blockHash: string; parentBlockHash: string; globalSlot: import("o1js").UInt32; chainStatus: string; }[]>; }; /** * Allows the owner to mint shares. * This method should NOT called directly, but through the FungibleToken.mint() * * @param _accountUpdate - The account update containing the sender's information. * @returns A boolean indicating if the minting is allowed. */ canMint(_accountUpdate: AccountUpdate): Promise<Bool>; withdraw(shares: UInt64): Promise<void>; closeSubscription(): Promise<void>; bid(price: UInt64): Promise<void>; canTransfer(params: TransferExtendedParams): Promise<Bool>; canPause(collection: PublicKey, nft: PublicKey): Promise<Bool>; canResume(collection: PublicKey, nft: PublicKey): Promise<Bool>; canChangeVerificationKey(collection: PublicKey, nft: PublicKey, vk: VerificationKey): Promise<Bool>; canApproveAddress(collection: PublicKey, nft: PublicKey, approved: PublicKey): 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 | import("o1js").UInt32 | import("o1js").Int64): void; subInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; }; events: { [key: string]: import("o1js").FlexibleProvablePure<any>; }; emitEventIf<K extends string | number>(condition: Bool, type: K, event: any): void; emitEvent<K extends string | number>(type: K, event: any): void; fetchEvents(start?: import("o1js").UInt32, end?: import("o1js").UInt32): Promise<{ type: string; event: { data: import("o1js").ProvablePure<any>; transactionInfo: { transactionHash: string; transactionStatus: string; transactionMemo: string; }; }; blockHeight: import("o1js").UInt32; blockHash: string; parentBlockHash: string; globalSlot: import("o1js").UInt32; chainStatus: string; }[]>; }; canMint(_accountUpdate: AccountUpdate): Promise<import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool>; canChangeAdmin(_admin: PublicKey): Promise<import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool>; canPause(): Promise<Bool>; canResume(): Promise<Bool>; canChangeVerificationKey(_vk: VerificationKey): 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 | import("o1js").UInt32 | import("o1js").Int64): void; subInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; }; events: { [key: string]: import("o1js").FlexibleProvablePure<any>; }; emitEventIf<K extends string | number>(condition: Bool, type: K, event: any): void; emitEvent<K extends string | number>(type: K, event: any): void; fetchEvents(start?: import("o1js").UInt32, end?: import("o1js").UInt32): Promise<{ type: string; event: { data: import("o1js").ProvablePure<any>; transactionInfo: { transactionHash: string; transactionStatus: string; transactionMemo: string; }; }; blockHeight: import("o1js").UInt32; blockHash: string; parentBlockHash: string; globalSlot: import("o1js").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[]; }>>; }; NFTSharesOwner: { new (address: PublicKey, tokenId?: Field): { /** * The public key of the contract's administrator. * This account has the authority to perform administrative actions such as pausing the contract or upgrading the verification key. */ data: State<NFTSharesDataPacked>; subscriptionOpen: State<import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool>; sharesOutstanding: State<UInt64>; /** * Deploys the contract with initial settings. * @param props - Deployment properties including admin, upgradeAuthority, uri, canPause, and isPaused. */ deploy(props: NFTSharesOwnerDeployProps): Promise<void>; /** * Ensures that the transaction is authorized by the contract owner. * @returns A signed `AccountUpdate` from the admin. */ ensureOwnerSignature(): NFTSharesData; getAuction(auction: PublicKey): { auctionData: State<import("./auction.js").AuctionPacked>; bidAmount: State<UInt64>; settled: State<import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool>; deploy(args: import("./auction.js").NonFungibleTokenAuctionContractDeployProps): Promise<void>; events: { bid: typeof import("./auction.js").AuctionBidEvent; settleAuction: typeof import("../interfaces/types.js").TransferByProofParams; canTransfer: typeof import("../interfaces/events.js").TransferEvent; settlePayment: typeof UInt64; settleAuctioneerPayment: typeof UInt64; withdraw: typeof UInt64; }; getCollectionContract(address: PublicKey): import("../interfaces/collection.js").NFTCollectionBase; calculateSaleFee(params: { price: UInt64; saleFee: import("o1js").UInt32; transferFee: UInt64; }): UInt64; bid(price: UInt64, bidder: PublicKey): Promise<Auction>; getAuctionState(): Promise<import("./auction.js").AuctionState>; settleAuction(): Promise<void>; withdrawNFT(): Promise<void>; canTransfer(params: TransferExtendedParams): Promise<Bool>; settlePayment(): Promise<void>; settleAuctioneerPayment(amount: UInt64): Promise<void>; withdraw(): Promise<void>; "__#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 | import("o1js").UInt32 | import("o1js").Int64): void; subInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; }; emitEventIf<K extends "canTransfer" | "withdraw" | "bid" | "settleAuction" | "settlePayment" | "settleAuctioneerPayment">(condition: Bool, type: K, event: any): void; emitEvent<K extends "canTransfer" | "withdraw" | "bid" | "settleAuction" | "settlePayment" | "settleAuctioneerPayment">(type: K, event: any): void; fetchEvents(start?: import("o1js").UInt32, end?: import("o1js").UInt32): Promise<{ type: string; event: { data: import("o1js").ProvablePure<any>; transactionInfo: { transactionHash: string; transactionStatus: string; transactionMemo: string; }; }; blockHeight: import("o1js").UInt32; blockHash: string; parentBlockHash: string; globalSlot: import("o1js").UInt32; chainStatus: string; }[]>; }; /** * Allows the owner to mint shares. * This method should NOT called directly, but through the FungibleToken.mint() * * @param _accountUpdate - The account update containing the sender's information. * @returns A boolean indicating if the minting is allowed. */ canMint(_accountUpdate: AccountUpdate): Promise<Bool>; withdraw(shares: UInt64): Promise<void>; closeSubscription(): Promise<void>; bid(price: UInt64): Promise<void>; canTransfer(params: TransferExtendedParams): Promise<Bool>; canPause(collection: PublicKey, nft: PublicKey): Promise<Bool>; canResume(collection: PublicKey, nft: PublicKey): Promise<Bool>; canChangeVerificationKey(collection: PublicKey, nft: PublicKey, vk: VerificationKey): Promise<Bool>; canApproveAddress(collection: PublicKey, nft: PublicKey, approved: PublicKey): 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 | import("o1js").UInt32 | import("o1js").Int64): void; subInPlace(x: string | number | bigint | UInt64 | import("o1js").UInt32 | import("o1js").Int64): void; }; events: { [key: string]: import("o1js").FlexibleProvablePure<any>; }; emitEventIf<K extends string | number>(condition: Bool, type: K, event: any): void; emitEvent<K extends string | number>(type: K, event: any): void; fetchEvents(start?: import("o1js").UInt32, end?: import("o1js").UInt32): Promise<{ type: string; event: { data: import("o1js").ProvablePure<any>; transactionInfo: { transactionHash: string; transactionStatus: string; transactionMemo: string; }; }; blockHeight: import("o1js").UInt32; blockHash: string; parentBlockHash: string; globalSlot: import("o1js").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[]; }>>; }; FungibleToken: { new (address: PublicKey, tokenId?: Field): { decimals: State<import("o1js").UInt8>; admin: State<PublicKey>; paused: State<import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool>; readonly events: { SetAdmin: typeof import("@silvana-one/token").SetAdminEvent; Pause: typeof import("@silvana-one/token").PauseEvent; Mint: typeof import("@silvana-one/token").MintEvent; Burn: typeof import("@silvana-one/token").BurnEvent; BalanceChange: typeof import("@silvana-one/token").BalanceChangeEvent; }; deploy(props: import("@silvana-one/token").FungibleTokenDeployProps): Promise<void>; updateVerificationKey(vk: VerificationKey): Promise<void>; initialize(admin: PublicKey, decimals: import("o1js").UInt8, startPaused: Bool): Promise<void>; getAdminContract(): Promise<FungibleTokenAdminBase>; setAdmin(admin: PublicKey): Promise<void>; mint(recipient: PublicKey, amount: UInt64): Promise<AccountUpdate>; burn(from: PublicKey, amount: UInt64): Promise<AccountUpdate>; pause(): Promise<void>; resume(): Promise<void>; transfer(from: PublicKey, to: PublicKey, amount: UInt64): Promise<void>; checkPermissionsUpdate(update: AccountUpdate): void; approveBase(updates: import("o1js").AccountUpdateForest): Promise<void>; getBalanceOf(address: PublicKey): Promise<UInt64>; getCirculating(): Promise<UInt64>; getDecimals(): Promise<import("o1js").UInt8>; deriveTokenId(): import("node_modules/o1js/dist/node/lib/provable/field.js").Field; get internal(): { mint({ address, amount, }: { address: PublicKey | AccountUpdate | SmartContract; amount: number | bigint | UInt64; }): AccountUpdate; burn({ address, amount, }: { address: PublicKey | AccountUpdate | SmartContract; amount: number | bigint | UInt64; }): AccountUpdate; send({ from, to, amount, }: { from: PublicKey | AccountUpdate | SmartContract; to: PublicKey | AccountUpdate | SmartContract; amount: number | bigint | UInt64; }): AccountUpdate; }; forEachUpdate(updates: import("o1js").AccountUpdateForest, callback: (update: AccountUpdate, usesToken: Bool) => void): void; checkZeroBalanceChange(updates: import("o1js").AccountUpdateForest): void; approveAccountUpdate(accountUpdate: AccountUpdate | import("o1js").AccountUpdateTree): Promise<void>; approveAccountUpdates(accountUpdates: (AccountUpdate | import("o1js").AccountUpdateTree)[]): Promise<void>; "__#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():