Timelines

https://github.com/BitBadges/bitbadgeschain/blob/master/proto/badges/timelines.proto
syntax = "proto3";
package badges;

import "google/protobuf/any.proto";
import "badges/transfers.proto";
import "badges/balances.proto";
import "badges/permissions.proto";
import "badges/metadata.proto";
import "gogoproto/gogo.proto";

option go_package = "github.com/bitbadges/bitbadgeschain/x/badges/types";

// CollectionMetadataTimeline defines the metadata for a collection at different timeline times.
message CollectionMetadataTimeline {
  // The collection metadata for a specific timeline element.
  CollectionMetadata collectionMetadata = 1;

  // The timeline times when the collection metadata is valid. Can not overlap with other timeline elements in same array.
  repeated UintRange timelineTimes = 2;
}

// BadgeMetadataTimeline defines the metadata for tokens at different timeline times.
message BadgeMetadataTimeline {
  // The token metadata for a specific timeline element.
  repeated BadgeMetadata badgeMetadata = 1;

  // The timeline times when the token metadata is valid. Can not overlap with other timeline elements in same array.
  repeated UintRange timelineTimes = 2;
}

// OffChainBalancesMetadataTimeline defines the metadata for off-chain balances at different timeline times.
message OffChainBalancesMetadataTimeline {
  // The off-chain balances metadata for a specific timeline element.
  OffChainBalancesMetadata offChainBalancesMetadata = 1;

  // The timeline times when the off-chain balances metadata is valid. Can not overlap with other timeline elements in same array.
  repeated UintRange timelineTimes = 2;
}

// CustomDataTimeline defines custom data at different timeline times.
message CustomDataTimeline {
  // The custom data for a specific timeline element.
  string customData = 1;

  // The timeline times when the custom data is valid. Can not overlap with other timeline elements in same array.
  repeated UintRange timelineTimes = 2;
}

// ManagerTimeline defines the manager address at different timeline times.
message ManagerTimeline {
  // The manager address for a specific timeline element.
  string manager = 1;

  // The timeline times when the manager address is valid. Can not overlap with other timeline elements in same array.
  repeated UintRange timelineTimes = 2;
}

// IsArchivedTimeline defines whether a collection is archived at different timeline times.
message IsArchivedTimeline {
  // Indicates whether the collection is archived for a specific timeline element.
  bool isArchived = 1;

  // The timeline times when the archived status is valid. Can not overlap with other timeline elements in same array.
  repeated UintRange timelineTimes = 2;
}

// ContractAddressTimeline defines the contract address at different timeline times.
message ContractAddressTimeline {
  // The contract address for a specific timeline element.
  string contractAddress = 1;

  // The timeline times when the contract address is valid. Can not overlap with other timeline elements in same array.
  repeated UintRange timelineTimes = 2;
}

// StandardsTimeline defines the standards used for a collection at different timeline times.
message StandardsTimeline {
  // The standards applied to the collection for a specific timeline element.
  repeated string standards = 1;

  // The timeline times when the standards are valid. Can not overlap with other timeline elements in same array.
  repeated UintRange timelineTimes = 2;
}

Last updated