github.com/InjectiveLabs/sdk-go@v1.53.0/proto/injective/permissions/v1beta1/permissions.proto (about)

     1  syntax = "proto3";
     2  package injective.permissions.v1beta1;
     3  
     4  import "gogoproto/gogo.proto";
     5  import "cosmos/base/v1beta1/coin.proto";
     6  
     7  option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types";
     8  
     9  // Namespace defines a permissions namespace
    10  message Namespace {
    11    string denom = 1; // tokenfactory denom to which this namespace applies to
    12    string wasm_hook =
    13        2; // address of smart contract to apply code-based restrictions
    14  
    15    bool mints_paused = 3;
    16    bool sends_paused = 4;
    17    bool burns_paused = 5;
    18  
    19    repeated Role role_permissions = 6; // permissions for each role
    20  
    21    repeated AddressRoles address_roles = 7;
    22  }
    23  
    24  message AddressRoles {
    25    string address = 1;
    26    repeated string roles = 2;
    27  }
    28  
    29  // each Action enum value should be a power of two
    30  enum Action {
    31    UNSPECIFIED = 0;
    32    MINT = 1;
    33    RECEIVE = 2;
    34    BURN = 4;
    35  }
    36  
    37  // Role is only used for storage
    38  message Role {
    39    string role = 1;
    40    uint32 permissions = 2;
    41  }
    42  
    43  // used in storage
    44  message RoleIDs { repeated uint32 role_ids = 1; }
    45  
    46  message Voucher {
    47    repeated cosmos.base.v1beta1.Coin coins = 1 [
    48      (gogoproto.nullable) = false,
    49      (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"
    50    ];
    51  }
    52  
    53  message AddressVoucher {
    54    string address = 1;
    55    Voucher voucher = 2;
    56  }