@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
51 lines (49 loc) • 5.92 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = require("../types");
class UnwrapKeyStructuredStorageHelper extends types_1.TypedHelper {
emit(sb, node, optionsIn) {
const options = sb.pushValueOptions(optionsIn);
const unwrapArray = (innerOptions) => {
sb.emitHelper(node, innerOptions, sb.helpers.unwrapArray);
};
const wrapArray = () => {
sb.emitPushInt(node, 1);
sb.emitOp(node, 'PACK');
};
sb.emitHelper(node, options, sb.helpers.forBuiltinType({
type: this.type,
knownType: this.knownType,
array: unwrapArray,
map: wrapArray,
set: wrapArray,
boolean: wrapArray,
buffer: wrapArray,
null: wrapArray,
number: wrapArray,
object: wrapArray,
string: wrapArray,
symbol: wrapArray,
undefined: wrapArray,
arrayStorage: wrapArray,
mapStorage: wrapArray,
setStorage: wrapArray,
error: wrapArray,
forwardValue: wrapArray,
iteratorResult: wrapArray,
iterable: wrapArray,
iterableIterator: wrapArray,
transaction: wrapArray,
output: wrapArray,
attribute: wrapArray,
input: wrapArray,
account: wrapArray,
asset: wrapArray,
contract: wrapArray,
header: wrapArray,
block: wrapArray,
}));
}
}
exports.UnwrapKeyStructuredStorageHelper = UnwrapKeyStructuredStorageHelper;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlVud3JhcEtleVN0cnVjdHVyZWRTdG9yYWdlSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0Esb0NBQXVDO0FBSXZDLE1BQWEsZ0NBQWlDLFNBQVEsbUJBQVc7SUFDeEQsSUFBSSxDQUFDLEVBQWlCLEVBQUUsSUFBYSxFQUFFLFNBQXVCO1FBQ25FLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUvQyxNQUFNLFdBQVcsR0FBRyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUVqRCxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUM7UUFFRixNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUU7WUFFckIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDO1FBR0YsRUFBRSxDQUFDLFVBQVUsQ0FDWCxJQUFJLEVBQ0osT0FBTyxFQUNQLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixLQUFLLEVBQUUsV0FBVztZQUNsQixHQUFHLEVBQUUsU0FBUztZQUNkLEdBQUcsRUFBRSxTQUFTO1lBQ2QsT0FBTyxFQUFFLFNBQVM7WUFDbEIsTUFBTSxFQUFFLFNBQVM7WUFDakIsSUFBSSxFQUFFLFNBQVM7WUFDZixNQUFNLEVBQUUsU0FBUztZQUNqQixNQUFNLEVBQUUsU0FBUztZQUNqQixNQUFNLEVBQUUsU0FBUztZQUNqQixNQUFNLEVBQUUsU0FBUztZQUNqQixTQUFTLEVBQUUsU0FBUztZQUNwQixZQUFZLEVBQUUsU0FBUztZQUN2QixVQUFVLEVBQUUsU0FBUztZQUNyQixVQUFVLEVBQUUsU0FBUztZQUNyQixLQUFLLEVBQUUsU0FBUztZQUNoQixZQUFZLEVBQUUsU0FBUztZQUN2QixjQUFjLEVBQUUsU0FBUztZQUN6QixRQUFRLEVBQUUsU0FBUztZQUNuQixnQkFBZ0IsRUFBRSxTQUFTO1lBQzNCLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFFBQVEsRUFBRSxTQUFTO1lBQ25CLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLEtBQUssRUFBRSxTQUFTO1NBQ2pCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBdERELDRFQXNEQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy9jb21waWxlL2hlbHBlci9zdG9yYWdlL1Vud3JhcEtleVN0cnVjdHVyZWRTdG9yYWdlSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgU2NyaXB0QnVpbGRlciB9IGZyb20gJy4uLy4uL3NiJztcbmltcG9ydCB7IFZpc2l0T3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFR5cGVkSGVscGVyIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyBJbnB1dDogW3ZhbEtleV1cbi8vIE91dHB1dDogW3ZhbEtleUFycl1cbmV4cG9ydCBjbGFzcyBVbndyYXBLZXlTdHJ1Y3R1cmVkU3RvcmFnZUhlbHBlciBleHRlbmRzIFR5cGVkSGVscGVyIHtcbiAgcHVibGljIGVtaXQoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLk5vZGUsIG9wdGlvbnNJbjogVmlzaXRPcHRpb25zKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHNiLnB1c2hWYWx1ZU9wdGlvbnMob3B0aW9uc0luKTtcblxuICAgIGNvbnN0IHVud3JhcEFycmF5ID0gKGlubmVyT3B0aW9uczogVmlzaXRPcHRpb25zKSA9PiB7XG4gICAgICAvLyBba2V5VmFsXVxuICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBpbm5lck9wdGlvbnMsIHNiLmhlbHBlcnMudW53cmFwQXJyYXkpO1xuICAgIH07XG5cbiAgICBjb25zdCB3cmFwQXJyYXkgPSAoKSA9PiB7XG4gICAgICAvLyBbMSwgdmFsXVxuICAgICAgc2IuZW1pdFB1c2hJbnQobm9kZSwgMSk7XG4gICAgICAvLyBbYXJyXVxuICAgICAgc2IuZW1pdE9wKG5vZGUsICdQQUNLJyk7XG4gICAgfTtcblxuICAgIC8vIFt2YWxLZXlBcnJdXG4gICAgc2IuZW1pdEhlbHBlcihcbiAgICAgIG5vZGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgc2IuaGVscGVycy5mb3JCdWlsdGluVHlwZSh7XG4gICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAga25vd25UeXBlOiB0aGlzLmtub3duVHlwZSxcbiAgICAgICAgYXJyYXk6IHVud3JhcEFycmF5LFxuICAgICAgICBtYXA6IHdyYXBBcnJheSxcbiAgICAgICAgc2V0OiB3cmFwQXJyYXksXG4gICAgICAgIGJvb2xlYW46IHdyYXBBcnJheSxcbiAgICAgICAgYnVmZmVyOiB3cmFwQXJyYXksXG4gICAgICAgIG51bGw6IHdyYXBBcnJheSxcbiAgICAgICAgbnVtYmVyOiB3cmFwQXJyYXksXG4gICAgICAgIG9iamVjdDogd3JhcEFycmF5LFxuICAgICAgICBzdHJpbmc6IHdyYXBBcnJheSxcbiAgICAgICAgc3ltYm9sOiB3cmFwQXJyYXksXG4gICAgICAgIHVuZGVmaW5lZDogd3JhcEFycmF5LFxuICAgICAgICBhcnJheVN0b3JhZ2U6IHdyYXBBcnJheSxcbiAgICAgICAgbWFwU3RvcmFnZTogd3JhcEFycmF5LFxuICAgICAgICBzZXRTdG9yYWdlOiB3cmFwQXJyYXksXG4gICAgICAgIGVycm9yOiB3cmFwQXJyYXksXG4gICAgICAgIGZvcndhcmRWYWx1ZTogd3JhcEFycmF5LFxuICAgICAgICBpdGVyYXRvclJlc3VsdDogd3JhcEFycmF5LFxuICAgICAgICBpdGVyYWJsZTogd3JhcEFycmF5LFxuICAgICAgICBpdGVyYWJsZUl0ZXJhdG9yOiB3cmFwQXJyYXksXG4gICAgICAgIHRyYW5zYWN0aW9uOiB3cmFwQXJyYXksXG4gICAgICAgIG91dHB1dDogd3JhcEFycmF5LFxuICAgICAgICBhdHRyaWJ1dGU6IHdyYXBBcnJheSxcbiAgICAgICAgaW5wdXQ6IHdyYXBBcnJheSxcbiAgICAgICAgYWNjb3VudDogd3JhcEFycmF5LFxuICAgICAgICBhc3NldDogd3JhcEFycmF5LFxuICAgICAgICBjb250cmFjdDogd3JhcEFycmF5LFxuICAgICAgICBoZWFkZXI6IHdyYXBBcnJheSxcbiAgICAgICAgYmxvY2s6IHdyYXBBcnJheSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==