-
Notifications
You must be signed in to change notification settings - Fork 23
/
contract_get_info.proto
158 lines (134 loc) · 5.33 KB
/
contract_get_info.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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
syntax = "proto3";
package proto;
/*-
*
* Hedera Network Services Protobuf
*
* Copyright (C) 2018 - 2021 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.api.proto.java";
// <<<pbj.java_package = "com.hedera.hapi.node.contract">>> This comment is special code for setting PBJ Compiler java package
option java_multiple_files = true;
import "timestamp.proto";
import "duration.proto";
import "basic_types.proto";
import "query_header.proto";
import "response_header.proto";
/**
* Get information about a smart contract instance. This includes the account that it uses, the file
* containing its initcode (if a file was used to initialize the contract), and the time when it will expire.
*/
message ContractGetInfoQuery {
/**
* standard info sent from client to node, including the signed payment, and what kind of
* response is requested (cost, state proof, both, or neither).
*/
QueryHeader header = 1;
/**
* the contract for which information is requested
*/
ContractID contractID = 2;
}
/**
* Response when the client sends the node ContractGetInfoQuery
*/
message ContractGetInfoResponse {
/**
* standard response from node to client, including the requested fields: cost, or state proof,
* or both, or neither
*/
ResponseHeader header = 1;
message ContractInfo {
/**
* ID of the contract instance, in the format used in transactions
*/
ContractID contractID = 1;
/**
* ID of the cryptocurrency account owned by the contract instance, in the format used in
* transactions
*/
AccountID accountID = 2;
/**
* ID of both the contract instance and the cryptocurrency account owned by the contract
* instance, in the format used by Solidity
*/
string contractAccountID = 3;
/**
* the state of the instance and its fields can be modified arbitrarily if this key signs a
* transaction to modify it. If this is null, then such modifications are not possible, and
* there is no administrator that can override the normal operation of this smart contract
* instance. Note that if it is created with no admin keys, then there is no administrator
* to authorize changing the admin keys, so there can never be any admin keys for that
* instance.
*/
Key adminKey = 4;
/**
* the current time at which this contract instance (and its account) is set to expire
*/
Timestamp expirationTime = 5;
/**
* the expiration time will extend every this many seconds. If there are insufficient funds,
* then it extends as long as possible. If the account is empty when it expires, then it is
* deleted.
*/
Duration autoRenewPeriod = 6;
/**
* number of bytes of storage being used by this instance (which affects the cost to extend
* the expiration time)
*/
int64 storage = 7;
/**
* the memo associated with the contract (max 100 bytes)
*/
string memo = 8;
/**
* The current balance, in tinybars
*/
uint64 balance = 9;
/**
* Whether the contract has been deleted
*/
bool deleted = 10;
/**
* [DEPRECATED] The metadata of the tokens associated to the contract. This field was
* deprecated by <a href="https://hips.hedera.com/hip/hip-367">HIP-367</a>, which allowed
* an account to be associated to an unlimited number of tokens. This scale makes it more
* efficient for users to consult mirror nodes to review their token associations.
*/
repeated TokenRelationship tokenRelationships = 11 [deprecated = true];
/**
* The ledger ID the response was returned from; please see <a href="https://github.com/hashgraph/hedera-improvement-proposal/blob/master/HIP/hip-198.md">HIP-198</a> for the network-specific IDs.
*/
bytes ledger_id = 12;
/**
* ID of the an account to charge for auto-renewal of this contract. If not set, or set to an account with zero hbar
* balance, the contract's own hbar balance will be used to cover auto-renewal fees.
*/
AccountID auto_renew_account_id = 13;
/**
* The maximum number of tokens that a contract can be implicitly associated with.
*/
int32 max_automatic_token_associations = 14;
/**
* Staking metadata for this contract.
*/
StakingInfo staking_info = 15;
}
/**
* the information about this contract instance (a state proof can be generated for this)
*/
ContractInfo contractInfo = 2;
}