Skip to content

permaweb/ao-core-libs

Repository files navigation

@permaweb/ao-core-libs

This SDK provides a JavaScript interface for communicating with AO-Core.

AO-Core is a protocol and standard for distributed computation that forms the foundation of the AO Computer. Inspired by and built upon concepts from the Erlang language, AO-Core embraces the actor model for concurrent, distributed systems. It defines a minimal, generalized model for decentralized computation built around standard web technologies like HTTP.

For a full breakdown of AO-Core, see the documentation.

Prerequisites

  • node >= v18.0
  • npm or yarn

Installation

npm install @permaweb/ao-core-libs

or

yarn add @permaweb/ao-core-libs

Initialization

The SDK can be initialized with either a JWK or a Signer. If a JWK is provided, then the default AO-Core Signer will be created and used on intilization. If both a JWK and Signer are provided, the Signer will be used.

import AOCore from '@permaweb/ao-core-libs';

// NodeJS Usage
const jwk = JSON.parse(readFileSync(process.env.PATH_TO_WALLET, 'utf-8'));
const aoCore = AOCore.init({ jwk });

// Or
import { createSigner } from '@permaweb/ao-core-libs'; // Or your own custom signer
const aoCore = AOCore.init({ signer: createSigner(jwk) });

// Browser Usage
import { createSigner } from '@permaweb/ao-core-libs';
const aoCore = AOCore.init({ signer: createSigner(window.arweaveWallet) });

Usage

This SDK exposes a single function, request, for communicating with AO Core, which accepts these arguments:

  • path – The endpoint path (no leading slash)
  • method – (optional - defaults to GET) HTTP Request Method (GET or POST)
  • signing-format – (optional - defaults to httpsig) Signing Format (ans104 or httpsig)
  • Any additional fields – All other fields passed in will be included as part of the request payload (e.g. custom headers, tags, or data fields depending on the signing format)

Example

const response = await aoCore.request({
	method: 'POST',
	path: '[email protected]/compute/at-slot',
	'signing-format': 'httpsig',
	'my-custom-field': '1234',
});

Testing

To run the @permaweb/ao-core-libs tests:

  • cd tests
  • npm test

This will install all dependencies into and build the SDK, and then install it locally into a client test project (tests/index.js).

Resources

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published