Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!--
A new scriv changelog fragment.
Uncomment the section that is right (remove the HTML comment wrapper).
For top level release notes, leave all the headers commented out.
-->

<!--
### Removed
- A bullet item for the Removed category.
-->
### Added

- Safety checks to ensure explicit user asserts and error conditions are preserved through optimization passes and not inadvertently eliminated or modified.

<!--
### Changed
- A bullet item for the Changed category.
-->
<!--
### Deprecated
- A bullet item for the Deprecated category.
-->
<!--
### Fixed
- A bullet item for the Fixed category.
-->
<!--
### Security
- A bullet item for the Security category.
-->
12 changes: 6 additions & 6 deletions examples/amm/out/ConstantProductAMM.approval.puya.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 6 additions & 6 deletions examples/amm/out/ConstantProductAMM.approval.teal
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ set_governor:
txna ApplicationArgs 1
dup
len
pushint 32 // 32
pushint 32
==
assert // invalid number of bytes for arc4.static_array<arc4.uint8, 32>
// amm/contract.py:46
Expand Down Expand Up @@ -163,7 +163,7 @@ bootstrap:
// amm/contract.py:68
// assert Global.group_size == 2, "group size not 2"
global GroupSize
pushint 2 // 2
pushint 2
==
assert // group size not 2
// amm/contract.py:69
Expand All @@ -177,7 +177,7 @@ bootstrap:
// assert seed.amount >= 300_000, "amount minimum not met" # 0.3 Algos
uncover 2
gtxns Amount
pushint 300000 // 300000
pushint 300000
>=
assert // amount minimum not met
// amm/contract.py:72
Expand Down Expand Up @@ -233,7 +233,7 @@ bootstrap:
itxn_field ConfigAssetManager
// amm/contract.py:278
// decimals=3,
pushint 3 // 3
pushint 3
itxn_field ConfigAssetDecimals
// amm/contract.py:277
// total=TOTAL_SUPPLY,
Expand Down Expand Up @@ -362,7 +362,7 @@ mint:
// resource_encoding="index",
// )
txn GroupIndex
pushint 2 // 2
pushint 2
-
dup
gtxns TypeEnum
Expand Down Expand Up @@ -941,7 +941,7 @@ swap_switch_case_next@5:
intc_2 // 1000
*
swap
pushint 995 // 995
pushint 995
*
swap
dig 1
Expand Down
4 changes: 2 additions & 2 deletions examples/amm/out/ConstantProductAMM.arc56.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion examples/amm/out/ConstantProductAMM.clear.puya.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion examples/amm/out/ConstantProductAMM.clear.teal
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@

// algopy.arc4.ARC4Contract.clear_state_program() -> uint64:
main:
pushint 1 // 1
pushint 1
return
12 changes: 6 additions & 6 deletions examples/amm/out_O2/ConstantProductAMM.approval.teal
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ main_switch_case_next@21:
intc_2 // 1000
*
swap
pushint 995 // 995
pushint 995
*
swap
dig 1
Expand Down Expand Up @@ -264,7 +264,7 @@ main_burn_route@9:

main_mint_route@8:
txn GroupIndex
pushint 2 // 2
pushint 2
-
dup
gtxns TypeEnum
Expand Down Expand Up @@ -485,7 +485,7 @@ main_bootstrap_route@7:
assert // application has already been bootstrapped
callsub _check_is_governor
global GroupSize
pushint 2 // 2
pushint 2
==
assert // group size not 2
dig 2
Expand All @@ -495,7 +495,7 @@ main_bootstrap_route@7:
assert // receiver not app address
uncover 2
gtxns Amount
pushint 300000 // 300000
pushint 300000
>=
assert // amount minimum not met
dup2
Expand Down Expand Up @@ -527,7 +527,7 @@ main_bootstrap_route@7:
dup
itxn_field ConfigAssetReserve
itxn_field ConfigAssetManager
pushint 3 // 3
pushint 3
itxn_field ConfigAssetDecimals
intc 4 // 10000000000
itxn_field ConfigAssetTotal
Expand Down Expand Up @@ -574,7 +574,7 @@ main_set_governor_route@6:
txna ApplicationArgs 1
dup
len
pushint 32 // 32
pushint 32
==
assert // invalid number of bytes for arc4.static_array<arc4.uint8, 32>
callsub _check_is_governor
Expand Down
2 changes: 1 addition & 1 deletion examples/amm/out_O2/ConstantProductAMM.clear.teal
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@

// algopy.arc4.ARC4Contract.clear_state_program() -> uint64:
main:
pushint 1 // 1
pushint 1
return

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions examples/amm/out_unoptimized/ConstantProductAMM.approval.teal
Original file line number Diff line number Diff line change
Expand Up @@ -306,13 +306,13 @@ tokens_to_swap_block@0:
intc_2 // 1000
*
frame_dig -3
pushint 995 // 995
pushint 995
*
+
// amm/contract.py:355
// out_total = in_amount * FACTOR * out_supply
frame_dig -3
pushint 995 // 995
pushint 995
*
frame_dig -1
*
Expand Down Expand Up @@ -380,7 +380,7 @@ set_governor_block@0:
txna ApplicationArgs 1
dup
len
pushint 32 // 32
pushint 32
==
assert // invalid number of bytes for arc4.static_array<arc4.uint8, 32>
callsub examples.amm.contract.ConstantProductAMM.set_governor
Expand Down Expand Up @@ -447,7 +447,7 @@ mint_block@0:
// resource_encoding="index",
// )
txn GroupIndex
pushint 2 // 2
pushint 2
-
dup
gtxns TypeEnum
Expand Down Expand Up @@ -679,7 +679,7 @@ examples.amm.contract.ConstantProductAMM.bootstrap_block@0:
// amm/contract.py:68
// assert Global.group_size == 2, "group size not 2"
global GroupSize
pushint 2 // 2
pushint 2
==
assert // group size not 2
// amm/contract.py:69
Expand All @@ -693,7 +693,7 @@ examples.amm.contract.ConstantProductAMM.bootstrap_block@0:
// assert seed.amount >= 300_000, "amount minimum not met" # 0.3 Algos
frame_dig -3
gtxns Amount
pushint 300000 // 300000
pushint 300000
>=
assert // amount minimum not met
// amm/contract.py:72
Expand Down Expand Up @@ -1343,7 +1343,7 @@ _create_pool_token_block@0:
itxn_field ConfigAssetManager
// amm/contract.py:278
// decimals=3,
pushint 3 // 3
pushint 3
itxn_field ConfigAssetDecimals
// amm/contract.py:277
// total=TOTAL_SUPPLY,
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion examples/amm/out_unoptimized/ConstantProductAMM.clear.teal
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ main:
b main_block@0

main_block@0:
pushint 1 // 1
pushint 1
return
2 changes: 1 addition & 1 deletion examples/arc_28/out/EventEmitter.approval.puya.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion examples/arc_28/out/EventEmitter.approval.teal
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ emit_ufixed:
txna ApplicationArgs 1
dup
len
pushint 32 // 32
pushint 32
==
assert // invalid number of bytes for arc4.ufixed256x16
txna ApplicationArgs 2
Expand Down
4 changes: 2 additions & 2 deletions examples/arc_28/out/EventEmitter.arc56.json
Original file line number Diff line number Diff line change
Expand Up @@ -158,8 +158,8 @@
}
},
"source": {
"approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayA4IDEKICAgIC8vIGFyY18yOC9jb250cmFjdC5weToxMQogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyKEFSQzRDb250cmFjdCk6CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogbWFpbl9fX2FsZ29weV9kZWZhdWx0X2NyZWF0ZUA5CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQKICAgIHB1c2hieXRlc3MgMHgwYTk1NDJjZCAweDcxYTMxNTFmIC8vIG1ldGhvZCAiZW1pdF9zd2FwcGVkKHVpbnQ2NCx1aW50NjQpdm9pZCIsIG1ldGhvZCAiZW1pdF91Zml4ZWQodWZpeGVkMjU2eDE2LHVmaXhlZDY0eDIpdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIGVtaXRfc3dhcHBlZCBlbWl0X3VmaXhlZAogICAgZXJyCgptYWluX19fYWxnb3B5X2RlZmF1bHRfY3JlYXRlQDk6CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgIQogICAgJiYKICAgIHJldHVybgoKCi8vIGV4YW1wbGVzLmFyY18yOC5jb250cmFjdC5FdmVudEVtaXR0ZXIuZW1pdF9zd2FwcGVkW3JvdXRpbmddKCkgLT4gdm9pZDoKZW1pdF9zd2FwcGVkOgogICAgLy8gYXJjXzI4L2NvbnRyYWN0LnB5OjEyCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIC8vIGFyY18yOC9jb250cmFjdC5weToxNAogICAgLy8gYXJjNC5lbWl0KFN3YXBwZWQoYiwgYSkpCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDFjY2JkOTI1IC8vIG1ldGhvZCAiU3dhcHBlZCh1aW50NjQsdWludDY0KSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBsb2cKICAgIC8vIGFyY18yOC9jb250cmFjdC5weToxNQogICAgLy8gYXJjNC5lbWl0KCJTd2FwcGVkKHVpbnQ2NCx1aW50NjQpIiwgYiwgYSkKICAgIGR1cAogICAgbG9nCiAgICAvLyBhcmNfMjgvY29udHJhY3QucHk6MTYKICAgIC8vIGFyYzQuZW1pdCgiU3dhcHBlZCIsIGIsIGEpCiAgICBsb2cKICAgIC8vIGFyY18yOC9jb250cmFjdC5weToxMgogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gZXhhbXBsZXMuYXJjXzI4LmNvbnRyYWN0LkV2ZW50RW1pdHRlci5lbWl0X3VmaXhlZFtyb3V0aW5nXSgpIC0+IHZvaWQ6CmVtaXRfdWZpeGVkOgogICAgLy8gYXJjXzI4L2NvbnRyYWN0LnB5OjE4CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWZpeGVkMjU2eDE2CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWZpeGVkNjR4MgogICAgLy8gYXJjXzI4L2NvbnRyYWN0LnB5OjI0CiAgICAvLyBhcmM0LmVtaXQoIkFuRXZlbnQodWZpeGVkMjU2eDE2LHVmaXhlZDY0eDIpIiwgYSwgYikKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4NzM4OWIxYmEgLy8gbWV0aG9kICJBbkV2ZW50KHVmaXhlZDI1NngxNix1Zml4ZWQ2NHgyKSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICAvLyBhcmNfMjgvY29udHJhY3QucHk6MTgKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCg==",
"clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K"
"approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayA4IDEKICAgIC8vIGFyY18yOC9jb250cmFjdC5weToxMQogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyKEFSQzRDb250cmFjdCk6CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogbWFpbl9fX2FsZ29weV9kZWZhdWx0X2NyZWF0ZUA5CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQKICAgIHB1c2hieXRlc3MgMHgwYTk1NDJjZCAweDcxYTMxNTFmIC8vIG1ldGhvZCAiZW1pdF9zd2FwcGVkKHVpbnQ2NCx1aW50NjQpdm9pZCIsIG1ldGhvZCAiZW1pdF91Zml4ZWQodWZpeGVkMjU2eDE2LHVmaXhlZDY0eDIpdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIGVtaXRfc3dhcHBlZCBlbWl0X3VmaXhlZAogICAgZXJyCgptYWluX19fYWxnb3B5X2RlZmF1bHRfY3JlYXRlQDk6CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgIQogICAgJiYKICAgIHJldHVybgoKCi8vIGV4YW1wbGVzLmFyY18yOC5jb250cmFjdC5FdmVudEVtaXR0ZXIuZW1pdF9zd2FwcGVkW3JvdXRpbmddKCkgLT4gdm9pZDoKZW1pdF9zd2FwcGVkOgogICAgLy8gYXJjXzI4L2NvbnRyYWN0LnB5OjEyCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIC8vIGFyY18yOC9jb250cmFjdC5weToxNAogICAgLy8gYXJjNC5lbWl0KFN3YXBwZWQoYiwgYSkpCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDFjY2JkOTI1IC8vIG1ldGhvZCAiU3dhcHBlZCh1aW50NjQsdWludDY0KSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBsb2cKICAgIC8vIGFyY18yOC9jb250cmFjdC5weToxNQogICAgLy8gYXJjNC5lbWl0KCJTd2FwcGVkKHVpbnQ2NCx1aW50NjQpIiwgYiwgYSkKICAgIGR1cAogICAgbG9nCiAgICAvLyBhcmNfMjgvY29udHJhY3QucHk6MTYKICAgIC8vIGFyYzQuZW1pdCgiU3dhcHBlZCIsIGIsIGEpCiAgICBsb2cKICAgIC8vIGFyY18yOC9jb250cmFjdC5weToxMgogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gZXhhbXBsZXMuYXJjXzI4LmNvbnRyYWN0LkV2ZW50RW1pdHRlci5lbWl0X3VmaXhlZFtyb3V0aW5nXSgpIC0+IHZvaWQ6CmVtaXRfdWZpeGVkOgogICAgLy8gYXJjXzI4L2NvbnRyYWN0LnB5OjE4CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWZpeGVkMjU2eDE2CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWZpeGVkNjR4MgogICAgLy8gYXJjXzI4L2NvbnRyYWN0LnB5OjI0CiAgICAvLyBhcmM0LmVtaXQoIkFuRXZlbnQodWZpeGVkMjU2eDE2LHVmaXhlZDY0eDIpIiwgYSwgYikKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4NzM4OWIxYmEgLy8gbWV0aG9kICJBbkV2ZW50KHVmaXhlZDI1NngxNix1Zml4ZWQ2NHgyKSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICAvLyBhcmNfMjgvY29udHJhY3QucHk6MTgKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCg==",
"clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg=="
},
"byteCode": {
"approval": "CyACCAExG0EAHTEZFEQxGESCAgQKlULNBHGjFR82GgCOAgAJACoAMRkUMRgUEEM2GgFJFSISRDYaAkkVIhJETFCABBzL2SVMUEmwSbCwI0M2GgFJFYEgEkQ2GgJJFSISRFCABHOJsbpMULAjQw==",
Expand Down
Loading
Loading