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

sdk.models.box.assets_statements.proto Maven / Gradle / Ivy

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



package org.plasmalabs.sdk.models.box;

import 'validate/validate.proto';

import 'quivr/models/shared.proto';
import 'sdk/models/address.proto';

import 'google/protobuf/wrappers.proto';
import "google/protobuf/struct.proto";

message AssetMintingStatement {
  // The address of the UTXO that contains the group constructor token that we are using to mint the asset token.
  TransactionOutputAddress groupTokenUtxo = 1 [(validate.rules).message.required = true];
  // The address of the UTXO that contains the seriesconstructor token that we are using to mint the asset token.
  TransactionOutputAddress seriesTokenUtxo = 2 [(validate.rules).message.required = true];
  // The number of assets that we are minting using the group and series constructor token references by the two other attributes.
  quivr.models.Int128 quantity = 3 [(validate.rules).message.required = true];
  // This is the permanent metadata of an asset.
  // It follows the schema defined in the permanent metadata schema of the series policy corresponding to the token being minted.
  // The conformance of this field to the schema is not checked by the node.
  google.protobuf.Struct permanentMetadata = 4;
}

message AssetMergingStatement {
  // The non-empty list of UTXOs that we are using to compute the Merkle root for the alloy.
  repeated TransactionOutputAddress inputUtxos = 1;
  // The index in the output sequence of the transaction where the merged tokens are stored.
  uint32 outputIdx = 2;
}

message AssetSplittingStatement {
  // The non-empty list of indexes where the split asset is being put.
  repeated google.protobuf.UInt32Value outputIndexes = 1;
  // The UTXO that is being split.
  TransactionOutputAddress inputUtxo = 2 [(validate.rules).message.required = true];
}
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