add or remove provider transaction
Add a special transaction type that allow owner to add and remove providers. Contains:
- add a new types of transaction
- add or remove provider at stateDB level
- validate and handle transaction msg at Evm level
- validate transaction at tx pool level
Also:
- ProviderAddresses of stateObject change from []*common.Address to []common.Address
- Move some basic check (only required tx field) from tx_pool to tx.AsMessage. For example: it a contract creation tx has owner but no provdier, tx.AsMessage will return an error
Checklist
-
check condition to add and remove provider at state db level -
unit test at statedb level -
filter transaction at tx pool level -
tx signature for normal transaction is unchanged -
integration test