syntax = "proto2"; // 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 transfer * @start * @next OntologySignedTransfer */ message OntologySignTransfer { repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node optional OntologyTransaction transaction = 2; optional OntologyTransfer transfer = 3; /** * Ontology Transfer */ 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; } } } /** * Response: Contains Ontology transfer signature * @end */ message OntologySignedTransfer { optional bytes signature = 1; optional bytes payload = 2; } /** * Request: Ask device to sign Ontology ONG withdrawal * @start * @next OntologySignedWithdrawOng */ message OntologySignWithdrawOng { repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node optional OntologyTransaction transaction = 2; optional OntologyWithdrawOng withdraw_ong = 3; /** * Ontology ONG Withdrawal */ message OntologyWithdrawOng { optional uint64 amount = 1; optional string from_address = 2; optional string to_address = 3; } } /** * Response: Contains Ontology ONG withdrawal signature * @end */ message OntologySignedWithdrawOng { optional bytes signature = 1; optional bytes payload = 2; } /** * Request: Ask device to sign Ontology ONT ID registration * @start * @next OntologySignedOntIdRegister */ message OntologySignOntIdRegister { repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node optional OntologyTransaction transaction = 2; optional OntologyOntIdRegister ont_id_register = 3; /** * Ontology ONT ID registration */ message OntologyOntIdRegister { optional string ont_id = 1; optional bytes public_key = 2; } } /** * Response: Contains Ontology ONT ID registration signature * @end */ message OntologySignedOntIdRegister { optional bytes signature = 1; optional bytes payload = 2; } /** * Request: Ask device to sign Ontology ONT ID attributes adding * @start * @next OntologySignedOntIdAddAttributes */ message OntologySignOntIdAddAttributes { repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node optional OntologyTransaction transaction = 2; optional OntologyOntIdAddAttributes ont_id_add_attributes = 3; /** * 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 ONT ID attributes adding signature * @end */ message OntologySignedOntIdAddAttributes { optional bytes signature = 1; optional bytes payload = 2; }