syntax = "proto2"; package hw.trezor.messages.ontology; // Sugar for easier handling in Java option java_package = "com.satoshilabs.trezor.lib.protobuf"; option java_outer_classname = "TrezorMessageOntology"; /** * Ontology Transaction * @embed */ message OntologyTransaction { optional uint32 version = 1; optional uint32 type = 2; optional uint32 nonce = 3; optional uint64 gas_price = 4; optional uint64 gas_limit = 5; optional string payer = 6; repeated OntologyTxAttribute tx_attributes = 7; /** * Attribute of Ontology transaction */ message OntologyTxAttribute { optional uint32 usage = 1; optional bytes data = 2; } } /** * Request: Ask device for Ontology public key corresponding to address_n path * @start * @next OntologyPublicKey */ message OntologyGetPublicKey { repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node optional bool show_display = 2; // Optionally show on display before sending the result } /** * Response: Contains Ontology public key derived from device private seed * @end */ message OntologyPublicKey { optional bytes public_key = 1; // Ontology public key } /** * Request: Ask device for Ontology address corresponding to address_n path * @start * @next OntologyAddress */ message OntologyGetAddress { repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node optional bool show_display = 2; // Optionally show on display before sending the result } /** * Response: Contains Ontology address derived from device private seed * @end */ message OntologyAddress { optional string address = 1; // Ontology address } /** * Request: Ask device to sign Ontology transaction * @start * @next OntologySignedTx */ message OntologySignTx{ repeated uint32 address_n = 1; optional OntologyTransaction transaction = 2; optional OntologyTransfer transfer = 3; optional OntologyWithdrawOng withdraw_ong = 4; optional OntologyOntIdRegister ont_id_register = 5; optional OntologyOntIdAddAttributes ont_id_add_attributes = 6; message OntologyTransfer { optional OntologyAsset asset = 1; optional uint64 amount = 2; optional string from_address = 3; optional string to_address = 4; /** * Ontology Asset */ enum OntologyAsset { ONT = 1; ONG = 2; } } /** * Ontology ONG Withdrawal */ message OntologyWithdrawOng { optional uint64 amount = 1; optional string from_address = 2; optional string to_address = 3; } /** * Ontology ONT ID registration */ message OntologyOntIdRegister { optional string ont_id = 1; optional bytes public_key = 2; } /** * Ontology ONT ID attributes adding */ message OntologyOntIdAddAttributes { optional string ont_id = 1; optional bytes public_key = 2; repeated OntologyOntIdAttribute ont_id_attributes = 3; /** * Attribute of Ontology ONT ID */ message OntologyOntIdAttribute { optional string key = 1; optional string type = 2; optional string value = 3; } } } /** * Response: Contains Ontology tx signature and payload * @end */ message OntologySignedTx { optional bytes signature = 1; optional bytes payload = 2; }