0.0.10 • Published 4 years ago

aagent.js v0.0.10

Weekly downloads
10
License
MIT
Repository
github
Last release
4 years ago

aagent.js

What's it?

It is CLI and library to work with Autonomous Agents on Obyte

Quick start

You can create a new project using CLI

npm i -g aagent-cli
aagent init folder

Or add to an existing project

yarn add aagent.js
require('headless-obyte');
const eventBus = require('ocore/event_bus');
const { AA, AAs } = require('aagent.js');

Library

AA

Example:

require('headless-obyte');
const eventBus = require('ocore/event_bus');

const { AA } = require('aagent.js');

eventBus.on('headless_wallet_ready', () => {
    const aa = new AA('address');

    aa.events.on('new_request', (request) => {
        console.error('new request', request);
    });

    aa.events.on('new_response', (err, response, vars) => {
        console.error('new response', response, vars);
    });

    aa.events.on('new_aa_definition', (definition) => {
        console.error('new aa definition', definition);
    });

    aa.events.on('new_aa_definition_saved', (definition) => {
        console.error('new aa definition saved', definition);
    });

    aa.addResponseEventHandler((err, params, vars) => {        
        return true;
      }, (err, params, vars) => {
        console.error(err, params, vars);
      });

});

AA class contains the following methods:

All events are applied to the specified address in the constructor.

constructor
const aa = new AA('address')

one argument - aa_address(string)

static method getAAVars:

AA.getAAVars('address');

will return variables from AA.

Event handlers:

The handler triggers an event, passes it to the first function, and if it returns true, calls the second function. You can use them to process specific data(like a router). More about arguments in events.

aa.addRequestEventHandler((request, body) => {
    return true;
  }, (request, body) => {
    console.error(request, body);
  });
aa.addResponseEventHandler((err, params, vars, body) => {
    return true;
  }, (err, params, vars, body) => {
    console.error(err, params, vars, body);
  });
aa.addDefinitionEventHandler((definition, body) => {
    return true;
  }, (definition, body) => {
    console.error(definition, body);
  });
aa.addDefinitionSavedEventHandler((definition, body) => {
    return true;
  }, (definition, body) => {
    console.error(definition, body);
  });

And events:

new_request
aa.events.on('new_request', (request, body) => {
  console.error('new request', request, body);
});

Arguments:

  • request - {address: aa_address, messages: unit.messages}
  • body - raw body from event
new_response
aa.events.on('new_response', (err, params, vars, body) => {
  console.error('new response', err, params, vars, body);
});

Arguments:

  • err - if bounced return error message
  • params - { address: aa_address, response: body.response }
  • vars - new vars from AA
  • body - raw body from event
new_aa_definition
aa.events.on('new_aa_definition', (definition, body) => {
  console.error('new aa definition', definition, body);
});

Arguments:

  • definition - definition from messages
  • body - raw body from event
new_aa_definition_saved
aa.events.on('new_aa_definition_saved', (definition, body) => {
  console.error('new aa definition saved', definition, body);
});

This event can be triggered twice with the same data (architectural features), please consider this. Arguments:

  • definition - definition from messages
  • body - raw body from event

AAs

All events applies to the specified addresses in the constructor.

constructor
const aas = new AAs(['address', 'address2'])

one argument - aa_addresses - arraystring

aas.addAddress('address');

Adds a new address and subscribes to it

static method getAAVars:

AAs.getAAVars('address');

will return variables from AA.

This class supports only: Methods: addRequestEventHandler, addResponseEventHandler Events: new_request, new_response Arguments are identical to AA class

If you want to start developing on Obyte and you need help, write to us on discord or on telegram: @xJeneK

0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.1

4 years ago