chore: refactor default functions in uplc_code_gen.

feat: Add an identity optimization to remove functions that return the argument only.
This commit is contained in:
microproofs
2023-05-08 15:36:40 -04:00
committed by Kasey
parent d97aba430a
commit b36cf1c029
8 changed files with 353 additions and 134 deletions

View File

@@ -19,8 +19,8 @@
"$ref": "#/definitions/spend~1PoolRedeemer"
}
},
"compiledCode": "59073201000032323232323232323232323232222323232533300b3232323232323253330123370e90000008992513010007153330123370e9001000899191919299980b19b87480080044c8c8c8c8c8c8c9289811800980c99299980e19b8748000c06c004400454cc07924012a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163300d0140033021001301732533301a3370e9000180c80088008a9980e24812a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163300a012001300848901ff00301e001301400214a0602800266020602401a9001180d0009808003899191919299980b19b87480080044c8c8c8c8c8c8c9289811800980c99299980e19b8748000c06c004400454cc0792412a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163300d0140033021001301732533301a3370e9000180c80088008a9980e24812a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163300a012001300848901ff00301e001301400214a0602800266020602401a9001180d00098080039808003119ba548000cc05ccdd2a40046602e6ea40052f5c06602e98103d87a80004bd7011198021bac3300d300f3300d300f00248001200423375e6601c6020002900000111198019bac3300c300e3300c300e00248001200023375e6601a601e6601a601e0029001240000046002002444a6660280042980103d87a8000132325333011300300213374a90001980b80125eb804ccc01401400400cc06000cc058008cc01cc0240092000149858cc02cc94ccc02ccdc3a40000022646464646464a66602c6032004266024601200a930a99809a481334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a602e002602e0046eb4c054004c054008c04c004c02401854cc0352412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630090050053300a32533300a3370e9000000899192999808980a00109980699299980699b87480000044c8c94ccc050c05c00852615330114901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a602a00260160042a66601a66e1d200200113232533301430170021330103253330103370e9000000899191919299980c980e00109980a9806001a4c2a6602c9201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a603400260340046030002601c0042a660249212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300e00149854cc045241334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163015001300b0021533300d3370e900200089919299980a180b80109980819299980819b87480000044c8c8c8c94ccc064c0700084cc054c03000d2615330164901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a603400260340046030002601c0042a660249212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300e00149854cc045241334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163015001300b002153300f4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300b00149854cc039241334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001630120013008004153300c4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163008003003232533300a3370e90000008991919192999809980b0010a4c2a660209201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c602800260280046eb8c048004c02000854cc0312412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300800133001001480008888cccc01ccdc38008018071199980280299b8000448008c0400040080088c01cdd5000918029baa0015734ae6d5ce2ab9d5573caae7d5d02ba157441",
"hash": "e5eb76a233e7d81172fb991975806b3adcc16ddf1cc3297ab5cf9a7a"
"compiledCode": "590722010000323232323232323232323232222323232533300b3232323232323253330123370e90000008992513010007153330123370e9001000899191919299980b19b87480080044c8c8c8c8c8c8c9289811000980c99299980e19b8748000c06c004400454cc07524012a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163300d0140033020001301732533301a3370e9000180c80088008a9980da4812a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163300a012001300848901ff00301d001301400214a0602800266020602401a9001180c8009808003899191919299980b19b87480080044c8c8c8c8c8c8c9289811000980c99299980e19b8748000c06c004400454cc0752412a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163300d0140033020001301732533301a3370e9000180c80088008a9980da4812a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163300a012001300848901ff00301d001301400214a0602800266020602401a9001180c80098080039808003119ba548000cc058cdd2a40046602c6ea40052f5c06602c98103d87a80004bd7011198021bac3300d300f3300d300f00248001200423375e6601c6020002900000111198019bac3300c300e3300c300e00248001200023375e6601a601e6601a601e0029001240000046002002444a6660260042980103d87a8000132325333011300300213374a90001980b00125eb804ccc01401400400cc05c00cc054008cc01cc0240092000149858c8018c94ccc02ccdc3a40000022646464646464a66602a60300042649318048028a99809249334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a602c002602c0046eb4c050004c050008c048004c02401854cc0312412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630090053200432533300a3370e9000000899192999808180980109924c64a66601a66e1d20000011323253330133016002149854cc041241334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a602800260160042a66601a66e1d20020011323253330133016002132498c94ccc040cdc3a4000002264646464a66603060360042649318060018a9980aa481334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a60320026032004602e002601c0042a660229212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300e00115330104901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163014001300b0021533300d3370e9002000899192999809980b00109924c64a66602066e1d20000011323232325333018301b002132498c03000c54cc055241334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a60320026032004602e002601c0042a660229212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300e00115330104901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163014001300b002153300e4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300b001153300d4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001630110013008004153300b4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163008003232533300a3370e90000008991919192999809180a8010a4c2a6601e921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c602600260260046eb8c044004c02000854cc02d2412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300800133001001480008888cccc01ccdc38008018069199980280299b8000448008c03c0040080088c018dd5000918021baa0015734ae7155ceaab9e5573eae815d0aba21",
"hash": "b0e1ce90ece6e3bbb745025cce93a6361e1c9f4c06d8cdebd65a5a8a"
}
],
"definitions": {

View File

@@ -27,8 +27,8 @@
}
}
],
"compiledCode": "5902db0100003232323232323232323232323223222232533300b323232323232323232323232323232533301f30220021323232533301d3370e90000008a99980e9999180080091129998128010a50132325333022300300214a2266600a00a0020066052006604e004016466ebccc068c07000520000171533301d3370e0049001099b8f00301714a02a6603e921254578706563746564206f6e20696e636f727265637420626f6f6c65616e2076617269616e74001616301b012375a603e0046eb8c07400454cc0712401334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163020001333232223232533301e3370e90010008a5eb7bdb1804c8dd59813000980e001180e00099801801000980080091129998100010a6103d87a8000132323232533301f3371e00a002266e95200033025374c00497ae01333007007003005375c60420066eacc084008c09000cc088008004020dd5980f000980f000980e800980e000980d8011bac3019001300f005375c602e002601aa66601e66e1d2000300e001100115330114912a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163015001301500230130013009002149858cc02cc94ccc02ccdc3a40000022a66602060120062930a99806a491d4578706563746564206e6f206669656c647320666f7220436f6e73747200161533300b3370e90010008a99980818048018a4c2a6601a92011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300d4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163009002002375c0026600200290001111199980399b8700100300e233330050053370000890011808000801001118039baa001230053754002ae695cdab9c5573aaae7955cfaba05742ae881",
"hash": "8a55b753ccf7071f5549d4ce3896f94f8c4b2bb53fa2bbc812f02f2c"
"compiledCode": "5902d601000032323232323232323232323223222232533300b323232323232323232323232323232533301e30210021323232533301d3370e90000008a99980e9999180080091129998120010a50132325333022300300214a2266600a00a0020066050006604c004016466ebccc068c07000520000171533301d3370e0049001099b8f00301714a02a6603c921254578706563746564206f6e20696e636f727265637420626f6f6c65616e2076617269616e74001616301b012375a603c0046eb8c07000454cc06d2401334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016301f001333232223232533301e3370e90010008a5eb7bdb1804c8dd59812800980e001180e000998018010009800800911299980f8010a6103d87a8000132323232533301f3371e00a002266e95200033024374c00497ae01333007007003005375c60400066eacc080008c08c00cc084008004020dd5980e800980e800980e000980d800980d0011bac3018001300f005375c602c002601aa66601e66e1d2000300e001100115330104912a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e00163014001301400230120013009002149858c800cc94ccc02ccdc3a40000022a66601e60120062930a998062491d4578706563746564206e6f206669656c647320666f7220436f6e73747200161533300b3370e90010008a99980798048018a4c2a6601892011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300c4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163009002375c0026600200290001111199980399b8700100300d233330050053370000890011807800801001118031baa001230043754002ae695ce2ab9d5573caae7d5d02ba15745",
"hash": "47f04b17991835e079855a20d5c4506bee37d7917260a688ceae8266"
}
],
"definitions": {

View File

@@ -36,8 +36,8 @@
"$ref": "#/definitions/Data"
}
},
"compiledCode": "5903b2010000323232323232323232323232322223232533300a3230020013301033300a323375e00c0026601693260103d87980004c0103d87a80004c0103d87980003301033300a33232323223232330123253330123370e900000089919299980c980e0010a4c2a6602c921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a603400260200042a660289212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016301000153330113375e98106d8799f182aff0000113370e600800690020a503017001300d3253330103370e9000180780088008a998092492a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e001632330050020013237280026ecd300106d8799f182aff0030010012253330130011480004c8cdc02400466006006002602c0026002002444a6660240042980103d87a800013232323253330113371e00a002266e952000330170024bd7009998038038018029bae301300330130023016003301400237566600c60106600c6010006900024028980103d87a80004c0103d87980003301033300a325333010001161325333011001161323232325333010323008001330163330103375e66018601c004900226126d87a9f5820fcaa61fb85676101d9e3398a484674e71c45c3fd41b492682f3b0054f4cf3273ff004c0103d87a80004c0103d8798000330163330103375e66018601c0049003260122d8799f581ce37db487fbd58c45d059bcbf5cd6b1604d3bec16cf888f1395a4ebc4ff004c0103d87a80004c0103d87980004bd7009918040009980b19980819baf3300c300e3300c300e0014800120024c12ad8799fd8799fd8799f581c66666666666666666666666666666666666666666666666666666666ffffff004c0103d87a80004c0103d879800033016333010323253330123370e900200089925130100021630100013300c300e0014801130103d87a80004c0103d87980004bd700a5030160043015004163014001301300137586600c60106600c601000690002400898103d87a80004c0103d87980004bd700a4c2c600200244a66601e00229444c8c94ccc0300084cc010010004528180980119b8748008c034dd5180880099800800a40004444666600e66e1c00400c0388cccc014014cdc00022400460200020040044600e6ea80048c014dd5000ab9a5736ae7155ceaab9e5573eae815d0aba21",
"hash": "619406d554d37e4e1791d2f9e1914fdaef34c398db3b89bb6851be54"
"compiledCode": "5903b1010000323232323232323232323232322223232533300a3230020013301033300a323375e00c0026601693260103d87980004c0103d87a80004c0103d87980003301033300a332323232232323253330123375e98106d8799f182aff0000213370e600a00890020a503253330123370e900000089919299980c980e0010a4c2a6602c921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a603400260200042a660289212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630100013017001300d3253330103370e9000180780088008a9980924812a4578706563746564206f6e20696e636f727265637420636f6e7374727563746f722076617269616e742e001632330050020013237280026ecd300106d8799f182aff0030010012253330130011480004c8cdc02400466006006002602c0026002002444a6660240042980103d87a800013232323253330113371e00a002266e952000330170024bd7009998038038018029bae301300330130023016003301400237566600c60106600c6010006900024028980103d87a80004c0103d87980003301033300a325333010001161325333011001161323232325333010323008001330163330103375e66018601c004900226126d87a9f5820fcaa61fb85676101d9e3398a484674e71c45c3fd41b492682f3b0054f4cf3273ff004c0103d87a80004c0103d8798000330163330103375e66018601c0049003260122d8799f581ce37db487fbd58c45d059bcbf5cd6b1604d3bec16cf888f1395a4ebc4ff004c0103d87a80004c0103d87980004bd7009918040009980b19980819baf3300c300e3300c300e0014800120024c12ad8799fd8799fd8799f581c66666666666666666666666666666666666666666666666666666666ffffff004c0103d87a80004c0103d879800033016333010323253330123370e900200089925130100021630100013300c300e0014801130103d87a80004c0103d87980004bd700a5030160043015004163014001301300137586600c60106600c601000690002400898103d87a80004c0103d87980004bd700a4c2c600200244a66601e00229444c8c94ccc0300084cc010010004528180980119b8748008c034dd5180880099800800a40004444666600e66e1c00400c0388cccc014014cdc00022400460200020040044600e6ea80048c014dd5000ab9a5736ae7155ceaab9e5573eae815d0aba21",
"hash": "a29971e3525c7d2f66af7b40e5cb700aa4fa9fc2dad3ddd078bb2c30"
},
{
"title": "mint.mint",