Authorization

Users must grant authorization for smart contracts to send messages on their behalf. This is facilitated by the Authorization.sol, which provides the necessary functions for granting approvals and allowances. The precompiled contracts utilize the AuthorizationI interface, enabling users to approve the relevant messages and amounts.

Solidity Interfaces

Authorization.sol

Transactions

  • approve

    Approves a list of Cosmos or IBC transactions with a specific amount of tokens

    function approve(
            address spender,
            uint256 amount,
            string[] calldata methods
        ) external returns (bool approved);
  • revoke

    Revokes authorizations of Cosmos transactions.

    function revoke(
        address spender,
        string[] calldata methods
    ) external returns (bool revoked);
  • increaseAllowance

    Increase the allowance of a given spender by a specific amount of tokens for IBC transfer methods or staking

    function increaseAllowance(
            address spender,
            uint256 amount,
            string[] calldata methods
        ) external returns (bool approved);
  • decreaseAllowance

    Decreases the allowance of a given spender by a specific amount of tokens for IBC transfer methods or staking

    function decreaseAllowance(
            address spender,
            uint256 amount,
            string[] calldata methods
        ) external returns (bool approved);

Queries

  • allowance

    Returns the remaining number of tokens that the spender will be allowed to spend on behalf of the owner through IBC transfer methods or staking. This is zero by default

    function allowance(
            address owner,
            address spender,
            string calldata method
    ) external view returns (uint256 remaining);

Events

  • Approval

    This event is emitted when the allowance of a spender is set by a call to the approve method. The value field specifies the new allowance and the methods field holds the information for which methods the approval was set.

    event Approval(
            address indexed owner,
            address indexed spender,
            string[] methods,
            uint256 value
        );
  • Revocation

    This event is emitted when an owner revokes a spender's allowance.

    event Revocation(
        address indexed owner,
        address indexed spender,
        string[] methods
    );
  • AllowanceChange

    This event is emitted when the allowance of a spender is changed by a call to the decrease or increase allowance method. The values field specifies the new allowances and the methods field holds the information for which methods the approval was set.

    event AllowanceChange(
            address indexed owner,
            address indexed spender,
            string[] methods,
            uint256[] values
        );

Last updated