Largely based on nominator_pool this contract solves isolated simple problem:
Given that we have one validator and nominator create trustless solution when nominator may lend assets to validator and share reward.
This contract bases on a few simplifications:
- Only one nominator (which may and should be a nomination-pool contract).
- Contract participates only in one round and is locked till it gets stake back. Thus two contracts are needed to validate all the time.
- Optimistic but still robust approach of ignoring elector responses.
Controler guarantees the following:
- Validator can not withdraw user funds
- Validator cover regular fines as advertised (publicly available
controller_cover_ability
variable) - Profit is shared as advertised (publicly available
controller_reward_share
variable) - Funds may be recovered even if validator is uncooperative
- Fully wallet compatible (no changes on validation scripts)
- Nominator notifications
Restricted wallet which fully compatible with v3 wallet but allows to send funds to elector, config and owner only. That way owner private key may be stored in cold storage