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 }