UNPKG

@byzantine/vault-sdk

Version:

Byzantine Vault SDK for creating and managing vaults on Ethereum for restaking strategies

47 lines (46 loc) 1.75 kB
import { ethers } from "ethers"; import { Metadata } from "../../types"; export declare const METADATA_VALIDATION: { URL_PATTERN: RegExp; IPFS_URI_PATTERN: RegExp; DATA_URI_PATTERN: RegExp; IMAGE_EXTENSIONS: string[]; MAX_METADATA_SIZE: number; MAX_NAME_LENGTH: number; MAX_DESCRIPTION_LENGTH: number; ETH_ADDRESS_PATTERN: RegExp; SOCIAL_TWITTER_PATTERN: RegExp; SOCIAL_DISCORD_PATTERN: RegExp; SOCIAL_TELEGRAM_PATTERN: RegExp; SOCIAL_GITHUB_PATTERN: RegExp; }; /** * Get the metadata URI of the vault * @param vaultContract - The vault contract instance * @returns The metadata URI string */ export declare function getVaultMetadata(vaultContract: ethers.Contract): Promise<Metadata>; /** * Convert Metadata object to URI using Pinata IPFS service * This function tries to upload metadata to IPFS via Pinata API * If Pinata fails, it falls back to a data URI * * @param metadata - The metadata object to convert * @returns An IPFS URI or data URI representing the metadata */ export declare const convertMetadataToURI: (metadata: Metadata) => Promise<string>; /** * Convert URI back to Metadata object * Supports both IPFS URIs and data URIs * * @param uri - The URI to convert (ipfs:// or data:application/json;base64,) * @returns The metadata object */ export declare const convertURItoMetadata: (uri: string) => Promise<Metadata>; /** * Update the metadata URI of the vault * @param vaultContract - The vault contract connected to signer * @param metadata - The metadata object to be stored or directly URI * @returns Transaction response */ export declare function setMetadata(vaultContract: ethers.Contract, metadata: Metadata | string): Promise<ethers.TransactionResponse>;