[TM-62] Add counter to contract address computing
Description
[TM-62] Do address computation more correctly
Problem: currently the address of any originated contract is calculated,
essentially, as a hash of its JSON-encoded code and initial storage.
This means that multiple originations of the same contract lead to the
identical addresses, contrary to what reference Tezos does.
Solution: include a global operation counter and in-operation
origination nonce to the calculation of the addresses. Match Tezos's
encoding of addresses more closely, namely derive addresses from any
global operation that led to origination, not the immediate
OriginationOperation.
Related issue(s)
Resolves https://issues.serokell.io/issue/TM-62
✅ Checklist for your Merge Request
Related changes (conditional)
-
Tests (see short guidelines)
-
If I added new functionality, I added tests covering it. -
If I fixed a bug, I added a regression test to prevent the bug from silently reappearing again.
-
-
Documentation
Stylistic guide (mandatory)
-
My commits comply with the following policy. -
My code complies with the style guide.
Edited by Maxim Koltsov