@minatokens/abi
Version:
MinaTokens ABI Experimental Library
51 lines (47 loc) • 1.45 kB
text/typescript
import { Cache, Field } from "o1js";
import {
FungibleToken,
AdvancedFungibleToken,
FungibleTokenAdmin,
FungibleTokenAdvancedAdmin,
FungibleTokenBidContract,
FungibleTokenOfferContract,
FungibleTokenClaimContract,
} from "@minatokens/token";
import {
NFT,
Collection,
AdvancedCollection,
NFTAdmin,
NFTAdvancedAdmin,
} from "@minatokens/nft";
import { VerificationKeyUpgradeAuthority } from "@minatokens/upgradable";
export type Compilable = {
compile({ cache }?: { cache: Cache }): Promise<{
verificationKey: {
data: string;
hash: Field;
};
}>;
};
export type CompileDependencies = Record<
/** Transaction type */
string,
/** List of contract names */
string[] // TODO: add role
>;
export const contractList: Record<string, Compilable> = {
FungibleToken: FungibleToken,
FungibleTokenAdmin: FungibleTokenAdmin,
AdvancedFungibleToken: AdvancedFungibleToken,
FungibleTokenAdvancedAdmin: FungibleTokenAdvancedAdmin,
FungibleTokenBidContract: FungibleTokenBidContract,
FungibleTokenOfferContract: FungibleTokenOfferContract,
FungibleTokenClaimContract: FungibleTokenClaimContract,
NFT: NFT,
Collection: Collection as unknown as Compilable, // TODO: better type
AdvancedCollection: AdvancedCollection as unknown as Compilable, // TODO: better type
NFTAdmin: NFTAdmin,
NFTAdvancedAdmin: NFTAdvancedAdmin,
VerificationKeyUpgradeAuthority: VerificationKeyUpgradeAuthority,
};