@five-vm/cli
Version:
High-performance CLI for Five VM development with WebAssembly integration
91 lines • 4.38 kB
JavaScript
/**
* 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