@cashscript/utils
Advanced tools
Comparing version 0.8.0-next.2 to 0.8.0-next.3
@@ -1,2 +0,2 @@ | ||
declare const _default: "\n# This file can be run with CashProof to prove that the optimisations preserve exact functionality\n# This includes most of CashScript's bytecode optimisations, although some are incompatible with CashProof\n\n# Hardcoded arithmetic\n# OP_NOT OP_IF <=> OP_NOTIF;\nOP_1 OP_ADD <=> OP_1ADD;\nOP_1 OP_SUB <=> OP_1SUB;\nOP_1 OP_NEGATE <=> OP_1NEGATE;\nOP_0 OP_EQUAL OP_NOT <=> OP_0NOTEQUAL;\nOP_NUMEQUAL OP_NOT <=> OP_NUMNOTEQUAL;\nOP_SHA256 OP_SHA256 <=> OP_HASH256;\nOP_SHA256 OP_RIPEMD160 <=> OP_HASH160;\n\n# Hardcoded stack ops\nOP_2 OP_PICK OP_1 OP_PICK OP_3 OP_PICK <=> OP_3DUP OP_SWAP;\nOP_2 OP_PICK OP_2 OP_PICK OP_2 OP_PICK <=> OP_3DUP;\n\nOP_0 OP_PICK OP_2 OP_PICK <=> OP_2DUP OP_SWAP;\nOP_2 OP_PICK OP_4 OP_PICK <=> OP_2OVER OP_SWAP;\nOP_3 OP_PICK OP_3 OP_PICK <=> OP_2OVER;\n\nOP_2 OP_ROLL OP_3 OP_ROLL <=> OP_2SWAP OP_SWAP;\nOP_3 OP_ROLL OP_3 OP_ROLL <=> OP_2SWAP;\nOP_4 OP_ROLL OP_5 OP_ROLL <=> OP_2ROT OP_SWAP;\nOP_5 OP_ROLL OP_5 OP_ROLL <=> OP_2ROT;\n\nOP_0 OP_PICK <=> OP_DUP;\nOP_1 OP_PICK <=> OP_OVER;\nOP_0 OP_ROLL <=> ;\nOP_1 OP_ROLL <=> OP_SWAP;\nOP_2 OP_ROLL <=> OP_ROT;\nOP_DROP OP_DROP <=> OP_2DROP;\n\n# Secondary effects\nOP_DUP OP_SWAP <=> OP_DUP;\nOP_SWAP OP_SWAP <=> ;\nOP_2SWAP OP_2SWAP <=> ;\nOP_ROT OP_ROT OP_ROT <=> ;\nOP_2ROT OP_2ROT OP_2ROT <=> ;\nOP_OVER OP_OVER <=> OP_2DUP;\nOP_DUP OP_DROP <=> ;\nOP_DUP OP_NIP <=> ;\n\n# Enabling secondary effects\nOP_DUP OP_OVER <=> OP_DUP OP_DUP;\n\n# Merge OP_VERIFY\nOP_EQUAL OP_VERIFY <=> OP_EQUALVERIFY;\nOP_NUMEQUAL OP_VERIFY <=> OP_NUMEQUALVERIFY;\nOP_CHECKSIG OP_VERIFY <=> OP_CHECKSIGVERIFY;\n# OP_CHECKMULTISIG OP_VERIFY <=> OP_CHECKMULTISIGVERIFY;\nOP_CHECKDATASIG OP_VERIFY <=> OP_CHECKDATASIGVERIFY;\n\n# Remove/replace extraneous OP_SWAP\n# OP_SWAP OP_AND <=> OP_AND;\n# OP_SWAP OP_OR <=> OP_OR;\n# OP_SWAP OP_XOR <=> OP_XOR;\nOP_SWAP OP_ADD <=> OP_ADD;\nOP_SWAP OP_EQUAL <=> OP_EQUAL;\nOP_SWAP OP_NUMEQUAL <=> OP_NUMEQUAL;\nOP_SWAP OP_NUMNOTEQUAL <=> OP_NUMNOTEQUAL;\nOP_SWAP OP_GREATERTHANOREQUAL <=> OP_LESSTHANOREQUAL;\nOP_SWAP OP_LESSTHANOREQUAL <=> OP_GREATERTHANOREQUAL;\nOP_SWAP OP_GREATERTHAN <=> OP_LESSTHAN;\nOP_SWAP OP_LESSTHAN <=> OP_GREATERTHAN;\nOP_SWAP OP_DROP <=> OP_NIP;\nOP_SWAP OP_NIP <=> OP_DROP;\n\n# Remove/replace extraneous OP_DUP\n# OP_DUP OP_AND <=> ;\n# OP_DUP OP_OR <=> ;\nOP_DUP OP_DROP <=> ;\nOP_DUP OP_NIP <=> ;\n\n# Random optimisations (don't know what I'm targeting with this)\nOP_2DUP OP_DROP <=> OP_OVER;\nOP_2DUP OP_NIP <=> OP_DUP;\nOP_CAT OP_DROP <=> OP_2DROP;\nOP_NIP OP_DROP <=> OP_2DROP;\n\n# Far-fetched stuff\nOP_DUP OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_OVER OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_2 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_3 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_4 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_5 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_6 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_7 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_8 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_9 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_10 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_11 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_12 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_13 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_14 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_15 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_16 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\n\nOP_DUP OP_ROT OP_DROP <=> OP_NIP OP_DUP;\nOP_OVER OP_ROT OP_DROP <=> OP_SWAP;\nOP_2 OP_PICK OP_ROT OP_DROP <=> OP_NIP OP_OVER;\n\nOP_0 OP_NIP <=> OP_DROP OP_0;\nOP_1 OP_NIP <=> OP_DROP OP_1;\nOP_2 OP_NIP <=> OP_DROP OP_2;\nOP_3 OP_NIP <=> OP_DROP OP_3;\nOP_4 OP_NIP <=> OP_DROP OP_4;\nOP_5 OP_NIP <=> OP_DROP OP_5;\nOP_6 OP_NIP <=> OP_DROP OP_6;\nOP_7 OP_NIP <=> OP_DROP OP_7;\nOP_8 OP_NIP <=> OP_DROP OP_8;\nOP_9 OP_NIP <=> OP_DROP OP_9;\nOP_10 OP_NIP <=> OP_DROP OP_10;\nOP_11 OP_NIP <=> OP_DROP OP_11;\nOP_12 OP_NIP <=> OP_DROP OP_12;\nOP_13 OP_NIP <=> OP_DROP OP_13;\nOP_14 OP_NIP <=> OP_DROP OP_14;\nOP_15 OP_NIP <=> OP_DROP OP_15;\nOP_16 OP_NIP <=> OP_DROP OP_16;\n\nOP_2 OP_PICK OP_SWAP OP_2 OP_PICK OP_NIP <=> OP_DROP OP_2DUP;\n"; | ||
declare const _default: "\n# This file can be run with CashProof to prove that the optimisations preserve exact functionality\n# This includes most of CashScript's bytecode optimisations, although some are incompatible with CashProof\n\n# Hardcoded arithmetic\n# OP_NOT OP_IF <=> OP_NOTIF;\nOP_1 OP_ADD <=> OP_1ADD;\nOP_1 OP_SUB <=> OP_1SUB;\nOP_1 OP_NEGATE <=> OP_1NEGATE;\nOP_0 OP_NUMEQUAL OP_NOT <=> OP_0NOTEQUAL;\nOP_NUMEQUAL OP_NOT <=> OP_NUMNOTEQUAL;\nOP_SHA256 OP_SHA256 <=> OP_HASH256;\nOP_SHA256 OP_RIPEMD160 <=> OP_HASH160;\n\n# Hardcoded stack ops\nOP_2 OP_PICK OP_1 OP_PICK OP_3 OP_PICK <=> OP_3DUP OP_SWAP;\nOP_2 OP_PICK OP_2 OP_PICK OP_2 OP_PICK <=> OP_3DUP;\n\nOP_0 OP_PICK OP_2 OP_PICK <=> OP_2DUP OP_SWAP;\nOP_2 OP_PICK OP_4 OP_PICK <=> OP_2OVER OP_SWAP;\nOP_3 OP_PICK OP_3 OP_PICK <=> OP_2OVER;\n\nOP_2 OP_ROLL OP_3 OP_ROLL <=> OP_2SWAP OP_SWAP;\nOP_3 OP_ROLL OP_3 OP_ROLL <=> OP_2SWAP;\nOP_4 OP_ROLL OP_5 OP_ROLL <=> OP_2ROT OP_SWAP;\nOP_5 OP_ROLL OP_5 OP_ROLL <=> OP_2ROT;\n\nOP_0 OP_PICK <=> OP_DUP;\nOP_1 OP_PICK <=> OP_OVER;\nOP_0 OP_ROLL <=> ;\nOP_1 OP_ROLL <=> OP_SWAP;\nOP_2 OP_ROLL <=> OP_ROT;\nOP_DROP OP_DROP <=> OP_2DROP;\n\n# Secondary effects\nOP_DUP OP_SWAP <=> OP_DUP;\nOP_SWAP OP_SWAP <=> ;\nOP_2SWAP OP_2SWAP <=> ;\nOP_ROT OP_ROT OP_ROT <=> ;\nOP_2ROT OP_2ROT OP_2ROT <=> ;\nOP_OVER OP_OVER <=> OP_2DUP;\nOP_DUP OP_DROP <=> ;\nOP_DUP OP_NIP <=> ;\n\n# Enabling secondary effects\nOP_DUP OP_OVER <=> OP_DUP OP_DUP;\n\n# Merge OP_VERIFY\nOP_EQUAL OP_VERIFY <=> OP_EQUALVERIFY;\nOP_NUMEQUAL OP_VERIFY <=> OP_NUMEQUALVERIFY;\nOP_CHECKSIG OP_VERIFY <=> OP_CHECKSIGVERIFY;\n# OP_CHECKMULTISIG OP_VERIFY <=> OP_CHECKMULTISIGVERIFY;\nOP_CHECKDATASIG OP_VERIFY <=> OP_CHECKDATASIGVERIFY;\n\n# Remove/replace extraneous OP_SWAP\n# OP_SWAP OP_AND <=> OP_AND;\n# OP_SWAP OP_OR <=> OP_OR;\n# OP_SWAP OP_XOR <=> OP_XOR;\nOP_SWAP OP_ADD <=> OP_ADD;\nOP_SWAP OP_EQUAL <=> OP_EQUAL;\nOP_SWAP OP_NUMEQUAL <=> OP_NUMEQUAL;\nOP_SWAP OP_NUMNOTEQUAL <=> OP_NUMNOTEQUAL;\nOP_SWAP OP_GREATERTHANOREQUAL <=> OP_LESSTHANOREQUAL;\nOP_SWAP OP_LESSTHANOREQUAL <=> OP_GREATERTHANOREQUAL;\nOP_SWAP OP_GREATERTHAN <=> OP_LESSTHAN;\nOP_SWAP OP_LESSTHAN <=> OP_GREATERTHAN;\nOP_SWAP OP_DROP <=> OP_NIP;\nOP_SWAP OP_NIP <=> OP_DROP;\n\n# Remove/replace extraneous OP_DUP\n# OP_DUP OP_AND <=> ;\n# OP_DUP OP_OR <=> ;\nOP_DUP OP_DROP <=> ;\nOP_DUP OP_NIP <=> ;\n\n# Random optimisations (don't know what I'm targeting with this)\nOP_2DUP OP_DROP <=> OP_OVER;\nOP_2DUP OP_NIP <=> OP_DUP;\nOP_CAT OP_DROP <=> OP_2DROP;\nOP_NIP OP_DROP <=> OP_2DROP;\n\n# Far-fetched stuff\nOP_DUP OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_OVER OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_2 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_3 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_4 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_5 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_6 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_7 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_8 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_9 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_10 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_11 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_12 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_13 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_14 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_15 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\nOP_16 OP_PICK OP_ROT OP_SWAP OP_DROP <=> OP_SWAP;\n\nOP_DUP OP_ROT OP_DROP <=> OP_NIP OP_DUP;\nOP_OVER OP_ROT OP_DROP <=> OP_SWAP;\nOP_2 OP_PICK OP_ROT OP_DROP <=> OP_NIP OP_OVER;\n\nOP_0 OP_NIP <=> OP_DROP OP_0;\nOP_1 OP_NIP <=> OP_DROP OP_1;\nOP_2 OP_NIP <=> OP_DROP OP_2;\nOP_3 OP_NIP <=> OP_DROP OP_3;\nOP_4 OP_NIP <=> OP_DROP OP_4;\nOP_5 OP_NIP <=> OP_DROP OP_5;\nOP_6 OP_NIP <=> OP_DROP OP_6;\nOP_7 OP_NIP <=> OP_DROP OP_7;\nOP_8 OP_NIP <=> OP_DROP OP_8;\nOP_9 OP_NIP <=> OP_DROP OP_9;\nOP_10 OP_NIP <=> OP_DROP OP_10;\nOP_11 OP_NIP <=> OP_DROP OP_11;\nOP_12 OP_NIP <=> OP_DROP OP_12;\nOP_13 OP_NIP <=> OP_DROP OP_13;\nOP_14 OP_NIP <=> OP_DROP OP_14;\nOP_15 OP_NIP <=> OP_DROP OP_15;\nOP_16 OP_NIP <=> OP_DROP OP_16;\n\nOP_2 OP_PICK OP_SWAP OP_2 OP_PICK OP_NIP <=> OP_DROP OP_2DUP;\n"; | ||
export default _default; |
@@ -10,3 +10,3 @@ export default ` | ||
OP_1 OP_NEGATE <=> OP_1NEGATE; | ||
OP_0 OP_EQUAL OP_NOT <=> OP_0NOTEQUAL; | ||
OP_0 OP_NUMEQUAL OP_NOT <=> OP_0NOTEQUAL; | ||
OP_NUMEQUAL OP_NOT <=> OP_NUMNOTEQUAL; | ||
@@ -13,0 +13,0 @@ OP_SHA256 OP_SHA256 <=> OP_HASH256; |
{ | ||
"name": "@cashscript/utils", | ||
"version": "0.8.0-next.2", | ||
"version": "0.8.0-next.3", | ||
"description": "CashScript utilities and types", | ||
@@ -52,3 +52,3 @@ "keywords": [ | ||
}, | ||
"gitHead": "37bcb8e924fc56ef8da2cb2a2640eb5478de39b2" | ||
"gitHead": "398ff2afab6d731f077002e6be021ed2f1996b4a" | ||
} |