@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
362 lines (360 loc) • 23.8 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createHelpers = void 0;
const arr_1 = require("./arr");
const bind_1 = require("./bind");
const buffer_1 = require("./buffer");
const cache_1 = require("./cache");
const class_1 = require("./class");
const common_1 = require("./common");
const completionRecord_1 = require("./completionRecord");
const contract_1 = require("./contract");
const error_1 = require("./error");
const function_1 = require("./function");
const global_1 = require("./global");
const iterableIterator_1 = require("./iterableIterator");
const iterator_1 = require("./iterator");
const iteratorResult_1 = require("./iteratorResult");
const map_1 = require("./map");
const module_1 = require("./module");
const relational_1 = require("./relational");
const statement_1 = require("./statement");
const storage_1 = require("./storage");
const types_1 = require("./types");
const account_1 = require("./types/account");
const asset_1 = require("./types/asset");
const block_1 = require("./types/block");
const contract_2 = require("./types/contract");
const header_1 = require("./types/header");
exports.createHelpers = (prevHelpers) => {
const mutableCache = prevHelpers === undefined ? {} : prevHelpers.mutableCache;
function memoized(helperClass) {
return (options) => {
const key = helperClass.getKey(options);
let value = mutableCache[key];
if (value === undefined) {
mutableCache[key] = value = new helperClass(options);
}
return value;
};
}
const mutableUniqueCache = {};
function memoizedUnique(helperClass) {
return (options) => {
const key = helperClass.getKey(options);
let value = mutableUniqueCache[key];
if (value === undefined) {
mutableUniqueCache[key] = value = new helperClass(options);
}
return value;
};
}
return {
mutableCache,
isAccount: new account_1.IsAccountHelper(),
wrapAccount: new account_1.WrapAccountHelper(),
unwrapAccount: new account_1.UnwrapAccountHelper(),
arrClone: new arr_1.ArrCloneHelper(),
arrConcat: new arr_1.ArrConcatHelper(),
arrEvery: (options) => new arr_1.ArrEveryHelper(options),
arrEveryFunc: new arr_1.ArrEveryFuncHelper(),
arrFind: (options) => new arr_1.ArrFindHelper(options),
arrFilter: (options) => new arr_1.ArrFilterHelper(options),
arrFilterFunc: new arr_1.ArrFilterFuncHelper(),
arrLeft: new arr_1.ArrLeftHelper(),
arrMap: (options) => new arr_1.ArrMapHelper(options),
arrMapFunc: new arr_1.ArrMapFuncHelper(),
arrForEach: (options) => new arr_1.ArrForEachHelper(options),
arrForEachFunc: new arr_1.ArrForEachFuncHelper(),
arrRange: (options) => new arr_1.ArrRangeHelper(options),
arrReduce: (options) => new arr_1.ArrReduceHelper(options),
arrReduceFunc: new arr_1.ArrReduceFuncHelper(),
arrSomeFunc: new arr_1.ArrSomeFuncHelper(),
arrSome: (options) => new arr_1.ArrSomeHelper(options),
arrToString: (options) => new arr_1.ArrToStringHelper(options),
extendArr: new arr_1.ExtendArrHelper(),
isAsset: new asset_1.IsAssetHelper(),
wrapAsset: new asset_1.WrapAssetHelper(),
unwrapAsset: new asset_1.UnwrapAssetHelper(),
arrayBinding: (options) => new bind_1.ArrayBindingHelper(options),
objectBinding: (options) => new bind_1.ObjectBindingHelper(options),
bufferSlice: (options) => new buffer_1.BufferSliceHelper(options),
isBlock: new block_1.IsBlockHelper(),
wrapBlock: new block_1.WrapBlockHelper(),
unwrapBlock: new block_1.UnwrapBlockHelper(),
getCachedValue: (options) => new cache_1.GetCachedValueHelper(options),
getCache: new cache_1.GetCacheHelper(),
createClass: (options) => new class_1.CreateClassHelper(options),
didReceiveAssets: new contract_1.DidReceiveAssetsHelper(),
didReceiveNonClaimAssets: new contract_1.DidReceiveNonClaimAssetsHelper(),
didSendAssets: new contract_1.DidSendAssetsHelper(),
invokeSmartContract: (options) => new contract_1.InvokeSmartContractHelper(options),
invokeSmartContractMethod: (options) => new contract_1.InvokeSmartContractMethodHelper(options),
getOutputAssetValueMap: new contract_1.GetOutputAssetValueMapHelper(),
invocationIsCaller: new contract_1.InvocationIsCallerHelper(),
isCaller: new contract_1.IsCallerHelper(),
isProcessedTransaction: new contract_1.IsProcessedTransactionHelper(),
refundAssets: new contract_1.RefundAssetsHelper(),
mergeAssetValueMaps: (options) => new contract_1.MergeAssetValueMapsHelper(options),
getSmartContractProperty: (options) => new contract_1.GetSmartContractPropertyHelper(options),
isDeployed: new contract_1.IsDeployedHelper(),
setDeployed: new contract_1.SetDeployedHelper(),
isClaimedTransaction: new contract_1.IsClaimedTransactionHelper(),
setProcessedTransaction: new contract_1.SetProcessedTransactionHelper(),
completeSend: new contract_1.CompleteSendHelper(),
deploy: (options) => new contract_1.DeployHelper(options),
upgrade: (options) => new contract_1.UpgradeHelper(options),
handleNormal: memoizedUnique(contract_1.HandleNormalHelper),
handleSend: (options) => new contract_1.HandleSendHelper(options),
handleReceive: (options) => new contract_1.HandleReceiveHelper(options),
handleSendUnsafe: (options) => new contract_1.HandleSendUnsafeHelper(options),
applicationMatchesVerification: new contract_1.ApplicationMatchesVerificationHelper(),
isContract: new contract_2.IsContractHelper(),
wrapContract: new contract_2.WrapContractHelper(),
unwrapContract: new contract_2.UnwrapContractHelper(),
arrSlice: (options = {}) => new common_1.ArrSliceHelper(options),
cloneArray: new common_1.CloneArrayHelper(),
forType: (options) => new types_1.ForTypeHelper(options),
genericLogSerialize: new common_1.GenericLogSerializeHelper(),
exp: new common_1.ExpHelper(),
consoleLog: new common_1.ConsoleLogHelper(),
debugLog: (options) => new common_1.DebugLogHelper(options),
equalsEqualsEquals: (options) => new relational_1.EqualsEqualsEqualsHelper(options),
equalsEquals: (options) => new relational_1.EqualsEqualsHelper(options),
lessThan: (options) => new relational_1.LessThanHelper(options),
processStatements: (options) => new statement_1.ProcessStatementsHelper(options),
args: new function_1.ArgumentsHelper(),
bindFunctionThis: (options) => new function_1.BindFunctionThisHelper(options),
call: new function_1.CallHelper(),
callLike: new function_1.CallLikeHelper(),
cloneFunction: new function_1.CloneFunctionHelper(),
createCallArray: new function_1.CreateCallArrayHelper(),
createConstructArray: (options) => new function_1.CreateConstructArrayHelper(options),
createFunctionArray: (options) => new function_1.CreateFunctionArrayHelper(options),
createFunctionObject: (options) => new function_1.CreateFunctionObjectHelper(options),
function: (options) => new function_1.FunctionHelper(options),
functionLike: new function_1.FunctionLikeHelper(),
getCallable: memoized(function_1.GetCallableHelper),
invokeCall: memoized(function_1.InvokeCallHelper),
invokeConstruct: (options) => new function_1.InvokeConstructHelper(options),
new: (options) => new function_1.NewHelper(options),
parameters: (options) => new function_1.ParametersHelper(options),
coerceToInt: new types_1.CoerceToIntHelper(),
forLoop: (options) => new statement_1.ForLoopHelper(options),
if: (options) => new statement_1.IfHelper(options),
case: (cases, defaultCase) => new statement_1.CaseHelper(cases, defaultCase),
handleCompletion: new completionRecord_1.HandleCompletionHelper(),
return: new completionRecord_1.ReturnHelper(),
throw: new completionRecord_1.ThrowHelper(),
break: new completionRecord_1.BreakHelper(),
continue: new completionRecord_1.ContinueHelper(),
throwCompletion: new completionRecord_1.ThrowCompletionHelper(),
throwCompletionBase: new completionRecord_1.ThrowCompletionBaseHelper(),
throwTypeError: new error_1.ThrowTypeErrorHelper(),
wrapBoolean: new types_1.WrapBooleanHelper(),
wrapNull: new types_1.WrapNullHelper(),
wrapNumber: new types_1.WrapNumberHelper(),
createObject: new types_1.CreateObjectHelper(),
wrapString: new types_1.WrapStringHelper(),
wrapSymbol: new types_1.WrapSymbolHelper(),
wrapUndefined: new types_1.WrapUndefinedHelper(),
isBoolean: new types_1.IsBooleanHelper(),
isNull: new types_1.IsNullHelper(),
isNumber: new types_1.IsNumberHelper(),
isObject: new types_1.IsObjectHelper(),
isString: new types_1.IsStringHelper(),
isSymbol: new types_1.IsSymbolHelper(),
isUndefined: new types_1.IsUndefinedHelper(),
isNullOrUndefined: (options) => new types_1.IsNullOrUndefinedHelper(options),
unwrapBoolean: new types_1.UnwrapBooleanHelper(),
unwrapNumber: new types_1.UnwrapNumberHelper(),
unwrapString: new types_1.UnwrapStringHelper(),
unwrapSymbol: new types_1.UnwrapSymbolHelper(),
getObject: new types_1.GetObjectHelper(),
toBoolean: (options) => new types_1.ToBooleanHelper(options),
toNullishBoolean: (options) => new types_1.ToNullishBooleanHelper(options),
toString: (options) => new types_1.ToStringHelper(options),
toNumber: (options) => new types_1.ToNumberHelper(options),
toObject: (options) => new types_1.ToObjectHelper(options),
toPrimitive: (options) => new types_1.ToPrimitiveHelper(options),
getSymbolObject: new types_1.GetSymbolObjectHelper(),
getSymbolObjectProperty: new types_1.GetSymbolObjectPropertyHelper(),
setSymbolObjectProperty: new types_1.SetSymbolObjectPropertyHelper(),
setDataSymbolObjectProperty: new types_1.SetDataSymbolObjectPropertyHelper(),
setAccessorSymbolObjectProperty: (options) => new types_1.SetAccessorSymbolObjectPropertyHelper(options),
getPropertyObject: new types_1.GetPropertyObjectHelper(),
getPropertyObjectKeys: new types_1.GetPropertyObjectKeysHelper(),
getPropertyObjectValues: new types_1.GetPropertyObjectValuesHelper(),
getPropertyObjectProperty: new types_1.GetPropertyObjectPropertyHelper(),
setPropertyObjectProperty: new types_1.SetPropertyObjectPropertyHelper(),
setDataPropertyObjectProperty: new types_1.SetDataPropertyObjectPropertyHelper(),
setAccessorPropertyObjectProperty: (options) => new types_1.SetAccessorPropertyObjectPropertyHelper(options),
getInternalObject: new types_1.GetInternalObjectHelper(),
getInternalObjectProperty: new types_1.GetInternalObjectPropertyHelper(),
setInternalObjectProperty: new types_1.SetInternalObjectPropertyHelper(),
packObject: new types_1.PackObjectHelper(),
pickObjectProperties: new types_1.PickObjectPropertiesHelper(),
pickPropertyObjectProperties: new types_1.PickPropertyObjectPropertiesHelper(),
pickSymbolObjectProperties: new types_1.PickSymbolObjectPropertiesHelper(),
omitObjectProperties: new types_1.OmitObjectPropertiesHelper(),
omitPropertyObjectProperties: new types_1.OmitPropertyObjectPropertiesHelper(),
omitSymbolObjectProperties: new types_1.OmitSymbolObjectPropertiesHelper(),
wrapObject: new types_1.WrapObjectHelper(),
unwrapObject: new types_1.UnwrapObjectHelper(),
instanceof: new types_1.InstanceofHelper(),
inObjectProperty: (options) => new types_1.InObjectPropertyHelper(options),
inPropertyObjectProperty: new types_1.InPropertyObjectPropertyHelper(),
inSymbolObjectProperty: new types_1.InSymbolObjectPropertyHelper(),
createPropertyObject: new types_1.CreatePropertyObjectHelper(),
findObjectProperty: (options) => new types_1.FindObjectPropertyHelper(options),
findObjectPropertyBase: (options) => new types_1.FindObjectPropertyHelperBase(options),
isHeader: new header_1.IsHeaderHelper(),
wrapHeader: new header_1.WrapHeaderHelper(),
unwrapHeader: new header_1.UnwrapHeaderHelper(),
iterableIteratorForEach: (options) => new iterableIterator_1.IterableIteratorForEachHelper(options),
iterableIteratorReduce: (options) => new iterableIterator_1.IterableIteratorReduceHelper(options),
createEnumeratorIterableIterator: (options) => new iterableIterator_1.CreateEnumeratorIterableIteratorHelper(options),
createIterableIteratorBase: (options) => new iterableIterator_1.CreateIterableIteratorBaseHelper(options),
createIteratorIterableIterator: (options) => new iterableIterator_1.CreateIteratorIterableIteratorHelper(options),
rawIteratorEvery: (options) => new iterator_1.RawIteratorEveryHelper(options),
rawIteratorEveryBase: (options) => new iterator_1.RawIteratorEveryBaseHelper(options),
rawIteratorSome: (options) => new iterator_1.RawIteratorSomeHelper(options),
rawIteratorSomeBase: (options) => new iterator_1.RawIteratorSomeBaseHelper(options),
rawIteratorForEach: (options) => new iterator_1.RawIteratorForEachHelper(options),
rawIteratorForEachKey: (options) => new iterator_1.RawIteratorForEachKeyHelper(options),
rawIteratorForEachBase: (options) => new iterator_1.RawIteratorForEachBaseHelper(options),
rawIteratorForEachFunc: (options) => new iterator_1.RawIteratorForEachFuncHelper(options),
rawIteratorForEachFuncBase: (options) => new iterator_1.RawIteratorForEachFuncBaseHelper(options),
rawEnumeratorForEachFunc: (options) => new iterator_1.RawEnumeratorForEachFuncHelper(options),
rawEnumeratorForEach: (options) => new iterator_1.RawEnumeratorForEachHelper(options),
rawEnumeratorFilter: (options) => new iterator_1.RawEnumeratorFilterHelper(options),
rawEnumeratorFind: (options) => new iterator_1.RawEnumeratorFindHelper(options),
rawEnumeratorReduce: (options) => new iterator_1.RawEnumeratorReduceHelper(options),
rawEnumeratorEvery: (options) => new iterator_1.RawEnumeratorEveryHelper(options),
rawEnumeratorSome: (options) => new iterator_1.RawEnumeratorSomeHelper(options),
rawIteratorReduce: (options) => new iterator_1.RawIteratorReduceHelper(options),
rawIteratorReduceBase: (options) => new iterator_1.RawIteratorReduceBaseHelper(options),
createIteratorResult: new iteratorResult_1.CreateIteratorResultHelper(),
mapDelete: new map_1.MapDeleteHelper(),
mapEvery: (options) => new map_1.MapEveryHelper(options),
mapForEach: (options) => new map_1.MapForEachHelper(options),
mapFilter: (options) => new map_1.MapFilterHelper(options),
mapMap: (options) => new map_1.MapMapHelper(options),
mapReduce: (options) => new map_1.MapReduceHelper(options),
mapSome: (options) => new map_1.MapSomeHelper(options),
cacheStorage: new storage_1.CacheStorageHelper(),
putCommonStorage: new storage_1.PutCommonStorageHelper(),
handleUndefinedStorage: (options) => new storage_1.HandleUndefinedStorageHelper(options),
commonStorage: new storage_1.CommonStorageHelper(),
deleteCacheStorage: new storage_1.DeleteCacheStorageHelper(),
deleteStorageBase: new storage_1.DeleteStorageBaseHelper(),
deleteStorage: new storage_1.DeleteStorageHelper(),
iterStorage: new storage_1.IterStorageHelper(),
putStorage: new storage_1.PutStorageHelper(),
getStorageBase: new storage_1.GetStorageBaseHelper(),
getStorage: new storage_1.GetStorageHelper(),
getCommonStorage: new storage_1.GetCommonStorageHelper(),
atStructuredStorage: (options) => new storage_1.AtStructuredStorageHelper(options),
createIteratorStructuredStorage: (options) => new storage_1.CreateIteratorStructuredStorageHelper(options),
createStructuredStorage: (options) => new storage_1.CreateStructuredStorageHelper(options),
deleteStructuredStorage: (options) => new storage_1.DeleteStructuredStorageHelper(options),
getKeyStructuredStorage: (options) => new storage_1.GetKeyStructuredStorageHelper(options),
getStructuredStorage: (options) => new storage_1.GetStructuredStorageHelper(options),
hasStructuredStorage: (options) => new storage_1.HasStructuredStorageHelper(options),
setStructuredStorage: (options) => new storage_1.SetStructuredStorageHelper(options),
setArrayStorage: new storage_1.SetArrayStorageHelper(),
forEachFuncStructuredStorageBase: (options) => new storage_1.ForEachFuncStructuredStorageBaseHelper(options),
forEachFuncStructuredStorage: (options) => new storage_1.ForEachFuncStructuredStorageHelper(options),
forEachKeyFuncStructuredStorage: (options) => new storage_1.ForEachKeyFuncStructuredStorageHelper(options),
forEachStructuredStorageBase: (options) => new storage_1.ForEachStructuredStorageBaseHelper(options),
forEachKeyStructuredStorage: (options) => new storage_1.ForEachKeyStructuredStorageHelper(options),
forEachStructuredStorage: (options) => new storage_1.ForEachStructuredStorageHelper(options),
forEachValStructuredStorage: (options) => new storage_1.ForEachValStructuredStorageHelper(options),
getStructuredStorageSize: (options) => new storage_1.GetStructuredStorageSizeHelper(options),
handleValueStructuredStorage: new storage_1.HandleValueStructuredStorageHelper(),
handleValValueStructuredStorage: new storage_1.HandleValValueStructuredStorageHelper(),
handlePrefixKeyStructuredStorage: new storage_1.HandlePrefixKeyStructuredStorageHelper(),
createIterableIteratorStructuredStorageBase: (options) => new storage_1.CreateIterableIteratorStructuredStorageBaseHelper(options),
createIterableIteratorStructuredStorage: (options) => new storage_1.CreateIterableIteratorStructuredStorageHelper(options),
createKeyIterableIteratorStructuredStorage: (options) => new storage_1.CreateKeyIterableIteratorStructuredStorageHelper(options),
createValIterableIteratorStructuredStorage: (options) => new storage_1.CreateValIterableIteratorStructuredStorageHelper(options),
getArrayStorageLength: new storage_1.GetArrayStorageLengthHelper(),
putArrayStorageLength: new storage_1.PutArrayStorageLengthHelper(),
handlePrefixArrayStructuredStorage: new storage_1.HandlePrefixArrayStructuredStorageHelper(),
unwrapKeyStructuredStorage: (options) => new storage_1.UnwrapKeyStructuredStorageHelper(options),
structuredStorageReduceBase: (options) => new storage_1.StructuredStorageReduceBaseHelper(options),
structuredStorageReduce: (options) => new storage_1.StructuredStorageReduceHelper(options),
structuredStorageReduceVal: (options) => new storage_1.StructuredStorageReduceValHelper(options),
forBuiltinType: (options) => new types_1.ForBuiltinTypeHelper(options),
forIterableType: (options) => new types_1.ForIterableTypeHelper(options),
unwrapVal: (options) => new types_1.UnwrapValHelper(options),
wrapVal: (options) => new types_1.WrapValHelper(options),
wrapArrayVal: (options) => new types_1.WrapArrayValHelper(options),
unwrapValRecursive: (options) => new types_1.UnwrapValRecursiveHelper(options),
wrapValRecursive: (options) => new types_1.WrapValRecursiveHelper(options),
arrayLength: new types_1.ArrayLengthHelper(),
createArray: new types_1.CreateArrayHelper(),
getArrayIndex: new types_1.GetArrayIndexHelper(),
setArrayIndex: new types_1.SetArrayIndexHelper(),
wrapArray: new types_1.WrapArrayHelper(),
unwrapArray: new types_1.UnwrapArrayHelper(),
isArray: new types_1.IsArrayHelper(),
wrapArrayStorage: new types_1.WrapArrayStorageHelper(),
unwrapArrayStorage: new types_1.UnwrapArrayStorageHelper(),
isArrayStorage: new types_1.IsArrayStorageHelper(),
wrapAttribute: new types_1.WrapAttributeHelper(),
unwrapAttribute: new types_1.UnwrapAttributeHelper(),
isAttribute: new types_1.IsAttributeHelper(),
bufferLength: new types_1.BufferLengthHelper(),
concatBuffer: new types_1.ConcatBufferHelper(),
getBufferIndex: new types_1.GetBufferIndexHelper(),
createBuffer: new types_1.WrapBufferHelper(),
isBuffer: new types_1.IsBufferHelper(),
unwrapBuffer: new types_1.UnwrapBufferHelper(),
wrapBuffer: new types_1.WrapBufferHelper(),
wrapError: new types_1.WrapErrorHelper(),
unwrapError: new types_1.UnwrapErrorHelper(),
isError: new types_1.IsErrorHelper(),
wrapForwardValue: new types_1.WrapForwardValueHelper(),
unwrapForwardValue: new types_1.UnwrapForwardValueHelper(),
isForwardValue: new types_1.IsForwardValueHelper(),
wrapInput: new types_1.WrapInputHelper(),
unwrapInput: new types_1.UnwrapInputHelper(),
isInput: new types_1.IsInputHelper(),
isIterable: new types_1.IsIterableHelper(),
wrapIteratorResult: new types_1.WrapIteratorResultHelper(),
unwrapIteratorResult: new types_1.UnwrapIteratorResultHelper(),
isIteratorResult: new types_1.IsIteratorResultHelper(),
wrapIterableIterator: new types_1.WrapIterableIteratorHelper(),
unwrapIterableIterator: new types_1.UnwrapIterableIteratorHelper(),
isIterableIterator: new types_1.IsIterableIteratorHelper(),
wrapMap: new types_1.WrapMapHelper(),
unwrapMap: new types_1.UnwrapMapHelper(),
isMap: new types_1.IsMapHelper(),
wrapMapStorage: new types_1.WrapMapStorageHelper(),
unwrapMapStorage: new types_1.UnwrapMapStorageHelper(),
isMapStorage: new types_1.IsMapStorageHelper(),
wrapOutput: new types_1.WrapOutputHelper(),
unwrapOutput: new types_1.UnwrapOutputHelper(),
isOutput: new types_1.IsOutputHelper(),
wrapSet: new types_1.WrapSetHelper(),
unwrapSet: new types_1.UnwrapSetHelper(),
isSet: new types_1.IsSetHelper(),
wrapSetStorage: new types_1.WrapSetStorageHelper(),
unwrapSetStorage: new types_1.UnwrapSetStorageHelper(),
isSetStorage: new types_1.IsSetStorageHelper(),
wrapTransaction: new types_1.WrapTransactionHelper(),
unwrapTransaction: new types_1.UnwrapTransactionHelper(),
isTransaction: new types_1.IsTransactionHelper(),
export: (options) => new module_1.ExportHelper(options),
exportSingle: (options) => new module_1.ExportSingleHelper(options),
getModule: (options) => new module_1.GetModuleHelper(options),
getCurrentModule: new module_1.GetCurrentModuleHelper(),
getModules: new module_1.GetModulesHelper(),
addEmptyModule: new module_1.AddEmptyModuleHelper(),
createGlobalObject: new global_1.CreateGlobalObjectHelper(),
getArgument: new global_1.GetArgumentHelper(),
getGlobalProperty: (options) => new global_1.GetGlobalPropertyHelper(options),
};
};
//# sourceMappingURL=createHelpers.js.map