syntax = "proto3";
package provenance.hold.v1;

option go_package          = "github.com/provenance-io/provenance/x/hold";
option java_package        = "io.provenance.hold.v1";
option java_multiple_files = true;

import "cosmos/msg/v1/msg.proto";
import "cosmos_proto/cosmos.proto";
import "gogoproto/gogo.proto";

// Msg defines the hold Msg service.
service Msg {
  option (cosmos.msg.v1.service) = true;

  // UnlockVestingAccounts unlocks one or more vesting accounts.
  rpc UnlockVestingAccounts(MsgUnlockVestingAccountsRequest) returns (MsgUnlockVestingAccountsResponse);
}

// MsgUnlockVestingAccountsRequest defines the request for unlocking vesting accounts
message MsgUnlockVestingAccountsRequest {
  option (cosmos.msg.v1.signer)      = "authority";
  option (gogoproto.equal)           = false;
  option (gogoproto.goproto_getters) = false;

  // authority is the address that can execute this message (governance module account)
  string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];

  // addresses is the list of vesting account addresses to convert back to base accounts
  repeated string addresses = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
}

// MsgUnlockVestingAccountsResponse defines the response for unlocking vesting accounts
message MsgUnlockVestingAccountsResponse {}
