@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
23 lines (21 loc) • 3.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const constants_1 = require("../../constants");
const Helper_1 = require("../Helper");
class InvocationIsCallerHelper extends Helper_1.Helper {
emit(sb, node, optionsIn) {
if (!optionsIn.pushValue) {
return;
}
const options = sb.pushValueOptions(optionsIn);
sb.emitHelper(node, options, sb.helpers.getGlobalProperty({ property: constants_1.GlobalProperty.CallingScriptHash }));
sb.emitSysCall(node, 'System.ExecutionEngine.GetEntryScriptHash');
sb.emitOp(node, 'EQUAL');
sb.emitSysCall(node, 'Neo.Runtime.GetTrigger');
sb.emitPushInt(node, 0x00);
sb.emitOp(node, 'NUMEQUAL');
sb.emitOp(node, 'BOOLOR');
}
}
exports.InvocationIsCallerHelper = InvocationIsCallerHelper;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkludm9jYXRpb25Jc0NhbGxlckhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLCtDQUFpRDtBQUdqRCxzQ0FBbUM7QUFJbkMsTUFBYSx3QkFBeUIsU0FBUSxlQUFNO0lBQzNDLElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxTQUF1QjtRQUNuRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRTtZQUN4QixPQUFPO1NBQ1I7UUFFRCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFL0MsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsMEJBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUzRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSwyQ0FBMkMsQ0FBQyxDQUFDO1FBRWxFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXpCLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLHdCQUF3QixDQUFDLENBQUM7UUFFL0MsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFM0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFNUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBdEJELDREQXNCQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy9jb21waWxlL2hlbHBlci9jb250cmFjdC9JbnZvY2F0aW9uSXNDYWxsZXJIZWxwZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBHbG9iYWxQcm9wZXJ0eSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vc2InO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi4vSGVscGVyJztcblxuLy8gSW5wdXQ6IFtdXG4vLyBPdXRwdXQ6IFtib29sZWFuXVxuZXhwb3J0IGNsYXNzIEludm9jYXRpb25Jc0NhbGxlckhlbHBlciBleHRlbmRzIEhlbHBlciB7XG4gIHB1YmxpYyBlbWl0KHNiOiBTY3JpcHRCdWlsZGVyLCBub2RlOiB0cy5Ob2RlLCBvcHRpb25zSW46IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICghb3B0aW9uc0luLnB1c2hWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnMgPSBzYi5wdXNoVmFsdWVPcHRpb25zKG9wdGlvbnNJbik7XG4gICAgLy8gW2J1ZmZlcl1cbiAgICBzYi5lbWl0SGVscGVyKG5vZGUsIG9wdGlvbnMsIHNiLmhlbHBlcnMuZ2V0R2xvYmFsUHJvcGVydHkoeyBwcm9wZXJ0eTogR2xvYmFsUHJvcGVydHkuQ2FsbGluZ1NjcmlwdEhhc2ggfSkpO1xuICAgIC8vIFtidWZmZXIsIGJ1ZmZlcl1cbiAgICBzYi5lbWl0U3lzQ2FsbChub2RlLCAnU3lzdGVtLkV4ZWN1dGlvbkVuZ2luZS5HZXRFbnRyeVNjcmlwdEhhc2gnKTtcbiAgICAvLyBbYm9vbGVhbl1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ0VRVUFMJyk7XG4gICAgLy8gW3RyaWdnZXIsIGJvb2xlYW5dXG4gICAgc2IuZW1pdFN5c0NhbGwobm9kZSwgJ05lby5SdW50aW1lLkdldFRyaWdnZXInKTtcbiAgICAvLyBbbnVtYmVyLCB0cmlnZ2VyLCBib29sZWFuXVxuICAgIHNiLmVtaXRQdXNoSW50KG5vZGUsIDB4MDApO1xuICAgIC8vIFtib29sZWFuLCBib29sZWFuXVxuICAgIHNiLmVtaXRPcChub2RlLCAnTlVNRVFVQUwnKTtcbiAgICAvLyBbYm9vbGVhbl1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ0JPT0xPUicpO1xuICB9XG59XG4iXX0=