UNPKG

@five-vm/cli

Version:

High-performance CLI for Five VM development with WebAssembly integration

91 lines 4.38 kB
/** * Five SDK - Client-Agnostic TypeScript/JavaScript library for Five VM * * Provides a pure serialization interface for interacting with Five scripts * deployed on Solana. Works with ANY Solana client library through static methods * that return serialized instruction data. * * Key Features: * - Client-agnostic design (zero @solana/web3.js dependencies) * - Correct Five ecosystem terminology (scripts, not contracts) * - Real compilation using existing WASM infrastructure * - ABI-driven automatic parameter coercion * - Static methods for compilation and instruction generation * - Works with Node.js, browser, mobile, and any Solana client * - Excellent TypeScript support with full IntelliSense */ // ==================== Core SDK Exports ==================== import { FiveSDK } from './FiveSDK.js'; export { FiveSDK } from './FiveSDK.js'; // ==================== Component Exports ==================== export { BytecodeCompiler } from './compiler/BytecodeCompiler.js'; export { ParameterEncoder } from './encoding/ParameterEncoder.js'; // ==================== Metadata and Account Fetching Exports ==================== export { ScriptMetadataParser, MetadataCache } from './metadata/index.js'; // ==================== Crypto Exports ==================== export { PDAUtils, Base58Utils, RentCalculator } from './crypto/index.js'; // ==================== Error Exports ==================== export { FiveSDKError, CompilationSDKError, ExecutionSDKError, DeploymentSDKError, ParameterEncodingError } from './types.js'; // ==================== Validation Exports ==================== export { InputValidator, ValidationError, ValidationErrorType, DEFAULT_VALIDATION_CONFIG, validator, validateInput, Validators } from './validation/index.js'; // ==================== Constants ==================== export { FIVE_VM_PROGRAM_ID } from './types.js'; // ==================== Convenience Functions ==================== /** * Quick script compilation helper (client-agnostic) */ export const compileScript = async (source, options) => { const { FiveSDK } = await import('./FiveSDK.js'); // Validation is handled in FiveSDK.compile() return FiveSDK.compile(source, options); }; /** * Quick local execution helper (perfect for testing) */ export const executeLocally = async (bytecode, functionName, parameters = [], options) => { const { FiveSDK } = await import('./FiveSDK.js'); // Validation is handled in FiveSDK.executeLocally() return FiveSDK.executeLocally(bytecode, functionName, parameters, options); }; /** * Quick compile and execute helper (one-step testing) */ export const compileAndExecuteLocally = async (source, functionName, parameters = [], options) => { const { FiveSDK } = await import('./FiveSDK.js'); // Validation is handled in FiveSDK.compileAndExecuteLocally() return FiveSDK.compileAndExecuteLocally(source, functionName, parameters, options); }; /** * Quick account fetching and VLE deserialization helper */ export const fetchAccountAndDeserializeVLE = async (accountAddress, connection, options) => { const { FiveSDK } = await import('./FiveSDK.js'); return FiveSDK.fetchAccountAndDeserializeVLE(accountAddress, connection, options); }; /** * Quick batch account fetching helper */ export const fetchMultipleAccountsAndDeserializeVLE = async (accountAddresses, connection, options) => { const { FiveSDK } = await import('./FiveSDK.js'); return FiveSDK.fetchMultipleAccountsAndDeserializeVLE(accountAddresses, connection, options); }; /** * Quick VLE parameter deserialization helper */ export const deserializeVLEParameters = async (instructionData, expectedTypes = [], options) => { const { FiveSDK } = await import('./FiveSDK.js'); return FiveSDK.deserializeVLEParameters(instructionData, expectedTypes, options); }; /** * Quick execution with state diff tracking helper */ export const executeWithStateDiff = async (scriptAccount, connection, signerKeypair, functionName, parameters = [], options) => { const { FiveSDK } = await import('./FiveSDK.js'); return FiveSDK.executeWithStateDiff(scriptAccount, connection, signerKeypair, functionName, parameters, options); }; // ==================== Default Export ==================== /** * Default export provides the main FiveSDK class */ export { FiveSDK as default }; //# sourceMappingURL=index.js.map