Skip to content

Instantly share code, notes, and snippets.

@tynes
Last active April 16, 2020 06:33
Show Gist options
  • Save tynes/77844ddff084980a471f3a40b7dd28ce to your computer and use it in GitHub Desktop.
Save tynes/77844ddff084980a471f3a40b7dd28ce to your computer and use it in GitHub Desktop.
more simple swap script
New Script
Opcode.fromSymbol('type'),
Opcode.fromInt(rules.types.TRANSFER),
Opcode.fromSymbol('equal'),
Opcode.fromSymbol('if'),
Opcode.fromSymbol('dup'),
Opcode.fromSymbol('blake160'),
Opcode.fromPush(pubkeyhash),
Opcode.fromSymbol('equalverify'),
Opcode.fromSymbol('checksigverify'),
Opcode.fromSymbol('else'),
Opcode.fromSymbol('type'),
Opcode.fromInt(rules.types.FINALIZE),
Opcode.fromSymbol('equal'),
Opcode.fromSymbol('if'),
Opcode.fromSymbol('true'), //fixme
Opcode.fromSymbol('else'),
Opcode.fromSymbol('return'), //all other cases
Opcode.fromSymbol('endif'),
Opcode.fromSymbol('endif'),
/////////////////////////////////////////
Old script, has to mention each case specifically
Opcode.fromSymbol('type'),
Opcode.fromInt(rules.types.UPDATE),
Opcode.fromSymbol('equal'),
Opcode.fromSymbol('if'),
Opcode.fromSymbol('return'),
Opcode.fromSymbol('endif'),
Opcode.fromSymbol('type'),
Opcode.fromInt(rules.types.REVOKE),
Opcode.fromSymbol('equal'),
Opcode.fromSymbol('if'),
Opcode.fromSymbol('return'),
Opcode.fromSymbol('endif'),
// TODO add renew
Opcode.fromSymbol('type'),
Opcode.fromInt(rules.types.FINALIZE),
Opcode.fromSymbol('equal'),
Opcode.fromSymbol('if'),
Opcode.fromSymbol('blake256'),
Opcode.fromPush(hashlock),
Opcode.fromSymbol('equalverify'),
Opcode.fromSymbol('endif'),
@tynes
Copy link
Author

tynes commented Apr 16, 2020

Old script has bugs in it, doesn't cover all covenant spend paths.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment