Skip to content

Commit fd2feb6

Browse files
thdailongTrương Long
and
Trương Long
authored
Enable optimizer for all PyTEAL files (#683)
Co-authored-by: Trương Long <[email protected]>
1 parent 4fb652e commit fd2feb6

File tree

50 files changed

+109
-59
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+109
-59
lines changed

CHANGELOG.md

+1

docs/guide/py-teal.md

+4-1

docs/tutorials/t-02.md

+3-1

examples/asa/assets/pyteal/4-gold-asa.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,6 @@ def gold_asc(asset_amt=asset_amt, arg_sen=arg_sen):
3232

3333
return combine
3434

35+
optimize_options = OptimizeOptions(scratch_slots=True)
3536
if __name__ == "__main__":
36-
print(compileTeal(gold_asc(), Mode.Signature, version = 4))
37+
print(compileTeal(gold_asc(), Mode.Signature, version = 5, optimize=optimize_options))

examples/asa/assets/pyteal/5-clear.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
def clear_state_program():
44
return Return(Int(1))
55

6+
optimize_options = OptimizeOptions(scratch_slots=True)
67
if __name__ == "__main__":
7-
print(compileTeal(clear_state_program(), Mode.Application, version = 4))
8+
print(compileTeal(clear_state_program(), Mode.Application, version = 5, optimize=optimize_options))

examples/asa/assets/pyteal/5-contract-asa-stateful.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -77,5 +77,6 @@ def contract_owned_asa():
7777

7878
return program
7979

80+
optimize_options = OptimizeOptions(scratch_slots=True)
8081
if __name__ == "__main__":
81-
print(compileTeal(contract_owned_asa(), Mode.Application, version = 4))
82+
print(compileTeal(contract_owned_asa(), Mode.Application, version = 5, optimize=optimize_options))

examples/asa/assets/pyteal/5-contract-asa-stateless.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,5 @@ def contract_asa(app_id):
6565
if(len(sys.argv) > 1):
6666
params = parse_params(sys.argv[1], params)
6767

68-
print(compileTeal(contract_asa(params["APP_ID"]), Mode.Signature, version = 4))
68+
optimize_options = OptimizeOptions(scratch_slots=True)
69+
print(compileTeal(contract_asa(params["APP_ID"]), Mode.Signature, version = 5, optimize=optimize_options))

examples/bond/assets/bond-dapp-clear.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
def clear_state_program():
44
return Return(Int(1))
55

6+
optimize_options = OptimizeOptions(scratch_slots=True)
67
if __name__ == "__main__":
7-
print(compileTeal(clear_state_program(), Mode.Application, version = 4))
8+
print(compileTeal(clear_state_program(), Mode.Application, version = 5, optimize=optimize_options))

examples/bond/assets/bond-dapp-stateful.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -279,5 +279,6 @@ def approval_program():
279279

280280
return program
281281

282+
optimize_options = OptimizeOptions(scratch_slots=True)
282283
if __name__ == "__main__":
283-
print(compileTeal(approval_program(), Mode.Application, version = 4))
284+
print(compileTeal(approval_program(), Mode.Application, version = 5, optimize=optimize_options))

examples/bond/assets/buyback-lsig.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,6 @@ def buyback_lsig():
4646

4747
return program
4848

49+
optimize_options = OptimizeOptions(scratch_slots=True)
4950
if __name__ == "__main__":
50-
print(compileTeal(buyback_lsig(), Mode.Signature, version = 4))
51+
print(compileTeal(buyback_lsig(), Mode.Signature, version = 5, optimize=optimize_options))

examples/bond/assets/dex-lsig.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,6 @@ def dex_lsig():
6060

6161
return program
6262

63+
optimize_options = OptimizeOptions(scratch_slots=True)
6364
if __name__ == "__main__":
64-
print(compileTeal(dex_lsig(), Mode.Signature, version = 4))
65+
print(compileTeal(dex_lsig(), Mode.Signature, version = 5, optimize=optimize_options))

examples/bond/assets/issuer-lsig.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,6 @@ def issuer_lsig():
7474

7575
return program
7676

77+
optimize_options = OptimizeOptions(scratch_slots=True)
7778
if __name__ == "__main__":
78-
print(compileTeal(issuer_lsig(), Mode.Signature, version = 4))
79+
print(compileTeal(issuer_lsig(), Mode.Signature, version = 5, optimize=optimize_options))

examples/crowdfunding/assets/crowdFundEscrow.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,5 @@ def escrow(app_id):
5353
if(len(sys.argv) > 1):
5454
params = parse_params(sys.argv[1], params)
5555

56-
print(compileTeal(escrow(params["APP_ID"]), Mode.Signature, version = 4))
56+
optimize_options = OptimizeOptions(scratch_slots=True)
57+
print(compileTeal(escrow(params["APP_ID"]), Mode.Signature, version = 5, optimize=optimize_options))

examples/dao/assets/dao-app-approval.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -551,4 +551,5 @@ def scratch_proposal_active(idx: Int):
551551
if(len(sys.argv) > 1):
552552
params = parse_params(sys.argv[1], params)
553553

554-
print(compileTeal(approval_program(params["ARG_GOV_TOKEN"]), Mode.Application, version = 5))
554+
optimize_options = OptimizeOptions(scratch_slots=True)
555+
print(compileTeal(approval_program(params["ARG_GOV_TOKEN"]), Mode.Application, version = 5, optimize=optimize_options))

examples/dao/assets/dao-app-clear.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
def clear_state_program():
44
return Return(Int(1))
55

6+
optimize_options = OptimizeOptions(scratch_slots=True)
67
if __name__ == "__main__":
7-
print(compileTeal(clear_state_program(), Mode.Application, version = 5))
8+
print(compileTeal(clear_state_program(), Mode.Application, version = 5, optimize=optimize_options))

examples/dao/assets/dao-fund-lsig.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,5 @@ def basic_checks(txn: Txn): return And(
5555
if(len(sys.argv) > 1):
5656
params = parse_params(sys.argv[1], params)
5757

58-
print(compileTeal(dao_fund_lsig(params["ARG_DAO_APP_ID"]), Mode.Signature, version = 4))
58+
optimize_options = OptimizeOptions(scratch_slots=True)
59+
print(compileTeal(dao_fund_lsig(params["ARG_DAO_APP_ID"]), Mode.Signature, version = 5, optimize=optimize_options))

examples/dao/assets/proposal-lsig.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,12 @@ def basic_checks(txn: Txn):
9090
if len(sys.argv) > 1:
9191
params = parse_params(sys.argv[1], params)
9292

93+
optimize_options = OptimizeOptions(scratch_slots=True)
9394
print(
9495
compileTeal(
9596
proposal_lsig(params["ARG_OWNER"], params["ARG_DAO_APP_ID"]),
9697
Mode.Signature,
97-
version=4,
98+
version=5,
99+
optimize=optimize_options,
98100
)
99101
)

examples/htlc-pyteal-ts/assets/htlc.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,9 @@ def htlc(arg_bob, arg_alice, arg_secret, arg_timeout):
4545
if(len(sys.argv) > 1):
4646
params = parse_params(sys.argv[1], params)
4747

48+
optimize_options = OptimizeOptions(scratch_slots=True)
4849
print(compileTeal(htlc(
4950
Addr(params["bob"]),
5051
Addr(params["alice"]),
5152
params["hash_image"],
52-
params["timeout"]), Mode.Signature, version = 4))
53+
params["timeout"]), Mode.Signature, version = 5, optimize=optimize_options))

examples/inner-tx-create-assets/assets/coordinator.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,9 @@ def approval():
122122
*handlers,
123123
)
124124

125-
125+
optimize_options = OptimizeOptions(scratch_slots=True)
126126
def get_approval():
127-
return compileTeal(approval(), mode=Mode.Application, version=6)
127+
return compileTeal(approval(), mode=Mode.Application, version=6, optimize=optimize_options)
128128

129129

130130
if __name__ == "__main__":

examples/nft/assets/nft_approval.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -107,5 +107,6 @@ def approval_program():
107107

108108
return program
109109

110+
optimize_options = OptimizeOptions(scratch_slots=True)
110111
if __name__ == "__main__":
111-
print(compileTeal(approval_program(), Mode.Application, version = 4))
112+
print(compileTeal(approval_program(), Mode.Application, version = 4, optimize=optimize_options))

examples/nft/assets/nft_clear_state.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
def clear_state_program():
44
return Return(Int(1))
55

6+
optimize_options = OptimizeOptions(scratch_slots=True)
67
if __name__ == "__main__":
7-
print(compileTeal(clear_state_program(), Mode.Application, version = 4))
8+
print(compileTeal(clear_state_program(), Mode.Application, version = 5, optimize=optimize_options))

examples/permissioned-token-freezing/assets/clawback-escrow.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,5 @@ def clawback_escrow(ASSET_ID, APP_ID):
7979
if(len(sys.argv) > 1):
8080
params = parse_params(sys.argv[1], params)
8181

82-
print(compileTeal(clawback_escrow(params["ASSET_ID"], params["APP_ID"]), Mode.Signature, version = 4))
82+
optimize_options = OptimizeOptions(scratch_slots=True)
83+
print(compileTeal(clawback_escrow(params["ASSET_ID"], params["APP_ID"]), Mode.Signature, version = 5, optimize=optimize_options))

examples/permissioned-token/assets/clawback.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -94,4 +94,5 @@ def clawback_lsig(TOKEN_ID, CONTROLLER_APP_ID):
9494
if(len(sys.argv) > 1):
9595
params = parse_params(sys.argv[1], params)
9696

97-
print(compileTeal(clawback_lsig(params["TOKEN_ID"], params["CONTROLLER_APP_ID"]), Mode.Signature, version = 4))
97+
optimize_options = OptimizeOptions(scratch_slots=True)
98+
print(compileTeal(clawback_lsig(params["TOKEN_ID"], params["CONTROLLER_APP_ID"]), Mode.Signature, version = 5, optimize=optimize_options))

examples/permissioned-token/assets/clear_state_program.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
def clear_state_program():
44
return Return(Int(1))
55

6+
optimize_options = OptimizeOptions(scratch_slots=True)
67
if __name__ == "__main__":
7-
print(compileTeal(clear_state_program(), Mode.Application, version = 4))
8+
print(compileTeal(clear_state_program(), Mode.Application, version = 5, optimize=optimize_options))

examples/permissioned-token/assets/controller.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -216,5 +216,5 @@ def approval_program(TOKEN_ID):
216216
# Overwrite params if sys.argv[1] is passed
217217
if(len(sys.argv) > 1):
218218
params = parse_params(sys.argv[1], params)
219-
220-
print(compileTeal(approval_program(params["TOKEN_ID"]), Mode.Application, version = 4))
219+
optimize_options = OptimizeOptions(scratch_slots=True)
220+
print(compileTeal(approval_program(params["TOKEN_ID"]), Mode.Application, version = 5, optimize=optimize_options))

examples/permissioned-token/assets/permissions.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -192,4 +192,5 @@ def approval_program(PERM_MANAGER):
192192
if(len(sys.argv) > 1):
193193
params = parse_params(sys.argv[1], params)
194194

195-
print(compileTeal(approval_program(params["PERM_MANAGER"]), Mode.Application, version = 4))
195+
optimize_options = OptimizeOptions(scratch_slots=True)
196+
print(compileTeal(approval_program(params["PERM_MANAGER"]), Mode.Application, version = 5, optimize=optimize_options))

examples/permissioned-voting/assets/permissioned-voting-approval.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -106,5 +106,6 @@ def approval_program():
106106

107107
return program
108108

109+
optimize_options = OptimizeOptions(scratch_slots=True)
109110
if __name__ == "__main__":
110-
print(compileTeal(approval_program(), Mode.Application, version = 4))
111+
print(compileTeal(approval_program(), Mode.Application, version = 5, optimize=optimize_options))

examples/permissioned-voting/assets/permissioned-voting-clear.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
def clear_state_program():
44
return Return(Int(1))
55

6+
optimize_options = OptimizeOptions(scratch_slots=True)
67
if __name__ == "__main__":
7-
print(compileTeal(clear_state_program(), Mode.Application, version = 4))
8+
print(compileTeal(clear_state_program(), Mode.Application, version = 5, optimize=optimize_options))

examples/ref-templates/assets/dynamic-fee.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,11 @@ def dynamic_fee(ARG_AMT, ARG_CLS, ARG_FV, ARG_LV, ARG_LEASE):
103103
# Overwrite params if sys.argv[1] is passed
104104
if(len(sys.argv) > 1):
105105
params = parse_params(sys.argv[1], params)
106-
106+
107+
optimize_options = OptimizeOptions(scratch_slots=True)
107108
print(compileTeal(dynamic_fee(
108109
params["ARG_AMT"],
109110
Addr(params["ARG_CLS"]),
110111
params["ARG_FV"],
111112
params["ARG_LV"],
112-
Bytes("base64", params["ARG_LEASE"])), Mode.Signature, version = 4))
113+
Bytes("base64", params["ARG_LEASE"])), Mode.Signature, version = 5, optimize=optimize_options))

examples/ref-templates/assets/htlc.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -99,5 +99,6 @@ def htlc(ARG_RCV,
9999
# whether or not it has been approved by this contract.
100100
return And(Or(scenario_1, scenario_2), common_checks)
101101

102+
optimize_options = OptimizeOptions(scratch_slots=True)
102103
if __name__ == "__main__":
103-
print(compileTeal(htlc(john, master, fee, hash_image, Sha256, timeout), Mode.Signature, version = 4))
104+
print(compileTeal(htlc(john, master, fee, hash_image, Sha256, timeout), Mode.Signature, version = 5, optimize=optimize_options))

examples/unique-nft-asa/assets/nft-app-approval.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,6 @@ def approval_program():
6464

6565
return program
6666

67+
optimize_options = OptimizeOptions(scratch_slots=True)
6768
if __name__ == "__main__":
68-
print(compileTeal(approval_program(), Mode.Application, version = 4))
69+
print(compileTeal(approval_program(), Mode.Application, version = 5, optimize=optimize_options))

examples/unique-nft-asa/assets/nft-app-clear.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
def clear_state_program():
44
return Return(Int(1))
55

6+
optimize_options = OptimizeOptions(scratch_slots=True)
67
if __name__ == "__main__":
7-
print(compileTeal(clear_state_program(), Mode.Application, version = 4))
8+
print(compileTeal(clear_state_program(), Mode.Application, version = 5, optimize=optimize_options))

examples/unique-nft-asa/assets/stateless.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,5 @@ def basic_checks(txn: Txn): return And(
6161
if(len(sys.argv) > 1):
6262
params = parse_params(sys.argv[1], params)
6363

64-
print(compileTeal(c_p_lsig(params["ARG_P"], params["ARG_NFT_APP_ID"]), Mode.Signature, version = 4))
64+
optimize_options = OptimizeOptions(scratch_slots=True)
65+
print(compileTeal(c_p_lsig(params["ARG_P"], params["ARG_NFT_APP_ID"]), Mode.Signature, version = 4, optimize=optimize_options))

packages/algob/sample-project/common/assets/escrow.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,5 @@ def escrow_contract(RECEIVER_ADDRESS):
3737
if(len(sys.argv) > 1):
3838
params = parse_params(sys.argv[1], params)
3939

40-
print(compileTeal(escrow_contract(params["RECEIVER_ADDRESS"]), Mode.Signature))
40+
optimize_options = OptimizeOptions(scratch_slots=True)
41+
print(compileTeal(escrow_contract(params["RECEIVER_ADDRESS"]), Mode.Signature, optimize=optimize_options))

packages/algob/test/fixture-projects/config-project/assets/gold-asa.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,6 @@ def gold_asc(asset_amt=asset_amt, arg_sender=arg_sender):
2727

2828
return combine
2929

30+
optimize_options = OptimizeOptions(scratch_slots=True)
3031
if __name__ == "__main__":
31-
print(compileTeal(gold_asc(), Mode.Signature))
32+
print(compileTeal(gold_asc(), Mode.Signature, optimize=optimize_options))

packages/algob/test/fixture-projects/support-external-parameters/assets/stateful.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,5 @@ def approval_program(asset_amt, ARG_sender):
3737
if(len(sys.argv) > 1):
3838
scParam = parse_params(sys.argv[1], scParam)
3939

40-
print(compileTeal(approval_program(scParam["ASSET_AMT"], Addr(scParam["ARG_SENDER"])), Mode.Application))
40+
optimize_options = OptimizeOptions(scratch_slots=True)
41+
print(compileTeal(approval_program(scParam["ASSET_AMT"], Addr(scParam["ARG_SENDER"])), Mode.Application, optimize=optimize_options))

packages/algob/test/fixture-projects/support-external-parameters/assets/stateless.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,5 @@ def gold_asc(asset_amt, arg_sender):
3939
if(len(sys.argv) > 1):
4040
scParam = parse_params(sys.argv[1], scParam)
4141

42-
print(compileTeal(gold_asc(scParam["ASSET_AMT"], Addr(scParam["ARG_SENDER"])), Mode.Signature))
42+
optimize_options = OptimizeOptions(scratch_slots=True)
43+
print(compileTeal(gold_asc(scParam["ASSET_AMT"], Addr(scParam["ARG_SENDER"])), Mode.Signature, optimize=optimize_options))

packages/algob/test/fixture-projects/support-tmpl-parameters/assets/stateful.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,5 @@ def approval_program(ARG_sender):
3535
# Overwrite scParam if sys.argv[1] is passed
3636
if(len(sys.argv) > 1):
3737
scParam = parse_params(sys.argv[1], scParam)
38-
39-
print(compileTeal(approval_program(Addr(scParam["ARG_SENDER"])), Mode.Application))
38+
optimize_options = OptimizeOptions(scratch_slots=True)
39+
print(compileTeal(approval_program(Addr(scParam["ARG_SENDER"])), Mode.Application, optimize=optimize_options))

packages/algob/test/fixture-projects/support-tmpl-parameters/assets/stateless.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,6 @@ def gold_asc():
2727

2828
return combine
2929

30+
optimize_options = OptimizeOptions(scratch_slots=True)
3031
if __name__ == "__main__":
31-
print(compileTeal(gold_asc(), Mode.Signature))
32+
print(compileTeal(gold_asc(), Mode.Signature, optimize=optimize_options))

packages/runtime/test/fixtures/app-update/assets/approval_program.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,6 @@ def app():
5252
)
5353
return program
5454

55+
optimize_options = OptimizeOptions(scratch_slots=True)
5556
if __name__ == "__main__":
56-
print(compileTeal(app(), Mode.Application, version = 5))
57+
print(compileTeal(app(), Mode.Application, version = 5, optimize=optimize_options))

packages/runtime/test/fixtures/c2c-call/assets/c2c-call.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,13 @@ def approval():
8686
def clear():
8787
return Return(Int(1))
8888

89-
89+
optimize_options = OptimizeOptions(scratch_slots=True)
9090
def get_approval():
91-
return compileTeal(approval(), mode=Mode.Application, version=6)
91+
return compileTeal(approval(), mode=Mode.Application, version=6, optimize=optimize_options)
9292

9393

9494
def get_clear():
95-
return compileTeal(clear(), mode=Mode.Application, version=6)
95+
return compileTeal(clear(), mode=Mode.Application, version=6, optimize=optimize_options)
9696

9797

9898
if __name__ == "__main__":

0 commit comments

Comments
 (0)