Aleo SDK Node allows program execution in NodeJS by interfacing with snarkVM
under the hood.
Currently, it only supports:
- Loading program keys for program execution
- Build program execution transaction
For other use cases, please use @provablehq/sdk.
To do program execution
- Install
aleo-sdk-node
npm install aleo-sdk-node
- Load program keys
Make sure you include
main.aleo
andprogram.json
in the same directory. Then runloadProgramKeys
.
await loadProgramKeys();
- Build execution transaction
Use
buildExecutionTransaction
to build your transaction. Make sure you save the execution results for broadcasting to the network.
const privateKey = process.env.PRIVATE_KEY;
const options = {
privateKey,
endpoint: "https://api.explorer.provable.com/v1",
functionName: "hello",
inputs: [
"5u32",
"5u32"
],
programId: "hello_hello.aleo",
priorityFee: BigInt(0),
baseFee: BigInt(11323),
enableLog: true // NOTE: For debugging purposes
};
const execution = await buildExecutionTransaction(options);
- Broadcast transaction to network Using the execution transaction result, broadcast it to the network.
const txn = execution.transaction // NOTE: From output of step (3) build execution transaction
const url = new URL('https://api.explorer.provable.com/v1/testnet/transaction/broadcast');
const config = {
body: txn,
method: 'POST',
headers: {
"Content-Type": "application/json"
}
}
const res = await fetch(url, config);
const data = await res.json();
For network, we currently only support testnet beta. Mainnet support is coming soon.
Currently, we only support the following architectures
- darwin-arm64
- darwin-x64
- linux-x64-musl
Package source code are in /src
. To develop with the package, we can run the following command. It builds and runs ./test.mjs
. It is using dotenv-cli
. Please install it globally (ie. npm i -g dotenv-cli
).
# Build and run
npm run dev