Last verified 2024-09-06
This document describes some example contracts and test suites showing how to use Orchestration.
See src/examples
Contract Name | Status | Description | Features Used |
---|---|---|---|
auto-stake-it | Ready 🟢 | Sets up an IBC hook to automatically stake tokens on a remote chain received at a deposit address. | - LocalOrchestrationAccount - CosmosOrchestrationAccount - Vtransfer (IBC Hooks) |
basic-flows | Ready 🟢 | Creates an account on a remote chain and returns a continuing offer with all platform-provided invitationMakers. | - CosmosOrchestrationAccount - LocalOrchestrationAccount |
query-flows | Ready 🟢 | Test fixture that enables querying account balances on local and remote chains. | - Chain - LocalOrchestrationAccount - CosmosOrchestrationAccount - Interchain Queries |
send-anywhere | Ready 🟢 | Allows sending payments (tokens) over IBC to another chain. | - LocalOrchestrationAccoun t- Vtransfer (IBC Hooks) |
stake-bld | Ready 🟢 | Returns a LocalOrchestrationAccount that can perform staking actions. |
- LocalOrchestrationAccount |
stake-ica | Ready 🟢 | Returns a CosmosOrchestrationAccount that can perform staking actions. |
- CosmosOrchestrationAccount |
staking-combinations | Ready 🟢 | Combines actions into a single offer flow and demonstrates writing continuing offers. | - CosmosOrchestrationAccount - CombineInvitationMakers - Continuing Offers |
swap | Under Construction 🚧 | Demonstrates asset swapping on an external chain. | - CosmosOrchestrationAccount - ChainHub |
unbond | Under Construction 🚧 | Undelegates tokens for an ICA and liquid stakes them. | - CosmosOrchestrationAccount |
Test Name | Description | Contract Used | Methods Used |
---|---|---|---|
account-balance-queries | Tests balance querying on local and remote chains, verifying empty balance return for newly created accounts. | query-flows | - orch.getChain() - orch.makeAccount() - orchAccount.getBalance() - orchAccount.getBalances() |
auto-stake-it | Tests the creation of Local and Cosmos orchestration accounts and the auto-delegation process via IBC transfer. | auto-stake-it | - orch.getChain() - chain.makeAccount() - localOrchAccount.monitorTransfers() - cosmosOrchAccount.delegate() |
basic-flows | Verifies the creation of a remote chain account and the generation of a continuing offer with various invitationMakers. | basic-flows | - orch.getChain() - orch.makeAccount() |
chain-queries | Tests balance queries via ICQ and local chain queries, including error handling for chains with ICQ disabled. | query-flows | - orch.getChain() - chain.query() |
ica-channel-close | Tests ICA account deactivation and reactivation, and verifies channel closure processes for ICA and Transfer channels. | basic-flows | - orch.getChain() - orch.makeAccount() - orchAccount.deactivate() - orchAccount.reactivate() |
send-anywhere | Tests the process of sending payments over IBC, including account creation, deposit, and transfer operations. | send-anywhere | - orch.getChain() - chain.getVBankAssetInfo() - chain.makeAccount() - localOrchAccount.makeAccount() - localOrchAccount.deposit() - localOrchAccount.transfer() - zoeTools.localTransfer() |
stake-ica | Verifies staking operations including delegation, reward withdrawal, and undelegation. | stakeIca | - orch.getChain() - orch.makeAccount() - orchAccount.delegate() - orchAccount.withdrawReward() - orchAccount.undelegate() |
Contract Name | Not Yet Tested Features |
---|---|
basic-flows | - .send() , sendAll() methods and Send , SendAll invitations (#9193)- CosmosOrchAccount.transfer() , Transfer invitation (#9193) |
send-anywhere | - Multi-hop (PFM) transfers (not implemented in contract) (#10006) |
stakeIca | - Redelegate - WithdrawRewards (plural) (not implemented) - StakingQueries (not implemented) (#10016) - Staking Flows for LocalOrchAccount - Written as async-flow (#9838) |
stakeBld | - Everything*, created before e2e test suite - Consider folding under generic "stake" contract, once interfaces are the same |
swap | - Everything - contract incomplete (#8863) |
unbond | - Everything - contract incomplete (#9782) |
staking-combinations | Only tested via unit tests |