Currently in version 1.2 Withdrawals were not enabled. In order to enable withdrawals we need to do the following. ## Improvements - [x] Create a new protocol version 4. - [x] Create a new state transition version of credit withdrawals 1. - [x] Write the correct validation as version 1. - [x] Review and fix code of credit withdrawals pass 1. - [x] Review and fix code of credit withdrawals double check. @shumkov @QuantumExplorer - [x] Write unit tests for credit withdrawals. - [x] Write strategy tests for credit withdrawals. - [x] Set versions of protocol version 4. - [x] Write delay of withdrawals till special window. - [x] Implement Withdrawal limits. - [x] Increase fees for withdrawals to match actual network cost. - [x] Write observability mechanisms for withdrawal limits. - [x] Write observability mechanisms for withdrawal queue. - [x] System to resign expired withdrawals. - [x] https://github.com/dashpay/platform/pull/2191 - [x] https://github.com/dashpay/platform/pull/2201 ## Withdrawal contract improvements - [x] ~transactionIndex must be unique index~ - [x] revisit contract (nothing to be done) @shumkov @QuantumExplorer ## Testing - [x] Test withdrawals on local network. - [x] Test withdrawals on devnet. - [x] Test withdrawals on testnet. - [x] Try attacking withdrawals. - [x] Add unit tests for invalid withdrawals. @shumkov - [x] Test Withdrawal limits. @shumkov @lklimek - [x] Test expired withdrawals. - [x] Test resigning of withdrawals. - [x] Send to Core another withdrawal with the same index. @shumkov - [x] Stress test withdrawals. - [x] Verify that transactions are not pooled and broadcasted on same block. - [x] https://github.com/dashpay/platform/issues/2204 - [x] https://github.com/dashpay/platform/issues/2205 - [x] https://docs.google.com/document/d/1QAb3NxNdVJIYl_yPx92z76tX9xnDcICRg2ZWnrMkLyo/edit @pauldelucia @lklimek
Currently in version 1.2 Withdrawals were not enabled. In order to enable withdrawals we need to do the following.
Improvements
Withdrawal contract improvements
transactionIndex must be unique indexTesting