GM opcode will cause the VM to panic

Hello,
I’ve been getting this error when trying to build a predicate. It’s built in the past but since updating the toolchain I’ve been getting this error. I’m using some of the GTF opcodes to check coin inputs and outputs which I think could be the cause. Any help you could provide would be greatly appreciated. Thank you!!!

1 Like

Indeed using the gm opcodes with i1 and i2 is not allowed in predicates. This is now enforced at compile time.

Only i3 is allowed in predicates. See the following explanation in the specs.

Now I see that those errors are coming from the standard library. If you’re using caller_is_external() or caller_contract_id() in a predicate, then the predicate won’t compile for the reasons mentioned above (both of these use the gm opcode with i1 and i2 respectively).

3 Likes

Thank you

Was calling msg.sender() in the predicate.

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.