All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sdk.models.transaction.io_transaction.proto Maven / Gradle / Ivy

The newest version!
syntax = "proto3";
import "scalapb/scalapb.proto";
import "scalapb/validate.proto";



package org.plasmalabs.sdk.models.transaction;

import 'validate/validate.proto';

import 'sdk/models/datum.proto';
import 'sdk/models/identifier.proto';
import 'sdk/models/transaction/spent_transaction_output.proto';
import 'sdk/models/transaction/unspent_transaction_output.proto';
import 'sdk/models/box/assets_statements.proto';

// defines a transaction
message IoTransaction {
  // The ID of _this_ transaction.  This value is optional and its contents are not included in the signable or identifiable data.  Clients which _can_ verify
  // this value should verify this value, but some clients may not be able to or need to, in which case this field acts as a convenience.
  org.plasmalabs.sdk.models.TransactionId transactionId = 4;
  // 0-to-many list of inputs
  repeated SpentTransactionOutput inputs = 1;
  // 0-to-many list of outputs
  repeated UnspentTransactionOutput outputs = 2;
  // Datum
  org.plasmalabs.sdk.models.Datum.IoTransaction datum = 3 [(validate.rules).message.required = true];
  // 0-to-many list of group Policy
  repeated org.plasmalabs.sdk.models.Datum.GroupPolicy groupPolicies = 5;
  // 0-to-many list of seriesPolicy
  repeated org.plasmalabs.sdk.models.Datum.SeriesPolicy seriesPolicies = 6;
  // 0-to-many list of minting asset statements
  repeated org.plasmalabs.sdk.models.box.AssetMintingStatement mintingStatements = 7;
  // 0-to-many list of merging asset statements
  repeated org.plasmalabs.sdk.models.box.AssetMergingStatement mergingStatements = 8;
  // 0-to-many list of splitting asset statements
  repeated org.plasmalabs.sdk.models.box.AssetSplittingStatement splittingStatements = 9;
}

option (scalapb.options) = {
  [scalapb.validate.file] {
    validate_at_construction: true
  }
  field_transformations: [
    {
      when: {options: {[validate.rules] {message: {required: true}}}}
      set: {
        [scalapb.field] {
          required: true
        }
      }
    }
  ]
};




© 2015 - 2024 Weber Informatics LLC | Privacy Policy