It is library to work with Autonomous Agents on Obyte
npm install aagent.jsbash
npm i -g aagent-cli
aagent init folder
`
Or add to an existing project
`bash
yarn add aagent.js
`
`javascript
require('headless-obyte');
const eventBus = require('ocore/event_bus');
const { AA, AAs } = require('aagent.js');
`Library
$3
Example:
`javascript
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
`javascript
const aa = new AA('address')
`
one argument - aa_address(string)static method getAAVars:
`javascript
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.
`javascript
aa.addRequestEventHandler((request, body) => {
return true;
}, (request, body) => {
console.error(request, body);
});
`
`javascript
aa.addResponseEventHandler((err, params, vars, body) => {
return true;
}, (err, params, vars, body) => {
console.error(err, params, vars, body);
});
`
`javascript
aa.addDefinitionEventHandler((definition, body) => {
return true;
}, (definition, body) => {
console.error(definition, body);
});
`
`javascript
aa.addDefinitionSavedEventHandler((definition, body) => {
return true;
}, (definition, body) => {
console.error(definition, body);
});
`
#### And events:
##### new_request
`javascript
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
`javascript
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
`javascript
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
`javascript
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---
$3
All events applies to the specified addresses in the constructor.
##### constructor
`javascript
const aas = new AAs(['address', 'address2'])
`
one argument - aa_addresses - array[string]
`javascript
aas.addAddress('address');
`
Adds a new address and subscribes to it
static method getAAVars:
`javascript
AAs.getAAVars('address');
``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