Orchestration API
The Agoric Orchestration API enables developers to seamlessly manage and interact with accounts across multiple blockchain networks, simplifying the complexities of cross-chain operations.
API Surface Functions
The Orchestration API provides a set of high-level functions to manage and interact with interchain accounts. Below are the primary functions available to developers:
getChain
Retrieves the chain information and provides access to chain-specific methods.
const chain = await orchestrator.getChain('chainName');
makeLocalAccount
Creates a new local chain account.
const localAccount = await orchestrator.makeLocalAccount();
getBrandInfo
Returns information about a denom, including the equivalent local Brand, the chain where the denom is held, and the chain that issues the corresponding asset.
const brandInfo = orchestrator.getBrandInfo('denom');
asAmount
Converts a denom amount to a local structured Amount.
const amount = orchestrator.asAmount({ denom: 'uatom', value: 1000n });
Orchestration Account Functions
Orchestration accounts provide high-level operations for managing accounts on remote chains. Below are the primary methods available:
getAddress
Retrieves the address of the account on the remote chain.
const address = await orchestrationAccount.getAddress();
getBalances
Returns an array of amounts for every balance in the account.
const balances = await orchestrationAccount.getBalances();
getBalance
Retrieves the balance of a specific denom for the account.
const balance = await orchestrationAccount.getBalance('uatom');
send
Transfers an amount to another account on the same chain. The promise settles when the transfer is complete.
await orchestrationAccount.send(receiverAddress, amount);
transfer
Transfers an amount to another account, typically on another chain. The promise settles when the transfer is complete.
await orchestrationAccount.transfer(amount, destinationAddress);
transferSteps
Transfers an amount to another account in multiple steps. The promise settles when the entire path of the transfer is complete.
await orchestrationAccount.transferSteps(amount, transferMsg);
deposit
Deposits payment from Zoe to the account. For remote accounts, an IBC Transfer will be executed to transfer funds there.
await orchestrationAccount.deposit(payment);