-
Notifications
You must be signed in to change notification settings - Fork 24
/
crypto_service.proto
139 lines (120 loc) · 4.67 KB
/
crypto_service.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/**
* # Crypto Service
* A service defining transactions and queries related to accounts.
*
* This includes transactions for HBAR transfers and balance queries as well as
* transactions to manage "allowances" which permit a third party to spend a
* portion of the HBAR balance in an account.<br/>
* Basic account, record, and receipt queries are also defined in this service.
*
* Transactions and queries relating to tokens _other than HBAR_ are defined
* in the Token Service.
*
* ### Keywords
* The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
* "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
* document are to be interpreted as described in
* [RFC2119](https://www.ietf.org/rfc/rfc2119) and clarified in
* [RFC8174](https://www.ietf.org/rfc/rfc8174).
*/
syntax = "proto3";
package proto;
/*
* Copyright (C) 2018-2024 Hedera Hashgraph, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
option java_package = "com.hederahashgraph.service.proto.java";
// <<<pbj.java_package = "com.hedera.hapi.node.token">>> This comment is special code for setting PBJ Compiler java package
import "query.proto";
import "response.proto";
import "transaction_response.proto";
import "transaction.proto";
/**
* Transactions and queries for the Hedera Crypto Service.
*/
service CryptoService {
// The following queries are permanently removed.
// getStakersByAccountID, getFastTransactionRecord
/**
* Create a new account by submitting the transaction
*/
rpc createAccount (Transaction) returns (TransactionResponse);
/**
* Update an account by submitting the transaction
*/
rpc updateAccount (Transaction) returns (TransactionResponse);
/**
* Initiate a transfer by submitting the transaction
*/
rpc cryptoTransfer (Transaction) returns (TransactionResponse);
/**
* Delete an account by submitting the transaction
*/
rpc cryptoDelete (Transaction) returns (TransactionResponse);
/**
* Add one or more approved allowances for spenders to transfer the paying
* account's hbar or tokens.
*/
rpc approveAllowances (Transaction) returns (TransactionResponse);
/**
* Delete one or more of the specific approved NFT serial numbers on an
* owner account.
*/
rpc deleteAllowances (Transaction) returns (TransactionResponse);
/**
* Add a livehash
* <blockquote>Important<blockquote>
* This transaction is obsolete, not supported, and SHALL fail with a
* pre-check result of `NOT_SUPPORTED`.</blockquote></blockquote>
*/
rpc addLiveHash (Transaction) returns (TransactionResponse) {option deprecated = true;};
/**
* Delete a livehash
* <blockquote>Important<blockquote>
* This transaction is obsolete, not supported, and SHALL fail with a
* pre-check result of `NOT_SUPPORTED`.</blockquote></blockquote>
*/
rpc deleteLiveHash (Transaction) returns (TransactionResponse) {option deprecated = true;};
/**
* Retrieve a livehash for an account
* <blockquote>Important<blockquote>
* This query is obsolete, not supported, and SHALL fail with a pre-check
* result of `NOT_SUPPORTED`.</blockquote></blockquote>
*/
rpc getLiveHash (Query) returns (Response) {option deprecated = true;};
/**
* Return all transactions in the last 180s of consensus time for which
* the given account was the effective payer **and** network property
* `ledger.keepRecordsInState` was `true`.
*/
rpc getAccountRecords (Query) returns (Response);
/**
* Retrieve the balance of an account
*/
rpc cryptoGetBalance (Query) returns (Response);
/**
* Retrieve the metadata of an account
*/
rpc getAccountInfo (Query) returns (Response);
/**
* Retrieve the latest receipt for a transaction that is either awaiting
* consensus, or reached consensus in the last 180 seconds
*/
rpc getTransactionReceipts (Query) returns (Response);
/**
* Retrieve the record of a transaction that is either awaiting consensus,
* or reached consensus in the last 180 seconds
*/
rpc getTxRecordByTxID (Query) returns (Response);
}