@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
24 lines (22 loc) • 3.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const constants_1 = require("../../constants");
const Helper_1 = require("../Helper");
class GetArrayStorageLengthHelper extends Helper_1.Helper {
emit(sb, node, optionsIn) {
const options = sb.pushValueOptions(optionsIn);
sb.emitHelper(node, options, sb.helpers.unwrapArrayStorage);
sb.emitPushInt(node, constants_1.StructuredStorageSlots.prefix);
sb.emitOp(node, 'PICKITEM');
sb.emitHelper(node, options, sb.helpers.getCommonStorage);
sb.emitHelper(node, options, sb.helpers.handleUndefinedStorage({
handleUndefined: () => {
sb.emitPushInt(node, 0);
},
handleDefined: () => {
},
}));
}
}
exports.GetArrayStorageLengthHelper = GetArrayStorageLengthHelper;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkdldEFycmF5U3RvcmFnZUxlbmd0aEhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLCtDQUF5RDtBQUd6RCxzQ0FBbUM7QUFJbkMsTUFBYSwyQkFBNEIsU0FBUSxlQUFNO0lBQzlDLElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxTQUF1QjtRQUNuRSxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFL0MsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU1RCxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxrQ0FBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRCxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUU1QixFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTFELEVBQUUsQ0FBQyxVQUFVLENBQ1gsSUFBSSxFQUNKLE9BQU8sRUFDUCxFQUFFLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDO1lBQ2hDLGVBQWUsRUFBRSxHQUFHLEVBQUU7Z0JBQ3BCLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFDRCxhQUFhLEVBQUUsR0FBRyxFQUFFO1lBRXBCLENBQUM7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXpCRCxrRUF5QkMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9oZWxwZXIvc3RvcmFnZS9HZXRBcnJheVN0b3JhZ2VMZW5ndGhIZWxwZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBTdHJ1Y3R1cmVkU3RvcmFnZVNsb3RzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNjcmlwdEJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zYic7XG5pbXBvcnQgeyBWaXNpdE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBIZWxwZXIgfSBmcm9tICcuLi9IZWxwZXInO1xuXG4vLyBJbnB1dDogW3ZhbF1cbi8vIE91dHB1dDogW2lkeF1cbmV4cG9ydCBjbGFzcyBHZXRBcnJheVN0b3JhZ2VMZW5ndGhIZWxwZXIgZXh0ZW5kcyBIZWxwZXIge1xuICBwdWJsaWMgZW1pdChzYjogU2NyaXB0QnVpbGRlciwgbm9kZTogdHMuTm9kZSwgb3B0aW9uc0luOiBWaXNpdE9wdGlvbnMpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gc2IucHVzaFZhbHVlT3B0aW9ucyhvcHRpb25zSW4pO1xuICAgIC8vIFttYXBdXG4gICAgc2IuZW1pdEhlbHBlcihub2RlLCBvcHRpb25zLCBzYi5oZWxwZXJzLnVud3JhcEFycmF5U3RvcmFnZSk7XG4gICAgLy8gW251bWJlciwgbWFwXVxuICAgIHNiLmVtaXRQdXNoSW50KG5vZGUsIFN0cnVjdHVyZWRTdG9yYWdlU2xvdHMucHJlZml4KTtcbiAgICAvLyBbcHJlZml4XVxuICAgIHNiLmVtaXRPcChub2RlLCAnUElDS0lURU0nKTtcbiAgICAvLyBbaWR4XVxuICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy5nZXRDb21tb25TdG9yYWdlKTtcbiAgICAvLyBbaWR4XVxuICAgIHNiLmVtaXRIZWxwZXIoXG4gICAgICBub2RlLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIHNiLmhlbHBlcnMuaGFuZGxlVW5kZWZpbmVkU3RvcmFnZSh7XG4gICAgICAgIGhhbmRsZVVuZGVmaW5lZDogKCkgPT4ge1xuICAgICAgICAgIHNiLmVtaXRQdXNoSW50KG5vZGUsIDApO1xuICAgICAgICB9LFxuICAgICAgICBoYW5kbGVEZWZpbmVkOiAoKSA9PiB7XG4gICAgICAgICAgLy8gZG8gbm90aGluZ1xuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19