UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

362 lines (360 loc) 23.8 kB
"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