assetStatus.tsā¢2.96 kB
export enum AssetSVCStatus {
MEDIA_UPLOAD_INITIALIZING = 0,
MEDIA_UPLOADING = 1,
MEDIA_VERIFYING = 2,
MEDIA_CONFIRMING = 3,
MEDIA_CONFIRMED = 4,
META_UPLOAD_INITIALIZING = 5,
META_UPLOADING = 6,
META_VERIFYING = 7,
META_CONFIRMING = 8,
META_CONFIRMED = 9,
NFT_INITIALIZING = 10,
NFT_SIGNING = 11,
NFT_MINTING = 12,
NFT_CONFIRMED = 13,
NFT_ALL_BLOCK_CONFIRMED = 14,
}
export enum UploadStatus {
MEDIA_UPLOAD_INITIALIZING = "MEDIA_UPLOAD_INITIALIZING",
MEDIA_UPLOADING = "MEDIA_UPLOADING",
MEDIA_VERIFYING = "MEDIA_VERIFYING",
MEDIA_CONFIRMING = "MEDIA_CONFIRMING",
MEDIA_CONFIRMED = "MEDIA_CONFIRMED",
META_UPLOAD_INITIALIZING = "META_UPLOAD_INITIALIZING",
META_UPLOADING = "META_UPLOADING",
META_VERIFYING = "META_VERIFYING",
META_CONFIRMING = "META_CONFIRMING",
META_CONFIRMED = "META_CONFIRMED",
NFT_INITIALIZING = "NFT_INITIALIZING",
NFT_SIGNING = "NFT_SIGNING",
NFT_MINTING = "NFT_MINTING",
NFT_CONFIRMED = "NFT_CONFIRMED",
NFT_ALL_BLOCK_CONFIRMED = "NFT_ALL_BLOCK_CONFIRMED",
}
export const transformSvcStatusToDbStatus = (status: AssetSVCStatus): UploadStatus => {
const statusKey = AssetSVCStatus[status];
if (!statusKey || statusKey === "UNRECOGNIZED") {
throw new Error("UNRECOGNIZED_ASSET_STATUS");
}
return UploadStatus[statusKey as keyof typeof UploadStatus];
};
export const getAssetStatusText = (status: AssetSVCStatus): string => {
const dbStatus = transformSvcStatusToDbStatus(status);
switch (dbStatus) {
case UploadStatus.MEDIA_UPLOAD_INITIALIZING:
return "Initializing permanentizer...";
case UploadStatus.MEDIA_UPLOADING:
return "Uploading media...";
case UploadStatus.MEDIA_VERIFYING:
return "Verifying upload...";
case UploadStatus.MEDIA_CONFIRMING:
return "Confirming...";
case UploadStatus.MEDIA_CONFIRMED:
return "Irreversible upload finalized.";
case UploadStatus.META_UPLOAD_INITIALIZING:
return "Initializing permanentizer...";
case UploadStatus.META_UPLOADING:
return "Uploading metadata...";
case UploadStatus.META_VERIFYING:
return "Verifying upload...";
case UploadStatus.META_CONFIRMING:
return "Confirming...";
case UploadStatus.META_CONFIRMED:
return "Irreversible upload finalized.";
case UploadStatus.NFT_INITIALIZING:
return "Mapping smart-contract methods...";
case UploadStatus.NFT_SIGNING:
return "Signing Transaction...";
case UploadStatus.NFT_MINTING:
return "Minting NFT...";
case UploadStatus.NFT_CONFIRMED:
return "NFT minted.";
case UploadStatus.NFT_ALL_BLOCK_CONFIRMED:
return "All blocks confirmed.";
default:
return "Unknown status";
}
};
export const isAssetMinted = (status: AssetSVCStatus): boolean => {
const dbStatus = transformSvcStatusToDbStatus(status);
return dbStatus === UploadStatus.NFT_CONFIRMED || dbStatus === UploadStatus.NFT_ALL_BLOCK_CONFIRMED;
};