1fn resolve_syscalls_member(member: &str) -> Option<BuiltinCall> {
2 match member {
3 "contractCall" => Some(BuiltinCall::ContractCall),
4 "contractCallWithFlags" => Some(BuiltinCall::ContractCallWithFlags),
5 "getCallFlags" => Some(BuiltinCall::Syscall(
6 "System.Contract.GetCallFlags".to_string(),
7 )),
8 "contractCreate" => Some(BuiltinCall::DeployContract),
11 "contractUpdate" => Some(BuiltinCall::NativeCall {
12 contract: NativeContract::ContractManagement,
13 method: "update".to_string(),
14 }),
15 "contractDestroy" => Some(BuiltinCall::NativeCall {
16 contract: NativeContract::ContractManagement,
17 method: "destroy".to_string(),
18 }),
19 "createStandardAccount" => Some(BuiltinCall::Syscall(
20 "System.Contract.CreateStandardAccount".to_string(),
21 )),
22 "createMultisigAccount" => Some(BuiltinCall::Syscall(
23 "System.Contract.CreateMultisigAccount".to_string(),
24 )),
25 "notify" => Some(BuiltinCall::NotifySerialized),
26 "getCurrentIndex" => Some(BuiltinCall::NativeCall {
27 contract: NativeContract::Ledger,
28 method: "currentIndex".to_string(),
29 }),
30 "getCurrentHash" => Some(BuiltinCall::NativeCall {
31 contract: NativeContract::Ledger,
32 method: "currentHash".to_string(),
33 }),
34 "getBlock" => Some(BuiltinCall::NativeCall {
35 contract: NativeContract::Ledger,
36 method: "getBlock".to_string(),
37 }),
38 "getTransaction" => Some(BuiltinCall::NativeCall {
39 contract: NativeContract::Ledger,
40 method: "getTransaction".to_string(),
41 }),
42 "getTransactionHeight" => Some(BuiltinCall::NativeCall {
43 contract: NativeContract::Ledger,
44 method: "getTransactionHeight".to_string(),
45 }),
46 "getTransactionFromBlock" => Some(BuiltinCall::NativeCall {
47 contract: NativeContract::Ledger,
48 method: "getTransactionFromBlock".to_string(),
49 }),
50 "getTransactionSigners" => Some(BuiltinCall::NativeCall {
51 contract: NativeContract::Ledger,
52 method: "getTransactionSigners".to_string(),
53 }),
54 "getTransactionVMState" => Some(BuiltinCall::NativeCall {
55 contract: NativeContract::Ledger,
56 method: "getTransactionVMState".to_string(),
57 }),
58 "getExecutingScriptHash" => Some(BuiltinCall::Syscall(
59 "System.Runtime.GetExecutingScriptHash".to_string(),
60 )),
61 "getCallingScriptHash" => Some(BuiltinCall::Syscall(
62 "System.Runtime.GetCallingScriptHash".to_string(),
63 )),
64 "getEntryScriptHash" => Some(BuiltinCall::Syscall(
65 "System.Runtime.GetEntryScriptHash".to_string(),
66 )),
67 "getScriptContainer" => Some(BuiltinCall::Syscall(
68 "System.Runtime.GetScriptContainer".to_string(),
69 )),
70 "loadScript" => Some(BuiltinCall::Syscall("System.Runtime.LoadScript".to_string())),
71 "getStorageContext" => Some(BuiltinCall::Syscall("System.Storage.GetContext".to_string())),
72 "getReadOnlyStorageContext" => Some(BuiltinCall::Syscall(
73 "System.Storage.GetReadOnlyContext".to_string(),
74 )),
75 "storageAsReadOnly" => Some(BuiltinCall::Syscall(
76 "System.Storage.AsReadOnly".to_string(),
77 )),
78 "storageGet" => Some(BuiltinCall::Syscall("System.Storage.Get".to_string())),
79 "storagePut" => Some(BuiltinCall::Syscall("System.Storage.Put".to_string())),
80 "storageDelete" => Some(BuiltinCall::Syscall("System.Storage.Delete".to_string())),
81 "storageFind" => Some(BuiltinCall::Syscall("System.Storage.Find".to_string())),
82 "storageGetLocal" => Some(BuiltinCall::Syscall("System.Storage.Local.Get".to_string())),
83 "storagePutLocal" => Some(BuiltinCall::Syscall("System.Storage.Local.Put".to_string())),
84 "storageDeleteLocal" => Some(BuiltinCall::Syscall(
85 "System.Storage.Local.Delete".to_string(),
86 )),
87 "storageFindLocal" => Some(BuiltinCall::Syscall("System.Storage.Local.Find".to_string())),
88 "checkWitness" => Some(BuiltinCall::Syscall("System.Runtime.CheckWitness".to_string())),
89 "getTime" => Some(BuiltinCall::Syscall("System.Runtime.GetTime".to_string())),
90 "gasLeft" => Some(BuiltinCall::Syscall("System.Runtime.GasLeft".to_string())),
91 "getPlatform" => Some(BuiltinCall::Syscall("System.Runtime.Platform".to_string())),
92 "getTrigger" => Some(BuiltinCall::Syscall("System.Runtime.GetTrigger".to_string())),
93 "getNotifications" => Some(BuiltinCall::Syscall(
94 "System.Runtime.GetNotifications".to_string(),
95 )),
96 "log" => Some(BuiltinCall::Syscall("System.Runtime.Log".to_string())),
97 "getCurrentSigners" => Some(BuiltinCall::Syscall(
98 "System.Runtime.CurrentSigners".to_string(),
99 )),
100 "checkSig" => Some(BuiltinCall::Syscall("System.Crypto.CheckSig".to_string())),
101 "checkMultisig" => Some(BuiltinCall::Syscall(
102 "System.Crypto.CheckMultisig".to_string(),
103 )),
104 "sha256" => Some(BuiltinCall::NativeCall {
105 contract: NativeContract::CryptoLib,
106 method: "sha256".to_string(),
107 }),
108 "ripemd160" => Some(BuiltinCall::NativeCall {
109 contract: NativeContract::CryptoLib,
110 method: "ripemd160".to_string(),
111 }),
112 "verifyWithECDsa" => Some(BuiltinCall::NativeCall {
113 contract: NativeContract::CryptoLib,
114 method: "verifyWithECDsa".to_string(),
115 }),
116 "murmur32" => Some(BuiltinCall::NativeCall {
117 contract: NativeContract::CryptoLib,
118 method: "murmur32".to_string(),
119 }),
120 "keccak256" => Some(BuiltinCall::NativeCall {
121 contract: NativeContract::CryptoLib,
122 method: "keccak256".to_string(),
123 }),
124 "recoverSecp256K1" => Some(BuiltinCall::NativeCall {
125 contract: NativeContract::CryptoLib,
126 method: "recoverSecp256K1".to_string(),
127 }),
128 "verifyWithEd25519" => Some(BuiltinCall::NativeCall {
129 contract: NativeContract::CryptoLib,
130 method: "verifyWithEd25519".to_string(),
131 }),
132 "bls12381Serialize" => Some(BuiltinCall::NativeCall {
133 contract: NativeContract::CryptoLib,
134 method: "bls12381Serialize".to_string(),
135 }),
136 "bls12381Deserialize" => Some(BuiltinCall::NativeCall {
137 contract: NativeContract::CryptoLib,
138 method: "bls12381Deserialize".to_string(),
139 }),
140 "bls12381Equal" => Some(BuiltinCall::NativeCall {
141 contract: NativeContract::CryptoLib,
142 method: "bls12381Equal".to_string(),
143 }),
144 "bls12381Add" => Some(BuiltinCall::NativeCall {
145 contract: NativeContract::CryptoLib,
146 method: "bls12381Add".to_string(),
147 }),
148 "bls12381Mul" => Some(BuiltinCall::NativeCall {
149 contract: NativeContract::CryptoLib,
150 method: "bls12381Mul".to_string(),
151 }),
152 "bls12381Pairing" => Some(BuiltinCall::NativeCall {
153 contract: NativeContract::CryptoLib,
154 method: "bls12381Pairing".to_string(),
155 }),
156 "serialize" => Some(BuiltinCall::NativeCall {
157 contract: NativeContract::StdLib,
158 method: "serialize".to_string(),
159 }),
160 "deserialize" => Some(BuiltinCall::NativeCall {
161 contract: NativeContract::StdLib,
162 method: "deserialize".to_string(),
163 }),
164 "itoa" => Some(BuiltinCall::NativeCall {
165 contract: NativeContract::StdLib,
166 method: "itoa".to_string(),
167 }),
168 "atoi" => Some(BuiltinCall::NativeCall {
169 contract: NativeContract::StdLib,
170 method: "atoi".to_string(),
171 }),
172 "jsonSerialize" => Some(BuiltinCall::NativeCall {
173 contract: NativeContract::StdLib,
174 method: "jsonSerialize".to_string(),
175 }),
176 "jsonDeserialize" => Some(BuiltinCall::NativeCall {
177 contract: NativeContract::StdLib,
178 method: "jsonDeserialize".to_string(),
179 }),
180 "base64Encode" => Some(BuiltinCall::NativeCall {
181 contract: NativeContract::StdLib,
182 method: "base64Encode".to_string(),
183 }),
184 "base64Decode" => Some(BuiltinCall::NativeCall {
185 contract: NativeContract::StdLib,
186 method: "base64Decode".to_string(),
187 }),
188 "base64UrlEncode" => Some(BuiltinCall::NativeCall {
189 contract: NativeContract::StdLib,
190 method: "base64UrlEncode".to_string(),
191 }),
192 "base64UrlDecode" => Some(BuiltinCall::NativeCall {
193 contract: NativeContract::StdLib,
194 method: "base64UrlDecode".to_string(),
195 }),
196 "base58Encode" => Some(BuiltinCall::NativeCall {
197 contract: NativeContract::StdLib,
198 method: "base58Encode".to_string(),
199 }),
200 "base58Decode" => Some(BuiltinCall::NativeCall {
201 contract: NativeContract::StdLib,
202 method: "base58Decode".to_string(),
203 }),
204 "base58CheckEncode" => Some(BuiltinCall::NativeCall {
205 contract: NativeContract::StdLib,
206 method: "base58CheckEncode".to_string(),
207 }),
208 "base58CheckDecode" => Some(BuiltinCall::NativeCall {
209 contract: NativeContract::StdLib,
210 method: "base58CheckDecode".to_string(),
211 }),
212 "hexEncode" => Some(BuiltinCall::NativeCall {
213 contract: NativeContract::StdLib,
214 method: "hexEncode".to_string(),
215 }),
216 "hexDecode" => Some(BuiltinCall::NativeCall {
217 contract: NativeContract::StdLib,
218 method: "hexDecode".to_string(),
219 }),
220 "memoryCompare" => Some(BuiltinCall::NativeCall {
221 contract: NativeContract::StdLib,
222 method: "memoryCompare".to_string(),
223 }),
224 "memorySearch" => Some(BuiltinCall::NativeCall {
225 contract: NativeContract::StdLib,
226 method: "memorySearch".to_string(),
227 }),
228 "stringSplit" => Some(BuiltinCall::NativeCall {
229 contract: NativeContract::StdLib,
230 method: "stringSplit".to_string(),
231 }),
232 "strLen" => Some(BuiltinCall::NativeCall {
233 contract: NativeContract::StdLib,
234 method: "strLen".to_string(),
235 }),
236 "iteratorNext" => Some(BuiltinCall::Syscall("System.Iterator.Next".to_string())),
237 "iteratorValue" => Some(BuiltinCall::Syscall("System.Iterator.Value".to_string())),
238 "getCurrentRandom" => Some(BuiltinCall::Syscall("System.Runtime.GetRandom".to_string())),
239 "getNetwork" => Some(BuiltinCall::Syscall("System.Runtime.GetNetwork".to_string())),
240 "getAddressVersion" => Some(BuiltinCall::Syscall(
241 "System.Runtime.GetAddressVersion".to_string(),
242 )),
243 "burnGas" => Some(BuiltinCall::Syscall("System.Runtime.BurnGas".to_string())),
244 "getInvocationCounter" => Some(BuiltinCall::Syscall(
245 "System.Runtime.GetInvocationCounter".to_string(),
246 )),
247 "getFeePerByte" => Some(BuiltinCall::NativeCall {
248 contract: NativeContract::Policy,
249 method: "getFeePerByte".to_string(),
250 }),
251 "getExecFeeFactor" => Some(BuiltinCall::NativeCall {
252 contract: NativeContract::Policy,
253 method: "getExecFeeFactor".to_string(),
254 }),
255 "getExecPicoFeeFactor" => Some(BuiltinCall::NativeCall {
256 contract: NativeContract::Policy,
257 method: "getExecPicoFeeFactor".to_string(),
258 }),
259 "getStoragePrice" => Some(BuiltinCall::NativeCall {
260 contract: NativeContract::Policy,
261 method: "getStoragePrice".to_string(),
262 }),
263 "getMillisecondsPerBlock" => Some(BuiltinCall::NativeCall {
264 contract: NativeContract::Policy,
265 method: "getMillisecondsPerBlock".to_string(),
266 }),
267 "getMaxValidUntilBlockIncrement" => Some(BuiltinCall::NativeCall {
268 contract: NativeContract::Policy,
269 method: "getMaxValidUntilBlockIncrement".to_string(),
270 }),
271 "getMaxTraceableBlocks" => Some(BuiltinCall::NativeCall {
272 contract: NativeContract::Policy,
273 method: "getMaxTraceableBlocks".to_string(),
274 }),
275 "getAttributeFee" => Some(BuiltinCall::NativeCall {
276 contract: NativeContract::Policy,
277 method: "getAttributeFee".to_string(),
278 }),
279 "isBlocked" => Some(BuiltinCall::NativeCall {
280 contract: NativeContract::Policy,
281 method: "isBlocked".to_string(),
282 }),
283 "oracleRequest" => Some(BuiltinCall::NativeCall {
284 contract: NativeContract::Oracle,
285 method: "request".to_string(),
286 }),
287 "getOraclePrice" => Some(BuiltinCall::NativeCall {
288 contract: NativeContract::Oracle,
289 method: "getPrice".to_string(),
290 }),
291 "getDesignatedByRole" => Some(BuiltinCall::NativeCall {
292 contract: NativeContract::RoleManagement,
293 method: "getDesignatedByRole".to_string(),
294 }),
295 "hasRole" => None,
296 "getContractScript" => Some(BuiltinCall::GetContractScript),
297 "contractExists" => Some(BuiltinCall::NativeCall {
298 contract: NativeContract::ContractManagement,
299 method: "isContract".to_string(),
300 }),
301 _ => None,
302 }
303}