@getlea/ltm
v1.2.0
Published
A library for resolving and encoding LEA Transaction Manifests.
Readme
@getlea/ltm
This package provides a library and a command-line tool for resolving and encoding human-readable Lea Transaction Manifests (LTM) into the binary SCTP format used by the Lea network.
It is composed of two main parts:
- A Node.js library for programmatically creating transactions.
- A command-line tool (
lea-ltm) for packaging and verifying manifests from your terminal.
Motivation
The process of creating a valid LEA transaction, as defined in LIP-7, requires precise binary encoding using the Simple Compact Transaction Protocol (SCTP). Constructing this binary stream programmatically is a low-level task that is verbose, error-prone, and requires custom scripting for each new type of transaction. This approach tightly couples the transaction's data with the application logic, making it difficult to manage, reuse, or audit transaction definitions.
The LEA Transaction Manifest (LTM) introduces a declarative layer that solves this problem. By defining a transaction in a structured JSON format, users can clearly specify all its components (such as signers, gas parameters, and contract invocations) without writing any encoding logic. The LTM format is designed to be processed by a build tool that handles all the underlying complexities of data resolution, SCTP encoding, hashing, and signing. This separation of concerns dramatically simplifies the user experience, reduces the risk of malformed transactions, and promotes the creation of reusable transaction templates.
Documentation
Full documentation is available for both the library and the CLI tool.
- Node.js Module Documentation: For developers using this package as a library in their applications.
- Command-Line Tool (CLI) Documentation: For users who want to use the
lea-ltmcommand-line tool.
For a detailed explanation of the JSON manifest structure, its fields, and the use of dynamic variables like $addr() and $const(), please see the official format documentation:
Key Files
Use lea-keygen to generate signer key files in the new format. Each file contains a keyset and the derived address fields:
lea-keygen new --outfile examples/keys/registrar.keys.jsonExpected shape (truncated):
{
"keyset": [[<ed25519_sk>, <ed25519_pk>], [<falcon512_sk>, <falcon512_pk>]],
"address": "lea1...",
"addressHex": "..."
}Pass these files to the CLI using --<signerName> <path> (e.g., --registrar examples/keys/registrar.keys.json).
License
This project is licensed under the ISC License. See the LICENSE file for details.
