@decentralchain/ride
v2.3.1
Published
JS compiler for Ride - the smart-contract language for DecentralChain
Downloads
113
Readme
Overview
JavaScript wrapper around the Ride smart-contract compiler for the DecentralChain blockchain. Provides compile, decompile, REPL, and script-info utilities for Ride v1–v6 contracts.
Part of the DecentralChain SDK.
Installation
npm install @decentralchain/rideRequires Node.js >= 24 and an ESM environment (
"type": "module").
Quick Start
import { compile, decompile, contractLimits } from '@decentralchain/ride';
// Compile a Ride script
const result = compile('{-# STDLIB_VERSION 6 #-}\ntrue');
console.log(result); // { result: { bytes: '...', ast: {...}, ... } }
// Decompile a base64-encoded script
const source = await decompile(
'AAIFAAAAAAAAAAIIAhIAAAAAAAAAAAEAAAABaQEAAAAEY2FsbAAAAAAJAQAAAAV0aHJvdwAAAAAAAAAA',
);
console.log(source);
// Get contract limits for a given stdlib version
const limits = contractLimits(6);
console.log(limits);API Reference
compile(code, estimator?)
Compile Ride source code to binary.
| Parameter | Type | Description |
| ----------- | -------- | ----------------------------------- |
| code | string | Ride source code |
| estimator | number | Estimator version (default: latest) |
Returns a compilation result object with result.bytes (base64 binary) or error message.
decompile(base64Script)
Decompile a base64-encoded compiled script back to Ride source code.
| Parameter | Type | Description |
| -------------- | -------- | ------------------------------ |
| base64Script | string | Base64-encoded compiled script |
Returns Promise<string> — the decompiled Ride source code.
repl(options?)
Create an interactive REPL session for evaluating Ride expressions.
contractLimits(stdlibVersion)
Get the compilation limits for a given standard library version.
scriptInfo(base64Script)
Get metadata about a compiled script (version, type, public keys, etc.).
getTypes(stdlibVersion, isTokenContext?)
Get available types for a given stdlib version.
getFunctionsDoc(stdlibVersion, isTokenContext?)
Get function documentation for a given stdlib version.
getVarsDoc(stdlibVersion, isTokenContext?)
Get variable documentation for a given stdlib version.
flattenCompilationResult(result)
Flatten a nested compilation result into a flat structure.
parseAndCompile(code, estimator?)
Parse and compile with additional AST information.
Related Packages
| Package | Description |
| ---------------------------------------------------------------------------------------------- | ------------------------------------------- |
| @decentralchain/transactions | Transaction building, signing, broadcasting |
| @decentralchain/ts-lib-crypto | Cryptographic primitives |
| @decentralchain/types | Core TypeScript type definitions |
| @decentralchain/node-api | Node REST API client |
Development
git clone https://github.com/Decentral-America/ride.git
cd ride
npm install| Script | Description |
| --------------------------- | -------------------------------- |
| npm test | Run tests (Vitest) |
| npm run test:coverage | Coverage report |
| npm run build | Build ESM bundle |
| npm run typecheck | TypeScript type checking |
| npm run lint | Lint with auto-fix |
| npm run lint:check | Lint (check only, no fix) |
| npm run format | Format with Biome |
| npm run bulletproof | Format → lint → typecheck → test |
| npm run bulletproof:check | CI-safe check (no auto-fix) |
| npm run validate | Full CI validation pipeline |
Known Exceptions
@decentralchain/ride-lang and @decentralchain/ride-repl are Scala.js-compiled
binaries built from packages/ride/lang and packages/ride/repl respectively.
They are consumed as workspace dependencies (workspace:*) and must be built
from source (sbt fullLinkJS) before running tests or building this package.
Contributing
See CONTRIBUTING.md.
Security
To report a vulnerability, see SECURITY.md.
License
MIT — Copyright (c) DecentralChain
