We used ProposalValidator for most validation processes but that missed
the custom validation in the sub classed for each proposal type.
ProposalValidator is now abstract and ProposalValidatorProvider returns
instance matching to proposal type.
- Make all PaymentMethod constructors private
- Use PaymentMethod.getPaymentMethodById in Offer for getting the
PaymentMethod. This change a bit the context as now we always create the
PaymentMethod from the actual code base in contrast to the data which
have been used when creating the offer. As our fields as final and must
not change in software updates it should have no issues but we have to
keep that in mind to not alter the default values.
- Added a runtimeException in case the maxTradeLimit does not match one
of our default values.
- Use PaymentMethod.getDummyPaymentMethod(GUIUtil.SHOW_ALL_FLAG)
instead of new PaymentMethod(GUIUtil.SHOW_ALL_FLAG))
- We had an automate remove accounts for those payment methods for long
time, so we can assume that no traders have any of those accounts still
in their persisted user objects and it is safe to completely remove them.
Only part where we cannot remove it is the PB definitions (actually I
think we could remove those as well, but not 100% sure and it seems to
be more safe to mark those as deprecated and leave the entries).
- Set max trade limit to 2 BTC (for altcoins)
- Add MAX_TRADE_LIMIT to Param
- Round first month trade limit to ensure we stick with precision 4 for
the btc amount
- Use risk factors to derive trade limits for different payment method
risk categories
Set ignore to failing tests
@Bernard could you have a look and try to get those working?
Reason for problem is that repeated calls to getEstimatedFeeTxSize
do not work (returns 0 at second call in loop which cause test to fail)
In case of reorgs there are several scenarios:
1. We have no snapshot yet: We start from genesis again
2. We have a snapshot and go back to that: We use last snapshot
3. We have a snapshot but the reorg does deeper so our last block in the
snapshot is invalid as well: -> we go back to genesis
There are many edge cases
There was one important bug fix with a == instead of an equals
comparison.
Added also the check that the first block need to be the genesis block.
Unfortunately the chainHeight is set to the genesis height initially
which is not right (should be 0 as we dont have any block and therefore
no chainHeight). To change that will be a bit risky, but for mainnet we
should consider it. There are several usages where a change might break
stuff, for instance the parameter handling.