[ADD] Add `force` parameter to unbond & leave request

The problem

On ETH chain , transaction gas is a bit complicated, not going to the detail here , the network will trying to make sure it is paying enough gas , despite that, from time to time transaction still fail due to out of gas. When a transaction failed due to out of the gas , the network won't be able to observe that back, however gas has been burned. As a result of that , the network will not be able to subside the vault for gas.

Often this cause yggdrasil ETH asset to be insolvent. When a node get churned out , all asset get returned back to asgard , the network will still hold the yggdrasil vault accountable for the burned gas asset(ETH) , usually it won't be too much.

So if a node get churn out , node operator would like to unbond some of the bond , or leave , it will fail. Need to take some manual actions. for example: https://discord.com/channels/838986635756044328/839002619481554955/851340812066357288

The solution

It has been suggested to add an optional additional parameter to unbond and leave request , let's say force

Unbond memo: unbond:node_address -> unbond:node_address:force Leave memo: leave:node_address -> leave:node_address:force

The last part force is optional

  1. With force , if the force parameter is present , then unbond / leave handler will check what's the outstanding balance of yggdrasil vault , then convert the asset amount to RUNE , and deduct the amount of RUNE from node's bond
  2. Without force parameter , unbond / leave handler will be the same as current behaviour , if the yggdrasil vault still have some outstanding balance , then unbond , leave will fail
Assignee Loading
Time tracking Loading