@silvana-one/nft
Version:
Mina NFT library
740 lines (739 loc) • 49.7 kB
TypeScript
import { CollectionFactory } from "./contracts/index.js";
import { OfferFactory } from "./marketplace/offer.js";
import { NFTOwnerContractConstructor, NFTAdminContractConstructor, NFTApprovalContractConstructor, DefineApprovalFactory, DefineOwnerFactory, DefineUpdateFactory, NFTUpdateContractConstructor } from "./interfaces/index.js";
export declare const NFTAdvancedAdmin: {
new (address: import("o1js").PublicKey, tokenId?: import("o1js").Field): {
admin: import("o1js").State<import("o1js").PublicKey>;
upgradeAuthority: import("o1js").State<import("o1js").PublicKey>;
whitelist: import("o1js").State<import("@silvana-one/storage").Whitelist>;
data: import("o1js").State<import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
deploy(props: import("./admin/advanced.js").NFTAdvancedAdminDeployProps): Promise<void>;
events: {
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);
pause: typeof import("./interfaces/pausable.js").PauseEvent;
resume: typeof import("./interfaces/pausable.js").PauseEvent;
ownershipChange: typeof import("./interfaces/ownable.js").OwnershipChangeEvent;
updateWhitelist: typeof import("@silvana-one/storage").Whitelist;
};
ensureOwnerSignature(): Promise<import("o1js").AccountUpdate>;
get getUpgradeContractConstructor(): import("@silvana-one/upgradable").UpgradeAuthorityContractConstructor;
getUpgradeContract(): Promise<import("@silvana-one/upgradable").UpgradeAuthorityBase>;
upgradeVerificationKey(vk: import("o1js").VerificationKey): Promise<void>;
canMint(mintRequest: import("./interfaces/types.js").MintRequest): Promise<import("./interfaces/types.js").MintParamsOption>;
canUpdate(input: import("./interfaces/types.js").NFTState, output: import("./interfaces/types.js").NFTState): Promise<import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool>;
canTransfer(transferEvent: import("./interfaces/events.js").TransferEvent): Promise<import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool>;
updateWhitelist(whitelist: import("@silvana-one/storage").Whitelist): Promise<void>;
pause(): Promise<void>;
resume(): Promise<void>;
transferOwnership(to: import("o1js").PublicKey): Promise<import("o1js").PublicKey>;
canChangeVerificationKey(vk: import("o1js").VerificationKey, address: import("o1js").PublicKey, tokenId: import("o1js").Field): Promise<import("o1js").Bool>;
canChangeName(name: import("o1js").Field): Promise<import("o1js").Bool>;
canChangeCreator(creator: import("o1js").PublicKey): Promise<import("o1js").Bool>;
canChangeBaseUri(baseUri: import("o1js").Field): Promise<import("o1js").Bool>;
canChangeRoyalty(royaltyFee: import("o1js").UInt32): Promise<import("o1js").Bool>;
canChangeTransferFee(transferFee: import("o1js").UInt64): Promise<import("o1js").Bool>;
canSetAdmin(admin: import("o1js").PublicKey): Promise<import("o1js").Bool>;
canPause(): Promise<import("o1js").Bool>;
canResume(): Promise<import("o1js").Bool>;
"__#private@#private": any;
address: import("o1js").PublicKey;
tokenId: import("o1js").Field;
init(): void;
requireSignature(): void;
skipAuthorization(): void;
get self(): import("o1js").AccountUpdate;
newSelf(methodName?: string): import("o1js").AccountUpdate;
sender: {
self: import("o1js").SmartContract;
getUnconstrained(): import("o1js").PublicKey;
getAndRequireSignature(): import("o1js").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: import("o1js").AccountUpdate | import("o1js").AccountUpdateTree | import("o1js").AccountUpdateForest): void;
send(args: {
to: import("o1js").PublicKey | import("o1js").AccountUpdate | import("o1js").SmartContract;
amount: number | bigint | import("o1js").UInt64;
}): import("o1js").AccountUpdate;
get balance(): {
addInPlace(x: string | number | bigint | import("o1js").UInt64 | import("o1js").UInt32 | import("o1js").Int64): void;
subInPlace(x: string | number | bigint | import("o1js").UInt64 | import("o1js").UInt32 | import("o1js").Int64): void;
};
emitEventIf<K extends "upgradeVerificationKey" | "pause" | "resume" | "ownershipChange" | "updateWhitelist">(condition: import("o1js").Bool, type: K, event: any): void;
emitEvent<K extends "upgradeVerificationKey" | "pause" | "resume" | "ownershipChange" | "updateWhitelist">(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: import("o1js").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 import("o1js").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: import("o1js").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[];
}>>;
};
export type NonFungibleTokenContracts = {
Collection: ReturnType<typeof CollectionFactory>;
Approval: NFTApprovalContractConstructor;
Owner: NFTOwnerContractConstructor;
Admin: NFTAdminContractConstructor;
Update: NFTUpdateContractConstructor;
};
export declare function NonFungibleTokenContractsFactory(params: {
adminContract?: NFTAdminContractConstructor;
approvalFactory?: DefineApprovalFactory;
ownerFactory?: DefineOwnerFactory;
updateFactory?: DefineUpdateFactory;
}): NonFungibleTokenContracts;
export declare const Collection: {
new (address: import("o1js").PublicKey, tokenId?: import("o1js").Field): {
collectionName: import("o1js").State<import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
creator: import("o1js").State<import("o1js").PublicKey>;
admin: import("o1js").State<import("o1js").PublicKey>;
baseURL: import("o1js").State<import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
packedData: import("o1js").State<import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
pendingCreatorX: import("o1js").State<import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
deploy(props: import("./contracts/collection.js").CollectionDeployProps): Promise<void>;
initialize(masterNFT: import("./interfaces/types.js").MintParams, collectionData: import("./interfaces/types.js").CollectionData): Promise<void>;
events: {
mint: typeof import("./interfaces/events.js").MintEvent;
update: typeof import("./interfaces/events.js").NFTUpdateEvent;
transfer: typeof import("./interfaces/events.js").TransferEvent;
approve: typeof import("./interfaces/events.js").ApproveEvent;
upgradeNFTVerificationKey: typeof import("./interfaces/events.js").UpgradeVerificationKeyEvent;
upgradeVerificationKey: typeof import("./interfaces/events.js").UpgradeVerificationKeyEvent;
limitMinting: typeof import("./interfaces/events.js").LimitMintingEvent;
pause: typeof import("./interfaces/pausable.js").PauseEvent;
resume: typeof import("./interfaces/pausable.js").PauseEvent;
pauseNFT: typeof import("./interfaces/events.js").PauseNFTEvent;
resumeNFT: typeof import("./interfaces/events.js").PauseNFTEvent;
ownershipTransfer: typeof import("./interfaces/ownable.js").OwnershipChangeEvent;
ownershipAccepted: typeof import("./interfaces/ownable.js").OwnershipChangeEvent;
setName: typeof import("./interfaces/events.js").SetNameEvent;
setBaseURL: typeof import("./interfaces/events.js").SetBaseURLEvent;
setRoyaltyFee: typeof import("./interfaces/events.js").SetRoyaltyFeeEvent;
setTransferFee: typeof import("./interfaces/events.js").SetTransferFeeEvent;
setAdmin: typeof import("./interfaces/events.js").SetAdminEvent;
};
approveBase(forest: import("o1js").AccountUpdateForest): Promise<void>;
getAdminContract(): import("./interfaces/admin.js").NFTAdminBase;
getOwnerContract(address: import("o1js").PublicKey): import("./interfaces/owner.js").NFTOwnerBase;
getApprovalContract(address: import("o1js").PublicKey): import("./interfaces/approval.js").NFTApprovalBase;
getUpdateContract(address: import("o1js").PublicKey): import("./interfaces/update.js").NFTUpdateBase;
ensureCreatorSignature(): Promise<import("o1js").AccountUpdate>;
ensureOwnerSignature(owner: import("o1js").PublicKey): Promise<import("o1js").AccountUpdate>;
ensureNotPaused(): Promise<import("./interfaces/types.js").CollectionData>;
mintByCreator(params: import("./interfaces/types.js").MintParams): Promise<void>;
mint(mintRequest: import("./interfaces/types.js").MintRequest): Promise<void>;
_mint(params: import("./interfaces/types.js").MintParams): Promise<import("./interfaces/events.js").MintEvent>;
update(proof: import("./interfaces/types.js").NFTUpdateProof, vk: import("o1js").VerificationKey): Promise<void>;
updateWithOracle(proof: import("./interfaces/types.js").NFTUpdateProof, vk: import("o1js").VerificationKey): Promise<void>;
_update(proof: import("./interfaces/types.js").NFTUpdateProof, vk: import("o1js").VerificationKey): Promise<void>;
approveAddress(nftAddress: import("o1js").PublicKey, approved: import("o1js").PublicKey): Promise<void>;
approveAddressByProof(nftAddress: import("o1js").PublicKey, approved: import("o1js").PublicKey): Promise<void>;
transferBySignature(params: import("./interfaces/types.js").TransferBySignatureParams): Promise<void>;
transferByProof(params: import("./interfaces/types.js").TransferByProofParams): Promise<void>;
adminApprovedTransferByProof(params: import("./interfaces/types.js").TransferByProofParams): Promise<void>;
adminApprovedTransferBySignature(params: import("./interfaces/types.js").TransferBySignatureParams): Promise<void>;
_transfer(params: {
transferEventDraft: import("./interfaces/types.js").TransferExtendedParams;
transferFee: import("o1js").UInt64;
royaltyFee: import("o1js").UInt32;
}): Promise<import("./interfaces/types.js").TransferExtendedParams>;
upgradeNFTVerificationKeyBySignature(address: import("o1js").PublicKey, vk: import("o1js").VerificationKey): Promise<void>;
upgradeNFTVerificationKeyByProof(address: import("o1js").PublicKey, vk: import("o1js").VerificationKey): Promise<void>;
_upgrade(address: import("o1js").PublicKey, vk: import("o1js").VerificationKey): Promise<import("./interfaces/events.js").UpgradeVerificationKeyData>;
upgradeVerificationKey(vk: import("o1js").VerificationKey): Promise<void>;
limitMinting(): Promise<void>;
pause(): Promise<void>;
resume(): Promise<void>;
pauseNFTBySignature(address: import("o1js").PublicKey): Promise<void>;
pauseNFTByProof(address: import("o1js").PublicKey): Promise<void>;
resumeNFT(address: import("o1js").PublicKey): Promise<void>;
resumeNFTByProof(address: import("o1js").PublicKey): Promise<void>;
setName(name: import("o1js").Field): Promise<void>;
setBaseURL(baseURL: import("o1js").Field): Promise<void>;
setAdmin(admin: import("o1js").PublicKey): Promise<void>;
setRoyaltyFee(royaltyFee: import("o1js").UInt32): Promise<void>;
setTransferFee(transferFee: import("o1js").UInt64): Promise<void>;
transferOwnership(to: import("o1js").PublicKey): Promise<import("o1js").PublicKey>;
acceptOwnership(): Promise<import("o1js").PublicKey>;
getNFTState(address: import("o1js").PublicKey): Promise<import("./interfaces/types.js").NFTStateStruct>;
deriveTokenId(): import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
get internal(): {
mint({ address, amount, }: {
address: import("o1js").PublicKey | import("o1js").AccountUpdate | import("o1js").SmartContract;
amount: number | bigint | import("o1js").UInt64;
}): import("o1js").AccountUpdate;
burn({ address, amount, }: {
address: import("o1js").PublicKey | import("o1js").AccountUpdate | import("o1js").SmartContract;
amount: number | bigint | import("o1js").UInt64;
}): import("o1js").AccountUpdate;
send({ from, to, amount, }: {
from: import("o1js").PublicKey | import("o1js").AccountUpdate | import("o1js").SmartContract;
to: import("o1js").PublicKey | import("o1js").AccountUpdate | import("o1js").SmartContract;
amount: number | bigint | import("o1js").UInt64;
}): import("o1js").AccountUpdate;
};
forEachUpdate(updates: import("o1js").AccountUpdateForest, callback: (update: import("o1js").AccountUpdate, usesToken: import("o1js").Bool) => void): void;
checkZeroBalanceChange(updates: import("o1js").AccountUpdateForest): void;
approveAccountUpdate(accountUpdate: import("o1js").AccountUpdate | import("o1js").AccountUpdateTree): Promise<void>;
approveAccountUpdates(accountUpdates: (import("o1js").AccountUpdate | import("o1js").AccountUpdateTree)[]): Promise<void>;
transfer(from: import("o1js").PublicKey | import("o1js").AccountUpdate, to: import("o1js").PublicKey | import("o1js").AccountUpdate, amount: import("o1js").UInt64 | number | bigint): Promise<void>;
"__#private@#private": any;
address: import("o1js").PublicKey;
tokenId: import("o1js").Field;
init(): void;
requireSignature(): void;
skipAuthorization(): void;
get self(): import("o1js").AccountUpdate;
newSelf(methodName?: string): import("o1js").AccountUpdate;
sender: {
self: import("o1js").SmartContract;
getUnconstrained(): import("o1js").PublicKey;
getAndRequireSignature(): import("o1js").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: import("o1js").AccountUpdate | import("o1js").AccountUpdateTree | import("o1js").AccountUpdateForest): void;
send(args: {
to: import("o1js").PublicKey | import("o1js").AccountUpdate | import("o1js").SmartContract;
amount: number | bigint | import("o1js").UInt64;
}): import("o1js").AccountUpdate;
get balance(): {
addInPlace(x: string | number | bigint | import("o1js").UInt64 | import("o1js").UInt32 | import("o1js").Int64): void;
subInPlace(x: string | number | bigint | import("o1js").UInt64 | import("o1js").UInt32 | import("o1js").Int64): void;
};
emitEventIf<K extends "update" | "approve" | "transfer" | "upgradeVerificationKey" | "pause" | "resume" | "mint" | "upgradeNFTVerificationKey" | "limitMinting" | "pauseNFT" | "resumeNFT" | "ownershipTransfer" | "ownershipAccepted" | "setName" | "setBaseURL" | "setRoyaltyFee" | "setTransferFee" | "setAdmin">(condition: import("o1js").Bool, type: K, event: any): void;
emitEvent<K extends "update" | "approve" | "transfer" | "upgradeVerificationKey" | "pause" | "resume" | "mint" | "upgradeNFTVerificationKey" | "limitMinting" | "pauseNFT" | "resumeNFT" | "ownershipTransfer" | "ownershipAccepted" | "setName" | "setBaseURL" | "setRoyaltyFee" | "setTransferFee" | "setAdmin">(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;
}[]>;
};
MAX_ACCOUNT_UPDATES: number;
_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: import("o1js").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 import("o1js").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: import("o1js").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[];
}>>;
}, Approval: NFTApprovalContractConstructor, Owner: NFTOwnerContractConstructor, Admin: NFTAdminContractConstructor, Update: NFTUpdateContractConstructor;
export declare const Offer: ReturnType<typeof OfferFactory>;
export declare const AdvancedCollection: {
new (address: import("o1js").PublicKey, tokenId?: import("o1js").Field): {
collectionName: import("o1js").State<import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
creator: import("o1js").State<import("o1js").PublicKey>;
admin: import("o1js").State<import("o1js").PublicKey>;
baseURL: import("o1js").State<import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
packedData: import("o1js").State<import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
pendingCreatorX: import("o1js").State<import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
deploy(props: import("./contracts/collection.js").CollectionDeployProps): Promise<void>;
initialize(masterNFT: import("./interfaces/types.js").MintParams, collectionData: import("./interfaces/types.js").CollectionData): Promise<void>;
events: {
mint: typeof import("./interfaces/events.js").MintEvent;
update: typeof import("./interfaces/events.js").NFTUpdateEvent;
transfer: typeof import("./interfaces/events.js").TransferEvent;
approve: typeof import("./interfaces/events.js").ApproveEvent;
upgradeNFTVerificationKey: typeof import("./interfaces/events.js").UpgradeVerificationKeyEvent;
upgradeVerificationKey: typeof import("./interfaces/events.js").UpgradeVerificationKeyEvent;
limitMinting: typeof import("./interfaces/events.js").LimitMintingEvent;
pause: typeof import("./interfaces/pausable.js").PauseEvent;
resume: typeof import("./interfaces/pausable.js").PauseEvent;
pauseNFT: typeof import("./interfaces/events.js").PauseNFTEvent;
resumeNFT: typeof import("./interfaces/events.js").PauseNFTEvent;
ownershipTransfer: typeof import("./interfaces/ownable.js").OwnershipChangeEvent;
ownershipAccepted: typeof import("./interfaces/ownable.js").OwnershipChangeEvent;
setName: typeof import("./interfaces/events.js").SetNameEvent;
setBaseURL: typeof import("./interfaces/events.js").SetBaseURLEvent;
setRoyaltyFee: typeof import("./interfaces/events.js").SetRoyaltyFeeEvent;
setTransferFee: typeof import("./interfaces/events.js").SetTransferFeeEvent;
setAdmin: typeof import("./interfaces/events.js").SetAdminEvent;
};
approveBase(forest: import("o1js").AccountUpdateForest): Promise<void>;
getAdminContract(): import("./interfaces/admin.js").NFTAdminBase;
getOwnerContract(address: import("o1js").PublicKey): import("./interfaces/owner.js").NFTOwnerBase;
getApprovalContract(address: import("o1js").PublicKey): import("./interfaces/approval.js").NFTApprovalBase;
getUpdateContract(address: import("o1js").PublicKey): import("./interfaces/update.js").NFTUpdateBase;
ensureCreatorSignature(): Promise<import("o1js").AccountUpdate>;
ensureOwnerSignature(owner: import("o1js").PublicKey): Promise<import("o1js").AccountUpdate>;
ensureNotPaused(): Promise<import("./interfaces/types.js").CollectionData>;
mintByCreator(params: import("./interfaces/types.js").MintParams): Promise<void>;
mint(mintRequest: import("./interfaces/types.js").MintRequest): Promise<void>;
_mint(params: import("./interfaces/types.js").MintParams): Promise<import("./interfaces/events.js").MintEvent>;
update(proof: import("./interfaces/types.js").NFTUpdateProof, vk: import("o1js").VerificationKey): Promise<void>;
updateWithOracle(proof: import("./interfaces/types.js").NFTUpdateProof, vk: import("o1js").VerificationKey): Promise<void>;
_update(proof: import("./interfaces/types.js").NFTUpdateProof, vk: import("o1js").VerificationKey): Promise<void>;
approveAddress(nftAddress: import("o1js").PublicKey, approved: import("o1js").PublicKey): Promise<void>;
approveAddressByProof(nftAddress: import("o1js").PublicKey, approved: import("o1js").PublicKey): Promise<void>;
transferBySignature(params: import("./interfaces/types.js").TransferBySignatureParams): Promise<void>;
transferByProof(params: import("./interfaces/types.js").TransferByProofParams): Promise<void>;
adminApprovedTransferByProof(params: import("./interfaces/types.js").TransferByProofParams): Promise<void>;
adminApprovedTransferBySignature(params: import("./interfaces/types.js").TransferBySignatureParams): Promise<void>;
_transfer(params: {
transferEventDraft: import("./interfaces/types.js").TransferExtendedParams;
transferFee: import("o1js").UInt64;
royaltyFee: import("o1js").UInt32;
}): Promise<import("./interfaces/types.js").TransferExtendedParams>;
upgradeNFTVerificationKeyBySignature(address: import("o1js").PublicKey, vk: import("o1js").VerificationKey): Promise<void>;
upgradeNFTVerificationKeyByProof(address: import("o1js").PublicKey, vk: import("o1js").VerificationKey): Promise<void>;
_upgrade(address: import("o1js").PublicKey, vk: import("o1js").VerificationKey): Promise<import("./interfaces/events.js").UpgradeVerificationKeyData>;
upgradeVerificationKey(vk: import("o1js").VerificationKey): Promise<void>;
limitMinting(): Promise<void>;
pause(): Promise<void>;
resume(): Promise<void>;
pauseNFTBySignature(address: import("o1js").PublicKey): Promise<void>;
pauseNFTByProof(address: import("o1js").PublicKey): Promise<void>;
resumeNFT(address: import("o1js").PublicKey): Promise<void>;
resumeNFTByProof(address: import("o1js").PublicKey): Promise<void>;
setName(name: import("o1js").Field): Promise<void>;
setBaseURL(baseURL: import("o1js").Field): Promise<void>;
setAdmin(admin: import("o1js").PublicKey): Promise<void>;
setRoyaltyFee(royaltyFee: import("o1js").UInt32): Promise<void>;
setTransferFee(transferFee: import("o1js").UInt64): Promise<void>;
transferOwnership(to: import("o1js").PublicKey): Promise<import("o1js").PublicKey>;
acceptOwnership(): Promise<import("o1js").PublicKey>;
getNFTState(address: import("o1js").PublicKey): Promise<import("./interfaces/types.js").NFTStateStruct>;
deriveTokenId(): import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
get internal(): {
mint({ address, amount, }: {
address: import("o1js").PublicKey | import("o1js").AccountUpdate | import("o1js").SmartContract;
amount: number | bigint | import("o1js").UInt64;
}): import("o1js").AccountUpdate;
burn({ address, amount, }: {
address: import("o1js").PublicKey | import("o1js").AccountUpdate | import("o1js").SmartContract;
amount: number | bigint | import("o1js").UInt64;
}): import("o1js").AccountUpdate;
send({ from, to, amount, }: {
from: import("o1js").PublicKey | import("o1js").AccountUpdate | import("o1js").SmartContract;
to: import("o1js").PublicKey | import("o1js").AccountUpdate | import("o1js").SmartContract;
amount: number | bigint | import("o1js").UInt64;
}): import("o1js").AccountUpdate;
};
forEachUpdate(updates: import("o1js").AccountUpdateForest, callback: (update: import("o1js").AccountUpdate, usesToken: import("o1js").Bool) => void): void;
checkZeroBalanceChange(updates: import("o1js").AccountUpdateForest): void;
approveAccountUpdate(accountUpdate: import("o1js").AccountUpdate | import("o1js").AccountUpdateTree): Promise<void>;
approveAccountUpdates(accountUpdates: (import("o1js").AccountUpdate | import("o1js").AccountUpdateTree)[]): Promise<void>;
transfer(from: import("o1js").PublicKey | import("o1js").AccountUpdate, to: import("o1js").PublicKey | import("o1js").AccountUpdate, amount: import("o1js").UInt64 | number | bigint): Promise<void>;
"__#private@#private": any;
address: import("o1js").PublicKey;
tokenId: import("o1js").Field;
init(): void;
requireSignature(): void;
skipAuthorization(): void;
get self(): import("o1js").AccountUpdate;
newSelf(methodName?: string): import("o1js").AccountUpdate;
sender: {
self: import("o1js").SmartContract;
getUnconstrained(): import("o1js").PublicKey;
getAndRequireSignature(): import("o1js").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: import("o1js").AccountUpdate | import("o1js").AccountUpdateTree | import("o1js").AccountUpdateForest): void;
send(args: {
to: import("o1js").PublicKey | import("o1js").AccountUpdate | import("o1js").SmartContract;
amount: number | bigint | import("o1js").UInt64;
}): import("o1js").AccountUpdate;
get balance(): {
addInPlace(x: string | number | bigint | import("o1js").UInt64 | import("o1js").UInt32 | import("o1js").Int64): void;
subInPlace(x: string | number | bigint | import("o1js").UInt64 | import("o1js").UInt32 | import("o1js").Int64): void;
};
emitEventIf<K extends "update" | "approve" | "transfer" | "upgradeVerificationKey" | "pause" | "resume" | "mint" | "upgradeNFTVerificationKey" | "limitMinting" | "pauseNFT" | "resumeNFT" | "ownershipTransfer" | "ownershipAccepted" | "setName" | "setBaseURL" | "setRoyaltyFee" | "setTransferFee" | "setAdmin">(condition: import("o1js").Bool, type: K, event: any): void;
emitEvent<K extends "update" | "approve" | "transfer" | "upgradeVerificationKey" | "pause" | "resume" | "mint" | "upgradeNFTVerificationKey" | "limitMinting" | "pauseNFT" | "resumeNFT" | "ownershipTransfer" | "ownershipAccepted" | "setName" | "setBaseURL" | "setRoyaltyFee" | "setTransferFee" | "setAdmin">(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;
}[]>;
};
MAX_ACCOUNT_UPDATES: number;
_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: import("o1js").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 import("o1js").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: import("o1js").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[];
}>>;
}, AdvancedApproval: NFTApprovalContractConstructor, AdvancedOwner: NFTOwnerContractConstructor, AdvancedAdmin: NFTAdminContractConstructor;
export declare const AdvancedOffer: ReturnType<typeof OfferFactory>;