77class EEIRegistry :
88 def __init__ (self , activation_info : ActivationEpochsInfo ) -> None :
99 self .activation_info = activation_info
10-
11- storageAPICostOptimizationEnableEpoch = FeatureFlag ("StorageAPICostOptimizationEnableEpoch" )
12-
13- self .flags = [
14- storageAPICostOptimizationEnableEpoch
15- ]
16-
10+ self .flags : List [FeatureFlag ] = []
1711 self .functions : List [EEIFunction ] = [
18- # big int
19- EEIFunction ("bigIntNew" , None , []),
20- EEIFunction ("bigIntUnsignedByteLength" , None , []),
21- EEIFunction ("bigIntSignedByteLength" , None , []),
22- EEIFunction ("bigIntGetUnsignedBytes" , None , []),
23- EEIFunction ("bigIntGetSignedBytes" , None , []),
24- EEIFunction ("bigIntSetUnsignedBytes" , None , []),
25- EEIFunction ("bigIntSetSignedBytes" , None , []),
26- EEIFunction ("bigIntIsInt64" , None , []),
27- EEIFunction ("bigIntGetInt64" , None , []),
28- EEIFunction ("bigIntSetInt64" , None , []),
29- EEIFunction ("bigIntAdd" , None , []),
30- EEIFunction ("bigIntSub" , None , []),
31- EEIFunction ("bigIntMul" , None , []),
32- EEIFunction ("bigIntTDiv" , None , []),
33- EEIFunction ("bigIntTMod" , None , []),
34- EEIFunction ("bigIntEDiv" , None , []),
35- EEIFunction ("bigIntEMod" , None , []),
36- EEIFunction ("bigIntPow" , None , []),
37- EEIFunction ("bigIntLog2" , None , []),
38- EEIFunction ("bigIntSqrt" , None , []),
39- EEIFunction ("bigIntAbs" , None , []),
40- EEIFunction ("bigIntNeg" , None , []),
41- EEIFunction ("bigIntSign" , None , []),
42- EEIFunction ("bigIntCmp" , None , []),
43- EEIFunction ("bigIntNot" , None , []),
44- EEIFunction ("bigIntAnd" , None , []),
45- EEIFunction ("bigIntOr" , None , []),
46- EEIFunction ("bigIntXor" , None , []),
47- EEIFunction ("bigIntShr" , None , []),
48- EEIFunction ("bigIntShl" , None , []),
49- EEIFunction ("bigIntFinishUnsigned" , None , []),
50- EEIFunction ("bigIntFinishSigned" , None , []),
51- EEIFunction ("bigIntStorageStoreUnsigned" , None , []),
52- EEIFunction ("bigIntStorageLoadUnsigned" , None , []),
53- EEIFunction ("bigIntGetUnsignedArgument" , None , []),
54- EEIFunction ("bigIntGetSignedArgument" , None , []),
55- EEIFunction ("bigIntGetCallValue" , None , []),
56- EEIFunction ("bigIntGetESDTCallValue" , None , []),
57- EEIFunction ("bigIntGetESDTCallValueByIndex" , None , []),
58- EEIFunction ("bigIntGetESDTExternalBalance" , None , []),
59- EEIFunction ("bigIntGetExternalBalance" , None , []),
60-
61- # small int
62- EEIFunction ("smallIntGetUnsignedArgument" , None , []),
63- EEIFunction ("smallIntGetSignedArgument" , None , []),
64- EEIFunction ("smallIntFinishUnsigned" , None , []),
65- EEIFunction ("smallIntFinishSigned" , None , []),
66- EEIFunction ("smallIntStorageStoreUnsigned" , None , []),
67- EEIFunction ("smallIntStorageStoreSigned" , None , []),
68- EEIFunction ("smallIntStorageLoadUnsigned" , None , []),
69- EEIFunction ("smallIntStorageLoadSigned" , None , []),
70- EEIFunction ("int64getArgument" , None , []),
71- EEIFunction ("int64storageStore" , None , []),
72- EEIFunction ("int64storageLoad" , None , []),
73- EEIFunction ("int64finish" , None , []),
74-
75- # buffers
76- EEIFunction ("mBufferNew" , None , []),
77- EEIFunction ("mBufferNewFromBytes" , None , []),
78- EEIFunction ("mBufferGetLength" , None , []),
79- EEIFunction ("mBufferGetBytes" , None , []),
80- EEIFunction ("mBufferGetByteSlice" , None , []),
81- EEIFunction ("mBufferCopyByteSlice" , None , []),
82- EEIFunction ("mBufferEq" , None , []),
83- EEIFunction ("mBufferSetBytes" , None , []),
84- EEIFunction ("mBufferSetByteSlice" , storageAPICostOptimizationEnableEpoch , []),
85- EEIFunction ("mBufferAppend" , None , []),
86- EEIFunction ("mBufferAppendBytes" , None , []),
87- EEIFunction ("mBufferToBigIntUnsigned" , None , []),
88- EEIFunction ("mBufferToBigIntSigned" , None , []),
89- EEIFunction ("mBufferFromBigIntUnsigned" , None , []),
90- EEIFunction ("mBufferFromBigIntSigned" , None , []),
91- EEIFunction ("mBufferStorageStore" , None , []),
92- EEIFunction ("mBufferStorageLoad" , None , []),
93- EEIFunction ("mBufferStorageLoadFromAddress" , storageAPICostOptimizationEnableEpoch , []),
94- EEIFunction ("mBufferGetArgument" , None , []),
95- EEIFunction ("mBufferFinish" , None , []),
96- EEIFunction ("mBufferSetRandom" , None , []),
97-
98- # eei core
99- EEIFunction ("getSCAddress" , None , []),
100- EEIFunction ("getOwnerAddress" , None , []),
101- EEIFunction ("getShardOfAddress" , None , []),
102- EEIFunction ("isSmartContract" , None , []),
103- EEIFunction ("getExternalBalance" , None , []),
104- EEIFunction ("getBlockHash" , None , []),
105- EEIFunction ("transferValue" , None , []),
106- EEIFunction ("transferESDTExecute" , None , []),
107- EEIFunction ("transferESDTNFTExecute" , None , []),
108- EEIFunction ("multiTransferESDTNFTExecute" , None , []),
109- EEIFunction ("transferValueExecute" , None , []),
110- EEIFunction ("getArgumentLength" , None , []),
111- EEIFunction ("getArgument" , None , []),
112- EEIFunction ("getFunction" , None , []),
113- EEIFunction ("getNumArguments" , None , []),
114- EEIFunction ("storageStore" , None , []),
115- EEIFunction ("storageLoadLength" , None , []),
116- EEIFunction ("storageLoad" , None , []),
117- EEIFunction ("storageLoadFromAddress" , None , []),
118- EEIFunction ("getCaller" , None , []),
119- EEIFunction ("checkNoPayment" , None , []),
120- EEIFunction ("getCallValue" , None , []),
121- EEIFunction ("getESDTValue" , None , []),
122- EEIFunction ("getESDTTokenName" , None , []),
123- EEIFunction ("getESDTTokenNonce" , None , []),
124- EEIFunction ("getESDTTokenType" , None , []),
125- EEIFunction ("getCallValueTokenName" , None , []),
126- EEIFunction ("getESDTValueByIndex" , None , []),
127- EEIFunction ("getESDTTokenNameByIndex" , None , []),
128- EEIFunction ("getESDTTokenNonceByIndex" , None , []),
129- EEIFunction ("getESDTTokenTypeByIndex" , None , []),
130- EEIFunction ("getCallValueTokenNameByIndex" , None , []),
131- EEIFunction ("getNumESDTTransfers" , None , []),
132- EEIFunction ("getCurrentESDTNFTNonce" , None , []),
133- EEIFunction ("writeLog" , None , ["deprecated" ]),
134- EEIFunction ("writeEventLog" , None , []),
135- EEIFunction ("finish" , None , []),
136- EEIFunction ("signalError" , None , []),
137- EEIFunction ("getGasLeft" , None , []),
138- EEIFunction ("getESDTBalance" , None , []),
139- EEIFunction ("getESDTNFTNameLength" , None , []),
140- EEIFunction ("getESDTNFTAttributeLength" , None , []),
141- EEIFunction ("getESDTNFTURILength" , None , []),
142- EEIFunction ("getESDTTokenData" , None , []),
143- EEIFunction ("getESDTLocalRoles" , storageAPICostOptimizationEnableEpoch , []),
144- EEIFunction ("validateTokenIdentifier" , storageAPICostOptimizationEnableEpoch , []),
145- EEIFunction ("executeOnDestContext" , None , []),
146- EEIFunction ("executeOnDestContextByCaller" , None , []),
147- EEIFunction ("executeOnSameContext" , None , []),
148- EEIFunction ("executeReadOnly" , None , []),
149- EEIFunction ("createContract" , None , []),
150- EEIFunction ("deployFromSourceContract" , None , []),
151- EEIFunction ("upgradeContract" , None , []),
152- EEIFunction ("upgradeFromSourceContract" , None , []),
153- EEIFunction ("asyncCall" , None , []),
154- EEIFunction ("getNumReturnData" , None , []),
155- EEIFunction ("getReturnDataSize" , None , []),
156- EEIFunction ("getReturnData" , None , []),
157- EEIFunction ("cleanReturnData" , storageAPICostOptimizationEnableEpoch , []),
158- EEIFunction ("deleteFromReturnData" , storageAPICostOptimizationEnableEpoch , []),
159- EEIFunction ("setStorageLock" , None , []),
160- EEIFunction ("getStorageLock" , None , []),
161- EEIFunction ("isStorageLocked" , None , []),
162- EEIFunction ("clearStorageLock" , None , []),
163- EEIFunction ("getBlockTimestamp" , None , []),
164- EEIFunction ("getBlockNonce" , None , []),
165- EEIFunction ("getBlockRound" , None , []),
166- EEIFunction ("getBlockEpoch" , None , []),
167- EEIFunction ("getBlockRandomSeed" , None , []),
168- EEIFunction ("getStateRootHash" , None , []),
169- EEIFunction ("getPrevBlockTimestamp" , None , []),
170- EEIFunction ("getPrevBlockNonce" , None , []),
171- EEIFunction ("getPrevBlockRound" , None , []),
172- EEIFunction ("getPrevBlockEpoch" , None , []),
173- EEIFunction ("getPrevBlockRandomSeed" , None , []),
174- EEIFunction ("getOriginalTxHash" , None , []),
175-
176- # eei core (managed)
177- EEIFunction ("managedSCAddress" , None , []),
178- EEIFunction ("managedOwnerAddress" , None , []),
179- EEIFunction ("managedCaller" , None , []),
180- EEIFunction ("managedSignalError" , None , []),
181- EEIFunction ("managedWriteLog" , None , []),
182- EEIFunction ("managedMultiTransferESDTNFTExecute" , None , []),
183- EEIFunction ("managedTransferValueExecute" , None , []),
184- EEIFunction ("managedExecuteOnDestContext" , None , []),
185- EEIFunction ("managedExecuteOnDestContextByCaller" , None , []),
186- EEIFunction ("managedExecuteOnSameContext" , None , []),
187- EEIFunction ("managedExecuteReadOnly" , None , []),
188- EEIFunction ("managedCreateContract" , None , []),
189- EEIFunction ("managedDeployFromSourceContract" , None , []),
190- EEIFunction ("managedUpgradeContract" , None , []),
191- EEIFunction ("managedUpgradeFromSourceContract" , None , []),
192- EEIFunction ("managedAsyncCall" , None , []),
193- EEIFunction ("managedGetMultiESDTCallValue" , None , []),
194- EEIFunction ("managedGetESDTBalance" , None , []),
195- EEIFunction ("managedGetESDTTokenData" , None , []),
196- EEIFunction ("managedGetReturnData" , None , []),
197- EEIFunction ("managedGetPrevBlockRandomSeed" , None , []),
198- EEIFunction ("managedGetBlockRandomSeed" , None , []),
199- EEIFunction ("managedGetStateRootHash" , None , []),
200- EEIFunction ("managedGetOriginalTxHash" , None , []),
201-
202- # crypto
203- EEIFunction ("sha256" , None , []),
204- EEIFunction ("managedSha256" , storageAPICostOptimizationEnableEpoch , []),
205- EEIFunction ("keccak256" , None , []),
206- EEIFunction ("managedKeccak256" , storageAPICostOptimizationEnableEpoch , []),
207- EEIFunction ("ripemd160" , None , []),
208- EEIFunction ("verifyBLS" , None , []),
209- EEIFunction ("verifyEd25519" , None , []),
210- EEIFunction ("verifySecp256k1" , None , []),
211- EEIFunction ("verifyCustomSecp256k1" , None , []),
212- EEIFunction ("encodeSecp256k1DerSignature" , None , []),
213- EEIFunction ("addEC" , None , []),
214- EEIFunction ("doubleEC" , None , []),
215- EEIFunction ("isOnCurveEC" , None , []),
216- EEIFunction ("scalarBaseMultEC" , None , []),
217- EEIFunction ("scalarMultEC" , None , []),
218- EEIFunction ("marshalEC" , None , []),
219- EEIFunction ("unmarshalEC" , None , []),
220- EEIFunction ("marshalCompressedEC" , None , []),
221- EEIFunction ("unmarshalCompressedEC" , None , []),
222- EEIFunction ("generateKeyEC" , None , []),
223- EEIFunction ("createEC" , None , []),
224- EEIFunction ("getCurveLengthEC" , None , []),
225- EEIFunction ("getPrivKeyByteLengthEC" , None , []),
226- EEIFunction ("ellipticCurveGetValues" , None , [])
12+ # e.g. EEIFunction("foobar", FeatureFlag("fooFeature"), []),
22713 ]
228-
22914 self .functions_dict = {function .name : function for function in self .functions }
23015
23116 def sync_flags (self ):
@@ -235,7 +20,8 @@ def sync_flags(self):
23520 def is_function_active (self , function_name : str ) -> Union [bool , None ]:
23621 function = self .functions_dict .get (function_name , None )
23722 if function is None :
238- return False
23+ # If function is not found in this registry, assume it is <active> on all known networks.
24+ return True
23925 if function .activated_by is None :
24026 return True
24127 return function .activated_by .is_active
0 commit comments