Skip to content

Crypto.KeyList is not a storable type #1095

Closed

Description

Problem

The Crypto.KeyList, SignatureAlgorithm and HashAlgorithm types do not implement the Storable interface and therefore can't be used as fields inside a resource.

Steps to Reproduce

You can observe the error in this CI run for the keylist branch on the token-cold-storage repository.

execution error code 1101: [Error Code: 1101] cadence runtime error Execution failed:
    error: mismatched types
      --> 56626291fa218bc24cab8d838165ee0887da3b07552d9380e54809801370db7a:39:17
       |
    39 |     account.save(<-coldVault, to: /storage/flowTokenColdStorage)
       |                  ^^^^^^^^^^^ expected `Storable`, got `ColdStorage.Vault`

An alternate version of the same contract that doesn't use Crypto.KeyList passes the same test cases.

Acceptance Criteria

Crypto.KeyList objects can be stored inside of a resource.

Context

I discovered this while writing an example for a team wishing to implement on-chain signature verification.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions