This PR makes significant changes to the ICRC-25 permission model:
The notion of a session has been removed. The state of permissions is considered permanent with respect to a specific relying party (subject to signer policy). This closes the gap between stateless and stateful signers.
Permissions can now be requested implicitly by simply making use of a method, given the permission has not been explicitly denied before.
icrc25_revoke_permissions has been removed as it is no longer applicable to the current permission model. Resetting permissions has been considered, but dismissed as relying parties could request denied permissions to be reset too (or, in case that is excluded, would lead to unintuitive API design).
icrc25_granted_permissions has been changed to icrc25_permissions as it now returns information about the state of all permission scopes (including denied ones).
icrc25_request_permissions has been simplified and now is explicitly intended to request the state of a permission scope to be set to granted. Furthermore, the response to this request is now consistent with the response to icrc25_permissions making the API easier to use.
The section on permissions has been restructured in an attempt to make it easier to understand.
Scope extension properties have been properly defined.
This PR makes significant changes to the ICRC-25 permission model:
icrc25_revoke_permissions
has been removed as it is no longer applicable to the current permission model. Resetting permissions has been considered, but dismissed as relying parties could request denied permissions to be reset too (or, in case that is excluded, would lead to unintuitive API design).icrc25_granted_permissions
has been changed toicrc25_permissions
as it now returns information about the state of all permission scopes (including denied ones).icrc25_request_permissions
has been simplified and now is explicitly intended to request the state of a permission scope to be set togranted
. Furthermore, the response to this request is now consistent with the response toicrc25_permissions
making the API easier to use.