Closed turadg closed 1 month ago
First pass at describing coverage:
Test Name | Description | Methods Used | Uses async-flow | Contract Used | Untested |
---|---|---|---|---|---|
account-balance-queries | Makes an account on local and remote chains and sends a balance query. Always returns an empty balance since the account creation and balance query occur in the same offer handler. | - orchAccount.getBalance() - orcAccount.getBalances() - orch.getChain() - orch.makeAccount() |
Yes | query-flows.contract.js | |
auto-stake-it | Makes Local + Cosmos orchAccounts and sets up a transfer tap (vtransfer, ibc-hooks) to auto-delegate. Reads local orchAccount address from vstorage and sends IBC transfer from HDWallet to invoke autostake |
- orch.getChain() - chain.makeAccount() - localOrchAccount.monitorTransfers() - cosmosOrchAccount.delegate() |
Yes | auto-stake-it.contract.js | |
basic-flows | Makes an account on a remote chain and returns a continuing offer (with invitationMakers like Delegate, Undelegate, Transfer, Send) | - orch.getChain() - orch.makeAccount() |
Yes | basic-flows.contract.js | |
chain-queries | Sends balance query from the chain object via ICQ and localchain queries. Queries pre-funded accounts that have balances. Ensures icqEnabled: false chains provide a helpful error message. |
- orch.getChain() - Chain.query() |
Yes | query-flows.contract.js | |
ica-channel-close | Ensures an ICA account holder can deactivate and reactivate their account, verifying the ICA channel closure process. Ensures external clients cannot initiate ChannelClose for ICA and Transfer channels (vibc) |
- orch.getChain() - orch.makeAccount() - orcAccount.deactive() - orcAccount.reactivate() |
Yes | basic-flows.contract.js | |
send-anywhere | SendAnywhere takes a Payment from an offers and sends it over IBC to another chain. It involves making a contract-level LocalOrchAccount, depositing to it via zoeTools.localTransfer , and using LOA.transfer() to send the funds over IBC. |
- LOA.makeAccount() - LOA.transfer() - zoeTools.localTransfer() - LOA.deposit() - Chain.getVBankAssetInfo() - Chain.makeAccount() - Orch.getChain() |
Yes | sendAnywhere.contract.js | - Multi-hop (PFM) transfers (not implemented in contract) |
stake-ica | Makes an account and performs/validates staking actions: Delegate , WithdrawReward , Undelegate |
- orch.getChain() - orch.makeAccount() - orcAccount.delegate() - orcAccount.withdrawReward() - orcAccount.undelegate() |
No, but we can point these tests to basicFlows or prioritize #9838 |
stakeIca.contract.js | - Redelegate - WithdrawRewards (plural) (not implemented)- StakingQueries (not implemented)- StakingFromLocalOrchAccount |
swapExample | Yes | swapExample.contract.js | - Everything - contract incomplete |
||
unbondExample | Yes | unbondExample.contract.js | - Everything - contract incomplete |
Send
, SendAll
/ .send()
, sendAll()
are not covered by E2E tests - only unit testsTransfer
invitations are not directly covered, nor CosmosOrchAccount.transfer()
, but LocalOrchAccount.transfer()
is tested via auto-stake-it
and send-anywhere
Deposit
and Withdraw
invitations for LOA are not tested because they don't exist (until #9193). .deposit()
is indirectly tested via zoeTools.localTransfer
in send-anywhere
Also, this resource exists, is up to date, and should provide a helpful point of reference: https://github.com/Agoric/agoric-sdk/blob/master/packages/orchestration/src/exos/README.md
I put the above comment into https://github.com/Agoric/agoric-sdk/blob/9964-orch-usage/packages/orchestration/USAGE.md and revised it.
Before we ship Orchestration API we want functional integration tests of its capabilities. This requires the multichain-testing environment.