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
}
}
}
]
};