import { Coin, CoinAmino } from "../../../cosmos/base/v1beta1/coin"; import { BinaryReader, BinaryWriter } from "../../../binary"; import { DeepPartial } from "../../../helpers"; /** each Action enum value should be a power of two */ export declare enum Action { /** UNSPECIFIED - 0 is reserved for ACTION_UNSPECIFIED */ UNSPECIFIED = 0, /** MINT - 1 is reserved for MINT */ MINT = 1, /** RECEIVE - 2 is reserved for RECEIVE */ RECEIVE = 2, /** BURN - 4 is reserved for BURN */ BURN = 4, /** SEND - 8 is reserved for SEND */ SEND = 8, /** SUPER_BURN - 16 is reserved for SUPER_BURN */ SUPER_BURN = 16, /** MODIFY_POLICY_MANAGERS - 2^27 is reserved for MODIFY_POLICY_MANAGERS */ MODIFY_POLICY_MANAGERS = 134217728, /** MODIFY_CONTRACT_HOOK - 2^28 is reserved for MODIFY_CONTRACT_HOOK */ MODIFY_CONTRACT_HOOK = 268435456, /** MODIFY_ROLE_PERMISSIONS - 2^29 is reserved for MODIFY_ROLE_PERMISSIONS */ MODIFY_ROLE_PERMISSIONS = 536870912, /** MODIFY_ROLE_MANAGERS - 2^30 is reserved for MODIFY_ROLE_MANAGERS */ MODIFY_ROLE_MANAGERS = 1073741824, UNRECOGNIZED = -1 } export declare const ActionAmino: typeof Action; export declare function actionFromJSON(object: any): Action; export declare function actionToJSON(object: Action): string; /** * Namespace defines a permissions namespace * @name Namespace * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.Namespace */ export interface Namespace { /** * tokenfactory denom to which this namespace applies to */ denom: string; /** * address of smart contract to apply code-based restrictions */ contractHook: string; /** * permissions for each role */ rolePermissions: Role[]; /** * roles for each actor */ actorRoles: ActorRoles[]; /** * managers for each role */ roleManagers: RoleManager[]; /** * status for each policy */ policyStatuses: PolicyStatus[]; /** * capabilities for each manager for each policy */ policyManagerCapabilities: PolicyManagerCapability[]; } export interface NamespaceProtoMsg { typeUrl: "/injective.permissions.v1beta1.Namespace"; value: Uint8Array; } /** * Namespace defines a permissions namespace * @name NamespaceAmino * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.Namespace */ export interface NamespaceAmino { /** * tokenfactory denom to which this namespace applies to */ denom: string; /** * address of smart contract to apply code-based restrictions */ contract_hook: string; /** * permissions for each role */ role_permissions: RoleAmino[]; /** * roles for each actor */ actor_roles: ActorRolesAmino[]; /** * managers for each role */ role_managers: RoleManagerAmino[]; /** * status for each policy */ policy_statuses: PolicyStatusAmino[]; /** * capabilities for each manager for each policy */ policy_manager_capabilities: PolicyManagerCapabilityAmino[]; } export interface NamespaceAminoMsg { type: "/injective.permissions.v1beta1.Namespace"; value: NamespaceAmino; } /** * AddressRoles defines roles for an actor * @name ActorRoles * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.ActorRoles */ export interface ActorRoles { actor: string; roles: string[]; } export interface ActorRolesProtoMsg { typeUrl: "/injective.permissions.v1beta1.ActorRoles"; value: Uint8Array; } /** * AddressRoles defines roles for an actor * @name ActorRolesAmino * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.ActorRoles */ export interface ActorRolesAmino { actor: string; roles: string[]; } export interface ActorRolesAminoMsg { type: "/injective.permissions.v1beta1.ActorRoles"; value: ActorRolesAmino; } /** * RoleActors defines actors for a role * @name RoleActors * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.RoleActors */ export interface RoleActors { role: string; actors: string[]; } export interface RoleActorsProtoMsg { typeUrl: "/injective.permissions.v1beta1.RoleActors"; value: Uint8Array; } /** * RoleActors defines actors for a role * @name RoleActorsAmino * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.RoleActors */ export interface RoleActorsAmino { role: string; actors: string[]; } export interface RoleActorsAminoMsg { type: "/injective.permissions.v1beta1.RoleActors"; value: RoleActorsAmino; } /** * RoleManager defines roles for a manager address * @name RoleManager * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.RoleManager */ export interface RoleManager { manager: string; roles: string[]; } export interface RoleManagerProtoMsg { typeUrl: "/injective.permissions.v1beta1.RoleManager"; value: Uint8Array; } /** * RoleManager defines roles for a manager address * @name RoleManagerAmino * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.RoleManager */ export interface RoleManagerAmino { manager: string; roles: string[]; } export interface RoleManagerAminoMsg { type: "/injective.permissions.v1beta1.RoleManager"; value: RoleManagerAmino; } /** * PolicyStatus defines the status of a policy * @name PolicyStatus * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.PolicyStatus */ export interface PolicyStatus { action: Action; isDisabled: boolean; isSealed: boolean; } export interface PolicyStatusProtoMsg { typeUrl: "/injective.permissions.v1beta1.PolicyStatus"; value: Uint8Array; } /** * PolicyStatus defines the status of a policy * @name PolicyStatusAmino * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.PolicyStatus */ export interface PolicyStatusAmino { action: Action; is_disabled: boolean; is_sealed: boolean; } export interface PolicyStatusAminoMsg { type: "/injective.permissions.v1beta1.PolicyStatus"; value: PolicyStatusAmino; } /** * Role is only used for storage * @name Role * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.Role */ export interface Role { name: string; roleId: number; permissions: number; } export interface RoleProtoMsg { typeUrl: "/injective.permissions.v1beta1.Role"; value: Uint8Array; } /** * Role is only used for storage * @name RoleAmino * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.Role */ export interface RoleAmino { name: string; role_id: number; permissions: number; } export interface RoleAminoMsg { type: "/injective.permissions.v1beta1.Role"; value: RoleAmino; } /** * PolicyManagerCapability defines the capabilities of a manager for a policy * @name PolicyManagerCapability * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.PolicyManagerCapability */ export interface PolicyManagerCapability { manager: string; action: Action; canDisable: boolean; canSeal: boolean; } export interface PolicyManagerCapabilityProtoMsg { typeUrl: "/injective.permissions.v1beta1.PolicyManagerCapability"; value: Uint8Array; } /** * PolicyManagerCapability defines the capabilities of a manager for a policy * @name PolicyManagerCapabilityAmino * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.PolicyManagerCapability */ export interface PolicyManagerCapabilityAmino { manager: string; action: Action; can_disable: boolean; can_seal: boolean; } export interface PolicyManagerCapabilityAminoMsg { type: "/injective.permissions.v1beta1.PolicyManagerCapability"; value: PolicyManagerCapabilityAmino; } /** * used in storage * @name RoleIDs * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.RoleIDs */ export interface RoleIDs { roleIds: number[]; } export interface RoleIDsProtoMsg { typeUrl: "/injective.permissions.v1beta1.RoleIDs"; value: Uint8Array; } /** * used in storage * @name RoleIDsAmino * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.RoleIDs */ export interface RoleIDsAmino { role_ids: number[]; } export interface RoleIDsAminoMsg { type: "/injective.permissions.v1beta1.RoleIDs"; value: RoleIDsAmino; } /** * AddressVoucher is used to represent a voucher for a specific address * @name AddressVoucher * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.AddressVoucher */ export interface AddressVoucher { address: string; voucher: Coin; } export interface AddressVoucherProtoMsg { typeUrl: "/injective.permissions.v1beta1.AddressVoucher"; value: Uint8Array; } /** * AddressVoucher is used to represent a voucher for a specific address * @name AddressVoucherAmino * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.AddressVoucher */ export interface AddressVoucherAmino { address: string; voucher: CoinAmino; } export interface AddressVoucherAminoMsg { type: "/injective.permissions.v1beta1.AddressVoucher"; value: AddressVoucherAmino; } /** * Namespace defines a permissions namespace * @name Namespace * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.Namespace */ export declare const Namespace: { typeUrl: string; is(o: any): o is Namespace; isAmino(o: any): o is NamespaceAmino; encode(message: Namespace, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): Namespace; fromPartial(object: DeepPartial): Namespace; fromAmino(object: NamespaceAmino): Namespace; toAmino(message: Namespace): NamespaceAmino; fromAminoMsg(object: NamespaceAminoMsg): Namespace; fromProtoMsg(message: NamespaceProtoMsg): Namespace; toProto(message: Namespace): Uint8Array; toProtoMsg(message: Namespace): NamespaceProtoMsg; registerTypeUrl(): void; }; /** * AddressRoles defines roles for an actor * @name ActorRoles * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.ActorRoles */ export declare const ActorRoles: { typeUrl: string; is(o: any): o is ActorRoles; isAmino(o: any): o is ActorRolesAmino; encode(message: ActorRoles, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): ActorRoles; fromPartial(object: DeepPartial): ActorRoles; fromAmino(object: ActorRolesAmino): ActorRoles; toAmino(message: ActorRoles): ActorRolesAmino; fromAminoMsg(object: ActorRolesAminoMsg): ActorRoles; fromProtoMsg(message: ActorRolesProtoMsg): ActorRoles; toProto(message: ActorRoles): Uint8Array; toProtoMsg(message: ActorRoles): ActorRolesProtoMsg; registerTypeUrl(): void; }; /** * RoleActors defines actors for a role * @name RoleActors * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.RoleActors */ export declare const RoleActors: { typeUrl: string; is(o: any): o is RoleActors; isAmino(o: any): o is RoleActorsAmino; encode(message: RoleActors, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): RoleActors; fromPartial(object: DeepPartial): RoleActors; fromAmino(object: RoleActorsAmino): RoleActors; toAmino(message: RoleActors): RoleActorsAmino; fromAminoMsg(object: RoleActorsAminoMsg): RoleActors; fromProtoMsg(message: RoleActorsProtoMsg): RoleActors; toProto(message: RoleActors): Uint8Array; toProtoMsg(message: RoleActors): RoleActorsProtoMsg; registerTypeUrl(): void; }; /** * RoleManager defines roles for a manager address * @name RoleManager * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.RoleManager */ export declare const RoleManager: { typeUrl: string; is(o: any): o is RoleManager; isAmino(o: any): o is RoleManagerAmino; encode(message: RoleManager, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): RoleManager; fromPartial(object: DeepPartial): RoleManager; fromAmino(object: RoleManagerAmino): RoleManager; toAmino(message: RoleManager): RoleManagerAmino; fromAminoMsg(object: RoleManagerAminoMsg): RoleManager; fromProtoMsg(message: RoleManagerProtoMsg): RoleManager; toProto(message: RoleManager): Uint8Array; toProtoMsg(message: RoleManager): RoleManagerProtoMsg; registerTypeUrl(): void; }; /** * PolicyStatus defines the status of a policy * @name PolicyStatus * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.PolicyStatus */ export declare const PolicyStatus: { typeUrl: string; is(o: any): o is PolicyStatus; isAmino(o: any): o is PolicyStatusAmino; encode(message: PolicyStatus, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): PolicyStatus; fromPartial(object: DeepPartial): PolicyStatus; fromAmino(object: PolicyStatusAmino): PolicyStatus; toAmino(message: PolicyStatus): PolicyStatusAmino; fromAminoMsg(object: PolicyStatusAminoMsg): PolicyStatus; fromProtoMsg(message: PolicyStatusProtoMsg): PolicyStatus; toProto(message: PolicyStatus): Uint8Array; toProtoMsg(message: PolicyStatus): PolicyStatusProtoMsg; registerTypeUrl(): void; }; /** * Role is only used for storage * @name Role * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.Role */ export declare const Role: { typeUrl: string; is(o: any): o is Role; isAmino(o: any): o is RoleAmino; encode(message: Role, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): Role; fromPartial(object: DeepPartial): Role; fromAmino(object: RoleAmino): Role; toAmino(message: Role): RoleAmino; fromAminoMsg(object: RoleAminoMsg): Role; fromProtoMsg(message: RoleProtoMsg): Role; toProto(message: Role): Uint8Array; toProtoMsg(message: Role): RoleProtoMsg; registerTypeUrl(): void; }; /** * PolicyManagerCapability defines the capabilities of a manager for a policy * @name PolicyManagerCapability * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.PolicyManagerCapability */ export declare const PolicyManagerCapability: { typeUrl: string; is(o: any): o is PolicyManagerCapability; isAmino(o: any): o is PolicyManagerCapabilityAmino; encode(message: PolicyManagerCapability, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): PolicyManagerCapability; fromPartial(object: DeepPartial): PolicyManagerCapability; fromAmino(object: PolicyManagerCapabilityAmino): PolicyManagerCapability; toAmino(message: PolicyManagerCapability): PolicyManagerCapabilityAmino; fromAminoMsg(object: PolicyManagerCapabilityAminoMsg): PolicyManagerCapability; fromProtoMsg(message: PolicyManagerCapabilityProtoMsg): PolicyManagerCapability; toProto(message: PolicyManagerCapability): Uint8Array; toProtoMsg(message: PolicyManagerCapability): PolicyManagerCapabilityProtoMsg; registerTypeUrl(): void; }; /** * used in storage * @name RoleIDs * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.RoleIDs */ export declare const RoleIDs: { typeUrl: string; is(o: any): o is RoleIDs; isAmino(o: any): o is RoleIDsAmino; encode(message: RoleIDs, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): RoleIDs; fromPartial(object: DeepPartial): RoleIDs; fromAmino(object: RoleIDsAmino): RoleIDs; toAmino(message: RoleIDs): RoleIDsAmino; fromAminoMsg(object: RoleIDsAminoMsg): RoleIDs; fromProtoMsg(message: RoleIDsProtoMsg): RoleIDs; toProto(message: RoleIDs): Uint8Array; toProtoMsg(message: RoleIDs): RoleIDsProtoMsg; registerTypeUrl(): void; }; /** * AddressVoucher is used to represent a voucher for a specific address * @name AddressVoucher * @package injective.permissions.v1beta1 * @see proto type: injective.permissions.v1beta1.AddressVoucher */ export declare const AddressVoucher: { typeUrl: string; is(o: any): o is AddressVoucher; isAmino(o: any): o is AddressVoucherAmino; encode(message: AddressVoucher, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): AddressVoucher; fromPartial(object: DeepPartial): AddressVoucher; fromAmino(object: AddressVoucherAmino): AddressVoucher; toAmino(message: AddressVoucher): AddressVoucherAmino; fromAminoMsg(object: AddressVoucherAminoMsg): AddressVoucher; fromProtoMsg(message: AddressVoucherProtoMsg): AddressVoucher; toProto(message: AddressVoucher): Uint8Array; toProtoMsg(message: AddressVoucher): AddressVoucherProtoMsg; registerTypeUrl(): void; };