github.com/kisexp/xdchain@v0.0.0-20211206025815-490d6b732aa7/private/engine/tessera/model.go (about)

     1  package tessera
     2  
     3  import "github.com/kisexp/xdchain/private/engine"
     4  
     5  // request object for /send API
     6  type sendRequest struct {
     7  	Payload []byte `json:"payload"`
     8  
     9  	// base64-encoded
    10  	From string `json:"from,omitempty"`
    11  
    12  	To []string `json:"to"`
    13  
    14  	// Transactions' encrypted payload hashes for affected contracts
    15  	AffectedContractTransactions []string `json:"affectedContractTransactions"`
    16  
    17  	// Merkle root for affected contracts
    18  	ExecHash string `json:"execHash,omitempty"`
    19  
    20  	PrivacyFlag engine.PrivacyFlagType `json:"privacyFlag"`
    21  
    22  	MandatoryRecipients []string `json:"mandatoryRecipients"`
    23  }
    24  
    25  // request object for /send API
    26  type storerawRequest struct {
    27  	Payload []byte `json:"payload"`
    28  
    29  	// base64-encoded
    30  	From string `json:"from,omitempty"`
    31  }
    32  
    33  // response object for /send API
    34  type sendResponse struct {
    35  	// Base64-encoded
    36  	Key string `json:"key"`
    37  	// Public Keys
    38  	ManagedParties []string `json:"managedParties"`
    39  	// Sender tessera public key
    40  	SenderKey string `json:"senderKey"`
    41  }
    42  
    43  type receiveResponse struct {
    44  	Payload []byte `json:"payload"`
    45  
    46  	// Transactions' encrypted payload hashes for affected contracts
    47  	AffectedContractTransactions []string `json:"affectedContractTransactions"`
    48  
    49  	// Merkle root for affected contracts
    50  	ExecHash string `json:"execHash"`
    51  
    52  	PrivacyFlag engine.PrivacyFlagType `json:"privacyFlag"`
    53  
    54  	// Public Keys
    55  	ManagedParties []string `json:"managedParties"`
    56  	// Sender tessera public key
    57  	SenderKey string `json:"senderKey"`
    58  }
    59  
    60  type sendSignedTxRequest struct {
    61  	Hash []byte   `json:"hash"`
    62  	To   []string `json:"to"`
    63  	// Transactions' encrypted payload hashes for affected contracts
    64  	AffectedContractTransactions []string `json:"affectedContractTransactions"`
    65  	// Merkle root for affected contracts
    66  	ExecHash string `json:"execHash,omitempty"`
    67  
    68  	PrivacyFlag engine.PrivacyFlagType `json:"privacyFlag"`
    69  
    70  	MandatoryRecipients []string `json:"mandatoryRecipients"`
    71  }
    72  
    73  type sendSignedTxResponse struct {
    74  	// Base64-encoded
    75  	Key string `json:"key"`
    76  	// Public Keys
    77  	ManagedParties []string `json:"managedParties"`
    78  	// Sender tessera public key
    79  	SenderKey string `json:"senderKey"`
    80  }
    81  
    82  type encryptPayloadResponse struct {
    83  	SenderKey       []byte   `json:"senderKey"`
    84  	CipherText      []byte   `json:"cipherText"`
    85  	CipherTextNonce []byte   `json:"cipherTextNonce"`
    86  	RecipientBoxes  []string `json:"recipientBoxes"`
    87  	RecipientNonce  []byte   `json:"recipientNonce"`
    88  	RecipientKeys   []string `json:"recipientKeys"`
    89  }
    90  
    91  type decryptPayloadRequest struct {
    92  	SenderKey       []byte   `json:"senderKey"`
    93  	CipherText      []byte   `json:"cipherText"`
    94  	CipherTextNonce []byte   `json:"cipherTextNonce"`
    95  	RecipientBoxes  []string `json:"recipientBoxes"`
    96  	RecipientNonce  []byte   `json:"recipientNonce"`
    97  	RecipientKeys   []string `json:"recipientKeys"`
    98  }