LocalOrchestrationAccount presents a different interface for delegate and undelegate - it currently takes (string, ertpAmount) instead of (ChainAddress, AmountArg)
There is incongruity between undelegate and delegate/redelegate in the StakingActions interface - the former takes an array of delegations while the latter two only accept a single delegation.
Some StakingActions have yet to be implemented in LocalOrchestrationAccount.
### Unification Tasks
- [ ] `LocalOrchestrationAccount` `.delegate` and `.undelegate` should take `ChainAddress` and `AmountArg` as params (currently, `(string, ertpAmount)`) to match `StakingActions`
- [ ] `CosmosOrchestrationAccount` `.delegate` and `.redelegate` should take an array of delegations, like `.undelegate`
### Completeness Tasks
- [ ] `LocalOrchestrationAccount` `withdrawReward(validator)` is not implemented
- [ ] `LocalOrchestrationAccount` `redelegate` is not implemented
- [ ] `withdrawRewards()` is not implemented on `LocalOrchestrationAccount` and `CosmosOrchestrationAccount`
- [ ] The methods of `StakingAccountQueries`
What is the Problem Being Solved?
External CosmosOrchestrationAccount supports the
StakingAccountActions
andStakingAccountQueries
interfaces. https://github.com/Agoric/agoric-sdk/blob/67275c2ac643b53bb74422cc92fe1f3565150d12/packages/orchestration/src/cosmos-api.ts#L144-L192LocalOrchestrationAccount
presents a different interface fordelegate
andundelegate
- it currently takes(string, ertpAmount)
instead of(ChainAddress, AmountArg)
There is incongruity between
undelegate
anddelegate
/redelegate
in theStakingActions
interface - the former takes an array of delegations while the latter two only accept a single delegation.Some StakingActions have yet to be implemented in
LocalOrchestrationAccount
.Description of the Design
Security Considerations
Scaling Considerations
Test Plan
Upgrade Considerations