    public static parseOpReturnToChunks(script: Buffer, allowOP_0= false, allowOP_number= false) {
        // """Extract pushed bytes after opreturn. Returns list of bytes() objects,
        // one per push.
        let ops: PushDataOperation[];

        // Strict refusal of non-push opcodes; bad scripts throw OpreturnError."""
        try {
            ops = this.getScriptOperations(script);
        } catch (e) {
            // console.log(e);
            throw Error("Script error");
        }

        if (ops[0].opcode !== Script.opcodes.OP_RETURN) {
            throw Error("No OP_RETURN");
        }
        const chunks: Array<Buffer|null> = [];
        ops.slice(1).forEach(opitem => {
            if (opitem.opcode > Script.opcodes.OP_16) {
                throw Error("Non-push opcode");
            }
            if (opitem.opcode > Script.opcodes.OP_PUSHDATA4) {
                if (opitem.opcode === 80) {
                    throw Error("Non-push opcode");
                }
                if (!allowOP_number) {
                    throw Error("OP_1NEGATE to OP_16 not allowed");
                }
                if (opitem.opcode === Script.opcodes.OP_1NEGATE) {
                    opitem.data = Buffer.from([0x81]);
                } else { // OP_1 - OP_16
                    opitem.data = Buffer.from([opitem.opcode - 80]);
                }
            }
            if (opitem.opcode === Script.opcodes.OP_0 && !allowOP_0) {
                throw Error("OP_0 not allowed");
            }
            chunks.push(opitem.data);
        });
        // console.log(chunks);
        return chunks;
    }
The product receives input or data, but it does
        not validate or incorrectly validates that the input has the
        properties that are required to process the data safely and
        correctly.