Closed
Description
Context
FVM updated the requirement about user signature tags to accept all tags (onflow/flow-go#2171). The user tag is deprecated (not a protocol constant anymore) and should not be used.
It is still hardcoded in the crypto contract to verify signatures (https://github.com/onflow/cadence/blob/49c7bc8/runtime/stdlib/contracts/crypto.cdc#L155)
The crypto contract API could also take a tag parameter, which would be a breaking change.
The contract is currently part of the Cadence code base. We can take this opportunity to move the contract out of Cadence and deploy it on both testnet and mainnet. This allows future contract updates to happen without a spork.
Definition of done:
- add a new tag parameter for the
verify
function and use it to verify each signature. - remove the flow user tag from the contract
- update the contract tests
-
(optional) move the contract and tests outside of Cadence -
(optional) deploy the new contract to testnet and mainnet