@fxhash/shared 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/dist/index.d.ts +1501 -0
- package/dist/index.js +620 -0
- package/dist/index.js.map +1 -0
- package/package.json +35 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/types/entities/Account.ts","../src/types/entities/Action.ts","../src/types/entities/Article.ts","../src/types/entities/GenerativeToken.ts","../src/types/entities/LiveMinting.ts","../src/types/entities/ManagedWallet.ts","../src/types/entities/Objkt.ts","../src/types/entities/Offer.ts","../src/types/entities/Redeemable.ts","../src/types/entities/Reserve.ts","../src/types/entities/User.ts","../src/types/Mint.ts","../src/types/Sandbox.ts","../src/types/Responses.ts","../src/types/Metadata.ts","../src/wallet/ContractOperation.ts","../src/wallet/WalletManager.ts","../src/wallet/WalletCache.ts"],"sourcesContent":["import { UserAuthorization, UserFlag } from \"./User\"\nimport { GenerativeToken } from \"./GenerativeToken\"\nimport { Listing } from \"./Listing\"\nimport { Objkt } from \"./Objkt\"\nimport { AnyOffer } from \"./Offer\"\nimport { NFTArticle } from \"./Article\"\nimport { MintTicket } from \"./MintTicket\"\nimport { Action } from \"./Action\"\nimport { BlockchainNetwork } from \"@/wallet/ContractOperation\"\n\n/**\n * Model Wallet\n *\n */\ntype Wallet = {\n address: string\n network: BlockchainNetwork\n accountId: string\n}\n\n/**\n * Model Profile\n *\n */\ntype Profile = {\n accountId: string\n description: string | null\n website: string | null\n twitter: string | null\n instagram: string | null\n picture: string | null\n}\n\nexport interface ConnectedAccount extends Partial<Account> {\n id: string\n username: string\n activeWallet: string\n authorizations: UserAuthorization[]\n}\n\nexport interface Account {\n id: string\n username: string\n authorizations: UserAuthorization[]\n profile?: Profile\n wallets?: Wallet[]\n flag: UserFlag\n metadata?: Record<string, any>\n metadataUri?: string\n description?: string\n avatarUri?: string\n avatarMedia?: MediaImage\n generativeTokens?: GenerativeToken[]\n sales: Action[]\n actionsAsIssuer: Action[]\n actionsAsTarget: Action[]\n listings: Listing[]\n objkts: Objkt[]\n offers: Listing[]\n offersReceived: AnyOffer[]\n offersSent: AnyOffer[]\n createdAt: Date\n updatedAt: Date\n // can be populated to merge the actions, however not returned by api\n actions?: Action[]\n // is set by aliases to manually enforce platform accounts\n platformOwned?: boolean\n donationAddress?: boolean\n descriptionLight?: string\n // is set by aliases to prevent profile from being linked\n preventLink?: boolean\n // as a regular user, it can have collaboration contracts\n // collaborationContracts: Collaboration[]\n moderationReason?: string | null\n articles: NFTArticle[]\n mintTickets: MintTicket[]\n}\n\nexport const accountTypeGuard = (entity: any): entity is Account => {\n return (entity as Account).username !== undefined\n}\n","import { HistoryMetadata } from \"../Metadata\"\nimport { GenerativeToken } from \"./GenerativeToken\"\nimport { Objkt } from \"./Objkt\"\nimport { User } from \"./User\"\nimport { NFTArticleInfos } from \"./Article\"\nimport { Redeemable } from \"./Redeemable\"\n\nexport enum TokenActionType {\n NONE = \"NONE\",\n UPDATE_STATE = \"UPDATE_STATE\",\n UPDATE_PRICING = \"UPDATE_PRICING\",\n BURN_SUPPLY = \"BURN_SUPPLY\",\n CODEX_UPDATED = \"CODEX_UPDATED\",\n MINTED = \"MINTED\",\n MINTED_FROM = \"MINTED_FROM\",\n TICKET_MINTED = \"TICKET_MINTED\",\n TICKET_CLAIMED = \"TICKET_CLAIMED\",\n TICKET_PRICE_UPDATED = \"TICKET_PRICE_UPDATED\",\n GENTK_SIGNED = \"GENTK_SIGNED\",\n GENTK_REVEALED = \"GENTK_REVEALED\",\n GENTK_REDEEMED = \"GENTK_REDEEMED\",\n COMPLETED = \"COMPLETED\",\n TRANSFERED = \"TRANSFERED\",\n LISTING_V1 = \"LISTING_V1\",\n LISTING_V1_CANCELLED = \"LISTING_V1_CANCELLED\",\n LISTING_V1_ACCEPTED = \"LISTING_V1_ACCEPTED\",\n LISTING_ETH_V1 = \"LISTING_ETH_V1\",\n LISTING_BASE_V1 = \"LISTING_BASE_V1\",\n LISTING_ETH_V1_CANCELLED = \"LISTING_ETH_V1_CANCELLED\",\n LISTING_BASE_V1_CANCELLED = \"LISTING_BASE_V1_CANCELLED\",\n LISTING_ETH_V1_ACCEPTED = \"LISTING_ETH_V1_ACCEPTED\",\n LISTING_BASE_V1_ACCEPTED = \"LISTING_BASE_V1_ACCEPTED\",\n LISTING_V2 = \"LISTING_V2\",\n LISTING_V2_CANCELLED = \"LISTING_V2_CANCELLED\",\n LISTING_V2_ACCEPTED = \"LISTING_V2_ACCEPTED\",\n LISTING_V3 = \"LISTING_V3\",\n LISTING_V3_CANCELLED = \"LISTING_V3_CANCELLED\",\n LISTING_V3_ACCEPTED = \"LISTING_V3_ACCEPTED\",\n OFFER = \"OFFER\",\n OFFER_CANCELLED = \"OFFER_CANCELLED\",\n OFFER_ACCEPTED = \"OFFER_ACCEPTED\",\n OFFER_ETH = \"OFFER_ETH\",\n OFFER_BASE = \"OFFER_BASE\",\n OFFER_CANCELLED_ETH = \"OFFER_CANCELLED_ETH\",\n OFFER_CANCELLED_BASE = \"OFFER_CANCELLED_BASE\",\n OFFER_ACCEPTED_ETH = \"OFFER_ACCEPTED_ETH\",\n OFFER_ACCEPTED_BASE = \"OFFER_ACCEPTED_BASE\",\n COLLECTION_OFFER_ETH = \"COLLECTION_OFFER_ETH\",\n COLLECTION_OFFER_BASE = \"COLLECTION_OFFER_BASE\",\n COLLECTION_OFFER_CANCELLED_ETH = \"COLLECTION_OFFER_CANCELLED_ETH\",\n COLLECTION_OFFER_CANCELLED_BASE = \"COLLECTION_OFFER_CANCELLED_BASE\",\n COLLECTION_OFFER_ACCEPTED_ETH = \"COLLECTION_OFFER_ACCEPTED_ETH\",\n COLLECTION_OFFER_ACCEPTED_BASE = \"COLLECTION_OFFER_ACCEPTED_BASE\",\n COLLECTION_OFFER = \"COLLECTION_OFFER\",\n COLLECTION_OFFER_CANCELLED = \"COLLECTION_OFFER_CANCELLED\",\n COLLECTION_OFFER_ACCEPTED = \"COLLECTION_OFFER_ACCEPTED\",\n AUCTION = \"AUCTION\",\n AUCTION_BID = \"AUCTION_BID\",\n AUCTION_CANCELLED = \"AUCTION_CANCELLED\",\n AUCTION_FULFILLED = \"AUCTION_FULFILLED\",\n ARTICLE_MINTED = \"ARTICLE_MINTED\",\n ARTICLE_METADATA_UPDATED = \"ARTICLE_METADATA_UPDATED\",\n ARTICLE_METADATA_LOCKED = \"ARTICLE_METADATA_LOCKED\",\n ARTICLE_EDITIONS_TRANSFERED = \"ARTICLE_EDITIONS_TRANSFERED\",\n}\n\nexport interface Action {\n id: string\n opHash: string\n type: TokenActionType\n numericValue: number\n issuer?: User\n target?: User\n token?: GenerativeToken\n objkt?: Objkt\n redeemable?: Redeemable\n ticketId?: number\n article?: NFTArticleInfos\n metadata: HistoryMetadata\n createdAt: string\n}\n","import { ArticleMetadata } from \"../Metadata\"\nimport { Action } from \"./Action\"\nimport { GenerativeToken } from \"./GenerativeToken\"\nimport { MediaImage } from \"./MediaImage\"\nimport { Split } from \"./Split\"\nimport { User } from \"./User\"\n\nexport enum ArticleFlag {\n NONE = \"NONE\",\n CLEAN = \"CLEAN\",\n REPORTED = \"REPORTED\",\n AUTO_DETECT_COPY = \"AUTO_DETECT_COPY\",\n MALICIOUS = \"MALICIOUS\",\n HIDDEN = \"HIDDEN\",\n}\n\nexport interface NTFArticleLedger {\n article: NFTArticle\n owner: User\n amount: number\n}\n\nexport interface NFTArticleRevision {\n article: NFTArticle\n iteration: number\n metadataUri: string\n createdAt: string\n opHash: string\n}\n\nexport interface NFTArticleGenerativeToken {\n article: NFTArticle\n generativeToken: GenerativeToken\n line: number\n}\n\nexport type NFTArticleInfos = Pick<\n NFTArticle,\n | \"id\"\n | \"title\"\n | \"flag\"\n | \"slug\"\n | \"thumbnailUri\"\n | \"thumbnailMedia\"\n | \"description\"\n | \"tags\"\n | \"author\"\n | \"createdAt\"\n | \"metadataLocked\"\n> & { revisions?: NFTArticleRevision[] }\n\nexport interface NFTArticle {\n id: number | string\n slug: string\n author?: User\n ledgers: NTFArticleLedger[]\n generativeTokenJointures: NFTArticleGenerativeToken[]\n revisions: NFTArticleRevision[]\n royaltiesSplits: Split[]\n actions: Action[]\n title: string\n description: string\n body: string\n tags: string[]\n language: string\n metadataUri: string\n metadata: ArticleMetadata\n metadataLocked: boolean\n artifactUri: string\n displayUri: string\n thumbnailUri: string\n thumbnailCaption: string\n thumbnailMedia?: MediaImage\n platforms?: string[] | null\n createdAt: string\n editions: number\n royalties: number\n mintOpHash: string\n relatedArticles: NFTArticle[]\n flag: ArticleFlag\n moderationReason?: string\n}\n\nexport interface NFTArticleFilters {\n author_eq?: string\n metadataLocked_eq?: string\n editions_lte?: string\n editions_gte?: string\n royalties_lte?: string\n royalties_gte?: string\n searchQuery_eq?: string\n flag_in?: ArticleFlag[]\n flag_eq?: ArticleFlag\n flag_ne?: ArticleFlag\n}\n","import { GenerativeTokenMetadata } from \"../Metadata\"\nimport { Action } from \"./Action\"\nimport { ArticleGenerativeTokenMention } from \"./ArticleGenerativeTokenMention\"\nimport { Objkt } from \"./Objkt\"\nimport { IPricingDutchAuction, IPricingFixed } from \"./Pricing\"\nimport { Report } from \"./Report\"\nimport { IReserve } from \"./Reserve\"\nimport { Split } from \"./Split\"\nimport { User } from \"./User\"\n// import { ISettingsContext } from \"../../context/Theme\"\nimport { MediaImage } from \"./MediaImage\"\nimport { Redeemable } from \"./Redeemable\"\nimport { MintTicket, MintTicketSettings } from \"./MintTicket\"\nimport { CollectionOffer } from \"./Offer\"\n\nexport enum GenTokFlag {\n NONE = \"NONE\",\n CLEAN = \"CLEAN\",\n REPORTED = \"REPORTED\",\n AUTO_DETECT_COPY = \"AUTO_DETECT_COPY\",\n MALICIOUS = \"MALICIOUS\",\n HIDDEN = \"HIDDEN\",\n}\n\nexport enum GenTokPricing {\n FIXED = \"FIXED\",\n DUTCH_AUCTION = \"DUTCH_AUCTION\",\n}\n\nexport enum GenTokLabel {\n EPILEPTIC_TRIGGER = 0,\n SEXUAL_CONTENT = 1,\n SENSITIVE = 2,\n IMAGE_COMPOSITION = 100,\n ANIMATED = 101,\n INTERACTIVE = 102,\n PFP = 103,\n AUDIO = 104,\n INCLUDE_PRERENDERED_COMPONENTS = 105,\n CUSTOM_MINTING_INTERFACE = 106,\n FXHACKATHON2023 = 302023,\n}\n\nexport enum GenTokLabelGroup {\n WARNING = \"WARNING\",\n DETAILS = \"DETAILS\",\n HIGHLIGHT = \"HIGHLIGHT\",\n}\n\nexport interface GenTokLabelDefinition {\n label: string\n shortLabel: string\n group: GenTokLabelGroup\n description?: string\n icon?: string\n showWarningSetting?: string //keyof ISettingsContext\n showWarningOn?: \"preview\" | \"run\"\n}\n\nexport const GenTokLabel_Params: GenTokLabelDefinition = {\n label: \"Params\",\n shortLabel: \"Params\",\n group: GenTokLabelGroup.HIGHLIGHT,\n description:\n \"This piece is using the fx(params) module, letting collector play with parameters before minting\",\n}\n\nexport const GenTokLabel_Redeemable: GenTokLabelDefinition = {\n label: \"Redeemable\",\n shortLabel: \"Redeemable\",\n group: GenTokLabelGroup.HIGHLIGHT,\n description: \"This project can be redeemed.\",\n}\n\nexport interface GenerativeTokenMarketStats {\n floor: number | null\n median: number | null\n listed: number | null\n highestSold: number | null\n lowestSold: number | null\n primVolume: number | null\n primVolumeFiat: number | null\n primVolumeNb: number | null\n secVolume: number | null\n secVolumeFiat: number | null\n secVolumeNb: number | null\n secVolume24: number | null\n secVolumeFiat24: number | null\n secVolumeNb24: number | null\n secVolume7d: number | null\n secVolumeFiat7d: number | null\n secVolumeNb7d: number | null\n secVolume30d: number | null\n secVolumeFiat30d: number | null\n secVolumeNb30d: number | null\n generativeToken?: GenerativeToken\n}\n\nexport interface GenerativeTokenMarketStatsHistory {\n floor: number | null\n median: number | null\n listed: number | null\n highestSold: number | null\n lowestSold: number | null\n primVolume: number | null\n primVolumeFiat: number | null\n primVolumeNb: number | null\n secVolume: number | null\n secVolumeFiat: number | null\n secVolumeNb: number | null\n from: string\n to: string\n}\n\nexport enum GenerativeTokenVersion {\n \"PRE_V3\" = \"PRE_V3\",\n V3 = \"V3\",\n ETH_V1 = \"ETH_V1\",\n BASE_V1 = \"BASE_V1\",\n}\nexport interface GenerativeToken {\n id: string\n version: GenerativeTokenVersion\n author: User\n name: string\n flag: GenTokFlag\n reports?: Report[]\n slug?: string\n metadata: GenerativeTokenMetadata\n metadataUri?: string\n generativeUri?: string\n thumbnailUri?: string\n displayUri?: string\n tags?: string[]\n labels?: number[]\n // todo: remove\n price: number\n pricingFixed?: IPricingFixed\n pricingDutchAuction?: IPricingDutchAuction\n originalSupply: number\n supply: number\n balance: number\n // defined for V3 only\n iterationsCount?: number\n openEditions: boolean\n openEditionsEndsAt?: string | null\n enabled: boolean\n royalties: number\n splitsPrimary: Split[]\n splitsSecondary: Split[]\n reserves: IReserve[]\n lockedSeconds: number\n lockEnd: string\n mintOpensAt?: string\n objkts: Objkt[]\n actions: Action[]\n objktsCount?: number\n createdAt: string\n marketStats?: GenerativeTokenMarketStats\n marketStatsHistory?: GenerativeTokenMarketStatsHistory[]\n features?: GenerativeTokenFeature[]\n moderationReason?: string | null\n entireCollection?: Objkt[]\n articleMentions?: ArticleGenerativeTokenMention[]\n captureMedia?: MediaImage\n redeemables: Redeemable[]\n underAuctionMintTickets: MintTicket[]\n mintTickets: MintTicket[]\n mintTicketSettings: MintTicketSettings | null\n inputBytesSize: number\n gentkContractAddress: string\n collectionOffers: CollectionOffer[]\n isFrame: boolean\n maxMintsPerFid?: number\n}\n\nexport interface GenerativeTokenWithCollection extends GenerativeToken {\n entireCollection: Objkt[]\n}\n\nexport interface GenerativeTokenFilters {\n id_in?: number[]\n flag_eq?: GenTokFlag\n flag_in?: GenTokFlag[]\n flag_neq?: GenTokFlag\n price_gte?: number\n price_lte?: number\n mintProgress_eq?: \"COMPLETED\" | \"ONGOING\" | \"ALMOST\"\n authorVerified_eq?: boolean\n searchQuery_eq?: string\n supply_lte?: number\n supply_gte?: number\n pricingMethod_eq?: GenTokPricing\n locked_eq?: boolean\n mintOpened_eq?: boolean\n fxparams_eq?: boolean\n redeemable_eq?: boolean\n}\n\nexport interface GenerativeTokenFeatureValue {\n value: string | boolean | number\n occur: number\n}\n\nexport interface GenerativeTokenFeature {\n name: string\n values: GenerativeTokenFeatureValue[]\n}\n","import { User } from \"./User\"\n\nexport enum EventStatus {\n PUBLISHED = \"PUBLISHED\",\n DRAFT = \"DRAFT\",\n HIDDEN = \"HIDDEN\",\n}\n\nexport enum EventAvailability {\n ONLINE = \"ONLINE\",\n IRL = \"IRL\",\n}\n\nexport interface LiveMintingEvent {\n id: string\n name: string\n description: string\n createdAt: string\n updatedAt: string\n startsAt: string\n endsAt: string\n projectIds: number[]\n onboarding?: EventOnboarding\n location?: string\n imageUrl?: string\n availabilities: EventAvailability[]\n status: EventStatus\n freeLiveMinting: boolean\n}\n\nexport type LiveMintingEventWithArtists = LiveMintingEvent & { artists: User[] }\n\nexport interface LiveMintingPassGroup {\n address: string\n label: string\n maxMints: number\n maxMintsPerProject: number\n event: LiveMintingEvent\n}\n\nexport interface LiveMintingPass {\n token: string\n group: LiveMintingPassGroup\n expiresAt: string\n}\n\nexport interface OnboardingComponent {\n id: number\n description: string\n content: string\n}\n\nexport interface EventOnboardingOnComponent {\n component: OnboardingComponent\n index: number\n}\n\nexport interface EventOnboarding {\n id: number\n enabled: boolean\n description: string\n components: EventOnboardingOnComponent[]\n}\n","export enum EWalletOperatorState {\n EMPTY = \"EMPTY\",\n INITIALIZING = \"INITIALIZING\",\n AVAILABLE = \"AVAILABLE\",\n PREPARING = \"PREPARING\",\n WAITING_CONFIRMATION = \"WAITING_CONFIRMATION\",\n}\n","import { ObjktMetadata, TokenFeature } from \"../Metadata\"\nimport { Action } from \"./Action\"\nimport { GenerativeToken } from \"./GenerativeToken\"\nimport { Listing } from \"./Listing\"\nimport { Offer } from \"./Offer\"\nimport { Split } from \"./Split\"\nimport { User } from \"./User\"\nimport { MediaImage } from \"./MediaImage\"\nimport { Redemption } from \"./Redemption\"\nimport { Redeemable } from \"./Redeemable\"\n\nexport interface Objkt {\n id: string\n version: number\n issuer: GenerativeToken\n owner?: User | null\n minter?: User | null\n assigned?: boolean\n generationHash?: string\n inputBytes?: string | null\n duplicate?: boolean\n iteration?: number\n mintedPrice?: number\n tags: string[]\n name?: string\n slug?: string\n metadata?: ObjktMetadata\n features?: TokenFeature[] | null\n rarity?: number | null\n metadataUri: string\n royalties: number\n royaltiesSplit: Split[]\n activeListing?: Listing | null\n offers?: Offer[]\n actions?: Action[]\n createdAt: string\n updatedAt: string\n assignedAt: string | null\n captureMedia?: MediaImage\n redemptions: Redemption[]\n availableRedeemables: Redeemable[]\n}\n\nexport interface ObjktFilters {\n activeListing_exist?: boolean\n redeemable_eq?: boolean\n redeemed_eq?: boolean\n}\n\nexport enum EObjktFeatureType {\n BOOLEAN = \"BOOLEAN\",\n STRING = \"STRING\",\n NUMBER = \"NUMBER\",\n}\n\nexport interface IObjktFeatureFilter {\n name: string\n values: string[]\n type: EObjktFeatureType\n}\n\nexport function objktFeatureType(value: any): EObjktFeatureType {\n const type = typeof value\n if (type === \"boolean\") return EObjktFeatureType.BOOLEAN\n else if (type === \"number\") return EObjktFeatureType.NUMBER\n else return EObjktFeatureType.STRING\n}\n","import { GenerativeToken } from \"./GenerativeToken\"\nimport { Objkt } from \"./Objkt\"\nimport { User } from \"./User\"\n\nexport interface Offer {\n id: string\n version: number\n buyer: User\n objkt: Objkt\n price: number\n createdAt: string\n cancelledAt: string\n acceptedAt: string\n}\n\nexport interface CollectionOffer {\n id: string\n version: number\n buyer: User\n token: GenerativeToken\n price: number\n amount: number\n createdAt: string\n cancelledAt: string\n completedAt: string\n}\n\nexport type AnyOffer = Offer | CollectionOffer\n\nexport const offerTypeGuard = (offer: AnyOffer): offer is Offer => {\n return (offer as Offer).objkt !== undefined\n}\n\n// export interface OfferFilters {\n// price_gte?: string\n// price_lte?: string\n// fullyMinted_eq?: boolean\n// authorVerified_eq?: boolean\n// searchQuery_eq?: string\n// tokenSupply_lte?: number\n// tokenSupply_gte?: number\n// }\n","import { EventMedia } from \"./EventMedia\"\nimport { GenerativeToken } from \"./GenerativeToken\"\nimport { Redemption } from \"./Redemption\"\nimport { ISplit, Split } from \"./Split\"\n\nexport interface IAddress {\n firstName: string\n lastName: string\n address: string\n postalCode: string\n city: string\n state: string\n country: string\n}\n\nexport interface Redeemable {\n address: string\n token: GenerativeToken\n baseAmount: number\n maxConsumptionsPerToken: number\n splits: Split[]\n redemptions: Redemption[]\n createdAt: string\n redeemedPercentage: number\n}\n\nexport interface RedeemableOptionValue {\n label: string\n amount: number\n}\n\nexport interface RedeemableOption {\n label: string\n values: RedeemableOptionValue[]\n}\n\nexport enum RedeemableUserActionType {\n INPUT_ADDRESS = \"INPUT_ADDRESS\",\n INPUT_EMAIL = \"INPUT_EMAIL\",\n INPUT_PHONE = \"INPUT_PHONE\",\n INPUT_LIST = \"INPUT_LIST\",\n}\n\nexport interface RedeemableUserAction {\n id: string\n type: RedeemableUserActionType\n options: any\n}\n\nexport interface RedeemablePublicDefinition {\n userActions: RedeemableUserAction[]\n}\n\nexport interface RedeemableDetails {\n address: string\n name: string\n active: boolean\n amount: number\n createdAt: Date\n expiresAt: string | null\n description: string\n successInfos: string\n fa2: string\n maxConsumptions: number\n options: RedeemableOption[]\n publicDefinition: RedeemablePublicDefinition\n splits: ISplit[]\n medias: {\n index: number\n media: EventMedia\n }[]\n}\n\n// type of the Redeemable user action options\nexport type RedeemableUserActionOptions = {\n [T in RedeemableUserActionType]: {\n [RedeemableUserActionType.INPUT_ADDRESS]: {\n label: string\n hint?: string\n }\n [RedeemableUserActionType.INPUT_EMAIL]: {\n label: string\n hint?: string\n }\n [RedeemableUserActionType.INPUT_PHONE]: {\n label: string\n hint?: string\n }\n [RedeemableUserActionType.INPUT_LIST]: {\n label: string\n hint?: string\n values: string[]\n multiple: boolean\n placeholder?: string\n }\n }[T]\n}\n\nexport type RedeemableUserActionInputType = {\n [T in RedeemableUserActionType]: {\n [RedeemableUserActionType.INPUT_ADDRESS]: IAddress\n [RedeemableUserActionType.INPUT_EMAIL]: string\n [RedeemableUserActionType.INPUT_PHONE]: string\n [RedeemableUserActionType.INPUT_LIST]: string\n }[T]\n}\n","export enum EReserveMethod {\n WHITELIST = \"WHITELIST\",\n // TOKEN_STAKERS = \"TOKEN_STAKERS\",\n MINT_PASS = \"MINT_PASS\",\n}\n\nexport interface IWhitelistData<T = number> {\n address: string\n pct: T\n}\n\nexport type ReserveWhiteList<T = number> = {\n method: EReserveMethod.WHITELIST\n data: IWhitelistData<T>[]\n amount: T\n}\n\nexport function isReserveWhiteList(\n reserve: IReserve\n): reserve is ReserveWhiteList {\n return reserve.method === EReserveMethod.WHITELIST\n}\n\nexport type ReserveMintPass<T = number> = {\n method: EReserveMethod.MINT_PASS\n data: string\n amount: T\n}\n\nexport function isReserveMintPass<T = number>(\n reserve: IReserve<T>\n): reserve is ReserveMintPass<T> {\n return reserve.method === EReserveMethod.MINT_PASS\n}\n\nexport type IReserve<T = number> = ReserveWhiteList<T> | ReserveMintPass<T>\n\nexport interface IReserveMintInput {\n method: EReserveMethod\n data: any\n}\n","import { Action } from \"./Action\"\nimport { GenerativeToken } from \"./GenerativeToken\"\nimport { Objkt } from \"./Objkt\"\nimport { Listing } from \"./Listing\"\nimport { AnyOffer, Offer } from \"./Offer\"\nimport { NFTArticle } from \"./Article\"\nimport { MediaImage } from \"./MediaImage\"\nimport { MintTicket } from \"./MintTicket\"\n\nexport interface UserItems {\n generativeTokens?: GenerativeToken[]\n objkts?: Objkt[]\n listings?: Listing[]\n actions?: Action[]\n}\n\nexport enum UserFlag {\n NONE = \"NONE\",\n REVIEW = \"REVIEW\",\n SUSPICIOUS = \"SUSPICIOUS\",\n MALICIOUS = \"MALICIOUS\",\n VERIFIED = \"VERIFIED\",\n}\n\nexport enum UserAuthorization {\n TOKEN_MODERATION = \"TOKEN_MODERATION\",\n ARTICLE_MODERATION = \"ARTICLE_MODERATION\",\n USER_MODERATION = \"USER_MODERATION\",\n GOVERNANCE_MODERATION = \"GOVERNANCE_MODERATION\",\n}\n\nexport enum UserType {\n REGULAR = \"REGULAR\",\n COLLAB_CONTRACT_V1 = \"COLLAB_CONTRACT_V1\",\n}\n\nexport const UserFlagValues: Record<UserFlag, number> = {\n NONE: 0,\n REVIEW: 1,\n SUSPICIOUS: 2,\n MALICIOUS: 3,\n VERIFIED: 10,\n}\n\nexport interface User {\n id: string\n name?: string\n type: UserType\n authorizations: UserAuthorization[]\n flag: UserFlag\n metadata?: Record<string, any>\n metadataUri?: string\n description?: string\n avatarUri?: string\n avatarMedia?: MediaImage\n generativeTokens?: GenerativeToken[]\n sales: Action[]\n actionsAsIssuer: Action[]\n actionsAsTarget: Action[]\n listings: Listing[]\n objkts: Objkt[]\n offers: Listing[]\n allOffersReceived: AnyOffer[]\n allOffersSent: Offer[]\n createdAt: Date\n updatedAt: Date\n // can be populated to merge the actions, however not returned by api\n actions?: Action[]\n // is set by aliases to manually enforce platform accounts\n platformOwned?: boolean\n donationAddress?: boolean\n descriptionLight?: string\n // is set by aliases to prevent profile from being linked\n preventLink?: boolean\n // as a regular user, it can have collaboration contracts\n collaborationContracts: Collaboration[]\n moderationReason?: string | null\n articles: NFTArticle[]\n mintTickets: MintTicket[]\n}\n\nexport interface ConnectedUser extends Partial<User> {\n id: string\n authorizations: UserAuthorization[]\n}\n\nexport interface Collaboration extends User {\n collaborators: User[]\n}\n\nexport interface UserAlias {\n // the tz address of the account to alias\n id: string\n // user object will have some properties replaced by the alias\n alias: Partial<User>\n}\n\nexport interface IUserCollectionFilters {\n issuer_in?: number[]\n assigned_eq?: boolean\n offer_ne?: string\n createdAt_lt?: string\n createdAt_gt?: string\n assignedAt_gt?: string\n assignedAt_lt?: string\n mintProgress_eq?: \"COMPLETED\" | \"ONGOING\" | \"ALMOST\"\n authorVerified_eq?: boolean\n author_in?: string[]\n searchQuery_eq?: string\n activeListing_exist?: \"LISTED\" | \"NOT LISTED\"\n}\n\nexport interface UserFilters {\n flag_in?: UserFlag[]\n searchQuery_eq?: string\n}\n","import { GPURenderingConfig } from \"@fxhash/config\"\nimport type { Collaboration } from \"./entities/User\"\nimport type { IPricingFixed, IPricingDutchAuction } from \"./entities/Pricing\"\nimport type { GenerativeTokenMetadata } from \"./Metadata\"\nimport type { GenTokLabel, GenTokPricing } from \"./entities/GenerativeToken\"\nimport type { ISplit } from \"./entities/Split\"\nimport type { IReserve } from \"./entities/Reserve\"\nimport type { Vec2 } from \"./Math\"\n\nexport interface GenerativeTokenInformations {\n metadata: GenerativeTokenMetadata\n editions: number\n enabled: boolean\n price?: number\n royaties?: number\n}\n\nexport enum CaptureTriggerMode {\n DELAY = \"DELAY\",\n FN_TRIGGER = \"FN_TRIGGER\",\n}\nexport const CaptureTriggerModeList = Object.values(CaptureTriggerMode)\n\nexport enum CaptureMode {\n CANVAS = \"CANVAS\",\n CUSTOM = \"CUSTOM\",\n VIEWPORT = \"VIEWPORT\",\n}\nexport const CaptureModeList = Object.values(CaptureMode)\n\nexport interface CaptureSettings {\n mode?: CaptureMode\n triggerMode?: CaptureTriggerMode\n canvasSelector?: string\n delay?: number\n resolution?: Vec2\n gpu?: boolean\n gif?: boolean\n frameCount?: number\n captureInterval?: number\n playbackFps?: number\n gpuVersion?: keyof GPURenderingConfig\n}\n\n// object defining the fx(params) when minting a Generative Token\nexport interface MintGenerativeParams {\n // JSON definition of the params\n definition: any\n // number of bytes required when minting params\n inputBytesSize: number\n}\n\nexport interface MintGenerativeData<N = string> {\n // whether the project is stored on-chain\n onChain?: boolean\n // if the project is authored as a collaboration\n collaboration?: Collaboration | null\n // the s3 key pointing to the project zip\n projectZipKey?: string\n // the ipfs uri pointing to the project with URL params\n cidUrlParams?: string\n // a hash to verify that the first matches\n authHash1?: string\n // the hash selector for the preview\n previewHash?: string\n // the iteration selection for the preview\n previewIteration?: string\n // the minter selection for the preview\n previewMinter?: string\n // the byte string of param values for the preview\n previewInputBytes?: string | null\n // the ipfs uri to the preview\n cidPreview?: string\n // the ipfs uri to the thumbnail\n cidThumbnail?: string\n // a hash to verify the 2 ipfs uri\n authHash2?: string\n // the distribution parameters\n distribution?: GenTokDistributionForm<N>\n // capture settings\n captureSettings?: CaptureSettings\n // general settings\n settings?: GenTokenSettings\n // fx(params) settings\n params?: MintGenerativeParams\n // general informations about the token\n informations?: GenTokenInformationsForm\n // minted successful\n minted?: boolean\n // version of the snippet the token is minted with\n snippetVersion?: string | null\n}\n\n/**\n * This type describes the constraints that can be applied to the minting of a generative token\n * The different types in order are:\n * hash: the hash of the project\n * minter: the minter of the project\n * iteration: the iteration of the project\n * inputBytes: the serialized input bytes of the project\n */\nexport type ConstraintVariant = [string, string, string, string]\n\nexport interface GenTokConstrains {\n hashConstraints?: string[] | null\n minterConstraints?: string[] | null\n iterationConstraints?: string[] | null\n paramsConstraints?: string[] | null\n}\n\nexport interface ExplorationSettings extends GenTokConstrains {\n enabled: boolean\n}\n\nexport interface GenTokenSettings {\n exploration?: {\n preMint?: ExplorationSettings\n postMint?: ExplorationSettings\n }\n}\n\nexport type FrameMintingFormValues = {\n enabled: boolean\n mintsPerFid: number\n}\n\nexport interface GenTokPricingForm<N> {\n pricingMethod?: GenTokPricing\n pricingFixed: Partial<IPricingFixed<N>>\n pricingDutchAuction: Partial<IPricingDutchAuction<N>>\n lockForReserves?: boolean\n royalties?: N\n splitsPrimary: ISplit[]\n splitsSecondary: ISplit[]\n}\n\nexport enum GenTokEditions {\n FIXED = \"FIXED\",\n OPENED = \"OPENED\",\n}\n\nexport type GenTokOpenEditionsForm = {\n closesAt?: Date | null\n}\n\nexport type GenTokFixedEditionsForm<N> = {\n amount: N\n}\n\nexport type GenTokEditionsForm<N> = {\n type: GenTokEditions\n fixed: GenTokFixedEditionsForm<N>\n opened: GenTokOpenEditionsForm\n}\n\nexport interface GenTokDistributionForm<N> {\n editions: GenTokEditionsForm<N>\n enabled: boolean\n reserves: IReserve<N>[]\n gracingPeriod?: N\n frameMinting?: FrameMintingFormValues\n}\n\nexport interface GenTokenInformationsForm {\n name: string\n description: string\n mintingInstructions: string\n childrenDescription: string\n tags: string\n labels: GenTokLabel[]\n}\n","export type SandboxFiles = Record<string, { blob?: Blob; url: string }>\n\nexport enum SandboxFileError {\n UNKNOWN = \"UNKNOWN\",\n WRONG_FORMAT = \"WRONG_FORMAT\",\n NO_INDEX_HTML = \"NO_INDEX_HTML\",\n NO_SNIPPET = \"NO_SNIPPET\",\n FAILED_UNZIP = \"FAILED_UNZIP\",\n}\n","import { TokenFeature } from \"./Metadata\"\nimport { CaptureMode, CaptureTriggerMode } from \"./Mint\"\n\nexport enum ProfileUploadError {\n UNKNOWN = \"UNKNOWN\",\n WRONG_FORMAT = \"WRONG_FORMAT\",\n IPFS_UPLOAD_FAILED = \"IPFS_UPLOAD_FAILED\",\n}\n\nexport interface ProfileUploadResponse {\n metadataUri: string\n}\n\nexport enum AvatarUploadError {\n UNKNOWN = \"UNKNOWN\",\n NO_FILE = \"NO_FILE\",\n WRONG_FORMAT = \"WRONG_FORMAT\",\n IPFS_UPLOAD_FAILED = \"IPFS_UPLOAD_FAILED\",\n}\n\nexport interface AvatarUploadResponse {\n avatarUri: string\n}\n\nexport interface MintGenUploadProjectResponse {\n cidParams: string\n authenticationHash: string\n}\n\nexport interface TempGenUploadProjectResponse {\n zipKey: string\n projectCid: string\n authenticationHash: string\n}\n\nexport interface MintGenUploadProjectResponse {\n zipKey: string\n projectCid: string\n authenticationHash: string\n}\n\nexport enum StaticGenError {\n UNKNOWN = \"UNKNOWN\",\n MISSING_PARAMETERS = \"MISSING_PARAMETERS\",\n AUTH_FAILED = \"AUTH_FAILED\",\n INVALID_HASH = \"INVALID_HASH\",\n IPFS_UPLOAD_FAILED = \"IPFS_UPLOAD_FAILED\",\n NO_SNIPPET = \"NO_SNIPPET\",\n}\n\nexport interface StaticGenResponse {\n cidStatic: string\n authenticationHash: string\n}\n\n//\n// Responses related to generating Previews in the case of calling the\n// /preview endpoint of the file-api\n//\n\nexport enum PreviewError {\n UNKNOWN = \"UNKNOWN\",\n MISSING_PARAMETERS = \"MISSING_PARAMETERS\",\n AUTH_FAILED = \"AUTH_FAILED\",\n INCORRECT_PARAMETERS = \"INCORRECT_PARAMETERS\",\n PREVIEW_ERROR = \"PREVIEW_ERROR\",\n IPFS_ERROR = \"IPFS_ERROR\",\n}\n\nexport interface PreviewErrorResponse {\n error: PreviewError\n}\n\nexport interface PreviewResponse {\n cidPreview: string\n cidThumbnail: string\n authenticationHash: string\n mode: CaptureMode\n triggerMode: CaptureTriggerMode\n resX: number\n resY: number\n delay: number\n canvasSelector: string\n gpu: boolean\n}\n\n//\n// Responses related to generating Previews in the case of Testing\n//\n\nexport enum TestPreviewError {\n UNKNOWN = \"UNKNOWN\",\n TIMEOUT = \"TIMEOUT\",\n EXTRACT_SERVICE_UNREACHABLE = \"EXTRACT_SERVICE_UNREACHABLE\",\n INVALID_INPUT_PARAMETERS = \"INVALID_INPUT_PARAMETERS\",\n JOB_QUEUE_FAILED = \"JOB_QUEUE_FAILED\",\n JOB_EXECUTION_FAILED = \"JOB_EXECUTION_FAILED\",\n}\n\nexport interface TestPreviewResponse {\n capture: string\n features?: string\n}\n\nexport interface TestPreviewErrorResponse {\n error: TestPreviewError\n}\n\nexport enum MetadataError {\n UNKNOWN = \"UNKNOWN\",\n IPFS_ERROR = \"IPFS_ERROR\",\n UPLOAD_ERROR = \"UPLOAD_ERROR\",\n METADATA_EXISTS = \"METADATA_EXISTS\",\n}\n\nexport interface MetadataResponse {\n cid: string\n}\n\nexport interface MetadataEthResponse {\n key: string\n}\n\nexport enum MintError {\n UNKNOWN = \"UNKNOWN\",\n BAD_REQUEST = \"BAD_REQUEST\",\n TOKEN_NOT_EXISTS = \"TOKEN_NOT_EXISTS\",\n TOKEN_UNAVAILABLE = \"TOKEN_UNAVAILABLE\",\n FAIL_GET_METADATA = \"FAIL_GET_METADATA\",\n WRONG_TOKEN_METADATA = \"WRONG_TOKEN_METADATA\",\n FAIL_AUTHENTICATE = \"FAIL_AUTHENTICATE\",\n FAIL_GET_TOKEN = \"FAIL_GET_TOKEN\",\n INVALID_TOKEN = \"INVALID_TOKEN\",\n FAIL_ADD_IPFS = \"FAIL_ADD_IPFS\",\n FAIL_PREVIEW = \"FAIL_PREVIEW\",\n}\n\nexport const MintErrors: MintError[] = Object.values(MintError)\n\nexport enum MintProgressMessage {\n // call API to get token data (fail: TOKEN_NOT_EXISTS)\n GET_TOKEN_DATA = \"GET_TOKEN_DATA\",\n // get the metadata from IPFS (fail: FAIL_GET_METADATA)\n GET_TOKEN_METADATA = \"GET_TOKEN_METADATA\",\n // get URL params files on IPFS (fail: FAIL_GET_TOKEN)\n GET_GENERATIVE_TOKEN_CONTENTS = \"GET_GENERATIVE_TOKEN_CONTENTS\",\n // upload project to ipfs (fail: FAIL_ADD_IPFS)\n ADD_CONTENT_IPFS = \"ADD_CONTENT_IPFS\",\n // generate preview (fail: FAIL_PREVIEW)\n GENERATE_PREVIEW = \"GENERATE_PREVIEW\",\n // authenticate token\n AUTHENTICATE_TOKEN = \"AUTHENTICATE_TOKEN\",\n}\n\nexport interface MintResponse {\n cidMetadata: string\n cidGenerative: string\n cidPreview: string\n}\n\nexport enum SigningState {\n NONE = \"NONE\",\n NOT_FOUND = \"NOT_FOUND\",\n QUEUED = \"QUEUED\",\n GENERATING_METADATA = \"GENERATING_METADATA\",\n METADATA_GENERATED = \"METADATA_GENERATED\",\n CALLING_CONTRACT = \"CALLING_CONTRACT\",\n SIGNED = \"SIGNED\",\n}\n\nexport interface SigningProgress {\n state: SigningState\n extra?: any\n}\n\nexport interface SigningData {\n cidGenerative?: string\n cidPreview?: string\n features?: TokenFeature[]\n}\n","import type { ISplit } from \"./entities\"\nimport type { CaptureSettings, GenTokenSettings } from \"./Mint\"\n\nexport interface TokenMetadata {\n \"\": string\n name: string\n symbol: string\n decimals: number\n}\n\nexport interface HistoryMetadata {\n [key: string]: any\n}\n\nexport interface TokenFormat {\n uri: string\n mimeType: string\n}\n\n// token features as they can be exported by a Token\nexport type RawTokenFeatures = Record<string, any>\n\n// only types allowed for token features\nexport type TokenFeatureValueType = string | number | boolean\n\nexport interface TokenMetadataFeature {\n name: string\n value: TokenFeatureValueType\n}\n\nexport interface TokenFeature {\n name: string\n value: TokenFeatureValueType\n rarity?: number\n}\n\n// errors which can be returned during processing RawTokenFeatures into TokenFeatures\nexport enum ProcessRawTokenFeatureErrorType {\n UNKNOWN = \"UNKNOWN\",\n INVALID_PROPERTY_TYPE = \"INVALID_PROPERTY_TYPE\",\n INVALID_FEATURES_SIGNATURE = \"INVALID_FEATURES_SIGNATURE\",\n}\nexport const ProcessRawTokenFeatureErrorTypes = Object.values(\n ProcessRawTokenFeatureErrorType\n)\n\n// the error thrown during Raw Token Features processing\nexport type ProcessRawTokenFeatureError = {\n type: ProcessRawTokenFeatureErrorType\n extra?: string\n}\n\ntype GenerativeTokenMetadataVersion = \"0.1\" | \"0.2\" | \"0.3\" | \"0.4\" | \"0.5\"\n\ntype BaseGenerativeTokenMetadata = {\n name: string\n description: string\n childrenDescription: string\n mintingInstructions: string\n tags: string[]\n artifactUri: string\n displayUri: string\n thumbnailUri: string\n generativeUri: string\n authenticityHash: string\n capture: CaptureSettings\n settings?: GenTokenSettings | null\n symbol: string\n version?: GenerativeTokenMetadataVersion\n}\n\nexport type GenerativeTokenMetadataV1 = BaseGenerativeTokenMetadata\n\nexport type GenerativeTokenMetadataV2 = GenerativeTokenMetadataV1 & {\n previewHash?: string\n previewIteration?: string\n previewMinter?: string\n previewInputBytes?: string\n mintingInstructions: string\n}\n\nexport type GenerativeTokenMetadataV3 = GenerativeTokenMetadataV2 & {\n params: {\n definition: any\n inputBytesSize: number\n }\n snippetVersion: string\n}\n\nexport type GenerativeTokenMetadataV4 = GenerativeTokenMetadataV3 & {\n primarySplits: ISplit[]\n}\n\nexport type GenerativeTokenMetadataV5 = GenerativeTokenMetadataV4 & {\n chain: string\n}\n\nexport type GenerativeTokenMetadata =\n | GenerativeTokenMetadataV1\n | (GenerativeTokenMetadataV2 & { version: \"0.2\" })\n | (GenerativeTokenMetadataV3 & { version: \"0.3\" })\n | (GenerativeTokenMetadataV4 & { version: \"0.4\" })\n | (GenerativeTokenMetadataV5 & { version: \"0.5\" })\n\nexport type ObjktMetadata = {\n features?: TokenMetadataFeature[] | null\n} & GenerativeTokenMetadata\n\n//\n// ETH SPECIFIC\n//\nexport interface Eth721ContractMetadata {\n name: string\n description: string\n image: string\n external_link: string\n collaborators?: string[]\n ipfsBackupUri?: string\n}\n\nexport interface Eth721TokenMetadata {\n name: string\n description: string\n image: string\n external_url: string\n animation_url?: string\n collaborators?: string[]\n ipfsBackupUri?: string\n}\n\n//\n// ETH SPECIFIC\n//\nexport interface Eth721ContractMetadata {\n name: string\n description: string\n image: string\n external_link: string\n collaborators?: string[]\n ipfsBackupUri?: string\n}\n\nexport interface Eth721TokenMetadata {\n name: string\n description: string\n image: string\n external_url: string\n animation_url?: string\n collaborators?: string[]\n ipfsBackupUri?: string\n}\n\n//\n// Articles\n//\n\nexport interface ArticleMetadata {\n decimals: number\n symbol: \"ARTKL\"\n name: string\n description: string\n minter?: string\n creators?: string[]\n contributors?: string[]\n type: \"article\"\n tags: string[]\n language: string\n artifactUri: string\n displayUri: string\n thumbnailUri: string\n thumbnailCaption?: string\n platforms?: string[]\n}\n\nexport interface MarketplaceMetadataEvm {\n external: boolean\n source?: string\n hasRoyalties: boolean\n}\n","import { enumKeys } from \"@fxhash/utils\"\nimport { WalletManager } from \"./WalletManager\"\n\n/**\n * A Blockchain Environment is based on the classification of the \"blockchain\n * engine\".\n * TODO: should decide between BlockchainEnv & BlockchainNetwork and harmonize\n */\nexport enum BlockchainEnv {\n EVM = \"EVM\",\n TEZOS = \"TEZOS\",\n}\n\n/**\n * An array of all the `BlockchainEnv` enum values.\n */\nexport const BlockchainEnvs = Object.values(BlockchainEnv)\n\nexport enum BlockchainNetwork {\n TEZOS = \"TEZOS\",\n ETHEREUM = \"ETHEREUM\",\n}\n\nexport const BlockchainNetworks = Object.keys(\n BlockchainNetwork\n) as BlockchainNetwork[]\n\nexport enum TransactionType {\n OFFCHAIN = \"OFFCHAIN\",\n ONCHAIN = \"ONCHAIN\",\n}\n\nexport enum BlockchainType {\n ETHEREUM = \"ETHEREUM\",\n TEZOS = \"TEZOS\",\n BASE = \"BASE\",\n}\nexport type Blockchain = keyof typeof BlockchainType\nexport const BlockchainTypes = enumKeys(BlockchainType)\n\nexport type ChainNetworkToChainTypemap = {\n [T in BlockchainNetwork]: {\n [BlockchainNetwork.ETHEREUM]: BlockchainType.ETHEREUM\n [BlockchainNetwork.TEZOS]: BlockchainType.TEZOS\n }[T]\n}\n\nconst chainNetworkToChainMap: ChainNetworkToChainTypemap = {\n [BlockchainNetwork.ETHEREUM]: BlockchainType.ETHEREUM,\n [BlockchainNetwork.TEZOS]: BlockchainType.TEZOS,\n}\n\n/**\n * Given a BlockchainNetwork, returns an associated BlockchainType of preference\n */\nexport function networkToChain<N extends BlockchainNetwork>(\n network: N\n): ChainNetworkToChainTypemap[N] {\n return chainNetworkToChainMap[network]\n}\n\nexport type ChainToChainEnvTypemap = {\n [T in BlockchainType]: {\n [BlockchainType.BASE]: BlockchainEnv.EVM\n [BlockchainType.ETHEREUM]: BlockchainEnv.EVM\n [BlockchainType.TEZOS]: BlockchainEnv.TEZOS\n }[T]\n}\n\nexport const chainToChainEnvMap: {\n [K in BlockchainType]: ChainToChainEnvTypemap[K]\n} = {\n [BlockchainType.BASE]: BlockchainEnv.EVM,\n [BlockchainType.ETHEREUM]: BlockchainEnv.EVM,\n [BlockchainType.TEZOS]: BlockchainEnv.TEZOS,\n}\n\nexport type ChainEnvToChainTypemap = {\n [E in BlockchainEnv]: {\n [BlockchainEnv.EVM]: BlockchainType.ETHEREUM\n [BlockchainEnv.TEZOS]: BlockchainType.TEZOS\n }[E]\n}\n\nexport const chainEnvToChainMap: {\n [E in BlockchainEnv]: ChainEnvToChainTypemap[E]\n} = {\n [BlockchainEnv.EVM]: BlockchainType.ETHEREUM,\n [BlockchainEnv.TEZOS]: BlockchainType.TEZOS,\n}\n\n/**\n * A Contract Operation defines a set of operations to run at different\n * moments of the lifecycle of an operation. When an operation needs to be sent,\n * its corresponding class is instantiated with the operation parameters and\n * the following steps are performed:\n * - prepare: preparation steps before calling a contract\n * - call: the actual contract call\n * - success: a message is emitted\n * In case of failure, the whole lifecycle restarts, if the RPC is at cause it\n * is swapped with another one. This logic is handled by an external runner.\n */\n\nexport abstract class ContractOperation<\n TWalletManager extends WalletManager,\n TParams,\n TData,\n> {\n manager: TWalletManager\n params: TParams\n chain: BlockchainType\n\n constructor(manager: TWalletManager, params: TParams, chain: BlockchainType) {\n this.manager = manager\n this.params = params\n this.chain = chain\n }\n\n /**\n * Runs the required preparations (such as fetching the contracts to get\n * the entrypoints signature), or any other sync/async operation considered\n * not to be a part of the actual contract call.\n * Can store required values in the members of the instance.\n */\n abstract prepare(): Promise<void>\n\n /**\n * The actual calls to the contracts, which results in some Transaction\n * Wallet Operation and can be observed to track the success/failure of\n * the transaction emitted\n */\n abstract call(): Promise<TData>\n\n /**\n * Each Contract Operation should implement a success message based on the\n * operation parameters, and so to provide meaningful feedback to users on\n * different parts of the front.\n */\n abstract success(): string\n}\n\n// a generic type for ContractOperation polymorphism\nexport type TContractOperation<\n TWalletManager extends WalletManager,\n TParams,\n TData,\n> = new (\n manager: TWalletManager,\n params: TParams,\n chain: BlockchainType\n) => ContractOperation<TWalletManager, TParams, TData>\n","import { PromiseResult, success } from \"@fxhash/utils\"\nimport { BlockchainType, TContractOperation } from \"./ContractOperation\"\nimport { WalletCache } from \"./WalletCache\"\n\nexport class PendingSigningRequestError extends Error {\n name = \"PendingSigningRequestError\" as const\n message = \"There is already a pending signing request\"\n}\n\nexport enum WalletConnectionErrorReason {\n INCORRECT_CHAIN = \"INCORRECT_CHAIN\",\n}\n\nexport class WalletConnectionError extends Error {\n name = \"WalletConnectionError\" as const\n\n constructor(readonly reason: WalletConnectionErrorReason) {\n super(`Wallet connection failed due to ${reason} error`)\n }\n}\n\nexport class UserRejectedError extends Error {\n name = \"UserRejectedError\" as const\n message = \"User rejected the request\"\n}\n\nexport class InsufficientFundsError extends Error {\n name = \"InsufficientFundsError\" as const\n message =\n \"The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account.\"\n}\n\nexport class TransactionRevertedError extends Error {\n name = \"TransactionRevertedError\" as const\n errorName: string\n\n constructor(readonly paramErrorName: string) {\n super(`Transaction reverted with error: ${paramErrorName}`)\n this.errorName = paramErrorName\n }\n}\n\nexport class TransactionReceiptError extends Error {\n name = \"TransactionReceiptError\" as const\n\n constructor() {\n super(\n `Failed to locate transaction - please check for pending transactions in your wallet before resubmitting.`\n )\n }\n}\n\nexport class TransactionUnknownError extends Error {\n name = \"TransactionUnknownError\" as const\n errorName?: string\n\n constructor(readonly paramErrorName?: string) {\n super(\n paramErrorName ||\n `An unknown error occurred waiting for transaction - please check for pending transactions in your wallet before resubmitting.`\n )\n this.errorName = paramErrorName\n }\n}\n\nexport class NetworkError extends Error {\n name = \"NetworkError\" as const\n message = \"Network error\"\n}\n\nexport class BadRequestError extends Error {\n name = \"BadRequestError\" as const\n message = \"Bad request\"\n}\n\nexport type SignMessageOptions = {\n /**\n * An string-identifier to define the type of the operation. It is used to\n * classify signatures in the cache.\n */\n type: string\n\n /**\n * - wallet-only: the cache is bypassed and signature must come from wallet\n * - cache-first: the cache is checked first, and if a valid signature is\n * found it's returned, otherwise the wallet is\n */\n policy: \"wallet-only\" | \"cache-first\"\n}\n\nexport type MessageSigned = {\n signedAt: Date\n message: string\n signature: string\n}\n\nexport abstract class WalletManager {\n public address: string\n private cache = WalletCache\n\n constructor(address: string) {\n this.address = address\n }\n\n /**\n * Must be implemented by wallets for custom signing of messages.\n * @param message The message to sign.\n * @returns The signature of the message.\n */\n abstract signMessageWithWallet(\n message: string\n ): PromiseResult<\n string,\n PendingSigningRequestError | UserRejectedError | WalletConnectionError\n >\n\n /**\n * Sign a message using the wallet associated with the manager. Some sign\n * options can be provided, mainly for implementing cache-fetching for\n * avoiding redundant signatures from the wallet.\n *\n * Signatures are stored in cache so that users don't have to repeatedly\n * sign messages for similar operations, as long as messages are considered to\n * be valid for their usage. This function returns a message signed of a\n * given type if it's still valid in cache. A signature is considered valid\n * if it was made less than 4 minutes ago.\n *\n * @remark For now, the cache policy enforces a 5 min cache time for the\n * signatures, after which they are considered invalid. There isn't any way to\n * change this with the current implementation, although it could be added.\n *\n * @param options Sign options, which can be used to determine whether the\n * signature should be fetched from cache or not.\n */\n public signMessage(\n message: string,\n options?: SignMessageOptions\n ): PromiseResult<\n MessageSigned,\n PendingSigningRequestError | UserRejectedError | WalletConnectionError\n > {\n return new Promise(async resolve => {\n // if options allow, get valid signature from the cache\n if (options) {\n const fromCache = this.cache.signedMessageFromCache(\n this.address,\n options\n )\n if (fromCache) return resolve(success(fromCache))\n }\n // sign message with wallet, cache the message and return it\n const res = await this.signMessageWithWallet(message)\n if (res.isFailure()) return resolve(res)\n const messageSigned: MessageSigned = {\n message,\n signature: res.value,\n signedAt: new Date(),\n }\n if (options)\n this.cache.cacheMessageSigned(this.address, messageSigned, options)\n return resolve(success(messageSigned))\n })\n }\n\n abstract sendTransaction<TParams>(\n operation: TContractOperation<this, TParams, any>,\n params: TParams,\n chain: BlockchainType\n ): PromiseResult<\n unknown,\n | WalletConnectionError\n | PendingSigningRequestError\n | UserRejectedError\n | InsufficientFundsError\n | TransactionRevertedError\n | TransactionUnknownError\n >\n\n abstract waitForTransaction(params: {\n hash: string\n // TODO proper error type\n }): PromiseResult<\n unknown,\n | UserRejectedError\n | TransactionRevertedError\n | TransactionReceiptError\n | TransactionUnknownError\n >\n}\n\n// a generic type for ContractOperation polymorphism\nexport type TWalletManager = new (address: string) => WalletManager\n","import { MessageSigned, SignMessageOptions } from \"./WalletManager\"\n\nclass WalletCacheClass {\n /**\n * A map of addresses -> signature store, where signature store is a map of\n * type -> message signed, where message signed is the last message signed\n * of such type.\n */\n private signaturesCache: Record<string, Record<string, MessageSigned>>\n\n constructor() {\n this.signaturesCache = {}\n }\n\n /**\n * Get a signature from the cache, if the options allow, and if a valid\n * signature can be found in the cache.\n */\n public signedMessageFromCache(\n address: string,\n options: SignMessageOptions\n ): MessageSigned | null {\n if (!options.type) return null\n if (options.policy === \"wallet-only\") return null\n // if we don't have a cache for this address\n if (!this.signaturesCache[address]) return null\n // if we don't have a signature of such a type stored\n if (!this.signaturesCache[address][options.type]) return null\n // check if the message is still valid, that is if it was signed less than\n // 4m ago\n const msg = this.signaturesCache[address][options.type]\n if (Date.now() - msg.signedAt.getTime() < 1000 * 60 * 4) return msg\n return null\n }\n\n /**\n * Cache a (message, signature) locally.\n */\n public cacheMessageSigned(\n address: string,\n messageSigned: MessageSigned,\n options: SignMessageOptions\n ) {\n if (!options.type) return\n if (!this.signaturesCache[address]) {\n this.signaturesCache[address] = {}\n }\n this.signaturesCache[address][options.type] = messageSigned\n }\n}\n\nexport const WalletCache = new WalletCacheClass()\n"],"mappings":";AA8EO,IAAM,mBAAmB,CAAC,WAAmC;AAClE,SAAQ,OAAmB,aAAa;AAC1C;;;ACzEO,IAAK,kBAAL,kBAAKA,qBAAL;AACL,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,kBAAe;AACf,EAAAA,iBAAA,oBAAiB;AACjB,EAAAA,iBAAA,iBAAc;AACd,EAAAA,iBAAA,mBAAgB;AAChB,EAAAA,iBAAA,YAAS;AACT,EAAAA,iBAAA,iBAAc;AACd,EAAAA,iBAAA,mBAAgB;AAChB,EAAAA,iBAAA,oBAAiB;AACjB,EAAAA,iBAAA,0BAAuB;AACvB,EAAAA,iBAAA,kBAAe;AACf,EAAAA,iBAAA,oBAAiB;AACjB,EAAAA,iBAAA,oBAAiB;AACjB,EAAAA,iBAAA,eAAY;AACZ,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,0BAAuB;AACvB,EAAAA,iBAAA,yBAAsB;AACtB,EAAAA,iBAAA,oBAAiB;AACjB,EAAAA,iBAAA,qBAAkB;AAClB,EAAAA,iBAAA,8BAA2B;AAC3B,EAAAA,iBAAA,+BAA4B;AAC5B,EAAAA,iBAAA,6BAA0B;AAC1B,EAAAA,iBAAA,8BAA2B;AAC3B,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,0BAAuB;AACvB,EAAAA,iBAAA,yBAAsB;AACtB,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,0BAAuB;AACvB,EAAAA,iBAAA,yBAAsB;AACtB,EAAAA,iBAAA,WAAQ;AACR,EAAAA,iBAAA,qBAAkB;AAClB,EAAAA,iBAAA,oBAAiB;AACjB,EAAAA,iBAAA,eAAY;AACZ,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,yBAAsB;AACtB,EAAAA,iBAAA,0BAAuB;AACvB,EAAAA,iBAAA,wBAAqB;AACrB,EAAAA,iBAAA,yBAAsB;AACtB,EAAAA,iBAAA,0BAAuB;AACvB,EAAAA,iBAAA,2BAAwB;AACxB,EAAAA,iBAAA,oCAAiC;AACjC,EAAAA,iBAAA,qCAAkC;AAClC,EAAAA,iBAAA,mCAAgC;AAChC,EAAAA,iBAAA,oCAAiC;AACjC,EAAAA,iBAAA,sBAAmB;AACnB,EAAAA,iBAAA,gCAA6B;AAC7B,EAAAA,iBAAA,+BAA4B;AAC5B,EAAAA,iBAAA,aAAU;AACV,EAAAA,iBAAA,iBAAc;AACd,EAAAA,iBAAA,uBAAoB;AACpB,EAAAA,iBAAA,uBAAoB;AACpB,EAAAA,iBAAA,oBAAiB;AACjB,EAAAA,iBAAA,8BAA2B;AAC3B,EAAAA,iBAAA,6BAA0B;AAC1B,EAAAA,iBAAA,iCAA8B;AAxDpB,SAAAA;AAAA,GAAA;;;ACAL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,UAAO;AACP,EAAAA,aAAA,WAAQ;AACR,EAAAA,aAAA,cAAW;AACX,EAAAA,aAAA,sBAAmB;AACnB,EAAAA,aAAA,eAAY;AACZ,EAAAA,aAAA,YAAS;AANC,SAAAA;AAAA,GAAA;;;ACQL,IAAK,aAAL,kBAAKC,gBAAL;AACL,EAAAA,YAAA,UAAO;AACP,EAAAA,YAAA,WAAQ;AACR,EAAAA,YAAA,cAAW;AACX,EAAAA,YAAA,sBAAmB;AACnB,EAAAA,YAAA,eAAY;AACZ,EAAAA,YAAA,YAAS;AANC,SAAAA;AAAA,GAAA;AASL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,WAAQ;AACR,EAAAA,eAAA,mBAAgB;AAFN,SAAAA;AAAA,GAAA;AAKL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,0BAAA,uBAAoB,KAApB;AACA,EAAAA,0BAAA,oBAAiB,KAAjB;AACA,EAAAA,0BAAA,eAAY,KAAZ;AACA,EAAAA,0BAAA,uBAAoB,OAApB;AACA,EAAAA,0BAAA,cAAW,OAAX;AACA,EAAAA,0BAAA,iBAAc,OAAd;AACA,EAAAA,0BAAA,SAAM,OAAN;AACA,EAAAA,0BAAA,WAAQ,OAAR;AACA,EAAAA,0BAAA,oCAAiC,OAAjC;AACA,EAAAA,0BAAA,8BAA2B,OAA3B;AACA,EAAAA,0BAAA,qBAAkB,UAAlB;AAXU,SAAAA;AAAA,GAAA;AAcL,IAAK,mBAAL,kBAAKC,sBAAL;AACL,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,eAAY;AAHF,SAAAA;AAAA,GAAA;AAgBL,IAAM,qBAA4C;AAAA,EACvD,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,aACE;AACJ;AAEO,IAAM,yBAAgD;AAAA,EAC3D,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,aAAa;AACf;AA0CO,IAAK,yBAAL,kBAAKC,4BAAL;AACL,EAAAA,wBAAA,YAAW;AACX,EAAAA,wBAAA,QAAK;AACL,EAAAA,wBAAA,YAAS;AACT,EAAAA,wBAAA,aAAU;AAJA,SAAAA;AAAA,GAAA;;;AChHL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,eAAY;AACZ,EAAAA,aAAA,WAAQ;AACR,EAAAA,aAAA,YAAS;AAHC,SAAAA;AAAA,GAAA;AAML,IAAK,oBAAL,kBAAKC,uBAAL;AACL,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,SAAM;AAFI,SAAAA;AAAA,GAAA;;;ACRL,IAAK,uBAAL,kBAAKC,0BAAL;AACL,EAAAA,sBAAA,WAAQ;AACR,EAAAA,sBAAA,kBAAe;AACf,EAAAA,sBAAA,eAAY;AACZ,EAAAA,sBAAA,eAAY;AACZ,EAAAA,sBAAA,0BAAuB;AALb,SAAAA;AAAA,GAAA;;;ACiDL,IAAK,oBAAL,kBAAKC,uBAAL;AACL,EAAAA,mBAAA,aAAU;AACV,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,YAAS;AAHC,SAAAA;AAAA,GAAA;AAYL,SAAS,iBAAiB,OAA+B;AAC9D,QAAM,OAAO,OAAO;AACpB,MAAI,SAAS,UAAW,QAAO;AAAA,WACtB,SAAS,SAAU,QAAO;AAAA,MAC9B,QAAO;AACd;;;ACrCO,IAAM,iBAAiB,CAAC,UAAoC;AACjE,SAAQ,MAAgB,UAAU;AACpC;;;ACKO,IAAK,2BAAL,kBAAKC,8BAAL;AACL,EAAAA,0BAAA,mBAAgB;AAChB,EAAAA,0BAAA,iBAAc;AACd,EAAAA,0BAAA,iBAAc;AACd,EAAAA,0BAAA,gBAAa;AAJH,SAAAA;AAAA,GAAA;;;ACpCL,IAAK,iBAAL,kBAAKC,oBAAL;AACL,EAAAA,gBAAA,eAAY;AAEZ,EAAAA,gBAAA,eAAY;AAHF,SAAAA;AAAA,GAAA;AAiBL,SAAS,mBACd,SAC6B;AAC7B,SAAO,QAAQ,WAAW;AAC5B;AAQO,SAAS,kBACd,SAC+B;AAC/B,SAAO,QAAQ,WAAW;AAC5B;;;ACjBO,IAAK,WAAL,kBAAKC,cAAL;AACL,EAAAA,UAAA,UAAO;AACP,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,gBAAa;AACb,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,cAAW;AALD,SAAAA;AAAA,GAAA;AAQL,IAAK,oBAAL,kBAAKC,uBAAL;AACL,EAAAA,mBAAA,sBAAmB;AACnB,EAAAA,mBAAA,wBAAqB;AACrB,EAAAA,mBAAA,qBAAkB;AAClB,EAAAA,mBAAA,2BAAwB;AAJd,SAAAA;AAAA,GAAA;AAOL,IAAK,WAAL,kBAAKC,cAAL;AACL,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,wBAAqB;AAFX,SAAAA;AAAA,GAAA;AAKL,IAAM,iBAA2C;AAAA,EACtD,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AACZ;;;ACzBO,IAAK,qBAAL,kBAAKC,wBAAL;AACL,EAAAA,oBAAA,WAAQ;AACR,EAAAA,oBAAA,gBAAa;AAFH,SAAAA;AAAA,GAAA;AAIL,IAAM,yBAAyB,OAAO,OAAO,kBAAkB;AAE/D,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,YAAS;AACT,EAAAA,aAAA,YAAS;AACT,EAAAA,aAAA,cAAW;AAHD,SAAAA;AAAA,GAAA;AAKL,IAAM,kBAAkB,OAAO,OAAO,WAAW;AA4GjD,IAAK,iBAAL,kBAAKC,oBAAL;AACL,EAAAA,gBAAA,WAAQ;AACR,EAAAA,gBAAA,YAAS;AAFC,SAAAA;AAAA,GAAA;;;ACtIL,IAAK,mBAAL,kBAAKC,sBAAL;AACL,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,kBAAe;AACf,EAAAA,kBAAA,mBAAgB;AAChB,EAAAA,kBAAA,gBAAa;AACb,EAAAA,kBAAA,kBAAe;AALL,SAAAA;AAAA,GAAA;;;ACCL,IAAK,qBAAL,kBAAKC,wBAAL;AACL,EAAAA,oBAAA,aAAU;AACV,EAAAA,oBAAA,kBAAe;AACf,EAAAA,oBAAA,wBAAqB;AAHX,SAAAA;AAAA,GAAA;AAUL,IAAK,oBAAL,kBAAKC,uBAAL;AACL,EAAAA,mBAAA,aAAU;AACV,EAAAA,mBAAA,aAAU;AACV,EAAAA,mBAAA,kBAAe;AACf,EAAAA,mBAAA,wBAAqB;AAJX,SAAAA;AAAA,GAAA;AA4BL,IAAK,iBAAL,kBAAKC,oBAAL;AACL,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,wBAAqB;AACrB,EAAAA,gBAAA,iBAAc;AACd,EAAAA,gBAAA,kBAAe;AACf,EAAAA,gBAAA,wBAAqB;AACrB,EAAAA,gBAAA,gBAAa;AANH,SAAAA;AAAA,GAAA;AAmBL,IAAK,eAAL,kBAAKC,kBAAL;AACL,EAAAA,cAAA,aAAU;AACV,EAAAA,cAAA,wBAAqB;AACrB,EAAAA,cAAA,iBAAc;AACd,EAAAA,cAAA,0BAAuB;AACvB,EAAAA,cAAA,mBAAgB;AAChB,EAAAA,cAAA,gBAAa;AANH,SAAAA;AAAA,GAAA;AA8BL,IAAK,mBAAL,kBAAKC,sBAAL;AACL,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,iCAA8B;AAC9B,EAAAA,kBAAA,8BAA2B;AAC3B,EAAAA,kBAAA,sBAAmB;AACnB,EAAAA,kBAAA,0BAAuB;AANb,SAAAA;AAAA,GAAA;AAkBL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,aAAU;AACV,EAAAA,eAAA,gBAAa;AACb,EAAAA,eAAA,kBAAe;AACf,EAAAA,eAAA,qBAAkB;AAJR,SAAAA;AAAA,GAAA;AAeL,IAAK,YAAL,kBAAKC,eAAL;AACL,EAAAA,WAAA,aAAU;AACV,EAAAA,WAAA,iBAAc;AACd,EAAAA,WAAA,sBAAmB;AACnB,EAAAA,WAAA,uBAAoB;AACpB,EAAAA,WAAA,uBAAoB;AACpB,EAAAA,WAAA,0BAAuB;AACvB,EAAAA,WAAA,uBAAoB;AACpB,EAAAA,WAAA,oBAAiB;AACjB,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,mBAAgB;AAChB,EAAAA,WAAA,kBAAe;AAXL,SAAAA;AAAA,GAAA;AAcL,IAAM,aAA0B,OAAO,OAAO,SAAS;AAEvD,IAAK,sBAAL,kBAAKC,yBAAL;AAEL,EAAAA,qBAAA,oBAAiB;AAEjB,EAAAA,qBAAA,wBAAqB;AAErB,EAAAA,qBAAA,mCAAgC;AAEhC,EAAAA,qBAAA,sBAAmB;AAEnB,EAAAA,qBAAA,sBAAmB;AAEnB,EAAAA,qBAAA,wBAAqB;AAZX,SAAAA;AAAA,GAAA;AAqBL,IAAK,eAAL,kBAAKC,kBAAL;AACL,EAAAA,cAAA,UAAO;AACP,EAAAA,cAAA,eAAY;AACZ,EAAAA,cAAA,YAAS;AACT,EAAAA,cAAA,yBAAsB;AACtB,EAAAA,cAAA,wBAAqB;AACrB,EAAAA,cAAA,sBAAmB;AACnB,EAAAA,cAAA,YAAS;AAPC,SAAAA;AAAA,GAAA;;;AC3HL,IAAK,kCAAL,kBAAKC,qCAAL;AACL,EAAAA,iCAAA,aAAU;AACV,EAAAA,iCAAA,2BAAwB;AACxB,EAAAA,iCAAA,gCAA6B;AAHnB,SAAAA;AAAA,GAAA;AAKL,IAAM,mCAAmC,OAAO;AAAA,EACrD;AACF;;;AC5CA,SAAS,gBAAgB;AAQlB,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,SAAM;AACN,EAAAA,eAAA,WAAQ;AAFE,SAAAA;AAAA,GAAA;AAQL,IAAM,iBAAiB,OAAO,OAAO,aAAa;AAElD,IAAK,oBAAL,kBAAKC,uBAAL;AACL,EAAAA,mBAAA,WAAQ;AACR,EAAAA,mBAAA,cAAW;AAFD,SAAAA;AAAA,GAAA;AAKL,IAAM,qBAAqB,OAAO;AAAA,EACvC;AACF;AAEO,IAAK,kBAAL,kBAAKC,qBAAL;AACL,EAAAA,iBAAA,cAAW;AACX,EAAAA,iBAAA,aAAU;AAFA,SAAAA;AAAA,GAAA;AAKL,IAAK,iBAAL,kBAAKC,oBAAL;AACL,EAAAA,gBAAA,cAAW;AACX,EAAAA,gBAAA,WAAQ;AACR,EAAAA,gBAAA,UAAO;AAHG,SAAAA;AAAA,GAAA;AAML,IAAM,kBAAkB,SAAS,cAAc;AAStD,IAAM,yBAAqD;AAAA,EACzD,CAAC,yBAA0B,GAAG;AAAA,EAC9B,CAAC,mBAAuB,GAAG;AAC7B;AAKO,SAAS,eACd,SAC+B;AAC/B,SAAO,uBAAuB,OAAO;AACvC;AAUO,IAAM,qBAET;AAAA,EACF,CAAC,iBAAmB,GAAG;AAAA,EACvB,CAAC,yBAAuB,GAAG;AAAA,EAC3B,CAAC,mBAAoB,GAAG;AAC1B;AASO,IAAM,qBAET;AAAA,EACF,CAAC,eAAiB,GAAG;AAAA,EACrB,CAAC,mBAAmB,GAAG;AACzB;AAcO,IAAe,oBAAf,MAIL;AAAA,EAKA,YAAY,SAAyB,QAAiB,OAAuB;AAC3E,SAAK,UAAU;AACf,SAAK,SAAS;AACd,SAAK,QAAQ;AAAA,EACf;AAuBF;;;AC3IA,SAAwB,eAAe;;;ACEvC,IAAM,mBAAN,MAAuB;AAAA,EAQrB,cAAc;AACZ,SAAK,kBAAkB,CAAC;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,uBACL,SACA,SACsB;AACtB,QAAI,CAAC,QAAQ,KAAM,QAAO;AAC1B,QAAI,QAAQ,WAAW,cAAe,QAAO;AAE7C,QAAI,CAAC,KAAK,gBAAgB,OAAO,EAAG,QAAO;AAE3C,QAAI,CAAC,KAAK,gBAAgB,OAAO,EAAE,QAAQ,IAAI,EAAG,QAAO;AAGzD,UAAM,MAAM,KAAK,gBAAgB,OAAO,EAAE,QAAQ,IAAI;AACtD,QAAI,KAAK,IAAI,IAAI,IAAI,SAAS,QAAQ,IAAI,MAAO,KAAK,EAAG,QAAO;AAChE,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKO,mBACL,SACA,eACA,SACA;AACA,QAAI,CAAC,QAAQ,KAAM;AACnB,QAAI,CAAC,KAAK,gBAAgB,OAAO,GAAG;AAClC,WAAK,gBAAgB,OAAO,IAAI,CAAC;AAAA,IACnC;AACA,SAAK,gBAAgB,OAAO,EAAE,QAAQ,IAAI,IAAI;AAAA,EAChD;AACF;AAEO,IAAM,cAAc,IAAI,iBAAiB;;;AD/CzC,IAAM,6BAAN,cAAyC,MAAM;AAAA,EAA/C;AAAA;AACL,gBAAO;AACP,mBAAU;AAAA;AACZ;AAEO,IAAK,8BAAL,kBAAKC,iCAAL;AACL,EAAAA,6BAAA,qBAAkB;AADR,SAAAA;AAAA,GAAA;AAIL,IAAM,wBAAN,cAAoC,MAAM;AAAA,EAG/C,YAAqB,QAAqC;AACxD,UAAM,mCAAmC,MAAM,QAAQ;AADpC;AAFrB,gBAAO;AAAA,EAIP;AACF;AAEO,IAAM,oBAAN,cAAgC,MAAM;AAAA,EAAtC;AAAA;AACL,gBAAO;AACP,mBAAU;AAAA;AACZ;AAEO,IAAM,yBAAN,cAAqC,MAAM;AAAA,EAA3C;AAAA;AACL,gBAAO;AACP,mBACE;AAAA;AACJ;AAEO,IAAM,2BAAN,cAAuC,MAAM;AAAA,EAIlD,YAAqB,gBAAwB;AAC3C,UAAM,oCAAoC,cAAc,EAAE;AADvC;AAHrB,gBAAO;AAKL,SAAK,YAAY;AAAA,EACnB;AACF;AAEO,IAAM,0BAAN,cAAsC,MAAM;AAAA,EAGjD,cAAc;AACZ;AAAA,MACE;AAAA,IACF;AALF,gBAAO;AAAA,EAMP;AACF;AAEO,IAAM,0BAAN,cAAsC,MAAM;AAAA,EAIjD,YAAqB,gBAAyB;AAC5C;AAAA,MACE,kBACE;AAAA,IACJ;AAJmB;AAHrB,gBAAO;AAQL,SAAK,YAAY;AAAA,EACnB;AACF;AAEO,IAAM,eAAN,cAA2B,MAAM;AAAA,EAAjC;AAAA;AACL,gBAAO;AACP,mBAAU;AAAA;AACZ;AAEO,IAAM,kBAAN,cAA8B,MAAM;AAAA,EAApC;AAAA;AACL,gBAAO;AACP,mBAAU;AAAA;AACZ;AAuBO,IAAe,gBAAf,MAA6B;AAAA,EAIlC,YAAY,SAAiB;AAF7B,SAAQ,QAAQ;AAGd,SAAK,UAAU;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgCO,YACL,SACA,SAIA;AACA,WAAO,IAAI,QAAQ,OAAM,YAAW;AAElC,UAAI,SAAS;AACX,cAAM,YAAY,KAAK,MAAM;AAAA,UAC3B,KAAK;AAAA,UACL;AAAA,QACF;AACA,YAAI,UAAW,QAAO,QAAQ,QAAQ,SAAS,CAAC;AAAA,MAClD;AAEA,YAAM,MAAM,MAAM,KAAK,sBAAsB,OAAO;AACpD,UAAI,IAAI,UAAU,EAAG,QAAO,QAAQ,GAAG;AACvC,YAAM,gBAA+B;AAAA,QACnC;AAAA,QACA,WAAW,IAAI;AAAA,QACf,UAAU,oBAAI,KAAK;AAAA,MACrB;AACA,UAAI;AACF,aAAK,MAAM,mBAAmB,KAAK,SAAS,eAAe,OAAO;AACpE,aAAO,QAAQ,QAAQ,aAAa,CAAC;AAAA,IACvC,CAAC;AAAA,EACH;AA0BF;","names":["TokenActionType","ArticleFlag","GenTokFlag","GenTokPricing","GenTokLabel","GenTokLabelGroup","GenerativeTokenVersion","EventStatus","EventAvailability","EWalletOperatorState","EObjktFeatureType","RedeemableUserActionType","EReserveMethod","UserFlag","UserAuthorization","UserType","CaptureTriggerMode","CaptureMode","GenTokEditions","SandboxFileError","ProfileUploadError","AvatarUploadError","StaticGenError","PreviewError","TestPreviewError","MetadataError","MintError","MintProgressMessage","SigningState","ProcessRawTokenFeatureErrorType","BlockchainEnv","BlockchainNetwork","TransactionType","BlockchainType","WalletConnectionErrorReason"]}
|
package/package.json
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
{
|
2
|
+
"name": "@fxhash/shared",
|
3
|
+
"version": "0.0.1",
|
4
|
+
"author": "fxhash",
|
5
|
+
"dependencies": {
|
6
|
+
"jwt-decode": "4.0.0",
|
7
|
+
"@fxhash/config": "0.0.10",
|
8
|
+
"@fxhash/utils": "0.0.3"
|
9
|
+
},
|
10
|
+
"devDependencies": {
|
11
|
+
"tslib": "2.6.2",
|
12
|
+
"tsup": "8.4.0",
|
13
|
+
"typescript": "5.8.2",
|
14
|
+
"@fxhash/tsconfig": "0.0.1"
|
15
|
+
},
|
16
|
+
"exports": {
|
17
|
+
".": {
|
18
|
+
"types": "./dist/index.d.ts",
|
19
|
+
"default": "./dist/index.js"
|
20
|
+
}
|
21
|
+
},
|
22
|
+
"files": [
|
23
|
+
"dist"
|
24
|
+
],
|
25
|
+
"license": "MIT",
|
26
|
+
"publishConfig": {
|
27
|
+
"access": "public"
|
28
|
+
},
|
29
|
+
"repository": "fxhash/fxhash-package",
|
30
|
+
"type": "module",
|
31
|
+
"scripts": {
|
32
|
+
"build": "tsup",
|
33
|
+
"dev": "tsup --watch"
|
34
|
+
}
|
35
|
+
}
|