Commit graph

3 commits

Author SHA1 Message Date
Arran Schlosberg
380aa319f9
refactor!: consolidate params and types payload access (#84)
## Why this should be merged

There are 3 places at which we perform the same, sensitive logic to
access registered payloads and as we modify more types this is likely to
expand. (e.g. `types.Header`).

## How this works

Introduces `pseudo.Accessor` to abstract the reusable code.

## How this was tested

Existing unit tests. Note that the `types.StateAccount` tests needed a
minor refactor to provide the assertions with access to the
`ExtraPayloads[T]` without introducing generic types anywhere.
2024-12-09 18:32:15 +00:00
Arran Schlosberg
c2f1269ba3
feat!: types.ExtraPayloads supports SlimAccount (#79)
## Why this should be merged

Provides access to extra payloads registered on `types.SlimAccount`, not
just on regular `types.StateAccount`. This is a breaking syntax change
to have the method reflect the behaviour.

## How this works

Modify existing method to accept the `ExtraPayloadCarrier` interface
instead of `*StateAccount`. The interface is implemented by both
`*StateAccount` and `*SlimAccount`.

## How this was tested

Covered by existing testing.
2024-11-29 08:02:03 -08:00
Arran Schlosberg
cb7eb89341
fix: state.stateObject.empty() with extra payload (#62)
## Why this should be merged

Fixes invariant broken by introduction of `types.StateAccountExtra`.

## How this works

`state.stateObject.empty()` now also requires that the underlying
account's `Extra` field carries the zero value if a type is registered,
or is itself nil.

## How this was tested

New unit test.

---------

Co-authored-by: Darioush Jalali <darioush.jalali@avalabs.org>
2024-10-28 11:34:19 -07:00