Skip to content

[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

    • I checked whether I should update the docs and did so if necessary:
    • I updated changelog files of all affected packages released to Hackage if my changes are externally visible.

Stylistic guide (mandatory)

Edited by Maxim Koltsov

Merge request reports