Methods
Buy ram for this account
Defaults/Optionals:
- payer - current account
const eoslime = require('eoslime').init();
// Existing accounts on local network
let payer = eoslime.Account.load('myAcc1', 'myPrivateKey1');
let account2 = eoslime.Account.load('myAcc2', 'myPrivateKey2');
// Payer will buy ram for account2
await account2.buyRam(1000, payer);
Buy cpu and network for this account
Defaults/Optionals:
- payer - current account
const eoslime = require('eoslime').init();
// Existing accounts on local network
let payer = eoslime.Account.load('myAcc1', 'myPrivateKey1');
let account2 = eoslime.Account.load('myAcc2', 'myPrivateKey2');
// Payer will buy cpu and network for account2 for 100 EOS
await account2.buyBandwidth('100.0000 EOS', '100.0000 EOS', payer);
Send tokens to another account
Defaults/Optionals:
- symbol - EOS
const eoslime = require('eoslime').init();
// Existing accounts on local network
let sender = eoslime.Account.load('myAcc1', 'myPrivateKey1');
let receiver = eoslime.Account.load('myAcc2', 'myPrivateKey2');
// The sender will send 100 EOS tokens to receiver
await sender.send(receiver, `100.0000`, 'EOS');
Creates a new authority and add current account public key in it
Defaults/Optionals:
- threshold - 1
const eoslime = require('eoslime').init();
// Existing account on local network
const activeAccount = eoslime.Account.load('myAcc1', 'myPrivateKey1', 'active');
// It will create 'custom' authority. Parent authority will be the 'active' one
await activeAccount.addAuthority('custom', 2);
Once you add a sub authority, it can not process whatever transaction. You should define what actions of which contracts the authority has permissions to execute.
Parameters
- 1.authority - The name of the authority the abilities will be applied to
- 2.abilities - Array of the following objects{action: 'contract action',contract: 'contract name'}
const faucetContract = await eoslime.Contract.deploy(FAUCET_WASM_PATH, FAUCET_ABI_PATH);
const account = await eoslimeTool.Account.createRandom();
await account.addAuthority('random');
await account.setAuthorityAbilities('random', [
{
action: 'produce',
contract: faucetContract.name
}
]);
const accountRandomAuth = eoslime.Account.load(account.name, account.privateKey, 'random');
await faucetContract.produce(account.name, "100.0000 TKNS", account.name, "memo", { from: accountRandomAuth });
Increase the authority threshold.
It is useful when you have multiple keys or accounts operating from an authority. This method will allow you to prepare a multisignature account.
const THRESHOLD = 2;
const account = await Account.createRandom();
const keysPair = await eoslime.utils.generateKeys();
// Add one more key to authority
await account.addAuthorityKey(keysPair.publicKey);
// Once threshold being increased,
// both keys should sign the transaction in order to be broadcasted
await account.increaseThreshold(THRESHOLD);
Add permission to authority such as eosio.code
Defaults/Optionals:
- weight - 1
Adding
eosio.code
permission would result in
const eoslime = require('eoslime').init();
// Existing accounts on local network
let account = eoslime.Account.load('myaccount', 'myPrivateKey', 'active');
let tokenFactoryAccount = eoslime.Account.load('tokenfactory', 'factoryPrivateKey', 'active');
/*
It will allow a contract account with eosio.code permission to act on behalf when you are authorizing an action with active authority
Use case:
We have two contracts: TokenFactory and Token
TokenFactory.create behind the scene calls Token.issue_tokens. issue_tokens caller will be the TokenFactory.
However you could want your account to be forwarded to issue_tokens instead of TokenFactory's one
*/
await account.addPermission('eosio.code');
Allow another account to act from your authority

const accounts = await Account.createRandoms(2);
const child = accounts[0];
const parent = accounts[1];
await child.addOnBehalfAccount(parent.name, AUTHORITY);
Add more keys to your authority

const WEIGHT = 2;
const account = await Account.createRandom();
const keysPair = await eoslime.utils.generateKeys();
await account.addOnBehalfKey(keysPair.publicKey, WEIGHT);
Set weight on account public key. This applies to current account authority.
If you have loaded your account with
active
authority and public key pub_key
this will result in.png?alt=media&token=f1d10c52-e13e-4b96-8734-4d53f82a0fcb)
const WEIGHT = 2;
const account = await Account.createRandom();
await account.setWeight(WEIGHT);
Returns information for loaded authority
const account = await Account.createRandom();
const authority = await account.getAuthorityInfo();
/*
authority =
{
perm_name: 'active',
parent: 'owner',
required_auth:
{
threshold: 1,
keys: [ [Object] ],
accounts: [],
waits: []
}
}
*/
Returns the account balance
Defaults/Optionals:
- symbol - EOS
- code - eosio.token
const eoslime = require('eoslime').init();
// Existing account on local network
let account = eoslime.Account.load('myAcc1', 'myPrivateKey1');
// custom.token is a contract account with a token deployed on it
await account.getBalance('CUSTOM', custom.token);
Last modified 3yr ago