@@ -59,6 +59,7 @@ message StellarSignTx {
5959 optional uint64 memo_id = 12 ; // 8-byte uint64
6060 optional bytes memo_hash = 13 ; // 32 bytes representing a hash
6161 required uint32 num_operations = 14 ; // number of operations in this transaction
62+ optional uint32 soroban_data_size = 60 [default =0 ]; // soroban transaction
6263
6364 // https://github.com/stellar/stellar-core/blob/02d26858069de7c0eefe065056fb0a19bf72ea56/src/xdr/Stellar-transaction.x#L506-L513
6465 enum StellarMemoType {
@@ -85,6 +86,7 @@ message StellarSignTx {
8586 * @next StellarAccountMergeOp
8687 * @next StellarManageDataOp
8788 * @next StellarBumpSequenceOp
89+ * @next StellarInvokeHostFunctionOp
8890 */
8991message StellarTxOpRequest {
9092}
@@ -268,6 +270,44 @@ message StellarBumpSequenceOp {
268270 required uint64 bump_to = 2 ; // new sequence number
269271}
270272
273+ /**
274+ * Request: ask device to confirm this operation type
275+ * @next StellarSorobanDataRequest
276+ * @next StellarSignedTx
277+ */
278+ message StellarInvokeHostFunctionOp {
279+ optional string source_account = 1 ; // (optional) source account address
280+ required string contract_address = 2 ; // contract id string
281+ required string function_name = 3 ; // invoked contract function name (SCSymbol, max 32 bytes)
282+ required uint32 call_args_xdr_size = 4 ; // the total size of call args xdr
283+ required bytes call_args_xdr_initial_chunk = 5 ; // invokecontract call args xdr bytes
284+ required uint32 soroban_auth_xdr_size = 6 ;
285+ required bytes soroban_auth_xdr_initial_chunk = 7 ; // soroban authorization entries xdr
286+ }
287+
288+ /**
289+ * Response: device is ready for client to send the soroban data
290+ * @next StellarSorobanDataAck
291+ */
292+ message StellarSorobanDataRequest {
293+ required StellarRequestType type = 1 ;
294+ required uint32 data_length = 2 ; // Number of bytes being requested (<= 1024)
295+
296+ enum StellarRequestType {
297+ CALL = 0 ;
298+ AUTH = 1 ;
299+ EXT = 2 ;
300+ }
301+ }
302+
303+ /**
304+ * Request: ask device to confirm
305+ * @next StellarSignedTx
306+ */
307+ message StellarSorobanDataAck {
308+ required bytes data_chunk_xdr = 1 ; // the soroban data in xdr format
309+ }
310+
271311/**
272312 * Response: signature for transaction
273313 * @end
0 commit comments