Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Global contracts: implement action for using global contract #12716

Open
Tracked by #12639
pugachAG opened this issue Jan 10, 2025 · 0 comments
Open
Tracked by #12639

Global contracts: implement action for using global contract #12716

pugachAG opened this issue Jan 10, 2025 · 0 comments

Comments

@pugachAG
Copy link
Contributor

pugachAG commented Jan 10, 2025

Description

Update Account to support global contracts.
See UseGlobalContractAction as part of prototype implementation.
Both code hash and account id should be supported.
Witness contracts distribution also should be updated, see record_contract_call
This requires changing account structure which is not trivial, but supported as part of NEP-491 implementation.

Important implementation note: we need to make sure that this properly integrates with contract preparation pipeline.

github-merge-queue bot pushed a commit that referenced this issue Jan 16, 2025
This PR is similar to #12737, but for using global contracts. 

Part of #12716.
github-merge-queue bot pushed a commit that referenced this issue Jan 27, 2025
Change `Account` to be enum and use different representations for serde
and borsh ser/deser:
* `SerdeAccount` is introduced for serde to maintain backward and
forward compatibility. Previously `Account` struct was directly
annotated to support serde, we are opting out of this.
* `BorshVersionedAccount` is introduced for borsh serialization.
Accounts in old format are serialized directly as `AccountV1`. Note that
we continue serializing in old format when possible to avoid 16 bytes
overhead of sentinel padding.

`Account::SERIALIZATION_SENTINEL` hack is preserved for borsh
serialization as I could not find a better way to handle backward
compatibility.

This is part of #12716, in a separate PR global contracts related fields
will be added as part of Account.
github-merge-queue bot pushed a commit that referenced this issue Jan 30, 2025
There is ongoing work on [global
contracts](#12716) that addresses
the problem near/NEPs#491 was originally
designed to solve. NEP-491 code is quite messy and has been around for
about a year. We no longer see external interest in this feature, but if
the need arises in the future, we can always restore the code.

Reverts most of (because some part is used by
#12794):
- #9600
- #10701

Also, #11005 can be closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant